pmd-red/asm/code_803D110.s
2020-09-25 00:10:54 -05:00

23174 lines
350 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_803D110
sub_803D110:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x6C
adds r6, r0, 0
mov r9, r1
adds r5, r2, 0
add r7, sp, 0x48
adds r2, r7, 0
movs r1, 0
mov r0, sp
adds r0, 0x69
_0803D12A:
strb r1, [r0]
subs r0, 0x1
cmp r0, r2
bge _0803D12A
movs r4, 0
cmp r4, r5
bge _0803D158
_0803D138:
ldrb r0, [r6]
bl sub_803D0F0
add r1, sp, 0x10
adds r1, r4
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _0803D150
movs r0, 0
b _0803D19A
_0803D150:
adds r6, 0x1
adds r4, 0x1
cmp r4, r5
blt _0803D138
_0803D158:
lsls r0, r5, 2
adds r0, r5
adds r2, r0, 0x5
cmp r2, 0
bge _0803D164
adds r2, 0x7
_0803D164:
asrs r2, 3
mov r8, r2
mov r0, sp
adds r1, r7, 0
bl sub_809486C
movs r4, 0
cmp r4, r5
bge _0803D188
add r6, sp, 0x10
_0803D178:
adds r1, r6, r4
mov r0, sp
movs r2, 0x5
bl sub_809488C
adds r4, 0x1
cmp r4, r5
blt _0803D178
_0803D188:
mov r0, sp
bl nullsub_102
mov r0, r9
adds r1, r7, 0
mov r2, r8
bl MemoryCopy8
movs r0, 0x1
_0803D19A:
add sp, 0x6C
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803D110
thumb_func_start sub_803D1A8
sub_803D1A8:
push {r4-r7,lr}
sub sp, 0x48
adds r7, r0, 0
adds r5, r2, 0
lsls r0, r5, 2
adds r0, r5
adds r2, r0, 0x5
cmp r2, 0
bge _0803D1BC
adds r2, 0x7
_0803D1BC:
asrs r2, 3
mov r0, sp
bl sub_809485C
movs r4, 0
cmp r4, r5
bge _0803D1DC
add r6, sp, 0x10
_0803D1CC:
adds r1, r6, r4
mov r0, sp
movs r2, 0x5
bl sub_8094924
adds r4, 0x1
cmp r4, r5
blt _0803D1CC
_0803D1DC:
mov r0, sp
bl nullsub_102
movs r4, 0
cmp r4, r5
bge _0803D1FC
add r6, sp, 0x10
_0803D1EA:
adds r0, r6, r4
ldrb r0, [r0]
bl sub_803D100
strb r0, [r7]
adds r7, 0x1
adds r4, 0x1
cmp r4, r5
blt _0803D1EA
_0803D1FC:
add sp, 0x48
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_803D1A8
thumb_func_start sub_803D204
sub_803D204:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xA4
adds r2, r0, 0
mov r9, r1
movs r6, 0
add r4, sp, 0x5C
adds r0, r4, 0
adds r1, r2, 0
movs r2, 0x36
bl MemoryCopy8
movs r2, 0
mov r8, r4
add r5, sp, 0x24
ldr r4, _0803D2A8
mov r12, r4
mov r10, r5
_0803D22E:
movs r1, 0
mov r3, r12
adds r0, r2, r3
adds r3, r2, 0x1
ldrb r0, [r0]
cmp r1, r0
beq _0803D24A
adds r0, r2, r4
_0803D23E:
adds r1, 0x1
cmp r1, 0x35
bgt _0803D24A
ldrb r7, [r0]
cmp r1, r7
bne _0803D23E
_0803D24A:
mov r7, r10
adds r0, r7, r2
add r1, r8
ldrb r1, [r1]
strb r1, [r0]
adds r2, r3, 0
cmp r2, 0x35
ble _0803D22E
adds r0, r5, 0
mov r1, sp
movs r2, 0x36
bl sub_803D110
lsls r0, 24
cmp r0, 0
beq _0803D2AC
movs r2, 0x1
_0803D26C:
mov r1, sp
adds r0, r1, r2
ldrb r0, [r0]
adds r0, r2
adds r0, r6, r0
lsls r0, 24
lsrs r6, r0, 24
adds r2, 0x1
cmp r2, 0x21
ble _0803D26C
mov r0, sp
ldrb r0, [r0]
cmp r0, r6
bne _0803D2AC
add r4, sp, 0x94
adds r1, 0x1
adds r0, r4, 0
movs r2, 0x21
bl sub_809485C
adds r0, r4, 0
mov r1, r9
bl sub_8095774
adds r0, r4, 0
bl nullsub_102
movs r0, 0x1
b _0803D2AE
.align 2, 0
_0803D2A8: .4byte gUnknown_80F43F0
_0803D2AC:
movs r0, 0
_0803D2AE:
add sp, 0xA4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803D204
thumb_func_start sub_803D2C0
sub_803D2C0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xA4
mov r9, r0
adds r6, r1, 0
movs r5, 0
add r4, sp, 0x94
mov r1, sp
adds r1, 0x1
add r7, sp, 0x24
add r0, sp, 0x5C
mov r8, r0
movs r2, 0
mov r0, sp
adds r0, 0x21
_0803D2E2:
strb r2, [r0]
subs r0, 0x1
cmp r0, sp
bge _0803D2E2
adds r0, r4, 0
movs r2, 0x21
bl sub_809486C
adds r0, r4, 0
adds r1, r6, 0
bl sub_8095824
adds r0, r4, 0
bl nullsub_102
movs r2, 0x1
_0803D302:
mov r1, sp
adds r0, r1, r2
ldrb r0, [r0]
adds r0, r2
adds r0, r5, r0
lsls r0, 24
lsrs r5, r0, 24
adds r2, 0x1
cmp r2, 0x21
ble _0803D302
mov r0, sp
strb r5, [r0]
adds r0, r7, 0
movs r2, 0x36
bl sub_803D1A8
movs r2, 0
mov r4, r8
ldr r5, _0803D354
adds r3, r7, 0
_0803D32A:
adds r0, r2, r5
ldrb r1, [r0]
adds r1, r4, r1
adds r0, r3, r2
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
cmp r2, 0x35
ble _0803D32A
mov r0, r9
mov r1, r8
movs r2, 0x36
bl MemoryCopy8
add sp, 0xA4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803D354: .4byte gUnknown_80F43F0
thumb_func_end sub_803D2C0
thumb_func_start sub_803D358
sub_803D358:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x50
adds r2, r0, 0
mov r9, r1
movs r6, 0
add r4, sp, 0x28
adds r0, r4, 0
adds r1, r2, 0
movs r2, 0x18
bl MemoryCopy8
movs r2, 0
mov r8, r4
add r5, sp, 0x10
ldr r4, _0803D3FC
mov r12, r4
mov r10, r5
_0803D382:
movs r1, 0
mov r3, r12
adds r0, r2, r3
adds r3, r2, 0x1
ldrb r0, [r0]
cmp r1, r0
beq _0803D39E
adds r0, r2, r4
_0803D392:
adds r1, 0x1
cmp r1, 0x17
bgt _0803D39E
ldrb r7, [r0]
cmp r1, r7
bne _0803D392
_0803D39E:
mov r7, r10
adds r0, r7, r2
add r1, r8
ldrb r1, [r1]
strb r1, [r0]
adds r2, r3, 0
cmp r2, 0x17
ble _0803D382
adds r0, r5, 0
mov r1, sp
movs r2, 0x18
bl sub_803D110
lsls r0, 24
cmp r0, 0
beq _0803D400
movs r2, 0x1
_0803D3C0:
mov r1, sp
adds r0, r1, r2
ldrb r0, [r0]
adds r0, r2
adds r0, r6, r0
lsls r0, 24
lsrs r6, r0, 24
adds r2, 0x1
cmp r2, 0xE
ble _0803D3C0
mov r0, sp
ldrb r0, [r0]
cmp r0, r6
bne _0803D400
add r4, sp, 0x40
adds r1, 0x1
adds r0, r4, 0
movs r2, 0xC
bl sub_809485C
adds r0, r4, 0
mov r1, r9
bl sub_80971EC
adds r0, r4, 0
bl nullsub_102
movs r0, 0x1
b _0803D402
.align 2, 0
_0803D3FC: .4byte gUnknown_80F4426
_0803D400:
movs r0, 0
_0803D402:
add sp, 0x50
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803D358
thumb_func_start sub_803D414
sub_803D414:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x50
mov r9, r0
adds r6, r1, 0
movs r5, 0
add r4, sp, 0x40
mov r1, sp
adds r1, 0x1
add r7, sp, 0x10
add r0, sp, 0x28
mov r8, r0
movs r2, 0
mov r0, sp
adds r0, 0xE
_0803D436:
strb r2, [r0]
subs r0, 0x1
cmp r0, sp
bge _0803D436
adds r0, r4, 0
movs r2, 0xC
bl sub_809486C
adds r0, r4, 0
adds r1, r6, 0
bl sub_8097270
adds r0, r4, 0
bl nullsub_102
movs r2, 0x1
_0803D456:
mov r1, sp
adds r0, r1, r2
ldrb r0, [r0]
adds r0, r2
adds r0, r5, r0
lsls r0, 24
lsrs r5, r0, 24
adds r2, 0x1
cmp r2, 0xE
ble _0803D456
mov r0, sp
strb r5, [r0]
adds r0, r7, 0
movs r2, 0x18
bl sub_803D1A8
movs r2, 0
mov r4, r8
ldr r5, _0803D4A8
adds r3, r7, 0
_0803D47E:
adds r0, r2, r5
ldrb r1, [r0]
adds r1, r4, r1
adds r0, r3, r2
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
cmp r2, 0x17
ble _0803D47E
mov r0, r9
mov r1, r8
movs r2, 0x18
bl MemoryCopy8
add sp, 0x50
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803D4A8: .4byte gUnknown_80F4426
thumb_func_end sub_803D414
thumb_func_start sub_803D4AC
sub_803D4AC:
ldr r2, _0803D4C4
ldr r0, [r2]
ldr r1, _0803D4C8
adds r0, r1
movs r1, 0x63
strb r1, [r0]
ldr r0, [r2]
ldr r1, _0803D4CC
adds r0, r1
movs r1, 0xFF
strb r1, [r0]
bx lr
.align 2, 0
_0803D4C4: .4byte gUnknown_203B418
_0803D4C8: .4byte 0x0001c570
_0803D4CC: .4byte 0x0001c571
thumb_func_end sub_803D4AC
thumb_func_start sub_803D4D0
sub_803D4D0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1FC
ldr r6, _0803D654
ldr r1, [r6]
movs r4, 0xC9
lsls r4, 3
adds r0, r1, r4
ldr r2, _0803D658
adds r1, r2
bl sub_80901D8
ldr r0, [r6]
ldr r3, _0803D65C
adds r2, r0, r3
adds r1, r0, r4
ldrh r0, [r2]
ldrh r4, [r1]
cmp r0, r4
bne _0803D500
b _0803D6E0
_0803D500:
ldr r0, [r1]
str r0, [r2]
ldr r0, _0803D660
ldr r1, _0803D664
bl OpenFileAndGetFileDataPtr
mov r9, r0
ldr r3, [r0, 0x4]
ldr r2, [r6]
ldr r7, _0803D65C
adds r0, r2, r7
ldrb r1, [r0]
ldr r0, [r3]
lsls r1, 2
adds r1, r0
ldr r3, _0803D668
adds r0, r2, r3
ldrb r0, [r0]
lsls r0, 4
ldr r1, [r1]
adds r1, r0
mov r8, r1
ldr r4, _0803D658
adds r2, r4
ldrb r0, [r2]
bl sub_8090298
ldr r1, [r6]
ldr r7, _0803D66C
adds r1, r7
strb r0, [r1]
ldr r0, [r6]
adds r0, r4
ldrb r0, [r0]
bl sub_80902C8
ldr r1, [r6]
strh r0, [r1, 0x14]
mov r2, r9
ldr r0, [r2, 0x4]
mov r3, r8
movs r4, 0
ldrsh r2, [r3, r4]
ldr r3, [r0, 0x4]
lsls r0, r2, 3
subs r0, r2
lsls r0, 2
ldr r7, _0803D670
adds r1, r7
adds r0, r3
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldr r0, [r0]
str r0, [r1]
movs r5, 0
mov r10, r6
ldr r4, _0803D674
_0803D576:
mov r6, r10
ldr r2, [r6]
lsls r3, r5, 1
adds r2, r4
adds r2, r3
mov r7, r9
ldr r1, [r7, 0x4]
mov r6, r8
movs r7, 0x4
ldrsh r0, [r6, r7]
ldr r1, [r1, 0x10]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
adds r3, r0
ldrh r0, [r3]
strh r0, [r2]
adds r5, 0x1
cmp r5, 0x13
ble _0803D576
movs r5, 0
adds r6, 0x6
str r6, [sp, 0x1F8]
ldr r6, _0803D678
mov r10, r6
_0803D5A8:
ldr r1, _0803D654
ldr r0, [r1]
lsls r3, r5, 3
mov r2, r10
adds r4, r0, r2
adds r4, r3
mov r12, r4
mov r4, r9
ldr r2, [r4, 0x4]
mov r7, r8
movs r4, 0x2
ldrsh r1, [r7, r4]
ldr r2, [r2, 0xC]
lsls r1, 2
adds r1, r2
ldr r1, [r1]
adds r3, r1
ldr r1, [r3]
ldr r2, [r3, 0x4]
mov r7, r12
str r1, [r7]
str r2, [r7, 0x4]
adds r0, r6
bl sub_808E9B8
lsls r0, 16
cmp r0, 0
beq _0803D5E8
adds r6, 0x8
adds r5, 0x1
cmp r5, 0x1E
ble _0803D5A8
_0803D5E8:
cmp r5, 0x1F
bgt _0803D606
ldr r6, _0803D654
lsls r0, r5, 3
ldr r1, _0803D678
adds r4, r0, r1
_0803D5F4:
ldr r0, [r6]
adds r0, r4
movs r1, 0
bl sub_808E9C4
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x1F
ble _0803D5F4
_0803D606:
movs r5, 0
ldr r2, _0803D67C
mov r10, r2
_0803D60C:
mov r3, r9
ldr r1, [r3, 0x4]
lsls r0, r5, 1
ldr r4, [sp, 0x1F8]
adds r0, r4, r0
movs r6, 0
ldrsh r0, [r0, r6]
ldr r1, [r1, 0x8]
lsls r0, 2
adds r0, r1
movs r4, 0
adds r7, r5, 0x1
mov r8, r7
lsls r1, r5, 6
mov r12, r1
ldr r3, [r0]
mov r2, sp
_0803D62E:
ldrh r0, [r3]
cmp r0, r10
bls _0803D684
ldrh r0, [r3]
ldr r6, _0803D680
adds r1, r0, r6
cmp r1, 0
beq _0803D68A
movs r6, 0
lsls r0, r4, 1
add r0, sp
_0803D644:
strh r6, [r0]
adds r0, 0x2
adds r2, 0x2
adds r4, 0x1
subs r1, 0x1
cmp r1, 0
bne _0803D644
b _0803D68A
.align 2, 0
_0803D654: .4byte gUnknown_203B418
_0803D658: .4byte 0x00000644
_0803D65C: .4byte 0x0001c570
_0803D660: .4byte gUnknown_80F4D8C
_0803D664: .4byte gUnknown_83B0000
_0803D668: .4byte 0x0001c571
_0803D66C: .4byte 0x0001cec8
_0803D670: .4byte 0x0001c574
_0803D674: .4byte 0x0001cd70
_0803D678: .4byte 0x0001cd98
_0803D67C: .4byte 0x0000752f
_0803D680: .4byte 0xffff8ad0
_0803D684:
strh r0, [r2]
adds r2, 0x2
adds r4, 0x1
_0803D68A:
adds r3, 0x2
cmp r4, 0xFB
ble _0803D62E
ldr r7, _0803D6F0
mov r1, r12
subs r0, r1, r5
movs r4, 0xB
mov r3, sp
lsls r2, r0, 3
ldr r6, _0803D6F4
_0803D69E:
ldr r0, [r7]
adds r0, r6
adds r0, r2
ldrh r1, [r3]
strh r1, [r0]
adds r3, 0x2
adds r2, 0x2
subs r4, 0x1
cmp r4, 0
bge _0803D69E
ldr r6, _0803D6F0
mov r2, r12
subs r0, r2, r5
lsls r3, r0, 3
add r2, sp, 0x18
ldr r5, _0803D6F8
movs r4, 0xEF
_0803D6C0:
ldr r0, [r6]
adds r0, r5
adds r0, r3
ldrh r1, [r2]
strh r1, [r0]
adds r2, 0x2
adds r3, 0x2
subs r4, 0x1
cmp r4, 0
bge _0803D6C0
mov r5, r8
cmp r5, 0x3
ble _0803D60C
mov r0, r9
bl CloseFile
_0803D6E0:
add sp, 0x1FC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803D6F0: .4byte gUnknown_203B418
_0803D6F4: .4byte 0x0001c590
_0803D6F8: .4byte 0x0001c5a8
thumb_func_end sub_803D4D0
thumb_func_start sub_803D6FC
sub_803D6FC:
push {r4,lr}
ldr r0, _0803D720
bl sub_8084100
adds r3, r0, 0
movs r2, 0
ldr r0, _0803D724
ldr r0, [r0]
ldr r4, _0803D728
adds r1, r0, r4
_0803D710:
ldrh r0, [r1]
cmp r0, 0
beq _0803D72C
cmp r0, r3
blt _0803D72C
lsls r0, r2, 24
lsrs r0, 24
b _0803D736
.align 2, 0
_0803D720: .4byte 0x00002710
_0803D724: .4byte gUnknown_203B418
_0803D728: .4byte 0x0001cd70
_0803D72C:
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x13
ble _0803D710
movs r0, 0x10
_0803D736:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_803D6FC
thumb_func_start sub_803D73C
sub_803D73C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r4, r0, 0
ldr r0, _0803D784
bl sub_8084100
adds r7, r0, 0
movs r0, 0xC
mov r8, r0
movs r6, 0
ldr r0, _0803D788
ldr r2, [r0]
lsls r1, r4, 6
subs r0, r1, r4
adds r5, r1, 0
lsls r0, 3
ldr r1, _0803D78C
adds r2, r1
adds r1, r0, r2
_0803D766:
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0803D772
cmp r0, r7
bge _0803D790
_0803D772:
adds r1, 0x2
adds r6, 0x1
cmp r6, 0xB
ble _0803D766
_0803D77A:
mov r0, r8
cmp r0, 0xC
bne _0803D79C
b _0803D7EC
.align 2, 0
_0803D784: .4byte 0x00002710
_0803D788: .4byte gUnknown_203B418
_0803D78C: .4byte 0x0001c590
_0803D790:
lsls r0, r6, 24
lsrs r0, 24
mov r8, r0
b _0803D77A
_0803D798:
adds r0, r5, 0
b _0803D7EE
_0803D79C:
ldr r0, _0803D7FC
bl sub_8084100
adds r7, r0, 0
movs r6, 0
ldr r2, _0803D800
subs r0, r5, r4
ldr r1, _0803D804
lsls r4, r0, 3
_0803D7AE:
ldr r0, [r2]
adds r0, r1
adds r0, r4
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, 0
beq _0803D7E4
lsls r0, r6, 24
lsrs r5, r0, 24
adds r0, r5, 0
str r1, [sp]
str r2, [sp, 0x4]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
ldr r1, [sp]
ldr r2, [sp, 0x4]
cmp r0, r8
bne _0803D7E4
ldr r0, [r2]
adds r0, r1
adds r0, r4
movs r3, 0
ldrsh r0, [r0, r3]
cmp r0, r7
bge _0803D798
_0803D7E4:
adds r4, 0x2
adds r6, 0x1
cmp r6, 0xEF
ble _0803D7AE
_0803D7EC:
movs r0, 0x69
_0803D7EE:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803D7FC: .4byte 0x00002710
_0803D800: .4byte gUnknown_203B418
_0803D804: .4byte 0x0001c5a8
thumb_func_end sub_803D73C
thumb_func_start sub_803D808
sub_803D808:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r7, r1, 0
movs r6, 0
ldr r2, _0803D820
lsls r1, r7, 3
adds r1, r0
mov r8, r1
b _0803D840
.align 2, 0
_0803D820: .4byte 0x0001cd98
_0803D824:
ldr r0, [r5]
ldr r1, _0803D868
adds r0, r1
adds r0, r4
ldr r1, [r0, 0x4]
ldr r0, [r0]
mov r3, r8
adds r3, 0x8
mov r8, r3
subs r3, 0x8
stm r3!, {r0,r1}
adds r7, 0x1
adds r2, 0x8
adds r6, 0x1
_0803D840:
cmp r6, 0x1F
bgt _0803D85A
ldr r5, _0803D86C
lsls r4, r6, 3
ldr r0, [r5]
adds r0, r2
str r2, [sp]
bl sub_808E9B8
lsls r0, 16
ldr r2, [sp]
cmp r0, 0
bne _0803D824
_0803D85A:
adds r0, r7, 0
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803D868: .4byte 0x0001cd98
_0803D86C: .4byte gUnknown_203B418
thumb_func_end sub_803D808
thumb_func_start sub_803D870
sub_803D870:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r6, r1, 0
movs r5, 0
lsls r1, r6, 3
adds r1, r0
mov r9, r1
b _0803D8B8
_0803D884:
bl sub_808DACC
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0803D8B6
ldr r1, [r7]
adds r0, r1, r4
ldr r2, _0803D8E4
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0
beq _0803D8B6
mov r2, r8
adds r0, r1, r2
adds r0, r4
ldr r1, [r0, 0x4]
ldr r0, [r0]
mov r2, r9
adds r2, 0x8
mov r9, r2
subs r2, 0x8
stm r2!, {r0,r1}
adds r6, 0x1
_0803D8B6:
adds r5, 0x1
_0803D8B8:
cmp r5, 0x1F
bgt _0803D8D6
ldr r7, _0803D8E8
lsls r4, r5, 3
ldr r0, _0803D8EC
mov r8, r0
adds r1, r4, r0
ldr r0, [r7]
adds r0, r1
bl sub_808E9B8
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _0803D884
_0803D8D6:
adds r0, r6, 0
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803D8E4: .4byte 0x0001cd9a
_0803D8E8: .4byte gUnknown_203B418
_0803D8EC: .4byte 0x0001cd98
thumb_func_end sub_803D870
thumb_func_start sub_803D8F0
sub_803D8F0:
push {r4,lr}
ldr r4, _0803D920
ldr r0, [r4]
ldr r2, _0803D924
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
bne _0803D918
movs r0, 0x1
strb r0, [r1]
ldr r0, [r4]
ldr r1, _0803D928
adds r0, r1
movs r1, 0
bl sub_803D808
ldr r1, [r4]
ldr r2, _0803D92C
adds r1, r2
str r0, [r1]
_0803D918:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803D920: .4byte gUnknown_203B418
_0803D924: .4byte 0x000037ec
_0803D928: .4byte 0x0000343c
_0803D92C: .4byte 0x000037e4
thumb_func_end sub_803D8F0
thumb_func_start sub_803D930
sub_803D930:
push {r4-r7,lr}
lsls r0, 16
asrs r6, r0, 16
movs r5, 0
ldr r7, _0803D940
ldr r4, _0803D944
b _0803D954
.align 2, 0
_0803D940: .4byte gUnknown_203B418
_0803D944: .4byte 0x0001cd98
_0803D948:
cmp r0, r6
bne _0803D950
movs r0, 0x1
b _0803D96A
_0803D950:
adds r4, 0x8
adds r5, 0x1
_0803D954:
cmp r5, 0x1F
bgt _0803D968
ldr r0, [r7]
adds r0, r4
bl sub_808E9B8
lsls r0, 16
asrs r0, 16
cmp r0, 0
bne _0803D948
_0803D968:
movs r0, 0
_0803D96A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803D930
thumb_func_start sub_803D970
sub_803D970:
push {r4-r7,lr}
adds r5, r0, 0
ldr r0, _0803D9EC
bl sub_8084100
adds r6, r0, 0
movs r3, 0
ldr r1, _0803D9F0
ldr r0, [r1]
ldr r2, _0803D9F4
adds r0, r2
ldr r0, [r0]
cmp r3, r0
bge _0803D9BA
ldr r4, _0803D9F8
_0803D98E:
ldr r2, [r1]
lsls r1, r5, 1
lsls r0, r3, 3
adds r1, r0
ldr r7, _0803D9FC
adds r0, r2, r7
adds r1, r0, r1
movs r7, 0
ldrsh r0, [r1, r7]
cmp r0, 0
beq _0803D9A8
cmp r0, r6
bge _0803D9E0
_0803D9A8:
adds r4, 0x8
adds r3, 0x1
ldr r1, _0803D9F0
ldr r0, [r1]
ldr r2, _0803D9F4
adds r0, r2
ldr r0, [r0]
cmp r3, r0
blt _0803D98E
_0803D9BA:
movs r3, 0
ldr r0, _0803D9F0
ldr r1, [r0]
ldr r7, _0803D9F4
adds r1, r7
ldr r1, [r1]
adds r6, r0, 0
cmp r3, r1
bge _0803DA10
ldr r4, _0803D9F8
lsls r1, r5, 1
_0803D9D0:
ldr r2, [r6]
ldr r5, _0803D9FC
adds r0, r2, r5
adds r0, r1
movs r7, 0
ldrsh r0, [r0, r7]
cmp r0, 0
beq _0803DA00
_0803D9E0:
adds r0, r2, r4
bl sub_808E9B8
lsls r0, 16
asrs r0, 16
b _0803DA14
.align 2, 0
_0803D9EC: .4byte 0x00002710
_0803D9F0: .4byte gUnknown_203B418
_0803D9F4: .4byte 0x000037e4
_0803D9F8: .4byte 0x0000343c
_0803D9FC: .4byte 0x0000343e
_0803DA00:
adds r4, 0x8
adds r1, 0x8
adds r3, 0x1
ldr r5, _0803DA1C
adds r0, r2, r5
ldr r0, [r0]
cmp r3, r0
blt _0803D9D0
_0803DA10:
movs r0, 0xBE
lsls r0, 1
_0803DA14:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803DA1C: .4byte 0x000037e4
thumb_func_end sub_803D970
thumb_func_start sub_803DA20
sub_803DA20:
push {r4-r7,lr}
lsls r0, 16
asrs r7, r0, 16
movs r5, 0
ldr r1, _0803DA54
ldr r0, [r1]
ldr r2, _0803DA58
adds r0, r2
ldr r0, [r0]
cmp r5, r0
bge _0803DA70
adds r6, r1, 0
ldr r4, _0803DA5C
_0803DA3A:
ldr r0, [r6]
adds r0, r4
bl sub_808E9B8
lsls r0, 16
asrs r0, 16
cmp r0, r7
bne _0803DA60
ldr r0, [r6]
adds r0, r4
bl sub_808E9E4
b _0803DA72
.align 2, 0
_0803DA54: .4byte gUnknown_203B418
_0803DA58: .4byte 0x000037e4
_0803DA5C: .4byte 0x0000343c
_0803DA60:
adds r4, 0x8
adds r5, 0x1
ldr r0, [r6]
ldr r1, _0803DA78
adds r0, r1
ldr r0, [r0]
cmp r5, r0
blt _0803DA3A
_0803DA70:
movs r0, 0x1
_0803DA72:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803DA78: .4byte 0x000037e4
thumb_func_end sub_803DA20
thumb_func_start ShowDungeonNameBanner
ShowDungeonNameBanner:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x68
ldr r0, _0803DB84
ldr r4, _0803DB88
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r5, _0803DB8C
str r0, [r5]
ldr r0, _0803DB90
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _0803DB94
str r0, [r1]
ldr r1, _0803DB98
ldr r0, [r0, 0x4]
ldr r0, [r0, 0x4]
str r0, [r1]
movs r4, 0
_0803DAAA:
adds r0, r4, 0
adds r0, 0xE0
ldr r1, [r5]
lsls r2, r4, 2
ldr r1, [r1, 0x4]
adds r1, r2
bl SetBGPaletteBufferColorArray
adds r4, 0x1
cmp r4, 0xF
ble _0803DAAA
ldr r0, _0803DB9C
movs r1, 0xE0
lsls r1, 5
bl CpuClear
bl sub_80848EC
lsls r0, 24
cmp r0, 0
bne _0803DAD6
b _0803DBEA
_0803DAD6:
ldr r0, _0803DBA0
ldr r0, [r0]
ldr r1, _0803DBA4
adds r2, r0, r1
movs r3, 0x14
ldrsh r1, [r0, r3]
ldrb r2, [r2]
adds r2, r1
mov r8, r2
ldr r1, _0803DBA8
adds r0, r1
ldrb r0, [r0]
bl GetDungeonName2
mov r9, r0
movs r5, 0xA
movs r0, 0
_0803DAF8:
movs r4, 0
adds r6, r0, 0x4
adds r7, r0, 0x1
_0803DAFE:
adds r4, 0x1
ldr r3, _0803DBAC
adds r0, r3, 0
adds r2, r5, 0
orrs r2, r0
lsls r2, 16
lsrs r2, 16
adds r0, r4, 0
adds r1, r6, 0
movs r3, 0
bl sub_8008DC8
adds r5, 0x1
cmp r4, 0x1B
ble _0803DAFE
adds r0, r7, 0
cmp r0, 0x7
ble _0803DAF8
mov r0, r9
bl CalcStringWidth
movs r1, 0xE0
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
mov r0, r9
movs r2, 0
bl sub_803DC14
adds r7, r0, 0
ldr r0, _0803DBA0
ldr r0, [r0]
ldr r1, _0803DBA8
adds r0, r1
ldrb r0, [r0]
bl GetStairDirection
lsls r0, 24
ldr r6, _0803DBB0
cmp r0, 0
beq _0803DB54
ldr r6, _0803DBB4
_0803DB54:
mov r3, r8
cmp r3, 0x9
ble _0803DBBC
ldr r5, _0803DBB8
mov r0, r8
movs r1, 0xA
bl __divsi3
adds r4, r0, 0
adds r4, 0x30
mov r0, r8
movs r1, 0xA
bl __modsi3
adds r0, 0x30
str r0, [sp]
add r0, sp, 0x4
adds r1, r5, 0
adds r2, r6, 0
adds r3, r4, 0
bl sub_800D158
b _0803DBCA
.align 2, 0
_0803DB84: .4byte gUnknown_80F60F8
_0803DB88: .4byte gUnknown_83B0000
_0803DB8C: .4byte gDungeonNameBannerPalette
_0803DB90: .4byte gUnknown_80F6100
_0803DB94: .4byte gDungeonNameBannerFontFile
_0803DB98: .4byte gDungeonNameBannerFont
_0803DB9C: .4byte 0x06000140
_0803DBA0: .4byte gUnknown_203B418
_0803DBA4: .4byte 0x00000645
_0803DBA8: .4byte 0x00000644
_0803DBAC: .4byte 0xffffe000
_0803DBB0: .4byte gUnknown_80F610C
_0803DBB4: .4byte gUnknown_80F6108
_0803DBB8: .4byte gUnknown_80F6110
_0803DBBC:
ldr r1, _0803DC08
mov r3, r8
adds r3, 0x30
add r0, sp, 0x4
adds r2, r6, 0
bl sub_800D158
_0803DBCA:
add r0, sp, 0x4
bl CalcStringWidth
movs r1, 0xE0
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r1, 1
adds r2, r7, 0
adds r2, 0x20
add r0, sp, 0x4
bl sub_803DC14
ldr r1, _0803DC0C
movs r0, 0x1
strb r0, [r1]
_0803DBEA:
ldr r0, _0803DC10
ldr r0, [r0]
bl CloseFile
movs r0, 0x2
bl sub_803E46C
add sp, 0x68
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803DC08: .4byte gUnknown_80F6118
_0803DC0C: .4byte gUnknown_20274A5
_0803DC10: .4byte gDungeonNameBannerFontFile
thumb_func_end ShowDungeonNameBanner
thumb_func_start sub_803DC14
sub_803DC14:
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
b _0803DC5C
_0803DC1E:
ldrb r1, [r4]
adds r4, 0x1
cmp r1, 0x2F
bne _0803DC2C
movs r5, 0
adds r6, 0x18
b _0803DC5C
_0803DC2C:
cmp r1, 0x23
bne _0803DC34
adds r5, 0x8
b _0803DC5C
_0803DC34:
cmp r1, 0x20
bne _0803DC3C
adds r5, 0xC
b _0803DC5C
_0803DC3C:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0803DC50
ldrb r0, [r4]
cmp r0, 0
beq _0803DC50
lsls r1, 8
orrs r1, r0
adds r4, 0x1
_0803DC50:
adds r0, r1, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_803DC6C
adds r5, r0
_0803DC5C:
ldrb r0, [r4]
cmp r0, 0
bne _0803DC1E
adds r0, r6, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_803DC14
thumb_func_start sub_803DC6C
sub_803DC6C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x120
adds r7, r1, 0
adds r5, r2, 0
bl sub_803DEC8
adds r4, r0, 0
ldr r0, [r4]
mov r1, sp
bl sub_803DD30
ldrb r4, [r4, 0x6]
mov r9, r4
mov r6, sp
adds r0, r5, 0
cmp r5, 0
bge _0803DC96
adds r0, r5, 0x7
_0803DC96:
asrs r0, 3
lsls r3, r0, 3
subs r0, r3, r0
lsls r0, 2
adds r1, r7, 0
cmp r7, 0
bge _0803DCA6
adds r1, r7, 0x7
_0803DCA6:
asrs r1, 3
adds r0, r1
lsls r0, 5
ldr r4, _0803DD28
adds r2, r0, r4
subs r0, r5, r3
lsls r0, 2
adds r2, r0
lsls r1, 3
subs r1, r7, r1
lsls r1, 4
ldr r0, _0803DD2C
adds r4, r1, r0
movs r0, 0
_0803DCC2:
adds r3, r2, 0
adds r7, r3, 0x4
adds r5, 0x1
mov r12, r5
adds r0, 0x1
mov r8, r0
movs r5, 0x2
_0803DCD0:
ldr r2, [r6]
cmp r2, 0
beq _0803DCF6
ldr r1, [r4]
ands r1, r2
ldr r0, [r4, 0x8]
lsls r1, r0
ldr r0, [r3]
orrs r0, r1
str r0, [r3]
adds r3, 0x20
ldr r0, [r4, 0x4]
ands r2, r0
ldr r0, [r4, 0xC]
lsrs r2, r0
ldr r0, [r3]
orrs r0, r2
str r0, [r3]
subs r3, 0x20
_0803DCF6:
adds r6, 0x4
adds r3, 0x20
subs r5, 0x1
cmp r5, 0
bge _0803DCD0
adds r2, r7, 0
mov r5, r12
movs r0, 0x7
ands r0, r5
cmp r0, 0
bne _0803DD12
movs r0, 0xD8
lsls r0, 2
adds r2, r7, r0
_0803DD12:
mov r0, r8
cmp r0, 0x17
ble _0803DCC2
mov r0, r9
add sp, 0x120
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0803DD28: .4byte 0x06000140
_0803DD2C: .4byte gUnknown_80F6120
thumb_func_end sub_803DC6C
thumb_func_start sub_803DD30
sub_803DD30:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _0803DDBC
add sp, r4
adds r4, r0, 0
mov r10, r1
movs r3, 0
movs r5, 0
ldr r0, _0803DDC0
mov r8, r0
movs r6, 0xF
movs r7, 0xF
mov r2, sp
_0803DD50:
ldrb r0, [r4]
lsrs r1, r0, 4
ands r1, r6
strb r1, [r2]
adds r1, r7, 0
ands r1, r0
strb r1, [r2, 0x1]
adds r4, 0x1
adds r2, 0x2
adds r5, 0x2
cmp r5, r8
ble _0803DD50
ldr r1, _0803DDC0
cmp r3, r1
bgt _0803DDF8
movs r0, 0x90
lsls r0, 2
mov r2, sp
adds r2, r0
mov r12, r2
mov r8, r1
mov r2, sp
mov r9, r0
_0803DD7E:
ldrb r1, [r2]
adds r2, 0x1
movs r6, 0x7
ands r6, r1
movs r0, 0x8
ands r1, r0
cmp r1, 0
beq _0803DDC4
ldrb r1, [r2]
adds r2, 0x1
movs r4, 0
cmp r4, r6
bge _0803DDF4
mov r5, r12
adds r0, r5, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, r8
bgt _0803DDF8
mov r5, sp
add r5, r9
ldr r7, _0803DDC0
_0803DDAA:
adds r4, 0x1
cmp r4, r6
bge _0803DDF4
adds r0, r5, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, r7
ble _0803DDAA
b _0803DDF4
.align 2, 0
_0803DDBC: .4byte 0xfffffb80
_0803DDC0: .4byte 0x0000023f
_0803DDC4:
movs r4, 0
cmp r4, r6
bge _0803DDF4
ldrb r1, [r2]
adds r2, 0x1
mov r5, r12
adds r0, r5, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, r8
bgt _0803DDF8
mov r5, sp
add r5, r9
ldr r7, _0803DE78
_0803DDE0:
adds r4, 0x1
cmp r4, r6
bge _0803DDF4
ldrb r1, [r2]
adds r2, 0x1
adds r0, r5, r3
strb r1, [r0]
adds r3, 0x1
cmp r3, r7
ble _0803DDE0
_0803DDF4:
cmp r3, r8
ble _0803DD7E
_0803DDF8:
movs r5, 0
ldr r4, _0803DE78
add r3, sp, 0x240
_0803DDFE:
ldrb r2, [r3, 0x7]
lsls r2, 28
ldrb r0, [r3, 0x6]
lsls r0, 24
movs r1, 0xF0
lsls r1, 20
ands r0, r1
orrs r2, r0
ldrb r0, [r3, 0x5]
lsls r0, 20
movs r1, 0xF0
lsls r1, 16
ands r0, r1
orrs r2, r0
ldrb r0, [r3, 0x4]
lsls r0, 16
movs r1, 0xF0
lsls r1, 12
ands r0, r1
orrs r2, r0
ldrb r0, [r3, 0x3]
lsls r0, 12
movs r1, 0xF0
lsls r1, 8
ands r0, r1
orrs r2, r0
ldrb r0, [r3, 0x2]
lsls r0, 8
movs r1, 0xF0
lsls r1, 4
ands r0, r1
orrs r2, r0
ldrb r0, [r3, 0x1]
lsls r0, 4
movs r1, 0xF0
ands r0, r1
orrs r2, r0
ldrb r1, [r3]
movs r0, 0xF
ands r0, r1
orrs r2, r0
mov r0, r10
adds r0, 0x4
mov r10, r0
subs r0, 0x4
stm r0!, {r2}
adds r3, 0x8
adds r5, 0x8
cmp r5, r4
ble _0803DDFE
movs r3, 0x90
lsls r3, 3
add sp, r3
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803DE78: .4byte 0x0000023f
thumb_func_end sub_803DD30
thumb_func_start CalcStringWidth
CalcStringWidth:
push {r4,r5,lr}
adds r4, r0, 0
movs r5, 0
b _0803DEBA
_0803DE84:
ldrb r1, [r4]
adds r4, 0x1
cmp r1, 0x23
bne _0803DE90
adds r5, 0x8
b _0803DEBA
_0803DE90:
cmp r1, 0x20
bne _0803DE98
adds r5, 0xC
b _0803DEBA
_0803DE98:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _0803DEAC
ldrb r0, [r4]
cmp r0, 0
beq _0803DEAC
lsls r1, 8
orrs r1, r0
adds r4, 0x1
_0803DEAC:
adds r0, r1, 0
bl sub_803DEC8
cmp r0, 0
beq _0803DEBA
ldrb r0, [r0, 0x6]
adds r5, r0
_0803DEBA:
ldrb r0, [r4]
cmp r0, 0
bne _0803DE84
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end CalcStringWidth
thumb_func_start sub_803DEC8
sub_803DEC8:
push {r4,r5,lr}
adds r3, r0, 0
ldr r0, _0803DEFC
ldr r0, [r0]
ldr r0, [r0, 0x4]
ldr r5, [r0]
ldr r0, _0803DF00
adds r1, r3, r0
ldr r0, _0803DF04
cmp r1, r0
bhi _0803DF08
movs r2, 0xFF
ands r2, r3
movs r1, 0xFF
lsls r1, 8
ands r1, r3
asrs r1, 8
subs r2, 0x20
subs r1, 0xF8
lsls r0, r1, 3
subs r0, r1
lsls r0, 5
adds r0, r2
lsls r0, 3
adds r1, r5, r0
b _0803DF56
.align 2, 0
_0803DEFC: .4byte gDungeonNameBannerFontFile
_0803DF00: .4byte 0xffff0800
_0803DF04: .4byte 0x000007fe
_0803DF08:
movs r4, 0
ldr r0, _0803DF1C
ldr r0, [r0]
subs r2, r0, 0x1
cmp r4, r2
bge _0803DF48
lsrs r0, r2, 31
adds r0, r2, r0
b _0803DF3A
.align 2, 0
_0803DF1C: .4byte gDungeonNameBannerFont
_0803DF20:
lsls r0, r1, 3
adds r0, r5
ldrh r0, [r0, 0x4]
cmp r0, r3
bge _0803DF2E
adds r4, r1, 0x1
b _0803DF30
_0803DF2E:
adds r2, r1, 0
_0803DF30:
cmp r4, r2
bge _0803DF48
adds r0, r4, r2
lsrs r1, r0, 31
adds r0, r1
_0803DF3A:
asrs r1, r0, 1
lsls r0, r1, 3
adds r0, r5
ldrh r0, [r0, 0x4]
cmp r0, r3
bne _0803DF20
adds r4, r1, 0
_0803DF48:
lsls r0, r4, 3
adds r1, r5, r0
ldrh r0, [r1, 0x4]
cmp r0, r3
beq _0803DF56
adds r1, r5, 0
adds r1, 0x8
_0803DF56:
adds r0, r1, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_803DEC8
thumb_func_start sub_803DF60
sub_803DF60:
push {r4-r7,lr}
ldr r0, _0803DFF8
ldr r1, _0803DFFC
bl OpenFileAndGetFileDataPtr
adds r7, r0, 0
ldr r0, [r7, 0x4]
ldr r5, [r0]
ldm r5!, {r4}
ldr r6, _0803E000
cmp r4, 0
beq _0803DF8C
_0803DF78:
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x20
bl CpuCopy
adds r6, 0x20
adds r5, 0x20
subs r4, 0x1
cmp r4, 0
bne _0803DF78
_0803DF8C:
adds r0, r7, 0
bl CloseFile
ldr r0, _0803E004
ldr r1, _0803DFFC
bl OpenFileAndGetFileDataPtr
adds r7, r0, 0
ldr r5, [r7, 0x4]
ldm r5!, {r4}
ldr r6, _0803E008
cmp r4, 0
beq _0803DFBA
_0803DFA6:
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x20
bl CpuCopy
adds r6, 0x20
adds r5, 0x20
subs r4, 0x1
cmp r4, 0
bne _0803DFA6
_0803DFBA:
adds r0, r7, 0
bl CloseFile
ldr r0, _0803E00C
ldr r4, _0803DFFC
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _0803E010
str r0, [r1]
ldr r0, _0803E014
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _0803E018
str r0, [r1]
ldr r0, _0803E01C
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _0803E020
str r0, [r1]
ldr r0, _0803E024
adds r1, r4, 0
bl OpenFileAndGetFileDataPtr
ldr r1, _0803E028
str r0, [r1]
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803DFF8: .4byte gUnknown_80F61A8
_0803DFFC: .4byte gUnknown_83B0000
_0803E000: .4byte 0x06013400
_0803E004: .4byte gUnknown_80F61B0
_0803E008: .4byte 0x06014000
_0803E00C: .4byte gUnknown_80F61B8
_0803E010: .4byte gUnknown_202EC94
_0803E014: .4byte gUnknown_80F61C4
_0803E018: .4byte gUnknown_202EC98
_0803E01C: .4byte gUnknown_80F61CC
_0803E020: .4byte gUnknown_202EC9C
_0803E024: .4byte gUnknown_80F61D4
_0803E028: .4byte gUnknown_202ECA0
thumb_func_end sub_803DF60
thumb_func_start sub_803E02C
sub_803E02C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0xC
bl sub_803E13C
mov r1, sp
ldr r0, _0803E118
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
ldr r1, _0803E11C
mov r0, sp
bl OpenFileAndGetFileDataPtr
adds r7, r0, 0
ldr r0, [r7, 0x4]
ldr r5, [r0]
ldm r5!, {r4}
ldr r6, _0803E120
cmp r4, 0
beq _0803E06C
_0803E058:
adds r0, r6, 0
adds r1, r5, 0
movs r2, 0x20
bl CpuCopy
adds r6, 0x20
adds r5, 0x20
subs r4, 0x1
cmp r4, 0
bne _0803E058
_0803E06C:
ldr r0, _0803E124
ldr r1, [r7, 0x4]
ldr r1, [r1, 0x4]
movs r2, 0x80
bl CpuCopy
adds r0, r7, 0
bl CloseFile
movs r6, 0x80
lsls r6, 2
movs r4, 0
ldr r0, _0803E128
mov r9, r0
ldr r1, _0803E12C
mov r12, r1
movs r7, 0
ldr r2, _0803E130
mov r8, r2
_0803E092:
mov r3, r12
ldrh r0, [r3]
lsls r5, r0, 12
adds r2, r7, 0
movs r3, 0x8
_0803E09C:
mov r0, r9
ldr r1, [r0]
add r1, r8
adds r1, r2
adds r0, r5, 0
orrs r0, r6
strh r0, [r1]
adds r6, 0x1
adds r2, 0x2
subs r3, 0x1
cmp r3, 0
bge _0803E09C
movs r1, 0x2
add r12, r1
adds r7, 0x12
adds r4, 0x1
cmp r4, 0x1C
ble _0803E092
movs r4, 0
ldr r5, _0803E128
ldr r3, _0803E134
movs r2, 0xC0
lsls r2, 8
_0803E0CA:
ldr r0, [r5]
lsls r1, r4, 1
adds r0, r3
adds r0, r1
strh r2, [r0]
adds r4, 0x1
cmp r4, 0x8
ble _0803E0CA
movs r4, 0
ldr r2, _0803E128
movs r6, 0xBE
lsls r6, 1
ldr r5, _0803E138
movs r3, 0xBF
lsls r3, 1
_0803E0E8:
ldr r0, [r2]
lsls r1, r4, 2
adds r0, r1
adds r0, r6
strb r4, [r0]
ldr r0, [r2]
adds r0, r1
adds r0, r5
strb r4, [r0]
ldr r0, [r2]
adds r0, r1
adds r0, r3
strb r4, [r0]
adds r4, 0x1
cmp r4, 0xFF
ble _0803E0E8
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803E118: .4byte gUnknown_80F61DC
_0803E11C: .4byte gUnknown_83B0000
_0803E120: .4byte 0x0600c000
_0803E124: .4byte gUnknown_202ECA4
_0803E128: .4byte gUnknown_203B418
_0803E12C: .4byte gUnknown_80F5F70
_0803E130: .4byte 0x00012a18
_0803E134: .4byte 0x00013554
_0803E138: .4byte 0x0000017d
thumb_func_end sub_803E02C
thumb_func_start sub_803E13C
sub_803E13C:
push {r4,r5,lr}
bl sub_8094C14
ldr r0, _0803E170
ldr r0, [r0]
ldrb r0, [r0, 0xB]
ldr r5, _0803E174
cmp r0, 0
beq _0803E154
movs r0, 0x80
lsls r0, 1
adds r5, r0
_0803E154:
movs r4, 0
_0803E156:
adds r0, r4, 0
adds r0, 0xF0
adds r1, r5, 0
bl SetBGPaletteBufferColorArray
adds r5, 0x4
adds r4, 0x1
cmp r4, 0xF
ble _0803E156
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803E170: .4byte gUnknown_203B46C
_0803E174: .4byte gUnknown_202D038
thumb_func_end sub_803E13C
thumb_func_start sub_803E178
sub_803E178:
push {r4,lr}
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0803E1E0
ldr r0, _0803E1AC
ldr r2, [r0]
ldr r3, _0803E1B0
adds r1, r2, r3
ldrb r1, [r1]
adds r3, r0, 0
cmp r1, 0x15
bne _0803E1BC
ldr r1, _0803E1B4
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0
bne _0803E1BC
ldr r3, _0803E1B8
adds r1, r2, r3
movs r0, 0x1C
strh r0, [r1]
b _0803E204
.align 2, 0
_0803E1AC: .4byte gUnknown_203B418
_0803E1B0: .4byte 0x00000644
_0803E1B4: .4byte 0x000037fe
_0803E1B8: .4byte 0x00003a12
_0803E1BC:
ldr r4, [r3]
ldr r1, _0803E1D8
adds r0, r4, r1
ldrb r0, [r0]
bl GetStairDirection
lsls r0, 24
movs r1, 0x16
cmp r0, 0
beq _0803E1D2
movs r1, 0x17
_0803E1D2:
ldr r2, _0803E1DC
adds r0, r4, r2
b _0803E202
.align 2, 0
_0803E1D8: .4byte 0x00000644
_0803E1DC: .4byte 0x00003a12
_0803E1E0:
cmp r0, 0x1
bne _0803E1F8
ldr r0, _0803E1F0
ldr r0, [r0]
ldr r3, _0803E1F4
adds r0, r3
movs r1, 0x6
b _0803E202
.align 2, 0
_0803E1F0: .4byte gUnknown_203B418
_0803E1F4: .4byte 0x00003a12
_0803E1F8:
ldr r0, _0803E20C
ldr r0, [r0]
ldr r1, _0803E210
adds r0, r1
movs r1, 0x18
_0803E202:
strh r1, [r0]
_0803E204:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803E20C: .4byte gUnknown_203B418
_0803E210: .4byte 0x00003a12
thumb_func_end sub_803E178
thumb_func_start sub_803E214
sub_803E214:
push {lr}
ldr r0, _0803E23C
ldr r0, [r0]
bl CloseFile
ldr r0, _0803E240
ldr r0, [r0]
bl CloseFile
ldr r0, _0803E244
ldr r0, [r0]
bl CloseFile
ldr r0, _0803E248
ldr r0, [r0]
bl CloseFile
pop {r0}
bx r0
.align 2, 0
_0803E23C: .4byte gUnknown_202EC94
_0803E240: .4byte gUnknown_202EC98
_0803E244: .4byte gUnknown_202EC9C
_0803E248: .4byte gUnknown_202ECA0
thumb_func_end sub_803E214
thumb_func_start nullsub_56
nullsub_56:
bx lr
thumb_func_end nullsub_56
thumb_func_start sub_803E250
sub_803E250:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r1, _0803E3FC
ldr r0, _0803E400
str r0, [r1]
ldr r0, _0803E404
movs r1, 0
str r1, [r0]
ldr r0, _0803E408
strb r1, [r0]
ldr r0, _0803E40C
strh r1, [r0]
ldr r5, _0803E410
ldrh r0, [r5, 0x6]
movs r3, 0xF
adds r2, r3, 0
ands r2, r0
ldrh r4, [r5]
ldr r1, _0803E414
adds r0, r1, 0
ands r0, r4
ldr r4, _0803E418
ands r0, r4
ldr r6, _0803E41C
ands r0, r6
ldr r7, _0803E420
ands r0, r7
ldr r4, _0803E424
mov r12, r4
ands r0, r4
ldr r4, _0803E428
ands r0, r4
strh r0, [r5]
movs r0, 0x80
lsls r0, 7
strh r0, [r5, 0x2]
movs r0, 0
strh r0, [r5, 0x4]
ldr r0, _0803E42C
mov r10, r0
ands r2, r0
subs r0, 0x1
mov r9, r0
ands r2, r0
subs r0, 0x2
mov r8, r0
ands r2, r0
strh r2, [r5, 0x6]
ldr r2, _0803E430
ldrh r0, [r2, 0x6]
ands r3, r0
ldrh r0, [r2]
ands r1, r0
ldr r0, _0803E418
ands r1, r0
ands r1, r6
ands r1, r7
mov r7, r12
ands r1, r7
ands r1, r4
strh r1, [r2]
movs r0, 0
strh r0, [r2, 0x2]
movs r0, 0xB8
lsls r0, 7
strh r0, [r2, 0x4]
mov r0, r10
ands r3, r0
mov r1, r9
ands r3, r1
mov r7, r8
ands r3, r7
strh r3, [r2, 0x6]
movs r0, 0
mov r8, r0
_0803E2EE:
movs r1, 0
mov r9, r1
mov r2, r8
lsls r0, r2, 3
lsls r2, 1
mov r12, r2
mov r3, r8
adds r3, 0x1
str r3, [sp]
mov r10, r1
add r0, r8
lsls r5, r0, 3
ldr r4, _0803E434
adds r4, r5, r4
str r4, [sp, 0x4]
ldr r7, _0803E438
adds r6, r5, r7
ldr r0, _0803E43C
adds r3, r5, r0
ldr r1, _0803E440
adds r4, r5, r1
_0803E318:
mov r7, r10
adds r2, r5, r7
ldrh r1, [r3]
ldr r0, _0803E414
ands r0, r1
ldr r1, _0803E418
ands r0, r1
ldr r1, _0803E41C
ands r0, r1
ldr r1, _0803E420
ands r0, r1
ldr r1, _0803E424
ands r0, r1
strh r0, [r3]
ldr r1, [r4]
movs r7, 0x3
ands r1, r7
lsls r1, 14
ldr r7, _0803E428
ands r0, r7
orrs r0, r1
strh r0, [r3]
ldrh r1, [r3, 0x2]
ldr r0, _0803E444
ands r0, r1
strh r0, [r3, 0x2]
ldr r1, _0803E440
adds r1, 0x4
adds r2, r1
ldr r1, [r2]
movs r2, 0x3
ands r1, r2
lsls r1, 14
ands r0, r7
orrs r0, r1
strh r0, [r3, 0x2]
ldr r1, [r6]
ldr r0, _0803E448
ands r1, r0
ldrh r2, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r2
orrs r0, r1
ldr r7, _0803E41C
ands r0, r7
movs r1, 0xC0
lsls r1, 4
orrs r0, r1
movs r2, 0
orrs r0, r2
ldr r1, _0803E44C
ands r0, r1
strh r0, [r3, 0x4]
ldrh r1, [r3, 0x6]
ldr r0, _0803E42C
ands r0, r1
ldr r1, _0803E450
ands r0, r1
strh r0, [r3, 0x6]
mov r7, r9
lsls r1, r7, 2
mov r0, r12
add r0, r8
lsls r0, 3
adds r1, r0
ldr r0, _0803E454
adds r1, r0, r1
ldr r0, [r1]
ldr r1, [sp, 0x4]
str r0, [r1]
adds r1, 0xC
str r1, [sp, 0x4]
adds r6, 0xC
adds r3, 0xC
adds r4, 0xC
movs r2, 0xC
add r10, r2
movs r7, 0x1
add r9, r7
mov r0, r9
cmp r0, 0x5
ble _0803E318
ldr r1, [sp]
mov r8, r1
cmp r1, 0x1
ble _0803E2EE
movs r2, 0
ldr r3, _0803E458
ldr r0, [r3]
ldr r4, _0803E45C
adds r0, r4
movs r1, 0x1
strb r1, [r0]
ldr r0, [r3]
ldr r7, _0803E460
adds r0, r7
strb r1, [r0]
ldr r0, _0803E464
str r2, [r0]
movs r0, 0xF8
ldr r1, _0803E468
movs r3, 0
bl SetBGPaletteBufferColorRGB
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803E3FC: .4byte gUnknown_202EDD0
_0803E400: .4byte 0x000003e7
_0803E404: .4byte gUnknown_202EDD4
_0803E408: .4byte gUnknown_203B40D
_0803E40C: .4byte gUnknown_202EDE8
_0803E410: .4byte gUnknown_202EDC0
_0803E414: .4byte 0x0000feff
_0803E418: .4byte 0x0000fdff
_0803E41C: .4byte 0x0000f3ff
_0803E420: .4byte 0x0000efff
_0803E424: .4byte 0x0000dfff
_0803E428: .4byte 0x00003fff
_0803E42C: .4byte 0x0000fffe
_0803E430: .4byte gUnknown_202EDB8
_0803E434: .4byte gUnknown_202ED30
_0803E438: .4byte gUnknown_80F6224
_0803E43C: .4byte gUnknown_202ED28
_0803E440: .4byte gUnknown_80F621C
_0803E444: .4byte 0x0000c1ff
_0803E448: .4byte 0x000003ff
_0803E44C: .4byte 0x00000fff
_0803E450: .4byte 0x0000fffd
_0803E454: .4byte gUnknown_80F61EC
_0803E458: .4byte gUnknown_203B418
_0803E45C: .4byte 0x00018217
_0803E460: .4byte 0x00018218
_0803E464: .4byte gUnknown_202EDC8
_0803E468: .4byte gUnknown_202D058
thumb_func_end sub_803E250
thumb_func_start sub_803E46C
sub_803E46C:
push {lr}
adds r1, r0, 0
ldr r0, _0803E480
ldrb r0, [r0]
cmp r0, 0
beq _0803E484
adds r0, r1, 0
bl sub_803E490
b _0803E48A
.align 2, 0
_0803E480: .4byte gUnknown_203B40C
_0803E484:
adds r0, r1, 0
bl sub_803E668
_0803E48A:
pop {r0}
bx r0
thumb_func_end sub_803E46C
thumb_func_start sub_803E490
sub_803E490:
push {r4,r5,lr}
sub sp, 0x8
ldr r1, _0803E4D8
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
bl xxx_draw_string_80524F0
bl sub_8085F78
movs r0, 0x1
bl sub_803F580
ldr r2, _0803E4DC
ldr r1, [r2]
ldr r3, _0803E4E0
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
beq _0803E4EC
ldr r4, _0803E4E4
adds r1, r4
movs r0, 0x2
strb r0, [r1]
ldr r1, [r2]
ldr r2, _0803E4E8
adds r0, r1, r2
movs r3, 0
ldrsh r0, [r0, r3]
subs r4, 0x16
adds r1, r4
movs r2, 0
ldrsh r1, [r1, r2]
bl sub_800CCA0
b _0803E4FC
.align 2, 0
_0803E4D8: .4byte gUnknown_202EDD4
_0803E4DC: .4byte gUnknown_203B418
_0803E4E0: .4byte 0x0001821a
_0803E4E4: .4byte 0x00018208
_0803E4E8: .4byte 0x000181f0
_0803E4EC:
ldr r3, _0803E628
adds r1, r3
movs r0, 0x3
strb r0, [r1]
movs r0, 0
movs r1, 0
bl sub_800CCA0
_0803E4FC:
ldr r4, _0803E62C
ldr r2, [r4]
ldr r5, _0803E630
adds r0, r2, r5
movs r1, 0
ldrsh r0, [r0, r1]
ldr r3, _0803E634
adds r1, r2, r3
movs r3, 0
ldrsh r1, [r1, r3]
ldr r3, _0803E638
adds r2, r3
ldr r2, [r2]
subs r1, r2
bl sub_800CCAC
bl sub_806CC10
bl sub_804522C
bl sub_803F9CC
ldr r0, [r4]
adds r0, r5
bl sub_800F7D0
ldr r1, [r4]
ldrh r2, [r1, 0x12]
movs r3, 0x12
ldrsh r0, [r1, r3]
cmp r0, 0x63
bgt _0803E540
adds r0, r2, 0x1
strh r0, [r1, 0x12]
_0803E540:
ldr r0, [r4]
adds r0, r5
bl sub_800E90C
bl sub_8042E5C
ldr r0, _0803E63C
ldr r0, [r0]
cmp r0, 0
beq _0803E562
cmp r0, 0x3
beq _0803E562
ldr r0, _0803E640
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bne _0803E566
_0803E562:
bl sub_8040894
_0803E566:
bl sub_803ECE0
bl sub_803EDF0
ldr r0, _0803E62C
ldr r3, [r0]
ldr r4, _0803E644
adds r0, r3, r4
ldrb r0, [r0]
cmp r0, 0
beq _0803E5A2
ldr r1, _0803E648
adds r0, r3, r1
ldr r0, [r0]
cmp r0, 0x3
beq _0803E5A2
ldr r0, _0803E64C
ldrb r0, [r0]
ldr r1, _0803E650
ldr r2, _0803E654
ldr r2, [r2]
str r2, [sp]
movs r4, 0xBE
lsls r4, 1
adds r2, r3, r4
str r2, [sp, 0x4]
movs r2, 0xA0
movs r3, 0x20
bl sub_8004AF0
_0803E5A2:
ldr r0, _0803E640
ldr r0, [r0]
ldrb r0, [r0, 0xA]
bl nullsub_8
bl sub_8005180
bl nullsub_12
bl sub_80060EC
ldr r1, _0803E658
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _0803E65C
ldr r0, [r0]
bl sub_8094FB4
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam
bl nullsub_13
bl sub_8005304
bl nullsub_14
bl TransferBGPaletteBuffer
bl sub_8009908
bl xxx_call_update_bg_vram
bl sub_8040788
bl xxx_call_update_bg_sound_input
ldr r0, _0803E62C
ldr r0, [r0]
ldr r1, _0803E660
adds r0, r1
movs r1, 0
strb r1, [r0]
bl sub_8083F58
bl sub_8011860
bl sub_8040B60
movs r0, 0
bl ResetSprites
movs r0, 0
bl nullsub_10
ldr r1, _0803E664
ldr r0, [r1]
subs r0, 0x1
str r0, [r1]
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803E628: .4byte 0x00018208
_0803E62C: .4byte gUnknown_203B418
_0803E630: .4byte 0x000181f0
_0803E634: .4byte 0x000181f2
_0803E638: .4byte 0x000181fc
_0803E63C: .4byte gUnknown_202EDD0
_0803E640: .4byte gUnknown_203B46C
_0803E644: .4byte 0x00018215
_0803E648: .4byte 0x0001c06c
_0803E64C: .4byte gUnknown_203B40D
_0803E650: .4byte gUnknown_202EE8C
_0803E654: .4byte gUnknown_202EDC8
_0803E658: .4byte gUnknown_202EDCC
_0803E65C: .4byte gUnknown_203B47C
_0803E660: .4byte 0x00018213
_0803E664: .4byte gUnknown_202EDD4
thumb_func_end sub_803E490
thumb_func_start sub_803E668
sub_803E668:
push {r4,lr}
ldr r4, _0803E6F0
ldr r0, [r4]
adds r0, 0x1
str r0, [r4]
ldr r0, _0803E6F4
ldr r0, [r0]
ldrb r0, [r0, 0xA]
bl nullsub_8
bl sub_8005180
bl nullsub_12
movs r0, 0
movs r1, 0
bl sub_8005838
bl sub_80060EC
ldr r1, _0803E6F8
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
ldr r0, _0803E6FC
ldr r0, [r0]
bl sub_8094FB4
bl sub_800CB20
bl sub_800485C
bl CopySpritesToOam
bl nullsub_13
bl sub_8005304
bl nullsub_14
bl TransferBGPaletteBuffer
bl sub_8009908
bl xxx_call_update_bg_vram
bl xxx_call_update_bg_sound_input
ldr r0, _0803E700
ldr r0, [r0]
ldr r1, _0803E704
adds r0, r1
movs r1, 0
strb r1, [r0]
bl sub_8011860
movs r0, 0
bl ResetSprites
movs r0, 0
bl nullsub_10
ldr r0, [r4]
subs r0, 0x1
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803E6F0: .4byte gUnknown_202EDD4
_0803E6F4: .4byte gUnknown_203B46C
_0803E6F8: .4byte gUnknown_202EDCC
_0803E6FC: .4byte gUnknown_203B47C
_0803E700: .4byte gUnknown_203B418
_0803E704: .4byte 0x00018213
thumb_func_end sub_803E668
thumb_func_start sub_803E708
sub_803E708:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
cmp r4, 0
beq _0803E71E
_0803E712:
adds r0, r5, 0
bl sub_803E46C
subs r4, 0x1
cmp r4, 0
bne _0803E712
_0803E71E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_803E708
thumb_func_start sub_803E724
sub_803E724:
push {r4-r6,lr}
adds r4, r0, 0
ldr r5, _0803E744
movs r6, 0xF0
_0803E72C:
adds r0, r4, 0
bl sub_803E46C
ldrh r1, [r5]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
bne _0803E72C
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803E744: .4byte gUnknown_20255F0
thumb_func_end sub_803E724
thumb_func_start sub_803E748
sub_803E748:
push {r4,r5,lr}
movs r5, 0x1F
ldr r1, _0803E7B8
movs r0, 0x1
strb r0, [r1]
ldr r1, _0803E7BC
movs r0, 0
str r0, [r1]
movs r0, 0x1
movs r1, 0x1F
bl sub_803E874
movs r4, 0
_0803E762:
cmp r4, 0x1F
bgt _0803E780
subs r5, 0x2
cmp r5, 0
bgt _0803E780
movs r5, 0
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
ldr r0, _0803E7C0
ldr r0, [r0]
ldr r1, _0803E7C4
adds r0, r1
strb r5, [r0]
_0803E780:
cmp r4, 0xB
ble _0803E790
ldr r1, _0803E7BC
ldr r0, [r1]
cmp r0, 0x1E
bgt _0803E790
adds r0, 0x1
str r0, [r1]
_0803E790:
movs r0, 0x1
adds r1, r5, 0
bl sub_803E874
movs r0, 0x5
bl sub_803E46C
adds r4, 0x1
cmp r4, 0x2B
ble _0803E762
ldr r1, _0803E7B8
movs r0, 0
strb r0, [r1]
ldr r1, _0803E7BC
movs r0, 0x1F
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803E7B8: .4byte gUnknown_203B40D
_0803E7BC: .4byte gUnknown_202EDC8
_0803E7C0: .4byte gUnknown_203B418
_0803E7C4: .4byte 0x00018217
thumb_func_end sub_803E748
thumb_func_start sub_803E7C8
sub_803E7C8:
push {r4,r5,lr}
movs r4, 0x1F
ldr r1, _0803E820
movs r0, 0x1
strb r0, [r1]
ldr r1, _0803E824
movs r0, 0
str r0, [r1]
movs r0, 0x5
bl sub_803E46C
movs r5, 0
_0803E7E0:
movs r0, 0x1
adds r1, r4, 0
bl sub_803E874
cmp r5, 0x1F
bgt _0803E806
subs r4, 0x2
cmp r4, 0
bgt _0803E806
movs r4, 0
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
ldr r0, _0803E828
ldr r0, [r0]
ldr r1, _0803E82C
adds r0, r1
strb r4, [r0]
_0803E806:
movs r0, 0x5
bl sub_803E46C
adds r5, 0x1
cmp r5, 0x2B
ble _0803E7E0
ldr r1, _0803E820
movs r0, 0
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803E820: .4byte gUnknown_203B40D
_0803E824: .4byte gUnknown_202EDC8
_0803E828: .4byte gUnknown_203B418
_0803E82C: .4byte 0x00018217
thumb_func_end sub_803E7C8
thumb_func_start sub_803E830
sub_803E830:
push {r4,r5,lr}
ldr r1, _0803E86C
movs r0, 0x1
strb r0, [r1]
ldr r5, _0803E870
movs r4, 0x1F
_0803E83C:
movs r0, 0
movs r1, 0
bl sub_803E874
movs r0, 0x5
bl sub_803E46C
ldr r0, [r5]
cmp r0, 0
ble _0803E854
subs r0, 0x1
str r0, [r5]
_0803E854:
subs r4, 0x1
cmp r4, 0
bge _0803E83C
ldr r0, _0803E870
movs r1, 0
str r1, [r0]
ldr r0, _0803E86C
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803E86C: .4byte gUnknown_203B40D
_0803E870: .4byte gUnknown_202EDC8
thumb_func_end sub_803E830
thumb_func_start sub_803E874
sub_803E874:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r9, r1
lsls r0, 24
lsrs r0, 24
mov r10, r0
ldr r0, _0803E9A4
ldr r0, [r0]
ldr r5, [r0, 0x4]
ldr r1, _0803E9A8
ldr r0, _0803E9AC
ldr r2, [r0]
ldr r0, _0803E9B0
ldr r3, [r0]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
movs r0, 0
bl SetBGPaletteBufferColorRGB
adds r5, 0x4
movs r6, 0x1
movs r4, 0x9F
_0803E8AA:
ldr r1, _0803E9AC
mov r8, r1
ldr r2, [r1]
ldr r7, _0803E9B0
ldr r3, [r7]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
adds r0, r6, 0
adds r1, r5, 0
bl SetBGPaletteBufferColorRGB
adds r5, 0x4
adds r6, 0x1
subs r4, 0x1
cmp r4, 0
bne _0803E8AA
ldr r3, [r7]
ldr r1, _0803E9B4
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _0803E8E2
ldr r2, _0803E9B8
adds r0, r3, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0803E8FC
_0803E8E2:
ldr r1, _0803E9BC
mov r2, r8
ldr r0, [r2]
str r0, [sp]
movs r2, 0xBE
lsls r2, 1
adds r0, r3, r2
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0xA0
movs r3, 0x20
bl sub_8004AF0
_0803E8FC:
adds r6, 0x20
ldr r5, _0803E9C0
movs r4, 0x20
_0803E902:
ldr r0, _0803E9AC
ldr r2, [r0]
ldr r0, _0803E9B0
ldr r3, [r0]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
adds r0, r6, 0
adds r1, r5, 0
bl SetBGPaletteBufferColorRGB
adds r5, 0x4
adds r6, 0x1
subs r4, 0x1
cmp r4, 0
bne _0803E902
mov r1, r10
cmp r1, 0
beq _0803E948
movs r6, 0xE0
ldr r0, _0803E9C4
ldr r0, [r0]
ldr r5, [r0, 0x4]
movs r4, 0x10
_0803E932:
adds r0, r6, 0
adds r1, r5, 0
mov r2, r9
movs r3, 0
bl SetBGPaletteBufferColorRGB
adds r5, 0x4
adds r6, 0x1
subs r4, 0x1
cmp r4, 0
bne _0803E932
_0803E948:
ldr r1, _0803E9C8
ldr r4, _0803E9AC
ldr r2, [r4]
movs r0, 0xF8
movs r3, 0
bl SetBGPaletteBufferColorRGB
ldr r0, _0803E9B0
ldr r0, [r0]
ldr r2, _0803E9CC
adds r0, r2
ldr r0, [r0]
ldr r5, [r0, 0x4]
movs r6, 0x80
lsls r6, 1
adds r7, r4, 0
movs r4, 0xD0
_0803E96A:
ldr r2, [r7]
ldr r0, _0803E9B0
ldr r3, [r0]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
adds r0, r6, 0
adds r1, r5, 0
bl SetBGPaletteBufferColorRGB
ldr r2, [r7]
adds r0, r6, 0
adds r1, r5, 0
movs r3, 0
bl nullsub_4
adds r5, 0x4
adds r6, 0x1
subs r4, 0x1
cmp r4, 0
bne _0803E96A
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803E9A4: .4byte gUnknown_202EE88
_0803E9A8: .4byte gUnknown_80F62AC
_0803E9AC: .4byte gUnknown_202EDC8
_0803E9B0: .4byte gUnknown_203B418
_0803E9B4: .4byte 0x00018215
_0803E9B8: .4byte 0x0001c06c
_0803E9BC: .4byte gUnknown_202EE8C
_0803E9C0: .4byte gUnknown_202ECA4
_0803E9C4: .4byte gDungeonNameBannerPalette
_0803E9C8: .4byte gUnknown_202D058
_0803E9CC: .4byte 0x000181e4
thumb_func_end sub_803E874
thumb_func_start sub_803E9D0
sub_803E9D0:
push {r4-r7,lr}
ldr r0, _0803EA04
ldr r0, [r0]
ldr r1, _0803EA08
adds r0, r1
ldr r0, [r0]
ldr r4, [r0, 0x4]
movs r6, 0x80
lsls r6, 1
ldr r7, _0803EA0C
movs r5, 0xD0
_0803E9E6:
ldr r2, [r7]
adds r0, r6, 0
adds r1, r4, 0
movs r3, 0
bl nullsub_4
adds r4, 0x4
adds r6, 0x1
subs r5, 0x1
cmp r5, 0
bne _0803E9E6
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803EA04: .4byte gUnknown_203B418
_0803EA08: .4byte 0x000181e4
_0803EA0C: .4byte gUnknown_202EDC8
thumb_func_end sub_803E9D0
thumb_func_start sub_803EA10
sub_803EA10:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
ldr r0, _0803EACC
ldr r0, [r0]
ldr r4, [r0, 0x4]
ldr r1, _0803EAD0
ldr r0, _0803EAD4
ldr r2, [r0]
ldr r0, _0803EAD8
ldr r3, [r0]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
movs r0, 0
bl SetBGPaletteBufferColorRGB
adds r4, 0x4
movs r6, 0x1
movs r5, 0x9F
_0803EA3A:
ldr r1, _0803EAD4
mov r8, r1
ldr r2, [r1]
ldr r7, _0803EAD8
ldr r3, [r7]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
adds r0, r6, 0
adds r1, r4, 0
bl SetBGPaletteBufferColorRGB
adds r4, 0x4
adds r6, 0x1
subs r5, 0x1
cmp r5, 0
bne _0803EA3A
ldr r3, [r7]
ldr r1, _0803EADC
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _0803EA72
ldr r2, _0803EAE0
adds r0, r3, r2
ldr r0, [r0]
cmp r0, 0x3
bne _0803EA8C
_0803EA72:
ldr r1, _0803EAE4
mov r2, r8
ldr r0, [r2]
str r0, [sp]
movs r2, 0xBE
lsls r2, 1
adds r0, r3, r2
str r0, [sp, 0x4]
movs r0, 0x1
movs r2, 0xA0
movs r3, 0x20
bl sub_8004AF0
_0803EA8C:
adds r6, 0x20
ldr r4, _0803EAE8
movs r5, 0x20
_0803EA92:
ldr r7, _0803EAD4
ldr r2, [r7]
ldr r0, _0803EAD8
ldr r3, [r0]
movs r0, 0xBE
lsls r0, 1
adds r3, r0
adds r0, r6, 0
adds r1, r4, 0
bl SetBGPaletteBufferColorRGB
adds r4, 0x4
adds r6, 0x1
subs r5, 0x1
cmp r5, 0
bne _0803EA92
ldr r1, _0803EAEC
ldr r2, [r7]
movs r0, 0xF8
movs r3, 0
bl SetBGPaletteBufferColorRGB
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803EACC: .4byte gUnknown_202EE88
_0803EAD0: .4byte gUnknown_80F62AC
_0803EAD4: .4byte gUnknown_202EDC8
_0803EAD8: .4byte gUnknown_203B418
_0803EADC: .4byte 0x00018215
_0803EAE0: .4byte 0x0001c06c
_0803EAE4: .4byte gUnknown_202EE8C
_0803EAE8: .4byte gUnknown_202ECA4
_0803EAEC: .4byte gUnknown_202D058
thumb_func_end sub_803EA10
thumb_func_start sub_803EAF0
sub_803EAF0:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r0, _0803EB20
ldr r0, [r0]
cmp r4, r0
bne _0803EB00
b _0803EC88
_0803EB00:
cmp r4, 0x5
bne _0803EB06
b _0803EC1C
_0803EB06:
cmp r4, 0x5
bhi _0803EB2E
cmp r4, 0x2
bne _0803EB10
b _0803EBFC
_0803EB10:
cmp r4, 0x2
bhi _0803EB24
cmp r4, 0
beq _0803EB70
cmp r4, 0x1
beq _0803EB50
b _0803EC84
.align 2, 0
_0803EB20: .4byte gUnknown_202EDD0
_0803EB24:
cmp r4, 0x3
beq _0803EB98
cmp r4, 0x4
beq _0803EBFC
b _0803EC84
_0803EB2E:
cmp r4, 0x8
bne _0803EB34
b _0803EC34
_0803EB34:
cmp r4, 0x8
bhi _0803EB42
cmp r4, 0x6
beq _0803EBBC
cmp r4, 0x7
beq _0803EBDC
b _0803EC84
_0803EB42:
cmp r4, 0xA
bne _0803EB48
b _0803EC80
_0803EB48:
cmp r4, 0xA
bcs _0803EB4E
b _0803EC54
_0803EB4E:
b _0803EC84
_0803EB50:
ldr r0, _0803EB6C
ldrb r0, [r0]
cmp r0, 0
beq _0803EB5E
movs r0, 0
bl sub_8052210
_0803EB5E:
bl sub_8004914
bl sub_803EC94
movs r0, 0
movs r1, 0x1
b _0803EC6E
.align 2, 0
_0803EB6C: .4byte gUnknown_203B40C
_0803EB70:
bl sub_803EC94
movs r0, 0
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, _0803EB94
ldrb r0, [r0]
cmp r0, 0
bne _0803EB88
b _0803EC84
_0803EB88:
bl sub_8040A84
movs r0, 0
bl sub_8040ABC
b _0803EC84
.align 2, 0
_0803EB94: .4byte gUnknown_203B40C
_0803EB98:
ldr r0, _0803EBB4
movs r1, 0x1
movs r2, 0x1
bl sub_800641C
ldr r0, _0803EBB8
ldrb r0, [r0]
cmp r0, 0
beq _0803EC84
movs r0, 0x1
bl sub_8040ABC
b _0803EC84
.align 2, 0
_0803EBB4: .4byte gUnknown_80F62B0
_0803EBB8: .4byte gUnknown_203B40C
_0803EBBC:
ldr r0, _0803EBD4
ldrb r0, [r0]
cmp r0, 0
beq _0803EBCA
movs r0, 0
bl sub_8052210
_0803EBCA:
bl sub_8004914
ldr r0, _0803EBD8
movs r1, 0x1
b _0803EC6E
.align 2, 0
_0803EBD4: .4byte gUnknown_203B40C
_0803EBD8: .4byte gUnknown_80F6310
_0803EBDC:
ldr r0, _0803EBF4
ldrb r0, [r0]
cmp r0, 0
beq _0803EBEA
movs r0, 0
bl sub_8052210
_0803EBEA:
bl sub_8004914
ldr r0, _0803EBF8
movs r1, 0x1
b _0803EC6E
.align 2, 0
_0803EBF4: .4byte gUnknown_203B40C
_0803EBF8: .4byte gUnknown_80F6370
_0803EBFC:
ldr r0, _0803EC18
ldrb r0, [r0]
cmp r0, 0
beq _0803EC0A
movs r0, 0
bl sub_8052210
_0803EC0A:
bl sub_8004914
bl sub_803EC94
movs r0, 0
movs r1, 0x1
b _0803EC6E
.align 2, 0
_0803EC18: .4byte gUnknown_203B40C
_0803EC1C:
ldr r0, _0803EC30
ldrb r0, [r0]
cmp r0, 0
beq _0803EC2A
movs r0, 0
bl sub_8052210
_0803EC2A:
movs r0, 0
movs r1, 0x1
b _0803EC6E
.align 2, 0
_0803EC30: .4byte gUnknown_203B40C
_0803EC34:
ldr r0, _0803EC50
ldrb r0, [r0]
cmp r0, 0
beq _0803EC46
bl sub_8083D44
movs r0, 0
bl sub_8052210
_0803EC46:
movs r0, 0x2
adds r1, r5, 0
bl sub_801602C
b _0803EC84
.align 2, 0
_0803EC50: .4byte gUnknown_203B40C
_0803EC54:
ldr r0, _0803EC78
ldrb r0, [r0]
cmp r0, 0
beq _0803EC66
movs r0, 0
bl sub_8052210
bl sub_8083D44
_0803EC66:
bl sub_8004914
ldr r0, _0803EC7C
movs r1, 0
_0803EC6E:
movs r2, 0x1
bl sub_800641C
b _0803EC84
.align 2, 0
_0803EC78: .4byte gUnknown_203B40C
_0803EC7C: .4byte gUnknown_80F63D0
_0803EC80:
bl sub_8083D44
_0803EC84:
ldr r0, _0803EC90
str r4, [r0]
_0803EC88:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803EC90: .4byte gUnknown_202EDD0
thumb_func_end sub_803EAF0
thumb_func_start sub_803EC94
sub_803EC94:
push {lr}
ldr r0, _0803ECB0
movs r1, 0
strh r1, [r0, 0x1E]
strh r1, [r0, 0x20]
strh r1, [r0, 0xC]
strh r1, [r0, 0xE]
strh r1, [r0, 0x14]
adds r0, 0x28
bl sub_801317C
pop {r0}
bx r0
.align 2, 0
_0803ECB0: .4byte gUnknown_202EE10
thumb_func_end sub_803EC94
thumb_func_start sub_803ECB4
sub_803ECB4:
push {r4,r5,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
ldr r1, _0803ECDC
movs r0, 0xA
str r0, [r1]
movs r0, 0
bl sub_8052210
bl sub_8004914
adds r0, r5, 0
movs r1, 0x1
adds r2, r4, 0
bl sub_800641C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803ECDC: .4byte gUnknown_202EDD0
thumb_func_end sub_803ECB4
thumb_func_start sub_803ECE0
sub_803ECE0:
push {lr}
ldr r1, _0803ED24
ldr r0, [r1]
adds r0, 0x1
str r0, [r1]
cmp r0, 0
bge _0803ECF2
movs r0, 0
str r0, [r1]
_0803ECF2:
ldr r0, [r1]
cmp r0, 0xB
ble _0803ECFC
movs r0, 0
str r0, [r1]
_0803ECFC:
ldr r0, _0803ED28
ldr r2, [r0]
ldr r0, [r1]
cmp r0, 0
bge _0803ED08
adds r0, 0x3
_0803ED08:
asrs r1, r0, 2
lsls r0, r1, 3
adds r0, r1
lsls r0, 6
ldr r1, [r2, 0x4]
adds r1, r0
movs r2, 0x90
lsls r2, 2
ldr r0, _0803ED2C
bl sub_80098BC
pop {r0}
bx r0
.align 2, 0
_0803ED24: .4byte gUnknown_202EDD8
_0803ED28: .4byte gUnknown_202EC94
_0803ED2C: .4byte 0x06014400
thumb_func_end sub_803ECE0
thumb_func_start sub_803ED30
sub_803ED30:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r5, r0, 0
adds r7, r1, 0
mov r9, r3
lsls r2, 24
lsrs r2, 24
mov r8, r2
cmp r5, 0
beq _0803EDDA
ldr r0, _0803EDAC
ldr r0, [r0]
ldr r1, _0803EDB0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0803EDDA
movs r4, 0
ldr r1, _0803EDB4
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _0803ED78
adds r6, r1, 0
_0803ED64:
movs r0, 0x29
bl sub_803E46C
adds r4, 0x1
cmp r4, 0x13
bgt _0803ED78
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0803ED64
_0803ED78:
adds r0, r5, 0
mov r1, r8
bl sub_803EF90
ldr r3, _0803EDB4
movs r2, 0
movs r1, 0x3C
strh r1, [r3]
str r7, [r3, 0x4]
ldrh r1, [r7, 0x26]
str r1, [r3, 0x8]
lsls r1, r0, 1
adds r1, r0
lsls r1, 8
negs r1, r1
str r1, [r3, 0xC]
str r2, [r3, 0x10]
mov r2, r9
cmp r2, 0
bge _0803EDC8
ldr r0, _0803EDB8
cmp r5, r0
bge _0803EDBC
movs r0, 0x6
b _0803EDCA
.align 2, 0
_0803EDAC: .4byte gUnknown_203B418
_0803EDB0: .4byte 0x0001820a
_0803EDB4: .4byte gUnknown_202EDE8
_0803EDB8: .4byte 0xfffffc19
_0803EDBC:
cmp r5, 0
blt _0803EDC4
movs r0, 0xA
b _0803EDCA
_0803EDC4:
movs r0, 0x3
b _0803EDCA
_0803EDC8:
mov r0, r9
_0803EDCA:
strh r0, [r3, 0x2]
ldr r0, _0803EDE8
ldr r1, _0803EDEC
ldr r1, [r1]
adds r1, 0x18
movs r2, 0x80
bl sub_80098BC
_0803EDDA:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803EDE8: .4byte 0x060142c0
_0803EDEC: .4byte gUnknown_203B418
thumb_func_end sub_803ED30
thumb_func_start sub_803EDF0
sub_803EDF0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r6, _0803EE18
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0
bne _0803EE06
b _0803EF42
_0803EE06:
ldr r0, [r6, 0x4]
bl sub_80450E0
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _0803EE1C
strh r0, [r6]
b _0803EF42
.align 2, 0
_0803EE18: .4byte gUnknown_202EDE8
_0803EE1C:
ldr r1, [r6, 0x4]
ldr r0, [r6, 0x8]
ldrh r2, [r1, 0x26]
cmp r0, r2
beq _0803EE2C
movs r0, 0
strh r0, [r6]
b _0803EF42
_0803EE2C:
ldrh r0, [r6]
subs r0, 0x1
strh r0, [r6]
ldr r4, [r6, 0x10]
adds r3, r4, 0
subs r3, 0x2E
str r3, [r6, 0x10]
ldr r2, [r1, 0x70]
movs r5, 0xB8
lsls r5, 1
adds r0, r2, r5
movs r1, 0
ldrsh r0, [r0, r1]
ldr r1, [r6, 0xC]
cmp r1, 0
bge _0803EE4E
adds r1, 0xFF
_0803EE4E:
asrs r1, 8
adds r1, r0, r1
ldr r0, _0803EF50
ldr r0, [r0]
mov r12, r0
ldr r0, _0803EF54
add r0, r12
movs r5, 0
ldrsh r0, [r0, r5]
subs r7, r1, r0
movs r1, 0xB9
lsls r1, 1
adds r0, r2, r1
movs r2, 0
ldrsh r0, [r0, r2]
adds r1, r3, 0
cmp r1, 0
bge _0803EE76
adds r1, r4, 0
adds r1, 0xD1
_0803EE76:
asrs r1, 8
adds r1, r0, r1
ldr r0, _0803EF58
add r0, r12
movs r3, 0
ldrsh r0, [r0, r3]
adds r0, 0x18
subs r2, r1, r0
movs r0, 0x20
negs r0, r0
cmp r7, r0
blt _0803EF42
adds r0, 0x18
cmp r2, r0
blt _0803EF42
cmp r7, 0xEF
bgt _0803EF42
cmp r2, 0x9F
bgt _0803EF42
ldr r1, _0803EF5C
ands r1, r2
lsls r1, 4
ldr r0, _0803EF60
ldrh r2, [r0, 0x6]
movs r4, 0xF
mov r8, r4
mov r3, r8
ands r3, r2
orrs r3, r1
strh r3, [r0, 0x6]
ldrh r2, [r0]
ldr r1, _0803EF64
ands r1, r2
ldr r2, _0803EF68
ands r1, r2
movs r5, 0x3
mov r9, r5
ldr r2, _0803EF6C
mov r10, r2
ands r1, r2
ldr r2, _0803EF70
ands r1, r2
ldr r2, _0803EF74
ands r1, r2
movs r5, 0x80
lsls r5, 7
ldr r4, _0803EF78
ands r1, r4
orrs r1, r5
strh r1, [r0]
ldr r1, _0803EF7C
ands r7, r1
ldrh r2, [r0, 0x2]
movs r1, 0xFE
lsls r1, 8
ands r1, r2
orrs r1, r7
ldr r2, _0803EF80
ands r1, r2
ands r1, r4
orrs r1, r5
strh r1, [r0, 0x2]
ldr r4, _0803EF84
ldrh r2, [r0, 0x4]
movs r1, 0xFC
lsls r1, 8
ands r1, r2
orrs r1, r4
movs r2, 0
orrs r1, r2
strh r1, [r0, 0x4]
ldr r2, _0803EF88
add r2, r12
ldrb r2, [r2]
mov r4, r9
ands r2, r4
lsls r2, 10
mov r5, r10
ands r1, r5
orrs r1, r2
movs r4, 0x2
ldrsh r2, [r6, r4]
mov r5, r8
ands r2, r5
lsls r2, 12
ldr r4, _0803EF5C
ands r1, r4
orrs r1, r2
strh r1, [r0, 0x4]
ldr r1, _0803EF8C
ands r3, r1
subs r1, 0x1
ands r3, r1
subs r1, 0x2
ands r3, r1
strh r3, [r0, 0x6]
movs r1, 0x80
lsls r1, 1
movs r2, 0
movs r3, 0
bl AddSprite
_0803EF42:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803EF50: .4byte gUnknown_203B418
_0803EF54: .4byte 0x000181f0
_0803EF58: .4byte 0x000181f2
_0803EF5C: .4byte 0x00000fff
_0803EF60: .4byte gUnknown_202EDDC
_0803EF64: .4byte 0x0000feff
_0803EF68: .4byte 0x0000fdff
_0803EF6C: .4byte 0x0000f3ff
_0803EF70: .4byte 0x0000efff
_0803EF74: .4byte 0x0000dfff
_0803EF78: .4byte 0x00003fff
_0803EF7C: .4byte 0x000001ff
_0803EF80: .4byte 0x0000c1ff
_0803EF84: .4byte 0x00000216
_0803EF88: .4byte 0x00018208
_0803EF8C: .4byte 0x0000fffe
thumb_func_end sub_803EDF0
thumb_func_start sub_803EF90
sub_803EF90:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x58
str r0, [sp, 0x48]
lsls r1, 24
lsrs r5, r1, 24
ldr r0, _0803F060
ldr r0, [r0]
adds r0, 0x18
mov r8, r0
ldr r0, _0803F064
ldr r1, [r0]
ldr r0, [r1, 0x4]
movs r2, 0x92
lsls r2, 1
adds r0, r2
str r0, [sp, 0x24]
ldr r0, [r1, 0x4]
movs r3, 0x82
lsls r3, 1
adds r0, r3
str r0, [sp, 0x28]
ldr r0, [r1, 0x4]
adds r0, 0xE4
str r0, [sp, 0x2C]
ldr r0, [r1, 0x4]
adds r0, 0xC4
str r0, [sp, 0x30]
ldr r0, [r1, 0x4]
adds r0, 0xA4
str r0, [sp, 0x34]
ldr r0, [r1, 0x4]
adds r0, 0x84
str r0, [sp, 0x38]
ldr r0, [r1, 0x4]
adds r0, 0x64
str r0, [sp, 0x3C]
ldr r0, [r1, 0x4]
adds r0, 0x44
str r0, [sp, 0x40]
ldr r0, [r1, 0x4]
adds r0, 0x24
str r0, [sp, 0x44]
add r4, sp, 0x24
mov r0, sp
adds r1, r4, 0
movs r2, 0x24
bl memcpy
movs r1, 0
movs r6, 0x3
mov r0, r8
_0803EFFE:
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
stm r0!, {r1}
subs r6, 0x1
cmp r6, 0
bge _0803EFFE
ldr r0, _0803F068
ldr r1, [sp, 0x48]
cmp r1, r0
bne _0803F0A6
adds r0, r4, 0
ldr r1, _0803F06C
ldm r1!, {r2,r3,r5}
stm r0!, {r2,r3,r5}
ldr r1, [r1]
str r1, [r0]
movs r5, 0
movs r2, 0
mov r12, r4
movs r0, 0x20
mov r10, r0
_0803F032:
mov r3, r8
ldr r0, _0803F064
ldr r1, [r0]
lsls r0, r2, 2
add r0, r12
ldr r0, [r0]
lsls r0, 5
adds r0, 0x4
ldr r1, [r1, 0x4]
adds r4, r1, r0
movs r1, 0x18
adds r1, r5
mov r9, r1
adds r2, 0x1
str r2, [sp, 0x54]
mov r2, r10
subs r7, r2, r5
movs r6, 0x7
_0803F056:
cmp r5, 0
bne _0803F070
movs r1, 0
ldr r2, [r4]
b _0803F07A
.align 2, 0
_0803F060: .4byte gUnknown_203B418
_0803F064: .4byte gUnknown_202EC9C
_0803F068: .4byte 0x0000270f
_0803F06C: .4byte gUnknown_80F6478
_0803F070:
ldr r0, [r4]
adds r1, r0, 0
lsrs r1, r7
adds r2, r0, 0
lsls r2, r5
_0803F07A:
adds r4, 0x4
ldr r0, [r3]
orrs r0, r2
str r0, [r3]
ldr r0, [r3, 0x20]
orrs r0, r1
str r0, [r3, 0x20]
adds r3, 0x4
subs r6, 0x1
cmp r6, 0
bge _0803F056
mov r5, r9
cmp r5, 0x1F
ble _0803F09C
subs r5, 0x20
movs r3, 0x20
add r8, r3
_0803F09C:
ldr r2, [sp, 0x54]
cmp r2, 0x3
ble _0803F032
movs r0, 0x4
b _0803F26A
_0803F0A6:
ldr r0, _0803F0D8
ldr r1, [sp, 0x48]
cmp r1, r0
ble _0803F0B0
str r0, [sp, 0x48]
_0803F0B0:
ldr r0, _0803F0DC
ldr r2, [sp, 0x48]
cmp r2, r0
bge _0803F0BA
str r0, [sp, 0x48]
_0803F0BA:
ldr r1, _0803F0E0
ldr r0, [r1]
ldr r0, [r0, 0x4]
movs r3, 0xC2
lsls r3, 1
adds r2, r0, r3
cmp r5, 0
beq _0803F0F4
ldr r5, [sp, 0x48]
cmp r5, 0
ble _0803F0E4
movs r1, 0xA2
lsls r1, 1
adds r2, r0, r1
b _0803F0F4
.align 2, 0
_0803F0D8: .4byte 0x000003e7
_0803F0DC: .4byte 0xfffffc19
_0803F0E0: .4byte gUnknown_202EC9C
_0803F0E4:
ldr r3, [sp, 0x48]
cmp r3, 0
bge _0803F0F4
movs r5, 0xB2
lsls r5, 1
adds r2, r0, r5
negs r3, r3
str r3, [sp, 0x48]
_0803F0F4:
ldm r2!, {r0}
mov r1, r8
str r0, [r1]
ldm r2!, {r0}
str r0, [r1, 0x4]
ldm r2!, {r0}
str r0, [r1, 0x8]
ldm r2!, {r0}
str r0, [r1, 0xC]
ldm r2!, {r0}
str r0, [r1, 0x10]
ldm r2!, {r0}
str r0, [r1, 0x14]
ldm r2!, {r0}
str r0, [r1, 0x18]
ldr r0, [r2]
str r0, [r1, 0x1C]
movs r5, 0x18
movs r2, 0x1
str r2, [sp, 0x4C]
movs r3, 0
str r3, [sp, 0x50]
movs r2, 0
_0803F122:
movs r0, 0
mov r10, r0
adds r1, r2, 0x1
str r1, [sp, 0x54]
lsls r0, r2, 3
adds r0, r2
lsls r0, 2
mov r1, sp
ldr r2, _0803F15C
adds r7, r0, r2
_0803F136:
ldr r0, [r7]
ldr r3, [sp, 0x48]
cmp r0, r3
bgt _0803F1A2
ldr r4, [r1]
mov r2, r8
movs r0, 0x18
adds r0, r5
mov r9, r0
movs r1, 0x20
subs r1, r5
mov r12, r1
movs r6, 0x7
_0803F150:
cmp r5, 0
bne _0803F160
movs r3, 0
ldr r1, [r4]
b _0803F16C
.align 2, 0
_0803F15C: .4byte gUnknown_80F6430
_0803F160:
ldr r0, [r4]
adds r3, r0, 0
mov r1, r12
lsrs r3, r1
adds r1, r0, 0
lsls r1, r5
_0803F16C:
adds r4, 0x4
ldr r0, [r2]
orrs r0, r1
str r0, [r2]
ldr r0, [r2, 0x20]
orrs r0, r3
str r0, [r2, 0x20]
adds r2, 0x4
movs r3, 0x1
str r3, [sp, 0x50]
subs r6, 0x1
cmp r6, 0
bge _0803F150
mov r5, r9
cmp r5, 0x1F
ble _0803F192
subs r5, 0x20
movs r0, 0x20
add r8, r0
_0803F192:
ldr r0, [r7]
ldr r1, [sp, 0x48]
subs r1, r0
str r1, [sp, 0x48]
ldr r2, [sp, 0x4C]
adds r2, 0x1
str r2, [sp, 0x4C]
b _0803F1B0
_0803F1A2:
adds r1, 0x4
adds r7, 0x4
movs r3, 0x1
add r10, r3
mov r0, r10
cmp r0, 0x8
ble _0803F136
_0803F1B0:
mov r1, r10
cmp r1, 0x9
bne _0803F212
ldr r2, [sp, 0x50]
cmp r2, 0
beq _0803F212
ldr r3, _0803F1DC
ldr r0, [r3]
ldr r0, [r0, 0x4]
adds r4, r0, 0x4
mov r2, r8
movs r0, 0x18
adds r0, r5
mov r9, r0
movs r1, 0x20
subs r7, r1, r5
movs r6, 0x7
_0803F1D2:
cmp r5, 0
bne _0803F1E0
movs r3, 0
ldr r1, [r4]
b _0803F1EA
.align 2, 0
_0803F1DC: .4byte gUnknown_202EC9C
_0803F1E0:
ldr r0, [r4]
adds r3, r0, 0
lsrs r3, r7
adds r1, r0, 0
lsls r1, r5
_0803F1EA:
adds r4, 0x4
ldr r0, [r2]
orrs r0, r1
str r0, [r2]
ldr r0, [r2, 0x20]
orrs r0, r3
str r0, [r2, 0x20]
adds r2, 0x4
subs r6, 0x1
cmp r6, 0
bge _0803F1D2
mov r5, r9
cmp r5, 0x1F
ble _0803F20C
subs r5, 0x20
movs r2, 0x20
add r8, r2
_0803F20C:
ldr r3, [sp, 0x4C]
adds r3, 0x1
str r3, [sp, 0x4C]
_0803F212:
ldr r2, [sp, 0x54]
cmp r2, 0x1
ble _0803F122
ldr r0, _0803F240
ldr r1, [r0]
ldr r2, [sp, 0x48]
lsls r0, r2, 5
adds r0, 0x4
ldr r1, [r1, 0x4]
adds r1, r0
mov r3, r8
ldr r0, [sp, 0x4C]
adds r0, 0x1
mov r8, r0
movs r0, 0x20
subs r7, r0, r5
movs r6, 0x7
_0803F234:
cmp r5, 0
bne _0803F244
movs r4, 0
ldr r2, [r1]
b _0803F24E
.align 2, 0
_0803F240: .4byte gUnknown_202EC9C
_0803F244:
ldr r0, [r1]
adds r4, r0, 0
lsrs r4, r7
adds r2, r0, 0
lsls r2, r5
_0803F24E:
adds r1, 0x4
ldr r0, [r3]
orrs r0, r2
str r0, [r3]
ldr r0, [r3, 0x20]
orrs r0, r4
str r0, [r3, 0x20]
adds r3, 0x4
subs r6, 0x1
cmp r6, 0
bge _0803F234
mov r1, r8
str r1, [sp, 0x4C]
adds r0, r1, 0
_0803F26A:
add sp, 0x58
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_803EF90
thumb_func_start sub_803F27C
sub_803F27C:
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r0, _0803F360
mov r8, r0
ldr r4, [r0]
ldr r2, _0803F364
adds r1, r4, r2
movs r2, 0
movs r3, 0
strh r3, [r1, 0x8]
strh r3, [r1, 0xA]
strh r3, [r1]
strh r3, [r1, 0x2]
strh r3, [r1, 0xC]
strh r3, [r1, 0xE]
strh r3, [r1, 0x4]
strh r3, [r1, 0x6]
str r3, [r1, 0x14]
ldr r5, _0803F368
adds r0, r4, r5
strb r2, [r0]
ldr r6, _0803F36C
adds r0, r4, r6
movs r5, 0x1
strb r5, [r0]
adds r6, 0x1
adds r0, r4, r6
strb r5, [r0]
adds r6, 0x1
adds r0, r4, r6
strb r2, [r0]
str r3, [r1, 0x18]
str r3, [r1, 0x1C]
cmp r7, 0
bne _0803F2FA
subs r6, 0xF
adds r0, r4, r6
strb r2, [r0]
adds r6, 0x6
adds r0, r4, r6
strb r2, [r0]
subs r6, 0x1
adds r0, r4, r6
strb r2, [r0]
subs r6, 0x2
adds r0, r4, r6
strb r2, [r0]
adds r6, 0x4
adds r0, r4, r6
strb r2, [r0]
subs r6, 0x3
adds r0, r4, r6
strb r2, [r0]
subs r6, 0x3
adds r0, r4, r6
strb r2, [r0]
adds r6, 0x1
adds r0, r4, r6
strb r2, [r0]
_0803F2FA:
str r3, [r1, 0x10]
ldr r1, _0803F370
adds r0, r4, r1
movs r6, 0x3
strb r6, [r0]
adds r1, 0x12
adds r0, r4, r1
strb r2, [r0]
subs r1, 0x8
adds r0, r4, r1
strb r2, [r0]
adds r1, 0x9
adds r0, r4, r1
strb r2, [r0]
adds r1, 0x1
adds r0, r4, r1
strb r2, [r0]
subs r1, 0x8
adds r0, r4, r1
strb r2, [r0]
ldr r2, _0803F374
adds r0, r4, r2
strb r5, [r0]
bl sub_803F38C
ldr r1, _0803F378
ldr r0, _0803F37C
str r0, [r1]
cmp r7, 0
bne _0803F354
mov r1, r8
ldr r0, [r1]
ldr r2, _0803F380
adds r0, r2
ldrb r1, [r0]
adds r0, r6, 0
ands r0, r1
ldr r6, _0803F384
adds r1, r4, r6
strb r0, [r1]
cmp r0, 0
bne _0803F354
ldr r1, _0803F388
adds r0, r4, r1
strb r5, [r0]
_0803F354:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803F360: .4byte gUnknown_203B418
_0803F364: .4byte 0x000181e8
_0803F368: .4byte 0x00018216
_0803F36C: .4byte 0x00018217
_0803F370: .4byte 0x00018208
_0803F374: .4byte 0x00018215
_0803F378: .4byte gUnknown_202EDFC
_0803F37C: .4byte 0x0000ffff
_0803F380: .4byte 0x0001c58a
_0803F384: .4byte 0x00018209
_0803F388: .4byte 0x0001820c
thumb_func_end sub_803F27C
thumb_func_start sub_803F38C
sub_803F38C:
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r0, _0803F410
ldr r1, [r0]
ldr r0, _0803F414
adds r2, r1, r0
ldr r0, _0803F418
strh r0, [r2, 0x3A]
movs r0, 0x1
negs r0, r0
strh r0, [r2, 0x3C]
strh r0, [r2, 0x3E]
ldr r0, _0803F41C
adds r1, r0
movs r0, 0x1
negs r0, r0
strh r0, [r1]
strh r0, [r2, 0x36]
strh r0, [r2, 0x38]
ldr r0, _0803F420
ldr r0, [r0]
ldrb r0, [r0, 0xB]
negs r4, r0
orrs r4, r0
asrs r4, 31
movs r0, 0x80
lsls r0, 1
ands r4, r0
ldr r5, _0803F424
adds r0, r4, r5
mov r8, r0
movs r0, 0xFD
mov r1, r8
bl SetBGPaletteBufferColorArray
adds r6, r5, 0x4
adds r6, r4, r6
movs r0, 0xFE
adds r1, r6, 0
bl SetBGPaletteBufferColorArray
adds r5, 0x8
adds r4, r5
movs r0, 0xFF
adds r1, r4, 0
bl SetBGPaletteBufferColorArray
movs r0, 0xFD
mov r1, r8
bl nullsub_5
movs r0, 0xFE
adds r1, r6, 0
bl nullsub_5
movs r0, 0xFF
adds r1, r4, 0
bl nullsub_5
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803F410: .4byte gUnknown_203B418
_0803F414: .4byte 0x000181e8
_0803F418: .4byte 0x0000ffff
_0803F41C: .4byte 0x00018228
_0803F420: .4byte gUnknown_203B46C
_0803F424: .4byte gUnknown_202D06C
thumb_func_end sub_803F38C
thumb_func_start sub_803F428
sub_803F428:
push {r4-r6,lr}
adds r4, r0, 0
ldr r0, _0803F484
ldr r3, [r0]
ldr r0, _0803F488
adds r2, r3, r0
ldr r5, [r2, 0x10]
movs r6, 0
ldrsh r1, [r2, r6]
movs r6, 0
ldrsh r0, [r4, r6]
subs r1, r0
cmp r1, 0
bge _0803F446
negs r1, r1
_0803F446:
cmp r1, 0x6
bgt _0803F498
movs r0, 0x2
ldrsh r1, [r2, r0]
movs r6, 0x2
ldrsh r0, [r4, r6]
subs r1, r0
cmp r1, 0
bge _0803F45A
negs r1, r1
_0803F45A:
cmp r1, 0x5
bgt _0803F498
ldr r1, _0803F48C
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
bne _0803F494
ldr r6, _0803F490
adds r0, r3, r6
ldrb r0, [r0]
cmp r0, 0
bne _0803F494
cmp r5, 0
beq _0803F494
adds r0, r2, 0
adds r1, r4, 0
bl sub_8083294
lsls r0, 24
lsrs r0, 24
b _0803F49A
.align 2, 0
_0803F484: .4byte gUnknown_203B418
_0803F488: .4byte 0x000181e8
_0803F48C: .4byte 0x0001820b
_0803F490: .4byte 0x0001820c
_0803F494:
movs r0, 0x1
b _0803F49A
_0803F498:
movs r0, 0
_0803F49A:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_803F428
thumb_func_start sub_803F4A0
sub_803F4A0:
push {lr}
adds r2, r0, 0
ldr r0, _0803F4B8
ldr r1, [r0]
ldr r3, _0803F4BC
adds r0, r1, r3
str r2, [r0, 0x10]
cmp r2, 0
bne _0803F4C0
adds r3, 0x2E
b _0803F4CA
.align 2, 0
_0803F4B8: .4byte gUnknown_203B418
_0803F4BC: .4byte 0x000181e8
_0803F4C0:
ldr r0, [r2, 0x70]
ldrb r2, [r0, 0x7]
cmp r2, 0
bne _0803F4D4
ldr r3, _0803F4D0
_0803F4CA:
adds r0, r1, r3
strb r2, [r0]
b _0803F4DC
.align 2, 0
_0803F4D0: .4byte 0x00018216
_0803F4D4:
ldr r0, _0803F4FC
adds r1, r0
movs r0, 0x1
strb r0, [r1]
_0803F4DC:
movs r0, 0
bl sub_803F580
bl sub_803F38C
ldr r0, _0803F500
ldr r0, [r0]
ldr r1, _0803F504
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0803F4F8
bl sub_806CD90
_0803F4F8:
pop {r0}
bx r0
.align 2, 0
_0803F4FC: .4byte 0x00018216
_0803F500: .4byte gUnknown_203B418
_0803F504: .4byte 0x0001356c
thumb_func_end sub_803F4A0
thumb_func_start sub_803F508
sub_803F508:
push {r4,r5,lr}
adds r3, r0, 0
ldr r0, _0803F520
ldr r1, [r0]
ldr r0, _0803F524
adds r4, r1, r0
cmp r3, 0
bne _0803F52C
ldr r2, _0803F528
adds r0, r1, r2
strb r3, [r0]
b _0803F548
.align 2, 0
_0803F520: .4byte gUnknown_203B418
_0803F524: .4byte 0x000181e8
_0803F528: .4byte 0x00018216
_0803F52C:
ldr r0, [r3, 0x70]
ldrb r2, [r0, 0x7]
cmp r2, 0
bne _0803F540
ldr r5, _0803F53C
adds r0, r1, r5
strb r2, [r0]
b _0803F548
.align 2, 0
_0803F53C: .4byte 0x00018216
_0803F540:
ldr r0, _0803F574
adds r1, r0
movs r0, 0x1
strb r0, [r1]
_0803F548:
str r3, [r4, 0x10]
movs r0, 0
bl sub_803F580
bl sub_803F38C
ldr r0, _0803F578
ldr r0, [r0]
ldr r1, _0803F57C
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0803F566
bl sub_806CD90
_0803F566:
bl sub_8049ED4
bl sub_8040A84
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803F574: .4byte 0x00018216
_0803F578: .4byte gUnknown_203B418
_0803F57C: .4byte 0x0001356c
thumb_func_end sub_803F508
thumb_func_start sub_803F580
sub_803F580:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r9, r0
ldr r0, _0803F600
ldr r4, [r0]
ldr r0, _0803F604
adds r5, r4, r0
ldr r6, [r5, 0x10]
cmp r6, 0
bne _0803F59E
b _0803F7A0
_0803F59E:
adds r0, r6, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
bne _0803F5AC
b _0803F7A0
_0803F5AC:
ldr r7, [r6, 0x70]
ldr r0, [r5, 0x8]
str r0, [r5, 0xC]
ldr r0, [r5]
str r0, [r5, 0x4]
ldrh r0, [r6, 0x4]
strh r0, [r5]
ldrh r0, [r6, 0x6]
strh r0, [r5, 0x2]
ldr r0, [r6, 0xC]
cmp r0, 0
bge _0803F5C6
adds r0, 0xFF
_0803F5C6:
asrs r0, 8
subs r0, 0x78
strh r0, [r5, 0x8]
ldr r0, [r6, 0x10]
cmp r0, 0
bge _0803F5D4
adds r0, 0xFF
_0803F5D4:
asrs r0, 8
subs r0, 0x60
strh r0, [r5, 0xA]
adds r0, r6, 0
movs r1, 0x11
bl sub_8046CB0
lsls r0, 24
cmp r0, 0
beq _0803F610
ldrb r0, [r7, 0x7]
cmp r0, 0
beq _0803F610
ldr r1, _0803F608
adds r0, r4, r1
movs r1, 0x1
strb r1, [r0]
ldr r2, _0803F60C
adds r0, r4, r2
strb r1, [r0]
b _0803F626
.align 2, 0
_0803F600: .4byte gUnknown_203B418
_0803F604: .4byte 0x000181e8
_0803F608: .4byte 0x0001820d
_0803F60C: .4byte 0x0001820e
_0803F610:
adds r0, r7, 0
adds r0, 0xF0
ldrb r0, [r0]
adds r1, r5, 0
adds r1, 0x25
strb r0, [r1]
adds r0, r7, 0
adds r0, 0xF1
ldrb r0, [r0]
adds r1, 0x1
strb r0, [r1]
_0803F626:
adds r0, r7, 0
adds r0, 0xF2
ldrb r0, [r0]
adds r1, r5, 0
adds r1, 0x29
strb r0, [r1]
subs r1, 0x7
ldrb r0, [r1]
mov r8, r0
adds r0, r5, 0
adds r0, 0x2C
ldrb r2, [r0]
adds r4, r1, 0
cmp r2, 0
bne _0803F670
adds r0, r7, 0
adds r0, 0xE8
ldrb r1, [r0]
adds r7, r0, 0
cmp r1, 0x1
bne _0803F656
strb r1, [r4]
movs r1, 0xE
b _0803F65A
_0803F656:
strb r2, [r4]
movs r1, 0
_0803F65A:
ldr r2, _0803F66C
ldr r0, [r2]
cmp r0, r1
beq _0803F678
str r1, [r2]
adds r0, r1, 0
bl SetBGOBJEnableFlags
b _0803F678
.align 2, 0
_0803F66C: .4byte gUnknown_202EDFC
_0803F670:
ldr r1, _0803F698
ldr r0, _0803F69C
str r0, [r1]
adds r7, 0xE8
_0803F678:
ldrb r4, [r4]
cmp r8, r4
beq _0803F684
movs r0, 0
bl sub_8041888
_0803F684:
adds r0, r5, 0
adds r0, 0x28
ldrb r1, [r0]
mov r8, r1
ldrb r1, [r7]
adds r2, r0, 0
cmp r1, 0x2
bne _0803F6A0
movs r0, 0x1
b _0803F6A2
.align 2, 0
_0803F698: .4byte gUnknown_202EDFC
_0803F69C: .4byte 0x0000ffff
_0803F6A0:
movs r0, 0
_0803F6A2:
strb r0, [r2]
ldrb r2, [r2]
cmp r8, r2
beq _0803F6B4
bl sub_806CC70
movs r0, 0
bl sub_8041888
_0803F6B4:
adds r4, r5, 0
adds r4, 0x27
ldrb r2, [r4]
mov r8, r2
adds r0, r6, 0
bl sub_8071884
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _0803F6CC
movs r0, 0x1
_0803F6CC:
strb r0, [r4]
ldrb r4, [r4]
cmp r8, r4
beq _0803F6E2
bl sub_8049ED4
bl sub_8040A84
movs r0, 0
bl sub_8041888
_0803F6E2:
mov r0, r9
cmp r0, 0
beq _0803F76A
adds r0, r5, 0
adds r0, 0x2B
ldrb r1, [r0]
adds r4, r0, 0
cmp r1, 0
bne _0803F76A
movs r2, 0xC
ldrsh r1, [r5, r2]
movs r2, 0x8
ldrsh r0, [r5, r2]
subs r1, r0
cmp r1, 0
bge _0803F704
negs r1, r1
_0803F704:
cmp r1, 0x7
bgt _0803F71C
movs r0, 0xE
ldrsh r1, [r5, r0]
movs r2, 0xA
ldrsh r0, [r5, r2]
subs r1, r0
cmp r1, 0
bge _0803F718
negs r1, r1
_0803F718:
cmp r1, 0x7
ble _0803F726
_0803F71C:
bl sub_8049ED4
movs r0, 0x1
strb r0, [r4]
b _0803F76A
_0803F726:
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r2, 0x8
ldrsh r0, [r5, r2]
cmp r1, r0
bge _0803F73C
movs r0, 0xF0
movs r1, 0
bl sub_804A1F0
b _0803F748
_0803F73C:
cmp r1, r0
ble _0803F748
movs r0, 0
movs r1, 0
bl sub_804A1F0
_0803F748:
movs r0, 0xE
ldrsh r1, [r5, r0]
movs r2, 0xA
ldrsh r0, [r5, r2]
cmp r1, r0
bge _0803F75E
movs r0, 0
movs r1, 0xA0
bl sub_804A49C
b _0803F76A
_0803F75E:
cmp r1, r0
ble _0803F76A
movs r0, 0
movs r1, 0
bl sub_804A49C
_0803F76A:
ldr r1, [r5]
ldr r0, [r5, 0x4]
cmp r1, r0
beq _0803F7A0
movs r5, 0
_0803F774:
ldr r0, _0803F7B4
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _0803F7B8
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _0803F79A
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
bl sub_80402AC
_0803F79A:
adds r5, 0x1
cmp r5, 0x13
ble _0803F774
_0803F7A0:
bl sub_80400D4
bl sub_803F7BC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803F7B4: .4byte gUnknown_203B418
_0803F7B8: .4byte 0x000135cc
thumb_func_end sub_803F580
thumb_func_start sub_803F7BC
sub_803F7BC:
push {r4-r6,lr}
sub sp, 0x10
ldr r6, _0803F800
ldr r4, [r6]
ldr r0, _0803F804
adds r5, r4, r0
movs r1, 0
ldrsh r0, [r5, r1]
movs r2, 0x2
ldrsh r1, [r5, r2]
bl sub_804954C
ldrb r1, [r0, 0x9]
ldr r2, _0803F808
adds r0, r4, r2
ldrb r0, [r0]
cmp r0, 0
bne _0803F7F4
adds r2, 0x1
adds r0, r4, r2
ldrb r0, [r0]
cmp r0, 0
bne _0803F7F4
adds r2, 0xB
adds r0, r4, r2
ldrb r0, [r0]
cmp r0, 0
beq _0803F80C
_0803F7F4:
movs r0, 0
movs r1, 0
bl sub_8005838
b _0803F86A
.align 2, 0
_0803F800: .4byte gUnknown_203B418
_0803F804: .4byte 0x000181e8
_0803F808: .4byte 0x0001820b
_0803F80C:
cmp r1, 0xFF
bne _0803F82C
ldr r1, _0803F828
adds r0, r4, r1
ldrb r0, [r0]
movs r1, 0x2
cmp r0, 0x2
bne _0803F81E
movs r1, 0x1
_0803F81E:
movs r0, 0
bl sub_8005838
b _0803F86A
.align 2, 0
_0803F828: .4byte 0x00018209
_0803F82C:
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
ldr r2, _0803F874
adds r0, r2
ldr r2, [r6]
adds r2, r0
movs r0, 0x8
ldrsh r1, [r5, r0]
ldr r0, [r2, 0xC]
subs r0, r1
str r0, [sp]
movs r0, 0xA
ldrsh r1, [r5, r0]
ldr r0, [r2, 0x10]
subs r0, r1
str r0, [sp, 0x4]
movs r0, 0x8
ldrsh r1, [r5, r0]
ldr r0, [r2, 0x14]
subs r0, r1
str r0, [sp, 0x8]
movs r0, 0xA
ldrsh r1, [r5, r0]
ldr r0, [r2, 0x18]
subs r0, r1
str r0, [sp, 0xC]
mov r0, sp
movs r1, 0x3
bl sub_8005838
_0803F86A:
add sp, 0x10
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803F874: .4byte 0x000104c4
thumb_func_end sub_803F7BC
thumb_func_start sub_803F878
sub_803F878:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r2, r0, 0
adds r6, r1, 0
ldr r0, _0803F92C
ldr r7, [r0]
ldr r0, _0803F930
adds r5, r7, r0
ldr r0, [r5, 0x8]
str r0, [r5, 0xC]
ldr r0, [r5]
str r0, [r5, 0x4]
adds r0, r2, 0
cmp r2, 0
bge _0803F89A
adds r0, 0xFF
_0803F89A:
asrs r0, 8
subs r0, 0x78
movs r1, 0
mov r8, r1
strh r0, [r5, 0x8]
adds r0, r6, 0
cmp r6, 0
bge _0803F8AC
adds r0, 0xFF
_0803F8AC:
asrs r0, 8
subs r0, 0x60
strh r0, [r5, 0xA]
movs r4, 0xC0
lsls r4, 5
adds r0, r2, 0
adds r1, r4, 0
bl __divsi3
strh r0, [r5]
adds r0, r6, 0
adds r1, r4, 0
bl __divsi3
strh r0, [r5, 0x2]
ldr r2, _0803F934
adds r0, r7, r2
mov r1, r8
strb r1, [r0]
adds r2, 0x1
adds r0, r7, r2
strb r1, [r0]
ldr r1, _0803F938
adds r0, r7, r1
mov r2, r8
strb r2, [r0]
adds r1, 0x5
adds r0, r7, r1
strb r2, [r0]
ldr r1, _0803F93C
ldr r0, [r1]
cmp r0, 0
beq _0803F8F6
movs r0, 0
str r0, [r1]
bl SetBGOBJEnableFlags
_0803F8F6:
movs r2, 0xC
ldrsh r1, [r5, r2]
movs r2, 0x8
ldrsh r0, [r5, r2]
subs r1, r0
cmp r1, 0
bge _0803F906
negs r1, r1
_0803F906:
cmp r1, 0x7
bgt _0803F91E
movs r0, 0xE
ldrsh r1, [r5, r0]
movs r2, 0xA
ldrsh r0, [r5, r2]
subs r1, r0
cmp r1, 0
bge _0803F91A
negs r1, r1
_0803F91A:
cmp r1, 0x7
ble _0803F940
_0803F91E:
bl sub_8049ED4
adds r1, r5, 0
adds r1, 0x2B
movs r0, 0x1
strb r0, [r1]
b _0803F984
.align 2, 0
_0803F92C: .4byte gUnknown_203B418
_0803F930: .4byte 0x000181e8
_0803F934: .4byte 0x0001820d
_0803F938: .4byte 0x00018211
_0803F93C: .4byte gUnknown_202EDFC
_0803F940:
movs r0, 0xC
ldrsh r1, [r5, r0]
movs r2, 0x8
ldrsh r0, [r5, r2]
cmp r1, r0
bge _0803F956
movs r0, 0xF0
movs r1, 0
bl sub_804A1F0
b _0803F962
_0803F956:
cmp r1, r0
ble _0803F962
movs r0, 0
movs r1, 0
bl sub_804A1F0
_0803F962:
movs r0, 0xE
ldrsh r1, [r5, r0]
movs r2, 0xA
ldrsh r0, [r5, r2]
cmp r1, r0
bge _0803F978
movs r0, 0
movs r1, 0xA0
bl sub_804A49C
b _0803F984
_0803F978:
cmp r1, r0
ble _0803F984
movs r0, 0
movs r1, 0
bl sub_804A49C
_0803F984:
bl sub_803F7BC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_803F878
thumb_func_start sub_803F994
sub_803F994:
ldr r0, _0803F9A8
ldr r0, [r0]
ldr r1, _0803F9AC
adds r0, r1
movs r1, 0x8
ldrsh r0, [r0, r1]
adds r0, 0x78
lsls r0, 8
bx lr
.align 2, 0
_0803F9A8: .4byte gUnknown_203B418
_0803F9AC: .4byte 0x000181e8
thumb_func_end sub_803F994
thumb_func_start sub_803F9B0
sub_803F9B0:
ldr r0, _0803F9C4
ldr r0, [r0]
ldr r1, _0803F9C8
adds r0, r1
movs r1, 0xA
ldrsh r0, [r0, r1]
adds r0, 0x60
lsls r0, 8
bx lr
.align 2, 0
_0803F9C4: .4byte gUnknown_203B418
_0803F9C8: .4byte 0x000181e8
thumb_func_end sub_803F9B0
thumb_func_start sub_803F9CC
sub_803F9CC:
push {r4,r5,lr}
ldr r0, _0803FA24
ldr r1, [r0]
ldr r2, _0803FA28
adds r0, r1, r2
ldr r4, [r0]
movs r5, 0
ldr r2, _0803FA2C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _0803FA0C
ldr r2, _0803FA30
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _0803FA0C
bl sub_800EC74
lsls r0, 24
cmp r0, 0
bne _0803FA0C
cmp r4, 0
beq _0803FA08
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x1
bne _0803FA08
movs r5, 0x1
_0803FA08:
cmp r5, 0
bne _0803FA38
_0803FA0C:
ldr r0, _0803FA34
movs r2, 0
adds r0, 0x2
movs r1, 0x1C
_0803FA14:
strh r2, [r0]
adds r0, 0x2
subs r1, 0x1
cmp r1, 0
bge _0803FA14
bl sub_803F38C
b _0803FA3C
.align 2, 0
_0803FA24: .4byte gUnknown_203B418
_0803FA28: .4byte 0x000181f8
_0803FA2C: .4byte 0x0001356c
_0803FA30: .4byte 0x00018218
_0803FA34: .4byte gUnknown_202B038
_0803FA38:
bl sub_803FB74
_0803FA3C:
ldr r1, _0803FA48
movs r0, 0x1
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0803FA48: .4byte gUnknown_20274A5
thumb_func_end sub_803F9CC
thumb_func_start sub_803FA4C
sub_803FA4C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r4, r0, 0
mov r8, r1
lsls r2, 24
lsrs r2, 24
mov r12, r2
ldr r0, _0803FB4C
ldr r3, [r0]
ldr r0, _0803FB50
adds r0, r3, r0
str r0, [sp, 0x24]
ldr r7, _0803FB54
mov r1, sp
ldr r0, _0803FB58
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldm r0!, {r2,r5,r6}
stm r1!, {r2,r5,r6}
ldr r0, _0803FB5C
mov r10, r0
ldr r1, _0803FB60
mov r9, r1
ldr r2, [sp, 0x24]
movs r5, 0x3E
ldrsh r0, [r2, r5]
cmp r4, r0
bne _0803FA9C
ldr r6, _0803FB64
adds r0, r3, r6
movs r1, 0
ldrsh r0, [r0, r1]
cmp r8, r0
beq _0803FB3A
_0803FA9C:
mov r2, r12
cmp r2, 0
bne _0803FAA6
ldr r5, _0803FB68
mov r9, r5
_0803FAA6:
ldr r6, [sp, 0x24]
strh r4, [r6, 0x3E]
ldr r1, _0803FB64
adds r0, r3, r1
mov r2, r8
strh r2, [r0]
mov r5, r8
cmp r5, 0x5F
ble _0803FAC8
movs r5, 0x60
lsls r0, r4, 1
adds r0, r4
lsls r0, 5
mov r1, r8
bl __divsi3
adds r4, r0, 0
_0803FAC8:
movs r3, 0
mov r8, r3
movs r6, 0x58
mov r12, r6
_0803FAD0:
ldr r6, _0803FB6C
adds r2, r4, 0
adds r0, r5, 0
cmp r4, 0x7
ble _0803FADC
movs r2, 0x8
_0803FADC:
cmp r5, 0x7
ble _0803FAE2
movs r0, 0x8
_0803FAE2:
lsls r0, 2
mov r3, sp
adds r1, r3, r0
lsls r0, r2, 2
add r0, sp
ldr r2, [r0]
ldr r3, [r1]
adds r1, r3, 0
bics r1, r2
mov r0, r10
ands r1, r0
mov r0, r9
ands r0, r2
orrs r0, r1
ands r6, r3
mov r1, r8
stm r7!, {r1}
stm r7!, {r6}
stm r7!, {r0}
stm r7!, {r0}
stm r7!, {r0}
stm r7!, {r0}
stm r7!, {r6}
stm r7!, {r1}
subs r4, 0x8
subs r5, 0x8
cmp r4, 0
bge _0803FB1C
movs r4, 0
_0803FB1C:
cmp r5, 0
bge _0803FB22
movs r5, 0
_0803FB22:
movs r2, 0x8
negs r2, r2
add r12, r2
mov r3, r12
cmp r3, 0
bge _0803FAD0
ldr r0, _0803FB70
movs r2, 0xC0
lsls r2, 1
ldr r1, _0803FB54
bl sub_80098BC
_0803FB3A:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803FB4C: .4byte gUnknown_203B418
_0803FB50: .4byte 0x000181e8
_0803FB54: .4byte gUnknown_3001018
_0803FB58: .4byte gUnknown_80F6490
_0803FB5C: .4byte 0x22222222
_0803FB60: .4byte 0x44444444
_0803FB64: .4byte 0x00018228
_0803FB68: .4byte 0x55555555
_0803FB6C: .4byte 0x77777777
_0803FB70: .4byte 0x06005980
thumb_func_end sub_803FA4C
thumb_func_start sub_803FB74
sub_803FB74:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
ldr r0, _0803FBE8
ldr r0, [r0]
ldr r1, _0803FBEC
adds r7, r0, r1
movs r4, 0
movs r2, 0
str r2, [sp]
ldr r0, [r7, 0x10]
ldr r0, [r0, 0x70]
movs r1, 0xE
ldrsh r3, [r0, r1]
mov r9, r3
movs r3, 0x10
ldrsh r2, [r0, r3]
mov r8, r2
ldrb r1, [r0, 0x9]
mov r10, r1
movs r2, 0xE
ldrsh r1, [r0, r2]
cmp r1, 0
ble _0803FBBA
mov r0, r8
cmp r0, 0
bge _0803FBB2
adds r0, 0x3
_0803FBB2:
asrs r0, 2
cmp r1, r0
bgt _0803FBBA
movs r4, 0x1
_0803FBBA:
ldr r0, [r7, 0x10]
ldr r0, [r0, 0x70]
movs r3, 0x9E
lsls r3, 1
adds r0, r3
ldr r0, [r0]
bl sub_8094450
cmp r0, 0
bne _0803FBD2
movs r0, 0x1
str r0, [sp]
_0803FBD2:
cmp r4, 0
beq _0803FBF4
ldr r0, _0803FBF0
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _0803FBF4
movs r5, 0x20
movs r6, 0x20
b _0803FBF8
.align 2, 0
_0803FBE8: .4byte gUnknown_203B418
_0803FBEC: .4byte 0x000181e8
_0803FBF0: .4byte gUnknown_202EDCC
_0803FBF4:
movs r5, 0
movs r6, 0
_0803FBF8:
ldr r1, [sp]
cmp r1, 0
beq _0803FC0E
ldr r0, _0803FC20
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _0803FC0E
movs r5, 0x30
movs r6, 0x30
_0803FC0E:
cmp r5, 0
bne _0803FC30
adds r0, r7, 0
adds r0, 0x2A
ldrb r0, [r0]
cmp r0, 0
beq _0803FC24
movs r5, 0x60
b _0803FC30
.align 2, 0
_0803FC20: .4byte gUnknown_202EDCC
_0803FC24:
ldr r0, _0803FCE4
ldr r0, [r0]
ldrb r0, [r0, 0xB]
cmp r0, 0
beq _0803FC30
movs r5, 0x40
_0803FC30:
cmp r6, 0
bne _0803FC40
ldr r0, _0803FCE4
ldr r0, [r0]
ldrb r0, [r0, 0xB]
cmp r0, 0
beq _0803FC40
movs r6, 0x40
_0803FC40:
movs r2, 0x36
ldrsh r0, [r7, r2]
cmp r0, r5
beq _0803FC78
strh r5, [r7, 0x36]
lsls r5, 2
ldr r4, _0803FCE8
adds r1, r5, r4
movs r0, 0xFC
bl SetBGPaletteBufferColorArray
adds r1, r4, 0x4
adds r1, r5, r1
movs r0, 0xFD
bl SetBGPaletteBufferColorArray
adds r1, r4, 0
adds r1, 0x8
adds r1, r5, r1
movs r0, 0xFE
bl SetBGPaletteBufferColorArray
adds r4, 0xC
adds r5, r4
movs r0, 0xFF
adds r1, r5, 0
bl SetBGPaletteBufferColorArray
_0803FC78:
movs r3, 0x38
ldrsh r0, [r7, r3]
cmp r0, r6
beq _0803FCB0
strh r6, [r7, 0x38]
lsls r5, r6, 2
ldr r4, _0803FCE8
adds r1, r5, r4
movs r0, 0xFC
bl nullsub_5
adds r1, r4, 0x4
adds r1, r5, r1
movs r0, 0xFD
bl nullsub_5
adds r1, r4, 0
adds r1, 0x8
adds r1, r5, r1
movs r0, 0xFE
bl nullsub_5
adds r4, 0xC
adds r5, r4
movs r0, 0xFF
adds r1, r5, 0
bl nullsub_5
_0803FCB0:
ldr r5, _0803FCEC
ldr r0, _0803FCF0
ldr r2, [r0]
ldr r0, _0803FCF4
adds r1, r2, r0
movs r3, 0x14
ldrsh r0, [r2, r3]
ldrb r1, [r1]
adds r6, r0, r1
movs r1, 0x3A
ldrsh r0, [r7, r1]
adds r4, r7, 0
adds r4, 0x2E
cmp r0, r6
beq _0803FD3E
strh r6, [r7, 0x3A]
ldr r3, _0803FCF8
adds r0, r2, r3
ldrb r0, [r0]
bl GetStairDirection
lsls r0, 24
cmp r0, 0
beq _0803FCFC
movs r0, 0
b _0803FD00
.align 2, 0
_0803FCE4: .4byte gUnknown_203B46C
_0803FCE8: .4byte gUnknown_202D068
_0803FCEC: .4byte gUnknown_202B038
_0803FCF0: .4byte gUnknown_203B418
_0803FCF4: .4byte 0x00000645
_0803FCF8: .4byte 0x00000644
_0803FCFC:
ldr r1, _0803FD20
adds r0, r1, 0
_0803FD00:
strh r0, [r5, 0x2]
cmp r6, 0x9
bgt _0803FD28
adds r1, r5, 0x4
adds r4, r7, 0
adds r4, 0x2E
ldrb r2, [r4]
adds r0, r6, 0
movs r3, 0x1
bl sub_803FE30
ldr r2, _0803FD24
adds r0, r2, 0
strh r0, [r5, 0x6]
b _0803FD3E
.align 2, 0
_0803FD20: .4byte 0x0000f2be
_0803FD24: .4byte 0x0000f2b8
_0803FD28:
adds r1, r5, 0x4
adds r4, r7, 0
adds r4, 0x2E
ldrb r2, [r4]
adds r0, r6, 0
movs r3, 0
bl sub_803FE30
ldr r3, _0803FE10
adds r0, r3, 0
strh r0, [r5, 0x8]
_0803FD3E:
movs r1, 0x3C
ldrsh r0, [r7, r1]
cmp r0, r10
beq _0803FD64
mov r2, r10
strh r2, [r7, 0x3C]
ldr r3, _0803FE14
adds r0, r3, 0
strh r0, [r5, 0xA]
ldr r1, _0803FE18
adds r0, r1, 0
strh r0, [r5, 0xC]
adds r1, r5, 0
adds r1, 0xE
ldrb r2, [r4]
mov r0, r10
movs r3, 0
bl sub_803FE30
_0803FD64:
movs r2, 0x3E
ldrsh r0, [r7, r2]
cmp r0, r9
beq _0803FD84
ldr r3, _0803FE1C
adds r0, r3, 0
strh r0, [r5, 0x12]
ldr r1, _0803FE20
adds r0, r1, 0
strh r0, [r5, 0x14]
adds r1, r5, 0
adds r1, 0x16
ldrb r2, [r4]
mov r0, r9
bl sub_803FF18
_0803FD84:
adds r6, r7, 0
adds r6, 0x40
movs r2, 0
ldrsh r0, [r6, r2]
cmp r0, r8
beq _0803FDA2
ldr r3, _0803FE24
adds r0, r3, 0
strh r0, [r5, 0x1C]
adds r1, r5, 0
adds r1, 0x1E
ldrb r2, [r4]
mov r0, r8
bl sub_803FF18
_0803FDA2:
ldrb r2, [r4]
mov r0, r9
mov r1, r8
bl sub_803FA4C
mov r0, r8
strh r0, [r6]
mov r1, r9
strh r1, [r7, 0x3E]
mov r0, r8
cmp r0, 0
bge _0803FDBC
adds r0, 0x7
_0803FDBC:
asrs r1, r0, 3
adds r4, r7, 0
adds r4, 0x42
strh r1, [r4]
movs r0, 0x7
mov r2, r8
ands r2, r0
cmp r2, 0
beq _0803FDD2
adds r0, r1, 0x1
strh r0, [r4]
_0803FDD2:
movs r3, 0
ldrsh r0, [r4, r3]
cmp r0, 0xB
ble _0803FDDE
movs r0, 0xC
strh r0, [r4]
_0803FDDE:
movs r1, 0
ldr r0, _0803FE28
movs r2, 0xB3
lsls r2, 2
adds r4, r2, 0
ldr r2, _0803FE2C
adds r3, r2, 0
adds r2, r0, 0
adds r2, 0x24
_0803FDF0:
adds r0, r1, r4
orrs r0, r3
strh r0, [r2]
adds r2, 0x2
adds r1, 0x1
cmp r1, 0xB
ble _0803FDF0
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803FE10: .4byte 0x0000f2b8
_0803FE14: .4byte 0x0000f2b9
_0803FE18: .4byte 0x0000f2ba
_0803FE1C: .4byte 0x0000f2bb
_0803FE20: .4byte 0x0000f2bc
_0803FE24: .4byte 0x0000f2bd
_0803FE28: .4byte gUnknown_202B038
_0803FE2C: .4byte 0xfffff000
thumb_func_end sub_803FB74
thumb_func_start sub_803FE30
sub_803FE30:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
adds r4, r1, 0
lsls r2, 24
lsrs r2, 24
adds r1, r2, 0
lsls r3, 24
lsrs r3, 24
mov r12, r3
movs r0, 0
cmp r2, 0
bne _0803FE4E
movs r0, 0x37
_0803FE4E:
cmp r5, 0x64
ble _0803FE70
cmp r2, 0
beq _0803FE60
ldr r1, _0803FE5C
adds r0, r1, 0
b _0803FE64
.align 2, 0
_0803FE5C: .4byte 0x0000f291
_0803FE60:
ldr r2, _0803FE6C
adds r0, r2, 0
_0803FE64:
strh r0, [r4]
strh r0, [r4, 0x2]
b _0803FF00
.align 2, 0
_0803FE6C: .4byte 0x0000f2c8
_0803FE70:
cmp r5, 0x64
bne _0803FEBC
ldr r1, _0803FE84
adds r0, r1, 0
strh r0, [r4]
ldr r2, _0803FE88
adds r0, r2, 0
strh r0, [r4, 0x2]
b _0803FF00
.align 2, 0
_0803FE84: .4byte 0x0000f294
_0803FE88: .4byte 0x0000f295
_0803FE8C:
ldr r1, _0803FEB4
lsls r0, r6, 3
adds r0, r6
adds r0, r2
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r4]
subs r0, r5, r3
adds r0, r7
movs r1, 0x96
lsls r1, 2
adds r0, r1
ldr r2, _0803FEB8
adds r1, r2, 0
orrs r0, r1
mov r1, r8
strh r0, [r1]
b _0803FF00
.align 2, 0
_0803FEB4: .4byte gUnknown_80F64D8
_0803FEB8: .4byte 0xfffff000
_0803FEBC:
adds r2, r4, 0x2
mov r8, r2
adds r7, r0, 0
adds r7, 0x30
cmp r5, 0x9
ble _0803FEE2
movs r6, 0
cmp r1, 0
bne _0803FED0
movs r6, 0x1
_0803FED0:
movs r2, 0
ldr r0, _0803FF0C
_0803FED4:
ldr r3, [r0]
cmp r3, r5
ble _0803FE8C
adds r0, 0x4
adds r2, 0x1
cmp r2, 0x8
ble _0803FED4
_0803FEE2:
mov r0, r12
cmp r0, 0
bne _0803FEF0
ldr r1, _0803FF10
adds r0, r1, 0
strh r0, [r4]
adds r4, 0x2
_0803FEF0:
adds r0, r5, r7
movs r2, 0x96
lsls r2, 2
adds r0, r2
ldr r2, _0803FF14
adds r1, r2, 0
orrs r0, r1
strh r0, [r4]
_0803FF00:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803FF0C: .4byte gUnknown_80F64B4
_0803FF10: .4byte 0x0000f278
_0803FF14: .4byte 0xfffff000
thumb_func_end sub_803FE30
thumb_func_start sub_803FF18
sub_803FF18:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
adds r3, r1, 0
lsls r2, 24
lsrs r2, 24
movs r6, 0
cmp r2, 0
bne _0803FF2E
movs r6, 0x1
_0803FF2E:
movs r1, 0
cmp r2, 0
bne _0803FF36
movs r1, 0x37
_0803FF36:
ldr r0, _0803FF54
cmp r5, r0
ble _0803FF7C
ldr r0, _0803FF58
lsls r1, r6, 3
adds r1, r6
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strh r0, [r3]
adds r3, 0x2
strh r0, [r3]
strh r0, [r3, 0x2]
b _0804001A
.align 2, 0
_0803FF54: .4byte 0x000003e7
_0803FF58: .4byte gUnknown_80F6544
_0803FF5C:
ldr r1, _0803FF78
lsls r0, r6, 3
adds r0, r6
adds r0, r4
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r3]
adds r3, 0x2
subs r5, r2
mov r1, r8
lsls r0, r1, 24
lsrs r7, r0, 24
b _0803FF98
.align 2, 0
_0803FF78: .4byte gUnknown_80F6544
_0803FF7C:
movs r7, 0x20
movs r4, 0
adds r1, 0x30
mov r8, r1
ldr r2, _0803FFC0
mov r12, r2
ldr r0, _0803FFC4
_0803FF8A:
ldr r2, [r0]
cmp r2, r5
ble _0803FF5C
adds r0, 0x4
adds r4, 0x1
cmp r4, 0x8
ble _0803FF8A
_0803FF98:
cmp r4, 0x9
bne _0803FFAC
movs r1, 0x96
lsls r1, 2
adds r0, r7, r1
ldr r2, _0803FFC8
adds r1, r2, 0
orrs r0, r1
strh r0, [r3]
adds r3, 0x2
_0803FFAC:
movs r4, 0
mov r0, r12
ldr r2, [r0]
cmp r2, r5
bgt _0803FFD0
ldr r0, _0803FFCC
lsls r1, r6, 3
adds r1, r6
b _0803FFE8
.align 2, 0
_0803FFC0: .4byte gUnknown_80F6520
_0803FFC4: .4byte gUnknown_80F64FC
_0803FFC8: .4byte 0xfffff000
_0803FFCC: .4byte gUnknown_80F6544
_0803FFD0:
adds r4, 0x1
cmp r4, 0x8
bgt _0803FFF4
lsls r0, r4, 2
add r0, r12
ldr r2, [r0]
cmp r2, r5
bgt _0803FFD0
ldr r0, _08040024
lsls r1, r6, 3
adds r1, r6
adds r1, r4
_0803FFE8:
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strh r0, [r3]
adds r3, 0x2
subs r5, r2
_0803FFF4:
cmp r4, 0x9
bne _08040008
movs r1, 0x96
lsls r1, 2
adds r0, r7, r1
ldr r2, _08040028
adds r1, r2, 0
orrs r0, r1
strh r0, [r3]
adds r3, 0x2
_08040008:
mov r1, r8
adds r0, r5, r1
movs r2, 0x96
lsls r2, 2
adds r0, r2
ldr r2, _08040028
adds r1, r2, 0
orrs r0, r1
strh r0, [r3]
_0804001A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08040024: .4byte gUnknown_80F6544
_08040028: .4byte 0xfffff000
thumb_func_end sub_803FF18
thumb_func_start sub_804002C
sub_804002C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r8, r0
ldr r0, _08040088
ldr r0, [r0]
ldr r1, _0804008C
adds r0, r1
movs r1, 0x1
strb r1, [r0]
movs r5, 0
movs r7, 0x1
_08040046:
movs r4, 0
adds r6, r5, 0x1
_0804004A:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8049590
ldrh r1, [r0, 0x4]
orrs r1, r7
strh r1, [r0, 0x4]
adds r4, 0x1
cmp r4, 0x37
ble _0804004A
adds r5, r6, 0
cmp r5, 0x1F
ble _08040046
movs r0, 0
bl sub_803F580
bl sub_8049ED4
bl sub_8040A84
ldr r0, _08040090
ldr r1, [r0]
mov r0, r8
bl sub_80522A8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08040088: .4byte gUnknown_203B418
_0804008C: .4byte 0x0001820b
_08040090: .4byte gUnknown_80FD040
thumb_func_end sub_804002C
thumb_func_start sub_8040094
sub_8040094:
push {lr}
ldr r1, _080400C8
ldr r1, [r1]
ldr r2, _080400CC
adds r1, r2
strb r0, [r1]
bl sub_803F7BC
bl sub_80060EC
ldr r0, _080400D0
ldr r0, [r0]
bl sub_8094FB4
bl sub_800CB20
bl sub_800485C
bl xxx_call_update_bg_sound_input
bl sub_8083F58
bl sub_8011860
pop {r0}
bx r0
.align 2, 0
_080400C8: .4byte gUnknown_203B418
_080400CC: .4byte 0x00018217
_080400D0: .4byte gUnknown_203B47C
thumb_func_end sub_8040094
thumb_func_start sub_80400D4
sub_80400D4:
push {r4,lr}
ldr r0, _08040114
ldr r4, [r0]
movs r0, 0xC1
lsls r0, 9
adds r3, r4, r0
ldr r0, [r3]
cmp r0, 0
beq _0804010C
cmp r0, 0x1E
ble _080400EC
movs r0, 0x1F
_080400EC:
ldr r1, _08040118
adds r2, r4, r1
ldr r1, _0804011C
lsls r0, 2
adds r0, r1
ldr r0, [r0]
str r0, [r2]
ldr r0, [r3]
subs r0, 0x1
str r0, [r3]
cmp r0, 0
bne _0804010C
ldr r1, _08040120
adds r0, r4, r1
ldr r0, [r0]
str r0, [r3]
_0804010C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08040114: .4byte gUnknown_203B418
_08040118: .4byte 0x000181fc
_0804011C: .4byte gUnknown_80F6568
_08040120: .4byte 0x00018204
thumb_func_end sub_80400D4
thumb_func_start sub_8040124
sub_8040124:
ldr r1, _0804012C
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_0804012C: .4byte gUnknown_202EE01
thumb_func_end sub_8040124
thumb_func_start sub_8040130
sub_8040130:
push {lr}
ldr r0, _08040144
ldr r1, _08040148
bl OpenFileAndGetFileDataPtr
ldr r1, _0804014C
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_08040144: .4byte gUnknown_80F6604
_08040148: .4byte gUnknown_83B0000
_0804014C: .4byte gUnknown_202EE04
thumb_func_end sub_8040130
thumb_func_start sub_8040150
sub_8040150:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
mov r9, r0
movs r0, 0
ldr r2, _080401EC
_08040164:
movs r4, 0
lsls r1, r0, 3
adds r3, r0, 0x1
mov r8, r3
subs r1, r0
lsls r0, r1, 7
ldr r3, _080401F0
adds r6, r0, r3
lsls r5, r1, 2
_08040176:
ldr r0, [r2]
adds r0, r6
lsls r1, r4, 5
adds r0, r1
movs r1, 0x20
str r2, [sp]
bl CpuClear
ldr r2, [sp]
ldr r0, [r2]
adds r1, r4, r5
ldr r3, _080401F4
adds r0, r3
adds r0, r1
movs r7, 0
strb r7, [r0]
adds r4, 0x1
cmp r4, 0x1B
ble _08040176
mov r0, r8
cmp r0, 0xF
ble _08040164
mov r0, r9
cmp r0, 0
bne _080401B0
ldr r1, _080401F8
movs r0, 0x64
strh r0, [r1]
strh r0, [r1, 0x2]
_080401B0:
ldr r3, _080401EC
ldr r0, [r3]
ldr r2, _080401FC
adds r1, r0, r2
str r7, [r1]
ldr r1, _08040200
adds r0, r1
movs r2, 0x1
strb r2, [r0]
ldr r0, [r3]
ldr r3, _08040204
adds r0, r3
strb r7, [r0]
ldr r0, _08040208
strb r2, [r0]
ldr r1, _0804020C
ldr r0, _08040210
str r0, [r1]
ldr r0, _08040214
strb r2, [r0]
bl sub_8040238
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080401EC: .4byte gUnknown_203B418
_080401F0: .4byte 0x0001822c
_080401F4: .4byte 0x0001ba2c
_080401F8: .4byte gUnknown_203B410
_080401FC: .4byte 0x0001bdcc
_08040200: .4byte 0x0001bdd0
_08040204: .4byte 0x0001bdd2
_08040208: .4byte gUnknown_202EE00
_0804020C: .4byte gUnknown_202EE08
_08040210: .4byte 0x06001700
_08040214: .4byte gUnknown_202EE01
thumb_func_end sub_8040150
thumb_func_start sub_8040218
sub_8040218:
push {lr}
ldr r0, _08040230
ldr r0, [r0]
cmp r0, 0
beq _08040226
bl CloseFile
_08040226:
bl sub_8040124
pop {r0}
bx r0
.align 2, 0
_08040230: .4byte gUnknown_202EE04
thumb_func_end sub_8040218
thumb_func_start nullsub_203
nullsub_203:
bx lr
thumb_func_end nullsub_203
thumb_func_start sub_8040238
sub_8040238:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _0804026C
ldr r0, [r1]
cmp r0, 0
beq _080402A0
ldr r0, _08040270
ldrb r0, [r0]
cmp r0, 0
beq _080402A0
movs r6, 0
ldr r0, _08040274
mov r8, r0
adds r7, r1, 0
_08040256:
cmp r6, 0xE
bne _08040278
movs r0, 0xEE
mov r1, r8
bl SetBGPaletteBufferColorArray
movs r0, 0xEE
mov r1, r8
bl nullsub_5
b _0804029A
.align 2, 0
_0804026C: .4byte gUnknown_202EE04
_08040270: .4byte gUnknown_202EE01
_08040274: .4byte gUnknown_202D03C
_08040278:
adds r5, r6, 0
adds r5, 0xE0
ldr r0, [r7]
ldr r0, [r0, 0x4]
lsls r4, r6, 2
ldr r1, [r0, 0x4]
adds r1, r4
adds r0, r5, 0
bl SetBGPaletteBufferColorArray
ldr r0, [r7]
ldr r0, [r0, 0x4]
ldr r1, [r0, 0x4]
adds r1, r4
adds r0, r5, 0
bl nullsub_5
_0804029A:
adds r6, 0x1
cmp r6, 0xF
ble _08040256
_080402A0:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8040238
thumb_func_start sub_80402AC
sub_80402AC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
mov r8, r0
str r1, [sp]
ldr r4, _0804034C
ldr r0, [r4]
str r0, [sp, 0x4]
movs r1, 0x1
mov r10, r1
ldr r0, _08040350
ldr r0, [r0]
cmp r0, 0
bne _080402D0
b _08040776
_080402D0:
ldr r0, _08040354
ldrb r0, [r0]
cmp r0, 0
bne _080402DA
b _08040776
_080402DA:
bl sub_800EC74
lsls r0, 24
cmp r0, 0
beq _080402E6
b _08040776
_080402E6:
mov r2, r8
cmp r2, 0
bge _080402EE
b _08040776
_080402EE:
ldr r3, [sp]
cmp r3, 0x1
bgt _080402F6
b _08040776
_080402F6:
cmp r2, 0x37
ble _080402FC
b _08040776
_080402FC:
cmp r3, 0x1E
ble _08040302
b _08040776
_08040302:
mov r0, r8
adds r1, r3, 0
bl sub_804954C
mov r9, r0
ldrh r0, [r0]
movs r5, 0x3
ands r5, r0
str r5, [sp, 0x8]
ldr r0, [r4]
ldr r7, _08040358
adds r1, r0, r7
ldrb r1, [r1]
str r1, [sp, 0xC]
ldr r2, _0804035C
adds r1, r0, r2
ldrb r5, [r1]
ldr r3, _08040360
adds r1, r0, r3
ldrb r1, [r1]
str r1, [sp, 0x14]
subs r7, 0x2
adds r1, r0, r7
ldrb r1, [r1]
str r1, [sp, 0x10]
ldr r1, _08040364
adds r0, r1
ldrb r0, [r0]
cmp r5, 0
beq _08040368
mov r2, r9
ldrb r0, [r2, 0x4]
mov r7, r10
ands r7, r0
movs r3, 0
str r3, [sp, 0x18]
b _0804039C
.align 2, 0
_0804034C: .4byte gUnknown_203B418
_08040350: .4byte gUnknown_202EE04
_08040354: .4byte gUnknown_202EE01
_08040358: .4byte 0x00018210
_0804035C: .4byte 0x0001820a
_08040360: .4byte 0x0001820f
_08040364: .4byte 0x0001820b
_08040368:
cmp r0, 0
beq _08040370
movs r7, 0x1
b _08040378
_08040370:
mov r7, r9
ldrb r0, [r7, 0x4]
mov r7, r10
ands r7, r0
_08040378:
bl sub_8043D10
lsls r0, 24
cmp r0, 0
bne _08040398
ldr r0, _08040390
ldr r0, [r0]
ldr r1, _08040394
adds r0, r1
ldrb r0, [r0]
str r0, [sp, 0x18]
b _0804039C
.align 2, 0
_08040390: .4byte gUnknown_203B418
_08040394: .4byte 0x00018211
_08040398:
movs r2, 0
str r2, [sp, 0x18]
_0804039C:
bl sub_8094C48
lsls r0, 24
cmp r0, 0
bne _080403A8
b _08040632
_080403A8:
ldr r0, _080403FC
ldr r0, [r0]
ldr r3, _08040400
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
beq _080403B8
b _08040632
_080403B8:
movs r6, 0
cmp r5, 0
bne _0804045E
mov r0, r9
ldr r4, [r0, 0x10]
cmp r4, 0
beq _0804045E
adds r0, r4, 0
bl sub_80450F8
adds r1, r0, 0
ldr r0, _08040404
ldrb r0, [r0]
cmp r0, 0
beq _0804045E
cmp r1, 0x1
bne _0804045E
adds r0, r4, 0
bl sub_8045804
lsls r0, 24
cmp r0, 0
beq _0804045E
ldr r1, [r4, 0x70]
adds r0, r1, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _080403F6
cmp r0, 0x47
bne _08040408
_080403F6:
movs r0, 0x1
b _0804040A
.align 2, 0
_080403FC: .4byte gUnknown_203B418
_08040400: .4byte 0x0001356c
_08040404: .4byte gUnknown_202EE00
_08040408:
movs r0, 0
_0804040A:
cmp r0, 0
bne _08040458
adds r0, r1, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
beq _08040458
cmp r0, 0x4
beq _08040458
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08040426
movs r6, 0x2
b _0804045A
_08040426:
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _08040458
ldr r0, _0804044C
mov r1, r8
strh r1, [r0]
mov r2, sp
ldrh r2, [r2]
strh r2, [r0, 0x2]
ldr r0, _08040450
ldr r0, [r0]
ldr r3, _08040454
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
beq _0804045A
movs r6, 0x8
b _0804045A
.align 2, 0
_0804044C: .4byte gUnknown_203B410
_08040450: .4byte gUnknown_203B418
_08040454: .4byte 0x00018214
_08040458:
movs r6, 0xA
_0804045A:
movs r0, 0
mov r10, r0
_0804045E:
mov r1, r10
cmp r1, 0
beq _0804054E
cmp r5, 0
bne _08040548
mov r2, r9
ldr r4, [r2, 0x14]
cmp r4, 0
beq _08040500
adds r0, r4, 0
bl sub_80450F8
adds r5, r0, 0
cmp r7, 0
bne _0804049E
movs r6, 0
cmp r5, 0x3
bne _0804054E
ldr r3, [sp, 0x10]
cmp r3, 0
bne _08040494
mov r5, r9
ldrh r1, [r5, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _0804054E
_08040494:
ldr r0, [sp, 0x8]
cmp r0, 0
beq _0804054E
movs r6, 0x3
b _0804054E
_0804049E:
cmp r5, 0x2
bne _080404C4
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _080404B2
ldr r1, [sp, 0x14]
cmp r1, 0
beq _080404C4
_080404B2:
adds r0, r4, 0
bl sub_8045104
ldr r1, _080404FC
ldrb r0, [r0]
adds r0, r1
ldrb r6, [r0]
movs r2, 0
mov r10, r2
_080404C4:
mov r3, r10
cmp r3, 0
beq _0804054E
cmp r5, 0x3
bne _080404EC
ldr r5, [sp, 0x10]
cmp r5, 0
bne _080404E0
mov r0, r9
ldrh r1, [r0, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080404EC
_080404E0:
ldr r1, [sp, 0x8]
cmp r1, 0
beq _080404EC
movs r6, 0x3
movs r2, 0
mov r10, r2
_080404EC:
mov r3, r10
cmp r3, 0
beq _0804054E
ldr r5, [sp, 0x8]
cmp r5, 0x1
beq _08040548
movs r6, 0
b _0804054E
.align 2, 0
_080404FC: .4byte gUnknown_80F65F0
_08040500:
cmp r7, 0
bne _08040528
ldr r0, [sp, 0x18]
cmp r0, 0
beq _08040548
mov r2, r9
ldrh r1, [r2]
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _08040548
bl sub_8043D10
lsls r0, 24
movs r6, 0x5
cmp r0, 0
bne _0804054E
movs r6, 0x6
b _0804054E
_08040528:
mov r3, r9
ldrh r1, [r3]
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
beq _08040548
bl sub_8043D10
lsls r0, 24
movs r6, 0x5
cmp r0, 0
bne _08040544
movs r6, 0x6
_08040544:
movs r5, 0
mov r10, r5
_08040548:
mov r0, r10
cmp r0, 0
bne _0804055A
_0804054E:
ldr r1, [sp, 0xC]
cmp r1, 0
beq _0804055A
cmp r6, 0
beq _0804055E
movs r6, 0xB
_0804055A:
cmp r6, 0
bne _08040606
_0804055E:
cmp r7, 0
beq _08040568
ldr r2, [sp, 0x8]
cmp r2, 0x1
beq _0804056C
_08040568:
movs r6, 0x1
b _08040606
_0804056C:
movs r4, 0xF
ldr r3, [sp]
cmp r3, 0x1E
bgt _0804058A
adds r1, r3, 0
adds r1, 0x1
mov r0, r8
bl sub_804954C
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _0804058A
movs r4, 0xE
_0804058A:
ldr r5, [sp]
cmp r5, 0
ble _080405AA
adds r1, r5, 0
subs r1, 0x1
mov r0, r8
bl sub_804954C
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _080405AA
movs r0, 0x5
negs r0, r0
ands r4, r0
_080405AA:
mov r7, r8
cmp r7, 0x36
bgt _080405CA
mov r0, r8
adds r0, 0x1
ldr r1, [sp]
bl sub_804954C
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _080405CA
movs r0, 0x3
negs r0, r0
ands r4, r0
_080405CA:
mov r0, r8
cmp r0, 0
ble _080405E8
subs r0, 0x1
ldr r1, [sp]
bl sub_804954C
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
bne _080405E8
movs r0, 0x9
negs r0, r0
ands r4, r0
_080405E8:
lsls r0, r4, 16
asrs r6, r0, 16
mov r2, r9
ldrh r1, [r2, 0x4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080405FE
adds r0, r6, 0
adds r0, 0x10
b _08040602
_080405FE:
adds r0, r6, 0
adds r0, 0x20
_08040602:
lsls r0, 16
asrs r6, r0, 16
_08040606:
ldr r0, _08040618
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bne _0804061C
adds r0, r6, 0
adds r0, 0x80
b _0804062C
.align 2, 0
_08040618: .4byte gUnknown_203B46C
_0804061C:
bl sub_8094C68
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _0804063A
adds r0, r6, 0
adds r0, 0x40
_0804062C:
lsls r0, 16
asrs r6, r0, 16
b _0804063A
_08040632:
movs r6, 0x1
ldr r1, _0804074C
movs r0, 0x64
strh r0, [r1]
_0804063A:
mov r3, r8
lsrs r0, r3, 31
add r0, r8
asrs r0, 1
mov r9, r0
ldr r0, [sp]
subs r0, 0x2
lsrs r1, r0, 31
adds r1, r0, r1
asrs r1, 1
mov r5, r9
lsls r3, r5, 1
mov r7, r8
subs r3, r7, r3
lsls r2, r1, 1
subs r0, r2
lsls r0, 1
adds r3, r0
lsls r0, r1, 3
subs r5, r0, r1
lsls r0, r5, 7
ldr r1, _08040750
adds r0, r1
ldr r2, [sp, 0x4]
adds r0, r2, r0
mov r7, r9
lsls r1, r7, 5
adds r4, r0, r1
ldr r0, _08040754
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r6, 2
adds r0, r3
ldr r1, [r1]
lsls r0, 2
adds r0, r1
ldr r2, [r0]
ldr r0, [r4]
ldr r1, [r2]
ands r0, r1
ldr r1, [r2, 0x4]
orrs r0, r1
str r0, [r4]
ldr r0, [r4, 0x4]
ldr r1, [r2, 0x8]
ands r0, r1
ldr r1, [r2, 0xC]
orrs r0, r1
str r0, [r4, 0x4]
ldr r0, [r4, 0x8]
ldr r1, [r2, 0x10]
ands r0, r1
ldr r1, [r2, 0x14]
orrs r0, r1
str r0, [r4, 0x8]
ldr r0, [r4, 0xC]
ldr r1, [r2, 0x18]
ands r0, r1
ldr r1, [r2, 0x1C]
orrs r0, r1
str r0, [r4, 0xC]
ldr r0, [r4, 0x10]
ldr r1, [r2, 0x20]
ands r0, r1
ldr r1, [r2, 0x24]
orrs r0, r1
str r0, [r4, 0x10]
ldr r0, [r4, 0x14]
ldr r1, [r2, 0x28]
ands r0, r1
ldr r1, [r2, 0x2C]
orrs r0, r1
str r0, [r4, 0x14]
ldr r0, [r4, 0x18]
ldr r1, [r2, 0x30]
ands r0, r1
ldr r1, [r2, 0x34]
orrs r0, r1
str r0, [r4, 0x18]
ldr r0, [r4, 0x1C]
ldr r1, [r2, 0x38]
ands r0, r1
ldr r1, [r2, 0x3C]
orrs r0, r1
str r0, [r4, 0x1C]
ldr r0, [sp, 0x4]
ldr r1, _08040758
adds r2, r0, r1
ldrb r0, [r2]
cmp r0, 0
bne _08040776
lsls r5, 2
mov r10, r5
mov r3, r9
add r3, r10
ldr r5, _0804075C
mov r8, r5
ldr r0, [sp, 0x4]
add r0, r8
adds r1, r0, r3
ldrb r0, [r1]
cmp r0, 0
bne _08040776
movs r0, 0x1
strb r0, [r1]
ldr r7, [sp, 0x4]
ldr r1, _08040760
adds r6, r7, r1
ldr r5, [r6]
cmp r5, 0x27
bgt _08040774
lsls r1, r5, 1
adds r1, r5
lsls r1, 2
ldr r0, _08040764
adds r2, r7, r0
adds r2, r1
ldr r0, _08040768
lsls r3, 5
ldr r0, [r0]
adds r0, r3
str r0, [r2]
ldr r2, _0804076C
adds r0, r7, r2
adds r0, r1
str r4, [r0]
ldr r3, _08040770
adds r2, r7, r3
adds r2, r1
mov r0, r10
add r0, r8
adds r0, r7, r0
add r0, r9
str r0, [r2]
adds r0, r5, 0x1
str r0, [r6]
b _08040776
.align 2, 0
_0804074C: .4byte gUnknown_203B410
_08040750: .4byte 0x0001822c
_08040754: .4byte gUnknown_202EE04
_08040758: .4byte 0x0001bdd1
_0804075C: .4byte 0x0001ba2c
_08040760: .4byte 0x0001bdcc
_08040764: .4byte 0x0001bbec
_08040768: .4byte gUnknown_202EE08
_0804076C: .4byte 0x0001bbf0
_08040770: .4byte 0x0001bbf4
_08040774:
strb r0, [r2]
_08040776:
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80402AC
thumb_func_start sub_8040788
sub_8040788:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, _08040814
ldr r0, [r0]
mov r8, r0
cmp r0, 0
beq _08040870
ldr r0, _08040818
add r0, r8
ldrb r0, [r0]
cmp r0, 0
beq _08040870
bl sub_800EC74
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _08040870
ldr r1, _0804081C
add r1, r8
ldrb r0, [r1]
cmp r0, 0
bne _0804082C
movs r6, 0
ldr r1, _08040820
add r1, r8
ldr r0, [r1]
cmp r6, r0
bge _08040868
adds r5, r1, 0
movs r4, 0
_080407C8:
ldr r1, _08040824
adds r0, r4, r1
mov r1, r8
adds r3, r1, r0
ldr r1, [r3, 0x4]
ldr r2, [r3]
ldr r0, _08040828
ldr r0, [r0]
cmp r0, 0
beq _080407E0
cmp r0, 0x3
bne _08040800
_080407E0:
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldm r1!, {r0}
stm r2!, {r0}
ldr r0, [r1]
str r0, [r2]
_08040800:
ldr r0, [r3, 0x8]
movs r1, 0
strb r1, [r0]
adds r4, 0xC
adds r6, 0x1
ldr r0, [r5]
cmp r6, r0
blt _080407C8
b _08040868
.align 2, 0
_08040814: .4byte gUnknown_203B418
_08040818: .4byte 0x0001bdd0
_0804081C: .4byte 0x0001bdd1
_08040820: .4byte 0x0001bdcc
_08040824: .4byte 0x0001bbec
_08040828: .4byte gUnknown_202EDD0
_0804082C:
strb r2, [r1]
ldr r0, _0804087C
ldr r5, [r0]
ldr r4, _08040880
add r4, r8
movs r6, 0
movs r7, 0x80
lsls r7, 1
_0804083C:
ldr r0, _08040884
ldr r0, [r0]
cmp r0, 0
beq _08040848
cmp r0, 0x3
bne _08040854
_08040848:
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x80
lsls r2, 1
bl CpuCopy
_08040854:
adds r5, r7
adds r4, r7
adds r6, 0x8
ldr r0, _08040888
cmp r6, r0
ble _0804083C
ldr r1, _0804088C
add r1, r8
movs r0, 0x1
strb r0, [r1]
_08040868:
ldr r1, _08040890
add r1, r8
movs r0, 0
str r0, [r1]
_08040870:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804087C: .4byte gUnknown_202EE08
_08040880: .4byte 0x0001822c
_08040884: .4byte gUnknown_202EDD0
_08040888: .4byte 0x000001bf
_0804088C: .4byte 0x0001bdd2
_08040890: .4byte 0x0001bdcc
thumb_func_end sub_8040788
thumb_func_start sub_8040894
sub_8040894:
push {r4-r7,lr}
sub sp, 0x8
ldr r0, _080409F4
ldr r1, [r0]
ldr r2, _080409F8
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
beq _080408A8
b _08040A6A
_080408A8:
adds r2, 0x5
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _080408B4
b _08040A6A
_080408B4:
ldr r7, _080409FC
movs r1, 0
ldrsh r0, [r7, r1]
cmp r0, 0x63
ble _080408C0
b _08040A6A
_080408C0:
ldr r0, _08040A00
ldrb r1, [r0]
adds r1, 0x1
strb r1, [r0]
movs r0, 0x8
ands r1, r0
cmp r1, 0
beq _080408D2
b _08040A6A
_080408D2:
movs r0, 0
movs r1, 0
str r0, [sp]
str r1, [sp, 0x4]
mov r0, sp
ldrh r0, [r0]
ldr r1, _08040A04
ands r1, r0
ldr r3, _08040A08
ldr r0, [sp]
ands r0, r3
orrs r0, r1
str r0, [sp]
mov r1, sp
ldrh r1, [r1]
adds r2, r3, 0
ands r2, r0
orrs r2, r1
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08040A0C
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r5, _08040A10
adds r0, r5, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08040A14
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r0, _08040A18
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
adds r2, r3, 0
ands r2, r1
orrs r2, r0
str r2, [sp]
mov r0, sp
ldrh r1, [r0]
ldr r4, _08040A1C
adds r0, r4, 0
ands r0, r1
adds r1, r3, 0
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
ldrh r0, [r0]
ands r3, r1
orrs r3, r0
str r3, [sp]
mov r3, sp
ldrh r0, [r3, 0x2]
ldr r6, _08040A20
ands r6, r0
ands r6, r4
strh r6, [r3, 0x2]
ldr r2, _08040A24
ldrh r1, [r3, 0x4]
movs r0, 0xFC
lsls r0, 8
ands r0, r1
orrs r0, r2
ands r0, r5
movs r5, 0xF
lsls r1, r5, 12
ldr r4, _08040A28
ands r0, r4
orrs r0, r1
strh r0, [r3, 0x4]
ldrh r0, [r3, 0x6]
ldr r2, _08040A2C
ands r2, r0
ldr r0, _08040A30
ands r2, r0
strh r2, [r3, 0x6]
ldr r0, _08040A34
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bne _08040A3C
movs r1, 0
ldrsh r0, [r7, r1]
lsls r0, 2
adds r0, 0x10
ldr r1, _08040A38
ands r0, r1
strh r0, [r3, 0x2]
movs r1, 0x2
ldrsh r0, [r7, r1]
adds r0, 0x1
lsls r0, 2
ands r0, r4
lsls r0, 4
adds r1, r2, 0
ands r1, r5
orrs r1, r0
strh r1, [r3, 0x6]
movs r1, 0x80
lsls r1, 1
mov r0, sp
movs r2, 0
movs r3, 0
bl nullsub_11
b _08040A6A
.align 2, 0
_080409F4: .4byte gUnknown_203B418
_080409F8: .4byte 0x00018214
_080409FC: .4byte gUnknown_203B410
_08040A00: .4byte gUnknown_202EE02
_08040A04: .4byte 0x0000feff
_08040A08: .4byte 0xffff0000
_08040A0C: .4byte 0x0000fdff
_08040A10: .4byte 0x0000f3ff
_08040A14: .4byte 0x0000efff
_08040A18: .4byte 0x0000dfff
_08040A1C: .4byte 0x00003fff
_08040A20: .4byte 0x0000c1ff
_08040A24: .4byte 0x00000215
_08040A28: .4byte 0x00000fff
_08040A2C: .4byte 0x0000fffe
_08040A30: .4byte 0x0000fffd
_08040A34: .4byte gUnknown_203B46C
_08040A38: .4byte 0x000001ff
_08040A3C:
movs r1, 0
ldrsh r0, [r7, r1]
lsls r0, 2
adds r0, 0x8
ldr r1, _08040A74
ands r0, r1
strh r0, [r3, 0x2]
movs r1, 0x2
ldrsh r0, [r7, r1]
lsls r0, 2
ands r0, r4
lsls r0, 4
adds r1, r2, 0
ands r1, r5
orrs r1, r0
strh r1, [r3, 0x6]
movs r1, 0x80
lsls r1, 1
mov r0, sp
movs r2, 0
movs r3, 0
bl AddSprite
_08040A6A:
add sp, 0x8
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08040A74: .4byte 0x000001ff
thumb_func_end sub_8040894
thumb_func_start sub_8040A78
sub_8040A78:
ldr r1, _08040A80
movs r0, 0
strb r0, [r1]
bx lr
.align 2, 0
_08040A80: .4byte gUnknown_202EE02
thumb_func_end sub_8040A78
thumb_func_start sub_8040A84
sub_8040A84:
push {r4-r6,lr}
ldr r0, _08040AB4
ldr r0, [r0]
ldr r1, _08040AB8
adds r0, r1
movs r1, 0x1
strb r1, [r0]
movs r5, 0
_08040A94:
movs r4, 0
adds r6, r5, 0x1
_08040A98:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80402AC
adds r4, 0x1
cmp r4, 0x37
ble _08040A98
adds r5, r6, 0
cmp r5, 0x1F
ble _08040A94
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08040AB4: .4byte gUnknown_203B418
_08040AB8: .4byte 0x0001bdd1
thumb_func_end sub_8040A84
thumb_func_start sub_8040ABC
sub_8040ABC:
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _08040AD8
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bne _08040ADC
movs r7, 0xF
movs r0, 0
b _08040AEC
.align 2, 0
_08040AD8: .4byte gUnknown_203B46C
_08040ADC:
cmp r1, 0
beq _08040AE8
movs r7, 0xE
movs r4, 0
mov r8, r4
b _08040AEE
_08040AE8:
movs r7, 0x10
movs r0, 0x3
_08040AEC:
mov r8, r0
_08040AEE:
ldr r6, _08040B58
movs r2, 0x1
movs r1, 0
cmp r1, r7
bge _08040B22
ldr r4, _08040B5C
mov r12, r4
_08040AFC:
lsls r0, r2, 6
mov r4, r12
adds r3, r0, r4
adds r4, r2, 0x1
adds r5, r1, 0x1
movs r2, 0x1B
_08040B08:
adds r1, r6, 0
adds r0, r1, 0x1
lsls r0, 16
lsrs r6, r0, 16
strh r1, [r3]
adds r3, 0x2
subs r2, 0x1
cmp r2, 0
bge _08040B08
adds r2, r4, 0
adds r1, r5, 0
cmp r1, r7
blt _08040AFC
_08040B22:
movs r1, 0
cmp r1, r8
bge _08040B4C
ldr r6, _08040B5C
movs r0, 0xE0
lsls r0, 8
adds r3, r0, 0
_08040B30:
lsls r0, r2, 6
adds r0, r6
adds r4, r2, 0x1
adds r5, r1, 0x1
movs r2, 0x1B
_08040B3A:
strh r3, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bge _08040B3A
adds r2, r4, 0
adds r1, r5, 0
cmp r1, r8
blt _08040B30
_08040B4C:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08040B58: .4byte 0x0000e0b8
_08040B5C: .4byte gUnknown_202B03A
thumb_func_end sub_8040ABC
thumb_func_start sub_8040B60
sub_8040B60:
push {r4,r5,lr}
ldr r0, _08040BA4
ldr r3, [r0]
ldr r1, _08040BA8
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _08040B9E
movs r1, 0
ldr r2, _08040BAC
adds r5, r3, r2
movs r4, 0
_08040B78:
lsls r0, r1, 3
adds r2, r1, 0x1
subs r0, r1
movs r1, 0x37
lsls r0, 2
adds r0, r5
adds r0, 0x37
_08040B86:
strb r4, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _08040B86
adds r1, r2, 0
cmp r1, 0x1F
ble _08040B78
movs r1, 0
ldr r2, _08040BA8
adds r0, r3, r2
strb r1, [r0]
_08040B9E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08040BA4: .4byte gUnknown_203B418
_08040BA8: .4byte 0x0001bdd2
_08040BAC: .4byte 0x0001ba2c
thumb_func_end sub_8040B60
thumb_func_start sub_8040BB0
sub_8040BB0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
adds r6, r0, 0
adds r7, r1, 0
lsls r2, 24
lsrs r2, 24
mov r10, r2
bl sub_804143C
mov r8, r0
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r8
bl sub_804141C
lsls r0, 24
lsrs r5, r0, 24
mov r9, r5
ldrh r4, [r7, 0x2]
adds r0, r6, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r8
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
bl sub_800ECB8
movs r1, 0
ldrsh r4, [r0, r1]
adds r0, r6, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08040C28
adds r0, r6, 0
adds r1, r7, 0
bl sub_80414C0
lsls r0, 24
cmp r0, 0
bne _08040C28
mov r0, r10
cmp r0, 0
bne _08040C2C
_08040C28:
adds r0, r5, 0
b _08040C3C
_08040C2C:
cmp r4, 0
beq _08040C3A
adds r0, r6, 0
adds r1, r7, 0
mov r2, r8
bl sub_8040C4C
_08040C3A:
mov r0, r9
_08040C3C:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8040BB0
thumb_func_start sub_8040C4C
sub_8040C4C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
adds r7, r0, 0
adds r4, r1, 0
adds r6, r2, 0
ldrh r5, [r4, 0x2]
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r5, 0
adds r2, r6, 0
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
mov r9, r0
ldr r6, [r7, 0x70]
ldrh r0, [r4, 0x2]
bl sub_800EC94
lsls r0, 24
lsrs r0, 24
mov r8, r0
movs r0, 0x4
ldrsh r5, [r6, r0]
ldrh r4, [r4, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
movs r2, 0x1
bl sub_80412E0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_800E710
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08040CC4
add r0, sp, 0x8
adds r1, r7, 0
adds r1, 0x28
lsls r2, 24
lsrs r2, 24
bl sub_800569C
b _08040CC8
_08040CC4:
movs r0, 0
str r0, [sp, 0x8]
_08040CC8:
mov r0, sp
mov r1, r9
strh r1, [r0]
mov r1, sp
ldrh r0, [r6, 0x4]
strh r0, [r1, 0x2]
ldr r0, [r7, 0xC]
cmp r0, 0
bge _08040CDC
adds r0, 0xFF
_08040CDC:
asrs r0, 8
strh r0, [r1, 0x4]
mov r1, sp
ldr r0, [r7, 0x10]
cmp r0, 0
bge _08040CEA
adds r0, 0xFF
_08040CEA:
asrs r0, 8
strh r0, [r1, 0x6]
adds r0, r6, 0
adds r0, 0x46
ldrb r0, [r0]
str r0, [sp, 0xC]
movs r0, 0
str r0, [sp, 0x10]
mov r0, sp
bl sub_8041500
mov r0, r9
bl sub_800EEC8
bl sub_800EF64
movs r0, 0x58
bl sub_803E46C
mov r0, sp
bl sub_800EA84
adds r4, r0, 0
adds r1, r7, 0
movs r2, 0x5
bl sub_8042DD4
ldr r0, _08040D28
ldrb r5, [r0]
ldr r6, _08040D2C
b _08040D78
.align 2, 0
_08040D28: .4byte gUnknown_203B40D
_08040D2C: .4byte 0x00001010
_08040D30:
ldr r0, _08040D58
movs r1, 0x1
strb r1, [r0]
ldr r1, _08040D5C
ldrh r2, [r1]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, r6
beq _08040D48
ldr r3, _08040D60
adds r0, r2, r3
strh r0, [r1]
_08040D48:
ldr r1, _08040D64
ldr r0, [r1]
cmp r0, 0x4
ble _08040D68
subs r0, 0x4
str r0, [r1]
b _08040D6E
.align 2, 0
_08040D58: .4byte gUnknown_203B40D
_08040D5C: .4byte gUnknown_2026E4E
_08040D60: .4byte 0x00000101
_08040D64: .4byte gUnknown_202EDC8
_08040D68:
movs r0, 0
str r0, [r1]
mov r8, r0
_08040D6E:
bl sub_803EA10
movs r0, 0x26
bl sub_803E46C
_08040D78:
adds r0, r4, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
beq _08040D8A
mov r0, r8
cmp r0, 0
bne _08040D30
_08040D8A:
ldr r0, _08040D9C
strb r5, [r0]
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08040D9C: .4byte gUnknown_203B40D
thumb_func_end sub_8040C4C
thumb_func_start sub_8040DA0
sub_8040DA0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
adds r7, r0, 0
mov r8, r1
bl sub_804143C
mov r9, r0
movs r0, 0
str r0, [sp, 0x14]
ldr r1, [r7, 0x70]
mov r10, r1
movs r0, 0x4
ldrsh r5, [r1, r0]
mov r1, r8
ldrh r4, [r1, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r9
bl sub_80412E0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_800EA44
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x18]
mov r0, sp
adds r1, r7, 0
mov r2, r8
mov r3, r9
bl sub_8041038
mov r0, sp
movs r1, 0x1
bl sub_800E838
lsls r0, 24
cmp r0, 0
bne _08040E0E
mov r1, r8
ldrh r0, [r1, 0x2]
cmp r0, 0x52
bne _08040E24
_08040E0E:
ldr r0, _08040E1C
ldr r0, [r0]
ldr r1, _08040E20
adds r0, r1
ldr r6, [r0]
b _08040E26
.align 2, 0
_08040E1C: .4byte gUnknown_203B418
_08040E20: .4byte 0x000181f8
_08040E24:
adds r6, r7, 0
_08040E26:
adds r0, r6, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
bne _08040E34
adds r6, r7, 0
_08040E34:
mov r1, sp
ldr r0, [r6, 0xC]
cmp r0, 0
bge _08040E3E
adds r0, 0xFF
_08040E3E:
asrs r0, 8
strh r0, [r1, 0x4]
mov r1, sp
ldr r0, [r6, 0x10]
cmp r0, 0
bge _08040E4C
adds r0, 0xFF
_08040E4C:
asrs r0, 8
strh r0, [r1, 0x6]
adds r0, r6, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
bne _08040E5E
b _08041026
_08040E5E:
adds r0, r7, 0
mov r1, r8
bl sub_80414C0
lsls r0, 24
cmp r0, 0
beq _08040E6E
b _08041026
_08040E6E:
mov r0, r8
ldrh r1, [r0, 0x2]
movs r0, 0x94
lsls r0, 1
cmp r1, r0
bne _08040ED0
movs r0, 0x7
bl sub_8084100
ldr r1, _08040EB8
str r0, [r1]
ldr r1, _08040EBC
ldr r2, [r1]
ldr r1, _08040EC0
adds r4, r2, r1
subs r1, 0x4
adds r2, r1
ldr r3, _08040EC4
lsls r1, r0, 2
adds r1, r3
ldr r1, [r1]
str r1, [r2]
str r1, [r4]
ldr r1, _08040EC8
adds r0, 0x4
str r0, [r1]
ldr r0, _08040ECC
ldr r1, [r0]
adds r0, r6, 0
bl sub_80522A8
movs r1, 0xD2
lsls r1, 1
adds r0, r6, 0
bl sub_80421C0
b _08040EF0
.align 2, 0
_08040EB8: .4byte gUnknown_202F224
_08040EBC: .4byte gUnknown_203B418
_08040EC0: .4byte 0x00018204
_08040EC4: .4byte gUnknown_8106A8C
_08040EC8: .4byte gUnknown_202DE30
_08040ECC: .4byte gUnknown_8100224
_08040ED0:
cmp r1, 0x76
bne _08040EF0
ldr r0, _08040F70
ldr r0, [r0]
ldr r1, _08040F74
adds r2, r0, r1
subs r1, 0x4
adds r0, r1
movs r1, 0xC
str r1, [r0]
str r1, [r2]
movs r1, 0xD2
lsls r1, 1
adds r0, r6, 0
bl sub_80421C0
_08040EF0:
mov r0, r10
movs r1, 0x4
ldrsh r5, [r0, r1]
mov r0, r8
ldrh r4, [r0, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r9
bl sub_80412E0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_800E790
adds r1, r0, 0
ldr r0, _08040F78
cmp r1, r0
beq _08040F2A
lsls r0, r1, 16
lsrs r0, 16
bl sub_8083E38
_08040F2A:
ldr r1, [sp, 0x18]
cmp r1, 0x63
bne _08040F7C
adds r0, r6, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08041026
mov r0, r10
adds r0, 0x46
ldrb r4, [r0]
mov r0, sp
adds r1, r7, 0
mov r2, r8
mov r3, r9
bl sub_8041108
movs r6, 0x7
movs r5, 0x7
_08040F52:
subs r4, 0x1
ands r4, r6
adds r0, r7, 0
movs r1, 0
adds r2, r4, 0
bl sub_806CDD4
movs r0, 0x2
movs r1, 0x15
bl sub_803E708
subs r5, 0x1
cmp r5, 0
bge _08040F52
b _08041026
.align 2, 0
_08040F70: .4byte gUnknown_203B418
_08040F74: .4byte 0x00018204
_08040F78: .4byte 0x000003e5
_08040F7C:
ldr r0, [sp, 0x18]
cmp r0, 0x62
bne _08040FC2
adds r0, r6, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08041026
mov r0, r10
adds r0, 0x46
ldrb r4, [r0]
mov r0, sp
adds r1, r7, 0
mov r2, r8
mov r3, r9
bl sub_8041108
movs r6, 0x7
movs r5, 0x8
_08040FA4:
ands r4, r6
adds r0, r7, 0
movs r1, 0
adds r2, r4, 0
bl sub_806CDD4
movs r0, 0x2
movs r1, 0x15
bl sub_803E708
adds r4, 0x1
subs r5, 0x1
cmp r5, 0
bge _08040FA4
b _08041026
_08040FC2:
mov r0, r10
adds r0, 0x46
ldrb r2, [r0]
adds r0, r7, 0
ldr r1, [sp, 0x18]
bl sub_806CDD4
adds r0, r7, 0
adds r0, 0x21
movs r1, 0
strb r1, [r0]
movs r5, 0
adds r6, r0, 0
b _08040FE6
_08040FDE:
ldrb r0, [r6]
cmp r0, 0
bne _08041022
adds r5, 0x1
_08040FE6:
cmp r5, 0x77
bgt _08041022
movs r0, 0x59
bl sub_803E46C
ldr r4, [r7, 0x40]
ldr r1, [sp, 0x18]
cmp r1, 0x9
bne _08040FFC
movs r0, 0x2
orrs r4, r0
_08040FFC:
movs r0, 0x2
ands r0, r4
cmp r0, 0
beq _0804101A
ldr r0, [sp, 0x14]
cmp r0, 0
bne _0804101A
mov r0, sp
adds r1, r7, 0
mov r2, r8
mov r3, r9
bl sub_8041108
movs r1, 0x1
str r1, [sp, 0x14]
_0804101A:
movs r0, 0x1
ands r4, r0
cmp r4, 0
beq _08040FDE
_08041022:
movs r0, 0
strb r0, [r6]
_08041026:
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8040DA0
thumb_func_start sub_8041038
sub_8041038:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r6, r0, 0
adds r7, r1, 0
mov r8, r2
mov r10, r3
ldr r0, [r7, 0x70]
mov r9, r0
ldrh r4, [r2, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r10
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
str r0, [sp]
bl sub_800ECB8
movs r1, 0x2
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080410F4
mov r0, r9
movs r1, 0x4
ldrsh r5, [r0, r1]
mov r0, r8
ldrh r4, [r0, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
mov r2, r10
bl sub_80412E0
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r5, 0
bl sub_800E710
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _080410BE
adds r0, r6, 0
adds r0, 0x8
adds r1, r7, 0
adds r1, 0x28
lsls r2, 24
lsrs r2, 24
bl sub_800569C
b _080410C2
_080410BE:
movs r0, 0
str r0, [r6, 0x8]
_080410C2:
mov r1, sp
ldrh r1, [r1]
strh r1, [r6]
mov r1, r9
ldrh r0, [r1, 0x4]
strh r0, [r6, 0x2]
ldr r0, [r7, 0xC]
cmp r0, 0
bge _080410D6
adds r0, 0xFF
_080410D6:
asrs r0, 8
strh r0, [r6, 0x4]
ldr r0, [r7, 0x10]
cmp r0, 0
bge _080410E2
adds r0, 0xFF
_080410E2:
asrs r0, 8
strh r0, [r6, 0x6]
mov r0, r9
adds r0, 0x46
ldrb r0, [r0]
str r0, [r6, 0xC]
movs r0, 0
str r0, [r6, 0x10]
b _080410F6
_080410F4:
strh r0, [r6]
_080410F6:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8041038
thumb_func_start sub_8041108
sub_8041108:
push {r4-r7,lr}
adds r6, r0, 0
adds r7, r1, 0
adds r5, r3, 0
ldrh r4, [r2, 0x2]
adds r0, r7, 0
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
adds r2, r5, 0
bl sub_80412E0
lsls r0, 16
lsrs r4, r0, 16
adds r0, r4, 0
bl sub_800ECB8
movs r2, 0x2
ldrsh r1, [r0, r2]
ldrh r0, [r6]
cmp r0, 0
beq _08041162
cmp r1, 0
beq _08041162
adds r0, r6, 0
bl sub_8041500
adds r0, r4, 0
bl sub_800EEF8
bl sub_800EF64
movs r0, 0x5A
bl sub_803E46C
adds r0, r6, 0
bl sub_800E52C
adds r1, r7, 0
movs r2, 0x1
bl sub_8042DD4
_08041162:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8041108
thumb_func_start sub_8041168
sub_8041168:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
mov r8, r0
adds r6, r1, 0
adds r7, r2, 0
mov r9, r3
adds r1, r7, 0
bl sub_804143C
adds r5, r0, 0
cmp r5, 0
beq _0804118A
movs r5, 0x1
_0804118A:
ldrh r4, [r7, 0x2]
mov r0, r8
bl sub_807E580
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r4, 0
adds r2, r5, 0
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
mov r10, r0
bl sub_800ECB8
movs r1, 0x4
ldrsh r5, [r0, r1]
movs r2, 0
str r2, [sp, 0x14]
adds r0, r6, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080411CA
ldr r0, [r6, 0x70]
str r0, [sp, 0x14]
adds r0, r6, 0
bl sub_8042768
b _080411D0
_080411CA:
mov r0, r9
bl sub_803F428
_080411D0:
lsls r0, 24
cmp r0, 0
beq _080412CE
mov r0, r8
adds r1, r7, 0
bl sub_80414C0
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080412CE
cmp r5, 0
beq _080412CE
adds r0, r5, 0
bl sub_800ECA4
ldr r5, [r0, 0x1C]
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08041216
adds r0, r6, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08041216
add r0, sp, 0x8
adds r1, r6, 0
adds r1, 0x28
lsls r2, r5, 24
lsrs r2, 24
bl sub_800569C
b _08041218
_08041216:
str r4, [sp, 0x8]
_08041218:
mov r0, sp
mov r1, r10
strh r1, [r0]
ldr r2, [sp, 0x14]
cmp r2, 0
beq _08041248
mov r1, sp
ldrh r0, [r2, 0x4]
strh r0, [r1, 0x2]
ldr r0, [r6, 0xC]
cmp r0, 0
bge _08041232
adds r0, 0xFF
_08041232:
asrs r0, 8
strh r0, [r1, 0x4]
mov r1, sp
ldr r0, [r6, 0x10]
cmp r0, 0
bge _08041240
adds r0, 0xFF
_08041240:
asrs r0, 8
strh r0, [r1, 0x6]
movs r0, 0
b _0804128C
_08041248:
mov r1, sp
movs r0, 0x1
strh r0, [r1, 0x2]
mov r0, r9
movs r2, 0
ldrsh r1, [r0, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
mov r1, sp
movs r2, 0xC0
lsls r2, 4
adds r0, r2
cmp r0, 0
bge _08041268
adds r0, 0xFF
_08041268:
asrs r0, 8
strh r0, [r1, 0x4]
mov r0, r9
movs r2, 0x2
ldrsh r1, [r0, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
mov r1, sp
movs r2, 0x80
lsls r2, 5
adds r0, r2
cmp r0, 0
bge _08041286
adds r0, 0xFF
_08041286:
asrs r0, 8
strh r0, [r1, 0x6]
ldr r0, [sp, 0x14]
_0804128C:
str r0, [sp, 0xC]
movs r0, 0
str r0, [sp, 0x10]
mov r0, sp
bl sub_8041500
mov r0, r10
bl sub_800EEE0
bl sub_800EF64
mov r0, sp
bl sub_800EBC8
adds r4, r0, 0
movs r0, 0x5B
bl sub_803E46C
adds r0, r4, 0
adds r1, r6, 0
movs r2, 0x6
bl sub_8042DD4
b _080412C2
_080412BC:
movs r0, 0x28
bl sub_803E46C
_080412C2:
adds r0, r4, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _080412BC
_080412CE:
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8041168
thumb_func_start sub_80412E0
sub_80412E0:
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r0, r1, 24
adds r3, r4, 0
cmp r3, 0x1F
bne _08041344
cmp r0, 0x7
bls _080412F6
b _080413F6
_080412F6:
lsls r0, 2
ldr r1, _08041300
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08041300: .4byte _08041304
.align 2, 0
_08041304:
.4byte _080413F4
.4byte _08041324
.4byte _0804132A
.4byte _080413F4
.4byte _08041334
.4byte _0804133A
.4byte _080413F4
.4byte _0804133A
_08041324:
movs r3, 0xCF
lsls r3, 1
b _080413F6
_0804132A:
ldr r3, _08041330
b _080413F6
.align 2, 0
_08041330: .4byte 0x000001a1
_08041334:
movs r3, 0xD0
lsls r3, 1
b _080413F6
_0804133A:
ldr r3, _08041340
b _080413F6
.align 2, 0
_08041340: .4byte 0x0000019f
_08041344:
cmp r2, 0
beq _080413F6
cmp r3, 0x97
beq _080413B4
cmp r3, 0x97
bgt _0804136C
cmp r3, 0x3C
beq _0804139C
cmp r3, 0x3C
bgt _08041362
cmp r3, 0x8
beq _08041396
cmp r3, 0x19
beq _080413E4
b _080413F4
_08041362:
cmp r3, 0x4B
beq _080413A4
cmp r3, 0x64
beq _080413AA
b _080413F4
_0804136C:
cmp r3, 0xCD
beq _080413CA
cmp r3, 0xCD
bgt _0804137E
cmp r3, 0x99
beq _080413BA
cmp r3, 0x9C
beq _080413C4
b _080413F4
_0804137E:
cmp r3, 0xED
beq _080413DA
cmp r3, 0xED
bgt _0804138C
cmp r3, 0xE3
beq _080413EA
b _080413F4
_0804138C:
movs r0, 0xAE
lsls r0, 1
cmp r3, r0
beq _080413D4
b _080413F4
_08041396:
movs r3, 0xD1
lsls r3, 1
b _080413F6
_0804139C:
ldr r3, _080413A0
b _080413F6
.align 2, 0
_080413A0: .4byte 0x000001a3
_080413A4:
movs r3, 0xD2
lsls r3, 1
b _080413F6
_080413AA:
ldr r3, _080413B0
b _080413F6
.align 2, 0
_080413B0: .4byte 0x000001a5
_080413B4:
movs r3, 0xD3
lsls r3, 1
b _080413F6
_080413BA:
ldr r3, _080413C0
b _080413F6
.align 2, 0
_080413C0: .4byte 0x000001a7
_080413C4:
movs r3, 0xD4
lsls r3, 1
b _080413F6
_080413CA:
ldr r3, _080413D0
b _080413F6
.align 2, 0
_080413D0: .4byte 0x000001a9
_080413D4:
movs r3, 0xD5
lsls r3, 1
b _080413F6
_080413DA:
ldr r3, _080413E0
b _080413F6
.align 2, 0
_080413E0: .4byte 0x000001ab
_080413E4:
movs r3, 0xD6
lsls r3, 1
b _080413F6
_080413EA:
ldr r3, _080413F0
b _080413F6
.align 2, 0
_080413F0: .4byte 0x000001ad
_080413F4:
adds r3, r4, 0
_080413F6:
adds r0, r3, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80412E0
thumb_func_start sub_8041400
sub_8041400:
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r1, 24
lsrs r1, 24
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
bl sub_800ED20
pop {r1}
bx r1
thumb_func_end sub_8041400
thumb_func_start sub_804141C
sub_804141C:
push {lr}
lsls r0, 16
lsrs r0, 16
lsls r1, 24
lsrs r1, 24
bl sub_80412E0
lsls r0, 16
lsrs r0, 16
bl sub_800EC84
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_804141C
thumb_func_start sub_804143C
sub_804143C:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
ldrh r0, [r5, 0x2]
cmp r0, 0xED
bne _08041476
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080414A4
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x1
bne _080414A4
ldr r1, [r4, 0x70]
adds r0, r1, 0
adds r0, 0x5C
ldrb r0, [r0]
cmp r0, 0xE
beq _080414A0
adds r0, r1, 0
adds r0, 0x5D
ldrb r0, [r0]
cmp r0, 0xE
beq _080414A0
b _0804148A
_08041476:
cmp r0, 0x19
beq _0804147E
cmp r0, 0xE3
bne _0804148E
_0804147E:
adds r0, r4, 0
bl sub_8070B28
lsls r0, 24
cmp r0, 0
beq _080414A0
_0804148A:
movs r0, 0
b _080414B8
_0804148E:
cmp r0, 0x97
bne _080414A4
adds r0, r4, 0
bl sub_807E580
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080414A4
_080414A0:
movs r0, 0x1
b _080414B8
_080414A4:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80570AC
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
negs r0, r1
orrs r0, r1
lsrs r0, 31
_080414B8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_804143C
thumb_func_start sub_80414C0
sub_80414C0:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldrh r0, [r4, 0x2]
cmp r0, 0x9C
bne _080414DC
adds r0, r5, 0
bl sub_8045128
bl sub_804AF20
lsls r0, 24
cmp r0, 0
bne _080414F2
_080414DC:
ldrh r0, [r4, 0x2]
cmp r0, 0x8
bne _080414F6
adds r0, r5, 0
bl sub_8045128
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x1
beq _080414F6
_080414F2:
movs r0, 0x1
b _080414F8
_080414F6:
movs r0, 0
_080414F8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80414C0
thumb_func_start sub_8041500
sub_8041500:
push {lr}
bl sub_800E7D0
lsls r0, 24
cmp r0, 0
beq _08041518
movs r0, 0x5C
bl sub_803E46C
movs r0, 0x5D
bl sub_8052740
_08041518:
pop {r0}
bx r0
thumb_func_end sub_8041500
thumb_func_start sub_804151C
sub_804151C:
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
adds r5, r1, 0
lsls r4, r2, 24
lsrs r4, 24
adds r0, r5, 0
bl sub_800DC9C
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
movs r0, 0x2
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r6, 0
adds r1, r5, 0
adds r2, r4, 0
bl sub_8041550
add sp, 0x8
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_804151C
thumb_func_start sub_8041550
sub_8041550:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x30
adds r7, r0, 0
mov r10, r1
ldr r0, [sp, 0x54]
lsls r2, 24
lsrs r2, 24
str r2, [sp, 0x2C]
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r0, 24
lsrs r6, r0, 24
adds r0, r7, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _0804159C
ldr r0, [r7, 0x70]
mov r8, r0
adds r0, r7, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _0804159C
cmp r6, 0
bne _080415A2
mov r0, r8
adds r0, 0xFF
ldrb r0, [r0]
cmp r0, 0x2
bne _080415A2
_0804159C:
movs r0, 0x1
negs r0, r0
b _08041692
_080415A2:
ldr r1, [sp, 0x50]
cmp r1, 0
beq _080415B4
movs r0, 0
cmp r1, 0x2
bne _080415B0
movs r0, 0x1
_080415B0:
bl sub_804178C
_080415B4:
add r6, sp, 0x28
adds r1, r7, 0
adds r1, 0x28
adds r0, r6, 0
mov r2, r9
bl sub_800569C
movs r2, 0
ldrsh r0, [r6, r2]
cmp r0, 0x63
beq _080415F2
ldrh r0, [r6, 0x2]
cmp r0, 0x63
beq _080415F2
movs r1, 0
ldrsh r0, [r6, r1]
lsls r0, 8
ldr r1, [r7, 0xC]
adds r4, r1, r0
movs r2, 0x2
ldrsh r0, [r6, r2]
lsls r0, 8
ldr r2, [r7, 0x10]
adds r0, r2, r0
movs r1, 0xBA
lsls r1, 1
add r1, r8
ldr r1, [r1]
subs r5, r0, r1
adds r1, r2, 0
b _08041600
_080415F2:
ldr r4, [r7, 0xC]
movs r0, 0xBA
lsls r0, 1
add r0, r8
ldr r1, [r7, 0x10]
ldr r0, [r0]
subs r5, r1, r0
_08041600:
cmp r1, 0
bge _08041606
adds r1, 0xFF
_08041606:
asrs r1, 8
ldr r0, _0804166C
ldr r0, [r0]
ldr r2, _08041670
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r1, r0
lsrs r0, r1, 31
adds r0, r1, r0
asrs r1, r0, 1
adds r1, 0x1
mov r0, r10
str r0, [sp]
movs r3, 0
str r3, [sp, 0x4]
movs r6, 0x1
negs r6, r6
str r6, [sp, 0x8]
mov r2, sp
adds r0, r4, 0
cmp r4, 0
bge _08041636
adds r0, 0xFF
_08041636:
asrs r0, 8
strh r0, [r2, 0xC]
mov r2, sp
adds r0, r5, 0
cmp r0, 0
bge _08041644
adds r0, 0xFF
_08041644:
asrs r0, 8
strh r0, [r2, 0xE]
str r6, [sp, 0x14]
mov r0, sp
strh r3, [r0, 0x10]
strh r3, [r0, 0x12]
str r1, [sp, 0x18]
add r0, sp, 0x1C
bl sub_8004E8C
mov r0, sp
movs r1, 0
bl sub_8041764
adds r4, r0, 0
ldr r1, [sp, 0x2C]
cmp r1, 0
beq _08041690
movs r5, 0
b _0804167C
.align 2, 0
_0804166C: .4byte gUnknown_203B418
_08041670: .4byte 0x000181f2
_08041674:
movs r0, 0x42
bl sub_803E46C
adds r5, 0x1
_0804167C:
cmp r5, 0x63
bgt _0804168C
adds r0, r4, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _08041674
_0804168C:
movs r4, 0x1
negs r4, r4
_08041690:
adds r0, r4, 0
_08041692:
add sp, 0x30
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8041550
thumb_func_start sub_80416A4
sub_80416A4:
push {r4,lr}
sub sp, 0x8
lsls r2, 24
lsrs r2, 24
movs r3, 0
ldrsh r4, [r0, r3]
lsls r3, r4, 1
adds r3, r4
lsls r3, 11
movs r4, 0xC0
lsls r4, 4
adds r3, r4
str r3, [sp]
movs r4, 0x2
ldrsh r3, [r0, r4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 11
movs r3, 0x80
lsls r3, 5
adds r0, r3
str r0, [sp, 0x4]
mov r0, sp
bl sub_80416E0
add sp, 0x8
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80416A4
thumb_func_start sub_80416E0
sub_80416E0:
push {r4,r5,lr}
sub sp, 0x28
adds r3, r0, 0
lsls r2, 24
lsrs r5, r2, 24
str r1, [sp]
movs r2, 0
str r2, [sp, 0x4]
movs r4, 0x1
negs r4, r4
str r4, [sp, 0x8]
mov r1, sp
ldr r0, [r3]
cmp r0, 0
bge _08041700
adds r0, 0xFF
_08041700:
asrs r0, 8
strh r0, [r1, 0xC]
mov r1, sp
ldr r0, [r3, 0x4]
cmp r0, 0
bge _0804170E
adds r0, 0xFF
_0804170E:
asrs r0, 8
strh r0, [r1, 0xE]
str r4, [sp, 0x14]
mov r0, sp
strh r2, [r0, 0x10]
strh r2, [r0, 0x12]
ldr r0, _08041738
str r0, [sp, 0x18]
add r0, sp, 0x1C
bl sub_8004E8C
mov r0, sp
movs r1, 0
bl sub_8041764
adds r4, r0, 0
cmp r5, 0
beq _08041758
movs r5, 0
b _08041744
.align 2, 0
_08041738: .4byte 0x0000ffff
_0804173C:
movs r0, 0x42
bl sub_803E46C
adds r5, 0x1
_08041744:
cmp r5, 0x63
bgt _08041754
adds r0, r4, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _0804173C
_08041754:
movs r4, 0x1
negs r4, r4
_08041758:
adds r0, r4, 0
add sp, 0x28
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80416E0
thumb_func_start sub_8041764
sub_8041764:
push {r4,r5,lr}
adds r5, r0, 0
lsls r4, r1, 24
lsrs r4, 24
ldr r0, [r5]
bl sub_800EE5C
bl sub_800EF64
cmp r4, 0
beq _08041780
movs r0, 0x42
bl sub_803E46C
_08041780:
adds r0, r5, 0
bl sub_800E890
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8041764
thumb_func_start sub_804178C
sub_804178C:
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
ldr r0, _080417B0
ldr r0, [r0]
ldr r1, _080417B4
adds r0, r1
str r4, [r0]
adds r0, r5, 0
bl sub_800E9FC
lsls r0, 24
cmp r0, 0
beq _080417E0
ldr r6, _080417B8
b _080417C4
.align 2, 0
_080417B0: .4byte gUnknown_203B418
_080417B4: .4byte 0x00018204
_080417B8: .4byte 0x000003e7
_080417BC:
movs r0, 0x4A
bl sub_803E46C
adds r4, 0x1
_080417C4:
cmp r4, r6
bgt _080417D4
adds r0, r5, 0
bl sub_800E9FC
lsls r0, 24
cmp r0, 0
bne _080417BC
_080417D4:
movs r0, 0x4A
bl sub_803E46C
movs r0, 0x4A
bl sub_803E46C
_080417E0:
movs r0, 0xFA
lsls r0, 2
cmp r4, r0
beq _080417EC
cmp r5, 0
beq _080417F0
_080417EC:
bl sub_800DBBC
_080417F0:
ldr r2, _08041824
ldr r0, [r2]
cmp r0, 0x1E
bgt _08041860
ldr r1, _08041828
ldrb r7, [r1]
movs r0, 0x1
strb r0, [r1]
movs r4, 0
adds r5, r2, 0
ldr r6, _0804182C
_08041806:
ldr r0, [r5]
cmp r0, 0x1E
bgt _08041838
adds r0, 0x4
str r0, [r5]
ldr r1, _08041830
ldrh r2, [r1]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, r6
beq _0804183C
ldr r3, _08041834
adds r0, r2, r3
strh r0, [r1]
b _0804183C
.align 2, 0
_08041824: .4byte gUnknown_202EDC8
_08041828: .4byte gUnknown_203B40D
_0804182C: .4byte 0x00000808
_08041830: .4byte gUnknown_2026E4E
_08041834: .4byte 0xfffffeff
_08041838:
movs r0, 0x1F
str r0, [r5]
_0804183C:
bl sub_803EA10
movs r0, 0x4A
bl sub_803E46C
ldr r0, [r5]
cmp r0, 0x1F
beq _08041854
adds r4, 0x1
ldr r0, _0804186C
cmp r4, r0
ble _08041806
_08041854:
ldr r0, _08041870
ldr r2, _08041874
adds r1, r2, 0
strh r1, [r0]
ldr r0, _08041878
strb r7, [r0]
_08041860:
bl sub_8042E98
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804186C: .4byte 0x000003e7
_08041870: .4byte gUnknown_2026E4E
_08041874: .4byte 0x00000808
_08041878: .4byte gUnknown_203B40D
thumb_func_end sub_804178C
thumb_func_start sub_804187C
sub_804187C:
ldr r0, [r0, 0x70]
movs r1, 0x80
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bx lr
thumb_func_end sub_804187C
thumb_func_start sub_8041888
sub_8041888:
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
_08041890:
ldr r0, _080418CC
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _080418D0
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080418C0
ldr r1, [r4, 0x70]
cmp r6, 0
beq _080418BA
movs r0, 0xA6
lsls r0, 1
adds r1, r0
movs r0, 0x1
strb r0, [r1]
_080418BA:
adds r0, r4, 0
bl sub_80418D4
_080418C0:
adds r5, 0x1
cmp r5, 0x13
ble _08041890
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080418CC: .4byte gUnknown_203B418
_080418D0: .4byte 0x000135cc
thumb_func_end sub_8041888
thumb_func_start sub_80418D4
sub_80418D4:
push {r4,lr}
adds r4, r0, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
bne _080418E4
b _08041A8C
_080418E4:
ldr r2, [r4, 0x70]
movs r3, 0
movs r1, 0x1
movs r4, 0x2
ldrsh r0, [r2, r4]
cmp r0, 0xB9
bne _08041902
adds r0, r2, 0
adds r0, 0xA9
ldrb r0, [r0]
movs r1, 0x7F
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r1, 31
_08041902:
cmp r1, 0
beq _08041914
ldr r1, _08041A94
adds r0, r2, 0
adds r0, 0xA8
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r3, [r0]
_08041914:
ldr r1, _08041A98
adds r0, r2, 0
adds r0, 0xAC
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041A9C
adds r0, r2, 0
adds r0, 0xB0
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AA0
adds r0, r2, 0
adds r0, 0xBC
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AA4
adds r0, r2, 0
adds r0, 0xC0
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AA8
adds r0, r2, 0
adds r0, 0xC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AAC
adds r0, r2, 0
adds r0, 0xC8
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AB0
adds r0, r2, 0
adds r0, 0xD0
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AB4
adds r0, r2, 0
adds r0, 0xDC
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AB8
adds r0, r2, 0
adds r0, 0xE0
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041ABC
adds r0, r2, 0
adds r0, 0xE4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AC0
adds r0, r2, 0
adds r0, 0xE8
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
ldr r1, _08041AC4
adds r0, r2, 0
adds r0, 0xEC
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
orrs r3, r0
adds r0, r2, 0
adds r0, 0xF4
ldrb r0, [r0]
cmp r0, 0
beq _080419E4
movs r0, 0x80
lsls r0, 17
orrs r3, r0
_080419E4:
adds r0, r2, 0
adds r0, 0xF5
ldrb r0, [r0]
cmp r0, 0
beq _080419F4
movs r0, 0x80
lsls r0, 18
orrs r3, r0
_080419F4:
ldrb r0, [r2, 0x6]
cmp r0, 0
bne _08041A14
movs r0, 0x10
ldrsh r1, [r2, r0]
cmp r1, 0
bge _08041A04
adds r1, 0x3
_08041A04:
asrs r1, 2
movs r4, 0xE
ldrsh r0, [r2, r4]
cmp r1, r0
ble _08041A14
movs r0, 0x80
lsls r0, 6
orrs r3, r0
_08041A14:
ldr r0, _08041AC8
ldr r0, [r0]
ldr r1, _08041ACC
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08041A36
adds r0, r2, 0
adds r0, 0x60
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08041A36
movs r0, 0x80
lsls r0, 6
orrs r3, r0
_08041A36:
ldr r0, [r2, 0x2C]
cmp r0, 0xFF
ble _08041A7E
ldr r0, [r2, 0x30]
cmp r0, 0xFF
ble _08041A7E
ldr r0, [r2, 0x34]
cmp r0, 0xFF
ble _08041A7E
ldr r0, [r2, 0x38]
cmp r0, 0xFF
ble _08041A7E
movs r4, 0x1C
ldrsh r0, [r2, r4]
cmp r0, 0x9
ble _08041A7E
movs r1, 0x1E
ldrsh r0, [r2, r1]
cmp r0, 0x9
ble _08041A7E
movs r4, 0x20
ldrsh r0, [r2, r4]
cmp r0, 0x9
ble _08041A7E
movs r1, 0x22
ldrsh r0, [r2, r1]
cmp r0, 0x9
ble _08041A7E
movs r4, 0x24
ldrsh r0, [r2, r4]
cmp r0, 0x9
ble _08041A7E
movs r1, 0x26
ldrsh r0, [r2, r1]
cmp r0, 0x9
bgt _08041A84
_08041A7E:
movs r0, 0x80
lsls r0, 20
orrs r3, r0
_08041A84:
movs r4, 0x80
lsls r4, 2
adds r0, r2, r4
str r3, [r0]
_08041A8C:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08041A94: .4byte gUnknown_80F669C
_08041A98: .4byte gUnknown_80F66B4
_08041A9C: .4byte gUnknown_80F66C8
_08041AA0: .4byte gUnknown_80F66E8
_08041AA4: .4byte gUnknown_80F6708
_08041AA8: .4byte gUnknown_80F673C
_08041AAC: .4byte gUnknown_80F6778
_08041AB0: .4byte gUnknown_80F6788
_08041AB4: .4byte gUnknown_80F6794
_08041AB8: .4byte gUnknown_80F67A8
_08041ABC: .4byte gUnknown_80F67B4
_08041AC0: .4byte gUnknown_80F67C4
_08041AC4: .4byte gUnknown_80F67D4
_08041AC8: .4byte gUnknown_203B418
_08041ACC: .4byte 0x00000676
thumb_func_end sub_80418D4
thumb_func_start sub_8041AD0
sub_8041AD0:
push {lr}
movs r1, 0xA2
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041AD0
thumb_func_start sub_8041AE0
sub_8041AE0:
push {lr}
ldr r1, _08041AF0
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041AF0: .4byte 0x00000143
thumb_func_end sub_8041AE0
thumb_func_start sub_8041AF4
sub_8041AF4:
push {r4,lr}
adds r4, r0, 0
movs r1, 0x25
movs r2, 0x1
bl sub_804151C
ldr r1, _08041B10
adds r0, r4, 0
bl sub_80421C0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08041B10: .4byte 0x00000197
thumb_func_end sub_8041AF4
thumb_func_start nullsub_57
nullsub_57:
bx lr
thumb_func_end nullsub_57
thumb_func_start sub_8041B18
sub_8041B18:
push {lr}
ldr r1, _08041B28
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041B28: .4byte 0x00000141
thumb_func_end sub_8041B18
thumb_func_start nullsub_58
nullsub_58:
bx lr
thumb_func_end nullsub_58
thumb_func_start nullsub_59
nullsub_59:
bx lr
thumb_func_end nullsub_59
thumb_func_start sub_8041B34
sub_8041B34:
push {lr}
movs r1, 0x7
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041B34
thumb_func_start nullsub_60
nullsub_60:
bx lr
thumb_func_end nullsub_60
thumb_func_start sub_8041B48
sub_8041B48:
push {lr}
movs r1, 0x4
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041B48
thumb_func_start nullsub_61
nullsub_61:
bx lr
thumb_func_end nullsub_61
thumb_func_start sub_8041B5C
sub_8041B5C:
push {lr}
ldr r1, _08041B6C
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041B6C: .4byte 0x00000171
thumb_func_end sub_8041B5C
thumb_func_start nullsub_62
nullsub_62:
bx lr
thumb_func_end nullsub_62
thumb_func_start sub_8041B74
sub_8041B74:
push {lr}
ldr r1, _08041B84
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041B84: .4byte 0x00000171
thumb_func_end sub_8041B74
thumb_func_start nullsub_63
nullsub_63:
bx lr
thumb_func_end nullsub_63
thumb_func_start nullsub_64
nullsub_64:
bx lr
thumb_func_end nullsub_64
thumb_func_start sub_8041B90
sub_8041B90:
push {lr}
movs r1, 0xD6
lsls r1, 1
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041B90
thumb_func_start nullsub_65
nullsub_65:
bx lr
thumb_func_end nullsub_65
thumb_func_start nullsub_66
nullsub_66:
bx lr
thumb_func_end nullsub_66
thumb_func_start sub_8041BA8
sub_8041BA8:
push {lr}
movs r1, 0x4
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041BA8
thumb_func_start nullsub_67
nullsub_67:
bx lr
thumb_func_end nullsub_67
thumb_func_start sub_8041BBC
sub_8041BBC:
push {lr}
movs r1, 0xD4
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041BBC
thumb_func_start nullsub_68
nullsub_68:
bx lr
thumb_func_end nullsub_68
thumb_func_start sub_8041BD0
sub_8041BD0:
push {lr}
lsls r1, 24
cmp r1, 0
beq _08041BDE
ldr r1, _08041BE4
bl sub_80421C0
_08041BDE:
pop {r0}
bx r0
.align 2, 0
_08041BE4: .4byte 0x000001a5
thumb_func_end sub_8041BD0
thumb_func_start sub_8041BE8
sub_8041BE8:
push {lr}
movs r1, 0xCB
lsls r1, 1
bl sub_80421C0
pop {r0}
bx r0
thumb_func_end sub_8041BE8
thumb_func_start sub_8041BF8
sub_8041BF8:
push {lr}
movs r1, 0xA
movs r2, 0x8
bl sub_806CDD4
pop {r0}
bx r0
thumb_func_end sub_8041BF8
thumb_func_start sub_8041C08
sub_8041C08:
push {lr}
ldr r1, _08041C18
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041C18: .4byte 0x000001a7
thumb_func_end sub_8041C08
thumb_func_start sub_8041C1C
sub_8041C1C:
push {lr}
ldr r1, _08041C2C
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041C2C: .4byte 0x000001a7
thumb_func_end sub_8041C1C
thumb_func_start nullsub_69
nullsub_69:
bx lr
thumb_func_end nullsub_69
thumb_func_start sub_8041C34
sub_8041C34:
push {lr}
movs r1, 0x4C
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041C34
thumb_func_start nullsub_70
nullsub_70:
bx lr
thumb_func_end nullsub_70
thumb_func_start nullsub_71
nullsub_71:
bx lr
thumb_func_end nullsub_71
thumb_func_start sub_8041C4C
sub_8041C4C:
push {lr}
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041C4C
thumb_func_start sub_8041C58
sub_8041C58:
push {lr}
ldr r1, _08041C68
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041C68: .4byte 0x000001a9
thumb_func_end sub_8041C58
thumb_func_start sub_8041C6C
sub_8041C6C:
push {lr}
movs r1, 0x9D
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041C6C
thumb_func_start sub_8041C7C
sub_8041C7C:
push {lr}
movs r1, 0x9D
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041C7C
thumb_func_start nullsub_72
nullsub_72:
bx lr
thumb_func_end nullsub_72
thumb_func_start nullsub_73
nullsub_73:
bx lr
thumb_func_end nullsub_73
thumb_func_start sub_8041C94
sub_8041C94:
push {lr}
ldr r1, _08041CA4
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041CA4: .4byte 0x00000171
thumb_func_end sub_8041C94
thumb_func_start sub_8041CA8
sub_8041CA8:
push {lr}
movs r1, 0x7
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041CA8
thumb_func_start sub_8041CB8
sub_8041CB8:
push {lr}
ldr r1, _08041CC8
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041CC8: .4byte 0x0000018b
thumb_func_end sub_8041CB8
thumb_func_start sub_8041CCC
sub_8041CCC:
push {lr}
movs r1, 0xC5
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041CCC
thumb_func_start sub_8041CDC
sub_8041CDC:
push {lr}
movs r1, 0x5
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041CDC
thumb_func_start sub_8041CEC
sub_8041CEC:
push {lr}
ldr r1, _08041CF8
bl sub_80421C0
pop {r0}
bx r0
.align 2, 0
_08041CF8: .4byte 0x0000019d
thumb_func_end sub_8041CEC
thumb_func_start nullsub_74
nullsub_74:
bx lr
thumb_func_end nullsub_74
thumb_func_start sub_8041D00
sub_8041D00:
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
movs r1, 0x2F
movs r2, 0x1
bl sub_804151C
adds r0, r4, 0
movs r1, 0x30
movs r2, 0x1
bl sub_804151C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8041D00
thumb_func_start nullsub_75
nullsub_75:
bx lr
thumb_func_end nullsub_75
thumb_func_start nullsub_76
nullsub_76:
bx lr
thumb_func_end nullsub_76
thumb_func_start nullsub_77
nullsub_77:
bx lr
thumb_func_end nullsub_77
thumb_func_start nullsub_78
nullsub_78:
bx lr
thumb_func_end nullsub_78
thumb_func_start nullsub_79
nullsub_79:
bx lr
thumb_func_end nullsub_79
thumb_func_start nullsub_80
nullsub_80:
bx lr
thumb_func_end nullsub_80
thumb_func_start sub_8041D38
sub_8041D38:
push {lr}
movs r1, 0x21
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041D38
thumb_func_start sub_8041D48
sub_8041D48:
push {lr}
ldr r1, _08041D54
bl sub_80421C0
pop {r0}
bx r0
.align 2, 0
_08041D54: .4byte 0x00000191
thumb_func_end sub_8041D48
thumb_func_start nullsub_81
nullsub_81:
bx lr
thumb_func_end nullsub_81
thumb_func_start sub_8041D5C
sub_8041D5C:
push {r4,lr}
adds r4, r0, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08041D7E
ldr r0, [r4, 0x70]
movs r1, 0x89
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
adds r1, r4, 0
movs r2, 0x1
movs r3, 0xB
bl sub_803ED30
_08041D7E:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8041D5C
thumb_func_start sub_8041D84
sub_8041D84:
push {lr}
ldr r1, _08041D90
bl sub_80421C0
pop {r0}
bx r0
.align 2, 0
_08041D90: .4byte 0x0000019f
thumb_func_end sub_8041D84
thumb_func_start nullsub_82
nullsub_82:
bx lr
thumb_func_end nullsub_82
thumb_func_start nullsub_83
nullsub_83:
bx lr
thumb_func_end nullsub_83
thumb_func_start sub_8041D9C
sub_8041D9C:
push {lr}
ldr r1, _08041DAC
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041DAC: .4byte 0x00000131
thumb_func_end sub_8041D9C
thumb_func_start sub_8041DB0
sub_8041DB0:
push {lr}
movs r1, 0x30
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041DB0
thumb_func_start nullsub_84
nullsub_84:
bx lr
thumb_func_end nullsub_84
thumb_func_start nullsub_85
nullsub_85:
bx lr
thumb_func_end nullsub_85
thumb_func_start nullsub_204
nullsub_204:
bx lr
thumb_func_end nullsub_204
thumb_func_start nullsub_86
nullsub_86:
bx lr
thumb_func_end nullsub_86
thumb_func_start nullsub_87
nullsub_87:
bx lr
thumb_func_end nullsub_87
thumb_func_start nullsub_88
nullsub_88:
bx lr
thumb_func_end nullsub_88
thumb_func_start sub_8041DD8
sub_8041DD8:
push {r4,r5,lr}
adds r4, r0, 0
lsls r1, 16
asrs r5, r1, 16
movs r1, 0xE
bl sub_8071858
lsls r0, 24
cmp r0, 0
beq _08041DF8
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_804151C
b _08041E02
_08041DF8:
adds r0, r4, 0
movs r1, 0xE
movs r2, 0x1
bl sub_804151C
_08041E02:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8041DD8
thumb_func_start nullsub_89
nullsub_89:
bx lr
thumb_func_end nullsub_89
thumb_func_start sub_8041E0C
sub_8041E0C:
push {lr}
movs r1, 0x41
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041E0C
thumb_func_start sub_8041E1C
sub_8041E1C:
push {r4,lr}
adds r4, r0, 0
movs r1, 0x8F
lsls r1, 1
movs r2, 0x1
bl sub_804151C
movs r1, 0xCE
lsls r1, 1
adds r0, r4, 0
bl sub_80421C0
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8041E1C
thumb_func_start sub_8041E3C
sub_8041E3C:
push {lr}
movs r1, 0xD7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041E3C
thumb_func_start sub_8041E4C
sub_8041E4C:
push {lr}
ldr r1, _08041E5C
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041E5C: .4byte 0x000001b1
thumb_func_end sub_8041E4C
thumb_func_start sub_8041E60
sub_8041E60:
push {lr}
ldr r1, _08041E70
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041E70: .4byte 0x000001a9
thumb_func_end sub_8041E60
thumb_func_start sub_8041E74
sub_8041E74:
push {lr}
movs r1, 0xC9
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041E74
thumb_func_start sub_8041E84
sub_8041E84:
push {lr}
movs r1, 0xC7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041E84
thumb_func_start sub_8041E94
sub_8041E94:
push {lr}
movs r1, 0xC8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041E94
thumb_func_start sub_8041EA4
sub_8041EA4:
push {lr}
movs r1, 0x15
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041EA4
thumb_func_start sub_8041EB4
sub_8041EB4:
push {lr}
ldr r1, _08041EC4
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08041EC4: .4byte 0x00000171
thumb_func_end sub_8041EB4
thumb_func_start sub_8041EC8
sub_8041EC8:
push {lr}
ldr r1, _08041ED4
bl sub_80421C0
pop {r0}
bx r0
.align 2, 0
_08041ED4: .4byte 0x00000197
thumb_func_end sub_8041EC8
thumb_func_start sub_8041ED8
sub_8041ED8:
push {lr}
ldr r1, _08041EE4
bl sub_80421C0
pop {r0}
bx r0
.align 2, 0
_08041EE4: .4byte 0x00000197
thumb_func_end sub_8041ED8
thumb_func_start sub_8041EE8
sub_8041EE8:
push {lr}
movs r1, 0x15
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041EE8
thumb_func_start sub_8041EF8
sub_8041EF8:
push {lr}
movs r1, 0xF
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8041EF8
thumb_func_start sub_8041F08
sub_8041F08:
push {lr}
sub sp, 0x8
movs r1, 0x2
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x15
movs r2, 0x1
movs r3, 0x3
bl sub_8041550
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_8041F08
thumb_func_start nullsub_90
nullsub_90:
bx lr
thumb_func_end nullsub_90
thumb_func_start sub_8041F28
sub_8041F28:
push {lr}
cmp r1, 0
bne _08041F3A
movs r1, 0xCA
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041F42
_08041F3A:
ldr r1, _08041F48
movs r2, 0x1
bl sub_804151C
_08041F42:
pop {r0}
bx r0
.align 2, 0
_08041F48: .4byte 0x00000193
thumb_func_end sub_8041F28
thumb_func_start sub_8041F4C
sub_8041F4C:
push {lr}
cmp r1, 0
bne _08041F60
ldr r1, _08041F5C
movs r2, 0x1
bl sub_804151C
b _08041F68
.align 2, 0
_08041F5C: .4byte 0x0000018f
_08041F60:
ldr r1, _08041F6C
movs r2, 0x1
bl sub_804151C
_08041F68:
pop {r0}
bx r0
.align 2, 0
_08041F6C: .4byte 0x00000191
thumb_func_end sub_8041F4C
thumb_func_start sub_8041F70
sub_8041F70:
push {lr}
cmp r1, 0
bne _08041F84
ldr r1, _08041F80
movs r2, 0x1
bl sub_804151C
b _08041F8E
.align 2, 0
_08041F80: .4byte 0x000001a9
_08041F84:
movs r1, 0xC9
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041F8E:
pop {r0}
bx r0
thumb_func_end sub_8041F70
thumb_func_start sub_8041F94
sub_8041F94:
push {lr}
cmp r1, 0
bne _08041FA6
movs r1, 0xC7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041FB0
_08041FA6:
movs r1, 0xC8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041FB0:
pop {r0}
bx r0
thumb_func_end sub_8041F94
thumb_func_start sub_8041FB4
sub_8041FB4:
push {lr}
cmp r1, 0
bne _08041FC8
ldr r1, _08041FC4
movs r2, 0x1
bl sub_804151C
b _08041FD2
.align 2, 0
_08041FC4: .4byte 0x000001a9
_08041FC8:
movs r1, 0xC9
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08041FD2:
pop {r0}
bx r0
thumb_func_end sub_8041FB4
thumb_func_start sub_8041FD8
sub_8041FD8:
push {lr}
cmp r1, 0
bne _08041FEA
movs r1, 0xCA
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08041FF2
_08041FEA:
ldr r1, _08041FF8
movs r2, 0x1
bl sub_804151C
_08041FF2:
pop {r0}
bx r0
.align 2, 0
_08041FF8: .4byte 0x00000193
thumb_func_end sub_8041FD8
thumb_func_start sub_8041FFC
sub_8041FFC:
push {lr}
cmp r1, 0
bne _0804200E
movs r1, 0xC7
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _08042018
_0804200E:
movs r1, 0xC8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
_08042018:
pop {r0}
bx r0
thumb_func_end sub_8041FFC
thumb_func_start sub_804201C
sub_804201C:
push {lr}
cmp r1, 0
bne _08042030
ldr r1, _0804202C
movs r2, 0x1
bl sub_804151C
b _08042038
.align 2, 0
_0804202C: .4byte 0x0000018f
_08042030:
ldr r1, _0804203C
movs r2, 0x1
bl sub_804151C
_08042038:
pop {r0}
bx r0
.align 2, 0
_0804203C: .4byte 0x00000191
thumb_func_end sub_804201C
thumb_func_start sub_8042040
sub_8042040:
push {lr}
cmp r1, 0
bne _08042052
movs r1, 0xC6
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _0804205A
_08042052:
movs r1, 0xD
movs r2, 0x1
bl sub_804151C
_0804205A:
pop {r0}
bx r0
thumb_func_end sub_8042040
thumb_func_start sub_8042060
sub_8042060:
push {lr}
cmp r1, 0
bne _08042074
ldr r1, _08042070
movs r2, 0x1
bl sub_804151C
b _0804207C
.align 2, 0
_08042070: .4byte 0x0000018d
_08042074:
movs r1, 0xE
movs r2, 0x1
bl sub_804151C
_0804207C:
pop {r0}
bx r0
thumb_func_end sub_8042060
thumb_func_start sub_8042080
sub_8042080:
push {lr}
cmp r1, 0
bne _08042092
movs r1, 0xC6
lsls r1, 1
movs r2, 0x1
bl sub_804151C
b _0804209A
_08042092:
movs r1, 0xD
movs r2, 0x1
bl sub_804151C
_0804209A:
pop {r0}
bx r0
thumb_func_end sub_8042080
thumb_func_start sub_80420A0
sub_80420A0:
push {lr}
ldr r1, _080420B0
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080420B0: .4byte 0x00000143
thumb_func_end sub_80420A0
thumb_func_start nullsub_91
nullsub_91:
bx lr
thumb_func_end nullsub_91
thumb_func_start sub_80420B8
sub_80420B8:
push {lr}
movs r1, 0x19
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_80420B8
thumb_func_start sub_80420C8
sub_80420C8:
push {lr}
sub sp, 0x8
movs r1, 0x2
str r1, [sp]
movs r1, 0
str r1, [sp, 0x4]
movs r1, 0x15
movs r2, 0x1
movs r3, 0x3
bl sub_8041550
add sp, 0x8
pop {r0}
bx r0
thumb_func_end sub_80420C8
thumb_func_start nullsub_92
nullsub_92:
bx lr
thumb_func_end nullsub_92
thumb_func_start sub_80420E8
sub_80420E8:
push {r4,lr}
sub sp, 0x8
adds r4, r0, 0
ldr r1, [r1, 0x8]
ldr r0, _0804211C
ldr r0, [r0]
ldr r2, _08042120
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
beq _08042106
adds r0, r1, 0
bl sub_806F62C
adds r1, r0, 0
_08042106:
cmp r1, 0x1
beq _08042124
cmp r1, 0x1
bcc _08042116
cmp r1, 0x2
beq _08042128
cmp r1, 0x3
beq _0804212C
_08042116:
movs r1, 0x8
b _0804212E
.align 2, 0
_0804211C: .4byte gUnknown_203B418
_08042120: .4byte 0x0000016d
_08042124:
movs r1, 0x9
b _0804212E
_08042128:
movs r1, 0xA
b _0804212E
_0804212C:
movs r1, 0xB
_0804212E:
movs r0, 0
str r0, [sp]
movs r0, 0x1
str r0, [sp, 0x4]
adds r0, r4, 0
movs r2, 0x1
movs r3, 0x3
bl sub_8041550
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80420E8
thumb_func_start sub_8042148
sub_8042148:
push {r4,lr}
adds r4, r0, 0
ldr r1, _08042164
bl sub_80421C0
movs r1, 0x9F
lsls r1, 1
adds r0, r4, 0
movs r2, 0x1
bl sub_804151C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08042164: .4byte 0x000001a7
thumb_func_end sub_8042148
thumb_func_start nullsub_93
nullsub_93:
bx lr
thumb_func_end nullsub_93
thumb_func_start sub_804216C
sub_804216C:
push {lr}
adds r0, r1, 0
cmp r2, 0x1
bne _0804217E
movs r1, 0xF8
movs r2, 0x1
bl sub_804151C
b _08042186
_0804217E:
movs r1, 0xF9
movs r2, 0x1
bl sub_804151C
_08042186:
pop {r0}
bx r0
thumb_func_end sub_804216C
thumb_func_start sub_804218C
sub_804218C:
push {lr}
adds r0, r1, 0
movs r1, 0x2A
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_804218C
thumb_func_start sub_804219C
sub_804219C:
push {lr}
movs r1, 0x90
movs r2, 0x1
bl sub_80416E0
pop {r0}
bx r0
thumb_func_end sub_804219C
thumb_func_start sub_80421AC
sub_80421AC:
push {lr}
adds r0, r1, 0
ldr r1, _080421BC
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080421BC: .4byte 0x00000167
thumb_func_end sub_80421AC
thumb_func_start sub_80421C0
sub_80421C0:
push {r4,lr}
adds r2, r0, 0
lsls r1, 16
lsrs r0, r1, 16
adds r4, r0, 0
cmp r2, 0
bne _080421D4
bl sub_8083E38
b _080421E6
_080421D4:
adds r0, r2, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _080421E6
adds r0, r4, 0
bl sub_8083E38
_080421E6:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80421C0
thumb_func_start sub_80421EC
sub_80421EC:
push {r4,lr}
lsls r1, 16
lsrs r4, r1, 16
bl sub_803F428
lsls r0, 24
cmp r0, 0
beq _08042202
adds r0, r4, 0
bl sub_8083E38
_08042202:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80421EC
thumb_func_start sub_8042208
sub_8042208:
push {lr}
lsls r1, 24
lsrs r1, 24
cmp r1, 0
bne _0804221C
movs r0, 0xA9
lsls r0, 1
bl sub_8083E38
b _08042234
_0804221C:
cmp r1, 0x1
bne _0804222C
ldr r0, _08042228
bl sub_8083E38
b _08042234
.align 2, 0
_08042228: .4byte 0x00000151
_0804222C:
movs r0, 0xA8
lsls r0, 1
bl sub_8083E38
_08042234:
pop {r0}
bx r0
thumb_func_end sub_8042208
thumb_func_start sub_8042238
sub_8042238:
push {lr}
ldr r0, [r1, 0x70]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _08042250
ldr r0, _0804224C
bl sub_8083E38
b _08042258
.align 2, 0
_0804224C: .4byte 0x00000157
_08042250:
movs r0, 0xAB
lsls r0, 1
bl sub_8083E38
_08042258:
pop {r0}
bx r0
thumb_func_end sub_8042238
thumb_func_start sub_804225C
sub_804225C:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
mov r8, r0
adds r5, r1, 0
lsls r2, 24
lsrs r4, r2, 24
adds r7, r4, 0
cmp r4, 0x11
bne _08042274
b _08042384
_08042274:
adds r0, r5, 0
bl sub_803F428
lsls r0, 24
cmp r0, 0
bne _08042282
b _08042384
_08042282:
adds r0, r4, 0
bl sub_800EF28
bl sub_800EF64
movs r0, 0x4
movs r1, 0x42
bl sub_803E708
movs r0, 0
ldrsh r1, [r5, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r1, 0xC0
lsls r1, 4
adds r0, r1
cmp r0, 0
bge _080422AA
adds r0, 0xFF
_080422AA:
lsls r0, 8
lsrs r0, 16
ldr r1, _080422FC
ldr r2, [sp]
ands r2, r1
orrs r2, r0
str r2, [sp]
movs r0, 0x2
ldrsh r1, [r5, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r1, 0x80
lsls r1, 5
adds r0, r1
cmp r0, 0
bge _080422CE
adds r0, 0xFF
_080422CE:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r1, _08042300
ands r2, r1
orrs r2, r0
str r2, [sp]
adds r0, r4, 0
mov r1, sp
bl sub_800E448
adds r6, r0, 0
cmp r4, 0x4
bne _08042308
ldr r1, _08042304
movs r0, 0
bl sub_80421C0
movs r0, 0x28
movs r1, 0x33
bl sub_803E708
b _08042360
.align 2, 0
_080422FC: .4byte 0xffff0000
_08042300: .4byte 0x0000ffff
_08042304: .4byte 0x00000193
_08042308:
cmp r7, 0x8
bne _08042358
mov r0, r8
ldr r7, [r0, 0x70]
adds r0, r7, 0
adds r0, 0x46
ldrb r4, [r0]
movs r5, 0
b _0804231C
_0804231A:
adds r5, 0x2
_0804231C:
ldr r0, _08042354
cmp r5, r0
bgt _08042346
subs r4, 0x1
movs r0, 0x7
ands r4, r0
mov r0, r8
movs r1, 0
adds r2, r4, 0
bl sub_806CDD4
movs r0, 0x2
movs r1, 0x33
bl sub_803E708
adds r0, r6, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _0804231A
_08042346:
movs r0, 0x7
ands r4, r0
adds r0, r7, 0
adds r0, 0x46
strb r4, [r0]
b _08042360
.align 2, 0
_08042354: .4byte 0x000003e7
_08042358:
movs r0, 0x28
movs r1, 0x33
bl sub_803E708
_08042360:
movs r5, 0
ldr r4, _08042368
b _0804236E
.align 2, 0
_08042368: .4byte 0x000003e7
_0804236C:
adds r5, 0x1
_0804236E:
cmp r5, r4
bgt _08042384
movs r0, 0x42
bl sub_803E46C
adds r0, r6, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _0804236C
_08042384:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_804225C
thumb_func_start sub_8042390
sub_8042390:
push {r4-r6,lr}
sub sp, 0x18
adds r5, r0, 0
adds r4, r1, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08042454
ldrb r1, [r4]
movs r0, 0x8
ands r0, r1
movs r6, 0
cmp r0, 0
bne _080423B0
ldrb r6, [r4, 0x2]
_080423B0:
adds r0, r6, 0
movs r1, 0
bl sub_800EF40
bl sub_800EF64
movs r0, 0x4
movs r1, 0x42
bl sub_803E708
ldr r0, [r5, 0xC]
cmp r0, 0
bge _080423CC
adds r0, 0xFF
_080423CC:
lsls r0, 8
lsrs r0, 16
ldr r1, _08042428
ldr r2, [sp, 0x14]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x14]
ldr r0, [r5, 0x10]
cmp r0, 0
bge _080423E2
adds r0, 0xFF
_080423E2:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r4, _0804242C
ands r4, r2
orrs r4, r0
str r4, [sp, 0x14]
asrs r4, 16
ldr r0, _08042430
ldr r0, [r0]
ldr r1, _08042434
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r4, 1
adds r4, 0x1
adds r1, r5, 0
adds r1, 0x28
add r0, sp, 0x4
bl sub_8005700
add r1, sp, 0x14
str r4, [sp]
adds r0, r6, 0
add r2, sp, 0x4
movs r3, 0
bl sub_800E49C
adds r5, r0, 0
movs r4, 0
ldr r6, _08042438
b _0804243E
.align 2, 0
_08042428: .4byte 0xffff0000
_0804242C: .4byte 0x0000ffff
_08042430: .4byte gUnknown_203B418
_08042434: .4byte 0x000181f2
_08042438: .4byte 0x000003e7
_0804243C:
adds r4, 0x1
_0804243E:
cmp r4, r6
bgt _08042454
movs r0, 0x42
bl sub_803E46C
adds r0, r5, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _0804243C
_08042454:
add sp, 0x18
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8042390
thumb_func_start sub_804245C
sub_804245C:
push {r4-r6,lr}
sub sp, 0x18
adds r5, r0, 0
adds r4, r1, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08042518
ldrb r1, [r4]
movs r0, 0x8
ands r0, r1
movs r6, 0
cmp r0, 0
bne _0804247C
ldrb r6, [r4, 0x2]
_0804247C:
bl sub_800EF64
movs r0, 0x4
movs r1, 0x42
bl sub_803E708
ldr r0, [r5, 0xC]
cmp r0, 0
bge _08042490
adds r0, 0xFF
_08042490:
lsls r0, 8
lsrs r0, 16
ldr r1, _080424EC
ldr r2, [sp, 0x14]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x14]
ldr r0, [r5, 0x10]
cmp r0, 0
bge _080424A6
adds r0, 0xFF
_080424A6:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r4, _080424F0
ands r4, r2
orrs r4, r0
str r4, [sp, 0x14]
asrs r4, 16
ldr r0, _080424F4
ldr r0, [r0]
ldr r1, _080424F8
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
subs r4, r0
lsrs r0, r4, 31
adds r4, r0
asrs r4, 1
adds r4, 0x1
adds r1, r5, 0
adds r1, 0x28
add r0, sp, 0x4
bl sub_8005700
add r1, sp, 0x14
str r4, [sp]
adds r0, r6, 0
add r2, sp, 0x4
movs r3, 0x1
bl sub_800E49C
adds r5, r0, 0
movs r4, 0
ldr r6, _080424FC
b _08042502
.align 2, 0
_080424EC: .4byte 0xffff0000
_080424F0: .4byte 0x0000ffff
_080424F4: .4byte gUnknown_203B418
_080424F8: .4byte 0x000181f2
_080424FC: .4byte 0x000003e7
_08042500:
adds r4, 0x1
_08042502:
cmp r4, r6
bgt _08042518
movs r0, 0x42
bl sub_803E46C
adds r0, r5, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
bne _08042500
_08042518:
add sp, 0x18
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_804245C
thumb_func_start sub_8042520
sub_8042520:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x3C
adds r4, r0, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
bne _0804253A
b _08042664
_0804253A:
ldr r0, [r4, 0x70]
adds r0, 0x46
ldrb r5, [r0]
ldr r0, [r4, 0xC]
cmp r0, 0
bge _08042548
adds r0, 0xFF
_08042548:
lsls r0, 8
lsrs r0, 16
ldr r1, _0804264C
ldr r2, [sp, 0x2C]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x2C]
ldr r0, [r4, 0x10]
cmp r0, 0
bge _0804255E
adds r0, 0xFF
_0804255E:
lsls r0, 8
lsrs r0, 16
lsls r0, 16
ldr r1, _08042650
ands r1, r2
orrs r1, r0
str r1, [sp, 0x2C]
asrs r1, 16
ldr r0, _08042654
ldr r0, [r0]
ldr r2, _08042658
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r7, r1, 1
ldr r0, _0804265C
str r0, [sp, 0x4]
movs r2, 0
str r2, [sp, 0x8]
str r5, [sp, 0xC]
add r1, sp, 0x4
add r4, sp, 0x2C
ldrh r0, [r4]
strh r0, [r1, 0xC]
ldr r0, [sp, 0x2C]
asrs r0, 16
strh r0, [r1, 0xE]
adds r0, r1, 0
strh r2, [r0, 0x10]
strh r2, [r0, 0x12]
movs r0, 0x1
negs r0, r0
str r0, [sp, 0x18]
str r7, [sp, 0x1C]
add r0, sp, 0x20
bl sub_8004E8C
add r0, sp, 0x4
movs r1, 0
bl sub_8041764
adds r6, r0, 0
mov r10, r4
lsls r1, r5, 2
mov r0, sp
adds r0, 0x30
str r0, [sp, 0x38]
ldr r0, _08042660
adds r5, r1, r0
movs r1, 0x5
mov r8, r1
mov r9, r10
_080425CC:
movs r0, 0
str r0, [sp]
adds r0, r6, 0
adds r1, r4, 0
movs r2, 0
adds r3, r7, 0
bl sub_800E8AC
movs r0, 0x42
bl sub_803E46C
movs r2, 0
ldrsh r0, [r5, r2]
lsls r0, 2
mov r1, r9
ldrh r1, [r1]
adds r0, r1
mov r2, r9
strh r0, [r2]
movs r0, 0x2
ldrsh r1, [r5, r0]
lsls r1, 2
ldrh r0, [r4, 0x2]
adds r0, r1
strh r0, [r4, 0x2]
movs r2, 0x2
ldrsh r1, [r4, r2]
ldr r0, _08042654
ldr r0, [r0]
ldr r2, _08042658
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r1, r0
lsrs r0, r1, 31
adds r1, r0
asrs r7, r1, 1
movs r0, 0x1
negs r0, r0
add r8, r0
mov r1, r8
cmp r1, 0
bge _080425CC
bl sub_800DBBC
mov r2, r10
movs r1, 0
ldrsh r0, [r2, r1]
lsls r0, 8
str r0, [sp, 0x30]
add r0, sp, 0x2C
movs r2, 0x2
ldrsh r0, [r0, r2]
lsls r0, 8
ldr r1, [sp, 0x38]
str r0, [r1, 0x4]
movs r1, 0xD0
lsls r1, 1
ldr r0, [sp, 0x38]
movs r2, 0x1
bl sub_80416E0
adds r6, r0, 0
b _08042668
.align 2, 0
_0804264C: .4byte 0xffff0000
_08042650: .4byte 0x0000ffff
_08042654: .4byte gUnknown_203B418
_08042658: .4byte 0x000181f2
_0804265C: .4byte 0x00000165
_08042660: .4byte gUnknown_80F4448
_08042664:
movs r6, 0x1
negs r6, r6
_08042668:
adds r0, r6, 0
add sp, 0x3C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8042520
thumb_func_start sub_804267C
sub_804267C:
push {r4,lr}
ldr r4, _080426B8
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _08042694
cmp r0, 0
blt _08042694
cmp r0, 0x2
ble _080426AC
_08042694:
ldr r0, _080426BC
ldr r0, [r0]
ldr r1, _080426C0
adds r0, r1
ldrb r0, [r0]
bl GetStairDirection
lsls r0, 24
ldr r4, _080426C4
cmp r0, 0
beq _080426AC
subs r4, 0x1
_080426AC:
adds r0, r4, 0
bl sub_8083E38
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080426B8: .4byte 0x000003e5
_080426BC: .4byte gUnknown_203B418
_080426C0: .4byte 0x00000644
_080426C4: .4byte 0x00000155
thumb_func_end sub_804267C
thumb_func_start sub_80426C8
sub_80426C8:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
cmp r4, 0x3
bne _080426D8
movs r0, 0
bl sub_8083E88
_080426D8:
cmp r5, 0x4
beq _080426F0
ldr r0, _080426EC
lsls r1, r4, 1
adds r1, r0
ldrh r0, [r1]
bl sub_8083E38
b _080426FC
.align 2, 0
_080426EC: .4byte gUnknown_80F67DC
_080426F0:
ldr r0, _08042708
lsls r1, r4, 1
adds r1, r0
ldrh r0, [r1]
bl sub_8083E38
_080426FC:
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x80
bl sub_8042B34
b _08042712
.align 2, 0
_08042708: .4byte gUnknown_80F67E4
_0804270C:
movs r0, 0x46
bl sub_803E46C
_08042712:
bl sub_8042CC0
lsls r0, 24
cmp r0, 0
bne _0804270C
bl sub_8042D7C
bl sub_8040238
movs r0, 0x1
bl sub_8052210
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80426C8
thumb_func_start sub_8042730
sub_8042730:
push {r4,r5,lr}
adds r4, r0, 0
movs r1, 0x8
movs r2, 0x8
bl sub_806CDD4
movs r5, 0
b _08042742
_08042740:
adds r5, 0x1
_08042742:
cmp r5, 0x63
bgt _08042760
movs r0, 0x51
bl sub_803E46C
ldr r0, [r4, 0x40]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _08042760
adds r0, r4, 0
adds r0, 0x6B
ldrb r0, [r0]
cmp r0, 0x8
beq _08042740
_08042760:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8042730
thumb_func_start sub_8042768
sub_8042768:
push {lr}
adds r1, r0, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
bne _08042778
_08042774:
movs r0, 0
b _080427A6
_08042778:
ldr r0, _08042794
ldr r2, [r0]
ldr r3, _08042798
adds r0, r2, r3
ldrb r0, [r0]
cmp r0, 0
beq _0804279C
subs r3, 0x12
adds r0, r2, r3
ldr r0, [r0]
cmp r0, r1
bne _08042774
movs r0, 0x1
b _080427A6
.align 2, 0
_08042794: .4byte gUnknown_203B418
_08042798: .4byte 0x0001820a
_0804279C:
adds r0, r1, 0
bl sub_8045888
lsls r0, 24
lsrs r0, 24
_080427A6:
pop {r1}
bx r1
thumb_func_end sub_8042768
thumb_func_start sub_80427AC
sub_80427AC:
push {r4-r6,lr}
movs r6, 0
_080427B0:
ldr r0, _08042808
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _0804280C
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080427FA
ldr r5, [r4, 0x70]
adds r1, r5, 0
adds r1, 0xF3
ldrb r0, [r1]
cmp r0, 0
beq _080427FA
movs r0, 0
strb r0, [r1]
adds r0, r4, 0
bl sub_80429A0
ldrb r0, [r5, 0x6]
cmp r0, 0
bne _080427FA
ldr r0, _08042810
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
ldr r0, _08042814
ldr r1, [r0]
adds r0, r4, 0
bl sub_805239C
_080427FA:
adds r6, 0x1
cmp r6, 0x13
ble _080427B0
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08042808: .4byte gUnknown_203B418
_0804280C: .4byte 0x000135cc
_08042810: .4byte gUnknown_202DF98
_08042814: .4byte gUnknown_8100270
thumb_func_end sub_80427AC
thumb_func_start sub_8042818
sub_8042818:
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r7, r1, 24
ldr r0, _08042874
ldr r0, [r0]
ldr r1, _08042878
adds r0, r1
ldr r4, [r0]
cmp r4, 0
bne _08042836
bl sub_8083600
adds r4, r0, 0
_08042836:
ldr r1, _0804287C
lsls r0, r5, 1
adds r2, r0, r1
ldrh r1, [r2]
ldr r0, _08042880
cmp r1, r0
beq _0804284A
adds r0, r4, 0
bl sub_80421C0
_0804284A:
ldr r0, _08042884
lsls r1, r5, 2
adds r0, r1, r0
ldr r5, [r0]
adds r6, r1, 0
cmp r5, 0
blt _08042896
cmp r7, 0
beq _08042888
bl sub_80441BC
lsls r0, 24
cmp r0, 0
bne _08042888
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl sub_804151C
b _08042896
.align 2, 0
_08042874: .4byte gUnknown_203B418
_08042878: .4byte 0x000181f8
_0804287C: .4byte gUnknown_80F682C
_08042880: .4byte 0x000003e5
_08042884: .4byte gUnknown_80F67EC
_08042888:
ldr r0, _0804289C
adds r0, r6, r0
ldr r1, [r0]
adds r0, r4, 0
movs r2, 0
bl sub_804151C
_08042896:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804289C: .4byte gUnknown_80F680C
thumb_func_end sub_8042818
thumb_func_start sub_80428A0
sub_80428A0:
push {lr}
movs r1, 0x29
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_80428A0
thumb_func_start sub_80428B0
sub_80428B0:
push {lr}
ldr r1, _080428C0
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080428C0: .4byte 0x000001a9
thumb_func_end sub_80428B0
thumb_func_start sub_80428C4
sub_80428C4:
push {lr}
ldr r1, _080428D4
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080428D4: .4byte 0x000001a9
thumb_func_end sub_80428C4
thumb_func_start sub_80428D8
sub_80428D8:
push {lr}
ldr r1, _080428E8
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080428E8: .4byte 0x000001a9
thumb_func_end sub_80428D8
thumb_func_start sub_80428EC
sub_80428EC:
push {lr}
ldr r1, _080428FC
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080428FC: .4byte 0x000001a9
thumb_func_end sub_80428EC
thumb_func_start sub_8042900
sub_8042900:
push {lr}
movs r1, 0xD4
lsls r1, 1
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042900
thumb_func_start sub_8042910
sub_8042910:
push {lr}
movs r1, 0x29
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042910
thumb_func_start sub_8042920
sub_8042920:
push {lr}
movs r1, 0x48
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042920
thumb_func_start sub_8042930
sub_8042930:
push {lr}
movs r1, 0xD3
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042930
thumb_func_start sub_8042940
sub_8042940:
push {lr}
movs r1, 0xC7
lsls r1, 1
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042940
thumb_func_start sub_8042950
sub_8042950:
push {lr}
movs r1, 0xD8
lsls r1, 1
movs r2, 0x1
bl sub_804151C
movs r0, 0xA
movs r1, 0x42
bl sub_803E708
pop {r0}
bx r0
thumb_func_end sub_8042950
thumb_func_start sub_8042968
sub_8042968:
push {lr}
movs r1, 0xD4
lsls r1, 1
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042968
thumb_func_start sub_8042978
sub_8042978:
push {lr}
ldr r1, _08042988
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_08042988: .4byte 0x000001a9
thumb_func_end sub_8042978
thumb_func_start sub_804298C
sub_804298C:
push {lr}
ldr r1, _0804299C
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_0804299C: .4byte 0x000001a9
thumb_func_end sub_804298C
thumb_func_start sub_80429A0
sub_80429A0:
push {lr}
ldr r1, _080429B0
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080429B0: .4byte 0x00000199
thumb_func_end sub_80429A0
thumb_func_start sub_80429B4
sub_80429B4:
push {lr}
ldr r1, _080429C4
movs r2, 0
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080429C4: .4byte 0x000001ab
thumb_func_end sub_80429B4
thumb_func_start sub_80429C8
sub_80429C8:
push {lr}
movs r1, 0x4
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_80429C8
thumb_func_start sub_80429D8
sub_80429D8:
push {lr}
movs r1, 0x8F
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_80429D8
thumb_func_start sub_80429E8
sub_80429E8:
push {lr}
ldr r1, _080429F8
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
.align 2, 0
_080429F8: .4byte 0x0000011d
thumb_func_end sub_80429E8
thumb_func_start sub_80429FC
sub_80429FC:
push {lr}
movs r1, 0xCF
lsls r1, 1
movs r2, 0x1
bl sub_80416A4
movs r0, 0
movs r1, 0xD4
bl sub_80421C0
pop {r0}
bx r0
thumb_func_end sub_80429FC
thumb_func_start sub_8042A14
sub_8042A14:
push {lr}
movs r1, 0x36
movs r2, 0x1
bl sub_80416A4
pop {r0}
bx r0
thumb_func_end sub_8042A14
thumb_func_start sub_8042A24
sub_8042A24:
push {lr}
movs r1, 0x15
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042A24
thumb_func_start sub_8042A34
sub_8042A34:
push {lr}
movs r1, 0x9F
lsls r1, 1
movs r2, 0
bl sub_80416A4
pop {r0}
bx r0
thumb_func_end sub_8042A34
thumb_func_start sub_8042A44
sub_8042A44:
push {lr}
movs r1, 0xDA
lsls r1, 1
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042A44
thumb_func_start sub_8042A54
sub_8042A54:
push {lr}
movs r1, 0x37
movs r2, 0x1
bl sub_80416A4
pop {r0}
bx r0
thumb_func_end sub_8042A54
thumb_func_start sub_8042A64
sub_8042A64:
push {lr}
movs r1, 0x29
movs r2, 0x1
bl sub_80416A4
pop {r0}
bx r0
thumb_func_end sub_8042A64
thumb_func_start sub_8042A74
sub_8042A74:
push {lr}
movs r1, 0x18
movs r2, 0x1
bl sub_804151C
pop {r0}
bx r0
thumb_func_end sub_8042A74
thumb_func_start sub_8042A84
sub_8042A84:
push {r4-r7,lr}
adds r4, r1, 0
adds r7, r2, 0
lsls r0, 16
asrs r5, r0, 16
movs r6, 0x80
lsls r6, 2
adds r0, r4, 0
bl sub_8042768
lsls r0, 24
cmp r0, 0
beq _08042AF8
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0
bl sub_804151C
adds r0, r7, 0
movs r1, 0x42
bl sub_803E708
adds r5, r4, 0
adds r5, 0x20
_08042AB4:
ldr r1, [r4, 0x1C]
ldr r0, _08042B00
cmp r1, r0
bgt _08042AF0
movs r0, 0x42
bl sub_803E46C
ldr r1, [r4, 0x1C]
adds r1, r6
str r1, [r4, 0x1C]
movs r0, 0x80
lsls r0, 1
adds r6, r0
ldr r0, [r4, 0x10]
subs r0, r1
cmp r0, 0
bge _08042AD8
adds r0, 0xFF
_08042AD8:
asrs r1, r0, 8
ldr r0, _08042B04
ldr r0, [r0]
ldr r2, _08042B08
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
subs r1, r0
movs r0, 0x8
negs r0, r0
cmp r1, r0
bge _08042AB4
_08042AF0:
movs r0, 0
strb r0, [r5]
bl sub_804178C
_08042AF8:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042B00: .4byte 0x0000c7ff
_08042B04: .4byte gUnknown_203B418
_08042B08: .4byte 0x000181f2
thumb_func_end sub_8042A84
thumb_func_start sub_8042B0C
sub_8042B0C:
push {lr}
adds r1, r0, 0
movs r0, 0x9F
lsls r0, 1
movs r2, 0x5
bl sub_8042A84
pop {r0}
bx r0
thumb_func_end sub_8042B0C
thumb_func_start sub_8042B20
sub_8042B20:
push {lr}
adds r1, r0, 0
movs r0, 0xDE
lsls r0, 1
movs r2, 0xE
bl sub_8042A84
pop {r0}
bx r0
thumb_func_end sub_8042B20
thumb_func_start sub_8042B34
sub_8042B34:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x28
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
movs r0, 0
mov r8, r0
bl sub_8085480
mov r10, r0
ldr r7, _08042CB0
movs r0, 0xCC
movs r1, 0x7
bl MemoryAlloc
str r0, [r7]
str r5, [r0]
adds r4, 0x1
lsls r4, 2
str r4, [r0, 0x8]
ldr r4, _08042CB4
lsls r0, r5, 1
adds r0, r5
lsls r0, 3
adds r0, r4
movs r1, 0
ldrsh r0, [r0, r1]
bl sub_800EE5C
bl sub_800EF64
movs r0, 0x46
bl sub_803E46C
ldr r0, [r7]
str r6, [r0, 0x4]
movs r5, 0
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042B8E
b _08042C9E
_08042B8E:
mov r9, sp
_08042B90:
mov r2, r8
lsls r6, r2, 3
ldr r0, [r7]
ldr r1, [r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, r6, r0
ldr r3, _08042CB4
adds r0, r3
movs r1, 0
ldrsh r0, [r0, r1]
str r0, [sp]
str r5, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
mov r2, r10
ldr r0, [r2, 0xC]
cmp r0, 0
bge _08042BBA
adds r0, 0xFF
_08042BBA:
asrs r0, 8
mov r3, r9
strh r0, [r3, 0xC]
mov r1, sp
mov r2, r10
ldr r0, [r2, 0x10]
cmp r0, 0
bge _08042BCC
adds r0, 0xFF
_08042BCC:
asrs r0, 8
strh r0, [r1, 0xE]
movs r0, 0x2
bl RandomCapped
ldr r1, [r7]
lsls r4, r5, 2
adds r3, r1, 0
adds r3, 0x4C
adds r3, r4
ldr r2, [r1]
lsls r1, r2, 1
adds r1, r2
lsls r1, 3
adds r1, r6, r1
ldr r2, _08042CB4
adds r2, 0x4
adds r1, r2
ldr r1, [r1]
lsls r1, 1
adds r1, r0
str r1, [r3]
movs r0, 0xF0
bl RandomCapped
ldr r1, [r7]
adds r1, r4
adds r0, 0x98
adds r1, 0x8C
strh r0, [r1]
lsls r0, r5, 1
adds r0, 0x8
bl RandomCapped
ldr r1, [r7]
adds r2, r1, r4
adds r3, r0, 0
adds r3, 0x18
adds r1, r5, 0
cmp r5, 0
bge _08042C20
adds r1, r5, 0x3
_08042C20:
asrs r1, 2
lsls r1, 2
subs r1, r5, r1
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
subs r0, r3, r0
adds r1, r2, 0
adds r1, 0x8E
strh r0, [r1]
adds r0, r2, 0
adds r0, 0x8C
ldrh r0, [r0]
mov r3, r9
strh r0, [r3, 0x10]
ldrh r0, [r1]
strh r0, [r3, 0x12]
movs r0, 0x4
str r0, [sp, 0x14]
ldr r0, _08042CB8
str r0, [sp, 0x18]
add r1, sp, 0x1C
ldr r0, _08042CBC
ldm r0!, {r2,r3,r6}
stm r1!, {r2,r3,r6}
mov r0, sp
bl sub_800E890
ldr r2, [r7]
adds r1, r2, 0
adds r1, 0xC
adds r1, r4
str r0, [r1]
movs r6, 0x1
add r8, r6
mov r0, r8
cmp r0, 0x2
bgt _08042C82
ldr r0, [r2]
lsls r1, r0, 1
adds r1, r0
add r1, r8
lsls r1, 3
ldr r2, _08042CB4
adds r1, r2
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
bne _08042C86
_08042C82:
movs r6, 0
mov r8, r6
_08042C86:
ldr r0, [sp]
bl sub_800ECA4
ldr r0, [r0, 0x4]
bl sub_800F15C
adds r5, 0x1
ldr r0, [r7]
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042C9E
b _08042B90
_08042C9E:
add sp, 0x28
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042CB0: .4byte gUnknown_203B414
_08042CB4: .4byte gUnknown_80F6624
_08042CB8: .4byte 0x0000ffff
_08042CBC: .4byte gUnknown_80F683C
thumb_func_end sub_8042B34
thumb_func_start sub_8042CC0
sub_8042CC0:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r7, 0
ldr r2, _08042D20
ldr r1, [r2]
ldr r0, [r1, 0x4]
cmp r0, 0
beq _08042CDC
movs r7, 0x1
subs r0, 0x1
str r0, [r1, 0x4]
_08042CDC:
movs r5, 0
ldr r0, [r2]
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042D56
adds r6, r2, 0
movs r0, 0x98
negs r0, r0
mov r9, r0
movs r4, 0
ldr r1, _08042D24
mov r8, r1
_08042CF4:
ldr r3, [r6]
adds r0, r3, r4
adds r2, r0, 0
adds r2, 0x8C
adds r0, r3, 0
adds r0, 0x4C
adds r0, r4
ldr r1, [r0]
ldrh r0, [r2]
subs r0, r1
strh r0, [r2]
lsls r0, 16
asrs r0, 16
cmp r0, r9
bgt _08042D2E
ldr r0, [r3, 0x4]
cmp r0, 0
ble _08042D28
movs r0, 0x98
strh r0, [r2]
b _08042D30
.align 2, 0
_08042D20: .4byte gUnknown_203B414
_08042D24: .4byte 0x0000ff68
_08042D28:
mov r0, r8
strh r0, [r2]
b _08042D30
_08042D2E:
movs r7, 0x1
_08042D30:
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
adds r1, r4, 0
adds r1, 0x8C
adds r2, r1
movs r1, 0
str r1, [sp]
movs r3, 0
bl sub_800E8AC
adds r4, 0x4
adds r5, 0x1
ldr r0, [r6]
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042CF4
_08042D56:
ldr r0, _08042D74
ldr r0, [r0]
ldr r1, _08042D78
adds r0, r1
bl sub_800E90C
adds r0, r7, 0
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08042D74: .4byte gUnknown_203B418
_08042D78: .4byte 0x000181f0
thumb_func_end sub_8042CC0
thumb_func_start sub_8042D7C
sub_8042D7C:
push {r4-r6,lr}
ldr r1, _08042DD0
ldr r0, [r1]
cmp r0, 0
beq _08042DCA
movs r5, 0
ldr r0, [r0, 0x8]
cmp r5, r0
bge _08042DBA
adds r6, r1, 0
_08042D90:
ldr r0, [r6]
lsls r4, r5, 2
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
beq _08042DB0
ldr r0, [r6]
adds r0, 0xC
adds r0, r4
ldr r0, [r0]
bl sub_800DC14
_08042DB0:
adds r5, 0x1
ldr r0, [r6]
ldr r0, [r0, 0x8]
cmp r5, r0
blt _08042D90
_08042DBA:
bl sub_800DBBC
ldr r4, _08042DD0
ldr r0, [r4]
bl MemoryFree
movs r0, 0
str r0, [r4]
_08042DCA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08042DD0: .4byte gUnknown_203B414
thumb_func_end sub_8042D7C
thumb_func_start sub_8042DD4
sub_8042DD4:
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
adds r7, r2, 0
movs r2, 0
ldr r0, _08042E04
mov r12, r0
ldr r3, _08042E08
_08042DE4:
mov r1, r12
ldr r0, [r1]
adds r4, r0, r3
ldr r1, [r4]
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _08042E0C
str r5, [r4]
str r6, [r4, 0xC]
str r7, [r4, 0x4]
adds r0, r5, 0
bl sub_800E6D8
str r0, [r4, 0x8]
b _08042E14
.align 2, 0
_08042E04: .4byte gUnknown_203B418
_08042E08: .4byte 0x000005c4
_08042E0C:
adds r3, 0x10
adds r2, 0x1
cmp r2, 0x2
ble _08042DE4
_08042E14:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8042DD4
thumb_func_start sub_8042E1C
sub_8042E1C:
push {r4-r6,lr}
movs r5, 0
ldr r6, _08042E44
ldr r4, _08042E48
_08042E24:
ldr r0, [r6]
adds r0, r4
ldr r1, [r0]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _08042E4C
adds r0, r1, 0
bl sub_800E9A8
lsls r0, 24
cmp r0, 0
beq _08042E4C
movs r0, 0x1
b _08042E56
.align 2, 0
_08042E44: .4byte gUnknown_203B418
_08042E48: .4byte 0x000005c4
_08042E4C:
adds r4, 0x10
adds r5, 0x1
cmp r5, 0x2
ble _08042E24
movs r0, 0
_08042E56:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8042E1C
thumb_func_start sub_8042E5C
sub_8042E5C:
push {r4-r7,lr}
ldr r7, _08042E90
ldr r6, _08042E94
movs r5, 0x2
_08042E64:
ldr r0, [r7]
adds r4, r0, r6
ldr r0, [r4]
cmp r0, 0
blt _08042E82
bl sub_800E9A8
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _08042E82
movs r0, 0x1
negs r0, r0
str r0, [r4]
str r1, [r4, 0xC]
_08042E82:
adds r6, 0x10
subs r5, 0x1
cmp r5, 0
bge _08042E64
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042E90: .4byte gUnknown_203B418
_08042E94: .4byte 0x000005c4
thumb_func_end sub_8042E5C
thumb_func_start sub_8042E98
sub_8042E98:
push {r4,r5,lr}
ldr r5, _08042EC0
movs r4, 0x1
negs r4, r4
movs r3, 0
ldr r2, _08042EC4
movs r1, 0x2
_08042EA6:
ldr r0, [r5]
adds r0, r2
str r4, [r0]
str r3, [r0, 0x4]
str r3, [r0, 0xC]
adds r2, 0x10
subs r1, 0x1
cmp r1, 0
bge _08042EA6
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08042EC0: .4byte gUnknown_203B418
_08042EC4: .4byte 0x000005c4
thumb_func_end sub_8042E98
thumb_func_start sub_8042EC8
sub_8042EC8:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0xC
adds r6, r0, 0
mov r8, r1
movs r7, 0
_08042ED6:
ldr r1, _08042F5C
lsls r0, r7, 4
ldr r2, _08042F60
adds r0, r2
ldr r1, [r1]
adds r4, r1, r0
ldr r0, [r4]
cmp r0, 0
blt _08042F4A
ldr r0, [r4, 0xC]
cmp r0, r6
bne _08042F4A
ldr r0, [r6, 0xC]
cmp r0, 0
bge _08042EF6
adds r0, 0xFF
_08042EF6:
lsls r0, 8
lsrs r0, 16
ldr r1, _08042F64
ldr r2, [sp, 0x8]
ands r2, r1
orrs r2, r0
str r2, [sp, 0x8]
ldr r1, [r6, 0x10]
cmp r1, 0
bge _08042F0C
adds r1, 0xFF
_08042F0C:
lsls r1, 8
lsrs r1, 16
lsls r1, 16
ldr r0, _08042F68
ands r2, r0
orrs r2, r1
str r2, [sp, 0x8]
movs r0, 0
str r0, [sp, 0x4]
ldr r5, [r6, 0x70]
ldr r2, [r4, 0x8]
subs r0, 0x1
cmp r2, r0
beq _08042F36
lsls r2, 24
lsrs r2, 24
add r0, sp, 0x4
adds r1, r6, 0
adds r1, 0x28
bl sub_800569C
_08042F36:
ldr r0, [r4]
adds r1, r5, 0
adds r1, 0x46
ldrb r1, [r1]
str r1, [sp]
add r1, sp, 0x8
add r2, sp, 0x4
mov r3, r8
bl sub_800EB24
_08042F4A:
adds r7, 0x1
cmp r7, 0x2
ble _08042ED6
add sp, 0xC
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08042F5C: .4byte gUnknown_203B418
_08042F60: .4byte 0x000005c4
_08042F64: .4byte 0xffff0000
_08042F68: .4byte 0x0000ffff
thumb_func_end sub_8042EC8
thumb_func_start xxx_dungeon_8042F6C
xxx_dungeon_8042F6C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r8, r0
ldr r1, _0804310C
movs r0, 0
strb r0, [r1]
mov r0, r8
ldrb r6, [r0, 0x8]
ldrb r1, [r0, 0x11]
mov r9, r1
ldrb r2, [r0, 0x10]
mov r10, r2
ldr r0, _08043110
mov r3, r8
ldr r1, [r3, 0x74]
str r1, [r0]
ldr r2, _08043114
ldr r0, [r3, 0x78]
str r0, [r2]
cmp r6, 0
bne _08042FA0
strb r6, [r1]
_08042FA0:
ldr r2, [r2]
movs r1, 0
ldr r4, _08043118
ldr r5, _0804311C
mov r0, sp
adds r0, 0x4
str r0, [sp, 0x8]
mov r3, r8
adds r3, 0x7C
str r3, [sp, 0xC]
movs r3, 0
_08042FB6:
adds r0, r2, r1
strb r3, [r0]
adds r1, 0x1
cmp r1, r4
bls _08042FB6
movs r7, 0
movs r0, 0x64
strh r0, [r5]
cmp r6, 0
bne _0804300C
ldr r4, _08043114
ldr r0, [r4]
mov r5, r8
ldrb r1, [r5, 0xF]
movs r2, 0xCF
lsls r2, 3
adds r0, r2
strb r1, [r0]
ldr r2, [r4]
ldr r3, _08043120
adds r2, r3
ldr r0, [r5, 0x14]
ldr r1, [r5, 0x18]
str r0, [r2]
str r1, [r2, 0x4]
ldrb r0, [r5, 0x4]
bl GetUnkC
ldr r1, [r4]
ldr r5, _08043124
adds r2, r1, r5
strh r0, [r2]
ldr r0, _08043128
adds r1, r0
strb r7, [r1]
mov r1, r8
ldrb r0, [r1, 0x4]
bl GetUnk3
ldr r1, [r4]
ldr r2, _0804312C
adds r1, r2
strb r0, [r1]
_0804300C:
ldr r4, _08043114
ldr r0, [r4]
movs r3, 0xD3
lsls r3, 3
adds r0, r3
strb r7, [r0]
ldr r0, [r4]
ldr r5, _08043130
adds r0, r5
strb r7, [r0]
ldr r0, [r4]
mov r2, r8
ldrb r1, [r2, 0x9]
subs r3, 0x3C
adds r0, r3
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r2, 0xC]
subs r5, 0x3F
adds r0, r5
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r2, 0xA]
movs r2, 0xCB
lsls r2, 3
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
mov r3, r8
ldrb r1, [r3, 0xB]
subs r5, 0x1
adds r0, r5
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r3, 0xD]
adds r2, 0x3
adds r0, r2
strb r1, [r0]
ldr r0, [r4]
ldrb r1, [r3, 0xE]
ldr r3, _08043134
adds r0, r3
strb r1, [r0]
bl sub_8083F34
bl sub_803D4AC
bl sub_804513C
bl sub_8043CD8
bl sub_80495E4
bl sub_803E250
bl sub_8040130
bl sub_8040124
movs r0, 0x1
bl sub_803F27C
ldr r1, _08043138
ldr r5, _0804313C
adds r0, r5, 0
strh r0, [r1]
movs r0, 0x1
movs r1, 0x14
bl sub_80095CC
movs r0, 0
bl sub_800DAC0
movs r0, 0x1
bl xxx_update_some_bg_tiles
bl sub_803DF60
bl sub_803E02C
bl sub_8042E98
ldr r0, _08043140
strb r7, [r0]
cmp r6, 0
beq _080430C8
ldr r0, _08043110
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8081BF4
bl sub_8049840
_080430C8:
mov r0, r9
cmp r0, 0
beq _080430D2
bl sub_8043D60
_080430D2:
cmp r6, 0
beq _080430D8
b _080431DC
_080430D8:
ldr r0, [r4]
ldr r1, _08043144
adds r0, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, [r4]
ldr r2, _08043148
adds r0, r2
strb r1, [r0]
ldr r2, [r4]
movs r3, 0xCF
lsls r3, 3
adds r0, r2, r3
ldrb r3, [r0]
cmp r3, 0x1
bne _08043154
mov r5, r8
ldrb r1, [r5, 0x14]
ldr r5, _0804314C
adds r0, r2, r5
strb r1, [r0]
ldr r0, [r4]
ldr r1, _08043150
adds r0, r1
strb r3, [r0]
b _0804315E
.align 2, 0
_0804310C: .4byte gUnknown_203B40C
_08043110: .4byte gUnknown_203B41C
_08043114: .4byte gUnknown_203B418
_08043118: .4byte 0x0001cedb
_0804311C: .4byte gUnknown_203B410
_08043120: .4byte 0x0000064c
_08043124: .4byte 0x00000666
_08043128: .4byte 0x0000067a
_0804312C: .4byte 0x0000067b
_08043130: .4byte 0x00000699
_08043134: .4byte 0x0000065d
_08043138: .4byte gUnknown_2026E4E
_0804313C: .4byte 0x00000808
_08043140: .4byte gUnknown_202F32C
_08043144: .4byte 0x0001820b
_08043148: .4byte 0x0001820c
_0804314C: .4byte 0x00000644
_08043150: .4byte 0x00000645
_08043154:
ldr r3, _0804318C
adds r1, r2, r3
mov r5, r8
ldr r0, [r5, 0x4]
str r0, [r1]
_0804315E:
ldr r4, _08043190
ldr r0, [r4]
ldr r1, _08043194
adds r0, r1
movs r1, 0
strb r1, [r0]
bl sub_8044124
cmp r6, 0
bne _080431DC
ldr r1, [r4]
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _0804319C
ldr r3, _08043198
adds r1, r3
mov r5, r8
ldr r0, [r5, 0x18]
str r0, [r1]
b _080431AC
.align 2, 0
_0804318C: .4byte 0x00000644
_08043190: .4byte gUnknown_203B418
_08043194: .4byte 0x00000674
_08043198: .4byte 0x0000067c
_0804319C:
bl Random
ldr r2, [r4]
ldr r1, _08043208
adds r2, r1
ldr r1, _0804320C
ands r1, r0
str r1, [r2]
_080431AC:
ldr r4, _08043210
ldr r0, [r4]
ldr r2, _08043208
adds r0, r2
ldr r0, [r0]
bl sub_808408C
cmp r6, 0
bne _080431DC
bl sub_80980A4
lsls r0, 24
cmp r0, 0
bne _080431D8
ldr r0, [r4]
ldr r3, _08043214
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
bne _080431D8
bl sub_8043FD0
_080431D8:
bl sub_806890C
_080431DC:
mov r5, r9
cmp r5, 0
beq _08043230
ldr r1, _08043218
ldr r0, _08043210
ldr r0, [r0]
ldr r2, _0804321C
adds r0, r2
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
str r0, [r1]
cmp r0, 0
beq _08043224
ldr r0, _08043220
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _08043230
.align 2, 0
_08043208: .4byte 0x0000067c
_0804320C: .4byte 0x00ffffff
_08043210: .4byte gUnknown_203B418
_08043214: .4byte 0x00000644
_08043218: .4byte gUnknown_202DE30
_0804321C: .4byte 0x0000067b
_08043220: .4byte gUnknown_80FEC48
_08043224:
ldr r0, _080432B4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043230:
mov r3, r10
cmp r3, 0
beq _0804326A
mov r1, r8
adds r1, 0x44
movs r0, 0
strb r0, [r1]
ldr r0, _080432B8
ldr r0, [r0]
ldr r5, _080432BC
adds r0, r5
ldrb r0, [r0]
bl GetLevelCondition
lsls r0, 24
mov r4, r8
adds r4, 0x1C
cmp r0, 0
beq _0804325C
adds r0, r4, 0
bl sub_808D0D8
_0804325C:
adds r0, r4, 0
bl sub_8068A84
cmp r6, 0
beq _0804326A
bl sub_806B404
_0804326A:
bl sub_8068614
cmp r6, 0
bne _080432F4
ldr r0, _080432B8
ldr r0, [r0]
movs r1, 0xCF
lsls r1, 3
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080432F4
mov r0, sp
bl sub_8099394
lsls r0, 24
cmp r0, 0
beq _080432F4
mov r0, sp
ldrb r0, [r0]
bl sub_8095228
adds r2, r0, 0
adds r2, 0x2C
movs r0, 0
ldrsb r0, [r2, r0]
cmp r0, 0
beq _080432E8
ldr r1, _080432C0
str r0, [r1]
ldr r0, _080432C4
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
b _080432F4
.align 2, 0
_080432B4: .4byte gUnknown_80FEC7C
_080432B8: .4byte gUnknown_203B418
_080432BC: .4byte 0x00000644
_080432C0: .4byte gUnknown_202DE30
_080432C4: .4byte gUnknown_81002B8
_080432C8:
ldr r4, _080432CC
b _080432D2
.align 2, 0
_080432CC: .4byte 0x00000226
_080432D0:
ldr r4, _080432E4
_080432D2:
bl sub_8083600
adds r2, r0, 0
adds r0, r4, 0
movs r1, 0
bl sub_8083AB0
bl _08043AF4
.align 2, 0
_080432E4: .4byte 0x00000227
_080432E8:
ldr r0, _080434B8
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_080432F4:
movs r2, 0
mov r10, r2
movs r3, 0
mov r9, r3
_080432FC:
bl sub_8098080
bl nullsub_16
bl sub_80521D0
bl sub_80531A8
bl sub_800F690
cmp r6, 0
bne _08043318
bl sub_804513C
_08043318:
ldr r0, _080434BC
movs r5, 0
str r5, [r0]
ldr r4, _080434C0
ldr r0, [r4]
strb r5, [r0]
cmp r6, 0
bne _08043346
bl sub_80840A4
ldr r1, [r4]
movs r3, 0xD0
lsls r3, 3
adds r2, r1, r3
str r0, [r2]
movs r0, 0xCD
lsls r0, 3
adds r1, r0
movs r0, 0xA
strh r0, [r1]
ldr r0, [r2]
bl sub_80840D8
_08043346:
ldr r0, [r4]
ldr r1, _080434C4
adds r0, r1
strb r5, [r0]
cmp r6, 0
bne _08043390
ldr r0, [r4]
ldr r2, _080434C8
adds r0, r2
strb r6, [r0]
movs r0, 0x4
bl sub_8084100
ldr r1, [r4]
ldr r3, _080434CC
adds r1, r3
strb r6, [r1]
ldr r1, [r4]
ldr r2, _080434D0
adds r1, r2
strb r6, [r1]
ldr r2, [r4]
ldr r1, _080434D4
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
adds r3, 0x3
adds r0, r2, r3
strh r1, [r0]
ldr r0, _080434D8
adds r2, r0
mov r1, r10
strb r1, [r2]
ldr r0, [r4]
ldr r2, _080434DC
adds r0, r2
strb r1, [r0]
_08043390:
bl sub_803D4D0
ldr r0, [r4]
strb r5, [r0, 0x1]
ldr r0, [r4]
strb r5, [r0, 0x10]
ldr r0, [r4]
strb r5, [r0, 0x2]
ldr r0, [r4]
strb r5, [r0, 0x4]
ldr r0, [r4]
strb r5, [r0, 0x11]
ldr r0, [r4]
strb r5, [r0, 0x8]
ldr r0, [r4]
strb r5, [r0, 0x3]
ldr r0, [r4]
strb r5, [r0, 0x6]
ldr r0, [r4]
strb r5, [r0, 0xF]
ldr r2, [r4]
movs r3, 0xB8
lsls r3, 3
adds r1, r2, r3
movs r0, 0x1
negs r0, r0
str r0, [r1]
strb r5, [r2, 0x7]
ldr r0, [r4]
strb r5, [r0, 0x9]
ldr r0, [r4]
strb r5, [r0, 0xA]
ldr r0, [r4]
movs r1, 0x1
strb r1, [r0, 0xB]
ldr r0, [r4]
strb r1, [r0, 0xD]
ldr r0, [r4]
strb r5, [r0, 0xE]
ldr r0, [r4]
ldr r2, _080434E0
adds r0, r2
strb r5, [r0]
cmp r6, 0
bne _080434A6
ldr r0, [r4]
adds r3, 0xB9
adds r0, r3
strb r6, [r0]
ldr r1, [r4]
ldr r5, _080434E4
adds r0, r1, r5
str r6, [r0]
movs r2, 0xD2
lsls r2, 3
adds r0, r1, r2
str r6, [r0]
adds r3, 0x1B
adds r0, r1, r3
str r6, [r0]
subs r5, 0x2C
adds r0, r1, r5
strh r6, [r0]
subs r2, 0x2E
adds r0, r1, r2
strh r6, [r0]
subs r3, 0x26
adds r1, r3
mov r5, r10
strb r5, [r1]
ldr r0, [r4]
ldr r1, _080434E8
adds r0, r1
strb r5, [r0]
ldr r0, [r4]
adds r2, 0xE
adds r0, r2
strb r5, [r0]
ldr r0, [r4]
adds r3, 0x8
adds r0, r3
strb r5, [r0]
ldr r0, [r4]
ldr r5, _080434EC
adds r0, r5
mov r1, r10
strb r1, [r0]
ldr r0, [r4]
adds r2, 0x2
adds r0, r2
strb r1, [r0]
ldr r1, [r4]
subs r3, 0xC
adds r2, r1, r3
ldr r0, _080434F0
strh r0, [r2]
adds r5, 0x17
adds r0, r1, r5
strh r6, [r0]
ldr r0, _080434F4
adds r1, r0
mov r2, r10
strb r2, [r1]
ldr r1, [r4]
adds r3, 0x1A
adds r0, r1, r3
movs r2, 0x63
strh r2, [r0]
subs r5, 0x2
adds r0, r1, r5
strh r2, [r0]
ldr r0, _080434F8
adds r1, r0
mov r2, r10
strb r2, [r1]
ldr r1, [r4]
ldr r3, _080434FC
adds r0, r1, r3
ldrb r2, [r0]
ldr r5, _08043500
adds r0, r1, r5
strh r2, [r0]
ldr r2, _08043504
adds r0, r1, r2
ldrb r2, [r0]
ldr r3, _08043508
adds r0, r1, r3
strh r2, [r0]
ldr r5, _0804350C
adds r0, r1, r5
ldrb r0, [r0]
ldr r2, _08043510
adds r1, r2
strh r0, [r1]
movs r0, 0
bl sub_807E5E4
bl sub_80842F0
_080434A6:
bl sub_803D8F0
bl sub_8068658
cmp r6, 0
bne _08043514
bl sub_80687AC
b _0804351C
.align 2, 0
_080434B8: .4byte gUnknown_81002D8
_080434BC: .4byte gUnknown_203B450
_080434C0: .4byte gUnknown_203B418
_080434C4: .4byte 0x000037ec
_080434C8: .4byte 0x000037fc
_080434CC: .4byte 0x000037fd
_080434D0: .4byte 0x000037fe
_080434D4: .4byte gUnknown_80F6850
_080434D8: .4byte 0x000037ff
_080434DC: .4byte 0x00000675
_080434E0: .4byte 0x0001c05e
_080434E4: .4byte 0x0000068c
_080434E8: .4byte 0x0000066f
_080434EC: .4byte 0x00000671
_080434F0: .4byte 0x000003e7
_080434F4: .4byte 0x0000068a
_080434F8: .4byte 0x0000e264
_080434FC: .4byte 0x0001c576
_08043500: .4byte 0x00003a0e
_08043504: .4byte 0x0001c577
_08043508: .4byte 0x00003a10
_0804350C: .4byte 0x0001c586
_08043510: .4byte 0x00003a14
_08043514:
bl sub_8068768
bl sub_8082B40
_0804351C:
bl sub_806C42C
bl sub_806AD3C
cmp r6, 0
bne _08043544
ldr r1, _080435B4
ldr r3, _080435B8
ldr r0, [r3]
ldr r5, _080435BC
adds r0, r5
movs r2, 0
ldrsh r0, [r0, r2]
lsls r0, 1
adds r0, r1
ldrh r0, [r0]
bl sub_8083E88
bl sub_80847D4
_08043544:
bl sub_8049840
bl sub_803E178
ldr r0, _080435C0
mov r3, r9
str r3, [r0]
bl sub_8040124
movs r0, 0x4
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
adds r0, r6, 0
bl sub_803F27C
bl ShowDungeonNameBanner
cmp r6, 0
bne _08043594
bl sub_804AFAC
ldr r5, _080435B8
ldr r0, [r5]
ldr r1, _080435C4
adds r0, r1
ldrb r0, [r0]
bl GetUnkC
ldr r2, [r5]
ldr r3, _080435C8
adds r1, r2, r3
strh r0, [r1]
ldr r5, _080435CC
adds r2, r5
mov r0, r10
strb r0, [r2]
_08043594:
bl sub_804AAD4
bl sub_8049B8C
bl sub_804966C
cmp r6, 0
bne _080435D0
bl sub_806B168
bl sub_806C3C0
bl sub_806B6C4
b _080435D4
.align 2, 0
_080435B4: .4byte gUnknown_80F5668
_080435B8: .4byte gUnknown_203B418
_080435BC: .4byte 0x00003a10
_080435C0: .4byte gUnknown_202EDC8
_080435C4: .4byte 0x00000644
_080435C8: .4byte 0x00000666
_080435CC: .4byte 0x0000067a
_080435D0:
bl sub_806B678
_080435D4:
ldr r4, _0804362C
ldr r1, [r4]
ldr r2, _08043630
adds r0, r1, r2
mov r3, r9
str r3, [r0]
ldr r5, _08043634
adds r0, r1, r5
str r3, [r0]
adds r2, 0x4
adds r0, r1, r2
str r3, [r0]
ldr r3, _08043638
adds r0, r1, r3
mov r5, r9
str r5, [r0]
adds r2, 0x4
adds r0, r1, r2
str r5, [r0]
adds r3, 0x4
adds r1, r3
str r5, [r1]
cmp r6, 0
bne _08043644
bl sub_807FA18
bl sub_8045CB0
ldr r1, [r4]
ldr r5, _0804363C
adds r2, r1, r5
ldr r3, _08043640
adds r0, r1, r3
ldr r0, [r0]
str r0, [r2]
subs r5, 0x4
adds r1, r5
str r6, [r1]
bl sub_8051E3C
bl sub_804AAAC
b _08043648
.align 2, 0
_0804362C: .4byte gUnknown_203B418
_08043630: .4byte 0x00017b2c
_08043634: .4byte 0x00017b38
_08043638: .4byte 0x00017b3c
_0804363C: .4byte 0x00000694
_08043640: .4byte 0x0000068c
_08043644:
bl sub_806A338
_08043648:
bl sub_8068F80
bl sub_8049884
bl sub_8049ED4
cmp r6, 0
bne _08043664
movs r0, 0x1
movs r1, 0
movs r2, 0
bl sub_806A914
b _0804366C
_08043664:
bl sub_806CF60
bl sub_806A974
_0804366C:
movs r0, 0x1
bl sub_8041888
cmp r6, 0
bne _0804367E
bl sub_80848F0
bl sub_8097890
_0804367E:
ldr r0, _080436A0
movs r1, 0x1
strb r1, [r0]
cmp r6, 0
beq _08043690
bl sub_807E88C
bl sub_806AB2C
_08043690:
ldr r2, _080436A4
ldr r0, [r2]
ldrb r0, [r0, 0x7]
cmp r0, 0
bne _080436A8
bl sub_803E748
b _080436AC
.align 2, 0
_080436A0: .4byte gUnknown_203B40C
_080436A4: .4byte gUnknown_203B418
_080436A8:
bl sub_803E7C8
_080436AC:
movs r0, 0
bl sub_8040094
movs r0, 0
movs r1, 0
bl sub_803EAF0
adds r0, r6, 0
bl sub_8040150
bl sub_8040A84
ldr r4, _08043730
ldr r1, [r4]
adds r0, r1, 0
adds r0, 0xB8
mov r3, r9
str r3, [r0]
ldr r5, _08043734
adds r1, r5
strb r3, [r1]
ldr r0, [r4]
ldr r1, _08043738
adds r0, r1
mov r2, r9
strb r2, [r0]
ldr r1, [r4]
movs r5, 0
movs r0, 0x63
strh r0, [r1, 0x12]
movs r3, 0x1
strb r3, [r1]
cmp r6, 0
bne _08043706
bl sub_8052DD0
ldr r1, [r4]
ldrb r0, [r1, 0x9]
cmp r0, 0
beq _08043706
strb r5, [r1, 0x9]
bl sub_8083D68
bl sub_8052F80
_08043706:
ldr r0, _0804373C
mov r5, r9
str r5, [r0]
ldr r4, _08043730
ldr r0, [r4]
strb r5, [r0, 0x5]
cmp r6, 0
bne _08043778
bl sub_8084B64
ldr r1, [r4]
ldrb r0, [r1, 0x4]
cmp r0, 0
bne _08043728
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _08043740
_08043728:
movs r0, 0x1
strb r0, [r1, 0x5]
b _0804374C
.align 2, 0
_08043730: .4byte gUnknown_203B418
_08043734: .4byte 0x0000066c
_08043738: .4byte 0x0000066d
_0804373C: .4byte gUnknown_203B450
_08043740:
bl sub_8083600
bl sub_803F4A0
bl sub_8040A84
_0804374C:
cmp r6, 0
bne _08043778
ldr r1, _08043774
ldr r0, [r1]
ldrb r0, [r0, 0x5]
cmp r0, 0
bne _0804377C
bl sub_807E5AC
movs r0, 0
bl sub_807E580
lsls r0, 24
cmp r0, 0
beq _0804377C
movs r0, 0x1
bl sub_807E7FC
b _0804377C
.align 2, 0
_08043774: .4byte gUnknown_203B418
_08043778:
bl sub_8069E8C
_0804377C:
cmp r6, 0
beq _08043784
movs r6, 0
b _080437A2
_08043784:
bl sub_80427AC
bl sub_8083600
ldr r2, _08043960
ldr r1, [r2]
ldr r3, _08043964
adds r1, r3
ldrb r1, [r1]
bl sub_8075900
movs r0, 0x1
movs r1, 0
bl sub_807EAA0
_080437A2:
bl nullsub_16
ldr r2, _08043960
ldr r0, [r2]
ldrb r1, [r0, 0x5]
cmp r1, 0
bne _080437DA
movs r4, 0x1
ldr r5, _08043968
adds r0, r5
strb r1, [r0]
ldr r0, [r2]
ldr r3, _0804396C
adds r0, r3
strb r1, [r0]
ldr r0, [r2]
ldr r5, _08043970
adds r0, r5
strb r4, [r0]
_080437C8:
adds r0, r4, 0
bl RunDungeon
movs r4, 0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _080437C8
_080437DA:
bl sub_8083600
adds r4, r0, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080437F0
adds r0, r4, 0
bl sub_8071DA4
_080437F0:
ldr r5, _08043960
ldr r0, [r5]
ldr r4, _08043968
adds r0, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _08043822
movs r0, 0x1
bl sub_8043ED0
lsls r0, 24
cmp r0, 0
beq _08043812
ldr r0, [r5]
adds r0, r4
movs r1, 0x1
strb r1, [r0]
_08043812:
ldr r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
beq _08043822
ldrb r0, [r1, 0x11]
cmp r0, 0
beq _08043830
_08043822:
ldr r2, _08043960
ldr r0, [r2]
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _08043830
bl sub_806AA70
_08043830:
bl sub_8083600
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _0804384A
movs r0, 0x4F
bl sub_80526D0
movs r0, 0x4F
bl sub_8052740
_0804384A:
bl sub_8040124
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
ldr r3, _08043960
ldr r0, [r3]
ldr r5, _08043970
adds r0, r5
mov r1, r9
strb r1, [r0]
ldr r0, [r3]
ldr r2, _0804396C
adds r0, r2
movs r3, 0x1
strb r3, [r0]
ldr r5, _08043960
ldr r1, [r5]
ldrb r0, [r1, 0x3]
cmp r0, 0
bne _08043896
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _08043896
ldr r2, _08043974
adds r0, r1, r2
ldrh r0, [r0]
cmp r0, 0x72
bne _08043896
ldr r3, _08043978
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0x1B
bne _08043896
movs r0, 0x3C
bl sub_8083ED8
_08043896:
movs r0, 0x4
movs r1, 0x4F
bl sub_803E708
ldr r5, _08043960
ldr r0, [r5]
ldrb r0, [r0, 0x7]
cmp r0, 0
bne _080438AC
bl sub_803E830
_080438AC:
movs r0, 0
bl SetBGOBJEnableFlags
ldr r1, _0804397C
ldr r0, [sp, 0x4]
ands r0, r1
movs r1, 0x60
orrs r0, r1
ldr r1, _08043980
ands r0, r1
movs r1, 0x80
lsls r1, 8
orrs r0, r1
ldr r1, _08043984
ands r0, r1
movs r1, 0xF8
lsls r1, 16
orrs r0, r1
str r0, [sp, 0x4]
ldr r0, _08043988
ldr r2, [r0]
movs r0, 0xFD
ldr r1, [sp, 0x8]
movs r3, 0
bl SetBGPaletteBufferColorRGB
movs r0, 0x1
bl sub_8040094
ldr r0, [r5]
ldr r1, _0804396C
adds r0, r1
movs r7, 0
movs r2, 0x1
strb r2, [r0]
ldr r1, [r5]
ldrb r0, [r1, 0x10]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _08043926
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08043926
bl sub_8083600
adds r4, r0, 0
ldr r0, _0804398C
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
ldr r0, [r5]
strb r7, [r0, 0x6]
ldr r0, _08043990
adds r1, r4, 0
adds r2, r4, 0
bl sub_8083AB0
_08043926:
bl sub_80688CC
bl sub_8049820
ldr r0, _08043994
ldr r0, [r0]
bl CloseFile
bl sub_800F740
ldr r0, _08043998
mov r3, r10
strb r3, [r0]
ldr r4, _08043960
ldr r1, [r4]
ldrb r0, [r1, 0x3]
cmp r0, 0
beq _0804394C
b _08043BFC
_0804394C:
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _080439A0
ldr r0, _0804399C
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8080B30
b _080439A6
.align 2, 0
_08043960: .4byte gUnknown_203B418
_08043964: .4byte 0x00003a08
_08043968: .4byte 0x00000654
_0804396C: .4byte 0x00018218
_08043970: .4byte 0x00018219
_08043974: .4byte 0x0001ceda
_08043978: .4byte 0x00000644
_0804397C: .4byte 0xffffff00
_08043980: .4byte 0xffff00ff
_08043984: .4byte 0xff00ffff
_08043988: .4byte gUnknown_202EDC8
_0804398C: .4byte gUnknown_81006A4
_08043990: .4byte 0x00000222
_08043994: .4byte gDungeonNameBannerPalette
_08043998: .4byte gUnknown_203B40C
_0804399C: .4byte gUnknown_203B41C
_080439A0:
movs r0, 0x2
bl sub_8046F84
_080439A6:
bl sub_806C1D8
ldr r4, _080439CC
ldr r1, [r4]
ldr r5, _080439D0
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, 0x1
bne _080439D4
adds r5, 0x1A
adds r0, r1, r5
ldrb r0, [r0]
cmp r0, 0
bne _080439C4
b _08043AF4
_080439C4:
bl sub_804700C
b _08043AF4
.align 2, 0
_080439CC: .4byte gUnknown_203B418
_080439D0: .4byte 0x00000654
_080439D4:
ldrb r0, [r1, 0x11]
cmp r0, 0x1
bne _080439DC
b _080432C8
_080439DC:
cmp r0, 0x2
bne _08043A00
bl sub_8083600
adds r2, r0, 0
ldr r0, _080439F8
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r1, _080439FC
adds r0, r1
b _08043A62
.align 2, 0
_080439F8: .4byte 0x00000229
_080439FC: .4byte 0x0000066e
_08043A00:
cmp r0, 0x3
bne _08043A24
bl sub_8083600
adds r2, r0, 0
ldr r0, _08043A1C
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r2, _08043A20
adds r0, r2
b _08043A62
.align 2, 0
_08043A1C: .4byte 0x0000022a
_08043A20: .4byte 0x0000066e
_08043A24:
cmp r0, 0x4
bne _08043A2A
b _080432D0
_08043A2A:
movs r3, 0xCF
lsls r3, 3
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0x1
bne _08043A74
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08043A74
ldr r0, [r4]
adds r0, r5
ldrb r0, [r0]
cmp r0, 0x2
bne _08043A74
bl sub_8083600
adds r2, r0, 0
movs r0, 0x8A
lsls r0, 2
movs r1, 0
bl sub_8083AB0
ldr r0, [r4]
ldr r5, _08043A70
adds r0, r5
_08043A62:
ldrb r0, [r0]
cmp r0, 0
beq _08043AF4
bl sub_8097810
b _08043AF4
.align 2, 0
_08043A70: .4byte 0x0000066e
_08043A74:
ldr r4, _08043ACC
ldr r0, [r4]
ldr r1, _08043AD0
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08043A86
bl sub_8097810
_08043A86:
ldr r1, [r4]
ldr r3, _08043AD4
adds r2, r1, r3
ldrb r0, [r2]
adds r0, 0x1
ldr r5, _08043AD8
adds r1, r5
ldrb r1, [r1]
cmp r0, r1
bge _08043AE4
strb r0, [r2]
ldr r0, [r4]
ldr r1, _08043ADC
adds r0, r1
ldrh r1, [r0]
ldr r0, _08043AE0
cmp r1, r0
beq _08043AAC
b _080432FC
_08043AAC:
movs r0, 0x1F
bl sub_8098100
lsls r0, 24
cmp r0, 0
beq _08043ABA
b _080432FC
_08043ABA:
movs r0, 0x1F
bl sub_8097FA8
bl sub_8086130
bl sub_8097FF8
b _080432FC
.align 2, 0
_08043ACC: .4byte gUnknown_203B418
_08043AD0: .4byte 0x0000066e
_08043AD4: .4byte 0x00000645
_08043AD8: .4byte 0x0001cec8
_08043ADC: .4byte 0x00000644
_08043AE0: .4byte 0x0000060b
_08043AE4:
ldr r4, _08043B80
bl sub_8083600
adds r2, r0, 0
adds r0, r4, 0
movs r1, 0
bl sub_8083AB0
_08043AF4:
ldr r1, _08043B84
movs r0, 0
strb r0, [r1]
mov r4, r8
adds r4, 0x7E
movs r0, 0
strb r0, [r4]
bl sub_8097FF8
movs r0, 0x1
movs r1, 0x14
bl sub_80095CC
bl sub_803E13C
movs r0, 0x4
bl sub_800CDA8
ldr r0, _08043B88
ldr r1, [r0]
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _08043B38
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
bl sub_8083C88
lsls r0, 24
cmp r0, 0
beq _08043B38
bl sub_80841EC
_08043B38:
bl sub_8083C24
lsls r0, 24
cmp r0, 0
beq _08043BA4
ldr r5, _08043B88
ldr r0, [r5]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _08043B98
ldr r0, _08043B8C
ldr r3, [sp, 0xC]
strh r0, [r3]
mov r4, r8
adds r4, 0x84
adds r0, r4, 0
movs r1, 0
movs r2, 0x8
bl memset
mov r3, r8
adds r3, 0x80
ldr r1, [r5]
ldr r5, _08043B90
adds r2, r1, r5
ldr r0, [r2]
str r0, [r3]
ldr r0, [r2]
str r0, [r4]
mov r2, r8
adds r2, 0x88
ldr r0, _08043B94
adds r1, r0
ldr r0, [r1]
str r0, [r2]
b _08043C32
.align 2, 0
_08043B80: .4byte 0x00000227
_08043B84: .4byte gUnknown_203B40C
_08043B88: .4byte gUnknown_203B418
_08043B8C: .4byte 0x0000fffe
_08043B90: .4byte 0x00000644
_08043B94: .4byte 0x0000067c
_08043B98:
ldr r0, _08043BA0
ldr r1, [sp, 0xC]
strh r0, [r1]
b _08043C32
.align 2, 0
_08043BA0: .4byte 0x0000ffff
_08043BA4:
bl sub_8083C50
lsls r0, 24
cmp r0, 0
beq _08043C28
ldr r0, _08043BC8
ldr r0, [r0]
movs r2, 0xCF
lsls r2, 3
adds r0, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _08043BCC
movs r0, 0x4
ldr r3, [sp, 0xC]
strh r0, [r3]
b _08043BE6
.align 2, 0
_08043BC8: .4byte gUnknown_203B418
_08043BCC:
cmp r0, 0
bne _08043BDC
movs r0, 0x1
ldr r5, [sp, 0xC]
strh r0, [r5]
bl sub_8084424
b _08043BE6
_08043BDC:
movs r0, 0x1
ldr r1, [sp, 0xC]
strh r0, [r1]
bl sub_8084424
_08043BE6:
ldr r0, _08043BF4
ldr r0, [r0]
ldr r2, _08043BF8
adds r0, r2
ldrb r0, [r0]
strb r0, [r4]
b _08043C32
.align 2, 0
_08043BF4: .4byte gUnknown_203B418
_08043BF8: .4byte 0x00000674
_08043BFC:
ldr r0, _08043C20
ldr r0, [r0]
movs r1, 0x90
lsls r1, 7
bl sub_8080B30
movs r0, 0x3
ldr r3, [sp, 0xC]
strh r0, [r3]
mov r1, r8
adds r1, 0x80
ldr r0, [r4]
ldr r5, _08043C24
adds r0, r5
ldr r0, [r0]
str r0, [r1]
b _08043C32
.align 2, 0
_08043C20: .4byte gUnknown_203B41C
_08043C24: .4byte 0x00000644
_08043C28:
movs r0, 0x2
ldr r1, [sp, 0xC]
strh r0, [r1]
bl sub_8084424
_08043C32:
bl sub_806863C
bl sub_803E214
bl nullsub_56
bl sub_8040218
ldr r2, [sp, 0xC]
movs r3, 0
ldrsh r0, [r2, r3]
cmp r0, 0x1
beq _08043C54
cmp r0, 0x4
beq _08043C54
cmp r0, 0x2
bne _08043C58
_08043C54:
bl sub_8047104
_08043C58:
ldr r5, [sp, 0xC]
movs r0, 0
ldrsh r1, [r5, r0]
cmp r1, 0x1
beq _08043C8A
movs r0, 0x2
negs r0, r0
cmp r1, r0
beq _08043C78
cmp r1, 0x4
beq _08043C78
adds r0, 0x1
cmp r1, r0
beq _08043C78
cmp r1, 0x2
bne _08043CAC
_08043C78:
ldr r2, [sp, 0xC]
movs r3, 0
ldrsh r1, [r2, r3]
cmp r1, 0x1
beq _08043C8A
cmp r1, 0x4
beq _08043C8A
cmp r1, 0x2
bne _08043C92
_08043C8A:
movs r0, 0x1
bl sub_8068BDC
b _08043CAC
_08043C92:
movs r0, 0x2
negs r0, r0
cmp r1, r0
bne _08043CA2
movs r0, 0
bl sub_8068BDC
b _08043CAC
_08043CA2:
bl sub_8068F28
movs r0, 0
bl sub_8068BDC
_08043CAC:
bl sub_800DB7C
ldr r0, _08043CD0
movs r1, 0
str r1, [r0]
ldr r0, _08043CD4
str r1, [r0]
bl nullsub_16
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08043CD0: .4byte gUnknown_203B418
_08043CD4: .4byte gUnknown_203B41C
thumb_func_end xxx_dungeon_8042F6C
thumb_func_start sub_8043CD8
sub_8043CD8:
push {lr}
bl sub_8009804
pop {r0}
bx r0
thumb_func_end sub_8043CD8
thumb_func_start sub_8043CE4
sub_8043CE4:
push {lr}
adds r1, r0, 0
ldr r0, _08043CF4
ldrb r0, [r0]
cmp r0, 0
beq _08043CF8
movs r0, 0x1
b _08043D08
.align 2, 0
_08043CF4: .4byte gUnknown_202F1A8
_08043CF8:
movs r2, 0
ldr r0, _08043D0C
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x2
bne _08043D06
movs r2, 0x1
_08043D06:
adds r0, r2, 0
_08043D08:
pop {r1}
bx r1
.align 2, 0
_08043D0C: .4byte gUnknown_810ACC0
thumb_func_end sub_8043CE4
thumb_func_start sub_8043D10
sub_8043D10:
push {lr}
ldr r0, _08043D38
ldr r1, [r0]
movs r2, 0xCF
lsls r2, 3
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
bne _08043D3C
subs r2, 0x2B
adds r0, r1, r2
subs r2, 0x8
adds r1, r2
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bne _08043D3C
movs r0, 0x2
b _08043D4C
.align 2, 0
_08043D38: .4byte gUnknown_203B418
_08043D3C:
bl sub_80441BC
lsls r0, 24
cmp r0, 0
bne _08043D4A
movs r0, 0
b _08043D4C
_08043D4A:
movs r0, 0x1
_08043D4C:
pop {r1}
bx r1
thumb_func_end sub_8043D10
thumb_func_start sub_8043D50
sub_8043D50:
ldr r2, _08043D5C
str r2, [r1]
movs r1, 0x90
lsls r1, 7
str r1, [r0]
bx lr
.align 2, 0
_08043D5C: .4byte 0x0001cedc
thumb_func_end sub_8043D50
thumb_func_start sub_8043D60
sub_8043D60:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r5, 0
_08043D6A:
ldr r0, _08043DA4
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08043DA8
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08043DCE
ldr r2, [r4, 0x70]
movs r1, 0x1
ldrb r0, [r2, 0x8]
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r1, 31
adds r0, r2, 0
adds r0, 0x40
ldrb r0, [r0]
cmp r0, 0x4A
beq _08043DA0
cmp r0, 0x47
bne _08043DAC
_08043DA0:
movs r0, 0x1
b _08043DAE
.align 2, 0
_08043DA4: .4byte gUnknown_203B418
_08043DA8: .4byte 0x0001358c
_08043DAC:
movs r0, 0
_08043DAE:
cmp r0, 0
beq _08043DB4
movs r1, 0
_08043DB4:
adds r0, r2, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x1
bne _08043DC0
movs r1, 0
_08043DC0:
cmp r1, 0
beq _08043DCE
adds r0, r4, 0
ldr r1, _08043EC0
adds r2, r4, 0
bl sub_8068FE0
_08043DCE:
adds r5, 0x1
cmp r5, 0xF
ble _08043D6A
movs r5, 0
ldr r0, _08043EC4
mov r9, r0
mov r8, r5
_08043DDC:
mov r1, r9
ldr r0, [r1]
lsls r1, r5, 2
ldr r2, _08043EC8
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
adds r7, r5, 0x1
cmp r0, 0
beq _08043E62
adds r0, r4, 0
adds r0, 0x22
mov r1, r8
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x20
movs r0, 0x1
strb r0, [r1]
ldr r4, [r4, 0x70]
ldrh r0, [r4, 0x10]
strh r0, [r4, 0xE]
movs r2, 0x9E
lsls r2, 1
adds r1, r4, r2
adds r2, 0x4
adds r0, r4, r2
ldr r0, [r0]
str r0, [r1]
mov r1, r9
ldr r0, [r1]
ldr r2, _08043ECC
adds r0, r2
mov r1, r8
strb r1, [r0]
adds r0, r4, 0
movs r1, 0
bl sub_806BFC0
ldrh r0, [r4, 0x2]
strh r0, [r4, 0x4]
adds r0, r4, 0
adds r0, 0xFD
mov r2, r8
strb r2, [r0]
movs r0, 0x8C
lsls r0, 1
adds r5, r4, r0
adds r4, r5, 0
movs r6, 0x3
_08043E46:
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08043E58
adds r0, r5, 0
bl sub_8092BF4
strb r0, [r4, 0x4]
_08043E58:
adds r4, 0x8
adds r5, 0x8
subs r6, 0x1
cmp r6, 0
bge _08043E46
_08043E62:
adds r5, r7, 0
cmp r5, 0x3
ble _08043DDC
movs r6, 0
_08043E6A:
movs r5, 0
adds r7, r6, 0x1
_08043E6E:
adds r0, r5, 0
adds r1, r6, 0
bl sub_8049590
ldr r4, [r0, 0x14]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08043EA0
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x2
bne _08043EA0
adds r0, r4, 0
bl sub_8045104
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0x1B
bne _08043EA0
movs r0, 0x5
strb r0, [r1]
_08043EA0:
adds r5, 0x1
cmp r5, 0x37
ble _08043E6E
adds r6, r7, 0
cmp r6, 0x1F
ble _08043E6A
movs r0, 0x2
bl sub_8046F84
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08043EC0: .4byte 0x00000207
_08043EC4: .4byte gUnknown_203B418
_08043EC8: .4byte 0x0001357c
_08043ECC: .4byte 0x00000676
thumb_func_end sub_8043D60
thumb_func_start sub_8043ED0
sub_8043ED0:
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r7, 0
cmp r5, 0
bne _08043EEA
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _08043EEA
movs r0, 0
b _08043FB8
_08043EEA:
ldr r6, _08043F2C
ldr r0, [r6]
ldrb r0, [r0, 0x10]
cmp r0, 0x1
bne _08043F40
bl sub_8083600
adds r4, r0, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043F20
ldr r0, _08043F30
ldr r1, [r6]
ldr r2, _08043F34
adds r1, r2
bl strcpy
ldr r0, _08043F38
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043F20:
adds r0, r4, 0
bl sub_8042B0C
ldr r1, _08043F3C
b _08043FAC
.align 2, 0
_08043F2C: .4byte gUnknown_203B418
_08043F30: .4byte gUnknown_202DF98
_08043F34: .4byte 0x000005f4
_08043F38: .4byte gUnknown_80F89B4
_08043F3C: .4byte 0x0000021f
_08043F40:
cmp r0, 0x2
bne _08043F74
bl sub_8083600
adds r4, r0, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043FA4
ldr r0, _08043F68
ldr r1, [r6]
ldr r2, _08043F6C
adds r1, r2
bl strcpy
ldr r0, _08043F70
b _08043F9A
.align 2, 0
_08043F68: .4byte gUnknown_202DF98
_08043F6C: .4byte 0x000005f4
_08043F70: .4byte gUnknown_80F89D4
_08043F74:
cmp r0, 0x3
bne _08043FB6
bl sub_8083600
adds r4, r0, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08043FB6
cmp r5, 0
bne _08043FA4
ldr r0, _08043FC0
ldr r1, [r6]
ldr r2, _08043FC4
adds r1, r2
bl strcpy
ldr r0, _08043FC8
_08043F9A:
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
_08043FA4:
adds r0, r4, 0
bl sub_8042B0C
ldr r1, _08043FCC
_08043FAC:
adds r0, r4, 0
adds r2, r4, 0
bl sub_8068FE0
movs r7, 0x1
_08043FB6:
adds r0, r7, 0
_08043FB8:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08043FC0: .4byte gUnknown_202DF98
_08043FC4: .4byte 0x000005f4
_08043FC8: .4byte gUnknown_80F89D8
_08043FCC: .4byte 0x00000222
thumb_func_end sub_8043ED0
thumb_func_start sub_8043FD0
sub_8043FD0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
movs r0, 0x2
mov r9, r0
movs r1, 0x1
mov r10, r1
movs r0, 0xFF
mov r8, r0
_08043FE8:
movs r3, 0
mov r1, r9
adds r1, 0x1
str r1, [sp, 0x3C]
_08043FF0:
ldr r2, _080440E4
movs r0, 0x58
adds r1, r3, 0
muls r1, r0
ldr r0, [r2]
adds r4, r0, r1
ldrh r1, [r4]
mov r0, r10
ands r0, r1
adds r3, 0x1
str r3, [sp, 0x40]
cmp r0, 0
beq _080440FE
lsrs r0, r1, 1
mov r1, r10
ands r0, r1
cmp r0, 0
beq _080440FE
add r5, sp, 0x20
movs r0, 0x8
ldrsh r1, [r4, r0]
adds r0, r5, 0
mov r2, r9
bl sub_808E010
mov r1, r9
strb r1, [r4, 0x3]
ldr r0, [sp, 0x20]
str r0, [r4, 0x1C]
ldrh r0, [r5, 0x4]
ldrh r1, [r4, 0x16]
adds r0, r1
movs r2, 0
strh r0, [r4, 0x16]
lsls r0, 16
ldr r1, _080440E8
cmp r0, r1
ble _08044040
ldr r0, _080440EC
strh r0, [r4, 0x16]
_08044040:
ldrb r0, [r4, 0x18]
str r0, [sp, 0x2C]
ldrb r0, [r4, 0x19]
str r0, [sp, 0x30]
ldrb r0, [r4, 0x1A]
str r0, [sp, 0x34]
ldrb r0, [r4, 0x1B]
str r0, [sp, 0x38]
ldrb r1, [r5, 0x6]
ldr r0, [sp, 0x2C]
adds r0, r1
str r0, [sp, 0x2C]
ldrb r1, [r5, 0x7]
ldr r0, [sp, 0x30]
adds r0, r1
str r0, [sp, 0x30]
ldrb r1, [r5, 0x8]
ldr r0, [sp, 0x34]
adds r0, r1
str r0, [sp, 0x34]
ldrb r1, [r5, 0x9]
ldr r0, [sp, 0x38]
adds r0, r1
str r0, [sp, 0x38]
ldr r0, [sp, 0x2C]
cmp r0, 0xFE
ble _0804407A
mov r0, r8
str r0, [sp, 0x2C]
_0804407A:
ldr r0, [sp, 0x30]
cmp r0, 0xFE
ble _08044084
mov r1, r8
str r1, [sp, 0x30]
_08044084:
ldr r0, [sp, 0x34]
cmp r0, 0xFE
ble _0804408E
mov r0, r8
str r0, [sp, 0x34]
_0804408E:
ldr r0, [sp, 0x38]
cmp r0, 0xFE
ble _08044098
mov r1, r8
str r1, [sp, 0x38]
_08044098:
ldr r0, [sp, 0x2C]
strb r0, [r4, 0x18]
ldr r0, [sp, 0x30]
strb r0, [r4, 0x19]
ldr r0, [sp, 0x34]
strb r0, [r4, 0x1A]
ldr r0, [sp, 0x38]
strb r0, [r4, 0x1B]
movs r0, 0x8
ldrsh r1, [r4, r0]
ldrb r2, [r4, 0x3]
mov r0, sp
ldr r3, _080440EC
bl sub_808E0AC
adds r6, r0, 0
cmp r6, 0
beq _080440FE
movs r0, 0
cmp r0, r6
bge _080440FE
_080440C2:
movs r3, 0
adds r7, r0, 0x1
lsls r0, 1
mov r1, sp
adds r5, r1, r0
adds r2, r4, 0
adds r2, 0x2C
_080440D0:
ldrb r1, [r2]
mov r0, r10
ands r0, r1
cmp r0, 0
bne _080440F0
ldrh r1, [r5]
adds r0, r2, 0
bl sub_8092AD4
b _080440F8
.align 2, 0
_080440E4: .4byte gUnknown_203B45C
_080440E8: .4byte 0x03e60000
_080440EC: .4byte 0x000003e7
_080440F0:
adds r2, 0x8
adds r3, 0x1
cmp r3, 0x3
ble _080440D0
_080440F8:
adds r0, r7, 0
cmp r0, r6
blt _080440C2
_080440FE:
ldr r3, [sp, 0x40]
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
bgt _0804410A
b _08043FF0
_0804410A:
ldr r0, [sp, 0x3C]
mov r9, r0
cmp r0, 0x5
bgt _08044114
b _08043FE8
_08044114:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8043FD0
thumb_func_start sub_8044124
sub_8044124:
push {r4,r5,lr}
ldr r0, _080441AC
ldr r0, [r0]
ldr r1, _080441B0
adds r0, r1
ldrb r0, [r0]
bl GetMaxItemCount
cmp r0, 0
bne _08044182
movs r3, 0
ldr r4, _080441B4
movs r2, 0
_0804413E:
lsls r1, r3, 2
ldr r0, [r4]
adds r1, r0
strb r2, [r1, 0x2]
strb r2, [r1, 0x1]
strb r2, [r1]
adds r3, 0x1
cmp r3, 0x13
ble _0804413E
movs r3, 0
ldr r5, _080441B8
movs r4, 0x1
_08044156:
movs r0, 0x58
adds r1, r3, 0
muls r1, r0
ldr r0, [r5]
adds r1, r0, r1
ldrh r2, [r1]
adds r0, r4, 0
ands r0, r2
cmp r0, 0
beq _08044178
lsrs r0, r2, 1
ands r0, r4
cmp r0, 0
beq _08044178
adds r1, 0x28
movs r0, 0
strb r0, [r1]
_08044178:
adds r3, 0x1
movs r0, 0xCE
lsls r0, 1
cmp r3, r0
ble _08044156
_08044182:
ldr r0, _080441AC
ldr r0, [r0]
ldr r2, _080441B0
adds r0, r2
ldrb r0, [r0]
bl GetMoneyCondition
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080441A4
ldr r0, _080441B4
ldr r0, [r0]
movs r2, 0x98
lsls r2, 2
adds r0, r2
str r1, [r0]
_080441A4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080441AC: .4byte gUnknown_203B418
_080441B0: .4byte 0x00000644
_080441B4: .4byte gUnknown_203B460
_080441B8: .4byte gUnknown_203B45C
thumb_func_end sub_8044124
thumb_func_start sub_80441BC
sub_80441BC:
push {lr}
ldr r0, _080441D8
ldr r0, [r0]
ldr r1, _080441DC
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _080441E0
cmp r0, 0x31
bgt _080441E0
movs r0, 0x1
b _080441E2
.align 2, 0
_080441D8: .4byte gUnknown_203B418
_080441DC: .4byte 0x00003a14
_080441E0:
movs r0, 0
_080441E2:
pop {r1}
bx r1
thumb_func_end sub_80441BC
thumb_func_start sub_80441E8
sub_80441E8:
push {lr}
ldr r0, _08044200
ldr r0, [r0]
ldr r1, _08044204
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0x3F
bgt _08044208
movs r0, 0
b _0804420A
.align 2, 0
_08044200: .4byte gUnknown_203B418
_08044204: .4byte 0x00003a0e
_08044208:
movs r0, 0x1
_0804420A:
pop {r1}
bx r1
thumb_func_end sub_80441E8
thumb_func_start sub_8044210
sub_8044210:
push {lr}
ldr r0, _0804422C
ldr r0, [r0]
ldr r1, _08044230
adds r0, r1
ldrb r0, [r0]
subs r0, 0x4B
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
bls _08044234
movs r0, 0
b _08044236
.align 2, 0
_0804422C: .4byte gUnknown_203B418
_08044230: .4byte 0x00000644
_08044234:
movs r0, 0x1
_08044236:
pop {r1}
bx r1
thumb_func_end sub_8044210
thumb_func_start RunDungeon
RunDungeon:
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044994
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
adds r0, r4, 0
bl xxx_dungeon_80442D0
lsls r0, 24
lsrs r4, r0, 24
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
cmp r4, 0
beq _08044280
bl sub_807E378
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
_08044280:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044574
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080442C6
bl sub_8044820
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080442C6
bl sub_8044AB4
ldr r0, _080442CC
ldr r0, [r0]
movs r2, 0xCC
lsls r2, 3
adds r1, r0, r2
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
lsls r0, 16
asrs r0, 16
cmp r0, 0x18
bne _080442C6
strh r4, [r1]
_080442C6:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080442CC: .4byte gUnknown_203B418
thumb_func_end RunDungeon
thumb_func_start xxx_dungeon_80442D0
xxx_dungeon_80442D0:
push {r4-r7,lr}
lsls r0, 24
lsrs r7, r0, 24
bl sub_8083600
adds r5, r0, 0
cmp r5, 0
beq _0804431A
bl sub_8069E8C
adds r0, r5, 0
bl sub_8070774
ldr r3, _08044320
ldr r1, _08044324
ldr r1, [r1]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r2, 0
ldrsh r1, [r1, r2]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
adds r1, r3
movs r3, 0
ldrsh r0, [r1, r3]
cmp r0, 0
beq _0804431A
ldr r0, [r5, 0x70]
movs r1, 0xA4
lsls r1, 1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08044328
_0804431A:
movs r0, 0
b _0804444E
.align 2, 0
_08044320: .4byte gUnknown_80F6860
_08044324: .4byte gUnknown_203B418
_08044328:
bl sub_8083600
adds r5, r0, 0
cmp r5, 0
beq _0804431A
movs r0, 0
bl sub_807520C
lsls r0, 24
cmp r0, 0
bne _0804435C
ldr r0, _08044388
ldr r1, [r0]
ldr r2, _0804438C
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08044356
ldr r3, _08044390
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
beq _0804435C
_08044356:
movs r0, 0xC
bl sub_803E46C
_0804435C:
ldr r0, [r5, 0x70]
adds r0, 0xF8
movs r1, 0
strb r1, [r0]
bl sub_8044B28
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0
bne _0804431A
ldr r0, _08044388
ldr r1, [r0]
adds r0, r1, 0
adds r0, 0xB8
str r5, [r0]
adds r1, 0xBC
str r2, [r1]
cmp r7, 0
beq _08044394
movs r7, 0
b _0804439A
.align 2, 0
_08044388: .4byte gUnknown_203B418
_0804438C: .4byte 0x0000066c
_08044390: .4byte 0x00000673
_08044394:
adds r0, r5, 0
bl sub_8074B54
_0804439A:
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0804431A
adds r0, r5, 0
bl sub_8071DA4
ldr r6, _08044434
ldr r1, [r6]
movs r0, 0x1
strb r0, [r1, 0xF]
bl sub_805D8C8
ldr r0, [r6]
strb r4, [r0, 0xF]
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
adds r0, r5, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
ldr r2, [r5, 0x70]
ldrh r1, [r2]
movs r3, 0x80
lsls r3, 8
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _08044400
subs r3, 0x1
adds r0, r3, 0
ands r0, r1
movs r3, 0x80
lsls r3, 7
adds r1, r3, 0
orrs r0, r1
strh r0, [r2]
_08044400:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804444C
bl sub_8044454
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _0804444C
ldr r2, [r6]
adds r0, r2, 0
adds r0, 0xBC
ldr r1, [r0]
cmp r1, 0
beq _08044438
bl sub_805F02C
ldr r0, [r6]
adds r0, 0xBC
str r4, [r0]
movs r7, 0x1
b _08044328
.align 2, 0
_08044434: .4byte gUnknown_203B418
_08044438:
ldr r0, [r5, 0x70]
adds r0, 0xF8
ldrb r0, [r0]
cmp r0, 0
beq _0804444C
movs r3, 0xCC
lsls r3, 3
adds r0, r2, r3
strh r1, [r0]
b _08044328
_0804444C:
movs r0, 0x1
_0804444E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end xxx_dungeon_80442D0
thumb_func_start sub_8044454
sub_8044454:
push {r4-r6,lr}
ldr r0, _080444E8
ldr r1, [r0]
ldrb r0, [r1, 0xE]
cmp r0, 0
beq _080444E2
movs r0, 0
strb r0, [r1, 0xE]
movs r6, 0
_08044466:
ldr r0, _080444E8
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _080444EC
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080444DC
ldr r5, [r4, 0x70]
ldrh r0, [r5]
movs r2, 0x80
lsls r2, 8
adds r1, r2, 0
ands r0, r1
cmp r0, 0
beq _080444DC
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080444E2
adds r0, r4, 0
bl sub_8074B54
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080444DC
adds r0, r4, 0
bl sub_8071DA4
adds r0, r4, 0
movs r1, 0
bl sub_8075990
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
ldrh r0, [r5]
ldr r2, _080444F0
adds r1, r2, 0
ands r0, r1
movs r2, 0x80
lsls r2, 7
adds r1, r2, 0
orrs r0, r1
strh r0, [r5]
_080444DC:
adds r6, 0x1
cmp r6, 0x13
ble _08044466
_080444E2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080444E8: .4byte gUnknown_203B418
_080444EC: .4byte 0x000135cc
_080444F0: .4byte 0x00007fff
thumb_func_end sub_8044454
thumb_func_start sub_80444F4
sub_80444F4:
push {r4-r6,lr}
adds r6, r0, 0
bl sub_8083600
cmp r6, r0
bne _08044566
ldr r0, _0804456C
ldr r1, [r0]
ldrb r0, [r1, 0xE]
cmp r0, 0
beq _08044566
movs r0, 0
strb r0, [r1, 0xE]
movs r5, 0
_08044510:
ldr r0, _0804456C
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08044570
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044560
cmp r6, r4
beq _08044560
ldr r0, [r4, 0x70]
ldrh r0, [r0]
movs r2, 0x80
lsls r2, 8
adds r1, r2, 0
ands r0, r1
cmp r0, 0
beq _08044560
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044566
adds r0, r4, 0
movs r1, 0
bl sub_8075990
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
_08044560:
adds r5, 0x1
cmp r5, 0x13
ble _08044510
_08044566:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804456C: .4byte gUnknown_203B418
_08044570: .4byte 0x000135cc
thumb_func_end sub_80444F4
thumb_func_start sub_8044574
sub_8044574:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
bl sub_8083600
mov r10, r0
movs r7, 0
mov r0, sp
adds r0, 0x4
str r0, [sp, 0x40]
ldr r1, _08044634
mov r9, r1
_08044592:
mov r2, r9
ldr r0, [r2]
lsls r1, r7, 2
ldr r3, _08044638
adds r0, r3
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080446A4
ldr r6, [r5, 0x70]
mov r8, r6
ldrb r0, [r6, 0x7]
cmp r0, 0
bne _080446A4
bl sub_8044B28
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080446AC
mov r1, r9
ldr r0, [r1]
adds r0, 0xB8
str r5, [r0]
bl sub_8069E8C
movs r2, 0xA2
lsls r2, 1
adds r0, r6, r2
strb r4, [r0]
adds r0, r5, 0
bl sub_8070774
mov r3, r9
ldr r1, [r3]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r3, 0
ldrsh r1, [r1, r3]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
ldr r0, _0804463C
adds r1, r0
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080446A4
movs r3, 0xA4
lsls r3, 1
adds r0, r6, r3
ldrb r0, [r0]
cmp r0, 0
bne _080446A4
ldrh r1, [r6]
movs r2, 0x80
lsls r2, 8
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _080446A4
movs r3, 0x80
lsls r3, 7
adds r0, r3, 0
ands r0, r1
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _08044644
ldr r2, _08044640
adds r0, r2, 0
ands r0, r1
strh r0, [r6]
b _080446A4
.align 2, 0
_08044634: .4byte gUnknown_203B418
_08044638: .4byte 0x0001357c
_0804463C: .4byte gUnknown_80F6860
_08044640: .4byte 0x0000bfff
_08044644:
ldr r1, _08044668
add r1, r8
strb r0, [r1]
adds r0, r5, 0
bl sub_8074B54
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080446A4
adds r0, r5, 0
bl sub_8071DA4
movs r4, 0
b _0804466E
.align 2, 0
_08044668: .4byte 0x00000145
_0804466C:
adds r4, 0x1
_0804466E:
cmp r4, 0x2
bgt _080446A4
adds r0, r5, 0
movs r1, 0
bl sub_8075990
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _080446A4
adds r0, r5, 0
bl sub_8072CF4
lsls r0, 24
cmp r0, 0
beq _080446A4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _0804466C
_080446A4:
adds r7, 0x1
cmp r7, 0x3
bgt _080446AC
b _08044592
_080446AC:
movs r0, 0
mov r8, r0
_080446B0:
adds r0, 0x1
mov r9, r0
add r2, sp, 0x8
ldr r1, [sp, 0x40]
mov r0, sp
movs r7, 0x2
_080446BC:
mov r3, r8
str r3, [r0]
str r2, [r1]
adds r2, 0x8
adds r1, 0x8
adds r0, 0x8
subs r7, 0x1
cmp r7, 0
bge _080446BC
str r3, [sp, 0x18]
str r3, [sp, 0x1C]
movs r7, 0
_080446D4:
ldr r0, _08044710
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08044714
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044760
ldr r1, [r4, 0x70]
movs r3, 0xA2
lsls r3, 1
adds r2, r1, r3
ldrb r0, [r2]
cmp r0, 0
beq _08044760
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _08044718
adds r3, 0x1
adds r0, r1, r3
mov r1, r8
strb r1, [r0]
strb r1, [r2]
b _08044760
.align 2, 0
_08044710: .4byte gUnknown_203B418
_08044714: .4byte 0x0001357c
_08044718:
mov r2, r10
movs r3, 0x4
ldrsh r1, [r2, r3]
movs r2, 0x4
ldrsh r0, [r4, r2]
subs r2, r1, r0
cmp r2, 0
bge _0804472A
negs r2, r2
_0804472A:
mov r3, r10
movs r0, 0x6
ldrsh r1, [r3, r0]
movs r3, 0x6
ldrsh r0, [r4, r3]
subs r1, r0
cmp r1, 0
bge _0804473C
negs r1, r1
_0804473C:
cmp r1, r2
bge _08044742
adds r1, r2, 0
_08044742:
cmp r1, 0x2
ble _08044748
movs r1, 0x2
_08044748:
add r3, sp, 0x20
lsls r0, r7, 3
adds r3, r0
str r4, [r3]
add r2, sp, 0x24
adds r2, r0
lsls r1, 3
ldr r0, [sp, 0x40]
adds r1, r0, r1
ldr r0, [r1]
str r0, [r2]
str r3, [r1]
_08044760:
adds r7, 0x1
cmp r7, 0x3
ble _080446D4
mov r5, sp
movs r6, 0
_0804476A:
ldr r4, [r5]
cmp r4, 0
beq _080447A0
ldr r1, [r4, 0x70]
ldr r3, _08044814
adds r2, r1, r3
movs r0, 0x1
strb r0, [r2]
movs r2, 0xA2
lsls r2, 1
adds r0, r1, r2
strb r6, [r0]
adds r0, r4, 0
movs r1, 0x1
bl sub_8075990
adds r0, r4, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
adds r0, r4, 0
bl sub_80450E0
_080447A0:
ldr r5, [r5, 0x4]
cmp r5, 0
bne _0804476A
mov r0, r9
cmp r0, 0x2
ble _080446B0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044802
movs r7, 0
_080447B8:
ldr r0, _08044818
ldr r0, [r0]
lsls r1, r7, 2
ldr r3, _0804481C
adds r0, r3
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080447FC
ldr r0, [r4, 0x70]
movs r1, 0xA2
lsls r1, 1
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0
beq _080447FC
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080447FC
adds r0, r4, 0
bl sub_8071DA4
movs r0, 0
strb r0, [r5]
_080447FC:
adds r7, 0x1
cmp r7, 0x3
ble _080447B8
_08044802:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044814: .4byte 0x00000145
_08044818: .4byte gUnknown_203B418
_0804481C: .4byte 0x0001357c
thumb_func_end sub_8044574
thumb_func_start sub_8044820
sub_8044820:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r7, 0
ldr r0, _08044830
mov r8, r0
b _080448FC
.align 2, 0
_08044830: .4byte gUnknown_80F6860
_08044834:
ldr r4, [r5, 0x70]
ldr r0, [r6]
adds r0, 0xB8
str r5, [r0]
bl sub_8069E8C
ldrh r2, [r4]
movs r1, 0x80
lsls r1, 8
adds r0, r1, 0
ands r0, r2
cmp r0, 0
bne _080448FA
movs r1, 0x80
lsls r1, 7
adds r0, r1, 0
ands r0, r2
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
beq _0804486C
ldr r1, _08044868
adds r0, r1, 0
ands r0, r2
strh r0, [r4]
b _080448FA
.align 2, 0
_08044868: .4byte 0x0000bfff
_0804486C:
movs r2, 0xA2
lsls r2, 1
adds r0, r4, r2
strb r1, [r0]
adds r0, r5, 0
bl sub_8070774
ldr r1, [r6]
movs r2, 0xCC
lsls r2, 3
adds r1, r2
movs r2, 0
ldrsh r1, [r1, r2]
lsls r1, 1
movs r2, 0x32
muls r0, r2
adds r1, r0
add r1, r8
movs r2, 0
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080448FA
movs r1, 0xA4
lsls r1, 1
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080448FA
ldrh r1, [r4]
ldr r2, _08044984
adds r0, r2, 0
ands r1, r0
movs r0, 0
strh r1, [r4]
ldr r2, _08044988
adds r1, r4, r2
strb r0, [r1]
adds r0, r5, 0
bl sub_8074B54
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080448FA
adds r0, r5, 0
bl sub_8071DA4
adds r0, r5, 0
movs r1, 0
bl sub_8075990
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044924
adds r0, r5, 0
bl sub_8072CF4
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _08044924
_080448FA:
adds r7, 0x1
_080448FC:
cmp r7, 0xF
bgt _08044924
ldr r6, _0804498C
ldr r0, [r6]
lsls r1, r7, 2
ldr r2, _08044990
adds r0, r2
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080448FA
bl sub_8044B28
lsls r0, 24
cmp r0, 0
beq _08044834
_08044924:
bl sub_8044B28
lsls r0, 24
cmp r0, 0
bne _0804497A
movs r7, 0
_08044930:
ldr r0, _0804498C
ldr r0, [r0]
lsls r1, r7, 2
ldr r2, _08044990
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044974
ldr r0, [r4, 0x70]
movs r1, 0xA2
lsls r1, 1
adds r5, r0, r1
ldrb r0, [r5]
cmp r0, 0
beq _08044974
adds r0, r4, 0
bl sub_8074094
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044974
adds r0, r4, 0
bl sub_8071DA4
movs r0, 0
strb r0, [r5]
_08044974:
adds r7, 0x1
cmp r7, 0xF
ble _08044930
_0804497A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044984: .4byte 0x00003fff
_08044988: .4byte 0x00000145
_0804498C: .4byte gUnknown_203B418
_08044990: .4byte 0x0001358c
thumb_func_end sub_8044820
thumb_func_start sub_8044994
sub_8044994:
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _08044A94
ldr r4, _08044A98
ldr r0, [r4]
movs r2, 0xCC
lsls r2, 3
adds r0, r2
movs r3, 0
ldrsh r0, [r0, r3]
lsls r0, 1
adds r1, 0x32
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08044A8A
bl sub_8071B48
ldr r0, [r4]
ldr r2, _08044A9C
adds r0, r2
movs r2, 0
strb r2, [r0]
ldr r0, [r4]
ldr r3, _08044AA0
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
ldr r1, _08044AA4
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r3, 0x2
adds r0, r3
strb r2, [r0]
ldr r0, [r4]
ldr r3, _08044AA8
adds r1, r0, r3
str r2, [r1]
ldr r1, _08044AAC
adds r0, r1
movs r1, 0x2
str r1, [r0]
mov r8, r2
adds r7, r4, 0
_080449F2:
ldr r0, [r7]
mov r2, r8
lsls r1, r2, 2
ldr r3, _08044AB0
adds r0, r3
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044A7A
ldr r0, [r5, 0x70]
adds r4, r0, 0
movs r0, 0xA4
lsls r0, 1
adds r1, r4, r0
movs r0, 0
strb r0, [r1]
ldrb r0, [r4, 0x6]
movs r6, 0x1
cmp r0, 0
beq _08044A24
movs r6, 0
_08044A24:
adds r0, r5, 0
movs r1, 0x32
bl sub_8071824
lsls r0, 24
cmp r0, 0
beq _08044A46
ldr r1, [r7]
ldr r2, _08044AA8
adds r0, r1, r2
str r5, [r0]
ldr r3, _08044AAC
adds r1, r3
adds r0, r4, 0
adds r0, 0x98
ldr r0, [r0]
str r0, [r1]
_08044A46:
adds r0, r5, 0
movs r1, 0x3F
bl sub_8071824
lsls r0, 24
cmp r0, 0
beq _08044A60
ldr r0, [r7]
ldr r1, _08044AA4
adds r0, r1
adds r0, r6
movs r1, 0x1
strb r1, [r0]
_08044A60:
adds r0, r5, 0
movs r1, 0x38
bl sub_8071824
lsls r0, 24
cmp r0, 0
beq _08044A7A
ldr r0, [r7]
ldr r2, _08044A9C
adds r0, r2
adds r0, r6
movs r1, 0x1
strb r1, [r0]
_08044A7A:
movs r3, 0x1
add r8, r3
mov r0, r8
cmp r0, 0x13
ble _080449F2
movs r0, 0
bl sub_8043ED0
_08044A8A:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044A94: .4byte gUnknown_80F6860
_08044A98: .4byte gUnknown_203B418
_08044A9C: .4byte 0x000037f8
_08044AA0: .4byte 0x000037f9
_08044AA4: .4byte 0x000037fa
_08044AA8: .4byte 0x00017b2c
_08044AAC: .4byte 0x00017b38
_08044AB0: .4byte 0x000135cc
thumb_func_end sub_8044994
thumb_func_start sub_8044AB4
sub_8044AB4:
push {r4,lr}
ldr r1, _08044ADC
ldr r0, _08044AE0
ldr r0, [r0]
movs r2, 0xCC
lsls r2, 3
adds r0, r2
movs r2, 0
ldrsh r0, [r0, r2]
adds r0, 0x1
lsls r0, 1
adds r1, 0x32
adds r0, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0
beq _08044B1A
movs r4, 0
b _08044AE6
.align 2, 0
_08044ADC: .4byte gUnknown_80F6860
_08044AE0: .4byte gUnknown_203B418
_08044AE4:
adds r4, 0x1
_08044AE6:
cmp r4, 0x13
bgt _08044B08
ldr r0, _08044B20
ldr r0, [r0]
lsls r1, r4, 2
ldr r2, _08044B24
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08044AE4
movs r0, 0
bl sub_807520C
_08044B08:
movs r0, 0x1
movs r1, 0
bl sub_807EAA0
bl sub_8086AC0
movs r0, 0
bl sub_8043ED0
_08044B1A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044B20: .4byte gUnknown_203B418
_08044B24: .4byte 0x000135cc
thumb_func_end sub_8044AB4
thumb_func_start sub_8044B28
sub_8044B28:
push {r4,lr}
ldr r4, _08044B48
ldr r0, [r4]
ldrb r0, [r0, 0x4]
cmp r0, 0
bne _08044B76
bl sub_8083600
cmp r0, 0
bne _08044B50
ldr r0, [r4]
ldr r1, _08044B4C
adds r0, r1
movs r1, 0x1
strb r1, [r0]
b _08044B76
.align 2, 0
_08044B48: .4byte gUnknown_203B418
_08044B4C: .4byte 0x00000654
_08044B50:
ldr r0, [r4]
ldrb r2, [r0, 0x2]
cmp r2, 0x1
bne _08044B68
ldr r2, _08044B64
adds r1, r0, r2
movs r0, 0x2
strb r0, [r1]
b _08044B76
.align 2, 0
_08044B64: .4byte 0x00000654
_08044B68:
cmp r2, 0x2
beq _08044B70
movs r0, 0
b _08044B78
_08044B70:
ldr r1, _08044B80
adds r0, r1
strb r2, [r0]
_08044B76:
movs r0, 0x1
_08044B78:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08044B80: .4byte 0x00000654
thumb_func_end sub_8044B28
thumb_func_start sub_8044B84
sub_8044B84:
push {lr}
ldr r0, _08044B9C
ldr r0, [r0]
ldrb r0, [r0, 0x10]
cmp r0, 0
bne _08044BA0
bl sub_8044B28
lsls r0, 24
lsrs r0, 24
b _08044BA2
.align 2, 0
_08044B9C: .4byte gUnknown_203B418
_08044BA0:
movs r0, 0x1
_08044BA2:
pop {r1}
bx r1
thumb_func_end sub_8044B84
thumb_func_start sub_8044BA8
sub_8044BA8:
push {r4,r5,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r5, r1, 24
cmp r4, 0x26
bne _08044BCC
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08044BCC
ldr r0, _08044BC8
b _08044C02
.align 2, 0
_08044BC8: .4byte gUnknown_80F91EC
_08044BCC:
ldr r1, _08044BEC
lsls r0, r4, 3
adds r4, r0, r1
ldr r0, [r4]
ldr r1, _08044BF0
bl strcmp
cmp r0, 0
beq _08044BE0
movs r0, 0x1
_08044BE0:
lsls r0, 24
cmp r0, 0
beq _08044BF4
ldr r0, [r4]
b _08044C04
.align 2, 0
_08044BEC: .4byte gUnknown_80F7C50
_08044BF0: .4byte gUnknown_80F697C
_08044BF4:
ldr r4, _08044C0C
adds r0, r5, 0
bl sub_8090D6C
lsls r0, 3
adds r4, 0x4
adds r0, r4
_08044C02:
ldr r0, [r0]
_08044C04:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08044C0C: .4byte gUnknown_80F7B14
thumb_func_end sub_8044BA8
thumb_func_start sub_8044C10
sub_8044C10:
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl sub_8083654
adds r2, r0, 0
adds r1, r2, 0
adds r1, 0x44
movs r3, 0
movs r0, 0
strh r0, [r1]
cmp r4, 0
beq _08044C44
adds r0, r2, 0
adds r0, 0x48
strb r3, [r0]
adds r0, 0x8
strb r3, [r0]
adds r1, 0x14
ldr r0, _08044C4C
strh r0, [r1]
adds r1, 0x2
movs r0, 0x1
negs r0, r0
strh r0, [r1]
_08044C44:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044C4C: .4byte 0x0000ffff
thumb_func_end sub_8044C10
thumb_func_start sub_8044C50
sub_8044C50:
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_8083654
adds r2, r0, 0
adds r0, 0x44
movs r1, 0
strh r4, [r0]
adds r0, 0x4
strb r1, [r0]
adds r0, 0x8
strb r1, [r0]
adds r1, r2, 0
adds r1, 0x58
ldr r0, _08044C84
strh r0, [r1]
adds r1, 0x2
movs r0, 0x1
negs r0, r0
strh r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08044C84: .4byte 0x0000ffff
thumb_func_end sub_8044C50
thumb_func_start sub_8044C88
sub_8044C88:
movs r2, 0
movs r1, 0
strh r1, [r0]
strb r2, [r0, 0x4]
strb r2, [r0, 0xC]
bx lr
thumb_func_end sub_8044C88
thumb_func_start sub_8044C94
sub_8044C94:
movs r2, 0
strh r1, [r0]
strb r2, [r0, 0x4]
strb r2, [r0, 0xC]
bx lr
thumb_func_end sub_8044C94
thumb_func_start sub_8044CA0
sub_8044CA0:
push {r4,lr}
adds r4, r0, 0
lsls r0, r1, 16
asrs r0, 16
bl sub_808DB48
lsls r0, 24
cmp r0, 0
beq _08044CB6
movs r0, 0x2
b _08044CB8
_08044CB6:
movs r0, 0x1
_08044CB8:
strh r0, [r4]
movs r0, 0
strb r0, [r4, 0x4]
strb r0, [r4, 0xC]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8044CA0
thumb_func_start sub_8044CC8
sub_8044CC8:
push {lr}
adds r3, r0, 0
adds r2, r1, 0
ldrb r1, [r2]
subs r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bhi _08044CEC
ldr r0, _08044CE8
ldrb r1, [r2]
lsls r1, 2
subs r1, 0x4
ldr r0, [r0]
adds r0, r1
b _08044D34
.align 2, 0
_08044CE8: .4byte gUnknown_203B460
_08044CEC:
adds r0, r1, 0
cmp r0, 0x80
bne _08044D06
movs r1, 0x4
ldrsh r0, [r2, r1]
movs r3, 0x6
ldrsh r1, [r2, r3]
bl sub_804954C
ldr r0, [r0, 0x14]
bl sub_8045108
b _08044D34
_08044D06:
cmp r0, 0x81
bne _08044D0E
ldr r0, [r3, 0x70]
b _08044D32
_08044D0E:
adds r0, r1, 0
adds r0, 0x70
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bls _08044D1E
movs r0, 0
b _08044D34
_08044D1E:
ldr r0, _08044D38
ldr r1, [r0]
ldrb r0, [r2]
subs r0, 0x90
lsls r0, 2
ldr r2, _08044D3C
adds r1, r2
adds r1, r0
ldr r0, [r1]
ldr r0, [r0, 0x70]
_08044D32:
adds r0, 0x60
_08044D34:
pop {r1}
bx r1
.align 2, 0
_08044D38: .4byte gUnknown_203B418
_08044D3C: .4byte 0x0001357c
thumb_func_end sub_8044CC8
thumb_func_start sub_8044D40
sub_8044D40:
push {lr}
lsls r1, 3
adds r1, 0x4
adds r2, r0, r1
ldrb r1, [r2]
subs r0, r1, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x13
bhi _08044D74
ldr r1, _08044D70
ldrb r0, [r2]
lsls r0, 2
subs r0, 0x4
ldr r1, [r1]
adds r1, r0
movs r0, 0
strb r0, [r1, 0x2]
strb r0, [r1, 0x1]
strb r0, [r1]
bl sub_80910B4
b _08044D88
.align 2, 0
_08044D70: .4byte gUnknown_203B460
_08044D74:
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0x80
beq _08044D80
movs r0, 0
b _08044D8A
_08044D80:
adds r0, r2, 0x4
movs r1, 0x1
bl sub_80461C8
_08044D88:
movs r0, 0x1
_08044D8A:
pop {r1}
bx r1
thumb_func_end sub_8044D40
thumb_func_start sub_8044D90
sub_8044D90:
push {lr}
ldr r3, [r0, 0x70]
lsls r1, 3
adds r1, 0x48
adds r3, r1
adds r1, r3, 0
bl sub_8044CC8
pop {r1}
bx r1
thumb_func_end sub_8044D90
thumb_func_start sub_8044DA4
sub_8044DA4:
ldr r0, [r0, 0x70]
ldr r2, _08044DC0
ldr r2, [r2]
lsls r1, 3
adds r0, r1
adds r0, 0x48
ldrb r0, [r0]
lsls r0, 2
ldr r1, _08044DC4
adds r2, r1
adds r2, r0
ldr r0, [r2]
bx lr
.align 2, 0
_08044DC0: .4byte gUnknown_203B418
_08044DC4: .4byte 0x0001357c
thumb_func_end sub_8044DA4
thumb_func_start sub_8044DC8
sub_8044DC8:
push {r4,lr}
adds r1, r0, 0
ldrb r0, [r1, 0x2]
cmp r0, 0xE9
beq _08044DE8
ldr r4, _08044DE4
bl sub_8090BD0
lsls r0, 24
lsrs r0, 23
adds r0, r4
ldrh r0, [r0]
b _08044DEA
.align 2, 0
_08044DE4: .4byte gUnknown_80F6964
_08044DE8:
movs r0, 0x35
_08044DEA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8044DC8
thumb_func_start sub_8044DF0
sub_8044DF0:
push {r4,lr}
ldr r4, [r0, 0x70]
bl sub_8044D90
adds r1, r0, 0
adds r0, r4, 0
adds r0, 0x48
ldrb r0, [r0]
cmp r0, 0x80
bne _08044E10
adds r0, r4, 0
adds r0, 0x4C
movs r1, 0x1
bl sub_80461C8
b _08044E1C
_08044E10:
movs r0, 0
strb r0, [r1, 0x2]
strb r0, [r1, 0x1]
strb r0, [r1]
bl sub_80910B4
_08044E1C:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8044DF0
thumb_func_start sub_8044E24
sub_8044E24:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
adds r4, r0, 0
adds r6, r1, 0
adds r7, r2, 0
bl sub_8044D90
adds r5, r0, 0
ldr r0, [r4, 0x70]
mov r8, r0
ldrb r0, [r5, 0x2]
bl sub_80915A0
lsls r0, 24
cmp r0, 0
bne _08044EBA
ldrb r0, [r5, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _08044EB0
lsls r1, r6, 3
mov r2, r8
adds r0, r2, r1
adds r0, 0x48
ldrb r0, [r0]
cmp r0, 0x80
bne _08044EA4
ldr r0, [r5]
str r0, [sp]
adds r4, r1, r2
adds r4, 0x4C
adds r0, r4, 0
movs r1, 0x1
bl sub_80461C8
ldrb r1, [r5, 0x2]
subs r1, 0x7D
lsls r1, 24
lsrs r1, 16
ldr r2, _08044E9C
ldr r0, [sp]
ands r0, r2
orrs r0, r1
ldr r1, _08044EA0
ands r0, r1
movs r1, 0xF8
lsls r1, 15
orrs r0, r1
str r0, [sp]
adds r0, r4, 0
mov r1, sp
movs r2, 0x1
bl sub_80460F8
b _08044EBA
.align 2, 0
_08044E9C: .4byte 0xffff00ff
_08044EA0: .4byte 0xff00ffff
_08044EA4:
ldrb r0, [r5, 0x2]
subs r0, 0x7D
strb r0, [r5, 0x1]
movs r0, 0x7C
strb r0, [r5, 0x2]
b _08044EBA
_08044EB0:
adds r0, r4, 0
adds r1, r6, 0
adds r2, r7, 0
bl sub_8044DF0
_08044EBA:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8044E24
thumb_func_start sub_8044EC8
sub_8044EC8:
push {r4,r5,lr}
adds r5, r0, 0
ldr r1, _08044EE8
lsls r0, r5, 2
adds r0, r1
ldrh r4, [r0]
cmp r4, 0x26
bne _08044EF0
bl sub_8043D10
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08044EF0
ldr r0, _08044EEC
b _08044F2C
.align 2, 0
_08044EE8: .4byte gUnknown_202EE44
_08044EEC: .4byte gUnknown_80F91EC
_08044EF0:
ldr r1, _08044F10
lsls r0, r4, 3
adds r4, r0, r1
ldr r0, [r4]
ldr r1, _08044F14
bl strcmp
cmp r0, 0
beq _08044F04
movs r0, 0x1
_08044F04:
lsls r0, 24
cmp r0, 0
beq _08044F18
ldr r0, [r4]
b _08044F2E
.align 2, 0
_08044F10: .4byte gUnknown_80F7C50
_08044F14: .4byte gUnknown_80F697C
_08044F18:
ldr r4, _08044F34
ldr r1, _08044F38
lsls r0, r5, 2
adds r0, r1
ldrb r0, [r0, 0x2]
bl sub_8090D6C
lsls r0, 3
adds r4, 0x4
adds r0, r4
_08044F2C:
ldr r0, [r0]
_08044F2E:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08044F34: .4byte gUnknown_80F7B14
_08044F38: .4byte gUnknown_202EE44
thumb_func_end sub_8044EC8
thumb_func_start sub_8044F3C
sub_8044F3C:
push {lr}
adds r1, r0, 0
cmp r1, 0
blt _08044F54
ldr r0, _08044F50
lsls r1, 2
adds r1, r0
ldrb r0, [r1, 0x3]
b _08044F56
.align 2, 0
_08044F50: .4byte gUnknown_202EE44
_08044F54:
movs r0, 0
_08044F56:
pop {r1}
bx r1
thumb_func_end sub_8044F3C
thumb_func_start sub_8044F5C
sub_8044F5C:
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 24
lsrs r7, r1, 24
ldr r0, _08044FAC
ldr r2, [r0]
adds r6, r0, 0
cmp r2, 0x9
bgt _08044FA4
movs r3, 0
ldr r5, _08044FB0
cmp r3, r2
bge _08044F8A
adds r1, r2, 0
adds r2, r5, 0
_08044F7C:
ldrh r0, [r2]
cmp r0, r4
beq _08044FA4
adds r2, 0x4
adds r3, 0x1
cmp r3, r1
blt _08044F7C
_08044F8A:
ldr r0, [r6]
lsls r0, 2
adds r0, r5
strh r4, [r0]
strb r7, [r0, 0x2]
ldr r0, [r6]
lsls r0, 2
adds r0, r5
movs r1, 0x1
strb r1, [r0, 0x3]
ldr r0, [r6]
adds r0, 0x1
str r0, [r6]
_08044FA4:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08044FAC: .4byte gUnknown_202EE6C
_08044FB0: .4byte gUnknown_202EE44
thumb_func_end sub_8044F5C
thumb_func_start sub_8044FB4
sub_8044FB4:
push {r4,lr}
lsls r0, 16
lsrs r4, r0, 16
movs r1, 0
ldr r0, _08044FD4
ldr r0, [r0]
cmp r1, r0
bge _08044FE4
adds r3, r0, 0
ldr r2, _08044FD8
_08044FC8:
ldrh r0, [r2]
cmp r0, r4
bne _08044FDC
adds r0, r1, 0
b _08044FE8
.align 2, 0
_08044FD4: .4byte gUnknown_202EE6C
_08044FD8: .4byte gUnknown_202EE44
_08044FDC:
adds r2, 0x4
adds r1, 0x1
cmp r1, r3
blt _08044FC8
_08044FE4:
movs r0, 0x1
negs r0, r0
_08044FE8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8044FB4
thumb_func_start sub_8044FF0
sub_8044FF0:
push {r4,r5,lr}
lsls r0, 16
lsrs r3, r0, 16
movs r2, 0
ldr r1, _08045010
ldr r0, [r1]
cmp r2, r0
bge _08045022
movs r5, 0
adds r4, r1, 0
ldr r1, _08045014
_08045006:
ldrh r0, [r1]
cmp r0, r3
bne _08045018
strb r5, [r1, 0x3]
b _08045022
.align 2, 0
_08045010: .4byte gUnknown_202EE6C
_08045014: .4byte gUnknown_202EE44
_08045018:
adds r1, 0x4
adds r2, 0x1
ldr r0, [r4]
cmp r2, r0
blt _08045006
_08045022:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8044FF0
thumb_func_start sub_8045028
sub_8045028:
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
ldr r0, [r2, 0x70]
adds r4, r0, 0
adds r4, 0x44
cmp r1, 0
beq _08045044
adds r0, r2, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
beq _0804505A
_08045044:
ldrh r0, [r4]
cmp r0, 0
beq _0804505A
cmp r0, 0x2
beq _0804505A
cmp r0, 0x1
beq _0804505A
cmp r0, 0x5
beq _0804505A
movs r0, 0
b _0804505C
_0804505A:
movs r0, 0x1
_0804505C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8045028
thumb_func_start sub_8045064
sub_8045064:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r1, 0
ldr r0, _080450D4
mov r8, r0
ldr r0, [r0]
cmp r1, r0
bge _080450C8
mov r7, r8
ldr r2, _080450D8
mov r9, r2
ldr r0, _080450DC
mov r12, r0
_08045082:
adds r4, r1, 0x1
ldr r0, [r7]
adds r5, r4, 0
cmp r5, r0
bge _080450BE
lsls r0, r1, 2
mov r1, r12
adds r3, r0, r1
mov r6, r9
lsls r0, r5, 2
adds r2, r0, r1
_08045098:
ldrh r1, [r3]
lsls r1, 3
adds r1, r6
ldrh r0, [r2]
lsls r0, 3
adds r0, r6
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
ble _080450B4
ldr r1, [r3]
ldr r0, [r2]
str r0, [r3]
str r1, [r2]
_080450B4:
adds r2, 0x4
adds r4, 0x1
ldr r0, [r7]
cmp r4, r0
blt _08045098
_080450BE:
adds r1, r5, 0
mov r2, r8
ldr r0, [r2]
cmp r1, r0
blt _08045082
_080450C8:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080450D4: .4byte gUnknown_202EE6C
_080450D8: .4byte gUnknown_80F7C54
_080450DC: .4byte gUnknown_202EE44
thumb_func_end sub_8045064
thumb_func_start sub_80450E0
sub_80450E0:
push {lr}
cmp r0, 0
bne _080450EA
movs r0, 0
b _080450F2
_080450EA:
ldr r0, [r0]
cmp r0, 0
beq _080450F2
movs r0, 0x1
_080450F2:
pop {r1}
bx r1
thumb_func_end sub_80450E0
thumb_func_start sub_80450F8
sub_80450F8:
ldr r0, [r0]
bx lr
thumb_func_end sub_80450F8
thumb_func_start sub_80450FC
sub_80450FC:
adds r0, 0x25
ldrb r0, [r0]
bx lr
thumb_func_end sub_80450FC
thumb_func_start sub_8045104
sub_8045104:
ldr r0, [r0, 0x70]
bx lr
thumb_func_end sub_8045104
thumb_func_start sub_8045108
sub_8045108:
ldr r0, [r0, 0x70]
bx lr
thumb_func_end sub_8045108
thumb_func_start sub_804510C
sub_804510C:
ldr r0, [r0, 0x70]
bx lr
thumb_func_end sub_804510C
thumb_func_start sub_8045110
sub_8045110:
ldr r0, [r0, 0x70]
bx lr
thumb_func_end sub_8045110
thumb_func_start sub_8045114
sub_8045114:
push {lr}
movs r1, 0x4
ldrsh r2, [r0, r1]
movs r3, 0x6
ldrsh r1, [r0, r3]
adds r0, r2, 0
bl sub_804954C
pop {r1}
bx r1
thumb_func_end sub_8045114
thumb_func_start sub_8045128
sub_8045128:
push {lr}
movs r1, 0x4
ldrsh r2, [r0, r1]
movs r3, 0x6
ldrsh r1, [r0, r3]
adds r0, r2, 0
bl sub_8049590
pop {r1}
bx r1
thumb_func_end sub_8045128
thumb_func_start sub_804513C
sub_804513C:
push {r4-r7,lr}
movs r3, 0
ldr r7, _080451FC
ldr r6, _08045200
ldr r4, _08045204
movs r5, 0
_08045148:
ldr r0, [r7]
lsls r2, r3, 2
adds r1, r0, r6
adds r1, r2
adds r0, r4
str r0, [r1]
str r5, [r0]
adds r4, 0x74
adds r3, 0x1
cmp r3, 0x3
ble _08045148
ldr r1, _08045208
movs r2, 0
adds r0, r1, 0x5
_08045164:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _08045164
movs r3, 0
ldr r7, _080451FC
ldr r6, _0804520C
ldr r4, _08045210
movs r5, 0
_08045176:
ldr r0, [r7]
lsls r2, r3, 2
adds r1, r0, r6
adds r1, r2
adds r0, r4
str r0, [r1]
str r5, [r0]
adds r4, 0x74
adds r3, 0x1
cmp r3, 0xF
ble _08045176
ldr r1, _08045214
movs r2, 0
adds r0, r1, 0
adds r0, 0xF
_08045194:
strb r2, [r0]
subs r0, 0x1
cmp r0, r1
bge _08045194
movs r3, 0
ldr r5, _080451FC
ldr r4, _08045218
movs r2, 0
_080451A4:
ldr r0, [r5]
lsls r1, r3, 2
adds r0, r4
adds r0, r1
str r2, [r0]
adds r3, 0x1
cmp r3, 0x13
ble _080451A4
movs r3, 0
ldr r7, _080451FC
ldr r6, _0804521C
ldr r4, _08045220
movs r5, 0
_080451BE:
ldr r0, [r7]
lsls r2, r3, 2
adds r1, r0, r6
adds r1, r2
adds r0, r4
str r0, [r1]
str r5, [r0]
adds r4, 0x74
adds r3, 0x1
cmp r3, 0x3F
ble _080451BE
movs r3, 0
ldr r7, _080451FC
ldr r6, _08045224
ldr r4, _08045228
movs r5, 0
_080451DE:
ldr r0, [r7]
lsls r2, r3, 2
adds r1, r0, r6
adds r1, r2
adds r0, r4
str r0, [r1]
str r5, [r0]
adds r4, 0x74
adds r3, 0x1
cmp r3, 0x3F
ble _080451DE
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080451FC: .4byte gUnknown_203B418
_08045200: .4byte 0x0001357c
_08045204: .4byte 0x0001381c
_08045208: .4byte gUnknown_202EE70
_0804520C: .4byte 0x0001358c
_08045210: .4byte 0x000139ec
_08045214: .4byte gUnknown_202EE76
_08045218: .4byte 0x000135cc
_0804521C: .4byte 0x0001361c
_08045220: .4byte 0x0001412c
_08045224: .4byte 0x0001371c
_08045228: .4byte 0x00015e2c
thumb_func_end sub_804513C
thumb_func_start sub_804522C
sub_804522C:
push {r4-r7,lr}
sub sp, 0x4
ldr r2, _08045274
ldr r0, [r2]
ldr r3, _08045278
adds r1, r0, r3
ldrb r7, [r1]
ldr r1, _0804527C
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _080452AA
movs r6, 0
adds r7, r2, 0
_08045248:
ldr r0, [r7]
lsls r1, r6, 2
ldr r2, _08045280
adds r0, r2
adds r0, r1
ldr r5, [r0]
adds r0, r5, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080452A2
ldr r0, [r7]
ldr r3, _08045284
adds r0, r3
ldr r0, [r0]
cmp r5, r0
bne _08045288
adds r0, r5, 0
bl sub_806C51C
b _080452A2
.align 2, 0
_08045274: .4byte gUnknown_203B418
_08045278: .4byte 0x00018210
_0804527C: .4byte 0x0001820a
_08045280: .4byte 0x000135cc
_08045284: .4byte 0x000181f8
_08045288:
ldr r4, [r5, 0x70]
adds r0, r5, 0
bl sub_804187C
adds r2, r0, 0
adds r0, r4, 0
adds r0, 0x98
ldr r0, [r0]
movs r3, 0x4
ldrsh r1, [r4, r3]
movs r3, 0
bl sub_800F75C
_080452A2:
adds r6, 0x1
cmp r6, 0x13
ble _08045248
b _0804533E
_080452AA:
movs r6, 0
_080452AC:
ldr r0, _08045348
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _0804534C
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080452CC
adds r0, r4, 0
bl sub_806C51C
_080452CC:
adds r6, 0x1
cmp r6, 0x3
ble _080452AC
movs r6, 0
_080452D4:
ldr r5, _08045348
ldr r0, [r5]
lsls r1, r6, 2
ldr r3, _08045350
adds r0, r3
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080452F4
adds r0, r4, 0
bl sub_806C51C
_080452F4:
adds r6, 0x1
cmp r6, 0xF
ble _080452D4
movs r6, 0
ldr r0, [r5]
ldr r1, _08045354
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r6, r0
bge _08045336
adds r4, r5, 0
_0804530C:
ldr r0, [r4]
lsls r1, r6, 2
ldr r3, _08045358
adds r0, r3
adds r0, r1
ldr r0, [r0]
movs r1, 0
str r1, [sp]
adds r1, r7, 0
movs r2, 0x1
movs r3, 0xFF
bl sub_80462AC
adds r6, 0x1
ldr r0, [r4]
ldr r1, _08045354
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r6, r0
blt _0804530C
_08045336:
cmp r7, 0
beq _0804533E
bl sub_807FA9C
_0804533E:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08045348: .4byte gUnknown_203B418
_0804534C: .4byte 0x0001357c
_08045350: .4byte 0x0001358c
_08045354: .4byte 0x00003904
_08045358: .4byte 0x0001361c
thumb_func_end sub_804522C
thumb_func_start sub_804535C
sub_804535C:
push {lr}
adds r2, r0, 0
cmp r1, 0
beq _0804536C
ldr r0, [r1]
str r0, [r2, 0xC]
ldr r0, [r1, 0x4]
b _0804538E
_0804536C:
movs r0, 0x4
ldrsh r1, [r2, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r1, 0xC0
lsls r1, 4
adds r0, r1
str r0, [r2, 0xC]
movs r0, 0x6
ldrsh r1, [r2, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r1, 0x80
lsls r1, 5
adds r0, r1
_0804538E:
str r0, [r2, 0x10]
pop {r0}
bx r0
thumb_func_end sub_804535C
thumb_func_start sub_8045394
sub_8045394:
str r1, [r0, 0xC]
str r2, [r0, 0x10]
bx lr
thumb_func_end sub_8045394
thumb_func_start sub_804539C
sub_804539C:
ldr r3, [r0, 0xC]
adds r3, r1
str r3, [r0, 0xC]
ldr r1, [r0, 0x10]
adds r1, r2
str r1, [r0, 0x10]
bx lr
thumb_func_end sub_804539C
thumb_func_start sub_80453AC
sub_80453AC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
asrs r0, 16
mov r8, r0
movs r0, 0x1
negs r0, r0
mov r9, r0
mov r0, r8
bl sub_808DACC
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
movs r0, 0x6
subs r3, r0, r6
ldr r4, _080453D8
b _080453DE
.align 2, 0
_080453D8: .4byte gUnknown_202EE70
_080453DC:
adds r5, 0x1
_080453DE:
cmp r5, r3
bgt _08045400
movs r2, 0
cmp r2, r6
bge _080453FA
adds r1, r5, r4
b _080453F4
_080453EC:
adds r1, 0x1
adds r2, 0x1
cmp r2, r6
bge _080453FA
_080453F4:
ldrb r0, [r1]
cmp r0, 0
beq _080453EC
_080453FA:
cmp r2, r6
bne _080453DC
mov r9, r5
_08045400:
movs r0, 0x1
negs r0, r0
cmp r9, r0
beq _080454FC
movs r5, 0
ldr r7, _080454DC
_0804540C:
ldr r1, _080454E0
ldr r0, [r1]
lsls r1, r5, 2
ldr r2, _080454E4
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
lsrs r0, 24
mov r10, r0
cmp r0, 0
bne _080454F0
movs r0, 0x1
str r0, [r4]
adds r0, r4, 0
adds r0, 0x24
strb r5, [r0]
ldr r1, _080454E0
ldr r0, [r1]
adds r0, r7
str r0, [r4, 0x70]
mov r2, r8
strh r2, [r0, 0x2]
movs r0, 0
mov r1, r8
bl sub_8069F54
ldr r1, [r4, 0x70]
strh r0, [r1, 0x4]
ldr r0, [r4, 0x70]
movs r5, 0
strb r5, [r0, 0x6]
movs r0, 0
mov r1, r8
bl sub_8069F54
lsls r0, 16
asrs r0, 16
bl sub_80687D0
str r0, [r4, 0x64]
mov r1, r9
lsls r0, r1, 4
adds r0, 0x40
adds r1, r4, 0
adds r1, 0x68
strh r0, [r1]
adds r1, 0x2
movs r0, 0x7
strb r0, [r1]
adds r0, r4, 0
adds r0, 0x6C
movs r2, 0
strb r2, [r0]
adds r1, 0x1
movs r0, 0xFF
strb r0, [r1]
adds r0, r4, 0
adds r0, 0x6D
movs r5, 0x1
strb r5, [r0]
adds r0, 0x2
strb r5, [r0]
mov r0, r10
str r0, [r4, 0x1C]
bl sub_8045ACC
ldr r0, [r4, 0x70]
ldr r1, _080454E8
adds r0, r1
mov r2, r9
strb r2, [r0]
ldr r0, [r4, 0x70]
movs r5, 0xB4
lsls r5, 1
adds r0, r5
strb r6, [r0]
cmp r6, 0
beq _080454C6
ldr r3, _080454EC
movs r2, 0x1
adds r1, r6, 0
_080454B6:
mov r5, r9
adds r0, r5, r3
strb r2, [r0]
movs r0, 0x1
add r9, r0
subs r1, 0x1
cmp r1, 0
bne _080454B6
_080454C6:
ldr r1, _080454E0
ldr r0, [r1]
movs r2, 0xCD
lsls r2, 3
adds r0, r2
ldrh r2, [r0]
adds r1, r2, 0x1
strh r1, [r0]
strh r2, [r4, 0x26]
adds r0, r4, 0
b _080454FE
.align 2, 0
_080454DC: .4byte 0x0000069c
_080454E0: .4byte gUnknown_203B418
_080454E4: .4byte 0x0001357c
_080454E8: .4byte 0x00000167
_080454EC: .4byte gUnknown_202EE70
_080454F0:
movs r0, 0x82
lsls r0, 2
adds r7, r0
adds r5, 0x1
cmp r5, 0x3
ble _0804540C
_080454FC:
movs r0, 0
_080454FE:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80453AC
thumb_func_start sub_804550C
sub_804550C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
lsls r0, 16
asrs r0, 16
mov r8, r0
movs r0, 0x1
negs r0, r0
mov r9, r0
mov r0, r8
bl sub_808DACC
lsls r0, 24
lsrs r7, r0, 24
movs r5, 0
movs r0, 0x10
subs r3, r0, r7
ldr r4, _08045538
b _0804553E
.align 2, 0
_08045538: .4byte gUnknown_202EE76
_0804553C:
adds r5, 0x1
_0804553E:
cmp r5, r3
bgt _08045560
movs r2, 0
cmp r2, r7
bge _0804555A
adds r1, r5, r4
b _08045554
_0804554C:
adds r1, 0x1
adds r2, 0x1
cmp r2, r7
bge _0804555A
_08045554:
ldrb r0, [r1]
cmp r0, 0
beq _0804554C
_0804555A:
cmp r2, r7
bne _0804553C
mov r9, r5
_08045560:
movs r0, 0x1
negs r0, r0
cmp r9, r0
bne _0804556A
b _08045670
_0804556A:
movs r5, 0
movs r1, 0x1
mov r10, r1
ldr r2, _08045650
mov r3, r9
lsls r0, r3, 4
adds r0, 0xA0
str r0, [sp]
_0804557A:
ldr r1, _08045654
ldr r0, [r1]
lsls r1, r5, 2
ldr r3, _08045658
adds r0, r3
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
str r2, [sp, 0x4]
bl sub_80450E0
lsls r0, 24
lsrs r6, r0, 24
ldr r2, [sp, 0x4]
cmp r6, 0
bne _08045664
mov r0, r10
str r0, [r4]
adds r0, r4, 0
adds r0, 0x24
strb r5, [r0]
subs r0, 0x2
strb r6, [r0]
ldr r1, _08045654
ldr r0, [r1]
adds r0, r2
str r0, [r4, 0x70]
mov r2, r8
strh r2, [r0, 0x2]
movs r0, 0
mov r1, r8
bl sub_8069F54
ldr r1, [r4, 0x70]
strh r0, [r1, 0x4]
ldr r0, [r4, 0x70]
mov r3, r10
strb r3, [r0, 0x6]
movs r0, 0
mov r1, r8
bl sub_8069F54
lsls r0, 16
asrs r0, 16
bl sub_80687D0
str r0, [r4, 0x64]
adds r0, r4, 0
adds r0, 0x68
mov r5, sp
ldrh r5, [r5]
strh r5, [r0]
adds r1, r4, 0
adds r1, 0x6A
movs r0, 0x7
strb r0, [r1]
adds r0, r4, 0
adds r0, 0x6C
movs r1, 0
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x6B
movs r0, 0xFF
strb r0, [r1]
adds r0, r4, 0
adds r0, 0x6D
mov r2, r10
strb r2, [r0]
adds r0, 0x2
strb r2, [r0]
str r6, [r4, 0x1C]
ldr r0, [r4, 0x70]
ldr r3, _0804565C
adds r0, r3
mov r5, r9
strb r5, [r0]
ldr r0, [r4, 0x70]
movs r1, 0xB4
lsls r1, 1
adds r0, r1
strb r7, [r0]
cmp r7, 0
beq _08045636
ldr r3, _08045660
movs r2, 0x1
adds r1, r7, 0
_08045626:
mov r5, r9
adds r0, r5, r3
strb r2, [r0]
movs r0, 0x1
add r9, r0
subs r1, 0x1
cmp r1, 0
bne _08045626
_08045636:
bl sub_8045ACC
ldr r1, _08045654
ldr r0, [r1]
movs r2, 0xCD
lsls r2, 3
adds r0, r2
ldrh r2, [r0]
adds r1, r2, 0x1
strh r1, [r0]
strh r2, [r4, 0x26]
adds r0, r4, 0
b _08045672
.align 2, 0
_08045650: .4byte 0x00000ebc
_08045654: .4byte gUnknown_203B418
_08045658: .4byte 0x0001358c
_0804565C: .4byte 0x00000167
_08045660: .4byte gUnknown_202EE76
_08045664:
movs r3, 0x82
lsls r3, 2
adds r2, r3
adds r5, 0x1
cmp r5, 0xF
ble _0804557A
_08045670:
movs r0, 0
_08045672:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_804550C
thumb_func_start sub_8045684
sub_8045684:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r10, r1
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r2, 24
lsrs r2, 24
mov r9, r2
movs r5, 0
ldr r7, _080456E4
ldr r6, _080456E8
_080456A2:
ldr r0, [r7]
lsls r1, r5, 2
ldr r2, _080456EC
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0
bne _080456F0
movs r0, 0x2
str r0, [r4]
ldr r0, [r7]
adds r0, r6
str r0, [r4, 0x70]
mov r2, r8
strb r2, [r0]
ldr r0, [r4, 0x70]
mov r2, r9
strb r2, [r0, 0x1]
str r1, [r4, 0x1C]
adds r0, r4, 0
adds r0, 0x22
strb r1, [r0]
mov r2, r10
ldr r0, [r2]
str r0, [r4, 0x4]
strh r1, [r4, 0x26]
adds r0, r4, 0
b _080456FA
.align 2, 0
_080456E4: .4byte gUnknown_203B418
_080456E8: .4byte 0x00003908
_080456EC: .4byte 0x0001371c
_080456F0:
adds r6, 0x4
adds r5, 0x1
cmp r5, 0x3F
ble _080456A2
movs r0, 0
_080456FA:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8045684
thumb_func_start sub_8045708
sub_8045708:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r8, r0
ldr r1, _08045744
ldr r0, _08045748
ldr r0, [r0]
ldr r2, _0804574C
adds r0, r2
movs r3, 0
ldrsh r0, [r0, r3]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _0804579C
mov r1, r8
movs r2, 0
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
bl sub_8049590
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
cmp r0, 0x2
bne _0804579C
b _080457C4
.align 2, 0
_08045744: .4byte gUnknown_810ACC0
_08045748: .4byte gUnknown_203B418
_0804574C: .4byte 0x00003a0e
_08045750:
movs r0, 0x3
str r0, [r4]
ldr r0, _08045798
adds r1, r6, r0
mov r2, r9
ldr r0, [r2]
adds r0, r1
str r0, [r4, 0x70]
mov r3, r8
ldr r0, [r3]
str r0, [r4, 0x4]
movs r1, 0
ldrsh r0, [r3, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, 0x4
lsls r1, 8
movs r2, 0x2
ldrsh r0, [r3, r2]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r2, 0x4
lsls r2, 8
adds r0, r4, 0
bl sub_8045394
movs r0, 0
strh r7, [r4, 0x26]
adds r1, r4, 0
adds r1, 0x22
strb r0, [r1]
str r7, [r4, 0x1C]
adds r0, r4, 0
b _080457C6
.align 2, 0
_08045798: .4byte 0x00003804
_0804579C:
movs r5, 0
ldr r3, _080457D4
mov r9, r3
_080457A2:
mov r1, r9
ldr r0, [r1]
lsls r6, r5, 2
ldr r2, _080457D8
adds r0, r2
adds r0, r6
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0
beq _08045750
adds r5, 0x1
cmp r5, 0x3F
ble _080457A2
_080457C4:
movs r0, 0
_080457C6:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080457D4: .4byte gUnknown_203B418
_080457D8: .4byte 0x0001361c
thumb_func_end sub_8045708
thumb_func_start sub_80457DC
sub_80457DC:
push {r4-r6,lr}
adds r4, r0, 0
movs r0, 0x5
str r0, [r4]
movs r6, 0
movs r5, 0
strh r5, [r4, 0x4]
strh r5, [r4, 0x6]
adds r0, r4, 0
movs r1, 0
movs r2, 0
bl sub_8045394
strh r5, [r4, 0x26]
adds r4, 0x22
strb r6, [r4]
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80457DC
thumb_func_start sub_8045804
sub_8045804:
push {r4-r6,lr}
adds r4, r0, 0
bl sub_80450F8
cmp r0, 0x1
beq _0804581C
cmp r0, 0x1
bcc _08045880
cmp r0, 0x5
beq _08045880
_08045818:
movs r0, 0x1
b _08045882
_0804581C:
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _08045880
ldr r0, _08045874
ldr r1, [r0]
ldr r0, _08045878
adds r2, r1, r0
ldr r5, [r2, 0x10]
ldr r3, [r4, 0x70]
ldrb r0, [r3, 0x6]
cmp r0, 0
beq _08045818
ldr r6, _0804587C
adds r0, r1, r6
ldrb r0, [r0]
cmp r0, 0
bne _0804584C
adds r0, r3, 0
adds r0, 0xE4
ldrb r0, [r0]
cmp r0, 0x1
beq _08045880
_0804584C:
adds r0, r2, 0
adds r0, 0x23
ldrb r0, [r0]
cmp r0, 0
bne _08045818
adds r0, r2, 0
adds r0, 0x25
ldrb r0, [r0]
cmp r0, 0
bne _08045818
cmp r5, 0
beq _08045880
adds r1, r4, 0x4
adds r0, r2, 0
bl sub_8083294
lsls r0, 24
lsrs r0, 24
b _08045882
.align 2, 0
_08045874: .4byte gUnknown_203B418
_08045878: .4byte 0x000181e8
_0804587C: .4byte 0x0001820f
_08045880:
movs r0, 0
_08045882:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8045804
thumb_func_start sub_8045888
sub_8045888:
push {r4,r5,lr}
adds r4, r0, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _08045988
ldr r1, [r4, 0xC]
cmp r1, 0
bge _0804589C
adds r1, 0xFF
_0804589C:
asrs r1, 8
ldr r0, _080458F0
ldr r2, [r0]
ldr r3, _080458F4
adds r0, r2, r3
movs r5, 0
ldrsh r0, [r0, r5]
subs r3, r1, r0
ldr r0, [r4, 0x10]
cmp r0, 0
bge _080458B4
adds r0, 0xFF
_080458B4:
asrs r0, 8
ldr r5, _080458F8
adds r1, r2, r5
movs r5, 0
ldrsh r1, [r1, r5]
subs r1, r0, r1
movs r0, 0x20
negs r0, r0
cmp r3, r0
blt _08045988
cmp r1, r0
blt _08045988
movs r0, 0x88
lsls r0, 1
cmp r3, r0
bgt _08045988
cmp r1, 0xC0
bgt _08045988
ldr r0, _080458FC
adds r5, r2, r0
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x5
bhi _08045984
lsls r0, 2
ldr r1, _08045900
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080458F0: .4byte gUnknown_203B418
_080458F4: .4byte 0x000181f0
_080458F8: .4byte 0x000181f2
_080458FC: .4byte 0x000181e8
_08045900: .4byte _08045904
.align 2, 0
_08045904:
.4byte _08045988
.4byte _08045934
.4byte _08045964
.4byte _0804591C
.4byte _08045984
.4byte _08045988
_0804591C:
adds r0, r5, 0
adds r0, 0x26
_08045920:
ldrb r0, [r0]
cmp r0, 0
bne _08045984
adds r0, r4, 0x4
bl sub_803F428
lsls r0, 24
_0804592E:
cmp r0, 0
bne _08045984
b _08045988
_08045934:
ldr r1, [r4, 0x70]
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08045984
ldr r0, _0804595C
ldr r0, [r0]
ldr r2, _08045960
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _08045954
adds r0, r1, 0
adds r0, 0xE4
ldrb r0, [r0]
cmp r0, 0x1
beq _08045988
_08045954:
adds r0, r5, 0
adds r0, 0x25
b _08045920
.align 2, 0
_0804595C: .4byte gUnknown_203B418
_08045960: .4byte 0x0001820f
_08045964:
ldr r0, _0804597C
ldr r0, [r0]
ldr r3, _08045980
adds r0, r3
ldrb r0, [r0]
cmp r0, 0
bne _08045984
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
b _0804592E
.align 2, 0
_0804597C: .4byte gUnknown_203B418
_08045980: .4byte 0x0001820f
_08045984:
movs r0, 0x1
b _0804598A
_08045988:
movs r0, 0
_0804598A:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8045888
thumb_func_start sub_8045990
sub_8045990:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080459E8
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080459E8
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _080459E8
ldr r0, [r4]
cmp r0, 0x1
bne _080459EC
ldr r0, [r5]
cmp r0, 0x1
bne _080459DE
adds r0, r5, 0
bl sub_8071884
lsls r0, 24
cmp r0, 0
bne _080459D8
ldr r0, [r4, 0x70]
adds r0, 0xE4
ldrb r0, [r0]
cmp r0, 0x1
beq _080459E8
_080459D8:
ldr r0, [r5, 0x70]
adds r0, 0xE8
b _080459E2
_080459DE:
ldr r0, [r4, 0x70]
adds r0, 0xE4
_080459E2:
ldrb r0, [r0]
cmp r0, 0x1
bne _080459EC
_080459E8:
movs r0, 0
b _080459F8
_080459EC:
adds r0, r5, 0x4
adds r1, r4, 0x4
bl sub_8083294
lsls r0, 24
lsrs r0, 24
_080459F8:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8045990
thumb_func_start sub_8045A00
sub_8045A00:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045A58
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045A58
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _08045A58
ldr r0, [r4]
cmp r0, 0x1
bne _08045A5C
ldr r0, [r5]
cmp r0, 0x1
bne _08045A4E
adds r0, r5, 0
bl sub_8071884
lsls r0, 24
cmp r0, 0
bne _08045A48
ldr r0, [r4, 0x70]
adds r0, 0xE4
ldrb r0, [r0]
cmp r0, 0x1
beq _08045A58
_08045A48:
ldr r0, [r5, 0x70]
adds r0, 0xE8
b _08045A52
_08045A4E:
ldr r0, [r4, 0x70]
adds r0, 0xE4
_08045A52:
ldrb r0, [r0]
cmp r0, 0x1
bne _08045A5C
_08045A58:
movs r0, 0
b _08045A68
_08045A5C:
adds r0, r5, 0x4
adds r1, r4, 0x4
bl sub_808333C
lsls r0, 24
lsrs r0, 24
_08045A68:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8045A00
thumb_func_start sub_8045A70
sub_8045A70:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045AA4
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045AA4
adds r0, r4, 0
adds r0, 0x20
ldrb r0, [r0]
cmp r0, 0
beq _08045AA4
adds r0, r5, 0x4
adds r1, r4, 0x4
bl sub_8083294
lsls r0, 24
lsrs r0, 24
b _08045AA6
_08045AA4:
movs r0, 0
_08045AA6:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8045A70
thumb_func_start sub_8045AAC
sub_8045AAC:
push {lr}
adds r0, 0x4
bl sub_8083294
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8045AAC
thumb_func_start sub_8045ABC
sub_8045ABC:
push {lr}
adds r0, 0x4
bl sub_808333C
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end sub_8045ABC
thumb_func_start sub_8045ACC
sub_8045ACC:
push {r4-r7,lr}
movs r6, 0
movs r5, 0
ldr r7, _08045B50
_08045AD4:
ldr r0, [r7]
lsls r1, r5, 2
ldr r2, _08045B54
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045AFA
ldr r0, [r7]
lsls r1, r6, 2
ldr r2, _08045B58
adds r0, r2
adds r0, r1
str r4, [r0]
adds r6, 0x1
_08045AFA:
adds r5, 0x1
cmp r5, 0x3
ble _08045AD4
movs r5, 0
ldr r7, _08045B50
_08045B04:
ldr r0, [r7]
lsls r1, r5, 2
ldr r2, _08045B5C
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08045B2A
ldr r0, [r7]
lsls r1, r6, 2
ldr r2, _08045B58
adds r0, r2
adds r0, r1
str r4, [r0]
adds r6, 0x1
_08045B2A:
adds r5, 0x1
cmp r5, 0xF
ble _08045B04
cmp r6, 0x13
bgt _08045B4A
ldr r4, _08045B50
ldr r3, _08045B58
movs r2, 0
_08045B3A:
ldr r0, [r4]
lsls r1, r6, 2
adds r0, r3
adds r0, r1
str r2, [r0]
adds r6, 0x1
cmp r6, 0x13
ble _08045B3A
_08045B4A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08045B50: .4byte gUnknown_203B418
_08045B54: .4byte 0x0001357c
_08045B58: .4byte 0x000135cc
_08045B5C: .4byte 0x0001358c
thumb_func_end sub_8045ACC
thumb_func_start sub_8045B60
sub_8045B60:
push {r4,lr}
adds r3, r0, 0
movs r2, 0
ldr r0, _08045B78
ldr r0, [r0]
ldr r4, _08045B7C
adds r1, r0, r4
_08045B6E:
ldr r0, [r1]
cmp r3, r0
bne _08045B80
adds r0, r2, 0
b _08045B8C
.align 2, 0
_08045B78: .4byte gUnknown_203B418
_08045B7C: .4byte 0x0001357c
_08045B80:
adds r1, 0x4
adds r2, 0x1
cmp r2, 0x3
ble _08045B6E
movs r0, 0x1
negs r0, r0
_08045B8C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8045B60
thumb_func_start sub_8045B94
sub_8045B94:
push {r4-r6,lr}
adds r5, r0, 0
adds r4, r1, 0
adds r6, r2, 0
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x2
beq _08045BD2
cmp r0, 0x2
bhi _08045BB0
cmp r0, 0x1
beq _08045BB6
b _08045BE2
_08045BB0:
cmp r0, 0x3
beq _08045BC2
b _08045BE2
_08045BB6:
ldr r1, [r4, 0x70]
adds r0, r5, 0
adds r2, r6, 0
bl sub_80708B4
b _08045BEC
_08045BC2:
adds r0, r4, 0
bl sub_8045110
adds r1, r0, 0
adds r0, r5, 0
bl sub_8045BF8
b _08045BEC
_08045BD2:
adds r0, r4, 0
bl sub_804510C
ldrb r1, [r0]
adds r0, r5, 0
bl sub_807FE84
b _08045BEC
_08045BE2:
ldr r0, _08045BF4
ldr r1, [r0]
adds r0, r5, 0
bl strcpy
_08045BEC:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08045BF4: .4byte gUnknown_80FE6F4
thumb_func_end sub_8045B94
thumb_func_start sub_8045BF8
sub_8045BF8:
push {lr}
ldr r2, _08045C04
bl sub_8090E14
pop {r0}
bx r0
.align 2, 0
_08045C04: .4byte gUnknown_80F699C
thumb_func_end sub_8045BF8
thumb_func_start sub_8045C08
sub_8045C08:
push {lr}
ldr r2, _08045C14
bl sub_8090E14
pop {r0}
bx r0
.align 2, 0
_08045C14: .4byte gUnknown_80F69A8
thumb_func_end sub_8045C08
thumb_func_start sub_8045C18
sub_8045C18:
push {lr}
ldr r2, _08045C24
bl sub_8090E14
pop {r0}
bx r0
.align 2, 0
_08045C24: .4byte gUnknown_80F6990
thumb_func_end sub_8045C18
thumb_func_start sub_8045C28
sub_8045C28:
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r2, 0
lsls r1, 24
lsrs r4, r1, 24
adds r1, r4, 0
movs r2, 0
bl sub_8090A8C
movs r7, 0
adds r0, r4, 0
bl sub_8091544
lsls r0, 24
cmp r0, 0
beq _08045C72
cmp r6, 0
bne _08045C6C
movs r0, 0x64
bl sub_8084100
ldr r1, _08045C64
ldr r1, [r1]
ldr r2, _08045C68
adds r1, r2
ldrb r1, [r1]
cmp r0, r1
bge _08045C72
b _08045C76
.align 2, 0
_08045C64: .4byte gUnknown_203B418
_08045C68: .4byte 0x0001c57e
_08045C6C:
cmp r6, 0x1
bne _08045C72
movs r7, 0x1
_08045C72:
cmp r7, 0
beq _08045C7E
_08045C76:
ldrb r1, [r5]
movs r0, 0x8
orrs r0, r1
strb r0, [r5]
_08045C7E:
adds r0, r4, 0
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bne _08045CA2
ldr r0, _08045CA8
ldr r0, [r0]
ldr r1, _08045CAC
adds r0, r1
ldrb r0, [r0]
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r0, r5, 0
bl sub_8046CE4
_08045CA2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08045CA8: .4byte gUnknown_203B418
_08045CAC: .4byte 0x0001c58b
thumb_func_end sub_8045C28
thumb_func_start sub_8045CB0
sub_8045CB0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
movs r0, 0x38
bl sub_8084100
adds r5, r0, 0
movs r0, 0x20
bl sub_8084100
adds r6, r0, 0
ldr r0, _08045D34
ldr r0, [r0]
ldr r1, _08045D38
adds r0, r1
movs r1, 0
strh r1, [r0]
movs r0, 0
_08045CDA:
adds r6, 0x1
cmp r6, 0x20
bne _08045CE2
movs r6, 0
_08045CE2:
adds r0, 0x1
mov r10, r0
movs r3, 0x2
mov r9, r3
movs r0, 0x37
mov r8, r0
_08045CEE:
adds r5, 0x1
cmp r5, 0x38
bne _08045CF6
movs r5, 0
_08045CF6:
adds r0, r5, 0
adds r1, r6, 0
bl sub_804954C
adds r2, r0, 0
ldrh r0, [r2]
movs r3, 0x80
lsls r3, 2
adds r1, r3, 0
ands r0, r1
cmp r0, 0
bne _08045D92
ldrh r1, [r2, 0x4]
mov r0, r9
ands r0, r1
cmp r0, 0
beq _08045D92
movs r7, 0
lsls r0, r5, 16
lsls r1, r6, 16
lsrs r0, 16
orrs r0, r1
str r0, [sp, 0x4]
ldrh r1, [r2]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08045D3C
movs r7, 0x1
movs r0, 0x1
b _08045D58
.align 2, 0
_08045D34: .4byte gUnknown_203B418
_08045D38: .4byte 0x00003904
_08045D3C:
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _08045D48
movs r0, 0x3
b _08045D58
_08045D48:
movs r0, 0x40
ands r0, r1
lsls r0, 16
lsrs r0, 16
negs r0, r0
asrs r0, 31
mov r1, r9
ands r0, r1
_08045D58:
bl sub_803D73C
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
bl sub_80914E4
lsls r0, 24
cmp r0, 0
bne _08045D6E
movs r7, 0
_08045D6E:
mov r0, sp
adds r1, r4, 0
movs r2, 0
bl sub_8045C28
cmp r7, 0
beq _08045D88
mov r0, sp
ldrb r1, [r0]
mov r0, r9
orrs r0, r1
mov r1, sp
strb r0, [r1]
_08045D88:
add r0, sp, 0x4
mov r1, sp
movs r2, 0x1
bl sub_80460F8
_08045D92:
movs r3, 0x1
negs r3, r3
add r8, r3
mov r0, r8
cmp r0, 0
bge _08045CEE
mov r0, r10
cmp r0, 0x1F
ble _08045CDA
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8045CB0
thumb_func_start sub_8045DB4
sub_8045DB4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xB8
mov r10, r0
lsls r1, 24
lsrs r1, 24
str r1, [sp, 0xA8]
bl sub_8083600
adds r7, r0, 0
ldr r0, [r7, 0x70]
str r0, [sp, 0xAC]
mov r1, r10
movs r2, 0
ldrsh r0, [r1, r2]
movs r3, 0x2
ldrsh r1, [r1, r3]
bl sub_804954C
ldr r4, [r0, 0x14]
cmp r4, 0
bne _08045DE8
b _080460E0
_08045DE8:
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x3
beq _08045DF4
b _080460E0
_08045DF4:
adds r0, r4, 0
bl sub_8045108
adds r5, r0, 0
ldr r0, [sp, 0xAC]
adds r0, 0x48
ldrb r0, [r0]
cmp r0, 0
bne _08045E08
b _0804602E
_08045E08:
adds r0, r7, 0
movs r1, 0x1
bl sub_8071518
lsls r0, 24
cmp r0, 0
beq _08045E40
ldr r0, [sp, 0xA8]
cmp r0, 0
bne _08045E1E
b _080460E0
_08045E1E:
ldr r0, _08045E34
adds r1, r5, 0
bl sub_8045BF8
ldr r0, _08045E38
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
ldr r0, _08045E3C
b _08046048
.align 2, 0
_08045E34: .4byte gUnknown_202DE58
_08045E38: .4byte gUnknown_202DF98
_08045E3C: .4byte gUnknown_80F8F88
_08045E40:
ldrb r0, [r5, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bne _08045E7C
movs r0, 0xA6
lsls r0, 1
bl sub_8083E38
adds r0, r5, 0
bl sub_80915D4
bl sub_80913A0
ldr r0, _08045E74
adds r1, r5, 0
bl sub_8045BF8
mov r0, r10
movs r1, 0x1
bl sub_80461C8
ldr r0, _08045E78
b _08045FD0
.align 2, 0
_08045E74: .4byte gUnknown_202DE58
_08045E78: .4byte gUnknown_80F8FFC
_08045E7C:
ldr r0, _08045EA8
ldr r0, [r0]
ldr r1, _08045EAC
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08045EB4
movs r4, 0
ldr r0, _08045EB0
mov r2, sp
ldr r0, [r0]
add r1, sp, 0x54
_08045E94:
stm r1!, {r0}
stm r2!, {r4}
adds r0, 0x4
adds r4, 0x1
cmp r4, 0x13
ble _08045E94
movs r2, 0x14
mov r8, r2
b _08045EC4
.align 2, 0
_08045EA8: .4byte gUnknown_203B418
_08045EAC: .4byte 0x0000065b
_08045EB0: .4byte gUnknown_203B460
_08045EB4:
ldr r0, [sp, 0xAC]
adds r0, 0x60
str r0, [sp, 0x54]
movs r0, 0x1
negs r0, r0
str r0, [sp]
movs r3, 0x1
mov r8, r3
_08045EC4:
ldrb r0, [r5, 0x2]
add r6, sp, 0xB0
strb r0, [r6]
cmp r0, 0x8
bls _08045ED0
b _08046000
_08045ED0:
ldrb r1, [r5]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08045EDC
b _08046000
_08045EDC:
movs r1, 0x1
negs r1, r1
mov r12, r1
mov r2, r12
str r2, [sp, 0xB4]
movs r4, 0
cmp r4, r8
bge _08045F2C
ldr r3, _08045FDC
mov r9, r3
add r3, sp, 0x54
_08045EF2:
ldr r2, [r3]
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08045F24
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08045F24
ldr r1, [r5]
mov r6, r9
ands r1, r6
ldr r0, [r2]
ands r0, r6
cmp r1, r0
bne _08045F24
ldrb r0, [r2, 0x1]
cmp r0, 0x63
beq _08045F24
ldr r1, [sp, 0xB4]
cmp r1, r0
bge _08045F24
str r0, [sp, 0xB4]
mov r12, r4
_08045F24:
adds r3, 0x4
adds r4, 0x1
cmp r4, r8
blt _08045EF2
_08045F2C:
movs r0, 0x1
negs r0, r0
cmp r12, r0
bne _08045F80
mov r2, r12
str r2, [sp, 0xB4]
movs r4, 0
cmp r4, r8
bge _08045F78
add r3, sp, 0xB0
ldrb r3, [r3]
mov r9, r3
add r3, sp, 0x54
_08045F46:
ldr r2, [r3]
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08045F70
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _08045F70
ldrb r6, [r2, 0x2]
cmp r9, r6
bne _08045F70
ldrb r0, [r2, 0x1]
cmp r0, 0x63
beq _08045F70
ldr r1, [sp, 0xB4]
cmp r1, r0
bge _08045F70
str r0, [sp, 0xB4]
mov r12, r4
_08045F70:
adds r3, 0x4
adds r4, 0x1
cmp r4, r8
blt _08045F46
_08045F78:
movs r0, 0x1
negs r0, r0
cmp r12, r0
beq _08046000
_08045F80:
add r0, sp, 0x54
mov r2, r12
lsls r4, r2, 2
adds r3, r0, r4
ldr r2, [r3]
ldrb r1, [r2, 0x1]
ldrb r0, [r5, 0x1]
adds r1, r0
cmp r1, 0x62
ble _08045F96
movs r1, 0x63
_08045F96:
strb r1, [r2, 0x1]
ldrb r1, [r5]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08045FAC
ldr r0, [r3]
ldrb r1, [r0]
movs r2, 0x8
orrs r1, r2
strb r1, [r0]
_08045FAC:
ldr r0, _08045FE0
adds r1, r5, 0
bl sub_8045BF8
mov r0, r10
movs r1, 0x1
bl sub_80461C8
movs r0, 0xA5
lsls r0, 1
bl sub_8083E38
mov r3, sp
adds r0, r3, r4
ldr r0, [r0]
cmp r0, 0
bge _08045FE8
ldr r0, _08045FE4
_08045FD0:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
b _08045FF2
.align 2, 0
_08045FDC: .4byte 0x00ff0008
_08045FE0: .4byte gUnknown_202DE58
_08045FE4: .4byte gUnknown_80F8FC4
_08045FE8:
ldr r0, _08045FFC
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
_08045FF2:
ldrb r0, [r5, 0x2]
bl sub_8052EC0
b _080460E0
.align 2, 0
_08045FFC: .4byte gUnknown_80F8FF8
_08046000:
movs r4, 0
cmp r4, r8
bge _0804602A
ldr r0, [sp, 0x54]
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804602A
movs r3, 0x1
add r2, sp, 0x54
_08046016:
adds r2, 0x4
adds r4, 0x1
cmp r4, r8
bge _0804602A
ldr r0, [r2]
ldrb r1, [r0]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _08046016
_0804602A:
cmp r4, r8
bne _08046060
_0804602E:
ldr r6, [sp, 0xA8]
cmp r6, 0
beq _080460E0
ldr r0, _08046054
adds r1, r5, 0
bl sub_8045BF8
ldr r0, _08046058
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
ldr r0, _0804605C
_08046048:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
b _080460E0
.align 2, 0
_08046054: .4byte gUnknown_202DE58
_08046058: .4byte gUnknown_202DF98
_0804605C: .4byte gUnknown_80F8F54
_08046060:
movs r0, 0xA5
lsls r0, 1
bl sub_8083E38
lsls r0, r4, 2
add r0, sp
ldr r0, [r0]
cmp r0, 0
bge _08046094
ldr r0, [r5]
ldr r1, [sp, 0xAC]
str r0, [r1, 0x60]
ldr r0, _0804608C
adds r1, r5, 0
bl sub_8045BF8
mov r0, r10
movs r1, 0x1
bl sub_80461C8
ldr r0, _08046090
b _080460AC
.align 2, 0
_0804608C: .4byte gUnknown_202DE58
_08046090: .4byte gUnknown_80F8FC4
_08046094:
adds r0, r5, 0
bl sub_8091290
lsls r0, 24
cmp r0, 0
beq _080460C0
ldr r0, _080460B8
adds r1, r7, 0
movs r2, 0
bl sub_8045B94
ldr r0, _080460BC
_080460AC:
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
b _080460DA
.align 2, 0
_080460B8: .4byte gUnknown_202DF98
_080460BC: .4byte gUnknown_80F8FAC
_080460C0:
ldr r0, _080460F0
adds r1, r5, 0
bl sub_8045BF8
mov r0, r10
movs r1, 0x1
bl sub_80461C8
ldr r0, _080460F4
ldr r1, [r0]
adds r0, r7, 0
bl sub_80522A8
_080460DA:
ldrb r0, [r5, 0x2]
bl sub_8052EC0
_080460E0:
add sp, 0xB8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080460F0: .4byte gUnknown_202DE58
_080460F4: .4byte gUnknown_80F8FF8
thumb_func_end sub_8045DB4
thumb_func_start sub_80460F8
sub_80460F8:
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
lsls r2, 24
lsrs r7, r2, 24
bl sub_8045708
adds r4, r0, 0
cmp r4, 0
bne _08046110
movs r0, 0
b _080461B6
_08046110:
ldr r1, [r4, 0x70]
ldr r0, [r6]
str r0, [r1]
ldr r2, [r4, 0x70]
ldrb r1, [r2]
movs r0, 0xEF
ands r0, r1
strb r0, [r2]
adds r1, r4, 0
adds r1, 0x20
movs r0, 0x1
strb r0, [r1]
movs r1, 0
ldrsh r0, [r5, r1]
movs r2, 0x2
ldrsh r1, [r5, r2]
bl sub_8049590
str r4, [r0, 0x14]
ldrh r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _08046186
ldrb r0, [r6, 0x2]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
beq _08046186
ldrb r1, [r6]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08046170
cmp r7, 0
beq _08046186
adds r0, r6, 0
bl sub_8090C7C
ldr r1, _08046168
ldr r2, [r1]
ldr r1, _0804616C
b _0804617E
.align 2, 0
_08046168: .4byte gUnknown_203B418
_0804616C: .4byte 0x0000068c
_08046170:
adds r0, r6, 0
bl sub_8090CCC
ldr r1, _080461BC
ldr r2, [r1]
movs r1, 0xD2
lsls r1, 3
_0804617E:
adds r2, r1
ldr r1, [r2]
adds r1, r0
str r1, [r2]
_08046186:
movs r6, 0
movs r4, 0
_0804618A:
ldr r5, _080461BC
ldr r0, [r5]
lsls r1, r4, 2
ldr r2, _080461C0
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl sub_80450E0
lsls r0, 24
adds r1, r4, 0x1
cmp r0, 0
beq _080461A6
adds r6, r1, 0
_080461A6:
adds r4, r1, 0
cmp r4, 0x3F
ble _0804618A
ldr r0, [r5]
ldr r1, _080461C4
adds r0, r1
strh r6, [r0]
movs r0, 0x1
_080461B6:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080461BC: .4byte gUnknown_203B418
_080461C0: .4byte 0x0001361c
_080461C4: .4byte 0x00003904
thumb_func_end sub_80460F8
thumb_func_start sub_80461C8
sub_80461C8:
push {r4-r7,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r7, r1, 24
movs r1, 0
ldrsh r0, [r2, r1]
movs r3, 0x2
ldrsh r1, [r2, r3]
bl sub_8049590
adds r6, r0, 0
ldr r5, [r6, 0x14]
cmp r5, 0
beq _080461EE
adds r0, r5, 0
bl sub_80450F8
cmp r0, 0x3
beq _080461F2
_080461EE:
movs r0, 0
b _08046284
_080461F2:
adds r0, r5, 0
bl sub_8045108
adds r4, r0, 0
ldrh r1, [r6]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _0804624E
ldrb r0, [r4, 0x2]
bl sub_80914E4
lsls r0, 24
cmp r0, 0
beq _0804624E
ldrb r1, [r4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08046238
cmp r7, 0
beq _0804624E
adds r0, r4, 0
bl sub_8090C7C
ldr r1, _08046230
ldr r2, [r1]
ldr r1, _08046234
adds r2, r1
b _08046248
.align 2, 0
_08046230: .4byte gUnknown_203B418
_08046234: .4byte 0x0000068c
_08046238:
adds r0, r4, 0
bl sub_8090CCC
ldr r1, _0804628C
ldr r2, [r1]
movs r3, 0xD2
lsls r3, 3
adds r2, r3
_08046248:
ldr r1, [r2]
subs r1, r0
str r1, [r2]
_0804624E:
movs r0, 0
str r0, [r6, 0x14]
str r0, [r5]
movs r6, 0
movs r4, 0
_08046258:
ldr r5, _0804628C
ldr r0, [r5]
lsls r1, r4, 2
ldr r2, _08046290
adds r0, r2
adds r0, r1
ldr r0, [r0]
bl sub_80450E0
lsls r0, 24
adds r1, r4, 0x1
cmp r0, 0
beq _08046274
adds r6, r1, 0
_08046274:
adds r4, r1, 0
cmp r4, 0x3F
ble _08046258
ldr r0, [r5]
ldr r3, _08046294
adds r0, r3
strh r6, [r0]
movs r0, 0x1
_08046284:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_0804628C: .4byte gUnknown_203B418
_08046290: .4byte 0x0001361c
_08046294: .4byte 0x00003904
thumb_func_end sub_80461C8
thumb_func_start sub_8046298
sub_8046298:
ldrb r0, [r0, 0x2]
ldr r1, _080462A8
ldr r1, [r1]
lsls r0, 5
adds r0, r1
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
_080462A8: .4byte gItemParametersFile + 4
thumb_func_end sub_8046298
thumb_func_start sub_80462AC
sub_80462AC:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r4, r0, 0
ldr r0, [sp, 0x28]
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r2, 24
lsrs r5, r2, 24
lsls r3, 24
lsrs r3, 24
mov r9, r3
lsls r0, 24
lsrs r0, 24
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
bne _080462E4
b _08046498
_080462E4:
cmp r5, 0
beq _08046316
movs r1, 0x4
ldrsh r0, [r4, r1]
movs r2, 0x6
ldrsh r1, [r4, r2]
bl sub_804954C
ldrh r0, [r0]
movs r1, 0x3
ands r1, r0
cmp r1, 0
bne _08046300
b _08046498
_08046300:
cmp r1, 0x2
bne _08046308
movs r3, 0x1
str r3, [sp, 0x4]
_08046308:
adds r0, r4, 0
bl sub_8045888
lsls r0, 24
cmp r0, 0
bne _08046316
b _08046498
_08046316:
ldr r1, [r4, 0xC]
cmp r1, 0
bge _0804631E
adds r1, 0xFF
_0804631E:
asrs r1, 8
ldr r0, _080463A4
ldr r2, [r0]
ldr r5, _080463A8
adds r0, r2, r5
movs r3, 0
ldrsh r0, [r0, r3]
subs r6, r1, r0
ldr r3, [r4, 0x10]
ldr r0, [r4, 0x1C]
subs r1, r3, r0
cmp r1, 0
bge _0804633A
adds r1, 0xFF
_0804633A:
asrs r1, 8
ldr r5, _080463AC
adds r0, r2, r5
movs r5, 0
ldrsh r2, [r0, r5]
subs r1, r2
mov r8, r1
adds r0, r3, 0
cmp r0, 0
bge _08046350
adds r0, 0xFF
_08046350:
asrs r0, 8
subs r0, r2
adds r7, r0, 0
adds r7, 0x8
lsrs r0, r7, 31
adds r0, r7, r0
asrs r7, r0, 1
movs r0, 0x20
negs r0, r0
cmp r6, r0
bge _08046368
b _08046498
_08046368:
cmp r8, r0
bge _0804636E
b _08046498
_0804636E:
movs r0, 0x88
lsls r0, 1
cmp r6, r0
ble _08046378
b _08046498
_08046378:
mov r0, r8
cmp r0, 0xC0
ble _08046380
b _08046498
_08046380:
ldr r5, _080463B0
ldrh r1, [r5, 0x2]
ldr r0, _080463B4
ands r0, r1
strh r0, [r5, 0x2]
mov r1, r10
cmp r1, 0
beq _080463BC
movs r2, 0x17
mov r10, r2
movs r2, 0xA0
lsls r2, 8
ldrh r1, [r5, 0x4]
ldr r0, _080463B8
ands r0, r1
orrs r0, r2
strh r0, [r5, 0x4]
b _08046408
.align 2, 0
_080463A4: .4byte gUnknown_203B418
_080463A8: .4byte 0x000181f0
_080463AC: .4byte 0x000181f2
_080463B0: .4byte gUnknown_202EDC0
_080463B4: .4byte 0x0000c1ff
_080463B8: .4byte 0x00000fff
_080463BC:
ldr r0, [r4, 0x70]
bl sub_8046298
mov r10, r0
mov r3, r9
cmp r3, 0xFF
beq _080463EE
cmp r0, 0
bne _080463EE
ldr r0, _08046478
add r0, r9
ldrb r0, [r0]
mov r10, r0
ldr r0, _0804647C
add r0, r9
ldrb r1, [r0]
lsls r1, 3
movs r0, 0x1F
ands r1, r0
lsls r1, 9
ldrh r2, [r5, 0x2]
ldr r0, _08046480
ands r0, r2
orrs r0, r1
strh r0, [r5, 0x2]
_080463EE:
ldr r0, [r4, 0x70]
ldrb r0, [r0, 0x2]
bl sub_8090D58
movs r1, 0xF
ands r0, r1
lsls r0, 12
ldr r3, _08046484
ldrh r2, [r3, 0x4]
ldr r1, _08046488
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x4]
_08046408:
ldr r1, _08046488
mov r5, r8
ands r1, r5
lsls r1, 4
ldr r4, _08046484
ldrh r2, [r4, 0x6]
movs r0, 0xF
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x6]
ldr r0, _0804648C
ands r6, r0
ldrh r1, [r4, 0x2]
movs r0, 0xFE
lsls r0, 8
ands r0, r1
orrs r0, r6
strh r0, [r4, 0x2]
ldr r0, [sp, 0x4]
lsls r3, r0, 10
ldrh r2, [r4]
ldr r1, _08046490
adds r0, r1, 0
ands r0, r2
orrs r0, r3
strh r0, [r4]
movs r2, 0xC0
lsls r2, 4
ldrh r0, [r4, 0x4]
ands r1, r0
orrs r1, r2
mov r2, r10
lsls r0, r2, 2
movs r3, 0xD0
lsls r3, 1
adds r0, r3
ldr r2, _08046494
ands r0, r2
movs r2, 0xFC
lsls r2, 8
ands r1, r2
orrs r1, r0
strh r1, [r4, 0x4]
ldr r5, [sp]
cmp r5, 0
bne _08046466
movs r7, 0x1
_08046466:
adds r0, r4, 0
adds r1, r7, 0
movs r2, 0
movs r3, 0
bl AddSprite
movs r0, 0x1
b _0804649A
.align 2, 0
_08046478: .4byte gUnknown_203B420
_0804647C: .4byte gUnknown_203B428
_08046480: .4byte 0x0000c1ff
_08046484: .4byte gUnknown_202EDC0
_08046488: .4byte 0x00000fff
_0804648C: .4byte 0x000001ff
_08046490: .4byte 0x0000f3ff
_08046494: .4byte 0x000003ff
_08046498:
movs r0, 0
_0804649A:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80462AC
thumb_func_start sub_80464AC
sub_80464AC:
push {r4,lr}
ldr r4, _080464C4
ldrb r0, [r0, 0x2]
bl sub_8090D6C
lsls r0, 3
adds r0, r4
ldr r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080464C4: .4byte gUnknown_80F7B14
thumb_func_end sub_80464AC
thumb_func_start sub_80464C8
sub_80464C8:
push {r4-r6,lr}
sub sp, 0x78
adds r6, r0, 0
adds r3, r1, 0
adds r5, r2, 0
movs r0, 0x3
str r0, [sp, 0x4]
add r0, sp, 0x28
movs r4, 0
strb r4, [r0]
add r1, sp, 0x24
movs r0, 0x1
strb r0, [r1]
mov r0, sp
adds r0, 0x26
strb r4, [r0]
str r5, [sp, 0x74]
ldr r0, [r3]
str r0, [sp, 0x8]
movs r1, 0
ldrsh r0, [r3, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, 0x4
lsls r1, 8
movs r2, 0x2
ldrsh r0, [r3, r2]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r2, 0x4
lsls r2, 8
add r0, sp, 0x4
bl sub_8045394
add r0, sp, 0x4
strh r4, [r0, 0x26]
str r4, [sp]
adds r0, r6, 0
add r1, sp, 0x4
adds r2, r5, 0
movs r3, 0x1
bl sub_804652C
add sp, 0x78
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80464C8
thumb_func_start sub_804652C
sub_804652C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x10
mov r10, r0
adds r5, r1, 0
mov r9, r2
lsls r3, 24
lsrs r6, r3, 24
movs r1, 0x4
ldrsh r0, [r5, r1]
movs r2, 0x6
ldrsh r1, [r5, r2]
bl sub_804954C
adds r4, r0, 0
ldr r0, [r4, 0x14]
movs r3, 0
str r3, [sp, 0xC]
cmp r0, 0
beq _0804658C
bl sub_80450F8
cmp r0, 0x2
bne _0804658C
adds r4, r5, 0x4
adds r0, r5, 0
adds r1, r4, 0
bl sub_8046734
adds r0, r4, 0
movs r1, 0x1
bl sub_807FE44
ldr r0, _080465A4
ldr r1, [r0]
mov r0, r10
bl sub_80522A8
mov r0, r9
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _0804658C
b _0804671E
_0804658C:
ldrh r1, [r5, 0x6]
lsls r1, 16
ldrh r0, [r5, 0x4]
orrs r0, r1
str r0, [sp]
mov r8, r0
movs r7, 0x1
cmp r6, 0
beq _08046632
movs r7, 0
b _08046632
.align 2, 0
_080465A4: .4byte gUnknown_80FED30
_080465A8:
lsls r3, r7, 2
adds r3, r0
ldrh r0, [r3]
ldrh r1, [r5, 0x4]
adds r0, r1
lsls r0, 16
lsrs r0, 16
ldr r1, _08046628
ldr r2, [sp]
ands r2, r1
orrs r2, r0
str r2, [sp]
ldrh r0, [r3, 0x2]
ldrh r3, [r5, 0x6]
adds r0, r3
lsls r0, 16
ldr r1, _0804662C
ands r1, r2
orrs r1, r0
str r1, [sp]
mov r0, sp
movs r2, 0
ldrsh r0, [r0, r2]
asrs r1, 16
bl sub_804954C
adds r4, r0, 0
ldrh r1, [r4]
movs r6, 0x3
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08046630
movs r0, 0x80
lsls r0, 2
ands r0, r1
cmp r0, 0
bne _08046630
ldr r0, [r4, 0x14]
cmp r0, 0
bne _08046630
adds r0, r5, 0
mov r1, sp
bl sub_8046734
ldr r3, [sp]
mov r8, r3
ldrh r1, [r4]
adds r0, r6, 0
ands r0, r1
cmp r0, 0x3
beq _08046620
mov r0, sp
mov r1, r9
movs r2, 0x1
bl sub_80460F8
lsls r0, 24
cmp r0, 0
beq _08046644
_08046620:
movs r0, 0x1
str r0, [sp, 0xC]
b _08046644
.align 2, 0
_08046628: .4byte 0xffff0000
_0804662C: .4byte 0x0000ffff
_08046630:
adds r7, 0x1
_08046632:
ldr r0, _08046688
lsls r1, r7, 2
adds r1, r0
movs r2, 0
ldrsh r1, [r1, r2]
cmp r1, 0x63
bne _080465A8
movs r3, 0
str r3, [sp, 0xC]
_08046644:
ldr r0, _0804668C
mov r1, r9
bl sub_8045BF8
ldr r0, [sp, 0xC]
cmp r0, 0
beq _080466C8
mov r0, sp
movs r1, 0
ldrsh r0, [r0, r1]
mov r4, sp
movs r2, 0x2
ldrsh r1, [r4, r2]
bl sub_80402AC
mov r0, sp
movs r3, 0
ldrsh r0, [r0, r3]
movs r2, 0x2
ldrsh r1, [r4, r2]
bl sub_804954C
ldrh r0, [r0]
movs r1, 0x3
ands r1, r0
adds r0, r1, 0
cmp r1, 0x1
beq _0804669A
cmp r1, 0x1
bgt _08046690
cmp r1, 0
beq _080466AC
b _0804671E
.align 2, 0
_08046688: .4byte gUnknown_80F4468
_0804668C: .4byte gUnknown_202DE58
_08046690:
cmp r0, 0x2
beq _080466A4
cmp r0, 0x3
beq _080466B4
b _0804671E
_0804669A:
ldr r0, _080466A0
b _080466B6
.align 2, 0
_080466A0: .4byte gUnknown_80F93E8
_080466A4:
ldr r0, _080466A8
b _080466B6
.align 2, 0
_080466A8: .4byte gUnknown_80F9408
_080466AC:
ldr r0, _080466B0
b _080466B6
.align 2, 0
_080466B0: .4byte gUnknown_80F9424
_080466B4:
ldr r0, _080466C4
_080466B6:
ldr r2, [r0]
mov r0, r10
mov r1, sp
bl sub_8052364
b _0804671E
.align 2, 0
_080466C4: .4byte gUnknown_80F949C
_080466C8:
mov r3, r8
lsls r1, r3, 16
asrs r1, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r1, 0xC0
lsls r1, 4
adds r0, r1
str r0, [sp, 0x4]
asrs r1, r3, 16
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
movs r2, 0xC0
lsls r2, 4
adds r0, r2
add r2, sp, 0x4
str r0, [r2, 0x4]
ldr r3, [sp, 0x30]
cmp r3, 0
beq _0804670C
movs r1, 0
ldrsh r0, [r3, r1]
lsls r0, 8
ldr r1, [sp, 0x4]
adds r0, r1
str r0, [sp, 0x4]
movs r1, 0x2
ldrsh r0, [r3, r1]
lsls r0, 8
ldr r1, [r2, 0x4]
adds r0, r1
str r0, [r2, 0x4]
_0804670C:
adds r0, r2, 0
bl sub_804219C
ldr r0, _08046730
ldr r2, [r0]
mov r0, r10
mov r1, sp
bl sub_8052364
_0804671E:
add sp, 0x10
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08046730: .4byte gUnknown_80F943C
thumb_func_end sub_804652C
thumb_func_start sub_8046734
sub_8046734:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
mov r8, r0
ldr r0, _08046858
ldr r0, [r0]
ldr r2, _0804685C
adds r0, r2
ldrb r0, [r0]
str r0, [sp, 0xC]
movs r0, 0
ldrsh r2, [r1, r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r0, 0x4
lsls r4, r0, 8
movs r2, 0x2
ldrsh r1, [r1, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, 0x4
lsls r5, r0, 8
mov r1, r8
ldr r0, [r1, 0xC]
subs r0, r4
cmp r0, 0
bge _08046776
negs r0, r0
_08046776:
mov r2, r8
ldr r2, [r2, 0x10]
mov r9, r2
cmp r0, 0xB
bgt _0804678C
subs r0, r2, r5
cmp r0, 0
bge _08046788
negs r0, r0
_08046788:
cmp r0, 0xB
ble _08046822
_0804678C:
movs r0, 0
mov r10, r0
movs r1, 0
str r1, [sp, 0x10]
mov r2, r8
ldr r0, [r2, 0xC]
str r0, [sp, 0x4]
mov r1, r9
str r1, [sp, 0x8]
subs r0, r4, r0
movs r1, 0x18
bl __divsi3
adds r6, r0, 0
mov r2, r9
subs r0, r5, r2
movs r1, 0x18
bl __divsi3
adds r7, r0, 0
movs r0, 0
mov r9, r0
mov r1, sp
adds r1, 0x4
str r1, [sp, 0x14]
_080467BE:
ldr r0, [sp, 0x4]
adds r0, r6
str r0, [sp, 0x4]
ldr r2, [sp, 0x14]
ldr r0, [r2, 0x4]
adds r0, r7
str r0, [r2, 0x4]
ldr r0, [sp, 0x10]
bl sub_8009C7C
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
mov r0, r8
str r1, [r0, 0x1C]
add r1, sp, 0x4
bl sub_804535C
mov r1, r10
lsls r3, r1, 24
lsrs r3, 24
movs r0, 0
str r0, [sp]
mov r0, r8
ldr r1, [sp, 0xC]
movs r2, 0
bl sub_80462AC
movs r0, 0x13
bl sub_803E46C
ldr r2, [sp, 0x10]
adds r2, 0x55
str r2, [sp, 0x10]
movs r0, 0x3
mov r1, r9
ands r0, r1
cmp r0, 0
bne _08046810
movs r2, 0x1
add r10, r2
_08046810:
movs r0, 0x7
mov r1, r10
ands r1, r0
mov r10, r1
movs r2, 0x1
add r9, r2
mov r0, r9
cmp r0, 0x17
ble _080467BE
_08046822:
mov r0, r8
adds r1, r4, 0
adds r2, r5, 0
bl sub_8045394
movs r0, 0
mov r1, r8
str r0, [r1, 0x1C]
str r0, [sp]
mov r0, r8
ldr r1, [sp, 0xC]
movs r2, 0x1
movs r3, 0xFF
bl sub_80462AC
movs r0, 0x13
bl sub_803E46C
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08046858: .4byte gUnknown_203B418
_0804685C: .4byte 0x00018210
thumb_func_end sub_8046734
thumb_func_start sub_8046860
sub_8046860:
push {r4,r5,lr}
sub sp, 0x4
adds r4, r1, 0
adds r5, r2, 0
str r3, [sp]
adds r2, r4, 0
adds r3, r5, 0
bl sub_804687C
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8046860
thumb_func_start sub_804687C
sub_804687C:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _08046970
add sp, r4
ldr r5, _08046974
add r5, sp
str r0, [r5]
movs r0, 0xA5
lsls r0, 3
add r0, sp
str r1, [r0]
mov r8, r2
ldr r1, _08046978
add r1, sp
str r3, [r1]
movs r1, 0
movs r7, 0x1D
ldr r0, _0804697C
add r0, sp
_080468A8:
strb r1, [r0]
subs r0, 0x1
subs r7, 0x1
cmp r7, 0
bge _080468A8
movs r7, 0
movs r2, 0xAD
lsls r2, 3
add r2, sp
ldr r2, [r2]
cmp r7, r2
blt _080468C2
b _080469DE
_080468C2:
ldr r3, _08046980
mov r9, r3
ldr r5, _08046984
movs r0, 0
ldrsh r5, [r5, r0]
ldr r0, _08046988
add r0, sp
str r5, [r0]
_080468D2:
mov r1, r8
ldrh r0, [r1]
ldr r1, _0804698C
ands r4, r1
orrs r4, r0
mov r2, r8
ldrh r0, [r2, 0x2]
lsls r0, 16
mov r3, r9
ands r4, r3
orrs r4, r0
movs r5, 0
adds r0, r7, 0x1
mov r10, r0
ldr r1, _08046984
ldr r2, _08046988
add r2, sp
ldr r2, [r2]
cmp r2, 0x63
beq _080469B0
ldr r3, _08046990
add r3, sp
ldr r0, _08046994
add r0, sp
str r3, [r0]
_08046904:
ldr r0, _08046998
add r0, sp
adds r6, r0, r5
ldrb r0, [r6]
cmp r0, 0
bne _0804699C
lsls r2, r5, 2
adds r2, r1
ldrh r0, [r2]
mov r1, r8
ldrh r1, [r1]
adds r0, r1
lsls r0, 16
lsrs r0, 16
ldr r1, _0804698C
ands r4, r1
orrs r4, r0
ldrh r0, [r2, 0x2]
mov r2, r8
ldrh r2, [r2, 0x2]
adds r0, r2
lsls r0, 16
mov r3, r9
ands r4, r3
orrs r4, r0
lsls r0, r4, 16
asrs r0, 16
asrs r1, r4, 16
bl sub_804954C
adds r2, r0, 0
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0
beq _0804699C
movs r3, 0x80
lsls r3, 2
adds r0, r3, 0
ands r0, r1
cmp r0, 0
bne _0804699C
ldr r0, [r2, 0x14]
cmp r0, 0
bne _0804699C
lsls r0, r7, 2
ldr r5, _08046994
add r5, sp
ldr r5, [r5]
adds r0, r5, r0
str r4, [r0]
movs r0, 0x1
strb r0, [r6]
b _080469CE
.align 2, 0
_08046970: .4byte 0xfffffab8
_08046974: .4byte 0x00000524
_08046978: .4byte 0x0000052c
_0804697C: .4byte 0x00000521
_08046980: .4byte 0x0000ffff
_08046984: .4byte gUnknown_80F4468
_08046988: .4byte 0x00000534
_0804698C: .4byte 0xffff0000
_08046990: .4byte 0x0000048c
_08046994: .4byte 0x00000544
_08046998: .4byte 0x00000504
_0804699C:
adds r5, 0x1
cmp r5, 0x1D
bgt _080469B0
lsls r0, r5, 2
ldr r1, _08046A18
adds r0, r1
movs r2, 0
ldrsh r0, [r0, r2]
cmp r0, 0x63
bne _08046904
_080469B0:
movs r3, 0
cmp r3, 0
bne _080469CE
ldr r1, _08046A1C
add r1, sp
lsls r0, r7, 2
adds r1, r0
ldrh r2, [r1]
mov r0, r9
orrs r0, r2
strh r0, [r1]
ldrh r2, [r1, 0x2]
mov r0, r9
orrs r0, r2
strh r0, [r1, 0x2]
_080469CE:
mov r7, r10
movs r5, 0xAD
lsls r5, 3
add r5, sp
ldr r5, [r5]
cmp r7, r5
bge _080469DE
b _080468D2
_080469DE:
movs r1, 0
mov r9, r1
movs r7, 0
movs r0, 0xAD
lsls r0, 3
add r0, sp
ldr r0, [r0]
cmp r7, r0
blt _080469F2
b _08046B0A
_080469F2:
movs r2, 0
mov r8, r2
_080469F6:
ldr r0, _08046A1C
add r0, sp
lsls r2, r7, 2
adds r3, r0, r2
movs r4, 0
ldrsh r0, [r3, r4]
cmp r0, 0
bge _08046A20
movs r0, 0x74
muls r0, r7
add r0, sp
adds r0, 0x4
mov r5, r8
str r5, [r0]
movs r0, 0x1
mov r9, r0
b _08046AFA
.align 2, 0
_08046A18: .4byte gUnknown_80F4468
_08046A1C: .4byte 0x0000048c
_08046A20:
movs r0, 0x74
adds r6, r7, 0
muls r6, r0
mov r4, sp
adds r4, r6
adds r4, 0x4
movs r0, 0x3
str r0, [r4]
adds r0, r4, 0
adds r0, 0x24
mov r1, r8
strb r1, [r0]
adds r1, r4, 0
adds r1, 0x20
movs r0, 0x1
strb r0, [r1]
adds r0, r4, 0
adds r0, 0x22
mov r5, r8
strb r5, [r0]
add r0, sp, 0x74
adds r0, r6
ldr r1, _08046B2C
add r1, sp
ldr r1, [r1]
adds r2, r1, r2
str r2, [r0]
add r0, sp, 0x8
adds r0, r6
ldr r1, [r3]
str r1, [r0]
movs r2, 0xA5
lsls r2, 3
add r2, sp
ldr r2, [r2]
movs r5, 0
ldrsh r0, [r2, r5]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, 0x4
lsls r1, 8
movs r5, 0x2
ldrsh r0, [r2, r5]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r2, 0x4
lsls r2, 8
adds r0, r4, 0
movs r5, 0xA8
lsls r5, 3
add r5, sp
str r3, [r5]
bl sub_8045394
mov r0, r8
strh r0, [r4, 0x26]
ldr r4, _08046B30
add r4, sp
lsls r5, r7, 3
adds r4, r5
movs r1, 0xA8
lsls r1, 3
add r1, sp
ldr r3, [r1]
movs r2, 0
ldrsh r1, [r3, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, 0x4
lsls r0, 8
add r1, sp, 0x10
adds r1, r6
ldr r1, [r1]
subs r0, r1
movs r1, 0x18
movs r2, 0xA8
lsls r2, 3
add r2, sp
str r3, [r2]
bl __divsi3
str r0, [r4]
movs r4, 0x97
lsls r4, 3
add r4, sp
adds r4, r5
movs r5, 0xA8
lsls r5, 3
add r5, sp
ldr r3, [r5]
movs r0, 0x2
ldrsh r1, [r3, r0]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, 0x4
lsls r0, 8
add r1, sp, 0x14
adds r1, r6
ldr r1, [r1]
subs r0, r1
movs r1, 0x18
bl __divsi3
str r0, [r4]
movs r1, 0x1
_08046AFA:
adds r7, 0x1
movs r2, 0xAD
lsls r2, 3
add r2, sp
ldr r2, [r2]
cmp r7, r2
bge _08046B0A
b _080469F6
_08046B0A:
cmp r1, 0
bne _08046B54
movs r3, 0xAD
lsls r3, 3
add r3, sp
ldr r3, [r3]
cmp r3, 0x1
ble _08046B3C
ldr r0, _08046B34
ldr r1, [r0]
ldr r4, _08046B38
add r4, sp
ldr r0, [r4]
bl sub_80522A8
b _08046C7C
.align 2, 0
_08046B2C: .4byte 0x0000052c
_08046B30: .4byte 0x000004b4
_08046B34: .4byte gUnknown_80F945C
_08046B38: .4byte 0x00000524
_08046B3C:
ldr r0, _08046B4C
ldr r1, [r0]
ldr r5, _08046B50
add r5, sp
ldr r0, [r5]
bl sub_80522A8
b _08046C7C
.align 2, 0
_08046B4C: .4byte gUnknown_80F943C
_08046B50: .4byte 0x00000524
_08046B54:
mov r0, r9
cmp r0, 0
beq _08046B68
ldr r0, _08046C90
ldr r1, [r0]
ldr r2, _08046C94
add r2, sp
ldr r0, [r2]
bl sub_80522A8
_08046B68:
movs r3, 0
mov r9, r3
ldr r0, _08046C98
ldr r0, [r0]
ldr r4, _08046C9C
adds r0, r4
ldrb r0, [r0]
movs r5, 0xA6
lsls r5, 3
add r5, sp
str r0, [r5]
mov r10, r3
movs r6, 0
_08046B82:
movs r7, 0
mov r0, r10
adds r0, 0x55
movs r1, 0xA7
lsls r1, 3
add r1, sp
str r0, [r1]
adds r2, r6, 0x1
ldr r3, _08046CA0
add r3, sp
str r2, [r3]
movs r4, 0xAD
lsls r4, 3
add r4, sp
ldr r4, [r4]
cmp r7, r4
bge _08046C14
mov r5, r9
lsls r5, 24
mov r8, r5
_08046BAA:
movs r0, 0x74
adds r5, r7, 0
muls r5, r0
mov r4, sp
adds r4, r5
adds r4, 0x4
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08046C06
ldr r0, _08046CA4
add r0, sp
lsls r2, r7, 3
adds r0, r2
ldr r1, [r0]
movs r0, 0x97
lsls r0, 3
add r0, sp
adds r0, r2
ldr r2, [r0]
adds r0, r4, 0
bl sub_804539C
mov r0, r10
bl sub_8009C7C
add r2, sp, 0x20
adds r2, r5
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
str r1, [r2]
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r2, 0xA6
lsls r2, 3
add r2, sp
ldr r1, [r2]
movs r2, 0x1
mov r4, r8
lsrs r3, r4, 24
bl sub_80462AC
_08046C06:
adds r7, 0x1
movs r5, 0xAD
lsls r5, 3
add r5, sp
ldr r5, [r5]
cmp r7, r5
blt _08046BAA
_08046C14:
movs r0, 0x13
bl sub_803E46C
movs r0, 0xA7
lsls r0, 3
add r0, sp
ldr r0, [r0]
mov r10, r0
movs r0, 0x3
ands r0, r6
cmp r0, 0
bne _08046C30
movs r1, 0x1
add r9, r1
_08046C30:
movs r0, 0x7
mov r2, r9
ands r2, r0
mov r9, r2
ldr r3, _08046CA0
add r3, sp
ldr r6, [r3]
cmp r6, 0x17
ble _08046B82
movs r4, 0xAD
lsls r4, 3
add r4, sp
ldr r4, [r4]
cmp r4, 0
ble _08046C7C
ldr r0, _08046CA8
add r0, sp
ldr r5, [r0]
ldr r4, _08046CAC
add r4, sp
movs r1, 0xAD
lsls r1, 3
add r1, sp
ldr r7, [r1]
_08046C60:
movs r2, 0
ldrsh r0, [r4, r2]
cmp r0, 0
blt _08046C72
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80460F8
_08046C72:
adds r5, 0x4
adds r4, 0x4
subs r7, 0x1
cmp r7, 0
bne _08046C60
_08046C7C:
movs r3, 0xA9
lsls r3, 3
add sp, r3
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08046C90: .4byte gUnknown_80F947C
_08046C94: .4byte 0x00000524
_08046C98: .4byte gUnknown_203B418
_08046C9C: .4byte 0x00018210
_08046CA0: .4byte 0x0000053c
_08046CA4: .4byte 0x000004b4
_08046CA8: .4byte 0x0000052c
_08046CAC: .4byte 0x0000048c
thumb_func_end sub_804687C
thumb_func_start sub_8046CB0
sub_8046CB0:
push {lr}
lsls r1, 24
lsrs r1, 24
ldr r0, [r0, 0x70]
adds r3, r0, 0
adds r0, 0x60
ldrb r2, [r0]
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _08046CDC
movs r0, 0x8
ands r0, r2
cmp r0, 0
bne _08046CDC
adds r0, r3, 0
adds r0, 0x62
ldrb r0, [r0]
cmp r0, r1
bne _08046CDC
movs r0, 0x1
b _08046CDE
_08046CDC:
movs r0, 0
_08046CDE:
pop {r1}
bx r1
thumb_func_end sub_8046CB0
thumb_func_start sub_8046CE4
sub_8046CE4:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r0, 0x64
bl sub_8084100
adds r1, r0, 0
movs r2, 0
ldr r3, _08046D04
_08046CF6:
lsls r0, r1, 2
adds r0, r3
ldr r0, [r0]
cmp r0, r5
bgt _08046D08
strb r1, [r4, 0x1]
b _08046D18
.align 2, 0
_08046D04: .4byte gUnknown_810A3F0
_08046D08:
lsrs r0, r1, 31
adds r0, r1, r0
asrs r1, r0, 1
adds r2, 0x1
cmp r2, 0xC7
ble _08046CF6
movs r0, 0x1
strb r0, [r4, 0x1]
_08046D18:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8046CE4
thumb_func_start sub_8046D20
sub_8046D20:
push {r4,r5,lr}
ldr r4, _08046D5C
ldr r0, [r4]
ldrb r5, [r0, 0x8]
bl sub_8046D70
ldr r1, [r4]
strb r0, [r1, 0x8]
ldr r0, [r4]
ldrb r0, [r0, 0x8]
cmp r0, 0x1
bne _08046D64
cmp r5, 0
bne _08046D64
ldr r0, _08046D60
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl sub_8052B8C
adds r1, r0, 0
cmp r1, 0x1
bne _08046D64
ldr r0, [r4]
strb r1, [r0, 0x4]
ldr r1, [r4]
movs r0, 0x2
strb r0, [r1, 0x11]
b _08046D68
.align 2, 0
_08046D5C: .4byte gUnknown_203B418
_08046D60: .4byte gUnknown_80FA408
_08046D64:
bl sub_8046D8C
_08046D68:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8046D20
thumb_func_start sub_8046D70
sub_8046D70:
push {lr}
ldr r0, _08046D84
ldr r0, [r0]
ldr r1, _08046D88
adds r0, r1
ldrb r0, [r0]
movs r0, 0
pop {r1}
bx r1
.align 2, 0
_08046D84: .4byte gUnknown_203B418
_08046D88: .4byte 0x0000068a
thumb_func_end sub_8046D70
thumb_func_start sub_8046D8C
sub_8046D8C:
push {r4-r7,lr}
sub sp, 0xC
movs r6, 0
ldr r5, _08046EDC
movs r4, 0
_08046D96:
movs r7, 0
movs r0, 0x1
negs r0, r0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
movs r3, 0
ldr r2, [r5]
_08046DA6:
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08046DC8
ldrb r0, [r2, 0x2]
cmp r0, 0x79
bne _08046DB8
str r3, [sp]
_08046DB8:
ldrb r0, [r2, 0x2]
cmp r0, 0x77
bne _08046DC0
str r3, [sp, 0x4]
_08046DC0:
ldrb r0, [r2, 0x2]
cmp r0, 0x78
bne _08046DC8
str r3, [sp, 0x8]
_08046DC8:
adds r2, 0x4
adds r3, 0x1
cmp r3, 0x13
ble _08046DA6
ldr r1, [sp]
cmp r1, 0
blt _08046E1E
ldr r0, [sp, 0x4]
cmp r0, 0
blt _08046E1E
ldr r0, [sp, 0x8]
cmp r0, 0
blt _08046E1E
movs r7, 0x1
movs r6, 0x1
lsls r1, 2
ldr r0, [r5]
adds r1, r0
strb r4, [r1, 0x2]
strb r4, [r1, 0x1]
strb r4, [r1]
ldr r0, [sp, 0x4]
lsls r0, 2
ldr r1, [r5]
adds r0, r1
strb r4, [r0, 0x2]
strb r4, [r0, 0x1]
strb r4, [r0]
ldr r0, [sp, 0x8]
lsls r0, 2
ldr r1, [r5]
adds r0, r1
strb r4, [r0, 0x2]
strb r4, [r0, 0x1]
strb r4, [r0]
ldr r1, [sp]
lsls r1, 2
ldr r0, [r5]
adds r0, r1
movs r1, 0x7A
movs r2, 0
bl sub_8090A8C
_08046E1E:
cmp r7, 0
bne _08046D96
bl sub_80910B4
cmp r6, 0
beq _08046ED4
bl sub_8083600
adds r4, r0, 0
ldr r0, _08046EE0
bl sub_80855E4
ldr r6, _08046EE4
ldr r0, [r6]
ldr r5, _08046EE8
adds r0, r5
movs r1, 0x1
strb r1, [r0]
ldr r0, _08046EEC
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
movs r0, 0x3C
movs r1, 0x41
bl sub_803E708
ldr r0, _08046EF0
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
adds r0, r4, 0
movs r1, 0x4
movs r2, 0xA
movs r3, 0
bl sub_80869E4
adds r0, r4, 0
adds r0, 0xC
movs r1, 0x86
lsls r1, 1
movs r2, 0
bl sub_80416E0
adds r0, r4, 0
movs r1, 0xD7
bl sub_80421C0
movs r0, 0x3C
movs r1, 0x41
bl sub_803E708
ldr r0, _08046EF4
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
ldr r0, _08046EF8
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
movs r0, 0xA
movs r1, 0x41
bl sub_803E708
movs r0, 0xD4
bl sub_8083E38
ldr r0, _08046EFC
ldr r1, [r0]
movs r0, 0
movs r2, 0x1
bl PrintFieldMessage
movs r0, 0xA
movs r1, 0x41
bl sub_803E708
movs r0, 0x1
bl sub_804178C
ldr r0, [r6]
adds r0, r5
strb r7, [r0]
bl sub_8040A84
_08046ED4:
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08046EDC: .4byte gUnknown_203B460
_08046EE0: .4byte sub_80861A8
_08046EE4: .4byte gUnknown_203B418
_08046EE8: .4byte 0x0001356c
_08046EEC: .4byte gUnknown_810531C
_08046EF0: .4byte gUnknown_8105360
_08046EF4: .4byte gUnknown_202DF98
_08046EF8: .4byte gUnknown_81053A8
_08046EFC: .4byte gUnknown_8105434
thumb_func_end sub_8046D8C
thumb_func_start sub_8046F00
sub_8046F00:
push {r4-r7,lr}
adds r4, r0, 0
ldrb r0, [r4, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
bne _08046F7C
ldrb r0, [r4, 0x2]
bl sub_80913CC
lsls r0, 16
lsrs r7, r0, 16
ldrb r0, [r4, 0x2]
bl sub_80915A0
lsls r0, 24
cmp r0, 0
bne _08046F6E
movs r6, 0
_08046F2A:
ldr r0, _08046F74
ldr r0, [r0]
lsls r1, r6, 2
ldr r2, _08046F78
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08046F68
ldr r0, [r4, 0x70]
movs r2, 0x2
ldrsh r1, [r0, r2]
adds r0, r7, 0
bl sub_808E190
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0
movs r1, 0
bl sub_8070B6C
lsls r0, 24
cmp r0, 0
beq _08046F64
movs r5, 0
_08046F64:
cmp r5, 0
bne _08046F7C
_08046F68:
adds r6, 0x1
cmp r6, 0x3
ble _08046F2A
_08046F6E:
movs r0, 0
b _08046F7E
.align 2, 0
_08046F74: .4byte gUnknown_203B418
_08046F78: .4byte 0x0001357c
_08046F7C:
movs r0, 0x1
_08046F7E:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8046F00
thumb_func_start sub_8046F84
sub_8046F84:
push {r4-r7,lr}
adds r7, r0, 0
movs r5, 0
ldr r4, _08047000
movs r6, 0x1
movs r3, 0
_08046F90:
lsls r1, r5, 2
ldr r0, [r4]
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08046FAE
ldrb r0, [r2]
ands r0, r7
cmp r0, 0
beq _08046FAE
strb r3, [r2, 0x2]
strb r3, [r2, 0x1]
strb r3, [r2]
_08046FAE:
adds r5, 0x1
cmp r5, 0x13
ble _08046F90
bl sub_80910B4
movs r5, 0
movs r6, 0
_08046FBC:
ldr r0, _08047004
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08047008
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _08046FF4
ldr r0, [r4, 0x70]
adds r2, r0, 0
adds r2, 0x60
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08046FF4
ldrb r0, [r2]
ands r0, r7
cmp r0, 0
beq _08046FF4
strb r6, [r2, 0x2]
strb r6, [r2, 0x1]
strb r6, [r2]
_08046FF4:
adds r5, 0x1
cmp r5, 0x3
ble _08046FBC
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08047000: .4byte gUnknown_203B460
_08047004: .4byte gUnknown_203B418
_08047008: .4byte 0x0001357c
thumb_func_end sub_8046F84
thumb_func_start sub_804700C
sub_804700C:
push {r4,r5,lr}
movs r5, 0
ldr r4, _08047078
_08047012:
lsls r1, r5, 2
ldr r0, [r4]
adds r2, r0, r1
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804702C
adds r0, r2, 0
movs r1, 0x46
movs r2, 0
bl sub_8090A8C
_0804702C:
adds r5, 0x1
cmp r5, 0x13
ble _08047012
bl sub_80910B4
movs r5, 0
_08047038:
ldr r0, _0804707C
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _08047080
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _0804706C
ldr r0, [r4, 0x70]
adds r2, r0, 0
adds r2, 0x60
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _0804706C
adds r0, r2, 0
movs r1, 0x46
movs r2, 0
bl sub_8090A8C
_0804706C:
adds r5, 0x1
cmp r5, 0x3
ble _08047038
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08047078: .4byte gUnknown_203B460
_0804707C: .4byte gUnknown_203B418
_08047080: .4byte 0x0001357c
thumb_func_end sub_804700C
thumb_func_start sub_8047084
sub_8047084:
push {r4-r6,lr}
adds r6, r0, 0
movs r5, 0
ldr r0, _080470E8
ldr r2, [r0]
movs r3, 0x1
_08047090:
ldrb r1, [r2]
adds r0, r3, 0
ands r0, r1
cmp r0, 0
beq _080470A2
ldrb r0, [r2]
ands r0, r6
cmp r0, 0
bne _080470E2
_080470A2:
adds r2, 0x4
adds r5, 0x1
cmp r5, 0x13
ble _08047090
bl sub_80910B4
movs r5, 0
_080470B0:
ldr r0, _080470EC
ldr r0, [r0]
lsls r1, r5, 2
ldr r2, _080470F0
adds r0, r2
adds r0, r1
ldr r4, [r0]
adds r0, r4, 0
bl sub_80450E0
lsls r0, 24
cmp r0, 0
beq _080470F4
ldr r0, [r4, 0x70]
adds r2, r0, 0
adds r2, 0x60
ldrb r1, [r2]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080470F4
ldrb r0, [r2]
ands r0, r6
cmp r0, 0
beq _080470F4
_080470E2:
movs r0, 0x1
b _080470FC
.align 2, 0
_080470E8: .4byte gUnknown_203B460
_080470EC: .4byte gUnknown_203B418
_080470F0: .4byte 0x0001357c
_080470F4:
adds r5, 0x1
cmp r5, 0x3
ble _080470B0
movs r0, 0
_080470FC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8047084
thumb_func_start sub_8047104
sub_8047104:
push {r4-r6,lr}
movs r6, 0
movs r5, 0
_0804710A:
ldr r0, _08047154
lsls r1, r6, 2
ldr r0, [r0]
adds r4, r0, r1
ldrb r1, [r4]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08047142
ldrb r0, [r4, 0x2]
cmp r0, 0x69
bne _08047132
adds r0, r4, 0
bl sub_80915D4
bl sub_80913A0
strb r5, [r4, 0x2]
strb r5, [r4, 0x1]
strb r5, [r4]
_08047132:
ldrb r1, [r4]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08047142
strb r5, [r4, 0x2]
strb r5, [r4, 0x1]
strb r5, [r4]
_08047142:
adds r6, 0x1
cmp r6, 0x13
ble _0804710A
bl sub_80910B4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08047154: .4byte gUnknown_203B460
thumb_func_end sub_8047104
thumb_func_start sub_8047158
sub_8047158:
push {r4-r6,lr}
movs r3, 0
ldr r5, _0804718C
movs r6, 0x1
movs r4, 0x4
_08047162:
lsls r1, r3, 2
ldr r0, [r5]
adds r2, r0, r1
ldrb r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08047180
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _08047180
movs r0, 0xFB
ands r0, r1
strb r0, [r2]
_08047180:
adds r3, 0x1
cmp r3, 0x13
ble _08047162
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804718C: .4byte gUnknown_203B460
thumb_func_end sub_8047158
thumb_func_start sub_8047190
sub_8047190:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r4, _080472E8
add sp, r4
mov r9, r0
str r1, [sp, 0x214]
ldr r6, _080472EC
ldr r1, [r6]
ldr r4, _080472F0
adds r0, r1, r4
ldrb r0, [r0]
str r0, [sp, 0x220]
mov r8, r3
adds r7, r1, 0
adds r7, 0xC0
movs r0, 0x3
str r0, [r7]
adds r0, r1, 0
adds r0, 0xE4
movs r4, 0
strb r4, [r0]
subs r0, 0x4
movs r5, 0x1
strb r5, [r0]
adds r0, 0x2
strb r4, [r0]
ldr r0, [sp, 0x214]
str r0, [r7, 0x70]
str r4, [r7, 0x1C]
ldr r0, [r2]
str r0, [r7, 0x4]
movs r1, 0
ldrsh r0, [r2, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, 0x4
lsls r1, 8
movs r3, 0x2
ldrsh r0, [r2, r3]
lsls r2, r0, 1
adds r2, r0
lsls r2, 11
adds r0, r7, 0
bl sub_8045394
strh r4, [r7, 0x26]
str r4, [sp, 0x224]
mov r0, r9
bl sub_80450F8
cmp r0, 0x1
bne _08047214
mov r0, r9
movs r1, 0x2A
bl sub_8046CB0
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
str r1, [sp, 0x224]
_08047214:
ldr r0, [sp, 0x260]
movs r1, 0x2
ldrsh r0, [r0, r1]
str r0, [sp, 0x218]
movs r2, 0
str r2, [sp, 0x21C]
ldr r0, [r6]
ldr r3, _080472F4
adds r0, r3
strb r5, [r0]
_08047228:
ldr r4, [r7, 0x4]
mov r10, r4
ldr r1, [sp, 0x260]
ldrb r0, [r1, 0x1]
cmp r0, 0
beq _080472AE
ldrb r0, [r1]
cmp r0, 0
bne _080472AE
movs r2, 0x4
ldrsh r0, [r7, r2]
ldr r2, _080472F8
mov r3, r8
lsls r4, r3, 2
adds r2, r4, r2
movs r3, 0
ldrsh r1, [r2, r3]
adds r0, r1
movs r3, 0x6
ldrsh r1, [r7, r3]
movs r3, 0x2
ldrsh r2, [r2, r3]
adds r1, r2
bl sub_804954C
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x3
ands r0, r1
str r4, [sp, 0x230]
cmp r0, 0
bne _080472AE
movs r6, 0
ldr r1, _080472FC
mov r4, r10
lsls r0, r4, 16
asrs r0, 16
str r0, [sp, 0x23C]
ldr r0, [sp, 0x230]
adds r5, r0, r1
asrs r2, r4, 16
_0804727A:
ldrb r4, [r5]
cmp r4, 0x7
bgt _080472A6
ldr r0, _080472F8
lsls r1, r4, 2
adds r1, r0
movs r3, 0
ldrsh r0, [r1, r3]
ldr r3, [sp, 0x23C]
adds r0, r3
movs r3, 0x2
ldrsh r1, [r1, r3]
adds r1, r2
str r2, [sp, 0x234]
bl sub_804954C
ldrh r1, [r0]
movs r0, 0x3
ands r0, r1
ldr r2, [sp, 0x234]
cmp r0, 0
bne _08047300
_080472A6:
adds r5, 0x1
adds r6, 0x1
cmp r6, 0x3
ble _0804727A
_080472AE:
ldr r0, _080472F8
mov r4, r8
lsls r2, r4, 2
adds r3, r2, r0
ldrh r1, [r3]
ldrh r0, [r7, 0x4]
adds r1, r0
strh r1, [r7, 0x4]
ldrh r0, [r3, 0x2]
ldrh r4, [r7, 0x6]
adds r0, r4
strh r0, [r7, 0x6]
lsls r1, 16
asrs r1, 16
str r2, [sp, 0x230]
cmp r1, 0
blt _080472E0
lsls r0, 16
asrs r0, 16
cmp r0, 0
blt _080472E0
cmp r1, 0x37
bgt _080472E0
cmp r0, 0x1F
ble _08047304
_080472E0:
movs r0, 0x2
mov r10, r0
b _0804744C
.align 2, 0
_080472E8: .4byte 0xfffffdc0
_080472EC: .4byte gUnknown_203B418
_080472F0: .4byte 0x00018210
_080472F4: .4byte 0x0001c05e
_080472F8: .4byte gUnknown_80F4448
_080472FC: .4byte gUnknown_80F4D64
_08047300:
mov r8, r4
b _080472AE
_08047304:
movs r1, 0
ldrsh r0, [r3, r1]
lsls r0, 10
str r0, [sp, 0x228]
movs r2, 0x2
ldrsh r0, [r3, r2]
lsls r0, 10
str r0, [sp, 0x22C]
mov r3, r8
lsls r6, r3, 24
movs r5, 0x5
_0804731A:
movs r4, 0
adds r0, r7, 0
ldr r1, [sp, 0x228]
ldr r2, [sp, 0x22C]
bl sub_804539C
bl sub_804AF74
lsls r0, 24
movs r2, 0
cmp r0, 0
beq _08047334
movs r2, 0x3
_08047334:
ldr r0, [r7, 0xC]
cmp r0, 0
bge _0804733C
adds r0, 0xFF
_0804733C:
asrs r0, 8
adds r0, 0x8
ldr r1, [r7, 0x10]
cmp r1, 0
bge _08047348
adds r1, 0xFF
_08047348:
asrs r1, 8
adds r1, 0x10
bl sub_8083568
lsls r0, 24
cmp r0, 0
beq _08047358
movs r4, 0x1
_08047358:
movs r0, 0x1
str r0, [sp]
adds r0, r7, 0
ldr r1, [sp, 0x220]
movs r2, 0
lsrs r3, r6, 24
bl sub_80462AC
lsls r0, 24
cmp r0, 0
beq _08047370
movs r4, 0x1
_08047370:
cmp r4, 0
beq _0804737A
movs r0, 0x12
bl sub_803E46C
_0804737A:
subs r5, 0x1
cmp r5, 0
bge _0804731A
movs r4, 0x4
ldrsh r0, [r7, r4]
movs r2, 0x6
ldrsh r1, [r7, r2]
bl sub_804954C
adds r5, r0, 0
ldrh r1, [r5]
movs r0, 0x3
ands r0, r1
cmp r0, 0
bne _080473A2
ldr r3, [sp, 0x260]
ldrb r0, [r3]
cmp r0, 0
bne _080473A2
b _0804757A
_080473A2:
ldr r1, [r5, 0x10]
cmp r1, 0
beq _08047436
movs r4, 0
ldr r2, [sp, 0x260]
ldrb r0, [r2]
cmp r0, 0
bne _080473CE
adds r0, r1, 0
bl sub_80450F8
cmp r0, 0x1
bne _080473CE
ldr r0, [r5, 0x10]
movs r1, 0x26
bl sub_8046CB0
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
_080473CE:
cmp r4, 0
beq _080473E0
movs r3, 0x4
add r8, r3
movs r0, 0x7
mov r4, r8
ands r4, r0
mov r8, r4
b _08047436
_080473E0:
movs r6, 0x1
ldr r0, [r5, 0x10]
bl sub_80450F8
cmp r0, 0x1
bne _08047406
add r4, sp, 0x208
adds r0, r4, 0
ldr r1, _080474B8
bl sub_8092A88
ldr r0, [r5, 0x10]
adds r1, r4, 0
bl sub_80571F0
lsls r0, 24
cmp r0, 0
beq _08047406
movs r6, 0
_08047406:
cmp r6, 0
beq _08047436
ldr r0, [sp, 0x21C]
cmp r0, 0x3F
bgt _0804742C
lsls r0, 3
mov r4, sp
adds r4, r0
adds r4, 0x8
ldr r0, [r5, 0x10]
str r0, [r4]
ldr r1, [r5, 0x10]
mov r0, r9
bl sub_8047930
strb r0, [r4, 0x4]
ldr r1, [sp, 0x21C]
adds r1, 0x1
str r1, [sp, 0x21C]
_0804742C:
ldr r2, [sp, 0x260]
ldrb r0, [r2]
cmp r0, 0
bne _08047436
b _08047574
_08047436:
ldr r3, [sp, 0x218]
subs r3, 0x1
str r3, [sp, 0x218]
cmp r3, 0
ble _08047442
b _08047228
_08047442:
movs r4, 0x1
mov r10, r4
mov r0, r8
lsls r0, 2
str r0, [sp, 0x230]
_0804744C:
ldr r0, _080474BC
ldr r0, [r0]
ldr r1, _080474C0
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r2, [sp, 0x21C]
cmp r2, 0
ble _0804752C
add r5, sp, 0x8
adds r6, r2, 0
_08047462:
ldr r4, [r5]
ldrb r0, [r5, 0x4]
cmp r0, 0
beq _080474D0
ldr r0, _080474C4
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
ldr r0, _080474C8
ldr r1, [sp, 0x214]
bl sub_8045C08
ldr r0, _080474CC
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
mov r0, r9
adds r1, r4, 0
bl sub_807A96C
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
ldr r3, [sp, 0x224]
cmp r3, 0
bne _080474A4
ldr r3, [sp, 0x260]
ldrb r0, [r3]
cmp r0, 0
beq _080474A6
_080474A4:
movs r1, 0x1
_080474A6:
str r4, [sp]
ldr r4, [sp, 0x214]
str r4, [sp, 0x4]
movs r0, 0x1
mov r3, r9
bl sub_80479B8
b _08047524
.align 2, 0
_080474B8: .4byte 0x00000195
_080474BC: .4byte gUnknown_203B418
_080474C0: .4byte 0x0001c05e
_080474C4: .4byte gUnknown_202DF98
_080474C8: .4byte gUnknown_202DE58
_080474CC: .4byte gUnknown_80F94C4
_080474D0:
ldr r1, [sp, 0x260]
ldrb r0, [r1]
cmp r0, 0
bne _080474E2
ldr r2, [sp, 0x21C]
cmp r2, 0x1
bne _080474E2
movs r3, 0x1
mov r10, r3
_080474E2:
ldr r0, _0804750C
adds r1, r4, 0
movs r2, 0
bl sub_8045B94
ldr r0, _08047510
ldr r1, [sp, 0x214]
bl sub_8045BF8
ldr r1, [sp, 0x260]
ldrb r0, [r1]
cmp r0, 0
beq _08047518
ldr r0, _08047514
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
b _08047524
.align 2, 0
_0804750C: .4byte gUnknown_202DF98
_08047510: .4byte gUnknown_202DE58
_08047514: .4byte gUnknown_80F94D8
_08047518:
ldr r0, _08047564
ldr r2, [r0]
mov r0, r9
adds r1, r4, 0
bl sub_80522F4
_08047524:
adds r5, 0x8
subs r6, 0x1
cmp r6, 0
bne _08047462
_0804752C:
ldr r2, _08047568
ldr r3, [sp, 0x230]
adds r2, r3, r2
movs r4, 0
ldrsh r1, [r2, r4]
lsls r1, 19
lsrs r1, 16
ldr r4, _0804756C
add r3, sp, 0x210
ldr r0, [r3]
ands r0, r4
orrs r0, r1
str r0, [r3]
movs r4, 0x2
ldrsh r1, [r2, r4]
lsls r1, 19
ldr r2, _08047570
ands r0, r2
orrs r0, r1
str r0, [r3]
mov r0, r10
cmp r0, 0x1
beq _08047584
cmp r0, 0x1
bcc _080475A8
cmp r0, 0x2
beq _08047596
b _080475A8
.align 2, 0
_08047564: .4byte gUnknown_80F94F0
_08047568: .4byte gUnknown_80F4448
_0804756C: .4byte 0xffff0000
_08047570: .4byte 0x0000ffff
_08047574:
movs r1, 0
mov r10, r1
b _0804744C
_0804757A:
mov r2, r10
str r2, [r7, 0x4]
movs r3, 0x1
mov r10, r3
b _0804744C
_08047584:
add r0, sp, 0x210
str r0, [sp]
mov r0, r9
adds r1, r7, 0
ldr r2, [sp, 0x214]
movs r3, 0x1
bl sub_804652C
b _080475A8
_08047596:
ldr r0, _080475BC
ldr r1, [sp, 0x214]
bl sub_8045C08
ldr r0, _080475C0
ldr r1, [r0]
mov r0, r9
bl sub_80522A8
_080475A8:
movs r3, 0x90
lsls r3, 2
add sp, r3
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080475BC: .4byte gUnknown_202DE58
_080475C0: .4byte gUnknown_80F9530
thumb_func_end sub_8047190
thumb_func_start sub_80475C4
sub_80475C4:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x44
str r0, [sp, 0x10]
str r1, [sp, 0x14]
adds r7, r2, 0
str r3, [sp, 0x18]
ldr r0, _08047848
mov r8, r0
ldr r2, [r0]
ldr r1, _0804784C
adds r0, r2, r1
ldrb r0, [r0]
str r0, [sp, 0x24]
movs r4, 0
movs r5, 0
adds r3, r2, 0
adds r3, 0xC0
str r3, [sp, 0x1C]
movs r0, 0x3
str r0, [r3]
adds r0, r2, 0
adds r0, 0xE4
strb r4, [r0]
adds r1, r2, 0
adds r1, 0xE0
movs r0, 0x1
strb r0, [r1]
adds r0, r2, 0
adds r0, 0xE2
strb r4, [r0]
ldr r0, [sp, 0x14]
str r0, [r3, 0x70]
str r5, [r3, 0x1C]
ldr r0, [r7]
str r0, [r3, 0x4]
movs r1, 0
ldrsh r0, [r7, r1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, 0x4
lsls r1, 8
movs r2, 0x2
ldrsh r0, [r7, r2]
lsls r2, r0, 1
adds r2, r0
lsls r2, 3
adds r2, 0x4
lsls r2, 8
ldr r0, [sp, 0x1C]
bl sub_8045394
ldr r3, [sp, 0x1C]
strh r4, [r3, 0x26]
movs r0, 0x1
str r0, [sp, 0x20]
movs r1, 0
str r1, [sp, 0x28]
ldr r0, [sp, 0x10]
bl sub_80450F8
cmp r0, 0x1
bne _0804765E
ldr r0, [sp, 0x10]
movs r1, 0x2A
bl sub_8046CB0
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r1, 31
str r1, [sp, 0x28]
_0804765E:
adds r0, r7, 0
bl sub_803F428
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r4, r1, 31
ldr r0, [sp, 0x18]
bl sub_803F428
lsls r0, 24
cmp r0, 0
beq _0804767C
movs r4, 0x1
_0804767C:
mov r2, r8
ldr r0, [r2]
ldr r3, _08047850
adds r0, r3
add r1, sp, 0x20
ldrb r1, [r1]
strb r1, [r0]
cmp r4, 0
bne _08047690
b _080477D0
_08047690:
ldr r2, [sp, 0x1C]
movs r3, 0x4
ldrsh r0, [r2, r3]
ldr r1, [sp, 0x18]
movs r2, 0
ldrsh r1, [r1, r2]
mov r9, r1
subs r1, r0, r1
cmp r1, 0
bge _080476A6
negs r1, r1
_080476A6:
ldr r3, [sp, 0x1C]
movs r2, 0x6
ldrsh r0, [r3, r2]
ldr r3, [sp, 0x18]
movs r2, 0x2
ldrsh r3, [r3, r2]
mov r10, r3
subs r0, r3
cmp r0, 0
bge _080476BC
negs r0, r0
_080476BC:
adds r1, r0
lsls r0, r1, 1
adds r0, r1
lsls r4, r0, 2
adds r3, r4, 0
adds r3, 0xC
str r3, [sp, 0x30]
cmp r3, 0x3F
ble _080476D2
movs r0, 0x40
str r0, [sp, 0x30]
_080476D2:
movs r1, 0
str r1, [sp, 0x3C]
movs r0, 0x80
lsls r0, 12
adds r1, r4, 0
bl __divsi3
str r0, [sp, 0x40]
movs r2, 0
ldrsh r1, [r7, r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 11
mov r8, r0
movs r3, 0x2
ldrsh r1, [r7, r3]
lsls r0, r1, 1
adds r0, r1
lsls r7, r0, 11
mov r1, r9
lsls r0, r1, 1
add r0, r9
lsls r0, 11
mov r2, r8
subs r0, r2
adds r1, r4, 0
bl __divsi3
str r0, [sp, 0x34]
mov r3, r10
lsls r0, r3, 1
add r0, r10
lsls r0, 11
subs r0, r7
adds r1, r4, 0
bl __divsi3
str r0, [sp, 0x38]
subs r0, r4, 0x3
cmp r0, 0
ble _080477D0
str r0, [sp, 0x2C]
_08047726:
movs r0, 0
mov r10, r0
ldr r0, [sp, 0x3C]
cmp r0, 0
bge _08047732
adds r0, 0xFF
_08047732:
asrs r0, 8
bl sub_8009C7C
ldr r2, [sp, 0x30]
adds r1, r0, 0
muls r1, r2
movs r0, 0x80
lsls r0, 3
mov r2, r8
adds r3, r2, r0
adds r2, r7, r0
ldr r0, [sp, 0x1C]
str r1, [r0, 0x1C]
mov r0, r8
cmp r0, 0
bge _08047754
adds r0, 0xFF
_08047754:
asrs r0, 8
adds r0, 0x8
mov r9, r0
adds r0, r7, 0
cmp r7, 0
bge _08047762
adds r0, 0xFF
_08047762:
asrs r0, 8
adds r4, r0, 0
adds r4, 0x10
ldr r1, [sp, 0x3C]
ldr r0, [sp, 0x40]
adds r1, r0
str r1, [sp, 0x3C]
ldr r0, [sp, 0x1C]
adds r1, r3, 0
bl sub_8045394
bl sub_804AF74
lsls r0, 24
movs r2, 0
cmp r0, 0
beq _08047786
movs r2, 0x3
_08047786:
mov r0, r9
adds r1, r4, 0
bl sub_8083568
lsls r0, 24
cmp r0, 0
beq _08047798
movs r1, 0x1
mov r10, r1
_08047798:
movs r0, 0x1
str r0, [sp]
ldr r0, [sp, 0x1C]
ldr r1, [sp, 0x24]
movs r2, 0
movs r3, 0xFF
bl sub_80462AC
lsls r0, 24
cmp r0, 0
beq _080477B2
movs r2, 0x1
mov r10, r2
_080477B2:
mov r3, r10
cmp r3, 0
beq _080477BE
movs r0, 0x17
bl sub_803E46C
_080477BE:
ldr r0, [sp, 0x34]
add r8, r0
ldr r1, [sp, 0x38]
adds r7, r1
ldr r2, [sp, 0x2C]
subs r2, 0x1
str r2, [sp, 0x2C]
cmp r2, 0
bne _08047726
_080477D0:
ldr r3, [sp, 0x18]
ldr r0, [r3]
ldr r1, [sp, 0x1C]
str r0, [r1, 0x4]
ldr r0, _08047848
ldr r0, [r0]
ldr r2, _08047850
adds r0, r2
movs r1, 0
strb r1, [r0]
movs r1, 0
ldrsh r0, [r3, r1]
movs r2, 0x2
ldrsh r1, [r3, r2]
bl sub_804954C
adds r4, r0, 0
ldr r0, [r4, 0x10]
cmp r0, 0
bne _080477FA
b _08047904
_080477FA:
movs r3, 0x1
mov r8, r3
movs r7, 0
bl sub_80450F8
cmp r0, 0x1
bne _08047834
ldr r0, [r4, 0x10]
movs r1, 0x26
bl sub_8046CB0
lsls r0, 24
lsrs r0, 24
negs r1, r0
orrs r1, r0
lsrs r7, r1, 31
ldr r1, _08047854
add r0, sp, 0x8
bl sub_8092A88
ldr r0, [r4, 0x10]
add r1, sp, 0x8
bl sub_80571F0
lsls r0, 24
cmp r0, 0
beq _08047834
movs r0, 0
mov r8, r0
_08047834:
mov r1, r8
cmp r1, 0
beq _08047904
ldr r1, [r4, 0x10]
adds r5, r1, 0
cmp r7, 0
beq _0804785C
ldr r0, _08047858
ands r6, r0
b _0804786E
.align 2, 0
_08047848: .4byte gUnknown_203B418
_0804784C: .4byte 0x00018210
_08047850: .4byte 0x0001c05e
_08047854: .4byte 0x00000195
_08047858: .4byte 0xffffff00
_0804785C:
ldr r0, [sp, 0x10]
bl sub_8047930
lsls r0, 24
lsrs r0, 24
ldr r1, _080478CC
ands r1, r6
adds r6, r1, 0
orrs r6, r0
_0804786E:
ldr r0, _080478D0
ldr r1, [sp, 0x14]
bl sub_8045C08
ldr r0, _080478D4
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
lsls r0, r6, 24
cmp r0, 0
beq _080478DC
adds r0, r5, 0
movs r1, 0x8
bl sub_806CE94
ldr r0, _080478D8
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_807A96C
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
ldr r3, [sp, 0x28]
cmp r3, 0
bne _080478B6
ldr r0, [sp, 0x64]
ldrb r0, [r0]
cmp r0, 0
beq _080478B8
_080478B6:
movs r1, 0x1
_080478B8:
str r5, [sp]
ldr r0, [sp, 0x14]
str r0, [sp, 0x4]
movs r0, 0x1
ldr r3, [sp, 0x10]
bl sub_80479B8
movs r1, 0
str r1, [sp, 0x20]
b _08047904
.align 2, 0
_080478CC: .4byte 0xffffff00
_080478D0: .4byte gUnknown_202DE58
_080478D4: .4byte gUnknown_202DF98
_080478D8: .4byte gUnknown_80F94C4
_080478DC:
cmp r7, 0
beq _080478F4
ldr r0, _080478F0
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
b _08047900
.align 2, 0
_080478F0: .4byte gUnknown_80F9510
_080478F4:
ldr r0, _0804792C
ldr r2, [r0]
ldr r0, [sp, 0x10]
adds r1, r5, 0
bl sub_80522F4
_08047900:
movs r2, 0x1
str r2, [sp, 0x20]
_08047904:
ldr r3, [sp, 0x20]
cmp r3, 0x1
bne _0804791A
movs r0, 0
str r0, [sp]
ldr r0, [sp, 0x10]
ldr r1, [sp, 0x1C]
ldr r2, [sp, 0x14]
movs r3, 0
bl sub_804652C
_0804791A:
add sp, 0x44
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0804792C: .4byte gUnknown_80F94F0
thumb_func_end sub_80475C4
thumb_func_start sub_8047930
sub_8047930:
push {r4-r6,lr}
adds r4, r0, 0
adds r5, r1, 0
ldr r1, [r5, 0x70]
ldrb r0, [r1, 0x8]
cmp r0, 0x1
beq _0804794C
adds r0, r1, 0
adds r0, 0xA4
ldrb r0, [r0]
cmp r0, 0x4
beq _0804794C
cmp r0, 0x1
bne _08047950
_0804794C:
movs r0, 0
b _080479B0
_08047950:
movs r0, 0x64
bl sub_8084100
ldr r1, _08047980
movs r2, 0
ldrsh r1, [r1, r2]
movs r6, 0
cmp r0, r1
bge _08047964
movs r6, 0x1
_08047964:
adds r0, r4, 0
bl sub_80450F8
cmp r0, 0x1
bne _08047994
adds r0, r4, 0
movs r1, 0x28
bl sub_8046CB0
lsls r0, 24
cmp r0, 0
beq _08047984
movs r6, 0
b _08047994
.align 2, 0
_08047980: .4byte gUnknown_80F4FA2
_08047984:
adds r0, r4, 0
movs r1, 0x2A
bl sub_8046CB0
lsls r0, 24
cmp r0, 0
beq _08047994
movs r6, 0x1
_08047994:
adds r0, r5, 0
bl sub_80450F8
cmp r0, 0x1
bne _080479AE
adds r0, r5, 0
movs r1, 0x25
bl sub_8046CB0
lsls r0, 24
cmp r0, 0
beq _080479AE
movs r6, 0
_080479AE:
adds r0, r6, 0
_080479B0:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8047930
thumb_func_start sub_80479B8
sub_80479B8:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x1C
adds r4, r3, 0
ldr r5, [sp, 0x3C]
ldr r7, [sp, 0x40]
lsls r0, 24
lsrs r6, r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
mov r10, r2
cmp r6, 0
beq _08047AD0
cmp r1, 0
bne _08047ABC
movs r0, 0
mov r8, r0
ldr r1, [r5, 0x70]
mov r9, r1
ldrb r0, [r1, 0x6]
cmp r0, 0
beq _08047A20
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
cmp r0, 0
beq _08047A3C
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
beq _08047A3C
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
eors r0, r1
negs r1, r0
orrs r1, r0
lsrs r1, 31
mov r8, r1
b _08047A3C
_08047A20:
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
beq _08047A3C
adds r0, r5, 0
movs r1, 0x2
bl sub_80718D8
lsls r0, 24
lsrs r0, 24
mov r8, r0
_08047A3C:
adds r0, r5, 0
bl sub_8070C60
lsls r0, 24
cmp r0, 0
beq _08047A4C
movs r0, 0
mov r8, r0
_08047A4C:
mov r1, r8
cmp r1, 0
beq _08047ABC
mov r0, r9
adds r0, 0x60
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
bne _08047ABC
mov r1, r9
ldrb r0, [r1, 0x8]
cmp r0, 0x1
bne _08047A76
adds r1, r5, 0x4
adds r0, r4, 0
adds r2, r7, 0
bl sub_80464C8
bl _080482BA
_08047A76:
ldr r0, _08047AAC
bl sub_8083E38
ldr r0, _08047AB0
adds r1, r7, 0
bl sub_8045BF8
ldr r0, _08047AB4
adds r1, r5, 0
movs r2, 0
bl sub_8045B94
ldr r0, _08047AB8
ldr r2, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80522F4
ldr r0, [r7]
mov r1, r9
str r0, [r1, 0x60]
adds r0, r5, 0
bl sub_806A6E8
bl _080482BA
.align 2, 0
_08047AAC: .4byte 0x0000014d
_08047AB0: .4byte gUnknown_202DE58
_08047AB4: .4byte gUnknown_202DF98
_08047AB8: .4byte gUnknown_80FDBB8
_08047ABC:
cmp r6, 0
beq _08047AD0
adds r0, r5, 0
adds r1, r7, 0
bl sub_8042390
adds r0, r4, 0
adds r1, r5, 0
bl sub_806F450
_08047AD0:
ldrb r1, [r7]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08047B2C
ldr r0, _08047B1C
adds r1, r7, 0
bl sub_8045BF8
ldr r0, _08047B20
ldr r2, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80522F4
cmp r6, 0
beq _08047B30
ldr r0, _08047B24
movs r1, 0
ldrsh r2, [r0, r1]
add r0, sp, 0x18
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r0, _08047B28
str r0, [sp, 0x8]
str r1, [sp, 0xC]
str r1, [sp, 0x10]
str r1, [sp, 0x14]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x1
bl sub_806F370
adds r0, r4, 0
bl sub_8071DA4
b _080482BA
.align 2, 0
_08047B1C: .4byte gUnknown_202DE58
_08047B20: .4byte gUnknown_80FE3E8
_08047B24: .4byte gUnknown_80F4FAE
_08047B28: .4byte 0x00000217
_08047B2C:
cmp r6, 0
bne _08047B38
_08047B30:
adds r0, r5, 0
adds r1, r7, 0
bl sub_804245C
_08047B38:
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08047B56
movs r0, 0
str r0, [sp]
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x5
movs r3, 0
bl sub_8078B5C
_08047B56:
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x5
beq _08047B72
ldrb r0, [r7, 0x2]
bl sub_8090BD0
lsls r0, 24
lsrs r0, 24
cmp r0, 0xA
bne _08047B9C
_08047B72:
cmp r6, 0
beq _08047B88
ldr r0, _08047B84
movs r1, 0
ldrsh r2, [r0, r1]
mov r0, sp
adds r0, 0x19
b _08048284
.align 2, 0
_08047B84: .4byte gUnknown_80F4FAC
_08047B88:
ldr r0, _08047B98
ldr r2, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80522F4
b _080482B4
.align 2, 0
_08047B98: .4byte gUnknown_80FE458
_08047B9C:
ldrb r0, [r7, 0x2]
subs r0, 0x1
cmp r0, 0xE8
bls _08047BA6
b _08048276
_08047BA6:
lsls r0, 2
ldr r1, _08047BB0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08047BB0: .4byte _08047BB4
.align 2, 0
_08047BB4:
.4byte _08047F58
.4byte _08047F70
.4byte _08047F88
.4byte _08047FA0
.4byte _08047FB8
.4byte _08047FD0
.4byte _08047FF0
.4byte _08047FE8
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048004
.4byte _0804825E
.4byte _08048010
.4byte _0804801A
.4byte _0804804C
.4byte _08048276
.4byte _0804802E
.4byte _0804809C
.4byte _08048038
.4byte _08048024
.4byte _080480BA
.4byte _080480C4
.4byte _08048042
.4byte _0804806A
.4byte _08048060
.4byte _08048056
.4byte _0804807E
.4byte _080480B0
.4byte _08048074
.4byte _080480D8
.4byte _080480CE
.4byte _08048092
.4byte _08048088
.4byte _080480A6
.4byte _080480E4
.4byte _080480EE
.4byte _080480F8
.4byte _08048102
.4byte _0804810C
.4byte _08048212
.4byte _08048122
.4byte _0804813C
.4byte _0804812A
.4byte _08048146
.4byte _08048152
.4byte _0804815E
.4byte _0804816A
.4byte _08048176
.4byte _08048182
.4byte _0804818E
.4byte _0804819A
.4byte _080481A6
.4byte _080481B2
.4byte _080481BE
.4byte _080481CA
.4byte _080481D6
.4byte _080481E2
.4byte _080481EE
.4byte _080481FA
.4byte _08048206
.4byte _08048212
.4byte _08048220
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _0804823A
.4byte _08048252
.4byte _08048246
.4byte _0804826A
.4byte _0804822E
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048276
.4byte _08048116
_08047F58:
ldr r0, _08047F6C
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x1
bl sub_80482FC
b _080482B4
.align 2, 0
_08047F6C: .4byte gUnknown_80F503A
_08047F70:
ldr r0, _08047F84
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x2
bl sub_80482FC
b _080482B4
.align 2, 0
_08047F84: .4byte gUnknown_80F503C
_08047F88:
ldr r0, _08047F9C
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x3
bl sub_80482FC
b _080482B4
.align 2, 0
_08047F9C: .4byte gUnknown_80F503E
_08047FA0:
ldr r0, _08047FB4
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x4
bl sub_80482FC
b _080482B4
.align 2, 0
_08047FB4: .4byte gUnknown_80F5040
_08047FB8:
ldr r0, _08047FCC
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x5
bl sub_80482FC
b _080482B4
.align 2, 0
_08047FCC: .4byte gUnknown_80F5042
_08047FD0:
ldr r0, _08047FE4
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x6
bl sub_80482FC
b _080482B4
.align 2, 0
_08047FE4: .4byte gUnknown_80F5044
_08047FE8:
ldr r0, _08047FEC
b _08047FF2
.align 2, 0
_08047FEC: .4byte gUnknown_80F5048
_08047FF0:
ldr r0, _08048000
_08047FF2:
movs r1, 0
ldrsh r2, [r0, r1]
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048340
b _080482B4
.align 2, 0
_08048000: .4byte gUnknown_80F5046
_08048004:
adds r0, r4, 0
adds r1, r5, 0
mov r2, r10
bl sub_8048364
b _080482B4
_08048010:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048374
b _080482B4
_0804801A:
adds r0, r4, 0
adds r1, r5, 0
bl sub_804839C
b _080482B4
_08048024:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80483D4
b _080482B4
_0804802E:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80483F4
b _080482B4
_08048038:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048400
b _080482B4
_08048042:
adds r0, r4, 0
adds r1, r5, 0
bl sub_804840C
b _080482B4
_0804804C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_804841C
b _080482B4
_08048056:
adds r0, r4, 0
adds r1, r5, 0
bl sub_804849C
b _080482B4
_08048060:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048428
b _080482B4
_0804806A:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048450
b _080482B4
_08048074:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048480
b _080482B4
_0804807E:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80482D4
b _080482B4
_08048088:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048490
b _080482B4
_08048092:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80484A8
b _080482B4
_0804809C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80484DC
b _080482B4
_080480A6:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80484BC
b _080482B4
_080480B0:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80484C8
b _080482B4
_080480BA:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80484E8
b _080482B4
_080480C4:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048524
b _080482B4
_080480CE:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80485B0
b _080482B4
_080480D8:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_804869C
b _080482B4
_080480E4:
adds r0, r4, 0
adds r1, r5, 0
bl sub_80483C4
b _080482B4
_080480EE:
adds r0, r4, 0
adds r1, r5, 0
bl sub_804891C
b _080482B4
_080480F8:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048928
b _080482B4
_08048102:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048934
b _080482B4
_0804810C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048940
b _080482B4
_08048116:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl nullsub_94
b _080482B4
_08048122:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x64
b _08048130
_0804812A:
ldr r2, _08048138
adds r0, r4, 0
adds r1, r5, 0
_08048130:
movs r3, 0xA
bl sub_80487CC
b _080482B4
.align 2, 0
_08048138: .4byte 0x000003e7
_0804813C:
adds r0, r4, 0
adds r1, r5, 0
bl sub_8048E04
b _080482B4
_08048146:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x1
bl sub_80487E0
b _080482B4
_08048152:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x2
bl sub_80487E0
b _080482B4
_0804815E:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x3
bl sub_80487E0
b _080482B4
_0804816A:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x4
bl sub_80487E0
b _080482B4
_08048176:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x5
bl sub_80487E0
b _080482B4
_08048182:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x6
bl sub_80487E0
b _080482B4
_0804818E:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x7
bl sub_80487E0
b _080482B4
_0804819A:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x8
bl sub_80487E0
b _080482B4
_080481A6:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x9
bl sub_80487E0
b _080482B4
_080481B2:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xA
bl sub_80487E0
b _080482B4
_080481BE:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xB
bl sub_80487E0
b _080482B4
_080481CA:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xC
bl sub_80487E0
b _080482B4
_080481D6:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xD
bl sub_80487E0
b _080482B4
_080481E2:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xE
bl sub_80487E0
b _080482B4
_080481EE:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xF
bl sub_80487E0
b _080482B4
_080481FA:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x10
bl sub_80487E0
b _080482B4
_08048206:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x11
bl sub_80487E0
b _080482B4
_08048212:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0x32
movs r3, 0x5
bl sub_80487CC
b _080482B4
_08048220:
adds r0, r4, 0
adds r1, r5, 0
movs r2, 0xA
movs r3, 0
bl sub_80487CC
b _080482B4
_0804822E:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048DB8
b _080482B4
_0804823A:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048EB0
b _080482B4
_08048246:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048EC4
b _080482B4
_08048252:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048ED8
b _080482B4
_0804825E:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048EEC
b _080482B4
_0804826A:
adds r0, r4, 0
adds r1, r5, 0
adds r2, r6, 0
bl sub_8048F00
b _080482B4
_08048276:
cmp r6, 0
beq _080482A8
ldr r0, _080482A0
movs r1, 0
ldrsh r2, [r0, r1]
mov r0, sp
adds r0, 0x1A
_08048284:
str r0, [sp]
movs r1, 0
str r1, [sp, 0x4]
ldr r0, _080482A4
str r0, [sp, 0x8]
str r1, [sp, 0xC]
str r1, [sp, 0x10]
str r1, [sp, 0x14]
adds r0, r4, 0
adds r1, r5, 0
movs r3, 0x1
bl sub_806F370
b _080482B4
.align 2, 0
_080482A0: .4byte gUnknown_80F4FAC
_080482A4: .4byte 0x00000217
_080482A8:
ldr r0, _080482CC
ldr r2, [r0]
adds r0, r4, 0
adds r1, r5, 0
bl sub_80522F4
_080482B4:
adds r0, r4, 0
bl sub_8071DA4
_080482BA:
add sp, 0x1C
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080482CC: .4byte gUnknown_80FE458
thumb_func_end sub_80479B8
thumb_func_start nullsub_205
nullsub_205:
bx lr
thumb_func_end nullsub_205
thumb_func_start sub_80482D4
sub_80482D4:
push {r4,r5,lr}
adds r5, r0, 0
adds r4, r1, 0
ldr r1, _080482F8
adds r0, r4, 0
movs r2, 0x1
bl sub_808417C
adds r2, r0, 0
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_8075C58
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080482F8: .4byte gUnknown_80F4E74
thumb_func_end sub_80482D4
thumb_func_start sub_80482FC
sub_80482FC:
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
sub sp, 0xC
mov r8, r0
mov r9, r1
adds r6, r2, 0
lsls r4, r3, 24
lsrs r4, 24
add r5, sp, 0x4
ldr r1, _0804833C
adds r0, r5, 0
bl sub_8092A88
strb r6, [r5, 0x4]
movs r3, 0x80
lsls r3, 1
str r4, [sp]
mov r0, r8
mov r1, r9
add r2, sp, 0x4
bl sub_8055640
add sp, 0xC
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0804833C: .4byte 0x00000195
thumb_func_end sub_80482FC
thumb_func_start sub_8048340
sub_8048340:
push {r4,lr}
sub sp, 0x18
movs r4, 0
str r4, [sp]
str r4, [sp, 0x4]
movs r3, 0x84
lsls r3, 2
str r3, [sp, 0x8]
str r4, [sp, 0xC]
str r4, [sp, 0x10]
str r4, [sp, 0x14]
movs r3, 0x1
bl sub_806F370
add sp, 0x18
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8048340
thumb_func_start sub_8048364
sub_8048364:
push {lr}
lsls r3, r2, 24
lsrs r3, 24
movs r2, 0x1
bl sub_8079F20
pop {r0}
bx r0
thumb_func_end sub_8048364
thumb_func_start sub_8048374
sub_8048374:
push {r4,lr}
sub sp, 0x4
ldr r2, _08048394
movs r3, 0
ldrsh r2, [r2, r3]
ldr r3, _08048398
movs r4, 0
ldrsh r3, [r3, r4]
movs r4, 0x1
str r4, [sp]
bl sub_8077C44
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08048394: .4byte gUnknown_80F4FB6
_08048398: .4byte gUnknown_80F4FB8
thumb_func_end sub_8048374
thumb_func_start sub_804839C
sub_804839C:
push {r4,lr}
sub sp, 0x4
ldr r2, _080483BC
movs r3, 0
ldrsh r2, [r2, r3]
ldr r3, _080483C0
movs r4, 0
ldrsh r3, [r3, r4]
movs r4, 0x1
str r4, [sp]
bl sub_8077C44
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080483BC: .4byte gUnknown_80F4FBA
_080483C0: .4byte gUnknown_80F4FBC
thumb_func_end sub_804839C
thumb_func_start sub_80483C4
sub_80483C4:
push {lr}
ldr r2, _080483D0
bl sub_80792F8
pop {r0}
bx r0
.align 2, 0
_080483D0: .4byte 0x000003e7
thumb_func_end sub_80483C4
thumb_func_start sub_80483D4
sub_80483D4:
push {r4,lr}
sub sp, 0x4
ldr r2, _080483F0
movs r4, 0
ldrsh r3, [r2, r4]
movs r2, 0x1
str r2, [sp]
movs r2, 0
bl sub_8077C44
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080483F0: .4byte gUnknown_80F4FBE
thumb_func_end sub_80483D4
thumb_func_start sub_80483F4
sub_80483F4:
push {lr}
bl sub_8079140
pop {r0}
bx r0
thumb_func_end sub_80483F4
thumb_func_start sub_8048400
sub_8048400:
push {lr}
bl sub_80791D8
pop {r0}
bx r0
thumb_func_end sub_8048400
thumb_func_start sub_804840C
sub_804840C:
push {lr}
movs r2, 0
movs r3, 0x1
bl sub_8077910
pop {r0}
bx r0
thumb_func_end sub_804840C
thumb_func_start sub_804841C
sub_804841C:
push {lr}
bl sub_8079270
pop {r0}
bx r0
thumb_func_end sub_804841C
thumb_func_start sub_8048428
sub_8048428:
push {lr}
adds r3, r0, 0
ldr r0, [r1, 0x70]
adds r0, 0xAC
ldrb r0, [r0]
cmp r0, 0x4
bne _0804843E
adds r0, r3, 0
bl sub_807A290
b _08048448
_0804843E:
ldr r0, _0804844C
ldr r2, [r0]
adds r0, r3, 0
bl sub_80522F4
_08048448:
pop {r0}
bx r0
.align 2, 0
_0804844C: .4byte gUnknown_80F89F4
thumb_func_end sub_8048428
thumb_func_start sub_8048450
sub_8048450:
push {lr}
adds r3, r0, 0
ldr r0, [r1, 0x70]
adds r0, 0xAC
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _0804846C
adds r0, r3, 0
bl sub_807A290
b _08048476
_0804846C:
ldr r0, _0804847C
ldr r2, [r0]
adds r0, r3, 0
bl sub_80522F4
_08048476:
pop {r0}
bx r0
.align 2, 0
_0804847C: .4byte gUnknown_80F89F4
thumb_func_end sub_8048450
.align 2,0 @ Don't pad with nop