Files
tmc/asm/code_0807CC3C.s
T
2020-05-18 16:22:11 -07:00

79890 lines
1.3 MiB
Plaintext

.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start sub_0807CC3C
sub_0807CC3C: @ 0x0807CC3C
push {lr}
adds r1, r0, #0
ldr r0, _0807CC48 @ =gUnk_02034364
bl sub_0801D5A8
pop {pc}
.align 2, 0
_0807CC48: .4byte gUnk_02034364
thumb_func_start sub_0807CC4C
sub_0807CC4C: @ 0x0807CC4C
push {lr}
adds r3, r0, #0
ldr r0, _0807CC5C @ =gUnk_02002C9C
adds r3, r3, r1
adds r1, r3, #0
bl sub_08000F10
pop {pc}
.align 2, 0
_0807CC5C: .4byte gUnk_02002C9C
thumb_func_start sub_0807CC60
sub_0807CC60: @ 0x0807CC60
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldr r0, _0807CC74 @ =gUnk_02033A90
ldrh r0, [r0, #4]
adds r1, r3, #0
bl sub_0807CC4C
pop {pc}
.align 2, 0
_0807CC74: .4byte gUnk_02033A90
thumb_func_start sub_0807CC78
sub_0807CC78: @ 0x0807CC78
push {lr}
adds r3, r0, #0
adds r2, r1, #0
movs r0, #0
adds r1, r3, #0
bl sub_0807CC4C
pop {pc}
thumb_func_start sub_0807CC88
sub_0807CC88: @ 0x0807CC88
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldr r0, _0807CC98 @ =gUnk_02034364
adds r1, r3, #0
bl sub_08000F10
pop {pc}
.align 2, 0
_0807CC98: .4byte gUnk_02034364
thumb_func_start sub_0807CC9C
sub_0807CC9C: @ 0x0807CC9C
push {lr}
adds r2, r0, #0
cmp r1, #0
beq _0807CCAC
ldr r0, _0807CCB0 @ =gUnk_02002C9C
adds r1, r2, r1
bl sub_0801D5BC
_0807CCAC:
pop {pc}
.align 2, 0
_0807CCB0: .4byte gUnk_02002C9C
thumb_func_start sub_0807CCB4
sub_0807CCB4: @ 0x0807CCB4
push {lr}
adds r1, r0, #0
ldr r0, _0807CCC4 @ =gUnk_02033A90
ldrh r0, [r0, #4]
bl sub_0807CC9C
pop {pc}
.align 2, 0
_0807CCC4: .4byte gUnk_02033A90
thumb_func_start sub_0807CCC8
sub_0807CCC8: @ 0x0807CCC8
push {lr}
adds r1, r0, #0
cmp r1, #0
beq _0807CD02
ldr r2, _0807CCF0 @ =0x000003FF
ands r2, r1
movs r0, #0xc0
lsls r0, r0, #8
ands r0, r1
lsrs r0, r0, #0xe
cmp r0, #1
beq _0807CCFC
cmp r0, #1
blo _0807CCF4
cmp r0, #2
bne _0807CD02
adds r0, r2, #0
bl sub_0807CD10
b _0807CD02
.align 2, 0
_0807CCF0: .4byte 0x000003FF
_0807CCF4:
adds r0, r2, #0
bl sub_0807CCB4
b _0807CD02
_0807CCFC:
adds r0, r2, #0
bl sub_0807CD04
_0807CD02:
pop {pc}
thumb_func_start sub_0807CD04
sub_0807CD04: @ 0x0807CD04
push {lr}
adds r1, r0, #0
movs r0, #0
bl sub_0807CC9C
pop {pc}
thumb_func_start sub_0807CD10
sub_0807CD10: @ 0x0807CD10
push {lr}
adds r1, r0, #0
ldr r0, _0807CD1C @ =gUnk_02034364
bl sub_0801D5BC
pop {pc}
.align 2, 0
_0807CD1C: .4byte gUnk_02034364
thumb_func_start sub_0807CD20
sub_0807CD20: @ 0x0807CD20
push {lr}
adds r2, r0, #0
ldr r0, _0807CD30 @ =gUnk_02002C9C
adds r2, r2, r1
adds r1, r2, #0
bl sub_0801D5D4
pop {pc}
.align 2, 0
_0807CD30: .4byte gUnk_02002C9C
thumb_func_start sub_0807CD34
sub_0807CD34: @ 0x0807CD34
push {lr}
adds r1, r0, #0
ldr r0, _0807CD44 @ =gUnk_02033A90
ldrh r0, [r0, #4]
bl sub_0807CD20
pop {pc}
.align 2, 0
_0807CD44: .4byte gUnk_02033A90
thumb_func_start sub_0807CD48
sub_0807CD48: @ 0x0807CD48
push {lr}
ldr r2, _0807CD6C @ =0x000003FF
ands r2, r0
movs r1, #0xc0
lsls r1, r1, #8
ands r1, r0
lsrs r1, r1, #0xe
cmp r1, #1
beq _0807CD78
cmp r1, #1
blo _0807CD70
cmp r1, #2
bne _0807CD7E
adds r0, r2, #0
bl sub_0807CD8C
b _0807CD7E
.align 2, 0
_0807CD6C: .4byte 0x000003FF
_0807CD70:
adds r0, r2, #0
bl sub_0807CD34
b _0807CD7E
_0807CD78:
adds r0, r2, #0
bl sub_0807CD80
_0807CD7E:
pop {pc}
thumb_func_start sub_0807CD80
sub_0807CD80: @ 0x0807CD80
push {lr}
adds r1, r0, #0
movs r0, #0
bl sub_0807CD20
pop {pc}
thumb_func_start sub_0807CD8C
sub_0807CD8C: @ 0x0807CD8C
push {lr}
adds r1, r0, #0
ldr r0, _0807CD98 @ =gUnk_02034364
bl sub_0801D5D4
pop {pc}
.align 2, 0
_0807CD98: .4byte gUnk_02034364
thumb_func_start sub_0807CD9C
sub_0807CD9C: @ 0x0807CD9C
push {lr}
bl sub_080530C8
pop {pc}
thumb_func_start sub_0807CDA4
sub_0807CDA4: @ 0x0807CDA4
push {lr}
ldr r2, _0807CDB8 @ =gUnk_0811E478
ldr r1, _0807CDBC @ =gUnk_02000080
ldrb r1, [r1, #7]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807CDB8: .4byte gUnk_0811E478
_0807CDBC: .4byte gUnk_02000080
thumb_func_start sub_0807CDC0
sub_0807CDC0: @ 0x0807CDC0
push {lr}
ldr r0, _0807CDE0 @ =gUnk_02021EE0
ldrh r1, [r0, #0xa]
subs r1, #8
strh r1, [r0, #0xa]
movs r1, #8
ldrsh r0, [r0, r1]
cmp r0, #0
bgt _0807CDDC
ldr r0, _0807CDE4 @ =gUnk_02000080
movs r1, #8
strh r1, [r0, #0xa]
movs r1, #1
strb r1, [r0, #7]
_0807CDDC:
movs r0, #0
pop {pc}
.align 2, 0
_0807CDE0: .4byte gUnk_02021EE0
_0807CDE4: .4byte gUnk_02000080
thumb_func_start sub_0807CDE8
sub_0807CDE8: @ 0x0807CDE8
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _0807CE08 @ =gUnk_02000080
ldrh r0, [r1, #0xa]
cmp r0, #0
bne _0807CE4C
bl sub_0805616C
cmp r4, #1
beq _0807CE20
cmp r4, #1
blo _0807CE0C
cmp r4, #2
beq _0807CE2E
b _0807CE38
.align 2, 0
_0807CE08: .4byte gUnk_02000080
_0807CE0C:
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #4]
ldr r1, _0807CE1C @ =gUnk_02002A40
bl sub_0807CF08
b _0807CE36
.align 2, 0
_0807CE1C: .4byte gUnk_02002A40
_0807CE20:
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #4]
bl sub_0807CF48
movs r5, #1
b _0807CE38
_0807CE2E:
movs r0, #0x80
lsls r0, r0, #0x12
bl sub_0807CF10
_0807CE36:
adds r5, r0, #0
_0807CE38:
ldr r1, _0807CE48 @ =gUnk_02000080
strh r5, [r1, #0xa]
movs r0, #2
strb r0, [r1, #7]
bl sub_08056208
b _0807CE50
.align 2, 0
_0807CE48: .4byte gUnk_02000080
_0807CE4C:
subs r0, #1
strh r0, [r1, #0xa]
_0807CE50:
movs r0, #0
pop {r4, r5, pc}
thumb_func_start sub_0807CE54
sub_0807CE54: @ 0x0807CE54
push {r4, r5, lr}
movs r4, #0
ldr r2, _0807CE88 @ =gUnk_02021EE0
ldrh r0, [r2, #0xa]
adds r0, #8
strh r0, [r2, #0xa]
ldrh r3, [r2, #6]
movs r5, #6
ldrsh r1, [r2, r5]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
cmp r1, r0
bgt _0807CE84
strh r3, [r2, #0xa]
bl sub_08050384
ldr r0, _0807CE8C @ =gUnk_02000080
movs r1, #0
strb r1, [r0, #7]
ldrh r0, [r0, #0xa]
subs r4, #1
cmp r0, #1
bne _0807CE84
movs r4, #1
_0807CE84:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
_0807CE88: .4byte gUnk_02021EE0
_0807CE8C: .4byte gUnk_02000080
thumb_func_start sub_0807CE90
sub_0807CE90: @ 0x0807CE90
push {r4, r5, r6, lr}
movs r0, #0x40
bl sub_080B1520
movs r0, #4
bl sub_0807D1C4
adds r4, r0, #0
movs r5, #0
ldrh r0, [r4, #6]
ldr r6, _0807CF04 @ =gUnk_0811E484
ldrh r2, [r4]
adds r1, r6, #0
bl sub_0807D24C
cmp r0, #0
bne _0807CEB4
movs r5, #1
_0807CEB4:
ldrh r0, [r4, #8]
ldrh r2, [r4]
adds r1, r6, #0
bl sub_0807D24C
cmp r0, #0
bne _0807CEC4
adds r5, #2
_0807CEC4:
cmp r5, #0
beq _0807CEFE
cmp r5, #3
bne _0807CEEA
movs r0, #5
bl sub_0807CF68
movs r0, #3
bl sub_0807CF68
movs r0, #2
bl sub_0807CF68
movs r0, #1
bl sub_0807CF68
movs r0, #0
bl sub_0807CF68
_0807CEEA:
ldrh r0, [r4, #8]
ldrh r2, [r4]
adds r1, r6, #0
bl sub_0807D20C
ldrh r0, [r4, #6]
ldrh r2, [r4]
adds r1, r6, #0
bl sub_0807D20C
_0807CEFE:
movs r0, #1
pop {r4, r5, r6, pc}
.align 2, 0
_0807CF04: .4byte gUnk_0811E484
thumb_func_start sub_0807CF08
sub_0807CF08: @ 0x0807CF08
push {lr}
bl sub_0807CF88
pop {pc}
thumb_func_start sub_0807CF10
sub_0807CF10: @ 0x0807CF10
push {lr}
adds r1, r0, #0
movs r0, #3
bl sub_0807CF88
pop {pc}
thumb_func_start sub_0807CF1C
sub_0807CF1C: @ 0x0807CF1C
push {lr}
adds r1, r0, #0
movs r0, #5
bl sub_0807CF88
pop {pc}
thumb_func_start sub_0807CF28
sub_0807CF28: @ 0x0807CF28
push {lr}
bl sub_0807D008
pop {pc}
thumb_func_start sub_0807CF30
sub_0807CF30: @ 0x0807CF30
push {lr}
adds r1, r0, #0
movs r0, #3
bl sub_0807D008
pop {pc}
thumb_func_start sub_0807CF3C
sub_0807CF3C: @ 0x0807CF3C
push {lr}
adds r1, r0, #0
movs r0, #5
bl sub_0807D008
pop {pc}
thumb_func_start sub_0807CF48
sub_0807CF48: @ 0x0807CF48
push {r4, r5, lr}
bl sub_0807D1C4
adds r4, r0, #0
ldrh r0, [r4, #4]
ldr r5, _0807CF64 @ =gUnk_0811E4AC
adds r1, r5, #0
bl sub_0807D184
ldrh r0, [r4, #2]
adds r1, r5, #0
bl sub_0807D184
pop {r4, r5, pc}
.align 2, 0
_0807CF64: .4byte gUnk_0811E4AC
thumb_func_start sub_0807CF68
sub_0807CF68: @ 0x0807CF68
push {r4, r5, lr}
bl sub_0807D1C4
adds r4, r0, #0
ldr r5, _0807CF84 @ =gUnk_0811E4A4
ldrh r0, [r4, #4]
adds r1, r5, #0
bl sub_0807D184
ldrh r0, [r4, #2]
adds r1, r5, #0
bl sub_0807D184
pop {r4, r5, pc}
.align 2, 0
_0807CF84: .4byte gUnk_0811E4A4
thumb_func_start sub_0807CF88
sub_0807CF88: @ 0x0807CF88
push {r4, r5, r6, r7, lr}
sub sp, #8
adds r7, r1, #0
bl sub_0807D1C4
adds r6, r0, #0
ldr r0, _0807D004 @ =0x4D435A33
mov r5, sp
str r0, [sp, #4]
add r0, sp, #4
movs r1, #4
bl sub_0807D1A4
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldrh r1, [r6]
adds r0, r7, #0
bl sub_0807D1A4
adds r4, r4, r0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
mov r0, sp
strh r4, [r0]
lsls r4, r4, #0x10
asrs r4, r4, #0x10
rsbs r4, r4, #0
strh r4, [r5, #2]
ldrh r0, [r6, #6]
ldrh r2, [r6]
adds r1, r7, #0
bl sub_0807D20C
adds r4, r0, #0
cmp r4, #0
beq _0807CFDC
ldrh r0, [r6, #2]
mov r1, sp
bl sub_0807D184
adds r4, r0, #0
_0807CFDC:
ldrh r0, [r6, #8]
ldrh r2, [r6]
adds r1, r7, #0
bl sub_0807D20C
cmp r0, #0
beq _0807CFF2
ldrh r0, [r6, #4]
mov r1, sp
bl sub_0807D184
_0807CFF2:
movs r1, #0
cmp r4, #0
bne _0807CFFC
cmp r0, #0
beq _0807CFFE
_0807CFFC:
movs r1, #1
_0807CFFE:
adds r0, r1, #0
add sp, #8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807D004: .4byte 0x4D435A33
thumb_func_start sub_0807D008
sub_0807D008: @ 0x0807D008
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #0xc
adds r7, r1, #0
bl sub_0807D1C4
adds r5, r0, #0
ldrh r0, [r5, #2]
add r4, sp, #4
adds r1, r4, #0
bl sub_0807D0EC
adds r6, r0, #0
mov r8, r4
cmp r6, #2
bne _0807D048
ldrh r0, [r5, #6]
ldrh r2, [r5]
adds r1, r7, #0
bl sub_0807D1D8
cmp r0, #0
beq _0807D046
ldrh r2, [r5]
mov r0, r8
adds r1, r7, #0
bl sub_0807D0A0
cmp r0, #0
bne _0807D072
_0807D046:
movs r6, #0
_0807D048:
ldrh r0, [r5, #4]
mov r1, r8
bl sub_0807D0EC
adds r4, r0, #0
cmp r4, #2
bne _0807D078
ldrh r0, [r5, #8]
ldrh r2, [r5]
adds r1, r7, #0
bl sub_0807D1D8
cmp r0, #0
beq _0807D076
ldrh r2, [r5]
mov r0, r8
adds r1, r7, #0
bl sub_0807D0A0
cmp r0, #0
beq _0807D076
_0807D072:
movs r0, #1
b _0807D098
_0807D076:
movs r4, #0
_0807D078:
movs r0, #0
str r0, [sp]
ldrh r2, [r5]
lsrs r2, r2, #2
movs r0, #0xa0
lsls r0, r0, #0x13
orrs r2, r0
mov r0, sp
adds r1, r7, #0
bl CpuSet
orrs r6, r4
movs r0, #0
cmp r6, #0
bne _0807D098
subs r0, #1
_0807D098:
add sp, #0xc
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807D0A0
sub_0807D0A0: @ 0x0807D0A0
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r5, r1, #0
adds r6, r2, #0
adds r0, r7, #4
movs r1, #4
bl sub_0807D1A4
adds r4, r0, #0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
adds r0, r5, #0
adds r1, r6, #0
bl sub_0807D1A4
adds r4, r4, r0
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
ldrh r0, [r7]
cmp r0, r4
bne _0807D0DE
lsls r0, r0, #0x10
ldrh r1, [r7, #2]
rsbs r0, r0, #0
lsrs r0, r0, #0x10
cmp r1, r0
bne _0807D0DE
ldr r1, [r7, #4]
ldr r0, _0807D0E4 @ =0x4D435A33
cmp r1, r0
beq _0807D0E8
_0807D0DE:
movs r0, #0
b _0807D0EA
.align 2, 0
_0807D0E4: .4byte 0x4D435A33
_0807D0E8:
movs r0, #1
_0807D0EA:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807D0EC
sub_0807D0EC: @ 0x0807D0EC
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
movs r2, #8
bl sub_0807D1D8
cmp r0, #0
bne _0807D100
movs r5, #0
b _0807D10C
_0807D100:
adds r0, r4, #0
bl sub_0807D128
adds r5, r0, #0
cmp r5, #0
bne _0807D124
_0807D10C:
adds r0, r6, #0
adds r0, #8
adds r1, r4, #0
movs r2, #8
bl sub_0807D1D8
cmp r0, #0
beq _0807D124
adds r0, r4, #0
bl sub_0807D128
adds r5, r0, #0
_0807D124:
adds r0, r5, #0
pop {r4, r5, r6, pc}
thumb_func_start sub_0807D128
sub_0807D128: @ 0x0807D128
push {lr}
adds r2, r0, #0
ldr r1, [r2, #4]
ldr r0, _0807D13C @ =0x4D435A33
cmp r1, r0
beq _0807D150
cmp r1, r0
bhi _0807D144
ldr r0, _0807D140 @ =0x466C6544
b _0807D146
.align 2, 0
_0807D13C: .4byte 0x4D435A33
_0807D140: .4byte 0x466C6544
_0807D144:
ldr r0, _0807D14C @ =0x54494E49
_0807D146:
cmp r1, r0
beq _0807D164
b _0807D17C
.align 2, 0
_0807D14C: .4byte 0x54494E49
_0807D150:
ldrh r0, [r2]
ldrh r1, [r2, #2]
adds r0, r0, r1
movs r1, #0x80
lsls r1, r1, #9
movs r3, #0
cmp r0, r1
bne _0807D17E
movs r3, #2
b _0807D17E
_0807D164:
movs r3, #0
ldrh r0, [r2]
ldrh r1, [r2, #2]
ands r1, r0
ldr r0, _0807D178 @ =0x0000FFFF
cmp r1, r0
bne _0807D17E
movs r3, #1
b _0807D17E
.align 2, 0
_0807D178: .4byte 0x0000FFFF
_0807D17C:
movs r3, #0
_0807D17E:
adds r0, r3, #0
pop {pc}
.align 2, 0
thumb_func_start sub_0807D184
sub_0807D184: @ 0x0807D184
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r2, #8
bl sub_0807D20C
cmp r0, #0
bne _0807D1A0
adds r0, r4, #0
adds r0, #8
adds r1, r5, #0
movs r2, #8
bl sub_0807D20C
_0807D1A0:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807D1A4
sub_0807D1A4: @ 0x0807D1A4
push {lr}
adds r2, r0, #0
movs r3, #0
cmp r1, #0
beq _0807D1BC
_0807D1AE:
ldrh r0, [r2]
eors r0, r1
adds r3, r3, r0
adds r2, #2
subs r1, #2
cmp r1, #0
bne _0807D1AE
_0807D1BC:
lsls r0, r3, #0x10
lsrs r0, r0, #0x10
pop {pc}
.align 2, 0
thumb_func_start sub_0807D1C4
sub_0807D1C4: @ 0x0807D1C4
adds r1, r0, #0
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0807D1D4 @ =gUnk_0811E4BC
adds r0, r0, r1
bx lr
.align 2, 0
_0807D1D4: .4byte gUnk_0811E4BC
thumb_func_start sub_0807D1D8
sub_0807D1D8: @ 0x0807D1D8
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
lsrs r4, r2, #3
adds r0, r4, #0
lsrs r5, r5, #3
b _0807D200
_0807D1E6:
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
adds r1, r6, #0
bl sub_080B15E8
lsls r0, r0, #0x10
cmp r0, #0
beq _0807D1FA
movs r0, #0
b _0807D208
_0807D1FA:
adds r5, #1
adds r6, #8
adds r0, r4, #0
_0807D200:
subs r4, #1
cmp r0, #0
bne _0807D1E6
movs r0, #1
_0807D208:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0807D20C
sub_0807D20C: @ 0x0807D20C
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r1, #0
lsrs r5, r2, #3
adds r0, r5, #0
lsrs r6, r6, #3
b _0807D242
_0807D21A:
lsls r0, r6, #0x10
lsrs r4, r0, #0x10
adds r0, r4, #0
adds r1, r7, #0
bl sub_080B18DC
lsls r0, r0, #0x10
cmp r0, #0
beq _0807D23C
adds r0, r4, #0
ldr r1, _0807D238 @ =gUnk_0811E4B4
bl sub_080B18DC
movs r0, #0
b _0807D24A
.align 2, 0
_0807D238: .4byte gUnk_0811E4B4
_0807D23C:
adds r6, #1
adds r7, #8
adds r0, r5, #0
_0807D242:
subs r5, #1
cmp r0, #0
bne _0807D21A
movs r0, #1
_0807D24A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807D24C
sub_0807D24C: @ 0x0807D24C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
lsrs r4, r2, #3
adds r0, r4, #0
lsrs r5, r5, #3
b _0807D274
_0807D25A:
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
adds r1, r6, #0
bl sub_080B180C
lsls r0, r0, #0x10
cmp r0, #0
beq _0807D26E
movs r0, #0
b _0807D27C
_0807D26E:
adds r5, #1
adds r6, #8
adds r0, r4, #0
_0807D274:
subs r4, #1
cmp r0, #0
bne _0807D25A
movs r0, #1
_0807D27C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0807D280
sub_0807D280: @ 0x0807D280
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
adds r5, r1, #0
ldr r1, _0807D2B0 @ =gUnk_03000BF0
movs r0, #0xa
ldrsh r2, [r1, r0]
ldrh r0, [r1, #6]
subs r3, r2, r0
movs r0, #0xc
ldrsh r2, [r1, r0]
ldrh r0, [r1, #8]
subs r4, r2, r0
ldrb r0, [r1, #0x10]
mov r8, r1
cmp r0, #1
beq _0807D330
cmp r0, #1
bgt _0807D2B4
cmp r0, #0
beq _0807D2BA
b _0807D404
.align 2, 0
_0807D2B0: .4byte gUnk_03000BF0
_0807D2B4:
cmp r0, #2
beq _0807D3A0
b _0807D404
_0807D2BA:
mov r2, r8
ldrh r1, [r2, #0x18]
movs r0, #3
ands r0, r1
cmp r0, #1
beq _0807D2C8
b _0807D462
_0807D2C8:
movs r2, #0x1c
asrs r3, r3, #4
mov sb, r3
movs r3, #0x40
adds r3, r3, r5
mov ip, r3
ldr r4, _0807D328 @ =0x040000D4
ldr r7, _0807D32C @ =0x80000020
movs r0, #0xe8
lsls r0, r0, #3
adds r3, r5, r0
subs r0, #0x80
adds r1, r5, r0
_0807D2E2:
str r1, [r4]
str r3, [r4, #4]
str r7, [r4, #8]
ldr r0, [r4, #8]
subs r3, #0x40
subs r1, #0x40
subs r2, #1
cmp r2, #0
bgt _0807D2E2
mov r1, r8
ldrh r0, [r1, #0x20]
lsrs r0, r0, #4
subs r0, #1
ldrh r1, [r1, #0x18]
lsrs r1, r1, #2
subs r0, r0, r1
lsls r0, r0, #8
mov r2, sb
lsls r1, r2, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r6, r6, r0
ldr r0, _0807D328 @ =0x040000D4
str r6, [r0]
str r5, [r0, #4]
ldr r2, _0807D32C @ =0x80000020
str r2, [r0, #8]
ldr r1, [r0, #8]
movs r3, #0x80
lsls r3, r3, #1
adds r1, r6, r3
str r1, [r0]
mov r1, ip
b _0807D3F0
.align 2, 0
_0807D328: .4byte 0x040000D4
_0807D32C: .4byte 0x80000020
_0807D330:
mov r2, r8
ldrh r3, [r2, #0x18]
movs r0, #3
ands r0, r3
cmp r0, #0
beq _0807D33E
b _0807D462
_0807D33E:
asrs r7, r4, #4
movs r0, #0x3c
adds r0, r0, r5
mov sb, r0
cmp r3, #0
beq _0807D36A
ldr r4, _0807D398 @ =0x040000D4
ldr r1, _0807D39C @ =0x8000001E
mov ip, r1
adds r3, r5, #4
adds r1, r5, #0
movs r2, #0x15
_0807D356:
str r3, [r4]
str r1, [r4, #4]
mov r0, ip
str r0, [r4, #8]
ldr r0, [r4, #8]
adds r3, #0x40
adds r1, #0x40
subs r2, #1
cmp r2, #0
bge _0807D356
_0807D36A:
lsls r1, r7, #8
mov r2, r8
ldrh r0, [r2, #0x18]
lsrs r0, r0, #2
lsls r0, r0, #1
adds r1, r1, r0
lsls r1, r1, #1
adds r6, r6, r1
mov r5, sb
movs r1, #0x80
lsls r1, r1, #1
movs r2, #0x15
_0807D382:
ldrh r0, [r6]
strh r0, [r5]
ldrh r0, [r6, #2]
strh r0, [r5, #2]
adds r5, #0x40
adds r6, r6, r1
subs r2, #1
cmp r2, #0
bge _0807D382
b _0807D462
.align 2, 0
_0807D398: .4byte 0x040000D4
_0807D39C: .4byte 0x8000001E
_0807D3A0:
mov r0, r8
ldrh r1, [r0, #0x18]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0807D462
lsls r2, r1, #0x10
cmp r2, #0
beq _0807D3C2
ldr r1, _0807D3F8 @ =0x040000D4
adds r0, r5, #0
adds r0, #0x80
str r0, [r1]
str r5, [r1, #4]
ldr r0, _0807D3FC @ =0x800003C0
str r0, [r1, #8]
ldr r0, [r1, #8]
_0807D3C2:
lsrs r0, r2, #0x12
lsls r0, r0, #8
asrs r1, r3, #4
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r6, r6, r0
ldr r0, _0807D3F8 @ =0x040000D4
str r6, [r0]
movs r2, #0xa0
lsls r2, r2, #3
adds r1, r5, r2
str r1, [r0, #4]
ldr r2, _0807D400 @ =0x80000020
str r2, [r0, #8]
ldr r1, [r0, #8]
movs r3, #0x80
lsls r3, r3, #1
adds r1, r6, r3
str r1, [r0]
movs r3, #0xa8
lsls r3, r3, #3
adds r1, r5, r3
_0807D3F0:
str r1, [r0, #4]
str r2, [r0, #8]
ldr r0, [r0, #8]
b _0807D462
.align 2, 0
_0807D3F8: .4byte 0x040000D4
_0807D3FC: .4byte 0x800003C0
_0807D400: .4byte 0x80000020
_0807D404:
mov r0, r8
ldrh r1, [r0, #0x18]
movs r0, #3
ands r0, r1
cmp r0, #1
bne _0807D462
movs r2, #0
asrs r7, r4, #4
mov ip, r5
_0807D416:
movs r1, #0x1d
mov r3, ip
adds r3, #0x3a
_0807D41C:
ldrh r0, [r3]
strh r0, [r3, #4]
subs r3, #2
subs r1, #1
cmp r1, #0
bge _0807D41C
movs r1, #0x40
add ip, r1
adds r2, #1
cmp r2, #0x15
ble _0807D416
lsls r0, r7, #8
mov r2, r8
ldrh r1, [r2, #0x1e]
lsrs r1, r1, #4
subs r1, #1
ldrh r2, [r2, #0x18]
lsrs r2, r2, #2
subs r1, r1, r2
lsls r1, r1, #1
adds r0, r0, r1
lsls r0, r0, #1
adds r6, r6, r0
movs r1, #0x80
lsls r1, r1, #1
movs r2, #0x15
_0807D450:
ldrh r0, [r6]
strh r0, [r5]
ldrh r0, [r6, #2]
strh r0, [r5, #2]
adds r5, #0x40
adds r6, r6, r1
subs r2, #1
cmp r2, #0
bge _0807D450
_0807D462:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807D46C
sub_0807D46C: @ 0x0807D46C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
str r0, [sp]
str r1, [sp, #4]
ldr r0, _0807D494 @ =gUnk_03000BF0
ldrb r2, [r0, #0x10]
mov sb, r0
cmp r2, #1
bne _0807D488
b _0807D5C4
_0807D488:
cmp r2, #1
bgt _0807D498
cmp r2, #0
beq _0807D4A4
b _0807D6CC
.align 2, 0
_0807D494: .4byte gUnk_03000BF0
_0807D498:
cmp r2, #2
beq _0807D4A4
cmp r2, #3
bne _0807D4A2
b _0807D5C4
_0807D4A2:
b _0807D6CC
_0807D4A4:
mov r1, sb
movs r2, #0xa
ldrsh r0, [r1, r2]
ldrh r1, [r1, #6]
subs r5, r0, r1
cmp r5, #7
ble _0807D4B4
subs r5, #8
_0807D4B4:
mov r3, sb
ldr r0, [r3, #0x30]
movs r2, #0x2e
ldrsh r0, [r0, r2]
subs r0, r0, r1
subs r3, r0, #4
mov r8, r3
cmp r3, #7
ble _0807D4CA
subs r0, #0xc
mov r8, r0
_0807D4CA:
mov r0, sb
movs r2, #0xc
ldrsh r1, [r0, r2]
ldrh r0, [r0, #8]
subs r1, r1, r0
mov ip, r1
cmp r1, #7
ble _0807D4E0
movs r3, #8
rsbs r3, r3, #0
add ip, r3
_0807D4E0:
mov r1, sb
ldrh r0, [r1, #0x18]
lsls r0, r0, #3
mov r2, r8
subs r0, r2, r0
adds r7, r5, #0
adds r7, #0xf8
cmp r0, r5
blt _0807D548
mov r1, ip
asrs r3, r1, #3
lsls r1, r3, #8
ldr r2, [sp]
adds r1, r2, r1
asrs r0, r0, #3
lsls r2, r0, #1
adds r4, r1, r2
movs r1, #0x1f
ands r0, r1
lsls r0, r0, #1
ldr r2, [sp, #4]
adds r6, r2, r0
ands r3, r1
lsls r2, r3, #5
mov r3, sb
ldrh r0, [r3, #0x20]
lsls r1, r0, #0x10
lsrs r0, r1, #0x10
cmp r0, #0xaf
bhi _0807D520
lsrs r3, r1, #0x13
b _0807D522
_0807D520:
movs r3, #0x16
_0807D522:
adds r7, r5, #0
adds r7, #0xf8
cmp r3, #0
ble _0807D548
ldr r0, _0807D55C @ =0x000003FF
mov sl, r0
_0807D52E:
lsls r0, r2, #1
adds r0, r0, r6
ldrh r1, [r4]
strh r1, [r0]
movs r1, #0x80
lsls r1, r1, #1
adds r4, r4, r1
adds r2, #0x20
mov r0, sl
ands r2, r0
subs r3, #1
cmp r3, #0
bgt _0807D52E
_0807D548:
mov r1, sb
ldrh r0, [r1, #0x18]
adds r0, #1
lsls r0, r0, #3
add r0, r8
ldrh r2, [r1, #0x1e]
cmp r7, r2
blt _0807D560
adds r1, r7, #0
b _0807D566
.align 2, 0
_0807D55C: .4byte 0x000003FF
_0807D560:
movs r3, #0x80
lsls r3, r3, #1
adds r1, r5, r3
_0807D566:
cmp r0, r1
blt _0807D56C
b _0807D6CC
_0807D56C:
mov r1, ip
asrs r3, r1, #3
lsls r1, r3, #8
ldr r2, [sp]
adds r1, r2, r1
asrs r0, r0, #3
lsls r2, r0, #1
adds r4, r1, r2
movs r1, #0x1f
ands r0, r1
lsls r0, r0, #1
ldr r2, [sp, #4]
adds r6, r2, r0
ands r3, r1
lsls r2, r3, #5
mov r3, sb
ldrh r0, [r3, #0x20]
lsls r1, r0, #0x10
lsrs r0, r1, #0x10
cmp r0, #0xaf
bhi _0807D59A
lsrs r3, r1, #0x13
b _0807D59C
_0807D59A:
movs r3, #0x16
_0807D59C:
cmp r3, #0
bgt _0807D5A2
b _0807D6CC
_0807D5A2:
movs r7, #0x80
lsls r7, r7, #1
ldr r5, _0807D5C0 @ =0x000003FF
_0807D5A8:
lsls r0, r2, #1
adds r0, r0, r6
ldrh r1, [r4]
strh r1, [r0]
adds r4, r4, r7
adds r2, #0x20
ands r2, r5
subs r3, #1
cmp r3, #0
bgt _0807D5A8
b _0807D6CC
.align 2, 0
_0807D5C0: .4byte 0x000003FF
_0807D5C4:
mov r1, sb
movs r2, #0xc
ldrsh r0, [r1, r2]
ldrh r2, [r1, #8]
subs r5, r0, r2
cmp r5, #7
ble _0807D5D4
subs r5, #8
_0807D5D4:
mov r3, sb
movs r0, #0xa
ldrsh r1, [r3, r0]
ldrh r0, [r3, #6]
subs r1, r1, r0
mov r8, r1
cmp r1, #7
ble _0807D5EA
movs r1, #8
rsbs r1, r1, #0
add r8, r1
_0807D5EA:
mov r3, sb
ldr r0, [r3, #0x30]
movs r1, #0x32
ldrsh r0, [r0, r1]
subs r0, r0, r2
subs r2, r0, #4
mov ip, r2
cmp r2, #7
ble _0807D600
subs r0, #0xc
mov ip, r0
_0807D600:
mov r3, sb
ldrh r0, [r3, #0x18]
lsls r0, r0, #3
mov r1, ip
subs r0, r1, r0
adds r7, r5, #0
adds r7, #0xa8
movs r2, #0xb0
adds r2, r2, r5
mov sl, r2
cmp r0, r5
blt _0807D66A
asrs r2, r0, #3
lsls r0, r2, #8
ldr r3, [sp]
adds r0, r3, r0
mov r1, r8
asrs r3, r1, #3
lsls r1, r3, #1
adds r4, r0, r1
movs r0, #0x1f
ands r2, r0
lsls r2, r2, #6
ldr r1, [sp, #4]
adds r6, r1, r2
adds r2, r0, #0
ands r2, r3
mov r3, sb
ldrh r0, [r3, #0x1e]
lsls r1, r0, #0x10
lsrs r0, r1, #0x10
cmp r0, #0xff
bhi _0807D646
lsrs r3, r1, #0x13
b _0807D648
_0807D646:
movs r3, #0x20
_0807D648:
adds r7, r5, #0
adds r7, #0xa8
adds r5, #0xb0
mov sl, r5
cmp r3, #0
ble _0807D66A
movs r5, #0x1f
_0807D656:
lsls r0, r2, #1
adds r0, r0, r6
ldrh r1, [r4]
strh r1, [r0]
adds r4, #2
adds r2, #1
ands r2, r5
subs r3, #1
cmp r3, #0
bgt _0807D656
_0807D66A:
mov r1, sb
ldrh r0, [r1, #0x18]
adds r0, #1
lsls r0, r0, #3
add r0, ip
mov r2, sl
ldrh r1, [r1, #0x20]
cmp r7, r1
blt _0807D67E
adds r2, r7, #0
_0807D67E:
cmp r0, r2
bge _0807D6CC
asrs r2, r0, #3
lsls r0, r2, #8
ldr r1, [sp]
adds r0, r1, r0
mov r1, r8
asrs r3, r1, #3
lsls r1, r3, #1
adds r4, r0, r1
movs r0, #0x1f
ands r2, r0
lsls r2, r2, #6
ldr r1, [sp, #4]
adds r6, r1, r2
adds r2, r0, #0
ands r2, r3
mov r3, sb
ldrh r0, [r3, #0x1e]
lsls r1, r0, #0x10
lsrs r0, r1, #0x10
cmp r0, #0xff
bhi _0807D6B0
lsrs r3, r1, #0x13
b _0807D6B2
_0807D6B0:
movs r3, #0x20
_0807D6B2:
cmp r3, #0
ble _0807D6CC
movs r5, #0x1f
_0807D6B8:
lsls r0, r2, #1
adds r0, r0, r6
ldrh r1, [r4]
strh r1, [r0]
adds r4, #2
adds r2, #1
ands r2, r5
subs r3, #1
cmp r3, #0
bgt _0807D6B8
_0807D6CC:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0807D6D8
sub_0807D6D8: @ 0x0807D6D8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x44
str r0, [sp]
str r1, [sp, #4]
ldr r5, _0807D8BC @ =gUnk_03000BF0
ldrh r0, [r5, #0x18]
cmp r0, #0
bne _0807D6F2
b _0807DA62
_0807D6F2:
ldrh r0, [r5, #0x1a]
cmp r0, #0
bne _0807D6FA
b _0807DA62
_0807D6FA:
movs r1, #0xa
ldrsh r0, [r5, r1]
ldrh r1, [r5, #6]
subs r0, r0, r1
movs r4, #0x10
rsbs r4, r4, #0
ands r0, r4
str r0, [sp, #0x24]
ldr r3, [r5, #0x30]
movs r2, #0x2e
ldrsh r0, [r3, r2]
subs r0, r0, r1
movs r2, #8
rsbs r2, r2, #0
ands r0, r2
str r0, [sp, #0x14]
ldr r1, [sp, #0x24]
subs r0, r0, r1
str r0, [sp, #0x1c]
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r1, [r5, #8]
subs r0, r0, r1
ands r0, r4
str r0, [sp, #0x28]
movs r4, #0x32
ldrsh r0, [r3, r4]
subs r0, r0, r1
ands r0, r2
str r0, [sp, #0x18]
ldr r1, [sp, #0x28]
subs r0, r0, r1
str r0, [sp, #0x20]
ldrh r0, [r5, #0x18]
adds r2, r0, #0
muls r2, r0, r2
str r2, [sp, #0xc]
ldrh r3, [r5, #0x1a]
str r3, [sp, #8]
adds r4, r3, #0
muls r4, r3, r4
str r4, [sp, #0x10]
adds r4, r0, #0
movs r0, #0
mov sb, r0
lsls r0, r4, #1
rsbs r0, r0, #0
adds r0, #1
ldr r1, [sp, #0x10]
muls r0, r1, r0
lsls r6, r2, #1
adds r7, r0, r6
adds r2, r4, #0
muls r2, r1, r2
mov r8, r2
mov r0, r8
ldr r1, [sp, #0xc]
bl __divsi3
mov ip, r0
cmp sb, ip
ble _0807D778
b _0807D8D8
_0807D778:
mov sl, r5
ldr r3, [sp, #0xc]
adds r0, r6, r3
lsls r0, r0, #1
str r0, [sp, #0x3c]
mov r0, r8
str r0, [sp, #0x40]
ldr r1, [sp, #0x14]
subs r1, r1, r4
mov r8, r1
ldr r2, [sp, #0x14]
adds r6, r4, r2
movs r0, #0x80
lsls r0, r0, #1
ldr r3, [sp, #0x24]
adds r0, r3, r0
str r0, [sp, #0x2c]
_0807D79A:
ldr r0, [sp, #0x28]
adds r0, #0xb0
ldr r1, [sp, #0x18]
add r1, sb
cmp r0, r1
ble _0807D812
ldr r0, [sp, #0x20]
add r0, sb
asrs r0, r0, #3
movs r5, #0x1f
ands r0, r5
cmp r0, #0x1f
beq _0807D812
lsls r0, r0, #6
ldr r3, [sp, #4]
adds r2, r3, r0
asrs r0, r1, #3
lsls r0, r0, #8
ldr r1, [sp]
adds r3, r1, r0
ldr r0, [sp, #0x2c]
cmp r0, r6
ble _0807D7EA
ldr r0, [sp, #0x1c]
adds r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
asrs r0, r6, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r1, sl
ldrh r0, [r1, #0x1c]
movs r1, #1
orrs r0, r1
mov r1, sl
strh r0, [r1, #0x1c]
_0807D7EA:
ldr r0, [sp, #0x24]
cmp r0, r8
bge _0807D812
ldr r0, [sp, #0x1c]
subs r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
mov r2, r8
asrs r0, r2, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r3, sl
ldrh r0, [r3, #0x1c]
movs r1, #2
orrs r0, r1
strh r0, [r3, #0x1c]
_0807D812:
ldr r0, [sp, #0x18]
mov r2, sb
subs r1, r0, r2
adds r0, r1, #0
adds r0, #8
ldr r3, [sp, #0x28]
cmp r3, r0
bge _0807D88E
ldr r3, [sp, #0x20]
subs r0, r3, r2
asrs r0, r0, #3
movs r5, #0x1f
ands r0, r5
cmp r0, #0x1f
beq _0807D88E
lsls r0, r0, #6
ldr r3, [sp, #4]
adds r2, r3, r0
asrs r0, r1, #3
lsls r0, r0, #8
ldr r1, [sp]
adds r3, r1, r0
ldr r0, [sp, #0x2c]
cmp r0, r6
ble _0807D866
ldr r0, [sp, #0x1c]
adds r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
asrs r0, r6, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r1, sl
ldrh r0, [r1, #0x1c]
movs r1, #4
orrs r0, r1
mov r1, sl
strh r0, [r1, #0x1c]
_0807D866:
ldr r0, [sp, #0x24]
cmp r0, r8
bge _0807D88E
ldr r0, [sp, #0x1c]
subs r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
mov r2, r8
asrs r0, r2, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r3, sl
ldrh r0, [r3, #0x1c]
movs r1, #8
orrs r0, r1
strh r0, [r3, #0x1c]
_0807D88E:
cmp r7, #0
ble _0807D8C0
lsls r0, r4, #2
rsbs r0, r0, #0
adds r0, #4
ldr r1, [sp, #0x10]
muls r0, r1, r0
ldr r2, [sp, #0x3c]
adds r0, r0, r2
adds r7, r7, r0
ldr r3, [sp, #0x40]
subs r3, r3, r1
str r3, [sp, #0x40]
movs r0, #1
add r8, r0
subs r6, #1
subs r4, #1
adds r0, r3, #0
ldr r1, [sp, #0xc]
bl __divsi3
mov ip, r0
b _0807D8C4
.align 2, 0
_0807D8BC: .4byte gUnk_03000BF0
_0807D8C0:
ldr r1, [sp, #0x3c]
adds r7, r7, r1
_0807D8C4:
ldr r2, [sp, #0xc]
lsls r0, r2, #2
ldr r3, [sp, #0x3c]
adds r3, r3, r0
str r3, [sp, #0x3c]
movs r0, #1
add sb, r0
cmp sb, ip
bgt _0807D8D8
b _0807D79A
_0807D8D8:
movs r4, #0
ldr r1, [sp, #8]
mov sb, r1
ldr r2, [sp, #0x10]
lsls r6, r2, #1
lsls r0, r1, #1
rsbs r0, r0, #0
adds r0, #1
ldr r3, [sp, #0xc]
muls r0, r3, r0
adds r7, r6, r0
mov r5, sb
muls r5, r3, r5
adds r0, r5, #0
adds r1, r2, #0
bl __divsi3
mov ip, r0
cmp r4, ip
ble _0807D902
b _0807DA62
_0807D902:
ldr r0, _0807DA40 @ =gUnk_03000BF0
mov sl, r0
ldr r1, [sp, #0x10]
adds r0, r6, r1
lsls r0, r0, #1
str r0, [sp, #0x34]
ldr r6, [sp, #0x14]
mov r8, r6
str r5, [sp, #0x38]
movs r3, #0x80
lsls r3, r3, #1
ldr r2, [sp, #0x24]
adds r3, r2, r3
str r3, [sp, #0x30]
_0807D91E:
ldr r0, [sp, #0x28]
adds r0, #0xb0
ldr r1, [sp, #0x18]
add r1, sb
cmp r0, r1
ble _0807D996
ldr r0, [sp, #0x20]
add r0, sb
asrs r0, r0, #3
movs r5, #0x1f
ands r0, r5
cmp r0, #0x1f
beq _0807D996
lsls r0, r0, #6
ldr r3, [sp, #4]
adds r2, r3, r0
asrs r0, r1, #3
lsls r0, r0, #8
ldr r1, [sp]
adds r3, r1, r0
ldr r0, [sp, #0x30]
cmp r0, r6
ble _0807D96E
ldr r0, [sp, #0x1c]
adds r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
asrs r0, r6, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r1, sl
ldrh r0, [r1, #0x1c]
movs r1, #0x10
orrs r0, r1
mov r1, sl
strh r0, [r1, #0x1c]
_0807D96E:
ldr r0, [sp, #0x24]
cmp r0, r8
bge _0807D996
ldr r0, [sp, #0x1c]
subs r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
mov r2, r8
asrs r0, r2, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r3, sl
ldrh r0, [r3, #0x1c]
movs r1, #0x20
orrs r0, r1
strh r0, [r3, #0x1c]
_0807D996:
ldr r0, [sp, #0x18]
mov r2, sb
subs r1, r0, r2
adds r0, r1, #0
adds r0, #8
ldr r3, [sp, #0x28]
cmp r3, r0
bge _0807DA12
ldr r3, [sp, #0x20]
subs r0, r3, r2
asrs r0, r0, #3
movs r5, #0x1f
ands r0, r5
cmp r0, #0x1f
beq _0807DA12
lsls r0, r0, #6
ldr r3, [sp, #4]
adds r2, r3, r0
asrs r0, r1, #3
lsls r0, r0, #8
ldr r1, [sp]
adds r3, r1, r0
ldr r0, [sp, #0x30]
cmp r0, r6
ble _0807D9EA
ldr r0, [sp, #0x1c]
adds r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
asrs r0, r6, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r1, sl
ldrh r0, [r1, #0x1c]
movs r1, #0x40
orrs r0, r1
mov r1, sl
strh r0, [r1, #0x1c]
_0807D9EA:
ldr r0, [sp, #0x24]
cmp r0, r8
bge _0807DA12
ldr r0, [sp, #0x1c]
subs r1, r0, r4
asrs r1, r1, #3
ands r1, r5
lsls r1, r1, #1
adds r1, r1, r2
mov r2, r8
asrs r0, r2, #3
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
strh r0, [r1]
mov r3, sl
ldrh r0, [r3, #0x1c]
movs r1, #0x80
orrs r0, r1
strh r0, [r3, #0x1c]
_0807DA12:
cmp r7, #0
ble _0807DA44
mov r1, sb
lsls r0, r1, #2
rsbs r0, r0, #0
adds r0, #4
ldr r2, [sp, #0xc]
muls r0, r2, r0
ldr r3, [sp, #0x34]
adds r0, r3, r0
adds r7, r7, r0
ldr r0, [sp, #0x38]
subs r0, r0, r2
str r0, [sp, #0x38]
movs r1, #1
rsbs r1, r1, #0
add sb, r1
ldr r1, [sp, #0x10]
bl __divsi3
mov ip, r0
b _0807DA48
.align 2, 0
_0807DA40: .4byte gUnk_03000BF0
_0807DA44:
ldr r2, [sp, #0x34]
adds r7, r7, r2
_0807DA48:
ldr r3, [sp, #0x10]
lsls r0, r3, #2
ldr r1, [sp, #0x34]
adds r1, r1, r0
str r1, [sp, #0x34]
movs r2, #1
rsbs r2, r2, #0
add r8, r2
adds r6, #1
adds r4, #1
cmp r4, ip
bgt _0807DA62
b _0807D91E
_0807DA62:
add sp, #0x44
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807DA70
sub_0807DA70: @ 0x0807DA70
push {r4, lr}
ldr r4, _0807DA94 @ =gUnk_02033280
adds r0, r4, #0
movs r1, #0xc
bl sub_0801D630
ldr r0, _0807DA98 @ =gUnk_02036570
movs r1, #0x90
lsls r1, r1, #3
bl sub_0801D630
ldr r0, _0807DA9C @ =gUnk_02022750
movs r1, #0x24
bl sub_0801D630
movs r0, #8
strb r0, [r4, #8]
pop {r4, pc}
.align 2, 0
_0807DA94: .4byte gUnk_02033280
_0807DA98: .4byte gUnk_02036570
_0807DA9C: .4byte gUnk_02022750
thumb_func_start sub_0807DAA0
sub_0807DAA0: @ 0x0807DAA0
push {lr}
ldr r1, _0807DABC @ =gUnk_02036570
movs r0, #0x90
lsls r0, r0, #3
adds r2, r1, r0
_0807DAAA:
ldr r0, [r1]
cmp r0, #0
beq _0807DAC0
adds r1, #0x24
cmp r1, r2
blo _0807DAAA
movs r0, #0
b _0807DAC2
.align 2, 0
_0807DABC: .4byte gUnk_02036570
_0807DAC0:
adds r0, r1, #0
_0807DAC2:
pop {pc}
thumb_func_start sub_0807DAC4
sub_0807DAC4: @ 0x0807DAC4
push {lr}
movs r1, #0x24
bl sub_0801D630
pop {pc}
.align 2, 0
thumb_func_start sub_0807DAD0
sub_0807DAD0: @ 0x0807DAD0
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
bl sub_0807DAA0
adds r4, r0, #0
cmp r4, #0
beq _0807DAEA
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl sub_0807DAF0
_0807DAEA:
adds r0, r4, #0
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0807DAF0
sub_0807DAF0: @ 0x0807DAF0
push {r4, lr}
ldrb r4, [r0, #0x10]
movs r3, #2
orrs r3, r4
strb r3, [r0, #0x10]
adds r0, #0x84
str r1, [r0]
adds r0, r1, #0
adds r1, r2, #0
bl sub_0807DB88
pop {r4, pc}
thumb_func_start sub_0807DB08
sub_0807DB08: @ 0x0807DB08
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0807DB28
movs r0, #0xfd
ands r0, r1
movs r5, #0
strb r0, [r4, #0x10]
adds r4, #0x84
ldr r0, [r4]
bl sub_0807DAC4
str r5, [r4]
_0807DB28:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807DB2C
sub_0807DB2C: @ 0x0807DB2C
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _0807DB5C @ =gUnk_02022750
adds r0, r4, #0
movs r1, #0x24
bl sub_0801D630
str r5, [r4]
ldr r0, _0807DB60 @ =gLinkEntity
adds r0, #0x84
str r4, [r0]
ldr r2, _0807DB64 @ =gUnk_03003F80
movs r1, #0
movs r0, #0x1c
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x3a
strb r1, [r0]
subs r0, #1
strb r1, [r0]
subs r0, #1
strb r1, [r0]
pop {r4, r5, pc}
.align 2, 0
_0807DB5C: .4byte gUnk_02022750
_0807DB60: .4byte gLinkEntity
_0807DB64: .4byte gUnk_03003F80
thumb_func_start sub_0807DB68
sub_0807DB68: @ 0x0807DB68
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_0807DAA0
adds r2, r0, #0
cmp r2, #0
beq _0807DB84
ldrb r1, [r4, #0x10]
movs r0, #2
orrs r0, r1
strb r0, [r4, #0x10]
str r2, [r4, #0x3c]
str r5, [r2]
_0807DB84:
adds r0, r2, #0
pop {r4, r5, pc}
thumb_func_start sub_0807DB88
sub_0807DB88: @ 0x0807DB88
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r1, #0x24
bl sub_0801D630
str r5, [r4]
pop {r4, r5, pc}
thumb_func_start sub_0807DB98
sub_0807DB98: @ 0x0807DB98
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
ldr r0, [r6, #8]
cmp r0, #0
bne _0807DBA6
b _0807DD48
_0807DBA6:
movs r7, #0
adds r4, r5, #0
adds r4, #0x82
_0807DBAC:
ldr r1, [r6, #8]
mvns r0, r1
adds r2, r0, #1
ands r2, r1
eors r1, r2
str r1, [r6, #8]
movs r0, #0x80
lsls r0, r0, #2
cmp r2, r0
bne _0807DBC2
b _0807DCC8
_0807DBC2:
cmp r2, r0
bhi _0807DC04
cmp r2, #0x10
beq _0807DC82
cmp r2, #0x10
bhi _0807DBE8
cmp r2, #2
beq _0807DC70
cmp r2, #2
bhi _0807DBDC
cmp r2, #1
beq _0807DC68
b _0807DD40
_0807DBDC:
cmp r2, #4
bne _0807DBE2
b _0807DD40
_0807DBE2:
cmp r2, #8
beq _0807DC7A
b _0807DD40
_0807DBE8:
cmp r2, #0x40
beq _0807DC9E
cmp r2, #0x40
bhi _0807DBF6
cmp r2, #0x20
beq _0807DC90
b _0807DD40
_0807DBF6:
cmp r2, #0x80
beq _0807DCA8
movs r0, #0x80
lsls r0, r0, #1
cmp r2, r0
beq _0807DCBA
b _0807DD40
_0807DC04:
movs r0, #0x80
lsls r0, r0, #7
cmp r2, r0
beq _0807DCFC
cmp r2, r0
bhi _0807DC38
movs r0, #0x80
lsls r0, r0, #4
cmp r2, r0
beq _0807DCDE
cmp r2, r0
bhi _0807DC26
movs r0, #0x80
lsls r0, r0, #3
cmp r2, r0
beq _0807DCD6
b _0807DD40
_0807DC26:
movs r0, #0x80
lsls r0, r0, #5
cmp r2, r0
beq _0807DCE8
movs r0, #0x80
lsls r0, r0, #6
cmp r2, r0
beq _0807DCF4
b _0807DD40
_0807DC38:
movs r0, #0x80
lsls r0, r0, #0xa
cmp r2, r0
beq _0807DD14
cmp r2, r0
bhi _0807DC56
movs r0, #0x80
lsls r0, r0, #8
cmp r2, r0
beq _0807DD04
movs r0, #0x80
lsls r0, r0, #9
cmp r2, r0
beq _0807DD0C
b _0807DD40
_0807DC56:
movs r0, #0x80
lsls r0, r0, #0xb
cmp r2, r0
beq _0807DD2E
movs r0, #0x80
lsls r0, r0, #0xc
cmp r2, r0
beq _0807DD36
b _0807DD40
_0807DC68:
adds r0, r5, #0
adds r0, #0x80
strh r7, [r0]
b _0807DD40
_0807DC70:
adds r1, r5, #0
adds r1, #0x80
movs r0, #4
strh r0, [r1]
b _0807DD40
_0807DC7A:
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r5, #0x20]
b _0807DD40
_0807DC82:
adds r0, r5, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2CFC
b _0807DD40
_0807DC90:
adds r0, r5, #0
movs r1, #8
movs r2, #0x18
rsbs r2, r2, #0
bl sub_080A2D0C
b _0807DD40
_0807DC9E:
adds r0, r6, #0
bl sub_0807DAC4
bl sub_0805E780
_0807DCA8:
ldrb r0, [r5, #0x18]
movs r2, #4
rsbs r2, r2, #0
adds r1, r2, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
b _0807DD40
_0807DCBA:
ldrb r0, [r5, #0x18]
movs r3, #4
rsbs r3, r3, #0
adds r1, r3, #0
ands r0, r1
strb r0, [r5, #0x18]
b _0807DD40
_0807DCC8:
adds r0, r5, #0
adds r0, #0x63
strb r7, [r0]
subs r0, #1
strb r7, [r0]
strh r7, [r4]
b _0807DD40
_0807DCD6:
ldrh r0, [r4]
movs r1, #2
orrs r0, r1
b _0807DD3E
_0807DCDE:
ldrh r0, [r4]
ldr r2, _0807DCE4 @ =0x0000FFFD
b _0807DD3A
.align 2, 0
_0807DCE4: .4byte 0x0000FFFD
_0807DCE8:
ldrh r0, [r4]
ldr r3, _0807DCF0 @ =0x0000FFFE
adds r1, r3, #0
b _0807DD3C
.align 2, 0
_0807DCF0: .4byte 0x0000FFFE
_0807DCF4:
ldrh r0, [r4]
movs r1, #1
orrs r0, r1
b _0807DD3E
_0807DCFC:
ldrh r0, [r4]
movs r1, #8
orrs r0, r1
b _0807DD3E
_0807DD04:
ldrh r0, [r4]
movs r1, #4
eors r0, r1
b _0807DD3E
_0807DD0C:
ldrh r0, [r4]
movs r1, #0x10
eors r0, r1
b _0807DD3E
_0807DD14:
ldrb r2, [r5, #0x18]
lsls r0, r2, #0x19
lsrs r0, r0, #0x1f
movs r1, #1
eors r0, r1
lsls r0, r0, #6
movs r3, #0x41
rsbs r3, r3, #0
adds r1, r3, #0
ands r2, r1
orrs r2, r0
strb r2, [r5, #0x18]
b _0807DD40
_0807DD2E:
ldrh r0, [r4]
movs r1, #0x20
orrs r0, r1
b _0807DD3E
_0807DD36:
ldrh r0, [r4]
ldr r2, _0807DD4C @ =0x0000FFDF
_0807DD3A:
adds r1, r2, #0
_0807DD3C:
ands r0, r1
_0807DD3E:
strh r0, [r4]
_0807DD40:
ldr r0, [r6, #8]
cmp r0, #0
beq _0807DD48
b _0807DBAC
_0807DD48:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807DD4C: .4byte 0x0000FFDF
thumb_func_start sub_0807DD50
sub_0807DD50: @ 0x0807DD50
push {r4, lr}
adds r4, r0, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_0807DD94
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807DD64
sub_0807DD64: @ 0x0807DD64
adds r3, r0, #0
ldrb r0, [r3, #0x14]
movs r2, #0
strb r0, [r3, #0xf]
adds r1, r3, #0
adds r1, #0x58
movs r0, #0xff
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x80
strh r2, [r0]
adds r0, #2
strh r2, [r0]
bx lr
thumb_func_start sub_0807DD80
sub_0807DD80: @ 0x0807DD80
push {r4, lr}
adds r4, r0, #0
adds r0, #0x84
ldr r0, [r0]
bl sub_0807DB88
adds r0, r4, #0
bl sub_0807DD64
pop {r4, pc}
thumb_func_start sub_0807DD94
sub_0807DD94: @ 0x0807DD94
push {r4, lr}
adds r4, r0, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_0807DE80
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807DDAC
sub_0807DDAC: @ 0x0807DDAC
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r4, r5, #0
adds r4, #0x84
ldr r1, [r4]
cmp r1, #0
beq _0807DDE0
bl sub_0807DF74
cmp r6, #0
beq _0807DDCE
ldr r1, [r4]
adds r0, r5, #0
bl _call_via_r6
b _0807DDD6
_0807DDCE:
ldr r1, [r4]
adds r0, r5, #0
bl sub_0807DB98
_0807DDD6:
ldr r0, [r5, #4]
cmp r0, #0
bne _0807DDE0
bl sub_0805E780
_0807DDE0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0807DDE4
sub_0807DDE4: @ 0x0807DDE4
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x82
ldrh r5, [r0]
_0807DDEC:
cmp r5, #0
beq _0807DE7C
mvns r0, r5
adds r0, #1
ands r0, r5
eors r5, r0
cmp r0, #8
beq _0807DE26
cmp r0, #8
bhi _0807DE06
cmp r0, #2
beq _0807DE10
b _0807DDEC
_0807DE06:
cmp r0, #0x10
beq _0807DE44
cmp r0, #0x20
beq _0807DE70
b _0807DDEC
_0807DE10:
ldrb r0, [r4, #8]
cmp r0, #7
bne _0807DE1E
adds r0, r4, #0
bl sub_0806ED78
b _0807DDEC
_0807DE1E:
adds r0, r4, #0
bl sub_0800445C
b _0807DDEC
_0807DE26:
ldr r0, _0807DE40 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0807DDEC
ldrb r0, [r4, #0xf]
adds r0, #2
movs r1, #7
ands r0, r1
strb r0, [r4, #0x14]
strb r0, [r4, #0xf]
b _0807DDEC
.align 2, 0
_0807DE40: .4byte gUnk_030010A0
_0807DE44:
ldr r0, _0807DE68 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0807DDEC
bl sub_08000E50
ldr r2, _0807DE6C @ =gUnk_0811E510
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
adds r1, r4, #0
adds r1, #0x62
strb r0, [r1]
b _0807DDEC
.align 2, 0
_0807DE68: .4byte gUnk_030010A0
_0807DE6C: .4byte gUnk_0811E510
_0807DE70:
adds r0, r4, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
b _0807DDEC
_0807DE7C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0807DE80
sub_0807DE80: @ 0x0807DE80
push {r4, lr}
adds r4, r0, #0
adds r0, #0x80
ldrh r3, [r0]
cmp r3, #7
bhi _0807DEB0
adds r0, #2
ldrh r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0807DEA4
movs r1, #0xfc
ands r1, r3
ldrb r0, [r4, #0xf]
lsrs r0, r0, #1
adds r3, r1, r0
b _0807DEB0
_0807DEA4:
movs r0, #0xfc
ands r0, r3
ldrb r2, [r4, #0x14]
lsrs r1, r2, #1
adds r3, r0, r1
strb r2, [r4, #0xf]
_0807DEB0:
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r3, r0
beq _0807DEC2
adds r0, r4, #0
adds r1, r3, #0
bl sub_080042AC
_0807DEC2:
adds r0, r4, #0
adds r0, #0x82
ldrh r1, [r0]
movs r0, #4
ands r0, r1
movs r1, #1
cmp r0, #0
beq _0807DED4
movs r1, #2
_0807DED4:
adds r0, r4, #0
bl sub_080042BA
pop {r4, pc}
thumb_func_start sub_0807DEDC
sub_0807DEDC: @ 0x0807DEDC
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r6, #0
movs r0, #8
strb r0, [r1, #0x19]
ldr r0, [r1, #8]
movs r4, #2
orrs r0, r4
str r0, [r1, #8]
str r6, [r1, #0x14]
strh r2, [r1, #0x1e]
strh r3, [r1, #0x22]
movs r2, #0x1e
ldrsh r0, [r1, r2]
movs r3, #0x2e
ldrsh r2, [r5, r3]
subs r0, r0, r2
movs r2, #0x22
ldrsh r1, [r1, r2]
movs r3, #0x32
ldrsh r2, [r5, r3]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r5, #0x15]
ldrb r2, [r5, #0x14]
movs r1, #0x80
ands r1, r2
ldr r2, _0807DF24 @ =gUnk_0811E514
lsls r0, r0, #0x18
lsrs r0, r0, #0x1c
adds r0, r0, r2
ldrb r0, [r0]
orrs r1, r0
strb r1, [r5, #0x14]
pop {r4, r5, r6, pc}
.align 2, 0
_0807DF24: .4byte gUnk_0811E514
thumb_func_start sub_0807DF28
sub_0807DF28: @ 0x0807DF28
push {lr}
bl sub_0807DF38
bl sub_08079184
bl sub_08077B20
pop {pc}
thumb_func_start sub_0807DF38
sub_0807DF38: @ 0x0807DF38
ldr r1, _0807DF48 @ =gUnk_0200AF00
movs r0, #0xff
strb r0, [r1, #1]
ldr r1, _0807DF4C @ =gUnk_02034490
movs r0, #1
rsbs r0, r0, #0
strb r0, [r1]
bx lr
.align 2, 0
_0807DF48: .4byte gUnk_0200AF00
_0807DF4C: .4byte gUnk_02034490
thumb_func_start sub_0807DF50
sub_0807DF50: @ 0x0807DF50
push {lr}
ldr r0, _0807DF6C @ =gUnk_02034490
movs r1, #0
strb r1, [r0]
ldr r0, _0807DF70 @ =gUnk_0200AF00
strb r1, [r0, #1]
movs r0, #0
bl sub_0801C4A0
bl sub_080791D0
bl sub_08079184
pop {pc}
.align 2, 0
_0807DF6C: .4byte gUnk_02034490
_0807DF70: .4byte gUnk_0200AF00
thumb_func_start sub_0807DF74
sub_0807DF74: @ 0x0807DF74
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r5, r1, #0
ldr r0, [r5]
cmp r0, #0
beq _0807DFE8
ldrh r0, [r5, #0x10]
adds r1, r0, #0
cmp r1, #0
beq _0807DF92
subs r0, #1
strh r0, [r5, #0x10]
b _0807DFE8
_0807DF92:
ldr r6, _0807DFF0 @ =gUnk_02033280
strb r1, [r6, #7]
_0807DF96:
ldr r0, [r5]
bl sub_08016986
adds r1, r0, #0
ldr r0, _0807DFF4 @ =0x0000FFFF
cmp r1, r0
beq _0807DFE8
lsrs r0, r1, #0xa
strb r0, [r6, #6]
ldr r2, _0807DFF8 @ =0x000003FF
adds r0, r2, #0
ands r1, r0
movs r7, #0
strh r1, [r6, #4]
ldr r4, [r5]
ldrb r1, [r6, #7]
movs r0, #0xfe
ands r0, r1
strb r0, [r6, #7]
ldr r1, _0807DFFC @ =gUnk_0811E524
ldrh r0, [r6, #4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r2, [r0]
mov r0, r8
adds r1, r5, #0
bl _call_via_r2
ldrb r1, [r6, #6]
lsls r1, r1, #1
ldr r0, [r5]
adds r0, r0, r1
str r0, [r5]
cmp r4, r0
beq _0807DFDE
strb r7, [r5, #0x18]
_0807DFDE:
ldrb r1, [r6, #7]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _0807DF96
_0807DFE8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807DFF0: .4byte gUnk_02033280
_0807DFF4: .4byte 0x0000FFFF
_0807DFF8: .4byte 0x000003FF
_0807DFFC: .4byte gUnk_0811E524
thumb_func_start nullsub_507
nullsub_507: @ 0x0807E000
bx lr
.align 2, 0
thumb_func_start sub_0807E004
sub_0807E004: @ 0x0807E004
ldr r2, _0807E010 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #2
orrs r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E010: .4byte gUnk_02033280
thumb_func_start sub_0807E014
sub_0807E014: @ 0x0807E014
ldr r2, _0807E020 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #0xfd
ands r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E020: .4byte gUnk_02033280
thumb_func_start sub_0807E024
sub_0807E024: @ 0x0807E024
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
adds r0, #2
str r0, [r4]
bl sub_08016986
lsls r0, r0, #0x10
asrs r1, r0, #0x10
lsrs r0, r0, #0x1f
adds r1, r1, r0
asrs r1, r1, #1
lsls r1, r1, #1
ldr r0, [r4]
adds r0, r0, r1
str r0, [r4]
ldr r1, _0807E04C @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
pop {r4, pc}
.align 2, 0
_0807E04C: .4byte gUnk_02033280
thumb_func_start sub_0807E050
sub_0807E050: @ 0x0807E050
push {lr}
adds r2, r0, #0
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0807E060
adds r0, r2, #0
bl sub_0807E024
_0807E060:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E064
sub_0807E064: @ 0x0807E064
push {lr}
adds r2, r0, #0
ldr r0, [r1, #0x14]
cmp r0, #0
bne _0807E074
adds r0, r2, #0
bl sub_0807E024
_0807E074:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E078
sub_0807E078: @ 0x0807E078
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldr r0, _0807E09C @ =gUnk_02033280
ldrb r0, [r0, #6]
ldr r1, [r2, #4]
cmp r0, r1
bls _0807E098
lsls r1, r1, #1
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807E024
_0807E098:
pop {pc}
.align 2, 0
_0807E09C: .4byte gUnk_02033280
thumb_func_start sub_0807E0A0
sub_0807E0A0: @ 0x0807E0A0
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
str r0, [r4]
ldr r1, _0807E0B4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
pop {r4, pc}
.align 2, 0
_0807E0B4: .4byte gUnk_02033280
thumb_func_start sub_0807E0B8
sub_0807E0B8: @ 0x0807E0B8
push {lr}
adds r2, r0, #0
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0807E0C8
adds r0, r2, #0
bl sub_0807E0A0
_0807E0C8:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E0CC
sub_0807E0CC: @ 0x0807E0CC
push {lr}
adds r2, r0, #0
ldr r0, [r1, #0x14]
cmp r0, #0
bne _0807E0DC
adds r0, r2, #0
bl sub_0807E0A0
_0807E0DC:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E0E0
sub_0807E0E0: @ 0x0807E0E0
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
ldr r0, _0807E108 @ =gUnk_02033280
ldrb r1, [r0, #6]
ldr r3, [r2, #4]
lsls r0, r3, #1
adds r0, #1
cmp r1, r0
bls _0807E104
lsls r1, r3, #2
ldr r0, [r2]
adds r0, r0, r1
str r0, [r2]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0807E0A0
_0807E104:
pop {r4, pc}
.align 2, 0
_0807E108: .4byte gUnk_02033280
thumb_func_start sub_0807E10C
sub_0807E10C: @ 0x0807E10C
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
adds r2, r0, #0
adds r0, r5, #0
adds r1, r4, #0
bl _call_via_r2
pop {r4, r5, pc}
thumb_func_start sub_0807E124
sub_0807E124: @ 0x0807E124
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
adds r5, r0, #0
ldr r0, [r4]
adds r0, #6
bl sub_0801698E
str r0, [r4, #4]
adds r0, r6, #0
adds r1, r4, #0
bl _call_via_r5
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0807E148
sub_0807E148: @ 0x0807E148
push {lr}
ldr r0, [r1]
bl sub_08016998
bl sub_0804ADDC
pop {pc}
.align 2, 0
thumb_func_start sub_0807E158
sub_0807E158: @ 0x0807E158
push {r4, r5, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
adds r2, r0, #0
movs r5, #0
ldr r3, _0807E184 @ =gUnk_02033280
ldr r1, [r3]
adds r0, r1, #0
ands r0, r2
cmp r0, r2
bne _0807E174
movs r5, #1
_0807E174:
str r5, [r4, #0x14]
bics r1, r2
str r1, [r3]
ldrb r1, [r3, #7]
movs r0, #1
orrs r0, r1
strb r0, [r3, #7]
pop {r4, r5, pc}
.align 2, 0
_0807E184: .4byte gUnk_02033280
thumb_func_start sub_0807E188
sub_0807E188: @ 0x0807E188
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_0801698A
cmp r0, #0x51
beq _0807E1B4
cmp r0, #0x51
bhi _0807E1A0
cmp r0, #0x50
beq _0807E1BA
b _0807E1C0
_0807E1A0:
cmp r0, #0x52
beq _0807E1AE
cmp r0, #0x53
bne _0807E1C0
bl sub_08052734
b _0807E1C4
_0807E1AE:
bl sub_08052764
b _0807E1C4
_0807E1B4:
bl sub_0805279C
b _0807E1C4
_0807E1BA:
bl sub_080527CC
b _0807E1C4
_0807E1C0:
bl sub_0807CA84
_0807E1C4:
str r0, [r4, #0x14]
ldr r2, _0807E1D4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E1D4: .4byte gUnk_02033280
thumb_func_start sub_0807E1D8
sub_0807E1D8: @ 0x0807E1D8
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_0807CA84
movs r1, #0
cmp r0, #2
bne _0807E1EC
movs r1, #1
_0807E1EC:
str r1, [r4, #0x14]
ldr r2, _0807E1FC @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E1FC: .4byte gUnk_02033280
thumb_func_start sub_0807E200
sub_0807E200: @ 0x0807E200
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_0807CBD0
str r0, [r4, #0x14]
ldr r2, _0807E21C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E21C: .4byte gUnk_02033280
thumb_func_start sub_0807E220
sub_0807E220: @ 0x0807E220
push {r4, lr}
adds r4, r1, #0
ldr r1, [r4]
ldrh r0, [r1, #2]
ldrh r1, [r1, #4]
bl GetProgressFlagWithOffset
str r0, [r4, #0x14]
ldr r2, _0807E23C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E23C: .4byte gUnk_02033280
thumb_func_start sub_0807E240
sub_0807E240: @ 0x0807E240
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_0801698A
bl GetProgressFlag
str r0, [r4, #0x14]
ldr r2, _0807E25C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E25C: .4byte gUnk_02033280
thumb_func_start sub_0807E260
sub_0807E260: @ 0x0807E260
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_0807CC3C
str r0, [r4, #0x14]
ldr r2, _0807E27C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E27C: .4byte gUnk_02033280
thumb_func_start sub_0807E280
sub_0807E280: @ 0x0807E280
push {r4, lr}
adds r4, r1, #0
ldr r1, [r4]
ldrh r2, [r1, #6]
lsrs r3, r2, #8
movs r0, #0xff
ands r2, r0
ldrh r0, [r1, #2]
ldrh r1, [r1, #4]
bl sub_0800293E
str r0, [r4, #0x14]
ldr r2, _0807E2A4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E2A4: .4byte gUnk_02033280
thumb_func_start sub_0807E2A8
sub_0807E2A8: @ 0x0807E2A8
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
ldr r0, [r6]
ldrh r3, [r0, #2]
ldrb r2, [r0, #2]
lsrs r3, r3, #8
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r4, _0807E2DC @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
movs r7, #0x32
ldrsh r1, [r5, r7]
ldrh r4, [r4, #8]
subs r1, r1, r4
bl sub_0800293E
str r0, [r6, #0x14]
ldr r2, _0807E2E0 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807E2DC: .4byte gUnk_03000BF0
_0807E2E0: .4byte gUnk_02033280
thumb_func_start sub_0807E2E4
sub_0807E2E4: @ 0x0807E2E4
push {lr}
adds r2, r0, #0
adds r2, #0x39
movs r0, #0
ldrsb r0, [r2, r0]
cmp r0, #0
beq _0807E2F8
movs r0, #0
strb r0, [r2]
movs r0, #1
_0807E2F8:
str r0, [r1, #0x14]
ldr r2, _0807E308 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E308: .4byte gUnk_02033280
thumb_func_start sub_0807E30C
sub_0807E30C: @ 0x0807E30C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r4, r1, #0
ldrb r1, [r4, #0x1a]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _0807E348
ldr r0, _0807E374 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0807E348
ldr r6, _0807E378 @ =gLinkEntity
adds r0, r5, #0
adds r1, r6, #0
movs r2, #0x28
movs r3, #0x28
bl sub_080041A0
cmp r0, #0
beq _0807E348
adds r0, r5, #0
adds r1, r6, #0
bl sub_080045C4
bl sub_0806F5B0
strb r0, [r5, #0x14]
_0807E348:
ldrb r0, [r4, #0x1a]
adds r0, #1
strb r0, [r4, #0x1a]
adds r1, r5, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0807E37C
movs r0, #0
strb r0, [r1]
movs r0, #1
str r0, [r4, #0x14]
ldr r1, _0807E378 @ =gLinkEntity
adds r0, r5, #0
bl sub_080045C4
bl sub_0806F5B0
strb r0, [r5, #0x14]
b _0807E37E
.align 2, 0
_0807E374: .4byte gUnk_03003F80
_0807E378: .4byte gLinkEntity
_0807E37C:
str r0, [r4, #0x14]
_0807E37E:
ldr r2, _0807E38C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, r5, r6, pc}
.align 2, 0
_0807E38C: .4byte gUnk_02033280
thumb_func_start sub_0807E390
sub_0807E390: @ 0x0807E390
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, [r2]
ldr r1, _0807E3B4 @ =gUnk_02002A40
adds r1, #0xc0
ldrh r0, [r0, #2]
ldrh r1, [r1]
cmp r0, r1
bhi _0807E3A6
movs r3, #1
_0807E3A6:
str r3, [r2, #0x14]
ldr r2, _0807E3B8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E3B4: .4byte gUnk_02002A40
_0807E3B8: .4byte gUnk_02033280
thumb_func_start sub_0807E3BC
sub_0807E3BC: @ 0x0807E3BC
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, [r2]
ldr r1, _0807E3E0 @ =gUnk_02002A40
adds r1, #0xc2
ldrh r0, [r0, #2]
ldrh r1, [r1]
cmp r0, r1
bhi _0807E3D2
movs r3, #1
_0807E3D2:
str r3, [r2, #0x14]
ldr r2, _0807E3E4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E3E0: .4byte gUnk_02002A40
_0807E3E4: .4byte gUnk_02033280
thumb_func_start sub_0807E3E8
sub_0807E3E8: @ 0x0807E3E8
push {lr}
movs r2, #0
ldr r0, _0807E404 @ =gUnk_02000040
ldrb r0, [r0, #1]
cmp r0, #0
bne _0807E3F6
movs r2, #1
_0807E3F6:
str r2, [r1, #0x14]
ldr r2, _0807E408 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E404: .4byte gUnk_02000040
_0807E408: .4byte gUnk_02033280
thumb_func_start sub_0807E40C
sub_0807E40C: @ 0x0807E40C
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_0801E7F4
str r0, [r4, #0x14]
ldr r2, _0807E428 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E428: .4byte gUnk_02033280
thumb_func_start sub_0807E42C
sub_0807E42C: @ 0x0807E42C
push {r4, r5, r6, lr}
adds r5, r1, #0
ldr r0, [r5]
ldrh r4, [r0, #2]
ldrh r6, [r0, #4]
cmp r4, #0
bne _0807E440
ldr r0, _0807E480 @ =gUnk_02034350
ldrb r4, [r0, #6]
ldrb r6, [r0, #7]
_0807E440:
adds r0, r4, #0
bl sub_08053FE0
adds r2, r0, #0
movs r1, #0
ldr r0, _0807E484 @ =gUnk_02002A40
adds r0, #0xc0
ldrh r0, [r0]
cmp r2, r0
bgt _0807E456
movs r1, #1
_0807E456:
str r1, [r5, #0x14]
cmp r1, #0
beq _0807E474
rsbs r0, r2, #0
bl sub_080526CC
adds r0, r4, #0
adds r1, r6, #0
movs r2, #0
bl sub_080A7C18
ldr r1, _0807E480 @ =gUnk_02034350
movs r0, #0
strb r0, [r1, #6]
strb r0, [r1, #7]
_0807E474:
ldr r2, _0807E488 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, r5, r6, pc}
.align 2, 0
_0807E480: .4byte gUnk_02034350
_0807E484: .4byte gUnk_02002A40
_0807E488: .4byte gUnk_02033280
thumb_func_start sub_0807E48C
sub_0807E48C: @ 0x0807E48C
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_080544DC
str r0, [r4, #0x14]
ldr r2, _0807E4A8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E4A8: .4byte gUnk_02033280
thumb_func_start sub_0807E4AC
sub_0807E4AC: @ 0x0807E4AC
ldr r0, _0807E4C4 @ =gUnk_02034350
ldrb r2, [r0, #6]
rsbs r0, r2, #0
orrs r0, r2
lsrs r0, r0, #0x1f
str r0, [r1, #0x14]
ldr r2, _0807E4C8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E4C4: .4byte gUnk_02034350
_0807E4C8: .4byte gUnk_02033280
thumb_func_start sub_0807E4CC
sub_0807E4CC: @ 0x0807E4CC
ldr r0, [r1]
ldrh r0, [r0, #2]
ldr r2, [r1, #4]
ands r2, r0
rsbs r0, r2, #0
orrs r0, r2
lsrs r0, r0, #0x1f
str r0, [r1, #0x14]
ldr r2, _0807E4E8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E4E8: .4byte gUnk_02033280
thumb_func_start sub_0807E4EC
sub_0807E4EC: @ 0x0807E4EC
push {lr}
adds r2, r1, #0
ldr r0, [r2]
ldrh r1, [r0, #2]
movs r3, #0
ldr r0, [r2, #4]
ands r0, r1
cmp r1, r0
bne _0807E500
movs r3, #1
_0807E500:
str r3, [r2, #0x14]
ldr r2, _0807E510 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E510: .4byte gUnk_02033280
thumb_func_start sub_0807E514
sub_0807E514: @ 0x0807E514
push {lr}
adds r2, r1, #0
ldr r0, [r2]
ldrh r1, [r0, #2]
movs r3, #0
ldr r0, [r2, #4]
cmp r1, r0
bne _0807E526
movs r3, #1
_0807E526:
str r3, [r2, #0x14]
ldr r2, _0807E534 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E534: .4byte gUnk_02033280
thumb_func_start sub_0807E538
sub_0807E538: @ 0x0807E538
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
ldr r1, _0807E55C @ =gUnk_03003F80
ldr r1, [r1, #0x30]
ands r0, r1
rsbs r1, r0, #0
orrs r1, r0
lsrs r1, r1, #0x1f
str r1, [r4, #0x14]
ldr r2, _0807E560 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807E55C: .4byte gUnk_03003F80
_0807E560: .4byte gUnk_02033280
thumb_func_start sub_0807E564
sub_0807E564: @ 0x0807E564
ldr r0, _0807E57C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
lsrs r0, r0, #7
movs r2, #1
ands r0, r2
str r0, [r1, #0x14]
ldr r2, _0807E580 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E57C: .4byte gUnk_03003F80
_0807E580: .4byte gUnk_02033280
thumb_func_start sub_0807E584
sub_0807E584: @ 0x0807E584
ldr r2, [r0, #0x34]
rsbs r0, r2, #0
orrs r0, r2
lsrs r0, r0, #0x1f
str r0, [r1, #0x14]
ldr r2, _0807E59C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
bx lr
.align 2, 0
_0807E59C: .4byte gUnk_02033280
thumb_func_start sub_0807E5A0
sub_0807E5A0: @ 0x0807E5A0
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, [r2]
ldr r1, _0807E5C4 @ =gLinkEntity
ldrh r0, [r0, #2]
ldrb r1, [r1, #0xc]
cmp r0, r1
bne _0807E5B4
movs r3, #1
_0807E5B4:
str r3, [r2, #0x14]
ldr r2, _0807E5C8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E5C4: .4byte gLinkEntity
_0807E5C8: .4byte gUnk_02033280
thumb_func_start sub_0807E5CC
sub_0807E5CC: @ 0x0807E5CC
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, [r2]
ldr r1, _0807E5F0 @ =gLinkEntity
ldrh r0, [r0, #2]
ldrb r1, [r1, #0x14]
cmp r0, r1
bne _0807E5E0
movs r3, #1
_0807E5E0:
str r3, [r2, #0x14]
ldr r2, _0807E5F4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807E5F0: .4byte gLinkEntity
_0807E5F4: .4byte gUnk_02033280
thumb_func_start sub_0807E5F8
sub_0807E5F8: @ 0x0807E5F8
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r2, _0807E60C @ =gUnk_02033280
ldr r1, [r2]
orrs r1, r0
str r1, [r2]
pop {pc}
.align 2, 0
_0807E60C: .4byte gUnk_02033280
thumb_func_start sub_0807E610
sub_0807E610: @ 0x0807E610
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r2, _0807E624 @ =gUnk_02033280
ldr r1, [r2]
bics r1, r0
str r1, [r2]
pop {pc}
.align 2, 0
_0807E624: .4byte gUnk_02033280
thumb_func_start sub_0807E628
sub_0807E628: @ 0x0807E628
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CCB4
pop {pc}
thumb_func_start sub_0807E634
sub_0807E634: @ 0x0807E634
push {lr}
ldr r1, [r1]
ldrh r0, [r1, #2]
ldrh r1, [r1, #4]
bl sub_0807CC9C
pop {pc}
.align 2, 0
thumb_func_start sub_0807E644
sub_0807E644: @ 0x0807E644
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CD34
pop {pc}
thumb_func_start sub_0807E650
sub_0807E650: @ 0x0807E650
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CD04
pop {pc}
thumb_func_start sub_0807E65C
sub_0807E65C: @ 0x0807E65C
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CD80
pop {pc}
thumb_func_start sub_0807E668
sub_0807E668: @ 0x0807E668
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CD10
pop {pc}
thumb_func_start sub_0807E674
sub_0807E674: @ 0x0807E674
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_0807CD8C
pop {pc}
thumb_func_start sub_0807E680
sub_0807E680: @ 0x0807E680
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_0801698A
strh r0, [r4, #0x10]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807E690
sub_0807E690: @ 0x0807E690
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r2, _0807E6A8 @ =gUnk_02033280
ldr r1, [r2]
ands r1, r0
cmp r1, r0
beq _0807E6A6
movs r0, #0
strb r0, [r2, #6]
_0807E6A6:
pop {pc}
.align 2, 0
_0807E6A8: .4byte gUnk_02033280
thumb_func_start sub_0807E6AC
sub_0807E6AC: @ 0x0807E6AC
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r3, _0807E6C8 @ =gUnk_02033280
ldr r2, [r3]
adds r1, r2, #0
ands r1, r0
cmp r1, r0
beq _0807E6CC
movs r0, #0
strb r0, [r3, #6]
b _0807E6D8
.align 2, 0
_0807E6C8: .4byte gUnk_02033280
_0807E6CC:
bics r2, r1
str r2, [r3]
ldrb r1, [r3, #7]
movs r0, #1
orrs r0, r1
strb r0, [r3, #7]
_0807E6D8:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E6DC
sub_0807E6DC: @ 0x0807E6DC
push {lr}
ldr r0, _0807E6F0 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #8
bne _0807E6F8
ldr r1, _0807E6F4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
b _0807E6FC
.align 2, 0
_0807E6F0: .4byte gLinkEntity
_0807E6F4: .4byte gUnk_02033280
_0807E6F8:
movs r0, #0x2d
strh r0, [r1, #0x10]
_0807E6FC:
pop {pc}
.align 2, 0
thumb_func_start sub_0807E700
sub_0807E700: @ 0x0807E700
push {lr}
ldr r0, _0807E718 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x17
beq _0807E720
ldr r2, _0807E71C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807E726
.align 2, 0
_0807E718: .4byte gLinkEntity
_0807E71C: .4byte gUnk_02033280
_0807E720:
ldr r1, _0807E728 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807E726:
pop {pc}
.align 2, 0
_0807E728: .4byte gUnk_02033280
thumb_func_start sub_0807E72C
sub_0807E72C: @ 0x0807E72C
push {lr}
ldr r0, _0807E744 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _0807E74C
ldr r1, _0807E748 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
b _0807E756
.align 2, 0
_0807E744: .4byte gUnk_03000BF0
_0807E748: .4byte gUnk_02033280
_0807E74C:
ldr r2, _0807E758 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
_0807E756:
pop {pc}
.align 2, 0
_0807E758: .4byte gUnk_02033280
thumb_func_start sub_0807E75C
sub_0807E75C: @ 0x0807E75C
push {lr}
ldr r0, _0807E770 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
beq _0807E76C
ldr r1, _0807E774 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807E76C:
pop {pc}
.align 2, 0
_0807E770: .4byte gUnk_03000FD0
_0807E774: .4byte gUnk_02033280
thumb_func_start sub_0807E778
sub_0807E778: @ 0x0807E778
ldr r2, _0807E784 @ =gUnk_02033280
ldr r0, [r1]
ldrh r0, [r0, #2]
strb r0, [r2, #8]
bx lr
.align 2, 0
_0807E784: .4byte gUnk_02033280
thumb_func_start sub_0807E788
sub_0807E788: @ 0x0807E788
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r1, _0807E798 @ =gUnk_03000FD0
str r0, [r1, #4]
pop {pc}
.align 2, 0
_0807E798: .4byte gUnk_03000FD0
thumb_func_start sub_0807E79C
sub_0807E79C: @ 0x0807E79C
push {lr}
ldr r0, _0807E7A8 @ =gUnk_02033280
ldrb r0, [r0, #8]
bl sub_080500F4
pop {pc}
.align 2, 0
_0807E7A8: .4byte gUnk_02033280
thumb_func_start nullsub_508
nullsub_508: @ 0x0807E7AC
bx lr
.align 2, 0
thumb_func_start sub_0807E7B0
sub_0807E7B0: @ 0x0807E7B0
push {lr}
ldr r0, _0807E7C0 @ =gUnk_02033280
ldrb r1, [r0, #8]
movs r0, #4
bl sub_08050054
pop {pc}
.align 2, 0
_0807E7C0: .4byte gUnk_02033280
thumb_func_start sub_0807E7C4
sub_0807E7C4: @ 0x0807E7C4
push {lr}
ldr r0, _0807E7D4 @ =gUnk_02033280
ldrb r1, [r0, #8]
movs r0, #5
bl sub_08050054
pop {pc}
.align 2, 0
_0807E7D4: .4byte gUnk_02033280
thumb_func_start sub_0807E7D8
sub_0807E7D8: @ 0x0807E7D8
push {lr}
ldr r0, _0807E7E8 @ =gUnk_02033280
ldrb r1, [r0, #8]
movs r0, #6
bl sub_08050054
pop {pc}
.align 2, 0
_0807E7E8: .4byte gUnk_02033280
thumb_func_start sub_0807E7EC
sub_0807E7EC: @ 0x0807E7EC
push {lr}
ldr r0, _0807E7FC @ =gUnk_02033280
ldrb r1, [r0, #8]
movs r0, #7
bl sub_08050054
pop {pc}
.align 2, 0
_0807E7FC: .4byte gUnk_02033280
thumb_func_start sub_0807E800
sub_0807E800: @ 0x0807E800
push {lr}
movs r0, #0x10
bl sub_0807E818
pop {pc}
.align 2, 0
thumb_func_start sub_0807E80C
sub_0807E80C: @ 0x0807E80C
push {lr}
movs r0, #0x11
bl sub_0807E818
pop {pc}
.align 2, 0
thumb_func_start sub_0807E818
sub_0807E818: @ 0x0807E818
push {r4, r5, lr}
adds r5, r0, #0
ldr r2, _0807E83C @ =gUnk_03000BF0
ldr r3, [r2, #0x30]
cmp r3, #0
beq _0807E840
movs r0, #0x2e
ldrsh r1, [r3, r0]
movs r4, #0xa
ldrsh r0, [r2, r4]
subs r4, r1, r0
movs r0, #0x32
ldrsh r1, [r3, r0]
movs r3, #0xc
ldrsh r0, [r2, r3]
subs r1, r1, r0
b _0807E844
.align 2, 0
_0807E83C: .4byte gUnk_03000BF0
_0807E840:
movs r4, #0x78
movs r1, #0x50
_0807E844:
ldr r0, _0807E854 @ =gUnk_02033280
ldrb r3, [r0, #8]
adds r0, r4, #0
adds r2, r5, #0
bl sub_08050110
pop {r4, r5, pc}
.align 2, 0
_0807E854: .4byte gUnk_02033280
thumb_func_start sub_0807E858
sub_0807E858: @ 0x0807E858
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_08050038
pop {pc}
thumb_func_start sub_0807E864
sub_0807E864: @ 0x0807E864
push {lr}
ldr r0, _0807E874 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #3
strb r1, [r0]
bl sub_08078B48
pop {pc}
.align 2, 0
_0807E874: .4byte gUnk_03003F80
thumb_func_start sub_0807E878
sub_0807E878: @ 0x0807E878
ldr r0, _0807E884 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bx lr
.align 2, 0
_0807E884: .4byte gUnk_03003F80
thumb_func_start sub_0807E888
sub_0807E888: @ 0x0807E888
ldr r0, _0807E894 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #3
strb r1, [r0]
bx lr
.align 2, 0
_0807E894: .4byte gUnk_03003F80
thumb_func_start sub_0807E898
sub_0807E898: @ 0x0807E898
push {lr}
ldr r0, [r1]
bl sub_08016998
ldr r3, _0807E8C0 @ =gUnk_03003F80
strb r0, [r3, #0xc]
lsrs r2, r0, #8
adds r1, r3, #0
adds r1, #0x38
strb r2, [r1]
lsrs r1, r0, #0x10
adds r2, r3, #0
adds r2, #0x39
strb r1, [r2]
lsrs r0, r0, #0x18
adds r1, r3, #0
adds r1, #0x3a
strb r0, [r1]
pop {pc}
.align 2, 0
_0807E8C0: .4byte gUnk_03003F80
thumb_func_start sub_0807E8C4
sub_0807E8C4: @ 0x0807E8C4
push {lr}
ldr r0, [r1]
bl sub_08016998
bl sub_0807DB2C
pop {pc}
.align 2, 0
thumb_func_start sub_0807E8D4
sub_0807E8D4: @ 0x0807E8D4
ldr r2, _0807E8E0 @ =gUnk_03003F80
ldr r0, [r1]
ldrh r0, [r0, #2]
strh r0, [r2, #8]
bx lr
.align 2, 0
_0807E8E0: .4byte gUnk_03003F80
thumb_func_start sub_0807E8E4
sub_0807E8E4: @ 0x0807E8E4
ldr r0, _0807E8FC @ =gUnk_08016984
ldrh r0, [r0]
ldr r2, _0807E900 @ =0x000003FF
ands r2, r0
ldr r3, _0807E904 @ =gLinkEntity
ldr r0, [r1]
ldrh r0, [r0]
subs r0, r0, r2
lsls r0, r0, #1
strb r0, [r3, #0x14]
bx lr
.align 2, 0
_0807E8FC: .4byte gUnk_08016984
_0807E900: .4byte 0x000003FF
_0807E904: .4byte gLinkEntity
thumb_func_start sub_0807E908
sub_0807E908: @ 0x0807E908
ldr r1, [r1]
ldrh r1, [r1, #2]
movs r2, #0
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
bx lr
thumb_func_start sub_0807E914
sub_0807E914: @ 0x0807E914
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
bl sub_08016998
str r0, [r4, #4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807E924
sub_0807E924: @ 0x0807E924
adds r0, #0x5a
ldrb r2, [r0]
str r2, [r1, #4]
movs r1, #0
strb r1, [r0]
bx lr
thumb_func_start sub_0807E930
sub_0807E930: @ 0x0807E930
push {lr}
ldr r3, [r1]
ldrh r2, [r3, #2]
adds r1, r0, #0
adds r1, #0x80
strh r2, [r1]
ldrh r1, [r3, #2]
bl sub_080042AC
pop {pc}
thumb_func_start sub_0807E944
sub_0807E944: @ 0x0807E944
push {lr}
adds r2, r0, #0
adds r2, #0x39
movs r1, #0
ldrsb r1, [r2, r1]
cmp r1, #0
beq _0807E968
movs r0, #0
strb r0, [r2]
ldr r2, _0807E964 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807E96C
.align 2, 0
_0807E964: .4byte gUnk_02033280
_0807E968:
ldr r0, _0807E970 @ =gUnk_02033280
strb r1, [r0, #6]
_0807E96C:
pop {pc}
.align 2, 0
_0807E970: .4byte gUnk_02033280
thumb_func_start sub_0807E974
sub_0807E974: @ 0x0807E974
push {lr}
adds r2, r1, #0
ldrb r1, [r2, #0x18]
cmp r1, #0
beq _0807E990
cmp r1, #1
beq _0807E9AE
ldrb r0, [r2, #0x19]
subs r0, #1
strb r0, [r2, #0x19]
lsls r0, r0, #0x18
cmp r0, #0
beq _0807E9C8
b _0807E9C2
_0807E990:
adds r3, r0, #0
adds r3, #0x39
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
beq _0807E9C2
strb r1, [r3]
ldrb r0, [r2, #0x18]
adds r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
bl sub_08056378
b _0807E9C2
_0807E9AE:
ldr r0, _0807E9CC @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0807E9C2
movs r0, #2
strb r0, [r2, #0x18]
movs r0, #0xf
strb r0, [r2, #0x19]
_0807E9C2:
ldr r1, _0807E9D0 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807E9C8:
pop {pc}
.align 2, 0
_0807E9CC: .4byte gUnk_02000050
_0807E9D0: .4byte gUnk_02033280
thumb_func_start sub_0807E9D4
sub_0807E9D4: @ 0x0807E9D4
push {lr}
bl sub_08078778
pop {pc}
thumb_func_start sub_0807E9DC
sub_0807E9DC: @ 0x0807E9DC
push {lr}
bl sub_080788E0
pop {pc}
thumb_func_start sub_0807E9E4
sub_0807E9E4: @ 0x0807E9E4
push {lr}
ldr r1, [r1]
ldrh r1, [r1, #2]
bl sub_08078784
pop {pc}
thumb_func_start sub_0807E9F0
sub_0807E9F0: @ 0x0807E9F0
push {r4, lr}
adds r4, r1, #0
bl sub_0801E00C
movs r2, #1
ldr r0, _0807EA18 @ =gUnk_02022740
ldrb r0, [r0]
cmp r0, #1
beq _0807EA24
cmp r0, #2
bne _0807EA40
ldr r0, _0807EA1C @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #3
strb r1, [r0]
ldr r0, _0807EA20 @ =gUnk_02034490
strb r2, [r0]
str r2, [r4, #0x14]
b _0807EA28
.align 2, 0
_0807EA18: .4byte gUnk_02022740
_0807EA1C: .4byte gUnk_03003F80
_0807EA20: .4byte gUnk_02034490
_0807EA24:
movs r0, #0
str r0, [r4, #0x14]
_0807EA28:
cmp r2, #0
beq _0807EA40
bl sub_0807919C
ldr r0, _0807EA3C @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
b _0807EA46
.align 2, 0
_0807EA3C: .4byte gUnk_03003F80
_0807EA40:
ldr r1, _0807EA48 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EA46:
pop {r4, pc}
.align 2, 0
_0807EA48: .4byte gUnk_02033280
thumb_func_start sub_0807EA4C
sub_0807EA4C: @ 0x0807EA4C
push {r4, lr}
adds r1, r0, #0
adds r4, r1, #0
adds r4, #0x39
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #2
bne _0807EA7C
adds r0, r1, #0
movs r1, #0
movs r2, #0
movs r3, #0
bl sub_0801DFB4
movs r0, #0
strb r0, [r4]
ldr r2, _0807EA78 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807EA82
.align 2, 0
_0807EA78: .4byte gUnk_02033280
_0807EA7C:
ldr r1, _0807EA84 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EA82:
pop {r4, pc}
.align 2, 0
_0807EA84: .4byte gUnk_02033280
thumb_func_start sub_0807EA88
sub_0807EA88: @ 0x0807EA88
push {lr}
ldr r1, [r1]
ldrh r1, [r1, #2]
bl sub_08078790
pop {pc}
thumb_func_start sub_0807EA94
sub_0807EA94: @ 0x0807EA94
push {lr}
ldr r0, _0807EAAC @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0807EAA8
ldr r1, _0807EAB0 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EAA8:
pop {pc}
.align 2, 0
_0807EAAC: .4byte gUnk_02000050
_0807EAB0: .4byte gUnk_02033280
thumb_func_start sub_0807EAB4
sub_0807EAB4: @ 0x0807EAB4
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_08056378
pop {pc}
thumb_func_start sub_0807EAC0
sub_0807EAC0: @ 0x0807EAC0
push {lr}
adds r2, r0, #0
ldr r0, [r1]
ldrh r0, [r0, #2]
adds r1, r2, #0
bl sub_08056398
pop {pc}
thumb_func_start sub_0807EAD0
sub_0807EAD0: @ 0x0807EAD0
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_08056378
ldr r1, _0807EAEC @ =gUnk_02000050
movs r0, #1
strb r0, [r1, #6]
ldr r0, [r4]
ldrh r0, [r0, #4]
strb r0, [r1, #7]
pop {r4, pc}
.align 2, 0
_0807EAEC: .4byte gUnk_02000050
thumb_func_start sub_0807EAF0
sub_0807EAF0: @ 0x0807EAF0
push {lr}
ldr r0, _0807EB0C @ =gUnk_02033280
ldrb r0, [r0, #6]
ldr r2, [r1, #4]
cmp r0, r2
bls _0807EB10
lsls r0, r2, #1
ldr r1, [r1]
adds r1, r1, r0
ldrh r0, [r1, #2]
bl sub_08056378
b _0807EB16
.align 2, 0
_0807EB0C: .4byte gUnk_02033280
_0807EB10:
movs r0, #0
bl sub_08056378
_0807EB16:
pop {pc}
thumb_func_start sub_0807EB18
sub_0807EB18: @ 0x0807EB18
push {lr}
adds r2, r0, #0
ldr r0, [r1, #4]
adds r1, r2, #0
bl sub_08056398
pop {pc}
.align 2, 0
thumb_func_start sub_0807EB28
sub_0807EB28: @ 0x0807EB28
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
movs r1, #0
bl sub_08078AA8
pop {pc}
.align 2, 0
thumb_func_start sub_0807EB38
sub_0807EB38: @ 0x0807EB38
ldr r0, _0807EB40 @ =gUnk_02000040
ldrb r0, [r0, #1]
str r0, [r1, #4]
bx lr
.align 2, 0
_0807EB40: .4byte gUnk_02000040
thumb_func_start sub_0807EB44
sub_0807EB44: @ 0x0807EB44
ldr r1, [r1]
ldrh r1, [r1, #2]
strb r1, [r0, #0x14]
bx lr
thumb_func_start sub_0807EB4C
sub_0807EB4C: @ 0x0807EB4C
push {r4, lr}
adds r4, r0, #0
ldr r2, [r1]
ldrh r1, [r2, #2]
ldr r3, _0807EB70 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
adds r1, r1, r0
ldrh r2, [r2, #4]
ldrh r0, [r3, #8]
adds r2, r2, r0
adds r0, r4, #0
bl sub_080045B4
bl sub_0806F5B0
strb r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
_0807EB70: .4byte gUnk_03000BF0
thumb_func_start sub_0807EB74
sub_0807EB74: @ 0x0807EB74
push {r4, lr}
adds r4, r0, #0
ldr r1, _0807EB88 @ =gLinkEntity
bl sub_080045C4
bl sub_0806F5B0
strb r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
_0807EB88: .4byte gLinkEntity
thumb_func_start sub_0807EB8C
sub_0807EB8C: @ 0x0807EB8C
push {r4, lr}
adds r1, r0, #0
ldr r4, _0807EBA4 @ =gLinkEntity
adds r0, r4, #0
bl sub_080045C4
bl sub_0806F5B0
movs r1, #0xfe
ands r0, r1
strb r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
_0807EBA4: .4byte gLinkEntity
thumb_func_start sub_0807EBA8
sub_0807EBA8: @ 0x0807EBA8
ldr r1, [r1]
ldrh r1, [r1, #2]
strb r1, [r0, #0x15]
bx lr
thumb_func_start sub_0807EBB0
sub_0807EBB0: @ 0x0807EBB0
ldr r1, [r1]
ldrh r1, [r1, #2]
strb r1, [r0, #0x15]
ldrb r1, [r0, #0x15]
lsrs r1, r1, #2
strb r1, [r0, #0x14]
bx lr
.align 2, 0
thumb_func_start sub_0807EBC0
sub_0807EBC0: @ 0x0807EBC0
ldr r1, [r1]
ldrh r1, [r1, #2]
strh r1, [r0, #0x24]
bx lr
thumb_func_start sub_0807EBC8
sub_0807EBC8: @ 0x0807EBC8
push {r4, lr}
adds r4, r0, #0
ldr r0, [r1]
bl sub_08016998
str r0, [r4, #0x20]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807EBD8
sub_0807EBD8: @ 0x0807EBD8
push {r4, lr}
ldr r3, _0807EBF0 @ =gUnk_03000BF0
ldr r2, [r1]
ldrh r1, [r2, #2]
ldrh r4, [r3, #6]
adds r1, r1, r4
strh r1, [r0, #0x2e]
ldrh r1, [r2, #4]
ldrh r3, [r3, #8]
adds r1, r1, r3
strh r1, [r0, #0x32]
pop {r4, pc}
.align 2, 0
_0807EBF0: .4byte gUnk_03000BF0
thumb_func_start sub_0807EBF4
sub_0807EBF4: @ 0x0807EBF4
ldr r2, [r1]
ldrh r1, [r2, #2]
ldrh r3, [r0, #0x2e]
adds r1, r1, r3
strh r1, [r0, #0x2e]
ldrh r1, [r2, #4]
ldrh r2, [r0, #0x32]
adds r1, r1, r2
strh r1, [r0, #0x32]
bx lr
thumb_func_start sub_0807EC08
sub_0807EC08: @ 0x0807EC08
push {lr}
adds r1, r0, #0
ldr r0, _0807EC14 @ =gLinkEntity
bl sub_0806FA24
pop {pc}
.align 2, 0
_0807EC14: .4byte gLinkEntity
thumb_func_start nullsub_509
nullsub_509: @ 0x0807EC18
bx lr
.align 2, 0
thumb_func_start sub_0807EC1C
sub_0807EC1C: @ 0x0807EC1C
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807EC3A
movs r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #0x12]
ldr r0, [r2, #8]
movs r1, #2
orrs r0, r1
str r0, [r2, #8]
_0807EC3A:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807EC44
pop {pc}
thumb_func_start sub_0807EC44
sub_0807EC44: @ 0x0807EC44
push {r4, lr}
adds r4, r1, #0
bl sub_0806F69C
ldrh r0, [r4, #0x12]
subs r0, #1
strh r0, [r4, #0x12]
lsls r0, r0, #0x10
cmp r0, #0
beq _0807EC5E
ldr r1, _0807EC60 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EC5E:
pop {r4, pc}
.align 2, 0
_0807EC60: .4byte gUnk_02033280
thumb_func_start sub_0807EC64
sub_0807EC64: @ 0x0807EC64
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807EC88
movs r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
movs r1, #0
strh r0, [r2, #0x12]
strb r1, [r3, #0x14]
strb r1, [r3, #0x15]
ldr r0, [r2, #8]
movs r1, #2
orrs r0, r1
str r0, [r2, #8]
_0807EC88:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807EC44
pop {pc}
.align 2, 0
thumb_func_start sub_0807EC94
sub_0807EC94: @ 0x0807EC94
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807ECB8
movs r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #0x12]
movs r1, #2
strb r1, [r3, #0x14]
movs r0, #8
strb r0, [r3, #0x15]
ldr r0, [r2, #8]
orrs r0, r1
str r0, [r2, #8]
_0807ECB8:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807EC44
pop {pc}
.align 2, 0
thumb_func_start sub_0807ECC4
sub_0807ECC4: @ 0x0807ECC4
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807ECEA
movs r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #0x12]
movs r0, #4
strb r0, [r3, #0x14]
movs r0, #0x10
strb r0, [r3, #0x15]
ldr r0, [r2, #8]
movs r1, #2
orrs r0, r1
str r0, [r2, #8]
_0807ECEA:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807EC44
pop {pc}
thumb_func_start sub_0807ECF4
sub_0807ECF4: @ 0x0807ECF4
push {lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807ED1A
movs r0, #1
strb r0, [r2, #0x18]
ldr r0, [r2]
ldrh r0, [r0, #2]
strh r0, [r2, #0x12]
movs r0, #6
strb r0, [r3, #0x14]
movs r0, #0x18
strb r0, [r3, #0x15]
ldr r0, [r2, #8]
movs r1, #2
orrs r0, r1
str r0, [r2, #8]
_0807ED1A:
adds r0, r3, #0
adds r1, r2, #0
bl sub_0807EC44
pop {pc}
thumb_func_start sub_0807ED24
sub_0807ED24: @ 0x0807ED24
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r6, r1, #0
ldrb r0, [r6, #0x18]
cmp r0, #0
bne _0807ED90
movs r0, #1
strb r0, [r6, #0x18]
ldr r4, [r6]
ldrh r0, [r4, #6]
strh r0, [r6, #0x12]
ldrh r2, [r4, #2]
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldr r5, _0807ED8C @ =gUnk_03000BF0
ldrh r1, [r5, #6]
subs r0, r0, r1
subs r0, r2, r0
lsls r0, r0, #0x10
ldrh r1, [r6, #0x12]
bl __divsi3
str r0, [r6, #0x1c]
ldrh r2, [r4, #4]
movs r3, #0x32
ldrsh r0, [r7, r3]
ldrh r1, [r5, #8]
subs r0, r0, r1
subs r0, r2, r0
lsls r0, r0, #0x10
ldrh r1, [r6, #0x12]
bl __divsi3
str r0, [r6, #0x20]
ldrh r1, [r4, #2]
ldrh r0, [r5, #6]
adds r1, r1, r0
ldrh r2, [r4, #4]
ldrh r0, [r5, #8]
adds r2, r2, r0
adds r0, r7, #0
bl sub_080045B4
bl sub_0806F5B0
strb r0, [r7, #0x14]
ldr r0, [r6, #8]
movs r1, #2
orrs r0, r1
str r0, [r6, #8]
b _0807EDC8
.align 2, 0
_0807ED8C: .4byte gUnk_03000BF0
_0807ED90:
ldrh r0, [r6, #0x12]
subs r0, #1
strh r0, [r6, #0x12]
lsls r0, r0, #0x10
cmp r0, #0
bne _0807EDB8
ldr r2, [r6]
ldr r1, _0807EDB4 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r2, #2]
adds r0, r0, r3
strh r0, [r7, #0x2e]
ldrh r0, [r1, #8]
ldrh r2, [r2, #4]
adds r0, r0, r2
strh r0, [r7, #0x32]
b _0807EDCE
.align 2, 0
_0807EDB4: .4byte gUnk_03000BF0
_0807EDB8:
ldr r0, [r7, #0x2c]
ldr r1, [r6, #0x1c]
adds r0, r0, r1
str r0, [r7, #0x2c]
ldr r0, [r7, #0x30]
ldr r1, [r6, #0x20]
adds r0, r0, r1
str r0, [r7, #0x30]
_0807EDC8:
ldr r1, _0807EDD0 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EDCE:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807EDD0: .4byte gUnk_02033280
thumb_func_start sub_0807EDD4
sub_0807EDD4: @ 0x0807EDD4
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldrb r0, [r4, #0x18]
cmp r0, #0
bne _0807EDEA
movs r0, #1
strb r0, [r4, #0x18]
adds r0, r5, #0
bl sub_0807EE04
_0807EDEA:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0807EE30
ldr r1, [r4, #0x14]
cmp r1, #0
bne _0807EDFC
ldr r0, _0807EE00 @ =gUnk_02033280
strb r1, [r0, #6]
_0807EDFC:
pop {r4, r5, pc}
.align 2, 0
_0807EE00: .4byte gUnk_02033280
thumb_func_start sub_0807EE04
sub_0807EE04: @ 0x0807EE04
push {r4, r5, lr}
ldr r5, [r1]
ldrh r2, [r5, #2]
ldr r4, _0807EE28 @ =gUnk_03000BF0
ldrh r3, [r4, #6]
adds r2, r2, r3
ldrh r3, [r5, #4]
ldrh r4, [r4, #8]
adds r3, r3, r4
bl sub_0807DEDC
ldr r2, _0807EE2C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, r5, pc}
.align 2, 0
_0807EE28: .4byte gUnk_03000BF0
_0807EE2C: .4byte gUnk_02033280
thumb_func_start sub_0807EE30
sub_0807EE30: @ 0x0807EE30
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r5, r1, #0
ldrb r0, [r5, #0x19]
subs r0, #1
strb r0, [r5, #0x19]
lsls r0, r0, #0x18
cmp r0, #0
bne _0807EE60
movs r0, #8
strb r0, [r5, #0x19]
movs r1, #0x1e
ldrsh r0, [r5, r1]
movs r2, #0x2e
ldrsh r1, [r6, r2]
subs r0, r0, r1
movs r3, #0x22
ldrsh r1, [r5, r3]
movs r3, #0x32
ldrsh r2, [r6, r3]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r6, #0x15]
_0807EE60:
movs r0, #0x2e
ldrsh r4, [r6, r0]
movs r1, #0x1e
ldrsh r0, [r5, r1]
subs r4, r4, r0
movs r2, #0x32
ldrsh r1, [r6, r2]
movs r3, #0x22
ldrsh r0, [r5, r3]
subs r7, r1, r0
movs r0, #0x24
ldrsh r1, [r6, r0]
ldrb r2, [r6, #0x15]
adds r0, r6, #0
bl sub_0806F62C
movs r1, #0x2e
ldrsh r0, [r6, r1]
movs r2, #0x1e
ldrsh r1, [r5, r2]
subs r0, r0, r1
muls r4, r0, r4
movs r3, #0x32
ldrsh r0, [r6, r3]
movs r2, #0x22
ldrsh r1, [r5, r2]
subs r0, r0, r1
muls r7, r0, r7
cmp r4, #0
bgt _0807EEAC
cmp r7, #0
bgt _0807EEAC
ldrh r0, [r5, #0x1e]
strh r0, [r6, #0x2e]
ldrh r0, [r5, #0x22]
strh r0, [r6, #0x32]
movs r0, #1
b _0807EEAE
_0807EEAC:
movs r0, #0
_0807EEAE:
str r0, [r5, #0x14]
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0807EEB4
sub_0807EEB4: @ 0x0807EEB4
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
ldrb r0, [r4, #0x18]
cmp r0, #0
bne _0807EED6
movs r0, #1
strb r0, [r4, #0x18]
ldr r0, _0807EEEC @ =gLinkEntity
movs r1, #0x2e
ldrsh r2, [r0, r1]
movs r1, #0x32
ldrsh r3, [r0, r1]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0807DEDC
_0807EED6:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0807EE30
ldr r1, [r4, #0x14]
cmp r1, #0
bne _0807EEE8
ldr r0, _0807EEF0 @ =gUnk_02033280
strb r1, [r0, #6]
_0807EEE8:
pop {r4, r5, pc}
.align 2, 0
_0807EEEC: .4byte gLinkEntity
_0807EEF0: .4byte gUnk_02033280
thumb_func_start sub_0807EEF4
sub_0807EEF4: @ 0x0807EEF4
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r4, r1, #0
ldrb r0, [r4, #0x18]
cmp r0, #0
bne _0807EF22
movs r0, #1
strb r0, [r4, #0x18]
movs r0, #0x2e
ldrsh r2, [r5, r0]
ldr r1, [r4]
movs r3, #2
ldrsh r0, [r1, r3]
adds r2, r2, r0
movs r6, #0x32
ldrsh r3, [r5, r6]
movs r6, #4
ldrsh r0, [r1, r6]
adds r3, r3, r0
adds r0, r5, #0
adds r1, r4, #0
bl sub_0807DEDC
_0807EF22:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0807EE30
ldr r1, [r4, #0x14]
cmp r1, #0
bne _0807EF34
ldr r0, _0807EF38 @ =gUnk_02033280
strb r1, [r0, #6]
_0807EF34:
pop {r4, r5, r6, pc}
.align 2, 0
_0807EF38: .4byte gUnk_02033280
thumb_func_start sub_0807EF3C
sub_0807EF3C: @ 0x0807EF3C
push {r4, lr}
adds r3, r0, #0
adds r2, r1, #0
ldrb r0, [r2, #0x18]
cmp r0, #0
bne _0807EF66
movs r0, #1
strb r0, [r2, #0x18]
ldr r1, [r2]
movs r4, #2
ldrsh r0, [r1, r4]
lsls r0, r0, #8
str r0, [r3, #0x20]
ldrh r0, [r1, #4]
lsls r0, r0, #8
strh r0, [r2, #0x1c]
ldrh r1, [r2, #0x1c]
adds r0, r3, #0
bl sub_08003FC4
b _0807EF72
_0807EF66:
ldrh r1, [r2, #0x1c]
adds r0, r3, #0
bl sub_08003FC4
cmp r0, #0
beq _0807EF78
_0807EF72:
ldr r1, _0807EF7C @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807EF78:
pop {r4, pc}
.align 2, 0
_0807EF7C: .4byte gUnk_02033280
thumb_func_start sub_0807EF80
sub_0807EF80: @ 0x0807EF80
ldr r0, [r1]
movs r2, #1
ldrh r0, [r0, #2]
lsls r2, r0
ldr r0, [r1, #8]
orrs r0, r2
str r0, [r1, #8]
bx lr
thumb_func_start sub_0807EF90
sub_0807EF90: @ 0x0807EF90
ldr r0, [r1]
movs r2, #1
ldrh r0, [r0, #2]
lsls r2, r0
ldr r0, [r1, #8]
orrs r0, r2
str r0, [r1, #8]
bx lr
thumb_func_start sub_0807EFA0
sub_0807EFA0: @ 0x0807EFA0
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_080A3268
pop {pc}
thumb_func_start sub_0807EFAC
sub_0807EFAC: @ 0x0807EFAC
push {lr}
ldr r1, [r1]
ldrh r0, [r1, #2]
cmp r0, #0x63
bls _0807EFCC
ldr r0, _0807EFC8 @ =gUnk_02033A90
movs r1, #0x86
lsls r1, r1, #4
adds r0, r0, r1
ldr r0, [r0]
bl sub_080A3268
b _0807EFD2
.align 2, 0
_0807EFC8: .4byte gUnk_02033A90
_0807EFCC:
ldrh r0, [r1, #2]
bl sub_080A3268
_0807EFD2:
pop {pc}
thumb_func_start sub_0807EFD4
sub_0807EFD4: @ 0x0807EFD4
push {lr}
ldr r0, [r1]
bl sub_08016998
bl sub_080A3268
pop {pc}
.align 2, 0
thumb_func_start sub_0807EFE4
sub_0807EFE4: @ 0x0807EFE4
push {lr}
ldr r0, _0807EFF0 @ =0x80100000
bl sub_080A3268
pop {pc}
.align 2, 0
_0807EFF0: .4byte 0x80100000
thumb_func_start sub_0807EFF4
sub_0807EFF4: @ 0x0807EFF4
push {lr}
ldr r0, [r1]
movs r1, #2
ldrsh r0, [r0, r1]
bl sub_080526CC
pop {pc}
.align 2, 0
thumb_func_start sub_0807F004
sub_0807F004: @ 0x0807F004
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
bl sub_080526A0
pop {pc}
thumb_func_start sub_0807F010
sub_0807F010: @ 0x0807F010
push {lr}
ldr r3, _0807F030 @ =gUnk_02002A40
adds r2, r3, #0
adds r2, #0xab
ldrb r0, [r2]
adds r1, r0, #0
adds r1, #8
cmp r1, #0xa0
ble _0807F024
movs r1, #0xa0
_0807F024:
strb r1, [r2]
adds r0, r3, #0
adds r0, #0xaa
strb r1, [r0]
pop {pc}
.align 2, 0
_0807F030: .4byte gUnk_02002A40
thumb_func_start sub_0807F034
sub_0807F034: @ 0x0807F034
push {lr}
movs r3, #0
ldr r2, [r1]
ldrh r0, [r2, #2]
cmp r0, #0x3f
bne _0807F042
ldr r3, [r1, #4]
_0807F042:
ldrh r0, [r2, #2]
adds r1, r3, #0
movs r2, #0
bl sub_080A7C18
pop {pc}
.align 2, 0
thumb_func_start sub_0807F050
sub_0807F050: @ 0x0807F050
push {lr}
ldr r0, [r1]
ldrh r1, [r0, #2]
movs r0, #0x5c
movs r2, #0
bl sub_080A7C18
pop {pc}
thumb_func_start sub_0807F060
sub_0807F060: @ 0x0807F060
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4]
ldrh r0, [r0, #2]
bl sub_0807CA84
str r0, [r4, #4]
rsbs r1, r0, #0
orrs r1, r0
lsrs r1, r1, #0x1f
str r1, [r4, #0x14]
pop {r4, pc}
thumb_func_start sub_0807F078
sub_0807F078: @ 0x0807F078
push {lr}
ldr r1, [r1]
ldrh r0, [r1, #2]
ldrh r1, [r1, #4]
bl sub_0807CAA0
pop {pc}
.align 2, 0
thumb_func_start sub_0807F088
sub_0807F088: @ 0x0807F088
push {lr}
ldr r0, [r1]
ldrh r0, [r0, #2]
movs r1, #0
movs r2, #3
bl sub_080A7C18
pop {pc}
thumb_func_start sub_0807F098
sub_0807F098: @ 0x0807F098
ldr r1, _0807F0A0 @ =gUnk_03000BF0
str r0, [r1, #0x30]
bx lr
.align 2, 0
_0807F0A0: .4byte gUnk_03000BF0
thumb_func_start sub_0807F0A4
sub_0807F0A4: @ 0x0807F0A4
ldr r1, _0807F0AC @ =gUnk_03000BF0
ldr r0, _0807F0B0 @ =gLinkEntity
str r0, [r1, #0x30]
bx lr
.align 2, 0
_0807F0AC: .4byte gUnk_03000BF0
_0807F0B0: .4byte gLinkEntity
thumb_func_start sub_0807F0B4
sub_0807F0B4: @ 0x0807F0B4
ldr r2, _0807F0C4 @ =gUnk_03000BF0
ldr r0, [r1]
ldrb r1, [r0, #2]
movs r0, #7
ands r0, r1
strb r0, [r2, #0xe]
bx lr
.align 2, 0
_0807F0C4: .4byte gUnk_03000BF0
thumb_func_start sub_0807F0C8
sub_0807F0C8: @ 0x0807F0C8
push {lr}
ldr r1, [r1]
ldrh r0, [r1, #2]
ldrh r1, [r1, #4]
bl sub_08080964
pop {pc}
.align 2, 0
thumb_func_start sub_0807F0D8
sub_0807F0D8: @ 0x0807F0D8
ldr r0, _0807F0E8 @ =gUnk_03000FF0
ldrh r2, [r0, #2]
rsbs r0, r2, #0
orrs r0, r2
lsrs r0, r0, #0x1f
str r0, [r1, #0x14]
bx lr
.align 2, 0
_0807F0E8: .4byte gUnk_03000FF0
thumb_func_start sub_0807F0EC
sub_0807F0EC: @ 0x0807F0EC
push {r4, lr}
adds r4, r1, #0
bl sub_08000E50
ldr r1, [r4, #4]
bl __modsi3
str r0, [r4, #4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807F100
sub_0807F100: @ 0x0807F100
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08000E50
movs r2, #6
adds r1, r0, #0
ands r1, r2
strb r1, [r4, #0x14]
ldr r2, _0807F124 @ =gUnk_0811E750
lsrs r0, r0, #8
movs r1, #7
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r5, #0x1a]
pop {r4, r5, pc}
.align 2, 0
_0807F124: .4byte gUnk_0811E750
thumb_func_start sub_0807F128
sub_0807F128: @ 0x0807F128
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_08000E50
ldr r2, _0807F150 @ =gUnk_0811E758
movs r3, #7
adds r1, r0, #0
ands r1, r3
adds r1, r1, r2
ldrb r1, [r1]
strb r1, [r4, #0x14]
ldr r1, _0807F154 @ =gUnk_0811E760
lsrs r0, r0, #8
ands r0, r3
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r5, #0x1a]
pop {r4, r5, pc}
.align 2, 0
_0807F150: .4byte gUnk_0811E758
_0807F154: .4byte gUnk_0811E760
thumb_func_start sub_0807F158
sub_0807F158: @ 0x0807F158
push {lr}
adds r2, r0, #0
adds r2, #0x38
movs r1, #1
strb r1, [r2]
bl sub_08016A04
pop {pc}
thumb_func_start sub_0807F168
sub_0807F168: @ 0x0807F168
push {lr}
ldr r0, _0807F17C @ =gLinkEntity
adds r2, r0, #0
adds r2, #0x38
movs r1, #1
strb r1, [r2]
bl sub_08016A04
pop {pc}
.align 2, 0
_0807F17C: .4byte gLinkEntity
thumb_func_start sub_0807F180
sub_0807F180: @ 0x0807F180
push {lr}
adds r2, r0, #0
adds r2, #0x38
movs r1, #2
strb r1, [r2]
bl sub_08016A04
pop {pc}
thumb_func_start sub_0807F190
sub_0807F190: @ 0x0807F190
push {lr}
movs r1, #0x80
lsls r1, r1, #1
movs r0, #4
bl sub_08050054
pop {pc}
.align 2, 0
thumb_func_start sub_0807F1A0
sub_0807F1A0: @ 0x0807F1A0
push {r4, lr}
ldr r3, _0807F1BC @ =gLinkEntity
movs r4, #0x2e
ldrsh r2, [r3, r4]
movs r4, #0x32
ldrsh r3, [r3, r4]
bl sub_0807DEDC
ldr r2, _0807F1C0 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807F1BC: .4byte gLinkEntity
_0807F1C0: .4byte gUnk_02033280
thumb_func_start sub_0807F1C4
sub_0807F1C4: @ 0x0807F1C4
push {lr}
ldr r2, _0807F1D8 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _0807F1E0
ldr r0, _0807F1DC @ =0x00000459
b _0807F1E4
.align 2, 0
_0807F1D8: .4byte gUnk_03003F80
_0807F1DC: .4byte 0x00000459
_0807F1E0:
movs r0, #0xde
lsls r0, r0, #1
_0807F1E4:
strh r0, [r2, #8]
pop {pc}
thumb_func_start sub_0807F1E8
sub_0807F1E8: @ 0x0807F1E8
push {lr}
ldr r2, _0807F1FC @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _0807F204
ldr r0, _0807F200 @ =0x0000045A
b _0807F206
.align 2, 0
_0807F1FC: .4byte gUnk_03003F80
_0807F200: .4byte 0x0000045A
_0807F204:
ldr r0, _0807F20C @ =0x000002BD
_0807F206:
strh r0, [r2, #8]
pop {pc}
.align 2, 0
_0807F20C: .4byte 0x000002BD
thumb_func_start sub_0807F210
sub_0807F210: @ 0x0807F210
push {lr}
ldr r2, _0807F224 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _0807F22C
ldr r0, _0807F228 @ =0x0000041C
b _0807F22E
.align 2, 0
_0807F224: .4byte gUnk_03003F80
_0807F228: .4byte 0x0000041C
_0807F22C:
ldr r0, _0807F234 @ =0x0000080C
_0807F22E:
strh r0, [r2, #8]
pop {pc}
.align 2, 0
_0807F234: .4byte 0x0000080C
thumb_func_start sub_0807F238
sub_0807F238: @ 0x0807F238
ldr r2, _0807F240 @ =gUnk_03003F80
ldr r0, [r1, #4]
strh r0, [r2, #8]
bx lr
.align 2, 0
_0807F240: .4byte gUnk_03003F80
thumb_func_start sub_0807F244
sub_0807F244: @ 0x0807F244
push {r4, r5, lr}
ldr r0, [r1, #4]
ldr r4, _0807F298 @ =0x0000FFFF
lsrs r5, r0, #0x10
ands r4, r0
cmp r4, #1
blo _0807F28C
cmp r4, #4
bls _0807F25A
cmp r4, #6
bne _0807F28C
_0807F25A:
movs r4, #1
movs r0, #2
bl sub_0807CA84
cmp r0, #0
beq _0807F268
movs r4, #2
_0807F268:
movs r0, #3
bl sub_0807CA84
cmp r0, #0
beq _0807F274
movs r4, #3
_0807F274:
movs r0, #4
bl sub_0807CA84
cmp r0, #0
beq _0807F280
movs r4, #4
_0807F280:
movs r0, #6
bl sub_0807CA84
cmp r0, #0
beq _0807F28C
movs r4, #6
_0807F28C:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08054414
pop {r4, r5, pc}
.align 2, 0
_0807F298: .4byte 0x0000FFFF
thumb_func_start sub_0807F29C
sub_0807F29C: @ 0x0807F29C
push {lr}
ldr r0, [r1, #4]
bl sub_0805ED14
pop {pc}
.align 2, 0
thumb_func_start sub_0807F2A8
sub_0807F2A8: @ 0x0807F2A8
push {lr}
ldr r0, _0807F2C0 @ =gUnk_03003F80
adds r0, #0x9c
ldr r0, [r0]
cmp r0, #0
bne _0807F2C8
ldr r2, _0807F2C4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807F2CE
.align 2, 0
_0807F2C0: .4byte gUnk_03003F80
_0807F2C4: .4byte gUnk_02033280
_0807F2C8:
ldr r1, _0807F2D0 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807F2CE:
pop {pc}
.align 2, 0
_0807F2D0: .4byte gUnk_02033280
thumb_func_start sub_0807F2D4
sub_0807F2D4: @ 0x0807F2D4
push {lr}
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0807F2F8
ldr r2, _0807F2F4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807F2FC
.align 2, 0
_0807F2F4: .4byte gUnk_02033280
_0807F2F8:
ldr r0, _0807F300 @ =gUnk_02033280
strb r1, [r0, #6]
_0807F2FC:
pop {pc}
.align 2, 0
_0807F300: .4byte gUnk_02033280
thumb_func_start sub_0807F304
sub_0807F304: @ 0x0807F304
push {lr}
ldr r0, _0807F324 @ =gLinkEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
beq _0807F32C
ldr r2, _0807F328 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807F330
.align 2, 0
_0807F324: .4byte gLinkEntity
_0807F328: .4byte gUnk_02033280
_0807F32C:
ldr r0, _0807F334 @ =gUnk_02033280
strb r1, [r0, #6]
_0807F330:
pop {pc}
.align 2, 0
_0807F334: .4byte gUnk_02033280
thumb_func_start sub_0807F338
sub_0807F338: @ 0x0807F338
movs r1, #0
str r1, [r0, #0x48]
ldrb r2, [r0, #0x17]
movs r1, #0xfe
ands r1, r2
strb r1, [r0, #0x17]
bx lr
.align 2, 0
thumb_func_start sub_0807F348
sub_0807F348: @ 0x0807F348
push {lr}
movs r1, #2
bl sub_0805E3A0
pop {pc}
.align 2, 0
thumb_func_start sub_0807F354
sub_0807F354: @ 0x0807F354
push {lr}
movs r1, #6
bl sub_0805E3A0
pop {pc}
.align 2, 0
thumb_func_start sub_0807F360
sub_0807F360: @ 0x0807F360
push {lr}
movs r1, #3
bl sub_0805E3A0
pop {pc}
.align 2, 0
thumb_func_start sub_0807F36C
sub_0807F36C: @ 0x0807F36C
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #0x41
movs r2, #0
bl CreateFX
adds r4, r0, #0
cmp r4, #0
beq _0807F3C2
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2]
ldr r3, _0807F3C4 @ =0xFFF80000
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
bl sub_08000E50
movs r5, #1
ands r0, r5
cmp r0, #0
beq _0807F3B0
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_0807F3B0:
bl sub_08000E50
ands r0, r5
cmp r0, #0
beq _0807F3C2
ldrb r0, [r4, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
_0807F3C2:
pop {r4, r5, pc}
.align 2, 0
_0807F3C4: .4byte 0xFFF80000
thumb_func_start sub_0807F3C8
sub_0807F3C8: @ 0x0807F3C8
push {lr}
bl sub_0807F36C
movs r0, #0xe5
bl sub_080A3268
pop {pc}
.align 2, 0
thumb_func_start sub_0807F3D8
sub_0807F3D8: @ 0x0807F3D8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x14]
lsrs r0, r0, #1
ldr r1, [r1, #4]
adds r1, r1, r0
adds r0, r4, #0
bl sub_080042AC
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
adds r4, #0x80
strh r0, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807F3F8
sub_0807F3F8: @ 0x0807F3F8
push {lr}
ldr r0, _0807F408 @ =gLinkEntity
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2CFC
pop {pc}
.align 2, 0
_0807F408: .4byte gLinkEntity
thumb_func_start sub_0807F40C
sub_0807F40C: @ 0x0807F40C
push {lr}
ldr r0, _0807F41C @ =gLinkEntity
movs r2, #0x18
rsbs r2, r2, #0
movs r1, #8
bl sub_080A2D0C
pop {pc}
.align 2, 0
_0807F41C: .4byte gLinkEntity
thumb_func_start sub_0807F420
sub_0807F420: @ 0x0807F420
push {lr}
ldr r2, [r1, #4]
ldrb r0, [r1, #4]
lsrs r2, r2, #8
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
adds r1, r2, #0
bl sub_080A7138
pop {pc}
thumb_func_start sub_0807F434
sub_0807F434: @ 0x0807F434
push {lr}
adds r3, r0, #0
adds r3, #0x39
movs r2, #0
ldrsb r2, [r3, r2]
cmp r2, #1
beq _0807F44C
cmp r2, #2
beq _0807F44C
movs r0, #0
str r0, [r1, #4]
b _0807F452
_0807F44C:
movs r0, #0
strb r0, [r3]
str r2, [r1, #4]
_0807F452:
ldr r2, _0807F460 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807F460: .4byte gUnk_02033280
thumb_func_start sub_0807F464
sub_0807F464: @ 0x0807F464
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r5, #0x18]
cmp r0, #0
bne _0807F4BC
adds r0, #1
movs r3, #0
strb r0, [r5, #0x18]
ldr r0, [r5, #8]
movs r1, #2
orrs r0, r1
str r0, [r5, #8]
ldr r2, [r5, #4]
ldr r1, _0807F4A8 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, r0, r2
strh r0, [r5, #0x1e]
ldrh r0, [r4, #0x32]
strh r0, [r5, #0x22]
movs r6, #0x2e
ldrsh r0, [r4, r6]
ldrh r1, [r1, #6]
subs r0, r0, r1
cmp r2, r0
ble _0807F4AC
movs r0, #0x40
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
movs r0, #0x80
ands r0, r1
movs r1, #2
b _0807F4B8
.align 2, 0
_0807F4A8: .4byte gUnk_03000BF0
_0807F4AC:
movs r0, #0xc0
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
movs r0, #0x80
ands r0, r1
movs r1, #6
_0807F4B8:
orrs r0, r1
strb r0, [r4, #0x14]
_0807F4BC:
movs r0, #0x24
ldrsh r1, [r4, r0]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F62C
movs r2, #0x1e
ldrsh r1, [r5, r2]
movs r6, #0x2e
ldrsh r0, [r4, r6]
subs r1, r1, r0
ldrb r2, [r4, #0x15]
movs r0, #0x80
ands r0, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r0, r0, #0x18
eors r1, r0
cmp r1, #0
bge _0807F4EA
ldrh r0, [r5, #0x1e]
strh r0, [r4, #0x2e]
b _0807F4F0
_0807F4EA:
ldr r1, _0807F4F4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807F4F0:
pop {r4, r5, r6, pc}
.align 2, 0
_0807F4F4: .4byte gUnk_02033280
thumb_func_start sub_0807F4F8
sub_0807F4F8: @ 0x0807F4F8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r0, [r5, #0x18]
cmp r0, #0
bne _0807F548
adds r0, #1
strb r0, [r5, #0x18]
ldr r0, [r5, #8]
movs r1, #2
orrs r0, r1
str r0, [r5, #8]
ldr r2, [r5, #4]
ldrh r0, [r4, #0x2e]
strh r0, [r5, #0x1e]
ldr r1, _0807F538 @ =gUnk_03000BF0
ldrh r0, [r1, #8]
adds r0, r0, r2
strh r0, [r5, #0x22]
movs r3, #0x32
ldrsh r0, [r4, r3]
ldrh r1, [r1, #8]
subs r0, r0, r1
cmp r2, r0
ble _0807F53C
movs r0, #0x80
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
ands r0, r1
movs r1, #4
orrs r0, r1
b _0807F546
.align 2, 0
_0807F538: .4byte gUnk_03000BF0
_0807F53C:
movs r0, #0
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x14]
movs r0, #0x80
ands r0, r1
_0807F546:
strb r0, [r4, #0x14]
_0807F548:
movs r0, #0x24
ldrsh r1, [r4, r0]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F62C
movs r2, #0x22
ldrsh r1, [r5, r2]
movs r3, #0x32
ldrsh r0, [r4, r3]
subs r1, r1, r0
ldrb r2, [r4, #0x15]
movs r0, #0x80
ands r0, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r0, r0, #0x18
eors r1, r0
cmp r1, #0
blt _0807F576
ldrh r0, [r5, #0x22]
strh r0, [r4, #0x32]
b _0807F57C
_0807F576:
ldr r1, _0807F580 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807F57C:
pop {r4, r5, pc}
.align 2, 0
_0807F580: .4byte gUnk_02033280
thumb_func_start sub_0807F584
sub_0807F584: @ 0x0807F584
ldr r0, _0807F590 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
str r0, [r1, #4]
bx lr
.align 2, 0
_0807F590: .4byte gLinkEntity
thumb_func_start sub_0807F594
sub_0807F594: @ 0x0807F594
push {lr}
ldr r0, _0807F5A8 @ =gUnk_03003F80
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0
beq _0807F5A6
ldr r1, _0807F5AC @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807F5A6:
pop {pc}
.align 2, 0
_0807F5A8: .4byte gUnk_03003F80
_0807F5AC: .4byte gUnk_02033280
thumb_func_start sub_0807F5B0
sub_0807F5B0: @ 0x0807F5B0
ldr r0, _0807F5BC @ =gUnk_03003F80
ldr r1, [r1, #4]
adds r0, #0x27
strb r1, [r0]
bx lr
.align 2, 0
_0807F5BC: .4byte gUnk_03003F80
thumb_func_start sub_0807F5C0
sub_0807F5C0: @ 0x0807F5C0
push {r4, lr}
ldr r4, _0807F620 @ =gUnk_03000BF0
ldr r1, [r4, #0x30]
cmp r1, #0
beq _0807F62E
movs r2, #0x2e
ldrsh r0, [r1, r2]
adds r2, r0, #0
subs r2, #0x78
movs r3, #0x32
ldrsh r0, [r1, r3]
adds r3, r0, #0
subs r3, #0x50
ldrh r1, [r4, #6]
cmp r2, r1
bge _0807F5E2
adds r2, r1, #0
_0807F5E2:
ldrh r0, [r4, #0x1e]
adds r0, r1, r0
subs r0, #0xf0
cmp r2, r0
ble _0807F5EE
adds r2, r0, #0
_0807F5EE:
ldrh r1, [r4, #8]
cmp r3, r1
bge _0807F5F6
adds r3, r1, #0
_0807F5F6:
ldrh r0, [r4, #0x20]
adds r0, r1, r0
subs r0, #0xa0
cmp r3, r0
ble _0807F602
adds r3, r0, #0
_0807F602:
movs r1, #0xa
ldrsh r0, [r4, r1]
cmp r2, r0
bne _0807F628
movs r2, #0xc
ldrsh r0, [r4, r2]
cmp r3, r0
bne _0807F628
ldr r2, _0807F624 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
b _0807F62E
.align 2, 0
_0807F620: .4byte gUnk_03000BF0
_0807F624: .4byte gUnk_02033280
_0807F628:
ldr r1, _0807F630 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807F62E:
pop {r4, pc}
.align 2, 0
_0807F630: .4byte gUnk_02033280
thumb_func_start sub_0807F634
sub_0807F634: @ 0x0807F634
push {lr}
ldr r3, [r1, #4]
ldrh r1, [r3]
ldrh r2, [r3, #2]
ldrh r3, [r3, #4]
bl sub_0801DFB4
ldr r0, _0807F64C @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #3
strb r1, [r0]
pop {pc}
.align 2, 0
_0807F64C: .4byte gUnk_03003F80
thumb_func_start sub_0807F650
sub_0807F650: @ 0x0807F650
push {r4, lr}
adds r4, r0, #0
bl sub_08002632
ldr r1, _0807F678 @ =gUnk_08001A7C
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldrh r1, [r0]
ldrh r2, [r0, #2]
ldrh r3, [r0, #4]
adds r0, r4, #0
bl sub_0801DFB4
ldr r0, _0807F67C @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #3
strb r1, [r0]
pop {r4, pc}
.align 2, 0
_0807F678: .4byte gUnk_08001A7C
_0807F67C: .4byte gUnk_03003F80
thumb_func_start sub_0807F680
sub_0807F680: @ 0x0807F680
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, _0807F6A8 @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r0, r1]
ldr r1, _0807F6AC @ =gUnk_03000BF0
ldrh r1, [r1, #6]
subs r0, r0, r1
ldrh r1, [r2, #4]
cmp r0, r1
ble _0807F69A
movs r3, #1
_0807F69A:
str r3, [r2, #0x14]
ldr r2, _0807F6B0 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807F6A8: .4byte gLinkEntity
_0807F6AC: .4byte gUnk_03000BF0
_0807F6B0: .4byte gUnk_02033280
thumb_func_start sub_0807F6B4
sub_0807F6B4: @ 0x0807F6B4
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r0, _0807F6DC @ =gLinkEntity
movs r1, #0x32
ldrsh r0, [r0, r1]
ldr r1, _0807F6E0 @ =gUnk_03000BF0
ldrh r1, [r1, #8]
subs r0, r0, r1
ldrh r1, [r2, #4]
cmp r0, r1
ble _0807F6CE
movs r3, #1
_0807F6CE:
str r3, [r2, #0x14]
ldr r2, _0807F6E4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807F6DC: .4byte gLinkEntity
_0807F6E0: .4byte gUnk_03000BF0
_0807F6E4: .4byte gUnk_02033280
thumb_func_start sub_0807F6E8
sub_0807F6E8: @ 0x0807F6E8
ldr r2, _0807F6F4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, [r1, #4]
orrs r0, r1
str r0, [r2, #0x30]
bx lr
.align 2, 0
_0807F6F4: .4byte gUnk_03003F80
thumb_func_start sub_0807F6F8
sub_0807F6F8: @ 0x0807F6F8
ldr r2, _0807F704 @ =gUnk_03003F80
ldr r1, [r1, #4]
ldr r0, [r2, #0x30]
bics r0, r1
str r0, [r2, #0x30]
bx lr
.align 2, 0
_0807F704: .4byte gUnk_03003F80
thumb_func_start sub_0807F708
sub_0807F708: @ 0x0807F708
push {lr}
ldr r1, [r1, #4]
bl sub_0806F1AC
pop {pc}
.align 2, 0
thumb_func_start sub_0807F714
sub_0807F714: @ 0x0807F714
push {lr}
adds r1, r0, #0
ldr r2, _0807F734 @ =gUnk_08114F30
ldrb r3, [r1, #0x19]
lsrs r0, r3, #6
adds r0, r0, r2
ldrb r2, [r0]
lsls r2, r2, #6
movs r0, #0x3f
ands r0, r3
orrs r0, r2
strb r0, [r1, #0x19]
adds r0, r1, #0
bl sub_0806FAB0
pop {pc}
.align 2, 0
_0807F734: .4byte gUnk_08114F30
thumb_func_start sub_0807F738
sub_0807F738: @ 0x0807F738
push {lr}
adds r1, r0, #0
ldr r2, _0807F758 @ =gUnk_08114F34
ldrb r3, [r1, #0x19]
lsrs r0, r3, #6
adds r0, r0, r2
ldrb r2, [r0]
lsls r2, r2, #6
movs r0, #0x3f
ands r0, r3
orrs r0, r2
strb r0, [r1, #0x19]
adds r0, r1, #0
bl sub_0806FAD8
pop {pc}
.align 2, 0
_0807F758: .4byte gUnk_08114F34
thumb_func_start sub_0807F75C
sub_0807F75C: @ 0x0807F75C
push {r4, lr}
ldr r2, [r1, #4]
ldr r3, _0807F774 @ =gLinkEntity
ldr r1, _0807F778 @ =gUnk_03000BF0
asrs r0, r2, #0x10
ldrh r4, [r1, #6]
adds r0, r0, r4
strh r0, [r3, #0x2e]
ldrh r0, [r1, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
pop {r4, pc}
.align 2, 0
_0807F774: .4byte gLinkEntity
_0807F778: .4byte gUnk_03000BF0
thumb_func_start sub_0807F77C
sub_0807F77C: @ 0x0807F77C
push {lr}
ldr r0, [r1, #0x14]
cmp r0, #0
beq _0807F786
movs r0, #1
_0807F786:
str r0, [r1, #4]
pop {pc}
.align 2, 0
thumb_func_start sub_0807F78C
sub_0807F78C: @ 0x0807F78C
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r5, [r1, #4]
cmp r5, #0
bne _0807F79A
ldr r0, _0807F7BC @ =gUnk_02034350
ldrb r5, [r0, #6]
_0807F79A:
adds r0, r5, #0
bl sub_08053FD0
adds r4, r0, #0
adds r0, r5, #0
bl sub_08053FE0
adds r5, r0, #0
adds r0, r4, #0
adds r1, r6, #0
bl sub_08056398
ldr r0, _0807F7C0 @ =gUnk_02000050
lsls r5, r5, #0x10
lsrs r5, r5, #0x10
str r5, [r0, #0x10]
pop {r4, r5, r6, pc}
.align 2, 0
_0807F7BC: .4byte gUnk_02034350
_0807F7C0: .4byte gUnk_02000050
thumb_func_start sub_0807F7C4
sub_0807F7C4: @ 0x0807F7C4
push {r4, lr}
adds r4, r1, #0
ldr r0, [r4, #4]
cmp r0, #0
bne _0807F7D2
ldr r0, _0807F7F4 @ =gUnk_02034350
ldrb r0, [r0, #6]
_0807F7D2:
bl sub_08053FE0
movs r2, #0
ldr r1, _0807F7F8 @ =gUnk_02002A40
adds r1, #0xc0
ldrh r1, [r1]
cmp r0, r1
bgt _0807F7E4
movs r2, #1
_0807F7E4:
str r2, [r4, #0x14]
ldr r2, _0807F7FC @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807F7F4: .4byte gUnk_02034350
_0807F7F8: .4byte gUnk_02002A40
_0807F7FC: .4byte gUnk_02033280
thumb_func_start sub_0807F800
sub_0807F800: @ 0x0807F800
push {r4, lr}
ldr r4, [r1, #4]
cmp r4, #0
bne _0807F80C
ldr r0, _0807F834 @ =gUnk_02034350
ldrb r4, [r0, #6]
_0807F80C:
adds r0, r4, #0
bl sub_08053FE0
rsbs r0, r0, #0
bl sub_080526CC
adds r0, r4, #0
movs r1, #0
movs r2, #0
bl sub_080A7C18
ldr r1, _0807F834 @ =gUnk_02034350
movs r0, #0
strb r0, [r1, #6]
ldr r2, _0807F838 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_0807F834: .4byte gUnk_02034350
_0807F838: .4byte gUnk_02033280
thumb_func_start sub_0807F83C
sub_0807F83C: @ 0x0807F83C
push {lr}
bl sub_08079184
pop {pc}
thumb_func_start sub_0807F844
sub_0807F844: @ 0x0807F844
push {lr}
ldr r1, _0807F850 @ =gUnk_03000BF0
str r0, [r1, #0x30]
bl sub_080809D4
pop {pc}
.align 2, 0
_0807F850: .4byte gUnk_03000BF0
thumb_func_start sub_0807F854
sub_0807F854: @ 0x0807F854
push {lr}
ldr r1, [r1, #4]
lsrs r2, r1, #0x10
movs r0, #3
ands r2, r0
ldr r3, _0807F870 @ =0x0000FFFF
ands r3, r1
cmp r2, #4
bhi _0807F8B4
lsls r0, r2, #2
ldr r1, _0807F874 @ =_0807F878
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807F870: .4byte 0x0000FFFF
_0807F874: .4byte _0807F878
_0807F878: @ jump table
.4byte _0807F88C @ case 0
.4byte _0807F88C @ case 1
.4byte _0807F898 @ case 2
.4byte _0807F8A4 @ case 3
.4byte _0807F8B0 @ case 4
_0807F88C:
ldr r0, _0807F894 @ =gUnk_02000050
str r3, [r0, #0x10]
b _0807F8B4
.align 2, 0
_0807F894: .4byte gUnk_02000050
_0807F898:
ldr r0, _0807F8A0 @ =gUnk_02000050
str r3, [r0, #0x14]
b _0807F8B4
.align 2, 0
_0807F8A0: .4byte gUnk_02000050
_0807F8A4:
ldr r0, _0807F8AC @ =gUnk_02000050
str r3, [r0, #0x18]
b _0807F8B4
.align 2, 0
_0807F8AC: .4byte gUnk_02000050
_0807F8B0:
ldr r0, _0807F8B8 @ =gUnk_02000050
str r3, [r0, #0x1c]
_0807F8B4:
pop {pc}
.align 2, 0
_0807F8B8: .4byte gUnk_02000050
thumb_func_start sub_0807F8BC
sub_0807F8BC: @ 0x0807F8BC
push {r4, lr}
adds r4, r1, #0
bl sub_080040A8
cmp r0, #0
beq _0807F8CA
movs r0, #1
_0807F8CA:
str r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0807F8D0
sub_0807F8D0: @ 0x0807F8D0
push {lr}
ldr r1, [r1, #4]
bl sub_08003FC4
ldr r2, _0807F8E4 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {pc}
.align 2, 0
_0807F8E4: .4byte gUnk_02033280
thumb_func_start sub_0807F8E8
sub_0807F8E8: @ 0x0807F8E8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r1, #0xa6
movs r2, #0
movs r3, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _0807F912
str r4, [r2, #0x50]
ldr r0, [r5, #4]
ldr r1, _0807F914 @ =0x000003FF
ands r0, r1
movs r3, #0x80
lsls r3, r3, #8
adds r1, r3, #0
adds r2, #0x86
orrs r0, r1
strh r0, [r2]
_0807F912:
pop {r4, r5, pc}
.align 2, 0
_0807F914: .4byte 0x000003FF
thumb_func_start sub_0807F918
sub_0807F918: @ 0x0807F918
push {lr}
ldr r0, [r1, #4]
bl sub_08054398
pop {pc}
.align 2, 0
thumb_func_start sub_0807F924
sub_0807F924: @ 0x0807F924
push {lr}
bl sub_0807879C
pop {pc}
thumb_func_start sub_0807F92C
sub_0807F92C: @ 0x0807F92C
push {lr}
bl sub_080787C0
pop {pc}
thumb_func_start sub_0807F934
sub_0807F934: @ 0x0807F934
push {lr}
bl sub_080787B4
pop {pc}
thumb_func_start sub_0807F93C
sub_0807F93C: @ 0x0807F93C
push {lr}
ldr r2, [r1, #4]
lsrs r1, r2, #8
movs r3, #0xff
ands r1, r3
ands r2, r3
bl sub_080A2D1C
pop {pc}
.align 2, 0
thumb_func_start sub_0807F950
sub_0807F950: @ 0x0807F950
push {lr}
sub sp, #4
movs r0, #2
str r0, [sp]
movs r0, #6
movs r1, #0x56
movs r2, #6
movs r3, #0
bl sub_0805EB2C
cmp r0, #0
beq _0807F96C
bl sub_0805E7BC
_0807F96C:
add sp, #4
pop {pc}
thumb_func_start sub_0807F970
sub_0807F970: @ 0x0807F970
push {lr}
adds r2, r1, #0
movs r3, #0
ldr r1, _0807F988 @ =gUnk_02022780
ldr r0, [r2, #4]
ldrh r1, [r1, #0x28]
cmp r0, r1
bne _0807F982
movs r3, #1
_0807F982:
str r3, [r2, #0x14]
pop {pc}
.align 2, 0
_0807F988: .4byte gUnk_02022780
thumb_func_start sub_0807F98C
sub_0807F98C: @ 0x0807F98C
ldr r1, [r1, #4]
str r1, [r0, #0x34]
bx lr
.align 2, 0
thumb_func_start sub_0807F994
sub_0807F994: @ 0x0807F994
ldr r2, [r1, #4]
asrs r1, r2, #0x10
adds r3, r0, #0
adds r3, #0x62
strb r1, [r3]
adds r0, #0x63
strb r2, [r0]
bx lr
thumb_func_start sub_0807F9A4
sub_0807F9A4: @ 0x0807F9A4
push {lr}
ldr r0, _0807F9BC @ =gUnk_03003F80
adds r0, #0xa8
ldrb r0, [r0]
subs r0, #5
cmp r0, #0x17
bhi _0807FA30
lsls r0, r0, #2
ldr r1, _0807F9C0 @ =_0807F9C4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807F9BC: .4byte gUnk_03003F80
_0807F9C0: .4byte _0807F9C4
_0807F9C4: @ jump table
.4byte _0807FA24 @ case 0
.4byte _0807FA30 @ case 1
.4byte _0807FA24 @ case 2
.4byte _0807FA24 @ case 3
.4byte _0807FA30 @ case 4
.4byte _0807FA24 @ case 5
.4byte _0807FA24 @ case 6
.4byte _0807FA24 @ case 7
.4byte _0807FA24 @ case 8
.4byte _0807FA24 @ case 9
.4byte _0807FA24 @ case 10
.4byte _0807FA24 @ case 11
.4byte _0807FA24 @ case 12
.4byte _0807FA24 @ case 13
.4byte _0807FA24 @ case 14
.4byte _0807FA24 @ case 15
.4byte _0807FA24 @ case 16
.4byte _0807FA24 @ case 17
.4byte _0807FA24 @ case 18
.4byte _0807FA24 @ case 19
.4byte _0807FA30 @ case 20
.4byte _0807FA30 @ case 21
.4byte _0807FA24 @ case 22
.4byte _0807FA24 @ case 23
_0807FA24:
ldr r1, _0807FA2C @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
b _0807FA3A
.align 2, 0
_0807FA2C: .4byte gUnk_02033280
_0807FA30:
ldr r2, _0807FA3C @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
_0807FA3A:
pop {pc}
.align 2, 0
_0807FA3C: .4byte gUnk_02033280
thumb_func_start sub_0807FA40
sub_0807FA40: @ 0x0807FA40
push {lr}
ldr r0, _0807FA58 @ =gUnk_03003F80
adds r0, #0xa8
ldrb r0, [r0]
subs r0, #5
cmp r0, #0x17
bhi _0807FACC
lsls r0, r0, #2
ldr r1, _0807FA5C @ =_0807FA60
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0807FA58: .4byte gUnk_03003F80
_0807FA5C: .4byte _0807FA60
_0807FA60: @ jump table
.4byte _0807FAC0 @ case 0
.4byte _0807FACC @ case 1
.4byte _0807FAC0 @ case 2
.4byte _0807FAC0 @ case 3
.4byte _0807FACC @ case 4
.4byte _0807FAC0 @ case 5
.4byte _0807FAC0 @ case 6
.4byte _0807FAC0 @ case 7
.4byte _0807FAC0 @ case 8
.4byte _0807FAC0 @ case 9
.4byte _0807FAC0 @ case 10
.4byte _0807FAC0 @ case 11
.4byte _0807FAC0 @ case 12
.4byte _0807FAC0 @ case 13
.4byte _0807FACC @ case 14
.4byte _0807FAC0 @ case 15
.4byte _0807FAC0 @ case 16
.4byte _0807FAC0 @ case 17
.4byte _0807FAC0 @ case 18
.4byte _0807FAC0 @ case 19
.4byte _0807FACC @ case 20
.4byte _0807FACC @ case 21
.4byte _0807FAC0 @ case 22
.4byte _0807FAC0 @ case 23
_0807FAC0:
ldr r1, _0807FAC8 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
b _0807FAD6
.align 2, 0
_0807FAC8: .4byte gUnk_02033280
_0807FACC:
ldr r2, _0807FAD8 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
_0807FAD6:
pop {pc}
.align 2, 0
_0807FAD8: .4byte gUnk_02033280
thumb_func_start sub_0807FADC
sub_0807FADC: @ 0x0807FADC
push {r4, lr}
adds r2, r0, #0
adds r4, r1, #0
ldrb r0, [r4, #0x18]
cmp r0, #1
beq _0807FB06
cmp r0, #1
bgt _0807FAF2
cmp r0, #0
beq _0807FAF8
b _0807FB1C
_0807FAF2:
cmp r0, #2
beq _0807FB16
b _0807FB1C
_0807FAF8:
movs r0, #1
strb r0, [r4, #0x18]
ldr r1, [r4, #4]
adds r0, r2, #0
bl sub_0808C650
b _0807FB1C
_0807FB06:
bl sub_0808C67C
cmp r0, #0
beq _0807FB1C
ldrb r0, [r4, #0x18]
adds r0, #1
strb r0, [r4, #0x18]
b _0807FB1C
_0807FB16:
bl sub_0808C688
b _0807FB22
_0807FB1C:
ldr r1, _0807FB24 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807FB22:
pop {r4, pc}
.align 2, 0
_0807FB24: .4byte gUnk_02033280
thumb_func_start sub_0807FB28
sub_0807FB28: @ 0x0807FB28
push {r4, lr}
adds r4, r1, #0
ldrb r0, [r4, #0x18]
cmp r0, #0
bne _0807FB3A
ldr r0, _0807FB54 @ =0x00007FFF
movs r1, #1
bl sub_0801D7BC
_0807FB3A:
ldrb r0, [r4, #0x18]
adds r0, #1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x18]
ldr r0, [r4, #4]
cmp r1, r0
blo _0807FB58
movs r0, #0
movs r1, #0
bl sub_0801D7BC
b _0807FB5E
.align 2, 0
_0807FB54: .4byte 0x00007FFF
_0807FB58:
ldr r1, _0807FB60 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807FB5E:
pop {r4, pc}
.align 2, 0
_0807FB60: .4byte gUnk_02033280
thumb_func_start sub_0807FB64
sub_0807FB64: @ 0x0807FB64
ldr r0, _0807FB70 @ =gLinkEntity
ldr r1, [r1, #4]
adds r0, #0x3d
strb r1, [r0]
bx lr
.align 2, 0
_0807FB70: .4byte gLinkEntity
thumb_func_start sub_0807FB74
sub_0807FB74: @ 0x0807FB74
ldr r0, _0807FB8C @ =gUnk_03003F80
adds r0, #0x26
movs r1, #0
strb r1, [r0]
ldr r1, _0807FB90 @ =gLinkEntity
adds r1, #0x3c
ldrb r2, [r1]
movs r0, #0xfb
ands r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_0807FB8C: .4byte gUnk_03003F80
_0807FB90: .4byte gLinkEntity
thumb_func_start sub_0807FB94
sub_0807FB94: @ 0x0807FB94
push {lr}
movs r0, #4
bl sub_08056010
pop {pc}
.align 2, 0
thumb_func_start sub_0807FBA0
sub_0807FBA0: @ 0x0807FBA0
ldr r2, _0807FBB0 @ =gUnk_03000BF0
ldrh r1, [r2, #0xa]
adds r1, #0x78
strh r1, [r0, #0x2e]
ldrh r1, [r2, #0xc]
adds r1, #0x50
strh r1, [r0, #0x32]
bx lr
.align 2, 0
_0807FBB0: .4byte gUnk_03000BF0
thumb_func_start sub_0807FBB4
sub_0807FBB4: @ 0x0807FBB4
ldr r2, _0807FBC0 @ =gUnk_03003F80
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
bx lr
.align 2, 0
_0807FBC0: .4byte gUnk_03003F80
thumb_func_start sub_0807FBC4
sub_0807FBC4: @ 0x0807FBC4
push {lr}
bl sub_0805E4A0
pop {pc}
thumb_func_start sub_0807FBCC
sub_0807FBCC: @ 0x0807FBCC
push {lr}
bl sub_0805E4CC
pop {pc}
thumb_func_start sub_0807FBD4
sub_0807FBD4: @ 0x0807FBD4
push {r4, lr}
adds r4, r0, #0
movs r0, #0x24
ldrsh r1, [r4, r0]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F62C
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
beq _0807FBF4
ldr r1, _0807FBF8 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0807FBF4:
pop {r4, pc}
.align 2, 0
_0807FBF8: .4byte gUnk_02033280
thumb_func_start sub_0807FBFC
sub_0807FBFC: @ 0x0807FBFC
ldr r3, _0807FC20 @ =gUnk_02002A40
adds r0, r3, #0
adds r0, #0xb2
movs r1, #0
strb r1, [r0]
adds r0, #0x12
movs r2, #0
strh r1, [r0]
subs r0, #0x11
strb r2, [r0]
adds r0, #0x13
strh r1, [r0]
subs r0, #0xc
strb r2, [r0]
adds r0, #0xe
strh r1, [r0]
bx lr
.align 2, 0
_0807FC20: .4byte gUnk_02002A40
thumb_func_start sub_0807FC24
sub_0807FC24: @ 0x0807FC24
push {lr}
ldr r0, _0807FC3C @ =gUnk_03000BF0
ldrb r0, [r0, #5]
movs r1, #0xd1
cmp r0, #1
bne _0807FC32
movs r1, #0xcf
_0807FC32:
adds r0, r1, #0
bl sub_0807CCB4
pop {pc}
.align 2, 0
_0807FC3C: .4byte gUnk_03000BF0
thumb_func_start sub_0807FC40
sub_0807FC40: @ 0x0807FC40
push {lr}
ldr r0, _0807FC5C @ =gUnk_03000BF0
ldrb r2, [r0, #0xf]
movs r1, #0xfb
ands r1, r2
strb r1, [r0, #0xf]
ldr r2, _0807FC60 @ =gUnk_0811E768
ldrb r1, [r0, #2]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807FC5C: .4byte gUnk_03000BF0
_0807FC60: .4byte gUnk_0811E768
thumb_func_start sub_0807FC64
sub_0807FC64: @ 0x0807FC64
push {lr}
movs r2, #0
movs r1, #1
strb r1, [r0, #2]
strh r2, [r0]
movs r1, #4
strb r1, [r0, #0xe]
bl sub_0807FC7C
bl sub_080805F8
pop {pc}
thumb_func_start sub_0807FC7C
sub_0807FC7C: @ 0x0807FC7C
push {r4, r5, r6, r7, lr}
adds r2, r0, #0
ldr r0, [r2, #0x30]
cmp r0, #0
bne _0807FC88
b _0807FDA6
_0807FC88:
movs r1, #0xa
ldrsh r4, [r2, r1]
movs r1, #0x2e
ldrsh r0, [r0, r1]
subs r0, #0x78
subs r3, r4, r0
cmp r3, #0
beq _0807FD16
ldrh r6, [r2, #0xa]
movs r7, #7
ands r7, r6
mov ip, r6
cmp r3, #0
ble _0807FCDC
ldrh r0, [r2, #6]
adds r5, r0, #0
cmp r5, r4
bge _0807FD16
ldrb r0, [r2, #0xe]
cmp r0, r3
bgt _0807FCBC
adds r3, r0, #0
ldrb r1, [r2, #0xf]
movs r0, #4
orrs r0, r1
strb r0, [r2, #0xf]
_0807FCBC:
mov r1, ip
subs r0, r1, r3
strh r0, [r2, #0xa]
subs r0, r7, r3
cmp r0, #0
bgt _0807FCCE
ldr r1, _0807FCD8 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807FCCE:
movs r1, #0xa
ldrsh r0, [r2, r1]
cmp r5, r0
blt _0807FD16
b _0807FD14
.align 2, 0
_0807FCD8: .4byte gUnk_02000070
_0807FCDC:
ldrh r0, [r2, #6]
ldrh r1, [r2, #0x1e]
adds r0, r0, r1
adds r5, r0, #0
subs r5, #0xf0
cmp r4, r5
bge _0807FD16
ldrb r0, [r2, #0xe]
rsbs r0, r0, #0
cmp r0, r3
blt _0807FCFC
adds r3, r0, #0
ldrb r1, [r2, #0xf]
movs r0, #4
orrs r0, r1
strb r0, [r2, #0xf]
_0807FCFC:
subs r0, r6, r3
strh r0, [r2, #0xa]
subs r0, r7, r3
cmp r0, #7
ble _0807FD0C
ldr r1, _0807FD68 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807FD0C:
movs r1, #0xa
ldrsh r0, [r2, r1]
cmp r0, r5
blt _0807FD16
_0807FD14:
strh r5, [r2, #0xa]
_0807FD16:
movs r0, #0xc
ldrsh r4, [r2, r0]
ldr r0, [r2, #0x30]
movs r1, #0x32
ldrsh r0, [r0, r1]
subs r0, #0x50
subs r3, r4, r0
cmp r3, #0
beq _0807FDA6
ldrh r6, [r2, #0xc]
movs r7, #7
ands r7, r6
mov ip, r6
cmp r3, #0
ble _0807FD6C
ldrh r0, [r2, #8]
adds r5, r0, #0
cmp r5, r4
bge _0807FDA6
ldrb r0, [r2, #0xe]
cmp r0, r3
bgt _0807FD4C
adds r3, r0, #0
ldrb r1, [r2, #0xf]
movs r0, #4
orrs r0, r1
strb r0, [r2, #0xf]
_0807FD4C:
mov r1, ip
subs r0, r1, r3
strh r0, [r2, #0xc]
subs r0, r7, r3
cmp r0, #0
bgt _0807FD5E
ldr r1, _0807FD68 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807FD5E:
movs r1, #0xc
ldrsh r0, [r2, r1]
cmp r5, r0
blt _0807FDA6
b _0807FDA4
.align 2, 0
_0807FD68: .4byte gUnk_02000070
_0807FD6C:
ldrh r0, [r2, #8]
ldrh r1, [r2, #0x20]
adds r0, r0, r1
adds r5, r0, #0
subs r5, #0xa0
cmp r4, r5
bge _0807FDA6
ldrb r0, [r2, #0xe]
rsbs r0, r0, #0
cmp r0, r3
blt _0807FD8C
adds r3, r0, #0
ldrb r1, [r2, #0xf]
movs r0, #4
orrs r0, r1
strb r0, [r2, #0xf]
_0807FD8C:
subs r0, r6, r3
strh r0, [r2, #0xc]
subs r0, r7, r3
cmp r0, #7
ble _0807FD9C
ldr r1, _0807FDAC @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
_0807FD9C:
movs r1, #0xc
ldrsh r0, [r2, r1]
cmp r0, r5
blt _0807FDA6
_0807FDA4:
strh r5, [r2, #0xc]
_0807FDA6:
bl sub_08080BC4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0807FDAC: .4byte gUnk_02000070
thumb_func_start sub_0807FDB0
sub_0807FDB0: @ 0x0807FDB0
push {lr}
ldr r2, _0807FDC4 @ =gUnk_0811E780
ldrb r1, [r0, #3]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807FDC4: .4byte gUnk_0811E780
thumb_func_start sub_0807FDC8
sub_0807FDC8: @ 0x0807FDC8
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _0807FDE0 @ =gUnk_02000070
movs r0, #1
strb r0, [r4]
bl sub_08000108
movs r1, #0
movs r0, #1
strb r0, [r5, #3]
strb r1, [r4]
pop {r4, r5, pc}
.align 2, 0
_0807FDE0: .4byte gUnk_02000070
thumb_func_start sub_0807FDE4
sub_0807FDE4: @ 0x0807FDE4
movs r2, #0
movs r1, #2
strb r1, [r0, #3]
strh r2, [r0, #0x18]
ldr r0, _0807FDF4 @ =gUnk_02000070
strb r1, [r0]
bx lr
.align 2, 0
_0807FDF4: .4byte gUnk_02000070
thumb_func_start sub_0807FDF8
sub_0807FDF8: @ 0x0807FDF8
push {r4, lr}
adds r4, r0, #0
ldr r1, _0807FE18 @ =gUnk_02000070
movs r0, #2
strb r0, [r1]
ldrh r0, [r4, #0x18]
adds r0, #1
strh r0, [r4, #0x18]
ldrb r0, [r4, #0x10]
cmp r0, #1
beq _0807FE44
cmp r0, #1
bgt _0807FE1C
cmp r0, #0
beq _0807FE26
b _0807FEB6
.align 2, 0
_0807FE18: .4byte gUnk_02000070
_0807FE1C:
cmp r0, #2
beq _0807FE68
cmp r0, #3
beq _0807FE94
b _0807FEB6
_0807FE26:
ldrh r0, [r4, #0xc]
subs r0, #4
strh r0, [r4, #0xc]
ldr r1, [r4, #0x30]
ldr r0, _0807FE3C @ =gLinkEntity
cmp r1, r0
bne _0807FE80
ldr r0, [r1, #0x30]
ldr r2, _0807FE40 @ =0xFFFFA000
b _0807FE7C
.align 2, 0
_0807FE3C: .4byte gLinkEntity
_0807FE40: .4byte 0xFFFFA000
_0807FE44:
ldrh r0, [r4, #0xa]
adds r0, #4
strh r0, [r4, #0xa]
ldr r1, [r4, #0x30]
ldr r0, _0807FE64 @ =gLinkEntity
cmp r1, r0
bne _0807FE5C
ldr r0, [r1, #0x2c]
movs r2, #0x80
lsls r2, r2, #7
adds r0, r0, r2
str r0, [r1, #0x2c]
_0807FE5C:
ldrh r0, [r4, #0x18]
cmp r0, #0x3c
bne _0807FEB6
b _0807FE86
.align 2, 0
_0807FE64: .4byte gLinkEntity
_0807FE68:
ldrh r0, [r4, #0xc]
adds r0, #4
strh r0, [r4, #0xc]
ldr r1, [r4, #0x30]
ldr r0, _0807FE90 @ =gLinkEntity
cmp r1, r0
bne _0807FE80
ldr r0, [r1, #0x30]
movs r2, #0xc0
lsls r2, r2, #7
_0807FE7C:
adds r0, r0, r2
str r0, [r1, #0x30]
_0807FE80:
ldrh r0, [r4, #0x18]
cmp r0, #0x28
bne _0807FEB6
_0807FE86:
adds r0, r4, #0
bl sub_0807FEC8
b _0807FEB6
.align 2, 0
_0807FE90: .4byte gLinkEntity
_0807FE94:
ldrh r0, [r4, #0xa]
subs r0, #4
strh r0, [r4, #0xa]
ldr r1, [r4, #0x30]
ldr r0, _0807FEC0 @ =gLinkEntity
cmp r1, r0
bne _0807FEAA
ldr r0, [r1, #0x2c]
ldr r2, _0807FEC4 @ =0xFFFFC000
adds r0, r0, r2
str r0, [r1, #0x2c]
_0807FEAA:
ldrh r0, [r4, #0x18]
cmp r0, #0x3c
bne _0807FEB6
adds r0, r4, #0
bl sub_0807FEC8
_0807FEB6:
movs r0, #0
strh r0, [r4, #0x16]
bl sub_08080BC4
pop {r4, pc}
.align 2, 0
_0807FEC0: .4byte gLinkEntity
_0807FEC4: .4byte 0xFFFFC000
thumb_func_start sub_0807FEC8
sub_0807FEC8: @ 0x0807FEC8
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0
strb r0, [r5, #2]
subs r0, #1
ldr r4, _0807FEEC @ =gUnk_03003FC0
adds r1, r4, #0
movs r2, #0x40
bl sub_0801D610
subs r4, #0x40
ldr r1, [r5, #0x30]
ldrh r0, [r1, #0x2e]
strh r0, [r4, #0x16]
ldrh r0, [r1, #0x32]
strh r0, [r4, #0x18]
pop {r4, r5, pc}
.align 2, 0
_0807FEEC: .4byte gUnk_03003FC0
thumb_func_start sub_0807FEF0
sub_0807FEF0: @ 0x0807FEF0
push {lr}
ldr r2, _0807FF04 @ =gUnk_0811E78C
ldrb r1, [r0, #3]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807FF04: .4byte gUnk_0811E78C
thumb_func_start sub_0807FF08
sub_0807FF08: @ 0x0807FF08
movs r2, #0
movs r1, #1
strb r1, [r0, #3]
strh r2, [r0, #0x18]
ldr r1, _0807FF18 @ =gUnk_02000070
movs r0, #3
strb r0, [r1]
bx lr
.align 2, 0
_0807FF18: .4byte gUnk_02000070
thumb_func_start sub_0807FF1C
sub_0807FF1C: @ 0x0807FF1C
push {lr}
adds r2, r0, #0
ldr r0, _0807FF4C @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0807FF48
ldr r1, _0807FF50 @ =gUnk_02000070
movs r0, #3
strb r0, [r1]
ldrh r0, [r2, #0x18]
adds r0, #1
strh r0, [r2, #0x18]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x13
bls _0807FF48
movs r0, #0
strb r0, [r2, #2]
bl sub_0805E5B4
_0807FF48:
pop {pc}
.align 2, 0
_0807FF4C: .4byte gUnk_030010A0
_0807FF50: .4byte gUnk_02000070
thumb_func_start sub_0807FF54
sub_0807FF54: @ 0x0807FF54
push {lr}
ldr r2, _0807FF68 @ =gUnk_0811E794
ldrb r1, [r0, #3]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0807FF68: .4byte gUnk_0811E794
thumb_func_start sub_0807FF6C
sub_0807FF6C: @ 0x0807FF6C
push {r4, lr}
movs r1, #1
strb r1, [r0, #3]
ldr r3, _0807FFC8 @ =gUnk_03000F50
ldrh r1, [r3]
movs r2, #0x80
lsls r2, r2, #7
adds r0, r2, #0
orrs r0, r1
strh r0, [r3]
adds r2, r3, #0
adds r2, #0x60
ldrb r0, [r2]
movs r4, #0xb8
lsls r4, r4, #5
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
adds r2, #2
ldrh r1, [r2]
movs r0, #0xff
lsls r0, r0, #8
ands r0, r1
movs r1, #7
movs r4, #0
orrs r0, r1
strh r0, [r2]
adds r0, r3, #0
adds r0, #0x5a
movs r1, #0xf0
strh r1, [r0]
adds r0, #4
strh r1, [r0]
bl sub_08077B2C
bl sub_080791D0
ldr r0, _0807FFCC @ =gUnk_03004030
ldrb r0, [r0, #8]
cmp r0, #0
beq _0807FFD4
ldr r1, _0807FFD0 @ =gLinkEntity
movs r0, #4
strb r0, [r1, #0x14]
b _0807FFD8
.align 2, 0
_0807FFC8: .4byte gUnk_03000F50
_0807FFCC: .4byte gUnk_03004030
_0807FFD0: .4byte gLinkEntity
_0807FFD4:
ldr r0, _0807FFE0 @ =gLinkEntity
strb r4, [r0, #0x14]
_0807FFD8:
bl sub_080809D4
pop {r4, pc}
.align 2, 0
_0807FFE0: .4byte gLinkEntity
thumb_func_start sub_0807FFE4
sub_0807FFE4: @ 0x0807FFE4
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #2
strb r0, [r5, #3]
bl sub_080803D0
adds r0, #6
strh r0, [r5, #0x18]
ldr r4, _0808002C @ =gUnk_0200B640
bl sub_08080278
strh r0, [r4]
ldr r1, _08080030 @ =gUnk_08109194
ldr r0, _08080034 @ =gUnk_03004030
ldr r0, [r0]
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0]
bl sub_080197D4
ldr r4, _08080038 @ =gUnk_0200B654
ldrh r1, [r5, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r5, #0x20]
lsrs r2, r2, #4
adds r0, r4, #0
bl sub_0807C8B0
ldr r0, _0808003C @ =gUnk_02002F00
subs r4, #4
adds r1, r4, #0
bl sub_0801AB08
pop {r4, r5, pc}
.align 2, 0
_0808002C: .4byte gUnk_0200B640
_08080030: .4byte gUnk_08109194
_08080034: .4byte gUnk_03004030
_08080038: .4byte gUnk_0200B654
_0808003C: .4byte gUnk_02002F00
thumb_func_start sub_08080040
sub_08080040: @ 0x08080040
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrh r4, [r5, #0x18]
subs r4, #6
strh r4, [r5, #0x18]
ldrh r0, [r5, #0x18]
lsls r0, r0, #1
movs r1, #3
bl __divsi3
strh r0, [r5, #0x1a]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #0x2a
bls _080800C6
ldr r3, [r5, #0x30]
movs r1, #0x2e
ldrsh r0, [r3, r1]
movs r2, #0xa
ldrsh r1, [r5, r2]
subs r2, r0, r1
ldrh r1, [r5, #0x18]
subs r0, r2, r1
adds r7, r0, #0
adds r7, #8
cmp r7, #0
bge _08080078
movs r7, #0
_08080078:
adds r0, r2, r1
adds r6, r0, #0
subs r6, #8
cmp r6, #0xf0
ble _08080084
movs r6, #0xf0
_08080084:
movs r1, #0x32
ldrsh r0, [r3, r1]
movs r2, #0xc
ldrsh r1, [r5, r2]
subs r2, r0, r1
ldrh r1, [r5, #0x1a]
subs r0, r2, r1
adds r4, r0, #0
adds r4, #8
cmp r4, #0
bge _0808009C
movs r4, #0
_0808009C:
adds r0, r2, r1
adds r3, r0, #0
subs r3, #8
cmp r3, #0xa0
ble _080800A8
movs r3, #0xa0
_080800A8:
ldr r2, _080800F0 @ =gUnk_03000F50
movs r1, #0xff
ands r7, r1
lsls r0, r7, #8
ands r6, r1
orrs r0, r6
adds r6, r2, #0
adds r6, #0x5a
strh r0, [r6]
ands r4, r1
lsls r0, r4, #8
ands r3, r1
orrs r0, r3
adds r2, #0x5e
strh r0, [r2]
_080800C6:
ldrh r0, [r5, #0x18]
cmp r0, #0
bne _080800FC
movs r0, #3
strb r0, [r5, #3]
bl sub_0805E9F4
bl sub_0807C810
ldr r1, _080800F4 @ =gUnk_08109194
ldr r0, _080800F8 @ =gUnk_03004030
ldr r0, [r0]
ldrb r0, [r0, #3]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldr r0, [r0, #4]
bl sub_08080C80
b _08080102
.align 2, 0
_080800F0: .4byte gUnk_03000F50
_080800F4: .4byte gUnk_08109194
_080800F8: .4byte gUnk_03004030
_080800FC:
ldr r1, _08080104 @ =gUnk_02000070
movs r0, #4
strb r0, [r1]
_08080102:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08080104: .4byte gUnk_02000070
thumb_func_start sub_08080108
sub_08080108: @ 0x08080108
push {r4, r5, r6, lr}
movs r1, #4
strb r1, [r0, #3]
ldr r5, _08080178 @ =gUnk_02025EB4
movs r0, #0xc0
lsls r0, r0, #6
adds r1, r5, r0
movs r6, #0x80
lsls r6, r6, #6
adds r0, r5, #0
adds r2, r6, #0
bl sub_0801D66C
ldr r4, _0808017C @ =gUnk_0200B654
movs r0, #0xc0
lsls r0, r0, #6
adds r1, r4, r0
adds r0, r4, #0
adds r2, r6, #0
bl sub_0801D66C
bl sub_08080368
ldr r1, _08080180 @ =gUnk_02034480
ldr r0, _08080184 @ =gUnk_0200B640
ldrh r0, [r0]
strh r0, [r1]
ldr r0, _08080188 @ =gUnk_02022830
ldr r1, _0808018C @ =gUnk_020246B0
movs r2, #0xc0
lsls r2, r2, #5
bl sub_0801D66C
subs r5, #4
adds r0, r5, #0
bl sub_08080B60
subs r4, #4
adds r0, r4, #0
bl sub_08080B60
bl sub_0807BBE4
bl sub_0807BC84
bl sub_0805E248
ldr r0, _08080190 @ =gUnk_02019EE0
adds r1, r5, #0
bl sub_0801AB08
ldr r0, _08080194 @ =gUnk_02002F00
adds r1, r4, #0
bl sub_0801AB08
pop {r4, r5, r6, pc}
.align 2, 0
_08080178: .4byte gUnk_02025EB4
_0808017C: .4byte gUnk_0200B654
_08080180: .4byte gUnk_02034480
_08080184: .4byte gUnk_0200B640
_08080188: .4byte gUnk_02022830
_0808018C: .4byte gUnk_020246B0
_08080190: .4byte gUnk_02019EE0
_08080194: .4byte gUnk_02002F00
thumb_func_start sub_08080198
sub_08080198: @ 0x08080198
push {r4, lr}
movs r1, #5
strb r1, [r0, #3]
movs r4, #0
movs r1, #0xff
strh r1, [r0, #0x1c]
bl LoadRoom
bl sub_0804AFF4
ldr r0, _080801B8 @ =gUnk_02000070
strb r4, [r0]
bl sub_080805F8
pop {r4, pc}
.align 2, 0
_080801B8: .4byte gUnk_02000070
thumb_func_start sub_080801BC
sub_080801BC: @ 0x080801BC
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrh r4, [r5, #0x18]
adds r4, #6
strh r4, [r5, #0x18]
ldrh r0, [r5, #0x18]
lsls r0, r0, #1
movs r1, #3
bl __divsi3
strh r0, [r5, #0x1a]
lsls r4, r4, #0x10
lsrs r4, r4, #0x10
cmp r4, #0x1e
bls _08080232
ldr r2, [r5, #0x30]
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r3, #0xa
ldrsh r0, [r5, r3]
subs r0, r1, r0
ldrh r1, [r5, #0x18]
subs r7, r0, r1
cmp r7, #0
bge _080801F0
movs r7, #0
_080801F0:
adds r6, r0, r1
cmp r6, #0xf0
ble _080801F8
movs r6, #0xf0
_080801F8:
movs r0, #0x32
ldrsh r1, [r2, r0]
movs r2, #0xc
ldrsh r0, [r5, r2]
subs r0, r1, r0
ldrh r1, [r5, #0x1a]
subs r4, r0, r1
cmp r4, #0
bge _0808020C
movs r4, #0
_0808020C:
adds r3, r0, r1
cmp r3, #0xa0
ble _08080214
movs r3, #0xa0
_08080214:
ldr r2, _08080260 @ =gUnk_03000F50
movs r1, #0xff
ands r7, r1
lsls r0, r7, #8
ands r6, r1
orrs r0, r6
adds r6, r2, #0
adds r6, #0x5a
strh r0, [r6]
ands r4, r1
lsls r0, r4, #8
ands r3, r1
orrs r0, r3
adds r2, #0x5e
strh r0, [r2]
_08080232:
ldrh r0, [r5, #0x1c]
cmp r0, #0
bne _08080268
strb r0, [r5, #2]
strh r0, [r5]
bl sub_0805E5B4
ldr r1, _08080260 @ =gUnk_03000F50
ldrh r2, [r1]
ldr r0, _08080264 @ =0x0000BFFF
ands r0, r2
strh r0, [r1]
adds r2, r1, #0
adds r2, #0x60
ldrb r0, [r2]
strh r0, [r2]
adds r1, #0x62
ldrh r2, [r1]
movs r0, #0xff
lsls r0, r0, #8
ands r0, r2
strh r0, [r1]
b _08080272
.align 2, 0
_08080260: .4byte gUnk_03000F50
_08080264: .4byte 0x0000BFFF
_08080268:
ldr r0, _08080274 @ =gUnk_02000070
movs r1, #4
strb r1, [r0]
movs r0, #0
strh r0, [r5, #0x1c]
_08080272:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08080274: .4byte gUnk_02000070
thumb_func_start sub_08080278
sub_08080278: @ 0x08080278
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
ldr r0, _08080344 @ =gUnk_02022830
mov ip, r0
ldr r1, _08080348 @ =gUnk_03000BF0
ldrh r0, [r1, #0x1e]
lsrs r0, r0, #4
str r0, [sp]
ldrh r0, [r1, #0x20]
lsrs r0, r0, #4
lsls r0, r0, #6
str r0, [sp, #4]
movs r5, #0
mov sl, r5
cmp r5, r0
bhs _08080336
mov sb, r5
_080802A2:
movs r1, #0
mov r8, r1
ldr r0, [sp]
cmp r8, r0
bhs _08080328
ldr r4, _0808034C @ =gUnk_0200B654
add r4, sb
ldr r7, _08080350 @ =gUnk_0200E654
add r7, sb
ldr r3, _08080354 @ =gUnk_02025EB4
add r3, sb
ldr r6, _08080358 @ =gUnk_02028EB4
add r6, sb
_080802BC:
mov r2, sl
add r2, r8
ldrh r0, [r6]
ldrh r1, [r3]
cmp r0, r1
beq _080802EA
ldr r0, _0808035C @ =0x00003FFF
cmp r1, r0
bhi _080802EA
adds r0, #1
adds r1, r0, #0
adds r0, r2, #0
orrs r0, r1
mov r1, ip
strh r0, [r1]
ldrh r0, [r3]
strh r0, [r1, #2]
movs r0, #4
add ip, r0
adds r5, #1
ldr r0, _08080360 @ =0x000005FF
cmp r5, r0
bhi _08080336
_080802EA:
ldrh r0, [r7]
ldrh r1, [r4]
cmp r0, r1
beq _08080316
ldr r0, _0808035C @ =0x00003FFF
cmp r1, r0
bhi _08080316
movs r1, #0x80
lsls r1, r1, #8
adds r0, r1, #0
orrs r2, r0
mov r0, ip
strh r2, [r0]
ldrh r0, [r4]
mov r1, ip
strh r0, [r1, #2]
movs r0, #4
add ip, r0
adds r5, #1
ldr r0, _08080364 @ =0x000007FF
cmp r5, r0
bhi _08080336
_08080316:
adds r4, #2
adds r7, #2
adds r3, #2
adds r6, #2
movs r1, #1
add r8, r1
ldr r0, [sp]
cmp r8, r0
blo _080802BC
_08080328:
movs r1, #0x80
add sb, r1
movs r0, #0x40
add sl, r0
ldr r1, [sp, #4]
cmp sl, r1
blo _080802A2
_08080336:
adds r0, r5, #0
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08080344: .4byte gUnk_02022830
_08080348: .4byte gUnk_03000BF0
_0808034C: .4byte gUnk_0200B654
_08080350: .4byte gUnk_0200E654
_08080354: .4byte gUnk_02025EB4
_08080358: .4byte gUnk_02028EB4
_0808035C: .4byte 0x00003FFF
_08080360: .4byte 0x000005FF
_08080364: .4byte 0x000007FF
thumb_func_start sub_08080368
sub_08080368: @ 0x08080368
push {r4, r5, r6, r7, lr}
ldr r0, _08080384 @ =gUnk_03004030
ldr r1, _08080388 @ =gUnk_03000BF0
ldrb r0, [r0, #0xa]
ldrb r1, [r1, #4]
cmp r0, r1
beq _08080390
cmp r0, #0xff
beq _08080390
ldr r1, _0808038C @ =gUnk_02034480
movs r0, #0
strh r0, [r1]
b _080803BE
.align 2, 0
_08080384: .4byte gUnk_03004030
_08080388: .4byte gUnk_03000BF0
_0808038C: .4byte gUnk_02034480
_08080390:
ldr r5, _080803C0 @ =gUnk_020246B0
ldr r0, _080803C4 @ =gUnk_02034480
ldrh r0, [r0]
lsls r6, r0, #1
movs r4, #0
cmp r4, r6
bhs _080803B8
ldr r0, _080803C8 @ =0x00000FFF
adds r7, r0, #0
_080803A2:
ldrh r0, [r5, #2]
ldrh r2, [r5]
adds r1, r7, #0
ands r1, r2
lsrs r2, r2, #0xe
bl sub_0807B9B8
adds r5, #4
adds r4, #2
cmp r4, r6
blo _080803A2
_080803B8:
ldr r1, _080803CC @ =gUnk_02000070
movs r0, #0
strb r0, [r1]
_080803BE:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080803C0: .4byte gUnk_020246B0
_080803C4: .4byte gUnk_02034480
_080803C8: .4byte 0x00000FFF
_080803CC: .4byte gUnk_02000070
thumb_func_start sub_080803D0
sub_080803D0: @ 0x080803D0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x38
ldr r1, _080804F0 @ =gUnk_03000BF0
movs r2, #0xa
ldrsh r0, [r1, r2]
ldrh r2, [r1, #6]
subs r0, r0, r2
str r0, [sp, #0x18]
ldr r3, [r1, #0x30]
movs r4, #0x2e
ldrsh r0, [r3, r4]
subs r0, r0, r2
str r0, [sp, #0x10]
movs r2, #0xc
ldrsh r0, [r1, r2]
ldrh r1, [r1, #8]
subs r0, r0, r1
str r0, [sp, #0x1c]
movs r4, #0x32
ldrsh r0, [r3, r4]
subs r0, r0, r1
str r0, [sp, #0x14]
movs r0, #0x3c
str r0, [sp, #8]
_08080408:
movs r7, #0
ldr r1, [sp, #8]
adds r1, #6
str r1, [sp, #8]
adds r2, r1, #0
muls r2, r1, r2
mov sl, r2
lsls r4, r1, #1
adds r0, r4, #0
movs r1, #3
bl __divsi3
str r0, [sp, #0xc]
adds r1, r0, #0
muls r1, r0, r1
mov sb, r1
movs r2, #0
str r2, [sp, #4]
rsbs r4, r4, #0
adds r4, #1
mov r0, sb
muls r0, r4, r0
mov r4, sl
lsls r5, r4, #1
adds r4, r0, r5
ldr r0, [sp, #8]
mov r6, sb
muls r6, r0, r6
adds r0, r6, #0
mov r1, sl
bl __divsi3
adds r2, r0, #0
cmp r7, r2
bgt _08080506
ldr r1, [sp, #0x18]
adds r1, #0xf8
str r1, [sp, #0x20]
mov r1, sl
adds r0, r5, r1
lsls r3, r0, #1
str r6, [sp, #0x2c]
ldr r0, [sp, #8]
lsls r1, r0, #2
rsbs r1, r1, #0
adds r1, #4
mov r8, r1
rsbs r0, r0, #0
adds r0, #8
ldr r1, [sp, #0x10]
adds r6, r0, r1
ldr r0, [sp, #8]
adds r5, r0, r1
mov r0, r8
mov r1, sb
muls r1, r0, r1
mov r8, r1
_0808047A:
ldr r1, [sp, #0x1c]
adds r1, #0xa8
mov ip, r1
ldr r0, [sp, #0x14]
ldr r1, [sp, #4]
adds r0, r0, r1
str r0, [sp, #0x34]
cmp ip, r0
ble _080804A0
ldr r0, [sp, #0x20]
cmp r0, r5
ble _08080496
movs r0, #1
orrs r7, r0
_08080496:
ldr r1, [sp, #0x18]
cmp r1, r6
bge _080804A0
movs r0, #2
orrs r7, r0
_080804A0:
ldr r0, [sp, #0x14]
ldr r1, [sp, #4]
subs r0, r0, r1
mov ip, r0
adds r0, #8
ldr r1, [sp, #0x1c]
cmp r1, r0
bge _080804C4
ldr r0, [sp, #0x20]
cmp r0, r5
ble _080804BA
movs r0, #4
orrs r7, r0
_080804BA:
ldr r1, [sp, #0x18]
cmp r1, r6
bge _080804C4
movs r0, #8
orrs r7, r0
_080804C4:
cmp r4, #0
ble _080804F4
mov r2, r8
adds r0, r2, r3
adds r4, r4, r0
ldr r0, [sp, #0x2c]
mov r1, sb
subs r0, r0, r1
str r0, [sp, #0x2c]
lsls r0, r1, #2
add r8, r0
adds r6, #1
subs r5, #1
ldr r0, [sp, #0x2c]
mov r1, sl
str r3, [sp, #0x30]
bl __divsi3
adds r2, r0, #0
ldr r3, [sp, #0x30]
b _080804F6
.align 2, 0
_080804F0: .4byte gUnk_03000BF0
_080804F4:
adds r4, r4, r3
_080804F6:
mov r1, sl
lsls r0, r1, #2
adds r3, r3, r0
ldr r0, [sp, #4]
adds r0, #1
str r0, [sp, #4]
cmp r0, r2
ble _0808047A
_08080506:
movs r1, #0
str r1, [sp]
ldr r2, [sp, #0xc]
str r2, [sp, #4]
mov r4, sb
lsls r6, r4, #1
lsls r0, r2, #1
rsbs r0, r0, #0
adds r0, #1
mov r1, sl
muls r1, r0, r1
adds r0, r1, #0
adds r4, r6, r0
mov r5, sl
muls r5, r2, r5
adds r0, r5, #0
mov r1, sb
bl __divsi3
adds r2, r0, #0
ldr r0, [sp]
cmp r0, r2
bgt _080805E4
ldr r1, [sp, #0x18]
adds r1, #0xf8
str r1, [sp, #0x24]
mov r1, sb
adds r0, r6, r1
lsls r0, r0, #1
mov r8, r0
ldr r3, [sp, #0x10]
adds r3, #8
ldr r6, [sp, #0x10]
str r5, [sp, #0x28]
ldr r1, [sp, #4]
lsls r0, r1, #2
rsbs r0, r0, #0
adds r0, #4
mov r5, sl
muls r5, r0, r5
_08080556:
ldr r0, [sp, #0x1c]
adds r0, #0xa8
mov ip, r0
ldr r1, [sp, #0x14]
ldr r0, [sp, #4]
adds r1, r1, r0
str r1, [sp, #0x34]
cmp ip, r1
ble _0808057C
ldr r1, [sp, #0x24]
cmp r1, r6
ble _08080572
movs r0, #0x10
orrs r7, r0
_08080572:
ldr r0, [sp, #0x18]
cmp r0, r3
bge _0808057C
movs r0, #0x20
orrs r7, r0
_0808057C:
ldr r1, [sp, #0x14]
ldr r0, [sp, #4]
subs r1, r1, r0
mov ip, r1
mov r0, ip
adds r0, #8
ldr r1, [sp, #0x1c]
cmp r1, r0
bge _080805A2
ldr r0, [sp, #0x24]
cmp r0, r6
ble _08080598
movs r0, #0x40
orrs r7, r0
_08080598:
ldr r1, [sp, #0x18]
cmp r1, r3
bge _080805A2
movs r0, #0x80
orrs r7, r0
_080805A2:
cmp r4, #0
ble _080805CE
mov r2, r8
adds r0, r2, r5
adds r4, r4, r0
ldr r0, [sp, #0x28]
mov r1, sl
subs r0, r0, r1
str r0, [sp, #0x28]
lsls r0, r1, #2
adds r5, r5, r0
ldr r2, [sp, #4]
subs r2, #1
str r2, [sp, #4]
ldr r0, [sp, #0x28]
mov r1, sb
str r3, [sp, #0x30]
bl __divsi3
adds r2, r0, #0
ldr r3, [sp, #0x30]
b _080805D0
_080805CE:
add r4, r8
_080805D0:
mov r1, sb
lsls r0, r1, #2
add r8, r0
subs r3, #1
adds r6, #1
ldr r0, [sp]
adds r0, #1
str r0, [sp]
cmp r0, r2
ble _08080556
_080805E4:
cmp r7, #0
beq _080805EA
b _08080408
_080805EA:
ldr r0, [sp, #8]
add sp, #0x38
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080805F8
sub_080805F8: @ 0x080805F8
push {lr}
ldr r0, _08080610 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
subs r0, #0xc
cmp r0, #0xd
bhi _0808065C
lsls r0, r0, #2
ldr r1, _08080614 @ =_08080618
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08080610: .4byte gUnk_03000BF0
_08080614: .4byte _08080618
_08080618: @ jump table
.4byte _08080650 @ case 0
.4byte _0808065C @ case 1
.4byte _0808065C @ case 2
.4byte _08080650 @ case 3
.4byte _0808065C @ case 4
.4byte _0808065C @ case 5
.4byte _0808065C @ case 6
.4byte _08080650 @ case 7
.4byte _08080650 @ case 8
.4byte _0808065C @ case 9
.4byte _08080650 @ case 10
.4byte _08080650 @ case 11
.4byte _0808065C @ case 12
.4byte _08080650 @ case 13
_08080650:
ldr r1, _08080658 @ =gUnk_03004030
movs r0, #1
b _08080660
.align 2, 0
_08080658: .4byte gUnk_03004030
_0808065C:
ldr r1, _08080664 @ =gUnk_03004030
movs r0, #0
_08080660:
strb r0, [r1, #8]
pop {pc}
.align 2, 0
_08080664: .4byte gUnk_03004030
thumb_func_start sub_08080668
sub_08080668: @ 0x08080668
push {r4, r5, lr}
ldr r5, _080806A4 @ =gUnk_03000BF0
adds r0, r5, #0
movs r1, #0x38
bl sub_0801D630
ldr r4, _080806A8 @ =gUnk_03004030
adds r0, r4, #0
movs r1, #0xc
bl sub_0801D630
ldr r0, _080806AC @ =0x0000FFFF
strh r0, [r5, #0x22]
movs r0, #0xff
strb r0, [r4, #0xa]
ldr r1, _080806B0 @ =gUnk_02034480
movs r0, #0
strh r0, [r1]
ldr r0, _080806B4 @ =gUnk_02019EE0
movs r4, #0x80
lsls r4, r4, #8
adds r1, r4, #0
bl sub_0801D630
ldr r0, _080806B8 @ =gUnk_02002F00
adds r1, r4, #0
bl sub_0801D630
pop {r4, r5, pc}
.align 2, 0
_080806A4: .4byte gUnk_03000BF0
_080806A8: .4byte gUnk_03004030
_080806AC: .4byte 0x0000FFFF
_080806B0: .4byte gUnk_02034480
_080806B4: .4byte gUnk_02019EE0
_080806B8: .4byte gUnk_02002F00
thumb_func_start sub_080806BC
sub_080806BC: @ 0x080806BC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sb, r0
mov r8, r1
adds r7, r2, #0
adds r6, r3, #0
ldr r0, _08080710 @ =gUnk_02033A90
ldr r1, _08080714 @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r5, [r0, #0x18]
ldrh r0, [r5]
ldr r1, _08080718 @ =0x0000FFFF
cmp r0, r1
beq _08080728
mov sl, r1
_080806E2:
ldrh r2, [r5]
movs r0, #1
lsls r0, r2
ands r0, r6
cmp r0, #0
beq _08080720
ldr r1, _0808071C @ =gUnk_0811E7AC
lsls r0, r2, #2
adds r0, r0, r1
ldr r4, [r0]
adds r0, r5, #0
mov r1, sb
mov r2, r8
adds r3, r7, #0
bl _call_via_r4
cmp r0, #0
beq _08080720
adds r0, r5, #0
bl sub_08080840
movs r0, #1
b _0808072A
.align 2, 0
_08080710: .4byte gUnk_02033A90
_08080714: .4byte 0x0000085C
_08080718: .4byte 0x0000FFFF
_0808071C: .4byte gUnk_0811E7AC
_08080720:
adds r5, #0x14
ldrh r0, [r5]
cmp r0, sl
bne _080806E2
_08080728:
movs r0, #0
_0808072A:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08080734
sub_08080734: @ 0x08080734
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r5, r1, #0
ldr r0, _08080778 @ =gUnk_02033A90
ldr r1, _0808077C @ =0x0000085C
adds r0, r0, r1
ldr r0, [r0]
ldr r4, [r0, #0x18]
movs r0, #0xa
mov r8, r0
ldrh r0, [r4]
ldr r1, _08080780 @ =0x0000FFFF
cmp r0, r1
beq _0808078C
adds r7, r1, #0
_08080756:
movs r0, #1
ldrh r1, [r4]
lsls r0, r1
mov r1, r8
ands r0, r1
cmp r0, #0
beq _08080784
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
movs r3, #0
bl sub_08080808
cmp r0, #0
beq _08080784
adds r0, r4, #0
b _0808078E
.align 2, 0
_08080778: .4byte gUnk_02033A90
_0808077C: .4byte 0x0000085C
_08080780: .4byte 0x0000FFFF
_08080784:
adds r4, #0x14
ldrh r0, [r4]
cmp r0, r7
bne _08080756
_0808078C:
movs r0, #0
_0808078E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08080794
sub_08080794: @ 0x08080794
push {r4, lr}
adds r4, r0, #0
cmp r3, #1
beq _080807C0
cmp r3, #1
blo _080807AC
cmp r3, #2
beq _080807D4
cmp r3, #3
beq _080807E8
_080807A8:
movs r0, #0
b _08080800
_080807AC:
ldr r0, _080807BC @ =gUnk_03000BF0
ldrh r0, [r0, #0x1e]
lsrs r0, r0, #1
movs r3, #1
cmp r0, r1
bhs _080807F6
movs r3, #2
b _080807F6
.align 2, 0
_080807BC: .4byte gUnk_03000BF0
_080807C0:
ldr r0, _080807D0 @ =gUnk_03000BF0
ldrh r0, [r0, #0x20]
lsrs r0, r0, #1
movs r3, #4
cmp r0, r2
bhs _080807F6
movs r3, #8
b _080807F6
.align 2, 0
_080807D0: .4byte gUnk_03000BF0
_080807D4:
ldr r0, _080807E4 @ =gUnk_03000BF0
ldrh r0, [r0, #0x1e]
lsrs r0, r0, #1
movs r3, #0x10
cmp r0, r1
bhs _080807F6
movs r3, #0x20
b _080807F6
.align 2, 0
_080807E4: .4byte gUnk_03000BF0
_080807E8:
ldr r0, _08080804 @ =gUnk_03000BF0
ldrh r0, [r0, #0x20]
lsrs r0, r0, #1
movs r3, #0x40
cmp r0, r2
bhs _080807F6
movs r3, #0x80
_080807F6:
ldrb r0, [r4, #0xa]
ands r0, r3
cmp r0, #0
beq _080807A8
movs r0, #1
_08080800:
pop {r4, pc}
.align 2, 0
_08080804: .4byte gUnk_03000BF0
thumb_func_start sub_08080808
sub_08080808: @ 0x08080808
push {r4, r5, lr}
adds r3, r0, #0
adds r5, r2, #0
ldrb r0, [r3, #0xa]
lsls r0, r0, #1
ldr r2, _08080838 @ =gUnk_0811E7BC
adds r4, r0, r2
ldrb r0, [r4]
ldrh r2, [r3, #2]
subs r1, r1, r2
adds r1, r1, r0
lsls r0, r0, #1
cmp r1, r0
bhi _0808083C
ldrb r1, [r4, #1]
ldrh r0, [r3, #4]
subs r0, r5, r0
adds r0, r0, r1
lsls r1, r1, #1
cmp r0, r1
bhi _0808083C
movs r0, #1
b _0808083E
.align 2, 0
_08080838: .4byte gUnk_0811E7BC
_0808083C:
movs r0, #0
_0808083E:
pop {r4, r5, pc}
thumb_func_start sub_08080840
sub_08080840: @ 0x08080840
push {r4, lr}
adds r4, r0, #0
ldr r0, _0808085C @ =gUnk_030010A0
movs r1, #1
strb r1, [r0, #8]
adds r2, r0, #0
adds r2, #0xc
ldrh r1, [r4, #6]
ldr r0, _08080860 @ =0x000003FF
cmp r1, r0
bhi _08080864
strh r1, [r2, #4]
b _08080872
.align 2, 0
_0808085C: .4byte gUnk_030010A0
_08080860: .4byte 0x000003FF
_08080864:
ldr r0, _08080880 @ =gUnk_03000BF0
ldr r0, [r0, #0x30]
ldrh r1, [r0, #0x2e]
ldr r3, _08080884 @ =0xFFFF8000
adds r0, r3, #0
orrs r0, r1
strh r0, [r2, #4]
_08080872:
ldrh r1, [r4, #8]
ldr r0, _08080888 @ =0x000003FF
cmp r1, r0
bhi _0808088C
strh r1, [r2, #6]
b _0808089A
.align 2, 0
_08080880: .4byte gUnk_03000BF0
_08080884: .4byte 0xFFFF8000
_08080888: .4byte 0x000003FF
_0808088C:
ldr r0, _080808CC @ =gUnk_03000BF0
ldr r0, [r0, #0x30]
ldrh r1, [r0, #0x32]
ldr r3, _080808D0 @ =0xFFFF8000
adds r0, r3, #0
orrs r0, r1
strh r0, [r2, #6]
_0808089A:
ldrb r0, [r4, #0xb]
strb r0, [r2]
ldrb r0, [r4, #0xc]
strb r0, [r2, #1]
ldrb r0, [r4, #0xd]
strb r0, [r2, #8]
ldrb r0, [r4, #0xe]
strb r0, [r2, #3]
ldrb r0, [r4, #0xf]
strb r0, [r2, #2]
ldrh r0, [r4, #0x10]
cmp r0, #0
beq _080808B8
bl sub_080A3268
_080808B8:
ldr r0, _080808D4 @ =gUnk_0811E7C4
ldrh r1, [r4]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r0, [r4, #0xa]
ldr r1, [r1]
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_080808CC: .4byte gUnk_03000BF0
_080808D0: .4byte 0xFFFF8000
_080808D4: .4byte gUnk_0811E7C4
thumb_func_start sub_080808D8
sub_080808D8: @ 0x080808D8
ldr r1, _080808E0 @ =gUnk_030010A0
movs r0, #0
strb r0, [r1, #9]
bx lr
.align 2, 0
_080808E0: .4byte gUnk_030010A0
thumb_func_start sub_080808E4
sub_080808E4: @ 0x080808E4
push {r4, lr}
ldr r4, _080808F8 @ =gUnk_030010A0
ldrb r0, [r4, #0xc]
bl sub_08052638
cmp r0, #0
beq _080808FC
movs r0, #0
b _080808FE
.align 2, 0
_080808F8: .4byte gUnk_030010A0
_080808FC:
movs r0, #5
_080808FE:
strb r0, [r4, #9]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08080904
sub_08080904: @ 0x08080904
ldr r1, _0808090C @ =gUnk_030010A0
movs r0, #1
strb r0, [r1, #9]
bx lr
.align 2, 0
_0808090C: .4byte gUnk_030010A0
thumb_func_start sub_08080910
sub_08080910: @ 0x08080910
ldr r1, _08080918 @ =gUnk_030010A0
movs r0, #1
strb r0, [r1, #9]
bx lr
.align 2, 0
_08080918: .4byte gUnk_030010A0
thumb_func_start sub_0808091C
sub_0808091C: @ 0x0808091C
push {r4, lr}
adds r4, r1, #0
bl sub_08080840
ldr r0, _0808092C @ =gUnk_030010A0
strb r4, [r0, #9]
pop {r4, pc}
.align 2, 0
_0808092C: .4byte gUnk_030010A0
thumb_func_start sub_08080930
sub_08080930: @ 0x08080930
push {lr}
ldr r1, _08080948 @ =gUnk_03000BF0
movs r2, #0
movs r0, #5
strb r0, [r1, #2]
strb r2, [r1, #3]
movs r0, #2
strh r0, [r1]
strb r2, [r1, #0x10]
bl sub_0805E5A8
pop {pc}
.align 2, 0
_08080948: .4byte gUnk_03000BF0
thumb_func_start sub_0808094C
sub_0808094C: @ 0x0808094C
push {lr}
cmp r0, #2
beq _0808095C
ldr r0, _08080958 @ =gUnk_02025EB0
b _0808095E
.align 2, 0
_08080958: .4byte gUnk_02025EB0
_0808095C:
ldr r0, _08080960 @ =gUnk_0200B650
_0808095E:
pop {pc}
.align 2, 0
_08080960: .4byte gUnk_0200B650
thumb_func_start sub_08080964
sub_08080964: @ 0x08080964
ldr r2, _08080970 @ =gUnk_03000BF0
strh r0, [r2, #0x16]
movs r0, #7
ands r1, r0
strb r1, [r2, #0x14]
bx lr
.align 2, 0
_08080970: .4byte gUnk_03000BF0
thumb_func_start sub_08080974
sub_08080974: @ 0x08080974
push {r4, lr}
adds r3, r0, #0
adds r4, r1, #0
ldr r1, _0808098C @ =gUnk_03000BF0
ldrh r2, [r1, #6]
adds r0, r2, #0
adds r0, #0x78
cmp r3, r0
bhi _08080990
strh r2, [r1, #0xa]
b _080809A2
.align 2, 0
_0808098C: .4byte gUnk_03000BF0
_08080990:
ldrh r0, [r1, #0x1e]
adds r2, r2, r0
adds r0, r2, #0
subs r0, #0x78
cmp r3, r0
bhs _0808099E
adds r0, r3, #0
_0808099E:
subs r0, #0x78
strh r0, [r1, #0xa]
_080809A2:
ldrh r2, [r1, #8]
adds r0, r2, #0
adds r0, #0x50
cmp r4, r0
bhi _080809B0
strh r2, [r1, #0xc]
b _080809C2
_080809B0:
ldrh r0, [r1, #0x20]
adds r2, r2, r0
adds r0, r2, #0
subs r0, #0x50
cmp r4, r0
bhs _080809BE
adds r0, r4, #0
_080809BE:
subs r0, #0x50
strh r0, [r1, #0xc]
_080809C2:
bl sub_080809D4
ldr r1, _080809D0 @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
pop {r4, pc}
.align 2, 0
_080809D0: .4byte gUnk_02000070
thumb_func_start sub_080809D4
sub_080809D4: @ 0x080809D4
push {r4, lr}
ldr r2, _080809F4 @ =gUnk_03000BF0
ldrb r0, [r2, #0xf]
movs r1, #0xfb
ands r1, r0
strb r1, [r2, #0xf]
ldr r4, [r2, #0x30]
movs r0, #0x2e
ldrsh r3, [r4, r0]
ldrh r1, [r2, #6]
adds r0, r1, #0
adds r0, #0x78
cmp r3, r0
bgt _080809F8
strh r1, [r2, #0xa]
b _08080A0A
.align 2, 0
_080809F4: .4byte gUnk_03000BF0
_080809F8:
ldrh r0, [r2, #0x1e]
adds r1, r1, r0
adds r0, r1, #0
subs r0, #0x78
cmp r3, r0
bge _08080A06
ldrh r0, [r4, #0x2e]
_08080A06:
subs r0, #0x78
strh r0, [r2, #0xa]
_08080A0A:
ldr r4, [r2, #0x30]
movs r0, #0x32
ldrsh r3, [r4, r0]
ldrh r1, [r2, #8]
adds r0, r1, #0
adds r0, #0x50
cmp r3, r0
bgt _08080A1E
strh r1, [r2, #0xc]
b _08080A30
_08080A1E:
ldrh r0, [r2, #0x20]
adds r1, r1, r0
adds r0, r1, #0
subs r0, #0x50
cmp r3, r0
bge _08080A2C
ldrh r0, [r4, #0x32]
_08080A2C:
subs r0, #0x50
strh r0, [r2, #0xc]
_08080A30:
bl sub_08080BC4
ldr r1, _08080A3C @ =gUnk_02000070
movs r0, #1
strb r0, [r1]
pop {r4, pc}
.align 2, 0
_08080A3C: .4byte gUnk_02000070
thumb_func_start sub_08080A40
sub_08080A40: @ 0x08080A40
push {r4, r5, r6, r7, lr}
ldr r7, _08080A70 @ =gUnk_03000BF0
ldr r1, [r7, #0x30]
ldr r0, _08080A74 @ =gLinkEntity
adds r2, r7, #0
cmp r1, r0
beq _08080A50
b _08080B5C
_08080A50:
ldr r0, _08080A78 @ =gUnk_03003F80
ldrb r0, [r0, #2]
cmp r0, #0
beq _08080A5A
b _08080B5C
_08080A5A:
ldrb r0, [r1, #0xc]
subs r0, #1
cmp r0, #0x1c
bls _08080A64
b _08080B5C
_08080A64:
lsls r0, r0, #2
ldr r1, _08080A7C @ =_08080A80
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08080A70: .4byte gUnk_03000BF0
_08080A74: .4byte gLinkEntity
_08080A78: .4byte gUnk_03003F80
_08080A7C: .4byte _08080A80
_08080A80: @ jump table
.4byte _08080AFA @ case 0
.4byte _08080B5C @ case 1
.4byte _08080B5C @ case 2
.4byte _08080B5C @ case 3
.4byte _08080B5C @ case 4
.4byte _08080B5C @ case 5
.4byte _08080B5C @ case 6
.4byte _08080B5C @ case 7
.4byte _08080AFA @ case 8
.4byte _08080B5C @ case 9
.4byte _08080B5C @ case 10
.4byte _08080B5C @ case 11
.4byte _08080B5C @ case 12
.4byte _08080B5C @ case 13
.4byte _08080AF4 @ case 14
.4byte _08080B5C @ case 15
.4byte _08080B5C @ case 16
.4byte _08080B5C @ case 17
.4byte _08080B5C @ case 18
.4byte _08080B5C @ case 19
.4byte _08080B5C @ case 20
.4byte _08080B5C @ case 21
.4byte _08080B5C @ case 22
.4byte _08080AFA @ case 23
.4byte _08080B5C @ case 24
.4byte _08080B5C @ case 25
.4byte _08080B5C @ case 26
.4byte _08080B5C @ case 27
.4byte _08080AFA @ case 28
_08080AF4:
ldrb r0, [r2, #4]
cmp r0, #0x48
beq _08080B5C
_08080AFA:
ldr r3, [r7, #0x30]
movs r0, #0x32
ldrsh r1, [r3, r0]
ldrh r0, [r7, #8]
subs r6, r1, r0
movs r0, #0x2e
ldrsh r1, [r3, r0]
ldrh r0, [r7, #6]
subs r5, r1, r0
asrs r0, r5, #4
movs r2, #0x3f
ands r0, r2
asrs r1, r6, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
adds r3, #0x38
ldrb r1, [r3]
bl sub_080002C8
adds r4, r0, #0
ldr r0, [r7, #0x30]
adds r0, #0x38
ldrb r2, [r0]
adds r0, r5, #0
adds r1, r6, #0
bl sub_080002A8
ldr r1, _08080B48 @ =gUnk_030010A0
strh r0, [r1, #0xa]
cmp r4, #0x3f
beq _08080B50
cmp r4, #0x3f
bhi _08080B4C
cmp r4, #0x29
bhi _08080B5C
cmp r4, #0x28
blo _08080B5C
b _08080B50
.align 2, 0
_08080B48: .4byte gUnk_030010A0
_08080B4C:
cmp r4, #0xf1
bne _08080B5C
_08080B50:
adds r0, r5, #0
adds r1, r6, #0
movs r2, #0xff
movs r3, #0xa
bl sub_080806BC
_08080B5C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08080B60
sub_08080B60: @ 0x08080B60
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r1, _08080B90 @ =0x00005004
adds r4, r0, r1
ldr r2, _08080B94 @ =gUnk_080B37A0
mov r8, r2
movs r3, #0
ldr r1, _08080B98 @ =0x00003FFF
mov ip, r1
ldr r7, _08080B9C @ =gUnk_080B7910
ldr r2, _08080BA0 @ =0x0000B004
adds r1, r0, r2
adds r2, r0, #4
ldr r6, _08080BA4 @ =0xFFFFC000
ldr r5, _08080BA8 @ =0x00000FFF
_08080B80:
ldrh r0, [r2]
cmp r0, ip
bhi _08080BAC
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
add r0, r8
b _08080BB0
.align 2, 0
_08080B90: .4byte 0x00005004
_08080B94: .4byte gUnk_080B37A0
_08080B98: .4byte 0x00003FFF
_08080B9C: .4byte gUnk_080B7910
_08080BA0: .4byte 0x0000B004
_08080BA4: .4byte 0xFFFFC000
_08080BA8: .4byte 0x00000FFF
_08080BAC:
adds r0, r0, r6
adds r0, r0, r7
_08080BB0:
ldrb r0, [r0]
strb r0, [r1]
adds r1, #1
adds r2, #2
adds r3, #1
cmp r3, r5
bls _08080B80
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08080BC4
sub_08080BC4: @ 0x08080BC4
push {r4, r5, r6, lr}
ldr r3, _08080C40 @ =gUnk_03000BF0
movs r0, #0xa
ldrsh r1, [r3, r0]
ldrh r0, [r3, #6]
subs r5, r1, r0
movs r2, #0xf
ands r5, r2
movs r1, #0xc
ldrsh r0, [r3, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
ands r0, r2
adds r6, r0, #0
adds r6, #8
ldrh r2, [r3, #0x16]
adds r4, r2, #0
cmp r4, #0
beq _08080C50
subs r2, #1
strh r2, [r3, #0x16]
ldrb r0, [r3, #0x14]
lsls r0, r0, #4
movs r1, #0xe
ands r2, r1
adds r0, r0, r2
ldr r1, _08080C44 @ =gUnk_080169A4
adds r2, r0, r1
ldr r4, _08080C48 @ =gUnk_02025EB0
ldr r1, [r4]
cmp r1, #0
beq _08080C16
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r0, r5
strh r0, [r1, #2]
ldr r1, [r4]
movs r0, #1
ldrsb r0, [r2, r0]
adds r0, r0, r6
strh r0, [r1, #4]
_08080C16:
ldr r4, _08080C4C @ =gUnk_0200B650
ldr r1, [r4]
cmp r1, #0
beq _08080C30
movs r0, #0
ldrsb r0, [r2, r0]
adds r0, r0, r5
strh r0, [r1, #2]
ldr r1, [r4]
movs r0, #1
ldrsb r0, [r2, r0]
adds r0, r0, r6
strh r0, [r1, #4]
_08080C30:
ldrb r1, [r2]
adds r0, r3, #0
adds r0, #0x24
strb r1, [r0]
ldrb r1, [r2, #1]
adds r0, #1
strb r1, [r0]
b _08080C76
.align 2, 0
_08080C40: .4byte gUnk_03000BF0
_08080C44: .4byte gUnk_080169A4
_08080C48: .4byte gUnk_02025EB0
_08080C4C: .4byte gUnk_0200B650
_08080C50:
ldr r0, _08080C78 @ =gUnk_02025EB0
ldr r1, [r0]
cmp r1, #0
beq _08080C5E
strh r5, [r1, #2]
ldr r0, [r0]
strh r6, [r0, #4]
_08080C5E:
ldr r0, _08080C7C @ =gUnk_0200B650
ldr r1, [r0]
cmp r1, #0
beq _08080C6C
strh r5, [r1, #2]
ldr r0, [r0]
strh r6, [r0, #4]
_08080C6C:
adds r0, r3, #0
adds r0, #0x24
strb r4, [r0]
adds r0, #1
strb r4, [r0]
_08080C76:
pop {r4, r5, r6, pc}
.align 2, 0
_08080C78: .4byte gUnk_02025EB0
_08080C7C: .4byte gUnk_0200B650
thumb_func_start sub_08080C80
sub_08080C80: @ 0x08080C80
push {r4, lr}
bl sub_080197D4
ldr r0, _08080CA8 @ =gUnk_02025EB4
ldr r4, _08080CAC @ =gUnk_03000BF0
ldrh r1, [r4, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r4, #0x20]
lsrs r2, r2, #4
bl sub_0807C8B0
ldr r0, _08080CB0 @ =gUnk_0200B654
ldrh r1, [r4, #0x1e]
lsrs r1, r1, #4
ldrh r2, [r4, #0x20]
lsrs r2, r2, #4
bl sub_0807C8B0
pop {r4, pc}
.align 2, 0
_08080CA8: .4byte gUnk_02025EB4
_08080CAC: .4byte gUnk_03000BF0
_08080CB0: .4byte gUnk_0200B654
thumb_func_start sub_08080CB4
sub_08080CB4: @ 0x08080CB4
push {r4, r5, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x58
ldrb r0, [r4, #0xa]
ldrb r1, [r1]
cmp r0, r1
beq _08080CF0
adds r1, r0, #0
adds r0, r4, #0
bl sub_080042AC
ldrb r0, [r4, #0xa]
cmp r0, #0x5c
beq _08080CD4
b _08080E00
_08080CD4:
ldrb r0, [r4, #0xb]
lsls r0, r0, #3
ldr r1, _08080CEC @ =gUnk_080C9CBC
adds r0, r0, r1
ldrb r0, [r0]
movs r1, #0xf
ands r1, r0
lsls r0, r0, #4
orrs r0, r1
strb r0, [r4, #0x1a]
b _08080E00
.align 2, 0
_08080CEC: .4byte gUnk_080C9CBC
_08080CF0:
adds r0, r4, #0
bl sub_080042B8
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x1e
cmp r0, #0
bne _08080D00
b _08080E00
_08080D00:
ldrb r0, [r4, #0xa]
subs r0, #0x40
cmp r0, #0x22
bhi _08080E00
lsls r0, r0, #2
ldr r1, _08080D14 @ =_08080D18
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08080D14: .4byte _08080D18
_08080D18: @ jump table
.4byte _08080DEE @ case 0
.4byte _08080DEE @ case 1
.4byte _08080DEE @ case 2
.4byte _08080DEE @ case 3
.4byte _08080E00 @ case 4
.4byte _08080E00 @ case 5
.4byte _08080E00 @ case 6
.4byte _08080E00 @ case 7
.4byte _08080E00 @ case 8
.4byte _08080E00 @ case 9
.4byte _08080E00 @ case 10
.4byte _08080E00 @ case 11
.4byte _08080E00 @ case 12
.4byte _08080E00 @ case 13
.4byte _08080E00 @ case 14
.4byte _08080E00 @ case 15
.4byte _08080E00 @ case 16
.4byte _08080E00 @ case 17
.4byte _08080E00 @ case 18
.4byte _08080E00 @ case 19
.4byte _08080E00 @ case 20
.4byte _08080E00 @ case 21
.4byte _08080E00 @ case 22
.4byte _08080E00 @ case 23
.4byte _08080E00 @ case 24
.4byte _08080E00 @ case 25
.4byte _08080E00 @ case 26
.4byte _08080E00 @ case 27
.4byte _08080DEE @ case 28
.4byte _08080E00 @ case 29
.4byte _08080E00 @ case 30
.4byte _08080E00 @ case 31
.4byte _08080DA4 @ case 32
.4byte _08080E00 @ case 33
.4byte _08080DEE @ case 34
_08080DA4:
adds r5, r4, #0
adds r5, #0x6a
ldrb r0, [r5]
cmp r0, #0
beq _08080DB4
subs r0, #1
strb r0, [r5]
b _08080E00
_08080DB4:
bl sub_08000E50
movs r1, #0x1f
ands r0, r1
adds r0, #0xa
strb r0, [r5]
adds r0, r4, #0
movs r1, #7
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08080E00
adds r0, r4, #0
adds r0, #0x62
ldrb r0, [r0]
adds r2, r1, #0
adds r2, #0x62
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x63
ldrb r0, [r0]
adds r2, #1
strb r0, [r2]
adds r0, r4, #0
bl sub_0806FAB0
b _08080E00
_08080DEE:
ldr r0, _08080E04 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _08080E00
adds r0, r4, #0
bl sub_080A2B80
_08080E00:
pop {r4, r5, pc}
.align 2, 0
_08080E04: .4byte gUnk_030010A0
thumb_func_start sub_08080E08
sub_08080E08: @ 0x08080E08
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08080EDE
movs r0, #0x7f
ands r0, r1
cmp r0, #0x1e
bhi _08080EDE
lsls r0, r0, #2
ldr r1, _08080E2C @ =_08080E30
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08080E2C: .4byte _08080E30
_08080E30: @ jump table
.4byte _08080ED8 @ case 0
.4byte _08080ED8 @ case 1
.4byte _08080EDE @ case 2
.4byte _08080EDE @ case 3
.4byte _08080ED8 @ case 4
.4byte _08080ED8 @ case 5
.4byte _08080ED8 @ case 6
.4byte _08080EDE @ case 7
.4byte _08080ED8 @ case 8
.4byte _08080ED8 @ case 9
.4byte _08080ED8 @ case 10
.4byte _08080ED8 @ case 11
.4byte _08080ED8 @ case 12
.4byte _08080EDE @ case 13
.4byte _08080EDE @ case 14
.4byte _08080EDE @ case 15
.4byte _08080EDE @ case 16
.4byte _08080EDE @ case 17
.4byte _08080EDE @ case 18
.4byte _08080EDE @ case 19
.4byte _08080EAC @ case 20
.4byte _08080EDE @ case 21
.4byte _08080EDE @ case 22
.4byte _08080EDE @ case 23
.4byte _08080EDE @ case 24
.4byte _08080EDE @ case 25
.4byte _08080EDE @ case 26
.4byte _08080EDE @ case 27
.4byte _08080EDE @ case 28
.4byte _08080EDE @ case 29
.4byte _08080ED8 @ case 30
_08080EAC:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
ldr r0, [r4, #0x4c]
str r0, [r4, #0x54]
b _08080EDE
_08080ED8:
adds r0, r4, #0
bl sub_08081598
_08080EDE:
adds r0, r4, #0
bl sub_0806F520
cmp r0, #0
beq _08080EF0
adds r0, r4, #0
bl sub_080813BC
b _08080F00
_08080EF0:
ldr r0, _08080F18 @ =gUnk_0811E7D4
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_08080F00:
ldrb r0, [r4, #0xa]
cmp r0, #0x5c
bne _08080F0E
ldr r1, _08080F1C @ =gUnk_02034350
ldrb r0, [r1, #4]
adds r0, #1
strb r0, [r1, #4]
_08080F0E:
adds r0, r4, #0
bl sub_08080CB4
pop {r4, pc}
.align 2, 0
_08080F18: .4byte gUnk_0811E7D4
_08080F1C: .4byte gUnk_02034350
thumb_func_start sub_08080F20
sub_08080F20: @ 0x08080F20
push {r4, r5, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08080F3A
bl sub_0807CBE4
cmp r0, #0
beq _08080F3A
bl sub_0805E780
_08080F3A:
ldrb r0, [r4, #0xa]
cmp r0, #0x60
bne _08080F42
b _0808107C
_08080F42:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #7
strb r0, [r1]
subs r1, #3
movs r0, #0x47
strb r0, [r1]
adds r1, #4
movs r0, #0x44
strb r0, [r1]
adds r1, #5
movs r0, #0xff
strb r0, [r1]
ldr r0, _08080F9C @ =gUnk_080FD1A8
str r0, [r4, #0x48]
ldrb r0, [r4, #0xa]
subs r0, #0x3f
cmp r0, #0x20
bhi _08081030
lsls r0, r0, #2
ldr r1, _08080FA0 @ =_08080FA4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08080F9C: .4byte gUnk_080FD1A8
_08080FA0: .4byte _08080FA4
_08080FA4: @ jump table
.4byte _08081028 @ case 0
.4byte _08081030 @ case 1
.4byte _08081030 @ case 2
.4byte _08081030 @ case 3
.4byte _08081030 @ case 4
.4byte _08081030 @ case 5
.4byte _08081030 @ case 6
.4byte _08081030 @ case 7
.4byte _08081030 @ case 8
.4byte _08081030 @ case 9
.4byte _08081030 @ case 10
.4byte _08081030 @ case 11
.4byte _08081030 @ case 12
.4byte _08081030 @ case 13
.4byte _08081030 @ case 14
.4byte _08081030 @ case 15
.4byte _08081030 @ case 16
.4byte _08081030 @ case 17
.4byte _08081030 @ case 18
.4byte _08081030 @ case 19
.4byte _08081030 @ case 20
.4byte _08081028 @ case 21
.4byte _08081028 @ case 22
.4byte _08081028 @ case 23
.4byte _08081028 @ case 24
.4byte _08081028 @ case 25
.4byte _08081030 @ case 26
.4byte _08081030 @ case 27
.4byte _08081030 @ case 28
.4byte _08081028 @ case 29
.4byte _08081028 @ case 30
.4byte _08081028 @ case 31
.4byte _08081028 @ case 32
_08081028:
adds r1, r4, #0
adds r1, #0x3b
movs r0, #0x17
b _08081036
_08081030:
adds r1, r4, #0
adds r1, #0x3b
movs r0, #0x11
_08081036:
strb r0, [r1]
ldrb r0, [r4, #0xe]
adds r5, r4, #0
adds r5, #0x69
movs r2, #0
strb r0, [r5]
adds r0, r4, #0
adds r0, #0x6a
strb r2, [r0]
adds r0, #2
movs r1, #0
strh r2, [r0]
subs r0, #4
strb r1, [r0]
strb r1, [r4, #0xe]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
ldrb r0, [r4, #0xa]
bl sub_0808147C
strb r0, [r4, #0x1c]
ldr r1, _08081078 @ =gUnk_0811E7E8
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
b _080810A4
.align 2, 0
_08081078: .4byte gUnk_0811E7E8
_0808107C:
movs r0, #0x40
movs r1, #0x60
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _080810A4
movs r0, #0
strb r0, [r1, #0xe]
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _0808109A
movs r0, #2
strb r0, [r1, #0xb]
_0808109A:
adds r0, r4, #0
bl sub_0806FA24
bl sub_0805E780
_080810A4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080810A8
sub_080810A8: @ 0x080810A8
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080814A4
ldrb r1, [r4, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080810D6
movs r0, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0
bne _080810DC
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
b _080810DC
_080810D6:
movs r0, #0xff
orrs r0, r1
strb r0, [r4, #0x15]
_080810DC:
ldr r0, [r4, #0x20]
cmp r0, #0
bne _080810E8
movs r0, #0xf0
lsls r0, r0, #9
str r0, [r4, #0x20]
_080810E8:
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080810F8
adds r0, r4, #0
bl sub_08016A30
_080810F8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080810FC
sub_080810FC: @ 0x080810FC
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0x5f
beq _0808110E
adds r0, r2, #0
bl sub_08081598
b _0808112E
_0808110E:
movs r1, #0
movs r0, #2
strb r0, [r2, #0xc]
strb r1, [r2, #0xd]
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r1, r2, #0
adds r1, #0x3b
movs r0, #0x11
strb r0, [r1]
ldr r0, _08081130 @ =gLinkEntity
adds r1, r2, #0
bl sub_0806FA24
_0808112E:
pop {pc}
.align 2, 0
_08081130: .4byte gLinkEntity
thumb_func_start sub_08081134
sub_08081134: @ 0x08081134
push {r4, lr}
adds r4, r0, #0
bl sub_080814A4
adds r1, r4, #0
adds r1, #0x6c
ldrh r0, [r1]
adds r0, #0x50
strh r0, [r1]
adds r0, r4, #0
bl sub_08081150
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081150
sub_08081150: @ 0x08081150
push {lr}
movs r1, #2
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x10]
movs r1, #0x80
orrs r1, r2
strb r1, [r0, #0x10]
ldr r1, _08081180 @ =0x0000FF80
strh r1, [r0, #0x36]
ldrb r3, [r0, #0x1b]
movs r2, #0x3f
adds r1, r2, #0
ands r1, r3
movs r3, #0x40
orrs r1, r3
strb r1, [r0, #0x1b]
ldrb r1, [r0, #0x19]
ands r2, r1
orrs r2, r3
strb r2, [r0, #0x19]
ldr r0, _08081184 @ =0x0000012D
bl sub_080A3268
pop {pc}
.align 2, 0
_08081180: .4byte 0x0000FF80
_08081184: .4byte 0x0000012D
thumb_func_start sub_08081188
sub_08081188: @ 0x08081188
push {lr}
adds r2, r0, #0
movs r0, #2
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
adds r0, r2, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #2
bne _080811A8
adds r0, r2, #0
bl sub_08016A30
_080811A8:
pop {pc}
.align 2, 0
thumb_func_start sub_080811AC
sub_080811AC: @ 0x080811AC
push {r4, lr}
adds r4, r0, #0
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_080002A0
adds r4, #0x6e
strh r0, [r4]
pop {r4, pc}
thumb_func_start sub_080811C8
sub_080811C8: @ 0x080811C8
movs r1, #2
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #6
ands r1, r2
strb r1, [r0, #0x18]
bx lr
.align 2, 0
thumb_func_start sub_080811D8
sub_080811D8: @ 0x080811D8
push {lr}
bl sub_08081188
ldr r0, _080811E8 @ =0x00000215
bl sub_080A3268
pop {pc}
.align 2, 0
_080811E8: .4byte 0x00000215
thumb_func_start sub_080811EC
sub_080811EC: @ 0x080811EC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x69
ldrb r0, [r0]
cmp r0, #6
beq _08081200
adds r0, r4, #0
bl sub_080AEFE0
b _08081206
_08081200:
adds r0, r4, #0
bl sub_0806F69C
_08081206:
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
ldr r0, [r4, #0x20]
cmp r0, #0
bgt _08081228
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
bl sub_080814A4
_08081228:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808122C
sub_0808122C: @ 0x0808122C
push {lr}
ldr r2, _08081244 @ =gUnk_0811E814
adds r1, r0, #0
adds r1, #0x69
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08081244: .4byte gUnk_0811E814
thumb_func_start sub_08081248
sub_08081248: @ 0x08081248
push {r4, lr}
adds r4, r0, #0
bl sub_08081500
adds r0, r4, #0
bl sub_080814C0
cmp r0, #0
beq _08081264
adds r0, r4, #0
movs r1, #0
bl sub_08081404
b _0808126A
_08081264:
adds r0, r4, #0
bl sub_0800442E
_0808126A:
pop {r4, pc}
thumb_func_start sub_0808126C
sub_0808126C: @ 0x0808126C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0808153C
pop {r4, pc}
thumb_func_start sub_0808127C
sub_0808127C: @ 0x0808127C
push {r4, lr}
adds r4, r0, #0
bl sub_080814C0
cmp r0, #0
beq _08081292
adds r0, r4, #0
movs r1, #0
bl sub_08081404
b _08081298
_08081292:
adds r0, r4, #0
bl sub_0808153C
_08081298:
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_113
nullsub_113: @ 0x0808129C
bx lr
.align 2, 0
thumb_func_start sub_080812A0
sub_080812A0: @ 0x080812A0
push {lr}
bl sub_08081500
pop {pc}
thumb_func_start sub_080812A8
sub_080812A8: @ 0x080812A8
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080002D0
cmp r0, #0xf
beq _080812E4
adds r0, r5, #0
adds r0, #0x6e
ldrh r4, [r0]
adds r0, r5, #0
bl sub_080002A0
cmp r4, r0
beq _080812E4
movs r0, #0
strb r0, [r5, #0x15]
movs r2, #0
strh r0, [r5, #0x24]
ldrb r1, [r5, #0x18]
subs r0, #4
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r0, r5, #0
adds r0, #0x69
strb r2, [r0]
adds r0, r5, #0
bl sub_080810A8
_080812E4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080812E8
sub_080812E8: @ 0x080812E8
push {r4, lr}
adds r4, r0, #0
ldr r3, _0808131C @ =gUnk_03003F80
adds r0, r3, #0
adds r0, #0x26
ldrb r1, [r0]
movs r2, #0x80
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _08081318
ldr r0, [r3, #0x30]
ands r0, r2
cmp r0, #0
bne _08081318
ldr r1, _08081320 @ =gLinkEntity
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _08081318
adds r0, r4, #0
bl sub_080810FC
_08081318:
pop {r4, pc}
.align 2, 0
_0808131C: .4byte gUnk_03003F80
_08081320: .4byte gLinkEntity
thumb_func_start nullsub_510
nullsub_510: @ 0x08081324
bx lr
.align 2, 0
thumb_func_start sub_08081328
sub_08081328: @ 0x08081328
push {r4, lr}
adds r4, r0, #0
ldr r2, [r4, #0x54]
ldrh r1, [r2, #8]
movs r0, #0xc2
lsls r0, r0, #2
cmp r1, r0
beq _08081342
adds r0, r4, #0
movs r1, #0
bl sub_08081404
b _08081364
_08081342:
adds r0, r2, #0
adds r1, r4, #0
bl sub_0806FA24
ldrh r0, [r4, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
ldr r2, _08081368 @ =gLinkEntity
adds r0, r4, #0
adds r1, r2, #0
bl sub_080177A0
cmp r0, #0
beq _08081364
adds r0, r4, #0
bl sub_080810FC
_08081364:
pop {r4, pc}
.align 2, 0
_08081368: .4byte gLinkEntity
thumb_func_start sub_0808136C
sub_0808136C: @ 0x0808136C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _080813B2
ldr r3, [r5, #0x54]
ldr r0, [r3, #0x2c]
str r0, [r5, #0x2c]
ldr r0, [r3, #0x30]
str r0, [r5, #0x30]
ldrb r2, [r3, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r4, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r4
orrs r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r3, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x19]
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r5, #0
bl sub_08003FC4
b _080813BA
_080813B2:
adds r0, r5, #0
movs r1, #1
bl sub_08081404
_080813BA:
pop {r4, r5, pc}
thumb_func_start sub_080813BC
sub_080813BC: @ 0x080813BC
push {lr}
ldr r2, _080813D0 @ =gUnk_0811E840
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080813D0: .4byte gUnk_0811E840
thumb_func_start sub_080813D4
sub_080813D4: @ 0x080813D4
movs r3, #1
movs r1, #1
strb r1, [r0, #0xd]
strb r1, [r0, #0x1d]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
bx lr
thumb_func_start sub_080813E8
sub_080813E8: @ 0x080813E8
push {lr}
bl sub_0806F4E8
pop {pc}
thumb_func_start sub_080813F0
sub_080813F0: @ 0x080813F0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F3E4
cmp r0, #0
beq _08081402
adds r0, r4, #0
bl sub_080810FC
_08081402:
pop {r4, pc}
thumb_func_start sub_08081404
sub_08081404: @ 0x08081404
push {lr}
cmp r1, #0
beq _08081418
adds r1, r0, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08081418
bl sub_0807CCC8
_08081418:
bl sub_0805E780
pop {pc}
.align 2, 0
thumb_func_start sub_08081420
sub_08081420: @ 0x08081420
push {r4, lr}
adds r4, r0, #0
bl sub_08081450
cmp r0, #0
bne _08081438
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
bl sub_08053FF0
movs r0, #0
b _0808144C
_08081438:
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
movs r2, #0
bl sub_080A7C00
movs r0, #1
_0808144C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081450
sub_08081450: @ 0x08081450
push {r4, lr}
movs r4, #0
ldr r1, _08081478 @ =gUnk_080FD5B4
ldrb r2, [r0, #0xa]
lsls r0, r2, #3
adds r0, r0, r1
ldrb r1, [r0, #3]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08081470
adds r0, r2, #0
bl sub_0807CA84
cmp r0, #0
bne _08081472
_08081470:
movs r4, #1
_08081472:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
_08081478: .4byte gUnk_080FD5B4
thumb_func_start sub_0808147C
sub_0808147C: @ 0x0808147C
lsls r0, r0, #3
ldr r1, _08081488 @ =gUnk_0811E84C
adds r0, r0, r1
ldrb r0, [r0, #4]
bx lr
.align 2, 0
_08081488: .4byte gUnk_0811E84C
thumb_func_start sub_0808148C
sub_0808148C: @ 0x0808148C
push {lr}
lsls r0, r0, #3
ldr r1, _080814A0 @ =gUnk_0811E84C
adds r1, r0, r1
ldrh r0, [r1, #2]
cmp r0, #0
beq _0808149E
bl sub_080A3268
_0808149E:
pop {pc}
.align 2, 0
_080814A0: .4byte gUnk_0811E84C
thumb_func_start sub_080814A4
sub_080814A4: @ 0x080814A4
push {lr}
adds r1, r0, #0
adds r0, #0x69
ldrb r0, [r0]
cmp r0, #0xa
bne _080814B6
adds r1, #0x6c
movs r0, #0x78
b _080814BC
_080814B6:
adds r1, #0x6c
movs r0, #0x96
lsls r0, r0, #2
_080814BC:
strh r0, [r1]
pop {pc}
thumb_func_start sub_080814C0
sub_080814C0: @ 0x080814C0
push {r4, lr}
adds r4, r0, #0
bl sub_0805E40C
cmp r0, #0
bne _080814FA
adds r0, r4, #0
adds r0, #0x6c
ldrh r1, [r0]
subs r1, #1
strh r1, [r0]
lsls r0, r1, #0x10
cmp r0, #0
bne _080814E0
movs r0, #1
b _080814FC
_080814E0:
lsls r0, r1, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x59
bhi _080814FA
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_080814FA:
movs r0, #0
_080814FC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081500
sub_08081500: @ 0x08081500
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x68
ldrb r0, [r5]
cmp r0, #0
bne _08081538
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_080044EC
cmp r0, #0
bne _08081522
movs r0, #1
strb r0, [r5]
b _08081538
_08081522:
cmp r0, #1
bne _08081532
ldrb r0, [r4, #0xa]
bl sub_0808148C
adds r0, r4, #0
bl sub_08016A04
_08081532:
adds r0, r4, #0
bl sub_080AEFE0
_08081538:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808153C
sub_0808153C: @ 0x0808153C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x68
ldrb r0, [r5]
cmp r0, #1
bhi _08081596
cmp r0, #0
bne _0808157E
movs r1, #0x80
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08081596
adds r0, r4, #0
bl sub_0800442E
cmp r0, #0
bne _08081596
movs r0, #1
strb r0, [r5]
movs r0, #0xf0
lsls r0, r0, #9
str r0, [r4, #0x20]
ldrb r0, [r4, #0xa]
bl sub_0808148C
adds r0, r4, #0
bl sub_08016A04
b _08081596
_0808157E:
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08081596
movs r0, #2
strb r0, [r5]
ldrb r0, [r4, #0xa]
bl sub_0808148C
_08081596:
pop {r4, r5, pc}
thumb_func_start sub_08081598
sub_08081598: @ 0x08081598
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080815AC
adds r0, r4, #0
movs r1, #1
bl sub_08081404
_080815AC:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0xe
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
movs r1, #8
rsbs r1, r1, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
ldr r0, _08081618 @ =gLinkEntity
str r0, [r4, #0x54]
adds r1, r4, #0
bl sub_0806FA24
ldrh r0, [r4, #0x36]
subs r0, #4
strh r0, [r4, #0x36]
ldrb r0, [r4, #0xa]
cmp r0, #0x5f
beq _08081614
adds r0, r4, #0
bl sub_08081420
cmp r0, #0
beq _08081614
adds r0, r4, #0
movs r1, #1
bl sub_08081404
_08081614:
pop {r4, pc}
.align 2, 0
_08081618: .4byte gLinkEntity
thumb_func_start sub_0808161C
sub_0808161C: @ 0x0808161C
push {lr}
ldr r2, _08081630 @ =gUnk_0811EBFC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08081630: .4byte gUnk_0811EBFC
thumb_func_start sub_08081634
sub_08081634: @ 0x08081634
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x6c
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808169C
movs r5, #0
movs r0, #0x65
strh r0, [r4, #0x12]
movs r1, #2
strb r1, [r4, #0xc]
strb r5, [r4, #0x15]
movs r0, #0x40
strh r0, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
bl sub_08016A04
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0xe]
movs r2, #0x80
cmp r0, #0
beq _08081674
adds r2, r0, #0
strb r5, [r4, #0xe]
_08081674:
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
movs r1, #4
movs r2, #0
bl sub_080AE008
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
ldr r0, _08081698 @ =0x00000129
bl sub_080A3268
b _0808170C
.align 2, 0
_08081698: .4byte 0x00000129
_0808169C:
movs r0, #0xc
ands r0, r1
cmp r0, #0
beq _080816B2
adds r0, r4, #0
bl sub_08081790
adds r0, r4, #0
bl sub_0808180C
b _08081702
_080816B2:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080816C4
adds r0, r4, #0
movs r1, #2
bl sub_08004260
b _08081702
_080816C4:
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
ldr r1, _08081718 @ =gUnk_0811EC08
ldrb r0, [r4, #0xa]
lsrs r0, r0, #2
adds r0, r0, r1
ldrb r2, [r0]
ldrb r0, [r4, #0xa]
movs r1, #3
ands r0, r1
lsls r0, r0, #1
asrs r2, r0
ands r2, r1
ldr r1, [r4, #0x50]
cmp r1, #0
beq _080816FA
ldr r0, _0808171C @ =gUnk_0811EC20
adds r0, r2, r0
ldrb r0, [r0]
strb r0, [r1, #0xe]
_080816FA:
adds r0, r4, #0
adds r1, r2, #0
bl sub_08004260
_08081702:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
bl sub_08004488
_0808170C:
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
pop {r4, r5, pc}
.align 2, 0
_08081718: .4byte gUnk_0811EC08
_0808171C: .4byte gUnk_0811EC20
thumb_func_start sub_08081720
sub_08081720: @ 0x08081720
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08081744
adds r0, r4, #0
bl sub_08081790
adds r0, r4, #0
bl sub_0808180C
b _0808175E
_08081744:
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808175E
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
_0808175E:
pop {r4, pc}
thumb_func_start sub_08081760
sub_08081760: @ 0x08081760
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808177E
adds r0, r4, #0
bl sub_0808180C
b _0808178C
_0808177E:
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808178C
adds r0, r4, #0
bl sub_0806F69C
_0808178C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081790
sub_08081790: @ 0x08081790
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x6d
ldrb r0, [r1]
cmp r0, #0xef
bhi _080817B4
ldr r0, _080817B0 @ =gUnk_0811EC64
ldrb r1, [r1]
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r2, #0
bl sub_0805457C
b _080817C6
.align 2, 0
_080817B0: .4byte gUnk_0811EC64
_080817B4:
ldr r0, _080817C8 @ =gUnk_0811EC24
ldrb r1, [r1]
subs r1, #0xf0
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_080817C6:
pop {pc}
.align 2, 0
_080817C8: .4byte gUnk_0811EC24
thumb_func_start sub_080817CC
sub_080817CC: @ 0x080817CC
push {lr}
movs r1, #9
bl sub_0805457C
pop {pc}
.align 2, 0
thumb_func_start sub_080817D8
sub_080817D8: @ 0x080817D8
push {lr}
movs r1, #0xd
bl sub_0805457C
pop {pc}
.align 2, 0
thumb_func_start sub_080817E4
sub_080817E4: @ 0x080817E4
push {lr}
movs r1, #0xe
bl sub_0805457C
pop {pc}
.align 2, 0
thumb_func_start sub_080817F0
sub_080817F0: @ 0x080817F0
push {lr}
movs r1, #1
bl sub_0805457C
pop {pc}
.align 2, 0
thumb_func_start sub_080817FC
sub_080817FC: @ 0x080817FC
push {lr}
adds r1, r0, #0
adds r1, #0x6e
ldrb r1, [r1]
movs r2, #0
bl sub_08054754
pop {pc}
thumb_func_start sub_0808180C
sub_0808180C: @ 0x0808180C
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_08081814
sub_08081814: @ 0x08081814
push {r4, lr}
adds r4, r0, #0
ldr r1, _08081850 @ =gUnk_0811EE28
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
beq _08081838
adds r0, r4, #0
bl sub_08080CB4
_08081838:
ldrb r0, [r4, #0xe]
cmp r0, #2
bgt _0808184E
cmp r0, #1
blt _0808184E
ldrb r0, [r4, #0xc]
cmp r0, #1
bne _0808184E
adds r0, r4, #0
bl sub_0800445C
_0808184E:
pop {r4, pc}
.align 2, 0
_08081850: .4byte gUnk_0811EE28
thumb_func_start sub_08081854
sub_08081854: @ 0x08081854
push {r4, lr}
adds r4, r0, #0
movs r3, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
strb r3, [r4, #0x16]
str r4, [r4, #0x54]
adds r0, r4, #0
bl sub_08081A5C
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808188E
cmp r0, #1
beq _08081898
b _0808189C
_0808188E:
ldr r0, _08081894 @ =gUnk_080FD328
b _0808189A
.align 2, 0
_08081894: .4byte gUnk_080FD328
_08081898:
ldr r0, _080818A0 @ =gUnk_080FD198
_0808189A:
str r0, [r4, #0x48]
_0808189C:
pop {r4, pc}
.align 2, 0
_080818A0: .4byte gUnk_080FD198
thumb_func_start sub_080818A4
sub_080818A4: @ 0x080818A4
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xd]
cmp r2, #0
beq _080818C0
movs r1, #2
strb r1, [r4, #0xc]
ldr r0, _080818BC @ =gUnk_0200AF00
adds r0, #0x2f
strb r1, [r0]
b _08081920
.align 2, 0
_080818BC: .4byte gUnk_0200AF00
_080818C0:
ldrb r0, [r4, #0xa]
cmp r0, #0x36
bne _080818F0
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08081920
strb r2, [r1]
movs r0, #3
strb r0, [r4, #0xc]
ldr r1, _080818E8 @ =gUnk_02034350
movs r0, #1
str r0, [r1, #0x68]
ldr r1, _080818EC @ =gUnk_03003F80
movs r0, #7
strb r0, [r1, #0xc]
b _08081920
.align 2, 0
_080818E8: .4byte gUnk_02034350
_080818EC: .4byte gUnk_03003F80
_080818F0:
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08081920
strb r2, [r1]
movs r0, #1
strb r0, [r4, #0xd]
bl sub_08078B48
bl sub_08077B2C
ldr r1, _08081924 @ =gUnk_03003F80
movs r0, #4
strb r0, [r1, #5]
ldr r0, _08081928 @ =gLinkEntity
str r4, [r0, #0x74]
ldr r0, _0808192C @ =gUnk_0200AF00
adds r0, #0x2f
movs r1, #2
strb r1, [r0]
bl sub_08056360
_08081920:
pop {r4, pc}
.align 2, 0
_08081924: .4byte gUnk_03003F80
_08081928: .4byte gLinkEntity
_0808192C: .4byte gUnk_0200AF00
thumb_func_start sub_08081930
sub_08081930: @ 0x08081930
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r0, _08081968 @ =gUnk_0200AF00
adds r6, r0, #0
adds r6, #0x2f
movs r0, #2
strb r0, [r6]
ldr r3, _0808196C @ =gLinkEntity
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
subs r0, #6
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r5, _08081970 @ =gUnk_03003F80
ldrb r0, [r5, #5]
cmp r0, #0
beq _0808195E
ldr r0, [r3, #0x74]
cmp r4, r0
beq _08081974
_0808195E:
adds r0, r4, #0
bl sub_080819B4
b _080819AC
.align 2, 0
_08081968: .4byte gUnk_0200AF00
_0808196C: .4byte gLinkEntity
_08081970: .4byte gUnk_03003F80
_08081974:
bl sub_080784E4
adds r1, r0, #0
ldr r0, [r1, #8]
cmp r0, #0
beq _08081998
ldrb r0, [r1, #1]
cmp r0, #1
bne _08081998
movs r0, #7
strb r0, [r6]
adds r0, r5, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x88
ands r0, r1
cmp r0, #0
bne _080819AC
_08081998:
ldr r0, _080819B0 @ =gUnk_03003F80
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0x98
ands r0, r1
cmp r0, #0
beq _080819AC
adds r0, r4, #0
bl sub_080819B4
_080819AC:
pop {r4, r5, r6, pc}
.align 2, 0
_080819B0: .4byte gUnk_03003F80
thumb_func_start sub_080819B4
sub_080819B4: @ 0x080819B4
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _08081A48 @ =gUnk_02034350
ldrb r0, [r0, #6]
cmp r0, #0
bne _080819D4
ldr r0, [r5, #0x50]
cmp r0, #0
beq _080819D0
adds r0, #0x20
ldrb r1, [r5, #0xf]
adds r0, r0, r1
movs r1, #0xff
strb r1, [r0]
_080819D0:
bl sub_0805E780
_080819D4:
ldr r0, _08081A4C @ =gUnk_03003F80
movs r2, #0
strb r2, [r0, #5]
ldr r4, _08081A50 @ =gLinkEntity
str r2, [r4, #0x74]
ldr r1, _08081A54 @ =gUnk_0200AF00
ldr r3, _08081A48 @ =gUnk_02034350
strb r2, [r3, #6]
adds r0, r1, #0
adds r0, #0x2c
strb r2, [r0]
adds r1, #0x2f
strb r2, [r1]
strb r2, [r3, #7]
adds r1, r5, #0
adds r1, #0x80
ldr r3, _08081A58 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
ldrh r1, [r1]
adds r0, r0, r1
movs r1, #0
strh r0, [r5, #0x2e]
movs r6, #0x82
ldrh r0, [r3, #8]
ldrh r3, [r6, r5]
adds r0, r0, r3
strh r0, [r5, #0x32]
str r2, [r5, #0x34]
movs r3, #1
strb r3, [r5, #0xc]
strb r1, [r5, #0xd]
ldrb r1, [r4, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
adds r0, #0x38
strb r3, [r0]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
bl sub_08016A04
adds r0, r5, #0
bl sub_08081A5C
pop {r4, r5, r6, pc}
.align 2, 0
_08081A48: .4byte gUnk_02034350
_08081A4C: .4byte gUnk_03003F80
_08081A50: .4byte gLinkEntity
_08081A54: .4byte gUnk_0200AF00
_08081A58: .4byte gUnk_03000BF0
thumb_func_start sub_08081A5C
sub_08081A5C: @ 0x08081A5C
push {r4, lr}
adds r4, r0, #0
bl sub_080787D8
adds r2, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _08081A7A
ldr r0, _08081A7C @ =gUnk_03003DF0
lsls r1, r2, #1
adds r1, r1, r2
lsls r1, r1, #2
adds r1, r1, r0
movs r0, #0
strb r0, [r1, #0xa]
_08081A7A:
pop {r4, pc}
.align 2, 0
_08081A7C: .4byte gUnk_03003DF0
thumb_func_start sub_08081A80
sub_08081A80: @ 0x08081A80
push {lr}
adds r2, r0, #0
ldr r0, _08081A98 @ =gUnk_02034350
ldr r0, [r0, #0x68]
cmp r0, #0
bne _08081A9C
bl sub_08081AB0
bl sub_0805E780
b _08081AAC
.align 2, 0
_08081A98: .4byte gUnk_02034350
_08081A9C:
cmp r0, #2
bne _08081AAC
movs r1, #0
movs r0, #1
strb r0, [r2, #0xc]
strb r1, [r2, #0xd]
bl sub_08081AB0
_08081AAC:
pop {pc}
.align 2, 0
thumb_func_start sub_08081AB0
sub_08081AB0: @ 0x08081AB0
push {lr}
ldr r1, _08081AC4 @ =gUnk_02034350
movs r0, #0
str r0, [r1, #0x68]
strb r0, [r1, #6]
strb r0, [r1, #7]
bl sub_08078A90
pop {pc}
.align 2, 0
_08081AC4: .4byte gUnk_02034350
thumb_func_start sub_08081AC8
sub_08081AC8: @ 0x08081AC8
push {lr}
ldr r2, _08081ADC @ =gUnk_0811EE38
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08081ADC: .4byte gUnk_0811EE38
thumb_func_start sub_08081AE0
sub_08081AE0: @ 0x08081AE0
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x84
ldrh r1, [r0]
cmp r1, #0
beq _08081B0E
subs r0, #0x4c
strb r1, [r0]
_08081B0E:
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08081B6C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x74
strh r1, [r5]
ldrh r0, [r5]
adds r6, r4, #0
adds r6, #0x38
ldrb r1, [r6]
bl sub_080002B0
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08081B70
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08081B70
movs r0, #5
strb r0, [r4, #0xc]
ldrh r1, [r5]
ldrb r2, [r6]
movs r0, #0x7a
bl sub_0807B314
b _08081B82
.align 2, 0
_08081B6C: .4byte gUnk_03000BF0
_08081B70:
adds r0, r4, #0
bl sub_08081E3C
cmp r0, #0
beq _08081B7E
movs r0, #2
b _08081B80
_08081B7E:
movs r0, #1
_08081B80:
strb r0, [r4, #0xc]
_08081B82:
pop {r4, r5, r6, pc}
thumb_func_start sub_08081B84
sub_08081B84: @ 0x08081B84
push {r4, lr}
adds r4, r0, #0
bl sub_08081E3C
cmp r0, #0
beq _08081BAA
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
_08081BAA:
pop {r4, pc}
thumb_func_start sub_08081BAC
sub_08081BAC: @ 0x08081BAC
push {r4, lr}
adds r4, r0, #0
bl sub_08081CB0
cmp r0, #0
beq _08081BDC
movs r0, #0
strb r0, [r4, #0xd]
movs r0, #0xa
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #0xa
bl sub_0805E4E0
adds r0, r4, #0
bl sub_08081FF8
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _08081BD8
movs r0, #3
b _08081BDA
_08081BD8:
movs r0, #5
_08081BDA:
strb r0, [r4, #0xc]
_08081BDC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081BE0
sub_08081BE0: @ 0x08081BE0
push {r4, lr}
adds r4, r0, #0
movs r1, #0x78
bl sub_08081F7C
cmp r0, #0
beq _08081C2C
adds r0, r4, #0
bl sub_08081D28
cmp r0, #0
bne _08081C26
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xf]
ldr r1, _08081C1C @ =gUnk_03003F80
ldrb r0, [r1, #5]
cmp r0, #2
beq _08081C16
adds r0, r1, #0
adds r0, #0x35
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08081C20
_08081C16:
movs r0, #0x18
strb r0, [r4, #0xe]
b _08081C2C
.align 2, 0
_08081C1C: .4byte gUnk_03003F80
_08081C20:
movs r0, #8
strb r0, [r4, #0xe]
b _08081C2C
_08081C26:
adds r0, r4, #0
bl sub_08081E6C
_08081C2C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081C30
sub_08081C30: @ 0x08081C30
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08081C70
subs r0, #1
movs r5, #0
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _08081C5A
strb r5, [r4, #0xf]
ldr r0, _08081C6C @ =0x00004035
adds r1, r4, #0
adds r1, #0x74
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_08081C5A:
adds r0, r4, #0
bl sub_08081CB0
cmp r0, #0
beq _08081C96
movs r0, #3
strb r0, [r4, #0xc]
strb r5, [r4, #0xe]
b _08081C96
.align 2, 0
_08081C6C: .4byte 0x00004035
_08081C70:
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
adds r0, r4, #0
adds r0, #0x74
ldrh r1, [r0]
subs r0, #0x3c
ldrb r2, [r0]
movs r0, #0x77
bl sub_0807B314
movs r0, #0x86
lsls r0, r0, #1
bl sub_080A3268
_08081C96:
pop {r4, r5, pc}
thumb_func_start sub_08081C98
sub_08081C98: @ 0x08081C98
push {r4, lr}
adds r4, r0, #0
movs r1, #0x7a
bl sub_08081F7C
cmp r0, #0
beq _08081CAC
adds r0, r4, #0
bl sub_08081E6C
_08081CAC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08081CB0
sub_08081CB0: @ 0x08081CB0
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_08081D74
cmp r0, #0
beq _08081CEC
adds r1, r4, #0
adds r1, #0x70
ldr r0, _08081CE4 @ =0x0000FFFF
strh r0, [r1]
adds r5, r4, #0
adds r5, #0x74
ldrh r0, [r5]
adds r4, #0x38
ldrb r1, [r4]
bl sub_080002B0
ldr r1, _08081CE8 @ =0x00004035
cmp r0, r1
bne _08081D1C
ldrh r1, [r5]
ldrb r2, [r4]
movs r0, #0x78
bl sub_0807B7D8
b _08081D1C
.align 2, 0
_08081CE4: .4byte 0x0000FFFF
_08081CE8: .4byte 0x00004035
_08081CEC:
adds r6, r4, #0
adds r6, #0x74
ldrh r0, [r6]
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
cmp r1, #0x77
beq _08081D24
cmp r1, #0x79
beq _08081D24
ldr r0, _08081D20 @ =0x00004035
cmp r1, r0
beq _08081D24
ldrh r0, [r6]
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
_08081D1C:
movs r0, #1
b _08081D26
.align 2, 0
_08081D20: .4byte 0x00004035
_08081D24:
movs r0, #0
_08081D26:
pop {r4, r5, r6, pc}
thumb_func_start sub_08081D28
sub_08081D28: @ 0x08081D28
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08081D74
cmp r0, #0
beq _08081D44
adds r1, r4, #0
adds r1, #0x70
ldr r0, _08081D40 @ =0x0000FFFF
strh r0, [r1]
movs r0, #1
b _08081D72
.align 2, 0
_08081D40: .4byte 0x0000FFFF
_08081D44:
adds r5, r4, #0
adds r5, #0x70
ldrh r1, [r5]
ldr r0, _08081D6C @ =0x0000FFFF
cmp r1, r0
beq _08081D70
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
ldrh r5, [r5]
cmp r0, r5
bne _08081D70
movs r0, #1
b _08081D72
.align 2, 0
_08081D6C: .4byte 0x0000FFFF
_08081D70:
movs r0, #0
_08081D72:
pop {r4, r5, pc}
thumb_func_start sub_08081D74
sub_08081D74: @ 0x08081D74
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002E0
cmp r0, #0xf
bne _08081D8E
movs r0, #0
b _08081E0A
_08081D8E:
movs r6, #0
adds r0, r4, #0
bl sub_08081E0C
cmp r0, #0
beq _08081DB4
ldr r0, _08081DAC @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x90
ands r0, r1
cmp r0, #0
bne _08081E06
ldr r6, _08081DB0 @ =gLinkEntity
b _08081E06
.align 2, 0
_08081DAC: .4byte gUnk_03003F80
_08081DB0: .4byte gLinkEntity
_08081DB4:
ldr r0, _08081DD8 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _08081E06
ldr r5, _08081DDC @ =gUnk_03004040
ldr r1, [r5]
adds r0, r4, #0
movs r2, #5
movs r3, #6
bl sub_080041A0
cmp r0, #0
beq _08081DE0
ldr r6, [r5]
b _08081E06
.align 2, 0
_08081DD8: .4byte gUnk_03003F80
_08081DDC: .4byte gUnk_03004040
_08081DE0:
ldr r1, [r5, #4]
adds r0, r4, #0
movs r2, #5
movs r3, #6
bl sub_080041A0
cmp r0, #0
beq _08081DF4
ldr r6, [r5, #4]
b _08081E06
_08081DF4:
ldr r1, [r5, #8]
adds r0, r4, #0
movs r2, #5
movs r3, #6
bl sub_080041A0
cmp r0, #0
beq _08081E06
ldr r6, [r5, #8]
_08081E06:
str r6, [r4, #0x54]
adds r0, r6, #0
_08081E0A:
pop {r4, r5, r6, pc}
thumb_func_start sub_08081E0C
sub_08081E0C: @ 0x08081E0C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08081E28 @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r5, r1]
cmp r0, #0
bne _08081E22
bl sub_08079F8C
cmp r0, #0
bne _08081E2C
_08081E22:
movs r0, #0
b _08081E38
.align 2, 0
_08081E28: .4byte gLinkEntity
_08081E2C:
adds r0, r4, #0
adds r1, r5, #0
movs r2, #5
movs r3, #6
bl sub_080041A0
_08081E38:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08081E3C
sub_08081E3C: @ 0x08081E3C
push {lr}
adds r1, r0, #0
adds r1, #0x74
ldrh r2, [r1]
adds r0, #0x38
ldrb r1, [r0]
adds r0, r2, #0
bl sub_080002B0
adds r2, r0, #0
ldr r1, _08081E64 @ =gUnk_0811EE50
_08081E52:
ldrh r0, [r1]
cmp r0, r2
beq _08081E68
adds r1, #2
ldrh r0, [r1]
cmp r0, #0
bne _08081E52
movs r0, #0
b _08081E6A
.align 2, 0
_08081E64: .4byte gUnk_0811EE50
_08081E68:
movs r0, #1
_08081E6A:
pop {pc}
thumb_func_start sub_08081E6C
sub_08081E6C: @ 0x08081E6C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r0, #0x74
ldrh r6, [r0]
subs r0, #0x3c
ldrb r5, [r0]
adds r0, r6, #0
adds r1, r5, #0
bl sub_080002B0
adds r7, r0, #0
ldr r0, _08081EEC @ =0x00003FFF
cmp r7, r0
bls _08081EE8
adds r0, r5, #0
bl sub_0808094C
adds r1, r0, #0
ldrb r0, [r4, #0xa]
movs r4, #0x78
cmp r0, #0
bne _08081E9A
movs r4, #0x7a
_08081E9A:
ldr r0, _08081EF0 @ =0x00007004
adds r3, r1, r0
lsls r0, r4, #1
ldr r2, _08081EF4 @ =0x00006004
adds r1, r1, r2
adds r1, r1, r0
ldrh r0, [r1]
lsls r0, r0, #3
adds r3, r3, r0
ldr r2, _08081EF8 @ =gUnk_02019EE0
cmp r5, #2
bne _08081EB4
ldr r2, _08081EFC @ =gUnk_02002F00
_08081EB4:
movs r0, #0x3f
ands r0, r6
lsls r0, r0, #1
movs r1, #0xfc
lsls r1, r1, #4
ands r1, r6
lsls r1, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
adds r2, r2, r0
adds r0, r2, #0
adds r1, r3, #0
bl sub_08081F00
cmp r0, #0
bne _08081EE8
adds r0, r4, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0807B314
adds r0, r7, #0
adds r1, r6, #0
adds r2, r5, #0
bl sub_0800015E
_08081EE8:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08081EEC: .4byte 0x00003FFF
_08081EF0: .4byte 0x00007004
_08081EF4: .4byte 0x00006004
_08081EF8: .4byte gUnk_02019EE0
_08081EFC: .4byte gUnk_02002F00
thumb_func_start sub_08081F00
sub_08081F00: @ 0x08081F00
push {lr}
adds r2, r0, #0
adds r3, r1, #0
ldr r1, [r2]
ldr r0, [r3]
cmp r1, r0
bne _08081F20
movs r1, #0x80
lsls r1, r1, #1
adds r0, r2, r1
ldr r1, [r0]
ldr r0, [r3, #4]
cmp r1, r0
bne _08081F20
movs r0, #1
b _08081F22
_08081F20:
movs r0, #0
_08081F22:
pop {pc}
thumb_func_start sub_08081F24
sub_08081F24: @ 0x08081F24
push {r4, lr}
adds r4, r0, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _08081F50
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x11]
ldrh r0, [r2, #0x2e]
adds r0, #7
strh r0, [r2, #0x2e]
ldrh r0, [r2, #0x32]
adds r0, #5
strh r0, [r2, #0x32]
_08081F50:
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _08081F7A
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x11]
ldrh r0, [r2, #0x2e]
subs r0, #7
strh r0, [r2, #0x2e]
ldrh r0, [r2, #0x32]
adds r0, #5
strh r0, [r2, #0x32]
_08081F7A:
pop {r4, pc}
thumb_func_start sub_08081F7C
sub_08081F7C: @ 0x08081F7C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r7, r1, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08081FF4
subs r1, r0, #1
strb r1, [r4, #0xe]
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #6
bls _08081FA4
ldr r0, [r4, #0x54]
cmp r0, #0
beq _08081FF4
adds r1, r0, #0
adds r1, #0x63
movs r0, #0xfc
strb r0, [r1]
b _08081FF4
_08081FA4:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #6
bne _08081FF4
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
adds r6, r4, #0
adds r6, #0x74
ldrh r1, [r6]
adds r5, r4, #0
adds r5, #0x38
ldrb r2, [r5]
adds r0, r7, #0
bl sub_0807B314
adds r0, r4, #0
bl sub_08081F24
movs r0, #0x86
lsls r0, r0, #1
bl sub_080A3268
adds r2, r4, #0
adds r2, #0x70
ldrh r1, [r2]
ldr r0, _08081FF0 @ =0x0000FFFF
cmp r1, r0
beq _08081FEC
adds r0, r1, #0
ldrh r1, [r6]
ldrb r2, [r5]
bl sub_0800015E
_08081FEC:
movs r0, #0
b _08081FF6
.align 2, 0
_08081FF0: .4byte 0x0000FFFF
_08081FF4:
movs r0, #1
_08081FF6:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08081FF8
sub_08081FF8: @ 0x08081FF8
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r1, [r4, #0x54]
ldr r0, _08082038 @ =gLinkEntity
cmp r1, r0
bne _08082036
adds r0, r1, #0
adds r1, r4, #0
bl sub_080045C4
adds r6, r0, #0
ldr r0, [r4, #0x54]
movs r1, #0x80
lsls r1, r1, #2
adds r2, r6, #0
bl sub_080044AE
movs r5, #0
ldr r4, _0808203C @ =gUnk_03004040
_0808201E:
ldr r0, [r4]
cmp r0, #0
beq _0808202E
movs r1, #0x80
lsls r1, r1, #2
adds r2, r6, #0
bl sub_080044AE
_0808202E:
adds r4, #4
adds r5, #1
cmp r5, #2
bls _0808201E
_08082036:
pop {r4, r5, r6, pc}
.align 2, 0
_08082038: .4byte gLinkEntity
_0808203C: .4byte gUnk_03004040
thumb_func_start sub_08082040
sub_08082040: @ 0x08082040
push {lr}
ldr r2, _08082054 @ =gUnk_0811EE5C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08082054: .4byte gUnk_0811EE5C
thumb_func_start sub_08082058
sub_08082058: @ 0x08082058
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r4, #0
bl sub_08082098
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08082098
sub_08082098: @ 0x08082098
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, _08082100 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080820AC
bl sub_0805E780
_080820AC:
ldr r5, _08082104 @ =gLinkEntity
adds r0, r4, #0
bl sub_08079BD8
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r1, [r5, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r1, [r5, #0x14]
movs r0, #0xe
ands r0, r1
strb r0, [r4, #0x14]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r0, [r5, #0x14]
lsrs r3, r0, #1
adds r7, r3, #0
ldrb r0, [r5, #0xc]
cmp r0, #0x14
beq _08082122
cmp r0, #0x14
bgt _08082108
cmp r0, #0xa
beq _0808212A
b _0808212E
.align 2, 0
_08082100: .4byte gUnk_03003F80
_08082104: .4byte gLinkEntity
_08082108:
cmp r0, #0x16
beq _08082112
cmp r0, #0x18
beq _08082126
b _0808212E
_08082112:
ldrb r0, [r4, #0x14]
movs r3, #0xd
adds r5, r4, #0
adds r5, #0x58
cmp r0, #2
bne _080821F2
movs r3, #0xe
b _080821F2
_08082122:
movs r3, #0xc
b _080821EE
_08082126:
adds r3, #0xf
b _080821EE
_0808212A:
movs r3, #0x13
b _080821EE
_0808212E:
adds r0, r5, #0
adds r0, #0x42
ldrb r0, [r0]
cmp r0, #0
beq _0808213E
adds r3, r7, #0
adds r3, #8
b _080821EE
_0808213E:
ldr r2, _0808215C @ =gUnk_03003F80
ldrb r1, [r2, #2]
adds r6, r1, #0
cmp r6, #0
beq _08082160
movs r0, #0x10
ands r0, r1
adds r5, r4, #0
adds r5, #0x58
cmp r0, #0
bne _080821F2
adds r3, r7, #0
adds r3, #0x19
b _080821F2
.align 2, 0
_0808215C: .4byte gUnk_03003F80
_08082160:
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #1
beq _0808216E
cmp r0, #0x19
bne _080821C8
_0808216E:
adds r3, r7, #4
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, r3
beq _08082180
str r6, [r4, #0x34]
b _080821BA
_08082180:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r7, #0xff
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080821F2
adds r2, r4, #0
adds r2, #0x63
movs r1, #0
ldrsb r1, [r2, r1]
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
beq _080821C0
cmp r1, r0
bgt _080821AC
subs r0, #1
cmp r1, r0
beq _080821B4
b _080821F2
_080821AC:
cmp r1, #0
bne _080821F2
movs r0, #0xfe
b _080821B8
_080821B4:
ldrb r0, [r2]
orrs r0, r7
_080821B8:
strb r0, [r2]
_080821BA:
movs r0, #6
strb r0, [r4, #0xe]
b _080821F2
_080821C0:
strb r6, [r2]
movs r0, #3
strb r0, [r4, #0xe]
b _080821F2
_080821C8:
adds r0, r2, #0
adds r0, #0x26
ldrb r2, [r0]
adds r1, r2, #0
cmp r1, #0
beq _080821E8
movs r0, #0x80
ands r0, r2
adds r3, r7, #0
adds r3, #0x14
adds r5, r4, #0
adds r5, #0x58
cmp r0, #0
beq _080821F2
movs r3, #0x18
b _080821F2
_080821E8:
adds r0, r4, #0
adds r0, #0x63
strb r1, [r0]
_080821EE:
adds r5, r4, #0
adds r5, #0x58
_080821F2:
ldrb r0, [r5]
cmp r0, r3
beq _08082202
adds r0, r4, #0
adds r1, r3, #0
bl sub_080042AC
b _08082208
_08082202:
adds r0, r4, #0
bl sub_080042B8
_08082208:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0808220C
sub_0808220C: @ 0x0808220C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08082228 @ =gUnk_0811F090
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r4, #0x41
movs r0, #0
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_08082228: .4byte gUnk_0811F090
thumb_func_start sub_0808222C
sub_0808222C: @ 0x0808222C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _0808224C
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808224C
bl sub_0805E780
_0808224C:
movs r2, #1
strb r2, [r4, #0xc]
ldr r0, _08082308 @ =gUnk_080FD338
str r0, [r4, #0x48]
movs r1, #0
movs r0, #0x80
strh r0, [r4, #0x24]
ldrh r0, [r4, #0x32]
adds r0, #3
strh r0, [r4, #0x32]
strb r1, [r4, #0x16]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x45
strb r2, [r0]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x6e
strb r0, [r1]
subs r1, #4
movs r0, #0x84
strb r0, [r1]
movs r0, #0x12
strb r0, [r4, #0x1c]
adds r5, r4, #0
adds r5, #0x38
ldrb r0, [r5]
cmp r0, #0
bne _08082298
adds r0, r4, #0
bl sub_08016A30
_08082298:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r7, _0808230C @ =gUnk_03000BF0
ldrh r1, [r7, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r6, #0x3f
ands r0, r6
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r7, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #7
mov r8, r1
cmp r0, r8
bne _080822D6
bl sub_0805E780
_080822D6:
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldrh r0, [r7, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r4, r2]
ldrh r2, [r7, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
ldrb r2, [r5]
mov r0, r8
bl sub_0800015E
adds r0, r4, #0
movs r1, #5
bl sub_08004260
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08082308: .4byte gUnk_080FD338
_0808230C: .4byte gUnk_03000BF0
thumb_func_start sub_08082310
sub_08082310: @ 0x08082310
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r0, [r0]
movs r6, #0x7f
adds r1, r6, #0
ands r1, r0
cmp r1, #0x13
beq _08082342
cmp r1, #0x1d
beq _0808234C
adds r0, r5, #0
bl sub_080002A0
adds r4, r0, #0
movs r0, #0x80
lsls r0, r0, #7
cmp r4, r0
bne _08082338
b _080824F0
_08082338:
adds r0, #1
cmp r4, r0
bhs _08082340
b _08082484
_08082340:
b _080823C4
_08082342:
movs r1, #0
movs r0, #3
strb r0, [r5, #0xc]
strb r1, [r5, #0xd]
b _080824F6
_0808234C:
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080823C0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r2, [r5, r7]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
movs r1, #0
movs r0, #5
strb r0, [r5, #0xc]
movs r0, #0xa8
lsls r0, r0, #0xa
str r0, [r5, #0x20]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
ldrb r1, [r5, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r5, #0x18]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r5, #0x10]
adds r0, r6, #0
ands r0, r1
strb r0, [r5, #0x10]
adds r0, r5, #0
bl sub_08082824
b _080824F6
.align 2, 0
_080823C0: .4byte gUnk_03000BF0
_080823C4:
ldr r0, _080823D4 @ =0x00004004
cmp r4, r0
bls _080823D8
adds r0, #0x63
cmp r4, r0
beq _08082448
b _08082484
.align 2, 0
_080823D4: .4byte 0x00004004
_080823D8:
ldr r1, _08082438 @ =0xFFFFBFFF
adds r0, r4, r1
lsls r0, r0, #3
strb r0, [r5, #0x15]
movs r0, #0x20
strb r0, [r5, #0xe]
movs r0, #4
strb r0, [r5, #0xc]
ldr r0, _0808243C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08082400
ldrh r0, [r5, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x11
strh r0, [r5, #0x24]
movs r0, #0x40
strb r0, [r5, #0xe]
_08082400:
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08082440 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldr r0, _08082444 @ =0x0000010F
bl sub_08004488
b _080824F6
.align 2, 0
_08082438: .4byte 0xFFFFBFFF
_0808243C: .4byte gUnk_03003F80
_08082440: .4byte gUnk_03000BF0
_08082444: .4byte 0x0000010F
_08082448:
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
movs r7, #0x2e
ldrsh r1, [r5, r7]
ldr r3, _08082480 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
bl sub_0805E780
b _080824F6
.align 2, 0
_08082480: .4byte gUnk_03000BF0
_08082484:
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0xd
bne _0808249A
adds r0, r5, #0
movs r1, #0
movs r2, #0
bl CreateFX
b _080824D8
_0808249A:
ldr r0, _080824E4 @ =0x00004005
cmp r4, r0
bne _080824D8
ldr r0, _080824E8 @ =gUnk_03003F80
adds r0, #0xab
movs r1, #4
strb r1, [r0]
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
movs r7, #0x2e
ldrsh r1, [r5, r7]
ldr r3, _080824EC @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_080824D8:
adds r0, r5, #0
movs r1, #0
bl sub_08082850
b _080824F6
.align 2, 0
_080824E4: .4byte 0x00004005
_080824E8: .4byte gUnk_03003F80
_080824EC: .4byte gUnk_03000BF0
_080824F0:
adds r0, r5, #0
bl sub_08078930
_080824F6:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080824F8
sub_080824F8: @ 0x080824F8
push {lr}
ldr r2, _0808250C @ =gUnk_0811F0A8
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808250C: .4byte gUnk_0811F0A8
thumb_func_start sub_08082510
sub_08082510: @ 0x08082510
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0x10]
movs r0, #0x80
movs r2, #0
orrs r0, r1
strb r0, [r5, #0x10]
ldr r0, _08082578 @ =gUnk_080FD340
str r0, [r5, #0x48]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #1
strb r0, [r1]
ldr r0, _0808257C @ =gLinkEntity
adds r0, #0x3b
ldrb r0, [r0]
subs r1, #4
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x63
strb r2, [r0]
adds r0, #0xd
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08082580 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldrb r0, [r5, #0xd]
adds r0, #1
strb r0, [r5, #0xd]
pop {r4, r5, r6, pc}
.align 2, 0
_08082578: .4byte gUnk_080FD340
_0808257C: .4byte gLinkEntity
_08082580: .4byte gUnk_03000BF0
thumb_func_start nullsub_511
nullsub_511: @ 0x08082584
bx lr
.align 2, 0
thumb_func_start sub_08082588
sub_08082588: @ 0x08082588
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0808259C
sub_0808259C: @ 0x0808259C
push {r4, lr}
adds r4, r0, #0
bl sub_080043E8
cmp r0, #2
beq _080825B8
cmp r0, #2
bhi _080825B2
cmp r0, #1
beq _080825BE
b _080825D0
_080825B2:
cmp r0, #3
beq _080825C4
b _080825D0
_080825B8:
adds r0, r4, #0
movs r1, #0xb
b _080825C8
_080825BE:
adds r0, r4, #0
movs r1, #0
b _080825C8
_080825C4:
adds r0, r4, #0
movs r1, #0xc
_080825C8:
movs r2, #0
bl CreateFX
b _080825E0
_080825D0:
ldr r1, _080825DC @ =gLinkEntity
adds r0, r4, #0
bl sub_08082850
b _080825E4
.align 2, 0
_080825DC: .4byte gLinkEntity
_080825E0:
bl sub_0805E780
_080825E4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080825E8
sub_080825E8: @ 0x080825E8
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_080825F0
sub_080825F0: @ 0x080825F0
push {lr}
adds r1, r0, #0
ldr r0, _08082604 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08082602
adds r0, r1, #0
bl sub_08082608
_08082602:
pop {pc}
.align 2, 0
_08082604: .4byte gUnk_03003F80
thumb_func_start sub_08082608
sub_08082608: @ 0x08082608
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
bx lr
.align 2, 0
thumb_func_start sub_08082614
sub_08082614: @ 0x08082614
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
bl sub_0800445C
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _08082638
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
bl sub_08016A6C
b _080826DC
_08082638:
adds r0, r5, #0
bl sub_0800442E
cmp r0, #0
bne _080826DC
movs r0, #1
strb r0, [r5, #0xc]
ldr r0, _080826A4 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08082658
ldrh r0, [r5, #0x24]
lsls r0, r0, #1
strh r0, [r5, #0x24]
_08082658:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _080826A8 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r4, #0x32
ldrsh r1, [r5, r4]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
adds r1, r5, #0
adds r1, #0x70
strh r0, [r1]
adds r0, r5, #0
bl sub_080002A0
adds r6, r4, #0
cmp r0, #0x72
bhi _080826AC
cmp r0, #0x71
blo _080826AC
adds r0, r5, #0
movs r1, #0
bl sub_08082850
b _080826DC
.align 2, 0
_080826A4: .4byte gUnk_03003F80
_080826A8: .4byte gUnk_03000BF0
_080826AC:
movs r0, #0x80
lsls r0, r0, #7
movs r7, #0x2e
ldrsh r1, [r5, r7]
ldr r3, _080826E0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r2, [r5, r7]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r6]
bl sub_0800015E
adds r0, r5, #0
bl sub_08078930
_080826DC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080826E0: .4byte gUnk_03000BF0
thumb_func_start sub_080826E4
sub_080826E4: @ 0x080826E4
push {lr}
ldr r2, _080826F8 @ =gUnk_0811F0C4
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080826F8: .4byte gUnk_0811F0C4
thumb_func_start sub_080826FC
sub_080826FC: @ 0x080826FC
movs r2, #0
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x30
strb r1, [r0, #0x1d]
strb r2, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_0808270C
sub_0808270C: @ 0x0808270C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _08082768 @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0808272A
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08082770
_0808272A:
adds r1, r5, #0
adds r1, #0x62
movs r0, #0
strb r0, [r1]
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0x80
lsls r0, r0, #7
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808276C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
b _08082776
.align 2, 0
_08082768: .4byte gUnk_03003F80
_0808276C: .4byte gUnk_03000BF0
_08082770:
adds r0, r5, #0
bl sub_0806F4E8
_08082776:
pop {r4, r5, r6, pc}
thumb_func_start sub_08082778
sub_08082778: @ 0x08082778
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xe]
cmp r1, #0
bne _080827C4
movs r0, #1
strb r0, [r5, #0xe]
adds r0, r5, #0
adds r0, #0x62
strb r1, [r0]
adds r1, r5, #0
adds r1, #0x63
movs r0, #0xfe
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080827E8 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_080827C4:
ldr r0, _080827EC @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _080827DE
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _080827F0
_080827DE:
adds r0, r5, #0
movs r1, #0
bl sub_08082850
b _080827F6
.align 2, 0
_080827E8: .4byte gUnk_03000BF0
_080827EC: .4byte gUnk_03003F80
_080827F0:
adds r0, r5, #0
bl sub_0806F3E4
_080827F6:
pop {r4, r5, r6, pc}
thumb_func_start sub_080827F8
sub_080827F8: @ 0x080827F8
push {lr}
adds r1, r0, #0
ldr r0, _08082810 @ =gUnk_03003F80
ldrb r0, [r0, #0x1c]
cmp r0, #0
bne _0808280C
adds r0, r1, #0
movs r1, #0
bl sub_08082850
_0808280C:
pop {pc}
.align 2, 0
_08082810: .4byte gUnk_03003F80
thumb_func_start nullsub_512
nullsub_512: @ 0x08082814
bx lr
.align 2, 0
thumb_func_start sub_08082818
sub_08082818: @ 0x08082818
push {lr}
movs r1, #0
bl sub_08082850
pop {pc}
.align 2, 0
thumb_func_start sub_08082824
sub_08082824: @ 0x08082824
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x20]
cmp r0, #0
bge _08082836
ldrb r0, [r4, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
_08082836:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0808284C
adds r0, r4, #0
movs r1, #0
bl sub_08082850
_0808284C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08082850
sub_08082850: @ 0x08082850
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldrb r1, [r4, #0xa]
adds r0, #0x7d
ldrb r2, [r0]
ldrb r3, [r4, #0xb]
adds r0, r4, #0
bl sub_0808288C
adds r2, r0, #0
adds r0, r4, #0
movs r1, #5
bl CreateFX
cmp r0, #0
beq _08082874
str r5, [r0, #0x50]
_08082874:
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _08082884
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_08082884:
bl sub_0805E780
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808288C
sub_0808288C: @ 0x0808288C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
adds r4, r1, #0
adds r5, r2, #0
mov r8, r3
movs r6, #0
cmp r4, #0
beq _080828A6
cmp r4, #0xff
bne _080828AA
b _080828D6
_080828A6:
movs r6, #0x80
b _080828D6
_080828AA:
adds r0, r7, #0
movs r1, #0
adds r2, r4, #0
adds r3, r5, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _080828D6
mov r0, r8
cmp r0, #2
bne _080828D4
movs r0, #5
strb r0, [r2, #0xe]
adds r0, r7, #0
adds r0, #0x86
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x86
strh r1, [r0]
b _080828D6
_080828D4:
strb r6, [r2, #0xe]
_080828D6:
adds r0, r6, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_080828E0
sub_080828E0: @ 0x080828E0
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080828F8
ldr r0, _080828F4 @ =gUnk_0811F15C
b _08082900
.align 2, 0
_080828F4: .4byte gUnk_0811F15C
_080828F8:
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08082914
ldr r0, _08082910 @ =gUnk_0811F14C
_08082900:
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _08082924
.align 2, 0
_08082910: .4byte gUnk_0811F14C
_08082914:
ldr r0, _08082928 @ =gUnk_0811F154
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_08082924:
pop {pc}
.align 2, 0
_08082928: .4byte gUnk_0811F154
thumb_func_start sub_0808292C
sub_0808292C: @ 0x0808292C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x11]
movs r3, #0x10
rsbs r3, r3, #0
adds r0, r3, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
ldr r5, _080829C8 @ =gLinkEntity
ldrb r1, [r5, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
movs r0, #7
ands r1, r0
mov r0, ip
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r0, [r5, #0x1a]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
ldrb r1, [r4, #0x1a]
ands r3, r1
orrs r3, r0
strb r3, [r4, #0x1a]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r5, #0x14]
cmp r0, #2
bne _080829A4
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_080829A4:
adds r0, r4, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080829CC
movs r0, #7
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #7
bl sub_080042AC
movs r0, #0xf3
bl sub_080A3268
b _080829E2
.align 2, 0
_080829C8: .4byte gLinkEntity
_080829CC:
movs r0, #0
strb r0, [r4, #0xe]
movs r0, #0xa
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x32]
subs r0, #0xe
strh r0, [r4, #0x32]
adds r0, r4, #0
movs r1, #0x14
bl sub_080042AC
_080829E2:
pop {r4, r5, pc}
thumb_func_start sub_080829E4
sub_080829E4: @ 0x080829E4
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _08082A10 @ =gLinkEntity
ldrb r1, [r0, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r5, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1a]
ldr r3, _08082A14 @ =gUnk_02000050
ldrb r0, [r3]
movs r1, #0x7f
ands r1, r0
cmp r1, #0
bne _08082A18
adds r0, r5, #0
bl sub_0805E7BC
b _08082AB4
.align 2, 0
_08082A10: .4byte gLinkEntity
_08082A14: .4byte gUnk_02000050
_08082A18:
cmp r1, #5
beq _08082A9C
ldrb r1, [r3, #1]
adds r0, r1, #0
cmp r0, #0xa
beq _08082A30
cmp r0, #0
beq _08082A30
movs r0, #0xf
ands r0, r1
cmp r0, #9
bls _08082A4A
_08082A30:
adds r1, r5, #0
adds r1, #0x58
ldrb r2, [r5, #0xf]
movs r0, #3
ldrb r1, [r1]
orrs r2, r0
cmp r1, r2
beq _08082A9C
adds r0, r5, #0
adds r1, r2, #0
bl sub_080042AC
b _08082AB4
_08082A4A:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08082A78
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x90
ands r0, r1
cmp r0, #0
beq _08082A9C
bl sub_08000E50
ldr r4, _08082A74 @ =gUnk_0811F16C
movs r1, #9
bl __modsi3
adds r0, r0, r4
ldrb r0, [r0]
strb r0, [r5, #0xf]
b _08082A8C
.align 2, 0
_08082A74: .4byte gUnk_0811F16C
_08082A78:
adds r2, r5, #0
adds r2, #0x58
ldr r1, _08082A98 @ =gUnk_0811F16C
ldrb r0, [r3, #1]
adds r0, r0, r1
ldrb r1, [r0]
ldrb r0, [r2]
cmp r0, r1
beq _08082A9C
strb r1, [r5, #0xf]
_08082A8C:
ldrb r1, [r5, #0xf]
adds r0, r5, #0
bl sub_080042AC
b _08082AB4
.align 2, 0
_08082A98: .4byte gUnk_0811F16C
_08082A9C:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #7
bls _08082AAA
movs r0, #1
b _08082AAC
_08082AAA:
movs r0, #0
_08082AAC:
strb r0, [r5, #0xe]
adds r0, r5, #0
bl sub_080042B8
_08082AB4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08082AB8
sub_08082AB8: @ 0x08082AB8
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08082B10 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r5, #0x80
ands r0, r5
cmp r0, #0
beq _08082ACC
bl sub_0805E780
_08082ACC:
adds r0, r4, #0
bl sub_080042B8
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08082B5C
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08082B98
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
movs r0, #0xa
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xe]
subs r5, r0, #1
adds r0, r4, #0
movs r1, #0x79
adds r2, r5, #0
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _08082B18
cmp r5, #0
bne _08082B14
str r1, [r4, #0x50]
b _08082B18
.align 2, 0
_08082B10: .4byte gUnk_03003F80
_08082B14:
ldr r0, [r4, #0x50]
str r0, [r1, #0x50]
_08082B18:
ldrb r0, [r4, #0xe]
cmp r0, #6
bne _08082B36
movs r0, #3
strb r0, [r4, #0xd]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xb]
adds r0, r4, #0
movs r1, #0x1c
bl sub_080042AC
b _08082B98
_08082B36:
ldr r1, _08082B58 @ =gUnk_0811F178
ldrb r0, [r4, #0xe]
subs r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl sub_080042AC
ldrb r0, [r4, #0xe]
cmp r0, #2
bls _08082B98
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
b _08082B98
.align 2, 0
_08082B58: .4byte gUnk_0811F178
_08082B5C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _08082B98
bl sub_08000E50
movs r1, #3
ands r0, r1
strb r0, [r4, #0xe]
cmp r0, #0
beq _08082B98
bl sub_08000E50
movs r1, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0xe]
adds r1, #0x1b
adds r0, r4, #0
bl sub_080042AC
_08082B98:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08082B9C
sub_08082B9C: @ 0x08082B9C
push {r4, r5, r6, lr}
adds r6, r0, #0
ldrb r1, [r6, #0x11]
movs r2, #0x10
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r6, #0x11]
ldr r5, _08082C34 @ =gLinkEntity
ldrb r0, [r5, #0x1a]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
ldrb r1, [r6, #0x1a]
ands r2, r1
orrs r2, r0
strb r2, [r6, #0x1a]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r6, #0
adds r0, #0x38
movs r4, #0
strb r1, [r0]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r6, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r6, #0x18]
movs r0, #1
strb r0, [r6, #0xc]
adds r0, r6, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
adds r0, r6, #0
movs r1, #0xc
bl sub_080042AC
adds r0, r6, #0
adds r0, #0x82
strh r4, [r0]
adds r4, r6, #0
adds r4, #0x84
ldr r1, [r4]
adds r0, r6, #0
bl sub_0807DF74
ldr r1, [r4]
adds r0, r6, #0
bl sub_08082D20
ldrb r0, [r5, #0x14]
cmp r0, #2
bne _08082C2C
ldrb r0, [r6, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r6, #0x18]
_08082C2C:
adds r0, r6, #0
bl sub_08082C5C
pop {r4, r5, r6, pc}
.align 2, 0
_08082C34: .4byte gLinkEntity
thumb_func_start sub_08082C38
sub_08082C38: @ 0x08082C38
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x84
ldr r1, [r4]
bl sub_0807DF74
ldr r1, [r4]
adds r0, r5, #0
bl sub_08082D20
ldrb r0, [r5, #0xc]
cmp r0, #1
bhi _08082C5A
adds r0, r5, #0
bl sub_08082C5C
_08082C5A:
pop {r4, r5, pc}
thumb_func_start sub_08082C5C
sub_08082C5C: @ 0x08082C5C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xd]
cmp r0, #4
bhi _08082D0C
lsls r0, r0, #2
ldr r1, _08082C70 @ =_08082C74
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08082C70: .4byte _08082C74
_08082C74: @ jump table
.4byte _08082C88 @ case 0
.4byte _08082C9C @ case 1
.4byte _08082CB0 @ case 2
.4byte _08082CE4 @ case 3
.4byte _08082CF8 @ case 4
_08082C88:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0x17
beq _08082D0C
adds r0, r5, #0
movs r1, #0x17
bl sub_080042AC
b _08082D1C
_08082C9C:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0x18
beq _08082D0C
adds r0, r5, #0
movs r1, #0x18
bl sub_080042AC
b _08082D1C
_08082CB0:
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08082D0C
bl sub_08000E50
adds r4, r0, #0
bl sub_08000E50
adds r1, r0, #0
ldr r2, _08082CE0 @ =gUnk_0811F18C
movs r0, #3
ands r4, r0
adds r4, r4, r2
ands r1, r0
ldrb r4, [r4]
adds r1, r1, r4
adds r0, r5, #0
bl sub_080042AC
b _08082D1C
.align 2, 0
_08082CE0: .4byte gUnk_0811F18C
_08082CE4:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0x13
beq _08082D0C
adds r0, r5, #0
movs r1, #0x13
bl sub_080042AC
b _08082D1C
_08082CF8:
adds r0, r5, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0x1a
beq _08082D0C
adds r0, r5, #0
movs r1, #0x1a
bl sub_080042AC
b _08082D1C
_08082D0C:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r5, #0
bl sub_08003FC4
adds r0, r5, #0
bl sub_080042B8
_08082D1C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08082D20
sub_08082D20: @ 0x08082D20
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r3, r1, #0
ldr r0, [r3, #8]
cmp r0, #0
beq _08082E10
movs r6, #0
movs r5, #1
movs r0, #4
rsbs r0, r0, #0
mov ip, r0
_08082D36:
ldr r1, [r3, #8]
mvns r0, r1
adds r2, r0, #1
ands r2, r1
eors r1, r2
str r1, [r3, #8]
cmp r2, #0x80
beq _08082DB4
cmp r2, #0x80
bhi _08082D66
cmp r2, #4
beq _08082D9E
cmp r2, #4
bhi _08082D5C
cmp r2, #1
beq _08082D96
cmp r2, #2
beq _08082D9A
b _08082E0A
_08082D5C:
cmp r2, #8
beq _08082DA4
cmp r2, #0x40
beq _08082DDA
b _08082E0A
_08082D66:
movs r0, #0x80
lsls r0, r0, #0xd
cmp r2, r0
beq _08082DDE
cmp r2, r0
bhi _08082D84
movs r0, #0x80
lsls r0, r0, #1
cmp r2, r0
beq _08082DAA
movs r0, #0x80
lsls r0, r0, #0xa
cmp r2, r0
beq _08082DC0
b _08082E0A
_08082D84:
movs r0, #0x80
lsls r0, r0, #0xe
cmp r2, r0
beq _08082DE6
movs r0, #0x80
lsls r0, r0, #0xf
cmp r2, r0
beq _08082DF2
b _08082E0A
_08082D96:
strb r6, [r4, #0xd]
b _08082E0A
_08082D9A:
strb r5, [r4, #0xd]
b _08082E0A
_08082D9E:
movs r0, #2
strb r0, [r4, #0xd]
b _08082E0A
_08082DA4:
movs r0, #3
strb r0, [r4, #0xd]
b _08082E0A
_08082DAA:
ldrb r0, [r4, #0x18]
mov r1, ip
ands r0, r1
strb r0, [r4, #0x18]
b _08082E0A
_08082DB4:
ldrb r0, [r4, #0x18]
mov r7, ip
ands r0, r7
orrs r0, r5
strb r0, [r4, #0x18]
b _08082E0A
_08082DC0:
ldrb r0, [r4, #0x18]
lsls r1, r0, #0x19
lsrs r1, r1, #0x1f
eors r1, r5
ands r1, r5
lsls r1, r1, #6
movs r7, #0x41
rsbs r7, r7, #0
adds r2, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
b _08082E0A
_08082DDA:
bl sub_0805E780
_08082DDE:
movs r0, #2
strb r0, [r4, #0xc]
strb r6, [r4, #0xd]
b _08082E10
_08082DE6:
movs r0, #4
strb r0, [r4, #0xd]
adds r1, r4, #0
adds r1, #0x62
strb r0, [r1]
b _08082E0A
_08082DF2:
movs r0, #3
strb r0, [r4, #0xc]
strb r6, [r4, #0xd]
adds r1, r4, #0
adds r1, #0x62
movs r0, #4
strb r0, [r1]
adds r0, r4, #0
movs r1, #0x1b
bl sub_080042AC
b _08082E10
_08082E0A:
ldr r0, [r3, #8]
cmp r0, #0
bne _08082D36
_08082E10:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08082E14
sub_08082E14: @ 0x08082E14
push {r4, lr}
adds r4, r0, #0
adds r0, #0x84
ldr r1, [r0]
adds r0, r4, #0
bl sub_0807DF74
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _08082E38
cmp r0, #1
beq _08082E44
b _08082E5E
_08082E38:
ldr r0, [r4, #0x20]
cmp r0, #0
bge _08082E5E
movs r0, #1
strb r0, [r4, #0xd]
b _08082E5E
_08082E44:
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0xa
rsbs r0, r0, #0
cmp r1, r0
ble _08082E5E
ldr r0, _08082E68 @ =gUnk_02033280
ldr r1, [r0]
movs r2, #2
orrs r1, r2
str r1, [r0]
bl sub_0805E780
_08082E5E:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_08082E68: .4byte gUnk_02033280
thumb_func_start sub_08082E6C
sub_08082E6C: @ 0x08082E6C
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08082E98
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x62
strb r1, [r0]
adds r0, r4, #0
movs r1, #0x17
bl sub_080042AC
_08082E98:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08082E9C
sub_08082E9C: @ 0x08082E9C
push {lr}
ldr r2, _08082EB0 @ =gUnk_0811F624
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08082EB0: .4byte gUnk_0811F624
thumb_func_start sub_08082EB4
sub_08082EB4: @ 0x08082EB4
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r0, _08082EE0 @ =gUnk_03000BF0
ldrb r1, [r0, #4]
adds r6, r0, #0
cmp r1, #0x11
bne _08082EF6
adds r0, r4, #0
bl sub_080AE068
ldr r1, _08082EE4 @ =0x000001C1
adds r0, r4, #0
bl sub_080ADF80
cmp r0, #0
bne _08082EE8
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _0808308E
.align 2, 0
_08082EE0: .4byte gUnk_03000BF0
_08082EE4: .4byte 0x000001C1
_08082EE8:
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x18]
_08082EF6:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x20
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0x88
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldrh r1, [r6, #6]
subs r0, r0, r1
asrs r5, r0, #4
movs r2, #0x3f
ands r5, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r6, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
ldrb r1, [r4, #0xa]
lsls r1, r1, #3
ldrh r0, [r4, #0x2e]
adds r0, r1, r0
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
adds r1, r1, r0
strh r1, [r4, #0x32]
ldr r1, _08082F6C @ =gUnk_0811F64C
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
adds r0, r4, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
bl sub_080002B0
str r0, [r4, #0x68]
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _08082F7A
cmp r0, #1
bgt _08082F70
cmp r0, #0
beq _08082F76
b _08082FF0
.align 2, 0
_08082F6C: .4byte gUnk_0811F64C
_08082F70:
cmp r0, #2
beq _08082F9A
b _08082FF0
_08082F76:
adds r0, r5, #0
b _08082FE8
_08082F7A:
adds r0, r5, #0
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #1
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x40
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x41
b _08082FE8
_08082F9A:
adds r0, r5, #0
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #1
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #2
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x40
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x41
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x42
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x80
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x81
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x82
_08082FE8:
adds r1, r4, #0
bl sub_080832D8
b _08083088
_08082FF0:
adds r0, r5, #0
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #1
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #2
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #3
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x40
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x41
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x42
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x43
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x80
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x81
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x82
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0x83
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0xc0
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0xc1
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0xc2
adds r1, r4, #0
bl sub_080832D8
adds r0, r5, #0
adds r0, #0xc3
adds r1, r4, #0
bl sub_080832D8
_08083088:
ldr r0, _08083090 @ =0x0000010F
bl sub_08004488
_0808308E:
pop {r4, r5, r6, pc}
.align 2, 0
_08083090: .4byte 0x0000010F
thumb_func_start sub_08083094
sub_08083094: @ 0x08083094
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_0800445C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080830B4
adds r0, r4, #0
bl sub_080830B8
_080830B4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080830B8
sub_080830B8: @ 0x080830B8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov sb, r0
ldrb r5, [r0, #0xa]
lsls r4, r5, #3
movs r1, #0x2e
ldrsh r0, [r0, r1]
subs r0, r0, r4
ldr r3, _080830FC @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r7, r0, #4
movs r2, #0x3f
ands r7, r2
mov r6, sb
movs r1, #0x32
ldrsh r0, [r6, r1]
subs r0, r0, r4
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r7, r0
cmp r5, #1
beq _08083128
cmp r5, #1
bgt _08083100
cmp r5, #0
beq _08083106
b _080831EC
.align 2, 0
_080830FC: .4byte gUnk_03000BF0
_08083100:
cmp r5, #2
beq _08083160
b _080831EC
_08083106:
mov r0, sb
bl sub_0800442E
cmp r0, #0
beq _08083112
b _080832C0
_08083112:
ldr r0, _08083124 @ =0x00000365
mov r1, sb
adds r1, #0x38
ldrb r2, [r1]
adds r1, r7, #0
bl sub_0807B7D8
b _080832BA
.align 2, 0
_08083124: .4byte 0x00000365
_08083128:
mov r2, sb
ldr r0, [r2, #0x68]
mov r4, sb
adds r4, #0x38
ldrb r2, [r4]
adds r1, r7, #0
bl sub_0807B7D8
ldr r0, _08083158 @ =0x0000036F
adds r1, r7, #1
ldrb r2, [r4]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
adds r1, r7, #0
adds r1, #0x40
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _0808315C @ =0x00000371
adds r1, r7, #0
adds r1, #0x41
b _080831CA
.align 2, 0
_08083158: .4byte 0x0000036F
_0808315C: .4byte 0x00000371
_08083160:
mov r6, sb
ldr r0, [r6, #0x68]
mov r4, sb
adds r4, #0x38
ldrb r2, [r4]
adds r1, r7, #0
bl sub_0807B7D8
ldr r0, _080831D4 @ =0x00000372
adds r1, r7, #1
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _080831D8 @ =0x0000036F
adds r1, r7, #2
ldrb r2, [r4]
bl sub_0807B7D8
movs r0, #0xdd
lsls r0, r0, #2
adds r1, r7, #0
adds r1, #0x40
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _080831DC @ =0x00000376
adds r1, r7, #0
adds r1, #0x41
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _080831E0 @ =0x00000375
adds r1, r7, #0
adds r1, #0x42
ldrb r2, [r4]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
adds r1, r7, #0
adds r1, #0x80
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _080831E4 @ =0x00000373
adds r1, r7, #0
adds r1, #0x81
ldrb r2, [r4]
bl sub_0807B7D8
ldr r0, _080831E8 @ =0x00000371
adds r1, r7, #0
adds r1, #0x82
_080831CA:
ldrb r2, [r4]
bl sub_0807B7D8
b _080832BA
.align 2, 0
_080831D4: .4byte 0x00000372
_080831D8: .4byte 0x0000036F
_080831DC: .4byte 0x00000376
_080831E0: .4byte 0x00000375
_080831E4: .4byte 0x00000373
_080831E8: .4byte 0x00000371
_080831EC:
mov r1, sb
ldr r0, [r1, #0x68]
mov r4, sb
adds r4, #0x38
ldrb r2, [r4]
adds r1, r7, #0
bl sub_0807B7D8
ldr r5, _080832C8 @ =0x00000372
adds r1, r7, #1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
adds r1, r7, #2
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
ldr r0, _080832CC @ =0x0000036F
adds r1, r7, #3
ldrb r2, [r4]
bl sub_0807B7D8
movs r2, #0xdd
lsls r2, r2, #2
mov r8, r2
adds r1, r7, #0
adds r1, #0x40
ldrb r2, [r4]
mov r0, r8
bl sub_0807B7D8
adds r5, #4
adds r1, r7, #0
adds r1, #0x41
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0x42
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
ldr r6, _080832D0 @ =0x00000375
adds r1, r7, #0
adds r1, #0x43
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0x80
ldrb r2, [r4]
mov r0, r8
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0x81
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0x82
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0x83
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
adds r1, r7, #0
adds r1, #0xc0
ldrb r2, [r4]
bl sub_0807B7D8
subs r5, #3
adds r1, r7, #0
adds r1, #0xc1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
adds r1, r7, #0
adds r1, #0xc2
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0807B7D8
ldr r0, _080832D4 @ =0x00000371
adds r1, r7, #0
adds r1, #0xc3
ldrb r2, [r4]
bl sub_0807B7D8
_080832BA:
mov r0, sb
bl sub_0805E7BC
_080832C0:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080832C8: .4byte 0x00000372
_080832CC: .4byte 0x0000036F
_080832D0: .4byte 0x00000375
_080832D4: .4byte 0x00000371
thumb_func_start sub_080832D8
sub_080832D8: @ 0x080832D8
push {lr}
adds r3, r0, #0
adds r2, r1, #0
adds r2, #0x38
ldrb r0, [r2]
cmp r0, #2
beq _080832FC
ldrb r1, [r1, #0x15]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080832F6
ldrb r2, [r2]
movs r0, #0x21
b _0808330A
_080832F6:
ldrb r2, [r2]
movs r0, #0x20
b _0808330A
_080832FC:
ldrb r1, [r1, #0x15]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08083312
ldrb r2, [r2]
movs r0, #0x2f
_0808330A:
adds r1, r3, #0
bl sub_0807B7D8
b _0808331C
_08083312:
ldrb r2, [r2]
movs r0, #0x2e
adds r1, r3, #0
bl sub_0807B7D8
_0808331C:
pop {pc}
.align 2, 0
thumb_func_start sub_08083320
sub_08083320: @ 0x08083320
push {lr}
ldr r2, _08083334 @ =gUnk_0811F65C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08083334: .4byte gUnk_0811F65C
thumb_func_start sub_08083338
sub_08083338: @ 0x08083338
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x84
ldrh r1, [r2]
ldr r0, _08083400 @ =0x0000FFFF
cmp r1, r0
beq _08083356
adds r0, r1, #0
bl sub_0807CBE4
cmp r0, #0
beq _08083356
bl sub_0805E780
_08083356:
adds r0, r4, #0
bl sub_080837B0
cmp r0, #0
bne _08083362
b _080834B2
_08083362:
ldrb r2, [r4, #0xa]
lsrs r0, r2, #2
movs r1, #3
ands r0, r1
strb r0, [r4, #0xb]
movs r7, #3
adds r0, r7, #0
ands r0, r2
strb r0, [r4, #0x1e]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
ldrb r1, [r4, #0xa]
adds r0, r7, #0
ands r0, r1
adds r6, r4, #0
adds r6, #0x7e
strb r0, [r6]
ldr r0, _08083404 @ =gUnk_080FD170
str r0, [r4, #0x48]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0xa]
movs r0, #0xf
ands r0, r1
adds r1, r4, #0
adds r1, #0x5a
strb r0, [r1]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08083408 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x76
strh r1, [r5]
ldrh r0, [r5]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x74
strh r0, [r1]
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _08083438
cmp r0, #1
bgt _0808340C
cmp r0, #0
beq _08083412
b _080834AE
.align 2, 0
_08083400: .4byte 0x0000FFFF
_08083404: .4byte gUnk_080FD170
_08083408: .4byte gUnk_03000BF0
_0808340C:
cmp r0, #2
beq _08083456
b _080834AE
_08083412:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0808342E
ldrb r1, [r4, #0xa]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0808344E
strb r7, [r4, #0xc]
b _080834B2
_0808342E:
ldrb r1, [r4, #0xa]
movs r0, #0xef
ands r0, r1
strb r0, [r4, #0xa]
b _08083446
_08083438:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0808344E
_08083446:
adds r0, r4, #0
bl sub_08083638
b _080834B2
_0808344E:
adds r0, r4, #0
bl sub_080836A0
b _080834B2
_08083456:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080834A8
ldrb r0, [r4, #0x1e]
movs r1, #4
orrs r0, r1
strb r0, [r4, #0x1e]
ldrb r1, [r6]
ldrh r2, [r5]
adds r0, r4, #0
bl sub_080836DC
bl sub_08052660
cmp r0, #0
bne _08083484
movs r0, #5
strb r0, [r4, #0xc]
b _080834B2
_08083484:
movs r0, #8
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080787CC
ldr r1, _080834A4 @ =gUnk_0811F740
ldrb r0, [r6]
adds r0, r0, r1
ldrb r2, [r0]
adds r0, r4, #0
movs r1, #0
movs r3, #0
bl sub_08078850
b _080834B2
.align 2, 0
_080834A4: .4byte gUnk_0811F740
_080834A8:
bl sub_0805E780
b _080834B2
_080834AE:
bl sub_0805E780
_080834B2:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080834B4
sub_080834B4: @ 0x080834B4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080834E6
movs r0, #2
strb r0, [r2, #0xc]
movs r0, #7
strb r0, [r2, #0xe]
adds r0, r2, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r2, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldr r0, _080834E8 @ =0x0000010B
bl sub_08004488
_080834E6:
pop {pc}
.align 2, 0
_080834E8: .4byte 0x0000010B
thumb_func_start sub_080834EC
sub_080834EC: @ 0x080834EC
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08083516
ldrb r1, [r4, #0xa]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08083512
adds r0, r4, #0
bl sub_08083638
b _08083516
_08083512:
bl sub_0805E780
_08083516:
pop {r4, pc}
thumb_func_start sub_08083518
sub_08083518: @ 0x08083518
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7e
ldrb r1, [r5]
bl sub_08083734
cmp r0, #0
beq _0808353C
movs r0, #4
strb r0, [r4, #0xc]
ldrb r1, [r5]
adds r0, r4, #0
adds r0, #0x76
ldrh r2, [r0]
adds r0, r4, #0
bl sub_080836DC
_0808353C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08083540
sub_08083540: @ 0x08083540
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808358C
ldrb r1, [r4, #0xa]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08083566
movs r0, #0xef
ands r0, r1
strb r0, [r4, #0xa]
b _0808356E
_08083566:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08083576
_0808356E:
adds r0, r4, #0
bl sub_080836A0
b _0808357A
_08083576:
movs r0, #5
strb r0, [r4, #0xc]
_0808357A:
adds r0, r4, #0
adds r0, #0x7e
ldrb r1, [r0]
adds r0, r4, #0
bl sub_08083814
ldr r0, _08083590 @ =0x0000010B
bl sub_08004488
_0808358C:
pop {r4, pc}
.align 2, 0
_08083590: .4byte 0x0000010B
thumb_func_start nullsub_513
nullsub_513: @ 0x08083594
bx lr
.align 2, 0
thumb_func_start sub_08083598
sub_08083598: @ 0x08083598
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080835B2
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080835C6
b _080835C0
_080835B2:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080835C6
_080835C0:
adds r0, r4, #0
bl sub_08083658
_080835C6:
pop {r4, pc}
thumb_func_start sub_080835C8
sub_080835C8: @ 0x080835C8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _080835E2
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080835F4
b _080835F0
_080835E2:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080835F4
_080835F0:
movs r0, #3
strb r0, [r4, #0xc]
_080835F4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080835F8
sub_080835F8: @ 0x080835F8
push {r4, lr}
adds r4, r0, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bne _08083616
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08083636
_08083616:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x14
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08083658
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
movs r0, #1
rsbs r0, r0, #0
bl sub_080526F8
_08083636:
pop {r4, pc}
thumb_func_start sub_08083638
sub_08083638: @ 0x08083638
adds r2, r0, #0
movs r0, #7
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
subs r0, #0xb
ands r0, r1
strb r0, [r2, #0x18]
adds r0, r2, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r2, #0x2e]
adds r0, r2, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r2, #0x32]
bx lr
thumb_func_start sub_08083658
sub_08083658: @ 0x08083658
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x14
strb r1, [r0, #0xe]
adds r2, r0, #0
adds r2, #0x7e
ldrb r1, [r2]
lsls r1, r1, #3
strb r1, [r0, #0x15]
ldrb r2, [r2]
lsls r2, r2, #1
ldr r1, _08083698 @ =gUnk_0811F680
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrh r3, [r0, #0x2e]
adds r1, r1, r3
strh r1, [r0, #0x2e]
movs r1, #1
ldrsb r1, [r2, r1]
ldrh r2, [r0, #0x32]
adds r1, r1, r2
strh r1, [r0, #0x32]
movs r1, #0x3c
bl sub_0805E4E0
ldr r0, _0808369C @ =0x0000010B
bl sub_080A3268
pop {pc}
.align 2, 0
_08083698: .4byte gUnk_0811F680
_0808369C: .4byte 0x0000010B
thumb_func_start sub_080836A0
sub_080836A0: @ 0x080836A0
push {lr}
adds r2, r0, #0
movs r0, #6
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
subs r0, #0xa
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
adds r0, r2, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r2, #0x2e]
adds r0, r2, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r2, #0x32]
ldr r0, _080836D8 @ =0x00004022
adds r1, r2, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
pop {pc}
.align 2, 0
_080836D8: .4byte 0x00004022
thumb_func_start sub_080836DC
sub_080836DC: @ 0x080836DC
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r2, #0
ldr r0, _0808372C @ =0x00004022
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
movs r0, #7
strb r0, [r5, #0xe]
ldrb r1, [r5, #0x18]
subs r0, #0xb
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
lsls r0, r4, #3
movs r1, #0x10
eors r0, r1
strb r0, [r5, #0x15]
lsls r4, r4, #1
ldr r0, _08083730 @ =gUnk_0811F688
adds r4, r4, r0
ldrb r0, [r5, #0xb]
cmp r0, #2
beq _08083728
movs r0, #0
ldrsb r0, [r4, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
movs r0, #1
ldrsb r0, [r4, r0]
ldrh r1, [r5, #0x32]
adds r0, r0, r1
strh r0, [r5, #0x32]
_08083728:
pop {r4, r5, pc}
.align 2, 0
_0808372C: .4byte 0x00004022
_08083730: .4byte gUnk_0811F688
thumb_func_start sub_08083734
sub_08083734: @ 0x08083734
push {lr}
adds r2, r0, #0
cmp r1, #1
beq _08083760
cmp r1, #1
blo _0808374A
cmp r1, #2
beq _08083774
cmp r1, #3
beq _08083790
b _080837AC
_0808374A:
adds r0, r2, #0
adds r0, #0x72
ldrh r1, [r0]
ldr r0, _0808375C @ =gLinkEntity
movs r2, #0x32
ldrsh r0, [r0, r2]
subs r0, #0xd
b _0808379E
.align 2, 0
_0808375C: .4byte gLinkEntity
_08083760:
ldr r0, _08083770 @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r0, r1]
adds r0, #0xb
adds r1, r2, #0
adds r1, #0x70
b _08083780
.align 2, 0
_08083770: .4byte gLinkEntity
_08083774:
ldr r0, _0808378C @ =gLinkEntity
movs r1, #0x32
ldrsh r0, [r0, r1]
adds r0, #8
adds r1, r2, #0
adds r1, #0x72
_08083780:
ldrh r1, [r1]
subs r0, r0, r1
cmp r0, #0
bge _080837AC
movs r0, #1
b _080837AE
.align 2, 0
_0808378C: .4byte gLinkEntity
_08083790:
adds r0, r2, #0
adds r0, #0x70
ldrh r1, [r0]
ldr r0, _080837A8 @ =gLinkEntity
movs r2, #0x2e
ldrsh r0, [r0, r2]
subs r0, #0xa
_0808379E:
subs r1, r1, r0
cmp r1, #0
bge _080837AC
movs r0, #1
b _080837AE
.align 2, 0
_080837A8: .4byte gLinkEntity
_080837AC:
movs r0, #0
_080837AE:
pop {pc}
thumb_func_start sub_080837B0
sub_080837B0: @ 0x080837B0
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _080837C8 @ =gUnk_03000BF0
ldrb r2, [r0, #4]
cmp r2, #0x3f
bhi _080837DC
cmp r2, #0x25
beq _080837CC
cmp r2, #0x35
beq _080837D4
movs r5, #0xa
b _080837E8
.align 2, 0
_080837C8: .4byte gUnk_03000BF0
_080837CC:
ldr r5, _080837D0 @ =0x000001E7
b _080837E8
.align 2, 0
_080837D0: .4byte 0x000001E7
_080837D4:
ldr r5, _080837D8 @ =0x000001C3
b _080837E8
.align 2, 0
_080837D8: .4byte 0x000001C3
_080837DC:
ldr r1, _080837F8 @ =gUnk_0811F690
adds r0, r2, #0
subs r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
ldrh r5, [r0]
_080837E8:
cmp r2, #0x68
bne _080837FC
adds r0, r4, #0
movs r1, #0
bl sub_0801D2B4
b _08083808
.align 2, 0
_080837F8: .4byte gUnk_0811F690
_080837FC:
cmp r2, #0x88
bne _08083808
adds r0, r4, #0
movs r1, #1
bl sub_0801D2B4
_08083808:
adds r0, r4, #0
adds r1, r5, #0
bl sub_080ADF80
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08083814
sub_08083814: @ 0x08083814
push {r4, r5, lr}
adds r5, r0, #0
lsls r1, r1, #2
ldr r0, _08083868 @ =gUnk_0811F730
adds r4, r1, r0
adds r0, r5, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _08083842
movs r0, #0
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
_08083842:
adds r0, r5, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _08083866
movs r0, #2
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
movs r0, #3
ldrsb r0, [r4, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
_08083866:
pop {r4, r5, pc}
.align 2, 0
_08083868: .4byte gUnk_0811F730
thumb_func_start sub_0808386C
sub_0808386C: @ 0x0808386C
push {r4, lr}
adds r4, r0, #0
ldr r0, _080838C8 @ =gUnk_03003F80
adds r0, #0x27
ldrb r1, [r0]
rsbs r0, r1, #0
orrs r0, r1
lsrs r2, r0, #0x1f
ldr r0, _080838CC @ =gUnk_02022740
ldrb r0, [r0]
cmp r0, #2
bgt _08083894
cmp r0, #0
blt _08083894
ldr r0, _080838D0 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _080838AC
_08083894:
ldr r0, _080838D4 @ =gUnk_03003DF0
ldr r0, [r0, #4]
ldrb r0, [r0, #3]
cmp r0, #0x32
bne _080838AA
movs r0, #0x32
bl sub_0801E7F4
movs r2, #0
cmp r0, #0
beq _080838AC
_080838AA:
movs r2, #1
_080838AC:
cmp r2, #0
beq _080838B6
adds r0, r4, #0
bl sub_080838DC
_080838B6:
ldr r0, _080838D8 @ =gUnk_0811F754
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_080838C8: .4byte gUnk_03003F80
_080838CC: .4byte gUnk_02022740
_080838D0: .4byte gUnk_02000050
_080838D4: .4byte gUnk_03003DF0
_080838D8: .4byte gUnk_0811F754
thumb_func_start sub_080838DC
sub_080838DC: @ 0x080838DC
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
strb r1, [r0, #0x18]
ldrb r2, [r0, #0x1b]
movs r3, #0x3f
adds r1, r3, #0
ands r1, r2
movs r2, #0x40
orrs r1, r2
strb r1, [r0, #0x1b]
ldrb r1, [r0, #0x19]
ands r3, r1
strb r3, [r0, #0x19]
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
movs r1, #8
rsbs r1, r1, #0
ands r1, r2
strb r1, [r3]
movs r2, #0
movs r1, #4
strb r1, [r0, #0xe]
str r2, [r0, #0x54]
strb r2, [r0, #0xc]
bx lr
thumb_func_start sub_08083914
sub_08083914: @ 0x08083914
push {r4, lr}
adds r4, r0, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #1
beq _08083942
adds r0, r4, #0
movs r1, #1
movs r2, #1
bl sub_080AE008
adds r0, r4, #0
adds r0, #0x60
ldrh r1, [r0]
subs r1, #0x10
strh r1, [r0]
ldr r1, _08083958 @ =0x01027820
movs r0, #1
bl sub_080ADDD8
adds r0, r4, #0
bl sub_080838DC
_08083942:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
pop {r4, pc}
.align 2, 0
_08083958: .4byte 0x01027820
thumb_func_start sub_0808395C
sub_0808395C: @ 0x0808395C
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
cmp r0, #0
beq _0808396C
subs r0, #1
strb r0, [r2, #0xe]
b _08083992
_0808396C:
ldr r3, _08083994 @ =gUnk_03003DF0
ldr r0, [r3, #4]
ldr r1, [r0, #8]
cmp r1, #0
beq _08083992
ldrb r0, [r0, #3]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x63
bhi _08083992
str r1, [r2, #0x54]
ldrb r0, [r3, #3]
adds r1, r2, #0
adds r1, #0x39
strb r0, [r1]
adds r0, r2, #0
bl sub_08083A40
_08083992:
pop {pc}
.align 2, 0
_08083994: .4byte gUnk_03003DF0
thumb_func_start sub_08083998
sub_08083998: @ 0x08083998
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _080839C8
ldr r0, _080839C4 @ =gUnk_03003DF0
ldr r2, [r0, #4]
ldrb r0, [r2, #3]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x63
bhi _080839BA
ldr r1, [r4, #0x54]
ldr r0, [r2, #8]
cmp r1, r0
beq _080839C8
_080839BA:
adds r0, r4, #0
bl sub_080838DC
b _08083A32
.align 2, 0
_080839C4: .4byte gUnk_03003DF0
_080839C8:
ldr r1, [r4, #0x54]
ldr r0, [r1, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r1, #0x30]
str r0, [r4, #0x30]
ldr r0, [r1, #0x34]
str r0, [r4, #0x34]
adds r1, r4, #0
adds r1, #0x5a
ldrb r0, [r1]
cmp r0, #1
bne _08083A2C
movs r0, #0
strb r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080839F8
ldr r0, _080839F4 @ =gUnk_03003DF0
ldr r0, [r0, #4]
ldrb r0, [r0, #3]
b _080839FA
.align 2, 0
_080839F4: .4byte gUnk_03003DF0
_080839F8:
ldrb r0, [r4, #0xb]
_080839FA:
lsls r0, r0, #3
ldr r1, _08083A34 @ =gUnk_080C9CBC
adds r0, r0, r1
ldrb r2, [r0, #6]
movs r1, #1
ands r1, r2
ldrb r3, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r4, #0x1a]
ldr r0, _08083A38 @ =gUnk_0811F744
lsls r2, r2, #2
adds r2, r2, r0
ldr r1, [r2]
lsrs r2, r1, #0x1f
ldr r0, _08083A3C @ =0x00FFFFFF
ands r1, r0
orrs r1, r2
adds r0, #1
orrs r1, r0
movs r0, #0
bl sub_080ADDD8
_08083A2C:
adds r0, r4, #0
bl sub_08004274
_08083A32:
pop {r4, pc}
.align 2, 0
_08083A34: .4byte gUnk_080C9CBC
_08083A38: .4byte gUnk_0811F744
_08083A3C: .4byte 0x00FFFFFF
thumb_func_start sub_08083A40
sub_08083A40: @ 0x08083A40
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #2
strb r0, [r4, #0xc]
ldr r0, [r4, #0x54]
ldr r1, _08083A70 @ =gLinkEntity
movs r3, #0x2e
ldrsh r2, [r0, r3]
movs r3, #0x2e
ldrsh r0, [r1, r3]
cmp r2, r0
ble _08083A74
movs r1, #0
adds r2, r4, #0
adds r2, #0x62
movs r0, #8
b _08083A7C
.align 2, 0
_08083A70: .4byte gLinkEntity
_08083A74:
movs r1, #1
adds r2, r4, #0
adds r2, #0x62
movs r0, #0xf8
_08083A7C:
strb r0, [r2]
adds r2, r4, #0
adds r2, #0x63
movs r0, #0xee
strb r0, [r2]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08083998
pop {r4, pc}
thumb_func_start sub_08083A94
sub_08083A94: @ 0x08083A94
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
ldrb r0, [r6, #0xc]
cmp r0, #0
bne _08083B24
movs r0, #1
mov r8, r0
mov r2, r8
strb r2, [r6, #0xc]
ldr r0, _08083B10 @ =gUnk_080FD170
str r0, [r6, #0x48]
adds r7, r6, #0
adds r7, #0x38
ldrb r0, [r7]
movs r1, #0x34
cmp r0, #1
bne _08083ABC
movs r1, #0x26
_08083ABC:
adds r4, r6, #0
adds r4, #0x70
strh r1, [r4]
adds r0, r6, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08083B1C
ldrh r0, [r4]
movs r3, #0x2e
ldrsh r1, [r6, r3]
ldr r5, _08083B14 @ =gUnk_03000BF0
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r7]
bl sub_0807B314
ldrh r1, [r5]
mov r0, r8
ands r0, r1
cmp r0, #0
beq _08083B08
ldr r1, _08083B18 @ =gUnk_02000070
movs r0, #0
strb r0, [r1]
_08083B08:
bl sub_0805E780
b _08083B7E
.align 2, 0
_08083B10: .4byte gUnk_080FD170
_08083B14: .4byte gUnk_03000BF0
_08083B18: .4byte gUnk_02000070
_08083B1C:
adds r0, r6, #0
bl sub_080787CC
b _08083B7E
_08083B24:
adds r0, r6, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08083B7E
adds r0, r6, #0
adds r0, #0x70
ldrh r0, [r0]
movs r5, #0x2e
ldrsh r1, [r6, r5]
ldr r3, _08083B84 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r5, #0x32
ldrsh r2, [r6, r5]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r6, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B314
adds r0, r6, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
adds r0, r6, #0
bl sub_080A29BC
movs r0, #1
rsbs r0, r0, #0
bl sub_080526F8
bl sub_0805E780
_08083B7E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08083B84: .4byte gUnk_03000BF0
thumb_func_start sub_08083B88
sub_08083B88: @ 0x08083B88
push {r4, lr}
adds r4, r0, #0
ldr r1, _08083BDC @ =gUnk_0811F7D8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r1, [r0]
lsrs r1, r1, #6
movs r0, #1
ands r1, r0
ldrb r2, [r4, #0x18]
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_08080CB4
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x1b]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r2, r0
strb r2, [r4, #0x19]
pop {r4, pc}
.align 2, 0
_08083BDC: .4byte gUnk_0811F7D8
thumb_func_start sub_08083BE0
sub_08083BE0: @ 0x08083BE0
push {r4, lr}
adds r4, r0, #0
movs r1, #6
bl sub_0805E3A0
movs r0, #1
strb r0, [r4, #0xc]
pop {r4, pc}
thumb_func_start sub_08083BF0
sub_08083BF0: @ 0x08083BF0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0x41
bne _08083C98
movs r0, #2
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083C98
lsls r0, r0, #2
ldr r1, _08083C14 @ =_08083C18
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083C14: .4byte _08083C18
_08083C18: @ jump table
.4byte _08083C30 @ case 0
.4byte _08083C30 @ case 1
.4byte _08083C4A @ case 2
.4byte _08083C98 @ case 3
.4byte _08083C98 @ case 4
.4byte _08083C74 @ case 5
_08083C30:
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
bl sub_08053FF0
adds r1, r4, #0
adds r1, #0x68
strh r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0x43
bgt _08083C62
cmp r0, #0x40
bge _08083C98
b _08083C62
_08083C4A:
ldrb r0, [r4, #0xa]
ldrb r1, [r4, #0xb]
bl sub_08053FF0
ldr r1, _08083C6C @ =gUnk_080FD964
ldrb r0, [r4, #0xa]
lsls r0, r0, #3
adds r0, r0, r1
ldrh r1, [r0, #6]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_08083C62:
ldr r0, _08083C70 @ =0x00000109
bl sub_080A3268
b _08083C98
.align 2, 0
_08083C6C: .4byte gUnk_080FD964
_08083C70: .4byte 0x00000109
_08083C74:
ldrb r0, [r4, #0xa]
bl sub_0807CA84
ldrb r1, [r4, #0xa]
lsls r1, r1, #3
ldr r2, _08083C8C @ =gUnk_080FD5B4
adds r1, r1, r2
cmp r0, #0
bne _08083C90
ldrh r1, [r1, #4]
b _08083C92
.align 2, 0
_08083C8C: .4byte gUnk_080FD5B4
_08083C90:
ldrh r1, [r1, #6]
_08083C92:
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_08083C98:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08083C9C
sub_08083C9C: @ 0x08083C9C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0x42
bne _08083D22
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083D22
lsls r0, r0, #2
ldr r1, _08083CC0 @ =_08083CC4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083CC0: .4byte _08083CC4
_08083CC4: @ jump table
.4byte _08083CDC @ case 0
.4byte _08083D22 @ case 1
.4byte _08083CDC @ case 2
.4byte _08083D22 @ case 3
.4byte _08083D22 @ case 4
.4byte _08083CDC @ case 5
_08083CDC:
adds r0, r4, #0
adds r0, #0x68
ldrh r1, [r0]
cmp r1, #0
beq _08083D22
ldrb r0, [r4, #0xa]
cmp r0, #0x3f
beq _08083D00
cmp r0, #0x63
bne _08083D16
ldr r0, _08083CFC @ =gUnk_02002A40
adds r0, #0xa9
ldrb r0, [r0]
adds r1, r1, r0
b _08083D16
.align 2, 0
_08083CFC: .4byte gUnk_02002A40
_08083D00:
ldrb r0, [r4, #0xb]
cmp r0, #1
bls _08083D16
ldr r0, _08083D10 @ =0x00000577
cmp r1, r0
bne _08083D14
subs r1, #1
b _08083D16
.align 2, 0
_08083D10: .4byte 0x00000577
_08083D14:
adds r1, #1
_08083D16:
adds r0, r1, #0
bl sub_08056378
ldr r1, _08083D24 @ =gUnk_02000050
ldrb r0, [r4, #0xb]
str r0, [r1, #0x10]
_08083D22:
pop {r4, pc}
.align 2, 0
_08083D24: .4byte gUnk_02000050
thumb_func_start sub_08083D28
sub_08083D28: @ 0x08083D28
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xc]
cmp r0, #8
beq _08083DD4
ldrb r0, [r4, #0xe]
cmp r0, #5
bhi _08083DD0
lsls r0, r0, #2
ldr r1, _08083D44 @ =_08083D48
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08083D44: .4byte _08083D48
_08083D48: @ jump table
.4byte _08083D60 @ case 0
.4byte _08083D60 @ case 1
.4byte _08083D60 @ case 2
.4byte _08083DAC @ case 3
.4byte _08083DD0 @ case 4
.4byte _08083DD0 @ case 5
_08083D60:
ldrb r0, [r4, #0xa]
cmp r0, #0x62
beq _08083D88
cmp r0, #0x63
bne _08083DD0
movs r0, #0xa0
bl sub_080526A0
ldr r0, _08083DA8 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xa9
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bls _08083DD0
movs r0, #0
strb r0, [r1]
_08083D88:
ldr r0, _08083DA8 @ =gUnk_02002A40
adds r1, r0, #0
adds r1, #0xab
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xa0
bls _08083DA0
movs r0, #0xa0
strb r0, [r1]
_08083DA0:
movs r0, #0xa0
bl sub_080526A0
b _08083DD0
.align 2, 0
_08083DA8: .4byte gUnk_02002A40
_08083DAC:
ldrb r0, [r4, #0xa]
bl sub_080544DC
adds r1, r0, #0
cmp r1, #0
beq _08083DC8
ldr r0, _08083DC4 @ =gUnk_02002A40
adds r0, r0, r1
adds r0, #0xb5
movs r1, #0x20
strb r1, [r0]
b _08083DD0
.align 2, 0
_08083DC4: .4byte gUnk_02002A40
_08083DC8:
ldrb r0, [r4, #0xa]
movs r1, #2
bl sub_0807CAA0
_08083DD0:
bl sub_0805E780
_08083DD4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08083DD8
sub_08083DD8: @ 0x08083DD8
push {lr}
ldr r2, _08083DEC @ =gUnk_0811F7E8
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08083DEC: .4byte gUnk_0811F7E8
thumb_func_start sub_08083DF0
sub_08083DF0: @ 0x08083DF0
push {lr}
ldr r2, _08083E04 @ =gUnk_0811F808
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08083E04: .4byte gUnk_0811F808
thumb_func_start sub_08083E08
sub_08083E08: @ 0x08083E08
push {lr}
ldr r2, _08083E1C @ =gUnk_0811F818
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08083E1C: .4byte gUnk_0811F818
thumb_func_start sub_08083E20
sub_08083E20: @ 0x08083E20
push {r4, lr}
adds r4, r0, #0
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_080842D8
adds r0, r4, #0
bl sub_08078828
pop {r4, pc}
thumb_func_start sub_08083E4C
sub_08083E4C: @ 0x08083E4C
push {r4, lr}
adds r4, r0, #0
ldr r0, _08083E80 @ =gUnk_0811F8B0
str r0, [r4, #0x48]
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
beq _08083E84
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #5
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080842D8
adds r0, r4, #0
movs r1, #1
bl sub_08004260
b _08083EAC
.align 2, 0
_08083E80: .4byte gUnk_0811F8B0
_08083E84:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _08083E98
ldrb r0, [r4, #0xa]
cmp r0, #4
bne _08083EA0
_08083E98:
adds r0, r4, #0
bl sub_08083E20
b _08083EA4
_08083EA0:
movs r0, #1
strb r0, [r4, #0xc]
_08083EA4:
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_08083EAC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08083EB0
sub_08083EB0: @ 0x08083EB0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08083F0A
ldr r1, _08083F0C @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r3, #0
movs r0, #0xf4
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x68
adds r0, #0xc0
strh r0, [r1]
ldr r1, _08083F10 @ =gUnk_02034490
movs r2, #1
movs r0, #1
strb r0, [r1]
movs r0, #2
strb r0, [r4, #0xc]
strb r3, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrb r1, [r4, #0x18]
subs r0, #0x22
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
bl sub_0805BC4C
_08083F0A:
pop {r4, pc}
.align 2, 0
_08083F0C: .4byte gUnk_03000F50
_08083F10: .4byte gUnk_02034490
thumb_func_start sub_08083F14
sub_08083F14: @ 0x08083F14
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x1e
bl sub_0805E510
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _08083F78
cmp r0, #1
beq _08083FA4
adds r0, r4, #0
bl sub_0800445C
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
movs r2, #2
bl sub_080577AC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08083FE6
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
ands r2, r0
ldr r3, _08083F74 @ =gUnk_03000F50
movs r0, #0x10
subs r0, r0, r2
lsls r0, r0, #8
movs r5, #0xff
lsls r5, r5, #8
adds r1, r5, #0
ands r0, r1
orrs r0, r2
adds r1, r3, #0
adds r1, #0x68
strh r0, [r1]
cmp r0, #0x10
bne _08083FE6
b _08083FCC
.align 2, 0
_08083F74: .4byte gUnk_03000F50
_08083F78:
ldr r5, _08083FA0 @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0x10
movs r3, #8
bl sub_080041A0
cmp r0, #0
beq _08083F98
movs r0, #0x10
movs r1, #0
movs r2, #0
bl sub_08078AC0
movs r0, #0x10
strb r0, [r5, #0x15]
_08083F98:
movs r0, #1
strb r0, [r4, #0xd]
b _08083FE6
.align 2, 0
_08083FA0: .4byte gLinkEntity
_08083FA4:
ldrb r0, [r4, #0xa]
cmp r0, #5
beq _08083FB2
ldr r0, _08083FC8 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #1
bne _08083FE6
_08083FB2:
movs r1, #0
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #8
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
movs r0, #0xa5
lsls r0, r0, #1
bl sub_080A3268
b _08083FE6
.align 2, 0
_08083FC8: .4byte gLinkEntity
_08083FCC:
ldr r1, _08083FE8 @ =gUnk_02034490
movs r0, #0
strb r0, [r1]
adds r1, r3, #0
adds r1, #0x66
movs r0, #0
strh r0, [r1]
adds r0, r4, #0
bl sub_08083E20
movs r0, #0x73
bl sub_080A3268
_08083FE6:
pop {r4, r5, pc}
.align 2, 0
_08083FE8: .4byte gUnk_02034490
thumb_func_start sub_08083FEC
sub_08083FEC: @ 0x08083FEC
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r0, r4, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0808401E
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_080788E0
adds r0, r4, #0
movs r1, #0x3c
bl sub_0805E4E0
ldr r0, _08084020 @ =0x0000011B
bl sub_080A3268
_0808401E:
pop {r4, pc}
.align 2, 0
_08084020: .4byte 0x0000011B
thumb_func_start sub_08084024
sub_08084024: @ 0x08084024
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08084070
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808406A
ldrb r0, [r4, #0xe]
cmp r0, #0x18
bne _08084060
movs r0, #6
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0xf]
b _0808406A
_08084060:
movs r0, #5
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xb]
bl sub_08084074
_0808406A:
ldrb r0, [r4, #0xb]
bl sub_0807CCB4
_08084070:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08084074
sub_08084074: @ 0x08084074
push {r4, lr}
adds r4, r0, #0
movs r0, #3
bl sub_0804B128
adds r1, r0, #0
cmp r1, #0
beq _080840A4
b _0808409E
_08084086:
cmp r0, #3
bne _0808409C
ldrb r0, [r1, #1]
cmp r4, r0
bne _0808409C
ldrb r0, [r1, #2]
ldrb r1, [r1, #3]
movs r2, #0
bl sub_080A7C00
b _080840A4
_0808409C:
adds r1, #8
_0808409E:
ldrb r0, [r1]
cmp r0, #0
bne _08084086
_080840A4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080840A8
sub_080840A8: @ 0x080840A8
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r7, r1, #0
ldr r4, _0808413C @ =gUnk_0811F838
bl sub_08000E50
movs r1, #7
ands r1, r0
adds r1, r1, r4
ldrb r1, [r1]
movs r0, #0
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _08084138
movs r0, #6
strb r0, [r5, #0xe]
bl sub_08000E50
movs r1, #7
ands r0, r1
adds r0, #0xc
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x15]
bl sub_08000E50
movs r1, #0xf
ands r1, r0
lsls r1, r1, #1
adds r1, #0x20
strh r1, [r5, #0x24]
bl sub_08000E50
ldr r1, _08084140 @ =gUnk_0811F840
movs r4, #3
ands r0, r4
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r5, #0x20]
bl sub_08000E50
ldr r1, _08084144 @ =gUnk_0811F850
ands r0, r4
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, r0, r6
strh r0, [r5, #0x2e]
adds r0, r7, #1
strh r0, [r5, #0x32]
ldr r0, _08084148 @ =0x0000FFF8
strh r0, [r5, #0x36]
adds r0, r5, #0
bl sub_08016A30
adds r0, r5, #0
movs r1, #0x11
movs r2, #0
bl CreateFX
adds r5, r0, #0
cmp r5, #0
beq _08084138
movs r0, #0x92
lsls r0, r0, #1
bl sub_080A3268
_08084138:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808413C: .4byte gUnk_0811F838
_08084140: .4byte gUnk_0811F840
_08084144: .4byte gUnk_0811F850
_08084148: .4byte 0x0000FFF8
thumb_func_start sub_0808414C
sub_0808414C: @ 0x0808414C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08084180
movs r0, #8
strb r0, [r1, #0xe]
ldrb r0, [r1, #0xf]
subs r0, #1
strb r0, [r1, #0xf]
ands r0, r2
cmp r0, #0
beq _0808417C
movs r2, #0x2e
ldrsh r0, [r1, r2]
movs r2, #0x32
ldrsh r1, [r1, r2]
bl sub_080840A8
b _08084180
_0808417C:
movs r0, #5
strb r0, [r1, #0xc]
_08084180:
pop {pc}
.align 2, 0
thumb_func_start sub_08084184
sub_08084184: @ 0x08084184
push {lr}
bl sub_0800445C
pop {pc}
thumb_func_start nullsub_114
nullsub_114: @ 0x0808418C
bx lr
.align 2, 0
thumb_func_start sub_08084190
sub_08084190: @ 0x08084190
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08084204 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x70
strh r1, [r5]
ldr r0, _08084208 @ =gUnk_0811F8A8
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_080002A0
cmp r0, #0x74
bne _080841D2
bl sub_0805E780
_080841D2:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08084200
movs r0, #3
strb r0, [r4, #0xc]
ldrh r1, [r5]
adds r0, r4, #0
adds r0, #0x38
ldrb r2, [r0]
movs r0, #0x73
bl sub_0807B7D8
ldrb r1, [r4, #0xa]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08084200
bl sub_0805E780
_08084200:
pop {r4, r5, pc}
.align 2, 0
_08084204: .4byte gUnk_03000BF0
_08084208: .4byte gUnk_0811F8A8
thumb_func_start sub_0808420C
sub_0808420C: @ 0x0808420C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08084220
movs r0, #2
strb r0, [r4, #0xc]
_08084220:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08084224
sub_08084224: @ 0x08084224
push {r4, lr}
adds r4, r0, #0
adds r0, #0x70
ldrh r1, [r0]
subs r0, #0x38
ldrb r2, [r0]
movs r0, #0x73
bl sub_0807B7D8
ldrb r0, [r4, #0xa]
cmp r0, #7
bgt _0808424C
cmp r0, #6
blt _0808424C
ldr r0, _08084248 @ =0x00000215
bl sub_080A3268
b _08084258
.align 2, 0
_08084248: .4byte 0x00000215
_0808424C:
movs r0, #0x72
bl sub_080A3268
adds r0, r4, #0
bl sub_080A29BC
_08084258:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xe]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
ldrb r1, [r4, #0xa]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08084278
bl sub_0805E780
_08084278:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808427C
sub_0808427C: @ 0x0808427C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _0808428A
cmp r0, #7
bne _080842D4
_0808428A:
adds r0, r4, #0
bl sub_080002A0
cmp r0, #0x74
bne _0808429C
adds r0, r4, #0
bl sub_0805E7BC
b _080842D4
_0808429C:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080842D4
adds r1, r4, #0
adds r1, #0x72
ldrh r0, [r1]
cmp r0, #0
beq _080842BA
subs r0, #1
strh r0, [r1]
b _080842D4
_080842BA:
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_0807BA8C
adds r0, r4, #0
bl sub_080A29BC
_080842D4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080842D8
sub_080842D8: @ 0x080842D8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrh r2, [r5, #0x2e]
movs r1, #8
adds r0, r1, #0
ands r0, r2
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r0, r0, #0
lsrs r2, r0, #0x1f
ldrh r0, [r5, #0x32]
ands r1, r0
cmp r1, #0
beq _080842F6
adds r2, #2
_080842F6:
ldr r1, _0808432C @ =gUnk_0811F898
lsls r0, r2, #2
adds r0, r0, r1
ldr r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08084330 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0801AF18
pop {r4, r5, r6, pc}
.align 2, 0
_0808432C: .4byte gUnk_0811F898
_08084330: .4byte gUnk_03000BF0
thumb_func_start sub_08084334
sub_08084334: @ 0x08084334
push {lr}
ldr r2, _08084348 @ =gUnk_0811F908
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08084348: .4byte gUnk_0811F908
thumb_func_start sub_0808434C
sub_0808434C: @ 0x0808434C
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x3f
strb r3, [r0]
adds r1, #4
movs r0, #0x47
strb r0, [r1]
subs r1, #5
movs r0, #2
strb r0, [r1]
ldr r0, _080843E0 @ =gUnk_080FD188
str r0, [r5, #0x48]
ldr r0, _080843E4 @ =0x00004050
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080843E8 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _080843C8
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080843EC
_080843C8:
movs r0, #3
strb r0, [r5, #0xc]
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
adds r0, r5, #0
movs r1, #1
bl sub_08004260
b _080843F4
.align 2, 0
_080843E0: .4byte gUnk_080FD188
_080843E4: .4byte 0x00004050
_080843E8: .4byte gUnk_03000BF0
_080843EC:
ldrb r1, [r5, #0xa]
adds r0, r5, #0
bl sub_08004260
_080843F4:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080843F8
sub_080843F8: @ 0x080843F8
push {lr}
adds r2, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9c
bne _08084420
movs r0, #2
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
adds r0, r2, #0
movs r1, #0xd
movs r2, #0
bl CreateFX
ldr r0, _08084424 @ =0x0000010D
bl sub_08004488
_08084420:
pop {pc}
.align 2, 0
_08084424: .4byte 0x0000010D
thumb_func_start sub_08084428
sub_08084428: @ 0x08084428
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08084454
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
movs r0, #0x86
lsls r0, r0, #1
bl sub_08004488
_08084454:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08084458
sub_08084458: @ 0x08084458
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08084472
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x14
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08004168
b _080844C2
_08084472:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _080844C2
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080844C4 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x38
ldrb r2, [r0]
movs r0, #0x35
bl sub_0807B7D8
adds r0, r4, #0
movs r1, #0
movs r2, #0x40
bl CreateFX
movs r0, #0x93
lsls r0, r0, #1
bl sub_080A3268
bl sub_0805E780
_080844C2:
pop {r4, r5, pc}
.align 2, 0
_080844C4: .4byte gUnk_03000BF0
thumb_func_start sub_080844C8
sub_080844C8: @ 0x080844C8
push {lr}
ldr r2, _080844DC @ =gUnk_0811FAC0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080844DC: .4byte gUnk_0811FAC0
thumb_func_start sub_080844E0
sub_080844E0: @ 0x080844E0
push {r4, r5, lr}
adds r5, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
bne _08084516
adds r0, r5, #0
bl sub_08016A30
_08084516:
ldrb r0, [r5, #0xa]
cmp r0, #0x20
bne _08084524
ldrb r0, [r5, #0x10]
movs r1, #0x20
orrs r0, r1
strb r0, [r5, #0x10]
_08084524:
ldrb r4, [r5, #0xa]
cmp r4, #3
bne _08084538
bl sub_08000E50
ldr r1, _080845AC @ =gUnk_0811FAC8
ands r4, r0
adds r1, r4, r1
ldrb r0, [r1]
strb r0, [r5, #0xa]
_08084538:
ldrb r0, [r5, #0xa]
cmp r0, #0x17
bne _0808454E
bl sub_08000E50
ldr r2, _080845B0 @ =gUnk_0811FACC
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r5, #0xa]
_0808454E:
ldrb r1, [r5, #0xa]
adds r0, r5, #0
bl sub_08004260
ldrb r0, [r5, #0xa]
lsls r0, r0, #2
ldr r1, _080845B4 @ =gUnk_0811F960
adds r4, r0, r1
ldrb r1, [r4]
movs r0, #0xf
ands r0, r1
cmp r0, #6
bne _0808456C
movs r0, #0x40
strh r0, [r5, #0x24]
_0808456C:
ldrh r0, [r4, #2]
cmp r0, #0
beq _08084582
ldrb r1, [r5, #0xb]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _08084582
ldrh r0, [r4, #2]
bl sub_08004488
_08084582:
ldrb r1, [r5, #0xb]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08084594
ldrb r1, [r4, #1]
adds r0, r5, #0
bl sub_0805457C
_08084594:
ldrb r1, [r5, #0xb]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _080845AA
ldrb r0, [r5, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r5, #0x19]
_080845AA:
pop {r4, r5, pc}
.align 2, 0
_080845AC: .4byte gUnk_0811FAC8
_080845B0: .4byte gUnk_0811FACC
_080845B4: .4byte gUnk_0811F960
thumb_func_start sub_080845B8
sub_080845B8: @ 0x080845B8
push {lr}
ldr r3, _080845D4 @ =gUnk_0811FAD0
ldr r2, _080845D8 @ =gUnk_0811F960
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldrb r1, [r1]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1a
adds r1, r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080845D4: .4byte gUnk_0811FAD0
_080845D8: .4byte gUnk_0811F960
thumb_func_start sub_080845DC
sub_080845DC: @ 0x080845DC
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080845F4
bl sub_0805E780
_080845F4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080845F8
sub_080845F8: @ 0x080845F8
push {r4, lr}
adds r4, r0, #0
ldrh r2, [r4, #0x2e]
movs r1, #0xf
adds r0, r1, #0
ands r0, r2
movs r2, #8
subs r3, r2, r0
ldrh r0, [r4, #0x32]
ands r1, r0
subs r1, r2, r1
adds r0, r3, #0
orrs r0, r1
cmp r0, #0
beq _08084626
adds r0, r3, #0
bl sub_080045DA
lsrs r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
_08084626:
adds r0, r4, #0
bl sub_08084630
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08084630
sub_08084630: @ 0x08084630
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808467E
ldrb r1, [r4, #0xb]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0808467A
ldr r1, [r4, #0x54]
cmp r1, #0
beq _0808467A
adds r1, #0x6a
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
ldr r0, [r4, #0x68]
cmp r0, #0
beq _0808467A
ldr r2, [r4, #0x54]
adds r2, #0x6c
subs r0, #1
movs r1, #0x1f
ands r0, r1
adds r1, r3, #0
lsls r1, r0
ldrh r0, [r2]
bics r0, r1
strh r0, [r2]
_0808467A:
bl sub_0805E780
_0808467E:
pop {r4, pc}
thumb_func_start sub_08084680
sub_08084680: @ 0x08084680
push {lr}
ldr r1, [r0, #0x34]
movs r2, #0x80
lsls r2, r2, #7
adds r1, r1, r2
str r1, [r0, #0x34]
bl sub_080845DC
pop {pc}
.align 2, 0
thumb_func_start sub_08084694
sub_08084694: @ 0x08084694
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
cmp r0, #0
beq _080846A4
ldr r0, [r0, #4]
cmp r0, #0
bne _080846A8
_080846A4:
bl sub_0805E780
_080846A8:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
thumb_func_start sub_080846B0
sub_080846B0: @ 0x080846B0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080846D8
ldrh r1, [r4, #0x24]
movs r2, #0x24
ldrsh r0, [r4, r2]
cmp r0, #0
beq _080846CA
adds r0, r1, #0
subs r0, #0x10
strh r0, [r4, #0x24]
_080846CA:
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_080845DC
b _08084718
_080846D8:
movs r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x14]
movs r0, #2
orrs r0, r1
cmp r0, #2
bne _080846EA
movs r0, #0x1e
b _080846EC
_080846EA:
movs r0, #2
_080846EC:
strb r0, [r4, #0x15]
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _08084712
adds r1, r4, #0
adds r1, #0x60
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
ldrb r0, [r4, #0x15]
movs r1, #1
cmp r0, #0x17
bls _08084708
subs r1, #2
_08084708:
adds r0, r0, r1
strb r0, [r4, #0x15]
movs r0, #0xa0
lsls r0, r0, #2
b _08084716
_08084712:
movs r0, #0xc0
lsls r0, r0, #2
_08084716:
strh r0, [r4, #0x24]
_08084718:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808471C
sub_0808471C: @ 0x0808471C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_08004274
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08084768
movs r4, #0
_08084734:
adds r0, r5, #0
movs r1, #0x24
movs r2, #0
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _0808475E
lsls r1, r4, #1
ldr r0, _0808476C @ =gUnk_0811FB08
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
_0808475E:
adds r4, #1
cmp r4, #3
bls _08084734
bl sub_0805E780
_08084768:
pop {r4, r5, pc}
.align 2, 0
_0808476C: .4byte gUnk_0811FB08
thumb_func_start sub_08084770
sub_08084770: @ 0x08084770
push {lr}
ldr r1, [r0, #0x34]
ldr r2, _08084780 @ =0xFFFFC000
adds r1, r1, r2
str r1, [r0, #0x34]
bl sub_080845DC
pop {pc}
.align 2, 0
_08084780: .4byte 0xFFFFC000
thumb_func_start sub_08084784
sub_08084784: @ 0x08084784
push {lr}
ldr r1, [r0, #0x34]
movs r2, #0x80
lsls r2, r2, #7
adds r1, r1, r2
str r1, [r0, #0x34]
bl sub_080845DC
pop {pc}
.align 2, 0
thumb_func_start sub_08084798
sub_08084798: @ 0x08084798
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080847B6
ldr r0, [r4, #0x54]
ldr r0, [r0, #4]
cmp r0, #0
bne _080847BA
_080847B6:
bl sub_0805E780
_080847BA:
pop {r4, pc}
thumb_func_start sub_080847BC
sub_080847BC: @ 0x080847BC
push {lr}
ldr r1, [r0, #0x34]
ldr r2, _080847CC @ =0xFFFFE000
adds r1, r1, r2
str r1, [r0, #0x34]
bl sub_080845DC
pop {pc}
.align 2, 0
_080847CC: .4byte 0xFFFFE000
thumb_func_start sub_080847D0
sub_080847D0: @ 0x080847D0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_080845DC
pop {r4, pc}
thumb_func_start sub_080847E0
sub_080847E0: @ 0x080847E0
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _08084814 @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #1
bne _080847F0
bl sub_0805E780
_080847F0:
ldr r4, _08084818 @ =gLinkEntity
ldr r3, _0808481C @ =0xFFFD0000
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
ldr r0, _08084820 @ =0x0000FFFD
strh r0, [r5, #0x36]
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FAB0
adds r0, r5, #0
bl sub_080845DC
pop {r4, r5, pc}
.align 2, 0
_08084814: .4byte gUnk_03000BF0
_08084818: .4byte gLinkEntity
_0808481C: .4byte 0xFFFD0000
_08084820: .4byte 0x0000FFFD
thumb_func_start sub_08084824
sub_08084824: @ 0x08084824
push {lr}
ldr r2, _08084838 @ =gUnk_08120560
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08084838: .4byte gUnk_08120560
thumb_func_start sub_0808483C
sub_0808483C: @ 0x0808483C
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldrh r2, [r4, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
movs r2, #8
orrs r0, r2
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
ands r1, r0
orrs r1, r2
strh r1, [r4, #0x32]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080848C0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x74
strh r1, [r5]
adds r0, r4, #0
movs r1, #8
bl sub_08004260
ldr r0, _080848C4 @ =0x00004016
ldrh r1, [r5]
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
movs r0, #0x89
lsls r0, r0, #1
bl sub_080A3268
pop {r4, r5, pc}
.align 2, 0
_080848C0: .4byte gUnk_03000BF0
_080848C4: .4byte 0x00004016
thumb_func_start sub_080848C8
sub_080848C8: @ 0x080848C8
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08084980 @ =gUnk_03003F80
adds r0, #0xa0
ldrb r0, [r0]
cmp r0, #5
bne _08084994
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x45
movs r5, #1
strb r5, [r0]
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
subs r0, #0x12
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
ldr r0, _08084984 @ =gUnk_08120574
str r0, [r4, #0x48]
ldrb r1, [r4, #0xa]
adds r1, #1
lsls r0, r1, #4
subs r0, r0, r1
strb r0, [r4, #0xf]
ldr r2, _08084988 @ =gLinkEntity
ldrh r0, [r4, #0x2e]
ldrh r1, [r2, #0x2e]
subs r0, r0, r1
adds r3, r4, #0
adds r3, #0x78
strh r0, [r3]
ldrh r1, [r4, #0x32]
ldrh r0, [r2, #0x32]
subs r1, r1, r0
adds r0, r4, #0
adds r0, #0x7a
strh r1, [r0]
ldrh r0, [r3]
cmp r0, #0
beq _0808493C
lsls r0, r1, #0x10
cmp r0, #0
beq _0808493C
ldr r0, _0808498C @ =gUnk_03004040
ldrb r1, [r4, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
str r5, [r0, #0x70]
_0808493C:
ldr r0, _08084990 @ =0x00000315
adds r1, r4, #0
adds r1, #0x74
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_08000152
ldrb r1, [r4, #0xa]
adds r1, #1
ldr r0, _08084980 @ =gUnk_03003F80
ldr r0, [r0, #0x2c]
adds r0, #0x68
ldrb r3, [r0]
movs r0, #1
movs r2, #0
bl sub_08077CF8
str r0, [r4, #0x54]
cmp r0, #0
beq _0808496A
str r4, [r0, #0x50]
_0808496A:
adds r0, r4, #0
bl sub_0801766C
adds r0, r4, #0
bl sub_0806FDA0
adds r0, r4, #0
bl sub_080849D8
b _080849D6
.align 2, 0
_08084980: .4byte gUnk_03003F80
_08084984: .4byte gUnk_08120574
_08084988: .4byte gLinkEntity
_0808498C: .4byte gUnk_03004040
_08084990: .4byte 0x00000315
_08084994:
cmp r0, #4
beq _080849C4
ldr r0, _080849BC @ =0x00000315
adds r1, r4, #0
adds r1, #0x74
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_08000152
ldr r1, _080849C0 @ =gUnk_03004040
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
movs r1, #0
str r1, [r0]
bl sub_0805E780
b _080849D6
.align 2, 0
_080849BC: .4byte 0x00000315
_080849C0: .4byte gUnk_03004040
_080849C4:
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_080849D6:
pop {r4, r5, pc}
thumb_func_start sub_080849D8
sub_080849D8: @ 0x080849D8
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
adds r1, r0, #0
cmp r1, #1
bne _080849EE
movs r0, #0x76
bl sub_080A3268
ldrb r0, [r4, #0xf]
b _080849F2
_080849EE:
cmp r1, #0
beq _080849F6
_080849F2:
subs r0, #1
strb r0, [r4, #0xf]
_080849F6:
ldr r2, _08084A3C @ =gUnk_03003F80
adds r3, r2, #0
adds r3, #0xa0
ldrb r0, [r3]
cmp r0, #5
beq _08084A04
b _08084AF8
_08084A04:
ldr r0, _08084A40 @ =gUnk_03004040
ldrb r1, [r4, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
cmp r0, #0
beq _08084AF8
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x13
beq _08084AF8
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _08084AF8
ldr r5, _08084A44 @ =gLinkEntity
adds r0, r5, #0
adds r0, #0x3d
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08084A48
movs r0, #1
strb r0, [r3]
b _08084AF8
.align 2, 0
_08084A3C: .4byte gUnk_03003F80
_08084A40: .4byte gUnk_03004040
_08084A44: .4byte gLinkEntity
_08084A48:
adds r0, r4, #0
bl sub_080002B8
adds r0, r4, #0
bl sub_08084B1C
adds r0, r4, #0
adds r0, #0x78
ldrh r0, [r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x7a
ldrh r0, [r0]
ldrh r5, [r5, #0x32]
adds r0, r0, r5
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_08084CAC
adds r0, r4, #0
bl sub_080085B0
ldrh r2, [r4, #0x2a]
ldr r1, _08084AB8 @ =0x00006666
adds r0, r1, #0
ands r0, r2
cmp r0, r1
beq _08084AEA
movs r3, #0
ldr r5, _08084ABC @ =gUnk_0812056C
ldrh r1, [r5]
adds r0, r1, #0
ands r0, r2
cmp r1, r0
beq _08084AA6
adds r2, r5, #0
_08084A94:
adds r2, #2
adds r3, #1
cmp r3, #3
bhi _08084AA6
ldrh r1, [r2]
ldrh r0, [r4, #0x2a]
ands r0, r1
cmp r1, r0
bne _08084A94
_08084AA6:
cmp r3, #4
bne _08084AC0
movs r0, #0
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #4
ands r0, r1
movs r1, #1
b _08084ADE
.align 2, 0
_08084AB8: .4byte 0x00006666
_08084ABC: .4byte gUnk_0812056C
_08084AC0:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08084AE4
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _08084AEA
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
_08084ADE:
orrs r0, r1
strb r0, [r4, #0x18]
b _08084B16
_08084AE4:
movs r0, #0x1e
strb r0, [r4, #0xe]
b _08084B16
_08084AEA:
ldr r0, _08084AF4 @ =gUnk_03003F80
adds r0, #0xa0
movs r1, #1
strb r1, [r0]
b _08084B16
.align 2, 0
_08084AF4: .4byte gUnk_03003F80
_08084AF8:
bl sub_0807A108
adds r0, r4, #0
movs r1, #0x30
movs r2, #0
bl CreateFX
ldr r0, [r4, #0x54]
bl sub_0805E7BC
ldr r0, _08084B18 @ =0x0000018F
bl sub_080A3268
bl sub_0805E780
_08084B16:
pop {r4, r5, pc}
.align 2, 0
_08084B18: .4byte 0x0000018F
thumb_func_start sub_08084B1C
sub_08084B1C: @ 0x08084B1C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r4, r0, #0
ldr r3, _08084CA4 @ =gLinkEntity
ldrb r0, [r3, #0x10]
strb r0, [r4, #0x10]
adds r0, r3, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
ldrb r0, [r3, #0x1e]
strb r0, [r4, #0x1e]
adds r0, r3, #0
adds r0, #0x5b
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x5b
strb r0, [r1]
ldrh r0, [r3, #0x12]
strh r0, [r4, #0x12]
ldrb r0, [r3, #0x15]
strb r0, [r4, #0x15]
ldrb r0, [r3, #0x14]
strb r0, [r4, #0x14]
ldrb r0, [r3, #0x18]
movs r1, #1
mov r8, r1
movs r1, #0x40
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
mov sb, r0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r3, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r7, #0x3f
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r3, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
movs r6, #7
lsrs r1, r1, #0x1d
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
mov sl, r0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r3, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
adds r0, r3, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r3, #0
adds r0, #0x3b
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x3b
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x3f
ldrb r0, [r0]
adds r1, #4
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x3c
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x3c
strb r1, [r0]
adds r0, r3, #0
adds r0, #0x40
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x40
strb r1, [r0]
ldr r1, [r4, #0x54]
adds r0, r4, #0
bl sub_0806FA24
ldr r5, _08084CA8 @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
beq _08084C6A
ldr r1, [r4, #0x54]
ldr r0, [r5, #0x2c]
adds r0, #0x44
ldrb r0, [r0]
adds r1, #0x44
strb r0, [r1]
ldr r1, [r4, #0x54]
ldr r0, [r5, #0x2c]
ldrb r0, [r0, #0x1e]
strb r0, [r1, #0x1e]
ldr r3, [r4, #0x54]
ldr r0, [r5, #0x2c]
ldrb r1, [r0, #0x18]
lsls r1, r1, #0x19
lsrs r1, r1, #0x1f
mov r0, r8
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r3, #0x18]
mov r0, sb
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
ldr r3, [r4, #0x54]
ldr r0, [r5, #0x2c]
ldrb r1, [r0, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r3, #0x19]
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x19]
ldr r2, [r4, #0x54]
ldr r0, [r5, #0x2c]
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
adds r2, #0x29
ands r6, r0
ldrb r1, [r2]
mov r0, sl
ands r0, r1
orrs r0, r6
strb r0, [r2]
ldr r1, [r4, #0x54]
ldrb r0, [r1, #0x18]
lsls r0, r0, #0x19
cmp r0, #0
bge _08084C6A
ldr r1, [r1, #0x48]
ldrb r0, [r1]
rsbs r0, r0, #0
strb r0, [r1]
_08084C6A:
adds r0, r4, #0
movs r1, #0
movs r2, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #2
adds r2, r4, #0
bl sub_0806FEBC
adds r0, r4, #0
movs r1, #3
movs r2, #0
bl sub_0806FEBC
ldr r0, [r4, #0x54]
adds r1, r4, #0
bl sub_08078E84
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08084CA4: .4byte gLinkEntity
_08084CA8: .4byte gUnk_03003F80
thumb_func_start sub_08084CAC
sub_08084CAC: @ 0x08084CAC
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r6, _08084D18 @ =gUnk_03004040
ldrb r0, [r5, #0xa]
lsls r0, r0, #2
adds r0, r0, r6
ldr r0, [r0]
ldr r0, [r0, #0x70]
cmp r0, #0
bne _08084D32
ldrb r0, [r5, #0x14]
movs r2, #6
ands r2, r0
lsls r2, r2, #1
ldr r0, _08084D1C @ =gUnk_080B4468
adds r2, r2, r0
movs r1, #0x2e
ldrsh r0, [r5, r1]
movs r3, #0
ldrsh r1, [r2, r3]
adds r0, r0, r1
ldr r4, _08084D20 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r7, #0x32
ldrsh r1, [r5, r7]
movs r7, #2
ldrsh r2, [r2, r7]
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
bl sub_080002E4
cmp r0, #0x72
bne _08084D24
ldr r2, [r6]
movs r1, #1
ldrb r5, [r5, #0xa]
lsls r1, r5
ldr r0, [r2, #0x6c]
orrs r0, r1
b _08084D30
.align 2, 0
_08084D18: .4byte gUnk_03004040
_08084D1C: .4byte gUnk_080B4468
_08084D20: .4byte gUnk_03000BF0
_08084D24:
ldr r2, [r6]
movs r1, #1
ldrb r5, [r5, #0xa]
lsls r1, r5
ldr r0, [r2, #0x6c]
bics r0, r1
_08084D30:
str r0, [r2, #0x6c]
_08084D32:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08084D34
sub_08084D34: @ 0x08084D34
push {r4, lr}
adds r4, r0, #0
bl sub_0805E3B0
cmp r0, #0
bne _08084D50
ldr r0, _08084D54 @ =gUnk_0812057C
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_08084D50:
pop {r4, pc}
.align 2, 0
_08084D54: .4byte gUnk_0812057C
thumb_func_start sub_08084D58
sub_08084D58: @ 0x08084D58
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
ldrb r0, [r7, #0xa]
cmp r0, #3
bne _08084D6C
adds r0, r7, #0
bl sub_08084F8C
_08084D6C:
adds r0, r7, #0
bl sub_08004168
ldrb r0, [r7, #0xa]
cmp r0, #4
bne _08084D7E
adds r0, r7, #0
bl sub_08084F8C
_08084D7E:
movs r0, #2
strb r0, [r7, #0xc]
ldrb r0, [r7, #0x10]
movs r2, #0x80
orrs r0, r2
strb r0, [r7, #0x10]
ldrb r1, [r7, #0x19]
movs r5, #0x3f
adds r0, r5, #0
ands r0, r1
orrs r0, r2
strb r0, [r7, #0x19]
ldr r0, _08084E48 @ =gUnk_08120588
mov r8, r0
ldrb r0, [r7, #0xa]
lsls r0, r0, #2
add r0, r8
ldrb r0, [r0, #1]
strb r0, [r7, #0x1d]
ldrb r0, [r7, #0xa]
lsls r0, r0, #2
add r0, r8
ldrb r0, [r0, #2]
strb r0, [r7, #0x1c]
movs r2, #0
movs r0, #0x80
strh r0, [r7, #0x24]
ldr r0, _08084E4C @ =gLinkEntity
adds r0, #0x38
ldrb r0, [r0]
adds r6, r7, #0
adds r6, #0x38
strb r0, [r6]
adds r1, r7, #0
adds r1, #0x45
movs r0, #1
strb r0, [r1]
subs r1, #9
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x6e
strb r0, [r1]
subs r1, #4
movs r0, #4
strb r0, [r1]
ldr r0, _08084E50 @ =gUnk_081205B4
str r0, [r7, #0x48]
adds r0, r7, #0
adds r0, #0x72
strb r2, [r0]
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldr r4, _08084E54 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r5
movs r2, #0x32
ldrsh r1, [r7, r2]
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r6]
bl sub_080001DA
adds r1, r7, #0
adds r1, #0x70
strh r0, [r1]
ldr r0, _08084E58 @ =0x00004022
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
movs r3, #0x32
ldrsh r2, [r7, r3]
ldrh r3, [r4, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r6]
bl sub_0800015E
ldrb r0, [r7, #0xa]
lsls r0, r0, #2
add r0, r8
ldrb r1, [r0]
adds r0, r7, #0
bl sub_08004260
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08084E48: .4byte gUnk_08120588
_08084E4C: .4byte gLinkEntity
_08084E50: .4byte gUnk_081205B4
_08084E54: .4byte gUnk_03000BF0
_08084E58: .4byte 0x00004022
thumb_func_start sub_08084E5C
sub_08084E5C: @ 0x08084E5C
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08084EAC @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _08084E7A
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08084EA8
_08084E7A:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08084EB0 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_0807BA8C
bl sub_0805E780
_08084EA8:
pop {r4, r5, pc}
.align 2, 0
_08084EAC: .4byte gUnk_03003F80
_08084EB0: .4byte gUnk_03000BF0
thumb_func_start sub_08084EB4
sub_08084EB4: @ 0x08084EB4
push {lr}
ldr r2, _08084EC8 @ =gUnk_0812059C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08084EC8: .4byte gUnk_0812059C
thumb_func_start sub_08084ECC
sub_08084ECC: @ 0x08084ECC
push {lr}
movs r1, #1
strb r1, [r0, #0xd]
bl sub_08084ED8
pop {pc}
thumb_func_start sub_08084ED8
sub_08084ED8: @ 0x08084ED8
push {r4, lr}
adds r4, r0, #0
bl sub_08084E5C
adds r0, r4, #0
bl sub_0806F4E8
ldrb r0, [r4, #0x1d]
cmp r0, #0
beq _08084EFA
subs r0, #1
strb r0, [r4, #0x1d]
lsls r0, r0, #0x18
cmp r0, #0
bne _08084EFA
movs r0, #2
strb r0, [r4, #0xd]
_08084EFA:
pop {r4, pc}
thumb_func_start sub_08084EFC
sub_08084EFC: @ 0x08084EFC
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r2, r5, #0
adds r2, #0x72
ldrb r1, [r2]
cmp r1, #0
bne _08084F42
movs r0, #1
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x62
strb r1, [r0]
adds r0, #0xe
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08084F7C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B9B8
_08084F42:
ldr r0, _08084F80 @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _08084F5C
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08084F62
_08084F5C:
adds r0, r5, #0
bl sub_08084F8C
_08084F62:
adds r0, r5, #0
bl sub_0806F3E4
cmp r0, #0
beq _08084F7A
ldrb r1, [r5, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _08084F7A
bl sub_0805E780
_08084F7A:
pop {r4, r5, r6, pc}
.align 2, 0
_08084F7C: .4byte gUnk_03000BF0
_08084F80: .4byte gUnk_03003F80
thumb_func_start sub_08084F84
sub_08084F84: @ 0x08084F84
bx lr
.align 2, 0
thumb_func_start sub_08084F88
sub_08084F88: @ 0x08084F88
bx lr
.align 2, 0
thumb_func_start sub_08084F8C
sub_08084F8C: @ 0x08084F8C
push {lr}
ldrb r1, [r0, #0xb]
cmp r1, #0xf
beq _08084FA4
cmp r1, #0xf
bgt _08084F9E
cmp r1, #0
beq _08084FB8
b _08084FAE
_08084F9E:
cmp r1, #0xff
bne _08084FAE
b _08084FB8
_08084FA4:
ldrb r1, [r0, #0xe]
movs r2, #0x80
bl CreateFX
b _08084FB8
_08084FAE:
ldrb r1, [r0, #0xb]
ldrb r2, [r0, #0xe]
movs r3, #0
bl sub_080A2988
_08084FB8:
bl sub_0805E780
pop {pc}
.align 2, 0
thumb_func_start sub_08084FC0
sub_08084FC0: @ 0x08084FC0
push {lr}
ldr r2, _08084FD4 @ =gUnk_081205BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08084FD4: .4byte gUnk_081205BC
thumb_func_start sub_08084FD8
sub_08084FD8: @ 0x08084FD8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0808500C
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08084FF4
bl sub_0805E780
_08084FF4:
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_080850FC
b _0808501C
_0808500C:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xf0
strb r0, [r4, #0xe]
movs r0, #0x80
strh r0, [r4, #0x24]
movs r0, #0x18
strb r0, [r4, #0x15]
_0808501C:
movs r0, #0
strb r0, [r4, #0x1e]
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_115
nullsub_115: @ 0x08085024
bx lr
.align 2, 0
thumb_func_start sub_08085028
sub_08085028: @ 0x08085028
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080850A6
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x63
movs r0, #4
strb r0, [r1]
ldr r0, _080850A8 @ =gUnk_03000F50
mov ip, r0
ldrh r1, [r0]
movs r2, #0x80
lsls r2, r2, #6
adds r0, r2, #0
orrs r0, r1
mov r1, ip
strh r0, [r1]
adds r1, #0x60
movs r0, #0x1f
strh r0, [r1]
adds r1, #2
movs r0, #0xf
strh r0, [r1]
movs r2, #0x2e
ldrsh r0, [r4, r2]
ldr r3, _080850AC @ =gUnk_03000BF0
movs r2, #0xa
ldrsh r1, [r3, r2]
subs r0, r0, r1
adds r1, r0, #0
subs r1, #0x18
movs r2, #0xff
ands r1, r2
lsls r1, r1, #8
adds r0, #0x18
ands r0, r2
orrs r1, r0
mov r0, ip
adds r0, #0x58
strh r1, [r0]
movs r1, #0x32
ldrsh r0, [r4, r1]
movs r4, #0xc
ldrsh r1, [r3, r4]
subs r0, r0, r1
adds r1, r0, #0
subs r1, #0x18
ands r1, r2
lsls r1, r1, #8
adds r0, #0x18
ands r0, r2
orrs r1, r0
mov r0, ip
adds r0, #0x5c
strh r1, [r0]
_080850A6:
pop {r4, pc}
.align 2, 0
_080850A8: .4byte gUnk_03000F50
_080850AC: .4byte gUnk_03000BF0
thumb_func_start sub_080850B0
sub_080850B0: @ 0x080850B0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080850C8
movs r0, #4
strb r0, [r1, #0xc]
movs r0, #0x60
strb r0, [r1, #0xe]
_080850C8:
pop {pc}
.align 2, 0
thumb_func_start sub_080850CC
sub_080850CC: @ 0x080850CC
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080850F0
ldr r2, _080850F4 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _080850F8 @ =0x0000DFFF
ands r0, r1
strh r0, [r2]
adds r0, r4, #0
bl sub_0805E7BC
_080850F0:
pop {r4, pc}
.align 2, 0
_080850F4: .4byte gUnk_03000F50
_080850F8: .4byte 0x0000DFFF
thumb_func_start sub_080850FC
sub_080850FC: @ 0x080850FC
push {r4, r5, r6, lr}
movs r1, #0x2e
ldrsh r4, [r0, r1]
ldr r2, _0808518C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r4, r4, r1
asrs r4, r4, #4
movs r3, #0x3f
ands r4, r3
movs r5, #0x32
ldrsh r1, [r0, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r4, r1
adds r0, #0x38
ldrb r6, [r0]
ldr r5, _08085190 @ =0x0000403D
adds r1, r4, #0
subs r1, #0x41
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r1, r4, #0
subs r1, #0x40
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r1, r4, #0
subs r1, #0x3f
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
subs r1, r4, #1
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl sub_0800015E
adds r1, r4, #1
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r1, r4, #0
adds r1, #0x3f
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r1, r4, #0
adds r1, #0x40
adds r0, r5, #0
adds r2, r6, #0
bl sub_0800015E
adds r4, #0x41
adds r0, r5, #0
adds r1, r4, #0
adds r2, r6, #0
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0808518C: .4byte gUnk_03000BF0
_08085190: .4byte 0x0000403D
thumb_func_start sub_08085194
sub_08085194: @ 0x08085194
push {lr}
ldr r2, _080851A8 @ =gUnk_081205D0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080851A8: .4byte gUnk_081205D0
thumb_func_start sub_080851AC
sub_080851AC: @ 0x080851AC
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r1, [r5, #0xb]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _080851E8
adds r1, r5, #0
adds r1, #0x7c
ldr r0, _080851E4 @ =0x0000FFFF
strh r0, [r1]
b _080851EE
.align 2, 0
_080851E4: .4byte 0x0000FFFF
_080851E8:
adds r0, r5, #0
adds r0, #0x7c
strh r3, [r0]
_080851EE:
ldrb r1, [r5, #0xb]
movs r0, #2
ands r0, r1
strb r0, [r5, #0x14]
ldrb r4, [r5, #0xa]
cmp r4, #3
bne _0808521E
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r1, r5, #0
adds r1, #0x7a
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
beq _0808521E
ldrb r0, [r5, #0x14]
adds r0, #2
movs r1, #3
ands r0, r1
strb r0, [r5, #0x14]
strb r4, [r5, #0xc]
_0808521E:
ldrb r1, [r5, #0x14]
adds r0, r5, #0
bl sub_08004260
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_0808094C
movs r1, #0x2e
ldrsh r2, [r5, r1]
ldr r3, _08085260 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r2, r2, r1
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r6, #0x32
ldrsh r1, [r5, r6]
ldrh r3, [r3, #8]
subs r1, r1, r3
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r2, r1
lsls r2, r2, #1
adds r2, #4
adds r0, r0, r2
str r0, [r5, #0x70]
adds r0, r5, #0
bl sub_08085394
pop {r4, r5, r6, pc}
.align 2, 0
_08085260: .4byte gUnk_03000BF0
thumb_func_start sub_08085264
sub_08085264: @ 0x08085264
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x86
ldrh r0, [r5]
bl sub_0807CBE4
cmp r0, #0
beq _080852AE
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _0808528A
ldrh r0, [r5]
bl sub_0807CD48
_0808528A:
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
ldrb r1, [r4, #0x14]
adds r0, r0, r1
movs r1, #3
ands r0, r1
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_0808543C
ldr r0, _080852B0 @ =0x00000151
bl sub_08004488
_080852AE:
pop {r4, r5, pc}
.align 2, 0
_080852B0: .4byte 0x00000151
thumb_func_start sub_080852B4
sub_080852B4: @ 0x080852B4
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08085300
movs r4, #3
movs r0, #3
strb r0, [r5, #0xc]
ldrb r0, [r5, #0xe]
strb r0, [r5, #0xf]
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r1, r5, #0
adds r1, #0x7a
strh r0, [r1]
adds r0, r5, #0
adds r0, #0x7c
ldrb r0, [r0]
ldrb r1, [r5, #0x14]
adds r0, r0, r1
ands r0, r4
strb r0, [r5, #0x14]
ldrb r1, [r5, #0x14]
adds r0, r5, #0
bl sub_08004260
adds r0, r5, #0
bl sub_08085394
ldr r0, _08085304 @ =0x00000151
bl sub_08004488
_08085300:
pop {r4, r5, pc}
.align 2, 0
_08085304: .4byte 0x00000151
thumb_func_start sub_08085308
sub_08085308: @ 0x08085308
push {r4, lr}
adds r4, r0, #0
bl sub_080854A8
cmp r0, #0
bne _0808538C
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _08085324
cmp r0, #2
ble _08085354
cmp r0, #3
beq _08085338
b _08085354
_08085324:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _08085354
movs r0, #1
strb r0, [r4, #0xc]
b _0808538C
_08085338:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r1, r4, #0
adds r1, #0x7a
ldrh r1, [r1]
cmp r0, r1
bne _08085350
movs r0, #0xff
b _08085352
_08085350:
movs r0, #1
_08085352:
strb r0, [r4, #0xf]
_08085354:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808538C
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
ldrb r1, [r4, #0x14]
adds r0, r0, r1
movs r1, #3
ands r0, r1
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_0808543C
ldr r0, _08085390 @ =0x00000151
bl sub_08004488
_0808538C:
pop {r4, pc}
.align 2, 0
_08085390: .4byte 0x00000151
thumb_func_start sub_08085394
sub_08085394: @ 0x08085394
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r7, r0, #0
ldr r0, _08085430 @ =gUnk_081205E0
ldrb r2, [r7, #0x14]
lsrs r2, r2, #1
lsls r2, r2, #1
adds r0, r2, r0
ldrh r0, [r0]
mov sl, r0
ldr r0, _08085434 @ =gUnk_080B4488
adds r2, r2, r0
ldr r0, [r7, #0x70]
mov sb, r0
movs r1, #0x2e
ldrsh r4, [r7, r1]
ldr r1, _08085438 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r4, r4, r0
asrs r4, r4, #4
movs r3, #0x3f
ands r4, r3
movs r5, #0x32
ldrsh r0, [r7, r5]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
mov r8, r2
lsls r5, r2, #1
mov r1, sb
subs r0, r1, r5
ldrh r1, [r0]
adds r0, r7, #0
adds r0, #0x74
strh r1, [r0]
subs r1, r4, r2
adds r6, r7, #0
adds r6, #0x38
ldrb r2, [r6]
mov r0, sl
bl sub_0800015E
mov r1, sb
ldrh r0, [r1]
adds r1, r7, #0
adds r1, #0x76
strh r0, [r1]
ldrb r2, [r6]
mov r0, sl
adds r1, r4, #0
bl sub_0800015E
add r5, sb
ldrh r1, [r5]
adds r0, r7, #0
adds r0, #0x78
strh r1, [r0]
add r4, r8
ldrb r2, [r6]
mov r0, sl
adds r1, r4, #0
bl sub_0800015E
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08085430: .4byte gUnk_081205E0
_08085434: .4byte gUnk_080B4488
_08085438: .4byte gUnk_03000BF0
thumb_func_start sub_0808543C
sub_0808543C: @ 0x0808543C
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldr r0, _080854A0 @ =gUnk_080B4488
ldrb r2, [r7, #0x14]
lsrs r2, r2, #1
lsls r2, r2, #1
adds r2, r2, r0
movs r0, #0x2e
ldrsh r4, [r7, r0]
ldr r1, _080854A4 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r4, r4, r0
asrs r4, r4, #4
movs r3, #0x3f
ands r4, r3
movs r5, #0x32
ldrsh r0, [r7, r5]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r4, r0
adds r0, r7, #0
adds r0, #0x74
ldrh r0, [r0]
movs r6, #0
ldrsb r6, [r2, r6]
subs r1, r4, r6
adds r5, r7, #0
adds r5, #0x38
ldrb r2, [r5]
bl sub_0800015E
adds r0, r7, #0
adds r0, #0x76
ldrh r0, [r0]
ldrb r2, [r5]
adds r1, r4, #0
bl sub_0800015E
adds r0, r7, #0
adds r0, #0x78
ldrh r0, [r0]
adds r4, r4, r6
ldrb r2, [r5]
adds r1, r4, #0
bl sub_0800015E
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080854A0: .4byte gUnk_080B4488
_080854A4: .4byte gUnk_03000BF0
thumb_func_start sub_080854A8
sub_080854A8: @ 0x080854A8
push {r4, lr}
ldr r2, _080854E0 @ =gUnk_081205E0
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
lsls r1, r1, #1
adds r2, r1, r2
ldrh r3, [r2]
adds r4, r3, #0
ldr r2, _080854E4 @ =gUnk_080B4488
adds r1, r1, r2
ldr r2, [r0, #0x70]
movs r0, #0
ldrsb r0, [r1, r0]
lsls r1, r0, #1
subs r0, r2, r1
ldrh r0, [r0]
cmp r3, r0
bne _080854E8
ldrh r0, [r2]
cmp r3, r0
bne _080854E8
adds r0, r1, r2
ldrh r0, [r0]
cmp r4, r0
bne _080854E8
movs r0, #0
b _080854EA
.align 2, 0
_080854E0: .4byte gUnk_081205E0
_080854E4: .4byte gUnk_080B4488
_080854E8:
movs r0, #1
_080854EA:
pop {r4, pc}
thumb_func_start sub_080854EC
sub_080854EC: @ 0x080854EC
push {lr}
ldr r2, _08085500 @ =gUnk_08120608
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08085500: .4byte gUnk_08120608
thumb_func_start sub_08085504
sub_08085504: @ 0x08085504
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0xff
bne _08085520
movs r0, #0x46
bl sub_0807CA84
cmp r0, #0
beq _0808551C
bl sub_0805E780
_0808551C:
movs r0, #0
strb r0, [r4, #0xa]
_08085520:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08085552
ldr r0, _08085540 @ =gUnk_02033A90
ldrb r0, [r0, #1]
cmp r0, #0x1b
beq _08085544
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _08085552
movs r0, #5
strb r0, [r4, #0xc]
b _080855E2
.align 2, 0
_08085540: .4byte gUnk_02033A90
_08085544:
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _08085552
bl sub_0805E780
_08085552:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808556C
adds r0, r4, #0
bl sub_080040A2
cmp r0, #0
bne _08085566
bl sub_0805E780
_08085566:
movs r0, #0
strb r0, [r4, #0xe]
b _0808557A
_0808556C:
adds r0, r4, #0
bl sub_0805EABC
cmp r0, #0
beq _0808557A
bl sub_0805E780
_0808557A:
movs r2, #1
strb r2, [r4, #0xc]
movs r3, #0
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldr r0, _080855E4 @ =gUnk_08120640
str r0, [r4, #0x48]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
subs r1, #1
movs r0, #4
strb r0, [r1]
movs r0, #0x80
lsls r0, r0, #0x11
str r0, [r4, #0x78]
adds r1, #0x43
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x85
strb r3, [r0]
subs r0, #1
strb r3, [r0]
adds r0, r4, #0
movs r1, #9
bl sub_08004260
adds r0, r4, #0
bl sub_080855E8
_080855E2:
pop {r4, pc}
.align 2, 0
_080855E4: .4byte gUnk_08120640
thumb_func_start sub_080855E8
sub_080855E8: @ 0x080855E8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
ldrb r1, [r7, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r7, #0x10]
ldr r6, _0808564C @ =gLinkEntity
adds r0, r7, #0
adds r1, r6, #0
movs r2, #0x18
bl sub_0806FC80
adds r1, r0, #0
cmp r1, #0
beq _080856EE
ldr r3, _08085650 @ =gUnk_03003F80
ldr r0, [r3, #0x30]
movs r1, #2
orrs r0, r1
str r0, [r3, #0x30]
ldr r4, [r6, #0x34]
cmp r4, #0
beq _0808561C
b _080857CE
_0808561C:
adds r5, r3, #0
adds r5, #0x26
ldrb r0, [r5]
cmp r0, #0
beq _08085634
adds r2, r6, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0xfb
ands r0, r1
strb r0, [r2]
strb r4, [r5]
_08085634:
adds r0, r3, #0
adds r0, #0x84
str r7, [r0]
adds r0, r7, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08085654
adds r0, r6, #0
bl sub_0800455E
b _0808565A
.align 2, 0
_0808564C: .4byte gLinkEntity
_08085650: .4byte gUnk_03003F80
_08085654:
adds r0, r6, #0
bl sub_08004542
_0808565A:
ldrb r0, [r7, #0xf]
cmp r0, #0
bne _0808568C
movs r0, #4
strb r0, [r7, #0xf]
_08085664:
adds r0, r7, #0
movs r1, #8
movs r2, #0xa
bl sub_080A2AF4
ldrb r0, [r7, #0xf]
subs r0, #1
strb r0, [r7, #0xf]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _08085664
movs r0, #1
strb r0, [r7, #0xf]
ldrb r1, [r7, #0xe]
movs r0, #0x80
orrs r0, r1
strb r0, [r7, #0xe]
str r2, [r7, #0x70]
str r2, [r7, #0x6c]
_0808568C:
ldr r2, _080856B8 @ =gUnk_03003F80
ldrb r0, [r2, #0x1c]
cmp r0, #3
beq _08085696
b _080857CE
_08085696:
ldr r1, _080856BC @ =gUnk_08120620
ldrb r0, [r2, #0x1d]
subs r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r4, [r0]
ldr r0, _080856C0 @ =gLinkEntity
ldrb r0, [r0, #0x14]
movs r1, #6
ands r1, r0
cmp r1, #2
beq _080856DE
cmp r1, #2
bgt _080856C4
cmp r1, #0
beq _080856D6
b _080857CE
.align 2, 0
_080856B8: .4byte gUnk_03003F80
_080856BC: .4byte gUnk_08120620
_080856C0: .4byte gLinkEntity
_080856C4:
cmp r1, #4
beq _080856CE
cmp r1, #6
beq _080856E6
b _080857CE
_080856CE:
ldr r0, [r7, #0x70]
subs r0, r0, r4
str r0, [r7, #0x70]
b _080857CE
_080856D6:
ldr r0, [r7, #0x70]
adds r0, r0, r4
str r0, [r7, #0x70]
b _080857CE
_080856DE:
ldr r0, [r7, #0x6c]
subs r0, r0, r4
str r0, [r7, #0x6c]
b _080857CE
_080856E6:
ldr r0, [r7, #0x6c]
adds r0, r0, r4
str r0, [r7, #0x6c]
b _080857CE
_080856EE:
ldrb r0, [r7, #0xf]
cmp r0, #0
beq _080856FC
strb r1, [r7, #0xf]
movs r0, #0x83
bl sub_080A3268
_080856FC:
adds r2, r7, #0
adds r2, #0x41
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
mov r8, r2
cmp r0, #0x13
bne _080857C8
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r3, _08085758 @ =gUnk_08126EE4
ldrb r2, [r6, #0x14]
movs r0, #0xe
ands r0, r2
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r5, r1, r0
movs r0, #0x32
ldrsh r1, [r6, r0]
movs r0, #1
orrs r0, r2
adds r0, r0, r3
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r3, r1, r0
movs r1, #0x2e
ldrsh r0, [r7, r1]
movs r2, #0x32
ldrsh r1, [r7, r2]
adds r2, r5, #0
bl sub_080045D4
strb r0, [r7, #0x15]
ldr r0, _0808575C @ =gUnk_03003F80
ldrb r0, [r0, #0x1d]
cmp r0, #2
beq _0808576A
cmp r0, #2
bgt _08085760
cmp r0, #1
beq _08085770
b _08085774
.align 2, 0
_08085758: .4byte gUnk_08126EE4
_0808575C: .4byte gUnk_03003F80
_08085760:
cmp r0, #3
bne _08085774
movs r4, #0x80
lsls r4, r4, #3
b _08085774
_0808576A:
movs r4, #0xc0
lsls r4, r4, #2
b _08085774
_08085770:
movs r4, #0x80
lsls r4, r4, #2
_08085774:
ldr r6, _080858A8 @ =gUnk_080C9160
ldrb r0, [r7, #0x15]
lsls r0, r0, #4
adds r0, r0, r6
movs r1, #0
ldrsh r0, [r0, r1]
lsls r4, r4, #0x10
asrs r4, r4, #0x18
adds r1, r4, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r5, #0x80
lsls r5, r5, #1
adds r1, r5, #0
bl sub_0806FA04
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r7, #0x6c]
adds r1, r1, r0
str r1, [r7, #0x6c]
ldrb r0, [r7, #0x15]
lsls r0, r0, #4
adds r0, #0x80
adds r0, r0, r6
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r4, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r5, #0
bl sub_0806FA04
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r7, #0x70]
subs r1, r1, r0
str r1, [r7, #0x70]
_080857C8:
movs r0, #0
mov r1, r8
strb r0, [r1]
_080857CE:
ldr r0, [r7, #0x2c]
str r0, [r7, #0x54]
ldr r0, [r7, #0x30]
str r0, [r7, #0x50]
ldr r0, [r7, #0x6c]
cmp r0, #0
bne _080857E4
ldr r0, [r7, #0x70]
cmp r0, #0
bne _080857E4
b _080859F4
_080857E4:
ldr r0, [r7, #0x70]
ldr r1, _080858AC @ =0xFFFF0000
cmp r0, r1
blt _080857F4
movs r1, #0x80
lsls r1, r1, #9
cmp r0, r1
ble _080857F6
_080857F4:
str r1, [r7, #0x70]
_080857F6:
ldr r0, [r7, #0x6c]
ldr r1, _080858AC @ =0xFFFF0000
cmp r0, r1
blt _08085806
movs r1, #0x80
lsls r1, r1, #9
cmp r0, r1
ble _08085808
_08085806:
str r1, [r7, #0x6c]
_08085808:
ldr r0, _080858B0 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0808581A
adds r0, r7, #0
bl sub_080A2AD4
_0808581A:
ldr r0, [r7, #0x2c]
ldr r1, [r7, #0x6c]
adds r5, r0, r1
ldr r1, [r7, #0x30]
ldr r2, [r7, #0x70]
adds r3, r1, r2
adds r2, r5, #0
bl sub_080045D4
strb r0, [r7, #0x15]
ldr r0, [r7, #0x6c]
lsls r0, r0, #8
asrs r0, r0, #0x10
movs r4, #0x80
lsls r4, r4, #1
adds r1, r4, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldr r5, _080858A8 @ =gUnk_080C9160
ldrb r1, [r7, #0x15]
lsls r1, r1, #4
adds r1, r1, r5
movs r2, #0
ldrsh r1, [r1, r2]
bl sub_0806FA04
strh r0, [r7, #0x24]
ldr r0, [r7, #0x70]
lsls r0, r0, #8
asrs r0, r0, #0x10
adds r1, r4, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
ldrb r1, [r7, #0x15]
lsls r1, r1, #4
adds r1, #0x80
adds r1, r1, r5
movs r2, #0
ldrsh r1, [r1, r2]
bl sub_0806FA04
lsls r0, r0, #0x10
asrs r0, r0, #0x10
rsbs r4, r0, #0
movs r1, #0x24
ldrsh r0, [r7, r1]
cmp r4, r0
ble _08085884
strh r4, [r7, #0x24]
_08085884:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _080858BC
adds r0, r7, #0
adds r0, #0x7e
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _080858B4 @ =0x00000FFF
cmp r1, r0
bgt _080858B8
movs r0, #0x24
ldrsh r1, [r7, r0]
lsls r1, r1, #0xc
ldr r0, [r7, #0x7c]
adds r0, r0, r1
str r0, [r7, #0x7c]
b _080858E0
.align 2, 0
_080858A8: .4byte gUnk_080C9160
_080858AC: .4byte 0xFFFF0000
_080858B0: .4byte gUnk_030010A0
_080858B4: .4byte 0x00000FFF
_080858B8:
movs r0, #0
b _080858DE
_080858BC:
adds r0, r7, #0
adds r0, #0x7e
movs r2, #0
ldrsh r1, [r0, r2]
ldr r0, _080858D8 @ =0xFFFFF000
cmp r1, r0
ble _080858DC
movs r0, #0x24
ldrsh r1, [r7, r0]
lsls r1, r1, #0xc
ldr r0, [r7, #0x7c]
subs r0, r0, r1
str r0, [r7, #0x7c]
b _080858E0
.align 2, 0
_080858D8: .4byte 0xFFFFF000
_080858DC:
movs r0, #1
_080858DE:
strb r0, [r7, #0xb]
_080858E0:
adds r0, r7, #0
bl sub_08085EFC
adds r0, r7, #0
bl sub_080AF134
ldr r1, [r7, #0x54]
ldr r0, [r7, #0x2c]
cmp r1, r0
bne _0808590C
adds r0, r7, #0
adds r0, #0x85
ldrb r1, [r0]
adds r2, r0, #0
cmp r1, #2
bne _08085906
movs r0, #0
str r0, [r7, #0x6c]
b _08085916
_08085906:
adds r0, r1, #1
strb r0, [r2]
b _08085916
_0808590C:
adds r1, r7, #0
adds r1, #0x85
movs r0, #0
strb r0, [r1]
adds r2, r1, #0
_08085916:
ldr r1, [r7, #0x50]
ldr r0, [r7, #0x30]
cmp r1, r0
bne _0808592E
ldrb r0, [r2]
cmp r0, #2
bne _0808592A
movs r0, #0
str r0, [r7, #0x70]
b _08085932
_0808592A:
adds r0, #1
b _08085930
_0808592E:
movs r0, #0
_08085930:
strb r0, [r2]
_08085932:
ldr r0, _0808595C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _08085944
adds r0, r7, #0
bl sub_08085F1C
_08085944:
ldr r1, [r7, #0x6c]
cmp r1, #0
beq _08085998
cmp r1, #0
bge _0808596E
movs r0, #0x80
rsbs r0, r0, #0
cmp r1, r0
ble _08085960
movs r0, #0
b _08085964
.align 2, 0
_0808595C: .4byte gUnk_03003F80
_08085960:
adds r0, r1, #0
adds r0, #0x80
_08085964:
str r0, [r7, #0x6c]
ldrh r2, [r7, #0x2a]
movs r1, #0xe0
lsls r1, r1, #4
b _08085982
_0808596E:
cmp r1, #0x7f
bhi _08085976
movs r0, #0
b _0808597A
_08085976:
adds r0, r1, #0
subs r0, #0x80
_0808597A:
str r0, [r7, #0x6c]
ldrh r2, [r7, #0x2a]
movs r1, #0xe0
lsls r1, r1, #8
_08085982:
adds r0, r1, #0
ands r0, r2
cmp r0, r1
bne _08085998
ldr r0, [r7, #0x6c]
cmp r0, #0
bge _08085992
adds r0, #3
_08085992:
asrs r0, r0, #2
rsbs r0, r0, #0
str r0, [r7, #0x6c]
_08085998:
ldr r1, [r7, #0x70]
cmp r1, #0
beq _080859E6
cmp r1, #0
bge _080859C0
movs r0, #0x80
rsbs r0, r0, #0
cmp r1, r0
ble _080859AE
movs r0, #0
b _080859B2
_080859AE:
adds r0, r1, #0
adds r0, #0x80
_080859B2:
str r0, [r7, #0x70]
ldrh r1, [r7, #0x2a]
movs r0, #0xe
ands r0, r1
cmp r0, #0xe
bne _080859E6
b _080859D8
_080859C0:
cmp r1, #0x7f
bhi _080859C8
movs r0, #0
b _080859CC
_080859C8:
adds r0, r1, #0
subs r0, #0x80
_080859CC:
str r0, [r7, #0x70]
ldrh r1, [r7, #0x2a]
movs r0, #0xe0
ands r0, r1
cmp r0, #0xe0
bne _080859E6
_080859D8:
ldr r0, [r7, #0x70]
cmp r0, #0
bge _080859E0
adds r0, #3
_080859E0:
asrs r0, r0, #2
rsbs r0, r0, #0
str r0, [r7, #0x70]
_080859E6:
adds r0, r7, #0
bl sub_08085D28
adds r0, r7, #0
bl sub_08085D60
b _08085A0A
_080859F4:
ldr r0, _08085A18 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _08085A0A
adds r0, r7, #0
movs r1, #8
movs r2, #0xa
bl sub_080A2AF4
_08085A0A:
adds r0, r7, #0
bl sub_08085F48
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08085A18: .4byte gUnk_030010A0
thumb_func_start sub_08085A1C
sub_08085A1C: @ 0x08085A1C
push {lr}
ldr r2, _08085A3C @ =gUnk_0812062C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldr r2, _08085A40 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #2
orrs r0, r1
str r0, [r2, #0x30]
bl sub_08078B48
pop {pc}
.align 2, 0
_08085A3C: .4byte gUnk_0812062C
_08085A40: .4byte gUnk_03003F80
thumb_func_start sub_08085A44
sub_08085A44: @ 0x08085A44
push {r4, lr}
adds r4, r0, #0
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
adds r0, r4, #0
movs r1, #0x10
movs r2, #0x18
bl sub_080002B4
cmp r0, #0x11
beq _08085A62
movs r0, #0x18
strb r0, [r4, #0x15]
b _08085A82
_08085A62:
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r4, #0
movs r2, #0x18
bl sub_080002B4
cmp r0, #0x11
beq _08085A78
movs r0, #8
strb r0, [r4, #0x15]
b _08085A82
_08085A78:
movs r0, #0x10
strb r0, [r4, #0x15]
movs r0, #1
strb r0, [r4, #0xd]
b _08085A94
_08085A82:
adds r0, r4, #0
bl sub_08085EFC
adds r0, r4, #0
bl sub_080AF134
adds r0, r4, #0
bl sub_08085F1C
_08085A94:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08085A98
sub_08085A98: @ 0x08085A98
push {r4, lr}
adds r4, r0, #0
bl sub_08085EFC
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_08085F1C
ldr r1, [r4, #0x78]
ldr r0, _08085B00 @ =0x007FFFFF
cmp r1, r0
bls _08085ACC
ldr r2, _08085B04 @ =0xFFFE0000
adds r0, r1, r2
str r0, [r4, #0x78]
adds r0, r4, #0
adds r0, #0x7a
ldrh r2, [r0]
adds r0, #4
ldrh r3, [r0]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
_08085ACC:
adds r0, r4, #0
movs r1, #0
movs r2, #0x18
bl sub_080002B4
cmp r0, #0x11
beq _08085B34
movs r0, #2
strb r0, [r4, #0xd]
ldr r0, _08085B08 @ =gUnk_02033A90
ldrb r0, [r0, #1]
cmp r0, #0x1b
bne _08085B10
ldrh r0, [r4, #0x32]
adds r0, #0xd0
strh r0, [r4, #0x32]
ldr r0, _08085B0C @ =0x0000FF30
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x82
movs r0, #0x46
strh r0, [r1]
movs r0, #0x73
bl sub_0807CCB4
b _08085B22
.align 2, 0
_08085B00: .4byte 0x007FFFFF
_08085B04: .4byte 0xFFFE0000
_08085B08: .4byte gUnk_02033A90
_08085B0C: .4byte 0x0000FF30
_08085B10:
ldrh r0, [r4, #0x32]
adds r0, #0x40
strh r0, [r4, #0x32]
ldr r0, _08085B38 @ =0x0000FFC0
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x82
movs r0, #0xf
strh r0, [r1]
_08085B22:
adds r0, r4, #0
movs r1, #0x2b
movs r2, #0
movs r3, #0
bl sub_080A2988
ldr r0, _08085B3C @ =0x0000012D
bl sub_080A3268
_08085B34:
pop {r4, pc}
.align 2, 0
_08085B38: .4byte 0x0000FFC0
_08085B3C: .4byte 0x0000012D
thumb_func_start sub_08085B40
sub_08085B40: @ 0x08085B40
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x34]
cmp r0, #0
beq _08085BB4
movs r1, #0x80
lsls r1, r1, #6
adds r0, r5, #0
bl sub_08003FC4
cmp r0, #0
beq _08085BE8
ldr r1, [r5, #0x78]
ldr r0, _08085B9C @ =0x011FFFFF
cmp r1, r0
bhi _08085B7A
movs r2, #0x80
lsls r2, r2, #0xd
adds r0, r1, r2
str r0, [r5, #0x78]
adds r0, r5, #0
adds r0, #0x7a
ldrh r2, [r0]
adds r0, #4
ldrh r3, [r0]
adds r0, r5, #0
adds r1, r2, #0
bl sub_0805EC9C
_08085B7A:
ldr r4, _08085BA0 @ =gLinkEntity
ldrh r3, [r5, #0x32]
ldrh r0, [r5, #0x36]
adds r0, r3, r0
adds r1, r5, #0
adds r1, #0x74
ldrh r1, [r1]
subs r2, r0, r1
strh r2, [r4, #0x32]
ldr r0, _08085BA4 @ =gUnk_02033A90
ldrb r0, [r0, #1]
cmp r0, #0x1b
bne _08085BA8
subs r0, r3, r1
adds r1, r2, #0
adds r1, #0xd0
b _08085BAE
.align 2, 0
_08085B9C: .4byte 0x011FFFFF
_08085BA0: .4byte gLinkEntity
_08085BA4: .4byte gUnk_02033A90
_08085BA8:
subs r0, r3, r1
adds r1, r2, #0
adds r1, #0x40
_08085BAE:
subs r0, r0, r1
strh r0, [r4, #0x36]
b _08085BE8
_08085BB4:
adds r0, r5, #0
bl sub_0800455E
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0xd
bne _08085BE8
ldr r4, _08085C50 @ =gLinkEntity
adds r0, r4, #0
bl sub_0800455E
adds r0, r5, #0
bl sub_08085CDC
adds r0, r4, #0
adds r1, r5, #0
bl sub_080045C4
strb r0, [r5, #0x15]
movs r1, #0x80
lsls r1, r1, #1
ldrb r2, [r5, #0x15]
adds r0, r4, #0
bl sub_0806F5BC
_08085BE8:
adds r1, r5, #0
adds r1, #0x82
ldrh r0, [r1]
cmp r0, #0
bne _08085C54
ldr r4, _08085C50 @ =gLinkEntity
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08085C58
adds r0, r4, #0
bl sub_0800455E
adds r0, r5, #0
bl sub_08085F1C
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #4
strb r0, [r5, #0xf]
_08085C16:
adds r0, r5, #0
movs r1, #8
movs r2, #0xa
bl sub_080A2AF4
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _08085C16
movs r0, #1
strb r0, [r5, #0xf]
ldrb r1, [r5, #0xe]
movs r0, #0x80
orrs r0, r1
strb r0, [r5, #0xe]
str r2, [r5, #0x70]
str r2, [r5, #0x6c]
adds r0, r5, #0
bl sub_080002B8
cmp r0, #0xd
bne _08085C58
movs r0, #4
strb r0, [r5, #0xc]
b _08085C58
.align 2, 0
_08085C50: .4byte gLinkEntity
_08085C54:
subs r0, #1
strh r0, [r1]
_08085C58:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08085C5C
sub_08085C5C: @ 0x08085C5C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08085CA0 @ =gLinkEntity
adds r1, r5, #0
movs r2, #0x18
bl sub_0806FC80
cmp r0, #0
beq _08085CAE
adds r0, r4, #0
bl sub_0806F69C
ldrh r0, [r4, #0x24]
strh r0, [r5, #0x24]
ldrb r0, [r4, #0x15]
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F69C
ldr r2, _08085CA4 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #2
orrs r0, r1
str r0, [r2, #0x30]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08085CA8
adds r0, r5, #0
bl sub_0800455E
b _08085CAE
.align 2, 0
_08085CA0: .4byte gLinkEntity
_08085CA4: .4byte gUnk_03003F80
_08085CA8:
adds r0, r5, #0
bl sub_08004542
_08085CAE:
ldr r3, _08085CD4 @ =gUnk_03000BF0
ldrh r0, [r3]
cmp r0, #0
bne _08085CD2
ldrb r1, [r4, #0x10]
movs r0, #0xdf
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
lsrs r2, r1, #4
subs r0, #0x11
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
ldr r0, _08085CD8 @ =gLinkEntity
str r0, [r3, #0x30]
_08085CD2:
pop {r4, r5, pc}
.align 2, 0
_08085CD4: .4byte gUnk_03000BF0
_08085CD8: .4byte gLinkEntity
thumb_func_start sub_08085CDC
sub_08085CDC: @ 0x08085CDC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x78]
movs r1, #0x80
lsls r1, r1, #0xd
adds r0, r0, r1
str r0, [r4, #0x78]
ldr r1, _08085D04 @ =0x03FFFFFF
cmp r0, r1
bhi _08085D08
adds r0, r4, #0
adds r0, #0x7a
ldrh r2, [r0]
adds r0, #4
ldrh r3, [r0]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
b _08085D0C
.align 2, 0
_08085D04: .4byte 0x03FFFFFF
_08085D08:
bl sub_0805E780
_08085D0C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08085D10
sub_08085D10: @ 0x08085D10
push {r4, lr}
adds r4, r0, #0
bl sub_0805EABC
cmp r0, #0
beq _08085D26
ldrb r0, [r4, #0xb]
bl sub_0807CCB4
bl sub_0805E780
_08085D26:
pop {r4, pc}
thumb_func_start sub_08085D28
sub_08085D28: @ 0x08085D28
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _08085D5C @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x13
beq _08085D5A
ldr r0, [r1, #0x30]
movs r5, #2
ands r0, r5
cmp r0, #0
beq _08085D5A
adds r0, r4, #0
movs r1, #0
movs r2, #0x18
bl sub_080002B4
cmp r0, #0x11
bne _08085D5A
movs r0, #0
strb r5, [r4, #0xc]
strb r0, [r4, #0xd]
bl sub_08078B48
_08085D5A:
pop {r4, r5, pc}
.align 2, 0
_08085D5C: .4byte gUnk_03003F80
thumb_func_start sub_08085D60
sub_08085D60: @ 0x08085D60
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldr r2, _08085D94 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _08085E64
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x12
beq _08085E64
ldrb r0, [r2, #2]
cmp r0, #0
bne _08085E64
ldrb r1, [r5, #0x15]
movs r0, #7
ands r0, r1
cmp r0, #0
bne _08085D98
ldrb r6, [r5, #0x15]
adds r4, r6, #0
b _08085DB0
.align 2, 0
_08085D94: .4byte gUnk_03003F80
_08085D98:
movs r0, #0x10
ands r0, r1
movs r4, #8
cmp r0, #0
beq _08085DA4
movs r4, #0x18
_08085DA4:
ldrb r0, [r5, #0x15]
subs r0, #8
movs r6, #0x10
cmp r0, #0x10
ble _08085DB0
movs r6, #0
_08085DB0:
cmp r4, #0x18
beq _08085DB8
cmp r4, #8
bne _08085E20
_08085DB8:
lsrs r3, r4, #2
ldr r1, _08085E10 @ =gUnk_08120638
adds r0, r3, r1
movs r7, #0
ldrsb r7, [r0, r7]
adds r0, r3, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
mov r8, r0
adds r0, r5, #0
adds r1, r7, #0
mov r2, r8
bl sub_080002CC
cmp r0, #0xff
bne _08085E20
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r2, _08085E14 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
adds r0, r0, r7
movs r3, #0x32
ldrsh r1, [r5, r3]
ldrh r2, [r2, #8]
subs r1, r1, r2
add r1, r8
adds r2, r4, #0
movs r3, #5
bl sub_080806BC
cmp r0, #0
bne _08085E1C
ldr r0, _08085E18 @ =gLinkEntity
lsrs r1, r4, #3
bl sub_0807BD14
cmp r0, #0
beq _08085E20
strb r4, [r5, #0x15]
b _08085E52
.align 2, 0
_08085E10: .4byte gUnk_08120638
_08085E14: .4byte gUnk_03000BF0
_08085E18: .4byte gLinkEntity
_08085E1C:
strb r4, [r5, #0x15]
b _08085E6C
_08085E20:
cmp r6, #0
beq _08085E28
cmp r6, #0x10
bne _08085E6C
_08085E28:
lsrs r3, r6, #2
ldr r2, _08085E5C @ =gUnk_08120638
adds r0, r3, r2
movs r1, #0
ldrsb r1, [r0, r1]
adds r0, r3, #1
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r5, #0
bl sub_080002CC
cmp r0, #0xff
bne _08085E6C
ldr r0, _08085E60 @ =gLinkEntity
lsrs r1, r6, #3
bl sub_0807BD14
cmp r0, #0
beq _08085E6C
strb r6, [r5, #0x15]
_08085E52:
adds r0, r5, #0
bl sub_08085E74
b _08085E6C
.align 2, 0
_08085E5C: .4byte gUnk_08120638
_08085E60: .4byte gLinkEntity
_08085E64:
ldrb r1, [r5, #0x10]
movs r0, #0xdf
ands r0, r1
strb r0, [r5, #0x10]
_08085E6C:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08085E74
sub_08085E74: @ 0x08085E74
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2, #0x11]
movs r0, #3
strb r0, [r2, #0xc]
ldrb r0, [r2, #0x15]
cmp r0, #8
beq _08085EB8
cmp r0, #8
bgt _08085EA2
cmp r0, #0
beq _08085EAC
b _08085EBE
_08085EA2:
cmp r0, #0x10
beq _08085EB2
cmp r0, #0x18
beq _08085EB8
b _08085EBE
_08085EAC:
movs r0, #0x90
lsls r0, r0, #1
b _08085EBC
_08085EB2:
movs r0, #0x9c
lsls r0, r0, #1
b _08085EBC
_08085EB8:
movs r0, #0x80
lsls r0, r0, #1
_08085EBC:
strh r0, [r2, #0x24]
_08085EBE:
movs r0, #0
str r0, [r2, #0x70]
str r0, [r2, #0x6c]
strh r0, [r2, #0x2c]
strh r0, [r2, #0x30]
ldr r1, _08085EF0 @ =gLinkEntity
strh r0, [r1, #0x2c]
strh r0, [r1, #0x30]
ldrb r0, [r2, #0x15]
strb r0, [r1, #0x15]
ldr r1, _08085EF4 @ =gUnk_03003F80
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #8]
ldr r0, _08085EF8 @ =gUnk_03000BF0
str r2, [r0, #0x30]
ldr r0, [r1, #0x2c]
cmp r0, #0
beq _08085EE8
bl sub_0805E7BC
_08085EE8:
bl sub_08077B2C
pop {pc}
.align 2, 0
_08085EF0: .4byte gLinkEntity
_08085EF4: .4byte gUnk_03003F80
_08085EF8: .4byte gUnk_03000BF0
thumb_func_start sub_08085EFC
sub_08085EFC: @ 0x08085EFC
ldr r3, _08085F18 @ =gLinkEntity
ldrh r1, [r0, #0x2e]
ldrh r2, [r3, #0x2e]
subs r1, r1, r2
adds r2, r0, #0
adds r2, #0x76
strh r1, [r2]
ldrh r1, [r0, #0x32]
ldrh r2, [r3, #0x32]
subs r1, r1, r2
adds r0, #0x74
strh r1, [r0]
bx lr
.align 2, 0
_08085F18: .4byte gLinkEntity
thumb_func_start sub_08085F1C
sub_08085F1C: @ 0x08085F1C
push {lr}
adds r3, r0, #0
ldr r2, _08085F44 @ =gLinkEntity
adds r1, r3, #0
adds r1, #0x76
ldrh r0, [r3, #0x2e]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r2, #0x2e]
adds r1, r3, #0
adds r1, #0x74
ldrh r0, [r3, #0x32]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r2, #0x32]
ldrb r0, [r3, #0x15]
bl sub_0807A5B8
pop {pc}
.align 2, 0
_08085F44: .4byte gLinkEntity
thumb_func_start sub_08085F48
sub_08085F48: @ 0x08085F48
push {r4, r5, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xe]
movs r0, #0x80
ands r0, r2
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
beq _08085F8C
ldr r5, _08085F80 @ =gUnk_03003F80
ldrb r0, [r5, #0x12]
cmp r0, #0x17
bne _08085F6A
bl sub_08078F60
movs r0, #0x19
strb r0, [r5, #0x12]
_08085F6A:
movs r0, #0x83
bl sub_080A3268
ldr r1, [r4, #0x78]
ldr r0, _08085F84 @ =0x0127FFFF
cmp r1, r0
bhi _08085F88
movs r2, #0x80
lsls r2, r2, #0xc
b _08085FF8
.align 2, 0
_08085F80: .4byte gUnk_03003F80
_08085F84: .4byte 0x0127FFFF
_08085F88:
movs r0, #0
b _08086006
_08085F8C:
ldr r0, _08085FAC @ =gUnk_03003F80
ldr r1, [r0, #0x30]
movs r0, #2
ands r1, r0
cmp r1, #0
beq _08085FCC
lsls r0, r2, #0x18
cmp r0, #0
beq _08085FB8
ldr r1, [r4, #0x78]
ldr r0, _08085FB0 @ =0x011FFFFF
cmp r1, r0
bhi _08085FB4
movs r2, #0x80
lsls r2, r2, #8
b _08085FF8
.align 2, 0
_08085FAC: .4byte gUnk_03003F80
_08085FB0: .4byte 0x011FFFFF
_08085FB4:
strb r3, [r4, #0xe]
b _08086008
_08085FB8:
ldr r1, [r4, #0x78]
movs r0, #0x88
lsls r0, r0, #0x11
cmp r1, r0
bls _08086004
ldr r2, _08085FC8 @ =0xFFFF8000
b _08085FF8
.align 2, 0
_08085FC8: .4byte 0xFFFF8000
_08085FCC:
lsls r0, r2, #0x18
cmp r0, #0
beq _08085FEC
ldr r2, [r4, #0x78]
ldr r0, _08085FE4 @ =0x010FFFFF
cmp r2, r0
bhi _08085FE8
movs r1, #0x80
lsls r1, r1, #7
adds r0, r2, r1
str r0, [r4, #0x78]
b _08086008
.align 2, 0
_08085FE4: .4byte 0x010FFFFF
_08085FE8:
strb r1, [r4, #0xe]
b _08086008
_08085FEC:
ldr r1, [r4, #0x78]
movs r0, #0x83
lsls r0, r0, #0x11
cmp r1, r0
bls _08086004
ldr r2, _08086000 @ =0xFFFFC000
_08085FF8:
adds r0, r1, r2
str r0, [r4, #0x78]
b _08086008
.align 2, 0
_08086000: .4byte 0xFFFFC000
_08086004:
movs r0, #1
_08086006:
strb r0, [r4, #0xe]
_08086008:
adds r0, r4, #0
adds r0, #0x7a
ldrh r2, [r0]
adds r0, #4
ldrh r3, [r0]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
pop {r4, r5, pc}
thumb_func_start sub_0808601C
sub_0808601C: @ 0x0808601C
push {lr}
ldr r2, _08086030 @ =gUnk_08120648
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086030: .4byte gUnk_08120648
thumb_func_start sub_08086034
sub_08086034: @ 0x08086034
push {lr}
movs r3, #1
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
adds r1, r0, #0
adds r1, #0x58
ldrb r1, [r1]
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_08086054
sub_08086054: @ 0x08086054
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08086064
adds r0, r4, #0
bl sub_08004274
_08086064:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0808607C
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0808607C:
ldrb r0, [r4, #0xe]
lsls r1, r0, #0x18
cmp r1, #0
blt _080860AA
cmp r1, #0
beq _08086098
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080860AA
bl sub_0805E780
b _080860AA
_08086098:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080860AA
bl sub_0805E780
_080860AA:
ldr r1, [r4, #0x54]
cmp r1, #0
beq _080860BC
ldr r0, [r1, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r1, #0x30]
str r0, [r4, #0x30]
ldr r0, [r1, #0x34]
str r0, [r4, #0x34]
_080860BC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080860C0
sub_080860C0: @ 0x080860C0
push {lr}
ldr r2, _080860D4 @ =gUnk_08120650
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080860D4: .4byte gUnk_08120650
thumb_func_start sub_080860D8
sub_080860D8: @ 0x080860D8
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
adds r0, #0xff
strh r0, [r4, #0x24]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xb]
bl sub_0804B128
str r0, [r4, #0x54]
adds r1, r4, #0
adds r1, #0x54
adds r2, r4, #0
adds r2, #0x70
adds r0, r4, #0
bl sub_080A2CC0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808611C
sub_0808611C: @ 0x0808611C
push {r4, lr}
adds r4, r0, #0
bl sub_08086168
adds r1, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808613C
ldr r2, [r4, #0x50]
ldrb r0, [r2, #0xe]
cmp r0, #0
bne _08086144
cmp r1, #0
beq _0808613C
adds r0, #1
strb r0, [r2, #0xe]
_0808613C:
adds r0, r4, #0
bl sub_080A2BE4
b _0808614C
_08086144:
adds r0, r4, #0
movs r1, #0
bl sub_080A2BE4
_0808614C:
adds r2, r4, #0
adds r2, #0x70
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _08086166
adds r1, r4, #0
adds r1, #0x54
adds r0, r4, #0
bl sub_080A2CC0
_08086166:
pop {r4, pc}
thumb_func_start sub_08086168
sub_08086168: @ 0x08086168
push {r4, lr}
ldrb r1, [r0, #0xa]
lsls r1, r1, #1
ldr r2, _0808619C @ =gUnk_08120658
adds r1, r1, r2
ldr r4, _080861A0 @ =gLinkEntity
ldrb r2, [r1]
ldrb r3, [r1, #1]
adds r1, r4, #0
bl sub_080041A0
cmp r0, #0
beq _080861A8
bl sub_08079F8C
cmp r0, #0
beq _080861A8
ldr r0, _080861A4 @ =gUnk_03003F80
movs r1, #1
strb r1, [r0, #0x14]
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _080861A8
movs r0, #1
b _080861AA
.align 2, 0
_0808619C: .4byte gUnk_08120658
_080861A0: .4byte gLinkEntity
_080861A4: .4byte gUnk_03003F80
_080861A8:
movs r0, #0
_080861AA:
pop {r4, pc}
thumb_func_start sub_080861AC
sub_080861AC: @ 0x080861AC
push {lr}
ldr r2, _080861C0 @ =gUnk_08120660
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080861C0: .4byte gUnk_08120660
thumb_func_start sub_080861C4
sub_080861C4: @ 0x080861C4
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r5, #1
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x80
strh r0, [r4, #0x24]
ldr r0, _08086230 @ =gLinkEntity
mov ip, r0
ldrb r1, [r0, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r3, [r4, #0x19]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r3
orrs r0, r1
strb r0, [r4, #0x19]
mov r0, ip
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r6, r4, #0
adds r6, #0x29
lsrs r1, r1, #0x1d
ldrb r3, [r6]
movs r0, #8
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r6]
mov r0, ip
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
mov r1, ip
ldrb r0, [r1, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r1, [r4, #0x1b]
ands r2, r1
orrs r2, r0
strb r2, [r4, #0x1b]
bl sub_08000E50
ands r0, r5
strb r0, [r4, #0xa]
adds r0, r4, #0
movs r1, #0x11
bl sub_08004260
pop {r4, r5, r6, pc}
.align 2, 0
_08086230: .4byte gLinkEntity
thumb_func_start sub_08086234
sub_08086234: @ 0x08086234
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08086258
ldr r0, _08086254 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0808625E
adds r0, r4, #0
bl sub_08004274
b _0808625E
.align 2, 0
_08086254: .4byte gUnk_030010A0
_08086258:
adds r0, r4, #0
bl sub_08004274
_0808625E:
adds r0, r4, #0
bl sub_0806F3E4
cmp r0, #0
beq _0808626E
bl sub_0805E780
b _0808627E
_0808626E:
ldr r0, _08086280 @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
beq _0808627E
bl sub_0805E780
_0808627E:
pop {r4, pc}
.align 2, 0
_08086280: .4byte gUnk_03003F80
thumb_func_start sub_08086284
sub_08086284: @ 0x08086284
push {r4, lr}
adds r4, r0, #0
ldr r1, _080862B4 @ =gUnk_08120668
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r1, r4, #0
adds r1, #0x41
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x76
ldrh r1, [r0]
adds r0, #4
ldrh r2, [r0]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
pop {r4, pc}
.align 2, 0
_080862B4: .4byte gUnk_08120668
thumb_func_start sub_080862B8
sub_080862B8: @ 0x080862B8
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x63
bl sub_0807CBD0
cmp r0, #0
beq _080862CA
bl sub_0805E780
_080862CA:
movs r3, #1
strb r3, [r4, #0xc]
ldr r1, _08086350 @ =gUnk_08120678
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x7c
strh r0, [r1]
adds r2, r4, #0
adds r2, #0x76
strh r0, [r2]
ldrh r0, [r1]
subs r1, #2
strh r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08086354
adds r1, #6
ldr r0, [r4, #0x2c]
str r0, [r1]
adds r1, #4
ldr r0, [r4, #0x30]
str r0, [r1]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
strb r0, [r4, #0x19]
str r4, [r4, #0x50]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
strb r3, [r0]
subs r1, #1
movs r0, #4
strb r0, [r1]
movs r2, #0
_08086324:
adds r5, r2, #1
adds r0, r4, #0
movs r1, #0x18
adds r2, r5, #0
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _08086346
ldr r0, [r4, #0x50]
str r0, [r1, #0x50]
ldr r0, [r4, #0x54]
str r4, [r0, #0x54]
ldr r0, [r4, #0x54]
str r0, [r4, #0x50]
_08086346:
adds r2, r5, #0
cmp r2, #3
bls _08086324
b _08086360
.align 2, 0
_08086350: .4byte gUnk_08120678
_08086354:
ldrb r0, [r4, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x19]
_08086360:
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08086370
pop {r4, r5, pc}
thumb_func_start sub_08086370
sub_08086370: @ 0x08086370
push {r4, r5, r6, lr}
adds r6, r0, #0
ldrb r2, [r6, #0xa]
cmp r2, #0
beq _08086440
ldr r0, [r6, #0x54]
adds r0, #0x7f
ldrb r0, [r0]
cmp r0, #0
bne _080863B6
adds r1, r6, #0
adds r1, #0x7c
ldrh r0, [r1]
adds r2, r6, #0
adds r2, #0x76
strh r0, [r2]
ldrh r0, [r1]
subs r1, #2
strh r0, [r1]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r6, #0x24]
ldr r2, [r6, #0x50]
ldr r0, [r2, #0x2c]
ldr r1, [r6, #0x2c]
subs r0, r0, r1
ldr r1, [r2, #0x30]
ldr r2, [r6, #0x30]
subs r1, r1, r2
bl sub_080045DA
movs r1, #0x80
eors r0, r1
strb r0, [r6, #0x15]
b _08086428
_080863B6:
movs r0, #0xc0
lsls r0, r0, #3
strh r0, [r6, #0x24]
ldr r2, _080863E8 @ =gLinkEntity
ldr r0, [r2, #0x2c]
ldr r1, [r6, #0x2c]
subs r0, r0, r1
ldr r1, [r2, #0x30]
ldr r2, [r6, #0x30]
subs r1, r1, r2
bl sub_080045DA
adds r1, r0, #0
movs r0, #0x80
eors r1, r0
ldrb r2, [r6, #0x15]
cmp r1, r2
beq _080863F0
subs r0, r1, r2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x80
bls _080863EC
adds r0, r2, #3
b _080863EE
.align 2, 0
_080863E8: .4byte gLinkEntity
_080863EC:
subs r0, r2, #3
_080863EE:
strb r0, [r6, #0x15]
_080863F0:
ldr r0, _0808640C @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _08086410
adds r0, r6, #0
adds r0, #0x7c
ldrh r0, [r0]
adds r0, #0x40
adds r1, r6, #0
adds r1, #0x76
b _08086426
.align 2, 0
_0808640C: .4byte gLinkEntity
_08086410:
adds r0, r6, #0
adds r0, #0x7c
ldrh r1, [r0]
subs r1, #0x20
adds r2, r6, #0
adds r2, #0x76
strh r1, [r2]
ldrh r0, [r0]
adds r0, #0x50
adds r1, r6, #0
adds r1, #0x7a
_08086426:
strh r0, [r1]
_08086428:
ldr r1, [r6, #0x50]
ldr r0, [r1, #0x2c]
str r0, [r6, #0x2c]
ldr r0, [r1, #0x30]
str r0, [r6, #0x30]
movs r0, #0x24
ldrsh r1, [r6, r0]
ldrb r2, [r6, #0x15]
adds r0, r6, #0
bl sub_0806F62C
b _0808654A
_08086440:
adds r0, r6, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
bne _08086498
ldrb r0, [r6, #0x15]
adds r0, #1
strb r0, [r6, #0x15]
ldrb r0, [r6, #0x1d]
subs r0, #1
strb r0, [r6, #0x1d]
adds r2, r6, #0
adds r2, #0x7f
movs r0, #1
strb r0, [r2]
ldr r0, _08086480 @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r0, #2
ands r0, r1
adds r3, r2, #0
cmp r0, #0
bne _08086484
adds r0, r6, #0
adds r0, #0x7c
ldrh r0, [r0]
adds r0, #0x10
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
b _080864BC
.align 2, 0
_08086480: .4byte gLinkEntity
_08086484:
adds r1, r6, #0
adds r1, #0x7c
ldrh r0, [r1]
subs r0, #0x20
adds r2, r6, #0
adds r2, #0x76
strh r0, [r2]
ldrh r0, [r1]
adds r0, #0x30
b _080864B6
_08086498:
ldrb r0, [r6, #0x15]
adds r0, #2
strb r0, [r6, #0x15]
movs r0, #0xf0
strb r0, [r6, #0x1d]
adds r3, r6, #0
adds r3, #0x7f
strb r2, [r3]
adds r1, r6, #0
adds r1, #0x7c
ldrh r0, [r1]
adds r2, r6, #0
adds r2, #0x76
strh r0, [r2]
ldrh r0, [r1]
_080864B6:
subs r1, #2
strh r0, [r1]
adds r1, r2, #0
_080864BC:
ldrb r2, [r6, #0x1d]
cmp r2, #0
bne _080864CA
movs r0, #2
strb r0, [r6, #0xc]
strb r2, [r3]
b _0808654A
_080864CA:
ldrb r0, [r6, #0x15]
adds r0, #0x40
lsls r0, r0, #0x18
cmp r0, #0
blt _080864E0
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
ble _080864EE
b _080864EA
_080864E0:
ldrh r2, [r1]
movs r3, #0
ldrsh r0, [r1, r3]
cmp r0, #0
bge _080864EE
_080864EA:
rsbs r0, r2, #0
strh r0, [r1]
_080864EE:
ldr r5, _0808654C @ =gUnk_080C9160
ldrb r0, [r6, #0x15]
lsls r0, r0, #1
adds r0, r0, r5
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0x80
lsls r1, r1, #6
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r4, #0x80
lsls r4, r4, #1
adds r1, r4, #0
bl sub_0806FA04
adds r1, r6, #0
adds r1, #0x80
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1]
adds r1, r1, r0
str r1, [r6, #0x2c]
ldrb r0, [r6, #0x15]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r5
movs r3, #0
ldrsh r0, [r0, r3]
movs r1, #0x80
lsls r1, r1, #5
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r4, #0
bl sub_0806FA04
adds r1, r6, #0
adds r1, #0x84
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1]
subs r1, r1, r0
str r1, [r6, #0x30]
_0808654A:
pop {r4, r5, r6, pc}
.align 2, 0
_0808654C: .4byte gUnk_080C9160
thumb_func_start sub_08086550
sub_08086550: @ 0x08086550
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08086566
movs r0, #3
strb r0, [r4, #0xc]
b _08086592
_08086566:
adds r0, r4, #0
bl sub_0806F3E4
cmp r0, #0
beq _08086592
movs r0, #0x63
bl sub_0807CCB4
movs r0, #0
bl sub_0807CD10
movs r5, #0
_0808657E:
ldr r0, [r4, #0x54]
ldr r1, [r0, #0x50]
str r1, [r4, #0x54]
bl sub_0805E7BC
adds r5, #1
cmp r5, #3
bls _0808657E
bl sub_0805E780
_08086592:
pop {r4, r5, pc}
thumb_func_start sub_08086594
sub_08086594: @ 0x08086594
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r0, #0x80
ldr r0, [r0]
ldr r1, [r7, #0x2c]
subs r0, r0, r1
adds r1, r7, #0
adds r1, #0x84
ldr r1, [r1]
ldr r2, [r7, #0x30]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r7, #0x15]
adds r0, r7, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
bne _08086608
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r7, #0x24]
ldrb r0, [r7, #0x1d]
subs r0, #1
strb r0, [r7, #0x1d]
adds r2, r7, #0
adds r2, #0x7f
movs r0, #1
strb r0, [r2]
ldr r0, _080865EC @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
bne _080865F0
adds r0, r7, #0
adds r0, #0x7c
ldrh r0, [r0]
adds r0, #0x10
adds r1, r7, #0
adds r1, #0x76
b _0808662A
.align 2, 0
_080865EC: .4byte gLinkEntity
_080865F0:
adds r0, r7, #0
adds r0, #0x7c
ldrh r1, [r0]
subs r1, #0x20
adds r3, r7, #0
adds r3, #0x76
strh r1, [r3]
ldrh r0, [r0]
adds r0, #0x30
adds r1, r7, #0
adds r1, #0x7a
b _0808662A
_08086608:
movs r1, #0
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r7, #0x24]
movs r0, #0xf0
strb r0, [r7, #0x1d]
adds r2, r7, #0
adds r2, #0x7f
strb r1, [r2]
adds r1, r7, #0
adds r1, #0x7c
ldrh r0, [r1]
adds r3, r7, #0
adds r3, #0x76
strh r0, [r3]
ldrh r0, [r1]
subs r1, #2
_0808662A:
strh r0, [r1]
ldrb r1, [r7, #0x1d]
cmp r1, #0
bne _0808663A
movs r0, #2
strb r0, [r7, #0xc]
strb r1, [r2]
b _080866B8
_0808663A:
movs r0, #0x24
ldrsh r1, [r7, r0]
ldrb r2, [r7, #0x15]
adds r0, r7, #0
bl sub_0806F62C
ldrb r0, [r7, #0x15]
movs r1, #0x80
eors r0, r1
strb r0, [r7, #0x15]
ldr r6, _080866BC @ =gUnk_080C9160
ldrb r0, [r7, #0x15]
lsls r0, r0, #1
adds r0, r0, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0x80
lsls r1, r1, #6
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r5, #0x80
lsls r5, r5, #1
adds r1, r5, #0
bl sub_0806FA04
adds r1, r7, #0
adds r1, #0x80
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r4, [r1]
adds r4, r4, r0
ldrb r0, [r7, #0x15]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r6
movs r1, #0
ldrsh r0, [r0, r1]
movs r1, #0x80
lsls r1, r1, #5
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r5, #0
bl sub_0806FA04
adds r1, r7, #0
adds r1, #0x84
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r2, [r1]
subs r2, r2, r0
adds r0, r7, #0
adds r1, r4, #0
movs r3, #2
bl sub_0806FCB8
cmp r0, #0
beq _080866B8
movs r0, #1
strb r0, [r7, #0xc]
_080866B8:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080866BC: .4byte gUnk_080C9160
thumb_func_start sub_080866C0
sub_080866C0: @ 0x080866C0
push {lr}
ldr r2, _080866D4 @ =gUnk_081206B4
ldrb r1, [r0, #0xb]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080866D4: .4byte gUnk_081206B4
thumb_func_start sub_080866D8
sub_080866D8: @ 0x080866D8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
ldrb r1, [r6, #0xc]
cmp r1, #0
bne _080866FE
movs r0, #1
strb r0, [r6, #0xc]
str r1, [r6, #0x68]
ldrb r1, [r6, #0xe]
adds r0, r6, #0
adds r0, #0x6c
strb r1, [r0]
adds r0, r6, #0
movs r1, #6
bl sub_0805E3A0
_080866FE:
adds r0, r6, #0
adds r0, #0x6c
ldrb r0, [r0]
bl sub_0804B128
adds r5, r0, #0
movs r0, #0
mov r8, r0
ldrh r0, [r5]
ldr r1, _080867C4 @ =0x0000FFFF
cmp r0, r1
beq _080867BA
mov sb, r1
_08086718:
movs r7, #1
mov r1, r8
lsls r7, r1
ldr r0, [r6, #0x68]
ands r0, r7
cmp r0, #0
bne _080867A8
ldrb r0, [r5, #5]
bl sub_080867CC
cmp r0, #0
beq _080867A8
ldrh r0, [r5]
ldrh r1, [r5, #2]
movs r2, #0x20
movs r3, #0x20
bl sub_080562CC
cmp r0, #0
beq _080867A8
ldrb r1, [r5, #7]
ldrb r2, [r5, #6]
movs r0, #0x19
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080867A8
adds r0, #0x6c
mov r2, r8
strb r2, [r0]
ldr r1, _080867C8 @ =gUnk_03000BF0
ldrh r0, [r5]
ldrh r2, [r1, #6]
adds r0, r0, r2
adds r0, #0x10
strh r0, [r4, #0x2e]
ldrh r0, [r5, #2]
ldrh r1, [r1, #8]
adds r0, r0, r1
adds r0, #0x20
strh r0, [r4, #0x32]
str r6, [r4, #0x50]
ldrh r1, [r5]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
ldrh r0, [r5, #2]
adds r1, r4, #0
adds r1, #0x6a
strh r0, [r1]
ldrb r1, [r5, #4]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
ldrb r0, [r5, #5]
strb r0, [r4, #0xd]
adds r0, r4, #0
bl sub_08016A04
ldr r0, [r6, #0x68]
orrs r0, r7
str r0, [r6, #0x68]
ldr r1, [r5, #8]
cmp r1, #0
beq _080867A8
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_080867A8:
adds r5, #0xc
movs r0, #1
add r8, r0
ldrh r0, [r5]
cmp r0, sb
beq _080867BA
mov r1, r8
cmp r1, #0x1f
bls _08086718
_080867BA:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080867C4: .4byte 0x0000FFFF
_080867C8: .4byte gUnk_03000BF0
thumb_func_start sub_080867CC
sub_080867CC: @ 0x080867CC
push {lr}
cmp r0, #0
beq _080867DE
cmp r0, #2
bne _080867DE
movs r0, #0x18
bl GetProgressFlag
b _080867E0
_080867DE:
movs r0, #1
_080867E0:
pop {pc}
.align 2, 0
thumb_func_start sub_080867E4
sub_080867E4: @ 0x080867E4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x68
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x6a
ldrh r1, [r1]
movs r2, #0x20
movs r3, #0x20
bl sub_080562CC
cmp r0, #0
bne _08086814
ldr r2, [r4, #0x50]
adds r0, r4, #0
adds r0, #0x6c
movs r1, #1
ldrb r0, [r0]
lsls r1, r0
ldr r0, [r2, #0x68]
bics r0, r1
str r0, [r2, #0x68]
bl sub_0805E780
_08086814:
adds r0, r4, #0
bl sub_0808681C
pop {r4, pc}
thumb_func_start sub_0808681C
sub_0808681C: @ 0x0808681C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r4, [r5, #0xc]
cmp r4, #0
beq _0808682C
cmp r4, #1
beq _08086868
b _0808688C
_0808682C:
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #8
strb r0, [r5, #0xe]
ldrb r1, [r5, #0x18]
subs r0, #0xc
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
strb r4, [r5, #0x1e]
ldr r0, _08086864 @ =gUnk_081206AC
str r0, [r5, #0x48]
ldrb r1, [r5, #0xd]
cmp r1, #1
bne _08086852
movs r0, #2
strb r0, [r5, #0xc]
strb r1, [r5, #0x1e]
_08086852:
ldrb r1, [r5, #0x10]
movs r2, #2
adds r0, r2, #0
ands r0, r1
cmp r0, #0
beq _080868AA
strb r2, [r5, #0xc]
b _0808688C
.align 2, 0
_08086864: .4byte gUnk_081206AC
_08086868:
adds r0, r5, #0
bl sub_08086954
lsls r0, r0, #0x18
cmp r0, #0
bne _0808688C
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
strb r4, [r5, #0x1e]
movs r0, #0x10
movs r1, #0
movs r2, #1
bl sub_08078AC0
ldr r0, _080868AC @ =0x00000111
bl sub_080A3268
_0808688C:
ldrb r1, [r5, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080868AA
adds r4, r5, #0
adds r4, #0x84
ldr r1, [r4]
adds r0, r5, #0
bl sub_0807DF74
ldr r1, [r4]
adds r0, r5, #0
bl sub_080868EC
_080868AA:
pop {r4, r5, pc}
.align 2, 0
_080868AC: .4byte 0x00000111
thumb_func_start sub_080868B0
sub_080868B0: @ 0x080868B0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _080868D2
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldr r0, _080868E8 @ =gUnk_081206AC
str r0, [r5, #0x48]
movs r0, #8
strb r0, [r5, #0xe]
_080868D2:
adds r4, r5, #0
adds r4, #0x84
ldr r1, [r4]
adds r0, r5, #0
bl sub_0807DF74
ldr r1, [r4]
adds r0, r5, #0
bl sub_080868EC
pop {r4, r5, pc}
.align 2, 0
_080868E8: .4byte gUnk_081206AC
thumb_func_start sub_080868EC
sub_080868EC: @ 0x080868EC
push {r4, r5, lr}
adds r3, r0, #0
ldr r2, [r1, #8]
movs r0, #0
str r0, [r1, #8]
cmp r2, #0
beq _0808691E
movs r5, #0x80
lsls r5, r5, #1
movs r4, #0
movs r1, #1
_08086902:
mvns r0, r2
adds r0, #1
ands r0, r2
eors r2, r0
cmp r0, #0x80
beq _08086914
cmp r0, r5
beq _08086918
b _0808691A
_08086914:
strb r4, [r3, #0x1e]
b _0808691A
_08086918:
strb r1, [r3, #0x1e]
_0808691A:
cmp r2, #0
bne _08086902
_0808691E:
ldrb r0, [r3, #0x1e]
cmp r0, #0
bne _0808692A
adds r0, r3, #0
bl sub_0800445C
_0808692A:
pop {r4, r5, pc}
thumb_func_start sub_0808692C
sub_0808692C: @ 0x0808692C
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #0xfd
ands r0, r1
strb r0, [r2, #0x10]
movs r0, #2
strb r0, [r2, #0xb]
ldrb r0, [r2, #0x1e]
movs r1, #2
cmp r0, #0
bne _08086946
movs r1, #1
_08086946:
strb r1, [r2, #0xc]
movs r0, #0
strb r0, [r2, #0xd]
movs r0, #8
strb r0, [r2, #0xe]
pop {pc}
.align 2, 0
thumb_func_start sub_08086954
sub_08086954: @ 0x08086954
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
cmp r0, #0
beq _0808699C
adds r0, r4, #0
movs r1, #6
movs r2, #0x14
bl sub_0806ED9C
cmp r0, #0
blt _080869A0
ldr r0, _08086994 @ =gLinkEntity
ldrb r0, [r0, #0x14]
cmp r0, #0
bne _080869A0
ldr r2, _08086998 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x90
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
bne _080869A0
ldrb r0, [r2, #2]
cmp r0, #0
bne _080869A0
ldrb r0, [r4, #0xe]
subs r0, #1
b _0808699E
.align 2, 0
_08086994: .4byte gLinkEntity
_08086998: .4byte gUnk_03003F80
_0808699C:
movs r0, #8
_0808699E:
strb r0, [r4, #0xe]
_080869A0:
ldrb r0, [r4, #0xe]
pop {r4, pc}
thumb_func_start sub_080869A4
sub_080869A4: @ 0x080869A4
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r0, #0
str r0, [r5, #0x14]
adds r0, r4, #0
bl sub_08086954
lsls r0, r0, #0x18
cmp r0, #0
bne _080869C2
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #1
str r0, [r5, #0x14]
_080869C2:
pop {r4, r5, pc}
thumb_func_start sub_080869C4
sub_080869C4: @ 0x080869C4
push {lr}
ldr r2, _080869D8 @ =gUnk_081206C4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080869D8: .4byte gUnk_081206C4
thumb_func_start sub_080869DC
sub_080869DC: @ 0x080869DC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r4, #0x18]
ldr r0, _08086A24 @ =gUnk_080FD1A8
str r0, [r4, #0x48]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0xa]
movs r0, #0
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08086A20
movs r0, #0xa
strb r0, [r1, #0xe]
str r4, [r1, #0x50]
str r1, [r4, #0x54]
adds r0, r4, #0
bl sub_0806FA24
adds r0, r4, #0
bl sub_08086A6C
_08086A20:
pop {r4, pc}
.align 2, 0
_08086A24: .4byte gUnk_080FD1A8
thumb_func_start sub_08086A28
sub_08086A28: @ 0x08086A28
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
ldr r0, [r0, #4]
cmp r0, #0
bne _08086A3A
movs r0, #2
strb r0, [r4, #0xc]
b _08086A5A
_08086A3A:
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_080044EC
cmp r0, #0
bne _08086A4C
movs r0, #2
strb r0, [r4, #0xc]
_08086A4C:
adds r0, r4, #0
bl sub_080AEF88
ldr r1, [r4, #0x54]
adds r0, r4, #0
bl sub_0806FA24
_08086A5A:
pop {r4, pc}
thumb_func_start sub_08086A5C
sub_08086A5C: @ 0x08086A5C
push {lr}
ldr r1, [r0, #0x54]
movs r0, #0
str r0, [r1, #0x50]
bl sub_0805E780
pop {pc}
.align 2, 0
thumb_func_start sub_08086A6C
sub_08086A6C: @ 0x08086A6C
push {r4, lr}
adds r4, r0, #0
bl sub_08000E50
movs r1, #0xa0
lsls r1, r1, #0xa
str r1, [r4, #0x20]
lsrs r1, r0, #0x10
movs r2, #0x1f
ands r1, r2
strb r1, [r4, #0x15]
movs r2, #0xf0
lsls r2, r2, #1
adds r1, r2, #0
ands r0, r1
strh r0, [r4, #0x24]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086A90
sub_08086A90: @ 0x08086A90
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08086AA4
ldrb r0, [r4, #0xa]
movs r1, #0xb
bl __modsi3
strb r0, [r4, #0xb]
_08086AA4:
ldr r0, _08086AB8 @ =gUnk_081206D0
ldrb r1, [r4, #0xb]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08086AB8: .4byte gUnk_081206D0
thumb_func_start sub_08086ABC
sub_08086ABC: @ 0x08086ABC
push {r4, lr}
adds r4, r0, #0
ldr r1, _08086AE4 @ =gUnk_081206FC
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r3, _08086AE8 @ =gLinkEntity
movs r1, #0x32
ldrsh r0, [r3, r1]
ldr r2, _08086AEC @ =gUnk_03000BF0
ldrh r1, [r2, #8]
subs r0, r0, r1
cmp r0, #0xa7
bgt _08086AF0
str r4, [r2, #0x30]
b _08086AF2
.align 2, 0
_08086AE4: .4byte gUnk_081206FC
_08086AE8: .4byte gLinkEntity
_08086AEC: .4byte gUnk_03000BF0
_08086AF0:
str r3, [r2, #0x30]
_08086AF2:
movs r0, #2
strb r0, [r2, #0xe]
pop {r4, pc}
thumb_func_start sub_08086AF8
sub_08086AF8: @ 0x08086AF8
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
movs r0, #0
strb r0, [r4, #0xe]
adds r4, #0x84
movs r0, #0x91
lsls r0, r0, #1
strh r0, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086B10
sub_08086B10: @ 0x08086B10
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0
bl sub_0807CC3C
cmp r0, #0
beq _08086B9A
adds r1, r4, #0
adds r1, #0x84
ldrh r0, [r1]
cmp r0, #0
beq _08086B2C
subs r0, #1
strh r0, [r1]
_08086B2C:
ldrh r1, [r1]
cmp r1, #0x96
beq _08086B62
cmp r1, #0x96
bgt _08086B40
cmp r1, #0
beq _08086B5C
cmp r1, #0x82
beq _08086B62
b _08086B9A
_08086B40:
cmp r1, #0xd2
beq _08086B62
cmp r1, #0xd2
bgt _08086B4E
cmp r1, #0xaa
beq _08086B62
b _08086B9A
_08086B4E:
ldr r0, _08086B58 @ =0x00000121
cmp r1, r0
beq _08086B62
b _08086B9A
.align 2, 0
_08086B58: .4byte 0x00000121
_08086B5C:
movs r0, #2
strb r0, [r4, #0xc]
b _08086B9A
_08086B62:
adds r0, r4, #0
movs r1, #6
movs r2, #0
bl sub_080873AC
adds r5, r0, #0
cmp r5, #0
beq _08086B9A
ldr r3, _08086B9C @ =gUnk_08120714
ldrb r1, [r4, #0xe]
lsls r0, r1, #1
adds r0, r0, r3
movs r6, #0
ldrsh r2, [r0, r6]
lsls r2, r2, #0x10
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r3
movs r0, #0
ldrsh r3, [r1, r0]
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
ldrb r0, [r4, #0xe]
adds r0, #2
strb r0, [r4, #0xe]
_08086B9A:
pop {r4, r5, r6, pc}
.align 2, 0
_08086B9C: .4byte gUnk_08120714
thumb_func_start sub_08086BA0
sub_08086BA0: @ 0x08086BA0
push {r4, lr}
adds r4, r0, #0
movs r1, #7
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _08086BC2
movs r3, #0x80
lsls r3, r3, #0xc
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
movs r0, #3
strb r0, [r4, #0xc]
_08086BC2:
pop {r4, pc}
thumb_func_start sub_08086BC4
sub_08086BC4: @ 0x08086BC4
push {r4, lr}
adds r4, r0, #0
ldr r0, _08086C10 @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _08086C0C
adds r0, r4, #0
movs r1, #2
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _08086C0C
adds r0, r4, #0
bl sub_0806FA24
movs r0, #6
movs r1, #4
bl sub_08050054
ldr r0, _08086C14 @ =0x00000145
bl sub_080A3268
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x40
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
_08086C0C:
pop {r4, pc}
.align 2, 0
_08086C10: .4byte gUnk_02034350
_08086C14: .4byte 0x00000145
thumb_func_start sub_08086C18
sub_08086C18: @ 0x08086C18
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
adds r5, r0, #0
cmp r5, #0
beq _08086C2E
subs r0, #1
strb r0, [r4, #0xe]
b _08086C52
_08086C2E:
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _08086C52
ldr r3, _08086C54 @ =0xFFEC0000
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
strb r5, [r4, #0xf]
_08086C52:
pop {r4, r5, pc}
.align 2, 0
_08086C54: .4byte 0xFFEC0000
thumb_func_start sub_08086C58
sub_08086C58: @ 0x08086C58
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08086C68
subs r0, #1
strb r0, [r4, #0xe]
b _08086C90
_08086C68:
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08086C90
adds r0, r4, #0
movs r1, #9
movs r2, #0
bl sub_080873AC
adds r5, r0, #0
cmp r5, #0
beq _08086C90
ldr r3, _08086C98 @ =0xFFB40000
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
str r4, [r5, #0x50]
movs r0, #1
strb r0, [r4, #0xf]
_08086C90:
adds r0, r4, #0
bl sub_08004274
pop {r4, r5, pc}
.align 2, 0
_08086C98: .4byte 0xFFB40000
thumb_func_start sub_08086C9C
sub_08086C9C: @ 0x08086C9C
push {lr}
ldr r2, _08086CB0 @ =gUnk_08120728
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086CB0: .4byte gUnk_08120728
thumb_func_start sub_08086CB4
sub_08086CB4: @ 0x08086CB4
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r4, #0x19]
ldr r1, _08086D10 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xf4
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x68
ldr r0, _08086D14 @ =0x00000809
strh r0, [r1]
movs r1, #0x80
lsls r1, r1, #3
strh r1, [r4, #0x24]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
pop {r4, pc}
.align 2, 0
_08086D10: .4byte gUnk_03000F50
_08086D14: .4byte 0x00000809
thumb_func_start sub_08086D18
sub_08086D18: @ 0x08086D18
push {lr}
adds r3, r0, #0
ldrh r0, [r3, #0x24]
subs r0, #0x20
strh r0, [r3, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x80
lsls r2, r2, #1
cmp r0, r2
bne _08086D58
movs r0, #2
strb r0, [r3, #0xc]
adds r0, r3, #0
bl sub_0805EC60
ldr r2, _08086D50 @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #0x20
orrs r0, r1
str r0, [r2, #0x68]
ldr r2, _08086D54 @ =gUnk_02033280
ldr r0, [r2]
movs r1, #4
orrs r0, r1
str r0, [r2]
b _08086D64
.align 2, 0
_08086D50: .4byte gUnk_02034350
_08086D54: .4byte gUnk_02033280
_08086D58:
movs r0, #0x24
ldrsh r1, [r3, r0]
adds r0, r3, #0
movs r3, #0
bl sub_0805EC9C
_08086D64:
pop {pc}
.align 2, 0
thumb_func_start nullsub_116
nullsub_116: @ 0x08086D68
bx lr
.align 2, 0
thumb_func_start sub_08086D6C
sub_08086D6C: @ 0x08086D6C
push {lr}
ldr r2, _08086D80 @ =gUnk_08120734
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086D80: .4byte gUnk_08120734
thumb_func_start sub_08086D84
sub_08086D84: @ 0x08086D84
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4]
pop {r4, pc}
thumb_func_start sub_08086DAC
sub_08086DAC: @ 0x08086DAC
push {lr}
bl sub_08004274
pop {pc}
thumb_func_start sub_08086DB4
sub_08086DB4: @ 0x08086DB4
push {lr}
ldr r2, _08086DC8 @ =gUnk_0812073C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086DC8: .4byte gUnk_0812073C
thumb_func_start sub_08086DCC
sub_08086DCC: @ 0x08086DCC
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #4
movs r2, #0
bl sub_080873AC
adds r4, r0, #0
cmp r4, #0
beq _08086E00
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
str r5, [r4, #0x50]
adds r0, r5, #0
bl sub_08087380
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
movs r0, #0
strb r0, [r5, #0xf]
_08086E00:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08086E04
sub_08086E04: @ 0x08086E04
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldr r0, [r4, #0x34]
ldr r1, _08086E2C @ =0xFFFF8000
adds r0, r0, r1
str r0, [r4, #0x34]
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x14
rsbs r0, r0, #0
cmp r1, r0
bne _08086E34
movs r0, #2
strb r0, [r4, #0xc]
ldr r0, _08086E30 @ =0x00000141
bl sub_080A3268
b _08086E62
.align 2, 0
_08086E2C: .4byte 0xFFFF8000
_08086E30: .4byte 0x00000141
_08086E34:
movs r0, #0xa
rsbs r0, r0, #0
cmp r1, r0
bne _08086E62
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08086E62
adds r0, r4, #0
movs r1, #5
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _08086E62
movs r3, #0x80
lsls r3, r3, #0xb
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
movs r0, #1
strb r0, [r4, #0xf]
_08086E62:
pop {r4, pc}
thumb_func_start sub_08086E64
sub_08086E64: @ 0x08086E64
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
bl sub_080873D0
ldr r0, _08086E88 @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _08086E84
adds r0, r4, #0
bl sub_0805E7BC
_08086E84:
pop {r4, pc}
.align 2, 0
_08086E88: .4byte gUnk_02034350
thumb_func_start sub_08086E8C
sub_08086E8C: @ 0x08086E8C
push {lr}
ldr r2, _08086EA0 @ =gUnk_08120748
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086EA0: .4byte gUnk_08120748
thumb_func_start sub_08086EA4
sub_08086EA4: @ 0x08086EA4
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086ED0
sub_08086ED0: @ 0x08086ED0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA24
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x14
rsbs r0, r0, #0
cmp r1, r0
bne _08086F0C
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r4, #0x24]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_08086F0C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086F10
sub_08086F10: @ 0x08086F10
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08086F3C
ldr r2, _08086F38 @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x68]
movs r0, #3
strb r0, [r3, #0xc]
adds r0, r3, #0
bl sub_0805EC60
b _08086F52
.align 2, 0
_08086F38: .4byte gUnk_02034350
_08086F3C:
ldrh r2, [r3, #0x24]
subs r2, #0x18
strh r2, [r3, #0x24]
movs r1, #0x80
lsls r1, r1, #1
lsls r2, r2, #0x10
asrs r2, r2, #0x14
adds r0, r3, #0
movs r3, #0
bl sub_0805EC9C
_08086F52:
pop {pc}
thumb_func_start sub_08086F54
sub_08086F54: @ 0x08086F54
push {lr}
ldr r2, _08086F68 @ =gUnk_08120758
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086F68: .4byte gUnk_08120758
thumb_func_start sub_08086F6C
sub_08086F6C: @ 0x08086F6C
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0
strh r0, [r4, #0x36]
adds r4, #0x29
ldrb r1, [r4]
subs r0, #8
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r4]
movs r0, #0xa0
lsls r0, r0, #1
bl sub_080A3268
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086FA0
sub_08086FA0: @ 0x08086FA0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08086FBC
adds r0, r4, #0
bl sub_0805E7BC
_08086FBC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08086FC0
sub_08086FC0: @ 0x08086FC0
push {lr}
ldr r2, _08086FD4 @ =gUnk_08120760
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08086FD4: .4byte gUnk_08120760
thumb_func_start sub_08086FD8
sub_08086FD8: @ 0x08086FD8
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4]
pop {r4, pc}
thumb_func_start sub_08087000
sub_08087000: @ 0x08087000
push {lr}
adds r2, r0, #0
ldr r0, _08087018 @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #2
ands r0, r1
cmp r0, #0
beq _0808701C
adds r0, r2, #0
bl sub_0805E7BC
b _08087022
.align 2, 0
_08087018: .4byte gUnk_02034350
_0808701C:
adds r0, r2, #0
bl sub_08004274
_08087022:
pop {pc}
thumb_func_start sub_08087024
sub_08087024: @ 0x08087024
push {lr}
ldr r2, _08087038 @ =gUnk_08120768
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08087038: .4byte gUnk_08120768
thumb_func_start sub_0808703C
sub_0808703C: @ 0x0808703C
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
movs r0, #0x78
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x7c
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r4]
movs r0, #0xf9
bl sub_080A3268
pop {r4, pc}
thumb_func_start sub_0808706C
sub_0808706C: @ 0x0808706C
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08087080
subs r0, #1
strb r0, [r4, #0xe]
b _080870AA
_08087080:
adds r0, r4, #0
movs r1, #3
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _080870AA
ldr r3, _080870AC @ =0xFFF80000
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
ldr r2, _080870B0 @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #2
orrs r0, r1
str r0, [r2, #0x68]
adds r0, r4, #0
bl sub_0805E7BC
_080870AA:
pop {r4, pc}
.align 2, 0
_080870AC: .4byte 0xFFF80000
_080870B0: .4byte gUnk_02034350
thumb_func_start sub_080870B4
sub_080870B4: @ 0x080870B4
push {lr}
ldr r2, _080870C8 @ =gUnk_08120770
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080870C8: .4byte gUnk_08120770
thumb_func_start sub_080870CC
sub_080870CC: @ 0x080870CC
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r4]
pop {r4, pc}
thumb_func_start sub_080870F4
sub_080870F4: @ 0x080870F4
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08087110
adds r0, r4, #0
bl sub_0805E7BC
_08087110:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08087114
sub_08087114: @ 0x08087114
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08087134
ldr r0, _08087130 @ =gUnk_08120778
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _0808714A
.align 2, 0
_08087130: .4byte gUnk_08120778
_08087134:
ldr r0, _0808714C @ =gUnk_08120788
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08004274
_0808714A:
pop {r4, pc}
.align 2, 0
_0808714C: .4byte gUnk_08120788
thumb_func_start sub_08087150
sub_08087150: @ 0x08087150
push {r4, lr}
adds r4, r0, #0
bl sub_08087380
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
strb r1, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
movs r0, #0x80
strh r0, [r4, #0x24]
movs r0, #0x10
strb r0, [r4, #0x15]
ldr r0, _080871A0 @ =gUnk_0812079C
ldrb r0, [r0]
movs r1, #0xf
ands r1, r0
lsls r0, r0, #4
orrs r0, r1
strb r0, [r4, #0x1a]
pop {r4, pc}
.align 2, 0
_080871A0: .4byte gUnk_0812079C
thumb_func_start nullsub_516
nullsub_516: @ 0x080871A4
bx lr
.align 2, 0
thumb_func_start sub_080871A8
sub_080871A8: @ 0x080871A8
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080871CA
movs r0, #3
strb r0, [r1, #0xc]
movs r0, #0x3c
strb r0, [r1, #0xe]
ldr r2, _080871CC @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #4
orrs r0, r1
str r0, [r2, #0x68]
_080871CA:
pop {pc}
.align 2, 0
_080871CC: .4byte gUnk_02034350
thumb_func_start sub_080871D0
sub_080871D0: @ 0x080871D0
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080871F0
ldr r0, _080871F4 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #8
orrs r1, r2
str r1, [r0, #0x68]
adds r0, r3, #0
bl sub_0805E7BC
_080871F0:
pop {pc}
.align 2, 0
_080871F4: .4byte gUnk_02034350
thumb_func_start sub_080871F8
sub_080871F8: @ 0x080871F8
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, [r4, #0x54]
movs r0, #0x2e
ldrsh r1, [r3, r0]
movs r2, #0x2e
ldrsh r0, [r4, r2]
cmp r1, r0
bne _0808721E
movs r5, #0x32
ldrsh r0, [r3, r5]
subs r0, #0x20
movs r2, #0x32
ldrsh r1, [r4, r2]
cmp r0, r1
bne _0808721E
movs r0, #2
strb r0, [r4, #0xc]
b _0808723C
_0808721E:
movs r5, #0x2e
ldrsh r0, [r4, r5]
movs r2, #0x32
ldrsh r1, [r4, r2]
movs r5, #0x2e
ldrsh r2, [r3, r5]
movs r5, #0x32
ldrsh r3, [r3, r5]
subs r3, #0x20
bl sub_080045D4
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
_0808723C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08087240
sub_08087240: @ 0x08087240
push {lr}
adds r2, r0, #0
ldr r0, _08087260 @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #4
ands r0, r1
cmp r0, #0
beq _0808725C
movs r0, #3
strb r0, [r2, #0xc]
movs r0, #0x14
strb r0, [r2, #0xe]
movs r0, #0x10
strb r0, [r2, #0x15]
_0808725C:
pop {pc}
.align 2, 0
_08087260: .4byte gUnk_02034350
thumb_func_start sub_08087264
sub_08087264: @ 0x08087264
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
cmp r0, #0
beq _08087278
subs r0, #1
strb r0, [r1, #0xe]
adds r0, r1, #0
bl sub_0806F69C
_08087278:
pop {pc}
.align 2, 0
thumb_func_start sub_0808727C
sub_0808727C: @ 0x0808727C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08087292
adds r0, r1, #0
bl sub_0805E7BC
_08087292:
pop {pc}
thumb_func_start sub_08087294
sub_08087294: @ 0x08087294
push {lr}
ldr r2, _080872A8 @ =gUnk_081207A4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080872A8: .4byte gUnk_081207A4
thumb_func_start sub_080872AC
sub_080872AC: @ 0x080872AC
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x1b]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r2, r0
strb r2, [r4, #0x19]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x6a
strh r0, [r1]
bl sub_08000E50
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
movs r0, #0x20
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_08087380
pop {r4, pc}
thumb_func_start sub_080872F8
sub_080872F8: @ 0x080872F8
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x68
ldrh r0, [r2]
ldrh r1, [r4, #0x2e]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xc
bhi _0808732A
adds r0, r4, #0
adds r0, #0x6a
ldrh r0, [r0]
ldrh r1, [r4, #0x32]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xc
bls _0808735C
_0808732A:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r3, #0x32
ldrsh r1, [r4, r3]
movs r5, #0
ldrsh r2, [r2, r5]
adds r3, r4, #0
adds r3, #0x6a
movs r5, #0
ldrsh r3, [r3, r5]
bl sub_080045D4
strb r0, [r4, #0x15]
bl sub_08000E50
ldr r2, _08087378 @ =gUnk_081207AC
movs r1, #3
ands r1, r0
adds r1, r1, r2
ldrb r0, [r1]
ldrb r1, [r4, #0x15]
adds r0, r0, r1
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
_0808735C:
ldr r1, _0808737C @ =gUnk_080C9160
ldrb r0, [r4, #0xe]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
movs r3, #0
ldrsh r0, [r0, r3]
asrs r0, r0, #6
subs r0, #8
strh r0, [r4, #0x36]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
pop {r4, r5, pc}
.align 2, 0
_08087378: .4byte gUnk_081207AC
_0808737C: .4byte gUnk_080C9160
thumb_func_start sub_08087380
sub_08087380: @ 0x08087380
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
movs r1, #0xb
bl __modsi3
strb r0, [r4, #0xb]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldrb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
pop {r4, pc}
thumb_func_start sub_080873AC
sub_080873AC: @ 0x080873AC
push {r4, r5, r6, lr}
adds r5, r1, #0
adds r6, r2, #0
ldrb r0, [r0, #0xa]
movs r4, #0xb
movs r1, #0xb
bl __divsi3
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r0, #0
muls r1, r4, r1
adds r1, r1, r5
movs r0, #0x1b
adds r2, r6, #0
bl sub_080A2960
pop {r4, r5, r6, pc}
thumb_func_start sub_080873D0
sub_080873D0: @ 0x080873D0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080873DE
subs r0, #1
b _080873F6
_080873DE:
adds r0, r4, #0
movs r1, #8
movs r2, #0
bl sub_080873AC
adds r1, r0, #0
cmp r1, #0
beq _080873F8
adds r0, r4, #0
bl sub_0806FA24
movs r0, #0x30
_080873F6:
strb r0, [r4, #0xe]
_080873F8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080873FC
sub_080873FC: @ 0x080873FC
push {lr}
movs r0, #0xf7
bl sub_080A3268
ldr r1, _0808740C @ =gUnk_03000BF0
movs r0, #0
str r0, [r1, #0x30]
b _08087414
.align 2, 0
_0808740C: .4byte gUnk_03000BF0
_08087410:
bl sub_0805E7BC
_08087414:
movs r0, #6
movs r1, #0x1b
movs r2, #6
bl sub_0805EB00
cmp r0, #0
bne _08087410
pop {pc}
thumb_func_start sub_08087424
sub_08087424: @ 0x08087424
push {r4, r5, lr}
adds r5, r1, #0
bl sub_080791D0
movs r0, #0x64
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0808744E
ldr r0, _0808745C @ =gLinkEntity
str r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA24
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
_0808744E:
ldr r1, [r5, #4]
cmp r1, #0
beq _08087460
cmp r1, #1
beq _0808746C
b _08087474
.align 2, 0
_0808745C: .4byte gLinkEntity
_08087460:
ldr r0, _08087468 @ =gUnk_02002A40
adds r0, #0xad
b _08087472
.align 2, 0
_08087468: .4byte gUnk_02002A40
_0808746C:
ldr r0, _08087478 @ =gUnk_02002A40
adds r0, #0xac
movs r1, #0
_08087472:
strb r1, [r0]
_08087474:
pop {r4, r5, pc}
.align 2, 0
_08087478: .4byte gUnk_02002A40
thumb_func_start sub_0808747C
sub_0808747C: @ 0x0808747C
push {r4, lr}
sub sp, #4
adds r4, r1, #0
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0xf
movs r2, #6
movs r3, #0xb
bl sub_0805EB2C
cmp r0, #0
beq _08087498
movs r0, #1
_08087498:
str r0, [r4, #0x14]
add sp, #4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080874A0
sub_080874A0: @ 0x080874A0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080874AE
movs r0, #1
strb r0, [r4, #0xc]
_080874AE:
adds r0, r4, #0
adds r0, #0x80
movs r1, #0
ldrsh r0, [r0, r1]
adds r1, r4, #0
adds r1, #0x82
movs r2, #0
ldrsh r1, [r1, r2]
movs r2, #0x10
movs r3, #0x10
bl sub_0800290E
cmp r0, #0
bne _080874DC
ldr r2, [r4, #0x50]
movs r1, #1
ldrb r4, [r4, #0xb]
lsls r1, r4
ldr r0, [r2, #0x20]
bics r0, r1
str r0, [r2, #0x20]
bl sub_0805E780
_080874DC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080874E0
sub_080874E0: @ 0x080874E0
push {lr}
ldr r2, _080874F4 @ =gUnk_081208A0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080874F4: .4byte gUnk_081208A0
thumb_func_start sub_080874F8
sub_080874F8: @ 0x080874F8
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start nullsub_117
nullsub_117: @ 0x08087500
bx lr
.align 2, 0
thumb_func_start sub_08087504
sub_08087504: @ 0x08087504
push {r4, lr}
adds r4, r0, #0
bl sub_0805E3B0
cmp r0, #0
bne _08087520
ldr r0, _08087524 @ =gUnk_081208B8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_08087520:
pop {r4, pc}
.align 2, 0
_08087524: .4byte gUnk_081208B8
thumb_func_start sub_08087528
sub_08087528: @ 0x08087528
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _08087590 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x19]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r3]
ldrb r1, [r4, #0x1b]
lsrs r0, r1, #6
subs r0, #1
lsls r0, r0, #6
ands r2, r1
orrs r2, r0
strb r2, [r4, #0x1b]
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08087594
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r0, [r4, #0x14]
cmp r0, #1
bne _08087588
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_08087588:
adds r0, r4, #0
bl sub_08087640
b _080875DC
.align 2, 0
_08087590: .4byte gLinkEntity
_08087594:
ldr r0, _080875B4 @ =gUnk_02033A90
ldrb r0, [r0, #1]
movs r1, #4
cmp r0, #0x10
bne _080875A2
movs r1, #0xb5
lsls r1, r1, #1
_080875A2:
adds r0, r4, #0
bl sub_0801D2B4
ldrb r0, [r4, #0x14]
cmp r0, #1
beq _080875B8
cmp r0, #3
bne _080875CE
b _080875C0
.align 2, 0
_080875B4: .4byte gUnk_02033A90
_080875B8:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_080875C0:
ldrb r0, [r4, #0xa]
cmp r0, #0x40
bne _080875DC
ldrh r0, [r4, #0x32]
adds r0, #4
strh r0, [r4, #0x32]
b _080875DC
_080875CE:
ldrb r0, [r4, #0xa]
cmp r0, #0x40
bne _080875DC
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_080875DC:
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
ldrb r1, [r4, #0xb]
lsls r1, r1, #2
ldrb r0, [r4, #0x14]
adds r1, r1, r0
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
thumb_func_start sub_080875F4
sub_080875F4: @ 0x080875F4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
adds r5, r4, #0
adds r5, #0x5a
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808760E
bl sub_0805E780
_0808760E:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08087638
ldr r0, _0808763C @ =gLinkEntity
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
ldrb r0, [r5]
subs r0, #1
subs r1, r1, r0
adds r3, r4, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_08087638:
pop {r4, r5, pc}
.align 2, 0
_0808763C: .4byte gLinkEntity
thumb_func_start sub_08087640
sub_08087640: @ 0x08087640
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x2e
ldrsh r5, [r4, r0]
movs r1, #0x32
ldrsh r6, [r4, r1]
ldrb r1, [r4, #0x14]
lsls r1, r1, #1
ldr r0, _08087684 @ =gUnk_081208C0
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r2, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldr r0, _08087688 @ =gUnk_03000BF0
ldrh r1, [r0, #4]
ldr r0, _0808768C @ =0x00000403
movs r2, #0x16
cmp r1, r0
bne _08087676
movs r2, #0x17
_08087676:
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805457C
strh r5, [r4, #0x2e]
strh r6, [r4, #0x32]
pop {r4, r5, r6, pc}
.align 2, 0
_08087684: .4byte gUnk_081208C0
_08087688: .4byte gUnk_03000BF0
_0808768C: .4byte 0x00000403
thumb_func_start sub_08087690
sub_08087690: @ 0x08087690
push {lr}
ldr r2, _080876A4 @ =gUnk_08120A0C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080876A4: .4byte gUnk_08120A0C
thumb_func_start sub_080876A8
sub_080876A8: @ 0x080876A8
push {lr}
mov ip, r0
movs r0, #1
mov r1, ip
strb r0, [r1, #0xc]
movs r0, #0xb0
lsls r0, r0, #0xa
str r0, [r1, #0x20]
ldrb r2, [r1, #0x14]
lsls r0, r2, #2
movs r1, #0x10
eors r0, r1
mov r3, ip
strb r0, [r3, #0x15]
lsls r2, r2, #0x18
cmp r2, #0
bne _080876E2
adds r3, #0x29
ldrb r2, [r3]
lsls r1, r2, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
movs r0, #7
ands r1, r0
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_080876E2:
ldr r1, _08087760 @ =gUnk_08120A20
mov r2, ip
ldrb r0, [r2, #0x14]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r2, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrb r0, [r2, #0x14]
adds r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldr r3, _08087764 @ =gUnk_08120A18
ldrb r0, [r2, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #3]
mov r0, ip
adds r0, #0x60
strh r1, [r0]
ldrb r0, [r2, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
movs r0, #0xf
ands r1, r0
ldrb r2, [r2, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r2, ip
strb r0, [r2, #0x1a]
ldrb r0, [r2, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r0, [r0, #2]
str r0, [r2, #0x6c]
ldr r0, _08087768 @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
mov r0, ip
adds r0, #0x38
strb r1, [r0]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r2, #0x24]
ldrb r0, [r2, #0xf]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0]
mov r0, ip
bl sub_08004260
pop {pc}
.align 2, 0
_08087760: .4byte gUnk_08120A20
_08087764: .4byte gUnk_08120A18
_08087768: .4byte gLinkEntity
thumb_func_start sub_0808776C
sub_0808776C: @ 0x0808776C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x6c]
cmp r0, #0
beq _08087788
subs r0, #1
str r0, [r4, #0x6c]
ldr r0, _08087784 @ =gUnk_03003F80
adds r0, #0x3d
ldrb r0, [r0]
b _08087798
.align 2, 0
_08087784: .4byte gUnk_03003F80
_08087788:
adds r0, r4, #0
bl sub_080AEFE0
movs r1, #0xa0
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
_08087798:
cmp r0, #0
bne _080877A0
movs r0, #2
strb r0, [r4, #0xc]
_080877A0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080877A4
sub_080877A4: @ 0x080877A4
push {r4, lr}
adds r4, r0, #0
bl sub_080002D0
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, r0, #0
cmp r0, #0x25
beq _080877D0
cmp r0, #0x25
bgt _080877C4
cmp r0, #0x21
beq _080877CA
cmp r0, #0x24
beq _080877D6
b _080877E2
_080877C4:
cmp r1, #0x30
beq _080877D6
b _080877E2
_080877CA:
adds r0, r4, #0
movs r1, #0
b _080877DA
_080877D0:
adds r0, r4, #0
movs r1, #0xc
b _080877DA
_080877D6:
adds r0, r4, #0
movs r1, #0xb
_080877DA:
movs r2, #0
bl CreateFX
b _08087804
_080877E2:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08087804
cmp r0, #0xf
bne _080877F8
ldrb r1, [r4, #0xe]
adds r0, r4, #0
movs r2, #0x80
bl CreateFX
b _08087804
_080877F8:
ldrb r1, [r4, #0xb]
ldrb r2, [r4, #0xe]
adds r0, r4, #0
movs r3, #0
bl sub_080A2988
_08087804:
bl sub_0805E780
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808780C
sub_0808780C: @ 0x0808780C
push {lr}
ldr r2, _08087820 @ =gUnk_08120A28
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08087820: .4byte gUnk_08120A28
thumb_func_start sub_08087824
sub_08087824: @ 0x08087824
push {r4, lr}
adds r4, r0, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
bne _08087836
adds r0, r4, #0
bl sub_08016A30
_08087836:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #0x13
strb r0, [r1]
adds r1, #9
movs r0, #0xff
strb r0, [r1]
subs r1, #6
movs r0, #0xa9
strb r0, [r1]
adds r1, #1
movs r0, #0x16
strb r0, [r1]
ldr r0, _08087884 @ =gUnk_08120A54
ldr r0, [r0]
str r0, [r4, #0x48]
subs r1, #5
movs r0, #0x8b
strb r0, [r1]
adds r0, r4, #0
bl sub_080878CC
adds r0, r4, #0
movs r1, #1
bl sub_08004260
adds r0, r4, #0
bl sub_0801766C
movs r0, #0xfd
bl sub_08004488
pop {r4, pc}
.align 2, 0
_08087884: .4byte gUnk_08120A54
thumb_func_start sub_08087888
sub_08087888: @ 0x08087888
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080878A4
bl sub_0805E780
b _080878C8
_080878A4:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi _080878C0
ldr r0, _080878BC @ =gUnk_08120A54
ldrb r1, [r2]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
str r0, [r4, #0x48]
b _080878C8
.align 2, 0
_080878BC: .4byte gUnk_08120A54
_080878C0:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
_080878C8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080878CC
sub_080878CC: @ 0x080878CC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x10
adds r7, r0, #0
movs r1, #0x2e
ldrsh r0, [r7, r1]
str r0, [sp]
movs r0, #0x32
ldrsh r2, [r7, r0]
str r2, [sp, #4]
adds r0, r7, #0
adds r0, #0x38
ldrb r0, [r0]
mov r8, r0
movs r0, #0x10
rsbs r0, r0, #0
mov r1, r8
lsls r1, r1, #0x18
str r1, [sp, #8]
_080878F8:
movs r2, #0x10
rsbs r2, r2, #0
mov sb, r2
ldr r1, [sp]
adds r1, r1, r0
mov sl, r1
adds r0, #0x10
str r0, [sp, #0xc]
mov r6, sl
_0808790A:
ldr r2, _0808795C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r0, r6, r0
lsrs r4, r0, #4
movs r0, #0x3f
ands r4, r0
ldr r5, [sp, #4]
add r5, sb
ldrh r0, [r2, #8]
subs r0, r5, r0
lsrs r0, r0, #4
movs r1, #0x3f
ands r0, r1
lsls r0, r0, #6
orrs r4, r0
adds r0, r4, #0
ldr r2, [sp, #8]
lsrs r1, r2, #0x18
bl sub_080002C8
cmp r0, #0x2e
bne _08087970
adds r0, r4, #0
mov r1, r8
bl sub_080002B0
adds r1, r0, #0
movs r0, #0xda
lsls r0, r0, #2
cmp r1, r0
bhi _08087960
subs r0, #1
cmp r1, r0
blo _08087960
adds r0, r7, #0
movs r1, #3
adds r2, r6, #0
adds r3, r5, #0
bl sub_08008796
b _0808797C
.align 2, 0
_0808795C: .4byte gUnk_03000BF0
_08087960:
ldr r0, _0808796C @ =0x00004022
adds r1, r4, #0
mov r2, r8
bl sub_0800015E
b _0808797C
.align 2, 0
_0808796C: .4byte 0x00004022
_08087970:
adds r0, r7, #0
movs r1, #3
mov r2, sl
adds r3, r5, #0
bl sub_08008796
_0808797C:
movs r0, #0x10
add sb, r0
mov r1, sb
cmp r1, #0x10
ble _0808790A
ldr r0, [sp, #0xc]
cmp r0, #0x10
ble _080878F8
add sp, #0x10
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08087998
sub_08087998: @ 0x08087998
push {r4, lr}
adds r4, r0, #0
ldr r0, _080879C0 @ =gUnk_08120A68
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080879C4
subs r0, #1
strb r0, [r4, #0xe]
b _080879EA
.align 2, 0
_080879C0: .4byte gUnk_08120A68
_080879C4:
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0xa
bne _080879D8
adds r0, r4, #0
movs r1, #0xd
bl sub_08004260
b _080879EA
_080879D8:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080879EA
bl sub_0805E780
_080879EA:
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0
beq _08087A0C
adds r0, r4, #0
bl sub_0806F69C
ldrh r1, [r4, #0x24]
movs r2, #0x24
ldrsh r0, [r4, r2]
cmp r0, #0x10
ble _08087A08
adds r0, r1, #0
subs r0, #0x10
b _08087A0A
_08087A08:
movs r0, #0
_08087A0A:
strh r0, [r4, #0x24]
_08087A0C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08087A10
sub_08087A10: @ 0x08087A10
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08087A26
adds r0, r4, #0
movs r1, #3
bl sub_0801D2B4
_08087A26:
ldrb r0, [r4, #0xa]
cmp r0, #2
bls _08087A3C
ldr r0, _08087A4C @ =gUnk_08120A78
ldrb r1, [r4, #0xa]
subs r1, #3
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r4, #0
bl sub_0801D2B4
_08087A3C:
ldrb r0, [r4, #0xa]
cmp r0, #4
bhi _08087AF0
lsls r0, r0, #2
ldr r1, _08087A50 @ =_08087A54
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08087A4C: .4byte gUnk_08120A78
_08087A50: .4byte _08087A54
_08087A54: @ jump table
.4byte _08087A76 @ case 0
.4byte _08087AF0 @ case 1
.4byte _08087AA0 @ case 2
.4byte _08087A76 @ case 3
.4byte _08087A68 @ case 4
_08087A68:
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
_08087A76:
ldrb r1, [r4, #0x10]
movs r0, #0x80
movs r2, #0
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x45
movs r0, #1
strb r0, [r1]
subs r1, #9
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0xaa
strb r0, [r1]
subs r1, #4
movs r0, #0xe
strb r0, [r1]
ldr r0, _08087AE4 @ =gUnk_08120A8C
str r0, [r4, #0x48]
strb r2, [r4, #0x1c]
_08087AA0:
bl sub_08000E50
ldr r2, _08087AE8 @ =gUnk_08120A7A
movs r3, #3
adds r1, r0, #0
ands r1, r3
adds r1, r1, r2
ldrb r1, [r1]
strb r1, [r4, #0xe]
lsrs r2, r0, #8
ands r2, r3
movs r1, #0x10
ands r1, r0
cmp r1, #0
beq _08087AC0
rsbs r2, r2, #0
_08087AC0:
ldrh r0, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
adds r0, r0, r2
strh r0, [r4, #0x32]
ldr r0, _08087AEC @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
movs r1, #0xa
bl sub_08004260
b _08087AF8
.align 2, 0
_08087AE4: .4byte gUnk_08120A8C
_08087AE8: .4byte gUnk_08120A7A
_08087AEC: .4byte gLinkEntity
_08087AF0:
adds r0, r4, #0
movs r1, #0x10
bl sub_08004260
_08087AF8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08087AFC
sub_08087AFC: @ 0x08087AFC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08087B56
movs r0, #0x7f
ands r0, r1
cmp r0, #0x16
beq _08087B3C
cmp r0, #0x16
bgt _08087B1E
cmp r0, #0x13
beq _08087B4E
b _08087B56
_08087B1E:
cmp r0, #0x1c
bgt _08087B56
cmp r0, #0x1b
blt _08087B56
ldr r1, [r4, #0x4c]
adds r0, r1, #0
adds r0, #0x84
ldr r0, [r0]
adds r1, #0x80
ldr r1, [r1]
ldr r2, [r4, #0x2c]
ldr r3, [r4, #0x30]
bl sub_080045D4
b _08087B44
_08087B3C:
ldr r0, [r4, #0x4c]
adds r1, r4, #0
bl sub_080045C4
_08087B44:
strb r0, [r4, #0x15]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
b _08087B56
_08087B4E:
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
_08087B56:
pop {r4, pc}
thumb_func_start sub_08087B58
sub_08087B58: @ 0x08087B58
push {lr}
adds r2, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08087B80
ldr r0, _08087B7C @ =gUnk_08120A80
ldrb r1, [r2, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _08087B84
.align 2, 0
_08087B7C: .4byte gUnk_08120A80
_08087B80:
movs r0, #1
strb r0, [r2, #0xc]
_08087B84:
pop {pc}
.align 2, 0
thumb_func_start sub_08087B88
sub_08087B88: @ 0x08087B88
adds r2, r0, #0
adds r2, #0x46
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r2]
movs r1, #1
strb r1, [r0, #0xd]
strb r1, [r0, #0x1d]
bx lr
.align 2, 0
thumb_func_start sub_08087B9C
sub_08087B9C: @ 0x08087B9C
push {lr}
bl sub_0806F3E4
cmp r0, #0
beq _08087BAA
bl sub_0805E780
_08087BAA:
pop {pc}
thumb_func_start sub_08087BAC
sub_08087BAC: @ 0x08087BAC
push {lr}
ldr r2, _08087BC0 @ =gUnk_08120A94
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08087BC0: .4byte gUnk_08120A94
thumb_func_start sub_08087BC4
sub_08087BC4: @ 0x08087BC4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
adds r0, #1
movs r5, #0
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _08087C04
cmp r0, #1
bgt _08087BE0
cmp r0, #0
beq _08087BEA
b _08087CA6
_08087BE0:
cmp r0, #2
beq _08087C64
cmp r0, #3
beq _08087C7C
b _08087CA6
_08087BEA:
movs r0, #0x5e
bl sub_0807CBD0
cmp r0, #0
beq _08087C16
adds r1, r4, #0
adds r1, #0x7a
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_080787B4
b _08087C1C
_08087C04:
movs r0, #0x22
movs r1, #3
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _08087C16
str r4, [r0, #0x50]
str r0, [r4, #0x54]
_08087C16:
adds r0, r4, #0
adds r0, #0x7a
strb r5, [r0]
_08087C1C:
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08087C60 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x78
strh r1, [r0]
adds r0, r4, #0
bl sub_08087F58
b _08087CA6
.align 2, 0
_08087C60: .4byte gUnk_03000BF0
_08087C64:
adds r0, r4, #0
adds r0, #0x7a
strb r5, [r0]
adds r0, r4, #0
movs r1, #7
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #1
bl sub_08004260
b _08087CA6
_08087C7C:
movs r0, #0x1e
strb r0, [r4, #0xe]
strb r5, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x7a
strb r5, [r0]
adds r0, #1
strb r5, [r0]
adds r0, #5
strb r5, [r0]
adds r0, r4, #0
bl sub_0808804C
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
_08087CA6:
pop {r4, r5, pc}
thumb_func_start sub_08087CA8
sub_08087CA8: @ 0x08087CA8
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7a
ldrb r0, [r5]
cmp r0, #1
beq _08087CCA
cmp r0, #1
bgt _08087D02
cmp r0, #0
bne _08087D02
movs r0, #1
strb r0, [r5]
adds r0, r4, #0
bl sub_080787B4
b _08087D1A
_08087CCA:
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08087D1A
movs r0, #0
strb r0, [r1]
bl sub_080791D0
movs r0, #0x5e
bl sub_0807CBD0
cmp r0, #0
beq _08087CFA
movs r0, #2
strb r0, [r5]
bl sub_0807CD10
movs r0, #7
movs r1, #0xff
bl sub_080A7138
b _08087D1A
_08087CFA:
movs r0, #5
bl sub_0807CD10
b _08087D1A
_08087D02:
movs r0, #2
bl sub_0807CC3C
cmp r0, #0
bne _08087D1A
adds r1, r4, #0
adds r1, #0x7a
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_080787B4
_08087D1A:
pop {r4, r5, pc}
thumb_func_start sub_08087D1C
sub_08087D1C: @ 0x08087D1C
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x7a
ldrb r0, [r4]
cmp r0, #1
beq _08087D60
cmp r0, #1
bgt _08087D34
cmp r0, #0
beq _08087D3A
b _08087DB0
_08087D34:
cmp r0, #2
beq _08087D5A
b _08087DB0
_08087D3A:
movs r0, #0
bl sub_0807CC3C
cmp r0, #0
beq _08087DB0
movs r0, #0x5e
bl sub_0807CBD0
cmp r0, #0
beq _08087D54
movs r0, #1
strb r0, [r4]
b _08087DB0
_08087D54:
movs r0, #2
strb r0, [r4]
b _08087DB0
_08087D5A:
movs r0, #0x5e
bl sub_0807CCB4
_08087D60:
adds r1, r5, #0
adds r1, #0x7a
movs r0, #0
strb r0, [r1]
ldr r0, [r5, #0x54]
bl sub_08088328
movs r0, #0
bl sub_0807CD8C
movs r0, #0x22
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08087DAA
str r5, [r4, #0x50]
adds r0, r5, #0
adds r0, #0x7d
ldrb r0, [r0]
strb r0, [r4, #0xf]
ldr r1, _08087DB4 @ =gUnk_080FC3E4
ldrb r0, [r4, #0xf]
lsls r0, r0, #3
adds r0, r0, r1
ldrb r0, [r0, #7]
strb r0, [r4, #0xb]
movs r2, #0x80
lsls r2, r2, #0xc
movs r3, #0xe0
lsls r3, r3, #0xb
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
_08087DAA:
ldr r0, _08087DB8 @ =0x00000111
bl sub_08004488
_08087DB0:
pop {r4, r5, pc}
.align 2, 0
_08087DB4: .4byte gUnk_080FC3E4
_08087DB8: .4byte 0x00000111
thumb_func_start sub_08087DBC
sub_08087DBC: @ 0x08087DBC
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x7a
ldrb r0, [r2]
cmp r0, #1
beq _08087E10
cmp r0, #1
bgt _08087E3C
cmp r0, #0
bne _08087E3C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08087E5A
movs r0, #1
strb r0, [r2]
movs r0, #0x28
strb r0, [r4, #0xe]
ldr r1, _08087E0C @ =gUnk_08120AA8
ldrb r0, [r4, #0xb]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
bl sub_0801D2B4
adds r0, r4, #0
movs r1, #2
bl sub_08004260
movs r0, #0x88
lsls r0, r0, #1
bl sub_080A3268
b _08087E5A
.align 2, 0
_08087E0C: .4byte gUnk_08120AA8
_08087E10:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08087E5A
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08087E5A
movs r0, #2
strb r0, [r2]
bl sub_0807CD10
ldrb r1, [r4, #0xf]
movs r0, #7
bl sub_080A7138
b _08087E5A
_08087E3C:
movs r0, #2
bl sub_0807CC3C
cmp r0, #0
bne _08087E5A
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r0, #4
bl sub_0807CD8C
bl sub_0805E780
_08087E5A:
pop {r4, pc}
thumb_func_start sub_08087E5C
sub_08087E5C: @ 0x08087E5C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7a
ldrb r1, [r5]
cmp r1, #1
beq _08087EAC
cmp r1, #1
bgt _08087E74
cmp r1, #0
beq _08087E7A
b _08087F4E
_08087E74:
cmp r1, #2
beq _08087F24
b _08087F4E
_08087E7A:
adds r0, r4, #0
adds r0, #0x7b
ldrb r0, [r0]
cmp r0, #4
bne _08087EA4
movs r0, #1
bl sub_0807CC3C
cmp r0, #0
beq _08087F4E
movs r0, #1
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x81
strb r0, [r1]
bl sub_0807CD8C
adds r0, r4, #0
bl sub_0808826C
b _08087F1C
_08087EA4:
adds r0, r4, #0
bl sub_080880D8
b _08087F4E
_08087EAC:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08087EB6
subs r0, #1
strb r0, [r4, #0xe]
_08087EB6:
ldr r6, _08087ED4 @ =gUnk_03000FF0
ldrh r0, [r6, #2]
ands r1, r0
cmp r1, #0
beq _08087ED8
movs r0, #0x6a
bl sub_080A3268
movs r0, #2
strb r0, [r5]
movs r0, #0x3c
strb r0, [r4, #0xe]
bl sub_08050384
b _08087F4E
.align 2, 0
_08087ED4: .4byte gUnk_03000FF0
_08087ED8:
adds r2, r4, #0
adds r2, #0x81
ldrb r7, [r2]
ldrh r1, [r6]
movs r0, #0x80
lsls r0, r0, #1
ands r0, r1
movs r3, #1
adds r5, r2, #0
cmp r0, #0
beq _08087EF0
movs r3, #0xa
_08087EF0:
ldrh r1, [r6, #4]
ldr r0, _08087F00 @ =0xFFFFFEFF
ands r1, r0
cmp r1, #0x40
beq _08087F04
cmp r1, #0x80
beq _08087F0E
b _08087F16
.align 2, 0
_08087F00: .4byte 0xFFFFFEFF
_08087F04:
adds r0, r4, #0
adds r1, r3, #0
bl sub_08087F94
b _08087F16
_08087F0E:
rsbs r1, r3, #0
adds r0, r4, #0
bl sub_08087F94
_08087F16:
ldrb r5, [r5]
cmp r7, r5
beq _08087F4E
_08087F1C:
adds r0, r4, #0
bl sub_080882A8
b _08087F4E
_08087F24:
movs r0, #0
strb r0, [r5]
adds r1, r4, #0
adds r1, #0x7b
movs r0, #4
strb r0, [r1]
movs r0, #3
bl sub_0807CD10
ldr r0, _08087F50 @ =0x0000431A
bl sub_08056378
ldr r1, _08087F54 @ =gUnk_02000050
movs r0, #1
strb r0, [r1, #6]
movs r0, #0xc
strb r0, [r1, #7]
adds r0, r4, #0
adds r0, #0x81
ldrb r0, [r0]
str r0, [r1, #0x10]
_08087F4E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08087F50: .4byte 0x0000431A
_08087F54: .4byte gUnk_02000050
thumb_func_start sub_08087F58
sub_08087F58: @ 0x08087F58
push {r4, r5, lr}
ldrb r1, [r0, #0xa]
cmp r1, #1
bgt _08087F8C
cmp r1, #0
blt _08087F8C
ldr r5, _08087F90 @ =0x00004022
adds r4, r0, #0
adds r4, #0x78
ldrh r1, [r4]
subs r1, #1
adds r0, r5, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r4]
adds r0, r5, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r4]
adds r1, #1
adds r0, r5, #0
movs r2, #1
bl sub_0800015E
_08087F8C:
pop {r4, r5, pc}
.align 2, 0
_08087F90: .4byte 0x00004022
thumb_func_start sub_08087F94
sub_08087F94: @ 0x08087F94
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r0, #0x5f
bl sub_0807CBD0
cmp r0, #0
bne _08088014
adds r0, r5, #0
adds r0, #0x83
movs r1, #0
ldrsb r1, [r0, r1]
mov ip, r1
adds r3, r1, r4
adds r7, r0, #0
cmp r4, #0
bge _08087FEA
adds r2, r5, #0
adds r2, #0x82
movs r0, #0
ldrsb r0, [r2, r0]
cmp r3, r0
bge _08087FD6
movs r1, #0
ldrsb r1, [r7, r1]
ldrb r3, [r2]
cmp r1, r0
beq _08088014
strb r3, [r7]
adds r1, r5, #0
adds r1, #0x81
movs r0, #1
b _08087FE0
_08087FD6:
strb r3, [r7]
adds r1, r5, #0
adds r1, #0x81
ldrb r0, [r1]
adds r0, r0, r4
_08087FE0:
strb r0, [r1]
movs r0, #0x69
bl sub_080A3268
b _08088032
_08087FEA:
adds r1, r5, #0
adds r1, #0x81
ldrb r6, [r1]
adds r2, r6, r4
ldr r0, _0808801C @ =gUnk_02002A40
adds r0, #0xc2
ldrh r0, [r0]
cmp r2, r0
ble _08088008
cmp r0, r6
beq _08088014
adds r2, r0, #0
subs r4, r2, r6
mov r0, ip
adds r3, r0, r4
_08088008:
cmp r3, #0x64
ble _08088028
movs r0, #0
ldrsb r0, [r7, r0]
cmp r0, #0x64
bne _08088020
_08088014:
adds r0, r5, #0
bl sub_08088034
b _08088032
.align 2, 0
_0808801C: .4byte gUnk_02002A40
_08088020:
movs r3, #0x64
mov r0, ip
subs r4, r3, r0
adds r2, r6, r4
_08088028:
strb r3, [r7]
strb r2, [r1]
movs r0, #0x69
bl sub_080A3268
_08088032:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08088034
sub_08088034: @ 0x08088034
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
cmp r0, #0
bne _08088048
movs r0, #0x14
strb r0, [r1, #0xe]
movs r0, #0x6d
bl sub_080A3268
_08088048:
pop {pc}
.align 2, 0
thumb_func_start sub_0808804C
sub_0808804C: @ 0x0808804C
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #0
ldr r0, _08088060 @ =gUnk_02002A40
ldrb r0, [r0, #6]
cmp r0, #0
beq _08088064
movs r4, #9
b _080880D0
.align 2, 0
_08088060: .4byte gUnk_02002A40
_08088064:
movs r0, #6
bl GetProgressFlag
cmp r0, #0
beq _08088072
movs r4, #7
b _080880D0
_08088072:
movs r0, #0x80
lsls r0, r0, #4
movs r1, #0x77
bl GetProgressFlagWithOffset
cmp r0, #0
beq _08088084
movs r4, #6
b _080880D0
_08088084:
movs r0, #0xc0
lsls r0, r0, #2
movs r1, #0x32
bl GetProgressFlagWithOffset
cmp r0, #0
beq _08088096
movs r4, #5
b _080880D0
_08088096:
movs r0, #5
bl GetProgressFlag
cmp r0, #0
beq _080880A4
movs r4, #4
b _080880D0
_080880A4:
movs r0, #4
bl GetProgressFlag
cmp r0, #0
beq _080880B2
movs r4, #3
b _080880D0
_080880B2:
movs r0, #0x80
lsls r0, r0, #1
movs r1, #0x9c
bl GetProgressFlagWithOffset
cmp r0, #0
beq _080880C4
movs r4, #2
b _080880D0
_080880C4:
movs r0, #3
bl GetProgressFlag
cmp r0, #0
beq _080880D0
movs r4, #1
_080880D0:
adds r0, r5, #0
adds r0, #0x7c
strb r4, [r0]
pop {r4, r5, pc}
thumb_func_start sub_080880D8
sub_080880D8: @ 0x080880D8
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r0, #0x7b
ldrb r1, [r0]
ldr r0, _08088158 @ =gUnk_08120AAC
adds r6, r1, r0
ldrb r4, [r6]
ldrb r0, [r6, #1]
cmp r4, r0
bhs _0808810A
adds r5, r7, #0
adds r5, #0x80
_080880F0:
adds r0, r7, #0
adds r1, r4, #0
bl sub_08088160
cmp r0, #0
beq _08088102
ldrb r0, [r5]
adds r0, #1
strb r0, [r5]
_08088102:
adds r4, #1
ldrb r0, [r6, #1]
cmp r4, r0
blo _080880F0
_0808810A:
adds r1, r7, #0
adds r1, #0x7b
ldrb r0, [r1]
adds r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bne _08088156
ldr r5, _0808815C @ =gUnk_02002A40
adds r0, r7, #0
adds r0, #0x80
ldrb r1, [r5, #9]
adds r4, r0, #0
ldrb r0, [r4]
cmp r1, r0
beq _0808813A
cmp r1, #0
beq _08088136
movs r0, #6
bl sub_0807CD10
_08088136:
ldrb r0, [r4]
strb r0, [r5, #9]
_0808813A:
movs r0, #0x5f
bl sub_0807CBD0
cmp r0, #0
beq _08088156
ldr r0, _0808815C @ =gUnk_02002A40
adds r0, #0xb0
ldrb r1, [r4]
ldrb r0, [r0]
cmp r1, r0
beq _08088156
movs r0, #0x5f
bl sub_0807CD34
_08088156:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08088158: .4byte gUnk_08120AAC
_0808815C: .4byte gUnk_02002A40
thumb_func_start sub_08088160
sub_08088160: @ 0x08088160
push {r4, lr}
adds r2, r0, #0
lsls r1, r1, #3
ldr r0, _08088188 @ =gUnk_080FC3E4
adds r1, r1, r0
movs r4, #0
adds r0, r2, #0
adds r0, #0x7c
ldrb r0, [r0]
ldrb r3, [r1, #6]
cmp r0, r3
bhs _08088266
ldrb r0, [r1, #6]
cmp r0, #0x10
beq _0808819E
cmp r0, #0x10
bgt _0808818C
cmp r0, #8
beq _08088194
b _08088268
.align 2, 0
_08088188: .4byte gUnk_080FC3E4
_0808818C:
cmp r0, #0x20
beq _080881A6
cmp r0, #0x40
bne _08088268
_08088194:
ldr r0, [r1]
ldrh r1, [r1, #4]
bl GetProgressFlagWithOffset
b _08088262
_0808819E:
ldrh r0, [r1, #4]
bl sub_0801E7F4
b _08088262
_080881A6:
ldrh r0, [r1, #4]
cmp r0, #5
bhi _08088268
lsls r0, r0, #2
ldr r1, _080881B8 @ =_080881BC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080881B8: .4byte _080881BC
_080881BC: @ jump table
.4byte _080881D4 @ case 0
.4byte _080881F0 @ case 1
.4byte _080881FE @ case 2
.4byte _0808821A @ case 3
.4byte _08088236 @ case 4
.4byte _08088252 @ case 5
_080881D4:
movs r0, #0x20
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x10
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x19
_080881EA:
bl sub_0801E7F4
b _08088262
_080881F0:
adds r0, r2, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #4
bls _08088268
movs r0, #0x28
b _080881EA
_080881FE:
movs r0, #0x54
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x56
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x3d
bl sub_0801E7F4
b _08088262
_0808821A:
movs r0, #0x3b
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x4a
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0xd
bl sub_0801E7F4
b _08088262
_08088236:
movs r0, #0x49
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x55
bl sub_0801E7F4
cmp r0, #0
bne _08088266
movs r0, #0x3c
bl sub_0801E7F4
b _08088262
_08088252:
adds r0, r2, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #1
bls _08088268
movs r0, #0x12
bl GetProgressFlag
_08088262:
cmp r0, #0
beq _08088268
_08088266:
movs r4, #1
_08088268:
adds r0, r4, #0
pop {r4, pc}
thumb_func_start sub_0808826C
sub_0808826C: @ 0x0808826C
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #0x64
adds r0, #0x80
ldrb r1, [r0]
ldr r0, _080882A4 @ =gUnk_02002A40
adds r0, #0xb0
ldrb r0, [r0]
subs r0, r1, r0
muls r4, r0, r4
adds r0, r4, #0
bl __divsi3
adds r4, r0, #0
cmp r4, #0
bne _08088298
movs r0, #0x5f
bl sub_0807CBD0
cmp r0, #0
bne _08088298
movs r4, #1
_08088298:
adds r0, r5, #0
adds r0, #0x83
strb r4, [r0]
subs r0, #1
strb r4, [r0]
pop {r4, r5, pc}
.align 2, 0
_080882A4: .4byte gUnk_02002A40
thumb_func_start sub_080882A8
sub_080882A8: @ 0x080882A8
push {r4, r5, r6, lr}
adds r6, r0, #0
bl sub_08050384
adds r0, r6, #0
adds r0, #0x81
ldrb r0, [r0]
ldr r4, _080882F4 @ =gUnk_020227E8
ldr r5, _080882F8 @ =0x00202020
adds r1, r4, #0
adds r2, r5, #0
bl sub_08057044
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r4, #8
adds r1, r4, #0
adds r2, r5, #0
bl sub_08057044
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #0
bne _08088304
ldr r1, _080882FC @ =gUnk_08120AE4
ldrb r0, [r6, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _08088300 @ =gUnk_08120AB4
bl sub_0805F46C
b _08088314
.align 2, 0
_080882F4: .4byte gUnk_020227E8
_080882F8: .4byte 0x00202020
_080882FC: .4byte gUnk_08120AE4
_08088300: .4byte gUnk_08120AB4
_08088304:
ldr r1, _0808831C @ =gUnk_08120AE4
ldrb r0, [r6, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldr r1, _08088320 @ =gUnk_08120ACC
bl sub_0805F46C
_08088314:
ldr r1, _08088324 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
pop {r4, r5, r6, pc}
.align 2, 0
_0808831C: .4byte gUnk_08120AE4
_08088320: .4byte gUnk_08120ACC
_08088324: .4byte gUnk_03000F50
thumb_func_start sub_08088328
sub_08088328: @ 0x08088328
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
movs r4, #0x7f
_08088332:
bl sub_08000E50
adds r5, r0, #0
ands r5, r4
cmp r5, #0x63
bhi _08088332
adds r0, r6, #0
adds r0, #0x81
ldrb r0, [r0]
rsbs r0, r0, #0
bl sub_080542C0
bl sub_08000E50
movs r1, #0x7f
ands r1, r0
adds r4, r1, #1
adds r7, r4, #0
adds r0, r6, #0
bl sub_08088424
adds r0, r6, #0
adds r0, #0x83
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r5, r0
bhs _080883A4
movs r5, #0
movs r0, #0x7d
adds r0, r0, r6
mov r8, r0
_08088372:
cmp r5, #0
bne _080883E2
cmp r4, #0x88
bls _0808837C
movs r4, #1
_0808837C:
adds r0, r6, #0
adds r1, r4, #0
bl sub_08088160
cmp r0, #0
beq _0808839C
ldr r0, _08088398 @ =gUnk_02002B0E
adds r1, r4, #0
bl sub_0801D5A8
cmp r0, #0
bne _0808839C
movs r5, #1
b _0808839E
.align 2, 0
_08088398: .4byte gUnk_02002B0E
_0808839C:
adds r4, #1
_0808839E:
cmp r7, r4
bne _08088372
b _080883DE
_080883A4:
movs r5, #1
movs r0, #0x7d
adds r0, r0, r6
mov r8, r0
_080883AC:
cmp r5, #0
beq _08088414
cmp r4, #0x88
bls _080883B6
movs r4, #1
_080883B6:
adds r0, r6, #0
adds r1, r4, #0
bl sub_08088160
cmp r0, #0
beq _080883D8
ldr r0, _080883D4 @ =gUnk_02002B0E
adds r1, r4, #0
bl sub_0801D5A8
cmp r0, #0
beq _080883D8
movs r5, #0
b _080883DA
.align 2, 0
_080883D4: .4byte gUnk_02002B0E
_080883D8:
adds r4, #1
_080883DA:
cmp r7, r4
bne _080883AC
_080883DE:
cmp r5, #0
beq _08088414
_080883E2:
ldr r0, _08088404 @ =gUnk_02002A40
adds r0, #0xb0
ldrb r1, [r0]
adds r1, #1
strb r1, [r0]
adds r0, r6, #0
adds r0, #0x80
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
ldrb r0, [r0]
cmp r1, r0
beq _08088408
movs r0, #7
bl sub_0807CD10
b _08088414
.align 2, 0
_08088404: .4byte gUnk_02002A40
_08088408:
movs r0, #0x5f
bl sub_0807CCB4
movs r0, #8
bl sub_0807CD10
_08088414:
mov r0, r8
strb r4, [r0]
ldr r0, [r6, #0x50]
adds r0, #0x7d
strb r4, [r0]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08088424
sub_08088424: @ 0x08088424
push {lr}
adds r1, r0, #0
ldr r0, _08088440 @ =gUnk_02002A40
adds r0, #0xb0
ldrb r0, [r0]
cmp r0, #0x31
bhi _08088444
adds r1, #0x83
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xe
bgt _08088476
movs r0, #0xf
b _08088474
.align 2, 0
_08088440: .4byte gUnk_02002A40
_08088444:
cmp r0, #0x4f
bhi _08088456
adds r1, #0x83
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0xb
bgt _08088476
movs r0, #0xc
b _08088474
_08088456:
cmp r0, #0x6d
bhi _08088468
adds r1, #0x83
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #8
bgt _08088476
movs r0, #9
b _08088474
_08088468:
adds r1, #0x83
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #5
bgt _08088476
movs r0, #6
_08088474:
strb r0, [r1]
_08088476:
pop {pc}
thumb_func_start sub_08088478
sub_08088478: @ 0x08088478
push {r4, lr}
movs r4, #0
movs r0, #8
bl sub_0807CC3C
cmp r0, #0
bne _080884A4
movs r0, #7
bl sub_0807CC3C
cmp r0, #0
bne _0808849C
ldr r1, _08088498 @ =0x00004322
movs r4, #1
b _080884D2
.align 2, 0
_08088498: .4byte 0x00004322
_0808849C:
ldr r1, _080884A0 @ =0x00004325
b _080884D2
.align 2, 0
_080884A0: .4byte 0x00004325
_080884A4:
ldr r1, _080884C0 @ =gUnk_02002A40
adds r0, r1, #0
adds r0, #0xb0
ldrb r0, [r0]
cmp r0, #0x82
beq _080884C8
cmp r0, #0x88
bne _080884D0
adds r1, #0xb1
movs r0, #0xff
strb r0, [r1]
ldr r1, _080884C4 @ =0x00004329
b _080884D2
.align 2, 0
_080884C0: .4byte gUnk_02002A40
_080884C4: .4byte 0x00004329
_080884C8:
ldrb r0, [r1, #6]
ldr r1, _080884F4 @ =0x00004328
cmp r0, #0
beq _080884D2
_080884D0:
ldr r1, _080884F8 @ =0x00004327
_080884D2:
adds r0, r1, #0
bl sub_08056378
ldr r1, _080884FC @ =gUnk_02000050
movs r0, #1
strb r0, [r1, #6]
movs r0, #0xc
strb r0, [r1, #7]
cmp r4, #0
beq _080884EA
movs r0, #5
str r0, [r1, #0x10]
_080884EA:
ldr r1, _08088500 @ =gLinkEntity
movs r0, #6
strb r0, [r1, #0x14]
pop {r4, pc}
.align 2, 0
_080884F4: .4byte 0x00004328
_080884F8: .4byte 0x00004327
_080884FC: .4byte gUnk_02000050
_08088500: .4byte gLinkEntity
thumb_func_start sub_08088504
sub_08088504: @ 0x08088504
push {lr}
ldr r0, _08088518 @ =gUnk_02002A40
adds r0, #0xb0
ldrb r0, [r0]
cmp r0, #0x82
beq _08088520
cmp r0, #0x88
bne _08088528
ldr r0, _0808851C @ =0x0000432F
b _0808852A
.align 2, 0
_08088518: .4byte gUnk_02002A40
_0808851C: .4byte 0x0000432F
_08088520:
ldr r0, _08088524 @ =0x00004314
b _0808852A
.align 2, 0
_08088524: .4byte 0x00004314
_08088528:
ldr r0, _0808853C @ =0x00004311
_0808852A:
bl sub_08056378
ldr r0, _08088540 @ =gUnk_02000050
movs r1, #1
strb r1, [r0, #6]
movs r1, #0xc
strb r1, [r0, #7]
pop {pc}
.align 2, 0
_0808853C: .4byte 0x00004311
_08088540: .4byte gUnk_02000050
thumb_func_start sub_08088544
sub_08088544: @ 0x08088544
push {lr}
ldr r0, _08088568 @ =gUnk_02002A40
adds r0, #0xb0
ldrb r0, [r0]
ldr r1, _0808856C @ =0x00004315
cmp r0, #0x82
beq _08088554
subs r1, #7
_08088554:
adds r0, r1, #0
bl sub_08056378
ldr r0, _08088570 @ =gUnk_02000050
movs r1, #1
strb r1, [r0, #6]
movs r1, #0xc
strb r1, [r0, #7]
pop {pc}
.align 2, 0
_08088568: .4byte gUnk_02002A40
_0808856C: .4byte 0x00004315
_08088570: .4byte gUnk_02000050
thumb_func_start sub_08088574
sub_08088574: @ 0x08088574
push {lr}
movs r0, #9
bl sub_0807CC3C
cmp r0, #0
beq _08088594
movs r0, #0x5f
bl sub_0807CBD0
ldr r1, _08088590 @ =0x0000430C
cmp r0, #0
beq _08088596
adds r1, #7
b _08088596
.align 2, 0
_08088590: .4byte 0x0000430C
_08088594:
ldr r1, _080885A8 @ =0x0000430B
_08088596:
adds r0, r1, #0
bl sub_08056378
ldr r0, _080885AC @ =gUnk_02000050
movs r1, #1
strb r1, [r0, #6]
movs r1, #0xc
strb r1, [r0, #7]
pop {pc}
.align 2, 0
_080885A8: .4byte 0x0000430B
_080885AC: .4byte gUnk_02000050
thumb_func_start sub_080885B0
sub_080885B0: @ 0x080885B0
push {lr}
movs r0, #8
bl sub_0807CC3C
cmp r0, #0
bne _080885E8
movs r0, #7
bl sub_0807CC3C
cmp r0, #0
bne _0808860A
movs r0, #5
bl sub_080526CC
ldr r0, _080885E0 @ =0x00004326
bl sub_08056378
ldr r1, _080885E4 @ =gUnk_02000050
movs r0, #1
strb r0, [r1, #6]
movs r0, #0xc
strb r0, [r1, #7]
b _0808860A
.align 2, 0
_080885E0: .4byte 0x00004326
_080885E4: .4byte gUnk_02000050
_080885E8:
ldr r1, _08088618 @ =gUnk_02002A40
adds r0, r1, #0
adds r0, #0xb1
ldrb r0, [r0]
cmp r0, #0
beq _0808860A
adds r1, #0xbb
movs r0, #1
strb r0, [r1]
movs r0, #0x3e
movs r1, #0
movs r2, #0
bl sub_080A7C00
movs r0, #0x59
bl sub_0807CD04
_0808860A:
movs r0, #8
bl sub_0807CD8C
movs r0, #7
bl sub_0807CD8C
pop {pc}
.align 2, 0
_08088618: .4byte gUnk_02002A40
thumb_func_start sub_0808861C
sub_0808861C: @ 0x0808861C
push {r4, lr}
adds r4, r1, #0
movs r0, #0xa8
movs r1, #0x54
movs r2, #0xc
movs r3, #8
bl sub_0800293E
str r0, [r4, #0x14]
ldr r1, _08088650 @ =gLinkEntity
ldrb r0, [r1, #0x14]
cmp r0, #0
bne _0808863E
movs r2, #0x36
ldrsh r0, [r1, r2]
cmp r0, #0
beq _08088642
_0808863E:
movs r0, #0
str r0, [r4, #0x14]
_08088642:
ldr r2, _08088654 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_08088650: .4byte gLinkEntity
_08088654: .4byte gUnk_02033280
thumb_func_start sub_08088658
sub_08088658: @ 0x08088658
push {r4, lr}
adds r4, r1, #0
movs r0, #0x78
movs r1, #0x78
movs r2, #0x10
movs r3, #8
bl sub_0800293E
str r0, [r4, #0x14]
ldr r0, _08088684 @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
beq _08088678
movs r0, #0
str r0, [r4, #0x14]
_08088678:
ldr r2, _08088688 @ =gUnk_02033280
ldrb r1, [r2, #7]
movs r0, #1
orrs r0, r1
strb r0, [r2, #7]
pop {r4, pc}
.align 2, 0
_08088684: .4byte gLinkEntity
_08088688: .4byte gUnk_02033280
thumb_func_start sub_0808868C
sub_0808868C: @ 0x0808868C
push {lr}
ldr r2, _080886A0 @ =gUnk_08120B20
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080886A0: .4byte gUnk_08120B20
thumb_func_start sub_080886A4
sub_080886A4: @ 0x080886A4
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xa]
movs r6, #3
adds r0, r6, #0
ands r0, r1
strb r0, [r4, #0x14]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
movs r5, #1
strb r5, [r0]
subs r1, #5
movs r0, #2
strb r0, [r1]
ldr r0, _08088700 @ =gUnk_080FD168
str r0, [r4, #0x48]
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08088704
strb r6, [r4, #0xc]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
b _08088716
.align 2, 0
_08088700: .4byte gUnk_080FD168
_08088704:
strb r5, [r4, #0xc]
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_08088716:
pop {r4, r5, r6, pc}
thumb_func_start sub_08088718
sub_08088718: @ 0x08088718
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x95
beq _08088728
cmp r0, #0x8e
bne _0808875A
_08088728:
ldr r0, [r4, #0x4c]
ldrb r1, [r0, #0x15]
adds r1, #4
movs r0, #0x18
ands r1, r0
asrs r1, r1, #3
ldrb r2, [r4, #0x14]
movs r0, #3
ands r0, r2
cmp r1, r0
bne _0808875A
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r0, _0808875C @ =0x00000111
bl sub_08004488
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_0808875A:
pop {r4, pc}
.align 2, 0
_0808875C: .4byte 0x00000111
thumb_func_start sub_08088760
sub_08088760: @ 0x08088760
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808878E
movs r0, #3
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
_0808878E:
pop {r4, pc}
thumb_func_start sub_08088790
sub_08088790: @ 0x08088790
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080887D6
adds r0, r4, #0
adds r0, #0x86
adds r2, r4, #0
adds r2, #0x84
ldrh r1, [r0]
adds r5, r0, #0
ldrh r0, [r2]
cmp r1, r0
beq _080887BC
ldrh r0, [r2]
bl sub_0807CBE4
cmp r0, #0
beq _080887BC
movs r0, #0
strb r0, [r4, #0xe]
b _080887D6
_080887BC:
adds r1, r4, #0
adds r1, #0x70
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080887D6
movs r0, #4
strb r0, [r4, #0xc]
ldrh r0, [r5]
bl sub_0807CD48
_080887D6:
pop {r4, r5, pc}
thumb_func_start sub_080887D8
sub_080887D8: @ 0x080887D8
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08088802
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_08088802:
pop {r4, pc}
thumb_func_start sub_08088804
sub_08088804: @ 0x08088804
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _08088828
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08088828
ldrb r0, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x72
strb r0, [r1]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_08088828:
ldr r0, _0808883C @ =gUnk_08120BE0
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_0808883C: .4byte gUnk_08120BE0
thumb_func_start sub_08088840
sub_08088840: @ 0x08088840
movs r3, #1
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
adds r3, r0, #0
adds r3, #0x29
ldrb r1, [r3]
movs r2, #7
orrs r1, r2
strb r1, [r3]
ldr r1, _08088868 @ =gUnk_080FD1D4
str r1, [r0, #0x48]
ldrb r1, [r0, #0x14]
adds r0, #0x72
strb r1, [r0]
bx lr
.align 2, 0
_08088868: .4byte gUnk_080FD1D4
thumb_func_start sub_0808886C
sub_0808886C: @ 0x0808886C
push {r4, r5, lr}
adds r5, r0, #0
bl sub_08088938
adds r4, r0, #0
adds r0, r5, #0
bl sub_080889A8
adds r4, r4, r0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldrb r1, [r5, #0xa]
adds r0, r1, #2
cmp r0, r4
bgt _080888B8
movs r1, #0
movs r0, #2
strb r0, [r5, #0xc]
strb r1, [r5, #0xf]
movs r0, #4
strb r0, [r5, #0x14]
strh r1, [r5, #0x36]
adds r0, r5, #0
movs r1, #4
bl sub_08004260
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
ldr r0, _080888B4 @ =0x0000016B
bl sub_08004488
b _080888F2
.align 2, 0
_080888B4: .4byte 0x0000016B
_080888B8:
ldrb r0, [r5, #0x14]
cmp r4, r0
bls _080888E4
adds r0, r1, #1
cmp r0, r4
bne _080888D2
movs r0, #4
strb r0, [r5, #0xf]
adds r1, r4, #1
adds r0, r5, #0
bl sub_08004260
b _080888DA
_080888D2:
adds r0, r5, #0
adds r1, r4, #0
bl sub_08004260
_080888DA:
movs r0, #0x86
lsls r0, r0, #1
bl sub_08004488
b _080888F0
_080888E4:
cmp r4, r0
bhs _080888F0
adds r0, r5, #0
adds r1, r4, #0
bl sub_08004260
_080888F0:
strb r4, [r5, #0x14]
_080888F2:
pop {r4, r5, pc}
thumb_func_start sub_080888F4
sub_080888F4: @ 0x080888F4
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x70
ldrh r0, [r0]
cmp r0, #0
beq _08088934
adds r0, r5, #0
bl sub_08088938
adds r4, r0, #0
adds r0, r5, #0
bl sub_080889A8
adds r4, r4, r0
lsls r4, r4, #0x18
lsrs r4, r4, #0x18
ldrb r0, [r5, #0xa]
adds r0, #2
cmp r0, r4
ble _08088934
movs r0, #1
strb r0, [r5, #0xc]
strb r4, [r5, #0x14]
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
adds r0, r5, #0
adds r1, r4, #0
bl sub_08004260
_08088934:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08088938
sub_08088938: @ 0x08088938
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r5, #0
ldrh r1, [r0, #0x2e]
subs r1, #8
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
mov ip, r1
ldrh r1, [r0, #0x32]
subs r1, #8
lsls r1, r1, #0x10
lsrs r7, r1, #0x10
movs r4, #0
ldr r1, _080889A0 @ =gUnk_02034350
ldr r2, _080889A4 @ =gUnk_08120BEC
mov r8, r2
adds r3, r1, #0
adds r3, #0xac
adds r6, r0, #0
adds r6, #0x72
_08088962:
ldr r2, [r3]
cmp r2, #0
beq _08088990
ldrh r0, [r2, #0x2e]
mov r1, ip
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x10
bhi _08088990
ldrh r0, [r2, #0x32]
subs r0, r0, r7
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x10
bhi _08088990
ldrb r0, [r6]
add r0, r8
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x63
strb r1, [r0]
adds r5, #1
_08088990:
adds r3, #4
adds r4, #1
cmp r4, #7
bls _08088962
adds r0, r5, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080889A0: .4byte gUnk_02034350
_080889A4: .4byte gUnk_08120BEC
thumb_func_start sub_080889A8
sub_080889A8: @ 0x080889A8
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r5, #0
bl sub_08017850
cmp r0, #0
beq _080889CA
ldr r1, _08088A40 @ =gLinkEntity
ldr r2, _08088A44 @ =gUnk_08120BEC
adds r0, r4, #0
adds r0, #0x72
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x63
strb r0, [r1]
movs r5, #1
_080889CA:
ldr r0, _08088A48 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0xf
ands r0, r1
cmp r0, #0
beq _08088A3A
ldr r6, _08088A4C @ =gUnk_03004040
ldr r1, [r6]
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _080889FA
ldr r1, [r6]
ldr r2, _08088A44 @ =gUnk_08120BEC
adds r0, r4, #0
adds r0, #0x72
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x63
strb r0, [r1]
adds r5, #1
_080889FA:
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _08088A1A
ldr r1, [r6, #4]
ldr r2, _08088A44 @ =gUnk_08120BEC
adds r0, r4, #0
adds r0, #0x72
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x63
strb r0, [r1]
adds r5, #1
_08088A1A:
ldr r1, [r6, #8]
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _08088A3A
ldr r1, [r6, #8]
ldr r2, _08088A44 @ =gUnk_08120BEC
adds r0, r4, #0
adds r0, #0x72
ldrb r0, [r0]
adds r0, r0, r2
ldrb r0, [r0]
adds r1, #0x63
strb r0, [r1]
adds r5, #1
_08088A3A:
adds r0, r5, #0
pop {r4, r5, r6, pc}
.align 2, 0
_08088A40: .4byte gLinkEntity
_08088A44: .4byte gUnk_08120BEC
_08088A48: .4byte gUnk_03003F80
_08088A4C: .4byte gUnk_03004040
thumb_func_start sub_08088A50
sub_08088A50: @ 0x08088A50
push {lr}
ldr r2, _08088A64 @ =gUnk_08120C34
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08088A64: .4byte gUnk_08120C34
thumb_func_start sub_08088A68
sub_08088A68: @ 0x08088A68
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08088AE4
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x18]
movs r2, #3
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
movs r0, #0x17
bl GetProgressFlag
cmp r0, #0
beq _08088AA0
ldr r0, _08088A9C @ =gUnk_02002A40
ldrb r0, [r0, #7]
adds r0, #1
b _08088AA4
.align 2, 0
_08088A9C: .4byte gUnk_02002A40
_08088AA0:
ldr r0, _08088AD8 @ =gUnk_02002A40
ldrb r0, [r0, #7]
_08088AA4:
strb r0, [r4, #0x1e]
adds r0, r4, #0
bl sub_08088BE0
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08088ADC @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
movs r3, #0x32
ldrsh r1, [r4, r3]
ldrh r2, [r2, #8]
subs r1, r1, r2
movs r2, #0x80
movs r3, #0x60
bl sub_0800293E
cmp r0, #0
beq _08088B82
ldr r0, _08088AE0 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #4
orrs r1, r2
str r1, [r0, #0x68]
b _08088B82
.align 2, 0
_08088AD8: .4byte gUnk_02002A40
_08088ADC: .4byte gUnk_03000BF0
_08088AE0: .4byte gUnk_02034350
_08088AE4:
ldr r5, _08088B70 @ =gUnk_02034350
ldr r1, [r5, #0x68]
movs r6, #1
adds r0, r1, #0
ands r0, r6
cmp r0, #0
beq _08088B06
movs r0, #2
rsbs r0, r0, #0
ands r1, r0
str r1, [r5, #0x68]
strb r6, [r4, #0xe]
ldr r0, _08088B74 @ =gUnk_08120C1C
str r0, [r4, #0x68]
movs r0, #0x8a
bl sub_080A3268
_08088B06:
ldr r1, [r5, #0x68]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08088B24
movs r0, #3
rsbs r0, r0, #0
ands r1, r0
str r1, [r5, #0x68]
strb r6, [r4, #0xe]
ldr r0, _08088B78 @ =gUnk_08120C25
str r0, [r4, #0x68]
movs r0, #0x89
bl sub_080A3268
_08088B24:
ldr r1, [r5, #0x68]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08088B42
movs r0, #5
rsbs r0, r0, #0
ands r1, r0
str r1, [r5, #0x68]
strb r6, [r4, #0xe]
ldr r0, _08088B7C @ =gUnk_08120C2E
str r0, [r4, #0x68]
movs r0, #0x8a
bl sub_080A3268
_08088B42:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08088B82
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
bne _08088B82
ldr r1, [r4, #0x68]
ldrb r0, [r1]
adds r2, r4, #0
adds r2, #0x63
strb r0, [r2]
adds r1, #1
ldrb r0, [r1]
cmp r0, #0xff
beq _08088B80
movs r0, #8
strb r0, [r4, #0xe]
str r1, [r4, #0x68]
b _08088B82
.align 2, 0
_08088B70: .4byte gUnk_02034350
_08088B74: .4byte gUnk_08120C1C
_08088B78: .4byte gUnk_08120C25
_08088B7C: .4byte gUnk_08120C2E
_08088B80:
strb r3, [r2]
_08088B82:
adds r5, r4, #0
adds r5, #0x29
ldrb r1, [r5]
movs r6, #8
rsbs r6, r6, #0
adds r0, r6, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5]
movs r1, #0x2e
ldrsh r0, [r4, r1]
subs r0, #0x50
movs r2, #0x32
ldrsh r1, [r4, r2]
subs r1, #0x50
movs r2, #0xa0
movs r3, #0x30
bl sub_0806FBFC
cmp r0, #0
beq _08088BBA
ldrb r0, [r5]
adds r1, r6, #0
ands r1, r0
movs r0, #5
orrs r1, r0
strb r1, [r5]
_08088BBA:
movs r3, #0x2e
ldrsh r0, [r4, r3]
subs r0, #0x50
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r1, #0x30
movs r2, #0xa0
movs r3, #0x30
bl sub_0806FBFC
cmp r0, #0
beq _08088BDE
ldrb r0, [r5]
adds r1, r6, #0
ands r1, r0
movs r0, #5
orrs r1, r0
strb r1, [r5]
_08088BDE:
pop {r4, r5, r6, pc}
thumb_func_start sub_08088BE0
sub_08088BE0: @ 0x08088BE0
push {r4, lr}
adds r4, r0, #0
movs r0, #0x15
bl sub_0807CBD0
cmp r0, #0
bne _08088C1C
movs r3, #0x78
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #2
movs r2, #0
bl sub_08088C78
adds r0, r4, #0
movs r1, #4
movs r2, #0x15
movs r3, #0
bl sub_08088C78
adds r2, r0, #0
cmp r2, #0
beq _08088C1C
ldr r0, _08088C74 @ =gUnk_03000BF0
ldrh r1, [r0, #6]
adds r1, #0x48
strh r1, [r2, #0x2e]
ldrh r0, [r0, #8]
adds r0, #0xc8
strh r0, [r2, #0x32]
_08088C1C:
movs r0, #0x16
bl sub_0807CBD0
cmp r0, #0
bne _08088C58
adds r0, r4, #0
movs r1, #2
movs r2, #1
movs r3, #0x78
bl sub_08088C78
adds r0, r4, #0
movs r1, #4
movs r2, #0x16
movs r3, #0
bl sub_08088C78
adds r2, r0, #0
cmp r2, #0
beq _08088C58
ldr r0, _08088C74 @ =gUnk_03000BF0
movs r3, #0xc4
lsls r3, r3, #1
adds r1, r3, #0
ldrh r3, [r0, #6]
adds r1, r1, r3
strh r1, [r2, #0x2e]
ldrh r0, [r0, #8]
adds r0, #0xc8
strh r0, [r2, #0x32]
_08088C58:
movs r3, #0x78
rsbs r3, r3, #0
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_08088C78
adds r0, r4, #0
movs r1, #1
movs r2, #1
movs r3, #0x78
bl sub_08088C78
pop {r4, pc}
.align 2, 0
_08088C74: .4byte gUnk_03000BF0
thumb_func_start sub_08088C78
sub_08088C78: @ 0x08088C78
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r3, #0
movs r0, #0x25
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08088C96
ldrh r0, [r4, #0x2e]
adds r0, r0, r5
strh r0, [r1, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
str r4, [r1, #0x50]
_08088C96:
adds r0, r1, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08088C9C
sub_08088C9C: @ 0x08088C9C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08088CEC @ =gUnk_08120C48
ldr r0, [r4, #0x50]
adds r0, #0x29
ldrb r0, [r0]
lsls r0, r0, #0x1d
lsrs r0, r0, #0x1d
adds r0, r0, r1
ldrb r0, [r0]
adds r3, r4, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldr r0, [r4, #0x50]
adds r0, #0x63
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r1, r4, #0
adds r1, #0x63
strb r0, [r1]
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08088D4C
cmp r0, #1
bgt _08088CF0
cmp r0, #0
beq _08088CFA
b _08088DB0
.align 2, 0
_08088CEC: .4byte gUnk_08120C48
_08088CF0:
cmp r0, #2
beq _08088D5A
cmp r0, #3
beq _08088D7A
b _08088DB0
_08088CFA:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r2, [r4, #0xb]
adds r0, r2, #4
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
lsls r2, r2, #0x18
movs r0, #0x16
cmp r2, #0
bne _08088D28
movs r0, #0x15
_08088D28:
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xf]
bl sub_0807CBD0
cmp r0, #0
beq _08088DB0
ldr r1, _08088D48 @ =gUnk_08120C50
ldrb r0, [r4, #0xb]
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
b _08088DAC
.align 2, 0
_08088D48: .4byte gUnk_08120C50
_08088D4C:
ldrb r0, [r4, #0xf]
bl sub_0807CBD0
cmp r0, #0
beq _08088DB0
movs r0, #2
b _08088DAE
_08088D5A:
ldr r2, _08088D98 @ =gUnk_02034350
ldr r1, [r2, #0x68]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08088DB0
movs r0, #0x21
rsbs r0, r0, #0
ands r1, r0
str r1, [r2, #0x68]
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xd]
movs r0, #1
strb r0, [r4, #0xe]
_08088D7A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08088DB0
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08088D9C
subs r0, r1, #2
b _08088D9E
.align 2, 0
_08088D98: .4byte gUnk_02034350
_08088D9C:
adds r0, r1, #2
_08088D9E:
strh r0, [r4, #0x2e]
ldrb r0, [r4, #0xd]
subs r0, #1
strb r0, [r4, #0xd]
lsls r0, r0, #0x18
cmp r0, #0
bne _08088DB0
_08088DAC:
movs r0, #4
_08088DAE:
strb r0, [r4, #0xc]
_08088DB0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08088DB4
sub_08088DB4: @ 0x08088DB4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08088E28
cmp r0, #1
bgt _08088DC8
cmp r0, #0
beq _08088DEC
b _08088E50
_08088DC8:
cmp r0, #4
bgt _08088E50
ldr r0, _08088DE8 @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _08088E6E
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08088E6E
b _08088E3E
.align 2, 0
_08088DE8: .4byte gUnk_02034350
_08088DEC:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xb]
lsls r0, r0, #2
adds r0, #6
strb r0, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
ldrb r0, [r4, #0xb]
movs r1, #0x16
cmp r0, #0
bne _08088E1E
movs r1, #0x15
_08088E1E:
strb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08016A04
b _08088E6E
_08088E28:
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
beq _08088E6E
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xa
strb r0, [r4, #0xe]
b _08088E6E
_08088E3E:
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0x1e]
adds r0, #1
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
b _08088E6E
_08088E50:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08088E6E
ldr r0, _08088E70 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #9
rsbs r2, r2, #0
ands r1, r2
str r1, [r0, #0x68]
adds r0, r4, #0
bl sub_0805E7BC
_08088E6E:
pop {r4, pc}
.align 2, 0
_08088E70: .4byte gUnk_02034350
thumb_func_start sub_08088E74
sub_08088E74: @ 0x08088E74
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08088E94
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r2, _08088EB0 @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #8
orrs r0, r1
str r0, [r2, #0x68]
_08088E94:
adds r0, r4, #0
bl sub_0806FB38
cmp r0, #0
beq _08088EB4
ldr r0, _08088EB0 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #0x10
orrs r1, r2
str r1, [r0, #0x68]
adds r0, r4, #0
bl sub_0805E7BC
b _08088F14
.align 2, 0
_08088EB0: .4byte gUnk_02034350
_08088EB4:
ldr r0, _08088F18 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08088F14
adds r0, r4, #0
movs r1, #0x2a
movs r2, #0
movs r3, #0x1e
bl sub_080A2988
adds r4, r0, #0
cmp r4, #0
beq _08088F14
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
adds r3, r4, #0
adds r3, #0x29
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
strb r0, [r3]
ldrb r0, [r4, #0x1b]
ands r1, r0
strb r1, [r4, #0x1b]
bl sub_08000E50
ldr r2, _08088F1C @ =gUnk_08120C52
movs r1, #3
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
_08088F14:
pop {r4, pc}
.align 2, 0
_08088F18: .4byte gUnk_030010A0
_08088F1C: .4byte gUnk_08120C52
thumb_func_start sub_08088F20
sub_08088F20: @ 0x08088F20
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08088F62
cmp r0, #1
bgt _08088F34
cmp r0, #0
beq _08088F3E
b _08089020
_08088F34:
cmp r0, #2
beq _08088FEC
cmp r0, #3
beq _08089004
b _08089020
_08088F3E:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
subs r0, #0x11
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _08088F5A
b _0808908E
_08088F5A:
adds r0, r4, #0
bl sub_0805E7BC
b _0808908E
_08088F62:
ldrb r0, [r4, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _08088F6E
b _0808908E
_08088F6E:
movs r5, #2
strb r5, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r1, #0x87
lsls r1, r1, #1
adds r0, r4, #0
bl sub_0805E4E0
movs r0, #0x2a
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _08088FBC
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x11]
ldrh r0, [r4, #0x2e]
strh r0, [r2, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r2, #0x32]
adds r0, r2, #0
adds r0, #0x38
strb r5, [r0]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
_08088FBC:
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08088FE8 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x76
movs r2, #2
bl sub_0807B314
b _0808908E
.align 2, 0
_08088FE8: .4byte gUnk_03000BF0
_08088FEC:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808908E
adds r0, r4, #0
bl sub_08089094
movs r0, #3
strb r0, [r4, #0xc]
b _0808908E
_08089004:
ldr r0, _0808901C @ =gUnk_02034350
ldr r0, [r0, #0x68]
movs r1, #0x10
ands r0, r1
cmp r0, #0
beq _0808908E
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
b _0808908E
.align 2, 0
_0808901C: .4byte gUnk_02034350
_08089020:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x5a
bne _0808905C
movs r0, #0x15
movs r1, #2
bl sub_0807CC60
cmp r0, #0
beq _08089048
ldr r0, _08089044 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #2
b _0808904E
.align 2, 0
_08089044: .4byte gUnk_02034350
_08089048:
ldr r0, _08089090 @ =gUnk_02034350
ldr r1, [r0, #0x68]
movs r2, #1
_0808904E:
orrs r1, r2
str r1, [r0, #0x68]
adds r2, r0, #0
ldr r0, [r2, #0x68]
movs r1, #0x20
orrs r0, r1
str r0, [r2, #0x68]
_0808905C:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0808908E
ldr r2, _08089090 @ =gUnk_02034350
ldr r0, [r2, #0x68]
movs r1, #0x11
rsbs r1, r1, #0
ands r0, r1
str r0, [r2, #0x68]
movs r0, #0x15
movs r1, #2
bl sub_0807CC60
cmp r0, #0
beq _08089088
adds r0, r4, #0
movs r1, #0x3c
bl sub_0805E4E0
movs r0, #0x72
bl sub_080A3268
_08089088:
adds r0, r4, #0
bl sub_0805E7BC
_0808908E:
pop {r4, r5, pc}
.align 2, 0
_08089090: .4byte gUnk_02034350
thumb_func_start sub_08089094
sub_08089094: @ 0x08089094
push {r4, r5, lr}
adds r5, r0, #0
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r1, _080890C4 @ =gUnk_03000BF0
ldrh r1, [r1, #6]
subs r0, r0, r1
cmp r0, #0xff
bgt _080890CC
ldr r4, _080890C8 @ =gUnk_08120C56
movs r2, #8
rsbs r2, r2, #0
adds r0, r5, #0
adds r1, r4, #0
bl sub_080890EC
adds r4, #4
adds r0, r5, #0
adds r1, r4, #0
movs r2, #4
bl sub_080890EC
b _080890E6
.align 2, 0
_080890C4: .4byte gUnk_03000BF0
_080890C8: .4byte gUnk_08120C56
_080890CC:
ldr r4, _080890E8 @ =gUnk_08120C5E
movs r2, #8
rsbs r2, r2, #0
adds r0, r5, #0
adds r1, r4, #0
bl sub_080890EC
adds r4, #4
adds r0, r5, #0
adds r1, r4, #0
movs r2, #4
bl sub_080890EC
_080890E6:
pop {r4, r5, pc}
.align 2, 0
_080890E8: .4byte gUnk_08120C5E
thumb_func_start sub_080890EC
sub_080890EC: @ 0x080890EC
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r7, r1, #0
adds r6, r2, #0
movs r0, #0x25
movs r1, #3
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08089132
movs r1, #3
bl sub_0805E3A0
ldrh r0, [r5, #0x2e]
strh r0, [r4, #0x2e]
ldrh r0, [r5, #0x32]
adds r0, r0, r6
strh r0, [r4, #0x32]
str r5, [r4, #0x50]
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0
ldrsh r0, [r7, r2]
adds r1, r1, r0
movs r3, #0x32
ldrsh r2, [r4, r3]
movs r3, #2
ldrsh r0, [r7, r3]
adds r2, r2, r0
adds r0, r4, #0
movs r3, #0x5a
bl sub_0806FB00
_08089132:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08089134
sub_08089134: @ 0x08089134
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _0808919C
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xa]
strb r0, [r5, #0x1e]
movs r0, #0x10
strb r0, [r5, #0xe]
strb r3, [r5, #0xf]
ldrb r0, [r5, #0xa]
lsls r3, r0, #1
adds r3, r3, r0
ldr r0, _080891D4 @ =gUnk_08120C80
adds r3, r3, r0
ldrb r1, [r3]
lsls r1, r1, #6
ldrb r4, [r5, #0x19]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r4
orrs r0, r1
strb r0, [r5, #0x19]
ldrb r0, [r3, #1]
movs r1, #0x29
adds r1, r1, r5
mov ip, r1
movs r1, #7
ands r1, r0
mov r0, ip
ldrb r4, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r4
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r0, [r3, #2]
lsls r0, r0, #6
ldrb r1, [r5, #0x1b]
ands r2, r1
orrs r2, r0
strb r2, [r5, #0x1b]
_0808919C:
ldrb r0, [r5, #0xa]
cmp r0, #4
bne _080891D0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
bne _080891D0
movs r0, #0x10
strb r0, [r5, #0xe]
ldr r2, _080891D8 @ =gUnk_08120C92
ldrb r0, [r5, #0xf]
adds r1, r0, #1
strb r1, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r5, #0x1e]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #3
bne _080891D0
strb r3, [r5, #0xf]
_080891D0:
pop {r4, r5, pc}
.align 2, 0
_080891D4: .4byte gUnk_08120C80
_080891D8: .4byte gUnk_08120C92
thumb_func_start sub_080891DC
sub_080891DC: @ 0x080891DC
push {lr}
ldr r2, _080891F0 @ =gUnk_08120C98
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080891F0: .4byte gUnk_08120C98
thumb_func_start sub_080891F4
sub_080891F4: @ 0x080891F4
push {r4, lr}
adds r4, r0, #0
bl sub_0808965C
cmp r0, #0
beq _08089236
movs r3, #0
movs r2, #1
strb r2, [r4, #0xc]
movs r0, #0x80
strh r0, [r4, #0x24]
ldrb r1, [r4, #0x11]
subs r0, #0x90
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
ldr r0, _08089238 @ =gUnk_080FD1F4
str r0, [r4, #0x48]
strb r2, [r4, #0x16]
adds r0, r4, #0
adds r0, #0x86
strh r3, [r0]
adds r0, r4, #0
bl sub_08089454
adds r0, r4, #0
bl sub_080894C8
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_08089236:
pop {r4, pc}
.align 2, 0
_08089238: .4byte gUnk_080FD1F4
thumb_func_start sub_0808923C
sub_0808923C: @ 0x0808923C
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0800442E
cmp r0, #0
bne _080892C0
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
ldr r0, _08089278 @ =0x0000400B
cmp r5, r0
beq _080892BA
adds r0, r5, #0
bl sub_0808968C
cmp r0, #1
beq _0808927C
cmp r0, #1
blo _08089294
cmp r0, #2
beq _080892B2
b _080892C0
.align 2, 0
_08089278: .4byte 0x0000400B
_0808927C:
movs r1, #3
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r5, #0
subs r0, #0xc
ands r0, r1
lsls r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08089538
b _080892C0
_08089294:
movs r0, #0xf
movs r1, #4
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _080892AA
adds r0, r4, #0
bl sub_0806FA24
_080892AA:
adds r0, r4, #0
bl sub_080894FC
b _080892C0
_080892B2:
adds r0, r4, #0
adds r0, #0x80
strh r5, [r0]
b _080892C0
_080892BA:
adds r0, r4, #0
bl sub_08078930
_080892C0:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080892C4
sub_080892C4: @ 0x080892C4
push {lr}
adds r2, r0, #0
adds r0, #0x86
ldrh r0, [r0]
cmp r0, #0
beq _080892D8
adds r0, r2, #0
bl sub_080895C0
b _080892F6
_080892D8:
ldr r0, _080892F8 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _080892E4
movs r0, #6
strb r0, [r2, #0xd]
_080892E4:
ldr r0, _080892FC @ =gUnk_08120CAC
ldrb r1, [r2, #0xd]
subs r1, #5
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_080892F6:
pop {pc}
.align 2, 0
_080892F8: .4byte gUnk_03003F80
_080892FC: .4byte gUnk_08120CAC
thumb_func_start sub_08089300
sub_08089300: @ 0x08089300
push {r4, r5, lr}
adds r5, r0, #0
adds r1, r5, #0
adds r1, #0x83
ldrb r0, [r1]
cmp r0, #0
bne _0808932C
movs r0, #1
strb r0, [r1]
ldr r1, _0808935C @ =gLinkEntity
ldrb r0, [r1, #0x14]
ldr r2, _08089360 @ =gUnk_08120CB4
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r5, #0
bl sub_0806FA48
_0808932C:
adds r0, r5, #0
adds r0, #0x84
ldrh r0, [r0]
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r0, _08089364 @ =0x0000400B
cmp r4, r0
beq _080893A0
adds r0, r4, #0
bl sub_0808968C
cmp r0, #1
beq _08089368
cmp r0, #1
blo _0808937C
cmp r0, #2
beq _0808939A
b _080893A0
.align 2, 0
_0808935C: .4byte gLinkEntity
_08089360: .4byte gUnk_08120CB4
_08089364: .4byte 0x0000400B
_08089368:
adds r0, r4, #0
subs r0, #0xc
movs r1, #3
ands r0, r1
lsls r0, r0, #3
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_08089538
b _080893A0
_0808937C:
movs r0, #0xf
movs r1, #4
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08089392
adds r0, r5, #0
bl sub_0806FA24
_08089392:
adds r0, r5, #0
bl sub_080894FC
b _080893D6
_0808939A:
adds r0, r5, #0
adds r0, #0x80
strh r4, [r0]
_080893A0:
bl sub_080896B0
cmp r0, #0
beq _080893D6
ldr r2, _080893D8 @ =gUnk_03003F80
movs r3, #0
movs r0, #0x10
strb r0, [r2, #0xc]
adds r1, r2, #0
adds r1, #0x38
movs r0, #0x20
strb r0, [r1]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldr r0, _080893DC @ =gLinkEntity
strh r3, [r0, #0x2c]
strh r3, [r0, #0x30]
ldrb r0, [r0, #0x14]
movs r1, #4
eors r0, r1
lsls r0, r0, #2
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_08089538
_080893D6:
pop {r4, r5, pc}
.align 2, 0
_080893D8: .4byte gUnk_03003F80
_080893DC: .4byte gLinkEntity
thumb_func_start sub_080893E0
sub_080893E0: @ 0x080893E0
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
adds r0, #0x83
strb r2, [r0]
bx lr
thumb_func_start sub_080893EC
sub_080893EC: @ 0x080893EC
push {r4, lr}
adds r4, r0, #0
bl sub_080895C0
cmp r0, #0
beq _080893FC
movs r0, #1
strb r0, [r4, #0xc]
_080893FC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08089400
sub_08089400: @ 0x08089400
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _08089424
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
b _0808944E
_08089424:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _08089450 @ =0x0000400B
adds r1, r4, #0
adds r1, #0x84
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
adds r0, r4, #0
bl sub_080894C8
_0808944E:
pop {r4, pc}
.align 2, 0
_08089450: .4byte 0x0000400B
thumb_func_start sub_08089454
sub_08089454: @ 0x08089454
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r2, _080894C0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r5, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r6, r5, #0
adds r6, #0x84
strh r1, [r6]
ldrh r0, [r6]
adds r4, r5, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
adds r1, r5, #0
adds r1, #0x80
strh r0, [r1]
ldr r5, _080894C4 @ =0x0000400B
ldrh r1, [r6]
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrb r0, [r4]
cmp r0, #2
bne _080894BC
ldrh r0, [r6]
movs r1, #1
bl sub_080002B0
movs r1, #0xc4
lsls r1, r1, #2
cmp r0, r1
bne _080894BC
ldrh r1, [r6]
adds r0, r5, #0
movs r2, #1
bl sub_0800015E
_080894BC:
pop {r4, r5, r6, pc}
.align 2, 0
_080894C0: .4byte gUnk_03000BF0
_080894C4: .4byte 0x0000400B
thumb_func_start sub_080894C8
sub_080894C8: @ 0x080894C8
push {r4, lr}
adds r3, r0, #0
movs r2, #0
ldr r1, _080894E0 @ =gUnk_02034350
adds r4, r1, #0
adds r4, #0xac
ldr r0, [r4]
mov ip, r1
cmp r0, #0
bne _080894E4
str r3, [r4]
b _080894FA
.align 2, 0
_080894E0: .4byte gUnk_02034350
_080894E4:
adds r2, #1
cmp r2, #7
bhi _080894FA
lsls r0, r2, #2
mov r1, ip
adds r1, #0xac
adds r1, r0, r1
ldr r0, [r1]
cmp r0, #0
bne _080894E4
str r3, [r1]
_080894FA:
pop {r4, pc}
thumb_func_start sub_080894FC
sub_080894FC: @ 0x080894FC
push {r4, lr}
adds r3, r0, #0
movs r2, #0
ldr r1, _08089514 @ =gUnk_02034350
adds r4, r1, #0
adds r4, #0xac
ldr r0, [r4]
mov ip, r1
cmp r3, r0
bne _08089518
str r2, [r4]
b _08089530
.align 2, 0
_08089514: .4byte gUnk_02034350
_08089518:
adds r2, #1
cmp r2, #7
bhi _08089530
lsls r0, r2, #2
mov r1, ip
adds r1, #0xac
adds r1, r0, r1
ldr r0, [r1]
cmp r3, r0
bne _08089518
movs r0, #0
str r0, [r1]
_08089530:
adds r0, r3, #0
bl sub_0805E7BC
pop {r4, pc}
thumb_func_start sub_08089538
sub_08089538: @ 0x08089538
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r1, r5, #0
adds r1, #0x86
movs r0, #0x20
strh r0, [r1]
adds r0, #0xef
bl sub_08004488
adds r0, r5, #0
adds r0, #0x80
ldrh r0, [r0]
adds r6, r5, #0
adds r6, #0x84
ldrh r1, [r6]
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldrb r0, [r4]
cmp r0, #2
bne _08089580
ldrh r0, [r6]
movs r1, #1
bl sub_080002B0
ldr r1, _080895B8 @ =0x0000400B
cmp r0, r1
bne _08089580
movs r0, #0xc4
lsls r0, r0, #2
ldrh r1, [r6]
movs r2, #1
bl sub_08000152
_08089580:
adds r2, r5, #0
adds r2, #0x84
ldr r1, _080895BC @ =gUnk_080B4488
ldrb r0, [r5, #0x15]
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldrh r2, [r2]
adds r0, r0, r2
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x79
beq _080895AC
cmp r0, #0x77
bne _080895B4
_080895AC:
adds r1, r5, #0
adds r1, #0x63
movs r0, #0xfe
strb r0, [r1]
_080895B4:
pop {r4, r5, r6, pc}
.align 2, 0
_080895B8: .4byte 0x0000400B
_080895BC: .4byte gUnk_080B4488
thumb_func_start sub_080895C0
sub_080895C0: @ 0x080895C0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0808964C
adds r0, r4, #0
bl sub_0800442E
cmp r0, #0
bne _0808964C
adds r1, r4, #0
adds r1, #0x63
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
bl sub_080002D0
cmp r0, #0
bne _080895FE
adds r0, r4, #0
bl sub_08089454
movs r0, #1
b _08089654
_080895FE:
movs r0, #0xf
movs r1, #4
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08089614
adds r0, r4, #0
bl sub_0806FA24
_08089614:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldr r2, _08089658 @ =gUnk_08120CBC
ldrb r1, [r4, #0x15]
lsrs r1, r1, #2
lsls r0, r1, #1
adds r0, r0, r2
ldrh r0, [r0]
ldrh r3, [r4, #0x2e]
adds r0, r0, r3
strh r0, [r4, #0x2e]
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r2
ldrh r0, [r1]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_08089454
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
_0808964C:
adds r0, r4, #0
bl sub_0800445C
movs r0, #0
_08089654:
pop {r4, pc}
.align 2, 0
_08089658: .4byte gUnk_08120CBC
thumb_func_start sub_0808965C
sub_0808965C: @ 0x0808965C
push {lr}
adds r2, r0, #0
ldr r3, _08089678 @ =gUnk_03000BF0
ldrb r0, [r3, #4]
cmp r0, #0x3f
bls _08089680
ldr r1, _0808967C @ =gUnk_08120CCC
subs r0, #0x40
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r2, #0
b _08089684
.align 2, 0
_08089678: .4byte gUnk_03000BF0
_0808967C: .4byte gUnk_08120CCC
_08089680:
adds r0, r2, #0
movs r1, #0xe9
_08089684:
bl sub_080ADF80
pop {pc}
.align 2, 0
thumb_func_start sub_0808968C
sub_0808968C: @ 0x0808968C
push {lr}
adds r2, r0, #0
ldr r1, _08089694 @ =gUnk_08120D6C
b _080896A4
.align 2, 0
_08089694: .4byte gUnk_08120D6C
_08089698:
ldrh r0, [r1]
cmp r0, r2
bne _080896A2
ldrh r0, [r1, #2]
b _080896AC
_080896A2:
adds r1, #4
_080896A4:
ldrh r0, [r1]
cmp r0, #0
bne _08089698
movs r0, #0
_080896AC:
pop {pc}
.align 2, 0
thumb_func_start sub_080896B0
sub_080896B0: @ 0x080896B0
push {r4, r5, r6, r7, lr}
ldr r0, _08089750 @ =gUnk_03003F80
ldrb r1, [r0, #5]
movs r0, #0x1f
ands r0, r1
cmp r0, #0x12
bne _08089768
ldr r6, _08089754 @ =gLinkEntity
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08089768
ldrb r3, [r6, #0x14]
movs r2, #6
ands r2, r3
lsls r2, r2, #1
ldr r0, _08089758 @ =gUnk_080B4468
adds r2, r2, r0
ldr r0, _0808975C @ =gUnk_080B4488
lsrs r3, r3, #1
lsls r3, r3, #1
adds r3, r3, r0
movs r0, #0x2e
ldrsh r1, [r6, r0]
movs r4, #0
ldrsh r0, [r2, r4]
adds r1, r1, r0
ldr r5, _08089760 @ =gUnk_03000BF0
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r0, [r6, r7]
movs r7, #2
ldrsh r2, [r2, r7]
adds r0, r0, r2
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
movs r0, #0
ldrsh r7, [r3, r0]
subs r1, r1, r7
lsls r4, r1, #0x10
lsrs r0, r4, #0x10
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080002C8
adds r1, r0, #0
subs r0, #0x26
cmp r0, #1
bls _08089768
cmp r1, #0x29
beq _08089768
ldrb r0, [r5]
bl sub_0808094C
asrs r1, r4, #0x10
ldr r2, _08089764 @ =0x00002004
adds r0, r0, r2
adds r2, r0, r1
ldrb r2, [r2]
subs r1, r1, r7
adds r0, r0, r1
ldrb r0, [r0]
cmp r2, #0
bne _08089768
cmp r0, #0
bne _08089768
movs r0, #1
b _0808976A
.align 2, 0
_08089750: .4byte gUnk_03003F80
_08089754: .4byte gLinkEntity
_08089758: .4byte gUnk_080B4468
_0808975C: .4byte gUnk_080B4488
_08089760: .4byte gUnk_03000BF0
_08089764: .4byte 0x00002004
_08089768:
movs r0, #0
_0808976A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0808976C
sub_0808976C: @ 0x0808976C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080897D0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0x1b]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0xa]
cmp r0, #3
bne _080897AE
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #6
orrs r1, r0
strb r1, [r2]
b _080897BA
_080897AE:
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
_080897BA:
ldrh r0, [r4, #0x2e]
adds r1, r4, #0
adds r1, #0x68
strh r0, [r1]
ldrh r0, [r4, #0x32]
adds r1, #2
strh r0, [r1]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
_080897D0:
ldrb r1, [r4, #0x10]
movs r0, #0x10
ands r0, r1
cmp r0, #0
bne _08089840
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08089844 @ =gUnk_03000BF0
movs r3, #0xa
ldrsh r0, [r2, r3]
subs r5, r1, r0
adds r3, r5, #0
subs r3, #0x78
movs r6, #0x32
ldrsh r1, [r4, r6]
movs r6, #0xc
ldrsh r0, [r2, r6]
subs r1, r1, r0
adds r2, r1, #0
subs r2, #0x50
adds r0, r3, #0
cmp r0, #0
bge _08089802
adds r0, r5, #0
subs r0, #0x75
_08089802:
asrs r3, r0, #2
adds r0, r2, #0
cmp r0, #0
bge _0808980E
adds r0, r1, #0
subs r0, #0x4d
_0808980E:
asrs r2, r0, #2
movs r0, #0x10
rsbs r0, r0, #0
cmp r3, r0
bge _0808981A
adds r3, r0, #0
_0808981A:
cmp r3, #0x10
ble _08089820
movs r3, #0x10
_08089820:
cmp r2, r0
bge _08089826
adds r2, r0, #0
_08089826:
cmp r2, #0x10
ble _0808982C
movs r2, #0x10
_0808982C:
adds r0, r4, #0
adds r0, #0x68
ldrh r0, [r0]
adds r0, r0, r3
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x6a
ldrh r0, [r0]
adds r0, r0, r2
strh r0, [r4, #0x32]
_08089840:
pop {r4, r5, r6, pc}
.align 2, 0
_08089844: .4byte gUnk_03000BF0
thumb_func_start sub_08089848
sub_08089848: @ 0x08089848
push {r4, lr}
adds r4, r0, #0
ldr r1, _08089870 @ =gUnk_08120D90
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
bl sub_08000E50
movs r1, #1
ands r1, r0
adds r1, #1
adds r0, r4, #0
bl sub_08004276
pop {r4, pc}
.align 2, 0
_08089870: .4byte gUnk_08120D90
thumb_func_start sub_08089874
sub_08089874: @ 0x08089874
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _08089940
adds r0, r4, #0
adds r0, #0x38
movs r2, #3
strb r2, [r0]
ldrb r1, [r4, #0xb]
adds r5, r0, #0
cmp r1, #0
bne _08089900
ldrb r0, [r4, #0xa]
cmp r0, #0x80
bne _080898B4
strb r2, [r4, #0xc]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08089AE0
b _08089940
_080898B4:
str r1, [r4, #0x50]
adds r0, r4, #0
movs r1, #0x29
movs r2, #0
movs r3, #0xff
bl sub_080A2988
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080898FA
_080898C8:
ldrb r3, [r4, #0xa]
adds r0, r4, #0
movs r1, #0x29
movs r2, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _080898EE
ldr r0, [r4, #0x50]
str r0, [r1, #0x50]
ldr r1, [r4, #0x50]
cmp r1, #0
beq _080898EA
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
_080898EA:
ldr r0, [r4, #0x54]
str r0, [r4, #0x50]
_080898EE:
ldrb r0, [r4, #0xa]
subs r0, #1
strb r0, [r4, #0xa]
lsls r0, r0, #0x18
cmp r0, #0
bne _080898C8
_080898FA:
bl sub_0805E780
b _08089940
_08089900:
strb r3, [r4, #0xc]
ldr r0, [r4, #0x50]
cmp r0, #0
bne _08089912
adds r0, r4, #0
movs r1, #0
bl sub_08004260
b _0808991A
_08089912:
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_0808991A:
ldrb r0, [r4, #0xb]
cmp r0, #0xff
bne _08089934
movs r0, #1
strb r0, [r5]
adds r0, r4, #0
bl sub_08016A30
adds r0, r4, #0
movs r1, #0x15
bl sub_0801D2B4
b _08089940
_08089934:
ldrb r1, [r4, #0xb]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
rsbs r0, r0, #0
strh r0, [r4, #0x36]
_08089940:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08089944
sub_08089944: @ 0x08089944
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r3, [r4, #0xb]
cmp r3, #0xff
bne _08089964
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
b _08089A76
_08089964:
ldrb r1, [r4, #0x1b]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r2, r0
strb r2, [r4, #0x19]
cmp r3, #1
beq _08089984
ldr r0, [r4, #0x54]
ldrb r0, [r0, #0xc]
cmp r0, #2
bne _08089A76
_08089984:
ldr r0, _08089998 @ =gLinkEntity
movs r1, #0x36
ldrsh r2, [r0, r1]
movs r1, #0x24
rsbs r1, r1, #0
adds r6, r0, #0
cmp r2, r1
bge _0808999C
movs r0, #1
b _0808999E
.align 2, 0
_08089998: .4byte gLinkEntity
_0808999C:
movs r0, #0
_0808999E:
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
subs r0, #1
lsls r1, r0, #3
adds r1, r1, r0
lsls r1, r1, #2
ldrh r0, [r4, #0x32]
subs r0, r0, r1
strh r0, [r4, #0x32]
adds r5, r6, #0
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0xf
movs r3, #0xf
bl sub_080041A0
cmp r0, #0
beq _08089A62
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08089A62
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _080899EC
ldr r1, [r4, #0x54]
movs r0, #1
strb r0, [r1, #0xc]
_080899EC:
ldr r1, _08089A78 @ =gUnk_03003F80
movs r0, #1
strb r0, [r1, #0x14]
ldrh r0, [r5, #0x32]
subs r0, #0x24
strh r0, [r5, #0x32]
ldrh r0, [r5, #0x36]
adds r0, #0x24
strh r0, [r5, #0x36]
adds r0, r5, #0
bl sub_0807AA80
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08089A62
adds r0, r5, #0
movs r1, #2
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08089A20
ldrh r0, [r1, #0x2e]
adds r0, #8
strh r0, [r1, #0x2e]
_08089A20:
adds r0, r5, #0
movs r1, #2
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08089A36
ldrh r0, [r1, #0x2e]
subs r0, #8
strh r0, [r1, #0x2e]
_08089A36:
adds r0, r5, #0
movs r1, #2
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08089A4C
ldrh r0, [r1, #0x32]
adds r0, #8
strh r0, [r1, #0x32]
_08089A4C:
adds r0, r6, #0
movs r1, #2
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08089A62
ldrh r0, [r1, #0x32]
subs r0, #8
strh r0, [r1, #0x32]
_08089A62:
ldrb r0, [r4, #0xb]
subs r0, #1
lsls r1, r0, #3
adds r1, r1, r0
lsls r1, r1, #2
ldrh r0, [r4, #0x32]
adds r1, r1, r0
strh r1, [r4, #0x32]
ldrb r0, [r4, #0xe]
strb r0, [r4, #0xf]
_08089A76:
pop {r4, r5, r6, pc}
.align 2, 0
_08089A78: .4byte gUnk_03003F80
thumb_func_start sub_08089A7C
sub_08089A7C: @ 0x08089A7C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
lsls r1, r0, #3
adds r1, r1, r0
lsls r1, r1, #2
ldrh r0, [r4, #0x32]
subs r0, r0, r1
strh r0, [r4, #0x32]
ldr r5, _08089AB0 @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0xf
movs r3, #0xf
bl sub_080041A0
cmp r0, #0
beq _08089AB8
ldr r2, _08089AB4 @ =gUnk_03003F80
movs r0, #1
strb r0, [r2, #0x14]
ldr r0, [r2, #0x30]
movs r1, #2
orrs r0, r1
str r0, [r2, #0x30]
b _08089AD0
.align 2, 0
_08089AB0: .4byte gLinkEntity
_08089AB4: .4byte gUnk_03003F80
_08089AB8:
movs r2, #1
strb r2, [r4, #0xc]
ldrh r1, [r4, #0x36]
ldrh r3, [r5, #0x36]
adds r0, r1, r3
strh r0, [r5, #0x36]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
strh r0, [r5, #0x32]
adds r0, r5, #0
adds r0, #0x38
strb r2, [r0]
_08089AD0:
ldrb r1, [r4, #0xb]
lsls r0, r1, #3
adds r0, r0, r1
lsls r0, r0, #2
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
pop {r4, r5, pc}
thumb_func_start sub_08089AE0
sub_08089AE0: @ 0x08089AE0
push {lr}
ldr r1, _08089AF8 @ =gLinkEntity
movs r2, #0xf
movs r3, #0xf
bl sub_080041A0
cmp r0, #0
beq _08089AF6
ldr r1, _08089AFC @ =gUnk_03003F80
movs r0, #1
strb r0, [r1, #0x14]
_08089AF6:
pop {pc}
.align 2, 0
_08089AF8: .4byte gLinkEntity
_08089AFC: .4byte gUnk_03003F80
thumb_func_start sub_08089B00
sub_08089B00: @ 0x08089B00
push {lr}
ldr r2, _08089B14 @ =gUnk_08120DD0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08089B14: .4byte gUnk_08120DD0
thumb_func_start sub_08089B18
sub_08089B18: @ 0x08089B18
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #1
movs r6, #1
strb r6, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r5, #4
rsbs r5, r5, #0
adds r0, r5, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08089B38
strb r0, [r4, #0xe]
_08089B38:
adds r0, r4, #0
movs r1, #0
bl sub_08004260
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _08089B66
cmp r0, #2
bgt _08089B50
cmp r0, #1
beq _08089B5A
b _08089B96
_08089B50:
cmp r0, #3
beq _08089B72
cmp r0, #4
beq _08089B7C
b _08089B96
_08089B5A:
ldrh r0, [r4, #0x32]
subs r0, #8
strh r0, [r4, #0x32]
movs r0, #0x28
strb r0, [r4, #0xe]
b _08089B96
_08089B66:
movs r0, #0xf
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08004168
b _08089B96
_08089B72:
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA24
b _08089B96
_08089B7C:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _08089B96
ldrb r1, [r4, #0x18]
adds r0, r5, #0
ands r0, r1
strb r0, [r4, #0x18]
strb r6, [r4, #0xd]
b _08089B9E
_08089B96:
movs r0, #0x92
lsls r0, r0, #1
bl sub_08004488
_08089B9E:
pop {r4, r5, r6, pc}
thumb_func_start sub_08089BA0
sub_08089BA0: @ 0x08089BA0
push {r4, r5, r6, lr}
adds r5, r0, #0
bl sub_08004274
ldrb r0, [r5, #0xa]
cmp r0, #4
bhi _08089BD0
lsls r0, r0, #2
ldr r1, _08089BB8 @ =_08089BBC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08089BB8: .4byte _08089BBC
_08089BBC: @ jump table
.4byte _08089BD0 @ case 0
.4byte _08089BD6 @ case 1
.4byte _08089BD6 @ case 2
.4byte _08089C4C @ case 3
.4byte _08089C72 @ case 4
_08089BD0:
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _08089CBA
_08089BD6:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08089CBA
ldrb r0, [r5, #0xa]
cmp r0, #2
bne _08089C42
ldr r0, [r5, #0x54]
ldrh r0, [r0, #6]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08089C48 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
adds r0, r5, #0
movs r1, #0
movs r2, #0x10
bl sub_0807AB44
subs r4, #0x4f
adds r0, r5, #0
movs r1, #0
adds r2, r4, #0
bl sub_0807AB44
adds r0, r5, #0
movs r1, #0x10
movs r2, #0
bl sub_0807AB44
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0807AB44
_08089C42:
bl sub_0805E780
b _08089CBA
.align 2, 0
_08089C48: .4byte gUnk_03000BF0
_08089C4C:
ldr r0, [r5, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08089C58
bl sub_0805E780
_08089C58:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08089C68
bl sub_0805E780
_08089C68:
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FA24
b _08089CBA
_08089C72:
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r1, r0, #0
ldrb r0, [r5, #0xd]
cmp r0, #0
bne _08089C96
cmp r1, #0
bne _08089CBA
movs r0, #1
strb r0, [r5, #0xd]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r5, #0x18]
b _08089CBA
_08089C96:
cmp r1, #0
beq _08089CBA
movs r0, #0
strb r0, [r5, #0xd]
ldrb r1, [r5, #0x18]
subs r0, #4
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r0, r5, #0
movs r1, #0
bl sub_08004260
movs r0, #0x92
lsls r0, r0, #1
bl sub_08004488
_08089CBA:
pop {r4, r5, r6, pc}
thumb_func_start sub_08089CBC
sub_08089CBC: @ 0x08089CBC
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _08089CDC
movs r0, #1
strb r0, [r4, #0xc]
str r1, [r4, #0x34]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #9
bl sub_08004260
_08089CDC:
ldr r1, [r4, #0x50]
ldr r0, [r1, #0x34]
cmp r0, #0
bne _08089CEA
bl sub_0805E780
b _08089D02
_08089CEA:
movs r2, #0x36
ldrsh r0, [r1, r2]
movs r2, #0x90
lsls r2, r2, #1
subs r2, r2, r0
adds r0, r1, #0
adds r0, #0x7e
ldrh r3, [r0]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
_08089D02:
pop {r4, pc}
thumb_func_start sub_08089D04
sub_08089D04: @ 0x08089D04
push {lr}
ldr r2, _08089D18 @ =gUnk_08120DF4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08089D18: .4byte gUnk_08120DF4
thumb_func_start sub_08089D1C
sub_08089D1C: @ 0x08089D1C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0x19]
movs r4, #0x3f
adds r0, r4, #0
ands r0, r1
movs r6, #0x80
orrs r0, r6
strb r0, [r5, #0x19]
ldrb r1, [r5, #0x1b]
adds r0, r4, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r5, #0x1b]
adds r0, r5, #0
movs r1, #4
bl sub_0805E3A0
ldrb r0, [r5, #0xa]
cmp r0, #7
bne _08089D90
ldrb r1, [r5, #0x10]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08089D54
b _08089F06
_08089D54:
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _08089D74
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _08089D74
bl sub_0807CBD0
cmp r0, #0
bne _08089D6A
b _08089F06
_08089D6A:
ldrb r1, [r5, #0x1b]
adds r0, r4, #0
ands r0, r1
orrs r0, r6
strb r0, [r5, #0x1b]
_08089D74:
ldr r4, _08089D8C @ =gUnk_08120E3C
ldrb r0, [r5, #0xb]
lsls r0, r0, #2
adds r0, r0, r4
ldrb r1, [r0]
adds r0, r5, #0
bl sub_08004260
ldrb r0, [r5, #0xb]
lsls r0, r0, #2
adds r0, r0, r4
b _08089DCE
.align 2, 0
_08089D8C: .4byte gUnk_08120E3C
_08089D90:
cmp r0, #0
beq _08089DAC
ldr r0, _08089DA8 @ =gUnk_08120E14
ldrb r1, [r5, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r5, #0
bl sub_08004260
b _08089DC6
.align 2, 0
_08089DA8: .4byte gUnk_08120E14
_08089DAC:
adds r0, r5, #0
movs r1, #1
movs r2, #2
bl sub_080AE008
ldr r0, _08089E08 @ =gUnk_08120E14
ldrb r1, [r5, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r5, #0
bl sub_080042AC
_08089DC6:
ldr r1, _08089E08 @ =gUnk_08120E14
ldrb r0, [r5, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
_08089DCE:
ldrb r0, [r0, #1]
adds r3, r5, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xa]
cmp r0, #1
bge _08089DFC
b _08089F00
_08089DFC:
cmp r0, #6
ble _08089E0C
cmp r0, #7
beq _08089E1C
b _08089F00
.align 2, 0
_08089E08: .4byte gUnk_08120E14
_08089E0C:
adds r0, r5, #0
adds r0, #0x60
movs r2, #0
movs r1, #0xe0
lsls r1, r1, #1
strh r1, [r0]
strb r2, [r5, #0xe]
b _08089F00
_08089E1C:
ldrb r1, [r5, #0xb]
cmp r1, #3
bgt _08089E2C
cmp r1, #2
bge _08089EEC
cmp r1, #0
beq _08089E32
b _08089F00
_08089E2C:
cmp r1, #4
beq _08089EF8
b _08089F00
_08089E32:
movs r0, #0x10
str r0, [r5, #0x6c]
strb r1, [r5, #0xe]
_08089E38:
movs r0, #0x2c
movs r1, #7
movs r2, #1
bl sub_080A2960
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _08089EC8
ldrh r0, [r5, #0x2e]
strh r0, [r1, #0x2e]
ldr r2, [r5, #0x54]
ldr r1, [r5, #0x6c]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
strh r0, [r2, #0x32]
movs r0, #3
strb r0, [r5, #0xf]
_08089E5C:
ldrb r0, [r5, #0xe]
lsls r0, r0, #2
ldr r1, _08089EE4 @ =gUnk_08120DFC
adds r4, r0, r1
ldrb r2, [r4]
subs r2, #2
movs r0, #0x2c
movs r1, #7
bl sub_080A2960
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _08089EAA
movs r0, #1
ldrsb r0, [r4, r0]
ldrh r2, [r5, #0x2e]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldr r2, [r5, #0x54]
ldr r1, [r5, #0x6c]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
movs r1, #2
ldrsb r1, [r4, r1]
subs r0, r0, r1
strh r0, [r2, #0x32]
ldr r3, [r5, #0x54]
ldrb r2, [r4, #3]
movs r0, #1
ands r2, r0
lsls r2, r2, #6
ldrb r0, [r3, #0x18]
movs r4, #0x41
rsbs r4, r4, #0
adds r1, r4, #0
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
_08089EAA:
ldrb r0, [r5, #0xe]
adds r2, r0, #1
strb r2, [r5, #0xe]
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _08089E5C
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
cmp r0, #5
bls _08089EC8
strb r1, [r5, #0xe]
_08089EC8:
ldr r0, [r5, #0x6c]
adds r0, #0x38
str r0, [r5, #0x6c]
ldrh r1, [r5, #0x32]
subs r1, r1, r0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
ldr r0, _08089EE8 @ =gUnk_03000BF0
ldrh r0, [r0, #8]
cmp r1, r0
bge _08089E38
movs r0, #1
strb r0, [r5, #0xe]
b _08089F00
.align 2, 0
_08089EE4: .4byte gUnk_08120DFC
_08089EE8: .4byte gUnk_03000BF0
_08089EEC:
ldrb r0, [r5, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r5, #0x19]
_08089EF8:
adds r1, r5, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
_08089F00:
adds r0, r5, #0
bl sub_08089F08
_08089F06:
pop {r4, r5, r6, pc}
thumb_func_start sub_08089F08
sub_08089F08: @ 0x08089F08
push {lr}
ldr r2, _08089F1C @ =gUnk_08120E50
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08089F1C: .4byte gUnk_08120E50
thumb_func_start sub_08089F20
sub_08089F20: @ 0x08089F20
push {lr}
ldr r2, _08089F34 @ =gUnk_08120E78
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08089F34: .4byte gUnk_08120E78
thumb_func_start sub_08089F38
sub_08089F38: @ 0x08089F38
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08089F6C
ldrb r0, [r4, #0xe]
cmp r0, #1
bhi _08089F5A
adds r0, #1
strb r0, [r4, #0xe]
b _08089F6C
_08089F5A:
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
_08089F6C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08089F70
sub_08089F70: @ 0x08089F70
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08089F8E
movs r0, #0x10
strb r0, [r4, #0xe]
movs r0, #0xcc
lsls r0, r0, #1
bl sub_080A3268
_08089F8E:
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08089FEC
movs r0, #0x2c
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _08089FBE
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r4, #0x54]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
_08089FBE:
movs r0, #0x2c
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _08089FDC
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r4, #0x54]
ldrh r0, [r4, #0x32]
subs r0, #0x10
strh r0, [r1, #0x32]
_08089FDC:
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
strb r1, [r4, #0x18]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
_08089FEC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08089FF0
sub_08089FF0: @ 0x08089FF0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0808A00E
movs r0, #0x10
strb r0, [r1, #0xe]
movs r0, #0xcc
lsls r0, r0, #1
bl sub_080A3268
_0808A00E:
pop {pc}
thumb_func_start sub_0808A010
sub_0808A010: @ 0x0808A010
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808A07E
ldrb r0, [r4, #0xe]
lsls r0, r0, #2
ldr r1, _0808A0BC @ =gUnk_08120DFC
adds r5, r0, r1
ldrb r1, [r5]
movs r0, #0x2c
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _0808A06C
movs r0, #1
ldrsb r0, [r5, r0]
ldrh r2, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldr r2, [r4, #0x54]
movs r1, #2
ldrsb r1, [r5, r1]
ldrh r0, [r4, #0x32]
subs r0, r0, r1
strh r0, [r2, #0x32]
ldr r3, [r4, #0x54]
ldrb r1, [r5, #3]
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r3, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
_0808A06C:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #5
bls _0808A07E
movs r0, #0
strb r0, [r4, #0xe]
_0808A07E:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808A0BA
movs r0, #0x2c
movs r1, #3
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _0808A0A8
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r4, #0x54]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
_0808A0A8:
ldrh r0, [r4, #0x32]
subs r0, #0x38
strh r0, [r4, #0x32]
lsls r0, r0, #0x10
cmp r0, #0
bge _0808A0BA
adds r0, r4, #0
bl sub_0805E7BC
_0808A0BA:
pop {r4, r5, pc}
.align 2, 0
_0808A0BC: .4byte gUnk_08120DFC
thumb_func_start sub_0808A0C0
sub_0808A0C0: @ 0x0808A0C0
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0808A0D6
adds r0, r2, #0
bl sub_08004274
_0808A0D6:
pop {pc}
thumb_func_start nullsub_517
nullsub_517: @ 0x0808A0D8
bx lr
.align 2, 0
thumb_func_start sub_0808A0DC
sub_0808A0DC: @ 0x0808A0DC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
cmp r0, #1
bne _0808A0EC
b _0808A202
_0808A0EC:
cmp r0, #1
bgt _0808A0F6
cmp r0, #0
beq _0808A120
b _0808A202
_0808A0F6:
cmp r0, #4
ble _0808A0FC
b _0808A202
_0808A0FC:
ldr r0, _0808A118 @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
bne _0808A1DA
ldr r1, _0808A11C @ =gLinkEntity
adds r0, r5, #0
movs r2, #0
movs r3, #8
bl sub_080041A0
cmp r0, #0
beq _0808A1DC
b _0808A1B0
.align 2, 0
_0808A118: .4byte gUnk_03003F80
_0808A11C: .4byte gLinkEntity
_0808A120:
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0808A202
ldr r4, _0808A1A8 @ =gUnk_03000BF0
ldrh r0, [r4, #8]
str r0, [r5, #0x6c]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
ldrh r2, [r4, #8]
subs r0, r0, r2
lsrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
adds r0, #0x70
strh r1, [r0]
adds r6, r4, #0
mov r8, r3
adds r4, r0, #0
ldr r7, _0808A1AC @ =0x00004017
_0808A154:
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldrh r0, [r6, #6]
subs r1, r1, r0
asrs r1, r1, #4
mov r2, r8
ands r1, r2
ldrh r2, [r6, #8]
ldr r0, [r5, #0x6c]
subs r0, r0, r2
lsrs r0, r0, #4
mov r2, r8
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4]
ldrh r1, [r4]
adds r0, r7, #0
movs r2, #2
bl sub_0800015E
ldrh r1, [r4]
adds r0, r7, #0
movs r2, #1
bl sub_0800015E
ldr r0, [r5, #0x6c]
adds r2, r0, #0
adds r2, #0x10
str r2, [r5, #0x6c]
ldrh r0, [r6, #8]
ldrh r1, [r6, #0x20]
adds r0, r0, r1
cmp r2, r0
bhs _0808A1A2
movs r1, #0x32
ldrsh r0, [r5, r1]
cmp r2, r0
bls _0808A154
_0808A1A2:
movs r0, #0
strb r0, [r5, #0xe]
b _0808A202
.align 2, 0
_0808A1A8: .4byte gUnk_03000BF0
_0808A1AC: .4byte 0x00004017
_0808A1B0:
adds r3, r5, #0
adds r3, #0x58
ldrb r2, [r3]
ldrb r1, [r5, #0xb]
subs r1, #1
lsls r0, r1, #1
adds r0, r0, r1
adds r0, #1
cmp r2, r0
bne _0808A1DE
ldrb r0, [r5, #0xe]
cmp r0, #0
bne _0808A1DE
movs r0, #1
strb r0, [r5, #0xe]
ldrb r1, [r3]
adds r1, #1
adds r0, r5, #0
bl sub_08004260
b _0808A1DE
_0808A1DA:
movs r0, #0
_0808A1DC:
strb r0, [r5, #0xe]
_0808A1DE:
adds r0, r5, #0
bl sub_08004274
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808A202
ldrb r0, [r5, #0xb]
subs r0, #1
lsls r1, r0, #1
adds r1, r1, r0
adds r1, #1
adds r0, r5, #0
bl sub_08004260
_0808A202:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0808A208
sub_0808A208: @ 0x0808A208
push {lr}
ldr r2, _0808A21C @ =gUnk_08120E84
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A21C: .4byte gUnk_08120E84
thumb_func_start sub_0808A220
sub_0808A220: @ 0x0808A220
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x1b]
movs r6, #0x3f
adds r0, r6, #0
ands r0, r1
movs r5, #0x80
orrs r0, r5
strb r0, [r4, #0x1b]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0808A2E4 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r7, #0x32
ldrsh r0, [r4, r7]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r2, r4, #0
adds r2, #0x70
strh r1, [r2]
ldr r0, _0808A2E8 @ =0x00004017
ldrh r1, [r2]
movs r2, #1
bl sub_0800015E
movs r7, #1
strb r7, [r4, #0xd]
adds r0, r4, #0
movs r1, #0x15
movs r2, #0
movs r3, #0
bl sub_080A2988
adds r3, r0, #0
cmp r3, #0
beq _0808A2D4
ldrh r0, [r4, #0x32]
adds r0, #0x38
strh r0, [r3, #0x32]
ldrh r0, [r4, #0x12]
strh r0, [r3, #0x12]
adds r0, r4, #0
adds r0, #0x60
ldrh r1, [r0]
adds r0, r3, #0
adds r0, #0x60
strh r1, [r0]
ldrb r1, [r4, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r3, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x1a]
adds r1, r3, #0
adds r1, #0x58
movs r0, #2
strb r0, [r1]
movs r0, #0x80
strb r0, [r3, #0xe]
strb r7, [r3, #0xa]
ldrb r1, [r3, #0x19]
adds r0, r6, #0
ands r0, r1
orrs r0, r5
strb r0, [r3, #0x19]
adds r2, r3, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r1, [r3, #0x1b]
adds r0, r6, #0
ands r0, r1
orrs r0, r5
strb r0, [r3, #0x1b]
_0808A2D4:
adds r0, r4, #0
movs r1, #0x2c
movs r2, #9
movs r3, #0
bl sub_080A2988
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808A2E4: .4byte gUnk_03000BF0
_0808A2E8: .4byte 0x00004017
thumb_func_start nullsub_518
nullsub_518: @ 0x0808A2EC
bx lr
.align 2, 0
thumb_func_start sub_0808A2F0
sub_0808A2F0: @ 0x0808A2F0
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xd]
cmp r0, #0
bne _0808A316
movs r0, #1
strb r0, [r5, #0xd]
ldrh r0, [r5, #0x32]
adds r0, #0x28
strh r0, [r5, #0x32]
movs r2, #0x18
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #0
bl sub_0800029C
adds r1, r5, #0
adds r1, #0x72
strh r0, [r1]
_0808A316:
ldr r3, _0808A38C @ =gLinkEntity
ldrb r1, [r3, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r7, #0x3f
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r1, [r3, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x19]
adds r0, r7, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x19]
ldr r0, _0808A390 @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
bne _0808A39C
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
movs r2, #0x18
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #0
bl sub_0800029C
ldr r3, _0808A394 @ =0x00004014
cmp r0, r3
beq _0808A3EC
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r2, _0808A398 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r7
movs r4, #0x32
ldrsh r0, [r5, r4]
ldrh r2, [r2, #8]
adds r2, #0x18
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r7
lsls r0, r0, #6
orrs r1, r0
adds r0, r3, #0
movs r2, #1
bl sub_0800015E
b _0808A3EC
.align 2, 0
_0808A38C: .4byte gLinkEntity
_0808A390: .4byte gUnk_03003F80
_0808A394: .4byte 0x00004014
_0808A398: .4byte gUnk_03000BF0
_0808A39C:
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
adds r6, r5, #0
adds r6, #0x72
ldrh r4, [r6]
movs r2, #0x18
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #0
bl sub_0800029C
cmp r4, r0
beq _0808A3EC
ldrh r0, [r6]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808A3F0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r7
movs r4, #0x32
ldrsh r2, [r5, r4]
ldrh r3, [r3, #8]
adds r3, #0x18
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r7
lsls r2, r2, #6
orrs r1, r2
movs r2, #1
bl sub_0800015E
_0808A3EC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808A3F0: .4byte gUnk_03000BF0
thumb_func_start sub_0808A3F4
sub_0808A3F4: @ 0x0808A3F4
push {lr}
ldr r2, _0808A408 @ =gUnk_08121060
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A408: .4byte gUnk_08121060
thumb_func_start sub_0808A40C
sub_0808A40C: @ 0x0808A40C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808A41E
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x28
strb r0, [r4, #0xe]
_0808A41E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808A466
bl sub_08000E50
movs r1, #0x1f
ands r0, r1
movs r1, #0x40
subs r1, r1, r0
strb r1, [r4, #0xe]
movs r0, #0x2d
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0808A466
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA24
bl sub_08000E50
ldr r2, _0808A468 @ =gUnk_08121068
movs r1, #7
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
_0808A466:
pop {r4, r5, pc}
.align 2, 0
_0808A468: .4byte gUnk_08121068
thumb_func_start sub_0808A46C
sub_0808A46C: @ 0x0808A46C
push {lr}
ldr r2, _0808A480 @ =gUnk_08121070
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A480: .4byte gUnk_08121070
thumb_func_start sub_0808A484
sub_0808A484: @ 0x0808A484
push {r4, lr}
movs r3, #1
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
movs r1, #0x40
strh r1, [r0, #0x24]
movs r1, #6
strb r1, [r0, #0x15]
ldrb r3, [r0, #0x19]
movs r2, #0x3f
adds r1, r2, #0
ands r1, r3
movs r4, #0x40
orrs r1, r4
strb r1, [r0, #0x19]
movs r1, #0x29
adds r1, r1, r0
mov ip, r1
ldrb r3, [r1]
movs r1, #8
rsbs r1, r1, #0
ands r1, r3
mov r3, ip
strb r1, [r3]
ldrb r1, [r0, #0x1b]
ands r2, r1
orrs r2, r4
strb r2, [r0, #0x1b]
movs r1, #0x28
bl sub_08004260
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808A4D0
sub_0808A4D0: @ 0x0808A4D0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808A4F2
adds r0, r4, #0
bl sub_0805E7BC
_0808A4F2:
pop {r4, pc}
thumb_func_start sub_0808A4F4
sub_0808A4F4: @ 0x0808A4F4
push {lr}
ldr r2, _0808A508 @ =gUnk_08121078
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A508: .4byte gUnk_08121078
thumb_func_start sub_0808A50C
sub_0808A50C: @ 0x0808A50C
push {lr}
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
ldrb r1, [r0, #0xc]
adds r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x19]
movs r1, #0x3f
ands r1, r2
movs r2, #0x80
orrs r1, r2
strb r1, [r0, #0x19]
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
movs r1, #8
rsbs r1, r1, #0
ands r1, r2
movs r2, #4
orrs r1, r2
movs r2, #0x39
rsbs r2, r2, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r3]
bl sub_0808A644
pop {pc}
thumb_func_start sub_0808A550
sub_0808A550: @ 0x0808A550
push {r4, lr}
adds r4, r0, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
adds r1, r0, #0
ldr r0, _0808A58C @ =0x0000401F
cmp r1, r0
bhi _0808A5CC
subs r0, #3
cmp r1, r0
blo _0808A5CC
adds r0, r1, #0
subs r0, #0x1c
lsls r1, r0, #1
strb r1, [r4, #0x14]
lsls r1, r0, #3
strb r1, [r4, #0x15]
lsls r0, r0, #0x19
lsrs r0, r0, #0x18
cmp r0, #2
bne _0808A590
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
b _0808A598
.align 2, 0
_0808A58C: .4byte 0x0000401F
_0808A590:
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
_0808A598:
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x74
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
adds r1, #1
adds r0, r4, #0
bl sub_08004260
ldr r0, _0808A5C8 @ =0x0000010F
bl sub_08004488
b _0808A5DE
.align 2, 0
_0808A5C8: .4byte 0x0000010F
_0808A5CC:
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0
beq _0808A5DE
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_0808A5DE:
pop {r4, pc}
thumb_func_start sub_0808A5E0
sub_0808A5E0: @ 0x0808A5E0
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0800445C
ldr r2, _0808A618 @ =gUnk_08121088
adds r5, r4, #0
adds r5, #0x5a
ldrb r1, [r5]
movs r0, #0xf
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_08004274
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808A616
movs r0, #0
strb r0, [r4, #0xc]
_0808A616:
pop {r4, r5, pc}
.align 2, 0
_0808A618: .4byte gUnk_08121088
thumb_func_start sub_0808A61C
sub_0808A61C: @ 0x0808A61C
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0808A634
adds r0, r2, #0
bl sub_08004274
b _0808A640
_0808A634:
adds r0, r2, #0
adds r0, #0x29
ldrb r1, [r0]
movs r2, #7
orrs r1, r2
strb r1, [r0]
_0808A640:
pop {pc}
.align 2, 0
thumb_func_start sub_0808A644
sub_0808A644: @ 0x0808A644
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0808A6D0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x74
strh r1, [r5]
ldrh r0, [r5]
adds r6, r4, #0
adds r6, #0x38
ldrb r1, [r6]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
ldrh r0, [r5]
ldrb r1, [r6]
bl sub_080002E0
adds r1, r4, #0
adds r1, #0x72
strb r0, [r1]
ldrh r0, [r5]
ldrb r1, [r6]
bl sub_080002C8
cmp r0, #0x19
beq _0808A69E
cmp r0, #0xf0
bne _0808A6E2
_0808A69E:
ldr r0, _0808A6D4 @ =0x00004015
ldrh r1, [r5]
ldrb r2, [r6]
bl sub_0800015E
movs r0, #3
strb r0, [r4, #0xc]
adds r5, r4, #0
adds r5, #0x86
ldrh r0, [r5]
bl sub_0807CBE4
cmp r0, #0
bne _0808A6D8
ldrh r0, [r5]
bl sub_0807CCC8
movs r0, #0xcd
bl sub_080A3268
adds r0, r4, #0
movs r1, #5
bl sub_08004260
b _0808A6EC
.align 2, 0
_0808A6D0: .4byte gUnk_03000BF0
_0808A6D4: .4byte 0x00004015
_0808A6D8:
adds r0, r4, #0
movs r1, #6
bl sub_08004260
b _0808A6EC
_0808A6E2:
ldr r0, _0808A6F0 @ =0x0000401B
ldrh r1, [r5]
ldrb r2, [r6]
bl sub_0800015E
_0808A6EC:
pop {r4, r5, r6, pc}
.align 2, 0
_0808A6F0: .4byte 0x0000401B
thumb_func_start sub_0808A6F4
sub_0808A6F4: @ 0x0808A6F4
push {lr}
adds r2, r0, #0
adds r0, #0x3d
movs r1, #0
ldrsb r1, [r0, r1]
cmp r1, #0
bne _0808A706
adds r0, #0x33
strh r1, [r0]
_0808A706:
ldr r0, _0808A718 @ =gUnk_08121178
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A718: .4byte gUnk_08121178
thumb_func_start sub_0808A71C
sub_0808A71C: @ 0x0808A71C
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #1
strb r5, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x8f
strb r0, [r1]
subs r1, #4
movs r0, #0xa
strb r0, [r1]
ldr r0, _0808A75C @ =gUnk_08121180
str r0, [r4, #0x48]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0808A764
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808A760
strb r5, [r4, #0xa]
b _0808A76E
.align 2, 0
_0808A75C: .4byte gUnk_08121180
_0808A760:
strb r0, [r4, #0xa]
b _0808A76E
_0808A764:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_0808A76E:
adds r0, r4, #0
bl sub_0808A7D8
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808A778
sub_0808A778: @ 0x0808A778
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808A7D0
adds r1, r5, #0
adds r1, #0x70
ldrh r0, [r1]
cmp r0, #0
bne _0808A7D0
movs r0, #1
strh r0, [r1]
ldrb r0, [r5, #0xa]
movs r1, #1
eors r0, r1
strb r0, [r5, #0xa]
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0xe8
strb r0, [r1]
adds r0, r5, #0
bl sub_0808A7D8
adds r4, r5, #0
adds r4, #0x86
ldrh r0, [r4]
bl sub_0807CBE4
cmp r0, #0
beq _0808A7C2
ldrh r0, [r4]
bl sub_0807CD48
b _0808A7C8
_0808A7C2:
ldrh r0, [r4]
bl sub_0807CCC8
_0808A7C8:
ldr r1, _0808A7D4 @ =0x00000117
adds r0, r5, #0
bl sub_0800449C
_0808A7D0:
pop {r4, r5, pc}
.align 2, 0
_0808A7D4: .4byte 0x00000117
thumb_func_start sub_0808A7D8
sub_0808A7D8: @ 0x0808A7D8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #0
beq _0808A818
movs r0, #0xde
lsls r0, r0, #2
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808A814 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
b _0808A844
.align 2, 0
_0808A814: .4byte gUnk_03000BF0
_0808A818:
ldr r0, _0808A848 @ =0x00000377
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808A84C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
_0808A844:
pop {r4, r5, r6, pc}
.align 2, 0
_0808A848: .4byte 0x00000377
_0808A84C: .4byte gUnk_03000BF0
thumb_func_start sub_0808A850
sub_0808A850: @ 0x0808A850
push {r4, lr}
adds r4, r0, #0
ldr r1, _0808A86C @ =gUnk_08121188
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08080CB4
pop {r4, pc}
.align 2, 0
_0808A86C: .4byte gUnk_08121188
thumb_func_start sub_0808A870
sub_0808A870: @ 0x0808A870
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _0808A8BE
cmp r0, #1
bgt _0808A884
cmp r0, #0
beq _0808A896
b _0808A8C4
_0808A884:
cmp r0, #3
bgt _0808A8C4
adds r0, r5, #0
bl sub_0808A968
adds r0, r5, #0
bl sub_0808A8E0
b _0808A8C4
_0808A896:
adds r0, r5, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_0808094C
adds r4, r0, #0
adds r0, r5, #0
bl sub_0806F798
lsls r0, r0, #1
adds r0, #4
adds r4, r4, r0
str r4, [r5, #0x6c]
ldrh r1, [r4]
adds r0, r5, #0
adds r0, #0x68
strh r1, [r0]
movs r0, #1
strb r0, [r5, #0xc]
b _0808A8C4
_0808A8BE:
adds r0, r5, #0
bl sub_0808A968
_0808A8C4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808A8C8
sub_0808A8C8: @ 0x0808A8C8
push {lr}
adds r2, r0, #0
adds r0, #0x68
ldr r1, [r2, #0x6c]
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
beq _0808A8DE
adds r0, r2, #0
bl sub_0808A968
_0808A8DE:
pop {pc}
thumb_func_start sub_0808A8E0
sub_0808A8E0: @ 0x0808A8E0
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
cmp r2, #0
beq _0808A8F0
cmp r2, #1
beq _0808A930
b _0808A954
_0808A8F0:
ldr r0, [r4, #0x70]
cmp r0, #0
beq _0808A930
ldr r3, [r4, #0x20]
cmp r3, #0
bge _0808A926
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
ble _0808A90C
str r2, [r4, #0x70]
b _0808A926
_0808A90C:
ldr r0, _0808A918 @ =0xFFFFC000
cmp r3, r0
bge _0808A920
ldr r0, _0808A91C @ =0xFFFFFC00
b _0808A924
.align 2, 0
_0808A918: .4byte 0xFFFFC000
_0808A91C: .4byte 0xFFFFFC00
_0808A920:
movs r0, #0x80
lsls r0, r0, #3
_0808A924:
str r0, [r4, #0x70]
_0808A926:
ldr r1, [r4, #0x70]
adds r0, r4, #0
bl sub_08003FC4
b _0808A962
_0808A930:
ldr r2, _0808A964 @ =gUnk_08121194
ldrb r0, [r4, #0xf]
adds r1, r0, #1
strb r1, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x1b
movs r1, #7
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
strh r0, [r4, #0x36]
adds r0, r4, #0
bl sub_08017850
cmp r0, #0
beq _0808A962
_0808A954:
ldrb r1, [r4, #0xb]
movs r0, #0x5c
movs r2, #0
bl sub_080A7C00
bl sub_0805E780
_0808A962:
pop {r4, pc}
.align 2, 0
_0808A964: .4byte gUnk_08121194
thumb_func_start sub_0808A968
sub_0808A968: @ 0x0808A968
push {r4, lr}
adds r4, r0, #0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x22
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r2, #0x13
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
ldr r0, _0808A9C0 @ =gUnk_08121C58
str r0, [r4, #0x48]
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
movs r0, #0xa0
lsls r0, r0, #6
str r0, [r4, #0x70]
pop {r4, pc}
.align 2, 0
_0808A9C0: .4byte gUnk_08121C58
thumb_func_start sub_0808A9C4
sub_0808A9C4: @ 0x0808A9C4
push {lr}
ldr r2, _0808A9D8 @ =gUnk_0812119C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808A9D8: .4byte gUnk_0812119C
thumb_func_start sub_0808A9DC
sub_0808A9DC: @ 0x0808A9DC
movs r1, #1
strb r1, [r0, #0xc]
ldrb r1, [r0, #0xa]
strb r1, [r0, #0x1e]
ldrb r1, [r0, #0x19]
movs r2, #0xc0
orrs r1, r2
strb r1, [r0, #0x19]
adds r0, #0x29
ldrb r1, [r0]
movs r2, #7
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_start nullsub_519
nullsub_519: @ 0x0808A9F8
bx lr
.align 2, 0
thumb_func_start sub_0808A9FC
sub_0808A9FC: @ 0x0808A9FC
push {r4, lr}
adds r4, r0, #0
ldr r1, _0808AA18 @ =gUnk_081211A4
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r4, #0x41
movs r0, #0
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_0808AA18: .4byte gUnk_081211A4
thumb_func_start sub_0808AA1C
sub_0808AA1C: @ 0x0808AA1C
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
movs r4, #0
movs r6, #1
strb r6, [r5, #0xc]
bl sub_08052660
cmp r0, #0
bne _0808AA36
adds r0, r5, #0
movs r1, #0
bl sub_0801D2B4
_0808AA36:
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _0808AACC
cmp r0, #1
bgt _0808AA46
cmp r0, #0
beq _0808AA4C
b _0808AB5E
_0808AA46:
cmp r0, #2
beq _0808AB20
b _0808AB5E
_0808AA4C:
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldr r0, _0808AAC0 @ =gUnk_080FD224
str r0, [r5, #0x48]
strb r6, [r5, #0x16]
ldr r0, _0808AAC4 @ =0x00004022
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808AAC8 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r7, #0x32
ldrsh r2, [r5, r7]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
adds r0, r5, #0
adds r0, #0x45
strb r6, [r0]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x6e
strb r0, [r1]
subs r1, #4
movs r0, #0xe
strb r0, [r1]
strb r6, [r5, #0x1c]
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r1, r5, #0
adds r1, #0x63
movs r0, #4
strb r0, [r1]
b _0808AB5E
.align 2, 0
_0808AAC0: .4byte gUnk_080FD224
_0808AAC4: .4byte 0x00004022
_0808AAC8: .4byte gUnk_03000BF0
_0808AACC:
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0808AB10
ldr r0, _0808AB1C @ =gUnk_080FD224
str r0, [r5, #0x48]
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
adds r0, r5, #0
adds r0, #0x45
strb r6, [r0]
adds r1, r5, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x6e
strb r0, [r1]
subs r1, #4
movs r0, #4
strb r0, [r1]
strb r6, [r5, #0x1c]
movs r0, #3
strb r0, [r5, #0xc]
_0808AB10:
ldrb r1, [r5, #0x14]
adds r1, #9
adds r0, r5, #0
bl sub_08004260
b _0808AB5E
.align 2, 0
_0808AB1C: .4byte gUnk_080FD224
_0808AB20:
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrb r0, [r5, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r5, #0x19]
ldrb r1, [r5, #0x14]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0808AB52
movs r0, #0x80
lsls r0, r0, #2
str r0, [r5, #0x74]
movs r0, #0x80
lsls r0, r0, #1
str r0, [r5, #0x78]
b _0808AB5E
_0808AB52:
movs r0, #0x80
lsls r0, r0, #2
str r0, [r5, #0x78]
movs r0, #0x80
lsls r0, r0, #1
str r0, [r5, #0x74]
_0808AB5E:
adds r0, r5, #0
bl sub_0808AB68
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0808AB68
sub_0808AB68: @ 0x0808AB68
push {lr}
ldr r2, _0808AB7C @ =gUnk_081211B4
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808AB7C: .4byte gUnk_081211B4
thumb_func_start sub_0808AB80
sub_0808AB80: @ 0x0808AB80
push {lr}
ldr r2, _0808AB94 @ =gUnk_081211C0
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808AB94: .4byte gUnk_081211C0
thumb_func_start sub_0808AB98
sub_0808AB98: @ 0x0808AB98
push {lr}
adds r3, r0, #0
ldr r2, [r3, #0x50]
ldrh r1, [r2, #0xc]
ldr r0, _0808ABB0 @ =0x00000201
cmp r1, r0
bne _0808ABB4
movs r0, #0
str r0, [r2, #0x54]
bl sub_0805E780
b _0808ABC2
.align 2, 0
_0808ABB0: .4byte 0x00000201
_0808ABB4:
ldrb r0, [r2, #0xc]
cmp r0, #2
bne _0808ABC2
adds r0, r3, #0
movs r1, #0
bl sub_0808B168
_0808ABC2:
pop {pc}
thumb_func_start sub_0808ABC4
sub_0808ABC4: @ 0x0808ABC4
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrh r1, [r0, #0xc]
ldr r0, _0808AC38 @ =0x00000201
cmp r1, r0
bne _0808ABD6
bl sub_0805E780
_0808ABD6:
ldr r0, [r4, #0x54]
ldr r1, [r4, #0x50]
bl sub_0808B1F0
adds r2, r0, #0
cmp r2, #7
bhi _0808ABE6
movs r2, #0
_0808ABE6:
ldrb r3, [r4, #0x14]
lsls r1, r3, #2
ldr r0, _0808AC3C @ =gUnk_081211CC
adds r5, r1, r0
cmp r2, #0x1f
bhi _0808AC5A
cmp r2, #0
beq _0808ABF8
subs r2, #6
_0808ABF8:
ldrh r0, [r5]
str r0, [r4, #0x70]
ldr r1, [r4, #0x50]
movs r0, #2
ldrsb r0, [r5, r0]
ldrh r3, [r1, #0x2e]
adds r0, r0, r3
strh r0, [r4, #0x2e]
movs r0, #3
ldrsb r0, [r5, r0]
ldrh r1, [r1, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldrb r1, [r4, #0x14]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808AC40
lsls r1, r2, #4
movs r0, #0x80
lsls r0, r0, #2
subs r0, r0, r1
str r0, [r4, #0x74]
lsls r0, r2, #3
movs r1, #0x90
lsls r1, r1, #1
adds r0, r0, r1
str r0, [r4, #0x78]
movs r0, #0xf
strb r0, [r4, #0x1e]
b _0808ACDE
.align 2, 0
_0808AC38: .4byte 0x00000201
_0808AC3C: .4byte gUnk_081211CC
_0808AC40:
lsls r1, r2, #4
movs r0, #0x80
lsls r0, r0, #2
subs r0, r0, r1
str r0, [r4, #0x78]
lsls r0, r2, #3
movs r3, #0x90
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r4, #0x74]
movs r0, #0x14
strb r0, [r4, #0x1e]
b _0808ACDE
_0808AC5A:
movs r0, #1
ands r3, r0
cmp r3, #0
beq _0808AC9E
adds r1, r2, #0
subs r1, #0x20
lsls r1, r1, #2
adds r0, #0xff
subs r0, r0, r1
str r0, [r4, #0x74]
lsls r0, r2, #3
movs r1, #0xa0
lsls r1, r1, #1
adds r0, r0, r1
str r0, [r4, #0x78]
movs r0, #0x10
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0808AC92
ldr r0, [r4, #0x50]
lsrs r1, r2, #1
ldrh r0, [r0, #0x2e]
subs r0, r0, r1
strh r0, [r4, #0x2e]
b _0808ACDE
_0808AC92:
ldr r1, [r4, #0x50]
lsrs r0, r2, #1
ldrh r1, [r1, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
b _0808ACDE
_0808AC9E:
adds r1, r2, #0
subs r1, #0x20
lsls r1, r1, #2
movs r0, #0x80
lsls r0, r0, #1
subs r0, r0, r1
str r0, [r4, #0x78]
lsls r0, r2, #3
movs r3, #0xa0
lsls r3, r3, #1
adds r0, r0, r3
str r0, [r4, #0x74]
movs r0, #0x15
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0808ACCE
ldr r0, [r4, #0x50]
lsrs r1, r2, #1
ldrh r0, [r0, #0x32]
adds r1, r1, r0
b _0808ACD6
_0808ACCE:
ldr r0, [r4, #0x50]
lsrs r2, r2, #1
ldrh r1, [r0, #0x32]
subs r1, r1, r2
_0808ACD6:
movs r0, #3
ldrsb r0, [r5, r0]
adds r0, r0, r1
strh r0, [r4, #0x32]
_0808ACDE:
ldr r1, [r4, #0x74]
ldr r2, [r4, #0x78]
ldr r3, [r4, #0x70]
adds r0, r4, #0
bl sub_0805EC9C
pop {r4, r5, pc}
thumb_func_start sub_0808ACEC
sub_0808ACEC: @ 0x0808ACEC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0
beq _0808AD00
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_0808AD00:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
subs r0, #4
cmp r0, #0x12
bhi _0808AD92
lsls r0, r0, #2
ldr r1, _0808AD1C @ =_0808AD20
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0808AD1C: .4byte _0808AD20
_0808AD20: @ jump table
.4byte _0808AD6C @ case 0
.4byte _0808AD6C @ case 1
.4byte _0808AD6C @ case 2
.4byte _0808AD92 @ case 3
.4byte _0808AD6C @ case 4
.4byte _0808AD6C @ case 5
.4byte _0808AD6C @ case 6
.4byte _0808AD6C @ case 7
.4byte _0808AD6C @ case 8
.4byte _0808AD6C @ case 9
.4byte _0808AD92 @ case 10
.4byte _0808AD92 @ case 11
.4byte _0808AD6C @ case 12
.4byte _0808AD6C @ case 13
.4byte _0808AD6C @ case 14
.4byte _0808AD88 @ case 15
.4byte _0808AD6C @ case 16
.4byte _0808AD92 @ case 17
.4byte _0808AD6C @ case 18
_0808AD6C:
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x3e
ldrb r0, [r0]
bl sub_0806F5A4
strb r0, [r4, #0x14]
movs r0, #2
strb r0, [r4, #0xd]
strb r0, [r4, #0xe]
b _0808AD9E
_0808AD88:
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
b _0808AD9E
_0808AD92:
movs r0, #0
strb r0, [r4, #0xf]
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_08078930
_0808AD9E:
pop {r4, pc}
thumb_func_start sub_0808ADA0
sub_0808ADA0: @ 0x0808ADA0
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x54]
bl sub_0808B1F0
cmp r0, #7
bls _0808ADB4
ldr r1, [r4, #0x54]
cmp r1, #0
bne _0808ADE2
_0808ADB4:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r2, #2
movs r0, #2
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r4, #0x14]
eors r0, r2
strb r0, [r4, #0x14]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
b _0808ADEE
_0808ADE2:
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1, #0x24]
ldr r0, [r4, #0x54]
bl sub_0806F69C
_0808ADEE:
pop {r4, pc}
thumb_func_start sub_0808ADF0
sub_0808ADF0: @ 0x0808ADF0
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0x14]
adds r1, r2, #0
adds r1, #0xd
adds r0, #0x58
ldrb r0, [r0]
cmp r1, r0
bne _0808AE26
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808AE1E
movs r0, #0
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
b _0808AE80
_0808AE1E:
adds r0, r4, #0
bl sub_08004274
b _0808AE80
_0808AE26:
adds r1, r2, #1
cmp r1, r0
beq _0808AE54
adds r0, r4, #0
bl sub_08004260
ldrb r0, [r4, #0x14]
cmp r0, #3
bne _0808AE42
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
b _0808AE48
_0808AE42:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
_0808AE48:
strb r0, [r4, #0x18]
movs r0, #0x97
lsls r0, r0, #1
bl sub_080A3268
b _0808AE80
_0808AE54:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808AE80
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0808AE80
ldrb r1, [r4, #0x14]
adds r1, #0xd
adds r0, r4, #0
bl sub_08004260
_0808AE80:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808AE84
sub_0808AE84: @ 0x0808AE84
push {lr}
adds r2, r0, #0
ldr r0, _0808AEA8 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _0808AE94
movs r0, #6
strb r0, [r2, #0xd]
_0808AE94:
ldr r0, _0808AEAC @ =gUnk_081211DC
ldrb r1, [r2, #0xd]
subs r1, #5
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
pop {pc}
.align 2, 0
_0808AEA8: .4byte gUnk_03003F80
_0808AEAC: .4byte gUnk_081211DC
thumb_func_start sub_0808AEB0
sub_0808AEB0: @ 0x0808AEB0
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808AF68
ldr r1, [r4, #0x54]
adds r0, r4, #0
bl sub_0808B1F0
adds r6, r0, #0
ldr r5, _0808AF10 @ =gUnk_03003F80
adds r2, r5, #0
adds r2, #0x90
ldr r1, _0808AF14 @ =gUnk_081211E4
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r2]
ldrh r0, [r0]
ands r0, r1
cmp r0, #0
beq _0808AF20
adds r0, r4, #0
bl sub_08004274
cmp r6, #0x3f
bhi _0808AF08
ldr r0, _0808AF18 @ =gLinkEntity
ldrb r2, [r4, #0x15]
movs r1, #0x40
bl sub_080044AE
ldr r0, [r4, #0x7c]
subs r0, #1
str r0, [r4, #0x7c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _0808AF08
movs r0, #4
str r0, [r4, #0x7c]
ldr r0, _0808AF1C @ =0x0000012F
bl sub_080A3268
_0808AF08:
movs r0, #1
strb r0, [r4, #0xf]
b _0808AFD0
.align 2, 0
_0808AF10: .4byte gUnk_03003F80
_0808AF14: .4byte gUnk_081211E4
_0808AF18: .4byte gLinkEntity
_0808AF1C: .4byte 0x0000012F
_0808AF20:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0808AFD0
ldr r2, _0808AF64 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #1
bne _0808AFD0
adds r0, r5, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _0808AFD0
movs r0, #0x1b
strb r0, [r5, #0xc]
adds r0, r5, #0
adds r0, #0x38
strb r6, [r0]
ldrb r0, [r4, #0x15]
movs r1, #0x10
eors r0, r1
adds r1, r5, #0
adds r1, #0x39
strb r0, [r1]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0808B1F0
adds r1, r5, #0
adds r1, #0x3a
strb r0, [r1]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _0808AFD0
.align 2, 0
_0808AF64: .4byte gLinkEntity
_0808AF68:
movs r6, #1
strb r6, [r4, #0xe]
str r6, [r4, #0x7c]
ldr r5, _0808AFC8 @ =gLinkEntity
ldrb r0, [r5, #0x14]
lsrs r0, r0, #1
movs r1, #2
eors r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #3
strb r0, [r4, #0x15]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r0, [r5, #0x18]
movs r1, #0x40
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x14]
adds r1, #5
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
movs r1, #0
bl sub_0808B21C
cmp r0, #0
beq _0808AFB6
ldr r0, [r4, #0x54]
movs r1, #0
bl sub_0808B168
_0808AFB6:
ldrb r1, [r4, #0x14]
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _0808AFCC
ldrh r0, [r4, #0x32]
strh r0, [r5, #0x32]
b _0808AFD0
.align 2, 0
_0808AFC8: .4byte gLinkEntity
_0808AFCC:
ldrh r0, [r4, #0x2e]
strh r0, [r5, #0x2e]
_0808AFD0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808AFD4
sub_0808AFD4: @ 0x0808AFD4
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
strb r1, [r0, #0xd]
ldr r2, [r0, #0x54]
ldrb r0, [r0, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r2, #0x15]
movs r0, #0x98
lsls r0, r0, #1
bl sub_080A3268
pop {pc}
thumb_func_start sub_0808AFF0
sub_0808AFF0: @ 0x0808AFF0
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _0808B054 @ =gUnk_081211EC
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r0, _0808B058 @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0808B01E
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _0808B050
_0808B01E:
ldrb r5, [r4, #0xa]
cmp r5, #1
bne _0808B050
ldr r0, [r4, #0x50]
strb r5, [r0, #0xc]
ldr r0, [r4, #0x50]
strb r5, [r0, #0xd]
ldr r2, [r4, #0x50]
ldrb r0, [r2, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
ldrb r3, [r2, #0x10]
movs r1, #0x7f
adds r0, r1, #0
ands r0, r3
strb r0, [r2, #0x10]
ldrb r0, [r4, #0x10]
ands r1, r0
strb r1, [r4, #0x10]
strb r5, [r4, #0xc]
movs r0, #0x98
lsls r0, r0, #1
bl sub_080A3268
_0808B050:
pop {r4, r5, pc}
.align 2, 0
_0808B054: .4byte gUnk_081211EC
_0808B058: .4byte gUnk_03003F80
thumb_func_start sub_0808B05C
sub_0808B05C: @ 0x0808B05C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0808B0AE
ldr r2, _0808B0B8 @ =gLinkEntity
ldrb r0, [r2, #0x14]
lsrs r0, r0, #1
movs r1, #2
eors r0, r1
strb r0, [r4, #0x14]
lsls r0, r0, #3
strb r0, [r4, #0x15]
ldrb r0, [r2, #0x18]
movs r1, #0x40
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x14]
adds r1, #5
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
movs r1, #1
bl sub_0808B21C
cmp r0, #0
beq _0808B0AE
ldr r0, [r4, #0x54]
movs r1, #1
bl sub_0808B168
_0808B0AE:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
pop {r4, pc}
.align 2, 0
_0808B0B8: .4byte gLinkEntity
thumb_func_start sub_0808B0BC
sub_0808B0BC: @ 0x0808B0BC
push {r4, r5, r6, r7, lr}
sub sp, #0x88
adds r5, r0, #0
ldr r1, [r5, #0x50]
bl sub_0808B1F0
adds r7, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #0
beq _0808B0D6
cmp r0, #1
beq _0808B0DE
b _0808B162
_0808B0D6:
adds r0, r5, #0
bl sub_08004274
b _0808B162
_0808B0DE:
ldr r6, _0808B148 @ =gLinkEntity
ldrb r0, [r6, #0x14]
movs r1, #0xe
ands r1, r0
ldr r0, _0808B14C @ =gUnk_08126EE4
adds r1, r1, r0
mov r2, sp
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r3, [r6, #0x2e]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r6, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
mov r0, sp
adds r1, r5, #0
movs r2, #7
movs r3, #7
bl sub_0800419C
cmp r0, #0
beq _0808B154
ldrb r0, [r6, #0xc]
cmp r0, #1
bne _0808B162
ldr r4, _0808B150 @ =gUnk_03003F80
adds r0, r4, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
bne _0808B162
movs r0, #0x1b
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x38
strb r7, [r0]
ldrb r0, [r5, #0x15]
movs r1, #0x10
eors r0, r1
adds r1, r4, #0
adds r1, #0x39
strb r0, [r1]
ldr r0, [r5, #0x50]
adds r1, r6, #0
bl sub_0808B1F0
adds r1, r4, #0
adds r1, #0x3a
strb r0, [r1]
b _0808B162
.align 2, 0
_0808B148: .4byte gLinkEntity
_0808B14C: .4byte gUnk_08126EE4
_0808B150: .4byte gUnk_03003F80
_0808B154:
movs r0, #0x40
strh r0, [r5, #0x24]
cmp r7, #0x3f
bhi _0808B162
adds r0, r5, #0
bl sub_0806F69C
_0808B162:
add sp, #0x88
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0808B168
sub_0808B168: @ 0x0808B168
push {r4, r5, lr}
adds r3, r0, #0
cmp r1, #0
beq _0808B188
ldrb r0, [r3, #0x14]
movs r1, #2
eors r1, r0
lsls r1, r1, #1
ldr r0, _0808B184 @ =gUnk_081211F4
adds r2, r1, r0
adds r1, r2, #1
ldr r4, [r3, #0x50]
adds r5, r4, #0
b _0808B1CE
.align 2, 0
_0808B184: .4byte gUnk_081211F4
_0808B188:
ldrb r1, [r3, #0x14]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808B1B8
ldr r5, _0808B1AC @ =gLinkEntity
ldr r4, [r3, #0x50]
ldrb r1, [r3, #0x14]
lsls r2, r1, #1
ldr r0, _0808B1B0 @ =gUnk_081211FC
adds r2, r2, r0
movs r0, #2
eors r1, r0
lsls r1, r1, #1
ldr r0, _0808B1B4 @ =gUnk_081211F5
adds r1, r1, r0
b _0808B1CE
.align 2, 0
_0808B1AC: .4byte gLinkEntity
_0808B1B0: .4byte gUnk_081211FC
_0808B1B4: .4byte gUnk_081211F5
_0808B1B8:
ldr r5, [r3, #0x50]
ldr r4, _0808B1E4 @ =gLinkEntity
movs r0, #2
eors r0, r1
lsls r0, r0, #1
ldr r1, _0808B1E8 @ =gUnk_081211F4
adds r2, r0, r1
ldrb r0, [r3, #0x14]
lsls r0, r0, #1
ldr r1, _0808B1EC @ =gUnk_081211FD
adds r1, r0, r1
_0808B1CE:
movs r0, #0
ldrsb r0, [r2, r0]
ldrh r5, [r5, #0x2e]
adds r0, r0, r5
strh r0, [r3, #0x2e]
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r4, [r4, #0x32]
adds r0, r0, r4
strh r0, [r3, #0x32]
pop {r4, r5, pc}
.align 2, 0
_0808B1E4: .4byte gLinkEntity
_0808B1E8: .4byte gUnk_081211F4
_0808B1EC: .4byte gUnk_081211FD
thumb_func_start sub_0808B1F0
sub_0808B1F0: @ 0x0808B1F0
push {lr}
adds r2, r0, #0
adds r3, r1, #0
ldrb r1, [r2, #0x14]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808B20A
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r2, #0x2e
ldrsh r0, [r3, r2]
b _0808B212
_0808B20A:
movs r0, #0x32
ldrsh r1, [r2, r0]
movs r2, #0x32
ldrsh r0, [r3, r2]
_0808B212:
subs r0, r1, r0
cmp r0, #0
bge _0808B21A
rsbs r0, r0, #0
_0808B21A:
pop {pc}
thumb_func_start sub_0808B21C
sub_0808B21C: @ 0x0808B21C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #6
orrs r1, r0
strb r1, [r2]
adds r0, r4, #0
movs r1, #0x32
movs r2, #1
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _0808B26E
ldrb r0, [r4, #0x14]
strb r0, [r1, #0x14]
ldr r1, [r4, #0x54]
ldrb r0, [r4, #0x15]
strb r0, [r1, #0x15]
ldr r3, [r4, #0x54]
ldrb r0, [r4, #0x18]
movs r1, #0x40
ands r1, r0
ldrb r2, [r3, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
ldr r0, [r4, #0x54]
str r4, [r0, #0x50]
ldr r0, [r4, #0x54]
strb r5, [r0, #0xb]
_0808B26E:
adds r0, r4, #0
movs r1, #0x32
movs r2, #2
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x50]
cmp r1, #0
bne _0808B286
movs r0, #0
b _0808B292
_0808B286:
ldrb r0, [r4, #0x14]
strb r0, [r1, #0x14]
ldr r1, [r4, #0x50]
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
movs r0, #1
_0808B292:
pop {r4, r5, pc}
thumb_func_start sub_0808B294
sub_0808B294: @ 0x0808B294
push {lr}
ldr r2, _0808B2A8 @ =gUnk_08121300
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808B2A8: .4byte gUnk_08121300
thumb_func_start sub_0808B2AC
sub_0808B2AC: @ 0x0808B2AC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808B2C4
adds r0, r4, #0
bl sub_0808B41C
adds r0, r4, #0
bl sub_0808B3AC
b _0808B2CA
_0808B2C4:
adds r0, r4, #0
bl sub_0808B42C
_0808B2CA:
pop {r4, pc}
thumb_func_start sub_0808B2CC
sub_0808B2CC: @ 0x0808B2CC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808B2E6
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808B31C
b _0808B2F4
_0808B2E6:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0808B31C
_0808B2F4:
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldr r0, _0808B320 @ =0x000001A5
bl sub_08004488
_0808B31C:
pop {r4, pc}
.align 2, 0
_0808B320: .4byte 0x000001A5
thumb_func_start sub_0808B324
sub_0808B324: @ 0x0808B324
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808B340
adds r0, r4, #0
bl sub_0808B42C
_0808B340:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808B344
sub_0808B344: @ 0x0808B344
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808B35E
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0808B384
b _0808B36C
_0808B35E:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808B384
_0808B36C:
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
adds r0, r4, #0
bl sub_0808B3AC
ldr r0, _0808B388 @ =0x000001A5
bl sub_08004488
_0808B384:
pop {r4, pc}
.align 2, 0
_0808B388: .4byte 0x000001A5
thumb_func_start sub_0808B38C
sub_0808B38C: @ 0x0808B38C
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808B3A8
adds r0, r4, #0
bl sub_0808B41C
_0808B3A8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808B3AC
sub_0808B3AC: @ 0x0808B3AC
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _0808B414 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r4, r6, #0
adds r4, #0x70
strh r1, [r4]
ldrh r0, [r4]
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x72
strh r0, [r1]
ldrh r0, [r4]
ldrb r1, [r5]
bl sub_080002E0
adds r1, r6, #0
adds r1, #0x74
strb r0, [r1]
ldr r0, _0808B418 @ =0x0000400B
ldrh r1, [r4]
ldrb r2, [r5]
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0808B414: .4byte gUnk_03000BF0
_0808B418: .4byte 0x0000400B
thumb_func_start sub_0808B41C
sub_0808B41C: @ 0x0808B41C
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_0808B42C
sub_0808B42C: @ 0x0808B42C
push {lr}
movs r1, #3
strb r1, [r0, #0xc]
adds r3, r0, #0
adds r3, #0x29
ldrb r1, [r3]
movs r2, #7
orrs r1, r2
strb r1, [r3]
movs r1, #1
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_0808B448
sub_0808B448: @ 0x0808B448
push {lr}
adds r2, r0, #0
adds r0, #0x70
ldrb r0, [r0]
cmp r0, #0
bne _0808B46C
ldr r0, _0808B468 @ =gUnk_08121368
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0808B472
.align 2, 0
_0808B468: .4byte gUnk_08121368
_0808B46C:
adds r0, r2, #0
bl sub_0808B73C
_0808B472:
pop {pc}
thumb_func_start sub_0808B474
sub_0808B474: @ 0x0808B474
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xf]
ldr r1, _0808B4D8 @ =gUnk_08121380
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
movs r0, #0xf
ands r1, r0
ldrb r3, [r4, #0x1a]
movs r2, #0x10
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r3
orrs r0, r1
strb r0, [r4, #0x1a]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r3]
ldr r0, _0808B4DC @ =gUnk_080FD168
str r0, [r4, #0x48]
ldrb r0, [r4, #0x11]
ands r2, r0
movs r0, #3
orrs r2, r0
strb r2, [r4, #0x11]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808B4E0
adds r0, r4, #0
bl sub_0808B830
b _0808B4F8
.align 2, 0
_0808B4D8: .4byte gUnk_08121380
_0808B4DC: .4byte gUnk_080FD168
_0808B4E0:
bl sub_08052660
cmp r0, #0
beq _0808B4F8
ldrb r0, [r4, #0xa]
bl sub_0807CAEC
cmp r0, #0
beq _0808B4F8
adds r0, r4, #0
bl sub_0808B830
_0808B4F8:
adds r0, r4, #0
bl sub_0808B7C8
cmp r0, #0
beq _0808B528
movs r2, #4
strb r2, [r4, #0xc]
movs r0, #0x60
strb r0, [r4, #0xf]
ldr r1, _0808B52C @ =gLinkEntity
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
strb r2, [r1, #0x14]
movs r0, #0x89
lsls r0, r0, #1
bl sub_08004488
ldrb r1, [r4, #0xf]
adds r1, #0x10
adds r0, r4, #0
bl sub_0805E4E0
_0808B528:
pop {r4, pc}
.align 2, 0
_0808B52C: .4byte gLinkEntity
thumb_func_start sub_0808B530
sub_0808B530: @ 0x0808B530
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808B562
adds r0, r4, #0
bl sub_0808B830
bl sub_08052660
cmp r0, #0
beq _0808B554
ldrb r0, [r4, #0xa]
bl sub_0807CAC8
_0808B554:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xf]
adds r0, #0xd6
bl sub_08004488
_0808B562:
pop {r4, pc}
thumb_func_start sub_0808B564
sub_0808B564: @ 0x0808B564
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xf]
subs r1, r0, #1
strb r1, [r3, #0xf]
lsls r0, r1, #0x18
cmp r0, #0
bne _0808B57A
movs r0, #3
strb r0, [r3, #0xc]
b _0808B58E
_0808B57A:
lsls r0, r1, #0x18
lsrs r0, r0, #0x19
movs r1, #1
bics r1, r0
ldrb r2, [r3, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
_0808B58E:
pop {pc}
thumb_func_start sub_0808B590
sub_0808B590: @ 0x0808B590
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0808B7C8
cmp r0, #0
beq _0808B5E4
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0808B5E6
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #0x60
strb r0, [r4, #0xf]
bl sub_08077B20
ldr r1, _0808B5DC @ =gLinkEntity
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
movs r0, #4
strb r0, [r1, #0x14]
ldrb r2, [r1, #0x10]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #0x10]
ldrb r1, [r4, #0xf]
adds r1, #0x10
adds r0, r4, #0
bl sub_0805E4E0
ldr r0, _0808B5E0 @ =0x00000113
bl sub_080A3268
b _0808B5E6
.align 2, 0
_0808B5DC: .4byte gLinkEntity
_0808B5E0: .4byte 0x00000113
_0808B5E4:
strb r0, [r4, #0xe]
_0808B5E6:
pop {r4, pc}
thumb_func_start sub_0808B5E8
sub_0808B5E8: @ 0x0808B5E8
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r1, r0, #1
strb r1, [r4, #0xf]
lsls r0, r1, #0x18
cmp r0, #0
bne _0808B610
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
ldr r1, _0808B60C @ =gLinkEntity
movs r0, #4
strb r0, [r1, #0x14]
movs r0, #0x10
strb r0, [r1, #0x15]
b _0808B67E
.align 2, 0
_0808B60C: .4byte gLinkEntity
_0808B610:
movs r5, #0
movs r0, #0x60
ands r0, r1
cmp r0, #0x20
beq _0808B644
cmp r0, #0x20
bgt _0808B624
cmp r0, #0
beq _0808B64E
b _0808B66E
_0808B624:
cmp r0, #0x40
bne _0808B66E
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x58
bne _0808B638
movs r0, #0x8a
lsls r0, r0, #1
bl sub_080A3268
_0808B638:
ldrb r1, [r4, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0808B66E
b _0808B672
_0808B644:
movs r0, #3
ands r1, r0
cmp r1, #0
bne _0808B66E
b _0808B672
_0808B64E:
movs r0, #7
ands r0, r1
cmp r0, #0
bne _0808B66E
ldr r0, _0808B668 @ =gLinkEntity
ldrb r0, [r0, #0x14]
cmp r0, #4
bne _0808B66C
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x18
bls _0808B66E
b _0808B672
.align 2, 0
_0808B668: .4byte gLinkEntity
_0808B66C:
movs r5, #1
_0808B66E:
cmp r5, #0
beq _0808B67E
_0808B672:
ldr r0, _0808B680 @ =gLinkEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_0808B67E:
pop {r4, r5, pc}
.align 2, 0
_0808B680: .4byte gLinkEntity
thumb_func_start sub_0808B684
sub_0808B684: @ 0x0808B684
push {lr}
mov ip, r0
ldrb r0, [r0, #0xf]
subs r1, r0, #1
mov r0, ip
strb r1, [r0, #0xf]
lsls r0, r1, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
bne _0808B6E8
ldr r3, _0808B6E4 @ =gUnk_030010A0
movs r0, #1
strb r0, [r3, #8]
strb r2, [r3, #9]
mov r0, ip
adds r0, #0x7c
ldrb r0, [r0]
strb r0, [r3, #0xc]
mov r0, ip
adds r0, #0x7d
ldrb r0, [r0]
strb r0, [r3, #0xd]
mov r0, ip
adds r0, #0x84
ldrh r1, [r0]
movs r0, #0x3f
ands r0, r1
lsls r0, r0, #4
adds r0, #8
movs r2, #0
strh r0, [r3, #0x10]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r1
lsrs r0, r0, #2
adds r0, #8
strh r0, [r3, #0x12]
strb r2, [r3, #0x14]
movs r0, #4
strb r0, [r3, #0xe]
strb r2, [r3, #0xf]
mov r1, ip
ldrb r0, [r1, #0xa]
cmp r0, #2
bne _0808B736
strb r0, [r3, #9]
b _0808B736
.align 2, 0
_0808B6E4: .4byte gUnk_030010A0
_0808B6E8:
movs r0, #0x60
ands r0, r1
cmp r0, #0x20
beq _0808B702
cmp r0, #0x20
bgt _0808B6FA
cmp r0, #0
beq _0808B706
b _0808B724
_0808B6FA:
cmp r0, #0x40
bne _0808B724
movs r0, #7
b _0808B710
_0808B702:
movs r0, #3
b _0808B710
_0808B706:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x10
bls _0808B718
movs r0, #1
_0808B710:
ands r1, r0
cmp r1, #0
bne _0808B724
b _0808B72A
_0808B718:
ldr r2, _0808B738 @ =gLinkEntity
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
_0808B724:
movs r0, #0
cmp r0, #0
beq _0808B736
_0808B72A:
ldr r0, _0808B738 @ =gLinkEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_0808B736:
pop {pc}
.align 2, 0
_0808B738: .4byte gLinkEntity
thumb_func_start sub_0808B73C
sub_0808B73C: @ 0x0808B73C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808B766
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, [r4, #0x50]
ldrb r1, [r0, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_0808B766:
ldr r5, _0808B78C @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r5, r0]
movs r0, #0x32
ldrsh r2, [r5, r0]
adds r0, r4, #0
movs r3, #0x28
bl sub_0806FCB8
cmp r0, #0
beq _0808B790
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x18]
b _0808B7C0
.align 2, 0
_0808B78C: .4byte gLinkEntity
_0808B790:
movs r0, #0x2e
ldrsh r1, [r5, r0]
movs r0, #0x32
ldrsh r2, [r5, r0]
adds r0, r4, #0
movs r3, #0x2e
bl sub_0806FCB8
cmp r0, #0
beq _0808B7B6
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
b _0808B7BE
_0808B7B6:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
_0808B7BE:
strb r0, [r4, #0x18]
_0808B7C0:
adds r0, r4, #0
bl sub_08004274
pop {r4, r5, pc}
thumb_func_start sub_0808B7C8
sub_0808B7C8: @ 0x0808B7C8
push {r4, r5, lr}
adds r5, r0, #0
ldr r2, _0808B824 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0808B82C
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x12
beq _0808B82C
ldr r4, _0808B828 @ =gLinkEntity
adds r0, r4, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _0808B82C
bl sub_08079F8C
cmp r0, #0
beq _0808B82C
adds r0, r5, #0
adds r1, r4, #0
movs r2, #5
movs r3, #5
bl sub_080041A0
cmp r0, #0
beq _0808B82C
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0808B82C
ldrb r0, [r5, #0xe]
cmp r0, #0
bne _0808B81E
ldrb r0, [r4, #0xc]
cmp r0, #0x1b
bne _0808B81E
bl sub_080791D0
_0808B81E:
movs r0, #1
b _0808B82E
.align 2, 0
_0808B824: .4byte gUnk_03003F80
_0808B828: .4byte gLinkEntity
_0808B82C:
movs r0, #0
_0808B82E:
pop {r4, r5, pc}
thumb_func_start sub_0808B830
sub_0808B830: @ 0x0808B830
push {r4, lr}
adds r4, r0, #0
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0x34
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _0808B86A
adds r1, r2, #0
adds r1, #0x70
movs r0, #1
strb r0, [r1]
str r4, [r2, #0x50]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0806FA24
_0808B86A:
pop {r4, pc}
thumb_func_start sub_0808B86C
sub_0808B86C: @ 0x0808B86C
push {lr}
ldr r2, _0808B880 @ =gUnk_081213C4
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808B880: .4byte gUnk_081213C4
thumb_func_start sub_0808B884
sub_0808B884: @ 0x0808B884
push {lr}
ldr r2, _0808B898 @ =gUnk_081213D0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808B898: .4byte gUnk_081213D0
thumb_func_start sub_0808B89C
sub_0808B89C: @ 0x0808B89C
push {r4, lr}
adds r4, r0, #0
movs r0, #2
strb r0, [r4, #0xc]
strb r0, [r4, #0xb]
adds r1, r4, #0
adds r1, #0x38
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2]
movs r0, #0xb4
strb r0, [r4, #0xe]
ldrb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808B8D4
sub_0808B8D4: @ 0x0808B8D4
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808B904
movs r0, #0xb4
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
adds r0, #1
strb r0, [r4, #0xb]
ldrb r0, [r4, #0xb]
movs r1, #3
bl __modsi3
strb r0, [r4, #0xb]
ldrb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08004260
_0808B904:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808B908
sub_0808B908: @ 0x0808B908
push {lr}
bl sub_08004274
pop {pc}
thumb_func_start sub_0808B910
sub_0808B910: @ 0x0808B910
push {lr}
ldr r2, _0808B92C @ =gUnk_081213DC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
ldr r2, _0808B930 @ =gUnk_03003F80
ldrb r1, [r2, #0x1a]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x1a]
pop {pc}
.align 2, 0
_0808B92C: .4byte gUnk_081213DC
_0808B930: .4byte gUnk_03003F80
thumb_func_start sub_0808B934
sub_0808B934: @ 0x0808B934
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
movs r7, #0
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
strb r7, [r4, #0x1e]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0808B9B8 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x76
strh r1, [r5]
ldrh r0, [r5]
adds r6, r4, #0
adds r6, #0x38
ldrb r1, [r6]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x74
strh r0, [r1]
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0808B9C0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xf]
ldr r0, _0808B9BC @ =0x00004022
ldrh r1, [r5]
ldrb r2, [r6]
bl sub_0800015E
b _0808B9D2
.align 2, 0
_0808B9B8: .4byte gUnk_03000BF0
_0808B9BC: .4byte 0x00004022
_0808B9C0:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
strb r7, [r4, #0xe]
_0808B9D2:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0808B9D4
sub_0808B9D4: @ 0x0808B9D4
push {r4, lr}
adds r4, r0, #0
movs r0, #0
bl sub_0807CC3C
cmp r0, #0
beq _0808BA0A
movs r1, #0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #7
strb r0, [r4, #0xe]
strb r1, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldr r0, _0808BA0C @ =0x0000010B
bl sub_08004488
_0808BA0A:
pop {r4, pc}
.align 2, 0
_0808BA0C: .4byte 0x0000010B
thumb_func_start sub_0808BA10
sub_0808BA10: @ 0x0808BA10
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808BA44
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0xc
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r4, #0x32]
_0808BA44:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808BA48
sub_0808BA48: @ 0x0808BA48
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl sub_08083734
cmp r0, #0
beq _0808BA68
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x76
ldrh r2, [r0]
adds r0, r4, #0
movs r1, #2
bl sub_080836DC
_0808BA68:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808BA6C
sub_0808BA6C: @ 0x0808BA6C
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808BAA4
movs r0, #5
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_08083814
ldr r0, _0808BAA8 @ =0x0000010B
bl sub_08004488
ldr r0, _0808BAAC @ =0x00004022
adds r1, r4, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_0808BAA4:
pop {r4, pc}
.align 2, 0
_0808BAA8: .4byte 0x0000010B
_0808BAAC: .4byte 0x00004022
thumb_func_start nullsub_520
nullsub_520: @ 0x0808BAB0
bx lr
.align 2, 0
thumb_func_start sub_0808BAB4
sub_0808BAB4: @ 0x0808BAB4
push {lr}
ldr r2, _0808BAC8 @ =gUnk_081213F4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808BAC8: .4byte gUnk_081213F4
thumb_func_start sub_0808BACC
sub_0808BACC: @ 0x0808BACC
push {r4, lr}
adds r2, r0, #0
movs r4, #1
strb r4, [r2, #0xc]
movs r3, #0x10
strb r3, [r2, #0xe]
ldrh r0, [r2, #0x36]
subs r0, #0x10
strh r0, [r2, #0x36]
ldrb r0, [r2, #0xb]
cmp r0, #0
bne _0808BAEA
movs r0, #2
strb r0, [r2, #0x1e]
b _0808BAFC
_0808BAEA:
movs r0, #0
strb r0, [r2, #0x1e]
ldr r0, [r2, #0x50]
ldrh r1, [r0, #0x2e]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0808BAFC
strb r4, [r2, #0x1e]
_0808BAFC:
adds r0, r2, #0
bl sub_080A29BC
pop {r4, pc}
thumb_func_start sub_0808BB04
sub_0808BB04: @ 0x0808BB04
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
cmp r1, #0
bne _0808BB16
bl sub_0805E780
_0808BB16:
pop {pc}
thumb_func_start sub_0808BB18
sub_0808BB18: @ 0x0808BB18
push {lr}
ldr r2, _0808BB2C @ =gUnk_08121440
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808BB2C: .4byte gUnk_08121440
thumb_func_start sub_0808BB30
sub_0808BB30: @ 0x0808BB30
push {r4, lr}
adds r4, r0, #0
movs r0, #0x17
bl GetProgressFlag
adds r1, r0, #0
cmp r1, #0
beq _0808BB4C
movs r0, #0x4a
bl sub_0801D7EC
bl sub_0805E780
b _0808BBD4
_0808BB4C:
movs r3, #1
strb r3, [r4, #0xc]
ldrb r0, [r4, #0x10]
movs r2, #0x80
orrs r0, r2
strb r0, [r4, #0x10]
movs r0, #0x78
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x1b]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x3f
strb r3, [r0]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
subs r1, #5
movs r0, #4
strb r0, [r1]
ldr r0, _0808BBD8 @ =gUnk_080FD150
str r0, [r4, #0x48]
movs r0, #2
strb r0, [r4, #0x1e]
ldr r0, _0808BBDC @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
bl sub_0808BDB0
ldr r0, [r4, #0x50]
ldr r1, [r0, #0x20]
movs r2, #0xb8
lsls r2, r2, #1
adds r0, r2, #0
subs r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_0808BBE0
_0808BBD4:
pop {r4, pc}
.align 2, 0
_0808BBD8: .4byte gUnk_080FD150
_0808BBDC: .4byte gLinkEntity
thumb_func_start sub_0808BBE0
sub_0808BBE0: @ 0x0808BBE0
push {lr}
adds r3, r0, #0
movs r1, #0x32
ldrsh r0, [r3, r1]
ldr r1, _0808BC20 @ =gUnk_03000BF0
movs r2, #0xc
ldrsh r1, [r1, r2]
subs r1, r0, r1
cmp r1, #0x9f
bhi _0808BC2C
adds r0, r1, #0
cmp r1, #0
bge _0808BBFC
adds r0, #0xf
_0808BBFC:
asrs r1, r0, #4
ldr r0, _0808BC24 @ =gUnk_08121474
adds r0, r1, r0
ldrb r0, [r0]
adds r2, r3, #0
adds r2, #0x63
strb r0, [r2]
lsls r0, r1, #2
ldr r1, _0808BC28 @ =gUnk_0812144C
adds r0, r0, r1
ldrh r1, [r0]
ldrh r2, [r0, #2]
adds r0, r3, #0
movs r3, #0
bl sub_0805EC9C
b _0808BC38
.align 2, 0
_0808BC20: .4byte gUnk_03000BF0
_0808BC24: .4byte gUnk_08121474
_0808BC28: .4byte gUnk_0812144C
_0808BC2C:
adds r2, r3, #0
adds r2, #0x41
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
_0808BC38:
pop {pc}
.align 2, 0
thumb_func_start sub_0808BC3C
sub_0808BC3C: @ 0x0808BC3C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r2, _0808BC98 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
adds r0, #0x78
movs r4, #0
strh r0, [r5, #0x2e]
ldr r0, [r5, #0x50]
ldr r1, [r0, #0x20]
ldr r0, _0808BC9C @ =0xFFFFFE90
adds r1, r1, r0
ldrh r0, [r2, #8]
subs r0, r0, r1
strh r0, [r5, #0x32]
adds r0, r5, #0
bl sub_0808BBE0
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x93
bne _0808BCE4
ldrb r0, [r5, #0xe]
subs r2, r0, #1
strb r2, [r5, #0xe]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
lsls r0, r2, #0x18
cmp r0, #0
bne _0808BCA0
movs r0, #0x17
bl sub_0807CD04
movs r0, #2
strb r0, [r5, #0xc]
movs r0, #0x80
strb r0, [r5, #0xf]
adds r0, r5, #0
adds r0, #0x63
strb r4, [r0]
b _0808BCFE
.align 2, 0
_0808BC98: .4byte gUnk_03000BF0
_0808BC9C: .4byte 0xFFFFFE90
_0808BCA0:
movs r6, #1
ands r2, r6
cmp r2, #0
beq _0808BCCA
bl sub_08000E50
movs r4, #3
ands r0, r4
ldr r1, _0808BCDC @ =0x0000FFFE
adds r0, r0, r1
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
bl sub_08000E50
ands r0, r4
ldr r1, _0808BCE0 @ =0x0000FFFF
adds r0, r0, r1
ldrh r1, [r5, #0x32]
adds r0, r0, r1
strh r0, [r5, #0x32]
_0808BCCA:
ldrb r0, [r5, #0xf]
cmp r0, #1
beq _0808BCFE
strb r6, [r5, #0xf]
movs r0, #0x4a
bl sub_0801D7EC
b _0808BCFE
.align 2, 0
_0808BCDC: .4byte 0x0000FFFE
_0808BCE0: .4byte 0x0000FFFF
_0808BCE4:
movs r0, #0x78
strb r0, [r5, #0xe]
ldrb r1, [r5, #0x18]
subs r0, #0x7c
ands r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xf]
cmp r0, #0
beq _0808BCFE
strb r4, [r5, #0xf]
movs r0, #0x49
bl sub_0801D7EC
_0808BCFE:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808BD00
sub_0808BD00: @ 0x0808BD00
push {lr}
movs r0, #0x17
bl sub_0807CD04
movs r0, #0x72
bl sub_080A3268
bl sub_0805E780
pop {pc}
thumb_func_start sub_0808BD14
sub_0808BD14: @ 0x0808BD14
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xf]
cmp r0, #0
beq _0808BD34
subs r0, #8
strb r0, [r5, #0xf]
ldrb r0, [r5, #0xf]
movs r2, #0x80
lsls r2, r2, #2
subs r2, r2, r0
adds r0, r5, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_0808BD34:
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x93
bne _0808BD74
ldr r4, _0808BD70 @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
bl sub_080045C4
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F69C
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r0, #0x32
ldrsh r2, [r4, r0]
subs r2, #6
adds r0, r5, #0
movs r3, #0x1c
bl sub_0806FCB8
cmp r0, #0
beq _0808BDAE
adds r0, r5, #0
bl sub_0808BD00
b _0808BDAE
.align 2, 0
_0808BD70: .4byte gLinkEntity
_0808BD74:
ldrb r1, [r5, #0x10]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808BD8A
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
movs r0, #0x1e
strb r0, [r5, #0xe]
b _0808BDAE
_0808BD8A:
ldrb r2, [r5, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808BDAE
adds r0, r5, #0
bl sub_0808BD00
_0808BDAE:
pop {r4, r5, pc}
thumb_func_start sub_0808BDB0
sub_0808BDB0: @ 0x0808BDB0
push {r4, r5, r6, lr}
adds r3, r0, #0
ldr r4, _0808BDD4 @ =gUnk_03003DA0
ldr r2, [r4, #4]
movs r0, #0
str r0, [r3, #0x50]
cmp r2, r4
beq _0808BDE6
ldr r6, _0808BDD8 @ =0x0000FFFF
ldr r5, _0808BDDC @ =0x00000C09
_0808BDC4:
ldrh r1, [r2, #8]
adds r0, r6, #0
ands r0, r1
cmp r0, r5
bne _0808BDE0
str r2, [r3, #0x50]
b _0808BDE6
.align 2, 0
_0808BDD4: .4byte gUnk_03003DA0
_0808BDD8: .4byte 0x0000FFFF
_0808BDDC: .4byte 0x00000C09
_0808BDE0:
ldr r2, [r2, #4]
cmp r2, r4
bne _0808BDC4
_0808BDE6:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808BDE8
sub_0808BDE8: @ 0x0808BDE8
push {lr}
ldr r2, _0808BDFC @ =gUnk_08121480
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808BDFC: .4byte gUnk_08121480
thumb_func_start sub_0808BE00
sub_0808BE00: @ 0x0808BE00
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x38
ldrb r0, [r0]
bl sub_0808094C
adds r4, r0, #0
adds r0, r5, #0
bl sub_0806F798
lsls r0, r0, #1
adds r0, #4
adds r4, r4, r0
str r4, [r5, #0x78]
ldrh r1, [r4]
adds r0, r5, #0
adds r0, #0x70
strh r1, [r0]
movs r0, #1
strb r0, [r5, #0xc]
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808BE2C
sub_0808BE2C: @ 0x0808BE2C
push {r4, lr}
adds r2, r0, #0
ldr r0, _0808BE78 @ =gUnk_02002A40
ldr r1, _0808BE7C @ =0x0000024E
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, #0
beq _0808BE74
adds r0, r2, #0
adds r0, #0x70
ldr r1, [r2, #0x78]
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
beq _0808BE74
adds r0, r2, #0
movs r1, #0x58
movs r2, #0
bl sub_080A2A20
adds r1, r0, #0
cmp r1, #0
beq _0808BE6C
ldr r0, _0808BE80 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
movs r0, #0x80
strh r0, [r1, #0x24]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r1, #0x20]
_0808BE6C:
movs r0, #1
strb r0, [r4]
bl sub_0805E780
_0808BE74:
pop {r4, pc}
.align 2, 0
_0808BE78: .4byte gUnk_02002A40
_0808BE7C: .4byte 0x0000024E
_0808BE80: .4byte gLinkEntity
thumb_func_start sub_0808BE84
sub_0808BE84: @ 0x0808BE84
push {lr}
ldr r2, _0808BE98 @ =gUnk_08121488
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808BE98: .4byte gUnk_08121488
thumb_func_start sub_0808BE9C
sub_0808BE9C: @ 0x0808BE9C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x10]
movs r0, #0x80
movs r2, #0
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x3f
movs r5, #1
strb r5, [r0]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #0x47
strb r0, [r1]
adds r1, #4
movs r0, #0x44
strb r0, [r1]
subs r1, #5
movs r0, #0x80
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x68
strb r2, [r0]
ldrb r0, [r4, #0xa]
bl sub_0807CBD0
cmp r0, #0
beq _0808BEEE
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
bne _0808BEF8
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
b _0808BF10
_0808BEEE:
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
bne _0808BF04
_0808BEF8:
strb r5, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
b _0808BF10
_0808BF04:
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
_0808BF10:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808BF14
sub_0808BF14: @ 0x0808BF14
push {r4, lr}
adds r4, r0, #0
bl sub_0808C128
cmp r0, #0
beq _0808BF4C
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0808C13C
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
bne _0808BF3E
ldrb r0, [r4, #0xa]
bl sub_0807CCB4
b _0808BF44
_0808BF3E:
ldrb r0, [r4, #0xa]
bl sub_0807CD34
_0808BF44:
adds r0, r4, #0
movs r1, #0
bl sub_0808C148
_0808BF4C:
adds r0, r4, #0
movs r1, #0
bl sub_0808C01C
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808BF58
sub_0808BF58: @ 0x0808BF58
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
ldrb r0, [r4, #0xd]
cmp r0, #1
beq _0808BF94
cmp r0, #1
bgt _0808BF74
cmp r0, #0
beq _0808BF7A
b _0808BFD6
_0808BF74:
cmp r0, #2
beq _0808BFB0
b _0808BFD6
_0808BF7A:
ldr r1, [r4, #0x20]
ldr r0, _0808BF90 @ =0x00017FFF
cmp r1, r0
bgt _0808BFD6
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
movs r1, #2
bl sub_080042AC
b _0808BFD6
.align 2, 0
_0808BF90: .4byte 0x00017FFF
_0808BF94:
adds r0, r4, #0
bl sub_080042B8
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0808BFD6
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
b _0808BFD6
_0808BFB0:
adds r0, r4, #0
bl sub_080042B8
movs r0, #0x36
ldrsh r1, [r4, r0]
cmp r1, #0
bne _0808BFD6
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xf]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
adds r0, r4, #0
movs r1, #1
bl sub_0808C148
_0808BFD6:
pop {r4, pc}
thumb_func_start sub_0808BFD8
sub_0808BFD8: @ 0x0808BFD8
push {r4, lr}
adds r4, r0, #0
bl sub_0808C128
cmp r0, #0
beq _0808C010
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0808C13C
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
bne _0808C002
ldrb r0, [r4, #0xa]
bl sub_0807CD34
b _0808C008
_0808C002:
ldrb r0, [r4, #0xa]
bl sub_0807CCB4
_0808C008:
adds r0, r4, #0
movs r1, #0
bl sub_0808C148
_0808C010:
adds r0, r4, #0
movs r1, #1
bl sub_0808C01C
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808C01C
sub_0808C01C: @ 0x0808C01C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
subs r0, #0x18
movs r2, #0x32
ldrsh r1, [r4, r2]
subs r1, #0x18
movs r2, #0x30
movs r3, #0x30
bl sub_0806FBFC
cmp r0, #0
beq _0808C0A6
ldr r2, _0808C06C @ =gUnk_02033A90
ldrh r0, [r4, #0x2e]
strh r0, [r2, #0x12]
ldrh r0, [r4, #0x32]
strh r0, [r2, #0x14]
movs r6, #2
strb r6, [r2, #0x16]
movs r0, #4
cmp r5, #0
beq _0808C050
movs r0, #2
_0808C050:
strb r0, [r2, #0x17]
cmp r5, #1
bne _0808C0A6
ldr r3, _0808C070 @ =gUnk_03003F80
ldr r0, [r3, #0x30]
movs r1, #0x20
ands r0, r1
cmp r0, #0
beq _0808C074
ldrb r0, [r3, #2]
cmp r0, #0
bne _0808C074
strb r6, [r2, #0x18]
b _0808C082
.align 2, 0
_0808C06C: .4byte gUnk_02033A90
_0808C070: .4byte gUnk_03003F80
_0808C074:
bl sub_08057810
cmp r0, #0
beq _0808C082
ldr r1, _0808C0A8 @ =gUnk_02033A90
movs r0, #3
strb r0, [r1, #0x18]
_0808C082:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_080577AC
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0808C0A6
movs r0, #1
strb r0, [r4, #0xf]
movs r0, #0xa9
lsls r0, r0, #1
bl sub_080A3268
_0808C0A6:
pop {r4, r5, r6, pc}
.align 2, 0
_0808C0A8: .4byte gUnk_02033A90
thumb_func_start sub_0808C0AC
sub_0808C0AC: @ 0x0808C0AC
push {r4, lr}
adds r4, r0, #0
movs r1, #0x80
lsls r1, r1, #6
bl sub_08003FC4
ldrb r0, [r4, #0xd]
cmp r0, #1
beq _0808C0E8
cmp r0, #1
bgt _0808C0C8
cmp r0, #0
beq _0808C0CE
b _0808C126
_0808C0C8:
cmp r0, #2
beq _0808C104
b _0808C126
_0808C0CE:
ldr r1, [r4, #0x20]
ldr r0, _0808C0E4 @ =0x00017FFF
cmp r1, r0
bgt _0808C126
movs r0, #1
strb r0, [r4, #0xd]
adds r0, r4, #0
movs r1, #3
bl sub_080042AC
b _0808C126
.align 2, 0
_0808C0E4: .4byte 0x00017FFF
_0808C0E8:
adds r0, r4, #0
bl sub_080042B8
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0808C126
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x80
lsls r0, r0, #8
str r0, [r4, #0x20]
b _0808C126
_0808C104:
adds r0, r4, #0
bl sub_080042B8
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _0808C126
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
adds r0, r4, #0
movs r1, #1
bl sub_0808C148
_0808C126:
pop {r4, pc}
thumb_func_start sub_0808C128
sub_0808C128: @ 0x0808C128
push {lr}
movs r1, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9d
bne _0808C136
movs r1, #1
_0808C136:
adds r0, r1, #0
pop {pc}
.align 2, 0
thumb_func_start sub_0808C13C
sub_0808C13C: @ 0x0808C13C
movs r1, #0
strb r1, [r0, #0xd]
movs r1, #0xa0
lsls r1, r1, #0xa
str r1, [r0, #0x20]
bx lr
thumb_func_start sub_0808C148
sub_0808C148: @ 0x0808C148
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r2, #0x2e
ldrsh r0, [r6, r2]
ldr r4, _0808C1A4 @ =gUnk_03000BF0
ldrh r2, [r4, #6]
subs r0, r0, r2
asrs r5, r0, #4
movs r3, #0x3f
ands r5, r3
movs r2, #0x32
ldrsh r0, [r6, r2]
ldrh r2, [r4, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r5, r0
cmp r1, #0
bne _0808C1B8
ldr r0, _0808C1A8 @ =0x00004092
subs r1, r5, #1
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _0808C1AC @ =0x00004093
ldrb r2, [r4]
adds r1, r5, #0
bl sub_0800015E
ldr r0, _0808C1B0 @ =0x00004094
adds r1, r5, #0
adds r1, #0x3f
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _0808C1B4 @ =0x00004095
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r4]
bl sub_0800015E
b _0808C1E0
.align 2, 0
_0808C1A4: .4byte gUnk_03000BF0
_0808C1A8: .4byte 0x00004092
_0808C1AC: .4byte 0x00004093
_0808C1B0: .4byte 0x00004094
_0808C1B4: .4byte 0x00004095
_0808C1B8:
subs r0, r5, #1
adds r4, r6, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
_0808C1E0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808C1E4
sub_0808C1E4: @ 0x0808C1E4
push {lr}
ldr r2, _0808C1F8 @ =gUnk_081214D8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808C1F8: .4byte gUnk_081214D8
thumb_func_start sub_0808C1FC
sub_0808C1FC: @ 0x0808C1FC
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x84
ldrh r1, [r2]
ldr r0, _0808C2B0 @ =0x0000FFFF
cmp r1, r0
beq _0808C21A
adds r0, r1, #0
bl sub_0807CBE4
cmp r0, #0
beq _0808C21A
bl sub_0805E780
_0808C21A:
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _0808C230
bl sub_0807CBE4
cmp r0, #0
beq _0808C230
bl sub_0805E780
_0808C230:
ldrb r0, [r4, #0xa]
lsrs r0, r0, #2
strb r0, [r4, #0xb]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
ldr r0, _0808C2B4 @ =gUnk_080FD180
str r0, [r4, #0x48]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0xa]
movs r0, #3
ands r0, r1
adds r5, r4, #0
adds r5, #0x76
strh r0, [r5]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0808C2B8 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
ldrb r0, [r4, #0xa]
movs r1, #0x1f
ands r1, r0
adds r0, r4, #0
bl sub_08004260
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _0808C2F8
cmp r0, #1
bgt _0808C2BC
cmp r0, #0
beq _0808C2C2
b _0808C31C
.align 2, 0
_0808C2B0: .4byte 0x0000FFFF
_0808C2B4: .4byte gUnk_080FD180
_0808C2B8: .4byte gUnk_03000BF0
_0808C2BC:
cmp r0, #2
beq _0808C306
b _0808C31C
_0808C2C2:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0808C500
adds r0, r4, #0
bl sub_08078800
ldr r1, _0808C2F4 @ =gUnk_0811F740
ldrh r0, [r5]
adds r0, r0, r1
ldrb r2, [r0]
adds r0, r4, #0
movs r1, #0
movs r3, #0
bl sub_08078850
b _0808C31C
.align 2, 0
_0808C2F4: .4byte gUnk_0811F740
_0808C2F8:
movs r0, #4
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #8
ands r0, r1
strb r0, [r4, #0x18]
b _0808C31C
_0808C306:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0808C500
_0808C31C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808C320
sub_0808C320: @ 0x0808C320
push {r4, lr}
adds r4, r0, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _0808C344
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080788E0
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_0808C344:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808C348
sub_0808C348: @ 0x0808C348
push {r4, lr}
adds r4, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0808C37C
ldr r0, _0808C374 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0808C36A
ldr r0, _0808C378 @ =0x00000185
bl sub_080A3268
_0808C36A:
adds r0, r4, #0
bl sub_08004274
b _0808C382
.align 2, 0
_0808C374: .4byte gUnk_030010A0
_0808C378: .4byte 0x00000185
_0808C37C:
adds r0, r4, #0
bl sub_0808C4BC
_0808C382:
pop {r4, pc}
thumb_func_start sub_0808C384
sub_0808C384: @ 0x0808C384
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808C3B4
ldrb r0, [r4, #0xa]
cmp r0, #3
bhi _0808C3B0
movs r0, #0x40
movs r1, #0
movs r2, #1
bl sub_08078AC0
ldr r1, _0808C3B8 @ =gLinkEntity
ldrb r0, [r4, #0xa]
lsls r0, r0, #3
strb r0, [r1, #0x15]
_0808C3B0:
bl sub_0805E780
_0808C3B4:
pop {r4, pc}
.align 2, 0
_0808C3B8: .4byte gLinkEntity
thumb_func_start sub_0808C3BC
sub_0808C3BC: @ 0x0808C3BC
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x76
ldrh r1, [r5]
bl sub_08083734
cmp r0, #0
beq _0808C40E
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #0xc
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x10
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r5]
lsls r0, r0, #3
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
ldrh r1, [r5]
lsls r1, r1, #1
ldr r0, _0808C410 @ =gUnk_081214F4
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r2, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r1, r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_0808C500
_0808C40E:
pop {r4, r5, pc}
.align 2, 0
_0808C410: .4byte gUnk_081214F4
thumb_func_start sub_0808C414
sub_0808C414: @ 0x0808C414
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0808C49A
movs r0, #6
strb r0, [r4, #0xc]
strh r1, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x76
ldrh r0, [r0]
lsls r0, r0, #2
ldr r1, _0808C49C @ =gUnk_081214FC
adds r5, r0, r1
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0808C470
movs r0, #0
ldrsb r0, [r5, r0]
ldrh r2, [r1, #0x2e]
adds r0, r0, r2
strh r0, [r1, #0x2e]
movs r0, #1
ldrsb r0, [r5, r0]
ldrh r2, [r1, #0x32]
adds r0, r0, r2
strh r0, [r1, #0x32]
_0808C470:
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0808C494
movs r0, #2
ldrsb r0, [r5, r0]
ldrh r2, [r1, #0x2e]
adds r0, r0, r2
strh r0, [r1, #0x2e]
movs r0, #3
ldrsb r0, [r5, r0]
ldrh r2, [r1, #0x32]
adds r0, r0, r2
strh r0, [r1, #0x32]
_0808C494:
ldr r0, _0808C4A0 @ =0x0000010B
bl sub_08004488
_0808C49A:
pop {r4, r5, pc}
.align 2, 0
_0808C49C: .4byte gUnk_081214FC
_0808C4A0: .4byte 0x0000010B
thumb_func_start sub_0808C4A4
sub_0808C4A4: @ 0x0808C4A4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808C4B8
movs r0, #2
strb r0, [r4, #0xc]
_0808C4B8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808C4BC
sub_0808C4BC: @ 0x0808C4BC
push {lr}
movs r1, #3
strb r1, [r0, #0xc]
movs r1, #0xc
strb r1, [r0, #0xe]
adds r2, r0, #0
adds r2, #0x76
ldrh r1, [r2]
lsls r1, r1, #3
strb r1, [r0, #0x15]
ldrh r2, [r2]
lsls r2, r2, #1
ldr r1, _0808C4F8 @ =gUnk_0812150C
adds r2, r2, r1
movs r1, #0
ldrsb r1, [r2, r1]
ldrh r3, [r0, #0x2e]
adds r1, r1, r3
strh r1, [r0, #0x2e]
movs r1, #1
ldrsb r1, [r2, r1]
ldrh r2, [r0, #0x32]
adds r1, r1, r2
strh r1, [r0, #0x32]
bl sub_0808C5D0
ldr r0, _0808C4FC @ =0x0000010B
bl sub_080A3268
pop {pc}
.align 2, 0
_0808C4F8: .4byte gUnk_0812150C
_0808C4FC: .4byte 0x0000010B
thumb_func_start sub_0808C500
sub_0808C500: @ 0x0808C500
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x76
ldrh r0, [r0]
cmp r0, #0
beq _0808C510
cmp r0, #2
bne _0808C570
_0808C510:
adds r6, r4, #0
adds r6, #0x74
ldrh r0, [r6]
subs r0, #1
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
ldrh r0, [r6]
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
ldrh r0, [r6]
adds r0, #1
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7c
strh r0, [r1]
ldr r4, _0808C56C @ =0x00004022
ldrh r1, [r6]
subs r1, #1
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #1
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
b _0808C5CA
.align 2, 0
_0808C56C: .4byte 0x00004022
_0808C570:
adds r6, r4, #0
adds r6, #0x74
ldrh r0, [r6]
subs r0, #0x40
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
ldrh r0, [r6]
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
ldrh r0, [r6]
adds r0, #0x40
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7c
strh r0, [r1]
ldr r4, _0808C5CC @ =0x00004022
ldrh r1, [r6]
subs r1, #0x40
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x40
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
_0808C5CA:
pop {r4, r5, r6, pc}
.align 2, 0
_0808C5CC: .4byte 0x00004022
thumb_func_start sub_0808C5D0
sub_0808C5D0: @ 0x0808C5D0
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r0, #0x76
ldrh r0, [r0]
cmp r0, #0
beq _0808C5E0
cmp r0, #2
bne _0808C618
_0808C5E0:
adds r0, r6, #0
adds r0, #0x78
ldrh r0, [r0]
adds r5, r6, #0
adds r5, #0x74
ldrh r1, [r5]
subs r1, #1
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x7a
ldrh r0, [r0]
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x7c
ldrh r0, [r0]
ldrh r1, [r5]
adds r1, #1
ldrb r2, [r4]
bl sub_0800015E
b _0808C64E
_0808C618:
adds r0, r6, #0
adds r0, #0x78
ldrh r0, [r0]
adds r5, r6, #0
adds r5, #0x74
ldrh r1, [r5]
subs r1, #0x40
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x7a
ldrh r0, [r0]
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x7c
ldrh r0, [r0]
ldrh r1, [r5]
adds r1, #0x40
ldrb r2, [r4]
bl sub_0800015E
_0808C64E:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808C650
sub_0808C650: @ 0x0808C650
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
movs r0, #0x3a
movs r1, #0
bl sub_080A2960
cmp r0, #0
beq _0808C670
str r4, [r0, #0x50]
ldr r1, _0808C66C @ =gUnk_02036BB8
movs r0, #0
b _0808C674
.align 2, 0
_0808C66C: .4byte gUnk_02036BB8
_0808C670:
ldr r1, _0808C678 @ =gUnk_02036BB8
movs r0, #1
_0808C674:
str r0, [r1]
pop {r4, pc}
.align 2, 0
_0808C678: .4byte gUnk_02036BB8
thumb_func_start sub_0808C67C
sub_0808C67C: @ 0x0808C67C
ldr r0, _0808C684 @ =gUnk_02036BB8
ldr r0, [r0]
bx lr
.align 2, 0
_0808C684: .4byte gUnk_02036BB8
thumb_func_start sub_0808C688
sub_0808C688: @ 0x0808C688
push {lr}
bl sub_0801E104
ldr r1, _0808C698 @ =gUnk_02036BB8
movs r0, #1
str r0, [r1]
pop {pc}
.align 2, 0
_0808C698: .4byte gUnk_02036BB8
thumb_func_start sub_0808C69C
sub_0808C69C: @ 0x0808C69C
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _0808C6BC
ldr r0, _0808C6B8 @ =gUnk_08121638
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0808C6CC
.align 2, 0
_0808C6B8: .4byte gUnk_08121638
_0808C6BC:
ldr r0, _0808C6D0 @ =gUnk_08121640
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_0808C6CC:
pop {pc}
.align 2, 0
_0808C6D0: .4byte gUnk_08121640
thumb_func_start sub_0808C6D4
sub_0808C6D4: @ 0x0808C6D4
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xb]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0808C744 @ =gUnk_081215E8
adds r4, r0, r1
ldrh r0, [r4, #4]
adds r1, r5, #0
adds r1, #0x86
strh r0, [r1]
ldrh r0, [r4, #6]
subs r1, #1
strb r0, [r1]
ldrh r1, [r4, #8]
adds r0, r5, #0
adds r0, #0x84
strb r1, [r0]
ldrh r0, [r4, #0xa]
adds r1, r5, #0
adds r1, #0x83
strb r0, [r1]
ldrh r0, [r4, #0xc]
subs r1, #1
strb r0, [r1]
ldrh r0, [r4, #0xe]
subs r1, #1
strb r0, [r1]
ldr r0, _0808C748 @ =gUnk_03000F50
adds r0, #0x60
ldrh r1, [r0]
movs r0, #0xff
lsls r0, r0, #8
ands r0, r1
ldrh r1, [r4, #0x10]
orrs r0, r1
ldrh r1, [r4, #0x12]
bl sub_0801E1B8
movs r0, #1
strb r0, [r5, #0xc]
adds r0, r5, #0
bl sub_0808C74C
ldrh r2, [r4]
movs r0, #0x3a
movs r1, #1
bl sub_080A2960
cmp r0, #0
beq _0808C742
ldrh r1, [r4, #2]
adds r0, #0x6a
strh r1, [r0]
_0808C742:
pop {r4, r5, pc}
.align 2, 0
_0808C744: .4byte gUnk_081215E8
_0808C748: .4byte gUnk_03000F50
thumb_func_start sub_0808C74C
sub_0808C74C: @ 0x0808C74C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r3, [r4, #0x50]
cmp r3, #0
beq _0808C76C
ldr r2, _0808C768 @ =gUnk_03000BF0
ldrh r0, [r3, #0x2e]
ldrh r1, [r2, #0xa]
subs r0, r0, r1
strh r0, [r4, #0x2e]
ldrh r0, [r3, #0x32]
ldrh r1, [r2, #0xc]
subs r0, r0, r1
b _0808C772
.align 2, 0
_0808C768: .4byte gUnk_03000BF0
_0808C76C:
movs r0, #0x78
strh r0, [r4, #0x2e]
movs r0, #0x50
_0808C772:
strh r0, [r4, #0x32]
adds r5, r4, #0
adds r5, #0x86
movs r1, #0
ldrsh r0, [r5, r1]
cmp r0, #0
bge _0808C79C
movs r2, #0x2e
ldrsh r0, [r4, r2]
movs r3, #0x32
ldrsh r1, [r4, r3]
movs r2, #0
movs r3, #0
bl sub_0801E49C
ldr r1, _0808C83C @ =gUnk_02036BB8
movs r0, #1
str r0, [r1]
adds r0, r4, #0
bl sub_0808C840
_0808C79C:
movs r6, #0
ldrsh r0, [r5, r6]
movs r2, #0xfa
lsls r2, r2, #1
cmp r0, r2
ble _0808C7C2
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r3, #0x32
ldrsh r1, [r4, r3]
movs r3, #0
bl sub_0801E49C
ldr r1, _0808C83C @ =gUnk_02036BB8
movs r0, #1
str r0, [r1]
adds r0, r4, #0
bl sub_0808C840
_0808C7C2:
adds r1, r4, #0
adds r1, #0x85
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r6, [r5]
adds r0, r0, r6
strh r0, [r5]
adds r0, r4, #0
adds r0, #0x84
ldrb r0, [r0]
ldrb r2, [r1]
adds r0, r0, r2
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x10
ble _0808C7E8
movs r0, #0x10
strb r0, [r1]
_0808C7E8:
movs r0, #0
ldrsb r0, [r1, r0]
movs r2, #0x10
rsbs r2, r2, #0
cmp r0, r2
bge _0808C7F6
strb r2, [r1]
_0808C7F6:
adds r3, r4, #0
adds r3, #0x83
adds r1, r4, #0
adds r1, #0x82
ldrb r0, [r1]
ldrb r6, [r3]
adds r0, r0, r6
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x81
ldrb r0, [r0]
ldrb r6, [r1]
adds r0, r0, r6
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0x10
ble _0808C81E
movs r0, #0x10
strb r0, [r1]
_0808C81E:
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, r2
bge _0808C828
strb r2, [r1]
_0808C828:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
movs r4, #0
ldrsh r2, [r5, r4]
ldrb r3, [r3]
bl sub_0801E49C
pop {r4, r5, r6, pc}
.align 2, 0
_0808C83C: .4byte gUnk_02036BB8
thumb_func_start sub_0808C840
sub_0808C840: @ 0x0808C840
push {lr}
ldr r0, _0808C854 @ =gUnk_03000F50
adds r0, #0x66
movs r1, #0
strh r1, [r0]
bl sub_0801E104
bl sub_0805E780
pop {pc}
.align 2, 0
_0808C854: .4byte gUnk_03000F50
thumb_func_start sub_0808C858
sub_0808C858: @ 0x0808C858
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0xb]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0808C878
ldr r1, _0808C870 @ =gUnk_03000F50
adds r3, r1, #0
adds r3, #0x66
ldr r0, _0808C874 @ =0x00003FBF
b _0808C880
.align 2, 0
_0808C870: .4byte gUnk_03000F50
_0808C874: .4byte 0x00003FBF
_0808C878:
ldr r1, _0808C898 @ =gUnk_03000F50
adds r3, r1, #0
adds r3, #0x66
ldr r0, _0808C89C @ =0x00003FFF
_0808C880:
strh r0, [r3]
adds r3, r1, #0
ldrb r1, [r2, #0xb]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808C8A0
adds r1, r3, #0
adds r1, #0x6a
movs r0, #0
b _0808C8A6
.align 2, 0
_0808C898: .4byte gUnk_03000F50
_0808C89C: .4byte 0x00003FFF
_0808C8A0:
adds r1, r3, #0
adds r1, #0x6a
movs r0, #0x10
_0808C8A6:
strh r0, [r1]
movs r0, #1
strb r0, [r2, #0xc]
adds r1, r2, #0
adds r1, #0x68
adds r0, #0xff
strh r0, [r1]
pop {pc}
.align 2, 0
thumb_func_start sub_0808C8B8
sub_0808C8B8: @ 0x0808C8B8
push {lr}
adds r3, r0, #0
adds r2, r3, #0
adds r2, #0x68
adds r1, r3, #0
adds r1, #0x6a
ldrh r0, [r2]
ldrh r1, [r1]
subs r0, r0, r1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bge _0808C8D6
movs r0, #0
strh r0, [r2]
_0808C8D6:
ldrb r1, [r3, #0xb]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808C8F8
ldr r0, _0808C8F4 @ =gUnk_03000F50
ldrh r1, [r2]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x10
subs r2, r2, r1
adds r0, #0x6a
strh r2, [r0]
b _0808C904
.align 2, 0
_0808C8F4: .4byte gUnk_03000F50
_0808C8F8:
ldr r1, _0808C918 @ =gUnk_03000F50
ldrh r0, [r2]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
adds r1, #0x6a
strh r0, [r1]
_0808C904:
adds r0, r3, #0
adds r0, #0x68
movs r1, #0
ldrsh r0, [r0, r1]
cmp r0, #0
bne _0808C914
bl sub_0805E780
_0808C914:
pop {pc}
.align 2, 0
_0808C918: .4byte gUnk_03000F50
thumb_func_start sub_0808C91C
sub_0808C91C: @ 0x0808C91C
push {lr}
ldr r2, _0808C930 @ =gUnk_08121668
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808C930: .4byte gUnk_08121668
thumb_func_start sub_0808C934
sub_0808C934: @ 0x0808C934
push {lr}
ldr r2, _0808C948 @ =gUnk_08121670
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808C948: .4byte gUnk_08121670
thumb_func_start sub_0808C94C
sub_0808C94C: @ 0x0808C94C
push {lr}
ldr r2, _0808C960 @ =gUnk_08121678
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808C960: .4byte gUnk_08121678
thumb_func_start sub_0808C964
sub_0808C964: @ 0x0808C964
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xa]
strb r1, [r4, #0x1e]
ldrb r0, [r4, #9]
cmp r0, #0x76
bne _0808C982
ldr r0, _0808CA08 @ =gUnk_02032EC0
adds r0, #0x20
ldrb r0, [r0]
cmp r0, #2
beq _0808C982
adds r0, r1, #0
subs r0, #9
strb r0, [r4, #0xa]
_0808C982:
ldrb r0, [r4, #0xa]
cmp r0, #4
bls _0808C996
ldr r0, _0808CA0C @ =gUnk_02033A90
ldrb r0, [r0, #0x16]
ldrb r1, [r4, #0xb]
cmp r0, r1
beq _0808C996
bl sub_0805E780
_0808C996:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x80
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
ldrb r0, [r4, #0xb]
adds r3, r4, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r0, [r4, #9]
cmp r0, #0x75
beq _0808CA04
ldrb r2, [r4, #0xa]
subs r0, r2, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bhi _0808CA04
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
movs r2, #0x80
lsls r2, r2, #1
cmp r0, #1
bne _0808C9FA
movs r2, #0xe0
_0808C9FA:
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_0808CA04:
pop {r4, pc}
.align 2, 0
_0808CA08: .4byte gUnk_02032EC0
_0808CA0C: .4byte gUnk_02033A90
thumb_func_start sub_0808CA10
sub_0808CA10: @ 0x0808CA10
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0808CA40
cmp r0, #2
bgt _0808CA24
cmp r0, #1
beq _0808CA2A
b _0808CA78
_0808CA24:
cmp r0, #3
beq _0808CA60
b _0808CA78
_0808CA2A:
ldr r2, _0808CA3C @ =gUnk_02018EB0
ldrb r0, [r2, #0x18]
cmp r0, #0
beq _0808CA78
movs r0, #0
movs r1, #0x20
strb r1, [r4, #0xe]
strb r0, [r2, #0x18]
b _0808CA50
.align 2, 0
_0808CA3C: .4byte gUnk_02018EB0
_0808CA40:
ldr r2, _0808CA5C @ =gUnk_02018EB0
ldrb r0, [r2, #0x19]
cmp r0, #0
beq _0808CA78
movs r0, #0
movs r1, #0x20
strb r1, [r4, #0xe]
strb r0, [r2, #0x19]
_0808CA50:
movs r0, #0x97
lsls r0, r0, #1
bl sub_080A3268
b _0808CA78
.align 2, 0
_0808CA5C: .4byte gUnk_02018EB0
_0808CA60:
ldr r2, _0808CABC @ =gUnk_02018EB0
ldrb r0, [r2, #0x1a]
cmp r0, #0
beq _0808CA78
movs r0, #0
movs r1, #0x20
strb r1, [r4, #0xe]
strb r0, [r2, #0x1a]
movs r0, #0x97
lsls r0, r0, #1
bl sub_080A3268
_0808CA78:
ldrb r0, [r4, #9]
cmp r0, #0x75
beq _0808CAE0
ldrb r1, [r4, #0xa]
subs r0, r1, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r5, r1, #0
cmp r0, #2
bhi _0808CAE0
ldrb r1, [r4, #0xe]
cmp r1, #0
beq _0808CAE0
subs r1, #1
strb r1, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r2, r0, #1
strb r2, [r4, #0xf]
lsls r1, r1, #0x18
cmp r1, #0
beq _0808CAC4
ldr r0, _0808CAC0 @ =gUnk_08121648
movs r1, #0xe
ands r1, r2
lsls r2, r1, #1
adds r2, r2, r0
movs r6, #0
ldrsh r3, [r2, r6]
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r0
movs r0, #0
ldrsh r2, [r1, r0]
b _0808CACA
.align 2, 0
_0808CABC: .4byte gUnk_02018EB0
_0808CAC0: .4byte gUnk_08121648
_0808CAC4:
movs r2, #0x80
lsls r2, r2, #1
adds r3, r2, #0
_0808CACA:
lsls r0, r5, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _0808CAD6
subs r3, #0x20
subs r2, #0x20
_0808CAD6:
adds r0, r4, #0
adds r1, r3, #0
movs r3, #0
bl sub_0805EC9C
_0808CAE0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808CAE4
sub_0808CAE4: @ 0x0808CAE4
push {lr}
ldr r2, _0808CAF8 @ =gUnk_08121680
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808CAF8: .4byte gUnk_08121680
thumb_func_start sub_0808CAFC
sub_0808CAFC: @ 0x0808CAFC
push {r4, lr}
adds r4, r0, #0
ldr r1, _0808CB18 @ =gUnk_08121688
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0808CB9C
pop {r4, pc}
.align 2, 0
_0808CB18: .4byte gUnk_08121688
thumb_func_start sub_0808CB1C
sub_0808CB1C: @ 0x0808CB1C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808CB70
movs r2, #1
strb r2, [r4, #0xc]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xa7
strh r0, [r4, #0x12]
movs r0, #0xd
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
adds r3, r4, #0
adds r3, #0x29
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
strb r0, [r3]
ldrb r0, [r4, #0x1b]
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r4, #0x1b]
_0808CB70:
ldr r0, [r4, #0x50]
ldr r1, [r0, #0x2c]
str r1, [r4, #0x2c]
ldr r1, [r0, #0x30]
str r1, [r4, #0x30]
movs r5, #0
str r5, [r4, #0x34]
adds r1, r4, #0
bl sub_0806FAD8
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0808CB98
adds r0, r4, #0
adds r0, #0x60
movs r1, #0
strh r5, [r0]
strb r1, [r4, #0xd]
movs r0, #4
strb r0, [r4, #0x1e]
_0808CB98:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808CB9C
sub_0808CB9C: @ 0x0808CB9C
push {r4, r5, lr}
adds r3, r0, #0
adds r0, #0x68
ldrh r1, [r0]
ldrb r4, [r0]
lsrs r5, r1, #8
movs r2, #0
ldrb r0, [r3, #0x14]
cmp r0, #4
bls _0808CBB2
movs r2, #1
_0808CBB2:
lsls r2, r2, #6
ldrb r1, [r3, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
cmp r4, #0xb7
bhi _0808CBCA
ldrb r0, [r3, #0x14]
lsrs r0, r0, #1
adds r4, r4, r0
_0808CBCA:
ldrh r0, [r3, #0x12]
cmp r5, r0
bne _0808CBDA
adds r0, r3, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r4, r0
beq _0808CBE4
_0808CBDA:
strh r5, [r3, #0x12]
adds r0, r3, #0
adds r1, r4, #0
bl sub_080042AC
_0808CBE4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808CBE8
sub_0808CBE8: @ 0x0808CBE8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r3, #4
strb r3, [r4, #0x14]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
mov r2, ip
strb r0, [r2]
ldrb r0, [r4, #0x1b]
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r4, #0x1b]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0x8a
lsls r0, r0, #1
strh r0, [r1]
subs r1, #0x10
movs r0, #0xff
strb r0, [r1]
ldr r0, _0808CC80 @ =0x0000FF50
strh r0, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x6a
strh r3, [r0]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #4
movs r2, #4
movs r3, #0
bl sub_0805EC9C
ldr r0, _0808CC84 @ =gUnk_02018EB0
str r4, [r0, #0x14]
movs r0, #0
bl sub_0807A094
adds r1, r0, #0
adds r0, r4, #0
bl sub_0801D2B4
movs r0, #0x3c
movs r1, #1
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _0808CC7C
str r4, [r0, #0x50]
str r0, [r4, #0x54]
_0808CC7C:
pop {r4, pc}
.align 2, 0
_0808CC80: .4byte 0x0000FF50
_0808CC84: .4byte gUnk_02018EB0
thumb_func_start sub_0808CC88
sub_0808CC88: @ 0x0808CC88
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x6a
ldrh r1, [r4]
ldr r0, _0808CCB8 @ =0x000003FF
cmp r1, r0
bhi _0808CCB4
adds r0, r1, #4
strh r0, [r4]
ldrh r2, [r4]
adds r0, r5, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
ldrh r1, [r4]
adds r0, r5, #0
movs r2, #8
movs r3, #2
bl sub_0806FCF4
_0808CCB4:
pop {r4, r5, pc}
.align 2, 0
_0808CCB8: .4byte 0x000003FF
thumb_func_start sub_0808CCBC
sub_0808CCBC: @ 0x0808CCBC
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
movs r1, #0x80
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0808CCFA
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x14
strb r0, [r4, #0x15]
adds r0, #0xec
strh r0, [r4, #0x24]
movs r0, #0xc0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
ldr r0, [r4, #0x54]
movs r1, #1
strb r1, [r0, #0xd]
ldr r0, _0808CCFC @ =gUnk_02018EB0
strb r1, [r0, #0x18]
_0808CCFA:
pop {r4, pc}
.align 2, 0
_0808CCFC: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD00
sub_0808CD00: @ 0x0808CD00
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
adds r0, r4, #0
bl sub_080042B8
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _0808CD24
adds r0, r4, #0
bl sub_0806F69C
b _0808CD3E
_0808CD24:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xa
strb r0, [r4, #0x15]
movs r0, #0xc0
strh r0, [r4, #0x24]
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldr r1, _0808CD40 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x19]
_0808CD3E:
pop {r4, pc}
.align 2, 0
_0808CD40: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD44
sub_0808CD44: @ 0x0808CD44
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
adds r0, r4, #0
bl sub_080042B8
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _0808CD68
adds r0, r4, #0
bl sub_0806F69C
b _0808CD82
_0808CD68:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x11
strb r0, [r4, #0x15]
adds r0, #0xef
strh r0, [r4, #0x24]
movs r0, #0x90
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldr r1, _0808CD84 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1a]
_0808CD82:
pop {r4, pc}
.align 2, 0
_0808CD84: .4byte gUnk_02018EB0
thumb_func_start sub_0808CD88
sub_0808CD88: @ 0x0808CD88
push {r4, lr}
adds r4, r0, #0
bl sub_0808CC88
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
beq _0808CDB8
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x7f
bgt _0808CDD6
movs r0, #0x80
strh r0, [r4, #0x2e]
b _0808CDD6
_0808CDB8:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x68
ldr r0, _0808CDD8 @ =0x00000C04
strh r0, [r1]
ldr r0, [r4, #0x54]
bl sub_0805E7BC
adds r0, r4, #0
bl sub_0805EC60
_0808CDD6:
pop {r4, pc}
.align 2, 0
_0808CDD8: .4byte 0x00000C04
thumb_func_start sub_0808CDDC
sub_0808CDDC: @ 0x0808CDDC
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808CDF6
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
movs r0, #0x10
strb r0, [r1, #0xe]
_0808CDF6:
pop {pc}
thumb_func_start sub_0808CDF8
sub_0808CDF8: @ 0x0808CDF8
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808CE2C
ldr r0, _0808CE30 @ =gUnk_02033A90
ldrb r1, [r0, #0x16]
ldrb r0, [r3, #0xc]
adds r0, #1
adds r0, r0, r1
strb r0, [r3, #0xc]
ldr r2, _0808CE34 @ =gUnk_081216B4
lsls r1, r1, #1
adds r0, r1, r2
ldrb r0, [r0]
strb r0, [r3, #0x14]
adds r1, #1
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r3, #0x15]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r3, #0x24]
_0808CE2C:
pop {pc}
.align 2, 0
_0808CE30: .4byte gUnk_02033A90
_0808CE34: .4byte gUnk_081216B4
thumb_func_start sub_0808CE38
sub_0808CE38: @ 0x0808CE38
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CE52
movs r0, #0x18
strb r0, [r4, #0x15]
_0808CE52:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0x2f
bgt _0808CE60
ldr r1, _0808CE64 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CE60:
pop {r4, pc}
.align 2, 0
_0808CE64: .4byte gUnk_02018EB0
thumb_func_start sub_0808CE68
sub_0808CE68: @ 0x0808CE68
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CE82
movs r0, #8
strb r0, [r4, #0x15]
_0808CE82:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xd0
ble _0808CE90
ldr r1, _0808CE94 @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CE90:
pop {r4, pc}
.align 2, 0
_0808CE94: .4byte gUnk_02018EB0
thumb_func_start sub_0808CE98
sub_0808CE98: @ 0x0808CE98
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r0, #0x32
ldrsh r1, [r4, r0]
movs r0, #0x90
lsls r0, r0, #1
cmp r1, r0
ble _0808CEB8
ldr r1, _0808CEBC @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CEB8:
pop {r4, pc}
.align 2, 0
_0808CEBC: .4byte gUnk_02018EB0
thumb_func_start sub_0808CEC0
sub_0808CEC0: @ 0x0808CEC0
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x32
ldrsh r0, [r4, r1]
cmp r0, #0xc7
bgt _0808CEDA
movs r0, #0x18
strb r0, [r4, #0x15]
_0808CEDA:
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r0, #0xf
bgt _0808CEE8
ldr r1, _0808CEEC @ =gUnk_02018EB0
movs r0, #1
strb r0, [r1, #0x1b]
_0808CEE8:
pop {r4, pc}
.align 2, 0
_0808CEEC: .4byte gUnk_02018EB0
thumb_func_start sub_0808CEF0
sub_0808CEF0: @ 0x0808CEF0
push {lr}
ldr r2, _0808CF04 @ =gUnk_081216BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808CF04: .4byte gUnk_081216BC
thumb_func_start sub_0808CF08
sub_0808CF08: @ 0x0808CF08
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0808CF50 @ =gUnk_02033A90
ldr r3, _0808CF54 @ =gUnk_03000BF0
ldrh r0, [r2, #0x12]
ldrh r1, [r3, #0xa]
subs r0, r0, r1
strh r0, [r4, #0x2e]
ldrh r0, [r2, #0x14]
ldrh r1, [r3, #0xc]
subs r0, r0, r1
strh r0, [r4, #0x32]
adds r5, r4, #0
adds r5, #0x68
movs r0, #0x80
strh r0, [r5]
ldrb r1, [r4, #0x11]
subs r0, #0x90
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
ldr r0, _0808CF58 @ =0x00001F17
movs r1, #0
bl sub_0801E1B8
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r5]
bl sub_0801E1EC
pop {r4, r5, pc}
.align 2, 0
_0808CF50: .4byte gUnk_02033A90
_0808CF54: .4byte gUnk_03000BF0
_0808CF58: .4byte 0x00001F17
thumb_func_start sub_0808CF5C
sub_0808CF5C: @ 0x0808CF5C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r2, r5, #0
adds r2, #0x68
ldrh r0, [r2]
subs r0, #2
strh r0, [r2]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x14
bls _0808CF82
movs r1, #0x2e
ldrsh r0, [r5, r1]
movs r3, #0x32
ldrsh r1, [r5, r3]
ldrh r2, [r2]
bl sub_0801E1EC
b _0808D01E
_0808CF82:
ldr r0, _0808D020 @ =gUnk_03000F50
adds r0, #0x62
movs r1, #0x10
strh r1, [r0]
bl sub_0808D030
movs r0, #0
bl sub_0801CFA8
bl sub_080ADD30
ldr r0, _0808D024 @ =gUnk_02024490
movs r6, #1
strb r6, [r0]
ldrb r0, [r5, #0xa]
lsls r4, r0, #1
adds r4, r4, r0
lsls r4, r4, #1
ldr r0, _0808D028 @ =gUnk_081216C8
adds r4, r4, r0
ldrh r1, [r4]
adds r0, r5, #0
bl sub_080ADF80
ldrh r1, [r4, #2]
adds r0, r5, #0
bl sub_0801D040
ldrh r0, [r4, #4]
strh r0, [r5, #0x12]
ldrb r0, [r5, #0xa]
cmp r0, #2
bne _0808CFC6
strb r0, [r5, #0x1e]
_0808CFC6:
movs r2, #2
movs r0, #2
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #6
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r2, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r5, #0x19]
ands r1, r0
strb r1, [r5, #0x19]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
movs r0, #0x1e
strb r0, [r5, #0xe]
movs r0, #0xff
strb r0, [r5, #0xf]
ldrb r0, [r5, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r5, #0x19]
movs r2, #0x80
lsls r2, r2, #1
adds r0, r5, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
ldr r0, _0808D02C @ =gUnk_02033A90
strh r6, [r0, #0x10]
movs r0, #5
movs r1, #8
bl sub_08050054
_0808D01E:
pop {r4, r5, r6, pc}
.align 2, 0
_0808D020: .4byte gUnk_03000F50
_0808D024: .4byte gUnk_02024490
_0808D028: .4byte gUnk_081216C8
_0808D02C: .4byte gUnk_02033A90
thumb_func_start sub_0808D030
sub_0808D030: @ 0x0808D030
push {r4, r5, lr}
ldr r4, _0808D058 @ =gUnk_03000020
movs r5, #0x80
adds r0, r4, #0
subs r0, #0x20
ldr r1, _0808D05C @ =0x00000B74
bl sub_0801D630
movs r1, #0xa8
lsls r1, r1, #2
adds r0, r1, #0
_0808D046:
strh r0, [r4]
adds r4, #8
subs r5, #1
cmp r5, #0
bne _0808D046
ldr r1, _0808D060 @ =gUnk_03000000
movs r0, #1
strb r0, [r1]
pop {r4, r5, pc}
.align 2, 0
_0808D058: .4byte gUnk_03000020
_0808D05C: .4byte 0x00000B74
_0808D060: .4byte gUnk_03000000
thumb_func_start sub_0808D064
sub_0808D064: @ 0x0808D064
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
adds r1, r0, #0
adds r1, #0xff
strb r1, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #0
beq _0808D0B4
adds r0, r4, #0
adds r0, #0x68
ldrh r3, [r0]
adds r1, r3, #0
adds r2, r0, #0
cmp r1, #0
beq _0808D08C
subs r0, r3, #2
strh r0, [r2]
b _0808D08E
_0808D08C:
strh r1, [r2]
_0808D08E:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r3, #0x32
ldrsh r1, [r4, r3]
ldrh r2, [r2]
bl sub_0801E1EC
ldrb r0, [r4, #0xf]
cmp r0, #0x80
bls _0808D0A6
subs r0, #8
strb r0, [r4, #0xf]
_0808D0A6:
ldrb r2, [r4, #0xf]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0808D0C2
_0808D0B4:
ldr r1, _0808D0C4 @ =gUnk_02033A90
ldrb r0, [r1, #0xe]
adds r0, #1
strb r0, [r1, #0xe]
strh r2, [r1, #0x10]
bl sub_0805E780
_0808D0C2:
pop {r4, pc}
.align 2, 0
_0808D0C4: .4byte gUnk_02033A90
thumb_func_start sub_0808D0C8
sub_0808D0C8: @ 0x0808D0C8
push {lr}
ldr r2, _0808D0DC @ =gUnk_081216DC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808D0DC: .4byte gUnk_081216DC
thumb_func_start sub_0808D0E0
sub_0808D0E0: @ 0x0808D0E0
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r6, [r5, #0xc]
cmp r6, #1
beq _0808D12C
cmp r6, #1
bgt _0808D0F4
cmp r6, #0
beq _0808D0FA
b _0808D192
_0808D0F4:
cmp r6, #2
beq _0808D150
b _0808D192
_0808D0FA:
movs r4, #1
strb r4, [r5, #0xc]
bl sub_08000E50
movs r1, #0x1f
ands r0, r1
movs r1, #0x40
subs r1, r1, r0
strb r1, [r5, #0xe]
strb r6, [r5, #0x1e]
strb r6, [r5, #0x14]
ldrb r0, [r5, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r5, #0x19]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x38
strb r4, [r0]
b _0808D192
_0808D12C:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D192
movs r0, #8
strb r0, [r5, #0xe]
movs r0, #4
strb r0, [r5, #0xf]
movs r0, #2
strb r0, [r5, #0xc]
bl sub_08000E50
movs r1, #3
ands r0, r1
strb r0, [r5, #0x14]
b _0808D192
_0808D150:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D192
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
ands r0, r1
cmp r0, #0
bne _0808D180
strb r0, [r5, #0x1e]
movs r0, #1
strb r0, [r5, #0xc]
bl sub_08000E50
movs r1, #0x1f
ands r0, r1
movs r1, #0x40
subs r1, r1, r0
strb r1, [r5, #0xe]
b _0808D192
_0808D180:
movs r0, #8
strb r0, [r5, #0xe]
ldrb r1, [r5, #0x14]
ldrb r0, [r5, #0x1e]
movs r2, #0
cmp r0, r1
beq _0808D190
adds r2, r1, #0
_0808D190:
strb r2, [r5, #0x1e]
_0808D192:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808D194
sub_0808D194: @ 0x0808D194
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xc]
cmp r1, #1
beq _0808D234
cmp r1, #1
bgt _0808D1A8
cmp r1, #0
beq _0808D1AE
b _0808D234
_0808D1A8:
cmp r1, #2
beq _0808D1FC
b _0808D234
_0808D1AE:
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #8
strb r0, [r5, #0xe]
strb r1, [r5, #0xf]
strb r1, [r5, #0x1e]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r0, _0808D1F4 @ =0x00004069
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808D1F8 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
subs r1, #0x40
movs r2, #1
bl sub_0800015E
b _0808D234
.align 2, 0
_0808D1F4: .4byte 0x00004069
_0808D1F8: .4byte gUnk_03000BF0
_0808D1FC:
ldr r0, _0808D274 @ =gUnk_030010A0
ldr r3, [r0]
movs r0, #3
ands r3, r0
cmp r3, #0
bne _0808D234
ldr r4, _0808D278 @ =gUnk_03000F50
ldrb r2, [r5, #0xd]
lsls r1, r2, #8
movs r0, #0x10
subs r0, r0, r2
orrs r1, r0
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
ldrb r0, [r5, #0xd]
adds r0, #1
strb r0, [r5, #0xd]
lsls r1, r1, #0x10
movs r0, #0x80
lsls r0, r0, #0x15
cmp r1, r0
bne _0808D234
adds r0, r4, #0
adds r0, #0x66
strh r3, [r0]
bl sub_0805E780
_0808D234:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D272
movs r0, #8
strb r0, [r5, #0xe]
ldrb r0, [r5, #0xa]
cmp r0, #9
bne _0808D24E
movs r0, #2
strb r0, [r5, #0xe]
_0808D24E:
ldr r4, _0808D27C @ =gUnk_08121704
ldrb r0, [r5, #0xf]
adds r1, r0, #1
strb r1, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r4
ldrh r1, [r0]
adds r0, r5, #0
bl sub_0801D2B4
ldrb r0, [r5, #0xf]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0808D272
strb r0, [r5, #0xf]
_0808D272:
pop {r4, r5, r6, pc}
.align 2, 0
_0808D274: .4byte gUnk_030010A0
_0808D278: .4byte gUnk_03000F50
_0808D27C: .4byte gUnk_08121704
thumb_func_start sub_0808D280
sub_0808D280: @ 0x0808D280
push {r4, lr}
sub sp, #4
movs r4, #0
str r4, [sp]
movs r0, #6
movs r1, #0x3e
movs r2, #6
movs r3, #9
bl sub_0805EB2C
adds r2, r0, #0
cmp r2, #0
beq _0808D2C4
movs r0, #2
strb r0, [r2, #0xc]
strb r4, [r2, #0xd]
ldrb r1, [r2, #0x19]
subs r0, #0xf
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2, #0x19]
ldr r1, _0808D2C8 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x68
movs r0, #0x10
strh r0, [r1]
movs r0, #0xf6
bl sub_080A3268
_0808D2C4:
add sp, #4
pop {r4, pc}
.align 2, 0
_0808D2C8: .4byte gUnk_03000F50
thumb_func_start sub_0808D2CC
sub_0808D2CC: @ 0x0808D2CC
push {lr}
sub sp, #4
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x3e
movs r2, #6
movs r3, #1
bl sub_0805EB2C
adds r1, r0, #0
cmp r1, #0
beq _0808D2F2
movs r0, #9
strb r0, [r1, #0xa]
adds r0, r1, #0
movs r1, #2
bl sub_0805E3A0
_0808D2F2:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start nullsub_521
nullsub_521: @ 0x0808D2F8
bx lr
.align 2, 0
thumb_func_start sub_0808D2FC
sub_0808D2FC: @ 0x0808D2FC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808D31C
strb r0, [r4, #0xc]
strb r0, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0807DD64
_0808D31C:
movs r0, #0x2e
ldrsh r5, [r4, r0]
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
ldr r0, _0808D354 @ =gUnk_03000BF0
ldrh r0, [r0, #0x16]
cmp r0, #0
beq _0808D350
movs r1, #0x2e
ldrsh r0, [r4, r1]
cmp r5, r0
beq _0808D350
ldr r0, _0808D358 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #8
ands r0, r1
cmp r0, #0
bne _0808D350
ldr r0, _0808D35C @ =0x0000010F
bl sub_080A3268
_0808D350:
pop {r4, r5, pc}
.align 2, 0
_0808D354: .4byte gUnk_03000BF0
_0808D358: .4byte gUnk_030010A0
_0808D35C: .4byte 0x0000010F
thumb_func_start sub_0808D360
sub_0808D360: @ 0x0808D360
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808D382
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0807DD64
_0808D382:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808D394
sub_0808D394: @ 0x0808D394
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _0808D3C4
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #8
strb r0, [r5, #0xe]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r1, _0808D3FC @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x68
ldr r0, _0808D400 @ =0x00001003
strh r0, [r1]
_0808D3C4:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D3F8
movs r0, #2
strb r0, [r5, #0xe]
ldr r4, _0808D404 @ =gUnk_08121720
ldrb r0, [r5, #0xf]
adds r1, r0, #1
strb r1, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r4
ldrh r1, [r0]
adds r0, r5, #0
bl sub_0801D28C
ldrb r0, [r5, #0xf]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0808D3F8
strb r0, [r5, #0xf]
_0808D3F8:
pop {r4, r5, pc}
.align 2, 0
_0808D3FC: .4byte gUnk_03000F50
_0808D400: .4byte 0x00001003
_0808D404: .4byte gUnk_08121720
thumb_func_start sub_0808D408
sub_0808D408: @ 0x0808D408
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xc]
cmp r0, #0
bne _0808D458
movs r1, #1
strb r1, [r3, #0xc]
ldrb r0, [r3, #0x19]
movs r2, #0xc0
orrs r0, r2
strb r0, [r3, #0x19]
movs r0, #0x29
adds r0, r0, r3
mov ip, r0
ldrb r0, [r0]
movs r2, #7
orrs r0, r2
mov r2, ip
strb r0, [r2]
ldrb r2, [r3, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r2
movs r2, #4
orrs r0, r2
strb r0, [r3, #0x19]
ldrb r0, [r3, #0xb]
strb r0, [r3, #0x1e]
ldrb r0, [r3, #0xb]
subs r1, r1, r0
lsls r1, r1, #9
movs r0, #0x80
lsls r0, r0, #1
adds r1, r1, r0
movs r2, #0xc0
rsbs r2, r2, #0
adds r0, r3, #0
movs r3, #0
bl sub_0805EC9C
_0808D458:
pop {pc}
.align 2, 0
thumb_func_start sub_0808D45C
sub_0808D45C: @ 0x0808D45C
push {lr}
ldr r2, _0808D470 @ =gUnk_0812172C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808D470: .4byte gUnk_0812172C
thumb_func_start sub_0808D474
sub_0808D474: @ 0x0808D474
push {r4, r5, lr}
adds r5, r0, #0
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r5, #0xb]
strb r0, [r5, #0x1e]
movs r1, #2
strb r1, [r5, #0xc]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D4D4
movs r0, #0x7c
bl sub_0807CBD0
adds r1, r0, #0
cmp r1, #0
bne _0808D4D4
movs r0, #1
strb r0, [r5, #0xc]
strb r1, [r5, #0xe]
ldrb r1, [r5, #0x19]
subs r0, #0xe
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r5, #0x19]
ldr r1, _0808D4CC @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x68
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
ldr r0, _0808D4D0 @ =0x00000179
bl sub_080A3268
b _0808D50E
.align 2, 0
_0808D4CC: .4byte gUnk_03000F50
_0808D4D0: .4byte 0x00000179
_0808D4D4:
movs r0, #8
strb r0, [r5, #0xe]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r3, _0808D510 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r5, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0808D500
subs r4, #0x40
_0808D500:
ldr r0, _0808D514 @ =0x00004069
adds r1, r5, #0
adds r1, #0x38
ldrb r2, [r1]
adds r1, r4, #0
bl sub_0800015E
_0808D50E:
pop {r4, r5, pc}
.align 2, 0
_0808D510: .4byte gUnk_03000BF0
_0808D514: .4byte 0x00004069
thumb_func_start sub_0808D518
sub_0808D518: @ 0x0808D518
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _0808D58C @ =gUnk_030010A0
ldr r2, [r0]
movs r0, #3
ands r2, r0
cmp r2, #0
bne _0808D58A
ldr r3, _0808D590 @ =gUnk_03000F50
ldrb r0, [r5, #0xe]
movs r1, #0x10
subs r1, r1, r0
lsls r1, r1, #8
orrs r1, r0
adds r0, r3, #0
adds r0, #0x68
strh r1, [r0]
ldrb r0, [r5, #0xe]
adds r0, #1
strb r0, [r5, #0xe]
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
cmp r1, #0x10
bne _0808D58A
movs r0, #2
strb r0, [r5, #0xc]
movs r0, #8
strb r0, [r5, #0xe]
ldrb r1, [r5, #0x19]
subs r0, #0x15
ands r0, r1
strb r0, [r5, #0x19]
adds r0, r3, #0
adds r0, #0x66
strh r2, [r0]
ldr r0, _0808D594 @ =0x00004069
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0808D598 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_0808D58A:
pop {r4, r5, r6, pc}
.align 2, 0
_0808D58C: .4byte gUnk_030010A0
_0808D590: .4byte gUnk_03000F50
_0808D594: .4byte 0x00004069
_0808D598: .4byte gUnk_03000BF0
thumb_func_start sub_0808D59C
sub_0808D59C: @ 0x0808D59C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D5D4
movs r0, #8
strb r0, [r5, #0xe]
ldr r4, _0808D5D8 @ =gUnk_08121738
ldrb r0, [r5, #0xf]
adds r1, r0, #1
strb r1, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r4
ldrh r1, [r0]
adds r0, r5, #0
bl sub_0801D2B4
ldrb r0, [r5, #0xf]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
cmp r0, #0
bne _0808D5D4
strb r0, [r5, #0xf]
_0808D5D4:
pop {r4, r5, pc}
.align 2, 0
_0808D5D8: .4byte gUnk_08121738
thumb_func_start sub_0808D5DC
sub_0808D5DC: @ 0x0808D5DC
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xc]
cmp r0, #0
bne _0808D614
movs r2, #1
movs r0, #1
strb r0, [r3, #0xc]
ldrb r1, [r3, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
ldrb r0, [r3, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r3, #0x19]
adds r2, r3, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r3, #0xa]
strb r0, [r3, #0x1e]
adds r0, r3, #0
bl sub_0808D618
_0808D614:
pop {pc}
.align 2, 0
thumb_func_start sub_0808D618
sub_0808D618: @ 0x0808D618
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
ldr r7, _0808D664 @ =gUnk_08121750
cmp r0, #0
beq _0808D626
ldr r7, _0808D668 @ =gUnk_0812176A
_0808D626:
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _0808D66C @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r5, r0, #4
movs r2, #0x3f
ands r5, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
movs r6, #0
adds r4, r7, #0
_0808D64A:
movs r0, #0
ldrsh r1, [r4, r0]
adds r1, r5, r1
ldr r0, _0808D670 @ =0x00004074
movs r2, #1
bl sub_0800015E
adds r4, #2
adds r6, #1
cmp r6, #0xc
bls _0808D64A
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808D664: .4byte gUnk_08121750
_0808D668: .4byte gUnk_0812176A
_0808D66C: .4byte gUnk_03000BF0
_0808D670: .4byte 0x00004074
thumb_func_start sub_0808D674
sub_0808D674: @ 0x0808D674
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808D750
movs r0, #0x7f
ands r0, r1
cmp r0, #0x1f
bhi _0808D750
lsls r0, r0, #2
ldr r1, _0808D698 @ =_0808D69C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0808D698: .4byte _0808D69C
_0808D69C: @ jump table
.4byte _0808D740 @ case 0
.4byte _0808D740 @ case 1
.4byte _0808D750 @ case 2
.4byte _0808D750 @ case 3
.4byte _0808D740 @ case 4
.4byte _0808D740 @ case 5
.4byte _0808D740 @ case 6
.4byte _0808D750 @ case 7
.4byte _0808D740 @ case 8
.4byte _0808D740 @ case 9
.4byte _0808D740 @ case 10
.4byte _0808D740 @ case 11
.4byte _0808D740 @ case 12
.4byte _0808D750 @ case 13
.4byte _0808D750 @ case 14
.4byte _0808D750 @ case 15
.4byte _0808D750 @ case 16
.4byte _0808D750 @ case 17
.4byte _0808D750 @ case 18
.4byte _0808D748 @ case 19
.4byte _0808D71C @ case 20
.4byte _0808D750 @ case 21
.4byte _0808D750 @ case 22
.4byte _0808D750 @ case 23
.4byte _0808D750 @ case 24
.4byte _0808D750 @ case 25
.4byte _0808D750 @ case 26
.4byte _0808D750 @ case 27
.4byte _0808D750 @ case 28
.4byte _0808D750 @ case 29
.4byte _0808D740 @ case 30
.4byte _0808D73C @ case 31
_0808D71C:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, [r4, #0x4c]
str r0, [r4, #0x54]
b _0808D750
_0808D73C:
bl sub_0805E780
_0808D740:
adds r0, r4, #0
bl sub_0808DAD0
b _0808D750
_0808D748:
adds r0, r4, #0
bl sub_0808D76C
b _0808D766
_0808D750:
ldr r0, _0808D768 @ =gUnk_08121784
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08080CB4
_0808D766:
pop {r4, pc}
.align 2, 0
_0808D768: .4byte gUnk_08121784
thumb_func_start sub_0808D76C
sub_0808D76C: @ 0x0808D76C
push {lr}
ldr r2, _0808D780 @ =gUnk_08121798
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808D780: .4byte gUnk_08121798
thumb_func_start sub_0808D784
sub_0808D784: @ 0x0808D784
movs r3, #1
movs r1, #1
strb r1, [r0, #0xd]
strb r1, [r0, #0x1d]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
bx lr
thumb_func_start sub_0808D798
sub_0808D798: @ 0x0808D798
push {lr}
bl sub_0806F4E8
pop {pc}
thumb_func_start sub_0808D7A0
sub_0808D7A0: @ 0x0808D7A0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F3E4
cmp r0, #0
beq _0808D7B2
adds r0, r4, #0
bl sub_0808DB2C
_0808D7B2:
pop {r4, pc}
thumb_func_start sub_0808D7B4
sub_0808D7B4: @ 0x0808D7B4
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3c
movs r2, #0x17
strb r2, [r0]
adds r1, #8
movs r0, #0x49
strb r0, [r1]
subs r1, #1
movs r0, #7
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3b
strb r2, [r0]
adds r1, #6
movs r0, #0xff
strb r0, [r1]
ldr r0, _0808D818 @ =gUnk_080FD1A8
str r0, [r4, #0x48]
movs r0, #1
strb r0, [r4, #0x1c]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x76
strh r0, [r1]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
movs r0, #0x9b
lsls r0, r0, #1
bl sub_08004488
ldrb r0, [r4, #0xb]
cmp r0, #2
beq _0808D834
cmp r0, #2
bgt _0808D81C
cmp r0, #0
beq _0808D822
b _0808D82E
.align 2, 0
_0808D818: .4byte gUnk_080FD1A8
_0808D81C:
cmp r0, #3
beq _0808D83C
b _0808D82E
_0808D822:
movs r0, #0xf0
lsls r0, r0, #9
str r0, [r4, #0x20]
ldrh r0, [r4, #0x36]
adds r0, #8
strh r0, [r4, #0x36]
_0808D82E:
movs r0, #1
strb r0, [r4, #0xc]
b _0808D842
_0808D834:
adds r0, r4, #0
bl sub_0808DAD0
b _0808D842
_0808D83C:
adds r0, r4, #0
bl sub_0808DB2C
_0808D842:
pop {r4, pc}
thumb_func_start sub_0808D844
sub_0808D844: @ 0x0808D844
push {lr}
adds r3, r0, #0
ldr r0, [r3, #0x34]
ldr r1, _0808D870 @ =0xFFFF2000
adds r0, r0, r1
str r0, [r3, #0x34]
adds r0, r3, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _0808D88A
ldrb r0, [r3, #0xe]
cmp r0, #0
beq _0808D874
adds r2, r3, #0
adds r2, #0x78
ldrh r1, [r2]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
strh r0, [r2]
b _0808D87E
.align 2, 0
_0808D870: .4byte 0xFFFF2000
_0808D874:
adds r1, r3, #0
adds r1, #0x78
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
_0808D87E:
movs r0, #2
strb r0, [r3, #0xc]
movs r0, #1
strb r0, [r3, #0xf]
movs r0, #0x80
strh r0, [r3, #0x24]
_0808D88A:
pop {pc}
thumb_func_start sub_0808D88C
sub_0808D88C: @ 0x0808D88C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808D910
bl sub_08000E50
adds r5, r0, #0
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x20
strb r0, [r4, #0xf]
ldr r2, _0808D8D0 @ =gUnk_081217A4
lsrs r0, r5, #8
movs r1, #1
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0808DAA0
cmp r0, #0
beq _0808D8D4
movs r0, #0x1f
ands r5, r0
strb r5, [r4, #0x15]
b _0808D8EE
.align 2, 0
_0808D8D0: .4byte gUnk_081217A4
_0808D8D4:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r2, r4, #0
adds r2, #0x74
ldrh r2, [r2]
adds r3, r4, #0
adds r3, #0x76
ldrh r3, [r3]
bl sub_080045D4
strb r0, [r4, #0x15]
_0808D8EE:
ldrb r1, [r4, #0x15]
movs r0, #0xf
ands r0, r1
cmp r0, #0
beq _0808D910
movs r0, #0x10
eors r1, r0
lsrs r1, r1, #4
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0808D910:
adds r0, r4, #0
bl sub_080AEFB4
bl sub_0805E40C
cmp r0, #0
bne _0808D954
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808D954
adds r5, r4, #0
adds r5, #0x78
ldrh r0, [r5]
subs r0, #1
strh r0, [r5]
lsls r0, r0, #0x10
cmp r0, #0
bne _0808D93C
adds r0, r4, #0
movs r1, #0
bl sub_08081404
_0808D93C:
ldrh r0, [r5]
cmp r0, #0x77
bhi _0808D954
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0808D954:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808D958
sub_0808D958: @ 0x0808D958
push {r4, lr}
adds r4, r0, #0
ldr r2, [r4, #0x54]
ldrh r1, [r2, #8]
movs r0, #0xc2
lsls r0, r0, #2
cmp r1, r0
beq _0808D972
adds r0, r4, #0
movs r1, #0
bl sub_08081404
b _0808D992
_0808D972:
adds r0, r2, #0
adds r1, r4, #0
bl sub_0806FA24
ldrh r0, [r4, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
ldr r1, _0808D994 @ =gLinkEntity
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _0808D992
adds r0, r4, #0
bl sub_0808DB2C
_0808D992:
pop {r4, pc}
.align 2, 0
_0808D994: .4byte gLinkEntity
thumb_func_start sub_0808D998
sub_0808D998: @ 0x0808D998
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r6, [r5, #0x54]
ldr r2, _0808DA28 @ =gUnk_080C9160
ldrb r0, [r5, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
cmp r0, #0
bge _0808D9B8
ldr r1, _0808DA2C @ =0x0000FFFF
adds r0, r0, r1
_0808D9B8:
asrs r0, r0, #0x10
ldrh r3, [r6, #0x2e]
adds r0, r0, r3
strh r0, [r5, #0x2e]
ldrb r0, [r5, #0xe]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r2
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #8
cmp r0, #0
bge _0808D9DA
ldr r3, _0808DA2C @ =0x0000FFFF
adds r0, r0, r3
_0808D9DA:
asrs r1, r0, #0x10
ldrh r0, [r6, #0x32]
subs r0, r0, r1
strh r0, [r5, #0x32]
ldrb r3, [r5, #0xe]
adds r0, r3, #0
adds r0, #8
strb r0, [r5, #0xe]
ldrh r0, [r6, #0x36]
strh r0, [r5, #0x36]
ldrb r2, [r6, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r4, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r4
orrs r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r6, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x19]
subs r3, #0x39
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
cmp r3, #0x7e
bhi _0808DA30
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #3
b _0808DA3E
.align 2, 0
_0808DA28: .4byte gUnk_080C9160
_0808DA2C: .4byte 0x0000FFFF
_0808DA30:
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #5
_0808DA3E:
orrs r1, r0
strb r1, [r2]
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
adds r4, r5, #0
adds r4, #0x63
cmp r0, #0
bne _0808DA70
movs r0, #6
strb r0, [r5, #0xf]
ldrb r0, [r4]
subs r0, #1
strb r0, [r4]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0x16
rsbs r1, r1, #0
cmp r0, r1
bge _0808DA70
adds r0, r5, #0
movs r1, #1
bl sub_08081404
_0808DA70:
movs r1, #0
ldrsb r1, [r4, r1]
movs r0, #0x11
rsbs r0, r0, #0
cmp r1, r0
bge _0808DA8E
ldrb r2, [r5, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
_0808DA8E:
adds r1, r5, #0
adds r1, #0x87
ldrb r0, [r1]
cmp r0, #0xa
bls _0808DA9C
movs r0, #0xa
strb r0, [r1]
_0808DA9C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808DAA0
sub_0808DAA0: @ 0x0808DAA0
push {lr}
adds r2, r0, #0
movs r1, #0x2e
ldrsh r0, [r2, r1]
adds r1, r2, #0
adds r1, #0x74
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #0x30
cmp r0, #0x60
bhi _0808DACC
movs r1, #0x32
ldrsh r0, [r2, r1]
adds r1, r2, #0
adds r1, #0x76
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #0x30
cmp r0, #0x60
bhi _0808DACC
movs r0, #1
b _0808DACE
_0808DACC:
movs r0, #0
_0808DACE:
pop {pc}
thumb_func_start sub_0808DAD0
sub_0808DAD0: @ 0x0808DAD0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _0808DAE0
bl sub_0805E780
_0808DAE0:
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x80
strb r0, [r4, #0xe]
movs r0, #6
strb r0, [r4, #0xf]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xfb
strb r0, [r1]
ldr r0, _0808DB28 @ =gLinkEntity
str r0, [r4, #0x54]
adds r1, r4, #0
bl sub_0806FA24
pop {r4, pc}
.align 2, 0
_0808DB28: .4byte gLinkEntity
thumb_func_start sub_0808DB2C
sub_0808DB2C: @ 0x0808DB2C
push {lr}
adds r1, r0, #0
movs r2, #0
movs r0, #2
strb r0, [r1, #0xc]
strb r2, [r1, #0xd]
ldrb r2, [r1, #0x10]
movs r0, #0x80
orrs r0, r2
strb r0, [r1, #0x10]
adds r2, r1, #0
adds r2, #0x3b
movs r0, #1
strb r0, [r2]
ldr r0, _0808DB50 @ =gLinkEntity
bl sub_0806FA24
pop {pc}
.align 2, 0
_0808DB50: .4byte gLinkEntity
thumb_func_start sub_0808DB54
sub_0808DB54: @ 0x0808DB54
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
ldrb r0, [r7, #0xc]
cmp r0, #1
beq _0808DBE8
cmp r0, #1
bgt _0808DB6C
cmp r0, #0
beq _0808DB72
b _0808DC46
_0808DB6C:
cmp r0, #2
beq _0808DC2C
b _0808DC46
_0808DB72:
ldrb r0, [r7, #0xe]
movs r1, #3
cmp r0, #0
beq _0808DB7C
movs r1, #1
_0808DB7C:
strb r1, [r7, #0xc]
adds r1, r7, #0
adds r1, #0x63
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
adds r0, r7, #0
movs r1, #0xa
bl sub_08004260
ldrb r0, [r7, #0xc]
cmp r0, #1
bne _0808DB9A
ldr r0, _0808DBDC @ =0x0000FF80
strh r0, [r7, #0x36]
_0808DB9A:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _0808DBA2
b _0808DD72
_0808DBA2:
ldrh r1, [r7, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
adds r0, #0xc
strh r0, [r7, #0x32]
ldr r0, _0808DBE0 @ =0x00004023
movs r2, #0x2e
ldrsh r1, [r7, r2]
ldr r3, _0808DBE4 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r5, #0x32
ldrsh r2, [r7, r5]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r7, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
b _0808DD72
.align 2, 0
_0808DBDC: .4byte 0x0000FF80
_0808DBE0: .4byte 0x00004023
_0808DBE4: .4byte gUnk_03000BF0
_0808DBE8:
movs r1, #0x80
lsls r1, r1, #5
adds r0, r7, #0
bl sub_08003FC4
cmp r0, #0
beq _0808DBF8
b _0808DD72
_0808DBF8:
adds r0, r7, #0
movs r1, #0x46
movs r2, #0x40
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0808DC0E
ldrh r0, [r1, #0x32]
adds r0, #8
strh r0, [r1, #0x32]
_0808DC0E:
movs r0, #0x1e
movs r1, #0
bl sub_08080964
ldr r0, _0808DC28 @ =0x0000010B
bl sub_080A3268
movs r0, #2
strb r0, [r7, #0xc]
movs r0, #0x3c
strb r0, [r7, #0xe]
b _0808DD72
.align 2, 0
_0808DC28: .4byte 0x0000010B
_0808DC2C:
ldrb r0, [r7, #0xe]
subs r0, #1
strb r0, [r7, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _0808DC3A
b _0808DD72
_0808DC3A:
movs r0, #3
strb r0, [r7, #0xc]
movs r0, #0x73
bl sub_080A3268
b _0808DD72
_0808DC46:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _0808DC4E
b _0808DD72
_0808DC4E:
ldr r0, _0808DCC8 @ =gLinkEntity
movs r2, #0x32
ldrsh r1, [r0, r2]
movs r3, #0x32
ldrsh r0, [r7, r3]
cmp r1, r0
bge _0808DCDC
ldr r0, _0808DCCC @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
bne _0808DC66
b _0808DD72
_0808DC66:
adds r0, r7, #0
bl sub_080002A0
ldr r1, _0808DCD0 @ =0x00004017
cmp r0, r1
beq _0808DC74
b _0808DD72
_0808DC74:
ldr r0, _0808DCD4 @ =0x00004023
movs r5, #0x2e
ldrsh r1, [r7, r5]
ldr r4, _0808DCD8 @ =gUnk_03000BF0
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r5, #0x3f
ands r1, r5
movs r3, #0x32
ldrsh r2, [r7, r3]
ldrh r3, [r4, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
adds r6, r7, #0
adds r6, #0x38
ldrb r2, [r6]
bl sub_0800015E
movs r1, #0x2e
ldrsh r0, [r7, r1]
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r5
movs r2, #0x32
ldrsh r1, [r7, r2]
ldrh r2, [r4, #8]
adds r2, #0x10
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r6]
bl sub_0807BA8C
b _0808DD72
.align 2, 0
_0808DCC8: .4byte gLinkEntity
_0808DCCC: .4byte gUnk_03003F80
_0808DCD0: .4byte 0x00004017
_0808DCD4: .4byte 0x00004023
_0808DCD8: .4byte gUnk_03000BF0
_0808DCDC:
adds r0, r7, #0
bl sub_080002A0
ldr r3, _0808DD44 @ =0x00004017
mov r8, r3
cmp r0, r8
beq _0808DD72
movs r5, #0x2e
ldrsh r1, [r7, r5]
ldr r5, _0808DD48 @ =gUnk_03000BF0
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r6, #0x3f
ands r1, r6
movs r2, #0x32
ldrsh r0, [r7, r2]
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
adds r4, r7, #0
adds r4, #0x38
ldrb r2, [r4]
mov r0, r8
bl sub_0800015E
ldrb r0, [r7, #0xa]
cmp r0, #0
bne _0808DD4C
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r6
movs r2, #0x32
ldrsh r0, [r7, r2]
ldrh r2, [r5, #8]
adds r2, #0x10
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r1, r0
ldrb r2, [r4]
mov r0, r8
bl sub_0800015E
b _0808DD72
.align 2, 0
_0808DD44: .4byte 0x00004017
_0808DD48: .4byte gUnk_03000BF0
_0808DD4C:
ldr r0, _0808DD78 @ =0x00004014
movs r3, #0x2e
ldrsh r1, [r7, r3]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r7, r3]
ldrh r3, [r5, #8]
adds r3, #0x10
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl sub_0800015E
_0808DD72:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808DD78: .4byte 0x00004014
thumb_func_start sub_0808DD7C
sub_0808DD7C: @ 0x0808DD7C
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
beq _0808DD9C
ldr r0, _0808DD98 @ =gUnk_081217B0
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0808DDAC
.align 2, 0
_0808DD98: .4byte gUnk_081217B0
_0808DD9C:
ldr r0, _0808DDB0 @ =gUnk_081217A8
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_0808DDAC:
pop {pc}
.align 2, 0
_0808DDB0: .4byte gUnk_081217A8
thumb_func_start sub_0808DDB4
sub_0808DDB4: @ 0x0808DDB4
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0808DDDC
movs r0, #0x78
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x6c
movs r0, #0xf0
strh r0, [r1]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
adds r0, r4, #0
bl sub_0808DDE8
_0808DDDC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808DDE0
sub_0808DDE0: @ 0x0808DDE0
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_0808DDE8
sub_0808DDE8: @ 0x0808DDE8
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x6c
ldrh r0, [r4]
subs r0, #1
strh r0, [r4]
bl sub_0807953C
cmp r0, #0
beq _0808DE04
ldrb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0xf]
_0808DE04:
ldrb r0, [r5, #0xf]
cmp r0, #0x1e
bhi _0808DE1C
ldr r0, _0808DE8C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
ldr r1, _0808DE90 @ =0x00001810
ands r0, r1
cmp r0, #0
bne _0808DE1C
ldrh r0, [r4]
cmp r0, #0
bne _0808DE2A
_0808DE1C:
ldr r0, _0808DE8C @ =gUnk_03003F80
ldr r1, [r0, #0x30]
ldr r2, _0808DE94 @ =0xFFFFFBFF
ands r1, r2
str r1, [r0, #0x30]
bl sub_0805E780
_0808DE2A:
ldr r3, _0808DE98 @ =gLinkEntity
ldr r1, _0808DE9C @ =gUnk_081217B8
ldrb r0, [r3, #0x14]
lsrs r0, r0, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r3, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
ldrh r0, [r3, #0x32]
subs r0, #6
strh r0, [r5, #0x32]
ldr r0, [r3, #0x34]
str r0, [r5, #0x34]
adds r0, r3, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x38
strb r1, [r0]
ldrb r2, [r3, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r4, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r4
orrs r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r3, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x1b]
ldr r0, _0808DE8C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #3
ands r0, r1
cmp r0, #0
beq _0808DEA0
adds r0, r5, #0
bl sub_08004274
b _0808DEA4
.align 2, 0
_0808DE8C: .4byte gUnk_03003F80
_0808DE90: .4byte 0x00001810
_0808DE94: .4byte 0xFFFFFBFF
_0808DE98: .4byte gLinkEntity
_0808DE9C: .4byte gUnk_081217B8
_0808DEA0:
bl sub_0805E780
_0808DEA4:
ldr r1, _0808DEC0 @ =gLinkEntity
ldrb r0, [r1, #0x14]
lsrs r0, r0, #1
cmp r0, #2
bne _0808DEC4
adds r0, r1, #0
movs r1, #3
adds r2, r5, #0
bl sub_0806FEBC
ldrh r0, [r5, #0x32]
subs r0, #5
strh r0, [r5, #0x32]
b _0808DECE
.align 2, 0
_0808DEC0: .4byte gLinkEntity
_0808DEC4:
adds r0, r1, #0
movs r1, #0
adds r2, r5, #0
bl sub_0806FEBC
_0808DECE:
pop {r4, r5, pc}
thumb_func_start sub_0808DED0
sub_0808DED0: @ 0x0808DED0
push {lr}
ldr r2, _0808DEE4 @ =gUnk_081217BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808DEE4: .4byte gUnk_081217BC
thumb_func_start sub_0808DEE8
sub_0808DEE8: @ 0x0808DEE8
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #0
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x10]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldr r3, _0808DF74 @ =gLinkEntity
ldrb r1, [r3, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r5, #0x1b]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r0, [r3, #0x14]
lsrs r0, r0, #1
strb r0, [r5, #0x14]
adds r0, #1
movs r1, #3
ands r0, r1
lsls r0, r0, #3
strb r0, [r5, #0x15]
movs r3, #6
movs r0, #6
strb r0, [r5, #0xf]
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r5, #0x24]
adds r1, r5, #0
adds r1, #0x60
movs r0, #0x3c
strh r0, [r1]
ldrb r1, [r5, #0x1a]
movs r2, #0x10
rsbs r2, r2, #0
adds r0, r2, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r5, #0x1a]
adds r0, r5, #0
adds r0, #0x72
strh r4, [r0]
subs r0, #6
strh r4, [r0]
ldrb r0, [r5, #0x11]
ands r2, r0
orrs r2, r3
strb r2, [r5, #0x11]
adds r0, r5, #0
movs r1, #7
bl sub_08004260
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0808DF78
movs r0, #0x28
strb r0, [r5, #0xe]
b _0808DFAA
.align 2, 0
_0808DF74: .4byte gLinkEntity
_0808DF78:
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
ldr r0, _0808DF9C @ =gUnk_03003F80
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #2
ands r0, r1
cmp r0, #0
beq _0808DFA0
movs r0, #0x28
b _0808DFA2
.align 2, 0
_0808DF9C: .4byte gUnk_03003F80
_0808DFA0:
movs r0, #0x50
_0808DFA2:
strb r0, [r5, #0xe]
adds r0, r5, #0
bl sub_0808DFAC
_0808DFAA:
pop {r4, r5, pc}
thumb_func_start sub_0808DFAC
sub_0808DFAC: @ 0x0808DFAC
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0808E00E
ldr r1, _0808DFF0 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0x21
ldrb r0, [r0]
cmp r0, #0
beq _0808DFCC
ldrb r1, [r1, #4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808DFD0
_0808DFCC:
bl sub_0805E780
_0808DFD0:
ldr r0, _0808DFF0 @ =gUnk_03003F80
adds r2, r0, #0
adds r2, #0x21
ldrb r0, [r2]
cmp r0, #0x4f
bls _0808DFF8
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x18]
ldrb r6, [r2]
ldr r7, _0808DFF4 @ =gUnk_081217D8
b _0808E038
.align 2, 0
_0808DFF0: .4byte gUnk_03003F80
_0808DFF4: .4byte gUnk_081217D8
_0808DFF8:
cmp r0, #0
beq _0808E008
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _0808E1BA
_0808E008:
bl sub_0805E780
b _0808E038
_0808E00E:
ldr r5, _0808E02C @ =gUnk_03003F80
ldrb r0, [r5, #4]
cmp r0, #0
bne _0808E01A
bl sub_0805E780
_0808E01A:
ldrb r1, [r5, #0x1b]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808E034
ldrb r6, [r5, #0x1b]
ldr r7, _0808E030 @ =gUnk_081217D0
b _0808E038
.align 2, 0
_0808E02C: .4byte gUnk_03003F80
_0808E030: .4byte gUnk_081217D0
_0808E034:
bl sub_0805E780
_0808E038:
cmp r6, #0
bne _0808E03E
b _0808E1B6
_0808E03E:
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808E084
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #3
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808E068
ldr r0, _0808E080 @ =gUnk_03003F80
adds r0, #0xac
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #2
ands r0, r1
cmp r0, #0
bne _0808E068
movs r2, #7
_0808E068:
ldrb r0, [r4, #0xe]
ands r0, r2
adds r5, r4, #0
adds r5, #0x6c
adds r6, r4, #0
adds r6, #0x38
cmp r0, #0
bne _0808E0E4
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
b _0808E0E4
.align 2, 0
_0808E080: .4byte gUnk_03003F80
_0808E084:
adds r5, r4, #0
adds r5, #0x72
ldrh r0, [r5]
cmp r0, #0
beq _0808E0BC
ldr r0, _0808E0B8 @ =gUnk_030010A0
ldr r1, [r0]
movs r0, #0x1f
ands r1, r0
subs r5, #6
adds r6, r4, #0
adds r6, #0x38
cmp r1, #0
bne _0808E0E4
adds r0, r4, #0
movs r1, #7
movs r2, #0
bl CreateFX
cmp r0, #0
beq _0808E0E4
ldrb r1, [r6]
adds r0, #0x38
strb r1, [r0]
b _0808E0E4
.align 2, 0
_0808E0B8: .4byte gUnk_030010A0
_0808E0BC:
ldr r0, _0808E140 @ =0x00000115
bl sub_08004488
adds r0, r4, #0
movs r1, #0x12
movs r2, #0
bl CreateFX
adds r6, r4, #0
adds r6, #0x38
cmp r0, #0
beq _0808E0DA
ldrb r1, [r6]
adds r0, #0x38
strb r1, [r0]
_0808E0DA:
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
adds r5, r4, #0
adds r5, #0x6c
_0808E0E4:
ldr r2, _0808E144 @ =gLinkEntity
ldrb r1, [r2, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r3, [r4, #0x19]
movs r0, #0x3f
ands r0, r3
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
adds r0, r7, r0
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
adds r0, r0, r7
ldrb r0, [r0, #1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldrh r0, [r2, #0x36]
strh r0, [r4, #0x36]
adds r2, #0x38
ldrb r0, [r2]
strb r0, [r6]
ldrb r0, [r4, #0x14]
cmp r0, #1
beq _0808E148
cmp r0, #1
ble _0808E136
cmp r0, #2
beq _0808E150
cmp r0, #3
beq _0808E15A
_0808E136:
ldrh r0, [r4, #0x32]
ldrh r1, [r5]
subs r0, r0, r1
strh r0, [r4, #0x32]
b _0808E162
.align 2, 0
_0808E140: .4byte 0x00000115
_0808E144: .4byte gLinkEntity
_0808E148:
ldrh r0, [r5]
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
b _0808E160
_0808E150:
ldrh r0, [r5]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
b _0808E162
_0808E15A:
ldrh r0, [r4, #0x2e]
ldrh r1, [r5]
subs r0, r0, r1
_0808E160:
strh r0, [r4, #0x2e]
_0808E162:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808E17A
movs r0, #6
strb r0, [r4, #0xf]
ldrb r0, [r4, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r4, #0x15]
_0808E17A:
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808E1BA
ldr r0, _0808E1AC @ =gUnk_03003F80
ldrb r1, [r0, #0x1b]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0808E1BA
ldrb r0, [r4, #0x10]
movs r1, #0xdf
ands r1, r0
strb r1, [r4, #0x10]
movs r0, #6
bl sub_0807CA84
cmp r0, #1
bne _0808E1B0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
b _0808E1BA
.align 2, 0
_0808E1AC: .4byte gUnk_03003F80
_0808E1B0:
bl sub_0805E780
b _0808E1BA
_0808E1B6:
bl sub_0805E780
_0808E1BA:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0808E1BC
sub_0808E1BC: @ 0x0808E1BC
push {r4, lr}
adds r4, r0, #0
bl sub_08079BD8
ldrb r0, [r4, #0xc]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, _0808E204 @ =gLinkEntity
ldrb r0, [r0, #0x14]
strb r0, [r4, #0x14]
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r4, #0x1a]
movs r0, #0xaf
strh r0, [r4, #0x12]
ldrb r1, [r4, #0x14]
lsrs r1, r1, #1
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
.align 2, 0
_0808E204: .4byte gLinkEntity
thumb_func_start sub_0808E208
sub_0808E208: @ 0x0808E208
push {r4, lr}
adds r4, r0, #0
bl sub_08079BD8
adds r0, r4, #0
bl sub_08004274
ldr r0, _0808E240 @ =gUnk_03003F80
ldrb r0, [r0, #0x1b]
cmp r0, #0
beq _0808E248
ldr r0, _0808E244 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0808E24C
ldrb r2, [r4, #0x1a]
lsls r1, r2, #0x1c
lsrs r1, r1, #0x1c
movs r0, #4
eors r1, r0
subs r0, #0x14
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
b _0808E24C
.align 2, 0
_0808E240: .4byte gUnk_03003F80
_0808E244: .4byte gUnk_030010A0
_0808E248:
bl sub_0805E780
_0808E24C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808E260
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0808E260:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808E264
sub_0808E264: @ 0x0808E264
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808E27C
bl sub_0805E780
_0808E27C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808E280
sub_0808E280: @ 0x0808E280
push {lr}
ldr r2, _0808E294 @ =gUnk_08121B8C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808E294: .4byte gUnk_08121B8C
thumb_func_start sub_0808E298
sub_0808E298: @ 0x0808E298
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x38
movs r1, #2
strb r1, [r0]
movs r0, #1
strb r0, [r4, #0xc]
movs r5, #0
movs r6, #0
adds r0, r4, #0
bl sub_080002A0
adds r1, r0, #0
movs r0, #0xd1
lsls r0, r0, #2
cmp r1, r0
beq _0808E2DA
cmp r1, r0
bhi _0808E2C6
subs r0, #1
cmp r1, r0
beq _0808E2D8
b _0808E2E2
_0808E2C6:
ldr r0, _0808E2D4 @ =0x00000345
cmp r1, r0
beq _0808E2DE
adds r0, #1
cmp r1, r0
beq _0808E2E6
b _0808E2E2
.align 2, 0
_0808E2D4: .4byte 0x00000345
_0808E2D8:
movs r5, #0x10
_0808E2DA:
movs r6, #0x10
b _0808E2E6
_0808E2DE:
movs r5, #0x10
b _0808E2E6
_0808E2E2:
bl sub_0805E780
_0808E2E6:
ldrh r0, [r4, #0x2e]
adds r0, r0, r5
movs r2, #0x10
rsbs r2, r2, #0
adds r1, r2, #0
ands r0, r1
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
adds r0, r0, r6
ands r0, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
ldr r1, _0808E314 @ =0x00000347
adds r0, r4, #0
bl sub_0808E354
adds r0, r4, #0
bl sub_0808E318
pop {r4, r5, r6, pc}
.align 2, 0
_0808E314: .4byte 0x00000347
thumb_func_start sub_0808E318
sub_0808E318: @ 0x0808E318
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808E340
ldr r1, _0808E33C @ =0x00000343
adds r0, r4, #0
bl sub_0808E354
bl sub_0805E780
b _0808E34E
.align 2, 0
_0808E33C: .4byte 0x00000343
_0808E340:
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808E34E
ldr r0, _0808E350 @ =0x0000018B
bl sub_08004488
_0808E34E:
pop {r4, pc}
.align 2, 0
_0808E350: .4byte 0x0000018B
thumb_func_start sub_0808E354
sub_0808E354: @ 0x0808E354
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
adds r6, r0, #0
lsls r1, r1, #0x10
mov r8, r1
mov r0, r8
lsrs r0, r0, #0x10
mov r8, r0
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldr r5, _0808E410 @ =gUnk_03000BF0
ldrh r0, [r5, #6]
adds r0, #0x10
subs r1, r1, r0
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r0, [r6, r3]
ldrh r2, [r5, #8]
adds r2, #0x10
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
mov r0, r8
movs r2, #2
bl sub_0807B7D8
mov r0, r8
adds r0, #1
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
adds r3, #0x10
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #2
bl sub_0807B7D8
mov r0, r8
adds r0, #2
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r2, [r5, #6]
adds r2, #0x10
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #2
bl sub_0807B7D8
movs r0, #3
add r8, r0
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r0, [r6, r3]
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
mov r0, r8
movs r2, #2
bl sub_0807B7D8
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_0808E410: .4byte gUnk_03000BF0
thumb_func_start sub_0808E414
sub_0808E414: @ 0x0808E414
push {lr}
ldr r2, _0808E428 @ =gUnk_08121BD8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808E428: .4byte gUnk_08121BD8
thumb_func_start sub_0808E42C
sub_0808E42C: @ 0x0808E42C
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x11]
subs r1, #0x11
ands r1, r2
movs r2, #6
orrs r1, r2
strb r1, [r0, #0x11]
ldrb r1, [r0, #0xa]
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_0808E448
sub_0808E448: @ 0x0808E448
push {r4, lr}
adds r4, r0, #0
movs r0, #0x10
bl sub_0805436C
cmp r0, #1
bls _0808E45A
bl sub_0805E780
_0808E45A:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #1
beq _0808E472
cmp r0, #0x80
bne _0808E486
bl sub_0805E780
_0808E472:
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
b _0808E494
_0808E486:
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x18]
_0808E494:
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0808E4A2
ldr r0, [r4, #0x34]
ldr r1, _0808E4A4 @ =0xFFFF8000
adds r0, r0, r1
str r0, [r4, #0x34]
_0808E4A2:
pop {r4, pc}
.align 2, 0
_0808E4A4: .4byte 0xFFFF8000
thumb_func_start sub_0808E4A8
sub_0808E4A8: @ 0x0808E4A8
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
lsls r1, r2, #1
ldr r0, _0808E540 @ =gUnk_08121C40
adds r3, r1, r0
ldrb r6, [r4, #0xc]
cmp r6, #0
bne _0808E54C
movs r5, #1
strb r5, [r4, #0xc]
movs r2, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0808E4C8
movs r2, #1
_0808E4C8:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x38
strb r5, [r0]
ldrb r1, [r3]
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r3, #1]
adds r3, r4, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x76
strh r6, [r0]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0808E544 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
adds r0, r4, #0
bl sub_0808E55C
ldr r1, _0808E548 @ =sub_0808E55C
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
b _0808E55A
.align 2, 0
_0808E540: .4byte gUnk_08121C40
_0808E544: .4byte gUnk_03000BF0
_0808E548: .4byte sub_0808E55C
_0808E54C:
movs r0, #1
ands r2, r0
cmp r2, #0
bne _0808E55A
adds r0, r4, #0
bl sub_0808E670
_0808E55A:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808E55C
sub_0808E55C: @ 0x0808E55C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov r8, r0
ldrb r0, [r0, #0xa]
cmp r0, #1
beq _0808E614
cmp r0, #1
bgt _0808E576
cmp r0, #0
beq _0808E57A
b _0808E63A
_0808E576:
cmp r0, #2
bne _0808E63A
_0808E57A:
mov r0, r8
adds r0, #0x74
ldrh r6, [r0]
ldr r0, _0808E5FC @ =0xFFFFFEFF
adds r7, r6, r0
ldr r4, _0808E600 @ =0x0000408F
mov r5, r8
adds r5, #0x38
ldrb r2, [r5]
adds r0, r4, #0
adds r1, r7, #0
bl sub_0800015E
ldr r2, _0808E604 @ =0xFFFFFF00
adds r1, r6, r2
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldr r0, _0808E608 @ =0x0000406C
ldr r2, _0808E60C @ =0xFFFFFEFE
adds r1, r6, r2
ldrb r2, [r5]
bl sub_0800015E
ldr r0, _0808E610 @ =0x0000406D
adds r1, r6, #0
subs r1, #0xff
ldrb r2, [r5]
bl sub_0800015E
mov r1, r8
ldrb r0, [r1, #0xa]
movs r2, #6
mov sb, r2
cmp r0, #0
beq _0808E63A
movs r0, #4
mov sb, r0
subs r4, #0x1d
adds r1, r6, #0
adds r1, #0x3f
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x40
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x7f
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x80
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
b _0808E63A
.align 2, 0
_0808E5FC: .4byte 0xFFFFFEFF
_0808E600: .4byte 0x0000408F
_0808E604: .4byte 0xFFFFFF00
_0808E608: .4byte 0x0000406C
_0808E60C: .4byte 0xFFFFFEFE
_0808E610: .4byte 0x0000406D
_0808E614:
mov r0, r8
adds r0, #0x74
ldrh r6, [r0]
subs r7, r6, #1
ldr r5, _0808E66C @ =0x0000408E
mov r4, r8
adds r4, #0x38
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r7, #0
bl sub_0800015E
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0800015E
movs r1, #2
mov sb, r1
_0808E63A:
movs r5, #0
cmp r5, sb
bhs _0808E662
ldr r6, _0808E66C @ =0x0000408E
mov r4, r8
adds r4, #0x38
_0808E646:
adds r7, #0x40
ldrb r2, [r4]
adds r0, r6, #0
adds r1, r7, #0
bl sub_0800015E
adds r1, r7, #1
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
adds r5, #1
cmp r5, sb
blo _0808E646
_0808E662:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808E66C: .4byte 0x0000408E
thumb_func_start sub_0808E670
sub_0808E670: @ 0x0808E670
push {lr}
adds r0, #0x74
ldrh r0, [r0]
ldr r1, _0808E684 @ =0xFFFFFEFF
adds r0, r0, r1
movs r1, #1
bl sub_080002B0
pop {pc}
.align 2, 0
_0808E684: .4byte 0xFFFFFEFF
thumb_func_start sub_0808E688
sub_0808E688: @ 0x0808E688
push {lr}
ldr r2, _0808E69C @ =gUnk_08121C48
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808E69C: .4byte gUnk_08121C48
thumb_func_start sub_0808E6A0
sub_0808E6A0: @ 0x0808E6A0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x84
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808E6B4
bl sub_0805E780
_0808E6B4:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x62
strb r0, [r4, #0xa]
ldrb r1, [r4, #0x18]
subs r0, #0x66
ands r0, r1
strb r0, [r4, #0x18]
ldr r0, _0808E6E0 @ =gUnk_08121C58
str r0, [r4, #0x48]
adds r1, r4, #0
adds r1, #0x38
movs r2, #3
movs r0, #3
strb r0, [r1]
ldrb r1, [r4, #0x11]
subs r0, #0x13
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x11]
pop {r4, pc}
.align 2, 0
_0808E6E0: .4byte gUnk_08121C58
thumb_func_start sub_0808E6E4
sub_0808E6E4: @ 0x0808E6E4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0808E712
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_0808E714
_0808E712:
pop {r4, pc}
thumb_func_start sub_0808E714
sub_0808E714: @ 0x0808E714
push {r4, lr}
adds r4, r0, #0
ldrb r3, [r4, #0xf]
lsls r0, r3, #3
movs r1, #0x80
lsls r1, r1, #3
subs r2, r1, r0
movs r0, #0x80
lsls r0, r0, #1
cmp r2, r0
ble _0808E73A
adds r0, r3, #1
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0808E756
_0808E73A:
movs r0, #3
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x3c
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0805EC60
ldr r0, _0808E760 @ =0x00000141
bl sub_080A3268
_0808E756:
adds r0, r4, #0
bl sub_08080CB4
pop {r4, pc}
.align 2, 0
_0808E760: .4byte 0x00000141
thumb_func_start sub_0808E764
sub_0808E764: @ 0x0808E764
push {r4, lr}
adds r4, r0, #0
bl sub_08080CB4
ldr r0, _0808E79C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0808E79A
adds r0, r4, #0
bl sub_08017850
cmp r0, #0
beq _0808E79A
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
bl sub_0807CCC8
movs r0, #0x62
movs r1, #0
movs r2, #0
bl sub_080A7C00
bl sub_0805E780
_0808E79A:
pop {r4, pc}
.align 2, 0
_0808E79C: .4byte gUnk_03003F80
thumb_func_start sub_0808E7A0
sub_0808E7A0: @ 0x0808E7A0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _0808E7B2
adds r0, r4, #0
bl sub_0808EFF0
_0808E7B2:
ldr r1, _0808E7D4 @ =gUnk_08121C64
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #0x3f
bhi _0808E7D2
adds r0, r4, #0
bl sub_080042B8
_0808E7D2:
pop {r4, pc}
.align 2, 0
_0808E7D4: .4byte gUnk_08121C64
thumb_func_start sub_0808E7D8
sub_0808E7D8: @ 0x0808E7D8
push {lr}
ldr r2, _0808E7EC @ =gUnk_08121CCC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808E7EC: .4byte gUnk_08121CCC
thumb_func_start sub_0808E7F0
sub_0808E7F0: @ 0x0808E7F0
push {r4, lr}
adds r4, r0, #0
movs r1, #1
movs r2, #2
bl sub_080AE008
ldrb r0, [r4, #0x1a]
movs r1, #0xf
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r0, #0xff
strb r0, [r4, #0xb]
movs r0, #1
strb r0, [r4, #0xc]
pop {r4, pc}
thumb_func_start sub_0808E818
sub_0808E818: @ 0x0808E818
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_0808E950
cmp r0, #0
bne _0808E840
movs r1, #1
rsbs r1, r1, #0
strb r1, [r4, #0xb]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
adds r0, #2
strh r1, [r0]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _0808E94E
_0808E840:
ldr r0, _0808E8C0 @ =gUnk_02019EE0
ldrb r1, [r0, #6]
ldrb r0, [r4, #0xb]
adds r6, r4, #0
adds r6, #0x68
adds r5, r4, #0
adds r5, #0x70
cmp r0, r1
beq _0808E894
strb r1, [r4, #0xb]
movs r0, #0x14
bl GetProgressFlag
movs r2, #0x80
lsls r2, r2, #1
adds r1, r2, #0
cmp r0, #0
bne _0808E86A
movs r0, #0x80
lsls r0, r0, #3
adds r1, r0, #0
_0808E86A:
strh r1, [r6]
movs r0, #4
strb r0, [r5]
movs r0, #2
strb r0, [r4, #0x14]
movs r0, #1
bl sub_0807A094
ldr r1, _0808E8C4 @ =gUnk_08133368
subs r0, #0x16
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
ldr r1, _0808E8C8 @ =0x00FFFFFF
ands r0, r1
ldr r1, _0808E8CC @ =gUnk_085A2E80
adds r0, r0, r1
movs r1, #0x1f
movs r2, #1
bl sub_0801D754
_0808E894:
ldr r0, _0808E8D0 @ =gUnk_02032EC0
ldrb r2, [r0, #2]
cmp r2, #0
bne _0808E904
ldr r3, _0808E8D4 @ =gUnk_03000FF0
ldrh r1, [r3]
movs r0, #0x80
lsls r0, r0, #2
ands r0, r1
cmp r0, #0
beq _0808E904
ldrh r1, [r3, #2]
cmp r1, #0x20
beq _0808E8F2
cmp r1, #0x20
bgt _0808E8D8
cmp r1, #2
beq _0808E8F8
cmp r1, #0x10
beq _0808E8E6
b _0808E904
.align 2, 0
_0808E8C0: .4byte gUnk_02019EE0
_0808E8C4: .4byte gUnk_08133368
_0808E8C8: .4byte 0x00FFFFFF
_0808E8CC: .4byte gUnk_085A2E80
_0808E8D0: .4byte gUnk_02032EC0
_0808E8D4: .4byte gUnk_03000FF0
_0808E8D8:
cmp r1, #0x40
beq _0808E8E2
cmp r1, #0x80
beq _0808E8EC
b _0808E904
_0808E8E2:
strb r2, [r4, #0x14]
b _0808E904
_0808E8E6:
movs r0, #1
strb r0, [r4, #0x14]
b _0808E904
_0808E8EC:
movs r0, #2
strb r0, [r4, #0x14]
b _0808E904
_0808E8F2:
movs r0, #3
strb r0, [r4, #0x14]
b _0808E904
_0808E8F8:
ldrb r0, [r5]
movs r1, #0
cmp r0, #0
bne _0808E902
movs r1, #4
_0808E902:
strb r1, [r5]
_0808E904:
movs r2, #0
ldrb r0, [r4, #0x14]
cmp r0, #3
bne _0808E90E
movs r2, #1
_0808E90E:
lsls r2, r2, #6
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrh r0, [r6]
ldrb r1, [r5]
adds r0, r0, r1
ldrb r2, [r4, #0x14]
adds r1, r0, r2
adds r2, r4, #0
adds r2, #0x6a
ldrh r0, [r2]
cmp r0, r1
beq _0808E940
strh r1, [r2]
lsrs r0, r1, #8
strh r0, [r4, #0x12]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl sub_080042AC
_0808E940:
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #2
orrs r1, r0
strb r1, [r4, #0x18]
_0808E94E:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808E950
sub_0808E950: @ 0x0808E950
push {lr}
movs r2, #0
ldr r0, _0808E980 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #0
beq _0808E968
cmp r0, #0
blt _0808E97C
cmp r0, #7
bgt _0808E97C
cmp r0, #4
blt _0808E97C
_0808E968:
ldr r0, _0808E984 @ =gUnk_02019EE0
adds r1, r0, #0
adds r1, #8
ldrb r0, [r0, #6]
adds r1, r1, r0
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #1
bne _0808E97C
movs r2, #1
_0808E97C:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0808E980: .4byte gUnk_02032EC0
_0808E984: .4byte gUnk_02019EE0
thumb_func_start sub_0808E988
sub_0808E988: @ 0x0808E988
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _0808E9AA
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0xa1
lsls r0, r0, #1
strh r0, [r5, #0x12]
movs r0, #0xff
strb r0, [r5, #0xb]
adds r0, r5, #0
movs r1, #1
movs r2, #3
bl sub_080AE008
_0808E9AA:
bl sub_0808E950
cmp r0, #0
beq _0808E9E8
movs r4, #6
b _0808E9BC
_0808E9B6:
subs r4, #1
cmp r4, #0
beq _0808E9E8
_0808E9BC:
adds r0, r4, #0
bl sub_0807CA84
cmp r0, #0
beq _0808E9B6
cmp r4, #0
beq _0808E9E8
ldrb r0, [r5, #0xb]
cmp r0, r4
beq _0808E9D8
adds r0, r5, #0
adds r1, r4, #0
bl sub_080042AC
_0808E9D8:
ldrb r0, [r5, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #2
orrs r1, r0
strb r1, [r5, #0x18]
b _0808E9F2
_0808E9E8:
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r5, #0x18]
_0808E9F2:
pop {r4, r5, pc}
thumb_func_start sub_0808E9F4
sub_0808E9F4: @ 0x0808E9F4
push {r4, lr}
adds r4, r0, #0
bl sub_0808E950
cmp r0, #0
beq _0808EA1C
ldr r0, _0808EA18 @ =gUnk_02002A40
ldrb r0, [r0, #6]
cmp r0, #0
beq _0808EA1C
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #2
orrs r1, r0
strb r1, [r4, #0x18]
b _0808EA26
.align 2, 0
_0808EA18: .4byte gUnk_02002A40
_0808EA1C:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_0808EA26:
pop {r4, pc}
thumb_func_start sub_0808EA28
sub_0808EA28: @ 0x0808EA28
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #3
bne _0808EA56
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #1
bls _0808EA4C
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #2
orrs r1, r0
strb r1, [r4, #0x18]
b _0808EA56
_0808EA4C:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_0808EA56:
ldr r2, _0808EA68 @ =gUnk_02019EE0
ldrb r1, [r4, #0xa]
ldrb r0, [r2, #6]
cmp r1, r0
bne _0808EA6C
movs r3, #0xc
movs r2, #1
b _0808EA88
.align 2, 0
_0808EA68: .4byte gUnk_02019EE0
_0808EA6C:
ldr r0, _0808EA80 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #5
bne _0808EA84
ldrb r2, [r2, #7]
cmp r1, r2
bne _0808EA84
movs r3, #0xd
b _0808EA86
.align 2, 0
_0808EA80: .4byte gUnk_02032EC0
_0808EA84:
movs r3, #0xe
_0808EA86:
movs r2, #2
_0808EA88:
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x1a]
lsls r2, r2, #6
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_0808EABC
adds r0, r4, #0
bl sub_0808EF6C
ldr r2, _0808EAB8 @ =gUnk_02019EE0
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
pop {r4, pc}
.align 2, 0
_0808EAB8: .4byte gUnk_02019EE0
thumb_func_start sub_0808EABC
sub_0808EABC: @ 0x0808EABC
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #0x48
rsbs r4, r4, #0
ldrb r1, [r5, #0xa]
lsls r0, r1, #5
adds r2, r0, #0
adds r2, #0x28
movs r3, #0
ldr r0, _0808EAEC @ =gUnk_02019EE0
ldrb r0, [r0, #6]
cmp r0, r1
bne _0808EAD8
movs r3, #1
_0808EAD8:
ldr r0, _0808EAF0 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #7
bhi _0808EB60
lsls r0, r0, #2
ldr r1, _0808EAF4 @ =_0808EAF8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0808EAEC: .4byte gUnk_02019EE0
_0808EAF0: .4byte gUnk_02032EC0
_0808EAF4: .4byte _0808EAF8
_0808EAF8: @ jump table
.4byte _0808EB18 @ case 0
.4byte _0808EB60 @ case 1
.4byte _0808EB56 @ case 2
.4byte _0808EB1C @ case 3
.4byte _0808EB1C @ case 4
.4byte _0808EB26 @ case 5
.4byte _0808EB1C @ case 6
.4byte _0808EB1C @ case 7
_0808EB18:
movs r4, #0x18
b _0808EB68
_0808EB1C:
cmp r3, #0
beq _0808EB68
movs r4, #0x2a
movs r2, #0x38
b _0808EB68
_0808EB26:
ldr r3, _0808EB3C @ =gUnk_02000080
adds r0, r3, #0
adds r0, #0x10
ldrb r1, [r5, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
cmp r1, #0
bne _0808EB40
movs r4, #0x2a
movs r2, #0x28
b _0808EB68
.align 2, 0
_0808EB3C: .4byte gUnk_02000080
_0808EB40:
cmp r1, #0
blt _0808EB68
cmp r1, #2
bgt _0808EB68
movs r4, #0x14
movs r2, #0x90
ldrb r0, [r3, #0x16]
subs r0, r0, r1
lsls r0, r0, #5
subs r2, r2, r0
b _0808EB68
_0808EB56:
cmp r3, #0
beq _0808EB68
movs r4, #0x1a
movs r2, #0x2a
b _0808EB68
_0808EB60:
cmp r3, #0
beq _0808EB68
movs r4, #8
movs r2, #0x23
_0808EB68:
adds r0, r5, #0
adds r0, #0x68
strh r4, [r0]
adds r0, #2
strh r2, [r0]
pop {r4, r5, pc}
thumb_func_start sub_0808EB74
sub_0808EB74: @ 0x0808EB74
push {r4, lr}
adds r4, r0, #0
ldr r0, _0808EBA8 @ =gUnk_02019EE0
ldrb r0, [r0, #6]
bl sub_0808EC80
adds r3, r0, #0
cmp r3, #0
beq _0808EBAC
ldr r0, [r3, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r3, #0x30]
str r0, [r4, #0x30]
ldrb r1, [r3, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r3, #0
adds r1, r4, #0
bl sub_0806FAD8
b _0808EBB4
.align 2, 0
_0808EBA8: .4byte gUnk_02019EE0
_0808EBAC:
movs r0, #0xf0
lsls r0, r0, #8
strh r0, [r4, #0x2e]
strh r0, [r4, #0x32]
_0808EBB4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808EBB8
sub_0808EBB8: @ 0x0808EBB8
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
ldr r0, _0808EBD0 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
subs r0, #2
cmp r0, #5
bhi _0808EC1C
lsls r0, r0, #2
ldr r1, _0808EBD4 @ =_0808EBD8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0808EBD0: .4byte gUnk_02032EC0
_0808EBD4: .4byte _0808EBD8
_0808EBD8: @ jump table
.4byte _0808EC18 @ case 0
.4byte _0808EC1C @ case 1
.4byte _0808EBF0 @ case 2
.4byte _0808EBFC @ case 3
.4byte _0808EC00 @ case 4
.4byte _0808EC14 @ case 5
_0808EBF0:
ldr r0, _0808EBF8 @ =gUnk_02000080
ldrb r0, [r0, #1]
adds r1, r0, #4
b _0808EC1E
.align 2, 0
_0808EBF8: .4byte gUnk_02000080
_0808EBFC:
movs r1, #2
b _0808EC1E
_0808EC00:
ldr r0, _0808EC10 @ =gUnk_02000080
ldrb r0, [r0, #1]
movs r1, #6
cmp r0, #0
bne _0808EC1E
movs r1, #7
b _0808EC1E
.align 2, 0
_0808EC10: .4byte gUnk_02000080
_0808EC14:
movs r1, #4
b _0808EC1E
_0808EC18:
movs r1, #1
b _0808EC1E
_0808EC1C:
movs r1, #0
_0808EC1E:
movs r5, #0xf0
lsls r5, r5, #8
adds r6, r5, #0
cmp r1, #1
beq _0808EC32
cmp r1, #1
blo _0808EC76
cmp r1, #2
beq _0808EC42
b _0808EC4C
_0808EC32:
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
lsls r0, r0, #4
adds r5, r0, #0
adds r5, #0x18
movs r6, #0x70
b _0808EC76
_0808EC42:
ldr r0, _0808EC7C @ =gUnk_02019EE0
ldrb r1, [r0, #7]
cmp r1, #4
bne _0808EC4C
movs r1, #7
_0808EC4C:
adds r0, r1, #0
bl sub_0808EC80
adds r4, r0, #0
cmp r4, #0
beq _0808EC76
adds r1, r7, #0
bl sub_0806FAD8
ldrb r0, [r4, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r7, #0x19]
movs r1, #0x3f
ands r1, r2
orrs r1, r0
strb r1, [r7, #0x19]
movs r0, #0x2e
ldrsh r6, [r4, r0]
movs r0, #0x32
ldrsh r5, [r4, r0]
_0808EC76:
strh r6, [r7, #0x2e]
strh r5, [r7, #0x32]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0808EC7C: .4byte gUnk_02019EE0
thumb_func_start sub_0808EC80
sub_0808EC80: @ 0x0808EC80
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r3, _0808ECA4 @ =gUnk_03003DA0
ldr r2, [r3, #4]
cmp r2, r3
beq _0808ECB6
ldr r6, _0808ECA8 @ =0x0000FFFF
ldr r5, _0808ECAC @ =0x00004806
_0808EC90:
ldrh r1, [r2, #8]
adds r0, r6, #0
ands r0, r1
cmp r0, r5
bne _0808ECB0
ldrb r0, [r2, #0xa]
cmp r4, r0
bne _0808ECB0
adds r0, r2, #0
b _0808ECB8
.align 2, 0
_0808ECA4: .4byte gUnk_03003DA0
_0808ECA8: .4byte 0x0000FFFF
_0808ECAC: .4byte 0x00004806
_0808ECB0:
ldr r2, [r2, #4]
cmp r2, r3
bne _0808EC90
_0808ECB6:
movs r0, #0
_0808ECB8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808ECBC
sub_0808ECBC: @ 0x0808ECBC
push {r4, lr}
adds r3, r0, #0
ldr r0, _0808ECD8 @ =gUnk_02000080
ldrb r4, [r0, #1]
ldr r0, _0808ECDC @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #5
beq _0808ECEE
cmp r0, #5
bgt _0808ECE0
cmp r0, #4
beq _0808ECEA
b _0808ED04
.align 2, 0
_0808ECD8: .4byte gUnk_02000080
_0808ECDC: .4byte gUnk_02032EC0
_0808ECE0:
cmp r0, #6
beq _0808ECFC
cmp r0, #7
beq _0808ED00
b _0808ED04
_0808ECEA:
movs r0, #1
b _0808ED06
_0808ECEE:
ldr r0, _0808ECF8 @ =gUnk_02019EE0
ldrb r4, [r0, #7]
movs r0, #2
b _0808ED06
.align 2, 0
_0808ECF8: .4byte gUnk_02019EE0
_0808ECFC:
movs r0, #3
b _0808ED06
_0808ED00:
movs r0, #4
b _0808ED06
_0808ED04:
movs r0, #0
_0808ED06:
ldrb r2, [r3, #0xa]
subs r2, #4
lsls r1, r0, #1
adds r1, r1, r0
lsls r1, r1, #2
lsls r0, r2, #1
adds r0, r0, r2
ldr r2, _0808ED3C @ =gUnk_08121CD4
adds r0, r0, r2
adds r1, r1, r0
ldrb r2, [r1, #1]
adds r0, r3, #0
adds r0, #0x68
strh r2, [r0]
ldrb r0, [r1, #2]
adds r2, r3, #0
adds r2, #0x6a
strh r0, [r2]
ldrb r0, [r1]
cmp r0, r4
bne _0808ED40
ldrb r0, [r3, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #0xd
b _0808ED4A
.align 2, 0
_0808ED3C: .4byte gUnk_08121CD4
_0808ED40:
ldrb r0, [r3, #0x1a]
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r0
movs r0, #0xe
_0808ED4A:
orrs r1, r0
strb r1, [r3, #0x1a]
adds r0, r3, #0
bl sub_0808EF6C
ldr r2, _0808ED60 @ =gUnk_02019EE0
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
pop {r4, pc}
.align 2, 0
_0808ED60: .4byte gUnk_02019EE0
thumb_func_start sub_0808ED64
sub_0808ED64: @ 0x0808ED64
push {lr}
adds r2, r0, #0
movs r3, #0xff
ldr r0, _0808ED90 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #1
bne _0808ED8A
ldr r1, _0808ED94 @ =gUnk_02000080
ldrb r0, [r1, #0x11]
cmp r0, #5
beq _0808ED8A
ldrb r0, [r1, #0x10]
lsls r0, r0, #4
adds r0, #0x1c
strh r0, [r2, #0x2e]
ldrb r0, [r1, #0x11]
lsls r0, r0, #4
adds r3, r0, #0
adds r3, #0x3a
_0808ED8A:
strh r3, [r2, #0x32]
pop {pc}
.align 2, 0
_0808ED90: .4byte gUnk_02032EC0
_0808ED94: .4byte gUnk_02000080
thumb_func_start sub_0808ED98
sub_0808ED98: @ 0x0808ED98
push {lr}
adds r3, r0, #0
ldr r0, _0808EDB4 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #1
beq _0808EDB8
adds r1, r3, #0
adds r1, #0x68
movs r0, #0x1b
strh r0, [r1]
movs r1, #0xa
rsbs r1, r1, #0
b _0808EDCE
.align 2, 0
_0808EDB4: .4byte gUnk_02032EC0
_0808EDB8:
ldr r0, _0808EDF8 @ =gUnk_02000080
ldrb r0, [r0, #0x13]
cmp r0, #5
bls _0808EDC2
movs r0, #5
_0808EDC2:
lsls r0, r0, #3
adds r0, #0x1b
adds r1, r3, #0
adds r1, #0x68
strh r0, [r1]
movs r1, #0x18
_0808EDCE:
strh r1, [r3, #0x32]
adds r0, r3, #0
adds r0, #0x6a
strh r1, [r0]
ldrb r0, [r3, #0xf]
adds r0, #1
strb r0, [r3, #0xf]
ldr r2, _0808EDFC @ =gUnk_08121D10
ldrb r0, [r3, #0xf]
lsrs r0, r0, #2
movs r1, #7
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
adds r1, r3, #0
adds r1, #0x63
strb r0, [r1]
adds r0, r3, #0
bl sub_0808EF6C
pop {pc}
.align 2, 0
_0808EDF8: .4byte gUnk_02000080
_0808EDFC: .4byte gUnk_08121D10
thumb_func_start sub_0808EE00
sub_0808EE00: @ 0x0808EE00
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
rsbs r2, r0, #0
orrs r2, r0
lsrs r2, r2, #0x1f
ldrb r0, [r4, #0xa]
adds r5, r0, #0
subs r5, #0xa
ldr r1, _0808EE48 @ =gUnk_08121D38
lsls r0, r2, #3
adds r0, r5, r0
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0x1e]
ldr r3, _0808EE4C @ =gUnk_08121D18
lsls r0, r5, #1
lsls r1, r2, #4
adds r0, r0, r1
adds r0, r0, r3
ldrh r1, [r0]
strh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
subs r5, r5, r2
ldr r0, _0808EE50 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #1
beq _0808EE54
movs r5, #0x80
movs r1, #0xb0
b _0808EE56
.align 2, 0
_0808EE48: .4byte gUnk_08121D38
_0808EE4C: .4byte gUnk_08121D18
_0808EE50: .4byte gUnk_02032EC0
_0808EE54:
movs r1, #0x8c
_0808EE56:
adds r0, r4, #0
adds r0, #0x6a
strh r1, [r0]
ldr r1, _0808EE8C @ =gUnk_02000080
ldrb r0, [r1, #0x11]
movs r2, #9
cmp r0, #5
bne _0808EE6E
ldrb r1, [r1, #0x12]
cmp r5, r1
bne _0808EE6E
movs r2, #0xb
_0808EE6E:
ldrb r1, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x1a]
adds r0, r4, #0
bl sub_0808EF6C
ldr r2, _0808EE90 @ =gUnk_02019EE0
ldrb r1, [r2]
orrs r0, r1
strb r0, [r2]
pop {r4, r5, pc}
.align 2, 0
_0808EE8C: .4byte gUnk_02000080
_0808EE90: .4byte gUnk_02019EE0
thumb_func_start nullsub_522
nullsub_522: @ 0x0808EE94
bx lr
.align 2, 0
thumb_func_start sub_0808EE98
sub_0808EE98: @ 0x0808EE98
push {lr}
adds r3, r0, #0
ldr r0, _0808EEBC @ =gUnk_02032EC0
ldrb r1, [r0, #2]
strb r1, [r3, #0xe]
ldr r2, _0808EEC0 @ =gUnk_08121D48
ldrb r0, [r3, #0xe]
adds r0, r0, r2
ldrb r0, [r0]
strb r0, [r3, #0x1e]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #2
beq _0808EEC4
adds r1, r3, #0
adds r1, #0x68
movs r0, #0x60
b _0808EECA
.align 2, 0
_0808EEBC: .4byte gUnk_02032EC0
_0808EEC0: .4byte gUnk_08121D48
_0808EEC4:
adds r1, r3, #0
adds r1, #0x68
ldr r0, _0808EED4 @ =0x0000FFA0
_0808EECA:
strh r0, [r1]
adds r0, r3, #0
bl sub_0808EF6C
pop {pc}
.align 2, 0
_0808EED4: .4byte 0x0000FFA0
thumb_func_start sub_0808EED8
sub_0808EED8: @ 0x0808EED8
push {lr}
adds r2, r0, #0
ldr r0, _0808EEF0 @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #3
beq _0808EEF4
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _0808EF1E
.align 2, 0
_0808EEF0: .4byte gUnk_02032EC0
_0808EEF4:
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0x18]
ldrb r1, [r2, #0xa]
subs r1, #0x13
ldr r0, _0808EF20 @ =gUnk_02000080
ldrb r0, [r0, #1]
movs r3, #3
cmp r0, r1
bne _0808EF12
movs r3, #4
_0808EF12:
ldrb r1, [r2, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r2, #0x1a]
_0808EF1E:
pop {pc}
.align 2, 0
_0808EF20: .4byte gUnk_02000080
thumb_func_start sub_0808EF24
sub_0808EF24: @ 0x0808EF24
push {lr}
adds r2, r0, #0
ldr r0, _0808EF3C @ =gUnk_02032EC0
ldrb r0, [r0, #2]
cmp r0, #3
beq _0808EF40
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _0808EF68
.align 2, 0
_0808EF3C: .4byte gUnk_02032EC0
_0808EF40:
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0x18]
ldrb r0, [r2, #0xa]
cmp r0, #0x15
bne _0808EF5C
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r1, [r0, #5]
b _0808EF62
_0808EF5C:
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r1, [r0, #6]
_0808EF62:
ldrb r0, [r2, #0x1f]
adds r0, r0, r1
strb r0, [r2, #0x1e]
_0808EF68:
pop {pc}
.align 2, 0
thumb_func_start sub_0808EF6C
sub_0808EF6C: @ 0x0808EF6C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r0, #0x68
movs r2, #0
ldrsh r1, [r0, r2]
movs r2, #0x2e
ldrsh r0, [r5, r2]
subs r6, r1, r0
adds r0, r6, #0
cmp r6, #0
bge _0808EF84
rsbs r0, r6, #0
_0808EF84:
cmp r0, #1
bhi _0808EF8E
lsls r0, r1, #0x10
str r0, [r5, #0x2c]
movs r6, #0
_0808EF8E:
adds r0, r5, #0
adds r0, #0x6a
movs r2, #0
ldrsh r1, [r0, r2]
movs r2, #0x32
ldrsh r0, [r5, r2]
subs r4, r1, r0
adds r0, r4, #0
cmp r4, #0
bge _0808EFA4
rsbs r0, r4, #0
_0808EFA4:
cmp r0, #1
bhi _0808EFAE
lsls r0, r1, #0x10
str r0, [r5, #0x30]
movs r4, #0
_0808EFAE:
adds r0, r6, #0
orrs r0, r4
cmp r0, #0
bne _0808EFBA
movs r0, #0
b _0808EFEC
_0808EFBA:
adds r0, r6, #0
adds r1, r4, #0
bl sub_080041EC
adds r1, r0, #0
adds r0, #0x80
lsls r1, r1, #4
adds r1, r0, r1
adds r0, r5, #0
adds r0, #0x6c
ldrh r0, [r0]
cmp r0, r1
bge _0808EFD6
adds r1, r0, #0
_0808EFD6:
strh r1, [r5, #0x24]
adds r0, r6, #0
adds r1, r4, #0
bl sub_080045DA
lsrs r0, r0, #3
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F69C
movs r0, #1
_0808EFEC:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808EFF0
sub_0808EFF0: @ 0x0808EFF0
push {r4, r5, lr}
mov ip, r0
ldrb r1, [r0, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
mov r1, ip
strb r0, [r1, #0x18]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1, #0x24]
adds r1, #0x45
movs r0, #1
strb r0, [r1]
movs r0, #0xff
mov r3, ip
strb r0, [r3, #0x1e]
adds r1, #0x13
movs r0, #1
rsbs r0, r0, #0
strb r0, [r1]
ldrb r4, [r3, #0xa]
lsls r4, r4, #3
ldr r0, _0808F094 @ =gUnk_08121D54
adds r4, r4, r0
ldrh r0, [r4, #2]
strh r0, [r3, #0x2e]
ldrh r1, [r4, #2]
mov r0, ip
adds r0, #0x68
strh r1, [r0]
ldrh r0, [r4, #4]
strh r0, [r3, #0x32]
ldrh r0, [r4, #4]
mov r1, ip
adds r1, #0x6a
strh r0, [r1]
ldrb r1, [r4, #6]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x17
ldrb r3, [r3, #0x19]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r3
orrs r0, r1
mov r1, ip
strb r0, [r1, #0x19]
ldrb r1, [r4, #6]
lsls r1, r1, #0x1a
mov r5, ip
adds r5, #0x29
lsrs r1, r1, #0x1d
ldrb r3, [r5]
movs r0, #8
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r5]
ldrb r0, [r4, #6]
lsrs r0, r0, #6
lsls r0, r0, #6
mov r3, ip
ldrb r1, [r3, #0x1b]
ands r2, r1
orrs r2, r0
strb r2, [r3, #0x1b]
ldrh r1, [r4]
mov r0, ip
adds r0, #0x6c
strh r1, [r0]
ldrb r1, [r4, #7]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808F098
movs r0, #0x7f
ands r1, r0
strb r1, [r3, #0x1e]
strb r1, [r3, #0x1f]
b _0808F09E
.align 2, 0
_0808F094: .4byte gUnk_08121D54
_0808F098:
mov r0, ip
bl sub_080042AC
_0808F09E:
pop {r4, r5, pc}
thumb_func_start sub_0808F0A0
sub_0808F0A0: @ 0x0808F0A0
push {lr}
ldr r2, _0808F0B4 @ =gUnk_08121E5C
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808F0B4: .4byte gUnk_08121E5C
thumb_func_start sub_0808F0B8
sub_0808F0B8: @ 0x0808F0B8
push {lr}
ldr r2, _0808F0CC @ =gUnk_08121E88
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808F0CC: .4byte gUnk_08121E88
thumb_func_start sub_0808F0D0
sub_0808F0D0: @ 0x0808F0D0
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r1, #0x49
movs r2, #2
movs r3, #0
bl sub_080A2988
str r0, [r5, #0x54]
cmp r0, #0
bne _0808F0E8
bl sub_0805E780
_0808F0E8:
movs r6, #1
strb r6, [r5, #0xc]
ldr r0, _0808F148 @ =0x0000FF40
strh r0, [r5, #0x36]
bl sub_08000E50
adds r4, r0, #0
movs r0, #0x3f
ands r4, r0
bl sub_08000E50
ands r0, r6
cmp r0, #0
beq _0808F106
rsbs r4, r4, #0
_0808F106:
ldr r0, [r5, #0x50]
ldrh r0, [r0, #0x2e]
adds r0, r0, r4
strh r0, [r5, #0x2e]
bl sub_08000E50
adds r4, r0, #0
movs r0, #0x1f
ands r4, r0
bl sub_08000E50
ands r0, r6
cmp r0, #0
beq _0808F124
rsbs r4, r4, #0
_0808F124:
ldr r0, [r5, #0x50]
ldrh r0, [r0, #0x32]
adds r0, r0, r4
strh r0, [r5, #0x32]
movs r0, #0x90
lsls r0, r0, #2
str r0, [r5, #0x74]
movs r0, #0xa0
lsls r0, r0, #1
str r0, [r5, #0x78]
adds r0, r5, #0
movs r1, #3
bl sub_08004260
adds r0, r5, #0
bl sub_0808F14C
pop {r4, r5, r6, pc}
.align 2, 0
_0808F148: .4byte 0x0000FF40
thumb_func_start sub_0808F14C
sub_0808F14C: @ 0x0808F14C
push {r4, lr}
adds r4, r0, #0
bl sub_0808F2B0
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0808F16E
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x84
bl sub_080A3268
_0808F16E:
pop {r4, pc}
thumb_func_start sub_0808F170
sub_0808F170: @ 0x0808F170
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x74]
subs r0, #0x20
str r0, [r4, #0x74]
ldr r1, [r4, #0x78]
adds r1, #0x20
str r1, [r4, #0x78]
adds r0, r4, #0
movs r2, #8
movs r3, #2
bl sub_0806FCF4
ldr r1, [r4, #0x78]
ldr r0, _0808F1A0 @ =0x000001FF
cmp r1, r0
bls _0808F198
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0808F198:
adds r0, r4, #0
bl sub_0808F2B0
pop {r4, pc}
.align 2, 0
_0808F1A0: .4byte 0x000001FF
thumb_func_start sub_0808F1A4
sub_0808F1A4: @ 0x0808F1A4
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x78]
adds r1, #0x10
str r1, [r4, #0x78]
ldr r0, [r4, #0x74]
adds r0, #0x10
str r0, [r4, #0x74]
adds r0, r4, #0
movs r2, #8
movs r3, #2
bl sub_0806FCF4
ldr r1, [r4, #0x78]
ldr r0, _0808F1D4 @ =0x000003FF
cmp r1, r0
bls _0808F1D8
ldr r1, [r4, #0x54]
movs r0, #0xff
strb r0, [r1, #0xc]
bl sub_0805E780
b _0808F1DE
.align 2, 0
_0808F1D4: .4byte 0x000003FF
_0808F1D8:
adds r0, r4, #0
bl sub_0808F2B0
_0808F1DE:
pop {r4, pc}
thumb_func_start sub_0808F1E0
sub_0808F1E0: @ 0x0808F1E0
push {lr}
ldr r2, _0808F1F4 @ =gUnk_08121E98
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808F1F4: .4byte gUnk_08121E98
thumb_func_start sub_0808F1F8
sub_0808F1F8: @ 0x0808F1F8
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0x19]
movs r0, #3
orrs r2, r0
strb r2, [r4, #0x19]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r3, [r4, #0x50]
ldrb r1, [r3, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
movs r0, #0x3f
ands r2, r0
orrs r2, r1
strb r2, [r4, #0x19]
ldrb r1, [r3, #0x1b]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r4, #0x1b]
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1b]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
adds r0, r4, #0
bl sub_0808F244
pop {r4, pc}
thumb_func_start sub_0808F244
sub_0808F244: @ 0x0808F244
push {r4, lr}
adds r4, r0, #0
ldr r3, [r4, #0x50]
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrh r0, [r3, #0x32]
adds r0, #3
movs r2, #0
strh r0, [r4, #0x32]
ldr r1, [r4, #0x54]
adds r0, r1, #0
adds r0, #0x62
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r1, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
str r2, [r4, #0x34]
movs r0, #0x36
ldrsh r1, [r3, r0]
movs r0, #0x80
subs r0, r0, r1
str r0, [r4, #0x74]
movs r0, #0x36
ldrsh r1, [r3, r0]
movs r0, #0x80
lsls r0, r0, #1
subs r0, r0, r1
str r0, [r4, #0x78]
adds r3, #0x7f
ldrb r0, [r3]
str r0, [r4, #0x70]
adds r0, r4, #0
bl sub_0808F2B0
ldr r0, [r4, #0x50]
adds r0, #0x6d
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0808F2AC
bl sub_0805E780
_0808F2AC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808F2B0
sub_0808F2B0: @ 0x0808F2B0
push {lr}
ldr r1, [r0, #0x74]
ldr r2, [r0, #0x78]
ldr r3, [r0, #0x70]
bl sub_0805EC9C
pop {pc}
.align 2, 0
thumb_func_start sub_0808F2C0
sub_0808F2C0: @ 0x0808F2C0
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
adds r6, r0, #0
cmp r6, #0
bne _0808F322
adds r0, #1
strb r0, [r5, #0xc]
ldr r4, [r5, #0x50]
ldrb r2, [r4, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r4, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x1b]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
str r6, [r5, #0x34]
ldr r1, [r5, #0x50]
ldrh r0, [r1, #0x32]
adds r0, #3
strh r0, [r5, #0x32]
ldrh r0, [r1, #0x2e]
strh r0, [r5, #0x2e]
adds r0, r5, #0
movs r1, #3
bl sub_08004260
_0808F322:
ldr r2, [r5, #0x50]
movs r1, #0x36
ldrsh r0, [r2, r1]
cmp r0, #0
bne _0808F334
ldr r0, [r2, #0x74]
str r0, [r5, #0x74]
ldr r0, [r2, #0x78]
b _0808F34C
_0808F334:
movs r0, #0x36
ldrsh r1, [r2, r0]
movs r0, #0x80
lsls r0, r0, #2
subs r0, r0, r1
str r0, [r5, #0x74]
movs r0, #0x36
ldrsh r1, [r2, r0]
lsls r1, r1, #1
movs r0, #0xc0
lsls r0, r0, #2
subs r0, r0, r1
_0808F34C:
str r0, [r5, #0x78]
movs r0, #0
str r0, [r5, #0x70]
adds r0, r5, #0
bl sub_0808F2B0
ldr r1, [r5, #0x78]
adds r0, r5, #0
movs r2, #8
movs r3, #2
bl sub_0806FCF4
ldrb r0, [r5, #0xc]
cmp r0, #0xff
bne _0808F36E
bl sub_0805E780
_0808F36E:
pop {r4, r5, r6, pc}
thumb_func_start sub_0808F370
sub_0808F370: @ 0x0808F370
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _0808F388
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xd]
cmp r0, #1
bne _0808F3DA
strb r0, [r4, #0xc]
str r1, [r4, #0x70]
b _0808F3CC
_0808F388:
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xd]
subs r0, #1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #4
bhi _0808F3D4
ldr r0, [r4, #0x70]
cmp r0, #0
bne _0808F3C4
ldr r0, [r4, #0x74]
subs r0, #1
str r0, [r4, #0x74]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _0808F3DA
bl sub_08000E50
ldr r2, _0808F3C0 @ =gUnk_08121EA0
movs r1, #1
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r2
ldrh r0, [r1]
str r0, [r4, #0x70]
b _0808F3DA
.align 2, 0
_0808F3C0: .4byte gUnk_08121EA0
_0808F3C4:
subs r0, #1
str r0, [r4, #0x70]
cmp r0, #0
bne _0808F3DA
_0808F3CC:
adds r0, r4, #0
bl sub_0808F5EC
b _0808F3DA
_0808F3D4:
movs r0, #0
strb r0, [r4, #0xc]
str r0, [r4, #0x74]
_0808F3DA:
pop {r4, pc}
thumb_func_start sub_0808F3DC
sub_0808F3DC: @ 0x0808F3DC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0808F438
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
ldrb r1, [r4, #0xa]
adds r1, #1
adds r0, r4, #0
bl sub_08004260
ldrb r0, [r4, #0xa]
cmp r0, #8
beq _0808F41A
cmp r0, #7
bne _0808F42E
ldr r0, [r4, #0x54]
adds r1, r4, #0
bl sub_0806FAD8
b _0808F494
_0808F41A:
ldr r0, [r4, #0x54]
adds r0, #0x3f
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x3f
strb r0, [r1]
ldr r0, [r4, #0x54]
adds r0, #0x3f
movs r1, #0x7e
strb r1, [r0]
_0808F42E:
ldr r0, [r4, #0x54]
adds r1, r4, #0
bl sub_0806FAB0
b _0808F494
_0808F438:
ldr r0, [r4, #0x50]
ldr r0, [r0, #0x74]
cmp r0, #0
bne _0808F456
ldrb r0, [r4, #0xa]
cmp r0, #8
bne _0808F452
ldr r0, [r4, #0x54]
adds r1, r4, #0
adds r1, #0x3f
ldrb r1, [r1]
adds r0, #0x3f
strb r1, [r0]
_0808F452:
bl sub_0805E780
_0808F456:
ldrb r0, [r4, #0xa]
cmp r0, #5
bne _0808F486
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0808F486
ldr r0, [r4, #0x54]
movs r1, #0x49
movs r2, #8
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _0808F486
ldr r0, [r4, #0x50]
str r0, [r1, #0x50]
ldr r0, [r4, #0x50]
ldr r0, [r0, #0x50]
str r0, [r1, #0x54]
_0808F486:
adds r0, r4, #0
bl sub_08004274
ldr r0, [r4, #0x54]
adds r1, r4, #0
bl sub_0806FA6C
_0808F494:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808F498
sub_0808F498: @ 0x0808F498
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
beq _0808F4EC
adds r0, r5, #0
bl sub_0806F3E4
cmp r0, #0
beq _0808F4C2
ldr r0, _0808F4E4 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0808F4BE
movs r0, #0xef
bl sub_080A3268
_0808F4BE:
bl sub_0805E780
_0808F4C2:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0808F4D4
bl sub_0805E780
_0808F4D4:
ldr r0, _0808F4E8 @ =gUnk_03003F80
ldrb r0, [r0, #0x1c]
cmp r0, #1
beq _0808F550
bl sub_0805E780
b _0808F550
.align 2, 0
_0808F4E4: .4byte gUnk_030010A0
_0808F4E8: .4byte gUnk_03003F80
_0808F4EC:
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0x40
strb r0, [r5, #0xe]
ldrb r0, [r5, #0xb]
movs r6, #0x2b
cmp r0, #0
beq _0808F4FE
movs r6, #0x2c
_0808F4FE:
ldr r0, [r5, #0x50]
ldr r0, [r0, #0x48]
ldrb r1, [r0, #6]
ldrh r0, [r5, #0x2e]
subs r0, r0, r1
strh r0, [r5, #0x2e]
bl sub_08000E50
ldr r4, [r5, #0x50]
ldr r1, [r4, #0x48]
ldrb r1, [r1, #6]
lsls r1, r1, #1
bl __modsi3
ldrh r1, [r5, #0x2e]
adds r1, r1, r0
strh r1, [r5, #0x2e]
ldr r0, [r4, #0x48]
ldrb r1, [r0, #7]
ldrh r0, [r5, #0x32]
subs r0, r0, r1
strh r0, [r5, #0x32]
bl sub_08000E50
ldr r1, [r5, #0x50]
ldr r1, [r1, #0x48]
ldrb r1, [r1, #7]
lsls r1, r1, #1
bl __modsi3
ldrh r1, [r5, #0x32]
adds r1, r1, r0
strh r1, [r5, #0x32]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #4
bl sub_08004260
_0808F550:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0808F554
sub_0808F554: @ 0x0808F554
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FA6C
adds r1, r5, #0
adds r1, #0x63
ldrb r0, [r1]
subs r0, #0x18
strb r0, [r1]
ldr r0, [r5, #0x50]
adds r1, r0, #0
adds r1, #0x62
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0808F588
adds r2, r5, #0
adds r2, #0x62
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
ldrb r1, [r2]
adds r0, r0, r1
strb r0, [r2]
_0808F588:
ldrb r0, [r5, #0xc]
cmp r0, #0
beq _0808F5AC
adds r1, r5, #0
adds r1, #0x84
ldr r0, [r1]
cmp r0, #0
beq _0808F5A4
subs r0, #1
str r0, [r1]
cmp r0, #0
bne _0808F5A4
bl sub_0805E780
_0808F5A4:
adds r0, r5, #0
bl sub_08004274
b _0808F5E8
_0808F5AC:
movs r0, #1
strb r0, [r5, #0xc]
ldr r4, [r5, #0x50]
ldrb r2, [r4, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r4, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x1b]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
adds r0, r5, #0
movs r1, #3
bl sub_08004260
_0808F5E8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0808F5EC
sub_0808F5EC: @ 0x0808F5EC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
movs r1, #0x49
movs r2, #5
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _0808F608
str r4, [r1, #0x50]
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
_0808F608:
ldr r0, [r4, #0x54]
movs r1, #0x49
movs r2, #6
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _0808F620
str r4, [r1, #0x50]
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
_0808F620:
ldr r0, [r4, #0x54]
movs r1, #0x49
movs r2, #7
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _0808F638
str r4, [r1, #0x50]
ldr r0, [r4, #0x54]
str r0, [r1, #0x54]
_0808F638:
movs r0, #0x96
lsls r0, r0, #2
str r0, [r4, #0x74]
pop {r4, pc}
thumb_func_start sub_0808F640
sub_0808F640: @ 0x0808F640
push {lr}
ldr r2, _0808F654 @ =gUnk_08121EA4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808F654: .4byte gUnk_08121EA4
thumb_func_start sub_0808F658
sub_0808F658: @ 0x0808F658
push {r4, r5, lr}
adds r5, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r0, [r5, #0x1b]
movs r1, #0xc0
orrs r0, r1
strb r0, [r5, #0x1b]
ldrb r0, [r5, #0x19]
orrs r0, r1
strb r0, [r5, #0x19]
ldrb r0, [r5, #0xa]
adds r3, r5, #0
adds r3, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r0, [r5, #0xa]
strb r0, [r5, #0x1e]
movs r0, #8
strb r0, [r5, #0x15]
ldr r1, _0808F6D8 @ =gUnk_08121EB0
ldrb r0, [r5, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
movs r4, #0
strh r0, [r5, #0x24]
ldr r3, _0808F6DC @ =gUnk_03000BF0
ldrh r1, [r3, #6]
adds r2, r1, #0
subs r2, #0x60
adds r0, r5, #0
adds r0, #0x78
strh r2, [r0]
ldrh r0, [r3, #0x1e]
adds r1, r1, r0
adds r1, #0x60
adds r0, r5, #0
adds r0, #0x7a
strh r1, [r0]
strb r4, [r5, #0x14]
bl sub_08000E50
movs r1, #0xf
ands r0, r1
lsls r0, r0, #4
ldrh r1, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
strb r4, [r5, #0xe]
strb r4, [r5, #0xd]
pop {r4, r5, pc}
.align 2, 0
_0808F6D8: .4byte gUnk_08121EB0
_0808F6DC: .4byte gUnk_03000BF0
thumb_func_start sub_0808F6E0
sub_0808F6E0: @ 0x0808F6E0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x78
movs r2, #0x2e
ldrsh r1, [r4, r2]
movs r2, #0
ldrsh r0, [r0, r2]
cmp r1, r0
blt _0808F704
adds r0, r4, #0
adds r0, #0x7a
movs r2, #0
ldrsh r0, [r0, r2]
cmp r1, r0
ble _0808F708
_0808F704:
movs r0, #2
strb r0, [r4, #0xc]
_0808F708:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808F70C
sub_0808F70C: @ 0x0808F70C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _0808F75C
movs r0, #1
strb r0, [r4, #0xd]
bl sub_08000E50
movs r1, #7
ands r0, r1
lsls r0, r0, #3
adds r0, #0x1f
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0808F738
adds r0, r4, #0
adds r0, #0x7a
b _0808F73C
_0808F738:
adds r0, r4, #0
adds r0, #0x78
_0808F73C:
ldrh r0, [r0]
strh r0, [r4, #0x2e]
ldrb r0, [r4, #0xa]
cmp r0, #2
bne _0808F75C
bl sub_08000E50
ldr r3, _0808F778 @ =gUnk_08121EB3
ldrb r1, [r4, #0xb]
lsls r1, r1, #1
movs r2, #1
ands r2, r0
adds r1, r1, r2
adds r1, r1, r3
ldrb r0, [r1]
strh r0, [r4, #0x32]
_0808F75C:
ldrb r1, [r4, #0xd]
cmp r1, #1
bne _0808F774
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _0808F774
strb r1, [r4, #0xc]
strb r0, [r4, #0xd]
_0808F774:
pop {r4, pc}
.align 2, 0
_0808F778: .4byte gUnk_08121EB3
thumb_func_start sub_0808F77C
sub_0808F77C: @ 0x0808F77C
push {lr}
ldr r2, _0808F790 @ =gUnk_08121EB8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0808F790: .4byte gUnk_08121EB8
thumb_func_start sub_0808F794
sub_0808F794: @ 0x0808F794
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x3c
strb r1, [r0, #0xe]
movs r1, #0
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_0808F7A8
sub_0808F7A8: @ 0x0808F7A8
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808F7D0
movs r0, #0x78
strb r0, [r2, #0xe]
ldrb r0, [r2, #0xc]
adds r0, #1
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
_0808F7D0:
pop {pc}
.align 2, 0
thumb_func_start sub_0808F7D4
sub_0808F7D4: @ 0x0808F7D4
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808F80A
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
_0808F80A:
pop {r4, pc}
thumb_func_start sub_0808F80C
sub_0808F80C: @ 0x0808F80C
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0808F850
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0x15]
movs r2, #0
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
strb r0, [r4, #0x1b]
strb r2, [r4, #0xe]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
ldr r0, _0808F854 @ =0x0000012B
bl sub_080A3268
_0808F850:
pop {r4, pc}
.align 2, 0
_0808F854: .4byte 0x0000012B
thumb_func_start sub_0808F858
sub_0808F858: @ 0x0808F858
push {r4, lr}
adds r4, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0808F884
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0808F88A
adds r0, r4, #0
bl sub_08004274
b _0808F88A
_0808F884:
adds r0, r4, #0
bl sub_08004274
_0808F88A:
movs r1, #0x32
ldrsh r0, [r4, r1]
ldr r1, _0808F8C4 @ =gUnk_03000BF0
ldrh r2, [r1, #8]
subs r0, r0, r2
movs r1, #0x8c
lsls r1, r1, #2
cmp r0, r1
bgt _0808F8C8
adds r0, r2, r1
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808F8EA
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
b _0808F8EA
.align 2, 0
_0808F8C4: .4byte gUnk_03000BF0
_0808F8C8:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808F8EA
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
ldr r0, _0808F8EC @ =0x0000012B
bl sub_080A3268
_0808F8EA:
pop {r4, pc}
.align 2, 0
_0808F8EC: .4byte 0x0000012B
thumb_func_start sub_0808F8F0
sub_0808F8F0: @ 0x0808F8F0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808F912
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #5
bl sub_08004260
_0808F912:
pop {r4, pc}
thumb_func_start sub_0808F914
sub_0808F914: @ 0x0808F914
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808F93C
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_0808F93C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808F940
sub_0808F940: @ 0x0808F940
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808F960
ldr r1, _0808F964 @ =gUnk_02000080
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
bl sub_0805E780
_0808F960:
pop {r4, pc}
.align 2, 0
_0808F964: .4byte gUnk_02000080
thumb_func_start sub_0808F968
sub_0808F968: @ 0x0808F968
push {r4, lr}
adds r4, r0, #0
ldr r1, _0808F98C @ =gUnk_08121ED8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _0808F988
adds r0, r4, #0
bl sub_08090514
_0808F988:
pop {r4, pc}
.align 2, 0
_0808F98C: .4byte gUnk_08121ED8
thumb_func_start sub_0808F990
sub_0808F990: @ 0x0808F990
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #1
strb r2, [r4, #0xc]
movs r3, #0
movs r0, #0x80
strh r0, [r4, #0x24]
ldrb r0, [r4, #0xe]
strb r0, [r4, #0xf]
strb r3, [r4, #0xe]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
adds r0, r4, #0
adds r0, #0x81
strb r3, [r0]
adds r0, #2
strb r3, [r0]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _0808F9E8
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x80
strb r3, [r0]
b _0808FA1C
_0808F9E8:
adds r0, r4, #0
adds r0, #0x80
strb r2, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0808FA0A
cmp r0, #4
bne _0808FA1C
_0808FA0A:
ldrh r0, [r4, #0x32]
adds r0, #2
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xfe
strb r0, [r1]
strb r3, [r4, #0xd]
strb r3, [r4, #0x1e]
_0808FA1C:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0808FAC4
movs r6, #0
cmp r0, #0x80
beq _0808FA84
ldrh r1, [r4, #0xa]
ldr r0, _0808FA38 @ =0x00000101
cmp r1, r0
bne _0808FA3C
movs r0, #0xf
ldrsb r0, [r4, r0]
ldrh r1, [r4, #0x32]
b _0808FA42
.align 2, 0
_0808FA38: .4byte 0x00000101
_0808FA3C:
movs r0, #0xf
ldrsb r0, [r4, r0]
ldrh r1, [r4, #0x2e]
_0808FA42:
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x7e
strh r0, [r1]
adds r5, r1, #0
ldr r3, [r4, #0x50]
cmp r3, #0
bne _0808FA5E
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
b _0808FA7C
_0808FA5E:
adds r2, r4, #0
adds r2, #0x82
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808FA76
ldrb r0, [r3, #0xc]
cmp r0, #2
bne _0808FAA2
adds r6, #1
b _0808FAA2
_0808FA76:
ldrb r0, [r2]
bl sub_0807CBD0
_0808FA7C:
cmp r0, #0
beq _0808FAA2
adds r6, #1
b _0808FAA2
_0808FA84:
movs r6, #1
ldrh r1, [r4, #0xa]
ldr r0, _0808FA94 @ =0x00000101
cmp r1, r0
bne _0808FA98
ldrh r1, [r4, #0x32]
b _0808FA9A
.align 2, 0
_0808FA94: .4byte 0x00000101
_0808FA98:
ldrh r1, [r4, #0x2e]
_0808FA9A:
adds r0, r4, #0
adds r0, #0x7e
strh r1, [r0]
adds r5, r0, #0
_0808FAA2:
cmp r6, #0
beq _0808FAC4
adds r1, r4, #0
adds r1, #0x81
movs r0, #1
strb r0, [r1]
ldrh r1, [r4, #0xa]
ldr r0, _0808FABC @ =0x00000101
cmp r1, r0
bne _0808FAC0
ldrh r0, [r5]
strh r0, [r4, #0x32]
b _0808FAC4
.align 2, 0
_0808FABC: .4byte 0x00000101
_0808FAC0:
ldrh r0, [r5]
strh r0, [r4, #0x2e]
_0808FAC4:
adds r0, r4, #0
bl sub_0808FF50
pop {r4, r5, r6, pc}
thumb_func_start sub_0808FACC
sub_0808FACC: @ 0x0808FACC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x81
ldrb r0, [r0]
cmp r0, #0
bne _0808FAF2
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
bne _0808FAEA
adds r0, r4, #0
bl sub_0808FBFC
b _0808FB0A
_0808FAEA:
adds r0, r4, #0
bl sub_0808FB68
b _0808FB0A
_0808FAF2:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0808FB0A
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808FB0A
movs r0, #0x86
lsls r0, r0, #1
bl sub_08004488
_0808FB0A:
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0808FB14
cmp r0, #4
bne _0808FB64
_0808FB14:
ldrb r1, [r4, #0xd]
cmp r1, #1
beq _0808FB3E
cmp r1, #1
bgt _0808FB24
cmp r1, #0
beq _0808FB2A
b _0808FB64
_0808FB24:
cmp r1, #2
beq _0808FB5E
b _0808FB64
_0808FB2A:
adds r0, r4, #0
bl sub_0808FECC
cmp r0, #0
beq _0808FB64
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0xc
strb r0, [r4, #0xe]
b _0808FB64
_0808FB3E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0808FB64
strb r1, [r4, #0x1e]
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #0x80
bl sub_08004488
adds r0, r4, #0
bl sub_0808FF20
b _0808FB64
_0808FB5E:
adds r0, r4, #0
bl nullsub_1
_0808FB64:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808FB68
sub_0808FB68: @ 0x0808FB68
push {r4, lr}
adds r4, r0, #0
adds r0, #0x70
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _0808FBAC @ =0x00004031
cmp r1, r0
bhi _0808FBB0
subs r0, #1
cmp r1, r0
blo _0808FBB0
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r1, #0
subs r0, #0x30
movs r1, #1
ands r0, r1
lsls r0, r0, #4
movs r1, #8
orrs r0, r1
strb r0, [r4, #0x15]
movs r0, #1
bl sub_08078A90
adds r0, r4, #0
movs r1, #0
bl sub_0808FD44
b _0808FBF6
.align 2, 0
_0808FBAC: .4byte 0x00004031
_0808FBB0:
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _0808FBF8 @ =0x00004031
cmp r1, r0
bhi _0808FBF0
subs r0, #1
cmp r1, r0
blo _0808FBF0
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r1, #0
subs r0, #0x30
movs r1, #1
ands r0, r1
lsls r0, r0, #4
movs r1, #8
orrs r0, r1
strb r0, [r4, #0x15]
movs r0, #1
bl sub_08078A90
adds r0, r4, #0
movs r1, #1
bl sub_0808FD44
_0808FBF0:
adds r0, r4, #0
bl sub_0808FDE8
_0808FBF6:
pop {r4, pc}
.align 2, 0
_0808FBF8: .4byte 0x00004031
thumb_func_start sub_0808FBFC
sub_0808FBFC: @ 0x0808FBFC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x7c
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
adds r1, r0, #0
ldr r0, _0808FC38 @ =0x0000404A
cmp r1, r0
beq _0808FC34
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r1, #0
subs r0, #0x4b
movs r1, #3
ands r0, r1
lsls r0, r0, #3
strb r0, [r4, #0x15]
movs r0, #1
bl sub_08078A90
adds r0, r4, #0
movs r1, #0
bl sub_0808FD44
_0808FC34:
pop {r4, pc}
.align 2, 0
_0808FC38: .4byte 0x0000404A
thumb_func_start sub_0808FC3C
sub_0808FC3C: @ 0x0808FC3C
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_0808FC5C
cmp r0, #0
beq _0808FC58
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0
bl sub_08078A90
_0808FC58:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0808FC5C
sub_0808FC5C: @ 0x0808FC5C
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _0808FD40
ldrb r1, [r4, #0xa]
cmp r1, #2
beq _0808FC7C
cmp r1, #4
bne _0808FC84
_0808FC7C:
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xfe
b _0808FC88
_0808FC84:
adds r1, r4, #0
adds r1, #0x63
_0808FC88:
strb r0, [r1]
adds r0, r4, #0
bl sub_080002D0
cmp r0, #0
bne _0808FD40
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0808FD30
movs r2, #0
ldrh r1, [r4, #0xa]
ldr r0, _0808FCB4 @ =0x00000101
cmp r1, r0
bne _0808FCB8
movs r1, #0x32
ldrsh r0, [r4, r1]
adds r1, r4, #0
adds r1, #0x7e
ldrh r1, [r1]
cmp r0, r1
bne _0808FCC8
b _0808FCCC
.align 2, 0
_0808FCB4: .4byte 0x00000101
_0808FCB8:
movs r1, #0x2e
ldrsh r0, [r4, r1]
adds r1, r4, #0
adds r1, #0x7e
ldrh r1, [r1]
cmp r0, r1
bne _0808FCC8
movs r2, #1
_0808FCC8:
cmp r2, #0
beq _0808FD30
_0808FCCC:
adds r0, r4, #0
adds r0, #0x81
movs r5, #1
strb r5, [r0]
ldr r3, [r4, #0x50]
cmp r3, #0
bne _0808FCE4
adds r0, #5
ldrh r0, [r0]
bl sub_0807CCC8
b _0808FD0C
_0808FCE4:
adds r2, r4, #0
adds r2, #0x82
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0808FD06
adds r0, r3, #0
adds r0, #0x28
subs r2, #8
adds r1, r5, #0
ldrh r2, [r2]
lsls r1, r2
ldrb r2, [r0]
orrs r1, r2
strb r1, [r0]
b _0808FD0C
_0808FD06:
ldrb r0, [r2]
bl sub_0807CCB4
_0808FD0C:
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
bne _0808FD1A
movs r0, #4
b _0808FD1C
_0808FD1A:
movs r0, #0x18
_0808FD1C:
strb r0, [r4, #0xe]
ldr r0, _0808FD3C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0808FD30
ldrb r0, [r4, #0xe]
adds r0, #0x10
strb r0, [r4, #0xe]
_0808FD30:
adds r0, r4, #0
bl sub_0808FF50
movs r0, #1
b _0808FD42
.align 2, 0
_0808FD3C: .4byte gUnk_03003F80
_0808FD40:
movs r0, #0
_0808FD42:
pop {r4, r5, pc}
thumb_func_start sub_0808FD44
sub_0808FD44: @ 0x0808FD44
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #1
bne _0808FD8E
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
beq _0808FD62
adds r0, r4, #0
bl sub_08090498
_0808FD62:
cmp r5, #0
beq _0808FD6C
adds r0, r4, #0
adds r0, #0x72
b _0808FD70
_0808FD6C:
adds r0, r4, #0
adds r0, #0x70
_0808FD70:
ldrh r5, [r0]
ldr r0, _0808FD84 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0808FD88
movs r0, #0x40
strh r0, [r4, #0x24]
b _0808FDB2
.align 2, 0
_0808FD84: .4byte gUnk_03003F80
_0808FD88:
strh r1, [r4, #0x24]
movs r0, #0x10
b _0808FDB4
_0808FD8E:
adds r0, r4, #0
adds r0, #0x7c
ldrh r5, [r0]
ldr r0, _0808FDAC @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0808FDB0
movs r1, #0x40
movs r0, #0x40
strh r0, [r4, #0x24]
strb r1, [r4, #0xe]
b _0808FDB6
.align 2, 0
_0808FDAC: .4byte gUnk_03003F80
_0808FDB0:
strh r1, [r4, #0x24]
_0808FDB2:
movs r0, #0x20
_0808FDB4:
strb r0, [r4, #0xe]
_0808FDB6:
ldr r0, _0808FDE0 @ =0x0000010F
bl sub_08004488
adds r0, r4, #0
bl sub_08090254
ldr r1, _0808FDE4 @ =gUnk_080B4488
ldrb r0, [r4, #0x15]
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
adds r0, r5, r0
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080001DA
pop {r4, r5, pc}
.align 2, 0
_0808FDE0: .4byte 0x0000010F
_0808FDE4: .4byte gUnk_080B4488
thumb_func_start sub_0808FDE8
sub_0808FDE8: @ 0x0808FDE8
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r0, #0x70
ldrh r5, [r0]
subs r0, r5, #1
movs r1, #1
bl sub_080002E0
adds r4, r0, #0
adds r0, r5, #0
movs r1, #1
bl sub_080001DA
ldr r6, _0808FE28 @ =0x0000402E
cmp r0, r6
bne _0808FE30
movs r0, #0xf0
ands r0, r4
cmp r0, #0
beq _0808FE14
cmp r0, #0x50
bne _0808FE1C
_0808FE14:
movs r0, #5
ands r0, r4
cmp r0, #0
bne _0808FE58
_0808FE1C:
ldr r0, _0808FE2C @ =0x0000402C
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
b _0808FE58
.align 2, 0
_0808FE28: .4byte 0x0000402E
_0808FE2C: .4byte 0x0000402C
_0808FE30:
adds r0, r5, #0
movs r1, #1
bl sub_080002E0
cmp r0, #5
bne _0808FE58
movs r1, #0xf0
ands r1, r4
cmp r1, #0
beq _0808FE48
cmp r1, #0x50
bne _0808FE58
_0808FE48:
ands r4, r0
cmp r4, #0
beq _0808FE58
adds r0, r6, #0
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
_0808FE58:
adds r0, r7, #0
adds r0, #0x72
ldrh r5, [r0]
adds r0, r5, #1
movs r1, #1
bl sub_080002E0
adds r4, r0, #0
adds r0, r5, #0
movs r1, #1
bl sub_080001DA
ldr r6, _0808FE98 @ =0x0000402F
cmp r0, r6
bne _0808FEA0
movs r0, #0xf0
ands r0, r4
cmp r0, #0
beq _0808FE82
cmp r0, #0x50
bne _0808FE8A
_0808FE82:
movs r0, #0xa
ands r0, r4
cmp r0, #0
bne _0808FEC8
_0808FE8A:
ldr r0, _0808FE9C @ =0x0000402D
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
b _0808FEC8
.align 2, 0
_0808FE98: .4byte 0x0000402F
_0808FE9C: .4byte 0x0000402D
_0808FEA0:
adds r0, r5, #0
movs r1, #1
bl sub_080002E0
cmp r0, #0xa
bne _0808FEC8
movs r1, #0xf0
ands r1, r4
cmp r1, #0
beq _0808FEB8
cmp r1, #0x50
bne _0808FEC8
_0808FEB8:
ands r4, r0
cmp r4, #0
beq _0808FEC8
adds r0, r6, #0
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
_0808FEC8:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0808FECC
sub_0808FECC: @ 0x0808FECC
push {r4, r5, lr}
adds r2, r0, #0
movs r4, #1
ldr r0, _0808FF18 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _0808FF10
ldr r3, _0808FF1C @ =gLinkEntity
ldrb r0, [r3, #0xc]
cmp r0, #6
bne _0808FF10
ldrb r0, [r3, #0x14]
cmp r0, #0
bne _0808FF10
movs r1, #0x32
ldrsh r0, [r3, r1]
movs r5, #0x32
ldrsh r1, [r2, r5]
subs r0, r0, r1
cmp r0, #0x13
bgt _0808FF10
movs r0, #0x2e
ldrsh r2, [r2, r0]
adds r0, r2, #0
adds r0, #0xc
movs r5, #0x2e
ldrsh r1, [r3, r5]
cmp r0, r1
ble _0808FF10
subs r0, #0x18
cmp r0, r1
blt _0808FF12
_0808FF10:
movs r4, #0
_0808FF12:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
_0808FF18: .4byte gUnk_03003F80
_0808FF1C: .4byte gLinkEntity
thumb_func_start sub_0808FF20
sub_0808FF20: @ 0x0808FF20
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xb]
cmp r1, #0
beq _0808FF4A
cmp r1, #0
blt _0808FF4A
cmp r1, #2
bgt _0808FF4A
subs r1, #1
movs r0, #0x63
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0808FF4A
str r4, [r1, #0x50]
adds r0, r4, #0
bl sub_0806FA24
_0808FF4A:
pop {r4, pc}
thumb_func_start nullsub_1
nullsub_1: @ 0x0808FF4C
bx lr
.align 2, 0
thumb_func_start sub_0808FF50
sub_0808FF50: @ 0x0808FF50
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _0808FF98 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r2, r6, #0
adds r2, #0x7c
strh r1, [r2]
ldrh r0, [r6, #0x2e]
movs r1, #0xf
ands r1, r0
ldrh r7, [r2]
adds r0, r6, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #0
beq _0808FF9C
cmp r0, #1
beq _0808FFC0
b _0809008A
.align 2, 0
_0808FF98: .4byte gUnk_03000BF0
_0808FF9C:
adds r0, r6, #0
adds r0, #0x70
strh r7, [r0]
ldrh r0, [r0]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
ldr r0, _0808FFBC @ =0x0000404A
adds r1, r7, #0
movs r2, #1
bl sub_0800015E
b _0809008A
.align 2, 0
_0808FFBC: .4byte 0x0000404A
_0808FFC0:
movs r0, #8
ands r1, r0
cmp r1, #0
beq _0809002C
adds r0, r6, #0
adds r0, #0x70
strh r7, [r0]
ldrh r0, [r0]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
ldr r4, _08090028 @ =gUnk_08121EE4
movs r0, #0x81
adds r0, r0, r6
mov r8, r0
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
adds r1, r7, #0
movs r2, #1
bl sub_0800015E
adds r0, r7, #1
adds r5, r6, #0
adds r5, #0x72
strh r0, [r5]
ldrh r0, [r5]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
mov r1, r8
ldrb r0, [r1]
adds r0, #4
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
ldrh r2, [r5]
adds r0, r6, #0
bl sub_08090094
adds r0, r6, #0
movs r1, #1
bl sub_0809028C
b _0809008A
.align 2, 0
_08090028: .4byte gUnk_08121EE4
_0809002C:
adds r0, r6, #0
adds r0, #0x72
strh r7, [r0]
ldrh r0, [r0]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
ldr r5, _08090090 @ =gUnk_08121EE4
movs r4, #0x81
adds r4, r4, r6
mov r8, r4
ldrb r0, [r4]
lsls r0, r0, #1
adds r0, r0, r5
ldrh r0, [r0]
adds r1, r7, #0
movs r2, #1
bl sub_0800015E
subs r0, r7, #1
adds r4, r6, #0
adds r4, #0x70
strh r0, [r4]
ldrh r0, [r4]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
mov r1, r8
ldrb r0, [r1]
adds r0, #2
lsls r0, r0, #1
adds r0, r0, r5
ldrh r1, [r0]
ldrh r2, [r4]
adds r0, r6, #0
bl sub_08090094
adds r0, r6, #0
movs r1, #0
bl sub_0809028C
_0809008A:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08090090: .4byte gUnk_08121EE4
thumb_func_start sub_08090094
sub_08090094: @ 0x08090094
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r5, r1, #0
adds r7, r2, #0
adds r0, r7, #0
movs r1, #1
bl sub_080002E0
adds r4, r0, #0
adds r0, r7, #0
movs r1, #1
bl sub_080001DA
adds r3, r0, #0
movs r0, #0x80
lsls r0, r0, #7
ands r0, r3
cmp r0, #0
bne _0809012C
adds r3, r5, #0
ldr r1, _080900D0 @ =0xFFFFBFDC
adds r0, r3, r1
cmp r0, #0xb
bhi _0809011A
lsls r0, r0, #2
ldr r1, _080900D4 @ =_080900D8
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080900D0: .4byte 0xFFFFBFDC
_080900D4: .4byte _080900D8
_080900D8: @ jump table
.4byte _08090114 @ case 0
.4byte _08090108 @ case 1
.4byte _0809011A @ case 2
.4byte _0809011A @ case 3
.4byte _0809011A @ case 4
.4byte _0809011A @ case 5
.4byte _0809011A @ case 6
.4byte _0809011A @ case 7
.4byte _08090114 @ case 8
.4byte _0809010E @ case 9
.4byte _08090114 @ case 10
.4byte _0809010E @ case 11
_08090108:
cmp r4, #5
bne _0809011A
b _08090118
_0809010E:
cmp r4, #5
bne _0809011A
b _08090118
_08090114:
cmp r4, #0xa
bne _0809011A
_08090118:
ldr r3, _08090128 @ =0x00004022
_0809011A:
adds r0, r3, #0
adds r1, r7, #0
movs r2, #1
bl sub_0800015E
b _08090242
.align 2, 0
_08090128: .4byte 0x00004022
_0809012C:
ldr r1, _08090140 @ =0xFFFFBFDE
adds r0, r3, r1
cmp r0, #0xd
bls _08090136
b _08090242
_08090136:
lsls r0, r0, #2
ldr r1, _08090144 @ =_08090148
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08090140: .4byte 0xFFFFBFDE
_08090144: .4byte _08090148
_08090148: @ jump table
.4byte _08090242 @ case 0
.4byte _08090242 @ case 1
.4byte _080901EC @ case 2
.4byte _08090180 @ case 3
.4byte _08090242 @ case 4
.4byte _08090242 @ case 5
.4byte _08090242 @ case 6
.4byte _08090242 @ case 7
.4byte _08090242 @ case 8
.4byte _08090242 @ case 9
.4byte _08090210 @ case 10
.4byte _080901B4 @ case 11
.4byte _08090210 @ case 12
.4byte _080901B4 @ case 13
_08090180:
ldr r0, _080901A8 @ =0x00004024
cmp r5, r0
bne _08090194
ldr r3, _080901AC @ =0x00004022
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
_08090194:
ldr r0, _080901B0 @ =0x0000402C
cmp r5, r0
bne _08090238
ldr r3, _080901AC @ =0x00004022
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x10
b _08090234
.align 2, 0
_080901A8: .4byte 0x00004024
_080901AC: .4byte 0x00004022
_080901B0: .4byte 0x0000402C
_080901B4:
ldr r0, _080901DC @ =0x0000402C
cmp r5, r0
bne _080901C8
ldr r3, _080901E0 @ =0x0000402B
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x10
orrs r0, r1
strb r0, [r2]
_080901C8:
ldr r0, _080901E4 @ =0x00004024
cmp r5, r0
bne _08090238
ldr r3, _080901E8 @ =0x00004022
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x10
b _08090234
.align 2, 0
_080901DC: .4byte 0x0000402C
_080901E0: .4byte 0x0000402B
_080901E4: .4byte 0x00004024
_080901E8: .4byte 0x00004022
_080901EC:
ldr r0, _08090204 @ =0x00004025
cmp r5, r0
bne _08090200
ldr r3, _08090208 @ =0x00004022
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x20
orrs r0, r1
strb r0, [r2]
_08090200:
ldr r0, _0809020C @ =0x0000402D
b _08090226
.align 2, 0
_08090204: .4byte 0x00004025
_08090208: .4byte 0x00004022
_0809020C: .4byte 0x0000402D
_08090210:
ldr r0, _08090244 @ =0x0000402D
cmp r5, r0
bne _08090224
ldr r3, _08090248 @ =0x0000402B
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x20
orrs r0, r1
strb r0, [r2]
_08090224:
ldr r0, _0809024C @ =0x00004025
_08090226:
cmp r5, r0
bne _08090238
ldr r3, _08090250 @ =0x00004022
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x20
_08090234:
orrs r0, r1
strb r0, [r2]
_08090238:
adds r0, r3, #0
adds r1, r7, #0
movs r2, #1
bl sub_0800015E
_08090242:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08090244: .4byte 0x0000402D
_08090248: .4byte 0x0000402B
_0809024C: .4byte 0x00004025
_08090250: .4byte 0x00004022
thumb_func_start sub_08090254
sub_08090254: @ 0x08090254
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
adds r5, r4, #0
adds r5, #0x38
ldrb r2, [r5]
bl sub_0807B9B8
adds r0, r4, #0
adds r0, #0x80
ldrb r0, [r0]
cmp r0, #1
bne _08090288
adds r0, r4, #0
adds r0, #0x76
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x72
ldrh r1, [r1]
ldrb r2, [r5]
bl sub_0807B9B8
_08090288:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809028C
sub_0809028C: @ 0x0809028C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
adds r4, r6, #0
adds r4, #0x83
ldrb r0, [r4]
movs r2, #0x30
ands r2, r0
movs r0, #0
mov sb, r0
strb r2, [r4]
adds r0, r6, #0
adds r0, #0x70
ldrh r5, [r0]
adds r7, r5, #0
subs r7, #0x80
adds r0, #2
ldrh r3, [r0]
movs r0, #0x80
rsbs r0, r0, #0
adds r0, r0, r3
mov r8, r0
cmp r1, #1
bne _0809039A
movs r0, #0x20
ands r0, r2
cmp r0, #0
beq _080902D4
adds r1, r3, #0
subs r1, #0x7f
movs r0, #0
bl sub_08090480
b _080902FE
_080902D4:
mov r0, r8
movs r1, #2
bl sub_080002B0
adds r1, r0, #0
ldr r0, _080902EC @ =0x00000301
cmp r1, r0
beq _080902F0
adds r0, #7
cmp r1, r0
beq _080902F6
b _080902FE
.align 2, 0
_080902EC: .4byte 0x00000301
_080902F0:
ldrb r0, [r4]
movs r1, #8
b _080902FA
_080902F6:
ldrb r0, [r4]
movs r1, #2
_080902FA:
orrs r0, r1
strb r0, [r4]
_080902FE:
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x2a
ands r0, r1
adds r4, r2, #0
cmp r0, #0
beq _0809031E
movs r0, #0
adds r1, r7, #0
bl sub_08090480
movs r0, #0
mov r1, r8
bl sub_08090480
_0809031E:
ldrb r1, [r4]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0809034E
subs r4, r7, #1
adds r0, r4, #0
movs r1, #1
bl sub_080002B0
movs r1, #0xc0
lsls r1, r1, #2
cmp r0, r1
bne _0809033C
b _08090478
_0809033C:
movs r0, #0
adds r1, r4, #0
bl sub_08090480
subs r1, r7, #2
movs r0, #2
bl sub_08090480
b _08090478
_0809034E:
subs r0, r7, #1
movs r1, #2
bl sub_080002B0
adds r1, r0, #0
movs r0, #0xc0
lsls r0, r0, #2
cmp r1, r0
beq _08090368
adds r0, #8
cmp r1, r0
beq _0809036E
b _08090376
_08090368:
ldrb r1, [r4]
movs r0, #4
b _08090372
_0809036E:
ldrb r1, [r4]
movs r0, #1
_08090372:
orrs r0, r1
strb r0, [r4]
_08090376:
ldrb r1, [r4]
movs r0, #0x15
ands r0, r1
cmp r0, #0
beq _08090478
movs r0, #0x2a
ands r0, r1
cmp r0, #0
bne _08090478
movs r0, #0
adds r1, r7, #0
bl sub_08090480
movs r0, #1
mov r1, r8
bl sub_08090480
b _08090478
_0809039A:
movs r0, #0x10
ands r0, r2
cmp r0, #0
beq _080903AE
adds r1, r5, #0
subs r1, #0x81
movs r0, #0
bl sub_08090480
b _080903DA
_080903AE:
adds r0, r7, #0
movs r1, #2
bl sub_080002B0
adds r1, r0, #0
ldr r0, _080903C8 @ =0x00000302
cmp r1, r0
beq _080903CC
adds r0, #4
cmp r1, r0
beq _080903D2
b _080903DA
.align 2, 0
_080903C8: .4byte 0x00000302
_080903CC:
ldrb r0, [r4]
movs r1, #4
b _080903D6
_080903D2:
ldrb r0, [r4]
movs r1, #1
_080903D6:
orrs r0, r1
strb r0, [r4]
_080903DA:
adds r2, r6, #0
adds r2, #0x83
ldrb r1, [r2]
movs r0, #0x15
ands r0, r1
adds r4, r2, #0
cmp r0, #0
beq _080903FA
movs r0, #0
adds r1, r7, #0
bl sub_08090480
movs r0, #0
mov r1, r8
bl sub_08090480
_080903FA:
ldrb r1, [r4]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0809042C
mov r4, r8
adds r4, #1
adds r0, r4, #0
movs r1, #1
bl sub_080002B0
movs r1, #0xc0
lsls r1, r1, #2
cmp r0, r1
beq _08090478
movs r0, #0
adds r1, r4, #0
bl sub_08090480
mov r1, r8
adds r1, #2
movs r0, #1
bl sub_08090480
b _08090478
_0809042C:
mov r0, r8
adds r0, #1
movs r1, #2
bl sub_080002B0
adds r1, r0, #0
movs r0, #0xc0
lsls r0, r0, #2
cmp r1, r0
beq _08090448
adds r0, #6
cmp r1, r0
beq _0809044E
b _08090456
_08090448:
ldrb r1, [r4]
movs r0, #8
b _08090452
_0809044E:
ldrb r1, [r4]
movs r0, #2
_08090452:
orrs r0, r1
strb r0, [r4]
_08090456:
ldrb r1, [r4]
movs r0, #0x2a
ands r0, r1
cmp r0, #0
beq _08090478
movs r0, #0x15
ands r0, r1
cmp r0, #0
bne _08090478
movs r0, #2
adds r1, r7, #0
bl sub_08090480
movs r0, #0
mov r1, r8
bl sub_08090480
_08090478:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08090480
sub_08090480: @ 0x08090480
push {lr}
ldr r2, _08090494 @ =gUnk_08121EF0
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
movs r2, #1
bl sub_0800015E
pop {pc}
.align 2, 0
_08090494: .4byte gUnk_08121EF0
thumb_func_start sub_08090498
sub_08090498: @ 0x08090498
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x70
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x80
adds r0, r4, #0
movs r1, #1
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x83
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _080904D2
adds r0, r4, #0
movs r1, #2
bl sub_080002B0
ldr r1, _08090510 @ =0x00000306
cmp r0, r1
bne _080904D2
movs r0, #0x62
adds r1, r4, #0
movs r2, #1
bl sub_08000148
_080904D2:
adds r0, r5, #0
adds r0, #0x72
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x80
adds r0, r4, #0
movs r1, #1
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x83
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0809050C
adds r0, r4, #0
movs r1, #2
bl sub_080002B0
movs r1, #0xc2
lsls r1, r1, #2
cmp r0, r1
bne _0809050C
movs r0, #0x63
adds r1, r4, #0
movs r2, #1
bl sub_08000148
_0809050C:
pop {r4, r5, pc}
.align 2, 0
_08090510: .4byte 0x00000306
thumb_func_start sub_08090514
sub_08090514: @ 0x08090514
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x50]
cmp r0, #0
beq _0809059E
ldrb r0, [r0, #0xd]
cmp r0, #1
beq _08090552
cmp r0, #1
bgt _0809052E
cmp r0, #0
beq _08090538
b _0809059E
_0809052E:
cmp r0, #2
beq _08090568
cmp r0, #3
beq _08090582
b _0809059E
_08090538:
ldrb r1, [r2, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x19]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
b _0809059A
_08090552:
ldrb r0, [r2, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r2, #0x19]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
b _0809059A
_08090568:
ldrb r1, [r2, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x19]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
b _0809059A
_08090582:
ldrb r1, [r2, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x19]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
_0809059A:
orrs r0, r1
strb r0, [r2]
_0809059E:
pop {pc}
thumb_func_start sub_080905A0
sub_080905A0: @ 0x080905A0
push {lr}
ldr r2, _080905B4 @ =gUnk_08122218
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080905B4: .4byte gUnk_08122218
thumb_func_start sub_080905B8
sub_080905B8: @ 0x080905B8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r7, r0, #0
movs r0, #1
mov sb, r0
mov r1, sb
strb r1, [r7, #0xc]
movs r5, #0x2e
ldrsh r2, [r7, r5]
ldr r6, _08090618 @ =gUnk_03000BF0
ldrh r0, [r6, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r1, #0x32
ldrsh r0, [r7, r1]
ldrh r1, [r6, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r2, r0
adds r5, r7, #0
adds r5, #0x78
movs r0, #0
mov r8, r0
strh r2, [r5]
adds r0, r7, #0
bl sub_08090DC4
adds r0, r7, #0
adds r0, #0x82
ldrh r0, [r0]
ldr r1, _0809061C @ =0x00007FFF
ands r1, r0
cmp r1, #0x80
beq _08090680
cmp r1, #0x80
bgt _08090620
cmp r1, #0x20
beq _080906E6
cmp r1, #0x40
beq _08090650
b _080906E0
.align 2, 0
_08090618: .4byte gUnk_03000BF0
_0809061C: .4byte 0x00007FFF
_08090620:
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
beq _080906E6
cmp r1, r0
bgt _08090636
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _08090640
b _080906E0
_08090636:
movs r0, #0x80
lsls r0, r0, #3
cmp r1, r0
beq _080906C4
b _080906E0
_08090640:
adds r1, r7, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r7, #0
bl sub_08016A04
b _080906E6
_08090650:
ldrh r1, [r7, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strh r0, [r7, #0x32]
ldr r4, _0809067C @ =0x00004017
ldrh r1, [r5]
subs r1, #0x80
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r5]
subs r1, #0x40
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
b _080906E6
.align 2, 0
_0809067C: .4byte 0x00004017
_08090680:
mov r1, r8
strb r1, [r7, #0x1e]
ldrh r1, [r7, #0x32]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strh r0, [r7, #0x32]
movs r2, #0x2e
ldrsh r1, [r7, r2]
ldrh r0, [r6, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r4
movs r2, #0x32
ldrsh r0, [r7, r2]
ldrh r2, [r6, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
strh r1, [r5]
ldr r0, _080906C0 @ =0x00004026
ldrh r1, [r5]
adds r2, r7, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
b _080906E6
.align 2, 0
_080906C0: .4byte 0x00004026
_080906C4:
adds r0, r7, #0
bl sub_08090E64
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _080906E0
adds r0, r7, #0
adds r0, #0x62
mov r5, sb
strb r5, [r0]
adds r1, r7, #0
adds r1, #0x80
movs r0, #0x30
strb r0, [r1]
_080906E0:
adds r0, r7, #0
bl sub_08090B6C
_080906E6:
adds r0, r7, #0
adds r0, #0x81
ldrb r1, [r0]
cmp r1, #0x10
beq _0809075C
movs r0, #0x70
ands r0, r1
adds r4, r7, #0
adds r4, #0x78
cmp r0, #0x20
beq _0809072E
cmp r0, #0x30
bne _0809073A
ldrh r0, [r4]
subs r0, #0x40
strh r0, [r4]
adds r0, r7, #0
bl sub_08090B6C
movs r0, #0x2e
ldrsh r1, [r7, r0]
ldr r2, _08090778 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r7, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4]
_0809072E:
ldrh r0, [r4]
adds r0, #0x40
strh r0, [r4]
adds r0, r7, #0
bl sub_08090B6C
_0809073A:
movs r0, #0x2e
ldrsh r1, [r7, r0]
ldr r2, _08090778 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r7, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4]
_0809075C:
adds r0, r7, #0
adds r0, #0x82
ldrh r0, [r0]
ldr r1, _0809077C @ =0x00007FFF
ands r1, r0
cmp r1, #2
beq _08090780
cmp r1, #4
bne _080907C8
adds r0, r7, #0
movs r1, #0x7e
bl sub_0801D2B4
b _080907C8
.align 2, 0
_08090778: .4byte gUnk_03000BF0
_0809077C: .4byte 0x00007FFF
_08090780:
adds r0, r7, #0
adds r0, #0x78
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x81
ldrb r0, [r7, #0xa]
movs r1, #2
mov r8, r1
cmp r0, #0x1a
beq _08090798
movs r2, #3
mov r8, r2
_08090798:
movs r5, #0
cmp r5, r8
bhs _080907C8
ldr r6, _080907DC @ =0x00004026
_080907A0:
adds r0, r6, #0
adds r1, r4, #0
movs r2, #2
bl sub_0800015E
adds r0, r6, #0
adds r1, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r4, #0
adds r1, #0x40
movs r0, #0
movs r2, #1
bl sub_080001D0
adds r5, #1
adds r4, #1
cmp r5, r8
blo _080907A0
_080907C8:
ldrb r0, [r7, #0xa]
subs r0, #1
cmp r0, #0x3b
bls _080907D2
b _080909DC
_080907D2:
lsls r0, r0, #2
ldr r1, _080907E0 @ =_080907E4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080907DC: .4byte 0x00004026
_080907E0: .4byte _080907E4
_080907E4: @ jump table
.4byte _080908D4 @ case 0
.4byte _080909DC @ case 1
.4byte _080909DC @ case 2
.4byte _080909DC @ case 3
.4byte _080909DC @ case 4
.4byte _080909DC @ case 5
.4byte _080909DC @ case 6
.4byte _080909DC @ case 7
.4byte _080908F0 @ case 8
.4byte _080909DC @ case 9
.4byte _080909DC @ case 10
.4byte _080909DC @ case 11
.4byte _080909DC @ case 12
.4byte _080909DC @ case 13
.4byte _080909DC @ case 14
.4byte _080909DC @ case 15
.4byte _080909DC @ case 16
.4byte _080909DC @ case 17
.4byte _080909DC @ case 18
.4byte _080909DC @ case 19
.4byte _080909DC @ case 20
.4byte _080909DC @ case 21
.4byte _080909DC @ case 22
.4byte _080909DC @ case 23
.4byte _080909DC @ case 24
.4byte _080909DC @ case 25
.4byte _080909DC @ case 26
.4byte _080909DC @ case 27
.4byte _080909DC @ case 28
.4byte _08090920 @ case 29
.4byte _08090938 @ case 30
.4byte _080909DC @ case 31
.4byte _080909DC @ case 32
.4byte _080909DC @ case 33
.4byte _080909DC @ case 34
.4byte _080909DC @ case 35
.4byte _080909DC @ case 36
.4byte _080909DC @ case 37
.4byte _080909DC @ case 38
.4byte _08090984 @ case 39
.4byte _080909DC @ case 40
.4byte _080909DC @ case 41
.4byte _080909DC @ case 42
.4byte _080909DC @ case 43
.4byte _080909DC @ case 44
.4byte _080909DC @ case 45
.4byte _080909DC @ case 46
.4byte _080909DC @ case 47
.4byte _080909DC @ case 48
.4byte _080909DC @ case 49
.4byte _080909DC @ case 50
.4byte _080909DC @ case 51
.4byte _080909DC @ case 52
.4byte _080909DC @ case 53
.4byte _080909DC @ case 54
.4byte _080909DC @ case 55
.4byte _080909DC @ case 56
.4byte _080909DC @ case 57
.4byte _08090994 @ case 58
.4byte _080909C8 @ case 59
_080908D4:
ldrb r0, [r7, #0xb]
cmp r0, #0
bne _080908DC
b _080909DC
_080908DC:
adds r2, r7, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2]
b _080909DC
_080908F0:
movs r0, #0x4d
movs r1, #0x3e
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080909DC
movs r3, #0x80
lsls r3, r3, #0xd
adds r0, r7, #0
adds r1, r4, #0
adds r2, r3, #0
bl sub_0806FA48
movs r0, #1
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x11]
subs r0, #0x11
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r4, #0x11]
b _080909DC
_08090920:
ldr r0, _08090934 @ =0x00000306
adds r1, r7, #0
adds r1, #0x78
ldrh r1, [r1]
adds r1, #0x41
movs r2, #2
bl sub_0807B7D8
b _080909DC
.align 2, 0
_08090934: .4byte 0x00000306
_08090938:
adds r5, r7, #0
adds r5, #0x38
movs r0, #1
strb r0, [r5]
ldrb r1, [r7, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r7, #0x1b]
ldr r0, _0809097C @ =0x00004074
adds r4, r7, #0
adds r4, #0x78
ldrh r1, [r4]
subs r1, #0x40
ldrb r2, [r5]
bl sub_0800015E
ldrh r1, [r4]
subs r1, #0x40
ldrb r2, [r5]
movs r0, #0x3f
bl sub_080001D0
ldr r6, _08090980 @ =0x00004017
ldrh r1, [r4]
ldrb r2, [r5]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r4]
adds r1, #0x40
ldrb r2, [r5]
b _080909BC
.align 2, 0
_0809097C: .4byte 0x00004074
_08090980: .4byte 0x00004017
_08090984:
ldrb r0, [r7, #0xb]
cmp r0, #0
beq _080909DC
adds r1, r7, #0
adds r1, #0x62
movs r0, #0xfc
strb r0, [r1]
b _080909DC
_08090994:
ldr r6, _080909C4 @ =0x00004023
adds r5, r7, #0
adds r5, #0x78
ldrh r1, [r5]
subs r1, #0x41
adds r4, r7, #0
adds r4, #0x38
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r5]
subs r1, #0x40
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r5]
subs r1, #0x3f
ldrb r2, [r4]
_080909BC:
adds r0, r6, #0
bl sub_0800015E
b _080909DC
.align 2, 0
_080909C4: .4byte 0x00004023
_080909C8:
ldr r0, _080909E4 @ =0x00004022
adds r1, r7, #0
adds r1, #0x78
ldrh r1, [r1]
adds r1, #0x41
adds r2, r7, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_080909DC:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080909E4: .4byte 0x00004022
thumb_func_start sub_080909E8
sub_080909E8: @ 0x080909E8
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r0, #0x82
ldrh r0, [r0]
ldr r1, _08090A04 @ =0x00007FFF
ands r1, r0
cmp r1, #8
beq _08090A42
cmp r1, #8
bgt _08090A08
cmp r1, #1
beq _08090A12
b _08090B60
.align 2, 0
_08090A04: .4byte 0x00007FFF
_08090A08:
cmp r1, #0x10
beq _08090A68
cmp r1, #0x80
beq _08090AB0
b _08090B60
_08090A12:
ldr r2, _08090A34 @ =gLinkEntity
movs r0, #0x32
ldrsh r1, [r2, r0]
movs r3, #0x32
ldrsh r0, [r5, r3]
cmp r1, r0
blt _08090A26
adds r0, #0x18
cmp r1, r0
ble _08090A38
_08090A26:
ldrb r0, [r5, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x80
orrs r1, r0
strb r1, [r5, #0x19]
b _08090B60
.align 2, 0
_08090A34: .4byte gLinkEntity
_08090A38:
ldrb r0, [r5, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r5, #0x19]
b _08090B60
_08090A42:
ldrb r0, [r5, #0xe]
adds r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x10
beq _08090A52
b _08090B60
_08090A52:
movs r0, #0
strb r0, [r5, #0xe]
ldrb r0, [r5, #0xf]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r5, #0xf]
adds r0, r5, #0
bl sub_08090E4C
b _08090B60
_08090A68:
ldrb r0, [r5, #0xa]
cmp r0, #0x3e
beq _08090A8C
ldrb r0, [r5, #0xe]
adds r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x14
bne _08090B60
ldrb r0, [r5, #0x1e]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r5, #0x1e]
movs r0, #0
strb r0, [r5, #0xe]
b _08090B60
_08090A8C:
ldrb r0, [r5, #0xe]
adds r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xe
bne _08090B60
movs r0, #0
strb r0, [r5, #0xe]
ldrb r0, [r5, #0xf]
adds r0, #1
movs r1, #3
bl __modsi3
strb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0x1e]
b _08090B60
_08090AB0:
ldr r2, _08090B00 @ =gLinkEntity
movs r3, #0x32
ldrsh r1, [r2, r3]
movs r3, #0x32
ldrsh r0, [r5, r3]
adds r0, #8
cmp r1, r0
bge _08090B14
ldr r0, _08090B04 @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
beq _08090B60
adds r0, r5, #0
bl sub_080002A0
ldr r1, _08090B08 @ =0x00004017
cmp r0, r1
bne _08090B60
ldr r0, _08090B0C @ =0x00004026
adds r4, r5, #0
adds r4, #0x78
ldrh r1, [r4]
adds r5, #0x38
ldrb r2, [r5]
bl sub_0800015E
ldr r6, _08090B10 @ =0x0000403D
ldrh r1, [r4]
subs r1, #0x40
ldrb r2, [r5]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r4]
subs r1, #0x80
ldrb r2, [r5]
adds r0, r6, #0
bl sub_0800015E
b _08090B60
.align 2, 0
_08090B00: .4byte gLinkEntity
_08090B04: .4byte gUnk_03003F80
_08090B08: .4byte 0x00004017
_08090B0C: .4byte 0x00004026
_08090B10: .4byte 0x0000403D
_08090B14:
adds r3, r2, #0
adds r3, #0x38
ldrb r1, [r3]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08090B2C
movs r0, #1
strb r0, [r3]
adds r0, r2, #0
bl sub_08016A04
_08090B2C:
adds r0, r5, #0
bl sub_080002A0
ldr r6, _08090B64 @ =0x00004017
cmp r0, r6
beq _08090B60
adds r4, r5, #0
adds r4, #0x78
ldrh r1, [r4]
adds r5, #0x38
ldrb r2, [r5]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r4]
subs r1, #0x40
ldrb r2, [r5]
adds r0, r6, #0
bl sub_0800015E
ldr r0, _08090B68 @ =0x00004014
ldrh r1, [r4]
subs r1, #0x80
ldrb r2, [r5]
bl sub_0800015E
_08090B60:
pop {r4, r5, r6, pc}
.align 2, 0
_08090B64: .4byte 0x00004017
_08090B68: .4byte 0x00004014
thumb_func_start sub_08090B6C
sub_08090B6C: @ 0x08090B6C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r1, r0, #0
adds r0, #0x80
ldrb r0, [r0]
lsls r0, r0, #0x18
cmp r0, #0
bne _08090B80
b _08090CD2
_08090B80:
lsrs r0, r0, #0x1b
lsls r2, r0, #0x18
lsrs r3, r2, #0x18
ldrh r0, [r1, #0x2e]
movs r4, #0xf
mov r8, r4
ands r4, r0
mov r8, r4
adds r0, r1, #0
adds r0, #0x78
ldrh r6, [r0]
subs r0, #0x40
ldrb r7, [r0]
movs r0, #3
ands r0, r3
cmp r0, #1
beq _08090BF8
cmp r0, #1
blo _08090BB0
cmp r0, #2
beq _08090C48
cmp r0, #3
beq _08090C90
b _08090CD2
_08090BB0:
lsrs r5, r2, #0x1b
cmp r3, #0xc
bne _08090BB8
movs r5, #2
_08090BB8:
rsbs r4, r5, #0
cmp r4, r5
bgt _08090BCE
_08090BBE:
adds r1, r6, r4
ldr r0, _08090BE4 @ =0x00004022
adds r2, r7, #0
bl sub_0800015E
adds r4, #1
cmp r4, r5
ble _08090BBE
_08090BCE:
movs r0, #8
mov r1, r8
ands r1, r0
cmp r1, #0
beq _08090BEC
ldr r0, _08090BE8 @ =0x00004024
subs r1, r6, r4
adds r2, r7, #0
bl sub_08090CDC
b _08090CB2
.align 2, 0
_08090BE4: .4byte 0x00004022
_08090BE8: .4byte 0x00004024
_08090BEC:
ldr r0, _08090BF4 @ =0x00004022
subs r1, r6, r4
b _08090C6E
.align 2, 0
_08090BF4: .4byte 0x00004022
_08090BF8:
lsrs r5, r2, #0x1b
rsbs r4, r5, #0
cmp r4, r5
bgt _08090C10
_08090C00:
adds r1, r6, r4
ldr r0, _08090C2C @ =0x00004022
adds r2, r7, #0
bl sub_0800015E
adds r4, #1
cmp r4, r5
ble _08090C00
_08090C10:
movs r0, #8
mov r1, r8
ands r1, r0
cmp r1, #0
beq _08090C34
ldr r0, _08090C30 @ =0x00004024
subs r1, r6, r4
adds r2, r7, #0
bl sub_08090CDC
cmp r4, #0
beq _08090CD2
b _08090C6A
.align 2, 0
_08090C2C: .4byte 0x00004022
_08090C30: .4byte 0x00004024
_08090C34:
cmp r4, #0
beq _08090CB2
ldr r0, _08090C44 @ =0x00004022
subs r1, r6, r4
adds r2, r7, #0
bl sub_0800015E
b _08090CB2
.align 2, 0
_08090C44: .4byte 0x00004022
_08090C48:
lsrs r5, r2, #0x1a
rsbs r4, r5, #0
cmp r4, r5
bge _08090C60
_08090C50:
adds r1, r6, r4
ldr r0, _08090C78 @ =0x00004022
adds r2, r7, #0
bl sub_0800015E
adds r4, #1
cmp r4, r5
blt _08090C50
_08090C60:
movs r0, #8
mov r1, r8
ands r1, r0
cmp r1, #0
beq _08090C7C
_08090C6A:
ldr r0, _08090C78 @ =0x00004022
adds r1, r6, r4
_08090C6E:
adds r2, r7, #0
bl sub_0800015E
b _08090CD2
.align 2, 0
_08090C78: .4byte 0x00004022
_08090C7C:
ldr r0, _08090C8C @ =0x00004024
subs r1, r6, r4
subs r1, #1
adds r2, r7, #0
bl sub_08090CDC
b _08090CB2
.align 2, 0
_08090C8C: .4byte 0x00004024
_08090C90:
lsrs r5, r2, #0x1a
rsbs r4, r5, #0
cmp r4, r5
bgt _08090CA8
_08090C98:
adds r1, r6, r4
ldr r0, _08090CC0 @ =0x00004022
adds r2, r7, #0
bl sub_0800015E
adds r4, #1
cmp r4, r5
ble _08090C98
_08090CA8:
movs r0, #8
mov r1, r8
ands r1, r0
cmp r1, #0
beq _08090CC8
_08090CB2:
ldr r0, _08090CC4 @ =0x00004025
adds r1, r6, r4
adds r2, r7, #0
bl sub_08090CDC
b _08090CD2
.align 2, 0
_08090CC0: .4byte 0x00004022
_08090CC4: .4byte 0x00004025
_08090CC8:
ldr r0, _08090CD8 @ =0x00004024
subs r1, r6, r4
adds r2, r7, #0
bl sub_08090CDC
_08090CD2:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08090CD8: .4byte 0x00004024
thumb_func_start sub_08090CDC
sub_08090CDC: @ 0x08090CDC
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
adds r0, r5, #0
adds r1, r6, #0
bl sub_080001DA
lsls r0, r0, #0x10
lsrs r2, r0, #0x10
movs r0, #0x80
lsls r0, r0, #7
ands r0, r2
cmp r0, #0
bne _08090D06
adds r0, r4, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0800015E
b _08090DB2
_08090D06:
ldr r1, _08090D18 @ =0xFFFFBFDE
adds r0, r2, r1
cmp r0, #0xb
bhi _08090DB2
lsls r0, r0, #2
ldr r1, _08090D1C @ =_08090D20
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08090D18: .4byte 0xFFFFBFDE
_08090D1C: .4byte _08090D20
_08090D20: @ jump table
.4byte _08090DB2 @ case 0
.4byte _08090DB2 @ case 1
.4byte _08090D80 @ case 2
.4byte _08090D50 @ case 3
.4byte _08090DB2 @ case 4
.4byte _08090DB2 @ case 5
.4byte _08090DB2 @ case 6
.4byte _08090DB2 @ case 7
.4byte _08090DB2 @ case 8
.4byte _08090DB2 @ case 9
.4byte _08090D98 @ case 10
.4byte _08090D68 @ case 11
_08090D50:
ldr r0, _08090D5C @ =0x00004024
cmp r4, r0
bne _08090D58
ldr r2, _08090D60 @ =0x00004022
_08090D58:
ldr r0, _08090D64 @ =0x0000402C
b _08090DA2
.align 2, 0
_08090D5C: .4byte 0x00004024
_08090D60: .4byte 0x00004022
_08090D64: .4byte 0x0000402C
_08090D68:
ldr r0, _08090D74 @ =0x0000402C
cmp r4, r0
bne _08090D70
ldr r2, _08090D78 @ =0x0000402B
_08090D70:
ldr r0, _08090D7C @ =0x00004024
b _08090DA2
.align 2, 0
_08090D74: .4byte 0x0000402C
_08090D78: .4byte 0x0000402B
_08090D7C: .4byte 0x00004024
_08090D80:
ldr r0, _08090D8C @ =0x00004025
cmp r4, r0
bne _08090D88
ldr r2, _08090D90 @ =0x00004022
_08090D88:
ldr r0, _08090D94 @ =0x0000402D
b _08090DA2
.align 2, 0
_08090D8C: .4byte 0x00004025
_08090D90: .4byte 0x00004022
_08090D94: .4byte 0x0000402D
_08090D98:
ldr r0, _08090DB4 @ =0x0000402D
cmp r4, r0
bne _08090DA0
ldr r2, _08090DB8 @ =0x0000402B
_08090DA0:
ldr r0, _08090DBC @ =0x00004025
_08090DA2:
cmp r4, r0
bne _08090DA8
ldr r2, _08090DC0 @ =0x00004022
_08090DA8:
adds r0, r2, #0
adds r1, r5, #0
adds r2, r6, #0
bl sub_0800015E
_08090DB2:
pop {r4, r5, r6, pc}
.align 2, 0
_08090DB4: .4byte 0x0000402D
_08090DB8: .4byte 0x0000402B
_08090DBC: .4byte 0x00004025
_08090DC0: .4byte 0x00004022
thumb_func_start sub_08090DC4
sub_08090DC4: @ 0x08090DC4
push {r4, lr}
mov ip, r0
ldrb r0, [r0, #0xa]
lsls r0, r0, #3
ldr r1, _08090E44 @ =gUnk_08121EF8
adds r3, r0, r1
ldrh r1, [r3, #6]
movs r0, #0x80
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _08090DF4
ldr r1, _08090E48 @ =gUnk_08122220
movs r0, #3
ldrsb r0, [r3, r0]
lsls r0, r0, #2
adds r0, r0, r1
ldr r3, [r0]
mov r0, ip
ldrb r1, [r0, #0xb]
lsls r0, r1, #3
adds r3, r3, r0
mov r0, ip
strb r1, [r0, #0x1e]
_08090DF4:
ldrb r1, [r3]
mov r0, ip
adds r0, #0x80
strb r1, [r0]
ldrb r0, [r3, #1]
mov r1, ip
adds r1, #0x81
strb r0, [r1]
ldrb r0, [r3, #2]
subs r1, #0x1f
strb r0, [r1]
ldrb r0, [r3, #3]
adds r1, #1
strb r0, [r1]
ldrb r1, [r3, #4]
lsls r1, r1, #6
mov r0, ip
ldrb r2, [r0, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1, #0x19]
ldrb r0, [r3, #5]
mov r4, ip
adds r4, #0x29
movs r1, #7
ands r1, r0
ldrb r2, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4]
ldrh r1, [r3, #6]
mov r0, ip
adds r0, #0x82
strh r1, [r0]
pop {r4, pc}
.align 2, 0
_08090E44: .4byte gUnk_08121EF8
_08090E48: .4byte gUnk_08122220
thumb_func_start sub_08090E4C
sub_08090E4C: @ 0x08090E4C
push {lr}
ldr r2, _08090E60 @ =gUnk_08122244
ldrb r1, [r0, #0xf]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl sub_0801D2B4
pop {pc}
.align 2, 0
_08090E60: .4byte gUnk_08122244
thumb_func_start sub_08090E64
sub_08090E64: @ 0x08090E64
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x2a
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08090EA0
ldr r0, _08090EA4 @ =0x0000FFFE
adds r2, r0, #0
ldrb r0, [r5, #0xb]
adds r2, r2, r0
lsls r2, r2, #0x10
adds r0, r5, #0
adds r1, r4, #0
movs r3, #0
bl sub_0806FA48
ldrh r0, [r4, #0x36]
subs r0, #0x10
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
_08090EA0:
pop {r4, r5, pc}
.align 2, 0
_08090EA4: .4byte 0x0000FFFE
thumb_func_start sub_08090EA8
sub_08090EA8: @ 0x08090EA8
push {lr}
ldr r2, _08090EBC @ =gUnk_08122254
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08090EBC: .4byte gUnk_08122254
thumb_func_start sub_08090EC0
sub_08090EC0: @ 0x08090EC0
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
bl sub_08052660
cmp r0, #0
beq _08090EFE
ldrb r0, [r4, #0x1e]
adds r0, #4
strb r0, [r4, #0x1e]
adds r0, r4, #0
bl sub_080AE068
movs r1, #0xc2
lsls r1, r1, #1
adds r0, r4, #0
bl sub_080ADF80
_08090EFE:
pop {r4, pc}
thumb_func_start sub_08090F00
sub_08090F00: @ 0x08090F00
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xa]
cmp r1, #1
bne _08090F1C
ldr r0, [r4, #0x50]
ldrb r2, [r4, #0xf]
lsls r1, r2
ldr r0, [r0, #0x20]
ands r0, r1
cmp r0, #0
bne _08090F1C
bl sub_0805E780
_08090F1C:
ldr r6, _08090F64 @ =gUnk_03003F80
ldr r0, [r6, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08090F62
ldr r5, _08090F68 @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
movs r2, #4
movs r3, #4
bl sub_080041A0
cmp r0, #0
beq _08090F62
movs r1, #0x36
ldrsh r0, [r5, r1]
cmp r0, #0
bne _08090F62
adds r2, r6, #0
adds r2, #0x90
ldr r1, _08090F6C @ =gUnk_0812225C
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r2]
ldrh r0, [r0]
ands r0, r1
cmp r0, #0
beq _08090F62
ldrb r0, [r4, #0xe]
bl sub_0804B128
bl sub_08080840
_08090F62:
pop {r4, r5, r6, pc}
.align 2, 0
_08090F64: .4byte gUnk_03003F80
_08090F68: .4byte gLinkEntity
_08090F6C: .4byte gUnk_0812225C
thumb_func_start sub_08090F70
sub_08090F70: @ 0x08090F70
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08090FB4
movs r5, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r5
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
bl sub_08052660
cmp r0, #0
beq _08090FB4
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
orrs r0, r5
strb r0, [r2]
_08090FB4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08090FB8
sub_08090FB8: @ 0x08090FB8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08090FF6
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
_08090FF6:
pop {r4, pc}
thumb_func_start sub_08090FF8
sub_08090FF8: @ 0x08090FF8
push {lr}
ldr r2, _0809100C @ =gUnk_08122278
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809100C: .4byte gUnk_08122278
thumb_func_start sub_08091010
sub_08091010: @ 0x08091010
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08091094 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r3, r4, #0
adds r3, #0x74
strh r1, [r3]
adds r0, r4, #0
adds r0, #0x38
ldrb r5, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrh r0, [r3]
subs r0, #0x80
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldr r6, _08091098 @ =0x00004022
movs r7, #4
_0809105C:
subs r1, r4, #2
adds r0, r6, #0
adds r2, r5, #0
bl sub_0800015E
subs r1, r4, #1
adds r0, r6, #0
adds r2, r5, #0
bl sub_0800015E
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0800015E
adds r1, r4, #1
adds r0, r6, #0
adds r2, r5, #0
bl sub_0800015E
adds r0, r4, #0
adds r0, #0x40
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
subs r7, #1
cmp r7, #0
bge _0809105C
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08091094: .4byte gUnk_03000BF0
_08091098: .4byte 0x00004022
thumb_func_start nullsub_523
nullsub_523: @ 0x0809109C
bx lr
.align 2, 0
thumb_func_start sub_080910A0
sub_080910A0: @ 0x080910A0
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080910C8
ldrb r0, [r4, #0xa]
bl sub_0807CBD0
cmp r0, #0
beq _080910B8
bl sub_0805E780
_080910B8:
movs r1, #1
strb r1, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
bl sub_08078828
_080910C8:
adds r0, r4, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
beq _08091100
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08091104 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
movs r1, #2
bl sub_080A7C8C
bl sub_0805E780
_08091100:
pop {r4, r5, pc}
.align 2, 0
_08091104: .4byte gUnk_03000BF0
thumb_func_start sub_08091108
sub_08091108: @ 0x08091108
push {lr}
ldr r2, _0809111C @ =gUnk_08122280
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809111C: .4byte gUnk_08122280
thumb_func_start sub_08091120
sub_08091120: @ 0x08091120
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r3, _08091194 @ =gUnk_08122288
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #2]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0, #1]
movs r0, #0xf
ands r1, r0
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r0, [r0, #3]
strh r0, [r4, #0x12]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
movs r0, #0xa8
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r3
ldrb r1, [r0]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08004168
pop {r4, pc}
.align 2, 0
_08091194: .4byte gUnk_08122288
thumb_func_start sub_08091198
sub_08091198: @ 0x08091198
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x20]
cmp r0, #0
bge _080911AA
ldrb r0, [r4, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
_080911AA:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _080911E8
ldrb r1, [r4, #0xb]
cmp r1, #0xf
beq _080911CE
cmp r1, #0xf
bgt _080911C8
cmp r1, #0
beq _080911E4
b _080911DA
_080911C8:
cmp r1, #0xff
bne _080911DA
b _080911E4
_080911CE:
ldrb r1, [r4, #0xe]
adds r0, r4, #0
movs r2, #0x80
bl CreateFX
b _080911E4
_080911DA:
ldrb r2, [r4, #0xe]
adds r0, r4, #0
movs r3, #0
bl sub_080A2988
_080911E4:
bl sub_0805E780
_080911E8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080911EC
sub_080911EC: @ 0x080911EC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x72
ldrh r0, [r0]
cmp r0, #1
beq _0809123C
cmp r0, #1
bgt _08091202
cmp r0, #0
beq _08091208
b _08091260
_08091202:
cmp r0, #2
beq _08091254
b _08091260
_08091208:
ldr r1, _08091234 @ =gUnk_08122294
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0800445C
ldr r1, _08091238 @ =gUnk_02021F00
adds r0, r4, #0
adds r0, #0x74
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r1
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
strh r1, [r0]
b _08091260
.align 2, 0
_08091234: .4byte gUnk_08122294
_08091238: .4byte gUnk_02021F00
_0809123C:
ldr r0, _08091250 @ =gUnk_081222A0
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
b _08091260
.align 2, 0
_08091250: .4byte gUnk_081222A0
_08091254:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08091260
adds r0, r4, #0
bl sub_08091504
_08091260:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08091264
sub_08091264: @ 0x08091264
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldr r0, _080912C4 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x45
bhi _0809132C
ldrb r1, [r6, #0xa]
ldrb r2, [r6, #0xb]
movs r0, #0x54
bl sub_080A2960
adds r7, r0, #0
ldrb r1, [r6, #0xa]
ldrb r2, [r6, #0xb]
movs r0, #0x54
bl sub_080A2960
adds r1, r0, #0
str r6, [r7, #0x50]
str r6, [r1, #0x50]
adds r0, r7, #0
adds r0, #0x72
movs r5, #1
movs r4, #1
strh r4, [r0]
adds r2, r1, #0
adds r2, #0x72
movs r0, #2
strh r0, [r2]
adds r0, r6, #0
bl sub_0806FA24
movs r2, #1
strb r5, [r6, #0xc]
ldrb r1, [r6, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r6, #0x18]
movs r0, #0x60
strh r0, [r6, #0x24]
ldrb r0, [r6, #0xb]
ands r4, r0
cmp r4, #0
beq _080912CC
ldr r0, _080912C8 @ =gUnk_080FD278
b _080912CE
.align 2, 0
_080912C4: .4byte gUnk_03003DBC
_080912C8: .4byte gUnk_080FD278
_080912CC:
ldr r0, _08091330 @ =gUnk_080FD270
_080912CE:
str r0, [r6, #0x48]
movs r0, #1
strb r0, [r6, #0x16]
ldr r2, _08091334 @ =gUnk_081222A8
ldrb r0, [r6, #0xb]
lsls r0, r0, #1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r6, #0x2e]
adds r0, r0, r1
strh r0, [r6, #0x2e]
adds r1, r6, #0
adds r1, #0x80
strh r0, [r1]
ldrb r0, [r6, #0xb]
lsls r0, r0, #1
adds r0, #1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r6, #0x32]
adds r0, r0, r1
strh r0, [r6, #0x32]
adds r1, r6, #0
adds r1, #0x82
strh r0, [r1]
adds r0, r6, #0
adds r1, r7, #0
bl sub_0806FA24
adds r0, r6, #0
adds r0, #0x7e
ldrb r0, [r0]
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
ldrb r1, [r6, #0xe]
adds r0, r6, #0
adds r0, #0x74
strb r1, [r0]
ldrb r1, [r6, #0xb]
adds r0, r6, #0
bl sub_08004260
_0809132C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08091330: .4byte gUnk_080FD270
_08091334: .4byte gUnk_081222A8
thumb_func_start sub_08091338
sub_08091338: @ 0x08091338
push {r4, lr}
adds r4, r0, #0
bl sub_08078930
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
cmp r0, #0
beq _0809135C
ldrb r0, [r4, #0xb]
lsls r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_08091660
_0809135C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08091360
sub_08091360: @ 0x08091360
push {r4, lr}
adds r4, r0, #0
bl sub_0806FBB4
ldr r1, _0809137C @ =gUnk_081222B0
ldrb r0, [r4, #0xd]
subs r0, #5
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_0809137C: .4byte gUnk_081222B0
thumb_func_start sub_08091380
sub_08091380: @ 0x08091380
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r7, _0809142C @ =gLinkEntity
adds r0, #0x75
ldrb r0, [r0]
cmp r0, #0
bne _080913E0
ldrb r0, [r4, #0xb]
lsls r2, r0, #1
ldrb r0, [r7, #0x14]
cmp r2, r0
bne _080913D4
ldr r1, _08091430 @ =gUnk_081222B8
adds r0, r2, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r3, [r4, #0x2e]
adds r0, r0, r3
lsls r0, r0, #0x10
lsrs r6, r0, #0x10
adds r0, r2, #1
adds r0, r0, r1
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r1, [r4, #0x32]
adds r0, r0, r1
lsls r0, r0, #0x10
lsrs r5, r0, #0x10
adds r0, r7, #0
adds r0, #0x38
ldrb r2, [r0]
adds r0, r6, #0
adds r1, r5, #0
bl sub_080002D4
subs r0, #0xf
cmp r0, #0x10
bls _080913D4
strh r6, [r7, #0x2e]
strh r5, [r7, #0x32]
_080913D4:
adds r1, r4, #0
adds r1, #0x75
movs r0, #1
strb r0, [r1]
movs r0, #2
strb r0, [r4, #0xf]
_080913E0:
ldrb r0, [r7, #0x14]
lsrs r0, r0, #1
ldrb r3, [r4, #0xb]
cmp r0, r3
bne _0809142A
ldr r1, _08091434 @ =gUnk_03003F80
adds r0, r1, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x1a
bne _0809142A
ldrb r1, [r1, #5]
movs r5, #2
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _0809142A
ldr r0, _0809142C @ =gLinkEntity
adds r0, #0x5a
ldrb r1, [r0]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _0809142A
adds r0, r4, #0
bl sub_0809153C
adds r1, r4, #0
adds r1, #0x75
ldrb r0, [r1]
cmp r0, #1
bne _0809142A
strb r5, [r1]
movs r0, #0xcf
lsls r0, r0, #1
bl sub_08004488
_0809142A:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809142C: .4byte gLinkEntity
_08091430: .4byte gUnk_081222B8
_08091434: .4byte gUnk_03003F80
thumb_func_start sub_08091438
sub_08091438: @ 0x08091438
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
adds r0, #0x75
strb r2, [r0]
bx lr
thumb_func_start sub_08091444
sub_08091444: @ 0x08091444
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #9
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldr r0, [r4, #0x50]
ldrb r1, [r0, #0xb]
adds r1, #8
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08016A04
pop {r4, pc}
thumb_func_start sub_08091470
sub_08091470: @ 0x08091470
push {r4, lr}
adds r2, r0, #0
ldr r4, [r2, #0x50]
adds r3, r4, #0
adds r3, #0x70
ldrh r0, [r3]
cmp r0, #7
bhi _0809148C
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _08091502
_0809148C:
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
ldrh r0, [r3]
adds r1, r0, #0
subs r1, #8
movs r0, #7
ands r1, r0
ldrb r3, [r2, #0xb]
cmp r3, #1
beq _080914C8
cmp r3, #1
bgt _080914B4
cmp r3, #0
beq _080914BE
b _080914E2
_080914B4:
cmp r3, #2
beq _080914D0
cmp r3, #3
beq _080914DA
b _080914E2
_080914BE:
ldrh r0, [r4, #0x32]
subs r0, r0, r1
subs r0, #0x11
strh r0, [r2, #0x32]
b _080914E2
_080914C8:
ldrh r0, [r4, #0x2e]
adds r0, r1, r0
adds r0, #0x11
b _080914E0
_080914D0:
ldrh r0, [r4, #0x32]
adds r0, r1, r0
adds r0, #0x11
strh r0, [r2, #0x32]
b _080914E2
_080914DA:
ldrh r0, [r4, #0x2e]
subs r0, r0, r1
subs r0, #0x11
_080914E0:
strh r0, [r2, #0x2e]
_080914E2:
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
subs r0, #8
lsls r0, r0, #0xc
lsrs r1, r0, #0x10
ldrb r0, [r2, #0x14]
cmp r1, r0
beq _08091502
strb r1, [r2, #0x14]
lsls r1, r1, #2
adds r1, r1, r3
adds r1, #8
adds r0, r2, #0
bl sub_08004260
_08091502:
pop {r4, pc}
thumb_func_start sub_08091504
sub_08091504: @ 0x08091504
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0xb]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08016A04
pop {r4, pc}
thumb_func_start sub_0809153C
sub_0809153C: @ 0x0809153C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r5, r0, #0
ldr r6, _080915A8 @ =gLinkEntity
ldr r1, _080915AC @ =gUnk_081222C0
ldrb r0, [r5, #0xb]
adds r0, r0, r1
ldrb r0, [r0]
mov r8, r0
adds r0, r5, #0
adds r0, #0x76
adds r1, r5, #0
adds r1, #0x70
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bls _08091656
ldrh r4, [r6, #0x2e]
ldrh r0, [r6, #0x32]
mov sb, r0
movs r2, #0x24
ldrsh r1, [r5, r2]
adds r0, r6, #0
mov r2, r8
str r3, [sp]
bl sub_080044AE
lsls r4, r4, #0x10
asrs r4, r4, #0x10
ldrh r2, [r6, #0x2e]
movs r7, #0x2e
ldrsh r0, [r6, r7]
ldr r3, [sp]
cmp r4, r0
bne _08091596
mov r1, sb
lsls r0, r1, #0x10
asrs r0, r0, #0x10
movs r7, #0x32
ldrsh r1, [r6, r7]
cmp r0, r1
beq _08091656
_08091596:
ldrb r0, [r5, #0xb]
cmp r0, #1
beq _080915CA
cmp r0, #1
bgt _080915B0
cmp r0, #0
beq _080915BA
b _080915E0
.align 2, 0
_080915A8: .4byte gLinkEntity
_080915AC: .4byte gUnk_081222C0
_080915B0:
cmp r0, #2
beq _080915CE
cmp r0, #3
beq _080915DA
b _080915E0
_080915BA:
ldrh r1, [r6, #0x32]
mov r2, sb
lsls r0, r2, #0x10
asrs r0, r0, #0x10
subs r1, r1, r0
lsls r1, r1, #0x10
lsrs r3, r1, #0x10
b _080915E0
_080915CA:
subs r0, r4, r2
b _080915DC
_080915CE:
ldrh r1, [r6, #0x32]
mov r7, sb
lsls r0, r7, #0x10
asrs r0, r0, #0x10
subs r0, r0, r1
b _080915DC
_080915DA:
subs r0, r2, r4
_080915DC:
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
_080915E0:
lsls r2, r3, #0x18
ldr r3, _0809163C @ =gUnk_080C9160
mov r1, r8
lsls r0, r1, #4
adds r0, r0, r3
movs r7, #0
ldrsh r0, [r0, r7]
asrs r2, r2, #0x10
adds r1, r0, #0
muls r1, r2, r1
ldr r0, [r5, #0x2c]
adds r0, r0, r1
str r0, [r5, #0x2c]
mov r1, r8
lsls r0, r1, #4
adds r0, #0x80
adds r0, r0, r3
movs r7, #0
ldrsh r0, [r0, r7]
adds r1, r0, #0
muls r1, r2, r1
ldr r0, [r5, #0x30]
subs r0, r0, r1
str r0, [r5, #0x30]
adds r0, r5, #0
bl sub_08091660
adds r0, r5, #0
adds r0, #0x76
adds r1, r5, #0
adds r1, #0x70
ldrh r0, [r0]
ldrh r1, [r1]
cmp r0, r1
bhi _08091640
movs r0, #0x86
lsls r0, r0, #1
bl sub_08004488
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _08091656
.align 2, 0
_0809163C: .4byte gUnk_080C9160
_08091640:
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08091656
movs r0, #0x10
strb r0, [r5, #0xf]
adds r0, #0xff
bl sub_08004488
_08091656:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08091660
sub_08091660: @ 0x08091660
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _08091686
cmp r0, #1
bgt _08091674
cmp r0, #0
beq _0809167E
b _080916AA
_08091674:
cmp r0, #2
beq _08091690
cmp r0, #3
beq _0809169A
b _080916AA
_0809167E:
adds r1, r4, #0
adds r1, #0x82
ldrh r0, [r4, #0x32]
b _080916A0
_08091686:
adds r0, r4, #0
adds r0, #0x80
ldrh r0, [r0]
ldrh r1, [r4, #0x2e]
b _080916A2
_08091690:
adds r0, r4, #0
adds r0, #0x82
ldrh r0, [r0]
ldrh r1, [r4, #0x32]
b _080916A2
_0809169A:
adds r1, r4, #0
adds r1, #0x80
ldrh r0, [r4, #0x2e]
_080916A0:
ldrh r1, [r1]
_080916A2:
subs r0, r0, r1
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
_080916AA:
adds r5, r4, #0
adds r5, #0x86
ldrh r0, [r5]
bl sub_0807CBE4
cmp r0, #0
beq _080916C8
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
cmp r0, #0
bne _080916C8
ldrh r0, [r5]
bl sub_0807CD48
_080916C8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080916CC
sub_080916CC: @ 0x080916CC
push {r4, lr}
adds r4, r0, #0
ldr r1, _080916E8 @ =gUnk_081223A8
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r4, #0x41
movs r0, #0
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_080916E8: .4byte gUnk_081223A8
thumb_func_start sub_080916EC
sub_080916EC: @ 0x080916EC
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldrb r0, [r6, #0xe]
lsls r0, r0, #3
ldr r1, _080917C8 @ =gUnk_030010EC
adds r7, r0, r1
adds r0, r6, #0
adds r0, #0x84
str r7, [r0]
ldr r0, _080917CC @ =gUnk_03000BF0
ldrb r0, [r0, #5]
ldrb r1, [r7, #4]
cmp r0, r1
bne _08091716
ldr r0, _080917D0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #5
ands r0, r1
cmp r0, #0
beq _0809171A
_08091716:
bl sub_0805E780
_0809171A:
ldr r4, _080917CC @ =gUnk_03000BF0
ldrh r1, [r7]
movs r5, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
ldrh r2, [r4, #6]
adds r0, r0, r2
adds r0, #8
strh r0, [r6, #0x2e]
ldrh r1, [r7]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r1
lsrs r0, r0, #2
ldrh r3, [r4, #8]
adds r0, r0, r3
adds r0, #8
strh r0, [r6, #0x32]
ldrb r0, [r7, #5]
strb r0, [r6, #0x14]
ldrb r0, [r7, #6]
strb r0, [r6, #0xb]
movs r2, #1
strb r2, [r6, #0xc]
ldr r0, _080917D4 @ =gUnk_080FD310
str r0, [r6, #0x48]
ldrb r1, [r6, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r6, #0x10]
adds r0, r6, #0
adds r0, #0x3f
strb r2, [r0]
adds r1, r6, #0
adds r1, #0x3c
movs r0, #0x47
strb r0, [r1]
adds r1, #4
movs r0, #0x44
strb r0, [r1]
subs r1, #5
movs r0, #0x80
strb r0, [r1]
ldrb r0, [r6, #0x14]
lsls r0, r0, #3
strb r0, [r6, #0x15]
movs r0, #0xe0
lsls r0, r0, #3
strh r0, [r6, #0x24]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r2]
ldrb r1, [r6, #0x14]
adds r1, #4
ldrb r0, [r6, #0xb]
adds r1, r1, r0
adds r0, r6, #0
bl sub_080042AC
ldr r0, _080917D8 @ =0x00004022
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r4, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
adds r2, r6, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080917C8: .4byte gUnk_030010EC
_080917CC: .4byte gUnk_03000BF0
_080917D0: .4byte gUnk_03003F80
_080917D4: .4byte gUnk_080FD310
_080917D8: .4byte 0x00004022
thumb_func_start sub_080917DC
sub_080917DC: @ 0x080917DC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x1d
bne _08091810
movs r0, #0xa8
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #7
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x14]
adds r1, #4
ldrb r0, [r4, #0xb]
adds r1, r1, r0
adds r0, r4, #0
bl sub_080042AC
ldr r0, _0809180C @ =0x0000013B
bl sub_080A3268
b _080918A0
.align 2, 0
_0809180C: .4byte 0x0000013B
_08091810:
adds r0, r4, #0
bl sub_0800445C
cmp r0, #0
beq _0809184A
ldr r2, _08091840 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08091844 @ =0x00040080
ands r0, r1
cmp r0, #0
bne _08091848
ldrb r0, [r2, #0x1c]
cmp r0, #0
bne _08091848
ldrb r0, [r2, #5]
cmp r0, #0
bne _08091848
ldrb r0, [r2, #2]
cmp r0, #0
bne _08091848
ldrb r0, [r4, #0xe]
adds r0, #1
b _0809184A
.align 2, 0
_08091840: .4byte gUnk_03003F80
_08091844: .4byte 0x00040080
_08091848:
movs r0, #0
_0809184A:
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0809189C
ldrb r0, [r4, #0xe]
cmp r0, #8
bls _080918A0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r2, _08091894 @ =gUnk_03003F80
movs r0, #0x81
strb r0, [r2, #2]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0x13
orrs r0, r1
str r0, [r2, #0x30]
ldr r1, _08091898 @ =gLinkEntity
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r1, #0x20]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #0x24]
ldrb r2, [r1, #0x10]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #0x10]
bl sub_08077B2C
bl sub_0807A108
movs r0, #0x7c
bl sub_080A3268
b _080918A0
.align 2, 0
_08091894: .4byte gUnk_03003F80
_08091898: .4byte gLinkEntity
_0809189C:
movs r0, #0
strb r0, [r4, #0xe]
_080918A0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080918A4
sub_080918A4: @ 0x080918A4
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08091964 @ =gLinkEntity
adds r1, r5, #0
movs r2, #2
movs r3, #2
bl sub_080041A0
cmp r0, #0
beq _08091974
ldrh r0, [r4, #0x2e]
strh r0, [r5, #0x2e]
ldrh r0, [r4, #0x32]
strh r0, [r5, #0x32]
movs r0, #0x36
ldrsh r1, [r5, r0]
movs r0, #0x10
rsbs r0, r0, #0
cmp r1, r0
ble _0809197E
ldr r0, [r5, #0x20]
cmp r0, #0
bge _080919A4
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
strb r0, [r5, #0x14]
ldr r2, _08091968 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0x13
eors r0, r1
movs r1, #0x80
lsls r1, r1, #5
orrs r0, r1
str r0, [r2, #0x30]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xf]
ldrb r0, [r4, #0x10]
movs r2, #0x20
orrs r0, r2
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x97
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x3c
ldrb r0, [r0]
adds r0, #1
subs r1, #3
orrs r0, r2
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x3b
ldrb r0, [r0]
adds r2, r4, #0
adds r2, #0x3b
strb r0, [r2]
adds r1, #4
movs r0, #0x18
strb r0, [r1]
adds r1, #4
movs r0, #8
strb r0, [r1]
adds r0, r4, #0
bl sub_0801766C
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0809196C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_0807BA8C
ldr r0, _08091970 @ =0x00000137
bl sub_080A3268
b _0809197E
.align 2, 0
_08091964: .4byte gLinkEntity
_08091968: .4byte gUnk_03003F80
_0809196C: .4byte gUnk_03000BF0
_08091970: .4byte 0x00000137
_08091974:
adds r0, r5, #0
adds r1, r4, #0
bl sub_080045C4
strb r0, [r5, #0x15]
_0809197E:
ldr r3, _080919A8 @ =gLinkEntity
ldr r0, [r3, #0x20]
cmp r0, #0
bge _080919A4
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_080919A4:
pop {r4, r5, pc}
.align 2, 0
_080919A8: .4byte gLinkEntity
thumb_func_start sub_080919AC
sub_080919AC: @ 0x080919AC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldr r1, _080919D4 @ =gUnk_03000BF0
movs r0, #0
mov r8, r0
movs r0, #7
strb r0, [r1, #0xe]
ldr r0, _080919D8 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #5
ands r0, r1
cmp r0, #0
bne _080919DC
movs r0, #1
strb r0, [r5, #0xc]
b _08091C04
.align 2, 0
_080919D4: .4byte gUnk_03000BF0
_080919D8: .4byte gUnk_03003F80
_080919DC:
ldr r4, _08091A14 @ =gLinkEntity
adds r6, r4, #0
adds r6, #0x5a
ldrb r1, [r6]
movs r7, #0xf
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _08091A22
ldrb r1, [r5, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r5, #0x10]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldrb r1, [r6]
movs r0, #0xf0
ands r0, r1
cmp r0, #0x10
bne _08091A18
adds r1, r5, #0
adds r1, #0x63
movs r0, #1
strb r0, [r1]
b _08091C04
.align 2, 0
_08091A14: .4byte gLinkEntity
_08091A18:
adds r0, r5, #0
adds r0, #0x63
mov r1, r8
strb r1, [r0]
b _08091C04
_08091A22:
ldrb r0, [r5, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r5, #0x10]
mov r0, r8
strh r0, [r4, #0x24]
adds r0, r5, #0
bl sub_0806F69C
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, r4, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
adds r0, r5, #0
bl sub_08091DDC
cmp r0, #0
beq _08091A68
b _08091C04
_08091A68:
ldr r0, _08091AD8 @ =gUnk_030010A0
ldr r0, [r0]
ands r0, r7
cmp r0, #0
bne _08091A7A
movs r0, #0x9c
lsls r0, r0, #1
bl sub_080A3268
_08091A7A:
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08091A92
movs r0, #0x7b
bl sub_080A3268
movs r0, #0x3c
strb r0, [r5, #0xf]
_08091A92:
ldr r2, _08091ADC @ =gUnk_081223C8
ldrb r0, [r5, #0x14]
lsls r0, r0, #1
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, #1
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r5, #0
bl sub_080002B4
adds r4, r0, #0
ldr r1, _08091AE0 @ =gUnk_081223D8
ldrb r0, [r5, #0x14]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl sub_08007DD6
cmp r0, #0
bne _08091AE4
ldrb r0, [r5, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r5, #0x15]
ldrb r0, [r5, #0x14]
movs r1, #2
eors r0, r1
strb r0, [r5, #0x14]
b _08091BD8
.align 2, 0
_08091AD8: .4byte gUnk_030010A0
_08091ADC: .4byte gUnk_081223C8
_08091AE0: .4byte gUnk_081223D8
_08091AE4:
adds r0, r4, #0
subs r0, #0x64
cmp r0, #0xb
bhi _08091BD8
lsls r0, r0, #2
ldr r1, _08091AF8 @ =_08091AFC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08091AF8: .4byte _08091AFC
_08091AFC: @ jump table
.4byte _08091B2C @ case 0
.4byte _08091BD8 @ case 1
.4byte _08091BD8 @ case 2
.4byte _08091BB8 @ case 3
.4byte _08091BB8 @ case 4
.4byte _08091BB8 @ case 5
.4byte _08091BB8 @ case 6
.4byte _08091BD8 @ case 7
.4byte _08091BB8 @ case 8
.4byte _08091BB8 @ case 9
.4byte _08091BB8 @ case 10
.4byte _08091BB8 @ case 11
_08091B2C:
ldrb r1, [r5, #0x10]
movs r0, #0xdf
ands r0, r1
strb r0, [r5, #0x10]
adds r1, r5, #0
adds r1, #0x3f
movs r0, #1
strb r0, [r1]
subs r1, #3
movs r0, #0x47
strb r0, [r1]
adds r1, #4
movs r0, #0x44
strb r0, [r1]
subs r1, #5
movs r4, #0x80
movs r0, #0x80
strb r0, [r1]
movs r0, #6
strb r0, [r5, #0xc]
adds r0, r5, #0
bl sub_08017744
ldr r2, _08091BAC @ =gUnk_03003F80
movs r0, #0x41
strb r0, [r2, #2]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #5
eors r0, r1
movs r1, #0x80
lsls r1, r1, #0x13
orrs r0, r1
str r0, [r2, #0x30]
ldr r1, _08091BB0 @ =gLinkEntity
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r1, #0x20]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r1, #0x24]
ldrb r0, [r5, #0x14]
lsls r0, r0, #1
strb r0, [r1, #0x14]
ldrb r0, [r5, #0x15]
strb r0, [r1, #0x15]
ldrb r0, [r1, #0x10]
orrs r4, r0
strb r4, [r1, #0x10]
adds r0, r5, #0
bl sub_08004168
ldrb r1, [r5, #0x14]
adds r1, #0xc
adds r0, r5, #0
bl sub_080042AC
movs r0, #0x78
bl sub_080A3268
ldr r0, _08091BB4 @ =0x00000139
bl sub_080A3268
b _08091C04
.align 2, 0
_08091BAC: .4byte gUnk_03003F80
_08091BB0: .4byte gLinkEntity
_08091BB4: .4byte 0x00000139
_08091BB8:
adds r0, r5, #0
bl sub_080002B8
cmp r4, r0
bne _08091BD8
adds r0, r5, #0
bl sub_08091C0C
ldr r1, _08091BD4 @ =gLinkEntity
ldrb r0, [r5, #0x14]
lsls r0, r0, #1
strb r0, [r1, #0x14]
b _08091C04
.align 2, 0
_08091BD4: .4byte gLinkEntity
_08091BD8:
ldr r2, _08091BF8 @ =gLinkEntity
ldrb r0, [r5, #0x14]
lsls r1, r0, #1
strb r1, [r2, #0x14]
adds r1, r5, #0
adds r1, #0x58
ldrb r1, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r1, r0
bne _08091BFC
adds r0, r5, #0
bl sub_080042B8
b _08091C04
.align 2, 0
_08091BF8: .4byte gLinkEntity
_08091BFC:
ldrb r1, [r5, #0x14]
adds r0, r5, #0
bl sub_080042AC
_08091C04:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08091C0C
sub_08091C0C: @ 0x08091C0C
push {r4, lr}
adds r4, r0, #0
bl sub_08004168
ldr r1, _08091C30 @ =gLinkEntity
adds r0, r4, #0
bl sub_0806FA24
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0x68
beq _08091C46
cmp r0, #0x68
bhi _08091C34
cmp r0, #0x67
beq _08091C3E
b _08091C80
.align 2, 0
_08091C30: .4byte gLinkEntity
_08091C34:
cmp r0, #0x69
beq _08091C4E
cmp r0, #0x6a
beq _08091C66
b _08091C80
_08091C3E:
ldrb r0, [r4, #0x15]
cmp r0, #0x18
beq _08091C54
b _08091C76
_08091C46:
ldrb r0, [r4, #0x15]
cmp r0, #8
beq _08091C6C
b _08091C5C
_08091C4E:
ldrb r0, [r4, #0x15]
cmp r0, #8
bne _08091C5C
_08091C54:
movs r0, #0
strb r0, [r4, #0x15]
strb r0, [r4, #0x14]
b _08091C86
_08091C5C:
movs r0, #0x18
strb r0, [r4, #0x15]
movs r0, #3
strb r0, [r4, #0x14]
b _08091C86
_08091C66:
ldrb r0, [r4, #0x15]
cmp r0, #0x18
bne _08091C76
_08091C6C:
movs r0, #0x10
strb r0, [r4, #0x15]
movs r0, #2
strb r0, [r4, #0x14]
b _08091C86
_08091C76:
movs r0, #8
strb r0, [r4, #0x15]
movs r0, #1
strb r0, [r4, #0x14]
b _08091C86
_08091C80:
movs r0, #3
strb r0, [r4, #0xc]
b _08091C92
_08091C86:
movs r0, #3
strb r0, [r4, #0xc]
ldr r1, _08091C94 @ =gLinkEntity
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
strb r0, [r1, #0x14]
_08091C92:
pop {r4, pc}
.align 2, 0
_08091C94: .4byte gLinkEntity
thumb_func_start sub_08091C98
sub_08091C98: @ 0x08091C98
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0806F69C
ldr r5, _08091CC0 @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA24
ldr r1, _08091CC4 @ =gUnk_03000BF0
ldrh r0, [r1]
cmp r0, #0
bne _08091CBE
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0xe0
lsls r0, r0, #3
strh r0, [r4, #0x24]
str r5, [r1, #0x30]
_08091CBE:
pop {r4, r5, pc}
.align 2, 0
_08091CC0: .4byte gLinkEntity
_08091CC4: .4byte gUnk_03000BF0
thumb_func_start sub_08091CC8
sub_08091CC8: @ 0x08091CC8
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r2, _08091D58 @ =gUnk_03003F80
ldrb r0, [r2, #2]
cmp r0, #0
bne _08091D64
movs r0, #1
strb r0, [r6, #0xc]
ldrb r0, [r6, #0x15]
movs r1, #0x10
eors r0, r1
strb r0, [r6, #0x15]
ldrb r0, [r6, #0x14]
movs r1, #2
eors r0, r1
strb r0, [r6, #0x14]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0x13
eors r0, r1
str r0, [r2, #0x30]
adds r0, r6, #0
adds r0, #0x84
ldr r4, [r0]
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r5, _08091D5C @ =gUnk_03000BF0
ldrh r0, [r5, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r2, #0x32
ldrsh r0, [r6, r2]
ldrh r2, [r5, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4]
ldrb r0, [r5, #5]
strb r0, [r4, #4]
ldrb r0, [r6, #0x14]
strb r0, [r4, #5]
ldrb r1, [r6, #0x14]
adds r1, #0x10
adds r0, r6, #0
bl sub_080042AC
ldr r0, _08091D60 @ =0x00004022
movs r3, #0x2e
ldrsh r1, [r6, r3]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r6, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
b _08091D8A
.align 2, 0
_08091D58: .4byte gUnk_03003F80
_08091D5C: .4byte gUnk_03000BF0
_08091D60: .4byte 0x00004022
_08091D64:
adds r0, r6, #0
bl sub_080042B8
ldr r3, _08091D8C @ =gLinkEntity
adds r0, r6, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_08091D8A:
pop {r4, r5, r6, pc}
.align 2, 0
_08091D8C: .4byte gLinkEntity
thumb_func_start sub_08091D90
sub_08091D90: @ 0x08091D90
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x20]
cmp r0, #0
bge _08091DA0
adds r0, r4, #0
bl sub_080042B8
_08091DA0:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08091DD8
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08091DD8
ldrb r1, [r4, #0xb]
movs r0, #4
eors r1, r0
strb r1, [r4, #0xb]
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
strb r1, [r0, #6]
movs r0, #0x9e
lsls r0, r0, #1
bl sub_080A3268
_08091DD8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08091DDC
sub_08091DDC: @ 0x08091DDC
push {r4, lr}
adds r4, r0, #0
ldr r2, _08091E30 @ =gUnk_081223D0
ldrb r0, [r4, #0x14]
lsls r0, r0, #1
adds r1, r0, r2
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
adds r0, #1
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
adds r0, r4, #0
bl sub_080002CC
cmp r0, #0xff
bne _08091E5C
ldr r0, _08091E34 @ =gLinkEntity
ldrb r1, [r4, #0x14]
bl sub_0807BD14
cmp r0, #0
beq _08091E5C
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #5
strb r0, [r4, #0xc]
ldrb r0, [r4, #0x15]
cmp r0, #8
beq _08091E40
cmp r0, #8
bgt _08091E38
cmp r0, #0
beq _08091E40
b _08091E44
.align 2, 0
_08091E30: .4byte gUnk_081223D0
_08091E34: .4byte gLinkEntity
_08091E38:
cmp r0, #0x10
beq _08091E40
cmp r0, #0x18
bne _08091E44
_08091E40:
movs r0, #0xa0
strh r0, [r4, #0x24]
_08091E44:
ldr r0, _08091E54 @ =gLinkEntity
ldrb r1, [r4, #0x15]
strb r1, [r0, #0x15]
ldr r0, _08091E58 @ =gUnk_03000BF0
str r4, [r0, #0x30]
movs r0, #1
b _08091E5E
.align 2, 0
_08091E54: .4byte gLinkEntity
_08091E58: .4byte gUnk_03000BF0
_08091E5C:
movs r0, #0
_08091E5E:
pop {r4, pc}
thumb_func_start sub_08091E60
sub_08091E60: @ 0x08091E60
push {lr}
ldr r2, _08091E74 @ =gUnk_08122598
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08091E74: .4byte gUnk_08122598
thumb_func_start sub_08091E78
sub_08091E78: @ 0x08091E78
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08091E96
movs r0, #0x2d
strb r0, [r4, #0xe]
_08091E96:
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
ldrb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08004260
ldr r1, _08091EBC @ =gUnk_08122590
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_080A3268
pop {r4, pc}
.align 2, 0
_08091EBC: .4byte gUnk_08122590
thumb_func_start sub_08091EC0
sub_08091EC0: @ 0x08091EC0
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x50]
cmp r1, #0
beq _08091ED6
ldrh r0, [r1, #0x2e]
strh r0, [r4, #0x2e]
ldrh r0, [r1, #0x32]
strh r0, [r4, #0x32]
ldrh r0, [r1, #0x36]
strh r0, [r4, #0x36]
_08091ED6:
ldrb r0, [r4, #0xb]
cmp r0, #2
beq _08091EEC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08091EEC
bl sub_0805E780
_08091EEC:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
thumb_func_start sub_08091EF4
sub_08091EF4: @ 0x08091EF4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xc]
cmp r0, #1
bhi _08091F0E
ldr r0, _08091F10 @ =gUnk_08122604
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_08091F0E:
pop {pc}
.align 2, 0
_08091F10: .4byte gUnk_08122604
thumb_func_start sub_08091F14
sub_08091F14: @ 0x08091F14
push {r4, r5, lr}
adds r4, r0, #0
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r3, r4, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #7
orrs r0, r1
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x58
strb r2, [r0]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08091FEC @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x70
strh r1, [r5]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08091FEA
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0xd1
lsls r0, r0, #1
ldrh r1, [r5]
subs r1, #0x41
adds r4, #0x38
ldrb r2, [r4]
bl sub_0807B314
ldr r0, _08091FF0 @ =0x000001A3
ldrh r1, [r5]
subs r1, #0x40
ldrb r2, [r4]
bl sub_0807B314
movs r0, #0xd2
lsls r0, r0, #1
ldrh r1, [r5]
subs r1, #0x3f
ldrb r2, [r4]
bl sub_0807B314
ldr r0, _08091FF4 @ =0x000001A5
ldrh r1, [r5]
subs r1, #1
ldrb r2, [r4]
bl sub_0807B314
movs r0, #0xd3
lsls r0, r0, #1
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0807B314
ldr r0, _08091FF8 @ =0x000001A7
ldrh r1, [r5]
adds r1, #1
ldrb r2, [r4]
bl sub_0807B314
movs r0, #0xd4
lsls r0, r0, #1
ldrh r1, [r5]
adds r1, #0x3f
ldrb r2, [r4]
bl sub_0807B314
ldr r0, _08091FFC @ =0x000001A9
ldrh r1, [r5]
adds r1, #0x40
ldrb r2, [r4]
bl sub_0807B314
movs r0, #0xd5
lsls r0, r0, #1
ldrh r1, [r5]
adds r1, #0x41
ldrb r2, [r4]
bl sub_0807B314
_08091FEA:
pop {r4, r5, pc}
.align 2, 0
_08091FEC: .4byte gUnk_03000BF0
_08091FF0: .4byte 0x000001A3
_08091FF4: .4byte 0x000001A5
_08091FF8: .4byte 0x000001A7
_08091FFC: .4byte 0x000001A9
thumb_func_start sub_08092000
sub_08092000: @ 0x08092000
push {r4, lr}
adds r4, r0, #0
adds r0, #0x70
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
movs r1, #0xd3
lsls r1, r1, #1
cmp r0, r1
bne _08092034
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_08092034:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08092038
sub_08092038: @ 0x08092038
push {lr}
ldr r2, _0809204C @ =gUnk_0812260C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809204C: .4byte gUnk_0812260C
thumb_func_start sub_08092050
sub_08092050: @ 0x08092050
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809207A
movs r0, #3
strb r0, [r6, #0xc]
ldrh r0, [r6, #0x2e]
adds r0, #2
strh r0, [r6, #0x2e]
adds r0, r6, #0
bl sub_0809223C
adds r0, r6, #0
movs r1, #1
bl sub_080042AC
b _08092148
_0809207A:
ldrb r0, [r6, #0xd]
cmp r0, #0
bne _08092138
movs r1, #1
strb r1, [r6, #0xd]
adds r0, r6, #0
adds r0, #0x38
strb r1, [r0]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrh r0, [r6, #0x2e]
adds r0, #2
strh r0, [r6, #0x2e]
adds r0, r6, #0
bl sub_08016A04
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r3, _08092130 @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r3, #8]
adds r1, #8
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r2, r0
adds r5, r6, #0
adds r5, #0x70
strh r2, [r5]
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldrh r0, [r3, #6]
subs r2, r2, r0
asrs r2, r2, #4
ands r2, r4
movs r1, #0x32
ldrsh r0, [r6, r1]
ldrh r1, [r3, #8]
subs r1, #8
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r2, r0
adds r7, r6, #0
adds r7, #0x72
strh r2, [r7]
ldrh r0, [r5]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
ldrh r0, [r7]
movs r1, #1
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
ldr r4, _08092134 @ =0x00004022
ldrh r1, [r5]
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r7]
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r0, r6, #0
movs r1, #0
bl sub_080042AC
b _08092148
.align 2, 0
_08092130: .4byte gUnk_03000BF0
_08092134: .4byte 0x00004022
_08092138:
movs r0, #1
strb r0, [r6, #0xc]
adds r0, r6, #0
bl sub_080921BC
adds r0, r6, #0
bl sub_080921F0
_08092148:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0809214C
sub_0809214C: @ 0x0809214C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08092160
movs r0, #2
strb r0, [r4, #0xc]
_08092160:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08092164
sub_08092164: @ 0x08092164
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080921B6
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
movs r2, #1
bl sub_0800015E
adds r0, r4, #0
adds r0, #0x76
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x72
ldrh r1, [r1]
movs r2, #1
bl sub_0800015E
adds r0, r4, #0
bl sub_08092214
adds r0, r4, #0
bl sub_0809223C
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
_080921B6:
pop {r4, pc}
thumb_func_start nullsub_118
nullsub_118: @ 0x080921B8
bx lr
.align 2, 0
thumb_func_start sub_080921BC
sub_080921BC: @ 0x080921BC
push {lr}
adds r2, r0, #0
ldr r1, _080921DC @ =gUnk_030011E8
ldr r0, _080921E0 @ =0x000029F8
adds r3, r1, r0
_080921C6:
ldrb r0, [r1, #8]
cmp r0, #6
bne _080921E4
ldrb r0, [r1, #9]
cmp r0, #0x6f
bne _080921E4
ldrb r0, [r1, #0xa]
cmp r0, #2
bne _080921E4
str r1, [r2, #0x54]
b _080921EE
.align 2, 0
_080921DC: .4byte gUnk_030011E8
_080921E0: .4byte 0x000029F8
_080921E4:
adds r1, #0x88
cmp r1, r3
blo _080921C6
movs r0, #0
str r0, [r2, #0x54]
_080921EE:
pop {pc}
thumb_func_start sub_080921F0
sub_080921F0: @ 0x080921F0
push {lr}
ldr r2, [r0, #0x54]
cmp r2, #0
beq _08092212
adds r1, r2, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r3, r2, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #7
orrs r0, r1
strb r0, [r3]
adds r0, r2, #0
bl sub_08016A04
_08092212:
pop {pc}
thumb_func_start sub_08092214
sub_08092214: @ 0x08092214
push {lr}
ldr r2, [r0, #0x54]
cmp r2, #0
beq _0809223A
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0xa
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r3]
adds r0, r2, #0
bl sub_08016A04
_0809223A:
pop {pc}
thumb_func_start sub_0809223C
sub_0809223C: @ 0x0809223C
push {lr}
adds r2, r0, #0
adds r2, #0x38
movs r1, #2
strb r1, [r2]
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
subs r1, #0xa
ands r1, r2
movs r2, #3
orrs r1, r2
strb r1, [r3]
bl sub_08016A04
pop {pc}
thumb_func_start sub_0809225C
sub_0809225C: @ 0x0809225C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
bne _0809226E
adds r0, r1, #0
bl sub_08092278
b _08092274
_0809226E:
adds r0, r1, #0
bl sub_08092344
_08092274:
pop {pc}
.align 2, 0
thumb_func_start sub_08092278
sub_08092278: @ 0x08092278
push {lr}
ldr r2, _0809228C @ =gUnk_08122644
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809228C: .4byte gUnk_08122644
thumb_func_start sub_08092290
sub_08092290: @ 0x08092290
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
bl sub_080925A4
pop {pc}
thumb_func_start sub_0809229C
sub_0809229C: @ 0x0809229C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x70
ldrb r0, [r0]
cmp r0, #0
beq _080922E0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xb0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_08016A04
ldr r0, [r4, #0x54]
ldrb r1, [r0, #0x14]
adds r0, r4, #0
bl sub_080042AC
movs r0, #0xbf
lsls r0, r0, #1
bl sub_08004488
ldr r0, [r4, #0x54]
movs r1, #3
bl sub_08004260
_080922E0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080922E4
sub_080922E4: @ 0x080922E4
push {r4, lr}
adds r4, r0, #0
movs r1, #0x90
lsls r1, r1, #6
bl sub_08003FC4
adds r2, r0, #0
cmp r2, #0
bne _08092322
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x70
strb r2, [r0]
ldr r0, [r4, #0x54]
adds r0, #0x63
strb r2, [r0]
ldr r0, [r4, #0x54]
ldrb r1, [r0, #0x14]
bl sub_08004260
adds r0, r4, #0
movs r1, #0x36
movs r2, #0
bl CreateFX
b _0809233E
_08092322:
ldr r1, [r4, #0x20]
ldr r0, _08092340 @ =0x00017FFF
cmp r1, r0
bgt _0809233E
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0809233E
adds r0, r4, #0
bl sub_080042B8
_0809233E:
pop {r4, pc}
.align 2, 0
_08092340: .4byte 0x00017FFF
thumb_func_start sub_08092344
sub_08092344: @ 0x08092344
push {r4, lr}
adds r4, r0, #0
movs r0, #0
strb r0, [r4, #0xf]
ldr r1, _08092364 @ =gUnk_08122650
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_080926E4
pop {r4, pc}
.align 2, 0
_08092364: .4byte gUnk_08122650
thumb_func_start sub_08092368
sub_08092368: @ 0x08092368
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xb]
strb r0, [r2, #0x14]
adds r3, r2, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #7
orrs r0, r1
strb r0, [r3]
adds r1, r2, #0
adds r1, #0x40
movs r0, #0x48
strb r0, [r1]
subs r1, #4
movs r0, #7
strb r0, [r1]
subs r1, #1
movs r0, #0x81
strb r0, [r1]
ldr r0, _0809239C @ =gUnk_080FD280
str r0, [r2, #0x48]
adds r0, r2, #0
bl sub_0809264C
pop {pc}
.align 2, 0
_0809239C: .4byte gUnk_080FD280
thumb_func_start sub_080923A0
sub_080923A0: @ 0x080923A0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #3
beq _080923E2
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _080923C6
movs r1, #1
movs r0, #1
strb r0, [r4, #0xd]
ldrb r0, [r4, #0x14]
eors r0, r1
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_080923C6:
adds r1, r4, #0
adds r1, #0x63
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #3
rsbs r1, r1, #0
cmp r0, r1
bne _080923E2
adds r0, r4, #0
bl sub_0809264C
_080923E2:
pop {r4, pc}
thumb_func_start sub_080923E4
sub_080923E4: @ 0x080923E4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9d
bne _080923F8
adds r0, r4, #0
bl sub_08092620
b _0809241A
_080923F8:
adds r0, r4, #0
bl sub_0809269C
cmp r0, #0
beq _0809241A
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #0x14
strb r0, [r4, #0xe]
ldr r0, _0809241C @ =gUnk_03003F80
adds r0, #0x3f
movs r1, #0xfd
strb r1, [r0]
_0809241A:
pop {r4, pc}
.align 2, 0
_0809241C: .4byte gUnk_03003F80
thumb_func_start sub_08092420
sub_08092420: @ 0x08092420
push {r4, lr}
adds r4, r0, #0
bl sub_0809269C
cmp r0, #0
beq _08092434
ldr r0, _08092464 @ =gUnk_03003F80
adds r0, #0x3f
movs r1, #0xfd
strb r1, [r0]
_08092434:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08092462
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x72
ldrh r1, [r0]
subs r0, #2
movs r2, #0
strh r1, [r0]
subs r0, #0xd
strb r2, [r0]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
ldr r0, _08092468 @ =0x0000017B
bl sub_08004488
_08092462:
pop {r4, pc}
.align 2, 0
_08092464: .4byte gUnk_03003F80
_08092468: .4byte 0x0000017B
thumb_func_start sub_0809246C
sub_0809246C: @ 0x0809246C
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0809269C
adds r5, r4, #0
adds r5, #0x70
ldrh r0, [r5]
cmp r0, #0
beq _08092482
subs r0, #1
strh r0, [r5]
_08092482:
ldrh r0, [r5]
cmp r0, #0x8c
bhi _080924DC
adds r0, r4, #0
bl sub_08004274
adds r3, r4, #0
adds r3, #0x5a
ldrb r1, [r3]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _080924B8
movs r0, #5
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
strh r0, [r5]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
b _080924DC
_080924B8:
movs r2, #1
ands r2, r1
cmp r2, #0
beq _080924CC
strb r0, [r3]
movs r0, #0xbe
lsls r0, r0, #1
bl sub_08004488
b _080924DC
_080924CC:
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080924DC
strb r2, [r3]
ldr r0, _080924E0 @ =0x0000017D
bl sub_08004488
_080924DC:
pop {r4, r5, pc}
.align 2, 0
_080924E0: .4byte 0x0000017D
thumb_func_start sub_080924E4
sub_080924E4: @ 0x080924E4
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x70
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809252C
movs r0, #6
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x14]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0
strb r0, [r1]
ldrb r1, [r4, #0x14]
adds r1, #4
adds r0, r4, #0
bl sub_08004260
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _0809252C
adds r0, r4, #0
bl sub_0809269C
_0809252C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08092530
sub_08092530: @ 0x08092530
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _08092544
adds r0, r4, #0
bl sub_0809269C
adds r5, r0, #0
b _08092546
_08092544:
movs r5, #0
_08092546:
adds r0, r4, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08092570
movs r0, #0
strb r0, [r2]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0xac
strb r0, [r1]
b _0809258A
_08092570:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809258A
adds r0, r4, #0
bl sub_0809264C
cmp r5, #0
beq _0809258A
ldr r0, _0809258C @ =gUnk_03003F80
adds r0, #0x3f
movs r1, #0xfd
strb r1, [r0]
_0809258A:
pop {r4, r5, pc}
.align 2, 0
_0809258C: .4byte gUnk_03003F80
thumb_func_start sub_08092590
sub_08092590: @ 0x08092590
push {lr}
adds r1, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x9d
bne _080925A2
adds r0, r1, #0
bl sub_08092620
_080925A2:
pop {pc}
thumb_func_start sub_080925A4
sub_080925A4: @ 0x080925A4
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldrb r0, [r6, #0xb]
bl sub_0804B128
adds r5, r0, #0
ldrb r0, [r5, #9]
cmp r0, #0xff
beq _0809261A
ldr r7, _0809261C @ =gUnk_03000BF0
_080925B8:
ldrb r2, [r5, #9]
movs r0, #0x59
movs r1, #1
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08092612
movs r0, #0xff
strb r0, [r4, #0x15]
movs r0, #0
strh r0, [r4, #0x24]
str r6, [r4, #0x50]
ldrh r0, [r7, #6]
ldrh r1, [r5, #4]
adds r0, r0, r1
strh r0, [r4, #0x2e]
ldrh r0, [r7, #8]
ldrh r1, [r5, #6]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldrb r1, [r5, #8]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
ldrh r0, [r5, #0xa]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
ldrh r1, [r5, #0xc]
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
ldr r0, [r5]
str r0, [r4, #0x78]
adds r0, r4, #0
bl sub_08016A04
adds r1, r4, #0
adds r1, #0x78
adds r2, r4, #0
adds r2, #0x76
adds r0, r4, #0
bl sub_080A2CC0
_08092612:
adds r5, #0x10
ldrb r0, [r5, #9]
cmp r0, #0xff
bne _080925B8
_0809261A:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809261C: .4byte gUnk_03000BF0
thumb_func_start sub_08092620
sub_08092620: @ 0x08092620
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r1, [r5, #0x50]
adds r0, r1, #0
adds r0, #0x70
ldrb r6, [r0]
cmp r6, #0
bne _08092648
movs r4, #1
strb r4, [r0]
str r5, [r1, #0x54]
adds r0, r5, #0
bl sub_0806FA24
strb r4, [r5, #0xc]
strb r6, [r5, #0xd]
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0xac
strb r0, [r1]
_08092648:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809264C
sub_0809264C: @ 0x0809264C
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x14]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0809266A
movs r0, #7
strb r0, [r2, #0xc]
adds r1, r2, #0
adds r1, #0x3f
movs r0, #0xac
strb r0, [r1]
b _08092674
_0809266A:
movs r0, #2
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x3f
strb r3, [r0]
_08092674:
ldrb r1, [r2, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
adds r1, r2, #0
adds r1, #0x63
movs r0, #0xfd
strb r0, [r1]
ldrb r1, [r2, #0x14]
adds r0, r2, #0
bl sub_08004260
pop {pc}
thumb_func_start sub_0809269C
sub_0809269C: @ 0x0809269C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r6, _080926D8 @ =gUnk_03003F80
ldr r0, [r6, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _080926E0
ldr r5, _080926DC @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0x10
movs r3, #0x10
bl sub_080041A0
cmp r0, #0
beq _080926E0
bl sub_08079F8C
cmp r0, #0
beq _080926E0
movs r1, #1
strb r1, [r6, #0x14]
movs r2, #0x36
ldrsh r0, [r5, r2]
cmp r0, #0
bne _080926E0
strb r1, [r4, #0xf]
movs r0, #1
b _080926E2
.align 2, 0
_080926D8: .4byte gUnk_03003F80
_080926DC: .4byte gLinkEntity
_080926E0:
movs r0, #0
_080926E2:
pop {r4, r5, r6, pc}
thumb_func_start sub_080926E4
sub_080926E4: @ 0x080926E4
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xf]
bl sub_080A2BE4
ldrb r0, [r4, #0xc]
cmp r0, #1
bne _08092700
ldr r1, [r4, #0x50]
ldrh r0, [r4, #0x2e]
strh r0, [r1, #0x2e]
ldr r1, [r4, #0x50]
ldrh r0, [r4, #0x32]
strh r0, [r1, #0x32]
_08092700:
adds r2, r4, #0
adds r2, #0x76
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809271A
adds r1, r4, #0
adds r1, #0x78
adds r0, r4, #0
bl sub_080A2CC0
_0809271A:
pop {r4, pc}
thumb_func_start sub_0809271C
sub_0809271C: @ 0x0809271C
push {lr}
ldr r2, _08092730 @ =gUnk_08122780
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08092730: .4byte gUnk_08122780
thumb_func_start sub_08092734
sub_08092734: @ 0x08092734
push {lr}
ldr r2, _08092748 @ =gUnk_08122788
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08092748: .4byte gUnk_08122788
thumb_func_start sub_0809274C
sub_0809274C: @ 0x0809274C
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x19]
movs r5, #0x3f
adds r0, r5, #0
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
ldrh r0, [r4, #0x36]
subs r0, #8
strh r0, [r4, #0x36]
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _0809277C
cmp r0, #2
bne _080927A2
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_0809277C:
ldr r0, _080927A4 @ =0x00004051
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldr r3, _080927A8 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r5
movs r6, #0x32
ldrsh r2, [r4, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
movs r2, #1
bl sub_0800015E
_080927A2:
pop {r4, r5, r6, pc}
.align 2, 0
_080927A4: .4byte 0x00004051
_080927A8: .4byte gUnk_03000BF0
thumb_func_start sub_080927AC
sub_080927AC: @ 0x080927AC
push {lr}
adds r1, r0, #0
movs r0, #1
strb r0, [r1, #0xc]
ldrb r0, [r1, #0xb]
strb r0, [r1, #0x1e]
ldrb r0, [r1, #0xb]
cmp r0, #0
beq _080927C4
cmp r0, #2
beq _080927CA
b _080927D0
_080927C4:
adds r1, #0x63
movs r0, #2
b _080927CE
_080927CA:
adds r1, #0x63
movs r0, #0xfe
_080927CE:
strb r0, [r1]
_080927D0:
pop {pc}
.align 2, 0
thumb_func_start sub_080927D4
sub_080927D4: @ 0x080927D4
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xff
strb r0, [r1]
ldr r0, _08092848 @ =0x00004051
mov r8, r0
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldr r6, _0809284C @ =gUnk_03000BF0
ldrh r0, [r6, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r5, #0x3f
ands r1, r5
movs r2, #0x32
ldrsh r0, [r4, r2]
ldrh r2, [r6, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r5
lsls r0, r0, #6
orrs r1, r0
subs r1, #1
mov r0, r8
movs r2, #1
bl sub_0800015E
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldrh r0, [r6, #6]
subs r1, r1, r0
asrs r1, r1, #4
ands r1, r5
movs r2, #0x32
ldrsh r0, [r4, r2]
ldrh r2, [r6, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r5
lsls r0, r0, #6
orrs r1, r0
mov r0, r8
movs r2, #1
bl sub_0800015E
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_08092848: .4byte 0x00004051
_0809284C: .4byte gUnk_03000BF0
thumb_func_start sub_08092850
sub_08092850: @ 0x08092850
push {r4, lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08092888
ldr r3, _08092878 @ =gLinkEntity
movs r0, #0x32
ldrsh r1, [r3, r0]
movs r4, #0x32
ldrsh r0, [r2, r4]
cmp r1, r0
blt _0809286E
adds r0, #0x18
cmp r1, r0
ble _0809287C
_0809286E:
ldrb r0, [r2, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
b _08092884
.align 2, 0
_08092878: .4byte gLinkEntity
_0809287C:
ldrb r0, [r2, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x80
_08092884:
orrs r1, r0
strb r1, [r2, #0x19]
_08092888:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809288C
sub_0809288C: @ 0x0809288C
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080928B0
ldr r0, _080928AC @ =gUnk_0812279C
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _080928C0
.align 2, 0
_080928AC: .4byte gUnk_0812279C
_080928B0:
ldr r0, _080928C4 @ =gUnk_08122794
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_080928C0:
pop {pc}
.align 2, 0
_080928C4: .4byte gUnk_08122794
thumb_func_start sub_080928C8
sub_080928C8: @ 0x080928C8
push {lr}
adds r3, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r3, #0xc]
ldrb r1, [r3, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
ldrb r0, [r3, #0xa]
strb r0, [r3, #0x1e]
ldrb r0, [r3, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r3, #0x19]
adds r2, r3, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r1, [r3, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r3, #0x1b]
ldrb r0, [r3, #0xa]
cmp r0, #2
beq _08092912
cmp r0, #4
beq _08092920
b _08092928
_08092912:
adds r0, r3, #0
movs r1, #0x5b
movs r2, #4
movs r3, #0
bl sub_080A2988
b _08092928
_08092920:
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
_08092928:
pop {pc}
.align 2, 0
thumb_func_start nullsub_119
nullsub_119: @ 0x0809292C
bx lr
.align 2, 0
thumb_func_start sub_08092930
sub_08092930: @ 0x08092930
push {r4, lr}
adds r4, r0, #0
bl sub_080928C8
adds r4, #0x82
movs r0, #0
strh r0, [r4]
pop {r4, pc}
thumb_func_start sub_08092940
sub_08092940: @ 0x08092940
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x84
ldr r1, [r5]
bl sub_0807DF74
ldr r1, [r5]
adds r0, r4, #0
bl sub_08092958
pop {r4, r5, pc}
thumb_func_start sub_08092958
sub_08092958: @ 0x08092958
push {r4, lr}
adds r3, r0, #0
adds r2, r1, #0
ldr r0, [r2, #8]
cmp r0, #0
beq _0809298A
movs r4, #0
_08092966:
ldr r1, [r2, #8]
mvns r0, r1
adds r0, #1
ands r0, r1
eors r1, r0
str r1, [r2, #8]
cmp r0, #1
beq _0809297C
cmp r0, #2
beq _08092980
b _08092984
_0809297C:
strb r4, [r3, #0x1e]
b _08092984
_08092980:
ldr r0, [r2, #4]
strb r0, [r3, #0x1e]
_08092984:
ldr r0, [r2, #8]
cmp r0, #0
bne _08092966
_0809298A:
pop {r4, pc}
thumb_func_start sub_0809298C
sub_0809298C: @ 0x0809298C
push {lr}
ldr r2, _080929A0 @ =gUnk_081227A4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080929A0: .4byte gUnk_081227A4
thumb_func_start sub_080929A4
sub_080929A4: @ 0x080929A4
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xb]
movs r6, #0xc0
adds r0, r6, #0
ands r0, r1
cmp r0, #0
beq _08092A08
adds r4, r5, #0
adds r4, #0x86
ldrh r0, [r4]
bl sub_0807CBE4
cmp r0, #0
beq _08092A08
ldrb r0, [r5, #0xb]
adds r1, r6, #0
ands r1, r0
cmp r1, #0x40
beq _080929D2
cmp r1, #0x80
beq _08092A04
b _08092A08
_080929D2:
ldr r0, _080929F4 @ =gUnk_030010A0
ldrh r1, [r0, #0xa]
movs r0, #0xc1
lsls r0, r0, #1
cmp r1, r0
beq _080929EE
cmp r1, r0
blt _080929FC
ldr r0, _080929F8 @ =0x0000044F
cmp r1, r0
bgt _080929FC
subs r0, #2
cmp r1, r0
blt _080929FC
_080929EE:
bl sub_0805E780
b _08092A08
.align 2, 0
_080929F4: .4byte gUnk_030010A0
_080929F8: .4byte 0x0000044F
_080929FC:
ldrh r0, [r4]
bl sub_0807CD48
b _08092A08
_08092A04:
bl sub_0805E780
_08092A08:
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0xc0
lsls r0, r0, #9
str r0, [r5, #0x20]
bl sub_08000E50
movs r1, #7
ands r0, r1
lsls r0, r0, #0xa
movs r2, #0x80
lsls r2, r2, #6
adds r1, r2, #0
adds r2, r5, #0
adds r2, #0x78
movs r3, #0
orrs r0, r1
strh r0, [r2]
ldrb r0, [r5, #0xe]
lsrs r0, r0, #1
strb r0, [r5, #0xf]
strb r3, [r5, #0xe]
ldrb r1, [r5, #0xb]
movs r0, #0x3f
ands r0, r1
strb r0, [r5, #0x1e]
movs r4, #0x2e
ldrsh r1, [r5, r4]
ldr r2, _08092A8C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r5, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r4, r5, #0
adds r4, #0x7e
strh r1, [r4]
ldrh r0, [r4]
movs r1, #1
bl sub_080001DA
adds r1, r5, #0
adds r1, #0x7c
strh r0, [r1]
ldrh r0, [r4]
movs r1, #1
bl sub_080002E0
adds r1, r5, #0
adds r1, #0x7a
strh r0, [r1]
ldr r0, _08092A90 @ =0x00004022
ldrh r1, [r4]
movs r2, #1
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_08092A8C: .4byte gUnk_03000BF0
_08092A90: .4byte 0x00004022
thumb_func_start sub_08092A94
sub_08092A94: @ 0x08092A94
push {r4, r5, lr}
adds r4, r0, #0
ldr r2, _08092B08 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #6
bne _08092B04
ldrb r0, [r2, #0x14]
cmp r0, #0
bne _08092B04
movs r1, #0x32
ldrsh r0, [r4, r1]
adds r0, #0x28
movs r3, #0x32
ldrsh r1, [r2, r3]
cmp r0, r1
blt _08092B04
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r3, #0x2e
ldrsh r0, [r2, r3]
subs r1, r1, r0
ldrb r0, [r4, #0xf]
cmp r1, r0
bge _08092B04
cmn r1, r0
ble _08092B04
adds r0, r4, #0
adds r0, #0x7c
ldrh r0, [r0]
adds r5, r4, #0
adds r5, #0x7e
ldrh r1, [r5]
movs r2, #1
bl sub_0800015E
adds r0, r4, #0
adds r0, #0x7a
ldrh r0, [r0]
ldrh r1, [r5]
movs r2, #1
bl sub_08000148
movs r0, #2
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x36]
subs r0, #0x20
strh r0, [r4, #0x36]
ldrh r0, [r4, #0x32]
adds r0, #0x20
strh r0, [r4, #0x32]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
_08092B04:
pop {r4, r5, pc}
.align 2, 0
_08092B08: .4byte gLinkEntity
thumb_func_start sub_08092B0C
sub_08092B0C: @ 0x08092B0C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _08092B50
movs r0, #0
movs r1, #3
strb r1, [r4, #0xc]
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xb]
movs r1, #0xc0
ands r1, r0
cmp r1, #0x40
beq _08092B32
cmp r1, #0x80
bne _08092B3C
movs r0, #0x72
bl sub_08004488
_08092B32:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
_08092B3C:
adds r0, r4, #0
movs r1, #5
movs r2, #0
bl CreateFX
adds r0, r4, #0
movs r1, #3
bl sub_0805457C
b _08092B6A
_08092B50:
adds r0, r4, #0
adds r0, #0x78
ldrh r1, [r0]
adds r0, r4, #0
bl sub_080044EC
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08092B6A
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
_08092B6A:
pop {r4, pc}
thumb_func_start sub_08092B6C
sub_08092B6C: @ 0x08092B6C
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_08092B74
sub_08092B74: @ 0x08092B74
push {lr}
ldr r2, _08092B88 @ =gUnk_081227C0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08092B88: .4byte gUnk_081227C0
thumb_func_start sub_08092B8C
sub_08092B8C: @ 0x08092B8C
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08092BA6
bl sub_0807CBE4
cmp r0, #0
beq _08092BA6
bl sub_0805E780
_08092BA6:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x7d
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r0, _08092BE8 @ =gUnk_081227EC
str r0, [r4, #0x48]
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
ldr r1, _08092BEC @ =gUnk_081227B4
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r1, #0
cmp r0, #0xff
bne _08092BF0
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
b _08092BF6
.align 2, 0
_08092BE8: .4byte gUnk_081227EC
_08092BEC: .4byte gUnk_081227B4
_08092BF0:
strb r1, [r4, #0x1e]
ldrb r0, [r2, #1]
strb r0, [r4, #0xb]
_08092BF6:
pop {r4, pc}
thumb_func_start sub_08092BF8
sub_08092BF8: @ 0x08092BF8
push {r4, r5, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08092C20
bl sub_0807CBE4
cmp r0, #0
beq _08092C20
movs r0, #2
strb r0, [r4, #0xc]
ldr r0, _08092C1C @ =0x00000111
bl sub_080A3268
b _08092C92
.align 2, 0
_08092C1C: .4byte 0x00000111
_08092C20:
adds r0, r4, #0
bl sub_0800445C
cmp r0, #0
beq _08092C74
adds r0, r4, #0
adds r0, #0x7d
ldrb r0, [r0]
cmp r0, #0
bne _08092C74
ldrb r0, [r4, #0xb]
lsls r0, r0, #3
ldr r1, _08092C68 @ =gUnk_081227CC
adds r5, r0, r1
ldrh r1, [r5, #4]
ldrh r2, [r5, #6]
adds r0, r4, #0
bl sub_0806ED9C
cmp r0, #0
blt _08092C78
ldr r1, _08092C6C @ =gLinkEntity
ldrh r0, [r5]
ldrb r1, [r1, #0x14]
cmp r0, r1
bne _08092C78
ldr r0, _08092C70 @ =gUnk_03003F80
adds r0, #0x90
ldrh r1, [r0]
ldrh r0, [r5, #2]
ands r0, r1
cmp r0, #0
beq _08092C78
ldrb r0, [r4, #0xe]
subs r0, #1
b _08092C76
.align 2, 0
_08092C68: .4byte gUnk_081227CC
_08092C6C: .4byte gLinkEntity
_08092C70: .4byte gUnk_03003F80
_08092C74:
movs r0, #8
_08092C76:
strb r0, [r4, #0xe]
_08092C78:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08092C92
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #8
movs r1, #0
movs r2, #0
bl sub_08078AC0
ldr r0, _08092C94 @ =0x00000111
bl sub_080A3268
_08092C92:
pop {r4, r5, pc}
.align 2, 0
_08092C94: .4byte 0x00000111
thumb_func_start sub_08092C98
sub_08092C98: @ 0x08092C98
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_08092CA0
sub_08092CA0: @ 0x08092CA0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _08092CC0
ldr r0, _08092CD4 @ =gUnk_020342F8
subs r1, #1
bl sub_0801D5A8
cmp r0, #0
bne _08092CC0
bl sub_0805E780
_08092CC0:
ldr r0, _08092CD8 @ =gUnk_081227F4
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08092CD4: .4byte gUnk_020342F8
_08092CD8: .4byte gUnk_081227F4
thumb_func_start sub_08092CDC
sub_08092CDC: @ 0x08092CDC
push {r4, lr}
adds r4, r0, #0
movs r2, #1
strb r2, [r4, #0xc]
ldr r0, _08092D48 @ =gUnk_080FD320
str r0, [r4, #0x48]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #0x47
strb r0, [r1]
adds r1, #4
movs r0, #0x44
strb r0, [r1]
subs r1, #5
movs r0, #0x80
strb r0, [r1]
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x14]
lsls r0, r0, #3
strb r0, [r4, #0x15]
movs r0, #0xe0
lsls r0, r0, #3
strh r0, [r4, #0x24]
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _08092D50
ldr r1, _08092D4C @ =0x00000161
adds r0, r4, #0
bl sub_0801D2B4
adds r0, r4, #0
movs r1, #1
bl sub_08004260
b _08092D5C
.align 2, 0
_08092D48: .4byte gUnk_080FD320
_08092D4C: .4byte 0x00000161
_08092D50:
ldr r0, _08092D78 @ =0x0000FFE8
strh r0, [r4, #0x36]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08092D5C:
ldrb r1, [r4, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08092D74
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
_08092D74:
pop {r4, pc}
.align 2, 0
_08092D78: .4byte 0x0000FFE8
thumb_func_start sub_08092D7C
sub_08092D7C: @ 0x08092D7C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r1, [r5, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08092D92
adds r0, r5, #0
movs r1, #0
bl sub_0807DDAC
_08092D92:
ldrb r0, [r5, #0x18]
lsls r0, r0, #0x1e
cmp r0, #0
beq _08092E84
adds r0, r5, #0
bl sub_08004274
ldr r6, _08092E04 @ =gUnk_03003F80
ldr r0, [r6, #0x30]
movs r3, #0x80
ands r0, r3
cmp r0, #0
bne _08092E84
adds r0, r6, #0
adds r0, #0x3c
ldrb r0, [r0]
cmp r0, #0
bne _08092E84
ldr r4, _08092E08 @ =gLinkEntity
ldrb r2, [r4, #0xc]
cmp r2, #4
beq _08092DC8
ldrb r1, [r4, #0x10]
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _08092E84
_08092DC8:
cmp r2, #6
beq _08092E84
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0xc
movs r3, #0xc
bl sub_0800419C
cmp r0, #0
beq _08092E84
ldr r0, [r6, #0x30]
movs r1, #0x80
lsls r1, r1, #0x11
ands r0, r1
cmp r0, #0
bne _08092E0C
ldrb r0, [r4, #0xc]
cmp r0, #4
beq _08092E0C
ldrb r0, [r5, #0xb]
cmp r0, #1
beq _08092E16
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #0x10
rsbs r0, r0, #0
cmp r1, r0
bgt _08092E84
b _08092E16
.align 2, 0
_08092E04: .4byte gUnk_03003F80
_08092E08: .4byte gLinkEntity
_08092E0C:
ldr r0, _08092E88 @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
beq _08092E84
_08092E16:
ldr r4, _08092E88 @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r5, #0
bl sub_08004542
adds r0, r4, #0
bl sub_08004542
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldr r1, _08092E8C @ =gUnk_03003F80
movs r0, #0x1f
strb r0, [r1, #0xc]
ldrb r2, [r5, #0xb]
adds r0, r1, #0
adds r0, #0x38
strb r2, [r0]
adds r1, #0x39
movs r0, #0xff
strb r0, [r1]
adds r4, #0x29
ldrb r1, [r4]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, r5, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
bl sub_08077B20
ldr r0, _08092E90 @ =0x00000153
bl sub_080A3268
movs r0, #0x79
bl sub_080A3268
_08092E84:
pop {r4, r5, r6, pc}
.align 2, 0
_08092E88: .4byte gLinkEntity
_08092E8C: .4byte gUnk_03003F80
_08092E90: .4byte 0x00000153
thumb_func_start sub_08092E94
sub_08092E94: @ 0x08092E94
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
ldr r1, _08092ED0 @ =gLinkEntity
adds r0, r4, #0
movs r2, #0xc
movs r3, #0xc
bl sub_0800419C
cmp r0, #0
bne _08092ECE
adds r0, r4, #0
bl sub_0800455E
ldrb r2, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r4, #0x19]
ands r1, r0
orrs r1, r2
strb r1, [r4, #0x19]
ldrb r0, [r4, #0xc]
subs r0, #1
strb r0, [r4, #0xc]
_08092ECE:
pop {r4, pc}
.align 2, 0
_08092ED0: .4byte gLinkEntity
thumb_func_start sub_08092ED4
sub_08092ED4: @ 0x08092ED4
push {lr}
ldr r2, _08092EE8 @ =gUnk_0812283C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08092EE8: .4byte gUnk_0812283C
thumb_func_start sub_08092EEC
sub_08092EEC: @ 0x08092EEC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_080932D8
cmp r0, #1
beq _08092F2C
cmp r0, #2
beq _08092F3A
movs r0, #1
strb r0, [r4, #0xc]
movs r1, #0
movs r2, #0x80
strh r2, [r4, #0x24]
strb r0, [r4, #0x16]
strb r1, [r4, #0xe]
strb r1, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0x20
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x7b
strb r2, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08092F48
ldr r0, _08092F28 @ =gUnk_080FD288
str r0, [r4, #0x48]
b _08092F48
.align 2, 0
_08092F28: .4byte gUnk_080FD288
_08092F2C:
movs r0, #4
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x2e]
subs r0, #0x20
strh r0, [r4, #0x2e]
movs r5, #2
b _08092F5E
_08092F3A:
movs r0, #4
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x2e]
adds r0, #0x20
strh r0, [r4, #0x2e]
movs r5, #3
b _08092F5E
_08092F48:
movs r5, #0
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08092F5E
bl sub_0807CBE4
cmp r0, #0
bne _08092F5E
movs r5, #1
_08092F5E:
adds r0, r4, #0
adds r1, r5, #0
bl sub_080931A4
pop {r4, r5, pc}
thumb_func_start sub_08092F68
sub_08092F68: @ 0x08092F68
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
ldr r0, _08092FA4 @ =gLinkEntity
movs r2, #0x2e
ldrsh r1, [r0, r2]
movs r2, #0x2e
ldrsh r0, [r6, r2]
subs r1, r1, r0
mov r8, r1
adds r1, r6, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08092FA8
bl sub_0807CBE4
cmp r0, #0
bne _08092F92
b _080930E6
_08092F92:
adds r0, r6, #0
adds r0, #0x7a
ldrb r0, [r0]
cmp r0, #0
beq _08092FA8
adds r0, r6, #0
bl sub_080932A8
b _080930E6
.align 2, 0
_08092FA4: .4byte gLinkEntity
_08092FA8:
adds r1, r6, #0
adds r1, #0x7b
ldrb r2, [r1]
movs r0, #0x3f
ands r0, r2
adds r7, r1, #0
cmp r0, #0
bne _08092FD6
movs r0, #0xf
movs r4, #0
orrs r0, r2
strb r0, [r7]
adds r0, r6, #0
movs r1, #0
bl sub_080931A4
mov r0, r8
cmp r0, #0
bge _08092FD6
ldrb r0, [r7]
movs r1, #0x40
orrs r0, r1
strb r0, [r7]
_08092FD6:
ldrb r1, [r7]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _08092FEA
adds r5, r6, #0
adds r5, #0x78
ldrh r0, [r5]
subs r0, #1
b _08092FF2
_08092FEA:
adds r5, r6, #0
adds r5, #0x78
ldrh r0, [r5]
adds r0, #1
_08092FF2:
adds r4, r6, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080002B0
adds r1, r0, #0
ldr r0, _08093034 @ =0x00004031
cmp r1, r0
bhi _08093040
subs r0, #1
cmp r1, r0
blo _08093040
movs r0, #3
strb r0, [r6, #0xc]
ldr r0, _08093038 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsls r0, r0, #2
strb r0, [r6, #0x15]
movs r0, #0x80
strh r0, [r6, #0x24]
movs r0, #0x40
strb r0, [r6, #0xe]
adds r0, r6, #0
movs r1, #0x50
bl sub_0805E4E0
ldr r0, _0809303C @ =0x0000010F
bl sub_08004488
adds r0, r6, #0
bl sub_08093248
b _080930E6
.align 2, 0
_08093034: .4byte 0x00004031
_08093038: .4byte gLinkEntity
_0809303C: .4byte 0x0000010F
_08093040:
ldr r0, _0809307C @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _080930E6
adds r0, r6, #0
bl sub_08078930
adds r3, r7, #0
ldrb r2, [r3]
movs r0, #0x80
ands r0, r2
cmp r0, #0
beq _08093088
movs r1, #0x7f
ands r1, r2
strb r1, [r3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0809309C
ldr r0, _08093080 @ =0x0000402C
ldrh r1, [r5]
subs r1, #1
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08093084 @ =0x0000403D
b _080930AA
.align 2, 0
_0809307C: .4byte gLinkEntity
_08093080: .4byte 0x0000402C
_08093084: .4byte 0x0000403D
_08093088:
movs r0, #0x40
ands r0, r2
cmp r0, #0
beq _080930C0
mov r1, r8
cmp r1, #4
ble _080930E6
movs r0, #0x3f
ands r0, r2
strb r0, [r3]
_0809309C:
ldr r0, _080930B8 @ =0x0000403D
ldrh r1, [r5]
subs r1, #1
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _080930BC @ =0x0000402D
_080930AA:
ldrh r1, [r5]
adds r1, #1
ldrb r2, [r4]
bl sub_0800015E
b _080930E6
.align 2, 0
_080930B8: .4byte 0x0000403D
_080930BC: .4byte 0x0000402D
_080930C0:
mov r1, r8
rsbs r0, r1, #0
cmp r0, #4
ble _080930E6
movs r0, #0x40
orrs r0, r2
strb r0, [r7]
ldr r0, _080930EC @ =0x0000402C
ldrh r1, [r5]
subs r1, #1
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _080930F0 @ =0x0000403D
ldrh r1, [r5]
adds r1, #1
ldrb r2, [r4]
bl sub_0800015E
_080930E6:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080930EC: .4byte 0x0000402C
_080930F0: .4byte 0x0000403D
thumb_func_start sub_080930F4
sub_080930F4: @ 0x080930F4
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r3, [r4, #0xe]
cmp r3, #0
beq _08093104
bl sub_08093280
b _08093174
_08093104:
ldr r5, _0809315C @ =gUnk_03003F80
ldrb r0, [r5, #5]
cmp r0, #0x12
bne _08093168
ldr r6, _08093160 @ =gLinkEntity
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08093174
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #8
bls _08093174
movs r0, #0x10
strb r0, [r5, #0xc]
adds r0, r5, #0
adds r0, #0x38
movs r2, #0x40
strb r2, [r0]
ldr r0, [r5, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r5, #0x30]
strh r3, [r6, #0x2c]
strh r3, [r6, #0x30]
ldrb r0, [r6, #0x14]
movs r1, #4
eors r0, r1
lsls r0, r0, #2
strb r0, [r4, #0x15]
strb r2, [r4, #0xe]
ldr r0, _08093164 @ =0x0000010F
bl sub_08004488
adds r0, r4, #0
bl sub_08093248
b _08093174
.align 2, 0
_0809315C: .4byte gUnk_03003F80
_08093160: .4byte gLinkEntity
_08093164: .4byte 0x0000010F
_08093168:
ldrb r0, [r4, #0xd]
cmp r0, #6
bne _08093174
movs r0, #1
strb r0, [r4, #0xc]
strb r3, [r4, #0xf]
_08093174:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08093178
sub_08093178: @ 0x08093178
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08093198
adds r0, r4, #0
bl sub_08093334
_08093198:
adds r0, r4, #0
bl sub_08093364
pop {r4, pc}
thumb_func_start nullsub_120
nullsub_120: @ 0x080931A0
bx lr
.align 2, 0
thumb_func_start sub_080931A4
sub_080931A4: @ 0x080931A4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r1, #0
movs r1, #0x2e
ldrsh r2, [r0, r1]
ldr r3, _080931F0 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r2, r2, r1
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r6, #0x32
ldrsh r1, [r0, r6]
ldrh r3, [r3, #8]
subs r1, r1, r3
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r2, r1
adds r1, r0, #0
adds r1, #0x78
strh r2, [r1]
ldrh r1, [r1]
subs r1, #0x40
mov r8, r1
adds r0, #0x38
ldrb r7, [r0]
cmp r5, #1
beq _080931F4
cmp r5, #1
blo _0809320C
cmp r5, #2
beq _080931FC
cmp r5, #3
beq _08093204
b _0809320C
.align 2, 0
_080931F0: .4byte gUnk_03000BF0
_080931F4:
ldr r0, _080931F8 @ =gUnk_08122862
b _0809320E
.align 2, 0
_080931F8: .4byte gUnk_08122862
_080931FC:
ldr r0, _08093200 @ =gUnk_08122874
b _0809320E
.align 2, 0
_08093200: .4byte gUnk_08122874
_08093204:
ldr r0, _08093208 @ =gUnk_08122886
b _0809320E
.align 2, 0
_08093208: .4byte gUnk_08122886
_0809320C:
ldr r0, _08093230 @ =gUnk_08122850
_0809320E:
movs r4, #0
movs r6, #0
adds r5, r0, #0
_08093214:
mov r0, r8
adds r1, r0, r6
adds r1, r1, r4
subs r1, #1
ldrh r0, [r5]
adds r2, r7, #0
bl sub_0800015E
cmp r4, #2
beq _08093234
cmp r4, #5
beq _08093238
b _0809323A
.align 2, 0
_08093230: .4byte gUnk_08122850
_08093234:
movs r6, #0x3d
b _0809323A
_08093238:
movs r6, #0x7a
_0809323A:
adds r5, #2
adds r4, #1
cmp r4, #8
bls _08093214
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08093248
sub_08093248: @ 0x08093248
push {r4, r5, r6, r7, lr}
adds r1, r0, #0
adds r1, #0x78
ldrh r1, [r1]
adds r7, r1, #0
subs r7, #0x40
adds r0, #0x38
ldrb r6, [r0]
movs r4, #0
movs r5, #0
_0809325C:
adds r0, r7, r5
adds r0, r0, r4
subs r0, #1
adds r1, r6, #0
bl sub_0807BA8C
cmp r4, #2
beq _08093272
cmp r4, #5
beq _08093276
b _08093278
_08093272:
movs r5, #0x3d
b _08093278
_08093276:
movs r5, #0x7a
_08093278:
adds r4, #1
cmp r4, #8
bls _0809325C
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08093280
sub_08093280: @ 0x08093280
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080932A0
adds r0, r4, #0
bl sub_08093334
_080932A0:
adds r0, r4, #0
bl sub_08093364
pop {r4, pc}
thumb_func_start sub_080932A8
sub_080932A8: @ 0x080932A8
push {lr}
adds r1, r0, #0
adds r2, r1, #0
adds r2, #0x7a
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
movs r2, #3
ands r2, r0
cmp r2, #1
beq _080932C8
cmp r2, #3
beq _080932D0
adds r1, #0x62
movs r0, #0
b _080932D4
_080932C8:
adds r0, r1, #0
adds r0, #0x62
strb r2, [r0]
b _080932D6
_080932D0:
adds r1, #0x62
movs r0, #0xff
_080932D4:
strb r0, [r1]
_080932D6:
pop {pc}
thumb_func_start sub_080932D8
sub_080932D8: @ 0x080932D8
push {r4, lr}
lsls r0, r0, #3
ldr r1, _080932F0 @ =gUnk_08122898
adds r4, r0, r1
ldr r0, [r4]
ldrh r1, [r4, #4]
bl GetProgressFlagWithOffset
cmp r0, #0
beq _080932F4
movs r0, #1
b _08093306
.align 2, 0
_080932F0: .4byte gUnk_08122898
_080932F4:
ldr r0, [r4]
ldrh r1, [r4, #6]
bl GetProgressFlagWithOffset
cmp r0, #0
bne _08093304
movs r0, #0
b _08093306
_08093304:
movs r0, #2
_08093306:
pop {r4, pc}
thumb_func_start sub_08093308
sub_08093308: @ 0x08093308
push {lr}
adds r2, r1, #0
lsls r0, r0, #3
ldr r1, _08093320 @ =gUnk_08122898
adds r1, r0, r1
cmp r2, #1
bne _08093324
ldr r0, [r1]
ldrh r1, [r1, #4]
bl sub_0807CC9C
b _08093330
.align 2, 0
_08093320: .4byte gUnk_08122898
_08093324:
cmp r2, #2
bne _08093330
ldr r0, [r1]
ldrh r1, [r1, #6]
bl sub_0807CC9C
_08093330:
pop {pc}
.align 2, 0
thumb_func_start sub_08093334
sub_08093334: @ 0x08093334
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #4
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x15]
movs r0, #0x10
ands r0, r1
movs r5, #2
cmp r0, #0
beq _0809334A
movs r5, #1
_0809334A:
adds r1, r5, #1
adds r0, r4, #0
bl sub_080931A4
ldrb r0, [r4, #0xa]
adds r1, r5, #0
bl sub_08093308
movs r0, #0x72
bl sub_08004488
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08093364
sub_08093364: @ 0x08093364
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xe]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _080933BC
movs r0, #0xf
movs r1, #0x11
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080933BC
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldrb r1, [r5, #0x15]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0809339C
ldrh r0, [r4, #0x2e]
adds r0, #0x12
b _080933A0
_0809339C:
ldrh r0, [r4, #0x2e]
subs r0, #0x12
_080933A0:
strh r0, [r4, #0x2e]
movs r0, #0x32
ldrsh r2, [r4, r0]
ldrb r1, [r5, #0xe]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _080933B6
adds r0, r2, #0
adds r0, #8
b _080933BA
_080933B6:
adds r0, r2, #0
subs r0, #8
_080933BA:
strh r0, [r4, #0x32]
_080933BC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080933C0
sub_080933C0: @ 0x080933C0
push {lr}
ldr r2, _080933D4 @ =gUnk_081228B0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080933D4: .4byte gUnk_081228B0
thumb_func_start sub_080933D8
sub_080933D8: @ 0x080933D8
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
adds r0, r4, #0
bl sub_08016A04
ldr r0, _080933F8 @ =gUnk_081228A8
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_080787B4
pop {r4, pc}
.align 2, 0
_080933F8: .4byte gUnk_081228A8
thumb_func_start sub_080933FC
sub_080933FC: @ 0x080933FC
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08093420
movs r0, #0
strb r0, [r1]
ldr r1, _08093424 @ =gUnk_081228B8
ldrb r0, [r2, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r1, r2, #0
bl sub_08056398
_08093420:
pop {pc}
.align 2, 0
_08093424: .4byte gUnk_081228B8
thumb_func_start sub_08093428
sub_08093428: @ 0x08093428
push {r4, lr}
adds r4, r0, #0
ldr r0, _0809345C @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0x11
ands r0, r1
cmp r0, #0
bne _0809344A
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08093446
ldr r1, _08093460 @ =gUnk_03000BF0
ldr r0, _08093464 @ =gLinkEntity
str r0, [r1, #0x30]
_08093446:
bl sub_0805E780
_0809344A:
ldr r0, _08093468 @ =gUnk_081228C8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_0809345C: .4byte gUnk_03003F80
_08093460: .4byte gUnk_03000BF0
_08093464: .4byte gLinkEntity
_08093468: .4byte gUnk_081228C8
thumb_func_start sub_0809346C
sub_0809346C: @ 0x0809346C
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1f]
ldr r0, _080934C0 @ =gLinkEntity
ldrb r1, [r0, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080934B8
ldr r0, _080934C4 @ =gUnk_03000BF0
str r4, [r0, #0x30]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r1, r4, #0
adds r1, #0x6e
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r1]
adds r1, #4
strh r0, [r1]
adds r0, r4, #0
movs r1, #0x61
movs r2, #1
movs r3, #0
bl sub_080A2988
_080934B8:
adds r0, r4, #0
bl sub_080934C8
pop {r4, pc}
.align 2, 0
_080934C0: .4byte gLinkEntity
_080934C4: .4byte gUnk_03000BF0
thumb_func_start sub_080934C8
sub_080934C8: @ 0x080934C8
push {lr}
ldr r2, _080934DC @ =gUnk_081228D0
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080934DC: .4byte gUnk_081228D0
thumb_func_start sub_080934E0
sub_080934E0: @ 0x080934E0
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r4, r5, #0
adds r4, #0x6e
ldrh r1, [r4]
movs r2, #0
ldrsh r0, [r4, r2]
cmp r0, #0
bge _080934F6
rsbs r0, r1, #0
strh r0, [r4]
_080934F6:
ldr r0, _08093518 @ =gLinkEntity
ldrb r0, [r0, #0xd]
cmp r0, #2
beq _0809351C
cmp r0, #2
bgt _080935B0
cmp r0, #1
bne _080935B0
adds r1, r5, #0
adds r1, #0x72
ldrh r0, [r1]
subs r0, #4
strh r0, [r1]
adds r6, r4, #0
adds r7, r1, #0
b _080935BE
.align 2, 0
_08093518: .4byte gLinkEntity
_0809351C:
ldrb r2, [r5, #0xf]
adds r0, r2, #0
cmp r0, #0
bne _08093560
adds r0, r5, #0
adds r0, #0x72
ldrh r1, [r0]
adds r7, r0, #0
cmp r1, #0x80
bls _08093538
adds r0, r1, #0
subs r0, #0x20
strh r0, [r7]
b _08093544
_08093538:
adds r0, r2, #1
strb r0, [r5, #0xf]
movs r0, #0x92
lsls r0, r0, #1
bl sub_080A3268
_08093544:
adds r0, r5, #0
adds r0, #0x6e
ldrh r2, [r0]
ldr r1, _0809355C @ =0x0000011F
adds r6, r0, #0
cmp r2, r1
bhi _080935BE
adds r0, r2, #0
adds r0, #0x40
strh r0, [r6]
b _080935BE
.align 2, 0
_0809355C: .4byte 0x0000011F
_08093560:
cmp r0, #0xff
beq _080935A6
adds r0, r5, #0
adds r0, #0x72
ldrh r1, [r0]
adds r7, r0, #0
cmp r1, #0xff
bhi _08093576
adds r0, r1, #0
adds r0, #0x20
b _0809357A
_08093576:
movs r0, #0x80
lsls r0, r0, #1
_0809357A:
strh r0, [r7]
adds r0, r5, #0
adds r0, #0x6e
ldrh r1, [r0]
movs r2, #0x80
lsls r2, r2, #1
adds r6, r0, #0
cmp r1, r2
bls _08093594
adds r0, r1, #0
subs r0, #0x20
strh r0, [r6]
b _08093596
_08093594:
strh r2, [r6]
_08093596:
ldrh r1, [r6]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
bne _080935BE
movs r0, #0xff
strb r0, [r5, #0xf]
b _080935BE
_080935A6:
adds r0, r5, #0
bl sub_080936C8
adds r6, r4, #0
b _080935BA
_080935B0:
adds r0, r5, #0
bl sub_080936C8
adds r6, r5, #0
adds r6, #0x6e
_080935BA:
adds r7, r5, #0
adds r7, #0x72
_080935BE:
ldr r0, _080935E4 @ =gLinkEntity
ldrb r1, [r0, #0x14]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _080935E8
movs r0, #1
strb r0, [r5, #0x1e]
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #2
bne _080935EA
ldrh r0, [r6]
rsbs r0, r0, #0
strh r0, [r6]
b _080935EA
.align 2, 0
_080935E4: .4byte gLinkEntity
_080935E8:
strb r0, [r5, #0x1e]
_080935EA:
ldrb r0, [r5, #0x1e]
ldrb r1, [r5, #0x1f]
cmp r0, r1
beq _080935FE
strb r0, [r5, #0x1f]
ldrb r1, [r5, #0x1e]
ldrh r2, [r5, #0x12]
adds r0, r5, #0
bl sub_080042D0
_080935FE:
ldr r4, _0809364C @ =gLinkEntity
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA24
ldrb r2, [r4, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r4, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x19]
ldrh r1, [r7]
adds r0, r5, #0
movs r2, #0xa
movs r3, #2
bl sub_0806FCF4
ldrh r1, [r6]
ldrh r2, [r7]
adds r0, r5, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
movs r1, #1
adds r2, r5, #0
bl sub_0806FEBC
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809364C: .4byte gLinkEntity
thumb_func_start sub_08093650
sub_08093650: @ 0x08093650
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080936C4 @ =gLinkEntity
ldrb r0, [r5, #0x15]
lsrs r1, r0, #1
adds r0, r0, r1
asrs r0, r0, #2
adds r0, #2
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1f]
cmp r0, r1
beq _08093674
strb r0, [r4, #0x1f]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08093674:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldrb r2, [r5, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x19]
ldr r0, [r4, #0x50]
adds r0, #0x72
ldrh r1, [r0]
adds r0, r4, #0
movs r2, #0x18
movs r3, #0
bl sub_0806FCF4
adds r1, r4, #0
adds r1, #0x63
ldrb r0, [r1]
rsbs r0, r0, #0
strb r0, [r1]
adds r0, r5, #0
movs r1, #0
adds r2, r4, #0
bl sub_0806FEBC
pop {r4, r5, pc}
.align 2, 0
_080936C4: .4byte gLinkEntity
thumb_func_start sub_080936C8
sub_080936C8: @ 0x080936C8
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _08093714 @ =gLinkEntity
ldr r0, [r0, #0x7c]
lsrs r2, r0, #2
movs r3, #0x9c
lsls r3, r3, #1
adds r1, r3, #0
subs r1, r1, r2
adds r5, r4, #0
adds r5, #0x76
strh r1, [r5]
movs r1, #0x3c
bl __divsi3
movs r1, #8
subs r1, r1, r0
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
ldrb r3, [r4, #0xe]
cmp r3, #0
bne _0809372C
adds r1, r4, #0
adds r1, #0x6e
ldrh r2, [r1]
ldrh r0, [r5]
cmp r0, r2
bhs _08093718
adds r0, r2, #0
subs r0, #8
strh r0, [r1]
adds r1, #4
ldrh r0, [r1]
adds r0, #8
strh r0, [r1]
b _0809375C
.align 2, 0
_08093714: .4byte gLinkEntity
_08093718:
adds r0, r3, #1
strb r0, [r4, #0xe]
ldrh r0, [r5]
strh r0, [r1]
ldrh r0, [r5]
adds r0, #0x30
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
b _0809375C
_0809372C:
ldrh r0, [r5]
adds r0, #0x30
adds r1, r4, #0
adds r1, #0x6e
ldrh r2, [r1]
cmp r0, r2
ble _0809374A
adds r0, r2, #0
adds r0, #8
strh r0, [r1]
adds r1, #4
ldrh r0, [r1]
subs r0, #8
strh r0, [r1]
b _0809375C
_0809374A:
movs r0, #0
strb r0, [r4, #0xe]
ldrh r0, [r5]
adds r0, #0x30
strh r0, [r1]
ldrh r1, [r5]
adds r0, r4, #0
adds r0, #0x72
strh r1, [r0]
_0809375C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08093760
sub_08093760: @ 0x08093760
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #2
beq _08093794
cmp r0, #2
bgt _08093778
cmp r0, #0
beq _08093784
cmp r0, #1
beq _0809378C
b _080937BC
_08093778:
cmp r0, #3
beq _080937AC
cmp r0, #0x41
bgt _080937BC
cmp r0, #0x40
blt _080937BC
_08093784:
ldr r0, _08093788 @ =gUnk_081228D8
b _08093796
.align 2, 0
_08093788: .4byte gUnk_081228D8
_0809378C:
ldr r0, _08093790 @ =gUnk_081228E0
b _08093796
.align 2, 0
_08093790: .4byte gUnk_081228E0
_08093794:
ldr r0, _080937A8 @ =gUnk_081228E8
_08093796:
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _080937BC
.align 2, 0
_080937A8: .4byte gUnk_081228E8
_080937AC:
ldr r0, _080937C0 @ =gUnk_081228F0
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_080937BC:
pop {pc}
.align 2, 0
_080937C0: .4byte gUnk_081228F0
thumb_func_start sub_080937C4
sub_080937C4: @ 0x080937C4
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r5, #1
strb r5, [r4, #0xc]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08093808 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x76
strh r1, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0x41
beq _0809386A
cmp r0, #0x41
bgt _0809387A
cmp r0, #0
beq _0809380C
cmp r0, #0x40
beq _08093840
b _0809387A
.align 2, 0
_08093808: .4byte gUnk_03000BF0
_0809380C:
strb r5, [r4, #0x1e]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x78
strh r5, [r0]
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0x3c
strh r0, [r1]
movs r0, #0x62
movs r1, #0x40
b _08093854
_08093840:
movs r0, #2
strb r0, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x62
movs r1, #0x41
_08093854:
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809387A
str r4, [r1, #0x50]
adds r0, r4, #0
bl sub_0806FA24
b _0809387A
_0809386A:
movs r0, #0
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x1b]
_0809387A:
adds r0, r4, #0
bl sub_08093A1C
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08093884
sub_08093884: @ 0x08093884
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _080938B8
ldr r0, _080938A8 @ =gLinkEntity
movs r3, #0x32
ldrsh r1, [r0, r3]
movs r3, #0x32
ldrsh r0, [r2, r3]
adds r0, #0x20
cmp r1, r0
bge _080938AC
ldrb r0, [r2, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
b _080938B4
.align 2, 0
_080938A8: .4byte gLinkEntity
_080938AC:
ldrb r0, [r2, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x80
_080938B4:
orrs r1, r0
strb r1, [r2, #0x19]
_080938B8:
adds r0, r2, #0
bl sub_08093C70
pop {pc}
thumb_func_start sub_080938C0
sub_080938C0: @ 0x080938C0
push {r4, r5, lr}
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0xb]
ands r1, r2
adds r1, #3
strb r1, [r0, #0x1e]
adds r3, r0, #0
adds r3, #0x29
ldrb r1, [r3]
movs r2, #7
orrs r1, r2
strb r1, [r3]
movs r1, #0x2e
ldrsh r2, [r0, r1]
ldr r3, _08093908 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r2, r2, r1
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r5, #0x32
ldrsh r1, [r0, r5]
ldrh r3, [r3, #8]
subs r1, r1, r3
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r2, r1
adds r1, r0, #0
adds r1, #0x76
strh r2, [r1]
bl sub_08093A1C
pop {r4, r5, pc}
.align 2, 0
_08093908: .4byte gUnk_03000BF0
thumb_func_start nullsub_524
nullsub_524: @ 0x0809390C
bx lr
.align 2, 0
thumb_func_start sub_08093910
sub_08093910: @ 0x08093910
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0xb]
adds r0, r3, #0
ands r0, r1
adds r0, #5
strb r0, [r5, #0x1e]
ldrb r0, [r5, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r5, #0x19]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r2, _0809397C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r0, [r5, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r4
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
adds r0, #0x76
strh r1, [r0]
ldrb r0, [r5, #0xb]
ands r3, r0
cmp r3, #0
beq _0809396C
adds r1, r5, #0
adds r1, #0x62
movs r0, #8
strb r0, [r1]
_0809396C:
adds r0, r5, #0
bl sub_08093984
adds r0, r5, #0
movs r1, #0x7b
bl sub_0801D2B4
pop {r4, r5, r6, pc}
.align 2, 0
_0809397C: .4byte gUnk_03000BF0
thumb_func_start nullsub_525
nullsub_525: @ 0x08093980
bx lr
.align 2, 0
thumb_func_start sub_08093984
sub_08093984: @ 0x08093984
push {r4, r5, r6, lr}
adds r1, r0, #0
ldrb r0, [r1, #0xb]
ldr r2, _080939B4 @ =gUnk_0812291E
cmp r0, #0
beq _08093992
ldr r2, _080939B8 @ =gUnk_081228F8
_08093992:
movs r5, #0
adds r6, r1, #0
adds r6, #0x76
adds r4, r2, #0
_0809399A:
movs r0, #0
ldrsh r1, [r4, r0]
ldrh r0, [r6]
adds r1, r1, r0
ldr r0, _080939BC @ =0x00004074
movs r2, #1
bl sub_0800015E
adds r4, #2
adds r5, #1
cmp r5, #0x12
bls _0809399A
pop {r4, r5, r6, pc}
.align 2, 0
_080939B4: .4byte gUnk_0812291E
_080939B8: .4byte gUnk_081228F8
_080939BC: .4byte 0x00004074
thumb_func_start sub_080939C0
sub_080939C0: @ 0x080939C0
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xb]
movs r0, #3
ands r0, r1
adds r0, #7
strb r0, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08093A14 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x76
strh r1, [r0]
adds r0, r4, #0
bl sub_08093A1C
adds r0, r4, #0
movs r1, #0x7a
bl sub_0801D2B4
pop {r4, r5, pc}
.align 2, 0
_08093A14: .4byte gUnk_03000BF0
thumb_func_start nullsub_526
nullsub_526: @ 0x08093A18
bx lr
.align 2, 0
thumb_func_start sub_08093A1C
sub_08093A1C: @ 0x08093A1C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r2, r0, #0
ldrb r1, [r2, #0xa]
cmp r1, #1
beq _08093B0C
cmp r1, #1
bgt _08093A34
cmp r1, #0
beq _08093A3C
b _08093C64
_08093A34:
cmp r1, #3
bne _08093A3A
b _08093C54
_08093A3A:
b _08093C64
_08093A3C:
ldr r0, _08093AF0 @ =0x00004024
adds r7, r2, #0
adds r7, #0x76
ldrh r1, [r7]
adds r1, #0x3c
adds r4, r2, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldr r5, _08093AF4 @ =0x00004022
ldrh r1, [r7]
adds r1, #0x3d
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x3e
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093AF8 @ =0x00004029
mov r8, r0
ldrh r1, [r7]
adds r1, #0x7c
ldrb r2, [r4]
bl sub_0800015E
ldr r6, _08093AFC @ =0x00004026
ldrh r1, [r7]
adds r1, #0x7d
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x7e
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
adds r5, #0x1b
ldrh r1, [r7]
adds r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x80
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093B00 @ =0x00004027
ldrh r1, [r7]
adds r1, #0x41
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08093B04 @ =0x00004023
ldrh r1, [r7]
adds r1, #0x42
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08093B08 @ =0x0000406D
ldrh r1, [r7]
adds r1, #0x43
ldrb r2, [r4]
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x81
ldrb r2, [r4]
mov r0, r8
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x82
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldrh r1, [r7]
adds r1, #0x83
b _08093B94
.align 2, 0
_08093AF0: .4byte 0x00004024
_08093AF4: .4byte 0x00004022
_08093AF8: .4byte 0x00004029
_08093AFC: .4byte 0x00004026
_08093B00: .4byte 0x00004027
_08093B04: .4byte 0x00004023
_08093B08: .4byte 0x0000406D
_08093B0C:
ldrb r0, [r2, #0xb]
ands r1, r0
cmp r1, #0
beq _08093BB4
ldr r6, _08093BA0 @ =0x0000406D
movs r0, #0x76
adds r0, r0, r2
mov r8, r0
ldrh r1, [r0]
subs r1, #0x81
adds r4, r2, #0
adds r4, #0x38
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldr r5, _08093BA4 @ =0x00004022
mov r2, r8
ldrh r1, [r2]
subs r1, #0x41
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093BA8 @ =0x00004029
mov r2, r8
ldrh r1, [r2]
subs r1, #2
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08093BAC @ =0x00004026
mov r2, r8
ldrh r1, [r2]
subs r1, #1
ldrb r2, [r4]
bl sub_0800015E
mov r0, r8
ldrh r1, [r0]
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
mov r2, r8
ldrh r1, [r2]
adds r1, #1
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldr r0, _08093BB0 @ =0x0000406E
mov r2, r8
ldrh r1, [r2]
adds r1, #0x40
ldrb r2, [r4]
bl sub_0800015E
mov r0, r8
ldrh r1, [r0]
adds r1, #0x41
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
mov r2, r8
ldrh r1, [r2]
adds r1, #0x42
_08093B94:
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
b _08093C64
.align 2, 0
_08093BA0: .4byte 0x0000406D
_08093BA4: .4byte 0x00004022
_08093BA8: .4byte 0x00004029
_08093BAC: .4byte 0x00004026
_08093BB0: .4byte 0x0000406E
_08093BB4:
ldr r6, _08093C40 @ =0x0000406C
movs r0, #0x76
adds r0, r0, r2
mov r8, r0
ldrh r1, [r0]
subs r1, #0x7f
adds r4, r2, #0
adds r4, #0x38
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
ldr r5, _08093C44 @ =0x00004022
mov r2, r8
ldrh r1, [r2]
subs r1, #0x3f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
mov r0, r8
ldrh r1, [r0]
subs r1, #1
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
mov r2, r8
ldrh r1, [r2]
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093C48 @ =0x00004026
mov r2, r8
ldrh r1, [r2]
adds r1, #1
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08093C4C @ =0x0000402A
mov r2, r8
ldrh r1, [r2]
adds r1, #2
ldrb r2, [r4]
bl sub_0800015E
mov r0, r8
ldrh r1, [r0]
adds r1, #0x3e
ldrb r2, [r4]
adds r0, r6, #0
bl sub_0800015E
mov r2, r8
ldrh r1, [r2]
adds r1, #0x3f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093C50 @ =0x0000406F
mov r2, r8
ldrh r1, [r2]
adds r1, #0x40
ldrb r2, [r4]
bl sub_0800015E
b _08093C64
.align 2, 0
_08093C40: .4byte 0x0000406C
_08093C44: .4byte 0x00004022
_08093C48: .4byte 0x00004026
_08093C4C: .4byte 0x0000402A
_08093C50: .4byte 0x0000406F
_08093C54:
ldr r0, _08093C6C @ =0x00004022
adds r1, r2, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_08093C64:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08093C6C: .4byte 0x00004022
thumb_func_start sub_08093C70
sub_08093C70: @ 0x08093C70
push {r4, r5, r6, lr}
adds r2, r0, #0
adds r3, r2, #0
adds r3, #0x78
ldrh r0, [r3]
cmp r0, #0
beq _08093CE8
ldr r0, _08093CE0 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
beq _08093D5C
movs r0, #0
strh r0, [r3]
ldr r4, _08093CE4 @ =0x00004022
adds r6, r2, #0
adds r6, #0x76
ldrh r1, [r6]
adds r1, #0x3f
adds r5, r2, #0
adds r5, #0x38
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x40
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x41
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
adds r4, #4
ldrh r1, [r6]
adds r1, #0x7f
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x80
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x81
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
b _08093D5C
.align 2, 0
_08093CE0: .4byte gUnk_03003F80
_08093CE4: .4byte 0x00004022
_08093CE8:
ldr r0, _08093D60 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08093D5C
adds r1, r2, #0
adds r1, #0x7a
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08093D5C
ldrh r0, [r3]
adds r0, #1
strh r0, [r3]
movs r0, #0x3c
strh r0, [r1]
ldr r5, _08093D64 @ =0x0000403D
adds r6, r2, #0
adds r6, #0x76
ldrh r1, [r6]
adds r1, #0x3f
adds r4, r2, #0
adds r4, #0x38
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093D68 @ =0x00004027
ldrh r1, [r6]
adds r1, #0x41
ldrb r2, [r4]
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x7f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #0x80
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _08093D6C @ =0x00004029
ldrh r1, [r6]
adds r1, #0x81
ldrb r2, [r4]
bl sub_0800015E
_08093D5C:
pop {r4, r5, r6, pc}
.align 2, 0
_08093D60: .4byte gUnk_03003F80
_08093D64: .4byte 0x0000403D
_08093D68: .4byte 0x00004027
_08093D6C: .4byte 0x00004029
thumb_func_start sub_08093D70
sub_08093D70: @ 0x08093D70
push {lr}
ldr r2, _08093D84 @ =gUnk_08122944
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08093D84: .4byte gUnk_08122944
thumb_func_start sub_08093D88
sub_08093D88: @ 0x08093D88
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x36]
subs r0, #8
strh r0, [r4, #0x36]
movs r0, #0xa8
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #0x20
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08093DAC
cmp r0, #1
beq _08093DC4
b _08093DDE
_08093DAC:
adds r0, r4, #0
movs r1, #4
bl sub_0805457C
cmp r0, #0
bne _08093DBC
movs r0, #2
strb r0, [r4, #0xc]
_08093DBC:
ldr r1, [r4, #0x54]
ldr r0, [r4, #0x20]
str r0, [r1, #0x20]
b _08093DDE
_08093DC4:
movs r0, #0
movs r1, #0x5f
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08093DDE
movs r0, #5
strb r0, [r1, #0xe]
adds r0, r4, #0
bl sub_08093E10
_08093DDE:
pop {r4, pc}
thumb_func_start sub_08093DE0
sub_08093DE0: @ 0x08093DE0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08093DF4
movs r0, #2
strb r0, [r2, #0xc]
_08093DF4:
ldrb r1, [r2, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08093E06
ldr r1, [r2, #0x54]
ldrh r0, [r1, #0x32]
adds r0, #1
strh r0, [r1, #0x32]
_08093E06:
pop {pc}
thumb_func_start sub_08093E08
sub_08093E08: @ 0x08093E08
push {lr}
bl sub_0805E7BC
pop {pc}
thumb_func_start sub_08093E10
sub_08093E10: @ 0x08093E10
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
bl sub_0806FA24
str r4, [r5, #0x50]
str r5, [r4, #0x54]
ldr r0, [r4, #0x20]
str r0, [r5, #0x20]
pop {r4, r5, pc}
thumb_func_start sub_08093E24
sub_08093E24: @ 0x08093E24
push {lr}
ldr r2, _08093E38 @ =gUnk_0812295C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08093E38: .4byte gUnk_0812295C
thumb_func_start sub_08093E3C
sub_08093E3C: @ 0x08093E3C
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #0
bne _08093E6A
adds r0, r4, #0
bl sub_08016A30
_08093E6A:
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
ldr r1, _08093EA8 @ =gUnk_08122950
adds r2, r0, r1
ldrh r0, [r2]
cmp r0, #0
beq _08093E90
ldrb r1, [r4, #0xb]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _08093E90
ldrh r0, [r2]
bl sub_08004488
_08093E90:
ldrb r1, [r4, #0xb]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _08093EA6
ldrb r0, [r4, #0x19]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x19]
_08093EA6:
pop {r4, pc}
.align 2, 0
_08093EA8: .4byte gUnk_08122950
thumb_func_start sub_08093EAC
sub_08093EAC: @ 0x08093EAC
push {lr}
ldr r3, _08093EC8 @ =gUnk_08122964
ldr r2, _08093ECC @ =gUnk_08122950
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldrb r1, [r1, #2]
lsrs r1, r1, #4
lsls r1, r1, #2
adds r1, r1, r3
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08093EC8: .4byte gUnk_08122964
_08093ECC: .4byte gUnk_08122950
thumb_func_start sub_08093ED0
sub_08093ED0: @ 0x08093ED0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08093EEC
adds r0, r4, #0
bl sub_0805E7BC
_08093EEC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08093EF0
sub_08093EF0: @ 0x08093EF0
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r4, [r5, #0xa]
cmp r4, #1
beq _08093F40
cmp r4, #1
bgt _08093F04
cmp r4, #0
beq _08093F0A
b _08093FB0
_08093F04:
cmp r4, #2
beq _08093F98
b _08093FB0
_08093F0A:
ldrb r0, [r5, #0xd]
cmp r0, #0
bne _08093FB0
adds r0, r5, #0
bl sub_08004274
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08093FB0
movs r0, #0x64
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08093F8E
ldr r0, [r5, #0x50]
str r0, [r1, #0x50]
adds r0, r5, #0
bl sub_0806FA24
b _08093F8E
_08093F40:
adds r0, r5, #0
bl sub_08004274
adds r1, r5, #0
adds r1, #0x5a
ldrb r0, [r1]
ands r4, r0
adds r6, r1, #0
cmp r4, #0
beq _08093F72
movs r0, #0
strb r0, [r6]
movs r0, #0x64
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08093F72
ldr r0, [r5, #0x50]
str r0, [r1, #0x50]
adds r0, r5, #0
bl sub_0806FA24
_08093F72:
ldrb r1, [r6]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08093FB0
ldr r1, [r5, #0x50]
ldr r0, _08093F94 @ =gLinkEntity
cmp r1, r0
bne _08093F8E
movs r0, #0x7a
bl sub_080A3268
bl sub_08079D84
_08093F8E:
bl sub_0805E780
b _08093FB0
.align 2, 0
_08093F94: .4byte gLinkEntity
_08093F98:
adds r0, r5, #0
bl sub_08004274
adds r0, r5, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08093FB0
bl sub_0805E780
_08093FB0:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08093FB4
sub_08093FB4: @ 0x08093FB4
push {lr}
ldr r2, _08093FC8 @ =gUnk_081229B4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08093FC8: .4byte gUnk_081229B4
thumb_func_start sub_08093FCC
sub_08093FCC: @ 0x08093FCC
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x38
movs r1, #2
strb r1, [r2]
bl sub_08016A04
pop {pc}
thumb_func_start sub_08093FE0
sub_08093FE0: @ 0x08093FE0
push {r4, lr}
adds r4, r0, #0
bl sub_08094064
cmp r0, #0
beq _08094062
adds r3, r4, #0
adds r3, #0x38
ldrb r0, [r3]
cmp r0, #2
bne _08094024
ldr r0, _08094020 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x1e
bgt _08094002
cmp r0, #0x1d
bge _08094062
_08094002:
movs r0, #1
strb r0, [r3]
adds r0, r4, #0
bl sub_08016A04
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
b _08094060
.align 2, 0
_08094020: .4byte gLinkEntity
_08094024:
ldr r0, _0809404C @ =gLinkEntity
ldrb r2, [r0, #0xc]
cmp r2, #0x1e
bgt _08094050
cmp r2, #0x1d
blt _08094050
movs r0, #2
strb r0, [r3]
adds r0, r4, #0
bl sub_08016A04
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
b _08094060
.align 2, 0
_0809404C: .4byte gLinkEntity
_08094050:
adds r2, r0, #0
adds r2, #0x38
ldrb r1, [r2]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08094062
movs r0, #1
_08094060:
strb r0, [r2]
_08094062:
pop {r4, pc}
thumb_func_start sub_08094064
sub_08094064: @ 0x08094064
push {lr}
movs r2, #1
ldr r1, _08094080 @ =gLinkEntity
movs r3, #0x2e
ldrsh r1, [r1, r3]
movs r3, #0x2e
ldrsh r0, [r0, r3]
subs r1, r1, r0
adds r1, #0x1c
cmp r1, #0x38
bls _0809407C
movs r2, #0
_0809407C:
adds r0, r2, #0
pop {pc}
.align 2, 0
_08094080: .4byte gLinkEntity
thumb_func_start sub_08094084
sub_08094084: @ 0x08094084
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x50]
movs r1, #0x36
ldrsh r0, [r5, r1]
cmp r0, #0
beq _0809412A
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080940CA
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x63
movs r0, #5
strb r0, [r1]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_080940CA:
ldrh r0, [r5, #0x2e]
strh r0, [r4, #0x2e]
ldrh r0, [r5, #0x32]
strh r0, [r4, #0x32]
ldrb r2, [r5, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x1b]
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x19]
movs r0, #0x36
ldrsh r1, [r5, r0]
movs r0, #0x40
rsbs r0, r0, #0
cmp r1, r0
ble _08094108
movs r3, #0x80
lsls r3, r3, #1
movs r2, #0x80
lsls r2, r2, #2
b _0809411E
_08094108:
movs r1, #0x36
ldrsh r0, [r5, r1]
adds r0, #0x40
lsls r2, r0, #1
movs r1, #0x80
lsls r1, r1, #1
subs r3, r1, r2
lsls r0, r0, #2
movs r1, #0x80
lsls r1, r1, #2
subs r2, r1, r0
_0809411E:
adds r0, r4, #0
adds r1, r3, #0
movs r3, #0
bl sub_0805EC9C
b _0809412E
_0809412A:
bl sub_0805E780
_0809412E:
pop {r4, r5, pc}
thumb_func_start sub_08094130
sub_08094130: @ 0x08094130
push {lr}
ldr r2, _08094144 @ =gUnk_081229BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08094144: .4byte gUnk_081229BC
thumb_func_start sub_08094148
sub_08094148: @ 0x08094148
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _08094154
b _08094254
_08094154:
cmp r0, #1
bgt _0809415E
cmp r0, #0
beq _080941A8
b _0809438A
_0809415E:
cmp r0, #2
beq _08094164
b _0809438A
_08094164:
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08094180
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0xb4
lsls r0, r0, #1
str r0, [r4, #0x78]
ldr r0, _0809417C @ =gUnk_03000BF0
str r4, [r0, #0x30]
b _08094198
.align 2, 0
_0809417C: .4byte gUnk_03000BF0
_08094180:
ldr r0, [r4, #0x78]
subs r0, #1
str r0, [r4, #0x78]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _08094198
ldr r1, _080941A0 @ =gUnk_03000BF0
ldr r0, _080941A4 @ =gLinkEntity
str r0, [r1, #0x30]
bl sub_0805E780
_08094198:
bl sub_08078B48
b _08094394
.align 2, 0
_080941A0: .4byte gUnk_03000BF0
_080941A4: .4byte gLinkEntity
_080941A8:
ldr r1, _08094228 @ =gUnk_081229D0
ldrb r0, [r4, #0xb]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #1]
strb r0, [r4, #0x15]
ldrb r0, [r4, #0xb]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #2]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r2, [r4, #0x2e]
adds r0, r0, r2
strh r0, [r4, #0x2e]
ldrb r0, [r4, #0xb]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r0, [r0, #3]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r2, [r4, #0x32]
adds r0, r0, r2
strh r0, [r4, #0x32]
ldrb r0, [r4, #0xb]
lsls r0, r0, #2
adds r0, r0, r1
ldrb r2, [r0]
movs r0, #0x40
ands r0, r2
cmp r0, #0
beq _080941F0
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_080941F0:
movs r0, #0x80
ands r0, r2
cmp r0, #0
beq _08094200
ldrb r0, [r4, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
_08094200:
ldrb r0, [r4, #0xb]
cmp r0, #3
bhi _08094230
bl sub_08000E50
ldr r1, _0809422C @ =0x0001FFFF
ands r1, r0
movs r0, #0xa0
lsls r0, r0, #0xa
orrs r0, r1
str r0, [r4, #0x20]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
adds r0, r4, #0
movs r1, #0x56
bl sub_08004260
b _0809438A
.align 2, 0
_08094228: .4byte gUnk_081229D0
_0809422C: .4byte 0x0001FFFF
_08094230:
movs r0, #0xa0
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r4, #0x24]
bl sub_08000E50
movs r1, #3
ands r0, r1
ldrb r1, [r4, #0x15]
orrs r0, r1
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #0x57
bl sub_08004260
b _0809438A
_08094254:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08094272
adds r0, r4, #0
movs r1, #0x67
movs r2, #1
movs r3, #0x80
bl sub_080A2988
adds r1, r0, #0
str r1, [r4, #0x54]
cmp r1, #0
beq _08094272
ldr r0, [r4, #0x50]
str r0, [r1, #0x54]
_08094272:
ldrb r0, [r4, #0xb]
cmp r0, #0x80
bne _0809427A
b _08094380
_0809427A:
movs r2, #0
movs r0, #0x4b
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x19]
subs r0, #0x58
ands r0, r1
movs r1, #4
orrs r0, r1
movs r1, #0xe0
lsls r1, r1, #7
strh r1, [r4, #0x24]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r3, r4, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #7
orrs r0, r1
strb r0, [r3]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
ldrb r0, [r4, #0xb]
lsls r0, r0, #3
ldr r1, _080942E8 @ =gUnk_081229F0
adds r3, r0, r1
movs r0, #0
ldrsb r0, [r3, r0]
ldrh r1, [r4, #0x2e]
adds r0, r0, r1
strh r0, [r4, #0x2e]
movs r0, #1
ldrsb r0, [r3, r0]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldrb r0, [r3, #2]
strb r0, [r4, #0xe]
ldrb r0, [r3, #3]
strb r0, [r4, #0xf]
movs r0, #0xce
str r0, [r4, #0x7c]
str r2, [r4, #0x74]
ldrb r1, [r3, #4]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080942EC
adds r1, r4, #0
adds r1, #0x82
movs r0, #0xff
lsls r0, r0, #8
b _080942F4
.align 2, 0
_080942E8: .4byte gUnk_081229F0
_080942EC:
adds r1, r4, #0
adds r1, #0x82
movs r0, #0x80
lsls r0, r0, #1
_080942F4:
strh r0, [r1]
ldrb r1, [r3, #4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809430A
adds r1, r4, #0
adds r1, #0x86
movs r0, #0xff
lsls r0, r0, #8
b _08094312
_0809430A:
adds r1, r4, #0
adds r1, #0x86
movs r0, #0x80
lsls r0, r0, #1
_08094312:
strh r0, [r1]
adds r0, r4, #0
bl sub_0806FBD8
cmp r0, #0
beq _0809438A
ldr r2, [r4, #0x48]
ldr r1, _0809437C @ =gUnk_080FD2E8
ldrb r0, [r1]
strb r0, [r2]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #1]
strb r0, [r2, #1]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #2]
strb r0, [r2, #2]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #3]
strb r0, [r2, #3]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #4]
strb r0, [r2, #4]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #5]
strb r0, [r2, #5]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #6]
strb r0, [r2, #6]
ldr r2, [r4, #0x48]
ldrb r0, [r1, #7]
strb r0, [r2, #7]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r1, #4
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
subs r1, #1
movs r0, #0x7a
strb r0, [r1]
subs r1, #4
movs r0, #1
strb r0, [r1]
b _0809438A
.align 2, 0
_0809437C: .4byte gUnk_080FD2E8
_08094380:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_0809438A:
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08094398
_08094394:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08094398
sub_08094398: @ 0x08094398
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080943A8
cmp r0, #1
beq _080943D8
b _08094420
_080943A8:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #7
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08094420
ldrb r0, [r4, #0xb]
cmp r0, #3
bhi _080943D2
adds r0, r4, #0
movs r1, #0xc
movs r2, #0
bl CreateFX
_080943D2:
bl sub_0805E780
b _08094420
_080943D8:
ldrb r1, [r4, #0xb]
cmp r1, #0x80
beq _0809440A
ldr r0, [r4, #0x7c]
subs r0, #1
str r0, [r4, #0x7c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _080943F6
movs r0, #0x96
lsls r0, r0, #2
str r0, [r4, #0x7c]
movs r0, #2
strb r0, [r4, #0xc]
_080943F6:
adds r0, r4, #0
adds r0, #0x82
ldrh r1, [r0]
adds r0, #4
ldrh r2, [r0]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
b _08094420
_0809440A:
ldr r0, [r4, #0x54]
adds r0, #0x79
ldrb r0, [r0]
ands r1, r0
cmp r1, #0
bne _0809441A
bl sub_0805E780
_0809441A:
adds r0, r4, #0
bl sub_08094660
_08094420:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08094424
sub_08094424: @ 0x08094424
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r3, r6, #0
adds r3, #0x82
movs r1, #0
ldrsh r0, [r3, r1]
cmp r0, #0
bge _08094452
adds r1, r6, #0
adds r1, #0x80
movs r0, #0x24
ldrsh r2, [r6, r0]
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
movs r2, #0
ldrsh r0, [r3, r2]
rsbs r0, r0, #0
mov r8, r0
adds r5, r1, #0
b _08094466
_08094452:
adds r0, r6, #0
adds r0, #0x80
movs r1, #0x24
ldrsh r2, [r6, r1]
ldr r1, [r0]
subs r1, r1, r2
str r1, [r0]
ldrh r3, [r3]
mov r8, r3
adds r5, r0, #0
_08094466:
adds r0, r6, #0
adds r0, #0x86
movs r2, #0
ldrsh r1, [r0, r2]
adds r4, r0, #0
cmp r1, #0
bge _0809448C
adds r1, r6, #0
adds r1, #0x84
movs r0, #0x24
ldrsh r2, [r6, r0]
ldr r0, [r1]
adds r0, r0, r2
str r0, [r1]
movs r2, #0
ldrsh r0, [r4, r2]
rsbs r7, r0, #0
adds r3, r1, #0
b _0809449E
_0809448C:
adds r0, r6, #0
adds r0, #0x84
movs r1, #0x24
ldrsh r2, [r6, r1]
ldr r1, [r0]
subs r1, r1, r2
str r1, [r0]
ldrh r7, [r4]
adds r3, r0, #0
_0809449E:
ldrh r2, [r6, #0x24]
movs r0, #0x24
ldrsh r1, [r6, r0]
movs r0, #0x80
lsls r0, r0, #6
cmp r1, r0
ble _080944B2
ldr r1, _080944D0 @ =0xFFFFFF00
adds r0, r2, r1
strh r0, [r6, #0x24]
_080944B2:
ldr r0, [r6, #0x7c]
subs r0, #1
str r0, [r6, #0x7c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _080944D4
movs r0, #0
strh r0, [r5]
strh r0, [r3]
movs r0, #3
strb r0, [r6, #0xc]
movs r0, #0x78
str r0, [r6, #0x7c]
b _08094500
.align 2, 0
_080944D0: .4byte 0xFFFFFF00
_080944D4:
adds r5, r6, #0
adds r5, #0x82
movs r2, #0
ldrsh r1, [r5, r2]
ldrb r3, [r6, #0xe]
adds r0, r6, #0
movs r2, #0x20
bl sub_0806FCF4
movs r0, #0
ldrsh r1, [r4, r0]
ldrb r3, [r6, #0xf]
adds r0, r6, #0
movs r2, #0x20
bl sub_0806FCF4
ldrh r1, [r5]
ldrh r2, [r4]
adds r0, r6, #0
movs r3, #0
bl sub_0805EC9C
_08094500:
ldr r5, [r6, #0x48]
cmp r5, #0
beq _08094538
movs r4, #0x80
lsls r4, r4, #9
adds r0, r4, #0
mov r1, r8
bl __divsi3
lsrs r0, r0, #3
strb r0, [r5, #6]
ldr r5, [r6, #0x48]
adds r0, r4, #0
adds r1, r7, #0
bl __divsi3
lsrs r0, r0, #3
strb r0, [r5, #7]
ldr r1, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x62
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x63
ldrb r0, [r0]
strb r0, [r1, #1]
_08094538:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08094540
sub_08094540: @ 0x08094540
push {lr}
adds r3, r0, #0
ldr r0, [r3, #0x7c]
subs r0, #1
str r0, [r3, #0x7c]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _0809455A
movs r0, #4
strb r0, [r3, #0xc]
movs r0, #2
str r0, [r3, #0x7c]
_0809455A:
adds r0, r3, #0
adds r0, #0x82
ldrh r1, [r0]
adds r0, #4
ldrh r2, [r0]
adds r0, r3, #0
movs r3, #0
bl sub_0805EC9C
pop {pc}
.align 2, 0
thumb_func_start sub_08094570
sub_08094570: @ 0x08094570
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r2, r6, #0
adds r2, #0x82
ldrh r1, [r2]
lsls r3, r1, #0x10
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _08094590
asrs r3, r3, #0x10
ldr r0, _080945B0 @ =0xFFFFFF00
cmp r3, r0
bne _080945BA
_08094590:
ldr r1, [r6, #0x7c]
cmp r1, #0
bne _080945B4
ldr r0, [r6, #0x50]
adds r0, #0x7c
strh r1, [r0]
ldr r0, [r6, #0x50]
adds r0, #0x79
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _08094622
bl sub_0805E780
b _08094622
.align 2, 0
_080945B0: .4byte 0xFFFFFF00
_080945B4:
subs r0, r1, #1
str r0, [r6, #0x7c]
b _08094622
_080945BA:
cmp r3, #0
bge _080945CC
subs r0, r1, #1
strh r0, [r2]
movs r1, #0
ldrsh r0, [r2, r1]
rsbs r0, r0, #0
mov r8, r0
b _080945D4
_080945CC:
adds r0, r1, #1
strh r0, [r2]
ldrh r2, [r2]
mov r8, r2
_080945D4:
adds r0, r6, #0
adds r0, #0x86
ldrh r2, [r0]
movs r3, #0
ldrsh r1, [r0, r3]
adds r4, r0, #0
cmp r1, #0
bge _080945F0
subs r0, r2, #1
strh r0, [r4]
movs r1, #0
ldrsh r0, [r4, r1]
rsbs r7, r0, #0
b _080945F6
_080945F0:
adds r0, r2, #1
strh r0, [r4]
ldrh r7, [r4]
_080945F6:
adds r5, r6, #0
adds r5, #0x82
movs r3, #0
ldrsh r1, [r5, r3]
ldrb r3, [r6, #0xe]
adds r0, r6, #0
movs r2, #0x20
bl sub_0806FCF4
movs r0, #0
ldrsh r1, [r4, r0]
ldrb r3, [r6, #0xf]
adds r0, r6, #0
movs r2, #0x20
bl sub_0806FCF4
ldrh r1, [r5]
ldrh r2, [r4]
adds r0, r6, #0
movs r3, #0
bl sub_0805EC9C
_08094622:
ldr r5, [r6, #0x48]
cmp r5, #0
beq _0809465A
movs r4, #0x80
lsls r4, r4, #9
adds r0, r4, #0
mov r1, r8
bl __divsi3
lsrs r0, r0, #3
strb r0, [r5, #6]
ldr r5, [r6, #0x48]
adds r0, r4, #0
adds r1, r7, #0
bl __divsi3
lsrs r0, r0, #3
strb r0, [r5, #7]
ldr r1, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x62
ldrb r0, [r0]
strb r0, [r1]
ldr r1, [r6, #0x48]
adds r0, r6, #0
adds r0, #0x63
ldrb r0, [r0]
strb r0, [r1, #1]
_0809465A:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08094660
sub_08094660: @ 0x08094660
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
ldr r0, [r6, #0x50]
adds r0, #0x62
movs r7, #0
ldrsb r7, [r0, r7]
cmp r7, #0
bge _08094678
rsbs r7, r7, #0
_08094678:
lsls r7, r7, #1
adds r0, r7, #0
cmp r7, #0
bge _08094682
adds r0, #0xf
_08094682:
asrs r1, r0, #4
ldr r0, [r6, #0x74]
cmp r0, r1
bhs _08094700
str r1, [r6, #0x74]
movs r1, #0x2e
ldrsh r0, [r6, r1]
subs r0, r0, r7
adds r4, r0, #0
subs r4, #0x40
movs r1, #0x32
ldrsh r0, [r6, r1]
subs r0, r0, r7
adds r5, r0, #0
subs r5, #0x40
movs r0, #0x10
mov sb, r0
str r0, [r6, #0x78]
movs r1, #0
mov r8, r1
str r1, [r6, #0x7c]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_08094708
mov r0, r8
str r0, [r6, #0x78]
mov r1, sb
str r1, [r6, #0x7c]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_08094708
movs r1, #0x2e
ldrsh r0, [r6, r1]
adds r0, r0, r7
adds r4, r0, #0
adds r4, #0x30
movs r1, #0x32
ldrsh r0, [r6, r1]
adds r0, r0, r7
adds r5, r0, #0
adds r5, #0x30
movs r7, #0x10
rsbs r7, r7, #0
str r7, [r6, #0x78]
mov r0, r8
str r0, [r6, #0x7c]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_08094708
mov r1, r8
str r1, [r6, #0x78]
str r7, [r6, #0x7c]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_08094708
_08094700:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08094708
sub_08094708: @ 0x08094708
push {r4, r5, r6, r7, lr}
sub sp, #8
adds r7, r0, #0
adds r6, r1, #0
adds r5, r2, #0
ldr r0, [r7, #0x74]
lsls r0, r0, #1
adds r4, r0, #0
adds r4, #8
cmp r4, #0
beq _08094752
ldr r3, _08094758 @ =gUnk_03000BF0
movs r2, #0x3f
_08094722:
ldrh r0, [r3, #6]
subs r0, r6, r0
lsrs r0, r0, #4
ands r0, r2
ldrh r1, [r3, #8]
subs r1, r5, r1
lsrs r1, r1, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
movs r1, #2
str r2, [sp]
str r3, [sp, #4]
bl sub_0807BA8C
ldr r0, [r7, #0x78]
adds r6, r6, r0
ldr r0, [r7, #0x7c]
adds r5, r5, r0
subs r4, #1
ldr r2, [sp]
ldr r3, [sp, #4]
cmp r4, #0
bne _08094722
_08094752:
add sp, #8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08094758: .4byte gUnk_03000BF0
thumb_func_start sub_0809475C
sub_0809475C: @ 0x0809475C
push {lr}
ldr r2, _08094770 @ =gUnk_08122A10
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08094770: .4byte gUnk_08122A10
thumb_func_start sub_08094774
sub_08094774: @ 0x08094774
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
ldrb r0, [r5, #0xa]
cmp r0, #8
bls _08094784
b _080948C6
_08094784:
lsls r0, r0, #2
ldr r1, _08094790 @ =_08094794
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08094790: .4byte _08094794
_08094794: @ jump table
.4byte _080947B8 @ case 0
.4byte _08094824 @ case 1
.4byte _080948B0 @ case 2
.4byte _080948C6 @ case 3
.4byte _080948C6 @ case 4
.4byte _080948C6 @ case 5
.4byte _080948C6 @ case 6
.4byte _080948C6 @ case 7
.4byte _080948C6 @ case 8
_080947B8:
adds r0, r5, #0
movs r1, #0xb
movs r2, #0
bl CreateFX
adds r6, r0, #0
str r6, [r5, #0x54]
cmp r6, #0
beq _080947EE
ldr r0, _0809480C @ =gLinkEntity
ldr r4, _08094810 @ =gUnk_08122A18
ldrb r3, [r0, #0x14]
movs r1, #6
ands r1, r3
adds r1, r1, r4
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #0x10
movs r1, #1
orrs r1, r3
adds r1, r1, r4
movs r3, #0
ldrsb r3, [r1, r3]
lsls r3, r3, #0x10
adds r1, r6, #0
bl sub_0806FA48
_080947EE:
ldr r0, [r5, #0x54]
adds r1, r5, #0
bl sub_0806FA24
ldr r1, _08094814 @ =0x00004032
ldr r2, _08094818 @ =0x00004033
adds r0, r5, #0
bl sub_08094980
ldr r1, _0809481C @ =0x00004061
ldr r2, _08094820 @ =0x00004022
adds r0, r5, #0
bl sub_08094980
b _080948C6
.align 2, 0
_0809480C: .4byte gLinkEntity
_08094810: .4byte gUnk_08122A18
_08094814: .4byte 0x00004032
_08094818: .4byte 0x00004033
_0809481C: .4byte 0x00004061
_08094820: .4byte 0x00004022
_08094824:
adds r0, r5, #0
movs r1, #0x2b
movs r2, #0
bl CreateFX
adds r6, r0, #0
str r6, [r5, #0x54]
cmp r6, #0
beq _0809485A
ldr r0, _08094898 @ =gLinkEntity
ldr r4, _0809489C @ =gUnk_08122A18
ldrb r3, [r0, #0x14]
movs r1, #6
ands r1, r3
adds r1, r1, r4
movs r2, #0
ldrsb r2, [r1, r2]
lsls r2, r2, #0x10
movs r1, #1
orrs r1, r3
adds r1, r1, r4
movs r3, #0
ldrsb r3, [r1, r3]
lsls r3, r3, #0x10
adds r1, r6, #0
bl sub_0806FA48
_0809485A:
ldrb r4, [r5, #0xb]
cmp r4, #0
bne _080948C6
ldr r0, [r5, #0x54]
adds r1, r5, #0
bl sub_0806FA24
strb r4, [r5, #0xe]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r1, [r5, #0x19]
movs r0, #0x3f
ands r0, r1
strb r0, [r5, #0x19]
ldr r1, _080948A0 @ =0x0000403B
ldr r2, _080948A4 @ =0x0000403C
adds r0, r5, #0
bl sub_08094980
ldr r1, _080948A8 @ =0x00004061
ldr r2, _080948AC @ =0x00004022
adds r0, r5, #0
bl sub_08094980
b _080948CA
.align 2, 0
_08094898: .4byte gLinkEntity
_0809489C: .4byte gUnk_08122A18
_080948A0: .4byte 0x0000403B
_080948A4: .4byte 0x0000403C
_080948A8: .4byte 0x00004061
_080948AC: .4byte 0x00004022
_080948B0:
ldr r0, _080948CC @ =gLinkEntity
movs r1, #0x60
movs r2, #0
bl sub_080A2A20
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _080948C6
movs r0, #1
strb r0, [r1, #0xe]
_080948C6:
bl sub_0805E780
_080948CA:
pop {r4, r5, r6, pc}
.align 2, 0
_080948CC: .4byte gLinkEntity
thumb_func_start sub_080948D0
sub_080948D0: @ 0x080948D0
push {lr}
ldr r2, _080948E4 @ =gUnk_08122A20
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080948E4: .4byte gUnk_08122A20
thumb_func_start sub_080948E8
sub_080948E8: @ 0x080948E8
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xe]
cmp r1, #0x3b
bhi _08094978
ldr r0, [r4, #0x34]
ldr r2, _0809495C @ =0xFFFFC000
adds r0, r0, r2
str r0, [r4, #0x34]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _08094970
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r3, r0, #0
str r3, [r4, #0x54]
cmp r3, #0
beq _08094970
ldrb r1, [r4, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r2, [r3, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x19]
ldr r2, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r2, #0x29
lsrs r1, r1, #0x1d
ldrb r3, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r3
orrs r0, r1
strb r0, [r2]
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08094960
bl sub_08000E50
ldr r2, [r4, #0x54]
movs r1, #0xf
ands r0, r1
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
b _08094970
.align 2, 0
_0809495C: .4byte 0xFFFFC000
_08094960:
bl sub_08000E50
ldr r2, [r4, #0x54]
movs r1, #0xf
ands r0, r1
ldrh r1, [r2, #0x2e]
subs r1, r1, r0
strh r1, [r2, #0x2e]
_08094970:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
b _0809497C
_08094978:
bl sub_0805E780
_0809497C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08094980
sub_08094980: @ 0x08094980
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
adds r6, r0, #0
str r1, [sp]
str r2, [sp, #4]
movs r0, #0
mov r8, r0
ldr r1, _08094A04 @ =gUnk_03000BF0
mov sl, r1
movs r2, #0x3f
mov sb, r2
ldr r7, _08094A08 @ =gUnk_08122A28
_080949A0:
movs r4, #0
ldrsb r4, [r7, r4]
movs r5, #1
ldrsb r5, [r7, r5]
adds r0, r6, #0
adds r1, r4, #0
adds r2, r5, #0
bl sub_0800029C
ldr r3, [sp]
cmp r3, r0
bne _080949EC
movs r0, #0x2e
ldrsh r1, [r6, r0]
adds r1, r1, r4
mov r2, sl
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
mov r3, sb
ands r1, r3
movs r2, #0x32
ldrsh r0, [r6, r2]
adds r0, r0, r5
mov r3, sl
ldrh r2, [r3, #8]
subs r0, r0, r2
asrs r0, r0, #4
mov r2, sb
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
adds r0, r6, #0
adds r0, #0x38
ldrb r2, [r0]
ldr r0, [sp, #4]
bl sub_0800015E
_080949EC:
adds r7, #2
movs r3, #2
add r8, r3
mov r0, r8
cmp r0, #9
bls _080949A0
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08094A04: .4byte gUnk_03000BF0
_08094A08: .4byte gUnk_08122A28
thumb_func_start sub_08094A0C
sub_08094A0C: @ 0x08094A0C
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0x10]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _08094A3E
ldrb r0, [r2, #0xc]
cmp r0, #0
bne _08094A34
movs r0, #1
strb r0, [r2, #0xc]
ldr r0, _08094A30 @ =gUnk_080FD170
str r0, [r2, #0x48]
adds r0, r2, #0
bl sub_0807DD50
b _08094A42
.align 2, 0
_08094A30: .4byte gUnk_080FD170
_08094A34:
adds r0, r2, #0
movs r1, #0
bl sub_0807DD94
b _08094A42
_08094A3E:
movs r0, #1
strb r0, [r2, #0xc]
_08094A42:
pop {pc}
thumb_func_start sub_08094A44
sub_08094A44: @ 0x08094A44
push {lr}
ldr r2, _08094A58 @ =gUnk_08122A34
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08094A58: .4byte gUnk_08122A34
thumb_func_start sub_08094A5C
sub_08094A5C: @ 0x08094A5C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08094A78
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #4
bl sub_08004260
_08094A78:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08094A90
sub_08094A90: @ 0x08094A90
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08094ACE
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
ldr r1, _08094AE4 @ =gUnk_08114F30
ldrb r2, [r4, #0x19]
lsrs r0, r2, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
adds r0, r4, #0
bl sub_0807DD64
_08094ACE:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_08094AE4: .4byte gUnk_08114F30
thumb_func_start sub_08094AE8
sub_08094AE8: @ 0x08094AE8
push {r4, r5, lr}
adds r5, r1, #0
movs r0, #0x6a
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08094B08
ldr r1, [r5, #4]
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08094B08:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08094B0C
sub_08094B0C: @ 0x08094B0C
push {lr}
adds r2, r0, #0
ldrh r0, [r2, #0x36]
subs r0, #1
movs r3, #0
strh r0, [r2, #0x36]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x20
rsbs r1, r1, #0
cmp r0, r1
bgt _08094B30
ldr r0, _08094B2C @ =0x0000FFE0
strh r0, [r2, #0x36]
b _08094B34
.align 2, 0
_08094B2C: .4byte 0x0000FFE0
_08094B30:
ldr r0, _08094B38 @ =gUnk_02033280
strb r3, [r0, #6]
_08094B34:
pop {pc}
.align 2, 0
_08094B38: .4byte gUnk_02033280
thumb_func_start sub_08094B3C
sub_08094B3C: @ 0x08094B3C
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x34]
movs r1, #0x80
lsls r1, r1, #8
adds r0, r0, r1
str r0, [r2, #0x34]
movs r0, #0x36
ldrsh r1, [r2, r0]
movs r0, #0xd
rsbs r0, r0, #0
cmp r1, r0
blt _08094B60
ldr r0, _08094B5C @ =0x0000FFF3
strh r0, [r2, #0x36]
b _08094B66
.align 2, 0
_08094B5C: .4byte 0x0000FFF3
_08094B60:
ldr r1, _08094B68 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_08094B66:
pop {pc}
.align 2, 0
_08094B68: .4byte gUnk_02033280
thumb_func_start sub_08094B6C
sub_08094B6C: @ 0x08094B6C
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_08094B80
sub_08094B80: @ 0x08094B80
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x10
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_08094B94
sub_08094B94: @ 0x08094B94
push {r4, lr}
movs r0, #0x6a
movs r1, #0x22
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08094BD2
ldr r0, _08094BD4 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
ldr r0, _08094BD8 @ =0x0000FFD0
strh r0, [r4, #0x36]
ldr r1, _08094BDC @ =gUnk_0800AEDC
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
adds r0, r4, #0
bl sub_080A29BC
ldrh r0, [r4, #0x36]
adds r0, #0x10
strh r0, [r4, #0x36]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
_08094BD2:
pop {r4, pc}
.align 2, 0
_08094BD4: .4byte gLinkEntity
_08094BD8: .4byte 0x0000FFD0
_08094BDC: .4byte gUnk_0800AEDC
thumb_func_start sub_08094BE0
sub_08094BE0: @ 0x08094BE0
push {r4, lr}
sub sp, #4
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #0x22
bl sub_0805EB2C
adds r4, r0, #0
cmp r4, #0
beq _08094C22
ldr r0, _08094C28 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
ldr r0, _08094C2C @ =0x0000FFF4
strh r0, [r4, #0x36]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
_08094C22:
add sp, #4
pop {r4, pc}
.align 2, 0
_08094C28: .4byte gLinkEntity
_08094C2C: .4byte 0x0000FFF4
thumb_func_start sub_08094C30
sub_08094C30: @ 0x08094C30
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, [r4, #0x50]
cmp r5, #0
beq _08094C40
ldr r0, [r5, #4]
cmp r0, #0
bne _08094C44
_08094C40:
bl sub_0805E780
_08094C44:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08094C74
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
ldr r1, _08094C84 @ =gUnk_08114F30
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
_08094C74:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
.align 2, 0
_08094C84: .4byte gUnk_08114F30
thumb_func_start sub_08094C88
sub_08094C88: @ 0x08094C88
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xc]
cmp r1, #0
beq _08094CA0
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08094CCC
bl sub_0805E780
b _08094CDA
_08094CA0:
adds r0, r1, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
adds r0, r5, #0
movs r1, #3
bl sub_0805E3A0
ldrb r0, [r5, #0xb]
cmp r0, #0x43
bgt _08094CCC
cmp r0, #0x40
blt _08094CCC
adds r0, r5, #0
adds r1, r5, #0
bl sub_0806FAD8
_08094CCC:
ldrb r4, [r5, #0xa]
ldrb r0, [r5, #0xb]
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
_08094CDA:
pop {r4, r5, pc}
thumb_func_start sub_08094CDC
sub_08094CDC: @ 0x08094CDC
push {lr}
movs r0, #0x6a
movs r1, #3
movs r2, #0x62
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _08094D0A
ldr r1, _08094D0C @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0xe0
strh r0, [r2, #0x2e]
movs r3, #0x96
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x32]
movs r0, #0xa2
lsls r0, r0, #1
bl sub_080A3268
_08094D0A:
pop {pc}
.align 2, 0
_08094D0C: .4byte gUnk_03000BF0
thumb_func_start sub_08094D10
sub_08094D10: @ 0x08094D10
push {lr}
sub sp, #4
movs r0, #0x62
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #3
bl sub_0805EB2C
adds r1, r0, #0
cmp r1, #0
beq _08094D2E
movs r0, #0xff
strb r0, [r1, #0xc]
_08094D2E:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start sub_08094D34
sub_08094D34: @ 0x08094D34
push {lr}
movs r0, #0x6a
movs r1, #0x15
movs r2, #0xd
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _08094D68
ldr r1, _08094D6C @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #1
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r3, #0x96
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x32]
movs r0, #0xa2
lsls r0, r0, #1
bl sub_080A3268
_08094D68:
pop {pc}
.align 2, 0
_08094D6C: .4byte gUnk_03000BF0
thumb_func_start sub_08094D70
sub_08094D70: @ 0x08094D70
push {lr}
sub sp, #4
movs r0, #0xd
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #0x15
bl sub_0805EB2C
adds r1, r0, #0
cmp r1, #0
beq _08094D8E
movs r0, #0xff
strb r0, [r1, #0xc]
_08094D8E:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start sub_08094D94
sub_08094D94: @ 0x08094D94
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
beq _08094DAC
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08094DCE
bl sub_0805E780
b _08094DD4
_08094DAC:
adds r0, r1, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
_08094DCE:
adds r0, r4, #0
bl sub_080042B8
_08094DD4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08094DD8
sub_08094DD8: @ 0x08094DD8
push {lr}
movs r0, #0x6a
movs r1, #4
movs r2, #0
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _08094E06
ldr r1, _08094E08 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0xf0
strh r0, [r2, #0x2e]
movs r3, #0x96
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x32]
movs r0, #0xa2
lsls r0, r0, #1
bl sub_080A3268
_08094E06:
pop {pc}
.align 2, 0
_08094E08: .4byte gUnk_03000BF0
thumb_func_start sub_08094E0C
sub_08094E0C: @ 0x08094E0C
push {lr}
sub sp, #4
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #4
bl sub_0805EB2C
adds r1, r0, #0
cmp r1, #0
beq _08094E2A
movs r0, #0xff
strb r0, [r1, #0xc]
_08094E2A:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start sub_08094E30
sub_08094E30: @ 0x08094E30
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08094E88
ldr r0, _08094E80 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
beq _08094E48
b _08094F94
_08094E48:
movs r0, #0x6a
movs r1, #5
movs r2, #1
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
bne _08094E5A
b _08094F94
_08094E5A:
bl sub_08000E50
ldr r4, _08094E84 @ =gUnk_03000BF0
movs r1, #0xf0
bl __modsi3
ldrh r1, [r4, #0xa]
adds r1, r1, r0
strh r1, [r5, #0x2e]
bl sub_08000E50
movs r1, #0xa0
bl __modsi3
ldrh r1, [r4, #0xc]
adds r1, r1, r0
strh r1, [r5, #0x32]
b _08094F94
.align 2, 0
_08094E80: .4byte gUnk_030010A0
_08094E84: .4byte gUnk_03000BF0
_08094E88:
cmp r0, #1
bne _08094F44
ldrb r1, [r4, #0xc]
cmp r1, #1
beq _08094ED4
cmp r1, #1
bgt _08094E9C
cmp r1, #0
beq _08094EA6
b _08094F94
_08094E9C:
cmp r1, #2
beq _08094F08
cmp r1, #3
beq _08094F22
b _08094F94
_08094EA6:
strb r0, [r4, #0xc]
ldr r0, _08094ED0 @ =0xFF600000
str r0, [r4, #0x34]
str r1, [r4, #0x20]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #0
bl sub_08004260
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0xd
bne _08094F94
movs r0, #3
strb r0, [r4, #0xc]
b _08094F94
.align 2, 0
_08094ED0: .4byte 0xFF600000
_08094ED4:
ldr r1, [r4, #0x34]
ldr r0, [r4, #0x20]
subs r1, r1, r0
str r1, [r4, #0x34]
ldr r2, _08094F04 @ =0xFFFFE000
adds r0, r0, r2
str r0, [r4, #0x20]
cmp r1, #0
ble _08094F94
ldrb r0, [r4, #0xc]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xc]
str r1, [r4, #0x34]
str r1, [r4, #0x20]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
movs r0, #0xbf
lsls r0, r0, #1
bl sub_08004488
b _08094F94
.align 2, 0
_08094F04: .4byte 0xFFFFE000
_08094F08:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08094F94
bl sub_0805E780
b _08094F94
_08094F22:
ldr r0, [r4, #0x34]
ldr r1, [r4, #0x20]
subs r0, r0, r1
str r0, [r4, #0x34]
ldr r0, _08094F40 @ =0xFFFFE000
adds r1, r1, r0
str r1, [r4, #0x20]
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
bne _08094F94
bl sub_0805E780
b _08094F94
.align 2, 0
_08094F40: .4byte 0xFFFFE000
_08094F44:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08094F94
adds r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #1
beq _08094F68
cmp r0, #1
bgt _08094F5E
cmp r0, #0
beq _08094F7A
b _08094F94
_08094F5E:
cmp r0, #2
beq _08094F72
cmp r0, #3
beq _08094F84
b _08094F94
_08094F68:
adds r0, r4, #0
movs r1, #2
bl sub_08004260
b _08094F94
_08094F72:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_08094F7A:
adds r0, r4, #0
movs r1, #0
bl sub_08004260
b _08094F94
_08094F84:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
_08094F94:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08094F98
sub_08094F98: @ 0x08094F98
push {lr}
movs r0, #0x6a
movs r1, #5
movs r2, #0
bl sub_080A2960
pop {pc}
.align 2, 0
thumb_func_start sub_08094FA8
sub_08094FA8: @ 0x08094FA8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #4
bhi _08095086
lsls r0, r0, #2
ldr r1, _08094FBC @ =_08094FC0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08094FBC: .4byte _08094FC0
_08094FC0: @ jump table
.4byte _08094FD4 @ case 0
.4byte _08094FF0 @ case 1
.4byte _08095024 @ case 2
.4byte _08095040 @ case 3
.4byte _08095070 @ case 4
_08094FD4:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0x1e]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_080787B4
b _08095086
_08094FF0:
adds r1, r4, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08095086
movs r0, #0
strb r0, [r1]
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080788E0
ldr r0, _08095020 @ =gUnk_03003F80
movs r1, #0xc
strb r1, [r0, #0xc]
adds r0, #0x38
movs r1, #0x36
strb r1, [r0]
movs r0, #2
bl sub_08078A90
b _08095086
.align 2, 0
_08095020: .4byte gUnk_03003F80
_08095024:
movs r0, #0x36
bl sub_0807CA84
cmp r0, #2
bne _08095086
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
b _08095086
_08095040:
ldr r0, _0809506C @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0xc
beq _08095086
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x5b
bl GetProgressFlag
cmp r0, #0
bne _08095086
movs r0, #0x1c
movs r1, #0
movs r2, #0
bl sub_080A7C00
movs r0, #0x5b
bl sub_0807CD04
movs r0, #0x3c
strb r0, [r4, #0xe]
b _08095086
.align 2, 0
_0809506C: .4byte gLinkEntity
_08095070:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08095086
movs r0, #5
strb r0, [r4, #0xc]
movs r0, #1
bl sub_08078A90
_08095086:
pop {r4, pc}
thumb_func_start sub_08095088
sub_08095088: @ 0x08095088
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #1
beq _080950C8
cmp r0, #1
bgt _0809509C
cmp r0, #0
beq _080950A2
b _0809510A
_0809509C:
cmp r0, #2
beq _080950F0
b _0809510A
_080950A2:
movs r0, #0x5b
bl sub_0807CA84
cmp r0, #0
beq _080950B0
bl sub_0805E780
_080950B0:
movs r0, #1
strb r0, [r5, #0xc]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r0, r5, #0
bl sub_080787B4
b _0809510A
_080950C8:
adds r1, r5, #0
adds r1, #0x39
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _0809510A
movs r0, #0
strb r0, [r1]
movs r0, #2
strb r0, [r5, #0xc]
adds r0, r5, #0
bl sub_080788E0
ldr r0, _080950EC @ =0x00001F1F
movs r1, #0
bl sub_08078AA8
b _0809510A
.align 2, 0
_080950EC: .4byte 0x00001F1F
_080950F0:
ldr r0, _0809511C @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0809510A
movs r0, #0x5b
movs r1, #0
movs r2, #0
bl sub_080A7C00
bl sub_0805E780
_0809510A:
ldrb r4, [r5, #0xa]
movs r0, #0x5b
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, pc}
.align 2, 0
_0809511C: .4byte gUnk_02000050
thumb_func_start sub_08095120
sub_08095120: @ 0x08095120
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809514C
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
adds r0, r4, #0
adds r1, r4, #0
bl sub_0806FAD8
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #2
bl sub_080042AC
_0809514C:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095164
sub_08095164: @ 0x08095164
push {lr}
sub sp, #4
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #8
bl sub_0805EB2C
cmp r0, #0
beq _08095182
movs r1, #3
bl sub_080042AC
_08095182:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start sub_08095188
sub_08095188: @ 0x08095188
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080951B4
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
adds r0, r4, #0
adds r1, r4, #0
bl sub_0806FAD8
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
_080951B4:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
pop {r4, pc}
thumb_func_start sub_080951C4
sub_080951C4: @ 0x080951C4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080951E8
adds r0, #1
strb r0, [r4, #0xc]
movs r1, #0
ldr r0, _08095240 @ =0x0000FFF0
strh r0, [r4, #0x36]
strb r1, [r4, #0xe]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #3
bl sub_08004260
_080951E8:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08095218
str r0, [r4, #0x34]
str r0, [r4, #0x50]
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08095218
adds r0, #1
strb r0, [r4, #0xe]
movs r0, #0xe6
bl sub_080A3268
_08095218:
ldr r3, [r4, #0x50]
cmp r3, #0
beq _0809523C
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrh r0, [r3, #0x2e]
adds r0, #0x10
strh r0, [r4, #0x2e]
ldrh r0, [r3, #0x32]
subs r0, #0x10
strh r0, [r4, #0x32]
_0809523C:
pop {r4, pc}
.align 2, 0
_08095240: .4byte 0x0000FFF0
thumb_func_start sub_08095244
sub_08095244: @ 0x08095244
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _0809527C
movs r0, #0x6a
movs r1, #0xa
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809527C
str r5, [r4, #0x50]
movs r2, #0x80
lsls r2, r2, #0xd
ldr r3, _08095280 @ =0xFFF00000
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
ldr r1, _08095284 @ =gUnk_0801183C
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_0809527C:
pop {r4, r5, pc}
.align 2, 0
_08095280: .4byte 0xFFF00000
_08095284: .4byte gUnk_0801183C
thumb_func_start sub_08095288
sub_08095288: @ 0x08095288
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r1, r0, #0
cmp r1, #0
bne _080952AA
adds r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
_080952AA:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _080952F0
movs r1, #0xc0
lsls r1, r1, #5
adds r0, r4, #0
bl sub_080044EC
cmp r0, #1
bhi _080952D4
movs r0, #0
strb r0, [r4, #0xd]
movs r2, #0x80
lsls r2, r2, #1
movs r3, #0xc0
lsls r3, r3, #8
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
b _080952F0
_080952D4:
movs r2, #0x80
lsls r2, r2, #1
ldrb r3, [r4, #0xe]
lsls r3, r3, #8
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
ldrb r0, [r4, #0xe]
adds r0, #0xa
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0806F69C
_080952F0:
ldr r3, [r4, #0x54]
cmp r3, #0
beq _080952FE
adds r0, r3, #0
adds r1, r4, #0
bl sub_0806FA24
_080952FE:
adds r0, r4, #0
bl sub_080042B8
ldr r3, [r4, #0x50]
cmp r3, #0
beq _08095328
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, [r3, #4]
cmp r0, #0
bne _0809532C
bl sub_0805E780
b _0809532C
_08095328:
bl sub_0805E780
_0809532C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095330
sub_08095330: @ 0x08095330
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0xb
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809535E
str r4, [r5, #0x54]
str r5, [r4, #0x54]
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r0, _08095360 @ =0x0000FFF0
strh r0, [r4, #0x36]
adds r0, r4, #0
adds r1, r4, #0
bl sub_0806FAB0
_0809535E:
pop {r4, r5, pc}
.align 2, 0
_08095360: .4byte 0x0000FFF0
thumb_func_start sub_08095364
sub_08095364: @ 0x08095364
push {r4, r5, r6, lr}
ldr r6, [r0, #0x54]
cmp r6, #0
beq _0809539E
movs r5, #0
movs r0, #2
strb r0, [r6, #0x1e]
adds r0, r6, #0
adds r0, #0x38
movs r4, #1
strb r4, [r0]
adds r0, r6, #0
bl sub_08016A04
str r5, [r6, #0x54]
strb r4, [r6, #0xd]
ldr r0, _080953A0 @ =0x0000FFF0
strh r0, [r6, #0x36]
movs r0, #7
strb r0, [r6, #0x15]
movs r0, #0xc0
lsls r0, r0, #0xa
str r0, [r6, #0x20]
movs r0, #0x80
strh r0, [r6, #0x24]
adds r0, r6, #0
movs r1, #1
bl sub_080042AC
_0809539E:
pop {r4, r5, r6, pc}
.align 2, 0
_080953A0: .4byte 0x0000FFF0
thumb_func_start sub_080953A4
sub_080953A4: @ 0x080953A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080953E0
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _08095414 @ =0x0000FFF0
strh r0, [r4, #0x36]
adds r0, r4, #0
movs r1, #2
bl sub_0805E3A0
ldr r1, _08095418 @ =gUnk_08114F30
ldrb r2, [r4, #0x19]
lsrs r0, r2, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
adds r1, r4, #0
bl sub_0806FAB0
adds r0, r4, #0
bl sub_0807DD64
_080953E0:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
ldrb r0, [r4, #0xa]
cmp r0, #0xd
bne _08095412
adds r0, r4, #0
adds r0, #0x5b
ldrb r1, [r0]
movs r0, #1
ands r0, r1
ldr r1, _0809541C @ =0x00000139
cmp r0, #0
beq _0809540C
movs r1, #0
_0809540C:
adds r0, r4, #0
bl sub_0801D2B4
_08095412:
pop {r4, pc}
.align 2, 0
_08095414: .4byte 0x0000FFF0
_08095418: .4byte gUnk_08114F30
_0809541C: .4byte 0x00000139
thumb_func_start sub_08095420
sub_08095420: @ 0x08095420
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r0, #0x6a
movs r1, #0xc
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095450
ldr r3, _08095454 @ =0xFFF00000
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095450:
pop {r4, r5, r6, pc}
.align 2, 0
_08095454: .4byte 0xFFF00000
thumb_func_start nullsub_527
nullsub_527: @ 0x08095458
bx lr
.align 2, 0
thumb_func_start sub_0809545C
sub_0809545C: @ 0x0809545C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
movs r0, #0x6a
movs r1, #0xd
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _080954A6
ldr r3, _080954A8 @ =0xFFF00000
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
ldr r1, [r6, #4]
adds r0, r5, #0
bl sub_0807DAD0
adds r1, r5, #0
adds r1, #0x84
str r0, [r1]
movs r0, #0x6a
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080954A6
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
str r5, [r4, #0x50]
_080954A6:
pop {r4, r5, r6, pc}
.align 2, 0
_080954A8: .4byte 0xFFF00000
thumb_func_start sub_080954AC
sub_080954AC: @ 0x080954AC
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0x1a
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080954D6
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r1, _080954D8 @ =gUnk_08015B14
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_080954D6:
pop {r4, r5, pc}
.align 2, 0
_080954D8: .4byte gUnk_08015B14
thumb_func_start sub_080954DC
sub_080954DC: @ 0x080954DC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08095598
cmp r0, #1
bgt _080954F0
cmp r0, #0
beq _080954FC
b _0809562C
_080954F0:
cmp r0, #2
beq _080955B8
cmp r0, #3
bne _080954FA
b _08095620
_080954FA:
b _0809562C
_080954FC:
ldrb r0, [r4, #0xe]
adds r5, r0, #0
cmp r5, #0
beq _0809550A
subs r0, #1
strb r0, [r4, #0xe]
b _0809562C
_0809550A:
movs r0, #1
movs r2, #1
strb r0, [r4, #0xc]
strb r5, [r4, #0xd]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
strh r5, [r4, #0x36]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r3]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x6a
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x6c
strh r5, [r0]
ldr r1, _08095590 @ =gUnk_08122AE0
ldrb r0, [r4, #0xb]
adds r0, r0, r1
ldrb r0, [r0]
adds r5, r4, #0
adds r5, #0x6e
strb r0, [r5]
ldr r1, _08095594 @ =gUnk_08122AE8
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r4, #0
bl sub_0801D2B4
adds r0, r4, #0
bl sub_0807DD64
ldrb r1, [r4, #0xb]
adds r1, #2
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_08095754
bl sub_08000E50
movs r1, #6
bl __modsi3
movs r1, #0xde
lsls r1, r1, #1
adds r0, r0, r1
bl sub_080A3268
adds r1, r5, #0
b _08095630
.align 2, 0
_08095590: .4byte gUnk_08122AE0
_08095594: .4byte gUnk_08122AE8
_08095598:
ldrh r0, [r4, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x10
rsbs r2, r2, #0
adds r1, r4, #0
adds r1, #0x6e
cmp r0, r2
bgt _08095630
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
strh r2, [r4, #0x36]
b _08095630
_080955B8:
adds r5, r4, #0
adds r5, #0x6c
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x40
bls _080955CE
movs r0, #0x40
strh r0, [r5]
_080955CE:
ldr r3, _0809561C @ =gUnk_080C9160
movs r2, #0x6e
adds r2, r2, r4
mov ip, r2
ldrb r0, [r2]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r3
movs r2, #0
ldrsh r1, [r0, r2]
ldrh r0, [r5]
lsls r0, r0, #8
adds r2, r1, #0
muls r2, r0, r2
asrs r2, r2, #0x10
strh r2, [r4, #0x2e]
mov r1, ip
ldrb r0, [r1]
lsls r0, r0, #1
adds r0, r0, r3
movs r3, #0
ldrsh r1, [r0, r3]
ldrh r0, [r5]
lsls r0, r0, #7
muls r1, r0, r1
asrs r1, r1, #0x10
strh r1, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x68
ldrh r0, [r0]
adds r2, r2, r0
strh r2, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x6a
ldrh r0, [r0]
adds r1, r1, r0
strh r1, [r4, #0x32]
mov r1, ip
b _08095630
.align 2, 0
_0809561C: .4byte gUnk_080C9160
_08095620:
movs r0, #0x24
ldrsh r1, [r4, r0]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F62C
_0809562C:
adds r1, r4, #0
adds r1, #0x6e
_08095630:
ldrb r0, [r1]
adds r0, #4
strb r0, [r1]
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0809564A
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
bne _0809564A
bl sub_0805E780
_0809564A:
ldrb r1, [r4, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809565E
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
b _08095664
_0809565E:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
_08095664:
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
pop {r4, r5, pc}
thumb_func_start sub_0809567C
sub_0809567C: @ 0x0809567C
push {r4, lr}
adds r4, r0, #0
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r4, #0x24]
adds r0, r4, #0
adds r0, #0x68
movs r2, #0
ldrsh r1, [r0, r2]
lsls r1, r1, #0x10
ldr r0, [r4, #0x2c]
subs r0, r0, r1
adds r1, r4, #0
adds r1, #0x6a
movs r3, #0
ldrsh r2, [r1, r3]
lsls r2, r2, #0x10
ldr r1, [r4, #0x30]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r4, #0x15]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080956B4
sub_080956B4: @ 0x080956B4
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _080956E2
adds r0, #1
strb r0, [r5, #0xc]
adds r0, r5, #0
movs r1, #0
bl sub_08004260
adds r4, r5, #0
adds r4, #0x68
ldrh r2, [r5, #0x2e]
ldrh r1, [r5, #0x32]
movs r0, #7
_080956D4:
strh r2, [r4]
adds r4, #2
strh r1, [r4]
adds r4, #2
subs r0, #1
cmp r0, #0
bge _080956D4
_080956E2:
adds r0, r5, #0
bl sub_08004274
ldrb r0, [r5, #0xb]
ldr r1, _08095724 @ =gUnk_030010A0
ldr r1, [r1]
adds r0, r0, r1
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _080956FE
adds r0, r5, #0
bl sub_080957B4
_080956FE:
ldr r6, [r5, #0x50]
cmp r6, #0
beq _08095728
ldrb r1, [r6, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
ldr r0, [r6, #4]
cmp r0, #0
bne _0809572C
bl sub_0805E780
b _0809572C
.align 2, 0
_08095724: .4byte gUnk_030010A0
_08095728:
bl sub_0805E780
_0809572C:
adds r4, r5, #0
adds r4, #0x68
adds r0, r5, #0
adds r0, #0x6c
adds r1, r4, #0
movs r2, #0x1c
bl sub_0801D66C
ldrh r0, [r4, #0x14]
strh r0, [r5, #0x2e]
ldrh r0, [r4, #0x16]
strh r0, [r5, #0x32]
ldrh r0, [r6, #0x36]
strh r0, [r5, #0x36]
ldrh r0, [r6, #0x2e]
strh r0, [r4, #0x1c]
ldrh r0, [r6, #0x32]
strh r0, [r4, #0x1e]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08095754
sub_08095754: @ 0x08095754
push {r4, r5, lr}
adds r5, r0, #0
ldrb r2, [r5, #0xb]
movs r0, #0x6a
movs r1, #0xf
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809577A
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAD8
_0809577A:
pop {r4, r5, pc}
thumb_func_start sub_0809577C
sub_0809577C: @ 0x0809577C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095796
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _080957B0 @ =0x0000FFF0
strh r0, [r4, #0x36]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08095796:
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080957AE
bl sub_0805E780
_080957AE:
pop {r4, pc}
.align 2, 0
_080957B0: .4byte 0x0000FFF0
thumb_func_start sub_080957B4
sub_080957B4: @ 0x080957B4
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0x10
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080957DA
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAD8
_080957DA:
pop {r4, r5, pc}
thumb_func_start sub_080957DC
sub_080957DC: @ 0x080957DC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080957F8
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
_080957F8:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095810
sub_08095810: @ 0x08095810
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0x11
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095844
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAB0
ldr r1, _08095848 @ =gUnk_08011940
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095844:
pop {r4, r5, pc}
.align 2, 0
_08095848: .4byte gUnk_08011940
thumb_func_start sub_0809584C
sub_0809584C: @ 0x0809584C
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x45
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0809586C
ldr r0, _080958D0 @ =gUnk_020342F8
subs r1, #1
bl sub_0801D5A8
cmp r0, #0
bne _0809586C
bl sub_0805E780
_0809586C:
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _08095880
ldrb r0, [r5, #0xb]
bl sub_0801E7F4
cmp r0, #0
beq _08095880
bl sub_0805E780
_08095880:
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _080958B2
adds r0, #1
strb r0, [r5, #0xc]
adds r1, r5, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r5, #0
bl sub_08016A04
ldr r1, _080958D4 @ =gUnk_08114F30
ldrb r2, [r5, #0x19]
lsrs r0, r2, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x19]
adds r0, r5, #0
bl sub_0807DD64
_080958B2:
adds r0, r5, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r5, #0
bl sub_0807DDE4
ldrb r4, [r5, #0xa]
movs r0, #0x5c
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, pc}
.align 2, 0
_080958D0: .4byte gUnk_020342F8
_080958D4: .4byte gUnk_08114F30
thumb_func_start sub_080958D8
sub_080958D8: @ 0x080958D8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080958EC
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
_080958EC:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08095914
adds r0, r4, #0
bl sub_08095954
_08095914:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095918
sub_08095918: @ 0x08095918
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809593C
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_0809593C:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095954
sub_08095954: @ 0x08095954
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0x14
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080959B8
str r5, [r4, #0x50]
ldrb r0, [r5, #0x14]
ldr r1, _080959AC @ =gUnk_08122AF8
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
ldr r0, _080959B0 @ =0x0000FFFD
strh r0, [r4, #0x36]
ldr r1, _080959B4 @ =gUnk_08012C48
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
movs r0, #0x92
lsls r0, r0, #1
bl sub_08004488
adds r2, r5, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0xfe
ands r0, r1
strb r0, [r2]
b _080959C4
.align 2, 0
_080959AC: .4byte gUnk_08122AF8
_080959B0: .4byte 0x0000FFFD
_080959B4: .4byte gUnk_08012C48
_080959B8:
ldr r0, _080959C8 @ =gUnk_02033280
ldr r1, [r0]
movs r2, #0x80
lsls r2, r2, #1
orrs r1, r2
str r1, [r0]
_080959C4:
pop {r4, r5, pc}
.align 2, 0
_080959C8: .4byte gUnk_02033280
thumb_func_start sub_080959CC
sub_080959CC: @ 0x080959CC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080959F2
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
adds r0, r4, #0
bl sub_0807DD64
_080959F2:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x81
rsbs r0, r0, #0
ands r1, r0
adds r0, r4, #0
bl sub_08095D30
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095A1C
sub_08095A1C: @ 0x08095A1C
push {r4, r5, lr}
adds r5, r1, #0
movs r0, #0x6a
movs r1, #0x16
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095A5E
ldr r1, _08095A60 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0xe8
strh r0, [r4, #0x2e]
movs r2, #0x9c
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldr r0, _08095A64 @ =0x0000FFFC
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r1, [r5, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095A5E:
pop {r4, r5, pc}
.align 2, 0
_08095A60: .4byte gUnk_03000BF0
_08095A64: .4byte 0x0000FFFC
thumb_func_start sub_08095A68
sub_08095A68: @ 0x08095A68
push {lr}
sub sp, #4
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x6a
movs r2, #6
movs r3, #0x16
bl sub_0805EB2C
adds r1, r0, #0
cmp r1, #0
beq _08095A86
movs r0, #0xff
strb r0, [r1, #0xc]
_08095A86:
add sp, #4
pop {pc}
.align 2, 0
thumb_func_start sub_08095A8C
sub_08095A8C: @ 0x08095A8C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #5
bhi _08095B44
lsls r0, r0, #2
ldr r1, _08095AA0 @ =_08095AA4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08095AA0: .4byte _08095AA4
_08095AA4: @ jump table
.4byte _08095ABC @ case 0
.4byte _08095ACC @ case 1
.4byte _08095ADC @ case 2
.4byte _08095AE6 @ case 3
.4byte _08095B12 @ case 4
.4byte _08095B1C @ case 5
_08095ABC:
ldrb r0, [r4, #0xc]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xc]
strb r1, [r4, #0x1e]
adds r0, r4, #0
bl sub_0807DD64
_08095ACC:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
b _08095B44
_08095ADC:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
_08095AE6:
ldrb r1, [r4, #0x18]
lsls r0, r1, #0x1e
lsrs r0, r0, #0x1e
movs r5, #1
eors r0, r5
movs r3, #4
rsbs r3, r3, #0
adds r2, r3, #0
ands r2, r1
orrs r2, r0
strb r2, [r4, #0x18]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08095B44
movs r0, #1
strb r5, [r4, #0xc]
ands r2, r3
orrs r2, r0
b _08095B42
_08095B12:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
_08095B1C:
ldrb r1, [r4, #0x18]
lsls r0, r1, #0x1e
lsrs r0, r0, #0x1e
movs r5, #1
eors r0, r5
movs r3, #4
rsbs r3, r3, #0
adds r2, r3, #0
ands r2, r1
orrs r2, r0
strb r2, [r4, #0x18]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08095B44
strb r5, [r4, #0xc]
ands r2, r3
_08095B42:
strb r2, [r4, #0x18]
_08095B44:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08095B48
sub_08095B48: @ 0x08095B48
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08095B78
adds r0, #1
strb r0, [r5, #0xc]
adds r1, r5, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r5, #0
bl sub_08016A04
ldr r1, _08095BA8 @ =gUnk_08114F30
ldrb r2, [r5, #0x19]
lsrs r0, r2, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x19]
_08095B78:
ldrb r0, [r5, #0x18]
movs r4, #4
rsbs r4, r4, #0
adds r1, r4, #0
ands r1, r0
strb r1, [r5, #0x18]
ldr r2, [r5, #0x50]
cmp r2, #0
beq _08095BCE
adds r0, r2, #0
adds r0, #0x5a
ldrb r3, [r0]
movs r0, #0x40
ands r0, r3
cmp r0, #0
bne _08095BAC
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _08095BCE
bl sub_0805E780
b _08095BDC
.align 2, 0
_08095BA8: .4byte gUnk_08114F30
_08095BAC:
adds r0, r1, #0
ands r0, r4
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
ldrh r0, [r2, #0x12]
ldrb r1, [r2, #0x1e]
bl sub_080700C8
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
strb r1, [r2]
ldrb r0, [r0, #1]
adds r1, r5, #0
adds r1, #0x63
strb r0, [r1]
_08095BCE:
ldrb r4, [r5, #0xa]
ldrb r0, [r5, #0xb]
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
_08095BDC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08095BE0
sub_08095BE0: @ 0x08095BE0
push {r4, lr}
adds r4, r0, #0
adds r2, r1, #0
movs r0, #0x6a
movs r1, #0x18
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08095BFC
str r4, [r1, #0x50]
adds r0, r4, #0
bl sub_0806FA24
_08095BFC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095C00
sub_08095C00: @ 0x08095C00
push {lr}
adds r2, r0, #0
ldrb r1, [r2, #0xc]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08095C14
bl sub_0805E780
b _08095C46
_08095C14:
ldr r3, [r2, #0x50]
cmp r3, #0
beq _08095C46
adds r1, r2, #0
adds r1, #0x60
movs r0, #0xe8
strh r0, [r1]
ldrb r0, [r3, #0x18]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
cmp r0, #1
bne _08095C38
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
b _08095C46
_08095C38:
ldrb r0, [r2, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r2, #0x18]
_08095C46:
pop {pc}
thumb_func_start sub_08095C48
sub_08095C48: @ 0x08095C48
push {r4, lr}
adds r4, r0, #0
movs r0, #0x6a
movs r1, #0x19
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08095C66
str r1, [r4, #0x54]
str r4, [r1, #0x50]
adds r0, r4, #0
bl sub_0806FA24
_08095C66:
pop {r4, pc}
thumb_func_start sub_08095C68
sub_08095C68: @ 0x08095C68
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095C80
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_08095C80:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08095CAA
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bhi _08095CA4
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_08095CA4:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08095CAE
_08095CAA:
bl sub_0805E780
_08095CAE:
pop {r4, pc}
thumb_func_start sub_08095CB0
sub_08095CB0: @ 0x08095CB0
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x6a
movs r1, #0x1b
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095CDC
str r4, [r5, #0x54]
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r5, #0x1e]
strb r0, [r4, #0x1e]
ldrb r0, [r5, #0x1e]
strb r0, [r4, #0x1f]
_08095CDC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08095CE0
sub_08095CE0: @ 0x08095CE0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095D06
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
bl sub_0807DD64
_08095D06:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x81
rsbs r0, r0, #0
ands r1, r0
adds r0, r4, #0
bl sub_08095D30
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08095D30
sub_08095D30: @ 0x08095D30
push {lr}
adds r2, r0, #0
adds r0, r1, #0
cmp r0, #0
beq _08095D4E
ldr r1, _08095D50 @ =gUnk_08122B00
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
movs r0, #0x81
rsbs r0, r0, #0
ands r1, r0
adds r0, r2, #0
bl sub_0801D2B4
_08095D4E:
pop {pc}
.align 2, 0
_08095D50: .4byte gUnk_08122B00
thumb_func_start sub_08095D54
sub_08095D54: @ 0x08095D54
push {r4, r5, lr}
adds r5, r1, #0
movs r0, #0x6a
movs r1, #0x1c
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095D86
ldr r0, _08095D88 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r1, [r5, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095D86:
pop {r4, r5, pc}
.align 2, 0
_08095D88: .4byte gLinkEntity
thumb_func_start sub_08095D8C
sub_08095D8C: @ 0x08095D8C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r0, #0x6a
movs r1, #0x1d
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095DB8
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095DB8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08095DBC
sub_08095DBC: @ 0x08095DBC
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _08095DF0 @ =gUnk_02033280
ldr r0, [r5]
movs r1, #0x10
ands r0, r1
cmp r0, #0
beq _08095DD0
bl sub_0805E780
_08095DD0:
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08095DF4
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095DE6
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
_08095DE6:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
b _08095E74
.align 2, 0
_08095DF0: .4byte gUnk_02033280
_08095DF4:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095E30
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #0x4b
bl sub_08004260
ldr r1, _08095E78 @ =gUnk_08114F30
ldrb r2, [r4, #0x19]
lsrs r0, r2, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
adds r1, r4, #0
bl sub_0806FAB0
_08095E30:
ldrb r2, [r4, #0xb]
movs r0, #0x80
ands r0, r2
cmp r0, #0
bne _08095E56
ldr r0, [r5]
movs r1, #0x80
lsls r1, r1, #0xa
ands r0, r1
cmp r0, #0
beq _08095E56
movs r0, #0xff
strb r0, [r4, #0xb]
movs r0, #0x80
lsls r0, r0, #0xb
str r0, [r4, #0x20]
movs r0, #0xc0
lsls r0, r0, #8
strh r0, [r4, #0x24]
_08095E56:
movs r0, #0x24
ldrsh r1, [r4, r0]
adds r0, r4, #0
bl sub_08003FC4
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
bne _08095E74
bl sub_0805E780
_08095E74:
pop {r4, r5, pc}
.align 2, 0
_08095E78: .4byte gUnk_08114F30
thumb_func_start sub_08095E7C
sub_08095E7C: @ 0x08095E7C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r0, #0x6a
movs r1, #0x1e
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08095EA8
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08095EA8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08095EAC
sub_08095EAC: @ 0x08095EAC
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sb, r0
adds r4, r1, #0
movs r0, #0x6a
movs r1, #0x1e
movs r2, #1
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _08095F2A
ldr r0, [r4, #4]
cmp r0, #0
bne _08095EE0
movs r7, #0x10
movs r6, #0x1f
movs r0, #0x80
lsls r0, r0, #7
mov sl, r0
movs r2, #0
mov r8, r2
b _08095F02
_08095EE0:
movs r7, #8
movs r6, #0xf
movs r0, #0x80
lsls r0, r0, #0xb
mov sl, r0
ldr r4, _08095F34 @ =gUnk_08122B0E
bl sub_08000E50
movs r1, #7
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r4
movs r0, #0
ldrsh r2, [r1, r0]
mov r8, r2
movs r0, #0xff
strb r0, [r5, #0xb]
_08095F02:
bl sub_08000E50
adds r4, r0, #0
ands r4, r6
subs r4, r7, r4
bl sub_08000E50
ands r6, r0
subs r3, r7, r6
lsls r4, r4, #0x10
lsls r3, r3, #0x10
mov r0, sb
adds r1, r5, #0
adds r2, r4, #0
bl sub_0806FA48
mov r2, sl
str r2, [r5, #0x20]
mov r0, r8
strh r0, [r5, #0x24]
_08095F2A:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08095F34: .4byte gUnk_08122B0E
thumb_func_start sub_08095F38
sub_08095F38: @ 0x08095F38
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08095FC2
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0xb]
cmp r0, #4
beq _08095F64
cmp r0, #4
bgt _08095F5A
cmp r0, #3
beq _08095F60
b _08095F6A
_08095F5A:
cmp r0, #6
beq _08095F68
b _08095F6A
_08095F60:
movs r1, #0
b _08095F6A
_08095F64:
movs r1, #1
b _08095F6A
_08095F68:
movs r1, #4
_08095F6A:
adds r0, r4, #0
bl sub_0801D2B4
ldr r0, _08095F90 @ =gLinkEntity
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _08095F98
adds r1, r4, #0
adds r1, #0x84
ldr r0, _08095F94 @ =0x000008BF
str r0, [r1]
movs r0, #0x34
strb r0, [r4, #0xe]
movs r0, #0xb5
b _08095FA6
.align 2, 0
_08095F90: .4byte gLinkEntity
_08095F94: .4byte 0x000008BF
_08095F98:
adds r1, r4, #0
adds r1, #0x84
ldr r0, _08096020 @ =0x000008E3
str r0, [r1]
movs r0, #0x55
strb r0, [r4, #0xe]
movs r0, #0xd6
_08095FA6:
strb r0, [r4, #0xf]
ldr r0, _08096024 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
_08095FC2:
ldr r5, _08096024 @ =gLinkEntity
adds r2, r5, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _08095FE0
movs r0, #0xef
ands r0, r1
strb r0, [r2]
movs r0, #0xea
lsls r0, r0, #1
bl sub_080A3268
_08095FE0:
ldrh r0, [r5, #0x12]
adds r1, r4, #0
adds r1, #0x84
ldr r2, [r1]
lsrs r1, r2, #8
cmp r0, r1
bne _08095FFC
adds r0, r5, #0
adds r0, #0x58
ldrb r1, [r0]
lsls r0, r2, #0x18
lsrs r0, r0, #0x18
cmp r1, r0
beq _08096000
_08095FFC:
bl sub_0805E780
_08096000:
ldr r0, _08096024 @ =gLinkEntity
ldrb r0, [r0, #0x1e]
ldrb r1, [r4, #0xe]
subs r0, r0, r1
ldrb r1, [r4, #0xf]
adds r0, r0, r1
ldrb r1, [r4, #0x1e]
cmp r0, r1
beq _0809601E
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x1e]
ldrh r2, [r4, #0x12]
adds r0, r4, #0
bl sub_080042D0
_0809601E:
pop {r4, r5, pc}
.align 2, 0
_08096020: .4byte 0x000008E3
_08096024: .4byte gLinkEntity
thumb_func_start sub_08096028
sub_08096028: @ 0x08096028
push {r4, r5, lr}
movs r4, #6
movs r5, #0xc0
lsls r5, r5, #2
adds r0, r5, #0
movs r1, #0x7b
bl GetProgressFlagWithOffset
cmp r0, #0
bne _0809603E
movs r4, #4
_0809603E:
adds r0, r5, #0
movs r1, #0x7a
bl GetProgressFlagWithOffset
cmp r0, #0
bne _0809604C
movs r4, #3
_0809604C:
movs r0, #0x6a
movs r1, #0x1f
adds r2, r4, #0
bl sub_080A2960
pop {r4, r5, pc}
thumb_func_start sub_08096058
sub_08096058: @ 0x08096058
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809606C
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
_0809606C:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08096084
sub_08096084: @ 0x08096084
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080960A0
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0807DD64
ldrb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_08004260
_080960A0:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_08004274
ldr r0, [r4, #0x50]
cmp r0, #0
beq _080960C0
adds r1, r4, #0
bl sub_0806FA24
_080960C0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080960C4
sub_080960C4: @ 0x080960C4
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r0, #0x6a
movs r1, #0x23
movs r2, #0x49
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08096110
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r1, _08096160 @ =gUnk_08114F34
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAD8
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_08096110:
movs r0, #0x6a
movs r1, #0x24
movs r2, #0x4a
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809615E
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r1, _08096164 @ =gUnk_08114F30
ldrb r0, [r5, #0x19]
lsrs r0, r0, #6
adds r0, r0, r1
ldrb r1, [r0]
lsls r1, r1, #6
ldrb r2, [r4, #0x19]
movs r0, #0x3f
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAB0
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r1, [r6, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
_0809615E:
pop {r4, r5, r6, pc}
.align 2, 0
_08096160: .4byte gUnk_08114F34
_08096164: .4byte gUnk_08114F30
thumb_func_start sub_08096168
sub_08096168: @ 0x08096168
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809618C
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
movs r1, #0x4b
bl sub_08004260
_0809618C:
adds r0, r4, #0
bl sub_08004274
movs r0, #0x24
ldrsh r1, [r4, r0]
ldrb r2, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F62C
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
bne _080961AC
bl sub_0805E780
_080961AC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080961B0
sub_080961B0: @ 0x080961B0
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
movs r5, #0
ldr r6, _080961F0 @ =gUnk_08122B1E
_080961B8:
movs r0, #0x6a
movs r1, #0x25
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080961E6
adds r0, r7, #0
adds r1, r4, #0
bl sub_0806FA24
lsls r0, r5, #5
strb r0, [r4, #0x15]
bl sub_08000E50
movs r2, #0xf8
lsls r2, r2, #1
adds r1, r2, #0
ands r0, r1
ldrh r1, [r6]
adds r0, r0, r1
strh r0, [r4, #0x24]
_080961E6:
adds r6, #2
adds r5, #1
cmp r5, #7
ble _080961B8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080961F0: .4byte gUnk_08122B1E
thumb_func_start sub_080961F4
sub_080961F4: @ 0x080961F4
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
movs r1, #0
strb r1, [r0, #0x1e]
bx lr
thumb_func_start sub_08096208
sub_08096208: @ 0x08096208
push {r4, r5, lr}
adds r5, r0, #0
lsls r1, r1, #1
ldr r0, _08096238 @ =gUnk_08122B2E
adds r4, r1, r0
movs r0, #0x6a
movs r1, #0x26
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _08096234
movs r2, #0
ldrsb r2, [r4, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r4, r3]
lsls r3, r3, #0x10
adds r0, r5, #0
bl sub_0806FA48
_08096234:
pop {r4, r5, pc}
.align 2, 0
_08096238: .4byte gUnk_08122B2E
thumb_func_start sub_0809623C
sub_0809623C: @ 0x0809623C
push {r4, lr}
adds r4, r0, #0
movs r0, #0x6a
movs r1, #0x27
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809625A
ldr r3, _0809625C @ =0xFFF00000
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
_0809625A:
pop {r4, pc}
.align 2, 0
_0809625C: .4byte 0xFFF00000
thumb_func_start sub_08096260
sub_08096260: @ 0x08096260
push {r4, lr}
adds r4, r0, #0
movs r0, #0x6a
movs r1, #0x28
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809627E
ldr r3, _08096280 @ =0xFFF00000
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
_0809627E:
pop {r4, pc}
.align 2, 0
_08096280: .4byte 0xFFF00000
thumb_func_start sub_08096284
sub_08096284: @ 0x08096284
push {lr}
movs r1, #0xd
bl sub_0809629C
pop {pc}
.align 2, 0
thumb_func_start sub_08096290
sub_08096290: @ 0x08096290
push {lr}
movs r1, #0xe
bl sub_0809629C
pop {pc}
.align 2, 0
thumb_func_start sub_0809629C
sub_0809629C: @ 0x0809629C
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _080962B2
movs r0, #1
strb r0, [r5, #0xc]
adds r0, r5, #0
bl sub_0807DD64
_080962B2:
adds r0, r5, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r5, #0
bl sub_0807DDE4
movs r1, #0x80
lsls r1, r1, #5
adds r0, r5, #0
bl sub_08003FC4
ldrb r4, [r5, #0xa]
strb r6, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, r6, pc}
thumb_func_start sub_080962D8
sub_080962D8: @ 0x080962D8
push {lr}
movs r1, #0x80
lsls r1, r1, #1
movs r0, #6
bl sub_08050054
pop {pc}
.align 2, 0
thumb_func_start sub_080962E8
sub_080962E8: @ 0x080962E8
push {lr}
movs r1, #0x80
lsls r1, r1, #1
movs r0, #7
bl sub_08050054
pop {pc}
.align 2, 0
thumb_func_start sub_080962F8
sub_080962F8: @ 0x080962F8
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, [r1, #4]
lsls r4, r4, #4
ldr r0, _08096318 @ =gUnk_08122B3C
adds r4, r4, r0
ldrb r2, [r4, #0xc]
adds r3, r4, #0
adds r3, #8
adds r0, r5, #0
movs r1, #1
bl sub_08078850
str r4, [r5, #0x48]
pop {r4, r5, pc}
.align 2, 0
_08096318: .4byte gUnk_08122B3C
thumb_func_start sub_0809631C
sub_0809631C: @ 0x0809631C
push {lr}
ldr r2, _08096330 @ =gUnk_08123168
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08096330: .4byte gUnk_08123168
thumb_func_start sub_08096334
sub_08096334: @ 0x08096334
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
movs r4, #0
movs r6, #0x80
strh r6, [r5, #0x24]
ldr r0, _08096358 @ =gUnk_080FD2A8
str r0, [r5, #0x48]
ldrb r0, [r5, #0xa]
cmp r0, #1
bne _0809634E
b _08096494
_0809634E:
cmp r0, #1
bgt _0809635C
cmp r0, #0
beq _08096368
b _0809650A
.align 2, 0
_08096358: .4byte gUnk_080FD2A8
_0809635C:
cmp r0, #2
bne _08096362
b _080964A6
_08096362:
cmp r0, #3
beq _080963FC
b _0809650A
_08096368:
movs r0, #0x1a
bl GetProgressFlag
cmp r0, #0
beq _080963DA
movs r0, #0x1b
bl GetProgressFlag
cmp r0, #0
bne _080963A4
ldr r0, _0809639C @ =gLinkEntity
movs r3, #0x80
lsls r3, r3, #9
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
ldr r0, _080963A0 @ =0x00004022
adds r1, r5, #0
adds r1, #0x38
ldrb r2, [r1]
movs r1, #0xdc
bl sub_0800015E
b _0809650A
.align 2, 0
_0809639C: .4byte gLinkEntity
_080963A0: .4byte 0x00004022
_080963A4:
ldrb r0, [r5, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _080963C8
adds r0, r5, #0
movs r1, #0xa
bl sub_08004260
ldrh r0, [r5, #0x32]
adds r0, #4
strh r0, [r5, #0x32]
movs r0, #4
strb r0, [r5, #0xc]
ldr r0, _080963C4 @ =0x0000403B
b _080964C4
.align 2, 0
_080963C4: .4byte 0x0000403B
_080963C8:
strb r4, [r5, #0xb]
movs r0, #2
strb r0, [r5, #0xf]
adds r0, r5, #0
bl sub_080969A4
bl sub_0805E780
b _0809650A
_080963DA:
ldr r1, _080963F8 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0xd0
strh r0, [r5, #0x2e]
ldrh r0, [r1, #8]
adds r0, #0x44
strh r0, [r5, #0x32]
movs r0, #4
strb r0, [r5, #0xc]
ldrb r1, [r5, #0xa]
adds r1, #3
adds r0, r5, #0
bl sub_08004260
b _0809651A
.align 2, 0
_080963F8: .4byte gUnk_03000BF0
_080963FC:
movs r0, #0x1a
bl GetProgressFlag
cmp r0, #0
beq _08096450
movs r0, #0x1b
bl GetProgressFlag
cmp r0, #0
bne _0809644C
ldr r0, _08096444 @ =gLinkEntity
adds r1, r0, #0
adds r1, #0x29
ldrb r2, [r1]
lsls r2, r2, #0x1d
lsrs r2, r2, #0x1d
subs r2, #1
adds r4, r5, #0
adds r4, #0x29
movs r1, #7
ands r2, r1
ldrb r3, [r4]
movs r1, #8
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
strb r1, [r4]
adds r1, r0, #0
adds r1, #0x79
strb r6, [r1]
ldr r3, _08096448 @ =0xFFE80000
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
b _08096450
.align 2, 0
_08096444: .4byte gLinkEntity
_08096448: .4byte 0xFFE80000
_0809644C:
bl sub_0805E780
_08096450:
adds r0, r5, #0
movs r1, #0x6b
movs r2, #1
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
str r1, [r5, #0x54]
cmp r1, #0
beq _0809646E
ldr r2, _0809648C @ =0xFFE40000
ldr r3, _08096490 @ =0xFFD80000
adds r0, r5, #0
bl sub_0806FA48
_0809646E:
movs r0, #0x10
strb r0, [r5, #0x16]
ldrb r0, [r5, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r5, #0x19]
adds r0, r5, #0
movs r1, #0xc
bl sub_08004260
adds r0, r5, #0
bl sub_0809651C
b _0809651A
.align 2, 0
_0809648C: .4byte 0xFFE40000
_08096490: .4byte 0xFFD80000
_08096494:
ldrb r0, [r5, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r5, #0x19]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
b _0809650A
_080964A6:
ldrb r0, [r5, #0xb]
bl sub_0807CBD0
cmp r0, #0
bne _080964F8
adds r0, r5, #0
movs r1, #0xb
bl sub_08004260
ldrh r0, [r5, #0x32]
adds r0, #4
strh r0, [r5, #0x32]
movs r0, #4
strb r0, [r5, #0xc]
ldr r0, _080964F0 @ =0x00004032
_080964C4:
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080964F4 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
b _0809651A
.align 2, 0
_080964F0: .4byte 0x00004032
_080964F4: .4byte gUnk_03000BF0
_080964F8:
strb r4, [r5, #0xb]
movs r0, #3
strb r0, [r5, #0xf]
adds r0, r5, #0
bl sub_080969A4
bl sub_0805E780
b _0809651A
_0809650A:
ldrb r1, [r5, #0xa]
adds r1, #3
adds r0, r5, #0
bl sub_08004260
adds r0, r5, #0
bl sub_0809651C
_0809651A:
pop {r4, r5, r6, pc}
thumb_func_start sub_0809651C
sub_0809651C: @ 0x0809651C
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
ldrb r3, [r6, #0xa]
movs r0, #1
ands r0, r3
cmp r0, #0
beq _080965D6
cmp r3, #3
bne _0809653C
adds r0, r6, #0
bl sub_08078930
adds r0, r6, #0
bl sub_0800445C
b _080965C8
_0809653C:
ldr r0, [r6, #0x50]
ldr r2, _0809655C @ =0xFFE40000
ldr r3, _08096560 @ =0xFFD80000
adds r1, r6, #0
bl sub_0806FA48
ldr r1, [r6, #0x50]
ldrb r0, [r1, #0xc]
cmp r0, #2
bne _08096586
ldrb r0, [r1, #0xd]
cmp r0, #1
beq _08096564
cmp r0, #2
beq _08096580
b _08096570
.align 2, 0
_0809655C: .4byte 0xFFE40000
_08096560: .4byte 0xFFD80000
_08096564:
ldr r0, _0809657C @ =gUnk_03003F80
ldrb r1, [r0, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08096580
_08096570:
adds r0, r6, #0
movs r1, #4
bl sub_08004260
b _08096586
.align 2, 0
_0809657C: .4byte gUnk_03003F80
_08096580:
adds r0, r6, #0
bl sub_08004274
_08096586:
ldr r0, [r6, #0x50]
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
subs r1, #1
adds r3, r6, #0
adds r3, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldr r4, [r6, #0x50]
ldrb r2, [r4, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r6, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r6, #0x19]
ldrb r0, [r4, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r6, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r6, #0x1b]
_080965C8:
adds r0, r6, #0
movs r1, #0xcc
movs r2, #0xcc
movs r3, #0
bl sub_0805EC9C
b _080966F6
_080965D6:
ldr r1, _080965FC @ =gUnk_03003F80
ldrb r2, [r1, #0x1a]
movs r0, #0x80
orrs r0, r2
strb r0, [r1, #0x1a]
movs r0, #5
strb r0, [r1, #5]
ldrb r1, [r1, #0xd]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08096600
lsls r1, r3, #0x18
lsrs r1, r1, #0x19
adds r1, #3
adds r0, r6, #0
bl sub_08004260
b _08096606
.align 2, 0
_080965FC: .4byte gUnk_03003F80
_08096600:
adds r0, r6, #0
bl sub_08004274
_08096606:
ldr r0, _08096664 @ =gLinkEntity
ldrb r0, [r0, #0x14]
movs r1, #6
ands r1, r0
ldr r4, _08096668 @ =gUnk_08123184
adds r0, r1, r4
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
ldrh r2, [r6, #0x2e]
adds r0, r0, r2
movs r2, #0x10
rsbs r2, r2, #0
adds r3, r2, #0
ands r0, r3
movs r2, #8
adds r5, r6, #0
adds r5, #0x70
movs r7, #0
orrs r0, r2
strh r0, [r5]
adds r1, #1
adds r1, r1, r4
movs r0, #0
ldrsb r0, [r1, r0]
ldrh r1, [r6, #0x32]
adds r0, r0, r1
ands r0, r3
orrs r0, r2
adds r1, r6, #0
adds r1, #0x72
strh r0, [r1]
ldrh r0, [r5]
ldrh r1, [r1]
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_080002BC
cmp r0, #0x19
bne _08096670
ldr r0, _0809666C @ =gUnk_0200AF00
adds r0, #0x2f
movs r1, #3
strb r1, [r0]
b _08096676
.align 2, 0
_08096664: .4byte gLinkEntity
_08096668: .4byte gUnk_08123184
_0809666C: .4byte gUnk_0200AF00
_08096670:
ldr r0, _080966F8 @ =gUnk_0200AF00
adds r0, #0x2f
strb r7, [r0]
_08096676:
ldr r0, _080966FC @ =gLinkEntity
movs r3, #0x80
lsls r3, r3, #9
adds r1, r6, #0
movs r2, #0
bl sub_0806FA48
adds r0, r6, #0
bl sub_080002B8
cmp r0, #0x19
bne _0809669C
ldrb r1, [r4]
movs r0, #0xdc
bl sub_0807BA8C
adds r0, r6, #0
bl sub_08096A78
_0809669C:
ldr r2, _08096700 @ =gUnk_03003F80
adds r0, r2, #0
adds r0, #0x92
ldrh r1, [r0]
movs r0, #0xc0
ands r0, r1
cmp r0, #0
beq _080966F6
ldr r0, _080966F8 @ =gUnk_0200AF00
adds r0, #0x2f
ldrb r0, [r0]
cmp r0, #3
bne _080966F6
movs r0, #0
strb r0, [r2, #5]
movs r0, #5
strb r0, [r6, #0xc]
adds r0, #0xfb
strh r0, [r6, #0x24]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r6, #0x20]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldrb r1, [r6, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r6, #0x18]
ldrb r1, [r4]
movs r0, #0xdc
bl sub_0807BA8C
movs r0, #0x79
bl sub_080A3268
_080966F6:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080966F8: .4byte gUnk_0200AF00
_080966FC: .4byte gLinkEntity
_08096700: .4byte gUnk_03003F80
thumb_func_start sub_08096704
sub_08096704: @ 0x08096704
push {lr}
ldr r2, _08096718 @ =gUnk_0812318C
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08096718: .4byte gUnk_0812318C
thumb_func_start sub_0809671C
sub_0809671C: @ 0x0809671C
push {r4, lr}
adds r4, r0, #0
movs r0, #0x1a
bl sub_0807CD04
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_121
nullsub_121: @ 0x08096730
bx lr
.align 2, 0
thumb_func_start sub_08096734
sub_08096734: @ 0x08096734
push {lr}
movs r0, #0x1a
bl sub_0807CD80
pop {pc}
.align 2, 0
thumb_func_start sub_08096740
sub_08096740: @ 0x08096740
push {r4, lr}
adds r4, r0, #0
movs r0, #0x10
movs r1, #0
bl sub_08080964
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08096758
sub_08096758: @ 0x08096758
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809677C
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0xa
bl sub_08004260
_0809677C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08096780
sub_08096780: @ 0x08096780
push {r4, r5, lr}
adds r5, r0, #0
ldr r1, _080967D4 @ =gUnk_0812319C
ldrb r0, [r5, #0xa]
lsrs r0, r0, #1
lsls r0, r0, #1
adds r0, r0, r1
ldrh r4, [r0]
adds r0, r5, #0
bl sub_080002A0
cmp r4, r0
bne _080967DC
adds r0, r5, #0
bl sub_08004274
ldr r2, _080967D8 @ =gUnk_03003F80
ldrb r0, [r2, #0xb]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0xb]
ldrb r0, [r2, #0xa]
orrs r0, r1
strb r0, [r2, #0xa]
ldrb r0, [r2, #7]
orrs r1, r0
strb r1, [r2, #7]
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080967E0
movs r0, #6
strb r0, [r5, #0xc]
strb r1, [r5, #0xd]
adds r0, r5, #0
bl sub_080A29BC
b _080967E0
.align 2, 0
_080967D4: .4byte gUnk_0812319C
_080967D8: .4byte gUnk_03003F80
_080967DC:
movs r0, #0xc0
strb r0, [r5, #0xe]
_080967E0:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080967E4
sub_080967E4: @ 0x080967E4
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x70
ldrh r5, [r0]
movs r0, #0x2e
ldrsh r2, [r4, r0]
cmp r5, r2
bne _08096802
adds r0, r4, #0
adds r0, #0x72
ldrh r1, [r0]
movs r3, #0x32
ldrsh r0, [r4, r3]
cmp r1, r0
beq _0809681C
_08096802:
movs r0, #0x32
ldrsh r1, [r4, r0]
adds r0, r4, #0
adds r0, #0x72
ldrh r3, [r0]
adds r0, r2, #0
adds r2, r5, #0
bl sub_080045D4
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0806F69C
_0809681C:
movs r1, #0x80
lsls r1, r1, #7
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _08096830
adds r0, r4, #0
bl sub_08096A78
_08096830:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08096834
sub_08096834: @ 0x08096834
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #2
beq _08096842
bl sub_08078B48
_08096842:
ldr r0, _08096854 @ =gUnk_081231A0
ldrb r1, [r4, #0xd]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08096854: .4byte gUnk_081231A0
thumb_func_start sub_08096858
sub_08096858: @ 0x08096858
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
bl sub_0807CCB4
movs r3, #0
movs r0, #0xf
strb r0, [r5, #0xe]
ldr r1, _080968BC @ =gUnk_081231AC
ldrb r2, [r5, #0xa]
lsls r2, r2, #0x18
lsrs r0, r2, #0x19
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r5, #0xf]
strb r3, [r5, #0xb]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xd]
adds r0, #1
strb r0, [r5, #0xd]
cmp r2, #0
bne _080968C4
movs r0, #0xe7
lsls r0, r0, #1
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080968C0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
b _080968F0
.align 2, 0
_080968BC: .4byte gUnk_081231AC
_080968C0: .4byte gUnk_03000BF0
_080968C4:
ldr r0, _080968F8 @ =0x000001CD
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080968FC @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
_080968F0:
ldr r0, _08096900 @ =0x000001DB
bl sub_080A3268
pop {r4, r5, r6, pc}
.align 2, 0
_080968F8: .4byte 0x000001CD
_080968FC: .4byte gUnk_03000BF0
_08096900: .4byte 0x000001DB
thumb_func_start sub_08096904
sub_08096904: @ 0x08096904
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08096984
ldrh r0, [r5, #0x32]
subs r0, #0x10
strh r0, [r5, #0x32]
ldr r1, _08096974 @ =gUnk_081231AE
ldrb r0, [r5, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08096978 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0807B7D8
ldrb r0, [r5, #0xb]
adds r0, #1
strb r0, [r5, #0xb]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r5, #0xf]
cmp r0, r1
bne _08096980
ldr r2, _0809697C @ =gUnk_03003F80
ldrb r1, [r2, #0xb]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0xb]
ldrb r0, [r5, #0xd]
adds r0, #1
strb r0, [r5, #0xd]
movs r0, #0x3c
b _08096982
.align 2, 0
_08096974: .4byte gUnk_081231AE
_08096978: .4byte gUnk_03000BF0
_0809697C: .4byte gUnk_03003F80
_08096980:
movs r0, #0xf
_08096982:
strb r0, [r5, #0xe]
_08096984:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08096988
sub_08096988: @ 0x08096988
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
cmp r0, #0
beq _080969A2
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080969A2
movs r0, #0x72
bl sub_080A3268
_080969A2:
pop {pc}
thumb_func_start sub_080969A4
sub_080969A4: @ 0x080969A4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _080969E8
movs r0, #0xe7
lsls r0, r0, #1
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _080969E4 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0807B7D8
b _08096A14
.align 2, 0
_080969E4: .4byte gUnk_03000BF0
_080969E8:
ldr r0, _08096A6C @ =0x000001CD
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08096A70 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0807B7D8
_08096A14:
ldrb r0, [r5, #0xb]
ldrb r1, [r5, #0xf]
cmp r0, r1
beq _08096A64
ldr r2, _08096A74 @ =gUnk_081231B4
mov r8, r2
ldr r7, _08096A70 @ =gUnk_03000BF0
movs r6, #0x3f
_08096A24:
ldrh r0, [r5, #0x32]
subs r0, #0x10
strh r0, [r5, #0x32]
ldrb r0, [r5, #0xb]
lsls r0, r0, #1
add r0, r8
ldrh r0, [r0]
movs r3, #0x2e
ldrsh r1, [r5, r3]
ldrh r2, [r7, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r6
movs r3, #0x32
ldrsh r2, [r5, r3]
ldrh r3, [r7, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r6
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4]
bl sub_0807B7D8
ldrb r0, [r5, #0xb]
adds r0, #1
strb r0, [r5, #0xb]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
ldrb r1, [r5, #0xf]
cmp r0, r1
bne _08096A24
_08096A64:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08096A6C: .4byte 0x000001CD
_08096A70: .4byte gUnk_03000BF0
_08096A74: .4byte gUnk_081231B4
thumb_func_start sub_08096A78
sub_08096A78: @ 0x08096A78
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x1b
bl sub_0807CD04
ldrb r1, [r4, #0xa]
lsrs r1, r1, #1
adds r1, #8
adds r0, r4, #0
bl sub_080042AC
adds r0, r4, #0
bl sub_08004168
ldrh r0, [r4, #0x32]
adds r0, #4
strh r0, [r4, #0x32]
movs r0, #3
strb r0, [r4, #0xc]
ldr r0, _08096ACC @ =0x0000403B
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldr r3, _08096AD0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r5, #0x3f
ands r1, r5
movs r6, #0x32
ldrsh r2, [r4, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_08096ACC: .4byte 0x0000403B
_08096AD0: .4byte gUnk_03000BF0
thumb_func_start sub_08096AD4
sub_08096AD4: @ 0x08096AD4
push {lr}
ldr r2, _08096AE8 @ =gUnk_0812323C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08096AE8: .4byte gUnk_0812323C
thumb_func_start sub_08096AEC
sub_08096AEC: @ 0x08096AEC
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_080837B0
cmp r0, #0
beq _08096BB6
ldrb r1, [r4, #0xa]
movs r0, #4
ands r0, r1
cmp r0, #0
beq _08096B12
adds r1, r4, #0
adds r1, #0x7e
movs r0, #1
strb r0, [r1]
ldrb r1, [r4, #0xa]
movs r0, #3
ands r0, r1
strb r0, [r4, #0xa]
_08096B12:
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08096B90 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x76
strh r1, [r5]
ldrh r0, [r5]
adds r6, r4, #0
adds r6, #0x38
ldrb r1, [r6]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x74
strh r0, [r1]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
adds r0, r4, #0
bl sub_08096CEC
cmp r0, #0
beq _08096B9C
adds r0, r4, #0
adds r0, #0x7e
ldrb r0, [r0]
cmp r0, #0
beq _08096B94
bl sub_0805E780
b _08096BB6
.align 2, 0
_08096B90: .4byte gUnk_03000BF0
_08096B94:
adds r0, r4, #0
bl sub_08096E04
b _08096BB6
_08096B9C:
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldr r0, _08096BB8 @ =0x00004022
ldrh r1, [r5]
ldrb r2, [r6]
bl sub_0800015E
_08096BB6:
pop {r4, r5, r6, pc}
.align 2, 0
_08096BB8: .4byte 0x00004022
thumb_func_start sub_08096BBC
sub_08096BBC: @ 0x08096BBC
push {r4, lr}
adds r4, r0, #0
bl sub_08096CEC
cmp r0, #0
beq _08096BF2
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #7
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
lsls r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x76
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldr r0, _08096BF4 @ =0x0000010B
bl sub_08004488
_08096BF2:
pop {r4, pc}
.align 2, 0
_08096BF4: .4byte 0x0000010B
thumb_func_start sub_08096BF8
sub_08096BF8: @ 0x08096BF8
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08096C3A
adds r0, r4, #0
bl sub_08096E04
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x7e
ldrb r0, [r0]
cmp r0, #0
beq _08096C3A
bl sub_0805E780
_08096C3A:
pop {r4, pc}
thumb_func_start sub_08096C3C
sub_08096C3C: @ 0x08096C3C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x7e
ldrb r0, [r0]
cmp r0, #0
beq _08096C56
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _08096CAE
_08096C56:
ldr r0, _08096C80 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #5
ands r0, r1
cmp r0, #0
beq _08096C92
ldrb r2, [r4, #0xa]
lsls r1, r2, #1
ldr r0, _08096C84 @ =gLinkEntity
ldrb r0, [r0, #0x14]
cmp r1, r0
bne _08096C88
adds r0, r4, #0
adds r1, r2, #0
bl sub_08083734
cmp r0, #0
beq _08096CAE
b _08096C9C
.align 2, 0
_08096C80: .4byte gUnk_03003F80
_08096C84: .4byte gLinkEntity
_08096C88:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
b _08096C98
_08096C92:
adds r0, r4, #0
bl sub_08096D84
_08096C98:
cmp r0, #0
bne _08096CAE
_08096C9C:
movs r0, #4
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
adds r0, #0x76
ldrh r2, [r0]
adds r0, r4, #0
bl sub_080836DC
_08096CAE:
pop {r4, pc}
thumb_func_start sub_08096CB0
sub_08096CB0: @ 0x08096CB0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08096CE6
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r4, #0x32]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08083814
ldr r0, _08096CE8 @ =0x0000010B
bl sub_08004488
_08096CE6:
pop {r4, pc}
.align 2, 0
_08096CE8: .4byte 0x0000010B
thumb_func_start sub_08096CEC
sub_08096CEC: @ 0x08096CEC
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x7e
ldrb r0, [r0]
cmp r0, #0
beq _08096D06
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _08096D60
_08096D06:
ldr r0, _08096D40 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #5
ands r0, r1
cmp r0, #0
beq _08096D64
ldr r3, _08096D44 @ =gLinkEntity
ldrb r2, [r4, #0xa]
lsls r0, r2, #1
ldrb r1, [r3, #0x14]
eors r0, r1
movs r1, #2
ands r0, r1
cmp r0, #0
bne _08096D64
movs r0, #1
ands r2, r0
cmp r2, #0
beq _08096D48
movs r1, #0x32
ldrsh r0, [r3, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
movs r5, #0x2e
ldrsh r2, [r3, r5]
movs r5, #0x2e
ldrsh r3, [r4, r5]
b _08096D58
.align 2, 0
_08096D40: .4byte gUnk_03003F80
_08096D44: .4byte gLinkEntity
_08096D48:
movs r1, #0x2e
ldrsh r0, [r3, r1]
movs r2, #0x2e
ldrsh r1, [r4, r2]
movs r5, #0x32
ldrsh r2, [r3, r5]
movs r5, #0x32
ldrsh r3, [r4, r5]
_08096D58:
bl sub_08096D68
cmp r0, #0
beq _08096D64
_08096D60:
movs r0, #1
b _08096D66
_08096D64:
movs r0, #0
_08096D66:
pop {r4, r5, pc}
thumb_func_start sub_08096D68
sub_08096D68: @ 0x08096D68
push {lr}
subs r0, r0, r1
adds r0, #8
cmp r0, #0x10
bhi _08096D7E
subs r0, r2, r3
adds r0, #0x30
cmp r0, #0x60
bhi _08096D7E
movs r0, #1
b _08096D80
_08096D7E:
movs r0, #0
_08096D80:
pop {pc}
.align 2, 0
thumb_func_start sub_08096D84
sub_08096D84: @ 0x08096D84
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #1
beq _08096DB4
cmp r0, #1
bgt _08096D98
cmp r0, #0
beq _08096DA2
b _08096E00
_08096D98:
cmp r0, #2
beq _08096DC8
cmp r0, #3
beq _08096DE4
b _08096E00
_08096DA2:
movs r0, #0x32
ldrsh r1, [r1, r0]
ldr r0, _08096DB0 @ =gLinkEntity
movs r2, #0x32
ldrsh r0, [r0, r2]
b _08096DEE
.align 2, 0
_08096DB0: .4byte gLinkEntity
_08096DB4:
ldr r0, _08096DC4 @ =gLinkEntity
movs r2, #0x2e
ldrsh r0, [r0, r2]
adds r0, #0xa
movs r2, #0x2e
ldrsh r1, [r1, r2]
b _08096DD4
.align 2, 0
_08096DC4: .4byte gLinkEntity
_08096DC8:
ldr r0, _08096DE0 @ =gLinkEntity
movs r2, #0x32
ldrsh r0, [r0, r2]
adds r0, #0xa
movs r2, #0x32
ldrsh r1, [r1, r2]
_08096DD4:
subs r0, r0, r1
cmp r0, #0x64
bhi _08096E00
movs r0, #1
b _08096E02
.align 2, 0
_08096DE0: .4byte gLinkEntity
_08096DE4:
movs r0, #0x2e
ldrsh r1, [r1, r0]
ldr r0, _08096DFC @ =gLinkEntity
movs r2, #0x2e
ldrsh r0, [r0, r2]
_08096DEE:
subs r0, #0xa
subs r1, r1, r0
cmp r1, #0x64
bhi _08096E00
movs r0, #1
b _08096E02
.align 2, 0
_08096DFC: .4byte gLinkEntity
_08096E00:
movs r0, #0
_08096E02:
pop {pc}
thumb_func_start sub_08096E04
sub_08096E04: @ 0x08096E04
movs r1, #3
strb r1, [r0, #0xc]
movs r1, #8
strb r1, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_08096E10
sub_08096E10: @ 0x08096E10
push {lr}
ldr r2, _08096E24 @ =gUnk_08123250
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08096E24: .4byte gUnk_08123250
thumb_func_start sub_08096E28
sub_08096E28: @ 0x08096E28
push {r4, r5, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r5, r0, #0
cmp r5, #0
bne _08096EBC
movs r2, #1
movs r3, #1
strb r3, [r4, #0xc]
movs r0, #0x80
strh r0, [r4, #0x24]
ldrb r1, [r4, #0x11]
subs r0, #0x90
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x63
movs r0, #4
strb r0, [r1]
ldr r0, _08096EB4 @ =gUnk_080FD1F4
str r0, [r4, #0x48]
strb r3, [r4, #0x16]
adds r0, r4, #0
adds r0, #0x72
strh r5, [r0]
adds r0, #0xb
ldrb r0, [r0]
lsrs r0, r0, #4
subs r1, #0x2b
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
bl sub_080970F4
ldr r1, _08096EB8 @ =gUnk_08123264
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0x1e]
b _08096F04
.align 2, 0
_08096EB4: .4byte gUnk_080FD1F4
_08096EB8: .4byte gUnk_08123264
_08096EBC:
adds r0, r4, #0
adds r0, #0x7c
ldrb r2, [r0]
adds r0, #1
ldrb r3, [r0]
movs r1, #0xf
adds r0, r1, #0
ands r0, r3
lsls r0, r0, #8
ldr r3, _08096F08 @ =gUnk_03000BF0
orrs r2, r0
ldrh r0, [r3, #6]
adds r2, r2, r0
strh r2, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x7e
ldrb r0, [r0]
movs r2, #0x7f
adds r2, r2, r4
mov ip, r2
ldrb r2, [r2]
ands r1, r2
lsls r1, r1, #8
orrs r0, r1
ldrh r3, [r3, #8]
adds r0, r0, r3
strh r0, [r4, #0x32]
mov r5, ip
ldrb r0, [r5]
lsrs r0, r0, #4
adds r1, r4, #0
adds r1, #0x38
strb r0, [r1]
adds r0, r4, #0
bl sub_080971E0
_08096F04:
pop {r4, r5, pc}
.align 2, 0
_08096F08: .4byte gUnk_03000BF0
thumb_func_start sub_08096F0C
sub_08096F0C: @ 0x08096F0C
push {r4, lr}
adds r4, r0, #0
bl sub_08097194
cmp r0, #0
bne _08096F2E
adds r0, r4, #0
bl sub_08097008
cmp r0, #0
beq _08096F28
movs r0, #3
strb r0, [r4, #0xc]
b _08096F2E
_08096F28:
adds r0, r4, #0
bl sub_08078930
_08096F2E:
pop {r4, pc}
thumb_func_start sub_08096F30
sub_08096F30: @ 0x08096F30
push {lr}
adds r2, r0, #0
adds r0, #0x76
ldrh r0, [r0]
cmp r0, #0
beq _08096F44
adds r0, r2, #0
bl sub_08097144
b _08096F62
_08096F44:
ldr r0, _08096F64 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _08096F50
movs r0, #6
strb r0, [r2, #0xd]
_08096F50:
ldr r0, _08096F68 @ =gUnk_0812326C
ldrb r1, [r2, #0xd]
subs r1, #5
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_08096F62:
pop {pc}
.align 2, 0
_08096F64: .4byte gUnk_03003F80
_08096F68: .4byte gUnk_0812326C
thumb_func_start sub_08096F6C
sub_08096F6C: @ 0x08096F6C
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x72
ldrh r0, [r1]
cmp r0, #0
bne _08096F98
movs r0, #1
strh r0, [r1]
ldr r1, _08096FD8 @ =gLinkEntity
ldrb r0, [r1, #0x14]
ldr r2, _08096FDC @ =gUnk_08123274
adds r0, r0, r2
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r4, #0
bl sub_0806FA48
_08096F98:
adds r0, r4, #0
bl sub_08097008
bl sub_080896B0
cmp r0, #0
beq _08096FD4
ldr r2, _08096FE0 @ =gUnk_03003F80
movs r3, #0
movs r0, #0x10
strb r0, [r2, #0xc]
adds r1, r2, #0
adds r1, #0x38
movs r0, #0x20
strb r0, [r1]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldr r0, _08096FD8 @ =gLinkEntity
strh r3, [r0, #0x2c]
strh r3, [r0, #0x30]
ldrb r0, [r0, #0x14]
movs r1, #4
eors r0, r1
lsls r0, r0, #2
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_08097098
_08096FD4:
pop {r4, pc}
.align 2, 0
_08096FD8: .4byte gLinkEntity
_08096FDC: .4byte gUnk_08123274
_08096FE0: .4byte gUnk_03003F80
thumb_func_start sub_08096FE4
sub_08096FE4: @ 0x08096FE4
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
adds r0, #0x72
strh r2, [r0]
bx lr
thumb_func_start sub_08096FF0
sub_08096FF0: @ 0x08096FF0
push {r4, lr}
adds r4, r0, #0
bl sub_08097144
cmp r0, #0
beq _08097000
movs r0, #1
strb r0, [r4, #0xc]
_08097000:
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_122
nullsub_122: @ 0x08097004
bx lr
.align 2, 0
thumb_func_start sub_08097008
sub_08097008: @ 0x08097008
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
adds r4, r0, #0
ldr r0, _08097048 @ =0x00004036
cmp r4, r0
beq _08097070
adds r0, r4, #0
bl sub_08097074
cmp r0, #1
beq _0809704C
cmp r0, #2
beq _08097062
movs r0, #0xf
movs r1, #4
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809706A
adds r0, r5, #0
bl sub_0806FA24
b _0809706A
.align 2, 0
_08097048: .4byte 0x00004036
_0809704C:
adds r0, r4, #0
subs r0, #0x37
movs r1, #3
ands r0, r1
lsls r0, r0, #3
strb r0, [r5, #0x15]
adds r0, r5, #0
bl sub_08097098
movs r0, #1
b _08097072
_08097062:
adds r0, r5, #0
adds r0, #0x70
strh r4, [r0]
b _08097070
_0809706A:
adds r0, r5, #0
bl sub_0805E7BC
_08097070:
movs r0, #0
_08097072:
pop {r4, r5, pc}
thumb_func_start sub_08097074
sub_08097074: @ 0x08097074
push {lr}
adds r2, r0, #0
ldr r1, _0809707C @ =gUnk_0812327C
b _0809708C
.align 2, 0
_0809707C: .4byte gUnk_0812327C
_08097080:
ldrh r0, [r1]
cmp r0, r2
bne _0809708A
ldrh r0, [r1, #2]
b _08097094
_0809708A:
adds r1, #4
_0809708C:
ldrh r0, [r1]
cmp r0, #0
bne _08097080
movs r0, #0
_08097094:
pop {pc}
.align 2, 0
thumb_func_start sub_08097098
sub_08097098: @ 0x08097098
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r1, r6, #0
adds r1, #0x76
movs r0, #0x20
strh r0, [r1]
adds r0, #0xef
bl sub_08004488
adds r0, r6, #0
adds r0, #0x70
ldrh r0, [r0]
adds r5, r6, #0
adds r5, #0x74
ldrh r1, [r5]
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldr r1, _080970F0 @ =gUnk_080B4488
ldrb r0, [r6, #0x15]
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldrh r5, [r5]
adds r0, r0, r5
ldrb r1, [r4]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x79
beq _080970E4
cmp r0, #0x77
bne _080970EC
_080970E4:
adds r1, r6, #0
adds r1, #0x63
movs r0, #2
strb r0, [r1]
_080970EC:
pop {r4, r5, r6, pc}
.align 2, 0
_080970F0: .4byte gUnk_080B4488
thumb_func_start sub_080970F4
sub_080970F4: @ 0x080970F4
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _0809713C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r4, r6, #0
adds r4, #0x74
strh r1, [r4]
ldrh r0, [r4]
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x70
strh r0, [r1]
ldr r0, _08097140 @ =0x00004036
ldrh r1, [r4]
ldrb r2, [r5]
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0809713C: .4byte gUnk_03000BF0
_08097140: .4byte 0x00004036
thumb_func_start sub_08097144
sub_08097144: @ 0x08097144
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_0800445C
adds r0, r4, #0
bl sub_080002B8
cmp r0, #0x19
bne _08097164
adds r1, r4, #0
adds r1, #0x63
movs r0, #2
strb r0, [r1]
_08097164:
adds r1, r4, #0
adds r1, #0x76
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08097190
adds r0, r4, #0
bl sub_08097194
cmp r0, #0
bne _08097190
adds r1, r4, #0
adds r1, #0x63
movs r0, #4
strb r0, [r1]
adds r0, r4, #0
bl sub_080970F4
movs r0, #1
b _08097192
_08097190:
movs r0, #0
_08097192:
pop {r4, pc}
thumb_func_start sub_08097194
sub_08097194: @ 0x08097194
push {r4, lr}
adds r4, r0, #0
bl sub_0800442E
cmp r0, #0
beq _080971A4
movs r0, #1
b _080971DE
_080971A4:
adds r0, r4, #0
bl sub_080002A0
adds r1, r0, #0
subs r0, #0x71
cmp r0, #1
bls _080971B8
ldr r0, _080971D4 @ =0x00004020
cmp r1, r0
bne _080971DC
_080971B8:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
ldr r0, _080971D8 @ =0x0000010B
bl sub_08004488
adds r0, r4, #0
bl sub_080971E0
movs r0, #1
b _080971DE
.align 2, 0
_080971D4: .4byte 0x00004020
_080971D8: .4byte 0x0000010B
_080971DC:
movs r0, #0
_080971DE:
pop {r4, pc}
thumb_func_start sub_080971E0
sub_080971E0: @ 0x080971E0
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08097202
ldr r2, _0809727C @ =0xFFF80000
movs r3, #0x80
lsls r3, r3, #0xa
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
_08097202:
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08097222
movs r2, #0x80
lsls r2, r2, #0xc
movs r3, #0x80
lsls r3, r3, #0xa
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
_08097222:
ldrb r0, [r5, #0xa]
cmp r0, #1
beq _08097284
cmp r0, #1
ble _08097234
cmp r0, #2
beq _080972C4
cmp r0, #3
beq _08097304
_08097234:
movs r0, #4
strb r0, [r5, #0xc]
movs r0, #1
strb r0, [r5, #0x1e]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r2, _08097280 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r5, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
adds r0, #0x38
ldrb r2, [r0]
movs r0, #0
bl sub_0800015E
_08097274:
bl sub_0805E780
b _08097346
.align 2, 0
_0809727C: .4byte 0xFFF80000
_08097280: .4byte gUnk_03000BF0
_08097284:
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r3, _080972C0 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r5, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
adds r0, r4, #0
bl sub_08097348
cmp r0, #0
bne _08097274
adds r0, r5, #0
adds r0, #0x38
ldrb r2, [r0]
movs r0, #0x73
adds r1, r4, #0
bl sub_0807B314
b _08097274
.align 2, 0
_080972C0: .4byte gUnk_03000BF0
_080972C4:
movs r0, #0x2f
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08097274
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
adds r0, #8
strh r0, [r4, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
adds r1, #8
strh r1, [r4, #0x32]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r5, #0
adds r0, #0x84
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x86
strh r1, [r0]
b _08097274
_08097304:
movs r0, #0x2f
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08097342
ldrh r2, [r5, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
adds r0, #8
strh r0, [r4, #0x2e]
ldrh r0, [r5, #0x32]
ands r1, r0
adds r1, #8
strh r1, [r4, #0x32]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r5, #0
adds r0, #0x84
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x86
strh r1, [r0]
_08097342:
bl sub_0805E780
_08097346:
pop {r4, r5, pc}
thumb_func_start sub_08097348
sub_08097348: @ 0x08097348
push {lr}
adds r3, r0, #0
ldr r1, _08097360 @ =gUnk_02017660
movs r2, #0
_08097350:
ldrh r0, [r1, #4]
cmp r0, r3
bne _08097364
ldrb r0, [r1, #1]
bl sub_0807CBD0
b _0809736E
.align 2, 0
_08097360: .4byte gUnk_02017660
_08097364:
adds r2, #1
adds r1, #8
cmp r2, #7
bls _08097350
movs r0, #0
_0809736E:
pop {pc}
thumb_func_start sub_08097370
sub_08097370: @ 0x08097370
push {lr}
ldr r2, _08097384 @ =gUnk_08123298
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097384: .4byte gUnk_08123298
thumb_func_start sub_08097388
sub_08097388: @ 0x08097388
push {r4, lr}
adds r4, r0, #0
bl sub_0806FBD8
cmp r0, #0
beq _080973D4
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
ldr r1, _080973D8 @ =gUnk_081232A0
adds r0, r0, r1
ldrb r1, [r0]
strb r1, [r4, #0xb]
ldrb r2, [r0, #3]
adds r1, r4, #0
adds r1, #0x40
strb r2, [r1]
ldr r2, [r4, #0x48]
ldrb r1, [r0, #1]
strb r1, [r2, #6]
ldr r1, [r4, #0x48]
ldrb r0, [r0, #2]
strb r0, [r1, #7]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #0x91
strb r0, [r1]
subs r1, #4
movs r0, #2
strb r0, [r1]
movs r0, #1
strb r0, [r4, #0xc]
_080973D4:
pop {r4, pc}
.align 2, 0
_080973D8: .4byte gUnk_081232A0
thumb_func_start sub_080973DC
sub_080973DC: @ 0x080973DC
adds r0, #0x41
movs r1, #0
strb r1, [r0]
bx lr
thumb_func_start sub_080973E4
sub_080973E4: @ 0x080973E4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809741E
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
bl sub_08052660
cmp r0, #0
beq _0809741E
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2]
_0809741E:
pop {r4, pc}
thumb_func_start sub_08097420
sub_08097420: @ 0x08097420
push {lr}
ldr r2, _08097434 @ =gUnk_081232A4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097434: .4byte gUnk_081232A4
thumb_func_start sub_08097438
sub_08097438: @ 0x08097438
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xa]
adds r1, r0, #0
adds r1, #0xb
strb r1, [r4, #0x1e]
lsls r0, r0, #0x18
cmp r0, #0
beq _080974A2
adds r0, r4, #0
bl sub_08004168
ldr r1, _08097494 @ =gLinkEntity
ldrb r0, [r1, #0x1b]
movs r2, #0xc0
orrs r0, r2
strb r0, [r1, #0x1b]
adds r1, #0x29
ldrb r1, [r1]
movs r2, #7
movs r0, #7
ands r0, r1
cmp r0, #7
beq _08097498
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
adds r1, #1
adds r3, r4, #0
adds r3, #0x29
ands r1, r2
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _080974A2
.align 2, 0
_08097494: .4byte gLinkEntity
_08097498:
adds r1, r4, #0
adds r1, #0x29
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
_080974A2:
pop {r4, pc}
thumb_func_start sub_080974A4
sub_080974A4: @ 0x080974A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08097554
ldr r3, _08097540 @ =gLinkEntity
ldr r0, [r3, #0x34]
cmp r0, #0
bne _080974E8
ldr r2, _08097544 @ =gUnk_03003F80
ldrb r1, [r2, #0x1e]
movs r0, #0x40
ands r0, r1
cmp r0, #0
bne _080974D6
ldrb r0, [r2, #0x12]
cmp r0, #0x11
bne _080974D6
ldrb r0, [r3, #0xc]
cmp r0, #1
beq _080974FA
cmp r0, #0x18
beq _080974FA
cmp r0, #4
beq _080974FA
_080974D6:
ldr r1, _08097540 @ =gLinkEntity
ldr r0, [r1, #0x34]
cmp r0, #0
bne _080974E8
adds r0, r1, #0
movs r1, #0x52
movs r2, #0
bl CreateFX
_080974E8:
ldr r2, _08097540 @ =gLinkEntity
ldrb r1, [r2, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x1b]
bl sub_0805E780
_080974FA:
ldr r2, _08097540 @ =gLinkEntity
ldr r0, [r2, #0x2c]
str r0, [r4, #0x2c]
ldr r0, [r2, #0x30]
str r0, [r4, #0x30]
ldr r0, _08097544 @ =gUnk_03003F80
ldrb r0, [r0, #2]
cmp r0, #0
bne _08097584
ldrb r0, [r2, #0x1b]
movs r1, #0xc0
orrs r0, r1
strb r0, [r2, #0x1b]
adds r0, r2, #0
adds r0, #0x29
ldrb r1, [r0]
movs r2, #7
movs r0, #7
ands r0, r1
cmp r0, #7
beq _08097548
lsls r1, r1, #0x1d
lsrs r1, r1, #0x1d
adds r1, #1
adds r3, r4, #0
adds r3, #0x29
ands r1, r2
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _08097584
.align 2, 0
_08097540: .4byte gLinkEntity
_08097544: .4byte gUnk_03003F80
_08097548:
adds r1, r4, #0
adds r1, #0x29
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
b _08097584
_08097554:
ldr r2, _08097570 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #0x1e
beq _08097584
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
cmp r0, #1
bne _08097574
ldrb r0, [r2, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x80
b _0809757C
.align 2, 0
_08097570: .4byte gLinkEntity
_08097574:
ldrb r0, [r2, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
_0809757C:
orrs r1, r0
strb r1, [r2, #0x1b]
bl sub_0805E780
_08097584:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08097588
sub_08097588: @ 0x08097588
push {lr}
ldr r2, _0809759C @ =gUnk_081232AC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809759C: .4byte gUnk_081232AC
thumb_func_start sub_080975A0
sub_080975A0: @ 0x080975A0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _08097690 @ =gUnk_03000BF0
mov r8, r2
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r5, r0, #4
movs r6, #0x3f
ands r5, r6
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r2, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r5, r0
adds r0, r5, #0
subs r0, #0x41
adds r7, r4, #0
adds r7, #0x38
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x6a
strh r0, [r1]
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x6c
strh r0, [r1]
adds r0, r5, #0
subs r0, #0x3f
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x6e
strh r0, [r1]
subs r0, r5, #1
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x70
strh r0, [r1]
ldrb r1, [r7]
adds r0, r5, #0
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
adds r0, r5, #1
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x74
strh r0, [r1]
adds r0, r5, #0
adds r0, #0x3f
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x76
strh r0, [r1]
adds r0, r5, #0
adds r0, #0x40
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r7]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
adds r0, r4, #0
bl sub_0809798C
cmp r0, #0
beq _080976A2
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08097694
ldrh r0, [r4, #0x32]
subs r0, #0x16
b _08097698
.align 2, 0
_08097690: .4byte gUnk_03000BF0
_08097694:
ldrh r0, [r4, #0x32]
subs r0, #0x10
_08097698:
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_080977F4
b _08097722
_080976A2:
movs r0, #1
strb r0, [r4, #0xc]
movs r2, #0x2e
ldrsh r0, [r4, r2]
mov r2, r8
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r5, r0, #4
ands r5, r6
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r2, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r6
lsls r0, r0, #6
orrs r5, r0
adds r0, r4, #0
adds r0, #0x68
strh r5, [r0]
ldr r1, _080976FC @ =gUnk_081232DE
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r6, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08097704
ldr r0, _08097700 @ =gUnk_080FD578
str r0, [r4, #0x48]
subs r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0800015E
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0800015E
ldrh r0, [r4, #0x32]
adds r0, #2
strh r0, [r4, #0x32]
b _08097722
.align 2, 0
_080976FC: .4byte gUnk_081232DE
_08097700: .4byte gUnk_080FD578
_08097704:
ldr r0, _08097728 @ =gUnk_080FD570
str r0, [r4, #0x48]
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0800015E
ldrb r0, [r4, #0xb]
cmp r0, #2
bne _08097722
ldr r0, _0809772C @ =gUnk_081232C0
ldrb r2, [r7]
adds r1, r5, #0
bl sub_0801AF18
_08097722:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08097728: .4byte gUnk_080FD570
_0809772C: .4byte gUnk_081232C0
thumb_func_start sub_08097730
sub_08097730: @ 0x08097730
push {r4, lr}
adds r4, r0, #0
bl sub_0809785C
cmp r0, #0
beq _08097744
ldrb r1, [r4, #0xe]
adds r0, r4, #0
bl sub_0805E4E0
_08097744:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08097748
sub_08097748: @ 0x08097748
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xd]
cmp r0, #0
bne _08097774
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809779A
movs r0, #1
strb r0, [r2, #0xd]
movs r0, #0x78
strb r0, [r2, #0xf]
ldr r1, _08097770 @ =gUnk_03000BF0
str r2, [r1, #0x30]
movs r0, #2
strb r0, [r1, #0xe]
b _0809779A
.align 2, 0
_08097770: .4byte gUnk_03000BF0
_08097774:
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809779A
movs r0, #3
strb r0, [r2, #0xc]
movs r0, #0x60
strb r0, [r2, #0xe]
movs r0, #0x14
strb r0, [r2, #0xf]
adds r0, r2, #0
movs r1, #0x60
bl sub_0805E4E0
ldr r0, _0809779C @ =0x0000010F
bl sub_080A3268
_0809779A:
pop {pc}
.align 2, 0
_0809779C: .4byte 0x0000010F
thumb_func_start sub_080977A0
sub_080977A0: @ 0x080977A0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080977BC
subs r0, #1
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_0800445C
b _080977E4
_080977BC:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _080977C8
subs r0, #1
strb r0, [r4, #0xf]
b _080977E4
_080977C8:
movs r0, #0x72
bl sub_08004488
adds r0, r4, #0
bl sub_080977F4
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080977E4
ldr r0, _080977E8 @ =gUnk_03000BF0
ldr r1, _080977EC @ =gLinkEntity
str r1, [r0, #0x30]
movs r1, #4
strb r1, [r0, #0xe]
_080977E4:
pop {r4, pc}
.align 2, 0
_080977E8: .4byte gUnk_03000BF0
_080977EC: .4byte gLinkEntity
thumb_func_start nullsub_528
nullsub_528: @ 0x080977F0
bx lr
.align 2, 0
thumb_func_start sub_080977F4
sub_080977F4: @ 0x080977F4
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
movs r1, #0
movs r0, #4
strb r0, [r5, #0xc]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
movs r1, #0x2e
ldrsh r0, [r5, r1]
ldr r3, _08097854 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r2, #0x3f
ands r4, r2
movs r1, #0x32
ldrsh r0, [r5, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
ldr r7, _08097858 @ =0x00004022
adds r6, r5, #0
adds r6, #0x38
ldrb r2, [r6]
adds r0, r7, #0
adds r1, r4, #0
bl sub_0800015E
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08097844
subs r1, r4, #1
ldrb r2, [r6]
adds r0, r7, #0
bl sub_0800015E
_08097844:
adds r1, r5, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _08097852
bl sub_0807CCC8
_08097852:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08097854: .4byte gUnk_03000BF0
_08097858: .4byte 0x00004022
thumb_func_start sub_0809785C
sub_0809785C: @ 0x0809785C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r4, [r5, #0xa]
cmp r4, #0
beq _08097948
ldrb r0, [r5, #0xb]
cmp r0, #0
bne _0809786E
b _08097986
_0809786E:
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
adds r4, r5, #0
adds r4, #0x68
adds r6, r5, #0
adds r6, #0x38
cmp r0, #0
bne _08097892
ldrh r0, [r4]
ldrb r1, [r6]
bl sub_080002B0
ldr r1, _08097940 @ =0x0000403F
cmp r0, r1
bne _08097986
_08097892:
movs r1, #0
movs r0, #3
strb r0, [r5, #0xc]
movs r0, #0x40
strb r0, [r5, #0xe]
strb r1, [r5, #0xf]
strb r1, [r5, #0x15]
strh r0, [r5, #0x24]
ldrh r4, [r4]
adds r0, r5, #0
adds r0, #0x72
ldrh r0, [r0]
ldrb r2, [r6]
adds r1, r4, #0
bl sub_0807B9B8
ldrb r0, [r5, #0xb]
cmp r0, #2
bne _08097934
adds r0, r5, #0
adds r0, #0x6a
ldrh r0, [r0]
adds r1, r4, #0
subs r1, #0x41
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x6c
ldrh r0, [r0]
adds r1, r4, #0
subs r1, #0x40
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x6e
ldrh r0, [r0]
adds r1, r4, #0
subs r1, #0x3f
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x70
ldrh r0, [r0]
subs r1, r4, #1
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r4, #1
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x76
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x3f
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x78
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x40
ldrb r2, [r6]
bl sub_0807B9B8
adds r0, r5, #0
adds r0, #0x7a
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x41
ldrb r2, [r6]
bl sub_0807B9B8
_08097934:
ldr r0, _08097944 @ =0x0000010F
bl sub_080A3268
movs r0, #1
b _08097988
.align 2, 0
_08097940: .4byte 0x0000403F
_08097944: .4byte 0x0000010F
_08097948:
adds r0, r5, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08097986
movs r0, #2
strb r0, [r5, #0xc]
strb r4, [r5, #0xd]
movs r0, #0xf0
strb r0, [r5, #0xe]
movs r0, #0x3c
strb r0, [r5, #0xf]
strb r4, [r5, #0x15]
movs r0, #0x40
strh r0, [r5, #0x24]
adds r4, r5, #0
adds r4, #0x68
ldrh r0, [r4]
adds r5, #0x38
ldrb r1, [r5]
bl sub_0807BA8C
ldrh r0, [r4]
subs r0, #1
ldrb r1, [r5]
bl sub_0807BA8C
movs r0, #1
b _08097988
_08097986:
movs r0, #0
_08097988:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809798C
sub_0809798C: @ 0x0809798C
push {r4, lr}
adds r1, r0, #0
movs r4, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
beq _0809799E
ldrb r0, [r1, #0xb]
cmp r0, #0
beq _080979AE
_0809799E:
adds r0, r1, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080979AE
movs r4, #1
_080979AE:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080979B4
sub_080979B4: @ 0x080979B4
push {lr}
ldr r2, _080979C8 @ =gUnk_081232E4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080979C8: .4byte gUnk_081232E4
thumb_func_start sub_080979CC
sub_080979CC: @ 0x080979CC
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xa]
cmp r0, #3
bne _08097A20
movs r0, #0
strb r0, [r5, #0x1e]
ldr r0, _08097A18 @ =gUnk_081232FE
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08097A1C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0801AF18
b _08097A4E
.align 2, 0
_08097A18: .4byte gUnk_081232FE
_08097A1C: .4byte gUnk_03000BF0
_08097A20:
strb r0, [r5, #0x1e]
ldr r0, _08097A50 @ =gUnk_081232EC
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08097A54 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0801AF18
_08097A4E:
pop {r4, r5, r6, pc}
.align 2, 0
_08097A50: .4byte gUnk_081232EC
_08097A54: .4byte gUnk_03000BF0
thumb_func_start nullsub_529
nullsub_529: @ 0x08097A58
bx lr
.align 2, 0
thumb_func_start sub_08097A5C
sub_08097A5C: @ 0x08097A5C
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08097AAC
movs r4, #1
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0x5a
strb r0, [r5, #0xe]
bl sub_08000E50
strb r0, [r5, #0xf]
lsrs r0, r0, #0x10
movs r1, #3
ands r0, r1
strb r0, [r5, #0x1e]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r4
strb r0, [r5, #0x18]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r5, #0xb]
bl sub_0804B128
str r0, [r5, #0x54]
adds r1, r5, #0
adds r1, #0x54
adds r2, r5, #0
adds r2, #0x70
adds r0, r5, #0
bl sub_080A2CC0
_08097AAC:
adds r0, r5, #0
bl sub_08097ADC
adds r1, r0, #0
adds r0, r5, #0
bl sub_080A2BE4
adds r0, r5, #0
bl sub_08097B24
adds r2, r5, #0
adds r2, #0x70
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _08097ADA
adds r1, r5, #0
adds r1, #0x54
adds r0, r5, #0
bl sub_080A2CC0
_08097ADA:
pop {r4, r5, pc}
thumb_func_start sub_08097ADC
sub_08097ADC: @ 0x08097ADC
push {r4, r5, lr}
adds r2, r0, #0
ldr r5, _08097B18 @ =gUnk_03003F80
ldr r0, [r5, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08097B20
ldr r4, _08097B1C @ =gLinkEntity
adds r0, r2, #0
adds r1, r4, #0
movs r2, #8
movs r3, #8
bl sub_080041A0
cmp r0, #0
beq _08097B20
bl sub_08079F8C
cmp r0, #0
beq _08097B20
movs r0, #1
strb r0, [r5, #0x14]
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08097B20
movs r0, #1
b _08097B22
.align 2, 0
_08097B18: .4byte gUnk_03003F80
_08097B1C: .4byte gLinkEntity
_08097B20:
movs r0, #0
_08097B22:
pop {r4, r5, pc}
thumb_func_start sub_08097B24
sub_08097B24: @ 0x08097B24
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
movs r4, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _08097B44
movs r0, #0x5a
strb r0, [r3, #0xe]
ldrb r0, [r3, #0x1e]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r3, #0x1e]
_08097B44:
ldr r2, _08097B68 @ =gUnk_08123318
ldrb r0, [r3, #0xf]
adds r0, #1
strb r0, [r3, #0xf]
ands r0, r4
lsrs r0, r0, #5
movs r1, #7
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r2, [r0]
adds r0, r3, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
pop {r4, pc}
.align 2, 0
_08097B68: .4byte gUnk_08123318
thumb_func_start sub_08097B6C
sub_08097B6C: @ 0x08097B6C
push {lr}
ldr r2, _08097B80 @ =gUnk_08123330
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097B80: .4byte gUnk_08123330
thumb_func_start sub_08097B84
sub_08097B84: @ 0x08097B84
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r0, _08097BCC @ =gUnk_08123328
str r0, [r4, #0x48]
adds r2, #0x5d
ldrh r1, [r2]
ldr r0, _08097BD0 @ =0x0000FFFF
cmp r1, r0
beq _08097BB0
adds r0, r1, #0
bl sub_0807CBE4
cmp r0, #0
beq _08097BD4
_08097BB0:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08097CFC
b _08097BD8
.align 2, 0
_08097BCC: .4byte gUnk_08123328
_08097BD0: .4byte 0x0000FFFF
_08097BD4:
bl sub_0805BC4C
_08097BD8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08097BDC
sub_08097BDC: @ 0x08097BDC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08097C10
movs r0, #1
bl sub_08078A90
ldr r0, _08097C14 @ =gUnk_02034490
movs r1, #1
strb r1, [r0]
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
adds r0, r4, #0
bl sub_08097CB0
cmp r0, #0
bne _08097C10
adds r0, r4, #0
bl sub_08097CB4
_08097C10:
pop {r4, pc}
.align 2, 0
_08097C14: .4byte gUnk_02034490
thumb_func_start sub_08097C18
sub_08097C18: @ 0x08097C18
bx lr
.align 2, 0
thumb_func_start sub_08097C1C
sub_08097C1C: @ 0x08097C1C
bx lr
.align 2, 0
thumb_func_start sub_08097C20
sub_08097C20: @ 0x08097C20
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x1e
bl sub_0805E510
adds r0, r4, #0
bl sub_0800445C
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_080577AC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _08097CA6
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
ands r1, r0
ldr r6, _08097CA8 @ =gUnk_03000F50
movs r0, #0x10
subs r0, r0, r1
lsls r0, r0, #8
orrs r0, r1
adds r1, r6, #0
adds r1, #0x68
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x10
bne _08097CA6
movs r0, #0
bl sub_08078A90
ldr r1, _08097CAC @ =gUnk_02034490
movs r0, #0
strb r0, [r1]
adds r0, r6, #0
adds r0, #0x66
strh r5, [r0]
adds r0, r4, #0
bl sub_08097CFC
movs r0, #4
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x19]
subs r0, #0x11
ands r0, r1
strb r0, [r4, #0x19]
movs r0, #0x72
bl sub_080A3268
movs r0, #0x63
bl sub_0807CD04
_08097CA6:
pop {r4, r5, r6, pc}
.align 2, 0
_08097CA8: .4byte gUnk_03000F50
_08097CAC: .4byte gUnk_02034490
thumb_func_start sub_08097CB0
sub_08097CB0: @ 0x08097CB0
movs r0, #0
bx lr
thumb_func_start sub_08097CB4
sub_08097CB4: @ 0x08097CB4
push {lr}
movs r3, #0
movs r1, #3
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #7
ands r1, r2
movs r2, #1
orrs r1, r2
strb r1, [r0, #0x18]
ldrb r2, [r0, #0x19]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r2
movs r2, #4
orrs r1, r2
strb r1, [r0, #0x19]
movs r1, #0x1e
strb r1, [r0, #0xe]
strb r3, [r0, #0xf]
ldr r1, _08097CF8 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xf4
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x68
adds r0, #0xc0
strh r0, [r1]
movs r0, #0xa5
lsls r0, r0, #1
bl sub_080A3268
pop {pc}
.align 2, 0
_08097CF8: .4byte gUnk_03000F50
thumb_func_start sub_08097CFC
sub_08097CFC: @ 0x08097CFC
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrh r1, [r5, #0x2e]
movs r0, #0xf
ands r0, r1
cmp r0, #0
bne _08097D40
ldr r0, _08097D38 @ =gUnk_0812336A
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08097D3C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0801AF18
b _08097D6C
.align 2, 0
_08097D38: .4byte gUnk_0812336A
_08097D3C: .4byte gUnk_03000BF0
_08097D40:
ldr r0, _08097D70 @ =gUnk_08123344
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _08097D74 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0801AF18
_08097D6C:
pop {r4, r5, r6, pc}
.align 2, 0
_08097D70: .4byte gUnk_08123344
_08097D74: .4byte gUnk_03000BF0
thumb_func_start sub_08097D78
sub_08097D78: @ 0x08097D78
push {lr}
ldr r2, _08097D8C @ =gUnk_08123384
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097D8C: .4byte gUnk_08123384
thumb_func_start sub_08097D90
sub_08097D90: @ 0x08097D90
push {r4, lr}
adds r4, r0, #0
movs r3, #1
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x38
strb r2, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08097DCC
sub_08097DCC: @ 0x08097DCC
push {lr}
bl sub_080042B8
pop {pc}
thumb_func_start sub_08097DD4
sub_08097DD4: @ 0x08097DD4
push {lr}
ldr r2, _08097DE8 @ =gUnk_081233B8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08097DE8: .4byte gUnk_081233B8
thumb_func_start sub_08097DEC
sub_08097DEC: @ 0x08097DEC
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08016A04
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _08097E46
cmp r0, #1
bgt _08097E0A
cmp r0, #0
beq _08097E1C
b _08097EA2
_08097E0A:
cmp r0, #3
bgt _08097EA2
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
b _08097E9C
_08097E1C:
ldrh r2, [r4, #0x2e]
movs r1, #0x10
rsbs r1, r1, #0
adds r0, r1, #0
ands r0, r2
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
ands r1, r0
strh r1, [r4, #0x32]
adds r0, r4, #0
bl sub_08097EB8
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08097EA2
adds r1, r0, #0
adds r1, #0xb
adds r0, r4, #0
bl sub_0801D2B4
b _08097EA2
_08097E46:
ldrb r0, [r4, #0xb]
strb r0, [r4, #0x1e]
lsls r0, r0, #0x18
lsrs r0, r0, #0x19
cmp r0, #1
beq _08097E76
cmp r0, #1
bgt _08097E5C
cmp r0, #0
beq _08097E68
b _08097E9C
_08097E5C:
cmp r0, #2
bne _08097E9C
adds r0, r4, #0
movs r1, #0xd
bl sub_0801D2B4
_08097E68:
ldrb r0, [r4, #0x1b]
movs r1, #0x3f
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x1b]
b _08097E9C
_08097E76:
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x1b]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #0xb
bl sub_0801D2B4
_08097E9C:
adds r0, r4, #0
bl sub_08097F34
_08097EA2:
pop {r4, pc}
thumb_func_start sub_08097EA4
sub_08097EA4: @ 0x08097EA4
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0
beq _08097EB4
adds r0, r1, #0
bl sub_08097F10
_08097EB4:
pop {pc}
.align 2, 0
thumb_func_start sub_08097EB8
sub_08097EB8: @ 0x08097EB8
push {r4, r5, r6, lr}
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r3, _08097F04 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r5, r1, #4
movs r2, #0x3f
ands r5, r2
movs r1, #0x32
ldrsh r0, [r0, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
ldr r4, _08097F08 @ =gUnk_081233C0
movs r2, #0
ldrsh r0, [r4, r2]
ldr r1, _08097F0C @ =0x00007FFF
cmp r0, r1
beq _08097F00
adds r6, r1, #0
_08097EE8:
ldrh r0, [r4, #2]
movs r2, #0
ldrsh r1, [r4, r2]
adds r1, r5, r1
movs r2, #1
bl sub_0800015E
adds r4, #4
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, r6
bne _08097EE8
_08097F00:
pop {r4, r5, r6, pc}
.align 2, 0
_08097F04: .4byte gUnk_03000BF0
_08097F08: .4byte gUnk_081233C0
_08097F0C: .4byte 0x00007FFF
thumb_func_start sub_08097F10
sub_08097F10: @ 0x08097F10
push {r4, lr}
adds r4, r0, #0
ldr r0, _08097F30 @ =gUnk_03000BF0
movs r2, #0xc
ldrsh r1, [r0, r2]
ldrh r0, [r0, #8]
subs r1, r1, r0
adds r0, r4, #0
bl sub_08097F60
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
subs r1, r1, r0
strh r1, [r4, #0x32]
pop {r4, pc}
.align 2, 0
_08097F30: .4byte gUnk_03000BF0
thumb_func_start sub_08097F34
sub_08097F34: @ 0x08097F34
push {r4, lr}
adds r4, r0, #0
movs r0, #0x32
ldrsh r1, [r4, r0]
ldr r0, _08097F5C @ =gUnk_03000BF0
ldrh r0, [r0, #8]
subs r1, r1, r0
adds r0, r4, #0
bl sub_08097F60
ldrh r1, [r4, #0x32]
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
adds r0, r4, #0
bl sub_08097F10
pop {r4, pc}
.align 2, 0
_08097F5C: .4byte gUnk_03000BF0
thumb_func_start sub_08097F60
sub_08097F60: @ 0x08097F60
push {lr}
ldrb r2, [r0, #0xa]
cmp r2, #1
bne _08097F74
ldrb r0, [r0, #0x1e]
lsrs r0, r0, #1
cmp r0, #1
bne _08097F7C
asrs r1, r1, #3
b _08097F7E
_08097F74:
cmp r2, #1
blt _08097F7E
cmp r2, #3
bgt _08097F7E
_08097F7C:
asrs r1, r1, #1
_08097F7E:
adds r0, r1, #0
pop {pc}
.align 2, 0
thumb_func_start sub_08097F84
sub_08097F84: @ 0x08097F84
push {r4, lr}
adds r4, r0, #0
ldr r0, _08097FAC @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08097F98
bl sub_0805E780
_08097F98:
ldr r0, _08097FB0 @ =gUnk_08123410
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_08097FAC: .4byte gUnk_03003F80
_08097FB0: .4byte gUnk_08123410
thumb_func_start sub_08097FB4
sub_08097FB4: @ 0x08097FB4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xc]
movs r2, #0
strh r1, [r4, #0x24]
str r1, [r4, #0x6c]
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0x90
lsls r0, r0, #5
strh r0, [r1]
strb r2, [r4, #0xe]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldr r1, _08098014 @ =gUnk_0812341C
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #6
str r0, [r4, #0x74]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08098018
adds r1, r4, #0
adds r1, #0x7e
movs r0, #0x40
strh r0, [r1]
adds r0, r4, #0
movs r1, #1
movs r2, #0
bl sub_080AE008
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080042AC
b _08098032
.align 2, 0
_08098014: .4byte gUnk_0812341C
_08098018:
ldr r0, [r4, #0x50]
adds r0, #0x60
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x60
strh r1, [r0]
ldr r2, [r4, #0x50]
ldrb r1, [r4, #0xa]
movs r0, #0xd
muls r0, r1, r0
ldrb r2, [r2, #0x1e]
adds r0, r0, r2
strb r0, [r4, #0x1e]
_08098032:
adds r0, r4, #0
bl sub_08098130
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809803C
sub_0809803C: @ 0x0809803C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r5, [r4, #0xa]
cmp r5, #0
bne _08098070
bl sub_080042B8
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08098082
ldr r0, _0809806C @ =gLinkEntity
strb r5, [r0, #0xf]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
movs r0, #0xbc
lsls r0, r0, #1
bl sub_080A3268
b _08098082
.align 2, 0
_0809806C: .4byte gLinkEntity
_08098070:
ldr r2, [r4, #0x50]
ldrb r1, [r4, #0xa]
movs r0, #0xd
muls r0, r1, r0
ldrb r1, [r2, #0x1e]
adds r0, r0, r1
strb r0, [r4, #0x1e]
ldrb r0, [r2, #0xc]
strb r0, [r4, #0xc]
_08098082:
pop {r4, r5, pc}
thumb_func_start sub_08098084
sub_08098084: @ 0x08098084
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x6c]
movs r0, #0xa0
lsls r0, r0, #0xd
cmp r1, r0
bls _080980A8
ldr r0, _080980A4 @ =gUnk_03003F80
ldr r1, [r0, #0x30]
movs r2, #0x80
orrs r1, r2
str r1, [r0, #0x30]
bl sub_0805E780
b _0809812E
.align 2, 0
_080980A4: .4byte gUnk_03003F80
_080980A8:
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080980D8
adds r0, r4, #0
bl sub_080042B8
adds r2, r4, #0
adds r2, #0x7e
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
ldr r1, _080980D4 @ =0xFFFF0000
cmp r0, r1
bne _080980E6
movs r0, #0x40
strh r0, [r2]
movs r0, #0xbc
lsls r0, r0, #1
bl sub_080A3268
b _080980E6
.align 2, 0
_080980D4: .4byte 0xFFFF0000
_080980D8:
ldr r2, [r4, #0x50]
ldrb r1, [r4, #0xa]
movs r0, #0xd
muls r0, r1, r0
ldrb r2, [r2, #0x1e]
adds r0, r0, r2
strb r0, [r4, #0x1e]
_080980E6:
ldr r0, [r4, #0x6c]
movs r1, #0xa0
lsls r1, r1, #5
adds r0, r0, r1
str r0, [r4, #0x6c]
ldr r0, [r4, #0x70]
ldr r1, [r4, #0x74]
adds r0, r0, r1
str r0, [r4, #0x70]
adds r2, r4, #0
adds r2, #0x72
ldrh r1, [r2]
movs r0, #0x1f
ands r0, r1
strh r0, [r2]
ldr r0, [r4, #0x74]
movs r1, #0xa0
lsls r1, r1, #1
adds r0, r0, r1
str r0, [r4, #0x74]
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _08098128
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xe]
movs r1, #1
eors r0, r1
strb r0, [r4, #0xe]
_08098128:
adds r0, r4, #0
bl sub_08098130
_0809812E:
pop {r4, pc}
thumb_func_start sub_08098130
sub_08098130: @ 0x08098130
push {r4, lr}
adds r4, r0, #0
ldr r0, _08098160 @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strb r0, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x7a
ldrh r0, [r0]
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0806F69C
ldr r0, [r4, #0x30]
ldr r1, _08098164 @ =0xFFEC0000
adds r0, r0, r1
ldr r1, [r4, #0x6c]
adds r0, r0, r1
str r0, [r4, #0x30]
pop {r4, pc}
.align 2, 0
_08098160: .4byte gLinkEntity
_08098164: .4byte 0xFFEC0000
thumb_func_start sub_08098168
sub_08098168: @ 0x08098168
push {r4, r5, lr}
adds r4, r0, #0
ldrb r5, [r4, #0xc]
cmp r5, #0
bne _080981DA
movs r2, #1
movs r3, #1
strb r3, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r1, [r4, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r4, #0x19]
strb r3, [r4, #0xe]
bl sub_08000E50
movs r1, #0xf
ands r0, r1
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x68
strb r5, [r0]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A30
ldr r1, _080981CC @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r3, #0
movs r0, #0xbd
lsls r0, r0, #6
strh r0, [r2]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080981D4
adds r1, #0x68
ldr r0, _080981D0 @ =0x0000060A
b _080981D8
.align 2, 0
_080981CC: .4byte gUnk_03000F50
_080981D0: .4byte 0x0000060A
_080981D4:
adds r1, #0x68
ldr r0, _08098208 @ =0x00000808
_080981D8:
strh r0, [r1]
_080981DA:
ldrb r0, [r4, #0xa]
adds r3, r4, #0
adds r3, #0x68
cmp r0, #0
beq _08098222
ldr r0, _0809820C @ =gLinkEntity
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r0, _08098210 @ =gUnk_03000BF0
ldrh r0, [r0, #6]
subs r1, r1, r0
movs r0, #0xf8
lsls r0, r0, #1
cmp r1, r0
ble _08098214
ldrb r1, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0x3f
bgt _08098222
adds r0, r1, #1
b _08098220
.align 2, 0
_08098208: .4byte 0x00000808
_0809820C: .4byte gLinkEntity
_08098210: .4byte gUnk_03000BF0
_08098214:
ldrb r1, [r3]
movs r0, #0
ldrsb r0, [r3, r0]
cmp r0, #0
ble _08098222
subs r0, r1, #1
_08098220:
strb r0, [r3]
_08098222:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809823C
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r0, #1
movs r1, #0xf
ands r0, r1
strb r0, [r4, #0xf]
_0809823C:
ldr r1, _0809825C @ =gUnk_08123484
ldrb r0, [r4, #0xf]
adds r0, r0, r1
ldrb r0, [r0]
adds r2, r4, #0
adds r2, #0x62
strb r0, [r2]
ldrb r0, [r4, #0xf]
adds r0, r0, r1
ldrb r1, [r3]
ldrb r0, [r0]
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x63
strb r1, [r0]
pop {r4, r5, pc}
.align 2, 0
_0809825C: .4byte gUnk_08123484
thumb_func_start sub_08098260
sub_08098260: @ 0x08098260
push {lr}
ldr r2, _08098274 @ =gUnk_08123494
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098274: .4byte gUnk_08123494
thumb_func_start sub_08098278
sub_08098278: @ 0x08098278
push {lr}
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
movs r1, #8
rsbs r1, r1, #0
ands r1, r2
movs r2, #5
orrs r1, r2
strb r1, [r3]
bl sub_08098340
pop {pc}
.align 2, 0
thumb_func_start sub_08098294
sub_08098294: @ 0x08098294
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08098418
cmp r0, #0
beq _080982FA
movs r5, #0
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x62
strb r5, [r0]
adds r0, #1
strb r5, [r0]
adds r0, #0xf
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x70
ldrh r1, [r1]
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
movs r0, #0xb5
lsls r0, r0, #1
bl sub_08004488
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
bl sub_08079F8C
cmp r0, #0
beq _080982FA
ldr r2, _080982FC @ =gUnk_03003F80
movs r0, #0x90
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldr r1, _08098300 @ =gLinkEntity
strh r5, [r1, #0x2c]
strh r5, [r1, #0x30]
ldrb r0, [r1, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
_080982FA:
pop {r4, r5, pc}
.align 2, 0
_080982FC: .4byte gUnk_03003F80
_08098300: .4byte gLinkEntity
thumb_func_start sub_08098304
sub_08098304: @ 0x08098304
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809833C
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0809832C
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _08098336
_0809832C:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
_08098336:
adds r0, r4, #0
bl sub_08098340
_0809833C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08098340
sub_08098340: @ 0x08098340
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x74
movs r1, #0x3c
strh r1, [r2]
bl sub_08098354
pop {pc}
thumb_func_start sub_08098354
sub_08098354: @ 0x08098354
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080983BC
strb r0, [r6, #0xb]
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r1, _080983B4 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r1, [r1, #8]
adds r1, #0x10
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r2, r0
adds r4, r6, #0
adds r4, #0x70
strh r2, [r4]
ldrh r0, [r4]
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x72
strh r0, [r1]
ldr r0, _080983B8 @ =0x00004053
ldrh r1, [r4]
ldrb r2, [r5]
bl sub_0800015E
adds r0, r6, #0
movs r1, #1
bl sub_08004260
b _0809840C
.align 2, 0
_080983B4: .4byte gUnk_03000BF0
_080983B8: .4byte 0x00004053
_080983BC:
movs r0, #1
strb r0, [r6, #0xb]
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r1, _08098410 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0x10
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r2, r0
adds r4, r6, #0
adds r4, #0x70
strh r2, [r4]
ldrh r0, [r4]
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x72
strh r0, [r1]
ldr r0, _08098414 @ =0x00004052
ldrh r1, [r4]
ldrb r2, [r5]
bl sub_0800015E
adds r0, r6, #0
movs r1, #0
bl sub_08004260
_0809840C:
pop {r4, r5, r6, pc}
.align 2, 0
_08098410: .4byte gUnk_03000BF0
_08098414: .4byte 0x00004052
thumb_func_start sub_08098418
sub_08098418: @ 0x08098418
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r4, #0
adds r6, #0x70
ldrh r0, [r6]
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
ldr r1, _08098448 @ =0x00004054
cmp r0, r1
bne _0809846C
adds r1, r4, #0
adds r1, #0x74
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809844C
movs r0, #1
b _08098482
.align 2, 0
_08098448: .4byte 0x00004054
_0809844C:
adds r0, r4, #0
bl sub_08098484
ldr r1, _08098468 @ =gUnk_081234A0
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldrh r1, [r6]
ldrb r2, [r5]
bl sub_0800015E
b _08098480
.align 2, 0
_08098468: .4byte gUnk_081234A0
_0809846C:
adds r1, r4, #0
adds r1, #0x74
movs r2, #0
movs r0, #0x3c
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x62
strb r2, [r0]
adds r0, #1
strb r2, [r0]
_08098480:
movs r0, #0
_08098482:
pop {r4, r5, r6, pc}
thumb_func_start sub_08098484
sub_08098484: @ 0x08098484
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xb]
ldr r4, _080984C4 @ =gUnk_081234AC
cmp r0, #0
bne _08098492
ldr r4, _080984C8 @ =gUnk_081234A4
_08098492:
adds r2, r3, #0
adds r2, #0x74
ldrh r0, [r2]
lsrs r0, r0, #2
movs r1, #6
ands r0, r1
adds r4, r4, r0
ldrb r0, [r4]
adds r1, r3, #0
adds r1, #0x62
strb r0, [r1]
ldrb r1, [r4, #1]
adds r0, r3, #0
adds r0, #0x63
strb r1, [r0]
ldrh r1, [r2]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _080984C2
movs r0, #0x82
lsls r0, r0, #1
bl sub_08004488
_080984C2:
pop {r4, pc}
.align 2, 0
_080984C4: .4byte gUnk_081234AC
_080984C8: .4byte gUnk_081234A4
thumb_func_start sub_080984CC
sub_080984CC: @ 0x080984CC
push {r4, lr}
adds r4, r0, #0
ldr r1, _080984E8 @ =gUnk_08123504
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0800445C
pop {r4, pc}
.align 2, 0
_080984E8: .4byte gUnk_08123504
thumb_func_start sub_080984EC
sub_080984EC: @ 0x080984EC
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
ldr r2, _08098528 @ =gUnk_081234EC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
str r1, [r0, #0x48]
ldrb r0, [r0, #0xb]
cmp r0, #1
bne _08098524
ldr r0, _0809852C @ =0x00004024
movs r1, #0x82
lsls r1, r1, #3
movs r2, #1
bl sub_0800015E
ldr r0, _08098530 @ =0x00004026
ldr r1, _08098534 @ =0x00000411
movs r2, #1
bl sub_0800015E
ldr r0, _08098538 @ =0x00004025
ldr r1, _0809853C @ =0x00000412
movs r2, #1
bl sub_0800015E
_08098524:
pop {pc}
.align 2, 0
_08098528: .4byte gUnk_081234EC
_0809852C: .4byte 0x00004024
_08098530: .4byte 0x00004026
_08098534: .4byte 0x00000411
_08098538: .4byte 0x00004025
_0809853C: .4byte 0x00000412
thumb_func_start nullsub_532
nullsub_532: @ 0x08098540
bx lr
.align 2, 0
thumb_func_start sub_08098544
sub_08098544: @ 0x08098544
push {lr}
ldr r2, _08098558 @ =gUnk_0812350C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098558: .4byte gUnk_0812350C
thumb_func_start sub_0809855C
sub_0809855C: @ 0x0809855C
push {r4, r5, lr}
adds r4, r0, #0
movs r3, #0
movs r5, #1
strb r5, [r4, #0xc]
ldrb r0, [r4, #0x10]
movs r2, #0x80
orrs r0, r2
strb r0, [r4, #0x10]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r1, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x19]
strb r3, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x6e
strb r0, [r1]
subs r1, #4
movs r0, #0x86
strb r0, [r1]
strb r3, [r4, #0x16]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080985AC
movs r0, #2
strb r0, [r4, #0x1c]
b _080985AE
_080985AC:
strb r5, [r4, #0x1c]
_080985AE:
ldr r1, [r4, #0x50]
adds r0, r4, #0
bl sub_0806FAD8
adds r0, r4, #0
bl sub_08098918
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080985C0
sub_080985C0: @ 0x080985C0
push {r4, lr}
adds r4, r0, #0
bl sub_080989E4
cmp r0, #0
bne _080985CE
b _080986FC
_080985CE:
ldrb r0, [r0, #0xc]
cmp r0, #4
bls _080985D6
b _080986E6
_080985D6:
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _080985E6
b _080986EE
_080985E6:
movs r0, #0x3f
ands r0, r1
subs r0, #4
cmp r0, #0x1c
bls _080985F2
b _08098702
_080985F2:
lsls r0, r0, #2
ldr r1, _080985FC @ =_08098600
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080985FC: .4byte _08098600
_08098600: @ jump table
.4byte _080986C4 @ case 0
.4byte _080986C4 @ case 1
.4byte _080986C4 @ case 2
.4byte _08098702 @ case 3
.4byte _080986C4 @ case 4
.4byte _080986C4 @ case 5
.4byte _080986C4 @ case 6
.4byte _080986C4 @ case 7
.4byte _080986C4 @ case 8
.4byte _080986C4 @ case 9
.4byte _08098702 @ case 10
.4byte _0809867E @ case 11
.4byte _080986C4 @ case 12
.4byte _080986C4 @ case 13
.4byte _080986C4 @ case 14
.4byte _08098674 @ case 15
.4byte _080986E0 @ case 16
.4byte _08098702 @ case 17
.4byte _080986E0 @ case 18
.4byte _08098702 @ case 19
.4byte _080986C4 @ case 20
.4byte _080986C4 @ case 21
.4byte _080986C4 @ case 22
.4byte _08098702 @ case 23
.4byte _08098702 @ case 24
.4byte _0809867E @ case 25
.4byte _08098702 @ case 26
.4byte _08098702 @ case 27
.4byte _080986E0 @ case 28
_08098674:
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
b _08098702
_0809867E:
movs r2, #0
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0xa8
lsls r0, r0, #0xa
str r0, [r4, #0x20]
adds r0, r4, #0
adds r0, #0x63
strb r2, [r0]
ldrb r1, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r4, #0x18]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x18
orrs r0, r1
strb r0, [r3]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldr r0, [r4, #0x50]
str r2, [r0, #0x54]
adds r0, r4, #0
bl sub_080988E8
b _08098702
_080986C4:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080986E6
ldr r0, _080986DC @ =gUnk_03003F80
adds r0, #0xac
ldrh r1, [r0]
movs r0, #8
ands r0, r1
cmp r0, #0
beq _08098702
b _080986E6
.align 2, 0
_080986DC: .4byte gUnk_03003F80
_080986E0:
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08098702
_080986E6:
adds r0, r4, #0
bl sub_080989C0
b _08098702
_080986EE:
adds r0, r4, #0
bl sub_08098918
adds r0, r4, #0
bl sub_08078930
b _08098702
_080986FC:
adds r0, r4, #0
bl sub_080989C0
_08098702:
pop {r4, pc}
thumb_func_start sub_08098704
sub_08098704: @ 0x08098704
push {lr}
ldr r2, _08098718 @ =gUnk_08123524
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098718: .4byte gUnk_08123524
thumb_func_start sub_0809871C
sub_0809871C: @ 0x0809871C
adds r3, r0, #0
ldrb r1, [r3, #0x10]
movs r0, #0x80
movs r2, #0
orrs r0, r1
strb r0, [r3, #0x10]
adds r1, r3, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #3
movs r0, #1
strb r0, [r1]
ldr r0, _08098754 @ =gLinkEntity
adds r0, #0x3b
ldrb r0, [r0]
subs r1, #4
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x63
strb r2, [r0]
ldr r0, [r3, #0x50]
str r2, [r0, #0x54]
ldrb r0, [r3, #0xd]
adds r0, #1
strb r0, [r3, #0xd]
bx lr
.align 2, 0
_08098754: .4byte gLinkEntity
thumb_func_start nullsub_533
nullsub_533: @ 0x08098758
bx lr
.align 2, 0
thumb_func_start sub_0809875C
sub_0809875C: @ 0x0809875C
adds r0, #0x29
ldrb r2, [r0]
movs r1, #0x39
rsbs r1, r1, #0
ands r1, r2
movs r2, #0x18
orrs r1, r2
strb r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_08098770
sub_08098770: @ 0x08098770
push {r4, lr}
adds r4, r0, #0
bl sub_080043E8
cmp r0, #2
beq _0809878C
cmp r0, #2
bhi _08098786
cmp r0, #1
beq _08098792
b _080987A4
_08098786:
cmp r0, #3
beq _08098798
b _080987A4
_0809878C:
adds r0, r4, #0
movs r1, #0xb
b _0809879C
_08098792:
adds r0, r4, #0
movs r1, #0
b _0809879C
_08098798:
adds r0, r4, #0
movs r1, #0xc
_0809879C:
movs r2, #0
bl CreateFX
b _080987AC
_080987A4:
adds r0, r4, #0
bl sub_080989C0
b _080987B0
_080987AC:
bl sub_0805E780
_080987B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080987B4
sub_080987B4: @ 0x080987B4
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_080987BC
sub_080987BC: @ 0x080987BC
push {lr}
adds r1, r0, #0
ldr r0, _080987D0 @ =gUnk_03003F80
ldrb r0, [r0, #5]
cmp r0, #0
bne _080987CE
adds r0, r1, #0
bl sub_080987D4
_080987CE:
pop {pc}
.align 2, 0
_080987D0: .4byte gUnk_03003F80
thumb_func_start sub_080987D4
sub_080987D4: @ 0x080987D4
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
bx lr
.align 2, 0
thumb_func_start sub_080987E0
sub_080987E0: @ 0x080987E0
push {r4, lr}
adds r4, r0, #0
ldr r1, _0809880C @ =gUnk_08123540
ldrb r0, [r4, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldrb r0, [r4, #0xd]
cmp r0, #1
bhi _0809880A
adds r0, r4, #0
bl sub_080989E4
cmp r0, #0
bne _0809880A
adds r0, r4, #0
bl sub_080989C0
_0809880A:
pop {r4, pc}
.align 2, 0
_0809880C: .4byte gUnk_08123540
thumb_func_start sub_08098810
sub_08098810: @ 0x08098810
movs r2, #0
movs r1, #1
strb r1, [r0, #0xd]
movs r1, #0x30
strb r1, [r0, #0x1d]
strb r2, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_08098820
sub_08098820: @ 0x08098820
push {lr}
adds r2, r0, #0
ldr r0, _0809884C @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0809883E
adds r0, r2, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08098850
_0809883E:
adds r1, r2, #0
adds r1, #0x62
movs r0, #0
strb r0, [r1]
movs r0, #1
strb r0, [r2, #0xc]
b _08098856
.align 2, 0
_0809884C: .4byte gUnk_03003F80
_08098850:
adds r0, r2, #0
bl sub_0806F4E8
_08098856:
pop {pc}
thumb_func_start sub_08098858
sub_08098858: @ 0x08098858
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xe]
cmp r1, #0
bne _08098878
movs r0, #1
strb r0, [r4, #0xe]
adds r0, r4, #0
adds r0, #0x62
strb r1, [r0]
adds r2, r4, #0
adds r2, #0x63
movs r0, #0xfe
strb r0, [r2]
ldr r0, [r4, #0x50]
str r1, [r0, #0x54]
_08098878:
ldr r0, _0809889C @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _08098892
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _080988A0
_08098892:
adds r0, r4, #0
bl sub_080989C0
b _080988B4
.align 2, 0
_0809889C: .4byte gUnk_03003F80
_080988A0:
adds r0, r4, #0
bl sub_0806F3E4
cmp r0, #0
beq _080988B4
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080988B4
bl sub_0805E780
_080988B4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080988B8
sub_080988B8: @ 0x080988B8
push {lr}
adds r2, r0, #0
ldr r0, _080988CC @ =gUnk_03003F80
ldrb r0, [r0, #0x1c]
cmp r0, #0
bne _080988D0
adds r0, r2, #0
bl sub_080989C0
b _080988D8
.align 2, 0
_080988CC: .4byte gUnk_03003F80
_080988D0:
ldrb r1, [r2, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r2, #0x10]
_080988D8:
pop {pc}
.align 2, 0
thumb_func_start nullsub_123
nullsub_123: @ 0x080988DC
bx lr
.align 2, 0
thumb_func_start sub_080988E0
sub_080988E0: @ 0x080988E0
push {lr}
bl sub_080989C0
pop {pc}
thumb_func_start sub_080988E8
sub_080988E8: @ 0x080988E8
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x20]
cmp r0, #0
bge _080988FA
ldrb r0, [r4, #0x18]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
_080988FA:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_08003FC4
cmp r0, #0
bne _0809890E
adds r0, r4, #0
bl sub_080989C0
_0809890E:
pop {r4, pc}
thumb_func_start sub_08098910
sub_08098910: @ 0x08098910
push {lr}
bl sub_080989C0
pop {pc}
thumb_func_start sub_08098918
sub_08098918: @ 0x08098918
push {r4, r5, r6, lr}
adds r4, r0, #0
bl sub_080989E4
adds r6, r0, #0
cmp r6, #0
bne _0809892E
adds r0, r4, #0
bl sub_080989C0
b _080989BC
_0809892E:
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA24
ldrb r1, [r6, #0x10]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
beq _08098990
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08098968
adds r0, #1
strb r0, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
ldr r1, [r4, #0x50]
adds r0, r4, #0
bl sub_0806FAD8
_08098968:
ldr r2, _0809898C @ =gUnk_08123558
adds r0, r6, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0xf
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
subs r0, #8
movs r1, #0
strh r0, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x63
strb r1, [r0]
b _080989BC
.align 2, 0
_0809898C: .4byte gUnk_08123558
_08098990:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _080989B2
strb r5, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldr r1, [r4, #0x50]
adds r0, r4, #0
bl sub_0806FAD8
_080989B2:
strh r5, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x63
movs r0, #3
strb r0, [r1]
_080989BC:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080989C0
sub_080989C0: @ 0x080989C0
push {r4, lr}
adds r4, r0, #0
bl sub_080989E4
cmp r0, #0
beq _080989D2
ldr r1, [r4, #0x50]
movs r0, #0
str r0, [r1, #0x54]
_080989D2:
ldrb r1, [r4, #0xa]
adds r1, #3
adds r0, r4, #0
movs r2, #0
bl CreateFX
bl sub_0805E780
pop {r4, pc}
thumb_func_start sub_080989E4
sub_080989E4: @ 0x080989E4
push {lr}
ldr r1, [r0, #0x50]
cmp r1, #0
beq _080989F4
ldr r0, [r1, #4]
cmp r0, #0
bne _080989F4
movs r1, #0
_080989F4:
adds r0, r1, #0
pop {pc}
thumb_func_start sub_080989F8
sub_080989F8: @ 0x080989F8
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08098A08
bl sub_0805E780
_08098A08:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08098A44
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
movs r0, #0x28
strb r0, [r4, #0x1e]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _08098A38
ldrb r0, [r4, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r0
movs r0, #1
orrs r1, r0
strb r1, [r4, #0x18]
b _08098A44
_08098A38:
cmp r0, #2
bne _08098A44
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_08098A44:
ldr r0, [r4, #0x50]
movs r3, #0x80
lsls r3, r3, #0xc
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
movs r0, #0
strh r0, [r4, #0x36]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08098A76
ldr r3, [r4, #0x54]
ldrb r1, [r3, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r3, #0x1e]
adds r0, #0x1f
strb r0, [r4, #0x1e]
_08098A76:
pop {r4, pc}
thumb_func_start sub_08098A78
sub_08098A78: @ 0x08098A78
push {lr}
ldr r2, _08098A8C @ =gUnk_08123568
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098A8C: .4byte gUnk_08123568
thumb_func_start sub_08098A90
sub_08098A90: @ 0x08098A90
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #1
beq _08098A9C
movs r0, #2
_08098A9C:
strb r0, [r4, #0xc]
bl sub_08000E50
movs r1, #0x7f
ands r0, r1
adds r0, #0x7f
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
ldr r1, _08098ACC @ =gUnk_08123574
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
ldrb r0, [r4, #0xb]
adds r1, r1, r0
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
.align 2, 0
_08098ACC: .4byte gUnk_08123574
thumb_func_start sub_08098AD0
sub_08098AD0: @ 0x08098AD0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08098AE6
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
_08098AE6:
pop {pc}
thumb_func_start sub_08098AE8
sub_08098AE8: @ 0x08098AE8
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08098B08
movs r0, #0xfe
ands r0, r1
strb r0, [r4]
ldr r0, _08098B0C @ =0x0000021B
bl sub_08004488
_08098B08:
pop {r4, pc}
.align 2, 0
_08098B0C: .4byte 0x0000021B
thumb_func_start sub_08098B10
sub_08098B10: @ 0x08098B10
push {lr}
ldr r2, _08098B24 @ =gUnk_08123664
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098B24: .4byte gUnk_08123664
thumb_func_start sub_08098B28
sub_08098B28: @ 0x08098B28
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrb r2, [r5, #0xa]
lsls r2, r2, #1
ldr r0, _08098BD4 @ =gUnk_0812366C
adds r2, r2, r0
movs r3, #1
movs r4, #1
strb r4, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r5, #0x18]
ldrb r0, [r5, #0xa]
strb r0, [r5, #0x1e]
ldrb r0, [r2]
adds r1, r5, #0
adds r1, #0x82
strb r0, [r1]
ldrb r0, [r2, #1]
adds r2, r5, #0
adds r2, #0x83
strb r0, [r2]
ldrb r0, [r1]
lsrs r0, r0, #1
ldrh r1, [r5, #0x2e]
subs r1, r1, r0
adds r0, r5, #0
adds r0, #0x78
strh r1, [r0]
ldrb r0, [r2]
lsrs r0, r0, #1
ldrh r1, [r5, #0x32]
subs r1, r1, r0
subs r2, #9
strh r1, [r2]
movs r0, #0x2e
ldrsh r1, [r5, r0]
ldr r2, _08098BD8 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r5, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r6, r5, #0
adds r6, #0x80
strh r1, [r6]
adds r7, r5, #0
adds r7, #0x38
strb r4, [r7]
adds r0, r5, #0
bl sub_08016A04
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _08098BCA
ldr r0, _08098BDC @ =0x00004074
ldrh r1, [r6]
subs r1, #0x40
ldrb r2, [r7]
bl sub_0800015E
_08098BCA:
adds r0, r5, #0
bl sub_08098BE8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08098BD4: .4byte gUnk_0812366C
_08098BD8: .4byte gUnk_03000BF0
_08098BDC: .4byte 0x00004074
thumb_func_start sub_08098BE0
sub_08098BE0: @ 0x08098BE0
push {lr}
bl sub_08098BE8
pop {pc}
thumb_func_start sub_08098BE8
sub_08098BE8: @ 0x08098BE8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r6, _08098C28 @ =gUnk_03003F80
ldr r0, [r6, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08098C26
ldr r4, _08098C2C @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
bl sub_08098C30
cmp r0, #0
beq _08098C26
bl sub_08079F8C
cmp r0, #0
beq _08098C26
movs r1, #0x36
ldrsh r0, [r4, r1]
cmp r0, #0
bne _08098C26
movs r0, #1
strb r0, [r6, #0x14]
adds r0, r5, #0
adds r0, #0x80
ldrh r1, [r0]
adds r0, r4, #0
bl sub_0807AAF8
_08098C26:
pop {r4, r5, r6, pc}
.align 2, 0
_08098C28: .4byte gUnk_03003F80
_08098C2C: .4byte gLinkEntity
thumb_func_start sub_08098C30
sub_08098C30: @ 0x08098C30
push {r4, lr}
adds r3, r0, #0
movs r4, #0
movs r0, #0x2e
ldrsh r2, [r1, r0]
adds r0, r3, #0
adds r0, #0x78
ldrh r0, [r0]
subs r2, r2, r0
movs r0, #0x32
ldrsh r1, [r1, r0]
adds r0, r3, #0
adds r0, #0x7a
ldrh r0, [r0]
subs r1, r1, r0
adds r0, r3, #0
adds r0, #0x82
ldrb r0, [r0]
cmp r2, r0
bhi _08098C64
adds r0, r3, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r1, r0
bhi _08098C64
movs r4, #1
_08098C64:
adds r0, r4, #0
pop {r4, pc}
thumb_func_start sub_08098C68
sub_08098C68: @ 0x08098C68
push {lr}
ldr r2, _08098C7C @ =gUnk_08123674
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098C7C: .4byte gUnk_08123674
thumb_func_start sub_08098C80
sub_08098C80: @ 0x08098C80
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0
movs r5, #1
strb r5, [r4, #0xc]
strb r0, [r4, #0xe]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _08098CC8 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x80
strh r1, [r0]
ldr r0, _08098CCC @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08098CD0
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
b _08098CD6
.align 2, 0
_08098CC8: .4byte gUnk_03000BF0
_08098CCC: .4byte gUnk_03003F80
_08098CD0:
adds r0, r4, #0
adds r0, #0x38
strb r5, [r0]
_08098CD6:
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
adds r0, #0x80
ldrh r1, [r0]
subs r1, #0x40
movs r0, #0x47
movs r2, #1
bl sub_08000148
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start nullsub_124
nullsub_124: @ 0x08098CF0
bx lr
.align 2, 0
thumb_func_start sub_08098CF4
sub_08098CF4: @ 0x08098CF4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #0
bne _08098D14
ldr r0, _08098D10 @ =gUnk_0812367C
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _08098D1A
.align 2, 0
_08098D10: .4byte gUnk_0812367C
_08098D14:
adds r0, r2, #0
bl sub_08098E3C
_08098D1A:
pop {pc}
thumb_func_start sub_08098D1C
sub_08098D1C: @ 0x08098D1C
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #1
strb r5, [r4, #0xc]
ldr r0, _08098D40 @ =0x0000FFF0
strh r0, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
cmp r0, #0
beq _08098D44
bl sub_0807CBE4
cmp r0, #0
bne _08098D44
strb r5, [r4, #0xc]
b _08098D5A
.align 2, 0
_08098D40: .4byte 0x0000FFF0
_08098D44:
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_08098E88
_08098D5A:
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
pop {r4, r5, pc}
thumb_func_start sub_08098D6C
sub_08098D6C: @ 0x08098D6C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08098D9A
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x2d
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #0x43
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _08098D9A
ldrh r0, [r1, #0x32]
adds r0, #8
strh r0, [r1, #0x32]
_08098D9A:
pop {r4, pc}
thumb_func_start sub_08098D9C
sub_08098D9C: @ 0x08098D9C
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08098DC2
movs r0, #3
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
subs r0, #7
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x18]
adds r0, r2, #0
bl sub_08098E88
_08098DC2:
pop {pc}
thumb_func_start sub_08098DC4
sub_08098DC4: @ 0x08098DC4
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r6, _08098E2C @ =gLinkEntity
adds r1, r6, #0
movs r2, #8
movs r3, #8
bl sub_0800419C
cmp r0, #0
beq _08098E24
adds r0, r5, #0
adds r1, r6, #0
bl sub_0806FA24
adds r0, r5, #0
bl sub_08004542
adds r0, r6, #0
bl sub_08004542
adds r0, r6, #0
adds r0, #0x38
movs r4, #1
strb r4, [r0]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0806FAB0
ldr r1, _08098E30 @ =gUnk_03003F80
movs r0, #0x1f
strb r0, [r1, #0xc]
adds r0, r1, #0
adds r0, #0x38
strb r4, [r0]
ldrb r0, [r5, #0xb]
adds r1, #0x39
strb r0, [r1]
movs r1, #4
strb r1, [r5, #0xc]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bne _08098E20
movs r0, #0x23
bl sub_0807CD04
_08098E20:
bl sub_08077B20
_08098E24:
adds r0, r5, #0
bl sub_080042B8
pop {r4, r5, r6, pc}
.align 2, 0
_08098E2C: .4byte gLinkEntity
_08098E30: .4byte gUnk_03003F80
thumb_func_start sub_08098E34
sub_08098E34: @ 0x08098E34
push {lr}
bl sub_080042B8
pop {pc}
thumb_func_start sub_08098E3C
sub_08098E3C: @ 0x08098E3C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08098E5E
movs r2, #1
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080042AC
_08098E5E:
ldrb r1, [r4, #0xa]
movs r0, #2
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
lsls r0, r0, #1
ldr r1, _08098E84 @ =gUnk_08123690
adds r0, r0, r1
ldrh r1, [r0]
ldrh r2, [r0, #2]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_08098E84: .4byte gUnk_08123690
thumb_func_start sub_08098E88
sub_08098E88: @ 0x08098E88
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x82
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08098EB0
ldr r3, _08098ED8 @ =0xFFFF0000
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
adds r1, r4, #0
adds r1, #0x63
movs r0, #8
strb r0, [r1]
_08098EB0:
movs r0, #0x82
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _08098ED4
ldr r3, _08098EDC @ =0xFFFE0000
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
adds r1, r4, #0
adds r1, #0x63
movs r0, #0x10
strb r0, [r1]
_08098ED4:
pop {r4, r5, pc}
.align 2, 0
_08098ED8: .4byte 0xFFFF0000
_08098EDC: .4byte 0xFFFE0000
thumb_func_start sub_08098EE0
sub_08098EE0: @ 0x08098EE0
push {lr}
ldr r2, _08098EF4 @ =gUnk_081236DC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08098EF4: .4byte gUnk_081236DC
thumb_func_start sub_08098EF8
sub_08098EF8: @ 0x08098EF8
push {lr}
adds r3, r0, #0
adds r3, #0x29
ldrb r2, [r3]
movs r1, #8
rsbs r1, r1, #0
ands r1, r2
movs r2, #5
orrs r1, r2
strb r1, [r3]
bl sub_08098FCC
pop {pc}
.align 2, 0
thumb_func_start sub_08098F14
sub_08098F14: @ 0x08098F14
push {r4, r5, r6, lr}
adds r5, r0, #0
bl sub_080990EC
cmp r0, #0
beq _08098F84
movs r6, #0
movs r0, #2
strb r0, [r5, #0xc]
adds r0, r5, #0
adds r0, #0x74
ldrh r0, [r0]
adds r1, r5, #0
adds r1, #0x70
ldrh r1, [r1]
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
adds r0, r5, #0
adds r0, #0x76
ldrh r0, [r0]
adds r1, r5, #0
adds r1, #0x72
ldrh r1, [r1]
ldrb r2, [r4]
bl sub_0800015E
movs r0, #0x99
lsls r0, r0, #1
bl sub_08004488
adds r0, r5, #0
movs r1, #0x1e
bl sub_0805E4E0
bl sub_08079F8C
cmp r0, #0
beq _08098F84
ldr r2, _08098F88 @ =gUnk_03003F80
movs r0, #0x98
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldr r1, _08098F8C @ =gLinkEntity
strh r6, [r1, #0x2c]
strh r6, [r1, #0x30]
ldrb r0, [r1, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
_08098F84:
pop {r4, r5, r6, pc}
.align 2, 0
_08098F88: .4byte gUnk_03003F80
_08098F8C: .4byte gLinkEntity
thumb_func_start sub_08098F90
sub_08098F90: @ 0x08098F90
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08098FC8
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _08098FB8
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _08098FC2
_08098FB8:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
_08098FC2:
adds r0, r4, #0
bl sub_08098FCC
_08098FC8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08098FCC
sub_08098FCC: @ 0x08098FCC
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x84
movs r1, #0x3c
strh r1, [r2]
bl sub_08098FE0
pop {pc}
thumb_func_start sub_08098FE0
sub_08098FE0: @ 0x08098FE0
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0809906C
strb r0, [r6, #0xb]
movs r0, #0x2e
ldrsh r2, [r6, r0]
ldr r1, _08099060 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r1, [r1, #8]
adds r1, #0x10
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r2, r0
adds r5, r6, #0
adds r5, #0x70
strh r2, [r5]
subs r2, #0x40
adds r7, r6, #0
adds r7, #0x72
strh r2, [r7]
ldrh r0, [r5]
adds r4, r6, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
ldrh r0, [r7]
ldrb r1, [r4]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
ldr r0, _08099064 @ =0x00004057
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _08099068 @ =0x00004058
ldrh r1, [r7]
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
movs r1, #1
bl sub_08004260
b _080990DC
.align 2, 0
_08099060: .4byte gUnk_03000BF0
_08099064: .4byte 0x00004057
_08099068: .4byte 0x00004058
_0809906C:
movs r0, #1
strb r0, [r6, #0xb]
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _080990E0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
adds r0, #0x10
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r6, #0
adds r5, #0x70
strh r1, [r5]
subs r1, #1
adds r7, r6, #0
adds r7, #0x72
strh r1, [r7]
ldrh r0, [r5]
adds r4, r6, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x74
strh r0, [r1]
ldrh r0, [r7]
ldrb r1, [r4]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x76
strh r0, [r1]
ldr r0, _080990E4 @ =0x00004055
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0800015E
ldr r0, _080990E8 @ =0x00004056
ldrh r1, [r7]
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
movs r1, #0
bl sub_08004260
_080990DC:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080990E0: .4byte gUnk_03000BF0
_080990E4: .4byte 0x00004055
_080990E8: .4byte 0x00004056
thumb_func_start sub_080990EC
sub_080990EC: @ 0x080990EC
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r4, #0
adds r6, #0x72
ldrh r0, [r6]
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
ldr r1, _0809911C @ =0x00004059
cmp r0, r1
bne _08099140
adds r1, r4, #0
adds r1, #0x84
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _08099120
movs r0, #1
b _08099156
.align 2, 0
_0809911C: .4byte 0x00004059
_08099120:
adds r0, r4, #0
bl sub_08099158
ldr r1, _0809913C @ =gUnk_081236E8
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
ldrh r1, [r6]
ldrb r2, [r5]
bl sub_0800015E
b _08099154
.align 2, 0
_0809913C: .4byte gUnk_081236E8
_08099140:
adds r1, r4, #0
adds r1, #0x84
movs r2, #0
movs r0, #0x3c
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x62
strb r2, [r0]
adds r0, #1
strb r2, [r0]
_08099154:
movs r0, #0
_08099156:
pop {r4, r5, r6, pc}
thumb_func_start sub_08099158
sub_08099158: @ 0x08099158
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xb]
ldr r4, _08099198 @ =gUnk_081236F4
cmp r0, #0
bne _08099166
ldr r4, _0809919C @ =gUnk_081236EC
_08099166:
adds r2, r3, #0
adds r2, #0x84
ldrh r0, [r2]
lsrs r0, r0, #2
movs r1, #6
ands r0, r1
adds r4, r4, r0
ldrb r0, [r4]
adds r1, r3, #0
adds r1, #0x62
strb r0, [r1]
ldrb r1, [r4, #1]
adds r0, r3, #0
adds r0, #0x63
strb r1, [r0]
ldrh r1, [r2]
movs r0, #3
ands r0, r1
cmp r0, #0
bne _08099194
ldr r0, _080991A0 @ =0x00000131
bl sub_08004488
_08099194:
pop {r4, pc}
.align 2, 0
_08099198: .4byte gUnk_081236F4
_0809919C: .4byte gUnk_081236EC
_080991A0: .4byte 0x00000131
thumb_func_start sub_080991A4
sub_080991A4: @ 0x080991A4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #2
bhi _080991C4
ldr r0, _080991C0 @ =gUnk_08123734
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _080991CA
.align 2, 0
_080991C0: .4byte gUnk_08123734
_080991C4:
adds r0, r2, #0
bl sub_080996AC
_080991CA:
pop {pc}
thumb_func_start sub_080991CC
sub_080991CC: @ 0x080991CC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #2
bgt _080991EC
cmp r0, #0
blt _080991EC
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080991EC
bl sub_0805E780
_080991EC:
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
subs r1, #5
movs r0, #0x80
strb r0, [r1]
ldr r0, _08099244 @ =gUnk_080FD408
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_08099468
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
movs r0, #0x84
movs r1, #3
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _08099242
str r4, [r0, #0x50]
_08099242:
pop {r4, pc}
.align 2, 0
_08099244: .4byte gUnk_080FD408
thumb_func_start sub_08099248
sub_08099248: @ 0x08099248
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
bl sub_0809963C
cmp r0, #0
beq _08099280
movs r1, #0
movs r0, #3
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
ldr r0, _0809927C @ =0x000001B3
bl sub_08004488
adds r0, r4, #0
bl sub_08099330
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0809930E
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _0809930E
.align 2, 0
_0809927C: .4byte 0x000001B3
_08099280:
adds r0, r4, #0
bl sub_0800442E
cmp r0, #0
bne _0809930E
adds r7, r4, #0
adds r7, #0x70
ldrh r0, [r7]
adds r6, r4, #0
adds r6, #0x38
ldrb r1, [r6]
bl sub_080002B0
adds r5, r0, #0
ldr r0, _080992B8 @ =0x0000405A
cmp r5, r0
beq _0809930E
adds r0, r5, #0
bl sub_08099618
cmp r0, #1
beq _080992BC
cmp r0, #1
blo _080992DC
cmp r0, #2
beq _08099308
b _0809930E
.align 2, 0
_080992B8: .4byte 0x0000405A
_080992BC:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x16
strb r0, [r4, #0xe]
adds r0, r5, #0
subs r0, #0x5b
movs r1, #3
ands r0, r1
lsls r0, r0, #3
strb r0, [r4, #0x15]
movs r0, #0x20
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_080994B8
b _0809930E
_080992DC:
movs r0, #0xf
movs r1, #0xd
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _080992F2
adds r0, r4, #0
bl sub_0806FA24
_080992F2:
adds r0, r4, #0
adds r0, #0x6c
ldrh r0, [r0]
ldrh r1, [r7]
ldrb r2, [r6]
bl sub_0800015E
adds r0, r4, #0
bl sub_0805E7BC
b _0809930E
_08099308:
adds r0, r4, #0
adds r0, #0x6c
strh r5, [r0]
_0809930E:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08099310
sub_08099310: @ 0x08099310
push {r4, lr}
adds r4, r0, #0
bl sub_0809953C
cmp r0, #0
beq _0809932E
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08099468
movs r0, #0xd9
lsls r0, r0, #1
bl sub_08004488
_0809932E:
pop {r4, pc}
thumb_func_start sub_08099330
sub_08099330: @ 0x08099330
push {r4, lr}
adds r4, r0, #0
bl sub_0809963C
adds r1, r0, #0
cmp r1, #0
bne _0809935E
ldrb r0, [r4, #0xe]
cmp r0, #1
bls _0809934A
subs r0, #2
strb r0, [r4, #0xe]
b _0809934C
_0809934A:
strb r1, [r4, #0xe]
_0809934C:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08099364
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0805EC60
b _080993CA
_0809935E:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
_08099364:
movs r1, #0x80
lsls r1, r1, #1
ldr r2, _0809939C @ =gUnk_08123748
ldrb r0, [r4, #0xe]
lsrs r0, r0, #5
lsls r0, r0, #1
adds r0, r0, r2
ldrh r2, [r0]
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _080993A0
adds r0, r4, #0
adds r0, #0x86
ldrh r3, [r0]
adds r0, r4, #0
movs r1, #0x53
movs r2, #0
bl sub_080A2A3C
movs r0, #0x72
bl sub_080A3268
b _080993BA
.align 2, 0
_0809939C: .4byte gUnk_08123748
_080993A0:
cmp r0, #2
bne _080993BA
adds r0, r4, #0
adds r0, #0x86
ldrh r3, [r0]
adds r0, r4, #0
movs r1, #0x52
movs r2, #0
bl sub_080A2A3C
movs r0, #0x72
bl sub_080A3268
_080993BA:
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
_080993CA:
pop {r4, pc}
thumb_func_start sub_080993CC
sub_080993CC: @ 0x080993CC
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r1, r0, #1
strb r1, [r5, #0xe]
lsls r0, r1, #0x18
cmp r0, #0
bne _080993E2
bl sub_0805E780
b _08099466
_080993E2:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x30
bne _08099400
adds r0, r5, #0
adds r0, #0x6c
ldrh r0, [r0]
adds r1, r5, #0
adds r1, #0x70
ldrh r1, [r1]
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_08099400:
movs r1, #0x80
lsls r1, r1, #1
ldrb r0, [r5, #0xe]
movs r2, #0x3c
subs r2, r2, r0
lsls r2, r2, #5
adds r2, r2, r1
adds r0, r5, #0
movs r3, #0
bl sub_0805EC9C
ldrb r1, [r5, #0xe]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08099466
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
adds r6, r0, #0
cmp r6, #0
beq _08099466
bl sub_08000E50
adds r4, r0, #0
asrs r0, r4, #0x10
movs r1, #9
bl __modsi3
adds r2, r0, #0
subs r2, #4
movs r3, #0xf
ands r3, r4
adds r4, r6, #0
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4]
lsls r2, r2, #0x10
rsbs r3, r3, #0
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r6, #0
bl sub_0806FA48
_08099466:
pop {r4, r5, r6, pc}
thumb_func_start sub_08099468
sub_08099468: @ 0x08099468
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r2, _080994B0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r4, #0x32
ldrsh r0, [r6, r4]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r4, r6, #0
adds r4, #0x70
strh r1, [r4]
ldrh r0, [r4]
adds r5, r6, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r6, #0
adds r1, #0x6c
strh r0, [r1]
ldr r0, _080994B4 @ =0x0000405A
ldrh r1, [r4]
ldrb r2, [r5]
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_080994B0: .4byte gUnk_03000BF0
_080994B4: .4byte 0x0000405A
thumb_func_start sub_080994B8
sub_080994B8: @ 0x080994B8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r0, _08099530 @ =0x000001B1
bl sub_08004488
adds r0, r5, #0
adds r0, #0x6c
ldrh r0, [r0]
adds r6, r5, #0
adds r6, #0x70
ldrh r1, [r6]
adds r4, r5, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldrb r0, [r4]
cmp r0, #2
bne _080994F8
ldrh r0, [r6]
movs r1, #1
bl sub_080002B0
ldr r1, _08099534 @ =0x0000405A
cmp r0, r1
bne _080994F8
movs r0, #0xc4
lsls r0, r0, #2
ldrh r1, [r6]
movs r2, #1
bl sub_08000152
_080994F8:
adds r2, r5, #0
adds r2, #0x70
ldr r1, _08099538 @ =gUnk_080B4488
ldrb r0, [r5, #0x15]
lsrs r0, r0, #3
lsls r0, r0, #1
adds r0, r0, r1
movs r1, #0
ldrsh r0, [r0, r1]
ldrh r2, [r2]
adds r0, r0, r2
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x79
beq _08099524
cmp r0, #0x77
bne _0809952C
_08099524:
adds r1, r5, #0
adds r1, #0x63
movs r0, #0xfe
strb r0, [r1]
_0809952C:
pop {r4, r5, r6, pc}
.align 2, 0
_08099530: .4byte 0x000001B1
_08099534: .4byte 0x0000405A
_08099538: .4byte gUnk_080B4488
thumb_func_start sub_0809953C
sub_0809953C: @ 0x0809953C
push {r4, lr}
adds r4, r0, #0
bl sub_0800442E
cmp r0, #0
bne _08099612
adds r0, r4, #0
bl sub_080AEFE0
adds r0, r4, #0
bl sub_0800445C
ldrb r1, [r4, #0xe]
cmp r1, #0
beq _08099570
ldrh r0, [r4, #0x24]
adds r0, #0x10
strh r0, [r4, #0x24]
subs r0, r1, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08099570
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r4, #0x24]
_08099570:
ldrb r0, [r4, #0x15]
lsrs r0, r0, #3
cmp r0, #1
beq _080995A0
cmp r0, #1
bgt _08099582
cmp r0, #0
beq _08099588
b _080995E6
_08099582:
cmp r0, #2
beq _080995BA
b _080995E6
_08099588:
ldrh r1, [r4, #0x2a]
movs r0, #0xe
ands r0, r1
cmp r0, #0
beq _08099612
ldrh r1, [r4, #0x32]
movs r0, #0xf
ands r0, r1
subs r0, #7
cmp r0, #2
bls _080995D0
b _080995DE
_080995A0:
ldrh r1, [r4, #0x2a]
movs r0, #0xe0
lsls r0, r0, #8
ands r0, r1
cmp r0, #0
beq _08099612
ldrh r1, [r4, #0x2e]
movs r0, #0xf
ands r0, r1
subs r0, #7
cmp r0, #2
bls _080995FE
b _080995DE
_080995BA:
ldrh r1, [r4, #0x2a]
movs r0, #0xe0
ands r0, r1
cmp r0, #0
beq _08099612
ldrh r1, [r4, #0x32]
movs r0, #0xf
ands r0, r1
subs r0, #7
cmp r0, #2
bhi _080995DE
_080995D0:
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
adds r0, #8
strh r0, [r4, #0x32]
movs r0, #1
b _08099614
_080995DE:
adds r0, r4, #0
bl sub_0809969C
b _08099612
_080995E6:
ldrh r1, [r4, #0x2a]
movs r0, #0xe0
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _08099612
ldrh r1, [r4, #0x2e]
movs r0, #0xf
ands r0, r1
subs r0, #7
cmp r0, #2
bhi _0809960C
_080995FE:
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
adds r0, #8
strh r0, [r4, #0x2e]
movs r0, #1
b _08099614
_0809960C:
adds r0, r4, #0
bl sub_0809969C
_08099612:
movs r0, #0
_08099614:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099618
sub_08099618: @ 0x08099618
push {lr}
adds r2, r0, #0
ldr r1, _08099620 @ =gUnk_08123750
b _08099630
.align 2, 0
_08099620: .4byte gUnk_08123750
_08099624:
ldrh r0, [r1]
cmp r0, r2
bne _0809962E
ldrh r0, [r1, #2]
b _08099638
_0809962E:
adds r1, #4
_08099630:
ldrh r0, [r1]
cmp r0, #0
bne _08099624
movs r0, #0
_08099638:
pop {pc}
.align 2, 0
thumb_func_start sub_0809963C
sub_0809963C: @ 0x0809963C
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _08099684
bl sub_0804B128
adds r4, r0, #0
ldrh r0, [r4]
bl sub_0807CBE4
cmp r0, #0
beq _08099684
ldr r0, _08099694 @ =gUnk_03000BF0
ldrh r1, [r0, #6]
ldrh r2, [r4, #2]
adds r1, r1, r2
lsls r1, r1, #0x10
lsrs r1, r1, #0x10
ldrh r0, [r0, #8]
ldrh r6, [r4, #4]
adds r0, r0, r6
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
ldrh r2, [r4, #6]
movs r6, #0x2e
ldrsh r0, [r5, r6]
subs r0, r0, r1
cmp r2, r0
blo _08099684
ldrh r1, [r4, #8]
movs r2, #0x32
ldrsh r0, [r5, r2]
subs r0, r0, r3
cmp r1, r0
bhs _08099698
_08099684:
adds r0, r5, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0x87
beq _08099698
movs r0, #0
b _0809969A
.align 2, 0
_08099694: .4byte gUnk_03000BF0
_08099698:
movs r0, #1
_0809969A:
pop {r4, r5, r6, pc}
thumb_func_start sub_0809969C
sub_0809969C: @ 0x0809969C
push {lr}
movs r1, #0xd
movs r2, #0
bl CreateFX
bl sub_0805E780
pop {pc}
thumb_func_start sub_080996AC
sub_080996AC: @ 0x080996AC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _080996BC
bl sub_0805E780
_080996BC:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080996CE
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
_080996CE:
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xc]
cmp r0, #2
bhi _08099726
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08099706
movs r0, #0
strb r0, [r2]
bl sub_08000E50
movs r1, #0x78
ands r0, r1
adds r0, #0x78
adds r1, r4, #0
adds r1, #0x59
strb r0, [r1]
_08099706:
adds r0, r4, #0
bl sub_08004274
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA6C
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x63
ldrb r0, [r1]
subs r0, #0x11
strb r0, [r1]
b _08099730
_08099726:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_08099730:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099734
sub_08099734: @ 0x08099734
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
cmp r0, #3
bhi _08099754
ldr r0, _08099750 @ =gUnk_081237A0
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0809975A
.align 2, 0
_08099750: .4byte gUnk_081237A0
_08099754:
adds r0, r2, #0
bl sub_08099D30
_0809975A:
pop {pc}
thumb_func_start sub_0809975C
sub_0809975C: @ 0x0809975C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _08099770
bl sub_0805E780
_08099770:
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
subs r1, #5
movs r0, #0x80
strb r0, [r1]
ldr r0, _080997C8 @ =gUnk_080FD190
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_08099910
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
movs r0, #0x85
movs r1, #4
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _080997C6
str r4, [r0, #0x50]
_080997C6:
pop {r4, pc}
.align 2, 0
_080997C8: .4byte gUnk_080FD190
thumb_func_start sub_080997CC
sub_080997CC: @ 0x080997CC
push {r4, lr}
adds r4, r0, #0
bl sub_0809963C
cmp r0, #0
beq _080997EC
movs r0, #0
movs r1, #2
strb r1, [r4, #0xc]
strb r0, [r4, #0xe]
ldr r0, _080997F0 @ =0x000001B3
bl sub_08004488
adds r0, r4, #0
bl sub_080997F4
_080997EC:
pop {r4, pc}
.align 2, 0
_080997F0: .4byte 0x000001B3
thumb_func_start sub_080997F4
sub_080997F4: @ 0x080997F4
push {r4, lr}
adds r4, r0, #0
bl sub_0809963C
adds r1, r0, #0
cmp r1, #0
bne _08099822
ldrb r0, [r4, #0xe]
cmp r0, #1
bls _0809980E
subs r0, #2
strb r0, [r4, #0xe]
b _08099810
_0809980E:
strb r1, [r4, #0xe]
_08099810:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _08099828
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_0805EC60
b _0809987C
_08099822:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
_08099828:
ldr r1, _08099858 @ =gUnk_081237B0
ldrb r0, [r4, #0xe]
lsrs r0, r0, #5
lsls r0, r0, #1
adds r0, r0, r1
ldrh r2, [r0]
movs r1, #0x80
lsls r1, r1, #1
adds r0, r4, #0
movs r3, #0
bl sub_0805EC9C
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _0809986C
cmp r0, #2
beq _0809985C
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _0809986C
.align 2, 0
_08099858: .4byte gUnk_081237B0
_0809985C:
adds r0, r4, #0
adds r0, #0x86
ldrh r3, [r0]
adds r0, r4, #0
movs r1, #0x53
movs r2, #0
bl sub_080A2A3C
_0809986C:
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
_0809987C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099880
sub_08099880: @ 0x08099880
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
subs r1, r0, #1
strb r1, [r5, #0xe]
lsls r0, r1, #0x18
cmp r0, #0
bne _08099896
bl sub_0805E780
b _0809990E
_08099896:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x30
bne _080998A4
adds r0, r5, #0
bl sub_08099C18
_080998A4:
ldrb r0, [r5, #0xe]
movs r4, #0x3c
subs r4, r4, r0
lsls r4, r4, #5
movs r1, #0x80
lsls r1, r1, #1
adds r4, r4, r1
adds r0, r5, #0
adds r2, r4, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r5, #0
adds r1, r4, #0
movs r2, #2
movs r3, #0
bl sub_0806FCF4
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
adds r6, r0, #0
cmp r6, #0
beq _0809990E
bl sub_08000E50
adds r4, r0, #0
asrs r0, r4, #0x10
movs r1, #0x21
bl __modsi3
adds r2, r0, #0
subs r2, #0x10
movs r0, #0xf
ands r0, r4
subs r4, r0, #4
adds r3, r6, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r3]
lsls r2, r2, #0x10
lsls r3, r4, #0x10
adds r0, r5, #0
adds r1, r6, #0
bl sub_0806FA48
_0809990E:
pop {r4, r5, r6, pc}
thumb_func_start sub_08099910
sub_08099910: @ 0x08099910
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _08099968 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r6, r0, #4
movs r2, #0x3f
ands r6, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r6, r0
adds r0, r4, #0
adds r0, #0x6e
strh r6, [r0]
ldrh r2, [r4, #0x2e]
movs r0, #8
adds r1, r0, #0
ands r1, r2
lsls r1, r1, #0x10
lsrs r1, r1, #0x13
ldrh r2, [r4, #0x32]
ands r0, r2
lsls r0, r0, #0x10
asrs r0, r0, #0x12
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x6c
strh r1, [r0]
cmp r1, #2
beq _08099A4C
cmp r1, #2
bhi _0809996C
cmp r1, #1
beq _080999A8
b _08099972
.align 2, 0
_08099968: .4byte gUnk_03000BF0
_0809996C:
cmp r1, #3
bne _08099972
b _08099AF0
_08099972:
ldr r5, _080999A4 @ =0x00004022
adds r1, r6, #0
subs r1, #0x41
adds r4, #0x38
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
subs r1, r6, #1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0800015E
b _08099BF0
.align 2, 0
_080999A4: .4byte 0x00004022
_080999A8:
adds r5, r6, #0
subs r5, #0x41
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
adds r4, #0x38
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099A40 @ =0x00004024
cmp r0, #0x12
bne _080999C0
adds r1, #0x55
_080999C0:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
ldr r7, _08099A44 @ =0x00004022
adds r1, r6, #0
subs r1, #0x40
ldrb r2, [r4]
adds r0, r7, #0
bl sub_0800015E
adds r5, r6, #0
subs r5, #0x3f
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099A48 @ =0x00004025
cmp r0, #0x12
bne _080999EE
adds r1, #0x56
_080999EE:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
subs r5, r6, #1
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099A40 @ =0x00004024
cmp r0, #0x12
bne _08099A0C
adds r1, #0x55
_08099A0C:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
ldrb r2, [r4]
adds r0, r7, #0
adds r1, r6, #0
bl sub_0800015E
adds r5, r6, #1
adds r0, r5, #0
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099A48 @ =0x00004025
cmp r0, #0x12
bne _08099A32
adds r1, #0x56
_08099A32:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
b _08099BF0
.align 2, 0
_08099A40: .4byte 0x00004024
_08099A44: .4byte 0x00004022
_08099A48: .4byte 0x00004025
_08099A4C:
adds r7, r6, #0
subs r7, #0x41
lsls r0, r7, #0x10
lsrs r0, r0, #0x10
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080002C8
ldr r1, _08099AE4 @ =0x00004023
cmp r0, #0x12
bne _08099A66
adds r1, #0x54
_08099A66:
ldrb r2, [r5]
adds r0, r1, #0
adds r1, r7, #0
bl sub_0800015E
adds r4, r6, #0
subs r4, #0x40
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r5]
bl sub_080002C8
ldr r1, _08099AE4 @ =0x00004023
cmp r0, #0x12
bne _08099A86
adds r1, #0x54
_08099A86:
ldrb r2, [r5]
adds r0, r1, #0
adds r1, r4, #0
bl sub_0800015E
ldr r4, _08099AE8 @ =0x00004022
subs r1, r6, #1
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrb r2, [r5]
adds r0, r4, #0
adds r1, r6, #0
bl sub_0800015E
adds r4, r6, #0
adds r4, #0x3f
adds r0, r4, #0
ldrb r1, [r5]
bl sub_080002C8
ldr r1, _08099AEC @ =0x00004026
cmp r0, #0x12
bne _08099ABA
adds r1, #0x56
_08099ABA:
ldrb r2, [r5]
adds r0, r1, #0
adds r1, r4, #0
bl sub_0800015E
adds r4, r6, #0
adds r4, #0x40
adds r0, r4, #0
ldrb r1, [r5]
bl sub_080002C8
ldr r1, _08099AEC @ =0x00004026
cmp r0, #0x12
bne _08099AD8
adds r1, #0x56
_08099AD8:
ldrb r2, [r5]
adds r0, r1, #0
adds r1, r4, #0
bl sub_0800015E
b _08099BF0
.align 2, 0
_08099AE4: .4byte 0x00004023
_08099AE8: .4byte 0x00004022
_08099AEC: .4byte 0x00004026
_08099AF0:
adds r5, r6, #0
subs r5, #0x41
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
adds r4, #0x38
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099BF4 @ =0x00004027
cmp r0, #0x12
bne _08099B08
adds r1, #0x4e
_08099B08:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
adds r5, r6, #0
subs r5, #0x40
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099BF8 @ =0x00004023
cmp r0, #0x12
bne _08099B28
adds r1, #0x54
_08099B28:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
adds r5, r6, #0
subs r5, #0x3f
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099BFC @ =0x00004028
cmp r0, #0x12
bne _08099B48
adds r1, #0x4e
_08099B48:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
subs r5, r6, #1
lsls r0, r5, #0x10
lsrs r0, r0, #0x10
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099C00 @ =0x00004024
cmp r0, #0x12
bne _08099B66
adds r1, #0x55
_08099B66:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
ldr r0, _08099C04 @ =0x00004022
ldrb r2, [r4]
adds r1, r6, #0
bl sub_0800015E
adds r5, r6, #1
adds r0, r5, #0
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099C08 @ =0x00004025
cmp r0, #0x12
bne _08099B8C
adds r1, #0x56
_08099B8C:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
adds r5, r6, #0
adds r5, #0x3f
adds r0, r5, #0
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099C0C @ =0x00004029
cmp r0, #0x12
bne _08099BAA
adds r1, #0x4f
_08099BAA:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
adds r5, r6, #0
adds r5, #0x40
adds r0, r5, #0
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099C10 @ =0x00004026
cmp r0, #0x12
bne _08099BC8
adds r1, #0x56
_08099BC8:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
adds r5, r6, #0
adds r5, #0x41
adds r0, r5, #0
ldrb r1, [r4]
bl sub_080002C8
ldr r1, _08099C14 @ =0x0000402A
cmp r0, #0x12
bne _08099BE6
adds r1, #0x50
_08099BE6:
ldrb r2, [r4]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0800015E
_08099BF0:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08099BF4: .4byte 0x00004027
_08099BF8: .4byte 0x00004023
_08099BFC: .4byte 0x00004028
_08099C00: .4byte 0x00004024
_08099C04: .4byte 0x00004022
_08099C08: .4byte 0x00004025
_08099C0C: .4byte 0x00004029
_08099C10: .4byte 0x00004026
_08099C14: .4byte 0x0000402A
thumb_func_start sub_08099C18
sub_08099C18: @ 0x08099C18
push {r4, r5, lr}
adds r1, r0, #0
adds r0, #0x6e
ldrh r5, [r0]
subs r0, #2
ldrh r0, [r0]
cmp r0, #2
beq _08099C96
cmp r0, #2
bgt _08099C32
cmp r0, #1
beq _08099C60
b _08099C36
_08099C32:
cmp r0, #3
beq _08099CD4
_08099C36:
adds r0, r5, #0
subs r0, #0x41
adds r4, r1, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
b _08099D2C
_08099C60:
adds r0, r5, #0
subs r0, #0x41
adds r4, r1, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
adds r0, r5, #1
b _08099CCC
_08099C96:
adds r0, r5, #0
subs r0, #0x41
adds r4, r1, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x40
_08099CCC:
ldrb r1, [r4]
bl sub_0807BA8C
b _08099D2C
_08099CD4:
adds r0, r5, #0
subs r0, #0x41
adds r4, r1, #0
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
adds r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r4]
bl sub_0807BA8C
_08099D2C:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08099D30
sub_08099D30: @ 0x08099D30
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldr r0, [r0, #4]
cmp r0, #0
bne _08099D40
bl sub_0805E780
_08099D40:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08099D6A
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #4
bl sub_08004260
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA6C
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x63
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
_08099D6A:
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xc]
cmp r0, #1
bhi _08099DAA
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _08099DA2
movs r0, #0
strb r0, [r2]
bl sub_08000E50
movs r1, #0x78
ands r0, r1
adds r0, #0x78
adds r1, r4, #0
adds r1, #0x59
strb r0, [r1]
_08099DA2:
adds r0, r4, #0
bl sub_08004274
b _08099DB4
_08099DAA:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_08099DB4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099DB8
sub_08099DB8: @ 0x08099DB8
push {lr}
ldr r2, _08099DCC @ =gUnk_081237F8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08099DCC: .4byte gUnk_081237F8
thumb_func_start sub_08099DD0
sub_08099DD0: @ 0x08099DD0
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r0, #0x38
movs r6, #0
movs r5, #1
strb r5, [r0]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
strb r6, [r4, #0xd]
movs r0, #0x46
bl sub_0807CA84
cmp r0, #0
beq _08099E04
movs r0, #4
strb r0, [r4, #0xc]
strb r6, [r4, #0x1e]
b _08099E0E
_08099E04:
strb r5, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_08099E0E:
pop {r4, r5, r6, pc}
thumb_func_start sub_08099E10
sub_08099E10: @ 0x08099E10
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #0x74
bl sub_0807CBD0
cmp r0, #0
beq _08099E54
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
adds r5, r0, #0
cmp r1, #1
bne _08099E3E
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08099E3E
strb r0, [r5]
adds r0, r4, #0
bl sub_08099ECC
_08099E3E:
ldrb r1, [r5]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08099E54
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_08099E54:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08099E58
sub_08099E58: @ 0x08099E58
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08099E88
movs r0, #0x7f
ands r0, r1
strb r0, [r2]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #3
bne _08099E88
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0x1e]
_08099E88:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08099E8C
sub_08099E8C: @ 0x08099E8C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08099EC4 @ =gLinkEntity
movs r2, #0xc
movs r3, #0xc
bl sub_080041A0
cmp r0, #0
beq _08099EC2
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08099EB2
adds r0, r4, #0
bl sub_08099ECC
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
_08099EB2:
movs r0, #0x75
bl sub_0807CBD0
cmp r0, #0
beq _08099EC2
movs r0, #7
bl sub_0805B390
_08099EC2:
pop {r4, pc}
.align 2, 0
_08099EC4: .4byte gLinkEntity
thumb_func_start nullsub_534
nullsub_534: @ 0x08099EC8
bx lr
.align 2, 0
thumb_func_start sub_08099ECC
sub_08099ECC: @ 0x08099ECC
push {r4, lr}
movs r4, #0
movs r1, #1
strb r1, [r0, #0xd]
ldr r1, _08099EF4 @ =gLinkEntity
bl sub_0806FA24
ldr r2, _08099EF8 @ =gUnk_03003F80
movs r0, #3
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x38
strb r4, [r0]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #8
orrs r0, r1
str r0, [r2, #0x30]
pop {r4, pc}
.align 2, 0
_08099EF4: .4byte gLinkEntity
_08099EF8: .4byte gUnk_03003F80
thumb_func_start sub_08099EFC
sub_08099EFC: @ 0x08099EFC
push {lr}
ldr r2, _08099F10 @ =gUnk_08123840
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08099F10: .4byte gUnk_08123840
thumb_func_start sub_08099F14
sub_08099F14: @ 0x08099F14
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r5, #0x24]
ldrb r0, [r5, #0xa]
cmp r0, #9
bls _08099F2A
b _0809A1B6
_08099F2A:
lsls r0, r0, #2
ldr r1, _08099F34 @ =_08099F38
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08099F34: .4byte _08099F38
_08099F38: @ jump table
.4byte _08099F60 @ case 0
.4byte _08099F70 @ case 1
.4byte _08099F82 @ case 2
.4byte _0809A00C @ case 3
.4byte _0809A0AA @ case 4
.4byte _0809A0B0 @ case 5
.4byte _0809A058 @ case 6
.4byte _0809A11C @ case 7
.4byte _0809A132 @ case 8
.4byte _0809A1B0 @ case 9
_08099F60:
adds r2, r5, #0
adds r2, #0x79
movs r0, #0
movs r1, #0x96
strb r1, [r2]
strb r0, [r5, #0xe]
movs r0, #0x1e
strb r0, [r5, #0xf]
_08099F70:
adds r0, r5, #0
movs r1, #0
bl sub_08004260
movs r0, #0x92
lsls r0, r0, #1
bl sub_08004488
b _0809A1B6
_08099F82:
ldr r0, [r5, #0x50]
adds r0, #0x7b
ldrb r0, [r0]
adds r0, #0x80
rsbs r0, r0, #0
strb r0, [r5, #0x15]
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _08099FCE
bl sub_08000E50
adds r1, r0, #0
movs r0, #3
ands r1, r0
cmp r1, #1
beq _08099FBC
cmp r1, #1
blo _08099FB6
cmp r1, #2
beq _08099FC2
cmp r1, #3
beq _08099FC8
b _08099FCE
_08099FB6:
ldrb r0, [r5, #0x15]
subs r0, #0x10
b _08099FCC
_08099FBC:
ldrb r0, [r5, #0x15]
adds r0, #0x10
b _08099FCC
_08099FC2:
ldrb r0, [r5, #0x15]
subs r0, #8
b _08099FCC
_08099FC8:
ldrb r0, [r5, #0x15]
adds r0, #8
_08099FCC:
strb r0, [r5, #0x15]
_08099FCE:
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
movs r1, #0xf0
subs r1, r1, r0
strh r1, [r5, #0x24]
lsls r1, r1, #0x10
asrs r1, r1, #0x11
lsls r1, r1, #8
ldrb r2, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F62C
ldrh r1, [r5, #0x24]
lsls r1, r1, #0x10
asrs r1, r1, #0x11
lsls r1, r1, #8
ldrb r2, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F62C
adds r0, r5, #0
movs r1, #5
bl sub_08004260
movs r0, #0xa6
lsls r0, r0, #1
bl sub_080A3268
b _0809A1B6
_0809A00C:
ldr r0, [r5, #0x50]
adds r0, #0x7b
ldrb r0, [r0]
adds r0, #0x80
rsbs r0, r0, #0
strb r0, [r5, #0x15]
movs r1, #0x90
lsls r1, r1, #7
ldrb r2, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F62C
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _0809A040
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
ldrb r1, [r5, #0x15]
adds r0, r0, r1
strb r0, [r5, #0x15]
b _0809A04E
_0809A040:
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
ldrb r1, [r5, #0x15]
subs r1, r1, r0
strb r1, [r5, #0x15]
_0809A04E:
adds r0, r5, #0
movs r1, #6
bl sub_08004260
b _0809A1B6
_0809A058:
bl sub_08000E50
movs r1, #0x2f
ands r1, r0
movs r4, #0x30
subs r4, r4, r1
lsls r4, r4, #8
bl sub_08000E50
movs r2, #0xff
ands r2, r0
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806F62C
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _0809A092
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
ldrb r1, [r5, #0x15]
adds r0, r0, r1
strb r0, [r5, #0x15]
b _0809A0A0
_0809A092:
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
ldrb r1, [r5, #0x15]
subs r1, r1, r0
strb r1, [r5, #0x15]
_0809A0A0:
adds r0, r5, #0
movs r1, #5
bl sub_08004260
b _0809A1B6
_0809A0AA:
movs r0, #0xc3
lsls r0, r0, #2
b _0809A1B4
_0809A0B0:
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
movs r0, #0x18
str r0, [r5, #0x78]
adds r7, r5, #0
adds r7, #0x76
movs r1, #0
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r7]
adds r4, r5, #0
adds r4, #0x74
strh r0, [r4]
adds r6, r5, #0
adds r6, #0x7a
strh r1, [r6]
ldr r0, [r5, #0x50]
adds r0, #0x7b
ldrb r1, [r0]
rsbs r1, r1, #0
lsls r1, r1, #0x18
ldr r3, _0809A118 @ =gUnk_0812388C
ldrb r2, [r5, #0xb]
lsls r0, r2, #1
adds r0, #1
lsls r0, r0, #1
adds r0, r0, r3
lsrs r1, r1, #0x18
ldrh r0, [r0]
adds r1, r1, r0
lsls r2, r2, #2
adds r2, r2, r3
ldrh r2, [r2]
adds r0, r5, #0
bl sub_0806F62C
ldrh r1, [r7]
ldrh r2, [r4]
ldrh r3, [r6]
adds r0, r5, #0
bl sub_0805EC9C
adds r0, r5, #0
movs r1, #7
bl sub_08004260
b _0809A1B6
.align 2, 0
_0809A118: .4byte gUnk_0812388C
_0809A11C:
movs r0, #0
strb r0, [r5, #0xe]
adds r0, r5, #0
movs r1, #8
bl sub_08004260
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FA24
b _0809A1B6
_0809A132:
ldr r0, [r5, #0x50]
adds r0, #0x7c
ldrb r0, [r0]
movs r1, #0
strb r0, [r5, #0xb]
movs r0, #4
strb r0, [r5, #0xe]
strb r1, [r5, #0xf]
ldr r3, _0809A1A0 @ =gUnk_03000BF0
ldrh r0, [r5, #0x2e]
ldrh r1, [r3, #6]
subs r0, r0, r1
movs r1, #0xf8
lsls r1, r1, #1
adds r2, r1, #0
ands r0, r2
movs r1, #0x82
adds r1, r1, r5
mov ip, r1
strh r0, [r1]
ldrh r1, [r5, #0x32]
ldrh r0, [r3, #8]
subs r1, r1, r0
ands r1, r2
adds r3, r5, #0
adds r3, #0x80
strh r1, [r3]
adds r4, r5, #0
adds r4, #0x84
mov r0, ip
ldrh r2, [r0]
subs r2, #0x10
asrs r2, r2, #4
lsrs r1, r1, #4
lsls r0, r1, #5
subs r0, r0, r1
adds r2, r2, r0
str r2, [r4]
mov r1, ip
ldrh r0, [r1]
ldrh r1, [r3]
ldrb r3, [r5, #0xb]
bl sub_0809A6F8
ldr r0, [r5, #0x50]
adds r0, #0x7c
ldrb r1, [r0]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0809A1A8
ldr r0, _0809A1A4 @ =0x000001A3
bl sub_080A3268
b _0809A1B6
.align 2, 0
_0809A1A0: .4byte gUnk_03000BF0
_0809A1A4: .4byte 0x000001A3
_0809A1A8:
movs r0, #0xe8
bl sub_080A3268
b _0809A1B6
_0809A1B0:
movs r0, #0xf0
lsls r0, r0, #1
_0809A1B4:
str r0, [r5, #0x78]
_0809A1B6:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809A1B8
sub_0809A1B8: @ 0x0809A1B8
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #0x38
adds r7, r0, #0
bl sub_08004274
ldrb r0, [r7, #0xa]
cmp r0, #9
bls _0809A1D2
b _0809A632
_0809A1D2:
lsls r0, r0, #2
ldr r1, _0809A1DC @ =_0809A1E0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809A1DC: .4byte _0809A1E0
_0809A1E0: @ jump table
.4byte _0809A208 @ case 0
.4byte _0809A25C @ case 1
.4byte _0809A33E @ case 2
.4byte _0809A378 @ case 3
.4byte _0809A394 @ case 4
.4byte _0809A3E0 @ case 5
.4byte _0809A378 @ case 6
.4byte _0809A46C @ case 7
.4byte _0809A47C @ case 8
.4byte _0809A616 @ case 9
_0809A208:
adds r1, r7, #0
adds r1, #0x79
ldrb r0, [r1]
cmp r0, #0
beq _0809A25C
subs r0, #1
strb r0, [r1]
ldrb r0, [r7, #0xf]
subs r0, #1
strb r0, [r7, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r1, #0xb
str r1, [sp, #0x20]
cmp r0, #0xff
bne _0809A254
movs r0, #5
strb r0, [r7, #0xf]
ldrb r3, [r7, #0xb]
adds r0, r7, #0
movs r1, #0x87
movs r2, #1
bl sub_080A2988
adds r1, r0, #0
str r1, [r7, #0x54]
cmp r1, #0
beq _0809A24E
ldr r0, [r7, #0x50]
str r0, [r1, #0x50]
ldr r0, [r7, #0x54]
adds r0, #0x84
ldr r2, [sp, #0x20]
ldr r1, [r2]
str r1, [r0]
_0809A24E:
ldrb r0, [r7, #0xb]
adds r0, #1
strb r0, [r7, #0xb]
_0809A254:
ldr r1, [sp, #0x20]
ldr r0, [r1]
ldr r0, [r0, #0xc]
b _0809A474
_0809A25C:
adds r4, r7, #0
adds r4, #0x84
ldr r1, [r4]
ldrb r0, [r7, #0xe]
lsls r0, r0, #2
adds r1, #0xc
adds r1, r1, r0
ldr r2, [r1]
ldr r0, [r2, #0x2c]
ldr r1, [r7, #0x2c]
subs r0, r0, r1
ldr r1, [r2, #0x30]
ldr r2, [r7, #0x30]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r7, #0x15]
movs r2, #0x24
ldrsh r1, [r7, r2]
ldrb r2, [r7, #0x15]
adds r0, r7, #0
bl sub_0806F62C
ldr r1, [r4]
ldrb r0, [r7, #0xe]
lsls r0, r0, #2
adds r1, #0xc
adds r1, r1, r0
ldr r1, [r1]
adds r0, r7, #0
movs r2, #2
movs r3, #2
bl sub_080041A0
cmp r0, #0
bne _0809A2A6
b _0809A632
_0809A2A6:
ldrb r0, [r7, #0xa]
cmp r0, #0
bne _0809A2CC
ldr r1, [r4]
ldrb r0, [r7, #0xe]
lsls r0, r0, #2
adds r1, #0xc
adds r1, r1, r0
ldr r3, [r1]
ldrb r2, [r3, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #2
rsbs r0, r0, #0
ands r1, r0
subs r0, #2
ands r0, r2
orrs r0, r1
strb r0, [r3, #0x18]
_0809A2CC:
ldrb r1, [r7, #0xe]
ldr r0, [r4]
ldrb r0, [r0, #1]
subs r0, #1
cmp r1, r0
bne _0809A338
movs r0, #2
strb r0, [r7, #0xc]
movs r0, #0xf0
strb r0, [r7, #0xe]
bl sub_08000E50
ldr r6, _0809A330 @ =gUnk_0812384C
ldrb r2, [r7, #0xb]
movs r3, #0xf
movs r4, #0xf
adds r1, r4, #0
ands r1, r2
lsls r1, r1, #2
adds r1, r1, r6
ands r0, r3
ldrb r1, [r1]
adds r0, r0, r1
strb r0, [r7, #0x15]
bl sub_08000E50
ldrb r1, [r7, #0xb]
ands r4, r1
lsls r4, r4, #1
adds r4, #1
lsls r4, r4, #1
adds r4, r4, r6
ldr r2, _0809A334 @ =0x000001FF
adds r1, r2, #0
ands r0, r1
ldrh r4, [r4]
adds r0, r0, r4
strh r0, [r7, #0x24]
ldrb r0, [r7, #0xa]
cmp r0, #0
beq _0809A320
b _0809A632
_0809A320:
ldr r1, [r7, #0x50]
movs r0, #4
strb r0, [r1, #0xc]
ldr r1, [r7, #0x50]
movs r0, #0
strb r0, [r1, #0xd]
b _0809A632
.align 2, 0
_0809A330: .4byte gUnk_0812384C
_0809A334: .4byte 0x000001FF
_0809A338:
adds r0, r1, #1
strb r0, [r7, #0xe]
b _0809A632
_0809A33E:
ldr r1, [r7, #0x50]
ldrb r0, [r1, #0xb]
cmp r0, #3
bne _0809A38E
adds r0, r1, #0
adds r0, #0x84
ldr r0, [r0]
ldr r2, [r0, #8]
ldr r0, [r2, #0x2c]
ldr r1, [r7, #0x2c]
subs r0, r0, r1
ldr r1, [r2, #0x30]
ldr r2, [r7, #0x30]
subs r1, r1, r2
bl sub_080045DA
strb r0, [r7, #0x15]
movs r1, #0xa0
lsls r1, r1, #2
ldrb r2, [r7, #0x15]
adds r0, r7, #0
bl sub_0806F62C
ldr r1, [r7, #0x50]
adds r0, r7, #0
movs r2, #0x48
bl sub_0806FC80
b _0809A388
_0809A378:
ldrb r2, [r7, #0x15]
adds r0, r7, #0
movs r1, #0x80
bl sub_0806F62C
adds r0, r7, #0
adds r0, #0x5a
ldrb r0, [r0]
_0809A388:
cmp r0, #0
bne _0809A38E
b _0809A632
_0809A38E:
bl sub_0805E780
b _0809A632
_0809A394:
ldr r3, [r7, #0x78]
cmp r3, #0
bne _0809A3B4
ldr r0, _0809A3B0 @ =gUnk_02034350
movs r2, #0xc
ldrsh r1, [r0, r2]
movs r0, #0x80
lsls r0, r0, #1
cmp r1, r0
beq _0809A38E
movs r0, #8
bl sub_0805308C
b _0809A632
.align 2, 0
_0809A3B0: .4byte gUnk_02034350
_0809A3B4:
ldr r2, [r7, #0x50]
adds r0, r2, #0
adds r0, #0x45
ldrb r1, [r0]
cmp r1, #0
bne _0809A3C8
movs r0, #1
strb r0, [r7, #0xd]
str r1, [r7, #0x78]
b _0809A632
_0809A3C8:
ldrb r0, [r7, #0xd]
cmp r0, #0
bne _0809A3D6
ldrb r0, [r2, #0xb]
cmp r0, #0
beq _0809A3D6
b _0809A632
_0809A3D6:
movs r0, #1
strb r0, [r7, #0xd]
subs r0, r3, #1
str r0, [r7, #0x78]
b _0809A632
_0809A3E0:
ldr r0, [r7, #0x78]
cmp r0, #0
bne _0809A432
adds r0, r7, #0
adds r0, #0x76
ldrh r2, [r0]
movs r1, #0x80
lsls r1, r1, #1
adds r5, r0, #0
cmp r2, r1
bne _0809A40E
ldr r0, [r7, #0x50]
adds r0, #0x7c
ldrb r1, [r0]
movs r0, #1
ands r0, r1
adds r4, r7, #0
adds r4, #0x74
cmp r0, #0
beq _0809A420
bl sub_0805E780
b _0809A420
_0809A40E:
adds r0, r2, #0
subs r0, #0x20
strh r0, [r5]
adds r1, r7, #0
adds r1, #0x74
ldrh r0, [r1]
subs r0, #0x20
strh r0, [r1]
adds r4, r1, #0
_0809A420:
ldrh r1, [r5]
ldrh r2, [r4]
adds r0, r7, #0
adds r0, #0x7a
ldrh r3, [r0]
adds r0, r7, #0
bl sub_0805EC9C
b _0809A436
_0809A432:
subs r0, #1
str r0, [r7, #0x78]
_0809A436:
ldr r0, [r7, #0x50]
adds r1, r7, #0
bl sub_0806FA24
ldr r4, _0809A468 @ =gUnk_0812388C
ldrb r3, [r7, #0xb]
lsls r0, r3, #1
adds r0, #1
lsls r0, r0, #1
adds r0, r0, r4
ldrh r1, [r0]
ldr r0, [r7, #0x50]
adds r0, #0x7b
ldrb r2, [r0]
rsbs r2, r2, #0
lsls r2, r2, #0x18
lsls r3, r3, #2
adds r3, r3, r4
lsrs r2, r2, #0x18
ldrh r3, [r3]
adds r2, r2, r3
adds r0, r7, #0
bl sub_0806F62C
b _0809A632
.align 2, 0
_0809A468: .4byte gUnk_0812388C
_0809A46C:
ldrb r0, [r7, #0xe]
cmp r0, #0
bne _0809A38E
ldr r0, [r7, #0x50]
_0809A474:
adds r1, r7, #0
bl sub_0806FA24
b _0809A632
_0809A47C:
ldrb r0, [r7, #0xe]
subs r0, #1
strb r0, [r7, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _0809A48C
b _0809A632
_0809A48C:
movs r0, #4
strb r0, [r7, #0xe]
ldrb r0, [r7, #0xf]
adds r0, #1
strb r0, [r7, #0xf]
adds r0, r7, #0
adds r0, #0x84
str r0, [sp, #4]
ldrb r1, [r7, #0xf]
lsls r0, r1, #5
subs r0, r0, r1
ldr r2, [sp, #4]
ldr r1, [r2]
subs r1, r1, r0
mov sl, r1
mov r0, sl
str r0, [sp]
adds r1, r7, #0
adds r1, #0x82
str r1, [sp, #8]
ldrh r0, [r1]
adds r2, r7, #0
adds r2, #0x7e
str r2, [sp, #0xc]
strh r0, [r2]
ldrh r0, [r1]
subs r1, #8
str r1, [sp, #0x10]
strh r0, [r1]
movs r2, #0x80
adds r2, r2, r7
mov sb, r2
ldrb r0, [r7, #0xf]
lsls r0, r0, #4
ldrh r1, [r2]
subs r1, r1, r0
movs r0, #0x7c
adds r0, r0, r7
mov r8, r0
strh r1, [r0]
adds r4, r7, #0
adds r4, #0x78
strh r1, [r4]
ldr r1, [sp, #0x10]
ldrh r0, [r1]
ldrh r1, [r4]
ldrb r3, [r7, #0xb]
mov r2, sl
bl sub_0809A6F8
adds r5, r0, #0
ldrb r6, [r7, #0xf]
ldr r2, [sp, #4]
str r2, [sp, #0x20]
ldr r0, [sp, #0x10]
str r0, [sp, #0x28]
ldr r1, [sp, #8]
str r1, [sp, #0x1c]
ldr r2, [sp, #0xc]
str r2, [sp, #0x30]
mov r0, sb
str r0, [sp, #0x34]
mov r1, r8
str r1, [sp, #0x2c]
str r4, [sp, #0x24]
cmp r6, #0
beq _0809A568
ldr r2, [sp, #0x28]
str r2, [sp, #0x14]
mov sb, r4
ldr r0, [sp, #0x30]
mov r8, r0
adds r4, r1, #0
_0809A51E:
ldr r1, [sp, #0x14]
ldrh r0, [r1]
subs r0, #0x10
strh r0, [r1]
mov r2, sb
ldrh r0, [r2]
adds r0, #0x10
strh r0, [r2]
ldr r0, [sp]
adds r0, #0x1e
str r0, [sp]
ldrh r0, [r1]
ldrh r1, [r2]
ldrb r3, [r7, #0xb]
ldr r2, [sp]
bl sub_0809A6F8
adds r5, r5, r0
mov r1, r8
ldrh r0, [r1]
adds r0, #0x10
strh r0, [r1]
ldrh r0, [r4]
adds r0, #0x10
strh r0, [r4]
movs r2, #0x20
add sl, r2
ldrh r0, [r1]
ldrh r1, [r4]
ldrb r3, [r7, #0xb]
mov r2, sl
bl sub_0809A6F8
adds r5, r5, r0
subs r6, #1
cmp r6, #0
bne _0809A51E
_0809A568:
ldrb r1, [r7, #0xf]
lsls r0, r1, #5
subs r0, r0, r1
ldr r2, [sp, #0x20]
ldr r1, [r2]
adds r1, r1, r0
mov sl, r1
mov r0, sl
str r0, [sp]
ldr r1, [sp, #0x1c]
ldrh r0, [r1]
ldr r2, [sp, #0x30]
strh r0, [r2]
ldrh r0, [r1]
ldr r1, [sp, #0x28]
strh r0, [r1]
ldrb r0, [r7, #0xf]
lsls r0, r0, #4
ldr r2, [sp, #0x34]
ldrh r2, [r2]
adds r0, r0, r2
ldr r1, [sp, #0x2c]
strh r0, [r1]
ldr r2, [sp, #0x24]
strh r0, [r2]
ldr r1, [sp, #0x28]
ldrh r0, [r1]
ldrh r1, [r2]
ldrb r3, [r7, #0xb]
mov r2, sl
bl sub_0809A6F8
adds r5, r5, r0
ldrb r0, [r7, #0xf]
subs r6, r0, #1
cmp r6, #0
beq _0809A610
ldr r2, [sp, #0x28]
str r2, [sp, #0x18]
ldr r0, [sp, #0x24]
mov sb, r0
ldr r1, [sp, #0x30]
mov r8, r1
ldr r4, [sp, #0x2c]
_0809A5C0:
ldr r2, [sp, #0x18]
ldrh r0, [r2]
subs r0, #0x10
strh r0, [r2]
mov r1, sb
ldrh r0, [r1]
subs r0, #0x10
strh r0, [r1]
ldr r2, [sp]
subs r2, #0x20
str r2, [sp]
ldr r1, [sp, #0x18]
ldrh r0, [r1]
mov r2, sb
ldrh r1, [r2]
ldrb r3, [r7, #0xb]
ldr r2, [sp]
bl sub_0809A6F8
adds r5, r5, r0
mov r1, r8
ldrh r0, [r1]
adds r0, #0x10
strh r0, [r1]
ldrh r0, [r4]
subs r0, #0x10
strh r0, [r4]
movs r2, #0x1e
rsbs r2, r2, #0
add sl, r2
ldrh r0, [r1]
ldrh r1, [r4]
ldrb r3, [r7, #0xb]
mov r2, sl
bl sub_0809A6F8
adds r5, r5, r0
subs r6, #1
cmp r6, #0
bne _0809A5C0
_0809A610:
cmp r5, #0
bne _0809A632
b _0809A38E
_0809A616:
bl sub_08078B48
ldr r0, [r7, #0x78]
subs r0, #1
str r0, [r7, #0x78]
movs r1, #1
rsbs r1, r1, #0
cmp r0, r1
bne _0809A632
ldr r1, _0809A640 @ =gUnk_03000BF0
ldr r0, _0809A644 @ =gLinkEntity
str r0, [r1, #0x30]
bl sub_0805E780
_0809A632:
add sp, #0x38
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809A640: .4byte gUnk_03000BF0
_0809A644: .4byte gLinkEntity
thumb_func_start sub_0809A648
sub_0809A648: @ 0x0809A648
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
bl sub_08004274
ldrb r0, [r7, #0xe]
subs r0, #1
strb r0, [r7, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _0809A6EC
ldr r4, [r7, #0x50]
adds r0, r4, #0
adds r0, #0x74
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #9
bl __divsi3
movs r2, #0x24
ldrsh r1, [r7, r2]
adds r5, r1, #0
muls r5, r0, r5
adds r4, #0x7b
ldrb r1, [r4]
ldrb r0, [r7, #0x15]
subs r0, r0, r1
movs r1, #0x7b
adds r1, r1, r7
mov r8, r1
strb r0, [r1]
ldr r6, _0809A6E8 @ =gUnk_080C9160
ldrb r0, [r1]
lsls r0, r0, #1
adds r0, r0, r6
movs r2, #0
ldrsh r0, [r0, r2]
lsls r5, r5, #8
asrs r5, r5, #0x10
adds r1, r5, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r4, #0x80
lsls r4, r4, #1
adds r1, r4, #0
bl sub_0806FA04
ldr r1, [r7, #0x50]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1, #0x2c]
adds r1, r1, r0
str r1, [r7, #0x2c]
mov r1, r8
ldrb r0, [r1]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r6
movs r2, #0
ldrsh r0, [r0, r2]
adds r1, r5, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r4, #0
bl sub_0806FA04
ldr r1, [r7, #0x50]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1, #0x30]
subs r1, r1, r0
str r1, [r7, #0x30]
b _0809A6F0
.align 2, 0
_0809A6E8: .4byte gUnk_080C9160
_0809A6EC:
bl sub_0805E780
_0809A6F0:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0809A6F8
sub_0809A6F8: @ 0x0809A6F8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r6, r2, #0
adds r7, r3, #0
bl sub_0809A758
cmp r0, #0
beq _0809A754
ldr r0, _0809A738 @ =gUnk_081238A0
lsls r1, r6, #1
adds r1, r1, r0
ldrh r0, [r1]
cmp r0, #0
beq _0809A750
movs r0, #1
ands r0, r7
cmp r0, #0
beq _0809A73C
ldrh r0, [r1]
lsrs r1, r4, #4
movs r3, #0x3f
ands r1, r3
lsrs r2, r5, #4
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
movs r2, #1
bl sub_0807B9B8
b _0809A750
.align 2, 0
_0809A738: .4byte gUnk_081238A0
_0809A73C:
lsrs r0, r4, #4
movs r2, #0x3f
ands r0, r2
lsrs r1, r5, #4
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
movs r1, #1
bl sub_0807BA8C
_0809A750:
movs r0, #1
b _0809A756
_0809A754:
movs r0, #0
_0809A756:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809A758
sub_0809A758: @ 0x0809A758
push {lr}
adds r2, r0, #0
cmp r2, #0xf
bls _0809A770
movs r0, #0xf8
lsls r0, r0, #1
cmp r2, r0
bhi _0809A770
cmp r1, #0xf0
bhi _0809A770
movs r0, #1
b _0809A772
_0809A770:
movs r0, #0
_0809A772:
pop {pc}
thumb_func_start sub_0809A774
sub_0809A774: @ 0x0809A774
push {lr}
ldr r2, _0809A788 @ =gUnk_08123C80
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809A788: .4byte gUnk_08123C80
thumb_func_start sub_0809A78C
sub_0809A78C: @ 0x0809A78C
push {r4, r5, lr}
adds r4, r0, #0
movs r3, #0
movs r0, #1
strb r0, [r4, #0xc]
movs r2, #0x80
strb r2, [r4, #0xe]
strb r3, [r4, #0xf]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r5, r4, #0
adds r5, #0x80
strh r2, [r5]
adds r0, r4, #0
adds r0, #0x78
strh r3, [r0]
ldrh r0, [r4, #0x2e]
subs r0, #4
strh r0, [r4, #0x2e]
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xfc
strb r0, [r1]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
ldrh r2, [r5]
adds r0, r4, #0
adds r1, r2, #0
bl sub_0805EC9C
adds r0, r4, #0
bl sub_08016A04
ldrb r1, [r4, #0xf]
adds r0, r4, #0
bl sub_080042AC
adds r0, r4, #0
bl sub_0809A958
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809A7F4
sub_0809A7F4: @ 0x0809A7F4
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0809AA00
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
beq _0809A810
subs r0, #1
strb r0, [r4, #0xe]
b _0809A840
_0809A810:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809A840
ldrb r0, [r4, #0xf]
cmp r0, #3
bne _0809A838
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
strb r2, [r4, #0xf]
adds r0, r4, #0
movs r1, #2
bl sub_080042AC
b _0809A840
_0809A838:
ldrb r1, [r4, #0xf]
adds r0, r4, #0
bl sub_080042AC
_0809A840:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809A844
sub_0809A844: @ 0x0809A844
push {r4, lr}
adds r4, r0, #0
bl sub_080042B8
adds r0, r4, #0
bl sub_0809AA00
ldrb r0, [r4, #0xf]
cmp r0, #1
bhi _0809A85C
movs r1, #0
b _0809A870
_0809A85C:
ldrb r0, [r4, #0xe]
adds r2, r0, #0
cmp r2, #0
beq _0809A87C
subs r0, #1
strb r0, [r4, #0xe]
ldr r0, _0809A878 @ =gUnk_03004040
ldr r1, [r0]
cmp r1, #0
bne _0809A8A0
_0809A870:
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
b _0809A8A0
.align 2, 0
_0809A878: .4byte gUnk_03004040
_0809A87C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809A8A0
movs r0, #3
strb r0, [r4, #0xc]
strb r2, [r4, #0xe]
adds r0, r4, #0
movs r1, #3
bl sub_080042AC
adds r0, r4, #0
movs r1, #0x78
bl sub_0805E4E0
_0809A8A0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809A8A4
sub_0809A8A4: @ 0x0809A8A4
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0xe0
ands r0, r1
cmp r0, #0x40
beq _0809A8D4
cmp r0, #0x40
bgt _0809A8C0
cmp r0, #0x20
beq _0809A8E2
b _0809A8FC
_0809A8C0:
cmp r0, #0x80
bne _0809A8FC
adds r0, r4, #0
adds r0, #0x59
ldrb r0, [r0]
cmp r0, #0
bne _0809A902
bl sub_0805E780
b _0809A902
_0809A8D4:
movs r0, #0xbf
ands r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0809A9D4
b _0809A902
_0809A8E2:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ldrb r1, [r2]
movs r0, #0xdf
ands r0, r1
strb r0, [r2]
movs r0, #0xff
bl sub_08078A90
movs r0, #0x2a
bl sub_0807CD04
_0809A8FC:
adds r0, r4, #0
bl sub_080042B8
_0809A902:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809A92A
adds r1, r4, #0
adds r1, #0x80
ldrh r0, [r1]
adds r0, #8
strh r0, [r1]
ldr r0, [r4, #0x2c]
movs r2, #0x80
lsls r2, r2, #3
adds r0, r0, r2
str r0, [r4, #0x2c]
ldrh r2, [r1]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
b _0809A94E
_0809A92A:
ldr r1, [r4, #0x54]
adds r0, r4, #0
movs r2, #0
bl sub_0809AA9C
ldr r1, _0809A950 @ =gLinkEntity
adds r0, r4, #0
movs r2, #1
bl sub_0809AA9C
ldr r0, _0809A954 @ =gUnk_03004040
ldr r1, [r0]
cmp r1, #0
beq _0809A94E
adds r0, r4, #0
movs r2, #1
bl sub_0809AA9C
_0809A94E:
pop {r4, pc}
.align 2, 0
_0809A950: .4byte gLinkEntity
_0809A954: .4byte gUnk_03004040
thumb_func_start sub_0809A958
sub_0809A958: @ 0x0809A958
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
movs r1, #0x2e
ldrsh r3, [r0, r1]
ldr r2, _0809A9CC @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r1, #4
subs r3, r3, r1
asrs r3, r3, #4
movs r4, #0x3f
ands r3, r4
movs r5, #0x32
ldrsh r1, [r0, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r3, r1
adds r0, #0x82
strh r3, [r0]
ldrh r0, [r0]
adds r5, r0, #0
subs r5, #0x82
ldr r6, _0809A9D0 @ =gUnk_08123C90
movs r0, #0
movs r1, #0x80
lsls r1, r1, #7
mov sb, r1
_0809A996:
movs r4, #0
adds r0, #1
mov r8, r0
adds r7, r5, #0
adds r7, #0x40
_0809A9A0:
ldrh r0, [r6]
mov r1, sb
ands r0, r1
cmp r0, #0
beq _0809A9B4
ldrh r0, [r6]
adds r1, r5, r4
movs r2, #1
bl sub_0800015E
_0809A9B4:
adds r4, #1
adds r6, #2
cmp r4, #3
ble _0809A9A0
mov r0, r8
adds r5, r7, #0
cmp r0, #4
ble _0809A996
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809A9CC: .4byte gUnk_03000BF0
_0809A9D0: .4byte gUnk_08123C90
thumb_func_start sub_0809A9D4
sub_0809A9D4: @ 0x0809A9D4
push {r4, r5, r6, r7, lr}
adds r0, #0x82
ldrh r0, [r0]
adds r5, r0, #0
subs r5, #0x82
movs r0, #0
_0809A9E0:
movs r4, #0
adds r7, r0, #1
adds r6, r5, #0
adds r6, #0x40
_0809A9E8:
adds r0, r5, r4
movs r1, #1
bl sub_0807BA8C
adds r4, #1
cmp r4, #3
ble _0809A9E8
adds r0, r7, #0
adds r5, r6, #0
cmp r0, #4
ble _0809A9E0
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809AA00
sub_0809AA00: @ 0x0809AA00
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
movs r0, #0
strb r0, [r5, #0xf]
ldr r1, [r5, #0x54]
cmp r1, #0
bne _0809AA50
movs r0, #7
movs r1, #0x38
movs r2, #7
bl sub_0805EB00
adds r4, r0, #0
adds r7, r5, #0
adds r7, #0x78
cmp r4, #0
beq _0809AA5C
movs r0, #0x80
lsls r0, r0, #4
mov r8, r0
ldr r0, _0809AA4C @ =0x0000FFFF
adds r6, r0, #0
_0809AA30:
ldrh r0, [r4, #0xa]
ands r0, r6
cmp r0, r8
bne _0809AA3A
str r4, [r5, #0x54]
_0809AA3A:
adds r0, r4, #0
movs r1, #7
bl sub_0805EB64
adds r4, r0, #0
cmp r4, #0
bne _0809AA30
b _0809AA5C
.align 2, 0
_0809AA4C: .4byte 0x0000FFFF
_0809AA50:
adds r0, r5, #0
movs r2, #0
bl sub_0809AA9C
adds r7, r5, #0
adds r7, #0x78
_0809AA5C:
ldr r4, _0809AA94 @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
movs r2, #0x20
movs r3, #0x22
bl sub_080041A0
strh r0, [r7]
lsls r0, r0, #0x10
cmp r0, #0
beq _0809AA8E
adds r0, r5, #0
adds r1, r4, #0
movs r2, #1
bl sub_0809AA9C
ldr r0, _0809AA98 @ =gUnk_03004040
ldr r4, [r0]
cmp r4, #0
beq _0809AA8E
adds r0, r5, #0
adds r1, r4, #0
movs r2, #1
bl sub_0809AA9C
_0809AA8E:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809AA94: .4byte gLinkEntity
_0809AA98: .4byte gUnk_03004040
thumb_func_start sub_0809AA9C
sub_0809AA9C: @ 0x0809AA9C
push {r4, lr}
adds r4, r0, #0
adds r3, r1, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #3
ands r1, r0
cmp r1, #1
beq _0809AAB2
cmp r1, #2
bne _0809AABC
_0809AAB2:
adds r0, r3, #0
adds r0, #0x63
strb r1, [r0]
adds r2, r0, #0
b _0809AAC6
_0809AABC:
adds r1, r3, #0
adds r1, #0x63
movs r0, #0
strb r0, [r1]
adds r2, r1, #0
_0809AAC6:
movs r0, #0x2e
ldrsh r1, [r3, r0]
ldr r0, _0809AAE8 @ =gUnk_03000BF0
ldrh r0, [r0, #6]
movs r3, #0xad
lsls r3, r3, #1
adds r0, r0, r3
cmp r1, r0
bgt _0809AAE4
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
_0809AAE4:
pop {r4, pc}
.align 2, 0
_0809AAE8: .4byte gUnk_03000BF0
thumb_func_start sub_0809AAEC
sub_0809AAEC: @ 0x0809AAEC
push {lr}
ldr r2, _0809AB00 @ =gUnk_08123D28
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809AB00: .4byte gUnk_08123D28
thumb_func_start sub_0809AB04
sub_0809AB04: @ 0x0809AB04
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x31
bl sub_0807CBE4
cmp r0, #0
beq _0809AB22
adds r0, r5, #0
bl sub_0809AD68
adds r0, r5, #0
bl sub_0809AD8C
bl sub_0805E780
_0809AB22:
movs r0, #0x36
movs r1, #0
bl sub_0804AA60
adds r4, r0, #0
cmp r4, #0
beq _0809AB9C
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
str r4, [r5, #0x54]
ldr r2, _0809AB68 @ =gUnk_030010A0
adds r0, r2, #0
adds r0, #0x38
ldrb r1, [r0]
cmp r1, #0
beq _0809AB70
adds r0, #1
ldrb r0, [r0]
cmp r0, #0
beq _0809AB52
bl sub_0805E780
_0809AB52:
movs r0, #7
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #0xb
ands r0, r1
strb r0, [r5, #0x18]
ldr r0, _0809AB6C @ =gUnk_03000BF0
str r5, [r0, #0x30]
bl sub_080809D4
b _0809AB9C
.align 2, 0
_0809AB68: .4byte gUnk_030010A0
_0809AB6C: .4byte gUnk_03000BF0
_0809AB70:
movs r0, #1
strb r0, [r5, #0xc]
movs r0, #0x1e
strb r0, [r5, #0xe]
strb r1, [r5, #0x1e]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
adds r1, r5, #0
adds r1, #0x63
movs r0, #0x20
strb r0, [r1]
ldr r1, _0809ABA0 @ =gUnk_08012DD8
adds r0, r5, #0
bl sub_0807DAD0
adds r1, r5, #0
adds r1, #0x84
str r0, [r1]
_0809AB9C:
pop {r4, r5, pc}
.align 2, 0
_0809ABA0: .4byte gUnk_08012DD8
thumb_func_start sub_0809ABA4
sub_0809ABA4: @ 0x0809ABA4
push {lr}
movs r1, #0
bl sub_0807DDAC
pop {pc}
.align 2, 0
thumb_func_start sub_0809ABB0
sub_0809ABB0: @ 0x0809ABB0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809ABCE
movs r0, #3
strb r0, [r2, #0xc]
movs r0, #0x78
strb r0, [r2, #0xe]
ldr r1, _0809ABD0 @ =gUnk_03000BF0
ldr r0, [r2, #0x54]
str r0, [r1, #0x30]
_0809ABCE:
pop {pc}
.align 2, 0
_0809ABD0: .4byte gUnk_03000BF0
thumb_func_start sub_0809ABD4
sub_0809ABD4: @ 0x0809ABD4
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809ABF2
movs r0, #4
strb r0, [r1, #0xc]
movs r0, #0x5a
strb r0, [r1, #0xe]
ldr r1, [r1, #0x54]
movs r0, #1
strb r0, [r1, #0xd]
_0809ABF2:
pop {pc}
thumb_func_start sub_0809ABF4
sub_0809ABF4: @ 0x0809ABF4
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x54]
ldrb r0, [r0, #0xd]
cmp r0, #2
bls _0809AC36
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0809AC36
movs r0, #5
strb r0, [r2, #0xc]
movs r0, #8
strb r0, [r2, #0xe]
strb r1, [r2, #0xf]
ldrb r1, [r2, #0x19]
subs r0, #0x15
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r2, #0x19]
ldr r1, _0809AC38 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xf4
lsls r0, r0, #4
strh r0, [r2]
adds r1, #0x68
movs r0, #0x10
strh r0, [r1]
_0809AC36:
pop {pc}
.align 2, 0
_0809AC38: .4byte gUnk_03000F50
thumb_func_start sub_0809AC3C
sub_0809AC3C: @ 0x0809AC3C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r3, #0xff
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _0809AC9A
movs r0, #8
strb r0, [r4, #0xe]
ldrb r2, [r4, #0xf]
adds r2, #1
strb r2, [r4, #0xf]
adds r1, r2, #0
ands r1, r3
ldr r6, _0809AC9C @ =gUnk_03000F50
lsls r3, r1, #8
movs r0, #0x10
subs r0, r0, r1
movs r1, #0xff
ands r0, r1
orrs r3, r0
adds r0, r6, #0
adds r0, #0x68
strh r3, [r0]
lsls r2, r2, #0x18
lsrs r2, r2, #0x18
cmp r2, #0xf
bls _0809AC9A
ldrb r1, [r4, #0x19]
movs r0, #0xd
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x19]
adds r0, r6, #0
adds r0, #0x66
strh r5, [r0]
movs r0, #6
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x13
ands r0, r1
strb r0, [r4, #0x18]
_0809AC9A:
pop {r4, r5, r6, pc}
.align 2, 0
_0809AC9C: .4byte gUnk_03000F50
thumb_func_start sub_0809ACA0
sub_0809ACA0: @ 0x0809ACA0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809ACC4
ldr r1, [r2, #0x54]
movs r0, #6
strb r0, [r1, #0xd]
ldr r0, _0809ACC8 @ =gUnk_030010A0
adds r0, #0x38
movs r1, #0xf1
strb r1, [r0]
adds r0, r2, #0
bl sub_0805E7BC
_0809ACC4:
pop {pc}
.align 2, 0
_0809ACC8: .4byte gUnk_030010A0
thumb_func_start sub_0809ACCC
sub_0809ACCC: @ 0x0809ACCC
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x54]
ldrb r0, [r0, #0xe]
cmp r0, #1
bne _0809ACE4
movs r0, #0
movs r1, #8
strb r1, [r2, #0xc]
strb r0, [r2, #0xd]
movs r0, #0xb4
strb r0, [r2, #0xe]
_0809ACE4:
pop {pc}
.align 2, 0
thumb_func_start sub_0809ACE8
sub_0809ACE8: @ 0x0809ACE8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #1
beq _0809AD1E
cmp r0, #2
beq _0809AD3A
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809AD58
movs r0, #0x5a
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x73
bl sub_080A3268
movs r0, #0x31
bl sub_0807CCC8
adds r0, r4, #0
bl sub_0809AD8C
b _0809AD58
_0809AD1E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809AD58
movs r0, #0x78
strb r0, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xd]
adds r0, r4, #0
bl sub_0809AD68
b _0809AD58
_0809AD3A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809AD58
ldr r1, _0809AD5C @ =gUnk_03000BF0
ldr r0, _0809AD60 @ =gLinkEntity
str r0, [r1, #0x30]
ldr r0, _0809AD64 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0805E780
_0809AD58:
pop {r4, pc}
.align 2, 0
_0809AD5C: .4byte gUnk_03000BF0
_0809AD60: .4byte gLinkEntity
_0809AD64: .4byte gUnk_03003F80
thumb_func_start sub_0809AD68
sub_0809AD68: @ 0x0809AD68
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_0804B128
bl sub_0804ADDC
movs r0, #0x17
bl sub_0807CA84
cmp r0, #0
beq _0809AD8A
ldrb r0, [r4, #0xb]
bl sub_0804B128
bl sub_0804ADDC
_0809AD8A:
pop {r4, pc}
thumb_func_start sub_0809AD8C
sub_0809AD8C: @ 0x0809AD8C
push {lr}
movs r0, #0x4f
movs r1, #0x22
movs r2, #0
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _0809ADAC
ldr r0, _0809ADB0 @ =gUnk_03000BF0
ldrh r1, [r0, #6]
adds r1, #0xb8
strh r1, [r2, #0x2e]
ldrh r0, [r0, #8]
adds r0, #8
strh r0, [r2, #0x32]
_0809ADAC:
pop {pc}
.align 2, 0
_0809ADB0: .4byte gUnk_03000BF0
thumb_func_start sub_0809ADB4
sub_0809ADB4: @ 0x0809ADB4
push {lr}
ldr r2, _0809ADC8 @ =gUnk_08123D4C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809ADC8: .4byte gUnk_08123D4C
thumb_func_start sub_0809ADCC
sub_0809ADCC: @ 0x0809ADCC
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0809AE14 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r5, r4, #0
adds r5, #0x80
strh r1, [r5]
adds r0, r4, #0
adds r0, #0x38
ldrb r7, [r0]
adds r0, r4, #0
bl sub_08016A04
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _0809AEBC
cmp r0, #1
bgt _0809AE18
cmp r0, #0
beq _0809AE1E
b _0809AF46
.align 2, 0
_0809AE14: .4byte gUnk_03000BF0
_0809AE18:
cmp r0, #2
beq _0809AF10
b _0809AF46
_0809AE1E:
movs r0, #2
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0xa
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrh r5, [r5]
subs r6, r5, #1
ldr r4, _0809AEB8 @ =0x00004022
adds r0, r4, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
adds r0, r4, #0
adds r1, r5, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #1
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x3f
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x40
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x41
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r4, #0x1b
adds r1, r5, #0
subs r1, #0x41
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
subs r4, #0x17
adds r1, r5, #0
subs r1, #0x3f
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x81
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x80
adds r0, r4, #0
b _0809AF04
.align 2, 0
_0809AEB8: .4byte 0x00004022
_0809AEBC:
strb r0, [r4, #0xc]
ldrh r6, [r5]
ldr r4, _0809AEF4 @ =0x00004022
adds r0, r4, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x40
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809AEF8 @ =0x00004025
adds r1, r6, #0
adds r1, #0x41
adds r2, r7, #0
bl sub_0800015E
movs r0, #0x4f
bl sub_0807CBD0
cmp r0, #0
bne _0809AF00
ldr r0, _0809AEFC @ =0x0000402F
b _0809AF02
.align 2, 0
_0809AEF4: .4byte 0x00004022
_0809AEF8: .4byte 0x00004025
_0809AEFC: .4byte 0x0000402F
_0809AF00:
ldr r0, _0809AF0C @ =0x0000402D
_0809AF02:
adds r1, r6, #1
_0809AF04:
adds r2, r7, #0
bl sub_0800015E
b _0809AF46
.align 2, 0
_0809AF0C: .4byte 0x0000402D
_0809AF10:
movs r0, #1
strb r0, [r4, #0xc]
ldrh r5, [r5]
adds r6, r5, #0
subs r6, #0x41
ldr r4, _0809AF48 @ =0x00004022
adds r0, r4, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
subs r1, r5, #1
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r0, r4, #0
adds r1, r5, #0
adds r2, r7, #0
bl sub_0800015E
_0809AF46:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809AF48: .4byte 0x00004022
thumb_func_start nullsub_535
nullsub_535: @ 0x0809AF4C
bx lr
.align 2, 0
thumb_func_start sub_0809AF50
sub_0809AF50: @ 0x0809AF50
push {lr}
bl nullsub_2
pop {pc}
thumb_func_start nullsub_2
nullsub_2: @ 0x0809AF58
bx lr
.align 2, 0
thumb_func_start sub_0809AF5C
sub_0809AF5C: @ 0x0809AF5C
push {lr}
ldr r2, _0809AF70 @ =gUnk_08123D58
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809AF70: .4byte gUnk_08123D58
thumb_func_start sub_0809AF74
sub_0809AF74: @ 0x0809AF74
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
strb r0, [r4, #0x1e]
movs r0, #0x2e
ldrsh r2, [r4, r0]
ldr r1, _0809AFBC @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r2, r2, r0
asrs r2, r2, #4
movs r3, #0x3f
ands r2, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r2, r0
adds r0, r4, #0
adds r0, #0x80
movs r6, #0
strh r2, [r0]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809AFC4
movs r1, #1
strb r1, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x84
ldrb r0, [r0]
cmp r0, #0
bne _0809AFC0
strb r6, [r4, #0xd]
b _0809B02C
.align 2, 0
_0809AFBC: .4byte gUnk_03000BF0
_0809AFC0:
strb r1, [r4, #0xd]
b _0809B02C
_0809AFC4:
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #4
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x84
strb r6, [r0]
adds r0, r4, #0
bl sub_08016A04
movs r0, #0x8b
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0809B026
str r4, [r5, #0x50]
str r5, [r4, #0x54]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _0809B010
movs r3, #0x80
lsls r3, r3, #0xd
adds r0, r4, #0
adds r1, r5, #0
adds r2, r3, #0
bl sub_0806FA48
adds r0, r5, #0
adds r0, #0x84
strb r6, [r0]
b _0809B026
_0809B010:
movs r3, #0x80
lsls r3, r3, #0xd
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
adds r1, r5, #0
adds r1, #0x84
movs r0, #1
strb r0, [r1]
_0809B026:
adds r0, r4, #0
bl sub_0809B334
_0809B02C:
adds r0, r4, #0
bl sub_0809B0B0
pop {r4, r5, r6, pc}
thumb_func_start sub_0809B034
sub_0809B034: @ 0x0809B034
push {r4, lr}
adds r4, r0, #0
adds r0, #0x82
ldrh r0, [r0]
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_080002B0
adds r0, r4, #0
bl sub_0809B234
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809B050
sub_0809B050: @ 0x0809B050
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809B0A2
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0809B0A4 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x80
strh r1, [r0]
movs r0, #0
bl sub_08078A90
adds r0, r4, #0
bl sub_0809B0B0
movs r0, #0x86
lsls r0, r0, #1
bl sub_08004488
_0809B0A2:
pop {r4, r5, pc}
.align 2, 0
_0809B0A4: .4byte gUnk_03000BF0
thumb_func_start sub_0809B0A8
sub_0809B0A8: @ 0x0809B0A8
push {lr}
bl sub_0809B234
pop {pc}
thumb_func_start sub_0809B0B0
sub_0809B0B0: @ 0x0809B0B0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
adds r0, #0x80
ldrh r0, [r0]
subs r6, r0, #1
mov r0, r8
adds r0, #0x38
ldrb r7, [r0]
mov r1, r8
ldrb r0, [r1, #0xd]
cmp r0, #4
bls _0809B0CE
b _0809B228
_0809B0CE:
lsls r0, r0, #2
ldr r1, _0809B0D8 @ =_0809B0DC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809B0D8: .4byte _0809B0DC
_0809B0DC: @ jump table
.4byte _0809B0F0 @ case 0
.4byte _0809B130 @ case 1
.4byte _0809B178 @ case 2
.4byte _0809B1C0 @ case 3
.4byte _0809B208 @ case 4
_0809B0F0:
mov r1, r8
adds r1, #0x84
movs r0, #0
strb r0, [r1]
adds r5, r6, #2
mov r0, r8
adds r0, #0x82
strh r5, [r0]
ldr r0, _0809B128 @ =0x00004082
subs r1, r6, #1
adds r2, r7, #0
bl sub_0800015E
ldr r4, _0809B12C @ =0x00004022
adds r0, r4, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r6, #1
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r0, r4, #0
adds r1, r5, #0
b _0809B162
.align 2, 0
_0809B128: .4byte 0x00004082
_0809B12C: .4byte 0x00004022
_0809B130:
mov r1, r8
adds r1, #0x84
movs r0, #1
strb r0, [r1]
mov r0, r8
adds r0, #0x82
strh r6, [r0]
ldr r0, _0809B16C @ =0x0000405F
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
ldr r4, _0809B170 @ =0x00004022
adds r1, r6, #1
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r6, #2
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809B174 @ =0x00004082
adds r1, r6, #3
_0809B162:
adds r2, r7, #0
bl sub_0800015E
b _0809B228
.align 2, 0
_0809B16C: .4byte 0x0000405F
_0809B170: .4byte 0x00004022
_0809B174: .4byte 0x00004082
_0809B178:
mov r1, r8
adds r1, #0x84
movs r0, #1
strb r0, [r1]
mov r0, r8
adds r0, #0x82
strh r6, [r0]
ldr r0, _0809B1B4 @ =0x00004082
adds r1, r6, #3
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809B1B8 @ =0x00004022
adds r1, r6, #2
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809B1BC @ =0x0000405F
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
mov r1, r8
ldr r0, [r1, #0x50]
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
b _0809B228
.align 2, 0
_0809B1B4: .4byte 0x00004082
_0809B1B8: .4byte 0x00004022
_0809B1BC: .4byte 0x0000405F
_0809B1C0:
mov r1, r8
adds r1, #0x84
movs r0, #0
strb r0, [r1]
adds r4, r6, #2
mov r0, r8
adds r0, #0x82
strh r4, [r0]
ldr r0, _0809B1FC @ =0x00004082
subs r1, r6, #1
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809B200 @ =0x00004022
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
ldr r0, _0809B204 @ =0x0000405F
adds r1, r4, #0
adds r2, r7, #0
bl sub_0800015E
mov r1, r8
ldr r0, [r1, #0x50]
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
b _0809B228
.align 2, 0
_0809B1FC: .4byte 0x00004082
_0809B200: .4byte 0x00004022
_0809B204: .4byte 0x0000405F
_0809B208:
ldr r4, _0809B230 @ =0x00004022
adds r0, r4, #0
adds r1, r6, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r6, #1
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
adds r1, r6, #2
adds r0, r4, #0
adds r2, r7, #0
bl sub_0800015E
_0809B228:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809B230: .4byte 0x00004022
thumb_func_start sub_0809B234
sub_0809B234: @ 0x0809B234
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809B26A
ldr r2, [r4, #0x50]
ldrb r1, [r2, #0x19]
lsrs r1, r1, #6
lsls r1, r1, #6
ldrb r3, [r4, #0x19]
movs r0, #0x3f
ands r0, r3
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, #0x29
ldrb r1, [r2]
lsls r1, r1, #0x1d
adds r3, r4, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
b _0809B270
_0809B26A:
adds r0, r4, #0
bl sub_0809B274
_0809B270:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809B274
sub_0809B274: @ 0x0809B274
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _0809B290 @ =gLinkEntity
adds r2, r4, #0
adds r2, #0x84
ldrb r0, [r2]
cmp r0, #1
beq _0809B2BA
cmp r0, #1
bgt _0809B294
cmp r0, #0
beq _0809B29A
b _0809B332
.align 2, 0
_0809B290: .4byte gLinkEntity
_0809B294:
cmp r0, #2
beq _0809B30C
b _0809B332
_0809B29A:
movs r1, #0x32
ldrsh r0, [r3, r1]
adds r0, #0x14
movs r3, #0x32
ldrsh r1, [r4, r3]
cmp r0, r1
bge _0809B332
movs r0, #1
strb r0, [r2]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #9
ands r0, r1
movs r1, #5
b _0809B306
_0809B2BA:
movs r5, #0x2e
ldrsh r0, [r3, r5]
adds r0, #0x1c
movs r5, #0x2e
ldrsh r1, [r4, r5]
cmp r0, r1
ble _0809B2E8
movs r0, #2
strb r0, [r2]
ldr r0, _0809B2E4 @ =0x00004022
adds r1, r4, #0
adds r1, #0x80
ldrh r1, [r1]
adds r1, #2
movs r2, #1
bl sub_0800015E
ldr r0, [r4, #0x54]
bl sub_0809B358
b _0809B332
.align 2, 0
_0809B2E4: .4byte 0x00004022
_0809B2E8:
movs r1, #0x32
ldrsh r0, [r3, r1]
adds r0, #0x10
movs r3, #0x32
ldrsh r1, [r4, r3]
cmp r0, r1
ble _0809B332
movs r0, #0
strb r0, [r2]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #8
ands r0, r1
movs r1, #4
_0809B306:
orrs r0, r1
strb r0, [r2]
b _0809B332
_0809B30C:
movs r5, #0x2e
ldrsh r0, [r3, r5]
adds r0, #0x20
movs r3, #0x2e
ldrsh r1, [r4, r3]
cmp r0, r1
bge _0809B332
movs r0, #1
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x80
ldrh r0, [r0]
adds r0, #2
movs r1, #1
bl sub_0807BA8C
ldr r0, [r4, #0x54]
bl sub_0809B38C
_0809B332:
pop {r4, r5, pc}
thumb_func_start sub_0809B334
sub_0809B334: @ 0x0809B334
push {r4, r5, lr}
adds r0, #0x80
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x81
movs r5, #2
_0809B340:
ldr r0, _0809B354 @ =0x00004026
adds r1, r4, #0
movs r2, #1
bl sub_0800015E
subs r5, #1
adds r4, #1
cmp r5, #0
bge _0809B340
pop {r4, r5, pc}
.align 2, 0
_0809B354: .4byte 0x00004026
thumb_func_start sub_0809B358
sub_0809B358: @ 0x0809B358
push {r4, r5, r6, lr}
adds r1, r0, #0
adds r1, #0x84
ldrb r1, [r1]
lsls r1, r1, #1
ldr r2, _0809B388 @ =gUnk_08123D68
adds r5, r1, r2
adds r0, #0x80
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x82
movs r6, #4
_0809B370:
ldrh r0, [r5]
adds r1, r4, #0
movs r2, #1
bl sub_0800015E
subs r6, #1
adds r4, #1
adds r5, #4
cmp r6, #0
bge _0809B370
pop {r4, r5, r6, pc}
.align 2, 0
_0809B388: .4byte gUnk_08123D68
thumb_func_start sub_0809B38C
sub_0809B38C: @ 0x0809B38C
push {r4, r5, lr}
adds r0, #0x80
ldrh r0, [r0]
adds r4, r0, #0
subs r4, #0x82
movs r5, #4
_0809B398:
adds r0, r4, #0
movs r1, #1
bl sub_0807BA8C
subs r5, #1
adds r4, #1
cmp r5, #0
bge _0809B398
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809B3AC
sub_0809B3AC: @ 0x0809B3AC
push {lr}
ldr r2, _0809B3C0 @ =gUnk_08123D7C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809B3C0: .4byte gUnk_08123D7C
thumb_func_start sub_0809B3C4
sub_0809B3C4: @ 0x0809B3C4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
adds r0, #0x39
bl sub_0807CA84
adds r5, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #3
beq _0809B3E2
cmp r5, #0
beq _0809B3FE
bl sub_0805E780
b _0809B3FE
_0809B3E2:
movs r0, #0x73
bl sub_0807CBD0
cmp r0, #0
beq _0809B3F0
bl sub_0805E780
_0809B3F0:
cmp r5, #2
beq _0809B3FE
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_0809B3FE:
adds r1, r4, #0
adds r1, #0x63
movs r0, #3
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809B424
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0809B420
ldrh r0, [r4, #0x32]
adds r0, #0x30
strh r0, [r4, #0x32]
_0809B420:
movs r0, #2
strb r0, [r4, #0xb]
_0809B424:
adds r0, r4, #0
bl sub_08016A04
ldrb r1, [r4, #0xa]
adds r1, #0x39
adds r0, r4, #0
bl sub_080042AC
ldrb r1, [r4, #0xb]
cmp r1, #1
beq _0809B46C
cmp r1, #1
bgt _0809B444
cmp r1, #0
beq _0809B44E
b _0809B4A6
_0809B444:
cmp r1, #2
beq _0809B488
cmp r1, #3
beq _0809B48E
b _0809B4A6
_0809B44E:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x16
strb r0, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x80
strb r1, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
b _0809B49E
_0809B46C:
movs r0, #3
strb r0, [r4, #0xc]
ldr r0, _0809B484 @ =gUnk_03000BF0
ldrh r0, [r0, #0xc]
subs r0, #0x10
ldrh r1, [r4, #0x32]
subs r1, r1, r0
ldrh r0, [r4, #0x36]
subs r0, r0, r1
strh r0, [r4, #0x36]
b _0809B4A6
.align 2, 0
_0809B484: .4byte gUnk_03000BF0
_0809B488:
movs r0, #4
strb r0, [r4, #0xc]
b _0809B4A6
_0809B48E:
movs r1, #0
movs r0, #5
strb r0, [r4, #0xc]
strb r1, [r4, #0xd]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #0xd
_0809B49E:
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
_0809B4A6:
pop {r4, r5, pc}
thumb_func_start sub_0809B4A8
sub_0809B4A8: @ 0x0809B4A8
push {r4, lr}
adds r4, r0, #0
bl sub_0800445C
adds r1, r4, #0
adds r1, #0x80
ldrb r0, [r1]
cmp r0, #0
beq _0809B4C0
subs r0, #1
strb r0, [r1]
b _0809B520
_0809B4C0:
adds r0, r4, #0
bl sub_0809B688
cmp r0, #0
beq _0809B51C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r3, r0, #0x18
cmp r3, #0
bne _0809B520
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #0x40
strh r0, [r4, #0x24]
movs r0, #0x10
strb r0, [r4, #0x15]
ldr r2, _0809B510 @ =gUnk_03003F80
movs r0, #0x9e
strb r0, [r2, #6]
movs r0, #5
strb r0, [r2, #0xc]
ldr r0, [r2, #0x30]
movs r1, #1
orrs r0, r1
str r0, [r2, #0x30]
ldr r1, _0809B514 @ =gLinkEntity
strh r3, [r1, #0x2c]
strh r3, [r1, #0x30]
ldrb r0, [r1, #0x14]
lsls r0, r0, #2
strb r0, [r1, #0x15]
ldr r0, _0809B518 @ =0x0000010F
bl sub_08004488
b _0809B520
.align 2, 0
_0809B510: .4byte gUnk_03003F80
_0809B514: .4byte gLinkEntity
_0809B518: .4byte 0x0000010F
_0809B51C:
movs r0, #0x16
strb r0, [r4, #0xe]
_0809B520:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809B524
sub_0809B524: @ 0x0809B524
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0809B564
ldrb r0, [r2, #0xf]
subs r0, #1
strb r0, [r2, #0xf]
ands r0, r1
cmp r0, #0
bne _0809B554
movs r0, #3
strb r0, [r2, #0xc]
ldrh r0, [r2, #0x32]
adds r0, #0x20
strh r0, [r2, #0x32]
ldrh r0, [r2, #0x36]
subs r0, #0x20
strh r0, [r2, #0x36]
b _0809B564
_0809B554:
movs r0, #1
strb r0, [r2, #0xc]
movs r0, #0x16
strb r0, [r2, #0xe]
adds r1, r2, #0
adds r1, #0x80
movs r0, #0x18
strb r0, [r1]
_0809B564:
adds r0, r2, #0
bl sub_0806F69C
pop {pc}
thumb_func_start sub_0809B56C
sub_0809B56C: @ 0x0809B56C
push {r4, lr}
adds r4, r0, #0
movs r1, #0xa0
lsls r1, r1, #6
bl sub_080044EC
cmp r0, #1
bne _0809B5B0
movs r2, #4
movs r0, #4
strb r0, [r4, #0xc]
adds r3, r4, #0
adds r3, #0x29
ldrb r1, [r3]
subs r0, #0xc
ands r0, r1
orrs r0, r2
strb r0, [r3]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
adds r0, r4, #0
movs r1, #2
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0809B5B0
adds r0, r4, #0
bl sub_0806FAB0
_0809B5B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809B5B4
sub_0809B5B4: @ 0x0809B5B4
push {r4, lr}
adds r4, r0, #0
ldr r0, _0809B5CC @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0809B5D0
adds r0, r4, #0
bl sub_0800445C
b _0809B5EA
.align 2, 0
_0809B5CC: .4byte gUnk_03003F80
_0809B5D0:
adds r0, r4, #0
bl sub_08017850
cmp r0, #0
beq _0809B5EA
ldrb r0, [r4, #0xa]
adds r0, #0x39
movs r1, #0
movs r2, #0
bl sub_080A7C00
bl sub_0805E780
_0809B5EA:
pop {r4, pc}
thumb_func_start sub_0809B5EC
sub_0809B5EC: @ 0x0809B5EC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x18]
lsls r0, r1, #0x1e
lsrs r5, r0, #0x1e
cmp r5, #1
bne _0809B646
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0809B606
cmp r0, #1
beq _0809B630
b _0809B682
_0809B606:
movs r0, #7
movs r1, #0x1a
movs r2, #7
bl sub_0805EB00
adds r2, r0, #0
cmp r2, #0
beq _0809B682
movs r0, #0x2e
ldrsh r1, [r2, r0]
movs r3, #0x2e
ldrsh r0, [r4, r3]
cmp r1, r0
blt _0809B682
ldrb r0, [r2, #0x14]
cmp r0, #4
bne _0809B682
str r2, [r4, #0x50]
strb r5, [r4, #0xd]
adds r0, r2, #0
b _0809B63E
_0809B630:
ldr r1, [r4, #0x50]
cmp r1, #0
beq _0809B650
ldr r0, [r1, #4]
cmp r0, #0
beq _0809B650
adds r0, r1, #0
_0809B63E:
adds r1, r4, #0
bl sub_0809B6B0
b _0809B682
_0809B646:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0809B656
cmp r0, #1
beq _0809B668
_0809B650:
bl sub_0805E780
b _0809B682
_0809B656:
ldrb r0, [r4, #0xa]
adds r0, #0x39
bl sub_0807CA84
cmp r0, #2
bne _0809B682
movs r0, #1
strb r0, [r4, #0xd]
b _0809B682
_0809B668:
ldr r0, _0809B684 @ =gUnk_02000050
ldrb r0, [r0]
movs r2, #0x7f
ands r2, r0
cmp r2, #0
bne _0809B682
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
strb r2, [r4, #0xd]
_0809B682:
pop {r4, r5, pc}
.align 2, 0
_0809B684: .4byte gUnk_02000050
thumb_func_start sub_0809B688
sub_0809B688: @ 0x0809B688
push {lr}
ldr r1, _0809B6A8 @ =gLinkEntity
movs r2, #6
movs r3, #0xc
bl sub_080041A0
adds r1, r0, #0
cmp r1, #1
bne _0809B6A4
ldr r0, _0809B6AC @ =gUnk_03003F80
ldrb r0, [r0, #0xd]
cmp r0, #0x10
beq _0809B6A4
movs r1, #0
_0809B6A4:
adds r0, r1, #0
pop {pc}
.align 2, 0
_0809B6A8: .4byte gLinkEntity
_0809B6AC: .4byte gUnk_03003F80
thumb_func_start sub_0809B6B0
sub_0809B6B0: @ 0x0809B6B0
push {r4, lr}
adds r4, r1, #0
ldr r2, _0809B6EC @ =gUnk_08123D94
ldrb r1, [r0, #0x14]
lsrs r1, r1, #1
adds r1, r1, r2
movs r3, #0
ldrsb r3, [r1, r3]
lsls r3, r3, #0x10
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
rsbs r0, r0, #0
strh r0, [r4, #0x36]
ldrb r0, [r4, #0xa]
movs r1, #3
subs r1, r1, r0
adds r4, #0x29
movs r0, #7
ands r1, r0
ldrb r2, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4]
pop {r4, pc}
.align 2, 0
_0809B6EC: .4byte gUnk_08123D94
thumb_func_start sub_0809B6F0
sub_0809B6F0: @ 0x0809B6F0
push {lr}
ldr r2, _0809B704 @ =gUnk_08123D98
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809B704: .4byte gUnk_08123D98
thumb_func_start sub_0809B708
sub_0809B708: @ 0x0809B708
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r2, #1
movs r0, #1
strb r0, [r6, #0xc]
ldrb r1, [r6, #0x18]
subs r0, #5
ands r0, r1
orrs r0, r2
strb r0, [r6, #0x18]
movs r0, #0x80
strh r0, [r6, #0x24]
adds r0, r6, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809B73A
adds r0, r6, #0
bl sub_0809B7DC
bl sub_0805E780
b _0809B78A
_0809B73A:
ldr r0, _0809B794 @ =0x0000030B
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldr r5, _0809B798 @ =gUnk_03000BF0
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #2
bl sub_0807B7D8
ldr r0, _0809B79C @ =0x00004061
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r6, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_0809B78A:
adds r0, r6, #0
bl sub_0809B7A0
pop {r4, r5, r6, pc}
.align 2, 0
_0809B794: .4byte 0x0000030B
_0809B798: .4byte gUnk_03000BF0
_0809B79C: .4byte 0x00004061
thumb_func_start sub_0809B7A0
sub_0809B7A0: @ 0x0809B7A0
push {r4, lr}
adds r4, r0, #0
bl sub_0809B7C0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809B7BC
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
bl sub_0805E780
_0809B7BC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809B7C0
sub_0809B7C0: @ 0x0809B7C0
push {r4, lr}
adds r4, r0, #0
bl sub_080002A0
ldr r1, _0809B7D8 @ =0xFFFFBF9F
adds r0, r0, r1
cmp r0, #1
bls _0809B7D6
adds r0, r4, #0
bl sub_0809B7DC
_0809B7D6:
pop {r4, pc}
.align 2, 0
_0809B7D8: .4byte 0xFFFFBF9F
thumb_func_start sub_0809B7DC
sub_0809B7DC: @ 0x0809B7DC
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r0, #0xc3
lsls r0, r0, #2
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldr r5, _0809B838 @ =gUnk_03000BF0
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
movs r2, #2
bl sub_0807B7D8
ldr r0, _0809B83C @ =0x00004062
movs r2, #0x2e
ldrsh r1, [r6, r2]
ldrh r2, [r5, #6]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r4
movs r3, #0x32
ldrsh r2, [r6, r3]
ldrh r3, [r5, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r6, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
movs r0, #1
strb r0, [r6, #0xe]
pop {r4, r5, r6, pc}
.align 2, 0
_0809B838: .4byte gUnk_03000BF0
_0809B83C: .4byte 0x00004062
thumb_func_start sub_0809B840
sub_0809B840: @ 0x0809B840
push {lr}
ldr r2, _0809B854 @ =gUnk_08123DA0
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809B854: .4byte gUnk_08123DA0
thumb_func_start sub_0809B858
sub_0809B858: @ 0x0809B858
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x1e
bl sub_0805E4E0
ldrb r3, [r4, #0xc]
cmp r3, #1
beq _0809B8CC
cmp r3, #1
bgt _0809B872
cmp r3, #0
beq _0809B878
b _0809B972
_0809B872:
cmp r3, #2
beq _0809B948
b _0809B972
_0809B878:
movs r1, #1
strb r1, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
strb r3, [r4, #0xf]
ldr r0, _0809B8BC @ =gUnk_03000BF0
str r4, [r0, #0x30]
strb r1, [r0, #0xe]
ldr r5, _0809B8C0 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0x2e
ldrsh r0, [r5, r2]
movs r2, #6
cmp r1, r0
ble _0809B89A
movs r2, #2
_0809B89A:
strb r2, [r5, #0x14]
ldr r2, _0809B8C4 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809B8C8 @ =0x0000BFFF
ands r0, r1
movs r4, #0xa0
lsls r4, r4, #6
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
adds r0, r2, #0
adds r0, #0x58
strh r3, [r0]
adds r2, #0x5c
movs r0, #0xa0
strh r0, [r2]
b _0809B972
.align 2, 0
_0809B8BC: .4byte gUnk_03000BF0
_0809B8C0: .4byte gLinkEntity
_0809B8C4: .4byte gUnk_03000F50
_0809B8C8: .4byte 0x0000BFFF
_0809B8CC:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809B8D8
subs r0, #1
strb r0, [r4, #0xe]
b _0809B972
_0809B8D8:
ldrb r0, [r4, #0xf]
cmp r0, #0x1f
bhi _0809B914
ldr r5, _0809B90C @ =gUnk_030010A0
ldr r0, [r5]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0809B8F0
ldr r0, _0809B910 @ =0x00000133
bl sub_080A3268
_0809B8F0:
ldr r0, [r5]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0809B972
ldrb r1, [r4, #0xf]
adds r1, #1
strb r1, [r4, #0xf]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl sub_0809B97C
b _0809B972
.align 2, 0
_0809B90C: .4byte gUnk_030010A0
_0809B910: .4byte 0x00000133
_0809B914:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r2, _0809B938 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809B93C @ =0x0000DFFF
ands r0, r1
strh r0, [r2]
ldr r1, _0809B940 @ =gUnk_03000BF0
ldr r0, _0809B944 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #0x9a
lsls r0, r0, #1
bl sub_080A3268
b _0809B972
.align 2, 0
_0809B938: .4byte gUnk_03000F50
_0809B93C: .4byte 0x0000DFFF
_0809B940: .4byte gUnk_03000BF0
_0809B944: .4byte gLinkEntity
_0809B948:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809B972
ldr r2, _0809B974 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x90
lsls r3, r3, #7
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0809B978 @ =gUnk_03000BF0
movs r0, #4
strb r0, [r1, #0xe]
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xd]
bl sub_0805E780
_0809B972:
pop {r4, r5, pc}
.align 2, 0
_0809B974: .4byte gUnk_03000F50
_0809B978: .4byte gUnk_03000BF0
thumb_func_start sub_0809B97C
sub_0809B97C: @ 0x0809B97C
push {lr}
movs r3, #0x2e
ldrsh r2, [r0, r3]
ldr r0, _0809B9B4 @ =gUnk_03000BF0
movs r3, #0xa
ldrsh r0, [r0, r3]
subs r2, r2, r0
subs r0, r2, r1
adds r2, r2, r1
cmp r0, #0
bge _0809B994
movs r0, #0
_0809B994:
cmp r0, #0xf0
ble _0809B99A
movs r0, #0xf0
_0809B99A:
cmp r2, #0
bge _0809B9A0
movs r2, #0
_0809B9A0:
cmp r2, #0xf0
ble _0809B9A6
movs r2, #0xf0
_0809B9A6:
ldr r1, _0809B9B8 @ =gUnk_03000F50
lsls r0, r0, #8
orrs r0, r2
adds r1, #0x58
strh r0, [r1]
pop {pc}
.align 2, 0
_0809B9B4: .4byte gUnk_03000BF0
_0809B9B8: .4byte gUnk_03000F50
thumb_func_start sub_0809B9BC
sub_0809B9BC: @ 0x0809B9BC
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x1e
bl sub_0805E4E0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0809BA34
cmp r0, #1
bgt _0809B9D6
cmp r0, #0
beq _0809B9DC
b _0809BAC2
_0809B9D6:
cmp r0, #2
beq _0809BA9C
b _0809BAC2
_0809B9DC:
movs r1, #1
strb r1, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0x20
strb r0, [r4, #0xf]
ldr r0, _0809BA24 @ =gUnk_03000BF0
str r4, [r0, #0x30]
strb r1, [r0, #0xe]
ldr r3, _0809BA28 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0x2e
ldrsh r0, [r3, r2]
movs r2, #6
cmp r1, r0
ble _0809BA00
movs r2, #2
_0809BA00:
strb r2, [r3, #0x14]
ldr r2, _0809BA2C @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809BA30 @ =0x0000BFFF
ands r0, r1
movs r3, #0x80
lsls r3, r3, #6
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
adds r1, r2, #0
adds r1, #0x58
movs r0, #0xf0
strh r0, [r1]
adds r2, #0x5c
movs r0, #0xa0
strh r0, [r2]
b _0809BAC2
.align 2, 0
_0809BA24: .4byte gUnk_03000BF0
_0809BA28: .4byte gLinkEntity
_0809BA2C: .4byte gUnk_03000F50
_0809BA30: .4byte 0x0000BFFF
_0809BA34:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809BA40
subs r0, #1
strb r0, [r4, #0xe]
b _0809BAC2
_0809BA40:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0809BA7C
ldr r5, _0809BA74 @ =gUnk_030010A0
ldr r0, [r5]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0809BA58
ldr r0, _0809BA78 @ =0x00000133
bl sub_080A3268
_0809BA58:
ldr r0, [r5]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0809BAC2
ldrb r1, [r4, #0xf]
subs r1, #1
strb r1, [r4, #0xf]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
adds r0, r4, #0
bl sub_0809B97C
b _0809BAC2
.align 2, 0
_0809BA74: .4byte gUnk_030010A0
_0809BA78: .4byte 0x00000133
_0809BA7C:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r1, _0809BA94 @ =gUnk_03000BF0
ldr r0, _0809BA98 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #0x9a
lsls r0, r0, #1
bl sub_080A3268
b _0809BAC2
.align 2, 0
_0809BA94: .4byte gUnk_03000BF0
_0809BA98: .4byte gLinkEntity
_0809BA9C:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BAC2
ldr r1, _0809BAC4 @ =gUnk_03000BF0
movs r0, #4
strb r0, [r1, #0xe]
ldr r2, _0809BAC8 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809BACC @ =0x0000D7FF
ands r0, r1
strh r0, [r2]
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xd]
bl sub_0805E780
_0809BAC2:
pop {r4, r5, pc}
.align 2, 0
_0809BAC4: .4byte gUnk_03000BF0
_0809BAC8: .4byte gUnk_03000F50
_0809BACC: .4byte 0x0000D7FF
thumb_func_start sub_0809BAD0
sub_0809BAD0: @ 0x0809BAD0
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0xa
bl sub_0805E4E0
ldrb r0, [r4, #0xc]
cmp r0, #4
bls _0809BAE2
b _0809BC68
_0809BAE2:
lsls r0, r0, #2
ldr r1, _0809BAEC @ =_0809BAF0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809BAEC: .4byte _0809BAF0
_0809BAF0: @ jump table
.4byte _0809BB04 @ case 0
.4byte _0809BB4C @ case 1
.4byte _0809BBF8 @ case 2
.4byte _0809BC24 @ case 3
.4byte _0809BC48 @ case 4
_0809BB04:
ldrb r0, [r4, #0xc]
adds r0, #1
movs r1, #0
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
ldr r1, _0809BB40 @ =gUnk_03000BF0
str r4, [r1, #0x30]
movs r0, #1
strb r0, [r1, #0xe]
ldr r3, _0809BB44 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0x2e
ldrsh r0, [r3, r2]
movs r2, #6
cmp r1, r0
ble _0809BB2C
movs r2, #2
_0809BB2C:
strb r2, [r3, #0x14]
ldr r1, _0809BB48 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x58
movs r0, #0x60
strh r0, [r2]
adds r1, #0x5c
movs r0, #0xa0
strh r0, [r1]
b _0809BC68
.align 2, 0
_0809BB40: .4byte gUnk_03000BF0
_0809BB44: .4byte gLinkEntity
_0809BB48: .4byte gUnk_03000F50
_0809BB4C:
adds r0, r4, #0
bl sub_0809BE78
cmp r0, #0
bne _0809BB58
b _0809BC68
_0809BB58:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809BB88
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _0809BB6A
b _0809BC68
_0809BB6A:
ldr r2, _0809BB80 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809BB84 @ =0x0000BFFF
ands r0, r1
movs r3, #0xa0
lsls r3, r3, #6
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
b _0809BC68
.align 2, 0
_0809BB80: .4byte gUnk_03000F50
_0809BB84: .4byte 0x0000BFFF
_0809BB88:
ldr r2, _0809BBB8 @ =gUnk_03000F50
adds r5, r2, #0
adds r5, #0x58
ldrh r0, [r5]
cmp r0, #0xdf
bhi _0809BBC4
ldr r4, _0809BBBC @ =gUnk_030010A0
ldr r0, [r4]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0809BBA6
ldr r0, _0809BBC0 @ =0x00000133
bl sub_080A3268
_0809BBA6:
ldr r0, [r4]
movs r1, #1
ands r0, r1
cmp r0, #0
bne _0809BC68
ldrh r0, [r5]
adds r0, #1
strh r0, [r5]
b _0809BC68
.align 2, 0
_0809BBB8: .4byte gUnk_03000F50
_0809BBBC: .4byte gUnk_030010A0
_0809BBC0: .4byte 0x00000133
_0809BBC4:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrh r1, [r2]
ldr r0, _0809BBF4 @ =0x0000DFFF
ands r0, r1
movs r3, #0x90
lsls r3, r3, #7
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldrh r0, [r4, #0x2e]
adds r0, #0x68
strh r0, [r4, #0x2e]
ldrh r0, [r4, #0x32]
adds r0, #0x28
strh r0, [r4, #0x32]
movs r0, #0x9a
lsls r0, r0, #1
bl sub_080A3268
b _0809BC68
.align 2, 0
_0809BBF4: .4byte 0x0000DFFF
_0809BBF8:
adds r0, r4, #0
bl sub_0809BE78
cmp r0, #0
beq _0809BC68
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BC68
movs r0, #0x78
strb r0, [r4, #0xe]
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x35
bl sub_0807CCB4
movs r0, #0x72
bl sub_080A3268
b _0809BC68
_0809BC24:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BC68
movs r0, #4
strb r0, [r4, #0xc]
ldr r1, _0809BC40 @ =gUnk_03000BF0
ldr r0, _0809BC44 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #2
strb r0, [r1, #0xe]
b _0809BC68
.align 2, 0
_0809BC40: .4byte gUnk_03000BF0
_0809BC44: .4byte gLinkEntity
_0809BC48:
adds r0, r4, #0
bl sub_0809BE78
cmp r0, #0
beq _0809BC68
ldr r1, _0809BC6C @ =gUnk_03000BF0
movs r0, #4
strb r0, [r1, #0xe]
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xd]
movs r0, #0x64
bl sub_0807CD10
bl sub_0805E780
_0809BC68:
pop {r4, r5, pc}
.align 2, 0
_0809BC6C: .4byte gUnk_03000BF0
thumb_func_start sub_0809BC70
sub_0809BC70: @ 0x0809BC70
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #0x1e
bl sub_0805E4E0
ldrb r5, [r4, #0xc]
cmp r5, #1
beq _0809BCDC
cmp r5, #1
bgt _0809BC8A
cmp r5, #0
beq _0809BC92
b _0809BDAE
_0809BC8A:
cmp r5, #2
bne _0809BC90
b _0809BD98
_0809BC90:
b _0809BDAE
_0809BC92:
movs r1, #1
strb r1, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
strb r5, [r4, #0xf]
ldr r0, _0809BCCC @ =gUnk_03000BF0
str r4, [r0, #0x30]
strb r1, [r0, #0xe]
ldr r3, _0809BCD0 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0x2e
ldrsh r0, [r3, r2]
movs r2, #6
cmp r1, r0
ble _0809BCB4
movs r2, #2
_0809BCB4:
strb r2, [r3, #0x14]
ldr r1, _0809BCD4 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x58
ldr r0, _0809BCD8 @ =0x000080F0
strh r0, [r2]
adds r1, #0x5c
movs r0, #0xa0
strh r0, [r1]
movs r0, #0x80
strb r0, [r4, #0xd]
b _0809BDAE
.align 2, 0
_0809BCCC: .4byte gUnk_03000BF0
_0809BCD0: .4byte gLinkEntity
_0809BCD4: .4byte gUnk_03000F50
_0809BCD8: .4byte 0x000080F0
_0809BCDC:
adds r0, r4, #0
bl sub_0809BE78
cmp r0, #0
beq _0809BDAE
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809BD20
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BDAE
movs r0, #6
movs r1, #8
bl sub_08050054
movs r0, #3
bl sub_0805AAF0
ldr r2, _0809BD18 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809BD1C @ =0x0000BFFF
ands r0, r1
movs r3, #0xa0
lsls r3, r3, #6
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
b _0809BDAE
.align 2, 0
_0809BD18: .4byte gUnk_03000F50
_0809BD1C: .4byte 0x0000BFFF
_0809BD20:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0809BD64
ldr r6, _0809BD58 @ =gUnk_030010A0
ldr r0, [r6]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0809BD38
ldr r0, _0809BD5C @ =0x00000133
bl sub_080A3268
_0809BD38:
ldr r0, [r6]
ands r0, r5
cmp r0, #0
bne _0809BDAE
ldrb r0, [r4, #0xd]
subs r0, #1
strb r0, [r4, #0xd]
ldr r1, _0809BD60 @ =gUnk_03000F50
ldrb r0, [r4, #0xd]
lsls r0, r0, #8
movs r2, #0xf0
adds r1, #0x58
orrs r0, r2
strh r0, [r1]
b _0809BDAE
.align 2, 0
_0809BD58: .4byte gUnk_030010A0
_0809BD5C: .4byte 0x00000133
_0809BD60: .4byte gUnk_03000F50
_0809BD64:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
ldr r2, _0809BD90 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0809BD94 @ =0x0000DFFF
ands r0, r1
movs r3, #0x90
lsls r3, r3, #7
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
movs r0, #0x37
bl sub_0807CCB4
movs r0, #0x9a
lsls r0, r0, #1
bl sub_080A3268
b _0809BDAE
.align 2, 0
_0809BD90: .4byte gUnk_03000F50
_0809BD94: .4byte 0x0000DFFF
_0809BD98:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BDAE
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xd]
bl sub_0805E780
_0809BDAE:
pop {r4, r5, r6, pc}
thumb_func_start sub_0809BDB0
sub_0809BDB0: @ 0x0809BDB0
push {r4, lr}
adds r4, r0, #0
movs r1, #0x1e
bl sub_0805E4E0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0809BE00
cmp r0, #1
bgt _0809BDCA
cmp r0, #0
beq _0809BDD0
b _0809BE70
_0809BDCA:
cmp r0, #2
beq _0809BE54
b _0809BE70
_0809BDD0:
movs r1, #1
strb r1, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
movs r0, #0x80
strb r0, [r4, #0xf]
ldr r0, _0809BDF8 @ =gUnk_03000BF0
str r4, [r0, #0x30]
strb r1, [r0, #0xe]
ldr r3, _0809BDFC @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r2, #0x2e
ldrsh r0, [r3, r2]
movs r2, #6
cmp r1, r0
ble _0809BDF4
movs r2, #2
_0809BDF4:
strb r2, [r3, #0x14]
b _0809BE70
.align 2, 0
_0809BDF8: .4byte gUnk_03000BF0
_0809BDFC: .4byte gLinkEntity
_0809BE00:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809BE0C
subs r0, #1
strb r0, [r4, #0xe]
b _0809BE70
_0809BE0C:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
beq _0809BE34
ldr r0, _0809BE2C @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _0809BE70
ldr r0, _0809BE30 @ =0x00000133
bl sub_080A3268
b _0809BE70
.align 2, 0
_0809BE2C: .4byte gUnk_030010A0
_0809BE30: .4byte 0x00000133
_0809BE34:
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldr r1, _0809BE4C @ =gUnk_03000BF0
ldr r0, _0809BE50 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #0x9a
lsls r0, r0, #1
bl sub_080A3268
b _0809BE70
.align 2, 0
_0809BE4C: .4byte gUnk_03000BF0
_0809BE50: .4byte gLinkEntity
_0809BE54:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809BE70
ldr r1, _0809BE74 @ =gUnk_03000BF0
movs r0, #4
strb r0, [r1, #0xe]
ldr r1, [r4, #0x50]
movs r0, #1
strb r0, [r1, #0xd]
bl sub_0805E780
_0809BE70:
pop {r4, pc}
.align 2, 0
_0809BE74: .4byte gUnk_03000BF0
thumb_func_start sub_0809BE78
sub_0809BE78: @ 0x0809BE78
push {r4, r5, lr}
adds r3, r0, #0
movs r5, #0
adds r0, #0x68
ldrh r2, [r0]
ldr r0, _0809BEB0 @ =gUnk_03000BF0
movs r4, #0xa
ldrsh r1, [r0, r4]
adds r4, r0, #0
cmp r2, r1
bne _0809BE9E
adds r0, r3, #0
adds r0, #0x6a
ldrh r1, [r0]
movs r2, #0xc
ldrsh r0, [r4, r2]
cmp r1, r0
bne _0809BE9E
movs r5, #1
_0809BE9E:
ldrh r1, [r4, #0xa]
adds r0, r3, #0
adds r0, #0x68
strh r1, [r0]
ldrh r1, [r4, #0xc]
adds r0, #2
strh r1, [r0]
adds r0, r5, #0
pop {r4, r5, pc}
.align 2, 0
_0809BEB0: .4byte gUnk_03000BF0
thumb_func_start sub_0809BEB4
sub_0809BEB4: @ 0x0809BEB4
push {lr}
ldr r2, _0809BEC8 @ =gUnk_08123DB4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809BEC8: .4byte gUnk_08123DB4
thumb_func_start sub_0809BECC
sub_0809BECC: @ 0x0809BECC
push {r4, lr}
adds r4, r0, #0
movs r0, #0x9b
bl sub_0807CBE4
cmp r0, #0
beq _0809BEDE
bl sub_0805E780
_0809BEDE:
movs r0, #0x91
movs r1, #0
movs r2, #0
bl sub_080A2960
str r0, [r4, #0x54]
cmp r0, #0
beq _0809BF1A
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x11]
subs r0, #0x11
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
strb r2, [r4, #0x1e]
ldrb r0, [r4, #0x19]
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_0809C0A8
adds r0, r4, #0
movs r1, #0xcc
movs r2, #0xcc
movs r3, #0
bl sub_0805EC9C
_0809BF1A:
pop {r4, pc}
thumb_func_start sub_0809BF1C
sub_0809BF1C: @ 0x0809BF1C
push {r4, lr}
adds r4, r0, #0
movs r1, #0xcc
movs r2, #0xcc
movs r3, #0
bl sub_0805EC9C
movs r0, #0x37
bl sub_0807CBE4
cmp r0, #0
beq _0809BF6C
movs r0, #0x90
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809BF6C
ldr r0, _0809BF70 @ =gUnk_03000BF0
str r1, [r0, #0x30]
ldr r0, [r4, #0x54]
str r1, [r0, #0x54]
movs r3, #0x80
lsls r3, r3, #0xb
adds r0, r4, #0
movs r2, #0
bl sub_0806FA48
movs r0, #2
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x74
movs r0, #0xa0
lsls r0, r0, #1
strh r0, [r1]
adds r0, #0x73
bl sub_08004488
_0809BF6C:
pop {r4, pc}
.align 2, 0
_0809BF70: .4byte gUnk_03000BF0
thumb_func_start sub_0809BF74
sub_0809BF74: @ 0x0809BF74
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r5, r7, #0
adds r5, #0x74
ldrh r0, [r5]
subs r1, r0, #1
strh r1, [r5]
lsls r0, r1, #0x10
cmp r0, #0
bne _0809BFA0
ldr r1, [r7, #0x54]
movs r0, #1
strb r0, [r1, #0xf]
adds r0, r7, #0
bl sub_0809C23C
movs r0, #0x9b
bl sub_0807CBE4
bl sub_0805E780
b _0809C09A
_0809BFA0:
movs r0, #0x1f
ands r1, r0
cmp r1, #0
bne _0809BFAE
ldr r0, _0809C09C @ =0x000001B3
bl sub_08004488
_0809BFAE:
ldrh r0, [r5]
cmp r0, #0x77
bhi _0809BFE0
movs r1, #0x78
subs r1, r1, r0
lsls r4, r1, #5
adds r4, #0xcc
lsls r1, r1, #4
adds r1, #0xcc
adds r0, r7, #0
adds r2, r4, #0
movs r3, #0
bl sub_0805EC9C
adds r0, r7, #0
adds r1, r4, #0
movs r2, #8
movs r3, #0
bl sub_0806FCF4
adds r1, r7, #0
adds r1, #0x63
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
_0809BFE0:
ldr r1, _0809C0A0 @ =gUnk_08123DC0
ldrh r0, [r5]
lsrs r0, r0, #5
adds r0, r0, r1
ldrb r6, [r0]
movs r0, #0xf
movs r1, #0x11
movs r2, #0x40
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0809C044
bl sub_08000E50
adds r4, r0, #0
asrs r0, r4, #0x10
ands r0, r6
adds r2, r6, #1
lsrs r1, r2, #1
subs r0, r0, r1
mov ip, r0
lsrs r0, r6, #1
ands r0, r4
lsrs r2, r2, #2
subs r4, r0, r2
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
adds r1, r7, #0
adds r1, #0x80
ldr r2, _0809C0A4 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
ldrh r1, [r1]
adds r0, r0, r1
add r0, ip
strh r0, [r5, #0x2e]
adds r1, r7, #0
adds r1, #0x82
ldrh r0, [r2, #8]
ldrh r1, [r1]
adds r0, r0, r1
adds r0, r0, r4
strh r0, [r5, #0x32]
_0809C044:
movs r0, #0xf
movs r1, #2
movs r2, #0x40
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0809C09A
bl sub_08000E50
adds r4, r0, #0
asrs r1, r4, #0x10
ands r1, r6
adds r0, r6, #1
lsrs r0, r0, #1
subs r1, r1, r0
mov ip, r1
lsrs r3, r6, #1
ands r3, r4
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2]
adds r1, r7, #0
adds r1, #0x80
ldr r2, _0809C0A4 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
ldrh r1, [r1]
adds r0, r0, r1
add r0, ip
strh r0, [r5, #0x2e]
adds r1, r7, #0
adds r1, #0x82
ldrh r0, [r2, #8]
ldrh r1, [r1]
adds r0, r0, r1
adds r0, r0, r3
strh r0, [r5, #0x32]
_0809C09A:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809C09C: .4byte 0x000001B3
_0809C0A0: .4byte gUnk_08123DC0
_0809C0A4: .4byte gUnk_03000BF0
thumb_func_start sub_0809C0A8
sub_0809C0A8: @ 0x0809C0A8
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _0809C214 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r6, r0, #4
movs r2, #0x3f
ands r6, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r6, r0
ldr r5, _0809C218 @ =0x00004022
adds r1, r6, #0
subs r1, #0x41
adds r4, #0x38
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x3f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
subs r1, r6, #2
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
subs r1, r6, #1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0800015E
adds r1, r6, #1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #2
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x3e
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x3f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x41
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x42
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x7f
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x80
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
adds r1, #0x81
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C21C @ =0x0000013F
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
movs r0, #0xa0
lsls r0, r0, #1
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C220 @ =0x00000141
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C224 @ =0x0000017F
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C228 @ =0x00000181
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C22C @ =0x000001BD
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
movs r0, #0xdf
lsls r0, r0, #1
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C230 @ =0x000001BF
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C234 @ =0x000001C1
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
movs r0, #0xe1
lsls r0, r0, #1
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809C238 @ =0x000001C3
adds r1, r6, r0
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0809C214: .4byte gUnk_03000BF0
_0809C218: .4byte 0x00004022
_0809C21C: .4byte 0x0000013F
_0809C220: .4byte 0x00000141
_0809C224: .4byte 0x0000017F
_0809C228: .4byte 0x00000181
_0809C22C: .4byte 0x000001BD
_0809C230: .4byte 0x000001BF
_0809C234: .4byte 0x000001C1
_0809C238: .4byte 0x000001C3
thumb_func_start sub_0809C23C
sub_0809C23C: @ 0x0809C23C
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _0809C370 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r5, r0, #4
movs r2, #0x3f
ands r5, r2
movs r1, #0x32
ldrsh r0, [r4, r1]
ldrh r1, [r3, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r5, r0
adds r0, r5, #0
subs r0, #0x41
adds r4, #0x38
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
subs r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #2
ldrb r1, [r4]
bl sub_0807BA8C
subs r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
ldrb r1, [r4]
adds r0, r5, #0
bl sub_0807BA8C
adds r0, r5, #1
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #2
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x3e
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x3f
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x40
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x41
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x42
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x7f
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x80
ldrb r1, [r4]
bl sub_0807BA8C
adds r0, r5, #0
adds r0, #0x81
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C374 @ =0x0000013F
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
movs r1, #0xa0
lsls r1, r1, #1
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C378 @ =0x00000141
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C37C @ =0x0000017F
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C380 @ =0x00000181
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C384 @ =0x000001BD
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
movs r1, #0xdf
lsls r1, r1, #1
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C388 @ =0x000001BF
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C38C @ =0x000001C1
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
movs r1, #0xe1
lsls r1, r1, #1
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
ldr r1, _0809C390 @ =0x000001C3
adds r0, r5, r1
ldrb r1, [r4]
bl sub_0807BA8C
pop {r4, r5, pc}
.align 2, 0
_0809C370: .4byte gUnk_03000BF0
_0809C374: .4byte 0x0000013F
_0809C378: .4byte 0x00000141
_0809C37C: .4byte 0x0000017F
_0809C380: .4byte 0x00000181
_0809C384: .4byte 0x000001BD
_0809C388: .4byte 0x000001BF
_0809C38C: .4byte 0x000001C1
_0809C390: .4byte 0x000001C3
thumb_func_start sub_0809C394
sub_0809C394: @ 0x0809C394
push {lr}
ldr r2, _0809C3A8 @ =gUnk_08123DCC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809C3A8: .4byte gUnk_08123DCC
thumb_func_start sub_0809C3AC
sub_0809C3AC: @ 0x0809C3AC
movs r2, #0
movs r1, #1
strb r1, [r0, #0xc]
strb r2, [r0, #0x1e]
adds r0, #0x29
ldrb r2, [r0]
subs r1, #9
ands r1, r2
movs r2, #5
orrs r1, r2
strb r1, [r0]
bx lr
thumb_func_start nullsub_536
nullsub_536: @ 0x0809C3C4
bx lr
.align 2, 0
thumb_func_start sub_0809C3C8
sub_0809C3C8: @ 0x0809C3C8
push {r4, lr}
adds r4, r0, #0
ldr r1, _0809C3E8 @ =gUnk_08123DD4
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
pop {r4, pc}
.align 2, 0
_0809C3E8: .4byte gUnk_08123DD4
thumb_func_start sub_0809C3EC
sub_0809C3EC: @ 0x0809C3EC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
cmp r0, #7
bls _0809C400
b _0809C5A4
_0809C400:
lsls r0, r0, #2
ldr r1, _0809C40C @ =_0809C410
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C40C: .4byte _0809C410
_0809C410: @ jump table
.4byte _0809C430 @ case 0
.4byte _0809C53E @ case 1
.4byte _0809C53E @ case 2
.4byte _0809C53E @ case 3
.4byte _0809C53E @ case 4
.4byte _0809C586 @ case 5
.4byte _0809C440 @ case 6
.4byte _0809C5BA @ case 7
_0809C430:
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r1, r4, #0
adds r1, #0x7e
movs r0, #0
strh r0, [r1]
_0809C440:
movs r0, #1
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0x15]
adds r1, r4, #0
adds r1, #0x79
movs r0, #0xf0
strb r0, [r1]
ldr r1, _0809C4B4 @ =gUnk_03000BF0
movs r2, #0x84
lsls r2, r2, #1
adds r0, r2, #0
ldrh r2, [r1, #6]
adds r0, r0, r2
strh r0, [r4, #0x2e]
movs r2, #0xb4
lsls r2, r2, #1
adds r0, r2, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r4, #0x32]
ldrb r0, [r4, #0x19]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
adds r0, #0x76
movs r1, #0xa0
strh r1, [r0]
subs r0, #2
strh r1, [r0]
adds r1, r4, #0
adds r1, #0x7b
movs r0, #0x80
strb r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0809C52E
subs r1, #0x19
movs r0, #0x29
strb r0, [r1]
adds r1, #1
movs r0, #0xe0
strb r0, [r1]
movs r0, #0x30
bl sub_0801D8E0
adds r2, r0, #0
adds r0, r4, #0
adds r0, #0x84
str r2, [r0]
mov r8, r0
cmp r2, #0
bne _0809C4B8
bl sub_0805E780
b _0809C5BA
.align 2, 0
_0809C4B4: .4byte gUnk_03000BF0
_0809C4B8:
str r2, [r4, #0x64]
mov r0, r8
ldr r1, [r0]
movs r0, #5
strb r0, [r1, #1]
movs r5, #0
mov r7, r8
_0809C4C6:
adds r6, r5, #1
adds r0, r4, #0
movs r1, #0x91
adds r2, r6, #0
movs r3, #0
bl sub_080A2988
str r0, [r4, #0x54]
cmp r0, #0
beq _0809C4EE
adds r1, r0, #0
adds r1, #0x84
ldr r0, [r7]
str r0, [r1]
ldr r1, [r7]
lsls r0, r5, #2
adds r1, #0x20
adds r1, r1, r0
ldr r0, [r4, #0x54]
str r0, [r1]
_0809C4EE:
adds r5, r6, #0
cmp r5, #3
bls _0809C4C6
adds r0, r4, #0
movs r1, #0x91
movs r2, #5
movs r3, #0
bl sub_080A2988
str r0, [r4, #0x54]
cmp r0, #0
beq _0809C510
adds r1, r0, #0
adds r1, #0x84
mov r2, r8
ldr r0, [r2]
str r0, [r1]
_0809C510:
adds r0, r4, #0
movs r1, #0x91
movs r2, #6
movs r3, #0
bl sub_080A2988
str r0, [r4, #0x50]
cmp r0, #0
beq _0809C5A4
adds r1, r0, #0
adds r1, #0x84
mov r2, r8
ldr r0, [r2]
str r0, [r1]
b _0809C5A4
_0809C52E:
adds r1, r4, #0
adds r1, #0x62
movs r0, #0xd7
strb r0, [r1]
adds r1, #1
movs r0, #0xe0
strb r0, [r1]
b _0809C5A4
_0809C53E:
movs r1, #0
movs r0, #0x10
strb r0, [r4, #0xe]
adds r0, r4, #0
adds r0, #0x79
strb r1, [r0]
ldrb r1, [r4, #0xa]
movs r2, #2
adds r0, r2, #0
ands r0, r1
cmp r0, #0
bne _0809C55A
strb r2, [r4, #0xf]
b _0809C55E
_0809C55A:
movs r0, #0xfe
strb r0, [r4, #0xf]
_0809C55E:
adds r0, r4, #0
adds r0, #0x74
movs r2, #0x80
lsls r2, r2, #1
strh r2, [r0]
ldrb r1, [r4, #0xa]
movs r0, #1
ands r0, r1
cmp r0, #0
bne _0809C57E
adds r1, r4, #0
adds r1, #0x76
movs r0, #0xff
lsls r0, r0, #8
strh r0, [r1]
b _0809C5A4
_0809C57E:
adds r0, r4, #0
adds r0, #0x76
strh r2, [r0]
b _0809C5A4
_0809C586:
adds r0, r4, #0
adds r0, #0x76
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
subs r0, #2
strh r1, [r0]
adds r1, r4, #0
adds r1, #0x79
movs r0, #0x1c
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
str r4, [r0, #8]
_0809C5A4:
ldr r0, _0809C5C0 @ =gUnk_08123DDC
ldrb r1, [r4, #0xa]
lsls r1, r1, #2
adds r1, r1, r0
ldrb r1, [r1]
adds r0, r4, #0
bl sub_08004260
adds r0, r4, #0
bl sub_0809C5C4
_0809C5BA:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809C5C0: .4byte gUnk_08123DDC
thumb_func_start sub_0809C5C4
sub_0809C5C4: @ 0x0809C5C4
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xa]
cmp r0, #7
bls _0809C5D0
b _0809C7DE
_0809C5D0:
lsls r0, r0, #2
ldr r1, _0809C5DC @ =_0809C5E0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809C5DC: .4byte _0809C5E0
_0809C5E0: @ jump table
.4byte _0809C738 @ case 0
.4byte _0809C600 @ case 1
.4byte _0809C600 @ case 2
.4byte _0809C600 @ case 3
.4byte _0809C600 @ case 4
.4byte _0809C6B8 @ case 5
.4byte _0809C7B4 @ case 6
.4byte _0809C7D2 @ case 7
_0809C600:
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FAD8
ldr r0, [r5, #0x50]
ldrb r0, [r0, #0xd]
adds r6, r5, #0
adds r6, #0x84
cmp r0, #6
bne _0809C630
movs r0, #0xf
ldrsb r0, [r5, r0]
cmp r0, #0
bge _0809C624
ldr r0, [r6]
ldrb r0, [r0]
rsbs r0, r0, #0
b _0809C628
_0809C624:
ldr r0, [r6]
ldrb r0, [r0]
_0809C628:
strb r0, [r5, #0xf]
adds r0, r5, #0
bl sub_0809CBE4
_0809C630:
ldr r4, [r5, #0x50]
adds r0, r4, #0
adds r0, #0x76
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #9
bl __divsi3
adds r3, r0, #0
lsls r0, r3, #0xd
lsrs r3, r0, #8
ldr r0, _0809C660 @ =0xFFFFE000
adds r3, r3, r0
ldr r0, [r6]
ldr r0, [r0, #8]
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #1
bne _0809C664
movs r1, #0x88
lsls r1, r1, #6
adds r3, r3, r1
b _0809C66C
.align 2, 0
_0809C660: .4byte 0xFFFFE000
_0809C664:
lsrs r0, r3, #1
movs r1, #0x88
lsls r1, r1, #6
adds r3, r0, r1
_0809C66C:
adds r2, r4, #0
adds r2, #0x7b
ldr r1, _0809C6B0 @ =gUnk_08123E18
ldrb r0, [r5, #0xa]
subs r0, #1
adds r0, r0, r1
ldrb r0, [r0]
ldrb r2, [r2]
adds r0, r0, r2
rsbs r0, r0, #0
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
adds r0, r5, #0
adds r2, r3, #0
bl sub_0809CB70
ldr r2, [r5, #0x50]
adds r2, #0x7b
ldr r1, _0809C6B4 @ =gUnk_08123E1C
ldrb r0, [r5, #0xa]
subs r0, #1
adds r0, r0, r1
ldrb r1, [r0]
ldrb r2, [r2]
adds r1, r1, r2
adds r0, r5, #0
adds r0, #0x79
ldrb r0, [r0]
adds r0, r0, r1
adds r1, r5, #0
adds r1, #0x7b
strb r0, [r1]
b _0809C7BC
.align 2, 0
_0809C6B0: .4byte gUnk_08123E18
_0809C6B4: .4byte gUnk_08123E1C
_0809C6B8:
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FAD8
ldr r0, [r5, #0x50]
ldrb r0, [r0, #0xd]
adds r6, r5, #0
adds r6, #0x79
adds r7, r5, #0
adds r7, #0x76
cmp r0, #4
beq _0809C6F6
adds r0, r5, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #1
beq _0809C6F6
ldrb r0, [r6]
cmp r0, #0x1c
bls _0809C6E4
subs r0, #1
strb r0, [r6]
_0809C6E4:
ldrh r0, [r7]
movs r1, #0x80
lsls r1, r1, #1
cmp r0, r1
bls _0809C6F4
subs r0, #1
strh r0, [r7]
b _0809C6F6
_0809C6F4:
strh r1, [r7]
_0809C6F6:
ldr r4, [r5, #0x50]
adds r0, r4, #0
adds r0, #0x74
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #9
bl __divsi3
adds r3, r0, #0
ldrb r0, [r6]
lsls r0, r0, #8
muls r0, r3, r0
lsrs r3, r0, #8
adds r4, #0x7b
ldrb r0, [r4]
adds r0, #0x80
rsbs r0, r0, #0
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
adds r0, r5, #0
adds r2, r3, #0
bl sub_0809CB70
ldr r0, [r5, #0x50]
adds r0, #0x7b
ldrb r0, [r0]
adds r1, r5, #0
adds r1, #0x7b
strb r0, [r1]
ldrh r1, [r7]
adds r0, r5, #0
adds r0, #0x74
b _0809C7C4
_0809C738:
movs r0, #0x37
bl sub_0807CBE4
cmp r0, #0
beq _0809C74A
adds r0, r5, #0
movs r1, #0x1e
bl sub_0805E4E0
_0809C74A:
ldr r1, _0809C7A8 @ =gUnk_08123DF8
ldrb r0, [r5, #0xd]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r5, #0
bl _call_via_r1
ldrb r0, [r5, #0xf]
cmp r0, #0
beq _0809C7BC
ldr r0, _0809C7AC @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0809C772
ldr r0, [r5, #0x54]
bl sub_080A2B80
_0809C772:
adds r3, r5, #0
adds r3, #0x7e
ldrh r0, [r3]
cmp r0, #0
beq _0809C7BC
ldr r2, [r5, #0x54]
movs r1, #0
ldrsh r0, [r3, r1]
ldr r1, [r2, #0x20]
subs r1, r1, r0
str r1, [r2, #0x20]
ldr r0, [r2, #0x34]
adds r0, r0, r1
str r0, [r2, #0x34]
ldr r0, [r5, #0x54]
ldr r1, [r0, #0x20]
movs r0, #0xc0
lsls r0, r0, #6
cmp r1, r0
beq _0809C7A0
ldr r0, _0809C7B0 @ =0xFFFFD000
cmp r1, r0
bne _0809C7BC
_0809C7A0:
ldrh r0, [r3]
rsbs r0, r0, #0
strh r0, [r3]
b _0809C7BC
.align 2, 0
_0809C7A8: .4byte gUnk_08123DF8
_0809C7AC: .4byte gUnk_030010A0
_0809C7B0: .4byte 0xFFFFD000
_0809C7B4:
ldr r0, [r5, #0x50]
adds r1, r5, #0
bl sub_0806FA24
_0809C7BC:
adds r0, r5, #0
adds r0, #0x76
ldrh r1, [r0]
subs r0, #2
_0809C7C4:
ldrh r2, [r0]
adds r0, #6
ldrh r3, [r0]
adds r0, r5, #0
bl sub_0805EC9C
b _0809C7DE
_0809C7D2:
ldr r0, _0809C7E0 @ =gUnk_03000BF0
ldr r0, [r0, #0x30]
cmp r0, r5
beq _0809C7DE
bl sub_0805E780
_0809C7DE:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809C7E0: .4byte gUnk_03000BF0
thumb_func_start sub_0809C7E4
sub_0809C7E4: @ 0x0809C7E4
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xf]
cmp r0, #0
beq _0809C84A
adds r3, r5, #0
adds r3, #0x7e
ldrh r0, [r3]
cmp r0, #0
bne _0809C82A
ldr r2, [r5, #0x54]
movs r0, #0x36
ldrsh r1, [r2, r0]
movs r0, #0x10
rsbs r0, r0, #0
cmp r1, r0
ble _0809C814
ldr r0, [r2, #0x34]
ldr r1, _0809C810 @ =0xFFFFC000
adds r0, r0, r1
str r0, [r2, #0x34]
b _0809C82A
.align 2, 0
_0809C810: .4byte 0xFFFFC000
_0809C814:
ldr r0, [r2, #0x34]
ldr r1, _0809C84C @ =0xFFFFF000
adds r0, r0, r1
str r0, [r2, #0x34]
ldr r1, [r5, #0x54]
movs r0, #0xc0
lsls r0, r0, #6
str r0, [r1, #0x20]
movs r0, #0x80
lsls r0, r0, #2
strh r0, [r3]
_0809C82A:
adds r4, r5, #0
adds r4, #0x79
ldrb r0, [r4]
subs r0, #1
strb r0, [r4]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0809C84A
ldr r0, _0809C850 @ =0x00000B43
bl sub_08056378
movs r0, #1
strb r0, [r5, #0xd]
movs r0, #8
strb r0, [r4]
_0809C84A:
pop {r4, r5, pc}
.align 2, 0
_0809C84C: .4byte 0xFFFFF000
_0809C850: .4byte 0x00000B43
thumb_func_start sub_0809C854
sub_0809C854: @ 0x0809C854
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0809C8A8 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0809C8B8
adds r5, r4, #0
adds r5, #0x79
ldrb r0, [r5]
subs r0, #1
strb r0, [r5]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0809C8B8
adds r0, r4, #0
movs r1, #0x91
movs r2, #7
movs r3, #0
bl sub_080A2988
adds r1, r0, #0
cmp r1, #0
beq _0809C892
ldrh r0, [r1, #0x32]
subs r0, #0x50
strh r0, [r1, #0x32]
ldr r0, _0809C8AC @ =gUnk_03000BF0
str r1, [r0, #0x30]
_0809C892:
ldrb r0, [r4, #0xf]
cmp r0, #2
bhi _0809C8B0
movs r0, #2
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r5]
movs r0, #0xe6
bl sub_080A3268
b _0809C8B8
.align 2, 0
_0809C8A8: .4byte gUnk_02000050
_0809C8AC: .4byte gUnk_03000BF0
_0809C8B0:
movs r0, #3
strb r0, [r4, #0xd]
movs r0, #0x78
strb r0, [r5]
_0809C8B8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809C8BC
sub_0809C8BC: @ 0x0809C8BC
push {lr}
adds r2, r0, #0
adds r3, r2, #0
adds r3, #0x79
ldrb r0, [r3]
subs r1, r0, #1
strb r1, [r3]
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0809C8E2
movs r0, #1
strb r0, [r2, #0xd]
movs r0, #0x1e
strb r0, [r3]
ldrb r0, [r2, #0xf]
adds r0, #1
strb r0, [r2, #0xf]
b _0809C922
_0809C8E2:
movs r0, #3
ands r0, r1
cmp r0, #1
beq _0809C90A
cmp r0, #1
bgt _0809C8F4
cmp r0, #0
beq _0809C8FE
b _0809C922
_0809C8F4:
cmp r0, #2
beq _0809C8FE
cmp r0, #3
beq _0809C916
b _0809C922
_0809C8FE:
ldrh r1, [r2, #0x2e]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
adds r0, #8
b _0809C920
_0809C90A:
ldrh r1, [r2, #0x2e]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
adds r0, #4
b _0809C920
_0809C916:
ldrh r1, [r2, #0x2e]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
subs r0, #4
_0809C920:
strh r0, [r2, #0x2e]
_0809C922:
pop {pc}
thumb_func_start sub_0809C924
sub_0809C924: @ 0x0809C924
push {r4, r5, lr}
adds r5, r0, #0
adds r1, r5, #0
adds r1, #0x79
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
beq _0809C948
adds r0, r5, #0
movs r1, #0x87
movs r2, #6
movs r3, #0
bl sub_080A2988
b _0809C980
_0809C948:
movs r0, #4
strb r0, [r5, #0xd]
movs r0, #0x3c
strb r0, [r1]
ldr r4, _0809C984 @ =0x00000115
adds r0, r5, #0
adds r1, r4, #0
bl sub_080ADF80
ldr r0, [r5, #0x50]
adds r1, r4, #0
bl sub_080ADF80
adds r0, r5, #0
movs r1, #0xef
bl sub_0801D2B4
ldr r0, [r5, #0x50]
movs r1, #0xef
bl sub_0801D2B4
adds r0, r5, #0
movs r1, #0xef
bl sub_0809CC30
movs r0, #0xe8
bl sub_080A3268
_0809C980:
pop {r4, r5, pc}
.align 2, 0
_0809C984: .4byte 0x00000115
thumb_func_start sub_0809C988
sub_0809C988: @ 0x0809C988
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x79
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0xff
bne _0809C9AC
movs r0, #5
strb r0, [r2, #0xd]
movs r0, #0xb4
strb r0, [r1]
movs r0, #3
strb r0, [r2, #0xb]
b _0809C9DC
_0809C9AC:
ldr r0, _0809C9C8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _0809C9CC
adds r0, r2, #0
adds r0, #0x84
ldr r0, [r0]
ldr r1, [r0, #8]
adds r1, #0x76
ldrh r0, [r1]
subs r0, #4
b _0809C9DA
.align 2, 0
_0809C9C8: .4byte gUnk_030010A0
_0809C9CC:
adds r0, r2, #0
adds r0, #0x84
ldr r0, [r0]
ldr r1, [r0, #8]
adds r1, #0x76
ldrh r0, [r1]
adds r0, #4
_0809C9DA:
strh r0, [r1]
_0809C9DC:
pop {pc}
.align 2, 0
thumb_func_start sub_0809C9E0
sub_0809C9E0: @ 0x0809C9E0
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, _0809CA04 @ =gUnk_030010A0
ldr r1, [r0]
movs r2, #2
ands r1, r2
adds r7, r0, #0
cmp r1, #0
beq _0809CA08
adds r2, r4, #0
adds r2, #0x84
ldr r0, [r2]
ldr r1, [r0, #8]
adds r1, #0x76
ldrh r0, [r1]
subs r0, #8
b _0809CA16
.align 2, 0
_0809CA04: .4byte gUnk_030010A0
_0809CA08:
adds r2, r4, #0
adds r2, #0x84
ldr r0, [r2]
ldr r1, [r0, #8]
adds r1, #0x76
ldrh r0, [r1]
adds r0, #8
_0809CA16:
strh r0, [r1]
adds r5, r2, #0
ldr r0, [r7]
movs r6, #3
ands r0, r6
cmp r0, #0
bne _0809CA30
adds r0, r4, #0
movs r1, #0x87
movs r2, #2
movs r3, #0
bl sub_080A2988
_0809CA30:
adds r2, r4, #0
adds r2, #0x79
ldrb r0, [r2]
adds r1, r0, #0
cmp r1, #0
bne _0809CA92
ldr r0, [r4, #0x54]
adds r0, #0x62
strb r1, [r0]
ldr r0, [r4, #0x54]
movs r1, #0x80
lsls r1, r1, #2
adds r2, #2
ldrb r2, [r2]
rsbs r2, r2, #0
bl sub_0806F62C
ldr r1, [r4, #0x54]
adds r0, r4, #0
movs r2, #0x48
bl sub_0806FC80
cmp r0, #0
beq _0809CAC4
movs r0, #6
strb r0, [r4, #0xd]
movs r1, #0
movs r0, #0xc0
strh r0, [r4, #0x24]
strb r1, [r4, #0xb]
strb r1, [r4, #0xf]
ldr r2, [r4, #0x54]
ldrb r1, [r2, #0x18]
subs r0, #0xc4
ands r0, r1
strb r0, [r2, #0x18]
ldr r0, [r5]
ldr r0, [r0, #8]
adds r0, #0x76
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0]
ldr r1, [r5]
movs r0, #1
strb r0, [r1]
movs r0, #0xed
bl sub_080A3268
b _0809CAC4
_0809CA92:
subs r0, #1
strb r0, [r2]
ldr r0, [r7]
ands r0, r6
cmp r0, #1
beq _0809CAB4
cmp r0, #1
blo _0809CAAC
cmp r0, #2
beq _0809CAAC
cmp r0, #3
beq _0809CABC
b _0809CAC4
_0809CAAC:
ldr r0, [r4, #0x54]
adds r0, #0x62
movs r1, #0
b _0809CAC2
_0809CAB4:
ldr r0, [r4, #0x54]
adds r0, #0x62
movs r1, #0xfc
b _0809CAC2
_0809CABC:
ldr r0, [r4, #0x54]
adds r0, #0x62
movs r1, #4
_0809CAC2:
strb r1, [r0]
_0809CAC4:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0809CAC8
sub_0809CAC8: @ 0x0809CAC8
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0806F69C
ldr r2, _0809CB3C @ =gUnk_03000BF0
ldrh r0, [r2, #8]
movs r1, #0xe4
lsls r1, r1, #1
adds r0, r0, r1
movs r3, #0x32
ldrsh r1, [r5, r3]
cmp r0, r1
bge _0809CB26
movs r0, #4
strb r0, [r2, #0xe]
ldr r0, _0809CB40 @ =gLinkEntity
str r0, [r2, #0x30]
movs r0, #0x9b
bl sub_0807CCB4
ldr r0, [r5, #0x50]
bl sub_0805E7BC
adds r4, r5, #0
adds r4, #0x84
ldr r0, [r4]
ldr r0, [r0, #8]
bl sub_0805E7BC
ldr r0, [r4]
ldr r0, [r0, #0x20]
bl sub_0805E7BC
ldr r0, [r4]
ldr r0, [r0, #0x24]
bl sub_0805E7BC
ldr r0, [r4]
ldr r0, [r0, #0x28]
bl sub_0805E7BC
ldr r0, [r4]
ldr r0, [r0, #0x2c]
bl sub_0805E7BC
movs r0, #7
strb r0, [r5, #0xd]
_0809CB26:
ldr r0, _0809CB44 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #0xf
ands r0, r1
cmp r0, #0
bne _0809CB38
ldr r0, _0809CB48 @ =0x00000163
bl sub_080A3268
_0809CB38:
pop {r4, r5, pc}
.align 2, 0
_0809CB3C: .4byte gUnk_03000BF0
_0809CB40: .4byte gLinkEntity
_0809CB44: .4byte gUnk_030010A0
_0809CB48: .4byte 0x00000163
thumb_func_start sub_0809CB4C
sub_0809CB4C: @ 0x0809CB4C
push {lr}
ldr r0, _0809CB68 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0809CB66
ldr r0, _0809CB6C @ =0x00000B44
movs r1, #0
bl sub_08078AA8
bl sub_0805E780
_0809CB66:
pop {pc}
.align 2, 0
_0809CB68: .4byte gUnk_03000BF0
_0809CB6C: .4byte 0x00000B44
thumb_func_start sub_0809CB70
sub_0809CB70: @ 0x0809CB70
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
adds r6, r0, #0
adds r4, r1, #0
adds r5, r2, #0
ldr r0, _0809CBE0 @ =gUnk_080C9160
mov sb, r0
lsls r0, r4, #1
add r0, sb
movs r1, #0
ldrsh r0, [r0, r1]
lsls r5, r5, #0x10
asrs r5, r5, #0x10
adds r1, r5, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0x80
lsls r1, r1, #1
mov r8, r1
bl sub_0806FA04
ldr r1, [r6, #0x50]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r1, #0x2c]
adds r1, r1, r0
str r1, [r6, #0x2c]
adds r4, #0x40
lsls r4, r4, #1
add r4, sb
movs r1, #0
ldrsh r0, [r4, r1]
adds r1, r5, #0
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
mov r1, r8
bl sub_0806FA04
ldr r2, [r6, #0x50]
lsls r0, r0, #0x10
asrs r0, r0, #8
ldr r1, [r2, #0x30]
subs r1, r1, r0
str r1, [r6, #0x30]
ldr r0, [r2, #0x34]
str r0, [r6, #0x34]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, pc}
.align 2, 0
_0809CBE0: .4byte gUnk_080C9160
thumb_func_start sub_0809CBE4
sub_0809CBE4: @ 0x0809CBE4
push {r4, lr}
adds r2, r0, #0
adds r3, r2, #0
adds r3, #0x79
ldrb r0, [r2, #0xf]
ldrb r4, [r3]
adds r1, r0, r4
strb r1, [r3]
ldrb r4, [r2, #0xf]
movs r0, #0xf
ldrsb r0, [r2, r0]
cmp r0, #0
bge _0809CC16
ldrb r0, [r2, #0xe]
lsls r1, r1, #0x18
lsls r0, r0, #0x18
cmn r1, r0
bge _0809CC2C
rsbs r0, r4, #0
strb r0, [r2, #0xf]
movs r0, #0xcf
lsls r0, r0, #1
bl sub_080A3268
b _0809CC2C
_0809CC16:
movs r0, #0
ldrsb r0, [r3, r0]
ldrb r1, [r2, #0xe]
cmp r0, r1
ble _0809CC2C
rsbs r0, r4, #0
strb r0, [r2, #0xf]
movs r0, #0xcf
lsls r0, r0, #1
bl sub_080A3268
_0809CC2C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809CC30
sub_0809CC30: @ 0x0809CC30
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r1, #0
adds r4, #0x84
ldr r0, [r4]
ldr r0, [r0, #8]
bl sub_0801D2B4
movs r5, #0
_0809CC42:
ldr r0, [r4]
lsls r1, r5, #2
adds r0, #0x20
adds r0, r0, r1
ldr r0, [r0]
adds r1, r6, #0
bl sub_0801D2B4
adds r5, #1
cmp r5, #3
bls _0809CC42
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809CC5C
sub_0809CC5C: @ 0x0809CC5C
push {lr}
ldr r2, _0809CC70 @ =gUnk_08123E20
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809CC70: .4byte gUnk_08123E20
thumb_func_start sub_0809CC74
sub_0809CC74: @ 0x0809CC74
push {r4, r5, lr}
adds r5, r0, #0
movs r4, #1
strb r4, [r5, #0xc]
bl sub_08016A04
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _0809CCD4
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #5
orrs r1, r0
strb r1, [r2]
movs r4, #0
_0809CC9A:
movs r0, #0x92
movs r1, #1
adds r2, r4, #0
bl sub_080A2960
adds r1, r0, #0
adds r4, #1
cmp r1, #0
beq _0809CCBE
str r5, [r1, #0x50]
lsrs r2, r4, #1
lsls r2, r2, #0x14
ldr r0, _0809CCCC @ =0xFFF80000
adds r2, r2, r0
adds r0, r5, #0
ldr r3, _0809CCD0 @ =0xFFF20000
bl sub_0806FA48
_0809CCBE:
cmp r4, #2
bls _0809CC9A
adds r0, r5, #0
bl sub_0809CDF0
b _0809CD0A
.align 2, 0
_0809CCCC: .4byte 0xFFF80000
_0809CCD0: .4byte 0xFFF20000
_0809CCD4:
ldrb r1, [r5, #0xb]
adds r0, r4, #0
ands r0, r1
cmp r0, #0
beq _0809CCF2
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r5, #0x18]
movs r0, #0x14
strb r0, [r5, #0xe]
b _0809CD02
_0809CCF2:
movs r0, #2
strb r0, [r5, #0xc]
ands r0, r1
movs r1, #0x12
cmp r0, #0
beq _0809CD00
movs r1, #0x14
_0809CD00:
strb r1, [r5, #0xe]
_0809CD02:
adds r0, r5, #0
movs r1, #0
bl sub_08004260
_0809CD0A:
pop {r4, r5, pc}
thumb_func_start sub_0809CD0C
sub_0809CD0C: @ 0x0809CD0C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809CDAC
adds r0, r4, #0
bl sub_08004274
adds r1, r4, #0
adds r1, #0x5a
ldrb r2, [r1]
movs r0, #1
ands r0, r2
cmp r0, #0
beq _0809CD36
movs r0, #0xfe
ands r0, r2
strb r0, [r1]
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
_0809CD36:
ldrb r1, [r1]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809CD56
adds r0, r4, #0
adds r0, #0x59
ldrb r0, [r0]
cmp r0, #1
bne _0809CD56
movs r0, #2
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #6
ands r0, r1
strb r0, [r4, #0x18]
_0809CD56:
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0809CDAC
ldr r5, _0809CDB0 @ =gLinkEntity
adds r6, r5, #0
adds r6, #0x3d
movs r0, #0
ldrsb r0, [r6, r0]
cmp r0, #0
bne _0809CDAC
ldrb r0, [r4, #0x1e]
cmp r0, #0
beq _0809CDAC
adds r0, r4, #0
adds r1, r5, #0
movs r2, #4
bl sub_0806FC80
cmp r0, #0
beq _0809CDAC
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
movs r0, #2
rsbs r0, r0, #0
bl sub_080526A0
adds r0, r5, #0
movs r1, #0x7a
bl sub_0800449C
movs r1, #0x10
strb r1, [r6]
adds r0, r5, #0
adds r0, #0x3e
strb r1, [r0]
adds r2, r5, #0
adds r2, #0x42
movs r0, #0xc
strb r0, [r2]
adds r0, r5, #0
adds r0, #0x46
strh r1, [r0]
_0809CDAC:
pop {r4, r5, r6, pc}
.align 2, 0
_0809CDB0: .4byte gLinkEntity
thumb_func_start sub_0809CDB4
sub_0809CDB4: @ 0x0809CDB4
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0809CDEC
movs r2, #1
movs r0, #1
strb r0, [r3, #0xc]
movs r0, #0x1e
strb r0, [r3, #0xe]
strb r1, [r3, #0xf]
ldrb r1, [r3, #0x18]
subs r0, #0x22
ands r0, r1
orrs r0, r2
strb r0, [r3, #0x18]
ldr r0, [r3, #0x50]
ldrh r0, [r0, #0x32]
subs r0, #0xe
strh r0, [r3, #0x32]
adds r0, r3, #0
movs r1, #0
bl sub_08004260
_0809CDEC:
pop {pc}
.align 2, 0
thumb_func_start sub_0809CDF0
sub_0809CDF0: @ 0x0809CDF0
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0809CE80 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x80
strh r1, [r0]
ldrh r6, [r0]
ldr r0, _0809CE84 @ =0x0000402E
subs r1, r6, #1
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
ldr r5, _0809CE88 @ =0x00004022
ldrb r2, [r4]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0800015E
adds r1, r6, #1
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r5, #4
adds r1, r6, #0
subs r1, #0x41
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x40
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
ldr r0, _0809CE8C @ =0x00004024
adds r1, r6, #0
subs r1, #0x3f
ldrb r2, [r4]
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x81
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
adds r1, r6, #0
subs r1, #0x80
ldrb r2, [r4]
adds r0, r5, #0
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0809CE80: .4byte gUnk_03000BF0
_0809CE84: .4byte 0x0000402E
_0809CE88: .4byte 0x00004022
_0809CE8C: .4byte 0x00004024
thumb_func_start sub_0809CE90
sub_0809CE90: @ 0x0809CE90
push {lr}
ldr r2, _0809CEA4 @ =gUnk_08123E80
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809CEA4: .4byte gUnk_08123E80
thumb_func_start sub_0809CEA8
sub_0809CEA8: @ 0x0809CEA8
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0
bl sub_08004260
pop {r4, pc}
thumb_func_start sub_0809CEC0
sub_0809CEC0: @ 0x0809CEC0
push {lr}
bl sub_08004274
pop {pc}
thumb_func_start sub_0809CEC8
sub_0809CEC8: @ 0x0809CEC8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809CF06
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0809CEEE
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
b _0809CEF4
_0809CEEE:
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
_0809CEF4:
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0
bl sub_08004260
b _0809CF0C
_0809CF06:
adds r0, r4, #0
bl sub_08004274
_0809CF0C:
adds r4, #0x59
ldrb r0, [r4]
cmp r0, #0xff
bne _0809CF20
bl sub_08000E50
movs r1, #0xf
ands r0, r1
adds r0, #0x10
strb r0, [r4]
_0809CF20:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809CF24
sub_0809CF24: @ 0x0809CF24
push {lr}
ldr r2, _0809CF38 @ =gUnk_08123EC0
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809CF38: .4byte gUnk_08123EC0
thumb_func_start sub_0809CF3C
sub_0809CF3C: @ 0x0809CF3C
push {lr}
ldr r2, _0809CF50 @ =gUnk_08123EEC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809CF50: .4byte gUnk_08123EEC
thumb_func_start sub_0809CF54
sub_0809CF54: @ 0x0809CF54
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0x31
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xf]
ldr r0, _0809CFDC @ =0xFFFE8000
str r0, [r4, #0x20]
ldr r0, _0809CFE0 @ =0xFFC74000
str r0, [r4, #0x34]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0xf8
lsls r0, r0, #8
strh r0, [r1]
movs r0, #0xa0
lsls r0, r0, #2
strh r0, [r4, #0x24]
movs r0, #8
strb r0, [r4, #0x15]
subs r1, #0x30
movs r0, #2
strb r0, [r1]
ldr r0, _0809CFE4 @ =gUnk_03000BF0
ldrh r0, [r0, #0xa]
strh r0, [r4, #0x2e]
ldr r0, _0809CFE8 @ =0x00000123
bl sub_080A3268
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0
bl sub_080042AC
movs r0, #0x95
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0809CFD8
str r4, [r5, #0x50]
movs r3, #0x80
lsls r3, r3, #0xc
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FAB0
_0809CFD8:
pop {r4, r5, pc}
.align 2, 0
_0809CFDC: .4byte 0xFFFE8000
_0809CFE0: .4byte 0xFFC74000
_0809CFE4: .4byte gUnk_03000BF0
_0809CFE8: .4byte 0x00000123
thumb_func_start sub_0809CFEC
sub_0809CFEC: @ 0x0809CFEC
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
adds r0, r4, #0
adds r0, #0x68
movs r2, #0
ldrsh r1, [r0, r2]
adds r0, r4, #0
bl sub_08003FC4
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809D018
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _0809D026
strb r0, [r4, #0xf]
b _0809D026
_0809D018:
adds r0, r4, #0
bl sub_080040A8
cmp r0, #0
bne _0809D026
bl sub_0805E780
_0809D026:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D030
sub_0809D030: @ 0x0809D030
push {lr}
ldr r2, _0809D044 @ =gUnk_08123EF4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809D044: .4byte gUnk_08123EF4
thumb_func_start sub_0809D048
sub_0809D048: @ 0x0809D048
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0x17
bl sub_080042AC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D06C
sub_0809D06C: @ 0x0809D06C
push {lr}
ldr r2, _0809D080 @ =gUnk_08123EFC
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809D080: .4byte gUnk_08123EFC
thumb_func_start sub_0809D084
sub_0809D084: @ 0x0809D084
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x50]
cmp r0, #0
beq _0809D0A8
ldrb r2, [r0, #0xf]
cmp r2, #0
beq _0809D0A0
movs r3, #0x80
lsls r3, r3, #0xc
movs r2, #0
bl sub_0806FA48
b _0809D0A8
_0809D0A0:
ldrb r0, [r1, #0xd]
adds r0, #1
strb r0, [r1, #0xd]
str r2, [r1, #0x20]
_0809D0A8:
pop {pc}
.align 2, 0
thumb_func_start sub_0809D0AC
sub_0809D0AC: @ 0x0809D0AC
push {r4, lr}
adds r4, r0, #0
movs r1, #0xc0
lsls r1, r1, #5
bl sub_080044EC
cmp r0, #1
bhi _0809D0F0
movs r2, #0
movs r0, #2
strb r0, [r4, #0xa]
movs r1, #1
strb r1, [r4, #0xc]
str r2, [r4, #0x34]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
movs r0, #0x45
bl sub_0807CCB4
movs r0, #0x72
bl sub_080A3268
adds r0, r4, #0
movs r1, #0x11
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0809D0F0
adds r0, r4, #0
bl sub_0806FAD8
_0809D0F0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D0F4
sub_0809D0F4: @ 0x0809D0F4
push {lr}
ldr r2, _0809D108 @ =gUnk_08123F04
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809D108: .4byte gUnk_08123F04
thumb_func_start sub_0809D10C
sub_0809D10C: @ 0x0809D10C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0x17
bl sub_080042AC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D130
sub_0809D130: @ 0x0809D130
push {lr}
adds r2, r0, #0
ldr r0, _0809D148 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0809D14C
adds r0, r2, #0
bl sub_0800445C
b _0809D170
.align 2, 0
_0809D148: .4byte gUnk_03003F80
_0809D14C:
adds r0, r2, #0
bl sub_08017850
cmp r0, #0
beq _0809D170
movs r0, #0x17
movs r1, #0
movs r2, #0
bl sub_080A7C00
ldr r0, _0809D174 @ =gUnk_02002A40
ldr r1, [r0, #0x40]
movs r2, #0x80
lsls r2, r2, #0x15
orrs r1, r2
str r1, [r0, #0x40]
bl sub_0805E780
_0809D170:
pop {pc}
.align 2, 0
_0809D174: .4byte gUnk_02002A40
thumb_func_start sub_0809D178
sub_0809D178: @ 0x0809D178
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809D19C
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
adds r1, r4, #0
adds r1, #0x5a
movs r0, #0x80
strb r0, [r1]
_0809D19C:
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809D1E8
bl sub_08000E50
movs r1, #3
ands r1, r0
adds r0, r4, #0
bl sub_08004260
bl sub_08000E50
movs r1, #0xf
ands r0, r1
adds r0, #0x10
adds r1, r4, #0
adds r1, #0x59
strb r0, [r1]
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
bl sub_08000E50
movs r1, #1
ands r1, r0
cmp r1, #0
beq _0809D1EE
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
b _0809D1EE
_0809D1E8:
adds r0, r4, #0
bl sub_08004274
_0809D1EE:
pop {r4, pc}
thumb_func_start sub_0809D1F0
sub_0809D1F0: @ 0x0809D1F0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
mov sb, r0
cmp r0, #0
beq _0809D224
cmp r0, #1
beq _0809D2B0
bl sub_08078B48
ldr r2, _0809D220 @ =gLinkEntity
ldrb r1, [r2, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2, #0x18]
movs r1, #0x68
adds r1, r1, r5
mov r8, r1
b _0809D3A8
.align 2, 0
_0809D220: .4byte gLinkEntity
_0809D224:
ldrb r1, [r5, #0xe]
cmp r1, #0
beq _0809D234
movs r0, #0xff
strb r0, [r5, #0x1e]
subs r0, r1, #1
strb r0, [r5, #0xe]
b _0809D488
_0809D234:
movs r1, #1
strb r1, [r5, #0xc]
mov r2, sb
str r2, [r5, #0x20]
ldr r0, _0809D2A0 @ =0xFFEC0000
str r0, [r5, #0x34]
movs r0, #0xc0
lsls r0, r0, #1
strh r0, [r5, #0x24]
movs r0, #8
strb r0, [r5, #0x15]
adds r0, r5, #0
adds r0, #0x38
strb r1, [r0]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r2, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r5, #0x1b]
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r5, #0x1b]
ldr r0, _0809D2A4 @ =gUnk_03000BF0
ldrh r0, [r0, #0xa]
strh r0, [r5, #0x2e]
ldr r0, _0809D2A8 @ =gLinkEntity
ldrh r0, [r0, #0x32]
strh r0, [r5, #0x32]
mov r3, sb
str r3, [r5, #0x54]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r5, #0
movs r1, #0
bl sub_080042AC
ldr r0, _0809D2AC @ =0x00000123
bl sub_080A3268
movs r0, #0x68
adds r0, r0, r5
mov r8, r0
b _0809D3A8
.align 2, 0
_0809D2A0: .4byte 0xFFEC0000
_0809D2A4: .4byte gUnk_03000BF0
_0809D2A8: .4byte gLinkEntity
_0809D2AC: .4byte 0x00000123
_0809D2B0:
ldr r6, _0809D430 @ =gLinkEntity
adds r0, r6, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x38
strb r1, [r0]
ldrh r0, [r5, #0x24]
adds r0, #8
strh r0, [r5, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r1, #0xc0
lsls r1, r1, #2
mov sl, r1
cmp r0, sl
ble _0809D2D6
mov r2, sl
strh r2, [r5, #0x24]
_0809D2D6:
ldrb r1, [r6, #0x10]
movs r0, #0x80
ands r0, r1
movs r3, #0x68
adds r3, r3, r5
mov r8, r3
cmp r0, #0
beq _0809D3A8
ldr r0, _0809D434 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0809D3A8
ldrb r0, [r6, #0xc]
cmp r0, #0x1c
beq _0809D3A8
cmp r0, #6
beq _0809D3A8
cmp r0, #9
beq _0809D3A8
ldr r7, _0809D438 @ =gUnk_03003F80
adds r0, r7, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x18
beq _0809D3A8
cmp r0, #0xb
beq _0809D3A8
cmp r0, #8
beq _0809D3A8
bl sub_08079F8C
cmp r0, #0
beq _0809D3A8
adds r0, r5, #0
adds r1, r6, #0
movs r2, #0xe
movs r3, #0xe
bl sub_080041A0
cmp r0, #0
beq _0809D3A8
movs r1, #0x36
ldrsh r0, [r6, r1]
movs r2, #0x36
ldrsh r1, [r5, r2]
subs r0, r0, r1
subs r0, #8
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1f
bhi _0809D3A8
adds r0, r6, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _0809D3A8
movs r0, #0x95
movs r1, #0xa
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809D3A8
str r4, [r5, #0x54]
movs r0, #2
strb r0, [r5, #0xc]
movs r0, #8
strb r0, [r5, #0xe]
mov r3, sl
strh r3, [r5, #0x24]
movs r0, #0xe0
lsls r0, r0, #8
mov r1, r8
strh r0, [r1]
bl sub_08079184
bl sub_08078B48
bl sub_080791D0
bl sub_08077B20
adds r0, r7, #0
adds r0, #0x26
movs r2, #0
strb r2, [r0]
strb r2, [r7, #2]
ldrb r1, [r6, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r6, #0x10]
ldrb r1, [r6, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r6, #0x18]
ldr r1, _0809D43C @ =gUnk_03003DC0
movs r0, #6
strb r0, [r1]
ldr r0, _0809D440 @ =gUnk_02034490
mov r3, sb
strb r3, [r0]
_0809D3A8:
adds r0, r5, #0
bl sub_0806F69C
mov r0, r8
movs r2, #0
ldrsh r1, [r0, r2]
adds r0, r5, #0
bl sub_08003FC4
adds r0, r5, #0
bl sub_080042B8
ldr r4, [r5, #0x54]
cmp r4, #0
beq _0809D454
ldr r2, _0809D430 @ =gLinkEntity
movs r3, #0x2e
ldrsh r1, [r2, r3]
movs r3, #0x2e
ldrsh r0, [r5, r3]
subs r0, #8
cmp r1, r0
bge _0809D3DA
movs r0, #0
strb r0, [r5, #0xe]
_0809D3DA:
ldrb r0, [r5, #0xe]
cmp r0, #0
bne _0809D448
ldr r2, _0809D444 @ =0xFFF80000
adds r0, r5, #0
adds r1, r4, #0
movs r3, #0
bl sub_0806FA48
ldrh r0, [r4, #0x36]
adds r0, #0x18
strh r0, [r4, #0x36]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r4, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r2, [r5, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x1b]
b _0809D454
.align 2, 0
_0809D430: .4byte gLinkEntity
_0809D434: .4byte gUnk_02000050
_0809D438: .4byte gUnk_03003F80
_0809D43C: .4byte gUnk_03003DC0
_0809D440: .4byte gUnk_02034490
_0809D444: .4byte 0xFFF80000
_0809D448:
subs r0, #1
strb r0, [r5, #0xe]
adds r0, r2, #0
adds r1, r4, #0
bl sub_0806FA24
_0809D454:
adds r0, r5, #0
bl sub_080040A8
cmp r0, #0
bne _0809D488
ldrb r0, [r5, #0xc]
cmp r0, #2
bne _0809D478
ldr r0, _0809D494 @ =gUnk_02002A40
ldr r1, [r0, #0x40]
movs r2, #0x80
lsls r2, r2, #0x15
orrs r1, r2
str r1, [r0, #0x40]
movs r0, #9
movs r1, #0
bl sub_080A7138
_0809D478:
ldr r4, [r5, #0x54]
cmp r4, #0
beq _0809D484
adds r0, r4, #0
bl sub_0805E79C
_0809D484:
bl sub_0805E780
_0809D488:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809D494: .4byte gUnk_02002A40
thumb_func_start sub_0809D498
sub_0809D498: @ 0x0809D498
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _0809D548
movs r2, #1
movs r3, #1
strb r3, [r5, #0xc]
ldrb r1, [r5, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r5, #0x18]
ldr r0, _0809D534 @ =0xFFFD8000
str r0, [r5, #0x20]
ldr r0, _0809D538 @ =0xFFB4C000
str r0, [r5, #0x34]
adds r4, r5, #0
adds r4, #0x68
movs r0, #0xf0
lsls r0, r0, #8
strh r0, [r4]
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r5, #0x24]
movs r0, #8
strb r0, [r5, #0x15]
adds r0, r5, #0
adds r0, #0x38
strb r3, [r0]
adds r6, r5, #0
adds r6, #0x29
ldrb r1, [r6]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r6]
ldrb r2, [r5, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r5, #0x19]
ldrb r0, [r5, #0x1b]
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r5, #0x1b]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
ldr r0, _0809D53C @ =gUnk_03000BF0
ldrh r0, [r0, #0xa]
strh r0, [r5, #0x2e]
ldr r0, _0809D540 @ =gLinkEntity
ldrh r0, [r0, #0x32]
strh r0, [r5, #0x32]
ldr r0, _0809D544 @ =0x00000123
bl sub_080A3268
ldrb r1, [r6]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r6]
adds r0, r5, #0
movs r1, #0
bl sub_080042AC
bl sub_08078B48
adds r7, r4, #0
b _0809D62E
.align 2, 0
_0809D534: .4byte 0xFFFD8000
_0809D538: .4byte 0xFFB4C000
_0809D53C: .4byte gUnk_03000BF0
_0809D540: .4byte gLinkEntity
_0809D544: .4byte 0x00000123
_0809D548:
adds r7, r5, #0
adds r7, #0x68
cmp r0, #1
bne _0809D62E
ldr r6, _0809D658 @ =gLinkEntity
ldrb r1, [r6, #0x18]
movs r0, #4
rsbs r0, r0, #0
mov r8, r0
ands r0, r1
strb r0, [r6, #0x18]
ldr r4, [r5, #0x54]
cmp r4, #0
beq _0809D5B0
ldr r2, _0809D65C @ =0xFFF80000
adds r0, r5, #0
adds r1, r4, #0
movs r3, #0
bl sub_0806FA48
ldrh r0, [r4, #0x36]
adds r0, #0x18
strh r0, [r4, #0x36]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r4, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r2, [r5, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x1b]
_0809D5B0:
bl sub_08078B48
ldr r3, _0809D660 @ =gUnk_03000BF0
movs r1, #0xa
ldrsh r0, [r3, r1]
adds r0, #0x78
movs r2, #0x2e
ldrsh r1, [r5, r2]
cmp r0, r1
bge _0809D62E
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
adds r2, r5, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #8
orrs r0, r1
strb r0, [r2]
cmp r4, #0
beq _0809D5E6
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0809D5E6:
str r6, [r3, #0x30]
ldrb r1, [r6, #0x18]
mov r0, r8
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r6, #0x18]
bl sub_080791D0
bl sub_0805E564
ldr r1, _0809D664 @ =gUnk_02034490
movs r0, #0
strb r0, [r1]
movs r0, #0x52
bl GetProgressFlag
cmp r0, #0
bne _0809D62E
movs r0, #0x69
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809D62E
ldr r1, _0809D668 @ =gUnk_0800B0AC
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
movs r0, #0x52
bl sub_0807CD04
_0809D62E:
adds r0, r5, #0
bl sub_0806F69C
movs r0, #0
ldrsh r1, [r7, r0]
adds r0, r5, #0
bl sub_08003FC4
adds r0, r5, #0
bl sub_080042B8
adds r0, r5, #0
bl sub_080040A8
cmp r0, #0
bne _0809D652
bl sub_0805E780
_0809D652:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809D658: .4byte gLinkEntity
_0809D65C: .4byte 0xFFF80000
_0809D660: .4byte gUnk_03000BF0
_0809D664: .4byte gUnk_02034490
_0809D668: .4byte gUnk_0800B0AC
thumb_func_start sub_0809D66C
sub_0809D66C: @ 0x0809D66C
push {r4, lr}
adds r4, r0, #0
ldr r0, _0809D694 @ =gLinkEntity
ldrb r1, [r0, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0809D6EC
cmp r0, #1
bgt _0809D698
cmp r0, #0
beq _0809D6A2
b _0809D6FE
.align 2, 0
_0809D694: .4byte gLinkEntity
_0809D698:
cmp r0, #2
beq _0809D6F4
cmp r0, #3
beq _0809D6FA
b _0809D6FE
_0809D6A2:
movs r3, #1
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r3
strb r0, [r4, #0x18]
adds r0, r4, #0
adds r0, #0x38
strb r2, [r0]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
strb r0, [r2]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r4, #0x1b]
ands r1, r0
movs r0, #0x40
orrs r1, r0
strb r1, [r4, #0x1b]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
movs r1, #0xe0
bl sub_080042AC
_0809D6EC:
adds r0, r4, #0
bl sub_080042B8
b _0809D6FE
_0809D6F4:
movs r0, #3
strb r0, [r4, #0xc]
b _0809D6FE
_0809D6FA:
bl sub_0805E780
_0809D6FE:
pop {r4, pc}
thumb_func_start sub_0809D700
sub_0809D700: @ 0x0809D700
push {r4, lr}
sub sp, #4
bl sub_08052654
cmp r0, #0
beq _0809D732
movs r0, #0
str r0, [sp]
movs r0, #6
movs r1, #0x95
movs r2, #6
movs r3, #8
bl sub_0805EB2C
adds r4, r0, #0
cmp r4, #0
bne _0809D732
movs r0, #0x95
movs r1, #8
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _0809D732
strb r4, [r0, #0xe]
_0809D732:
add sp, #4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D738
sub_0809D738: @ 0x0809D738
push {r4, lr}
movs r0, #0x95
movs r1, #9
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809D77C
ldr r1, _0809D774 @ =gUnk_03000BF0
movs r0, #0
str r0, [r1, #0x30]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
bl sub_0805E544
movs r0, #0x95
movs r1, #0xa
movs r2, #0
bl sub_080A2960
cmp r0, #0
beq _0809D76C
str r0, [r4, #0x54]
_0809D76C:
ldr r1, _0809D778 @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
b _0809D780
.align 2, 0
_0809D774: .4byte gUnk_03000BF0
_0809D778: .4byte gUnk_02034490
_0809D77C:
bl sub_080791D0
_0809D780:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809D784
sub_0809D784: @ 0x0809D784
push {lr}
ldr r1, _0809D7A0 @ =gUnk_081240B0
ldrb r3, [r0, #0xc]
lsls r3, r3, #2
adds r3, r3, r1
ldrb r1, [r0, #0xa]
lsls r1, r1, #5
ldr r2, _0809D7A4 @ =gUnk_08123FB0
adds r1, r1, r2
ldr r2, [r3]
bl _call_via_r2
pop {pc}
.align 2, 0
_0809D7A0: .4byte gUnk_081240B0
_0809D7A4: .4byte gUnk_08123FB0
thumb_func_start sub_0809D7A8
sub_0809D7A8: @ 0x0809D7A8
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
adds r0, #1
movs r4, #0
strb r0, [r5, #0xc]
adds r2, r5, #0
adds r2, #0x38
movs r0, #2
strb r0, [r2]
ldrb r2, [r5, #0x19]
movs r0, #0x3f
ands r0, r2
movs r2, #0x40
orrs r0, r2
strb r0, [r5, #0x19]
ldr r0, [r1, #0x10]
str r0, [r5, #0x20]
ldrb r3, [r1, #0xf]
strb r3, [r5, #0x15]
ldrh r0, [r1, #0x18]
strh r0, [r5, #0x24]
ldrh r0, [r5, #0x32]
ldrh r2, [r1, #0x1a]
subs r0, r0, r2
strh r0, [r5, #0x32]
str r4, [r5, #0x34]
ldrb r0, [r1, #0x1e]
strb r0, [r5, #0xe]
movs r0, #0x80
ands r0, r3
cmp r0, #0
beq _0809D80C
ldrb r0, [r5, #0x15]
cmp r0, #0x81
bne _0809D80C
bl sub_08000E50
ldr r1, _0809D820 @ =gLinkEntity
ldrb r1, [r1, #0x14]
lsls r1, r1, #2
movs r2, #3
ands r0, r2
adds r1, r1, r0
subs r1, #2
movs r0, #0x1f
ands r1, r0
movs r0, #0x10
eors r1, r0
strb r1, [r5, #0x15]
_0809D80C:
adds r0, r5, #0
bl sub_08016A04
ldrb r4, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, pc}
.align 2, 0
_0809D820: .4byte gLinkEntity
thumb_func_start sub_0809D824
sub_0809D824: @ 0x0809D824
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
movs r0, #1
ldr r2, [r6, #4]
cmp r2, #0
beq _0809D838
adds r0, r5, #0
bl _call_via_r2
_0809D838:
cmp r0, #0
beq _0809D850
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
ldrh r1, [r6, #0x1a]
ldrh r2, [r5, #0x32]
adds r0, r1, r2
strh r0, [r5, #0x32]
ldrh r0, [r5, #0x36]
subs r0, r0, r1
strh r0, [r5, #0x36]
_0809D850:
ldrb r4, [r5, #0xa]
ldrb r0, [r6, #0xd]
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, r6, pc}
thumb_func_start sub_0809D860
sub_0809D860: @ 0x0809D860
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
bl sub_0806F69C
ldr r1, [r6, #0x14]
adds r0, r5, #0
bl sub_080044EC
cmp r0, #1
bhi _0809D8B2
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _0809D888
subs r0, #1
strb r0, [r5, #0xe]
ldr r0, [r6, #0x14]
lsls r0, r0, #3
str r0, [r5, #0x20]
b _0809D8AC
_0809D888:
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
ldr r0, _0809D8C4 @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r5, #0
bl sub_08016A04
ldr r1, [r6]
cmp r1, #0
beq _0809D8AC
adds r0, r5, #0
bl _call_via_r1
_0809D8AC:
movs r0, #0x6e
bl sub_080A3268
_0809D8B2:
ldrb r4, [r5, #0xa]
ldrb r0, [r6, #0xd]
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, r6, pc}
.align 2, 0
_0809D8C4: .4byte gLinkEntity
thumb_func_start sub_0809D8C8
sub_0809D8C8: @ 0x0809D8C8
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r6, r1, #0
ldr r0, _0809D8E4 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0809D8E8
adds r0, r5, #0
bl sub_0800445C
b _0809D90A
.align 2, 0
_0809D8E4: .4byte gUnk_03003F80
_0809D8E8:
adds r0, r5, #0
bl sub_08017850
cmp r0, #0
beq _0809D90A
ldrb r0, [r6, #0xd]
ldrb r1, [r5, #0xb]
movs r2, #0
bl sub_080A7C00
ldrh r0, [r6, #0x1c]
cmp r0, #0
beq _0809D906
bl sub_0807CCC8
_0809D906:
bl sub_0805E780
_0809D90A:
ldrb r4, [r5, #0xa]
ldrb r0, [r6, #0xd]
strb r0, [r5, #0xa]
adds r0, r5, #0
bl sub_08080CB4
strb r4, [r5, #0xa]
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809D91C
sub_0809D91C: @ 0x0809D91C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x11
movs r2, #0
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _0809D934
adds r0, r4, #0
bl sub_0806FAD8
_0809D934:
movs r0, #0x72
bl sub_080A3268
pop {r4, pc}
thumb_func_start sub_0809D93C
sub_0809D93C: @ 0x0809D93C
push {r4, r5, lr}
adds r4, r0, #0
adds r3, r1, #0
ldr r2, _0809D9A0 @ =gLinkEntity
ldrb r0, [r2, #0xc]
cmp r0, #6
bne _0809D9A4
ldrb r0, [r3, #0xc]
ldrb r1, [r2, #0x14]
asrs r0, r1
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0809D9A4
movs r5, #0x2e
ldrsh r0, [r2, r5]
movs r5, #0x2e
ldrsh r1, [r4, r5]
subs r0, r0, r1
movs r1, #8
ldrsb r1, [r3, r1]
adds r0, r0, r1
ldrb r1, [r3, #0xa]
adds r0, r0, r1
lsls r1, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, r0
ble _0809D9A4
movs r0, #0x32
ldrsh r2, [r2, r0]
movs r1, #0x32
ldrsh r0, [r4, r1]
movs r4, #0x1a
ldrsh r1, [r3, r4]
adds r0, r0, r1
subs r2, r2, r0
movs r0, #9
ldrsb r0, [r3, r0]
adds r2, r2, r0
ldrb r1, [r3, #0xb]
adds r0, r2, r1
lsls r1, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, r0
ble _0809D9A4
movs r0, #1
b _0809D9A6
.align 2, 0
_0809D9A0: .4byte gLinkEntity
_0809D9A4:
movs r0, #0
_0809D9A6:
pop {r4, r5, pc}
thumb_func_start sub_0809D9A8
sub_0809D9A8: @ 0x0809D9A8
push {lr}
ldr r2, _0809D9BC @ =gUnk_081240C0
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809D9BC: .4byte gUnk_081240C0
thumb_func_start sub_0809D9C0
sub_0809D9C0: @ 0x0809D9C0
push {lr}
ldr r2, _0809D9D4 @ =gUnk_081240D8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809D9D4: .4byte gUnk_081240D8
thumb_func_start sub_0809D9D8
sub_0809D9D8: @ 0x0809D9D8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
movs r0, #0x1e
strb r0, [r4, #0xe]
strb r2, [r4, #0xf]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
strh r2, [r4, #0x24]
movs r0, #0x18
strb r0, [r4, #0x15]
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
adds r0, r4, #0
movs r1, #6
bl sub_0805EB64
cmp r0, #0
beq _0809DA1E
str r4, [r0, #0x50]
str r0, [r4, #0x54]
b _0809DA28
_0809DA1E:
movs r0, #0x20
bl sub_0807CD04
bl sub_0805E780
_0809DA28:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809DA2C
sub_0809DA2C: @ 0x0809DA2C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809DA5C
ldrb r0, [r1, #0xc]
adds r0, #1
strb r0, [r1, #0xc]
ldr r0, [r1, #0x30]
movs r2, #0x80
lsls r2, r2, #0xd
adds r0, r0, r2
str r0, [r1, #0x30]
ldr r0, [r1, #0x34]
ldr r2, _0809DA60 @ =0xFFF00000
adds r0, r0, r2
str r0, [r1, #0x34]
adds r0, r1, #0
movs r1, #3
bl sub_080042AC
_0809DA5C:
pop {pc}
.align 2, 0
_0809DA60: .4byte 0xFFF00000
thumb_func_start sub_0809DA64
sub_0809DA64: @ 0x0809DA64
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, [r5, #0x54]
adds r1, r4, #0
bl sub_080045C4
adds r1, r0, #0
adds r0, r5, #0
bl sub_0809E1C8
adds r0, r5, #0
bl sub_0809E1F0
movs r0, #0x2e
ldrsh r1, [r4, r0]
movs r0, #0x32
ldrsh r2, [r4, r0]
adds r0, r5, #0
bl sub_080041DC
lsls r0, r0, #4
movs r2, #0x24
ldrsh r1, [r5, r2]
cmp r0, r1
bge _0809DAAC
ldrb r0, [r5, #0xc]
adds r0, #1
strb r0, [r5, #0xc]
movs r0, #0x10
strb r0, [r5, #0xe]
movs r0, #1
strb r0, [r5, #0xf]
adds r0, r5, #0
movs r1, #2
bl sub_080042AC
_0809DAAC:
adds r0, r5, #0
bl sub_080042B8
pop {r4, r5, pc}
thumb_func_start sub_0809DAB4
sub_0809DAB4: @ 0x0809DAB4
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0809DB10 @ =gUnk_03000BF0
ldrh r1, [r5, #6]
adds r1, #0x78
ldrh r2, [r5, #8]
adds r2, #0xa8
bl sub_080045B4
adds r1, r0, #0
adds r0, r4, #0
bl sub_0809E1C8
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809DADE
subs r0, #1
strb r0, [r4, #0xe]
ldrh r0, [r4, #0x24]
subs r0, #0x80
strh r0, [r4, #0x24]
_0809DADE:
adds r0, r4, #0
bl sub_0809E1F0
ldrh r1, [r5, #6]
adds r1, #0x78
ldrh r2, [r5, #8]
adds r2, #0xa8
adds r0, r4, #0
bl sub_080041DC
lsls r0, r0, #4
movs r2, #0x24
ldrsh r1, [r4, r2]
cmp r0, r1
bge _0809DB02
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0809DB02:
adds r0, r4, #0
bl sub_0809E210
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
.align 2, 0
_0809DB10: .4byte gUnk_03000BF0
thumb_func_start sub_0809DB14
sub_0809DB14: @ 0x0809DB14
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0809E1F0
adds r0, r4, #0
bl sub_080040A8
adds r5, r0, #0
cmp r5, #0
bne _0809DB36
movs r0, #0x20
bl sub_0807CD04
ldr r0, [r4, #0x54]
str r5, [r0, #0x50]
bl sub_0805E780
_0809DB36:
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809DB40
sub_0809DB40: @ 0x0809DB40
push {lr}
ldr r2, _0809DB54 @ =gUnk_081240EC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809DB54: .4byte gUnk_081240EC
thumb_func_start sub_0809DB58
sub_0809DB58: @ 0x0809DB58
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x19]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #0x3c
bl sub_080042AC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809DB88
sub_0809DB88: @ 0x0809DB88
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, [r5, #0x50]
cmp r4, #0
beq _0809DBC4
ldr r0, [r4, #4]
cmp r0, #0
bne _0809DB9C
bl sub_0805E780
_0809DB9C:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0809DBB0
movs r3, #0x80
lsls r3, r3, #0xc
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
_0809DBB0:
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
ldrb r2, [r5, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x18]
b _0809DBC8
_0809DBC4:
bl sub_0805E780
_0809DBC8:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809DBCC
sub_0809DBCC: @ 0x0809DBCC
push {lr}
ldr r2, _0809DBE0 @ =gUnk_081240F4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809DBE0: .4byte gUnk_081240F4
thumb_func_start sub_0809DBE4
sub_0809DBE4: @ 0x0809DBE4
push {r4, lr}
adds r4, r0, #0
bl sub_0809DB58
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #0x18
strb r0, [r4, #0x15]
adds r0, #0xe8
strh r0, [r4, #0x24]
movs r0, #0x80
lsls r0, r0, #0xa
str r0, [r4, #0x20]
movs r0, #1
strb r0, [r4, #0xe]
movs r0, #0x6e
bl sub_080A3268
pop {r4, pc}
thumb_func_start sub_0809DC14
sub_0809DC14: @ 0x0809DC14
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_080044EC
cmp r0, #1
bhi _0809DC5A
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0809DC3C
subs r0, #1
strb r0, [r4, #0xe]
movs r0, #0x80
lsls r0, r0, #9
str r0, [r4, #0x20]
b _0809DC54
_0809DC3C:
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _0809DC64 @ =gLinkEntity
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r4, #0
bl sub_08016A04
_0809DC54:
movs r0, #0x6e
bl sub_080A3268
_0809DC5A:
adds r0, r4, #0
bl sub_0809DB88
pop {r4, pc}
.align 2, 0
_0809DC64: .4byte gLinkEntity
thumb_func_start sub_0809DC68
sub_0809DC68: @ 0x0809DC68
push {lr}
ldr r2, _0809DC7C @ =gUnk_08124100
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809DC7C: .4byte gUnk_08124100
thumb_func_start sub_0809DC80
sub_0809DC80: @ 0x0809DC80
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
movs r3, #0
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
movs r0, #0x1e
strb r0, [r4, #0xe]
movs r0, #1
strb r0, [r4, #0xf]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
movs r2, #0
strh r3, [r4, #0x24]
movs r0, #0x18
strb r0, [r4, #0x15]
ldr r0, [r4, #0x30]
movs r1, #0x80
lsls r1, r1, #0xd
adds r0, r0, r1
str r0, [r4, #0x30]
ldr r0, [r4, #0x34]
ldr r1, _0809DCFC @ =0xFFF00000
adds r0, r0, r1
str r0, [r4, #0x34]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x6a
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x6c
strh r3, [r0]
adds r0, #2
strb r2, [r0]
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
movs r1, #3
bl sub_080042AC
adds r0, r4, #0
movs r1, #6
bl sub_0805EB64
cmp r0, #0
beq _0809DD00
str r4, [r0, #0x50]
str r0, [r4, #0x54]
b _0809DD0A
.align 2, 0
_0809DCFC: .4byte 0xFFF00000
_0809DD00:
movs r0, #0x20
bl sub_0807CD04
bl sub_0805E780
_0809DD0A:
pop {r4, pc}
thumb_func_start sub_0809DD0C
sub_0809DD0C: @ 0x0809DD0C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809DD2A
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0xa3
lsls r0, r0, #1
bl sub_080A3268
_0809DD2A:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809DD34
sub_0809DD34: @ 0x0809DD34
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x6e
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
subs r1, #2
ldrh r0, [r1]
adds r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x20
bls _0809DD64
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x20
strh r0, [r1]
movs r0, #0xa3
lsls r0, r0, #1
bl sub_080A3268
_0809DD64:
adds r0, r4, #0
bl sub_0809E238
adds r0, r4, #0
bl sub_0809E29C
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
thumb_func_start sub_0809DD78
sub_0809DD78: @ 0x0809DD78
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x6e
ldrb r0, [r1]
adds r0, #8
strb r0, [r1]
subs r1, #2
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809DDA8
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x5f
ands r0, r1
strb r0, [r4, #0x18]
b _0809DDB4
_0809DDA8:
adds r0, r4, #0
bl sub_0809E238
adds r0, r4, #0
bl sub_0809E29C
_0809DDB4:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
thumb_func_start sub_0809DDBC
sub_0809DDBC: @ 0x0809DDBC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809DDD8
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
ldr r0, _0809DDE0 @ =0x0000015B
bl sub_080A3268
_0809DDD8:
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
.align 2, 0
_0809DDE0: .4byte 0x0000015B
thumb_func_start sub_0809DDE4
sub_0809DDE4: @ 0x0809DDE4
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0809DE34 @ =gUnk_03000BF0
ldrh r1, [r0, #6]
adds r1, #0x40
ldrh r2, [r0, #8]
movs r0, #0xbc
lsls r0, r0, #1
adds r2, r2, r0
adds r0, r4, #0
bl sub_080045B4
adds r1, r0, #0
adds r0, r4, #0
bl sub_0809E1C8
adds r0, r4, #0
bl sub_0809E1F0
adds r0, r4, #0
bl sub_0809E210
adds r0, r4, #0
bl sub_080040A8
adds r5, r0, #0
cmp r5, #0
bne _0809DE2A
movs r0, #0x20
bl sub_0807CD04
ldr r0, [r4, #0x54]
str r5, [r0, #0x50]
bl sub_0805E780
_0809DE2A:
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
.align 2, 0
_0809DE34: .4byte gUnk_03000BF0
thumb_func_start sub_0809DE38
sub_0809DE38: @ 0x0809DE38
push {lr}
ldr r2, _0809DE4C @ =gUnk_08124118
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809DE4C: .4byte gUnk_08124118
thumb_func_start sub_0809DE50
sub_0809DE50: @ 0x0809DE50
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
movs r2, #0
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
movs r0, #0xa
strb r0, [r4, #0xe]
strb r2, [r4, #0xf]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
strh r2, [r4, #0x24]
ldr r1, _0809DEEC @ =gUnk_0812412D
ldrb r0, [r4, #0xb]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0x15]
ldrb r1, [r4, #0xb]
lsls r1, r1, #2
ldr r0, _0809DEF0 @ =gUnk_08124132
adds r1, r1, r0
ldr r2, _0809DEF4 @ =gUnk_03000BF0
ldrh r0, [r1]
ldrh r3, [r2, #6]
adds r0, r0, r3
strh r0, [r4, #0x2e]
ldrh r0, [r1, #2]
ldrh r2, [r2, #8]
adds r0, r0, r2
adds r0, #0x40
strh r0, [r4, #0x32]
ldr r0, _0809DEF8 @ =0x0000FFC0
strh r0, [r4, #0x36]
adds r0, r4, #0
bl sub_08016A04
ldr r1, _0809DEFC @ =gUnk_08124128
ldrb r0, [r4, #0xb]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
bl sub_080042AC
movs r0, #0x97
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r5, r0, #0
cmp r5, #0
beq _0809DEE8
str r4, [r5, #0x50]
str r5, [r4, #0x54]
movs r3, #0x80
lsls r3, r3, #0xc
adds r0, r4, #0
adds r1, r5, #0
movs r2, #0
bl sub_0806FA48
movs r1, #0x10
ldrb r0, [r4, #0x15]
cmp r0, #0x18
bne _0809DEE2
rsbs r1, r1, #0
_0809DEE2:
ldrh r0, [r5, #0x2e]
adds r0, r0, r1
strh r0, [r5, #0x2e]
_0809DEE8:
pop {r4, r5, pc}
.align 2, 0
_0809DEEC: .4byte gUnk_0812412D
_0809DEF0: .4byte gUnk_08124132
_0809DEF4: .4byte gUnk_03000BF0
_0809DEF8: .4byte 0x0000FFC0
_0809DEFC: .4byte gUnk_08124128
thumb_func_start sub_0809DF00
sub_0809DF00: @ 0x0809DF00
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xb]
bl sub_0809E2C4
cmp r0, #1
beq _0809DF16
cmp r0, #2
beq _0809DF64
movs r0, #0xa
b _0809DF96
_0809DF16:
ldrb r0, [r4, #0xc]
adds r0, #2
strb r0, [r4, #0xc]
movs r0, #0xff
strb r0, [r4, #0xe]
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #2
adds r0, r4, #0
bl sub_080042AC
ldr r0, _0809DF60 @ =0x00000123
bl sub_080A3268
ldr r5, [r4, #0x54]
cmp r5, #0
beq _0809DF98
ldrb r1, [r4, #0xb]
adds r1, #2
movs r0, #0x96
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809DF52
adds r0, r5, #0
bl sub_0806FA24
_0809DF52:
adds r0, r5, #0
bl sub_0805E79C
movs r0, #0
str r0, [r4, #0x54]
b _0809DF98
.align 2, 0
_0809DF60: .4byte 0x00000123
_0809DF64:
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0809DF94
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x58
ldrb r1, [r0]
adds r1, #2
adds r0, r4, #0
bl sub_080042AC
ldr r0, _0809DF8C @ =0x00000123
bl sub_080A3268
ldr r0, _0809DF90 @ =0x000001F3
bl sub_080A3268
b _0809DF98
.align 2, 0
_0809DF8C: .4byte 0x00000123
_0809DF90: .4byte 0x000001F3
_0809DF94:
subs r0, #1
_0809DF96:
strb r0, [r4, #0xe]
_0809DF98:
adds r0, r4, #0
bl sub_080042B8
pop {r4, r5, pc}
thumb_func_start sub_0809DFA0
sub_0809DFA0: @ 0x0809DFA0
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x54]
cmp r0, #0
beq _0809DFD6
movs r2, #0x2e
ldrsh r1, [r0, r2]
movs r2, #0x2e
ldrsh r0, [r4, r2]
subs r1, r1, r0
ldrb r0, [r4, #0x15]
lsls r0, r0, #0xb
eors r1, r0
movs r0, #0x80
lsls r0, r0, #8
ands r1, r0
cmp r1, #0
beq _0809DFD6
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xf]
movs r0, #0x81
lsls r0, r0, #1
bl sub_080A3268
_0809DFD6:
adds r0, r4, #0
bl sub_0809DFE0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809DFE0
sub_0809DFE0: @ 0x0809DFE0
push {r4, lr}
adds r4, r0, #0
bl sub_080040A8
cmp r0, #0
bne _0809E028
ldr r1, [r4, #0x54]
cmp r1, #0
beq _0809DFF4
str r0, [r1, #0x50]
_0809DFF4:
ldrb r1, [r4, #0xe]
movs r0, #0x80
ands r0, r1
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _0809E008
bl sub_0805E780
b _0809E034
_0809E008:
strb r0, [r4, #0xc]
bl sub_08000E50
ldr r2, _0809E024 @ =gUnk_08124146
movs r1, #1
ands r1, r0
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r1, r1, r0
adds r1, r1, r2
ldrb r0, [r1]
strb r0, [r4, #0xb]
b _0809E034
.align 2, 0
_0809E024: .4byte gUnk_08124146
_0809E028:
adds r0, r4, #0
bl sub_0809E1F0
adds r0, r4, #0
bl sub_080042B8
_0809E034:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E038
sub_0809E038: @ 0x0809E038
push {lr}
ldr r2, _0809E04C @ =gUnk_08124150
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E04C: .4byte gUnk_08124150
thumb_func_start sub_0809E050
sub_0809E050: @ 0x0809E050
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
ldr r0, _0809E084 @ =0x0000FFF0
strh r0, [r4, #0x36]
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #1
bl sub_080042AC
pop {r4, pc}
.align 2, 0
_0809E084: .4byte 0x0000FFF0
thumb_func_start sub_0809E088
sub_0809E088: @ 0x0809E088
push {r4, lr}
adds r4, r0, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
adds r0, r4, #0
bl sub_080042B8
pop {r4, pc}
thumb_func_start sub_0809E0A0
sub_0809E0A0: @ 0x0809E0A0
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0x97
movs r1, #5
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809E0C8
str r5, [r4, #0x50]
str r4, [r5, #0x54]
movs r0, #0
strb r0, [r5, #0xf]
ldr r0, _0809E0CC @ =gLinkEntity
adds r1, r4, #0
bl sub_0806FA24
ldr r0, _0809E0D0 @ =0x0000FFF8
strh r0, [r4, #0x36]
_0809E0C8:
pop {r4, r5, pc}
.align 2, 0
_0809E0CC: .4byte gLinkEntity
_0809E0D0: .4byte 0x0000FFF8
thumb_func_start sub_0809E0D4
sub_0809E0D4: @ 0x0809E0D4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r6, r1, #0
ldrb r2, [r6, #0x18]
cmp r2, #0
bne _0809E130
ldr r1, [r5, #0x54]
cmp r1, #0
beq _0809E0FC
ldrb r0, [r1, #0xc]
cmp r0, #1
bhi _0809E0FE
ldr r0, _0809E0F8 @ =gUnk_02033280
strb r2, [r0, #6]
b _0809E1BC
.align 2, 0
_0809E0F8: .4byte gUnk_02033280
_0809E0FC:
ldr r1, _0809E124 @ =gLinkEntity
_0809E0FE:
ldrb r0, [r6, #0x18]
adds r0, #1
movs r4, #0
strb r0, [r6, #0x18]
movs r0, #0x2e
ldrsh r2, [r1, r0]
movs r0, #0x32
ldrsh r3, [r1, r0]
adds r0, r5, #0
adds r1, r6, #0
bl sub_0807DEDC
ldr r0, _0809E128 @ =0x00000123
bl sub_080A3268
ldr r0, _0809E12C @ =gUnk_02033280
strb r4, [r0, #6]
b _0809E1BC
.align 2, 0
_0809E124: .4byte gLinkEntity
_0809E128: .4byte 0x00000123
_0809E12C: .4byte gUnk_02033280
_0809E130:
ldr r1, [r5, #0x54]
cmp r1, #0
beq _0809E142
movs r0, #0x2e
ldrsh r2, [r1, r0]
mov r8, r2
movs r2, #0x32
ldrsh r7, [r1, r2]
b _0809E14C
_0809E142:
movs r1, #0x1e
ldrsh r0, [r6, r1]
mov r8, r0
movs r2, #0x22
ldrsh r7, [r6, r2]
_0809E14C:
ldrb r0, [r6, #0x19]
subs r0, #1
strb r0, [r6, #0x19]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809E170
movs r0, #8
strb r0, [r6, #0x19]
movs r1, #0x2e
ldrsh r0, [r5, r1]
mov r2, r8
subs r0, r2, r0
movs r2, #0x32
ldrsh r1, [r5, r2]
subs r1, r7, r1
bl sub_080045DA
strb r0, [r5, #0x15]
_0809E170:
movs r0, #0x2e
ldrsh r4, [r5, r0]
mov r1, r8
subs r4, r4, r1
movs r2, #0x32
ldrsh r0, [r5, r2]
subs r6, r0, r7
movs r0, #0x24
ldrsh r1, [r5, r0]
ldrb r2, [r5, #0x15]
adds r0, r5, #0
bl sub_0806F62C
movs r1, #0x2e
ldrsh r0, [r5, r1]
mov r2, r8
subs r0, r0, r2
muls r4, r0, r4
movs r1, #0x32
ldrsh r0, [r5, r1]
subs r0, r0, r7
muls r6, r0, r6
cmp r4, #0
bgt _0809E1B6
cmp r6, #0
bgt _0809E1B6
strh r2, [r5, #0x2e]
strh r7, [r5, #0x32]
movs r0, #1
strb r0, [r5, #0xf]
movs r0, #0x81
lsls r0, r0, #1
bl sub_080A3268
b _0809E1BC
_0809E1B6:
ldr r1, _0809E1C4 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_0809E1BC:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809E1C4: .4byte gUnk_02033280
thumb_func_start sub_0809E1C8
sub_0809E1C8: @ 0x0809E1C8
push {lr}
adds r3, r0, #0
adds r1, #0x20
ldrb r2, [r3, #0x15]
subs r1, r1, r2
movs r0, #0x1f
ands r1, r0
cmp r1, #0
beq _0809E1E6
cmp r1, #0xf
bhi _0809E1E2
adds r0, r2, #1
b _0809E1E4
_0809E1E2:
subs r0, r2, #1
_0809E1E4:
strb r0, [r3, #0x15]
_0809E1E6:
ldrb r1, [r3, #0x15]
movs r0, #0x1f
ands r0, r1
strb r0, [r3, #0x15]
pop {pc}
thumb_func_start sub_0809E1F0
sub_0809E1F0: @ 0x0809E1F0
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x24]
adds r0, #0x40
strh r0, [r1, #0x24]
lsls r0, r0, #0x10
asrs r0, r0, #0x10
movs r2, #0x80
lsls r2, r2, #3
cmp r0, r2
ble _0809E208
strh r2, [r1, #0x24]
_0809E208:
adds r0, r1, #0
bl sub_0806F69C
pop {pc}
thumb_func_start sub_0809E210
sub_0809E210: @ 0x0809E210
push {r4, lr}
adds r1, r0, #0
ldr r4, _0809E230 @ =gLinkEntity
adds r0, r4, #0
bl sub_080045C4
bl sub_0806F5B0
movs r1, #0xfe
ands r0, r1
strb r0, [r4, #0x14]
ldr r1, _0809E234 @ =gUnk_03003F80
movs r0, #0x80
lsls r0, r0, #1
strh r0, [r1, #8]
pop {r4, pc}
.align 2, 0
_0809E230: .4byte gLinkEntity
_0809E234: .4byte gUnk_03003F80
thumb_func_start sub_0809E238
sub_0809E238: @ 0x0809E238
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r7, r0, #0
ldr r6, _0809E298 @ =gUnk_080C9160
movs r0, #0x6e
adds r0, r0, r7
mov r8, r0
ldrb r0, [r0]
lsls r0, r0, #1
adds r0, r0, r6
movs r1, #0
ldrsh r0, [r0, r1]
adds r5, r7, #0
adds r5, #0x6c
movs r2, #0
ldrsh r1, [r5, r2]
bl sub_0806F9EC
adds r4, r0, #0
lsls r4, r4, #0x10
asrs r4, r4, #0x10
mov r1, r8
ldrb r0, [r1]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r6
movs r2, #0
ldrsh r0, [r0, r2]
movs r2, #0
ldrsh r1, [r5, r2]
bl sub_0806F9EC
lsls r0, r0, #0x10
asrs r0, r0, #0x10
adds r1, r7, #0
adds r1, #0x68
ldrh r1, [r1]
adds r1, r1, r4
strh r1, [r7, #0x2e]
adds r1, r7, #0
adds r1, #0x6a
ldrh r1, [r1]
subs r1, r1, r0
strh r1, [r7, #0x32]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809E298: .4byte gUnk_080C9160
thumb_func_start sub_0809E29C
sub_0809E29C: @ 0x0809E29C
push {lr}
adds r2, r0, #0
adds r0, #0x6e
ldrb r0, [r0]
adds r0, #0x40
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0809E2B8
ldrb r1, [r2, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
b _0809E2BE
_0809E2B8:
ldrb r0, [r2, #0x18]
movs r1, #0x40
orrs r0, r1
_0809E2BE:
strb r0, [r2, #0x18]
pop {pc}
.align 2, 0
thumb_func_start sub_0809E2C4
sub_0809E2C4: @ 0x0809E2C4
push {r4, r5, r6, r7, lr}
lsls r1, r1, #2
ldr r0, _0809E328 @ =gUnk_08124178
adds r1, r1, r0
ldr r3, _0809E32C @ =gLinkEntity
movs r0, #0x2e
ldrsh r5, [r3, r0]
ldr r4, _0809E330 @ =gUnk_03000BF0
ldrh r0, [r4, #6]
ldrh r2, [r1]
adds r0, r0, r2
subs r6, r5, r0
movs r0, #0x32
ldrsh r2, [r3, r0]
ldrh r0, [r4, #8]
ldrh r1, [r1, #2]
adds r0, r0, r1
subs r5, r2, r0
ldr r4, _0809E334 @ =gUnk_08124158
movs r2, #0
adds r7, r3, #0
_0809E2EE:
movs r1, #0
ldrsh r0, [r4, r1]
subs r0, r6, r0
ldrb r1, [r4, #4]
adds r0, r0, r1
lsls r1, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, r0
ble _0809E33C
movs r1, #2
ldrsh r0, [r4, r1]
subs r0, r5, r0
ldrb r1, [r4, #5]
adds r0, r0, r1
lsls r1, r1, #1
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r1, r0
ble _0809E33C
ldrb r0, [r4, #6]
ldrb r7, [r7, #0x14]
cmp r0, r7
bne _0809E338
ldrb r0, [r3, #0xc]
cmp r0, #6
bne _0809E338
movs r0, #1
b _0809E346
.align 2, 0
_0809E328: .4byte gUnk_08124178
_0809E32C: .4byte gLinkEntity
_0809E330: .4byte gUnk_03000BF0
_0809E334: .4byte gUnk_08124158
_0809E338:
movs r0, #2
b _0809E346
_0809E33C:
adds r2, #1
adds r4, #8
cmp r2, #3
ble _0809E2EE
movs r0, #0
_0809E346:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809E348
sub_0809E348: @ 0x0809E348
push {lr}
ldr r2, _0809E35C @ =gUnk_0812418C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E35C: .4byte gUnk_0812418C
thumb_func_start sub_0809E360
sub_0809E360: @ 0x0809E360
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #8
bls _0809E372
movs r0, #8
strb r0, [r4, #0xe]
_0809E372:
ldrb r2, [r4, #0xe]
movs r0, #0x48
subs r0, r0, r2
ldr r1, _0809E3E0 @ =gUnk_03003DBC
ldrb r1, [r1]
cmp r0, r1
ble _0809E3D8
movs r5, #0
adds r7, r4, #0
adds r7, #0x7e
movs r0, #0x76
adds r0, r0, r4
mov r8, r0
cmp r5, r2
bhs _0809E3A6
movs r6, #0xe
_0809E392:
movs r0, #0x17
bl sub_080A7EE0
strb r6, [r0, #0xe]
str r4, [r0, #0x50]
adds r6, #0xc
adds r5, #1
ldrb r2, [r4, #0xe]
cmp r5, r2
blo _0809E392
_0809E3A6:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r7]
lsls r1, r0, #8
mov r2, r8
strh r1, [r2]
lsls r0, r0, #6
strb r0, [r4, #0x14]
adds r0, r4, #0
movs r1, #0
bl sub_0805E3A0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809E3D8
bl sub_0804B128
str r0, [r4, #0x54]
adds r1, r4, #0
adds r1, #0x54
adds r2, r4, #0
adds r2, #0x74
adds r0, r4, #0
bl sub_080A2CC0
_0809E3D8:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809E3E0: .4byte gUnk_03003DBC
thumb_func_start sub_0809E3E4
sub_0809E3E4: @ 0x0809E3E4
push {r4, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x76
ldrb r0, [r4, #0xb]
ldrh r1, [r2]
adds r1, r1, r0
strh r1, [r2]
lsrs r1, r1, #2
strb r1, [r4, #0x14]
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0809E428
ldrb r1, [r4, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0809E40E
adds r0, r4, #0
bl sub_0806F69C
_0809E40E:
adds r2, r4, #0
adds r2, #0x74
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809E428
adds r1, r4, #0
adds r1, #0x54
adds r0, r4, #0
bl sub_080A2CC0
_0809E428:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E42C
sub_0809E42C: @ 0x0809E42C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r4, r0, #0
ldr r6, [r4, #0x50]
ldr r0, [r6, #4]
cmp r0, #0
bne _0809E444
bl sub_0805E780
_0809E444:
ldrb r0, [r4, #0xc]
movs r1, #0x76
adds r1, r1, r4
mov r8, r1
adds r7, r4, #0
adds r7, #0x62
movs r2, #0x74
adds r2, r2, r4
mov sb, r2
adds r5, r4, #0
adds r5, #0x63
movs r1, #0x75
adds r1, r1, r4
mov sl, r1
cmp r0, #0
bne _0809E482
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r6, #0x14]
mov r2, r8
strb r0, [r2]
ldrb r0, [r7]
mov r1, sb
strb r0, [r1]
ldrb r0, [r5]
mov r2, sl
strb r0, [r2]
ldrb r1, [r4, #0x14]
adds r0, r4, #0
bl sub_08004260
_0809E482:
ldrb r0, [r6, #0x14]
mov r1, r8
ldrb r1, [r1]
cmp r0, r1
beq _0809E490
bl sub_0805E780
_0809E490:
ldrb r1, [r6, #0x18]
lsls r1, r1, #0x1e
lsrs r1, r1, #0x1e
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA6C
mov r2, sb
ldrb r0, [r2]
ldrb r1, [r7]
adds r0, r0, r1
strb r0, [r7]
mov r2, sl
ldrb r0, [r2]
ldrb r1, [r5]
adds r0, r0, r1
strb r0, [r5]
ldrb r0, [r4, #0x14]
cmp r0, #2
beq _0809E4D0
ldrh r0, [r4, #0x32]
adds r0, #1
strh r0, [r4, #0x32]
ldrb r0, [r5]
subs r0, #1
b _0809E4DA
_0809E4D0:
ldrh r0, [r4, #0x32]
subs r0, #1
strh r0, [r4, #0x32]
ldrb r0, [r5]
adds r0, #1
_0809E4DA:
strb r0, [r5]
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809E4F4
bl sub_0805E780
_0809E4F4:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0809E500
sub_0809E500: @ 0x0809E500
push {lr}
ldr r2, _0809E514 @ =gUnk_081242C8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E514: .4byte gUnk_081242C8
thumb_func_start sub_0809E518
sub_0809E518: @ 0x0809E518
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r1, #1
strb r1, [r6, #0xc]
ldrb r2, [r6, #0xa]
adds r0, r2, #0
cmp r0, #0xff
bne _0809E52E
ldrb r0, [r6, #0xb]
strb r0, [r6, #0x1e]
b _0809E5CA
_0809E52E:
ands r1, r2
rsbs r0, r1, #0
orrs r0, r1
asrs r5, r0, #0x1f
movs r0, #4
ands r5, r0
movs r0, #2
ands r0, r2
cmp r0, #0
beq _0809E5A4
ldr r0, _0809E5A0 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x44
bhi _0809E5B4
strb r5, [r6, #0x1e]
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl sub_080A2960
adds r4, r0, #0
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA24
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl sub_080A2960
adds r4, r0, #0
movs r3, #0x80
lsls r3, r3, #9
adds r0, r6, #0
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
adds r1, r4, #0
adds r1, #0x63
movs r0, #0xff
strb r0, [r1]
adds r5, #1
movs r0, #0x9a
movs r1, #0xff
adds r2, r5, #0
bl sub_080A2960
adds r4, r0, #0
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA24
b _0809E5C4
.align 2, 0
_0809E5A0: .4byte gUnk_03003DBC
_0809E5A4:
adds r2, r5, #1
movs r0, #0x9a
movs r1, #0xff
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
bne _0809E5BA
_0809E5B4:
bl sub_0805E780
b _0809E5C4
_0809E5BA:
strb r5, [r6, #0x1e]
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA24
_0809E5C4:
adds r0, r6, #0
bl sub_0809E5F0
_0809E5CA:
ldrb r1, [r6, #0x1e]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0809E5E8
ldrb r0, [r6, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r6, #0x19]
adds r2, r6, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
_0809E5E8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start nullsub_125
nullsub_125: @ 0x0809E5EC
bx lr
.align 2, 0
thumb_func_start sub_0809E5F0
sub_0809E5F0: @ 0x0809E5F0
push {r4, r5, lr}
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r4, _0809E628 @ =gUnk_03000BF0
ldrh r2, [r4, #6]
subs r1, r1, r2
asrs r5, r1, #4
movs r3, #0x3f
ands r5, r3
movs r2, #0x32
ldrsh r1, [r0, r2]
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r5, r1
adds r1, r0, #0
adds r1, #0x80
strh r5, [r1]
ldrb r0, [r0, #0xa]
cmp r0, #1
beq _0809E708
cmp r0, #1
bgt _0809E62C
cmp r0, #0
beq _0809E64E
b _0809E792
.align 2, 0
_0809E628: .4byte gUnk_03000BF0
_0809E62C:
cmp r0, #2
beq _0809E636
cmp r0, #3
beq _0809E6F0
b _0809E792
_0809E636:
ldr r0, _0809E6DC @ =0x00004022
adds r1, r5, #0
subs r1, #0x3d
movs r2, #1
bl sub_0800015E
ldr r0, _0809E6E0 @ =0x0000406D
adds r1, r5, #0
subs r1, #0x3c
movs r2, #1
bl sub_0800015E
_0809E64E:
ldr r0, _0809E6E4 @ =0x0000406C
adds r1, r5, #0
subs r1, #0x42
movs r2, #1
bl sub_0800015E
ldr r4, _0809E6DC @ =0x00004022
adds r1, r5, #0
subs r1, #0x41
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
subs r1, r5, #2
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
subs r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldr r0, _0809E6E8 @ =0x0000406E
adds r1, r5, #0
adds r1, #0x3e
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x40
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldr r0, _0809E6EC @ =0x0000406F
adds r1, r5, #0
adds r1, #0x41
movs r2, #1
bl sub_0800015E
b _0809E792
.align 2, 0
_0809E6DC: .4byte 0x00004022
_0809E6E0: .4byte 0x0000406D
_0809E6E4: .4byte 0x0000406C
_0809E6E8: .4byte 0x0000406E
_0809E6EC: .4byte 0x0000406F
_0809E6F0:
ldr r0, _0809E794 @ =0x00004022
adds r1, r5, #0
subs r1, #0x44
movs r2, #1
bl sub_0800015E
ldr r0, _0809E798 @ =0x0000406C
adds r1, r5, #0
subs r1, #0x45
movs r2, #1
bl sub_0800015E
_0809E708:
ldr r4, _0809E794 @ =0x00004022
adds r1, r5, #0
subs r1, #0x42
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x41
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
subs r1, #0x40
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldr r0, _0809E79C @ =0x0000406D
adds r1, r5, #0
subs r1, #0x3f
movs r2, #1
bl sub_0800015E
subs r1, r5, #2
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
subs r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #1
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldr r0, _0809E7A0 @ =0x0000406E
adds r1, r5, #0
adds r1, #0x3e
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x3f
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
adds r1, r5, #0
adds r1, #0x40
adds r0, r4, #0
movs r2, #1
bl sub_0800015E
ldr r0, _0809E7A4 @ =0x0000406F
adds r1, r5, #0
adds r1, #0x41
movs r2, #1
bl sub_0800015E
_0809E792:
pop {r4, r5, pc}
.align 2, 0
_0809E794: .4byte 0x00004022
_0809E798: .4byte 0x0000406C
_0809E79C: .4byte 0x0000406D
_0809E7A0: .4byte 0x0000406E
_0809E7A4: .4byte 0x0000406F
thumb_func_start sub_0809E7A8
sub_0809E7A8: @ 0x0809E7A8
push {lr}
ldr r2, _0809E7BC @ =gUnk_081242D0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E7BC: .4byte gUnk_081242D0
thumb_func_start sub_0809E7C0
sub_0809E7C0: @ 0x0809E7C0
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xb]
cmp r0, #0xff
beq _0809E7D4
adds r0, r4, #0
bl sub_0809E7FC
_0809E7D4:
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E7E0
sub_0809E7E0: @ 0x0809E7E0
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809E7F8
bl sub_0805E780
_0809E7F8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E7FC
sub_0809E7FC: @ 0x0809E7FC
push {lr}
adds r1, r0, #0
ldrb r3, [r1, #0xb]
lsls r3, r3, #1
ldr r0, _0809E820 @ =gUnk_081242D8
adds r3, r3, r0
ldr r0, [r1, #0x50]
movs r2, #0
ldrsb r2, [r3, r2]
lsls r2, r2, #0x10
ldrb r3, [r3, #1]
lsls r3, r3, #0x18
asrs r3, r3, #0x18
lsls r3, r3, #0x10
bl sub_0806FA48
pop {pc}
.align 2, 0
_0809E820: .4byte gUnk_081242D8
thumb_func_start sub_0809E824
sub_0809E824: @ 0x0809E824
push {lr}
ldr r2, _0809E838 @ =gUnk_08124354
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809E838: .4byte gUnk_08124354
thumb_func_start sub_0809E83C
sub_0809E83C: @ 0x0809E83C
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809E856
adds r0, r4, #0
bl sub_0809E96C
bl sub_0805E780
_0809E856:
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E86C
sub_0809E86C: @ 0x0809E86C
push {r4, lr}
adds r4, r0, #0
ldr r1, _0809E8B4 @ =gLinkEntity
movs r2, #0x30
movs r3, #0x30
bl sub_0800419C
cmp r0, #0
beq _0809E89A
movs r0, #0x14
bl GetProgressFlag
cmp r0, #0
beq _0809E89A
ldr r0, _0809E8B8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0809E89A
adds r0, r4, #0
bl sub_080A2B80
_0809E89A:
bl sub_0809E9A0
cmp r0, #0x54
bne _0809E8B0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xf
strb r0, [r4, #0xe]
movs r0, #1
bl sub_08078A90
_0809E8B0:
pop {r4, pc}
.align 2, 0
_0809E8B4: .4byte gLinkEntity
_0809E8B8: .4byte gUnk_030010A0
thumb_func_start sub_0809E8BC
sub_0809E8BC: @ 0x0809E8BC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809E8E8
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x3c
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x40
ands r0, r1
strb r0, [r4, #0x18]
adds r0, r4, #0
bl sub_0809E96C
adds r0, r4, #0
bl sub_0809E918
_0809E8E8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809E8EC
sub_0809E8EC: @ 0x0809E8EC
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809E916
adds r0, r1, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
movs r0, #0
bl sub_08078A90
movs r0, #0x73
bl sub_080A3268
bl sub_0805E780
_0809E916:
pop {pc}
thumb_func_start sub_0809E918
sub_0809E918: @ 0x0809E918
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r4, _0809E964 @ =gUnk_08124364
movs r1, #0
ldrsh r0, [r4, r1]
ldr r1, _0809E968 @ =0xFFFFFC18
cmp r0, r1
beq _0809E962
adds r6, r1, #0
_0809E92A:
adds r0, r5, #0
movs r1, #3
movs r2, #0
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _0809E958
ldrh r0, [r4]
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r2, #0x2e]
ldrh r0, [r4, #2]
ldrh r1, [r2, #0x32]
adds r0, r0, r1
strh r0, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r2, #0
bl sub_08016A04
_0809E958:
adds r4, #4
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, r6
bne _0809E92A
_0809E962:
pop {r4, r5, r6, pc}
.align 2, 0
_0809E964: .4byte gUnk_08124364
_0809E968: .4byte 0xFFFFFC18
thumb_func_start sub_0809E96C
sub_0809E96C: @ 0x0809E96C
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0809E99C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, #0x20
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
adds r2, #8
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
bl sub_08018C1C
pop {r4, r5, pc}
.align 2, 0
_0809E99C: .4byte gUnk_03000BF0
thumb_func_start sub_0809E9A0
sub_0809E9A0: @ 0x0809E9A0
push {r4, r5, r6, lr}
ldr r5, _0809E9B0 @ =gLinkEntity
ldrb r2, [r5, #0xc]
cmp r2, #6
beq _0809E9B4
movs r0, #0
b _0809E9F0
.align 2, 0
_0809E9B0: .4byte gLinkEntity
_0809E9B4:
ldrb r0, [r5, #0x14]
ands r2, r0
lsls r2, r2, #1
ldr r0, _0809E9F4 @ =gUnk_080B4468
adds r2, r2, r0
movs r1, #0x2e
ldrsh r0, [r5, r1]
movs r3, #0
ldrsh r1, [r2, r3]
adds r0, r0, r1
ldr r4, _0809E9F8 @ =gUnk_03000BF0
ldrh r1, [r4, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r6, #0x32
ldrsh r1, [r5, r6]
movs r5, #2
ldrsh r2, [r2, r5]
adds r1, r1, r2
ldrh r2, [r4, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
movs r1, #1
bl sub_080002C8
_0809E9F0:
pop {r4, r5, r6, pc}
.align 2, 0
_0809E9F4: .4byte gUnk_080B4468
_0809E9F8: .4byte gUnk_03000BF0
thumb_func_start sub_0809E9FC
sub_0809E9FC: @ 0x0809E9FC
push {r4, lr}
adds r4, r0, #0
ldr r1, _0809EA18 @ =gUnk_081243B4
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_0809EB30
pop {r4, pc}
.align 2, 0
_0809EA18: .4byte gUnk_081243B4
thumb_func_start sub_0809EA1C
sub_0809EA1C: @ 0x0809EA1C
push {lr}
ldr r2, _0809EA30 @ =gUnk_081243BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809EA30: .4byte gUnk_081243BC
thumb_func_start sub_0809EA34
sub_0809EA34: @ 0x0809EA34
push {r4, lr}
adds r4, r0, #0
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
strb r2, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
subs r1, #1
movs r0, #0x28
strb r0, [r1]
subs r1, #4
movs r0, #0xa
strb r0, [r1]
ldr r0, _0809EA7C @ =gUnk_080FD150
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_0809EAD8
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
bl sub_0809EABC
pop {r4, pc}
.align 2, 0
_0809EA7C: .4byte gUnk_080FD150
thumb_func_start sub_0809EA80
sub_0809EA80: @ 0x0809EA80
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809EAB4
adds r4, r5, #0
adds r4, #0x86
ldrh r0, [r4]
bl sub_0807CBE4
cmp r0, #0
beq _0809EAA6
ldrh r0, [r4]
bl sub_0807CD48
b _0809EAAC
_0809EAA6:
ldrh r0, [r4]
bl sub_0807CCC8
_0809EAAC:
movs r0, #0x88
lsls r0, r0, #1
bl sub_08004488
_0809EAB4:
adds r0, r5, #0
bl sub_0809EABC
pop {r4, r5, pc}
thumb_func_start sub_0809EABC
sub_0809EABC: @ 0x0809EABC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
rsbs r1, r0, #0
orrs r1, r0
lsrs r1, r1, #0x1f
ldrb r0, [r4, #0x1e]
cmp r0, r1
beq _0809EAD6
strb r1, [r4, #0x1e]
_0809EAD6:
pop {r4, pc}
thumb_func_start sub_0809EAD8
sub_0809EAD8: @ 0x0809EAD8
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0809EAF8
bl sub_0804B128
str r0, [r5, #0x54]
adds r1, r5, #0
adds r1, #0x54
adds r2, r5, #0
adds r2, #0x74
adds r0, r5, #0
bl sub_080A2CC0
b _0809EB24
_0809EAF8:
ldr r0, _0809EB28 @ =0x00004050
movs r2, #0x2e
ldrsh r1, [r5, r2]
ldr r3, _0809EB2C @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r5, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r2, r5, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
_0809EB24:
pop {r4, r5, r6, pc}
.align 2, 0
_0809EB28: .4byte 0x00004050
_0809EB2C: .4byte gUnk_03000BF0
thumb_func_start sub_0809EB30
sub_0809EB30: @ 0x0809EB30
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0809EB64
ldrb r1, [r4, #0x15]
movs r0, #0x80
ands r0, r1
cmp r0, #0
bne _0809EB4A
adds r0, r4, #0
bl sub_0806F69C
_0809EB4A:
adds r2, r4, #0
adds r2, #0x74
ldrh r0, [r2]
subs r0, #1
strh r0, [r2]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809EB64
adds r1, r4, #0
adds r1, #0x54
adds r0, r4, #0
bl sub_080A2CC0
_0809EB64:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809EB68
sub_0809EB68: @ 0x0809EB68
push {lr}
ldr r2, _0809EB7C @ =gUnk_081243C4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809EB7C: .4byte gUnk_081243C4
thumb_func_start sub_0809EB80
sub_0809EB80: @ 0x0809EB80
push {r4, r5, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r5, #3
strb r5, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
subs r1, #1
movs r0, #0x28
strb r0, [r1]
subs r1, #4
movs r0, #0xa
strb r0, [r1]
ldr r0, _0809EBD4 @ =gUnk_080FD150
str r0, [r4, #0x48]
adds r0, r4, #0
bl sub_0809EAD8
adds r0, r4, #0
bl sub_08016A04
adds r0, r4, #0
adds r0, #0x84
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809EBD2
strb r5, [r4, #0xc]
movs r0, #2
strb r0, [r4, #0x1e]
_0809EBD2:
pop {r4, r5, pc}
.align 2, 0
_0809EBD4: .4byte gUnk_080FD150
thumb_func_start sub_0809EBD8
sub_0809EBD8: @ 0x0809EBD8
push {lr}
adds r2, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809EC04
movs r1, #2
strb r1, [r2, #0xc]
movs r0, #0x10
strb r0, [r2, #0xe]
strb r1, [r2, #0x1e]
adds r0, r2, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
movs r0, #0x88
lsls r0, r0, #1
bl sub_08004488
_0809EC04:
pop {pc}
.align 2, 0
thumb_func_start sub_0809EC08
sub_0809EC08: @ 0x0809EC08
push {r4, lr}
adds r4, r0, #0
adds r0, #0x84
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809EC1E
movs r0, #3
strb r0, [r4, #0xc]
b _0809EC44
_0809EC1E:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809EC44
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #3
strb r0, [r4, #0x1e]
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CD48
movs r0, #0x88
lsls r0, r0, #1
bl sub_08004488
_0809EC44:
pop {r4, pc}
.align 2, 0
thumb_func_start nullsub_126
nullsub_126: @ 0x0809EC48
bx lr
.align 2, 0
thumb_func_start sub_0809EC4C
sub_0809EC4C: @ 0x0809EC4C
push {r4, r5, r6, lr}
adds r6, r0, #0
ldrb r3, [r6, #0xc]
cmp r3, #0
bne _0809ED14
movs r4, #1
strb r4, [r6, #0xc]
adds r2, r6, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
ldrb r0, [r6, #0xa]
cmp r0, #0
bne _0809ED04
ldrb r0, [r6, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r6, #0x10]
strb r4, [r6, #0x1e]
adds r5, r6, #0
adds r5, #0x38
strb r4, [r5]
adds r1, r6, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
subs r1, #1
movs r0, #0x7a
strb r0, [r1]
adds r0, r6, #0
adds r0, #0x3b
strb r4, [r0]
ldr r0, _0809ECF4 @ =gUnk_080FD168
str r0, [r6, #0x48]
movs r0, #0x2e
ldrsh r4, [r6, r0]
ldr r1, _0809ECF8 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r4, r4, r0
asrs r4, r4, #4
movs r2, #0x3f
ands r4, r2
movs r3, #0x32
ldrsh r0, [r6, r3]
ldrh r1, [r1, #8]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r2
lsls r0, r0, #6
orrs r4, r0
ldr r0, _0809ECFC @ =0x00004066
subs r1, r4, #1
ldrb r2, [r5]
bl sub_0800015E
ldr r0, _0809ED00 @ =0x00004065
ldrb r2, [r5]
adds r1, r4, #0
bl sub_0800015E
adds r0, r6, #0
bl sub_08016A04
movs r0, #0x9e
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r1, r0, #0
cmp r1, #0
beq _0809ED14
str r1, [r6, #0x54]
adds r0, r6, #0
bl sub_0806FA24
b _0809ED14
.align 2, 0
_0809ECF4: .4byte gUnk_080FD168
_0809ECF8: .4byte gUnk_03000BF0
_0809ECFC: .4byte 0x00004066
_0809ED00: .4byte 0x00004065
_0809ED04:
strb r3, [r6, #0x1e]
adds r1, r6, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r6, #0
bl sub_08016A04
_0809ED14:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809ED18
sub_0809ED18: @ 0x0809ED18
push {lr}
ldr r2, _0809ED2C @ =gUnk_081243D4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809ED2C: .4byte gUnk_081243D4
thumb_func_start sub_0809ED30
sub_0809ED30: @ 0x0809ED30
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
movs r1, #2
eors r0, r1
lsls r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
bl sub_0809EE34
adds r0, r4, #0
bl sub_0809EFB0
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
pop {r4, pc}
thumb_func_start sub_0809ED54
sub_0809ED54: @ 0x0809ED54
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x84
ldrh r0, [r1]
cmp r0, #0
beq _0809ED6A
bl sub_0807CBE4
cmp r0, #0
beq _0809ED86
_0809ED6A:
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _0809ED80
adds r1, r4, #0
adds r1, #0x74
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809ED86
_0809ED80:
adds r0, r4, #0
bl sub_0809EE08
_0809ED86:
pop {r4, pc}
thumb_func_start sub_0809ED88
sub_0809ED88: @ 0x0809ED88
push {r4, lr}
adds r4, r0, #0
bl sub_0809F08C
adds r0, r4, #0
bl sub_0809EE44
adds r0, r4, #0
adds r0, #0x86
ldrh r2, [r0]
cmp r2, #0
beq _0809EDC6
adds r1, r4, #0
adds r1, #0x84
ldrh r0, [r1]
cmp r0, r2
bne _0809EDB4
bl sub_0807CBE4
cmp r0, #0
bne _0809EDE2
b _0809EDBE
_0809EDB4:
ldrh r0, [r1]
bl sub_0807CBE4
cmp r0, #0
beq _0809EDE2
_0809EDBE:
adds r0, r4, #0
bl sub_0809EE24
b _0809EDE2
_0809EDC6:
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _0809EDE2
adds r1, r4, #0
adds r1, #0x74
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _0809EDE2
adds r0, r4, #0
bl sub_0809EE24
_0809EDE2:
pop {r4, pc}
thumb_func_start sub_0809EDE4
sub_0809EDE4: @ 0x0809EDE4
push {r4, lr}
adds r4, r0, #0
bl sub_0809F08C
adds r0, r4, #0
bl sub_0809EE44
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809EE06
adds r0, r4, #0
bl sub_0809EE34
_0809EE06:
pop {r4, pc}
thumb_func_start sub_0809EE08
sub_0809EE08: @ 0x0809EE08
push {lr}
movs r1, #2
strb r1, [r0, #0xc]
adds r1, r0, #0
adds r1, #0x7f
ldrb r1, [r1]
lsls r1, r1, #2
adds r2, r0, #0
adds r2, #0x74
strh r1, [r2]
ldrb r1, [r0, #0xa]
bl sub_08004260
pop {pc}
thumb_func_start sub_0809EE24
sub_0809EE24: @ 0x0809EE24
push {lr}
movs r1, #3
strb r1, [r0, #0xc]
ldrb r1, [r0, #0xa]
adds r1, #4
bl sub_08004260
pop {pc}
thumb_func_start sub_0809EE34
sub_0809EE34: @ 0x0809EE34
movs r1, #1
strb r1, [r0, #0xc]
ldrb r1, [r0, #0xe]
lsls r1, r1, #2
adds r0, #0x74
strh r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_0809EE44
sub_0809EE44: @ 0x0809EE44
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r0, #0x5a
ldrb r0, [r0]
movs r1, #7
ands r1, r0
adds r0, r5, #0
adds r0, #0x7e
ldrb r0, [r0]
lsls r0, r1
strh r0, [r5, #0x24]
cmp r1, #0
bne _0809EE60
b _0809EF74
_0809EE60:
ldr r4, _0809EEA4 @ =gLinkEntity
adds r0, r5, #0
adds r1, r4, #0
bl sub_0809EF78
cmp r0, #0
beq _0809EE80
bl sub_08079F8C
cmp r0, #0
beq _0809EE80
movs r1, #0x24
ldrsh r0, [r5, r1]
ldrb r1, [r5, #0x15]
bl sub_08079E58
_0809EE80:
ldr r6, _0809EEA8 @ =gUnk_03003D80
ldr r4, [r6, #4]
cmp r6, r4
beq _0809EF74
_0809EE88:
ldrb r0, [r4, #8]
cmp r0, #8
bne _0809EF6E
movs r3, #0
ldrb r0, [r4, #9]
subs r0, #2
cmp r0, #0x17
bhi _0809EF52
lsls r0, r0, #2
ldr r1, _0809EEAC @ =_0809EEB0
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809EEA4: .4byte gLinkEntity
_0809EEA8: .4byte gUnk_03003D80
_0809EEAC: .4byte _0809EEB0
_0809EEB0: @ jump table
.4byte _0809EF1E @ case 0
.4byte _0809EF26 @ case 1
.4byte _0809EF48 @ case 2
.4byte _0809EF52 @ case 3
.4byte _0809EF52 @ case 4
.4byte _0809EF52 @ case 5
.4byte _0809EF52 @ case 6
.4byte _0809EF52 @ case 7
.4byte _0809EF52 @ case 8
.4byte _0809EF52 @ case 9
.4byte _0809EF52 @ case 10
.4byte _0809EF52 @ case 11
.4byte _0809EF52 @ case 12
.4byte _0809EF52 @ case 13
.4byte _0809EF52 @ case 14
.4byte _0809EF50 @ case 15
.4byte _0809EF52 @ case 16
.4byte _0809EF10 @ case 17
.4byte _0809EF52 @ case 18
.4byte _0809EF52 @ case 19
.4byte _0809EF52 @ case 20
.4byte _0809EF52 @ case 21
.4byte _0809EF52 @ case 22
.4byte _0809EF50 @ case 23
_0809EF10:
ldrb r0, [r4, #0xc]
cmp r0, #2
bne _0809EF56
ldrb r0, [r4, #0xd]
cmp r0, #1
bls _0809EF52
b _0809EF56
_0809EF1E:
ldrb r0, [r4, #0xc]
cmp r0, #2
beq _0809EF52
b _0809EF56
_0809EF26:
ldr r2, _0809EF44 @ =gLinkEntity
movs r7, #0x2e
ldrsh r1, [r4, r7]
movs r7, #0x2e
ldrsh r0, [r2, r7]
cmp r1, r0
bne _0809EF56
movs r0, #0x32
ldrsh r1, [r4, r0]
movs r7, #0x32
ldrsh r0, [r2, r7]
cmp r1, r0
beq _0809EF52
b _0809EF56
.align 2, 0
_0809EF44: .4byte gLinkEntity
_0809EF48:
ldrb r0, [r5, #0xf]
cmp r0, #0
beq _0809EF52
b _0809EF56
_0809EF50:
movs r3, #1
_0809EF52:
cmp r3, #0
beq _0809EF6E
_0809EF56:
adds r0, r5, #0
adds r1, r4, #0
bl sub_0809EF78
cmp r0, #0
beq _0809EF6E
movs r0, #0x24
ldrsh r1, [r5, r0]
ldrb r2, [r5, #0x15]
adds r0, r4, #0
bl sub_080044AE
_0809EF6E:
ldr r4, [r4, #4]
cmp r6, r4
bne _0809EE88
_0809EF74:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0809EF78
sub_0809EF78: @ 0x0809EF78
push {r4, r5, lr}
adds r3, r0, #0
adds r4, r1, #0
movs r5, #0
adds r0, #0x70
ldrh r2, [r0]
movs r1, #0x2e
ldrsh r0, [r4, r1]
adds r1, r3, #0
adds r1, #0x6c
ldrh r1, [r1]
subs r0, r0, r1
cmp r2, r0
blo _0809EFAC
adds r0, r3, #0
adds r0, #0x72
ldrh r2, [r0]
movs r1, #0x32
ldrsh r0, [r4, r1]
adds r1, r3, #0
adds r1, #0x6e
ldrh r1, [r1]
subs r0, r0, r1
cmp r2, r0
blo _0809EFAC
movs r5, #1
_0809EFAC:
adds r0, r5, #0
pop {r4, r5, pc}
thumb_func_start sub_0809EFB0
sub_0809EFB0: @ 0x0809EFB0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r4, r0, #0
ldr r0, _0809F010 @ =gUnk_081243E4
ldrb r1, [r4, #0xa]
lsls r1, r1, #1
adds r2, r1, r0
ldrb r2, [r2]
lsls r2, r2, #0x18
asrs r2, r2, #0x18
mov sb, r2
adds r1, #1
adds r1, r1, r0
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov r8, r1
movs r0, #0x2e
ldrsh r6, [r4, r0]
movs r0, #0x32
ldrsh r5, [r4, r0]
ldr r0, _0809F014 @ =gUnk_02027EB4
mov sl, r0
movs r7, #0
_0809EFE6:
adds r7, #1
add r6, sb
add r5, r8
mov r0, sl
adds r1, r6, #0
adds r2, r5, #0
movs r3, #9
bl sub_080AE4CC
cmp r0, #0
beq _0809EFE6
subs r0, r7, #1
lsls r7, r0, #4
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _0809F034
cmp r0, #1
bgt _0809F018
cmp r0, #0
beq _0809F022
b _0809F082
.align 2, 0
_0809F010: .4byte gUnk_081243E4
_0809F014: .4byte gUnk_02027EB4
_0809F018:
cmp r0, #2
beq _0809F03E
cmp r0, #3
beq _0809F064
b _0809F082
_0809F022:
ldrh r0, [r4, #0x2e]
subs r0, #0x10
adds r1, r4, #0
adds r1, #0x6c
strh r0, [r1]
ldrh r0, [r4, #0x32]
adds r0, #8
adds r1, #2
b _0809F054
_0809F034:
adds r1, r7, #0
adds r1, #8
ldrh r0, [r4, #0x2e]
subs r0, r0, r1
b _0809F068
_0809F03E:
ldrh r0, [r4, #0x2e]
subs r0, #0x10
adds r1, r4, #0
adds r1, #0x6c
strh r0, [r1]
adds r1, r7, #0
adds r1, #8
ldrh r0, [r4, #0x32]
subs r0, r0, r1
adds r1, r4, #0
adds r1, #0x6e
_0809F054:
strh r0, [r1]
adds r1, #2
movs r0, #0x20
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x72
strh r7, [r0]
b _0809F082
_0809F064:
ldrh r0, [r4, #0x2e]
adds r0, #8
_0809F068:
adds r1, r4, #0
adds r1, #0x6c
strh r0, [r1]
ldrh r0, [r4, #0x32]
subs r0, #0x10
adds r1, #2
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x70
strh r7, [r0]
adds r1, #4
movs r0, #0x20
strh r0, [r1]
_0809F082:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0809F08C
sub_0809F08C: @ 0x0809F08C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _0809F09A
subs r0, #1
strb r0, [r4, #0xf]
_0809F09A:
adds r0, r4, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r0, #0x20
ands r0, r1
cmp r0, #0
beq _0809F0C0
movs r0, #0xdf
ands r0, r1
strb r0, [r2]
movs r0, #0x14
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0809F0E4
b _0809F0E0
_0809F0C0:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0809F0E0
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0809F0E0
movs r0, #0x14
strb r0, [r4, #0xf]
ldrb r0, [r2]
movs r1, #0x10
eors r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_0809F0E4
_0809F0E0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809F0E4
sub_0809F0E4: @ 0x0809F0E4
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0809F124 @ =0x00000183
bl sub_08004488
ldrb r0, [r5, #0xa]
movs r1, #2
eors r1, r0
movs r0, #0xb2
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809F120
str r5, [r4, #0x50]
ldrb r0, [r5, #0xa]
lsls r0, r0, #1
ldr r1, _0809F128 @ =gUnk_081243EC
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA48
_0809F120:
pop {r4, r5, pc}
.align 2, 0
_0809F124: .4byte 0x00000183
_0809F128: .4byte gUnk_081243EC
thumb_func_start sub_0809F12C
sub_0809F12C: @ 0x0809F12C
push {lr}
ldr r2, _0809F140 @ =gUnk_08124670
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F140: .4byte gUnk_08124670
thumb_func_start sub_0809F144
sub_0809F144: @ 0x0809F144
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _0809F188 @ =gUnk_080FD178
str r0, [r4, #0x48]
ldr r0, _0809F18C @ =0x00004022
movs r2, #0x2e
ldrsh r1, [r4, r2]
ldr r3, _0809F190 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r5, #0x3f
ands r1, r5
movs r6, #0x32
ldrsh r2, [r4, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r5
lsls r2, r2, #6
orrs r1, r2
adds r2, r4, #0
adds r2, #0x38
ldrb r2, [r2]
bl sub_0800015E
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
pop {r4, r5, r6, pc}
.align 2, 0
_0809F188: .4byte gUnk_080FD178
_0809F18C: .4byte 0x00004022
_0809F190: .4byte gUnk_03000BF0
thumb_func_start sub_0809F194
sub_0809F194: @ 0x0809F194
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x50]
ldrb r0, [r0, #0xf]
cmp r0, #1
bne _0809F1AE
movs r0, #2
strb r0, [r2, #0xc]
ldrb r1, [r2, #0xa]
adds r1, #4
adds r0, r2, #0
bl sub_08004260
_0809F1AE:
pop {pc}
thumb_func_start sub_0809F1B0
sub_0809F1B0: @ 0x0809F1B0
push {r4, r5, lr}
adds r4, r0, #0
bl sub_08004274
adds r2, r4, #0
adds r2, #0x5a
ldrb r1, [r2]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
beq _0809F20C
movs r0, #0xfe
ands r0, r1
strb r0, [r2]
movs r0, #0x1b
bl sub_080A7EE0
adds r5, r0, #0
cmp r5, #0
beq _0809F21E
ldrb r0, [r4, #0xa]
strb r0, [r5, #0xa]
ldr r0, [r4, #0x50]
str r0, [r5, #0x50]
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
ldr r1, _0809F208 @ =gUnk_08124684
adds r0, r0, r1
movs r2, #0
ldrsb r2, [r0, r2]
lsls r2, r2, #0x10
movs r3, #1
ldrsb r3, [r0, r3]
lsls r3, r3, #0x10
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
movs r0, #0xec
bl sub_08004488
b _0809F21E
.align 2, 0
_0809F208: .4byte gUnk_08124684
_0809F20C:
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809F21E
strb r3, [r4, #0xc]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
_0809F21E:
pop {r4, r5, pc}
thumb_func_start sub_0809F220
sub_0809F220: @ 0x0809F220
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F242
movs r0, #4
strb r0, [r2, #0xc]
movs r0, #0xf
strb r0, [r2, #0xe]
ldrb r1, [r2, #0xa]
adds r0, r2, #0
bl sub_08004260
b _0809F252
_0809F242:
ldr r0, [r2, #0x50]
adds r0, #0x36
movs r1, #1
ldrb r2, [r2, #0xb]
lsls r1, r2
ldrb r2, [r0]
orrs r1, r2
strb r1, [r0]
_0809F252:
pop {pc}
thumb_func_start sub_0809F254
sub_0809F254: @ 0x0809F254
push {r4, r5, lr}
adds r3, r0, #0
ldrb r1, [r3, #0x18]
lsls r0, r1, #0x1e
lsrs r0, r0, #0x1e
movs r5, #1
eors r0, r5
movs r4, #4
rsbs r4, r4, #0
adds r2, r4, #0
ands r2, r1
orrs r2, r0
strb r2, [r3, #0x18]
ldrb r0, [r3, #0xe]
subs r0, #1
strb r0, [r3, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F284
movs r0, #1
strb r5, [r3, #0xc]
ands r2, r4
orrs r2, r0
strb r2, [r3, #0x18]
_0809F284:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809F288
sub_0809F288: @ 0x0809F288
push {lr}
ldr r2, _0809F29C @ =gUnk_081246EC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F29C: .4byte gUnk_081246EC
thumb_func_start sub_0809F2A0
sub_0809F2A0: @ 0x0809F2A0
push {r4, r5, r6, lr}
movs r1, #1
strb r1, [r0, #0xc]
ldrb r1, [r0, #0xb]
strb r1, [r0, #0x1e]
ldrb r1, [r0, #0x19]
movs r2, #0xc0
orrs r1, r2
strb r1, [r0, #0x19]
adds r3, r0, #0
adds r3, #0x29
ldrb r1, [r3]
movs r2, #7
orrs r1, r2
strb r1, [r3]
ldr r5, _0809F2EC @ =0x00004069
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r3, _0809F2F0 @ =gUnk_03000BF0
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #4
movs r4, #0x3f
ands r1, r4
movs r6, #0x32
ldrsh r2, [r0, r6]
ldrh r3, [r3, #8]
subs r2, r2, r3
asrs r2, r2, #4
ands r2, r4
lsls r2, r2, #6
orrs r1, r2
adds r0, #0x38
ldrb r2, [r0]
adds r0, r5, #0
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_0809F2EC: .4byte 0x00004069
_0809F2F0: .4byte gUnk_03000BF0
thumb_func_start nullsub_537
nullsub_537: @ 0x0809F2F4
bx lr
.align 2, 0
thumb_func_start sub_0809F2F8
sub_0809F2F8: @ 0x0809F2F8
push {r4, lr}
adds r4, r0, #0
ldr r1, _0809F314 @ =gUnk_081246F4
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
_0809F314: .4byte gUnk_081246F4
thumb_func_start sub_0809F318
sub_0809F318: @ 0x0809F318
push {r4, lr}
adds r4, r0, #0
movs r1, #0
bl sub_08004260
bl sub_08000E50
movs r1, #0x10
ands r1, r0
cmp r1, #0
beq _0809F336
ldrb r0, [r4, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x18]
_0809F336:
movs r0, #0x28
strh r0, [r4, #0x2e]
movs r0, #0x48
strh r0, [r4, #0x32]
ldr r0, _0809F36C @ =0x0000FFB0
strh r0, [r4, #0x36]
ldrb r1, [r4, #0x1b]
movs r0, #0x3f
ands r0, r1
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x1b]
movs r0, #1
strb r0, [r4, #0xc]
ldr r1, _0809F370 @ =gUnk_08124704
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
bl sub_0801D2B4
adds r0, r4, #0
movs r1, #7
bl sub_0805E3A0
pop {r4, pc}
.align 2, 0
_0809F36C: .4byte 0x0000FFB0
_0809F370: .4byte gUnk_08124704
thumb_func_start sub_0809F374
sub_0809F374: @ 0x0809F374
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
cmp r0, #1
bhi _0809F3AE
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_080044EC
cmp r0, #1
bhi _0809F3C0
movs r0, #0
str r0, [r4, #0x34]
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
movs r0, #0xc3
lsls r0, r0, #1
bl sub_080A3268
b _0809F3E6
_0809F3AE:
movs r1, #0x80
lsls r1, r1, #6
adds r0, r4, #0
bl sub_080044EC
cmp r0, #0
beq _0809F3C8
cmp r0, #1
beq _0809F3D4
_0809F3C0:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
b _0809F3E6
_0809F3C8:
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_0809F3D4:
movs r0, #0
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0809F448
movs r0, #0xc3
lsls r0, r0, #1
bl sub_080A3268
_0809F3E6:
pop {r4, pc}
thumb_func_start sub_0809F3E8
sub_0809F3E8: @ 0x0809F3E8
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809F404
movs r0, #3
strb r0, [r2, #0xc]
adds r0, r2, #0
movs r1, #2
bl sub_08004260
_0809F404:
pop {pc}
.align 2, 0
thumb_func_start sub_0809F408
sub_0809F408: @ 0x0809F408
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x5a
ldrb r0, [r1]
cmp r0, #9
beq _0809F41C
cmp r0, #0x80
beq _0809F438
b _0809F442
_0809F41C:
movs r0, #0
strb r0, [r1]
adds r0, r2, #0
movs r1, #0x43
movs r2, #0
bl CreateFX
ldr r1, _0809F434 @ =gUnk_02000080
movs r0, #1
strb r0, [r1]
b _0809F442
.align 2, 0
_0809F434: .4byte gUnk_02000080
_0809F438:
ldr r1, _0809F444 @ =gUnk_02000080
movs r0, #1
strb r0, [r1, #4]
bl sub_0805E780
_0809F442:
pop {pc}
.align 2, 0
_0809F444: .4byte gUnk_02000080
thumb_func_start sub_0809F448
sub_0809F448: @ 0x0809F448
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
bl sub_08000E50
adds r5, r0, #0
ldrb r0, [r6, #0xf]
lsls r2, r0, #1
ldr r1, _0809F474 @ =gUnk_08124708
adds r7, r2, r1
adds r0, #1
strb r0, [r6, #0xf]
ldr r1, [r6, #0x2c]
movs r0, #0xa0
lsls r0, r0, #0xe
subs r4, r0, r1
ldrb r0, [r7]
cmp r0, #0
beq _0809F478
cmp r0, #1
beq _0809F492
b _0809F49C
.align 2, 0
_0809F474: .4byte gUnk_08124708
_0809F478:
movs r1, #0xc0
lsls r1, r1, #0xd
adds r0, r5, #0
bl __modsi3
adds r4, r0, #0
movs r0, #0x80
lsls r0, r0, #0x11
ands r0, r5
cmp r0, #0
beq _0809F49C
rsbs r4, r4, #0
b _0809F49C
_0809F492:
ldr r0, _0809F4BC @ =0xFFF80000
adds r1, r4, r0
ldr r0, _0809F4C0 @ =0x000FFFFF
ands r0, r5
adds r4, r1, r0
_0809F49C:
adds r0, r4, #0
cmp r4, #0
bge _0809F4A4
rsbs r0, r4, #0
_0809F4A4:
ldrb r1, [r7, #1]
lsls r1, r1, #8
bl __divsi3
strh r0, [r6, #0x24]
adds r0, r4, #0
movs r1, #0
bl sub_080045DA
lsrs r0, r0, #3
strb r0, [r6, #0x15]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809F4BC: .4byte 0xFFF80000
_0809F4C0: .4byte 0x000FFFFF
thumb_func_start sub_0809F4C4
sub_0809F4C4: @ 0x0809F4C4
push {lr}
ldr r2, _0809F4D8 @ =gUnk_08124798
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F4D8: .4byte gUnk_08124798
thumb_func_start sub_0809F4DC
sub_0809F4DC: @ 0x0809F4DC
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xb]
cmp r0, #0
bne _0809F4FC
ldr r0, _0809F4F8 @ =gUnk_081247A0
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0809F50C
.align 2, 0
_0809F4F8: .4byte gUnk_081247A0
_0809F4FC:
ldr r0, _0809F510 @ =gUnk_081247AC
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_0809F50C:
pop {pc}
.align 2, 0
_0809F510: .4byte gUnk_081247AC
thumb_func_start sub_0809F514
sub_0809F514: @ 0x0809F514
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x78
strb r1, [r0, #0xe]
ldrb r2, [r0, #0x18]
subs r1, #0x7c
ands r1, r2
strb r1, [r0, #0x18]
adds r2, r0, #0
adds r2, #0x68
movs r1, #0xc
strb r1, [r2]
ldr r1, _0809F540 @ =gUnk_03000BF0
str r0, [r1, #0x30]
ldr r2, _0809F544 @ =gUnk_02034490
movs r1, #0xff
strb r1, [r2]
bl sub_0809F7BC
pop {pc}
.align 2, 0
_0809F540: .4byte gUnk_03000BF0
_0809F544: .4byte gUnk_02034490
thumb_func_start sub_0809F548
sub_0809F548: @ 0x0809F548
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F590
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
adds r0, #0xc3
bl sub_080A3268
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0809F58C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
bl sub_0809F814
b _0809F5A8
.align 2, 0
_0809F58C: .4byte gUnk_03000BF0
_0809F590:
ldr r0, _0809F5AC @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0809F5A2
adds r0, r4, #0
bl sub_0809F7BC
_0809F5A2:
adds r0, r4, #0
bl sub_0809F7F4
_0809F5A8:
pop {r4, r5, pc}
.align 2, 0
_0809F5AC: .4byte gUnk_030010A0
thumb_func_start sub_0809F5B0
sub_0809F5B0: @ 0x0809F5B0
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
cmp r1, #0
bne _0809F5D4
movs r0, #0x73
bl sub_080A3268
movs r0, #0x24
bl sub_0807CD04
ldr r0, _0809F5D8 @ =gUnk_080DD750
bl sub_0804ADDC
bl sub_0805E780
_0809F5D4:
pop {pc}
.align 2, 0
_0809F5D8: .4byte gUnk_080DD750
thumb_func_start sub_0809F5DC
sub_0809F5DC: @ 0x0809F5DC
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
strb r1, [r0, #0x18]
adds r0, #0x68
movs r1, #0xc
strb r1, [r0]
bx lr
thumb_func_start sub_0809F5F0
sub_0809F5F0: @ 0x0809F5F0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
bl sub_0807CC3C
cmp r0, #0
beq _0809F614
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
movs r0, #3
bl sub_08078A90
bl sub_08078B48
ldr r0, _0809F618 @ =gUnk_03000BF0
str r4, [r0, #0x30]
_0809F614:
pop {r4, pc}
.align 2, 0
_0809F618: .4byte gUnk_03000BF0
thumb_func_start sub_0809F61C
sub_0809F61C: @ 0x0809F61C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0809F678 @ =gUnk_03000BF0
ldrb r1, [r5, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0809F694
ldrb r0, [r4, #0xe]
cmp r0, #0x1e
bne _0809F638
ldrb r0, [r4, #0xb]
bl sub_0807CCB4
_0809F638:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F67C
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r0, #0xa5
bl sub_080A3268
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
bl sub_0809F814
b _0809F694
.align 2, 0
_0809F678: .4byte gUnk_03000BF0
_0809F67C:
ldr r0, _0809F698 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0809F68E
adds r0, r4, #0
bl sub_0809F7BC
_0809F68E:
adds r0, r4, #0
bl sub_0809F7F4
_0809F694:
pop {r4, r5, pc}
.align 2, 0
_0809F698: .4byte gUnk_030010A0
thumb_func_start sub_0809F69C
sub_0809F69C: @ 0x0809F69C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F6C0
movs r0, #0x1e
strb r0, [r1, #0xe]
movs r0, #4
strb r0, [r1, #0xc]
ldr r1, _0809F6C4 @ =gUnk_03000BF0
ldr r0, _0809F6C8 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #0x73
bl sub_080A3268
_0809F6C0:
pop {pc}
.align 2, 0
_0809F6C4: .4byte gUnk_03000BF0
_0809F6C8: .4byte gLinkEntity
thumb_func_start sub_0809F6CC
sub_0809F6CC: @ 0x0809F6CC
push {lr}
adds r2, r0, #0
ldr r0, _0809F6F8 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0809F6F4
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F6F4
ldr r0, _0809F6FC @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0805E780
_0809F6F4:
pop {pc}
.align 2, 0
_0809F6F8: .4byte gUnk_03000BF0
_0809F6FC: .4byte gUnk_03003F80
thumb_func_start sub_0809F700
sub_0809F700: @ 0x0809F700
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809F722
movs r0, #1
strb r0, [r4, #0xc]
bl sub_08000E50
movs r1, #0x1e
ands r0, r1
adds r0, #8
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0xc
orrs r0, r1
strb r0, [r4, #0x10]
_0809F722:
ldr r0, _0809F768 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0809F750
bl sub_08000E50
ldr r3, _0809F76C @ =gUnk_081247C0
movs r2, #7
adds r1, r0, #0
ands r1, r2
adds r1, r1, r3
ldrb r1, [r1]
movs r5, #0x62
strb r1, [r5, r4]
lsrs r0, r0, #4
ands r0, r2
adds r0, r0, r3
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x63
strb r0, [r1]
_0809F750:
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F766
bl sub_0805E780
_0809F766:
pop {r4, r5, pc}
.align 2, 0
_0809F768: .4byte gUnk_030010A0
_0809F76C: .4byte gUnk_081247C0
thumb_func_start sub_0809F770
sub_0809F770: @ 0x0809F770
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xa3
movs r1, #1
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _0809F7B6
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA30
bl sub_08000E50
ldrh r2, [r4, #0x2e]
subs r2, #0x10
movs r3, #0x1f
adds r1, r0, #0
ands r1, r3
adds r2, r2, r1
strh r2, [r4, #0x2e]
ldrh r2, [r4, #0x32]
subs r2, #0x10
asrs r1, r0, #8
ands r1, r3
adds r2, r2, r1
strh r2, [r4, #0x32]
asrs r0, r0, #0x10
movs r1, #3
ands r0, r1
strb r0, [r4, #0x1e]
movs r0, #0xff
strb r0, [r4, #0x15]
_0809F7B6:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809F7BC
sub_0809F7BC: @ 0x0809F7BC
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
movs r5, #0
ldr r7, _0809F7F0 @ =gUnk_081247C8
_0809F7C4:
adds r0, r6, #0
bl sub_0809F770
adds r4, r0, #0
cmp r4, #0
beq _0809F7E8
bl sub_08000E50
movs r1, #3
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r7
ldrh r1, [r1]
strh r1, [r4, #0x24]
lsrs r0, r0, #8
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
_0809F7E8:
adds r5, #1
cmp r5, #7
bls _0809F7C4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809F7F0: .4byte gUnk_081247C8
thumb_func_start sub_0809F7F4
sub_0809F7F4: @ 0x0809F7F4
push {lr}
adds r1, r0, #0
adds r1, #0x68
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F812
movs r0, #0xc
strb r0, [r1]
movs r0, #0xc2
lsls r0, r0, #1
bl sub_080A3268
_0809F812:
pop {pc}
thumb_func_start sub_0809F814
sub_0809F814: @ 0x0809F814
push {lr}
adds r1, r0, #0
ldr r0, _0809F824 @ =gUnk_081247D0
movs r2, #1
bl sub_0807BB68
pop {pc}
.align 2, 0
_0809F824: .4byte gUnk_081247D0
thumb_func_start sub_0809F828
sub_0809F828: @ 0x0809F828
push {lr}
ldr r2, _0809F83C @ =gUnk_081247F8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F83C: .4byte gUnk_081247F8
thumb_func_start sub_0809F840
sub_0809F840: @ 0x0809F840
push {lr}
adds r2, r0, #0
movs r1, #0
movs r0, #1
strb r0, [r2, #0xc]
strb r1, [r2, #0x1e]
movs r0, #0x20
strb r0, [r2, #0xe]
strb r1, [r2, #0xf]
ldrb r0, [r2, #0xb]
cmp r0, #0
beq _0809F860
ldrb r0, [r2, #0x18]
movs r1, #0x40
orrs r0, r1
strb r0, [r2, #0x18]
_0809F860:
adds r0, r2, #0
bl sub_08016A04
pop {pc}
thumb_func_start sub_0809F868
sub_0809F868: @ 0x0809F868
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F8A2
ldrb r0, [r1, #0xf]
cmp r0, #0
bne _0809F890
ldrb r0, [r1, #0x1e]
adds r0, #1
strb r0, [r1, #0x1e]
ands r0, r2
cmp r0, #3
bne _0809F89E
movs r0, #1
b _0809F89C
_0809F890:
ldrb r0, [r1, #0x1e]
subs r0, #1
strb r0, [r1, #0x1e]
ands r0, r2
cmp r0, #0
bne _0809F89E
_0809F89C:
strb r0, [r1, #0xf]
_0809F89E:
movs r0, #0x20
strb r0, [r1, #0xe]
_0809F8A2:
pop {pc}
thumb_func_start sub_0809F8A4
sub_0809F8A4: @ 0x0809F8A4
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
ldr r0, _0809F904 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x42
bhi _0809F8FC
movs r5, #0
_0809F8B6:
movs r0, #0x1d
bl sub_080A7EE0
adds r4, r0, #0
cmp r5, #0
bne _0809F8C6
mov r8, r4
adds r7, r4, #0
_0809F8C6:
strb r5, [r4, #0xa]
mov r0, r8
str r0, [r4, #0x50]
str r7, [r4, #0x54]
adds r0, r6, #0
adds r1, r4, #0
bl sub_0806FA24
adds r1, r4, #0
adds r1, #0x68
adds r3, r5, #1
movs r2, #7
_0809F8DE:
ldrh r0, [r6, #0x2e]
strh r0, [r1]
adds r1, #2
ldrh r0, [r6, #0x32]
strh r0, [r1]
adds r1, #2
subs r2, #1
cmp r2, #0
bge _0809F8DE
adds r7, r4, #0
adds r5, r3, #0
cmp r5, #4
ble _0809F8B6
bl sub_0805E780
_0809F8FC:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809F904: .4byte gUnk_03003DBC
thumb_func_start sub_0809F908
sub_0809F908: @ 0x0809F908
push {lr}
ldr r2, _0809F91C @ =gUnk_08124800
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F91C: .4byte gUnk_08124800
thumb_func_start sub_0809F920
sub_0809F920: @ 0x0809F920
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _0809F934
bl sub_0805E780
_0809F934:
movs r2, #1
strb r2, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3c
movs r0, #7
strb r0, [r1]
adds r1, #4
movs r0, #0x48
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3f
strb r2, [r0]
subs r1, #5
movs r0, #2
strb r0, [r1]
ldr r0, _0809F960 @ =gUnk_080FD150
str r0, [r4, #0x48]
pop {r4, pc}
.align 2, 0
_0809F960: .4byte gUnk_080FD150
thumb_func_start sub_0809F964
sub_0809F964: @ 0x0809F964
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r0, [r0]
cmp r0, #0xa1
bne _0809F9A8
adds r0, r4, #0
movs r1, #0x4e
movs r2, #0
bl CreateFX
adds r2, r0, #0
cmp r2, #0
beq _0809F99A
adds r3, r2, #0
adds r3, #0x29
ldrb r1, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r3]
adds r1, r2, #0
adds r1, #0x63
movs r0, #0xfb
strb r0, [r1]
_0809F99A:
adds r0, r4, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CCC8
bl sub_0805E780
_0809F9A8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809F9AC
sub_0809F9AC: @ 0x0809F9AC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809F9D2
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #9
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
_0809F9D2:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809F9DC
sub_0809F9DC: @ 0x0809F9DC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809FA9A
movs r0, #0x7f
ands r0, r1
cmp r0, #0x1f
bhi _0809FA9A
lsls r0, r0, #2
ldr r1, _0809FA00 @ =_0809FA04
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0809FA00: .4byte _0809FA04
_0809FA04: @ jump table
.4byte _0809FA84 @ case 0
.4byte _0809FA84 @ case 1
.4byte _0809FA9A @ case 2
.4byte _0809FA9A @ case 3
.4byte _0809FA84 @ case 4
.4byte _0809FA84 @ case 5
.4byte _0809FA84 @ case 6
.4byte _0809FA9A @ case 7
.4byte _0809FA84 @ case 8
.4byte _0809FA84 @ case 9
.4byte _0809FA84 @ case 10
.4byte _0809FA84 @ case 11
.4byte _0809FA84 @ case 12
.4byte _0809FA9A @ case 13
.4byte _0809FA9A @ case 14
.4byte _0809FA9A @ case 15
.4byte _0809FA9A @ case 16
.4byte _0809FA9A @ case 17
.4byte _0809FA9A @ case 18
.4byte _0809FA9A @ case 19
.4byte _0809FA9A @ case 20
.4byte _0809FA9A @ case 21
.4byte _0809FA9A @ case 22
.4byte _0809FA9A @ case 23
.4byte _0809FA9A @ case 24
.4byte _0809FA9A @ case 25
.4byte _0809FA9A @ case 26
.4byte _0809FA9A @ case 27
.4byte _0809FA9A @ case 28
.4byte _0809FA9A @ case 29
.4byte _0809FA84 @ case 30
.4byte _0809FA84 @ case 31
_0809FA84:
movs r0, #5
strb r0, [r4, #0xc]
ldr r0, _0809FAB4 @ =gLinkEntity
str r0, [r4, #0x54]
ldrb r0, [r4, #0xa]
movs r1, #0
movs r2, #0
bl sub_080A7C00
bl sub_0805E780
_0809FA9A:
ldr r0, _0809FAB8 @ =gUnk_08124824
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08080CB4
pop {r4, pc}
.align 2, 0
_0809FAB4: .4byte gLinkEntity
_0809FAB8: .4byte gUnk_08124824
thumb_func_start sub_0809FABC
sub_0809FABC: @ 0x0809FABC
push {lr}
adds r3, r0, #0
movs r0, #1
strb r0, [r3, #0xc]
ldrb r0, [r3, #0xb]
cmp r0, #0
beq _0809FAD0
cmp r0, #2
beq _0809FADE
b _0809FAE6
_0809FAD0:
movs r0, #0xf0
lsls r0, r0, #9
str r0, [r3, #0x20]
ldrh r0, [r3, #0x36]
adds r0, #8
strh r0, [r3, #0x36]
b _0809FAE6
_0809FADE:
adds r0, r3, #0
bl sub_0809FECC
b _0809FB30
_0809FAE6:
adds r1, r3, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x3c
movs r2, #0x17
strb r2, [r0]
adds r1, #8
movs r0, #0x48
strb r0, [r1]
subs r1, #1
movs r0, #7
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x3b
strb r2, [r0]
ldr r0, _0809FB34 @ =gUnk_080FD1A8
str r0, [r3, #0x48]
movs r0, #1
strb r0, [r3, #0x1c]
ldrh r1, [r3, #0x2e]
adds r0, r3, #0
adds r0, #0x74
strh r1, [r0]
ldrh r0, [r3, #0x32]
adds r1, r3, #0
adds r1, #0x76
strh r0, [r1]
adds r0, r3, #0
movs r1, #3
bl sub_0805E3A0
movs r0, #0x9b
lsls r0, r0, #1
bl sub_08004488
_0809FB30:
pop {pc}
.align 2, 0
_0809FB34: .4byte gUnk_080FD1A8
thumb_func_start sub_0809FB38
sub_0809FB38: @ 0x0809FB38
push {lr}
adds r2, r0, #0
ldr r0, [r2, #0x34]
ldr r1, _0809FB60 @ =0xFFFF2000
adds r0, r0, r1
str r0, [r2, #0x34]
adds r0, r2, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _0809FB74
ldrb r0, [r2, #0xe]
cmp r0, #0
beq _0809FB64
adds r1, r0, #0
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #1
b _0809FB66
.align 2, 0
_0809FB60: .4byte 0xFFFF2000
_0809FB64:
movs r0, #0xf0
_0809FB66:
strb r0, [r2, #0xe]
movs r0, #3
strb r0, [r2, #0xc]
movs r0, #1
strb r0, [r2, #0xf]
movs r0, #0x80
strh r0, [r2, #0x24]
_0809FB74:
pop {pc}
.align 2, 0
thumb_func_start sub_0809FB78
sub_0809FB78: @ 0x0809FB78
push {lr}
ldr r2, _0809FB8C @ =gUnk_08124840
ldrb r1, [r0, #0xd]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809FB8C: .4byte gUnk_08124840
thumb_func_start sub_0809FB90
sub_0809FB90: @ 0x0809FB90
movs r3, #1
movs r1, #1
strb r1, [r0, #0xd]
strb r1, [r0, #0x1d]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x18]
bx lr
thumb_func_start sub_0809FBA4
sub_0809FBA4: @ 0x0809FBA4
push {lr}
adds r2, r0, #0
ldr r0, _0809FBC8 @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0809FBC2
adds r0, r2, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _0809FBCC
_0809FBC2:
movs r0, #3
strb r0, [r2, #0xc]
b _0809FBD2
.align 2, 0
_0809FBC8: .4byte gUnk_03003F80
_0809FBCC:
adds r0, r2, #0
bl sub_0806F4E8
_0809FBD2:
pop {pc}
thumb_func_start sub_0809FBD4
sub_0809FBD4: @ 0x0809FBD4
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0809FBFC @ =gUnk_03003F80
ldrb r1, [r0, #0x1c]
movs r0, #0xf
ands r0, r1
cmp r0, #1
bne _0809FBF4
adds r0, r4, #0
adds r0, #0x41
ldrb r1, [r0]
movs r5, #0x7f
adds r0, r5, #0
ands r0, r1
cmp r0, #0x13
beq _0809FC00
_0809FBF4:
movs r0, #3
strb r0, [r4, #0xc]
b _0809FC22
.align 2, 0
_0809FBFC: .4byte gUnk_03003F80
_0809FC00:
adds r0, r4, #0
bl sub_0806F3E4
cmp r0, #0
beq _0809FC22
ldrb r1, [r4, #0x10]
adds r0, r5, #0
ands r0, r1
strb r0, [r4, #0x10]
movs r0, #5
strb r0, [r4, #0xc]
ldr r0, _0809FC24 @ =gLinkEntity
str r0, [r4, #0x54]
ldrb r0, [r4, #0xa]
movs r1, #0
bl sub_08053FF0
_0809FC22:
pop {r4, r5, pc}
.align 2, 0
_0809FC24: .4byte gLinkEntity
thumb_func_start sub_0809FC28
sub_0809FC28: @ 0x0809FC28
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809FCAC
bl sub_08000E50
adds r5, r0, #0
ldrb r0, [r4, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #0x20
strb r0, [r4, #0xf]
ldr r2, _0809FC6C @ =gUnk_0812484C
lsrs r0, r5, #8
movs r1, #1
ands r0, r1
adds r0, r0, r2
ldrb r0, [r0]
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0809FE9C
cmp r0, #0
beq _0809FC70
movs r0, #0x1f
ands r5, r0
strb r5, [r4, #0x15]
b _0809FC8A
.align 2, 0
_0809FC6C: .4byte gUnk_0812484C
_0809FC70:
movs r1, #0x2e
ldrsh r0, [r4, r1]
movs r2, #0x32
ldrsh r1, [r4, r2]
adds r2, r4, #0
adds r2, #0x74
ldrh r2, [r2]
adds r3, r4, #0
adds r3, #0x76
ldrh r3, [r3]
bl sub_080045D4
strb r0, [r4, #0x15]
_0809FC8A:
ldrb r1, [r4, #0x15]
movs r0, #0xf
ands r0, r1
cmp r0, #0
beq _0809FCAC
movs r0, #0x10
eors r1, r0
lsrs r1, r1, #4
movs r0, #1
ands r1, r0
lsls r1, r1, #6
ldrb r2, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0809FCAC:
adds r0, r4, #0
bl sub_080AEFB4
bl sub_0805E40C
cmp r0, #0
bne _0809FCF8
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0809FCF8
ldr r0, _0809FCFC @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
ands r0, r1
cmp r0, #0
beq _0809FCE0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809FCE0
adds r0, r4, #0
movs r1, #0
bl sub_08081404
_0809FCE0:
ldrb r0, [r4, #0xe]
cmp r0, #0x3b
bhi _0809FCF8
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
_0809FCF8:
pop {r4, r5, pc}
.align 2, 0
_0809FCFC: .4byte gUnk_030010A0
thumb_func_start sub_0809FD00
sub_0809FD00: @ 0x0809FD00
push {r4, lr}
adds r4, r0, #0
ldr r2, [r4, #0x54]
ldrh r1, [r2, #8]
ldr r0, _0809FD18 @ =0x00000B08
cmp r1, r0
beq _0809FD1C
adds r0, r4, #0
movs r1, #0
bl sub_08081404
b _0809FD44
.align 2, 0
_0809FD18: .4byte 0x00000B08
_0809FD1C:
adds r0, r2, #0
adds r1, r4, #0
bl sub_0806FA24
ldrh r0, [r4, #0x36]
subs r0, #1
strh r0, [r4, #0x36]
ldr r1, _0809FD48 @ =gLinkEntity
adds r0, r4, #0
bl sub_080177A0
cmp r0, #0
beq _0809FD44
adds r0, r4, #0
bl sub_0809FECC
ldrb r0, [r4, #0xa]
movs r1, #0
bl sub_08053FF0
_0809FD44:
pop {r4, pc}
.align 2, 0
_0809FD48: .4byte gLinkEntity
thumb_func_start sub_0809FD4C
sub_0809FD4C: @ 0x0809FD4C
push {lr}
adds r1, r0, #0
movs r2, #6
strb r2, [r1, #0xc]
movs r0, #0x80
strb r0, [r1, #0xe]
strb r2, [r1, #0xf]
ldrb r2, [r1, #0x10]
movs r0, #0x7f
ands r0, r2
strb r0, [r1, #0x10]
ldrb r2, [r1, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
movs r2, #1
orrs r0, r2
strb r0, [r1, #0x18]
adds r3, r1, #0
adds r3, #0x29
ldrb r2, [r3]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
movs r2, #0x10
orrs r0, r2
strb r0, [r3]
adds r2, r1, #0
adds r2, #0x63
movs r0, #0xfb
strb r0, [r2]
ldr r0, [r1, #0x54]
bl sub_0806FA24
pop {pc}
.align 2, 0
thumb_func_start sub_0809FD94
sub_0809FD94: @ 0x0809FD94
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r6, [r5, #0x54]
ldr r2, _0809FE24 @ =gUnk_080C9160
ldrb r0, [r5, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
movs r3, #0
ldrsh r1, [r0, r3]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
cmp r0, #0
bge _0809FDB4
ldr r1, _0809FE28 @ =0x0000FFFF
adds r0, r0, r1
_0809FDB4:
asrs r0, r0, #0x10
ldrh r3, [r6, #0x2e]
adds r0, r0, r3
strh r0, [r5, #0x2e]
ldrb r0, [r5, #0xe]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r2
movs r2, #0
ldrsh r1, [r0, r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #8
cmp r0, #0
bge _0809FDD6
ldr r3, _0809FE28 @ =0x0000FFFF
adds r0, r0, r3
_0809FDD6:
asrs r1, r0, #0x10
ldrh r0, [r6, #0x32]
subs r0, r0, r1
strh r0, [r5, #0x32]
ldrb r3, [r5, #0xe]
adds r0, r3, #0
adds r0, #8
strb r0, [r5, #0xe]
ldrh r0, [r6, #0x36]
strh r0, [r5, #0x36]
ldrb r2, [r6, #0x1b]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r4, [r5, #0x1b]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r4
orrs r0, r2
strb r0, [r5, #0x1b]
ldrb r0, [r6, #0x19]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r5, #0x19]
ands r1, r2
orrs r1, r0
strb r1, [r5, #0x19]
subs r3, #0x39
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
cmp r3, #0x7e
bhi _0809FE2C
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #3
b _0809FE3A
.align 2, 0
_0809FE24: .4byte gUnk_080C9160
_0809FE28: .4byte 0x0000FFFF
_0809FE2C:
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #8
rsbs r1, r1, #0
ands r1, r0
movs r0, #5
_0809FE3A:
orrs r1, r0
strb r1, [r2]
ldrb r0, [r5, #0xf]
subs r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
adds r4, r5, #0
adds r4, #0x63
cmp r0, #0
bne _0809FE6C
movs r0, #6
strb r0, [r5, #0xf]
ldrb r0, [r4]
subs r0, #1
strb r0, [r4]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
movs r1, #0x16
rsbs r1, r1, #0
cmp r0, r1
bge _0809FE6C
adds r0, r5, #0
movs r1, #1
bl sub_08081404
_0809FE6C:
movs r1, #0
ldrsb r1, [r4, r1]
movs r0, #0x11
rsbs r0, r0, #0
cmp r1, r0
bge _0809FE8A
ldrb r2, [r5, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
_0809FE8A:
adds r1, r5, #0
adds r1, #0x87
ldrb r0, [r1]
cmp r0, #0xa
bls _0809FE98
movs r0, #0xa
strb r0, [r1]
_0809FE98:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0809FE9C
sub_0809FE9C: @ 0x0809FE9C
push {lr}
adds r2, r0, #0
movs r1, #0x2e
ldrsh r0, [r2, r1]
adds r1, r2, #0
adds r1, #0x74
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #0x48
cmp r0, #0x90
bhi _0809FEC8
movs r1, #0x32
ldrsh r0, [r2, r1]
adds r1, r2, #0
adds r1, #0x76
ldrh r1, [r1]
subs r0, r0, r1
adds r0, #0x30
cmp r0, #0x60
bhi _0809FEC8
movs r0, #1
b _0809FECA
_0809FEC8:
movs r0, #0
_0809FECA:
pop {pc}
thumb_func_start sub_0809FECC
sub_0809FECC: @ 0x0809FECC
ldr r1, _0809FEDC @ =gLinkEntity
str r1, [r0, #0x54]
movs r2, #0
movs r1, #5
strb r1, [r0, #0xc]
strb r2, [r0, #0xd]
bx lr
.align 2, 0
_0809FEDC: .4byte gLinkEntity
thumb_func_start sub_0809FEE0
sub_0809FEE0: @ 0x0809FEE0
push {lr}
ldr r2, _0809FEF4 @ =gUnk_08124850
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809FEF4: .4byte gUnk_08124850
thumb_func_start sub_0809FEF8
sub_0809FEF8: @ 0x0809FEF8
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r1, _0809FF20 @ =gUnk_0812485C
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
bl sub_08004260
ldr r1, _0809FF24 @ =gUnk_08124860
ldrb r0, [r4, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_080A3268
pop {r4, pc}
.align 2, 0
_0809FF20: .4byte gUnk_0812485C
_0809FF24: .4byte gUnk_08124860
thumb_func_start sub_0809FF28
sub_0809FF28: @ 0x0809FF28
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _0809FF64
movs r0, #2
strb r0, [r4, #0xc]
ldr r1, [r4, #0x50]
ldrb r0, [r4, #0xe]
strb r0, [r1, #0x10]
ldrb r2, [r4, #0xf]
movs r0, #3
ands r2, r0
ldrb r3, [r1, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r3
orrs r0, r2
strb r0, [r1, #0x18]
adds r1, #0x6d
ldrb r2, [r1]
movs r0, #0xef
ands r0, r2
strb r0, [r1]
_0809FF64:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0809FF68
sub_0809FF68: @ 0x0809FF68
push {r4, r5, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _0809FFA2
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
ldrb r0, [r4, #0x19]
movs r1, #0xc0
orrs r0, r1
strb r0, [r4, #0x19]
adds r2, r4, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r1, _0809FFC4 @ =gUnk_08124868
ldrb r0, [r4, #0xa]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0x1e]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0x78
strh r0, [r1]
_0809FFA2:
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _080A0068
movs r0, #0xff
bl sub_0807CC3C
cmp r0, #0
beq _080A00AA
ldrb r2, [r4, #0xd]
cmp r2, #1
beq _080A0006
cmp r2, #1
bgt _0809FFC8
cmp r2, #0
beq _0809FFCE
b _080A005A
.align 2, 0
_0809FFC4: .4byte gUnk_08124868
_0809FFC8:
cmp r2, #2
beq _080A0038
b _080A005A
_0809FFCE:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A005A
movs r0, #0x20
strh r0, [r1]
movs r1, #1
strb r1, [r4, #0xe]
movs r0, #0
strb r0, [r4, #0xf]
strb r1, [r4, #0xd]
strb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080AE068
movs r1, #0xc6
lsls r1, r1, #1
adds r0, r4, #0
bl sub_080ADF80
movs r0, #0xf6
bl sub_080A3268
b _080A005A
_080A0006:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A005A
movs r0, #0x2d
strh r0, [r1]
strb r2, [r4, #0xe]
movs r0, #2
strb r0, [r4, #0xd]
strb r0, [r4, #0xa]
adds r0, r4, #0
bl sub_080AE068
ldr r1, _080A0034 @ =0x0000018D
adds r0, r4, #0
bl sub_080ADF80
b _080A005A
.align 2, 0
_080A0034: .4byte 0x0000018D
_080A0038:
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A005A
movs r0, #3
strb r0, [r4, #0xd]
ldr r1, _080A0064 @ =gUnk_02000080
ldrb r0, [r1, #6]
adds r0, #1
strb r0, [r1, #6]
movs r0, #0x73
bl sub_080A3268
_080A005A:
adds r0, r4, #0
bl sub_080A00B0
b _080A00AA
.align 2, 0
_080A0064: .4byte gUnk_02000080
_080A0068:
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080A00A4
cmp r0, #2
bne _080A00A4
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _080A00A4
movs r0, #1
strb r0, [r4, #0xd]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080A00AC @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x39
movs r2, #1
bl sub_0807B314
_080A00A4:
adds r0, r4, #0
bl sub_080A00B0
_080A00AA:
pop {r4, r5, pc}
.align 2, 0
_080A00AC: .4byte gUnk_03000BF0
thumb_func_start sub_080A00B0
sub_080A00B0: @ 0x080A00B0
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A00DA
movs r0, #8
strb r0, [r2, #0xe]
ldr r1, _080A00DC @ =gUnk_08124868
ldrb r0, [r2, #0xa]
adds r0, r0, r1
ldrb r1, [r2, #0xf]
ldrb r0, [r0]
adds r0, r1, r0
strb r0, [r2, #0x1e]
adds r1, #1
movs r0, #3
ands r1, r0
strb r1, [r2, #0xf]
_080A00DA:
pop {pc}
.align 2, 0
_080A00DC: .4byte gUnk_08124868
thumb_func_start sub_080A00E0
sub_080A00E0: @ 0x080A00E0
push {lr}
ldr r2, _080A00F4 @ =gUnk_0812486C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A00F4: .4byte gUnk_0812486C
thumb_func_start sub_080A00F8
sub_080A00F8: @ 0x080A00F8
push {lr}
ldrb r1, [r0, #0xc]
adds r1, #1
movs r3, #0
strb r1, [r0, #0xc]
adds r2, r0, #0
adds r2, #0x38
movs r1, #1
strb r1, [r2]
ldrb r1, [r0, #0x19]
movs r2, #0xc0
orrs r1, r2
strb r1, [r0, #0x19]
movs r1, #0x29
adds r1, r1, r0
mov ip, r1
ldrb r1, [r1]
movs r2, #7
orrs r1, r2
mov r2, ip
strb r1, [r2]
strb r3, [r0, #0xd]
movs r1, #0
bl sub_08004260
pop {pc}
thumb_func_start sub_080A012C
sub_080A012C: @ 0x080A012C
push {r4, lr}
adds r4, r0, #0
movs r0, #0
bl sub_0807CC3C
cmp r0, #0
beq _080A0154
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A0154
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_080A0154:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0158
sub_080A0158: @ 0x080A0158
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_0807CC3C
cmp r0, #0
beq _080A018A
adds r0, r4, #0
bl sub_080A0190
adds r0, r4, #0
movs r1, #0x1e
bl sub_0805E4E0
ldr r1, _080A018C @ =gLinkEntity
adds r0, r4, #0
movs r2, #0x10
movs r3, #0x10
bl sub_080041A0
cmp r0, #0
beq _080A018A
movs r0, #0x37
bl sub_0805B390
_080A018A:
pop {r4, pc}
.align 2, 0
_080A018C: .4byte gLinkEntity
thumb_func_start sub_080A0190
sub_080A0190: @ 0x080A0190
push {r4, lr}
movs r4, #0
movs r1, #1
strb r1, [r0, #0xd]
ldr r1, _080A01B8 @ =gLinkEntity
bl sub_0806FA24
ldr r2, _080A01BC @ =gUnk_03003F80
movs r0, #3
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x38
strb r4, [r0]
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #8
orrs r0, r1
str r0, [r2, #0x30]
pop {r4, pc}
.align 2, 0
_080A01B8: .4byte gLinkEntity
_080A01BC: .4byte gUnk_03003F80
thumb_func_start sub_080A01C0
sub_080A01C0: @ 0x080A01C0
push {r4, lr}
adds r4, r0, #0
ldr r1, _080A01DC @ =gUnk_08124898
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_08080CB4
pop {r4, pc}
.align 2, 0
_080A01DC: .4byte gUnk_08124898
thumb_func_start sub_080A01E0
sub_080A01E0: @ 0x080A01E0
push {r4, lr}
adds r4, r0, #0
movs r2, #1
movs r3, #1
strb r3, [r4, #0xc]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r1
movs r1, #0x10
orrs r0, r1
strb r0, [r2]
ldrb r1, [r4, #0x19]
movs r0, #0x3f
ands r0, r1
movs r1, #0x40
orrs r0, r1
strb r0, [r4, #0x19]
ldr r0, _080A027C @ =gUnk_080FD1A0
str r0, [r4, #0x48]
ldr r0, _080A0280 @ =0x0000FF40
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x6a
movs r0, #0x40
strb r0, [r1]
ldrb r0, [r4, #0xa]
cmp r0, #0x43
bgt _080A0246
cmp r0, #0x42
bge _080A0246
cmp r0, #0x40
beq _080A0246
cmp r0, #0x41
bne _080A0246
ldr r2, _080A0284 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _080A0288 @ =0x0000FDFF
ands r0, r1
strh r0, [r2]
adds r0, r4, #0
adds r0, #0x38
strb r3, [r0]
_080A0246:
ldr r0, _080A028C @ =gUnk_0800A0B4
bl sub_0807DB2C
ldr r1, _080A0284 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0xc8
lsls r0, r0, #3
strh r0, [r2]
adds r1, #0x68
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
bl sub_0805BC4C
ldrb r2, [r4, #0xa]
subs r2, #0x40
adds r0, r4, #0
movs r1, #0xad
movs r3, #0
bl sub_080A2988
cmp r0, #0
beq _080A027A
str r4, [r0, #0x50]
str r0, [r4, #0x54]
_080A027A:
pop {r4, pc}
.align 2, 0
_080A027C: .4byte gUnk_080FD1A0
_080A0280: .4byte 0x0000FF40
_080A0284: .4byte gUnk_03000F50
_080A0288: .4byte 0x0000FDFF
_080A028C: .4byte gUnk_0800A0B4
thumb_func_start sub_080A0290
sub_080A0290: @ 0x080A0290
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _080A02BC @ =gUnk_02033280
ldr r0, [r5]
movs r1, #4
ands r0, r1
cmp r0, #0
beq _080A02CA
adds r0, r4, #0
bl sub_080A0424
ldrh r2, [r4, #0x36]
movs r0, #0x36
ldrsh r1, [r4, r0]
movs r0, #8
rsbs r0, r0, #0
cmp r1, r0
bge _080A02C0
adds r0, r2, #1
strh r0, [r4, #0x36]
b _080A02CA
.align 2, 0
_080A02BC: .4byte gUnk_02033280
_080A02C0:
movs r1, #2
strb r1, [r4, #0xc]
ldr r0, [r5]
orrs r0, r1
str r0, [r5]
_080A02CA:
pop {r4, r5, pc}
thumb_func_start sub_080A02CC
sub_080A02CC: @ 0x080A02CC
push {r4, lr}
adds r4, r0, #0
bl sub_080A0424
adds r0, r4, #0
bl sub_080A0444
adds r0, r4, #0
bl sub_08017850
cmp r0, #0
beq _080A0342
ldr r0, [r4, #0x54]
bl sub_0805E7BC
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r2, #0
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x2d
strb r0, [r4, #0xe]
ldr r0, _080A0344 @ =gUnk_03000F50
adds r3, r0, #0
adds r3, #0x66
movs r1, #0xc8
lsls r1, r1, #3
strh r1, [r3]
adds r0, #0x68
strh r2, [r0]
ldrb r0, [r4, #0xa]
movs r1, #0
movs r2, #1
bl sub_080A7C18
adds r0, r4, #0
movs r1, #1
bl sub_0808C650
movs r0, #6
movs r1, #2
bl sub_08050054
movs r0, #0xf8
bl sub_080A3268
movs r0, #0xa4
lsls r0, r0, #1
bl sub_080A3268
movs r0, #5
bl sub_080A3268
ldr r0, _080A0348 @ =0x80110000
bl sub_080A3268
_080A0342:
pop {r4, pc}
.align 2, 0
_080A0344: .4byte gUnk_03000F50
_080A0348: .4byte 0x80110000
thumb_func_start sub_080A034C
sub_080A034C: @ 0x080A034C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080A0378
adds r0, r4, #0
bl sub_080A0424
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A038C
ldr r0, _080A0374 @ =gLinkEntity
movs r1, #0
bl sub_0805E3A0
b _080A038C
.align 2, 0
_080A0374: .4byte gLinkEntity
_080A0378:
movs r0, #0
movs r1, #0x3c
bl sub_0805E4E0
bl sub_0808C67C
cmp r0, #0
beq _080A038C
movs r0, #4
strb r0, [r4, #0xc]
_080A038C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0390
sub_080A0390: @ 0x080A0390
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #0x3c
bl sub_0805E4E0
ldr r0, _080A03B4 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _080A03B2
movs r0, #5
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x68
movs r0, #0xd2
lsls r0, r0, #1
strh r0, [r1]
_080A03B2:
pop {r4, pc}
.align 2, 0
_080A03B4: .4byte gUnk_03000FD0
thumb_func_start sub_080A03B8
sub_080A03B8: @ 0x080A03B8
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #0xa
bl sub_0805E4E0
adds r1, r4, #0
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A03E4
movs r0, #6
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
bl sub_0805429C
adds r1, r4, #0
bl sub_08056398
_080A03E4:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A03E8
sub_080A03E8: @ 0x080A03E8
push {lr}
movs r0, #0
movs r1, #0xa
bl sub_0805E4E0
ldr r0, _080A041C @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _080A041A
movs r0, #0x5a
bl sub_0805E510
ldr r0, _080A0420 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0807DF50
movs r0, #0
bl sub_0807CD10
bl sub_0805E780
_080A041A:
pop {pc}
.align 2, 0
_080A041C: .4byte gUnk_02000050
_080A0420: .4byte gUnk_03003F80
thumb_func_start sub_080A0424
sub_080A0424: @ 0x080A0424
push {lr}
adds r1, r0, #0
adds r1, #0x6a
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0442
movs r0, #0x40
strb r0, [r1]
movs r0, #0xbc
lsls r0, r0, #1
bl sub_080A3268
_080A0442:
pop {pc}
thumb_func_start sub_080A0444
sub_080A0444: @ 0x080A0444
ldr r3, _080A0460 @ =gUnk_081248B4
ldrb r1, [r0, #0xf]
adds r2, r1, #1
strb r2, [r0, #0xf]
lsls r1, r1, #0x18
lsrs r1, r1, #0x1b
movs r2, #7
ands r1, r2
adds r1, r1, r3
ldrb r1, [r1]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
strh r1, [r0, #0x36]
bx lr
.align 2, 0
_080A0460: .4byte gUnk_081248B4
thumb_func_start sub_080A0464
sub_080A0464: @ 0x080A0464
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r0, #6
movs r1, #0xac
movs r2, #6
bl sub_0805EB00
cmp r0, #0
beq _080A048A
movs r1, #0x2e
ldrsh r2, [r0, r1]
movs r1, #0x32
ldrsh r3, [r0, r1]
adds r3, #0x18
adds r0, r4, #0
adds r1, r5, #0
bl sub_0807DEDC
_080A048A:
pop {r4, r5, pc}
thumb_func_start sub_080A048C
sub_080A048C: @ 0x080A048C
push {lr}
ldr r2, _080A04A0 @ =gUnk_081248BC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A04A0: .4byte gUnk_081248BC
thumb_func_start sub_080A04A4
sub_080A04A4: @ 0x080A04A4
push {r4, lr}
movs r3, #0
movs r1, #1
strb r1, [r0, #0xc]
movs r4, #4
movs r1, #4
strb r1, [r0, #0x1e]
strb r3, [r0, #0xe]
ldrb r1, [r0, #0x19]
movs r2, #0xc0
orrs r1, r2
strb r1, [r0, #0x19]
movs r1, #0x29
adds r1, r1, r0
mov ip, r1
ldrb r1, [r1]
movs r2, #7
orrs r1, r2
mov r2, ip
strb r1, [r2]
str r3, [r0, #0x34]
ldrb r2, [r0, #0x19]
movs r1, #0xd
rsbs r1, r1, #0
ands r1, r2
orrs r1, r4
strb r1, [r0, #0x19]
bl sub_080A04E8
pop {r4, pc}
thumb_func_start sub_080A04E0
sub_080A04E0: @ 0x080A04E0
push {lr}
bl sub_080A04E8
pop {pc}
thumb_func_start sub_080A04E8
sub_080A04E8: @ 0x080A04E8
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, [r5, #0x50]
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
bge _080A04F8
rsbs r0, r0, #0
_080A04F8:
movs r1, #0x80
lsls r1, r1, #1
adds r4, r0, r1
adds r0, r5, #0
adds r1, r4, #0
adds r2, r4, #0
movs r3, #0
bl sub_0805EC9C
movs r1, #0xe0
lsls r1, r1, #1
subs r1, r1, r4
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #1
adds r1, r4, #0
bl __divsi3
adds r4, r0, #0
ldr r0, [r5, #0x50]
ldrb r0, [r0, #0xa]
cmp r0, #0x41
bne _080A0538
lsls r3, r4, #1
cmp r3, #0xc
bls _080A052E
movs r3, #0xc
_080A052E:
movs r0, #0x10
subs r0, r0, r4
lsls r4, r0, #8
orrs r4, r3
b _080A0540
_080A0538:
movs r0, #0x10
subs r0, r0, r4
lsls r0, r0, #8
orrs r4, r0
_080A0540:
ldr r0, _080A054C @ =0x0000FFFF
ands r4, r0
ldr r0, _080A0550 @ =gUnk_03000F50
adds r0, #0x68
strh r4, [r0]
pop {r4, r5, pc}
.align 2, 0
_080A054C: .4byte 0x0000FFFF
_080A0550: .4byte gUnk_03000F50
thumb_func_start sub_080A0554
sub_080A0554: @ 0x080A0554
push {lr}
adds r3, r0, #0
ldrb r0, [r3, #0xc]
cmp r0, #0
bne _080A0588
movs r2, #1
strb r2, [r3, #0xc]
ldrb r0, [r3, #0xa]
strb r0, [r3, #0x1e]
movs r0, #0x29
adds r0, r0, r3
mov ip, r0
ldrb r1, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
mov r1, ip
strb r0, [r1]
adds r0, r3, #0
adds r0, #0x38
strb r2, [r0]
adds r0, r3, #0
bl sub_08016A04
_080A0588:
pop {pc}
.align 2, 0
thumb_func_start sub_080A058C
sub_080A058C: @ 0x080A058C
push {lr}
ldr r2, _080A05A0 @ =gUnk_081248C4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A05A0: .4byte gUnk_081248C4
thumb_func_start sub_080A05A4
sub_080A05A4: @ 0x080A05A4
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xa]
cmp r1, #2
beq _080A05D2
movs r0, #1
strb r0, [r4, #0xc]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
subs r0, #9
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_080A0640
adds r0, r4, #0
movs r1, #1
bl sub_08004260
b _080A05F0
_080A05D2:
movs r0, #0
strb r1, [r4, #0xc]
ldrh r1, [r4, #0x32]
adds r1, #1
strh r1, [r4, #0x32]
strh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x63
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
adds r0, r4, #0
movs r1, #3
bl sub_08004260
_080A05F0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A05F4
sub_080A05F4: @ 0x080A05F4
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
cmp r0, #0
bne _080A060C
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_08004260
b _080A0622
_080A060C:
ldr r0, [r0, #4]
cmp r0, #0
bne _080A0616
bl sub_0805E780
_080A0616:
adds r0, r4, #0
bl sub_080A0640
adds r0, r4, #0
bl sub_08004274
_080A0622:
pop {r4, pc}
thumb_func_start sub_080A0624
sub_080A0624: @ 0x080A0624
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r4, #0x5a
ldrb r1, [r4]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A063C
bl sub_0805E780
_080A063C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0640
sub_080A0640: @ 0x080A0640
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _080A065E
ldr r0, [r4, #0x50]
ldr r0, [r0, #0x64]
ldr r0, [r0, #0x10]
movs r3, #0x80
lsls r3, r3, #0xc
adds r1, r4, #0
movs r2, #0
bl sub_0806FA48
b _080A0666
_080A065E:
ldr r0, [r4, #0x50]
adds r1, r4, #0
bl sub_0806FA24
_080A0666:
movs r0, #0
strh r0, [r4, #0x36]
pop {r4, pc}
thumb_func_start sub_080A066C
sub_080A066C: @ 0x080A066C
push {lr}
ldr r2, _080A0680 @ =gUnk_0812493C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A0680: .4byte gUnk_0812493C
thumb_func_start sub_080A0684
sub_080A0684: @ 0x080A0684
push {r4, r5, lr}
adds r4, r0, #0
adds r2, r4, #0
adds r2, #0x84
ldrh r1, [r2]
ldr r0, _080A070C @ =0x0000FFFF
cmp r1, r0
beq _080A06A2
adds r0, r1, #0
bl sub_0807CBE4
cmp r0, #0
beq _080A06A2
bl sub_0805E780
_080A06A2:
movs r0, #1
strb r0, [r4, #0xc]
movs r2, #0
movs r0, #0xc0
lsls r0, r0, #2
strh r0, [r4, #0x24]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r2, [r4, #0x1e]
movs r1, #0x80
orrs r0, r1
strb r0, [r4, #0x18]
ldr r0, _080A0710 @ =gUnk_080FD180
str r0, [r4, #0x48]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
ldrh r1, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x70
strh r1, [r0]
ldrh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x72
strh r0, [r1]
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080A0714 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x32
ldrsh r0, [r4, r5]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r4, #0
adds r0, #0x74
strh r1, [r0]
pop {r4, r5, pc}
.align 2, 0
_080A070C: .4byte 0x0000FFFF
_080A0710: .4byte gUnk_080FD180
_080A0714: .4byte gUnk_03000BF0
thumb_func_start sub_080A0718
sub_080A0718: @ 0x080A0718
push {r4, lr}
adds r4, r0, #0
movs r1, #2
bl sub_08083734
cmp r0, #0
beq _080A074A
movs r2, #0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0xc
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x18]
subs r0, #0x10
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
strb r2, [r4, #0x15]
ldrh r0, [r4, #0x32]
adds r0, #0x24
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_080A080C
_080A074A:
pop {r4, pc}
thumb_func_start sub_080A074C
sub_080A074C: @ 0x080A074C
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _080A07B6
movs r0, #3
strb r0, [r4, #0xc]
strh r1, [r4, #0x36]
adds r0, r4, #0
adds r0, #0x70
ldrh r0, [r0]
strh r0, [r4, #0x2e]
adds r0, r4, #0
adds r0, #0x72
ldrh r0, [r0]
strh r0, [r4, #0x32]
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _080A0794
ldrh r0, [r1, #0x2e]
adds r0, #0xc
strh r0, [r1, #0x2e]
ldrh r0, [r1, #0x32]
subs r0, #0xc
strh r0, [r1, #0x32]
_080A0794:
adds r0, r4, #0
movs r1, #0x11
movs r2, #0x40
bl CreateFX
adds r1, r0, #0
cmp r1, #0
beq _080A07B0
ldrh r0, [r1, #0x2e]
subs r0, #0xc
strh r0, [r1, #0x2e]
ldrh r0, [r1, #0x32]
subs r0, #0xc
strh r0, [r1, #0x32]
_080A07B0:
ldr r0, _080A07B8 @ =0x0000010B
bl sub_08004488
_080A07B6:
pop {r4, pc}
.align 2, 0
_080A07B8: .4byte 0x0000010B
thumb_func_start sub_080A07BC
sub_080A07BC: @ 0x080A07BC
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080A07EA
movs r0, #4
strb r0, [r4, #0xc]
movs r0, #0xc
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0x15]
ldrh r0, [r4, #0x32]
adds r0, #2
strh r0, [r4, #0x32]
adds r0, r4, #0
bl sub_080A0870
ldr r0, _080A07EC @ =0x0000010B
bl sub_080A3268
_080A07EA:
pop {r4, pc}
.align 2, 0
_080A07EC: .4byte 0x0000010B
thumb_func_start sub_080A07F0
sub_080A07F0: @ 0x080A07F0
push {r4, lr}
adds r4, r0, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0808
bl sub_0805E780
_080A0808:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A080C
sub_080A080C: @ 0x080A080C
push {r4, r5, r6, lr}
adds r4, r0, #0
adds r6, r4, #0
adds r6, #0x74
ldrh r0, [r6]
subs r0, #1
adds r5, r4, #0
adds r5, #0x38
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x76
strh r0, [r1]
ldrh r0, [r6]
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x78
strh r0, [r1]
ldrh r0, [r6]
adds r0, #1
ldrb r1, [r5]
bl sub_080001DA
adds r1, r4, #0
adds r1, #0x7a
strh r0, [r1]
ldr r4, _080A086C @ =0x00004022
ldrh r1, [r6]
subs r1, #1
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
ldrh r1, [r6]
adds r1, #1
ldrb r2, [r5]
adds r0, r4, #0
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
_080A086C: .4byte 0x00004022
thumb_func_start sub_080A0870
sub_080A0870: @ 0x080A0870
push {r4, r5, r6, lr}
adds r6, r0, #0
adds r0, #0x76
ldrh r0, [r0]
adds r5, r6, #0
adds r5, #0x74
ldrh r1, [r5]
subs r1, #1
adds r4, r6, #0
adds r4, #0x38
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x78
ldrh r0, [r0]
ldrh r1, [r5]
ldrb r2, [r4]
bl sub_0800015E
adds r0, r6, #0
adds r0, #0x7a
ldrh r0, [r0]
ldrh r1, [r5]
adds r1, #1
ldrb r2, [r4]
bl sub_0800015E
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080A08AC
sub_080A08AC: @ 0x080A08AC
push {lr}
ldr r2, _080A08C0 @ =gUnk_08124950
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A08C0: .4byte gUnk_08124950
thumb_func_start sub_080A08C4
sub_080A08C4: @ 0x080A08C4
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
bne _080A08E2
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_080A0960
b _080A08F6
_080A08E2:
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
adds r0, r4, #0
movs r1, #1
bl sub_080A0960
_080A08F6:
ldrb r0, [r4, #0x18]
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0910
sub_080A0910: @ 0x080A0910
push {r4, lr}
adds r4, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080A0932
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_080A0960
ldr r0, _080A0934 @ =0x0000010B
bl sub_080A3268
_080A0932:
pop {r4, pc}
.align 2, 0
_080A0934: .4byte 0x0000010B
thumb_func_start sub_080A0938
sub_080A0938: @ 0x080A0938
push {r4, lr}
adds r4, r0, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A095A
movs r0, #3
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_08004260
_080A095A:
pop {r4, pc}
thumb_func_start nullsub_127
nullsub_127: @ 0x080A095C
bx lr
.align 2, 0
thumb_func_start sub_080A0960
sub_080A0960: @ 0x080A0960
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r5, _080A0998 @ =gUnk_08124960
cmp r1, #1
bne _080A096C
ldr r5, _080A099C @ =gUnk_0812497A
_080A096C:
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _080A09A0 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r6, #0x32
ldrsh r0, [r4, r6]
ldrh r2, [r2, #8]
subs r0, r0, r2
asrs r0, r0, #4
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
adds r0, r5, #0
movs r2, #1
bl sub_0801AF18
pop {r4, r5, r6, pc}
.align 2, 0
_080A0998: .4byte gUnk_08124960
_080A099C: .4byte gUnk_0812497A
_080A09A0: .4byte gUnk_03000BF0
thumb_func_start sub_080A09A4
sub_080A09A4: @ 0x080A09A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A09D4
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x10
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xa]
lsls r0, r0, #3
strb r0, [r4, #0x15]
adds r0, r4, #0
adds r0, #0x38
ldrb r0, [r0]
ldr r1, _080A0A2C @ =gUnk_02027EB4
cmp r0, #2
bne _080A09CA
ldr r1, _080A0A30 @ =gUnk_0200D654
_080A09CA:
str r1, [r4, #0x54]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
_080A09D4:
ldr r0, [r4, #0x50]
ldrh r0, [r0, #0x24]
strh r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0806F69C
ldr r0, [r4, #0x54]
movs r2, #0x2e
ldrsh r1, [r4, r2]
movs r3, #0x32
ldrsh r2, [r4, r3]
movs r3, #9
bl sub_080AE4CC
cmp r0, #0
beq _080A09F8
bl sub_0805E780
_080A09F8:
movs r1, #0x24
ldrsh r0, [r4, r1]
cmp r0, #0x40
bgt _080A0A22
ldrb r2, [r4, #0x18]
lsls r1, r2, #0x1e
lsrs r1, r1, #0x1e
movs r0, #1
eors r1, r0
subs r0, #5
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0A22
bl sub_0805E780
_080A0A22:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
_080A0A2C: .4byte gUnk_02027EB4
_080A0A30: .4byte gUnk_0200D654
thumb_func_start sub_080A0A34
sub_080A0A34: @ 0x080A0A34
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _080A0A44
cmp r0, #1
beq _080A0A5C
b _080A0A5E
_080A0A44:
ldrb r1, [r4, #0x10]
movs r0, #2
ands r0, r1
ldr r1, _080A0A54 @ =gUnk_08124A18
cmp r0, #0
beq _080A0A5E
ldr r1, _080A0A58 @ =gUnk_08124A10
b _080A0A5E
.align 2, 0
_080A0A54: .4byte gUnk_08124A18
_080A0A58: .4byte gUnk_08124A10
_080A0A5C:
ldr r1, _080A0AB8 @ =gUnk_08124A20
_080A0A5E:
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A0AB0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r2, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r3, #0x40
orrs r0, r3
strb r0, [r4, #0x19]
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
mov r2, ip
strb r0, [r2]
ldrb r0, [r4, #0x1b]
ands r1, r0
orrs r1, r3
strb r1, [r4, #0x1b]
ldr r1, _080A0ABC @ =gUnk_080C9CBC
ldr r0, _080A0AC0 @ =gUnk_02022740
ldrb r0, [r0, #3]
lsls r0, r0, #3
adds r0, r0, r1
ldrb r1, [r0]
adds r0, r4, #0
bl sub_0801D2B4
_080A0AB0:
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
_080A0AB8: .4byte gUnk_08124A20
_080A0ABC: .4byte gUnk_080C9CBC
_080A0AC0: .4byte gUnk_02022740
thumb_func_start sub_080A0AC4
sub_080A0AC4: @ 0x080A0AC4
push {lr}
ldrb r1, [r0, #0xa]
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_080A0AD0
sub_080A0AD0: @ 0x080A0AD0
push {lr}
movs r1, #0x80
bl sub_08003FC4
pop {pc}
.align 2, 0
thumb_func_start sub_080A0ADC
sub_080A0ADC: @ 0x080A0ADC
push {r4, lr}
adds r4, r0, #0
bl sub_0807DD64
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0AF0
sub_080A0AF0: @ 0x080A0AF0
push {r4, lr}
adds r4, r0, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_08004274
adds r0, r4, #0
adds r0, #0x58
ldrb r0, [r0]
cmp r0, #5
bne _080A0B1C
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A0B1C
bl sub_0805E780
_080A0B1C:
adds r0, r4, #0
movs r1, #0x80
bl sub_08003FC4
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0B28
sub_080A0B28: @ 0x080A0B28
push {r4, lr}
adds r4, r0, #0
movs r0, #0x2e
ldrsh r2, [r4, r0]
movs r0, #0x32
ldrsh r3, [r4, r0]
adds r0, r4, #0
bl sub_0807DEDC
ldrh r0, [r4, #0x32]
subs r0, #0xb0
strh r0, [r4, #0x32]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
pop {r4, pc}
thumb_func_start sub_080A0B4C
sub_080A0B4C: @ 0x080A0B4C
push {lr}
movs r1, #0x78
strh r1, [r0, #0x2e]
movs r1, #0x50
strh r1, [r0, #0x32]
movs r1, #0
bl sub_08004260
pop {pc}
.align 2, 0
thumb_func_start sub_080A0B60
sub_080A0B60: @ 0x080A0B60
push {lr}
adds r2, r0, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _080A0B7C
movs r0, #2
strb r0, [r2, #0xc]
movs r0, #0x9b
lsls r0, r0, #1
bl sub_080A3268
_080A0B7C:
pop {pc}
.align 2, 0
thumb_func_start sub_080A0B80
sub_080A0B80: @ 0x080A0B80
ldr r1, [r0, #0x30]
ldr r2, _080A0B8C @ =0xFFFD8000
adds r1, r1, r2
str r1, [r0, #0x30]
bx lr
.align 2, 0
_080A0B8C: .4byte 0xFFFD8000
thumb_func_start sub_080A0B90
sub_080A0B90: @ 0x080A0B90
push {lr}
ldr r2, _080A0BA4 @ =gUnk_08124B20
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A0BA4: .4byte gUnk_08124B20
thumb_func_start sub_080A0BA8
sub_080A0BA8: @ 0x080A0BA8
push {r4, r5, lr}
adds r5, r0, #0
ldrb r2, [r5, #0xc]
cmp r2, #0
beq _080A0BB8
cmp r2, #1
beq _080A0C08
b _080A0CE0
_080A0BB8:
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r5, #0x18]
movs r0, #9
strb r0, [r5, #0x1e]
movs r0, #8
strb r0, [r5, #0xe]
strb r2, [r5, #0xf]
ldrb r1, [r5, #0x19]
movs r2, #0x3f
adds r0, r2, #0
ands r0, r1
movs r3, #0x40
orrs r0, r3
strb r0, [r5, #0x19]
adds r4, r5, #0
adds r4, #0x29
ldrb r1, [r4]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #4
orrs r0, r1
strb r0, [r4]
ldrb r0, [r5, #0x1b]
ands r2, r0
orrs r2, r3
strb r2, [r5, #0x1b]
adds r0, r5, #0
movs r1, #0xbf
movs r2, #0x48
movs r3, #0x1e
bl sub_0806FB00
b _080A0CE0
_080A0C08:
ldrb r0, [r5, #0xf]
cmp r0, #6
bhi _080A0C46
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A0C46
strb r2, [r5, #0xe]
ldrb r2, [r5, #0xf]
movs r0, #0xb4
movs r1, #1
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A0C40
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
movs r0, #0x68
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAD8
_080A0C40:
ldrb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0xf]
_080A0C46:
adds r0, r5, #0
bl sub_0806FB38
cmp r0, #0
bne _080A0C58
ldr r0, _080A0CE4 @ =gUnk_02000080
ldrb r0, [r0, #5]
cmp r0, #1
bls _080A0CE0
_080A0C58:
movs r0, #0xbf
strh r0, [r5, #0x2e]
movs r0, #0x48
strh r0, [r5, #0x32]
movs r0, #0xa
strb r0, [r5, #0x1e]
movs r0, #2
strb r0, [r5, #0xc]
ldrb r0, [r5, #0xf]
cmp r0, #6
bhi _080A0CA0
_080A0C6E:
ldrb r2, [r5, #0xf]
movs r0, #0xb4
movs r1, #1
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A0C92
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
movs r0, #0x68
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAD8
_080A0C92:
ldrb r0, [r5, #0xf]
adds r0, #1
strb r0, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #6
bls _080A0C6E
_080A0CA0:
movs r0, #0xb4
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A0CC0
movs r0, #0xc4
strh r0, [r4, #0x2e]
movs r0, #0x2c
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAB0
_080A0CC0:
movs r0, #0xb4
movs r1, #3
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A0CE0
movs r0, #0xb4
strh r0, [r4, #0x2e]
movs r0, #0x19
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FAB0
_080A0CE0:
pop {r4, r5, pc}
.align 2, 0
_080A0CE4: .4byte gUnk_02000080
thumb_func_start sub_080A0CE8
sub_080A0CE8: @ 0x080A0CE8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _080A0CF8
cmp r0, #1
beq _080A0D28
b _080A0D66
_080A0CF8:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x18]
subs r0, #5
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r0, [r4, #0xb]
adds r0, #2
strb r0, [r4, #0x1e]
ldr r1, _080A0D24 @ =gUnk_08124B10
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r4, #0
movs r2, #0x68
movs r3, #0x14
bl sub_0806FB00
b _080A0D66
.align 2, 0
_080A0D24: .4byte gUnk_08124B10
_080A0D28:
adds r0, r4, #0
bl sub_0806FB38
cmp r0, #0
bne _080A0D3A
ldr r0, _080A0D68 @ =gUnk_02000080
ldrb r0, [r0, #5]
cmp r0, #1
bls _080A0D66
_080A0D3A:
ldr r1, _080A0D6C @ =gUnk_08124B10
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
strh r0, [r4, #0x2e]
movs r0, #0x68
strh r0, [r4, #0x32]
ldrb r1, [r4, #0xb]
movs r0, #7
subs r1, r0, r1
adds r3, r4, #0
adds r3, #0x29
ands r1, r0
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
movs r0, #2
strb r0, [r4, #0xc]
_080A0D66:
pop {r4, pc}
.align 2, 0
_080A0D68: .4byte gUnk_02000080
_080A0D6C: .4byte gUnk_08124B10
thumb_func_start sub_080A0D70
sub_080A0D70: @ 0x080A0D70
push {r4, r5, r6, lr}
adds r5, r0, #0
ldrb r6, [r5, #0xc]
cmp r6, #0
bne _080A0DC4
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x18]
subs r0, #5
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r5, #0x18]
ldrb r2, [r5, #0x19]
movs r4, #0x3f
movs r1, #0x3f
adds r0, r1, #0
ands r0, r2
movs r3, #0x40
orrs r0, r3
strb r0, [r5, #0x19]
movs r0, #0x29
adds r0, r0, r5
mov ip, r0
ldrb r2, [r0]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
mov r2, ip
strb r0, [r2]
ldrb r0, [r5, #0x1b]
ands r1, r0
orrs r1, r3
strb r1, [r5, #0x1b]
movs r0, #0xb
strb r0, [r5, #0x1e]
bl sub_08000E50
ands r0, r4
adds r0, #0x40
strb r0, [r5, #0xe]
strb r6, [r5, #0xf]
_080A0DC4:
ldrb r0, [r5, #0xe]
subs r0, #1
strb r0, [r5, #0xe]
lsls r0, r0, #0x18
lsrs r4, r0, #0x18
cmp r4, #0
bne _080A0E02
movs r0, #4
strb r0, [r5, #0xe]
ldr r2, _080A0E04 @ =gUnk_08124B30
ldrb r0, [r5, #0xf]
adds r1, r0, #1
strb r1, [r5, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
adds r0, r0, r2
ldrb r0, [r0]
adds r0, #2
strb r0, [r5, #0x1e]
ldrb r0, [r5, #0xf]
adds r0, r0, r2
ldrb r0, [r0]
cmp r0, #0xff
bne _080A0E02
bl sub_08000E50
movs r1, #0x3f
ands r0, r1
adds r0, #0x40
strb r0, [r5, #0xe]
strb r4, [r5, #0xf]
_080A0E02:
pop {r4, r5, r6, pc}
.align 2, 0
_080A0E04: .4byte gUnk_08124B30
thumb_func_start sub_080A0E08
sub_080A0E08: @ 0x080A0E08
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xc]
cmp r0, #0
bne _080A0E26
movs r0, #1
strb r0, [r2, #0xc]
ldrb r1, [r2, #0x18]
subs r0, #5
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2, #0x18]
movs r0, #0xf
strb r0, [r2, #0x1e]
_080A0E26:
pop {pc}
thumb_func_start sub_080A0E28
sub_080A0E28: @ 0x080A0E28
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _080A0E36
movs r0, #1
strb r0, [r1, #0xc]
_080A0E36:
ldr r0, _080A0E48 @ =gUnk_03000BF0
str r1, [r0, #0x30]
ldr r0, _080A0E4C @ =gLinkEntity
ldr r3, _080A0E50 @ =0xFFD80000
movs r2, #0
bl sub_0806FA48
pop {pc}
.align 2, 0
_080A0E48: .4byte gUnk_03000BF0
_080A0E4C: .4byte gLinkEntity
_080A0E50: .4byte 0xFFD80000
thumb_func_start sub_080A0E54
sub_080A0E54: @ 0x080A0E54
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xd]
cmp r0, #3
bls _080A0E64
bl sub_0805E780
_080A0E64:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A0E76
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_08004260
_080A0E76:
ldr r0, [r4, #0x50]
ldrb r3, [r4, #0xa]
adds r1, r4, #0
movs r2, #0
bl sub_0806FA90
adds r2, r4, #0
adds r2, #0x63
ldrb r0, [r2]
ldrb r1, [r4, #0xa]
subs r0, r0, r1
strb r0, [r2]
adds r0, r4, #0
bl sub_08004274
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A0E98
sub_080A0E98: @ 0x080A0E98
push {lr}
ldr r2, _080A0EAC @ =gUnk_08124C08
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A0EAC: .4byte gUnk_08124C08
thumb_func_start sub_080A0EB0
sub_080A0EB0: @ 0x080A0EB0
push {r4, r5, lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x2e
ldrsh r2, [r0, r1]
ldr r3, _080A0EE8 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
subs r2, r2, r1
asrs r2, r2, #4
movs r4, #0x3f
ands r2, r4
movs r5, #0x32
ldrsh r1, [r0, r5]
ldrh r3, [r3, #8]
subs r1, r1, r3
asrs r1, r1, #4
ands r1, r4
lsls r1, r1, #6
orrs r2, r1
adds r0, #0x80
strh r2, [r0]
ldr r2, _080A0EEC @ =0x0000407D
ldrh r1, [r0]
adds r0, r2, #0
movs r2, #1
bl sub_0800015E
pop {r4, r5, pc}
.align 2, 0
_080A0EE8: .4byte gUnk_03000BF0
_080A0EEC: .4byte 0x0000407D
thumb_func_start sub_080A0EF0
sub_080A0EF0: @ 0x080A0EF0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x80
ldrh r0, [r0]
movs r1, #1
bl sub_080002B0
ldr r1, _080A0F1C @ =0x0000407D
cmp r0, r1
beq _080A0F18
bl sub_08078B48
ldr r1, _080A0F20 @ =gLinkEntity
ldr r0, [r4, #0x2c]
str r0, [r1, #0x2c]
ldrh r0, [r4, #0x32]
adds r0, #4
strh r0, [r1, #0x32]
bl sub_0805E780
_080A0F18:
pop {r4, pc}
.align 2, 0
_080A0F1C: .4byte 0x0000407D
_080A0F20: .4byte gLinkEntity
thumb_func_start sub_080A0F24
sub_080A0F24: @ 0x080A0F24
push {r4, lr}
adds r4, r0, #0
ldr r1, _080A0F40 @ =gUnk_08124C10
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_080A11E0
pop {r4, pc}
.align 2, 0
_080A0F40: .4byte gUnk_08124C10
thumb_func_start sub_080A0F44
sub_080A0F44: @ 0x080A0F44
push {r4, r5, r6, lr}
adds r5, r0, #0
movs r6, #1
strb r6, [r5, #0xc]
adds r1, r5, #0
adds r1, #0x59
movs r0, #8
strb r0, [r1]
adds r2, r5, #0
adds r2, #0x29
ldrb r0, [r2]
movs r1, #7
orrs r0, r1
strb r0, [r2]
ldr r0, _080A0FA8 @ =gUnk_080FD460
str r0, [r5, #0x48]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r5, #0
bl sub_080A11C0
cmp r0, #0
beq _080A0FA4
ldr r1, _080A0FAC @ =gLinkEntity
ldrh r0, [r5, #0x2e]
movs r4, #0
strh r0, [r1, #0x2e]
ldrh r0, [r5, #0x32]
strh r0, [r1, #0x32]
movs r0, #3
bl sub_08078A90
bl sub_08078B48
bl sub_0805E544
movs r0, #0x89
lsls r0, r0, #1
bl sub_080A3268
movs r0, #3
strb r0, [r5, #0xc]
strb r4, [r5, #0xd]
adds r0, r5, #0
adds r0, #0x68
strb r6, [r0]
_080A0FA4:
pop {r4, r5, r6, pc}
.align 2, 0
_080A0FA8: .4byte gUnk_080FD460
_080A0FAC: .4byte gLinkEntity
thumb_func_start sub_080A0FB0
sub_080A0FB0: @ 0x080A0FB0
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080A11C0
adds r1, r0, #0
cmp r1, #0
beq _080A0FF8
adds r0, r5, #0
adds r0, #0x68
ldrb r0, [r0]
cmp r0, #0
bne _080A0FFE
ldr r1, _080A0FF4 @ =gLinkEntity
ldrh r0, [r5, #0x2e]
movs r4, #0
strh r0, [r1, #0x2e]
ldrh r0, [r5, #0x32]
strh r0, [r1, #0x32]
movs r0, #3
bl sub_08078A90
bl sub_08078B48
bl sub_0805E544
movs r0, #0x89
lsls r0, r0, #1
bl sub_080A3268
movs r0, #2
strb r0, [r5, #0xc]
strb r4, [r5, #0xd]
b _080A0FFE
.align 2, 0
_080A0FF4: .4byte gLinkEntity
_080A0FF8:
adds r0, r5, #0
adds r0, #0x68
strb r1, [r0]
_080A0FFE:
pop {r4, r5, pc}
thumb_func_start sub_080A1000
sub_080A1000: @ 0x080A1000
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xd]
cmp r1, #1
beq _080A102A
cmp r1, #1
bgt _080A1014
cmp r1, #0
beq _080A101E
b _080A1088
_080A1014:
cmp r1, #2
beq _080A1038
cmp r1, #3
beq _080A1064
b _080A1088
_080A101E:
movs r0, #0x1e
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _080A10D4
_080A102A:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A10D4
b _080A1070
_080A1038:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A1056
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
adds r0, #0xf5
bl sub_080A3268
b _080A10D4
_080A1056:
ldr r0, _080A1060 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
b _080A10C2
.align 2, 0
_080A1060: .4byte gUnk_030010A0
_080A1064:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A107C
_080A1070:
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
b _080A10D4
_080A107C:
ldr r0, _080A1084 @ =gUnk_030010A0
ldr r0, [r0]
b _080A10C2
.align 2, 0
_080A1084: .4byte gUnk_030010A0
_080A1088:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A10BC
ldr r0, _080A10B4 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #3
bne _080A10A2
movs r0, #0xf9
bl sub_0807CCB4
_080A10A2:
ldrb r1, [r4, #0xb]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _080A10B8 @ =gUnk_0813ADEC
adds r0, r0, r1
bl sub_08080840
b _080A10D4
.align 2, 0
_080A10B4: .4byte gUnk_03000BF0
_080A10B8: .4byte gUnk_0813ADEC
_080A10BC:
ldr r0, _080A10D8 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #1
_080A10C2:
ands r0, r1
cmp r0, #0
bne _080A10D4
ldr r0, _080A10DC @ =gLinkEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
_080A10D4:
pop {r4, pc}
.align 2, 0
_080A10D8: .4byte gUnk_030010A0
_080A10DC: .4byte gLinkEntity
thumb_func_start sub_080A10E0
sub_080A10E0: @ 0x080A10E0
push {r4, lr}
adds r2, r0, #0
ldrb r1, [r2, #0xd]
cmp r1, #1
beq _080A110E
cmp r1, #1
bgt _080A10F4
cmp r1, #0
beq _080A10FE
b _080A1180
_080A10F4:
cmp r1, #2
beq _080A1124
cmp r1, #3
beq _080A1148
b _080A1180
_080A10FE:
movs r0, #1
strb r0, [r2, #0xd]
movs r0, #0x1e
strb r0, [r2, #0xe]
adds r0, #0xf6
bl sub_080A3268
b _080A11BA
_080A110E:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
beq _080A1130
ldr r0, _080A1120 @ =gUnk_030010A0
ldr r0, [r0]
b _080A1162
.align 2, 0
_080A1120: .4byte gUnk_030010A0
_080A1124:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A113C
_080A1130:
ldrb r0, [r2, #0xd]
adds r0, #1
strb r0, [r2, #0xd]
movs r0, #0x1e
strb r0, [r2, #0xe]
b _080A11BA
_080A113C:
ldr r0, _080A1144 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
b _080A1162
.align 2, 0
_080A1144: .4byte gUnk_030010A0
_080A1148:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A115C
ldrb r0, [r2, #0xd]
adds r0, #1
strb r0, [r2, #0xd]
b _080A11BA
_080A115C:
ldr r0, _080A1178 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
_080A1162:
ands r0, r1
cmp r0, #0
bne _080A11BA
ldr r0, _080A117C @ =gLinkEntity
ldrb r1, [r0, #0x14]
adds r1, #2
movs r2, #6
ands r1, r2
strb r1, [r0, #0x14]
b _080A11BA
.align 2, 0
_080A1178: .4byte gUnk_030010A0
_080A117C: .4byte gLinkEntity
_080A1180:
ldr r4, _080A11A0 @ =gLinkEntity
ldrb r3, [r4, #0x14]
cmp r3, #4
beq _080A11A8
ldr r0, _080A11A4 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _080A11BA
adds r0, r3, #2
movs r1, #6
ands r0, r1
strb r0, [r4, #0x14]
b _080A11BA
.align 2, 0
_080A11A0: .4byte gLinkEntity
_080A11A4: .4byte gUnk_030010A0
_080A11A8:
movs r0, #0
movs r1, #1
strb r1, [r2, #0xc]
strb r0, [r2, #0xd]
ldr r0, _080A11BC @ =gUnk_03003F80
adds r0, #0x8b
strb r1, [r0]
bl sub_0805E564
_080A11BA:
pop {r4, pc}
.align 2, 0
_080A11BC: .4byte gUnk_03003F80
thumb_func_start sub_080A11C0
sub_080A11C0: @ 0x080A11C0
push {lr}
adds r1, r0, #0
ldr r0, _080A11D8 @ =gLinkEntity
movs r2, #0x36
ldrsh r0, [r0, r2]
cmp r0, #0
bne _080A11DC
adds r0, r1, #0
bl sub_08017850
b _080A11DE
.align 2, 0
_080A11D8: .4byte gLinkEntity
_080A11DC:
movs r0, #0
_080A11DE:
pop {pc}
thumb_func_start sub_080A11E0
sub_080A11E0: @ 0x080A11E0
push {lr}
adds r2, r0, #0
adds r1, r2, #0
adds r1, #0x59
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A1202
movs r0, #8
strb r0, [r1]
ldrb r0, [r2, #0x1e]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r2, #0x1e]
_080A1202:
pop {pc}
thumb_func_start sub_080A1204
sub_080A1204: @ 0x080A1204
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r5, r0, #0
cmp r5, #0
bne _080A1260
adds r0, #1
strb r0, [r4, #0xc]
bl sub_080A1514
lsls r0, r0, #2
ldr r1, _080A126C @ =gUnk_08124C20
adds r0, r0, r1
ldrh r2, [r0]
lsls r1, r2, #4
subs r1, r1, r2
lsls r1, r1, #2
adds r2, r4, #0
adds r2, #0x68
strh r1, [r2]
adds r1, r4, #0
adds r1, #0x6a
strh r5, [r1]
ldrh r1, [r0, #2]
adds r0, r4, #0
adds r0, #0x6c
strh r1, [r0]
adds r1, r4, #0
adds r1, #0x6e
movs r0, #1
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x70
movs r2, #0
movs r1, #9
_080A124A:
strb r2, [r0]
adds r0, #1
subs r1, #1
cmp r1, #0
bge _080A124A
adds r0, r4, #0
bl sub_0807DD64
adds r0, r4, #0
bl sub_0806EC20
_080A1260:
adds r0, r4, #0
movs r1, #0
bl sub_0807DD94
pop {r4, r5, pc}
.align 2, 0
_080A126C: .4byte gUnk_08124C20
thumb_func_start sub_080A1270
sub_080A1270: @ 0x080A1270
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #8
mov sb, r0
movs r6, #0
ldr r0, [r0, #0x64]
str r0, [sp, #4]
mov r4, sb
adds r4, #0x70
ldr r0, _080A12F8 @ =gUnk_03000BF0
movs r2, #0xd8
lsls r2, r2, #2
adds r1, r2, #0
ldrh r3, [r0, #6]
adds r1, r1, r3
movs r7, #0xd4
lsls r7, r7, #2
adds r2, r7, #0
ldrh r0, [r0, #8]
adds r2, r2, r0
lsls r1, r1, #0x10
asrs r1, r1, #0x10
mov r8, r1
lsls r2, r2, #0x10
asrs r3, r2, #0x10
movs r0, #9
mov sl, r0
movs r1, #1
rsbs r1, r1, #0
adds r5, r1, #0
_080A12B2:
ldr r7, [sp, #4]
ldr r2, [r7]
movs r0, #0
ldrsb r0, [r4, r0]
cmp r0, #0
bne _080A1300
ldr r0, [r2, #4]
cmp r0, #0
beq _080A132C
cmp r2, #0
beq _080A132C
movs r1, #0x2e
ldrsh r0, [r2, r1]
cmp r8, r0
bgt _080A132E
movs r7, #0x32
ldrsh r0, [r2, r7]
cmp r3, r0
bgt _080A132E
ldrb r0, [r2, #0xa]
adds r0, #1
strb r0, [r4]
movs r0, #1
strb r0, [r2, #0xb]
adds r6, #1
ldr r1, _080A12FC @ =gUnk_08124EC8
ldrb r0, [r2, #0xa]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
str r3, [sp]
bl sub_080A3268
ldr r3, [sp]
b _080A132E
.align 2, 0
_080A12F8: .4byte gUnk_03000BF0
_080A12FC: .4byte gUnk_08124EC8
_080A1300:
cmp r0, #0
ble _080A132E
adds r6, #1
ldr r0, [r2, #4]
cmp r0, #0
beq _080A132C
cmp r2, #0
beq _080A132C
mov r1, r8
adds r1, #4
movs r7, #0x2e
ldrsh r0, [r2, r7]
cmp r1, r0
ble _080A131E
strh r1, [r2, #0x2e]
_080A131E:
adds r1, r3, #4
movs r7, #0x32
ldrsh r0, [r2, r7]
cmp r1, r0
ble _080A132E
strh r1, [r2, #0x32]
b _080A132E
_080A132C:
strb r5, [r4]
_080A132E:
movs r0, #1
rsbs r0, r0, #0
add sl, r0
adds r4, #1
ldr r1, [sp, #4]
adds r1, #4
str r1, [sp, #4]
mov r2, sl
cmp r2, #0
bge _080A12B2
mov r0, sb
adds r0, #0x6a
strh r6, [r0]
ldr r0, _080A136C @ =gUnk_03003F80
adds r0, #0x27
movs r1, #0xff
strb r1, [r0]
mov r1, sb
adds r1, #0x68
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bgt _080A1370
movs r0, #0xe2
bl sub_080A3268
bl sub_08050384
b _080A1376
.align 2, 0
_080A136C: .4byte gUnk_03003F80
_080A1370:
ldr r1, _080A1384 @ =gUnk_02033280
movs r0, #0
strb r0, [r1, #6]
_080A1376:
add sp, #8
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A1384: .4byte gUnk_02033280
thumb_func_start sub_080A1388
sub_080A1388: @ 0x080A1388
push {r4, r5, r6, lr}
adds r5, r0, #0
adds r5, #0x70
ldr r4, [r0, #0x64]
movs r6, #9
_080A1392:
ldr r1, [r4]
movs r0, #0
ldrsb r0, [r5, r0]
cmp r0, #0
blt _080A13A6
cmp r1, #0
beq _080A13A6
adds r0, r1, #0
bl sub_0805E79C
_080A13A6:
subs r6, #1
adds r5, #1
adds r4, #4
cmp r6, #0
bge _080A1392
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080A13B4
sub_080A13B4: @ 0x080A13B4
push {r4, lr}
adds r4, r1, #0
adds r1, r0, #0
adds r1, #0x6a
adds r0, #0x6c
movs r2, #0
ldrsh r1, [r1, r2]
movs r2, #0
ldrsh r0, [r0, r2]
cmp r1, r0
blt _080A13D8
ldr r0, _080A13D4 @ =0x0000300C
bl sub_08056378
movs r0, #1
b _080A13E0
.align 2, 0
_080A13D4: .4byte 0x0000300C
_080A13D8:
ldr r0, _080A13E4 @ =0x00003005
bl sub_08056378
movs r0, #0
_080A13E0:
str r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
_080A13E4: .4byte 0x00003005
thumb_func_start sub_080A13E8
sub_080A13E8: @ 0x080A13E8
push {r4, r5, r6, lr}
adds r5, r0, #0
bl sub_080A1514
lsls r0, r0, #2
ldr r1, _080A1408 @ =gUnk_08124EA0
adds r4, r0, r1
movs r6, #0
ldrb r0, [r4]
cmp r0, #0x5c
beq _080A141C
cmp r0, #0x5c
bgt _080A140C
cmp r0, #0x3f
beq _080A1412
b _080A1444
.align 2, 0
_080A1408: .4byte gUnk_08124EA0
_080A140C:
cmp r0, #0x63
beq _080A1430
b _080A1444
_080A1412:
ldr r0, _080A1418 @ =gUnk_02002A40
adds r0, #0xbb
b _080A1424
.align 2, 0
_080A1418: .4byte gUnk_02002A40
_080A141C:
ldr r0, _080A142C @ =gUnk_02002A40
movs r1, #0x8b
lsls r1, r1, #1
adds r0, r0, r1
_080A1424:
ldrb r0, [r0]
cmp r0, #0
beq _080A1444
b _080A1454
.align 2, 0
_080A142C: .4byte gUnk_02002A40
_080A1430:
movs r0, #0x4f
bl GetProgressFlag
cmp r0, #0
bne _080A1442
movs r0, #0x4f
bl sub_0807CD04
b _080A1444
_080A1442:
movs r6, #1
_080A1444:
cmp r6, #0
bne _080A1454
ldrb r0, [r4]
ldrb r1, [r4, #1]
movs r2, #0
bl sub_080A7C18
b _080A145C
_080A1454:
adds r1, r5, #0
adds r1, #0x6e
movs r0, #2
strh r0, [r1]
_080A145C:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_080A1460
sub_080A1460: @ 0x080A1460
push {r4, r5, lr}
adds r5, r0, #0
bl sub_080A1514
adds r1, r5, #0
adds r1, #0x70
movs r4, #0
ldr r3, _080A149C @ =gUnk_08124ECC
movs r2, #9
_080A1472:
movs r0, #0
ldrsb r0, [r1, r0]
adds r0, r0, r3
ldrb r0, [r0]
adds r4, r4, r0
adds r1, #1
subs r2, #1
cmp r2, #0
bge _080A1472
adds r0, r4, #0
bl sub_080526CC
ldr r0, _080A14A0 @ =0x00003007
adds r1, r5, #0
bl sub_08056398
ldr r1, _080A14A4 @ =gUnk_02000050
lsls r0, r4, #0x10
lsrs r0, r0, #0x10
str r0, [r1, #0x10]
pop {r4, r5, pc}
.align 2, 0
_080A149C: .4byte gUnk_08124ECC
_080A14A0: .4byte 0x00003007
_080A14A4: .4byte gUnk_02000050
thumb_func_start sub_080A14A8
sub_080A14A8: @ 0x080A14A8
push {r4, lr}
bl sub_080A1514
adds r4, r0, #0
adds r4, #1
cmp r4, #9
ble _080A14B8
movs r4, #9
_080A14B8:
movs r0, #1
ands r0, r4
cmp r0, #0
beq _080A14C8
movs r0, #0x4b
bl sub_0807CD04
b _080A14CE
_080A14C8:
movs r0, #0x4b
bl sub_0807CD80
_080A14CE:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _080A14DE
movs r0, #0x4c
bl sub_0807CD04
b _080A14E4
_080A14DE:
movs r0, #0x4c
bl sub_0807CD80
_080A14E4:
movs r0, #4
ands r0, r4
cmp r0, #0
beq _080A14F4
movs r0, #0x4d
bl sub_0807CD04
b _080A14FA
_080A14F4:
movs r0, #0x4d
bl sub_0807CD80
_080A14FA:
movs r0, #8
ands r0, r4
cmp r0, #0
beq _080A150A
movs r0, #0x4e
bl sub_0807CD04
b _080A1510
_080A150A:
movs r0, #0x4e
bl sub_0807CD80
_080A1510:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A1514
sub_080A1514: @ 0x080A1514
push {r4, lr}
movs r0, #0x4b
bl GetProgressFlag
rsbs r1, r0, #0
orrs r1, r0
lsrs r4, r1, #0x1f
movs r0, #0x4c
bl GetProgressFlag
cmp r0, #0
beq _080A1530
movs r0, #2
orrs r4, r0
_080A1530:
movs r0, #0x4d
bl GetProgressFlag
cmp r0, #0
beq _080A153E
movs r0, #4
orrs r4, r0
_080A153E:
movs r0, #0x4e
bl GetProgressFlag
cmp r0, #0
beq _080A154C
movs r0, #8
orrs r4, r0
_080A154C:
adds r0, r4, #0
pop {r4, pc}
thumb_func_start sub_080A1550
sub_080A1550: @ 0x080A1550
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
mov r8, r1
movs r0, #0
str r0, [r1, #0x14]
movs r0, #0xb9
movs r1, #0
movs r2, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A15FE
movs r0, #0x28
bl sub_0801D8E0
str r0, [r4, #0x64]
cmp r0, #0
bne _080A1582
adds r0, r4, #0
bl sub_0805E79C
b _080A15FE
_080A1582:
mov r0, r8
ldr r1, [r0, #4]
adds r0, r4, #0
bl sub_0807DAD0
adds r1, r4, #0
adds r1, #0x84
str r0, [r1]
bl sub_080A1514
lsls r1, r0, #4
subs r1, r1, r0
lsls r1, r1, #2
ldr r0, _080A15B4 @ =gUnk_08124C48
adds r5, r1, r0
ldr r4, [r4, #0x64]
mov sb, r4
ldr r7, _080A15B8 @ =gUnk_03000BF0
movs r6, #9
_080A15A8:
movs r1, #0
ldrsh r0, [r5, r1]
cmp r0, #0
bgt _080A15BC
movs r4, #0
b _080A15E6
.align 2, 0
_080A15B4: .4byte gUnk_08124C48
_080A15B8: .4byte gUnk_03000BF0
_080A15BC:
movs r0, #0
ldrsh r1, [r5, r0]
subs r1, #1
movs r0, #0x41
bl sub_0804AA60
adds r4, r0, #0
cmp r4, #0
beq _080A15E6
ldrh r0, [r5, #2]
ldrh r1, [r7, #6]
adds r0, r0, r1
strh r0, [r4, #0x2e]
ldrh r0, [r5, #4]
ldrh r1, [r7, #8]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
_080A15E6:
mov r0, sb
adds r0, #4
mov sb, r0
subs r0, #4
stm r0!, {r4}
subs r6, #1
adds r5, #6
cmp r6, #0
bge _080A15A8
movs r0, #1
mov r1, r8
str r0, [r1, #0x14]
_080A15FE:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_080A1608
sub_080A1608: @ 0x080A1608
push {r4, lr}
ldr r4, _080A163C @ =0x00003002
movs r0, #1
bl sub_0807CC3C
cmp r0, #0
beq _080A1618
adds r4, #4
_080A1618:
adds r0, r4, #0
bl sub_08056378
ldr r4, _080A1640 @ =gUnk_02000050
movs r1, #0
movs r0, #1
strb r0, [r4, #6]
strb r1, [r4, #7]
bl sub_080A1514
lsls r0, r0, #2
ldr r1, _080A1644 @ =gUnk_08124C20
adds r0, r0, r1
ldrh r1, [r0]
str r1, [r4, #0x10]
ldrh r0, [r0, #2]
str r0, [r4, #0x14]
pop {r4, pc}
.align 2, 0
_080A163C: .4byte 0x00003002
_080A1640: .4byte gUnk_02000050
_080A1644: .4byte gUnk_08124C20
thumb_func_start sub_080A1648
sub_080A1648: @ 0x080A1648
push {r4, lr}
ldr r4, _080A1684 @ =0x0000407F
ldr r1, _080A1688 @ =0x00000D36
adds r0, r4, #0
movs r2, #1
bl sub_0807B314
ldr r1, _080A168C @ =0x00000D37
adds r0, r4, #0
movs r2, #1
bl sub_0807B314
ldr r1, _080A1690 @ =0x00000D38
adds r0, r4, #0
movs r2, #1
bl sub_0807B314
subs r4, #1
ldr r1, _080A1694 @ =0x00000D75
adds r0, r4, #0
movs r2, #1
bl sub_0807B314
ldr r1, _080A1698 @ =0x00000E75
adds r0, r4, #0
movs r2, #1
bl sub_0807B314
pop {r4, pc}
.align 2, 0
_080A1684: .4byte 0x0000407F
_080A1688: .4byte 0x00000D36
_080A168C: .4byte 0x00000D37
_080A1690: .4byte 0x00000D38
_080A1694: .4byte 0x00000D75
_080A1698: .4byte 0x00000E75
thumb_func_start sub_080A169C
sub_080A169C: @ 0x080A169C
push {lr}
ldr r0, _080A16C8 @ =0x00000D36
movs r1, #1
bl sub_0807BA8C
ldr r0, _080A16CC @ =0x00000D37
movs r1, #1
bl sub_0807BA8C
ldr r0, _080A16D0 @ =0x00000D38
movs r1, #1
bl sub_0807BA8C
ldr r0, _080A16D4 @ =0x00000D75
movs r1, #1
bl sub_0807BA8C
ldr r0, _080A16D8 @ =0x00000E75
movs r1, #1
bl sub_0807BA8C
pop {pc}
.align 2, 0
_080A16C8: .4byte 0x00000D36
_080A16CC: .4byte 0x00000D37
_080A16D0: .4byte 0x00000D38
_080A16D4: .4byte 0x00000D75
_080A16D8: .4byte 0x00000E75
thumb_func_start sub_080A16DC
sub_080A16DC: @ 0x080A16DC
push {r4, lr}
adds r4, r0, #0
ldr r1, _080A1700 @ =gUnk_08124ED0
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
adds r0, r4, #0
bl sub_080A1DCC
adds r0, r4, #0
bl sub_080A1C9C
pop {r4, pc}
.align 2, 0
_080A1700: .4byte gUnk_08124ED0
thumb_func_start sub_080A1704
sub_080A1704: @ 0x080A1704
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sl, r0
movs r0, #0x7b
bl sub_0807CBE4
cmp r0, #0
beq _080A171E
bl sub_0805E780
_080A171E:
ldr r0, _080A1828 @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x45
bhi _080A181C
movs r0, #0x40
bl sub_0801D8E0
adds r7, r0, #0
cmp r7, #0
beq _080A181C
movs r6, #0
movs r0, #1
mov sb, r0
mov r2, sb
mov r1, sl
strb r2, [r1, #0xc]
str r7, [r1, #0x64]
adds r1, #0x6e
movs r3, #0
mov r8, r3
movs r0, #0x96
lsls r0, r0, #2
strh r0, [r1]
mov r0, sl
adds r0, #0x6c
strh r6, [r0]
mov r0, sl
str r0, [r7]
movs r0, #0x5c
movs r1, #0
bl sub_0804AA60
adds r1, r0, #0
str r7, [r1, #0x64]
str r1, [r7, #4]
movs r0, #0x5d
movs r1, #0
bl sub_0804AA60
adds r1, r0, #0
ldr r4, _080A182C @ =gUnk_03000BF0
movs r2, #0x80
lsls r2, r2, #2
adds r5, r2, #0
ldrh r3, [r4, #6]
adds r0, r5, r3
strh r0, [r1, #0x2e]
movs r2, #0xcc
lsls r2, r2, #2
adds r0, r2, #0
ldrh r3, [r4, #8]
adds r0, r0, r3
strh r0, [r1, #0x32]
str r7, [r1, #0x64]
str r1, [r7, #8]
movs r0, #0x5d
movs r1, #1
bl sub_0804AA60
adds r1, r0, #0
movs r2, #0x98
lsls r2, r2, #2
adds r0, r2, #0
ldrh r3, [r4, #6]
adds r0, r0, r3
strh r0, [r1, #0x2e]
adds r2, #0xb0
adds r0, r2, #0
ldrh r3, [r4, #8]
adds r0, r0, r3
strh r0, [r1, #0x32]
str r7, [r1, #0x64]
str r1, [r7, #0xc]
ldr r2, _080A1830 @ =gUnk_03000F50
ldr r0, _080A1834 @ =0x00001E07
strh r0, [r2, #0x2c]
ldrh r0, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
mov r0, sl
adds r0, #0x70
strh r6, [r0]
adds r0, #2
strh r6, [r0]
adds r0, #2
mov r1, r8
strb r1, [r0]
adds r0, #6
strb r1, [r0]
subs r0, #4
movs r1, #0xc0
strh r1, [r0]
adds r0, #2
strh r1, [r0]
ldr r0, _080A1838 @ =gUnk_030010A0
adds r0, #0x39
mov r2, sb
strb r2, [r0]
ldr r2, _080A183C @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
lsls r1, r1, #0xa
orrs r0, r1
str r0, [r2, #0x30]
ldrh r3, [r4, #6]
adds r5, r5, r3
strh r5, [r2, #0x16]
movs r1, #0x84
lsls r1, r1, #2
adds r0, r1, #0
ldrh r4, [r4, #8]
adds r0, r0, r4
strh r0, [r2, #0x18]
ldr r0, _080A1840 @ =0x80100000
bl sub_080A3268
ldr r0, _080A1844 @ =gUnk_02033A90
movs r2, #0x86
lsls r2, r2, #4
adds r1, r0, r2
ldr r3, _080A1848 @ =0x00000864
adds r0, r0, r3
ldr r0, [r0]
str r0, [r1]
_080A181C:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A1828: .4byte gUnk_03003DBC
_080A182C: .4byte gUnk_03000BF0
_080A1830: .4byte gUnk_03000F50
_080A1834: .4byte 0x00001E07
_080A1838: .4byte gUnk_030010A0
_080A183C: .4byte gUnk_03003F80
_080A1840: .4byte 0x80100000
_080A1844: .4byte gUnk_02033A90
_080A1848: .4byte 0x00000864
thumb_func_start sub_080A184C
sub_080A184C: @ 0x080A184C
push {lr}
adds r3, r0, #0
adds r1, r3, #0
adds r1, #0x6e
ldrh r0, [r1]
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A1874
movs r0, #2
strb r0, [r3, #0xc]
subs r1, #2
movs r2, #8
movs r0, #8
strh r0, [r1]
ldr r0, [r3, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
strb r2, [r0]
_080A1874:
ldr r2, _080A1894 @ =gUnk_03003F80
ldr r1, _080A1898 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {pc}
.align 2, 0
_080A1894: .4byte gUnk_03003F80
_080A1898: .4byte gUnk_03000BF0
thumb_func_start sub_080A189C
sub_080A189C: @ 0x080A189C
push {lr}
adds r3, r0, #0
ldr r0, [r3, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A18E6
movs r0, #3
strb r0, [r3, #0xc]
movs r0, #0x23
strb r0, [r3, #0xe]
adds r1, r3, #0
adds r1, #0x6c
movs r2, #1
movs r0, #1
strh r0, [r1]
adds r1, #0xc
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1]
adds r0, r3, #0
adds r0, #0x7b
strb r2, [r0]
ldr r0, [r3, #0x64]
ldr r0, [r0, #8]
adds r0, #0x45
movs r1, #0xc
strb r1, [r0]
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
movs r0, #0x96
movs r1, #1
bl sub_08080964
_080A18E6:
ldr r2, _080A1904 @ =gUnk_03003F80
ldr r1, _080A1908 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {pc}
.align 2, 0
_080A1904: .4byte gUnk_03003F80
_080A1908: .4byte gUnk_03000BF0
thumb_func_start sub_080A190C
sub_080A190C: @ 0x080A190C
push {r4, lr}
adds r4, r0, #0
bl sub_080A1FF0
ldr r3, [r4, #0x64]
ldr r2, [r3, #8]
adds r0, r2, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A197C
adds r0, r4, #0
adds r1, r2, #0
bl sub_080A20B8
cmp r0, #0
beq _080A1956
movs r0, #4
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x6c
movs r0, #0x10
strh r0, [r1]
adds r1, #0xc
movs r0, #0xc0
strh r0, [r1]
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
ldrb r1, [r0, #0x14]
adds r0, r4, #0
bl sub_080A1D70
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
movs r1, #0x18
strb r1, [r0]
_080A1956:
ldr r2, _080A1974 @ =gUnk_03003F80
ldr r1, _080A1978 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
b _080A1988
.align 2, 0
_080A1974: .4byte gUnk_03003F80
_080A1978: .4byte gUnk_03000BF0
_080A197C:
ldr r1, _080A198C @ =gUnk_03003F80
ldrh r0, [r2, #0x2e]
strh r0, [r1, #0x16]
ldr r0, [r3, #8]
ldrh r0, [r0, #0x32]
strh r0, [r1, #0x18]
_080A1988:
pop {r4, pc}
.align 2, 0
_080A198C: .4byte gUnk_03003F80
thumb_func_start sub_080A1990
sub_080A1990: @ 0x080A1990
push {lr}
adds r2, r0, #0
ldr r1, [r2, #0x64]
ldr r0, [r1, #4]
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A19D6
ldr r0, [r1, #8]
adds r0, #0x45
movs r1, #0xc
strb r1, [r0]
movs r0, #5
strb r0, [r2, #0xc]
movs r0, #0x23
strb r0, [r2, #0xe]
adds r1, r2, #0
adds r1, #0x6c
movs r0, #2
strh r0, [r1]
adds r1, #0xc
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1]
adds r1, #3
movs r0, #1
strb r0, [r1]
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
movs r0, #0x96
movs r1, #1
bl sub_08080964
_080A19D6:
ldr r2, _080A19F4 @ =gUnk_03003F80
ldr r1, _080A19F8 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {pc}
.align 2, 0
_080A19F4: .4byte gUnk_03003F80
_080A19F8: .4byte gUnk_03000BF0
thumb_func_start sub_080A19FC
sub_080A19FC: @ 0x080A19FC
push {r4, lr}
adds r4, r0, #0
bl sub_080A1FF0
ldr r3, [r4, #0x64]
ldr r2, [r3, #0xc]
adds r0, r2, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A1A6C
adds r0, r4, #0
adds r1, r2, #0
bl sub_080A20B8
cmp r0, #0
beq _080A1A46
movs r0, #6
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x6c
movs r0, #0x20
strh r0, [r1]
adds r1, #0xc
movs r0, #0xc0
strh r0, [r1]
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
ldrb r1, [r0, #0x14]
adds r0, r4, #0
bl sub_080A1D70
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
movs r1, #0x18
strb r1, [r0]
_080A1A46:
ldr r2, _080A1A64 @ =gUnk_03003F80
ldr r1, _080A1A68 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
b _080A1A78
.align 2, 0
_080A1A64: .4byte gUnk_03003F80
_080A1A68: .4byte gUnk_03000BF0
_080A1A6C:
ldr r1, _080A1A7C @ =gUnk_03003F80
ldrh r0, [r2, #0x2e]
strh r0, [r1, #0x16]
ldr r0, [r3, #0xc]
ldrh r0, [r0, #0x32]
strh r0, [r1, #0x18]
_080A1A78:
pop {r4, pc}
.align 2, 0
_080A1A7C: .4byte gUnk_03003F80
thumb_func_start sub_080A1A80
sub_080A1A80: @ 0x080A1A80
push {lr}
adds r2, r0, #0
ldr r1, [r2, #0x64]
ldr r0, [r1, #4]
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A1AC0
ldr r0, [r1, #0xc]
adds r0, #0x45
movs r1, #0xc
strb r1, [r0]
movs r0, #7
strb r0, [r2, #0xc]
movs r0, #0x23
strb r0, [r2, #0xe]
adds r1, r2, #0
adds r1, #0x6c
adds r0, #0xe1
strh r0, [r1]
adds r1, #0xc
movs r0, #0x80
lsls r0, r0, #3
strh r0, [r1]
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
movs r0, #0x96
movs r1, #1
bl sub_08080964
_080A1AC0:
ldr r2, _080A1AE0 @ =gUnk_03003F80
ldr r1, _080A1AE4 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {pc}
.align 2, 0
_080A1AE0: .4byte gUnk_03003F80
_080A1AE4: .4byte gUnk_03000BF0
thumb_func_start sub_080A1AE8
sub_080A1AE8: @ 0x080A1AE8
push {r4, lr}
adds r4, r0, #0
bl sub_080A1FF0
ldr r0, [r4, #0x64]
ldr r1, [r0, #0xc]
adds r0, r1, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
bne _080A1B24
adds r0, r4, #0
bl sub_080A20B8
cmp r0, #0
beq _080A1B24
movs r0, #8
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x6c
movs r0, #0x40
strh r0, [r1]
adds r1, #0xc
movs r0, #0xc0
strh r0, [r1]
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
movs r1, #0xc
strb r1, [r0]
_080A1B24:
ldr r2, _080A1B44 @ =gUnk_03003F80
ldr r1, _080A1B48 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {r4, pc}
.align 2, 0
_080A1B44: .4byte gUnk_03003F80
_080A1B48: .4byte gUnk_03000BF0
thumb_func_start sub_080A1B4C
sub_080A1B4C: @ 0x080A1B4C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, [r4, #0x64]
ldr r0, [r0, #4]
adds r0, #0x45
ldrb r7, [r0]
cmp r7, #0
bne _080A1BD0
adds r5, r4, #0
adds r5, #0x6c
ldrh r0, [r5]
cmp r0, #0
beq _080A1B80
movs r0, #0x2d
movs r1, #1
bl sub_08080964
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
adds r1, r4, #0
adds r1, #0x78
movs r0, #0xc0
lsls r0, r0, #3
strh r0, [r1]
_080A1B80:
movs r6, #0
strh r7, [r5]
ldr r0, _080A1BF0 @ =gUnk_030010A0
adds r0, #0x39
strb r6, [r0]
bl sub_08079F8C
cmp r0, #0
beq _080A1BD0
ldr r3, _080A1BF4 @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r3, r1]
cmp r0, #0
bne _080A1BD0
movs r0, #9
strb r0, [r4, #0xc]
strb r6, [r4, #0xe]
movs r0, #0xf0
strb r0, [r4, #0xf]
adds r1, r4, #0
adds r1, #0x6e
adds r0, #0xb4
strh r0, [r1]
strb r6, [r4, #0x15]
movs r0, #0x60
strh r0, [r4, #0x24]
ldr r2, _080A1BF8 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _080A1BFC @ =0xFFFDFFFF
ands r0, r1
str r0, [r2, #0x30]
adds r0, r3, #0
adds r1, r4, #0
bl sub_0806FA24
ldr r0, _080A1C00 @ =gUnk_03000BF0
str r4, [r0, #0x30]
movs r0, #2
bl sub_08078A90
_080A1BD0:
ldr r2, _080A1BF8 @ =gUnk_03003F80
ldr r1, _080A1C00 @ =gUnk_03000BF0
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x16]
movs r3, #0x84
lsls r3, r3, #2
adds r0, r3, #0
ldrh r1, [r1, #8]
adds r0, r0, r1
strh r0, [r2, #0x18]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A1BF0: .4byte gUnk_030010A0
_080A1BF4: .4byte gLinkEntity
_080A1BF8: .4byte gUnk_03003F80
_080A1BFC: .4byte 0xFFFDFFFF
_080A1C00: .4byte gUnk_03000BF0
thumb_func_start sub_080A1C04
sub_080A1C04: @ 0x080A1C04
push {r4, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x6e
ldrh r0, [r1]
cmp r0, #0
bne _080A1C52
adds r0, r4, #0
bl sub_0806F69C
adds r0, r4, #0
bl sub_080A1E54
ldrb r0, [r4, #0xf]
subs r1, r0, #1
strb r1, [r4, #0xf]
lsls r0, r1, #0x18
cmp r0, #0
bne _080A1C40
movs r0, #0x7b
bl sub_0807CCC8
ldr r0, _080A1C3C @ =gUnk_0813ABD0
movs r1, #8
bl sub_0808091C
b _080A1C9A
.align 2, 0
_080A1C3C: .4byte gUnk_0813ABD0
_080A1C40:
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x3c
bne _080A1C9A
movs r0, #7
movs r1, #4
bl sub_08050054
b _080A1C9A
_080A1C52:
subs r0, #1
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0xb3
bhi _080A1C66
adds r0, r4, #0
bl sub_080A1E54
b _080A1C9A
_080A1C66:
ldrh r1, [r1]
cmp r1, #0xb4
beq _080A1C76
movs r0, #0x96
lsls r0, r0, #1
cmp r1, r0
beq _080A1C8A
b _080A1C9A
_080A1C76:
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
movs r0, #0xb4
lsls r0, r0, #2
movs r1, #2
bl sub_08080964
b _080A1C9A
_080A1C8A:
movs r0, #0x94
lsls r0, r0, #1
bl sub_080A3268
movs r0, #0x4b
movs r1, #1
bl sub_08080964
_080A1C9A:
pop {r4, pc}
thumb_func_start sub_080A1C9C
sub_080A1C9C: @ 0x080A1C9C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r4, #0
adds r5, #0x7a
ldrb r0, [r5]
cmp r0, #0
beq _080A1D04
adds r0, r4, #0
adds r0, #0x74
adds r7, r4, #0
adds r7, #0x75
ldrb r1, [r0]
adds r6, r0, #0
ldrb r0, [r7]
cmp r1, r0
beq _080A1CE4
subs r5, #2
movs r0, #0
strh r0, [r5]
adds r0, r4, #0
movs r1, #0xc
bl sub_080A1D8C
adds r0, r4, #0
adds r0, #0x76
ldrh r1, [r0]
adds r2, r0, #0
cmp r1, #0
bne _080A1D14
ldrb r0, [r7]
strb r0, [r6]
adds r0, r4, #0
adds r0, #0x7c
ldrh r0, [r0]
strh r0, [r5]
b _080A1D14
_080A1CE4:
adds r0, r4, #0
movs r1, #0xc
bl sub_080A1D8C
adds r0, r4, #0
adds r0, #0x78
adds r1, r4, #0
adds r1, #0x76
ldrh r0, [r0]
adds r2, r1, #0
ldrh r1, [r2]
cmp r0, r1
bne _080A1D14
movs r0, #0
strb r0, [r5]
b _080A1D14
_080A1D04:
adds r0, r4, #0
movs r1, #8
bl sub_080A1D8C
adds r6, r4, #0
adds r6, #0x74
adds r2, r4, #0
adds r2, #0x76
_080A1D14:
adds r3, r4, #0
adds r3, #0x70
ldr r5, _080A1D68 @ =gUnk_080C9160
ldrb r0, [r6]
lsls r0, r0, #1
adds r0, r0, r5
movs r7, #0
ldrsh r1, [r0, r7]
ldrh r0, [r2]
muls r0, r1, r0
cmp r0, #0
bge _080A1D2E
adds r0, #0xff
_080A1D2E:
asrs r0, r0, #8
ldrh r1, [r3]
adds r0, r0, r1
strh r0, [r3]
adds r4, #0x72
ldrb r0, [r6]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r5
movs r5, #0
ldrsh r1, [r0, r5]
ldrh r0, [r2]
muls r0, r1, r0
cmp r0, #0
bge _080A1D4E
adds r0, #0xff
_080A1D4E:
asrs r0, r0, #8
ldrh r1, [r4]
subs r1, r1, r0
strh r1, [r4]
ldr r2, _080A1D6C @ =gUnk_03000F50
ldrh r0, [r3]
lsrs r0, r0, #8
strh r0, [r2, #0x2e]
lsls r1, r1, #0x10
lsrs r1, r1, #0x18
strh r1, [r2, #0x30]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A1D68: .4byte gUnk_080C9160
_080A1D6C: .4byte gUnk_03000F50
thumb_func_start sub_080A1D70
sub_080A1D70: @ 0x080A1D70
adds r2, r0, #0
adds r0, #0x75
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x7a
movs r0, #1
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x78
ldrh r1, [r0]
adds r0, #4
strh r1, [r0]
bx lr
.align 2, 0
thumb_func_start sub_080A1D8C
sub_080A1D8C: @ 0x080A1D8C
push {r4, lr}
adds r4, r1, #0
adds r3, r0, #0
adds r3, #0x78
adds r2, r0, #0
adds r2, #0x76
ldrh r1, [r3]
ldrh r0, [r2]
cmp r1, r0
beq _080A1DC8
cmp r1, r0
bls _080A1DB6
adds r3, r0, #0
subs r0, r1, r3
cmp r4, r0
bge _080A1DB2
adds r0, r3, r4
strh r0, [r2]
b _080A1DC8
_080A1DB2:
strh r1, [r2]
b _080A1DC8
_080A1DB6:
ldrh r1, [r2]
ldrh r3, [r3]
subs r0, r1, r3
cmp r4, r0
bge _080A1DC6
subs r0, r1, r4
strh r0, [r2]
b _080A1DC8
_080A1DC6:
strh r3, [r2]
_080A1DC8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A1DCC
sub_080A1DCC: @ 0x080A1DCC
push {r4, lr}
adds r4, r0, #0
ldr r1, [r4, #0x64]
ldr r3, [r1, #8]
cmp r3, #0
bne _080A1DDE
ldr r3, [r1, #0xc]
cmp r3, #0
beq _080A1E24
_080A1DDE:
adds r0, r3, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
beq _080A1E24
ldrb r0, [r3, #0x19]
lsrs r0, r0, #6
cmp r0, #2
bne _080A1E24
ldr r3, [r1, #0x10]
ldrb r2, [r3, #0x10]
movs r1, #0x7f
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0x10]
ldr r0, [r4, #0x64]
ldr r3, [r0, #0x14]
ldrb r2, [r3, #0x10]
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r2, [r3, #0x10]
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r2, [r3, #0x10]
adds r0, r1, #0
ands r0, r2
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r0, [r3, #0x10]
ands r1, r0
b _080A1E50
_080A1E24:
ldr r0, [r4, #0x64]
ldr r2, [r0, #0x10]
ldrb r0, [r2, #0x10]
movs r1, #0x80
orrs r0, r1
strb r0, [r2, #0x10]
ldr r0, [r4, #0x64]
ldr r3, [r0, #0x14]
ldrb r0, [r3, #0x10]
orrs r0, r1
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r0, [r3, #0x10]
orrs r0, r1
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r0, [r3, #0x10]
orrs r0, r1
strb r0, [r3, #0x10]
ldr r3, [r3, #0x54]
ldrb r0, [r3, #0x10]
orrs r1, r0
_080A1E50:
strb r1, [r3, #0x10]
pop {r4, pc}
thumb_func_start sub_080A1E54
sub_080A1E54: @ 0x080A1E54
push {r4, r5, lr}
adds r2, r0, #0
ldrb r0, [r2, #0xe]
adds r0, #1
strb r0, [r2, #0xe]
movs r1, #0xff
ands r0, r1
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _080A1ECA
adds r0, r2, #0
movs r1, #0x51
movs r2, #0
bl CreateFX
adds r4, r0, #0
cmp r4, #0
beq _080A1ECA
bl sub_08000E50
ldr r3, _080A1ECC @ =gUnk_03000BF0
movs r1, #0xf0
adds r2, r0, #0
ands r2, r1
movs r5, #0x80
lsls r5, r5, #2
adds r1, r5, #0
adds r2, r2, r1
ldrh r1, [r3, #6]
adds r1, r1, r2
subs r1, #0x78
strh r1, [r4, #0x2e]
lsrs r0, r0, #8
movs r1, #0x70
ands r0, r1
movs r1, #0x84
lsls r1, r1, #2
adds r0, r0, r1
ldrh r3, [r3, #8]
adds r0, r0, r3
subs r0, #0x38
strh r0, [r4, #0x32]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #5
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
_080A1ECA:
pop {r4, r5, pc}
.align 2, 0
_080A1ECC: .4byte gUnk_03000BF0
thumb_func_start sub_080A1ED0
sub_080A1ED0: @ 0x080A1ED0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
mov sb, r1
adds r5, r2, #0
movs r1, #0
str r1, [sp]
ldr r4, _080A1F60 @ =gUnk_08124EF8
lsls r1, r5, #2
adds r1, r1, r4
ldrh r2, [r1]
ldr r3, _080A1F64 @ =gUnk_03000BF0
ldrh r1, [r3, #6]
adds r2, r2, r1
mov sl, r2
lsls r1, r5, #1
adds r1, #1
lsls r1, r1, #1
adds r1, r1, r4
ldrh r2, [r1]
ldrh r1, [r3, #8]
adds r2, r2, r1
mov r8, r2
ldr r1, _080A1F68 @ =gUnk_08124FF0
lsls r0, r0, #2
adds r0, r0, r1
ldr r4, [r0]
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #1
beq _080A1FB0
lsls r7, r5, #3
movs r0, #0x10
adds r6, r7, #0
eors r6, r0
_080A1F1C:
movs r0, #0x60
mov r1, sb
bl sub_0804AA60
adds r2, r0, #0
cmp r2, #0
beq _080A1FA6
mov r0, sp
ldrb r0, [r0]
strb r0, [r2, #0xb]
ldr r1, [sp]
adds r1, #1
str r1, [sp]
mov r0, sl
strh r0, [r2, #0x2e]
mov r1, r8
strh r1, [r2, #0x32]
strb r7, [r2, #0x15]
adds r0, r2, #0
adds r0, #0x7a
strb r6, [r0]
ldrh r1, [r4, #4]
subs r0, #2
strh r1, [r0]
cmp r5, #1
beq _080A1F7A
cmp r5, #1
blo _080A1F6C
cmp r5, #2
beq _080A1F80
cmp r5, #3
beq _080A1F94
b _080A1FA6
.align 2, 0
_080A1F60: .4byte gUnk_08124EF8
_080A1F64: .4byte gUnk_03000BF0
_080A1F68: .4byte gUnk_08124FF0
_080A1F6C:
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x74
strh r1, [r0]
ldrh r0, [r4, #2]
rsbs r0, r0, #0
b _080A1F8C
_080A1F7A:
ldrh r0, [r4, #2]
adds r0, #0xf0
b _080A1F98
_080A1F80:
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x74
strh r1, [r0]
ldrh r0, [r4, #2]
adds r0, #0xa0
_080A1F8C:
adds r1, r2, #0
adds r1, #0x76
strh r0, [r1]
b _080A1FA6
_080A1F94:
ldrh r0, [r4, #2]
rsbs r0, r0, #0
_080A1F98:
adds r1, r2, #0
adds r1, #0x74
strh r0, [r1]
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x76
strh r1, [r0]
_080A1FA6:
adds r4, #6
movs r1, #0
ldrsh r0, [r4, r1]
cmp r0, #1
bne _080A1F1C
_080A1FB0:
mov r0, sb
cmp r0, #0
bne _080A1FE4
movs r0, #0xf
movs r1, #2
movs r2, #0
bl sub_080A2960
adds r2, r0, #0
cmp r2, #0
beq _080A1FE4
mov r1, sl
strh r1, [r2, #0x2e]
mov r0, r8
strh r0, [r2, #0x32]
ldrb r0, [r2, #0x1b]
movs r1, #0xc0
orrs r0, r1
strb r0, [r2, #0x1b]
ldrb r0, [r2, #0x19]
orrs r0, r1
strb r0, [r2, #0x19]
adds r1, r2, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
_080A1FE4:
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080A1FF0
sub_080A1FF0: @ 0x080A1FF0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
cmp r0, #0
beq _080A2066
subs r1, r0, #1
strb r1, [r5, #0xe]
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x20
bhi _080A2066
movs r0, #0xf
ands r1, r0
cmp r1, #0
bne _080A2066
adds r0, r5, #0
movs r1, #0x51
movs r2, #0
bl CreateFX
adds r4, r0, #0
cmp r4, #0
beq _080A2066
bl sub_08000E50
ldr r3, _080A209C @ =gUnk_03000BF0
movs r1, #0x78
ands r0, r1
movs r1, #0x80
lsls r1, r1, #2
adds r2, r1, #0
adds r2, r0, r2
ldrh r1, [r3, #6]
adds r1, r1, r2
subs r1, #0x3c
strh r1, [r4, #0x2e]
movs r1, #0x84
lsls r1, r1, #2
adds r0, r0, r1
ldrh r3, [r3, #8]
adds r0, r0, r3
subs r0, #0x3c
strh r0, [r4, #0x32]
adds r2, r4, #0
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #6
orrs r0, r1
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
bl sub_08016A04
_080A2066:
adds r4, r5, #0
adds r4, #0x7b
ldrb r0, [r4]
cmp r0, #0
beq _080A20B4
ldr r0, _080A20A0 @ =gLinkEntity
ldr r2, _080A209C @ =gUnk_03000BF0
ldrh r1, [r2, #6]
movs r3, #0x80
lsls r3, r3, #2
adds r1, r1, r3
ldrh r2, [r2, #8]
adds r3, #0x10
adds r2, r2, r3
movs r3, #0x80
lsls r3, r3, #1
bl sub_0806FCB8
cmp r0, #0
beq _080A20B2
ldrb r0, [r5, #0xe]
cmp r0, #0
bne _080A20A4
movs r0, #0x78
strb r0, [r5, #0xe]
b _080A20B4
.align 2, 0
_080A209C: .4byte gUnk_03000BF0
_080A20A0: .4byte gLinkEntity
_080A20A4:
cmp r0, #0x23
bne _080A20B4
movs r0, #0x1e
movs r1, #0
bl sub_08080964
b _080A20B4
_080A20B2:
strb r0, [r4]
_080A20B4:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080A20B8
sub_080A20B8: @ 0x080A20B8
push {r4, lr}
adds r4, r1, #0
cmp r4, #0
bne _080A20C4
movs r0, #1
b _080A20FA
_080A20C4:
bl sub_08079F8C
cmp r0, #0
beq _080A20F8
ldr r0, _080A20F0 @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
bne _080A20F8
movs r1, #0
adds r0, r4, #0
adds r0, #0x7c
ldrb r0, [r0]
cmp r0, #0
bne _080A20EC
ldr r0, _080A20F4 @ =gUnk_03003F80
ldrb r1, [r0, #0x14]
rsbs r0, r1, #0
orrs r0, r1
lsrs r1, r0, #0x1f
_080A20EC:
adds r0, r1, #0
b _080A20FA
.align 2, 0
_080A20F0: .4byte gLinkEntity
_080A20F4: .4byte gUnk_03003F80
_080A20F8:
movs r0, #0
_080A20FA:
pop {r4, pc}
thumb_func_start sub_080A20FC
sub_080A20FC: @ 0x080A20FC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
adds r1, r0, #0
cmp r1, #0
bne _080A2114
adds r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0x1e]
adds r0, r4, #0
bl sub_0807DD64
_080A2114:
adds r0, r4, #0
movs r1, #0
bl sub_0807DDAC
adds r0, r4, #0
bl sub_0807DDE4
pop {r4, pc}
thumb_func_start sub_080A2124
sub_080A2124: @ 0x080A2124
push {lr}
ldr r3, _080A2134 @ =gUnk_08125010
movs r1, #1
movs r2, #0xe
bl sub_08078850
pop {pc}
.align 2, 0
_080A2134: .4byte gUnk_08125010
thumb_func_start sub_080A2138
sub_080A2138: @ 0x080A2138
push {r4, lr}
adds r4, r0, #0
movs r0, #0x72
bl sub_080A3268
ldr r2, _080A2160 @ =gUnk_02002A40
ldrb r0, [r4, #0xb]
adds r0, #0x18
movs r1, #1
lsls r1, r0
ldr r0, [r2, #0x40]
orrs r0, r1
str r0, [r2, #0x40]
adds r0, r4, #0
movs r1, #0x46
movs r2, #0
bl CreateFX
pop {r4, pc}
.align 2, 0
_080A2160: .4byte gUnk_02002A40
thumb_func_start sub_080A2164
sub_080A2164: @ 0x080A2164
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080A21DC
adds r1, r4, #0
adds r1, #0x86
ldrh r0, [r1]
cmp r0, #0
beq _080A2180
bl sub_0807CBE4
cmp r0, #0
beq _080A224E
_080A2180:
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r4, #0x18]
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x19]
subs r0, #0xe
ands r0, r1
movs r1, #8
orrs r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x19]
movs r0, #3
strb r0, [r4, #0x1e]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
ldr r0, _080A21D4 @ =gUnk_03000BF0
ldrb r0, [r0, #5]
strb r0, [r4, #0xf]
movs r0, #2
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x68
ldr r0, _080A21D8 @ =0x0000FFFE
strh r0, [r1]
adds r1, #2
movs r0, #0x80
strh r0, [r1]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0
bl sub_0805EC9C
b _080A221E
.align 2, 0
_080A21D4: .4byte gUnk_03000BF0
_080A21D8: .4byte 0x0000FFFE
_080A21DC:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A221E
movs r0, #2
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x6a
adds r2, r4, #0
adds r2, #0x68
ldrh r0, [r2]
ldrh r3, [r1]
adds r0, r0, r3
strh r0, [r1]
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x77
bhi _080A2208
movs r0, #1
strh r0, [r2]
_080A2208:
ldrh r0, [r1]
cmp r0, #0x88
bls _080A2212
ldr r0, _080A2250 @ =0x0000FFFF
strh r0, [r2]
_080A2212:
ldrh r2, [r1]
adds r0, r4, #0
adds r1, r2, #0
movs r3, #0
bl sub_0805EC9C
_080A221E:
ldr r2, _080A2254 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #8
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
adds r2, #0x62
ldrb r0, [r2]
movs r3, #0xdc
lsls r3, r3, #6
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _080A2258 @ =gUnk_03000BF0
ldrb r0, [r1, #5]
ldrb r4, [r4, #0xf]
cmp r0, r4
beq _080A224E
ldrh r0, [r1]
cmp r0, #0
bne _080A224E
bl sub_0805E780
_080A224E:
pop {r4, pc}
.align 2, 0
_080A2250: .4byte 0x0000FFFF
_080A2254: .4byte gUnk_03000F50
_080A2258: .4byte gUnk_03000BF0
thumb_func_start sub_080A225C
sub_080A225C: @ 0x080A225C
push {lr}
ldr r2, _080A2270 @ =gUnk_0812503C
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A2270: .4byte gUnk_0812503C
thumb_func_start sub_080A2274
sub_080A2274: @ 0x080A2274
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _080A22AE
adds r0, r1, #0
bl sub_080A2340
movs r0, #0xbd
movs r1, #1
movs r2, #0
bl sub_080A2960
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #7]
movs r1, #3
cmp r0, #1
bne _080A229C
movs r1, #2
_080A229C:
movs r0, #0xbd
movs r2, #0
bl sub_080A2960
movs r0, #0xbd
movs r1, #4
movs r2, #0
bl sub_080A2960
_080A22AE:
pop {pc}
thumb_func_start sub_080A22B0
sub_080A22B0: @ 0x080A22B0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _080A22C0
adds r0, r1, #0
bl sub_080A2340
_080A22C0:
pop {pc}
.align 2, 0
thumb_func_start sub_080A22C4
sub_080A22C4: @ 0x080A22C4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r5, [r4, #0xc]
cmp r5, #0
beq _080A22FC
cmp r5, #1
beq _080A231C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080A233E
movs r0, #8
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r4, #0xf]
ldrb r1, [r4, #0xd]
adds r0, r1, r0
strb r0, [r4, #0x1e]
lsls r1, r1, #0x18
lsls r0, r0, #0x18
cmp r1, r0
bne _080A233E
b _080A233A
_080A22FC:
adds r0, r4, #0
bl sub_080A2340
movs r0, #8
strb r0, [r4, #0xe]
strb r5, [r4, #0xf]
ldrb r0, [r4, #0x1e]
strb r0, [r4, #0xd]
bl sub_08000E50
movs r1, #3
ands r0, r1
lsls r0, r0, #4
adds r0, #0x1e
strh r0, [r4, #0x24]
b _080A233E
_080A231C:
ldrh r0, [r4, #0x24]
subs r0, #1
strh r0, [r4, #0x24]
lsls r0, r0, #0x10
cmp r0, #0
bne _080A233E
bl sub_08000E50
movs r1, #7
ands r0, r1
lsls r0, r0, #4
adds r0, #0x1e
strh r0, [r4, #0x24]
movs r0, #2
b _080A233C
_080A233A:
movs r0, #1
_080A233C:
strb r0, [r4, #0xc]
_080A233E:
pop {r4, r5, pc}
thumb_func_start sub_080A2340
sub_080A2340: @ 0x080A2340
ldrb r1, [r0, #0xa]
lsls r1, r1, #3
ldr r2, _080A239C @ =gUnk_08125014
adds r1, r1, r2
ldrh r2, [r1]
strh r2, [r0, #0x2e]
ldrh r2, [r1, #2]
strh r2, [r0, #0x32]
ldrh r2, [r1, #4]
strb r2, [r0, #0x1e]
ldrb r1, [r1, #6]
movs r2, #0x29
adds r2, r2, r0
mov ip, r2
movs r2, #7
ands r2, r1
mov r1, ip
ldrb r3, [r1]
movs r1, #8
rsbs r1, r1, #0
ands r1, r3
orrs r1, r2
mov r2, ip
strb r1, [r2]
ldrb r3, [r0, #0x19]
movs r2, #0x3f
adds r1, r2, #0
ands r1, r3
movs r3, #0x40
orrs r1, r3
strb r1, [r0, #0x19]
ldrb r1, [r0, #0x1b]
ands r2, r1
orrs r2, r3
strb r2, [r0, #0x1b]
ldrb r2, [r0, #0x18]
movs r1, #4
rsbs r1, r1, #0
ands r1, r2
movs r2, #2
orrs r1, r2
strb r1, [r0, #0x18]
movs r1, #1
strb r1, [r0, #0xc]
bx lr
.align 2, 0
_080A239C: .4byte gUnk_08125014
thumb_func_start sub_080A23A0
sub_080A23A0: @ 0x080A23A0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x45
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _080A23C0
ldr r0, _080A23D4 @ =gUnk_020342F8
subs r1, #1
bl sub_0801D5A8
cmp r0, #0
bne _080A23C0
bl sub_0805E780
_080A23C0:
ldr r0, _080A23D8 @ =gUnk_0812505C
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
pop {r4, pc}
.align 2, 0
_080A23D4: .4byte gUnk_020342F8
_080A23D8: .4byte gUnk_0812505C
thumb_func_start sub_080A23DC
sub_080A23DC: @ 0x080A23DC
push {r4, lr}
adds r4, r0, #0
ldr r1, _080A240C @ =gUnk_08125050
ldrb r0, [r4, #0xb]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
adds r2, r4, #0
adds r2, #0x68
strh r0, [r2]
adds r3, r4, #0
adds r3, #0x29
ldrb r0, [r3]
movs r1, #7
orrs r0, r1
strb r0, [r3]
ldrh r0, [r2]
bl sub_0807CBD0
cmp r0, #0
beq _080A2410
movs r0, #2
b _080A2412
.align 2, 0
_080A240C: .4byte gUnk_08125050
_080A2410:
movs r0, #1
_080A2412:
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_08004260
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080A2420
sub_080A2420: @ 0x080A2420
push {r4, lr}
adds r4, r0, #0
adds r0, #0x68
ldrh r0, [r0]
bl sub_0807CBD0
cmp r0, #0
beq _080A243A
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_080A29BC
_080A243A:
pop {r4, pc}
thumb_func_start sub_080A243C
sub_080A243C: @ 0x080A243C
push {lr}
bl sub_08004274
pop {pc}
thumb_func_start nullsub_538
nullsub_538: @ 0x080A2444
bx lr
.align 2, 0
thumb_func_start sub_080A2448
sub_080A2448: @ 0x080A2448
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x86
ldrh r0, [r0]
bl sub_0807CBE4
cmp r0, #0
beq _080A245E
adds r0, r5, #0
bl sub_080A2500
_080A245E:
ldrb r0, [r5, #0xc]
adds r1, r0, #0
cmp r1, #0
bne _080A24CE
adds r0, #1
strb r0, [r5, #0xc]
ldrb r0, [r5, #0xe]
strb r0, [r5, #0xa]
str r1, [r5, #0x54]
ldr r2, _080A24B4 @ =gUnk_03003D90
ldr r4, [r2, #4]
cmp r4, r2
beq _080A24BE
_080A2478:
ldrb r0, [r4, #8]
cmp r0, #3
bne _080A24B8
ldrb r0, [r5, #0xb]
ldrb r1, [r4, #9]
cmp r0, r1
bne _080A24B8
movs r3, #0x2e
ldrsh r0, [r4, r3]
movs r3, #0x2e
ldrsh r1, [r5, r3]
subs r0, r0, r1
adds r0, #0x10
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1f
bhi _080A24B8
movs r1, #0x32
ldrsh r0, [r4, r1]
movs r3, #0x32
ldrsh r1, [r5, r3]
subs r0, r0, r1
adds r0, #0x10
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r0, #0x1f
bhi _080A24B8
str r4, [r5, #0x54]
b _080A24BE
.align 2, 0
_080A24B4: .4byte gUnk_03003D90
_080A24B8:
ldr r4, [r4, #4]
cmp r4, r2
bne _080A2478
_080A24BE:
ldr r0, [r5, #0x54]
cmp r0, #0
bne _080A24CA
adds r0, r5, #0
bl sub_080A2534
_080A24CA:
bl sub_08054564
_080A24CE:
ldr r4, [r5, #0x54]
cmp r4, #0
beq _080A24F6
movs r2, #0x80
lsls r2, r2, #0xb
movs r3, #0x80
lsls r3, r3, #9
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA48
ldrh r0, [r5, #0x36]
subs r0, #4
strh r0, [r5, #0x36]
ldr r0, [r4, #4]
cmp r0, #0
bne _080A24F6
adds r0, r5, #0
bl sub_080A2508
_080A24F6:
adds r0, r5, #0
bl sub_08080CB4
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_080A2500
sub_080A2500: @ 0x080A2500
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_080A2508
sub_080A2508: @ 0x080A2508
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
movs r1, #0
movs r3, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _080A252C
movs r0, #5
strb r0, [r2, #0xe]
adds r0, r4, #0
adds r0, #0x86
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x86
strh r1, [r0]
_080A252C:
adds r0, r4, #0
bl sub_080A2500
pop {r4, pc}
thumb_func_start sub_080A2534
sub_080A2534: @ 0x080A2534
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #0xa]
movs r1, #0
movs r3, #0
bl sub_080A2988
adds r2, r0, #0
cmp r2, #0
beq _080A2558
movs r0, #4
strb r0, [r2, #0xe]
adds r0, r4, #0
adds r0, #0x86
ldrh r1, [r0]
adds r0, r2, #0
adds r0, #0x86
strh r1, [r0]
_080A2558:
adds r0, r4, #0
bl sub_080A2500
pop {r4, pc}
thumb_func_start sub_080A2560
sub_080A2560: @ 0x080A2560
push {lr}
ldr r2, _080A2574 @ =gUnk_08125084
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_080A2574: .4byte gUnk_08125084
thumb_func_start sub_080A2578
sub_080A2578: @ 0x080A2578
push {lr}
movs r1, #8
strb r1, [r0, #0xc]
bl sub_080A259C
pop {pc}
thumb_func_start sub_080A2584
sub_080A2584: @ 0x080A2584
push {lr}
bl sub_0805E564
ldr r1, _080A2598 @ =gUnk_02034490
movs r0, #0
strb r0, [r1]
bl sub_0805E780
pop {pc}
.align 2, 0
_080A2598: .4byte gUnk_02034490
thumb_func_start sub_080A259C
sub_080A259C: @ 0x080A259C
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r5, _080A25DC @ =gLinkEntity
ldrb r1, [r5, #0x10]
movs r7, #0x7f
adds r0, r7, #0
ands r0, r1
strb r0, [r5, #0x10]
ldrb r1, [r5, #0x18]
movs r6, #4
rsbs r6, r6, #0
adds r0, r6, #0
ands r0, r1
strb r0, [r5, #0x18]
ldrb r1, [r5, #0x1a]
lsls r1, r1, #0x1c
lsrs r1, r1, #0x1c
ldrb r2, [r4, #0x1a]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x1a]
ldrb r0, [r4, #0xd]
cmp r0, #1
beq _080A269C
cmp r0, #1
bgt _080A25E0
cmp r0, #0
beq _080A25E6
b _080A273C
.align 2, 0
_080A25DC: .4byte gLinkEntity
_080A25E0:
cmp r0, #2
beq _080A26B4
b _080A273C
_080A25E6:
movs r0, #1
movs r2, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x18]
adds r0, r6, #0
ands r0, r1
orrs r0, r2
strb r0, [r4, #0x18]
adds r0, r5, #0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r4, #0
adds r0, #0x38
strb r1, [r0]
adds r0, r5, #0
adds r0, #0x29
ldrb r1, [r0]
lsls r1, r1, #0x1d
adds r3, r4, #0
adds r3, #0x29
lsrs r1, r1, #0x1d
ldrb r2, [r3]
movs r0, #8
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r3]
ldrb r2, [r5, #0x19]
lsrs r2, r2, #6
lsls r2, r2, #6
ldrb r3, [r4, #0x19]
movs r1, #0x3f
adds r0, r1, #0
ands r0, r3
orrs r0, r2
strb r0, [r4, #0x19]
ldrb r0, [r5, #0x1b]
lsrs r0, r0, #6
lsls r0, r0, #6
ldrb r2, [r4, #0x1b]
ands r1, r2
orrs r1, r0
strb r1, [r4, #0x1b]
ldrb r1, [r4, #0x18]
movs r0, #0x41
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
movs r0, #4
strb r0, [r4, #0x14]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldr r0, _080A2670 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #8
ands r0, r1
cmp r0, #0
beq _080A2678
ldrb r0, [r4, #0xa]
bl sub_080542AC
ldr r1, _080A2674 @ =0x0000045B
cmp r0, #0
beq _080A2688
adds r1, #3
b _080A2688
.align 2, 0
_080A2670: .4byte gUnk_03003F80
_080A2674: .4byte 0x0000045B
_080A2678:
ldrb r0, [r4, #0xa]
bl sub_080542AC
ldr r1, _080A2698 @ =0x000001B9
cmp r0, #0
beq _080A2688
movs r1, #0xb8
lsls r1, r1, #2
_080A2688:
lsrs r0, r1, #8
strh r0, [r4, #0x12]
movs r0, #0xff
ands r1, r0
adds r0, r4, #0
bl sub_080042AC
b _080A273C
.align 2, 0
_080A2698: .4byte 0x000001B9
_080A269C:
adds r0, r4, #0
bl sub_080042B8
adds r0, r4, #0
adds r0, #0x5a
ldrb r0, [r0]
cmp r0, #0
beq _080A273C
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _080A273C
_080A26B4:
adds r0, r4, #0
bl sub_080042B8
ldr r0, _080A2764 @ =gUnk_02000050
ldrb r1, [r0]
adds r0, r7, #0
ands r0, r1
cmp r0, #0
bne _080A2762
adds r0, r4, #0
adds r0, #0x5a
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080A273C
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x69
ldrb r0, [r0]
strb r0, [r5, #0x10]
adds r0, r4, #0
adds r0, #0x68
ldrb r1, [r0]
movs r0, #3
ands r1, r0
ldrb r2, [r5, #0x18]
adds r0, r6, #0
ands r0, r2
orrs r0, r1
strb r0, [r5, #0x18]
adds r0, r4, #0
adds r0, #0x6a
ldrb r1, [r0]
adds r0, r5, #0
adds r0, #0x3d
strb r1, [r0]
ldr r1, _080A2768 @ =gUnk_03003F80
adds r0, r4, #0
adds r0, #0x6b
ldrb r0, [r0]
strb r0, [r1, #7]
adds r0, r4, #0
adds r0, #0x6c
ldrb r0, [r0]
strb r0, [r1, #0xb]
adds r0, r4, #0
adds r0, #0x6d
ldrb r0, [r0]
strb r0, [r1, #0xa]
adds r0, r4, #0
adds r0, #0x6e
ldrb r0, [r0]
adds r2, r1, #0
adds r2, #0x27
strb r0, [r2]
adds r0, r4, #0
adds r0, #0x6f
ldrb r0, [r0]
strb r0, [r1, #0x1a]
ldr r0, [r4, #0x70]
str r0, [r1, #0x30]
adds r0, r4, #0
adds r0, #0x74
ldrb r0, [r0]
adds r1, #0x8a
strb r0, [r1]
_080A273C:
ldr r5, [r4, #0x50]
cmp r5, #0
beq _080A2762
adds r0, r4, #0
adds r1, r5, #0
bl sub_0806FA30
ldrh r0, [r4, #0x12]
ldrb r1, [r4, #0x1e]
bl sub_080700C8
ldrb r1, [r0]
adds r2, r5, #0
adds r2, #0x62
strb r1, [r2]
ldrb r1, [r0, #1]
adds r0, r5, #0
adds r0, #0x63
strb r1, [r0]
_080A2762:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A2764: .4byte gUnk_02000050
_080A2768: .4byte gUnk_03003F80
thumb_func_start sub_080A276C
sub_080A276C: @ 0x080A276C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
adds r4, r1, #0
adds r7, r2, #0
bl sub_0805E744
adds r6, r0, #0
cmp r6, #0
beq _080A2820
movs r0, #0xc1
strb r0, [r6, #9]
movs r0, #6
mov r8, r0
mov r1, r8
strb r1, [r6, #8]
strb r4, [r6, #0xa]
strb r7, [r6, #0xb]
str r5, [r6, #0x50]
adds r0, r6, #0
movs r1, #6
bl sub_0805EA2C
adds r0, r6, #0
movs r1, #6
bl sub_0805EA78
ldr r4, _080A2828 @ =gLinkEntity
adds r0, r4, #0
adds r1, r6, #0
bl sub_0806FA24
ldr r0, _080A282C @ =gUnk_03003DC0
mov r1, r8
strb r1, [r0]
ldr r1, _080A2830 @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
ldrb r0, [r4, #0x10]
adds r1, r6, #0
adds r1, #0x69
strb r0, [r1]
ldrb r0, [r4, #0x18]
lsls r0, r0, #0x1e
lsrs r0, r0, #0x1e
subs r1, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x3d
ldrb r0, [r0]
adds r1, #2
strb r0, [r1]
ldr r1, _080A2834 @ =gUnk_03003F80
ldrb r0, [r1, #7]
adds r2, r6, #0
adds r2, #0x6b
strb r0, [r2]
ldrb r2, [r1, #0xb]
adds r0, r6, #0
adds r0, #0x6c
strb r2, [r0]
ldrb r0, [r1, #0xa]
adds r2, r6, #0
adds r2, #0x6d
strb r0, [r2]
adds r0, r1, #0
adds r0, #0x27
ldrb r0, [r0]
adds r2, #1
strb r0, [r2]
ldrb r0, [r1, #0x1a]
adds r2, #1
strb r0, [r2]
ldr r0, [r1, #0x30]
str r0, [r6, #0x70]
adds r1, #0x8a
ldrb r1, [r1]
adds r0, r6, #0
adds r0, #0x74
strb r1, [r0]
ldrb r1, [r4, #0x10]
movs r0, #0x7f
ands r0, r1
strb r0, [r4, #0x10]
ldrb r1, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r1
strb r0, [r4, #0x18]
_080A2820:
adds r0, r6, #0
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080A2828: .4byte gLinkEntity
_080A282C: .4byte gUnk_03003DC0
_080A2830: .4byte gUnk_02034490
_080A2834: .4byte gUnk_03003F80
thumb_func_start sub_080A2838
sub_080A2838: @ 0x080A2838
push {r4, lr}
adds r4, r0, #0
ldrb r2, [r4, #9]
lsls r2, r2, #3
ldr r0, _080A2858 @ =gUnk_08126798
adds r2, r2, r0
ldrb r1, [r4, #0xa]
adds r0, r4, #0
bl sub_080A285C
cmp r0, #2
bne _080A2856
adds r0, r4, #0
bl sub_08016A04
_080A2856:
pop {r4, pc}
.align 2, 0
_080A2858: .4byte gUnk_08126798
thumb_func_start sub_080A285C
sub_080A285C: @ 0x080A285C
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r2, #0
ldrb r3, [r4, #0x10]
movs r0, #1
ands r0, r3
cmp r0, #0
beq _080A2870
movs r0, #1
b _080A2958
_080A2870:
ldrb r2, [r5]
movs r0, #3
ands r0, r2
cmp r0, #0
bne _080A288C
lsls r0, r2, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
orrs r0, r3
strb r0, [r4, #0x10]
movs r0, #1
b _080A2958
_080A288C:
subs r0, #2
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #1
bhi _080A289C
lsls r1, r1, #3
ldr r0, [r5, #4]
adds r5, r0, r1
_080A289C:
ldrh r0, [r5, #2]
lsls r0, r0, #0x16
lsrs r2, r0, #0x16
adds r1, r2, #0
ldrb r0, [r5, #3]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
cmp r0, #1
beq _080A28BA
cmp r0, #2
bne _080A28C4
adds r0, r4, #0
adds r0, #0x60
strh r2, [r0]
b _080A28D2
_080A28BA:
adds r0, r4, #0
movs r2, #0
bl sub_080AE008
b _080A28CA
_080A28C4:
adds r0, r4, #0
bl sub_080ADF80
_080A28CA:
cmp r0, #0
bne _080A28D2
movs r0, #0
b _080A2958
_080A28D2:
ldrh r0, [r5, #4]
lsls r0, r0, #0x16
lsrs r1, r0, #0x16
adds r0, r4, #0
bl sub_0801D040
movs r1, #0xff
adds r0, r4, #0
adds r0, #0x58
strb r1, [r0]
adds r1, r4, #0
adds r1, #0x40
movs r0, #0x48
strb r0, [r1]
ldrh r0, [r5, #6]
lsls r0, r0, #0x16
lsrs r0, r0, #0x16
strh r0, [r4, #0x12]
ldrb r0, [r5, #5]
movs r3, #3
movs r1, #0x30
ands r1, r0
ldrb r2, [r4, #0x18]
movs r0, #0x31
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldrb r1, [r5, #7]
lsls r1, r1, #0x1b
movs r0, #0x29
adds r0, r0, r4
mov ip, r0
lsrs r1, r1, #0x1d
lsls r1, r1, #3
ldrb r2, [r0]
movs r0, #0x39
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
mov r1, ip
strb r0, [r1]
ldrb r1, [r5, #7]
lsrs r1, r1, #5
ands r1, r3
ldrb r2, [r4, #0x18]
movs r0, #4
rsbs r0, r0, #0
ands r0, r2
orrs r0, r1
strb r0, [r4, #0x18]
ldr r1, _080A295C @ =gUnk_08125104
ldrb r0, [r5, #1]
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
str r0, [r4, #0x48]
ldrb r0, [r5]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1e
lsls r0, r0, #2
movs r1, #1
orrs r0, r1
ldrb r1, [r4, #0x10]
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #2
_080A2958:
pop {r4, r5, pc}
.align 2, 0
_080A295C: .4byte gUnk_08125104
thumb_func_start sub_080A2960
sub_080A2960: @ 0x080A2960
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
adds r6, r1, #0
adds r7, r2, #0
bl sub_0805E678
adds r4, r0, #0
cmp r4, #0
beq _080A2984
movs r0, #6
strb r0, [r4, #8]
strb r5, [r4, #9]
strb r6, [r4, #0xa]
strb r7, [r4, #0xb]
adds r0, r4, #0
movs r1, #6
bl sub_0805EA2C
_080A2984:
adds r0, r4, #0
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080A2988
sub_080A2988: @ 0x080A2988
push {r4, r5, lr}
adds r5, r0, #0
adds r0, r1, #0
adds r1, r2, #0
adds r2, r3, #0
bl sub_080A2960
adds r4, r0, #0
cmp r4, #0
beq _080A29A6
str r5, [r4, #0x50]
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA24
_080A29A6:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0