tmc/asm/code_08055FF4.s

17482 lines
304 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08055FF4
sub_08055FF4: @ 0x08055FF4
push {lr}
movs r2, #0
ldr r0, _0805600C @ =gUnk_03000FF0
ldrh r1, [r0]
movs r0, #0xf
ands r0, r1
cmp r0, #0xf
bne _08056006
movs r2, #1
_08056006:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0805600C: .4byte gUnk_03000FF0
thumb_func_start sub_08056010
sub_08056010: @ 0x08056010
ldr r1, _0805601C @ =gUnk_03001000
movs r2, #0
strb r0, [r1, #2]
strb r2, [r1, #3]
strb r2, [r1, #4]
bx lr
.align 2, 0
_0805601C: .4byte gUnk_03001000
thumb_func_start sub_08056020
sub_08056020: @ 0x08056020
push {r4, lr}
ldr r2, _08056088 @ =0x04000208
movs r1, #0
strh r1, [r2]
ldr r0, _0805608C @ =0x04000200
strh r1, [r0]
ldr r0, _08056090 @ =0x04000004
strh r1, [r0]
ldr r0, _08056094 @ =0x04000202
strh r1, [r0]
strh r1, [r2]
ldr r1, _08056098 @ =0x040000B0
ldrh r2, [r1, #0xa]
ldr r4, _0805609C @ =0x0000C5FF
adds r0, r4, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r2, [r1, #0xa]
ldr r3, _080560A0 @ =0x00007FFF
adds r0, r3, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r0, [r1, #0xa]
adds r1, #0xc
ldrh r2, [r1, #0xa]
adds r0, r4, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r2, [r1, #0xa]
adds r0, r3, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r0, [r1, #0xa]
adds r1, #0xc
ldrh r2, [r1, #0xa]
adds r0, r4, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r2, [r1, #0xa]
adds r0, r3, #0
ands r0, r2
strh r0, [r1, #0xa]
ldrh r0, [r1, #0xa]
ldr r0, _080560A4 @ =0x040000D4
ldrh r1, [r0, #0xa]
ands r4, r1
strh r4, [r0, #0xa]
ldrh r1, [r0, #0xa]
ands r3, r1
strh r3, [r0, #0xa]
ldrh r0, [r0, #0xa]
pop {r4, pc}
.align 2, 0
_08056088: .4byte 0x04000208
_0805608C: .4byte 0x04000200
_08056090: .4byte 0x04000004
_08056094: .4byte 0x04000202
_08056098: .4byte 0x040000B0
_0805609C: .4byte 0x0000C5FF
_080560A0: .4byte 0x00007FFF
_080560A4: .4byte 0x040000D4
thumb_func_start sub_080560A8
sub_080560A8: @ 0x080560A8
push {lr}
bl sub_08056020
movs r0, #0xde
bl SoftReset
pop {pc}
.align 2, 0
thumb_func_start sub_080560B8
sub_080560B8: @ 0x080560B8
push {r4, lr}
bl sub_08056134
cmp r0, #0
bne _080560F8
movs r0, #0x80
lsls r0, r0, #0x12
bl sub_0807CF30
adds r1, r0, #0
movs r0, #1
rsbs r0, r0, #0
cmp r1, r0
blt _080560E4
cmp r1, #0
ble _080560E4
cmp r1, #1
bne _080560E4
bl sub_08056134
cmp r0, #0
bne _080560F8
_080560E4:
ldr r0, _08056128 @ =gUnk_08100CD4
movs r4, #0x80
lsls r4, r4, #0x12
adds r1, r4, #0
movs r2, #0x10
bl sub_0801D66C
adds r0, r4, #0
bl sub_0807CF10
_080560F8:
ldr r2, _0805612C @ =gUnk_02000010
ldr r1, [r2]
ldr r0, _08056130 @ =0x4D435A33
eors r1, r0
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
ldrb r1, [r2, #4]
cmp r1, #0
beq _08056112
cmp r1, #0xc1
beq _08056112
movs r0, #1
_08056112:
cmp r0, #0
beq _08056124
ldr r4, _0805612C @ =gUnk_02000010
adds r0, r4, #0
movs r1, #0x20
bl sub_0801D630
ldr r0, _08056130 @ =0x4D435A33
str r0, [r4]
_08056124:
pop {r4, pc}
.align 2, 0
_08056128: .4byte gUnk_08100CD4
_0805612C: .4byte gUnk_02000010
_08056130: .4byte 0x4D435A33
thumb_func_start sub_08056134
sub_08056134: @ 0x08056134
push {lr}
movs r2, #0x80
lsls r2, r2, #0x12
ldr r1, [r2]
ldr r0, _08056164 @ =0x4D435A33
cmp r1, r0
bne _08056160
ldrb r0, [r2, #4]
cmp r0, #2
bhi _08056160
ldrb r0, [r2, #5]
cmp r0, #2
bhi _08056160
ldrb r0, [r2, #6]
cmp r0, #2
bhi _08056160
ldrb r0, [r2, #7]
cmp r0, #1
bne _08056160
ldrb r0, [r2, #0xe]
cmp r0, #0
beq _08056168
_08056160:
movs r0, #0
b _0805616A
.align 2, 0
_08056164: .4byte 0x4D435A33
_08056168:
movs r0, #1
_0805616A:
pop {pc}
thumb_func_start sub_0805616C
sub_0805616C: @ 0x0805616C
push {lr}
ldr r0, _080561E8 @ =0x80040000
bl sub_080A3268
ldr r0, _080561EC @ =gUnk_03000F50
adds r3, r0, #0
adds r3, #0x6c
ldrb r2, [r3]
adds r0, #0x6d
movs r1, #0
strb r2, [r0]
strb r1, [r3]
ldr r1, _080561F0 @ =0x040000B0
ldrh r2, [r1, #0xa]
ldr r0, _080561F4 @ =0x0000C5FF
ands r0, r2
strh r0, [r1, #0xa]
ldrh r2, [r1, #0xa]
ldr r0, _080561F8 @ =0x00007FFF
ands r0, r2
strh r0, [r1, #0xa]
ldrh r0, [r1, #0xa]
ldr r0, [r1, #8]
movs r2, #0x80
lsls r2, r2, #0x18
cmp r0, #0
bge _080561AA
_080561A2:
ldr r0, [r1, #8]
ands r0, r2
cmp r0, #0
bne _080561A2
_080561AA:
ldr r2, _080561FC @ =0x040000BC
ldr r0, [r2, #8]
movs r1, #0x80
lsls r1, r1, #0x18
cmp r0, #0
bge _080561BE
_080561B6:
ldr r0, [r2, #8]
ands r0, r1
cmp r0, #0
bne _080561B6
_080561BE:
ldr r2, _08056200 @ =0x040000C8
ldr r0, [r2, #8]
movs r1, #0x80
lsls r1, r1, #0x18
cmp r0, #0
bge _080561D2
_080561CA:
ldr r0, [r2, #8]
ands r0, r1
cmp r0, #0
bne _080561CA
_080561D2:
ldr r2, _08056204 @ =0x040000D4
ldr r0, [r2, #8]
movs r1, #0x80
lsls r1, r1, #0x18
cmp r0, #0
bge _080561E6
_080561DE:
ldr r0, [r2, #8]
ands r0, r1
cmp r0, #0
bne _080561DE
_080561E6:
pop {pc}
.align 2, 0
_080561E8: .4byte 0x80040000
_080561EC: .4byte gUnk_03000F50
_080561F0: .4byte 0x040000B0
_080561F4: .4byte 0x0000C5FF
_080561F8: .4byte 0x00007FFF
_080561FC: .4byte 0x040000BC
_08056200: .4byte 0x040000C8
_08056204: .4byte 0x040000D4
thumb_func_start sub_08056208
sub_08056208: @ 0x08056208
push {lr}
ldr r0, _08056224 @ =0x80060000
bl sub_080A3268
ldr r0, _08056228 @ =gUnk_03000F50
adds r3, r0, #0
adds r3, #0x6d
ldrb r2, [r3]
adds r0, #0x6c
movs r1, #0
strb r2, [r0]
strb r1, [r3]
pop {pc}
.align 2, 0
_08056224: .4byte 0x80060000
_08056228: .4byte gUnk_03000F50
thumb_func_start sub_0805622C
sub_0805622C: @ 0x0805622C
ldr r3, _08056248 @ =gUnk_03000F50
str r0, [r3, #0x70]
str r1, [r3, #0x74]
str r2, [r3, #0x78]
adds r3, #0x6c
movs r2, #1
movs r0, #1
strb r0, [r3]
ldr r1, _0805624C @ =gUnk_03003DE4
ldrb r0, [r1]
eors r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_08056248: .4byte gUnk_03000F50
_0805624C: .4byte gUnk_03003DE4
thumb_func_start sub_08056250
sub_08056250: @ 0x08056250
ldr r0, _0805625C @ =gUnk_03000F50
adds r0, #0x6c
movs r1, #0
strb r1, [r0]
bx lr
.align 2, 0
_0805625C: .4byte gUnk_03000F50
thumb_func_start sub_08056260
sub_08056260: @ 0x08056260
push {r4, r5, r6, lr}
mov r6, sb
mov r5, r8
push {r5, r6}
movs r1, #0x80
lsls r1, r1, #0x13
movs r0, #0x80
strh r0, [r1]
ldr r1, _080562B8 @ =0x04000132
ldr r2, _080562BC @ =0x00008304
adds r0, r2, #0
strh r0, [r1]
ldr r6, _080562C0 @ =0x04000208
movs r0, #0
mov r8, r0
strh r0, [r6]
ldr r5, _080562C4 @ =0x04000200
ldrh r4, [r5]
movs r1, #0xc0
lsls r1, r1, #6
adds r0, r1, #0
strh r0, [r5]
movs r2, #1
mov sb, r2
strh r2, [r6]
bl SoundBiasReset
svc #3
bl SoundBiasSet
mov r0, r8
strh r0, [r6]
strh r4, [r5]
mov r1, sb
strh r1, [r6]
ldr r0, _080562C8 @ =gUnk_03001000
ldrb r1, [r0, #1]
mov r2, r8
strb r2, [r0, #1]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, pc}
.align 2, 0
_080562B8: .4byte 0x04000132
_080562BC: .4byte 0x00008304
_080562C0: .4byte 0x04000208
_080562C4: .4byte 0x04000200
_080562C8: .4byte gUnk_03001000
thumb_func_start sub_080562CC
sub_080562CC: @ 0x080562CC
push {r4, r5, r6, lr}
ldr r6, _080562FC @ =gUnk_03000BF0
movs r4, #0xa
ldrsh r5, [r6, r4]
ldrh r4, [r6, #6]
subs r5, r5, r4
subs r5, r5, r0
adds r5, #0xf0
movs r4, #0xc
ldrsh r0, [r6, r4]
ldrh r4, [r6, #8]
subs r0, r0, r4
subs r0, r0, r1
adds r0, #0xa0
adds r2, #0xf0
adds r3, #0xa0
movs r1, #0
cmp r5, r2
bhs _080562F8
cmp r0, r3
bhs _080562F8
movs r1, #1
_080562F8:
adds r0, r1, #0
pop {r4, r5, r6, pc}
.align 2, 0
_080562FC: .4byte gUnk_03000BF0
thumb_func_start sub_08056300
sub_08056300: @ 0x08056300
push {r4, lr}
adds r4, r0, #0
b _0805631C
_08056306:
ldrh r0, [r4, #2]
ldrh r1, [r4, #4]
ldrh r2, [r4, #6]
ldrh r3, [r4, #8]
bl sub_080562CC
cmp r0, #0
beq _0805631A
ldrh r0, [r4]
b _08056324
_0805631A:
adds r4, #0xa
_0805631C:
ldrh r0, [r4]
cmp r0, #0xff
bne _08056306
movs r0, #0xff
_08056324:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08056328
sub_08056328: @ 0x08056328
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_08056330
sub_08056330: @ 0x08056330
push {lr}
bl sub_0805E780
pop {pc}
thumb_func_start sub_08056338
sub_08056338: @ 0x08056338
push {lr}
movs r2, #1
rsbs r2, r2, #0
ldr r0, _08056358 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _08056354
ldr r1, _0805635C @ =gUnk_02000040
ldrb r0, [r1]
cmp r0, #3
bne _08056354
ldrb r2, [r1, #1]
_08056354:
adds r0, r2, #0
pop {pc}
.align 2, 0
_08056358: .4byte gUnk_02000050
_0805635C: .4byte gUnk_02000040
thumb_func_start sub_08056360
sub_08056360: @ 0x08056360
push {lr}
ldr r2, _08056374 @ =gUnk_02000050
ldrb r1, [r2]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _08056372
movs r0, #0x88
strb r0, [r2]
_08056372:
pop {pc}
.align 2, 0
_08056374: .4byte gUnk_02000050
thumb_func_start sub_08056378
sub_08056378: @ 0x08056378
push {lr}
adds r2, r0, #0
ldr r0, _0805638C @ =gUnk_03000BF0
ldr r1, [r0, #0x30]
cmp r1, #0
beq _08056390
adds r0, r2, #0
bl sub_08056398
b _08056396
.align 2, 0
_0805638C: .4byte gUnk_03000BF0
_08056390:
adds r0, r2, #0
bl sub_080563EC
_08056396:
pop {pc}
thumb_func_start sub_08056398
sub_08056398: @ 0x08056398
push {r4, lr}
adds r4, r1, #0
bl sub_080563EC
movs r1, #0x32
ldrsh r0, [r4, r1]
movs r2, #0x36
ldrsh r1, [r4, r2]
adds r0, r0, r1
ldr r1, _080563C0 @ =gUnk_03000BF0
movs r2, #0xc
ldrsh r1, [r1, r2]
subs r0, r0, r1
cmp r0, #0x58
ble _080563BC
ldr r1, _080563C4 @ =gUnk_02000050
movs r0, #1
strb r0, [r1, #7]
_080563BC:
pop {r4, pc}
.align 2, 0
_080563C0: .4byte gUnk_03000BF0
_080563C4: .4byte gUnk_02000050
thumb_func_start sub_080563C8
sub_080563C8: @ 0x080563C8
push {lr}
adds r2, r1, #0
movs r1, #1
bl sub_080563D4
pop {pc}
thumb_func_start sub_080563D4
sub_080563D4: @ 0x080563D4
push {r4, r5, lr}
adds r4, r1, #0
adds r5, r2, #0
bl sub_080563EC
ldr r0, _080563E8 @ =gUnk_02000050
strb r4, [r0, #6]
strb r5, [r0, #7]
pop {r4, r5, pc}
.align 2, 0
_080563E8: .4byte gUnk_02000050
thumb_func_start sub_080563EC
sub_080563EC: @ 0x080563EC
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08056414 @ =gUnk_02000050
adds r0, r4, #0
movs r1, #0x20
bl sub_0801D630
strh r5, [r4, #8]
movs r0, #0x63
strb r0, [r4, #2]
movs r0, #0x1a
strb r0, [r4, #4]
movs r0, #4
strb r0, [r4, #5]
movs r1, #1
strb r1, [r4, #6]
movs r0, #0xc
strb r0, [r4, #7]
strb r1, [r4]
pop {r4, r5, pc}
.align 2, 0
_08056414: .4byte gUnk_02000050
thumb_func_start sub_08056418
sub_08056418: @ 0x08056418
push {lr}
ldr r0, _08056444 @ =gUnk_02000050
movs r1, #0x20
bl sub_0801D630
ldr r0, _08056448 @ =gUnk_02022780
movs r1, #0xa8
bl sub_0801D630
ldr r0, _0805644C @ =gUnk_02036A40
movs r1, #8
bl sub_0801D630
ldr r0, _08056450 @ =gUnk_02036A38
movs r1, #8
bl sub_0801D630
ldr r0, _08056454 @ =gUnk_02000040
movs r1, #4
bl sub_0801D630
pop {pc}
.align 2, 0
_08056444: .4byte gUnk_02000050
_08056448: .4byte gUnk_02022780
_0805644C: .4byte gUnk_02036A40
_08056450: .4byte gUnk_02036A38
_08056454: .4byte gUnk_02000040
thumb_func_start sub_08056458
sub_08056458: @ 0x08056458
push {r4, r5, lr}
ldr r0, _08056484 @ =gUnk_02000050
ldrb r0, [r0]
cmp r0, #1
bne _08056470
ldr r0, _08056488 @ =gUnk_02022780
movs r1, #0xa8
bl sub_0801D630
movs r0, #1
bl sub_080564C8
_08056470:
ldr r2, _08056488 @ =gUnk_02022780
adds r1, r2, #0
adds r1, #0x8a
ldrb r0, [r1]
cmp r0, #0
beq _0805648C
subs r0, #1
strb r0, [r1]
b _080564A2
.align 2, 0
_08056484: .4byte gUnk_02000050
_08056488: .4byte gUnk_02022780
_0805648C:
ldr r5, _080564C0 @ =gUnk_08107BC8
adds r4, r2, #0
adds r4, #0x88
_08056492:
ldrb r0, [r4]
lsls r0, r0, #2
adds r0, r0, r5
ldr r0, [r0]
bl _call_via_r0
cmp r0, #0
bne _08056492
_080564A2:
ldr r0, _080564C4 @ =gUnk_02022780
adds r1, r0, #0
adds r1, #0x9d
ldrb r0, [r1]
cmp r0, #0
beq _080564B6
movs r0, #0
strb r0, [r1]
bl sub_08056F70
_080564B6:
bl sub_08056C68
bl sub_08056D70
pop {r4, r5, pc}
.align 2, 0
_080564C0: .4byte gUnk_08107BC8
_080564C4: .4byte gUnk_02022780
thumb_func_start sub_080564C8
sub_080564C8: @ 0x080564C8
ldr r1, _080564D8 @ =gUnk_02022780
adds r2, r1, #0
adds r2, #0x88
movs r3, #0
strb r0, [r2]
adds r1, #0x89
strb r3, [r1]
bx lr
.align 2, 0
_080564D8: .4byte gUnk_02022780
thumb_func_start sub_080564DC
sub_080564DC: @ 0x080564DC
ldr r0, _080564E8 @ =gUnk_02022780
adds r0, #0x99
movs r1, #0
strb r1, [r0]
movs r0, #0
bx lr
.align 2, 0
_080564E8: .4byte gUnk_02022780
thumb_func_start sub_080564EC
sub_080564EC: @ 0x080564EC
push {r4, lr}
ldr r0, _08056598 @ =gUnk_02036A40
movs r1, #8
bl sub_0801D630
ldr r0, _0805659C @ =gUnk_02024030
movs r1, #0x18
bl sub_0801D630
ldr r4, _080565A0 @ =gUnk_02022780
adds r0, r4, #0
movs r1, #0xa8
bl sub_0801D630
ldr r0, _080565A4 @ =gUnk_02000050
adds r1, r4, #0
movs r2, #0x20
bl sub_0801D66C
ldrb r0, [r4, #2]
cmp r0, #0x63
bne _08056520
movs r0, #0x80
lsls r0, r0, #0x12
ldrb r0, [r0, #5]
strb r0, [r4, #2]
_08056520:
adds r1, r4, #0
adds r1, #0x9c
movs r0, #0xff
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x20
ldrh r1, [r4, #8]
bl sub_0805EEB4
adds r3, r4, #0
adds r3, #0x5c
movs r0, #2
strb r0, [r3]
movs r0, #0xe
strb r0, [r3, #1]
adds r3, #2
movs r2, #0
ldr r0, _080565A8 @ =gUnk_02002A40
adds r0, #0x80
ldrb r1, [r0]
cmp r1, #0
beq _08056560
adds r4, r0, #0
_0805654E:
strb r1, [r3]
adds r3, #1
adds r2, #1
cmp r2, #5
bhi _08056560
adds r0, r2, r4
ldrb r1, [r0]
cmp r1, #0
bne _0805654E
_08056560:
movs r0, #2
strb r0, [r3]
movs r0, #0xf
strb r0, [r3, #1]
movs r0, #0
strb r0, [r3, #2]
ldr r4, _080565A0 @ =gUnk_02022780
adds r0, r4, #0
bl sub_08056FBC
ldr r0, _080565AC @ =gUnk_08107BE0
str r0, [r4, #0x2c]
ldr r0, _080565B0 @ =gUnk_02000D00
str r0, [r4, #0x58]
adds r4, #0x54
movs r0, #0xd0
strh r0, [r4]
movs r0, #2
bl sub_08056C54
movs r0, #0
bl sub_08056BDC
movs r0, #2
bl sub_080564C8
movs r0, #1
pop {r4, pc}
.align 2, 0
_08056598: .4byte gUnk_02036A40
_0805659C: .4byte gUnk_02024030
_080565A0: .4byte gUnk_02022780
_080565A4: .4byte gUnk_02000050
_080565A8: .4byte gUnk_02002A40
_080565AC: .4byte gUnk_08107BE0
_080565B0: .4byte gUnk_02000D00
thumb_func_start sub_080565B4
sub_080565B4: @ 0x080565B4
push {r4, lr}
ldr r4, _080565F4 @ =gUnk_02022780
adds r1, r4, #0
adds r1, #0x89
ldrb r0, [r1]
cmp r0, #0
bne _080565DA
movs r0, #1
strb r0, [r1]
adds r1, #0x10
strb r0, [r1]
ldrb r0, [r4, #3]
subs r1, #0x46
ldrb r1, [r1]
bl sub_08056F88
movs r0, #0x65
bl sub_080A3268
_080565DA:
movs r0, #1
bl sub_08056CC0
cmp r0, #0
beq _080565F0
adds r1, r4, #0
adds r1, #0x99
movs r0, #2
strb r0, [r1]
bl sub_080564C8
_080565F0:
movs r0, #0
pop {r4, pc}
.align 2, 0
_080565F4: .4byte gUnk_02022780
thumb_func_start sub_080565F8
sub_080565F8: @ 0x080565F8
push {r4, lr}
ldr r4, _0805663C @ =gUnk_02022780
adds r1, r4, #0
adds r1, #0x89
ldrb r0, [r1]
cmp r0, #0
bne _0805661C
movs r0, #1
strb r0, [r1]
adds r1, #0x10
movs r0, #3
strb r0, [r1]
movs r0, #0
bl sub_08056BDC
movs r0, #0x66
bl sub_080A3268
_0805661C:
movs r0, #1
rsbs r0, r0, #0
bl sub_08056CC0
cmp r0, #0
beq _08056636
adds r1, r4, #0
adds r1, #0x99
movs r0, #0
strb r0, [r1]
movs r0, #2
bl sub_080564C8
_08056636:
movs r0, #0
pop {r4, pc}
.align 2, 0
_0805663C: .4byte gUnk_02022780
thumb_func_start sub_08056640
sub_08056640: @ 0x08056640
push {lr}
movs r0, #0
bl sub_08056C54
movs r0, #0
bl sub_080564C8
movs r0, #0
pop {pc}
.align 2, 0
thumb_func_start sub_08056654
sub_08056654: @ 0x08056654
push {lr}
movs r0, #4
bl sub_08056C54
ldr r2, _0805667C @ =gUnk_08107BF4
ldr r0, _08056680 @ =gUnk_02022780
adds r1, r0, #0
adds r1, #0x89
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
movs r0, #0
bl sub_08056CC0
movs r0, #0
pop {pc}
.align 2, 0
_0805667C: .4byte gUnk_08107BF4
_08056680: .4byte gUnk_02022780
thumb_func_start sub_08056684
sub_08056684: @ 0x08056684
push {r4, lr}
adds r2, r0, #0
ldr r4, _080566AC @ =gUnk_02022780
adds r0, r4, #0
adds r0, #0x20
ldrb r1, [r0]
movs r3, #1
adds r0, r3, #0
ands r0, r1
cmp r0, #0
bne _080566B0
adds r0, r4, #0
adds r0, #0x99
ldrb r0, [r0]
cmp r0, #0
bne _080566B6
movs r0, #5
bl sub_080564C8
b _080566B6
.align 2, 0
_080566AC: .4byte gUnk_02022780
_080566B0:
adds r0, r2, #0
adds r0, #0x89
strb r3, [r0]
_080566B6:
pop {r4, pc}
thumb_func_start sub_080566B8
sub_080566B8: @ 0x080566B8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x95
ldrb r0, [r1]
cmp r0, #0
beq _080566CC
subs r0, #1
strb r0, [r1]
b _0805674E
_080566CC:
ldr r0, _08056740 @ =gUnk_03000FF0
ldrh r1, [r0]
movs r0, #2
ands r0, r1
movs r2, #1
cmp r0, #0
beq _080566DC
movs r2, #8
_080566DC:
adds r1, r4, #0
adds r1, #0x92
ldrb r0, [r1]
subs r0, r0, r2
strb r0, [r1]
lsls r0, r0, #0x18
adds r7, r1, #0
cmp r0, #0
bgt _0805674E
movs r5, #0
ldr r2, _08056744 @ =gUnk_08107C0C
_080566F2:
adds r5, #1
ldrb r0, [r4, #2]
adds r0, r0, r2
ldrb r0, [r0]
ldrb r3, [r1]
adds r0, r0, r3
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
ble _080566F2
movs r6, #0
_08056708:
adds r0, r4, #0
bl sub_08056750
lsls r0, r0, #0x10
lsrs r1, r0, #0x10
cmp r1, #0
beq _08056732
adds r0, r4, #0
adds r0, #0x95
ldrb r0, [r0]
cmp r0, #0
bne _08056732
adds r0, r4, #0
adds r0, #0x8a
ldrb r0, [r0]
cmp r0, #0
bne _08056732
adds r6, r6, r1
subs r5, #1
cmp r5, #0
bgt _08056708
_08056732:
cmp r6, #0
beq _0805674C
ldr r0, _08056748 @ =gUnk_02022780
adds r0, #0x9d
movs r1, #1
strb r1, [r0]
b _0805674E
.align 2, 0
_08056740: .4byte gUnk_03000FF0
_08056744: .4byte gUnk_08107C0C
_08056748: .4byte gUnk_02022780
_0805674C:
strb r6, [r7]
_0805674E:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08056750
sub_08056750: @ 0x08056750
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrh r7, [r5, #0x24]
cmp r7, #0
beq _0805675C
b _0805694C
_0805675C:
adds r4, r5, #0
adds r4, #0x20
adds r0, r4, #0
bl sub_0805EFE8
adds r7, r0, #0
cmp r7, #0xe
bls _0805676E
b _08056942
_0805676E:
lsls r0, r7, #2
ldr r1, _08056778 @ =_0805677C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08056778: .4byte _0805677C
_0805677C: @ jump table
.4byte _080567B8 @ case 0
.4byte _080567DE @ case 1
.4byte _08056802 @ case 2
.4byte _0805680A @ case 3
.4byte _08056812 @ case 4
.4byte _08056838 @ case 5
.4byte _08056844 @ case 6
.4byte _08056858 @ case 7
.4byte _0805688C @ case 8
.4byte _08056894 @ case 9
.4byte _080568AC @ case 10
.4byte _08056942 @ case 11
.4byte _080568B2 @ case 12
.4byte _08056914 @ case 13
.4byte _0805693A @ case 14
_080567B8:
ldr r0, _080567D4 @ =gUnk_02000040
ldrb r0, [r0]
cmp r0, #1
bne _080567D8
adds r1, r5, #0
adds r1, #0x89
movs r0, #5
strb r0, [r1]
movs r0, #0
movs r1, #0
bl sub_08056ABC
b _08056942
.align 2, 0
_080567D4: .4byte gUnk_02000040
_080567D8:
adds r1, r5, #0
adds r1, #0x89
b _0805692C
_080567DE:
adds r1, r5, #0
adds r1, #0x8a
movs r0, #2
strb r0, [r1]
adds r0, r5, #0
adds r0, #0x98
ldrb r0, [r0]
cmp r0, #0
bne _080567F8
movs r0, #1
bl sub_08056BDC
b _08056942
_080567F8:
adds r1, r5, #0
adds r1, #0x89
movs r0, #3
strb r0, [r1]
b _08056942
_08056802:
movs r0, #3
bl sub_080564C8
b _08056942
_0805680A:
movs r0, #4
bl sub_080564C8
b _08056942
_08056812:
adds r0, r4, #0
movs r1, #0
bl sub_0805F324
adds r3, r0, #0
adds r4, r5, #0
adds r4, #0x56
adds r0, r5, #0
adds r0, #0x54
ldrh r0, [r0]
ldrh r2, [r4]
subs r0, r0, r2
subs r0, r0, r3
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r2, r2, r0
strh r2, [r4]
b _08056942
_08056838:
ldr r1, _08056840 @ =gUnk_02000050
ldrh r0, [r5, #0x22]
strb r0, [r1, #1]
b _08056942
.align 2, 0
_08056840: .4byte gUnk_02000050
_08056844:
ldr r0, _08056854 @ =gUnk_0200005C
ldrh r1, [r5, #0x22]
movs r2, #0x1f
ands r1, r2
bl sub_0801D5BC
b _08056942
.align 2, 0
_08056854: .4byte gUnk_0200005C
_08056858:
ldrh r3, [r5, #0x22]
cmp r3, #0xe
beq _08056864
cmp r3, #0xf
beq _08056874
b _0805687A
_08056864:
adds r0, r5, #0
adds r0, #0x8f
ldrb r0, [r0]
adds r1, r5, #0
adds r1, #0x91
strb r0, [r1]
movs r3, #2
b _0805687A
_08056874:
adds r0, r5, #0
adds r0, #0x91
ldrb r3, [r0]
_0805687A:
adds r1, r5, #0
adds r1, #0x90
movs r0, #0
strb r0, [r1]
adds r0, r5, #0
adds r1, r3, #0
bl sub_080569C4
b _08056942
_0805688C:
ldrh r0, [r5, #0x22]
bl sub_080A3268
b _08056942
_08056894:
ldr r1, _080568A8 @ =gUnk_02022780
ldrh r0, [r5, #0x22]
strb r0, [r1, #3]
ldrh r0, [r5, #0x22]
adds r1, r5, #0
adds r1, #0x53
ldrb r1, [r1]
bl sub_08056F88
b _08056942
.align 2, 0
_080568A8: .4byte gUnk_02022780
_080568AC:
ldrh r0, [r5, #0x22]
strb r0, [r5, #7]
b _08056942
_080568B2:
ldr r6, _0805690C @ =gUnk_02000040
ldrb r0, [r6]
cmp r0, #1
beq _080568D2
adds r0, r6, #0
movs r1, #4
bl sub_0801D630
ldr r4, _08056910 @ =gUnk_02024030
adds r0, r4, #0
movs r1, #0x18
bl sub_0801D630
movs r0, #1
strb r0, [r4]
strb r0, [r6]
_080568D2:
ldr r2, _08056910 @ =gUnk_02024030
movs r0, #2
ldrsb r0, [r2, r0]
cmp r0, #3
bgt _08056942
lsls r0, r0, #1
adds r1, r2, #0
adds r1, #0x10
adds r0, r0, r1
ldrh r1, [r5, #0x26]
strh r1, [r0]
movs r0, #2
ldrsb r0, [r2, r0]
lsls r0, r0, #1
adds r1, r2, #0
adds r1, #8
adds r0, r0, r1
adds r3, r5, #0
adds r3, #0x56
ldrh r1, [r3]
strh r1, [r0]
ldrb r0, [r2, #2]
adds r0, #1
strb r0, [r2, #2]
ldrh r0, [r3]
adds r0, #8
strh r0, [r3]
b _08056942
.align 2, 0
_0805690C: .4byte gUnk_02000040
_08056910: .4byte gUnk_02024030
_08056914:
ldrh r3, [r5, #0x22]
cmp r3, #0xfe
beq _08056928
cmp r3, #0xff
bne _08056932
adds r1, r5, #0
adds r1, #0x8e
movs r0, #1
strb r0, [r1]
b _08056942
_08056928:
adds r1, r5, #0
adds r1, #0x8e
_0805692C:
movs r0, #2
strb r0, [r1]
b _08056942
_08056932:
adds r0, r5, #0
adds r0, #0x95
strb r3, [r0]
b _08056942
_0805693A:
ldrh r1, [r5, #0x22]
adds r0, r5, #0
adds r0, #0x94
strb r1, [r0]
_08056942:
lsrs r0, r7, #8
cmp r0, #0
bne _0805694C
movs r0, #0
b _080569C2
_0805694C:
ldr r0, _08056960 @ =gUnk_02022780
adds r0, #0x99
ldrb r0, [r0]
cmp r0, #2
beq _08056964
movs r0, #3
bl sub_080564C8
movs r0, #0
b _080569C2
.align 2, 0
_08056960: .4byte gUnk_02022780
_08056964:
ldr r1, _08056994 @ =gUnk_02000050
ldrb r0, [r1, #1]
cmp r0, #0
bne _08056970
movs r0, #0x80
strb r0, [r1, #1]
_08056970:
movs r0, #0
strh r0, [r5, #0x24]
lsrs r0, r7, #8
cmp r0, #7
bne _08056998
adds r0, r5, #0
adds r0, #0x8f
ldrb r0, [r0]
movs r1, #0x80
adds r2, r5, #0
adds r2, #0x90
orrs r1, r0
strb r1, [r2]
adds r0, r5, #0
movs r1, #0
bl sub_080569C4
b _080569B4
.align 2, 0
_08056994: .4byte gUnk_02000050
_08056998:
adds r2, r5, #0
adds r2, #0x90
ldrb r1, [r2]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _080569B4
ldrb r3, [r2]
movs r0, #0
strb r0, [r2]
adds r0, r5, #0
adds r1, r3, #0
bl sub_080569C4
_080569B4:
adds r1, r5, #0
adds r1, #0x50
adds r0, r7, #0
bl sub_0805F7DC
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
_080569C2:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_080569C4
sub_080569C4: @ 0x080569C4
movs r2, #7
ands r2, r1
adds r1, r0, #0
adds r1, #0x8f
strb r2, [r1]
adds r0, #0x52
strb r2, [r0]
bx lr
thumb_func_start sub_080569D4
sub_080569D4: @ 0x080569D4
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r0, _080569F0 @ =gUnk_02024030
movs r5, #3
ldrsb r5, [r0, r5]
ldr r0, _080569F4 @ =gUnk_03000FF0
ldrh r0, [r0, #2]
cmp r0, #8
beq _08056A02
cmp r0, #8
bgt _080569F8
cmp r0, #1
beq _08056A02
b _08056A6A
.align 2, 0
_080569F0: .4byte gUnk_02024030
_080569F4: .4byte gUnk_03000FF0
_080569F8:
cmp r0, #0x10
beq _08056A68
cmp r0, #0x20
beq _08056A64
b _08056A6A
_08056A02:
ldr r0, _08056A18 @ =gUnk_02024030
lsls r1, r5, #1
adds r0, #0x10
adds r1, r1, r0
ldrh r1, [r1]
cmp r1, #0
bne _08056A20
ldr r1, _08056A1C @ =gUnk_08107C14
adds r0, r6, #0
adds r0, #0x20
b _08056A30
.align 2, 0
_08056A18: .4byte gUnk_02024030
_08056A1C: .4byte gUnk_08107C14
_08056A20:
strh r1, [r6, #8]
adds r4, r6, #0
adds r4, #0x20
adds r0, r4, #0
bl sub_0805EEB4
ldr r1, _08056A58 @ =gUnk_08107C0F
adds r0, r4, #0
_08056A30:
bl sub_0805EF40
ldr r2, _08056A5C @ =gUnk_02000040
ldr r0, _08056A60 @ =gUnk_02024030
ldrb r1, [r0, #3]
strb r1, [r2, #1]
movs r1, #3
strb r1, [r2]
movs r1, #0x18
bl sub_0801D630
movs r0, #0x6a
bl sub_080A3268
adds r1, r6, #0
adds r1, #0x89
movs r0, #1
strb r0, [r1]
b _08056A6A
.align 2, 0
_08056A58: .4byte gUnk_08107C0F
_08056A5C: .4byte gUnk_02000040
_08056A60: .4byte gUnk_02024030
_08056A64:
subs r5, #1
b _08056A6A
_08056A68:
adds r5, #1
_08056A6A:
ldr r4, _08056A8C @ =gUnk_02024030
movs r1, #2
ldrsb r1, [r4, r1]
adds r0, r5, r1
bl __modsi3
adds r5, r0, #0
movs r6, #3
ldrsb r6, [r4, r6]
cmp r5, r6
beq _08056A90
strb r5, [r4, #3]
movs r0, #0x69
bl sub_080A3268
movs r1, #1
b _08056A92
.align 2, 0
_08056A8C: .4byte gUnk_02024030
_08056A90:
movs r1, #0
_08056A92:
ldr r2, _08056AB4 @ =gUnk_02000040
ldrb r0, [r2]
cmp r0, #1
bne _08056AA4
ldr r1, _08056AB8 @ =gUnk_02024030
movs r0, #2
strb r0, [r2]
strb r0, [r1]
movs r1, #1
_08056AA4:
cmp r1, #0
beq _08056AB0
adds r0, r5, #0
adds r1, r6, #0
bl sub_08056ABC
_08056AB0:
pop {r4, r5, r6, pc}
.align 2, 0
_08056AB4: .4byte gUnk_02000040
_08056AB8: .4byte gUnk_02024030
thumb_func_start sub_08056ABC
sub_08056ABC: @ 0x08056ABC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
ldr r7, _08056B14 @ =gUnk_02022780
movs r0, #0x56
adds r0, r0, r7
mov sb, r0
ldrh r0, [r0]
mov r8, r0
ldr r4, _08056B18 @ =gUnk_02024030
lsls r1, r1, #1
adds r4, #8
adds r1, r1, r4
ldrh r0, [r1]
mov r1, sb
strh r0, [r1]
adds r6, r7, #0
adds r6, #0x50
movs r0, #0
adds r1, r6, #0
bl sub_0805F8E4
lsls r5, r5, #1
adds r5, r5, r4
ldrh r0, [r5]
mov r1, sb
strh r0, [r1]
movs r0, #1
adds r1, r6, #0
bl sub_0805F8E4
mov r1, r8
mov r0, sb
strh r1, [r0]
adds r1, r7, #0
adds r1, #0x9d
movs r0, #1
strb r0, [r1]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08056B14: .4byte gUnk_02022780
_08056B18: .4byte gUnk_02024030
thumb_func_start sub_08056B1C
sub_08056B1C: @ 0x08056B1C
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _08056B44 @ =gUnk_02000050
movs r0, #0
strb r0, [r1, #1]
adds r1, r4, #0
adds r1, #0x94
ldrb r0, [r1]
adds r5, r0, #0
cmp r5, #0
beq _08056B48
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _08056B7A
subs r1, #0xb
movs r0, #4
b _08056B78
.align 2, 0
_08056B44: .4byte gUnk_02000050
_08056B48:
ldr r0, _08056B68 @ =gUnk_03000FF0
ldrh r1, [r0, #2]
ldr r0, _08056B6C @ =0x000001F3
ands r0, r1
cmp r0, #0
beq _08056B70
movs r0, #0x68
bl sub_080A3268
adds r0, r4, #0
adds r0, #0x9a
strb r5, [r0]
adds r1, r4, #0
adds r1, #0x89
movs r0, #4
b _08056B78
.align 2, 0
_08056B68: .4byte gUnk_03000FF0
_08056B6C: .4byte 0x000001F3
_08056B70:
adds r1, r4, #0
adds r1, #0x9a
ldrb r0, [r1]
adds r0, #1
_08056B78:
strb r0, [r1]
_08056B7A:
pop {r4, r5, pc}
thumb_func_start sub_08056B7C
sub_08056B7C: @ 0x08056B7C
push {r4, lr}
adds r4, r0, #0
movs r0, #0
bl sub_08056BDC
adds r0, r4, #0
adds r0, #0x8f
ldrb r0, [r0]
movs r1, #0x40
orrs r1, r0
adds r0, r4, #0
bl sub_080569C4
adds r4, #0x89
movs r0, #1
strb r0, [r4]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08056BA0
sub_08056BA0: @ 0x08056BA0
push {r4, lr}
adds r4, r0, #0
ldr r1, _08056BD0 @ =gUnk_02000050
movs r0, #0
strb r0, [r1, #1]
movs r0, #7
bl sub_08056C54
adds r4, #0x8e
ldrb r0, [r4]
cmp r0, #1
beq _08056BCE
cmp r0, #2
beq _08056BC8
ldr r0, _08056BD4 @ =gUnk_03000FF0
ldrh r1, [r0, #2]
ldr r0, _08056BD8 @ =0x000001F3
ands r0, r1
cmp r0, #0
beq _08056BCE
_08056BC8:
movs r0, #4
bl sub_080564C8
_08056BCE:
pop {r4, pc}
.align 2, 0
_08056BD0: .4byte gUnk_02000050
_08056BD4: .4byte gUnk_03000FF0
_08056BD8: .4byte 0x000001F3
thumb_func_start sub_08056BDC
sub_08056BDC: @ 0x08056BDC
push {r4, r5, lr}
adds r5, r0, #0
ldr r4, _08056C24 @ =gUnk_02022780
adds r0, r4, #0
adds r0, #0x98
strb r5, [r0]
cmp r5, #0
bne _08056C30
movs r0, #1
rsbs r0, r0, #0
ldr r1, _08056C28 @ =gUnk_02000D00
movs r2, #0xd0
lsls r2, r2, #4
bl sub_0801D610
bl sub_08056F70
adds r1, r4, #0
adds r1, #0x9e
ldr r0, _08056C2C @ =0x0000F082
strh r0, [r1]
adds r1, #2
adds r0, #1
strh r0, [r1]
adds r1, #2
adds r0, #0x33
strh r0, [r1]
adds r1, #2
adds r0, #1
strh r0, [r1]
adds r0, r4, #0
adds r0, #0x56
strh r5, [r0]
subs r1, #0x50
movs r0, #0xd0
b _08056C3C
.align 2, 0
_08056C24: .4byte gUnk_02022780
_08056C28: .4byte gUnk_02000D00
_08056C2C: .4byte 0x0000F082
_08056C30:
adds r1, r4, #0
adds r1, #0x56
movs r0, #0xd0
strh r0, [r1]
subs r1, #2
adds r0, #0xd0
_08056C3C:
strh r0, [r1]
ldr r0, _08056C50 @ =gUnk_02022780
adds r1, r0, #0
adds r1, #0x8f
ldrb r2, [r1]
movs r1, #0x40
orrs r1, r2
bl sub_080569C4
pop {r4, r5, pc}
.align 2, 0
_08056C50: .4byte gUnk_02022780
thumb_func_start sub_08056C54
sub_08056C54: @ 0x08056C54
ldr r2, _08056C60 @ =gUnk_02000050
ldr r1, _08056C64 @ =gUnk_02022780
strb r0, [r1]
strb r0, [r2]
bx lr
.align 2, 0
_08056C60: .4byte gUnk_02000050
_08056C64: .4byte gUnk_02022780
thumb_func_start sub_08056C68
sub_08056C68: @ 0x08056C68
push {r4, r5, r6, lr}
ldr r5, _08056CB8 @ =gUnk_02036A38
ldrb r0, [r5, #1]
cmp r0, #0
beq _08056CB4
movs r0, #0
strb r0, [r5, #1]
ldrb r0, [r5, #5]
lsls r0, r0, #5
ldrb r1, [r5, #4]
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08056CBC @ =gUnk_02034CB0
adds r1, r0, r1
ldrb r0, [r5, #7]
adds r0, #2
movs r6, #0
_08056C8A:
movs r2, #0
adds r4, r1, #0
adds r4, #0x40
subs r3, r0, #1
_08056C92:
strh r6, [r1]
adds r1, #2
adds r2, #1
ldrb r0, [r5, #6]
adds r0, #2
cmp r2, r0
blt _08056C92
adds r1, r4, #0
adds r0, r3, #0
cmp r0, #0
bgt _08056C8A
ldrb r0, [r5, #5]
ldrb r1, [r5, #7]
bl sub_0801C4A0
bl sub_0801C494
_08056CB4:
pop {r4, r5, r6, pc}
.align 2, 0
_08056CB8: .4byte gUnk_02036A38
_08056CBC: .4byte gUnk_02034CB0
thumb_func_start sub_08056CC0
sub_08056CC0: @ 0x08056CC0
push {r4, r5, r6, r7, lr}
movs r7, #0
ldr r2, _08056CE0 @ =gUnk_02022780
adds r3, r2, #0
adds r3, #0x9b
ldrb r1, [r3]
adds r1, r1, r0
strb r1, [r3]
lsls r1, r1, #0x18
asrs r1, r1, #0x18
mov ip, r2
cmp r1, #0
bgt _08056CE4
strb r7, [r3]
b _08056CEC
.align 2, 0
_08056CE0: .4byte gUnk_02022780
_08056CE4:
cmp r1, #7
ble _08056CEE
movs r0, #8
strb r0, [r3]
_08056CEC:
movs r7, #1
_08056CEE:
ldr r2, _08056D54 @ =gUnk_02036A40
mov r4, ip
adds r1, r4, #0
adds r1, #0x9b
movs r0, #0
ldrsb r0, [r1, r0]
cmp r0, #0
beq _08056D58
adds r5, r0, #0
ldrb r0, [r4, #4]
lsls r0, r0, #1
muls r0, r5, r0
lsrs r3, r0, #4
strb r3, [r2, #6]
movs r6, #1
adds r0, r3, #0
ands r0, r6
ldrb r1, [r4, #4]
cmp r0, #0
beq _08056D1A
adds r0, r3, #1
strb r0, [r2, #6]
_08056D1A:
lsrs r1, r1, #1
ldrb r0, [r4, #6]
adds r1, r1, r0
ldrb r0, [r2, #6]
lsrs r0, r0, #1
subs r1, r1, r0
strb r1, [r2, #4]
ldrb r0, [r4, #5]
lsls r0, r0, #1
muls r0, r5, r0
lsrs r3, r0, #4
strb r3, [r2, #7]
adds r0, r3, #0
ands r0, r6
ldrb r1, [r4, #5]
cmp r0, #0
beq _08056D40
adds r0, r3, #1
strb r0, [r2, #7]
_08056D40:
lsrs r1, r1, #1
mov r3, ip
ldrb r3, [r3, #7]
adds r1, r1, r3
ldrb r0, [r2, #7]
lsrs r0, r0, #1
subs r1, r1, r0
strb r1, [r2, #5]
b _08056D66
.align 2, 0
_08056D54: .4byte gUnk_02036A40
_08056D58:
movs r0, #0xff
strb r0, [r2, #5]
movs r0, #1
rsbs r0, r0, #0
strb r0, [r2, #4]
strb r0, [r2, #7]
strb r0, [r2, #6]
_08056D66:
movs r0, #1
strb r0, [r2, #1]
adds r0, r7, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08056D70
sub_08056D70: @ 0x08056D70
push {r4, lr}
ldr r0, _08056DB4 @ =gUnk_02022780
adds r0, #0x9b
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
ble _08056DB0
ldr r4, _08056DB8 @ =gUnk_02036A40
ldrb r0, [r4, #5]
lsls r0, r0, #5
ldrb r1, [r4, #4]
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08056DBC @ =gUnk_02034CB0
adds r0, r0, r1
ldr r3, _08056DC0 @ =0x0000F07B
ldrb r1, [r4, #6]
ldrb r2, [r4, #7]
bl sub_08056DC8
bl sub_08056EC0
bl sub_08056F1C
ldr r2, _08056DC4 @ =gUnk_02036A38
ldr r0, [r4]
ldr r1, [r4, #4]
str r0, [r2]
str r1, [r2, #4]
bl sub_0801C494
_08056DB0:
pop {r4, pc}
.align 2, 0
_08056DB4: .4byte gUnk_02022780
_08056DB8: .4byte gUnk_02036A40
_08056DBC: .4byte gUnk_02034CB0
_08056DC0: .4byte 0x0000F07B
_08056DC4: .4byte gUnk_02036A38
thumb_func_start sub_08056DC8
sub_08056DC8: @ 0x08056DC8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r7, r0, #0
adds r4, r1, #0
adds r6, r2, #0
mov r8, r3
adds r3, r7, #0
lsls r0, r6, #6
adds r0, #0x40
adds r2, r3, r0
mov r0, r8
strh r0, [r3]
adds r3, #2
movs r1, #0x80
lsls r1, r1, #4
mov sb, r1
mov r0, r8
mov r5, sb
orrs r0, r5
strh r0, [r2]
adds r2, #2
cmp r4, #0
ble _08056E4C
mov r0, r8
adds r0, #1
strh r0, [r3]
adds r3, #2
adds r1, r0, #0
orrs r1, r5
strh r1, [r2]
adds r2, #2
subs r4, #2
adds r1, r4, #0
subs r4, #1
mov ip, r0
cmp r1, #0
ble _08056E30
mov r5, r8
adds r5, #2
adds r1, r5, #0
mov r0, sb
orrs r1, r0
_08056E20:
strh r5, [r3]
adds r3, #2
strh r1, [r2]
adds r2, #2
adds r0, r4, #0
subs r4, #1
cmp r0, #0
bgt _08056E20
_08056E30:
movs r1, #0x80
lsls r1, r1, #3
adds r0, r1, #0
mov r1, ip
orrs r1, r0
strh r1, [r3]
adds r3, #2
movs r5, #0xc0
lsls r5, r5, #4
adds r0, r5, #0
mov r1, ip
orrs r1, r0
strh r1, [r2]
adds r2, #2
_08056E4C:
movs r0, #0x80
lsls r0, r0, #3
adds r5, r0, #0
mov r0, r8
orrs r0, r5
strh r0, [r3]
movs r0, #0xc0
lsls r0, r0, #4
adds r1, r0, #0
mov r0, r8
orrs r0, r1
strh r0, [r2]
adds r7, #0x40
adds r3, #0x40
cmp r6, #0
ble _08056EB6
mov r0, r8
adds r0, #3
strh r0, [r7]
adds r1, r0, #0
orrs r1, r5
strh r1, [r3]
adds r7, #0x40
adds r3, #0x40
subs r6, #2
adds r1, r6, #0
subs r6, #1
adds r2, r0, #0
cmp r1, #0
ble _08056EA0
mov r4, r8
adds r4, #4
adds r1, r4, #0
orrs r1, r5
_08056E90:
strh r4, [r7]
strh r1, [r3]
adds r7, #0x40
adds r3, #0x40
adds r0, r6, #0
subs r6, #1
cmp r0, #0
bgt _08056E90
_08056EA0:
movs r1, #0x80
lsls r1, r1, #4
adds r0, r1, #0
adds r1, r2, #0
orrs r1, r0
strh r1, [r7]
movs r5, #0xc0
lsls r5, r5, #4
adds r0, r5, #0
orrs r2, r0
strh r2, [r3]
_08056EB6:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08056EC0
sub_08056EC0: @ 0x08056EC0
push {r4, r5, r6, r7, lr}
ldr r6, _08056F10 @ =gUnk_02036A40
ldrb r0, [r6, #6]
cmp r0, #0
beq _08056F0E
ldrb r0, [r6, #7]
cmp r0, #0
beq _08056F0E
adds r4, r0, #0
ldrb r0, [r6, #5]
lsls r0, r0, #5
ldrb r1, [r6, #4]
adds r0, r0, r1
lsls r0, r0, #1
ldr r1, _08056F14 @ =gUnk_02034CB2
adds r5, r0, r1
movs r0, #4
subs r0, r0, r4
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r1, r0, #1
ldr r7, _08056F18 @ =gUnk_0202281E
_08056EEC:
ldrb r3, [r6, #6]
lsls r0, r1, #1
adds r0, r0, r7
ldrh r2, [r0]
adds r5, #0x40
adds r0, r1, #1
subs r4, #1
adds r1, r5, #0
_08056EFC:
strh r2, [r1]
adds r1, #2
adds r2, #2
subs r3, #1
cmp r3, #0
bgt _08056EFC
adds r1, r0, #0
cmp r4, #0
bne _08056EEC
_08056F0E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08056F10: .4byte gUnk_02036A40
_08056F14: .4byte gUnk_02034CB2
_08056F18: .4byte gUnk_0202281E
thumb_func_start sub_08056F1C
sub_08056F1C: @ 0x08056F1C
push {lr}
ldr r0, _08056F58 @ =gUnk_02022780
adds r0, #0x98
ldr r0, [r0]
ldr r1, _08056F5C @ =0x0010FF00
ands r0, r1
ldr r1, _08056F60 @ =0x00100200
cmp r0, r1
bne _08056F54
ldr r2, _08056F64 @ =gUnk_02036A40
ldrb r1, [r2, #5]
lsls r1, r1, #5
ldrb r0, [r2, #4]
adds r1, r1, r0
lsls r1, r1, #1
ldr r0, _08056F68 @ =gUnk_02034CB0
adds r1, r1, r0
ldrb r0, [r2, #7]
adds r0, #1
lsls r0, r0, #5
subs r0, #2
ldrb r2, [r2, #6]
adds r0, r0, r2
lsls r0, r0, #1
adds r1, r1, r0
ldr r2, _08056F6C @ =0x0000F080
adds r0, r2, #0
strh r0, [r1]
_08056F54:
pop {pc}
.align 2, 0
_08056F58: .4byte gUnk_02022780
_08056F5C: .4byte 0x0010FF00
_08056F60: .4byte 0x00100200
_08056F64: .4byte gUnk_02036A40
_08056F68: .4byte gUnk_02034CB0
_08056F6C: .4byte 0x0000F080
thumb_func_start sub_08056F70
sub_08056F70: @ 0x08056F70
push {lr}
ldr r0, _08056F80 @ =gUnk_02000D00
ldr r1, _08056F84 @ =0x0600D040
movs r2, #0xd0
lsls r2, r2, #4
bl sub_08000E96
pop {pc}
.align 2, 0
_08056F80: .4byte gUnk_02000D00
_08056F84: .4byte 0x0600D040
thumb_func_start sub_08056F88
sub_08056F88: @ 0x08056F88
push {r4, lr}
adds r3, r0, #0
adds r4, r1, #0
cmp r3, #0xf
bls _08056F94
movs r3, #0
_08056F94:
lsls r2, r3, #4
orrs r2, r4
ldr r0, _08056FB4 @ =gUnk_02022780
adds r1, r0, #0
adds r1, #0x9c
ldrb r0, [r1]
cmp r0, r2
beq _08056FB0
strb r2, [r1]
ldr r2, _08056FB8 @ =0x0600CF60
adds r0, r3, #0
adds r1, r4, #0
bl sub_0805F918
_08056FB0:
pop {r4, pc}
.align 2, 0
_08056FB4: .4byte gUnk_02022780
_08056FB8: .4byte 0x0600CF60
thumb_func_start sub_08056FBC
sub_08056FBC: @ 0x08056FBC
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x68
bl sub_08056FEC
ldr r0, [r4, #0x14]
adds r1, r4, #0
adds r1, #0x70
bl sub_08056FEC
ldr r0, [r4, #0x18]
adds r1, r4, #0
adds r1, #0x78
bl sub_08056FEC
ldr r0, [r4, #0x1c]
adds r1, r4, #0
adds r1, #0x80
bl sub_08056FEC
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08056FEC
sub_08056FEC: @ 0x08056FEC
push {r4, r5, r6, r7, lr}
sub sp, #8
adds r2, r0, #0
adds r5, r1, #0
bl sub_0801D51C
adds r2, r0, #0
ldr r0, _08057040 @ =0x0FFFFFFF
ands r2, r0
movs r4, #0
movs r3, #0xf
_08057002:
mov r0, sp
adds r1, r0, r4
adds r0, r2, #0
ands r0, r3
strb r0, [r1]
adds r4, #1
lsrs r2, r2, #4
cmp r2, #0
bne _08057002
movs r3, #0
subs r2, r4, #1
cmp r2, #0
blt _08057032
movs r6, #0x30
_0805701E:
adds r1, r5, r3
mov r7, sp
adds r0, r7, r2
ldrb r0, [r0]
orrs r0, r6
strb r0, [r1]
adds r3, #1
subs r2, #1
cmp r2, #0
bge _0805701E
_08057032:
adds r1, r5, r3
movs r0, #0
strb r0, [r1]
adds r0, r4, #0
add sp, #8
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08057040: .4byte 0x0FFFFFFF
thumb_func_start sub_08057044
sub_08057044: @ 0x08057044
push {r4, r5, lr}
sub sp, #8
adds r5, r1, #0
adds r4, r2, #0
mov r1, sp
bl sub_08056FEC
ldr r2, [sp]
movs r1, #3
subs r1, r1, r0
lsls r1, r1, #3
lsls r2, r1
orrs r2, r4
str r2, [r5]
add sp, #8
pop {r4, r5, pc}
thumb_func_start sub_08057064
sub_08057064: @ 0x08057064
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _080570AC @ =gUnk_08107C5C
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r1, _080570B0 @ =gUnk_08107C48
adds r5, r4, #0
adds r5, #0x21
ldrb r0, [r5]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
ldr r1, _080570B4 @ =gUnk_08107C40
ldrb r0, [r5]
adds r0, r0, r1
ldrb r1, [r0]
cmp r1, #0
beq _080570AA
adds r2, r4, #0
adds r2, #0x20
ldrb r0, [r2]
cmp r0, r1
beq _080570AA
strb r1, [r2]
adds r0, r1, #0
bl sub_0801D7EC
_080570AA:
pop {r4, r5, pc}
.align 2, 0
_080570AC: .4byte gUnk_08107C5C
_080570B0: .4byte gUnk_08107C48
_080570B4: .4byte gUnk_08107C40
thumb_func_start sub_080570B8
sub_080570B8: @ 0x080570B8
push {r4, lr}
adds r4, r0, #0
adds r0, #0x20
ldrb r0, [r0]
bl sub_0801D7EC
movs r0, #0
str r0, [r4, #0x34]
adds r1, r4, #0
adds r1, #0x21
ldrb r0, [r1]
cmp r0, #3
bne _080570E0
ldr r1, _080570DC @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0x32]
b _080570F0
.align 2, 0
_080570DC: .4byte gUnk_03000F50
_080570E0:
ldr r0, _080570F4 @ =gUnk_08107C48
ldrb r1, [r1]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_080570F0:
pop {r4, pc}
.align 2, 0
_080570F4: .4byte gUnk_08107C48
thumb_func_start sub_080570F8
sub_080570F8: @ 0x080570F8
push {lr}
ldr r1, _08057110 @ =gUnk_03000F50
ldrh r2, [r1]
ldr r0, _08057114 @ =0x0000F7FF
ands r0, r2
movs r2, #0
strh r0, [r1]
adds r1, #0x66
strh r2, [r1]
bl sub_08056250
pop {pc}
.align 2, 0
_08057110: .4byte gUnk_03000F50
_08057114: .4byte 0x0000F7FF
thumb_func_start sub_08057118
sub_08057118: @ 0x08057118
push {r4, lr}
adds r3, r0, #0
movs r1, #0
strb r1, [r3, #0xe]
adds r0, #0x20
strb r1, [r0]
adds r0, #1
strb r1, [r0]
adds r0, #1
strb r1, [r0]
movs r0, #1
strb r0, [r3, #0xc]
ldr r1, _08057160 @ =gUnk_03000F50
ldr r0, _08057164 @ =0x00001E04
strh r0, [r1, #0x2c]
ldrh r0, [r1]
movs r4, #0x80
lsls r4, r4, #4
adds r2, r4, #0
orrs r0, r2
strh r0, [r1]
adds r2, r1, #0
adds r2, #0x66
ldr r0, _08057168 @ =0x00003648
strh r0, [r2]
adds r1, #0x68
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
ldr r1, _0805716C @ =sub_080570B8
ldr r2, _08057170 @ =sub_080570F8
adds r0, r3, #0
bl sub_08052D74
pop {r4, pc}
.align 2, 0
_08057160: .4byte gUnk_03000F50
_08057164: .4byte 0x00001E04
_08057168: .4byte 0x00003648
_0805716C: .4byte sub_080570B8
_08057170: .4byte sub_080570F8
thumb_func_start sub_08057174
sub_08057174: @ 0x08057174
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_0804B128
adds r3, r0, #0
ldrb r0, [r3]
cmp r0, #0xff
bne _08057188
b _0805728A
_08057188:
ldr r1, _080571E8 @ =gLinkEntity
movs r2, #0x2e
ldrsh r0, [r1, r2]
cmp r0, #0
bge _08057194
adds r0, #0xf
_08057194:
asrs r6, r0, #4
movs r7, #0x32
ldrsh r0, [r1, r7]
cmp r0, #0
bge _080571A0
adds r0, #0xf
_080571A0:
asrs r5, r0, #4
movs r0, #0x21
adds r0, r0, r4
mov ip, r0
_080571A8:
ldrb r0, [r3]
mov r1, ip
ldrb r1, [r1]
cmp r0, r1
beq _08057282
ldr r1, _080571EC @ =gUnk_03000BF0
ldrh r0, [r1, #6]
lsrs r0, r0, #4
ldrb r7, [r3, #1]
adds r2, r0, r7
ldrh r0, [r1, #8]
lsrs r0, r0, #4
ldrb r1, [r3, #2]
adds r0, r0, r1
subs r0, r5, r0
ldrb r7, [r3, #4]
cmp r0, r7
bhs _08057282
subs r0, r6, r2
ldrb r1, [r3, #3]
cmp r0, r1
bhs _08057282
ldrb r0, [r3]
subs r0, #1
cmp r0, #5
bhi _08057268
lsls r0, r0, #2
ldr r1, _080571F0 @ =_080571F4
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080571E8: .4byte gLinkEntity
_080571EC: .4byte gUnk_03000BF0
_080571F0: .4byte _080571F4
_080571F4: @ jump table
.4byte _0805720C @ case 0
.4byte _08057220 @ case 1
.4byte _08057258 @ case 2
.4byte _08057246 @ case 3
.4byte _08057216 @ case 4
.4byte _08057236 @ case 5
_0805720C:
mov r2, ip
ldrb r0, [r2]
cmp r0, #2
bne _08057268
b _08057260
_08057216:
mov r7, ip
ldrb r0, [r7]
cmp r0, #6
bne _08057268
b _08057260
_08057220:
mov r0, ip
ldrb r1, [r0]
cmp r1, #0
bne _08057268
movs r0, #2
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
adds r0, r4, #0
adds r0, #0x20
strb r1, [r0]
b _08057268
_08057236:
mov r2, ip
ldrb r1, [r2]
cmp r1, #0
bne _08057268
movs r0, #2
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
b _08057268
_08057246:
mov r7, ip
ldrb r1, [r7]
cmp r1, #0
bne _08057268
movs r0, #2
strb r0, [r4, #0xc]
strb r1, [r4, #0xe]
str r1, [r4, #0x34]
b _08057268
_08057258:
mov r1, ip
ldrb r0, [r1]
cmp r0, #4
bne _08057268
_08057260:
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #9
strb r0, [r4, #0xe]
_08057268:
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08057282
movs r0, #8
strb r0, [r4, #0xf]
ldrb r0, [r3]
mov r2, ip
strb r0, [r2]
adds r1, r4, #0
adds r1, #0x22
movs r0, #1
strb r0, [r1]
b _0805728A
_08057282:
adds r3, #5
ldrb r0, [r3]
cmp r0, #0xff
bne _080571A8
_0805728A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0805728C
sub_0805728C: @ 0x0805728C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _080572CA
movs r0, #8
strb r0, [r4, #0xf]
ldr r2, _080572CC @ =gUnk_03000F50
ldr r3, _080572D0 @ =gUnk_08107C1C
ldrb r0, [r4, #0xe]
adds r1, r0, #1
strb r1, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r3
ldrh r0, [r0]
adds r2, #0x68
strh r0, [r2]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xa
bne _080572CA
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x22
movs r0, #0
strb r0, [r1]
_080572CA:
pop {r4, pc}
.align 2, 0
_080572CC: .4byte gUnk_03000F50
_080572D0: .4byte gUnk_08107C1C
thumb_func_start sub_080572D4
sub_080572D4: @ 0x080572D4
push {r4, r5, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xf]
subs r0, #1
strb r0, [r3, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _08057320
movs r0, #8
strb r0, [r3, #0xf]
ldr r5, _08057324 @ =gUnk_03000F50
ldr r2, _08057328 @ =gUnk_08107C1C
ldrb r0, [r3, #0xe]
adds r1, r0, #0
adds r1, #0xff
strb r1, [r3, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r2
ldrh r2, [r0]
adds r0, r5, #0
adds r0, #0x68
movs r4, #0
strh r2, [r0]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xff
bne _08057320
movs r0, #1
strb r0, [r3, #0xc]
adds r0, r3, #0
adds r0, #0x22
strb r4, [r0]
subs r0, #1
strb r4, [r0]
adds r0, r5, #0
adds r0, #0x6c
strb r4, [r0]
_08057320:
pop {r4, r5, pc}
.align 2, 0
_08057324: .4byte gUnk_03000F50
_08057328: .4byte gUnk_08107C1C
thumb_func_start sub_0805732C
sub_0805732C: @ 0x0805732C
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
adds r5, r1, #0
ldr r2, _08057390 @ =gUnk_03003DE4
ldrb r1, [r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _08057394 @ =gUnk_02017AA0
adds r4, r0, r1
movs r3, #0
mov ip, r2
mov r8, r1
ldr r0, _08057398 @ =gUnk_080C9160
mov sb, r0
movs r2, #0xff
ldr r1, _0805739C @ =gUnk_03000F50
_08057354:
adds r0, r5, r3
ands r0, r2
lsls r0, r0, #1
add r0, sb
movs r7, #0
ldrsh r0, [r0, r7]
muls r0, r6, r0
lsrs r0, r0, #8
ldrh r7, [r1, #0x2e]
adds r0, r0, r7
strh r0, [r4]
adds r4, #2
adds r3, #1
cmp r3, #0x9f
bls _08057354
mov r0, ip
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
add r0, r8
ldr r1, _080573A0 @ =0x0400001C
ldr r2, _080573A4 @ =0xA2600001
bl sub_0805622C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08057390: .4byte gUnk_03003DE4
_08057394: .4byte gUnk_02017AA0
_08057398: .4byte gUnk_080C9160
_0805739C: .4byte gUnk_03000F50
_080573A0: .4byte 0x0400001C
_080573A4: .4byte 0xA2600001
thumb_func_start nullsub_494
nullsub_494: @ 0x080573A8
bx lr
.align 2, 0
thumb_func_start sub_080573AC
sub_080573AC: @ 0x080573AC
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r2, _08057434 @ =gUnk_03000BF0
ldr r0, [r2, #0x28]
ldr r1, _08057438 @ =0xFFFFE000
adds r0, r0, r1
str r0, [r2, #0x28]
ldr r0, [r2, #0x2c]
ldr r1, _0805743C @ =0xFFFFF000
adds r0, r0, r1
str r0, [r2, #0x2c]
ldr r5, _08057440 @ =gUnk_03000F50
movs r1, #0xa
ldrsh r0, [r2, r1]
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #1
ldrh r1, [r2, #0x2a]
adds r0, r0, r1
strh r0, [r5, #0x2e]
movs r1, #0xc
ldrsh r0, [r2, r1]
ldrh r1, [r2, #8]
subs r0, r0, r1
asrs r0, r0, #1
ldrh r2, [r2, #0x2e]
adds r0, r0, r2
strh r0, [r5, #0x30]
ldr r2, _08057444 @ =gUnk_080C9160
ldr r4, _08057448 @ =gUnk_030010A0
ldr r1, [r4]
ldrb r0, [r4]
adds r0, #0x40
lsls r0, r0, #1
adds r0, r0, r2
movs r2, #0
ldrsh r0, [r0, r2]
asrs r0, r0, #5
adds r0, #0x10
bl sub_0805732C
adds r0, r6, #0
adds r0, #0x22
ldrb r0, [r0]
cmp r0, #0
bne _08057430
ldr r0, [r4]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _08057430
adds r2, r6, #0
adds r2, #0x24
ldrb r0, [r2]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r2]
ldr r1, _0805744C @ =gUnk_08107C30
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r5, #0
adds r0, #0x68
strh r1, [r0]
_08057430:
pop {r4, r5, r6, pc}
.align 2, 0
_08057434: .4byte gUnk_03000BF0
_08057438: .4byte 0xFFFFE000
_0805743C: .4byte 0xFFFFF000
_08057440: .4byte gUnk_03000F50
_08057444: .4byte gUnk_080C9160
_08057448: .4byte gUnk_030010A0
_0805744C: .4byte gUnk_08107C30
thumb_func_start sub_08057450
sub_08057450: @ 0x08057450
push {r4, r5, r6, lr}
adds r3, r0, #0
ldr r4, _08057504 @ =gUnk_03000F50
movs r0, #0x10
strh r0, [r4, #0x2e]
ldr r0, _08057508 @ =gUnk_03000BF0
movs r2, #0xc
ldrsh r1, [r0, r2]
ldrh r0, [r0, #8]
subs r1, r1, r0
asrs r1, r1, #2
movs r2, #0x3f
adds r0, r1, #0
ands r0, r2
strh r0, [r4, #0x30]
cmp r1, #0
bge _08057474
adds r1, #0x3f
_08057474:
asrs r0, r1, #6
lsls r0, r0, #9
ldr r1, _0805750C @ =gUnk_02001A40
adds r1, r0, r1
str r1, [r4, #0x34]
ldr r0, [r3, #0x34]
cmp r0, r1
beq _0805748A
str r1, [r3, #0x34]
movs r0, #1
strh r0, [r4, #0x32]
_0805748A:
adds r0, r3, #0
adds r0, #0x22
ldrb r0, [r0]
ldr r5, _08057510 @ =gUnk_030010A0
cmp r0, #0
bne _080574BE
ldr r0, [r5]
movs r1, #0x1f
ands r0, r1
cmp r0, #0
bne _080574BE
adds r2, r3, #0
adds r2, #0x24
ldrb r0, [r2]
adds r0, #1
movs r1, #7
ands r0, r1
strb r0, [r2]
ldr r1, _08057514 @ =gUnk_08107C30
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r4, #0
adds r0, #0x68
strh r1, [r0]
_080574BE:
ldr r0, [r5]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _08057502
adds r0, r3, #0
adds r0, #0x23
ldrb r1, [r0]
lsls r1, r1, #5
ldr r2, _08057518 @ =gUnk_085B4180
adds r1, r1, r2
movs r5, #0
adds r6, r0, #0
adds r4, r1, #0
adds r4, #0xe
_080574DC:
adds r0, r5, #0
adds r0, #0x87
ldrh r1, [r4]
bl sub_0801D79C
adds r0, r5, #0
adds r0, #0x8c
ldrh r1, [r4, #0xa]
bl sub_0801D79C
adds r4, #2
adds r5, #1
cmp r5, #3
bls _080574DC
ldrb r0, [r6]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r6]
_08057502:
pop {r4, r5, r6, pc}
.align 2, 0
_08057504: .4byte gUnk_03000F50
_08057508: .4byte gUnk_03000BF0
_0805750C: .4byte gUnk_02001A40
_08057510: .4byte gUnk_030010A0
_08057514: .4byte gUnk_08107C30
_08057518: .4byte gUnk_085B4180
thumb_func_start sub_0805751C
sub_0805751C: @ 0x0805751C
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _0805753A
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _08057544 @ =gUnk_03000F50
strh r1, [r0, #0x32]
strh r1, [r0, #0x1a]
ldr r1, _08057548 @ =sub_080576A0
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_0805753A:
adds r0, r4, #0
bl sub_0805754C
pop {r4, pc}
.align 2, 0
_08057544: .4byte gUnk_03000F50
_08057548: .4byte sub_080576A0
thumb_func_start sub_0805754C
sub_0805754C: @ 0x0805754C
push {r4, r5, r6, lr}
adds r2, r0, #0
ldr r3, _080575BC @ =gUnk_03000BF0
movs r0, #0xc
ldrsh r1, [r3, r0]
ldrh r0, [r3, #8]
subs r1, r1, r0
asrs r0, r1, #3
adds r1, r1, r0
ldr r4, _080575C0 @ =gUnk_03000F50
movs r6, #0x3f
adds r0, r1, #0
ands r0, r6
strh r0, [r4, #0x30]
adds r0, r1, #0
cmp r1, #0
bge _08057570
adds r0, #0x3f
_08057570:
asrs r0, r0, #6
lsls r0, r0, #9
ldr r5, _080575C4 @ =gUnk_02002F00
adds r1, r0, r5
str r1, [r4, #0x34]
ldr r0, [r2, #0x38]
cmp r0, r1
beq _08057586
str r1, [r2, #0x38]
movs r0, #1
strh r0, [r4, #0x32]
_08057586:
movs r0, #0xc
ldrsh r1, [r3, r0]
ldrh r0, [r3, #8]
subs r1, r1, r0
asrs r0, r1, #2
adds r1, r1, r0
adds r0, r1, #0
ands r0, r6
strh r0, [r4, #0x18]
adds r0, r1, #0
cmp r0, #0
bge _080575A0
adds r0, #0x3f
_080575A0:
asrs r0, r0, #6
lsls r0, r0, #9
movs r3, #0x80
lsls r3, r3, #6
adds r1, r5, r3
adds r1, r0, r1
str r1, [r4, #0x1c]
ldr r0, [r2, #0x3c]
cmp r0, r1
beq _080575BA
str r1, [r2, #0x3c]
movs r0, #1
strh r0, [r4, #0x1a]
_080575BA:
pop {r4, r5, r6, pc}
.align 2, 0
_080575BC: .4byte gUnk_03000BF0
_080575C0: .4byte gUnk_03000F50
_080575C4: .4byte gUnk_02002F00
thumb_func_start sub_080575C8
sub_080575C8: @ 0x080575C8
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
ldr r0, _08057664 @ =gUnk_0200B650
movs r5, #0
str r5, [r0]
movs r0, #0x80
lsls r0, r0, #0x13
strh r5, [r0]
adds r0, r4, #0
bl sub_0801D7EC
ldr r0, _08057668 @ =gUnk_02034350
strb r4, [r0, #0x10]
ldr r3, _0805766C @ =gUnk_03000BF0
movs r0, #0xc
ldrsh r1, [r3, r0]
ldrh r0, [r3, #8]
subs r1, r1, r0
asrs r0, r1, #3
adds r1, r1, r0
ldr r2, _08057670 @ =gUnk_03000F50
movs r7, #0x3f
adds r0, r1, #0
ands r0, r7
strh r0, [r2, #0x30]
strh r5, [r2, #0x2e]
adds r0, r1, #0
cmp r1, #0
bge _08057604
adds r0, #0x3f
_08057604:
asrs r0, r0, #6
lsls r0, r0, #9
ldr r4, _08057674 @ =gUnk_02002F00
adds r0, r0, r4
str r0, [r2, #0x34]
ldr r0, _08057678 @ =0x00001D49
strh r0, [r2, #0x2c]
movs r6, #1
strh r6, [r2, #0x32]
movs r0, #0xc
ldrsh r1, [r3, r0]
ldrh r0, [r3, #8]
subs r1, r1, r0
asrs r0, r1, #2
adds r1, r1, r0
adds r0, r1, #0
ands r0, r7
strh r0, [r2, #0x18]
strh r5, [r2, #0x16]
adds r0, r1, #0
cmp r0, #0
bge _08057632
adds r0, #0x3f
_08057632:
asrs r0, r0, #6
lsls r0, r0, #9
movs r3, #0x80
lsls r3, r3, #6
adds r1, r4, r3
adds r0, r0, r1
str r0, [r2, #0x1c]
ldr r0, _0805767C @ =0x00001E49
strh r0, [r2, #0x14]
strh r6, [r2, #0x1a]
adds r1, r2, #0
adds r1, #0x66
ldr r0, _08057680 @ =0x00003C48
strh r0, [r1]
adds r1, #2
ldr r0, _08057684 @ =0x00000609
strh r0, [r1]
ldrh r0, [r2]
movs r3, #0xa0
lsls r3, r3, #4
adds r1, r3, #0
orrs r0, r1
strh r0, [r2]
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08057664: .4byte gUnk_0200B650
_08057668: .4byte gUnk_02034350
_0805766C: .4byte gUnk_03000BF0
_08057670: .4byte gUnk_03000F50
_08057674: .4byte gUnk_02002F00
_08057678: .4byte 0x00001D49
_0805767C: .4byte 0x00001E49
_08057680: .4byte 0x00003C48
_08057684: .4byte 0x00000609
thumb_func_start sub_08057688
sub_08057688: @ 0x08057688
ldr r0, _08057694 @ =gUnk_03000F50
ldr r1, _08057698 @ =0x00001D48
strh r1, [r0, #0x2c]
ldr r1, _0805769C @ =0x00001E48
strh r1, [r0, #0x14]
bx lr
.align 2, 0
_08057694: .4byte gUnk_03000F50
_08057698: .4byte 0x00001D48
_0805769C: .4byte 0x00001E48
thumb_func_start sub_080576A0
sub_080576A0: @ 0x080576A0
push {r4, lr}
adds r4, r0, #0
ldr r0, _080576BC @ =gUnk_02034350
ldrb r0, [r0, #0x10]
bl sub_0801D7EC
movs r0, #0
str r0, [r4, #0x38]
str r0, [r4, #0x3c]
adds r0, r4, #0
bl sub_0805754C
pop {r4, pc}
.align 2, 0
_080576BC: .4byte gUnk_02034350
thumb_func_start sub_080576C0
sub_080576C0: @ 0x080576C0
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080576EC
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x38]
ldr r2, _080576E8 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r0, r0, r1
subs r0, #0x20
str r0, [r4, #0x20]
ldrh r0, [r4, #0x3a]
ldrh r1, [r2, #8]
adds r0, r0, r1
subs r0, #0x20
str r0, [r4, #0x24]
b _080577AA
.align 2, 0
_080576E8: .4byte gUnk_03000BF0
_080576EC:
ldr r0, [r4, #0x20]
ldr r1, [r4, #0x24]
movs r2, #0x40
movs r3, #0x40
bl sub_0806FBFC
cmp r0, #0
beq _080577A8
ldr r5, _08057738 @ =gUnk_02033A90
ldr r0, [r4, #0x20]
adds r0, #0x20
strh r0, [r5, #0x12]
ldr r1, [r4, #0x24]
ldr r2, _0805773C @ =gUnk_08107C6C
ldrb r0, [r4, #0xa]
adds r0, r0, r2
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
adds r0, #0x20
adds r1, r1, r0
strh r1, [r5, #0x14]
adds r0, r4, #0
adds r0, #0x34
ldrb r0, [r0]
strb r0, [r5, #0x16]
ldrb r0, [r4, #0xa]
strb r0, [r5, #0x17]
movs r0, #0x14
bl GetProgressFlag
cmp r0, #0
bne _08057740
movs r0, #1
strb r0, [r5, #0x18]
movs r0, #5
strb r0, [r5, #0x17]
b _080577AA
.align 2, 0
_08057738: .4byte gUnk_02033A90
_0805773C: .4byte gUnk_08107C6C
_08057740:
ldr r2, _08057758 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x20
ands r0, r1
cmp r0, #0
beq _0805775C
ldrb r0, [r2, #2]
cmp r0, #0
bne _0805775C
movs r0, #2
strb r0, [r5, #0x18]
b _0805776A
.align 2, 0
_08057758: .4byte gUnk_03003F80
_0805775C:
bl sub_08057810
cmp r0, #0
beq _0805776A
ldr r1, _080577A0 @ =gUnk_02033A90
movs r0, #3
strb r0, [r1, #0x18]
_0805776A:
ldrh r0, [r4, #0x38]
ldrh r1, [r4, #0x3a]
ldrb r2, [r4, #0xe]
bl sub_080002C0
cmp r0, #0x3d
bne _080577AA
ldrh r0, [r4, #0x38]
ldr r2, _080577A4 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r0, r0, r1
ldrh r1, [r4, #0x3a]
ldrh r2, [r2, #8]
adds r1, r1, r2
ldrb r2, [r4, #0xe]
bl sub_080577AC
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080577AA
movs r0, #1
strb r0, [r4, #0xf]
movs r0, #0xa9
lsls r0, r0, #1
bl sub_080A3268
b _080577AA
.align 2, 0
_080577A0: .4byte gUnk_02033A90
_080577A4: .4byte gUnk_03000BF0
_080577A8:
strb r0, [r4, #0xf]
_080577AA:
pop {r4, r5, pc}
thumb_func_start sub_080577AC
sub_080577AC: @ 0x080577AC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r7, r1, #0
mov r8, r2
bl sub_08000E50
adds r5, r0, #0
movs r0, #7
ands r0, r5
cmp r0, #0
bne _08057808
movs r0, #0xf
movs r1, #0x26
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _08057808
lsrs r3, r5, #8
movs r0, #0xf
ands r3, r0
lsrs r2, r5, #0x10
ands r2, r0
cmp r2, #4
ble _080577E6
rsbs r2, r2, #0
_080577E6:
lsrs r0, r5, #0x18
movs r1, #1
ands r0, r1
cmp r0, #0
beq _080577F2
rsbs r3, r3, #0
_080577F2:
adds r0, r6, r3
strh r0, [r4, #0x2e]
adds r0, r7, r2
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x38
mov r1, r8
strb r1, [r0]
adds r0, r4, #0
bl sub_08016A04
_08057808:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08057810
sub_08057810: @ 0x08057810
push {lr}
ldr r2, _08057848 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08057850
adds r0, r2, #0
adds r0, #0xaa
ldrb r0, [r0]
cmp r0, #0
bne _08057850
ldr r0, _0805784C @ =gUnk_02033A90
ldrb r0, [r0, #0x17]
cmp r0, #6
beq _08057850
ldrb r0, [r2, #5]
cmp r0, #0
bne _08057850
adds r0, r2, #0
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #1
bgt _08057850
cmp r0, #0
blt _08057850
movs r0, #1
b _08057852
.align 2, 0
_08057848: .4byte gUnk_03003F80
_0805784C: .4byte gUnk_02033A90
_08057850:
movs r0, #0
_08057852:
pop {pc}
thumb_func_start sub_08057854
sub_08057854: @ 0x08057854
push {lr}
ldr r2, _08057868 @ =gUnk_08107C70
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08057868: .4byte gUnk_08107C70
thumb_func_start sub_0805786C
sub_0805786C: @ 0x0805786C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
mov r8, r0
bl sub_080805F8
ldr r6, _080578D4 @ =gUnk_03004030
ldrb r0, [r6, #8]
cmp r0, #0
beq _08057914
ldr r0, [r6]
cmp r0, #0
bne _080578C0
movs r0, #0xff
strb r0, [r6, #0xa]
ldr r0, _080578D8 @ =gUnk_03000BF0
ldrb r5, [r0, #5]
ldr r7, _080578DC @ =gUnk_08107DC0
ldrb r0, [r0, #4]
lsls r0, r0, #2
adds r0, r0, r7
ldr r4, [r0]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08057AA8
adds r4, r0, #0
cmp r4, #0
beq _080578C0
ldrb r5, [r4, #5]
ldrb r0, [r4, #4]
lsls r0, r0, #2
adds r0, r0, r7
ldr r4, [r0]
adds r0, r4, #0
adds r1, r5, #0
bl sub_08057AA8
adds r4, r0, #0
cmp r4, #0
beq _080578C0
str r4, [r6]
_080578C0:
ldr r0, _080578D8 @ =gUnk_03000BF0
ldrb r5, [r0, #5]
ldr r1, _080578DC @ =gUnk_08107DC0
ldrb r0, [r0, #4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r4, [r0]
movs r6, #0x81
lsls r6, r6, #7
b _08057906
.align 2, 0
_080578D4: .4byte gUnk_03004030
_080578D8: .4byte gUnk_03000BF0
_080578DC: .4byte gUnk_08107DC0
_080578E0:
ldrh r1, [r4]
adds r1, #0x3f
adds r0, r6, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r4]
adds r1, #0x40
adds r0, r6, #0
movs r2, #1
bl sub_0800015E
ldrh r1, [r4]
adds r1, #0x41
adds r0, r6, #0
movs r2, #1
bl sub_0800015E
adds r4, #8
_08057906:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08057AA8
adds r4, r0, #0
cmp r4, #0
bne _080578E0
_08057914:
movs r0, #1
mov r1, r8
strb r0, [r1, #0xc]
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08057920
sub_08057920: @ 0x08057920
push {r4, r5, r6, lr}
adds r6, r0, #0
ldr r0, _08057934 @ =gUnk_03000BF0
ldrb r5, [r0, #5]
ldr r1, _08057938 @ =gUnk_08107DC0
ldrb r0, [r0, #4]
lsls r0, r0, #2
adds r0, r0, r1
ldr r4, [r0]
b _0805793E
.align 2, 0
_08057934: .4byte gUnk_03000BF0
_08057938: .4byte gUnk_08107DC0
_0805793C:
adds r4, #8
_0805793E:
adds r0, r4, #0
adds r1, r5, #0
bl sub_08057AA8
adds r4, r0, #0
cmp r4, #0
beq _08057958
adds r0, r6, #0
adds r1, r4, #0
bl sub_0805795C
cmp r0, #0
beq _0805793C
_08057958:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0805795C
sub_0805795C: @ 0x0805795C
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r6, r1, #0
ldr r0, _080579BC @ =gUnk_03004030
ldrb r0, [r0, #8]
cmp r0, #0
beq _080579C8
ldr r1, _080579C0 @ =gLinkEntity
ldr r3, _080579C4 @ =gUnk_03000BF0
ldrh r2, [r1, #0x2e]
ldrh r0, [r3, #6]
subs r2, r2, r0
lsls r2, r2, #0x10
lsrs r2, r2, #0x10
ldrh r0, [r1, #0x32]
ldrh r1, [r3, #8]
subs r0, r0, r1
lsls r0, r0, #0x10
lsrs r4, r0, #0x10
ldrh r3, [r6]
movs r1, #0x3f
ands r1, r3
lsls r1, r1, #4
adds r1, #8
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r3
lsls r0, r0, #0xe
movs r3, #0xc0
lsls r3, r3, #0xd
adds r0, r0, r3
lsrs r3, r0, #0x10
subs r2, r2, r1
adds r0, r2, #0
adds r0, #0x18
cmp r0, #0x30
bhi _08057A14
subs r0, r4, r3
adds r0, #8
cmp r0, #0x10
bhi _08057A14
cmp r4, r3
bhs _08057A00
adds r0, r2, #0
adds r0, #0xc
cmp r0, #0x18
bls _08057A14
b _08057A00
.align 2, 0
_080579BC: .4byte gUnk_03004030
_080579C0: .4byte gLinkEntity
_080579C4: .4byte gUnk_03000BF0
_080579C8:
ldr r3, _08057A0C @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldr r2, _08057A10 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r4, r0, #4
movs r1, #0x3f
ands r4, r1
movs r0, #0x32
ldrsh r5, [r3, r0]
ldrh r2, [r2, #8]
subs r0, r5, r2
asrs r0, r0, #4
ands r0, r1
lsls r0, r0, #6
orrs r4, r0
ldrh r1, [r6]
cmp r4, r1
bne _08057A14
lsrs r0, r4, #6
lsls r0, r0, #4
adds r0, r2, r0
adds r0, #6
lsls r0, r0, #0x10
lsrs r3, r0, #0x10
cmp r5, r3
bge _08057A14
_08057A00:
adds r0, r7, #0
adds r1, r6, #0
bl sub_08057A18
movs r0, #1
b _08057A16
.align 2, 0
_08057A0C: .4byte gLinkEntity
_08057A10: .4byte gUnk_03000BF0
_08057A14:
movs r0, #0
_08057A16:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08057A18
sub_08057A18: @ 0x08057A18
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
adds r5, r1, #0
bl sub_0805E5A8
ldr r6, _08057A94 @ =gUnk_03004030
ldrb r0, [r6, #9]
strb r0, [r6, #0xa]
ldr r3, _08057A98 @ =gUnk_03000BF0
ldrb r0, [r3, #4]
strb r0, [r6, #9]
ldr r1, _08057A9C @ =gUnk_030010A0
ldrb r0, [r5, #4]
strb r0, [r1, #0xc]
ldrb r0, [r5, #5]
strb r0, [r1, #0xd]
ldrb r0, [r5, #4]
strb r0, [r3, #4]
ldrb r0, [r5, #5]
strb r0, [r3, #5]
str r5, [r6]
ldr r4, _08057AA0 @ =gLinkEntity
ldrh r1, [r4, #0x2e]
ldrh r0, [r3, #6]
subs r1, r1, r0
ldrh r2, [r5]
movs r0, #0x3f
ands r0, r2
lsls r0, r0, #4
subs r1, r1, r0
strh r1, [r6, #4]
ldrh r1, [r4, #0x32]
ldrh r0, [r3, #8]
subs r1, r1, r0
ldrh r2, [r5]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r2
lsrs r0, r0, #2
subs r1, r1, r0
strh r1, [r6, #6]
ldrb r1, [r6, #8]
cmp r1, #0
bne _08057A86
ldrb r0, [r5, #5]
movs r2, #0x80
orrs r0, r2
ldrb r3, [r6, #0xb]
cmp r0, r3
beq _08057A80
ldr r0, _08057AA4 @ =gUnk_02034480
strh r1, [r0]
_08057A80:
ldrb r0, [r5, #5]
orrs r0, r2
strb r0, [r6, #0xb]
_08057A86:
ldrb r0, [r5, #3]
bl sub_08080930
adds r0, r7, #0
bl sub_0805E900
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08057A94: .4byte gUnk_03004030
_08057A98: .4byte gUnk_03000BF0
_08057A9C: .4byte gUnk_030010A0
_08057AA0: .4byte gLinkEntity
_08057AA4: .4byte gUnk_02034480
thumb_func_start sub_08057AA8
sub_08057AA8: @ 0x08057AA8
push {lr}
adds r2, r0, #0
ldrh r0, [r2]
ldr r3, _08057AC0 @ =0x0000FFFF
cmp r0, r3
beq _08057ACC
_08057AB4:
ldrb r0, [r2, #2]
cmp r0, r1
bne _08057AC4
adds r0, r2, #0
b _08057ACE
.align 2, 0
_08057AC0: .4byte 0x0000FFFF
_08057AC4:
adds r2, #8
ldrh r0, [r2]
cmp r0, r3
bne _08057AB4
_08057ACC:
movs r0, #0
_08057ACE:
pop {pc}
thumb_func_start sub_08057AD0
sub_08057AD0: @ 0x08057AD0
push {lr}
ldr r2, _08057AE4 @ =gUnk_08108044
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08057AE4: .4byte gUnk_08108044
thumb_func_start sub_08057AE8
sub_08057AE8: @ 0x08057AE8
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
movs r1, #3
ands r1, r0
lsls r1, r1, #1
ldrb r0, [r5, #0xe]
cmp r0, #1
bne _08057B04
ldr r0, _08057B00 @ =0x00000323
strh r0, [r5, #0x30]
b _08057B12
.align 2, 0
_08057B00: .4byte 0x00000323
_08057B04:
movs r0, #2
ands r0, r1
movs r2, #0x36
cmp r0, #0
beq _08057B10
movs r2, #0x37
_08057B10:
strh r2, [r5, #0x30]
_08057B12:
ldr r2, _08057B9C @ =gUnk_08108024
lsls r3, r1, #1
adds r0, r3, r2
ldrh r0, [r0]
movs r4, #0
strh r0, [r5, #0x28]
adds r1, #1
lsls r1, r1, #1
adds r2, r1, r2
ldrh r0, [r2]
strh r0, [r5, #0x2a]
ldr r2, _08057BA0 @ =gUnk_08108034
adds r3, r3, r2
ldrh r0, [r3]
strh r0, [r5, #0x2c]
adds r1, r1, r2
ldrh r0, [r1]
strh r0, [r5, #0x2e]
ldrb r2, [r5, #0xb]
lsrs r0, r2, #2
movs r1, #0xf
ands r0, r1
adds r0, #1
strh r0, [r5, #0x32]
movs r0, #0x1c
strb r0, [r5, #0xe]
strb r4, [r5, #0xf]
movs r0, #0x80
ands r0, r2
movs r1, #1
cmp r0, #0
beq _08057B54
movs r1, #2
_08057B54:
strb r1, [r5, #0xc]
cmp r1, #2
bne _08057B9A
ldrh r0, [r5, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08057B9A
ldrh r0, [r5, #0x32]
cmp r0, #0
beq _08057B94
_08057B6A:
ldrh r1, [r5, #0x28]
ldrh r2, [r5, #0x2a]
adds r0, r5, #0
bl sub_08057CA4
ldrh r0, [r5, #0x30]
movs r2, #0x38
ldrsh r1, [r5, r2]
movs r3, #0x3a
ldrsh r2, [r5, r3]
lsls r2, r2, #6
orrs r1, r2
ldrh r2, [r5, #0x3c]
bl sub_0807B7D8
ldrh r0, [r5, #0x32]
subs r0, #1
strh r0, [r5, #0x32]
lsls r0, r0, #0x10
cmp r0, #0
bne _08057B6A
_08057B94:
adds r0, r5, #0
bl sub_0805E900
_08057B9A:
pop {r4, r5, pc}
.align 2, 0
_08057B9C: .4byte gUnk_08108024
_08057BA0: .4byte gUnk_08108034
thumb_func_start sub_08057BA4
sub_08057BA4: @ 0x08057BA4
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 _08057C24
movs r0, #8
strb r0, [r4, #0xe]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08057BF6
ldrh r0, [r4, #0x32]
ldrb r1, [r4, #0xf]
cmp r0, r1
beq _08057C24
ldrh r1, [r4, #0x28]
ldrh r2, [r4, #0x2a]
adds r0, r4, #0
bl sub_08057CA4
ldrh r0, [r4, #0x30]
movs r2, #0x38
ldrsh r1, [r4, r2]
movs r3, #0x3a
ldrsh r2, [r4, r3]
lsls r2, r2, #6
orrs r1, r2
ldrh r2, [r4, #0x3c]
bl sub_0807B7D8
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
movs r0, #0x71
bl sub_080A3268
b _08057C24
_08057BF6:
ldrb r0, [r4, #0xf]
cmp r0, #0
beq _08057C24
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
lsls r1, r1, #6
orrs r0, r1
ldrh r1, [r4, #0x3c]
bl sub_0807BA8C
ldrh r1, [r4, #0x2c]
ldrh r2, [r4, #0x2e]
adds r0, r4, #0
bl sub_08057CA4
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r0, #0x71
bl sub_080A3268
_08057C24:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08057C28
sub_08057C28: @ 0x08057C28
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #0
bne _08057C44
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08057C9C
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _08057C9C
_08057C44:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08057C9C
movs r0, #8
strb r0, [r4, #0xe]
ldrh r0, [r4, #0x32]
ldrb r1, [r4, #0xf]
cmp r0, r1
beq _08057C88
ldrh r1, [r4, #0x28]
ldrh r2, [r4, #0x2a]
adds r0, r4, #0
bl sub_08057CA4
ldrh r0, [r4, #0x30]
movs r2, #0x38
ldrsh r1, [r4, r2]
movs r3, #0x3a
ldrsh r2, [r4, r3]
lsls r2, r2, #6
orrs r1, r2
ldrh r2, [r4, #0x3c]
bl sub_0807B7D8
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
movs r0, #0x71
bl sub_080A3268
b _08057C9C
_08057C88:
ldrh r1, [r4, #0x30]
ldr r0, _08057CA0 @ =0x00000323
cmp r1, r0
beq _08057C96
movs r0, #0x72
bl sub_080A3268
_08057C96:
adds r0, r4, #0
bl sub_0805E900
_08057C9C:
pop {r4, pc}
.align 2, 0
_08057CA0: .4byte 0x00000323
thumb_func_start sub_08057CA4
sub_08057CA4: @ 0x08057CA4
ldrh r3, [r0, #0x38]
adds r3, r3, r1
strh r3, [r0, #0x38]
ldrh r1, [r0, #0x3a]
adds r1, r1, r2
strh r1, [r0, #0x3a]
bx lr
.align 2, 0
thumb_func_start sub_08057CB4
sub_08057CB4: @ 0x08057CB4
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08057CD6
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
bl sub_0804B128
str r0, [r4, #0x20]
cmp r0, #0
bne _08057CD6
adds r0, r4, #0
bl sub_0805E900
b _08057D42
_08057CD6:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _08057CE4
ldr r0, _08057D44 @ =gUnk_03003F80
ldrb r0, [r0, #0x12]
cmp r0, #0x1e
bne _08057D42
_08057CE4:
ldr r4, [r4, #0x20]
ldrh r0, [r4]
ldr r1, _08057D48 @ =0x0000FFFF
cmp r0, r1
beq _08057D42
ldr r5, _08057D4C @ =gLinkEntity
adds r6, r1, #0
_08057CF2:
ldrb r2, [r4, #7]
movs r0, #3
ands r0, r2
adds r1, r5, #0
adds r1, #0x38
ldrb r1, [r1]
ands r0, r1
cmp r0, #0
beq _08057D3A
ldr r0, _08057D44 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08057D18
movs r0, #0x10
ands r0, r2
cmp r0, #0
beq _08057D3A
_08057D18:
ldrh r0, [r4]
ldrh r1, [r4, #2]
ldrb r2, [r4, #4]
ldrb r3, [r4, #5]
bl sub_0800293E
cmp r0, #0
beq _08057D3A
movs r1, #0x36
ldrsh r0, [r5, r1]
cmp r0, #0
bne _08057D3A
ldrb r0, [r4, #6]
bl sub_0804B128
bl sub_08080840
_08057D3A:
adds r4, #8
ldrh r0, [r4]
cmp r0, r6
bne _08057CF2
_08057D42:
pop {r4, r5, r6, pc}
.align 2, 0
_08057D44: .4byte gUnk_03003F80
_08057D48: .4byte 0x0000FFFF
_08057D4C: .4byte gLinkEntity
thumb_func_start sub_08057D50
sub_08057D50: @ 0x08057D50
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08057D7C
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
adds r1, r4, #0
adds r1, #0x20
movs r0, #0xff
strb r0, [r1]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldr r1, _08057DC0 @ =sub_08057E30
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_08057D7C:
adds r0, r4, #0
bl sub_08057E40
cmp r0, #0
beq _08057D9A
ldr r0, _08057DC4 @ =gUnk_02034350
ldrb r5, [r0, #0x10]
adds r1, r4, #0
adds r1, #0x20
ldrb r0, [r1]
cmp r0, r5
beq _08057D9A
movs r0, #0
strb r5, [r1]
strb r0, [r4, #0xe]
_08057D9A:
ldr r0, _08057DC8 @ =gUnk_03000BF0
ldrh r3, [r0]
cmp r3, #0
bne _08057E2A
adds r0, r4, #0
adds r0, #0x20
ldrb r5, [r0]
lsls r1, r5, #6
ldr r0, _08057DCC @ =gUnk_081080A4
adds r2, r1, r0
ldrb r1, [r4, #0xe]
cmp r1, #7
bgt _08057DD0
cmp r1, #1
bge _08057E04
cmp r1, #0
beq _08057DD6
b _08057E2A
.align 2, 0
_08057DC0: .4byte sub_08057E30
_08057DC4: .4byte gUnk_02034350
_08057DC8: .4byte gUnk_03000BF0
_08057DCC: .4byte gUnk_081080A4
_08057DD0:
cmp r1, #8
beq _08057E20
b _08057E2A
_08057DD6:
ldr r1, _08057DF8 @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
ldr r0, [r2]
ldr r1, _08057DFC @ =gUnk_085A2E80
adds r0, r0, r1
ldr r1, [r2, #4]
movs r2, #0x80
lsls r2, r2, #5
bl sub_08000E96
ldr r0, _08057E00 @ =gUnk_081081E4
adds r0, r5, r0
ldrb r0, [r0]
bl sub_0801D714
b _08057E24
.align 2, 0
_08057DF8: .4byte gUnk_02034490
_08057DFC: .4byte gUnk_085A2E80
_08057E00: .4byte gUnk_081081E4
_08057E04:
lsls r1, r1, #3
adds r1, r1, r2
ldr r0, [r1]
ldr r2, _08057E1C @ =gUnk_085A2E80
adds r0, r0, r2
ldr r1, [r1, #4]
movs r2, #0x80
lsls r2, r2, #5
bl sub_08000E96
b _08057E24
.align 2, 0
_08057E1C: .4byte gUnk_085A2E80
_08057E20:
ldr r0, _08057E2C @ =gUnk_02034490
strb r3, [r0]
_08057E24:
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
_08057E2A:
pop {r4, r5, pc}
.align 2, 0
_08057E2C: .4byte gUnk_02034490
thumb_func_start sub_08057E30
sub_08057E30: @ 0x08057E30
push {lr}
ldr r0, _08057E3C @ =gUnk_02034350
ldrb r0, [r0, #0x10]
bl sub_08057E7C
pop {pc}
.align 2, 0
_08057E3C: .4byte gUnk_02034350
thumb_func_start sub_08057E40
sub_08057E40: @ 0x08057E40
push {lr}
ldr r0, _08057E54 @ =gUnk_08108050
bl sub_08056300
adds r1, r0, #0
cmp r1, #0xff
bne _08057E58
movs r0, #0
b _08057E5E
.align 2, 0
_08057E54: .4byte gUnk_08108050
_08057E58:
ldr r0, _08057E60 @ =gUnk_02034350
strb r1, [r0, #0x10]
movs r0, #1
_08057E5E:
pop {pc}
.align 2, 0
_08057E60: .4byte gUnk_02034350
thumb_func_start sub_08057E64
sub_08057E64: @ 0x08057E64
push {lr}
ldr r0, _08057E78 @ =gUnk_08108050
bl sub_08056300
cmp r0, #0xff
beq _08057E74
bl sub_08057E7C
_08057E74:
pop {pc}
.align 2, 0
_08057E78: .4byte gUnk_08108050
thumb_func_start sub_08057E7C
sub_08057E7C: @ 0x08057E7C
push {r4, r5, r6, lr}
adds r4, r0, #0
cmp r4, #4
bhi _08057EB6
ldr r0, _08057EB8 @ =gUnk_081081E4
adds r0, r4, r0
ldrb r0, [r0]
bl sub_0801D714
lsls r1, r4, #6
ldr r0, _08057EBC @ =gUnk_081080A4
adds r1, r1, r0
movs r3, #0
ldr r2, _08057EC0 @ =0x040000D4
ldr r6, _08057EC4 @ =gUnk_085A2E80
ldr r5, _08057EC8 @ =0x84000400
_08057E9C:
ldr r0, [r1]
adds r0, r0, r6
str r0, [r2]
ldr r0, [r1, #4]
str r0, [r2, #4]
str r5, [r2, #8]
ldr r0, [r2, #8]
adds r3, #1
adds r1, #8
cmp r3, #7
bls _08057E9C
ldr r0, _08057ECC @ =gUnk_02034350
strb r4, [r0, #0x10]
_08057EB6:
pop {r4, r5, r6, pc}
.align 2, 0
_08057EB8: .4byte gUnk_081081E4
_08057EBC: .4byte gUnk_081080A4
_08057EC0: .4byte 0x040000D4
_08057EC4: .4byte gUnk_085A2E80
_08057EC8: .4byte 0x84000400
_08057ECC: .4byte gUnk_02034350
thumb_func_start sub_08057ED0
sub_08057ED0: @ 0x08057ED0
push {r4, lr}
adds r4, r0, #0
bl sub_08057F20
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _08057EF2
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _08057EF4 @ =gUnk_03000F50
strh r1, [r0, #0x1a]
strh r1, [r0, #0x32]
ldr r1, _08057EF8 @ =sub_08057EFC
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_08057EF2:
pop {r4, pc}
.align 2, 0
_08057EF4: .4byte gUnk_03000F50
_08057EF8: .4byte sub_08057EFC
thumb_func_start sub_08057EFC
sub_08057EFC: @ 0x08057EFC
push {r4, lr}
adds r4, r0, #0
ldr r0, _08057F1C @ =gUnk_02034350
ldrb r0, [r0, #0x10]
bl sub_0801D7EC
bl sub_08058034
movs r0, #0
str r0, [r4, #0x3c]
str r0, [r4, #0x38]
adds r0, r4, #0
bl sub_08057F20
pop {r4, pc}
.align 2, 0
_08057F1C: .4byte gUnk_02034350
thumb_func_start sub_08057F20
sub_08057F20: @ 0x08057F20
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r7, r0, #0
ldr r5, _08057FF4 @ =gUnk_03000BF0
movs r0, #0xa
ldrsh r1, [r5, r0]
ldrh r0, [r5, #6]
subs r4, r1, r0
lsrs r2, r4, #3
adds r2, r4, r2
ldrh r0, [r5, #0x1e]
movs r1, #0x80
lsls r1, r1, #3
subs r0, r1, r0
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r4, r2, r0
ldr r6, _08057FF8 @ =gUnk_03000F50
adds r0, r4, #0
movs r1, #0xf
ands r0, r1
strh r0, [r6, #0x2e]
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r1, [r5, #8]
subs r0, r0, r1
movs r1, #0x30
subs r0, r1, r0
asrs r0, r0, #2
mov sl, r1
mov r1, sl
subs r0, r1, r0
strh r0, [r6, #0x30]
ldr r0, _08057FFC @ =gUnk_02001A40
mov r8, r0
str r0, [r6, #0x34]
ldr r1, _08058000 @ =gUnk_02006F00
mov sb, r1
adds r0, r4, #0
mov r2, r8
bl sub_08058004
lsrs r0, r4, #4
lsls r4, r0, #1
ldr r0, [r7, #0x38]
cmp r0, r4
beq _08057F8C
str r4, [r7, #0x38]
movs r0, #1
strh r0, [r6, #0x32]
_08057F8C:
movs r0, #0xa
ldrsh r1, [r5, r0]
ldrh r0, [r5, #6]
subs r4, r1, r0
lsrs r2, r4, #2
adds r2, r4, r2
ldrh r0, [r5, #0x1e]
movs r1, #0x80
lsls r1, r1, #3
subs r0, r1, r0
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r4, r2, r0
adds r0, r4, #0
movs r1, #0xf
ands r0, r1
strh r0, [r6, #0x16]
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r1, [r5, #8]
subs r0, r0, r1
movs r1, #0x30
subs r0, r1, r0
asrs r0, r0, #1
mov r1, sl
subs r0, r1, r0
strh r0, [r6, #0x18]
movs r2, #0x80
lsls r2, r2, #4
add r2, r8
str r2, [r6, #0x1c]
movs r1, #0x80
lsls r1, r1, #6
add r1, sb
adds r0, r4, #0
bl sub_08058004
lsrs r0, r4, #4
lsls r4, r0, #1
ldr r0, [r7, #0x3c]
cmp r0, r4
beq _08057FE8
str r4, [r7, #0x3c]
movs r0, #1
strh r0, [r6, #0x1a]
_08057FE8:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08057FF4: .4byte gUnk_03000BF0
_08057FF8: .4byte gUnk_03000F50
_08057FFC: .4byte gUnk_02001A40
_08058000: .4byte gUnk_02006F00
thumb_func_start sub_08058004
sub_08058004: @ 0x08058004
push {r4, r5, r6, lr}
movs r4, #0x20
lsrs r0, r0, #4
lsls r0, r0, #2
adds r1, r1, r0
ldr r3, _0805802C @ =0x040000D4
ldr r6, _08058030 @ =0x80000020
movs r5, #0x80
lsls r5, r5, #1
_08058016:
str r1, [r3]
str r2, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r1, r1, r5
adds r2, #0x40
subs r4, #1
cmp r4, #0
bne _08058016
pop {r4, r5, r6, pc}
.align 2, 0
_0805802C: .4byte 0x040000D4
_08058030: .4byte 0x80000020
thumb_func_start sub_08058034
sub_08058034: @ 0x08058034
push {r4, r5, r6, lr}
ldr r6, _08058080 @ =gUnk_02002F00
movs r0, #0x80
lsls r0, r0, #7
adds r5, r6, r0
movs r4, #0
_08058040:
adds r0, r6, #0
adds r1, r5, #0
bl sub_08058084
movs r1, #0x80
lsls r1, r1, #4
adds r6, r6, r1
adds r5, #0x40
adds r4, #1
cmp r4, #3
bls _08058040
ldr r0, _08058080 @ =gUnk_02002F00
movs r1, #0x80
lsls r1, r1, #6
adds r6, r0, r1
movs r1, #0xc0
lsls r1, r1, #7
adds r5, r0, r1
movs r4, #0
_08058066:
adds r0, r6, #0
adds r1, r5, #0
bl sub_08058084
movs r0, #0x80
lsls r0, r0, #4
adds r6, r6, r0
adds r5, #0x40
adds r4, #1
cmp r4, #3
bls _08058066
pop {r4, r5, r6, pc}
.align 2, 0
_08058080: .4byte gUnk_02002F00
thumb_func_start sub_08058084
sub_08058084: @ 0x08058084
push {r4, r5, r6, lr}
adds r3, r0, #0
movs r4, #0
ldr r2, _080580A8 @ =0x040000D4
ldr r6, _080580AC @ =0x80000020
movs r5, #0x80
lsls r5, r5, #1
_08058092:
str r3, [r2]
str r1, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
adds r4, #1
adds r3, #0x40
adds r1, r1, r5
cmp r4, #0x1f
bls _08058092
pop {r4, r5, r6, pc}
.align 2, 0
_080580A8: .4byte 0x040000D4
_080580AC: .4byte 0x80000020
thumb_func_start sub_080580B0
sub_080580B0: @ 0x080580B0
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
sub sp, #4
adds r4, r0, #0
ldr r0, _080581B0 @ =gUnk_0200B650
movs r1, #0
str r1, [r0]
movs r0, #0x80
lsls r0, r0, #0x13
strh r1, [r0]
adds r0, r4, #0
bl sub_0801D7EC
ldr r0, _080581B4 @ =gUnk_02034350
strb r4, [r0, #0x10]
bl sub_08058034
ldr r5, _080581B8 @ =gUnk_03000BF0
movs r0, #0xa
ldrsh r1, [r5, r0]
ldrh r0, [r5, #6]
subs r7, r1, r0
asrs r2, r7, #3
adds r2, r7, r2
ldrh r0, [r5, #0x1e]
movs r4, #0x80
lsls r4, r4, #3
subs r0, r4, r0
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
adds r7, r2, r0
ldr r1, _080581BC @ =gUnk_02006F00
mov sb, r1
ldr r2, _080581C0 @ =gUnk_02001A40
mov r8, r2
adds r0, r7, #0
bl sub_08058004
ldr r0, _080581C4 @ =gUnk_03000F50
mov sl, r0
movs r1, #0xf
ands r7, r1
strh r7, [r0, #0x2e]
movs r2, #0xc
ldrsh r0, [r5, r2]
ldrh r1, [r5, #8]
subs r0, r0, r1
movs r6, #0x30
subs r0, r6, r0
asrs r0, r0, #1
movs r3, #0x30
subs r0, r3, r0
mov r1, sl
strh r0, [r1, #0x30]
ldr r0, _080581C8 @ =0x00001D09
strh r0, [r1, #0x2c]
mov r2, r8
str r2, [r1, #0x34]
movs r0, #1
strh r0, [r1, #0x32]
movs r2, #0xa
ldrsh r1, [r5, r2]
ldrh r0, [r5, #6]
subs r7, r1, r0
asrs r1, r7, #2
adds r1, r7, r1
ldrh r0, [r5, #0x1e]
subs r4, r4, r0
lsrs r0, r4, #0x1f
adds r4, r4, r0
asrs r4, r4, #1
adds r7, r1, r4
movs r0, #0x80
lsls r0, r0, #6
add sb, r0
movs r1, #0x80
lsls r1, r1, #4
add r8, r1
adds r0, r7, #0
mov r1, sb
mov r2, r8
str r3, [sp]
bl sub_08058004
movs r2, #0xf
ands r7, r2
mov r0, sl
strh r7, [r0, #0x16]
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r1, [r5, #8]
subs r0, r0, r1
subs r6, r6, r0
asrs r6, r6, #1
ldr r3, [sp]
subs r3, r3, r6
mov r2, sl
strh r3, [r2, #0x18]
ldr r0, _080581CC @ =0x00001E09
strh r0, [r2, #0x14]
mov r0, r8
str r0, [r2, #0x1c]
movs r1, #1
strh r1, [r2, #0x1a]
mov r1, sl
adds r1, #0x66
ldr r0, _080581D0 @ =0x00003C48
strh r0, [r1]
adds r1, #2
ldr r0, _080581D4 @ =0x00000609
strh r0, [r1]
ldrh r1, [r2]
movs r2, #0xa0
lsls r2, r2, #4
adds r0, r2, #0
orrs r0, r1
mov r1, sl
strh r0, [r1]
add sp, #4
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080581B0: .4byte gUnk_0200B650
_080581B4: .4byte gUnk_02034350
_080581B8: .4byte gUnk_03000BF0
_080581BC: .4byte gUnk_02006F00
_080581C0: .4byte gUnk_02001A40
_080581C4: .4byte gUnk_03000F50
_080581C8: .4byte 0x00001D09
_080581CC: .4byte 0x00001E09
_080581D0: .4byte 0x00003C48
_080581D4: .4byte 0x00000609
thumb_func_start sub_080581D8
sub_080581D8: @ 0x080581D8
push {r4, lr}
adds r4, r0, #0
bl sub_08058210
ldrb r1, [r4, #0xc]
cmp r1, #0
bne _080581F8
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _080581FC @ =gUnk_03000F50
strh r1, [r0, #0x1a]
ldr r1, _08058200 @ =sub_08058204
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_080581F8:
pop {r4, pc}
.align 2, 0
_080581FC: .4byte gUnk_03000F50
_08058200: .4byte sub_08058204
thumb_func_start sub_08058204
sub_08058204: @ 0x08058204
push {lr}
ldrb r0, [r0, #0xa]
bl sub_08058324
pop {pc}
.align 2, 0
thumb_func_start sub_08058210
sub_08058210: @ 0x08058210
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_08058244
adds r3, r0, #0
ldr r0, [r4, #0x3c]
cmp r0, r3
beq _08058234
str r3, [r4, #0x3c]
ldr r1, _08058238 @ =gUnk_02006F00
ldr r2, _0805823C @ =gUnk_02001A40
adds r0, r3, #0
bl sub_080582A0
ldr r1, _08058240 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0x1a]
_08058234:
pop {r4, pc}
.align 2, 0
_08058238: .4byte gUnk_02006F00
_0805823C: .4byte gUnk_02001A40
_08058240: .4byte gUnk_03000F50
thumb_func_start sub_08058244
sub_08058244: @ 0x08058244
push {r4, r5, r6, lr}
mov r6, r8
push {r6}
adds r6, r0, #0
ldr r5, _08058294 @ =gUnk_03000BF0
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r4, [r5, #8]
subs r0, r0, r4
lsls r0, r0, #5
ldrh r1, [r5, #0x20]
subs r1, #0xa0
bl __divsi3
ldr r2, _08058298 @ =gUnk_03000F50
mov r8, r2
adds r4, r4, r0
strh r4, [r2, #0x18]
movs r0, #0xa
ldrsh r1, [r5, r0]
ldrh r0, [r5, #6]
subs r1, r1, r0
ldr r0, _0805829C @ =gUnk_081081EC
lsls r6, r6, #1
adds r6, r6, r0
ldrh r0, [r6]
muls r0, r1, r0
ldrh r1, [r5, #0x1e]
subs r1, #0xf0
bl __divsi3
movs r2, #0xf
adds r1, r0, #0
ands r1, r2
mov r2, r8
strh r1, [r2, #0x16]
pop {r3}
mov r8, r3
pop {r4, r5, r6, pc}
.align 2, 0
_08058294: .4byte gUnk_03000BF0
_08058298: .4byte gUnk_03000F50
_0805829C: .4byte gUnk_081081EC
thumb_func_start sub_080582A0
sub_080582A0: @ 0x080582A0
push {r4, r5, r6, lr}
movs r4, #0x20
lsrs r0, r0, #4
lsls r0, r0, #2
adds r1, r1, r0
ldr r3, _080582C8 @ =0x040000D4
ldr r6, _080582CC @ =0x80000020
movs r5, #0x80
lsls r5, r5, #1
_080582B2:
str r1, [r3]
str r2, [r3, #4]
str r6, [r3, #8]
ldr r0, [r3, #8]
adds r1, r1, r5
adds r2, #0x40
subs r4, #1
cmp r4, #0
bne _080582B2
pop {r4, r5, r6, pc}
.align 2, 0
_080582C8: .4byte 0x040000D4
_080582CC: .4byte 0x80000020
thumb_func_start sub_080582D0
sub_080582D0: @ 0x080582D0
push {r4, r5, lr}
ldr r4, _080582F4 @ =gUnk_02002F00
movs r0, #0x80
lsls r0, r0, #7
adds r5, r4, r0
adds r0, r4, #0
adds r1, r5, #0
bl sub_080582F8
movs r0, #0x80
lsls r0, r0, #4
adds r4, r4, r0
adds r5, #0x40
adds r0, r4, #0
adds r1, r5, #0
bl sub_080582F8
pop {r4, r5, pc}
.align 2, 0
_080582F4: .4byte gUnk_02002F00
thumb_func_start sub_080582F8
sub_080582F8: @ 0x080582F8
push {r4, r5, r6, lr}
adds r3, r0, #0
movs r4, #0
ldr r2, _0805831C @ =0x040000D4
ldr r6, _08058320 @ =0x80000020
movs r5, #0x80
lsls r5, r5, #1
_08058306:
str r3, [r2]
str r1, [r2, #4]
str r6, [r2, #8]
ldr r0, [r2, #8]
adds r4, #1
adds r3, #0x40
adds r1, r1, r5
cmp r4, #0x1f
bls _08058306
pop {r4, r5, r6, pc}
.align 2, 0
_0805831C: .4byte 0x040000D4
_08058320: .4byte 0x80000020
thumb_func_start sub_08058324
sub_08058324: @ 0x08058324
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805836C @ =gUnk_0200B650
movs r0, #0
str r0, [r1]
adds r0, r4, #0
adds r0, #0x86
bl sub_0801D714
adds r0, r4, #0
adds r0, #0x36
bl sub_0801D7EC
bl sub_080582D0
adds r0, r4, #0
bl sub_08058244
ldr r1, _08058370 @ =gUnk_02006F00
ldr r4, _08058374 @ =gUnk_02001A40
adds r2, r4, #0
bl sub_080582A0
ldr r1, _08058378 @ =gUnk_03000F50
ldr r0, _0805837C @ =0x00001D47
strh r0, [r1, #0x14]
str r4, [r1, #0x1c]
movs r0, #1
strh r0, [r1, #0x1a]
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
pop {r4, pc}
.align 2, 0
_0805836C: .4byte gUnk_0200B650
_08058370: .4byte gUnk_02006F00
_08058374: .4byte gUnk_02001A40
_08058378: .4byte gUnk_03000F50
_0805837C: .4byte 0x00001D47
thumb_func_start sub_08058380
sub_08058380: @ 0x08058380
push {lr}
ldr r2, _08058394 @ =gUnk_081081F4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08058394: .4byte gUnk_081081F4
thumb_func_start sub_08058398
sub_08058398: @ 0x08058398
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _080583AA
bl sub_0805E780
_080583AA:
adds r0, r4, #0
adds r0, #0x3a
ldrb r1, [r0]
lsls r1, r1, #3
strh r1, [r4, #0x24]
adds r0, #1
ldrb r2, [r0]
lsls r2, r2, #3
strh r2, [r4, #0x26]
subs r0, #3
ldrb r0, [r0]
lsls r0, r0, #4
adds r1, r1, r0
strh r1, [r4, #0x20]
adds r0, r4, #0
adds r0, #0x39
ldrb r0, [r0]
lsls r0, r0, #4
adds r2, r2, r0
strh r2, [r4, #0x22]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldrh r0, [r4, #0x3e]
cmp r0, #0
bne _080583E4
movs r0, #2
b _080583E6
_080583E4:
movs r0, #1
_080583E6:
strb r0, [r4, #0xc]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080583EC
sub_080583EC: @ 0x080583EC
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08058404
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
bl sub_08058408
_08058404:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08058408
sub_08058408: @ 0x08058408
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r6, _0805843C @ =gUnk_03003F80
ldr r5, [r6, #0x30]
movs r0, #8
ands r5, r0
cmp r5, #0
bne _08058488
ldrh r0, [r4, #0x20]
ldrh r1, [r4, #0x22]
ldrh r2, [r4, #0x24]
ldrh r3, [r4, #0x26]
bl sub_0800293E
cmp r0, #0
beq _08058488
ldrb r0, [r4, #0xa]
cmp r0, #1
beq _08058488
cmp r0, #1
ble _08058450
cmp r0, #2
beq _08058440
cmp r0, #3
beq _0805847C
b _08058450
.align 2, 0
_0805843C: .4byte gUnk_03003F80
_08058440:
adds r0, r4, #0
bl sub_080585DC
ldr r0, [r6, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _08058488
_08058450:
adds r0, r4, #0
bl sub_080585DC
adds r0, r4, #0
bl sub_0805848C
cmp r0, #0
beq _08058488
movs r0, #3
bl sub_08078A90
bl sub_08078B48
bl sub_0805E544
movs r0, #0
movs r1, #3
strb r1, [r4, #0xc]
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
b _08058488
_0805847C:
movs r0, #4
strb r0, [r4, #0xc]
strb r5, [r4, #0xd]
ldrh r0, [r4, #0x36]
bl sub_080186C0
_08058488:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0805848C
sub_0805848C: @ 0x0805848C
push {lr}
ldr r0, _080584A4 @ =gUnk_03003F80
adds r0, #0xa8
ldrb r0, [r0]
subs r0, #5
cmp r0, #0x17
bhi _08058510
lsls r0, r0, #2
ldr r1, _080584A8 @ =_080584AC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080584A4: .4byte gUnk_03003F80
_080584A8: .4byte _080584AC
_080584AC: @ jump table
.4byte _0805850C @ case 0
.4byte _08058510 @ case 1
.4byte _0805850C @ case 2
.4byte _0805850C @ case 3
.4byte _08058510 @ case 4
.4byte _0805850C @ case 5
.4byte _0805850C @ case 6
.4byte _0805850C @ case 7
.4byte _0805850C @ case 8
.4byte _0805850C @ case 9
.4byte _0805850C @ case 10
.4byte _0805850C @ case 11
.4byte _0805850C @ case 12
.4byte _0805850C @ case 13
.4byte _0805850C @ case 14
.4byte _0805850C @ case 15
.4byte _0805850C @ case 16
.4byte _0805850C @ case 17
.4byte _0805850C @ case 18
.4byte _0805850C @ case 19
.4byte _08058510 @ case 20
.4byte _08058510 @ case 21
.4byte _0805850C @ case 22
.4byte _0805850C @ case 23
_0805850C:
movs r0, #0
b _08058512
_08058510:
movs r0, #1
_08058512:
pop {pc}
thumb_func_start sub_08058514
sub_08058514: @ 0x08058514
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #1
beq _08058532
cmp r0, #1
bgt _08058528
cmp r0, #0
beq _08058570
b _080585A6
_08058528:
cmp r0, #2
beq _08058570
cmp r0, #3
beq _08058584
b _080585A6
_08058532:
ldr r2, _08058564 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
ldr r1, _08058568 @ =0x00001235
ands r0, r1
cmp r0, #0
bne _080585A6
ldr r0, _0805856C @ =gLinkEntity
movs r1, #0x36
ldrsh r0, [r0, r1]
cmp r0, #0
bne _080585A6
strb r0, [r2, #2]
ldrh r0, [r4, #0x36]
adds r1, r4, #0
adds r1, #0x35
ldrb r1, [r1]
bl sub_08078AA8
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
movs r0, #0x1e
strb r0, [r4, #0xe]
b _080585A6
.align 2, 0
_08058564: .4byte gUnk_03003F80
_08058568: .4byte 0x00001235
_0805856C: .4byte gLinkEntity
_08058570:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080585A6
ldrb r0, [r4, #0xd]
adds r0, #1
strb r0, [r4, #0xd]
b _080585A6
_08058584:
ldr r0, _080585A8 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #1
beq _08058590
cmp r0, #9
bne _080585A6
_08058590:
ldr r0, _080585AC @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0805E564
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
bl sub_0805E780
_080585A6:
pop {r4, pc}
.align 2, 0
_080585A8: .4byte gLinkEntity
_080585AC: .4byte gUnk_03003F80
thumb_func_start sub_080585B0
sub_080585B0: @ 0x080585B0
push {r4, lr}
adds r4, r0, #0
ldr r0, _080585D8 @ =gUnk_02033A90
adds r0, #0x28
ldrb r0, [r0]
cmp r0, #0xff
beq _080585C2
bl sub_0805E780
_080585C2:
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _080585D4
bl sub_0801855C
bl sub_0805E780
_080585D4:
pop {r4, pc}
.align 2, 0
_080585D8: .4byte gUnk_02033A90
thumb_func_start sub_080585DC
sub_080585DC: @ 0x080585DC
push {lr}
ldrh r0, [r0, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _080585EC
bl sub_0805E780
_080585EC:
pop {pc}
.align 2, 0
thumb_func_start sub_080585F0
sub_080585F0: @ 0x080585F0
push {lr}
ldr r2, _08058604 @ =gUnk_08108208
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08058604: .4byte gUnk_08108208
thumb_func_start sub_08058608
sub_08058608: @ 0x08058608
push {lr}
ldr r2, _0805861C @ =gUnk_08108210
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805861C: .4byte gUnk_08108210
thumb_func_start sub_08058620
sub_08058620: @ 0x08058620
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
bne _08058648
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3c]
cmp r0, #0
bne _0805863E
adds r0, r4, #0
bl sub_080586EC
_0805863E:
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
b _0805864C
_08058648:
bl sub_0805E780
_0805864C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08058650
sub_08058650: @ 0x08058650
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _08058698
adds r0, r4, #0
bl sub_080586EC
adds r0, r4, #0
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #0
bne _08058692
ldr r1, _0805869C @ =gUnk_02034350
ldrb r0, [r1, #9]
movs r3, #0x33
cmp r0, #0
beq _0805867A
adds r3, r0, #0
_0805867A:
ldr r0, _080586A0 @ =gUnk_02033A90
movs r1, #0x86
lsls r1, r1, #4
adds r0, r0, r1
ldr r2, [r0]
adds r1, r4, #0
adds r1, #0x20
strb r2, [r1]
str r3, [r0]
adds r0, r3, #0
bl sub_080A3268
_08058692:
ldr r0, _080586A4 @ =0x00000B0F
bl sub_080186C0
_08058698:
pop {r4, pc}
.align 2, 0
_0805869C: .4byte gUnk_02034350
_080586A0: .4byte gUnk_02033A90
_080586A4: .4byte 0x00000B0F
thumb_func_start sub_080586A8
sub_080586A8: @ 0x080586A8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _080586E4
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
ldrh r0, [r4, #0x3c]
cmp r0, #0
beq _080586E0
adds r0, r4, #0
adds r0, #0x35
ldrb r0, [r0]
cmp r0, #0
bne _080586E0
ldr r1, _080586E8 @ =gUnk_02033A90
movs r0, #0x86
lsls r0, r0, #4
adds r1, r1, r0
adds r0, r4, #0
adds r0, #0x20
ldrb r0, [r0]
str r0, [r1]
bl sub_080A3268
bl sub_0801855C
_080586E0:
bl sub_0805E780
_080586E4:
pop {r4, pc}
.align 2, 0
_080586E8: .4byte gUnk_02033A90
thumb_func_start sub_080586EC
sub_080586EC: @ 0x080586EC
push {r4, r5, r6, r7, lr}
adds r7, r0, #0
movs r1, #0
movs r0, #2
strb r0, [r7, #0xc]
strb r1, [r7, #0xe]
movs r6, #0
adds r0, r7, #0
bl sub_08058760
adds r5, r0, #0
cmp r5, #0
bne _0805870A
bl sub_0805E780
_0805870A:
ldrb r0, [r7, #0xb]
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
beq _0805875C
b _08058756
_08058718:
adds r0, r4, #0
adds r4, #0x10
bl CreateEntity
adds r3, r0, #0
cmp r3, #0
beq _08058744
ldrb r0, [r3, #8]
cmp r0, #3
bne _08058744
adds r2, r3, #0
adds r2, #0x6d
ldrb r0, [r2]
movs r1, #0x40
orrs r1, r0
strb r1, [r2]
adds r2, r6, #0
adds r6, #1
adds r0, r5, #0
adds r1, r3, #0
bl sub_08058798
_08058744:
cmp r6, #6
bls _08058756
movs r6, #0
adds r0, r7, #0
bl sub_08058760
adds r5, r0, #0
cmp r5, #0
beq _0805875C
_08058756:
ldrb r0, [r4]
cmp r0, #0xff
bne _08058718
_0805875C:
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08058760
sub_08058760: @ 0x08058760
push {r4, r5, lr}
adds r5, r0, #0
bl sub_0805E8D4
adds r4, r0, #0
cmp r4, #0
beq _08058794
movs r0, #9
strb r0, [r4, #8]
movs r0, #0xb
strb r0, [r4, #9]
movs r0, #1
strb r0, [r4, #0xa]
str r5, [r4, #0x14]
ldrb r0, [r5, #0xe]
adds r0, #1
strb r0, [r5, #0xe]
adds r0, r4, #0
adds r0, #0x20
movs r1, #0x20
bl sub_0801D630
adds r0, r4, #0
movs r1, #8
bl sub_0805EA2C
_08058794:
adds r0, r4, #0
pop {r4, r5, pc}
thumb_func_start sub_08058798
sub_08058798: @ 0x08058798
lsls r2, r2, #2
adds r3, r0, #0
adds r3, #0x20
adds r3, r3, r2
str r1, [r3]
ldrb r1, [r0, #0xe]
adds r1, #1
strb r1, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_080587AC
sub_080587AC: @ 0x080587AC
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080587C2
movs r0, #1
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #3
bl sub_0805E3A0
_080587C2:
movs r3, #0
movs r2, #0
adds r5, r4, #0
adds r5, #0x20
_080587CA:
lsls r0, r2, #2
adds r1, r5, r0
ldr r0, [r1]
cmp r0, #0
beq _080587E0
ldr r0, [r0, #4]
cmp r0, #0
bne _080587DE
str r0, [r1]
b _080587E0
_080587DE:
movs r3, #1
_080587E0:
adds r0, r2, #1
lsls r0, r0, #0x18
lsrs r2, r0, #0x18
cmp r2, #7
bls _080587CA
cmp r3, #0
bne _080587FE
ldr r1, [r4, #0x14]
ldrb r0, [r1, #0xe]
cmp r0, #0
beq _080587FA
subs r0, #1
strb r0, [r1, #0xe]
_080587FA:
bl sub_0805E780
_080587FE:
pop {r4, r5, pc}
thumb_func_start sub_08058800
sub_08058800: @ 0x08058800
push {r4, r5, r6, r7, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r6, _08058830 @ =gUnk_03003DB0
ldr r3, [r6, #4]
cmp r3, r6
beq _0805884A
ldr r0, _08058834 @ =0x0000FFFF
mov ip, r0
ldr r7, _08058838 @ =0x00000B09
_08058814:
ldrh r1, [r3, #8]
mov r0, ip
ands r0, r1
cmp r0, r7
bne _08058844
movs r2, #0
adds r1, r3, #0
adds r1, #0x20
_08058824:
ldr r0, [r1]
cmp r4, r0
bne _0805883C
str r5, [r1]
b _0805884A
.align 2, 0
_08058830: .4byte gUnk_03003DB0
_08058834: .4byte 0x0000FFFF
_08058838: .4byte 0x00000B09
_0805883C:
adds r1, #4
adds r2, #1
cmp r2, #7
bls _08058824
_08058844:
ldr r3, [r3, #4]
cmp r3, r6
bne _08058814
_0805884A:
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0805884C
sub_0805884C: @ 0x0805884C
push {r4, lr}
adds r4, r0, #0
ldr r1, _08058880 @ =gUnk_0810821C
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_08058BC8
ldr r0, _08058884 @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _08058888 @ =gUnk_02017AA0
adds r0, r0, r1
ldr r1, _0805888C @ =0x04000020
ldr r2, _08058890 @ =0xA2600008
bl sub_0805622C
pop {r4, pc}
.align 2, 0
_08058880: .4byte gUnk_0810821C
_08058884: .4byte gUnk_03003DE4
_08058888: .4byte gUnk_02017AA0
_0805888C: .4byte 0x04000020
_08058890: .4byte 0xA2600008
thumb_func_start sub_08058894
sub_08058894: @ 0x08058894
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _080588C4 @ =0x00001234
str r0, [r4, #0x28]
movs r0, #0x15
movs r1, #2
bl sub_0807CC60
rsbs r1, r0, #0
orrs r1, r0
lsrs r1, r1, #0x1f
strb r1, [r4, #0xe]
adds r0, r4, #0
bl sub_08058CB0
ldr r1, _080588C8 @ =sub_08058D34
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
pop {r4, pc}
.align 2, 0
_080588C4: .4byte 0x00001234
_080588C8: .4byte sub_08058D34
thumb_func_start sub_080588CC
sub_080588CC: @ 0x080588CC
push {r4, lr}
adds r4, r0, #0
bl sub_08058CFC
adds r0, r4, #0
bl sub_08058A04
ldr r0, _080588E8 @ =gUnk_030010A0
ldrb r0, [r0, #8]
cmp r0, #0
beq _080588EC
movs r0, #2
strb r0, [r4, #0xc]
b _080588F2
.align 2, 0
_080588E8: .4byte gUnk_030010A0
_080588EC:
adds r0, r4, #0
bl sub_080588F8
_080588F2:
pop {r4, pc}
thumb_func_start nullsub_108
nullsub_108: @ 0x080588F4
bx lr
.align 2, 0
thumb_func_start sub_080588F8
sub_080588F8: @ 0x080588F8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _08058952
movs r0, #0x26
ldrsh r2, [r4, r0]
ldr r0, [r4, #0x28]
subs r1, r0, r2
cmp r1, #0
blt _08058914
cmp r1, #8
bhi _0805891A
b _08058968
_08058914:
subs r0, r2, r0
cmp r0, #8
bls _08058968
_0805891A:
ldr r0, _08058934 @ =0x00001234
str r0, [r4, #0x28]
movs r2, #0x26
ldrsh r1, [r4, r2]
ldr r0, _08058938 @ =0x0000FFFE
ands r1, r0
cmp r1, #0xa0
beq _08058940
cmp r1, #0xa0
bgt _0805893C
cmp r1, #0x48
beq _08058940
b _08058968
.align 2, 0
_08058934: .4byte 0x00001234
_08058938: .4byte 0x0000FFFE
_0805893C:
cmp r1, #0xf0
bne _08058968
_08058940:
movs r3, #0x26
ldrsh r0, [r4, r3]
str r0, [r4, #0x28]
movs r0, #0x2d
strb r0, [r4, #0xf]
movs r0, #0x8c
bl sub_080A3268
b _08058968
_08058952:
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x29
bls _08058964
ldr r0, [r4, #0x28]
subs r0, #2
b _08058966
_08058964:
ldr r0, [r4, #0x28]
_08058966:
strh r0, [r4, #0x26]
_08058968:
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _080589DE
ldr r0, _080589A4 @ =gLinkEntity
movs r2, #0x32
ldrsh r1, [r0, r2]
ldr r0, _080589A8 @ =gUnk_03000BF0
ldrh r0, [r0, #8]
subs r2, r1, r0
adds r1, r2, #0
subs r1, #0x50
cmp r1, #0
bge _08058986
movs r1, #0x50
subs r1, r1, r2
_08058986:
lsrs r1, r1, #3
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #0xc
movs r3, #0x80
lsls r3, r3, #7
adds r1, r0, r3
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _080589DE
cmp r2, #0x48
bgt _080589AC
ldr r0, [r4, #0x24]
subs r0, r0, r1
b _080589B4
.align 2, 0
_080589A4: .4byte gLinkEntity
_080589A8: .4byte gUnk_03000BF0
_080589AC:
cmp r2, #0x57
ble _080589B6
ldr r0, [r4, #0x24]
adds r0, r0, r1
_080589B4:
str r0, [r4, #0x24]
_080589B6:
ldr r2, [r4, #0x2c]
ldr r0, [r4, #0x24]
subs r1, r2, r0
adds r3, r0, #0
cmp r1, #0
blt _080589CC
movs r0, #0x80
lsls r0, r0, #0xd
cmp r1, r0
bhi _080589D6
b _080589DE
_080589CC:
subs r1, r3, r2
movs r0, #0x80
lsls r0, r0, #0xd
cmp r1, r0
bls _080589DE
_080589D6:
str r3, [r4, #0x2c]
movs r0, #0x8b
bl sub_080A3268
_080589DE:
movs r0, #0x26
ldrsh r1, [r4, r0]
str r1, [r4, #0x20]
cmp r1, #0
bge _080589F0
ldr r0, _080589EC @ =0x000001FF
b _080589F8
.align 2, 0
_080589EC: .4byte 0x000001FF
_080589F0:
ldr r0, _08058A00 @ =0x000001FF
cmp r1, r0
ble _080589FC
movs r0, #0
_080589F8:
str r0, [r4, #0x20]
strh r0, [r4, #0x26]
_080589FC:
pop {r4, pc}
.align 2, 0
_08058A00: .4byte 0x000001FF
thumb_func_start sub_08058A04
sub_08058A04: @ 0x08058A04
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
ldr r6, _08058A68 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r6, r0]
ldr r7, _08058A6C @ =gUnk_03000BF0
ldrh r0, [r7, #6]
subs r1, r1, r0
mov r8, r1
movs r0, #0x32
ldrsh r1, [r6, r0]
ldrh r0, [r7, #8]
subs r5, r1, r0
ldr r0, [r4, #0x20]
ldr r1, _08058A70 @ =0xFFFFFEE8
adds r0, r0, r1
cmp r0, #0xc
bhi _08058A78
movs r0, #0x17
bl GetProgressFlag
cmp r0, #0
beq _08058A78
mov r0, r8
subs r0, #0x6d
cmp r0, #0x16
bhi _08058A78
adds r0, r5, #0
subs r0, #0x45
cmp r0, #0x16
bhi _08058A78
movs r0, #0x36
ldrsh r2, [r6, r0]
cmp r2, #0
bne _08058A78
ldr r0, _08058A74 @ =gUnk_03003F80
movs r1, #3
strb r1, [r0, #0xc]
adds r0, #0x38
strb r2, [r0]
ldrh r0, [r7, #6]
adds r0, #0x78
strh r0, [r6, #0x2e]
ldrh r0, [r7, #8]
adds r0, #0x50
strh r0, [r6, #0x32]
b _08058AFC
.align 2, 0
_08058A68: .4byte gLinkEntity
_08058A6C: .4byte gUnk_03000BF0
_08058A70: .4byte 0xFFFFFEE8
_08058A74: .4byte gUnk_03003F80
_08058A78:
mov r1, r8
cmp r1, #0x77
bgt _08058AC0
cmp r5, #0x4f
bgt _08058AA0
ldr r3, _08058A9C @ =gUnk_08108228
adds r0, r4, #0
movs r1, #0x88
movs r2, #0xb0
bl sub_08058B08
cmp r0, #0
beq _08058AFC
adds r0, r4, #0
movs r1, #0
bl sub_08058B5C
b _08058AFC
.align 2, 0
_08058A9C: .4byte gUnk_08108228
_08058AA0:
ldr r3, _08058ABC @ =gUnk_08108258
adds r0, r4, #0
movs r1, #0x38
movs r2, #0x60
bl sub_08058B08
cmp r0, #0
beq _08058AFC
adds r0, r4, #0
movs r1, #1
bl sub_08058B5C
b _08058AFC
.align 2, 0
_08058ABC: .4byte gUnk_08108258
_08058AC0:
cmp r5, #0x4f
bgt _08058AE4
movs r2, #0x84
lsls r2, r2, #1
ldr r3, _08058AE0 @ =gUnk_08108288
adds r0, r4, #0
movs r1, #0xe0
bl sub_08058B08
cmp r0, #0
beq _08058AFC
adds r0, r4, #0
movs r1, #2
bl sub_08058B5C
b _08058AFC
.align 2, 0
_08058AE0: .4byte gUnk_08108288
_08058AE4:
ldr r3, _08058B04 @ =gUnk_081082B8
adds r0, r4, #0
movs r1, #0x90
movs r2, #0xb8
bl sub_08058B08
cmp r0, #0
beq _08058AFC
adds r0, r4, #0
movs r1, #3
bl sub_08058B5C
_08058AFC:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08058B04: .4byte gUnk_081082B8
thumb_func_start sub_08058B08
sub_08058B08: @ 0x08058B08
push {r4, r5, lr}
adds r4, r3, #0
ldr r0, [r0, #0x20]
cmp r0, r1
blo _08058B16
cmp r0, r2
bls _08058B1A
_08058B16:
movs r0, #0
b _08058B50
_08058B1A:
subs r0, r0, r1
lsrs r0, r0, #3
lsls r0, r0, #3
adds r4, r4, r0
ldr r3, _08058B54 @ =gLinkEntity
movs r0, #0x2e
ldrsh r2, [r3, r0]
ldr r1, _08058B58 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
subs r2, r2, r0
ldrh r0, [r4]
subs r2, r2, r0
movs r5, #0x32
ldrsh r0, [r3, r5]
ldrh r1, [r1, #8]
subs r0, r0, r1
ldrh r1, [r4, #2]
subs r0, r0, r1
movs r1, #0
ldrh r3, [r4, #4]
cmp r2, r3
bhs _08058B4E
ldrh r4, [r4, #6]
cmp r0, r4
bhs _08058B4E
movs r1, #1
_08058B4E:
adds r0, r1, #0
_08058B50:
pop {r4, r5, pc}
.align 2, 0
_08058B54: .4byte gLinkEntity
_08058B58: .4byte gUnk_03000BF0
thumb_func_start sub_08058B5C
sub_08058B5C: @ 0x08058B5C
push {r4, r5, lr}
ldr r3, _08058BB4 @ =gUnk_030010A0
movs r0, #0
movs r4, #1
strb r4, [r3, #8]
strb r0, [r3, #9]
movs r5, #4
movs r0, #4
strb r0, [r3, #0xf]
ldr r0, _08058BB8 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
strb r0, [r3, #0xc]
movs r0, #6
strb r0, [r3, #0xd]
adds r2, r1, #0
ands r2, r4
rsbs r0, r2, #0
orrs r0, r2
asrs r0, r0, #0x1f
ands r0, r5
strb r0, [r3, #0xe]
ldr r4, _08058BBC @ =gUnk_081082E8
lsls r2, r1, #1
adds r2, r2, r1
lsls r0, r2, #1
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r3, #0x10]
adds r0, r2, #1
lsls r0, r0, #1
adds r0, r0, r4
ldrh r0, [r0]
strh r0, [r3, #0x12]
ldr r1, _08058BC0 @ =gUnk_02002A40
adds r2, #2
lsls r2, r2, #1
adds r2, r2, r4
ldrh r0, [r2]
strb r0, [r1, #7]
ldr r0, _08058BC4 @ =0x00000121
bl sub_080A3268
pop {r4, r5, pc}
.align 2, 0
_08058BB4: .4byte gUnk_030010A0
_08058BB8: .4byte gUnk_03000BF0
_08058BBC: .4byte gUnk_081082E8
_08058BC0: .4byte gUnk_02002A40
_08058BC4: .4byte 0x00000121
thumb_func_start sub_08058BC8
sub_08058BC8: @ 0x08058BC8
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #0x14
mov sb, r0
ldr r0, _08058C9C @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _08058CA0 @ =gUnk_02017AA0
adds r4, r0, r1
movs r0, #0x80
lsls r0, r0, #9
str r0, [sp]
mov r1, sp
movs r2, #0
movs r0, #0x78
strh r0, [r1, #8]
movs r0, #0x80
strh r0, [r1, #0xa]
mov r0, sp
strh r2, [r0, #0x10]
movs r1, #0x80
lsls r1, r1, #1
strh r1, [r0, #0xe]
strh r1, [r0, #0xc]
movs r5, #0
mov r6, sp
ldr r0, _08058CA4 @ =gUnk_080C9160
mov r8, r0
adds r7, r1, #0
_08058C0A:
lsls r0, r5, #7
movs r1, #0xa0
bl __divsi3
movs r1, #0xff
ands r0, r1
lsls r1, r0, #1
add r1, r8
movs r3, #0
ldrsh r2, [r1, r3]
lsls r1, r2, #1
adds r1, r1, r2
asrs r1, r1, #2
adds r1, r1, r7
strh r1, [r6, #0xc]
lsls r0, r0, #2
add r0, r8
movs r1, #0
ldrsh r0, [r0, r1]
asrs r0, r0, #4
subs r0, r7, r0
strh r0, [r6, #0xe]
mov r3, sb
ldr r0, [r3, #0x20]
adds r0, r0, r5
lsls r0, r0, #8
str r0, [sp, #4]
mov r0, sp
adds r1, r4, #0
movs r2, #1
bl BgAffineSet
adds r4, #0x10
adds r5, #1
cmp r5, #0x9f
bls _08058C0A
ldr r0, _08058C9C @ =gUnk_03003DE4
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _08058CA8 @ =gUnk_02017BA0
adds r4, r0, r1
ldr r2, _08058CAC @ =gUnk_03000F50
ldrh r0, [r4]
strh r0, [r2, #0x38]
ldrh r0, [r4, #2]
strh r0, [r2, #0x3a]
ldrh r0, [r4, #4]
strh r0, [r2, #0x3c]
ldrh r0, [r4, #6]
strh r0, [r2, #0x3e]
ldrh r1, [r4, #8]
adds r0, r2, #0
adds r0, #0x40
strh r1, [r0]
ldrh r0, [r4, #0xa]
adds r1, r2, #0
adds r1, #0x42
strh r0, [r1]
ldrh r1, [r4, #0xc]
adds r0, r2, #0
adds r0, #0x44
strh r1, [r0]
ldrh r1, [r4, #0xe]
adds r0, #2
strh r1, [r0]
add sp, #0x14
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08058C9C: .4byte gUnk_03003DE4
_08058CA0: .4byte gUnk_02017AA0
_08058CA4: .4byte gUnk_080C9160
_08058CA8: .4byte gUnk_02017BA0
_08058CAC: .4byte gUnk_03000F50
thumb_func_start sub_08058CB0
sub_08058CB0: @ 0x08058CB0
push {r4, lr}
adds r4, r0, #0
ldr r2, _08058CD8 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r2, r0]
ldr r3, _08058CDC @ =gUnk_03000BF0
ldrh r0, [r3, #6]
subs r1, r1, r0
movs r0, #0x32
ldrsh r2, [r2, r0]
ldrh r0, [r3, #8]
subs r2, r2, r0
cmp r1, #0x77
bhi _08058CE0
movs r1, #1
cmp r2, #0x4f
bhi _08058CE8
movs r1, #0
b _08058CE8
.align 2, 0
_08058CD8: .4byte gLinkEntity
_08058CDC: .4byte gUnk_03000BF0
_08058CE0:
movs r1, #3
cmp r2, #0x4f
bhi _08058CE8
movs r1, #2
_08058CE8:
ldr r0, _08058CF8 @ =gUnk_08108300
lsls r1, r1, #1
adds r1, r1, r0
ldrh r0, [r1]
str r0, [r4, #0x20]
strh r0, [r4, #0x26]
pop {r4, pc}
.align 2, 0
_08058CF8: .4byte gUnk_08108300
thumb_func_start sub_08058CFC
sub_08058CFC: @ 0x08058CFC
push {r4, r5, lr}
ldr r5, _08058D2C @ =gLinkEntity
movs r1, #0x32
ldrsh r0, [r5, r1]
ldr r1, _08058D30 @ =gUnk_03000BF0
movs r2, #0xc
ldrsh r1, [r1, r2]
subs r4, r0, r1
cmp r4, #0x4b
bhi _08058D1A
adds r0, r5, #0
movs r1, #0xc0
movs r2, #0x10
bl sub_080044AE
_08058D1A:
cmp r4, #0x54
bls _08058D28
adds r0, r5, #0
movs r1, #0xc0
movs r2, #0
bl sub_080044AE
_08058D28:
pop {r4, r5, pc}
.align 2, 0
_08058D2C: .4byte gLinkEntity
_08058D30: .4byte gUnk_03000BF0
thumb_func_start sub_08058D34
sub_08058D34: @ 0x08058D34
push {r4, lr}
movs r0, #0x28
bl sub_0801D714
ldr r0, _08058DAC @ =gUnk_02017700
movs r2, #0x90
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
ldr r2, _08058DB0 @ =gUnk_0200B644
ldr r0, [r2]
movs r1, #0x80
lsls r1, r1, #0xe
orrs r0, r1
str r0, [r2]
movs r0, #0x16
bl sub_0801D7EC
ldr r1, _08058DB4 @ =gUnk_03000F50
ldrh r0, [r1]
movs r3, #0
movs r2, #1
movs r4, #0
orrs r0, r2
strh r0, [r1]
ldr r0, _08058DB8 @ =0x0000BC82
strh r0, [r1, #0x20]
ldr r0, _08058DBC @ =0x00005E86
strh r0, [r1, #0x14]
strh r3, [r1, #0x16]
strh r3, [r1, #0x18]
adds r2, r1, #0
adds r2, #0x66
ldr r0, _08058DC0 @ =0x00003456
strh r0, [r2]
adds r1, #0x68
ldr r0, _08058DC4 @ =0x00000909
strh r0, [r1]
ldr r0, _08058DC8 @ =gUnk_02033A90
movs r2, #0x86
lsls r2, r2, #4
adds r1, r0, r2
adds r2, #4
adds r0, r0, r2
ldr r0, [r0]
str r0, [r1]
ldr r0, _08058DCC @ =gUnk_02000070
strb r4, [r0]
movs r0, #0x17
bl GetProgressFlag
cmp r0, #0
beq _08058DA8
movs r0, #0x4a
bl sub_0801D7EC
_08058DA8:
pop {r4, pc}
.align 2, 0
_08058DAC: .4byte gUnk_02017700
_08058DB0: .4byte gUnk_0200B644
_08058DB4: .4byte gUnk_03000F50
_08058DB8: .4byte 0x0000BC82
_08058DBC: .4byte 0x00005E86
_08058DC0: .4byte 0x00003456
_08058DC4: .4byte 0x00000909
_08058DC8: .4byte gUnk_02033A90
_08058DCC: .4byte gUnk_02000070
thumb_func_start sub_08058DD0
sub_08058DD0: @ 0x08058DD0
push {lr}
ldr r2, _08058DE4 @ =gUnk_08108308
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08058DE4: .4byte gUnk_08108308
thumb_func_start sub_08058DE8
sub_08058DE8: @ 0x08058DE8
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08058DFC
bl sub_0805E780
b _08058E14
_08058DFC:
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3a]
bl sub_0808094C
ldrh r1, [r4, #0x38]
lsls r1, r1, #1
adds r1, #4
adds r0, r0, r1
str r0, [r4, #0x30]
ldrh r0, [r0]
strh r0, [r4, #0x28]
_08058E14:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08058E18
sub_08058E18: @ 0x08058E18
push {lr}
adds r2, r0, #0
ldr r1, [r2, #0x30]
ldrh r0, [r2, #0x28]
ldrh r1, [r1]
cmp r0, r1
beq _08058E30
ldrb r0, [r2, #0xc]
adds r0, #1
strb r0, [r2, #0xc]
movs r0, #0xf
strb r0, [r2, #0xe]
_08058E30:
pop {pc}
.align 2, 0
thumb_func_start sub_08058E34
sub_08058E34: @ 0x08058E34
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 _08058E5E
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _08058E58
bl sub_0804B128
bl LoadRoomEntityList
_08058E58:
adds r0, r4, #0
bl sub_0805E900
_08058E5E:
pop {r4, pc}
thumb_func_start sub_08058E60
sub_08058E60: @ 0x08058E60
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08058E80
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08058E80
adds r0, r4, #0
bl sub_0805E900
b _08058EC8
_08058E80:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08058EC8
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _08058E9E
movs r0, #0
strb r0, [r4, #0xb]
movs r0, #0xff
bl sub_08078A90
bl sub_08078B48
_08058E9E:
ldrh r1, [r4, #0x3a]
movs r2, #0x3a
ldrsh r0, [r4, r2]
cmp r0, #0
bne _08058EC4
movs r1, #0x38
ldrsh r0, [r4, r1]
cmp r0, #0
beq _08058EB4
bl sub_080A3268
_08058EB4:
ldrb r0, [r4, #0xa]
bl sub_0804B128
bl LoadRoomEntityList
bl sub_0805E780
b _08058EC8
_08058EC4:
subs r0, r1, #1
strh r0, [r4, #0x3a]
_08058EC8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08058ECC
sub_08058ECC: @ 0x08058ECC
push {lr}
ldr r2, _08058EE0 @ =gUnk_08108314
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08058EE0: .4byte gUnk_08108314
thumb_func_start sub_08058EE4
sub_08058EE4: @ 0x08058EE4
push {r4, r5, r6, lr}
adds r6, r0, #0
ldrb r0, [r6, #0xc]
cmp r0, #0
bne _08058EF2
movs r0, #1
strb r0, [r6, #0xc]
_08058EF2:
ldrb r0, [r6, #0xb]
bl sub_0807CC3C
cmp r0, #0
beq _08058F40
movs r5, #0x94
lsls r5, r5, #1
ldrb r2, [r6, #0xb]
adds r2, #1
adds r0, r5, #0
movs r1, #0x68
bl sub_08058F44
movs r4, #0xac
lsls r4, r4, #1
ldrb r2, [r6, #0xb]
adds r2, #2
adds r0, r4, #0
movs r1, #0x68
bl sub_08058F44
ldrb r2, [r6, #0xb]
adds r2, #3
adds r0, r5, #0
movs r1, #0x98
bl sub_08058F44
ldrb r2, [r6, #0xb]
adds r2, #4
adds r0, r4, #0
movs r1, #0x98
bl sub_08058F44
movs r0, #0x92
lsls r0, r0, #1
bl sub_080A3268
bl sub_0805E780
_08058F40:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08058F44
sub_08058F44: @ 0x08058F44
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r0, r2, #0
bl sub_0807CC3C
cmp r0, #0
bne _08058F80
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl sub_080002A8
cmp r0, #0x61
bne _08058F80
lsrs r1, r4, #4
movs r2, #0x3f
ands r1, r2
lsrs r0, r5, #4
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x26
movs r2, #1
bl sub_0807B314
adds r0, r4, #0
adds r1, r5, #0
bl sub_08058F84
_08058F80:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08058F84
sub_08058F84: @ 0x08058F84
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r0, #0x21
movs r1, #0
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08058FA8
ldr r0, _08058FAC @ =gUnk_03000BF0
ldrh r1, [r0, #6]
adds r1, r1, r4
strh r1, [r2, #0x2e]
ldrh r0, [r0, #8]
adds r0, r0, r5
strh r0, [r2, #0x32]
_08058FA8:
pop {r4, r5, pc}
.align 2, 0
_08058FAC: .4byte gUnk_03000BF0
thumb_func_start sub_08058FB0
sub_08058FB0: @ 0x08058FB0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08058FF6
cmp r0, #1
bgt _08058FC4
cmp r0, #0
beq _08058FCA
b _08059050
_08058FC4:
cmp r0, #2
beq _08059018
b _08059050
_08058FCA:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _08058FDC
movs r0, #7
strb r0, [r4, #0xd]
movs r0, #6
b _08058FE2
_08058FDC:
movs r0, #8
strb r0, [r4, #0xd]
movs r0, #2
_08058FE2:
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08059060
adds r0, r4, #0
bl sub_0805E900
b _08059060
_08058FF6:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08059060
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #0xf0
bl sub_0805E4E0
adds r0, r4, #0
bl sub_08059064
b _08059060
_08059018:
ldrb r0, [r4, #0xe]
cmp r0, #0x5a
bne _08059028
movs r0, #2
bl sub_08078A90
bl sub_08077B20
_08059028:
ldrb r2, [r4, #0xe]
cmp r2, #0x3c
bne _08059034
ldr r1, _0805904C @ =gLinkEntity
ldrb r0, [r4, #0xf]
strb r0, [r1, #0x14]
_08059034:
subs r0, r2, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08059060
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xd]
movs r0, #5
bl sub_080A7138
b _08059060
.align 2, 0
_0805904C: .4byte gLinkEntity
_08059050:
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
movs r0, #1
bl sub_08078A90
bl sub_0805E780
_08059060:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08059064
sub_08059064: @ 0x08059064
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #0x53
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805908E
movs r0, #2
strb r0, [r2, #0xe]
ldr r1, _08059090 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
_0805908E:
pop {r4, pc}
.align 2, 0
_08059090: .4byte gUnk_03000BF0
thumb_func_start sub_08059094
sub_08059094: @ 0x08059094
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080590B6
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x60
bl sub_0807CBD0
cmp r0, #0
bne _080590CC
movs r0, #0x5f
bl sub_0807CCB4
b _080590C8
_080590B6:
movs r0, #0x60
bl sub_0807CBD0
cmp r0, #0
beq _080590C8
movs r0, #0x5f
bl sub_0807CD34
movs r5, #1
_080590C8:
cmp r5, #0
beq _080590D8
_080590CC:
ldr r0, _080590DC @ =gUnk_080F4B88
bl LoadRoomEntityList
adds r0, r4, #0
bl sub_0805E900
_080590D8:
pop {r4, r5, pc}
.align 2, 0
_080590DC: .4byte gUnk_080F4B88
thumb_func_start sub_080590E0
sub_080590E0: @ 0x080590E0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _080590F6
movs r0, #1
strb r0, [r1, #0xc]
adds r0, r1, #0
movs r1, #6
bl sub_0805E3A0
_080590F6:
movs r0, #0x6c
bl sub_0807CBD0
cmp r0, #0
beq _0805911A
movs r0, #0x4b
bl sub_0807CBD0
cmp r0, #0
beq _08059112
movs r0, #0x4a
bl sub_0807CCB4
b _08059120
_08059112:
movs r0, #0x4a
bl sub_0807CD34
b _08059120
_0805911A:
movs r0, #0x4a
bl sub_0807CD34
_08059120:
pop {pc}
.align 2, 0
thumb_func_start sub_08059124
sub_08059124: @ 0x08059124
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _08059174
cmp r0, #1
beq _080591AC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080591C8
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
ldrh r0, [r4, #0x38]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
movs r2, #0x3f
ands r0, r2
ldrh r1, [r4, #0x3a]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r4, #0xb]
bl sub_0807BA8C
movs r0, #0xcd
bl sub_080A3268
bl sub_0805E780
b _080591C8
_08059174:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08059182
bl sub_0805E780
_08059182:
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _080591A8 @ =0x00000365
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r2, [r4, #0x3a]
lsls r2, r2, #0x10
asrs r2, r2, #0x14
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4, #0xb]
bl sub_0807B314
b _080591C8
.align 2, 0
_080591A8: .4byte 0x00000365
_080591AC:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _080591C8
adds r0, r4, #0
movs r1, #0x4b
bl sub_0805E4E0
movs r0, #0x2d
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_080591C8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080591CC
sub_080591CC: @ 0x080591CC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080591F4
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
strb r0, [r4, #0xb]
lsls r0, r0, #0x18
cmp r0, #0
beq _08059214
ldr r1, _080591F0 @ =gUnk_02034350
ldrh r0, [r4, #0x3a]
b _08059218
.align 2, 0
_080591F0: .4byte gUnk_02034350
_080591F4:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
adds r1, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, r1
beq _0805921A
strb r1, [r4, #0xb]
cmp r1, #0
beq _08059214
ldr r1, _08059210 @ =gUnk_02034350
ldrh r0, [r4, #0x3a]
b _08059218
.align 2, 0
_08059210: .4byte gUnk_02034350
_08059214:
ldr r1, _0805921C @ =gUnk_02034350
ldrh r0, [r4, #0x38]
_08059218:
strh r0, [r1, #0xc]
_0805921A:
pop {r4, pc}
.align 2, 0
_0805921C: .4byte gUnk_02034350
thumb_func_start sub_08059220
sub_08059220: @ 0x08059220
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r2, _08059268 @ =gUnk_02034350
movs r0, #0
strh r0, [r2, #0xc]
ldr r4, _0805926C @ =gUnk_08108354
ldrh r0, [r4]
ldr r1, _08059270 @ =0x0000FFFF
cmp r0, r1
beq _08059254
adds r7, r2, #0
adds r6, r1, #0
_08059238:
ldrh r0, [r4]
ldrh r1, [r4, #2]
ldrh r2, [r4, #4]
ldrh r3, [r4, #6]
bl sub_0800293E
cmp r0, #0
beq _0805924C
ldrh r0, [r4, #8]
strh r0, [r7, #0xc]
_0805924C:
adds r4, #0xa
ldrh r0, [r4]
cmp r0, r6
bne _08059238
_08059254:
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08059266
movs r0, #1
strb r0, [r5, #0xc]
ldr r1, _08059274 @ =gUnk_02033A90
ldr r0, _08059268 @ =gUnk_02034350
ldrh r0, [r0, #0xc]
strh r0, [r1, #0xa]
_08059266:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08059268: .4byte gUnk_02034350
_0805926C: .4byte gUnk_08108354
_08059270: .4byte 0x0000FFFF
_08059274: .4byte gUnk_02033A90
thumb_func_start sub_08059278
sub_08059278: @ 0x08059278
push {lr}
movs r0, #9
movs r1, #0xf
movs r2, #6
bl sub_0805EB00
cmp r0, #0
beq _0805928C
bl sub_08058ECC
_0805928C:
pop {pc}
.align 2, 0
thumb_func_start sub_08059290
sub_08059290: @ 0x08059290
movs r1, #1
strb r1, [r0, #0xc]
ldr r1, _0805929C @ =gUnk_03000BF0
ldr r0, _080592A0 @ =gLinkEntity
str r0, [r1, #0x30]
bx lr
.align 2, 0
_0805929C: .4byte gUnk_03000BF0
_080592A0: .4byte gLinkEntity
thumb_func_start sub_080592A4
sub_080592A4: @ 0x080592A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080592C8
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _080592EA
adds r0, r4, #0
bl sub_080592EC
bl sub_0805E780
b _080592EA
_080592C8:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _080592EA
adds r0, r4, #0
bl sub_080592EC
adds r0, r4, #0
bl sub_0805930C
movs r0, #0xb7
lsls r0, r0, #1
bl sub_080A3268
bl sub_0805E780
_080592EA:
pop {r4, pc}
thumb_func_start sub_080592EC
sub_080592EC: @ 0x080592EC
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x38]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
movs r2, #0x3f
ands r0, r2
ldrh r1, [r1, #0x3a]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
bl sub_08059340
pop {pc}
thumb_func_start sub_0805930C
sub_0805930C: @ 0x0805930C
push {r4, lr}
adds r4, r0, #0
movs r0, #0xf
movs r1, #0x43
movs r2, #0x40
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805933A
ldr r1, _0805933C @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
_0805933A:
pop {r4, pc}
.align 2, 0
_0805933C: .4byte gUnk_03000BF0
thumb_func_start sub_08059340
sub_08059340: @ 0x08059340
push {r4, lr}
adds r4, r0, #0
movs r0, #0x1d
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
movs r0, #0
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
subs r4, #0x40
movs r0, #0
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08059368
sub_08059368: @ 0x08059368
push {lr}
adds r2, r0, #0
movs r0, #1
strb r0, [r2, #0xc]
ldr r1, _08059388 @ =gUnk_02022780
ldrh r0, [r2, #0x3c]
ldrh r1, [r1, #0x28]
cmp r0, r1
bne _08059384
ldrh r0, [r2, #0x3e]
bl sub_0807CCC8
bl sub_0805E780
_08059384:
pop {pc}
.align 2, 0
_08059388: .4byte gUnk_02022780
thumb_func_start sub_0805938C
sub_0805938C: @ 0x0805938C
push {r4, lr}
adds r4, r0, #0
bl sub_080593CC
cmp r0, #0
beq _080593C8
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bls _080593CA
movs r1, #0x38
ldrsh r0, [r4, r1]
ldr r2, _080593C4 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
movs r3, #0x3a
ldrsh r1, [r4, r3]
ldrh r2, [r2, #8]
subs r1, r1, r2
movs r2, #0xff
movs r3, #0xa
bl sub_080806BC
b _080593CA
.align 2, 0
_080593C4: .4byte gUnk_03000BF0
_080593C8:
strb r0, [r4, #0xe]
_080593CA:
pop {r4, pc}
thumb_func_start sub_080593CC
sub_080593CC: @ 0x080593CC
push {r4, lr}
adds r3, r0, #0
ldr r2, _08059418 @ =gUnk_03003F80
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08059420
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08059420
ldr r4, _0805941C @ =gLinkEntity
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _08059420
adds r0, r2, #0
adds r0, #0x90
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
movs r1, #0x80
lsls r1, r1, #3
cmp r0, r1
bne _08059420
movs r0, #0x38
ldrsh r1, [r3, r0]
movs r0, #0x3a
ldrsh r2, [r3, r0]
adds r2, #0xc
adds r0, r4, #0
movs r3, #6
bl sub_0806FCB8
b _08059422
.align 2, 0
_08059418: .4byte gUnk_03003F80
_0805941C: .4byte gLinkEntity
_08059420:
movs r0, #0
_08059422:
pop {r4, pc}
thumb_func_start sub_08059424
sub_08059424: @ 0x08059424
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _08059436
bl sub_0805E780
_08059436:
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _08059476
movs r0, #0xf
movs r1, #0x35
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059476
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r1, _08059478 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
movs r0, #0xd8
lsls r0, r0, #1
bl sub_08004488
bl sub_0805E780
_08059476:
pop {r4, pc}
.align 2, 0
_08059478: .4byte gUnk_03000BF0
thumb_func_start sub_0805947C
sub_0805947C: @ 0x0805947C
push {lr}
ldrh r0, [r0, #0x3e]
bl sub_0807CBE4
cmp r0, #0
bne _080594CE
movs r0, #3
bl sub_08078A90
ldr r1, _080594B0 @ =gUnk_03000BF0
ldrh r0, [r1]
cmp r0, #0
bne _080594D2
ldr r0, _080594B4 @ =gUnk_02034350
ldrb r0, [r0]
cmp r0, #0
beq _080594BC
ldr r0, _080594B8 @ =gUnk_08108380
ldrb r1, [r1, #0x10]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
bl sub_0807DB2C
b _080594CE
.align 2, 0
_080594B0: .4byte gUnk_03000BF0
_080594B4: .4byte gUnk_02034350
_080594B8: .4byte gUnk_08108380
_080594BC:
ldr r1, _080594D4 @ =gUnk_08108380
ldr r0, _080594D8 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl sub_0807DB2C
_080594CE:
bl sub_0805E780
_080594D2:
pop {pc}
.align 2, 0
_080594D4: .4byte gUnk_08108380
_080594D8: .4byte gLinkEntity
thumb_func_start sub_080594DC
sub_080594DC: @ 0x080594DC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _080594F2
cmp r0, #1
bgt _0805951C
cmp r0, #0
bne _0805951C
movs r0, #1
strb r0, [r4, #0xc]
_080594F2:
movs r0, #6
bl GetInventoryValue
cmp r0, #0
beq _08059540
movs r0, #0x8c
lsls r0, r0, #4
movs r1, #0x85
bl GetProgressFlagWithOffset
cmp r0, #0
bne _08059540
movs r0, #2
strb r0, [r4, #0xc]
ldr r0, _08059518 @ =0x00000B0F
bl sub_080186C0
b _08059540
.align 2, 0
_08059518: .4byte 0x00000B0F
_0805951C:
ldr r0, _08059544 @ =gUnk_02033A90
adds r0, #0x28
ldrb r0, [r0]
cmp r0, #0xff
beq _0805952A
bl sub_0805E780
_0805952A:
movs r0, #0x8c
lsls r0, r0, #4
movs r1, #0x85
bl GetProgressFlagWithOffset
cmp r0, #0
beq _08059540
bl sub_0801855C
bl sub_0805E780
_08059540:
pop {r4, pc}
.align 2, 0
_08059544: .4byte gUnk_02033A90
thumb_func_start sub_08059548
sub_08059548: @ 0x08059548
push {lr}
movs r1, #6
bl sub_0805E3A0
ldr r0, _08059568 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x16
bne _0805955C
bl sub_0805E780
_0805955C:
ldr r2, _0805956C @ =gUnk_03000FF0
ldrh r1, [r2]
movs r0, #4
orrs r0, r1
strh r0, [r2]
pop {pc}
.align 2, 0
_08059568: .4byte gLinkEntity
_0805956C: .4byte gUnk_03000FF0
thumb_func_start sub_08059570
sub_08059570: @ 0x08059570
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r5, [r4, #0xc]
cmp r5, #0
bne _080595C8
movs r6, #1
strb r6, [r4, #0xc]
adds r0, #0x21
strb r5, [r0]
adds r0, #2
strb r5, [r0]
bl sub_0805986C
cmp r0, #0
beq _080595A8
adds r0, r4, #0
adds r0, #0x20
strb r6, [r0]
adds r1, r4, #0
adds r1, #0x22
movs r0, #2
strb r0, [r1]
ldr r0, _080595A4 @ =gUnk_0200B650
str r5, [r0]
b _080595B8
.align 2, 0
_080595A4: .4byte gUnk_0200B650
_080595A8:
adds r0, r4, #0
adds r0, #0x20
movs r1, #0x1f
strb r1, [r0]
adds r1, r4, #0
adds r1, #0x22
movs r0, #5
strb r0, [r1]
_080595B8:
ldr r0, _080595DC @ =gUnk_02034350
movs r1, #0xff
strb r1, [r0, #0x10]
ldr r1, _080595E0 @ =sub_080595E4
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_080595C8:
adds r0, r4, #0
bl sub_08059608
adds r0, r4, #0
bl sub_08059690
adds r0, r4, #0
bl sub_080596E0
pop {r4, r5, r6, pc}
.align 2, 0
_080595DC: .4byte gUnk_02034350
_080595E0: .4byte sub_080595E4
thumb_func_start sub_080595E4
sub_080595E4: @ 0x080595E4
push {r4, lr}
adds r4, r0, #0
ldr r1, _08059604 @ =gUnk_02034350
movs r0, #0xff
strb r0, [r1, #0x10]
adds r0, r4, #0
bl sub_08059690
adds r0, r4, #0
bl sub_080596E0
movs r0, #0
bl sub_0805B4D0
pop {r4, pc}
.align 2, 0
_08059604: .4byte gUnk_02034350
thumb_func_start sub_08059608
sub_08059608: @ 0x08059608
push {r4, lr}
adds r4, r0, #0
adds r4, #0x23
ldrb r0, [r4]
cmp r0, #0
beq _08059638
subs r0, #1
strb r0, [r4]
lsls r0, r0, #0x18
cmp r0, #0
bne _08059682
ldr r0, _08059634 @ =gUnk_02033A90
movs r2, #0x86
lsls r2, r2, #4
adds r1, r0, r2
adds r2, #4
adds r0, r0, r2
ldr r0, [r0]
str r0, [r1]
bl sub_080A3268
b _08059682
.align 2, 0
_08059634: .4byte gUnk_02033A90
_08059638:
bl sub_0805986C
cmp r0, #0
beq _08059668
ldr r0, _0805965C @ =gUnk_02033A90
ldr r2, _08059660 @ =0x00000864
adds r1, r0, r2
ldr r0, [r1]
cmp r0, #0x1e
beq _08059682
movs r0, #0x1e
str r0, [r1]
movs r0, #0x78
strb r0, [r4]
ldr r0, _08059664 @ =0x800D0000
bl sub_080A3268
b _08059682
.align 2, 0
_0805965C: .4byte gUnk_02033A90
_08059660: .4byte 0x00000864
_08059664: .4byte 0x800D0000
_08059668:
ldr r0, _08059684 @ =gUnk_02033A90
ldr r2, _08059688 @ =0x00000864
adds r1, r0, r2
ldr r0, [r1]
cmp r0, #0x37
beq _08059682
movs r0, #0x37
str r0, [r1]
movs r0, #0x78
strb r0, [r4]
ldr r0, _0805968C @ =0x800D0000
bl sub_080A3268
_08059682:
pop {r4, pc}
.align 2, 0
_08059684: .4byte gUnk_02033A90
_08059688: .4byte 0x00000864
_0805968C: .4byte 0x800D0000
thumb_func_start sub_08059690
sub_08059690: @ 0x08059690
push {r4, lr}
adds r4, r0, #0
bl sub_08059844
cmp r0, #0
beq _080596BC
adds r4, #0x20
ldrb r0, [r4]
cmp r0, #0
beq _080596D8
ldr r0, _080596B8 @ =gUnk_085A7320
movs r2, #0xd0
lsls r2, r2, #1
adds r1, r0, r2
ldrb r2, [r4]
bl sub_08059894
ldrb r0, [r4]
subs r0, #1
b _080596D6
.align 2, 0
_080596B8: .4byte gUnk_085A7320
_080596BC:
adds r4, #0x20
ldrb r0, [r4]
cmp r0, #0x1f
bhi _080596D8
ldr r0, _080596DC @ =gUnk_085A7320
movs r2, #0xd0
lsls r2, r2, #1
adds r1, r0, r2
ldrb r2, [r4]
bl sub_08059894
ldrb r0, [r4]
adds r0, #1
_080596D6:
strb r0, [r4]
_080596D8:
pop {r4, pc}
.align 2, 0
_080596DC: .4byte gUnk_085A7320
thumb_func_start sub_080596E0
sub_080596E0: @ 0x080596E0
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r0, _08059730 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _080596FC
ldr r0, _08059734 @ =gUnk_03000F50
ldrh r1, [r0, #0x16]
adds r1, #8
movs r2, #0x1f
ands r1, r2
strh r1, [r0, #0x16]
_080596FC:
bl sub_0805986C
cmp r0, #0
beq _08059740
adds r0, r4, #0
adds r0, #0x21
ldrb r1, [r0]
adds r5, r0, #0
adds r2, r4, #0
adds r2, #0x22
cmp r1, #0
bne _08059764
ldrb r0, [r2]
cmp r0, #2
beq _08059764
movs r0, #1
strb r0, [r5]
movs r0, #3
strb r0, [r2]
ldr r0, _08059738 @ =gUnk_08108390
ldrb r0, [r0, #3]
strb r0, [r4, #0xe]
ldr r0, _0805973C @ =gUnk_0200B650
str r1, [r0]
b _08059764
.align 2, 0
_08059730: .4byte gUnk_030010A0
_08059734: .4byte gUnk_03000F50
_08059738: .4byte gUnk_08108390
_0805973C: .4byte gUnk_0200B650
_08059740:
adds r0, r4, #0
adds r0, #0x21
ldrb r1, [r0]
adds r5, r0, #0
adds r2, r4, #0
adds r2, #0x22
cmp r1, #0
bne _08059764
ldrb r0, [r2]
cmp r0, #5
beq _08059764
movs r0, #2
strb r0, [r5]
ldr r1, _08059774 @ =gUnk_08108390
ldrb r0, [r2]
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0xe]
_08059764:
adds r6, r5, #0
ldrb r0, [r6]
cmp r0, #1
beq _08059778
cmp r0, #2
beq _080597A8
b _080597D0
.align 2, 0
_08059774: .4byte gUnk_08108390
_08059778:
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 _080597D0
ldr r1, _080597A4 @ =gUnk_08108390
ldrb r0, [r2]
subs r0, #1
strb r0, [r2]
ands r0, r3
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0xe]
ldrb r0, [r2]
cmp r0, #2
bne _080597D0
strb r5, [r6]
b _080597D0
.align 2, 0
_080597A4: .4byte gUnk_08108390
_080597A8:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r3, #0xff
lsls r0, r0, #0x18
lsrs r6, r0, #0x18
cmp r6, #0
bne _080597D0
ldr r1, _080597EC @ =gUnk_08108390
ldrb r0, [r2]
adds r0, #1
strb r0, [r2]
ands r0, r3
adds r0, r0, r1
ldrb r0, [r0]
strb r0, [r4, #0xe]
ldrb r0, [r2]
cmp r0, #5
bne _080597D0
strb r6, [r5]
_080597D0:
ldr r3, _080597F0 @ =gUnk_02034350
ldrb r1, [r2]
ldrb r0, [r3, #0x10]
cmp r0, r1
beq _08059838
strb r1, [r3, #0x10]
ldrb r0, [r2]
cmp r0, #4
beq _08059800
cmp r0, #4
ble _080597F4
cmp r0, #5
beq _08059824
b _08059838
.align 2, 0
_080597EC: .4byte gUnk_08108390
_080597F0: .4byte gUnk_02034350
_080597F4:
cmp r0, #0
blt _08059838
adds r0, #0x2b
bl sub_0801D7EC
b _08059838
_08059800:
ldr r4, _0805981C @ =gUnk_02001A40
movs r5, #0x80
lsls r5, r5, #4
adds r0, r4, #0
adds r1, r5, #0
bl sub_0801D630
ldr r1, _08059820 @ =0x0600E800
adds r0, r4, #0
adds r2, r5, #0
bl sub_08000E96
b _08059838
.align 2, 0
_0805981C: .4byte gUnk_02001A40
_08059820: .4byte 0x0600E800
_08059824:
ldr r0, _0805983C @ =gUnk_0200B650
ldr r1, _08059840 @ =gUnk_03000F64
str r1, [r0]
subs r1, #0x14
ldrh r2, [r1]
movs r3, #0x80
lsls r3, r3, #2
adds r0, r3, #0
orrs r0, r2
strh r0, [r1]
_08059838:
pop {r4, r5, r6, pc}
.align 2, 0
_0805983C: .4byte gUnk_0200B650
_08059840: .4byte gUnk_03000F64
thumb_func_start sub_08059844
sub_08059844: @ 0x08059844
push {lr}
movs r3, #0
ldr r0, _08059864 @ =gLinkEntity
movs r2, #0x2e
ldrsh r1, [r0, r2]
ldr r2, _08059868 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
ldrh r0, [r2, #0x1e]
lsrs r0, r0, #1
cmp r1, r0
ble _0805985E
movs r3, #1
_0805985E:
adds r0, r3, #0
pop {pc}
.align 2, 0
_08059864: .4byte gLinkEntity
_08059868: .4byte gUnk_03000BF0
thumb_func_start sub_0805986C
sub_0805986C: @ 0x0805986C
push {lr}
movs r2, #0
ldr r0, _0805988C @ =gLinkEntity
movs r3, #0x2e
ldrsh r1, [r0, r3]
ldr r0, _08059890 @ =gUnk_03000BF0
ldrh r0, [r0, #6]
subs r1, r1, r0
movs r0, #0x80
lsls r0, r0, #2
cmp r1, r0
ble _08059886
movs r2, #1
_08059886:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0805988C: .4byte gLinkEntity
_08059890: .4byte gUnk_03000BF0
thumb_func_start sub_08059894
sub_08059894: @ 0x08059894
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r5, r0, #0
adds r4, r1, #0
ldr r0, _080598E8 @ =gUnk_020176E0
mov sb, r0
movs r6, #0
lsls r2, r2, #0x18
mov r8, r2
_080598AA:
adds r0, r5, #0
adds r1, r4, #0
mov r2, sb
mov r7, r8
lsrs r3, r7, #0x18
bl sub_08059960
adds r5, #0x20
adds r4, #0x20
movs r0, #0x20
add sb, r0
adds r6, #1
cmp r6, #0xc
bls _080598AA
ldr r0, _080598EC @ =gUnk_02017700
movs r2, #0x90
lsls r2, r2, #2
adds r1, r0, r2
movs r2, #0x20
bl sub_0801D66C
ldr r2, _080598F0 @ =gUnk_0200B644
ldr r0, [r2]
ldr r1, _080598F4 @ =0x00207FFC
orrs r0, r1
str r0, [r2]
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_080598E8: .4byte gUnk_020176E0
_080598EC: .4byte gUnk_02017700
_080598F0: .4byte gUnk_0200B644
_080598F4: .4byte 0x00207FFC
thumb_func_start sub_080598F8
sub_080598F8: @ 0x080598F8
push {r4, r5, r6, r7, lr}
movs r4, #0x1f
adds r3, r0, #0
ands r3, r4
lsls r6, r3, #8
adds r3, r6, #0
muls r3, r2, r3
lsrs r6, r3, #5
adds r3, r1, #0
ands r3, r4
lsls r3, r3, #8
movs r4, #0x20
subs r4, r4, r2
muls r3, r4, r3
lsrs r3, r3, #5
adds r3, r6, r3
lsrs r6, r3, #8
movs r5, #0xf8
lsls r5, r5, #2
adds r3, r0, #0
ands r3, r5
lsls r7, r3, #3
adds r3, r7, #0
muls r3, r2, r3
lsrs r7, r3, #5
adds r3, r1, #0
ands r3, r5
lsls r3, r3, #3
muls r3, r4, r3
lsrs r3, r3, #5
adds r3, r7, r3
lsrs r7, r3, #8
movs r3, #0xf8
lsls r3, r3, #7
ands r0, r3
lsrs r5, r0, #2
adds r0, r5, #0
muls r0, r2, r0
lsrs r5, r0, #5
ands r1, r3
lsrs r0, r1, #2
muls r0, r4, r0
lsrs r0, r0, #5
adds r0, r5, r0
lsrs r5, r0, #8
lsls r0, r7, #5
orrs r6, r0
lsls r0, r5, #0xa
orrs r6, r0
adds r0, r6, #0
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08059960
sub_08059960: @ 0x08059960
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r6, r0, #0
adds r5, r1, #0
adds r4, r2, #0
lsls r3, r3, #0x18
lsrs r3, r3, #0x18
mov r8, r3
movs r7, #0
_08059974:
ldrh r0, [r6]
adds r6, #2
ldrh r1, [r5]
adds r5, #2
mov r2, r8
bl sub_080598F8
strh r0, [r4]
adds r4, #2
adds r7, #1
cmp r7, #0xf
bls _08059974
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_08059994
sub_08059994: @ 0x08059994
push {lr}
bl sub_0805986C
cmp r0, #0
beq _080599AE
movs r0, #0x5b
bl sub_0801D714
ldr r0, _080599B0 @ =gUnk_02033A90
ldr r1, _080599B4 @ =0x00000864
adds r0, r0, r1
movs r1, #0x1e
str r1, [r0]
_080599AE:
pop {pc}
.align 2, 0
_080599B0: .4byte gUnk_02033A90
_080599B4: .4byte 0x00000864
thumb_func_start sub_080599B8
sub_080599B8: @ 0x080599B8
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080599D6
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _080599EA
bl sub_0805E780
b _080599EA
_080599D6:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _080599EA
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
bl sub_0805E780
_080599EA:
pop {r4, pc}
thumb_func_start sub_080599EC
sub_080599EC: @ 0x080599EC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _08059A20
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x22
movs r0, #0xff
strb r0, [r1]
subs r1, #1
movs r0, #1
rsbs r0, r0, #0
strb r0, [r1]
subs r1, #1
strb r0, [r1]
ldr r1, _08059A28 @ =sub_08059A2C
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
_08059A20:
adds r0, r4, #0
bl sub_08059A58
pop {r4, pc}
.align 2, 0
_08059A28: .4byte sub_08059A2C
thumb_func_start sub_08059A2C
sub_08059A2C: @ 0x08059A2C
push {lr}
adds r2, r0, #0
ldr r1, _08059A54 @ =gUnk_02034350
movs r0, #0xff
strb r0, [r1, #0x12]
movs r0, #1
rsbs r0, r0, #0
strb r0, [r1, #0x11]
strb r0, [r1, #0x10]
adds r1, r2, #0
adds r1, #0x22
strb r0, [r1]
subs r1, #1
strb r0, [r1]
subs r1, #1
strb r0, [r1]
adds r0, r2, #0
bl sub_08059A58
pop {pc}
.align 2, 0
_08059A54: .4byte gUnk_02034350
thumb_func_start sub_08059A58
sub_08059A58: @ 0x08059A58
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _08059AC4 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0x15
beq _08059AD4
adds r4, r5, #0
adds r4, #0x20
ldr r3, _08059AC8 @ =gUnk_08108398
adds r0, r5, #0
movs r1, #0
adds r2, r4, #0
bl sub_08059C8C
cmp r0, #0
beq _08059A80
ldrb r1, [r4]
movs r0, #0
bl sub_08059CC0
_08059A80:
adds r4, r5, #0
adds r4, #0x21
ldr r3, _08059ACC @ =gUnk_081083AE
adds r0, r5, #0
movs r1, #1
adds r2, r4, #0
bl sub_08059C8C
cmp r0, #0
beq _08059AA6
ldrb r1, [r4]
movs r0, #1
bl sub_08059CC0
ldrb r0, [r4]
cmp r0, #2
bne _08059AA6
bl sub_08059B18
_08059AA6:
adds r4, r5, #0
adds r4, #0x22
ldr r3, _08059AD0 @ =gUnk_081083C4
adds r0, r5, #0
movs r1, #2
adds r2, r4, #0
bl sub_08059C8C
cmp r0, #0
beq _08059B0C
ldrb r1, [r4]
movs r0, #2
bl sub_08059CC0
b _08059B0C
.align 2, 0
_08059AC4: .4byte gUnk_03000BF0
_08059AC8: .4byte gUnk_08108398
_08059ACC: .4byte gUnk_081083AE
_08059AD0: .4byte gUnk_081083C4
_08059AD4:
adds r4, r5, #0
adds r4, #0x20
ldr r3, _08059B10 @ =gUnk_081083DA
adds r0, r5, #0
movs r1, #0
adds r2, r4, #0
bl sub_08059C8C
cmp r0, #0
beq _08059AF0
ldrb r1, [r4]
movs r0, #0
bl sub_08059CC0
_08059AF0:
adds r4, r5, #0
adds r4, #0x22
ldr r3, _08059B14 @ =gUnk_081083F2
adds r0, r5, #0
movs r1, #2
adds r2, r4, #0
bl sub_08059C8C
cmp r0, #0
beq _08059B0C
ldrb r1, [r4]
movs r0, #2
bl sub_08059CC0
_08059B0C:
pop {r4, r5, pc}
.align 2, 0
_08059B10: .4byte gUnk_081083DA
_08059B14: .4byte gUnk_081083F2
thumb_func_start sub_08059B18
sub_08059B18: @ 0x08059B18
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
movs r0, #0x18
bl GetProgressFlag
cmp r0, #0
beq _08059BEC
movs r6, #0
movs r0, #0x3f
mov sb, r0
movs r2, #0xc4
lsls r2, r2, #1
mov r8, r2
_08059B38:
movs r5, #0
lsls r1, r6, #4
mov r2, r8
lsrs r0, r2, #4
mov r2, sb
ands r0, r2
lsls r3, r0, #6
movs r7, #0x28
ldr r0, _08059BD8 @ =0x000004AB
adds r4, r1, r0
_08059B4C:
lsrs r1, r7, #4
mov r2, sb
ands r1, r2
orrs r1, r3
adds r0, r4, #0
movs r2, #1
str r3, [sp]
bl sub_0807B9B8
adds r7, #0x10
adds r4, #1
adds r5, #1
ldr r3, [sp]
cmp r5, #3
bls _08059B4C
movs r0, #0x10
add r8, r0
adds r6, #1
cmp r6, #3
bls _08059B38
movs r6, #0
movs r3, #0x3f
_08059B78:
movs r5, #0
lsls r1, r6, #4
adds r6, #1
mov r8, r6
movs r2, #0xc4
lsls r2, r2, #1
adds r0, r1, r2
lsrs r0, r0, #4
ands r0, r3
lsls r7, r0, #6
movs r6, #0x28
movs r0, #0x88
lsls r0, r0, #3
adds r4, r1, r0
_08059B94:
lsrs r1, r6, #4
ands r1, r3
orrs r1, r7
adds r0, r4, #0
movs r2, #2
str r3, [sp]
bl sub_0807B9B8
adds r6, #0x10
adds r4, #1
adds r5, #1
ldr r3, [sp]
cmp r5, #3
bls _08059B94
mov r6, r8
cmp r6, #2
bls _08059B78
ldr r1, _08059BDC @ =0x000005C2
movs r0, #0xd6
movs r2, #2
bl sub_0807B9B8
ldr r1, _08059BE0 @ =0x000005C3
movs r0, #0xd7
movs r2, #2
bl sub_0807B9B8
ldr r0, _08059BE4 @ =gUnk_086E8460
ldr r1, _08059BE8 @ =0x06001800
movs r2, #0x80
lsls r2, r2, #4
bl sub_08000E96
b _08059C5E
.align 2, 0
_08059BD8: .4byte 0x000004AB
_08059BDC: .4byte 0x000005C2
_08059BE0: .4byte 0x000005C3
_08059BE4: .4byte gUnk_086E8460
_08059BE8: .4byte 0x06001800
_08059BEC:
movs r0, #0x19
bl GetProgressFlag
cmp r0, #0
beq _08059C5E
movs r6, #0
movs r3, #0x3f
_08059BFA:
movs r5, #0
lsls r1, r6, #4
adds r6, #1
mov r8, r6
movs r2, #0xc4
lsls r2, r2, #1
adds r0, r1, r2
lsrs r0, r0, #4
ands r0, r3
lsls r7, r0, #6
movs r6, #0x28
ldr r0, _08059C68 @ =0x000004A6
adds r4, r1, r0
_08059C14:
lsrs r1, r6, #4
ands r1, r3
orrs r1, r7
adds r0, r4, #0
movs r2, #1
str r3, [sp]
bl sub_0807B9B8
adds r6, #0x10
adds r4, #1
adds r5, #1
ldr r3, [sp]
cmp r5, #3
bls _08059C14
mov r6, r8
cmp r6, #4
bls _08059BFA
ldr r0, _08059C6C @ =0x00000444
ldr r1, _08059C70 @ =0x00000602
movs r2, #2
bl sub_0807B9B8
ldr r0, _08059C74 @ =0x00000445
ldr r1, _08059C78 @ =0x00000605
movs r2, #2
bl sub_0807B9B8
ldr r0, _08059C7C @ =0x00000454
ldr r1, _08059C80 @ =0x00000642
movs r2, #2
bl sub_0807B9B8
ldr r0, _08059C84 @ =0x00000455
ldr r1, _08059C88 @ =0x00000645
movs r2, #2
bl sub_0807B9B8
_08059C5E:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08059C68: .4byte 0x000004A6
_08059C6C: .4byte 0x00000444
_08059C70: .4byte 0x00000602
_08059C74: .4byte 0x00000445
_08059C78: .4byte 0x00000605
_08059C7C: .4byte 0x00000454
_08059C80: .4byte 0x00000642
_08059C84: .4byte 0x00000455
_08059C88: .4byte 0x00000645
thumb_func_start sub_08059C8C
sub_08059C8C: @ 0x08059C8C
push {r4, r5, lr}
adds r5, r1, #0
adds r4, r2, #0
adds r0, r3, #0
bl sub_08056300
adds r2, r0, #0
strb r2, [r4]
lsls r0, r2, #0x18
lsrs r3, r0, #0x18
cmp r3, #0xff
beq _08059CBC
ldr r0, _08059CB8 @ =gUnk_02034350
adds r0, #0x10
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, r3
beq _08059CBC
strb r2, [r1]
movs r0, #1
b _08059CBE
.align 2, 0
_08059CB8: .4byte gUnk_02034350
_08059CBC:
movs r0, #0
_08059CBE:
pop {r4, r5, pc}
thumb_func_start sub_08059CC0
sub_08059CC0: @ 0x08059CC0
push {r4, r5, r6, lr}
adds r2, r1, #0
ldr r1, _08059CDC @ =gUnk_02034350
adds r1, #0x10
adds r0, r0, r1
strb r2, [r0]
ldr r0, _08059CE0 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0x15
beq _08059CE8
lsls r1, r2, #4
ldr r0, _08059CE4 @ =gUnk_08108408
b _08059CEC
.align 2, 0
_08059CDC: .4byte gUnk_02034350
_08059CE0: .4byte gUnk_03000BF0
_08059CE4: .4byte gUnk_08108408
_08059CE8:
lsls r1, r2, #4
ldr r0, _08059D10 @ =gUnk_08108468
_08059CEC:
adds r6, r1, r0
ldr r0, [r6]
ldr r4, _08059D14 @ =gUnk_085A2E80
adds r0, r0, r4
ldr r1, [r6, #4]
movs r5, #0x80
lsls r5, r5, #5
adds r2, r5, #0
bl sub_08000E96
ldr r0, [r6, #8]
adds r0, r0, r4
ldr r1, [r6, #0xc]
adds r2, r5, #0
bl sub_08000E96
pop {r4, r5, r6, pc}
.align 2, 0
_08059D10: .4byte gUnk_08108468
_08059D14: .4byte gUnk_085A2E80
thumb_func_start sub_08059D18
sub_08059D18: @ 0x08059D18
push {r4, lr}
ldr r0, _08059D68 @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0x15
beq _08059D78
ldr r0, _08059D6C @ =gUnk_08108398
bl sub_08056300
adds r4, r0, #0
cmp r4, #0xff
beq _08059D36
movs r0, #0
adds r1, r4, #0
bl sub_08059CC0
_08059D36:
ldr r0, _08059D70 @ =gUnk_081083AE
bl sub_08056300
adds r4, r0, #0
cmp r4, #0xff
beq _08059D52
movs r0, #1
adds r1, r4, #0
bl sub_08059CC0
cmp r4, #2
bne _08059D52
bl sub_08059B18
_08059D52:
ldr r0, _08059D74 @ =gUnk_081083C4
bl sub_08056300
adds r4, r0, #0
cmp r4, #0xff
beq _08059DA0
movs r0, #2
adds r1, r4, #0
bl sub_08059CC0
b _08059DA0
.align 2, 0
_08059D68: .4byte gUnk_03000BF0
_08059D6C: .4byte gUnk_08108398
_08059D70: .4byte gUnk_081083AE
_08059D74: .4byte gUnk_081083C4
_08059D78:
ldr r0, _08059DA4 @ =gUnk_081083DA
bl sub_08056300
adds r4, r0, #0
cmp r4, #0xff
beq _08059D8C
movs r0, #0
adds r1, r4, #0
bl sub_08059CC0
_08059D8C:
ldr r0, _08059DA8 @ =gUnk_081083F2
bl sub_08056300
adds r4, r0, #0
cmp r4, #0xff
beq _08059DA0
movs r0, #2
adds r1, r4, #0
bl sub_08059CC0
_08059DA0:
pop {r4, pc}
.align 2, 0
_08059DA4: .4byte gUnk_081083DA
_08059DA8: .4byte gUnk_081083F2
thumb_func_start sub_08059DAC
sub_08059DAC: @ 0x08059DAC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08059DBE
movs r0, #1
strb r0, [r5, #0xc]
_08059DBE:
ldr r1, _08059E4C @ =gUnk_03000BF0
ldrb r0, [r1, #4]
ldr r4, _08059E50 @ =gUnk_081084C8
cmp r0, #0x15
bne _08059DCA
ldr r4, _08059E54 @ =gUnk_08108530
_08059DCA:
movs r7, #0
ldrh r0, [r4]
cmp r0, #0
beq _08059E46
mov r8, r1
_08059DD4:
movs r6, #1
lsls r6, r7
ldr r0, [r5, #0x20]
ands r0, r6
cmp r0, #0
bne _08059E38
ldrh r0, [r4]
ldrh r1, [r4, #2]
movs r2, #0x10
movs r3, #0x10
bl sub_0800290E
cmp r0, #0
beq _08059E38
ldrb r1, [r4, #4]
movs r0, #0x1c
adds r2, r7, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059E38
ldrb r0, [r4, #5]
strb r0, [r2, #0x1e]
ldrh r0, [r4]
mov r1, r8
ldrh r1, [r1, #6]
adds r0, r0, r1
strh r0, [r2, #0x2e]
ldrh r0, [r4, #2]
mov r3, r8
ldrh r3, [r3, #8]
adds r0, r0, r3
strh r0, [r2, #0x32]
str r5, [r2, #0x50]
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x80
strh r1, [r0]
ldrh r0, [r4, #2]
adds r1, r2, #0
adds r1, #0x82
strh r0, [r1]
ldrb r1, [r4, #6]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r0, [r5, #0x20]
orrs r0, r6
str r0, [r5, #0x20]
_08059E38:
adds r4, #8
adds r7, #1
ldrh r0, [r4]
cmp r0, #0
beq _08059E46
cmp r7, #0x1f
bls _08059DD4
_08059E46:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08059E4C: .4byte gUnk_03000BF0
_08059E50: .4byte gUnk_081084C8
_08059E54: .4byte gUnk_08108530
thumb_func_start sub_08059E58
sub_08059E58: @ 0x08059E58
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x20]
adds r0, #1
strh r0, [r4, #0x20]
ldr r1, _08059E7C @ =gUnk_081085A4
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_0805A1D8
pop {r4, pc}
.align 2, 0
_08059E7C: .4byte gUnk_081085A4
thumb_func_start sub_08059E80
sub_08059E80: @ 0x08059E80
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0805EABC
cmp r0, #0
beq _08059E90
bl sub_0805E780
_08059E90:
adds r1, r4, #0
adds r1, #0x22
movs r2, #0
movs r0, #1
strb r0, [r1]
movs r0, #0
strh r2, [r4, #0x20]
strb r0, [r4, #0xe]
movs r0, #4
strb r0, [r4, #0xf]
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
ldr r3, _08059EE4 @ =gUnk_03000F50
ldr r0, _08059EE8 @ =0x00001E04
strh r0, [r3, #0x2c]
ldrh r0, [r3]
movs r5, #0x80
lsls r5, r5, #4
adds r1, r5, #0
orrs r0, r1
strh r0, [r3]
adds r1, r3, #0
adds r1, #0x66
ldr r0, _08059EEC @ =0x00003E48
strh r0, [r1]
adds r1, #2
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r1]
movs r0, #0x80
strh r0, [r3, #0x2e]
strh r2, [r3, #0x30]
ldr r1, _08059EF0 @ =nullsub_495
ldr r2, _08059EF4 @ =sub_0805A25C
adds r0, r4, #0
bl sub_08052D74
pop {r4, r5, pc}
.align 2, 0
_08059EE4: .4byte gUnk_03000F50
_08059EE8: .4byte 0x00001E04
_08059EEC: .4byte 0x00003E48
_08059EF0: .4byte nullsub_495
_08059EF4: .4byte sub_0805A25C
thumb_func_start sub_08059EF8
sub_08059EF8: @ 0x08059EF8
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r6, #0xff
lsls r0, r0, #0x18
lsrs r5, r0, #0x18
cmp r5, #0
bne _08059F90
movs r0, #4
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_08059F9C
cmp r0, #0
beq _08059F64
ldr r2, _08059F50 @ =gUnk_08108588
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
ldr r0, _08059F54 @ =0x00000808
cmp r1, r0
beq _08059F5C
adds r1, r4, #0
adds r1, #0x22
movs r0, #1
strb r0, [r1]
adds r0, r4, #0
adds r0, #0x24
strb r5, [r0]
ldr r1, _08059F58 @ =gUnk_03000F50
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ands r0, r6
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
adds r1, #0x68
strh r0, [r1]
b _08059F90
.align 2, 0
_08059F50: .4byte gUnk_08108588
_08059F54: .4byte 0x00000808
_08059F58: .4byte gUnk_03000F50
_08059F5C:
adds r0, r4, #0
adds r0, #0x22
strb r5, [r0]
b _08059F90
_08059F64:
adds r1, r4, #0
adds r1, #0x22
movs r0, #1
strb r0, [r1]
ldr r3, _08059F94 @ =gUnk_08108588
ldrb r2, [r4, #0xe]
lsls r0, r2, #1
adds r0, r0, r3
ldrh r1, [r0]
movs r0, #0x80
lsls r0, r0, #5
cmp r1, r0
beq _08059F90
ldr r0, _08059F98 @ =gUnk_03000F50
subs r1, r2, #1
strb r1, [r4, #0xe]
ands r1, r6
lsls r1, r1, #1
adds r1, r1, r3
ldrh r1, [r1]
adds r0, #0x68
strh r1, [r0]
_08059F90:
pop {r4, r5, r6, pc}
.align 2, 0
_08059F94: .4byte gUnk_08108588
_08059F98: .4byte gUnk_03000F50
thumb_func_start sub_08059F9C
sub_08059F9C: @ 0x08059F9C
push {r4, lr}
adds r4, r0, #0
ldr r0, _08059FB4 @ =gUnk_03000BF0
ldrb r0, [r0, #5]
cmp r0, #0x17
bhi _0805A03A
lsls r0, r0, #2
ldr r1, _08059FB8 @ =_08059FBC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08059FB4: .4byte gUnk_03000BF0
_08059FB8: .4byte _08059FBC
_08059FBC: @ jump table
.4byte _0805A036 @ case 0
.4byte _0805A01C @ case 1
.4byte _0805A03A @ case 2
.4byte _0805A03A @ case 3
.4byte _0805A03A @ case 4
.4byte _0805A03A @ case 5
.4byte _0805A03A @ case 6
.4byte _0805A02A @ case 7
.4byte _0805A036 @ case 8
.4byte _0805A036 @ case 9
.4byte _0805A03A @ case 10
.4byte _0805A03A @ case 11
.4byte _0805A03A @ case 12
.4byte _0805A03A @ case 13
.4byte _0805A03A @ case 14
.4byte _0805A03A @ case 15
.4byte _0805A03A @ case 16
.4byte _0805A03A @ case 17
.4byte _0805A03A @ case 18
.4byte _0805A03A @ case 19
.4byte _0805A03A @ case 20
.4byte _0805A03A @ case 21
.4byte _0805A03A @ case 22
.4byte _0805A036 @ case 23
_0805A01C:
movs r0, #0x16
bl sub_0807CBD0
cmp r0, #0
beq _0805A02A
movs r0, #0
b _0805A03C
_0805A02A:
adds r0, r4, #0
bl sub_0805A25C
bl sub_0805E780
b _0805A03C
_0805A036:
movs r0, #1
b _0805A03C
_0805A03A:
movs r0, #0
_0805A03C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805A040
sub_0805A040: @ 0x0805A040
push {lr}
bl sub_0805A098
pop {pc}
thumb_func_start sub_0805A048
sub_0805A048: @ 0x0805A048
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805A086
movs r0, #4
strb r0, [r4, #0xf]
ldr r2, _0805A090 @ =gUnk_03000F50
ldr r3, _0805A094 @ =gUnk_08108588
ldrb r0, [r4, #0xe]
adds r1, r0, #1
strb r1, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r3
ldrh r0, [r0]
adds r2, #0x68
strh r0, [r2]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #9
bne _0805A086
movs r0, #1
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x22
movs r0, #0
strb r0, [r1]
_0805A086:
adds r0, r4, #0
bl sub_0805A098
pop {r4, pc}
.align 2, 0
_0805A090: .4byte gUnk_03000F50
_0805A094: .4byte gUnk_08108588
thumb_func_start sub_0805A098
sub_0805A098: @ 0x0805A098
push {lr}
adds r1, r0, #0
ldr r0, _0805A0B0 @ =gUnk_03000BF0
ldrb r0, [r0, #5]
cmp r0, #9
bgt _0805A0B4
cmp r0, #8
bge _0805A0BC
cmp r0, #0
beq _0805A0BC
b _0805A0B8
.align 2, 0
_0805A0B0: .4byte gUnk_03000BF0
_0805A0B4:
cmp r0, #0x17
beq _0805A0BC
_0805A0B8:
movs r0, #3
strb r0, [r1, #0xc]
_0805A0BC:
pop {pc}
.align 2, 0
thumb_func_start sub_0805A0C0
sub_0805A0C0: @ 0x0805A0C0
push {r4, lr}
adds r3, r0, #0
ldrb r0, [r3, #0xf]
subs r0, #1
strb r0, [r3, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805A106
movs r0, #4
strb r0, [r3, #0xf]
ldr r4, _0805A108 @ =gUnk_03000F50
ldr r2, _0805A10C @ =gUnk_08108588
ldrb r0, [r3, #0xe]
adds r1, r0, #0
adds r1, #0xff
strb r1, [r3, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x17
adds r0, r0, r2
ldrh r2, [r0]
adds r0, r4, #0
adds r0, #0x68
strh r2, [r0]
lsls r1, r1, #0x18
lsrs r1, r1, #0x18
cmp r1, #0xff
bne _0805A106
ldrh r1, [r4]
ldr r0, _0805A110 @ =0x0000F7FF
ands r0, r1
strh r0, [r4]
bl sub_08056250
bl sub_0805E780
_0805A106:
pop {r4, pc}
.align 2, 0
_0805A108: .4byte gUnk_03000F50
_0805A10C: .4byte gUnk_08108588
_0805A110: .4byte 0x0000F7FF
thumb_func_start sub_0805A114
sub_0805A114: @ 0x0805A114
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r7, r0, #0
adds r6, r1, #0
ldr r2, _0805A154 @ =gUnk_03003DE4
ldrb r1, [r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _0805A158 @ =gUnk_02017AA0
adds r4, r0, r1
movs r5, #0
mov r8, r2
mov sb, r1
ldr r2, _0805A15C @ =gUnk_03000F50
ldr r0, _0805A160 @ =gUnk_080C9160
mov ip, r0
_0805A13A:
movs r1, #0x30
ldrsh r0, [r2, r1]
adds r3, r5, r0
asrs r1, r3, #3
movs r0, #7
ands r1, r0
cmp r1, #7
bhi _0805A190
lsls r0, r1, #2
ldr r1, _0805A164 @ =_0805A168
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0805A154: .4byte gUnk_03003DE4
_0805A158: .4byte gUnk_02017AA0
_0805A15C: .4byte gUnk_03000F50
_0805A160: .4byte gUnk_080C9160
_0805A164: .4byte _0805A168
_0805A168: @ jump table
.4byte _0805A190 @ case 0
.4byte _0805A18C @ case 1
.4byte _0805A190 @ case 2
.4byte _0805A190 @ case 3
.4byte _0805A188 @ case 4
.4byte _0805A190 @ case 5
.4byte _0805A190 @ case 6
.4byte _0805A18C @ case 7
_0805A188:
subs r3, #8
b _0805A190
_0805A18C:
movs r0, #0xf0
b _0805A192
_0805A190:
movs r0, #0xf8
_0805A192:
ands r3, r0
adds r0, r6, r3
movs r1, #0xff
ands r0, r1
lsls r0, r0, #1
add r0, ip
movs r1, #0
ldrsh r0, [r0, r1]
muls r0, r7, r0
lsrs r0, r0, #8
ldrh r1, [r2, #0x2e]
adds r0, r0, r1
strh r0, [r4]
adds r4, #2
adds r5, #1
cmp r5, #0x9f
ble _0805A13A
mov r0, r8
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
add r0, sb
ldr r1, _0805A1D0 @ =0x0400001C
ldr r2, _0805A1D4 @ =0xA2600001
bl sub_0805622C
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805A1D0: .4byte 0x0400001C
_0805A1D4: .4byte 0xA2600001
thumb_func_start sub_0805A1D8
sub_0805A1D8: @ 0x0805A1D8
push {r4, r5, lr}
adds r4, r0, #0
ldr r1, _0805A244 @ =gUnk_03000BF0
ldr r0, [r1, #0x28]
ldr r2, _0805A248 @ =0xFFFFF000
adds r0, r0, r2
str r0, [r1, #0x28]
ldr r5, _0805A24C @ =gUnk_03000F50
ldrh r0, [r1, #0x2a]
strh r0, [r5, #0x2e]
ldr r0, [r1, #0x2c]
adds r0, r0, r2
str r0, [r1, #0x2c]
ldrh r0, [r1, #0x2e]
strh r0, [r5, #0x30]
ldrh r1, [r5]
movs r0, #0x80
lsls r0, r0, #4
ands r0, r1
cmp r0, #0
beq _0805A240
ldrh r1, [r4, #0x20]
lsrs r1, r1, #1
movs r0, #6
bl sub_0805A114
adds r0, r4, #0
adds r0, #0x22
ldrb r0, [r0]
cmp r0, #0
bne _0805A240
ldr r0, _0805A250 @ =gUnk_03001000
ldrh r1, [r0, #0xc]
movs r0, #0x1f
ands r0, r1
cmp r0, #0
bne _0805A240
adds r2, r4, #0
adds r2, #0x24
ldrb r0, [r2]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r2]
ldr r1, _0805A254 @ =gUnk_0810859A
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r1, [r0]
adds r0, r5, #0
adds r0, #0x68
strh r1, [r0]
_0805A240:
pop {r4, r5, pc}
.align 2, 0
_0805A244: .4byte gUnk_03000BF0
_0805A248: .4byte 0xFFFFF000
_0805A24C: .4byte gUnk_03000F50
_0805A250: .4byte gUnk_03001000
_0805A254: .4byte gUnk_0810859A
thumb_func_start nullsub_495
nullsub_495: @ 0x0805A258
bx lr
.align 2, 0
thumb_func_start sub_0805A25C
sub_0805A25C: @ 0x0805A25C
push {lr}
ldr r1, _0805A278 @ =gUnk_03000F50
adds r2, r1, #0
adds r2, #0x66
movs r0, #0
strh r0, [r2]
ldrh r2, [r1]
ldr r0, _0805A27C @ =0x0000F7FF
ands r0, r2
strh r0, [r1]
bl sub_08056250
pop {pc}
.align 2, 0
_0805A278: .4byte gUnk_03000F50
_0805A27C: .4byte 0x0000F7FF
thumb_func_start sub_0805A280
sub_0805A280: @ 0x0805A280
push {lr}
ldr r2, _0805A294 @ =gUnk_081085D8
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805A294: .4byte gUnk_081085D8
thumb_func_start sub_0805A298
sub_0805A298: @ 0x0805A298
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805A2D6
adds r0, r4, #0
bl sub_0805A89C
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
bne _0805A2BA
adds r1, r4, #0
adds r1, #0x23
movs r0, #1
b _0805A2C0
_0805A2BA:
adds r1, r4, #0
adds r1, #0x23
movs r0, #2
_0805A2C0:
strb r0, [r1]
ldrb r0, [r1]
bl sub_0805AAF0
ldr r2, _0805A2E0 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x90
lsls r3, r3, #7
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
_0805A2D6:
adds r0, r4, #0
bl sub_0805A8EC
pop {r4, pc}
.align 2, 0
_0805A2E0: .4byte gUnk_03000F50
thumb_func_start sub_0805A2E4
sub_0805A2E4: @ 0x0805A2E4
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805A34C
adds r0, r4, #0
bl sub_0805A89C
adds r0, r4, #0
adds r0, #0x23
movs r5, #1
strb r5, [r0]
movs r0, #1
bl sub_0805AAF0
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
bne _0805A324
strb r5, [r4, #0xc]
ldr r2, _0805A31C @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A320 @ =0x0000B7FF
ands r0, r1
strh r0, [r2]
b _0805A35C
.align 2, 0
_0805A31C: .4byte gUnk_03000F50
_0805A320: .4byte 0x0000B7FF
_0805A324:
movs r0, #0x48
bl sub_0807CBD0
cmp r0, #0
beq _0805A332
movs r0, #4
b _0805A334
_0805A332:
movs r0, #3
_0805A334:
strb r0, [r4, #0xc]
ldr r2, _0805A348 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x90
lsls r3, r3, #7
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
b _0805A35C
.align 2, 0
_0805A348: .4byte gUnk_03000F50
_0805A34C:
ldr r0, _0805A36C @ =gUnk_081085F8
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0805A35C:
ldr r0, [r4, #4]
cmp r0, #0
beq _0805A368
adds r0, r4, #0
bl sub_0805A8EC
_0805A368:
pop {r4, r5, pc}
.align 2, 0
_0805A36C: .4byte gUnk_081085F8
thumb_func_start sub_0805A370
sub_0805A370: @ 0x0805A370
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805A38A
ldr r0, _0805A38C @ =gUnk_080E4C08
bl LoadRoomEntityList
movs r0, #3
strb r0, [r4, #0xc]
ldr r0, _0805A390 @ =0x80100000
bl sub_080A3268
_0805A38A:
pop {r4, pc}
.align 2, 0
_0805A38C: .4byte gUnk_080E4C08
_0805A390: .4byte 0x80100000
thumb_func_start sub_0805A394
sub_0805A394: @ 0x0805A394
push {lr}
movs r0, #3
movs r1, #0x13
movs r2, #4
bl sub_0805EB00
cmp r0, #0
beq _0805A3AA
ldrb r0, [r0, #0xa]
cmp r0, #4
bne _0805A3C4
_0805A3AA:
movs r0, #0x48
bl sub_0807CCB4
movs r0, #0
bl sub_0807CD8C
ldr r2, _0805A3C8 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A3CC @ =0x0000B7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805A3C4:
pop {pc}
.align 2, 0
_0805A3C8: .4byte gUnk_03000F50
_0805A3CC: .4byte 0x0000B7FF
thumb_func_start nullsub_496
nullsub_496: @ 0x0805A3D0
bx lr
.align 2, 0
thumb_func_start sub_0805A3D4
sub_0805A3D4: @ 0x0805A3D4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805A448
adds r0, r4, #0
bl sub_0805A89C
ldrb r0, [r4, #0xa]
cmp r0, #3
bne _0805A3F2
adds r1, r4, #0
adds r1, #0x23
movs r0, #2
b _0805A3F8
_0805A3F2:
adds r1, r4, #0
adds r1, #0x23
movs r0, #1
_0805A3F8:
strb r0, [r1]
ldrb r0, [r1]
bl sub_0805AAF0
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
bne _0805A428
ldrh r0, [r4, #0x3c]
bl sub_0807CD48
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805A420 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A424 @ =0x0000B7FF
ands r0, r1
strh r0, [r2]
b _0805A458
.align 2, 0
_0805A420: .4byte gUnk_03000F50
_0805A424: .4byte 0x0000B7FF
_0805A428:
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
movs r0, #3
strb r0, [r4, #0xc]
ldr r2, _0805A444 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x90
lsls r3, r3, #7
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
b _0805A458
.align 2, 0
_0805A444: .4byte gUnk_03000F50
_0805A448:
ldr r0, _0805A460 @ =gUnk_0810860C
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0805A458:
adds r0, r4, #0
bl sub_0805A8EC
pop {r4, pc}
.align 2, 0
_0805A460: .4byte gUnk_0810860C
thumb_func_start sub_0805A464
sub_0805A464: @ 0x0805A464
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
beq _0805A47E
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #0
bl sub_0805A4CC
_0805A47E:
pop {r4, pc}
thumb_func_start sub_0805A480
sub_0805A480: @ 0x0805A480
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xd]
cmp r0, #0
beq _0805A494
movs r0, #3
strb r0, [r1, #0xc]
ldrh r0, [r1, #0x3c]
bl sub_0807CCC8
_0805A494:
pop {pc}
.align 2, 0
thumb_func_start sub_0805A498
sub_0805A498: @ 0x0805A498
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
bne _0805A4B2
movs r0, #4
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #1
bl sub_0805A4CC
_0805A4B2:
pop {r4, pc}
thumb_func_start sub_0805A4B4
sub_0805A4B4: @ 0x0805A4B4
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xd]
cmp r0, #0
beq _0805A4C8
movs r0, #1
strb r0, [r1, #0xc]
ldrh r0, [r1, #0x3c]
bl sub_0807CD48
_0805A4C8:
pop {pc}
.align 2, 0
thumb_func_start sub_0805A4CC
sub_0805A4CC: @ 0x0805A4CC
push {r4, lr}
adds r4, r0, #0
movs r0, #0x8e
movs r2, #0
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805A4F8
ldr r1, _0805A4FC @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r2, [r4, #0x38]
adds r0, r0, r2
movs r2, #0
strh r0, [r3, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r4, #0x3a]
adds r0, r0, r1
subs r0, #0x30
strh r0, [r3, #0x32]
str r4, [r3, #0x50]
strb r2, [r4, #0xd]
_0805A4F8:
pop {r4, pc}
.align 2, 0
_0805A4FC: .4byte gUnk_03000BF0
thumb_func_start sub_0805A500
sub_0805A500: @ 0x0805A500
push {r4, r5, lr}
adds r4, r0, #0
ldrb r5, [r4, #0xc]
cmp r5, #0
bne _0805A588
bl sub_0805A89C
str r5, [r4, #0x28]
movs r0, #0x36
bl sub_0807CBD0
cmp r0, #0
beq _0805A538
adds r3, r4, #0
adds r3, #0x23
movs r0, #3
strb r0, [r3]
movs r0, #5
strb r0, [r4, #0xc]
ldr r2, _0805A534 @ =gUnk_03000F50
ldrh r1, [r2]
movs r5, #0x90
lsls r5, r5, #7
adds r0, r5, #0
orrs r0, r1
b _0805A574
.align 2, 0
_0805A534: .4byte gUnk_03000F50
_0805A538:
movs r0, #0x34
bl sub_0807CBD0
cmp r0, #0
beq _0805A560
adds r3, r4, #0
adds r3, #0x23
movs r0, #4
strb r0, [r3]
movs r0, #3
strb r0, [r4, #0xc]
ldr r2, _0805A55C @ =gUnk_03000F50
ldrh r1, [r2]
movs r5, #0x90
lsls r5, r5, #7
adds r0, r5, #0
orrs r0, r1
b _0805A574
.align 2, 0
_0805A55C: .4byte gUnk_03000F50
_0805A560:
adds r3, r4, #0
adds r3, #0x23
movs r0, #4
strb r0, [r3]
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805A580 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A584 @ =0x0000B7FF
ands r0, r1
_0805A574:
strh r0, [r2]
ldrb r0, [r3]
bl sub_0805AAF0
b _0805A598
.align 2, 0
_0805A580: .4byte gUnk_03000F50
_0805A584: .4byte 0x0000B7FF
_0805A588:
ldr r0, _0805A5C0 @ =gUnk_08108620
ldrb r1, [r4, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0805A598:
adds r0, r4, #0
bl sub_0805AA58
adds r0, r4, #0
bl sub_0805A9CC
ldr r1, _0805A5C4 @ =gUnk_03000BF0
ldrh r3, [r1]
cmp r3, #1
bne _0805A5CC
ldr r2, _0805A5C8 @ =gUnk_03000F50
ldrh r1, [r2]
movs r5, #0x80
lsls r5, r5, #7
adds r0, r5, #0
orrs r0, r1
strh r0, [r2]
strb r3, [r4, #0xd]
b _0805A5F0
.align 2, 0
_0805A5C0: .4byte gUnk_08108620
_0805A5C4: .4byte gUnk_03000BF0
_0805A5C8: .4byte gUnk_03000F50
_0805A5CC:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805A5F0
movs r0, #0
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x20
ldrb r0, [r0]
ldrb r1, [r1, #5]
cmp r0, r1
beq _0805A5F0
ldr r2, _0805A5F4 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A5F8 @ =0x0000B7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805A5F0:
pop {r4, r5, pc}
.align 2, 0
_0805A5F4: .4byte gUnk_03000F50
_0805A5F8: .4byte 0x0000B7FF
thumb_func_start sub_0805A5FC
sub_0805A5FC: @ 0x0805A5FC
push {r4, lr}
adds r4, r0, #0
movs r0, #0x34
bl sub_0807CBD0
cmp r0, #0
beq _0805A616
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #2
bl sub_0805A4CC
_0805A616:
pop {r4, pc}
thumb_func_start sub_0805A618
sub_0805A618: @ 0x0805A618
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xd]
cmp r0, #0
beq _0805A626
movs r0, #3
strb r0, [r1, #0xc]
_0805A626:
pop {pc}
thumb_func_start sub_0805A628
sub_0805A628: @ 0x0805A628
push {r4, lr}
adds r4, r0, #0
movs r0, #0x36
bl sub_0807CBD0
cmp r0, #0
beq _0805A64A
movs r0, #4
strb r0, [r4, #0xc]
adds r1, r4, #0
adds r1, #0x23
movs r0, #3
strb r0, [r1]
adds r0, r4, #0
movs r1, #3
bl sub_0805A4CC
_0805A64A:
pop {r4, pc}
thumb_func_start sub_0805A64C
sub_0805A64C: @ 0x0805A64C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xd]
cmp r0, #0
beq _0805A65A
movs r0, #5
strb r0, [r1, #0xc]
_0805A65A:
pop {pc}
thumb_func_start sub_0805A65C
sub_0805A65C: @ 0x0805A65C
bx lr
.align 2, 0
thumb_func_start sub_0805A660
sub_0805A660: @ 0x0805A660
bx lr
.align 2, 0
thumb_func_start sub_0805A664
sub_0805A664: @ 0x0805A664
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805A688 @ =gUnk_08108638
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_0805A8EC
adds r0, r4, #0
bl sub_0805A68C
pop {r4, pc}
.align 2, 0
_0805A688: .4byte gUnk_08108638
thumb_func_start sub_0805A68C
sub_0805A68C: @ 0x0805A68C
push {r4, lr}
adds r4, r0, #0
movs r1, #0x38
ldrsh r0, [r4, r1]
subs r0, #0x18
movs r2, #0x3a
ldrsh r1, [r4, r2]
subs r1, #0x18
movs r2, #0x30
movs r3, #0x30
bl sub_0806FBFC
cmp r0, #0
beq _0805A6CC
ldrh r1, [r4, #0x2c]
ldr r0, _0805A6C4 @ =0x00001007
cmp r1, r0
bhi _0805A6E2
ldr r0, _0805A6C8 @ =gUnk_03000F50
adds r1, #1
movs r2, #0
strh r1, [r4, #0x2c]
adds r0, #0x68
strh r1, [r0]
adds r0, r4, #0
adds r0, #0x22
strb r2, [r0]
b _0805A6E2
.align 2, 0
_0805A6C4: .4byte 0x00001007
_0805A6C8: .4byte gUnk_03000F50
_0805A6CC:
ldrh r1, [r4, #0x2c]
movs r0, #0x80
lsls r0, r0, #5
cmp r1, r0
bls _0805A6DA
subs r0, r1, #1
strh r0, [r4, #0x2c]
_0805A6DA:
ldr r0, _0805A6E4 @ =gUnk_03000F50
ldrh r1, [r4, #0x2c]
adds r0, #0x68
strh r1, [r0]
_0805A6E2:
pop {r4, pc}
.align 2, 0
_0805A6E4: .4byte gUnk_03000F50
thumb_func_start sub_0805A6E8
sub_0805A6E8: @ 0x0805A6E8
push {r4, lr}
adds r4, r0, #0
bl sub_0805A89C
adds r1, r4, #0
adds r1, #0x23
movs r0, #0
strb r0, [r1]
bl sub_0805AAF0
ldr r1, _0805A734 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r2, [r4, #0x38]
adds r0, r0, r2
strh r0, [r4, #0x38]
ldrh r0, [r1, #8]
ldrh r3, [r4, #0x3a]
adds r0, r0, r3
strh r0, [r4, #0x3a]
adds r0, r4, #0
bl sub_0805A73C
cmp r0, #0
bne _0805A71E
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0805A71E:
movs r0, #0x80
lsls r0, r0, #5
strh r0, [r4, #0x2c]
ldr r2, _0805A738 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x90
lsls r3, r3, #7
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
pop {r4, pc}
.align 2, 0
_0805A734: .4byte gUnk_03000BF0
_0805A738: .4byte gUnk_03000F50
thumb_func_start sub_0805A73C
sub_0805A73C: @ 0x0805A73C
push {lr}
adds r1, r0, #0
movs r2, #0x38
ldrsh r0, [r1, r2]
subs r0, #6
movs r2, #0x3a
ldrsh r1, [r1, r2]
subs r1, #6
movs r2, #0xc
movs r3, #0xc
bl sub_0806FBFC
pop {pc}
.align 2, 0
thumb_func_start sub_0805A758
sub_0805A758: @ 0x0805A758
push {r4, lr}
adds r4, r0, #0
bl sub_0805A73C
cmp r0, #0
bne _0805A76A
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_0805A76A:
pop {r4, pc}
thumb_func_start sub_0805A76C
sub_0805A76C: @ 0x0805A76C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldr r5, _0805A7D4 @ =gLinkEntity
adds r0, r5, #0
adds r0, #0x45
ldrb r0, [r0]
cmp r0, #0
beq _0805A7D0
movs r1, #0x36
ldrsh r0, [r5, r1]
cmp r0, #0
bne _0805A7D0
ldr r0, _0805A7D8 @ =gUnk_03003F80
ldr r6, [r0, #0x2c]
cmp r6, #0
bne _0805A7D0
adds r0, #0xa9
ldrb r0, [r0]
cmp r0, #1
bgt _0805A7D0
cmp r0, #0
blt _0805A7D0
adds r0, r4, #0
bl sub_0805A73C
cmp r0, #0
beq _0805A7D0
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
adds r0, r5, #0
bl sub_08004168
movs r0, #4
strb r0, [r5, #0x14]
movs r1, #0x96
lsls r1, r1, #2
adds r0, r4, #0
bl sub_0805E4E0
movs r0, #0xff
bl sub_08078A90
ldr r1, _0805A7DC @ =gUnk_02034490
movs r0, #1
strb r0, [r1]
ldr r0, _0805A7E0 @ =gUnk_03000BF0
str r6, [r0, #0x30]
bl sub_08077B20
_0805A7D0:
pop {r4, r5, r6, pc}
.align 2, 0
_0805A7D4: .4byte gLinkEntity
_0805A7D8: .4byte gUnk_03003F80
_0805A7DC: .4byte gUnk_02034490
_0805A7E0: .4byte gUnk_03000BF0
thumb_func_start sub_0805A7E4
sub_0805A7E4: @ 0x0805A7E4
push {lr}
ldr r2, _0805A800 @ =gUnk_03003F80
ldrb r0, [r2, #0xc]
cmp r0, #0x12
beq _0805A7FE
movs r1, #0
movs r0, #0x12
strb r0, [r2, #0xc]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r0, #1
strb r1, [r0]
_0805A7FE:
pop {pc}
.align 2, 0
_0805A800: .4byte gUnk_03003F80
thumb_func_start sub_0805A804
sub_0805A804: @ 0x0805A804
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #4
bhi _0805A896
lsls r0, r0, #2
ldr r1, _0805A818 @ =_0805A81C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0805A818: .4byte _0805A81C
_0805A81C: @ jump table
.4byte _0805A830 @ case 0
.4byte _0805A858 @ case 1
.4byte _0805A866 @ case 2
.4byte _0805A872 @ case 3
.4byte _0805A88A @ case 4
_0805A830:
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
beq _0805A83E
movs r0, #1
b _0805A840
_0805A83E:
movs r0, #2
_0805A840:
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xd]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
b _0805A89A
_0805A858:
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
bne _0805A89A
movs r0, #2
b _0805A87E
_0805A866:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805A89A
movs r0, #3
strb r0, [r4, #0xc]
b _0805A89A
_0805A872:
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
beq _0805A89A
movs r0, #4
_0805A87E:
strb r0, [r4, #0xc]
adds r0, r4, #0
movs r1, #4
bl sub_0805A4CC
b _0805A89A
_0805A88A:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805A89A
movs r0, #1
strb r0, [r4, #0xc]
b _0805A89A
_0805A896:
bl sub_0805E780
_0805A89A:
pop {r4, pc}
thumb_func_start sub_0805A89C
sub_0805A89C: @ 0x0805A89C
push {r4, lr}
adds r4, r0, #0
movs r1, #6
bl sub_0805E3A0
movs r2, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #0x10
strb r0, [r4, #0xf]
adds r0, r4, #0
adds r0, #0x21
strb r2, [r0]
adds r0, #1
strb r2, [r0]
ldr r1, _0805A8E4 @ =gUnk_03000BF0
ldrb r2, [r1, #5]
subs r0, #2
strb r2, [r0]
ldrh r0, [r1, #6]
strh r0, [r4, #0x24]
ldrh r0, [r1, #8]
strh r0, [r4, #0x26]
ldr r1, _0805A8E8 @ =sub_0805AAC8
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
pop {r4, pc}
.align 2, 0
_0805A8E4: .4byte gUnk_03000BF0
_0805A8E8: .4byte sub_0805AAC8
thumb_func_start sub_0805A8EC
sub_0805A8EC: @ 0x0805A8EC
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0805AA58
adds r0, r4, #0
bl sub_0805A94C
ldr r1, _0805A914 @ =gUnk_03000BF0
ldrh r3, [r1]
cmp r3, #1
bne _0805A91C
ldr r2, _0805A918 @ =gUnk_03000F50
ldrh r1, [r2]
movs r5, #0x80
lsls r5, r5, #7
adds r0, r5, #0
orrs r0, r1
strh r0, [r2]
strb r3, [r4, #0xd]
b _0805A940
.align 2, 0
_0805A914: .4byte gUnk_03000BF0
_0805A918: .4byte gUnk_03000F50
_0805A91C:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805A940
movs r0, #0
strb r0, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x20
ldrb r0, [r0]
ldrb r1, [r1, #5]
cmp r0, r1
beq _0805A940
ldr r2, _0805A944 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805A948 @ =0x0000B7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805A940:
pop {r4, r5, pc}
.align 2, 0
_0805A944: .4byte gUnk_03000F50
_0805A948: .4byte 0x0000B7FF
thumb_func_start sub_0805A94C
sub_0805A94C: @ 0x0805A94C
push {r4, lr}
ldr r4, _0805A9C4 @ =gUnk_03000F50
ldr r3, _0805A9C8 @ =gUnk_03000BF0
ldrh r1, [r3, #0xa]
ldrh r2, [r0, #0x24]
subs r1, r1, r2
ldrh r2, [r0, #0x34]
adds r1, r1, r2
strh r1, [r4, #0x2e]
ldrh r1, [r3, #0xc]
ldrh r2, [r0, #0x26]
subs r1, r1, r2
ldrh r0, [r0, #0x36]
adds r1, r1, r0
strh r1, [r4, #0x30]
movs r1, #0x2e
ldrsh r0, [r4, r1]
rsbs r0, r0, #0
movs r2, #0x80
lsls r2, r2, #1
adds r1, r0, r2
cmp r0, #0
bge _0805A97C
movs r0, #0
_0805A97C:
cmp r0, #0xf0
ble _0805A982
movs r0, #0xf0
_0805A982:
cmp r1, #0
bge _0805A988
movs r1, #0
_0805A988:
cmp r1, #0xf0
ble _0805A98E
movs r1, #0xf0
_0805A98E:
lsls r0, r0, #8
orrs r0, r1
adds r1, r4, #0
adds r1, #0x5a
strh r0, [r1]
movs r1, #0x30
ldrsh r0, [r4, r1]
rsbs r0, r0, #0
adds r1, r0, r2
cmp r0, #0
bge _0805A9A6
movs r0, #0
_0805A9A6:
cmp r0, #0xa0
ble _0805A9AC
movs r0, #0xa0
_0805A9AC:
cmp r1, #0
bge _0805A9B2
movs r1, #0
_0805A9B2:
cmp r1, #0xa0
ble _0805A9B8
movs r1, #0xa0
_0805A9B8:
lsls r0, r0, #8
orrs r0, r1
adds r1, r4, #0
adds r1, #0x5e
strh r0, [r1]
pop {r4, pc}
.align 2, 0
_0805A9C4: .4byte gUnk_03000F50
_0805A9C8: .4byte gUnk_03000BF0
thumb_func_start sub_0805A9CC
sub_0805A9CC: @ 0x0805A9CC
push {r4, r5, lr}
adds r4, r0, #0
ldr r3, _0805AA4C @ =gUnk_03000F50
ldr r5, _0805AA50 @ =gUnk_03000BF0
ldrh r0, [r5, #0xa]
ldrh r1, [r4, #0x24]
subs r0, r0, r1
ldrh r1, [r4, #0x34]
adds r0, r0, r1
strh r0, [r3, #0x2e]
movs r2, #0x2e
ldrsh r0, [r3, r2]
rsbs r2, r0, #0
movs r0, #0x80
lsls r0, r0, #1
adds r1, r2, r0
cmp r2, #0
bge _0805A9F2
movs r2, #0
_0805A9F2:
cmp r2, #0xf0
ble _0805A9F8
movs r2, #0xf0
_0805A9F8:
cmp r1, #0
bge _0805A9FE
movs r1, #0
_0805A9FE:
cmp r1, #0xf0
ble _0805AA04
movs r1, #0xf0
_0805AA04:
lsls r0, r2, #8
orrs r0, r1
adds r1, r3, #0
adds r1, #0x5a
strh r0, [r1]
movs r1, #0xc
ldrsh r0, [r5, r1]
ldrh r1, [r4, #0x26]
subs r0, r0, r1
movs r2, #0x36
ldrsh r1, [r4, r2]
adds r2, r0, r1
movs r1, #0x3f
adds r0, r2, #0
ands r0, r1
strh r0, [r3, #0x30]
adds r0, r2, #0
cmp r0, #0
bge _0805AA2C
adds r0, #0x3f
_0805AA2C:
asrs r0, r0, #6
lsls r0, r0, #9
ldr r1, _0805AA54 @ =gUnk_02001A40
adds r1, r0, r1
str r1, [r3, #0x34]
adds r2, r3, #0
adds r2, #0x5e
movs r0, #0xa0
strh r0, [r2]
ldr r0, [r4, #0x28]
cmp r0, r1
beq _0805AA4A
str r1, [r4, #0x28]
movs r0, #1
strh r0, [r3, #0x32]
_0805AA4A:
pop {r4, r5, pc}
.align 2, 0
_0805AA4C: .4byte gUnk_03000F50
_0805AA50: .4byte gUnk_03000BF0
_0805AA54: .4byte gUnk_02001A40
thumb_func_start sub_0805AA58
sub_0805AA58: @ 0x0805AA58
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r5, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0805AA8C
movs r0, #8
strb r0, [r4, #0xe]
adds r2, r4, #0
adds r2, #0x21
ldrb r0, [r2]
adds r0, #1
movs r1, #3
ands r0, r1
strb r0, [r2]
ldrb r0, [r2]
lsls r0, r0, #5
ldr r1, _0805AABC @ =gUnk_085A97A0
adds r0, r0, r1
movs r1, #5
movs r2, #1
bl sub_0801D754
_0805AA8C:
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
ands r0, r5
cmp r0, #0
bne _0805AABA
movs r0, #0x10
strb r0, [r4, #0xf]
adds r2, r4, #0
adds r2, #0x22
ldrb r0, [r2]
adds r0, #1
movs r1, #0xf
ands r0, r1
strb r0, [r2]
ldr r1, _0805AAC0 @ =gUnk_03000F50
ldr r3, _0805AAC4 @ =gUnk_081085B8
ldrb r0, [r2]
lsls r0, r0, #1
adds r0, r0, r3
ldrh r0, [r0]
adds r1, #0x68
strh r0, [r1]
_0805AABA:
pop {r4, r5, pc}
.align 2, 0
_0805AABC: .4byte gUnk_085A97A0
_0805AAC0: .4byte gUnk_03000F50
_0805AAC4: .4byte gUnk_081085B8
thumb_func_start sub_0805AAC8
sub_0805AAC8: @ 0x0805AAC8
push {r4, lr}
adds r4, r0, #0
adds r0, #0x23
ldrb r0, [r0]
bl sub_0805AAF0
adds r0, r4, #0
bl sub_0805A280
pop {r4, pc}
thumb_func_start sub_0805AADC
sub_0805AADC: @ 0x0805AADC
push {lr}
ldr r1, _0805AAEC @ =gUnk_08108648
lsls r0, r0, #1
adds r0, r0, r1
ldrh r0, [r0]
bl sub_0801D7EC
pop {pc}
.align 2, 0
_0805AAEC: .4byte gUnk_08108648
thumb_func_start sub_0805AAF0
sub_0805AAF0: @ 0x0805AAF0
push {lr}
bl sub_0805AADC
ldr r3, _0805AB34 @ =gUnk_03000F50
adds r1, r3, #0
adds r1, #0x66
movs r2, #0
ldr r0, _0805AB38 @ =0x00003E48
strh r0, [r1]
adds r1, #2
ldr r0, _0805AB3C @ =0x00001008
strh r0, [r1]
ldr r0, _0805AB40 @ =0x00001E04
strh r0, [r3, #0x2c]
ldr r0, _0805AB44 @ =gUnk_02001A40
str r0, [r3, #0x34]
strh r2, [r3, #0x2e]
strh r2, [r3, #0x30]
movs r0, #1
strh r0, [r3, #0x32]
subs r1, #8
ldr r0, _0805AB48 @ =0x00003F3F
strh r0, [r1]
adds r1, #2
movs r0, #0x37
strh r0, [r1]
subs r1, #8
movs r0, #0xf0
strh r0, [r1]
adds r1, #4
movs r0, #0xa0
strh r0, [r1]
pop {pc}
.align 2, 0
_0805AB34: .4byte gUnk_03000F50
_0805AB38: .4byte 0x00003E48
_0805AB3C: .4byte 0x00001008
_0805AB40: .4byte 0x00001E04
_0805AB44: .4byte gUnk_02001A40
_0805AB48: .4byte 0x00003F3F
thumb_func_start sub_0805AB4C
sub_0805AB4C: @ 0x0805AB4C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
ldrb r0, [r6, #0xa]
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
bne _0805AB68
bl sub_0805E780
_0805AB68:
ldrb r0, [r6, #0xc]
movs r1, #0x20
adds r1, r1, r6
mov r8, r1
cmp r0, #0
bne _0805ABC8
adds r0, #1
strb r0, [r6, #0xc]
ldr r0, _0805ABF0 @ =gUnk_02033A90
ldrb r0, [r0, #8]
strb r0, [r1]
adds r0, r6, #0
movs r1, #6
bl sub_0805E3A0
ldr r2, _0805ABF4 @ =gUnk_02031EC0
ldrb r0, [r6, #0xb]
mov r3, r8
ldrb r1, [r3]
adds r0, r0, r1
lsls r0, r0, #4
adds r2, r0, r2
movs r5, #0
mov sl, r5
ldrb r0, [r4]
movs r7, #0x21
adds r7, r7, r6
mov ip, r7
cmp r0, #0xff
beq _0805ABBE
_0805ABA4:
adds r1, r2, #0
adds r0, r4, #0
ldm r0!, {r3, r5, r7}
stm r1!, {r3, r5, r7}
ldr r0, [r0]
str r0, [r1]
movs r0, #1
add sl, r0
adds r4, #0x10
adds r2, #0x10
ldrb r0, [r4]
cmp r0, #0xff
bne _0805ABA4
_0805ABBE:
movs r0, #0xff
strb r0, [r2]
mov r2, sl
mov r1, ip
strb r2, [r1]
_0805ABC8:
ldr r4, _0805ABF4 @ =gUnk_02031EC0
ldrb r2, [r6, #0xb]
mov r3, r8
ldrb r1, [r3]
adds r0, r2, r1
lsls r0, r0, #4
adds r4, r0, r4
ldr r0, _0805ABF8 @ =gUnk_02002A40
movs r5, #1
mov sl, r5
mov r7, sl
ldrb r0, [r0, #8]
lsls r7, r0
mov sl, r7
adds r0, r1, #7
asrs r0, r0, #3
ldr r1, _0805ABFC @ =gUnk_020342F8
adds r7, r0, r1
adds r5, r2, #0
b _0805ACAA
.align 2, 0
_0805ABF0: .4byte gUnk_02033A90
_0805ABF4: .4byte gUnk_02031EC0
_0805ABF8: .4byte gUnk_02002A40
_0805ABFC: .4byte gUnk_020342F8
_0805AC00:
ldrh r0, [r4, #4]
ldrh r1, [r4, #6]
movs r2, #0x18
movs r3, #0x20
bl sub_0800290E
cmp r0, #0
bne _0805AC1A
adds r0, r7, #0
adds r1, r5, #0
bl sub_0801D5D4
b _0805ACA6
_0805AC1A:
ldrh r0, [r4, #0xe]
mov r1, sl
ands r0, r1
cmp r0, #0
beq _0805ACA6
ldr r0, _0805AC5C @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x46
bhi _0805ACA6
adds r0, r7, #0
adds r1, r5, #0
bl sub_0801D5BC
cmp r0, #0
bne _0805ACA6
ldr r0, [r4, #8]
cmp r0, #0
beq _0805AC48
bl sub_0807DAA0
mov sb, r0
cmp r0, #0
beq _0805ACA6
_0805AC48:
ldrb r0, [r6, #0xe]
cmp r0, #0
bne _0805AC60
ldrb r0, [r4]
ldrb r1, [r4, #1]
ldrb r2, [r4, #2]
bl sub_0806ED50
b _0805AC6A
.align 2, 0
_0805AC5C: .4byte gUnk_03003DBC
_0805AC60:
ldrb r0, [r4]
ldrb r1, [r4, #1]
ldrb r2, [r4, #2]
bl CreateObject
_0805AC6A:
adds r3, r0, #0
mov r2, r8
ldrb r0, [r2]
adds r0, #1
adds r0, r5, r0
adds r1, r3, #0
adds r1, #0x45
strb r0, [r1]
ldrh r0, [r4, #0xc]
strb r0, [r3, #0xe]
ldr r1, _0805ACBC @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r2, [r4, #4]
adds r0, r0, r2
strh r0, [r3, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r4, #6]
adds r0, r0, r1
strh r0, [r3, #0x32]
ldrb r1, [r4, #3]
adds r0, r3, #0
adds r0, #0x38
strb r1, [r0]
ldr r2, [r4, #8]
cmp r2, #0
beq _0805ACA6
adds r0, r3, #0
mov r1, sb
bl sub_0807DAF0
_0805ACA6:
adds r4, #0x10
adds r5, #1
_0805ACAA:
ldrb r0, [r4]
cmp r0, #0xff
bne _0805AC00
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805ACBC: .4byte gUnk_03000BF0
thumb_func_start sub_0805ACC0
sub_0805ACC0: @ 0x0805ACC0
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r0, #0x45
ldrb r1, [r0]
cmp r1, #0
bne _0805ACF0
b _0805AD32
_0805ACD0:
ldrb r0, [r4, #0xb]
subs r0, r5, r0
lsls r0, r0, #4
adds r3, r3, r0
ldrh r0, [r3, #4]
ldr r2, _0805ACEC @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r0, r0, r1
lsls r0, r0, #0x10
ldrh r1, [r3, #6]
orrs r0, r1
ldrh r2, [r2, #8]
adds r0, r0, r2
b _0805AD34
.align 2, 0
_0805ACEC: .4byte gUnk_03000BF0
_0805ACF0:
movs r0, #0x7f
ands r0, r1
subs r5, r0, #1
ldr r6, _0805AD3C @ =gUnk_03003DA0
ldr r4, [r6, #4]
cmp r4, r6
beq _0805AD32
ldr r0, _0805AD40 @ =0x00001609
mov r8, r0
ldr r0, _0805AD44 @ =0x0000FFFF
adds r7, r0, #0
_0805AD06:
ldrh r0, [r4, #8]
ands r0, r7
cmp r0, r8
bne _0805AD2C
ldrb r1, [r4, #0xb]
cmp r1, r5
bgt _0805AD2C
adds r0, r4, #0
adds r0, #0x21
ldrb r0, [r0]
adds r0, r1, r0
cmp r0, r5
ble _0805AD2C
ldrb r0, [r4, #0xa]
bl sub_0804B128
adds r3, r0, #0
cmp r3, #0
bne _0805ACD0
_0805AD2C:
ldr r4, [r4, #4]
cmp r4, r6
bne _0805AD06
_0805AD32:
movs r0, #0
_0805AD34:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805AD3C: .4byte gUnk_03003DA0
_0805AD40: .4byte 0x00001609
_0805AD44: .4byte 0x0000FFFF
thumb_func_start sub_0805AD48
sub_0805AD48: @ 0x0805AD48
push {lr}
ldr r2, _0805AD5C @ =gUnk_08108654
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805AD5C: .4byte gUnk_08108654
thumb_func_start sub_0805AD60
sub_0805AD60: @ 0x0805AD60
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _0805AD76
bl sub_0805E780
_0805AD76:
adds r0, r4, #0
bl sub_0805AD80
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805AD80
sub_0805AD80: @ 0x0805AD80
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805ADD0
ldrb r1, [r4, #0xa]
ldrb r2, [r4, #0xb]
movs r0, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805ADCC
adds r0, r4, #0
adds r0, #0x35
ldrb r0, [r0]
strb r0, [r2, #0xe]
adds r0, r4, #0
adds r0, #0x36
ldrb r1, [r0]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r1, _0805ADD4 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r4, #0x3a]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldrh r1, [r4, #0x3c]
adds r0, r2, #0
adds r0, #0x86
strh r1, [r0]
_0805ADCC:
bl sub_0805E780
_0805ADD0:
pop {r4, pc}
.align 2, 0
_0805ADD4: .4byte gUnk_03000BF0
thumb_func_start sub_0805ADD8
sub_0805ADD8: @ 0x0805ADD8
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
bne _0805AE04
ldr r0, _0805ADF8 @ =gUnk_02033A90
ldr r1, _0805ADFC @ =0x0000088C
adds r0, r0, r1
ldr r0, [r0]
ldr r1, _0805AE00 @ =sub_0805AEDC
cmp r0, r1
beq _0805AEC4
movs r0, #0
bl _call_via_r1
b _0805AEC4
.align 2, 0
_0805ADF8: .4byte gUnk_02033A90
_0805ADFC: .4byte 0x0000088C
_0805AE00: .4byte sub_0805AEDC
_0805AE04:
ldrb r2, [r4, #0xc]
cmp r2, #0
bne _0805AE5E
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
strb r2, [r4, #0xe]
movs r0, #8
strb r0, [r4, #0xf]
ldr r0, _0805AE44 @ =gUnk_0810865C
ldrh r0, [r0]
strh r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldr r0, _0805AE48 @ =gUnk_02033A90
ldr r2, _0805AE4C @ =0x0000088C
adds r0, r0, r2
ldr r0, [r0]
cmp r0, #0
bne _0805AE58
ldr r1, _0805AE50 @ =sub_0805AEDC
ldr r2, _0805AE54 @ =sub_0805AF3C
adds r0, r4, #0
bl sub_08052D74
b _0805AEC4
.align 2, 0
_0805AE44: .4byte gUnk_0810865C
_0805AE48: .4byte gUnk_02033A90
_0805AE4C: .4byte 0x0000088C
_0805AE50: .4byte sub_0805AEDC
_0805AE54: .4byte sub_0805AF3C
_0805AE58:
bl sub_0805E780
b _0805AEC4
_0805AE5E:
ldr r2, _0805AEC8 @ =gUnk_0810865C
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r3, _0805AECC @ =gUnk_03000F50
cmp r0, #0
beq _0805AEA2
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0805AEA2
movs r0, #4
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0
beq _0805AEA2
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
strh r1, [r4, #0x20]
adds r0, r3, #0
adds r0, #0x68
strh r1, [r0]
_0805AEA2:
ldr r1, _0805AED0 @ =gUnk_03000BF0
ldr r0, [r1, #0x28]
ldr r2, _0805AED4 @ =0xFFFFE000
adds r0, r0, r2
str r0, [r1, #0x28]
ldr r0, [r1, #0x2c]
ldr r2, _0805AED8 @ =0xFFFFF000
adds r0, r0, r2
str r0, [r1, #0x2c]
ldrh r0, [r1, #0x2a]
ldrh r2, [r1, #0xa]
adds r0, r0, r2
strh r0, [r3, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r3, #0x30]
_0805AEC4:
pop {r4, pc}
.align 2, 0
_0805AEC8: .4byte gUnk_0810865C
_0805AECC: .4byte gUnk_03000F50
_0805AED0: .4byte gUnk_03000BF0
_0805AED4: .4byte 0xFFFFE000
_0805AED8: .4byte 0xFFFFF000
thumb_func_start sub_0805AEDC
sub_0805AEDC: @ 0x0805AEDC
push {r4, lr}
adds r3, r0, #0
ldr r2, _0805AF2C @ =gUnk_03000F50
ldr r0, _0805AF30 @ =0x00001E05
strh r0, [r2, #0x2c]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
adds r1, r2, #0
adds r1, #0x66
ldr r0, _0805AF34 @ =0x00003648
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #5
adds r1, r0, #0
cmp r3, #0
beq _0805AF06
ldrh r1, [r3, #0x20]
_0805AF06:
adds r0, r2, #0
adds r0, #0x68
strh r1, [r0]
ldr r1, _0805AF38 @ =gUnk_03000BF0
ldrh r0, [r1, #0x2a]
ldrh r4, [r1, #0xa]
adds r0, r0, r4
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
cmp r3, #0
beq _0805AF28
adds r0, r3, #0
bl sub_0805ADD8
_0805AF28:
pop {r4, pc}
.align 2, 0
_0805AF2C: .4byte gUnk_03000F50
_0805AF30: .4byte 0x00001E05
_0805AF34: .4byte 0x00003648
_0805AF38: .4byte gUnk_03000BF0
thumb_func_start sub_0805AF3C
sub_0805AF3C: @ 0x0805AF3C
ldrb r2, [r0, #0x10]
movs r1, #0xdf
ands r1, r2
movs r3, #0
strb r1, [r0, #0x10]
ldr r1, _0805AF58 @ =gUnk_03000F50
ldrh r2, [r1]
ldr r0, _0805AF5C @ =0x0000F7FF
ands r0, r2
strh r0, [r1]
adds r1, #0x66
strh r3, [r1]
bx lr
.align 2, 0
_0805AF58: .4byte gUnk_03000F50
_0805AF5C: .4byte 0x0000F7FF
thumb_func_start sub_0805AF60
sub_0805AF60: @ 0x0805AF60
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
bne _0805AF8C
ldr r0, _0805AF80 @ =gUnk_02033A90
ldr r1, _0805AF84 @ =0x0000088C
adds r0, r0, r1
ldr r0, [r0]
ldr r1, _0805AF88 @ =sub_0805AFFC
cmp r0, r1
beq _0805AFEE
movs r0, #0
bl _call_via_r1
b _0805AFEE
.align 2, 0
_0805AF80: .4byte gUnk_02033A90
_0805AF84: .4byte 0x0000088C
_0805AF88: .4byte sub_0805AFFC
_0805AF8C:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805AFD2
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
ldr r0, _0805AFC0 @ =gUnk_02033A90
ldr r2, _0805AFC4 @ =0x0000088C
adds r0, r0, r2
ldr r0, [r0]
cmp r0, #0
bne _0805AFCC
ldr r1, _0805AFC8 @ =sub_0805AFFC
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
b _0805AFEE
.align 2, 0
_0805AFC0: .4byte gUnk_02033A90
_0805AFC4: .4byte 0x0000088C
_0805AFC8: .4byte sub_0805AFFC
_0805AFCC:
bl sub_0805E780
b _0805AFEE
_0805AFD2:
ldr r1, _0805AFF0 @ =gUnk_03000BF0
ldr r0, [r1, #0x28]
ldr r3, _0805AFF4 @ =0xFFFFE000
adds r0, r0, r3
str r0, [r1, #0x28]
ldr r2, _0805AFF8 @ =gUnk_03000F50
ldrh r0, [r1, #0x2a]
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
_0805AFEE:
pop {r4, pc}
.align 2, 0
_0805AFF0: .4byte gUnk_03000BF0
_0805AFF4: .4byte 0xFFFFE000
_0805AFF8: .4byte gUnk_03000F50
thumb_func_start sub_0805AFFC
sub_0805AFFC: @ 0x0805AFFC
ldr r2, _0805B024 @ =gUnk_03000F50
ldr r0, _0805B028 @ =0x00001E03
strh r0, [r2, #0x2c]
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0805B02C @ =gUnk_03000BF0
ldrh r0, [r1, #0x2a]
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
bx lr
.align 2, 0
_0805B024: .4byte gUnk_03000F50
_0805B028: .4byte 0x00001E03
_0805B02C: .4byte gUnk_03000BF0
thumb_func_start sub_0805B030
sub_0805B030: @ 0x0805B030
push {lr}
ldr r2, _0805B044 @ =gUnk_08108668
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805B044: .4byte gUnk_08108668
thumb_func_start sub_0805B048
sub_0805B048: @ 0x0805B048
push {r4, r5, lr}
adds r4, r0, #0
movs r1, #6
bl sub_0805E3A0
adds r0, r4, #0
adds r0, #0x20
movs r1, #0x20
bl sub_0801D630
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805B08C @ =gUnk_03000BF0
ldrb r0, [r2, #5]
adds r1, r4, #0
adds r1, #0x3f
strb r0, [r1]
ldrb r1, [r4, #0xa]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0805B090 @ =gUnk_08108764
adds r5, r0, r1
ldrb r0, [r5, #0xa]
cmp r0, #0
bne _0805B094
ldrh r0, [r2, #6]
strh r0, [r4, #0x20]
ldrh r0, [r2, #8]
strh r0, [r4, #0x22]
ldrh r0, [r2, #0x1e]
strh r0, [r4, #0x24]
ldrh r0, [r2, #0x20]
b _0805B0B2
.align 2, 0
_0805B08C: .4byte gUnk_03000BF0
_0805B090: .4byte gUnk_08108764
_0805B094:
ldrb r0, [r5, #8]
lsls r0, r0, #4
ldrh r1, [r2, #6]
adds r0, r0, r1
strh r0, [r4, #0x20]
ldrb r0, [r5, #9]
lsls r0, r0, #4
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r4, #0x22]
ldrb r0, [r5, #0xa]
lsls r0, r0, #4
strh r0, [r4, #0x24]
ldrb r0, [r5, #0xb]
lsls r0, r0, #4
_0805B0B2:
strh r0, [r4, #0x26]
ldr r1, [r5, #0xc]
rsbs r0, r1, #0
orrs r0, r1
lsrs r0, r0, #0x1f
strb r0, [r4, #0xb]
cmp r0, #0
beq _0805B0FC
ldrb r0, [r4, #0x10]
movs r1, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
ldr r0, [r5, #0xc]
ldrh r0, [r0, #4]
strh r0, [r4, #0x34]
ldr r0, [r5, #0xc]
ldrh r0, [r0, #6]
strh r0, [r4, #0x36]
ldr r0, [r5, #0xc]
ldrh r0, [r0, #8]
strh r0, [r4, #0x30]
ldr r0, [r5, #0xc]
ldrh r0, [r0, #0xa]
strh r0, [r4, #0x32]
bl sub_0805BC4C
adds r0, r4, #0
bl sub_0805B2B0
adds r0, r4, #0
bl sub_0805B328
ldr r1, _0805B160 @ =sub_0805B328
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_0805B0FC:
ldr r0, [r5, #0x10]
cmp r0, #0
beq _0805B15E
ldrb r1, [r0]
ldrb r2, [r0, #1]
movs r0, #0x28
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805B128
ldr r1, [r5, #0x10]
ldr r2, _0805B164 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
ldrh r1, [r1, #4]
adds r0, r0, r1
strh r0, [r3, #0x2e]
ldr r1, [r5, #0x10]
ldrh r0, [r2, #8]
ldrh r1, [r1, #6]
adds r0, r0, r1
strh r0, [r3, #0x32]
_0805B128:
ldrb r0, [r4, #0xa]
cmp r0, #0xa
bne _0805B15E
movs r0, #0x4b
bl sub_0807CBD0
cmp r0, #0
bne _0805B15E
movs r0, #0x28
movs r1, #3
movs r2, #3
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805B15E
ldr r1, [r5, #0x10]
ldr r2, _0805B164 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
ldrh r1, [r1, #4]
adds r0, r0, r1
strh r0, [r3, #0x2e]
ldr r1, [r5, #0x10]
ldrh r0, [r2, #8]
ldrh r1, [r1, #6]
adds r0, r0, r1
strh r0, [r3, #0x32]
_0805B15E:
pop {r4, r5, pc}
.align 2, 0
_0805B160: .4byte sub_0805B328
_0805B164: .4byte gUnk_03000BF0
thumb_func_start sub_0805B168
sub_0805B168: @ 0x0805B168
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0805B1CC
adds r5, r0, #0
cmp r5, #0
beq _0805B182
adds r0, r4, #0
bl sub_0805B210
bl sub_0805E780
b _0805B1C0
_0805B182:
adds r0, r4, #0
bl sub_0805B2B0
ldr r1, _0805B194 @ =gUnk_03000BF0
ldrh r0, [r1]
cmp r0, #1
bne _0805B198
strb r0, [r4, #0xd]
b _0805B1C0
.align 2, 0
_0805B194: .4byte gUnk_03000BF0
_0805B198:
ldrb r0, [r4, #0xd]
cmp r0, #0
beq _0805B1C0
strb r5, [r4, #0xd]
adds r0, r4, #0
adds r0, #0x3f
ldrb r0, [r0]
ldrb r1, [r1, #5]
cmp r0, r1
beq _0805B1C0
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0805B1BC
ldr r2, _0805B1C4 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805B1C8 @ =0x0000F7FF
ands r0, r1
strh r0, [r2]
_0805B1BC:
bl sub_0805E780
_0805B1C0:
pop {r4, r5, pc}
.align 2, 0
_0805B1C4: .4byte gUnk_03000F50
_0805B1C8: .4byte 0x0000F7FF
thumb_func_start sub_0805B1CC
sub_0805B1CC: @ 0x0805B1CC
push {r4, r5, lr}
movs r5, #0
movs r1, #0x20
ldrsh r4, [r0, r1]
movs r2, #0x22
ldrsh r1, [r0, r2]
ldrh r2, [r0, #0x24]
ldrh r3, [r0, #0x26]
adds r0, r4, #0
bl sub_0806FBFC
cmp r0, #0
beq _0805B20C
ldr r2, _0805B1FC @ =gUnk_03003F80
ldr r1, [r2, #0x30]
movs r0, #5
ands r0, r1
cmp r0, #5
bne _0805B200
movs r0, #0x80
lsls r0, r0, #8
orrs r1, r0
str r1, [r2, #0x30]
b _0805B20C
.align 2, 0
_0805B1FC: .4byte gUnk_03003F80
_0805B200:
movs r0, #0x80
lsls r0, r0, #8
ands r1, r0
cmp r1, #0
beq _0805B20C
movs r5, #1
_0805B20C:
adds r0, r5, #0
pop {r4, r5, pc}
thumb_func_start sub_0805B210
sub_0805B210: @ 0x0805B210
push {r4, r5, lr}
ldr r2, _0805B248 @ =gUnk_030010A0
movs r1, #1
strb r1, [r2, #8]
strb r1, [r2, #9]
movs r1, #4
strb r1, [r2, #0xe]
ldrb r1, [r0, #0xa]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0805B24C @ =gUnk_08108764
adds r4, r0, r1
ldrb r0, [r4, #1]
strb r0, [r2, #0xc]
ldrb r0, [r4, #2]
strb r0, [r2, #0xd]
ldrb r0, [r4, #3]
strb r0, [r2, #0x14]
ldr r0, _0805B250 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
adds r5, r2, #0
cmp r0, #0
beq _0805B254
movs r0, #6
b _0805B256
.align 2, 0
_0805B248: .4byte gUnk_030010A0
_0805B24C: .4byte gUnk_08108764
_0805B250: .4byte gUnk_03003F80
_0805B254:
movs r0, #2
_0805B256:
strb r0, [r5, #0xf]
ldrb r0, [r4]
cmp r0, #1
beq _0805B278
cmp r0, #1
bgt _0805B268
cmp r0, #0
beq _0805B26E
b _0805B2AC
_0805B268:
cmp r0, #2
beq _0805B2A0
b _0805B2AC
_0805B26E:
ldrh r0, [r4, #4]
strh r0, [r5, #0x10]
ldrh r0, [r4, #6]
strh r0, [r5, #0x12]
b _0805B2AC
_0805B278:
ldr r2, _0805B298 @ =gLinkEntity
ldr r3, _0805B29C @ =gUnk_03000BF0
ldrh r0, [r2, #0x2e]
ldrh r1, [r3, #6]
subs r0, r0, r1
ldrh r1, [r4, #4]
adds r0, r0, r1
strh r0, [r5, #0x10]
ldrh r0, [r2, #0x32]
ldrh r1, [r3, #8]
subs r0, r0, r1
ldrh r4, [r4, #6]
adds r0, r0, r4
strh r0, [r5, #0x12]
b _0805B2AC
.align 2, 0
_0805B298: .4byte gLinkEntity
_0805B29C: .4byte gUnk_03000BF0
_0805B2A0:
ldrh r0, [r4, #4]
strh r0, [r5, #0x10]
ldrh r0, [r4, #6]
strh r0, [r5, #0x12]
movs r0, #6
strb r0, [r5, #0xf]
_0805B2AC:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0805B2B0
sub_0805B2B0: @ 0x0805B2B0
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xb]
cmp r0, #0
beq _0805B31E
ldrh r1, [r5, #0x30]
ldr r6, _0805B320 @ =gUnk_03000BF0
movs r2, #0xa
ldrsh r0, [r6, r2]
subs r1, r1, r0
cmp r1, #0
bge _0805B2CA
adds r1, #3
_0805B2CA:
asrs r4, r1, #2
ldrh r1, [r5, #0x32]
movs r7, #0xc
ldrsh r0, [r6, r7]
subs r1, r1, r0
cmp r1, #0
bge _0805B2DA
adds r1, #3
_0805B2DA:
asrs r3, r1, #2
movs r0, #0xc
rsbs r0, r0, #0
cmp r4, r0
bge _0805B2E6
adds r4, r0, #0
_0805B2E6:
cmp r4, #0xc
ble _0805B2EC
movs r4, #0xc
_0805B2EC:
cmp r3, r0
bge _0805B2F2
adds r3, r0, #0
_0805B2F2:
cmp r3, #0xc
ble _0805B2F8
movs r3, #0xc
_0805B2F8:
ldr r2, _0805B324 @ =gUnk_03000F50
ldrh r1, [r2]
movs r7, #0x80
lsls r7, r7, #4
adds r0, r7, #0
orrs r0, r1
strh r0, [r2]
ldrh r0, [r5, #0x34]
ldrh r1, [r6, #0xa]
adds r0, r0, r1
adds r0, r0, r4
strh r0, [r6, #0x2a]
strh r0, [r2, #0x2e]
ldrh r0, [r5, #0x36]
ldrh r7, [r6, #0xc]
adds r0, r0, r7
adds r0, r0, r3
strh r0, [r6, #0x2e]
strh r0, [r2, #0x30]
_0805B31E:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805B320: .4byte gUnk_03000BF0
_0805B324: .4byte gUnk_03000F50
thumb_func_start sub_0805B328
sub_0805B328: @ 0x0805B328
push {r4, lr}
adds r1, r0, #0
ldrb r0, [r1, #0xb]
cmp r0, #0
beq _0805B372
ldrb r1, [r1, #0xa]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #2
ldr r1, _0805B374 @ =gUnk_08108764
adds r0, r0, r1
ldr r0, [r0, #0xc]
ldr r0, [r0]
ldr r1, _0805B378 @ =gUnk_085A2E80
adds r0, r0, r1
ldr r1, _0805B37C @ =0x0600F000
movs r4, #0x80
lsls r4, r4, #4
adds r2, r4, #0
bl sub_08000E96
ldr r1, _0805B380 @ =gUnk_03000F50
ldr r0, _0805B384 @ =0x00001E07
strh r0, [r1, #0x2c]
ldrh r0, [r1]
orrs r4, r0
strh r4, [r1]
ldr r2, _0805B388 @ =gUnk_03000BF0
ldrh r0, [r2, #0x2a]
strh r0, [r1, #0x2e]
ldrh r0, [r2, #0x2e]
strh r0, [r1, #0x30]
adds r1, #0x66
ldrh r2, [r1]
ldr r0, _0805B38C @ =0x0000FFF7
ands r0, r2
strh r0, [r1]
_0805B372:
pop {r4, pc}
.align 2, 0
_0805B374: .4byte gUnk_08108764
_0805B378: .4byte gUnk_085A2E80
_0805B37C: .4byte 0x0600F000
_0805B380: .4byte gUnk_03000F50
_0805B384: .4byte 0x00001E07
_0805B388: .4byte gUnk_03000BF0
_0805B38C: .4byte 0x0000FFF7
thumb_func_start sub_0805B390
sub_0805B390: @ 0x0805B390
push {r4, lr}
adds r4, r0, #0
bl sub_0805E8D4
adds r1, r0, #0
cmp r1, #0
beq _0805B3B0
movs r0, #9
strb r0, [r1, #8]
movs r0, #0x1a
strb r0, [r1, #9]
strb r4, [r1, #0xa]
adds r0, r1, #0
movs r1, #6
bl sub_0805EA2C
_0805B3B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805B3B4
sub_0805B3B4: @ 0x0805B3B4
push {r4, r5, lr}
adds r4, r0, #0
bl sub_0805EABC
cmp r0, #0
beq _0805B3C4
bl sub_0805E780
_0805B3C4:
ldrb r0, [r4, #0xa]
lsls r0, r0, #2
ldr r1, _0805B438 @ =gUnk_08108C28
adds r5, r0, r1
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805B41E
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
ldrb r0, [r4, #0xa]
cmp r0, #0
beq _0805B3F6
ldr r1, _0805B43C @ =sub_0805B4B4
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
_0805B3F6:
ldr r0, _0805B440 @ =gUnk_03000BF0
ldrh r1, [r0, #0x20]
movs r0, #0x80
lsls r0, r0, #1
subs r1, r0, r1
cmp r1, #0
bge _0805B406
movs r1, #0
_0805B406:
movs r0, #2
ldrsb r0, [r5, r0]
adds r0, r1, r0
str r0, [r4, #0x20]
ldr r1, _0805B444 @ =gUnk_08108C54
ldrb r0, [r5, #1]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
_0805B41E:
ldr r0, _0805B440 @ =gUnk_03000BF0
ldrh r0, [r0]
cmp r0, #0
bne _0805B436
ldr r0, _0805B444 @ =gUnk_08108C54
ldrb r1, [r5, #1]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r4, #0
bl _call_via_r1
_0805B436:
pop {r4, r5, pc}
.align 2, 0
_0805B438: .4byte gUnk_08108C28
_0805B43C: .4byte sub_0805B4B4
_0805B440: .4byte gUnk_03000BF0
_0805B444: .4byte gUnk_08108C54
thumb_func_start sub_0805B448
sub_0805B448: @ 0x0805B448
push {r4, lr}
ldr r4, _0805B46C @ =gUnk_03000F50
ldr r3, _0805B470 @ =gUnk_03000BF0
movs r2, #0xa
ldrsh r1, [r3, r2]
ldrh r2, [r3, #6]
subs r1, r1, r2
asrs r1, r1, #2
strh r1, [r4, #0x2e]
movs r2, #0xc
ldrsh r1, [r3, r2]
ldrh r2, [r3, #8]
subs r1, r1, r2
asrs r1, r1, #1
ldr r0, [r0, #0x20]
adds r0, r0, r1
strh r0, [r4, #0x30]
pop {r4, pc}
.align 2, 0
_0805B46C: .4byte gUnk_03000F50
_0805B470: .4byte gUnk_03000BF0
thumb_func_start sub_0805B474
sub_0805B474: @ 0x0805B474
push {r4, r5, lr}
ldr r5, _0805B4A8 @ =gUnk_03000BF0
movs r0, #0xc
ldrsh r1, [r5, r0]
ldrh r4, [r5, #8]
subs r1, r1, r4
lsls r0, r1, #1
adds r0, r0, r1
lsls r0, r0, #5
ldrh r1, [r5, #0x20]
subs r1, #0xa0
bl __divsi3
ldr r2, _0805B4AC @ =gUnk_03000F50
adds r4, r4, r0
strh r4, [r2, #0x30]
ldrh r0, [r5, #0x1e]
ldr r1, _0805B4B0 @ =0xFFFFFF00
adds r0, r0, r1
lsrs r1, r0, #0x1f
adds r0, r0, r1
asrs r0, r0, #1
ldrh r1, [r5, #0xa]
subs r1, r1, r0
strh r1, [r2, #0x2e]
pop {r4, r5, pc}
.align 2, 0
_0805B4A8: .4byte gUnk_03000BF0
_0805B4AC: .4byte gUnk_03000F50
_0805B4B0: .4byte 0xFFFFFF00
thumb_func_start sub_0805B4B4
sub_0805B4B4: @ 0x0805B4B4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
bl sub_0805B4D0
ldrb r0, [r4, #0xa]
cmp r0, #2
bne _0805B4C8
bl sub_0806D0F8
_0805B4C8:
adds r0, r4, #0
bl sub_0805B3B4
pop {r4, pc}
thumb_func_start sub_0805B4D0
sub_0805B4D0: @ 0x0805B4D0
push {r4, r5, lr}
adds r5, r0, #0
ldr r0, _0805B528 @ =gUnk_08108C5C
adds r0, r5, r0
ldrb r0, [r0]
bl sub_0801D7EC
ldr r4, _0805B52C @ =gUnk_03000F50
ldr r0, _0805B530 @ =0x00001E07
strh r0, [r4, #0x2c]
ldrh r1, [r4]
movs r2, #0x80
lsls r2, r2, #4
adds r0, r2, #0
orrs r0, r1
strh r0, [r4]
ldr r2, _0805B534 @ =gUnk_03000BF0
movs r1, #0xa
ldrsh r0, [r2, r1]
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #2
strh r0, [r4, #0x2e]
movs r1, #0xc
ldrsh r0, [r2, r1]
ldrh r1, [r2, #8]
subs r0, r0, r1
asrs r3, r0, #1
ldrh r1, [r2, #0x20]
movs r0, #0x80
lsls r0, r0, #1
subs r2, r0, r1
cmp r2, #0
bge _0805B516
movs r2, #0
_0805B516:
ldr r0, _0805B538 @ =gUnk_08108C44
lsls r1, r5, #1
adds r1, r1, r0
adds r0, r3, r2
ldrh r1, [r1]
adds r0, r0, r1
strh r0, [r4, #0x30]
pop {r4, r5, pc}
.align 2, 0
_0805B528: .4byte gUnk_08108C5C
_0805B52C: .4byte gUnk_03000F50
_0805B530: .4byte 0x00001E07
_0805B534: .4byte gUnk_03000BF0
_0805B538: .4byte gUnk_08108C44
thumb_func_start sub_0805B53C
sub_0805B53C: @ 0x0805B53C
push {lr}
ldr r2, _0805B550 @ =gUnk_08108C64
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805B550: .4byte gUnk_08108C64
thumb_func_start sub_0805B554
sub_0805B554: @ 0x0805B554
movs r1, #1
strb r1, [r0, #0xc]
strb r1, [r0, #0xe]
bx lr
thumb_func_start sub_0805B55C
sub_0805B55C: @ 0x0805B55C
push {r4, r5, lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805B5B4
movs r0, #0xf
strb r0, [r1, #0xe]
movs r0, #0x19
movs r1, #0
bl CreateEnemy
adds r5, r0, #0
cmp r5, #0
beq _0805B5B4
bl sub_08000E50
ldr r4, _0805B5B8 @ =gUnk_03000BF0
ldr r2, _0805B5BC @ =gUnk_08108C6C
movs r1, #7
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r2
ldrh r0, [r1]
adds r0, #0x78
ldrh r1, [r4, #0xa]
adds r0, r0, r1
strh r0, [r5, #0x2e]
bl sub_08000E50
ldr r2, _0805B5C0 @ =gUnk_08108C7C
movs r1, #3
ands r1, r0
adds r1, r1, r2
movs r0, #0
ldrsb r0, [r1, r0]
adds r0, #0x50
ldrh r4, [r4, #0xc]
adds r0, r0, r4
strh r0, [r5, #0x32]
ldr r0, _0805B5C4 @ =0x0000FF38
strh r0, [r5, #0x36]
_0805B5B4:
pop {r4, r5, pc}
.align 2, 0
_0805B5B8: .4byte gUnk_03000BF0
_0805B5BC: .4byte gUnk_08108C6C
_0805B5C0: .4byte gUnk_08108C7C
_0805B5C4: .4byte 0x0000FF38
thumb_func_start sub_0805B5C8
sub_0805B5C8: @ 0x0805B5C8
push {lr}
ldr r2, _0805B5DC @ =gUnk_08108C80
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805B5DC: .4byte gUnk_08108C80
thumb_func_start sub_0805B5E0
sub_0805B5E0: @ 0x0805B5E0
push {r4, r5, lr}
movs r4, #0
movs r1, #1
strb r1, [r0, #0xc]
ldr r3, _0805B618 @ =gUnk_03000F50
ldrh r2, [r3]
movs r5, #0x80
lsls r5, r5, #4
adds r1, r5, #0
orrs r1, r2
strh r1, [r3]
ldr r2, _0805B61C @ =gUnk_08108C88
ldrb r1, [r0, #0xa]
lsls r1, r1, #1
adds r1, r1, r2
ldrh r1, [r1]
strh r1, [r3, #0x2c]
ldr r1, _0805B620 @ =gUnk_03000BF0
str r4, [r1, #0x2c]
str r4, [r1, #0x28]
ldrb r0, [r0, #0xa]
cmp r0, #0
beq _0805B612
cmp r0, #1
beq _0805B624
_0805B612:
strh r4, [r3, #0x30]
strh r4, [r3, #0x2e]
b _0805B634
.align 2, 0
_0805B618: .4byte gUnk_03000F50
_0805B61C: .4byte gUnk_08108C88
_0805B620: .4byte gUnk_03000BF0
_0805B624:
ldrh r0, [r1, #0x2a]
ldrh r2, [r1, #0xa]
adds r0, r0, r2
strh r0, [r3, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r3, #0x30]
_0805B634:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0805B638
sub_0805B638: @ 0x0805B638
push {lr}
ldrb r0, [r0, #0xa]
cmp r0, #1
bne _0805B65E
ldr r1, _0805B660 @ =gUnk_03000BF0
ldr r0, [r1, #0x28]
movs r2, #0x80
lsls r2, r2, #6
adds r0, r0, r2
str r0, [r1, #0x28]
ldr r2, _0805B664 @ =gUnk_03000F50
ldrh r0, [r1, #0x2a]
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
_0805B65E:
pop {pc}
.align 2, 0
_0805B660: .4byte gUnk_03000BF0
_0805B664: .4byte gUnk_03000F50
thumb_func_start sub_0805B668
sub_0805B668: @ 0x0805B668
push {lr}
ldr r2, _0805B67C @ =gUnk_08108C8C
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805B67C: .4byte gUnk_08108C8C
thumb_func_start sub_0805B680
sub_0805B680: @ 0x0805B680
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrh r1, [r4, #0x34]
lsrs r1, r1, #1
strh r1, [r4, #0x34]
ldrh r0, [r4, #0x38]
adds r0, r0, r1
strh r0, [r4, #0x38]
ldrh r1, [r4, #0x36]
lsrs r1, r1, #1
strh r1, [r4, #0x36]
ldrh r0, [r4, #0x3a]
adds r0, r0, r1
strh r0, [r4, #0x3a]
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0805B6B8
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805B6B8
adds r0, r4, #0
bl sub_0805E900
b _0805B6BE
_0805B6B8:
adds r0, r4, #0
bl sub_0805B6C0
_0805B6BE:
pop {r4, pc}
thumb_func_start sub_0805B6C0
sub_0805B6C0: @ 0x0805B6C0
push {r4, lr}
adds r4, r0, #0
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrh r2, [r4, #0x34]
ldrh r3, [r4, #0x36]
bl sub_0800293E
cmp r0, #0
beq _0805B6EC
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0805B6F2
adds r0, r4, #0
bl sub_0805E900
b _0805B6F2
_0805B6EC:
ldrh r0, [r4, #0x3e]
bl sub_0807CD48
_0805B6F2:
pop {r4, pc}
thumb_func_start sub_0805B6F4
sub_0805B6F4: @ 0x0805B6F4
push {lr}
ldr r2, _0805B708 @ =gUnk_08108C94
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805B708: .4byte gUnk_08108C94
thumb_func_start sub_0805B70C
sub_0805B70C: @ 0x0805B70C
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805B71E
movs r0, #1
strb r0, [r4, #0xb]
_0805B71E:
movs r0, #1
strb r0, [r4, #0xc]
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x38]
adds r0, r4, #0
bl sub_0805B778
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805B744
sub_0805B744: @ 0x0805B744
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
adds r1, r0, #0
cmp r1, #0
beq _0805B766
ldrb r0, [r4, #0xb]
cmp r0, #0
bne _0805B774
movs r0, #1
strb r0, [r4, #0xb]
adds r0, r4, #0
bl sub_0805B778
b _0805B774
_0805B766:
ldrb r0, [r4, #0xb]
cmp r0, #1
bne _0805B774
strb r1, [r4, #0xb]
adds r0, r4, #0
bl sub_0805B778
_0805B774:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805B778
sub_0805B778: @ 0x0805B778
push {lr}
ldr r2, _0805B79C @ =gUnk_08108C9C
ldrb r1, [r0, #0xa]
lsls r1, r1, #1
ldrb r3, [r0, #0xb]
adds r1, r1, r3
lsls r1, r1, #1
adds r1, r1, r2
ldrh r3, [r1]
movs r2, #0x38
ldrsh r1, [r0, r2]
adds r0, #0x36
ldrb r2, [r0]
adds r0, r3, #0
bl sub_0807B314
pop {pc}
.align 2, 0
_0805B79C: .4byte gUnk_08108C9C
thumb_func_start sub_0805B7A0
sub_0805B7A0: @ 0x0805B7A0
push {r4, r5, lr}
adds r5, r0, #0
ldrb r0, [r5, #0xe]
ldrb r1, [r5, #0xa]
ldrb r2, [r5, #0xb]
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0805B81A
ldrh r0, [r5, #0x3e]
adds r1, r4, #0
adds r1, #0x86
strh r0, [r1]
ldrh r0, [r5, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805B7EC
adds r0, r5, #0
adds r0, #0x36
ldrb r1, [r0]
adds r0, #1
ldrb r2, [r0]
movs r0, #0xf
ands r0, r2
lsls r0, r0, #8
orrs r1, r0
strh r1, [r4, #0x2e]
ldrh r1, [r5, #0x3c]
ldr r0, _0805B7E8 @ =0x00000FFF
ands r0, r1
strh r0, [r4, #0x32]
ldrh r0, [r5, #0x3c]
lsrs r0, r0, #0xc
b _0805B7FC
.align 2, 0
_0805B7E8: .4byte 0x00000FFF
_0805B7EC:
ldrh r0, [r5, #0x38]
strh r0, [r4, #0x2e]
ldrh r0, [r5, #0x3a]
strh r0, [r4, #0x32]
adds r0, r5, #0
adds r0, #0x37
ldrb r0, [r0]
lsrs r0, r0, #4
_0805B7FC:
adds r1, r4, #0
adds r1, #0x38
strb r0, [r1]
ldr r0, _0805B81C @ =gUnk_03000BF0
ldrh r1, [r0, #6]
ldrh r2, [r4, #0x2e]
adds r1, r1, r2
strh r1, [r4, #0x2e]
ldrh r0, [r0, #8]
ldrh r1, [r4, #0x32]
adds r0, r0, r1
strh r0, [r4, #0x32]
adds r0, r5, #0
bl sub_0805E900
_0805B81A:
pop {r4, r5, pc}
.align 2, 0
_0805B81C: .4byte gUnk_03000BF0
thumb_func_start sub_0805B820
sub_0805B820: @ 0x0805B820
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r1, [r5, #0xc]
cmp r1, #0
bne _0805B834
movs r0, #1
strb r0, [r5, #0xc]
str r1, [r5, #0x20]
_0805B834:
ldrb r0, [r5, #0xa]
bl sub_0804B128
adds r4, r0, #0
movs r7, #0
ldrh r0, [r4]
cmp r0, #0
beq _0805B8C4
ldr r0, _0805B8A8 @ =gUnk_03000BF0
mov r8, r0
_0805B848:
ldrh r0, [r4]
ldrh r1, [r4, #2]
movs r2, #4
movs r3, #4
bl sub_0800290E
cmp r0, #0
beq _0805B8AC
movs r6, #1
lsls r6, r7
ldr r0, [r5, #0x20]
ands r0, r6
cmp r0, #0
bne _0805B8B6
ldrh r0, [r4, #4]
bl sub_0805B8CC
cmp r0, #0
beq _0805B8B6
movs r0, #0x4e
movs r1, #1
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805B8B6
ldrh r0, [r4, #6]
strb r0, [r1, #0xe]
strb r7, [r1, #0xf]
ldrh r0, [r4]
mov r2, r8
ldrh r2, [r2, #6]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldrh r0, [r4, #2]
mov r3, r8
ldrh r3, [r3, #8]
adds r0, r0, r3
strh r0, [r1, #0x32]
str r5, [r1, #0x50]
adds r0, r1, #0
bl sub_08016A30
ldr r0, [r5, #0x20]
orrs r0, r6
b _0805B8B4
.align 2, 0
_0805B8A8: .4byte gUnk_03000BF0
_0805B8AC:
movs r1, #1
lsls r1, r7
ldr r0, [r5, #0x20]
bics r0, r1
_0805B8B4:
str r0, [r5, #0x20]
_0805B8B6:
adds r4, #8
adds r7, #1
ldrh r0, [r4]
cmp r0, #0
beq _0805B8C4
cmp r7, #0x1f
bls _0805B848
_0805B8C4:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0805B8CC
sub_0805B8CC: @ 0x0805B8CC
push {lr}
cmp r0, #4
bne _0805B8DA
movs r0, #0x18
bl GetProgressFlag
b _0805B8E8
_0805B8DA:
cmp r0, #4
bls _0805B8E6
cmp r0, #6
bhi _0805B8E6
movs r0, #0
b _0805B8E8
_0805B8E6:
movs r0, #1
_0805B8E8:
pop {pc}
.align 2, 0
thumb_func_start sub_0805B8EC
sub_0805B8EC: @ 0x0805B8EC
push {r4, r5, r6, lr}
adds r5, r0, #0
ldr r4, _0805B964 @ =gUnk_02033A90
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805B90A
bl sub_0801E104
ldr r2, _0805B968 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805B96C @ =0x0000D7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805B90A:
ldrb r2, [r5, #0xc]
cmp r2, #0
bne _0805B934
movs r0, #1
strb r0, [r5, #0xc]
ldrb r1, [r5, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r5, #0x10]
movs r0, #0x11
strb r0, [r5, #0xe]
str r2, [r5, #0x20]
adds r0, r5, #0
movs r1, #6
bl sub_0805E3A0
bl sub_0801E120
ldrb r0, [r5, #0xe]
bl sub_0801E154
_0805B934:
ldr r0, _0805B970 @ =gUnk_03001000
ldrb r0, [r0, #4]
cmp r0, #2
bne _0805B952
ldr r2, _0805B968 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
bl sub_0805BA78
bl sub_0805BAD4
_0805B952:
ldrb r0, [r4, #0xc]
cmp r0, #2
bne _0805B978
ldr r2, _0805B968 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805B974 @ =0x0000DFFF
ands r0, r1
strh r0, [r2]
b _0805BA6C
.align 2, 0
_0805B964: .4byte gUnk_02033A90
_0805B968: .4byte gUnk_03000F50
_0805B96C: .4byte 0x0000D7FF
_0805B970: .4byte gUnk_03001000
_0805B974: .4byte 0x0000DFFF
_0805B978:
ldr r3, _0805B9A8 @ =gLinkEntity
movs r4, #0x2e
ldrsh r0, [r3, r4]
ldr r2, _0805B9AC @ =gUnk_03000BF0
ldrh r1, [r2, #6]
subs r0, r0, r1
movs r6, #0x32
ldrsh r1, [r3, r6]
ldrh r2, [r2, #8]
subs r1, r1, r2
movs r2, #0
movs r3, #0
bl sub_0800290E
cmp r0, #0
beq _0805B9B4
ldr r2, _0805B9B0 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #6
adds r0, r3, #0
orrs r0, r1
b _0805B9BC
.align 2, 0
_0805B9A8: .4byte gLinkEntity
_0805B9AC: .4byte gUnk_03000BF0
_0805B9B0: .4byte gUnk_03000F50
_0805B9B4:
ldr r2, _0805B9E8 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805B9EC @ =0x0000DFFF
ands r0, r1
_0805B9BC:
strh r0, [r2]
ldrb r4, [r5, #0xe]
ldr r0, _0805B9F0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
lsls r1, r1, #0x10
ands r0, r1
cmp r0, #0
beq _0805BA2C
ldr r0, _0805B9F4 @ =gUnk_02033A90
ldrb r0, [r0, #0xc]
cmp r0, #0
beq _0805BA2C
cmp r4, #0x47
bhi _0805B9F8
adds r4, #4
adds r0, r4, #0
bl sub_0801E154
movs r0, #0
str r0, [r5, #0x20]
b _0805BA42
.align 2, 0
_0805B9E8: .4byte gUnk_03000F50
_0805B9EC: .4byte 0x0000DFFF
_0805B9F0: .4byte gUnk_03003F80
_0805B9F4: .4byte gUnk_02033A90
_0805B9F8:
ldr r0, _0805BA24 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0805BA42
ldrb r0, [r5, #0xf]
adds r0, #0x10
strb r0, [r5, #0xf]
ldr r1, _0805BA28 @ =gUnk_080C9160
ldrb r0, [r5, #0xf]
lsls r0, r0, #1
adds r0, r0, r1
movs r6, #0
ldrsh r0, [r0, r6]
asrs r0, r0, #7
str r0, [r5, #0x20]
adds r0, r4, r0
bl sub_0801E154
b _0805BA42
.align 2, 0
_0805BA24: .4byte gUnk_030010A0
_0805BA28: .4byte gUnk_080C9160
_0805BA2C:
movs r0, #0
str r0, [r5, #0x20]
cmp r4, #0x11
bls _0805BA42
subs r4, #4
cmp r4, #0x10
bhi _0805BA3C
movs r4, #0x11
_0805BA3C:
adds r0, r4, #0
bl sub_0801E154
_0805BA42:
strb r4, [r5, #0xe]
ldr r3, _0805BA70 @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r3, r1]
ldr r2, _0805BA74 @ =gUnk_03000BF0
movs r6, #0xa
ldrsh r1, [r2, r6]
subs r0, r0, r1
movs r6, #0x32
ldrsh r1, [r3, r6]
movs r6, #0xc
ldrsh r2, [r2, r6]
subs r1, r1, r2
movs r6, #0x36
ldrsh r2, [r3, r6]
subs r2, #9
adds r1, r1, r2
ldr r2, [r5, #0x20]
adds r2, r4, r2
bl sub_0801E160
_0805BA6C:
pop {r4, r5, r6, pc}
.align 2, 0
_0805BA70: .4byte gLinkEntity
_0805BA74: .4byte gUnk_03000BF0
thumb_func_start sub_0805BA78
sub_0805BA78: @ 0x0805BA78
push {r4, lr}
ldr r1, _0805BAA8 @ =gUnk_02033A90
movs r0, #0xa
ldrsh r3, [r1, r0]
ldr r0, _0805BAAC @ =gUnk_02034350
movs r4, #0xc
ldrsh r2, [r0, r4]
cmp r2, #0
bge _0805BA8C
movs r2, #0
_0805BA8C:
movs r0, #0x80
lsls r0, r0, #1
cmp r2, r0
ble _0805BA96
adds r2, r0, #0
_0805BA96:
cmp r3, r2
beq _0805BACE
subs r0, r2, r3
cmp r0, #0
blt _0805BAB0
cmp r0, #4
bls _0805BAB6
b _0805BABA
.align 2, 0
_0805BAA8: .4byte gUnk_02033A90
_0805BAAC: .4byte gUnk_02034350
_0805BAB0:
subs r0, r3, r2
cmp r0, #4
bhi _0805BABA
_0805BAB6:
adds r3, r2, #0
b _0805BAC8
_0805BABA:
cmp r2, r3
bge _0805BAC2
subs r3, #4
b _0805BAC8
_0805BAC2:
cmp r2, r3
ble _0805BAC8
adds r3, #4
_0805BAC8:
strh r3, [r1, #0xa]
movs r0, #1
b _0805BAD0
_0805BACE:
movs r0, #0
_0805BAD0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BAD4
sub_0805BAD4: @ 0x0805BAD4
push {lr}
ldr r3, _0805BAF4 @ =gUnk_02033A90
ldrb r0, [r3, #0xc]
cmp r0, #0
beq _0805BAF2
ldr r1, _0805BAF8 @ =gUnk_03000F50
ldr r2, _0805BAFC @ =gUnk_08108CA8
ldrh r0, [r3, #0xa]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
adds r1, #0x68
strh r0, [r1]
_0805BAF2:
pop {pc}
.align 2, 0
_0805BAF4: .4byte gUnk_02033A90
_0805BAF8: .4byte gUnk_03000F50
_0805BAFC: .4byte gUnk_08108CA8
thumb_func_start sub_0805BB00
sub_0805BB00: @ 0x0805BB00
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
ldr r0, _0805BB50 @ =gUnk_02033A90
ldrb r0, [r0, #0xc]
cmp r0, #0
bne _0805BB28
bl sub_0805E8D4
adds r1, r0, #0
cmp r1, #0
beq _0805BB28
movs r0, #9
strb r0, [r1, #8]
movs r0, #0x22
strb r0, [r1, #9]
adds r0, r1, #0
movs r1, #0
bl sub_0805EA2C
_0805BB28:
ldr r1, _0805BB54 @ =0x0600F000
movs r2, #0x80
lsls r2, r2, #4
movs r0, #0xf
bl sub_0801D5EC
ldr r0, _0805BB58 @ =gUnk_03000F50
ldr r1, _0805BB5C @ =0x00001E0C
strh r1, [r0, #0x2c]
adds r0, #0x66
ldr r1, _0805BB60 @ =0x00003E48
strh r1, [r0]
ldr r0, _0805BB64 @ =gUnk_02034350
strh r4, [r0, #0xc]
cmp r5, #0
beq _0805BB68
ldr r1, _0805BB50 @ =gUnk_02033A90
movs r0, #1
b _0805BB6C
.align 2, 0
_0805BB50: .4byte gUnk_02033A90
_0805BB54: .4byte 0x0600F000
_0805BB58: .4byte gUnk_03000F50
_0805BB5C: .4byte 0x00001E0C
_0805BB60: .4byte 0x00003E48
_0805BB64: .4byte gUnk_02034350
_0805BB68:
ldr r1, _0805BB70 @ =gUnk_02033A90
movs r0, #2
_0805BB6C:
strb r0, [r1, #0xc]
pop {r4, r5, pc}
.align 2, 0
_0805BB70: .4byte gUnk_02033A90
thumb_func_start sub_0805BB74
sub_0805BB74: @ 0x0805BB74
push {lr}
adds r1, r0, #0
ldr r2, _0805BBB0 @ =gUnk_02034350
cmp r1, #0
bge _0805BB82
movs r0, #0xc
ldrsh r1, [r2, r0]
_0805BB82:
ldr r0, _0805BBB4 @ =gUnk_02033A90
strh r1, [r0, #0xa]
strh r1, [r2, #0xc]
movs r0, #9
movs r1, #0x22
bl sub_0805EB9C
cmp r0, #0
beq _0805BBAE
bl sub_0805B8EC
ldr r0, _0805BBB8 @ =gUnk_03000F50
ldrh r1, [r0]
movs r3, #0x80
lsls r3, r3, #4
adds r2, r3, #0
orrs r1, r2
strh r1, [r0]
bl sub_0805BA78
bl sub_0805BAD4
_0805BBAE:
pop {pc}
.align 2, 0
_0805BBB0: .4byte gUnk_02034350
_0805BBB4: .4byte gUnk_02033A90
_0805BBB8: .4byte gUnk_03000F50
thumb_func_start sub_0805BBBC
sub_0805BBBC: @ 0x0805BBBC
push {r4, lr}
movs r4, #0
ldr r2, _0805BBF8 @ =gUnk_02033A90
ldrb r0, [r2, #0xc]
cmp r0, #0
beq _0805BBF2
ldr r0, _0805BBFC @ =gUnk_02034350
movs r3, #0xc
ldrsh r1, [r0, r3]
movs r3, #0xa
ldrsh r0, [r2, r3]
cmp r1, r0
bge _0805BBF2
ldr r2, _0805BC00 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
bl sub_0805BA78
adds r4, r0, #0
cmp r4, #0
beq _0805BBF2
bl sub_0805BAD4
_0805BBF2:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
_0805BBF8: .4byte gUnk_02033A90
_0805BBFC: .4byte gUnk_02034350
_0805BC00: .4byte gUnk_03000F50
thumb_func_start sub_0805BC04
sub_0805BC04: @ 0x0805BC04
push {r4, lr}
movs r4, #0
ldr r2, _0805BC40 @ =gUnk_02033A90
ldrb r0, [r2, #0xc]
cmp r0, #0
beq _0805BC3A
ldr r0, _0805BC44 @ =gUnk_02034350
movs r3, #0xc
ldrsh r1, [r0, r3]
movs r3, #0xa
ldrsh r0, [r2, r3]
cmp r1, r0
ble _0805BC3A
ldr r2, _0805BC48 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
bl sub_0805BA78
adds r4, r0, #0
cmp r4, #0
beq _0805BC3A
bl sub_0805BAD4
_0805BC3A:
adds r0, r4, #0
pop {r4, pc}
.align 2, 0
_0805BC40: .4byte gUnk_02033A90
_0805BC44: .4byte gUnk_02034350
_0805BC48: .4byte gUnk_03000F50
thumb_func_start sub_0805BC4C
sub_0805BC4C: @ 0x0805BC4C
push {lr}
ldr r1, _0805BC68 @ =gUnk_02033A90
ldrb r0, [r1, #0xc]
cmp r0, #0
beq _0805BC64
movs r0, #0
strb r0, [r1, #0xc]
ldr r2, _0805BC6C @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805BC70 @ =0x0000D7FF
ands r0, r1
strh r0, [r2]
_0805BC64:
pop {pc}
.align 2, 0
_0805BC68: .4byte gUnk_02033A90
_0805BC6C: .4byte gUnk_03000F50
_0805BC70: .4byte 0x0000D7FF
thumb_func_start sub_0805BC74
sub_0805BC74: @ 0x0805BC74
push {lr}
ldr r2, _0805BC88 @ =gUnk_08108CCC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805BC88: .4byte gUnk_08108CCC
thumb_func_start sub_0805BC8C
sub_0805BC8C: @ 0x0805BC8C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805BCAE
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805BCAE
adds r0, r4, #0
bl sub_0805BE94
_0805BCAE:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805BCD0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BCD0
adds r0, r4, #0
bl sub_0805BEC4
adds r0, r4, #0
bl sub_0805BE94
_0805BCD0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BCD4
sub_0805BCD4: @ 0x0805BCD4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0805BD0E
cmp r0, #1
bgt _0805BCE8
cmp r0, #0
beq _0805BCEE
b _0805BD5A
_0805BCE8:
cmp r0, #2
beq _0805BD38
b _0805BD5A
_0805BCEE:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805BD5A
adds r0, r4, #0
movs r1, #0x75
bl sub_0805BE70
movs r0, #2
strb r0, [r4, #0xc]
b _0805BD5A
_0805BD0E:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805BD5A
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BD5A
movs r0, #0x1e
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0805BEC4
adds r0, r4, #0
movs r1, #0x76
bl sub_0805BE70
b _0805BD5A
_0805BD38:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
bne _0805BD5A
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BD5A
movs r0, #0x1e
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #0x75
bl sub_0805BE70
_0805BD5A:
pop {r4, pc}
thumb_func_start sub_0805BD5C
sub_0805BD5C: @ 0x0805BD5C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805BD94
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805BD76
adds r0, r4, #0
bl sub_0805BE94
_0805BD76:
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x20]
movs r0, #1
strb r0, [r4, #0xc]
b _0805BDB0
_0805BD94:
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl sub_080002B0
cmp r0, #0x76
bne _0805BDB0
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
ldrb r0, [r4, #0xe]
bl sub_0805308C
bl sub_0805E780
_0805BDB0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BDB4
sub_0805BDB4: @ 0x0805BDB4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _0805BDF4
cmp r0, #1
beq _0805BE2C
ldrh r0, [r4, #0x22]
subs r0, #1
strh r0, [r4, #0x22]
lsls r0, r0, #0x10
cmp r0, #0
bne _0805BE58
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
ldrh r0, [r4, #0x3e]
bl sub_0807CD48
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl sub_0807BA8C
ldrb r0, [r4, #0xe]
rsbs r0, r0, #0
bl sub_0805308C
b _0805BE26
_0805BDF4:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
bne _0805BE08
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _0805BE0E
_0805BE08:
adds r0, r4, #0
bl sub_0805BE94
_0805BE0E:
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x20]
_0805BE26:
movs r0, #1
strb r0, [r4, #0xc]
b _0805BE6C
_0805BE2C:
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl sub_080002B0
cmp r0, #0x76
bne _0805BE6C
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
ldrb r0, [r4, #0xe]
bl sub_0805308C
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x36
ldrb r1, [r0]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
strh r0, [r4, #0x22]
b _0805BE6C
_0805BE58:
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _0805BE6C
adds r0, r4, #0
bl sub_0805BEC4
bl sub_0805E780
_0805BE6C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BE70
sub_0805BE70: @ 0x0805BE70
push {r4, lr}
adds r4, r1, #0
ldrh r1, [r0, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r2, [r0, #0x3a]
lsls r2, r2, #0x10
asrs r2, r2, #0x14
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r0, #0xb]
adds r0, r4, #0
bl sub_0807B314
pop {r4, pc}
thumb_func_start sub_0805BE94
sub_0805BE94: @ 0x0805BE94
push {r4, lr}
adds r4, r0, #0
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
ldrb r2, [r4, #0xb]
movs r0, #0x76
bl sub_0807B314
ldrb r0, [r4, #0xe]
bl sub_0805308C
bl sub_0805E780
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BEC4
sub_0805BEC4: @ 0x0805BEC4
push {r4, lr}
adds r4, r0, #0
movs r0, #0x2a
movs r1, #1
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805BF10
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x11]
ldr r1, _0805BF14 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r4, #0x3a]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldrb r1, [r4, #0xb]
adds r0, r2, #0
adds r0, #0x38
strb r1, [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]
_0805BF10:
pop {r4, pc}
.align 2, 0
_0805BF14: .4byte gUnk_03000BF0
thumb_func_start sub_0805BF18
sub_0805BF18: @ 0x0805BF18
push {lr}
ldr r2, _0805BF2C @ =gUnk_08108CDC
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805BF2C: .4byte gUnk_08108CDC
thumb_func_start sub_0805BF30
sub_0805BF30: @ 0x0805BF30
push {r4, lr}
adds r4, r0, #0
movs r0, #1
strb r0, [r4, #0xc]
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x3c]
ldrh r0, [r4, #0x3c]
adds r1, r4, #0
adds r1, #0x35
ldrb r1, [r1]
bl sub_0805BFC4
strb r0, [r4, #0xa]
ldrh r0, [r4, #0x3e]
bl sub_0807CBD0
cmp r0, #0
beq _0805BF74
adds r0, r4, #0
bl sub_0805C02C
adds r0, r4, #0
bl sub_0805E900
_0805BF74:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BF78
sub_0805BF78: @ 0x0805BF78
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3c]
adds r1, r4, #0
adds r1, #0x35
ldrb r1, [r1]
bl sub_080002C8
cmp r0, #0x2e
beq _0805BFA0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
adds r0, r4, #0
bl sub_0805C02C
ldrh r0, [r4, #0x3e]
bl sub_0807CCB4
_0805BFA0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BFA4
sub_0805BFA4: @ 0x0805BFA4
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 _0805BFC0
movs r0, #0x72
bl sub_080A3268
adds r0, r4, #0
bl sub_0805E900
_0805BFC0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BFC4
sub_0805BFC4: @ 0x0805BFC4
push {lr}
bl sub_080002B0
adds r1, r0, #0
cmp r1, #0xec
beq _0805C018
cmp r1, #0xec
bhi _0805BFEC
cmp r1, #0xbf
beq _0805C024
cmp r1, #0xbf
bhi _0805BFE2
cmp r1, #0xaf
beq _0805C014
b _0805C028
_0805BFE2:
cmp r1, #0xcc
beq _0805C01C
cmp r1, #0xdf
beq _0805C020
b _0805C028
_0805BFEC:
movs r0, #0x84
lsls r0, r0, #1
cmp r1, r0
beq _0805C01C
cmp r1, r0
bhi _0805C004
cmp r1, #0xff
beq _0805C014
subs r0, #3
cmp r1, r0
beq _0805C024
b _0805C028
_0805C004:
movs r0, #0x88
lsls r0, r0, #1
cmp r1, r0
beq _0805C020
adds r0, #5
cmp r1, r0
beq _0805C018
b _0805C028
_0805C014:
movs r0, #0
b _0805C02A
_0805C018:
movs r0, #1
b _0805C02A
_0805C01C:
movs r0, #2
b _0805C02A
_0805C020:
movs r0, #3
b _0805C02A
_0805C024:
movs r0, #4
b _0805C02A
_0805C028:
movs r0, #0xff
_0805C02A:
pop {pc}
thumb_func_start sub_0805C02C
sub_0805C02C: @ 0x0805C02C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
cmp r0, #0xff
beq _0805C04A
ldr r0, _0805C04C @ =gUnk_08108CE8
ldrb r2, [r1, #0xa]
lsls r2, r2, #2
adds r2, r2, r0
ldrh r0, [r1, #0x3c]
adds r1, #0x35
ldrb r1, [r1]
ldr r2, [r2]
bl _call_via_r2
_0805C04A:
pop {pc}
.align 2, 0
_0805C04C: .4byte gUnk_08108CE8
thumb_func_start sub_0805C050
sub_0805C050: @ 0x0805C050
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xb1
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xb2
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xb3
adds r2, r4, #0
bl sub_0807B314
subs r1, r5, #1
movs r0, #0xb4
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #1
movs r0, #0xb7
adds r2, r4, #0
bl sub_0807B314
cmp r4, #1
bne _0805C11C
bl sub_08052670
cmp r0, #0
beq _0805C0D8
movs r0, #0x4f
movs r1, #0xe
movs r2, #0
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C0E0
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C0D0 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
ldr r1, _0805C0D4 @ =0x0000FFF8
adds r0, r0, r1
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
b _0805C0E0
.align 2, 0
_0805C0D0: .4byte gUnk_03000BF0
_0805C0D4: .4byte 0x0000FFF8
_0805C0D8:
bl sub_08052660
cmp r0, #0
beq _0805C0EC
_0805C0E0:
movs r0, #0xb5
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0805C0F6
_0805C0EC:
movs r0, #0xb6
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0805C0F6:
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xb8
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xb9
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xba
movs r2, #2
bl sub_0807B314
b _0805C16E
_0805C11C:
movs r0, #0xb5
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
bl sub_08052660
cmp r0, #0
beq _0805C16E
bl sub_0805C608
adds r1, r0, #0
movs r0, #0x4f
movs r2, #6
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C16E
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C170 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
ldr r1, _0805C174 @ =0x0000FFF0
adds r0, r0, r1
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
adds r1, r3, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
_0805C16E:
pop {r4, r5, pc}
.align 2, 0
_0805C170: .4byte gUnk_03000BF0
_0805C174: .4byte 0x0000FFF0
thumb_func_start sub_0805C178
sub_0805C178: @ 0x0805C178
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xf1
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xf5
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #1
movs r0, #0xf6
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x40
movs r0, #0xf4
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x41
movs r0, #0xf7
adds r2, r4, #0
bl sub_0807B314
cmp r4, #1
bne _0805C23E
bl sub_08052670
cmp r0, #0
beq _0805C1FC
movs r0, #0x4f
movs r1, #0xe
movs r2, #1
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C204
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
ldr r1, _0805C1F8 @ =gUnk_03000BF0
adds r0, #0x18
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r1, #8]
adds r1, r1, r0
strh r1, [r2, #0x32]
b _0805C204
.align 2, 0
_0805C1F8: .4byte gUnk_03000BF0
_0805C1FC:
bl sub_08052660
cmp r0, #0
beq _0805C210
_0805C204:
movs r0, #0xf2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0805C21A
_0805C210:
movs r0, #0xf3
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0805C21A:
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xf8
movs r2, #2
bl sub_0807B314
adds r1, r5, #1
movs r0, #0xf9
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x41
movs r0, #0xfa
movs r2, #2
bl sub_0807B314
b _0805C28E
_0805C23E:
movs r0, #0xf2
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
bl sub_08052660
cmp r0, #0
beq _0805C28E
bl sub_0805C608
adds r1, r0, #0
movs r0, #0x4f
movs r2, #7
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C28E
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
ldr r1, _0805C290 @ =gUnk_03000BF0
adds r0, #0x20
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r1, #8]
adds r1, r1, r0
strh r1, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
_0805C28E:
pop {r4, r5, pc}
.align 2, 0
_0805C290: .4byte gUnk_03000BF0
thumb_func_start sub_0805C294
sub_0805C294: @ 0x0805C294
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
subs r1, r5, #1
movs r0, #0xd1
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #1
movs r0, #0xd4
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0xd5
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x40
movs r0, #0xd6
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x41
movs r0, #0xd7
adds r2, r4, #0
bl sub_0807B314
cmp r4, #1
bne _0805C35C
bl sub_08052670
cmp r0, #0
beq _0805C318
movs r0, #0x4f
movs r1, #0xe
movs r2, #2
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C320
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C314 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #0x20
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
b _0805C320
.align 2, 0
_0805C314: .4byte gUnk_03000BF0
_0805C318:
bl sub_08052660
cmp r0, #0
beq _0805C32C
_0805C320:
movs r0, #0xd2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0805C336
_0805C32C:
movs r0, #0xd3
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0805C336:
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0xd8
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x40
movs r0, #0xd9
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x41
movs r0, #0xda
movs r2, #2
bl sub_0807B314
b _0805C3AC
_0805C35C:
movs r0, #0xd2
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
bl sub_08052660
cmp r0, #0
beq _0805C3AC
bl sub_0805C608
adds r1, r0, #0
movs r0, #0x4f
movs r2, #8
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C3AC
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C3B0 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #0x20
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
adds r1, r3, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
_0805C3AC:
pop {r4, r5, pc}
.align 2, 0
_0805C3B0: .4byte gUnk_03000BF0
thumb_func_start sub_0805C3B4
sub_0805C3B4: @ 0x0805C3B4
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xe1
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xe4
adds r2, r4, #0
bl sub_0807B314
subs r1, r5, #1
movs r0, #0xe2
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0xe3
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x40
movs r0, #0xe7
adds r2, r4, #0
bl sub_0807B314
cmp r4, #1
bne _0805C482
bl sub_08052670
cmp r0, #0
beq _0805C440
movs r0, #0x4f
movs r1, #0xe
movs r2, #3
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C448
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
ldr r1, _0805C438 @ =gUnk_03000BF0
ldr r3, _0805C43C @ =0x0000FFF0
adds r0, r0, r3
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r1, #8]
adds r1, r1, r0
strh r1, [r2, #0x32]
b _0805C448
.align 2, 0
_0805C438: .4byte gUnk_03000BF0
_0805C43C: .4byte 0x0000FFF0
_0805C440:
bl sub_08052660
cmp r0, #0
beq _0805C454
_0805C448:
movs r0, #0xe5
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0805C45E
_0805C454:
movs r0, #0xe6
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0805C45E:
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xe8
movs r2, #2
bl sub_0807B314
subs r1, r5, #1
movs r0, #0xe9
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0xea
movs r2, #2
bl sub_0807B314
b _0805C4D4
_0805C482:
movs r0, #0xe5
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
bl sub_08052660
cmp r0, #0
beq _0805C4D4
bl sub_0805C608
adds r1, r0, #0
movs r0, #0x4f
movs r2, #9
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805C4D4
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
ldr r1, _0805C4D8 @ =gUnk_03000BF0
ldr r3, _0805C4DC @ =0x0000FFF0
adds r0, r0, r3
ldrh r3, [r1, #6]
adds r0, r0, r3
strh r0, [r2, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
adds r0, #8
ldrh r1, [r1, #8]
adds r1, r1, r0
strh r1, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
_0805C4D4:
pop {r4, r5, pc}
.align 2, 0
_0805C4D8: .4byte gUnk_03000BF0
_0805C4DC: .4byte 0x0000FFF0
thumb_func_start sub_0805C4E0
sub_0805C4E0: @ 0x0805C4E0
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xc1
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xc2
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xc3
adds r2, r4, #0
bl sub_0807B314
subs r1, r5, #1
movs r0, #0xc4
adds r2, r4, #0
bl sub_0807B314
adds r1, r5, #1
movs r0, #0xc7
adds r2, r4, #0
bl sub_0807B314
cmp r4, #1
bne _0805C5AC
bl sub_08052670
cmp r0, #0
beq _0805C568
movs r0, #0x4f
movs r1, #0xe
movs r2, #0
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C570
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C560 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
ldr r1, _0805C564 @ =0x0000FFF0
adds r0, r0, r1
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
b _0805C570
.align 2, 0
_0805C560: .4byte gUnk_03000BF0
_0805C564: .4byte 0x0000FFF0
_0805C568:
bl sub_08052660
cmp r0, #0
beq _0805C57C
_0805C570:
movs r0, #0xc5
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
b _0805C586
_0805C57C:
movs r0, #0xc6
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
_0805C586:
adds r1, r5, #0
subs r1, #0x41
movs r0, #0xc8
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x40
movs r0, #0xc9
movs r2, #2
bl sub_0807B314
adds r1, r5, #0
subs r1, #0x3f
movs r0, #0xca
movs r2, #2
bl sub_0807B314
b _0805C5FE
_0805C5AC:
movs r0, #0xc5
adds r1, r5, #0
movs r2, #2
bl sub_0807B314
bl sub_08052660
cmp r0, #0
beq _0805C5FE
bl sub_0805C608
adds r1, r0, #0
movs r0, #0x4f
movs r2, #6
bl CreateObject
adds r3, r0, #0
cmp r3, #0
beq _0805C5FE
movs r1, #0x3f
adds r0, r5, #0
ands r0, r1
lsls r0, r0, #4
adds r0, #8
ldr r2, _0805C600 @ =gUnk_03000BF0
ldrh r1, [r2, #6]
adds r1, r1, r0
strh r1, [r3, #0x2e]
movs r0, #0xfc
lsls r0, r0, #4
ands r0, r5
lsrs r0, r0, #2
ldr r1, _0805C604 @ =0x0000FFF0
adds r0, r0, r1
ldrh r2, [r2, #8]
adds r0, r0, r2
strh r0, [r3, #0x32]
adds r1, r3, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
_0805C5FE:
pop {r4, r5, pc}
.align 2, 0
_0805C600: .4byte gUnk_03000BF0
_0805C604: .4byte 0x0000FFF0
thumb_func_start sub_0805C608
sub_0805C608: @ 0x0805C608
ldr r1, _0805C614 @ =gUnk_08108CFC
ldr r0, _0805C618 @ =gUnk_02033A90
ldrb r0, [r0, #3]
adds r0, r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_0805C614: .4byte gUnk_08108CFC
_0805C618: .4byte gUnk_02033A90
thumb_func_start sub_0805C61C
sub_0805C61C: @ 0x0805C61C
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805C674
movs r0, #0x38
ldrsh r1, [r4, r0]
ldr r2, _0805C668 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
movs r3, #0x3f
ands r1, r3
movs r5, #0x3a
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
strh r1, [r4, #0x38]
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r1, #2
bl sub_080002B0
cmp r0, #0x75
bne _0805C670
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _0805C66C @ =0x0000406A
movs r2, #0x38
ldrsh r1, [r4, r2]
movs r2, #1
bl sub_0800015E
b _0805C674
.align 2, 0
_0805C668: .4byte gUnk_03000BF0
_0805C66C: .4byte 0x0000406A
_0805C670:
bl sub_0805E780
_0805C674:
movs r5, #0x38
ldrsh r0, [r4, r5]
movs r1, #1
bl sub_080002B0
ldr r5, _0805C6B4 @ =0x0000406B
cmp r0, r5
bne _0805C694
movs r0, #0x38
ldrsh r1, [r4, r0]
movs r0, #0x76
movs r2, #2
bl sub_0807B7D8
bl sub_0805E780
_0805C694:
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r1, #2
bl sub_080002B0
cmp r0, #0x76
bne _0805C6B2
movs r2, #0x38
ldrsh r1, [r4, r2]
adds r0, r5, #0
movs r2, #1
bl sub_0800015E
bl sub_0805E780
_0805C6B2:
pop {r4, r5, pc}
.align 2, 0
_0805C6B4: .4byte 0x0000406B
thumb_func_start sub_0805C6B8
sub_0805C6B8: @ 0x0805C6B8
push {lr}
ldr r2, _0805C6CC @ =gUnk_08108D04
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805C6CC: .4byte gUnk_08108D04
thumb_func_start sub_0805C6D0
sub_0805C6D0: @ 0x0805C6D0
push {r4, r5, r6, r7, lr}
sub sp, #4
adds r5, r0, #0
ldrb r0, [r5, #0xa]
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
bne _0805C6EA
adds r0, r5, #0
bl sub_0805E900
b _0805C79A
_0805C6EA:
ldr r3, _0805C784 @ =gUnk_03000BF0
ldrh r0, [r3, #8]
ldrb r1, [r5, #0xe]
adds r0, r0, r1
movs r1, #0
strh r0, [r5, #0x2a]
strb r1, [r5, #0xe]
adds r0, r5, #0
adds r0, #0x28
strb r1, [r0]
adds r2, r5, #0
adds r2, #0x29
strb r1, [r2]
ldrb r0, [r4]
cmp r0, #0xff
beq _0805C778
ldrb r0, [r5, #0xe]
cmp r0, #0x1f
bhi _0805C778
adds r7, r3, #0
movs r3, #1
adds r6, r2, #0
_0805C716:
ldrb r1, [r4, #1]
ldrb r2, [r4, #2]
movs r0, #0x4c
str r3, [sp]
bl CreateObject
adds r2, r0, #0
ldr r3, [sp]
cmp r2, #0
beq _0805C762
ldrb r0, [r4, #3]
strb r0, [r2, #0xe]
ldrh r0, [r4, #4]
ldrh r1, [r7, #6]
adds r0, r0, r1
strh r0, [r2, #0x2e]
ldrh r0, [r4, #6]
ldrh r1, [r7, #8]
adds r0, r0, r1
strh r0, [r2, #0x32]
str r5, [r2, #0x50]
adds r0, r2, #0
adds r0, #0x38
strb r3, [r0]
ldrb r0, [r5, #0xe]
adds r1, r2, #0
adds r1, #0x83
strb r0, [r1]
ldrb r1, [r4]
adds r0, r2, #0
adds r0, #0x82
strb r1, [r0]
adds r0, r3, #0
ldrb r1, [r5, #0xe]
lsls r0, r1
ldrb r1, [r6]
orrs r0, r1
strb r0, [r6]
_0805C762:
adds r4, #8
ldrb r0, [r5, #0xe]
adds r1, r0, #1
strb r1, [r5, #0xe]
ldrb r0, [r4]
cmp r0, #0xff
beq _0805C778
lsls r0, r1, #0x18
lsrs r0, r0, #0x18
cmp r0, #0x1f
bls _0805C716
_0805C778:
ldrb r0, [r5, #0xb]
cmp r0, #0xff
bne _0805C788
movs r0, #2
b _0805C798
.align 2, 0
_0805C784: .4byte gUnk_03000BF0
_0805C788:
ldrb r0, [r5, #0xb]
bl sub_0807CBD0
cmp r0, #0
beq _0805C796
movs r0, #2
b _0805C798
_0805C796:
movs r0, #1
_0805C798:
strb r0, [r5, #0xc]
_0805C79A:
add sp, #4
pop {r4, r5, r6, r7, pc}
.align 2, 0
thumb_func_start sub_0805C7A0
sub_0805C7A0: @ 0x0805C7A0
push {r4, lr}
adds r4, r0, #0
adds r0, #0x28
adds r1, r4, #0
adds r1, #0x29
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _0805C7BC
movs r0, #2
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xb]
bl sub_0807CCB4
_0805C7BC:
adds r0, r4, #0
bl sub_0805C7CC
pop {r4, pc}
thumb_func_start sub_0805C7C4
sub_0805C7C4: @ 0x0805C7C4
push {lr}
bl sub_0805C7CC
pop {pc}
thumb_func_start sub_0805C7CC
sub_0805C7CC: @ 0x0805C7CC
push {lr}
adds r2, r0, #0
ldr r0, _0805C7F0 @ =gUnk_03003F80
ldr r0, [r0, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
beq _0805C7FC
ldr r0, _0805C7F4 @ =gLinkEntity
movs r3, #0x32
ldrsh r1, [r0, r3]
ldrh r0, [r2, #0x2a]
adds r0, #0x10
cmp r1, r0
bge _0805C7F8
movs r0, #1
b _0805C816
.align 2, 0
_0805C7F0: .4byte gUnk_03003F80
_0805C7F4: .4byte gLinkEntity
_0805C7F8:
movs r0, #0
b _0805C816
_0805C7FC:
ldr r0, _0805C810 @ =gLinkEntity
movs r3, #0x32
ldrsh r1, [r0, r3]
ldrh r0, [r2, #0x2a]
adds r0, #0x28
cmp r1, r0
bge _0805C814
movs r0, #3
b _0805C816
.align 2, 0
_0805C810: .4byte gLinkEntity
_0805C814:
movs r0, #2
_0805C816:
strb r0, [r2, #0xd]
pop {pc}
.align 2, 0
thumb_func_start sub_0805C81C
sub_0805C81C: @ 0x0805C81C
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805C854 @ =gUnk_08108D10
ldrb r0, [r4, #0xc]
lsls r0, r0, #2
adds r0, r0, r1
ldr r1, [r0]
adds r0, r4, #0
bl _call_via_r1
movs r0, #0xc0
lsls r0, r0, #2
ldrb r1, [r4, #0xa]
adds r1, #0x67
bl GetProgressFlagWithOffset
cmp r0, #0
beq _0805C85C
ldr r0, _0805C858 @ =gUnk_030010A0
adds r0, #0xac
movs r1, #1
ldrb r4, [r4, #0xa]
lsls r1, r4
ldrh r2, [r0]
orrs r1, r2
strh r1, [r0]
b _0805C86C
.align 2, 0
_0805C854: .4byte gUnk_08108D10
_0805C858: .4byte gUnk_030010A0
_0805C85C:
ldr r2, _0805C870 @ =gUnk_030010A0
adds r2, #0xac
movs r1, #1
ldrb r4, [r4, #0xa]
lsls r1, r4
ldrh r0, [r2]
bics r0, r1
strh r0, [r2]
_0805C86C:
pop {r4, pc}
.align 2, 0
_0805C870: .4byte gUnk_030010A0
thumb_func_start sub_0805C874
sub_0805C874: @ 0x0805C874
push {r4, lr}
adds r4, r0, #0
bl sub_0805C920
cmp r0, #0
beq _0805C884
movs r0, #2
b _0805C886
_0805C884:
movs r0, #1
_0805C886:
strb r0, [r4, #0xc]
movs r1, #0
movs r0, #1
strb r0, [r4, #0xe]
strb r1, [r4, #0xf]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805C894
sub_0805C894: @ 0x0805C894
push {r4, lr}
adds r4, r0, #0
bl sub_0805C920
cmp r0, #0
beq _0805C8B0
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #1
strb r0, [r4, #0xe]
movs r0, #0x8d
lsls r0, r0, #1
bl sub_080A3268
_0805C8B0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805C8B4
sub_0805C8B4: @ 0x0805C8B4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
movs r2, #0xff
lsls r0, r0, #0x18
lsrs r1, r0, #0x18
cmp r1, #0
bne _0805C8F4
movs r0, #0x14
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
ands r0, r2
cmp r0, #5
bls _0805C8DA
strb r1, [r4, #0xf]
_0805C8DA:
ldr r1, _0805C904 @ =gUnk_08108D20
ldrb r0, [r4, #0xf]
adds r0, r0, r1
ldrb r0, [r0]
bl sub_0801D714
ldrb r0, [r4, #0xf]
cmp r0, #0
bne _0805C8F4
movs r0, #0x8d
lsls r0, r0, #1
bl sub_080A3268
_0805C8F4:
adds r0, r4, #0
bl sub_0805C920
cmp r0, #0
bne _0805C902
movs r0, #3
strb r0, [r4, #0xc]
_0805C902:
pop {r4, pc}
.align 2, 0
_0805C904: .4byte gUnk_08108D20
thumb_func_start sub_0805C908
sub_0805C908: @ 0x0805C908
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xf]
cmp r0, #0
bne _0805C918
movs r0, #1
strb r0, [r1, #0xc]
b _0805C91E
_0805C918:
adds r0, r1, #0
bl sub_0805C8B4
_0805C91E:
pop {pc}
thumb_func_start sub_0805C920
sub_0805C920: @ 0x0805C920
push {lr}
movs r2, #0xc0
lsls r2, r2, #2
ldrb r1, [r0, #0xa]
adds r1, #0x67
adds r0, r2, #0
bl GetProgressFlagWithOffset
pop {pc}
.align 2, 0
thumb_func_start sub_0805C934
sub_0805C934: @ 0x0805C934
push {lr}
ldr r2, _0805C948 @ =gUnk_08108D28
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805C948: .4byte gUnk_08108D28
thumb_func_start sub_0805C94C
sub_0805C94C: @ 0x0805C94C
push {r4, r5, r6, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xa]
cmp r0, #0
bne _0805C9B0
adds r6, r4, #0
adds r6, #0x20
adds r1, r6, #0
movs r2, #0
adds r0, r4, #0
adds r0, #0x3c
_0805C962:
str r2, [r0]
subs r0, #4
cmp r0, r1
bge _0805C962
adds r0, r4, #0
bl sub_0805CA6C
adds r5, r0, #0
cmp r5, #1
ble _0805C9A8
bl sub_0805E8D4
adds r2, r0, #0
cmp r2, #0
beq _0805C9A8
movs r0, #9
strb r0, [r2, #8]
movs r0, #0x28
strb r0, [r2, #9]
movs r0, #1
strb r0, [r2, #0xa]
strb r5, [r2, #0xe]
adds r1, r2, #0
adds r1, #0x20
adds r0, r6, #0
ldm r0!, {r3, r5, r6}
stm r1!, {r3, r5, r6}
ldm r0!, {r3, r5, r6}
stm r1!, {r3, r5, r6}
ldm r0!, {r3, r5}
stm r1!, {r3, r5}
adds r0, r2, #0
movs r1, #6
bl sub_0805EA2C
_0805C9A8:
adds r0, r4, #0
bl sub_0805E900
b _0805C9B8
_0805C9B0:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
strb r1, [r4, #0xf]
_0805C9B8:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0805C9BC
sub_0805C9BC: @ 0x0805C9BC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
sub sp, #4
adds r6, r0, #0
bl sub_0805CB48
ldrb r0, [r6, #0xe]
subs r0, #1
mov sb, r0
ldrb r1, [r6, #0xf]
adds r0, r1, #1
strb r0, [r6, #0xf]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0805CA22
movs r2, #0
cmp r2, sb
bge _0805CA62
movs r0, #0x20
adds r0, r0, r6
mov r8, r0
_0805C9EC:
lsls r1, r2, #2
adds r0, r6, #0
adds r0, #0x20
adds r0, r0, r1
ldr r3, [r0]
adds r4, r2, #1
adds r5, r4, #0
ldrb r1, [r6, #0xe]
cmp r5, r1
bge _0805CA1A
lsls r0, r5, #2
mov r1, r8
adds r7, r0, r1
_0805CA06:
ldm r7!, {r1}
adds r0, r3, #0
str r3, [sp]
bl sub_08004484
adds r4, #1
ldr r3, [sp]
ldrb r0, [r6, #0xe]
cmp r4, r0
blt _0805CA06
_0805CA1A:
adds r2, r5, #0
cmp r2, sb
blt _0805C9EC
b _0805CA62
_0805CA22:
movs r2, #0
cmp r2, sb
bge _0805CA62
movs r1, #0x20
adds r1, r1, r6
mov r8, r1
_0805CA2E:
lsls r1, r2, #2
adds r0, r6, #0
adds r0, #0x20
adds r0, r0, r1
ldr r3, [r0]
adds r4, r2, #1
adds r5, r4, #0
ldrb r0, [r6, #0xe]
cmp r5, r0
bge _0805CA5C
lsls r0, r5, #2
mov r1, r8
adds r7, r0, r1
_0805CA48:
ldm r7!, {r0}
adds r1, r3, #0
str r3, [sp]
bl sub_08004484
adds r4, #1
ldr r3, [sp]
ldrb r0, [r6, #0xe]
cmp r4, r0
blt _0805CA48
_0805CA5C:
adds r2, r5, #0
cmp r2, sb
blt _0805CA2E
_0805CA62:
add sp, #4
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0805CA6C
sub_0805CA6C: @ 0x0805CA6C
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r5, #0
ldrb r0, [r6, #0xb]
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
bne _0805CACE
movs r0, #0
b _0805CAE4
_0805CA82:
movs r0, #8
b _0805CAE4
_0805CA86:
movs r0, #0xf
ands r0, r2
cmp r0, #3
bne _0805CACC
adds r0, r4, #0
bl sub_0805CAF0
adds r2, r0, #0
cmp r2, #0
beq _0805CACC
movs r3, #0
cmp r3, r5
bhs _0805CAB8
ldr r0, [r6, #0x20]
cmp r0, r2
beq _0805CAB8
adds r1, r6, #0
adds r1, #0x20
_0805CAAA:
adds r1, #4
adds r3, #1
cmp r3, r5
bhs _0805CAB8
ldr r0, [r1]
cmp r0, r2
bne _0805CAAA
_0805CAB8:
cmp r3, r5
bne _0805CACC
lsls r1, r5, #2
adds r0, r6, #0
adds r0, #0x20
adds r0, r0, r1
str r2, [r0]
adds r5, #1
cmp r5, #8
beq _0805CA82
_0805CACC:
adds r4, #0x10
_0805CACE:
ldrb r2, [r4]
adds r0, r2, #0
cmp r0, #0xff
beq _0805CAE2
ldr r0, [r4]
ldr r1, _0805CAE8 @ =0x00FF000F
ands r0, r1
ldr r1, _0805CAEC @ =0x00280009
cmp r0, r1
bne _0805CA86
_0805CAE2:
adds r0, r5, #0
_0805CAE4:
pop {r4, r5, r6, pc}
.align 2, 0
_0805CAE8: .4byte 0x00FF000F
_0805CAEC: .4byte 0x00280009
thumb_func_start sub_0805CAF0
sub_0805CAF0: @ 0x0805CAF0
push {r4, r5, r6, lr}
adds r3, r0, #0
ldrh r1, [r3, #8]
ldr r2, _0805CB34 @ =gUnk_03000BF0
ldrh r0, [r2, #6]
adds r5, r1, r0
ldrh r1, [r3, #0xa]
ldrh r0, [r2, #8]
adds r4, r1, r0
ldr r1, _0805CB38 @ =gUnk_03003D90
ldr r2, [r1, #4]
cmp r2, r1
beq _0805CB42
_0805CB0A:
movs r6, #0x2e
ldrsh r0, [r2, r6]
cmp r5, r0
bne _0805CB3C
movs r6, #0x32
ldrsh r0, [r2, r6]
cmp r4, r0
bne _0805CB3C
ldrb r0, [r3, #2]
ldrb r6, [r2, #9]
cmp r0, r6
bne _0805CB3C
ldrb r0, [r2, #8]
cmp r0, #3
bne _0805CB3C
ldrb r0, [r3, #3]
ldrb r6, [r2, #0xa]
cmp r0, r6
bne _0805CB3C
adds r0, r2, #0
b _0805CB44
.align 2, 0
_0805CB34: .4byte gUnk_03000BF0
_0805CB38: .4byte gUnk_03003D90
_0805CB3C:
ldr r2, [r2, #4]
cmp r2, r1
bne _0805CB0A
_0805CB42:
movs r0, #0
_0805CB44:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_0805CB48
sub_0805CB48: @ 0x0805CB48
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r5, #0
ldrb r1, [r4, #0xe]
cmp r5, r1
bge _0805CB84
adds r3, r4, #0
adds r3, #0x20
adds r6, r3, #0
_0805CB5A:
ldr r0, [r3]
ldr r2, [r0, #4]
cmp r2, #0
bne _0805CB7A
subs r0, r1, #1
cmp r0, r5
bne _0805CB6C
str r2, [r3]
b _0805CB74
_0805CB6C:
lsls r0, r0, #2
adds r0, r6, r0
ldr r0, [r0]
str r0, [r3]
_0805CB74:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
_0805CB7A:
adds r3, #4
adds r5, #1
ldrb r1, [r4, #0xe]
cmp r5, r1
blt _0805CB5A
_0805CB84:
ldrb r0, [r4, #0xe]
cmp r0, #1
bhi _0805CB8E
bl sub_0805E780
_0805CB8E:
pop {r4, r5, r6, pc}
thumb_func_start sub_0805CB90
sub_0805CB90: @ 0x0805CB90
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805CBB8
adds r0, r4, #0
bl sub_0805CBD0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805CBCE
adds r0, r4, #0
bl sub_0805CC3C
adds r0, r4, #0
bl sub_0805E900
b _0805CBCE
_0805CBB8:
adds r0, r4, #0
bl sub_0805CF80
cmp r0, #0
beq _0805CBCE
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
adds r0, r4, #0
bl sub_0805E900
_0805CBCE:
pop {r4, pc}
thumb_func_start sub_0805CBD0
sub_0805CBD0: @ 0x0805CBD0
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #1
strb r0, [r5, #0xc]
ldrh r1, [r5, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r0, [r5, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r5, #0x38]
ldrh r2, [r5, #0x3c]
lsrs r2, r2, #4
ands r2, r3
adds r0, r5, #0
adds r0, #0x36
ldrb r1, [r0]
adds r0, #1
ldrb r0, [r0]
lsls r0, r0, #8
adds r1, r1, r0
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r2, r1
strh r2, [r5, #0x3a]
movs r1, #0x38
ldrsh r0, [r5, r1]
adds r4, r5, #0
adds r4, #0x34
ldrb r1, [r4]
bl sub_080002B0
strh r0, [r5, #0x3c]
ldrb r0, [r4]
bl sub_0808094C
ldr r2, _0805CC38 @ =0x00005004
adds r1, r0, r2
str r1, [r5, #0x28]
movs r2, #0x3a
ldrsh r1, [r5, r2]
lsls r1, r1, #1
adds r1, #4
adds r0, r0, r1
str r0, [r5, #0x2c]
pop {r4, r5, pc}
.align 2, 0
_0805CC38: .4byte 0x00005004
thumb_func_start sub_0805CC3C
sub_0805CC3C: @ 0x0805CC3C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r4, r0, #0
movs r0, #0x38
ldrsh r5, [r4, r0]
movs r0, #0x3a
ldrsh r1, [r4, r0]
mov r8, r1
adds r7, r4, #0
adds r7, #0x34
ldrb r0, [r7]
ldr r6, _0805CC6C @ =0x00000322
cmp r0, #1
bne _0805CC5C
subs r6, #1
_0805CC5C:
ldrb r0, [r4, #0xa]
cmp r0, #2
beq _0805CCF4
cmp r0, #2
bgt _0805CC70
cmp r0, #1
beq _0805CC94
b _0805CC76
.align 2, 0
_0805CC6C: .4byte 0x00000322
_0805CC70:
cmp r0, #3
bne _0805CC76
b _0805CDE4
_0805CC76:
adds r4, #0x34
ldrb r2, [r4]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
ldr r0, _0805CC90 @ =0x00000365
ldrb r2, [r4]
mov r1, r8
bl sub_0807B7D8
b _0805CF68
.align 2, 0
_0805CC90: .4byte 0x00000365
_0805CC94:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r0, _0805CCEC @ =0x0000036F
mov r1, r8
adds r1, #1
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CCF0 @ =0x00000371
mov r1, r8
adds r1, #0x41
b _0805CDC2
.align 2, 0
_0805CCEC: .4byte 0x0000036F
_0805CCF0: .4byte 0x00000371
_0805CCF4:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x42
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x81
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x82
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r0, _0805CDCC @ =0x00000372
mov r1, r8
adds r1, #1
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD0 @ =0x0000036F
mov r1, r8
adds r1, #2
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdd
lsls r0, r0, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD4 @ =0x00000376
mov r1, r8
adds r1, #0x41
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDD8 @ =0x00000375
mov r1, r8
adds r1, #0x42
ldrb r2, [r7]
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0x80
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDDC @ =0x00000373
mov r1, r8
adds r1, #0x81
ldrb r2, [r7]
bl sub_0807B7D8
ldr r0, _0805CDE0 @ =0x00000371
mov r1, r8
adds r1, #0x82
_0805CDC2:
ldrb r2, [r7]
bl sub_0807B7D8
b _0805CF68
.align 2, 0
_0805CDCC: .4byte 0x00000372
_0805CDD0: .4byte 0x0000036F
_0805CDD4: .4byte 0x00000376
_0805CDD8: .4byte 0x00000375
_0805CDDC: .4byte 0x00000373
_0805CDE0: .4byte 0x00000371
_0805CDE4:
ldrb r2, [r7]
adds r0, r6, #0
adds r1, r5, #0
bl sub_0807B7D8
adds r1, r5, #1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #3
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x41
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x42
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x43
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x81
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x82
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0x83
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc0
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc1
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc2
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r1, r5, #0
adds r1, #0xc3
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
ldrh r0, [r4, #0x3c]
ldrb r2, [r7]
mov r1, r8
bl sub_0807B7D8
ldr r4, _0805CF70 @ =0x00000372
mov r1, r8
adds r1, #1
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #2
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r0, _0805CF74 @ =0x0000036F
mov r1, r8
adds r1, #3
ldrb r2, [r7]
bl sub_0807B7D8
movs r6, #0xdd
lsls r6, r6, #2
mov r1, r8
adds r1, #0x40
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
adds r4, #4
mov r1, r8
adds r1, #0x41
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x42
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r5, _0805CF78 @ =0x00000375
mov r1, r8
adds r1, #0x43
ldrb r2, [r7]
adds r0, r5, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x80
ldrb r2, [r7]
adds r0, r6, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x81
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x82
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0x83
ldrb r2, [r7]
adds r0, r5, #0
bl sub_0807B7D8
movs r0, #0xdc
lsls r0, r0, #2
mov r1, r8
adds r1, #0xc0
ldrb r2, [r7]
bl sub_0807B7D8
subs r4, #3
mov r1, r8
adds r1, #0xc1
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
mov r1, r8
adds r1, #0xc2
ldrb r2, [r7]
adds r0, r4, #0
bl sub_0807B7D8
ldr r0, _0805CF7C @ =0x00000371
mov r1, r8
adds r1, #0xc3
ldrb r2, [r7]
bl sub_0807B7D8
_0805CF68:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805CF70: .4byte 0x00000372
_0805CF74: .4byte 0x0000036F
_0805CF78: .4byte 0x00000375
_0805CF7C: .4byte 0x00000371
thumb_func_start sub_0805CF80
sub_0805CF80: @ 0x0805CF80
push {lr}
ldr r1, [r0, #0x2c]
ldrh r1, [r1]
ldr r0, [r0, #0x28]
lsls r1, r1, #1
adds r1, r1, r0
ldrh r1, [r1]
movs r2, #0
ldr r0, _0805CFBC @ =0x00000365
cmp r1, r0
beq _0805CFB4
adds r0, #4
cmp r1, r0
beq _0805CFB4
adds r0, #1
cmp r1, r0
beq _0805CFB4
adds r0, #1
cmp r1, r0
beq _0805CFB4
adds r0, #2
cmp r1, r0
beq _0805CFB4
subs r0, #1
cmp r1, r0
bne _0805CFB6
_0805CFB4:
movs r2, #1
_0805CFB6:
adds r0, r2, #0
pop {pc}
.align 2, 0
_0805CFBC: .4byte 0x00000365
thumb_func_start sub_0805CFC0
sub_0805CFC0: @ 0x0805CFC0
push {r4, lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _0805CFCE
adds r0, #1
strb r0, [r1, #0xc]
_0805CFCE:
movs r0, #3
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
beq _0805CFEE
b _0805CFE8
_0805CFDC:
cmp r0, #0xa
bne _0805CFE6
adds r0, r4, #0
bl sub_0805CFF0
_0805CFE6:
adds r4, #8
_0805CFE8:
ldrb r0, [r4]
cmp r0, #0
bne _0805CFDC
_0805CFEE:
pop {r4, pc}
thumb_func_start sub_0805CFF0
sub_0805CFF0: @ 0x0805CFF0
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #2]
bl sub_0807CBD0
cmp r0, #0
bne _0805D012
ldrh r0, [r4, #4]
ldrb r1, [r4, #1]
bl sub_080002B0
ldrh r1, [r4, #6]
cmp r1, r0
bne _0805D012
ldrh r0, [r4, #2]
bl sub_0807CCB4
_0805D012:
pop {r4, pc}
thumb_func_start sub_0805D014
sub_0805D014: @ 0x0805D014
push {lr}
ldr r2, _0805D028 @ =gUnk_08108D30
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805D028: .4byte gUnk_08108D30
thumb_func_start sub_0805D02C
sub_0805D02C: @ 0x0805D02C
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
adds r6, r0, #0
ldrh r0, [r6, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805D046
bl sub_0805E780
_0805D046:
ldr r0, _0805D0BC @ =gUnk_03003DBC
ldrb r0, [r0]
cmp r0, #0x43
bhi _0805D0B0
ldrb r0, [r6, #0xa]
bl sub_0804B128
adds r5, r0, #0
movs r7, #0
movs r0, #0x36
adds r0, r0, r6
mov sl, r0
ldr r1, _0805D0C0 @ =gUnk_03000BF0
mov r8, r1
movs r0, #0x20
adds r0, r0, r6
mov sb, r0
_0805D068:
ldrh r1, [r5, #4]
movs r0, #0xa0
adds r2, r7, #0
bl CreateObject
adds r4, r0, #0
mov r1, r8
ldrh r0, [r1, #6]
ldrh r1, [r5]
adds r0, r0, r1
strh r0, [r4, #0x2e]
mov r1, r8
ldrh r0, [r1, #8]
ldrh r1, [r5, #2]
adds r0, r0, r1
strh r0, [r4, #0x32]
str r6, [r4, #0x50]
adds r0, r4, #0
bl sub_08016A30
mov r0, sb
adds r0, #4
mov sb, r0
subs r0, #4
stm r0!, {r4}
adds r7, #1
adds r5, #6
cmp r7, #3
bls _0805D068
movs r0, #0
movs r1, #1
strb r1, [r6, #0xc]
movs r1, #0x3c
strb r1, [r6, #0xf]
mov r1, sl
strb r0, [r1]
_0805D0B0:
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805D0BC: .4byte gUnk_03003DBC
_0805D0C0: .4byte gUnk_03000BF0
thumb_func_start sub_0805D0C4
sub_0805D0C4: @ 0x0805D0C4
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 _0805D0D8
movs r0, #0xb4
strb r0, [r4, #0xf]
_0805D0D8:
adds r5, r4, #0
adds r5, #0x36
ldrb r0, [r5]
cmp r0, #0xf
bne _0805D0F6
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #8
strb r0, [r4, #0xe]
movs r0, #0x72
bl sub_080A3268
adds r0, r4, #0
bl sub_0805D11C
_0805D0F6:
movs r0, #0
strb r0, [r5]
pop {r4, r5, pc}
thumb_func_start sub_0805D0FC
sub_0805D0FC: @ 0x0805D0FC
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 _0805D118
ldrh r0, [r4, #0x3e]
bl sub_0807CCC8
adds r0, r4, #0
bl sub_0805E900
_0805D118:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805D11C
sub_0805D11C: @ 0x0805D11C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
movs r6, #0
ldr r1, _0805D170 @ =gUnk_03000BF0
mov r8, r1
movs r7, #0x3f
adds r5, r0, #0
adds r5, #0x20
_0805D12E:
ldr r4, [r5]
movs r0, #0
stm r5!, {r0}
movs r2, #0x2e
ldrsh r0, [r4, r2]
mov r3, r8
ldrh r1, [r3, #6]
subs r0, r0, r1
asrs r0, r0, #4
ands r0, r7
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r3, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r7
lsls r1, r1, #6
orrs r0, r1
adds r1, r4, #0
adds r1, #0x38
ldrb r1, [r1]
bl sub_0807BA8C
adds r0, r4, #0
bl sub_0805E7BC
adds r6, #1
cmp r6, #3
bls _0805D12E
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805D170: .4byte gUnk_03000BF0
thumb_func_start sub_0805D174
sub_0805D174: @ 0x0805D174
push {r4, r5, lr}
adds r5, r0, #0
ldrb r1, [r5, #0xc]
cmp r1, #0
bne _0805D184
movs r0, #1
strb r0, [r5, #0xc]
strh r1, [r5, #0x3a]
_0805D184:
movs r1, #0x38
ldrsh r0, [r5, r1]
movs r2, #0x3a
ldrsh r1, [r5, r2]
movs r2, #0x14
movs r3, #0x40
bl sub_0800293E
cmp r0, #0
beq _0805D1EE
ldr r0, _0805D1F0 @ =gLinkEntity
movs r4, #0x32
ldrsh r1, [r0, r4]
ldr r3, _0805D1F4 @ =gUnk_03000BF0
ldrh r2, [r3, #8]
subs r1, r1, r2
movs r4, #0x36
ldrsh r0, [r0, r4]
adds r1, r1, r0
cmp r1, #0
bge _0805D1EE
movs r1, #0xc
ldrsh r0, [r3, r1]
cmp r0, r2
bne _0805D1EE
ldr r4, _0805D1F8 @ =gUnk_030010AC
adds r0, r4, #0
movs r1, #0x20
bl sub_0801D630
subs r4, #0xc
movs r1, #0
movs r0, #1
strb r0, [r4, #8]
strb r1, [r4, #9]
movs r0, #0xb
strb r0, [r4, #0xf]
ldrb r0, [r5, #0xb]
strb r0, [r4, #0xc]
ldrb r0, [r5, #0xe]
strb r0, [r4, #0xd]
adds r0, r5, #0
adds r0, #0x37
ldrb r0, [r0]
strb r0, [r4, #0xe]
ldrh r0, [r5, #0x3c]
strh r0, [r4, #0x10]
ldrh r0, [r5, #0x3e]
strh r0, [r4, #0x12]
adds r0, r5, #0
adds r0, #0x36
ldrb r0, [r0]
strb r0, [r4, #0x14]
_0805D1EE:
pop {r4, r5, pc}
.align 2, 0
_0805D1F0: .4byte gLinkEntity
_0805D1F4: .4byte gUnk_03000BF0
_0805D1F8: .4byte gUnk_030010AC
thumb_func_start sub_0805D1FC
sub_0805D1FC: @ 0x0805D1FC
push {r4, r5, lr}
adds r4, r0, #0
ldr r0, _0805D240 @ =0x00004014
ldr r1, _0805D244 @ =0x000005C3
movs r2, #1
bl sub_0800015E
ldr r3, _0805D248 @ =gUnk_03000BF0
ldrh r0, [r3, #8]
adds r0, #0xc8
ldr r2, _0805D24C @ =gLinkEntity
movs r5, #0x32
ldrsh r1, [r2, r5]
cmp r0, r1
bge _0805D236
movs r1, #0x2e
ldrsh r0, [r2, r1]
ldrh r1, [r3, #6]
subs r0, r0, r1
subs r0, #0x30
cmp r0, #0x10
bhi _0805D236
adds r1, r2, #0
adds r1, #0x38
movs r0, #3
strb r0, [r1]
adds r0, r2, #0
bl sub_08016A04
_0805D236:
adds r0, r4, #0
bl sub_0805E900
pop {r4, r5, pc}
.align 2, 0
_0805D240: .4byte 0x00004014
_0805D244: .4byte 0x000005C3
_0805D248: .4byte gUnk_03000BF0
_0805D24C: .4byte gLinkEntity
thumb_func_start sub_0805D250
sub_0805D250: @ 0x0805D250
push {lr}
ldr r2, _0805D264 @ =gUnk_08108D3C
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805D264: .4byte gUnk_08108D3C
thumb_func_start sub_0805D268
sub_0805D268: @ 0x0805D268
push {lr}
ldr r2, _0805D27C @ =gUnk_08108D44
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805D27C: .4byte gUnk_08108D44
thumb_func_start sub_0805D280
sub_0805D280: @ 0x0805D280
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _0805D292
bl sub_0805E780
_0805D292:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805D2A6
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
bl sub_0805E780
_0805D2A6:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0805D2B4
movs r0, #0x1e
strb r0, [r4, #0xe]
_0805D2B4:
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805D2C0
sub_0805D2C0: @ 0x0805D2C0
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805D2EE
ldr r0, _0805D2F0 @ =gUnk_03003DC0
ldrh r0, [r0, #8]
cmp r0, #1
bhi _0805D2EE
movs r0, #2
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #1
bne _0805D2E6
adds r0, r4, #0
bl sub_0805D2F4
_0805D2E6:
ldrb r1, [r4, #0xe]
adds r0, r4, #0
bl sub_0805E4E0
_0805D2EE:
pop {r4, pc}
.align 2, 0
_0805D2F0: .4byte gUnk_03003DC0
thumb_func_start sub_0805D2F4
sub_0805D2F4: @ 0x0805D2F4
push {r4, lr}
adds r4, r0, #0
ldr r0, _0805D310 @ =gUnk_03003DC0
ldrh r0, [r0, #8]
cmp r0, #0
bne _0805D328
movs r1, #0x38
ldrsh r0, [r4, r1]
cmp r0, #0
beq _0805D314
bl sub_080A3268
b _0805D31A
.align 2, 0
_0805D310: .4byte gUnk_03003DC0
_0805D314:
movs r0, #0x72
bl sub_080A3268
_0805D31A:
ldrh r0, [r4, #0x3c]
cmp r0, #0
beq _0805D324
bl sub_0807CCC8
_0805D324:
bl sub_0805E780
_0805D328:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805D32C
sub_0805D32C: @ 0x0805D32C
push {lr}
ldr r2, _0805D340 @ =gUnk_08108D50
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805D340: .4byte gUnk_08108D50
thumb_func_start sub_0805D344
sub_0805D344: @ 0x0805D344
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xe]
cmp r0, #0
bne _0805D35C
movs r0, #0x1e
strb r0, [r4, #0xe]
_0805D35C:
ldrb r0, [r4, #0xe]
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805D36C
sub_0805D36C: @ 0x0805D36C
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805D382
movs r0, #2
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xf]
strb r0, [r4, #0xe]
_0805D382:
pop {r4, pc}
thumb_func_start sub_0805D384
sub_0805D384: @ 0x0805D384
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
cmp r0, #0
beq _0805D3B2
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D3C6
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r1, #0x72
cmp r0, #0
beq _0805D3A4
adds r1, r0, #0
_0805D3A4:
adds r0, r1, #0
bl sub_080A3268
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
b _0805D3C6
_0805D3B2:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
bne _0805D3C6
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3c]
bl sub_0807CD48
_0805D3C6:
pop {r4, pc}
thumb_func_start sub_0805D3C8
sub_0805D3C8: @ 0x0805D3C8
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
bne _0805D3F4
ldr r0, _0805D3E8 @ =gUnk_02033A90
ldr r1, _0805D3EC @ =0x0000088C
adds r0, r0, r1
ldr r0, [r0]
ldr r1, _0805D3F0 @ =sub_0805D470
cmp r0, r1
beq _0805D45E
movs r0, #0
bl _call_via_r1
b _0805D45E
.align 2, 0
_0805D3E8: .4byte gUnk_02033A90
_0805D3EC: .4byte 0x0000088C
_0805D3F0: .4byte sub_0805D470
_0805D3F4:
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805D43A
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
ldr r0, _0805D428 @ =gUnk_02033A90
ldr r2, _0805D42C @ =0x0000088C
adds r0, r0, r2
ldr r0, [r0]
cmp r0, #0
bne _0805D434
ldr r1, _0805D430 @ =sub_0805D470
adds r0, r4, #0
movs r2, #0
bl sub_08052D74
b _0805D45E
.align 2, 0
_0805D428: .4byte gUnk_02033A90
_0805D42C: .4byte 0x0000088C
_0805D430: .4byte sub_0805D470
_0805D434:
bl sub_0805E780
b _0805D45E
_0805D43A:
ldr r1, _0805D460 @ =gUnk_03000BF0
ldr r0, [r1, #0x28]
ldr r3, _0805D464 @ =0xFFFFC000
adds r0, r0, r3
str r0, [r1, #0x28]
ldr r0, [r1, #0x2c]
ldr r2, _0805D468 @ =0xFFFFE000
adds r0, r0, r2
str r0, [r1, #0x2c]
ldr r2, _0805D46C @ =gUnk_03000F50
ldrh r0, [r1, #0x2a]
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
_0805D45E:
pop {r4, pc}
.align 2, 0
_0805D460: .4byte gUnk_03000BF0
_0805D464: .4byte 0xFFFFC000
_0805D468: .4byte 0xFFFFE000
_0805D46C: .4byte gUnk_03000F50
thumb_func_start sub_0805D470
sub_0805D470: @ 0x0805D470
push {lr}
movs r0, #0x4c
bl sub_0801D7EC
ldr r2, _0805D4A0 @ =gUnk_03000F50
ldr r0, _0805D4A4 @ =0x00001E07
strh r0, [r2, #0x2c]
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
ldr r1, _0805D4A8 @ =gUnk_03000BF0
ldrh r0, [r1, #0x2a]
ldrh r3, [r1, #0xa]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
pop {pc}
.align 2, 0
_0805D4A0: .4byte gUnk_03000F50
_0805D4A4: .4byte 0x00001E07
_0805D4A8: .4byte gUnk_03000BF0
thumb_func_start sub_0805D4AC
sub_0805D4AC: @ 0x0805D4AC
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
ldrb r0, [r6, #0xc]
cmp r0, #1
beq _0805D520
cmp r0, #1
bgt _0805D4C6
cmp r0, #0
beq _0805D4D2
b _0805D628
_0805D4C6:
cmp r0, #2
beq _0805D5A4
cmp r0, #3
bne _0805D4D0
b _0805D604
_0805D4D0:
b _0805D628
_0805D4D2:
movs r0, #1
strb r0, [r6, #0xc]
ldrb r0, [r6, #0xe]
strb r0, [r6, #0xf]
ldrh r1, [r6, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r0, [r6, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r3
lsls r0, r0, #6
orrs r1, r0
strh r1, [r6, #0x28]
ldr r4, _0805D518 @ =gLinkEntity
movs r0, #0x2e
ldrsh r1, [r4, r0]
ldr r2, _0805D51C @ =gUnk_03000BF0
ldrh r0, [r2, #6]
subs r1, r1, r0
asrs r1, r1, #4
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
strh r1, [r6, #0x2e]
strh r1, [r6, #0x2c]
b _0805D628
.align 2, 0
_0805D518: .4byte gLinkEntity
_0805D51C: .4byte gUnk_03000BF0
_0805D520:
ldr r4, _0805D568 @ =gLinkEntity
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r3, _0805D56C @ =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
strh r5, [r6, #0x2e]
ldrh r2, [r6, #0x2c]
cmp r5, r2
beq _0805D5A4
strh r5, [r6, #0x2c]
ldrh r0, [r6, #0x2e]
ldrb r1, [r6, #0xb]
bl sub_080002B0
adds r1, r0, #0
ldr r3, _0805D570 @ =0x00000317
cmp r1, r3
beq _0805D574
movs r0, #0xc6
lsls r0, r0, #2
cmp r1, r0
beq _0805D580
b _0805D5A4
.align 2, 0
_0805D568: .4byte gLinkEntity
_0805D56C: .4byte gUnk_03000BF0
_0805D570: .4byte 0x00000317
_0805D574:
movs r0, #2
strb r0, [r6, #0xc]
movs r0, #0x6d
bl sub_080A3268
b _0805D5A4
_0805D580:
ldrh r1, [r6, #0x2e]
ldrb r2, [r6, #0xb]
adds r0, r3, #0
bl sub_0807B7D8
movs r0, #0x6b
bl sub_080A3268
ldrb r0, [r6, #0xe]
subs r0, #1
strb r0, [r6, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D5A4
movs r0, #3
strb r0, [r6, #0xc]
movs r0, #0x40
strb r0, [r6, #0xe]
_0805D5A4:
ldrh r0, [r6, #0x3e]
cmp r0, #0
beq _0805D628
bl sub_0807CBE4
cmp r0, #0
beq _0805D628
ldrh r0, [r6, #0x3e]
bl sub_0807CD48
movs r0, #1
strb r0, [r6, #0xc]
ldrb r0, [r6, #0xf]
strb r0, [r6, #0xe]
movs r1, #0
adds r0, r6, #0
adds r0, #0x37
mov sb, r0
ldrb r5, [r0]
cmp r1, r5
bhs _0805D628
movs r0, #0x36
adds r0, r0, r6
mov r8, r0
_0805D5D4:
lsls r0, r1, #6
ldrh r2, [r6, #0x28]
adds r5, r0, r2
movs r4, #0
adds r7, r1, #1
mov r0, r8
ldrb r0, [r0]
cmp r4, r0
bhs _0805D5F8
_0805D5E6:
adds r0, r5, r4
ldrb r1, [r6, #0xb]
bl sub_0807BA8C
adds r4, #1
mov r1, r8
ldrb r1, [r1]
cmp r4, r1
blo _0805D5E6
_0805D5F8:
adds r1, r7, #0
mov r2, sb
ldrb r2, [r2]
cmp r1, r2
blo _0805D5D4
b _0805D628
_0805D604:
ldrb r0, [r6, #0xe]
cmp r0, #0
beq _0805D628
subs r0, #1
strb r0, [r6, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
beq _0805D622
cmp r0, #0x20
bne _0805D628
ldrh r0, [r6, #0x3c]
bl sub_0807CCC8
b _0805D628
_0805D622:
movs r0, #0x72
bl sub_080A3268
_0805D628:
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_0805D630
sub_0805D630: @ 0x0805D630
push {r4, r5, r6, r7, lr}
mov r7, sb
mov r6, r8
push {r6, r7}
adds r6, r0, #0
ldrb r0, [r6, #0xc]
cmp r0, #0
beq _0805D642
b _0805D768
_0805D642:
adds r0, #1
strb r0, [r6, #0xc]
movs r0, #0x42
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x43
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x44
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x3e
bl GetProgressFlag
cmp r0, #0
bne _0805D680
movs r0, #2
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x3e
bl sub_0807CD04
b _0805D6D2
_0805D680:
movs r0, #0x3f
bl GetProgressFlag
cmp r0, #0
bne _0805D69C
movs r0, #3
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x3f
bl sub_0807CD04
b _0805D6D2
_0805D69C:
movs r0, #0x40
bl GetProgressFlag
cmp r0, #0
bne _0805D6B8
movs r0, #4
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x40
bl sub_0807CD04
b _0805D6D2
_0805D6B8:
movs r0, #0x41
bl GetProgressFlag
cmp r0, #0
bne _0805D6E4
movs r0, #5
bl GetProgressFlag
cmp r0, #0
beq _0805D6E4
movs r0, #0x41
bl sub_0807CD04
_0805D6D2:
movs r0, #0x42
bl sub_0807CD80
movs r0, #0x43
bl sub_0807CD80
movs r0, #0x44
bl sub_0807CD80
_0805D6E4:
adds r1, r6, #0
adds r1, #0x22
movs r0, #0
strb r0, [r1]
subs r1, #1
strb r0, [r1]
subs r1, #1
strb r0, [r1]
ldr r4, _0805D79C @ =gUnk_08108D5C
movs r5, #0
mov sb, r1
movs r7, #1
ldr r0, _0805D7A0 @ =gUnk_03000BF0
mov r8, r0
_0805D700:
adds r0, r5, #0
adds r0, #0x42
bl GetProgressFlag
cmp r0, #0
bne _0805D760
bl sub_08000E50
ldrh r1, [r4, #2]
bl __modsi3
adds r2, r0, #0
ldrh r0, [r4]
adds r2, r2, r0
movs r0, #2
movs r1, #0x5c
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805D760
strb r7, [r2, #0xe]
strb r5, [r2, #0xf]
mov r1, r8
ldrh r0, [r1, #6]
ldrh r1, [r4, #4]
adds r0, r0, r1
strh r0, [r2, #0x2e]
mov r1, r8
ldrh r0, [r1, #8]
ldrh r1, [r4, #6]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldrh r1, [r4, #4]
adds r0, r2, #0
adds r0, #0x80
strh r1, [r0]
ldrh r0, [r4, #6]
adds r1, r2, #0
adds r1, #0x82
strh r0, [r1]
adds r0, r2, #0
adds r0, #0x38
strb r7, [r0]
str r6, [r2, #0x50]
mov r1, sb
adds r0, r1, r5
strb r7, [r0]
_0805D760:
adds r5, #1
adds r4, #8
cmp r5, #2
ble _0805D700
_0805D768:
movs r5, #0
_0805D76A:
adds r4, r5, #0
adds r4, #0x42
adds r0, r4, #0
bl GetProgressFlag
cmp r0, #0
bne _0805D78E
adds r0, r6, #0
adds r0, #0x20
adds r0, r0, r5
ldrb r0, [r0]
lsls r0, r0, #0x18
asrs r0, r0, #0x18
cmp r0, #0
bge _0805D78E
adds r0, r4, #0
bl sub_0807CD04
_0805D78E:
adds r5, #1
cmp r5, #2
ble _0805D76A
pop {r3, r4}
mov r8, r3
mov sb, r4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805D79C: .4byte gUnk_08108D5C
_0805D7A0: .4byte gUnk_03000BF0
thumb_func_start sub_0805D7A4
sub_0805D7A4: @ 0x0805D7A4
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805D7D4 @ =gUnk_08108D7C
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, _0805D7D8 @ =gUnk_030010A0
ldr r0, [r0]
lsls r0, r0, #4
str r0, [r4, #0x24]
adds r0, r4, #0
bl sub_0805D9D8
ldr r0, [r4, #0x20]
ldr r1, [r4, #0x28]
ldr r2, [r4, #0x24]
bl sub_0805DA08
pop {r4, pc}
.align 2, 0
_0805D7D4: .4byte gUnk_08108D7C
_0805D7D8: .4byte gUnk_030010A0
thumb_func_start sub_0805D7DC
sub_0805D7DC: @ 0x0805D7DC
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xa]
movs r2, #2
cmp r0, #0
bne _0805D7EA
movs r2, #1
_0805D7EA:
movs r0, #0
strb r2, [r1, #0xc]
str r0, [r1, #0x20]
str r0, [r1, #0x24]
ldr r0, _0805D80C @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0x78
beq _0805D83C
cmp r0, #0x78
bgt _0805D816
cmp r0, #7
beq _0805D828
cmp r0, #7
bgt _0805D810
cmp r0, #3
beq _0805D82C
b _0805D828
.align 2, 0
_0805D80C: .4byte gUnk_03000BF0
_0805D810:
cmp r0, #0x38
beq _0805D840
b _0805D828
_0805D816:
cmp r0, #0x81
beq _0805D830
cmp r0, #0x81
bgt _0805D824
cmp r0, #0x80
beq _0805D834
b _0805D828
_0805D824:
cmp r0, #0x88
beq _0805D838
_0805D828:
movs r1, #0
b _0805D842
_0805D82C:
movs r1, #1
b _0805D842
_0805D830:
movs r1, #2
b _0805D842
_0805D834:
movs r1, #3
b _0805D842
_0805D838:
movs r1, #4
b _0805D842
_0805D83C:
movs r1, #5
b _0805D842
_0805D840:
movs r1, #6
_0805D842:
ldr r0, _0805D854 @ =gUnk_08108D74
adds r0, r1, r0
ldrb r0, [r0]
bl sub_0801D7EC
ldr r1, _0805D858 @ =gUnk_03000F50
ldr r0, _0805D85C @ =0x00001E04
strh r0, [r1, #0x2c]
pop {pc}
.align 2, 0
_0805D854: .4byte gUnk_08108D74
_0805D858: .4byte gUnk_03000F50
_0805D85C: .4byte 0x00001E04
thumb_func_start sub_0805D860
sub_0805D860: @ 0x0805D860
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xd]
cmp r0, #1
beq _0805D89C
cmp r0, #1
bgt _0805D874
cmp r0, #0
beq _0805D87E
b _0805D8D6
_0805D874:
cmp r0, #2
beq _0805D8B0
cmp r0, #3
beq _0805D8C2
b _0805D8D6
_0805D87E:
movs r0, #1
strb r0, [r1, #0xd]
movs r0, #0x80
str r0, [r1, #0x20]
ldr r2, _0805D898 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
b _0805D8F4
.align 2, 0
_0805D898: .4byte gUnk_03000F50
_0805D89C:
ldr r0, [r1, #0x20]
subs r0, #1
str r0, [r1, #0x20]
cmp r0, #0x10
bne _0805D8F4
movs r0, #2
strb r0, [r1, #0xd]
movs r0, #0x2d
strb r0, [r1, #0xe]
b _0805D8F4
_0805D8B0:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D8F4
movs r0, #3
strb r0, [r1, #0xd]
b _0805D8F4
_0805D8C2:
ldr r0, [r1, #0x20]
subs r0, #1
str r0, [r1, #0x20]
cmp r0, #0
bne _0805D8F4
movs r0, #4
strb r0, [r1, #0xd]
movs r0, #0x3c
strb r0, [r1, #0xe]
b _0805D8F4
_0805D8D6:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D8F4
bl sub_0801E104
ldr r2, _0805D8F8 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805D8FC @ =0x0000F7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805D8F4:
pop {pc}
.align 2, 0
_0805D8F8: .4byte gUnk_03000F50
_0805D8FC: .4byte 0x0000F7FF
thumb_func_start sub_0805D900
sub_0805D900: @ 0x0805D900
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xd]
cmp r0, #1
beq _0805D938
cmp r0, #1
bgt _0805D914
cmp r0, #0
beq _0805D91A
b _0805D966
_0805D914:
cmp r0, #2
beq _0805D94E
b _0805D966
_0805D91A:
movs r1, #1
strb r1, [r2, #0xd]
movs r0, #0x2d
strb r0, [r2, #0xe]
str r1, [r2, #0x20]
ldr r2, _0805D934 @ =gUnk_03000F50
ldrh r1, [r2]
movs r3, #0x80
lsls r3, r3, #4
adds r0, r3, #0
orrs r0, r1
strh r0, [r2]
b _0805D982
.align 2, 0
_0805D934: .4byte gUnk_03000F50
_0805D938:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D982
movs r0, #2
strb r0, [r2, #0xd]
movs r0, #0x14
strb r0, [r2, #0xe]
b _0805D982
_0805D94E:
ldr r0, [r2, #0x20]
adds r0, #1
str r0, [r2, #0x20]
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805D982
movs r0, #3
strb r0, [r2, #0xd]
b _0805D982
_0805D966:
ldr r0, [r2, #0x20]
adds r0, #4
str r0, [r2, #0x20]
cmp r0, #0x80
bls _0805D982
bl sub_0801E104
ldr r2, _0805D984 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805D988 @ =0x0000F7FF
ands r0, r1
strh r0, [r2]
bl sub_0805E780
_0805D982:
pop {pc}
.align 2, 0
_0805D984: .4byte gUnk_03000F50
_0805D988: .4byte 0x0000F7FF
thumb_func_start sub_0805D98C
sub_0805D98C: @ 0x0805D98C
push {lr}
adds r2, r0, #0
ldr r3, _0805D9D4 @ =gUnk_03000FF0
ldrh r1, [r3]
movs r0, #0x40
ands r0, r1
cmp r0, #0
beq _0805D9A2
ldr r0, [r2, #0x20]
subs r0, #1
str r0, [r2, #0x20]
_0805D9A2:
ldrh r1, [r3]
movs r0, #0x80
ands r0, r1
adds r3, r1, #0
cmp r0, #0
beq _0805D9B4
ldr r0, [r2, #0x20]
adds r0, #1
str r0, [r2, #0x20]
_0805D9B4:
movs r0, #0x20
ands r0, r3
cmp r0, #0
beq _0805D9C2
ldr r0, [r2, #0x28]
subs r0, #1
str r0, [r2, #0x28]
_0805D9C2:
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0805D9D0
ldr r0, [r2, #0x28]
adds r0, #1
str r0, [r2, #0x28]
_0805D9D0:
pop {pc}
.align 2, 0
_0805D9D4: .4byte gUnk_03000FF0
thumb_func_start sub_0805D9D8
sub_0805D9D8: @ 0x0805D9D8
push {r4, lr}
ldr r4, [r0, #0x14]
cmp r4, #0
beq _0805D9FC
ldr r3, _0805DA00 @ =gUnk_03000F50
ldr r2, _0805DA04 @ =gUnk_03000BF0
ldrh r1, [r4, #0x2e]
ldrh r0, [r2, #0xa]
subs r1, r1, r0
movs r0, #0x80
subs r0, r0, r1
strh r0, [r3, #0x2e]
ldrh r1, [r4, #0x32]
ldrh r0, [r2, #0xc]
subs r1, r1, r0
movs r0, #0x8c
subs r0, r0, r1
strh r0, [r3, #0x30]
_0805D9FC:
pop {r4, pc}
.align 2, 0
_0805DA00: .4byte gUnk_03000F50
_0805DA04: .4byte gUnk_03000BF0
thumb_func_start sub_0805DA08
sub_0805DA08: @ 0x0805DA08
push {r4, r5, r6, r7, lr}
mov r7, sl
mov r6, sb
mov r5, r8
push {r5, r6, r7}
mov sl, r0
adds r5, r1, #0
adds r6, r2, #0
ldr r2, _0805DA78 @ =gUnk_03003DE4
ldrb r1, [r2]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
ldr r1, _0805DA7C @ =gUnk_02017AA0
adds r4, r0, r1
movs r3, #0
mov r8, r2
mov sb, r1
ldr r0, _0805DA80 @ =gUnk_080C9160
mov ip, r0
movs r2, #0xff
ldr r1, _0805DA84 @ =gUnk_03000F50
_0805DA34:
adds r0, r6, r3
adds r0, r0, r5
ands r0, r2
lsls r0, r0, #1
add r0, ip
movs r7, #0
ldrsh r0, [r0, r7]
mov r7, sl
muls r7, r0, r7
adds r0, r7, #0
lsrs r0, r0, #8
ldrh r7, [r1, #0x2e]
adds r0, r0, r7
strh r0, [r4]
adds r4, #2
adds r3, #1
adds r5, #0x17
cmp r3, #0x9f
bls _0805DA34
mov r0, r8
ldrb r1, [r0]
lsls r0, r1, #2
adds r0, r0, r1
lsls r0, r0, #9
add r0, sb
ldr r1, _0805DA88 @ =0x0400001C
ldr r2, _0805DA8C @ =0xA2600001
bl sub_0805622C
pop {r3, r4, r5}
mov r8, r3
mov sb, r4
mov sl, r5
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805DA78: .4byte gUnk_03003DE4
_0805DA7C: .4byte gUnk_02017AA0
_0805DA80: .4byte gUnk_080C9160
_0805DA84: .4byte gUnk_03000F50
_0805DA88: .4byte 0x0400001C
_0805DA8C: .4byte 0xA2600001
thumb_func_start sub_0805DA90
sub_0805DA90: @ 0x0805DA90
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
bl sub_0805E8D4
adds r1, r0, #0
cmp r1, #0
beq _0805DAB4
movs r0, #9
strb r0, [r1, #8]
movs r0, #0x32
strb r0, [r1, #9]
strb r4, [r1, #0xa]
str r5, [r1, #0x14]
adds r0, r1, #0
movs r1, #8
bl sub_0805EA2C
_0805DAB4:
ldr r0, _0805DAD8 @ =gUnk_02033A90
ldr r1, _0805DADC @ =0x0000088C
adds r4, r0, r1
ldr r0, [r4]
cmp r0, #0
beq _0805DAD4
ldr r2, _0805DAE0 @ =gUnk_03000F50
ldrh r1, [r2]
ldr r0, _0805DAE4 @ =0x0000F7FF
ands r0, r1
strh r0, [r2]
bl sub_080528F0
ldr r0, [r4]
bl sub_0805E900
_0805DAD4:
pop {r4, r5, pc}
.align 2, 0
_0805DAD8: .4byte gUnk_02033A90
_0805DADC: .4byte 0x0000088C
_0805DAE0: .4byte gUnk_03000F50
_0805DAE4: .4byte 0x0000F7FF
thumb_func_start sub_0805DAE8
sub_0805DAE8: @ 0x0805DAE8
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r2, r0, #0
ldr r5, _0805DB4C @ =gUnk_03000BF0
ldrh r0, [r5, #6]
movs r1, #0xfc
lsls r1, r1, #1
mov r8, r1
add r0, r8
ldr r3, _0805DB50 @ =gLinkEntity
movs r4, #0x2e
ldrsh r1, [r3, r4]
subs r0, r0, r1
adds r4, r0, #0
adds r4, #0x10
ldrh r0, [r5, #8]
movs r7, #0xa0
lsls r7, r7, #1
adds r0, r0, r7
movs r6, #0x32
ldrsh r1, [r3, r6]
subs r0, r0, r1
adds r0, #0x10
ldrb r6, [r2, #0xc]
cmp r6, #0
bne _0805DB58
cmp r4, #0x1f
bhi _0805DB88
cmp r0, #0x1f
bhi _0805DB88
movs r0, #0x36
ldrsh r1, [r3, r0]
movs r0, #0x18
rsbs r0, r0, #0
cmp r1, r0
bge _0805DB88
ldr r0, _0805DB54 @ =gUnk_03003F80
adds r0, #0xa8
ldrb r0, [r0]
cmp r0, #0x14
bne _0805DB88
adds r0, r6, #1
strb r0, [r2, #0xc]
movs r0, #0x5a
strb r0, [r2, #0xe]
adds r0, #0xb0
bl sub_080A3268
b _0805DB88
.align 2, 0
_0805DB4C: .4byte gUnk_03000BF0
_0805DB50: .4byte gLinkEntity
_0805DB54: .4byte gUnk_03003F80
_0805DB58:
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805DB88
movs r0, #0x96
movs r1, #1
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805DB84
ldrh r0, [r5, #6]
add r0, r8
strh r0, [r1, #0x2e]
ldrh r0, [r5, #8]
adds r0, r0, r7
strh r0, [r1, #0x32]
ldr r0, _0805DB90 @ =0x0000FFE8
strh r0, [r1, #0x36]
_0805DB84:
bl sub_0805E780
_0805DB88:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805DB90: .4byte 0x0000FFE8
thumb_func_start sub_0805DB94
sub_0805DB94: @ 0x0805DB94
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805DBB0 @ =gUnk_08108D8C
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_0805DBF0
pop {r4, pc}
.align 2, 0
_0805DBB0: .4byte gUnk_08108D8C
thumb_func_start sub_0805DBB4
sub_0805DBB4: @ 0x0805DBB4
movs r1, #1
strb r1, [r0, #0xc]
ldr r1, _0805DBC8 @ =gUnk_030010A0
adds r1, #0x3d
ldrb r2, [r1]
lsls r1, r2, #4
subs r1, r1, r2
lsls r1, r1, #2
strh r1, [r0, #0x20]
bx lr
.align 2, 0
_0805DBC8: .4byte gUnk_030010A0
thumb_func_start sub_0805DBCC
sub_0805DBCC: @ 0x0805DBCC
push {lr}
adds r1, r0, #0
ldr r0, [r1, #0x14]
ldr r0, [r0, #4]
cmp r0, #0
bne _0805DBE6
movs r0, #2
strb r0, [r1, #0xc]
ldrh r0, [r1, #0x20]
ldr r2, _0805DBE8 @ =0x0000012D
cmp r0, r2
bls _0805DBE6
strh r2, [r1, #0x20]
_0805DBE6:
pop {pc}
.align 2, 0
_0805DBE8: .4byte 0x0000012D
thumb_func_start nullsub_498
nullsub_498: @ 0x0805DBEC
bx lr
.align 2, 0
thumb_func_start sub_0805DBF0
sub_0805DBF0: @ 0x0805DBF0
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x20]
subs r1, r0, #1
strh r1, [r4, #0x20]
lsls r0, r1, #0x10
cmp r0, #0
bne _0805DC06
bl sub_0805DC70
b _0805DC6C
_0805DC06:
lsls r0, r1, #0x10
lsrs r1, r0, #0x10
cmp r1, #0x78
bne _0805DC18
movs r0, #0x78
movs r1, #2
bl sub_08080964
b _0805DC36
_0805DC18:
cmp r1, #0xd2
bne _0805DC26
movs r0, #0x5a
movs r1, #1
bl sub_08080964
b _0805DC36
_0805DC26:
movs r0, #0x96
lsls r0, r0, #1
cmp r1, r0
bne _0805DC36
movs r0, #0x5a
movs r1, #0
bl sub_08080964
_0805DC36:
ldrh r1, [r4, #0x20]
adds r0, r1, #0
cmp r0, #0x77
bhi _0805DC42
movs r0, #0xf
b _0805DC48
_0805DC42:
cmp r0, #0xd1
bhi _0805DC58
movs r0, #0x1f
_0805DC48:
ands r0, r1
cmp r0, #0
bne _0805DC6C
movs r0, #0x93
lsls r0, r0, #1
bl sub_080A3268
b _0805DC6C
_0805DC58:
cmp r0, #0xc7
bhi _0805DC6C
movs r0, #0x3f
ands r0, r1
cmp r0, #0
bne _0805DC6C
movs r0, #0x93
lsls r0, r0, #1
bl sub_080A3268
_0805DC6C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805DC70
sub_0805DC70: @ 0x0805DC70
push {lr}
bl sub_0805E5A8
ldr r0, _0805DC80 @ =gUnk_0813AC48
bl sub_08080840
pop {pc}
.align 2, 0
_0805DC80: .4byte gUnk_0813AC48
thumb_func_start sub_0805DC84
sub_0805DC84: @ 0x0805DC84
push {lr}
ldr r2, _0805DC98 @ =gUnk_08108D98
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805DC98: .4byte gUnk_08108D98
thumb_func_start sub_0805DC9C
sub_0805DC9C: @ 0x0805DC9C
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3c]
bl sub_0807CBE4
cmp r0, #0
beq _0805DCAE
bl sub_0805E780
_0805DCAE:
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805DCC2
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
bl sub_0805E780
_0805DCC2:
movs r0, #1
strb r0, [r4, #0xc]
pop {r4, pc}
thumb_func_start sub_0805DCC8
sub_0805DCC8: @ 0x0805DCC8
push {r4, r5, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl sub_0807CBE4
cmp r0, #0
beq _0805DD1E
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x35
ldrb r0, [r0]
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805DCEC
movs r0, #0x1e
strb r0, [r4, #0xe]
_0805DCEC:
ldr r5, _0805DD20 @ =gUnk_03000BF0
ldr r0, [r5, #0x30]
str r0, [r4, #0x14]
movs r0, #0x69
movs r1, #0
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0805DD1E
ldrh r0, [r5, #6]
ldrh r2, [r4, #0x38]
adds r0, r0, r2
strh r0, [r1, #0x2e]
ldrh r0, [r5, #8]
ldrh r2, [r4, #0x3a]
adds r0, r0, r2
strh r0, [r1, #0x32]
str r1, [r4, #0x18]
str r1, [r5, #0x30]
adds r0, r1, #0
movs r1, #0x1e
bl sub_0805E4E0
_0805DD1E:
pop {r4, r5, pc}
.align 2, 0
_0805DD20: .4byte gUnk_03000BF0
thumb_func_start sub_0805DD24
sub_0805DD24: @ 0x0805DD24
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #8
bl sub_0805E4E0
ldr r0, _0805DD64 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0805DD60
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805DD60
movs r0, #3
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3c]
bl sub_0807CCC8
adds r1, r4, #0
adds r1, #0x36
ldrb r0, [r1]
cmp r0, #0
bne _0805DD60
movs r0, #1
strb r0, [r1]
_0805DD60:
pop {r4, pc}
.align 2, 0
_0805DD64: .4byte gUnk_03000BF0
thumb_func_start sub_0805DD68
sub_0805DD68: @ 0x0805DD68
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #8
bl sub_0805E4E0
adds r1, r4, #0
adds r1, #0x36
ldrb r0, [r1]
cmp r0, #0
beq _0805DD94
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805DDAE
ldr r1, _0805DD90 @ =gUnk_03000BF0
ldr r0, [r4, #0x14]
str r0, [r1, #0x30]
b _0805DDAE
.align 2, 0
_0805DD90: .4byte gUnk_03000BF0
_0805DD94:
ldr r0, _0805DDB0 @ =gUnk_03000BF0
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0805DDAE
ldr r0, [r4, #0x18]
cmp r0, #0
beq _0805DDAA
bl sub_0805E7BC
_0805DDAA:
bl sub_0805E780
_0805DDAE:
pop {r4, pc}
.align 2, 0
_0805DDB0: .4byte gUnk_03000BF0
thumb_func_start sub_0805DDB4
sub_0805DDB4: @ 0x0805DDB4
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xa]
lsls r0, r0, #2
ldr r1, _0805DDE0 @ =gUnk_08108DA8
adds r3, r0, r1
ldrb r0, [r2, #0xc]
adds r1, r0, #0
cmp r1, #0
bne _0805DDCE
adds r0, #1
strb r0, [r2, #0xc]
strb r1, [r2, #0xe]
_0805DDCE:
ldrb r0, [r2, #0xe]
cmp r0, #0
bne _0805DDE4
ldrh r0, [r3]
strb r0, [r2, #0xe]
ldrh r0, [r3, #2]
bl sub_080A3268
b _0805DDE8
.align 2, 0
_0805DDE0: .4byte gUnk_08108DA8
_0805DDE4:
subs r0, #1
strb r0, [r2, #0xe]
_0805DDE8:
pop {pc}
.align 2, 0
thumb_func_start sub_0805DDEC
sub_0805DDEC: @ 0x0805DDEC
push {r4, r5, lr}
adds r5, r1, #0
bl sub_0805E8D4
adds r4, r0, #0
cmp r4, #0
beq _0805DE16
movs r0, #9
strb r0, [r4, #8]
movs r0, #0x36
strb r0, [r4, #9]
ldr r0, [r5, #4]
strb r0, [r4, #0xa]
adds r0, r4, #0
movs r1, #6
bl sub_0805EA2C
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
_0805DE16:
pop {r4, r5, pc}
thumb_func_start sub_0805DE18
sub_0805DE18: @ 0x0805DE18
push {lr}
sub sp, #4
ldr r3, [r1, #4]
movs r0, #0
str r0, [sp]
movs r0, #9
movs r1, #0x36
movs r2, #6
bl sub_0805EB2C
cmp r0, #0
beq _0805DE34
bl sub_0805E79C
_0805DE34:
add sp, #4
pop {pc}
thumb_func_start sub_0805DE38
sub_0805DE38: @ 0x0805DE38
push {lr}
ldr r2, _0805DE4C @ =gUnk_08108DBC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805DE4C: .4byte gUnk_08108DBC
thumb_func_start sub_0805DE50
sub_0805DE50: @ 0x0805DE50
push {lr}
ldr r2, _0805DE64 @ =gUnk_08108DC4
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805DE64: .4byte gUnk_08108DC4
thumb_func_start sub_0805DE68
sub_0805DE68: @ 0x0805DE68
push {r4, lr}
adds r4, r0, #0
movs r0, #0x7b
bl sub_0807CBD0
cmp r0, #0
bne _0805DE7A
bl sub_0805E780
_0805DE7A:
movs r1, #0
movs r0, #1
strb r0, [r4, #0xc]
ldr r2, _0805DEAC @ =gUnk_030010A0
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r1, r2, #0
adds r1, #0x39
movs r0, #0xf
strb r0, [r1]
adds r0, r2, #0
adds r0, #0x3a
movs r1, #0x20
strb r1, [r0]
adds r0, #1
strb r1, [r0]
ldr r0, _0805DEB0 @ =gUnk_02002A40
movs r1, #0x93
lsls r1, r1, #3
adds r0, r0, r1
ldr r1, _0805DEB4 @ =0x00001194
str r1, [r0]
pop {r4, pc}
.align 2, 0
_0805DEAC: .4byte gUnk_030010A0
_0805DEB0: .4byte gUnk_02002A40
_0805DEB4: .4byte 0x00001194
thumb_func_start sub_0805DEB8
sub_0805DEB8: @ 0x0805DEB8
push {r4, r5, lr}
adds r3, r0, #0
ldr r5, _0805DF44 @ =gLinkEntity
movs r0, #0x2e
ldrsh r2, [r5, r0]
subs r2, #0x88
ldr r4, _0805DF48 @ =gUnk_03000BF0
ldrh r0, [r4, #6]
subs r2, r2, r0
movs r1, #0x32
ldrsh r0, [r5, r1]
subs r0, #0x40
ldrh r1, [r4, #8]
subs r0, r0, r1
adds r1, r2, #0
muls r1, r2, r1
adds r2, r0, #0
muls r2, r0, r2
adds r0, r2, #0
adds r1, r1, r0
movs r0, #0x90
lsls r0, r0, #4
cmp r1, r0
bgt _0805DF42
movs r0, #0
movs r1, #2
strb r1, [r3, #0xc]
strb r0, [r3, #0xd]
movs r0, #0x78
strb r0, [r3, #0xe]
movs r0, #2
bl sub_08078A90
bl sub_08078B48
movs r0, #0x64
movs r1, #0
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805DF1A
ldrh r0, [r4, #6]
adds r0, #0x88
strh r0, [r2, #0x2e]
ldrh r0, [r4, #8]
adds r0, #0x48
strh r0, [r2, #0x32]
_0805DF1A:
movs r2, #0x10
rsbs r2, r2, #0
adds r0, r5, #0
movs r1, #8
bl sub_080A2CFC
adds r2, r0, #0
cmp r2, #0
beq _0805DF3C
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]
_0805DF3C:
movs r0, #0x32
bl sub_080A3268
_0805DF42:
pop {r4, r5, pc}
.align 2, 0
_0805DF44: .4byte gLinkEntity
_0805DF48: .4byte gUnk_03000BF0
thumb_func_start sub_0805DF4C
sub_0805DF4C: @ 0x0805DF4C
push {lr}
adds r1, r0, #0
ldr r2, _0805DF70 @ =gLinkEntity
movs r0, #0
strb r0, [r2, #0x14]
movs r3, #0x36
ldrsh r0, [r2, r3]
cmp r0, #0
beq _0805DF78
movs r1, #0x32
ldrsh r0, [r2, r1]
ldr r1, _0805DF74 @ =gUnk_03000BF0
ldrh r1, [r1, #8]
adds r1, #0x48
cmp r0, r1
bge _0805DF92
strh r1, [r2, #0x32]
b _0805DF92
.align 2, 0
_0805DF70: .4byte gLinkEntity
_0805DF74: .4byte gUnk_03000BF0
_0805DF78:
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805DF92
movs r0, #3
strb r0, [r1, #0xc]
movs r0, #0x1e
strb r0, [r1, #0xe]
ldr r0, _0805DF94 @ =0x0000164F
bl sub_08056378
_0805DF92:
pop {pc}
.align 2, 0
_0805DF94: .4byte 0x0000164F
thumb_func_start sub_0805DF98
sub_0805DF98: @ 0x0805DF98
push {lr}
adds r2, r0, #0
ldr r0, _0805DFB4 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
bne _0805DFCA
ldrb r0, [r2, #0xe]
cmp r0, #0
beq _0805DFB8
subs r0, #1
strb r0, [r2, #0xe]
b _0805DFCA
.align 2, 0
_0805DFB4: .4byte gUnk_02000050
_0805DFB8:
movs r0, #4
strb r0, [r2, #0xc]
movs r0, #7
movs r1, #4
bl sub_08050054
movs r0, #0xf6
bl sub_080A3268
_0805DFCA:
pop {pc}
thumb_func_start sub_0805DFCC
sub_0805DFCC: @ 0x0805DFCC
push {lr}
ldr r0, _0805DFE4 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _0805DFE0
movs r0, #0x1c
bl sub_0807CD80
bl sub_0805E094
_0805DFE0:
pop {pc}
.align 2, 0
_0805DFE4: .4byte gUnk_03000FD0
thumb_func_start sub_0805DFE8
sub_0805DFE8: @ 0x0805DFE8
push {lr}
ldr r2, _0805DFFC @ =gUnk_08108DD8
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805DFFC: .4byte gUnk_08108DD8
thumb_func_start sub_0805E000
sub_0805E000: @ 0x0805E000
push {r4, r5, r6, lr}
adds r6, r0, #0
movs r0, #0x51
movs r1, #0
bl CreateEnemy
adds r4, r0, #0
cmp r4, #0
beq _0805E062
ldr r1, _0805E064 @ =gUnk_03000BF0
ldrh r0, [r1, #6]
adds r0, #0xb0
strh r0, [r4, #0x2e]
ldrh r0, [r1, #8]
adds r0, #0x48
strh r0, [r4, #0x32]
adds r0, r4, #0
adds r0, #0x38
movs r5, #1
strb r5, [r0]
adds r0, r4, #0
bl sub_08016A04
ldr r0, _0805E068 @ =gUnk_030010A0
adds r0, #0x38
ldrb r1, [r0]
adds r0, r5, #0
ands r0, r1
cmp r0, #0
beq _0805E040
bl sub_0805E780
_0805E040:
str r4, [r6, #0x18]
strb r5, [r6, #0xc]
movs r0, #3
bl sub_08078A90
ldr r0, _0805E06C @ =gUnk_02033A90
ldr r1, _0805E070 @ =0x00000864
adds r0, r0, r1
ldr r1, _0805E074 @ =0x80010000
str r1, [r0]
movs r0, #6
movs r1, #4
bl sub_08050054
movs r0, #0xf7
bl sub_080A3268
_0805E062:
pop {r4, r5, r6, pc}
.align 2, 0
_0805E064: .4byte gUnk_03000BF0
_0805E068: .4byte gUnk_030010A0
_0805E06C: .4byte gUnk_02033A90
_0805E070: .4byte 0x00000864
_0805E074: .4byte 0x80010000
thumb_func_start sub_0805E078
sub_0805E078: @ 0x0805E078
push {lr}
adds r1, r0, #0
ldr r0, _0805E090 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _0805E08E
ldr r1, [r1, #0x18]
movs r0, #1
strb r0, [r1, #0xd]
bl sub_0805E780
_0805E08E:
pop {pc}
.align 2, 0
_0805E090: .4byte gUnk_03000FD0
thumb_func_start sub_0805E094
sub_0805E094: @ 0x0805E094
push {lr}
bl sub_0805E5A8
ldr r0, _0805E0A4 @ =gUnk_0813AC34
movs r1, #7
bl sub_0808091C
pop {pc}
.align 2, 0
_0805E0A4: .4byte gUnk_0813AC34
thumb_func_start sub_0805E0A8
sub_0805E0A8: @ 0x0805E0A8
push {lr}
ldr r2, _0805E0BC @ =gUnk_08108DE0
ldrb r1, [r0, #0xc]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805E0BC: .4byte gUnk_08108DE0
thumb_func_start sub_0805E0C0
sub_0805E0C0: @ 0x0805E0C0
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0
movs r1, #1
strb r1, [r5, #0xc]
strb r0, [r5, #0xe]
ldrb r0, [r5, #0xa]
bl sub_0804B128
adds r4, r0, #0
cmp r4, #0
bne _0805E0EC
bl sub_0805E780
b _0805E0EC
_0805E0DE:
adds r0, r4, #0
adds r4, #0x10
bl CreateEntity
str r5, [r0, #0x50]
movs r1, #0xff
strb r1, [r0, #0xe]
_0805E0EC:
ldrb r0, [r4]
cmp r0, #0xff
bne _0805E0DE
pop {r4, r5, pc}
thumb_func_start sub_0805E0F4
sub_0805E0F4: @ 0x0805E0F4
movs r1, #0
strb r1, [r0, #0xe]
bx lr
.align 2, 0
thumb_func_start sub_0805E0FC
sub_0805E0FC: @ 0x0805E0FC
push {r4, lr}
adds r4, r0, #0
ldr r1, _0805E134 @ =gUnk_08108E28
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, _0805E138 @ =gUnk_03000BF0
adds r1, r4, #0
adds r1, #0x20
ldrb r0, [r0, #5]
ldrb r1, [r1]
cmp r0, r1
bne _0805E12A
ldr r0, _0805E13C @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0805E130
_0805E12A:
adds r0, r4, #0
bl sub_0805E1D8
_0805E130:
pop {r4, pc}
.align 2, 0
_0805E134: .4byte gUnk_08108E28
_0805E138: .4byte gUnk_03000BF0
_0805E13C: .4byte gUnk_02000050
thumb_func_start sub_0805E140
sub_0805E140: @ 0x0805E140
push {r4, lr}
ldrb r2, [r0, #0x10]
movs r1, #0x20
orrs r1, r2
strb r1, [r0, #0x10]
movs r1, #1
strb r1, [r0, #0xc]
ldr r1, _0805E180 @ =gUnk_03000BF0
ldrb r2, [r1, #5]
adds r1, r0, #0
adds r1, #0x20
strb r2, [r1]
movs r1, #0x78
strb r1, [r0, #0xe]
movs r1, #0x3c
strb r1, [r0, #0xf]
movs r1, #7
bl sub_0805E3A0
ldr r1, _0805E184 @ =gUnk_08108DE8
ldr r0, _0805E188 @ =gUnk_02033A90
ldrb r0, [r0, #1]
lsls r0, r0, #1
adds r0, r0, r1
ldrh r4, [r0]
bl sub_08052660
adds r1, r0, #0
adds r0, r4, #0
bl sub_0805E1F8
pop {r4, pc}
.align 2, 0
_0805E180: .4byte gUnk_03000BF0
_0805E184: .4byte gUnk_08108DE8
_0805E188: .4byte gUnk_02033A90
thumb_func_start sub_0805E18C
sub_0805E18C: @ 0x0805E18C
push {r4, lr}
adds r4, r0, #0
ldr r0, _0805E1D0 @ =gUnk_03000FD0
ldrb r0, [r0]
cmp r0, #0
bne _0805E1CC
ldrb r0, [r4, #0xb]
cmp r0, #0
beq _0805E1BA
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #0
bne _0805E1BA
strb r0, [r4, #0xb]
ldr r0, _0805E1D4 @ =gUnk_03003F80
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0805E5B4
_0805E1BA:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805E1CC
adds r0, r4, #0
bl sub_0805E1D8
_0805E1CC:
pop {r4, pc}
.align 2, 0
_0805E1D0: .4byte gUnk_03000FD0
_0805E1D4: .4byte gUnk_03003F80
thumb_func_start sub_0805E1D8
sub_0805E1D8: @ 0x0805E1D8
push {lr}
ldr r0, _0805E1F0 @ =gUnk_02034DF0
movs r1, #0x80
bl sub_0801D630
ldr r1, _0805E1F4 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
bl sub_0805E780
pop {pc}
.align 2, 0
_0805E1F0: .4byte gUnk_02034DF0
_0805E1F4: .4byte gUnk_03000F50
thumb_func_start sub_0805E1F8
sub_0805E1F8: @ 0x0805E1F8
push {r4, r5, lr}
sub sp, #0xc
adds r4, r0, #0
adds r5, r1, #0
ldr r0, _0805E234 @ =gUnk_02034DF0
movs r1, #0x80
bl sub_0801D630
ldr r0, _0805E238 @ =gUnk_08108E60
mov r1, sp
movs r2, #9
bl sub_0801D66C
mov r1, sp
lsrs r0, r4, #8
strb r0, [r1, #4]
mov r0, sp
strb r4, [r0, #5]
ldr r1, _0805E23C @ =gUnk_08108E48
cmp r5, #0
bne _0805E224
ldr r1, _0805E240 @ =gUnk_08108E30
_0805E224:
mov r0, sp
bl sub_0805F46C
ldr r1, _0805E244 @ =gUnk_03000F50
movs r0, #1
strh r0, [r1, #0xe]
add sp, #0xc
pop {r4, r5, pc}
.align 2, 0
_0805E234: .4byte gUnk_02034DF0
_0805E238: .4byte gUnk_08108E60
_0805E23C: .4byte gUnk_08108E48
_0805E240: .4byte gUnk_08108E30
_0805E244: .4byte gUnk_03000F50
thumb_func_start sub_0805E248
sub_0805E248: @ 0x0805E248
push {r4, r5, lr}
ldr r0, _0805E2C8 @ =gUnk_03004030
ldr r0, [r0]
ldrh r5, [r0, #6]
ldr r0, _0805E2CC @ =gUnk_03000BF0
ldrb r0, [r0, #4]
cmp r0, #0xa
beq _0805E25C
cmp r0, #0x16
bne _0805E2E8
_0805E25C:
movs r0, #0x9f
lsls r0, r0, #2
adds r4, r5, #0
subs r4, #0x41
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E2D0 @ =0x00000283
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E2D4 @ =0x0000027D
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
movs r0, #0xa1
lsls r0, r0, #2
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E2D8 @ =0x0000027E
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E2DC @ =0x00000285
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E2E0 @ =0x0000027F
subs r1, r5, #1
movs r2, #1
bl sub_0807B314
movs r0, #0xa0
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E2E4 @ =0x00000282
adds r1, r5, #1
movs r2, #1
bl sub_0807B314
b _0805E350
.align 2, 0
_0805E2C8: .4byte gUnk_03004030
_0805E2CC: .4byte gUnk_03000BF0
_0805E2D0: .4byte 0x00000283
_0805E2D4: .4byte 0x0000027D
_0805E2D8: .4byte 0x0000027E
_0805E2DC: .4byte 0x00000285
_0805E2E0: .4byte 0x0000027F
_0805E2E4: .4byte 0x00000282
_0805E2E8:
movs r0, #0x9b
lsls r0, r0, #2
adds r4, r5, #0
subs r4, #0x41
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E358 @ =0x00000273
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E35C @ =0x0000026D
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
movs r0, #0x9d
lsls r0, r0, #2
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E360 @ =0x0000026E
adds r4, #1
adds r1, r4, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E364 @ =0x00000275
adds r1, r4, #0
movs r2, #2
bl sub_0807B314
ldr r0, _0805E368 @ =0x0000026F
subs r1, r5, #1
movs r2, #1
bl sub_0807B314
movs r0, #0x9c
lsls r0, r0, #2
adds r1, r5, #0
movs r2, #1
bl sub_0807B314
ldr r0, _0805E36C @ =0x00000272
adds r1, r5, #1
movs r2, #1
bl sub_0807B314
_0805E350:
ldr r1, _0805E370 @ =gUnk_02000070
movs r0, #0
strb r0, [r1]
pop {r4, r5, pc}
.align 2, 0
_0805E358: .4byte 0x00000273
_0805E35C: .4byte 0x0000026D
_0805E360: .4byte 0x0000026E
_0805E364: .4byte 0x00000275
_0805E368: .4byte 0x0000026F
_0805E36C: .4byte 0x00000272
_0805E370: .4byte gUnk_02000070
thumb_func_start sub_0805E374
sub_0805E374: @ 0x0805E374
push {lr}
adds r2, r0, #0
ldr r0, _0805E394 @ =gUnk_030010A0
adds r0, #0x2c
ldrb r0, [r0]
ldr r1, _0805E398 @ =gUnk_081091F8
cmp r0, #2
beq _0805E386
ldr r1, _0805E39C @ =gUnk_081091EE
_0805E386:
ldrb r0, [r2, #8]
adds r0, r1, r0
ldrb r1, [r0]
adds r0, r2, #0
bl sub_0805E3A0
pop {pc}
.align 2, 0
_0805E394: .4byte gUnk_030010A0
_0805E398: .4byte gUnk_081091F8
_0805E39C: .4byte gUnk_081091EE
thumb_func_start sub_0805E3A0
sub_0805E3A0: @ 0x0805E3A0
movs r3, #0xf
adds r2, r1, #0
ands r2, r3
lsls r1, r1, #4
orrs r1, r2
strb r1, [r0, #0x11]
bx lr
.align 2, 0
thumb_func_start sub_0805E3B0
sub_0805E3B0: @ 0x0805E3B0
push {lr}
adds r3, r0, #0
ldrb r1, [r3, #0x10]
movs r0, #0x10
ands r0, r1
cmp r0, #0
beq _0805E3C2
movs r0, #1
b _0805E404
_0805E3C2:
ldrb r0, [r3, #0xc]
cmp r0, #0
bne _0805E3CC
movs r0, #0
b _0805E404
_0805E3CC:
ldr r1, _0805E3DC @ =gUnk_03003DC0
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r2
bls _0805E3E0
adds r2, r0, #0
b _0805E3E2
.align 2, 0
_0805E3DC: .4byte gUnk_03003DC0
_0805E3E0:
ldrb r2, [r1, #1]
_0805E3E2:
ldr r0, _0805E408 @ =gUnk_02000050
ldrb r1, [r0]
movs r0, #0x7f
ands r0, r1
cmp r0, #0
beq _0805E3F4
cmp r2, #2
bhs _0805E3F4
movs r2, #2
_0805E3F4:
movs r1, #0
ldrb r0, [r3, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x1c
cmp r2, r0
bls _0805E402
movs r1, #1
_0805E402:
adds r0, r1, #0
_0805E404:
pop {pc}
.align 2, 0
_0805E408: .4byte gUnk_02000050
thumb_func_start sub_0805E40C
sub_0805E40C: @ 0x0805E40C
push {lr}
ldr r1, _0805E424 @ =gUnk_03003DC0
ldrb r0, [r1]
ldrb r2, [r1, #1]
cmp r0, r2
bhi _0805E41A
ldrb r0, [r1, #1]
_0805E41A:
cmp r0, #0
beq _0805E420
movs r0, #1
_0805E420:
pop {pc}
.align 2, 0
_0805E424: .4byte gUnk_03003DC0
thumb_func_start sub_0805E428
sub_0805E428: @ 0x0805E428
push {lr}
bl sub_0805E524
ldr r2, _0805E440 @ =gUnk_03003DC0
ldrb r3, [r2, #2]
adds r1, r3, #0
cmp r1, #0
beq _0805E444
movs r0, #0
strb r3, [r2, #1]
strb r0, [r2, #2]
b _0805E44E
.align 2, 0
_0805E440: .4byte gUnk_03003DC0
_0805E444:
ldrb r0, [r2, #3]
cmp r0, #0
beq _0805E44E
strb r1, [r2, #3]
strb r1, [r2, #1]
_0805E44E:
pop {pc}
thumb_func_start sub_0805E450
sub_0805E450: @ 0x0805E450
push {lr}
ldr r1, _0805E464 @ =gUnk_03003DC0
ldrb r2, [r1, #2]
cmp r0, r2
blo _0805E460
ldrb r2, [r1, #1]
cmp r0, r2
bhs _0805E468
_0805E460:
movs r0, #0
b _0805E46C
.align 2, 0
_0805E464: .4byte gUnk_03003DC0
_0805E468:
strb r0, [r1, #2]
movs r0, #1
_0805E46C:
pop {pc}
.align 2, 0
thumb_func_start sub_0805E470
sub_0805E470: @ 0x0805E470
ldr r1, _0805E478 @ =gUnk_03003DC0
movs r0, #1
strb r0, [r1, #3]
bx lr
.align 2, 0
_0805E478: .4byte gUnk_03003DC0
thumb_func_start sub_0805E47C
sub_0805E47C: @ 0x0805E47C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #2
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #2
bl sub_0805E450
cmp r0, #0
beq _0805E49A
ldr r0, _0805E49C @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E49A:
pop {r4, pc}
.align 2, 0
_0805E49C: .4byte gUnk_03003DC0
thumb_func_start sub_0805E4A0
sub_0805E4A0: @ 0x0805E4A0
push {r4, lr}
adds r4, r0, #0
movs r0, #1
bl sub_08078A90
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
movs r0, #1
bl sub_0805E450
cmp r0, #0
beq _0805E4C4
ldr r0, _0805E4C8 @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E4C4:
pop {r4, pc}
.align 2, 0
_0805E4C8: .4byte gUnk_03003DC0
thumb_func_start sub_0805E4CC
sub_0805E4CC: @ 0x0805E4CC
push {r4, lr}
adds r4, r0, #0
movs r0, #0
bl sub_08078A90
adds r0, r4, #0
bl sub_0805E584
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805E4E0
sub_0805E4E0: @ 0x0805E4E0
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
cmp r4, #0
beq _0805E4F6
ldrb r0, [r4, #0x11]
lsls r0, r0, #0x1c
lsrs r0, r0, #0x18
movs r1, #3
orrs r0, r1
strb r0, [r4, #0x11]
_0805E4F6:
movs r0, #1
bl sub_0805E450
cmp r0, #0
beq _0805E504
ldr r0, _0805E50C @ =gUnk_03003DC0
str r4, [r0, #4]
_0805E504:
adds r0, r5, #0
bl sub_0805E510
pop {r4, r5, pc}
.align 2, 0
_0805E50C: .4byte gUnk_03003DC0
thumb_func_start sub_0805E510
sub_0805E510: @ 0x0805E510
push {lr}
adds r1, r0, #0
ldr r2, _0805E520 @ =gUnk_03003DC0
ldrh r0, [r2, #8]
cmp r0, r1
bhs _0805E51E
strh r1, [r2, #8]
_0805E51E:
pop {pc}
.align 2, 0
_0805E520: .4byte gUnk_03003DC0
thumb_func_start sub_0805E524
sub_0805E524: @ 0x0805E524
push {lr}
ldr r1, _0805E540 @ =gUnk_03003DC0
ldrh r0, [r1, #8]
cmp r0, #0
beq _0805E53C
subs r0, #1
strh r0, [r1, #8]
lsls r0, r0, #0x10
cmp r0, #0
bne _0805E53C
bl sub_0805E470
_0805E53C:
pop {pc}
.align 2, 0
_0805E540: .4byte gUnk_03003DC0
thumb_func_start sub_0805E544
sub_0805E544: @ 0x0805E544
ldr r1, _0805E55C @ =gUnk_03003DC0
movs r3, #6
movs r0, #6
strb r0, [r1]
ldr r2, _0805E560 @ =gLinkEntity
ldrb r1, [r2, #0x11]
subs r0, #0x16
ands r0, r1
orrs r0, r3
strb r0, [r2, #0x11]
bx lr
.align 2, 0
_0805E55C: .4byte gUnk_03003DC0
_0805E560: .4byte gLinkEntity
thumb_func_start sub_0805E564
sub_0805E564: @ 0x0805E564
ldr r1, _0805E57C @ =gUnk_03003DC0
movs r0, #0
strb r0, [r1]
ldr r2, _0805E580 @ =gLinkEntity
ldrb r1, [r2, #0x11]
subs r0, #0x10
ands r0, r1
movs r1, #1
orrs r0, r1
strb r0, [r2, #0x11]
bx lr
.align 2, 0
_0805E57C: .4byte gUnk_03003DC0
_0805E580: .4byte gLinkEntity
thumb_func_start sub_0805E584
sub_0805E584: @ 0x0805E584
push {lr}
ldrb r2, [r0, #0x11]
lsrs r3, r2, #4
movs r1, #0x10
rsbs r1, r1, #0
ands r1, r2
orrs r1, r3
strb r1, [r0, #0x11]
bl sub_0805E470
pop {pc}
.align 2, 0
thumb_func_start sub_0805E59C
sub_0805E59C: @ 0x0805E59C
ldr r1, _0805E5A4 @ =gUnk_03003DC0
movs r0, #6
strb r0, [r1]
bx lr
.align 2, 0
_0805E5A4: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5A8
sub_0805E5A8: @ 0x0805E5A8
ldr r1, _0805E5B0 @ =gUnk_03003DC0
movs r0, #7
strb r0, [r1]
bx lr
.align 2, 0
_0805E5B0: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5B4
sub_0805E5B4: @ 0x0805E5B4
ldr r1, _0805E5BC @ =gUnk_03003DC0
movs r0, #0
strb r0, [r1]
bx lr
.align 2, 0
_0805E5BC: .4byte gUnk_03003DC0
thumb_func_start sub_0805E5C0
sub_0805E5C0: @ 0x0805E5C0
push {lr}
ldr r0, _0805E5F0 @ =gUnk_02034350
ldrb r1, [r0, #4]
movs r2, #0
strb r1, [r0, #5]
strb r2, [r0, #4]
bl sub_0805ED30
bl sub_0805E428
bl sub_080175E8
bl sub_0806F0A4
ldr r1, _0805E5F4 @ =gUnk_03005F40
movs r0, #0
bl _call_via_r1
bl sub_0805E84C
bl sub_0805EE88
pop {pc}
.align 2, 0
_0805E5F0: .4byte gUnk_02034350
_0805E5F4: .4byte gUnk_03005F40
thumb_func_start sub_0805E5F8
sub_0805E5F8: @ 0x0805E5F8
push {lr}
ldr r1, _0805E608 @ =gUnk_03005F40
movs r0, #1
bl _call_via_r1
bl sub_0805E84C
pop {pc}
.align 2, 0
_0805E608: .4byte gUnk_03005F40
thumb_func_start sub_0805E60C
sub_0805E60C: @ 0x0805E60C
push {lr}
bl sub_0805E89C
ldr r0, _0805E654 @ =gUnk_03003DC0
movs r1, #0xc
bl sub_0801D630
ldr r0, _0805E658 @ =gLinkEntity
movs r1, #0xaa
lsls r1, r1, #6
bl sub_0801D630
ldr r0, _0805E65C @ =gUnk_02033290
movs r1, #0x80
lsls r1, r1, #4
bl sub_0801D630
bl sub_0805E98C
ldr r0, _0805E660 @ =gUnk_03003DBC
movs r1, #0
strb r1, [r0]
ldr r0, _0805E664 @ =gUnk_020354B4
strb r1, [r0]
ldr r1, _0805E668 @ =gUnk_03000000
ldr r2, _0805E66C @ =0x00000427
adds r0, r1, r2
movs r2, #1
strb r2, [r0]
ldr r3, _0805E670 @ =0x00000426
adds r0, r1, r3
strb r2, [r0]
ldr r0, _0805E674 @ =0x0000042E
adds r1, r1, r0
strb r2, [r1]
pop {pc}
.align 2, 0
_0805E654: .4byte gUnk_03003DC0
_0805E658: .4byte gLinkEntity
_0805E65C: .4byte gUnk_02033290
_0805E660: .4byte gUnk_03003DBC
_0805E664: .4byte gUnk_020354B4
_0805E668: .4byte gUnk_03000000
_0805E66C: .4byte 0x00000427
_0805E670: .4byte 0x00000426
_0805E674: .4byte 0x0000042E