mirror of
https://github.com/zeldaret/tmc
synced 2026-05-24 07:11:07 -04:00
79890 lines
1.3 MiB
Plaintext
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 |