summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_8012A18.s43754
-rw-r--r--asm/code_803D110.s43716
-rw-r--r--data/personality_test.inc8
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_8012A18.c25
5 files changed, 43749 insertions, 43756 deletions
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s
index 2588ea3..655d6c8 100644
--- a/asm/code_8012A18.s
+++ b/asm/code_8012A18.s
@@ -84284,7 +84284,7 @@ sub_803C870:
b _0803C8F8
.align 2, 0
_0803C8A4: .4byte gUnknown_203B400
-_0803C8A8: .4byte gUnknown_80F273C
+_0803C8A8: .4byte gGenderText
_0803C8AC: .4byte gUnknown_80F275C
_0803C8B0: .4byte 0x00000101
_0803C8B4:
@@ -84538,7 +84538,7 @@ _0803CA7A:
pop {r0}
bx r0
.align 2, 0
-_0803CA80: .4byte gUnknown_80F27C4
+_0803CA80: .4byte gStarterReveal
_0803CA84: .4byte 0x00000101
_0803CA88: .4byte gUnknown_203B400
thumb_func_end sub_803CA54
@@ -85355,43754 +85355,4 @@ _0803D0D0: .4byte gUnknown_203B404
_0803D0D4: .4byte gPartners
thumb_func_end sub_803D030
- thumb_func_start sub_803D0D8
-sub_803D0D8:
- ldr r0, _0803D0E0
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0803D0E0: .4byte gUnknown_203B408
- thumb_func_end sub_803D0D8
-
- thumb_func_start sub_803D0E4
-sub_803D0E4:
- ldr r1, _0803D0EC
- strb r0, [r1]
- bx lr
- .align 2, 0
-_0803D0EC: .4byte gUnknown_203B408
- thumb_func_end sub_803D0E4
-
- thumb_func_start sub_803D0F0
-sub_803D0F0:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0803D0FC
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0803D0FC: .4byte gUnknown_80F42F0
- thumb_func_end sub_803D0F0
-
- thumb_func_start sub_803D100
-sub_803D100:
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0803D10C
- adds r0, r1
- ldrb r0, [r0]
- bx lr
- .align 2, 0
-_0803D10C: .4byte gUnknown_80F42D0
- thumb_func_end sub_803D100
-
- 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
-
- thumb_func_start sub_8048480
-sub_8048480:
- push {lr}
- movs r2, 0
- movs r3, 0
- bl sub_807D148
- pop {r0}
- bx r0
- thumb_func_end sub_8048480
-
- thumb_func_start sub_8048490
-sub_8048490:
- push {lr}
- bl sub_8075FCC
- pop {r0}
- bx r0
- thumb_func_end sub_8048490
-
- thumb_func_start sub_804849C
-sub_804849C:
- push {lr}
- movs r2, 0x1
- bl sub_8077AE4
- pop {r0}
- bx r0
- thumb_func_end sub_804849C
-
- thumb_func_start sub_80484A8
-sub_80484A8:
- push {lr}
- sub sp, 0x4
- movs r2, 0x1
- str r2, [sp]
- movs r3, 0x1
- bl sub_8072008
- add sp, 0x4
- pop {r0}
- bx r0
- thumb_func_end sub_80484A8
-
- thumb_func_start sub_80484BC
-sub_80484BC:
- push {lr}
- bl sub_8076D10
- pop {r0}
- bx r0
- thumb_func_end sub_80484BC
-
- thumb_func_start sub_80484C8
-sub_80484C8:
- push {lr}
- ldr r2, _080484D8
- ldr r2, [r2]
- bl sub_80522F4
- pop {r0}
- bx r0
- .align 2, 0
-_080484D8: .4byte gUnknown_80F89F4
- thumb_func_end sub_80484C8
-
- thumb_func_start sub_80484DC
-sub_80484DC:
- push {lr}
- movs r2, 0x1
- bl sub_807232C
- pop {r0}
- bx r0
- thumb_func_end sub_80484DC
-
- thumb_func_start sub_80484E8
-sub_80484E8:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, [r4, 0x70]
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08048500
- adds r0, r5, 0
- bl sub_807A290
- b _08048516
-_08048500:
- ldr r0, _0804851C
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08048520
- ldr r2, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_80522F4
-_08048516:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804851C: .4byte gUnknown_202DF98
-_08048520: .4byte gUnknown_80FB580
- thumb_func_end sub_80484E8
-
- thumb_func_start sub_8048524
-sub_8048524:
- push {r4-r6,lr}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- ldr r0, [r4, 0x70]
- adds r5, r0, 0
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _08048542
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x5
- bl sub_8078A58
- b _080485A4
-_08048542:
- ldr r0, _08048560
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- adds r0, r4, 0
- movs r1, 0x12
- bl sub_80718D8
- lsls r0, 24
- cmp r0, 0
- beq _08048568
- ldr r0, _08048564
- b _08048586
- .align 2, 0
-_08048560: .4byte gUnknown_202DF98
-_08048564: .4byte gUnknown_8100298
-_08048568:
- movs r0, 0x9E
- lsls r0, 1
- adds r5, r0
- ldr r0, [r5]
- bl sub_8094450
- cmp r0, 0
- beq _08048598
- mov r0, sp
- movs r1, 0
- bl sub_80943A0
- ldr r0, [sp]
- str r0, [r5]
- ldr r0, _08048594
-_08048586:
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80522F4
- b _080485A4
- .align 2, 0
-_08048594: .4byte gUnknown_80F9740
-_08048598:
- ldr r0, _080485AC
- ldr r2, [r0]
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_80522F4
-_080485A4:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080485AC: .4byte gUnknown_80F9760
- thumb_func_end sub_8048524
-
- thumb_func_start sub_80485B0
-sub_80485B0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r0
- mov r8, r1
- movs r0, 0
- str r0, [sp]
- movs r2, 0x1
- mov r10, r2
- ldr r4, [r1, 0x70]
- movs r0, 0x64
- bl sub_8084100
- ldr r1, _0804865C
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r0, r1
- bge _080485DE
- movs r0, 0x3
- mov r10, r0
-_080485DE:
- ldrb r0, [r4, 0x7]
- cmp r0, 0
- beq _0804867C
- movs r2, 0x8C
- lsls r2, 1
- adds r4, r2
- adds r5, r4, 0
- movs r7, 0x3
-_080485EE:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804862C
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0804862C
- adds r0, r5, 0
- bl sub_8092BC0
- cmp r0, 0
- beq _0804862C
- ldrb r6, [r4, 0x5]
- adds r0, r5, 0
- bl sub_8092C0C
- adds r1, r0, 0
- ldrb r0, [r4, 0x5]
- add r0, r10
- strb r0, [r4, 0x5]
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- blt _08048622
- strb r1, [r4, 0x5]
-_08048622:
- ldrb r0, [r4, 0x5]
- cmp r6, r0
- beq _0804862C
- movs r2, 0x1
- str r2, [sp]
-_0804862C:
- adds r4, 0x8
- adds r5, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _080485EE
- ldr r0, [sp]
- cmp r0, 0
- beq _08048668
- ldr r0, _08048660
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
- mov r2, r10
- cmp r2, 0x1
- beq _08048688
- movs r0, 0xA
- movs r1, 0x40
- bl sub_803E708
- ldr r0, _08048664
- b _0804866A
- .align 2, 0
-_0804865C: .4byte gUnknown_80F4F46
-_08048660: .4byte gUnknown_80FE454
-_08048664: .4byte gUnknown_80FE434
-_08048668:
- ldr r0, _08048678
-_0804866A:
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
- b _08048688
- .align 2, 0
-_08048678: .4byte gUnknown_80FE40C
-_0804867C:
- ldr r0, _08048698
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
-_08048688:
- 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
-_08048698: .4byte gUnknown_80FE40C
- thumb_func_end sub_80485B0
-
- thumb_func_start sub_804869C
-sub_804869C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x1C
- adds r4, r0, 0
- adds r7, r1, 0
- lsls r2, 24
- cmp r2, 0
- beq _08048724
- ldr r5, [r7, 0x70]
- ldr r0, _080486D4
- ldr r0, [r0]
- ldr r1, _080486D8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080486E4
- ldr r0, _080486DC
- movs r1, 0
- ldrsh r6, [r0, r1]
- ldr r0, _080486E0
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80522F4
- b _080486EA
- .align 2, 0
-_080486D4: .4byte gUnknown_203B418
-_080486D8: .4byte 0x00000675
-_080486DC: .4byte gUnknown_80F4FA8
-_080486E0: .4byte gUnknown_80FEAE8
-_080486E4:
- ldr r0, _0804871C
- movs r1, 0
- ldrsh r6, [r0, r1]
-_080486EA:
- adds r0, r5, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080486FC
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_807A324
-_080486FC:
- add r0, sp, 0x18
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _08048720
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r4, 0
- adds r1, r7, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_806F370
- b _080487B6
- .align 2, 0
-_0804871C: .4byte gUnknown_80F4FA4
-_08048720: .4byte 0x00000216
-_08048724:
- adds r0, r4, 0
- bl sub_8042520
- adds r0, r4, 0
- bl sub_80696FC
- adds r5, r0, 0
- cmp r5, 0
- bne _08048748
- ldr r0, _08048744
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80522F4
- b _080487B6
- .align 2, 0
-_08048744: .4byte gUnknown_80FDBA0
-_08048748:
- ldr r1, [r5, 0x70]
- mov r8, r1
- ldr r0, _08048770
- ldr r0, [r0]
- ldr r1, _08048774
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08048780
- ldr r0, _08048778
- movs r1, 0
- ldrsh r6, [r0, r1]
- ldr r0, _0804877C
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_80522F4
- b _08048786
- .align 2, 0
-_08048770: .4byte gUnknown_203B418
-_08048774: .4byte 0x00000675
-_08048778: .4byte gUnknown_80F4FAA
-_0804877C: .4byte gUnknown_80FEAE8
-_08048780:
- ldr r0, _080487C4
- movs r1, 0
- ldrsh r6, [r0, r1]
-_08048786:
- mov r0, r8
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08048798
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_807A324
-_08048798:
- add r0, sp, 0x18
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _080487C8
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_806F370
-_080487B6:
- add sp, 0x1C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080487C4: .4byte gUnknown_80F4FA6
-_080487C8: .4byte 0x00000216
- thumb_func_end sub_804869C
-
- thumb_func_start sub_80487CC
-sub_80487CC:
- push {r4,lr}
- sub sp, 0x4
- movs r4, 0x1
- str r4, [sp]
- bl sub_8078B5C
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80487CC
-
- thumb_func_start sub_80487E0
-sub_80487E0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- mov r9, r0
- mov r8, r1
- lsls r3, r2, 24
- ldr r5, [r1, 0x70]
- ldr r4, _08048858
- lsrs r3, 23
- adds r0, r5, 0
- adds r0, 0x5C
- ldrb r0, [r0]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r3, r1
- adds r0, r1, r4
- movs r2, 0
- ldrsh r6, [r0, r2]
- adds r0, r5, 0
- adds r0, 0x5D
- ldrb r2, [r0]
- lsls r0, r2, 3
- adds r0, r2
- lsls r0, 2
- adds r3, r0
- adds r4, r3, r4
- movs r2, 0
- ldrsh r0, [r4, r2]
- adds r6, r0
- ldr r0, _0804885C
- adds r1, r0
- movs r4, 0
- ldrsh r2, [r1, r4]
- adds r3, r0
- movs r1, 0
- ldrsh r0, [r3, r1]
- adds r2, r0
- movs r0, 0x1
- str r0, [sp]
- mov r0, r9
- mov r1, r8
- movs r3, 0
- bl sub_8078B5C
- ldrb r0, [r5, 0x6]
- cmp r0, 0
- bne _08048906
- adds r0, r5, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _08048852
- cmp r0, 0x47
- bne _08048860
-_08048852:
- movs r0, 0x1
- b _08048862
- .align 2, 0
-_08048858: .4byte gUnknown_810A580
-_0804885C: .4byte gUnknown_810A808
-_08048860:
- movs r0, 0
-_08048862:
- cmp r0, 0
- bne _08048906
- movs r2, 0xC
- ldrsh r7, [r5, r2]
- ldrh r0, [r5, 0xC]
- adds r0, r6
- strh r0, [r5, 0xC]
- adds r2, r7, r6
- lsls r0, 16
- cmp r0, 0
- bgt _0804887C
- movs r0, 0x1
- strh r0, [r5, 0xC]
-_0804887C:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- ldr r1, _080488A0
- cmp r0, r1
- ble _08048888
- strh r1, [r5, 0xC]
-_08048888:
- movs r1, 0xC
- ldrsh r0, [r5, r1]
- cmp r7, r0
- bne _080488A8
- ldr r0, _080488A4
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
- b _08048906
- .align 2, 0
-_080488A0: .4byte 0x000003e7
-_080488A4: .4byte gUnknown_80FD644
-_080488A8:
- subs r0, r2, r7
- movs r2, 0
- cmp r0, 0x8
- bgt _080488BE
- movs r2, 0x1
- cmp r0, 0x4
- bgt _080488BE
- movs r2, 0x3
- cmp r0, 0x2
- ble _080488BE
- movs r2, 0x2
-_080488BE:
- movs r4, 0xC
- ldrsh r0, [r5, r4]
- subs r0, r7
- movs r4, 0
- cmp r0, 0x8
- bgt _080488D8
- movs r4, 0x1
- cmp r0, 0x4
- bgt _080488D8
- movs r4, 0x3
- cmp r0, 0x2
- ble _080488D8
- movs r4, 0x2
-_080488D8:
- ldr r1, _08048914
- lsls r0, r2, 2
- adds r0, r1
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
- ldr r1, _08048918
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- mov r0, r9
- mov r1, r8
- bl sub_80522F4
- mov r0, r8
- bl sub_807191C
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_806A7E8
-_08048906:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08048914: .4byte gUnknown_80FD648
-_08048918: .4byte gUnknown_80FD6E8
- thumb_func_end sub_80487E0
-
- thumb_func_start sub_804891C
-sub_804891C:
- push {lr}
- movs r2, 0x3
- bl sub_80793B0
- pop {r0}
- bx r0
- thumb_func_end sub_804891C
-
- thumb_func_start sub_8048928
-sub_8048928:
- push {lr}
- movs r2, 0x3
- bl sub_8079420
- pop {r0}
- bx r0
- thumb_func_end sub_8048928
-
- thumb_func_start sub_8048934
-sub_8048934:
- push {lr}
- movs r2, 0x3
- bl sub_8079490
- pop {r0}
- bx r0
- thumb_func_end sub_8048934
-
- thumb_func_start sub_8048940
-sub_8048940:
- push {lr}
- movs r2, 0x3
- bl sub_8079500
- pop {r0}
- bx r0
- thumb_func_end sub_8048940
-
- thumb_func_start nullsub_94
-nullsub_94:
- bx lr
- thumb_func_end nullsub_94
-
- thumb_func_start sub_8048950
-sub_8048950:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r0
- mov r8, r1
- ldrb r0, [r1, 0x2]
- bl sub_80913CC
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08048988
- ldr r0, _08048984
-_08048978:
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- b _08048A58
- .align 2, 0
-_08048984: .4byte gUnknown_80FE3E8
-_08048988:
- mov r1, r8
- ldrb r0, [r1, 0x2]
- bl sub_80915A0
- lsls r0, 24
- cmp r0, 0
- beq _080489A0
- ldr r0, _0804899C
- b _08048978
- .align 2, 0
-_0804899C: .4byte gUnknown_81006CC
-_080489A0:
- movs r7, 0
-_080489A2:
- ldr r0, _080489FC
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08048A00
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08048A12
- ldr r6, [r4, 0x70]
- movs r0, 0x2
- ldrsh r1, [r6, r0]
- mov r0, r9
- 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 _080489DC
- movs r5, 0
-_080489DC:
- adds r0, r6, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080489E8
- movs r5, 0
-_080489E8:
- adds r0, r6, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _080489F6
- cmp r0, 0x47
- bne _08048A04
-_080489F6:
- movs r0, 0x1
- b _08048A06
- .align 2, 0
-_080489FC: .4byte gUnknown_203B418
-_08048A00: .4byte 0x0001357c
-_08048A04:
- movs r0, 0
-_08048A06:
- cmp r0, 0
- beq _08048A0C
- movs r5, 0
-_08048A0C:
- ldr r1, _08048A50
- adds r0, r6, r1
- strb r5, [r0]
-_08048A12:
- adds r7, 0x1
- cmp r7, 0x3
- ble _080489A2
- movs r0, 0
- movs r1, 0x1
- bl sub_8062978
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08048A58
- mov r0, r10
- mov r1, r8
- bl sub_804245C
- adds r0, r4, 0
- mov r1, r9
- bl sub_8072938
- lsls r0, 24
- cmp r0, 0
- beq _08048A58
- ldr r2, _08048A54
- mov r0, r10
- movs r1, 0
- bl sub_8044E24
- movs r0, 0x1
- b _08048A5A
- .align 2, 0
-_08048A50: .4byte 0x00000157
-_08048A54: .4byte 0x00000141
-_08048A58:
- movs r0, 0
-_08048A5A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048950
-
- thumb_func_start sub_8048A68
-sub_8048A68:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- mov r8, r1
- ldrb r1, [r1]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08048A90
- ldr r0, _08048A8C
-_08048A80:
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- b _08048B8C
- .align 2, 0
-_08048A8C: .4byte gUnknown_80FE3E8
-_08048A90:
- ldr r0, _08048AA4
- ldr r0, [r0]
- ldr r1, _08048AA8
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _08048AB0
- ldr r0, _08048AAC
- b _08048A80
- .align 2, 0
-_08048AA4: .4byte gUnknown_203B418
-_08048AA8: .4byte 0x0000065c
-_08048AAC: .4byte gUnknown_80F9BD8
-_08048AB0:
- movs r7, 0
-_08048AB2:
- ldr r0, _08048B24
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08048B28
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08048B4A
- ldr r5, [r4, 0x70]
- movs r6, 0x1
- ldrb r0, [r5, 0xA]
- cmp r0, 0x3
- bhi _08048AF4
- ldr r2, _08048B2C
- ldrb r1, [r5, 0xA]
- movs r0, 0x64
- muls r1, r0
- ldr r0, _08048B30
- adds r1, r0
- ldr r0, [r2]
- adds r0, r1
- movs r1, 0xA
- ldrsh r0, [r0, r1]
- bl sub_806A538
- lsls r0, 24
- cmp r0, 0
- beq _08048AF6
-_08048AF4:
- movs r6, 0
-_08048AF6:
- adds r0, r4, 0
- movs r1, 0
- bl sub_8070B6C
- lsls r0, 24
- cmp r0, 0
- beq _08048B06
- movs r6, 0
-_08048B06:
- adds r0, r5, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08048B12
- movs r6, 0
-_08048B12:
- adds r0, r5, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _08048B20
- cmp r0, 0x47
- bne _08048B34
-_08048B20:
- movs r0, 0x1
- b _08048B36
- .align 2, 0
-_08048B24: .4byte gUnknown_203B418
-_08048B28: .4byte 0x0001357c
-_08048B2C: .4byte gUnknown_203B45C
-_08048B30: .4byte 0x00008df8
-_08048B34:
- movs r0, 0
-_08048B36:
- cmp r0, 0
- beq _08048B3C
- movs r6, 0
-_08048B3C:
- ldrb r0, [r5, 0x7]
- cmp r0, 0
- beq _08048B44
- movs r6, 0
-_08048B44:
- ldr r2, _08048B84
- adds r0, r5, r2
- strb r6, [r0]
-_08048B4A:
- adds r7, 0x1
- cmp r7, 0x3
- ble _08048AB2
- movs r0, 0
- movs r1, 0x1
- bl sub_8062978
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08048B8C
- mov r0, r9
- mov r1, r8
- bl sub_804245C
- ldr r0, _08048B88
- ldr r0, [r0]
- adds r0, 0xBC
- str r4, [r0]
- movs r2, 0xA1
- lsls r2, 1
- mov r0, r9
- movs r1, 0
- bl sub_8044E24
- movs r0, 0x1
- b _08048B8E
- .align 2, 0
-_08048B84: .4byte 0x00000157
-_08048B88: .4byte gUnknown_203B418
-_08048B8C:
- movs r0, 0
-_08048B8E:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048A68
-
- thumb_func_start sub_8048B9C
-sub_8048B9C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x20
- mov r9, r0
- movs r0, 0
- mov r8, r0
- mov r2, r9
- ldr r0, [r2, 0x70]
- adds r6, r0, 0
- adds r6, 0x44
- ldrb r1, [r1]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08048BD4
- ldr r0, _08048BD0
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- movs r0, 0
- b _08048D40
- .align 2, 0
-_08048BD0: .4byte gUnknown_80FE3E8
-_08048BD4:
- movs r2, 0
-_08048BD6:
- ldr r0, _08048C28
- ldr r0, [r0]
- lsls r1, r2, 2
- ldr r3, _08048C2C
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- str r2, [sp, 0x1C]
- bl sub_80450E0
- lsls r0, 24
- ldr r2, [sp, 0x1C]
- cmp r0, 0
- beq _08048C3E
- ldr r5, [r4, 0x70]
- movs r7, 0x1
- adds r0, r4, 0
- movs r1, 0
- bl sub_8070B6C
- lsls r0, 24
- ldr r2, [sp, 0x1C]
- cmp r0, 0
- beq _08048C0A
- movs r7, 0
-_08048C0A:
- adds r0, r5, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08048C16
- movs r7, 0
-_08048C16:
- adds r0, r5, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _08048C24
- cmp r0, 0x47
- bne _08048C30
-_08048C24:
- movs r0, 0x1
- b _08048C32
- .align 2, 0
-_08048C28: .4byte gUnknown_203B418
-_08048C2C: .4byte 0x0001357c
-_08048C30:
- movs r0, 0
-_08048C32:
- cmp r0, 0
- beq _08048C38
- movs r7, 0
-_08048C38:
- ldr r4, _08048C5C
- adds r0, r5, r4
- strb r7, [r0]
-_08048C3E:
- adds r2, 0x1
- cmp r2, 0x3
- ble _08048BD6
- movs r0, 0
- movs r1, 0x1
- bl sub_8062978
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- bne _08048C60
- movs r0, 0
- b _08048D40
- .align 2, 0
-_08048C5C: .4byte 0x00000157
-_08048C60:
- add r1, sp, 0x4
- adds r0, r6, 0
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- b _08048CE2
-_08048C6E:
- ldrh r0, [r6]
- cmp r0, 0x1D
- bne _08048C7C
- adds r0, r6, 0
- bl sub_80637E8
- b _08048CE2
-_08048C7C:
- cmp r0, 0x20
- bne _08048C9A
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- adds r0, r6, 0
- bl sub_8063BB4
- movs r0, 0x1
- bl sub_8044C10
- movs r5, 0x1
- mov r8, r5
- b _08048CE2
-_08048C9A:
- cmp r0, 0x21
- bne _08048CB6
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- adds r0, r6, 0
- movs r1, 0
- bl sub_8063CF0
- movs r0, 0x1
- bl sub_8044C10
- b _08048CE2
-_08048CB6:
- cmp r0, 0x1E
- beq _08048CBE
- cmp r0, 0x33
- bne _08048CD0
-_08048CBE:
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- adds r0, r6, 0
- movs r1, 0
- bl sub_8063A70
- b _08048CE2
-_08048CD0:
- cmp r0, 0x1F
- bne _08048CE2
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- adds r0, r6, 0
- bl sub_8063B54
-_08048CE2:
- adds r0, r6, 0
- bl sub_8044C88
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0
- bl sub_8062F90
- lsls r0, 24
- cmp r0, 0
- beq _08048C6E
- mov r0, r8
- cmp r0, 0
- beq _08048D38
- ldr r0, _08048D34
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl sub_8052B8C
- cmp r0, 0x1
- bne _08048C6E
- adds r1, r6, 0
- add r0, sp, 0x4
- ldm r0!, {r2-r4}
- stm r1!, {r2-r4}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- mov r0, r9
- movs r1, 0
- movs r2, 0x6E
- bl sub_8044DF0
- adds r0, r6, 0
- movs r1, 0x2C
- bl sub_8044C94
- b _08048D3E
- .align 2, 0
-_08048D34: .4byte gUnknown_80FECA0
-_08048D38:
- movs r0, 0x1
- bl sub_8044C10
-_08048D3E:
- mov r0, r8
-_08048D40:
- add sp, 0x20
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048B9C
-
- thumb_func_start sub_8048D50
-sub_8048D50:
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r1, 0
- ldr r3, [r4, 0x70]
- ldrb r1, [r2]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08048D78
- ldr r0, _08048D70
- adds r1, r2, 0
- bl sub_8045BF8
- ldr r0, _08048D74
- b _08048D9A
- .align 2, 0
-_08048D70: .4byte gUnknown_202DE58
-_08048D74: .4byte gUnknown_80FE3E8
-_08048D78:
- adds r0, r3, 0
- adds r0, 0xEC
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08048DB0
- ldrb r0, [r2, 0x2]
- bl sub_8091570
- lsls r0, 24
- cmp r0, 0
- beq _08048DB0
- ldr r0, _08048DA8
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08048DAC
-_08048D9A:
- ldr r1, [r0]
- adds r0, r4, 0
- bl sub_80522A8
- movs r0, 0
- b _08048DB2
- .align 2, 0
-_08048DA8: .4byte gUnknown_202DF98
-_08048DAC: .4byte gUnknown_80FDCA4
-_08048DB0:
- movs r0, 0x1
-_08048DB2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8048D50
-
- thumb_func_start sub_8048DB8
-sub_8048DB8:
- push {r4,lr}
- sub sp, 0x1C
- adds r3, r0, 0
- adds r4, r1, 0
- lsls r2, 24
- cmp r2, 0
- beq _08048DF4
- ldr r0, _08048DEC
- movs r1, 0
- ldrsh r2, [r0, r1]
- add r0, sp, 0x18
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _08048DF0
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r3, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_806F370
- b _08048DFA
- .align 2, 0
-_08048DEC: .4byte gUnknown_80F4FAC
-_08048DF0: .4byte 0x00000217
-_08048DF4:
- adds r0, r3, 0
- bl sub_8051E7C
-_08048DFA:
- add sp, 0x1C
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8048DB8
-
- thumb_func_start sub_8048E04
-sub_8048E04:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r6, r1, 0
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8078B5C
- movs r0, 0x5
- bl sub_8084100
- cmp r0, 0x4
- bhi _08048E9E
- lsls r0, 2
- ldr r1, _08048E30
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048E30: .4byte _08048E34
- .align 2, 0
-_08048E34:
- .4byte _08048E48
- .4byte _08048E54
- .4byte _08048E5E
- .4byte _08048E6C
- .4byte _08048E78
-_08048E48:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_80763F8
- b _08048E9E
-_08048E54:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80769CC
- b _08048E9E
-_08048E5E:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- movs r3, 0x1
- bl sub_8076210
- b _08048E9E
-_08048E6C:
- adds r0, r5, 0
- adds r1, r6, 0
- movs r2, 0x1
- bl sub_8077780
- b _08048E9E
-_08048E78:
- ldr r0, _08048EA8
- ldr r2, [r0]
- movs r4, 0x1
- str r4, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r3, 0x3
- bl sub_8076E20
- ldr r0, _08048EAC
- ldr r2, [r0]
- str r4, [sp]
- str r4, [sp, 0x4]
- adds r0, r5, 0
- adds r1, r6, 0
- movs r3, 0x3
- bl sub_8076E20
-_08048E9E:
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08048EA8: .4byte gUnknown_8106A4C
-_08048EAC: .4byte gUnknown_8106A50
- thumb_func_end sub_8048E04
-
- thumb_func_start sub_8048EB0
-sub_8048EB0:
- push {lr}
- ldr r1, _08048EC0
- ldr r1, [r1]
- bl sub_80522A8
- pop {r0}
- bx r0
- .align 2, 0
-_08048EC0: .4byte gUnknown_81003E0
- thumb_func_end sub_8048EB0
-
- thumb_func_start sub_8048EC4
-sub_8048EC4:
- push {lr}
- ldr r1, _08048ED4
- ldr r1, [r1]
- bl sub_80522A8
- pop {r0}
- bx r0
- .align 2, 0
-_08048ED4: .4byte gUnknown_8100404
- thumb_func_end sub_8048EC4
-
- thumb_func_start sub_8048ED8
-sub_8048ED8:
- push {lr}
- ldr r1, _08048EE8
- ldr r1, [r1]
- bl sub_80522A8
- pop {r0}
- bx r0
- .align 2, 0
-_08048EE8: .4byte gUnknown_8100428
- thumb_func_end sub_8048ED8
-
- thumb_func_start sub_8048EEC
-sub_8048EEC:
- push {lr}
- ldr r1, _08048EFC
- ldr r1, [r1]
- bl sub_80522A8
- pop {r0}
- bx r0
- .align 2, 0
-_08048EFC: .4byte gUnknown_810044C
- thumb_func_end sub_8048EEC
-
- thumb_func_start sub_8048F00
-sub_8048F00:
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0xD6
- bl sub_80421C0
- ldr r0, _08048F24
- ldr r1, [r0]
- adds r0, r4, 0
- bl sub_80522A8
- movs r0, 0x3C
- movs r1, 0x46
- bl sub_803E708
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048F24: .4byte gUnknown_8100494
- thumb_func_end sub_8048F00
-
- thumb_func_start sub_8048F28
-sub_8048F28:
- push {r4-r7,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r3, [r4, 0x70]
- movs r6, 0
- movs r0, 0x1
- adds r5, r2, 0
- ands r5, r0
- lsrs r2, 1
- movs r0, 0x1
- ands r2, r0
- ldrb r0, [r1, 0x2]
- subs r0, 0x1
- cmp r0, 0xCC
- bls _08048F48
- b _080494E0
-_08048F48:
- lsls r0, 2
- ldr r1, _08048F54
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08048F54: .4byte _08048F58
- .align 2, 0
-_08048F58:
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _0804928C
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _08049408
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _08049296
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080492B0
- .4byte _080492B0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _08049320
- .4byte _080494E0
- .4byte _080492B8
- .4byte _080492B8
- .4byte _0804935E
- .4byte _080494E0
- .4byte _080493E0
- .4byte _0804948E
- .4byte _08049394
- .4byte _08049344
- .4byte _0804946E
- .4byte _0804947A
- .4byte _08049378
- .4byte _080493CE
- .4byte _080493AC
- .4byte _080493B8
- .4byte _08049436
- .4byte _080494E0
- .4byte _080493F6
- .4byte _080494B2
- .4byte _0804946A
- .4byte _08049462
- .4byte _08049454
- .4byte _08049498
- .4byte _080492DC
- .4byte _0804932C
- .4byte _08049338
- .4byte _0804933C
- .4byte _08049340
- .4byte _080494C2
- .4byte _080494C2
- .4byte _080494D6
- .4byte _080494C2
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494E0
- .4byte _080494DA
-_0804928C:
- cmp r5, 0
- bne _08049292
- b _080494E2
-_08049292:
- movs r6, 0x46
- b _080494E2
-_08049296:
- cmp r5, 0
- bne _0804929C
- b _080494E0
-_0804929C:
- movs r1, 0x9E
- lsls r1, 1
- adds r0, r3, r1
- ldr r0, [r0]
- bl sub_8094450
- cmp r0, 0
- ble _080492AE
- b _0804948A
-_080492AE:
- b _080494E0
-_080492B0:
- cmp r5, 0
- beq _080492B6
- b _0804948A
-_080492B6:
- b _080494E0
-_080492B8:
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- movs r2, 0x10
- ldrsh r0, [r3, r2]
- cmp r1, r0
- blt _080492C6
- b _080494E2
-_080492C6:
- cmp r0, 0
- bge _080492CC
- adds r0, 0x3
-_080492CC:
- asrs r0, 2
- cmp r1, r0
- ble _080492D4
- b _080494E2
-_080492D4:
- cmp r5, 0
- bne _080492DA
- b _08049420
-_080492DA:
- b _08049432
-_080492DC:
- movs r6, 0
- movs r0, 0x8C
- lsls r0, 1
- adds r5, r3, r0
- adds r7, r5, 0
- movs r2, 0x3
-_080492E8:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804930C
- ldrb r0, [r5, 0x4]
- cmp r0, 0
- bne _080492FA
- adds r6, 0x1E
-_080492FA:
- ldrb r4, [r5, 0x4]
- adds r0, r7, 0
- str r2, [sp]
- bl sub_8092BF4
- ldr r2, [sp]
- cmp r4, r0
- beq _0804930C
- adds r6, 0x6
-_0804930C:
- adds r5, 0x8
- adds r7, 0x8
- subs r2, 0x1
- cmp r2, 0
- bge _080492E8
- cmp r6, 0x62
- bgt _0804931C
- b _080494E2
-_0804931C:
- movs r6, 0x63
- b _080494E2
-_08049320:
- adds r0, r4, 0
- bl sub_8070A58
- lsls r0, 24
- movs r6, 0
- b _080494BC
-_0804932C:
- ldrb r0, [r3, 0x14]
-_0804932E:
- movs r6, 0x64
- cmp r0, 0xF9
- bhi _08049336
- b _080494E2
-_08049336:
- b _080494E0
-_08049338:
- ldrb r0, [r3, 0x15]
- b _0804932E
-_0804933C:
- ldrb r0, [r3, 0x16]
- b _0804932E
-_08049340:
- ldrb r0, [r3, 0x17]
- b _0804932E
-_08049344:
- cmp r5, 0
- beq _0804934A
- b _080494E0
-_0804934A:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x64
- cmp r0, 0
- bne _0804935A
- b _080494E2
-_0804935A:
- movs r6, 0xA
- b _080494E2
-_0804935E:
- adds r0, r4, 0
- bl sub_8071884
- lsls r0, 24
- cmp r0, 0
- beq _0804936C
- b _080494A2
-_0804936C:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_08049378:
- ldr r0, [r4, 0x70]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r1
- ldr r0, [r0]
- cmp r0, 0x3
- ble _08049388
- b _080494A2
-_08049388:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_08049394:
- adds r0, r3, 0
- adds r0, 0xE8
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _080493A0
- b _080494A2
-_080493A0:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_080493AC:
- adds r0, r3, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _080494A2
- b _080494B2
-_080493B8:
- adds r0, r3, 0
- adds r0, 0xBC
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080494A2
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0xF
- b _080494BC
-_080493CE:
- adds r0, r3, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _080494A2
- b _08049420
-_080493E0:
- adds r0, r3, 0
- adds r0, 0xE8
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080494A2
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_080493F6:
- cmp r2, 0
- bne _0804940C
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- cmp r0, 0
- beq _080494E2
-_08049408:
- movs r6, 0x28
- b _080494E2
-_0804940C:
- movs r2, 0xE
- ldrsh r1, [r3, r2]
- movs r2, 0x10
- ldrsh r0, [r3, r2]
- cmp r1, r0
- bge _080494E2
- cmp r1, 0x13
- bgt _080494E2
- cmp r5, 0
- bne _08049432
-_08049420:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x32
- cmp r0, 0
- beq _080494E2
- movs r6, 0x64
- b _080494E2
-_08049432:
- movs r6, 0x32
- b _080494E2
-_08049436:
- adds r0, r3, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080494A2
- cmp r0, 0x5
- beq _080494A2
- cmp r0, 0x3
- beq _080494A2
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_08049454:
- adds r0, r3, 0
- adds r0, 0xA8
- ldrb r0, [r0]
- cmp r0, 0x2
- beq _080494A2
- movs r6, 0x5
- b _080494E2
-_08049462:
- ldrb r0, [r3, 0x9]
- movs r6, 0
- cmp r0, 0x62
- bhi _080494E2
-_0804946A:
- movs r6, 0x50
- b _080494E2
-_0804946E:
- adds r0, r3, 0
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _0804948A
- b _080494E0
-_0804947A:
- movs r1, 0x9E
- lsls r1, 1
- adds r0, r3, r1
- ldr r0, [r0]
- bl sub_8094450
- cmp r0, 0
- ble _080494E0
-_0804948A:
- movs r0, 0x32
- b _080494E4
-_0804948E:
- ldrb r0, [r3, 0x9]
- movs r6, 0
- cmp r0, 0x1
- bls _080494E2
- b _0804946A
-_08049498:
- adds r0, r3, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- cmp r0, 0x6
- bne _080494A6
-_080494A2:
- movs r0, 0
- b _080494E4
-_080494A6:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x5
- b _080494BC
-_080494B2:
- adds r0, r4, 0
- bl sub_80494EC
- lsls r0, 24
- movs r6, 0x1E
-_080494BC:
- cmp r0, 0
- beq _080494E2
- b _0804946A
-_080494C2:
- movs r2, 0x9E
- lsls r2, 1
- adds r0, r3, r2
- ldr r0, [r0]
- bl sub_8094450
- cmp r0, 0x9
- bgt _080494E0
- movs r0, 0x64
- b _080494E4
-_080494D6:
- movs r6, 0x1E
- b _080494E2
-_080494DA:
- movs r6, 0x14
- cmp r5, 0
- beq _080494E2
-_080494E0:
- movs r6, 0
-_080494E2:
- adds r0, r6, 0
-_080494E4:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8048F28
-
- thumb_func_start sub_80494EC
-sub_80494EC:
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
-_080494F2:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- ldr r1, _08049538
- lsls r2, r6, 2
- adds r2, r1
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r3, 0x6
- ldrsh r1, [r5, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- adds r1, r2
- bl sub_804954C
- ldr r4, [r0, 0x10]
- cmp r4, 0
- beq _0804953C
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0
- beq _0804953C
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl sub_8071598
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0804953C
- movs r0, 0x1
- b _08049544
- .align 2, 0
-_08049538: .4byte gUnknown_80F4448
-_0804953C:
- adds r6, 0x1
- cmp r6, 0x7
- ble _080494F2
- movs r0, 0
-_08049544:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80494EC
-
- thumb_func_start sub_804954C
-sub_804954C:
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- cmp r2, 0
- blt _08049584
- cmp r3, 0
- blt _08049584
- cmp r2, 0x37
- bgt _08049584
- cmp r3, 0x1F
- bgt _08049584
- ldr r0, _0804957C
- ldr r1, [r0]
- lsls r2, 2
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 5
- adds r2, r0
- ldr r0, _08049580
- adds r1, r0
- adds r1, r2
- ldr r0, [r1]
- b _08049588
- .align 2, 0
-_0804957C: .4byte gUnknown_203B418
-_08049580: .4byte 0x0000e8c0
-_08049584:
- ldr r0, _0804958C
- ldr r0, [r0]
-_08049588:
- pop {r1}
- bx r1
- .align 2, 0
-_0804958C: .4byte gUnknown_203B430
- thumb_func_end sub_804954C
-
- thumb_func_start sub_8049590
-sub_8049590:
- push {r4,r5,lr}
- adds r2, r0, 0
- adds r3, r1, 0
- cmp r2, 0
- blt _080495A6
- cmp r3, 0
- blt _080495A6
- cmp r2, 0x37
- bgt _080495A6
- cmp r3, 0x1F
- ble _080495C0
-_080495A6:
- ldr r0, _080495B8
- ldr r1, _080495BC
- adds r2, r0, 0
- ldr r1, [r1]
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- ldm r1!, {r3-r5}
- stm r2!, {r3-r5}
- b _080495D6
- .align 2, 0
-_080495B8: .4byte gUnknown_202F190
-_080495BC: .4byte gUnknown_203B430
-_080495C0:
- ldr r0, _080495DC
- ldr r1, [r0]
- lsls r2, 2
- lsls r0, r3, 3
- subs r0, r3
- lsls r0, 5
- adds r2, r0
- ldr r0, _080495E0
- adds r1, r0
- adds r1, r2
- ldr r0, [r1]
-_080495D6:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_080495DC: .4byte gUnknown_203B418
-_080495E0: .4byte 0x0000e8c0
- thumb_func_end sub_8049590
-
- thumb_func_start sub_80495E4
-sub_80495E4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r2, 0
- ldr r0, _08049658
- mov r9, r0
- mov r12, r9
- ldr r7, _0804965C
- ldr r1, _08049660
- mov r8, r1
-_080495FA:
- lsls r1, r2, 3
- lsls r0, r2, 2
- adds r6, r2, 0x1
- subs r1, r2
- adds r0, r2
- lsls r0, 2
- adds r0, r2
- lsls r0, 6
- movs r4, 0
- lsls r2, r1, 5
- mov r3, r8
- adds r5, r0, r3
- movs r3, 0x37
-_08049614:
- mov r1, r12
- ldr r0, [r1]
- adds r1, r0, r7
- adds r1, r2
- adds r0, r5
- adds r0, r4
- str r0, [r1]
- adds r4, 0x18
- adds r2, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _08049614
- adds r2, r6, 0
- cmp r2, 0x1F
- ble _080495FA
- movs r2, 0
- mov r3, r9
- ldr r1, [r3]
- ldr r4, _08049664
- adds r0, r1, r4
- movs r3, 0
- strh r2, [r0]
- adds r4, 0x2
- adds r0, r1, r4
- strh r2, [r0]
- ldr r0, _08049668
- adds r1, r0
- strb r3, [r1]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08049658: .4byte gUnknown_203B418
-_0804965C: .4byte 0x0000e8c0
-_08049660: .4byte 0x00003a18
-_08049664: .4byte 0x00003a0e
-_08049668: .4byte 0x00013570
- thumb_func_end sub_80495E4
-
- thumb_func_start sub_804966C
-sub_804966C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- ldr r1, _08049734
- ldr r0, _08049738
- mov r8, r0
- ldr r6, _0804973C
- ldr r0, [r6]
- ldr r5, _08049740
- adds r0, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- add r0, r8
- ldrb r2, [r0]
- mov r0, sp
- bl sprintf
- ldr r7, _08049744
- mov r0, sp
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r0, _08049748
- movs r1, 0
- adds r2, r4, 0
- bl sub_800AE28
- adds r0, r4, 0
- bl CloseFile
- ldr r1, _0804974C
- ldr r0, [r6]
- adds r0, r5
- movs r3, 0
- ldrsh r2, [r0, r3]
- mov r0, sp
- bl sprintf
- mov r0, sp
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- ldr r1, _08049750
- str r0, [r1]
- ldr r1, _08049754
- ldr r0, [r6]
- adds r0, r5
- movs r4, 0
- ldrsh r0, [r0, r4]
- add r0, r8
- ldrb r2, [r0]
- mov r0, sp
- bl sprintf
- mov r0, sp
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r0, [r6]
- ldr r1, _08049758
- adds r0, r1
- ldr r1, _0804975C
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
- ldr r0, [r6]
- adds r2, r0, r5
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0x3F
- bgt _08049768
- ldr r1, _08049760
- add r0, r8
- ldrb r2, [r0]
- mov r0, sp
- bl sprintf
- mov r0, sp
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r0, [r6]
- ldr r1, _08049764
- adds r0, r1
- movs r1, 0x93
- lsls r1, 4
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
- b _08049794
- .align 2, 0
-_08049734: .4byte gUnknown_80F6A04
-_08049738: .4byte gUnknown_8108EC0
-_0804973C: .4byte gUnknown_203B418
-_08049740: .4byte 0x00003a0e
-_08049744: .4byte gUnknown_83B0000
-_08049748: .4byte 0x06008000
-_0804974C: .4byte gUnknown_80F6A10
-_08049750: .4byte gUnknown_202EE88
-_08049754: .4byte gUnknown_80F6A1C
-_08049758: .4byte 0x00011884
-_0804975C: .4byte 0x00001194
-_08049760: .4byte gUnknown_80F6A28
-_08049764: .4byte 0x00012c24
-_08049768:
- ldr r1, _080497E8
- movs r3, 0
- ldrsh r2, [r2, r3]
- mov r0, sp
- bl sprintf
- mov r0, sp
- adds r1, r7, 0
- bl OpenFileAndGetFileDataPtr
- adds r4, r0, 0
- ldr r0, [r6]
- ldr r1, _080497EC
- adds r0, r1
- movs r1, 0x90
- lsls r1, 2
- adds r2, r4, 0
- bl sub_800AAA8
- adds r0, r4, 0
- bl CloseFile
-_08049794:
- ldr r1, _080497F0
- ldr r5, _080497F4
- ldr r0, [r5]
- ldr r4, _080497F8
- adds r0, r4
- movs r3, 0
- ldrsh r2, [r0, r3]
- mov r0, sp
- bl sprintf
- ldr r1, _080497FC
- mov r0, sp
- bl OpenFileAndGetFileDataPtr
- adds r1, r0, 0
- ldr r0, _08049800
- str r1, [r0]
- ldr r0, _08049804
- movs r2, 0x20
- bl sub_8004AA4
- ldr r2, _08049808
- movs r6, 0
- strb r6, [r2]
- movs r3, 0x1
- strb r3, [r2, 0x1]
- movs r0, 0x2
- strb r0, [r2, 0x2]
- movs r0, 0x3
- strb r0, [r2, 0x3]
- ldr r1, _0804980C
- ldr r0, [r5]
- adds r0, r4
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08049810
- strb r3, [r2, 0x4]
- strb r6, [r2, 0x5]
- b _08049814
- .align 2, 0
-_080497E8: .4byte gUnknown_80F6A34
-_080497EC: .4byte 0x00012c24
-_080497F0: .4byte gUnknown_80F6A40
-_080497F4: .4byte gUnknown_203B418
-_080497F8: .4byte 0x00003a0e
-_080497FC: .4byte gUnknown_83B0000
-_08049800: .4byte gUnknown_202F18C
-_08049804: .4byte gUnknown_202EE8C
-_08049808: .4byte gUnknown_202F314
-_0804980C: .4byte gUnknown_810ACC0
-_08049810:
- strb r6, [r2, 0x4]
- strb r3, [r2, 0x5]
-_08049814:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804966C
-
- thumb_func_start sub_8049820
-sub_8049820:
- push {lr}
- ldr r0, _08049838
- ldr r0, [r0]
- bl CloseFile
- ldr r0, _0804983C
- ldr r0, [r0]
- bl CloseFile
- pop {r0}
- bx r0
- .align 2, 0
-_08049838: .4byte gUnknown_202F18C
-_0804983C: .4byte gUnknown_202EE88
- thumb_func_end sub_8049820
-
- thumb_func_start sub_8049840
-sub_8049840:
- push {lr}
- ldr r0, _08049860
- ldr r0, [r0]
- ldr r1, _08049864
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_8043CE4
- lsls r0, 24
- cmp r0, 0
- beq _08049870
- ldr r1, _08049868
- ldr r0, _0804986C
- b _08049874
- .align 2, 0
-_08049860: .4byte gUnknown_203B418
-_08049864: .4byte 0x00003a0e
-_08049868: .4byte gUnknown_203B430
-_0804986C: .4byte gUnknown_80F69EC
-_08049870:
- ldr r1, _0804987C
- ldr r0, _08049880
-_08049874:
- str r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0804987C: .4byte gUnknown_203B430
-_08049880: .4byte gUnknown_80F69D4
- thumb_func_end sub_8049840
-
- thumb_func_start sub_8049884
-sub_8049884:
- push {r4-r6,lr}
- movs r5, 0
-_08049888:
- movs r4, 0
- adds r6, r5, 0x1
-_0804988C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80498A8
- adds r4, 0x1
- cmp r4, 0x37
- ble _0804988C
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _08049888
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8049884
-
- thumb_func_start sub_80498A8
-sub_80498A8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- mov r10, r0
- mov r9, r1
- cmp r0, 0
- bge _080498BE
- b _08049B72
-_080498BE:
- cmp r1, 0
- bge _080498C4
- b _08049B72
-_080498C4:
- cmp r0, 0x37
- ble _080498CA
- b _08049B72
-_080498CA:
- cmp r1, 0x1F
- ble _080498D0
- b _08049B72
-_080498D0:
- movs r7, 0
- bl sub_804954C
- ldrh r0, [r0]
- movs r1, 0x3
- mov r8, r1
- mov r6, r8
- ands r6, r0
- str r6, [sp, 0x20]
- ldr r4, _08049914
- ldr r0, [r4]
- ldr r3, _08049918
- adds r0, r3
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x3F
- ble _08049928
- mov r3, r10
- cmp r3, 0x17
- bgt _0804991C
- mov r0, r9
- cmp r0, 0x17
- bgt _0804991C
- mov r0, r10
- mov r1, r9
- bl sub_8049590
- ldr r2, [r4]
- mov r3, r9
- lsls r1, r3, 1
- add r1, r9
- lsls r1, 3
- add r1, r10
- b _08049B68
- .align 2, 0
-_08049914: .4byte gUnknown_203B418
-_08049918: .4byte 0x00003a0e
-_0804991C:
- mov r0, r10
- mov r1, r9
- bl sub_8049590
- movs r1, 0
- b _08049B70
-_08049928:
- mov r0, r9
- adds r0, 0x1
- str r0, [sp, 0x24]
- mov r0, r10
- ldr r1, [sp, 0x24]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp]
- mov r4, r10
- adds r4, 0x1
- adds r0, r4, 0
- ldr r1, [sp, 0x24]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r1, r9
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0x8]
- mov r5, r9
- subs r5, 0x1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0xC]
- mov r0, r10
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0x10]
- subs r4, 0x2
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0x14]
- adds r0, r4, 0
- mov r1, r9
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- str r0, [sp, 0x18]
- adds r0, r4, 0
- ldr r1, [sp, 0x24]
- bl sub_804954C
- ldrh r0, [r0]
- mov r1, r8
- ands r1, r0
- str r1, [sp, 0x1C]
- cmp r6, 0x1
- bne _08049A1E
- movs r7, 0xFF
- ldr r0, [sp]
- cmp r0, 0
- bne _080499C6
- movs r7, 0xFE
-_080499C6:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _080499D2
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_080499D2:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _080499DE
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_080499DE:
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _080499EA
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_080499EA:
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _080499F6
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_080499F6:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _08049A02
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_08049A02:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- bne _08049A0E
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_08049A0E:
- cmp r1, 0
- bne _08049A18
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_08049A18:
- movs r0, 0x80
- lsls r0, 2
- b _08049B3A
-_08049A1E:
- cmp r6, 0x2
- bne _08049A84
- movs r7, 0xFF
- ldr r0, [sp]
- cmp r0, 0x2
- beq _08049A2C
- movs r7, 0xFE
-_08049A2C:
- ldr r0, [sp, 0x4]
- cmp r0, 0x2
- beq _08049A38
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_08049A38:
- ldr r0, [sp, 0x8]
- cmp r0, 0x2
- beq _08049A44
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_08049A44:
- ldr r0, [sp, 0xC]
- cmp r0, 0x2
- beq _08049A50
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_08049A50:
- ldr r0, [sp, 0x10]
- cmp r0, 0x2
- beq _08049A5C
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_08049A5C:
- ldr r0, [sp, 0x14]
- cmp r0, 0x2
- beq _08049A68
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_08049A68:
- ldr r0, [sp, 0x18]
- cmp r0, 0x2
- beq _08049A74
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_08049A74:
- cmp r1, 0x2
- beq _08049A7E
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_08049A7E:
- movs r0, 0x80
- lsls r0, 1
- b _08049B3A
-_08049A84:
- ldr r1, [sp, 0x20]
- cmp r1, 0x3
- bne _08049AEE
- movs r7, 0xFF
- ldr r0, [sp]
- cmp r0, 0x3
- beq _08049A94
- movs r7, 0xFE
-_08049A94:
- ldr r0, [sp, 0x4]
- cmp r0, 0x3
- beq _08049AA0
- movs r0, 0x3
- negs r0, r0
- ands r7, r0
-_08049AA0:
- ldr r0, [sp, 0x8]
- cmp r0, 0x3
- beq _08049AAC
- movs r0, 0x5
- negs r0, r0
- ands r7, r0
-_08049AAC:
- ldr r0, [sp, 0xC]
- cmp r0, 0x3
- beq _08049AB8
- movs r0, 0x9
- negs r0, r0
- ands r7, r0
-_08049AB8:
- ldr r0, [sp, 0x10]
- cmp r0, 0x3
- beq _08049AC4
- movs r0, 0x11
- negs r0, r0
- ands r7, r0
-_08049AC4:
- ldr r0, [sp, 0x14]
- cmp r0, 0x3
- beq _08049AD0
- movs r0, 0x21
- negs r0, r0
- ands r7, r0
-_08049AD0:
- ldr r0, [sp, 0x18]
- cmp r0, 0x3
- beq _08049ADC
- movs r0, 0x41
- negs r0, r0
- ands r7, r0
-_08049ADC:
- ldr r0, [sp, 0x1C]
- cmp r0, 0x3
- beq _08049AE8
- movs r0, 0x81
- negs r0, r0
- ands r7, r0
-_08049AE8:
- movs r0, 0x80
- lsls r0, 1
- b _08049B3A
-_08049AEE:
- ldr r0, [sp]
- cmp r0, 0
- bne _08049AF6
- movs r7, 0x1
-_08049AF6:
- ldr r0, [sp, 0x4]
- cmp r0, 0
- bne _08049B00
- movs r0, 0x2
- orrs r7, r0
-_08049B00:
- ldr r0, [sp, 0x8]
- cmp r0, 0
- bne _08049B0A
- movs r0, 0x4
- orrs r7, r0
-_08049B0A:
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _08049B14
- movs r0, 0x8
- orrs r7, r0
-_08049B14:
- ldr r0, [sp, 0x10]
- cmp r0, 0
- bne _08049B1E
- movs r0, 0x10
- orrs r7, r0
-_08049B1E:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _08049B28
- movs r0, 0x20
- orrs r7, r0
-_08049B28:
- ldr r0, [sp, 0x18]
- cmp r0, 0
- bne _08049B32
- movs r0, 0x40
- orrs r7, r0
-_08049B32:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _08049B3C
- movs r0, 0x80
-_08049B3A:
- orrs r7, r0
-_08049B3C:
- movs r0, 0x4
- bl RandomCapped
- adds r4, r0, 0
- cmp r4, 0x3
- bne _08049B4A
- movs r4, 0
-_08049B4A:
- bl sub_80441BC
- lsls r0, 24
- cmp r0, 0
- beq _08049B56
- movs r4, 0
-_08049B56:
- mov r0, r10
- mov r1, r9
- bl sub_8049590
- ldr r1, _08049B84
- ldr r2, [r1]
- lsls r1, r7, 1
- adds r1, r7
- adds r1, r4, r1
-_08049B68:
- ldr r3, _08049B88
- adds r2, r3
- adds r2, r1
- ldrb r1, [r2]
-_08049B70:
- strb r1, [r0, 0x8]
-_08049B72:
- 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
-_08049B84: .4byte gUnknown_203B418
-_08049B88: .4byte 0x00012c24
- thumb_func_end sub_80498A8
-
- thumb_func_start sub_8049B8C
-sub_8049B8C:
- push {r4-r6,lr}
- movs r5, 0
-_08049B90:
- movs r4, 0
- adds r6, r5, 0x1
-_08049B94:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049BB0
- adds r4, 0x1
- cmp r4, 0x37
- ble _08049B94
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _08049B90
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8049B8C
-
- thumb_func_start sub_8049BB0
-sub_8049BB0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- mov r10, r0
- str r1, [sp, 0x40]
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r1, 0
- adds r0, 0x1
- mov r9, r0
- mov r0, r10
- mov r1, r9
- bl sub_804954C
- ldrh r1, [r0]
- movs r4, 0x3
- adds r0, r4, 0
- ands r0, r1
- add r6, sp, 0x18
- str r0, [sp, 0x18]
- mov r5, r10
- adds r5, 0x1
- adds r0, r5, 0
- mov r1, r9
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0x4]
- adds r0, r5, 0
- ldr r1, [sp, 0x40]
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0x8]
- ldr r0, [sp, 0x40]
- subs r0, 0x1
- mov r8, r0
- adds r0, r5, 0
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0xC]
- mov r0, r10
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0x10]
- subs r5, 0x2
- adds r0, r5, 0
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0x14]
- adds r0, r5, 0
- ldr r1, [sp, 0x40]
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r4, 0
- ands r0, r1
- str r0, [r6, 0x18]
- adds r0, r5, 0
- mov r1, r9
- bl sub_804954C
- ldrh r0, [r0]
- ands r4, r0
- str r4, [r6, 0x1C]
- ldr r1, [sp, 0x18]
- cmp r1, 0x1
- bne _08049C6A
- ldr r0, [sp]
- orrs r0, r1
- str r0, [sp]
-_08049C6A:
- ldr r0, [r6, 0x8]
- cmp r0, 0x1
- bne _08049C78
- ldr r0, [sp]
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp]
-_08049C78:
- ldr r0, [r6, 0x10]
- cmp r0, 0x1
- bne _08049C86
- ldr r0, [sp]
- movs r1, 0x10
- orrs r0, r1
- str r0, [sp]
-_08049C86:
- ldr r0, [r6, 0x18]
- cmp r0, 0x1
- bne _08049C94
- ldr r0, [sp]
- movs r1, 0x40
- orrs r0, r1
- str r0, [sp]
-_08049C94:
- ldr r2, [sp, 0x18]
- cmp r2, 0
- beq _08049CAE
- ldr r0, [r6, 0x4]
- cmp r0, 0x1
- bne _08049CAE
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049CC8
- ldr r0, [sp]
- movs r1, 0x2
- orrs r0, r1
- str r0, [sp]
-_08049CAE:
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049CC8
- ldr r0, [r6, 0xC]
- cmp r0, 0x1
- bne _08049CC8
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049CE2
- ldr r0, [sp]
- movs r1, 0x8
- orrs r0, r1
- str r0, [sp]
-_08049CC8:
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049CE2
- ldr r0, [r6, 0x14]
- cmp r0, 0x1
- bne _08049CE2
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049CFA
- ldr r0, [sp]
- movs r1, 0x20
- orrs r0, r1
- str r0, [sp]
-_08049CE2:
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049CFA
- ldr r0, [r6, 0x1C]
- cmp r0, 0x1
- bne _08049CFA
- cmp r2, 0
- beq _08049CFA
- ldr r0, [sp]
- movs r1, 0x80
- orrs r0, r1
- str r0, [sp]
-_08049CFA:
- add r4, sp, 0x38
- movs r7, 0x1
- adds r2, r4, 0
- adds r1, r6, 0
- movs r5, 0
- movs r3, 0x7
-_08049D06:
- ldr r0, [r1]
- subs r0, 0x1
- cmp r0, 0x1
- bhi _08049D12
- strb r7, [r2]
- b _08049D14
-_08049D12:
- strb r5, [r2]
-_08049D14:
- adds r2, 0x1
- adds r1, 0x4
- subs r3, 0x1
- cmp r3, 0
- bge _08049D06
- ldrb r0, [r4]
- cmp r0, 0
- beq _08049D2C
- ldr r0, [sp, 0x4]
- movs r1, 0x1
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D2C:
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _08049D3A
- ldr r0, [sp, 0x4]
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D3A:
- ldrb r0, [r4, 0x4]
- cmp r0, 0
- beq _08049D48
- ldr r0, [sp, 0x4]
- movs r1, 0x10
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D48:
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- beq _08049D56
- ldr r0, [sp, 0x4]
- movs r1, 0x40
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D56:
- ldr r2, [sp, 0x18]
- cmp r2, 0
- beq _08049D70
- ldrb r0, [r4, 0x1]
- cmp r0, 0
- beq _08049D70
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049D8A
- ldr r0, [sp, 0x4]
- movs r1, 0x2
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D70:
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049D8A
- ldrb r0, [r4, 0x3]
- cmp r0, 0
- beq _08049D8A
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049DA4
- ldr r0, [sp, 0x4]
- movs r1, 0x8
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049D8A:
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049DA4
- ldrb r0, [r4, 0x5]
- cmp r0, 0
- beq _08049DA4
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049DBC
- ldr r0, [sp, 0x4]
- movs r1, 0x20
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049DA4:
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049DBC
- ldrb r0, [r4, 0x7]
- cmp r0, 0
- beq _08049DBC
- cmp r2, 0
- beq _08049DC8
- ldr r0, [sp, 0x4]
- movs r1, 0x80
- orrs r0, r1
- str r0, [sp, 0x4]
-_08049DBC:
- cmp r2, 0
- beq _08049DC8
- ldr r0, [sp, 0x8]
- movs r1, 0x1
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049DC8:
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049DD6
- ldr r0, [sp, 0x8]
- movs r1, 0x4
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049DD6:
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049DE4
- ldr r0, [sp, 0x8]
- movs r1, 0x10
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049DE4:
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049DF2
- ldr r0, [sp, 0x8]
- movs r1, 0x40
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049DF2:
- cmp r2, 0
- beq _08049E0A
- ldr r0, [r6, 0x4]
- cmp r0, 0
- beq _08049E0A
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049E24
- ldr r0, [sp, 0x8]
- movs r1, 0x2
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049E0A:
- ldr r0, [r6, 0x8]
- cmp r0, 0
- beq _08049E24
- ldr r0, [r6, 0xC]
- cmp r0, 0
- beq _08049E24
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049E3E
- ldr r0, [sp, 0x8]
- movs r1, 0x8
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049E24:
- ldr r0, [r6, 0x10]
- cmp r0, 0
- beq _08049E3E
- ldr r0, [r6, 0x14]
- cmp r0, 0
- beq _08049E3E
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049E56
- ldr r0, [sp, 0x8]
- movs r1, 0x20
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049E3E:
- ldr r0, [r6, 0x18]
- cmp r0, 0
- beq _08049E56
- ldr r0, [r6, 0x1C]
- cmp r0, 0
- beq _08049E56
- cmp r2, 0
- beq _08049E56
- ldr r0, [sp, 0x8]
- movs r1, 0x80
- orrs r0, r1
- str r0, [sp, 0x8]
-_08049E56:
- movs r0, 0xFF
- str r0, [sp, 0xC]
- mov r0, r10
- cmp r0, 0x1
- bgt _08049E64
- movs r0, 0x1F
- str r0, [sp, 0xC]
-_08049E64:
- ldr r0, [sp, 0x40]
- cmp r0, 0x1
- bgt _08049E74
- ldr r0, [sp, 0xC]
- movs r1, 0x39
- negs r1, r1
- ands r0, r1
- str r0, [sp, 0xC]
-_08049E74:
- mov r0, r10
- cmp r0, 0x35
- ble _08049E84
- ldr r0, [sp, 0xC]
- movs r1, 0xF
- negs r1, r1
- ands r0, r1
- str r0, [sp, 0xC]
-_08049E84:
- ldr r0, [sp, 0x40]
- cmp r0, 0x1D
- ble _08049E94
- ldr r0, [sp, 0xC]
- movs r1, 0x84
- negs r1, r1
- ands r0, r1
- str r0, [sp, 0xC]
-_08049E94:
- mov r0, r10
- ldr r1, [sp, 0x40]
- bl sub_8049590
- ldr r1, [sp]
- strb r1, [r0, 0xA]
- mov r0, r10
- ldr r1, [sp, 0x40]
- bl sub_8049590
- ldr r1, [sp, 0x4]
- strb r1, [r0, 0xB]
- mov r0, r10
- ldr r1, [sp, 0x40]
- bl sub_8049590
- ldr r1, [sp, 0x8]
- strb r1, [r0, 0xC]
- mov r0, r10
- ldr r1, [sp, 0x40]
- bl sub_8049590
- ldr r1, [sp, 0xC]
- strb r1, [r0, 0xD]
- 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_8049BB0
-
- thumb_func_start sub_8049ED4
-sub_8049ED4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- ldr r0, _08049F78
- ldr r6, [r0]
- ldr r1, _08049F7C
- adds r0, r6, r1
- ldrb r0, [r0]
- str r0, [sp]
- ldr r2, _08049F80
- adds r0, r6, r2
- ldrb r0, [r0]
- str r0, [sp, 0x4]
- ldr r4, _08049F84
- adds r0, r6, r4
- ldrh r0, [r0]
- lsls r0, 16
- asrs r3, r0, 19
- ldr r1, _08049F88
- adds r0, r3, 0
- adds r0, 0x1E
- lsls r0, 1
- adds r1, r0, r1
- movs r4, 0
- ldrsh r2, [r1, r4]
- mov r10, r2
- ldr r1, _08049F8C
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- str r1, [sp, 0x10]
- movs r4, 0
- str r4, [sp, 0x8]
-_08049F1C:
- ldr r1, _08049F90
- adds r0, r6, r1
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- subs r2, r0, 0x1
- mov r9, r2
- movs r1, 0x1F
- ands r3, r1
- ldr r1, _08049F88
- adds r0, 0x1D
- lsls r0, 1
- adds r1, r0, r1
- movs r2, 0
- ldrsh r4, [r1, r2]
- mov r8, r4
- ldr r1, _08049F8C
- adds r0, r1
- movs r1, 0
- ldrsh r4, [r0, r1]
- str r4, [sp, 0x14]
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- mov r4, r10
- adds r7, r4, r0
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r3, [sp, 0x34]
- bl sub_804954C
- adds r5, r0, 0
- ldrh r2, [r5]
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1, 0
- ands r0, r2
- ldr r3, [sp, 0x34]
- cmp r0, 0
- beq _08049F98
- lsls r0, r7, 1
- ldr r2, _08049F94
- adds r0, r2
- adds r2, r6, r0
- b _0804A06A
- .align 2, 0
-_08049F78: .4byte gUnknown_203B418
-_08049F7C: .4byte 0x00018210
-_08049F80: .4byte 0x0001820f
-_08049F84: .4byte 0x000181f0
-_08049F88: .4byte gUnknown_80F6A4A
-_08049F8C: .4byte gUnknown_80F6C06
-_08049F90: .4byte 0x000181f2
-_08049F94: .4byte 0x00012bec
-_08049F98:
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08049FAC
- lsls r0, r7, 1
- ldr r4, _08049FA8
- b _08049FD2
- .align 2, 0
-_08049FA8: .4byte 0x00012bda
-_08049FAC:
- ldr r0, [sp]
- cmp r0, 0
- beq _08049FC4
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _08049FC0
- adds r1, r2
- b _0804A064
- .align 2, 0
-_08049FC0: .4byte 0x00011884
-_08049FC4:
- ldrh r1, [r5, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _08049FDC
- lsls r0, r7, 1
- ldr r4, _08049FD8
-_08049FD2:
- adds r0, r4
- adds r2, r6, r0
- b _0804A06A
- .align 2, 0
-_08049FD8: .4byte 0x00012bfe
-_08049FDC:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A028
- adds r0, r4, 0
- str r3, [sp, 0x34]
- bl sub_80450F8
- ldr r3, [sp, 0x34]
- cmp r0, 0x2
- bne _0804A014
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A000
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _0804A014
-_0804A000:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, _0804A010
- adds r0, r1
- b _0804A046
- .align 2, 0
-_0804A010: .4byte 0x00012a18
-_0804A014:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _0804A024
- adds r1, r2
- b _0804A064
- .align 2, 0
-_0804A024: .4byte 0x00011884
-_0804A028:
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _0804A058
- ldr r1, _0804A050
- adds r0, r6, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r4, _0804A054
- adds r0, r4
-_0804A046:
- adds r0, r6, r0
- lsls r1, r7, 1
- adds r2, r0, r1
- b _0804A06A
- .align 2, 0
-_0804A050: .4byte 0x00003a12
-_0804A054: .4byte 0x00012a18
-_0804A058:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r0, _0804A0E8
- adds r1, r0
-_0804A064:
- adds r1, r6, r1
- lsls r0, r7, 1
- adds r2, r1, r0
-_0804A06A:
- lsls r1, r3, 1
- str r1, [sp, 0x30]
- adds r3, 0x1
- str r3, [sp, 0x2C]
- mov r4, r10
- adds r4, 0x1
- str r4, [sp, 0x28]
- ldr r0, [sp, 0x8]
- adds r0, 0x1
- str r0, [sp, 0x24]
- mov r1, r10
- lsls r3, r1, 1
- ldr r4, _0804A0EC
- adds r4, r3, r4
- str r4, [sp, 0x18]
- ldr r0, _0804A0F0
- adds r0, r3, r0
- str r0, [sp, 0x1C]
- ldr r1, _0804A0F4
- adds r1, r3, r1
- str r1, [sp, 0x20]
- movs r4, 0x16
- str r4, [sp, 0xC]
-_0804A098:
- movs r0, 0x1F
- mov r1, r9
- ands r1, r0
- mov r9, r1
- lsls r0, r1, 6
- ldr r4, [sp, 0x30]
- adds r0, r4, r0
- ldr r1, _0804A0F8
- adds r0, r1
- ldrh r1, [r2]
- strh r1, [r0]
- adds r2, 0x6
- movs r4, 0x1
- add r9, r4
- add r8, r4
- mov r0, r8
- cmp r0, 0x3
- bne _0804A1AC
- movs r1, 0
- mov r8, r1
- ldr r2, [sp, 0x14]
- adds r2, 0x1
- str r2, [sp, 0x14]
- mov r7, r10
- ldr r0, [sp, 0x10]
- adds r1, r2, 0
- str r3, [sp, 0x34]
- bl sub_804954C
- adds r5, r0, 0
- ldrh r2, [r5]
- movs r0, 0x20
- ands r0, r2
- ldr r3, [sp, 0x34]
- cmp r0, 0
- beq _0804A0FC
- ldr r4, [sp, 0x18]
- adds r2, r6, r4
- b _0804A1AC
- .align 2, 0
-_0804A0E8: .4byte 0x00011884
-_0804A0EC: .4byte 0x00012bda
-_0804A0F0: .4byte 0x00012bec
-_0804A0F4: .4byte 0x00012bfe
-_0804A0F8: .4byte gUnknown_202C838
-_0804A0FC:
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- beq _0804A10E
- ldr r4, [sp, 0x1C]
- adds r2, r6, r4
- b _0804A1AC
-_0804A10E:
- ldr r0, [sp]
- cmp r0, 0
- bne _0804A19C
- ldrh r1, [r5, 0x4]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0804A124
- ldr r4, [sp, 0x20]
- adds r2, r6, r4
- b _0804A1AC
-_0804A124:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A174
- adds r0, r4, 0
- str r3, [sp, 0x34]
- bl sub_80450F8
- ldr r3, [sp, 0x34]
- cmp r0, 0x2
- bne _0804A15C
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A148
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _0804A15C
-_0804A148:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, _0804A158
- b _0804A1A6
- .align 2, 0
-_0804A158: .4byte 0x00012a18
-_0804A15C:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _0804A170
- adds r1, r2
- adds r1, r6, r1
- lsls r0, r7, 1
- adds r2, r1, r0
- b _0804A1AC
- .align 2, 0
-_0804A170: .4byte 0x00011884
-_0804A174:
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _0804A19C
- ldr r1, _0804A194
- adds r0, r6, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r4, _0804A198
- adds r0, r4
- b _0804A1A8
- .align 2, 0
-_0804A194: .4byte 0x00003a12
-_0804A198: .4byte 0x00012a18
-_0804A19C:
- ldrb r1, [r5, 0x8]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, _0804A1EC
-_0804A1A6:
- adds r0, r1
-_0804A1A8:
- adds r0, r6, r0
- adds r2, r0, r3
-_0804A1AC:
- ldr r4, [sp, 0xC]
- subs r4, 0x1
- str r4, [sp, 0xC]
- cmp r4, 0
- blt _0804A1B8
- b _0804A098
-_0804A1B8:
- ldr r3, [sp, 0x2C]
- ldr r0, [sp, 0x28]
- mov r10, r0
- cmp r0, 0x3
- bne _0804A1CC
- movs r1, 0
- mov r10, r1
- ldr r2, [sp, 0x10]
- adds r2, 0x1
- str r2, [sp, 0x10]
-_0804A1CC:
- ldr r4, [sp, 0x24]
- str r4, [sp, 0x8]
- cmp r4, 0x1E
- bgt _0804A1D6
- b _08049F1C
-_0804A1D6:
- movs r0, 0x3
- bl sub_80098F8
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804A1EC: .4byte 0x00011884
- thumb_func_end sub_8049ED4
-
- thumb_func_start sub_804A1F0
-sub_804A1F0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r2, _0804A284
- ldr r7, [r2]
- ldr r3, _0804A288
- adds r2, r7, r3
- ldrb r2, [r2]
- str r2, [sp]
- ldr r4, _0804A28C
- adds r2, r7, r4
- ldrb r2, [r2]
- str r2, [sp, 0x4]
- ldr r5, _0804A290
- adds r2, r7, r5
- movs r3, 0
- ldrsh r2, [r2, r3]
- adds r2, r0
- subs r4, 0x1D
- adds r0, r7, r4
- movs r5, 0
- ldrsh r0, [r0, r5]
- adds r0, r1
- asrs r0, 3
- asrs r2, 3
- str r2, [sp, 0x14]
- subs r1, r0, 0x1
- mov r9, r1
- ldr r3, _0804A294
- adds r1, r2, 0
- adds r1, 0x1E
- lsls r1, 1
- adds r2, r1, r3
- movs r5, 0
- ldrsh r4, [r2, r5]
- str r4, [sp, 0x10]
- ldr r2, _0804A298
- adds r1, r2
- movs r5, 0
- ldrsh r4, [r1, r5]
- str r4, [sp, 0xC]
- adds r0, 0x1D
- lsls r0, 1
- adds r3, r0, r3
- movs r4, 0
- ldrsh r1, [r3, r4]
- mov r8, r1
- adds r0, r2
- movs r1, 0
- ldrsh r5, [r0, r1]
- mov r10, r5
- mov r2, r8
- lsls r0, r2, 1
- add r0, r8
- ldr r3, [sp, 0x10]
- adds r6, r3, r0
- ldr r0, [sp, 0xC]
- mov r1, r10
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804A2A0
- lsls r0, r6, 1
- ldr r4, _0804A29C
- adds r0, r4
- adds r2, r7, r0
- b _0804A356
- .align 2, 0
-_0804A284: .4byte gUnknown_203B418
-_0804A288: .4byte 0x00018210
-_0804A28C: .4byte 0x0001820f
-_0804A290: .4byte 0x000181f0
-_0804A294: .4byte gUnknown_80F6A4A
-_0804A298: .4byte gUnknown_80F6C06
-_0804A29C: .4byte 0x00012bda
-_0804A2A0:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0804A2B8
- lsls r0, r6, 1
- ldr r5, _0804A2B4
- adds r0, r5
- adds r2, r7, r0
- b _0804A356
- .align 2, 0
-_0804A2B4: .4byte 0x00012bec
-_0804A2B8:
- ldr r0, [sp]
- cmp r0, 0
- beq _0804A2D0
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _0804A2CC
- adds r1, r2
- b _0804A350
- .align 2, 0
-_0804A2CC: .4byte 0x00011884
-_0804A2D0:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A318
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- bne _0804A304
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A2F0
- ldr r3, [sp, 0x4]
- cmp r3, 0
- beq _0804A304
-_0804A2F0:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r4, _0804A300
- adds r0, r4
- b _0804A334
- .align 2, 0
-_0804A300: .4byte 0x00012a18
-_0804A304:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r5, _0804A314
- adds r1, r5
- b _0804A350
- .align 2, 0
-_0804A314: .4byte 0x00011884
-_0804A318:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0804A344
- ldr r1, _0804A33C
- adds r0, r7, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r3, _0804A340
- adds r0, r3
-_0804A334:
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r2, r0, r1
- b _0804A356
- .align 2, 0
-_0804A33C: .4byte 0x00003a12
-_0804A340: .4byte 0x00012a18
-_0804A344:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r4, _0804A3AC
- adds r1, r4
-_0804A350:
- adds r1, r7, r1
- lsls r0, r6, 1
- adds r2, r1, r0
-_0804A356:
- movs r5, 0x16
- str r5, [sp, 0x8]
-_0804A35A:
- movs r0, 0x1F
- ldr r1, [sp, 0x14]
- ands r1, r0
- str r1, [sp, 0x14]
- mov r3, r9
- ands r3, r0
- mov r9, r3
- lsls r1, 1
- lsls r0, r3, 6
- adds r1, r0
- ldr r4, _0804A3B0
- adds r1, r4
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x6
- movs r5, 0x1
- add r9, r5
- add r8, r5
- mov r0, r8
- cmp r0, 0x3
- beq _0804A386
- b _0804A476
-_0804A386:
- movs r1, 0
- mov r8, r1
- add r10, r5
- ldr r6, [sp, 0x10]
- ldr r0, [sp, 0xC]
- mov r1, r10
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804A3B8
- lsls r0, r6, 1
- ldr r2, _0804A3B4
- adds r0, r2
- adds r2, r7, r0
- b _0804A476
- .align 2, 0
-_0804A3AC: .4byte 0x00011884
-_0804A3B0: .4byte gUnknown_202C838
-_0804A3B4: .4byte 0x00012bda
-_0804A3B8:
- movs r3, 0x80
- lsls r3, 5
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0804A3D4
- lsls r0, r6, 1
- ldr r4, _0804A3D0
- adds r0, r4
- adds r2, r7, r0
- b _0804A476
- .align 2, 0
-_0804A3D0: .4byte 0x00012bec
-_0804A3D4:
- ldr r0, [sp]
- cmp r0, 0
- beq _0804A3EC
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _0804A3E8
- adds r1, r2
- b _0804A470
- .align 2, 0
-_0804A3E8: .4byte 0x00011884
-_0804A3EC:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A434
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- bne _0804A420
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A40C
- ldr r3, [sp, 0x4]
- cmp r3, 0
- beq _0804A420
-_0804A40C:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r4, _0804A41C
- adds r0, r4
- b _0804A452
- .align 2, 0
-_0804A41C: .4byte 0x00012a18
-_0804A420:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r5, _0804A430
- adds r1, r5
- b _0804A470
- .align 2, 0
-_0804A430: .4byte 0x00011884
-_0804A434:
- movs r2, 0x80
- lsls r2, 2
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0804A464
- ldr r3, _0804A45C
- adds r0, r7, r3
- movs r4, 0
- ldrsh r1, [r0, r4]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r5, _0804A460
- adds r0, r5
-_0804A452:
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r2, r0, r1
- b _0804A476
- .align 2, 0
-_0804A45C: .4byte 0x00003a12
-_0804A460: .4byte 0x00012a18
-_0804A464:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r0, _0804A498
- adds r1, r0
-_0804A470:
- adds r1, r7, r1
- lsls r0, r6, 1
- adds r2, r1, r0
-_0804A476:
- ldr r1, [sp, 0x8]
- subs r1, 0x1
- str r1, [sp, 0x8]
- cmp r1, 0
- blt _0804A482
- b _0804A35A
-_0804A482:
- movs r0, 0x3
- bl sub_80098F8
- 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
-_0804A498: .4byte 0x00011884
- thumb_func_end sub_804A1F0
-
- thumb_func_start sub_804A49C
-sub_804A49C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r2, _0804A52C
- ldr r7, [r2]
- ldr r3, _0804A530
- adds r2, r7, r3
- ldrb r2, [r2]
- str r2, [sp]
- ldr r4, _0804A534
- adds r2, r7, r4
- ldrb r2, [r2]
- str r2, [sp, 0x4]
- subs r3, 0x20
- adds r2, r7, r3
- movs r4, 0
- ldrsh r2, [r2, r4]
- adds r2, r0
- adds r3, 0x2
- adds r0, r7, r3
- movs r4, 0
- ldrsh r0, [r0, r4]
- adds r0, r1
- asrs r2, 3
- mov r8, r2
- asrs r0, 3
- str r0, [sp, 0x14]
- ldr r2, _0804A538
- mov r0, r8
- adds r0, 0x1E
- lsls r0, 1
- adds r1, r0, r2
- movs r4, 0
- ldrsh r3, [r1, r4]
- mov r9, r3
- ldr r1, _0804A53C
- adds r0, r1
- movs r4, 0
- ldrsh r3, [r0, r4]
- mov r10, r3
- ldr r0, [sp, 0x14]
- adds r0, 0x1E
- lsls r0, 1
- adds r2, r0, r2
- movs r4, 0
- ldrsh r3, [r2, r4]
- str r3, [sp, 0x10]
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- str r1, [sp, 0xC]
- lsls r0, r3, 1
- adds r0, r3
- mov r3, r9
- adds r6, r3, r0
- mov r0, r10
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804A544
- lsls r0, r6, 1
- ldr r4, _0804A540
- adds r0, r4
- adds r2, r7, r0
- b _0804A5DA
- .align 2, 0
-_0804A52C: .4byte gUnknown_203B418
-_0804A530: .4byte 0x00018210
-_0804A534: .4byte 0x0001820f
-_0804A538: .4byte gUnknown_80F6A4A
-_0804A53C: .4byte gUnknown_80F6C06
-_0804A540: .4byte 0x00012bda
-_0804A544:
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- beq _0804A55C
- lsls r0, r6, 1
- ldr r1, _0804A558
- adds r0, r1
- adds r2, r7, r0
- b _0804A5DA
- .align 2, 0
-_0804A558: .4byte 0x00012bec
-_0804A55C:
- ldr r2, [sp]
- cmp r2, 0
- beq _0804A574
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r3, _0804A570
- adds r1, r3
- b _0804A5D4
- .align 2, 0
-_0804A570: .4byte 0x00011884
-_0804A574:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A59A
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- bne _0804A5C8
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A594
- ldr r0, [sp, 0x4]
- cmp r0, 0
- beq _0804A5C8
-_0804A594:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- b _0804A5AC
-_0804A59A:
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- beq _0804A5C8
- ldr r3, _0804A5C0
- adds r0, r7, r3
- movs r4, 0
- ldrsh r1, [r0, r4]
-_0804A5AC:
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r1, _0804A5C4
- adds r0, r1
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r2, r0, r1
- b _0804A5DA
- .align 2, 0
-_0804A5C0: .4byte 0x00003a12
-_0804A5C4: .4byte 0x00012a18
-_0804A5C8:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r2, _0804A638
- adds r1, r2
-_0804A5D4:
- adds r1, r7, r1
- lsls r0, r6, 1
- adds r2, r1, r0
-_0804A5DA:
- movs r3, 0x1E
- str r3, [sp, 0x8]
-_0804A5DE:
- movs r0, 0x1F
- mov r4, r8
- ands r4, r0
- mov r8, r4
- ldr r1, [sp, 0x14]
- ands r1, r0
- str r1, [sp, 0x14]
- lsls r1, r4, 1
- ldr r3, [sp, 0x14]
- lsls r0, r3, 6
- adds r1, r0
- ldr r4, _0804A63C
- adds r1, r4
- ldrh r0, [r2]
- strh r0, [r1]
- adds r2, 0x2
- movs r0, 0x1
- add r8, r0
- add r9, r0
- mov r1, r9
- cmp r1, 0x3
- beq _0804A60C
- b _0804A702
-_0804A60C:
- movs r2, 0
- mov r9, r2
- add r10, r0
- ldr r3, [sp, 0x10]
- lsls r0, r3, 1
- adds r6, r0, r3
- mov r0, r10
- ldr r1, [sp, 0xC]
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804A644
- lsls r0, r6, 1
- ldr r4, _0804A640
- adds r0, r4
- adds r2, r7, r0
- b _0804A702
- .align 2, 0
-_0804A638: .4byte 0x00011884
-_0804A63C: .4byte gUnknown_202C838
-_0804A640: .4byte 0x00012bda
-_0804A644:
- movs r2, 0x80
- lsls r2, 5
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _0804A660
- lsls r0, r6, 1
- ldr r3, _0804A65C
- adds r0, r3
- adds r2, r7, r0
- b _0804A702
- .align 2, 0
-_0804A65C: .4byte 0x00012bec
-_0804A660:
- ldr r4, [sp]
- cmp r4, 0
- beq _0804A678
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r0, _0804A674
- adds r1, r0
- b _0804A6FC
- .align 2, 0
-_0804A674: .4byte 0x00011884
-_0804A678:
- ldr r4, [r5, 0x14]
- cmp r4, 0
- beq _0804A6C0
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- bne _0804A6AC
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804A698
- ldr r1, [sp, 0x4]
- cmp r1, 0
- beq _0804A6AC
-_0804A698:
- ldr r0, [r4, 0x70]
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r2, _0804A6A8
- adds r0, r2
- b _0804A6DE
- .align 2, 0
-_0804A6A8: .4byte 0x00012a18
-_0804A6AC:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r3, _0804A6BC
- adds r1, r3
- b _0804A6FC
- .align 2, 0
-_0804A6BC: .4byte 0x00011884
-_0804A6C0:
- movs r4, 0x80
- lsls r4, 2
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0804A6F0
- ldr r1, _0804A6E8
- adds r0, r7, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- ldr r3, _0804A6EC
- adds r0, r3
-_0804A6DE:
- adds r0, r7, r0
- lsls r1, r6, 1
- adds r2, r0, r1
- b _0804A702
- .align 2, 0
-_0804A6E8: .4byte 0x00003a12
-_0804A6EC: .4byte 0x00012a18
-_0804A6F0:
- ldrb r0, [r5, 0x8]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 1
- ldr r4, _0804A724
- adds r1, r4
-_0804A6FC:
- adds r1, r7, r1
- lsls r0, r6, 1
- adds r2, r1, r0
-_0804A702:
- ldr r0, [sp, 0x8]
- subs r0, 0x1
- str r0, [sp, 0x8]
- cmp r0, 0
- blt _0804A70E
- b _0804A5DE
-_0804A70E:
- movs r0, 0x3
- bl sub_80098F8
- 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
-_0804A724: .4byte 0x00011884
- thumb_func_end sub_804A49C
-
- thumb_func_start sub_804A728
-sub_804A728:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- str r0, [sp, 0x1C]
- adds r5, r1, 0
- adds r4, r3, 0
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp, 0x20]
- lsls r4, 24
- lsrs r4, 24
- ldr r6, _0804A814
- ldr r0, [r6]
- mov r8, r0
- bl sub_8083600
- str r0, [sp, 0x24]
- ldr r0, _0804A818
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- str r0, [sp, 0x30]
- adds r1, r0, 0
- ldr r0, [r6]
- ldr r2, _0804A81C
- adds r0, r2
- strb r4, [r0]
- ldr r3, [sp, 0x1C]
- movs r4, 0
- ldrsh r7, [r3, r4]
- movs r0, 0x2
- ldrsh r6, [r3, r0]
- ldr r0, _0804A820
- lsls r5, 2
- adds r5, r0
- movs r2, 0
- ldrsh r4, [r5, r2]
- movs r0, 0x2
- ldrsh r3, [r5, r0]
- mov r0, sp
- movs r2, 0x5
-_0804A782:
- strh r7, [r0]
- strh r6, [r0, 0x2]
- adds r7, r4
- adds r6, r3
- adds r0, 0x4
- subs r2, 0x1
- cmp r2, 0
- bge _0804A782
- ldr r0, _0804A824
- adds r1, 0x1E
- lsls r1, 1
- adds r0, r1, r0
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r2, [sp, 0x28]
- ldr r0, _0804A828
- adds r1, r0
- movs r0, 0
- ldrsh r4, [r1, r0]
- mov r10, r4
- movs r7, 0
-_0804A7AC:
- ldr r0, _0804A82C
- add r0, r8
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 19
- str r0, [sp, 0x34]
- ldr r0, _0804A824
- ldr r1, [sp, 0x34]
- adds r1, 0x1E
- lsls r1, 1
- adds r0, r1, r0
- movs r3, 0
- ldrsh r2, [r0, r3]
- str r2, [sp, 0x2C]
- ldr r0, _0804A828
- adds r1, r0
- movs r0, 0
- ldrsh r4, [r1, r0]
- mov r9, r4
- lsls r0, r2, 1
- adds r0, r2
- ldr r1, [sp, 0x28]
- adds r5, r1, r0
- mov r2, r10
- lsls r0, r2, 16
- lsls r1, r4, 16
- lsrs r0, 16
- orrs r0, r1
- str r0, [sp, 0x18]
- ldr r3, [sp, 0x20]
- cmp r3, 0
- beq _0804A850
- ldr r4, [sp, 0x1C]
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r10, r0
- bne _0804A834
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- cmp r9, r0
- bne _0804A834
- lsls r0, r5, 1
- ldr r3, _0804A830
- adds r0, r3
- mov r4, r8
- adds r2, r4, r0
- ldr r0, [sp, 0x28]
- adds r0, 0x1
- str r0, [sp, 0x3C]
- adds r1, r7, 0x1
- str r1, [sp, 0x38]
- b _0804A8FC
- .align 2, 0
-_0804A814: .4byte gUnknown_203B418
-_0804A818: .4byte 0x000181f0
-_0804A81C: .4byte 0x0001821a
-_0804A820: .4byte gUnknown_80F4448
-_0804A824: .4byte gUnknown_80F6A4A
-_0804A828: .4byte gUnknown_80F6C06
-_0804A82C: .4byte 0x000181f2
-_0804A830: .4byte 0x00012b92
-_0804A834:
- lsls r0, r5, 1
- ldr r2, _0804A84C
- adds r0, r2
- mov r3, r8
- adds r2, r3, r0
- ldr r4, [sp, 0x28]
- adds r4, 0x1
- str r4, [sp, 0x3C]
- adds r0, r7, 0x1
- str r0, [sp, 0x38]
- b _0804A8FC
- .align 2, 0
-_0804A84C: .4byte 0x00013554
-_0804A850:
- add r4, sp, 0x18
- ldr r0, [sp, 0x24]
- adds r1, r4, 0
- bl sub_807049C
- lsls r0, 24
- cmp r0, 0
- bne _0804A8E8
- ldr r0, [sp, 0x24]
- adds r1, r4, 0
- bl sub_8045AAC
- lsls r0, 24
- cmp r0, 0
- beq _0804A8E8
- movs r2, 0
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r3, r5, 1
- ldr r4, [sp, 0x28]
- adds r4, 0x1
- str r4, [sp, 0x3C]
- adds r1, r7, 0x1
- str r1, [sp, 0x38]
- cmp r0, r10
- bne _0804A890
- mov r0, sp
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- cmp r0, r9
- beq _0804A8AC
-_0804A890:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0804A8AC
- lsls r0, r2, 2
- mov r4, sp
- adds r1, r4, r0
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r10
- bne _0804A890
- movs r4, 0x2
- ldrsh r0, [r1, r4]
- cmp r0, r9
- bne _0804A890
-_0804A8AC:
- cmp r2, 0x6
- bne _0804A8D8
- ldr r0, _0804A8C0
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0804A8C8
- ldr r1, _0804A8C4
- adds r0, r3, r1
- b _0804A8DC
- .align 2, 0
-_0804A8C0: .4byte gUnknown_203B46C
-_0804A8C4: .4byte 0x00012b80
-_0804A8C8:
- ldr r4, _0804A8D4
- adds r0, r3, r4
- mov r1, r8
- adds r2, r1, r0
- b _0804A8FC
- .align 2, 0
-_0804A8D4: .4byte 0x00013554
-_0804A8D8:
- ldr r2, _0804A8E4
- adds r0, r3, r2
-_0804A8DC:
- mov r3, r8
- adds r2, r3, r0
- b _0804A8FC
- .align 2, 0
-_0804A8E4: .4byte 0x00012b92
-_0804A8E8:
- lsls r0, r5, 1
- ldr r4, _0804A968
- adds r0, r4
- mov r1, r8
- adds r2, r1, r0
- ldr r3, [sp, 0x28]
- adds r3, 0x1
- str r3, [sp, 0x3C]
- adds r4, r7, 0x1
- str r4, [sp, 0x38]
-_0804A8FC:
- movs r6, 0
-_0804A8FE:
- movs r0, 0x1F
- ldr r1, [sp, 0x30]
- ands r1, r0
- str r1, [sp, 0x30]
- ldr r3, [sp, 0x34]
- ands r3, r0
- lsls r0, r1, 1
- lsls r1, r3, 6
- adds r0, r1
- ldr r4, _0804A96C
- adds r0, r4
- ldrh r1, [r2]
- strh r1, [r0]
- adds r2, 0x6
- adds r3, 0x1
- str r3, [sp, 0x34]
- ldr r0, [sp, 0x2C]
- adds r0, 0x1
- str r0, [sp, 0x2C]
- adds r7, r6, 0x1
- cmp r0, 0x3
- beq _0804A92C
- b _0804AA20
-_0804A92C:
- movs r1, 0
- str r1, [sp, 0x2C]
- movs r2, 0x1
- add r9, r2
- ldr r5, [sp, 0x28]
- add r4, sp, 0x18
- mov r3, r10
- strh r3, [r4]
- adds r0, r4, 0
- mov r1, r9
- strh r1, [r0, 0x2]
- ldr r2, [sp, 0x20]
- cmp r2, 0
- beq _0804A984
- ldr r3, [sp, 0x1C]
- movs r4, 0
- ldrsh r0, [r3, r4]
- cmp r10, r0
- bne _0804A974
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- cmp r9, r0
- bne _0804A974
- ldr r2, [sp, 0x28]
- lsls r0, r2, 1
- ldr r3, _0804A970
- adds r0, r3
- mov r4, r8
- adds r2, r4, r0
- b _0804AA20
- .align 2, 0
-_0804A968: .4byte 0x00013554
-_0804A96C: .4byte gUnknown_202C038
-_0804A970: .4byte 0x00012b92
-_0804A974:
- lsls r0, r5, 1
- ldr r1, _0804A980
- adds r0, r1
- mov r3, r8
- adds r2, r3, r0
- b _0804AA1E
- .align 2, 0
-_0804A980: .4byte 0x00013554
-_0804A984:
- ldr r0, [sp, 0x24]
- adds r1, r4, 0
- bl sub_807049C
- lsls r0, 24
- cmp r0, 0
- bne _0804AA14
- ldr r0, [sp, 0x24]
- adds r1, r4, 0
- bl sub_8045AAC
- lsls r0, 24
- cmp r0, 0
- beq _0804AA14
- movs r2, 0
- mov r0, sp
- movs r4, 0
- ldrsh r0, [r0, r4]
- ldr r1, [sp, 0x28]
- lsls r3, r1, 1
- cmp r0, r10
- bne _0804A9BA
- mov r0, sp
- movs r4, 0x2
- ldrsh r0, [r0, r4]
- cmp r0, r9
- beq _0804A9D6
-_0804A9BA:
- adds r2, 0x1
- cmp r2, 0x5
- bgt _0804A9D6
- lsls r0, r2, 2
- mov r4, sp
- adds r1, r4, r0
- movs r4, 0
- ldrsh r0, [r1, r4]
- cmp r0, r10
- bne _0804A9BA
- movs r4, 0x2
- ldrsh r0, [r1, r4]
- cmp r0, r9
- bne _0804A9BA
-_0804A9D6:
- cmp r2, 0x6
- bne _0804AA04
- ldr r0, _0804A9EC
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- cmp r0, 0
- beq _0804A9F4
- ldr r1, _0804A9F0
- adds r0, r3, r1
- b _0804AA08
- .align 2, 0
-_0804A9EC: .4byte gUnknown_203B46C
-_0804A9F0: .4byte 0x00012b80
-_0804A9F4:
- ldr r4, _0804AA00
- adds r0, r3, r4
- mov r1, r8
- adds r2, r1, r0
- b _0804AA20
- .align 2, 0
-_0804AA00: .4byte 0x00013554
-_0804AA04:
- ldr r2, _0804AA10
- adds r0, r3, r2
-_0804AA08:
- mov r3, r8
- adds r2, r3, r0
- b _0804AA20
- .align 2, 0
-_0804AA10: .4byte 0x00012b92
-_0804AA14:
- lsls r0, r5, 1
- ldr r4, _0804AA5C
- adds r0, r4
- mov r1, r8
- adds r2, r1, r0
-_0804AA1E:
- adds r7, r6, 0x1
-_0804AA20:
- adds r6, r7, 0
- cmp r6, 0x14
- bgt _0804AA28
- b _0804A8FE
-_0804AA28:
- ldr r2, [sp, 0x30]
- adds r2, 0x1
- str r2, [sp, 0x30]
- ldr r3, [sp, 0x3C]
- str r3, [sp, 0x28]
- cmp r3, 0x3
- bne _0804AA3E
- movs r4, 0
- str r4, [sp, 0x28]
- movs r0, 0x1
- add r10, r0
-_0804AA3E:
- ldr r7, [sp, 0x38]
- cmp r7, 0x1E
- bgt _0804AA46
- b _0804A7AC
-_0804AA46:
- movs r0, 0x2
- bl sub_80098F8
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AA5C: .4byte 0x00013554
- thumb_func_end sub_804A728
-
- thumb_func_start sub_804AA60
-sub_804AA60:
- push {r4,lr}
- movs r1, 0
- ldr r0, _0804AAA0
- movs r3, 0
- movs r2, 0x80
- lsls r2, 5
- adds r4, r0, r2
-_0804AA6E:
- lsls r0, r1, 6
- adds r2, r1, 0x1
- movs r1, 0x1F
- adds r0, r4
- adds r0, 0x3E
-_0804AA78:
- strh r3, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0804AA78
- adds r1, r2, 0
- cmp r1, 0x1F
- ble _0804AA6E
- movs r4, 0
- movs r0, 0x2
- bl sub_80098F8
- ldr r0, _0804AAA4
- ldr r0, [r0]
- ldr r1, _0804AAA8
- adds r0, r1
- strb r4, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AAA0: .4byte gUnknown_202B038
-_0804AAA4: .4byte gUnknown_203B418
-_0804AAA8: .4byte 0x0001821a
- thumb_func_end sub_804AA60
-
- thumb_func_start sub_804AAAC
-sub_804AAAC:
- push {r4-r7,lr}
- movs r5, 0
- movs r7, 0
-_0804AAB2:
- movs r4, 0
- adds r6, r5, 0x1
-_0804AAB6:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- strh r7, [r0, 0x4]
- adds r4, 0x1
- cmp r4, 0x37
- ble _0804AAB6
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _0804AAB2
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804AAAC
-
- thumb_func_start sub_804AAD4
-sub_804AAD4:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _0804AC04
- movs r0, 0
- mov r8, r0
- ldr r6, _0804AC08
- ldr r5, _0804AC0C
- movs r2, 0
- movs r3, 0x1F
-_0804AAEA:
- ldr r0, [r4]
- adds r0, r2
- ldr r1, _0804AC10
- adds r0, r1
- mov r7, r8
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, r2
- adds r1, 0x1
- adds r0, r1
- strb r7, [r0]
- ldr r0, [r4]
- adds r0, r2
- ldr r7, _0804AC14
- adds r1, r0, r7
- strh r6, [r1]
- adds r7, 0x2
- adds r1, r0, r7
- strh r6, [r1]
- adds r7, 0x2
- adds r1, r0, r7
- strh r5, [r1]
- ldr r1, _0804AC18
- adds r0, r1
- strh r5, [r0]
- adds r2, 0x1C
- subs r3, 0x1
- cmp r3, 0
- bge _0804AAEA
- movs r4, 0
- mov r9, r4
- movs r6, 0
- ldr r7, _0804AC04
- mov r8, r7
-_0804AB2E:
- movs r4, 0
- adds r5, r6, 0x1
-_0804AB32:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrb r2, [r0, 0x9]
- adds r3, r4, 0x1
- cmp r2, 0xFF
- beq _0804AB84
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- ldr r1, _0804AC10
- adds r0, r1
- mov r7, r8
- ldr r1, [r7]
- adds r1, r0
- movs r0, 0x1
- strb r0, [r1]
- movs r7, 0x2
- ldrsh r0, [r1, r7]
- cmp r0, r4
- ble _0804AB60
- strh r4, [r1, 0x2]
-_0804AB60:
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r0, r6
- ble _0804AB6A
- strh r6, [r1, 0x4]
-_0804AB6A:
- movs r7, 0x6
- ldrsh r0, [r1, r7]
- cmp r0, r3
- bge _0804AB74
- strh r3, [r1, 0x6]
-_0804AB74:
- movs r4, 0x8
- ldrsh r0, [r1, r4]
- cmp r0, r5
- bge _0804AB7E
- strh r5, [r1, 0x8]
-_0804AB7E:
- cmp r9, r2
- bge _0804AB84
- mov r9, r2
-_0804AB84:
- adds r4, r3, 0
- cmp r4, 0x37
- ble _0804AB32
- adds r6, r5, 0
- cmp r6, 0x1F
- ble _0804AB2E
- ldr r7, _0804AC04
- mov r8, r7
- mov r5, r9
- adds r5, 0x1
- mov r6, r8
- movs r4, 0
- movs r3, 0x1F
-_0804AB9E:
- ldr r1, _0804AC10
- adds r0, r4, r1
- ldr r1, [r6]
- adds r2, r1, r0
- ldrb r0, [r2]
- cmp r0, 0
- beq _0804ABE4
- movs r7, 0x2
- ldrsh r1, [r2, r7]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [r2, 0xC]
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- subs r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [r2, 0x10]
- movs r7, 0x6
- ldrsh r1, [r2, r7]
- adds r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [r2, 0x14]
- movs r0, 0x8
- ldrsh r1, [r2, r0]
- adds r1, 0x1
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- str r0, [r2, 0x18]
-_0804ABE4:
- adds r4, 0x1C
- subs r3, 0x1
- cmp r3, 0
- bge _0804AB9E
- mov r1, r8
- ldr r0, [r1]
- ldr r4, _0804AC1C
- adds r0, r4
- strb r5, [r0]
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AC04: .4byte gUnknown_203B418
-_0804AC08: .4byte 0x0000270f
-_0804AC0C: .4byte 0x0000d8f1
-_0804AC10: .4byte 0x000104c4
-_0804AC14: .4byte 0x000104c6
-_0804AC18: .4byte 0x000104cc
-_0804AC1C: .4byte 0x000104c0
- thumb_func_end sub_804AAD4
-
- thumb_func_start sub_804AC20
-sub_804AC20:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrb r1, [r0, 0x9]
- ldr r0, _0804AC6C
- ldr r3, [r0]
- ldr r5, _0804AC70
- adds r0, r3, r5
- ldrb r2, [r0]
- adds r5, 0x1
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804ACD4
- cmp r2, 0
- bne _0804AC52
- movs r2, 0x2
-_0804AC52:
- cmp r1, 0xFF
- bne _0804AC74
- movs r0, 0
- ldrsh r1, [r4, r0]
- subs r3, r1, r2
- mov r9, r3
- movs r5, 0x2
- ldrsh r0, [r4, r5]
- subs r3, r0, r2
- adds r6, r1, r2
- adds r0, r2
- mov r8, r0
- b _0804ACA2
- .align 2, 0
-_0804AC6C: .4byte gUnknown_203B418
-_0804AC70: .4byte 0x00018209
-_0804AC74:
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- ldr r1, _0804ACE0
- adds r0, r1
- adds r2, r3, r0
- ldrb r0, [r2, 0x1]
- cmp r0, 0
- bne _0804ACD4
- movs r0, 0x1
- strb r0, [r2, 0x1]
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- subs r0, 0x1
- mov r9, r0
- movs r5, 0x4
- ldrsh r0, [r2, r5]
- subs r3, r0, 0x1
- movs r0, 0x6
- ldrsh r6, [r2, r0]
- movs r5, 0x8
- ldrsh r1, [r2, r5]
- mov r8, r1
-_0804ACA2:
- adds r5, r3, 0
- cmp r5, r8
- bgt _0804ACD4
-_0804ACA8:
- mov r4, r9
- adds r7, r5, 0x1
- cmp r4, r6
- bgt _0804ACCE
-_0804ACB0:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x3
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80402AC
- adds r4, 0x1
- cmp r4, r6
- ble _0804ACB0
-_0804ACCE:
- adds r5, r7, 0
- cmp r5, r8
- ble _0804ACA8
-_0804ACD4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804ACE0: .4byte 0x000104c4
- thumb_func_end sub_804AC20
-
- thumb_func_start sub_804ACE4
-sub_804ACE4:
- push {lr}
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl sub_804954C
- ldr r0, [r0, 0x14]
- cmp r0, 0
- beq _0804AD06
- bl sub_80450F8
- cmp r0, 0x3
- bne _0804AD06
- movs r0, 0x1
- b _0804AD08
-_0804AD06:
- movs r0, 0
-_0804AD08:
- pop {r1}
- bx r1
- thumb_func_end sub_804ACE4
-
- thumb_func_start sub_804AD0C
-sub_804AD0C:
- push {lr}
- movs r1, 0
- ldrsh r2, [r0, r1]
- movs r3, 0x2
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl sub_804954C
- ldr r1, [r0, 0x10]
- cmp r1, 0
- beq _0804AD2C
- ldr r0, [r1]
- cmp r0, 0x1
- bne _0804AD2C
- adds r0, r1, 0
- b _0804AD2E
-_0804AD2C:
- movs r0, 0
-_0804AD2E:
- pop {r1}
- bx r1
- thumb_func_end sub_804AD0C
-
- thumb_func_start sub_804AD34
-sub_804AD34:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0804ADB6
- movs r0, 0x88
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0804ADB6
- movs r0, 0x1
- mov r8, r0
- ldr r0, _0804ADFC
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- movs r5, 0x1
- negs r5, r5
-_0804AD74:
- movs r4, 0x1
- negs r4, r4
- adds r7, r5, 0x1
-_0804AD7A:
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r1, r5, r1
- bl sub_80498A8
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r1, r5, r1
- bl sub_8049BB0
- movs r1, 0
- ldrsh r0, [r6, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- adds r1, r5, r1
- bl sub_80402AC
- adds r4, 0x1
- cmp r4, 0x1
- ble _0804AD7A
- adds r5, r7, 0
- cmp r5, 0x1
- ble _0804AD74
-_0804ADB6:
- mov r0, r8
- cmp r0, 0
- beq _0804ADEE
- movs r5, 0
-_0804ADBE:
- ldr r0, _0804AE00
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _0804AE04
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0804ADDE
- adds r0, r4, 0
- bl sub_806CF98
-_0804ADDE:
- adds r5, 0x1
- cmp r5, 0x13
- ble _0804ADBE
- bl sub_8049ED4
- adds r0, r6, 0
- bl sub_8042A14
-_0804ADEE:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804ADFC: .4byte 0x0000fffc
-_0804AE00: .4byte gUnknown_203B418
-_0804AE04: .4byte 0x000135cc
- thumb_func_end sub_804AD34
-
- thumb_func_start sub_804AE08
-sub_804AE08:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0804AE72
- movs r0, 0x88
- lsls r0, 1
- ands r0, r1
- cmp r0, 0
- bne _0804AE72
- movs r0, 0x1
- mov r8, r0
- ldr r0, _0804AE80
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r2]
- ldrh r1, [r2, 0x4]
- movs r0, 0x10
- orrs r0, r1
- strh r0, [r2, 0x4]
- movs r5, 0x1
- negs r5, r5
-_0804AE50:
- movs r4, 0x1
- negs r4, r4
- adds r6, r5, 0x1
-_0804AE56:
- movs r1, 0
- ldrsh r0, [r7, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- adds r1, r5, r1
- bl sub_8049BB0
- adds r4, 0x1
- cmp r4, 0x1
- ble _0804AE56
- adds r5, r6, 0
- cmp r5, 0x1
- ble _0804AE50
-_0804AE72:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804AE80: .4byte 0x0000fffc
- thumb_func_end sub_804AE08
-
- thumb_func_start sub_804AE84
-sub_804AE84:
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0804AF0E
- ldr r0, _0804AF14
- ands r0, r1
- strh r0, [r2, 0x4]
- movs r6, 0x1
- negs r6, r6
-_0804AEAA:
- movs r4, 0x1
- negs r4, r4
- adds r7, r6, 0x1
-_0804AEB0:
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- adds r1, r6, r1
- bl sub_80498A8
- movs r1, 0
- ldrsh r0, [r5, r1]
- adds r0, r4, r0
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- adds r1, r6, r1
- bl sub_80402AC
- adds r4, 0x1
- cmp r4, 0x1
- ble _0804AEB0
- adds r6, r7, 0
- cmp r6, 0x1
- ble _0804AEAA
- movs r6, 0
-_0804AEDE:
- ldr r0, _0804AF18
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0804AF1C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0804AEFE
- adds r0, r4, 0
- bl sub_806CF98
-_0804AEFE:
- adds r6, 0x1
- cmp r6, 0x13
- ble _0804AEDE
- bl sub_8049ED4
- adds r0, r5, 0
- bl sub_8042A14
-_0804AF0E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804AF14: .4byte 0x0000ffef
-_0804AF18: .4byte gUnknown_203B418
-_0804AF1C: .4byte 0x000135cc
- thumb_func_end sub_804AE84
-
- thumb_func_start sub_804AF20
-sub_804AF20:
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- bl sub_804AF74
- lsls r0, 24
- cmp r0, 0
- beq _0804AF3C
- ldrh r1, [r4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0804AF5E
- b _0804AF5C
-_0804AF3C:
- ldrh r1, [r4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _0804AF5C
- ldr r1, _0804AF68
- ldr r0, _0804AF6C
- ldr r0, [r0]
- ldr r2, _0804AF70
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0804AF5E
-_0804AF5C:
- movs r5, 0x1
-_0804AF5E:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0804AF68: .4byte gUnknown_810ACC0
-_0804AF6C: .4byte gUnknown_203B418
-_0804AF70: .4byte 0x00003a0e
- thumb_func_end sub_804AF20
-
- thumb_func_start sub_804AF74
-sub_804AF74:
- push {lr}
- ldr r0, _0804AF9C
- ldr r0, [r0]
- ldr r1, _0804AFA0
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0804AF96
- cmp r0, 0x31
- beq _0804AF96
- cmp r0, 0x20
- beq _0804AF96
- cmp r0, 0x21
- beq _0804AF96
- cmp r0, 0x36
- bne _0804AFA4
-_0804AF96:
- movs r0, 0x1
- b _0804AFA6
- .align 2, 0
-_0804AF9C: .4byte gUnknown_203B418
-_0804AFA0: .4byte 0x00003a0e
-_0804AFA4:
- movs r0, 0
-_0804AFA6:
- pop {r1}
- bx r1
- thumb_func_end sub_804AF74
-
- thumb_func_start sub_804AFAC
-sub_804AFAC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- movs r0, 0
- mov r10, r0
- ldr r4, _0804B0E8
- ldr r0, [r4]
- ldr r1, _0804B0EC
- adds r1, r0
- mov r8, r1
- ldr r0, _0804B0F0
- ldr r1, _0804B0F4
- bl OpenFileAndGetFileDataPtr
- ldr r2, [r4]
- ldr r3, _0804B0F8
- adds r1, r2, r3
- str r0, [r1]
- ldr r0, _0804B0FC
- mov r6, r10
- strb r6, [r0]
- ldr r0, _0804B100
- strb r6, [r0]
- ldr r0, _0804B104
- strb r6, [r0]
- ldr r5, _0804B108
- movs r3, 0
- ldr r1, _0804B10C
- ldr r0, _0804B110
- adds r2, r0
- movs r6, 0
- ldrsh r0, [r2, r6]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0804AFFC
- movs r3, 0x1
-_0804AFFC:
- strb r3, [r5]
- ldr r1, _0804B114
- movs r0, 0xFF
- strb r0, [r1]
- ldr r0, _0804B118
- mov r1, r10
- strb r1, [r0]
- ldr r1, _0804B11C
- mov r2, r8
- ldrb r0, [r2, 0x7]
- strh r0, [r1]
- ldr r1, _0804B120
- ldrb r0, [r2, 0x8]
- strh r0, [r1]
- ldr r1, _0804B124
- movs r0, 0x1
- strb r0, [r1]
- ldr r1, _0804B128
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
- str r0, [r1, 0x8]
- str r0, [r1, 0x4]
- str r0, [r1, 0xC]
- bl sub_804FD30
- ldr r3, [r4]
- mov r6, r8
- ldrb r2, [r6, 0x6]
- ldr r1, _0804B12C
- adds r0, r3, r1
- movs r1, 0
- strh r2, [r0]
- ldr r2, _0804B130
- adds r0, r3, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldr r3, _0804B134
- adds r0, r3
- strb r1, [r0]
- ldr r1, _0804B138
- mov r6, r8
- ldrb r0, [r6, 0xC]
- str r0, [r1]
- movs r0, 0
- str r0, [sp, 0x40]
-_0804B058:
- ldr r0, _0804B0E8
- ldr r2, [r0]
- ldr r3, _0804B13C
- adds r1, r2, r3
- ldr r0, _0804B140
- strh r0, [r1]
- ldr r6, _0804B144
- adds r1, r2, r6
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- ldr r0, _0804B148
- adds r1, r2, r0
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- ldr r1, _0804B14C
- adds r2, r1
- strh r0, [r2]
- movs r2, 0
- mov r9, r2
-_0804B082:
- ldr r4, _0804B0E8
- ldr r0, [r4]
- ldr r3, _0804B150
- adds r0, r3
- movs r5, 0
- movs r1, 0
- mov r6, r9
- strh r6, [r0]
- mov r0, r9
- cmp r0, 0
- ble _0804B09C
- ldr r0, _0804B138
- str r1, [r0]
-_0804B09C:
- ldr r0, _0804B154
- strb r5, [r0]
- ldr r1, _0804B158
- ldr r0, _0804B140
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x2]
- bl sub_804FD30
- ldr r1, [r4]
- ldr r3, _0804B13C
- adds r2, r1, r3
- movs r0, 0x1
- negs r0, r0
- strh r0, [r2]
- ldr r6, _0804B144
- adds r2, r1, r6
- strh r0, [r2]
- ldr r0, _0804B15C
- adds r1, r0
- strb r5, [r1]
- ldr r0, [r4]
- ldr r2, _0804B160
- adds r1, r0, r2
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0804B164
- mov r1, r8
- bl sub_804C70C
- lsls r0, 24
- cmp r0, 0
- beq _0804B0E4
- b _0804B376
-_0804B0E4:
- b _0804B2F6
- .align 2, 0
-_0804B0E8: .4byte gUnknown_203B418
-_0804B0EC: .4byte 0x0001c574
-_0804B0F0: .4byte gUnknown_80F6DCC
-_0804B0F4: .4byte gUnknown_83B0000
-_0804B0F8: .4byte 0x00013568
-_0804B0FC: .4byte gUnknown_202F1AA
-_0804B100: .4byte gUnknown_202F1AB
-_0804B104: .4byte gUnknown_202F1AC
-_0804B108: .4byte gUnknown_202F1A8
-_0804B10C: .4byte gUnknown_810ACC0
-_0804B110: .4byte 0x00003a0e
-_0804B114: .4byte gUnknown_202F1B4
-_0804B118: .4byte gUnknown_202F1AE
-_0804B11C: .4byte gUnknown_202F1B0
-_0804B120: .4byte gUnknown_202F1B2
-_0804B124: .4byte gUnknown_202F1AD
-_0804B128: .4byte gUnknown_202F1B8
-_0804B12C: .4byte 0x00000664
-_0804B130: .4byte 0x00003a09
-_0804B134: .4byte 0x00003a0a
-_0804B138: .4byte gUnknown_202F1C8
-_0804B13C: .4byte 0x0000e218
-_0804B140: .4byte 0x0000ffff
-_0804B144: .4byte 0x0000e21a
-_0804B148: .4byte 0x0000e21c
-_0804B14C: .4byte 0x0000e21e
-_0804B150: .4byte 0x00003a16
-_0804B154: .4byte gUnknown_202F1A9
-_0804B158: .4byte gUnknown_202F1D8
-_0804B15C: .4byte 0x00003a08
-_0804B160: .4byte 0x00003a14
-_0804B164:
- mov r0, r8
- ldrb r7, [r0]
- movs r6, 0x20
-_0804B16A:
- cmp r7, 0x8
- beq _0804B17E
- movs r0, 0x2
- movs r1, 0x9
- bl sub_808411C
- adds r5, r0, 0
- movs r0, 0x2
- movs r1, 0x8
- b _0804B18C
-_0804B17E:
- movs r0, 0x2
- movs r1, 0x5
- bl sub_808411C
- adds r5, r0, 0
- movs r0, 0x2
- movs r1, 0x4
-_0804B18C:
- bl sub_808411C
- adds r4, r0, 0
- cmp r5, 0x6
- bgt _0804B19A
- cmp r4, 0x4
- ble _0804B1A4
-_0804B19A:
- subs r6, 0x1
- cmp r6, 0
- bne _0804B16A
- movs r5, 0x4
- movs r4, 0x4
-_0804B1A4:
- movs r0, 0x38
- adds r1, r5, 0
- bl __divsi3
- cmp r0, 0x7
- bgt _0804B1B2
- movs r5, 0x1
-_0804B1B2:
- movs r0, 0x20
- adds r1, r4, 0
- bl __divsi3
- cmp r0, 0x7
- bgt _0804B1C0
- movs r4, 0x1
-_0804B1C0:
- ldr r2, _0804B1EC
- ldr r0, [r2]
- ldr r1, _0804B1F0
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r0, [r2]
- ldr r2, _0804B1F4
- adds r0, r2
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, _0804B1F8
- str r7, [r0]
- movs r0, 0xF
- ands r0, r7
- cmp r0, 0xB
- bhi _0804B274
- lsls r0, 2
- ldr r1, _0804B1FC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804B1EC: .4byte gUnknown_203B418
-_0804B1F0: .4byte 0x00003a08
-_0804B1F4: .4byte 0x00003a0c
-_0804B1F8: .4byte gUnknown_202F1D0
-_0804B1FC: .4byte _0804B200
- .align 2, 0
-_0804B200:
- .4byte _0804B274
- .4byte _0804B230
- .4byte _0804B280
- .4byte _0804B298
- .4byte _0804B2A4
- .4byte _0804B2B0
- .4byte _0804B2CC
- .4byte _0804B2D8
- .4byte _0804B274
- .4byte _0804B2E0
- .4byte _0804B2E8
- .4byte _0804B250
-_0804B230:
- movs r0, 0x2
- bl sub_8084100
- adds r4, r0, 0x2
- ldr r1, _0804B24C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x4
- adds r1, r4, 0
- mov r2, r8
- bl sub_804B634
- b _0804B2AA
- .align 2, 0
-_0804B24C: .4byte gUnknown_202F1AE
-_0804B250:
- movs r0, 0x2
- bl sub_8084100
- adds r4, r0, 0x2
- ldr r1, _0804B270
- movs r0, 0x2
- strb r0, [r1]
- movs r0, 0x4
- adds r1, r4, 0
- mov r2, r8
- bl sub_804B634
- movs r6, 0x1
- mov r10, r6
- b _0804B2F6
- .align 2, 0
-_0804B270: .4byte gUnknown_202F1AE
-_0804B274:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl sub_804B634
- b _0804B2D2
-_0804B280:
- bl sub_804C918
- ldr r0, _0804B290
- ldr r0, [r0]
- ldr r1, _0804B294
- adds r0, r1
- b _0804B2BC
- .align 2, 0
-_0804B290: .4byte gUnknown_203B418
-_0804B294: .4byte 0x00003a08
-_0804B298:
- mov r0, r8
- bl sub_804B72C
- movs r2, 0x1
- mov r10, r2
- b _0804B2F6
-_0804B2A4:
- mov r0, r8
- bl sub_804BC80
-_0804B2AA:
- movs r3, 0x1
- mov r10, r3
- b _0804B2F6
-_0804B2B0:
- bl sub_804C9D0
- ldr r0, _0804B2C4
- ldr r0, [r0]
- ldr r6, _0804B2C8
- adds r0, r6
-_0804B2BC:
- movs r1, 0x1
- strb r1, [r0]
- b _0804B2F6
- .align 2, 0
-_0804B2C4: .4byte gUnknown_203B418
-_0804B2C8: .4byte 0x00003a08
-_0804B2CC:
- mov r0, r8
- bl sub_804C0A8
-_0804B2D2:
- movs r0, 0x1
- mov r10, r0
- b _0804B2F6
-_0804B2D8:
- mov r0, r8
- bl sub_804C190
- b _0804B2F6
-_0804B2E0:
- mov r0, r8
- bl sub_804C2F4
- b _0804B2F6
-_0804B2E8:
- adds r0, r5, 0
- adds r1, r4, 0
- mov r2, r8
- bl sub_804C53C
- movs r1, 0x1
- mov r10, r1
-_0804B2F6:
- bl sub_80518F0
- bl sub_804FCCC
- ldr r0, _0804B4B4
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804B36A
- movs r7, 0
- movs r1, 0
- mov r0, sp
- adds r0, 0x3F
-_0804B30E:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _0804B30E
- movs r5, 0
-_0804B318:
- movs r4, 0
- adds r6, r5, 0x1
-_0804B31C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r0, [r1]
- movs r2, 0x3
- ands r2, r0
- cmp r2, 0x1
- bne _0804B340
- ldrb r0, [r1, 0x9]
- cmp r0, 0xF0
- bhi _0804B340
- adds r7, 0x1
- cmp r0, 0x3F
- bhi _0804B340
- add r0, sp
- strb r2, [r0]
-_0804B340:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0804B31C
- adds r5, r6, 0
- cmp r5, 0x37
- ble _0804B318
- movs r1, 0
- movs r4, 0
-_0804B350:
- mov r2, sp
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804B35C
- adds r1, 0x1
-_0804B35C:
- adds r4, 0x1
- cmp r4, 0x3F
- ble _0804B350
- cmp r7, 0x1D
- ble _0804B36A
- cmp r1, 0x1
- bgt _0804B376
-_0804B36A:
- movs r3, 0x1
- add r9, r3
- mov r6, r9
- cmp r6, 0x9
- bgt _0804B376
- b _0804B082
-_0804B376:
- mov r0, r9
- cmp r0, 0xA
- bne _0804B398
- ldr r1, _0804B4B8
- ldr r0, _0804B4BC
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x2]
- bl sub_804C918
- ldr r0, _0804B4C0
- ldr r0, [r0]
- ldr r1, _0804B4C4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
-_0804B398:
- bl sub_804E9DC
- mov r2, r10
- cmp r2, 0
- beq _0804B3AA
- movs r0, 0x1
- mov r1, r8
- bl sub_80506F0
-_0804B3AA:
- movs r0, 0x64
- bl sub_8084100
- movs r4, 0
- mov r3, r8
- ldrb r3, [r3, 0x19]
- cmp r0, r3
- bge _0804B3BC
- movs r4, 0x1
-_0804B3BC:
- mov r0, r8
- adds r1, r4, 0
- bl sub_804FF08
- mov r0, r8
- adds r1, r4, 0
- bl sub_8050438
- bl sub_804FBE8
- ldr r5, _0804B4C0
- ldr r1, [r5]
- ldr r6, _0804B4C8
- adds r0, r1, r6
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r4, 0x1
- negs r4, r4
- cmp r0, r4
- beq _0804B42A
- ldr r3, _0804B4CC
- adds r0, r1, r3
- movs r6, 0
- ldrsh r0, [r0, r6]
- cmp r0, r4
- beq _0804B42A
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0804B436
- ldr r1, [r5]
- ldr r0, _0804B4D0
- adds r2, r1, r0
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, r4
- beq _0804B42A
- ldr r6, _0804B4D4
- adds r1, r6
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, r4
- beq _0804B42A
- movs r6, 0
- ldrsh r0, [r2, r6]
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r2, 0
- bl sub_8050C30
- lsls r0, 24
- cmp r0, 0
- bne _0804B436
-_0804B42A:
- ldr r3, [sp, 0x40]
- adds r3, 0x1
- str r3, [sp, 0x40]
- cmp r3, 0x9
- bgt _0804B436
- b _0804B058
-_0804B436:
- ldr r6, [sp, 0x40]
- cmp r6, 0xA
- bne _0804B474
- ldr r1, _0804B4B8
- ldr r0, _0804B4BC
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x2]
- bl sub_804FD30
- bl sub_804C918
- ldr r0, _0804B4C0
- ldr r0, [r0]
- ldr r1, _0804B4C4
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- bl sub_804E9DC
- mov r0, r8
- movs r1, 0
- bl sub_804FF08
- mov r0, r8
- movs r1, 0
- bl sub_8050438
- bl sub_804FBE8
-_0804B474:
- ldr r1, _0804B4B8
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- blt _0804B498
- movs r3, 0x2
- ldrsh r0, [r1, r3]
- cmp r0, 0
- blt _0804B498
- movs r6, 0
- ldrsh r0, [r1, r6]
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- movs r2, 0xBE
- lsls r2, 1
- movs r3, 0
- bl sub_806C330
-_0804B498:
- ldr r0, _0804B4D8
- ldr r0, [r0]
- cmp r0, 0
- blt _0804B4E0
- mov r0, r8
- bl sub_8051654
- ldr r0, _0804B4C0
- ldr r0, [r0]
- ldr r3, _0804B4DC
- adds r0, r3
- movs r1, 0x1
- b _0804B4EA
- .align 2, 0
-_0804B4B4: .4byte gUnknown_202F1A9
-_0804B4B8: .4byte gUnknown_202F1D8
-_0804B4BC: .4byte 0x0000ffff
-_0804B4C0: .4byte gUnknown_203B418
-_0804B4C4: .4byte 0x00003a08
-_0804B4C8: .4byte 0x0000e218
-_0804B4CC: .4byte 0x0000e21a
-_0804B4D0: .4byte 0x0000e21c
-_0804B4D4: .4byte 0x0000e21e
-_0804B4D8: .4byte gUnknown_202F1B8
-_0804B4DC: .4byte 0x00003a0a
-_0804B4E0:
- ldr r0, _0804B524
- ldr r0, [r0]
- ldr r6, _0804B528
- adds r0, r6
- movs r1, 0
-_0804B4EA:
- strb r1, [r0]
- movs r0, 0
- movs r1, 0
- movs r2, 0x38
- movs r3, 0x20
- bl sub_804B534
- ldr r0, _0804B52C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804B504
- bl sub_804FC74
-_0804B504:
- ldr r0, _0804B524
- ldr r0, [r0]
- ldr r1, _0804B530
- adds r0, r1
- ldr r0, [r0]
- bl CloseFile
- 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
-_0804B524: .4byte gUnknown_203B418
-_0804B528: .4byte 0x00003a0a
-_0804B52C: .4byte gUnknown_202F1A8
-_0804B530: .4byte 0x00013568
- thumb_func_end sub_804AFAC
-
- thumb_func_start sub_804B534
-sub_804B534:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- str r1, [sp]
- str r2, [sp, 0x4]
- mov r10, r3
- adds r5, r0, 0
- cmp r5, r2
- bge _0804B620
-_0804B54C:
- ldr r4, [sp]
- adds r0, r5, 0x1
- mov r9, r0
- cmp r4, r10
- bge _0804B618
- movs r6, 0x3
- mov r8, r6
-_0804B55A:
- movs r3, 0
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0xC]
- bl sub_8049590
- adds r2, r0, 0
- ldrh r0, [r2]
- ldr r6, _0804B630
- adds r1, r6, 0
- ands r1, r0
- strh r1, [r2]
- ldrb r0, [r2, 0x9]
- adds r6, r4, 0x1
- ldr r3, [sp, 0xC]
- cmp r0, 0xFF
- bne _0804B612
- movs r7, 0x3
- adds r0, r1, 0
- ands r0, r7
- cmp r0, 0x1
- bne _0804B612
- cmp r5, 0
- ble _0804B5A4
- subs r0, r5, 0x1
- adds r1, r4, 0
- str r2, [sp, 0x8]
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0xC]
- cmp r0, 0x1
- bne _0804B5A4
- movs r3, 0x1
-_0804B5A4:
- cmp r4, 0
- ble _0804B5C4
- subs r1, r4, 0x1
- adds r0, r5, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0xC]
- cmp r0, 0x1
- bne _0804B5C4
- adds r3, 0x1
-_0804B5C4:
- cmp r5, 0x35
- bgt _0804B5E4
- mov r0, r9
- adds r1, r4, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0xC]
- cmp r0, 0x1
- bne _0804B5E4
- adds r3, 0x1
-_0804B5E4:
- adds r6, r4, 0x1
- cmp r5, 0x1D
- bgt _0804B606
- adds r0, r5, 0
- adds r1, r6, 0
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x8]
- ldr r3, [sp, 0xC]
- cmp r0, 0x1
- bne _0804B606
- adds r3, 0x1
-_0804B606:
- cmp r3, 0x2
- ble _0804B612
- ldrh r1, [r2]
- movs r0, 0x8
- orrs r0, r1
- strh r0, [r2]
-_0804B612:
- adds r4, r6, 0
- cmp r4, r10
- blt _0804B55A
-_0804B618:
- mov r5, r9
- ldr r0, [sp, 0x4]
- cmp r5, r0
- blt _0804B54C
-_0804B620:
- 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
-_0804B630: .4byte 0x0000fffb
- thumb_func_end sub_804B534
-
- thumb_func_start sub_804B634
-sub_804B634:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- ldr r4, _0804B718
- add sp, r4
- adds r4, r0, 0
- adds r5, r1, 0
- mov r9, r2
- ldr r0, _0804B71C
- add r0, sp
- mov r8, r0
- ldr r6, _0804B720
- add r6, sp
- adds r1, r6, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_804D024
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804D084
- mov r1, r9
- movs r3, 0x1
- ldrsb r3, [r1, r3]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804D154
- str r6, [sp]
- mov r1, r9
- ldrb r0, [r1, 0xD]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl sub_804D2D0
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r9
- bl sub_804D5B0
- str r6, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl sub_804D8C8
- str r6, [sp]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl sub_804E590
- mov r0, r9
- ldrb r3, [r0, 0x9]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804F0D0
- ldr r0, _0804B724
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804EBC8
- ldr r0, _0804B728
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804EEE4
- mov r0, r9
- ldrb r3, [r0, 0x13]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804CBEC
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804E03C
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_804D534
- movs r3, 0xE5
- lsls r3, 5
- add sp, r3
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804B718: .4byte 0xffffe360
-_0804B71C: .4byte 0x00001c28
-_0804B720: .4byte 0x00001c64
-_0804B724: .4byte gUnknown_202F1B0
-_0804B728: .4byte gUnknown_202F1B2
- thumb_func_end sub_804B634
-
- thumb_func_start sub_804B72C
-sub_804B72C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804B9AC
- add sp, r4
- movs r1, 0xE5
- lsls r1, 5
- add r1, sp
- str r0, [r1]
- movs r5, 0
- movs r6, 0x1
- ldr r1, _0804B9B0
- add r1, sp
- str r5, [r1]
- movs r0, 0x5
- str r0, [r1, 0x4]
- movs r0, 0x1C
- str r0, [r1, 0xC]
- movs r0, 0x33
- str r0, [r1, 0x14]
- movs r0, 0x38
- str r0, [r1, 0x18]
- movs r2, 0x10
- str r2, [r1, 0x8]
- movs r0, 0x27
- str r0, [r1, 0x10]
- ldr r1, _0804B9B4
- add r1, sp
- movs r0, 0x2
- str r0, [r1]
- movs r0, 0x7
- str r0, [r1, 0x4]
- str r2, [r1, 0x8]
- movs r0, 0x19
- str r0, [r1, 0xC]
- movs r0, 0x1E
- str r0, [r1, 0x10]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- bl sub_804D084
- mov r2, sp
- adds r2, 0x3B
- ldr r3, _0804B9B8
- add r3, sp
- str r2, [r3]
- mov r4, sp
- adds r4, 0x3C
- ldr r0, _0804B9BC
- add r0, sp
- str r4, [r0]
- mov r1, sp
- adds r1, 0x5B
- ldr r2, _0804B9C0
- add r2, sp
- str r1, [r2]
- mov r3, sp
- adds r3, 0x5C
- movs r4, 0xE6
- lsls r4, 5
- add r4, sp
- str r3, [r4]
- mov r0, sp
- adds r0, 0x7B
- ldr r1, _0804B9C4
- add r1, sp
- str r0, [r1]
- mov r2, sp
- adds r2, 0x7E
- ldr r3, _0804B9C8
- add r3, sp
- str r2, [r3]
- add r1, sp, 0x68
- add r0, sp, 0x8
- movs r2, 0xF0
- lsls r2, 1
- movs r4, 0x6
-_0804B7CC:
- strb r5, [r0, 0xA]
- strb r5, [r1, 0xA]
- adds r1, r2
- adds r0, r2
- subs r4, 0x1
- cmp r4, 0
- bne _0804B7CC
- movs r2, 0x6
- subs r2, 0x1
- movs r4, 0x4
- cmp r4, 0
- beq _0804B80C
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- add r1, sp, 0x8
- ldr r3, _0804B9CC
- add r3, sp
- str r4, [r3]
-_0804B7F6:
- strb r5, [r1, 0xA]
- strb r5, [r0, 0xA]
- adds r0, 0x20
- adds r1, 0x20
- ldr r3, _0804B9CC
- add r3, sp
- ldr r4, [r3]
- subs r4, 0x1
- str r4, [r3]
- cmp r4, 0
- bne _0804B7F6
-_0804B80C:
- movs r4, 0x1
- cmp r4, r2
- bge _0804B848
- movs r1, 0x3
-_0804B814:
- adds r5, r4, 0x1
- mov r8, r5
- cmp r1, 0x1
- ble _0804B842
- lsls r0, r4, 4
- subs r0, r4
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r0, 0x20
- subs r3, r1, 0x1
- ldr r4, _0804B9CC
- add r4, sp
- str r3, [r4]
-_0804B830:
- strb r6, [r0, 0xA]
- adds r0, 0x20
- ldr r3, _0804B9CC
- add r3, sp
- ldr r5, [r3]
- subs r5, 0x1
- str r5, [r3]
- cmp r5, 0
- bne _0804B830
-_0804B842:
- mov r4, r8
- cmp r4, r2
- blt _0804B814
-_0804B848:
- movs r4, 0
- ldr r5, _0804B9D0
- add r5, sp
- str r4, [r5]
- ldr r0, _0804B9CC
- add r0, sp
- str r4, [r0]
- cmp r4, 0x4
- blt _0804B85C
- b _0804BA8C
-_0804B85C:
- movs r4, 0
- ldr r2, _0804B9CC
- add r2, sp
- ldr r1, [r2]
- adds r1, 0x1
- ldr r2, _0804B9D4
- add r2, sp
- str r1, [r2]
- cmp r4, 0x6
- blt _0804B872
- b _0804BA7A
-_0804B872:
- ldr r3, _0804B9B0
- add r3, sp
- ldr r5, _0804B9D8
- add r5, sp
- str r3, [r5]
- ldr r0, _0804B9B4
- add r0, sp
- ldr r1, _0804B9DC
- add r1, sp
- str r0, [r1]
- ldr r2, _0804B9CC
- add r2, sp
- ldr r2, [r2]
- lsls r0, r2, 2
- ldr r3, [r1]
- adds r0, r3, r0
- ldr r3, _0804B9E0
- add r3, sp
- str r0, [r3]
-_0804B898:
- lsls r0, r4, 4
- subs r0, r4
- ldr r5, _0804B9CC
- add r5, sp
- ldr r5, [r5]
- adds r0, r5
- lsls r0, 5
- mov r7, sp
- adds r7, r0
- adds r7, 0x8
- ldrb r0, [r7, 0xA]
- cmp r0, 0
- bne _0804B8B4
- b _0804B9F4
-_0804B8B4:
- lsls r0, r4, 2
- ldr r1, _0804B9D8
- add r1, sp
- ldr r1, [r1]
- adds r0, r1, r0
- ldr r1, [r0]
- adds r2, r1, 0x2
- mov r10, r2
- ldr r3, _0804B9E0
- add r3, sp
- ldr r3, [r3]
- ldr r2, [r3]
- adds r5, r2, 0x2
- ldr r0, _0804B9E4
- add r0, sp
- str r5, [r0]
- adds r4, 0x1
- mov r9, r4
- lsls r0, r4, 2
- ldr r3, _0804B9D8
- add r3, sp
- ldr r3, [r3]
- adds r0, r3, r0
- ldr r4, [r0]
- subs r4, r1
- subs r4, 0x3
- ldr r5, _0804B9D4
- add r5, sp
- ldr r5, [r5]
- lsls r0, r5, 2
- ldr r1, _0804B9DC
- add r1, sp
- ldr r1, [r1]
- adds r0, r1, r0
- ldr r5, [r0]
- subs r5, r2
- subs r5, 0x3
- movs r0, 0x5
- adds r1, r4, 0
- bl sub_808411C
- mov r8, r0
- movs r0, 0x4
- adds r1, r5, 0
- bl sub_808411C
- adds r6, r0, 0
- mov r2, r8
- subs r4, r2
- adds r0, r4, 0
- bl sub_8084100
- adds r4, r0, 0
- add r4, r10
- subs r5, r6
- adds r0, r5, 0
- bl sub_8084100
- ldr r5, _0804B9E4
- add r5, sp
- ldr r3, [r5]
- adds r3, r0
- mov r10, r3
- mov r0, r8
- adds r3, r4, r0
- add r6, r10
- strh r4, [r7]
- strh r3, [r7, 0x4]
- mov r1, r10
- strh r1, [r7, 0x2]
- strh r6, [r7, 0x6]
- mov r8, r9
- ldr r5, _0804B9D0
- add r5, sp
- ldr r2, [r5]
- adds r2, 0x1
- ldr r5, _0804B9E8
- add r5, sp
- str r2, [r5]
- cmp r4, r3
- bge _0804B99E
-_0804B956:
- mov r5, r10
- adds r7, r4, 0x1
- cmp r5, r6
- bge _0804B998
- ldr r0, _0804B9EC
- mov r9, r0
-_0804B962:
- adds r0, r4, 0
- adds r1, r5, 0
- ldr r2, _0804B9F0
- add r2, sp
- str r3, [r2]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r9
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- ldr r1, _0804B9D0
- add r1, sp
- ldrb r1, [r1]
- strb r1, [r0, 0x9]
- adds r5, 0x1
- ldr r2, _0804B9F0
- add r2, sp
- ldr r3, [r2]
- cmp r5, r6
- blt _0804B962
-_0804B998:
- adds r4, r7, 0
- cmp r4, r3
- blt _0804B956
-_0804B99E:
- ldr r3, _0804B9E8
- add r3, sp
- ldr r3, [r3]
- ldr r4, _0804B9D0
- add r4, sp
- str r3, [r4]
- b _0804BA72
- .align 2, 0
-_0804B9AC: .4byte 0xffffe320
-_0804B9B0: .4byte 0x00001c28
-_0804B9B4: .4byte 0x00001c64
-_0804B9B8: .4byte 0x00001cd4
-_0804B9BC: .4byte 0x00001cd8
-_0804B9C0: .4byte 0x00001cbc
-_0804B9C4: .4byte 0x00001cc4
-_0804B9C8: .4byte 0x00001cc8
-_0804B9CC: .4byte 0x00001ca4
-_0804B9D0: .4byte 0x00001ca8
-_0804B9D4: .4byte 0x00001ccc
-_0804B9D8: .4byte 0x00001cac
-_0804B9DC: .4byte 0x00001cb4
-_0804B9E0: .4byte 0x00001cb8
-_0804B9E4: .4byte 0x00001cb0
-_0804B9E8: .4byte 0x00001cd0
-_0804B9EC: .4byte 0x0000fffc
-_0804B9F0: .4byte 0x00001cdc
-_0804B9F4:
- lsls r0, r4, 2
- ldr r5, _0804BBE8
- add r5, sp
- ldr r5, [r5]
- adds r0, r5, r0
- ldr r2, [r0]
- adds r0, r2, 0x1
- ldr r1, _0804BBEC
- add r1, sp
- ldr r1, [r1]
- ldr r3, [r1]
- adds r6, r3, 0x1
- adds r4, 0x1
- mov r8, r4
- lsls r1, r4, 2
- adds r1, r5, r1
- ldr r1, [r1]
- subs r1, r2
- subs r1, 0x3
- ldr r5, _0804BBF0
- add r5, sp
- ldr r5, [r5]
- lsls r2, r5, 2
- ldr r4, _0804BBF4
- add r4, sp
- ldr r4, [r4]
- adds r2, r4, r2
- ldr r4, [r2]
- subs r4, r3
- subs r4, 0x3
- adds r1, r0, r1
- bl sub_808411C
- adds r5, r0, 0
- adds r4, r6, r4
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_808411C
- adds r4, r0, 0
- strh r5, [r7]
- adds r0, r5, 0x1
- strh r0, [r7, 0x4]
- strh r4, [r7, 0x2]
- adds r0, r4, 0x1
- strh r0, [r7, 0x6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, _0804BBF8
- adds r2, r3, 0
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0xFF
- strb r1, [r0, 0x9]
-_0804BA72:
- mov r4, r8
- cmp r4, 0x6
- bge _0804BA7A
- b _0804B898
-_0804BA7A:
- ldr r4, _0804BBF0
- add r4, sp
- ldr r4, [r4]
- ldr r5, _0804BBFC
- add r5, sp
- str r4, [r5]
- cmp r4, 0x4
- bge _0804BA8C
- b _0804B85C
-_0804BA8C:
- add r1, sp, 0x8
- movs r6, 0
- movs r0, 0x1
- strb r0, [r1, 0x16]
- ldr r1, _0804BC00
- add r1, sp
- strb r0, [r1]
- movs r1, 0xFF
- lsls r1, 1
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC04
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC08
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC0C
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC10
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC14
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC18
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC1C
- add r1, sp
- strb r0, [r1]
- add r1, sp, 0x8
- strb r0, [r1, 0x14]
- ldr r5, _0804BC20
- add r5, sp
- ldr r5, [r5]
- strb r0, [r5]
- ldr r1, _0804BC24
- add r1, sp
- ldr r1, [r1]
- strb r0, [r1]
- ldr r2, _0804BC28
- add r2, sp
- ldr r2, [r2]
- strb r0, [r2]
- movs r3, 0xE6
- lsls r3, 5
- add r3, sp
- ldr r3, [r3]
- strb r0, [r3]
- ldr r4, _0804BC2C
- add r4, sp
- ldr r4, [r4]
- strb r0, [r4]
- ldr r5, _0804BC30
- add r5, sp
- ldr r5, [r5]
- strb r0, [r5]
- ldr r1, _0804BC34
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC38
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC3C
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC40
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC44
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC48
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC4C
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC50
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC54
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC58
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC5C
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC60
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC64
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC68
- add r1, sp
- strb r0, [r1]
- ldr r1, _0804BC6C
- add r1, sp
- strb r0, [r1]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- movs r4, 0xE5
- lsls r4, 5
- add r4, sp
- ldr r3, [r4]
- bl sub_804D5B0
- ldr r5, _0804BC70
- add r5, sp
- ldr r4, _0804BC74
- add r4, sp
- str r4, [sp]
- str r6, [sp, 0x4]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- adds r3, r5, 0
- bl sub_804D8C8
- str r4, [sp]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- adds r3, r5, 0
- bl sub_804E590
- ldr r0, _0804BC78
- movs r5, 0
- ldrsh r3, [r0, r5]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- bl sub_804EBC8
- ldr r0, _0804BC7C
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- bl sub_804EEE4
- movs r2, 0xE5
- lsls r2, 5
- add r2, sp
- ldr r2, [r2]
- ldrb r3, [r2, 0x13]
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- bl sub_804CBEC
- add r0, sp, 0x8
- movs r1, 0x6
- movs r2, 0x4
- bl sub_804E03C
- movs r3, 0xE7
- lsls r3, 5
- 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
-_0804BBE8: .4byte 0x00001cac
-_0804BBEC: .4byte 0x00001cb8
-_0804BBF0: .4byte 0x00001ccc
-_0804BBF4: .4byte 0x00001cb4
-_0804BBF8: .4byte 0x0000fffc
-_0804BBFC: .4byte 0x00001ca4
-_0804BC00: .4byte 0x000001fd
-_0804BC04: .4byte 0x000003dd
-_0804BC08: .4byte 0x000003de
-_0804BC0C: .4byte 0x000005bd
-_0804BC10: .4byte 0x000005be
-_0804BC14: .4byte 0x0000079d
-_0804BC18: .4byte 0x0000079e
-_0804BC1C: .4byte 0x0000097d
-_0804BC20: .4byte 0x00001cd4
-_0804BC24: .4byte 0x00001cd8
-_0804BC28: .4byte 0x00001cbc
-_0804BC2C: .4byte 0x00001cc4
-_0804BC30: .4byte 0x00001cc8
-_0804BC34: .4byte 0x0000025d
-_0804BC38: .4byte 0x0000025e
-_0804BC3C: .4byte 0x0000043d
-_0804BC40: .4byte 0x0000043e
-_0804BC44: .4byte 0x0000061d
-_0804BC48: .4byte 0x0000061e
-_0804BC4C: .4byte 0x000007fd
-_0804BC50: .4byte 0x000007fe
-_0804BC54: .4byte 0x000009dd
-_0804BC58: .4byte 0x0000097c
-_0804BC5C: .4byte 0x0000099b
-_0804BC60: .4byte 0x0000099c
-_0804BC64: .4byte 0x000009bb
-_0804BC68: .4byte 0x000009bc
-_0804BC6C: .4byte 0x000009db
-_0804BC70: .4byte 0x00001c28
-_0804BC74: .4byte 0x00001c64
-_0804BC78: .4byte gUnknown_202F1B0
-_0804BC7C: .4byte gUnknown_202F1B2
- thumb_func_end sub_804B72C
-
- thumb_func_start sub_804BC80
-sub_804BC80:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804BED0
- add sp, r4
- movs r1, 0xE5
- lsls r1, 5
- add r1, sp
- str r0, [r1]
- movs r4, 0x1
- movs r5, 0
- ldr r1, _0804BED4
- add r1, sp
- str r5, [r1]
- movs r0, 0xB
- str r0, [r1, 0x4]
- movs r0, 0x16
- str r0, [r1, 0x8]
- movs r0, 0x21
- str r0, [r1, 0xC]
- movs r0, 0x2C
- str r0, [r1, 0x10]
- movs r0, 0x38
- str r0, [r1, 0x14]
- ldr r1, _0804BED8
- add r1, sp
- str r4, [r1]
- movs r0, 0x9
- str r0, [r1, 0x4]
- movs r0, 0x10
- str r0, [r1, 0x8]
- movs r0, 0x17
- str r0, [r1, 0xC]
- movs r0, 0x1F
- str r0, [r1, 0x10]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- bl sub_804D084
- add r6, sp, 0x70
- add r1, sp, 0x68
- add r0, sp, 0x8
- movs r3, 0xF0
- lsls r3, 1
- movs r2, 0x5
-_0804BCE0:
- strb r4, [r0, 0xA]
- strb r4, [r1, 0xA]
- adds r1, r3
- adds r0, r3
- subs r2, 0x1
- cmp r2, 0
- bne _0804BCE0
- movs r3, 0x5
- subs r3, 0x1
- movs r2, 0x4
- cmp r2, 0
- beq _0804BD1A
- lsls r0, r3, 4
- subs r0, r3
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- add r1, sp, 0x8
- mov r10, r2
-_0804BD06:
- strb r4, [r1, 0xA]
- strb r4, [r0, 0xA]
- adds r0, 0x20
- adds r1, 0x20
- movs r2, 0x1
- negs r2, r2
- add r10, r2
- mov r2, r10
- cmp r2, 0
- bne _0804BD06
-_0804BD1A:
- movs r2, 0x1
- cmp r2, r3
- bge _0804BD58
- movs r1, 0x3
-_0804BD22:
- adds r4, r2, 0x1
- ldr r0, _0804BEDC
- add r0, sp
- str r4, [r0]
- cmp r1, 0x1
- ble _0804BD4E
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r0, 0x20
- subs r2, r1, 0x1
- mov r10, r2
-_0804BD3E:
- strb r5, [r0, 0xA]
- adds r0, 0x20
- movs r4, 0x1
- negs r4, r4
- add r10, r4
- mov r2, r10
- cmp r2, 0
- bne _0804BD3E
-_0804BD4E:
- ldr r4, _0804BEDC
- add r4, sp
- ldr r2, [r4]
- cmp r2, r3
- blt _0804BD22
-_0804BD58:
- add r0, sp, 0x8
- movs r1, 0x1
- strb r1, [r0, 0x8]
- movs r0, 0xF2
- lsls r0, 3
- add r0, sp
- strb r1, [r0]
- strb r1, [r6]
- movs r0, 0xFE
- lsls r0, 3
- add r0, sp
- strb r1, [r0]
- movs r5, 0
- ldr r6, _0804BEE0
- add r6, sp
- str r5, [r6]
- mov r10, r5
- cmp r5, 0x4
- blt _0804BD80
- b _0804BFAC
-_0804BD80:
- movs r0, 0x4
- movs r1, 0xE6
- lsls r1, 5
- add r1, sp
- str r0, [r1]
-_0804BD8A:
- movs r2, 0
- cmp r2, 0x5
- blt _0804BD92
- b _0804BF94
-_0804BD92:
- ldr r3, _0804BED4
- add r3, sp
- ldr r4, _0804BEE4
- add r4, sp
- str r3, [r4]
- ldr r5, _0804BED8
- add r5, sp
- ldr r6, _0804BEE8
- add r6, sp
- str r5, [r6]
- mov r1, r10
- lsls r0, r1, 2
- adds r0, r5, r0
- ldr r3, _0804BEEC
- add r3, sp
- str r0, [r3]
-_0804BDB2:
- lsls r0, r2, 4
- subs r0, r2
- add r0, r10
- lsls r0, 5
- mov r7, sp
- adds r7, r0
- adds r7, 0x8
- ldrb r0, [r7, 0x8]
- adds r4, r2, 0x1
- ldr r5, _0804BEDC
- add r5, sp
- str r4, [r5]
- cmp r0, 0
- beq _0804BDD0
- b _0804BF88
-_0804BDD0:
- ldrb r0, [r7, 0xA]
- cmp r0, 0
- bne _0804BDD8
- b _0804BF00
-_0804BDD8:
- lsls r0, r2, 2
- ldr r6, _0804BEE4
- add r6, sp
- ldr r6, [r6]
- adds r0, r6, r0
- ldr r1, [r0]
- adds r0, r1, 0x2
- mov r9, r0
- ldr r3, _0804BEEC
- add r3, sp
- ldr r3, [r3]
- ldr r2, [r3]
- adds r4, r2, 0x2
- ldr r5, _0804BEF0
- add r5, sp
- str r4, [r5]
- ldr r6, _0804BEDC
- add r6, sp
- ldr r6, [r6]
- lsls r0, r6, 2
- ldr r3, _0804BEE4
- add r3, sp
- ldr r3, [r3]
- adds r0, r3, r0
- ldr r4, [r0]
- subs r4, r1
- subs r4, 0x3
- ldr r5, _0804BEE8
- add r5, sp
- ldr r5, [r5]
- movs r6, 0xE6
- lsls r6, 5
- add r6, sp
- ldr r6, [r6]
- adds r0, r5, r6
- ldr r5, [r0]
- subs r5, r2
- subs r5, 0x3
- movs r0, 0x5
- adds r1, r4, 0
- bl sub_808411C
- mov r8, r0
- movs r0, 0x4
- adds r1, r5, 0
- bl sub_808411C
- adds r6, r0, 0
- mov r0, r8
- subs r4, r0
- adds r0, r4, 0
- bl sub_8084100
- adds r4, r0, 0
- add r4, r9
- subs r5, r6
- adds r0, r5, 0
- bl sub_8084100
- ldr r2, _0804BEF0
- add r2, sp
- ldr r1, [r2]
- adds r1, r0
- mov r9, r1
- mov r5, r8
- adds r3, r4, r5
- add r6, r9
- strh r4, [r7]
- strh r3, [r7, 0x4]
- strh r1, [r7, 0x2]
- strh r6, [r7, 0x6]
- ldr r1, _0804BEE0
- add r1, sp
- ldr r0, [r1]
- adds r0, 0x1
- ldr r1, _0804BEF4
- add r1, sp
- str r0, [r1]
- cmp r4, r3
- bge _0804BEC0
-_0804BE78:
- mov r5, r9
- adds r7, r4, 0x1
- cmp r5, r6
- bge _0804BEBA
- ldr r2, _0804BEF8
- mov r8, r2
-_0804BE84:
- adds r0, r4, 0
- adds r1, r5, 0
- ldr r2, _0804BEFC
- add r2, sp
- str r3, [r2]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r8
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- ldr r1, _0804BEE0
- add r1, sp
- ldrb r1, [r1]
- strb r1, [r0, 0x9]
- adds r5, 0x1
- ldr r2, _0804BEFC
- add r2, sp
- ldr r3, [r2]
- cmp r5, r6
- blt _0804BE84
-_0804BEBA:
- adds r4, r7, 0
- cmp r4, r3
- blt _0804BE78
-_0804BEC0:
- ldr r3, _0804BEF4
- add r3, sp
- ldr r3, [r3]
- ldr r4, _0804BEE0
- add r4, sp
- str r3, [r4]
- b _0804BF88
- .align 2, 0
-_0804BED0: .4byte 0xffffe338
-_0804BED4: .4byte 0x00001c28
-_0804BED8: .4byte 0x00001c64
-_0804BEDC: .4byte 0x00001cb8
-_0804BEE0: .4byte 0x00001ca4
-_0804BEE4: .4byte 0x00001ca8
-_0804BEE8: .4byte 0x00001cb0
-_0804BEEC: .4byte 0x00001cb4
-_0804BEF0: .4byte 0x00001cac
-_0804BEF4: .4byte 0x00001cbc
-_0804BEF8: .4byte 0x0000fffc
-_0804BEFC: .4byte 0x00001cc4
-_0804BF00:
- lsls r0, r2, 2
- ldr r4, _0804C080
- add r4, sp
- ldr r4, [r4]
- adds r0, r4, r0
- ldr r2, [r0]
- adds r0, r2, 0x1
- ldr r5, _0804C084
- add r5, sp
- ldr r5, [r5]
- ldr r3, [r5]
- adds r6, r3, 0x1
- mov r8, r6
- ldr r4, _0804C088
- add r4, sp
- ldr r4, [r4]
- lsls r1, r4, 2
- ldr r5, _0804C080
- add r5, sp
- ldr r5, [r5]
- adds r1, r5, r1
- ldr r1, [r1]
- subs r1, r2
- subs r1, 0x3
- ldr r6, _0804C08C
- add r6, sp
- ldr r6, [r6]
- movs r4, 0xE6
- lsls r4, 5
- add r4, sp
- ldr r4, [r4]
- adds r2, r6, r4
- ldr r4, [r2]
- subs r4, r3
- subs r4, 0x3
- adds r1, r0, r1
- bl sub_808411C
- adds r5, r0, 0
- add r4, r8
- mov r0, r8
- adds r1, r4, 0
- bl sub_808411C
- adds r4, r0, 0
- strh r5, [r7]
- adds r0, r5, 0x1
- strh r0, [r7, 0x4]
- strh r4, [r7, 0x2]
- adds r0, r4, 0x1
- strh r0, [r7, 0x6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ldr r6, _0804C090
- adds r2, r6, 0
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0xFF
- strb r1, [r0, 0x9]
-_0804BF88:
- ldr r0, _0804C088
- add r0, sp
- ldr r2, [r0]
- cmp r2, 0x5
- bge _0804BF94
- b _0804BDB2
-_0804BF94:
- movs r2, 0xE6
- lsls r2, 5
- add r2, sp
- ldr r1, [r2]
- adds r1, 0x4
- str r1, [r2]
- movs r3, 0x1
- add r10, r3
- mov r4, r10
- cmp r4, 0x4
- bge _0804BFAC
- b _0804BD8A
-_0804BFAC:
- movs r2, 0x1
- movs r1, 0x1
- movs r3, 0xF
- add r4, sp, 0x1C
-_0804BFB4:
- movs r5, 0
- mov r10, r5
- lsls r0, r3, 5
- adds r0, r4
-_0804BFBC:
- strb r1, [r0]
- strb r1, [r0, 0x1F]
- adds r0, 0x20
- movs r6, 0x1
- add r10, r6
- mov r5, r10
- cmp r5, 0x2
- ble _0804BFBC
- movs r0, 0xF0
- lsls r0, 1
- adds r3, 0xF
- adds r2, 0x1
- cmp r2, 0x3
- ble _0804BFB4
- mov r10, r6
- movs r5, 0x1
- adds r4, r0, 0
- mov r6, sp
- adds r6, r4
- adds r6, 0x8
-_0804BFE4:
- movs r2, 0
- mov r1, r10
- lsls r0, r1, 5
- mov r3, r10
- adds r3, 0x1
- adds r1, r0, r6
- add r0, sp
- adds r0, 0x8
-_0804BFF4:
- strb r5, [r0, 0x16]
- strb r5, [r1, 0x15]
- adds r1, r4
- adds r0, r4
- adds r2, 0x1
- cmp r2, 0x3
- ble _0804BFF4
- mov r10, r3
- cmp r3, 0x2
- ble _0804BFE4
- ldr r5, _0804C094
- add r5, sp
- ldr r4, _0804C098
- add r4, sp
- str r4, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- adds r3, r5, 0
- bl sub_804D8C8
- str r4, [sp]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- adds r3, r5, 0
- bl sub_804E590
- ldr r0, _0804C09C
- movs r2, 0
- ldrsh r3, [r0, r2]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- bl sub_804EBC8
- ldr r0, _0804C0A0
- movs r4, 0
- ldrsh r3, [r0, r4]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- bl sub_804EEE4
- movs r5, 0xE5
- lsls r5, 5
- add r5, sp
- ldr r5, [r5]
- ldrb r3, [r5, 0x13]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- bl sub_804CBEC
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x4
- bl sub_804E03C
- ldr r3, _0804C0A4
- 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
-_0804C080: .4byte 0x00001ca8
-_0804C084: .4byte 0x00001cb4
-_0804C088: .4byte 0x00001cb8
-_0804C08C: .4byte 0x00001cb0
-_0804C090: .4byte 0x0000fffc
-_0804C094: .4byte 0x00001c28
-_0804C098: .4byte 0x00001c64
-_0804C09C: .4byte gUnknown_202F1B0
-_0804C0A0: .4byte gUnknown_202F1B2
-_0804C0A4: .4byte 0x00001cc8
- thumb_func_end sub_804BC80
-
- thumb_func_start sub_804C0A8
-sub_804C0A8:
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r4, _0804C17C
- add sp, r4
- adds r6, r0, 0
- ldr r4, _0804C180
- add r4, sp
- movs r0, 0
- str r0, [r4]
- movs r0, 0xB
- str r0, [r4, 0x4]
- movs r0, 0x16
- str r0, [r4, 0x8]
- movs r0, 0x21
- str r0, [r4, 0xC]
- movs r0, 0x2C
- str r0, [r4, 0x10]
- movs r0, 0x38
- str r0, [r4, 0x14]
- ldr r5, _0804C184
- add r5, sp
- movs r0, 0x4
- str r0, [r5]
- movs r0, 0xF
- str r0, [r5, 0x4]
- movs r0, 0x1
- mov r8, r0
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804D084
- movs r3, 0x1
- ldrsb r3, [r6, r3]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804D154
- str r5, [sp]
- ldrb r0, [r6, 0xD]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- adds r3, r4, 0
- bl sub_804D2D0
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- adds r3, r6, 0
- bl sub_804D5B0
- str r5, [sp]
- mov r1, r8
- str r1, [sp, 0x4]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- adds r3, r4, 0
- bl sub_804D8C8
- str r5, [sp]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- adds r3, r4, 0
- bl sub_804E590
- ldr r0, _0804C188
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804EBC8
- ldr r0, _0804C18C
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804EEE4
- ldrb r3, [r6, 0x13]
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804CBEC
- add r0, sp, 0x8
- movs r1, 0x5
- movs r2, 0x1
- bl sub_804E03C
- movs r3, 0xE5
- lsls r3, 5
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C17C: .4byte 0xffffe360
-_0804C180: .4byte 0x00001c28
-_0804C184: .4byte 0x00001c64
-_0804C188: .4byte gUnknown_202F1B0
-_0804C18C: .4byte gUnknown_202F1B2
- thumb_func_end sub_804C0A8
-
- thumb_func_start sub_804C190
-sub_804C190:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804C2CC
- add sp, r4
- mov r10, r0
- ldr r1, _0804C2D0
- add r1, sp
- movs r2, 0xB
- str r2, [r1]
- movs r0, 0x16
- str r0, [r1, 0x4]
- movs r0, 0x21
- str r0, [r1, 0x8]
- movs r0, 0x2C
- str r0, [r1, 0xC]
- ldr r1, _0804C2D4
- add r1, sp
- movs r0, 0x2
- str r0, [r1]
- str r2, [r1, 0x4]
- movs r0, 0x14
- str r0, [r1, 0x8]
- movs r0, 0x1E
- str r0, [r1, 0xC]
- movs r0, 0x3
- mov r8, r0
- movs r7, 0x3
- add r0, sp, 0x8
- movs r1, 0x3
- movs r2, 0x3
- bl sub_804D084
- movs r1, 0
- add r5, sp, 0x50
- movs r0, 0x3E
- add r0, sp
- mov r9, r0
- mov r0, r10
- ldrb r0, [r0, 0xD]
- mov r12, r0
-_0804C1E6:
- adds r3, r1, 0x1
- cmp r7, 0
- beq _0804C204
- lsls r0, r1, 4
- subs r0, r1
- movs r2, 0x1
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r1, r7, 0
-_0804C1FA:
- strb r2, [r0, 0xA]
- adds r0, 0x20
- subs r1, 0x1
- cmp r1, 0
- bne _0804C1FA
-_0804C204:
- adds r1, r3, 0
- cmp r1, r8
- blt _0804C1E6
- add r0, sp, 0x8
- movs r4, 0x1
- strb r4, [r0, 0x8]
- add r0, sp, 0x3D0
- strb r4, [r0]
- strb r4, [r5]
- movs r0, 0x82
- lsls r0, 3
- add r0, sp
- strb r4, [r0]
- ldr r6, _0804C2D0
- add r6, sp
- ldr r5, _0804C2D4
- add r5, sp
- str r5, [sp]
- mov r1, r12
- str r1, [sp, 0x4]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_804D2D0
- mov r0, r9
- strb r4, [r0]
- ldr r0, _0804C2D8
- add r0, sp
- strb r4, [r0]
- ldr r0, _0804C2DC
- add r0, sp
- strb r4, [r0]
- ldr r0, _0804C2E0
- add r0, sp
- strb r4, [r0]
- add r0, sp, 0x1FC
- strb r4, [r0]
- ldr r0, _0804C2E4
- add r0, sp
- strb r4, [r0]
- add r0, sp, 0x21C
- strb r4, [r0]
- ldr r0, _0804C2E8
- add r0, sp
- strb r4, [r0]
- str r5, [sp]
- str r4, [sp, 0x4]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_804D8C8
- str r5, [sp]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_804E590
- ldr r0, _0804C2EC
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- bl sub_804EBC8
- ldr r0, _0804C2F0
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- bl sub_804EEE4
- mov r0, r10
- ldrb r3, [r0, 0x13]
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- bl sub_804CBEC
- add r0, sp, 0x8
- mov r1, r8
- adds r2, r7, 0
- bl sub_804E03C
- movs r3, 0xE5
- lsls r3, 5
- 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
-_0804C2CC: .4byte 0xffffe360
-_0804C2D0: .4byte 0x00001c28
-_0804C2D4: .4byte 0x00001c64
-_0804C2D8: .4byte 0x0000021d
-_0804C2DC: .4byte 0x0000021e
-_0804C2E0: .4byte 0x000003fd
-_0804C2E4: .4byte 0x0000021b
-_0804C2E8: .4byte 0x0000023b
-_0804C2EC: .4byte gUnknown_202F1B0
-_0804C2F0: .4byte gUnknown_202F1B2
- thumb_func_end sub_804C190
-
- thumb_func_start sub_804C2F4
-sub_804C2F4:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, _0804C420
- add sp, r4
- mov r8, r0
- ldr r1, _0804C424
- add r1, sp
- movs r0, 0x5
- str r0, [r1]
- movs r0, 0xF
- str r0, [r1, 0x4]
- movs r0, 0x23
- str r0, [r1, 0x8]
- movs r0, 0x32
- str r0, [r1, 0xC]
- ldr r1, _0804C428
- add r1, sp
- movs r0, 0x2
- str r0, [r1]
- movs r0, 0xB
- str r0, [r1, 0x4]
- movs r0, 0x14
- str r0, [r1, 0x8]
- movs r0, 0x1E
- str r0, [r1, 0xC]
- movs r7, 0x3
- movs r6, 0x3
- add r0, sp, 0x8
- movs r1, 0x3
- movs r2, 0x3
- bl sub_804D084
- movs r1, 0
- mov r0, r8
- ldrb r4, [r0, 0xD]
-_0804C33C:
- adds r3, r1, 0x1
- cmp r6, 0
- beq _0804C35A
- lsls r0, r1, 4
- subs r0, r1
- movs r2, 0x1
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r1, r6, 0
-_0804C350:
- strb r2, [r0, 0xA]
- adds r0, 0x20
- subs r1, 0x1
- cmp r1, 0
- bne _0804C350
-_0804C35A:
- adds r1, r3, 0
- cmp r1, r7
- blt _0804C33C
- ldr r3, _0804C424
- add r3, sp
- ldr r0, _0804C428
- add r0, sp
- str r0, [sp]
- str r4, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804D2D0
- movs r4, 0x1
- ldr r3, _0804C42C
- add r3, sp
- ldr r0, _0804C430
- add r0, sp
- add r2, sp, 0x8
- movs r1, 0x2
-_0804C384:
- strb r4, [r2, 0x16]
- strb r4, [r0]
- strb r4, [r0, 0x1]
- strb r4, [r3]
- adds r3, 0x20
- adds r0, 0x20
- adds r2, 0x20
- subs r1, 0x1
- cmp r1, 0
- bge _0804C384
- ldr r5, _0804C424
- add r5, sp
- ldr r4, _0804C428
- add r4, sp
- str r4, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_804D8C8
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x1
- add r3, sp, 0x8
- bl sub_804C43C
- movs r0, 0x1
- movs r1, 0
- movs r2, 0x2
- add r3, sp, 0x8
- bl sub_804C43C
- str r4, [sp]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_804E590
- ldr r0, _0804C434
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804EBC8
- ldr r0, _0804C438
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804EEE4
- mov r0, r8
- ldrb r3, [r0, 0x13]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804CBEC
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804E03C
- movs r3, 0xE5
- lsls r3, 5
- add sp, r3
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C420: .4byte 0xffffe360
-_0804C424: .4byte 0x00001c28
-_0804C428: .4byte 0x00001c64
-_0804C42C: .4byte 0x000003dd
-_0804C430: .4byte 0x000001fd
-_0804C434: .4byte gUnknown_202F1B0
-_0804C438: .4byte gUnknown_202F1B2
- thumb_func_end sub_804C2F4
-
- thumb_func_start sub_804C43C
-sub_804C43C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp]
- str r3, [sp, 0x4]
- lsls r7, r1, 5
- lsls r0, 4
- str r0, [sp, 0xC]
- ldr r3, [sp]
- subs r0, r3
- lsls r0, 5
- ldr r4, [sp, 0x4]
- adds r0, r4
- adds r3, r7, r0
- adds r6, r1, r2
- lsls r1, r6, 5
- adds r2, r1, r0
- movs r5, 0
- ldrsh r1, [r2, r5]
- adds r4, r1, 0
- ldrh r0, [r3]
- mov r8, r0
- movs r5, 0
- ldrsh r0, [r3, r5]
- cmp r1, r0
- ble _0804C478
- mov r4, r8
-_0804C478:
- lsls r0, r4, 16
- asrs r0, 16
- str r0, [sp, 0x8]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- mov r10, r0
- movs r4, 0x4
- ldrsh r1, [r2, r4]
- adds r4, r1, 0
- ldrh r5, [r3, 0x4]
- mov r8, r5
- movs r5, 0x4
- ldrsh r0, [r3, r5]
- cmp r1, r0
- bge _0804C498
- mov r4, r8
-_0804C498:
- lsls r0, r4, 16
- asrs r0, 16
- str r0, [sp, 0x10]
- movs r1, 0x6
- ldrsh r0, [r2, r1]
- mov r8, r0
- movs r2, 0
- ldrsh r0, [r3, r2]
- mov r1, r10
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r9, r0
- ldr r5, [sp, 0x8]
- str r7, [sp, 0x1C]
- ldr r3, [sp, 0xC]
- str r3, [sp, 0x18]
- str r6, [sp, 0x14]
- ldr r4, [sp, 0x10]
- cmp r5, r4
- bge _0804C4F2
-_0804C4C2:
- mov r4, r10
- adds r6, r5, 0x1
- cmp r10, r8
- bge _0804C4EA
- ldr r0, _0804C538
- adds r7, r0, 0
-_0804C4CE:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ands r1, r7
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- mov r1, r9
- strb r1, [r0, 0x9]
- adds r4, 0x1
- cmp r4, r8
- blt _0804C4CE
-_0804C4EA:
- adds r5, r6, 0
- ldr r2, [sp, 0x10]
- cmp r5, r2
- blt _0804C4C2
-_0804C4F2:
- ldr r3, [sp, 0x18]
- ldr r4, [sp]
- subs r1, r3, r4
- lsls r1, 5
- ldr r5, [sp, 0x4]
- adds r1, r5
- ldr r0, [sp, 0x1C]
- adds r2, r0, r1
- movs r3, 0
- mov r4, sp
- ldrh r4, [r4, 0x8]
- strh r4, [r2]
- mov r5, sp
- ldrh r5, [r5, 0x10]
- strh r5, [r2, 0x4]
- mov r0, r10
- strh r0, [r2, 0x2]
- mov r4, r8
- strh r4, [r2, 0x6]
- ldr r5, [sp, 0x14]
- lsls r0, r5, 5
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0, 0x12]
- strb r1, [r2, 0x12]
- strb r3, [r0, 0xB]
- strb r1, [r0, 0x11]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C538: .4byte 0x0000fffc
- thumb_func_end sub_804C43C
-
- thumb_func_start sub_804C53C
-sub_804C53C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804C6F8
- add sp, r4
- mov r10, r2
- adds r7, r0, 0
- adds r6, r1, 0
- ldr r0, _0804C6FC
- add r0, sp
- ldr r1, _0804C700
- add r1, sp
- adds r2, r7, 0
- adds r3, r6, 0
- bl sub_804D024
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804D084
- movs r2, 0
- cmp r2, r7
- bge _0804C594
-_0804C570:
- adds r3, r2, 0x1
- cmp r6, 0
- ble _0804C58E
- lsls r0, r2, 4
- subs r0, r2
- movs r2, 0x1
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r1, r6, 0
-_0804C584:
- strb r2, [r0, 0xA]
- adds r0, 0x20
- subs r1, 0x1
- cmp r1, 0
- bne _0804C584
-_0804C58E:
- adds r2, r3, 0
- cmp r2, r7
- blt _0804C570
-_0804C594:
- movs r2, 0x1
- subs r0, r7, 0x1
- mov r8, r0
- subs r1, r6, 0x1
- mov r9, r1
- mov r0, r10
- ldrb r0, [r0, 0xD]
- mov r12, r0
- cmp r2, r8
- bge _0804C5D2
- mov r4, r9
- mov r5, r8
-_0804C5AC:
- adds r3, r2, 0x1
- cmp r4, 0x1
- ble _0804C5CC
- lsls r0, r2, 4
- subs r0, r2
- movs r2, 0x1
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- adds r0, 0x20
- subs r1, r4, 0x1
-_0804C5C2:
- strb r2, [r0, 0x8]
- adds r0, 0x20
- subs r1, 0x1
- cmp r1, 0
- bne _0804C5C2
-_0804C5CC:
- adds r2, r3, 0
- cmp r2, r5
- blt _0804C5AC
-_0804C5D2:
- ldr r3, _0804C6FC
- add r3, sp
- ldr r0, _0804C700
- add r0, sp
- str r0, [sp]
- mov r1, r12
- str r1, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804D2D0
- movs r2, 0
- cmp r2, r8
- bge _0804C636
- movs r4, 0x1
- mov r0, r9
- lsls r5, r0, 5
- subs r1, r7, 0x2
- mov r12, r1
-_0804C5FA:
- cmp r2, 0
- beq _0804C614
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- strb r4, [r1, 0x16]
- adds r0, r5, r0
- add r0, sp
- adds r0, 0x8
- strb r4, [r0, 0x16]
-_0804C614:
- adds r3, r2, 0x1
- cmp r2, r12
- bge _0804C630
- lsls r0, r3, 4
- subs r0, r3
- lsls r0, 5
- mov r1, sp
- adds r1, r0
- adds r1, 0x8
- strb r4, [r1, 0x15]
- adds r0, r5, r0
- add r0, sp
- adds r0, 0x8
- strb r4, [r0, 0x15]
-_0804C630:
- adds r2, r3, 0
- cmp r2, r8
- blt _0804C5FA
-_0804C636:
- movs r1, 0
- cmp r1, r9
- bge _0804C66A
- movs r3, 0x1
- mov r2, r8
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- add r0, sp
- adds r0, 0x8
- add r2, sp, 0x8
- subs r5, r6, 0x2
- mov r4, r9
-_0804C650:
- cmp r1, 0
- beq _0804C658
- strb r3, [r2, 0x13]
- strb r3, [r0, 0x13]
-_0804C658:
- cmp r1, r5
- bge _0804C660
- strb r3, [r2, 0x14]
- strb r3, [r0, 0x14]
-_0804C660:
- adds r0, 0x20
- adds r2, 0x20
- adds r1, 0x1
- cmp r1, r4
- blt _0804C650
-_0804C66A:
- ldr r5, _0804C6FC
- add r5, sp
- ldr r4, _0804C700
- add r4, sp
- str r4, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_804D8C8
- str r4, [sp]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_804E590
- mov r0, r10
- ldrb r3, [r0, 0x9]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804F0D0
- ldr r0, _0804C704
- movs r1, 0
- ldrsh r3, [r0, r1]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804EBC8
- ldr r0, _0804C708
- movs r2, 0
- ldrsh r3, [r0, r2]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804EEE4
- mov r0, r10
- ldrb r3, [r0, 0x13]
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804CBEC
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804E03C
- add r0, sp, 0x8
- adds r1, r7, 0
- adds r2, r6, 0
- bl sub_804D534
- movs r3, 0xE5
- lsls r3, 5
- 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
-_0804C6F8: .4byte 0xffffe360
-_0804C6FC: .4byte 0x00001c28
-_0804C700: .4byte 0x00001c64
-_0804C704: .4byte gUnknown_202F1B0
-_0804C708: .4byte gUnknown_202F1B2
- thumb_func_end sub_804C53C
-
- thumb_func_start sub_804C70C
-sub_804C70C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- mov r8, r1
- ldr r0, _0804C73C
- ldr r0, [r0]
- ldr r1, _0804C740
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0, 0x4]
- lsls r0, r7, 2
- adds r0, r1
- ldr r0, [r0]
- ldrb r5, [r0]
- ldrb r6, [r0, 0x1]
- cmp r5, 0
- beq _0804C736
- cmp r6, 0
- bne _0804C744
-_0804C736:
- bl sub_804C918
- b _0804C782
- .align 2, 0
-_0804C73C: .4byte gUnknown_203B418
-_0804C740: .4byte 0x00013568
-_0804C744:
- cmp r7, 0x31
- bgt _0804C752
- adds r0, r7, 0
- bl sub_8051288
- movs r0, 0x1
- b _0804C784
-_0804C752:
- adds r1, r5, 0x4
- movs r0, 0x38
- bl __divsi3
- adds r4, r0, 0
- cmp r4, 0x1
- bgt _0804C762
- movs r4, 0x1
-_0804C762:
- adds r1, r6, 0x4
- movs r0, 0x20
- bl __divsi3
- adds r1, r0, 0
- cmp r1, 0x1
- bgt _0804C772
- movs r1, 0x1
-_0804C772:
- str r7, [sp]
- mov r0, r8
- str r0, [sp, 0x4]
- adds r0, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_804C790
-_0804C782:
- movs r0, 0
-_0804C784:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804C70C
-
- thumb_func_start sub_804C790
-sub_804C790:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804C81C
- add sp, r4
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r0, _0804C820
- add r0, sp
- str r2, [r0]
- ldr r1, _0804C824
- add r1, sp
- str r3, [r1]
- movs r2, 0
- mov r10, r2
- mov r8, r2
- ldr r0, _0804C828
- add r0, sp
- ldr r1, _0804C82C
- add r1, sp
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_804D024
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_804D084
- ldr r0, _0804C830
- add r0, sp
- ldr r0, [r0]
- movs r3, 0x1
- ldrsb r3, [r0, r3]
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_804D154
- mov r6, r8
- cmp r8, r5
- bge _0804C818
-_0804C7E8:
- movs r1, 0
- mov r8, r1
- adds r2, r6, 0x1
- cmp r8, r4
- bge _0804C812
- lsls r0, r6, 4
- subs r0, r6
- movs r1, 0x1
- lsls r0, 5
- add r0, sp
- adds r0, 0x10
- mov r8, r4
-_0804C800:
- strb r1, [r0, 0x1B]
- adds r0, 0x20
- movs r3, 0x1
- negs r3, r3
- add r8, r3
- mov r3, r8
- cmp r3, 0
- bne _0804C800
- mov r8, r4
-_0804C812:
- adds r6, r2, 0
- cmp r6, r5
- blt _0804C7E8
-_0804C818:
- movs r7, 0
- b _0804C836
- .align 2, 0
-_0804C81C: .4byte 0xffffe350
-_0804C820: .4byte 0x00001ca8
-_0804C824: .4byte 0x00001cac
-_0804C828: .4byte 0x00001c30
-_0804C82C: .4byte 0x00001c6c
-_0804C830: .4byte 0x00001cd4
-_0804C834:
- adds r7, 0x1
-_0804C836:
- cmp r7, 0x3F
- bgt _0804C864
- adds r0, r5, 0
- bl sub_8084100
- adds r6, r0, 0
- adds r0, r4, 0
- bl sub_8084100
- mov r8, r0
- mov r0, r8
- muls r0, r5
- adds r0, r6
- mov r10, r0
- lsls r0, r6, 4
- subs r0, r6
- add r0, r8
- lsls r0, 5
- add r0, sp
- adds r0, 0x10
- ldrb r0, [r0, 0xA]
- cmp r0, 0
- beq _0804C834
-_0804C864:
- ldr r0, _0804C8FC
- add r0, sp
- mov r9, r0
- ldr r7, _0804C900
- add r7, sp
- str r7, [sp]
- mov r1, r10
- str r1, [sp, 0x4]
- ldr r2, _0804C904
- add r2, sp
- ldr r2, [r2]
- str r2, [sp, 0x8]
- ldr r3, _0804C908
- add r3, sp
- ldr r3, [r3]
- str r3, [sp, 0xC]
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- mov r3, r9
- bl sub_8050F90
- cmp r5, 0x1
- bne _0804C898
- cmp r4, 0x1
- beq _0804C8D0
-_0804C898:
- mov r0, r8
- str r0, [sp]
- ldr r1, _0804C90C
- add r1, sp
- ldr r1, [r1]
- str r1, [sp, 0x4]
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- adds r3, r6, 0
- bl sub_804D5F0
- str r7, [sp]
- movs r0, 0x1
- str r0, [sp, 0x4]
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- mov r3, r9
- bl sub_804D8C8
- str r7, [sp]
- add r0, sp, 0x10
- adds r1, r5, 0
- adds r2, r4, 0
- mov r3, r9
- bl sub_804E590
-_0804C8D0:
- lsls r0, r6, 4
- subs r0, r6
- lsls r0, 5
- add r0, sp
- adds r0, 0x10
- mov r2, r8
- lsls r1, r2, 5
- adds r0, r1
- ldr r3, _0804C910
- add r3, sp
- ldr r1, [r3]
- bl sub_8051438
- ldr r3, _0804C914
- 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
-_0804C8FC: .4byte 0x00001c30
-_0804C900: .4byte 0x00001c6c
-_0804C904: .4byte 0x00001ca8
-_0804C908: .4byte 0x00001cac
-_0804C90C: .4byte 0x00001cd4
-_0804C910: .4byte 0x00001cd0
-_0804C914: .4byte 0x00001cb0
- thumb_func_end sub_804C790
-
- thumb_func_start sub_804C918
-sub_804C918:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r4, _0804C9C4
- add sp, r4
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- bl sub_804D084
- mov r0, sp
- movs r3, 0
- movs r2, 0x2
- strh r2, [r0]
- mov r1, sp
- movs r0, 0x36
- strh r0, [r1, 0x4]
- mov r0, sp
- strh r2, [r0, 0x2]
- movs r0, 0x1E
- strh r0, [r1, 0x6]
- mov r0, sp
- movs r1, 0x1
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- strb r3, [r0, 0x8]
- movs r1, 0
- ldrsh r5, [r0, r1]
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- cmp r5, r0
- bge _0804C9A6
- mov r6, sp
-_0804C95C:
- movs r0, 0x2
- ldrsh r4, [r6, r0]
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _0804C99C
- movs r2, 0
- mov r9, r2
- ldr r0, _0804C9C8
- mov r8, r0
-_0804C972:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r8
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- mov r1, r9
- strb r1, [r0, 0x9]
- adds r4, 0x1
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- cmp r4, r0
- blt _0804C972
-_0804C99C:
- adds r5, r7, 0
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- cmp r5, r0
- blt _0804C95C
-_0804C9A6:
- ldr r3, _0804C9CC
- mov r0, sp
- movs r1, 0x1
- movs r2, 0x1
- bl sub_804EEE4
- movs r3, 0xE1
- lsls r3, 5
- add sp, r3
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804C9C4: .4byte 0xffffe3e0
-_0804C9C8: .4byte 0x0000fffc
-_0804C9CC: .4byte 0x000003e7
- thumb_func_end sub_804C918
-
- thumb_func_start sub_804C9D0
-sub_804C9D0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _0804CBB4
- add sp, r4
- movs r0, 0
- movs r1, 0xE5
- lsls r1, 5
- add r1, sp
- str r0, [r1]
- ldr r1, _0804CBB8
- add r1, sp
- movs r2, 0x2
- str r2, [r1]
- movs r0, 0x1C
- str r0, [r1, 0x4]
- movs r0, 0x36
- str r0, [r1, 0x8]
- ldr r1, _0804CBBC
- add r1, sp
- str r2, [r1]
- movs r0, 0x1E
- str r0, [r1, 0x4]
- add r0, sp, 0x8
- movs r1, 0x2
- movs r2, 0x1
- bl sub_804D084
- movs r0, 0
- ldr r2, _0804CBB8
- add r2, sp
- ldr r3, _0804CBC0
- add r3, sp
- str r2, [r3]
- ldr r4, _0804CBBC
- add r4, sp
- ldr r1, _0804CBC4
- add r1, sp
- str r4, [r1]
-_0804CA22:
- movs r7, 0
- lsls r2, r0, 2
- ldr r3, _0804CBC8
- add r3, sp
- str r2, [r3]
- adds r4, r0, 0x1
- ldr r1, _0804CBCC
- add r1, sp
- str r4, [r1]
- lsls r0, 5
- ldr r2, _0804CBD0
- add r2, sp
- str r0, [r2]
-_0804CA3C:
- lsls r0, r7, 2
- ldr r3, _0804CBC0
- add r3, sp
- ldr r3, [r3]
- adds r0, r3, r0
- ldr r1, [r0]
- adds r4, r1, 0x1
- mov r10, r4
- ldr r2, _0804CBC4
- add r2, sp
- ldr r2, [r2]
- ldr r3, _0804CBC8
- add r3, sp
- ldr r3, [r3]
- adds r0, r2, r3
- ldr r2, [r0]
- adds r4, r2, 0x1
- ldr r0, _0804CBD4
- add r0, sp
- str r4, [r0]
- adds r3, r7, 0x1
- mov r9, r3
- lsls r0, r3, 2
- ldr r4, _0804CBC0
- add r4, sp
- ldr r4, [r4]
- adds r0, r4, r0
- ldr r4, [r0]
- subs r4, r1
- subs r4, 0x3
- ldr r1, _0804CBCC
- add r1, sp
- ldr r1, [r1]
- lsls r0, r1, 2
- ldr r3, _0804CBC4
- add r3, sp
- ldr r3, [r3]
- adds r0, r3, r0
- ldr r5, [r0]
- subs r5, r2
- subs r5, 0x3
- movs r0, 0xA
- adds r1, r4, 0
- bl sub_808411C
- mov r8, r0
- movs r0, 0x10
- adds r1, r5, 0
- bl sub_808411C
- adds r6, r0, 0
- mov r0, r8
- subs r4, r0
- adds r0, r4, 0
- bl sub_8084100
- adds r4, r0, 0
- add r4, r10
- subs r5, r6
- adds r0, r5, 0
- bl sub_8084100
- ldr r2, _0804CBD4
- add r2, sp
- ldr r1, [r2]
- adds r1, r0
- mov r10, r1
- mov r0, r8
- adds r3, r4, r0
- add r6, r10
- lsls r0, r7, 4
- subs r0, r7
- lsls r0, 5
- ldr r1, _0804CBD0
- add r1, sp
- ldr r1, [r1]
- adds r0, r1, r0
- add r0, sp
- adds r0, 0x8
- movs r1, 0x1
- strb r1, [r0, 0xA]
- strh r4, [r0]
- strh r3, [r0, 0x4]
- mov r2, r10
- strh r2, [r0, 0x2]
- strh r6, [r0, 0x6]
- mov r0, r9
- ldr r1, _0804CBD8
- add r1, sp
- str r0, [r1]
- movs r0, 0xE5
- lsls r0, 5
- add r0, sp
- ldr r2, [r0]
- adds r2, 0x1
- mov r9, r2
- cmp r4, r3
- bge _0804CB4E
-_0804CB00:
- mov r5, r10
- adds r7, r4, 0x1
- cmp r5, r6
- bge _0804CB48
- ldr r1, _0804CBDC
- mov r8, r1
-_0804CB0C:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE6
- lsls r2, 5
- add r2, sp
- str r3, [r2]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r8
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- movs r1, 0xE5
- lsls r1, 5
- add r1, sp
- ldrb r1, [r1]
- strb r1, [r0, 0x9]
- adds r5, 0x1
- movs r2, 0xE6
- lsls r2, 5
- add r2, sp
- ldr r3, [r2]
- cmp r5, r6
- blt _0804CB0C
-_0804CB48:
- adds r4, r7, 0
- cmp r4, r3
- blt _0804CB00
-_0804CB4E:
- mov r3, r9
- movs r4, 0xE5
- lsls r4, 5
- add r4, sp
- str r3, [r4]
- ldr r0, _0804CBD8
- add r0, sp
- ldr r7, [r0]
- cmp r7, 0x1
- bgt _0804CB64
- b _0804CA3C
-_0804CB64:
- ldr r1, _0804CBCC
- add r1, sp
- ldr r0, [r1]
- cmp r0, 0
- bgt _0804CB70
- b _0804CA22
-_0804CB70:
- add r0, sp, 0x8
- movs r2, 0
- movs r1, 0x1
- strb r1, [r0, 0x16]
- ldr r0, _0804CBE0
- add r0, sp
- strb r1, [r0]
- ldr r3, _0804CBB8
- add r3, sp
- ldr r0, _0804CBBC
- add r0, sp
- str r0, [sp]
- str r2, [sp, 0x4]
- add r0, sp, 0x8
- movs r1, 0x2
- movs r2, 0x1
- bl sub_804D8C8
- ldr r3, _0804CBE4
- add r0, sp, 0x8
- movs r1, 0x2
- movs r2, 0x1
- bl sub_804EEE4
- ldr r3, _0804CBE8
- 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
-_0804CBB4: .4byte 0xffffe33c
-_0804CBB8: .4byte 0x00001c28
-_0804CBBC: .4byte 0x00001c64
-_0804CBC0: .4byte 0x00001ca4
-_0804CBC4: .4byte 0x00001cac
-_0804CBC8: .4byte 0x00001cb0
-_0804CBCC: .4byte 0x00001cbc
-_0804CBD0: .4byte 0x00001cb4
-_0804CBD4: .4byte 0x00001ca8
-_0804CBD8: .4byte 0x00001cb8
-_0804CBDC: .4byte 0x0000fffc
-_0804CBE0: .4byte 0x000001fd
-_0804CBE4: .4byte 0x000003e7
-_0804CBE8: .4byte 0x00001cc4
- thumb_func_end sub_804C9D0
-
- thumb_func_start sub_804CBEC
-sub_804CBEC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- cmp r3, 0
- bne _0804CC06
- b _0804D006
-_0804CC06:
- movs r5, 0
- cmp r5, r3
- blt _0804CC0E
- b _0804D006
-_0804CC0E:
- ldr r0, [sp, 0x4]
- bl sub_8084100
- mov r9, r0
- ldr r0, [sp, 0x8]
- bl sub_8084100
- mov r10, r0
- lsls r0, 5
- mov r2, r9
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 5
- ldr r3, [sp]
- adds r1, r3
- adds r4, r0, r1
- ldrb r0, [r4, 0xA]
- adds r5, 0x1
- str r5, [sp, 0x18]
- cmp r0, 0
- bne _0804CC3A
- b _0804CFFC
-_0804CC3A:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0804CC42
- b _0804CFFC
-_0804CC42:
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _0804CC4A
- b _0804CFFC
-_0804CC4A:
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _0804CC52
- b _0804CFFC
-_0804CC52:
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- bl sub_808411C
- adds r7, r0, 0
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl sub_808411C
- adds r6, r0, 0
- movs r0, 0x4
- bl sub_8084100
- lsls r0, 1
- mov r8, r0
- ldr r1, [sp, 0x8]
- subs r1, 0x1
- movs r3, 0x2
- str r3, [sp, 0x10]
- ldr r0, [sp, 0x4]
- subs r0, 0x1
-_0804CC84:
- mov r2, r8
- cmp r2, 0
- bne _0804CC92
- cmp r10, r1
- blt _0804CC92
- movs r3, 0x2
- mov r8, r3
-_0804CC92:
- mov r2, r8
- cmp r2, 0x2
- bne _0804CCA0
- cmp r9, r0
- blt _0804CCA0
- movs r3, 0x4
- mov r8, r3
-_0804CCA0:
- mov r2, r8
- cmp r2, 0x4
- bne _0804CCB0
- mov r3, r10
- cmp r3, 0
- bgt _0804CCB0
- movs r2, 0x6
- mov r8, r2
-_0804CCB0:
- mov r3, r8
- cmp r3, 0x6
- bne _0804CCC0
- mov r2, r9
- cmp r2, 0
- bgt _0804CCC0
- movs r3, 0
- mov r8, r3
-_0804CCC0:
- ldr r2, [sp, 0x10]
- subs r2, 0x1
- str r2, [sp, 0x10]
- cmp r2, 0
- bge _0804CC84
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrb r5, [r0, 0x9]
- ldr r1, _0804CCE0
- mov r3, r8
- lsls r0, r3, 2
- adds r4, r0, r1
- b _0804CCF0
- .align 2, 0
-_0804CCE0: .4byte gUnknown_80F4448
-_0804CCE4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r7, r0
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r6, r0
-_0804CCF0:
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- cmp r5, r0
- beq _0804CCE4
- ldr r1, _0804CD08
- mov r3, r8
- lsls r0, r3, 2
- adds r4, r0, r1
- b _0804CD18
- .align 2, 0
-_0804CD08: .4byte gUnknown_80F4448
-_0804CD0C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r7, r0
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r6, r0
-_0804CD18:
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r5, 0x3
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- beq _0804CD0C
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x2
- bne _0804CD40
- b _0804CFFC
-_0804CD40:
- movs r3, 0
- subs r2, r7, 0x2
- adds r4, r7, 0x2
- b _0804CD4A
-_0804CD48:
- adds r2, 0x1
-_0804CD4A:
- cmp r2, r4
- bgt _0804CD6C
- subs r0, r6, 0x2
- adds r1, r6, 0x2
- b _0804CD56
-_0804CD54:
- adds r0, 0x1
-_0804CD56:
- cmp r0, r1
- bgt _0804CD68
- cmp r2, 0x37
- bhi _0804CD66
- cmp r0, 0
- blt _0804CD66
- cmp r0, 0x1F
- ble _0804CD54
-_0804CD66:
- movs r3, 0x1
-_0804CD68:
- cmp r3, 0
- beq _0804CD48
-_0804CD6C:
- cmp r3, 0
- beq _0804CD72
- b _0804CFFC
-_0804CD72:
- ldr r2, _0804CDD4
- mov r1, r8
- adds r1, 0x2
- movs r4, 0x6
- ands r1, r4
- lsls r1, 2
- adds r1, r2
- movs r3, 0
- ldrsh r0, [r1, r3]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r0, r7, r0
- adds r1, r6, r1
- str r2, [sp, 0x1C]
- bl sub_804954C
- ldrh r1, [r0]
- movs r5, 0x3
- adds r0, r5, 0
- ands r0, r1
- ldr r2, [sp, 0x1C]
- cmp r0, 0x1
- bne _0804CDA2
- b _0804CFFC
-_0804CDA2:
- mov r1, r8
- subs r1, 0x2
- ands r1, r4
- lsls r1, 2
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r0, r7, r0
- adds r1, r6, r1
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CDC8
- b _0804CFFC
-_0804CDC8:
- movs r0, 0x3
- bl sub_8084100
- adds r0, 0x3
- str r0, [sp, 0x10]
- b _0804CFD4
- .align 2, 0
-_0804CDD4: .4byte gUnknown_80F4448
-_0804CDD8:
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0804CDEC
- b _0804CFFC
-_0804CDEC:
- movs r0, 0x1
- str r0, [sp, 0x14]
- adds r4, r7, 0x1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r10
- ands r0, r1
- mov r9, r4
- cmp r0, 0x1
- bne _0804CE32
- adds r5, r6, 0x1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r0, [r0]
- mov r4, r10
- ands r4, r0
- cmp r4, 0x1
- bne _0804CE32
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r0, [r0]
- mov r1, r10
- ands r0, r1
- eors r0, r4
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x14]
-_0804CE32:
- mov r0, r9
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r5, 0x3
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CE70
- subs r4, r6, 0x1
- mov r0, r9
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CE70
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CE70
- movs r2, 0
- str r2, [sp, 0x14]
-_0804CE70:
- subs r4, r7, 0x1
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r2, 0x3
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEB6
- adds r5, r6, 0x1
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp, 0x1C]
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x1C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEB6
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x1C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEB6
- movs r3, 0
- str r3, [sp, 0x14]
-_0804CEB6:
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r2, 0x3
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEFA
- subs r5, r6, 0x1
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp, 0x1C]
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x1C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEFA
- adds r0, r7, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x1C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x1
- bne _0804CEFA
- movs r0, 0
- str r0, [sp, 0x14]
-_0804CEFA:
- ldr r1, [sp, 0x14]
- cmp r1, 0
- beq _0804CF16
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, _0804D018
- adds r2, r3, 0
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
-_0804CF16:
- ldr r2, _0804D01C
- movs r0, 0x2
- add r0, r8
- mov r9, r0
- movs r1, 0x6
- mov r10, r1
- mov r1, r9
- mov r3, r10
- ands r1, r3
- lsls r1, 2
- adds r1, r2
- movs r3, 0
- ldrsh r0, [r1, r3]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r0, r7, r0
- adds r1, r6, r1
- str r2, [sp, 0x1C]
- bl sub_804954C
- ldrh r1, [r0]
- movs r5, 0x3
- adds r0, r5, 0
- ands r0, r1
- ldr r2, [sp, 0x1C]
- cmp r0, 0x1
- beq _0804CFFC
- mov r4, r8
- subs r4, 0x2
- adds r1, r4, 0
- mov r0, r10
- ands r1, r0
- lsls r1, 2
- adds r1, r2
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r0, r7, r0
- adds r1, r6, r1
- bl sub_804954C
- ldrh r1, [r0]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0x1
- beq _0804CFFC
- ldr r0, [sp, 0x10]
- subs r0, 0x1
- str r0, [sp, 0x10]
- cmp r0, 0
- bne _0804CFC0
- movs r0, 0x3
- bl sub_8084100
- adds r0, 0x3
- str r0, [sp, 0x10]
- movs r0, 0x64
- bl sub_8084100
- mov r8, r4
- cmp r0, 0x31
- bgt _0804CF96
- mov r8, r9
-_0804CF96:
- mov r1, r8
- mov r2, r10
- ands r1, r2
- mov r8, r1
- cmp r7, 0x1F
- ble _0804CFAE
- ldr r0, _0804D020
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0804CFAE
- cmp r1, 0x2
- beq _0804CFFC
-_0804CFAE:
- cmp r7, 0x2F
- ble _0804CFC0
- ldr r0, _0804D020
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _0804CFC0
- mov r3, r8
- cmp r3, 0x2
- beq _0804CFFC
-_0804CFC0:
- ldr r0, _0804D01C
- mov r2, r8
- lsls r1, r2, 2
- adds r1, r0
- movs r3, 0
- ldrsh r0, [r1, r3]
- adds r7, r0
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- adds r6, r0
-_0804CFD4:
- cmp r7, 0x1
- ble _0804CFFC
- cmp r6, 0x1
- ble _0804CFFC
- cmp r7, 0x36
- bgt _0804CFFC
- cmp r6, 0x1E
- bgt _0804CFFC
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r3, 0x3
- mov r10, r3
- mov r0, r10
- ands r0, r1
- cmp r0, 0x1
- beq _0804CFFC
- b _0804CDD8
-_0804CFFC:
- ldr r5, [sp, 0x18]
- ldr r0, [sp, 0xC]
- cmp r5, r0
- bge _0804D006
- b _0804CC0E
-_0804D006:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D018: .4byte 0x0000fffc
-_0804D01C: .4byte gUnknown_80F4448
-_0804D020: .4byte gUnknown_202F1AE
- thumb_func_end sub_804CBEC
-
- thumb_func_start sub_804D024
-sub_804D024:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- mov r8, r1
- adds r5, r2, 0
- adds r6, r3, 0
- movs r4, 0
- cmp r4, r5
- bge _0804D04E
- movs r0, 0x38
- adds r1, r5, 0
- bl __divsi3
- adds r2, r7, 0
- adds r1, r5, 0
-_0804D044:
- stm r2!, {r4}
- adds r4, r0
- subs r1, 0x1
- cmp r1, 0
- bne _0804D044
-_0804D04E:
- lsls r0, r5, 2
- adds r0, r7
- str r4, [r0]
- movs r4, 0
- lsls r5, r6, 2
- cmp r4, r6
- bge _0804D072
- movs r0, 0x20
- adds r1, r6, 0
- bl __divsi3
- mov r2, r8
- adds r1, r6, 0
-_0804D068:
- stm r2!, {r4}
- adds r4, r0
- subs r1, 0x1
- cmp r1, 0
- bne _0804D068
-_0804D072:
- mov r1, r8
- adds r0, r5, r1
- str r4, [r0]
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804D024
-
- thumb_func_start sub_804D084
-sub_804D084:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r8, r0
- adds r5, r1, 0
- mov r9, r2
- movs r2, 0
- cmp r2, r5
- bge _0804D144
- lsrs r0, r5, 31
- adds r0, r5, r0
- asrs r0, 1
- str r0, [sp]
- movs r3, 0
-_0804D0A6:
- adds r0, r2, 0x1
- mov r10, r0
- mov r4, r9
- cmp r4, 0
- ble _0804D13E
- ldr r6, _0804D0D8
- ldrb r6, [r6]
- str r6, [sp, 0x4]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- mov r4, r8
- adds r1, r0, r4
- movs r7, 0
- movs r6, 0x1
- mov r12, r6
- mov r4, r9
-_0804D0C8:
- ldr r0, [sp, 0x4]
- cmp r0, 0x1
- bne _0804D0DC
- ldr r6, [sp]
- cmp r2, r6
- blt _0804D0DC
- strb r0, [r1, 0x8]
- b _0804D102
- .align 2, 0
-_0804D0D8: .4byte gUnknown_202F1AE
-_0804D0DC:
- ldr r6, _0804D0FC
- ldrb r0, [r6]
- cmp r0, 0x2
- bne _0804D100
- lsls r0, r5, 1
- adds r0, r5
- cmp r0, 0
- bge _0804D0EE
- adds r0, 0x3
-_0804D0EE:
- asrs r0, 2
- cmp r2, r0
- blt _0804D100
- mov r0, r12
- strb r0, [r1, 0x8]
- b _0804D102
- .align 2, 0
-_0804D0FC: .4byte gUnknown_202F1AE
-_0804D100:
- strb r3, [r1, 0x8]
-_0804D102:
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- add r0, r8
- adds r0, r7, r0
- mov r6, r12
- strb r6, [r0, 0xA]
- strb r3, [r0, 0xB]
- strb r3, [r0, 0xF]
- strb r3, [r0, 0xE]
- strb r3, [r0, 0xC]
- strb r3, [r0, 0x16]
- strb r3, [r0, 0x15]
- strb r3, [r0, 0x14]
- strb r3, [r0, 0x13]
- strb r3, [r0, 0x1A]
- strb r3, [r0, 0x19]
- strb r3, [r0, 0x18]
- strb r3, [r0, 0x17]
- strb r3, [r0, 0x9]
- strb r3, [r0, 0x11]
- strb r3, [r0, 0x10]
- strb r3, [r0, 0x12]
- strb r3, [r0, 0x1C]
- strb r3, [r0, 0x1D]
- adds r1, 0x20
- adds r7, 0x20
- subs r4, 0x1
- cmp r4, 0
- bne _0804D0C8
-_0804D13E:
- mov r2, r10
- cmp r2, r5
- blt _0804D0A6
-_0804D144:
- 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_804D084
-
- thumb_func_start sub_804D154
-sub_804D154:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x114
- str r0, [sp, 0x100]
- mov r9, r1
- mov r8, r2
- adds r4, r3, 0
- movs r0, 0x3
- bl sub_8084100
- adds r3, r0, 0
- cmp r4, 0
- bge _0804D17E
- negs r4, r4
- b _0804D180
-_0804D178:
- movs r0, 0x1
- strb r0, [r4, 0xA]
- b _0804D2B6
-_0804D17E:
- adds r4, r3
-_0804D180:
- movs r3, 0
- mov r0, r8
- mov r2, r9
- muls r2, r0
- cmp r3, r4
- bge _0804D19A
- movs r1, 0x1
-_0804D18E:
- mov r5, sp
- adds r0, r5, r3
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, r4
- blt _0804D18E
-_0804D19A:
- cmp r3, 0xFF
- bgt _0804D1AC
- movs r1, 0
-_0804D1A0:
- mov r6, sp
- adds r0, r6, r3
- strb r1, [r0]
- adds r3, 0x1
- cmp r3, 0xFF
- ble _0804D1A0
-_0804D1AC:
- adds r5, r2, 0
- movs r6, 0x3F
-_0804D1B0:
- adds r0, r5, 0
- bl sub_8084100
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_8084100
- mov r1, sp
- adds r2, r1, r4
- ldrb r3, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- subs r6, 0x1
- cmp r6, 0
- bge _0804D1B0
- movs r3, 0
- ldr r0, _0804D24C
- str r3, [r0]
- movs r7, 0
- mov r12, r0
- cmp r7, r9
- bge _0804D262
-_0804D1E0:
- movs r5, 0
- adds r4, r7, 0x1
- str r4, [sp, 0x104]
- cmp r5, r8
- bge _0804D25C
- lsls r2, r7, 4
- subs r2, r7
- lsls r2, 5
- ldr r6, [sp, 0x100]
- adds r0, r2, r6
- mov r1, r9
- movs r4, 0x1
- ands r1, r4
- str r1, [sp, 0x110]
- mov r1, r9
- subs r1, 0x1
- adds r0, 0x20
- mov r10, r0
- adds r0, r6, 0
- adds r0, 0x8
- adds r2, r0
- lsrs r0, r1, 31
- adds r1, r0
- asrs r1, 1
-_0804D210:
- ldrb r4, [r2]
- cmp r4, 0
- bne _0804D254
- mov r6, r12
- ldr r0, [r6]
- cmp r0, 0x1F
- ble _0804D220
- strb r4, [r2, 0x2]
-_0804D220:
- mov r6, sp
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804D250
- movs r0, 0x1
- strb r0, [r2, 0x2]
- mov r6, r12
- ldr r0, [r6]
- adds r0, 0x1
- str r0, [r6]
- ldr r0, [sp, 0x110]
- cmp r0, 0
- beq _0804D252
- cmp r7, r1
- bne _0804D252
- cmp r5, 0x1
- bne _0804D252
- mov r6, r10
- strb r4, [r6, 0xA]
- b _0804D252
- .align 2, 0
-_0804D24C: .4byte gUnknown_202F1CC
-_0804D250:
- strb r0, [r2, 0x2]
-_0804D252:
- adds r3, 0x1
-_0804D254:
- adds r2, 0x20
- adds r5, 0x1
- cmp r5, r8
- blt _0804D210
-_0804D25C:
- ldr r7, [sp, 0x104]
- cmp r7, r9
- blt _0804D1E0
-_0804D262:
- mov r1, r12
- ldr r0, [r1]
- cmp r0, 0x1
- bgt _0804D2BC
- movs r1, 0
- movs r2, 0
-_0804D26E:
- movs r7, 0
- cmp r2, r9
- bge _0804D2AC
- movs r6, 0
-_0804D276:
- movs r5, 0
- cmp r5, r8
- bge _0804D2A4
- lsls r0, r6, 5
- ldr r3, [sp, 0x100]
- adds r4, r0, r3
-_0804D282:
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- bne _0804D29C
- movs r0, 0x64
- str r1, [sp, 0x108]
- str r2, [sp, 0x10C]
- bl sub_8084100
- ldr r1, [sp, 0x108]
- ldr r2, [sp, 0x10C]
- cmp r0, 0x3B
- bgt _0804D29C
- b _0804D178
-_0804D29C:
- adds r4, 0x20
- adds r5, 0x1
- cmp r5, r8
- blt _0804D282
-_0804D2A4:
- adds r6, 0xF
- adds r7, 0x1
- cmp r7, r9
- blt _0804D276
-_0804D2AC:
- cmp r2, 0
- bne _0804D2B6
- adds r1, 0x1
- cmp r1, 0xC7
- ble _0804D26E
-_0804D2B6:
- ldr r1, _0804D2CC
- movs r0, 0
- strb r0, [r1]
-_0804D2BC:
- add sp, 0x114
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D2CC: .4byte gUnknown_202F1AD
- thumb_func_end sub_804D154
-
- thumb_func_start sub_804D2D0
-sub_804D2D0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x38
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r0, 0
- str r0, [sp, 0x10]
- movs r1, 0
- str r1, [sp, 0x14]
- cmp r1, r2
- blt _0804D2F2
- b _0804D520
-_0804D2F2:
- movs r2, 0
- mov r10, r2
- ldr r3, [sp, 0x14]
- adds r3, 0x1
- str r3, [sp, 0x28]
- ldr r4, [sp, 0x4]
- cmp r10, r4
- blt _0804D304
- b _0804D514
-_0804D304:
- ldr r5, [sp, 0x14]
- lsls r5, 5
- str r5, [sp, 0x1C]
-_0804D30A:
- mov r1, r10
- lsls r0, r1, 2
- ldr r2, [sp, 0xC]
- adds r0, r2
- ldr r3, [r0]
- adds r4, r3, 0x2
- mov r9, r4
- ldr r5, [sp, 0x14]
- lsls r1, r5, 2
- ldr r2, [sp, 0x58]
- adds r1, r2
- ldr r2, [r1]
- adds r4, r2, 0x2
- str r4, [sp, 0x18]
- ldr r0, [r0, 0x4]
- subs r0, r3
- subs r4, r0, 0x4
- ldr r0, [r1, 0x4]
- subs r0, r2
- subs r0, 0x3
- mov r8, r0
- mov r5, r10
- lsls r1, r5, 4
- subs r0, r1, r5
- lsls r0, 5
- ldr r2, [sp]
- adds r0, r2
- ldr r3, [sp, 0x1C]
- adds r7, r3, r0
- ldrb r0, [r7, 0x8]
- str r1, [sp, 0x2C]
- adds r5, 0x1
- str r5, [sp, 0x24]
- cmp r0, 0
- beq _0804D352
- b _0804D508
-_0804D352:
- ldrb r0, [r7, 0xA]
- cmp r0, 0
- bne _0804D35A
- b _0804D48C
-_0804D35A:
- movs r0, 0x5
- adds r1, r4, 0
- bl sub_808411C
- adds r6, r0, 0
- movs r0, 0x4
- mov r1, r8
- bl sub_808411C
- adds r5, r0, 0
- movs r1, 0x1
- adds r0, r6, 0
- orrs r0, r1
- cmp r0, r4
- bge _0804D37A
- adds r6, r0, 0
-_0804D37A:
- adds r0, r5, 0
- orrs r0, r1
- cmp r0, r8
- bge _0804D384
- adds r5, r0, 0
-_0804D384:
- lsls r0, r5, 1
- adds r0, r5
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r6, r0
- ble _0804D394
- adds r6, r0, 0
-_0804D394:
- lsls r0, r6, 1
- adds r0, r6
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r5, r0
- ble _0804D3A4
- adds r5, r0, 0
-_0804D3A4:
- subs r0, r4, r6
- bl sub_8084100
- adds r4, r0, 0
- add r4, r9
- mov r1, r8
- subs r0, r1, r5
- bl sub_8084100
- ldr r2, [sp, 0x18]
- adds r0, r2
- mov r8, r0
- adds r3, r4, r6
- adds r6, r0, r5
- strh r4, [r7]
- strh r3, [r7, 0x4]
- mov r5, r8
- strh r5, [r7, 0x2]
- strh r6, [r7, 0x6]
- ldr r0, [sp, 0x10]
- adds r0, 0x1
- str r0, [sp, 0x20]
- cmp r4, r3
- bge _0804D412
-_0804D3D4:
- mov r5, r8
- adds r7, r4, 0x1
- cmp r5, r6
- bge _0804D40C
- ldr r1, _0804D484
- mov r9, r1
-_0804D3E0:
- adds r0, r4, 0
- adds r1, r5, 0
- str r3, [sp, 0x34]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r9
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- mov r1, sp
- ldrb r1, [r1, 0x10]
- strb r1, [r0, 0x9]
- adds r5, 0x1
- ldr r3, [sp, 0x34]
- cmp r5, r6
- blt _0804D3E0
-_0804D40C:
- adds r4, r7, 0
- cmp r4, r3
- blt _0804D3D4
-_0804D412:
- movs r5, 0x1
- movs r0, 0x64
- bl sub_8084100
- movs r1, 0
- cmp r0, 0x4F
- bgt _0804D422
- movs r1, 0x1
-_0804D422:
- adds r4, r1, 0
- ldr r0, _0804D488
- ldr r0, [r0]
- cmp r0, 0
- bne _0804D42E
- movs r4, 0
-_0804D42E:
- movs r0, 0x4
- ldr r2, [sp, 0x5C]
- ands r0, r2
- cmp r0, 0
- bne _0804D43A
- movs r5, 0
-_0804D43A:
- cmp r5, 0
- beq _0804D466
- cmp r4, 0
- beq _0804D44E
- movs r0, 0x64
- bl sub_8084100
- cmp r0, 0x31
- ble _0804D466
- movs r4, 0
-_0804D44E:
- cmp r5, 0
- beq _0804D466
- ldr r3, [sp, 0x2C]
- mov r5, r10
- subs r0, r3, r5
- lsls r0, 5
- ldr r1, [sp]
- adds r0, r1
- ldr r2, [sp, 0x1C]
- adds r0, r2, r0
- movs r1, 0x1
- strb r1, [r0, 0x1C]
-_0804D466:
- cmp r4, 0
- beq _0804D47E
- ldr r3, [sp, 0x2C]
- mov r4, r10
- subs r0, r3, r4
- lsls r0, 5
- ldr r5, [sp]
- adds r0, r5
- ldr r1, [sp, 0x1C]
- adds r0, r1, r0
- movs r1, 0x1
- strb r1, [r0, 0x1D]
-_0804D47E:
- ldr r2, [sp, 0x20]
- str r2, [sp, 0x10]
- b _0804D508
- .align 2, 0
-_0804D484: .4byte 0x0000fffc
-_0804D488: .4byte gUnknown_202F1C8
-_0804D48C:
- movs r1, 0x2
- movs r3, 0x4
- movs r6, 0x2
- movs r2, 0x4
- mov r5, r10
- cmp r5, 0
- bne _0804D49C
- movs r1, 0x1
-_0804D49C:
- ldr r0, [sp, 0x14]
- cmp r0, 0
- bne _0804D4A4
- movs r6, 0x1
-_0804D4A4:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- cmp r10, r0
- bne _0804D4AE
- movs r3, 0x2
-_0804D4AE:
- ldr r0, [sp, 0x8]
- subs r0, 0x1
- ldr r5, [sp, 0x14]
- cmp r5, r0
- bne _0804D4BA
- movs r2, 0x2
-_0804D4BA:
- mov r5, r9
- adds r0, r5, r1
- adds r1, r5, r4
- subs r1, r3
- str r2, [sp, 0x30]
- bl sub_808411C
- adds r5, r0, 0
- ldr r1, [sp, 0x18]
- adds r0, r1, r6
- add r1, r8
- ldr r2, [sp, 0x30]
- subs r1, r2
- bl sub_808411C
- adds r4, r0, 0
- strh r5, [r7]
- adds r0, r5, 0x1
- strh r0, [r7, 0x4]
- strh r4, [r7, 0x2]
- adds r0, r4, 0x1
- strh r0, [r7, 0x6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, _0804D530
- adds r2, r3, 0
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0xFE
- strb r1, [r0, 0x9]
-_0804D508:
- ldr r4, [sp, 0x24]
- mov r10, r4
- ldr r5, [sp, 0x4]
- cmp r10, r5
- bge _0804D514
- b _0804D30A
-_0804D514:
- ldr r0, [sp, 0x28]
- str r0, [sp, 0x14]
- ldr r1, [sp, 0x8]
- cmp r0, r1
- bge _0804D520
- b _0804D2F2
-_0804D520:
- add sp, 0x38
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804D530: .4byte 0x0000fffc
- thumb_func_end sub_804D2D0
-
- thumb_func_start sub_804D534
-sub_804D534:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r3, r0, 0
- adds r7, r1, 0
- mov r9, r2
- movs r1, 0
- cmp r1, r9
- bge _0804D5A0
-_0804D54A:
- adds r0, r1, 0x1
- mov r8, r0
- cmp r7, 0
- ble _0804D59A
- lsls r1, 5
- adds r0, r1, 0
- adds r0, 0x8
- adds r4, r3, r0
- adds r5, r3, r1
- adds r6, r7, 0
-_0804D55E:
- ldrb r0, [r4]
- cmp r0, 0
- bne _0804D58C
- ldrb r0, [r4, 0x6]
- cmp r0, 0
- bne _0804D58C
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _0804D58C
- ldrb r0, [r4, 0x2]
- cmp r0, 0
- beq _0804D58C
- ldrb r0, [r4, 0x14]
- cmp r0, 0
- bne _0804D58C
- ldrb r0, [r4, 0x15]
- cmp r0, 0
- beq _0804D58C
- adds r0, r5, 0
- str r3, [sp]
- bl sub_804F694
- ldr r3, [sp]
-_0804D58C:
- movs r0, 0xF0
- lsls r0, 1
- adds r4, r0
- adds r5, r0
- subs r6, 0x1
- cmp r6, 0
- bne _0804D55E
-_0804D59A:
- mov r1, r8
- cmp r1, r9
- blt _0804D54A
-_0804D5A0:
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804D534
-
- thumb_func_start sub_804D5B0
-sub_804D5B0:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0x8
- mov r9, r0
- adds r4, r1, 0
- adds r5, r2, 0
- adds r6, r3, 0
- adds r0, r4, 0
- bl sub_8084100
- mov r8, r0
- adds r0, r5, 0
- bl sub_8084100
- str r0, [sp]
- str r6, [sp, 0x4]
- mov r0, r9
- adds r1, r4, 0
- adds r2, r5, 0
- mov r3, r8
- bl sub_804D5F0
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_804D5B0
-
- thumb_func_start sub_804D5F0
-sub_804D5F0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- adds r7, r3, 0
- ldr r6, [sp, 0x40]
- ldr r0, [sp, 0x44]
- ldrb r0, [r0, 0x5]
- str r0, [sp, 0xC]
- movs r0, 0x4
- bl sub_8084100
- adds r5, r0, 0
- movs r1, 0
- mov r10, r1
- ldr r2, [sp, 0xC]
- cmp r10, r2
- blt _0804D620
- b _0804D726
-_0804D620:
- lsls r4, r6, 5
- mov r9, r4
- lsls r0, r7, 4
- subs r0, r7
- lsls r0, 5
- ldr r1, [sp]
- adds r0, r1
- mov r8, r0
-_0804D630:
- movs r0, 0x8
- bl sub_8084100
- adds r4, r0, 0
- movs r0, 0x4
- bl sub_8084100
- cmp r4, 0x3
- bgt _0804D644
- adds r5, r0, 0
-_0804D644:
- mov r4, r10
- adds r4, 0x1
-_0804D648:
- movs r1, 0
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0x1
- beq _0804D670
- cmp r0, 0x1
- bgt _0804D65C
- cmp r0, 0
- beq _0804D666
- b _0804D686
-_0804D65C:
- cmp r0, 0x2
- beq _0804D676
- cmp r0, 0x3
- beq _0804D67C
- b _0804D686
-_0804D666:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- cmp r7, r0
- blt _0804D68A
- b _0804D684
-_0804D670:
- cmp r6, 0
- bgt _0804D68A
- b _0804D684
-_0804D676:
- cmp r7, 0
- bgt _0804D68A
- b _0804D684
-_0804D67C:
- ldr r0, [sp, 0x8]
- subs r0, 0x1
- cmp r6, r0
- blt _0804D68A
-_0804D684:
- adds r5, 0x1
-_0804D686:
- cmp r1, 0
- beq _0804D648
-_0804D68A:
- movs r1, 0x3
- ands r1, r5
- cmp r1, 0x1
- beq _0804D6C6
- cmp r1, 0x1
- bgt _0804D69C
- cmp r1, 0
- beq _0804D6A6
- b _0804D71E
-_0804D69C:
- cmp r1, 0x2
- beq _0804D6E2
- cmp r1, 0x3
- beq _0804D704
- b _0804D71E
-_0804D6A6:
- mov r1, r9
- add r1, r8
- movs r0, 0xF0
- lsls r0, 1
- adds r2, r1, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804D71E
- movs r0, 0x1
- strb r0, [r1, 0x16]
- strb r0, [r2, 0x15]
- movs r1, 0xF0
- lsls r1, 1
- add r8, r1
- adds r7, 0x1
- b _0804D71E
-_0804D6C6:
- mov r2, r9
- add r2, r8
- adds r3, r2, 0
- subs r3, 0x20
- ldrb r0, [r3, 0x8]
- cmp r0, 0
- bne _0804D71E
- strb r1, [r2, 0x13]
- strb r1, [r3, 0x14]
- movs r2, 0x20
- negs r2, r2
- add r9, r2
- subs r6, 0x1
- b _0804D71E
-_0804D6E2:
- mov r1, r9
- add r1, r8
- ldr r0, _0804D700
- adds r2, r1, r0
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804D71E
- movs r0, 0x1
- strb r0, [r1, 0x15]
- strb r0, [r2, 0x16]
- ldr r1, _0804D700
- add r8, r1
- subs r7, 0x1
- b _0804D71E
- .align 2, 0
-_0804D700: .4byte 0xfffffe20
-_0804D704:
- mov r1, r9
- add r1, r8
- adds r2, r1, 0
- adds r2, 0x20
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804D71E
- movs r0, 0x1
- strb r0, [r1, 0x14]
- strb r0, [r2, 0x13]
- movs r1, 0x20
- add r9, r1
- adds r6, 0x1
-_0804D71E:
- mov r10, r4
- ldr r2, [sp, 0xC]
- cmp r10, r2
- blt _0804D630
-_0804D726:
- ldr r4, [sp, 0x44]
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0804D730
- b _0804D8B8
-_0804D730:
- movs r0, 0
- mov r9, r0
- movs r7, 0
- ldr r1, [sp, 0x4]
- cmp r9, r1
- blt _0804D73E
- b _0804D8B0
-_0804D73E:
- movs r2, 0x1
- mov r8, r2
-_0804D742:
- movs r6, 0
- adds r4, r7, 0x1
- str r4, [sp, 0x14]
- ldr r0, [sp, 0x8]
- cmp r6, r0
- blt _0804D750
- b _0804D8A6
-_0804D750:
- lsls r1, r7, 4
- str r1, [sp, 0x10]
- subs r0, r1, r7
- lsls r0, 5
- ldr r2, [sp]
- adds r3, r0, r2
-_0804D75C:
- lsls r0, r6, 5
- adds r2, r0, r3
- ldrb r1, [r2, 0x8]
- adds r4, r0, 0
- adds r0, r6, 0x1
- str r0, [sp, 0x18]
- cmp r1, 0
- beq _0804D76E
- b _0804D89C
-_0804D76E:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804D776
- b _0804D89C
-_0804D776:
- ldrb r0, [r2, 0x13]
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- ldrb r0, [r2, 0x14]
- cmp r0, 0
- beq _0804D786
- adds r1, 0x1
-_0804D786:
- ldrb r0, [r2, 0x15]
- cmp r0, 0
- beq _0804D78E
- adds r1, 0x1
-_0804D78E:
- ldrb r0, [r2, 0x16]
- cmp r0, 0
- beq _0804D796
- adds r1, 0x1
-_0804D796:
- cmp r1, 0x1
- beq _0804D79C
- b _0804D89C
-_0804D79C:
- movs r0, 0x4
- str r3, [sp, 0x1C]
- bl sub_8084100
- adds r5, r0, 0
- movs r2, 0
- mov r10, r2
- ldr r1, [sp, 0x10]
- subs r0, r1, r7
- lsls r0, 5
- ldr r1, [sp]
- adds r0, r1
- adds r1, r4, r0
- ldr r3, [sp, 0x1C]
-_0804D7B8:
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0x1
- beq _0804D7E0
- cmp r0, 0x1
- bgt _0804D7CA
- cmp r0, 0
- beq _0804D7D4
- b _0804D800
-_0804D7CA:
- cmp r0, 0x2
- beq _0804D7E8
- cmp r0, 0x3
- beq _0804D7F0
- b _0804D800
-_0804D7D4:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- cmp r7, r0
- bge _0804D7FE
- ldrb r0, [r1, 0x16]
- b _0804D7FA
-_0804D7E0:
- cmp r6, 0
- ble _0804D7FE
- ldrb r0, [r1, 0x13]
- b _0804D7FA
-_0804D7E8:
- cmp r7, 0
- ble _0804D7FE
- ldrb r0, [r1, 0x15]
- b _0804D7FA
-_0804D7F0:
- ldr r0, [sp, 0x8]
- subs r0, 0x1
- cmp r6, r0
- bge _0804D7FE
- ldrb r0, [r1, 0x14]
-_0804D7FA:
- cmp r0, 0
- beq _0804D80E
-_0804D7FE:
- adds r5, 0x1
-_0804D800:
- mov r0, r10
- cmp r0, 0
- bne _0804D80E
- adds r2, 0x1
- cmp r2, 0x7
- ble _0804D7B8
- b _0804D89C
-_0804D80E:
- movs r2, 0x3
- ands r2, r5
- cmp r2, 0x1
- beq _0804D844
- cmp r2, 0x1
- bgt _0804D820
- cmp r2, 0
- beq _0804D82A
- b _0804D89C
-_0804D820:
- cmp r2, 0x2
- beq _0804D85C
- cmp r2, 0x3
- beq _0804D880
- b _0804D89C
-_0804D82A:
- adds r1, r4, r3
- movs r4, 0xF0
- lsls r4, 1
- adds r2, r1, r4
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804D89C
- mov r0, r8
- strb r0, [r1, 0x16]
- strb r0, [r2, 0x15]
- movs r1, 0x1
- mov r9, r1
- b _0804D89C
-_0804D844:
- adds r1, r4, r3
- movs r4, 0xF0
- lsls r4, 1
- adds r0, r1, r4
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0804D89C
- strb r2, [r1, 0x13]
- adds r0, r1, 0
- subs r0, 0x20
- strb r2, [r0, 0x14]
- b _0804D898
-_0804D85C:
- adds r1, r4, r3
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0804D89C
- mov r4, r8
- strb r4, [r1, 0x15]
- ldr r2, _0804D87C
- adds r0, r1, r2
- strb r4, [r0, 0x16]
- movs r4, 0x1
- mov r9, r4
- b _0804D89C
- .align 2, 0
-_0804D87C: .4byte 0xfffffe20
-_0804D880:
- adds r1, r4, r3
- movs r2, 0xF0
- lsls r2, 1
- adds r0, r1, r2
- ldrb r0, [r0, 0x8]
- cmp r0, 0
- bne _0804D89C
- mov r4, r8
- strb r4, [r1, 0x14]
- adds r0, r1, 0
- adds r0, 0x20
- strb r4, [r0, 0x13]
-_0804D898:
- movs r0, 0x1
- mov r9, r0
-_0804D89C:
- ldr r6, [sp, 0x18]
- ldr r1, [sp, 0x8]
- cmp r6, r1
- bge _0804D8A6
- b _0804D75C
-_0804D8A6:
- ldr r7, [sp, 0x14]
- ldr r2, [sp, 0x4]
- cmp r7, r2
- bge _0804D8B0
- b _0804D742
-_0804D8B0:
- mov r4, r9
- cmp r4, 0
- beq _0804D8B8
- b _0804D730
-_0804D8B8:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804D5F0
-
- thumb_func_start sub_804D8C8
-sub_804D8C8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- str r2, [sp, 0x14]
- str r3, [sp, 0x18]
- ldr r0, [sp, 0x7C]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- movs r0, 0
- str r0, [sp, 0x20]
- cmp r0, r1
- bge _0804D968
-_0804D8EC:
- movs r1, 0
- mov r10, r1
- ldr r2, [sp, 0x20]
- adds r2, 0x1
- str r2, [sp, 0x38]
- ldr r3, [sp, 0x14]
- cmp r10, r3
- bge _0804D95E
- ldr r4, [sp, 0x20]
- lsls r1, r4, 4
- subs r1, r4
- movs r3, 0
- lsls r1, 5
- ldr r0, [sp, 0xC]
- adds r0, 0x8
- adds r1, r0
-_0804D90C:
- ldrb r2, [r1]
- cmp r2, 0
- beq _0804D91C
- strb r3, [r1, 0xF]
- strb r3, [r1, 0x10]
- strb r3, [r1, 0x11]
- strb r3, [r1, 0x12]
- b _0804D952
-_0804D91C:
- ldr r5, [sp, 0x20]
- cmp r5, 0
- bgt _0804D924
- strb r2, [r1, 0xD]
-_0804D924:
- mov r6, r10
- cmp r6, 0
- bgt _0804D92C
- strb r2, [r1, 0xB]
-_0804D92C:
- ldr r0, [sp, 0x10]
- subs r0, 0x1
- ldr r7, [sp, 0x20]
- cmp r7, r0
- blt _0804D938
- strb r2, [r1, 0xE]
-_0804D938:
- ldr r0, [sp, 0x14]
- subs r0, 0x1
- cmp r10, r0
- blt _0804D942
- strb r2, [r1, 0xC]
-_0804D942:
- ldrb r0, [r1, 0xB]
- strb r0, [r1, 0xF]
- ldrb r0, [r1, 0xC]
- strb r0, [r1, 0x10]
- ldrb r0, [r1, 0xD]
- strb r0, [r1, 0x11]
- ldrb r0, [r1, 0xE]
- strb r0, [r1, 0x12]
-_0804D952:
- adds r1, 0x20
- movs r0, 0x1
- add r10, r0
- ldr r2, [sp, 0x14]
- cmp r10, r2
- blt _0804D90C
-_0804D95E:
- ldr r3, [sp, 0x38]
- str r3, [sp, 0x20]
- ldr r4, [sp, 0x10]
- cmp r3, r4
- blt _0804D8EC
-_0804D968:
- movs r5, 0
- str r5, [sp, 0x20]
- ldr r6, [sp, 0x10]
- cmp r5, r6
- blt _0804D974
- b _0804DBC6
-_0804D974:
- movs r7, 0
- mov r10, r7
- ldr r0, [sp, 0x20]
- adds r0, 0x1
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x14]
- cmp r10, r1
- blt _0804D986
- b _0804DBBA
-_0804D986:
- ldr r2, [sp, 0x20]
- lsls r2, 4
- str r2, [sp, 0x40]
- ldr r3, [sp, 0x20]
- subs r1, r2, r3
- lsls r1, 5
- movs r4, 0
- str r4, [sp, 0x48]
- ldr r5, [sp, 0xC]
- movs r6, 0xF0
- lsls r6, 1
- adds r0, r5, r6
- adds r0, r1
- mov r8, r0
- adds r5, r1, r5
- ldr r7, [sp, 0xC]
- ldr r2, _0804DA0C
- adds r0, r7, r2
- adds r7, r1, r0
- ldr r3, [sp, 0x78]
- str r3, [sp, 0x4C]
- ldr r0, [sp, 0xC]
- adds r0, 0x20
- adds r0, r1, r0
- str r0, [sp, 0x50]
- ldr r0, [sp, 0xC]
- subs r0, 0x20
- adds r6, r1, r0
- ldr r4, [sp, 0x20]
- lsls r0, r4, 2
- ldr r1, [sp, 0x18]
- adds r0, r1
- str r0, [sp, 0x24]
-_0804D9C8:
- ldr r2, [sp, 0x20]
- lsls r0, r2, 4
- subs r0, r2
- lsls r0, 5
- ldr r3, [sp, 0xC]
- adds r0, r3
- ldr r1, [sp, 0x48]
- adds r4, r1, r0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _0804D9E0
- b _0804DB92
-_0804D9E0:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0804DA10
- movs r2, 0
- ldrsh r0, [r4, r2]
- adds r0, 0x1
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- subs r1, 0x1
- bl sub_808411C
- mov r9, r0
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- subs r1, 0x1
- bl sub_808411C
- adds r4, r0, 0
- b _0804DA1A
- .align 2, 0
-_0804DA0C: .4byte 0xfffffe20
-_0804DA10:
- movs r0, 0
- ldrsh r3, [r4, r0]
- mov r9, r3
- movs r1, 0x2
- ldrsh r4, [r4, r1]
-_0804DA1A:
- ldrb r0, [r5, 0x17]
- cmp r0, 0
- beq _0804DA74
- ldrb r0, [r6, 0x8]
- cmp r0, 0
- bne _0804DA68
- ldrb r0, [r6, 0xA]
- cmp r0, 0
- beq _0804DA40
- movs r2, 0
- ldrsh r0, [r6, r2]
- adds r0, 0x1
- movs r3, 0x4
- ldrsh r1, [r6, r3]
- subs r1, 0x1
- bl sub_808411C
- adds r2, r0, 0
- b _0804DA44
-_0804DA40:
- movs r0, 0
- ldrsh r2, [r6, r0]
-_0804DA44:
- movs r3, 0x2
- ldrsh r1, [r5, r3]
- movs r0, 0x6
- ldrsh r3, [r6, r0]
- subs r3, 0x1
- mov r12, r3
- movs r3, 0x1
- str r3, [sp]
- ldr r3, [sp, 0x24]
- ldr r0, [r3]
- str r0, [sp, 0x4]
- ldr r3, [sp, 0x4C]
- ldr r0, [r3]
- str r0, [sp, 0x8]
- mov r0, r9
- mov r3, r12
- bl sub_804E328
-_0804DA68:
- movs r0, 0
- strb r0, [r5, 0x17]
- strb r0, [r6, 0x18]
- movs r1, 0x1
- strb r1, [r5, 0xB]
- strb r1, [r6, 0xB]
-_0804DA74:
- ldrb r0, [r5, 0x18]
- cmp r0, 0
- beq _0804DAD4
- ldr r2, [sp, 0x50]
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804DAC6
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804DA9C
- movs r3, 0x20
- ldrsh r0, [r5, r3]
- adds r0, 0x1
- movs r2, 0x24
- ldrsh r1, [r5, r2]
- subs r1, 0x1
- bl sub_808411C
- adds r2, r0, 0
- b _0804DAA0
-_0804DA9C:
- movs r3, 0x20
- ldrsh r2, [r5, r3]
-_0804DAA0:
- movs r0, 0x6
- ldrsh r1, [r5, r0]
- subs r1, 0x1
- movs r0, 0x22
- ldrsh r3, [r5, r0]
- mov r12, r3
- movs r3, 0x1
- str r3, [sp]
- ldr r3, [sp, 0x24]
- ldr r0, [r3]
- str r0, [sp, 0x4]
- ldr r3, [sp, 0x4C]
- ldr r0, [r3, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x8]
- mov r0, r9
- mov r3, r12
- bl sub_804E328
-_0804DAC6:
- movs r0, 0
- strb r0, [r5, 0x18]
- ldr r1, [sp, 0x50]
- strb r0, [r1, 0x17]
- movs r2, 0x1
- strb r2, [r5, 0xB]
- strb r2, [r1, 0xB]
-_0804DAD4:
- ldrb r0, [r5, 0x19]
- cmp r0, 0
- beq _0804DB2E
- ldrb r0, [r7, 0x8]
- cmp r0, 0
- bne _0804DB22
- ldrb r0, [r7, 0xA]
- cmp r0, 0
- beq _0804DAFA
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- adds r0, 0x1
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- subs r1, 0x1
- bl sub_808411C
- adds r3, r0, 0
- b _0804DAFE
-_0804DAFA:
- movs r0, 0x2
- ldrsh r3, [r7, r0]
-_0804DAFE:
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r1, 0
- ldrsh r2, [r7, r1]
- subs r2, 0x1
- mov r9, r2
- movs r2, 0
- str r2, [sp]
- ldr r2, [sp, 0x24]
- ldr r1, [r2]
- str r1, [sp, 0x4]
- ldr r2, [sp, 0x4C]
- ldr r1, [r2]
- str r1, [sp, 0x8]
- adds r1, r4, 0
- mov r2, r9
- bl sub_804E328
-_0804DB22:
- movs r3, 0
- strb r3, [r5, 0x19]
- strb r3, [r7, 0x1A]
- movs r0, 0x1
- strb r0, [r5, 0xB]
- strb r0, [r7, 0xB]
-_0804DB2E:
- ldrb r0, [r5, 0x1A]
- cmp r0, 0
- beq _0804DB92
- mov r1, r8
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- bne _0804DB84
- ldrb r0, [r1, 0xA]
- cmp r0, 0
- beq _0804DB56
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- adds r0, 0x1
- movs r3, 0x6
- ldrsh r1, [r1, r3]
- subs r1, 0x1
- bl sub_808411C
- adds r3, r0, 0
- b _0804DB5C
-_0804DB56:
- mov r0, r8
- movs r1, 0x2
- ldrsh r3, [r0, r1]
-_0804DB5C:
- movs r2, 0x4
- ldrsh r0, [r5, r2]
- subs r0, 0x1
- mov r1, r8
- movs r2, 0
- ldrsh r1, [r1, r2]
- mov r9, r1
- movs r1, 0
- str r1, [sp]
- ldr r2, [sp, 0x24]
- ldr r1, [r2, 0x4]
- subs r1, 0x1
- str r1, [sp, 0x4]
- ldr r2, [sp, 0x4C]
- ldr r1, [r2]
- str r1, [sp, 0x8]
- adds r1, r4, 0
- mov r2, r9
- bl sub_804E328
-_0804DB84:
- movs r3, 0
- strb r3, [r5, 0x1A]
- mov r4, r8
- strb r3, [r4, 0x19]
- movs r0, 0x1
- strb r0, [r5, 0xB]
- strb r0, [r4, 0xB]
-_0804DB92:
- ldr r1, [sp, 0x48]
- adds r1, 0x20
- str r1, [sp, 0x48]
- movs r2, 0x20
- add r8, r2
- adds r5, 0x20
- adds r7, 0x20
- ldr r3, [sp, 0x4C]
- adds r3, 0x4
- str r3, [sp, 0x4C]
- ldr r4, [sp, 0x50]
- adds r4, 0x20
- str r4, [sp, 0x50]
- adds r6, 0x20
- movs r0, 0x1
- add r10, r0
- ldr r1, [sp, 0x14]
- cmp r10, r1
- bge _0804DBBA
- b _0804D9C8
-_0804DBBA:
- ldr r2, [sp, 0x38]
- str r2, [sp, 0x20]
- ldr r3, [sp, 0x10]
- cmp r2, r3
- bge _0804DBC6
- b _0804D974
-_0804DBC6:
- ldr r4, [sp, 0x1C]
- cmp r4, 0
- beq _0804DBCE
- b _0804E026
-_0804DBCE:
- movs r5, 0
- str r5, [sp, 0x20]
- ldr r6, [sp, 0x10]
- cmp r5, r6
- blt _0804DBDA
- b _0804E026
-_0804DBDA:
- movs r7, 0
- mov r10, r7
- ldr r0, [sp, 0x20]
- adds r0, 0x1
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x14]
- cmp r10, r1
- blt _0804DBEC
- b _0804E018
-_0804DBEC:
- movs r0, 0x64
- bl sub_8084100
- mov r2, r10
- adds r2, 0x1
- str r2, [sp, 0x3C]
- cmp r0, 0x4
- ble _0804DBFE
- b _0804E00C
-_0804DBFE:
- mov r3, r10
- lsls r1, r3, 5
- ldr r4, [sp, 0x20]
- lsls r2, r4, 4
- subs r0, r2, r4
- lsls r0, 5
- ldr r5, [sp, 0xC]
- adds r0, r5
- adds r4, r1, r0
- ldrb r0, [r4, 0x8]
- str r1, [sp, 0x44]
- str r2, [sp, 0x40]
- cmp r0, 0
- beq _0804DC1C
- b _0804E00C
-_0804DC1C:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0804DC24
- b _0804E00C
-_0804DC24:
- ldrb r0, [r4, 0x12]
- cmp r0, 0
- beq _0804DC2C
- b _0804E00C
-_0804DC2C:
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0804DC34
- b _0804E00C
-_0804DC34:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _0804DC3C
- b _0804E00C
-_0804DC3C:
- movs r0, 0x4
- bl sub_8084100
- cmp r0, 0x1
- bne _0804DC48
- b _0804DD50
-_0804DC48:
- cmp r0, 0x1
- bgt _0804DC52
- cmp r0, 0
- beq _0804DC60
- b _0804E00C
-_0804DC52:
- cmp r0, 0x2
- bne _0804DC58
- b _0804DE3C
-_0804DC58:
- cmp r0, 0x3
- bne _0804DC5E
- b _0804DF30
-_0804DC5E:
- b _0804E00C
-_0804DC60:
- ldr r6, [sp, 0x20]
- cmp r6, 0
- bgt _0804DC68
- b _0804E00C
-_0804DC68:
- ldr r7, _0804DD48
- adds r2, r4, r7
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _0804DC74
- b _0804E00C
-_0804DC74:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0804DC7C
- b _0804E00C
-_0804DC7C:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _0804DC84
- b _0804E00C
-_0804DC84:
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- beq _0804DC8C
- b _0804E00C
-_0804DC8C:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- beq _0804DC94
- b _0804E00C
-_0804DC94:
- movs r1, 0
- ldrsh r0, [r2, r1]
- str r0, [sp, 0x28]
- ldrh r3, [r4, 0x2]
- movs r5, 0x2
- ldrsh r1, [r4, r5]
- ldrh r5, [r2, 0x2]
- movs r6, 0x2
- ldrsh r0, [r2, r6]
- cmp r1, r0
- ble _0804DCAC
- adds r3, r5, 0
-_0804DCAC:
- lsls r0, r3, 16
- asrs r0, 16
- mov r9, r0
- movs r0, 0x4
- ldrsh r7, [r4, r0]
- mov r10, r7
- ldrh r3, [r4, 0x6]
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- ldrh r5, [r2, 0x6]
- movs r6, 0x6
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bge _0804DCCA
- adds r3, r5, 0
-_0804DCCA:
- lsls r0, r3, 16
- asrs r7, r0, 16
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r8, r0
- ldr r5, [sp, 0x28]
- cmp r5, r10
- bge _0804DD16
-_0804DCE4:
- mov r4, r9
- adds r6, r5, 0x1
- cmp r9, r7
- bge _0804DD10
- ldr r0, _0804DD4C
- adds r3, r0, 0
-_0804DCF0:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x54]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, [sp, 0x54]
- ands r1, r3
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- mov r1, r8
- strb r1, [r0, 0x9]
- adds r4, 0x1
- cmp r4, r7
- blt _0804DCF0
-_0804DD10:
- adds r5, r6, 0
- cmp r5, r10
- blt _0804DCE4
-_0804DD16:
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x20]
- subs r0, r2, r3
- lsls r0, 5
- ldr r4, [sp, 0xC]
- adds r0, r4
- ldr r5, [sp, 0x44]
- adds r0, r5, r0
- ldr r6, _0804DD48
- adds r3, r0, r6
- mov r1, sp
- ldrh r1, [r1, 0x28]
- strh r1, [r3]
- mov r2, r10
- strh r2, [r3, 0x4]
- mov r4, r9
- strh r4, [r3, 0x2]
- strh r7, [r3, 0x6]
- movs r5, 0x1
- strb r5, [r0, 0x12]
- strb r5, [r3, 0x12]
- movs r6, 0
- strb r6, [r0, 0xB]
- strb r5, [r0, 0x11]
- b _0804E00C
- .align 2, 0
-_0804DD48: .4byte 0xfffffe20
-_0804DD4C: .4byte 0x0000fffc
-_0804DD50:
- mov r7, r10
- cmp r7, 0
- bgt _0804DD58
- b _0804E00C
-_0804DD58:
- adds r2, r4, 0
- subs r2, 0x20
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _0804DD64
- b _0804E00C
-_0804DD64:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0804DD6C
- b _0804E00C
-_0804DD6C:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _0804DD74
- b _0804E00C
-_0804DD74:
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- beq _0804DD7C
- b _0804E00C
-_0804DD7C:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- beq _0804DD84
- b _0804E00C
-_0804DD84:
- ldrh r3, [r4]
- movs r0, 0
- ldrsh r1, [r4, r0]
- ldrh r5, [r2]
- movs r6, 0
- ldrsh r0, [r2, r6]
- cmp r1, r0
- ble _0804DD96
- adds r3, r5, 0
-_0804DD96:
- lsls r0, r3, 16
- asrs r0, 16
- str r0, [sp, 0x2C]
- movs r0, 0x2
- ldrsh r7, [r2, r0]
- mov r10, r7
- ldrh r3, [r4, 0x4]
- movs r5, 0x4
- ldrsh r1, [r4, r5]
- ldrh r5, [r2, 0x4]
- movs r6, 0x4
- ldrsh r0, [r2, r6]
- cmp r1, r0
- bge _0804DDB4
- adds r3, r5, 0
-_0804DDB4:
- lsls r0, r3, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0x6
- ldrsh r7, [r4, r0]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r9, r0
- ldr r5, [sp, 0x2C]
- cmp r5, r8
- bge _0804DE06
-_0804DDD4:
- mov r4, r10
- adds r6, r5, 0x1
- cmp r10, r7
- bge _0804DE00
- ldr r0, _0804DE38
- adds r3, r0, 0
-_0804DDE0:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x54]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, [sp, 0x54]
- ands r1, r3
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- mov r1, r9
- strb r1, [r0, 0x9]
- adds r4, 0x1
- cmp r4, r7
- blt _0804DDE0
-_0804DE00:
- adds r5, r6, 0
- cmp r5, r8
- blt _0804DDD4
-_0804DE06:
- ldr r2, [sp, 0x40]
- ldr r3, [sp, 0x20]
- subs r0, r2, r3
- lsls r0, 5
- ldr r4, [sp, 0xC]
- adds r0, r4
- ldr r5, [sp, 0x44]
- adds r0, r5, r0
- adds r3, r0, 0
- subs r3, 0x20
- mov r6, sp
- ldrh r6, [r6, 0x2C]
- strh r6, [r3]
- mov r1, r8
- strh r1, [r3, 0x4]
- mov r2, r10
- strh r2, [r3, 0x2]
- strh r7, [r3, 0x6]
- movs r4, 0x1
- strb r4, [r0, 0x12]
- strb r4, [r3, 0x12]
- movs r5, 0
- strb r5, [r0, 0xB]
- strb r4, [r0, 0x11]
- b _0804E00C
- .align 2, 0
-_0804DE38: .4byte 0x0000fffc
-_0804DE3C:
- ldr r0, [sp, 0x10]
- subs r0, 0x2
- ldr r6, [sp, 0x20]
- cmp r6, r0
- ble _0804DE48
- b _0804E00C
-_0804DE48:
- movs r7, 0xF0
- lsls r7, 1
- adds r2, r4, r7
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- bne _0804DE56
- b _0804E00C
-_0804DE56:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- beq _0804DE5E
- b _0804E00C
-_0804DE5E:
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- bne _0804DE66
- b _0804E00C
-_0804DE66:
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- beq _0804DE6E
- b _0804E00C
-_0804DE6E:
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- beq _0804DE76
- b _0804E00C
-_0804DE76:
- movs r1, 0
- ldrsh r0, [r4, r1]
- str r0, [sp, 0x30]
- ldrh r3, [r2, 0x2]
- movs r5, 0x2
- ldrsh r1, [r2, r5]
- ldrh r5, [r4, 0x2]
- movs r6, 0x2
- ldrsh r0, [r4, r6]
- cmp r1, r0
- ble _0804DE8E
- adds r3, r5, 0
-_0804DE8E:
- lsls r0, r3, 16
- asrs r0, 16
- mov r9, r0
- movs r0, 0x4
- ldrsh r7, [r2, r0]
- mov r10, r7
- ldrh r3, [r2, 0x6]
- movs r5, 0x6
- ldrsh r1, [r2, r5]
- ldrh r2, [r4, 0x6]
- movs r6, 0x6
- ldrsh r0, [r4, r6]
- cmp r1, r0
- bge _0804DEAC
- adds r3, r2, 0
-_0804DEAC:
- lsls r0, r3, 16
- asrs r7, r0, 16
- movs r0, 0x2
- ldrsh r1, [r4, r0]
- ldr r0, [sp, 0x30]
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r8, r0
- ldr r5, [sp, 0x30]
- cmp r5, r10
- bge _0804DEF6
-_0804DEC4:
- mov r4, r9
- adds r6, r5, 0x1
- cmp r9, r7
- bge _0804DEF0
- ldr r1, _0804DF2C
- adds r3, r1, 0
-_0804DED0:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x54]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, [sp, 0x54]
- ands r1, r3
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- mov r2, r8
- strb r2, [r0, 0x9]
- adds r4, 0x1
- cmp r4, r7
- blt _0804DED0
-_0804DEF0:
- adds r5, r6, 0
- cmp r5, r10
- blt _0804DEC4
-_0804DEF6:
- ldr r3, [sp, 0x40]
- ldr r4, [sp, 0x20]
- subs r0, r3, r4
- lsls r0, 5
- ldr r5, [sp, 0xC]
- adds r0, r5
- ldr r6, [sp, 0x44]
- adds r0, r6, r0
- mov r1, sp
- ldrh r1, [r1, 0x30]
- strh r1, [r0]
- mov r2, r10
- strh r2, [r0, 0x4]
- mov r3, r9
- strh r3, [r0, 0x2]
- strh r7, [r0, 0x6]
- movs r4, 0xF0
- lsls r4, 1
- adds r1, r0, r4
- movs r5, 0x1
- strb r5, [r1, 0x12]
- strb r5, [r0, 0x12]
- movs r6, 0
- strb r6, [r1, 0xB]
- strb r5, [r1, 0x11]
- b _0804E00C
- .align 2, 0
-_0804DF2C: .4byte 0x0000fffc
-_0804DF30:
- ldr r0, [sp, 0x14]
- subs r0, 0x2
- cmp r10, r0
- bgt _0804E00C
- adds r3, r4, 0
- adds r3, 0x20
- ldrb r0, [r3, 0xB]
- cmp r0, 0
- beq _0804E00C
- ldrb r0, [r3, 0x8]
- cmp r0, 0
- bne _0804E00C
- ldrb r0, [r3, 0xA]
- cmp r0, 0
- beq _0804E00C
- ldrb r0, [r3, 0x9]
- cmp r0, 0
- bne _0804E00C
- ldrb r0, [r3, 0x12]
- cmp r0, 0
- bne _0804E00C
- ldrh r2, [r4, 0x20]
- movs r7, 0x20
- ldrsh r1, [r4, r7]
- ldrh r5, [r4]
- movs r6, 0
- ldrsh r0, [r4, r6]
- cmp r1, r0
- ble _0804DF6C
- adds r2, r5, 0
-_0804DF6C:
- lsls r0, r2, 16
- asrs r0, 16
- str r0, [sp, 0x34]
- movs r7, 0x2
- ldrsh r6, [r4, r7]
- ldrh r2, [r3, 0x4]
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- ldrh r5, [r4, 0x4]
- movs r7, 0x4
- ldrsh r0, [r4, r7]
- cmp r1, r0
- bge _0804DF88
- adds r2, r5, 0
-_0804DF88:
- lsls r0, r2, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0x6
- ldrsh r3, [r3, r0]
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r1, r6, 0
- str r3, [sp, 0x54]
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r10, r0
- ldr r5, [sp, 0x34]
- ldr r3, [sp, 0x54]
- cmp r5, r8
- bge _0804DFDE
-_0804DFAA:
- adds r4, r6, 0
- adds r7, r5, 0x1
- cmp r6, r3
- bge _0804DFD8
- ldr r2, _0804E038
- mov r9, r2
-_0804DFB6:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x54]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r9
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- mov r1, r10
- strb r1, [r0, 0x9]
- adds r4, 0x1
- ldr r3, [sp, 0x54]
- cmp r4, r3
- blt _0804DFB6
-_0804DFD8:
- adds r5, r7, 0
- cmp r5, r8
- blt _0804DFAA
-_0804DFDE:
- ldr r2, [sp, 0x40]
- ldr r4, [sp, 0x20]
- subs r0, r2, r4
- lsls r0, 5
- ldr r5, [sp, 0xC]
- adds r0, r5
- ldr r7, [sp, 0x44]
- adds r0, r7, r0
- mov r1, sp
- ldrh r1, [r1, 0x34]
- strh r1, [r0]
- mov r2, r8
- strh r2, [r0, 0x4]
- strh r6, [r0, 0x2]
- strh r3, [r0, 0x6]
- adds r1, r0, 0
- adds r1, 0x20
- movs r3, 0x1
- strb r3, [r1, 0x12]
- strb r3, [r0, 0x12]
- movs r4, 0
- strb r4, [r1, 0xB]
- strb r3, [r1, 0x11]
-_0804E00C:
- ldr r5, [sp, 0x3C]
- mov r10, r5
- ldr r6, [sp, 0x14]
- cmp r10, r6
- bge _0804E018
- b _0804DBEC
-_0804E018:
- ldr r7, [sp, 0x38]
- str r7, [sp, 0x20]
- adds r0, r7, 0
- ldr r1, [sp, 0x10]
- cmp r0, r1
- bge _0804E026
- b _0804DBDA
-_0804E026:
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E038: .4byte 0x0000fffc
- thumb_func_end sub_804D8C8
-
- thumb_func_start sub_804E03C
-sub_804E03C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- cmp r0, r1
- blt _0804E058
- b _0804E318
-_0804E058:
- movs r2, 0
- ldr r1, [sp, 0xC]
- adds r1, 0x1
- str r1, [sp, 0x28]
- ldr r3, [sp, 0x8]
- cmp r2, r3
- blt _0804E068
- b _0804E30C
-_0804E068:
- ldr r4, [sp, 0xC]
- lsls r4, 4
- str r4, [sp, 0x14]
- ldr r6, [sp, 0xC]
- subs r0, r4, r6
- lsls r0, 5
- ldr r1, [sp]
- adds r0, r1
- str r0, [sp, 0x18]
-_0804E07A:
- lsls r0, r2, 5
- ldr r3, [sp, 0x18]
- adds r4, r0, r3
- ldrb r1, [r4, 0x8]
- str r0, [sp, 0x34]
- adds r2, 0x1
- str r2, [sp, 0x2C]
- cmp r1, 0
- beq _0804E08E
- b _0804E302
-_0804E08E:
- ldrb r0, [r4, 0x11]
- cmp r0, 0
- beq _0804E096
- b _0804E302
-_0804E096:
- ldrb r0, [r4, 0x12]
- cmp r0, 0
- beq _0804E09E
- b _0804E302
-_0804E09E:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- bne _0804E0A6
- b _0804E302
-_0804E0A6:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _0804E0AE
- b _0804E302
-_0804E0AE:
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0804E0B6
- b _0804E302
-_0804E0B6:
- ldrb r0, [r4, 0x10]
- cmp r0, 0
- beq _0804E0BE
- b _0804E302
-_0804E0BE:
- ldrb r0, [r4, 0x1C]
- cmp r0, 0
- bne _0804E0C6
- b _0804E302
-_0804E0C6:
- movs r0, 0x64
- bl sub_8084100
- cmp r0, 0x3B
- bgt _0804E0D2
- b _0804E302
-_0804E0D2:
- movs r6, 0x4
- ldrsh r2, [r4, r6]
- movs r1, 0
- ldrsh r0, [r4, r1]
- subs r2, r0
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- movs r6, 0x2
- ldrsh r1, [r4, r6]
- subs r0, r1
- adds r2, r0
- str r2, [sp, 0x10]
- adds r0, r2, 0
- cmp r2, 0
- bge _0804E0F2
- adds r0, 0x3
-_0804E0F2:
- asrs r0, 2
- str r0, [sp, 0x10]
- cmp r0, 0
- bne _0804E0FE
- movs r0, 0x1
- str r0, [sp, 0x10]
-_0804E0FE:
- movs r1, 0
- ldr r2, [sp, 0x10]
- cmp r1, r2
- blt _0804E108
- b _0804E302
-_0804E108:
- ldr r3, [sp, 0x14]
- ldr r4, [sp, 0xC]
- subs r0, r3, r4
- lsls r0, 5
- ldr r6, [sp]
- adds r0, r6
- ldr r2, [sp, 0x34]
- adds r0, r2, r0
- str r0, [sp, 0x20]
-_0804E11A:
- movs r4, 0
- adds r1, 0x1
- str r1, [sp, 0x30]
-_0804E120:
- movs r0, 0x4
- bl sub_8084100
- str r0, [sp, 0x1C]
- cmp r0, 0x1
- beq _0804E14A
- cmp r0, 0x1
- ble _0804E138
- cmp r0, 0x2
- beq _0804E168
- cmp r0, 0x3
- beq _0804E182
-_0804E138:
- ldr r3, [sp, 0x20]
- movs r6, 0
- ldrsh r7, [r3, r6]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- mov r8, r0
- cmp r4, 0
- bne _0804E19C
- b _0804E15C
-_0804E14A:
- ldr r2, [sp, 0x20]
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- subs r7, r0, 0x1
- movs r0, 0x2
- ldrsh r6, [r2, r0]
- mov r8, r6
- cmp r4, 0
- beq _0804E162
-_0804E15C:
- movs r3, 0
- movs r2, 0x1
- b _0804E1A0
-_0804E162:
- movs r3, 0x1
- negs r3, r3
- b _0804E19E
-_0804E168:
- ldr r1, [sp, 0x20]
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- subs r7, r0, 0x1
- movs r3, 0x6
- ldrsh r0, [r1, r3]
- subs r0, 0x1
- mov r8, r0
- cmp r4, 0
- beq _0804E194
- movs r3, 0x1
- negs r3, r3
- b _0804E19E
-_0804E182:
- ldr r6, [sp, 0x20]
- movs r0, 0
- ldrsh r7, [r6, r0]
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- subs r0, 0x1
- mov r8, r0
- cmp r4, 0
- beq _0804E19C
-_0804E194:
- movs r3, 0
- movs r2, 0x1
- negs r2, r2
- b _0804E1A0
-_0804E19C:
- movs r3, 0x1
-_0804E19E:
- movs r2, 0
-_0804E1A0:
- movs r6, 0
- mov r9, r6
- ldr r5, [sp, 0x34]
- ldr r0, [sp, 0x14]
- str r0, [sp, 0x40]
- ldr r6, [sp, 0x18]
- adds r1, r5, r6
- movs r6, 0
- ldrsh r0, [r1, r6]
- mov r10, r0
- adds r4, 0x1
- str r4, [sp, 0x24]
- cmp r7, r10
- bge _0804E1BE
- b _0804E2F0
-_0804E1BE:
- movs r4, 0x4
- ldrsh r0, [r1, r4]
- cmp r7, r0
- blt _0804E1C8
- b _0804E2F0
-_0804E1C8:
- ldr r6, [sp, 0x40]
- ldr r1, [sp, 0xC]
- subs r0, r6, r1
- lsls r0, 5
- ldr r4, [sp]
- adds r0, r4
- adds r4, r5, r0
- movs r6, 0x2
- ldrsh r0, [r4, r6]
- cmp r8, r0
- bge _0804E1E0
- b _0804E2F0
-_0804E1E0:
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r8, r0
- blt _0804E1EA
- b _0804E2F0
-_0804E1EA:
- adds r0, r7, 0
- mov r1, r8
- str r2, [sp, 0x38]
- str r3, [sp, 0x3C]
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- ldr r2, [sp, 0x38]
- ldr r3, [sp, 0x3C]
- cmp r0, 0x1
- bne _0804E2D0
- movs r6, 0
-_0804E206:
- ldr r1, _0804E228
- lsls r0, r6, 2
- adds r0, r1
- movs r2, 0
- ldrsh r1, [r0, r2]
- adds r1, r7
- mov r10, r1
- movs r3, 0x2
- ldrsh r0, [r0, r3]
- add r0, r8
- mov r9, r0
- movs r3, 0
- movs r5, 0x1
- negs r5, r5
-_0804E222:
- movs r4, 0x1
- negs r4, r4
- b _0804E22E
- .align 2, 0
-_0804E228: .4byte gUnknown_80F4448
-_0804E22C:
- adds r4, 0x1
-_0804E22E:
- cmp r4, 0x1
- bgt _0804E25A
- mov r1, r10
- adds r0, r1, r4
- mov r2, r9
- adds r1, r2, r5
- str r3, [sp, 0x3C]
- bl sub_804954C
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- ldr r3, [sp, 0x3C]
- cmp r0, 0x1
- bne _0804E22C
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- bne _0804E256
- movs r3, 0x1
-_0804E256:
- cmp r3, 0
- beq _0804E22C
-_0804E25A:
- cmp r3, 0
- bne _0804E26A
- adds r5, 0x1
- cmp r5, 0x1
- ble _0804E222
- adds r6, 0x1
- cmp r6, 0x7
- ble _0804E206
-_0804E26A:
- cmp r6, 0x8
- bne _0804E2F0
- movs r6, 0
- ldr r3, [sp, 0x1C]
- lsls r1, r3, 3
- ldr r0, _0804E2C4
- adds r4, r1, r0
-_0804E278:
- ldr r0, _0804E2C8
- lsls r1, r6, 2
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r0, r7, r0
- add r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r1, 0
- cmp r0, 0x1
- bne _0804E29C
- movs r1, 0x1
-_0804E29C:
- ldrb r0, [r4]
- cmp r0, r1
- bne _0804E2AA
- adds r4, 0x2
- adds r6, 0x2
- cmp r6, 0x7
- ble _0804E278
-_0804E2AA:
- cmp r6, 0x8
- bne _0804E2F0
- adds r0, r7, 0
- mov r1, r8
- bl sub_8049590
- ldrh r2, [r0]
- ldr r4, _0804E2CC
- adds r1, r4, 0
- ands r2, r1
- strh r2, [r0]
- b _0804E2F0
- .align 2, 0
-_0804E2C4: .4byte gUnknown_80F6DD5
-_0804E2C8: .4byte gUnknown_80F4448
-_0804E2CC: .4byte 0x0000fffc
-_0804E2D0:
- adds r7, r3
- add r8, r2
- movs r6, 0x1
- add r9, r6
- mov r0, r9
- cmp r0, 0x9
- bgt _0804E2F0
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r7, r0
- blt _0804E2F0
- movs r6, 0x4
- ldrsh r0, [r4, r6]
- cmp r7, r0
- bge _0804E2F0
- b _0804E1C8
-_0804E2F0:
- ldr r4, [sp, 0x24]
- cmp r4, 0x1
- bgt _0804E2F8
- b _0804E120
-_0804E2F8:
- ldr r1, [sp, 0x30]
- ldr r0, [sp, 0x10]
- cmp r1, r0
- bge _0804E302
- b _0804E11A
-_0804E302:
- ldr r2, [sp, 0x2C]
- ldr r1, [sp, 0x8]
- cmp r2, r1
- bge _0804E30C
- b _0804E07A
-_0804E30C:
- ldr r2, [sp, 0x28]
- str r2, [sp, 0xC]
- ldr r3, [sp, 0x4]
- cmp r2, r3
- bge _0804E318
- b _0804E058
-_0804E318:
- 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_804E03C
-
- thumb_func_start sub_804E328
-sub_804E328:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- ldr r0, [sp, 0x28]
- lsls r0, 24
- mov r10, r5
- mov r9, r4
- ldr r1, [sp, 0x2C]
- mov r8, r1
- ldr r7, [sp, 0x30]
- cmp r0, 0
- bne _0804E350
- b _0804E470
-_0804E350:
- movs r6, 0
-_0804E352:
- cmp r4, r7
- beq _0804E3A8
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- ble _0804E360
- b _0804E57E
-_0804E360:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E390
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E38C
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E39C
- .align 2, 0
-_0804E38C: .4byte 0x0000fffc
-_0804E390:
- cmp r5, r10
- beq _0804E396
- b _0804E57E
-_0804E396:
- cmp r4, r9
- beq _0804E39C
- b _0804E57E
-_0804E39C:
- cmp r4, r7
- bge _0804E3A4
- adds r4, 0x1
- b _0804E352
-_0804E3A4:
- subs r4, 0x1
- b _0804E352
-_0804E3A8:
- movs r6, 0
- ldr r0, [sp]
- cmp r5, r0
- beq _0804E40A
- movs r7, 0
-_0804E3B2:
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- ble _0804E3BC
- b _0804E57E
-_0804E3BC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E3EC
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E3E8
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E3F8
- .align 2, 0
-_0804E3E8: .4byte 0x0000fffc
-_0804E3EC:
- cmp r5, r10
- beq _0804E3F2
- b _0804E57E
-_0804E3F2:
- cmp r4, r9
- beq _0804E3F8
- b _0804E57E
-_0804E3F8:
- ldr r0, [sp]
- cmp r5, r0
- bge _0804E402
- adds r5, 0x1
- b _0804E404
-_0804E402:
- subs r5, 0x1
-_0804E404:
- ldr r1, [sp]
- cmp r5, r1
- bne _0804E3B2
-_0804E40A:
- movs r6, 0
- ldr r3, [sp, 0x4]
- cmp r4, r3
- bne _0804E414
- b _0804E57E
-_0804E414:
- movs r7, 0
-_0804E416:
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- ble _0804E420
- b _0804E57E
-_0804E420:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E450
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E44C
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E45C
- .align 2, 0
-_0804E44C: .4byte 0x0000fffc
-_0804E450:
- cmp r5, r10
- beq _0804E456
- b _0804E57E
-_0804E456:
- cmp r4, r9
- beq _0804E45C
- b _0804E57E
-_0804E45C:
- ldr r0, [sp, 0x4]
- cmp r4, r0
- bge _0804E466
- adds r4, 0x1
- b _0804E468
-_0804E466:
- subs r4, 0x1
-_0804E468:
- ldr r1, [sp, 0x4]
- cmp r4, r1
- bne _0804E416
- b _0804E57E
-_0804E470:
- movs r6, 0
- cmp r5, r8
- beq _0804E4C6
- movs r7, 0
-_0804E478:
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- ble _0804E482
- b _0804E57E
-_0804E482:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E4B0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E4AC
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E4B8
- .align 2, 0
-_0804E4AC: .4byte 0x0000fffc
-_0804E4B0:
- cmp r5, r10
- bne _0804E57E
- cmp r4, r9
- bne _0804E57E
-_0804E4B8:
- cmp r5, r8
- bge _0804E4C0
- adds r5, 0x1
- b _0804E4C2
-_0804E4C0:
- subs r5, 0x1
-_0804E4C2:
- cmp r5, r8
- bne _0804E478
-_0804E4C6:
- movs r6, 0
- ldr r0, [sp, 0x4]
- cmp r4, r0
- beq _0804E522
- movs r7, 0
-_0804E4D0:
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- bgt _0804E57E
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E508
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E504
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E510
- .align 2, 0
-_0804E504: .4byte 0x0000fffc
-_0804E508:
- cmp r5, r10
- bne _0804E57E
- cmp r4, r9
- bne _0804E57E
-_0804E510:
- ldr r0, [sp, 0x4]
- cmp r4, r0
- bge _0804E51A
- adds r4, 0x1
- b _0804E51C
-_0804E51A:
- subs r4, 0x1
-_0804E51C:
- ldr r1, [sp, 0x4]
- cmp r4, r1
- bne _0804E4D0
-_0804E522:
- movs r6, 0
- ldr r3, [sp]
- cmp r5, r3
- beq _0804E57E
- movs r7, 0
-_0804E52C:
- adds r0, r6, 0
- adds r6, 0x1
- cmp r0, 0x37
- bgt _0804E57E
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804E564
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E560
- adds r1, r3, 0
- ands r2, r1
- movs r1, 0x1
- orrs r2, r1
- strh r2, [r0]
- b _0804E56C
- .align 2, 0
-_0804E560: .4byte 0x0000fffc
-_0804E564:
- cmp r5, r10
- bne _0804E57E
- cmp r4, r9
- bne _0804E57E
-_0804E56C:
- ldr r0, [sp]
- cmp r5, r0
- bge _0804E576
- adds r5, 0x1
- b _0804E578
-_0804E576:
- subs r5, 0x1
-_0804E578:
- ldr r1, [sp]
- cmp r5, r1
- bne _0804E52C
-_0804E57E:
- 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_804E328
-
- thumb_func_start sub_804E590
-sub_804E590:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x40
- str r0, [sp, 0xC]
- str r1, [sp, 0x10]
- str r2, [sp, 0x14]
- str r3, [sp, 0x18]
- movs r0, 0
- str r0, [sp, 0x1C]
- cmp r0, r1
- blt _0804E5AE
- b _0804E8AA
-_0804E5AE:
- movs r1, 0x1
- mov r10, r1
-_0804E5B2:
- movs r2, 0
- str r2, [sp, 0x20]
- ldr r3, [sp, 0x1C]
- adds r3, 0x1
- str r3, [sp, 0x2C]
- ldr r4, [sp, 0x14]
- cmp r2, r4
- blt _0804E5C4
- b _0804E89E
-_0804E5C4:
- ldr r5, [sp, 0x1C]
- lsls r5, 4
- ldr r6, [sp, 0x1C]
- subs r1, r5, r6
- lsls r1, 5
- ldr r2, [sp, 0xC]
- movs r3, 0xF0
- lsls r3, 1
- adds r0, r2, r3
- adds r0, r1
- mov r8, r0
- adds r6, r1, r2
- ldr r4, _0804E6A4
- adds r0, r2, r4
- adds r7, r1, r0
- adds r0, r2, 0
- adds r0, 0x20
- adds r0, r1
- mov r9, r0
- ldr r5, [sp, 0x60]
- str r5, [sp, 0x34]
- adds r0, r2, 0
- subs r0, 0x20
- adds r1, r0
- str r1, [sp, 0x38]
- movs r0, 0
- str r0, [sp, 0x3C]
- ldr r1, [sp, 0x1C]
- lsls r0, r1, 2
- ldr r2, [sp, 0x18]
- adds r0, r2
- str r0, [sp, 0x28]
-_0804E604:
- ldr r3, [sp, 0x1C]
- lsls r0, r3, 4
- subs r0, r3
- lsls r0, 5
- ldr r4, [sp, 0xC]
- adds r0, r4
- ldr r5, [sp, 0x3C]
- adds r4, r5, r0
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- beq _0804E61C
- b _0804E874
-_0804E61C:
- ldrb r0, [r4, 0x11]
- cmp r0, 0
- beq _0804E624
- b _0804E874
-_0804E624:
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0804E62C
- b _0804E874
-_0804E62C:
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- bne _0804E634
- b _0804E848
-_0804E634:
- ldrb r0, [r4, 0x9]
- cmp r0, 0
- beq _0804E63C
- b _0804E848
-_0804E63C:
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- subs r1, 0x1
- bl sub_808411C
- str r0, [sp, 0x24]
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- adds r0, 0x1
- movs r5, 0x6
- ldrsh r1, [r4, r5]
- subs r1, 0x1
- bl sub_808411C
- adds r5, r0, 0
- ldr r0, [sp, 0x20]
- cmp r0, 0
- ble _0804E6DC
- subs r4, 0x20
- ldrb r0, [r4, 0x8]
- cmp r0, 0
- bne _0804E6DC
- ldrb r0, [r4, 0x12]
- cmp r0, 0
- bne _0804E6DC
- ldrb r0, [r4, 0xB]
- cmp r0, 0
- beq _0804E6DC
- ldrb r0, [r4, 0xA]
- cmp r0, 0
- beq _0804E6A8
- movs r1, 0
- ldrsh r0, [r4, r1]
- adds r0, 0x1
- movs r2, 0x4
- ldrsh r1, [r4, r2]
- subs r1, 0x1
- bl sub_808411C
- adds r5, r0, 0
- movs r3, 0x2
- ldrsh r0, [r4, r3]
- adds r0, 0x1
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- subs r1, 0x1
- bl sub_808411C
- b _0804E6AC
- .align 2, 0
-_0804E6A4: .4byte 0xfffffe20
-_0804E6A8:
- movs r3, 0
- ldrsh r5, [r4, r3]
-_0804E6AC:
- movs r4, 0x2
- ldrsh r1, [r6, r4]
- ldr r0, [sp, 0x38]
- movs r2, 0x6
- ldrsh r3, [r0, r2]
- subs r3, 0x1
- mov r4, r10
- str r4, [sp]
- ldr r2, [sp, 0x28]
- ldr r0, [r2]
- str r0, [sp, 0x4]
- ldr r4, [sp, 0x34]
- ldr r0, [r4]
- str r0, [sp, 0x8]
- ldr r0, [sp, 0x24]
- adds r2, r5, 0
- bl sub_804E328
- mov r5, r10
- strb r5, [r6, 0xB]
- strb r5, [r6, 0x13]
- ldr r0, [sp, 0x38]
- strb r5, [r0, 0x14]
- b _0804E874
-_0804E6DC:
- ldr r0, [sp, 0x14]
- subs r0, 0x1
- ldr r1, [sp, 0x20]
- cmp r1, r0
- bge _0804E758
- mov r2, r9
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804E758
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- bne _0804E758
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0804E758
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804E724
- movs r3, 0x20
- ldrsh r0, [r6, r3]
- adds r0, 0x1
- movs r4, 0x24
- ldrsh r1, [r6, r4]
- subs r1, 0x1
- bl sub_808411C
- adds r5, r0, 0
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- adds r0, 0x1
- movs r2, 0x26
- ldrsh r1, [r6, r2]
- subs r1, 0x1
- bl sub_808411C
- b _0804E728
-_0804E724:
- movs r3, 0x20
- ldrsh r5, [r6, r3]
-_0804E728:
- movs r4, 0x6
- ldrsh r1, [r6, r4]
- subs r1, 0x1
- movs r0, 0x22
- ldrsh r3, [r6, r0]
- mov r2, r10
- str r2, [sp]
- ldr r4, [sp, 0x28]
- ldr r0, [r4]
- str r0, [sp, 0x4]
- ldr r2, [sp, 0x34]
- ldr r0, [r2, 0x4]
- subs r0, 0x1
- str r0, [sp, 0x8]
- ldr r0, [sp, 0x24]
- adds r2, r5, 0
- bl sub_804E328
- mov r3, r10
- strb r3, [r6, 0xB]
- strb r3, [r6, 0x14]
- mov r4, r9
- strb r3, [r4, 0x13]
- b _0804E874
-_0804E758:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- ble _0804E7C8
- ldrb r0, [r7, 0x8]
- cmp r0, 0
- bne _0804E7C8
- ldrb r0, [r7, 0x12]
- cmp r0, 0
- bne _0804E7C8
- ldrb r0, [r7, 0xB]
- cmp r0, 0
- beq _0804E7C8
- ldrb r0, [r7, 0xA]
- cmp r0, 0
- beq _0804E79A
- movs r1, 0
- ldrsh r0, [r7, r1]
- adds r0, 0x1
- movs r2, 0x4
- ldrsh r1, [r7, r2]
- subs r1, 0x1
- bl sub_808411C
- movs r3, 0x2
- ldrsh r0, [r7, r3]
- adds r0, 0x1
- movs r4, 0x6
- ldrsh r1, [r7, r4]
- subs r1, 0x1
- bl sub_808411C
- adds r3, r0, 0
- b _0804E79E
-_0804E79A:
- movs r0, 0x2
- ldrsh r3, [r7, r0]
-_0804E79E:
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r4, 0
- ldrsh r2, [r7, r4]
- subs r2, 0x1
- movs r1, 0
- str r1, [sp]
- ldr r4, [sp, 0x28]
- ldr r1, [r4]
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x34]
- ldr r1, [r4]
- str r1, [sp, 0x8]
- adds r1, r5, 0
- bl sub_804E328
- mov r5, r10
- strb r5, [r6, 0xB]
- strb r5, [r6, 0x15]
- strb r5, [r7, 0x16]
- b _0804E874
-_0804E7C8:
- ldr r0, [sp, 0x10]
- subs r0, 0x1
- ldr r1, [sp, 0x1C]
- cmp r1, r0
- bge _0804E874
- mov r2, r8
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804E874
- ldrb r0, [r2, 0x12]
- cmp r0, 0
- bne _0804E874
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0804E874
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804E812
- movs r3, 0
- ldrsh r0, [r2, r3]
- adds r0, 0x1
- movs r4, 0x4
- ldrsh r1, [r2, r4]
- subs r1, 0x1
- bl sub_808411C
- mov r1, r8
- movs r2, 0x2
- ldrsh r0, [r1, r2]
- adds r0, 0x1
- movs r3, 0x6
- ldrsh r1, [r1, r3]
- subs r1, 0x1
- bl sub_808411C
- adds r3, r0, 0
- b _0804E818
-_0804E812:
- mov r4, r8
- movs r0, 0x2
- ldrsh r3, [r4, r0]
-_0804E818:
- movs r1, 0x4
- ldrsh r0, [r6, r1]
- subs r0, 0x1
- mov r4, r8
- movs r1, 0
- ldrsh r2, [r4, r1]
- movs r1, 0
- str r1, [sp]
- ldr r4, [sp, 0x28]
- ldr r1, [r4, 0x4]
- subs r1, 0x1
- str r1, [sp, 0x4]
- ldr r4, [sp, 0x34]
- ldr r1, [r4]
- str r1, [sp, 0x8]
- adds r1, r5, 0
- bl sub_804E328
- mov r5, r10
- strb r5, [r6, 0xB]
- strb r5, [r6, 0x16]
- mov r0, r8
- strb r5, [r0, 0x15]
- b _0804E874
-_0804E848:
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, _0804E99C
- adds r2, r3, 0
- ands r1, r2
- strh r1, [r0]
- ldrh r1, [r0, 0x4]
- ldr r4, _0804E9A0
- adds r2, r4, 0
- ands r1, r2
- ldr r5, _0804E9A4
- adds r2, r5, 0
- ands r1, r2
- subs r3, 0x1
- adds r2, r3, 0
- ands r1, r2
- strh r1, [r0, 0x4]
-_0804E874:
- movs r4, 0x20
- add r8, r4
- adds r6, 0x20
- adds r7, 0x20
- add r9, r4
- ldr r5, [sp, 0x34]
- adds r5, 0x4
- str r5, [sp, 0x34]
- ldr r0, [sp, 0x38]
- adds r0, 0x20
- str r0, [sp, 0x38]
- ldr r1, [sp, 0x3C]
- adds r1, 0x20
- str r1, [sp, 0x3C]
- ldr r2, [sp, 0x20]
- adds r2, 0x1
- str r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- cmp r2, r3
- bge _0804E89E
- b _0804E604
-_0804E89E:
- ldr r4, [sp, 0x2C]
- str r4, [sp, 0x1C]
- ldr r5, [sp, 0x10]
- cmp r4, r5
- bge _0804E8AA
- b _0804E5B2
-_0804E8AA:
- movs r6, 0
- str r6, [sp, 0x1C]
- ldr r0, [sp, 0x10]
- cmp r6, r0
- bge _0804E98A
-_0804E8B4:
- movs r1, 0
- str r1, [sp, 0x20]
- ldr r2, [sp, 0x1C]
- adds r2, 0x1
- str r2, [sp, 0x2C]
- ldr r3, [sp, 0x14]
- cmp r1, r3
- bge _0804E980
- ldr r4, [sp, 0x1C]
- lsls r4, 4
- mov r9, r4
-_0804E8CA:
- ldr r5, [sp, 0x20]
- lsls r2, r5, 5
- ldr r6, [sp, 0x1C]
- lsls r3, r6, 4
- subs r0, r3, r6
- lsls r0, 5
- ldr r1, [sp, 0xC]
- adds r4, r0, r1
- adds r1, r2, r4
- ldrb r0, [r1, 0x8]
- mov r8, r2
- adds r5, 0x1
- str r5, [sp, 0x30]
- cmp r0, 0
- bne _0804E976
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- bne _0804E976
- ldrb r0, [r1, 0xB]
- cmp r0, 0
- bne _0804E976
- ldrb r0, [r1, 0xF]
- cmp r0, 0
- bne _0804E976
- movs r6, 0
- ldrsh r5, [r1, r6]
- movs r6, 0x4
- ldrsh r0, [r1, r6]
- cmp r5, r0
- bge _0804E976
- mov r10, r4
-_0804E908:
- ldr r1, [sp, 0x1C]
- subs r0, r3, r1
- lsls r0, 5
- ldr r3, [sp, 0xC]
- adds r0, r3
- adds r0, r2, r0
- movs r6, 0x2
- ldrsh r4, [r0, r6]
- movs r1, 0x6
- ldrsh r0, [r0, r1]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _0804E95C
- mov r6, r8
- add r6, r10
-_0804E926:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- ldr r3, _0804E99C
- adds r1, r3, 0
- ands r2, r1
- strh r2, [r0]
- ldrh r2, [r0, 0x4]
- adds r3, 0x1
- adds r1, r3, 0
- ands r2, r1
- adds r3, 0x1
- adds r1, r3, 0
- ands r2, r1
- subs r3, 0x3
- adds r1, r3, 0
- ands r2, r1
- strh r2, [r0, 0x4]
- movs r1, 0xFF
- strb r1, [r0, 0x9]
- adds r4, 0x1
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r4, r0
- blt _0804E926
-_0804E95C:
- adds r5, r7, 0
- mov r2, r8
- mov r3, r9
- ldr r4, [sp, 0x1C]
- subs r0, r3, r4
- lsls r0, 5
- ldr r6, [sp, 0xC]
- adds r0, r6
- adds r0, r2, r0
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _0804E908
-_0804E976:
- ldr r2, [sp, 0x30]
- str r2, [sp, 0x20]
- ldr r3, [sp, 0x14]
- cmp r2, r3
- blt _0804E8CA
-_0804E980:
- ldr r4, [sp, 0x2C]
- str r4, [sp, 0x1C]
- ldr r5, [sp, 0x10]
- cmp r4, r5
- blt _0804E8B4
-_0804E98A:
- add sp, 0x40
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E99C: .4byte 0x0000fffc
-_0804E9A0: .4byte 0x0000fffe
-_0804E9A4: .4byte 0x0000fffd
- thumb_func_end sub_804E590
-
- thumb_func_start sub_804E9A8
-sub_804E9A8:
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 24
- lsls r2, 24
- lsrs r2, 24
- ldrh r0, [r4]
- ldr r5, _0804E9D8
- adds r3, r5, 0
- ands r3, r0
- strh r3, [r4]
- cmp r1, 0
- beq _0804E9D0
- ldrb r0, [r4, 0x9]
- cmp r0, r2
- bne _0804E9D0
- adds r0, r3, 0
- ands r0, r5
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r4]
-_0804E9D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0804E9D8: .4byte 0x0000fffc
- thumb_func_end sub_804E9A8
-
- thumb_func_start sub_804E9DC
-sub_804E9DC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- movs r5, 0
- movs r0, 0x3
- mov r8, r0
- movs r7, 0x8
- ldr r3, _0804EAF0
- mov r9, r3
-_0804E9F2:
- movs r4, 0
- adds r6, r5, 0x1
- mov r10, r6
-_0804E9F8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- adds r6, r4, 0x1
- cmp r0, 0x1
- beq _0804EA0E
- b _0804EB0E
-_0804EA0E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- cmp r0, 0xFF
- bne _0804EAF4
- cmp r5, 0
- ble _0804EA4E
- subs r0, r5, 0x1
- adds r1, r4, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _0804EA4E
- ldrh r0, [r2]
- adds r1, r0, 0
- orrs r1, r7
- movs r3, 0
- strh r1, [r2]
- adds r0, r1, 0
- mov r6, r8
- ands r0, r6
- cmp r0, 0x2
- bne _0804EA4E
- mov r0, r9
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strh r1, [r2]
-_0804EA4E:
- cmp r4, 0
- ble _0804EA82
- subs r1, r4, 0x1
- adds r0, r5, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _0804EA82
- ldrh r0, [r2]
- adds r1, r0, 0
- orrs r1, r7
- movs r3, 0
- orrs r1, r7
- strh r1, [r2]
- adds r0, r1, 0
- mov r6, r8
- ands r0, r6
- cmp r0, 0x2
- bne _0804EA82
- mov r0, r9
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strh r1, [r2]
-_0804EA82:
- adds r6, r4, 0x1
- cmp r4, 0x1E
- bgt _0804EABA
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _0804EABA
- ldrh r0, [r2]
- adds r1, r0, 0
- orrs r1, r7
- movs r3, 0
- mov r12, r3
- orrs r1, r7
- strh r1, [r2]
- adds r0, r1, 0
- mov r3, r8
- ands r0, r3
- cmp r0, 0x2
- bne _0804EABA
- mov r0, r9
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strh r1, [r2]
-_0804EABA:
- cmp r5, 0x36
- bgt _0804EB0E
- mov r0, r10
- adds r1, r4, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _0804EB0E
- ldrh r0, [r2]
- adds r1, r0, 0
- orrs r1, r7
- movs r3, 0
- orrs r1, r7
- strh r1, [r2]
- adds r0, r1, 0
- mov r4, r8
- ands r0, r4
- cmp r0, 0x2
- bne _0804EB0E
- mov r0, r9
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strh r1, [r2]
- b _0804EB0E
- .align 2, 0
-_0804EAF0: .4byte 0x0000fffc
-_0804EAF4:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- cmp r0, 0xFE
- bne _0804EB0E
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0xFF
- strb r1, [r0, 0x9]
-_0804EB0E:
- adds r4, r6, 0
- cmp r4, 0x1F
- bgt _0804EB16
- b _0804E9F8
-_0804EB16:
- mov r5, r10
- cmp r5, 0x37
- bgt _0804EB1E
- b _0804E9F2
-_0804EB1E:
- bl sub_804EB30
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804E9DC
-
- thumb_func_start sub_804EB30
-sub_804EB30:
- push {r4-r7,lr}
- ldr r0, _0804EBB4
- ldr r6, [r0]
- movs r2, 0
- movs r1, 0x1F
- ldr r3, _0804EBB8
- adds r0, r6, r3
-_0804EB3E:
- strh r2, [r0]
- subs r0, 0x2
- subs r1, 0x1
- cmp r1, 0
- bge _0804EB3E
- movs r5, 0
-_0804EB4A:
- movs r4, 0
- adds r7, r5, 0x1
-_0804EB4E:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0804EBA2
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrb r3, [r0, 0x9]
- cmp r3, 0x1F
- bhi _0804EBA2
- lsls r0, r3, 1
- ldr r2, _0804EBBC
- adds r1, r6, r2
- adds r2, r1, r0
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1F
- bgt _0804EBA2
- lsls r0, 2
- lsls r1, r3, 7
- adds r0, r1
- adds r0, r6, r0
- ldr r3, _0804EBC0
- adds r0, r3
- strh r5, [r0]
- movs r3, 0
- ldrsh r0, [r2, r3]
- lsls r0, 2
- adds r0, r1
- adds r0, r6, r0
- ldr r1, _0804EBC4
- adds r0, r1
- strh r4, [r0]
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
-_0804EBA2:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0804EB4E
- adds r5, r7, 0
- cmp r5, 0x37
- ble _0804EB4A
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804EBB4: .4byte gUnknown_203B418
-_0804EBB8: .4byte 0x00010882
-_0804EBBC: .4byte 0x00010844
-_0804EBC0: .4byte 0x00010884
-_0804EBC4: .4byte 0x00010886
- thumb_func_end sub_804EB30
-
- thumb_func_start sub_804EBC8
-sub_804EBC8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x58
- str r0, [sp, 0x40]
- str r1, [sp, 0x44]
- mov r10, r2
- adds r4, r3, 0
- ldr r0, _0804EE90
- ldr r0, [r0]
- mov r8, r0
- ldr r1, _0804EE94
- ldr r0, _0804EE98
- strh r0, [r1]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x2]
- ldr r0, _0804EE9C
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804EBF8
- b _0804EED4
-_0804EBF8:
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0804EC06
- b _0804EED4
-_0804EC06:
- cmp r4, 0
- bne _0804EC0C
- b _0804EED4
-_0804EC0C:
- movs r0, 0x64
- bl sub_8084100
- cmp r4, r0
- bgt _0804EC18
- b _0804EED4
-_0804EC18:
- movs r5, 0
- add r7, sp, 0x20
- adds r1, r7, 0
- mov r0, sp
-_0804EC20:
- strh r5, [r0]
- strh r5, [r1]
- adds r1, 0x2
- adds r0, 0x2
- adds r5, 0x1
- cmp r5, 0xE
- ble _0804EC20
- movs r5, 0xC7
-_0804EC30:
- movs r0, 0xF
- bl sub_8084100
- adds r4, r0, 0
- movs r0, 0xF
- bl sub_8084100
- lsls r4, 1
- mov r1, sp
- adds r2, r1, r4
- movs r4, 0
- ldrsh r3, [r2, r4]
- lsls r0, 1
- adds r1, r0
- ldrh r0, [r1]
- strh r0, [r2]
- strh r3, [r1]
- subs r5, 0x1
- cmp r5, 0
- bge _0804EC30
- adds r6, r7, 0
- movs r5, 0xC7
-_0804EC5C:
- movs r0, 0xF
- bl sub_8084100
- adds r4, r0, 0
- movs r0, 0xF
- bl sub_8084100
- lsls r4, 1
- adds r4, r6, r4
- movs r1, 0
- ldrsh r2, [r4, r1]
- lsls r0, 1
- adds r0, r6, r0
- ldrh r1, [r0]
- strh r1, [r4]
- strh r2, [r0]
- subs r5, 0x1
- cmp r5, 0
- bge _0804EC5C
- movs r5, 0
-_0804EC84:
- lsls r0, r5, 1
- add r0, sp
- movs r3, 0
- ldrsh r2, [r0, r3]
- mov r9, r2
- ldr r4, [sp, 0x44]
- cmp r9, r4
- blt _0804EC96
- b _0804EECC
-_0804EC96:
- movs r4, 0
-_0804EC98:
- lsls r0, r4, 1
- adds r0, r7, r0
- movs r2, 0
- ldrsh r1, [r0, r2]
- cmp r1, r10
- blt _0804ECA6
- b _0804EEC4
-_0804ECA6:
- lsls r1, 5
- mov r3, r9
- lsls r2, r3, 4
- subs r0, r2, r3
- lsls r0, 5
- ldr r3, [sp, 0x40]
- adds r0, r3
- adds r3, r1, r0
- ldrb r0, [r3, 0x8]
- str r1, [sp, 0x4C]
- str r2, [sp, 0x48]
- cmp r0, 0
- beq _0804ECC2
- b _0804EEC4
-_0804ECC2:
- ldrb r0, [r3, 0x11]
- cmp r0, 0
- beq _0804ECCA
- b _0804EEC4
-_0804ECCA:
- ldrb r0, [r3, 0x12]
- cmp r0, 0
- beq _0804ECD2
- b _0804EEC4
-_0804ECD2:
- ldrb r0, [r3, 0xB]
- cmp r0, 0
- bne _0804ECDA
- b _0804EEC4
-_0804ECDA:
- ldrb r0, [r3, 0xA]
- cmp r0, 0
- bne _0804ECE2
- b _0804EEC4
-_0804ECE2:
- ldrb r0, [r3, 0x9]
- cmp r0, 0
- beq _0804ECEA
- b _0804EEC4
-_0804ECEA:
- ldrb r0, [r3, 0x10]
- cmp r0, 0
- beq _0804ECF2
- b _0804EEC4
-_0804ECF2:
- ldrb r0, [r3, 0x1D]
- cmp r0, 0
- beq _0804ECFA
- b _0804EEC4
-_0804ECFA:
- movs r0, 0x4
- ldrsh r1, [r3, r0]
- movs r2, 0
- ldrsh r0, [r3, r2]
- subs r1, r0
- cmp r1, 0
- bge _0804ED0A
- negs r1, r1
-_0804ED0A:
- cmp r1, 0x4
- bgt _0804ED10
- b _0804EEC4
-_0804ED10:
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- subs r1, r0
- cmp r1, 0
- bge _0804ED20
- negs r1, r1
-_0804ED20:
- cmp r1, 0x3
- bgt _0804ED26
- b _0804EEC4
-_0804ED26:
- ldr r1, _0804EEA0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r3, 0xC]
- ldr r2, _0804EEA4
- movs r4, 0
- ldrsh r0, [r3, r4]
- adds r0, 0x1
- str r0, [r2]
- movs r7, 0x4
- ldrsh r0, [r3, r7]
- subs r0, 0x1
- str r0, [r2, 0x8]
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- adds r1, 0x1
- str r1, [r2, 0x4]
- movs r4, 0x6
- ldrsh r3, [r3, r4]
- subs r0, r3, 0x1
- str r0, [r2, 0xC]
- subs r0, r1
- mov r10, r2
- cmp r0, 0x2
- bgt _0804ED5C
- str r3, [r2, 0xC]
-_0804ED5C:
- ldr r0, _0804EEA8
- add r0, r8
- ldr r1, _0804EEAC
- str r1, [r0]
- ldr r0, _0804EEB0
- add r0, r8
- str r1, [r0]
- ldr r0, _0804EEB4
- add r0, r8
- ldr r1, _0804EEB8
- str r1, [r0]
- ldr r0, _0804EEBC
- add r0, r8
- str r1, [r0]
- mov r7, r10
- ldr r5, [r7]
- ldr r0, [r7, 0x8]
- cmp r5, r0
- bge _0804EDFA
- mov r3, r10
-_0804ED84:
- ldr r4, [r3, 0x4]
- ldr r0, [r3, 0xC]
- adds r1, r5, 0x1
- str r1, [sp, 0x54]
- cmp r4, r0
- bge _0804EDF0
- ldr r6, _0804EEA8
- add r6, r8
- ldr r2, _0804EEA4
- mov r10, r2
-_0804ED98:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x50]
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x20
- orrs r1, r2
- strh r1, [r0]
- ldrh r2, [r0, 0x4]
- ldr r7, _0804EEC0
- adds r1, r7, 0
- ands r2, r1
- adds r7, 0x7
- adds r1, r7, 0
- ands r2, r1
- strh r2, [r0, 0x4]
- ldr r0, [r6]
- ldr r3, [sp, 0x50]
- cmp r0, r5
- ble _0804EDC4
- str r5, [r6]
-_0804EDC4:
- ldr r1, _0804EEB0
- add r1, r8
- ldr r0, [r1]
- cmp r0, r4
- ble _0804EDD0
- str r4, [r1]
-_0804EDD0:
- ldr r1, _0804EEB4
- add r1, r8
- ldr r0, [r1]
- cmp r0, r5
- bge _0804EDDC
- str r5, [r1]
-_0804EDDC:
- ldr r1, _0804EEBC
- add r1, r8
- ldr r0, [r1]
- cmp r0, r4
- bge _0804EDE8
- str r4, [r1]
-_0804EDE8:
- adds r4, 0x1
- ldr r0, [r3, 0xC]
- cmp r4, r0
- blt _0804ED98
-_0804EDF0:
- ldr r5, [sp, 0x54]
- mov r1, r10
- ldr r0, [r1, 0x8]
- cmp r5, r0
- blt _0804ED84
-_0804EDFA:
- ldr r3, [sp, 0x4C]
- ldr r2, [sp, 0x48]
- mov r4, r9
- subs r0, r2, r4
- lsls r0, 5
- ldr r7, [sp, 0x40]
- adds r1, r0, r7
- adds r0, r3, r1
- movs r4, 0
- ldrsh r5, [r0, r4]
- movs r7, 0x4
- ldrsh r0, [r0, r7]
- cmp r5, r0
- bge _0804EE6C
- mov r8, r1
-_0804EE18:
- mov r1, r9
- subs r0, r2, r1
- lsls r0, 5
- ldr r2, [sp, 0x40]
- adds r0, r2
- adds r0, r3, r0
- movs r3, 0x2
- ldrsh r4, [r0, r3]
- movs r7, 0x6
- ldrsh r0, [r0, r7]
- adds r1, r5, 0x1
- str r1, [sp, 0x54]
- cmp r4, r0
- bge _0804EE52
- ldr r6, [sp, 0x4C]
- add r6, r8
-_0804EE38:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x10
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x1
- movs r2, 0x6
- ldrsh r0, [r6, r2]
- cmp r4, r0
- blt _0804EE38
-_0804EE52:
- ldr r5, [sp, 0x54]
- ldr r3, [sp, 0x4C]
- ldr r2, [sp, 0x48]
- mov r4, r9
- subs r0, r2, r4
- lsls r0, 5
- ldr r7, [sp, 0x40]
- adds r0, r7
- adds r0, r3, r0
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- cmp r5, r0
- blt _0804EE18
-_0804EE6C:
- ldr r2, _0804EEA4
- ldr r0, [r2]
- ldr r1, [r2, 0x8]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r5, r0, 1
- ldr r0, [r2, 0x4]
- ldr r1, [r2, 0xC]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r4, r0, 1
- ldr r0, _0804EE94
- strh r5, [r0]
- strh r4, [r0, 0x2]
- b _0804EED4
- .align 2, 0
-_0804EE90: .4byte gUnknown_203B418
-_0804EE94: .4byte gUnknown_202F1D8
-_0804EE98: .4byte 0x0000ffff
-_0804EE9C: .4byte gUnknown_202F1AB
-_0804EEA0: .4byte gUnknown_202F1AA
-_0804EEA4: .4byte gUnknown_202F1B8
-_0804EEA8: .4byte 0x0000e240
-_0804EEAC: .4byte 0x0000270f
-_0804EEB0: .4byte 0x0000e244
-_0804EEB4: .4byte 0x0000e248
-_0804EEB8: .4byte 0xffffd8f1
-_0804EEBC: .4byte 0x0000e24c
-_0804EEC0: .4byte 0x0000fff7
-_0804EEC4:
- adds r4, 0x1
- cmp r4, 0xE
- bgt _0804EECC
- b _0804EC98
-_0804EECC:
- adds r5, 0x1
- cmp r5, 0xE
- bgt _0804EED4
- b _0804EC84
-_0804EED4:
- add sp, 0x58
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804EBC8
-
- thumb_func_start sub_804EEE4
-sub_804EEE4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x108
- str r0, [sp, 0x100]
- mov r8, r1
- adds r7, r2, 0
- adds r4, r3, 0
- ldr r5, _0804F094
- ldr r0, [r5]
- str r0, [sp, 0x104]
- cmp r4, 0
- bne _0804EF04
- b _0804F0C0
-_0804EF04:
- movs r0, 0x64
- bl sub_8084100
- cmp r4, r0
- bgt _0804EF10
- b _0804F0C0
-_0804EF10:
- ldr r0, _0804F098
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804EF1A
- b _0804F0C0
-_0804EF1A:
- ldr r0, [r5]
- movs r1, 0xD1
- lsls r1, 3
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0
- beq _0804EF2C
- b _0804F0C0
-_0804EF2C:
- bl sub_8043D10
- lsls r0, 24
- cmp r0, 0
- beq _0804EF38
- b _0804F0C0
-_0804EF38:
- movs r6, 0
- movs r1, 0
- cmp r1, r8
- bge _0804EF94
-_0804EF40:
- adds r2, r1, 0x1
- cmp r7, 0
- ble _0804EF8E
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- ldr r1, [sp, 0x100]
- adds r1, 0x8
- adds r1, r0, r1
- adds r3, r7, 0
-_0804EF54:
- ldrb r0, [r1]
- cmp r0, 0
- bne _0804EF86
- ldrb r0, [r1, 0x9]
- cmp r0, 0
- bne _0804EF86
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _0804EF86
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _0804EF86
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _0804EF86
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _0804EF86
- ldrb r0, [r1, 0x8]
- cmp r0, 0
- bne _0804EF86
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- bne _0804EF86
- adds r6, 0x1
-_0804EF86:
- adds r1, 0x20
- subs r3, 0x1
- cmp r3, 0
- bne _0804EF54
-_0804EF8E:
- adds r1, r2, 0
- cmp r1, r8
- blt _0804EF40
-_0804EF94:
- cmp r6, 0
- bne _0804EF9A
- b _0804F0C0
-_0804EF9A:
- movs r1, 0
- mov r0, sp
- adds r0, 0xFF
-_0804EFA0:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _0804EFA0
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1]
- movs r5, 0x3F
-_0804EFB0:
- adds r0, r6, 0
- bl sub_8084100
- adds r4, r0, 0
- adds r0, r6, 0
- bl sub_8084100
- mov r3, sp
- adds r2, r3, r4
- ldrb r3, [r2]
- mov r4, sp
- adds r1, r4, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- subs r5, 0x1
- cmp r5, 0
- bge _0804EFB0
- movs r5, 0
- movs r1, 0
- cmp r1, r8
- bge _0804F0C0
- ldr r6, [sp, 0x100]
- mov r9, r6
- movs r4, 0
-_0804EFE2:
- movs r3, 0
- cmp r3, r7
- bge _0804F0B2
- mov r10, r3
- lsls r0, r4, 5
- ldr r6, [sp, 0x100]
- adds r2, r0, r6
-_0804EFF0:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804F0A6
- ldrb r0, [r2, 0x11]
- cmp r0, 0
- bne _0804F0A6
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0804F0A6
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804F0A6
- ldrb r0, [r2, 0xC]
- cmp r0, 0
- bne _0804F0A6
- ldrb r0, [r2, 0xF]
- cmp r0, 0
- bne _0804F0A6
- ldrb r0, [r2, 0x10]
- cmp r0, 0
- bne _0804F0A6
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- bne _0804F0A6
- mov r6, sp
- adds r0, r6, r5
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804F0A4
- ldr r1, _0804F09C
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r2, 0xE]
- movs r0, 0
- ldrsh r5, [r2, r0]
- movs r1, 0x4
- ldrsh r0, [r2, r1]
- cmp r5, r0
- bge _0804F0C0
- mov r2, r10
- add r2, r9
- mov r8, r2
-_0804F046:
- mov r1, r10
- add r1, r9
- movs r3, 0x2
- ldrsh r4, [r1, r3]
- movs r6, 0x6
- ldrsh r0, [r1, r6]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _0804F086
- adds r6, r1, 0
-_0804F05A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x40
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrb r1, [r0, 0x9]
- ldr r2, [sp, 0x104]
- ldr r3, _0804F0A0
- adds r0, r2, r3
- strb r1, [r0]
- adds r4, 0x1
- movs r1, 0x6
- ldrsh r0, [r6, r1]
- cmp r4, r0
- blt _0804F05A
-_0804F086:
- adds r5, r7, 0
- mov r2, r8
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- cmp r5, r0
- blt _0804F046
- b _0804F0C0
- .align 2, 0
-_0804F094: .4byte gUnknown_203B418
-_0804F098: .4byte gUnknown_202F1AA
-_0804F09C: .4byte gUnknown_202F1AB
-_0804F0A0: .4byte 0x00003a0c
-_0804F0A4:
- adds r5, 0x1
-_0804F0A6:
- movs r6, 0x20
- add r10, r6
- adds r2, 0x20
- adds r3, 0x1
- cmp r3, r7
- blt _0804EFF0
-_0804F0B2:
- movs r0, 0xF0
- lsls r0, 1
- add r9, r0
- adds r4, 0xF
- adds r1, 0x1
- cmp r1, r8
- blt _0804EFE2
-_0804F0C0:
- add sp, 0x108
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804EEE4
-
- thumb_func_start sub_804F0D0
-sub_804F0D0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x104
- str r0, [sp, 0x100]
- mov r10, r1
- mov r9, r2
- adds r4, r3, 0
- ldr r0, _0804F244
- ldr r5, [r0]
- cmp r4, 0
- bne _0804F0EE
- b _0804F266
-_0804F0EE:
- movs r0, 0x64
- bl sub_8084100
- cmp r4, r0
- bgt _0804F0FA
- b _0804F266
-_0804F0FA:
- ldr r1, _0804F248
- adds r0, r5, r1
- movs r3, 0
- ldrsh r0, [r0, r3]
- cmp r0, 0
- blt _0804F108
- b _0804F266
-_0804F108:
- movs r5, 0
- movs r6, 0
- cmp r6, r10
- bge _0804F184
-_0804F110:
- adds r7, r6, 0x1
- mov r4, r9
- cmp r4, 0
- ble _0804F17E
- lsls r0, r6, 4
- subs r0, r6
- lsls r0, 5
- ldr r6, [sp, 0x100]
- adds r2, r0, r6
-_0804F122:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804F176
- ldrb r0, [r2, 0x11]
- cmp r0, 0
- bne _0804F176
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0804F176
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804F176
- ldrb r0, [r2, 0xC]
- cmp r0, 0
- bne _0804F176
- ldrb r0, [r2, 0xF]
- cmp r0, 0
- bne _0804F176
- ldrb r0, [r2, 0xE]
- cmp r0, 0
- bne _0804F176
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- bne _0804F176
- movs r1, 0x4
- ldrsh r0, [r2, r1]
- movs r3, 0
- ldrsh r1, [r2, r3]
- subs r0, r1
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0804F176
- movs r6, 0x6
- ldrsh r0, [r2, r6]
- movs r6, 0x2
- ldrsh r1, [r2, r6]
- subs r0, r1
- ands r0, r3
- cmp r0, 0
- beq _0804F176
- adds r5, 0x1
-_0804F176:
- adds r2, 0x20
- subs r4, 0x1
- cmp r4, 0
- bne _0804F122
-_0804F17E:
- adds r6, r7, 0
- cmp r6, r10
- blt _0804F110
-_0804F184:
- cmp r5, 0
- beq _0804F266
- movs r1, 0
- mov r0, sp
- adds r0, 0xFF
-_0804F18E:
- strb r1, [r0]
- subs r0, 0x1
- cmp r0, sp
- bge _0804F18E
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1]
- movs r7, 0x3F
- mov r8, r7
-_0804F1A0:
- adds r0, r5, 0
- bl sub_8084100
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_8084100
- mov r1, sp
- adds r2, r1, r4
- ldrb r3, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- movs r3, 0x1
- negs r3, r3
- add r8, r3
- mov r4, r8
- cmp r4, 0
- bge _0804F1A0
- movs r6, 0
- mov r8, r6
- cmp r6, r10
- bge _0804F266
- ldr r7, [sp, 0x100]
- mov r12, r7
-_0804F1D4:
- movs r4, 0
- cmp r4, r9
- bge _0804F25A
- mov r2, r12
- mov r5, r12
-_0804F1DE:
- ldrb r0, [r2, 0x8]
- cmp r0, 0
- bne _0804F250
- ldrb r0, [r2, 0x11]
- cmp r0, 0
- bne _0804F250
- ldrb r0, [r2, 0xB]
- cmp r0, 0
- beq _0804F250
- ldrb r0, [r2, 0xA]
- cmp r0, 0
- beq _0804F250
- ldrb r0, [r2, 0xC]
- cmp r0, 0
- bne _0804F250
- ldrb r0, [r2, 0xF]
- cmp r0, 0
- bne _0804F250
- ldrb r0, [r2, 0xE]
- cmp r0, 0
- bne _0804F250
- ldrb r0, [r2, 0x9]
- cmp r0, 0
- bne _0804F250
- movs r1, 0x4
- ldrsh r0, [r2, r1]
- movs r3, 0
- ldrsh r1, [r2, r3]
- subs r0, r1
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0804F250
- movs r7, 0x6
- ldrsh r0, [r2, r7]
- movs r7, 0x2
- ldrsh r1, [r2, r7]
- subs r0, r1
- ands r0, r3
- cmp r0, 0
- beq _0804F250
- mov r0, sp
- add r0, r8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804F24C
- adds r0, r5, 0
- movs r1, 0
- bl sub_804F278
- b _0804F266
- .align 2, 0
-_0804F244: .4byte gUnknown_203B418
-_0804F248: .4byte 0x00003a16
-_0804F24C:
- movs r0, 0x1
- add r8, r0
-_0804F250:
- adds r2, 0x20
- adds r5, 0x20
- adds r4, 0x1
- cmp r4, r9
- blt _0804F1DE
-_0804F25A:
- movs r1, 0xF0
- lsls r1, 1
- add r12, r1
- adds r6, 0x1
- cmp r6, r10
- blt _0804F1D4
-_0804F266:
- add sp, 0x104
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804F0D0
-
- thumb_func_start sub_804F278
-sub_804F278:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- ldr r1, _0804F2B0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x1
- strb r0, [r4, 0x10]
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- mov r9, r0
- movs r5, 0
- ldrsh r0, [r4, r5]
- adds r6, r0, 0x1
- b _0804F2F0
- .align 2, 0
-_0804F2B0: .4byte gUnknown_202F1AC
-_0804F2B4:
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- subs r1, 0x1
- adds r0, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804F2EE
- movs r5, 0x2
- ldrsh r3, [r4, r5]
- subs r1, r3, 0x1
- movs r0, 0
- ldrsh r2, [r4, r0]
- movs r5, 0x4
- ldrsh r0, [r4, r5]
- str r0, [sp]
- movs r5, 0x6
- ldrsh r0, [r4, r5]
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- mov r5, r9
- str r5, [sp, 0xC]
- adds r0, r6, 0
- bl sub_804F494
-_0804F2EE:
- adds r6, 0x2
-_0804F2F0:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- subs r0, 0x1
- cmp r6, r0
- blt _0804F2B4
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r5, r0, 0x1
- movs r6, 0x6
- ldrsh r0, [r4, r6]
- b _0804F342
-_0804F306:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804F33C
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- movs r6, 0
- ldrsh r2, [r4, r6]
- movs r1, 0x2
- ldrsh r3, [r4, r1]
- str r0, [sp]
- movs r6, 0x6
- ldrsh r1, [r4, r6]
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- mov r6, r9
- str r6, [sp, 0xC]
- adds r1, r5, 0
- bl sub_804F494
-_0804F33C:
- adds r5, 0x2
- movs r1, 0x6
- ldrsh r0, [r4, r1]
-_0804F342:
- subs r0, 0x1
- cmp r5, r0
- blt _0804F306
- movs r2, 0
- ldrsh r0, [r4, r2]
- adds r6, r0, 0x1
- movs r5, 0x4
- ldrsh r0, [r4, r5]
- b _0804F392
-_0804F354:
- movs r0, 0x6
- ldrsh r1, [r4, r0]
- adds r0, r6, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804F38C
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- movs r5, 0
- ldrsh r2, [r4, r5]
- movs r0, 0x2
- ldrsh r3, [r4, r0]
- movs r5, 0x4
- ldrsh r0, [r4, r5]
- str r0, [sp]
- adds r0, r1, 0
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- mov r5, r9
- str r5, [sp, 0xC]
- adds r0, r6, 0
- bl sub_804F494
-_0804F38C:
- adds r6, 0x2
- movs r1, 0x4
- ldrsh r0, [r4, r1]
-_0804F392:
- subs r0, 0x1
- cmp r6, r0
- blt _0804F354
- movs r2, 0x2
- ldrsh r0, [r4, r2]
- adds r5, r0, 0x1
- movs r6, 0x6
- ldrsh r0, [r4, r6]
- b _0804F3E4
-_0804F3A4:
- movs r1, 0
- ldrsh r0, [r4, r1]
- subs r0, 0x1
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804F3DE
- movs r6, 0
- ldrsh r2, [r4, r6]
- subs r0, r2, 0x1
- movs r1, 0x2
- ldrsh r3, [r4, r1]
- movs r6, 0x4
- ldrsh r1, [r4, r6]
- str r1, [sp]
- movs r6, 0x6
- ldrsh r1, [r4, r6]
- str r1, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- mov r6, r9
- str r6, [sp, 0xC]
- adds r1, r5, 0
- bl sub_804F494
-_0804F3DE:
- adds r5, 0x2
- movs r1, 0x6
- ldrsh r0, [r4, r1]
-_0804F3E4:
- subs r0, 0x1
- cmp r5, r0
- blt _0804F3A4
- movs r2, 0
- ldrsh r0, [r4, r2]
- adds r6, r0, 0x3
- b _0804F478
-_0804F3F2:
- movs r1, 0x2
- ldrsh r0, [r4, r1]
- adds r5, r0, 0x3
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- subs r0, 0x3
- adds r1, r6, 0x2
- mov r10, r1
- cmp r5, r0
- bge _0804F476
- ldr r2, _0804F434
- adds r7, r2, 0
-_0804F40A:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0804F46A
- mov r0, r8
- cmp r0, 0
- beq _0804F438
- subs r0, r6, 0x1
- adds r1, r5, 0
- bl sub_8049590
- ldrh r1, [r0]
- ands r1, r7
- movs r2, 0x2
- orrs r1, r2
- b _0804F444
- .align 2, 0
-_0804F434: .4byte 0x0000fffc
-_0804F438:
- subs r0, r6, 0x1
- adds r1, r5, 0
- bl sub_8049590
- ldrh r1, [r0]
- ands r1, r7
-_0804F444:
- strh r1, [r0]
- movs r1, 0
- ldrsh r2, [r4, r1]
- movs r0, 0x2
- ldrsh r3, [r4, r0]
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- str r0, [sp]
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- str r0, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804F494
-_0804F46A:
- adds r5, 0x2
- movs r2, 0x6
- ldrsh r0, [r4, r2]
- subs r0, 0x3
- cmp r5, r0
- blt _0804F40A
-_0804F476:
- mov r6, r10
-_0804F478:
- movs r5, 0x4
- ldrsh r0, [r4, r5]
- subs r0, 0x3
- cmp r6, r0
- blt _0804F3F2
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804F278
-
- thumb_func_start sub_804F494
-sub_804F494:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- str r2, [sp]
- str r3, [sp, 0x4]
- ldr r0, [sp, 0x30]
- ldr r1, [sp, 0x34]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- mov r8, r1
- movs r0, 0x3
- mov r10, r0
-_0804F4BA:
- movs r0, 0x4
- bl sub_8084100
- adds r6, r0, 0
- movs r7, 0
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- mov r1, r9
- mov r3, r8
- lsrs r2, r3, 24
- bl sub_804E9A8
-_0804F4D6:
- adds r0, r6, 0
- mov r1, r10
- ands r0, r1
- cmp r0, 0x1
- beq _0804F4F6
- cmp r0, 0x1
- bgt _0804F4EA
- cmp r0, 0
- beq _0804F4F0
- b _0804F506
-_0804F4EA:
- cmp r0, 0x2
- beq _0804F4FE
- b _0804F506
-_0804F4F0:
- movs r0, 0x2
- movs r1, 0
- b _0804F50A
-_0804F4F6:
- movs r0, 0
- movs r1, 0x2
- negs r1, r1
- b _0804F50A
-_0804F4FE:
- movs r0, 0x2
- negs r0, r0
- movs r1, 0
- b _0804F50A
-_0804F506:
- movs r0, 0
- movs r1, 0x2
-_0804F50A:
- adds r0, r5, r0
- ldr r2, [sp]
- cmp r2, r0
- bgt _0804F534
- ldr r3, [sp, 0x28]
- cmp r3, r0
- ble _0804F534
- adds r1, r4, r1
- ldr r2, [sp, 0x4]
- cmp r2, r1
- bgt _0804F534
- ldr r3, [sp, 0x2C]
- cmp r3, r1
- ble _0804F534
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r10
- ands r0, r1
- cmp r0, 0x1
- beq _0804F53E
-_0804F534:
- adds r6, 0x1
- adds r7, 0x1
- cmp r7, 0x3
- bgt _0804F5B2
- b _0804F4D6
-_0804F53E:
- mov r0, r10
- ands r0, r6
- cmp r0, 0x1
- beq _0804F570
- cmp r0, 0x1
- bgt _0804F550
- cmp r0, 0
- beq _0804F55A
- b _0804F4BA
-_0804F550:
- cmp r0, 0x2
- beq _0804F586
- cmp r0, 0x3
- beq _0804F59C
- b _0804F4BA
-_0804F55A:
- adds r0, r5, 0x1
- adds r1, r4, 0
- bl sub_8049590
- mov r1, r9
- mov r3, r8
- lsrs r2, r3, 24
- bl sub_804E9A8
- adds r5, 0x2
- b _0804F4BA
-_0804F570:
- subs r1, r4, 0x1
- adds r0, r5, 0
- bl sub_8049590
- mov r1, r9
- mov r3, r8
- lsrs r2, r3, 24
- bl sub_804E9A8
- subs r4, 0x2
- b _0804F4BA
-_0804F586:
- subs r0, r5, 0x1
- adds r1, r4, 0
- bl sub_8049590
- mov r1, r9
- mov r3, r8
- lsrs r2, r3, 24
- bl sub_804E9A8
- subs r5, 0x2
- b _0804F4BA
-_0804F59C:
- adds r1, r4, 0x1
- adds r0, r5, 0
- bl sub_8049590
- mov r1, r9
- mov r3, r8
- lsrs r2, r3, 24
- bl sub_804E9A8
- adds r4, 0x2
- b _0804F4BA
-_0804F5B2:
- 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_804F494
-
- thumb_func_start sub_804F5C4
-sub_804F5C4:
- ldrh r3, [r0]
- ldr r2, _0804F5D4
- ands r2, r3
- movs r3, 0x2
- orrs r2, r3
- orrs r2, r1
- strh r2, [r0]
- bx lr
- .align 2, 0
-_0804F5D4: .4byte 0x0000fffc
- thumb_func_end sub_804F5C4
-
- thumb_func_start sub_804F5D8
-sub_804F5D8:
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r0, 0
- ldrsh r6, [r5, r0]
- b _0804F60C
-_0804F5E2:
- movs r0, 0x2
- ldrsh r4, [r5, r0]
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- adds r7, r6, 0x1
- cmp r4, r0
- bge _0804F60A
-_0804F5F0:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x20
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x1
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r4, r0
- blt _0804F5F0
-_0804F60A:
- adds r6, r7, 0
-_0804F60C:
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- cmp r6, r0
- blt _0804F5E2
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804F5D8
-
- thumb_func_start sub_804F61C
-sub_804F61C:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r9, r0
- mov r8, r1
- movs r7, 0x1
- negs r7, r7
- b _0804F67A
-_0804F62E:
- movs r5, 0x1
- negs r5, r5
- b _0804F666
-_0804F634:
- cmp r7, 0
- beq _0804F63C
- cmp r5, 0
- bne _0804F660
-_0804F63C:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0804F660
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrb r0, [r0, 0x9]
- cmp r0, 0xFF
- bne _0804F660
- movs r0, 0x1
- b _0804F686
-_0804F660:
- adds r5, 0x1
- cmp r5, 0x1
- bgt _0804F672
-_0804F666:
- mov r0, r8
- adds r4, r0, r5
- cmp r4, 0
- blt _0804F660
- cmp r4, 0x1F
- ble _0804F634
-_0804F672:
- adds r7, 0x1
- cmp r7, 0x1
- bgt _0804F684
- mov r0, r9
-_0804F67A:
- adds r6, r0, r7
- cmp r6, 0
- blt _0804F672
- cmp r6, 0x37
- ble _0804F62E
-_0804F684:
- movs r0, 0
-_0804F686:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804F61C
-
- thumb_func_start sub_804F694
-sub_804F694:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r7, r0, 0
- movs r0, 0x6
- bl sub_8084100
- subs r0, 0x1
- cmp r0, 0x4
- bls _0804F6B0
- b _0804FBD6
-_0804F6B0:
- lsls r0, 2
- ldr r1, _0804F6BC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0804F6BC: .4byte _0804F6C0
- .align 2, 0
-_0804F6C0:
- .4byte _0804FB24
- .4byte _0804FA98
- .4byte _0804F9DC
- .4byte _0804F826
- .4byte _0804F6D4
-_0804F6D4:
- ldr r1, _0804F70C
- ldr r0, [r1]
- cmp r0, 0
- bne _0804F6DE
- b _0804FBD6
-_0804F6DE:
- subs r0, 0x1
- str r0, [r1]
- adds r0, r7, 0
- bl sub_804F5D8
- movs r0, 0x2
- bl sub_8084100
- cmp r0, 0
- beq _0804F78E
- movs r5, 0
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x4
- ldrsh r1, [r7, r2]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- mov r8, r0
- movs r3, 0x2
- ldrsh r4, [r7, r3]
- b _0804F712
- .align 2, 0
-_0804F70C: .4byte gUnknown_202F1C8
-_0804F710:
- adds r4, 0x1
-_0804F712:
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- cmp r4, r0
- bge _0804F72A
- mov r0, r8
- adds r1, r4, 0
- bl sub_804F61C
- lsls r0, 24
- cmp r0, 0
- beq _0804F710
- movs r5, 0x1
-_0804F72A:
- cmp r5, 0
- beq _0804F730
- b _0804FBD6
-_0804F730:
- movs r2, 0x2
- ldrsh r4, [r7, r2]
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r4, r0
- bge _0804F754
-_0804F73C:
- mov r0, r8
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- adds r4, 0x1
- movs r5, 0x6
- ldrsh r0, [r7, r5]
- cmp r4, r0
- blt _0804F73C
-_0804F754:
- movs r0, 0
- ldrsh r5, [r7, r0]
- cmp r5, r8
- blt _0804F75E
- b _0804FBD2
-_0804F75E:
- movs r1, 0x2
- ldrsh r4, [r7, r1]
- movs r2, 0x6
- ldrsh r0, [r7, r2]
- adds r6, r5, 0x1
- cmp r4, r0
- bge _0804F786
-_0804F76C:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
- movs r3, 0x6
- ldrsh r0, [r7, r3]
- cmp r4, r0
- blt _0804F76C
-_0804F786:
- adds r5, r6, 0
- cmp r5, r8
- blt _0804F75E
- b _0804FBD2
-_0804F78E:
- movs r5, 0
- movs r4, 0x2
- ldrsh r0, [r7, r4]
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- mov r8, r0
- movs r3, 0
- ldrsh r4, [r7, r3]
- b _0804F7AA
-_0804F7A8:
- adds r4, 0x1
-_0804F7AA:
- movs r1, 0x4
- ldrsh r0, [r7, r1]
- cmp r4, r0
- bge _0804F7C2
- adds r0, r4, 0
- mov r1, r8
- bl sub_804F61C
- lsls r0, 24
- cmp r0, 0
- beq _0804F7A8
- movs r5, 0x1
-_0804F7C2:
- cmp r5, 0
- beq _0804F7C8
- b _0804FBD6
-_0804F7C8:
- movs r2, 0
- ldrsh r4, [r7, r2]
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- cmp r4, r0
- bge _0804F7EC
-_0804F7D4:
- adds r0, r4, 0
- mov r1, r8
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- adds r4, 0x1
- movs r5, 0x4
- ldrsh r0, [r7, r5]
- cmp r4, r0
- blt _0804F7D4
-_0804F7EC:
- movs r0, 0x2
- ldrsh r5, [r7, r0]
- cmp r5, r8
- blt _0804F7F6
- b _0804FBD2
-_0804F7F6:
- movs r1, 0
- ldrsh r4, [r7, r1]
- movs r2, 0x4
- ldrsh r0, [r7, r2]
- adds r6, r5, 0x1
- cmp r4, r0
- bge _0804F81E
-_0804F804:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x80
- orrs r1, r2
- strh r1, [r0]
- adds r4, 0x1
- movs r3, 0x4
- ldrsh r0, [r7, r3]
- cmp r4, r0
- blt _0804F804
-_0804F81E:
- adds r5, r6, 0
- cmp r5, r8
- blt _0804F7F6
- b _0804FBD2
-_0804F826:
- movs r4, 0x4
- ldrsh r3, [r7, r4]
- movs r5, 0
- ldrsh r1, [r7, r5]
- subs r0, r3, r1
- cmp r0, 0x5
- bgt _0804F836
- b _0804FBD6
-_0804F836:
- movs r0, 0x6
- ldrsh r4, [r7, r0]
- movs r5, 0x2
- ldrsh r2, [r7, r5]
- subs r0, r4, r2
- cmp r0, 0x5
- bgt _0804F846
- b _0804FBD6
-_0804F846:
- adds r0, r1, r3
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [sp]
- adds r0, r2, r4
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- str r0, [sp, 0x4]
- ldr r1, _0804F9D8
- ldr r0, [r1]
- cmp r0, 0
- bne _0804F864
- b _0804FBD6
-_0804F864:
- subs r0, 0x1
- str r0, [r1]
- adds r0, r7, 0
- bl sub_804F5D8
- ldr r5, [sp]
- subs r5, 0x2
- ldr r0, [sp, 0x4]
- subs r0, 0x2
- mov r10, r0
- adds r0, r5, 0
- mov r1, r10
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r1, [sp]
- subs r1, 0x1
- mov r9, r1
- mov r0, r9
- mov r1, r10
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r0, [sp]
- mov r1, r10
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r2, [sp]
- adds r2, 0x1
- mov r8, r2
- mov r0, r8
- mov r1, r10
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r6, [sp, 0x4]
- subs r6, 0x1
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- adds r0, r5, 0
- ldr r1, [sp, 0x4]
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r4, [sp, 0x4]
- adds r4, 0x1
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r9
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- ldr r0, [sp]
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r8
- mov r1, r10
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r8
- adds r1, r6, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r8
- ldr r1, [sp, 0x4]
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r8
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0x4
- bl sub_804F5C4
- mov r0, r9
- adds r1, r6, 0
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x4
- orrs r1, r2
- strh r1, [r0, 0x4]
- mov r0, r9
- adds r1, r6, 0
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- movs r2, 0x40
- orrs r1, r2
- strh r1, [r0, 0x4]
- ldr r0, [sp]
- adds r1, r6, 0
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- movs r4, 0x2
- orrs r1, r4
- strh r1, [r0, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x4]
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- orrs r1, r4
- strh r1, [r0, 0x4]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- orrs r1, r4
- strh r1, [r0, 0x4]
- mov r0, r9
- adds r1, r6, 0
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- movs r4, 0x10
- orrs r1, r4
- strh r1, [r0, 0x4]
- ldr r0, [sp]
- adds r1, r6, 0
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- orrs r1, r4
- strh r1, [r0, 0x4]
- mov r0, r9
- ldr r1, [sp, 0x4]
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- orrs r1, r4
- strh r1, [r0, 0x4]
- ldr r0, [sp]
- ldr r1, [sp, 0x4]
- bl sub_8049590
- ldrh r1, [r0, 0x4]
- orrs r4, r1
- strh r4, [r0, 0x4]
- b _0804FBD2
- .align 2, 0
-_0804F9D8: .4byte gUnknown_202F1C8
-_0804F9DC:
- movs r4, 0x4
- ldrsh r3, [r7, r4]
- movs r5, 0
- ldrsh r2, [r7, r5]
- subs r0, r3, r2
- cmp r0, 0x4
- bgt _0804F9EC
- b _0804FBD6
-_0804F9EC:
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- movs r4, 0x2
- ldrsh r1, [r7, r4]
- subs r0, r1
- cmp r0, 0x4
- bgt _0804F9FC
- b _0804FBD6
-_0804F9FC:
- adds r0, r2, 0x2
- subs r1, r3, 0x3
- bl sub_808411C
- adds r4, r0, 0
- movs r5, 0x2
- ldrsh r0, [r7, r5]
- adds r0, 0x2
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- subs r1, 0x3
- bl sub_808411C
- mov r10, r0
- movs r3, 0
- ldrsh r0, [r7, r3]
- adds r0, 0x2
- movs r5, 0x4
- ldrsh r1, [r7, r5]
- subs r1, 0x3
- bl sub_808411C
- mov r9, r0
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- adds r0, 0x2
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- subs r1, 0x3
- bl sub_808411C
- adds r6, r0, 0
- ldr r1, _0804FA94
- ldr r0, [r1]
- cmp r0, 0
- bne _0804FA46
- b _0804FBD6
-_0804FA46:
- subs r0, 0x1
- str r0, [r1]
- adds r0, r7, 0
- bl sub_804F5D8
- cmp r4, r9
- ble _0804FA5A
- adds r0, r4, 0
- mov r4, r9
- mov r9, r0
-_0804FA5A:
- cmp r10, r6
- ble _0804FA64
- mov r0, r10
- mov r10, r6
- adds r6, r0, 0
-_0804FA64:
- adds r5, r4, 0
- cmp r5, r9
- ble _0804FA6C
- b _0804FBD2
-_0804FA6C:
- mov r4, r10
- adds r3, r5, 0x1
- mov r8, r3
- cmp r4, r6
- bgt _0804FA8A
-_0804FA76:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- adds r4, 0x1
- cmp r4, r6
- ble _0804FA76
-_0804FA8A:
- mov r5, r8
- cmp r5, r9
- ble _0804FA6C
- b _0804FBD2
- .align 2, 0
-_0804FA94: .4byte gUnknown_202F1C8
-_0804FA98:
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- movs r5, 0
- ldrsh r1, [r7, r5]
- subs r0, r1
- movs r2, 0x1
- ands r0, r2
- cmp r0, 0
- bne _0804FAAC
- b _0804FBD6
-_0804FAAC:
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- movs r3, 0x2
- ldrsh r1, [r7, r3]
- subs r0, r1
- ands r0, r2
- cmp r0, 0
- bne _0804FABE
- b _0804FBD6
-_0804FABE:
- ldr r1, _0804FB20
- ldr r0, [r1]
- cmp r0, 0
- bne _0804FAC8
- b _0804FBD6
-_0804FAC8:
- subs r0, 0x1
- str r0, [r1]
- adds r0, r7, 0
- bl sub_804F5D8
- movs r6, 0x3F
-_0804FAD4:
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- movs r5, 0
- ldrsh r1, [r7, r5]
- subs r0, r1
- bl sub_8084100
- adds r4, r0, 0
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- subs r0, r1
- bl sub_8084100
- adds r2, r0, 0
- adds r0, r4, r2
- movs r5, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0804FB14
- movs r3, 0
- ldrsh r0, [r7, r3]
- adds r0, r4
- movs r4, 0x2
- ldrsh r1, [r7, r4]
- adds r1, r2
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
-_0804FB14:
- subs r6, 0x1
- cmp r6, 0
- bge _0804FAD4
- strb r5, [r7, 0x9]
- b _0804FBD6
- .align 2, 0
-_0804FB20: .4byte gUnknown_202F1C8
-_0804FB24:
- ldr r1, _0804FBC0
- ldr r0, [r1]
- cmp r0, 0
- beq _0804FBD6
- subs r0, 0x1
- str r0, [r1]
- movs r5, 0x4
- ldrsh r3, [r7, r5]
- movs r0, 0
- ldrsh r2, [r7, r0]
- subs r6, r3, r2
- movs r4, 0x1
- adds r0, r6, 0
- ands r0, r4
- cmp r0, 0
- beq _0804FB54
- movs r1, 0x6
- ldrsh r0, [r7, r1]
- movs r5, 0x2
- ldrsh r1, [r7, r5]
- subs r0, r1
- ands r0, r4
- cmp r0, 0
- bne _0804FBC4
-_0804FB54:
- adds r0, r2, r3
- lsrs r1, r0, 31
- adds r0, r1
- asrs r5, r0, 1
- movs r0, 0x2
- ldrsh r3, [r7, r0]
- movs r1, 0x6
- ldrsh r2, [r7, r1]
- adds r0, r3, r2
- lsrs r1, r0, 31
- adds r0, r1
- asrs r4, r0, 1
- cmp r6, 0x4
- ble _0804FBAE
- subs r0, r2, r3
- cmp r0, 0x4
- ble _0804FBAE
- adds r0, r5, 0x1
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- adds r1, r4, 0x1
- adds r0, r5, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- subs r0, r5, 0x1
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- subs r1, r4, 0x1
- adds r0, r5, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
-_0804FBAE:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0
- bl sub_804F5C4
- b _0804FBD2
- .align 2, 0
-_0804FBC0: .4byte gUnknown_202F1C8
-_0804FBC4:
- adds r0, r7, 0
- bl sub_804F5D8
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_804F278
-_0804FBD2:
- movs r0, 0x1
- strb r0, [r7, 0x9]
-_0804FBD6:
- 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_804F694
-
- thumb_func_start sub_804FBE8
-sub_804FBE8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r6, 0
- ldr r0, _0804FC6C
- adds r5, r0, 0
-_0804FBF4:
- movs r4, 0
- adds r3, r6, 0x1
- mov r8, r3
-_0804FBFA:
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- beq _0804FC2A
- movs r7, 0x88
- lsls r7, 1
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _0804FC24
- ldrh r0, [r2, 0x4]
- ldr r3, _0804FC70
- adds r1, r3, 0
- ands r0, r1
- strh r0, [r2, 0x4]
-_0804FC24:
- ldrh r0, [r2, 0x4]
- ands r0, r5
- strh r0, [r2, 0x4]
-_0804FC2A:
- ldrh r3, [r2, 0x4]
- movs r0, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0804FC46
- ldrh r0, [r2]
- movs r7, 0x80
- lsls r7, 2
- adds r1, r7, 0
- orrs r1, r0
- strh r1, [r2]
- adds r0, r3, 0
- ands r0, r5
- strh r0, [r2, 0x4]
-_0804FC46:
- ldrh r1, [r2, 0x4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0804FC56
- adds r0, r1, 0
- ands r0, r5
- strh r0, [r2, 0x4]
-_0804FC56:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0804FBFA
- mov r6, r8
- cmp r6, 0x37
- ble _0804FBF4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FC6C: .4byte 0x0000fffb
-_0804FC70: .4byte 0x0000fffd
- thumb_func_end sub_804FBE8
-
- thumb_func_start sub_804FC74
-sub_804FC74:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
- movs r0, 0x3
- mov r8, r0
- ldr r0, _0804FCC8
- adds r7, r0, 0
-_0804FC86:
- movs r4, 0
- adds r6, r5, 0x1
-_0804FC8A:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _0804FCAE
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ands r1, r7
- mov r2, r8
- orrs r1, r2
- strh r1, [r0]
-_0804FCAE:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0804FC8A
- adds r5, r6, 0
- cmp r5, 0x37
- ble _0804FC86
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FCC8: .4byte 0x0000fffc
- thumb_func_end sub_804FC74
-
- thumb_func_start sub_804FCCC
-sub_804FCCC:
- push {r4-r7,lr}
- movs r5, 0
- ldr r0, _0804FD0C
- adds r7, r0, 0
-_0804FCD4:
- movs r4, 0
- adds r6, r5, 0x1
-_0804FCD8:
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0804FCF8
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ands r1, r7
- strh r1, [r0]
-_0804FCF8:
- adds r4, 0x1
- cmp r4, 0x1F
- ble _0804FCD8
- adds r5, r6, 0
- cmp r5, 0x37
- ble _0804FCD4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FD0C: .4byte 0x0000fffc
- thumb_func_end sub_804FCCC
-
- thumb_func_start sub_804FD10
-sub_804FD10:
- movs r2, 0
- movs r3, 0
- strh r3, [r0]
- strh r3, [r0, 0x4]
- movs r1, 0xFF
- strb r1, [r0, 0x9]
- strb r2, [r0, 0x8]
- strb r2, [r0, 0xA]
- strb r2, [r0, 0xB]
- strb r2, [r0, 0xC]
- strb r2, [r0, 0xD]
- strb r2, [r0, 0xE]
- str r3, [r0, 0x10]
- str r3, [r0, 0x14]
- bx lr
- thumb_func_end sub_804FD10
-
- thumb_func_start sub_804FD30
-sub_804FD30:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- movs r6, 0
-_0804FD3A:
- movs r7, 0
- adds r4, r6, 0x1
-_0804FD3E:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8049590
- bl sub_804FD10
- subs r3, r7, 0x1
- cmp r6, 0
- blt _0804FD5C
- cmp r3, 0
- blt _0804FD5C
- cmp r6, 0x37
- bgt _0804FD5C
- cmp r3, 0x1F
- ble _0804FD60
-_0804FD5C:
- movs r0, 0x1
- b _0804FD62
-_0804FD60:
- movs r0, 0
-_0804FD62:
- cmp r0, 0
- bne _0804FE24
- cmp r4, 0
- blt _0804FD76
- cmp r3, 0
- blt _0804FD76
- cmp r4, 0x37
- bgt _0804FD76
- cmp r3, 0x1F
- ble _0804FD7A
-_0804FD76:
- movs r0, 0x1
- b _0804FD7C
-_0804FD7A:
- movs r0, 0
-_0804FD7C:
- cmp r0, 0
- bne _0804FE24
- cmp r4, 0
- blt _0804FD90
- cmp r3, 0
- blt _0804FD90
- cmp r4, 0x37
- bgt _0804FD90
- cmp r3, 0x1F
- ble _0804FD94
-_0804FD90:
- movs r0, 0x1
- b _0804FD96
-_0804FD94:
- movs r0, 0
-_0804FD96:
- cmp r0, 0
- bne _0804FE24
- adds r2, r7, 0x1
- cmp r4, 0
- blt _0804FDAC
- cmp r2, 0
- blt _0804FDAC
- cmp r4, 0x37
- bgt _0804FDAC
- cmp r2, 0x1F
- ble _0804FDB0
-_0804FDAC:
- movs r0, 0x1
- b _0804FDB2
-_0804FDB0:
- movs r0, 0
-_0804FDB2:
- cmp r0, 0
- bne _0804FE24
- cmp r6, 0
- blt _0804FDC6
- cmp r2, 0
- blt _0804FDC6
- cmp r6, 0x37
- bgt _0804FDC6
- cmp r2, 0x1F
- ble _0804FDCA
-_0804FDC6:
- movs r0, 0x1
- b _0804FDCC
-_0804FDCA:
- movs r0, 0
-_0804FDCC:
- cmp r0, 0
- bne _0804FE24
- adds r0, r2, 0
- subs r1, r6, 0x1
- cmp r1, 0
- blt _0804FDE4
- cmp r0, 0
- blt _0804FDE4
- cmp r1, 0x37
- bgt _0804FDE4
- cmp r2, 0x1F
- ble _0804FDE8
-_0804FDE4:
- movs r0, 0x1
- b _0804FDEA
-_0804FDE8:
- movs r0, 0
-_0804FDEA:
- cmp r0, 0
- bne _0804FE24
- cmp r1, 0
- blt _0804FDFE
- cmp r7, 0
- blt _0804FDFE
- cmp r1, 0x37
- bgt _0804FDFE
- cmp r7, 0x1F
- ble _0804FE02
-_0804FDFE:
- movs r0, 0x1
- b _0804FE04
-_0804FE02:
- movs r0, 0
-_0804FE04:
- cmp r0, 0
- bne _0804FE24
- adds r0, r3, 0
- cmp r1, 0
- blt _0804FE1A
- cmp r0, 0
- blt _0804FE1A
- cmp r1, 0x37
- bgt _0804FE1A
- cmp r3, 0x1F
- ble _0804FE1E
-_0804FE1A:
- movs r0, 0x1
- b _0804FE20
-_0804FE1E:
- movs r0, 0
-_0804FE20:
- cmp r0, 0
- beq _0804FE34
-_0804FE24:
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x10
- orrs r1, r2
- strh r1, [r0]
-_0804FE34:
- adds r7, 0x1
- cmp r7, 0x1F
- ble _0804FD3E
- adds r6, 0x1
- cmp r6, 0x37
- bgt _0804FE42
- b _0804FD3A
-_0804FE42:
- ldr r3, _0804FEB4
- ldr r1, [r3]
- ldr r0, _0804FEB8
- adds r2, r1, r0
- ldr r0, _0804FEBC
- strh r0, [r2]
- ldr r2, _0804FEC0
- adds r1, r2
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- movs r6, 0
- mov r8, r3
- ldr r1, _0804FEC4
-_0804FE5E:
- adds r5, r1, 0
- movs r4, 0
- movs r7, 0x7
-_0804FE64:
- mov r2, r8
- ldr r0, [r2]
- adds r0, r5
- adds r0, r4
- str r1, [sp]
- bl sub_804FD10
- adds r4, 0x18
- subs r7, 0x1
- ldr r1, [sp]
- cmp r7, 0
- bge _0804FE64
- adds r1, 0xC0
- adds r6, 0x1
- cmp r6, 0x7
- ble _0804FE5E
- ldr r0, _0804FEB4
- ldr r1, [r0]
- ldr r2, _0804FEC8
- adds r1, r2
- movs r2, 0
- strh r2, [r1]
- movs r6, 0
- adds r4, r0, 0
- ldr r3, _0804FECC
-_0804FE96:
- ldr r0, [r4]
- lsls r1, r6, 2
- adds r0, r3
- adds r0, r1
- ldr r0, [r0]
- str r2, [r0]
- adds r6, 0x1
- cmp r6, 0x3F
- ble _0804FE96
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804FEB4: .4byte gUnknown_203B418
-_0804FEB8: .4byte 0x0000e21c
-_0804FEBC: .4byte 0x0000ffff
-_0804FEC0: .4byte 0x0000e21e
-_0804FEC4: .4byte 0x0000e27c
-_0804FEC8: .4byte 0x00003904
-_0804FECC: .4byte 0x0001371c
- thumb_func_end sub_804FD30
-
- thumb_func_start sub_804FED0
-sub_804FED0:
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r5, r1, 0
- movs r6, 0
- b _0804FEFA
-_0804FEDA:
- adds r0, r5, 0
- bl sub_8084100
- adds r4, r0, 0
- adds r0, r5, 0
- bl sub_8084100
- lsls r4, 2
- adds r4, r7
- ldr r2, [r4]
- lsls r0, 2
- adds r0, r7
- ldr r1, [r0]
- str r1, [r4]
- str r2, [r0]
- adds r6, 0x1
-_0804FEFA:
- lsls r0, r5, 1
- cmp r6, r0
- blt _0804FEDA
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_804FED0
-
- thumb_func_start sub_804FF08
-sub_804FF08:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08050234
- add sp, r4
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0xE0
- lsls r0, 5
- add r0, sp
- str r1, [r0]
- ldr r0, _08050238
- ldr r0, [r0]
- mov r9, r0
- ldr r0, _0805023C
- add r0, r9
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _0804FF46
- ldr r0, _08050240
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r1
- bne _08050038
-_0804FF46:
- movs r0, 0
- mov r8, r0
- movs r6, 0
-_0804FF4C:
- movs r5, 0
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_0804FF56:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0x1
- bne _0804FFAA
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _0804FFAA
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _0804FFAA
- ldrh r1, [r1, 0x4]
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0804FFAA
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _0804FFAA
- adds r0, r3, 0
- ands r0, r2
- cmp r0, 0
- bne _0804FFAA
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _0804FFAA
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r2, 0x1
- add r8, r2
-_0804FFAA:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0804FF56
- adds r6, 0x1
- cmp r6, 0x37
- ble _0804FF4C
- mov r0, r8
- cmp r0, 0
- beq _08050038
- bl sub_8084100
- lsls r0, 2
- mov r1, sp
- adds r4, r1, r0
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- adds r5, r0, 0
- ldrh r1, [r5, 0x4]
- movs r0, 0x1
- orrs r0, r1
- ldr r1, _08050244
- ands r0, r1
- strh r0, [r5, 0x4]
- ldr r1, _08050248
- ldrb r0, [r5, 0x9]
- strb r0, [r1]
- ldrb r1, [r4]
- ldr r0, _0805023C
- add r0, r9
- strh r1, [r0]
- ldrb r1, [r4, 0x1]
- ldr r0, _08050240
- add r0, r9
- strh r1, [r0]
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08050038
- ldrb r4, [r5, 0x9]
- movs r6, 0
-_08050002:
- movs r5, 0
-_08050004:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_8049590
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0x1
- bne _0805002C
- ldrb r0, [r1, 0x9]
- cmp r0, r4
- bne _0805002C
- movs r0, 0x40
- orrs r0, r2
- strh r0, [r1]
- ldrb r1, [r1, 0x9]
- ldr r0, _0805024C
- add r0, r9
- strb r1, [r0]
-_0805002C:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _08050004
- adds r6, 0x1
- cmp r6, 0x37
- ble _08050002
-_08050038:
- movs r2, 0
- mov r8, r2
- movs r6, 0
-_0805003E:
- movs r5, 0
- adds r7, r6, 0x1
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_0805004A:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0x1
- bne _08050092
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _08050092
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _08050092
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- bne _08050092
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _08050092
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _08050092
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r2, 0x1
- add r8, r2
-_08050092:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0805004A
- adds r6, r7, 0
- cmp r6, 0x37
- ble _0805003E
- mov r0, r8
- cmp r0, 0
- beq _080500FA
- mov r1, r10
- ldrb r4, [r1, 0xF]
- cmp r4, 0
- beq _080500FA
- subs r0, r4, 0x2
- adds r1, r4, 0x2
- bl sub_808411C
- adds r4, r0, 0
- cmp r4, 0
- bgt _080500BC
- movs r4, 0x1
-_080500BC:
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r4, 0
- ble _080500FA
- adds r6, r4, 0
- lsls r0, r5, 2
- mov r2, sp
- adds r4, r0, r2
-_080500D8:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x2
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _080500F4
- mov r4, sp
- movs r5, 0
-_080500F4:
- subs r6, 0x1
- cmp r6, 0
- bne _080500D8
-_080500FA:
- movs r0, 0
- mov r8, r0
- movs r6, 0
-_08050100:
- movs r5, 0
- adds r7, r6, 0x1
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_0805010C:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08050128
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r0, 0x1
- add r8, r0
-_08050128:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0805010C
- adds r6, r7, 0
- cmp r6, 0x37
- ble _08050100
- mov r1, r8
- cmp r1, 0
- beq _0805018E
- mov r2, r10
- ldrb r4, [r2, 0x14]
- cmp r4, 0
- beq _0805018E
- subs r0, r4, 0x2
- adds r1, r4, 0x2
- bl sub_808411C
- adds r4, r0, 0
- cmp r4, 0
- ble _0805018E
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r4, 0
- ble _0805018E
- adds r6, r4, 0
- lsls r0, r5, 2
- mov r1, sp
- adds r4, r0, r1
-_0805016C:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x2
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _08050188
- mov r4, sp
- movs r5, 0
-_08050188:
- subs r6, 0x1
- cmp r6, 0
- bne _0805016C
-_0805018E:
- movs r2, 0
- mov r8, r2
- movs r0, 0xE0
- lsls r0, 5
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- bne _080501E4
- movs r6, 0
-_080501A0:
- movs r5, 0
- adds r7, r6, 0x1
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_080501AC:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080501D8
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _080501D8
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080501D8
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r0, 0x1
- add r8, r0
-_080501D8:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _080501AC
- adds r6, r7, 0
- cmp r6, 0x37
- ble _080501A0
-_080501E4:
- mov r1, r8
- cmp r1, 0
- beq _08050294
- lsrs r4, r1, 31
- add r4, r8
- asrs r4, 1
- lsls r0, r1, 3
- movs r1, 0xA
- bl __divsi3
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_808411C
- adds r4, r0, 0
- cmp r4, 0x5
- bgt _08050208
- movs r4, 0x6
-_08050208:
- ldr r0, _08050250
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r4, r0
- blt _08050214
- adds r4, r0, 0
-_08050214:
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r4, 0
- ble _08050294
- adds r6, r4, 0
- lsls r0, r5, 2
- mov r1, sp
- adds r7, r0, r1
-_08050230:
- ldrb r0, [r7]
- b _08050254
- .align 2, 0
-_08050234: .4byte 0xffffe3fc
-_08050238: .4byte gUnknown_203B418
-_0805023C: .4byte 0x0000e21c
-_08050240: .4byte 0x0000e21e
-_08050244: .4byte 0x0000fffd
-_08050248: .4byte gUnknown_202F1B4
-_0805024C: .4byte 0x00003a0c
-_08050250: .4byte gUnknown_80F4DA0
-_08050254:
- ldrb r1, [r7, 0x1]
- bl sub_8049590
- adds r4, r0, 0
- movs r0, 0x2
- bl sub_8084100
- cmp r0, 0
- beq _0805026C
- ldrh r0, [r4, 0x4]
- movs r1, 0x2
- b _0805027E
-_0805026C:
- ldr r0, _08050424
- ldr r0, [r0]
- ldr r2, _08050428
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050282
- ldrh r0, [r4, 0x4]
- movs r1, 0x4
-_0805027E:
- orrs r0, r1
- strh r0, [r4, 0x4]
-_08050282:
- adds r7, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _0805028E
- mov r7, sp
- movs r5, 0
-_0805028E:
- subs r6, 0x1
- cmp r6, 0
- bne _08050230
-_08050294:
- movs r0, 0
- mov r8, r0
- movs r6, 0
-_0805029A:
- movs r5, 0
- adds r7, r6, 0x1
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_080502A6:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0x1
- bne _080502F0
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _080502F0
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _080502F0
- ldrh r1, [r1, 0x4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080502F0
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _080502F0
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _080502F0
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r2, 0x1
- add r8, r2
-_080502F0:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _080502A6
- adds r6, r7, 0
- cmp r6, 0x37
- ble _0805029A
- mov r0, r8
- cmp r0, 0
- beq _08050356
- mov r2, r10
- ldrb r1, [r2, 0x10]
- lsrs r0, r1, 1
- bl sub_808411C
- adds r4, r0, 0
- cmp r4, 0
- ble _08050356
- cmp r4, 0x37
- ble _08050318
- movs r4, 0x38
-_08050318:
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r4, 0
- ble _08050356
- adds r6, r4, 0
- lsls r0, r5, 2
- mov r1, sp
- adds r4, r0, r1
-_08050334:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x4
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _08050350
- mov r4, sp
- movs r5, 0
-_08050350:
- subs r6, 0x1
- cmp r6, 0
- bne _08050334
-_08050356:
- ldr r0, _0805042C
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- movs r1, 0x1
- negs r1, r1
- cmp r0, r1
- beq _08050372
- ldr r0, _08050430
- add r0, r9
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r1
- bne _08050410
-_08050372:
- movs r0, 0
- mov r8, r0
- movs r6, 0
-_08050378:
- movs r5, 0
- adds r7, r6, 0x1
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_08050384:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _080503E2
- ldrb r0, [r2, 0x9]
- cmp r0, 0xFF
- beq _080503E2
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- movs r3, 0x8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- movs r0, 0x80
- lsls r0, 1
- mov r10, r0
- mov r0, r10
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- ldrh r1, [r2, 0x4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _080503E2
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r1, 0x1
- add r8, r1
-_080503E2:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _08050384
- adds r6, r7, 0
- cmp r6, 0x37
- ble _08050378
- mov r2, r8
- cmp r2, 0
- beq _08050410
- mov r0, r8
- bl sub_8084100
- lsls r0, 2
- mov r1, sp
- adds r2, r1, r0
- ldrb r1, [r2]
- ldr r0, _0805042C
- add r0, r9
- strh r1, [r0]
- ldrb r1, [r2, 0x1]
- ldr r0, _08050430
- add r0, r9
- strh r1, [r0]
-_08050410:
- ldr r3, _08050434
- 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
-_08050424: .4byte gUnknown_203B418
-_08050428: .4byte 0x0000065c
-_0805042C: .4byte 0x0000e218
-_08050430: .4byte 0x0000e21a
-_08050434: .4byte 0x00001c04
- thumb_func_end sub_804FF08
-
- thumb_func_start sub_8050438
-sub_8050438:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08050470
- add sp, r4
- lsls r1, 24
- lsrs r1, 24
- movs r2, 0xE0
- lsls r2, 5
- add r2, sp
- str r1, [r2]
- ldr r1, _08050474
- ldr r1, [r1]
- mov r10, r1
- ldrb r1, [r0, 0x6]
- cmp r1, 0
- ble _08050478
- lsrs r0, r1, 1
- bl sub_808411C
- adds r7, r0, 0
- cmp r7, 0
- bgt _0805047A
- movs r7, 0x1
- b _0805047A
- .align 2, 0
-_08050470: .4byte 0xffffe3f8
-_08050474: .4byte gUnknown_203B418
-_08050478:
- adds r7, r1, 0
-_0805047A:
- movs r0, 0
- mov r8, r0
- movs r6, 0
-_08050480:
- movs r5, 0
- adds r1, r6, 0x1
- mov r9, r1
- mov r2, r8
- lsls r0, r2, 2
- mov r1, sp
- adds r4, r0, r1
-_0805048E:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r3, [r1]
- movs r2, 0x3
- ands r2, r3
- cmp r2, 0x1
- bne _080504F6
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _080504F6
- movs r0, 0x20
- ands r0, r3
- cmp r0, 0
- bne _080504F6
- ldrh r1, [r1, 0x4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080504F6
- ands r2, r1
- cmp r2, 0
- bne _080504F6
- movs r0, 0x8
- ands r0, r3
- cmp r0, 0
- bne _080504F6
- movs r2, 0x80
- lsls r2, 1
- adds r0, r2, 0
- ands r0, r3
- cmp r0, 0
- bne _080504F6
- ldr r0, _080506A0
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r6, r0
- bne _080504EC
- ldr r0, _080506A4
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r5, r0
- beq _080504F6
-_080504EC:
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r0, 0x1
- add r8, r0
-_080504F6:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _0805048E
- mov r6, r9
- cmp r6, 0x37
- ble _08050480
- mov r1, r8
- cmp r1, 0
- beq _0805055E
- ldr r0, _080506A8
- ldr r0, [r0]
- movs r2, 0xD1
- lsls r2, 3
- adds r0, r2
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0805051C
- adds r7, 0x1
-_0805051C:
- cmp r7, 0
- beq _0805055E
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r7, 0
- ble _0805055E
- adds r6, r7, 0
- lsls r0, r5, 2
- mov r2, sp
- adds r4, r0, r2
-_0805053C:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x8
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _08050558
- mov r4, sp
- movs r5, 0
-_08050558:
- subs r6, 0x1
- cmp r6, 0
- bne _0805053C
-_0805055E:
- ldr r0, _080506AC
- add r0, r10
- ldrb r0, [r0]
- cmp r0, 0
- bne _0805056A
- b _0805068C
-_0805056A:
- ldr r0, _080506B0
- movs r2, 0
- ldrsh r1, [r0, r2]
- ldr r2, _080506B4
- add r2, sp
- str r1, [r2]
- movs r0, 0
- mov r8, r0
- movs r1, 0xE0
- lsls r1, 5
- add r1, sp
- ldr r1, [r1]
- cmp r1, 0
- beq _0805058A
- movs r0, 0x3
- str r0, [r2]
-_0805058A:
- ldr r1, _080506B4
- add r1, sp
- ldr r1, [r1]
- lsls r0, r1, 1
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- ldr r1, _080506B4
- add r1, sp
- str r0, [r1]
- movs r6, 0
-_080505A2:
- movs r5, 0
- adds r2, r6, 0x1
- mov r9, r2
- mov r1, r8
- lsls r0, r1, 2
- mov r2, sp
- adds r4, r0, r2
-_080505B0:
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_804954C
- adds r1, r0, 0
- ldrh r2, [r1]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0x1
- bne _08050608
- ldrb r0, [r1, 0x9]
- cmp r0, 0xFF
- beq _08050608
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- bne _08050608
- movs r1, 0x80
- lsls r1, 1
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _08050608
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _08050608
- ldr r0, _080506A0
- add r0, r10
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r6, r0
- bne _080505FE
- ldr r0, _080506A4
- add r0, r10
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r5, r0
- beq _08050608
-_080505FE:
- strb r6, [r4]
- strb r5, [r4, 0x1]
- adds r4, 0x4
- movs r2, 0x1
- add r8, r2
-_08050608:
- adds r5, 0x1
- cmp r5, 0x1F
- ble _080505B0
- mov r6, r9
- cmp r6, 0x37
- ble _080505A2
- mov r0, r8
- cmp r0, 0
- beq _0805068C
- lsls r4, r0, 3
- subs r0, r4, r0
- movs r1, 0xA
- bl __divsi3
- adds r5, r0, 0
- adds r0, r4, 0
- movs r1, 0xA
- bl __divsi3
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_808411C
- adds r7, r0, 0
- cmp r7, 0
- bne _0805063E
- movs r7, 0x1
-_0805063E:
- ldr r1, _080506B4
- add r1, sp
- ldr r1, [r1]
- cmp r7, r1
- blt _0805064E
- ldr r2, _080506B4
- add r2, sp
- ldr r7, [r2]
-_0805064E:
- mov r0, sp
- mov r1, r8
- bl sub_804FED0
- mov r0, r8
- bl sub_8084100
- adds r5, r0, 0
- cmp r7, 0
- ble _0805068C
- adds r6, r7, 0
- lsls r0, r5, 2
- mov r1, sp
- adds r4, r0, r1
-_0805066A:
- ldrb r0, [r4]
- ldrb r1, [r4, 0x1]
- bl sub_8049590
- ldrh r2, [r0, 0x4]
- movs r1, 0x8
- orrs r1, r2
- strh r1, [r0, 0x4]
- adds r4, 0x4
- adds r5, 0x1
- cmp r5, r8
- bne _08050686
- mov r4, sp
- movs r5, 0
-_08050686:
- subs r6, 0x1
- cmp r6, 0
- bne _0805066A
-_0805068C:
- ldr r3, _080506B8
- 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
-_080506A0: .4byte 0x0000e218
-_080506A4: .4byte 0x0000e21a
-_080506A8: .4byte gUnknown_203B418
-_080506AC: .4byte 0x00003a08
-_080506B0: .4byte gUnknown_80F4DA4
-_080506B4: .4byte 0x00001c04
-_080506B8: .4byte 0x00001c08
- thumb_func_end sub_8050438
-
- thumb_func_start sub_80506BC
-sub_80506BC:
- push {lr}
- adds r3, r0, 0
- movs r2, 0x1
- ldrh r1, [r3]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080506CE
- movs r2, 0
-_080506CE:
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _080506D8
- movs r2, 0
-_080506D8:
- cmp r2, 0
- beq _080506E6
- ldr r0, _080506EC
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strh r0, [r3]
-_080506E6:
- pop {r0}
- bx r0
- .align 2, 0
-_080506EC: .4byte 0x0000fffc
- thumb_func_end sub_80506BC
-
- thumb_func_start sub_80506F0
-sub_80506F0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xA4
- str r1, [sp, 0x64]
- ldrb r1, [r1, 0xD]
- ands r1, r0
- cmp r1, 0
- bne _08050708
- b _08050C20
-_08050708:
- ldr r4, _08050738
- movs r0, 0x8
- bl sub_8084100
- lsls r0, 2
- adds r0, r4
- ldr r4, [r0]
- cmp r4, 0
- bne _0805071C
- b _08050A7C
-_0805071C:
- movs r0, 0x64
- bl sub_8084100
- cmp r0, 0x31
- bgt _0805073C
- movs r0, 0x1
- str r0, [sp, 0x74]
- movs r1, 0x1F
- mov r10, r1
- movs r2, 0x1
- negs r2, r2
- str r2, [sp, 0x70]
- b _08050746
- .align 2, 0
-_08050738: .4byte gUnknown_80F6DF8
-_0805073C:
- movs r0, 0
- str r0, [sp, 0x74]
- mov r10, r0
- movs r1, 0x1
- str r1, [sp, 0x70]
-_08050746:
- movs r0, 0x32
- bl sub_8084100
- adds r0, 0xA
- str r0, [sp, 0x78]
- movs r0, 0x2
- movs r1, 0x36
- bl sub_808411C
- mov r9, r0
- movs r2, 0
- str r2, [sp, 0x6C]
- subs r4, 0x1
- str r4, [sp, 0x98]
-_08050762:
- movs r0, 0x6
- bl sub_8084100
- adds r0, 0x2
- str r0, [sp, 0x68]
- cmp r0, 0
- bne _08050772
- b _08050A38
-_08050772:
- mov r0, r9
- cmp r0, 0x37
- bhi _080507B8
- mov r1, r10
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _0805078A
- b _08050A74
-_0805078A:
- mov r1, r9
- cmp r1, 0
- blt _080507A2
- mov r2, r10
- cmp r2, 0
- blt _080507A2
- mov r0, r9
- cmp r0, 0x37
- bgt _080507A2
- mov r1, r10
- cmp r1, 0x1F
- ble _080507A6
-_080507A2:
- movs r0, 0x1
- b _080507A8
-_080507A6:
- movs r0, 0
-_080507A8:
- cmp r0, 0
- bne _080507B8
- mov r0, r9
- mov r1, r10
- bl sub_8049590
- bl sub_80506BC
-_080507B8:
- ldr r2, [sp, 0x68]
- subs r2, 0x1
- str r2, [sp, 0x68]
- ldr r0, [sp, 0x6C]
- add r9, r0
- ldr r1, [sp, 0x70]
- add r10, r1
- mov r2, r10
- cmp r2, 0x1F
- bls _080507CE
- b _08050A38
-_080507CE:
- ldr r0, [sp, 0x78]
- subs r0, 0x1
- str r0, [sp, 0x78]
- cmp r0, 0
- beq _080507DA
- b _08050A30
-_080507DA:
- movs r1, 0x3F
- str r1, [sp, 0x7C]
-_080507DE:
- movs r0, 0x7
- bl sub_8084100
- subs r0, 0x3
- str r0, [sp, 0x84]
- movs r0, 0x7
- bl sub_8084100
- subs r1, r0, 0x3
- ldr r6, [sp, 0x84]
- add r6, r9
- subs r0, r6, 0x2
- cmp r0, 0x33
- bhi _080508DA
- mov r2, r10
- adds r5, r1, r2
- cmp r5, 0x1
- ble _080508DA
- cmp r5, 0x1D
- bgt _080508DA
- adds r4, r6, 0x1
- adds r0, r5, 0x1
- mov r8, r0
- adds r0, r4, 0
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- movs r2, 0x3
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp, 0x9C]
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- subs r7, r5, 0x1
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- adds r0, r6, 0
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- adds r0, r6, 0
- adds r1, r7, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- subs r4, r6, 0x1
- adds r0, r4, 0
- mov r1, r8
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- beq _080508B2
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_804954C
- ldrh r1, [r0]
- ldr r2, [sp, 0x9C]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0x2
- bne _080508DA
-_080508B2:
- ldr r0, [sp, 0x84]
- add r0, r9
- cmp r0, 0
- blt _080508C6
- cmp r5, 0
- blt _080508C6
- cmp r0, 0x37
- bgt _080508C6
- cmp r5, 0x1F
- ble _080508CA
-_080508C6:
- movs r1, 0x1
- b _080508CC
-_080508CA:
- movs r1, 0
-_080508CC:
- cmp r1, 0
- bne _080508DA
- adds r1, r5, 0
- bl sub_8049590
- bl sub_80506BC
-_080508DA:
- ldr r1, [sp, 0x7C]
- subs r1, 0x1
- str r1, [sp, 0x7C]
- cmp r1, 0
- blt _080508E6
- b _080507DE
-_080508E6:
- movs r0, 0x3
- negs r0, r0
-_080508EA:
- movs r2, 0x3
- negs r2, r2
- str r2, [sp, 0x80]
- mov r1, r9
- adds r1, r0, r1
- str r1, [sp, 0x90]
- adds r0, 0x1
- str r0, [sp, 0x8C]
- adds r7, r1, 0
- mov r5, r10
- subs r5, 0x3
-_08050900:
- movs r6, 0
- subs r0, r7, 0x2
- cmp r0, 0x33
- bls _0805090A
- b _08050A1A
-_0805090A:
- str r5, [sp, 0x88]
- str r5, [sp, 0x94]
- cmp r5, 0x1
- bgt _08050914
- b _08050A1A
-_08050914:
- cmp r5, 0x1D
- ble _0805091A
- b _08050A1A
-_0805091A:
- adds r4, r7, 0x1
- adds r3, r5, 0x1
- adds r0, r4, 0
- adds r1, r3, 0
- str r3, [sp, 0xA0]
- bl sub_804954C
- ldrh r1, [r0]
- movs r2, 0x3
- mov r8, r2
- mov r0, r8
- ands r0, r1
- ldr r3, [sp, 0xA0]
- cmp r0, 0x2
- bne _0805093A
- movs r6, 0x1
-_0805093A:
- adds r0, r4, 0
- adds r1, r5, 0
- str r3, [sp, 0xA0]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r3, [sp, 0xA0]
- cmp r0, 0x2
- bne _08050952
- adds r6, 0x1
-_08050952:
- subs r2, r5, 0x1
- adds r0, r4, 0
- adds r1, r2, 0
- str r2, [sp, 0x9C]
- str r3, [sp, 0xA0]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x9C]
- ldr r3, [sp, 0xA0]
- cmp r0, 0x2
- bne _08050970
- adds r6, 0x1
-_08050970:
- adds r0, r7, 0
- adds r1, r3, 0
- str r2, [sp, 0x9C]
- str r3, [sp, 0xA0]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x9C]
- ldr r3, [sp, 0xA0]
- cmp r0, 0x2
- bne _0805098C
- adds r6, 0x1
-_0805098C:
- adds r0, r7, 0
- adds r1, r2, 0
- str r2, [sp, 0x9C]
- str r3, [sp, 0xA0]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x9C]
- ldr r3, [sp, 0xA0]
- cmp r0, 0x2
- bne _080509A8
- adds r6, 0x1
-_080509A8:
- subs r4, r7, 0x1
- adds r0, r4, 0
- adds r1, r3, 0
- str r2, [sp, 0x9C]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x9C]
- cmp r0, 0x2
- bne _080509C2
- adds r6, 0x1
-_080509C2:
- adds r0, r4, 0
- adds r1, r5, 0
- str r2, [sp, 0x9C]
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- ldr r2, [sp, 0x9C]
- cmp r0, 0x2
- bne _080509DA
- adds r6, 0x1
-_080509DA:
- adds r0, r4, 0
- adds r1, r2, 0
- bl sub_804954C
- ldrh r1, [r0]
- mov r0, r8
- ands r0, r1
- cmp r0, 0x2
- bne _080509EE
- adds r6, 0x1
-_080509EE:
- cmp r6, 0x3
- ble _08050A1A
- cmp r7, 0
- blt _08050A04
- cmp r5, 0
- blt _08050A04
- cmp r7, 0x37
- bgt _08050A04
- ldr r0, [sp, 0x88]
- cmp r0, 0x1F
- ble _08050A08
-_08050A04:
- movs r0, 0x1
- b _08050A0A
-_08050A08:
- movs r0, 0
-_08050A0A:
- cmp r0, 0
- bne _08050A1A
- ldr r0, [sp, 0x90]
- ldr r1, [sp, 0x94]
- bl sub_8049590
- bl sub_80506BC
-_08050A1A:
- adds r5, 0x1
- ldr r1, [sp, 0x80]
- adds r1, 0x1
- str r1, [sp, 0x80]
- cmp r1, 0x3
- bgt _08050A28
- b _08050900
-_08050A28:
- ldr r0, [sp, 0x8C]
- cmp r0, 0x3
- bgt _08050A30
- b _080508EA
-_08050A30:
- ldr r2, [sp, 0x68]
- cmp r2, 0
- beq _08050A38
- b _08050772
-_08050A38:
- ldr r0, [sp, 0x6C]
- cmp r0, 0
- beq _08050A54
- movs r1, 0x1
- str r1, [sp, 0x70]
- ldr r2, [sp, 0x74]
- cmp r2, 0
- beq _08050A4E
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x70]
-_08050A4E:
- movs r1, 0
- str r1, [sp, 0x6C]
- b _08050A6C
-_08050A54:
- movs r0, 0x64
- bl sub_8084100
- movs r2, 0x1
- str r2, [sp, 0x6C]
- cmp r0, 0x31
- bgt _08050A68
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0x6C]
-_08050A68:
- movs r1, 0
- str r1, [sp, 0x70]
-_08050A6C:
- mov r2, r10
- cmp r2, 0x1F
- bhi _08050A74
- b _08050762
-_08050A74:
- ldr r4, [sp, 0x98]
- cmp r4, 0
- beq _08050A7C
- b _0805071C
-_08050A7C:
- movs r0, 0
- ldr r1, [sp, 0x64]
- ldrb r1, [r1, 0x15]
- cmp r0, r1
- blt _08050A88
- b _08050BAE
-_08050A88:
- movs r2, 0
- mov r8, r2
- mov r9, r2
- movs r5, 0
- adds r0, 0x1
- mov r10, r0
- b _08050A98
-_08050A96:
- adds r5, 0x1
-_08050A98:
- cmp r5, 0xC7
- bgt _08050AC2
- movs r0, 0
- movs r1, 0x38
- bl sub_808411C
- mov r9, r0
- movs r0, 0
- movs r1, 0x20
- bl sub_808411C
- mov r8, r0
- mov r0, r9
- subs r0, 0x1
- cmp r0, 0x35
- bhi _08050A96
- mov r0, r8
- cmp r0, 0
- ble _08050A96
- cmp r0, 0x1E
- bgt _08050A96
-_08050AC2:
- cmp r5, 0xC8
- beq _08050BA2
- movs r7, 0
- movs r3, 0x1
- movs r1, 0
-_08050ACC:
- movs r2, 0
- lsls r0, r7, 2
- adds r4, r7, 0x1
- adds r0, r7
- lsls r0, 1
- add r0, sp
-_08050AD8:
- cmp r7, 0
- beq _08050AE8
- cmp r7, 0x9
- beq _08050AE8
- cmp r2, 0
- beq _08050AE8
- cmp r2, 0x9
- bne _08050AEC
-_08050AE8:
- strb r3, [r0]
- b _08050AEE
-_08050AEC:
- strb r1, [r0]
-_08050AEE:
- adds r0, 0x1
- adds r2, 0x1
- cmp r2, 0x9
- ble _08050AD8
- adds r7, r4, 0
- cmp r7, 0x9
- ble _08050ACC
- movs r5, 0x4F
-_08050AFE:
- movs r0, 0x8
- bl sub_8084100
- adds r4, r0, 0
- adds r7, r4, 0x1
- movs r0, 0x8
- bl sub_8084100
- adds r2, r0, 0x1
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 1
- adds r0, r2, r0
- add r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08050B50
- adds r1, r7, 0x1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 1
- adds r0, r2, r0
- add r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08050B50
- lsls r0, r7, 2
- adds r0, r7
- lsls r1, r0, 1
- subs r0, r1, 0x1
- adds r0, r2, r0
- add r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- bne _08050B50
- adds r0, r1, 0x1
- adds r0, r2, r0
- add r0, sp
- ldrb r0, [r0]
- cmp r0, 0
- beq _08050B60
-_08050B50:
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 1
- adds r0, r2, r0
- mov r2, sp
- adds r1, r2, r0
- movs r0, 0x1
- strb r0, [r1]
-_08050B60:
- subs r5, 0x1
- cmp r5, 0
- bge _08050AFE
- movs r7, 0
-_08050B68:
- lsls r0, r7, 2
- adds r4, r7, 0x1
- adds r0, r7
- lsls r0, 1
- mov r6, r8
- subs r6, 0x5
- mov r1, sp
- adds r5, r0, r1
- add r7, r9
- movs r2, 0x9
-_08050B7C:
- ldrb r0, [r5]
- cmp r0, 0
- bne _08050B92
- subs r0, r7, 0x5
- adds r1, r6, 0
- str r2, [sp, 0x9C]
- bl sub_8049590
- bl sub_80506BC
- ldr r2, [sp, 0x9C]
-_08050B92:
- adds r6, 0x1
- adds r5, 0x1
- subs r2, 0x1
- cmp r2, 0
- bge _08050B7C
- adds r7, r4, 0
- cmp r7, 0x9
- ble _08050B68
-_08050BA2:
- mov r0, r10
- ldr r2, [sp, 0x64]
- ldrb r2, [r2, 0x15]
- cmp r0, r2
- bge _08050BAE
- b _08050A88
-_08050BAE:
- movs r0, 0
- mov r9, r0
- movs r6, 0x1
- ldr r1, _08050BF4
- adds r5, r1, 0
-_08050BB8:
- movs r2, 0
- mov r10, r2
- mov r4, r9
- adds r4, 0x1
-_08050BC0:
- mov r0, r9
- mov r1, r10
- bl sub_8049590
- adds r2, r0, 0
- ldrh r3, [r2]
- movs r0, 0x3
- ands r0, r3
- cmp r0, 0x2
- bne _08050C10
- movs r1, 0xB0
- lsls r1, 1
- adds r0, r1, 0
- ands r0, r3
- cmp r0, 0
- bne _08050BEA
- ldrh r1, [r2, 0x4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08050BF8
-_08050BEA:
- adds r0, r3, 0
- ands r0, r5
- orrs r0, r6
- b _08050C0E
- .align 2, 0
-_08050BF4: .4byte 0x0000fffc
-_08050BF8:
- mov r0, r9
- subs r0, 0x2
- cmp r0, 0x34
- bhi _08050C0A
- mov r0, r10
- cmp r0, 0x1
- ble _08050C0A
- cmp r0, 0x1E
- ble _08050C10
-_08050C0A:
- ldrh r0, [r2]
- ands r0, r5
-_08050C0E:
- strh r0, [r2]
-_08050C10:
- movs r1, 0x1
- add r10, r1
- mov r2, r10
- cmp r2, 0x1F
- ble _08050BC0
- mov r9, r4
- cmp r4, 0x37
- ble _08050BB8
-_08050C20:
- add sp, 0xA4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80506F0
-
- thumb_func_start sub_8050C30
-sub_8050C30:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08050F3C
- add sp, r4
- mov r8, r0
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0xE0
- lsls r0, 3
- add r0, sp
- str r2, [r0]
- movs r7, 0
- mov r1, r8
- lsls r1, 5
- movs r2, 0xE2
- lsls r2, 3
- add r2, sp
- str r1, [r2]
-_08050C5C:
- movs r6, 0
- lsls r2, r7, 5
- adds r3, r7, 0x1
- mov r10, r3
- mov r5, sp
- adds r4, r2, r5
-_08050C68:
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrh r0, [r2]
- movs r3, 0x3
- ands r3, r0
- movs r0, 0
- strb r0, [r4]
- movs r0, 0xE0
- lsls r0, 3
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- beq _08050C92
- ldrh r0, [r2]
- ldr r5, _08050F40
- adds r1, r5, 0
- ands r0, r1
- strh r0, [r2]
-_08050C92:
- cmp r3, 0x1
- beq _08050CA8
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08050CA8
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
-_08050CA8:
- cmp r3, 0x2
- bne _08050CBE
- ldrh r1, [r2]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08050CBE
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
-_08050CBE:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1F
- ble _08050C68
- mov r7, r10
- cmp r7, 0x37
- ble _08050C5C
- movs r1, 0xE2
- lsls r1, 3
- add r1, sp
- ldr r0, [r1]
- add r0, r9
- mov r3, sp
- adds r2, r3, r0
- ldrb r1, [r2]
- movs r0, 0x50
- orrs r0, r1
- strb r0, [r2]
- ldr r0, _08050F44
- ldr r1, [r0]
- ldr r5, _08050F48
- adds r0, r1, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, r8
- beq _08050CF4
- b _08050F36
-_08050CF4:
- ldr r3, _08050F4C
- adds r0, r1, r3
- movs r5, 0
- ldrsh r0, [r0, r5]
- cmp r0, r9
- beq _08050D02
- b _08050F36
-_08050D02:
- ldr r1, _08050F50
- movs r0, 0
- str r0, [r1]
- movs r0, 0x40
- mov r9, r0
-_08050D0C:
- movs r1, 0
- ldr r2, _08050F54
- add r2, sp
- str r1, [r2]
- ldr r3, _08050F50
- ldr r0, [r3]
- adds r0, 0x1
- str r0, [r3]
- movs r7, 0
-_08050D1E:
- movs r6, 0
- lsls r2, r7, 5
- adds r5, r7, 0x1
- mov r10, r5
- subs r0, r7, 0x1
- movs r1, 0xE1
- lsls r1, 3
- add r1, sp
- str r0, [r1]
- lsls r0, 5
- mov r1, sp
- subs r1, 0x1
- adds r5, r2, r1
- add r0, sp
- mov r8, r0
- mov r2, r10
- ldr r3, _08050F58
- add r3, sp
- str r2, [r3]
- lsls r0, r2, 5
- add r0, sp
- mov r12, r0
-_08050D4A:
- ldrb r1, [r5, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08050D56
- b _08050EDA
-_08050D56:
- movs r3, 0x40
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _08050D62
- b _08050EDA
-_08050D62:
- ldr r2, _08050F54
- add r2, sp
- ldr r0, [r2]
- adds r0, 0x1
- str r0, [r2]
- movs r0, 0xBF
- ands r0, r1
- movs r2, 0
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r5, 0x1]
- cmp r7, 0
- ble _08050D90
- mov r0, r8
- ldrb r1, [r0]
- movs r0, 0x83
- ands r0, r1
- cmp r0, 0
- bne _08050D90
- adds r0, r1, 0
- orrs r0, r3
- mov r1, r8
- strb r0, [r1]
-_08050D90:
- cmp r6, 0
- ble _08050DA4
- ldrb r1, [r5]
- movs r0, 0x83
- ands r0, r1
- cmp r0, 0
- bne _08050DA4
- mov r0, r9
- orrs r0, r1
- strb r0, [r5]
-_08050DA4:
- cmp r7, 0x36
- bgt _08050DBA
- mov r2, r12
- ldrb r1, [r2]
- movs r0, 0x83
- ands r0, r1
- cmp r0, 0
- bne _08050DBA
- mov r0, r9
- orrs r0, r1
- strb r0, [r2]
-_08050DBA:
- cmp r6, 0x1E
- bgt _08050DCE
- ldrb r1, [r5, 0x2]
- movs r0, 0x83
- ands r0, r1
- cmp r0, 0
- bne _08050DCE
- mov r0, r9
- orrs r0, r1
- strb r0, [r5, 0x2]
-_08050DCE:
- cmp r7, 0
- ble _08050E12
- cmp r6, 0
- ble _08050E12
- movs r3, 0xE1
- lsls r3, 3
- add r3, sp
- ldr r3, [r3]
- lsls r1, r3, 5
- subs r0, r1, 0x1
- adds r0, r6, r0
- mov r2, sp
- adds r4, r2, r0
- ldrb r3, [r4]
- movs r0, 0x87
- ands r0, r3
- cmp r0, 0
- bne _08050E12
- adds r0, r6, r1
- add r0, sp
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E12
- ldrb r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E12
- mov r0, r9
- orrs r0, r3
- strb r0, [r4]
-_08050E12:
- cmp r7, 0x36
- bgt _08050E54
- cmp r6, 0
- ble _08050E54
- ldr r3, _08050F58
- add r3, sp
- ldr r3, [r3]
- lsls r1, r3, 5
- subs r0, r1, 0x1
- adds r0, r6, r0
- mov r2, sp
- adds r4, r2, r0
- ldrb r3, [r4]
- movs r0, 0x87
- ands r0, r3
- cmp r0, 0
- bne _08050E54
- adds r0, r6, r1
- add r0, sp
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E54
- ldrb r1, [r5]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E54
- mov r0, r9
- orrs r0, r3
- strb r0, [r4]
-_08050E54:
- cmp r7, 0
- ble _08050E98
- cmp r6, 0x1E
- bgt _08050E98
- movs r3, 0xE1
- lsls r3, 3
- add r3, sp
- ldr r3, [r3]
- lsls r1, r3, 5
- adds r0, r1, 0x1
- adds r0, r6, r0
- mov r2, sp
- adds r4, r2, r0
- ldrb r3, [r4]
- movs r0, 0x87
- ands r0, r3
- cmp r0, 0
- bne _08050E98
- adds r0, r6, r1
- add r0, sp
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E98
- ldrb r1, [r5, 0x2]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050E98
- mov r0, r9
- orrs r0, r3
- strb r0, [r4]
-_08050E98:
- cmp r7, 0x36
- bgt _08050EDA
- cmp r6, 0x1E
- bgt _08050EDA
- ldr r3, _08050F58
- add r3, sp
- ldr r3, [r3]
- lsls r1, r3, 5
- adds r0, r1, 0x1
- adds r0, r6, r0
- mov r2, sp
- adds r4, r2, r0
- ldrb r3, [r4]
- movs r0, 0x87
- ands r0, r3
- cmp r0, 0
- bne _08050EDA
- adds r0, r6, r1
- add r0, sp
- ldrb r1, [r0]
- movs r2, 0x1
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050EDA
- ldrb r1, [r5, 0x2]
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050EDA
- mov r0, r9
- orrs r0, r3
- strb r0, [r4]
-_08050EDA:
- adds r5, 0x1
- movs r3, 0x1
- add r8, r3
- add r12, r3
- adds r6, 0x1
- cmp r6, 0x1F
- bgt _08050EEA
- b _08050D4A
-_08050EEA:
- mov r7, r10
- cmp r7, 0x37
- bgt _08050EF2
- b _08050D1E
-_08050EF2:
- ldr r5, _08050F54
- add r5, sp
- ldr r5, [r5]
- cmp r5, 0
- beq _08050EFE
- b _08050D0C
-_08050EFE:
- movs r7, 0
-_08050F00:
- movs r6, 0
- lsls r2, r7, 5
- mov r0, sp
- adds r4, r2, r0
-_08050F08:
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r1, [r4]
- movs r0, 0x87
- ands r0, r1
- cmp r0, 0
- bne _08050F68
- movs r1, 0xE0
- lsls r1, 3
- add r1, sp
- ldr r1, [r1]
- cmp r1, 0
- bne _08050F5C
- ldrh r0, [r2]
- movs r2, 0x80
- lsls r2, 1
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _08050F68
-_08050F36:
- movs r0, 0
- b _08050F78
- .align 2, 0
-_08050F3C: .4byte 0xfffff8ec
-_08050F40: .4byte 0x00007fff
-_08050F44: .4byte gUnknown_203B418
-_08050F48: .4byte 0x0000e21c
-_08050F4C: .4byte 0x0000e21e
-_08050F50: .4byte gUnknown_202F1D4
-_08050F54: .4byte 0x00000704
-_08050F58: .4byte 0x0000070c
-_08050F5C:
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r0, r3, 0
- orrs r0, r1
- strh r0, [r2]
-_08050F68:
- adds r4, 0x1
- adds r6, 0x1
- cmp r6, 0x1F
- ble _08050F08
- adds r7, 0x1
- cmp r7, 0x37
- ble _08050F00
- movs r0, 0x1
-_08050F78:
- ldr r3, _08050F8C
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08050F8C: .4byte 0x00000714
- thumb_func_end sub_8050C30
-
- thumb_func_start sub_8050F90
-sub_8050F90:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x3C
- str r0, [sp]
- str r1, [sp, 0x4]
- str r2, [sp, 0x8]
- str r3, [sp, 0xC]
- movs r0, 0
- str r0, [sp, 0x10]
- movs r1, 0
- str r1, [sp, 0x14]
- movs r2, 0
- b _080511D0
-_08050FB0:
- movs r4, 0
- str r4, [sp, 0x18]
- ldr r5, [sp, 0x1C]
- adds r5, 0x1
- str r5, [sp, 0x28]
- ldr r6, [sp, 0x4]
- cmp r4, r6
- blt _08050FC2
- b _080511CE
-_08050FC2:
- ldr r1, [sp, 0x18]
- lsls r0, r1, 2
- ldr r2, [sp, 0xC]
- adds r0, r2
- ldr r3, [r0]
- adds r4, r3, 0x2
- mov r9, r4
- ldr r5, [sp, 0x1C]
- lsls r1, r5, 2
- ldr r6, [sp, 0x5C]
- adds r1, r6
- ldr r2, [r1]
- adds r4, r2, 0x2
- mov r10, r4
- ldr r0, [r0, 0x4]
- subs r0, r3
- subs r4, r0, 0x4
- ldr r0, [r1, 0x4]
- subs r0, r2
- subs r7, r0, 0x4
- movs r3, 0x5
- movs r5, 0x5
- ldr r6, [sp, 0x4]
- cmp r6, 0x2
- bgt _08050FF8
- movs r3, 0xA
- movs r4, 0xE
-_08050FF8:
- ldr r0, [sp, 0x8]
- cmp r0, 0x1
- bne _08051002
- movs r5, 0x10
- movs r7, 0x18
-_08051002:
- ldr r2, [sp, 0x1C]
- lsls r1, r2, 5
- ldr r6, [sp, 0x18]
- lsls r2, r6, 4
- subs r0, r2, r6
- lsls r0, 5
- ldr r6, [sp]
- adds r0, r6
- adds r6, r1, r0
- ldrb r0, [r6, 0xA]
- str r1, [sp, 0x30]
- str r2, [sp, 0x2C]
- cmp r0, 0
- bne _08051020
- b _08051130
-_08051020:
- ldr r0, [sp, 0x14]
- ldr r1, [sp, 0x60]
- cmp r0, r1
- beq _0805108C
- adds r0, r3, 0
- adds r1, r4, 0
- bl sub_808411C
- adds r6, r0, 0
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_808411C
- adds r5, r0, 0
- movs r1, 0x1
- adds r0, r6, 0
- orrs r0, r1
- cmp r0, r4
- bge _08051048
- adds r6, r0, 0
-_08051048:
- adds r0, r5, 0
- orrs r0, r1
- cmp r0, r7
- bge _08051052
- adds r5, r0, 0
-_08051052:
- lsls r0, r5, 1
- adds r0, r5
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r6, r0
- ble _08051062
- adds r6, r0, 0
-_08051062:
- lsls r0, r6, 1
- adds r0, r6
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- cmp r5, r0
- ble _08051072
- adds r5, r0, 0
-_08051072:
- subs r0, r4, r6
- bl sub_8084100
- mov r2, r9
- adds r4, r0, r2
- subs r0, r7, r5
- bl sub_8084100
- mov r3, r10
- adds r7, r0, r3
- adds r3, r4, r6
- adds r6, r7, r5
- b _08051098
-_0805108C:
- mov r4, r9
- mov r7, r10
- ldr r5, [sp, 0x64]
- adds r3, r4, r5
- ldr r0, [sp, 0x68]
- adds r6, r7, r0
-_08051098:
- ldr r1, [sp, 0x2C]
- ldr r2, [sp, 0x18]
- subs r0, r1, r2
- lsls r0, 5
- ldr r5, [sp]
- adds r0, r5
- ldr r1, [sp, 0x30]
- adds r0, r1, r0
- strh r4, [r0]
- strh r3, [r0, 0x4]
- strh r7, [r0, 0x2]
- strh r6, [r0, 0x6]
- adds r5, r4, 0
- ldr r2, [sp, 0x10]
- adds r2, 0x1
- str r2, [sp, 0x20]
- ldr r4, [sp, 0x14]
- adds r4, 0x1
- str r4, [sp, 0x24]
- ldr r0, [sp, 0x18]
- adds r0, 0x1
- mov r10, r0
- cmp r5, r3
- bge _08051108
-_080510C8:
- adds r4, r7, 0
- adds r1, r5, 0x1
- mov r8, r1
- cmp r4, r6
- bge _08051102
- ldr r2, _0805112C
- mov r9, r2
-_080510D6:
- adds r0, r5, 0
- adds r1, r4, 0
- str r3, [sp, 0x38]
- bl sub_8049590
- ldrh r1, [r0]
- mov r2, r9
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- mov r1, sp
- ldrb r1, [r1, 0x10]
- strb r1, [r0, 0x9]
- adds r4, 0x1
- ldr r3, [sp, 0x38]
- cmp r4, r6
- blt _080510D6
-_08051102:
- mov r5, r8
- cmp r5, r3
- blt _080510C8
-_08051108:
- ldr r2, [sp, 0x14]
- ldr r3, [sp, 0x60]
- cmp r2, r3
- beq _08051124
- ldr r4, [sp, 0x2C]
- ldr r5, [sp, 0x18]
- subs r0, r4, r5
- lsls r0, 5
- ldr r6, [sp]
- adds r0, r6
- ldr r1, [sp, 0x30]
- adds r0, r1, r0
- movs r1, 0x1
- strb r1, [r0, 0x1D]
-_08051124:
- ldr r2, [sp, 0x20]
- str r2, [sp, 0x10]
- b _080511BE
- .align 2, 0
-_0805112C: .4byte 0x0000fffc
-_08051130:
- movs r1, 0x2
- movs r3, 0x4
- movs r2, 0x2
- mov r8, r3
- ldr r5, [sp, 0x18]
- cmp r5, 0
- bne _08051140
- movs r1, 0x1
-_08051140:
- ldr r0, [sp, 0x1C]
- cmp r0, 0
- bne _08051148
- movs r2, 0x1
-_08051148:
- ldr r0, [sp, 0x4]
- subs r0, 0x1
- ldr r5, [sp, 0x18]
- cmp r5, r0
- bne _08051154
- movs r3, 0x2
-_08051154:
- ldr r0, [sp, 0x8]
- subs r0, 0x1
- ldr r5, [sp, 0x1C]
- cmp r5, r0
- bne _08051162
- movs r0, 0x2
- mov r8, r0
-_08051162:
- mov r5, r9
- adds r0, r5, r1
- adds r1, r5, r4
- subs r1, r3
- str r2, [sp, 0x34]
- bl sub_808411C
- adds r5, r0, 0
- ldr r2, [sp, 0x34]
- mov r1, r10
- adds r0, r1, r2
- adds r1, r7
- mov r2, r8
- subs r1, r2
- bl sub_808411C
- adds r4, r0, 0
- strh r5, [r6]
- adds r0, r5, 0x1
- strh r0, [r6, 0x4]
- strh r4, [r6, 0x2]
- adds r0, r4, 0x1
- strh r0, [r6, 0x6]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- ldrh r1, [r0]
- ldr r3, _080511EC
- adds r2, r3, 0
- ands r1, r2
- movs r2, 0x1
- orrs r1, r2
- strh r1, [r0]
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8049590
- movs r1, 0xFF
- strb r1, [r0, 0x9]
- ldr r4, [sp, 0x14]
- adds r4, 0x1
- str r4, [sp, 0x24]
- ldr r5, [sp, 0x18]
- adds r5, 0x1
- mov r10, r5
-_080511BE:
- ldr r6, [sp, 0x24]
- str r6, [sp, 0x14]
- mov r0, r10
- str r0, [sp, 0x18]
- ldr r1, [sp, 0x4]
- cmp r0, r1
- bge _080511CE
- b _08050FC2
-_080511CE:
- ldr r2, [sp, 0x28]
-_080511D0:
- str r2, [sp, 0x1C]
- ldr r3, [sp, 0x8]
- cmp r2, r3
- bge _080511DA
- b _08050FB0
-_080511DA:
- add sp, 0x3C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080511EC: .4byte 0x0000fffc
- thumb_func_end sub_8050F90
-
- thumb_func_start sub_80511F0
-sub_80511F0:
- push {r4-r6,lr}
- ldr r6, _08051204
- ldrb r0, [r6]
- cmp r0, 0
- beq _0805120C
- subs r0, 0x1
- strb r0, [r6]
- ldr r0, _08051208
- ldrb r0, [r0]
- b _08051244
- .align 2, 0
-_08051204: .4byte gUnknown_202F1E1
-_08051208: .4byte gUnknown_202F1E0
-_0805120C:
- ldr r1, _0805122C
- ldr r5, _08051230
- ldr r2, [r5]
- ldrb r3, [r2]
- strb r3, [r1]
- adds r4, r2, 0x1
- str r4, [r5]
- lsls r0, r3, 24
- lsrs r0, 24
- cmp r0, 0xE
- bne _08051234
- ldrb r0, [r2, 0x1]
- strb r0, [r1]
- adds r0, r4, 0x1
- str r0, [r5]
- b _08051242
- .align 2, 0
-_0805122C: .4byte gUnknown_202F1E0
-_08051230: .4byte gUnknown_202F1DC
-_08051234:
- movs r0, 0xF
- ands r0, r3
- strb r0, [r6]
- movs r0, 0xF0
- ands r0, r3
- lsrs r0, 4
- strb r0, [r1]
-_08051242:
- ldrb r0, [r1]
-_08051244:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_80511F0
-
- thumb_func_start sub_805124C
-sub_805124C:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r5, [sp, 0x1C]
- lsls r1, 24
- lsrs r1, 24
- lsls r5, 24
- lsrs r5, 24
- ldrh r6, [r0]
- movs r7, 0x80
- lsls r7, 1
- adds r4, r7, 0
- movs r7, 0
- mov r8, r7
- orrs r4, r6
- strh r4, [r0]
- mov r4, r8
- strb r4, [r0, 0xE]
- str r5, [sp]
- bl sub_8051A74
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805124C
-
- thumb_func_start sub_8051288
-sub_8051288:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- str r0, [sp, 0x4]
- ldr r0, _08051374
- ldr r7, [r0]
- ldr r0, _08051378
- adds r3, r7, r0
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- ldr r2, [sp, 0x4]
- lsls r1, r2, 2
- adds r0, r1, r0
- ldr r0, [r0]
- ldrb r2, [r0]
- mov r10, r2
- ldrb r0, [r0, 0x1]
- mov r9, r0
- ldr r2, _0805137C
- adds r0, r7, r2
- movs r4, 0
- mov r2, r10
- strh r2, [r0]
- ldr r2, _08051380
- adds r0, r7, r2
- mov r2, r9
- strh r2, [r0]
- ldr r2, _08051384
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldr r0, [r1]
- adds r0, 0x3
- str r0, [r2]
- ldr r0, _08051388
- strb r4, [r0]
- movs r6, 0x5
- mov r0, r9
- adds r0, 0x5
- cmp r6, r0
- bge _0805132E
- movs r1, 0x5
- add r1, r10
- mov r8, r1
- str r0, [sp, 0x8]
-_080512E8:
- movs r5, 0x5
- cmp r5, r8
- bge _08051326
-_080512EE:
- bl sub_80511F0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- movs r1, 0x1
- str r1, [sp]
- adds r1, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_805124C
- lsls r0, 24
- cmp r0, 0
- beq _08051320
- ldr r2, _0805138C
- adds r0, r7, r2
- strh r5, [r0]
- ldr r1, _08051390
- adds r0, r7, r1
- strh r6, [r0]
-_08051320:
- adds r5, 0x1
- cmp r5, r8
- blt _080512EE
-_08051326:
- adds r6, 0x1
- ldr r2, [sp, 0x8]
- cmp r6, r2
- blt _080512E8
-_0805132E:
- movs r6, 0
- ldr r0, _08051394
- adds r7, r0, 0
-_08051334:
- movs r5, 0
- adds r4, r6, 0x1
-_08051338:
- cmp r5, 0x4
- ble _08051350
- mov r0, r10
- adds r0, 0x5
- cmp r5, r0
- bge _08051350
- cmp r6, 0x4
- ble _08051350
- mov r0, r9
- adds r0, 0x5
- cmp r6, r0
- blt _080513A0
-_08051350:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x10
- movs r3, 0
- orrs r1, r0
- strh r1, [r2]
- ldr r0, _08051398
- ldrb r0, [r0]
- cmp r0, 0
- beq _0805139C
- ands r1, r7
- movs r0, 0x3
- orrs r1, r0
- b _0805139E
- .align 2, 0
-_08051374: .4byte gUnknown_203B418
-_08051378: .4byte 0x00013568
-_0805137C: .4byte 0x0000e260
-_08051380: .4byte 0x0000e262
-_08051384: .4byte gUnknown_202F1DC
-_08051388: .4byte gUnknown_202F1E1
-_0805138C: .4byte 0x0000e21c
-_08051390: .4byte 0x0000e21e
-_08051394: .4byte 0x0000fffc
-_08051398: .4byte gUnknown_202F1A8
-_0805139C:
- ands r1, r7
-_0805139E:
- strh r1, [r2]
-_080513A0:
- adds r5, 0x1
- cmp r5, 0x37
- ble _08051338
- adds r6, r4, 0
- cmp r6, 0x1F
- ble _08051334
- ldr r1, [sp, 0x4]
- cmp r1, 0x4
- bne _080513DA
- movs r6, 0x5
- ldr r2, _0805142C
- adds r7, r2, 0
-_080513B8:
- movs r5, 0x2
- adds r4, r6, 0x1
-_080513BC:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- ldrh r2, [r0]
- movs r1, 0x10
- orrs r1, r2
- ands r1, r7
- strh r1, [r0]
- adds r5, 0x1
- cmp r5, 0x4
- ble _080513BC
- adds r6, r4, 0
- cmp r6, 0x10
- ble _080513B8
-_080513DA:
- ldr r0, _08051430
- ldr r0, [r0]
- ldr r1, _08051434
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x3F
- ble _08051416
- movs r6, 0
-_080513EC:
- movs r5, 0
- adds r4, r6, 0x1
-_080513F0:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _0805140A
- movs r0, 0x10
- orrs r0, r1
- strh r0, [r2]
-_0805140A:
- adds r5, 0x1
- cmp r5, 0x37
- ble _080513F0
- adds r6, r4, 0
- cmp r6, 0x1F
- ble _080513EC
-_08051416:
- bl sub_804E9DC
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0805142C: .4byte 0x0000fffc
-_08051430: .4byte gUnknown_203B418
-_08051434: .4byte 0x00003a0e
- thumb_func_end sub_8051288
-
- thumb_func_start sub_8051438
-sub_8051438:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- mov r9, r0
- ldr r0, _080515AC
- ldr r0, [r0]
- str r0, [sp, 0x4]
- ldr r2, _080515B0
- ldr r4, _080515B4
- adds r3, r0, r4
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- lsls r1, 2
- adds r0, r1, r0
- ldr r0, [r0]
- adds r0, 0x3
- str r0, [r2]
- ldr r2, _080515B8
- movs r0, 0
- strb r0, [r2]
- ldr r0, [r3]
- ldr r0, [r0, 0x4]
- adds r1, r0
- ldr r0, [r1]
- ldrb r1, [r0, 0x2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0805147A
- b _080515D8
-_0805147A:
- ldr r5, [sp, 0x4]
- ldr r0, _080515BC
- adds r1, r5, r0
- mov r2, r9
- movs r3, 0
- ldrsh r0, [r2, r3]
- str r0, [r1]
- ldr r4, _080515C0
- adds r1, r5, r4
- movs r5, 0x2
- ldrsh r0, [r2, r5]
- str r0, [r1]
- ldr r0, [sp, 0x4]
- ldr r2, _080515C4
- adds r1, r0, r2
- mov r3, r9
- movs r4, 0x4
- ldrsh r0, [r3, r4]
- str r0, [r1]
- ldr r5, [sp, 0x4]
- ldr r0, _080515C8
- adds r1, r5, r0
- movs r2, 0x6
- ldrsh r0, [r3, r2]
- str r0, [r1]
- movs r3, 0
- str r3, [sp, 0x8]
- mov r4, r9
- movs r5, 0x2
- ldrsh r4, [r4, r5]
- mov r8, r4
- mov r1, r9
- movs r2, 0x6
- ldrsh r0, [r1, r2]
- cmp r8, r0
- blt _080514C4
- b _08051640
-_080514C4:
- mov r3, r9
- movs r4, 0
- ldrsh r7, [r3, r4]
- movs r5, 0x4
- ldrsh r0, [r3, r5]
- ldr r1, [sp, 0x8]
- adds r1, 0x1
- str r1, [sp, 0x10]
- mov r2, r8
- adds r2, 0x1
- str r2, [sp, 0xC]
- cmp r7, r0
- bge _08051598
- ldr r4, _080515CC
- ldr r3, [sp, 0x4]
- adds r4, r3, r4
- str r4, [sp, 0x14]
- movs r5, 0
- str r5, [sp, 0x18]
- ldr r0, [sp, 0x8]
- mov r10, r0
-_080514EE:
- bl sub_80511F0
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r7, 0
- mov r1, r8
- bl sub_8049590
- adds r6, r0, 0
- ldr r1, [sp, 0x4]
- ldr r2, _080515D0
- adds r0, r1, r2
- add r0, r10
- strb r5, [r0]
- ldr r3, [sp, 0x8]
- lsls r4, r3, 1
- adds r4, r3
- lsls r4, 3
- ldr r1, [sp, 0x14]
- adds r0, r1, r4
- movs r2, 0
- str r2, [sp]
- adds r1, r5, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_805124C
- ldrb r1, [r6, 0x9]
- ldr r3, [sp, 0x18]
- adds r4, r3
- ldr r5, [sp, 0x4]
- adds r4, r5, r4
- adds r0, r6, 0
- ldr r2, _080515CC
- adds r4, r2
- ldm r4!, {r2,r3,r5}
- stm r0!, {r2,r3,r5}
- ldm r4!, {r2,r3,r5}
- stm r0!, {r2,r3,r5}
- mov r3, r9
- movs r4, 0
- ldrsh r0, [r3, r4]
- adds r0, 0x2
- cmp r7, r0
- blt _08051572
- movs r5, 0x4
- ldrsh r0, [r3, r5]
- subs r0, 0x2
- cmp r7, r0
- bge _08051572
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- adds r0, 0x2
- cmp r8, r0
- blt _08051572
- movs r4, 0x6
- ldrsh r0, [r3, r4]
- subs r0, 0x2
- cmp r8, r0
- bge _08051572
- movs r0, 0x88
- lsls r0, 1
- strh r0, [r6]
- movs r0, 0xE
- strb r0, [r6, 0xE]
-_08051572:
- strb r1, [r6, 0x9]
- ldr r5, [sp, 0x4]
- ldr r2, _080515D4
- adds r0, r5, r2
- strb r1, [r0]
- ldr r3, [sp, 0x14]
- adds r3, 0xC0
- str r3, [sp, 0x14]
- ldr r4, [sp, 0x18]
- adds r4, 0xC0
- str r4, [sp, 0x18]
- movs r5, 0x8
- add r10, r5
- adds r7, 0x1
- mov r1, r9
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r7, r0
- blt _080514EE
-_08051598:
- ldr r3, [sp, 0x10]
- str r3, [sp, 0x8]
- ldr r4, [sp, 0xC]
- mov r8, r4
- mov r5, r9
- movs r1, 0x6
- ldrsh r0, [r5, r1]
- cmp r8, r0
- blt _080514C4
- b _08051640
- .align 2, 0
-_080515AC: .4byte gUnknown_203B418
-_080515B0: .4byte gUnknown_202F1DC
-_080515B4: .4byte 0x00013568
-_080515B8: .4byte gUnknown_202F1E1
-_080515BC: .4byte 0x0000e250
-_080515C0: .4byte 0x0000e254
-_080515C4: .4byte 0x0000e258
-_080515C8: .4byte 0x0000e25c
-_080515CC: .4byte 0x0000e27c
-_080515D0: .4byte 0x0000e87c
-_080515D4: .4byte 0x0000e8bc
-_080515D8:
- mov r2, r9
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- mov r8, r2
- b _08051636
-_080515E2:
- mov r0, r9
- movs r1, 0
- ldrsh r7, [r0, r1]
- movs r2, 0x4
- ldrsh r0, [r0, r2]
- mov r3, r8
- adds r3, 0x1
- str r3, [sp, 0xC]
- cmp r7, r0
- bge _08051632
-_080515F6:
- bl sub_80511F0
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- mov r1, r8
- bl sub_8049590
- adds r5, r0, 0
- ldrb r6, [r5, 0x9]
- movs r0, 0x1
- str r0, [sp]
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, r8
- bl sub_805124C
- strb r6, [r5, 0x9]
- ldr r4, [sp, 0x4]
- ldr r5, _08051650
- adds r0, r4, r5
- strb r6, [r0]
- adds r7, 0x1
- mov r1, r9
- movs r2, 0x4
- ldrsh r0, [r1, r2]
- cmp r7, r0
- blt _080515F6
-_08051632:
- ldr r3, [sp, 0xC]
- mov r8, r3
-_08051636:
- mov r4, r9
- movs r5, 0x6
- ldrsh r0, [r4, r5]
- cmp r8, r0
- blt _080515E2
-_08051640:
- 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
-_08051650: .4byte 0x0000e8bc
- thumb_func_end sub_8051438
-
- thumb_func_start sub_8051654
-sub_8051654:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- str r0, [sp]
- ldr r4, _080516EC
- ldr r1, [r4, 0x8]
- ldr r0, [r4]
- subs r1, r0
- subs r1, 0x2
- movs r0, 0x3
- bl sub_808411C
- mov r8, r0
- cmp r0, 0x2
- bgt _0805167C
- movs r0, 0x3
- mov r8, r0
-_0805167C:
- ldr r1, [r4, 0xC]
- ldr r0, [r4, 0x4]
- subs r1, r0
- subs r1, 0x2
- movs r0, 0x3
- bl sub_808411C
- mov r9, r0
- cmp r0, 0x2
- bgt _08051694
- movs r1, 0x3
- mov r9, r1
-_08051694:
- movs r0, 0x2
- movs r1, 0x4
- bl sub_808411C
- mov r10, r0
- movs r5, 0
- cmp r5, r10
- bge _08051734
- ldr r0, [r4, 0x8]
- ldr r1, [r4]
- subs r0, r1
- cmp r0, r8
- ble _08051734
- adds r6, r4, 0
-_080516B0:
- movs r0, 0x64
- bl sub_8084100
- cmp r0, 0x31
- bgt _080516F4
- ldr r4, [r6, 0x4]
- ldr r0, [r6, 0xC]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _080516E4
- ldr r5, _080516EC
- ldr r0, _080516F0
- adds r2, r0, 0
-_080516CA:
- ldr r0, [r5]
- adds r1, r4, 0
- str r2, [sp, 0xC]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r2, [sp, 0xC]
- ands r1, r2
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, [r5, 0xC]
- cmp r4, r0
- blt _080516CA
-_080516E4:
- ldr r0, [r6]
- adds r0, 0x1
- str r0, [r6]
- b _08051724
- .align 2, 0
-_080516EC: .4byte gUnknown_202F1B8
-_080516F0: .4byte 0x0000ffdf
-_080516F4:
- ldr r0, [r6, 0x8]
- subs r0, 0x1
- str r0, [r6, 0x8]
- ldr r4, [r6, 0x4]
- ldr r0, [r6, 0xC]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _08051724
- ldr r5, _08051784
- ldr r1, _08051788
- adds r2, r1, 0
-_0805170A:
- ldr r0, [r5, 0x8]
- adds r1, r4, 0
- str r2, [sp, 0xC]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r2, [sp, 0xC]
- ands r1, r2
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, [r5, 0xC]
- cmp r4, r0
- blt _0805170A
-_08051724:
- adds r5, r7, 0
- cmp r5, r10
- bge _08051734
- ldr r0, [r6, 0x8]
- ldr r1, [r6]
- subs r0, r1
- cmp r0, r8
- bgt _080516B0
-_08051734:
- movs r5, 0
- ldr r3, _08051784
- cmp r5, r10
- bge _080517CE
- ldr r0, [r3, 0xC]
- ldr r1, [r3, 0x4]
- subs r0, r1
- cmp r0, r9
- ble _080517CE
- adds r6, r3, 0
-_08051748:
- movs r0, 0x64
- bl sub_8084100
- cmp r0, 0x31
- bgt _0805178C
- ldr r4, [r6]
- ldr r0, [r6, 0x8]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _0805177C
- ldr r5, _08051784
- ldr r0, _08051788
- adds r2, r0, 0
-_08051762:
- ldr r1, [r5, 0x4]
- adds r0, r4, 0
- str r2, [sp, 0xC]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r2, [sp, 0xC]
- ands r1, r2
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, [r5, 0x8]
- cmp r4, r0
- blt _08051762
-_0805177C:
- ldr r0, [r6, 0x4]
- adds r0, 0x1
- str r0, [r6, 0x4]
- b _080517BC
- .align 2, 0
-_08051784: .4byte gUnknown_202F1B8
-_08051788: .4byte 0x0000ffdf
-_0805178C:
- ldr r0, [r6, 0xC]
- subs r0, 0x1
- str r0, [r6, 0xC]
- ldr r4, [r6]
- ldr r0, [r6, 0x8]
- adds r7, r5, 0x1
- cmp r4, r0
- bge _080517BC
- ldr r5, _080518E4
- ldr r1, _080518E8
- adds r2, r1, 0
-_080517A2:
- ldr r1, [r5, 0xC]
- adds r0, r4, 0
- str r2, [sp, 0xC]
- bl sub_8049590
- ldrh r1, [r0]
- ldr r2, [sp, 0xC]
- ands r1, r2
- strh r1, [r0]
- adds r4, 0x1
- ldr r0, [r5, 0x8]
- cmp r4, r0
- blt _080517A2
-_080517BC:
- adds r5, r7, 0
- ldr r3, _080518E4
- cmp r5, r10
- bge _080517CE
- ldr r1, [r6, 0xC]
- ldr r0, [r6, 0x4]
- subs r1, r0
- cmp r1, r9
- bgt _08051748
-_080517CE:
- ldr r7, [r3]
- ldr r0, [r3, 0x8]
- cmp r7, r0
- bge _08051824
- adds r4, r3, 0
- mov r9, r3
-_080517DA:
- ldr r5, [r4, 0x4]
- ldr r0, [r4, 0xC]
- adds r1, r7, 0x1
- mov r8, r1
- cmp r5, r0
- bge _0805181A
- ldr r3, _080518E4
- ldr r0, _080518E8
- adds r6, r0, 0
-_080517EC:
- adds r0, r7, 0
- adds r1, r5, 0
- str r3, [sp, 0x10]
- bl sub_8049590
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x20
- ands r0, r1
- ldr r3, [sp, 0x10]
- cmp r0, 0
- beq _08051812
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08051812
- adds r0, r1, 0
- ands r0, r6
- strh r0, [r2]
-_08051812:
- adds r5, 0x1
- ldr r0, [r4, 0xC]
- cmp r5, r0
- blt _080517EC
-_0805181A:
- mov r7, r8
- mov r1, r9
- ldr r0, [r1, 0x8]
- cmp r7, r0
- blt _080517DA
-_08051824:
- ldr r0, [r3]
- ldr r1, [r3, 0x8]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r2, r0, 1
- ldr r0, [r3, 0x4]
- ldr r1, [r3, 0xC]
- adds r0, r1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- subs r0, 0x1
- mov r10, r0
- movs r0, 0
- mov r9, r0
- subs r7, r2, 0x1
- adds r0, r2, 0x2
- cmp r7, r0
- bge _080518D2
- adds r2, r0, 0
- str r2, [sp, 0x4]
-_08051850:
- mov r5, r10
- adds r0, r5, 0x3
- adds r1, r7, 0x1
- mov r8, r1
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x8]
- cmp r5, r0
- bge _080518C6
- movs r3, 0
-_08051864:
- adds r0, r7, 0
- adds r1, r5, 0
- str r3, [sp, 0x10]
- bl sub_8049590
- adds r6, r0, 0
- ldrh r1, [r6]
- movs r0, 0x20
- ands r0, r1
- ldr r3, [sp, 0x10]
- cmp r0, 0
- beq _080518BA
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _080518BA
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080518BA
- mov r0, r9
- lsls r2, r0, 1
- adds r2, r3
- ldr r0, [sp]
- ldrb r1, [r0, 0x18]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 1
- adds r2, r0
- ldr r1, _080518EC
- adds r2, r1
- movs r0, 0
- ldrsh r4, [r2, r0]
- movs r0, 0x64
- bl sub_8084100
- ldr r3, [sp, 0x10]
- cmp r4, r0
- ble _080518BA
- ldrh r1, [r6, 0x4]
- movs r0, 0x2
- orrs r0, r1
- strh r0, [r6, 0x4]
-_080518BA:
- adds r5, 0x1
- adds r3, 0x6
- mov r0, r10
- adds r0, 0x3
- cmp r5, r0
- blt _08051864
-_080518C6:
- mov r7, r8
- ldr r1, [sp, 0x8]
- mov r9, r1
- ldr r0, [sp, 0x4]
- cmp r7, r0
- blt _08051850
-_080518D2:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080518E4: .4byte gUnknown_202F1B8
-_080518E8: .4byte 0x0000ffdf
-_080518EC: .4byte gUnknown_80F57D4
- thumb_func_end sub_8051654
-
- thumb_func_start sub_80518F0
-sub_80518F0:
- push {r4-r7,lr}
- movs r5, 0
- movs r6, 0x10
- movs r7, 0
-_080518F8:
- adds r0, r5, 0
- movs r1, 0x1
- bl sub_8049590
- adds r4, r0, 0
- bl sub_804FD10
- cmp r5, 0
- beq _0805190E
- cmp r5, 0x37
- bne _08051914
-_0805190E:
- ldrh r0, [r4]
- orrs r0, r6
- strh r0, [r4]
-_08051914:
- adds r0, r5, 0
- movs r1, 0x1E
- bl sub_8049590
- adds r4, r0, 0
- bl sub_804FD10
- cmp r5, 0
- beq _0805192A
- cmp r5, 0x37
- bne _08051930
-_0805192A:
- ldrh r0, [r4]
- orrs r0, r6
- strh r0, [r4]
-_08051930:
- adds r5, 0x1
- cmp r5, 0x37
- ble _080518F8
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80518F0
-
- thumb_func_start sub_805193C
-sub_805193C:
- push {r4-r6,lr}
- sub sp, 0x8
- adds r6, r3, 0
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 16
- lsls r2, 16
- lsrs r1, 16
- orrs r1, r2
- str r1, [sp, 0x4]
- adds r0, r5, 0
- bl sub_805210C
- lsls r0, 24
- cmp r0, 0
- beq _0805196A
- mov r0, sp
- movs r1, 0x76
- movs r2, 0
- bl sub_8090A8C
- b _08051974
-_0805196A:
- mov r0, sp
- adds r1, r5, 0
- movs r2, 0
- bl sub_8090A8C
-_08051974:
- mov r0, sp
- ldrb r0, [r0]
- orrs r4, r0
- mov r0, sp
- strb r4, [r0]
- cmp r6, 0
- beq _08051984
- strb r6, [r0, 0x1]
-_08051984:
- add r0, sp, 0x4
- mov r1, sp
- movs r2, 0x1
- bl sub_80460F8
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_805193C
-
- thumb_func_start sub_8051998
-sub_8051998:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x14
- mov r8, r1
- mov r9, r2
- lsls r0, 16
- asrs r0, 16
- adds r1, r0, 0
- lsls r3, 24
- lsrs r6, r3, 24
- adds r7, r6, 0
- ldr r0, _080519E4
- cmp r1, r0
- bne _080519E8
- mov r1, sp
- movs r5, 0
- movs r4, 0
- movs r0, 0x3C
- strh r0, [r1]
- bl sub_803DA20
- mov r1, sp
- strh r0, [r1, 0x8]
- mov r0, sp
- strb r6, [r0, 0x2]
- str r4, [sp, 0x4]
- strb r5, [r0, 0x10]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r1, r9
- strh r1, [r0, 0xE]
- movs r1, 0x1
- bl sub_806B7F8
- b _08051A14
- .align 2, 0
-_080519E4: .4byte 0x000001a5
-_080519E8:
- cmp r1, 0
- beq _08051A14
- mov r0, sp
- movs r5, 0
- movs r4, 0
- strh r1, [r0]
- adds r0, r1, 0
- bl sub_803DA20
- mov r1, sp
- strh r0, [r1, 0x8]
- mov r0, sp
- strb r7, [r0, 0x2]
- str r4, [sp, 0x4]
- strb r5, [r0, 0x10]
- mov r1, r8
- strh r1, [r0, 0xC]
- mov r1, r9
- strh r1, [r0, 0xE]
- movs r1, 0x1
- bl sub_806B7F8
-_08051A14:
- add sp, 0x14
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8051998
-
- thumb_func_start sub_8051A24
-sub_8051A24:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r6, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r6, 24
- lsrs r6, 24
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- adds r7, r0, 0
- lsls r4, 16
- lsls r5, 16
- lsrs r4, 16
- orrs r4, r5
- str r4, [sp]
- adds r0, r6, 0
- mov r1, sp
- movs r2, 0
- bl sub_8045684
- cmp r0, 0
- beq _08051A66
- str r0, [r7, 0x14]
- adds r0, 0x20
- mov r1, r8
- strb r1, [r0]
-_08051A66:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8051A24
-
- thumb_func_start sub_8051A74
-sub_8051A74:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r2, 0
- adds r7, r3, 0
- ldr r0, [sp, 0x20]
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- cmp r1, 0xF
- bls _08051AA2
- ldrh r0, [r4]
- ldr r1, _08051AB4
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strh r1, [r4]
-_08051AA2:
- mov r0, r8
- cmp r0, 0x45
- bls _08051AAA
- b _08051D68
-_08051AAA:
- lsls r0, 2
- ldr r1, _08051AB8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08051AB4: .4byte 0x0000fffc
-_08051AB8: .4byte _08051ABC
- .align 2, 0
-_08051ABC:
- .4byte _08051BF0
- .4byte _08051C0C
- .4byte _08051D50
- .4byte _08051E1A
- .4byte _08051C20
- .4byte _08051C54
- .4byte _08051C64
- .4byte _08051C74
- .4byte _08051C94
- .4byte _08051D00
- .4byte _08051C7E
- .4byte _08051D10
- .4byte _08051D24
- .4byte _08051D50
- .4byte _08051D50
- .4byte _08051E1A
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051D68
- .4byte _08051C94
- .4byte _08051CD4
- .4byte _08051BD4
-_08051BD4:
- ldr r0, _08051BFC
- ldr r0, [r0]
- ldr r2, _08051C00
- adds r1, r0, r2
- strh r6, [r1]
- ldr r3, _08051C04
- adds r0, r3
- strh r7, [r0]
- movs r0, 0xB
- adds r1, r6, 0
- adds r2, r7, 0
- movs r3, 0
- bl sub_8051A24
-_08051BF0:
- ldrh r1, [r4]
- ldr r0, _08051C08
- ands r0, r1
- movs r1, 0x1
- movs r2, 0
- b _08051D42
- .align 2, 0
-_08051BFC: .4byte gUnknown_203B418
-_08051C00: .4byte 0x00000684
-_08051C04: .4byte 0x00000686
-_08051C08: .4byte 0x0000fffc
-_08051C0C:
- ldrh r1, [r4]
- ldr r0, _08051C18
- ands r0, r1
- ldr r1, _08051C1C
- ands r0, r1
- b _08051D5A
- .align 2, 0
-_08051C18: .4byte 0x0000fffc
-_08051C1C: .4byte 0x0000feff
-_08051C20:
- ldrh r1, [r4]
- ldr r0, _08051C44
- ands r0, r1
- movs r1, 0x1
- movs r2, 0
- orrs r0, r1
- strh r0, [r4]
- ldr r0, _08051C48
- ldr r0, [r0]
- ldr r3, _08051C4C
- adds r1, r0, r3
- strh r6, [r1]
- ldr r1, _08051C50
- adds r0, r1
- strh r7, [r0]
- strb r2, [r4, 0x9]
- b _08051E1A
- .align 2, 0
-_08051C44: .4byte 0x0000fffc
-_08051C48: .4byte gUnknown_203B418
-_08051C4C: .4byte 0x0000e218
-_08051C50: .4byte 0x0000e21a
-_08051C54:
- ldrh r1, [r4]
- ldr r0, _08051C60
- ands r0, r1
- movs r2, 0
- movs r1, 0x2
- b _08051D42
- .align 2, 0
-_08051C60: .4byte 0x0000fffc
-_08051C64:
- ldrh r1, [r4]
- ldr r0, _08051C70
- ands r0, r1
- movs r1, 0x3
- b _08051D58
- .align 2, 0
-_08051C70: .4byte 0x0000fffc
-_08051C74:
- ldr r1, _08051C8C
- movs r0, 0x1
- strb r0, [r1]
- bl sub_8049840
-_08051C7E:
- ldrh r1, [r4]
- ldr r0, _08051C90
- ands r0, r1
- movs r1, 0x3
- orrs r0, r1
- b _08051D56
- .align 2, 0
-_08051C8C: .4byte gUnknown_202F1A8
-_08051C90: .4byte 0x0000fffc
-_08051C94:
- ldrh r1, [r4]
- ldr r0, _08051CC0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strh r0, [r4]
- ldrh r0, [r4, 0x4]
- movs r2, 0
- orrs r0, r1
- ldr r1, _08051CC4
- ands r0, r1
- strh r0, [r4, 0x4]
- strb r2, [r4, 0x9]
- ldr r0, _08051CC8
- ldr r0, [r0]
- ldr r2, _08051CCC
- adds r1, r0, r2
- strh r6, [r1]
- ldr r3, _08051CD0
- adds r0, r3
- strh r7, [r0]
- b _08051E1A
- .align 2, 0
-_08051CC0: .4byte 0x0000fffc
-_08051CC4: .4byte 0x0000fffd
-_08051CC8: .4byte gUnknown_203B418
-_08051CCC: .4byte 0x0000e21c
-_08051CD0: .4byte 0x0000e21e
-_08051CD4:
- ldrh r1, [r4]
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- orrs r0, r1
- ldr r1, _08051CF8
- ands r0, r1
- movs r1, 0x1
- movs r2, 0
- orrs r0, r1
- strh r0, [r4]
- ldrh r1, [r4, 0x4]
- ldr r0, _08051CFC
- ands r0, r1
- strh r0, [r4, 0x4]
- strb r2, [r4, 0x9]
- b _08051E1A
- .align 2, 0
-_08051CF8: .4byte 0x0000fffc
-_08051CFC: .4byte 0x0000fffd
-_08051D00:
- ldrh r1, [r4]
- ldr r0, _08051D0C
- ands r0, r1
- movs r1, 0x1
- b _08051D58
- .align 2, 0
-_08051D0C: .4byte 0x0000fffc
-_08051D10:
- ldrh r1, [r4]
- ldr r0, _08051D20
- ands r0, r1
- movs r1, 0x1
- movs r2, 0
- orrs r0, r1
- b _08051D3C
- .align 2, 0
-_08051D20: .4byte 0x0000fffc
-_08051D24:
- ldrh r1, [r4]
- ldr r0, _08051D4C
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- movs r2, 0x80
- lsls r2, 5
- adds r1, r2, 0
- orrs r0, r1
- movs r1, 0x10
- orrs r0, r1
- movs r2, 0
-_08051D3C:
- movs r3, 0x80
- lsls r3, 4
- adds r1, r3, 0
-_08051D42:
- orrs r0, r1
- strh r0, [r4]
- strb r2, [r4, 0x9]
- b _08051E1A
- .align 2, 0
-_08051D4C: .4byte 0x0000fffc
-_08051D50:
- ldrh r1, [r4]
- ldr r0, _08051D64
- ands r0, r1
-_08051D56:
- movs r1, 0x10
-_08051D58:
- orrs r0, r1
-_08051D5A:
- strh r0, [r4]
- movs r0, 0xFF
- strb r0, [r4, 0x9]
- b _08051E1A
- .align 2, 0
-_08051D64: .4byte 0x0000fffc
-_08051D68:
- mov r0, r8
- subs r0, 0x10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xCB
- bhi _08051E1A
- mov r1, r8
- lsls r0, r1, 4
- ldr r1, _08051DA0
- adds r5, r0, r1
- ldrb r0, [r5, 0xC]
- strb r0, [r4, 0x9]
- ldrb r1, [r5]
- cmp r1, 0
- beq _08051DB8
- mov r2, r9
- cmp r2, 0
- beq _08051DA4
- ldrb r0, [r5]
- movs r1, 0x2
- ldrsh r3, [r5, r1]
- ldr r1, [r5, 0x4]
- str r1, [sp]
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_805193C
- b _08051DDC
- .align 2, 0
-_08051DA0: .4byte gUnknown_80F6D20
-_08051DA4:
- ldr r0, _08051DB0
- ldr r0, [r0]
- ldr r2, _08051DB4
- adds r0, r2
- strb r1, [r0]
- b _08051DDC
- .align 2, 0
-_08051DB0: .4byte gUnknown_203B418
-_08051DB4: .4byte 0x0000068b
-_08051DB8:
- ldr r2, [r5, 0x4]
- cmp r2, 0
- beq _08051DDC
- ldr r0, _08051E2C
- ldr r1, [r0]
- subs r0, r2, 0x1
- lsls r0, 2
- adds r0, r1, r0
- ldr r3, _08051E30
- adds r0, r3
- strh r6, [r0]
- ldr r0, [r5, 0x4]
- subs r0, 0x1
- lsls r0, 2
- adds r1, r0
- ldr r0, _08051E34
- adds r1, r0
- strh r7, [r1]
-_08051DDC:
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08051DF2
- ldrb r3, [r5, 0xA]
- mov r1, r8
- str r1, [sp]
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_8051998
-_08051DF2:
- ldrb r0, [r5, 0xB]
- cmp r0, 0x14
- beq _08051E08
- mov r2, r9
- cmp r2, 0
- beq _08051E08
- ldrb r3, [r5, 0xD]
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_8051A24
-_08051E08:
- ldrb r0, [r5, 0xE]
- cmp r0, 0
- beq _08051E1A
- ldrh r0, [r4]
- ldr r1, _08051E38
- ands r1, r0
- movs r0, 0x2
- orrs r1, r0
- strh r1, [r4]
-_08051E1A:
- movs r0, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08051E2C: .4byte gUnknown_203B418
-_08051E30: .4byte 0x0000e220
-_08051E34: .4byte 0x0000e222
-_08051E38: .4byte 0x0000fffc
- thumb_func_end sub_8051A74
-
- thumb_func_start sub_8051E3C
-sub_8051E3C:
- push {r4-r6,lr}
- sub sp, 0x4
- movs r5, 0
-_08051E42:
- movs r4, 0
- adds r6, r5, 0x1
-_08051E46:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8049590
- adds r2, r0, 0
- ldrb r0, [r2, 0xE]
- cmp r0, 0xF
- bls _08051E66
- adds r1, r0, 0
- movs r0, 0
- str r0, [sp]
- adds r0, r2, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_8051A74
-_08051E66:
- adds r4, 0x1
- cmp r4, 0x37
- ble _08051E46
- adds r5, r6, 0
- cmp r5, 0x1F
- ble _08051E42
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8051E3C
-
- thumb_func_start sub_8051E7C
-sub_8051E7C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- mov r9, r0
- movs r1, 0x4
- ldrsh r0, [r0, r1]
- mov r2, r9
- movs r3, 0x6
- ldrsh r1, [r2, r3]
- subs r1, 0x1
- bl sub_8049590
- str r0, [sp, 0x8]
- ldrh r1, [r0]
- movs r0, 0x80
- lsls r0, 5
- ands r0, r1
- cmp r0, 0
- bne _08051EB8
- ldr r0, _08051EB4
- ldr r1, [r0]
- mov r0, r9
- bl sub_80522A8
- b _080520F6
- .align 2, 0
-_08051EB4: .4byte gUnknown_80FDDF0
-_08051EB8:
- ldr r0, _08051EF0
- ldr r0, [r0]
- ldr r1, _08051EF4
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08051EC8
- b _080520EC
-_08051EC8:
- mov r2, r9
- ldrh r1, [r2, 0x6]
- subs r1, 0x1
- lsls r1, 16
- ldrh r0, [r2, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, r9
- bl sub_80450FC
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0xC]
- mov r3, r9
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- adds r6, r0, 0
- subs r6, 0x15
- b _08051FE0
- .align 2, 0
-_08051EF0: .4byte gUnknown_203B418
-_08051EF4: .4byte 0x00003a09
-_08051EF8:
- mov r2, r9
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- adds r5, r0, 0
- subs r5, 0x14
- adds r0, 0x14
- adds r1, r6, 0x1
- str r1, [sp, 0x10]
- cmp r5, r0
- bgt _08051FD8
- ldr r2, _080520C0
- mov r10, r2
-_08051F10:
- mov r0, r10
- ldr r3, [r0]
- ldr r1, _080520C4
- adds r0, r3, r1
- ldr r1, [r0]
- subs r2, r5, r1
- mov r8, r2
- ldr r2, _080520C8
- adds r0, r3, r2
- ldr r2, [r0]
- subs r7, r6, r2
- mov r0, r8
- cmp r0, 0
- blt _08051FCA
- cmp r7, 0
- blt _08051FCA
- cmp r0, 0x7
- bgt _08051FCA
- cmp r7, 0x7
- bgt _08051FCA
- adds r0, r1, 0x1
- cmp r5, r0
- blt _08051FCA
- adds r0, r2, 0x1
- cmp r6, r0
- blt _08051FCA
- ldr r1, _080520CC
- adds r0, r3, r1
- ldr r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- bge _08051FCA
- ldr r2, _080520D0
- adds r0, r3, r2
- ldr r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bge _08051FCA
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- adds r4, r0, 0
- ldrh r0, [r4]
- movs r3, 0x80
- lsls r3, 1
- adds r1, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08051F9A
- mov r0, r10
- ldr r2, [r0]
- lsls r1, r7, 1
- adds r1, r7
- lsls r1, 3
- mov r3, r8
- lsls r0, r3, 1
- add r0, r8
- lsls r0, 6
- adds r1, r0
- adds r2, r1
- ldr r1, _080520D4
- adds r0, r2, r1
- ldrh r0, [r0]
- strh r0, [r4]
- ldr r3, _080520D8
- adds r2, r3
- ldrh r0, [r2]
- strh r0, [r4, 0x4]
-_08051F9A:
- mov r1, r10
- ldr r0, [r1]
- mov r2, r8
- lsls r1, r2, 3
- adds r1, r7, r1
- ldr r3, _080520DC
- adds r0, r3
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x1
- str r0, [sp]
- adds r0, r4, 0
- adds r2, r5, 0
- adds r3, r6, 0
- bl sub_8051A74
- ldrh r1, [r4, 0x4]
- movs r0, 0x3
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [sp, 0xC]
- cmp r0, 0xFF
- beq _08051FCA
- strb r0, [r4, 0x9]
-_08051FCA:
- adds r5, 0x1
- mov r2, r9
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- adds r0, 0x14
- cmp r5, r0
- ble _08051F10
-_08051FD8:
- ldr r6, [sp, 0x10]
- mov r1, r9
- movs r2, 0x6
- ldrsh r0, [r1, r2]
-_08051FE0:
- adds r0, 0x13
- cmp r6, r0
- ble _08051EF8
- mov r3, r9
- movs r1, 0x6
- ldrsh r0, [r3, r1]
- adds r6, r0, 0
- subs r6, 0x15
- adds r0, 0x13
- ldr r7, _080520C0
- cmp r6, r0
- bgt _0805207A
-_08051FF8:
- mov r2, r9
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- adds r5, r0, 0
- subs r5, 0x14
- adds r0, 0x14
- adds r1, r6, 0x1
- str r1, [sp, 0x10]
- cmp r5, r0
- bgt _0805206C
- ldr r7, _080520C0
-_0805200E:
- ldr r0, _080520C0
- ldr r4, [r0]
- ldr r2, _080520C4
- adds r0, r4, r2
- ldr r2, [r0]
- subs r1, r5, r2
- ldr r3, _080520C8
- adds r0, r4, r3
- ldr r3, [r0]
- subs r0, r6, r3
- cmp r1, 0
- blt _0805205E
- cmp r0, 0
- blt _0805205E
- cmp r1, 0x7
- bgt _0805205E
- cmp r0, 0x7
- bgt _0805205E
- adds r0, r2, 0x1
- cmp r5, r0
- blt _0805205E
- adds r0, r3, 0x1
- cmp r6, r0
- blt _0805205E
- ldr r1, _080520CC
- adds r0, r4, r1
- ldr r0, [r0]
- subs r0, 0x1
- cmp r5, r0
- bge _0805205E
- ldr r2, _080520D0
- adds r0, r4, r2
- ldr r0, [r0]
- subs r0, 0x1
- cmp r6, r0
- bge _0805205E
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_80498A8
-_0805205E:
- adds r5, 0x1
- mov r3, r9
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- adds r0, 0x14
- cmp r5, r0
- ble _0805200E
-_0805206C:
- ldr r6, [sp, 0x10]
- mov r2, r9
- movs r3, 0x6
- ldrsh r0, [r2, r3]
- adds r0, 0x13
- cmp r6, r0
- ble _08051FF8
-_0805207A:
- ldr r0, [r7]
- ldr r1, _080520E0
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r2, [sp, 0x8]
- ldrh r1, [r2]
- ldr r0, _080520E4
- ands r0, r1
- strh r0, [r2]
- mov r3, r9
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- movs r2, 0x6
- ldrsh r1, [r3, r2]
- subs r1, 0x1
- bl sub_80498A8
- bl sub_8049B8C
- bl sub_8049ED4
- add r0, sp, 0x4
- bl sub_80429FC
- ldr r0, _080520E8
- ldr r1, [r0]
- mov r0, r9
- bl sub_80522A8
- movs r0, 0x14
- movs r1, 0x3C
- bl sub_803E708
- b _080520F6
- .align 2, 0
-_080520C0: .4byte gUnknown_203B418
-_080520C4: .4byte 0x0000e250
-_080520C8: .4byte 0x0000e254
-_080520CC: .4byte 0x0000e258
-_080520D0: .4byte 0x0000e25c
-_080520D4: .4byte 0x0000e27c
-_080520D8: .4byte 0x0000e280
-_080520DC: .4byte 0x0000e87c
-_080520E0: .4byte 0x00003a09
-_080520E4: .4byte 0x0000efef
-_080520E8: .4byte gUnknown_80FDDD0
-_080520EC:
- ldr r0, _08052108
- ldr r1, [r0]
- mov r0, r9
- bl sub_80522A8
-_080520F6:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08052108: .4byte gUnknown_80FDDF0
- thumb_func_end sub_8051E7C
-
- thumb_func_start sub_805210C
-sub_805210C:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- ldr r7, _080521B4
- movs r4, 0x1
- ldr r2, [r7]
-_0805211A:
- ldrb r1, [r2]
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _0805212A
- ldrb r0, [r2, 0x2]
- cmp r0, r5
- beq _080521C8
-_0805212A:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x13
- ble _0805211A
- movs r3, 0
- ldr r0, _080521B8
- ldr r4, [r0]
- movs r6, 0x1
-_0805213A:
- movs r0, 0x64
- adds r2, r3, 0
- muls r2, r0
- adds r0, r2, r4
- ldr r1, _080521BC
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0805216C
- adds r0, r2, r4
- ldr r1, _080521C0
- adds r0, r1
- ldrb r1, [r0]
- adds r0, r6, 0
- ands r0, r1
- adds r1, r2, r4
- cmp r0, 0
- beq _0805216C
- ldr r2, _080521C4
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, r5
- beq _080521C8
-_0805216C:
- adds r3, 0x1
- cmp r3, 0x3
- ble _0805213A
- movs r3, 0
- ldr r0, _080521B8
- ldr r4, [r0]
-_08052178:
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08052196
- adds r0, r2, 0
- adds r0, 0x28
- ldrb r0, [r0]
- cmp r0, 0
- beq _08052196
- cmp r0, r5
- beq _080521C8
-_08052196:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _08052178
- ldr r0, [r7]
- lsls r1, r5, 1
- adds r0, 0x50
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080521C8
- movs r0, 0
- b _080521CA
- .align 2, 0
-_080521B4: .4byte gUnknown_203B460
-_080521B8: .4byte gUnknown_203B45C
-_080521BC: .4byte 0x00008df8
-_080521C0: .4byte 0x00008e38
-_080521C4: .4byte 0x00008e3a
-_080521C8:
- movs r0, 0x1
-_080521CA:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_805210C
-
- thumb_func_start sub_80521D0
-sub_80521D0:
- push {r4-r6,lr}
- movs r1, 0
- ldr r5, _08052200
- ldr r6, _08052204
- ldr r4, _08052208
- ldr r3, _0805220C
- movs r2, 0
-_080521DE:
- ldr r0, [r4]
- adds r0, r3
- adds r0, r1
- strb r2, [r0]
- adds r1, 0x1
- cmp r1, 0x9
- ble _080521DE
- movs r0, 0
- str r0, [r5]
- movs r0, 0x1
- strb r0, [r6]
- movs r0, 0
- bl sub_8052210
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052200: .4byte gUnknown_202F1E8
-_08052204: .4byte gUnknown_203B434
-_08052208: .4byte gUnknown_203B418
-_0805220C: .4byte 0x0001c054
- thumb_func_end sub_80521D0
-
- thumb_func_start sub_8052210
-sub_8052210:
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- movs r4, 0
- ldr r5, _08052280
-_0805221A:
- lsls r0, r4, 6
- ldr r1, [r5]
- adds r0, r1
- ldr r1, _08052284
- adds r0, r1
- ldr r1, _08052288
- bl strcpy
- adds r4, 0x1
- cmp r4, 0x9
- ble _0805221A
- ldr r1, _08052280
- ldr r0, [r1]
- ldr r2, _0805228C
- adds r0, r2
- movs r3, 0
- strb r3, [r0]
- ldr r0, [r1]
- adds r2, 0x1
- adds r1, r0, r2
- strh r3, [r1]
- adds r2, 0x2
- adds r1, r0, r2
- strh r3, [r1]
- adds r2, 0x2
- adds r1, r0, r2
- strh r3, [r1]
- ldr r1, _08052290
- adds r2, r0, r1
- movs r1, 0x4
- strh r1, [r2]
- ldr r2, _08052294
- adds r0, r2
- str r3, [r0]
- cmp r6, 0
- beq _08052278
- ldr r0, _08052298
- ldr r0, [r0]
- cmp r0, 0x3
- bne _08052278
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- movs r0, 0xB
- bl sub_803E46C
-_08052278:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08052280: .4byte gUnknown_203B418
-_08052284: .4byte 0x0001bdd4
-_08052288: .4byte gUnknown_80F7AE8
-_0805228C: .4byte 0x0001c05f
-_08052290: .4byte 0x0001c066
-_08052294: .4byte 0x0001c06c
-_08052298: .4byte gUnknown_202EDD0
- thumb_func_end sub_8052210
-
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/code_803D110.s b/asm/code_803D110.s
new file mode 100644
index 0000000..8220aa7
--- /dev/null
+++ b/asm/code_803D110.s
@@ -0,0 +1,43716 @@
+ .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
+
+ thumb_func_start sub_8048480
+sub_8048480:
+ push {lr}
+ movs r2, 0
+ movs r3, 0
+ bl sub_807D148
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048480
+
+ thumb_func_start sub_8048490
+sub_8048490:
+ push {lr}
+ bl sub_8075FCC
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048490
+
+ thumb_func_start sub_804849C
+sub_804849C:
+ push {lr}
+ movs r2, 0x1
+ bl sub_8077AE4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804849C
+
+ thumb_func_start sub_80484A8
+sub_80484A8:
+ push {lr}
+ sub sp, 0x4
+ movs r2, 0x1
+ str r2, [sp]
+ movs r3, 0x1
+ bl sub_8072008
+ add sp, 0x4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80484A8
+
+ thumb_func_start sub_80484BC
+sub_80484BC:
+ push {lr}
+ bl sub_8076D10
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80484BC
+
+ thumb_func_start sub_80484C8
+sub_80484C8:
+ push {lr}
+ ldr r2, _080484D8
+ ldr r2, [r2]
+ bl sub_80522F4
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080484D8: .4byte gUnknown_80F89F4
+ thumb_func_end sub_80484C8
+
+ thumb_func_start sub_80484DC
+sub_80484DC:
+ push {lr}
+ movs r2, 0x1
+ bl sub_807232C
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80484DC
+
+ thumb_func_start sub_80484E8
+sub_80484E8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, [r4, 0x70]
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08048500
+ adds r0, r5, 0
+ bl sub_807A290
+ b _08048516
+_08048500:
+ ldr r0, _0804851C
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08048520
+ ldr r2, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_80522F4
+_08048516:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804851C: .4byte gUnknown_202DF98
+_08048520: .4byte gUnknown_80FB580
+ thumb_func_end sub_80484E8
+
+ thumb_func_start sub_8048524
+sub_8048524:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ ldr r0, [r4, 0x70]
+ adds r5, r0, 0
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _08048542
+ adds r0, r6, 0
+ movs r2, 0
+ movs r3, 0x5
+ bl sub_8078A58
+ b _080485A4
+_08048542:
+ ldr r0, _08048560
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ adds r0, r4, 0
+ movs r1, 0x12
+ bl sub_80718D8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048568
+ ldr r0, _08048564
+ b _08048586
+ .align 2, 0
+_08048560: .4byte gUnknown_202DF98
+_08048564: .4byte gUnknown_8100298
+_08048568:
+ movs r0, 0x9E
+ lsls r0, 1
+ adds r5, r0
+ ldr r0, [r5]
+ bl sub_8094450
+ cmp r0, 0
+ beq _08048598
+ mov r0, sp
+ movs r1, 0
+ bl sub_80943A0
+ ldr r0, [sp]
+ str r0, [r5]
+ ldr r0, _08048594
+_08048586:
+ ldr r2, [r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80522F4
+ b _080485A4
+ .align 2, 0
+_08048594: .4byte gUnknown_80F9740
+_08048598:
+ ldr r0, _080485AC
+ ldr r2, [r0]
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_80522F4
+_080485A4:
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080485AC: .4byte gUnknown_80F9760
+ thumb_func_end sub_8048524
+
+ thumb_func_start sub_80485B0
+sub_80485B0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r9, r0
+ mov r8, r1
+ movs r0, 0
+ str r0, [sp]
+ movs r2, 0x1
+ mov r10, r2
+ ldr r4, [r1, 0x70]
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r1, _0804865C
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r0, r1
+ bge _080485DE
+ movs r0, 0x3
+ mov r10, r0
+_080485DE:
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0
+ beq _0804867C
+ movs r2, 0x8C
+ lsls r2, 1
+ adds r4, r2
+ adds r5, r4, 0
+ movs r7, 0x3
+_080485EE:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804862C
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0804862C
+ adds r0, r5, 0
+ bl sub_8092BC0
+ cmp r0, 0
+ beq _0804862C
+ ldrb r6, [r4, 0x5]
+ adds r0, r5, 0
+ bl sub_8092C0C
+ adds r1, r0, 0
+ ldrb r0, [r4, 0x5]
+ add r0, r10
+ strb r0, [r4, 0x5]
+ ldrb r0, [r4, 0x5]
+ cmp r0, r1
+ blt _08048622
+ strb r1, [r4, 0x5]
+_08048622:
+ ldrb r0, [r4, 0x5]
+ cmp r6, r0
+ beq _0804862C
+ movs r2, 0x1
+ str r2, [sp]
+_0804862C:
+ adds r4, 0x8
+ adds r5, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080485EE
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08048668
+ ldr r0, _08048660
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+ mov r2, r10
+ cmp r2, 0x1
+ beq _08048688
+ movs r0, 0xA
+ movs r1, 0x40
+ bl sub_803E708
+ ldr r0, _08048664
+ b _0804866A
+ .align 2, 0
+_0804865C: .4byte gUnknown_80F4F46
+_08048660: .4byte gUnknown_80FE454
+_08048664: .4byte gUnknown_80FE434
+_08048668:
+ ldr r0, _08048678
+_0804866A:
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+ b _08048688
+ .align 2, 0
+_08048678: .4byte gUnknown_80FE40C
+_0804867C:
+ ldr r0, _08048698
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+_08048688:
+ 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
+_08048698: .4byte gUnknown_80FE40C
+ thumb_func_end sub_80485B0
+
+ thumb_func_start sub_804869C
+sub_804869C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x1C
+ adds r4, r0, 0
+ adds r7, r1, 0
+ lsls r2, 24
+ cmp r2, 0
+ beq _08048724
+ ldr r5, [r7, 0x70]
+ ldr r0, _080486D4
+ ldr r0, [r0]
+ ldr r1, _080486D8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080486E4
+ ldr r0, _080486DC
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ ldr r0, _080486E0
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _080486EA
+ .align 2, 0
+_080486D4: .4byte gUnknown_203B418
+_080486D8: .4byte 0x00000675
+_080486DC: .4byte gUnknown_80F4FA8
+_080486E0: .4byte gUnknown_80FEAE8
+_080486E4:
+ ldr r0, _0804871C
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+_080486EA:
+ adds r0, r5, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080486FC
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_807A324
+_080486FC:
+ add r0, sp, 0x18
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _08048720
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ adds r2, r6, 0
+ movs r3, 0x1
+ bl sub_806F370
+ b _080487B6
+ .align 2, 0
+_0804871C: .4byte gUnknown_80F4FA4
+_08048720: .4byte 0x00000216
+_08048724:
+ adds r0, r4, 0
+ bl sub_8042520
+ adds r0, r4, 0
+ bl sub_80696FC
+ adds r5, r0, 0
+ cmp r5, 0
+ bne _08048748
+ ldr r0, _08048744
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _080487B6
+ .align 2, 0
+_08048744: .4byte gUnknown_80FDBA0
+_08048748:
+ ldr r1, [r5, 0x70]
+ mov r8, r1
+ ldr r0, _08048770
+ ldr r0, [r0]
+ ldr r1, _08048774
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08048780
+ ldr r0, _08048778
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+ ldr r0, _0804877C
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_80522F4
+ b _08048786
+ .align 2, 0
+_08048770: .4byte gUnknown_203B418
+_08048774: .4byte 0x00000675
+_08048778: .4byte gUnknown_80F4FAA
+_0804877C: .4byte gUnknown_80FEAE8
+_08048780:
+ ldr r0, _080487C4
+ movs r1, 0
+ ldrsh r6, [r0, r1]
+_08048786:
+ mov r0, r8
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08048798
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_807A324
+_08048798:
+ add r0, sp, 0x18
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _080487C8
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ movs r3, 0x1
+ bl sub_806F370
+_080487B6:
+ add sp, 0x1C
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080487C4: .4byte gUnknown_80F4FA6
+_080487C8: .4byte 0x00000216
+ thumb_func_end sub_804869C
+
+ thumb_func_start sub_80487CC
+sub_80487CC:
+ push {r4,lr}
+ sub sp, 0x4
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8078B5C
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80487CC
+
+ thumb_func_start sub_80487E0
+sub_80487E0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ mov r9, r0
+ mov r8, r1
+ lsls r3, r2, 24
+ ldr r5, [r1, 0x70]
+ ldr r4, _08048858
+ lsrs r3, 23
+ adds r0, r5, 0
+ adds r0, 0x5C
+ ldrb r0, [r0]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 2
+ adds r1, r3, r1
+ adds r0, r1, r4
+ movs r2, 0
+ ldrsh r6, [r0, r2]
+ adds r0, r5, 0
+ adds r0, 0x5D
+ ldrb r2, [r0]
+ lsls r0, r2, 3
+ adds r0, r2
+ lsls r0, 2
+ adds r3, r0
+ adds r4, r3, r4
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ adds r6, r0
+ ldr r0, _0804885C
+ adds r1, r0
+ movs r4, 0
+ ldrsh r2, [r1, r4]
+ adds r3, r0
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ adds r2, r0
+ movs r0, 0x1
+ str r0, [sp]
+ mov r0, r9
+ mov r1, r8
+ movs r3, 0
+ bl sub_8078B5C
+ ldrb r0, [r5, 0x6]
+ cmp r0, 0
+ bne _08048906
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08048852
+ cmp r0, 0x47
+ bne _08048860
+_08048852:
+ movs r0, 0x1
+ b _08048862
+ .align 2, 0
+_08048858: .4byte gUnknown_810A580
+_0804885C: .4byte gUnknown_810A808
+_08048860:
+ movs r0, 0
+_08048862:
+ cmp r0, 0
+ bne _08048906
+ movs r2, 0xC
+ ldrsh r7, [r5, r2]
+ ldrh r0, [r5, 0xC]
+ adds r0, r6
+ strh r0, [r5, 0xC]
+ adds r2, r7, r6
+ lsls r0, 16
+ cmp r0, 0
+ bgt _0804887C
+ movs r0, 0x1
+ strh r0, [r5, 0xC]
+_0804887C:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ ldr r1, _080488A0
+ cmp r0, r1
+ ble _08048888
+ strh r1, [r5, 0xC]
+_08048888:
+ movs r1, 0xC
+ ldrsh r0, [r5, r1]
+ cmp r7, r0
+ bne _080488A8
+ ldr r0, _080488A4
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+ b _08048906
+ .align 2, 0
+_080488A0: .4byte 0x000003e7
+_080488A4: .4byte gUnknown_80FD644
+_080488A8:
+ subs r0, r2, r7
+ movs r2, 0
+ cmp r0, 0x8
+ bgt _080488BE
+ movs r2, 0x1
+ cmp r0, 0x4
+ bgt _080488BE
+ movs r2, 0x3
+ cmp r0, 0x2
+ ble _080488BE
+ movs r2, 0x2
+_080488BE:
+ movs r4, 0xC
+ ldrsh r0, [r5, r4]
+ subs r0, r7
+ movs r4, 0
+ cmp r0, 0x8
+ bgt _080488D8
+ movs r4, 0x1
+ cmp r0, 0x4
+ bgt _080488D8
+ movs r4, 0x3
+ cmp r0, 0x2
+ ble _080488D8
+ movs r4, 0x2
+_080488D8:
+ ldr r1, _08048914
+ lsls r0, r2, 2
+ adds r0, r1
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+ ldr r1, _08048918
+ lsls r0, r4, 2
+ adds r0, r1
+ ldr r2, [r0]
+ mov r0, r9
+ mov r1, r8
+ bl sub_80522F4
+ mov r0, r8
+ bl sub_807191C
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_806A7E8
+_08048906:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048914: .4byte gUnknown_80FD648
+_08048918: .4byte gUnknown_80FD6E8
+ thumb_func_end sub_80487E0
+
+ thumb_func_start sub_804891C
+sub_804891C:
+ push {lr}
+ movs r2, 0x3
+ bl sub_80793B0
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804891C
+
+ thumb_func_start sub_8048928
+sub_8048928:
+ push {lr}
+ movs r2, 0x3
+ bl sub_8079420
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048928
+
+ thumb_func_start sub_8048934
+sub_8048934:
+ push {lr}
+ movs r2, 0x3
+ bl sub_8079490
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048934
+
+ thumb_func_start sub_8048940
+sub_8048940:
+ push {lr}
+ movs r2, 0x3
+ bl sub_8079500
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048940
+
+ thumb_func_start nullsub_94
+nullsub_94:
+ bx lr
+ thumb_func_end nullsub_94
+
+ thumb_func_start sub_8048950
+sub_8048950:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r0
+ mov r8, r1
+ ldrb r0, [r1, 0x2]
+ bl sub_80913CC
+ lsls r0, 16
+ lsrs r0, 16
+ mov r9, r0
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08048988
+ ldr r0, _08048984
+_08048978:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _08048A58
+ .align 2, 0
+_08048984: .4byte gUnknown_80FE3E8
+_08048988:
+ mov r1, r8
+ ldrb r0, [r1, 0x2]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080489A0
+ ldr r0, _0804899C
+ b _08048978
+ .align 2, 0
+_0804899C: .4byte gUnknown_81006CC
+_080489A0:
+ movs r7, 0
+_080489A2:
+ ldr r0, _080489FC
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08048A00
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048A12
+ ldr r6, [r4, 0x70]
+ movs r0, 0x2
+ ldrsh r1, [r6, r0]
+ mov r0, r9
+ 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 _080489DC
+ movs r5, 0
+_080489DC:
+ adds r0, r6, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080489E8
+ movs r5, 0
+_080489E8:
+ adds r0, r6, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _080489F6
+ cmp r0, 0x47
+ bne _08048A04
+_080489F6:
+ movs r0, 0x1
+ b _08048A06
+ .align 2, 0
+_080489FC: .4byte gUnknown_203B418
+_08048A00: .4byte 0x0001357c
+_08048A04:
+ movs r0, 0
+_08048A06:
+ cmp r0, 0
+ beq _08048A0C
+ movs r5, 0
+_08048A0C:
+ ldr r1, _08048A50
+ adds r0, r6, r1
+ strb r5, [r0]
+_08048A12:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080489A2
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8062978
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048A58
+ mov r0, r10
+ mov r1, r8
+ bl sub_804245C
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_8072938
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048A58
+ ldr r2, _08048A54
+ mov r0, r10
+ movs r1, 0
+ bl sub_8044E24
+ movs r0, 0x1
+ b _08048A5A
+ .align 2, 0
+_08048A50: .4byte 0x00000157
+_08048A54: .4byte 0x00000141
+_08048A58:
+ movs r0, 0
+_08048A5A:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048950
+
+ thumb_func_start sub_8048A68
+sub_8048A68:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ mov r8, r1
+ ldrb r1, [r1]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08048A90
+ ldr r0, _08048A8C
+_08048A80:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _08048B8C
+ .align 2, 0
+_08048A8C: .4byte gUnknown_80FE3E8
+_08048A90:
+ ldr r0, _08048AA4
+ ldr r0, [r0]
+ ldr r1, _08048AA8
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08048AB0
+ ldr r0, _08048AAC
+ b _08048A80
+ .align 2, 0
+_08048AA4: .4byte gUnknown_203B418
+_08048AA8: .4byte 0x0000065c
+_08048AAC: .4byte gUnknown_80F9BD8
+_08048AB0:
+ movs r7, 0
+_08048AB2:
+ ldr r0, _08048B24
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08048B28
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048B4A
+ ldr r5, [r4, 0x70]
+ movs r6, 0x1
+ ldrb r0, [r5, 0xA]
+ cmp r0, 0x3
+ bhi _08048AF4
+ ldr r2, _08048B2C
+ ldrb r1, [r5, 0xA]
+ movs r0, 0x64
+ muls r1, r0
+ ldr r0, _08048B30
+ adds r1, r0
+ ldr r0, [r2]
+ adds r0, r1
+ movs r1, 0xA
+ ldrsh r0, [r0, r1]
+ bl sub_806A538
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048AF6
+_08048AF4:
+ movs r6, 0
+_08048AF6:
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8070B6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048B06
+ movs r6, 0
+_08048B06:
+ adds r0, r5, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08048B12
+ movs r6, 0
+_08048B12:
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08048B20
+ cmp r0, 0x47
+ bne _08048B34
+_08048B20:
+ movs r0, 0x1
+ b _08048B36
+ .align 2, 0
+_08048B24: .4byte gUnknown_203B418
+_08048B28: .4byte 0x0001357c
+_08048B2C: .4byte gUnknown_203B45C
+_08048B30: .4byte 0x00008df8
+_08048B34:
+ movs r0, 0
+_08048B36:
+ cmp r0, 0
+ beq _08048B3C
+ movs r6, 0
+_08048B3C:
+ ldrb r0, [r5, 0x7]
+ cmp r0, 0
+ beq _08048B44
+ movs r6, 0
+_08048B44:
+ ldr r2, _08048B84
+ adds r0, r5, r2
+ strb r6, [r0]
+_08048B4A:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _08048AB2
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8062978
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048B8C
+ mov r0, r9
+ mov r1, r8
+ bl sub_804245C
+ ldr r0, _08048B88
+ ldr r0, [r0]
+ adds r0, 0xBC
+ str r4, [r0]
+ movs r2, 0xA1
+ lsls r2, 1
+ mov r0, r9
+ movs r1, 0
+ bl sub_8044E24
+ movs r0, 0x1
+ b _08048B8E
+ .align 2, 0
+_08048B84: .4byte 0x00000157
+_08048B88: .4byte gUnknown_203B418
+_08048B8C:
+ movs r0, 0
+_08048B8E:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048A68
+
+ thumb_func_start sub_8048B9C
+sub_8048B9C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x20
+ mov r9, r0
+ movs r0, 0
+ mov r8, r0
+ mov r2, r9
+ ldr r0, [r2, 0x70]
+ adds r6, r0, 0
+ adds r6, 0x44
+ ldrb r1, [r1]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08048BD4
+ ldr r0, _08048BD0
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0
+ b _08048D40
+ .align 2, 0
+_08048BD0: .4byte gUnknown_80FE3E8
+_08048BD4:
+ movs r2, 0
+_08048BD6:
+ ldr r0, _08048C28
+ ldr r0, [r0]
+ lsls r1, r2, 2
+ ldr r3, _08048C2C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ str r2, [sp, 0x1C]
+ bl sub_80450E0
+ lsls r0, 24
+ ldr r2, [sp, 0x1C]
+ cmp r0, 0
+ beq _08048C3E
+ ldr r5, [r4, 0x70]
+ movs r7, 0x1
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8070B6C
+ lsls r0, 24
+ ldr r2, [sp, 0x1C]
+ cmp r0, 0
+ beq _08048C0A
+ movs r7, 0
+_08048C0A:
+ adds r0, r5, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08048C16
+ movs r7, 0
+_08048C16:
+ adds r0, r5, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08048C24
+ cmp r0, 0x47
+ bne _08048C30
+_08048C24:
+ movs r0, 0x1
+ b _08048C32
+ .align 2, 0
+_08048C28: .4byte gUnknown_203B418
+_08048C2C: .4byte 0x0001357c
+_08048C30:
+ movs r0, 0
+_08048C32:
+ cmp r0, 0
+ beq _08048C38
+ movs r7, 0
+_08048C38:
+ ldr r4, _08048C5C
+ adds r0, r5, r4
+ strb r7, [r0]
+_08048C3E:
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08048BD6
+ movs r0, 0
+ movs r1, 0x1
+ bl sub_8062978
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08048C60
+ movs r0, 0
+ b _08048D40
+ .align 2, 0
+_08048C5C: .4byte 0x00000157
+_08048C60:
+ add r1, sp, 0x4
+ adds r0, r6, 0
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ b _08048CE2
+_08048C6E:
+ ldrh r0, [r6]
+ cmp r0, 0x1D
+ bne _08048C7C
+ adds r0, r6, 0
+ bl sub_80637E8
+ b _08048CE2
+_08048C7C:
+ cmp r0, 0x20
+ bne _08048C9A
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ bl sub_8063BB4
+ movs r0, 0x1
+ bl sub_8044C10
+ movs r5, 0x1
+ mov r8, r5
+ b _08048CE2
+_08048C9A:
+ cmp r0, 0x21
+ bne _08048CB6
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8063CF0
+ movs r0, 0x1
+ bl sub_8044C10
+ b _08048CE2
+_08048CB6:
+ cmp r0, 0x1E
+ beq _08048CBE
+ cmp r0, 0x33
+ bne _08048CD0
+_08048CBE:
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ movs r1, 0
+ bl sub_8063A70
+ b _08048CE2
+_08048CD0:
+ cmp r0, 0x1F
+ bne _08048CE2
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ bl sub_8063B54
+_08048CE2:
+ adds r0, r6, 0
+ bl sub_8044C88
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r1, 0x1
+ movs r2, 0
+ movs r3, 0
+ bl sub_8062F90
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048C6E
+ mov r0, r8
+ cmp r0, 0
+ beq _08048D38
+ ldr r0, _08048D34
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ cmp r0, 0x1
+ bne _08048C6E
+ adds r1, r6, 0
+ add r0, sp, 0x4
+ ldm r0!, {r2-r4}
+ stm r1!, {r2-r4}
+ ldm r0!, {r2,r3,r5}
+ stm r1!, {r2,r3,r5}
+ mov r0, r9
+ movs r1, 0
+ movs r2, 0x6E
+ bl sub_8044DF0
+ adds r0, r6, 0
+ movs r1, 0x2C
+ bl sub_8044C94
+ b _08048D3E
+ .align 2, 0
+_08048D34: .4byte gUnknown_80FECA0
+_08048D38:
+ movs r0, 0x1
+ bl sub_8044C10
+_08048D3E:
+ mov r0, r8
+_08048D40:
+ add sp, 0x20
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048B9C
+
+ thumb_func_start sub_8048D50
+sub_8048D50:
+ push {r4,lr}
+ adds r4, r0, 0
+ adds r2, r1, 0
+ ldr r3, [r4, 0x70]
+ ldrb r1, [r2]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08048D78
+ ldr r0, _08048D70
+ adds r1, r2, 0
+ bl sub_8045BF8
+ ldr r0, _08048D74
+ b _08048D9A
+ .align 2, 0
+_08048D70: .4byte gUnknown_202DE58
+_08048D74: .4byte gUnknown_80FE3E8
+_08048D78:
+ adds r0, r3, 0
+ adds r0, 0xEC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08048DB0
+ ldrb r0, [r2, 0x2]
+ bl sub_8091570
+ lsls r0, 24
+ cmp r0, 0
+ beq _08048DB0
+ ldr r0, _08048DA8
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08048DAC
+_08048D9A:
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl sub_80522A8
+ movs r0, 0
+ b _08048DB2
+ .align 2, 0
+_08048DA8: .4byte gUnknown_202DF98
+_08048DAC: .4byte gUnknown_80FDCA4
+_08048DB0:
+ movs r0, 0x1
+_08048DB2:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048D50
+
+ thumb_func_start sub_8048DB8
+sub_8048DB8:
+ push {r4,lr}
+ sub sp, 0x1C
+ adds r3, r0, 0
+ adds r4, r1, 0
+ lsls r2, 24
+ cmp r2, 0
+ beq _08048DF4
+ ldr r0, _08048DEC
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ add r0, sp, 0x18
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _08048DF0
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r3, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_806F370
+ b _08048DFA
+ .align 2, 0
+_08048DEC: .4byte gUnknown_80F4FAC
+_08048DF0: .4byte 0x00000217
+_08048DF4:
+ adds r0, r3, 0
+ bl sub_8051E7C
+_08048DFA:
+ add sp, 0x1C
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048DB8
+
+ thumb_func_start sub_8048E04
+sub_8048E04:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ movs r2, 0x1E
+ movs r3, 0
+ bl sub_8078B5C
+ movs r0, 0x5
+ bl sub_8084100
+ cmp r0, 0x4
+ bhi _08048E9E
+ lsls r0, 2
+ ldr r1, _08048E30
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08048E30: .4byte _08048E34
+ .align 2, 0
+_08048E34:
+ .4byte _08048E48
+ .4byte _08048E54
+ .4byte _08048E5E
+ .4byte _08048E6C
+ .4byte _08048E78
+_08048E48:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ bl sub_80763F8
+ b _08048E9E
+_08048E54:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80769CC
+ b _08048E9E
+_08048E5E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ movs r3, 0x1
+ bl sub_8076210
+ b _08048E9E
+_08048E6C:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r2, 0x1
+ bl sub_8077780
+ b _08048E9E
+_08048E78:
+ ldr r0, _08048EA8
+ ldr r2, [r0]
+ movs r4, 0x1
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r3, 0x3
+ bl sub_8076E20
+ ldr r0, _08048EAC
+ ldr r2, [r0]
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ adds r0, r5, 0
+ adds r1, r6, 0
+ movs r3, 0x3
+ bl sub_8076E20
+_08048E9E:
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048EA8: .4byte gUnknown_8106A4C
+_08048EAC: .4byte gUnknown_8106A50
+ thumb_func_end sub_8048E04
+
+ thumb_func_start sub_8048EB0
+sub_8048EB0:
+ push {lr}
+ ldr r1, _08048EC0
+ ldr r1, [r1]
+ bl sub_80522A8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048EC0: .4byte gUnknown_81003E0
+ thumb_func_end sub_8048EB0
+
+ thumb_func_start sub_8048EC4
+sub_8048EC4:
+ push {lr}
+ ldr r1, _08048ED4
+ ldr r1, [r1]
+ bl sub_80522A8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048ED4: .4byte gUnknown_8100404
+ thumb_func_end sub_8048EC4
+
+ thumb_func_start sub_8048ED8
+sub_8048ED8:
+ push {lr}
+ ldr r1, _08048EE8
+ ldr r1, [r1]
+ bl sub_80522A8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048EE8: .4byte gUnknown_8100428
+ thumb_func_end sub_8048ED8
+
+ thumb_func_start sub_8048EEC
+sub_8048EEC:
+ push {lr}
+ ldr r1, _08048EFC
+ ldr r1, [r1]
+ bl sub_80522A8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048EFC: .4byte gUnknown_810044C
+ thumb_func_end sub_8048EEC
+
+ thumb_func_start sub_8048F00
+sub_8048F00:
+ push {r4,lr}
+ adds r4, r0, 0
+ movs r1, 0xD6
+ bl sub_80421C0
+ ldr r0, _08048F24
+ ldr r1, [r0]
+ adds r0, r4, 0
+ bl sub_80522A8
+ movs r0, 0x3C
+ movs r1, 0x46
+ bl sub_803E708
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048F24: .4byte gUnknown_8100494
+ thumb_func_end sub_8048F00
+
+ thumb_func_start sub_8048F28
+sub_8048F28:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ adds r4, r0, 0
+ ldr r3, [r4, 0x70]
+ movs r6, 0
+ movs r0, 0x1
+ adds r5, r2, 0
+ ands r5, r0
+ lsrs r2, 1
+ movs r0, 0x1
+ ands r2, r0
+ ldrb r0, [r1, 0x2]
+ subs r0, 0x1
+ cmp r0, 0xCC
+ bls _08048F48
+ b _080494E0
+_08048F48:
+ lsls r0, 2
+ ldr r1, _08048F54
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08048F54: .4byte _08048F58
+ .align 2, 0
+_08048F58:
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _0804928C
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _08049408
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _08049296
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080492B0
+ .4byte _080492B0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _08049320
+ .4byte _080494E0
+ .4byte _080492B8
+ .4byte _080492B8
+ .4byte _0804935E
+ .4byte _080494E0
+ .4byte _080493E0
+ .4byte _0804948E
+ .4byte _08049394
+ .4byte _08049344
+ .4byte _0804946E
+ .4byte _0804947A
+ .4byte _08049378
+ .4byte _080493CE
+ .4byte _080493AC
+ .4byte _080493B8
+ .4byte _08049436
+ .4byte _080494E0
+ .4byte _080493F6
+ .4byte _080494B2
+ .4byte _0804946A
+ .4byte _08049462
+ .4byte _08049454
+ .4byte _08049498
+ .4byte _080492DC
+ .4byte _0804932C
+ .4byte _08049338
+ .4byte _0804933C
+ .4byte _08049340
+ .4byte _080494C2
+ .4byte _080494C2
+ .4byte _080494D6
+ .4byte _080494C2
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494E0
+ .4byte _080494DA
+_0804928C:
+ cmp r5, 0
+ bne _08049292
+ b _080494E2
+_08049292:
+ movs r6, 0x46
+ b _080494E2
+_08049296:
+ cmp r5, 0
+ bne _0804929C
+ b _080494E0
+_0804929C:
+ movs r1, 0x9E
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ bl sub_8094450
+ cmp r0, 0
+ ble _080492AE
+ b _0804948A
+_080492AE:
+ b _080494E0
+_080492B0:
+ cmp r5, 0
+ beq _080492B6
+ b _0804948A
+_080492B6:
+ b _080494E0
+_080492B8:
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ movs r2, 0x10
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ blt _080492C6
+ b _080494E2
+_080492C6:
+ cmp r0, 0
+ bge _080492CC
+ adds r0, 0x3
+_080492CC:
+ asrs r0, 2
+ cmp r1, r0
+ ble _080492D4
+ b _080494E2
+_080492D4:
+ cmp r5, 0
+ bne _080492DA
+ b _08049420
+_080492DA:
+ b _08049432
+_080492DC:
+ movs r6, 0
+ movs r0, 0x8C
+ lsls r0, 1
+ adds r5, r3, r0
+ adds r7, r5, 0
+ movs r2, 0x3
+_080492E8:
+ ldrb r1, [r5]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804930C
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ bne _080492FA
+ adds r6, 0x1E
+_080492FA:
+ ldrb r4, [r5, 0x4]
+ adds r0, r7, 0
+ str r2, [sp]
+ bl sub_8092BF4
+ ldr r2, [sp]
+ cmp r4, r0
+ beq _0804930C
+ adds r6, 0x6
+_0804930C:
+ adds r5, 0x8
+ adds r7, 0x8
+ subs r2, 0x1
+ cmp r2, 0
+ bge _080492E8
+ cmp r6, 0x62
+ bgt _0804931C
+ b _080494E2
+_0804931C:
+ movs r6, 0x63
+ b _080494E2
+_08049320:
+ adds r0, r4, 0
+ bl sub_8070A58
+ lsls r0, 24
+ movs r6, 0
+ b _080494BC
+_0804932C:
+ ldrb r0, [r3, 0x14]
+_0804932E:
+ movs r6, 0x64
+ cmp r0, 0xF9
+ bhi _08049336
+ b _080494E2
+_08049336:
+ b _080494E0
+_08049338:
+ ldrb r0, [r3, 0x15]
+ b _0804932E
+_0804933C:
+ ldrb r0, [r3, 0x16]
+ b _0804932E
+_08049340:
+ ldrb r0, [r3, 0x17]
+ b _0804932E
+_08049344:
+ cmp r5, 0
+ beq _0804934A
+ b _080494E0
+_0804934A:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x64
+ cmp r0, 0
+ bne _0804935A
+ b _080494E2
+_0804935A:
+ movs r6, 0xA
+ b _080494E2
+_0804935E:
+ adds r0, r4, 0
+ bl sub_8071884
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804936C
+ b _080494A2
+_0804936C:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_08049378:
+ ldr r0, [r4, 0x70]
+ movs r1, 0x82
+ lsls r1, 1
+ adds r0, r1
+ ldr r0, [r0]
+ cmp r0, 0x3
+ ble _08049388
+ b _080494A2
+_08049388:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_08049394:
+ adds r0, r3, 0
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _080493A0
+ b _080494A2
+_080493A0:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_080493AC:
+ adds r0, r3, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _080494A2
+ b _080494B2
+_080493B8:
+ adds r0, r3, 0
+ adds r0, 0xBC
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080494A2
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0xF
+ b _080494BC
+_080493CE:
+ adds r0, r3, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _080494A2
+ b _08049420
+_080493E0:
+ adds r0, r3, 0
+ adds r0, 0xE8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080494A2
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_080493F6:
+ cmp r2, 0
+ bne _0804940C
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ cmp r0, 0
+ beq _080494E2
+_08049408:
+ movs r6, 0x28
+ b _080494E2
+_0804940C:
+ movs r2, 0xE
+ ldrsh r1, [r3, r2]
+ movs r2, 0x10
+ ldrsh r0, [r3, r2]
+ cmp r1, r0
+ bge _080494E2
+ cmp r1, 0x13
+ bgt _080494E2
+ cmp r5, 0
+ bne _08049432
+_08049420:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x32
+ cmp r0, 0
+ beq _080494E2
+ movs r6, 0x64
+ b _080494E2
+_08049432:
+ movs r6, 0x32
+ b _080494E2
+_08049436:
+ adds r0, r3, 0
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080494A2
+ cmp r0, 0x5
+ beq _080494A2
+ cmp r0, 0x3
+ beq _080494A2
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_08049454:
+ adds r0, r3, 0
+ adds r0, 0xA8
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ beq _080494A2
+ movs r6, 0x5
+ b _080494E2
+_08049462:
+ ldrb r0, [r3, 0x9]
+ movs r6, 0
+ cmp r0, 0x62
+ bhi _080494E2
+_0804946A:
+ movs r6, 0x50
+ b _080494E2
+_0804946E:
+ adds r0, r3, 0
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _0804948A
+ b _080494E0
+_0804947A:
+ movs r1, 0x9E
+ lsls r1, 1
+ adds r0, r3, r1
+ ldr r0, [r0]
+ bl sub_8094450
+ cmp r0, 0
+ ble _080494E0
+_0804948A:
+ movs r0, 0x32
+ b _080494E4
+_0804948E:
+ ldrb r0, [r3, 0x9]
+ movs r6, 0
+ cmp r0, 0x1
+ bls _080494E2
+ b _0804946A
+_08049498:
+ adds r0, r3, 0
+ adds r0, 0xB0
+ ldrb r0, [r0]
+ cmp r0, 0x6
+ bne _080494A6
+_080494A2:
+ movs r0, 0
+ b _080494E4
+_080494A6:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x5
+ b _080494BC
+_080494B2:
+ adds r0, r4, 0
+ bl sub_80494EC
+ lsls r0, 24
+ movs r6, 0x1E
+_080494BC:
+ cmp r0, 0
+ beq _080494E2
+ b _0804946A
+_080494C2:
+ movs r2, 0x9E
+ lsls r2, 1
+ adds r0, r3, r2
+ ldr r0, [r0]
+ bl sub_8094450
+ cmp r0, 0x9
+ bgt _080494E0
+ movs r0, 0x64
+ b _080494E4
+_080494D6:
+ movs r6, 0x1E
+ b _080494E2
+_080494DA:
+ movs r6, 0x14
+ cmp r5, 0
+ beq _080494E2
+_080494E0:
+ movs r6, 0
+_080494E2:
+ adds r0, r6, 0
+_080494E4:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8048F28
+
+ thumb_func_start sub_80494EC
+sub_80494EC:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ movs r6, 0
+_080494F2:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ ldr r1, _08049538
+ lsls r2, r6, 2
+ adds r2, r1
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r3, 0x6
+ ldrsh r1, [r5, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ bl sub_804954C
+ ldr r4, [r0, 0x10]
+ cmp r4, 0
+ beq _0804953C
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0
+ beq _0804953C
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8071598
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bne _0804953C
+ movs r0, 0x1
+ b _08049544
+ .align 2, 0
+_08049538: .4byte gUnknown_80F4448
+_0804953C:
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _080494F2
+ movs r0, 0
+_08049544:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80494EC
+
+ thumb_func_start sub_804954C
+sub_804954C:
+ push {lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ cmp r2, 0
+ blt _08049584
+ cmp r3, 0
+ blt _08049584
+ cmp r2, 0x37
+ bgt _08049584
+ cmp r3, 0x1F
+ bgt _08049584
+ ldr r0, _0804957C
+ ldr r1, [r0]
+ lsls r2, 2
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 5
+ adds r2, r0
+ ldr r0, _08049580
+ adds r1, r0
+ adds r1, r2
+ ldr r0, [r1]
+ b _08049588
+ .align 2, 0
+_0804957C: .4byte gUnknown_203B418
+_08049580: .4byte 0x0000e8c0
+_08049584:
+ ldr r0, _0804958C
+ ldr r0, [r0]
+_08049588:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804958C: .4byte gUnknown_203B430
+ thumb_func_end sub_804954C
+
+ thumb_func_start sub_8049590
+sub_8049590:
+ push {r4,r5,lr}
+ adds r2, r0, 0
+ adds r3, r1, 0
+ cmp r2, 0
+ blt _080495A6
+ cmp r3, 0
+ blt _080495A6
+ cmp r2, 0x37
+ bgt _080495A6
+ cmp r3, 0x1F
+ ble _080495C0
+_080495A6:
+ ldr r0, _080495B8
+ ldr r1, _080495BC
+ adds r2, r0, 0
+ ldr r1, [r1]
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ ldm r1!, {r3-r5}
+ stm r2!, {r3-r5}
+ b _080495D6
+ .align 2, 0
+_080495B8: .4byte gUnknown_202F190
+_080495BC: .4byte gUnknown_203B430
+_080495C0:
+ ldr r0, _080495DC
+ ldr r1, [r0]
+ lsls r2, 2
+ lsls r0, r3, 3
+ subs r0, r3
+ lsls r0, 5
+ adds r2, r0
+ ldr r0, _080495E0
+ adds r1, r0
+ adds r1, r2
+ ldr r0, [r1]
+_080495D6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080495DC: .4byte gUnknown_203B418
+_080495E0: .4byte 0x0000e8c0
+ thumb_func_end sub_8049590
+
+ thumb_func_start sub_80495E4
+sub_80495E4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r2, 0
+ ldr r0, _08049658
+ mov r9, r0
+ mov r12, r9
+ ldr r7, _0804965C
+ ldr r1, _08049660
+ mov r8, r1
+_080495FA:
+ lsls r1, r2, 3
+ lsls r0, r2, 2
+ adds r6, r2, 0x1
+ subs r1, r2
+ adds r0, r2
+ lsls r0, 2
+ adds r0, r2
+ lsls r0, 6
+ movs r4, 0
+ lsls r2, r1, 5
+ mov r3, r8
+ adds r5, r0, r3
+ movs r3, 0x37
+_08049614:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r1, r0, r7
+ adds r1, r2
+ adds r0, r5
+ adds r0, r4
+ str r0, [r1]
+ adds r4, 0x18
+ adds r2, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08049614
+ adds r2, r6, 0
+ cmp r2, 0x1F
+ ble _080495FA
+ movs r2, 0
+ mov r3, r9
+ ldr r1, [r3]
+ ldr r4, _08049664
+ adds r0, r1, r4
+ movs r3, 0
+ strh r2, [r0]
+ adds r4, 0x2
+ adds r0, r1, r4
+ strh r2, [r0]
+ ldr r0, _08049668
+ adds r1, r0
+ strb r3, [r1]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049658: .4byte gUnknown_203B418
+_0804965C: .4byte 0x0000e8c0
+_08049660: .4byte 0x00003a18
+_08049664: .4byte 0x00003a0e
+_08049668: .4byte 0x00013570
+ thumb_func_end sub_80495E4
+
+ thumb_func_start sub_804966C
+sub_804966C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ ldr r1, _08049734
+ ldr r0, _08049738
+ mov r8, r0
+ ldr r6, _0804973C
+ ldr r0, [r6]
+ ldr r5, _08049740
+ adds r0, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ add r0, r8
+ ldrb r2, [r0]
+ mov r0, sp
+ bl sprintf
+ ldr r7, _08049744
+ mov r0, sp
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, _08049748
+ movs r1, 0
+ adds r2, r4, 0
+ bl sub_800AE28
+ adds r0, r4, 0
+ bl CloseFile
+ ldr r1, _0804974C
+ ldr r0, [r6]
+ adds r0, r5
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ mov r0, sp
+ bl sprintf
+ mov r0, sp
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ ldr r1, _08049750
+ str r0, [r1]
+ ldr r1, _08049754
+ ldr r0, [r6]
+ adds r0, r5
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ add r0, r8
+ ldrb r2, [r0]
+ mov r0, sp
+ bl sprintf
+ mov r0, sp
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, [r6]
+ ldr r1, _08049758
+ adds r0, r1
+ ldr r1, _0804975C
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+ ldr r0, [r6]
+ adds r2, r0, r5
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x3F
+ bgt _08049768
+ ldr r1, _08049760
+ add r0, r8
+ ldrb r2, [r0]
+ mov r0, sp
+ bl sprintf
+ mov r0, sp
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, [r6]
+ ldr r1, _08049764
+ adds r0, r1
+ movs r1, 0x93
+ lsls r1, 4
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+ b _08049794
+ .align 2, 0
+_08049734: .4byte gUnknown_80F6A04
+_08049738: .4byte gUnknown_8108EC0
+_0804973C: .4byte gUnknown_203B418
+_08049740: .4byte 0x00003a0e
+_08049744: .4byte gUnknown_83B0000
+_08049748: .4byte 0x06008000
+_0804974C: .4byte gUnknown_80F6A10
+_08049750: .4byte gUnknown_202EE88
+_08049754: .4byte gUnknown_80F6A1C
+_08049758: .4byte 0x00011884
+_0804975C: .4byte 0x00001194
+_08049760: .4byte gUnknown_80F6A28
+_08049764: .4byte 0x00012c24
+_08049768:
+ ldr r1, _080497E8
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ mov r0, sp
+ bl sprintf
+ mov r0, sp
+ adds r1, r7, 0
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, [r6]
+ ldr r1, _080497EC
+ adds r0, r1
+ movs r1, 0x90
+ lsls r1, 2
+ adds r2, r4, 0
+ bl sub_800AAA8
+ adds r0, r4, 0
+ bl CloseFile
+_08049794:
+ ldr r1, _080497F0
+ ldr r5, _080497F4
+ ldr r0, [r5]
+ ldr r4, _080497F8
+ adds r0, r4
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ mov r0, sp
+ bl sprintf
+ ldr r1, _080497FC
+ mov r0, sp
+ bl OpenFileAndGetFileDataPtr
+ adds r1, r0, 0
+ ldr r0, _08049800
+ str r1, [r0]
+ ldr r0, _08049804
+ movs r2, 0x20
+ bl sub_8004AA4
+ ldr r2, _08049808
+ movs r6, 0
+ strb r6, [r2]
+ movs r3, 0x1
+ strb r3, [r2, 0x1]
+ movs r0, 0x2
+ strb r0, [r2, 0x2]
+ movs r0, 0x3
+ strb r0, [r2, 0x3]
+ ldr r1, _0804980C
+ ldr r0, [r5]
+ adds r0, r4
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08049810
+ strb r3, [r2, 0x4]
+ strb r6, [r2, 0x5]
+ b _08049814
+ .align 2, 0
+_080497E8: .4byte gUnknown_80F6A34
+_080497EC: .4byte 0x00012c24
+_080497F0: .4byte gUnknown_80F6A40
+_080497F4: .4byte gUnknown_203B418
+_080497F8: .4byte 0x00003a0e
+_080497FC: .4byte gUnknown_83B0000
+_08049800: .4byte gUnknown_202F18C
+_08049804: .4byte gUnknown_202EE8C
+_08049808: .4byte gUnknown_202F314
+_0804980C: .4byte gUnknown_810ACC0
+_08049810:
+ strb r6, [r2, 0x4]
+ strb r3, [r2, 0x5]
+_08049814:
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804966C
+
+ thumb_func_start sub_8049820
+sub_8049820:
+ push {lr}
+ ldr r0, _08049838
+ ldr r0, [r0]
+ bl CloseFile
+ ldr r0, _0804983C
+ ldr r0, [r0]
+ bl CloseFile
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08049838: .4byte gUnknown_202F18C
+_0804983C: .4byte gUnknown_202EE88
+ thumb_func_end sub_8049820
+
+ thumb_func_start sub_8049840
+sub_8049840:
+ push {lr}
+ ldr r0, _08049860
+ ldr r0, [r0]
+ ldr r1, _08049864
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_8043CE4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08049870
+ ldr r1, _08049868
+ ldr r0, _0804986C
+ b _08049874
+ .align 2, 0
+_08049860: .4byte gUnknown_203B418
+_08049864: .4byte 0x00003a0e
+_08049868: .4byte gUnknown_203B430
+_0804986C: .4byte gUnknown_80F69EC
+_08049870:
+ ldr r1, _0804987C
+ ldr r0, _08049880
+_08049874:
+ str r0, [r1]
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804987C: .4byte gUnknown_203B430
+_08049880: .4byte gUnknown_80F69D4
+ thumb_func_end sub_8049840
+
+ thumb_func_start sub_8049884
+sub_8049884:
+ push {r4-r6,lr}
+ movs r5, 0
+_08049888:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0804988C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80498A8
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0804988C
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _08049888
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049884
+
+ thumb_func_start sub_80498A8
+sub_80498A8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ mov r10, r0
+ mov r9, r1
+ cmp r0, 0
+ bge _080498BE
+ b _08049B72
+_080498BE:
+ cmp r1, 0
+ bge _080498C4
+ b _08049B72
+_080498C4:
+ cmp r0, 0x37
+ ble _080498CA
+ b _08049B72
+_080498CA:
+ cmp r1, 0x1F
+ ble _080498D0
+ b _08049B72
+_080498D0:
+ movs r7, 0
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r1, 0x3
+ mov r8, r1
+ mov r6, r8
+ ands r6, r0
+ str r6, [sp, 0x20]
+ ldr r4, _08049914
+ ldr r0, [r4]
+ ldr r3, _08049918
+ adds r0, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3F
+ ble _08049928
+ mov r3, r10
+ cmp r3, 0x17
+ bgt _0804991C
+ mov r0, r9
+ cmp r0, 0x17
+ bgt _0804991C
+ mov r0, r10
+ mov r1, r9
+ bl sub_8049590
+ ldr r2, [r4]
+ mov r3, r9
+ lsls r1, r3, 1
+ add r1, r9
+ lsls r1, 3
+ add r1, r10
+ b _08049B68
+ .align 2, 0
+_08049914: .4byte gUnknown_203B418
+_08049918: .4byte 0x00003a0e
+_0804991C:
+ mov r0, r10
+ mov r1, r9
+ bl sub_8049590
+ movs r1, 0
+ b _08049B70
+_08049928:
+ mov r0, r9
+ adds r0, 0x1
+ str r0, [sp, 0x24]
+ mov r0, r10
+ ldr r1, [sp, 0x24]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp]
+ mov r4, r10
+ adds r4, 0x1
+ adds r0, r4, 0
+ ldr r1, [sp, 0x24]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0x8]
+ mov r5, r9
+ subs r5, 0x1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0xC]
+ mov r0, r10
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0x10]
+ subs r4, 0x2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0x14]
+ adds r0, r4, 0
+ mov r1, r9
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ str r0, [sp, 0x18]
+ adds r0, r4, 0
+ ldr r1, [sp, 0x24]
+ bl sub_804954C
+ ldrh r0, [r0]
+ mov r1, r8
+ ands r1, r0
+ str r1, [sp, 0x1C]
+ cmp r6, 0x1
+ bne _08049A1E
+ movs r7, 0xFF
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _080499C6
+ movs r7, 0xFE
+_080499C6:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _080499D2
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_080499D2:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _080499DE
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_080499DE:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _080499EA
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_080499EA:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _080499F6
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_080499F6:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _08049A02
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_08049A02:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ bne _08049A0E
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_08049A0E:
+ cmp r1, 0
+ bne _08049A18
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_08049A18:
+ movs r0, 0x80
+ lsls r0, 2
+ b _08049B3A
+_08049A1E:
+ cmp r6, 0x2
+ bne _08049A84
+ movs r7, 0xFF
+ ldr r0, [sp]
+ cmp r0, 0x2
+ beq _08049A2C
+ movs r7, 0xFE
+_08049A2C:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x2
+ beq _08049A38
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_08049A38:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x2
+ beq _08049A44
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_08049A44:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x2
+ beq _08049A50
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_08049A50:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x2
+ beq _08049A5C
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_08049A5C:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x2
+ beq _08049A68
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_08049A68:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x2
+ beq _08049A74
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_08049A74:
+ cmp r1, 0x2
+ beq _08049A7E
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_08049A7E:
+ movs r0, 0x80
+ lsls r0, 1
+ b _08049B3A
+_08049A84:
+ ldr r1, [sp, 0x20]
+ cmp r1, 0x3
+ bne _08049AEE
+ movs r7, 0xFF
+ ldr r0, [sp]
+ cmp r0, 0x3
+ beq _08049A94
+ movs r7, 0xFE
+_08049A94:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x3
+ beq _08049AA0
+ movs r0, 0x3
+ negs r0, r0
+ ands r7, r0
+_08049AA0:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x3
+ beq _08049AAC
+ movs r0, 0x5
+ negs r0, r0
+ ands r7, r0
+_08049AAC:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0x3
+ beq _08049AB8
+ movs r0, 0x9
+ negs r0, r0
+ ands r7, r0
+_08049AB8:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0x3
+ beq _08049AC4
+ movs r0, 0x11
+ negs r0, r0
+ ands r7, r0
+_08049AC4:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0x3
+ beq _08049AD0
+ movs r0, 0x21
+ negs r0, r0
+ ands r7, r0
+_08049AD0:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0x3
+ beq _08049ADC
+ movs r0, 0x41
+ negs r0, r0
+ ands r7, r0
+_08049ADC:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0x3
+ beq _08049AE8
+ movs r0, 0x81
+ negs r0, r0
+ ands r7, r0
+_08049AE8:
+ movs r0, 0x80
+ lsls r0, 1
+ b _08049B3A
+_08049AEE:
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _08049AF6
+ movs r7, 0x1
+_08049AF6:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _08049B00
+ movs r0, 0x2
+ orrs r7, r0
+_08049B00:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ bne _08049B0A
+ movs r0, 0x4
+ orrs r7, r0
+_08049B0A:
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ bne _08049B14
+ movs r0, 0x8
+ orrs r7, r0
+_08049B14:
+ ldr r0, [sp, 0x10]
+ cmp r0, 0
+ bne _08049B1E
+ movs r0, 0x10
+ orrs r7, r0
+_08049B1E:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _08049B28
+ movs r0, 0x20
+ orrs r7, r0
+_08049B28:
+ ldr r0, [sp, 0x18]
+ cmp r0, 0
+ bne _08049B32
+ movs r0, 0x40
+ orrs r7, r0
+_08049B32:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ bne _08049B3C
+ movs r0, 0x80
+_08049B3A:
+ orrs r7, r0
+_08049B3C:
+ movs r0, 0x4
+ bl RandomCapped
+ adds r4, r0, 0
+ cmp r4, 0x3
+ bne _08049B4A
+ movs r4, 0
+_08049B4A:
+ bl sub_80441BC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08049B56
+ movs r4, 0
+_08049B56:
+ mov r0, r10
+ mov r1, r9
+ bl sub_8049590
+ ldr r1, _08049B84
+ ldr r2, [r1]
+ lsls r1, r7, 1
+ adds r1, r7
+ adds r1, r4, r1
+_08049B68:
+ ldr r3, _08049B88
+ adds r2, r3
+ adds r2, r1
+ ldrb r1, [r2]
+_08049B70:
+ strb r1, [r0, 0x8]
+_08049B72:
+ 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
+_08049B84: .4byte gUnknown_203B418
+_08049B88: .4byte 0x00012c24
+ thumb_func_end sub_80498A8
+
+ thumb_func_start sub_8049B8C
+sub_8049B8C:
+ push {r4-r6,lr}
+ movs r5, 0
+_08049B90:
+ movs r4, 0
+ adds r6, r5, 0x1
+_08049B94:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049BB0
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08049B94
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _08049B90
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8049B8C
+
+ thumb_func_start sub_8049BB0
+sub_8049BB0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ mov r10, r0
+ str r1, [sp, 0x40]
+ movs r0, 0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ str r0, [sp, 0xC]
+ adds r0, r1, 0
+ adds r0, 0x1
+ mov r9, r0
+ mov r0, r10
+ mov r1, r9
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r4, 0x3
+ adds r0, r4, 0
+ ands r0, r1
+ add r6, sp, 0x18
+ str r0, [sp, 0x18]
+ mov r5, r10
+ adds r5, 0x1
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0x4]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x40]
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0x8]
+ ldr r0, [sp, 0x40]
+ subs r0, 0x1
+ mov r8, r0
+ adds r0, r5, 0
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0xC]
+ mov r0, r10
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0x10]
+ subs r5, 0x2
+ adds r0, r5, 0
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0x14]
+ adds r0, r5, 0
+ ldr r1, [sp, 0x40]
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r4, 0
+ ands r0, r1
+ str r0, [r6, 0x18]
+ adds r0, r5, 0
+ mov r1, r9
+ bl sub_804954C
+ ldrh r0, [r0]
+ ands r4, r0
+ str r4, [r6, 0x1C]
+ ldr r1, [sp, 0x18]
+ cmp r1, 0x1
+ bne _08049C6A
+ ldr r0, [sp]
+ orrs r0, r1
+ str r0, [sp]
+_08049C6A:
+ ldr r0, [r6, 0x8]
+ cmp r0, 0x1
+ bne _08049C78
+ ldr r0, [sp]
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp]
+_08049C78:
+ ldr r0, [r6, 0x10]
+ cmp r0, 0x1
+ bne _08049C86
+ ldr r0, [sp]
+ movs r1, 0x10
+ orrs r0, r1
+ str r0, [sp]
+_08049C86:
+ ldr r0, [r6, 0x18]
+ cmp r0, 0x1
+ bne _08049C94
+ ldr r0, [sp]
+ movs r1, 0x40
+ orrs r0, r1
+ str r0, [sp]
+_08049C94:
+ ldr r2, [sp, 0x18]
+ cmp r2, 0
+ beq _08049CAE
+ ldr r0, [r6, 0x4]
+ cmp r0, 0x1
+ bne _08049CAE
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049CC8
+ ldr r0, [sp]
+ movs r1, 0x2
+ orrs r0, r1
+ str r0, [sp]
+_08049CAE:
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049CC8
+ ldr r0, [r6, 0xC]
+ cmp r0, 0x1
+ bne _08049CC8
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049CE2
+ ldr r0, [sp]
+ movs r1, 0x8
+ orrs r0, r1
+ str r0, [sp]
+_08049CC8:
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049CE2
+ ldr r0, [r6, 0x14]
+ cmp r0, 0x1
+ bne _08049CE2
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049CFA
+ ldr r0, [sp]
+ movs r1, 0x20
+ orrs r0, r1
+ str r0, [sp]
+_08049CE2:
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049CFA
+ ldr r0, [r6, 0x1C]
+ cmp r0, 0x1
+ bne _08049CFA
+ cmp r2, 0
+ beq _08049CFA
+ ldr r0, [sp]
+ movs r1, 0x80
+ orrs r0, r1
+ str r0, [sp]
+_08049CFA:
+ add r4, sp, 0x38
+ movs r7, 0x1
+ adds r2, r4, 0
+ adds r1, r6, 0
+ movs r5, 0
+ movs r3, 0x7
+_08049D06:
+ ldr r0, [r1]
+ subs r0, 0x1
+ cmp r0, 0x1
+ bhi _08049D12
+ strb r7, [r2]
+ b _08049D14
+_08049D12:
+ strb r5, [r2]
+_08049D14:
+ adds r2, 0x1
+ adds r1, 0x4
+ subs r3, 0x1
+ cmp r3, 0
+ bge _08049D06
+ ldrb r0, [r4]
+ cmp r0, 0
+ beq _08049D2C
+ ldr r0, [sp, 0x4]
+ movs r1, 0x1
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D2C:
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _08049D3A
+ ldr r0, [sp, 0x4]
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D3A:
+ ldrb r0, [r4, 0x4]
+ cmp r0, 0
+ beq _08049D48
+ ldr r0, [sp, 0x4]
+ movs r1, 0x10
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D48:
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ beq _08049D56
+ ldr r0, [sp, 0x4]
+ movs r1, 0x40
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D56:
+ ldr r2, [sp, 0x18]
+ cmp r2, 0
+ beq _08049D70
+ ldrb r0, [r4, 0x1]
+ cmp r0, 0
+ beq _08049D70
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049D8A
+ ldr r0, [sp, 0x4]
+ movs r1, 0x2
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D70:
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049D8A
+ ldrb r0, [r4, 0x3]
+ cmp r0, 0
+ beq _08049D8A
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049DA4
+ ldr r0, [sp, 0x4]
+ movs r1, 0x8
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049D8A:
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049DA4
+ ldrb r0, [r4, 0x5]
+ cmp r0, 0
+ beq _08049DA4
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049DBC
+ ldr r0, [sp, 0x4]
+ movs r1, 0x20
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049DA4:
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049DBC
+ ldrb r0, [r4, 0x7]
+ cmp r0, 0
+ beq _08049DBC
+ cmp r2, 0
+ beq _08049DC8
+ ldr r0, [sp, 0x4]
+ movs r1, 0x80
+ orrs r0, r1
+ str r0, [sp, 0x4]
+_08049DBC:
+ cmp r2, 0
+ beq _08049DC8
+ ldr r0, [sp, 0x8]
+ movs r1, 0x1
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049DC8:
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049DD6
+ ldr r0, [sp, 0x8]
+ movs r1, 0x4
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049DD6:
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049DE4
+ ldr r0, [sp, 0x8]
+ movs r1, 0x10
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049DE4:
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049DF2
+ ldr r0, [sp, 0x8]
+ movs r1, 0x40
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049DF2:
+ cmp r2, 0
+ beq _08049E0A
+ ldr r0, [r6, 0x4]
+ cmp r0, 0
+ beq _08049E0A
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049E24
+ ldr r0, [sp, 0x8]
+ movs r1, 0x2
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049E0A:
+ ldr r0, [r6, 0x8]
+ cmp r0, 0
+ beq _08049E24
+ ldr r0, [r6, 0xC]
+ cmp r0, 0
+ beq _08049E24
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049E3E
+ ldr r0, [sp, 0x8]
+ movs r1, 0x8
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049E24:
+ ldr r0, [r6, 0x10]
+ cmp r0, 0
+ beq _08049E3E
+ ldr r0, [r6, 0x14]
+ cmp r0, 0
+ beq _08049E3E
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049E56
+ ldr r0, [sp, 0x8]
+ movs r1, 0x20
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049E3E:
+ ldr r0, [r6, 0x18]
+ cmp r0, 0
+ beq _08049E56
+ ldr r0, [r6, 0x1C]
+ cmp r0, 0
+ beq _08049E56
+ cmp r2, 0
+ beq _08049E56
+ ldr r0, [sp, 0x8]
+ movs r1, 0x80
+ orrs r0, r1
+ str r0, [sp, 0x8]
+_08049E56:
+ movs r0, 0xFF
+ str r0, [sp, 0xC]
+ mov r0, r10
+ cmp r0, 0x1
+ bgt _08049E64
+ movs r0, 0x1F
+ str r0, [sp, 0xC]
+_08049E64:
+ ldr r0, [sp, 0x40]
+ cmp r0, 0x1
+ bgt _08049E74
+ ldr r0, [sp, 0xC]
+ movs r1, 0x39
+ negs r1, r1
+ ands r0, r1
+ str r0, [sp, 0xC]
+_08049E74:
+ mov r0, r10
+ cmp r0, 0x35
+ ble _08049E84
+ ldr r0, [sp, 0xC]
+ movs r1, 0xF
+ negs r1, r1
+ ands r0, r1
+ str r0, [sp, 0xC]
+_08049E84:
+ ldr r0, [sp, 0x40]
+ cmp r0, 0x1D
+ ble _08049E94
+ ldr r0, [sp, 0xC]
+ movs r1, 0x84
+ negs r1, r1
+ ands r0, r1
+ str r0, [sp, 0xC]
+_08049E94:
+ mov r0, r10
+ ldr r1, [sp, 0x40]
+ bl sub_8049590
+ ldr r1, [sp]
+ strb r1, [r0, 0xA]
+ mov r0, r10
+ ldr r1, [sp, 0x40]
+ bl sub_8049590
+ ldr r1, [sp, 0x4]
+ strb r1, [r0, 0xB]
+ mov r0, r10
+ ldr r1, [sp, 0x40]
+ bl sub_8049590
+ ldr r1, [sp, 0x8]
+ strb r1, [r0, 0xC]
+ mov r0, r10
+ ldr r1, [sp, 0x40]
+ bl sub_8049590
+ ldr r1, [sp, 0xC]
+ strb r1, [r0, 0xD]
+ 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_8049BB0
+
+ thumb_func_start sub_8049ED4
+sub_8049ED4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ ldr r0, _08049F78
+ ldr r6, [r0]
+ ldr r1, _08049F7C
+ adds r0, r6, r1
+ ldrb r0, [r0]
+ str r0, [sp]
+ ldr r2, _08049F80
+ adds r0, r6, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r4, _08049F84
+ adds r0, r6, r4
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r3, r0, 19
+ ldr r1, _08049F88
+ adds r0, r3, 0
+ adds r0, 0x1E
+ lsls r0, 1
+ adds r1, r0, r1
+ movs r4, 0
+ ldrsh r2, [r1, r4]
+ mov r10, r2
+ ldr r1, _08049F8C
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ str r1, [sp, 0x10]
+ movs r4, 0
+ str r4, [sp, 0x8]
+_08049F1C:
+ ldr r1, _08049F90
+ adds r0, r6, r1
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ subs r2, r0, 0x1
+ mov r9, r2
+ movs r1, 0x1F
+ ands r3, r1
+ ldr r1, _08049F88
+ adds r0, 0x1D
+ lsls r0, 1
+ adds r1, r0, r1
+ movs r2, 0
+ ldrsh r4, [r1, r2]
+ mov r8, r4
+ ldr r1, _08049F8C
+ adds r0, r1
+ movs r1, 0
+ ldrsh r4, [r0, r1]
+ str r4, [sp, 0x14]
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ mov r4, r10
+ adds r7, r4, r0
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x14]
+ str r3, [sp, 0x34]
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r2, [r5]
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1, 0
+ ands r0, r2
+ ldr r3, [sp, 0x34]
+ cmp r0, 0
+ beq _08049F98
+ lsls r0, r7, 1
+ ldr r2, _08049F94
+ adds r0, r2
+ adds r2, r6, r0
+ b _0804A06A
+ .align 2, 0
+_08049F78: .4byte gUnknown_203B418
+_08049F7C: .4byte 0x00018210
+_08049F80: .4byte 0x0001820f
+_08049F84: .4byte 0x000181f0
+_08049F88: .4byte gUnknown_80F6A4A
+_08049F8C: .4byte gUnknown_80F6C06
+_08049F90: .4byte 0x000181f2
+_08049F94: .4byte 0x00012bec
+_08049F98:
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ beq _08049FAC
+ lsls r0, r7, 1
+ ldr r4, _08049FA8
+ b _08049FD2
+ .align 2, 0
+_08049FA8: .4byte 0x00012bda
+_08049FAC:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _08049FC4
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _08049FC0
+ adds r1, r2
+ b _0804A064
+ .align 2, 0
+_08049FC0: .4byte 0x00011884
+_08049FC4:
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _08049FDC
+ lsls r0, r7, 1
+ ldr r4, _08049FD8
+_08049FD2:
+ adds r0, r4
+ adds r2, r6, r0
+ b _0804A06A
+ .align 2, 0
+_08049FD8: .4byte 0x00012bfe
+_08049FDC:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A028
+ adds r0, r4, 0
+ str r3, [sp, 0x34]
+ bl sub_80450F8
+ ldr r3, [sp, 0x34]
+ cmp r0, 0x2
+ bne _0804A014
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A000
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _0804A014
+_0804A000:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0804A010
+ adds r0, r1
+ b _0804A046
+ .align 2, 0
+_0804A010: .4byte 0x00012a18
+_0804A014:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _0804A024
+ adds r1, r2
+ b _0804A064
+ .align 2, 0
+_0804A024: .4byte 0x00011884
+_0804A028:
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0804A058
+ ldr r1, _0804A050
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r4, _0804A054
+ adds r0, r4
+_0804A046:
+ adds r0, r6, r0
+ lsls r1, r7, 1
+ adds r2, r0, r1
+ b _0804A06A
+ .align 2, 0
+_0804A050: .4byte 0x00003a12
+_0804A054: .4byte 0x00012a18
+_0804A058:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0804A0E8
+ adds r1, r0
+_0804A064:
+ adds r1, r6, r1
+ lsls r0, r7, 1
+ adds r2, r1, r0
+_0804A06A:
+ lsls r1, r3, 1
+ str r1, [sp, 0x30]
+ adds r3, 0x1
+ str r3, [sp, 0x2C]
+ mov r4, r10
+ adds r4, 0x1
+ str r4, [sp, 0x28]
+ ldr r0, [sp, 0x8]
+ adds r0, 0x1
+ str r0, [sp, 0x24]
+ mov r1, r10
+ lsls r3, r1, 1
+ ldr r4, _0804A0EC
+ adds r4, r3, r4
+ str r4, [sp, 0x18]
+ ldr r0, _0804A0F0
+ adds r0, r3, r0
+ str r0, [sp, 0x1C]
+ ldr r1, _0804A0F4
+ adds r1, r3, r1
+ str r1, [sp, 0x20]
+ movs r4, 0x16
+ str r4, [sp, 0xC]
+_0804A098:
+ movs r0, 0x1F
+ mov r1, r9
+ ands r1, r0
+ mov r9, r1
+ lsls r0, r1, 6
+ ldr r4, [sp, 0x30]
+ adds r0, r4, r0
+ ldr r1, _0804A0F8
+ adds r0, r1
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r2, 0x6
+ movs r4, 0x1
+ add r9, r4
+ add r8, r4
+ mov r0, r8
+ cmp r0, 0x3
+ bne _0804A1AC
+ movs r1, 0
+ mov r8, r1
+ ldr r2, [sp, 0x14]
+ adds r2, 0x1
+ str r2, [sp, 0x14]
+ mov r7, r10
+ ldr r0, [sp, 0x10]
+ adds r1, r2, 0
+ str r3, [sp, 0x34]
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r2, [r5]
+ movs r0, 0x20
+ ands r0, r2
+ ldr r3, [sp, 0x34]
+ cmp r0, 0
+ beq _0804A0FC
+ ldr r4, [sp, 0x18]
+ adds r2, r6, r4
+ b _0804A1AC
+ .align 2, 0
+_0804A0E8: .4byte 0x00011884
+_0804A0EC: .4byte 0x00012bda
+_0804A0F0: .4byte 0x00012bec
+_0804A0F4: .4byte 0x00012bfe
+_0804A0F8: .4byte gUnknown_202C838
+_0804A0FC:
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0804A10E
+ ldr r4, [sp, 0x1C]
+ adds r2, r6, r4
+ b _0804A1AC
+_0804A10E:
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _0804A19C
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A124
+ ldr r4, [sp, 0x20]
+ adds r2, r6, r4
+ b _0804A1AC
+_0804A124:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A174
+ adds r0, r4, 0
+ str r3, [sp, 0x34]
+ bl sub_80450F8
+ ldr r3, [sp, 0x34]
+ cmp r0, 0x2
+ bne _0804A15C
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A148
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _0804A15C
+_0804A148:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0804A158
+ b _0804A1A6
+ .align 2, 0
+_0804A158: .4byte 0x00012a18
+_0804A15C:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _0804A170
+ adds r1, r2
+ adds r1, r6, r1
+ lsls r0, r7, 1
+ adds r2, r1, r0
+ b _0804A1AC
+ .align 2, 0
+_0804A170: .4byte 0x00011884
+_0804A174:
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0804A19C
+ ldr r1, _0804A194
+ adds r0, r6, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r4, _0804A198
+ adds r0, r4
+ b _0804A1A8
+ .align 2, 0
+_0804A194: .4byte 0x00003a12
+_0804A198: .4byte 0x00012a18
+_0804A19C:
+ ldrb r1, [r5, 0x8]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0804A1EC
+_0804A1A6:
+ adds r0, r1
+_0804A1A8:
+ adds r0, r6, r0
+ adds r2, r0, r3
+_0804A1AC:
+ ldr r4, [sp, 0xC]
+ subs r4, 0x1
+ str r4, [sp, 0xC]
+ cmp r4, 0
+ blt _0804A1B8
+ b _0804A098
+_0804A1B8:
+ ldr r3, [sp, 0x2C]
+ ldr r0, [sp, 0x28]
+ mov r10, r0
+ cmp r0, 0x3
+ bne _0804A1CC
+ movs r1, 0
+ mov r10, r1
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x10]
+_0804A1CC:
+ ldr r4, [sp, 0x24]
+ str r4, [sp, 0x8]
+ cmp r4, 0x1E
+ bgt _0804A1D6
+ b _08049F1C
+_0804A1D6:
+ movs r0, 0x3
+ bl sub_80098F8
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804A1EC: .4byte 0x00011884
+ thumb_func_end sub_8049ED4
+
+ thumb_func_start sub_804A1F0
+sub_804A1F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r2, _0804A284
+ ldr r7, [r2]
+ ldr r3, _0804A288
+ adds r2, r7, r3
+ ldrb r2, [r2]
+ str r2, [sp]
+ ldr r4, _0804A28C
+ adds r2, r7, r4
+ ldrb r2, [r2]
+ str r2, [sp, 0x4]
+ ldr r5, _0804A290
+ adds r2, r7, r5
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ adds r2, r0
+ subs r4, 0x1D
+ adds r0, r7, r4
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ adds r0, r1
+ asrs r0, 3
+ asrs r2, 3
+ str r2, [sp, 0x14]
+ subs r1, r0, 0x1
+ mov r9, r1
+ ldr r3, _0804A294
+ adds r1, r2, 0
+ adds r1, 0x1E
+ lsls r1, 1
+ adds r2, r1, r3
+ movs r5, 0
+ ldrsh r4, [r2, r5]
+ str r4, [sp, 0x10]
+ ldr r2, _0804A298
+ adds r1, r2
+ movs r5, 0
+ ldrsh r4, [r1, r5]
+ str r4, [sp, 0xC]
+ adds r0, 0x1D
+ lsls r0, 1
+ adds r3, r0, r3
+ movs r4, 0
+ ldrsh r1, [r3, r4]
+ mov r8, r1
+ adds r0, r2
+ movs r1, 0
+ ldrsh r5, [r0, r1]
+ mov r10, r5
+ mov r2, r8
+ lsls r0, r2, 1
+ add r0, r8
+ ldr r3, [sp, 0x10]
+ adds r6, r3, r0
+ ldr r0, [sp, 0xC]
+ mov r1, r10
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A2A0
+ lsls r0, r6, 1
+ ldr r4, _0804A29C
+ adds r0, r4
+ adds r2, r7, r0
+ b _0804A356
+ .align 2, 0
+_0804A284: .4byte gUnknown_203B418
+_0804A288: .4byte 0x00018210
+_0804A28C: .4byte 0x0001820f
+_0804A290: .4byte 0x000181f0
+_0804A294: .4byte gUnknown_80F6A4A
+_0804A298: .4byte gUnknown_80F6C06
+_0804A29C: .4byte 0x00012bda
+_0804A2A0:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A2B8
+ lsls r0, r6, 1
+ ldr r5, _0804A2B4
+ adds r0, r5
+ adds r2, r7, r0
+ b _0804A356
+ .align 2, 0
+_0804A2B4: .4byte 0x00012bec
+_0804A2B8:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _0804A2D0
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _0804A2CC
+ adds r1, r2
+ b _0804A350
+ .align 2, 0
+_0804A2CC: .4byte 0x00011884
+_0804A2D0:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A318
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804A304
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A2F0
+ ldr r3, [sp, 0x4]
+ cmp r3, 0
+ beq _0804A304
+_0804A2F0:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r4, _0804A300
+ adds r0, r4
+ b _0804A334
+ .align 2, 0
+_0804A300: .4byte 0x00012a18
+_0804A304:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r5, _0804A314
+ adds r1, r5
+ b _0804A350
+ .align 2, 0
+_0804A314: .4byte 0x00011884
+_0804A318:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A344
+ ldr r1, _0804A33C
+ adds r0, r7, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r3, _0804A340
+ adds r0, r3
+_0804A334:
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r2, r0, r1
+ b _0804A356
+ .align 2, 0
+_0804A33C: .4byte 0x00003a12
+_0804A340: .4byte 0x00012a18
+_0804A344:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r4, _0804A3AC
+ adds r1, r4
+_0804A350:
+ adds r1, r7, r1
+ lsls r0, r6, 1
+ adds r2, r1, r0
+_0804A356:
+ movs r5, 0x16
+ str r5, [sp, 0x8]
+_0804A35A:
+ movs r0, 0x1F
+ ldr r1, [sp, 0x14]
+ ands r1, r0
+ str r1, [sp, 0x14]
+ mov r3, r9
+ ands r3, r0
+ mov r9, r3
+ lsls r1, 1
+ lsls r0, r3, 6
+ adds r1, r0
+ ldr r4, _0804A3B0
+ adds r1, r4
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x6
+ movs r5, 0x1
+ add r9, r5
+ add r8, r5
+ mov r0, r8
+ cmp r0, 0x3
+ beq _0804A386
+ b _0804A476
+_0804A386:
+ movs r1, 0
+ mov r8, r1
+ add r10, r5
+ ldr r6, [sp, 0x10]
+ ldr r0, [sp, 0xC]
+ mov r1, r10
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A3B8
+ lsls r0, r6, 1
+ ldr r2, _0804A3B4
+ adds r0, r2
+ adds r2, r7, r0
+ b _0804A476
+ .align 2, 0
+_0804A3AC: .4byte 0x00011884
+_0804A3B0: .4byte gUnknown_202C838
+_0804A3B4: .4byte 0x00012bda
+_0804A3B8:
+ movs r3, 0x80
+ lsls r3, 5
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A3D4
+ lsls r0, r6, 1
+ ldr r4, _0804A3D0
+ adds r0, r4
+ adds r2, r7, r0
+ b _0804A476
+ .align 2, 0
+_0804A3D0: .4byte 0x00012bec
+_0804A3D4:
+ ldr r0, [sp]
+ cmp r0, 0
+ beq _0804A3EC
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _0804A3E8
+ adds r1, r2
+ b _0804A470
+ .align 2, 0
+_0804A3E8: .4byte 0x00011884
+_0804A3EC:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A434
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804A420
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A40C
+ ldr r3, [sp, 0x4]
+ cmp r3, 0
+ beq _0804A420
+_0804A40C:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r4, _0804A41C
+ adds r0, r4
+ b _0804A452
+ .align 2, 0
+_0804A41C: .4byte 0x00012a18
+_0804A420:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r5, _0804A430
+ adds r1, r5
+ b _0804A470
+ .align 2, 0
+_0804A430: .4byte 0x00011884
+_0804A434:
+ movs r2, 0x80
+ lsls r2, 2
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A464
+ ldr r3, _0804A45C
+ adds r0, r7, r3
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r5, _0804A460
+ adds r0, r5
+_0804A452:
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r2, r0, r1
+ b _0804A476
+ .align 2, 0
+_0804A45C: .4byte 0x00003a12
+_0804A460: .4byte 0x00012a18
+_0804A464:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0804A498
+ adds r1, r0
+_0804A470:
+ adds r1, r7, r1
+ lsls r0, r6, 1
+ adds r2, r1, r0
+_0804A476:
+ ldr r1, [sp, 0x8]
+ subs r1, 0x1
+ str r1, [sp, 0x8]
+ cmp r1, 0
+ blt _0804A482
+ b _0804A35A
+_0804A482:
+ movs r0, 0x3
+ bl sub_80098F8
+ 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
+_0804A498: .4byte 0x00011884
+ thumb_func_end sub_804A1F0
+
+ thumb_func_start sub_804A49C
+sub_804A49C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ ldr r2, _0804A52C
+ ldr r7, [r2]
+ ldr r3, _0804A530
+ adds r2, r7, r3
+ ldrb r2, [r2]
+ str r2, [sp]
+ ldr r4, _0804A534
+ adds r2, r7, r4
+ ldrb r2, [r2]
+ str r2, [sp, 0x4]
+ subs r3, 0x20
+ adds r2, r7, r3
+ movs r4, 0
+ ldrsh r2, [r2, r4]
+ adds r2, r0
+ adds r3, 0x2
+ adds r0, r7, r3
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ adds r0, r1
+ asrs r2, 3
+ mov r8, r2
+ asrs r0, 3
+ str r0, [sp, 0x14]
+ ldr r2, _0804A538
+ mov r0, r8
+ adds r0, 0x1E
+ lsls r0, 1
+ adds r1, r0, r2
+ movs r4, 0
+ ldrsh r3, [r1, r4]
+ mov r9, r3
+ ldr r1, _0804A53C
+ adds r0, r1
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ mov r10, r3
+ ldr r0, [sp, 0x14]
+ adds r0, 0x1E
+ lsls r0, 1
+ adds r2, r0, r2
+ movs r4, 0
+ ldrsh r3, [r2, r4]
+ str r3, [sp, 0x10]
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ str r1, [sp, 0xC]
+ lsls r0, r3, 1
+ adds r0, r3
+ mov r3, r9
+ adds r6, r3, r0
+ mov r0, r10
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A544
+ lsls r0, r6, 1
+ ldr r4, _0804A540
+ adds r0, r4
+ adds r2, r7, r0
+ b _0804A5DA
+ .align 2, 0
+_0804A52C: .4byte gUnknown_203B418
+_0804A530: .4byte 0x00018210
+_0804A534: .4byte 0x0001820f
+_0804A538: .4byte gUnknown_80F6A4A
+_0804A53C: .4byte gUnknown_80F6C06
+_0804A540: .4byte 0x00012bda
+_0804A544:
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A55C
+ lsls r0, r6, 1
+ ldr r1, _0804A558
+ adds r0, r1
+ adds r2, r7, r0
+ b _0804A5DA
+ .align 2, 0
+_0804A558: .4byte 0x00012bec
+_0804A55C:
+ ldr r2, [sp]
+ cmp r2, 0
+ beq _0804A574
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r3, _0804A570
+ adds r1, r3
+ b _0804A5D4
+ .align 2, 0
+_0804A570: .4byte 0x00011884
+_0804A574:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A59A
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804A5C8
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A594
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ beq _0804A5C8
+_0804A594:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ b _0804A5AC
+_0804A59A:
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A5C8
+ ldr r3, _0804A5C0
+ adds r0, r7, r3
+ movs r4, 0
+ ldrsh r1, [r0, r4]
+_0804A5AC:
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r1, _0804A5C4
+ adds r0, r1
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r2, r0, r1
+ b _0804A5DA
+ .align 2, 0
+_0804A5C0: .4byte 0x00003a12
+_0804A5C4: .4byte 0x00012a18
+_0804A5C8:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r2, _0804A638
+ adds r1, r2
+_0804A5D4:
+ adds r1, r7, r1
+ lsls r0, r6, 1
+ adds r2, r1, r0
+_0804A5DA:
+ movs r3, 0x1E
+ str r3, [sp, 0x8]
+_0804A5DE:
+ movs r0, 0x1F
+ mov r4, r8
+ ands r4, r0
+ mov r8, r4
+ ldr r1, [sp, 0x14]
+ ands r1, r0
+ str r1, [sp, 0x14]
+ lsls r1, r4, 1
+ ldr r3, [sp, 0x14]
+ lsls r0, r3, 6
+ adds r1, r0
+ ldr r4, _0804A63C
+ adds r1, r4
+ ldrh r0, [r2]
+ strh r0, [r1]
+ adds r2, 0x2
+ movs r0, 0x1
+ add r8, r0
+ add r9, r0
+ mov r1, r9
+ cmp r1, 0x3
+ beq _0804A60C
+ b _0804A702
+_0804A60C:
+ movs r2, 0
+ mov r9, r2
+ add r10, r0
+ ldr r3, [sp, 0x10]
+ lsls r0, r3, 1
+ adds r6, r0, r3
+ mov r0, r10
+ ldr r1, [sp, 0xC]
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A644
+ lsls r0, r6, 1
+ ldr r4, _0804A640
+ adds r0, r4
+ adds r2, r7, r0
+ b _0804A702
+ .align 2, 0
+_0804A638: .4byte 0x00011884
+_0804A63C: .4byte gUnknown_202C838
+_0804A640: .4byte 0x00012bda
+_0804A644:
+ movs r2, 0x80
+ lsls r2, 5
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A660
+ lsls r0, r6, 1
+ ldr r3, _0804A65C
+ adds r0, r3
+ adds r2, r7, r0
+ b _0804A702
+ .align 2, 0
+_0804A65C: .4byte 0x00012bec
+_0804A660:
+ ldr r4, [sp]
+ cmp r4, 0
+ beq _0804A678
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r0, _0804A674
+ adds r1, r0
+ b _0804A6FC
+ .align 2, 0
+_0804A674: .4byte 0x00011884
+_0804A678:
+ ldr r4, [r5, 0x14]
+ cmp r4, 0
+ beq _0804A6C0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804A6AC
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804A698
+ ldr r1, [sp, 0x4]
+ cmp r1, 0
+ beq _0804A6AC
+_0804A698:
+ ldr r0, [r4, 0x70]
+ ldrb r1, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r2, _0804A6A8
+ adds r0, r2
+ b _0804A6DE
+ .align 2, 0
+_0804A6A8: .4byte 0x00012a18
+_0804A6AC:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r3, _0804A6BC
+ adds r1, r3
+ b _0804A6FC
+ .align 2, 0
+_0804A6BC: .4byte 0x00011884
+_0804A6C0:
+ movs r4, 0x80
+ lsls r4, 2
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0804A6F0
+ ldr r1, _0804A6E8
+ adds r0, r7, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ ldr r3, _0804A6EC
+ adds r0, r3
+_0804A6DE:
+ adds r0, r7, r0
+ lsls r1, r6, 1
+ adds r2, r0, r1
+ b _0804A702
+ .align 2, 0
+_0804A6E8: .4byte 0x00003a12
+_0804A6EC: .4byte 0x00012a18
+_0804A6F0:
+ ldrb r0, [r5, 0x8]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 1
+ ldr r4, _0804A724
+ adds r1, r4
+_0804A6FC:
+ adds r1, r7, r1
+ lsls r0, r6, 1
+ adds r2, r1, r0
+_0804A702:
+ ldr r0, [sp, 0x8]
+ subs r0, 0x1
+ str r0, [sp, 0x8]
+ cmp r0, 0
+ blt _0804A70E
+ b _0804A5DE
+_0804A70E:
+ movs r0, 0x3
+ bl sub_80098F8
+ 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
+_0804A724: .4byte 0x00011884
+ thumb_func_end sub_804A49C
+
+ thumb_func_start sub_804A728
+sub_804A728:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ str r0, [sp, 0x1C]
+ adds r5, r1, 0
+ adds r4, r3, 0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp, 0x20]
+ lsls r4, 24
+ lsrs r4, 24
+ ldr r6, _0804A814
+ ldr r0, [r6]
+ mov r8, r0
+ bl sub_8083600
+ str r0, [sp, 0x24]
+ ldr r0, _0804A818
+ add r0, r8
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ str r0, [sp, 0x30]
+ adds r1, r0, 0
+ ldr r0, [r6]
+ ldr r2, _0804A81C
+ adds r0, r2
+ strb r4, [r0]
+ ldr r3, [sp, 0x1C]
+ movs r4, 0
+ ldrsh r7, [r3, r4]
+ movs r0, 0x2
+ ldrsh r6, [r3, r0]
+ ldr r0, _0804A820
+ lsls r5, 2
+ adds r5, r0
+ movs r2, 0
+ ldrsh r4, [r5, r2]
+ movs r0, 0x2
+ ldrsh r3, [r5, r0]
+ mov r0, sp
+ movs r2, 0x5
+_0804A782:
+ strh r7, [r0]
+ strh r6, [r0, 0x2]
+ adds r7, r4
+ adds r6, r3
+ adds r0, 0x4
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0804A782
+ ldr r0, _0804A824
+ adds r1, 0x1E
+ lsls r1, 1
+ adds r0, r1, r0
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ str r2, [sp, 0x28]
+ ldr r0, _0804A828
+ adds r1, r0
+ movs r0, 0
+ ldrsh r4, [r1, r0]
+ mov r10, r4
+ movs r7, 0
+_0804A7AC:
+ ldr r0, _0804A82C
+ add r0, r8
+ ldrh r0, [r0]
+ lsls r0, 16
+ asrs r0, 19
+ str r0, [sp, 0x34]
+ ldr r0, _0804A824
+ ldr r1, [sp, 0x34]
+ adds r1, 0x1E
+ lsls r1, 1
+ adds r0, r1, r0
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ str r2, [sp, 0x2C]
+ ldr r0, _0804A828
+ adds r1, r0
+ movs r0, 0
+ ldrsh r4, [r1, r0]
+ mov r9, r4
+ lsls r0, r2, 1
+ adds r0, r2
+ ldr r1, [sp, 0x28]
+ adds r5, r1, r0
+ mov r2, r10
+ lsls r0, r2, 16
+ lsls r1, r4, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp, 0x18]
+ ldr r3, [sp, 0x20]
+ cmp r3, 0
+ beq _0804A850
+ ldr r4, [sp, 0x1C]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r10, r0
+ bne _0804A834
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ cmp r9, r0
+ bne _0804A834
+ lsls r0, r5, 1
+ ldr r3, _0804A830
+ adds r0, r3
+ mov r4, r8
+ adds r2, r4, r0
+ ldr r0, [sp, 0x28]
+ adds r0, 0x1
+ str r0, [sp, 0x3C]
+ adds r1, r7, 0x1
+ str r1, [sp, 0x38]
+ b _0804A8FC
+ .align 2, 0
+_0804A814: .4byte gUnknown_203B418
+_0804A818: .4byte 0x000181f0
+_0804A81C: .4byte 0x0001821a
+_0804A820: .4byte gUnknown_80F4448
+_0804A824: .4byte gUnknown_80F6A4A
+_0804A828: .4byte gUnknown_80F6C06
+_0804A82C: .4byte 0x000181f2
+_0804A830: .4byte 0x00012b92
+_0804A834:
+ lsls r0, r5, 1
+ ldr r2, _0804A84C
+ adds r0, r2
+ mov r3, r8
+ adds r2, r3, r0
+ ldr r4, [sp, 0x28]
+ adds r4, 0x1
+ str r4, [sp, 0x3C]
+ adds r0, r7, 0x1
+ str r0, [sp, 0x38]
+ b _0804A8FC
+ .align 2, 0
+_0804A84C: .4byte 0x00013554
+_0804A850:
+ add r4, sp, 0x18
+ ldr r0, [sp, 0x24]
+ adds r1, r4, 0
+ bl sub_807049C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804A8E8
+ ldr r0, [sp, 0x24]
+ adds r1, r4, 0
+ bl sub_8045AAC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804A8E8
+ movs r2, 0
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ lsls r3, r5, 1
+ ldr r4, [sp, 0x28]
+ adds r4, 0x1
+ str r4, [sp, 0x3C]
+ adds r1, r7, 0x1
+ str r1, [sp, 0x38]
+ cmp r0, r10
+ bne _0804A890
+ mov r0, sp
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ cmp r0, r9
+ beq _0804A8AC
+_0804A890:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _0804A8AC
+ lsls r0, r2, 2
+ mov r4, sp
+ adds r1, r4, r0
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r10
+ bne _0804A890
+ movs r4, 0x2
+ ldrsh r0, [r1, r4]
+ cmp r0, r9
+ bne _0804A890
+_0804A8AC:
+ cmp r2, 0x6
+ bne _0804A8D8
+ ldr r0, _0804A8C0
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _0804A8C8
+ ldr r1, _0804A8C4
+ adds r0, r3, r1
+ b _0804A8DC
+ .align 2, 0
+_0804A8C0: .4byte gUnknown_203B46C
+_0804A8C4: .4byte 0x00012b80
+_0804A8C8:
+ ldr r4, _0804A8D4
+ adds r0, r3, r4
+ mov r1, r8
+ adds r2, r1, r0
+ b _0804A8FC
+ .align 2, 0
+_0804A8D4: .4byte 0x00013554
+_0804A8D8:
+ ldr r2, _0804A8E4
+ adds r0, r3, r2
+_0804A8DC:
+ mov r3, r8
+ adds r2, r3, r0
+ b _0804A8FC
+ .align 2, 0
+_0804A8E4: .4byte 0x00012b92
+_0804A8E8:
+ lsls r0, r5, 1
+ ldr r4, _0804A968
+ adds r0, r4
+ mov r1, r8
+ adds r2, r1, r0
+ ldr r3, [sp, 0x28]
+ adds r3, 0x1
+ str r3, [sp, 0x3C]
+ adds r4, r7, 0x1
+ str r4, [sp, 0x38]
+_0804A8FC:
+ movs r6, 0
+_0804A8FE:
+ movs r0, 0x1F
+ ldr r1, [sp, 0x30]
+ ands r1, r0
+ str r1, [sp, 0x30]
+ ldr r3, [sp, 0x34]
+ ands r3, r0
+ lsls r0, r1, 1
+ lsls r1, r3, 6
+ adds r0, r1
+ ldr r4, _0804A96C
+ adds r0, r4
+ ldrh r1, [r2]
+ strh r1, [r0]
+ adds r2, 0x6
+ adds r3, 0x1
+ str r3, [sp, 0x34]
+ ldr r0, [sp, 0x2C]
+ adds r0, 0x1
+ str r0, [sp, 0x2C]
+ adds r7, r6, 0x1
+ cmp r0, 0x3
+ beq _0804A92C
+ b _0804AA20
+_0804A92C:
+ movs r1, 0
+ str r1, [sp, 0x2C]
+ movs r2, 0x1
+ add r9, r2
+ ldr r5, [sp, 0x28]
+ add r4, sp, 0x18
+ mov r3, r10
+ strh r3, [r4]
+ adds r0, r4, 0
+ mov r1, r9
+ strh r1, [r0, 0x2]
+ ldr r2, [sp, 0x20]
+ cmp r2, 0
+ beq _0804A984
+ ldr r3, [sp, 0x1C]
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ cmp r10, r0
+ bne _0804A974
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ cmp r9, r0
+ bne _0804A974
+ ldr r2, [sp, 0x28]
+ lsls r0, r2, 1
+ ldr r3, _0804A970
+ adds r0, r3
+ mov r4, r8
+ adds r2, r4, r0
+ b _0804AA20
+ .align 2, 0
+_0804A968: .4byte 0x00013554
+_0804A96C: .4byte gUnknown_202C038
+_0804A970: .4byte 0x00012b92
+_0804A974:
+ lsls r0, r5, 1
+ ldr r1, _0804A980
+ adds r0, r1
+ mov r3, r8
+ adds r2, r3, r0
+ b _0804AA1E
+ .align 2, 0
+_0804A980: .4byte 0x00013554
+_0804A984:
+ ldr r0, [sp, 0x24]
+ adds r1, r4, 0
+ bl sub_807049C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804AA14
+ ldr r0, [sp, 0x24]
+ adds r1, r4, 0
+ bl sub_8045AAC
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804AA14
+ movs r2, 0
+ mov r0, sp
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ ldr r1, [sp, 0x28]
+ lsls r3, r1, 1
+ cmp r0, r10
+ bne _0804A9BA
+ mov r0, sp
+ movs r4, 0x2
+ ldrsh r0, [r0, r4]
+ cmp r0, r9
+ beq _0804A9D6
+_0804A9BA:
+ adds r2, 0x1
+ cmp r2, 0x5
+ bgt _0804A9D6
+ lsls r0, r2, 2
+ mov r4, sp
+ adds r1, r4, r0
+ movs r4, 0
+ ldrsh r0, [r1, r4]
+ cmp r0, r10
+ bne _0804A9BA
+ movs r4, 0x2
+ ldrsh r0, [r1, r4]
+ cmp r0, r9
+ bne _0804A9BA
+_0804A9D6:
+ cmp r2, 0x6
+ bne _0804AA04
+ ldr r0, _0804A9EC
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x3]
+ cmp r0, 0
+ beq _0804A9F4
+ ldr r1, _0804A9F0
+ adds r0, r3, r1
+ b _0804AA08
+ .align 2, 0
+_0804A9EC: .4byte gUnknown_203B46C
+_0804A9F0: .4byte 0x00012b80
+_0804A9F4:
+ ldr r4, _0804AA00
+ adds r0, r3, r4
+ mov r1, r8
+ adds r2, r1, r0
+ b _0804AA20
+ .align 2, 0
+_0804AA00: .4byte 0x00013554
+_0804AA04:
+ ldr r2, _0804AA10
+ adds r0, r3, r2
+_0804AA08:
+ mov r3, r8
+ adds r2, r3, r0
+ b _0804AA20
+ .align 2, 0
+_0804AA10: .4byte 0x00012b92
+_0804AA14:
+ lsls r0, r5, 1
+ ldr r4, _0804AA5C
+ adds r0, r4
+ mov r1, r8
+ adds r2, r1, r0
+_0804AA1E:
+ adds r7, r6, 0x1
+_0804AA20:
+ adds r6, r7, 0
+ cmp r6, 0x14
+ bgt _0804AA28
+ b _0804A8FE
+_0804AA28:
+ ldr r2, [sp, 0x30]
+ adds r2, 0x1
+ str r2, [sp, 0x30]
+ ldr r3, [sp, 0x3C]
+ str r3, [sp, 0x28]
+ cmp r3, 0x3
+ bne _0804AA3E
+ movs r4, 0
+ str r4, [sp, 0x28]
+ movs r0, 0x1
+ add r10, r0
+_0804AA3E:
+ ldr r7, [sp, 0x38]
+ cmp r7, 0x1E
+ bgt _0804AA46
+ b _0804A7AC
+_0804AA46:
+ movs r0, 0x2
+ bl sub_80098F8
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AA5C: .4byte 0x00013554
+ thumb_func_end sub_804A728
+
+ thumb_func_start sub_804AA60
+sub_804AA60:
+ push {r4,lr}
+ movs r1, 0
+ ldr r0, _0804AAA0
+ movs r3, 0
+ movs r2, 0x80
+ lsls r2, 5
+ adds r4, r0, r2
+_0804AA6E:
+ lsls r0, r1, 6
+ adds r2, r1, 0x1
+ movs r1, 0x1F
+ adds r0, r4
+ adds r0, 0x3E
+_0804AA78:
+ strh r3, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0804AA78
+ adds r1, r2, 0
+ cmp r1, 0x1F
+ ble _0804AA6E
+ movs r4, 0
+ movs r0, 0x2
+ bl sub_80098F8
+ ldr r0, _0804AAA4
+ ldr r0, [r0]
+ ldr r1, _0804AAA8
+ adds r0, r1
+ strb r4, [r0]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AAA0: .4byte gUnknown_202B038
+_0804AAA4: .4byte gUnknown_203B418
+_0804AAA8: .4byte 0x0001821a
+ thumb_func_end sub_804AA60
+
+ thumb_func_start sub_804AAAC
+sub_804AAAC:
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r7, 0
+_0804AAB2:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0804AAB6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ strh r7, [r0, 0x4]
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _0804AAB6
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _0804AAB2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804AAAC
+
+ thumb_func_start sub_804AAD4
+sub_804AAD4:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _0804AC04
+ movs r0, 0
+ mov r8, r0
+ ldr r6, _0804AC08
+ ldr r5, _0804AC0C
+ movs r2, 0
+ movs r3, 0x1F
+_0804AAEA:
+ ldr r0, [r4]
+ adds r0, r2
+ ldr r1, _0804AC10
+ adds r0, r1
+ mov r7, r8
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ adds r1, 0x1
+ adds r0, r1
+ strb r7, [r0]
+ ldr r0, [r4]
+ adds r0, r2
+ ldr r7, _0804AC14
+ adds r1, r0, r7
+ strh r6, [r1]
+ adds r7, 0x2
+ adds r1, r0, r7
+ strh r6, [r1]
+ adds r7, 0x2
+ adds r1, r0, r7
+ strh r5, [r1]
+ ldr r1, _0804AC18
+ adds r0, r1
+ strh r5, [r0]
+ adds r2, 0x1C
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0804AAEA
+ movs r4, 0
+ mov r9, r4
+ movs r6, 0
+ ldr r7, _0804AC04
+ mov r8, r7
+_0804AB2E:
+ movs r4, 0
+ adds r5, r6, 0x1
+_0804AB32:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrb r2, [r0, 0x9]
+ adds r3, r4, 0x1
+ cmp r2, 0xFF
+ beq _0804AB84
+ lsls r0, r2, 3
+ subs r0, r2
+ lsls r0, 2
+ ldr r1, _0804AC10
+ adds r0, r1
+ mov r7, r8
+ ldr r1, [r7]
+ adds r1, r0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r7, 0x2
+ ldrsh r0, [r1, r7]
+ cmp r0, r4
+ ble _0804AB60
+ strh r4, [r1, 0x2]
+_0804AB60:
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r0, r6
+ ble _0804AB6A
+ strh r6, [r1, 0x4]
+_0804AB6A:
+ movs r7, 0x6
+ ldrsh r0, [r1, r7]
+ cmp r0, r3
+ bge _0804AB74
+ strh r3, [r1, 0x6]
+_0804AB74:
+ movs r4, 0x8
+ ldrsh r0, [r1, r4]
+ cmp r0, r5
+ bge _0804AB7E
+ strh r5, [r1, 0x8]
+_0804AB7E:
+ cmp r9, r2
+ bge _0804AB84
+ mov r9, r2
+_0804AB84:
+ adds r4, r3, 0
+ cmp r4, 0x37
+ ble _0804AB32
+ adds r6, r5, 0
+ cmp r6, 0x1F
+ ble _0804AB2E
+ ldr r7, _0804AC04
+ mov r8, r7
+ mov r5, r9
+ adds r5, 0x1
+ mov r6, r8
+ movs r4, 0
+ movs r3, 0x1F
+_0804AB9E:
+ ldr r1, _0804AC10
+ adds r0, r4, r1
+ ldr r1, [r6]
+ adds r2, r1, r0
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _0804ABE4
+ movs r7, 0x2
+ ldrsh r1, [r2, r7]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [r2, 0xC]
+ movs r0, 0x4
+ ldrsh r1, [r2, r0]
+ subs r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [r2, 0x10]
+ movs r7, 0x6
+ ldrsh r1, [r2, r7]
+ adds r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [r2, 0x14]
+ movs r0, 0x8
+ ldrsh r1, [r2, r0]
+ adds r1, 0x1
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ str r0, [r2, 0x18]
+_0804ABE4:
+ adds r4, 0x1C
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0804AB9E
+ mov r1, r8
+ ldr r0, [r1]
+ ldr r4, _0804AC1C
+ adds r0, r4
+ strb r5, [r0]
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AC04: .4byte gUnknown_203B418
+_0804AC08: .4byte 0x0000270f
+_0804AC0C: .4byte 0x0000d8f1
+_0804AC10: .4byte 0x000104c4
+_0804AC14: .4byte 0x000104c6
+_0804AC18: .4byte 0x000104cc
+_0804AC1C: .4byte 0x000104c0
+ thumb_func_end sub_804AAD4
+
+ thumb_func_start sub_804AC20
+sub_804AC20:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ adds r4, r0, 0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrb r1, [r0, 0x9]
+ ldr r0, _0804AC6C
+ ldr r3, [r0]
+ ldr r5, _0804AC70
+ adds r0, r3, r5
+ ldrb r2, [r0]
+ adds r5, 0x1
+ adds r0, r3, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804ACD4
+ cmp r2, 0
+ bne _0804AC52
+ movs r2, 0x2
+_0804AC52:
+ cmp r1, 0xFF
+ bne _0804AC74
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ subs r3, r1, r2
+ mov r9, r3
+ movs r5, 0x2
+ ldrsh r0, [r4, r5]
+ subs r3, r0, r2
+ adds r6, r1, r2
+ adds r0, r2
+ mov r8, r0
+ b _0804ACA2
+ .align 2, 0
+_0804AC6C: .4byte gUnknown_203B418
+_0804AC70: .4byte 0x00018209
+_0804AC74:
+ lsls r0, r1, 3
+ subs r0, r1
+ lsls r0, 2
+ ldr r1, _0804ACE0
+ adds r0, r1
+ adds r2, r3, r0
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0
+ bne _0804ACD4
+ movs r0, 0x1
+ strb r0, [r2, 0x1]
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ subs r0, 0x1
+ mov r9, r0
+ movs r5, 0x4
+ ldrsh r0, [r2, r5]
+ subs r3, r0, 0x1
+ movs r0, 0x6
+ ldrsh r6, [r2, r0]
+ movs r5, 0x8
+ ldrsh r1, [r2, r5]
+ mov r8, r1
+_0804ACA2:
+ adds r5, r3, 0
+ cmp r5, r8
+ bgt _0804ACD4
+_0804ACA8:
+ mov r4, r9
+ adds r7, r5, 0x1
+ cmp r4, r6
+ bgt _0804ACCE
+_0804ACB0:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x3
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80402AC
+ adds r4, 0x1
+ cmp r4, r6
+ ble _0804ACB0
+_0804ACCE:
+ adds r5, r7, 0
+ cmp r5, r8
+ ble _0804ACA8
+_0804ACD4:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804ACE0: .4byte 0x000104c4
+ thumb_func_end sub_804AC20
+
+ thumb_func_start sub_804ACE4
+sub_804ACE4:
+ push {lr}
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_804954C
+ ldr r0, [r0, 0x14]
+ cmp r0, 0
+ beq _0804AD06
+ bl sub_80450F8
+ cmp r0, 0x3
+ bne _0804AD06
+ movs r0, 0x1
+ b _0804AD08
+_0804AD06:
+ movs r0, 0
+_0804AD08:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804ACE4
+
+ thumb_func_start sub_804AD0C
+sub_804AD0C:
+ push {lr}
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ movs r3, 0x2
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_804954C
+ ldr r1, [r0, 0x10]
+ cmp r1, 0
+ beq _0804AD2C
+ ldr r0, [r1]
+ cmp r0, 0x1
+ bne _0804AD2C
+ adds r0, r1, 0
+ b _0804AD2E
+_0804AD2C:
+ movs r0, 0
+_0804AD2E:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804AD0C
+
+ thumb_func_start sub_804AD34
+sub_804AD34:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r6, r0, 0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0804ADB6
+ movs r0, 0x88
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0804ADB6
+ movs r0, 0x1
+ mov r8, r0
+ ldr r0, _0804ADFC
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ movs r5, 0x1
+ negs r5, r5
+_0804AD74:
+ movs r4, 0x1
+ negs r4, r4
+ adds r7, r5, 0x1
+_0804AD7A:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ adds r1, r5, r1
+ bl sub_80498A8
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ adds r1, r5, r1
+ bl sub_8049BB0
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ adds r1, r5, r1
+ bl sub_80402AC
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0804AD7A
+ adds r5, r7, 0
+ cmp r5, 0x1
+ ble _0804AD74
+_0804ADB6:
+ mov r0, r8
+ cmp r0, 0
+ beq _0804ADEE
+ movs r5, 0
+_0804ADBE:
+ ldr r0, _0804AE00
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _0804AE04
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804ADDE
+ adds r0, r4, 0
+ bl sub_806CF98
+_0804ADDE:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _0804ADBE
+ bl sub_8049ED4
+ adds r0, r6, 0
+ bl sub_8042A14
+_0804ADEE:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804ADFC: .4byte 0x0000fffc
+_0804AE00: .4byte gUnknown_203B418
+_0804AE04: .4byte 0x000135cc
+ thumb_func_end sub_804AD34
+
+ thumb_func_start sub_804AE08
+sub_804AE08:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0804AE72
+ movs r0, 0x88
+ lsls r0, 1
+ ands r0, r1
+ cmp r0, 0
+ bne _0804AE72
+ movs r0, 0x1
+ mov r8, r0
+ ldr r0, _0804AE80
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r2]
+ ldrh r1, [r2, 0x4]
+ movs r0, 0x10
+ orrs r0, r1
+ strh r0, [r2, 0x4]
+ movs r5, 0x1
+ negs r5, r5
+_0804AE50:
+ movs r4, 0x1
+ negs r4, r4
+ adds r6, r5, 0x1
+_0804AE56:
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ adds r1, r5, r1
+ bl sub_8049BB0
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0804AE56
+ adds r5, r6, 0
+ cmp r5, 0x1
+ ble _0804AE50
+_0804AE72:
+ mov r0, r8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804AE80: .4byte 0x0000fffc
+ thumb_func_end sub_804AE08
+
+ thumb_func_start sub_804AE84
+sub_804AE84:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2, 0x4]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0804AF0E
+ ldr r0, _0804AF14
+ ands r0, r1
+ strh r0, [r2, 0x4]
+ movs r6, 0x1
+ negs r6, r6
+_0804AEAA:
+ movs r4, 0x1
+ negs r4, r4
+ adds r7, r6, 0x1
+_0804AEB0:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ adds r1, r6, r1
+ bl sub_80498A8
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ adds r0, r4, r0
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ adds r1, r6, r1
+ bl sub_80402AC
+ adds r4, 0x1
+ cmp r4, 0x1
+ ble _0804AEB0
+ adds r6, r7, 0
+ cmp r6, 0x1
+ ble _0804AEAA
+ movs r6, 0
+_0804AEDE:
+ ldr r0, _0804AF18
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0804AF1C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804AEFE
+ adds r0, r4, 0
+ bl sub_806CF98
+_0804AEFE:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _0804AEDE
+ bl sub_8049ED4
+ adds r0, r5, 0
+ bl sub_8042A14
+_0804AF0E:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804AF14: .4byte 0x0000ffef
+_0804AF18: .4byte gUnknown_203B418
+_0804AF1C: .4byte 0x000135cc
+ thumb_func_end sub_804AE84
+
+ thumb_func_start sub_804AF20
+sub_804AF20:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ movs r5, 0
+ bl sub_804AF74
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804AF3C
+ ldrh r1, [r4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0804AF5E
+ b _0804AF5C
+_0804AF3C:
+ ldrh r1, [r4]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0804AF5C
+ ldr r1, _0804AF68
+ ldr r0, _0804AF6C
+ ldr r0, [r0]
+ ldr r2, _0804AF70
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804AF5E
+_0804AF5C:
+ movs r5, 0x1
+_0804AF5E:
+ adds r0, r5, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804AF68: .4byte gUnknown_810ACC0
+_0804AF6C: .4byte gUnknown_203B418
+_0804AF70: .4byte 0x00003a0e
+ thumb_func_end sub_804AF20
+
+ thumb_func_start sub_804AF74
+sub_804AF74:
+ push {lr}
+ ldr r0, _0804AF9C
+ ldr r0, [r0]
+ ldr r1, _0804AFA0
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0804AF96
+ cmp r0, 0x31
+ beq _0804AF96
+ cmp r0, 0x20
+ beq _0804AF96
+ cmp r0, 0x21
+ beq _0804AF96
+ cmp r0, 0x36
+ bne _0804AFA4
+_0804AF96:
+ movs r0, 0x1
+ b _0804AFA6
+ .align 2, 0
+_0804AF9C: .4byte gUnknown_203B418
+_0804AFA0: .4byte 0x00003a0e
+_0804AFA4:
+ movs r0, 0
+_0804AFA6:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804AF74
+
+ thumb_func_start sub_804AFAC
+sub_804AFAC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ movs r0, 0
+ mov r10, r0
+ ldr r4, _0804B0E8
+ ldr r0, [r4]
+ ldr r1, _0804B0EC
+ adds r1, r0
+ mov r8, r1
+ ldr r0, _0804B0F0
+ ldr r1, _0804B0F4
+ bl OpenFileAndGetFileDataPtr
+ ldr r2, [r4]
+ ldr r3, _0804B0F8
+ adds r1, r2, r3
+ str r0, [r1]
+ ldr r0, _0804B0FC
+ mov r6, r10
+ strb r6, [r0]
+ ldr r0, _0804B100
+ strb r6, [r0]
+ ldr r0, _0804B104
+ strb r6, [r0]
+ ldr r5, _0804B108
+ movs r3, 0
+ ldr r1, _0804B10C
+ ldr r0, _0804B110
+ adds r2, r0
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0804AFFC
+ movs r3, 0x1
+_0804AFFC:
+ strb r3, [r5]
+ ldr r1, _0804B114
+ movs r0, 0xFF
+ strb r0, [r1]
+ ldr r0, _0804B118
+ mov r1, r10
+ strb r1, [r0]
+ ldr r1, _0804B11C
+ mov r2, r8
+ ldrb r0, [r2, 0x7]
+ strh r0, [r1]
+ ldr r1, _0804B120
+ ldrb r0, [r2, 0x8]
+ strh r0, [r1]
+ ldr r1, _0804B124
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r1, _0804B128
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ str r0, [r1, 0x8]
+ str r0, [r1, 0x4]
+ str r0, [r1, 0xC]
+ bl sub_804FD30
+ ldr r3, [r4]
+ mov r6, r8
+ ldrb r2, [r6, 0x6]
+ ldr r1, _0804B12C
+ adds r0, r3, r1
+ movs r1, 0
+ strh r2, [r0]
+ ldr r2, _0804B130
+ adds r0, r3, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r3, _0804B134
+ adds r0, r3
+ strb r1, [r0]
+ ldr r1, _0804B138
+ mov r6, r8
+ ldrb r0, [r6, 0xC]
+ str r0, [r1]
+ movs r0, 0
+ str r0, [sp, 0x40]
+_0804B058:
+ ldr r0, _0804B0E8
+ ldr r2, [r0]
+ ldr r3, _0804B13C
+ adds r1, r2, r3
+ ldr r0, _0804B140
+ strh r0, [r1]
+ ldr r6, _0804B144
+ adds r1, r2, r6
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ ldr r0, _0804B148
+ adds r1, r2, r0
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ ldr r1, _0804B14C
+ adds r2, r1
+ strh r0, [r2]
+ movs r2, 0
+ mov r9, r2
+_0804B082:
+ ldr r4, _0804B0E8
+ ldr r0, [r4]
+ ldr r3, _0804B150
+ adds r0, r3
+ movs r5, 0
+ movs r1, 0
+ mov r6, r9
+ strh r6, [r0]
+ mov r0, r9
+ cmp r0, 0
+ ble _0804B09C
+ ldr r0, _0804B138
+ str r1, [r0]
+_0804B09C:
+ ldr r0, _0804B154
+ strb r5, [r0]
+ ldr r1, _0804B158
+ ldr r0, _0804B140
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ bl sub_804FD30
+ ldr r1, [r4]
+ ldr r3, _0804B13C
+ adds r2, r1, r3
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r2]
+ ldr r6, _0804B144
+ adds r2, r1, r6
+ strh r0, [r2]
+ ldr r0, _0804B15C
+ adds r1, r0
+ strb r5, [r1]
+ ldr r0, [r4]
+ ldr r2, _0804B160
+ adds r1, r0, r2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0804B164
+ mov r1, r8
+ bl sub_804C70C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804B0E4
+ b _0804B376
+_0804B0E4:
+ b _0804B2F6
+ .align 2, 0
+_0804B0E8: .4byte gUnknown_203B418
+_0804B0EC: .4byte 0x0001c574
+_0804B0F0: .4byte gUnknown_80F6DCC
+_0804B0F4: .4byte gUnknown_83B0000
+_0804B0F8: .4byte 0x00013568
+_0804B0FC: .4byte gUnknown_202F1AA
+_0804B100: .4byte gUnknown_202F1AB
+_0804B104: .4byte gUnknown_202F1AC
+_0804B108: .4byte gUnknown_202F1A8
+_0804B10C: .4byte gUnknown_810ACC0
+_0804B110: .4byte 0x00003a0e
+_0804B114: .4byte gUnknown_202F1B4
+_0804B118: .4byte gUnknown_202F1AE
+_0804B11C: .4byte gUnknown_202F1B0
+_0804B120: .4byte gUnknown_202F1B2
+_0804B124: .4byte gUnknown_202F1AD
+_0804B128: .4byte gUnknown_202F1B8
+_0804B12C: .4byte 0x00000664
+_0804B130: .4byte 0x00003a09
+_0804B134: .4byte 0x00003a0a
+_0804B138: .4byte gUnknown_202F1C8
+_0804B13C: .4byte 0x0000e218
+_0804B140: .4byte 0x0000ffff
+_0804B144: .4byte 0x0000e21a
+_0804B148: .4byte 0x0000e21c
+_0804B14C: .4byte 0x0000e21e
+_0804B150: .4byte 0x00003a16
+_0804B154: .4byte gUnknown_202F1A9
+_0804B158: .4byte gUnknown_202F1D8
+_0804B15C: .4byte 0x00003a08
+_0804B160: .4byte 0x00003a14
+_0804B164:
+ mov r0, r8
+ ldrb r7, [r0]
+ movs r6, 0x20
+_0804B16A:
+ cmp r7, 0x8
+ beq _0804B17E
+ movs r0, 0x2
+ movs r1, 0x9
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r0, 0x2
+ movs r1, 0x8
+ b _0804B18C
+_0804B17E:
+ movs r0, 0x2
+ movs r1, 0x5
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r0, 0x2
+ movs r1, 0x4
+_0804B18C:
+ bl sub_808411C
+ adds r4, r0, 0
+ cmp r5, 0x6
+ bgt _0804B19A
+ cmp r4, 0x4
+ ble _0804B1A4
+_0804B19A:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0804B16A
+ movs r5, 0x4
+ movs r4, 0x4
+_0804B1A4:
+ movs r0, 0x38
+ adds r1, r5, 0
+ bl __divsi3
+ cmp r0, 0x7
+ bgt _0804B1B2
+ movs r5, 0x1
+_0804B1B2:
+ movs r0, 0x20
+ adds r1, r4, 0
+ bl __divsi3
+ cmp r0, 0x7
+ bgt _0804B1C0
+ movs r4, 0x1
+_0804B1C0:
+ ldr r2, _0804B1EC
+ ldr r0, [r2]
+ ldr r1, _0804B1F0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r2, _0804B1F4
+ adds r0, r2
+ movs r1, 0xFF
+ strb r1, [r0]
+ ldr r0, _0804B1F8
+ str r7, [r0]
+ movs r0, 0xF
+ ands r0, r7
+ cmp r0, 0xB
+ bhi _0804B274
+ lsls r0, 2
+ ldr r1, _0804B1FC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804B1EC: .4byte gUnknown_203B418
+_0804B1F0: .4byte 0x00003a08
+_0804B1F4: .4byte 0x00003a0c
+_0804B1F8: .4byte gUnknown_202F1D0
+_0804B1FC: .4byte _0804B200
+ .align 2, 0
+_0804B200:
+ .4byte _0804B274
+ .4byte _0804B230
+ .4byte _0804B280
+ .4byte _0804B298
+ .4byte _0804B2A4
+ .4byte _0804B2B0
+ .4byte _0804B2CC
+ .4byte _0804B2D8
+ .4byte _0804B274
+ .4byte _0804B2E0
+ .4byte _0804B2E8
+ .4byte _0804B250
+_0804B230:
+ movs r0, 0x2
+ bl sub_8084100
+ adds r4, r0, 0x2
+ ldr r1, _0804B24C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x4
+ adds r1, r4, 0
+ mov r2, r8
+ bl sub_804B634
+ b _0804B2AA
+ .align 2, 0
+_0804B24C: .4byte gUnknown_202F1AE
+_0804B250:
+ movs r0, 0x2
+ bl sub_8084100
+ adds r4, r0, 0x2
+ ldr r1, _0804B270
+ movs r0, 0x2
+ strb r0, [r1]
+ movs r0, 0x4
+ adds r1, r4, 0
+ mov r2, r8
+ bl sub_804B634
+ movs r6, 0x1
+ mov r10, r6
+ b _0804B2F6
+ .align 2, 0
+_0804B270: .4byte gUnknown_202F1AE
+_0804B274:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl sub_804B634
+ b _0804B2D2
+_0804B280:
+ bl sub_804C918
+ ldr r0, _0804B290
+ ldr r0, [r0]
+ ldr r1, _0804B294
+ adds r0, r1
+ b _0804B2BC
+ .align 2, 0
+_0804B290: .4byte gUnknown_203B418
+_0804B294: .4byte 0x00003a08
+_0804B298:
+ mov r0, r8
+ bl sub_804B72C
+ movs r2, 0x1
+ mov r10, r2
+ b _0804B2F6
+_0804B2A4:
+ mov r0, r8
+ bl sub_804BC80
+_0804B2AA:
+ movs r3, 0x1
+ mov r10, r3
+ b _0804B2F6
+_0804B2B0:
+ bl sub_804C9D0
+ ldr r0, _0804B2C4
+ ldr r0, [r0]
+ ldr r6, _0804B2C8
+ adds r0, r6
+_0804B2BC:
+ movs r1, 0x1
+ strb r1, [r0]
+ b _0804B2F6
+ .align 2, 0
+_0804B2C4: .4byte gUnknown_203B418
+_0804B2C8: .4byte 0x00003a08
+_0804B2CC:
+ mov r0, r8
+ bl sub_804C0A8
+_0804B2D2:
+ movs r0, 0x1
+ mov r10, r0
+ b _0804B2F6
+_0804B2D8:
+ mov r0, r8
+ bl sub_804C190
+ b _0804B2F6
+_0804B2E0:
+ mov r0, r8
+ bl sub_804C2F4
+ b _0804B2F6
+_0804B2E8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ mov r2, r8
+ bl sub_804C53C
+ movs r1, 0x1
+ mov r10, r1
+_0804B2F6:
+ bl sub_80518F0
+ bl sub_804FCCC
+ ldr r0, _0804B4B4
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804B36A
+ movs r7, 0
+ movs r1, 0
+ mov r0, sp
+ adds r0, 0x3F
+_0804B30E:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _0804B30E
+ movs r5, 0
+_0804B318:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0804B31C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r0, [r1]
+ movs r2, 0x3
+ ands r2, r0
+ cmp r2, 0x1
+ bne _0804B340
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xF0
+ bhi _0804B340
+ adds r7, 0x1
+ cmp r0, 0x3F
+ bhi _0804B340
+ add r0, sp
+ strb r2, [r0]
+_0804B340:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0804B31C
+ adds r5, r6, 0
+ cmp r5, 0x37
+ ble _0804B318
+ movs r1, 0
+ movs r4, 0
+_0804B350:
+ mov r2, sp
+ adds r0, r2, r4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804B35C
+ adds r1, 0x1
+_0804B35C:
+ adds r4, 0x1
+ cmp r4, 0x3F
+ ble _0804B350
+ cmp r7, 0x1D
+ ble _0804B36A
+ cmp r1, 0x1
+ bgt _0804B376
+_0804B36A:
+ movs r3, 0x1
+ add r9, r3
+ mov r6, r9
+ cmp r6, 0x9
+ bgt _0804B376
+ b _0804B082
+_0804B376:
+ mov r0, r9
+ cmp r0, 0xA
+ bne _0804B398
+ ldr r1, _0804B4B8
+ ldr r0, _0804B4BC
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ bl sub_804C918
+ ldr r0, _0804B4C0
+ ldr r0, [r0]
+ ldr r1, _0804B4C4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+_0804B398:
+ bl sub_804E9DC
+ mov r2, r10
+ cmp r2, 0
+ beq _0804B3AA
+ movs r0, 0x1
+ mov r1, r8
+ bl sub_80506F0
+_0804B3AA:
+ movs r0, 0x64
+ bl sub_8084100
+ movs r4, 0
+ mov r3, r8
+ ldrb r3, [r3, 0x19]
+ cmp r0, r3
+ bge _0804B3BC
+ movs r4, 0x1
+_0804B3BC:
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_804FF08
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_8050438
+ bl sub_804FBE8
+ ldr r5, _0804B4C0
+ ldr r1, [r5]
+ ldr r6, _0804B4C8
+ adds r0, r1, r6
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r4, 0x1
+ negs r4, r4
+ cmp r0, r4
+ beq _0804B42A
+ ldr r3, _0804B4CC
+ adds r0, r1, r3
+ movs r6, 0
+ ldrsh r0, [r0, r6]
+ cmp r0, r4
+ beq _0804B42A
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ beq _0804B436
+ ldr r1, [r5]
+ ldr r0, _0804B4D0
+ adds r2, r1, r0
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, r4
+ beq _0804B42A
+ ldr r6, _0804B4D4
+ adds r1, r6
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, r4
+ beq _0804B42A
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r2, 0
+ bl sub_8050C30
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804B436
+_0804B42A:
+ ldr r3, [sp, 0x40]
+ adds r3, 0x1
+ str r3, [sp, 0x40]
+ cmp r3, 0x9
+ bgt _0804B436
+ b _0804B058
+_0804B436:
+ ldr r6, [sp, 0x40]
+ cmp r6, 0xA
+ bne _0804B474
+ ldr r1, _0804B4B8
+ ldr r0, _0804B4BC
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ bl sub_804FD30
+ bl sub_804C918
+ ldr r0, _0804B4C0
+ ldr r0, [r0]
+ ldr r1, _0804B4C4
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ bl sub_804E9DC
+ mov r0, r8
+ movs r1, 0
+ bl sub_804FF08
+ mov r0, r8
+ movs r1, 0
+ bl sub_8050438
+ bl sub_804FBE8
+_0804B474:
+ ldr r1, _0804B4B8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ blt _0804B498
+ movs r3, 0x2
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ blt _0804B498
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ movs r2, 0xBE
+ lsls r2, 1
+ movs r3, 0
+ bl sub_806C330
+_0804B498:
+ ldr r0, _0804B4D8
+ ldr r0, [r0]
+ cmp r0, 0
+ blt _0804B4E0
+ mov r0, r8
+ bl sub_8051654
+ ldr r0, _0804B4C0
+ ldr r0, [r0]
+ ldr r3, _0804B4DC
+ adds r0, r3
+ movs r1, 0x1
+ b _0804B4EA
+ .align 2, 0
+_0804B4B4: .4byte gUnknown_202F1A9
+_0804B4B8: .4byte gUnknown_202F1D8
+_0804B4BC: .4byte 0x0000ffff
+_0804B4C0: .4byte gUnknown_203B418
+_0804B4C4: .4byte 0x00003a08
+_0804B4C8: .4byte 0x0000e218
+_0804B4CC: .4byte 0x0000e21a
+_0804B4D0: .4byte 0x0000e21c
+_0804B4D4: .4byte 0x0000e21e
+_0804B4D8: .4byte gUnknown_202F1B8
+_0804B4DC: .4byte 0x00003a0a
+_0804B4E0:
+ ldr r0, _0804B524
+ ldr r0, [r0]
+ ldr r6, _0804B528
+ adds r0, r6
+ movs r1, 0
+_0804B4EA:
+ strb r1, [r0]
+ movs r0, 0
+ movs r1, 0
+ movs r2, 0x38
+ movs r3, 0x20
+ bl sub_804B534
+ ldr r0, _0804B52C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804B504
+ bl sub_804FC74
+_0804B504:
+ ldr r0, _0804B524
+ ldr r0, [r0]
+ ldr r1, _0804B530
+ adds r0, r1
+ ldr r0, [r0]
+ bl CloseFile
+ 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
+_0804B524: .4byte gUnknown_203B418
+_0804B528: .4byte 0x00003a0a
+_0804B52C: .4byte gUnknown_202F1A8
+_0804B530: .4byte 0x00013568
+ thumb_func_end sub_804AFAC
+
+ thumb_func_start sub_804B534
+sub_804B534:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ str r1, [sp]
+ str r2, [sp, 0x4]
+ mov r10, r3
+ adds r5, r0, 0
+ cmp r5, r2
+ bge _0804B620
+_0804B54C:
+ ldr r4, [sp]
+ adds r0, r5, 0x1
+ mov r9, r0
+ cmp r4, r10
+ bge _0804B618
+ movs r6, 0x3
+ mov r8, r6
+_0804B55A:
+ movs r3, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0xC]
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ ldr r6, _0804B630
+ adds r1, r6, 0
+ ands r1, r0
+ strh r1, [r2]
+ ldrb r0, [r2, 0x9]
+ adds r6, r4, 0x1
+ ldr r3, [sp, 0xC]
+ cmp r0, 0xFF
+ bne _0804B612
+ movs r7, 0x3
+ adds r0, r1, 0
+ ands r0, r7
+ cmp r0, 0x1
+ bne _0804B612
+ cmp r5, 0
+ ble _0804B5A4
+ subs r0, r5, 0x1
+ adds r1, r4, 0
+ str r2, [sp, 0x8]
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r7, 0
+ ands r0, r1
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0xC]
+ cmp r0, 0x1
+ bne _0804B5A4
+ movs r3, 0x1
+_0804B5A4:
+ cmp r4, 0
+ ble _0804B5C4
+ subs r1, r4, 0x1
+ adds r0, r5, 0
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0xC]
+ cmp r0, 0x1
+ bne _0804B5C4
+ adds r3, 0x1
+_0804B5C4:
+ cmp r5, 0x35
+ bgt _0804B5E4
+ mov r0, r9
+ adds r1, r4, 0
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0xC]
+ cmp r0, 0x1
+ bne _0804B5E4
+ adds r3, 0x1
+_0804B5E4:
+ adds r6, r4, 0x1
+ cmp r5, 0x1D
+ bgt _0804B606
+ adds r0, r5, 0
+ adds r1, r6, 0
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x8]
+ ldr r3, [sp, 0xC]
+ cmp r0, 0x1
+ bne _0804B606
+ adds r3, 0x1
+_0804B606:
+ cmp r3, 0x2
+ ble _0804B612
+ ldrh r1, [r2]
+ movs r0, 0x8
+ orrs r0, r1
+ strh r0, [r2]
+_0804B612:
+ adds r4, r6, 0
+ cmp r4, r10
+ blt _0804B55A
+_0804B618:
+ mov r5, r9
+ ldr r0, [sp, 0x4]
+ cmp r5, r0
+ blt _0804B54C
+_0804B620:
+ 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
+_0804B630: .4byte 0x0000fffb
+ thumb_func_end sub_804B534
+
+ thumb_func_start sub_804B634
+sub_804B634:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ ldr r4, _0804B718
+ add sp, r4
+ adds r4, r0, 0
+ adds r5, r1, 0
+ mov r9, r2
+ ldr r0, _0804B71C
+ add r0, sp
+ mov r8, r0
+ ldr r6, _0804B720
+ add r6, sp
+ adds r1, r6, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_804D024
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804D084
+ mov r1, r9
+ movs r3, 0x1
+ ldrsb r3, [r1, r3]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804D154
+ str r6, [sp]
+ mov r1, r9
+ ldrb r0, [r1, 0xD]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_804D2D0
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r9
+ bl sub_804D5B0
+ str r6, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_804D8C8
+ str r6, [sp]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_804E590
+ mov r0, r9
+ ldrb r3, [r0, 0x9]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804F0D0
+ ldr r0, _0804B724
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804EBC8
+ ldr r0, _0804B728
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804EEE4
+ mov r0, r9
+ ldrb r3, [r0, 0x13]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804E03C
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_804D534
+ movs r3, 0xE5
+ lsls r3, 5
+ add sp, r3
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804B718: .4byte 0xffffe360
+_0804B71C: .4byte 0x00001c28
+_0804B720: .4byte 0x00001c64
+_0804B724: .4byte gUnknown_202F1B0
+_0804B728: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804B634
+
+ thumb_func_start sub_804B72C
+sub_804B72C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804B9AC
+ add sp, r4
+ movs r1, 0xE5
+ lsls r1, 5
+ add r1, sp
+ str r0, [r1]
+ movs r5, 0
+ movs r6, 0x1
+ ldr r1, _0804B9B0
+ add r1, sp
+ str r5, [r1]
+ movs r0, 0x5
+ str r0, [r1, 0x4]
+ movs r0, 0x1C
+ str r0, [r1, 0xC]
+ movs r0, 0x33
+ str r0, [r1, 0x14]
+ movs r0, 0x38
+ str r0, [r1, 0x18]
+ movs r2, 0x10
+ str r2, [r1, 0x8]
+ movs r0, 0x27
+ str r0, [r1, 0x10]
+ ldr r1, _0804B9B4
+ add r1, sp
+ movs r0, 0x2
+ str r0, [r1]
+ movs r0, 0x7
+ str r0, [r1, 0x4]
+ str r2, [r1, 0x8]
+ movs r0, 0x19
+ str r0, [r1, 0xC]
+ movs r0, 0x1E
+ str r0, [r1, 0x10]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_804D084
+ mov r2, sp
+ adds r2, 0x3B
+ ldr r3, _0804B9B8
+ add r3, sp
+ str r2, [r3]
+ mov r4, sp
+ adds r4, 0x3C
+ ldr r0, _0804B9BC
+ add r0, sp
+ str r4, [r0]
+ mov r1, sp
+ adds r1, 0x5B
+ ldr r2, _0804B9C0
+ add r2, sp
+ str r1, [r2]
+ mov r3, sp
+ adds r3, 0x5C
+ movs r4, 0xE6
+ lsls r4, 5
+ add r4, sp
+ str r3, [r4]
+ mov r0, sp
+ adds r0, 0x7B
+ ldr r1, _0804B9C4
+ add r1, sp
+ str r0, [r1]
+ mov r2, sp
+ adds r2, 0x7E
+ ldr r3, _0804B9C8
+ add r3, sp
+ str r2, [r3]
+ add r1, sp, 0x68
+ add r0, sp, 0x8
+ movs r2, 0xF0
+ lsls r2, 1
+ movs r4, 0x6
+_0804B7CC:
+ strb r5, [r0, 0xA]
+ strb r5, [r1, 0xA]
+ adds r1, r2
+ adds r0, r2
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0804B7CC
+ movs r2, 0x6
+ subs r2, 0x1
+ movs r4, 0x4
+ cmp r4, 0
+ beq _0804B80C
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ add r1, sp, 0x8
+ ldr r3, _0804B9CC
+ add r3, sp
+ str r4, [r3]
+_0804B7F6:
+ strb r5, [r1, 0xA]
+ strb r5, [r0, 0xA]
+ adds r0, 0x20
+ adds r1, 0x20
+ ldr r3, _0804B9CC
+ add r3, sp
+ ldr r4, [r3]
+ subs r4, 0x1
+ str r4, [r3]
+ cmp r4, 0
+ bne _0804B7F6
+_0804B80C:
+ movs r4, 0x1
+ cmp r4, r2
+ bge _0804B848
+ movs r1, 0x3
+_0804B814:
+ adds r5, r4, 0x1
+ mov r8, r5
+ cmp r1, 0x1
+ ble _0804B842
+ lsls r0, r4, 4
+ subs r0, r4
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r0, 0x20
+ subs r3, r1, 0x1
+ ldr r4, _0804B9CC
+ add r4, sp
+ str r3, [r4]
+_0804B830:
+ strb r6, [r0, 0xA]
+ adds r0, 0x20
+ ldr r3, _0804B9CC
+ add r3, sp
+ ldr r5, [r3]
+ subs r5, 0x1
+ str r5, [r3]
+ cmp r5, 0
+ bne _0804B830
+_0804B842:
+ mov r4, r8
+ cmp r4, r2
+ blt _0804B814
+_0804B848:
+ movs r4, 0
+ ldr r5, _0804B9D0
+ add r5, sp
+ str r4, [r5]
+ ldr r0, _0804B9CC
+ add r0, sp
+ str r4, [r0]
+ cmp r4, 0x4
+ blt _0804B85C
+ b _0804BA8C
+_0804B85C:
+ movs r4, 0
+ ldr r2, _0804B9CC
+ add r2, sp
+ ldr r1, [r2]
+ adds r1, 0x1
+ ldr r2, _0804B9D4
+ add r2, sp
+ str r1, [r2]
+ cmp r4, 0x6
+ blt _0804B872
+ b _0804BA7A
+_0804B872:
+ ldr r3, _0804B9B0
+ add r3, sp
+ ldr r5, _0804B9D8
+ add r5, sp
+ str r3, [r5]
+ ldr r0, _0804B9B4
+ add r0, sp
+ ldr r1, _0804B9DC
+ add r1, sp
+ str r0, [r1]
+ ldr r2, _0804B9CC
+ add r2, sp
+ ldr r2, [r2]
+ lsls r0, r2, 2
+ ldr r3, [r1]
+ adds r0, r3, r0
+ ldr r3, _0804B9E0
+ add r3, sp
+ str r0, [r3]
+_0804B898:
+ lsls r0, r4, 4
+ subs r0, r4
+ ldr r5, _0804B9CC
+ add r5, sp
+ ldr r5, [r5]
+ adds r0, r5
+ lsls r0, 5
+ mov r7, sp
+ adds r7, r0
+ adds r7, 0x8
+ ldrb r0, [r7, 0xA]
+ cmp r0, 0
+ bne _0804B8B4
+ b _0804B9F4
+_0804B8B4:
+ lsls r0, r4, 2
+ ldr r1, _0804B9D8
+ add r1, sp
+ ldr r1, [r1]
+ adds r0, r1, r0
+ ldr r1, [r0]
+ adds r2, r1, 0x2
+ mov r10, r2
+ ldr r3, _0804B9E0
+ add r3, sp
+ ldr r3, [r3]
+ ldr r2, [r3]
+ adds r5, r2, 0x2
+ ldr r0, _0804B9E4
+ add r0, sp
+ str r5, [r0]
+ adds r4, 0x1
+ mov r9, r4
+ lsls r0, r4, 2
+ ldr r3, _0804B9D8
+ add r3, sp
+ ldr r3, [r3]
+ adds r0, r3, r0
+ ldr r4, [r0]
+ subs r4, r1
+ subs r4, 0x3
+ ldr r5, _0804B9D4
+ add r5, sp
+ ldr r5, [r5]
+ lsls r0, r5, 2
+ ldr r1, _0804B9DC
+ add r1, sp
+ ldr r1, [r1]
+ adds r0, r1, r0
+ ldr r5, [r0]
+ subs r5, r2
+ subs r5, 0x3
+ movs r0, 0x5
+ adds r1, r4, 0
+ bl sub_808411C
+ mov r8, r0
+ movs r0, 0x4
+ adds r1, r5, 0
+ bl sub_808411C
+ adds r6, r0, 0
+ mov r2, r8
+ subs r4, r2
+ adds r0, r4, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ add r4, r10
+ subs r5, r6
+ adds r0, r5, 0
+ bl sub_8084100
+ ldr r5, _0804B9E4
+ add r5, sp
+ ldr r3, [r5]
+ adds r3, r0
+ mov r10, r3
+ mov r0, r8
+ adds r3, r4, r0
+ add r6, r10
+ strh r4, [r7]
+ strh r3, [r7, 0x4]
+ mov r1, r10
+ strh r1, [r7, 0x2]
+ strh r6, [r7, 0x6]
+ mov r8, r9
+ ldr r5, _0804B9D0
+ add r5, sp
+ ldr r2, [r5]
+ adds r2, 0x1
+ ldr r5, _0804B9E8
+ add r5, sp
+ str r2, [r5]
+ cmp r4, r3
+ bge _0804B99E
+_0804B956:
+ mov r5, r10
+ adds r7, r4, 0x1
+ cmp r5, r6
+ bge _0804B998
+ ldr r0, _0804B9EC
+ mov r9, r0
+_0804B962:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ ldr r2, _0804B9F0
+ add r2, sp
+ str r3, [r2]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r9
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ ldr r1, _0804B9D0
+ add r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0, 0x9]
+ adds r5, 0x1
+ ldr r2, _0804B9F0
+ add r2, sp
+ ldr r3, [r2]
+ cmp r5, r6
+ blt _0804B962
+_0804B998:
+ adds r4, r7, 0
+ cmp r4, r3
+ blt _0804B956
+_0804B99E:
+ ldr r3, _0804B9E8
+ add r3, sp
+ ldr r3, [r3]
+ ldr r4, _0804B9D0
+ add r4, sp
+ str r3, [r4]
+ b _0804BA72
+ .align 2, 0
+_0804B9AC: .4byte 0xffffe320
+_0804B9B0: .4byte 0x00001c28
+_0804B9B4: .4byte 0x00001c64
+_0804B9B8: .4byte 0x00001cd4
+_0804B9BC: .4byte 0x00001cd8
+_0804B9C0: .4byte 0x00001cbc
+_0804B9C4: .4byte 0x00001cc4
+_0804B9C8: .4byte 0x00001cc8
+_0804B9CC: .4byte 0x00001ca4
+_0804B9D0: .4byte 0x00001ca8
+_0804B9D4: .4byte 0x00001ccc
+_0804B9D8: .4byte 0x00001cac
+_0804B9DC: .4byte 0x00001cb4
+_0804B9E0: .4byte 0x00001cb8
+_0804B9E4: .4byte 0x00001cb0
+_0804B9E8: .4byte 0x00001cd0
+_0804B9EC: .4byte 0x0000fffc
+_0804B9F0: .4byte 0x00001cdc
+_0804B9F4:
+ lsls r0, r4, 2
+ ldr r5, _0804BBE8
+ add r5, sp
+ ldr r5, [r5]
+ adds r0, r5, r0
+ ldr r2, [r0]
+ adds r0, r2, 0x1
+ ldr r1, _0804BBEC
+ add r1, sp
+ ldr r1, [r1]
+ ldr r3, [r1]
+ adds r6, r3, 0x1
+ adds r4, 0x1
+ mov r8, r4
+ lsls r1, r4, 2
+ adds r1, r5, r1
+ ldr r1, [r1]
+ subs r1, r2
+ subs r1, 0x3
+ ldr r5, _0804BBF0
+ add r5, sp
+ ldr r5, [r5]
+ lsls r2, r5, 2
+ ldr r4, _0804BBF4
+ add r4, sp
+ ldr r4, [r4]
+ adds r2, r4, r2
+ ldr r4, [r2]
+ subs r4, r3
+ subs r4, 0x3
+ adds r1, r0, r1
+ bl sub_808411C
+ adds r5, r0, 0
+ adds r4, r6, r4
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_808411C
+ adds r4, r0, 0
+ strh r5, [r7]
+ adds r0, r5, 0x1
+ strh r0, [r7, 0x4]
+ strh r4, [r7, 0x2]
+ adds r0, r4, 0x1
+ strh r0, [r7, 0x6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, _0804BBF8
+ adds r2, r3, 0
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+_0804BA72:
+ mov r4, r8
+ cmp r4, 0x6
+ bge _0804BA7A
+ b _0804B898
+_0804BA7A:
+ ldr r4, _0804BBF0
+ add r4, sp
+ ldr r4, [r4]
+ ldr r5, _0804BBFC
+ add r5, sp
+ str r4, [r5]
+ cmp r4, 0x4
+ bge _0804BA8C
+ b _0804B85C
+_0804BA8C:
+ add r1, sp, 0x8
+ movs r6, 0
+ movs r0, 0x1
+ strb r0, [r1, 0x16]
+ ldr r1, _0804BC00
+ add r1, sp
+ strb r0, [r1]
+ movs r1, 0xFF
+ lsls r1, 1
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC04
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC08
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC0C
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC10
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC14
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC18
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC1C
+ add r1, sp
+ strb r0, [r1]
+ add r1, sp, 0x8
+ strb r0, [r1, 0x14]
+ ldr r5, _0804BC20
+ add r5, sp
+ ldr r5, [r5]
+ strb r0, [r5]
+ ldr r1, _0804BC24
+ add r1, sp
+ ldr r1, [r1]
+ strb r0, [r1]
+ ldr r2, _0804BC28
+ add r2, sp
+ ldr r2, [r2]
+ strb r0, [r2]
+ movs r3, 0xE6
+ lsls r3, 5
+ add r3, sp
+ ldr r3, [r3]
+ strb r0, [r3]
+ ldr r4, _0804BC2C
+ add r4, sp
+ ldr r4, [r4]
+ strb r0, [r4]
+ ldr r5, _0804BC30
+ add r5, sp
+ ldr r5, [r5]
+ strb r0, [r5]
+ ldr r1, _0804BC34
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC38
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC3C
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC40
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC44
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC48
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC4C
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC50
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC54
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC58
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC5C
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC60
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC64
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC68
+ add r1, sp
+ strb r0, [r1]
+ ldr r1, _0804BC6C
+ add r1, sp
+ strb r0, [r1]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ movs r4, 0xE5
+ lsls r4, 5
+ add r4, sp
+ ldr r3, [r4]
+ bl sub_804D5B0
+ ldr r5, _0804BC70
+ add r5, sp
+ ldr r4, _0804BC74
+ add r4, sp
+ str r4, [sp]
+ str r6, [sp, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ adds r3, r5, 0
+ bl sub_804D8C8
+ str r4, [sp]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ adds r3, r5, 0
+ bl sub_804E590
+ ldr r0, _0804BC78
+ movs r5, 0
+ ldrsh r3, [r0, r5]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_804EBC8
+ ldr r0, _0804BC7C
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_804EEE4
+ movs r2, 0xE5
+ lsls r2, 5
+ add r2, sp
+ ldr r2, [r2]
+ ldrb r3, [r2, 0x13]
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ movs r1, 0x6
+ movs r2, 0x4
+ bl sub_804E03C
+ movs r3, 0xE7
+ lsls r3, 5
+ 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
+_0804BBE8: .4byte 0x00001cac
+_0804BBEC: .4byte 0x00001cb8
+_0804BBF0: .4byte 0x00001ccc
+_0804BBF4: .4byte 0x00001cb4
+_0804BBF8: .4byte 0x0000fffc
+_0804BBFC: .4byte 0x00001ca4
+_0804BC00: .4byte 0x000001fd
+_0804BC04: .4byte 0x000003dd
+_0804BC08: .4byte 0x000003de
+_0804BC0C: .4byte 0x000005bd
+_0804BC10: .4byte 0x000005be
+_0804BC14: .4byte 0x0000079d
+_0804BC18: .4byte 0x0000079e
+_0804BC1C: .4byte 0x0000097d
+_0804BC20: .4byte 0x00001cd4
+_0804BC24: .4byte 0x00001cd8
+_0804BC28: .4byte 0x00001cbc
+_0804BC2C: .4byte 0x00001cc4
+_0804BC30: .4byte 0x00001cc8
+_0804BC34: .4byte 0x0000025d
+_0804BC38: .4byte 0x0000025e
+_0804BC3C: .4byte 0x0000043d
+_0804BC40: .4byte 0x0000043e
+_0804BC44: .4byte 0x0000061d
+_0804BC48: .4byte 0x0000061e
+_0804BC4C: .4byte 0x000007fd
+_0804BC50: .4byte 0x000007fe
+_0804BC54: .4byte 0x000009dd
+_0804BC58: .4byte 0x0000097c
+_0804BC5C: .4byte 0x0000099b
+_0804BC60: .4byte 0x0000099c
+_0804BC64: .4byte 0x000009bb
+_0804BC68: .4byte 0x000009bc
+_0804BC6C: .4byte 0x000009db
+_0804BC70: .4byte 0x00001c28
+_0804BC74: .4byte 0x00001c64
+_0804BC78: .4byte gUnknown_202F1B0
+_0804BC7C: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804B72C
+
+ thumb_func_start sub_804BC80
+sub_804BC80:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804BED0
+ add sp, r4
+ movs r1, 0xE5
+ lsls r1, 5
+ add r1, sp
+ str r0, [r1]
+ movs r4, 0x1
+ movs r5, 0
+ ldr r1, _0804BED4
+ add r1, sp
+ str r5, [r1]
+ movs r0, 0xB
+ str r0, [r1, 0x4]
+ movs r0, 0x16
+ str r0, [r1, 0x8]
+ movs r0, 0x21
+ str r0, [r1, 0xC]
+ movs r0, 0x2C
+ str r0, [r1, 0x10]
+ movs r0, 0x38
+ str r0, [r1, 0x14]
+ ldr r1, _0804BED8
+ add r1, sp
+ str r4, [r1]
+ movs r0, 0x9
+ str r0, [r1, 0x4]
+ movs r0, 0x10
+ str r0, [r1, 0x8]
+ movs r0, 0x17
+ str r0, [r1, 0xC]
+ movs r0, 0x1F
+ str r0, [r1, 0x10]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_804D084
+ add r6, sp, 0x70
+ add r1, sp, 0x68
+ add r0, sp, 0x8
+ movs r3, 0xF0
+ lsls r3, 1
+ movs r2, 0x5
+_0804BCE0:
+ strb r4, [r0, 0xA]
+ strb r4, [r1, 0xA]
+ adds r1, r3
+ adds r0, r3
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0804BCE0
+ movs r3, 0x5
+ subs r3, 0x1
+ movs r2, 0x4
+ cmp r2, 0
+ beq _0804BD1A
+ lsls r0, r3, 4
+ subs r0, r3
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ add r1, sp, 0x8
+ mov r10, r2
+_0804BD06:
+ strb r4, [r1, 0xA]
+ strb r4, [r0, 0xA]
+ adds r0, 0x20
+ adds r1, 0x20
+ movs r2, 0x1
+ negs r2, r2
+ add r10, r2
+ mov r2, r10
+ cmp r2, 0
+ bne _0804BD06
+_0804BD1A:
+ movs r2, 0x1
+ cmp r2, r3
+ bge _0804BD58
+ movs r1, 0x3
+_0804BD22:
+ adds r4, r2, 0x1
+ ldr r0, _0804BEDC
+ add r0, sp
+ str r4, [r0]
+ cmp r1, 0x1
+ ble _0804BD4E
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r0, 0x20
+ subs r2, r1, 0x1
+ mov r10, r2
+_0804BD3E:
+ strb r5, [r0, 0xA]
+ adds r0, 0x20
+ movs r4, 0x1
+ negs r4, r4
+ add r10, r4
+ mov r2, r10
+ cmp r2, 0
+ bne _0804BD3E
+_0804BD4E:
+ ldr r4, _0804BEDC
+ add r4, sp
+ ldr r2, [r4]
+ cmp r2, r3
+ blt _0804BD22
+_0804BD58:
+ add r0, sp, 0x8
+ movs r1, 0x1
+ strb r1, [r0, 0x8]
+ movs r0, 0xF2
+ lsls r0, 3
+ add r0, sp
+ strb r1, [r0]
+ strb r1, [r6]
+ movs r0, 0xFE
+ lsls r0, 3
+ add r0, sp
+ strb r1, [r0]
+ movs r5, 0
+ ldr r6, _0804BEE0
+ add r6, sp
+ str r5, [r6]
+ mov r10, r5
+ cmp r5, 0x4
+ blt _0804BD80
+ b _0804BFAC
+_0804BD80:
+ movs r0, 0x4
+ movs r1, 0xE6
+ lsls r1, 5
+ add r1, sp
+ str r0, [r1]
+_0804BD8A:
+ movs r2, 0
+ cmp r2, 0x5
+ blt _0804BD92
+ b _0804BF94
+_0804BD92:
+ ldr r3, _0804BED4
+ add r3, sp
+ ldr r4, _0804BEE4
+ add r4, sp
+ str r3, [r4]
+ ldr r5, _0804BED8
+ add r5, sp
+ ldr r6, _0804BEE8
+ add r6, sp
+ str r5, [r6]
+ mov r1, r10
+ lsls r0, r1, 2
+ adds r0, r5, r0
+ ldr r3, _0804BEEC
+ add r3, sp
+ str r0, [r3]
+_0804BDB2:
+ lsls r0, r2, 4
+ subs r0, r2
+ add r0, r10
+ lsls r0, 5
+ mov r7, sp
+ adds r7, r0
+ adds r7, 0x8
+ ldrb r0, [r7, 0x8]
+ adds r4, r2, 0x1
+ ldr r5, _0804BEDC
+ add r5, sp
+ str r4, [r5]
+ cmp r0, 0
+ beq _0804BDD0
+ b _0804BF88
+_0804BDD0:
+ ldrb r0, [r7, 0xA]
+ cmp r0, 0
+ bne _0804BDD8
+ b _0804BF00
+_0804BDD8:
+ lsls r0, r2, 2
+ ldr r6, _0804BEE4
+ add r6, sp
+ ldr r6, [r6]
+ adds r0, r6, r0
+ ldr r1, [r0]
+ adds r0, r1, 0x2
+ mov r9, r0
+ ldr r3, _0804BEEC
+ add r3, sp
+ ldr r3, [r3]
+ ldr r2, [r3]
+ adds r4, r2, 0x2
+ ldr r5, _0804BEF0
+ add r5, sp
+ str r4, [r5]
+ ldr r6, _0804BEDC
+ add r6, sp
+ ldr r6, [r6]
+ lsls r0, r6, 2
+ ldr r3, _0804BEE4
+ add r3, sp
+ ldr r3, [r3]
+ adds r0, r3, r0
+ ldr r4, [r0]
+ subs r4, r1
+ subs r4, 0x3
+ ldr r5, _0804BEE8
+ add r5, sp
+ ldr r5, [r5]
+ movs r6, 0xE6
+ lsls r6, 5
+ add r6, sp
+ ldr r6, [r6]
+ adds r0, r5, r6
+ ldr r5, [r0]
+ subs r5, r2
+ subs r5, 0x3
+ movs r0, 0x5
+ adds r1, r4, 0
+ bl sub_808411C
+ mov r8, r0
+ movs r0, 0x4
+ adds r1, r5, 0
+ bl sub_808411C
+ adds r6, r0, 0
+ mov r0, r8
+ subs r4, r0
+ adds r0, r4, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ add r4, r9
+ subs r5, r6
+ adds r0, r5, 0
+ bl sub_8084100
+ ldr r2, _0804BEF0
+ add r2, sp
+ ldr r1, [r2]
+ adds r1, r0
+ mov r9, r1
+ mov r5, r8
+ adds r3, r4, r5
+ add r6, r9
+ strh r4, [r7]
+ strh r3, [r7, 0x4]
+ strh r1, [r7, 0x2]
+ strh r6, [r7, 0x6]
+ ldr r1, _0804BEE0
+ add r1, sp
+ ldr r0, [r1]
+ adds r0, 0x1
+ ldr r1, _0804BEF4
+ add r1, sp
+ str r0, [r1]
+ cmp r4, r3
+ bge _0804BEC0
+_0804BE78:
+ mov r5, r9
+ adds r7, r4, 0x1
+ cmp r5, r6
+ bge _0804BEBA
+ ldr r2, _0804BEF8
+ mov r8, r2
+_0804BE84:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ ldr r2, _0804BEFC
+ add r2, sp
+ str r3, [r2]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r8
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ ldr r1, _0804BEE0
+ add r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0, 0x9]
+ adds r5, 0x1
+ ldr r2, _0804BEFC
+ add r2, sp
+ ldr r3, [r2]
+ cmp r5, r6
+ blt _0804BE84
+_0804BEBA:
+ adds r4, r7, 0
+ cmp r4, r3
+ blt _0804BE78
+_0804BEC0:
+ ldr r3, _0804BEF4
+ add r3, sp
+ ldr r3, [r3]
+ ldr r4, _0804BEE0
+ add r4, sp
+ str r3, [r4]
+ b _0804BF88
+ .align 2, 0
+_0804BED0: .4byte 0xffffe338
+_0804BED4: .4byte 0x00001c28
+_0804BED8: .4byte 0x00001c64
+_0804BEDC: .4byte 0x00001cb8
+_0804BEE0: .4byte 0x00001ca4
+_0804BEE4: .4byte 0x00001ca8
+_0804BEE8: .4byte 0x00001cb0
+_0804BEEC: .4byte 0x00001cb4
+_0804BEF0: .4byte 0x00001cac
+_0804BEF4: .4byte 0x00001cbc
+_0804BEF8: .4byte 0x0000fffc
+_0804BEFC: .4byte 0x00001cc4
+_0804BF00:
+ lsls r0, r2, 2
+ ldr r4, _0804C080
+ add r4, sp
+ ldr r4, [r4]
+ adds r0, r4, r0
+ ldr r2, [r0]
+ adds r0, r2, 0x1
+ ldr r5, _0804C084
+ add r5, sp
+ ldr r5, [r5]
+ ldr r3, [r5]
+ adds r6, r3, 0x1
+ mov r8, r6
+ ldr r4, _0804C088
+ add r4, sp
+ ldr r4, [r4]
+ lsls r1, r4, 2
+ ldr r5, _0804C080
+ add r5, sp
+ ldr r5, [r5]
+ adds r1, r5, r1
+ ldr r1, [r1]
+ subs r1, r2
+ subs r1, 0x3
+ ldr r6, _0804C08C
+ add r6, sp
+ ldr r6, [r6]
+ movs r4, 0xE6
+ lsls r4, 5
+ add r4, sp
+ ldr r4, [r4]
+ adds r2, r6, r4
+ ldr r4, [r2]
+ subs r4, r3
+ subs r4, 0x3
+ adds r1, r0, r1
+ bl sub_808411C
+ adds r5, r0, 0
+ add r4, r8
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_808411C
+ adds r4, r0, 0
+ strh r5, [r7]
+ adds r0, r5, 0x1
+ strh r0, [r7, 0x4]
+ strh r4, [r7, 0x2]
+ adds r0, r4, 0x1
+ strh r0, [r7, 0x6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r6, _0804C090
+ adds r2, r6, 0
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+_0804BF88:
+ ldr r0, _0804C088
+ add r0, sp
+ ldr r2, [r0]
+ cmp r2, 0x5
+ bge _0804BF94
+ b _0804BDB2
+_0804BF94:
+ movs r2, 0xE6
+ lsls r2, 5
+ add r2, sp
+ ldr r1, [r2]
+ adds r1, 0x4
+ str r1, [r2]
+ movs r3, 0x1
+ add r10, r3
+ mov r4, r10
+ cmp r4, 0x4
+ bge _0804BFAC
+ b _0804BD8A
+_0804BFAC:
+ movs r2, 0x1
+ movs r1, 0x1
+ movs r3, 0xF
+ add r4, sp, 0x1C
+_0804BFB4:
+ movs r5, 0
+ mov r10, r5
+ lsls r0, r3, 5
+ adds r0, r4
+_0804BFBC:
+ strb r1, [r0]
+ strb r1, [r0, 0x1F]
+ adds r0, 0x20
+ movs r6, 0x1
+ add r10, r6
+ mov r5, r10
+ cmp r5, 0x2
+ ble _0804BFBC
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r3, 0xF
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0804BFB4
+ mov r10, r6
+ movs r5, 0x1
+ adds r4, r0, 0
+ mov r6, sp
+ adds r6, r4
+ adds r6, 0x8
+_0804BFE4:
+ movs r2, 0
+ mov r1, r10
+ lsls r0, r1, 5
+ mov r3, r10
+ adds r3, 0x1
+ adds r1, r0, r6
+ add r0, sp
+ adds r0, 0x8
+_0804BFF4:
+ strb r5, [r0, 0x16]
+ strb r5, [r1, 0x15]
+ adds r1, r4
+ adds r0, r4
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _0804BFF4
+ mov r10, r3
+ cmp r3, 0x2
+ ble _0804BFE4
+ ldr r5, _0804C094
+ add r5, sp
+ ldr r4, _0804C098
+ add r4, sp
+ str r4, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ adds r3, r5, 0
+ bl sub_804D8C8
+ str r4, [sp]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ adds r3, r5, 0
+ bl sub_804E590
+ ldr r0, _0804C09C
+ movs r2, 0
+ ldrsh r3, [r0, r2]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_804EBC8
+ ldr r0, _0804C0A0
+ movs r4, 0
+ ldrsh r3, [r0, r4]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_804EEE4
+ movs r5, 0xE5
+ lsls r5, 5
+ add r5, sp
+ ldr r5, [r5]
+ ldrb r3, [r5, 0x13]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x4
+ bl sub_804E03C
+ ldr r3, _0804C0A4
+ 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
+_0804C080: .4byte 0x00001ca8
+_0804C084: .4byte 0x00001cb4
+_0804C088: .4byte 0x00001cb8
+_0804C08C: .4byte 0x00001cb0
+_0804C090: .4byte 0x0000fffc
+_0804C094: .4byte 0x00001c28
+_0804C098: .4byte 0x00001c64
+_0804C09C: .4byte gUnknown_202F1B0
+_0804C0A0: .4byte gUnknown_202F1B2
+_0804C0A4: .4byte 0x00001cc8
+ thumb_func_end sub_804BC80
+
+ thumb_func_start sub_804C0A8
+sub_804C0A8:
+ push {r4-r6,lr}
+ mov r6, r8
+ push {r6}
+ ldr r4, _0804C17C
+ add sp, r4
+ adds r6, r0, 0
+ ldr r4, _0804C180
+ add r4, sp
+ movs r0, 0
+ str r0, [r4]
+ movs r0, 0xB
+ str r0, [r4, 0x4]
+ movs r0, 0x16
+ str r0, [r4, 0x8]
+ movs r0, 0x21
+ str r0, [r4, 0xC]
+ movs r0, 0x2C
+ str r0, [r4, 0x10]
+ movs r0, 0x38
+ str r0, [r4, 0x14]
+ ldr r5, _0804C184
+ add r5, sp
+ movs r0, 0x4
+ str r0, [r5]
+ movs r0, 0xF
+ str r0, [r5, 0x4]
+ movs r0, 0x1
+ mov r8, r0
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804D084
+ movs r3, 0x1
+ ldrsb r3, [r6, r3]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804D154
+ str r5, [sp]
+ ldrb r0, [r6, 0xD]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ adds r3, r4, 0
+ bl sub_804D2D0
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ adds r3, r6, 0
+ bl sub_804D5B0
+ str r5, [sp]
+ mov r1, r8
+ str r1, [sp, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ adds r3, r4, 0
+ bl sub_804D8C8
+ str r5, [sp]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ adds r3, r4, 0
+ bl sub_804E590
+ ldr r0, _0804C188
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804EBC8
+ ldr r0, _0804C18C
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804EEE4
+ ldrb r3, [r6, 0x13]
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ movs r1, 0x5
+ movs r2, 0x1
+ bl sub_804E03C
+ movs r3, 0xE5
+ lsls r3, 5
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C17C: .4byte 0xffffe360
+_0804C180: .4byte 0x00001c28
+_0804C184: .4byte 0x00001c64
+_0804C188: .4byte gUnknown_202F1B0
+_0804C18C: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804C0A8
+
+ thumb_func_start sub_804C190
+sub_804C190:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804C2CC
+ add sp, r4
+ mov r10, r0
+ ldr r1, _0804C2D0
+ add r1, sp
+ movs r2, 0xB
+ str r2, [r1]
+ movs r0, 0x16
+ str r0, [r1, 0x4]
+ movs r0, 0x21
+ str r0, [r1, 0x8]
+ movs r0, 0x2C
+ str r0, [r1, 0xC]
+ ldr r1, _0804C2D4
+ add r1, sp
+ movs r0, 0x2
+ str r0, [r1]
+ str r2, [r1, 0x4]
+ movs r0, 0x14
+ str r0, [r1, 0x8]
+ movs r0, 0x1E
+ str r0, [r1, 0xC]
+ movs r0, 0x3
+ mov r8, r0
+ movs r7, 0x3
+ add r0, sp, 0x8
+ movs r1, 0x3
+ movs r2, 0x3
+ bl sub_804D084
+ movs r1, 0
+ add r5, sp, 0x50
+ movs r0, 0x3E
+ add r0, sp
+ mov r9, r0
+ mov r0, r10
+ ldrb r0, [r0, 0xD]
+ mov r12, r0
+_0804C1E6:
+ adds r3, r1, 0x1
+ cmp r7, 0
+ beq _0804C204
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r2, 0x1
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r1, r7, 0
+_0804C1FA:
+ strb r2, [r0, 0xA]
+ adds r0, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804C1FA
+_0804C204:
+ adds r1, r3, 0
+ cmp r1, r8
+ blt _0804C1E6
+ add r0, sp, 0x8
+ movs r4, 0x1
+ strb r4, [r0, 0x8]
+ add r0, sp, 0x3D0
+ strb r4, [r0]
+ strb r4, [r5]
+ movs r0, 0x82
+ lsls r0, 3
+ add r0, sp
+ strb r4, [r0]
+ ldr r6, _0804C2D0
+ add r6, sp
+ ldr r5, _0804C2D4
+ add r5, sp
+ str r5, [sp]
+ mov r1, r12
+ str r1, [sp, 0x4]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_804D2D0
+ mov r0, r9
+ strb r4, [r0]
+ ldr r0, _0804C2D8
+ add r0, sp
+ strb r4, [r0]
+ ldr r0, _0804C2DC
+ add r0, sp
+ strb r4, [r0]
+ ldr r0, _0804C2E0
+ add r0, sp
+ strb r4, [r0]
+ add r0, sp, 0x1FC
+ strb r4, [r0]
+ ldr r0, _0804C2E4
+ add r0, sp
+ strb r4, [r0]
+ add r0, sp, 0x21C
+ strb r4, [r0]
+ ldr r0, _0804C2E8
+ add r0, sp
+ strb r4, [r0]
+ str r5, [sp]
+ str r4, [sp, 0x4]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_804D8C8
+ str r5, [sp]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_804E590
+ ldr r0, _0804C2EC
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_804EBC8
+ ldr r0, _0804C2F0
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_804EEE4
+ mov r0, r10
+ ldrb r3, [r0, 0x13]
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ mov r1, r8
+ adds r2, r7, 0
+ bl sub_804E03C
+ movs r3, 0xE5
+ lsls r3, 5
+ 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
+_0804C2CC: .4byte 0xffffe360
+_0804C2D0: .4byte 0x00001c28
+_0804C2D4: .4byte 0x00001c64
+_0804C2D8: .4byte 0x0000021d
+_0804C2DC: .4byte 0x0000021e
+_0804C2E0: .4byte 0x000003fd
+_0804C2E4: .4byte 0x0000021b
+_0804C2E8: .4byte 0x0000023b
+_0804C2EC: .4byte gUnknown_202F1B0
+_0804C2F0: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804C190
+
+ thumb_func_start sub_804C2F4
+sub_804C2F4:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r4, _0804C420
+ add sp, r4
+ mov r8, r0
+ ldr r1, _0804C424
+ add r1, sp
+ movs r0, 0x5
+ str r0, [r1]
+ movs r0, 0xF
+ str r0, [r1, 0x4]
+ movs r0, 0x23
+ str r0, [r1, 0x8]
+ movs r0, 0x32
+ str r0, [r1, 0xC]
+ ldr r1, _0804C428
+ add r1, sp
+ movs r0, 0x2
+ str r0, [r1]
+ movs r0, 0xB
+ str r0, [r1, 0x4]
+ movs r0, 0x14
+ str r0, [r1, 0x8]
+ movs r0, 0x1E
+ str r0, [r1, 0xC]
+ movs r7, 0x3
+ movs r6, 0x3
+ add r0, sp, 0x8
+ movs r1, 0x3
+ movs r2, 0x3
+ bl sub_804D084
+ movs r1, 0
+ mov r0, r8
+ ldrb r4, [r0, 0xD]
+_0804C33C:
+ adds r3, r1, 0x1
+ cmp r6, 0
+ beq _0804C35A
+ lsls r0, r1, 4
+ subs r0, r1
+ movs r2, 0x1
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r1, r6, 0
+_0804C350:
+ strb r2, [r0, 0xA]
+ adds r0, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804C350
+_0804C35A:
+ adds r1, r3, 0
+ cmp r1, r7
+ blt _0804C33C
+ ldr r3, _0804C424
+ add r3, sp
+ ldr r0, _0804C428
+ add r0, sp
+ str r0, [sp]
+ str r4, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804D2D0
+ movs r4, 0x1
+ ldr r3, _0804C42C
+ add r3, sp
+ ldr r0, _0804C430
+ add r0, sp
+ add r2, sp, 0x8
+ movs r1, 0x2
+_0804C384:
+ strb r4, [r2, 0x16]
+ strb r4, [r0]
+ strb r4, [r0, 0x1]
+ strb r4, [r3]
+ adds r3, 0x20
+ adds r0, 0x20
+ adds r2, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0804C384
+ ldr r5, _0804C424
+ add r5, sp
+ ldr r4, _0804C428
+ add r4, sp
+ str r4, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_804D8C8
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x1
+ add r3, sp, 0x8
+ bl sub_804C43C
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0x2
+ add r3, sp, 0x8
+ bl sub_804C43C
+ str r4, [sp]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_804E590
+ ldr r0, _0804C434
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804EBC8
+ ldr r0, _0804C438
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804EEE4
+ mov r0, r8
+ ldrb r3, [r0, 0x13]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804E03C
+ movs r3, 0xE5
+ lsls r3, 5
+ add sp, r3
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C420: .4byte 0xffffe360
+_0804C424: .4byte 0x00001c28
+_0804C428: .4byte 0x00001c64
+_0804C42C: .4byte 0x000003dd
+_0804C430: .4byte 0x000001fd
+_0804C434: .4byte gUnknown_202F1B0
+_0804C438: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804C2F4
+
+ thumb_func_start sub_804C43C
+sub_804C43C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp]
+ str r3, [sp, 0x4]
+ lsls r7, r1, 5
+ lsls r0, 4
+ str r0, [sp, 0xC]
+ ldr r3, [sp]
+ subs r0, r3
+ lsls r0, 5
+ ldr r4, [sp, 0x4]
+ adds r0, r4
+ adds r3, r7, r0
+ adds r6, r1, r2
+ lsls r1, r6, 5
+ adds r2, r1, r0
+ movs r5, 0
+ ldrsh r1, [r2, r5]
+ adds r4, r1, 0
+ ldrh r0, [r3]
+ mov r8, r0
+ movs r5, 0
+ ldrsh r0, [r3, r5]
+ cmp r1, r0
+ ble _0804C478
+ mov r4, r8
+_0804C478:
+ lsls r0, r4, 16
+ asrs r0, 16
+ str r0, [sp, 0x8]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ mov r10, r0
+ movs r4, 0x4
+ ldrsh r1, [r2, r4]
+ adds r4, r1, 0
+ ldrh r5, [r3, 0x4]
+ mov r8, r5
+ movs r5, 0x4
+ ldrsh r0, [r3, r5]
+ cmp r1, r0
+ bge _0804C498
+ mov r4, r8
+_0804C498:
+ lsls r0, r4, 16
+ asrs r0, 16
+ str r0, [sp, 0x10]
+ movs r1, 0x6
+ ldrsh r0, [r2, r1]
+ mov r8, r0
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ mov r1, r10
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r9, r0
+ ldr r5, [sp, 0x8]
+ str r7, [sp, 0x1C]
+ ldr r3, [sp, 0xC]
+ str r3, [sp, 0x18]
+ str r6, [sp, 0x14]
+ ldr r4, [sp, 0x10]
+ cmp r5, r4
+ bge _0804C4F2
+_0804C4C2:
+ mov r4, r10
+ adds r6, r5, 0x1
+ cmp r10, r8
+ bge _0804C4EA
+ ldr r0, _0804C538
+ adds r7, r0, 0
+_0804C4CE:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ands r1, r7
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ mov r1, r9
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ cmp r4, r8
+ blt _0804C4CE
+_0804C4EA:
+ adds r5, r6, 0
+ ldr r2, [sp, 0x10]
+ cmp r5, r2
+ blt _0804C4C2
+_0804C4F2:
+ ldr r3, [sp, 0x18]
+ ldr r4, [sp]
+ subs r1, r3, r4
+ lsls r1, 5
+ ldr r5, [sp, 0x4]
+ adds r1, r5
+ ldr r0, [sp, 0x1C]
+ adds r2, r0, r1
+ movs r3, 0
+ mov r4, sp
+ ldrh r4, [r4, 0x8]
+ strh r4, [r2]
+ mov r5, sp
+ ldrh r5, [r5, 0x10]
+ strh r5, [r2, 0x4]
+ mov r0, r10
+ strh r0, [r2, 0x2]
+ mov r4, r8
+ strh r4, [r2, 0x6]
+ ldr r5, [sp, 0x14]
+ lsls r0, r5, 5
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0, 0x12]
+ strb r1, [r2, 0x12]
+ strb r3, [r0, 0xB]
+ strb r1, [r0, 0x11]
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C538: .4byte 0x0000fffc
+ thumb_func_end sub_804C43C
+
+ thumb_func_start sub_804C53C
+sub_804C53C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804C6F8
+ add sp, r4
+ mov r10, r2
+ adds r7, r0, 0
+ adds r6, r1, 0
+ ldr r0, _0804C6FC
+ add r0, sp
+ ldr r1, _0804C700
+ add r1, sp
+ adds r2, r7, 0
+ adds r3, r6, 0
+ bl sub_804D024
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804D084
+ movs r2, 0
+ cmp r2, r7
+ bge _0804C594
+_0804C570:
+ adds r3, r2, 0x1
+ cmp r6, 0
+ ble _0804C58E
+ lsls r0, r2, 4
+ subs r0, r2
+ movs r2, 0x1
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r1, r6, 0
+_0804C584:
+ strb r2, [r0, 0xA]
+ adds r0, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804C584
+_0804C58E:
+ adds r2, r3, 0
+ cmp r2, r7
+ blt _0804C570
+_0804C594:
+ movs r2, 0x1
+ subs r0, r7, 0x1
+ mov r8, r0
+ subs r1, r6, 0x1
+ mov r9, r1
+ mov r0, r10
+ ldrb r0, [r0, 0xD]
+ mov r12, r0
+ cmp r2, r8
+ bge _0804C5D2
+ mov r4, r9
+ mov r5, r8
+_0804C5AC:
+ adds r3, r2, 0x1
+ cmp r4, 0x1
+ ble _0804C5CC
+ lsls r0, r2, 4
+ subs r0, r2
+ movs r2, 0x1
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ adds r0, 0x20
+ subs r1, r4, 0x1
+_0804C5C2:
+ strb r2, [r0, 0x8]
+ adds r0, 0x20
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804C5C2
+_0804C5CC:
+ adds r2, r3, 0
+ cmp r2, r5
+ blt _0804C5AC
+_0804C5D2:
+ ldr r3, _0804C6FC
+ add r3, sp
+ ldr r0, _0804C700
+ add r0, sp
+ str r0, [sp]
+ mov r1, r12
+ str r1, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804D2D0
+ movs r2, 0
+ cmp r2, r8
+ bge _0804C636
+ movs r4, 0x1
+ mov r0, r9
+ lsls r5, r0, 5
+ subs r1, r7, 0x2
+ mov r12, r1
+_0804C5FA:
+ cmp r2, 0
+ beq _0804C614
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ strb r4, [r1, 0x16]
+ adds r0, r5, r0
+ add r0, sp
+ adds r0, 0x8
+ strb r4, [r0, 0x16]
+_0804C614:
+ adds r3, r2, 0x1
+ cmp r2, r12
+ bge _0804C630
+ lsls r0, r3, 4
+ subs r0, r3
+ lsls r0, 5
+ mov r1, sp
+ adds r1, r0
+ adds r1, 0x8
+ strb r4, [r1, 0x15]
+ adds r0, r5, r0
+ add r0, sp
+ adds r0, 0x8
+ strb r4, [r0, 0x15]
+_0804C630:
+ adds r2, r3, 0
+ cmp r2, r8
+ blt _0804C5FA
+_0804C636:
+ movs r1, 0
+ cmp r1, r9
+ bge _0804C66A
+ movs r3, 0x1
+ mov r2, r8
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x8
+ add r2, sp, 0x8
+ subs r5, r6, 0x2
+ mov r4, r9
+_0804C650:
+ cmp r1, 0
+ beq _0804C658
+ strb r3, [r2, 0x13]
+ strb r3, [r0, 0x13]
+_0804C658:
+ cmp r1, r5
+ bge _0804C660
+ strb r3, [r2, 0x14]
+ strb r3, [r0, 0x14]
+_0804C660:
+ adds r0, 0x20
+ adds r2, 0x20
+ adds r1, 0x1
+ cmp r1, r4
+ blt _0804C650
+_0804C66A:
+ ldr r5, _0804C6FC
+ add r5, sp
+ ldr r4, _0804C700
+ add r4, sp
+ str r4, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_804D8C8
+ str r4, [sp]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_804E590
+ mov r0, r10
+ ldrb r3, [r0, 0x9]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804F0D0
+ ldr r0, _0804C704
+ movs r1, 0
+ ldrsh r3, [r0, r1]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804EBC8
+ ldr r0, _0804C708
+ movs r2, 0
+ ldrsh r3, [r0, r2]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804EEE4
+ mov r0, r10
+ ldrb r3, [r0, 0x13]
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804CBEC
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804E03C
+ add r0, sp, 0x8
+ adds r1, r7, 0
+ adds r2, r6, 0
+ bl sub_804D534
+ movs r3, 0xE5
+ lsls r3, 5
+ 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
+_0804C6F8: .4byte 0xffffe360
+_0804C6FC: .4byte 0x00001c28
+_0804C700: .4byte 0x00001c64
+_0804C704: .4byte gUnknown_202F1B0
+_0804C708: .4byte gUnknown_202F1B2
+ thumb_func_end sub_804C53C
+
+ thumb_func_start sub_804C70C
+sub_804C70C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ mov r8, r1
+ ldr r0, _0804C73C
+ ldr r0, [r0]
+ ldr r1, _0804C740
+ adds r0, r1
+ ldr r0, [r0]
+ ldr r1, [r0, 0x4]
+ lsls r0, r7, 2
+ adds r0, r1
+ ldr r0, [r0]
+ ldrb r5, [r0]
+ ldrb r6, [r0, 0x1]
+ cmp r5, 0
+ beq _0804C736
+ cmp r6, 0
+ bne _0804C744
+_0804C736:
+ bl sub_804C918
+ b _0804C782
+ .align 2, 0
+_0804C73C: .4byte gUnknown_203B418
+_0804C740: .4byte 0x00013568
+_0804C744:
+ cmp r7, 0x31
+ bgt _0804C752
+ adds r0, r7, 0
+ bl sub_8051288
+ movs r0, 0x1
+ b _0804C784
+_0804C752:
+ adds r1, r5, 0x4
+ movs r0, 0x38
+ bl __divsi3
+ adds r4, r0, 0
+ cmp r4, 0x1
+ bgt _0804C762
+ movs r4, 0x1
+_0804C762:
+ adds r1, r6, 0x4
+ movs r0, 0x20
+ bl __divsi3
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bgt _0804C772
+ movs r1, 0x1
+_0804C772:
+ str r7, [sp]
+ mov r0, r8
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_804C790
+_0804C782:
+ movs r0, 0
+_0804C784:
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804C70C
+
+ thumb_func_start sub_804C790
+sub_804C790:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804C81C
+ add sp, r4
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r0, _0804C820
+ add r0, sp
+ str r2, [r0]
+ ldr r1, _0804C824
+ add r1, sp
+ str r3, [r1]
+ movs r2, 0
+ mov r10, r2
+ mov r8, r2
+ ldr r0, _0804C828
+ add r0, sp
+ ldr r1, _0804C82C
+ add r1, sp
+ adds r2, r5, 0
+ adds r3, r4, 0
+ bl sub_804D024
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_804D084
+ ldr r0, _0804C830
+ add r0, sp
+ ldr r0, [r0]
+ movs r3, 0x1
+ ldrsb r3, [r0, r3]
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_804D154
+ mov r6, r8
+ cmp r8, r5
+ bge _0804C818
+_0804C7E8:
+ movs r1, 0
+ mov r8, r1
+ adds r2, r6, 0x1
+ cmp r8, r4
+ bge _0804C812
+ lsls r0, r6, 4
+ subs r0, r6
+ movs r1, 0x1
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x10
+ mov r8, r4
+_0804C800:
+ strb r1, [r0, 0x1B]
+ adds r0, 0x20
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r3, r8
+ cmp r3, 0
+ bne _0804C800
+ mov r8, r4
+_0804C812:
+ adds r6, r2, 0
+ cmp r6, r5
+ blt _0804C7E8
+_0804C818:
+ movs r7, 0
+ b _0804C836
+ .align 2, 0
+_0804C81C: .4byte 0xffffe350
+_0804C820: .4byte 0x00001ca8
+_0804C824: .4byte 0x00001cac
+_0804C828: .4byte 0x00001c30
+_0804C82C: .4byte 0x00001c6c
+_0804C830: .4byte 0x00001cd4
+_0804C834:
+ adds r7, 0x1
+_0804C836:
+ cmp r7, 0x3F
+ bgt _0804C864
+ adds r0, r5, 0
+ bl sub_8084100
+ adds r6, r0, 0
+ adds r0, r4, 0
+ bl sub_8084100
+ mov r8, r0
+ mov r0, r8
+ muls r0, r5
+ adds r0, r6
+ mov r10, r0
+ lsls r0, r6, 4
+ subs r0, r6
+ add r0, r8
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x10
+ ldrb r0, [r0, 0xA]
+ cmp r0, 0
+ beq _0804C834
+_0804C864:
+ ldr r0, _0804C8FC
+ add r0, sp
+ mov r9, r0
+ ldr r7, _0804C900
+ add r7, sp
+ str r7, [sp]
+ mov r1, r10
+ str r1, [sp, 0x4]
+ ldr r2, _0804C904
+ add r2, sp
+ ldr r2, [r2]
+ str r2, [sp, 0x8]
+ ldr r3, _0804C908
+ add r3, sp
+ ldr r3, [r3]
+ str r3, [sp, 0xC]
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ mov r3, r9
+ bl sub_8050F90
+ cmp r5, 0x1
+ bne _0804C898
+ cmp r4, 0x1
+ beq _0804C8D0
+_0804C898:
+ mov r0, r8
+ str r0, [sp]
+ ldr r1, _0804C90C
+ add r1, sp
+ ldr r1, [r1]
+ str r1, [sp, 0x4]
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ adds r3, r6, 0
+ bl sub_804D5F0
+ str r7, [sp]
+ movs r0, 0x1
+ str r0, [sp, 0x4]
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ mov r3, r9
+ bl sub_804D8C8
+ str r7, [sp]
+ add r0, sp, 0x10
+ adds r1, r5, 0
+ adds r2, r4, 0
+ mov r3, r9
+ bl sub_804E590
+_0804C8D0:
+ lsls r0, r6, 4
+ subs r0, r6
+ lsls r0, 5
+ add r0, sp
+ adds r0, 0x10
+ mov r2, r8
+ lsls r1, r2, 5
+ adds r0, r1
+ ldr r3, _0804C910
+ add r3, sp
+ ldr r1, [r3]
+ bl sub_8051438
+ ldr r3, _0804C914
+ 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
+_0804C8FC: .4byte 0x00001c30
+_0804C900: .4byte 0x00001c6c
+_0804C904: .4byte 0x00001ca8
+_0804C908: .4byte 0x00001cac
+_0804C90C: .4byte 0x00001cd4
+_0804C910: .4byte 0x00001cd0
+_0804C914: .4byte 0x00001cb0
+ thumb_func_end sub_804C790
+
+ thumb_func_start sub_804C918
+sub_804C918:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ ldr r4, _0804C9C4
+ add sp, r4
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_804D084
+ mov r0, sp
+ movs r3, 0
+ movs r2, 0x2
+ strh r2, [r0]
+ mov r1, sp
+ movs r0, 0x36
+ strh r0, [r1, 0x4]
+ mov r0, sp
+ strh r2, [r0, 0x2]
+ movs r0, 0x1E
+ strh r0, [r1, 0x6]
+ mov r0, sp
+ movs r1, 0x1
+ strb r1, [r0, 0xA]
+ strb r1, [r0, 0xB]
+ strb r3, [r0, 0x8]
+ movs r1, 0
+ ldrsh r5, [r0, r1]
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ cmp r5, r0
+ bge _0804C9A6
+ mov r6, sp
+_0804C95C:
+ movs r0, 0x2
+ ldrsh r4, [r6, r0]
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _0804C99C
+ movs r2, 0
+ mov r9, r2
+ ldr r0, _0804C9C8
+ mov r8, r0
+_0804C972:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r8
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ mov r1, r9
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ movs r2, 0x6
+ ldrsh r0, [r6, r2]
+ cmp r4, r0
+ blt _0804C972
+_0804C99C:
+ adds r5, r7, 0
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ cmp r5, r0
+ blt _0804C95C
+_0804C9A6:
+ ldr r3, _0804C9CC
+ mov r0, sp
+ movs r1, 0x1
+ movs r2, 0x1
+ bl sub_804EEE4
+ movs r3, 0xE1
+ lsls r3, 5
+ add sp, r3
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804C9C4: .4byte 0xffffe3e0
+_0804C9C8: .4byte 0x0000fffc
+_0804C9CC: .4byte 0x000003e7
+ thumb_func_end sub_804C918
+
+ thumb_func_start sub_804C9D0
+sub_804C9D0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _0804CBB4
+ add sp, r4
+ movs r0, 0
+ movs r1, 0xE5
+ lsls r1, 5
+ add r1, sp
+ str r0, [r1]
+ ldr r1, _0804CBB8
+ add r1, sp
+ movs r2, 0x2
+ str r2, [r1]
+ movs r0, 0x1C
+ str r0, [r1, 0x4]
+ movs r0, 0x36
+ str r0, [r1, 0x8]
+ ldr r1, _0804CBBC
+ add r1, sp
+ str r2, [r1]
+ movs r0, 0x1E
+ str r0, [r1, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x2
+ movs r2, 0x1
+ bl sub_804D084
+ movs r0, 0
+ ldr r2, _0804CBB8
+ add r2, sp
+ ldr r3, _0804CBC0
+ add r3, sp
+ str r2, [r3]
+ ldr r4, _0804CBBC
+ add r4, sp
+ ldr r1, _0804CBC4
+ add r1, sp
+ str r4, [r1]
+_0804CA22:
+ movs r7, 0
+ lsls r2, r0, 2
+ ldr r3, _0804CBC8
+ add r3, sp
+ str r2, [r3]
+ adds r4, r0, 0x1
+ ldr r1, _0804CBCC
+ add r1, sp
+ str r4, [r1]
+ lsls r0, 5
+ ldr r2, _0804CBD0
+ add r2, sp
+ str r0, [r2]
+_0804CA3C:
+ lsls r0, r7, 2
+ ldr r3, _0804CBC0
+ add r3, sp
+ ldr r3, [r3]
+ adds r0, r3, r0
+ ldr r1, [r0]
+ adds r4, r1, 0x1
+ mov r10, r4
+ ldr r2, _0804CBC4
+ add r2, sp
+ ldr r2, [r2]
+ ldr r3, _0804CBC8
+ add r3, sp
+ ldr r3, [r3]
+ adds r0, r2, r3
+ ldr r2, [r0]
+ adds r4, r2, 0x1
+ ldr r0, _0804CBD4
+ add r0, sp
+ str r4, [r0]
+ adds r3, r7, 0x1
+ mov r9, r3
+ lsls r0, r3, 2
+ ldr r4, _0804CBC0
+ add r4, sp
+ ldr r4, [r4]
+ adds r0, r4, r0
+ ldr r4, [r0]
+ subs r4, r1
+ subs r4, 0x3
+ ldr r1, _0804CBCC
+ add r1, sp
+ ldr r1, [r1]
+ lsls r0, r1, 2
+ ldr r3, _0804CBC4
+ add r3, sp
+ ldr r3, [r3]
+ adds r0, r3, r0
+ ldr r5, [r0]
+ subs r5, r2
+ subs r5, 0x3
+ movs r0, 0xA
+ adds r1, r4, 0
+ bl sub_808411C
+ mov r8, r0
+ movs r0, 0x10
+ adds r1, r5, 0
+ bl sub_808411C
+ adds r6, r0, 0
+ mov r0, r8
+ subs r4, r0
+ adds r0, r4, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ add r4, r10
+ subs r5, r6
+ adds r0, r5, 0
+ bl sub_8084100
+ ldr r2, _0804CBD4
+ add r2, sp
+ ldr r1, [r2]
+ adds r1, r0
+ mov r10, r1
+ mov r0, r8
+ adds r3, r4, r0
+ add r6, r10
+ lsls r0, r7, 4
+ subs r0, r7
+ lsls r0, 5
+ ldr r1, _0804CBD0
+ add r1, sp
+ ldr r1, [r1]
+ adds r0, r1, r0
+ add r0, sp
+ adds r0, 0x8
+ movs r1, 0x1
+ strb r1, [r0, 0xA]
+ strh r4, [r0]
+ strh r3, [r0, 0x4]
+ mov r2, r10
+ strh r2, [r0, 0x2]
+ strh r6, [r0, 0x6]
+ mov r0, r9
+ ldr r1, _0804CBD8
+ add r1, sp
+ str r0, [r1]
+ movs r0, 0xE5
+ lsls r0, 5
+ add r0, sp
+ ldr r2, [r0]
+ adds r2, 0x1
+ mov r9, r2
+ cmp r4, r3
+ bge _0804CB4E
+_0804CB00:
+ mov r5, r10
+ adds r7, r4, 0x1
+ cmp r5, r6
+ bge _0804CB48
+ ldr r1, _0804CBDC
+ mov r8, r1
+_0804CB0C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE6
+ lsls r2, 5
+ add r2, sp
+ str r3, [r2]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r8
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ movs r1, 0xE5
+ lsls r1, 5
+ add r1, sp
+ ldrb r1, [r1]
+ strb r1, [r0, 0x9]
+ adds r5, 0x1
+ movs r2, 0xE6
+ lsls r2, 5
+ add r2, sp
+ ldr r3, [r2]
+ cmp r5, r6
+ blt _0804CB0C
+_0804CB48:
+ adds r4, r7, 0
+ cmp r4, r3
+ blt _0804CB00
+_0804CB4E:
+ mov r3, r9
+ movs r4, 0xE5
+ lsls r4, 5
+ add r4, sp
+ str r3, [r4]
+ ldr r0, _0804CBD8
+ add r0, sp
+ ldr r7, [r0]
+ cmp r7, 0x1
+ bgt _0804CB64
+ b _0804CA3C
+_0804CB64:
+ ldr r1, _0804CBCC
+ add r1, sp
+ ldr r0, [r1]
+ cmp r0, 0
+ bgt _0804CB70
+ b _0804CA22
+_0804CB70:
+ add r0, sp, 0x8
+ movs r2, 0
+ movs r1, 0x1
+ strb r1, [r0, 0x16]
+ ldr r0, _0804CBE0
+ add r0, sp
+ strb r1, [r0]
+ ldr r3, _0804CBB8
+ add r3, sp
+ ldr r0, _0804CBBC
+ add r0, sp
+ str r0, [sp]
+ str r2, [sp, 0x4]
+ add r0, sp, 0x8
+ movs r1, 0x2
+ movs r2, 0x1
+ bl sub_804D8C8
+ ldr r3, _0804CBE4
+ add r0, sp, 0x8
+ movs r1, 0x2
+ movs r2, 0x1
+ bl sub_804EEE4
+ ldr r3, _0804CBE8
+ 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
+_0804CBB4: .4byte 0xffffe33c
+_0804CBB8: .4byte 0x00001c28
+_0804CBBC: .4byte 0x00001c64
+_0804CBC0: .4byte 0x00001ca4
+_0804CBC4: .4byte 0x00001cac
+_0804CBC8: .4byte 0x00001cb0
+_0804CBCC: .4byte 0x00001cbc
+_0804CBD0: .4byte 0x00001cb4
+_0804CBD4: .4byte 0x00001ca8
+_0804CBD8: .4byte 0x00001cb8
+_0804CBDC: .4byte 0x0000fffc
+_0804CBE0: .4byte 0x000001fd
+_0804CBE4: .4byte 0x000003e7
+_0804CBE8: .4byte 0x00001cc4
+ thumb_func_end sub_804C9D0
+
+ thumb_func_start sub_804CBEC
+sub_804CBEC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ cmp r3, 0
+ bne _0804CC06
+ b _0804D006
+_0804CC06:
+ movs r5, 0
+ cmp r5, r3
+ blt _0804CC0E
+ b _0804D006
+_0804CC0E:
+ ldr r0, [sp, 0x4]
+ bl sub_8084100
+ mov r9, r0
+ ldr r0, [sp, 0x8]
+ bl sub_8084100
+ mov r10, r0
+ lsls r0, 5
+ mov r2, r9
+ lsls r1, r2, 4
+ subs r1, r2
+ lsls r1, 5
+ ldr r3, [sp]
+ adds r1, r3
+ adds r4, r0, r1
+ ldrb r0, [r4, 0xA]
+ adds r5, 0x1
+ str r5, [sp, 0x18]
+ cmp r0, 0
+ bne _0804CC3A
+ b _0804CFFC
+_0804CC3A:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0804CC42
+ b _0804CFFC
+_0804CC42:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _0804CC4A
+ b _0804CFFC
+_0804CC4A:
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _0804CC52
+ b _0804CFFC
+_0804CC52:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ bl sub_808411C
+ adds r7, r0, 0
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl sub_808411C
+ adds r6, r0, 0
+ movs r0, 0x4
+ bl sub_8084100
+ lsls r0, 1
+ mov r8, r0
+ ldr r1, [sp, 0x8]
+ subs r1, 0x1
+ movs r3, 0x2
+ str r3, [sp, 0x10]
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+_0804CC84:
+ mov r2, r8
+ cmp r2, 0
+ bne _0804CC92
+ cmp r10, r1
+ blt _0804CC92
+ movs r3, 0x2
+ mov r8, r3
+_0804CC92:
+ mov r2, r8
+ cmp r2, 0x2
+ bne _0804CCA0
+ cmp r9, r0
+ blt _0804CCA0
+ movs r3, 0x4
+ mov r8, r3
+_0804CCA0:
+ mov r2, r8
+ cmp r2, 0x4
+ bne _0804CCB0
+ mov r3, r10
+ cmp r3, 0
+ bgt _0804CCB0
+ movs r2, 0x6
+ mov r8, r2
+_0804CCB0:
+ mov r3, r8
+ cmp r3, 0x6
+ bne _0804CCC0
+ mov r2, r9
+ cmp r2, 0
+ bgt _0804CCC0
+ movs r3, 0
+ mov r8, r3
+_0804CCC0:
+ ldr r2, [sp, 0x10]
+ subs r2, 0x1
+ str r2, [sp, 0x10]
+ cmp r2, 0
+ bge _0804CC84
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrb r5, [r0, 0x9]
+ ldr r1, _0804CCE0
+ mov r3, r8
+ lsls r0, r3, 2
+ adds r4, r0, r1
+ b _0804CCF0
+ .align 2, 0
+_0804CCE0: .4byte gUnknown_80F4448
+_0804CCE4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r7, r0
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r6, r0
+_0804CCF0:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ cmp r5, r0
+ beq _0804CCE4
+ ldr r1, _0804CD08
+ mov r3, r8
+ lsls r0, r3, 2
+ adds r4, r0, r1
+ b _0804CD18
+ .align 2, 0
+_0804CD08: .4byte gUnknown_80F4448
+_0804CD0C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r7, r0
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r6, r0
+_0804CD18:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r5, 0x3
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804CD0C
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0804CD40
+ b _0804CFFC
+_0804CD40:
+ movs r3, 0
+ subs r2, r7, 0x2
+ adds r4, r7, 0x2
+ b _0804CD4A
+_0804CD48:
+ adds r2, 0x1
+_0804CD4A:
+ cmp r2, r4
+ bgt _0804CD6C
+ subs r0, r6, 0x2
+ adds r1, r6, 0x2
+ b _0804CD56
+_0804CD54:
+ adds r0, 0x1
+_0804CD56:
+ cmp r0, r1
+ bgt _0804CD68
+ cmp r2, 0x37
+ bhi _0804CD66
+ cmp r0, 0
+ blt _0804CD66
+ cmp r0, 0x1F
+ ble _0804CD54
+_0804CD66:
+ movs r3, 0x1
+_0804CD68:
+ cmp r3, 0
+ beq _0804CD48
+_0804CD6C:
+ cmp r3, 0
+ beq _0804CD72
+ b _0804CFFC
+_0804CD72:
+ ldr r2, _0804CDD4
+ mov r1, r8
+ adds r1, 0x2
+ movs r4, 0x6
+ ands r1, r4
+ lsls r1, 2
+ adds r1, r2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r0, r7, r0
+ adds r1, r6, r1
+ str r2, [sp, 0x1C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r5, 0x3
+ adds r0, r5, 0
+ ands r0, r1
+ ldr r2, [sp, 0x1C]
+ cmp r0, 0x1
+ bne _0804CDA2
+ b _0804CFFC
+_0804CDA2:
+ mov r1, r8
+ subs r1, 0x2
+ ands r1, r4
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r0, r7, r0
+ adds r1, r6, r1
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CDC8
+ b _0804CFFC
+_0804CDC8:
+ movs r0, 0x3
+ bl sub_8084100
+ adds r0, 0x3
+ str r0, [sp, 0x10]
+ b _0804CFD4
+ .align 2, 0
+_0804CDD4: .4byte gUnknown_80F4448
+_0804CDD8:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0804CDEC
+ b _0804CFFC
+_0804CDEC:
+ movs r0, 0x1
+ str r0, [sp, 0x14]
+ adds r4, r7, 0x1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r10
+ ands r0, r1
+ mov r9, r4
+ cmp r0, 0x1
+ bne _0804CE32
+ adds r5, r6, 0x1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r0, [r0]
+ mov r4, r10
+ ands r4, r0
+ cmp r4, 0x1
+ bne _0804CE32
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r0, [r0]
+ mov r1, r10
+ ands r0, r1
+ eors r0, r4
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x14]
+_0804CE32:
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r5, 0x3
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CE70
+ subs r4, r6, 0x1
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CE70
+ adds r0, r7, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CE70
+ movs r2, 0
+ str r2, [sp, 0x14]
+_0804CE70:
+ subs r4, r7, 0x1
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r2, 0x3
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEB6
+ adds r5, r6, 0x1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp, 0x1C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEB6
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEB6
+ movs r3, 0
+ str r3, [sp, 0x14]
+_0804CEB6:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r2, 0x3
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEFA
+ subs r5, r6, 0x1
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp, 0x1C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEFA
+ adds r0, r7, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804CEFA
+ movs r0, 0
+ str r0, [sp, 0x14]
+_0804CEFA:
+ ldr r1, [sp, 0x14]
+ cmp r1, 0
+ beq _0804CF16
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, _0804D018
+ adds r2, r3, 0
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+_0804CF16:
+ ldr r2, _0804D01C
+ movs r0, 0x2
+ add r0, r8
+ mov r9, r0
+ movs r1, 0x6
+ mov r10, r1
+ mov r1, r9
+ mov r3, r10
+ ands r1, r3
+ lsls r1, 2
+ adds r1, r2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r0, r7, r0
+ adds r1, r6, r1
+ str r2, [sp, 0x1C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r5, 0x3
+ adds r0, r5, 0
+ ands r0, r1
+ ldr r2, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _0804CFFC
+ mov r4, r8
+ subs r4, 0x2
+ adds r1, r4, 0
+ mov r0, r10
+ ands r1, r0
+ lsls r1, 2
+ adds r1, r2
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r0, r7, r0
+ adds r1, r6, r1
+ bl sub_804954C
+ ldrh r1, [r0]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804CFFC
+ ldr r0, [sp, 0x10]
+ subs r0, 0x1
+ str r0, [sp, 0x10]
+ cmp r0, 0
+ bne _0804CFC0
+ movs r0, 0x3
+ bl sub_8084100
+ adds r0, 0x3
+ str r0, [sp, 0x10]
+ movs r0, 0x64
+ bl sub_8084100
+ mov r8, r4
+ cmp r0, 0x31
+ bgt _0804CF96
+ mov r8, r9
+_0804CF96:
+ mov r1, r8
+ mov r2, r10
+ ands r1, r2
+ mov r8, r1
+ cmp r7, 0x1F
+ ble _0804CFAE
+ ldr r0, _0804D020
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804CFAE
+ cmp r1, 0x2
+ beq _0804CFFC
+_0804CFAE:
+ cmp r7, 0x2F
+ ble _0804CFC0
+ ldr r0, _0804D020
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _0804CFC0
+ mov r3, r8
+ cmp r3, 0x2
+ beq _0804CFFC
+_0804CFC0:
+ ldr r0, _0804D01C
+ mov r2, r8
+ lsls r1, r2, 2
+ adds r1, r0
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ adds r7, r0
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ adds r6, r0
+_0804CFD4:
+ cmp r7, 0x1
+ ble _0804CFFC
+ cmp r6, 0x1
+ ble _0804CFFC
+ cmp r7, 0x36
+ bgt _0804CFFC
+ cmp r6, 0x1E
+ bgt _0804CFFC
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r3, 0x3
+ mov r10, r3
+ mov r0, r10
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804CFFC
+ b _0804CDD8
+_0804CFFC:
+ ldr r5, [sp, 0x18]
+ ldr r0, [sp, 0xC]
+ cmp r5, r0
+ bge _0804D006
+ b _0804CC0E
+_0804D006:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D018: .4byte 0x0000fffc
+_0804D01C: .4byte gUnknown_80F4448
+_0804D020: .4byte gUnknown_202F1AE
+ thumb_func_end sub_804CBEC
+
+ thumb_func_start sub_804D024
+sub_804D024:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ adds r7, r0, 0
+ mov r8, r1
+ adds r5, r2, 0
+ adds r6, r3, 0
+ movs r4, 0
+ cmp r4, r5
+ bge _0804D04E
+ movs r0, 0x38
+ adds r1, r5, 0
+ bl __divsi3
+ adds r2, r7, 0
+ adds r1, r5, 0
+_0804D044:
+ stm r2!, {r4}
+ adds r4, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804D044
+_0804D04E:
+ lsls r0, r5, 2
+ adds r0, r7
+ str r4, [r0]
+ movs r4, 0
+ lsls r5, r6, 2
+ cmp r4, r6
+ bge _0804D072
+ movs r0, 0x20
+ adds r1, r6, 0
+ bl __divsi3
+ mov r2, r8
+ adds r1, r6, 0
+_0804D068:
+ stm r2!, {r4}
+ adds r4, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _0804D068
+_0804D072:
+ mov r1, r8
+ adds r0, r5, r1
+ str r4, [r0]
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804D024
+
+ thumb_func_start sub_804D084
+sub_804D084:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ mov r8, r0
+ adds r5, r1, 0
+ mov r9, r2
+ movs r2, 0
+ cmp r2, r5
+ bge _0804D144
+ lsrs r0, r5, 31
+ adds r0, r5, r0
+ asrs r0, 1
+ str r0, [sp]
+ movs r3, 0
+_0804D0A6:
+ adds r0, r2, 0x1
+ mov r10, r0
+ mov r4, r9
+ cmp r4, 0
+ ble _0804D13E
+ ldr r6, _0804D0D8
+ ldrb r6, [r6]
+ str r6, [sp, 0x4]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ mov r4, r8
+ adds r1, r0, r4
+ movs r7, 0
+ movs r6, 0x1
+ mov r12, r6
+ mov r4, r9
+_0804D0C8:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0x1
+ bne _0804D0DC
+ ldr r6, [sp]
+ cmp r2, r6
+ blt _0804D0DC
+ strb r0, [r1, 0x8]
+ b _0804D102
+ .align 2, 0
+_0804D0D8: .4byte gUnknown_202F1AE
+_0804D0DC:
+ ldr r6, _0804D0FC
+ ldrb r0, [r6]
+ cmp r0, 0x2
+ bne _0804D100
+ lsls r0, r5, 1
+ adds r0, r5
+ cmp r0, 0
+ bge _0804D0EE
+ adds r0, 0x3
+_0804D0EE:
+ asrs r0, 2
+ cmp r2, r0
+ blt _0804D100
+ mov r0, r12
+ strb r0, [r1, 0x8]
+ b _0804D102
+ .align 2, 0
+_0804D0FC: .4byte gUnknown_202F1AE
+_0804D100:
+ strb r3, [r1, 0x8]
+_0804D102:
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ add r0, r8
+ adds r0, r7, r0
+ mov r6, r12
+ strb r6, [r0, 0xA]
+ strb r3, [r0, 0xB]
+ strb r3, [r0, 0xF]
+ strb r3, [r0, 0xE]
+ strb r3, [r0, 0xC]
+ strb r3, [r0, 0x16]
+ strb r3, [r0, 0x15]
+ strb r3, [r0, 0x14]
+ strb r3, [r0, 0x13]
+ strb r3, [r0, 0x1A]
+ strb r3, [r0, 0x19]
+ strb r3, [r0, 0x18]
+ strb r3, [r0, 0x17]
+ strb r3, [r0, 0x9]
+ strb r3, [r0, 0x11]
+ strb r3, [r0, 0x10]
+ strb r3, [r0, 0x12]
+ strb r3, [r0, 0x1C]
+ strb r3, [r0, 0x1D]
+ adds r1, 0x20
+ adds r7, 0x20
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0804D0C8
+_0804D13E:
+ mov r2, r10
+ cmp r2, r5
+ blt _0804D0A6
+_0804D144:
+ 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_804D084
+
+ thumb_func_start sub_804D154
+sub_804D154:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x114
+ str r0, [sp, 0x100]
+ mov r9, r1
+ mov r8, r2
+ adds r4, r3, 0
+ movs r0, 0x3
+ bl sub_8084100
+ adds r3, r0, 0
+ cmp r4, 0
+ bge _0804D17E
+ negs r4, r4
+ b _0804D180
+_0804D178:
+ movs r0, 0x1
+ strb r0, [r4, 0xA]
+ b _0804D2B6
+_0804D17E:
+ adds r4, r3
+_0804D180:
+ movs r3, 0
+ mov r0, r8
+ mov r2, r9
+ muls r2, r0
+ cmp r3, r4
+ bge _0804D19A
+ movs r1, 0x1
+_0804D18E:
+ mov r5, sp
+ adds r0, r5, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, r4
+ blt _0804D18E
+_0804D19A:
+ cmp r3, 0xFF
+ bgt _0804D1AC
+ movs r1, 0
+_0804D1A0:
+ mov r6, sp
+ adds r0, r6, r3
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0xFF
+ ble _0804D1A0
+_0804D1AC:
+ adds r5, r2, 0
+ movs r6, 0x3F
+_0804D1B0:
+ adds r0, r5, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_8084100
+ mov r1, sp
+ adds r2, r1, r4
+ ldrb r3, [r2]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0804D1B0
+ movs r3, 0
+ ldr r0, _0804D24C
+ str r3, [r0]
+ movs r7, 0
+ mov r12, r0
+ cmp r7, r9
+ bge _0804D262
+_0804D1E0:
+ movs r5, 0
+ adds r4, r7, 0x1
+ str r4, [sp, 0x104]
+ cmp r5, r8
+ bge _0804D25C
+ lsls r2, r7, 4
+ subs r2, r7
+ lsls r2, 5
+ ldr r6, [sp, 0x100]
+ adds r0, r2, r6
+ mov r1, r9
+ movs r4, 0x1
+ ands r1, r4
+ str r1, [sp, 0x110]
+ mov r1, r9
+ subs r1, 0x1
+ adds r0, 0x20
+ mov r10, r0
+ adds r0, r6, 0
+ adds r0, 0x8
+ adds r2, r0
+ lsrs r0, r1, 31
+ adds r1, r0
+ asrs r1, 1
+_0804D210:
+ ldrb r4, [r2]
+ cmp r4, 0
+ bne _0804D254
+ mov r6, r12
+ ldr r0, [r6]
+ cmp r0, 0x1F
+ ble _0804D220
+ strb r4, [r2, 0x2]
+_0804D220:
+ mov r6, sp
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804D250
+ movs r0, 0x1
+ strb r0, [r2, 0x2]
+ mov r6, r12
+ ldr r0, [r6]
+ adds r0, 0x1
+ str r0, [r6]
+ ldr r0, [sp, 0x110]
+ cmp r0, 0
+ beq _0804D252
+ cmp r7, r1
+ bne _0804D252
+ cmp r5, 0x1
+ bne _0804D252
+ mov r6, r10
+ strb r4, [r6, 0xA]
+ b _0804D252
+ .align 2, 0
+_0804D24C: .4byte gUnknown_202F1CC
+_0804D250:
+ strb r0, [r2, 0x2]
+_0804D252:
+ adds r3, 0x1
+_0804D254:
+ adds r2, 0x20
+ adds r5, 0x1
+ cmp r5, r8
+ blt _0804D210
+_0804D25C:
+ ldr r7, [sp, 0x104]
+ cmp r7, r9
+ blt _0804D1E0
+_0804D262:
+ mov r1, r12
+ ldr r0, [r1]
+ cmp r0, 0x1
+ bgt _0804D2BC
+ movs r1, 0
+ movs r2, 0
+_0804D26E:
+ movs r7, 0
+ cmp r2, r9
+ bge _0804D2AC
+ movs r6, 0
+_0804D276:
+ movs r5, 0
+ cmp r5, r8
+ bge _0804D2A4
+ lsls r0, r6, 5
+ ldr r3, [sp, 0x100]
+ adds r4, r0, r3
+_0804D282:
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ bne _0804D29C
+ movs r0, 0x64
+ str r1, [sp, 0x108]
+ str r2, [sp, 0x10C]
+ bl sub_8084100
+ ldr r1, [sp, 0x108]
+ ldr r2, [sp, 0x10C]
+ cmp r0, 0x3B
+ bgt _0804D29C
+ b _0804D178
+_0804D29C:
+ adds r4, 0x20
+ adds r5, 0x1
+ cmp r5, r8
+ blt _0804D282
+_0804D2A4:
+ adds r6, 0xF
+ adds r7, 0x1
+ cmp r7, r9
+ blt _0804D276
+_0804D2AC:
+ cmp r2, 0
+ bne _0804D2B6
+ adds r1, 0x1
+ cmp r1, 0xC7
+ ble _0804D26E
+_0804D2B6:
+ ldr r1, _0804D2CC
+ movs r0, 0
+ strb r0, [r1]
+_0804D2BC:
+ add sp, 0x114
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D2CC: .4byte gUnknown_202F1AD
+ thumb_func_end sub_804D154
+
+ thumb_func_start sub_804D2D0
+sub_804D2D0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x38
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ movs r1, 0
+ str r1, [sp, 0x14]
+ cmp r1, r2
+ blt _0804D2F2
+ b _0804D520
+_0804D2F2:
+ movs r2, 0
+ mov r10, r2
+ ldr r3, [sp, 0x14]
+ adds r3, 0x1
+ str r3, [sp, 0x28]
+ ldr r4, [sp, 0x4]
+ cmp r10, r4
+ blt _0804D304
+ b _0804D514
+_0804D304:
+ ldr r5, [sp, 0x14]
+ lsls r5, 5
+ str r5, [sp, 0x1C]
+_0804D30A:
+ mov r1, r10
+ lsls r0, r1, 2
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ ldr r3, [r0]
+ adds r4, r3, 0x2
+ mov r9, r4
+ ldr r5, [sp, 0x14]
+ lsls r1, r5, 2
+ ldr r2, [sp, 0x58]
+ adds r1, r2
+ ldr r2, [r1]
+ adds r4, r2, 0x2
+ str r4, [sp, 0x18]
+ ldr r0, [r0, 0x4]
+ subs r0, r3
+ subs r4, r0, 0x4
+ ldr r0, [r1, 0x4]
+ subs r0, r2
+ subs r0, 0x3
+ mov r8, r0
+ mov r5, r10
+ lsls r1, r5, 4
+ subs r0, r1, r5
+ lsls r0, 5
+ ldr r2, [sp]
+ adds r0, r2
+ ldr r3, [sp, 0x1C]
+ adds r7, r3, r0
+ ldrb r0, [r7, 0x8]
+ str r1, [sp, 0x2C]
+ adds r5, 0x1
+ str r5, [sp, 0x24]
+ cmp r0, 0
+ beq _0804D352
+ b _0804D508
+_0804D352:
+ ldrb r0, [r7, 0xA]
+ cmp r0, 0
+ bne _0804D35A
+ b _0804D48C
+_0804D35A:
+ movs r0, 0x5
+ adds r1, r4, 0
+ bl sub_808411C
+ adds r6, r0, 0
+ movs r0, 0x4
+ mov r1, r8
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r1, 0x1
+ adds r0, r6, 0
+ orrs r0, r1
+ cmp r0, r4
+ bge _0804D37A
+ adds r6, r0, 0
+_0804D37A:
+ adds r0, r5, 0
+ orrs r0, r1
+ cmp r0, r8
+ bge _0804D384
+ adds r5, r0, 0
+_0804D384:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ cmp r6, r0
+ ble _0804D394
+ adds r6, r0, 0
+_0804D394:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ cmp r5, r0
+ ble _0804D3A4
+ adds r5, r0, 0
+_0804D3A4:
+ subs r0, r4, r6
+ bl sub_8084100
+ adds r4, r0, 0
+ add r4, r9
+ mov r1, r8
+ subs r0, r1, r5
+ bl sub_8084100
+ ldr r2, [sp, 0x18]
+ adds r0, r2
+ mov r8, r0
+ adds r3, r4, r6
+ adds r6, r0, r5
+ strh r4, [r7]
+ strh r3, [r7, 0x4]
+ mov r5, r8
+ strh r5, [r7, 0x2]
+ strh r6, [r7, 0x6]
+ ldr r0, [sp, 0x10]
+ adds r0, 0x1
+ str r0, [sp, 0x20]
+ cmp r4, r3
+ bge _0804D412
+_0804D3D4:
+ mov r5, r8
+ adds r7, r4, 0x1
+ cmp r5, r6
+ bge _0804D40C
+ ldr r1, _0804D484
+ mov r9, r1
+_0804D3E0:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r3, [sp, 0x34]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r9
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ mov r1, sp
+ ldrb r1, [r1, 0x10]
+ strb r1, [r0, 0x9]
+ adds r5, 0x1
+ ldr r3, [sp, 0x34]
+ cmp r5, r6
+ blt _0804D3E0
+_0804D40C:
+ adds r4, r7, 0
+ cmp r4, r3
+ blt _0804D3D4
+_0804D412:
+ movs r5, 0x1
+ movs r0, 0x64
+ bl sub_8084100
+ movs r1, 0
+ cmp r0, 0x4F
+ bgt _0804D422
+ movs r1, 0x1
+_0804D422:
+ adds r4, r1, 0
+ ldr r0, _0804D488
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _0804D42E
+ movs r4, 0
+_0804D42E:
+ movs r0, 0x4
+ ldr r2, [sp, 0x5C]
+ ands r0, r2
+ cmp r0, 0
+ bne _0804D43A
+ movs r5, 0
+_0804D43A:
+ cmp r5, 0
+ beq _0804D466
+ cmp r4, 0
+ beq _0804D44E
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r0, 0x31
+ ble _0804D466
+ movs r4, 0
+_0804D44E:
+ cmp r5, 0
+ beq _0804D466
+ ldr r3, [sp, 0x2C]
+ mov r5, r10
+ subs r0, r3, r5
+ lsls r0, 5
+ ldr r1, [sp]
+ adds r0, r1
+ ldr r2, [sp, 0x1C]
+ adds r0, r2, r0
+ movs r1, 0x1
+ strb r1, [r0, 0x1C]
+_0804D466:
+ cmp r4, 0
+ beq _0804D47E
+ ldr r3, [sp, 0x2C]
+ mov r4, r10
+ subs r0, r3, r4
+ lsls r0, 5
+ ldr r5, [sp]
+ adds r0, r5
+ ldr r1, [sp, 0x1C]
+ adds r0, r1, r0
+ movs r1, 0x1
+ strb r1, [r0, 0x1D]
+_0804D47E:
+ ldr r2, [sp, 0x20]
+ str r2, [sp, 0x10]
+ b _0804D508
+ .align 2, 0
+_0804D484: .4byte 0x0000fffc
+_0804D488: .4byte gUnknown_202F1C8
+_0804D48C:
+ movs r1, 0x2
+ movs r3, 0x4
+ movs r6, 0x2
+ movs r2, 0x4
+ mov r5, r10
+ cmp r5, 0
+ bne _0804D49C
+ movs r1, 0x1
+_0804D49C:
+ ldr r0, [sp, 0x14]
+ cmp r0, 0
+ bne _0804D4A4
+ movs r6, 0x1
+_0804D4A4:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ cmp r10, r0
+ bne _0804D4AE
+ movs r3, 0x2
+_0804D4AE:
+ ldr r0, [sp, 0x8]
+ subs r0, 0x1
+ ldr r5, [sp, 0x14]
+ cmp r5, r0
+ bne _0804D4BA
+ movs r2, 0x2
+_0804D4BA:
+ mov r5, r9
+ adds r0, r5, r1
+ adds r1, r5, r4
+ subs r1, r3
+ str r2, [sp, 0x30]
+ bl sub_808411C
+ adds r5, r0, 0
+ ldr r1, [sp, 0x18]
+ adds r0, r1, r6
+ add r1, r8
+ ldr r2, [sp, 0x30]
+ subs r1, r2
+ bl sub_808411C
+ adds r4, r0, 0
+ strh r5, [r7]
+ adds r0, r5, 0x1
+ strh r0, [r7, 0x4]
+ strh r4, [r7, 0x2]
+ adds r0, r4, 0x1
+ strh r0, [r7, 0x6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, _0804D530
+ adds r2, r3, 0
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0xFE
+ strb r1, [r0, 0x9]
+_0804D508:
+ ldr r4, [sp, 0x24]
+ mov r10, r4
+ ldr r5, [sp, 0x4]
+ cmp r10, r5
+ bge _0804D514
+ b _0804D30A
+_0804D514:
+ ldr r0, [sp, 0x28]
+ str r0, [sp, 0x14]
+ ldr r1, [sp, 0x8]
+ cmp r0, r1
+ bge _0804D520
+ b _0804D2F2
+_0804D520:
+ add sp, 0x38
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804D530: .4byte 0x0000fffc
+ thumb_func_end sub_804D2D0
+
+ thumb_func_start sub_804D534
+sub_804D534:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r3, r0, 0
+ adds r7, r1, 0
+ mov r9, r2
+ movs r1, 0
+ cmp r1, r9
+ bge _0804D5A0
+_0804D54A:
+ adds r0, r1, 0x1
+ mov r8, r0
+ cmp r7, 0
+ ble _0804D59A
+ lsls r1, 5
+ adds r0, r1, 0
+ adds r0, 0x8
+ adds r4, r3, r0
+ adds r5, r3, r1
+ adds r6, r7, 0
+_0804D55E:
+ ldrb r0, [r4]
+ cmp r0, 0
+ bne _0804D58C
+ ldrb r0, [r4, 0x6]
+ cmp r0, 0
+ bne _0804D58C
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _0804D58C
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0
+ beq _0804D58C
+ ldrb r0, [r4, 0x14]
+ cmp r0, 0
+ bne _0804D58C
+ ldrb r0, [r4, 0x15]
+ cmp r0, 0
+ beq _0804D58C
+ adds r0, r5, 0
+ str r3, [sp]
+ bl sub_804F694
+ ldr r3, [sp]
+_0804D58C:
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r4, r0
+ adds r5, r0
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0804D55E
+_0804D59A:
+ mov r1, r8
+ cmp r1, r9
+ blt _0804D54A
+_0804D5A0:
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804D534
+
+ thumb_func_start sub_804D5B0
+sub_804D5B0:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0x8
+ mov r9, r0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ adds r6, r3, 0
+ adds r0, r4, 0
+ bl sub_8084100
+ mov r8, r0
+ adds r0, r5, 0
+ bl sub_8084100
+ str r0, [sp]
+ str r6, [sp, 0x4]
+ mov r0, r9
+ adds r1, r4, 0
+ adds r2, r5, 0
+ mov r3, r8
+ bl sub_804D5F0
+ add sp, 0x8
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804D5B0
+
+ thumb_func_start sub_804D5F0
+sub_804D5F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x20
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ adds r7, r3, 0
+ ldr r6, [sp, 0x40]
+ ldr r0, [sp, 0x44]
+ ldrb r0, [r0, 0x5]
+ str r0, [sp, 0xC]
+ movs r0, 0x4
+ bl sub_8084100
+ adds r5, r0, 0
+ movs r1, 0
+ mov r10, r1
+ ldr r2, [sp, 0xC]
+ cmp r10, r2
+ blt _0804D620
+ b _0804D726
+_0804D620:
+ lsls r4, r6, 5
+ mov r9, r4
+ lsls r0, r7, 4
+ subs r0, r7
+ lsls r0, 5
+ ldr r1, [sp]
+ adds r0, r1
+ mov r8, r0
+_0804D630:
+ movs r0, 0x8
+ bl sub_8084100
+ adds r4, r0, 0
+ movs r0, 0x4
+ bl sub_8084100
+ cmp r4, 0x3
+ bgt _0804D644
+ adds r5, r0, 0
+_0804D644:
+ mov r4, r10
+ adds r4, 0x1
+_0804D648:
+ movs r1, 0
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0x1
+ beq _0804D670
+ cmp r0, 0x1
+ bgt _0804D65C
+ cmp r0, 0
+ beq _0804D666
+ b _0804D686
+_0804D65C:
+ cmp r0, 0x2
+ beq _0804D676
+ cmp r0, 0x3
+ beq _0804D67C
+ b _0804D686
+_0804D666:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ cmp r7, r0
+ blt _0804D68A
+ b _0804D684
+_0804D670:
+ cmp r6, 0
+ bgt _0804D68A
+ b _0804D684
+_0804D676:
+ cmp r7, 0
+ bgt _0804D68A
+ b _0804D684
+_0804D67C:
+ ldr r0, [sp, 0x8]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _0804D68A
+_0804D684:
+ adds r5, 0x1
+_0804D686:
+ cmp r1, 0
+ beq _0804D648
+_0804D68A:
+ movs r1, 0x3
+ ands r1, r5
+ cmp r1, 0x1
+ beq _0804D6C6
+ cmp r1, 0x1
+ bgt _0804D69C
+ cmp r1, 0
+ beq _0804D6A6
+ b _0804D71E
+_0804D69C:
+ cmp r1, 0x2
+ beq _0804D6E2
+ cmp r1, 0x3
+ beq _0804D704
+ b _0804D71E
+_0804D6A6:
+ mov r1, r9
+ add r1, r8
+ movs r0, 0xF0
+ lsls r0, 1
+ adds r2, r1, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804D71E
+ movs r0, 0x1
+ strb r0, [r1, 0x16]
+ strb r0, [r2, 0x15]
+ movs r1, 0xF0
+ lsls r1, 1
+ add r8, r1
+ adds r7, 0x1
+ b _0804D71E
+_0804D6C6:
+ mov r2, r9
+ add r2, r8
+ adds r3, r2, 0
+ subs r3, 0x20
+ ldrb r0, [r3, 0x8]
+ cmp r0, 0
+ bne _0804D71E
+ strb r1, [r2, 0x13]
+ strb r1, [r3, 0x14]
+ movs r2, 0x20
+ negs r2, r2
+ add r9, r2
+ subs r6, 0x1
+ b _0804D71E
+_0804D6E2:
+ mov r1, r9
+ add r1, r8
+ ldr r0, _0804D700
+ adds r2, r1, r0
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804D71E
+ movs r0, 0x1
+ strb r0, [r1, 0x15]
+ strb r0, [r2, 0x16]
+ ldr r1, _0804D700
+ add r8, r1
+ subs r7, 0x1
+ b _0804D71E
+ .align 2, 0
+_0804D700: .4byte 0xfffffe20
+_0804D704:
+ mov r1, r9
+ add r1, r8
+ adds r2, r1, 0
+ adds r2, 0x20
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804D71E
+ movs r0, 0x1
+ strb r0, [r1, 0x14]
+ strb r0, [r2, 0x13]
+ movs r1, 0x20
+ add r9, r1
+ adds r6, 0x1
+_0804D71E:
+ mov r10, r4
+ ldr r2, [sp, 0xC]
+ cmp r10, r2
+ blt _0804D630
+_0804D726:
+ ldr r4, [sp, 0x44]
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0804D730
+ b _0804D8B8
+_0804D730:
+ movs r0, 0
+ mov r9, r0
+ movs r7, 0
+ ldr r1, [sp, 0x4]
+ cmp r9, r1
+ blt _0804D73E
+ b _0804D8B0
+_0804D73E:
+ movs r2, 0x1
+ mov r8, r2
+_0804D742:
+ movs r6, 0
+ adds r4, r7, 0x1
+ str r4, [sp, 0x14]
+ ldr r0, [sp, 0x8]
+ cmp r6, r0
+ blt _0804D750
+ b _0804D8A6
+_0804D750:
+ lsls r1, r7, 4
+ str r1, [sp, 0x10]
+ subs r0, r1, r7
+ lsls r0, 5
+ ldr r2, [sp]
+ adds r3, r0, r2
+_0804D75C:
+ lsls r0, r6, 5
+ adds r2, r0, r3
+ ldrb r1, [r2, 0x8]
+ adds r4, r0, 0
+ adds r0, r6, 0x1
+ str r0, [sp, 0x18]
+ cmp r1, 0
+ beq _0804D76E
+ b _0804D89C
+_0804D76E:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804D776
+ b _0804D89C
+_0804D776:
+ ldrb r0, [r2, 0x13]
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ ldrb r0, [r2, 0x14]
+ cmp r0, 0
+ beq _0804D786
+ adds r1, 0x1
+_0804D786:
+ ldrb r0, [r2, 0x15]
+ cmp r0, 0
+ beq _0804D78E
+ adds r1, 0x1
+_0804D78E:
+ ldrb r0, [r2, 0x16]
+ cmp r0, 0
+ beq _0804D796
+ adds r1, 0x1
+_0804D796:
+ cmp r1, 0x1
+ beq _0804D79C
+ b _0804D89C
+_0804D79C:
+ movs r0, 0x4
+ str r3, [sp, 0x1C]
+ bl sub_8084100
+ adds r5, r0, 0
+ movs r2, 0
+ mov r10, r2
+ ldr r1, [sp, 0x10]
+ subs r0, r1, r7
+ lsls r0, 5
+ ldr r1, [sp]
+ adds r0, r1
+ adds r1, r4, r0
+ ldr r3, [sp, 0x1C]
+_0804D7B8:
+ movs r0, 0x3
+ ands r0, r5
+ cmp r0, 0x1
+ beq _0804D7E0
+ cmp r0, 0x1
+ bgt _0804D7CA
+ cmp r0, 0
+ beq _0804D7D4
+ b _0804D800
+_0804D7CA:
+ cmp r0, 0x2
+ beq _0804D7E8
+ cmp r0, 0x3
+ beq _0804D7F0
+ b _0804D800
+_0804D7D4:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ cmp r7, r0
+ bge _0804D7FE
+ ldrb r0, [r1, 0x16]
+ b _0804D7FA
+_0804D7E0:
+ cmp r6, 0
+ ble _0804D7FE
+ ldrb r0, [r1, 0x13]
+ b _0804D7FA
+_0804D7E8:
+ cmp r7, 0
+ ble _0804D7FE
+ ldrb r0, [r1, 0x15]
+ b _0804D7FA
+_0804D7F0:
+ ldr r0, [sp, 0x8]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _0804D7FE
+ ldrb r0, [r1, 0x14]
+_0804D7FA:
+ cmp r0, 0
+ beq _0804D80E
+_0804D7FE:
+ adds r5, 0x1
+_0804D800:
+ mov r0, r10
+ cmp r0, 0
+ bne _0804D80E
+ adds r2, 0x1
+ cmp r2, 0x7
+ ble _0804D7B8
+ b _0804D89C
+_0804D80E:
+ movs r2, 0x3
+ ands r2, r5
+ cmp r2, 0x1
+ beq _0804D844
+ cmp r2, 0x1
+ bgt _0804D820
+ cmp r2, 0
+ beq _0804D82A
+ b _0804D89C
+_0804D820:
+ cmp r2, 0x2
+ beq _0804D85C
+ cmp r2, 0x3
+ beq _0804D880
+ b _0804D89C
+_0804D82A:
+ adds r1, r4, r3
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r2, r1, r4
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804D89C
+ mov r0, r8
+ strb r0, [r1, 0x16]
+ strb r0, [r2, 0x15]
+ movs r1, 0x1
+ mov r9, r1
+ b _0804D89C
+_0804D844:
+ adds r1, r4, r3
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r0, r1, r4
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0804D89C
+ strb r2, [r1, 0x13]
+ adds r0, r1, 0
+ subs r0, 0x20
+ strb r2, [r0, 0x14]
+ b _0804D898
+_0804D85C:
+ adds r1, r4, r3
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0804D89C
+ mov r4, r8
+ strb r4, [r1, 0x15]
+ ldr r2, _0804D87C
+ adds r0, r1, r2
+ strb r4, [r0, 0x16]
+ movs r4, 0x1
+ mov r9, r4
+ b _0804D89C
+ .align 2, 0
+_0804D87C: .4byte 0xfffffe20
+_0804D880:
+ adds r1, r4, r3
+ movs r2, 0xF0
+ lsls r2, 1
+ adds r0, r1, r2
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0
+ bne _0804D89C
+ mov r4, r8
+ strb r4, [r1, 0x14]
+ adds r0, r1, 0
+ adds r0, 0x20
+ strb r4, [r0, 0x13]
+_0804D898:
+ movs r0, 0x1
+ mov r9, r0
+_0804D89C:
+ ldr r6, [sp, 0x18]
+ ldr r1, [sp, 0x8]
+ cmp r6, r1
+ bge _0804D8A6
+ b _0804D75C
+_0804D8A6:
+ ldr r7, [sp, 0x14]
+ ldr r2, [sp, 0x4]
+ cmp r7, r2
+ bge _0804D8B0
+ b _0804D742
+_0804D8B0:
+ mov r4, r9
+ cmp r4, 0
+ beq _0804D8B8
+ b _0804D730
+_0804D8B8:
+ add sp, 0x20
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804D5F0
+
+ thumb_func_start sub_804D8C8
+sub_804D8C8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r2, [sp, 0x14]
+ str r3, [sp, 0x18]
+ ldr r0, [sp, 0x7C]
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0x1C]
+ movs r0, 0
+ str r0, [sp, 0x20]
+ cmp r0, r1
+ bge _0804D968
+_0804D8EC:
+ movs r1, 0
+ mov r10, r1
+ ldr r2, [sp, 0x20]
+ adds r2, 0x1
+ str r2, [sp, 0x38]
+ ldr r3, [sp, 0x14]
+ cmp r10, r3
+ bge _0804D95E
+ ldr r4, [sp, 0x20]
+ lsls r1, r4, 4
+ subs r1, r4
+ movs r3, 0
+ lsls r1, 5
+ ldr r0, [sp, 0xC]
+ adds r0, 0x8
+ adds r1, r0
+_0804D90C:
+ ldrb r2, [r1]
+ cmp r2, 0
+ beq _0804D91C
+ strb r3, [r1, 0xF]
+ strb r3, [r1, 0x10]
+ strb r3, [r1, 0x11]
+ strb r3, [r1, 0x12]
+ b _0804D952
+_0804D91C:
+ ldr r5, [sp, 0x20]
+ cmp r5, 0
+ bgt _0804D924
+ strb r2, [r1, 0xD]
+_0804D924:
+ mov r6, r10
+ cmp r6, 0
+ bgt _0804D92C
+ strb r2, [r1, 0xB]
+_0804D92C:
+ ldr r0, [sp, 0x10]
+ subs r0, 0x1
+ ldr r7, [sp, 0x20]
+ cmp r7, r0
+ blt _0804D938
+ strb r2, [r1, 0xE]
+_0804D938:
+ ldr r0, [sp, 0x14]
+ subs r0, 0x1
+ cmp r10, r0
+ blt _0804D942
+ strb r2, [r1, 0xC]
+_0804D942:
+ ldrb r0, [r1, 0xB]
+ strb r0, [r1, 0xF]
+ ldrb r0, [r1, 0xC]
+ strb r0, [r1, 0x10]
+ ldrb r0, [r1, 0xD]
+ strb r0, [r1, 0x11]
+ ldrb r0, [r1, 0xE]
+ strb r0, [r1, 0x12]
+_0804D952:
+ adds r1, 0x20
+ movs r0, 0x1
+ add r10, r0
+ ldr r2, [sp, 0x14]
+ cmp r10, r2
+ blt _0804D90C
+_0804D95E:
+ ldr r3, [sp, 0x38]
+ str r3, [sp, 0x20]
+ ldr r4, [sp, 0x10]
+ cmp r3, r4
+ blt _0804D8EC
+_0804D968:
+ movs r5, 0
+ str r5, [sp, 0x20]
+ ldr r6, [sp, 0x10]
+ cmp r5, r6
+ blt _0804D974
+ b _0804DBC6
+_0804D974:
+ movs r7, 0
+ mov r10, r7
+ ldr r0, [sp, 0x20]
+ adds r0, 0x1
+ str r0, [sp, 0x38]
+ ldr r1, [sp, 0x14]
+ cmp r10, r1
+ blt _0804D986
+ b _0804DBBA
+_0804D986:
+ ldr r2, [sp, 0x20]
+ lsls r2, 4
+ str r2, [sp, 0x40]
+ ldr r3, [sp, 0x20]
+ subs r1, r2, r3
+ lsls r1, 5
+ movs r4, 0
+ str r4, [sp, 0x48]
+ ldr r5, [sp, 0xC]
+ movs r6, 0xF0
+ lsls r6, 1
+ adds r0, r5, r6
+ adds r0, r1
+ mov r8, r0
+ adds r5, r1, r5
+ ldr r7, [sp, 0xC]
+ ldr r2, _0804DA0C
+ adds r0, r7, r2
+ adds r7, r1, r0
+ ldr r3, [sp, 0x78]
+ str r3, [sp, 0x4C]
+ ldr r0, [sp, 0xC]
+ adds r0, 0x20
+ adds r0, r1, r0
+ str r0, [sp, 0x50]
+ ldr r0, [sp, 0xC]
+ subs r0, 0x20
+ adds r6, r1, r0
+ ldr r4, [sp, 0x20]
+ lsls r0, r4, 2
+ ldr r1, [sp, 0x18]
+ adds r0, r1
+ str r0, [sp, 0x24]
+_0804D9C8:
+ ldr r2, [sp, 0x20]
+ lsls r0, r2, 4
+ subs r0, r2
+ lsls r0, 5
+ ldr r3, [sp, 0xC]
+ adds r0, r3
+ ldr r1, [sp, 0x48]
+ adds r4, r1, r0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _0804D9E0
+ b _0804DB92
+_0804D9E0:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _0804DA10
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ adds r0, 0x1
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ subs r1, 0x1
+ bl sub_808411C
+ mov r9, r0
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r4, r0, 0
+ b _0804DA1A
+ .align 2, 0
+_0804DA0C: .4byte 0xfffffe20
+_0804DA10:
+ movs r0, 0
+ ldrsh r3, [r4, r0]
+ mov r9, r3
+ movs r1, 0x2
+ ldrsh r4, [r4, r1]
+_0804DA1A:
+ ldrb r0, [r5, 0x17]
+ cmp r0, 0
+ beq _0804DA74
+ ldrb r0, [r6, 0x8]
+ cmp r0, 0
+ bne _0804DA68
+ ldrb r0, [r6, 0xA]
+ cmp r0, 0
+ beq _0804DA40
+ movs r2, 0
+ ldrsh r0, [r6, r2]
+ adds r0, 0x1
+ movs r3, 0x4
+ ldrsh r1, [r6, r3]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r2, r0, 0
+ b _0804DA44
+_0804DA40:
+ movs r0, 0
+ ldrsh r2, [r6, r0]
+_0804DA44:
+ movs r3, 0x2
+ ldrsh r1, [r5, r3]
+ movs r0, 0x6
+ ldrsh r3, [r6, r0]
+ subs r3, 0x1
+ mov r12, r3
+ movs r3, 0x1
+ str r3, [sp]
+ ldr r3, [sp, 0x24]
+ ldr r0, [r3]
+ str r0, [sp, 0x4]
+ ldr r3, [sp, 0x4C]
+ ldr r0, [r3]
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r3, r12
+ bl sub_804E328
+_0804DA68:
+ movs r0, 0
+ strb r0, [r5, 0x17]
+ strb r0, [r6, 0x18]
+ movs r1, 0x1
+ strb r1, [r5, 0xB]
+ strb r1, [r6, 0xB]
+_0804DA74:
+ ldrb r0, [r5, 0x18]
+ cmp r0, 0
+ beq _0804DAD4
+ ldr r2, [sp, 0x50]
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804DAC6
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804DA9C
+ movs r3, 0x20
+ ldrsh r0, [r5, r3]
+ adds r0, 0x1
+ movs r2, 0x24
+ ldrsh r1, [r5, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r2, r0, 0
+ b _0804DAA0
+_0804DA9C:
+ movs r3, 0x20
+ ldrsh r2, [r5, r3]
+_0804DAA0:
+ movs r0, 0x6
+ ldrsh r1, [r5, r0]
+ subs r1, 0x1
+ movs r0, 0x22
+ ldrsh r3, [r5, r0]
+ mov r12, r3
+ movs r3, 0x1
+ str r3, [sp]
+ ldr r3, [sp, 0x24]
+ ldr r0, [r3]
+ str r0, [sp, 0x4]
+ ldr r3, [sp, 0x4C]
+ ldr r0, [r3, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x8]
+ mov r0, r9
+ mov r3, r12
+ bl sub_804E328
+_0804DAC6:
+ movs r0, 0
+ strb r0, [r5, 0x18]
+ ldr r1, [sp, 0x50]
+ strb r0, [r1, 0x17]
+ movs r2, 0x1
+ strb r2, [r5, 0xB]
+ strb r2, [r1, 0xB]
+_0804DAD4:
+ ldrb r0, [r5, 0x19]
+ cmp r0, 0
+ beq _0804DB2E
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0
+ bne _0804DB22
+ ldrb r0, [r7, 0xA]
+ cmp r0, 0
+ beq _0804DAFA
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ adds r0, 0x1
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r3, r0, 0
+ b _0804DAFE
+_0804DAFA:
+ movs r0, 0x2
+ ldrsh r3, [r7, r0]
+_0804DAFE:
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r1, 0
+ ldrsh r2, [r7, r1]
+ subs r2, 0x1
+ mov r9, r2
+ movs r2, 0
+ str r2, [sp]
+ ldr r2, [sp, 0x24]
+ ldr r1, [r2]
+ str r1, [sp, 0x4]
+ ldr r2, [sp, 0x4C]
+ ldr r1, [r2]
+ str r1, [sp, 0x8]
+ adds r1, r4, 0
+ mov r2, r9
+ bl sub_804E328
+_0804DB22:
+ movs r3, 0
+ strb r3, [r5, 0x19]
+ strb r3, [r7, 0x1A]
+ movs r0, 0x1
+ strb r0, [r5, 0xB]
+ strb r0, [r7, 0xB]
+_0804DB2E:
+ ldrb r0, [r5, 0x1A]
+ cmp r0, 0
+ beq _0804DB92
+ mov r1, r8
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ bne _0804DB84
+ ldrb r0, [r1, 0xA]
+ cmp r0, 0
+ beq _0804DB56
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ adds r0, 0x1
+ movs r3, 0x6
+ ldrsh r1, [r1, r3]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r3, r0, 0
+ b _0804DB5C
+_0804DB56:
+ mov r0, r8
+ movs r1, 0x2
+ ldrsh r3, [r0, r1]
+_0804DB5C:
+ movs r2, 0x4
+ ldrsh r0, [r5, r2]
+ subs r0, 0x1
+ mov r1, r8
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ mov r9, r1
+ movs r1, 0
+ str r1, [sp]
+ ldr r2, [sp, 0x24]
+ ldr r1, [r2, 0x4]
+ subs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r2, [sp, 0x4C]
+ ldr r1, [r2]
+ str r1, [sp, 0x8]
+ adds r1, r4, 0
+ mov r2, r9
+ bl sub_804E328
+_0804DB84:
+ movs r3, 0
+ strb r3, [r5, 0x1A]
+ mov r4, r8
+ strb r3, [r4, 0x19]
+ movs r0, 0x1
+ strb r0, [r5, 0xB]
+ strb r0, [r4, 0xB]
+_0804DB92:
+ ldr r1, [sp, 0x48]
+ adds r1, 0x20
+ str r1, [sp, 0x48]
+ movs r2, 0x20
+ add r8, r2
+ adds r5, 0x20
+ adds r7, 0x20
+ ldr r3, [sp, 0x4C]
+ adds r3, 0x4
+ str r3, [sp, 0x4C]
+ ldr r4, [sp, 0x50]
+ adds r4, 0x20
+ str r4, [sp, 0x50]
+ adds r6, 0x20
+ movs r0, 0x1
+ add r10, r0
+ ldr r1, [sp, 0x14]
+ cmp r10, r1
+ bge _0804DBBA
+ b _0804D9C8
+_0804DBBA:
+ ldr r2, [sp, 0x38]
+ str r2, [sp, 0x20]
+ ldr r3, [sp, 0x10]
+ cmp r2, r3
+ bge _0804DBC6
+ b _0804D974
+_0804DBC6:
+ ldr r4, [sp, 0x1C]
+ cmp r4, 0
+ beq _0804DBCE
+ b _0804E026
+_0804DBCE:
+ movs r5, 0
+ str r5, [sp, 0x20]
+ ldr r6, [sp, 0x10]
+ cmp r5, r6
+ blt _0804DBDA
+ b _0804E026
+_0804DBDA:
+ movs r7, 0
+ mov r10, r7
+ ldr r0, [sp, 0x20]
+ adds r0, 0x1
+ str r0, [sp, 0x38]
+ ldr r1, [sp, 0x14]
+ cmp r10, r1
+ blt _0804DBEC
+ b _0804E018
+_0804DBEC:
+ movs r0, 0x64
+ bl sub_8084100
+ mov r2, r10
+ adds r2, 0x1
+ str r2, [sp, 0x3C]
+ cmp r0, 0x4
+ ble _0804DBFE
+ b _0804E00C
+_0804DBFE:
+ mov r3, r10
+ lsls r1, r3, 5
+ ldr r4, [sp, 0x20]
+ lsls r2, r4, 4
+ subs r0, r2, r4
+ lsls r0, 5
+ ldr r5, [sp, 0xC]
+ adds r0, r5
+ adds r4, r1, r0
+ ldrb r0, [r4, 0x8]
+ str r1, [sp, 0x44]
+ str r2, [sp, 0x40]
+ cmp r0, 0
+ beq _0804DC1C
+ b _0804E00C
+_0804DC1C:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0804DC24
+ b _0804E00C
+_0804DC24:
+ ldrb r0, [r4, 0x12]
+ cmp r0, 0
+ beq _0804DC2C
+ b _0804E00C
+_0804DC2C:
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0804DC34
+ b _0804E00C
+_0804DC34:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _0804DC3C
+ b _0804E00C
+_0804DC3C:
+ movs r0, 0x4
+ bl sub_8084100
+ cmp r0, 0x1
+ bne _0804DC48
+ b _0804DD50
+_0804DC48:
+ cmp r0, 0x1
+ bgt _0804DC52
+ cmp r0, 0
+ beq _0804DC60
+ b _0804E00C
+_0804DC52:
+ cmp r0, 0x2
+ bne _0804DC58
+ b _0804DE3C
+_0804DC58:
+ cmp r0, 0x3
+ bne _0804DC5E
+ b _0804DF30
+_0804DC5E:
+ b _0804E00C
+_0804DC60:
+ ldr r6, [sp, 0x20]
+ cmp r6, 0
+ bgt _0804DC68
+ b _0804E00C
+_0804DC68:
+ ldr r7, _0804DD48
+ adds r2, r4, r7
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _0804DC74
+ b _0804E00C
+_0804DC74:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0804DC7C
+ b _0804E00C
+_0804DC7C:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _0804DC84
+ b _0804E00C
+_0804DC84:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ beq _0804DC8C
+ b _0804E00C
+_0804DC8C:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ beq _0804DC94
+ b _0804E00C
+_0804DC94:
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ str r0, [sp, 0x28]
+ ldrh r3, [r4, 0x2]
+ movs r5, 0x2
+ ldrsh r1, [r4, r5]
+ ldrh r5, [r2, 0x2]
+ movs r6, 0x2
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ ble _0804DCAC
+ adds r3, r5, 0
+_0804DCAC:
+ lsls r0, r3, 16
+ asrs r0, 16
+ mov r9, r0
+ movs r0, 0x4
+ ldrsh r7, [r4, r0]
+ mov r10, r7
+ ldrh r3, [r4, 0x6]
+ movs r5, 0x6
+ ldrsh r1, [r4, r5]
+ ldrh r5, [r2, 0x6]
+ movs r6, 0x6
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ bge _0804DCCA
+ adds r3, r5, 0
+_0804DCCA:
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r8, r0
+ ldr r5, [sp, 0x28]
+ cmp r5, r10
+ bge _0804DD16
+_0804DCE4:
+ mov r4, r9
+ adds r6, r5, 0x1
+ cmp r9, r7
+ bge _0804DD10
+ ldr r0, _0804DD4C
+ adds r3, r0, 0
+_0804DCF0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x54]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, [sp, 0x54]
+ ands r1, r3
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ mov r1, r8
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ cmp r4, r7
+ blt _0804DCF0
+_0804DD10:
+ adds r5, r6, 0
+ cmp r5, r10
+ blt _0804DCE4
+_0804DD16:
+ ldr r2, [sp, 0x40]
+ ldr r3, [sp, 0x20]
+ subs r0, r2, r3
+ lsls r0, 5
+ ldr r4, [sp, 0xC]
+ adds r0, r4
+ ldr r5, [sp, 0x44]
+ adds r0, r5, r0
+ ldr r6, _0804DD48
+ adds r3, r0, r6
+ mov r1, sp
+ ldrh r1, [r1, 0x28]
+ strh r1, [r3]
+ mov r2, r10
+ strh r2, [r3, 0x4]
+ mov r4, r9
+ strh r4, [r3, 0x2]
+ strh r7, [r3, 0x6]
+ movs r5, 0x1
+ strb r5, [r0, 0x12]
+ strb r5, [r3, 0x12]
+ movs r6, 0
+ strb r6, [r0, 0xB]
+ strb r5, [r0, 0x11]
+ b _0804E00C
+ .align 2, 0
+_0804DD48: .4byte 0xfffffe20
+_0804DD4C: .4byte 0x0000fffc
+_0804DD50:
+ mov r7, r10
+ cmp r7, 0
+ bgt _0804DD58
+ b _0804E00C
+_0804DD58:
+ adds r2, r4, 0
+ subs r2, 0x20
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _0804DD64
+ b _0804E00C
+_0804DD64:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0804DD6C
+ b _0804E00C
+_0804DD6C:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _0804DD74
+ b _0804E00C
+_0804DD74:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ beq _0804DD7C
+ b _0804E00C
+_0804DD7C:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ beq _0804DD84
+ b _0804E00C
+_0804DD84:
+ ldrh r3, [r4]
+ movs r0, 0
+ ldrsh r1, [r4, r0]
+ ldrh r5, [r2]
+ movs r6, 0
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ ble _0804DD96
+ adds r3, r5, 0
+_0804DD96:
+ lsls r0, r3, 16
+ asrs r0, 16
+ str r0, [sp, 0x2C]
+ movs r0, 0x2
+ ldrsh r7, [r2, r0]
+ mov r10, r7
+ ldrh r3, [r4, 0x4]
+ movs r5, 0x4
+ ldrsh r1, [r4, r5]
+ ldrh r5, [r2, 0x4]
+ movs r6, 0x4
+ ldrsh r0, [r2, r6]
+ cmp r1, r0
+ bge _0804DDB4
+ adds r3, r5, 0
+_0804DDB4:
+ lsls r0, r3, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x6
+ ldrsh r7, [r4, r0]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r9, r0
+ ldr r5, [sp, 0x2C]
+ cmp r5, r8
+ bge _0804DE06
+_0804DDD4:
+ mov r4, r10
+ adds r6, r5, 0x1
+ cmp r10, r7
+ bge _0804DE00
+ ldr r0, _0804DE38
+ adds r3, r0, 0
+_0804DDE0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x54]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, [sp, 0x54]
+ ands r1, r3
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ mov r1, r9
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ cmp r4, r7
+ blt _0804DDE0
+_0804DE00:
+ adds r5, r6, 0
+ cmp r5, r8
+ blt _0804DDD4
+_0804DE06:
+ ldr r2, [sp, 0x40]
+ ldr r3, [sp, 0x20]
+ subs r0, r2, r3
+ lsls r0, 5
+ ldr r4, [sp, 0xC]
+ adds r0, r4
+ ldr r5, [sp, 0x44]
+ adds r0, r5, r0
+ adds r3, r0, 0
+ subs r3, 0x20
+ mov r6, sp
+ ldrh r6, [r6, 0x2C]
+ strh r6, [r3]
+ mov r1, r8
+ strh r1, [r3, 0x4]
+ mov r2, r10
+ strh r2, [r3, 0x2]
+ strh r7, [r3, 0x6]
+ movs r4, 0x1
+ strb r4, [r0, 0x12]
+ strb r4, [r3, 0x12]
+ movs r5, 0
+ strb r5, [r0, 0xB]
+ strb r4, [r0, 0x11]
+ b _0804E00C
+ .align 2, 0
+_0804DE38: .4byte 0x0000fffc
+_0804DE3C:
+ ldr r0, [sp, 0x10]
+ subs r0, 0x2
+ ldr r6, [sp, 0x20]
+ cmp r6, r0
+ ble _0804DE48
+ b _0804E00C
+_0804DE48:
+ movs r7, 0xF0
+ lsls r7, 1
+ adds r2, r4, r7
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ bne _0804DE56
+ b _0804E00C
+_0804DE56:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ beq _0804DE5E
+ b _0804E00C
+_0804DE5E:
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ bne _0804DE66
+ b _0804E00C
+_0804DE66:
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ beq _0804DE6E
+ b _0804E00C
+_0804DE6E:
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ beq _0804DE76
+ b _0804E00C
+_0804DE76:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ str r0, [sp, 0x30]
+ ldrh r3, [r2, 0x2]
+ movs r5, 0x2
+ ldrsh r1, [r2, r5]
+ ldrh r5, [r4, 0x2]
+ movs r6, 0x2
+ ldrsh r0, [r4, r6]
+ cmp r1, r0
+ ble _0804DE8E
+ adds r3, r5, 0
+_0804DE8E:
+ lsls r0, r3, 16
+ asrs r0, 16
+ mov r9, r0
+ movs r0, 0x4
+ ldrsh r7, [r2, r0]
+ mov r10, r7
+ ldrh r3, [r2, 0x6]
+ movs r5, 0x6
+ ldrsh r1, [r2, r5]
+ ldrh r2, [r4, 0x6]
+ movs r6, 0x6
+ ldrsh r0, [r4, r6]
+ cmp r1, r0
+ bge _0804DEAC
+ adds r3, r2, 0
+_0804DEAC:
+ lsls r0, r3, 16
+ asrs r7, r0, 16
+ movs r0, 0x2
+ ldrsh r1, [r4, r0]
+ ldr r0, [sp, 0x30]
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r8, r0
+ ldr r5, [sp, 0x30]
+ cmp r5, r10
+ bge _0804DEF6
+_0804DEC4:
+ mov r4, r9
+ adds r6, r5, 0x1
+ cmp r9, r7
+ bge _0804DEF0
+ ldr r1, _0804DF2C
+ adds r3, r1, 0
+_0804DED0:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x54]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, [sp, 0x54]
+ ands r1, r3
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ mov r2, r8
+ strb r2, [r0, 0x9]
+ adds r4, 0x1
+ cmp r4, r7
+ blt _0804DED0
+_0804DEF0:
+ adds r5, r6, 0
+ cmp r5, r10
+ blt _0804DEC4
+_0804DEF6:
+ ldr r3, [sp, 0x40]
+ ldr r4, [sp, 0x20]
+ subs r0, r3, r4
+ lsls r0, 5
+ ldr r5, [sp, 0xC]
+ adds r0, r5
+ ldr r6, [sp, 0x44]
+ adds r0, r6, r0
+ mov r1, sp
+ ldrh r1, [r1, 0x30]
+ strh r1, [r0]
+ mov r2, r10
+ strh r2, [r0, 0x4]
+ mov r3, r9
+ strh r3, [r0, 0x2]
+ strh r7, [r0, 0x6]
+ movs r4, 0xF0
+ lsls r4, 1
+ adds r1, r0, r4
+ movs r5, 0x1
+ strb r5, [r1, 0x12]
+ strb r5, [r0, 0x12]
+ movs r6, 0
+ strb r6, [r1, 0xB]
+ strb r5, [r1, 0x11]
+ b _0804E00C
+ .align 2, 0
+_0804DF2C: .4byte 0x0000fffc
+_0804DF30:
+ ldr r0, [sp, 0x14]
+ subs r0, 0x2
+ cmp r10, r0
+ bgt _0804E00C
+ adds r3, r4, 0
+ adds r3, 0x20
+ ldrb r0, [r3, 0xB]
+ cmp r0, 0
+ beq _0804E00C
+ ldrb r0, [r3, 0x8]
+ cmp r0, 0
+ bne _0804E00C
+ ldrb r0, [r3, 0xA]
+ cmp r0, 0
+ beq _0804E00C
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ bne _0804E00C
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0
+ bne _0804E00C
+ ldrh r2, [r4, 0x20]
+ movs r7, 0x20
+ ldrsh r1, [r4, r7]
+ ldrh r5, [r4]
+ movs r6, 0
+ ldrsh r0, [r4, r6]
+ cmp r1, r0
+ ble _0804DF6C
+ adds r2, r5, 0
+_0804DF6C:
+ lsls r0, r2, 16
+ asrs r0, 16
+ str r0, [sp, 0x34]
+ movs r7, 0x2
+ ldrsh r6, [r4, r7]
+ ldrh r2, [r3, 0x4]
+ movs r0, 0x4
+ ldrsh r1, [r3, r0]
+ ldrh r5, [r4, 0x4]
+ movs r7, 0x4
+ ldrsh r0, [r4, r7]
+ cmp r1, r0
+ bge _0804DF88
+ adds r2, r5, 0
+_0804DF88:
+ lsls r0, r2, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x6
+ ldrsh r3, [r3, r0]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r1, r6, 0
+ str r3, [sp, 0x54]
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r10, r0
+ ldr r5, [sp, 0x34]
+ ldr r3, [sp, 0x54]
+ cmp r5, r8
+ bge _0804DFDE
+_0804DFAA:
+ adds r4, r6, 0
+ adds r7, r5, 0x1
+ cmp r6, r3
+ bge _0804DFD8
+ ldr r2, _0804E038
+ mov r9, r2
+_0804DFB6:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x54]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r9
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ mov r1, r10
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ ldr r3, [sp, 0x54]
+ cmp r4, r3
+ blt _0804DFB6
+_0804DFD8:
+ adds r5, r7, 0
+ cmp r5, r8
+ blt _0804DFAA
+_0804DFDE:
+ ldr r2, [sp, 0x40]
+ ldr r4, [sp, 0x20]
+ subs r0, r2, r4
+ lsls r0, 5
+ ldr r5, [sp, 0xC]
+ adds r0, r5
+ ldr r7, [sp, 0x44]
+ adds r0, r7, r0
+ mov r1, sp
+ ldrh r1, [r1, 0x34]
+ strh r1, [r0]
+ mov r2, r8
+ strh r2, [r0, 0x4]
+ strh r6, [r0, 0x2]
+ strh r3, [r0, 0x6]
+ adds r1, r0, 0
+ adds r1, 0x20
+ movs r3, 0x1
+ strb r3, [r1, 0x12]
+ strb r3, [r0, 0x12]
+ movs r4, 0
+ strb r4, [r1, 0xB]
+ strb r3, [r1, 0x11]
+_0804E00C:
+ ldr r5, [sp, 0x3C]
+ mov r10, r5
+ ldr r6, [sp, 0x14]
+ cmp r10, r6
+ bge _0804E018
+ b _0804DBEC
+_0804E018:
+ ldr r7, [sp, 0x38]
+ str r7, [sp, 0x20]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x10]
+ cmp r0, r1
+ bge _0804E026
+ b _0804DBDA
+_0804E026:
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E038: .4byte 0x0000fffc
+ thumb_func_end sub_804D8C8
+
+ thumb_func_start sub_804E03C
+sub_804E03C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0xC]
+ cmp r0, r1
+ blt _0804E058
+ b _0804E318
+_0804E058:
+ movs r2, 0
+ ldr r1, [sp, 0xC]
+ adds r1, 0x1
+ str r1, [sp, 0x28]
+ ldr r3, [sp, 0x8]
+ cmp r2, r3
+ blt _0804E068
+ b _0804E30C
+_0804E068:
+ ldr r4, [sp, 0xC]
+ lsls r4, 4
+ str r4, [sp, 0x14]
+ ldr r6, [sp, 0xC]
+ subs r0, r4, r6
+ lsls r0, 5
+ ldr r1, [sp]
+ adds r0, r1
+ str r0, [sp, 0x18]
+_0804E07A:
+ lsls r0, r2, 5
+ ldr r3, [sp, 0x18]
+ adds r4, r0, r3
+ ldrb r1, [r4, 0x8]
+ str r0, [sp, 0x34]
+ adds r2, 0x1
+ str r2, [sp, 0x2C]
+ cmp r1, 0
+ beq _0804E08E
+ b _0804E302
+_0804E08E:
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0
+ beq _0804E096
+ b _0804E302
+_0804E096:
+ ldrb r0, [r4, 0x12]
+ cmp r0, 0
+ beq _0804E09E
+ b _0804E302
+_0804E09E:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ bne _0804E0A6
+ b _0804E302
+_0804E0A6:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _0804E0AE
+ b _0804E302
+_0804E0AE:
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0804E0B6
+ b _0804E302
+_0804E0B6:
+ ldrb r0, [r4, 0x10]
+ cmp r0, 0
+ beq _0804E0BE
+ b _0804E302
+_0804E0BE:
+ ldrb r0, [r4, 0x1C]
+ cmp r0, 0
+ bne _0804E0C6
+ b _0804E302
+_0804E0C6:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r0, 0x3B
+ bgt _0804E0D2
+ b _0804E302
+_0804E0D2:
+ movs r6, 0x4
+ ldrsh r2, [r4, r6]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ subs r2, r0
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ movs r6, 0x2
+ ldrsh r1, [r4, r6]
+ subs r0, r1
+ adds r2, r0
+ str r2, [sp, 0x10]
+ adds r0, r2, 0
+ cmp r2, 0
+ bge _0804E0F2
+ adds r0, 0x3
+_0804E0F2:
+ asrs r0, 2
+ str r0, [sp, 0x10]
+ cmp r0, 0
+ bne _0804E0FE
+ movs r0, 0x1
+ str r0, [sp, 0x10]
+_0804E0FE:
+ movs r1, 0
+ ldr r2, [sp, 0x10]
+ cmp r1, r2
+ blt _0804E108
+ b _0804E302
+_0804E108:
+ ldr r3, [sp, 0x14]
+ ldr r4, [sp, 0xC]
+ subs r0, r3, r4
+ lsls r0, 5
+ ldr r6, [sp]
+ adds r0, r6
+ ldr r2, [sp, 0x34]
+ adds r0, r2, r0
+ str r0, [sp, 0x20]
+_0804E11A:
+ movs r4, 0
+ adds r1, 0x1
+ str r1, [sp, 0x30]
+_0804E120:
+ movs r0, 0x4
+ bl sub_8084100
+ str r0, [sp, 0x1C]
+ cmp r0, 0x1
+ beq _0804E14A
+ cmp r0, 0x1
+ ble _0804E138
+ cmp r0, 0x2
+ beq _0804E168
+ cmp r0, 0x3
+ beq _0804E182
+_0804E138:
+ ldr r3, [sp, 0x20]
+ movs r6, 0
+ ldrsh r7, [r3, r6]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ mov r8, r0
+ cmp r4, 0
+ bne _0804E19C
+ b _0804E15C
+_0804E14A:
+ ldr r2, [sp, 0x20]
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ subs r7, r0, 0x1
+ movs r0, 0x2
+ ldrsh r6, [r2, r0]
+ mov r8, r6
+ cmp r4, 0
+ beq _0804E162
+_0804E15C:
+ movs r3, 0
+ movs r2, 0x1
+ b _0804E1A0
+_0804E162:
+ movs r3, 0x1
+ negs r3, r3
+ b _0804E19E
+_0804E168:
+ ldr r1, [sp, 0x20]
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ subs r7, r0, 0x1
+ movs r3, 0x6
+ ldrsh r0, [r1, r3]
+ subs r0, 0x1
+ mov r8, r0
+ cmp r4, 0
+ beq _0804E194
+ movs r3, 0x1
+ negs r3, r3
+ b _0804E19E
+_0804E182:
+ ldr r6, [sp, 0x20]
+ movs r0, 0
+ ldrsh r7, [r6, r0]
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ subs r0, 0x1
+ mov r8, r0
+ cmp r4, 0
+ beq _0804E19C
+_0804E194:
+ movs r3, 0
+ movs r2, 0x1
+ negs r2, r2
+ b _0804E1A0
+_0804E19C:
+ movs r3, 0x1
+_0804E19E:
+ movs r2, 0
+_0804E1A0:
+ movs r6, 0
+ mov r9, r6
+ ldr r5, [sp, 0x34]
+ ldr r0, [sp, 0x14]
+ str r0, [sp, 0x40]
+ ldr r6, [sp, 0x18]
+ adds r1, r5, r6
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ mov r10, r0
+ adds r4, 0x1
+ str r4, [sp, 0x24]
+ cmp r7, r10
+ bge _0804E1BE
+ b _0804E2F0
+_0804E1BE:
+ movs r4, 0x4
+ ldrsh r0, [r1, r4]
+ cmp r7, r0
+ blt _0804E1C8
+ b _0804E2F0
+_0804E1C8:
+ ldr r6, [sp, 0x40]
+ ldr r1, [sp, 0xC]
+ subs r0, r6, r1
+ lsls r0, 5
+ ldr r4, [sp]
+ adds r0, r4
+ adds r4, r5, r0
+ movs r6, 0x2
+ ldrsh r0, [r4, r6]
+ cmp r8, r0
+ bge _0804E1E0
+ b _0804E2F0
+_0804E1E0:
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ cmp r8, r0
+ blt _0804E1EA
+ b _0804E2F0
+_0804E1EA:
+ adds r0, r7, 0
+ mov r1, r8
+ str r2, [sp, 0x38]
+ str r3, [sp, 0x3C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ ldr r2, [sp, 0x38]
+ ldr r3, [sp, 0x3C]
+ cmp r0, 0x1
+ bne _0804E2D0
+ movs r6, 0
+_0804E206:
+ ldr r1, _0804E228
+ lsls r0, r6, 2
+ adds r0, r1
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ adds r1, r7
+ mov r10, r1
+ movs r3, 0x2
+ ldrsh r0, [r0, r3]
+ add r0, r8
+ mov r9, r0
+ movs r3, 0
+ movs r5, 0x1
+ negs r5, r5
+_0804E222:
+ movs r4, 0x1
+ negs r4, r4
+ b _0804E22E
+ .align 2, 0
+_0804E228: .4byte gUnknown_80F4448
+_0804E22C:
+ adds r4, 0x1
+_0804E22E:
+ cmp r4, 0x1
+ bgt _0804E25A
+ mov r1, r10
+ adds r0, r1, r4
+ mov r2, r9
+ adds r1, r2, r5
+ str r3, [sp, 0x3C]
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ ldr r3, [sp, 0x3C]
+ cmp r0, 0x1
+ bne _0804E22C
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ bne _0804E256
+ movs r3, 0x1
+_0804E256:
+ cmp r3, 0
+ beq _0804E22C
+_0804E25A:
+ cmp r3, 0
+ bne _0804E26A
+ adds r5, 0x1
+ cmp r5, 0x1
+ ble _0804E222
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _0804E206
+_0804E26A:
+ cmp r6, 0x8
+ bne _0804E2F0
+ movs r6, 0
+ ldr r3, [sp, 0x1C]
+ lsls r1, r3, 3
+ ldr r0, _0804E2C4
+ adds r4, r1, r0
+_0804E278:
+ ldr r0, _0804E2C8
+ lsls r1, r6, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r0, r7, r0
+ add r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ movs r1, 0
+ cmp r0, 0x1
+ bne _0804E29C
+ movs r1, 0x1
+_0804E29C:
+ ldrb r0, [r4]
+ cmp r0, r1
+ bne _0804E2AA
+ adds r4, 0x2
+ adds r6, 0x2
+ cmp r6, 0x7
+ ble _0804E278
+_0804E2AA:
+ cmp r6, 0x8
+ bne _0804E2F0
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r4, _0804E2CC
+ adds r1, r4, 0
+ ands r2, r1
+ strh r2, [r0]
+ b _0804E2F0
+ .align 2, 0
+_0804E2C4: .4byte gUnknown_80F6DD5
+_0804E2C8: .4byte gUnknown_80F4448
+_0804E2CC: .4byte 0x0000fffc
+_0804E2D0:
+ adds r7, r3
+ add r8, r2
+ movs r6, 0x1
+ add r9, r6
+ mov r0, r9
+ cmp r0, 0x9
+ bgt _0804E2F0
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ cmp r7, r0
+ blt _0804E2F0
+ movs r6, 0x4
+ ldrsh r0, [r4, r6]
+ cmp r7, r0
+ bge _0804E2F0
+ b _0804E1C8
+_0804E2F0:
+ ldr r4, [sp, 0x24]
+ cmp r4, 0x1
+ bgt _0804E2F8
+ b _0804E120
+_0804E2F8:
+ ldr r1, [sp, 0x30]
+ ldr r0, [sp, 0x10]
+ cmp r1, r0
+ bge _0804E302
+ b _0804E11A
+_0804E302:
+ ldr r2, [sp, 0x2C]
+ ldr r1, [sp, 0x8]
+ cmp r2, r1
+ bge _0804E30C
+ b _0804E07A
+_0804E30C:
+ ldr r2, [sp, 0x28]
+ str r2, [sp, 0xC]
+ ldr r3, [sp, 0x4]
+ cmp r2, r3
+ bge _0804E318
+ b _0804E058
+_0804E318:
+ 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_804E03C
+
+ thumb_func_start sub_804E328
+sub_804E328:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ ldr r0, [sp, 0x28]
+ lsls r0, 24
+ mov r10, r5
+ mov r9, r4
+ ldr r1, [sp, 0x2C]
+ mov r8, r1
+ ldr r7, [sp, 0x30]
+ cmp r0, 0
+ bne _0804E350
+ b _0804E470
+_0804E350:
+ movs r6, 0
+_0804E352:
+ cmp r4, r7
+ beq _0804E3A8
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ ble _0804E360
+ b _0804E57E
+_0804E360:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E390
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E38C
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E39C
+ .align 2, 0
+_0804E38C: .4byte 0x0000fffc
+_0804E390:
+ cmp r5, r10
+ beq _0804E396
+ b _0804E57E
+_0804E396:
+ cmp r4, r9
+ beq _0804E39C
+ b _0804E57E
+_0804E39C:
+ cmp r4, r7
+ bge _0804E3A4
+ adds r4, 0x1
+ b _0804E352
+_0804E3A4:
+ subs r4, 0x1
+ b _0804E352
+_0804E3A8:
+ movs r6, 0
+ ldr r0, [sp]
+ cmp r5, r0
+ beq _0804E40A
+ movs r7, 0
+_0804E3B2:
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ ble _0804E3BC
+ b _0804E57E
+_0804E3BC:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E3EC
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E3E8
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E3F8
+ .align 2, 0
+_0804E3E8: .4byte 0x0000fffc
+_0804E3EC:
+ cmp r5, r10
+ beq _0804E3F2
+ b _0804E57E
+_0804E3F2:
+ cmp r4, r9
+ beq _0804E3F8
+ b _0804E57E
+_0804E3F8:
+ ldr r0, [sp]
+ cmp r5, r0
+ bge _0804E402
+ adds r5, 0x1
+ b _0804E404
+_0804E402:
+ subs r5, 0x1
+_0804E404:
+ ldr r1, [sp]
+ cmp r5, r1
+ bne _0804E3B2
+_0804E40A:
+ movs r6, 0
+ ldr r3, [sp, 0x4]
+ cmp r4, r3
+ bne _0804E414
+ b _0804E57E
+_0804E414:
+ movs r7, 0
+_0804E416:
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ ble _0804E420
+ b _0804E57E
+_0804E420:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E450
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E44C
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E45C
+ .align 2, 0
+_0804E44C: .4byte 0x0000fffc
+_0804E450:
+ cmp r5, r10
+ beq _0804E456
+ b _0804E57E
+_0804E456:
+ cmp r4, r9
+ beq _0804E45C
+ b _0804E57E
+_0804E45C:
+ ldr r0, [sp, 0x4]
+ cmp r4, r0
+ bge _0804E466
+ adds r4, 0x1
+ b _0804E468
+_0804E466:
+ subs r4, 0x1
+_0804E468:
+ ldr r1, [sp, 0x4]
+ cmp r4, r1
+ bne _0804E416
+ b _0804E57E
+_0804E470:
+ movs r6, 0
+ cmp r5, r8
+ beq _0804E4C6
+ movs r7, 0
+_0804E478:
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ ble _0804E482
+ b _0804E57E
+_0804E482:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E4B0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E4AC
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E4B8
+ .align 2, 0
+_0804E4AC: .4byte 0x0000fffc
+_0804E4B0:
+ cmp r5, r10
+ bne _0804E57E
+ cmp r4, r9
+ bne _0804E57E
+_0804E4B8:
+ cmp r5, r8
+ bge _0804E4C0
+ adds r5, 0x1
+ b _0804E4C2
+_0804E4C0:
+ subs r5, 0x1
+_0804E4C2:
+ cmp r5, r8
+ bne _0804E478
+_0804E4C6:
+ movs r6, 0
+ ldr r0, [sp, 0x4]
+ cmp r4, r0
+ beq _0804E522
+ movs r7, 0
+_0804E4D0:
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ bgt _0804E57E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E508
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E504
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E510
+ .align 2, 0
+_0804E504: .4byte 0x0000fffc
+_0804E508:
+ cmp r5, r10
+ bne _0804E57E
+ cmp r4, r9
+ bne _0804E57E
+_0804E510:
+ ldr r0, [sp, 0x4]
+ cmp r4, r0
+ bge _0804E51A
+ adds r4, 0x1
+ b _0804E51C
+_0804E51A:
+ subs r4, 0x1
+_0804E51C:
+ ldr r1, [sp, 0x4]
+ cmp r4, r1
+ bne _0804E4D0
+_0804E522:
+ movs r6, 0
+ ldr r3, [sp]
+ cmp r5, r3
+ beq _0804E57E
+ movs r7, 0
+_0804E52C:
+ adds r0, r6, 0
+ adds r6, 0x1
+ cmp r0, 0x37
+ bgt _0804E57E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804E564
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E560
+ adds r1, r3, 0
+ ands r2, r1
+ movs r1, 0x1
+ orrs r2, r1
+ strh r2, [r0]
+ b _0804E56C
+ .align 2, 0
+_0804E560: .4byte 0x0000fffc
+_0804E564:
+ cmp r5, r10
+ bne _0804E57E
+ cmp r4, r9
+ bne _0804E57E
+_0804E56C:
+ ldr r0, [sp]
+ cmp r5, r0
+ bge _0804E576
+ adds r5, 0x1
+ b _0804E578
+_0804E576:
+ subs r5, 0x1
+_0804E578:
+ ldr r1, [sp]
+ cmp r5, r1
+ bne _0804E52C
+_0804E57E:
+ 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_804E328
+
+ thumb_func_start sub_804E590
+sub_804E590:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x40
+ str r0, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r2, [sp, 0x14]
+ str r3, [sp, 0x18]
+ movs r0, 0
+ str r0, [sp, 0x1C]
+ cmp r0, r1
+ blt _0804E5AE
+ b _0804E8AA
+_0804E5AE:
+ movs r1, 0x1
+ mov r10, r1
+_0804E5B2:
+ movs r2, 0
+ str r2, [sp, 0x20]
+ ldr r3, [sp, 0x1C]
+ adds r3, 0x1
+ str r3, [sp, 0x2C]
+ ldr r4, [sp, 0x14]
+ cmp r2, r4
+ blt _0804E5C4
+ b _0804E89E
+_0804E5C4:
+ ldr r5, [sp, 0x1C]
+ lsls r5, 4
+ ldr r6, [sp, 0x1C]
+ subs r1, r5, r6
+ lsls r1, 5
+ ldr r2, [sp, 0xC]
+ movs r3, 0xF0
+ lsls r3, 1
+ adds r0, r2, r3
+ adds r0, r1
+ mov r8, r0
+ adds r6, r1, r2
+ ldr r4, _0804E6A4
+ adds r0, r2, r4
+ adds r7, r1, r0
+ adds r0, r2, 0
+ adds r0, 0x20
+ adds r0, r1
+ mov r9, r0
+ ldr r5, [sp, 0x60]
+ str r5, [sp, 0x34]
+ adds r0, r2, 0
+ subs r0, 0x20
+ adds r1, r0
+ str r1, [sp, 0x38]
+ movs r0, 0
+ str r0, [sp, 0x3C]
+ ldr r1, [sp, 0x1C]
+ lsls r0, r1, 2
+ ldr r2, [sp, 0x18]
+ adds r0, r2
+ str r0, [sp, 0x28]
+_0804E604:
+ ldr r3, [sp, 0x1C]
+ lsls r0, r3, 4
+ subs r0, r3
+ lsls r0, 5
+ ldr r4, [sp, 0xC]
+ adds r0, r4
+ ldr r5, [sp, 0x3C]
+ adds r4, r5, r0
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ beq _0804E61C
+ b _0804E874
+_0804E61C:
+ ldrb r0, [r4, 0x11]
+ cmp r0, 0
+ beq _0804E624
+ b _0804E874
+_0804E624:
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0804E62C
+ b _0804E874
+_0804E62C:
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ bne _0804E634
+ b _0804E848
+_0804E634:
+ ldrb r0, [r4, 0x9]
+ cmp r0, 0
+ beq _0804E63C
+ b _0804E848
+_0804E63C:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ str r0, [sp, 0x24]
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ adds r0, 0x1
+ movs r5, 0x6
+ ldrsh r1, [r4, r5]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r5, r0, 0
+ ldr r0, [sp, 0x20]
+ cmp r0, 0
+ ble _0804E6DC
+ subs r4, 0x20
+ ldrb r0, [r4, 0x8]
+ cmp r0, 0
+ bne _0804E6DC
+ ldrb r0, [r4, 0x12]
+ cmp r0, 0
+ bne _0804E6DC
+ ldrb r0, [r4, 0xB]
+ cmp r0, 0
+ beq _0804E6DC
+ ldrb r0, [r4, 0xA]
+ cmp r0, 0
+ beq _0804E6A8
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ adds r0, 0x1
+ movs r2, 0x4
+ ldrsh r1, [r4, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r3, 0x2
+ ldrsh r0, [r4, r3]
+ adds r0, 0x1
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ b _0804E6AC
+ .align 2, 0
+_0804E6A4: .4byte 0xfffffe20
+_0804E6A8:
+ movs r3, 0
+ ldrsh r5, [r4, r3]
+_0804E6AC:
+ movs r4, 0x2
+ ldrsh r1, [r6, r4]
+ ldr r0, [sp, 0x38]
+ movs r2, 0x6
+ ldrsh r3, [r0, r2]
+ subs r3, 0x1
+ mov r4, r10
+ str r4, [sp]
+ ldr r2, [sp, 0x28]
+ ldr r0, [r2]
+ str r0, [sp, 0x4]
+ ldr r4, [sp, 0x34]
+ ldr r0, [r4]
+ str r0, [sp, 0x8]
+ ldr r0, [sp, 0x24]
+ adds r2, r5, 0
+ bl sub_804E328
+ mov r5, r10
+ strb r5, [r6, 0xB]
+ strb r5, [r6, 0x13]
+ ldr r0, [sp, 0x38]
+ strb r5, [r0, 0x14]
+ b _0804E874
+_0804E6DC:
+ ldr r0, [sp, 0x14]
+ subs r0, 0x1
+ ldr r1, [sp, 0x20]
+ cmp r1, r0
+ bge _0804E758
+ mov r2, r9
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804E758
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ bne _0804E758
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0804E758
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804E724
+ movs r3, 0x20
+ ldrsh r0, [r6, r3]
+ adds r0, 0x1
+ movs r4, 0x24
+ ldrsh r1, [r6, r4]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r1, 0x22
+ ldrsh r0, [r6, r1]
+ adds r0, 0x1
+ movs r2, 0x26
+ ldrsh r1, [r6, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ b _0804E728
+_0804E724:
+ movs r3, 0x20
+ ldrsh r5, [r6, r3]
+_0804E728:
+ movs r4, 0x6
+ ldrsh r1, [r6, r4]
+ subs r1, 0x1
+ movs r0, 0x22
+ ldrsh r3, [r6, r0]
+ mov r2, r10
+ str r2, [sp]
+ ldr r4, [sp, 0x28]
+ ldr r0, [r4]
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0x34]
+ ldr r0, [r2, 0x4]
+ subs r0, 0x1
+ str r0, [sp, 0x8]
+ ldr r0, [sp, 0x24]
+ adds r2, r5, 0
+ bl sub_804E328
+ mov r3, r10
+ strb r3, [r6, 0xB]
+ strb r3, [r6, 0x14]
+ mov r4, r9
+ strb r3, [r4, 0x13]
+ b _0804E874
+_0804E758:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ ble _0804E7C8
+ ldrb r0, [r7, 0x8]
+ cmp r0, 0
+ bne _0804E7C8
+ ldrb r0, [r7, 0x12]
+ cmp r0, 0
+ bne _0804E7C8
+ ldrb r0, [r7, 0xB]
+ cmp r0, 0
+ beq _0804E7C8
+ ldrb r0, [r7, 0xA]
+ cmp r0, 0
+ beq _0804E79A
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ adds r0, 0x1
+ movs r2, 0x4
+ ldrsh r1, [r7, r2]
+ subs r1, 0x1
+ bl sub_808411C
+ movs r3, 0x2
+ ldrsh r0, [r7, r3]
+ adds r0, 0x1
+ movs r4, 0x6
+ ldrsh r1, [r7, r4]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r3, r0, 0
+ b _0804E79E
+_0804E79A:
+ movs r0, 0x2
+ ldrsh r3, [r7, r0]
+_0804E79E:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r4, 0
+ ldrsh r2, [r7, r4]
+ subs r2, 0x1
+ movs r1, 0
+ str r1, [sp]
+ ldr r4, [sp, 0x28]
+ ldr r1, [r4]
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x34]
+ ldr r1, [r4]
+ str r1, [sp, 0x8]
+ adds r1, r5, 0
+ bl sub_804E328
+ mov r5, r10
+ strb r5, [r6, 0xB]
+ strb r5, [r6, 0x15]
+ strb r5, [r7, 0x16]
+ b _0804E874
+_0804E7C8:
+ ldr r0, [sp, 0x10]
+ subs r0, 0x1
+ ldr r1, [sp, 0x1C]
+ cmp r1, r0
+ bge _0804E874
+ mov r2, r8
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804E874
+ ldrb r0, [r2, 0x12]
+ cmp r0, 0
+ bne _0804E874
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0804E874
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804E812
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ adds r0, 0x1
+ movs r4, 0x4
+ ldrsh r1, [r2, r4]
+ subs r1, 0x1
+ bl sub_808411C
+ mov r1, r8
+ movs r2, 0x2
+ ldrsh r0, [r1, r2]
+ adds r0, 0x1
+ movs r3, 0x6
+ ldrsh r1, [r1, r3]
+ subs r1, 0x1
+ bl sub_808411C
+ adds r3, r0, 0
+ b _0804E818
+_0804E812:
+ mov r4, r8
+ movs r0, 0x2
+ ldrsh r3, [r4, r0]
+_0804E818:
+ movs r1, 0x4
+ ldrsh r0, [r6, r1]
+ subs r0, 0x1
+ mov r4, r8
+ movs r1, 0
+ ldrsh r2, [r4, r1]
+ movs r1, 0
+ str r1, [sp]
+ ldr r4, [sp, 0x28]
+ ldr r1, [r4, 0x4]
+ subs r1, 0x1
+ str r1, [sp, 0x4]
+ ldr r4, [sp, 0x34]
+ ldr r1, [r4]
+ str r1, [sp, 0x8]
+ adds r1, r5, 0
+ bl sub_804E328
+ mov r5, r10
+ strb r5, [r6, 0xB]
+ strb r5, [r6, 0x16]
+ mov r0, r8
+ strb r5, [r0, 0x15]
+ b _0804E874
+_0804E848:
+ movs r1, 0
+ ldrsh r0, [r6, r1]
+ movs r2, 0x2
+ ldrsh r1, [r6, r2]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, _0804E99C
+ adds r2, r3, 0
+ ands r1, r2
+ strh r1, [r0]
+ ldrh r1, [r0, 0x4]
+ ldr r4, _0804E9A0
+ adds r2, r4, 0
+ ands r1, r2
+ ldr r5, _0804E9A4
+ adds r2, r5, 0
+ ands r1, r2
+ subs r3, 0x1
+ adds r2, r3, 0
+ ands r1, r2
+ strh r1, [r0, 0x4]
+_0804E874:
+ movs r4, 0x20
+ add r8, r4
+ adds r6, 0x20
+ adds r7, 0x20
+ add r9, r4
+ ldr r5, [sp, 0x34]
+ adds r5, 0x4
+ str r5, [sp, 0x34]
+ ldr r0, [sp, 0x38]
+ adds r0, 0x20
+ str r0, [sp, 0x38]
+ ldr r1, [sp, 0x3C]
+ adds r1, 0x20
+ str r1, [sp, 0x3C]
+ ldr r2, [sp, 0x20]
+ adds r2, 0x1
+ str r2, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ cmp r2, r3
+ bge _0804E89E
+ b _0804E604
+_0804E89E:
+ ldr r4, [sp, 0x2C]
+ str r4, [sp, 0x1C]
+ ldr r5, [sp, 0x10]
+ cmp r4, r5
+ bge _0804E8AA
+ b _0804E5B2
+_0804E8AA:
+ movs r6, 0
+ str r6, [sp, 0x1C]
+ ldr r0, [sp, 0x10]
+ cmp r6, r0
+ bge _0804E98A
+_0804E8B4:
+ movs r1, 0
+ str r1, [sp, 0x20]
+ ldr r2, [sp, 0x1C]
+ adds r2, 0x1
+ str r2, [sp, 0x2C]
+ ldr r3, [sp, 0x14]
+ cmp r1, r3
+ bge _0804E980
+ ldr r4, [sp, 0x1C]
+ lsls r4, 4
+ mov r9, r4
+_0804E8CA:
+ ldr r5, [sp, 0x20]
+ lsls r2, r5, 5
+ ldr r6, [sp, 0x1C]
+ lsls r3, r6, 4
+ subs r0, r3, r6
+ lsls r0, 5
+ ldr r1, [sp, 0xC]
+ adds r4, r0, r1
+ adds r1, r2, r4
+ ldrb r0, [r1, 0x8]
+ mov r8, r2
+ adds r5, 0x1
+ str r5, [sp, 0x30]
+ cmp r0, 0
+ bne _0804E976
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ bne _0804E976
+ ldrb r0, [r1, 0xB]
+ cmp r0, 0
+ bne _0804E976
+ ldrb r0, [r1, 0xF]
+ cmp r0, 0
+ bne _0804E976
+ movs r6, 0
+ ldrsh r5, [r1, r6]
+ movs r6, 0x4
+ ldrsh r0, [r1, r6]
+ cmp r5, r0
+ bge _0804E976
+ mov r10, r4
+_0804E908:
+ ldr r1, [sp, 0x1C]
+ subs r0, r3, r1
+ lsls r0, 5
+ ldr r3, [sp, 0xC]
+ adds r0, r3
+ adds r0, r2, r0
+ movs r6, 0x2
+ ldrsh r4, [r0, r6]
+ movs r1, 0x6
+ ldrsh r0, [r0, r1]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _0804E95C
+ mov r6, r8
+ add r6, r10
+_0804E926:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ ldr r3, _0804E99C
+ adds r1, r3, 0
+ ands r2, r1
+ strh r2, [r0]
+ ldrh r2, [r0, 0x4]
+ adds r3, 0x1
+ adds r1, r3, 0
+ ands r2, r1
+ adds r3, 0x1
+ adds r1, r3, 0
+ ands r2, r1
+ subs r3, 0x3
+ adds r1, r3, 0
+ ands r2, r1
+ strh r2, [r0, 0x4]
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r4, r0
+ blt _0804E926
+_0804E95C:
+ adds r5, r7, 0
+ mov r2, r8
+ mov r3, r9
+ ldr r4, [sp, 0x1C]
+ subs r0, r3, r4
+ lsls r0, 5
+ ldr r6, [sp, 0xC]
+ adds r0, r6
+ adds r0, r2, r0
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _0804E908
+_0804E976:
+ ldr r2, [sp, 0x30]
+ str r2, [sp, 0x20]
+ ldr r3, [sp, 0x14]
+ cmp r2, r3
+ blt _0804E8CA
+_0804E980:
+ ldr r4, [sp, 0x2C]
+ str r4, [sp, 0x1C]
+ ldr r5, [sp, 0x10]
+ cmp r4, r5
+ blt _0804E8B4
+_0804E98A:
+ add sp, 0x40
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E99C: .4byte 0x0000fffc
+_0804E9A0: .4byte 0x0000fffe
+_0804E9A4: .4byte 0x0000fffd
+ thumb_func_end sub_804E590
+
+ thumb_func_start sub_804E9A8
+sub_804E9A8:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ lsls r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ ldrh r0, [r4]
+ ldr r5, _0804E9D8
+ adds r3, r5, 0
+ ands r3, r0
+ strh r3, [r4]
+ cmp r1, 0
+ beq _0804E9D0
+ ldrb r0, [r4, 0x9]
+ cmp r0, r2
+ bne _0804E9D0
+ adds r0, r3, 0
+ ands r0, r5
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r4]
+_0804E9D0:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804E9D8: .4byte 0x0000fffc
+ thumb_func_end sub_804E9A8
+
+ thumb_func_start sub_804E9DC
+sub_804E9DC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ movs r5, 0
+ movs r0, 0x3
+ mov r8, r0
+ movs r7, 0x8
+ ldr r3, _0804EAF0
+ mov r9, r3
+_0804E9F2:
+ movs r4, 0
+ adds r6, r5, 0x1
+ mov r10, r6
+_0804E9F8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ adds r6, r4, 0x1
+ cmp r0, 0x1
+ beq _0804EA0E
+ b _0804EB0E
+_0804EA0E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0xFF
+ bne _0804EAF4
+ cmp r5, 0
+ ble _0804EA4E
+ subs r0, r5, 0x1
+ adds r1, r4, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _0804EA4E
+ ldrh r0, [r2]
+ adds r1, r0, 0
+ orrs r1, r7
+ movs r3, 0
+ strh r1, [r2]
+ adds r0, r1, 0
+ mov r6, r8
+ ands r0, r6
+ cmp r0, 0x2
+ bne _0804EA4E
+ mov r0, r9
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strh r1, [r2]
+_0804EA4E:
+ cmp r4, 0
+ ble _0804EA82
+ subs r1, r4, 0x1
+ adds r0, r5, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _0804EA82
+ ldrh r0, [r2]
+ adds r1, r0, 0
+ orrs r1, r7
+ movs r3, 0
+ orrs r1, r7
+ strh r1, [r2]
+ adds r0, r1, 0
+ mov r6, r8
+ ands r0, r6
+ cmp r0, 0x2
+ bne _0804EA82
+ mov r0, r9
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strh r1, [r2]
+_0804EA82:
+ adds r6, r4, 0x1
+ cmp r4, 0x1E
+ bgt _0804EABA
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _0804EABA
+ ldrh r0, [r2]
+ adds r1, r0, 0
+ orrs r1, r7
+ movs r3, 0
+ mov r12, r3
+ orrs r1, r7
+ strh r1, [r2]
+ adds r0, r1, 0
+ mov r3, r8
+ ands r0, r3
+ cmp r0, 0x2
+ bne _0804EABA
+ mov r0, r9
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strh r1, [r2]
+_0804EABA:
+ cmp r5, 0x36
+ bgt _0804EB0E
+ mov r0, r10
+ adds r1, r4, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _0804EB0E
+ ldrh r0, [r2]
+ adds r1, r0, 0
+ orrs r1, r7
+ movs r3, 0
+ orrs r1, r7
+ strh r1, [r2]
+ adds r0, r1, 0
+ mov r4, r8
+ ands r0, r4
+ cmp r0, 0x2
+ bne _0804EB0E
+ mov r0, r9
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strh r1, [r2]
+ b _0804EB0E
+ .align 2, 0
+_0804EAF0: .4byte 0x0000fffc
+_0804EAF4:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0xFE
+ bne _0804EB0E
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+_0804EB0E:
+ adds r4, r6, 0
+ cmp r4, 0x1F
+ bgt _0804EB16
+ b _0804E9F8
+_0804EB16:
+ mov r5, r10
+ cmp r5, 0x37
+ bgt _0804EB1E
+ b _0804E9F2
+_0804EB1E:
+ bl sub_804EB30
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804E9DC
+
+ thumb_func_start sub_804EB30
+sub_804EB30:
+ push {r4-r7,lr}
+ ldr r0, _0804EBB4
+ ldr r6, [r0]
+ movs r2, 0
+ movs r1, 0x1F
+ ldr r3, _0804EBB8
+ adds r0, r6, r3
+_0804EB3E:
+ strh r2, [r0]
+ subs r0, 0x2
+ subs r1, 0x1
+ cmp r1, 0
+ bge _0804EB3E
+ movs r5, 0
+_0804EB4A:
+ movs r4, 0
+ adds r7, r5, 0x1
+_0804EB4E:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _0804EBA2
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrb r3, [r0, 0x9]
+ cmp r3, 0x1F
+ bhi _0804EBA2
+ lsls r0, r3, 1
+ ldr r2, _0804EBBC
+ adds r1, r6, r2
+ adds r2, r1, r0
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ cmp r0, 0x1F
+ bgt _0804EBA2
+ lsls r0, 2
+ lsls r1, r3, 7
+ adds r0, r1
+ adds r0, r6, r0
+ ldr r3, _0804EBC0
+ adds r0, r3
+ strh r5, [r0]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ lsls r0, 2
+ adds r0, r1
+ adds r0, r6, r0
+ ldr r1, _0804EBC4
+ adds r0, r1
+ strh r4, [r0]
+ ldrh r0, [r2]
+ adds r0, 0x1
+ strh r0, [r2]
+_0804EBA2:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0804EB4E
+ adds r5, r7, 0
+ cmp r5, 0x37
+ ble _0804EB4A
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804EBB4: .4byte gUnknown_203B418
+_0804EBB8: .4byte 0x00010882
+_0804EBBC: .4byte 0x00010844
+_0804EBC0: .4byte 0x00010884
+_0804EBC4: .4byte 0x00010886
+ thumb_func_end sub_804EB30
+
+ thumb_func_start sub_804EBC8
+sub_804EBC8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x58
+ str r0, [sp, 0x40]
+ str r1, [sp, 0x44]
+ mov r10, r2
+ adds r4, r3, 0
+ ldr r0, _0804EE90
+ ldr r0, [r0]
+ mov r8, r0
+ ldr r1, _0804EE94
+ ldr r0, _0804EE98
+ strh r0, [r1]
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1, 0x2]
+ ldr r0, _0804EE9C
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804EBF8
+ b _0804EED4
+_0804EBF8:
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _0804EC06
+ b _0804EED4
+_0804EC06:
+ cmp r4, 0
+ bne _0804EC0C
+ b _0804EED4
+_0804EC0C:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r4, r0
+ bgt _0804EC18
+ b _0804EED4
+_0804EC18:
+ movs r5, 0
+ add r7, sp, 0x20
+ adds r1, r7, 0
+ mov r0, sp
+_0804EC20:
+ strh r5, [r0]
+ strh r5, [r1]
+ adds r1, 0x2
+ adds r0, 0x2
+ adds r5, 0x1
+ cmp r5, 0xE
+ ble _0804EC20
+ movs r5, 0xC7
+_0804EC30:
+ movs r0, 0xF
+ bl sub_8084100
+ adds r4, r0, 0
+ movs r0, 0xF
+ bl sub_8084100
+ lsls r4, 1
+ mov r1, sp
+ adds r2, r1, r4
+ movs r4, 0
+ ldrsh r3, [r2, r4]
+ lsls r0, 1
+ adds r1, r0
+ ldrh r0, [r1]
+ strh r0, [r2]
+ strh r3, [r1]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804EC30
+ adds r6, r7, 0
+ movs r5, 0xC7
+_0804EC5C:
+ movs r0, 0xF
+ bl sub_8084100
+ adds r4, r0, 0
+ movs r0, 0xF
+ bl sub_8084100
+ lsls r4, 1
+ adds r4, r6, r4
+ movs r1, 0
+ ldrsh r2, [r4, r1]
+ lsls r0, 1
+ adds r0, r6, r0
+ ldrh r1, [r0]
+ strh r1, [r4]
+ strh r2, [r0]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804EC5C
+ movs r5, 0
+_0804EC84:
+ lsls r0, r5, 1
+ add r0, sp
+ movs r3, 0
+ ldrsh r2, [r0, r3]
+ mov r9, r2
+ ldr r4, [sp, 0x44]
+ cmp r9, r4
+ blt _0804EC96
+ b _0804EECC
+_0804EC96:
+ movs r4, 0
+_0804EC98:
+ lsls r0, r4, 1
+ adds r0, r7, r0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ cmp r1, r10
+ blt _0804ECA6
+ b _0804EEC4
+_0804ECA6:
+ lsls r1, 5
+ mov r3, r9
+ lsls r2, r3, 4
+ subs r0, r2, r3
+ lsls r0, 5
+ ldr r3, [sp, 0x40]
+ adds r0, r3
+ adds r3, r1, r0
+ ldrb r0, [r3, 0x8]
+ str r1, [sp, 0x4C]
+ str r2, [sp, 0x48]
+ cmp r0, 0
+ beq _0804ECC2
+ b _0804EEC4
+_0804ECC2:
+ ldrb r0, [r3, 0x11]
+ cmp r0, 0
+ beq _0804ECCA
+ b _0804EEC4
+_0804ECCA:
+ ldrb r0, [r3, 0x12]
+ cmp r0, 0
+ beq _0804ECD2
+ b _0804EEC4
+_0804ECD2:
+ ldrb r0, [r3, 0xB]
+ cmp r0, 0
+ bne _0804ECDA
+ b _0804EEC4
+_0804ECDA:
+ ldrb r0, [r3, 0xA]
+ cmp r0, 0
+ bne _0804ECE2
+ b _0804EEC4
+_0804ECE2:
+ ldrb r0, [r3, 0x9]
+ cmp r0, 0
+ beq _0804ECEA
+ b _0804EEC4
+_0804ECEA:
+ ldrb r0, [r3, 0x10]
+ cmp r0, 0
+ beq _0804ECF2
+ b _0804EEC4
+_0804ECF2:
+ ldrb r0, [r3, 0x1D]
+ cmp r0, 0
+ beq _0804ECFA
+ b _0804EEC4
+_0804ECFA:
+ movs r0, 0x4
+ ldrsh r1, [r3, r0]
+ movs r2, 0
+ ldrsh r0, [r3, r2]
+ subs r1, r0
+ cmp r1, 0
+ bge _0804ED0A
+ negs r1, r1
+_0804ED0A:
+ cmp r1, 0x4
+ bgt _0804ED10
+ b _0804EEC4
+_0804ED10:
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ subs r1, r0
+ cmp r1, 0
+ bge _0804ED20
+ negs r1, r1
+_0804ED20:
+ cmp r1, 0x3
+ bgt _0804ED26
+ b _0804EEC4
+_0804ED26:
+ ldr r1, _0804EEA0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r3, 0xC]
+ ldr r2, _0804EEA4
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ adds r0, 0x1
+ str r0, [r2]
+ movs r7, 0x4
+ ldrsh r0, [r3, r7]
+ subs r0, 0x1
+ str r0, [r2, 0x8]
+ movs r0, 0x2
+ ldrsh r1, [r3, r0]
+ adds r1, 0x1
+ str r1, [r2, 0x4]
+ movs r4, 0x6
+ ldrsh r3, [r3, r4]
+ subs r0, r3, 0x1
+ str r0, [r2, 0xC]
+ subs r0, r1
+ mov r10, r2
+ cmp r0, 0x2
+ bgt _0804ED5C
+ str r3, [r2, 0xC]
+_0804ED5C:
+ ldr r0, _0804EEA8
+ add r0, r8
+ ldr r1, _0804EEAC
+ str r1, [r0]
+ ldr r0, _0804EEB0
+ add r0, r8
+ str r1, [r0]
+ ldr r0, _0804EEB4
+ add r0, r8
+ ldr r1, _0804EEB8
+ str r1, [r0]
+ ldr r0, _0804EEBC
+ add r0, r8
+ str r1, [r0]
+ mov r7, r10
+ ldr r5, [r7]
+ ldr r0, [r7, 0x8]
+ cmp r5, r0
+ bge _0804EDFA
+ mov r3, r10
+_0804ED84:
+ ldr r4, [r3, 0x4]
+ ldr r0, [r3, 0xC]
+ adds r1, r5, 0x1
+ str r1, [sp, 0x54]
+ cmp r4, r0
+ bge _0804EDF0
+ ldr r6, _0804EEA8
+ add r6, r8
+ ldr r2, _0804EEA4
+ mov r10, r2
+_0804ED98:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x50]
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x20
+ orrs r1, r2
+ strh r1, [r0]
+ ldrh r2, [r0, 0x4]
+ ldr r7, _0804EEC0
+ adds r1, r7, 0
+ ands r2, r1
+ adds r7, 0x7
+ adds r1, r7, 0
+ ands r2, r1
+ strh r2, [r0, 0x4]
+ ldr r0, [r6]
+ ldr r3, [sp, 0x50]
+ cmp r0, r5
+ ble _0804EDC4
+ str r5, [r6]
+_0804EDC4:
+ ldr r1, _0804EEB0
+ add r1, r8
+ ldr r0, [r1]
+ cmp r0, r4
+ ble _0804EDD0
+ str r4, [r1]
+_0804EDD0:
+ ldr r1, _0804EEB4
+ add r1, r8
+ ldr r0, [r1]
+ cmp r0, r5
+ bge _0804EDDC
+ str r5, [r1]
+_0804EDDC:
+ ldr r1, _0804EEBC
+ add r1, r8
+ ldr r0, [r1]
+ cmp r0, r4
+ bge _0804EDE8
+ str r4, [r1]
+_0804EDE8:
+ adds r4, 0x1
+ ldr r0, [r3, 0xC]
+ cmp r4, r0
+ blt _0804ED98
+_0804EDF0:
+ ldr r5, [sp, 0x54]
+ mov r1, r10
+ ldr r0, [r1, 0x8]
+ cmp r5, r0
+ blt _0804ED84
+_0804EDFA:
+ ldr r3, [sp, 0x4C]
+ ldr r2, [sp, 0x48]
+ mov r4, r9
+ subs r0, r2, r4
+ lsls r0, 5
+ ldr r7, [sp, 0x40]
+ adds r1, r0, r7
+ adds r0, r3, r1
+ movs r4, 0
+ ldrsh r5, [r0, r4]
+ movs r7, 0x4
+ ldrsh r0, [r0, r7]
+ cmp r5, r0
+ bge _0804EE6C
+ mov r8, r1
+_0804EE18:
+ mov r1, r9
+ subs r0, r2, r1
+ lsls r0, 5
+ ldr r2, [sp, 0x40]
+ adds r0, r2
+ adds r0, r3, r0
+ movs r3, 0x2
+ ldrsh r4, [r0, r3]
+ movs r7, 0x6
+ ldrsh r0, [r0, r7]
+ adds r1, r5, 0x1
+ str r1, [sp, 0x54]
+ cmp r4, r0
+ bge _0804EE52
+ ldr r6, [sp, 0x4C]
+ add r6, r8
+_0804EE38:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x10
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x1
+ movs r2, 0x6
+ ldrsh r0, [r6, r2]
+ cmp r4, r0
+ blt _0804EE38
+_0804EE52:
+ ldr r5, [sp, 0x54]
+ ldr r3, [sp, 0x4C]
+ ldr r2, [sp, 0x48]
+ mov r4, r9
+ subs r0, r2, r4
+ lsls r0, 5
+ ldr r7, [sp, 0x40]
+ adds r0, r7
+ adds r0, r3, r0
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ blt _0804EE18
+_0804EE6C:
+ ldr r2, _0804EEA4
+ ldr r0, [r2]
+ ldr r1, [r2, 0x8]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r5, r0, 1
+ ldr r0, [r2, 0x4]
+ ldr r1, [r2, 0xC]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r4, r0, 1
+ ldr r0, _0804EE94
+ strh r5, [r0]
+ strh r4, [r0, 0x2]
+ b _0804EED4
+ .align 2, 0
+_0804EE90: .4byte gUnknown_203B418
+_0804EE94: .4byte gUnknown_202F1D8
+_0804EE98: .4byte 0x0000ffff
+_0804EE9C: .4byte gUnknown_202F1AB
+_0804EEA0: .4byte gUnknown_202F1AA
+_0804EEA4: .4byte gUnknown_202F1B8
+_0804EEA8: .4byte 0x0000e240
+_0804EEAC: .4byte 0x0000270f
+_0804EEB0: .4byte 0x0000e244
+_0804EEB4: .4byte 0x0000e248
+_0804EEB8: .4byte 0xffffd8f1
+_0804EEBC: .4byte 0x0000e24c
+_0804EEC0: .4byte 0x0000fff7
+_0804EEC4:
+ adds r4, 0x1
+ cmp r4, 0xE
+ bgt _0804EECC
+ b _0804EC98
+_0804EECC:
+ adds r5, 0x1
+ cmp r5, 0xE
+ bgt _0804EED4
+ b _0804EC84
+_0804EED4:
+ add sp, 0x58
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804EBC8
+
+ thumb_func_start sub_804EEE4
+sub_804EEE4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x108
+ str r0, [sp, 0x100]
+ mov r8, r1
+ adds r7, r2, 0
+ adds r4, r3, 0
+ ldr r5, _0804F094
+ ldr r0, [r5]
+ str r0, [sp, 0x104]
+ cmp r4, 0
+ bne _0804EF04
+ b _0804F0C0
+_0804EF04:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r4, r0
+ bgt _0804EF10
+ b _0804F0C0
+_0804EF10:
+ ldr r0, _0804F098
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804EF1A
+ b _0804F0C0
+_0804EF1A:
+ ldr r0, [r5]
+ movs r1, 0xD1
+ lsls r1, 3
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0
+ beq _0804EF2C
+ b _0804F0C0
+_0804EF2C:
+ bl sub_8043D10
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804EF38
+ b _0804F0C0
+_0804EF38:
+ movs r6, 0
+ movs r1, 0
+ cmp r1, r8
+ bge _0804EF94
+_0804EF40:
+ adds r2, r1, 0x1
+ cmp r7, 0
+ ble _0804EF8E
+ lsls r0, r1, 4
+ subs r0, r1
+ lsls r0, 5
+ ldr r1, [sp, 0x100]
+ adds r1, 0x8
+ adds r1, r0, r1
+ adds r3, r7, 0
+_0804EF54:
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0804EF86
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ bne _0804EF86
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ beq _0804EF86
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _0804EF86
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _0804EF86
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ bne _0804EF86
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0
+ bne _0804EF86
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ bne _0804EF86
+ adds r6, 0x1
+_0804EF86:
+ adds r1, 0x20
+ subs r3, 0x1
+ cmp r3, 0
+ bne _0804EF54
+_0804EF8E:
+ adds r1, r2, 0
+ cmp r1, r8
+ blt _0804EF40
+_0804EF94:
+ cmp r6, 0
+ bne _0804EF9A
+ b _0804F0C0
+_0804EF9A:
+ movs r1, 0
+ mov r0, sp
+ adds r0, 0xFF
+_0804EFA0:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _0804EFA0
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r5, 0x3F
+_0804EFB0:
+ adds r0, r6, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl sub_8084100
+ mov r3, sp
+ adds r2, r3, r4
+ ldrb r3, [r2]
+ mov r4, sp
+ adds r1, r4, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804EFB0
+ movs r5, 0
+ movs r1, 0
+ cmp r1, r8
+ bge _0804F0C0
+ ldr r6, [sp, 0x100]
+ mov r9, r6
+ movs r4, 0
+_0804EFE2:
+ movs r3, 0
+ cmp r3, r7
+ bge _0804F0B2
+ mov r10, r3
+ lsls r0, r4, 5
+ ldr r6, [sp, 0x100]
+ adds r2, r0, r6
+_0804EFF0:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804F0A6
+ ldrb r0, [r2, 0x11]
+ cmp r0, 0
+ bne _0804F0A6
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0804F0A6
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804F0A6
+ ldrb r0, [r2, 0xC]
+ cmp r0, 0
+ bne _0804F0A6
+ ldrb r0, [r2, 0xF]
+ cmp r0, 0
+ bne _0804F0A6
+ ldrb r0, [r2, 0x10]
+ cmp r0, 0
+ bne _0804F0A6
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _0804F0A6
+ mov r6, sp
+ adds r0, r6, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804F0A4
+ ldr r1, _0804F09C
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r2, 0xE]
+ movs r0, 0
+ ldrsh r5, [r2, r0]
+ movs r1, 0x4
+ ldrsh r0, [r2, r1]
+ cmp r5, r0
+ bge _0804F0C0
+ mov r2, r10
+ add r2, r9
+ mov r8, r2
+_0804F046:
+ mov r1, r10
+ add r1, r9
+ movs r3, 0x2
+ ldrsh r4, [r1, r3]
+ movs r6, 0x6
+ ldrsh r0, [r1, r6]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _0804F086
+ adds r6, r1, 0
+_0804F05A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x40
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrb r1, [r0, 0x9]
+ ldr r2, [sp, 0x104]
+ ldr r3, _0804F0A0
+ adds r0, r2, r3
+ strb r1, [r0]
+ adds r4, 0x1
+ movs r1, 0x6
+ ldrsh r0, [r6, r1]
+ cmp r4, r0
+ blt _0804F05A
+_0804F086:
+ adds r5, r7, 0
+ mov r2, r8
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ cmp r5, r0
+ blt _0804F046
+ b _0804F0C0
+ .align 2, 0
+_0804F094: .4byte gUnknown_203B418
+_0804F098: .4byte gUnknown_202F1AA
+_0804F09C: .4byte gUnknown_202F1AB
+_0804F0A0: .4byte 0x00003a0c
+_0804F0A4:
+ adds r5, 0x1
+_0804F0A6:
+ movs r6, 0x20
+ add r10, r6
+ adds r2, 0x20
+ adds r3, 0x1
+ cmp r3, r7
+ blt _0804EFF0
+_0804F0B2:
+ movs r0, 0xF0
+ lsls r0, 1
+ add r9, r0
+ adds r4, 0xF
+ adds r1, 0x1
+ cmp r1, r8
+ blt _0804EFE2
+_0804F0C0:
+ add sp, 0x108
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804EEE4
+
+ thumb_func_start sub_804F0D0
+sub_804F0D0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x104
+ str r0, [sp, 0x100]
+ mov r10, r1
+ mov r9, r2
+ adds r4, r3, 0
+ ldr r0, _0804F244
+ ldr r5, [r0]
+ cmp r4, 0
+ bne _0804F0EE
+ b _0804F266
+_0804F0EE:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r4, r0
+ bgt _0804F0FA
+ b _0804F266
+_0804F0FA:
+ ldr r1, _0804F248
+ adds r0, r5, r1
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r0, 0
+ blt _0804F108
+ b _0804F266
+_0804F108:
+ movs r5, 0
+ movs r6, 0
+ cmp r6, r10
+ bge _0804F184
+_0804F110:
+ adds r7, r6, 0x1
+ mov r4, r9
+ cmp r4, 0
+ ble _0804F17E
+ lsls r0, r6, 4
+ subs r0, r6
+ lsls r0, 5
+ ldr r6, [sp, 0x100]
+ adds r2, r0, r6
+_0804F122:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804F176
+ ldrb r0, [r2, 0x11]
+ cmp r0, 0
+ bne _0804F176
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0804F176
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804F176
+ ldrb r0, [r2, 0xC]
+ cmp r0, 0
+ bne _0804F176
+ ldrb r0, [r2, 0xF]
+ cmp r0, 0
+ bne _0804F176
+ ldrb r0, [r2, 0xE]
+ cmp r0, 0
+ bne _0804F176
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _0804F176
+ movs r1, 0x4
+ ldrsh r0, [r2, r1]
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0804F176
+ movs r6, 0x6
+ ldrsh r0, [r2, r6]
+ movs r6, 0x2
+ ldrsh r1, [r2, r6]
+ subs r0, r1
+ ands r0, r3
+ cmp r0, 0
+ beq _0804F176
+ adds r5, 0x1
+_0804F176:
+ adds r2, 0x20
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0804F122
+_0804F17E:
+ adds r6, r7, 0
+ cmp r6, r10
+ blt _0804F110
+_0804F184:
+ cmp r5, 0
+ beq _0804F266
+ movs r1, 0
+ mov r0, sp
+ adds r0, 0xFF
+_0804F18E:
+ strb r1, [r0]
+ subs r0, 0x1
+ cmp r0, sp
+ bge _0804F18E
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r7, 0x3F
+ mov r8, r7
+_0804F1A0:
+ adds r0, r5, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_8084100
+ mov r1, sp
+ adds r2, r1, r4
+ ldrb r3, [r2]
+ adds r1, r0
+ ldrb r0, [r1]
+ strb r0, [r2]
+ strb r3, [r1]
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r4, r8
+ cmp r4, 0
+ bge _0804F1A0
+ movs r6, 0
+ mov r8, r6
+ cmp r6, r10
+ bge _0804F266
+ ldr r7, [sp, 0x100]
+ mov r12, r7
+_0804F1D4:
+ movs r4, 0
+ cmp r4, r9
+ bge _0804F25A
+ mov r2, r12
+ mov r5, r12
+_0804F1DE:
+ ldrb r0, [r2, 0x8]
+ cmp r0, 0
+ bne _0804F250
+ ldrb r0, [r2, 0x11]
+ cmp r0, 0
+ bne _0804F250
+ ldrb r0, [r2, 0xB]
+ cmp r0, 0
+ beq _0804F250
+ ldrb r0, [r2, 0xA]
+ cmp r0, 0
+ beq _0804F250
+ ldrb r0, [r2, 0xC]
+ cmp r0, 0
+ bne _0804F250
+ ldrb r0, [r2, 0xF]
+ cmp r0, 0
+ bne _0804F250
+ ldrb r0, [r2, 0xE]
+ cmp r0, 0
+ bne _0804F250
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0
+ bne _0804F250
+ movs r1, 0x4
+ ldrsh r0, [r2, r1]
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ subs r0, r1
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0804F250
+ movs r7, 0x6
+ ldrsh r0, [r2, r7]
+ movs r7, 0x2
+ ldrsh r1, [r2, r7]
+ subs r0, r1
+ ands r0, r3
+ cmp r0, 0
+ beq _0804F250
+ mov r0, sp
+ add r0, r8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804F24C
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_804F278
+ b _0804F266
+ .align 2, 0
+_0804F244: .4byte gUnknown_203B418
+_0804F248: .4byte 0x00003a16
+_0804F24C:
+ movs r0, 0x1
+ add r8, r0
+_0804F250:
+ adds r2, 0x20
+ adds r5, 0x20
+ adds r4, 0x1
+ cmp r4, r9
+ blt _0804F1DE
+_0804F25A:
+ movs r1, 0xF0
+ lsls r1, 1
+ add r12, r1
+ adds r6, 0x1
+ cmp r6, r10
+ blt _0804F1D4
+_0804F266:
+ add sp, 0x104
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804F0D0
+
+ thumb_func_start sub_804F278
+sub_804F278:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ adds r4, r0, 0
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ ldr r1, _0804F2B0
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r0, 0x1
+ strb r0, [r4, 0x10]
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ mov r9, r0
+ movs r5, 0
+ ldrsh r0, [r4, r5]
+ adds r6, r0, 0x1
+ b _0804F2F0
+ .align 2, 0
+_0804F2B0: .4byte gUnknown_202F1AC
+_0804F2B4:
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ subs r1, 0x1
+ adds r0, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F2EE
+ movs r5, 0x2
+ ldrsh r3, [r4, r5]
+ subs r1, r3, 0x1
+ movs r0, 0
+ ldrsh r2, [r4, r0]
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ str r0, [sp]
+ movs r5, 0x6
+ ldrsh r0, [r4, r5]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ mov r5, r9
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ bl sub_804F494
+_0804F2EE:
+ adds r6, 0x2
+_0804F2F0:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ subs r0, 0x1
+ cmp r6, r0
+ blt _0804F2B4
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r5, r0, 0x1
+ movs r6, 0x6
+ ldrsh r0, [r4, r6]
+ b _0804F342
+_0804F306:
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F33C
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ movs r6, 0
+ ldrsh r2, [r4, r6]
+ movs r1, 0x2
+ ldrsh r3, [r4, r1]
+ str r0, [sp]
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ mov r6, r9
+ str r6, [sp, 0xC]
+ adds r1, r5, 0
+ bl sub_804F494
+_0804F33C:
+ adds r5, 0x2
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+_0804F342:
+ subs r0, 0x1
+ cmp r5, r0
+ blt _0804F306
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ adds r6, r0, 0x1
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ b _0804F392
+_0804F354:
+ movs r0, 0x6
+ ldrsh r1, [r4, r0]
+ adds r0, r6, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F38C
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ movs r5, 0
+ ldrsh r2, [r4, r5]
+ movs r0, 0x2
+ ldrsh r3, [r4, r0]
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ str r0, [sp]
+ adds r0, r1, 0
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ mov r5, r9
+ str r5, [sp, 0xC]
+ adds r0, r6, 0
+ bl sub_804F494
+_0804F38C:
+ adds r6, 0x2
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+_0804F392:
+ subs r0, 0x1
+ cmp r6, r0
+ blt _0804F354
+ movs r2, 0x2
+ ldrsh r0, [r4, r2]
+ adds r5, r0, 0x1
+ movs r6, 0x6
+ ldrsh r0, [r4, r6]
+ b _0804F3E4
+_0804F3A4:
+ movs r1, 0
+ ldrsh r0, [r4, r1]
+ subs r0, 0x1
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F3DE
+ movs r6, 0
+ ldrsh r2, [r4, r6]
+ subs r0, r2, 0x1
+ movs r1, 0x2
+ ldrsh r3, [r4, r1]
+ movs r6, 0x4
+ ldrsh r1, [r4, r6]
+ str r1, [sp]
+ movs r6, 0x6
+ ldrsh r1, [r4, r6]
+ str r1, [sp, 0x4]
+ mov r1, r8
+ str r1, [sp, 0x8]
+ mov r6, r9
+ str r6, [sp, 0xC]
+ adds r1, r5, 0
+ bl sub_804F494
+_0804F3DE:
+ adds r5, 0x2
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+_0804F3E4:
+ subs r0, 0x1
+ cmp r5, r0
+ blt _0804F3A4
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ adds r6, r0, 0x3
+ b _0804F478
+_0804F3F2:
+ movs r1, 0x2
+ ldrsh r0, [r4, r1]
+ adds r5, r0, 0x3
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ subs r0, 0x3
+ adds r1, r6, 0x2
+ mov r10, r1
+ cmp r5, r0
+ bge _0804F476
+ ldr r2, _0804F434
+ adds r7, r2, 0
+_0804F40A:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804F46A
+ mov r0, r8
+ cmp r0, 0
+ beq _0804F438
+ subs r0, r6, 0x1
+ adds r1, r5, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ands r1, r7
+ movs r2, 0x2
+ orrs r1, r2
+ b _0804F444
+ .align 2, 0
+_0804F434: .4byte 0x0000fffc
+_0804F438:
+ subs r0, r6, 0x1
+ adds r1, r5, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ands r1, r7
+_0804F444:
+ strh r1, [r0]
+ movs r1, 0
+ ldrsh r2, [r4, r1]
+ movs r0, 0x2
+ ldrsh r3, [r4, r0]
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ str r0, [sp]
+ movs r1, 0x6
+ ldrsh r0, [r4, r1]
+ str r0, [sp, 0x4]
+ mov r0, r8
+ str r0, [sp, 0x8]
+ mov r1, r9
+ str r1, [sp, 0xC]
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804F494
+_0804F46A:
+ adds r5, 0x2
+ movs r2, 0x6
+ ldrsh r0, [r4, r2]
+ subs r0, 0x3
+ cmp r5, r0
+ blt _0804F40A
+_0804F476:
+ mov r6, r10
+_0804F478:
+ movs r5, 0x4
+ ldrsh r0, [r4, r5]
+ subs r0, 0x3
+ cmp r6, r0
+ blt _0804F3F2
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804F278
+
+ thumb_func_start sub_804F494
+sub_804F494:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r4, r1, 0
+ str r2, [sp]
+ str r3, [sp, 0x4]
+ ldr r0, [sp, 0x30]
+ ldr r1, [sp, 0x34]
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ lsls r1, 24
+ mov r8, r1
+ movs r0, 0x3
+ mov r10, r0
+_0804F4BA:
+ movs r0, 0x4
+ bl sub_8084100
+ adds r6, r0, 0
+ movs r7, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ mov r1, r9
+ mov r3, r8
+ lsrs r2, r3, 24
+ bl sub_804E9A8
+_0804F4D6:
+ adds r0, r6, 0
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F4F6
+ cmp r0, 0x1
+ bgt _0804F4EA
+ cmp r0, 0
+ beq _0804F4F0
+ b _0804F506
+_0804F4EA:
+ cmp r0, 0x2
+ beq _0804F4FE
+ b _0804F506
+_0804F4F0:
+ movs r0, 0x2
+ movs r1, 0
+ b _0804F50A
+_0804F4F6:
+ movs r0, 0
+ movs r1, 0x2
+ negs r1, r1
+ b _0804F50A
+_0804F4FE:
+ movs r0, 0x2
+ negs r0, r0
+ movs r1, 0
+ b _0804F50A
+_0804F506:
+ movs r0, 0
+ movs r1, 0x2
+_0804F50A:
+ adds r0, r5, r0
+ ldr r2, [sp]
+ cmp r2, r0
+ bgt _0804F534
+ ldr r3, [sp, 0x28]
+ cmp r3, r0
+ ble _0804F534
+ adds r1, r4, r1
+ ldr r2, [sp, 0x4]
+ cmp r2, r1
+ bgt _0804F534
+ ldr r3, [sp, 0x2C]
+ cmp r3, r1
+ ble _0804F534
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r10
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804F53E
+_0804F534:
+ adds r6, 0x1
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _0804F5B2
+ b _0804F4D6
+_0804F53E:
+ mov r0, r10
+ ands r0, r6
+ cmp r0, 0x1
+ beq _0804F570
+ cmp r0, 0x1
+ bgt _0804F550
+ cmp r0, 0
+ beq _0804F55A
+ b _0804F4BA
+_0804F550:
+ cmp r0, 0x2
+ beq _0804F586
+ cmp r0, 0x3
+ beq _0804F59C
+ b _0804F4BA
+_0804F55A:
+ adds r0, r5, 0x1
+ adds r1, r4, 0
+ bl sub_8049590
+ mov r1, r9
+ mov r3, r8
+ lsrs r2, r3, 24
+ bl sub_804E9A8
+ adds r5, 0x2
+ b _0804F4BA
+_0804F570:
+ subs r1, r4, 0x1
+ adds r0, r5, 0
+ bl sub_8049590
+ mov r1, r9
+ mov r3, r8
+ lsrs r2, r3, 24
+ bl sub_804E9A8
+ subs r4, 0x2
+ b _0804F4BA
+_0804F586:
+ subs r0, r5, 0x1
+ adds r1, r4, 0
+ bl sub_8049590
+ mov r1, r9
+ mov r3, r8
+ lsrs r2, r3, 24
+ bl sub_804E9A8
+ subs r5, 0x2
+ b _0804F4BA
+_0804F59C:
+ adds r1, r4, 0x1
+ adds r0, r5, 0
+ bl sub_8049590
+ mov r1, r9
+ mov r3, r8
+ lsrs r2, r3, 24
+ bl sub_804E9A8
+ adds r4, 0x2
+ b _0804F4BA
+_0804F5B2:
+ 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_804F494
+
+ thumb_func_start sub_804F5C4
+sub_804F5C4:
+ ldrh r3, [r0]
+ ldr r2, _0804F5D4
+ ands r2, r3
+ movs r3, 0x2
+ orrs r2, r3
+ orrs r2, r1
+ strh r2, [r0]
+ bx lr
+ .align 2, 0
+_0804F5D4: .4byte 0x0000fffc
+ thumb_func_end sub_804F5C4
+
+ thumb_func_start sub_804F5D8
+sub_804F5D8:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ movs r0, 0
+ ldrsh r6, [r5, r0]
+ b _0804F60C
+_0804F5E2:
+ movs r0, 0x2
+ ldrsh r4, [r5, r0]
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ adds r7, r6, 0x1
+ cmp r4, r0
+ bge _0804F60A
+_0804F5F0:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x20
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x1
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r4, r0
+ blt _0804F5F0
+_0804F60A:
+ adds r6, r7, 0
+_0804F60C:
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ cmp r6, r0
+ blt _0804F5E2
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804F5D8
+
+ thumb_func_start sub_804F61C
+sub_804F61C:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r9, r0
+ mov r8, r1
+ movs r7, 0x1
+ negs r7, r7
+ b _0804F67A
+_0804F62E:
+ movs r5, 0x1
+ negs r5, r5
+ b _0804F666
+_0804F634:
+ cmp r7, 0
+ beq _0804F63C
+ cmp r5, 0
+ bne _0804F660
+_0804F63C:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _0804F660
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrb r0, [r0, 0x9]
+ cmp r0, 0xFF
+ bne _0804F660
+ movs r0, 0x1
+ b _0804F686
+_0804F660:
+ adds r5, 0x1
+ cmp r5, 0x1
+ bgt _0804F672
+_0804F666:
+ mov r0, r8
+ adds r4, r0, r5
+ cmp r4, 0
+ blt _0804F660
+ cmp r4, 0x1F
+ ble _0804F634
+_0804F672:
+ adds r7, 0x1
+ cmp r7, 0x1
+ bgt _0804F684
+ mov r0, r9
+_0804F67A:
+ adds r6, r0, r7
+ cmp r6, 0
+ blt _0804F672
+ cmp r6, 0x37
+ ble _0804F62E
+_0804F684:
+ movs r0, 0
+_0804F686:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804F61C
+
+ thumb_func_start sub_804F694
+sub_804F694:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r7, r0, 0
+ movs r0, 0x6
+ bl sub_8084100
+ subs r0, 0x1
+ cmp r0, 0x4
+ bls _0804F6B0
+ b _0804FBD6
+_0804F6B0:
+ lsls r0, 2
+ ldr r1, _0804F6BC
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_0804F6BC: .4byte _0804F6C0
+ .align 2, 0
+_0804F6C0:
+ .4byte _0804FB24
+ .4byte _0804FA98
+ .4byte _0804F9DC
+ .4byte _0804F826
+ .4byte _0804F6D4
+_0804F6D4:
+ ldr r1, _0804F70C
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0804F6DE
+ b _0804FBD6
+_0804F6DE:
+ subs r0, 0x1
+ str r0, [r1]
+ adds r0, r7, 0
+ bl sub_804F5D8
+ movs r0, 0x2
+ bl sub_8084100
+ cmp r0, 0
+ beq _0804F78E
+ movs r5, 0
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ movs r2, 0x4
+ ldrsh r1, [r7, r2]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ mov r8, r0
+ movs r3, 0x2
+ ldrsh r4, [r7, r3]
+ b _0804F712
+ .align 2, 0
+_0804F70C: .4byte gUnknown_202F1C8
+_0804F710:
+ adds r4, 0x1
+_0804F712:
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ cmp r4, r0
+ bge _0804F72A
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_804F61C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F710
+ movs r5, 0x1
+_0804F72A:
+ cmp r5, 0
+ beq _0804F730
+ b _0804FBD6
+_0804F730:
+ movs r2, 0x2
+ ldrsh r4, [r7, r2]
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r4, r0
+ bge _0804F754
+_0804F73C:
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ adds r4, 0x1
+ movs r5, 0x6
+ ldrsh r0, [r7, r5]
+ cmp r4, r0
+ blt _0804F73C
+_0804F754:
+ movs r0, 0
+ ldrsh r5, [r7, r0]
+ cmp r5, r8
+ blt _0804F75E
+ b _0804FBD2
+_0804F75E:
+ movs r1, 0x2
+ ldrsh r4, [r7, r1]
+ movs r2, 0x6
+ ldrsh r0, [r7, r2]
+ adds r6, r5, 0x1
+ cmp r4, r0
+ bge _0804F786
+_0804F76C:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ movs r3, 0x6
+ ldrsh r0, [r7, r3]
+ cmp r4, r0
+ blt _0804F76C
+_0804F786:
+ adds r5, r6, 0
+ cmp r5, r8
+ blt _0804F75E
+ b _0804FBD2
+_0804F78E:
+ movs r5, 0
+ movs r4, 0x2
+ ldrsh r0, [r7, r4]
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ mov r8, r0
+ movs r3, 0
+ ldrsh r4, [r7, r3]
+ b _0804F7AA
+_0804F7A8:
+ adds r4, 0x1
+_0804F7AA:
+ movs r1, 0x4
+ ldrsh r0, [r7, r1]
+ cmp r4, r0
+ bge _0804F7C2
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_804F61C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804F7A8
+ movs r5, 0x1
+_0804F7C2:
+ cmp r5, 0
+ beq _0804F7C8
+ b _0804FBD6
+_0804F7C8:
+ movs r2, 0
+ ldrsh r4, [r7, r2]
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ cmp r4, r0
+ bge _0804F7EC
+_0804F7D4:
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ adds r4, 0x1
+ movs r5, 0x4
+ ldrsh r0, [r7, r5]
+ cmp r4, r0
+ blt _0804F7D4
+_0804F7EC:
+ movs r0, 0x2
+ ldrsh r5, [r7, r0]
+ cmp r5, r8
+ blt _0804F7F6
+ b _0804FBD2
+_0804F7F6:
+ movs r1, 0
+ ldrsh r4, [r7, r1]
+ movs r2, 0x4
+ ldrsh r0, [r7, r2]
+ adds r6, r5, 0x1
+ cmp r4, r0
+ bge _0804F81E
+_0804F804:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x80
+ orrs r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ movs r3, 0x4
+ ldrsh r0, [r7, r3]
+ cmp r4, r0
+ blt _0804F804
+_0804F81E:
+ adds r5, r6, 0
+ cmp r5, r8
+ blt _0804F7F6
+ b _0804FBD2
+_0804F826:
+ movs r4, 0x4
+ ldrsh r3, [r7, r4]
+ movs r5, 0
+ ldrsh r1, [r7, r5]
+ subs r0, r3, r1
+ cmp r0, 0x5
+ bgt _0804F836
+ b _0804FBD6
+_0804F836:
+ movs r0, 0x6
+ ldrsh r4, [r7, r0]
+ movs r5, 0x2
+ ldrsh r2, [r7, r5]
+ subs r0, r4, r2
+ cmp r0, 0x5
+ bgt _0804F846
+ b _0804FBD6
+_0804F846:
+ adds r0, r1, r3
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [sp]
+ adds r0, r2, r4
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ str r0, [sp, 0x4]
+ ldr r1, _0804F9D8
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0804F864
+ b _0804FBD6
+_0804F864:
+ subs r0, 0x1
+ str r0, [r1]
+ adds r0, r7, 0
+ bl sub_804F5D8
+ ldr r5, [sp]
+ subs r5, 0x2
+ ldr r0, [sp, 0x4]
+ subs r0, 0x2
+ mov r10, r0
+ adds r0, r5, 0
+ mov r1, r10
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r1, [sp]
+ subs r1, 0x1
+ mov r9, r1
+ mov r0, r9
+ mov r1, r10
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r0, [sp]
+ mov r1, r10
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r2, [sp]
+ adds r2, 0x1
+ mov r8, r2
+ mov r0, r8
+ mov r1, r10
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r6, [sp, 0x4]
+ subs r6, 0x1
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ adds r0, r5, 0
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r4, [sp, 0x4]
+ adds r4, 0x1
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ ldr r0, [sp]
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r8
+ mov r1, r10
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r8
+ adds r1, r6, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r8
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r8
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0x4
+ bl sub_804F5C4
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ movs r2, 0x40
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ ldr r0, [sp]
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ movs r4, 0x2
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ mov r0, r9
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ movs r4, 0x10
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ ldr r0, [sp]
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ mov r0, r9
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ orrs r1, r4
+ strh r1, [r0, 0x4]
+ ldr r0, [sp]
+ ldr r1, [sp, 0x4]
+ bl sub_8049590
+ ldrh r1, [r0, 0x4]
+ orrs r4, r1
+ strh r4, [r0, 0x4]
+ b _0804FBD2
+ .align 2, 0
+_0804F9D8: .4byte gUnknown_202F1C8
+_0804F9DC:
+ movs r4, 0x4
+ ldrsh r3, [r7, r4]
+ movs r5, 0
+ ldrsh r2, [r7, r5]
+ subs r0, r3, r2
+ cmp r0, 0x4
+ bgt _0804F9EC
+ b _0804FBD6
+_0804F9EC:
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ movs r4, 0x2
+ ldrsh r1, [r7, r4]
+ subs r0, r1
+ cmp r0, 0x4
+ bgt _0804F9FC
+ b _0804FBD6
+_0804F9FC:
+ adds r0, r2, 0x2
+ subs r1, r3, 0x3
+ bl sub_808411C
+ adds r4, r0, 0
+ movs r5, 0x2
+ ldrsh r0, [r7, r5]
+ adds r0, 0x2
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ subs r1, 0x3
+ bl sub_808411C
+ mov r10, r0
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ adds r0, 0x2
+ movs r5, 0x4
+ ldrsh r1, [r7, r5]
+ subs r1, 0x3
+ bl sub_808411C
+ mov r9, r0
+ movs r1, 0x2
+ ldrsh r0, [r7, r1]
+ adds r0, 0x2
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ subs r1, 0x3
+ bl sub_808411C
+ adds r6, r0, 0
+ ldr r1, _0804FA94
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0804FA46
+ b _0804FBD6
+_0804FA46:
+ subs r0, 0x1
+ str r0, [r1]
+ adds r0, r7, 0
+ bl sub_804F5D8
+ cmp r4, r9
+ ble _0804FA5A
+ adds r0, r4, 0
+ mov r4, r9
+ mov r9, r0
+_0804FA5A:
+ cmp r10, r6
+ ble _0804FA64
+ mov r0, r10
+ mov r10, r6
+ adds r6, r0, 0
+_0804FA64:
+ adds r5, r4, 0
+ cmp r5, r9
+ ble _0804FA6C
+ b _0804FBD2
+_0804FA6C:
+ mov r4, r10
+ adds r3, r5, 0x1
+ mov r8, r3
+ cmp r4, r6
+ bgt _0804FA8A
+_0804FA76:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ adds r4, 0x1
+ cmp r4, r6
+ ble _0804FA76
+_0804FA8A:
+ mov r5, r8
+ cmp r5, r9
+ ble _0804FA6C
+ b _0804FBD2
+ .align 2, 0
+_0804FA94: .4byte gUnknown_202F1C8
+_0804FA98:
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ movs r5, 0
+ ldrsh r1, [r7, r5]
+ subs r0, r1
+ movs r2, 0x1
+ ands r0, r2
+ cmp r0, 0
+ bne _0804FAAC
+ b _0804FBD6
+_0804FAAC:
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ movs r3, 0x2
+ ldrsh r1, [r7, r3]
+ subs r0, r1
+ ands r0, r2
+ cmp r0, 0
+ bne _0804FABE
+ b _0804FBD6
+_0804FABE:
+ ldr r1, _0804FB20
+ ldr r0, [r1]
+ cmp r0, 0
+ bne _0804FAC8
+ b _0804FBD6
+_0804FAC8:
+ subs r0, 0x1
+ str r0, [r1]
+ adds r0, r7, 0
+ bl sub_804F5D8
+ movs r6, 0x3F
+_0804FAD4:
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ movs r5, 0
+ ldrsh r1, [r7, r5]
+ subs r0, r1
+ bl sub_8084100
+ adds r4, r0, 0
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ movs r2, 0x2
+ ldrsh r1, [r7, r2]
+ subs r0, r1
+ bl sub_8084100
+ adds r2, r0, 0
+ adds r0, r4, r2
+ movs r5, 0x1
+ ands r0, r5
+ cmp r0, 0
+ beq _0804FB14
+ movs r3, 0
+ ldrsh r0, [r7, r3]
+ adds r0, r4
+ movs r4, 0x2
+ ldrsh r1, [r7, r4]
+ adds r1, r2
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+_0804FB14:
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0804FAD4
+ strb r5, [r7, 0x9]
+ b _0804FBD6
+ .align 2, 0
+_0804FB20: .4byte gUnknown_202F1C8
+_0804FB24:
+ ldr r1, _0804FBC0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _0804FBD6
+ subs r0, 0x1
+ str r0, [r1]
+ movs r5, 0x4
+ ldrsh r3, [r7, r5]
+ movs r0, 0
+ ldrsh r2, [r7, r0]
+ subs r6, r3, r2
+ movs r4, 0x1
+ adds r0, r6, 0
+ ands r0, r4
+ cmp r0, 0
+ beq _0804FB54
+ movs r1, 0x6
+ ldrsh r0, [r7, r1]
+ movs r5, 0x2
+ ldrsh r1, [r7, r5]
+ subs r0, r1
+ ands r0, r4
+ cmp r0, 0
+ bne _0804FBC4
+_0804FB54:
+ adds r0, r2, r3
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r5, r0, 1
+ movs r0, 0x2
+ ldrsh r3, [r7, r0]
+ movs r1, 0x6
+ ldrsh r2, [r7, r1]
+ adds r0, r3, r2
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r4, r0, 1
+ cmp r6, 0x4
+ ble _0804FBAE
+ subs r0, r2, r3
+ cmp r0, 0x4
+ ble _0804FBAE
+ adds r0, r5, 0x1
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ adds r1, r4, 0x1
+ adds r0, r5, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ subs r0, r5, 0x1
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ subs r1, r4, 0x1
+ adds r0, r5, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+_0804FBAE:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0
+ bl sub_804F5C4
+ b _0804FBD2
+ .align 2, 0
+_0804FBC0: .4byte gUnknown_202F1C8
+_0804FBC4:
+ adds r0, r7, 0
+ bl sub_804F5D8
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_804F278
+_0804FBD2:
+ movs r0, 0x1
+ strb r0, [r7, 0x9]
+_0804FBD6:
+ 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_804F694
+
+ thumb_func_start sub_804FBE8
+sub_804FBE8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r6, 0
+ ldr r0, _0804FC6C
+ adds r5, r0, 0
+_0804FBF4:
+ movs r4, 0
+ adds r3, r6, 0x1
+ mov r8, r3
+_0804FBFA:
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ beq _0804FC2A
+ movs r7, 0x88
+ lsls r7, 1
+ adds r0, r7, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0804FC24
+ ldrh r0, [r2, 0x4]
+ ldr r3, _0804FC70
+ adds r1, r3, 0
+ ands r0, r1
+ strh r0, [r2, 0x4]
+_0804FC24:
+ ldrh r0, [r2, 0x4]
+ ands r0, r5
+ strh r0, [r2, 0x4]
+_0804FC2A:
+ ldrh r3, [r2, 0x4]
+ movs r0, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0804FC46
+ ldrh r0, [r2]
+ movs r7, 0x80
+ lsls r7, 2
+ adds r1, r7, 0
+ orrs r1, r0
+ strh r1, [r2]
+ adds r0, r3, 0
+ ands r0, r5
+ strh r0, [r2, 0x4]
+_0804FC46:
+ ldrh r1, [r2, 0x4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _0804FC56
+ adds r0, r1, 0
+ ands r0, r5
+ strh r0, [r2, 0x4]
+_0804FC56:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0804FBFA
+ mov r6, r8
+ cmp r6, 0x37
+ ble _0804FBF4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FC6C: .4byte 0x0000fffb
+_0804FC70: .4byte 0x0000fffd
+ thumb_func_end sub_804FBE8
+
+ thumb_func_start sub_804FC74
+sub_804FC74:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r5, 0
+ movs r0, 0x3
+ mov r8, r0
+ ldr r0, _0804FCC8
+ adds r7, r0, 0
+_0804FC86:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0804FC8A:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0804FCAE
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ands r1, r7
+ mov r2, r8
+ orrs r1, r2
+ strh r1, [r0]
+_0804FCAE:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0804FC8A
+ adds r5, r6, 0
+ cmp r5, 0x37
+ ble _0804FC86
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FCC8: .4byte 0x0000fffc
+ thumb_func_end sub_804FC74
+
+ thumb_func_start sub_804FCCC
+sub_804FCCC:
+ push {r4-r7,lr}
+ movs r5, 0
+ ldr r0, _0804FD0C
+ adds r7, r0, 0
+_0804FCD4:
+ movs r4, 0
+ adds r6, r5, 0x1
+_0804FCD8:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _0804FCF8
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ands r1, r7
+ strh r1, [r0]
+_0804FCF8:
+ adds r4, 0x1
+ cmp r4, 0x1F
+ ble _0804FCD8
+ adds r5, r6, 0
+ cmp r5, 0x37
+ ble _0804FCD4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FD0C: .4byte 0x0000fffc
+ thumb_func_end sub_804FCCC
+
+ thumb_func_start sub_804FD10
+sub_804FD10:
+ movs r2, 0
+ movs r3, 0
+ strh r3, [r0]
+ strh r3, [r0, 0x4]
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+ strb r2, [r0, 0x8]
+ strb r2, [r0, 0xA]
+ strb r2, [r0, 0xB]
+ strb r2, [r0, 0xC]
+ strb r2, [r0, 0xD]
+ strb r2, [r0, 0xE]
+ str r3, [r0, 0x10]
+ str r3, [r0, 0x14]
+ bx lr
+ thumb_func_end sub_804FD10
+
+ thumb_func_start sub_804FD30
+sub_804FD30:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ movs r6, 0
+_0804FD3A:
+ movs r7, 0
+ adds r4, r6, 0x1
+_0804FD3E:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8049590
+ bl sub_804FD10
+ subs r3, r7, 0x1
+ cmp r6, 0
+ blt _0804FD5C
+ cmp r3, 0
+ blt _0804FD5C
+ cmp r6, 0x37
+ bgt _0804FD5C
+ cmp r3, 0x1F
+ ble _0804FD60
+_0804FD5C:
+ movs r0, 0x1
+ b _0804FD62
+_0804FD60:
+ movs r0, 0
+_0804FD62:
+ cmp r0, 0
+ bne _0804FE24
+ cmp r4, 0
+ blt _0804FD76
+ cmp r3, 0
+ blt _0804FD76
+ cmp r4, 0x37
+ bgt _0804FD76
+ cmp r3, 0x1F
+ ble _0804FD7A
+_0804FD76:
+ movs r0, 0x1
+ b _0804FD7C
+_0804FD7A:
+ movs r0, 0
+_0804FD7C:
+ cmp r0, 0
+ bne _0804FE24
+ cmp r4, 0
+ blt _0804FD90
+ cmp r3, 0
+ blt _0804FD90
+ cmp r4, 0x37
+ bgt _0804FD90
+ cmp r3, 0x1F
+ ble _0804FD94
+_0804FD90:
+ movs r0, 0x1
+ b _0804FD96
+_0804FD94:
+ movs r0, 0
+_0804FD96:
+ cmp r0, 0
+ bne _0804FE24
+ adds r2, r7, 0x1
+ cmp r4, 0
+ blt _0804FDAC
+ cmp r2, 0
+ blt _0804FDAC
+ cmp r4, 0x37
+ bgt _0804FDAC
+ cmp r2, 0x1F
+ ble _0804FDB0
+_0804FDAC:
+ movs r0, 0x1
+ b _0804FDB2
+_0804FDB0:
+ movs r0, 0
+_0804FDB2:
+ cmp r0, 0
+ bne _0804FE24
+ cmp r6, 0
+ blt _0804FDC6
+ cmp r2, 0
+ blt _0804FDC6
+ cmp r6, 0x37
+ bgt _0804FDC6
+ cmp r2, 0x1F
+ ble _0804FDCA
+_0804FDC6:
+ movs r0, 0x1
+ b _0804FDCC
+_0804FDCA:
+ movs r0, 0
+_0804FDCC:
+ cmp r0, 0
+ bne _0804FE24
+ adds r0, r2, 0
+ subs r1, r6, 0x1
+ cmp r1, 0
+ blt _0804FDE4
+ cmp r0, 0
+ blt _0804FDE4
+ cmp r1, 0x37
+ bgt _0804FDE4
+ cmp r2, 0x1F
+ ble _0804FDE8
+_0804FDE4:
+ movs r0, 0x1
+ b _0804FDEA
+_0804FDE8:
+ movs r0, 0
+_0804FDEA:
+ cmp r0, 0
+ bne _0804FE24
+ cmp r1, 0
+ blt _0804FDFE
+ cmp r7, 0
+ blt _0804FDFE
+ cmp r1, 0x37
+ bgt _0804FDFE
+ cmp r7, 0x1F
+ ble _0804FE02
+_0804FDFE:
+ movs r0, 0x1
+ b _0804FE04
+_0804FE02:
+ movs r0, 0
+_0804FE04:
+ cmp r0, 0
+ bne _0804FE24
+ adds r0, r3, 0
+ cmp r1, 0
+ blt _0804FE1A
+ cmp r0, 0
+ blt _0804FE1A
+ cmp r1, 0x37
+ bgt _0804FE1A
+ cmp r3, 0x1F
+ ble _0804FE1E
+_0804FE1A:
+ movs r0, 0x1
+ b _0804FE20
+_0804FE1E:
+ movs r0, 0
+_0804FE20:
+ cmp r0, 0
+ beq _0804FE34
+_0804FE24:
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x10
+ orrs r1, r2
+ strh r1, [r0]
+_0804FE34:
+ adds r7, 0x1
+ cmp r7, 0x1F
+ ble _0804FD3E
+ adds r6, 0x1
+ cmp r6, 0x37
+ bgt _0804FE42
+ b _0804FD3A
+_0804FE42:
+ ldr r3, _0804FEB4
+ ldr r1, [r3]
+ ldr r0, _0804FEB8
+ adds r2, r1, r0
+ ldr r0, _0804FEBC
+ strh r0, [r2]
+ ldr r2, _0804FEC0
+ adds r1, r2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ movs r6, 0
+ mov r8, r3
+ ldr r1, _0804FEC4
+_0804FE5E:
+ adds r5, r1, 0
+ movs r4, 0
+ movs r7, 0x7
+_0804FE64:
+ mov r2, r8
+ ldr r0, [r2]
+ adds r0, r5
+ adds r0, r4
+ str r1, [sp]
+ bl sub_804FD10
+ adds r4, 0x18
+ subs r7, 0x1
+ ldr r1, [sp]
+ cmp r7, 0
+ bge _0804FE64
+ adds r1, 0xC0
+ adds r6, 0x1
+ cmp r6, 0x7
+ ble _0804FE5E
+ ldr r0, _0804FEB4
+ ldr r1, [r0]
+ ldr r2, _0804FEC8
+ adds r1, r2
+ movs r2, 0
+ strh r2, [r1]
+ movs r6, 0
+ adds r4, r0, 0
+ ldr r3, _0804FECC
+_0804FE96:
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ adds r0, r3
+ adds r0, r1
+ ldr r0, [r0]
+ str r2, [r0]
+ adds r6, 0x1
+ cmp r6, 0x3F
+ ble _0804FE96
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804FEB4: .4byte gUnknown_203B418
+_0804FEB8: .4byte 0x0000e21c
+_0804FEBC: .4byte 0x0000ffff
+_0804FEC0: .4byte 0x0000e21e
+_0804FEC4: .4byte 0x0000e27c
+_0804FEC8: .4byte 0x00003904
+_0804FECC: .4byte 0x0001371c
+ thumb_func_end sub_804FD30
+
+ thumb_func_start sub_804FED0
+sub_804FED0:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ adds r5, r1, 0
+ movs r6, 0
+ b _0804FEFA
+_0804FEDA:
+ adds r0, r5, 0
+ bl sub_8084100
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl sub_8084100
+ lsls r4, 2
+ adds r4, r7
+ ldr r2, [r4]
+ lsls r0, 2
+ adds r0, r7
+ ldr r1, [r0]
+ str r1, [r4]
+ str r2, [r0]
+ adds r6, 0x1
+_0804FEFA:
+ lsls r0, r5, 1
+ cmp r6, r0
+ blt _0804FEDA
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804FED0
+
+ thumb_func_start sub_804FF08
+sub_804FF08:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08050234
+ add sp, r4
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ movs r0, 0xE0
+ lsls r0, 5
+ add r0, sp
+ str r1, [r0]
+ ldr r0, _08050238
+ ldr r0, [r0]
+ mov r9, r0
+ ldr r0, _0805023C
+ add r0, r9
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _0804FF46
+ ldr r0, _08050240
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r1
+ bne _08050038
+_0804FF46:
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+_0804FF4C:
+ movs r5, 0
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_0804FF56:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0x1
+ bne _0804FFAA
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xFF
+ beq _0804FFAA
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _0804FFAA
+ ldrh r1, [r1, 0x4]
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0804FFAA
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ bne _0804FFAA
+ adds r0, r3, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _0804FFAA
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _0804FFAA
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r2, 0x1
+ add r8, r2
+_0804FFAA:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0804FF56
+ adds r6, 0x1
+ cmp r6, 0x37
+ ble _0804FF4C
+ mov r0, r8
+ cmp r0, 0
+ beq _08050038
+ bl sub_8084100
+ lsls r0, 2
+ mov r1, sp
+ adds r4, r1, r0
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ adds r5, r0, 0
+ ldrh r1, [r5, 0x4]
+ movs r0, 0x1
+ orrs r0, r1
+ ldr r1, _08050244
+ ands r0, r1
+ strh r0, [r5, 0x4]
+ ldr r1, _08050248
+ ldrb r0, [r5, 0x9]
+ strb r0, [r1]
+ ldrb r1, [r4]
+ ldr r0, _0805023C
+ add r0, r9
+ strh r1, [r0]
+ ldrb r1, [r4, 0x1]
+ ldr r0, _08050240
+ add r0, r9
+ strh r1, [r0]
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08050038
+ ldrb r4, [r5, 0x9]
+ movs r6, 0
+_08050002:
+ movs r5, 0
+_08050004:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0x1
+ bne _0805002C
+ ldrb r0, [r1, 0x9]
+ cmp r0, r4
+ bne _0805002C
+ movs r0, 0x40
+ orrs r0, r2
+ strh r0, [r1]
+ ldrb r1, [r1, 0x9]
+ ldr r0, _0805024C
+ add r0, r9
+ strb r1, [r0]
+_0805002C:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _08050004
+ adds r6, 0x1
+ cmp r6, 0x37
+ ble _08050002
+_08050038:
+ movs r2, 0
+ mov r8, r2
+ movs r6, 0
+_0805003E:
+ movs r5, 0
+ adds r7, r6, 0x1
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_0805004A:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0x1
+ bne _08050092
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xFF
+ beq _08050092
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _08050092
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ bne _08050092
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _08050092
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _08050092
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r2, 0x1
+ add r8, r2
+_08050092:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0805004A
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _0805003E
+ mov r0, r8
+ cmp r0, 0
+ beq _080500FA
+ mov r1, r10
+ ldrb r4, [r1, 0xF]
+ cmp r4, 0
+ beq _080500FA
+ subs r0, r4, 0x2
+ adds r1, r4, 0x2
+ bl sub_808411C
+ adds r4, r0, 0
+ cmp r4, 0
+ bgt _080500BC
+ movs r4, 0x1
+_080500BC:
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r4, 0
+ ble _080500FA
+ adds r6, r4, 0
+ lsls r0, r5, 2
+ mov r2, sp
+ adds r4, r0, r2
+_080500D8:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x2
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _080500F4
+ mov r4, sp
+ movs r5, 0
+_080500F4:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _080500D8
+_080500FA:
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+_08050100:
+ movs r5, 0
+ adds r7, r6, 0x1
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_0805010C:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08050128
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r0, 0x1
+ add r8, r0
+_08050128:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0805010C
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _08050100
+ mov r1, r8
+ cmp r1, 0
+ beq _0805018E
+ mov r2, r10
+ ldrb r4, [r2, 0x14]
+ cmp r4, 0
+ beq _0805018E
+ subs r0, r4, 0x2
+ adds r1, r4, 0x2
+ bl sub_808411C
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _0805018E
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r4, 0
+ ble _0805018E
+ adds r6, r4, 0
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r4, r0, r1
+_0805016C:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x2
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _08050188
+ mov r4, sp
+ movs r5, 0
+_08050188:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0805016C
+_0805018E:
+ movs r2, 0
+ mov r8, r2
+ movs r0, 0xE0
+ lsls r0, 5
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bne _080501E4
+ movs r6, 0
+_080501A0:
+ movs r5, 0
+ adds r7, r6, 0x1
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_080501AC:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080501D8
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ beq _080501D8
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080501D8
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r0, 0x1
+ add r8, r0
+_080501D8:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _080501AC
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _080501A0
+_080501E4:
+ mov r1, r8
+ cmp r1, 0
+ beq _08050294
+ lsrs r4, r1, 31
+ add r4, r8
+ asrs r4, 1
+ lsls r0, r1, 3
+ movs r1, 0xA
+ bl __divsi3
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_808411C
+ adds r4, r0, 0
+ cmp r4, 0x5
+ bgt _08050208
+ movs r4, 0x6
+_08050208:
+ ldr r0, _08050250
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r4, r0
+ blt _08050214
+ adds r4, r0, 0
+_08050214:
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r4, 0
+ ble _08050294
+ adds r6, r4, 0
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r7, r0, r1
+_08050230:
+ ldrb r0, [r7]
+ b _08050254
+ .align 2, 0
+_08050234: .4byte 0xffffe3fc
+_08050238: .4byte gUnknown_203B418
+_0805023C: .4byte 0x0000e21c
+_08050240: .4byte 0x0000e21e
+_08050244: .4byte 0x0000fffd
+_08050248: .4byte gUnknown_202F1B4
+_0805024C: .4byte 0x00003a0c
+_08050250: .4byte gUnknown_80F4DA0
+_08050254:
+ ldrb r1, [r7, 0x1]
+ bl sub_8049590
+ adds r4, r0, 0
+ movs r0, 0x2
+ bl sub_8084100
+ cmp r0, 0
+ beq _0805026C
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x2
+ b _0805027E
+_0805026C:
+ ldr r0, _08050424
+ ldr r0, [r0]
+ ldr r2, _08050428
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050282
+ ldrh r0, [r4, 0x4]
+ movs r1, 0x4
+_0805027E:
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+_08050282:
+ adds r7, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _0805028E
+ mov r7, sp
+ movs r5, 0
+_0805028E:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08050230
+_08050294:
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+_0805029A:
+ movs r5, 0
+ adds r7, r6, 0x1
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_080502A6:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0x1
+ bne _080502F0
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xFF
+ beq _080502F0
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _080502F0
+ ldrh r1, [r1, 0x4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080502F0
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _080502F0
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _080502F0
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r2, 0x1
+ add r8, r2
+_080502F0:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _080502A6
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _0805029A
+ mov r0, r8
+ cmp r0, 0
+ beq _08050356
+ mov r2, r10
+ ldrb r1, [r2, 0x10]
+ lsrs r0, r1, 1
+ bl sub_808411C
+ adds r4, r0, 0
+ cmp r4, 0
+ ble _08050356
+ cmp r4, 0x37
+ ble _08050318
+ movs r4, 0x38
+_08050318:
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r4, 0
+ ble _08050356
+ adds r6, r4, 0
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r4, r0, r1
+_08050334:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x4
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _08050350
+ mov r4, sp
+ movs r5, 0
+_08050350:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08050334
+_08050356:
+ ldr r0, _0805042C
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ movs r1, 0x1
+ negs r1, r1
+ cmp r0, r1
+ beq _08050372
+ ldr r0, _08050430
+ add r0, r9
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r1
+ bne _08050410
+_08050372:
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+_08050378:
+ movs r5, 0
+ adds r7, r6, 0x1
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_08050384:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x1
+ bne _080503E2
+ ldrb r0, [r2, 0x9]
+ cmp r0, 0xFF
+ beq _080503E2
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ movs r3, 0x8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ movs r0, 0x80
+ lsls r0, 1
+ mov r10, r0
+ mov r0, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ ldrh r1, [r2, 0x4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _080503E2
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r1, 0x1
+ add r8, r1
+_080503E2:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _08050384
+ adds r6, r7, 0
+ cmp r6, 0x37
+ ble _08050378
+ mov r2, r8
+ cmp r2, 0
+ beq _08050410
+ mov r0, r8
+ bl sub_8084100
+ lsls r0, 2
+ mov r1, sp
+ adds r2, r1, r0
+ ldrb r1, [r2]
+ ldr r0, _0805042C
+ add r0, r9
+ strh r1, [r0]
+ ldrb r1, [r2, 0x1]
+ ldr r0, _08050430
+ add r0, r9
+ strh r1, [r0]
+_08050410:
+ ldr r3, _08050434
+ 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
+_08050424: .4byte gUnknown_203B418
+_08050428: .4byte 0x0000065c
+_0805042C: .4byte 0x0000e218
+_08050430: .4byte 0x0000e21a
+_08050434: .4byte 0x00001c04
+ thumb_func_end sub_804FF08
+
+ thumb_func_start sub_8050438
+sub_8050438:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08050470
+ add sp, r4
+ lsls r1, 24
+ lsrs r1, 24
+ movs r2, 0xE0
+ lsls r2, 5
+ add r2, sp
+ str r1, [r2]
+ ldr r1, _08050474
+ ldr r1, [r1]
+ mov r10, r1
+ ldrb r1, [r0, 0x6]
+ cmp r1, 0
+ ble _08050478
+ lsrs r0, r1, 1
+ bl sub_808411C
+ adds r7, r0, 0
+ cmp r7, 0
+ bgt _0805047A
+ movs r7, 0x1
+ b _0805047A
+ .align 2, 0
+_08050470: .4byte 0xffffe3f8
+_08050474: .4byte gUnknown_203B418
+_08050478:
+ adds r7, r1, 0
+_0805047A:
+ movs r0, 0
+ mov r8, r0
+ movs r6, 0
+_08050480:
+ movs r5, 0
+ adds r1, r6, 0x1
+ mov r9, r1
+ mov r2, r8
+ lsls r0, r2, 2
+ mov r1, sp
+ adds r4, r0, r1
+_0805048E:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r3, [r1]
+ movs r2, 0x3
+ ands r2, r3
+ cmp r2, 0x1
+ bne _080504F6
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xFF
+ beq _080504F6
+ movs r0, 0x20
+ ands r0, r3
+ cmp r0, 0
+ bne _080504F6
+ ldrh r1, [r1, 0x4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _080504F6
+ ands r2, r1
+ cmp r2, 0
+ bne _080504F6
+ movs r0, 0x8
+ ands r0, r3
+ cmp r0, 0
+ bne _080504F6
+ movs r2, 0x80
+ lsls r2, 1
+ adds r0, r2, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _080504F6
+ ldr r0, _080506A0
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r6, r0
+ bne _080504EC
+ ldr r0, _080506A4
+ add r0, r10
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r5, r0
+ beq _080504F6
+_080504EC:
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r0, 0x1
+ add r8, r0
+_080504F6:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _0805048E
+ mov r6, r9
+ cmp r6, 0x37
+ ble _08050480
+ mov r1, r8
+ cmp r1, 0
+ beq _0805055E
+ ldr r0, _080506A8
+ ldr r0, [r0]
+ movs r2, 0xD1
+ lsls r2, 3
+ adds r0, r2
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0805051C
+ adds r7, 0x1
+_0805051C:
+ cmp r7, 0
+ beq _0805055E
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r7, 0
+ ble _0805055E
+ adds r6, r7, 0
+ lsls r0, r5, 2
+ mov r2, sp
+ adds r4, r0, r2
+_0805053C:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x8
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _08050558
+ mov r4, sp
+ movs r5, 0
+_08050558:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0805053C
+_0805055E:
+ ldr r0, _080506AC
+ add r0, r10
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0805056A
+ b _0805068C
+_0805056A:
+ ldr r0, _080506B0
+ movs r2, 0
+ ldrsh r1, [r0, r2]
+ ldr r2, _080506B4
+ add r2, sp
+ str r1, [r2]
+ movs r0, 0
+ mov r8, r0
+ movs r1, 0xE0
+ lsls r1, 5
+ add r1, sp
+ ldr r1, [r1]
+ cmp r1, 0
+ beq _0805058A
+ movs r0, 0x3
+ str r0, [r2]
+_0805058A:
+ ldr r1, _080506B4
+ add r1, sp
+ ldr r1, [r1]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ ldr r1, _080506B4
+ add r1, sp
+ str r0, [r1]
+ movs r6, 0
+_080505A2:
+ movs r5, 0
+ adds r2, r6, 0x1
+ mov r9, r2
+ mov r1, r8
+ lsls r0, r1, 2
+ mov r2, sp
+ adds r4, r0, r2
+_080505B0:
+ adds r0, r6, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ adds r1, r0, 0
+ ldrh r2, [r1]
+ movs r0, 0x3
+ ands r0, r2
+ cmp r0, 0x1
+ bne _08050608
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0xFF
+ beq _08050608
+ movs r0, 0x20
+ ands r0, r2
+ cmp r0, 0
+ bne _08050608
+ movs r1, 0x80
+ lsls r1, 1
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _08050608
+ movs r0, 0x40
+ ands r0, r2
+ cmp r0, 0
+ beq _08050608
+ ldr r0, _080506A0
+ add r0, r10
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ bne _080505FE
+ ldr r0, _080506A4
+ add r0, r10
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r5, r0
+ beq _08050608
+_080505FE:
+ strb r6, [r4]
+ strb r5, [r4, 0x1]
+ adds r4, 0x4
+ movs r2, 0x1
+ add r8, r2
+_08050608:
+ adds r5, 0x1
+ cmp r5, 0x1F
+ ble _080505B0
+ mov r6, r9
+ cmp r6, 0x37
+ ble _080505A2
+ mov r0, r8
+ cmp r0, 0
+ beq _0805068C
+ lsls r4, r0, 3
+ subs r0, r4, r0
+ movs r1, 0xA
+ bl __divsi3
+ adds r5, r0, 0
+ adds r0, r4, 0
+ movs r1, 0xA
+ bl __divsi3
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_808411C
+ adds r7, r0, 0
+ cmp r7, 0
+ bne _0805063E
+ movs r7, 0x1
+_0805063E:
+ ldr r1, _080506B4
+ add r1, sp
+ ldr r1, [r1]
+ cmp r7, r1
+ blt _0805064E
+ ldr r2, _080506B4
+ add r2, sp
+ ldr r7, [r2]
+_0805064E:
+ mov r0, sp
+ mov r1, r8
+ bl sub_804FED0
+ mov r0, r8
+ bl sub_8084100
+ adds r5, r0, 0
+ cmp r7, 0
+ ble _0805068C
+ adds r6, r7, 0
+ lsls r0, r5, 2
+ mov r1, sp
+ adds r4, r0, r1
+_0805066A:
+ ldrb r0, [r4]
+ ldrb r1, [r4, 0x1]
+ bl sub_8049590
+ ldrh r2, [r0, 0x4]
+ movs r1, 0x8
+ orrs r1, r2
+ strh r1, [r0, 0x4]
+ adds r4, 0x4
+ adds r5, 0x1
+ cmp r5, r8
+ bne _08050686
+ mov r4, sp
+ movs r5, 0
+_08050686:
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0805066A
+_0805068C:
+ ldr r3, _080506B8
+ 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
+_080506A0: .4byte 0x0000e218
+_080506A4: .4byte 0x0000e21a
+_080506A8: .4byte gUnknown_203B418
+_080506AC: .4byte 0x00003a08
+_080506B0: .4byte gUnknown_80F4DA4
+_080506B4: .4byte 0x00001c04
+_080506B8: .4byte 0x00001c08
+ thumb_func_end sub_8050438
+
+ thumb_func_start sub_80506BC
+sub_80506BC:
+ push {lr}
+ adds r3, r0, 0
+ movs r2, 0x1
+ ldrh r1, [r3]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _080506CE
+ movs r2, 0
+_080506CE:
+ movs r0, 0x10
+ ands r0, r1
+ cmp r0, 0
+ beq _080506D8
+ movs r2, 0
+_080506D8:
+ cmp r2, 0
+ beq _080506E6
+ ldr r0, _080506EC
+ ands r0, r1
+ movs r1, 0x2
+ orrs r0, r1
+ strh r0, [r3]
+_080506E6:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080506EC: .4byte 0x0000fffc
+ thumb_func_end sub_80506BC
+
+ thumb_func_start sub_80506F0
+sub_80506F0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xA4
+ str r1, [sp, 0x64]
+ ldrb r1, [r1, 0xD]
+ ands r1, r0
+ cmp r1, 0
+ bne _08050708
+ b _08050C20
+_08050708:
+ ldr r4, _08050738
+ movs r0, 0x8
+ bl sub_8084100
+ lsls r0, 2
+ adds r0, r4
+ ldr r4, [r0]
+ cmp r4, 0
+ bne _0805071C
+ b _08050A7C
+_0805071C:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r0, 0x31
+ bgt _0805073C
+ movs r0, 0x1
+ str r0, [sp, 0x74]
+ movs r1, 0x1F
+ mov r10, r1
+ movs r2, 0x1
+ negs r2, r2
+ str r2, [sp, 0x70]
+ b _08050746
+ .align 2, 0
+_08050738: .4byte gUnknown_80F6DF8
+_0805073C:
+ movs r0, 0
+ str r0, [sp, 0x74]
+ mov r10, r0
+ movs r1, 0x1
+ str r1, [sp, 0x70]
+_08050746:
+ movs r0, 0x32
+ bl sub_8084100
+ adds r0, 0xA
+ str r0, [sp, 0x78]
+ movs r0, 0x2
+ movs r1, 0x36
+ bl sub_808411C
+ mov r9, r0
+ movs r2, 0
+ str r2, [sp, 0x6C]
+ subs r4, 0x1
+ str r4, [sp, 0x98]
+_08050762:
+ movs r0, 0x6
+ bl sub_8084100
+ adds r0, 0x2
+ str r0, [sp, 0x68]
+ cmp r0, 0
+ bne _08050772
+ b _08050A38
+_08050772:
+ mov r0, r9
+ cmp r0, 0x37
+ bhi _080507B8
+ mov r1, r10
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0805078A
+ b _08050A74
+_0805078A:
+ mov r1, r9
+ cmp r1, 0
+ blt _080507A2
+ mov r2, r10
+ cmp r2, 0
+ blt _080507A2
+ mov r0, r9
+ cmp r0, 0x37
+ bgt _080507A2
+ mov r1, r10
+ cmp r1, 0x1F
+ ble _080507A6
+_080507A2:
+ movs r0, 0x1
+ b _080507A8
+_080507A6:
+ movs r0, 0
+_080507A8:
+ cmp r0, 0
+ bne _080507B8
+ mov r0, r9
+ mov r1, r10
+ bl sub_8049590
+ bl sub_80506BC
+_080507B8:
+ ldr r2, [sp, 0x68]
+ subs r2, 0x1
+ str r2, [sp, 0x68]
+ ldr r0, [sp, 0x6C]
+ add r9, r0
+ ldr r1, [sp, 0x70]
+ add r10, r1
+ mov r2, r10
+ cmp r2, 0x1F
+ bls _080507CE
+ b _08050A38
+_080507CE:
+ ldr r0, [sp, 0x78]
+ subs r0, 0x1
+ str r0, [sp, 0x78]
+ cmp r0, 0
+ beq _080507DA
+ b _08050A30
+_080507DA:
+ movs r1, 0x3F
+ str r1, [sp, 0x7C]
+_080507DE:
+ movs r0, 0x7
+ bl sub_8084100
+ subs r0, 0x3
+ str r0, [sp, 0x84]
+ movs r0, 0x7
+ bl sub_8084100
+ subs r1, r0, 0x3
+ ldr r6, [sp, 0x84]
+ add r6, r9
+ subs r0, r6, 0x2
+ cmp r0, 0x33
+ bhi _080508DA
+ mov r2, r10
+ adds r5, r1, r2
+ cmp r5, 0x1
+ ble _080508DA
+ cmp r5, 0x1D
+ bgt _080508DA
+ adds r4, r6, 0x1
+ adds r0, r5, 0x1
+ mov r8, r0
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r2, 0x3
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp, 0x9C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ subs r7, r5, 0x1
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ adds r0, r6, 0
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ subs r4, r6, 0x1
+ adds r0, r4, 0
+ mov r1, r8
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ beq _080508B2
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ ldr r2, [sp, 0x9C]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0x2
+ bne _080508DA
+_080508B2:
+ ldr r0, [sp, 0x84]
+ add r0, r9
+ cmp r0, 0
+ blt _080508C6
+ cmp r5, 0
+ blt _080508C6
+ cmp r0, 0x37
+ bgt _080508C6
+ cmp r5, 0x1F
+ ble _080508CA
+_080508C6:
+ movs r1, 0x1
+ b _080508CC
+_080508CA:
+ movs r1, 0
+_080508CC:
+ cmp r1, 0
+ bne _080508DA
+ adds r1, r5, 0
+ bl sub_8049590
+ bl sub_80506BC
+_080508DA:
+ ldr r1, [sp, 0x7C]
+ subs r1, 0x1
+ str r1, [sp, 0x7C]
+ cmp r1, 0
+ blt _080508E6
+ b _080507DE
+_080508E6:
+ movs r0, 0x3
+ negs r0, r0
+_080508EA:
+ movs r2, 0x3
+ negs r2, r2
+ str r2, [sp, 0x80]
+ mov r1, r9
+ adds r1, r0, r1
+ str r1, [sp, 0x90]
+ adds r0, 0x1
+ str r0, [sp, 0x8C]
+ adds r7, r1, 0
+ mov r5, r10
+ subs r5, 0x3
+_08050900:
+ movs r6, 0
+ subs r0, r7, 0x2
+ cmp r0, 0x33
+ bls _0805090A
+ b _08050A1A
+_0805090A:
+ str r5, [sp, 0x88]
+ str r5, [sp, 0x94]
+ cmp r5, 0x1
+ bgt _08050914
+ b _08050A1A
+_08050914:
+ cmp r5, 0x1D
+ ble _0805091A
+ b _08050A1A
+_0805091A:
+ adds r4, r7, 0x1
+ adds r3, r5, 0x1
+ adds r0, r4, 0
+ adds r1, r3, 0
+ str r3, [sp, 0xA0]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r2, 0x3
+ mov r8, r2
+ mov r0, r8
+ ands r0, r1
+ ldr r3, [sp, 0xA0]
+ cmp r0, 0x2
+ bne _0805093A
+ movs r6, 0x1
+_0805093A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r3, [sp, 0xA0]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r3, [sp, 0xA0]
+ cmp r0, 0x2
+ bne _08050952
+ adds r6, 0x1
+_08050952:
+ subs r2, r5, 0x1
+ adds r0, r4, 0
+ adds r1, r2, 0
+ str r2, [sp, 0x9C]
+ str r3, [sp, 0xA0]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x9C]
+ ldr r3, [sp, 0xA0]
+ cmp r0, 0x2
+ bne _08050970
+ adds r6, 0x1
+_08050970:
+ adds r0, r7, 0
+ adds r1, r3, 0
+ str r2, [sp, 0x9C]
+ str r3, [sp, 0xA0]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x9C]
+ ldr r3, [sp, 0xA0]
+ cmp r0, 0x2
+ bne _0805098C
+ adds r6, 0x1
+_0805098C:
+ adds r0, r7, 0
+ adds r1, r2, 0
+ str r2, [sp, 0x9C]
+ str r3, [sp, 0xA0]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x9C]
+ ldr r3, [sp, 0xA0]
+ cmp r0, 0x2
+ bne _080509A8
+ adds r6, 0x1
+_080509A8:
+ subs r4, r7, 0x1
+ adds r0, r4, 0
+ adds r1, r3, 0
+ str r2, [sp, 0x9C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x9C]
+ cmp r0, 0x2
+ bne _080509C2
+ adds r6, 0x1
+_080509C2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ str r2, [sp, 0x9C]
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ ldr r2, [sp, 0x9C]
+ cmp r0, 0x2
+ bne _080509DA
+ adds r6, 0x1
+_080509DA:
+ adds r0, r4, 0
+ adds r1, r2, 0
+ bl sub_804954C
+ ldrh r1, [r0]
+ mov r0, r8
+ ands r0, r1
+ cmp r0, 0x2
+ bne _080509EE
+ adds r6, 0x1
+_080509EE:
+ cmp r6, 0x3
+ ble _08050A1A
+ cmp r7, 0
+ blt _08050A04
+ cmp r5, 0
+ blt _08050A04
+ cmp r7, 0x37
+ bgt _08050A04
+ ldr r0, [sp, 0x88]
+ cmp r0, 0x1F
+ ble _08050A08
+_08050A04:
+ movs r0, 0x1
+ b _08050A0A
+_08050A08:
+ movs r0, 0
+_08050A0A:
+ cmp r0, 0
+ bne _08050A1A
+ ldr r0, [sp, 0x90]
+ ldr r1, [sp, 0x94]
+ bl sub_8049590
+ bl sub_80506BC
+_08050A1A:
+ adds r5, 0x1
+ ldr r1, [sp, 0x80]
+ adds r1, 0x1
+ str r1, [sp, 0x80]
+ cmp r1, 0x3
+ bgt _08050A28
+ b _08050900
+_08050A28:
+ ldr r0, [sp, 0x8C]
+ cmp r0, 0x3
+ bgt _08050A30
+ b _080508EA
+_08050A30:
+ ldr r2, [sp, 0x68]
+ cmp r2, 0
+ beq _08050A38
+ b _08050772
+_08050A38:
+ ldr r0, [sp, 0x6C]
+ cmp r0, 0
+ beq _08050A54
+ movs r1, 0x1
+ str r1, [sp, 0x70]
+ ldr r2, [sp, 0x74]
+ cmp r2, 0
+ beq _08050A4E
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x70]
+_08050A4E:
+ movs r1, 0
+ str r1, [sp, 0x6C]
+ b _08050A6C
+_08050A54:
+ movs r0, 0x64
+ bl sub_8084100
+ movs r2, 0x1
+ str r2, [sp, 0x6C]
+ cmp r0, 0x31
+ bgt _08050A68
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp, 0x6C]
+_08050A68:
+ movs r1, 0
+ str r1, [sp, 0x70]
+_08050A6C:
+ mov r2, r10
+ cmp r2, 0x1F
+ bhi _08050A74
+ b _08050762
+_08050A74:
+ ldr r4, [sp, 0x98]
+ cmp r4, 0
+ beq _08050A7C
+ b _0805071C
+_08050A7C:
+ movs r0, 0
+ ldr r1, [sp, 0x64]
+ ldrb r1, [r1, 0x15]
+ cmp r0, r1
+ blt _08050A88
+ b _08050BAE
+_08050A88:
+ movs r2, 0
+ mov r8, r2
+ mov r9, r2
+ movs r5, 0
+ adds r0, 0x1
+ mov r10, r0
+ b _08050A98
+_08050A96:
+ adds r5, 0x1
+_08050A98:
+ cmp r5, 0xC7
+ bgt _08050AC2
+ movs r0, 0
+ movs r1, 0x38
+ bl sub_808411C
+ mov r9, r0
+ movs r0, 0
+ movs r1, 0x20
+ bl sub_808411C
+ mov r8, r0
+ mov r0, r9
+ subs r0, 0x1
+ cmp r0, 0x35
+ bhi _08050A96
+ mov r0, r8
+ cmp r0, 0
+ ble _08050A96
+ cmp r0, 0x1E
+ bgt _08050A96
+_08050AC2:
+ cmp r5, 0xC8
+ beq _08050BA2
+ movs r7, 0
+ movs r3, 0x1
+ movs r1, 0
+_08050ACC:
+ movs r2, 0
+ lsls r0, r7, 2
+ adds r4, r7, 0x1
+ adds r0, r7
+ lsls r0, 1
+ add r0, sp
+_08050AD8:
+ cmp r7, 0
+ beq _08050AE8
+ cmp r7, 0x9
+ beq _08050AE8
+ cmp r2, 0
+ beq _08050AE8
+ cmp r2, 0x9
+ bne _08050AEC
+_08050AE8:
+ strb r3, [r0]
+ b _08050AEE
+_08050AEC:
+ strb r1, [r0]
+_08050AEE:
+ adds r0, 0x1
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _08050AD8
+ adds r7, r4, 0
+ cmp r7, 0x9
+ ble _08050ACC
+ movs r5, 0x4F
+_08050AFE:
+ movs r0, 0x8
+ bl sub_8084100
+ adds r4, r0, 0
+ adds r7, r4, 0x1
+ movs r0, 0x8
+ bl sub_8084100
+ adds r2, r0, 0x1
+ lsls r0, r4, 2
+ adds r0, r4
+ lsls r0, 1
+ adds r0, r2, r0
+ add r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08050B50
+ adds r1, r7, 0x1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 1
+ adds r0, r2, r0
+ add r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08050B50
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r1, r0, 1
+ subs r0, r1, 0x1
+ adds r0, r2, r0
+ add r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08050B50
+ adds r0, r1, 0x1
+ adds r0, r2, r0
+ add r0, sp
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08050B60
+_08050B50:
+ lsls r0, r7, 2
+ adds r0, r7
+ lsls r0, 1
+ adds r0, r2, r0
+ mov r2, sp
+ adds r1, r2, r0
+ movs r0, 0x1
+ strb r0, [r1]
+_08050B60:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08050AFE
+ movs r7, 0
+_08050B68:
+ lsls r0, r7, 2
+ adds r4, r7, 0x1
+ adds r0, r7
+ lsls r0, 1
+ mov r6, r8
+ subs r6, 0x5
+ mov r1, sp
+ adds r5, r0, r1
+ add r7, r9
+ movs r2, 0x9
+_08050B7C:
+ ldrb r0, [r5]
+ cmp r0, 0
+ bne _08050B92
+ subs r0, r7, 0x5
+ adds r1, r6, 0
+ str r2, [sp, 0x9C]
+ bl sub_8049590
+ bl sub_80506BC
+ ldr r2, [sp, 0x9C]
+_08050B92:
+ adds r6, 0x1
+ adds r5, 0x1
+ subs r2, 0x1
+ cmp r2, 0
+ bge _08050B7C
+ adds r7, r4, 0
+ cmp r7, 0x9
+ ble _08050B68
+_08050BA2:
+ mov r0, r10
+ ldr r2, [sp, 0x64]
+ ldrb r2, [r2, 0x15]
+ cmp r0, r2
+ bge _08050BAE
+ b _08050A88
+_08050BAE:
+ movs r0, 0
+ mov r9, r0
+ movs r6, 0x1
+ ldr r1, _08050BF4
+ adds r5, r1, 0
+_08050BB8:
+ movs r2, 0
+ mov r10, r2
+ mov r4, r9
+ adds r4, 0x1
+_08050BC0:
+ mov r0, r9
+ mov r1, r10
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r3, [r2]
+ movs r0, 0x3
+ ands r0, r3
+ cmp r0, 0x2
+ bne _08050C10
+ movs r1, 0xB0
+ lsls r1, 1
+ adds r0, r1, 0
+ ands r0, r3
+ cmp r0, 0
+ bne _08050BEA
+ ldrh r1, [r2, 0x4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08050BF8
+_08050BEA:
+ adds r0, r3, 0
+ ands r0, r5
+ orrs r0, r6
+ b _08050C0E
+ .align 2, 0
+_08050BF4: .4byte 0x0000fffc
+_08050BF8:
+ mov r0, r9
+ subs r0, 0x2
+ cmp r0, 0x34
+ bhi _08050C0A
+ mov r0, r10
+ cmp r0, 0x1
+ ble _08050C0A
+ cmp r0, 0x1E
+ ble _08050C10
+_08050C0A:
+ ldrh r0, [r2]
+ ands r0, r5
+_08050C0E:
+ strh r0, [r2]
+_08050C10:
+ movs r1, 0x1
+ add r10, r1
+ mov r2, r10
+ cmp r2, 0x1F
+ ble _08050BC0
+ mov r9, r4
+ cmp r4, 0x37
+ ble _08050BB8
+_08050C20:
+ add sp, 0xA4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80506F0
+
+ thumb_func_start sub_8050C30
+sub_8050C30:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08050F3C
+ add sp, r4
+ mov r8, r0
+ mov r9, r1
+ lsls r2, 24
+ lsrs r2, 24
+ movs r0, 0xE0
+ lsls r0, 3
+ add r0, sp
+ str r2, [r0]
+ movs r7, 0
+ mov r1, r8
+ lsls r1, 5
+ movs r2, 0xE2
+ lsls r2, 3
+ add r2, sp
+ str r1, [r2]
+_08050C5C:
+ movs r6, 0
+ lsls r2, r7, 5
+ adds r3, r7, 0x1
+ mov r10, r3
+ mov r5, sp
+ adds r4, r2, r5
+_08050C68:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ movs r3, 0x3
+ ands r3, r0
+ movs r0, 0
+ strb r0, [r4]
+ movs r0, 0xE0
+ lsls r0, 3
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _08050C92
+ ldrh r0, [r2]
+ ldr r5, _08050F40
+ adds r1, r5, 0
+ ands r0, r1
+ strh r0, [r2]
+_08050C92:
+ cmp r3, 0x1
+ beq _08050CA8
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08050CA8
+ ldrb r0, [r4]
+ movs r1, 0x1
+ orrs r0, r1
+ strb r0, [r4]
+_08050CA8:
+ cmp r3, 0x2
+ bne _08050CBE
+ ldrh r1, [r2]
+ movs r0, 0x4
+ ands r0, r1
+ cmp r0, 0
+ bne _08050CBE
+ ldrb r0, [r4]
+ movs r1, 0x2
+ orrs r0, r1
+ strb r0, [r4]
+_08050CBE:
+ adds r4, 0x1
+ adds r6, 0x1
+ cmp r6, 0x1F
+ ble _08050C68
+ mov r7, r10
+ cmp r7, 0x37
+ ble _08050C5C
+ movs r1, 0xE2
+ lsls r1, 3
+ add r1, sp
+ ldr r0, [r1]
+ add r0, r9
+ mov r3, sp
+ adds r2, r3, r0
+ ldrb r1, [r2]
+ movs r0, 0x50
+ orrs r0, r1
+ strb r0, [r2]
+ ldr r0, _08050F44
+ ldr r1, [r0]
+ ldr r5, _08050F48
+ adds r0, r1, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, r8
+ beq _08050CF4
+ b _08050F36
+_08050CF4:
+ ldr r3, _08050F4C
+ adds r0, r1, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ cmp r0, r9
+ beq _08050D02
+ b _08050F36
+_08050D02:
+ ldr r1, _08050F50
+ movs r0, 0
+ str r0, [r1]
+ movs r0, 0x40
+ mov r9, r0
+_08050D0C:
+ movs r1, 0
+ ldr r2, _08050F54
+ add r2, sp
+ str r1, [r2]
+ ldr r3, _08050F50
+ ldr r0, [r3]
+ adds r0, 0x1
+ str r0, [r3]
+ movs r7, 0
+_08050D1E:
+ movs r6, 0
+ lsls r2, r7, 5
+ adds r5, r7, 0x1
+ mov r10, r5
+ subs r0, r7, 0x1
+ movs r1, 0xE1
+ lsls r1, 3
+ add r1, sp
+ str r0, [r1]
+ lsls r0, 5
+ mov r1, sp
+ subs r1, 0x1
+ adds r5, r2, r1
+ add r0, sp
+ mov r8, r0
+ mov r2, r10
+ ldr r3, _08050F58
+ add r3, sp
+ str r2, [r3]
+ lsls r0, r2, 5
+ add r0, sp
+ mov r12, r0
+_08050D4A:
+ ldrb r1, [r5, 0x1]
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _08050D56
+ b _08050EDA
+_08050D56:
+ movs r3, 0x40
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _08050D62
+ b _08050EDA
+_08050D62:
+ ldr r2, _08050F54
+ add r2, sp
+ ldr r0, [r2]
+ adds r0, 0x1
+ str r0, [r2]
+ movs r0, 0xBF
+ ands r0, r1
+ movs r2, 0
+ movs r1, 0x80
+ orrs r0, r1
+ strb r0, [r5, 0x1]
+ cmp r7, 0
+ ble _08050D90
+ mov r0, r8
+ ldrb r1, [r0]
+ movs r0, 0x83
+ ands r0, r1
+ cmp r0, 0
+ bne _08050D90
+ adds r0, r1, 0
+ orrs r0, r3
+ mov r1, r8
+ strb r0, [r1]
+_08050D90:
+ cmp r6, 0
+ ble _08050DA4
+ ldrb r1, [r5]
+ movs r0, 0x83
+ ands r0, r1
+ cmp r0, 0
+ bne _08050DA4
+ mov r0, r9
+ orrs r0, r1
+ strb r0, [r5]
+_08050DA4:
+ cmp r7, 0x36
+ bgt _08050DBA
+ mov r2, r12
+ ldrb r1, [r2]
+ movs r0, 0x83
+ ands r0, r1
+ cmp r0, 0
+ bne _08050DBA
+ mov r0, r9
+ orrs r0, r1
+ strb r0, [r2]
+_08050DBA:
+ cmp r6, 0x1E
+ bgt _08050DCE
+ ldrb r1, [r5, 0x2]
+ movs r0, 0x83
+ ands r0, r1
+ cmp r0, 0
+ bne _08050DCE
+ mov r0, r9
+ orrs r0, r1
+ strb r0, [r5, 0x2]
+_08050DCE:
+ cmp r7, 0
+ ble _08050E12
+ cmp r6, 0
+ ble _08050E12
+ movs r3, 0xE1
+ lsls r3, 3
+ add r3, sp
+ ldr r3, [r3]
+ lsls r1, r3, 5
+ subs r0, r1, 0x1
+ adds r0, r6, r0
+ mov r2, sp
+ adds r4, r2, r0
+ ldrb r3, [r4]
+ movs r0, 0x87
+ ands r0, r3
+ cmp r0, 0
+ bne _08050E12
+ adds r0, r6, r1
+ add r0, sp
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E12
+ ldrb r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E12
+ mov r0, r9
+ orrs r0, r3
+ strb r0, [r4]
+_08050E12:
+ cmp r7, 0x36
+ bgt _08050E54
+ cmp r6, 0
+ ble _08050E54
+ ldr r3, _08050F58
+ add r3, sp
+ ldr r3, [r3]
+ lsls r1, r3, 5
+ subs r0, r1, 0x1
+ adds r0, r6, r0
+ mov r2, sp
+ adds r4, r2, r0
+ ldrb r3, [r4]
+ movs r0, 0x87
+ ands r0, r3
+ cmp r0, 0
+ bne _08050E54
+ adds r0, r6, r1
+ add r0, sp
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E54
+ ldrb r1, [r5]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E54
+ mov r0, r9
+ orrs r0, r3
+ strb r0, [r4]
+_08050E54:
+ cmp r7, 0
+ ble _08050E98
+ cmp r6, 0x1E
+ bgt _08050E98
+ movs r3, 0xE1
+ lsls r3, 3
+ add r3, sp
+ ldr r3, [r3]
+ lsls r1, r3, 5
+ adds r0, r1, 0x1
+ adds r0, r6, r0
+ mov r2, sp
+ adds r4, r2, r0
+ ldrb r3, [r4]
+ movs r0, 0x87
+ ands r0, r3
+ cmp r0, 0
+ bne _08050E98
+ adds r0, r6, r1
+ add r0, sp
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E98
+ ldrb r1, [r5, 0x2]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050E98
+ mov r0, r9
+ orrs r0, r3
+ strb r0, [r4]
+_08050E98:
+ cmp r7, 0x36
+ bgt _08050EDA
+ cmp r6, 0x1E
+ bgt _08050EDA
+ ldr r3, _08050F58
+ add r3, sp
+ ldr r3, [r3]
+ lsls r1, r3, 5
+ adds r0, r1, 0x1
+ adds r0, r6, r0
+ mov r2, sp
+ adds r4, r2, r0
+ ldrb r3, [r4]
+ movs r0, 0x87
+ ands r0, r3
+ cmp r0, 0
+ bne _08050EDA
+ adds r0, r6, r1
+ add r0, sp
+ ldrb r1, [r0]
+ movs r2, 0x1
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050EDA
+ ldrb r1, [r5, 0x2]
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050EDA
+ mov r0, r9
+ orrs r0, r3
+ strb r0, [r4]
+_08050EDA:
+ adds r5, 0x1
+ movs r3, 0x1
+ add r8, r3
+ add r12, r3
+ adds r6, 0x1
+ cmp r6, 0x1F
+ bgt _08050EEA
+ b _08050D4A
+_08050EEA:
+ mov r7, r10
+ cmp r7, 0x37
+ bgt _08050EF2
+ b _08050D1E
+_08050EF2:
+ ldr r5, _08050F54
+ add r5, sp
+ ldr r5, [r5]
+ cmp r5, 0
+ beq _08050EFE
+ b _08050D0C
+_08050EFE:
+ movs r7, 0
+_08050F00:
+ movs r6, 0
+ lsls r2, r7, 5
+ mov r0, sp
+ adds r4, r2, r0
+_08050F08:
+ adds r0, r7, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r1, [r4]
+ movs r0, 0x87
+ ands r0, r1
+ cmp r0, 0
+ bne _08050F68
+ movs r1, 0xE0
+ lsls r1, 3
+ add r1, sp
+ ldr r1, [r1]
+ cmp r1, 0
+ bne _08050F5C
+ ldrh r0, [r2]
+ movs r2, 0x80
+ lsls r2, 1
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08050F68
+_08050F36:
+ movs r0, 0
+ b _08050F78
+ .align 2, 0
+_08050F3C: .4byte 0xfffff8ec
+_08050F40: .4byte 0x00007fff
+_08050F44: .4byte gUnknown_203B418
+_08050F48: .4byte 0x0000e21c
+_08050F4C: .4byte 0x0000e21e
+_08050F50: .4byte gUnknown_202F1D4
+_08050F54: .4byte 0x00000704
+_08050F58: .4byte 0x0000070c
+_08050F5C:
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r0, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+_08050F68:
+ adds r4, 0x1
+ adds r6, 0x1
+ cmp r6, 0x1F
+ ble _08050F08
+ adds r7, 0x1
+ cmp r7, 0x37
+ ble _08050F00
+ movs r0, 0x1
+_08050F78:
+ ldr r3, _08050F8C
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08050F8C: .4byte 0x00000714
+ thumb_func_end sub_8050C30
+
+ thumb_func_start sub_8050F90
+sub_8050F90:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x3C
+ str r0, [sp]
+ str r1, [sp, 0x4]
+ str r2, [sp, 0x8]
+ str r3, [sp, 0xC]
+ movs r0, 0
+ str r0, [sp, 0x10]
+ movs r1, 0
+ str r1, [sp, 0x14]
+ movs r2, 0
+ b _080511D0
+_08050FB0:
+ movs r4, 0
+ str r4, [sp, 0x18]
+ ldr r5, [sp, 0x1C]
+ adds r5, 0x1
+ str r5, [sp, 0x28]
+ ldr r6, [sp, 0x4]
+ cmp r4, r6
+ blt _08050FC2
+ b _080511CE
+_08050FC2:
+ ldr r1, [sp, 0x18]
+ lsls r0, r1, 2
+ ldr r2, [sp, 0xC]
+ adds r0, r2
+ ldr r3, [r0]
+ adds r4, r3, 0x2
+ mov r9, r4
+ ldr r5, [sp, 0x1C]
+ lsls r1, r5, 2
+ ldr r6, [sp, 0x5C]
+ adds r1, r6
+ ldr r2, [r1]
+ adds r4, r2, 0x2
+ mov r10, r4
+ ldr r0, [r0, 0x4]
+ subs r0, r3
+ subs r4, r0, 0x4
+ ldr r0, [r1, 0x4]
+ subs r0, r2
+ subs r7, r0, 0x4
+ movs r3, 0x5
+ movs r5, 0x5
+ ldr r6, [sp, 0x4]
+ cmp r6, 0x2
+ bgt _08050FF8
+ movs r3, 0xA
+ movs r4, 0xE
+_08050FF8:
+ ldr r0, [sp, 0x8]
+ cmp r0, 0x1
+ bne _08051002
+ movs r5, 0x10
+ movs r7, 0x18
+_08051002:
+ ldr r2, [sp, 0x1C]
+ lsls r1, r2, 5
+ ldr r6, [sp, 0x18]
+ lsls r2, r6, 4
+ subs r0, r2, r6
+ lsls r0, 5
+ ldr r6, [sp]
+ adds r0, r6
+ adds r6, r1, r0
+ ldrb r0, [r6, 0xA]
+ str r1, [sp, 0x30]
+ str r2, [sp, 0x2C]
+ cmp r0, 0
+ bne _08051020
+ b _08051130
+_08051020:
+ ldr r0, [sp, 0x14]
+ ldr r1, [sp, 0x60]
+ cmp r0, r1
+ beq _0805108C
+ adds r0, r3, 0
+ adds r1, r4, 0
+ bl sub_808411C
+ adds r6, r0, 0
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_808411C
+ adds r5, r0, 0
+ movs r1, 0x1
+ adds r0, r6, 0
+ orrs r0, r1
+ cmp r0, r4
+ bge _08051048
+ adds r6, r0, 0
+_08051048:
+ adds r0, r5, 0
+ orrs r0, r1
+ cmp r0, r7
+ bge _08051052
+ adds r5, r0, 0
+_08051052:
+ lsls r0, r5, 1
+ adds r0, r5
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ cmp r6, r0
+ ble _08051062
+ adds r6, r0, 0
+_08051062:
+ lsls r0, r6, 1
+ adds r0, r6
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ cmp r5, r0
+ ble _08051072
+ adds r5, r0, 0
+_08051072:
+ subs r0, r4, r6
+ bl sub_8084100
+ mov r2, r9
+ adds r4, r0, r2
+ subs r0, r7, r5
+ bl sub_8084100
+ mov r3, r10
+ adds r7, r0, r3
+ adds r3, r4, r6
+ adds r6, r7, r5
+ b _08051098
+_0805108C:
+ mov r4, r9
+ mov r7, r10
+ ldr r5, [sp, 0x64]
+ adds r3, r4, r5
+ ldr r0, [sp, 0x68]
+ adds r6, r7, r0
+_08051098:
+ ldr r1, [sp, 0x2C]
+ ldr r2, [sp, 0x18]
+ subs r0, r1, r2
+ lsls r0, 5
+ ldr r5, [sp]
+ adds r0, r5
+ ldr r1, [sp, 0x30]
+ adds r0, r1, r0
+ strh r4, [r0]
+ strh r3, [r0, 0x4]
+ strh r7, [r0, 0x2]
+ strh r6, [r0, 0x6]
+ adds r5, r4, 0
+ ldr r2, [sp, 0x10]
+ adds r2, 0x1
+ str r2, [sp, 0x20]
+ ldr r4, [sp, 0x14]
+ adds r4, 0x1
+ str r4, [sp, 0x24]
+ ldr r0, [sp, 0x18]
+ adds r0, 0x1
+ mov r10, r0
+ cmp r5, r3
+ bge _08051108
+_080510C8:
+ adds r4, r7, 0
+ adds r1, r5, 0x1
+ mov r8, r1
+ cmp r4, r6
+ bge _08051102
+ ldr r2, _0805112C
+ mov r9, r2
+_080510D6:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ str r3, [sp, 0x38]
+ bl sub_8049590
+ ldrh r1, [r0]
+ mov r2, r9
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ mov r1, sp
+ ldrb r1, [r1, 0x10]
+ strb r1, [r0, 0x9]
+ adds r4, 0x1
+ ldr r3, [sp, 0x38]
+ cmp r4, r6
+ blt _080510D6
+_08051102:
+ mov r5, r8
+ cmp r5, r3
+ blt _080510C8
+_08051108:
+ ldr r2, [sp, 0x14]
+ ldr r3, [sp, 0x60]
+ cmp r2, r3
+ beq _08051124
+ ldr r4, [sp, 0x2C]
+ ldr r5, [sp, 0x18]
+ subs r0, r4, r5
+ lsls r0, 5
+ ldr r6, [sp]
+ adds r0, r6
+ ldr r1, [sp, 0x30]
+ adds r0, r1, r0
+ movs r1, 0x1
+ strb r1, [r0, 0x1D]
+_08051124:
+ ldr r2, [sp, 0x20]
+ str r2, [sp, 0x10]
+ b _080511BE
+ .align 2, 0
+_0805112C: .4byte 0x0000fffc
+_08051130:
+ movs r1, 0x2
+ movs r3, 0x4
+ movs r2, 0x2
+ mov r8, r3
+ ldr r5, [sp, 0x18]
+ cmp r5, 0
+ bne _08051140
+ movs r1, 0x1
+_08051140:
+ ldr r0, [sp, 0x1C]
+ cmp r0, 0
+ bne _08051148
+ movs r2, 0x1
+_08051148:
+ ldr r0, [sp, 0x4]
+ subs r0, 0x1
+ ldr r5, [sp, 0x18]
+ cmp r5, r0
+ bne _08051154
+ movs r3, 0x2
+_08051154:
+ ldr r0, [sp, 0x8]
+ subs r0, 0x1
+ ldr r5, [sp, 0x1C]
+ cmp r5, r0
+ bne _08051162
+ movs r0, 0x2
+ mov r8, r0
+_08051162:
+ mov r5, r9
+ adds r0, r5, r1
+ adds r1, r5, r4
+ subs r1, r3
+ str r2, [sp, 0x34]
+ bl sub_808411C
+ adds r5, r0, 0
+ ldr r2, [sp, 0x34]
+ mov r1, r10
+ adds r0, r1, r2
+ adds r1, r7
+ mov r2, r8
+ subs r1, r2
+ bl sub_808411C
+ adds r4, r0, 0
+ strh r5, [r6]
+ adds r0, r5, 0x1
+ strh r0, [r6, 0x4]
+ strh r4, [r6, 0x2]
+ adds r0, r4, 0x1
+ strh r0, [r6, 0x6]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r3, _080511EC
+ adds r2, r3, 0
+ ands r1, r2
+ movs r2, 0x1
+ orrs r1, r2
+ strh r1, [r0]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8049590
+ movs r1, 0xFF
+ strb r1, [r0, 0x9]
+ ldr r4, [sp, 0x14]
+ adds r4, 0x1
+ str r4, [sp, 0x24]
+ ldr r5, [sp, 0x18]
+ adds r5, 0x1
+ mov r10, r5
+_080511BE:
+ ldr r6, [sp, 0x24]
+ str r6, [sp, 0x14]
+ mov r0, r10
+ str r0, [sp, 0x18]
+ ldr r1, [sp, 0x4]
+ cmp r0, r1
+ bge _080511CE
+ b _08050FC2
+_080511CE:
+ ldr r2, [sp, 0x28]
+_080511D0:
+ str r2, [sp, 0x1C]
+ ldr r3, [sp, 0x8]
+ cmp r2, r3
+ bge _080511DA
+ b _08050FB0
+_080511DA:
+ add sp, 0x3C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080511EC: .4byte 0x0000fffc
+ thumb_func_end sub_8050F90
+
+ thumb_func_start sub_80511F0
+sub_80511F0:
+ push {r4-r6,lr}
+ ldr r6, _08051204
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _0805120C
+ subs r0, 0x1
+ strb r0, [r6]
+ ldr r0, _08051208
+ ldrb r0, [r0]
+ b _08051244
+ .align 2, 0
+_08051204: .4byte gUnknown_202F1E1
+_08051208: .4byte gUnknown_202F1E0
+_0805120C:
+ ldr r1, _0805122C
+ ldr r5, _08051230
+ ldr r2, [r5]
+ ldrb r3, [r2]
+ strb r3, [r1]
+ adds r4, r2, 0x1
+ str r4, [r5]
+ lsls r0, r3, 24
+ lsrs r0, 24
+ cmp r0, 0xE
+ bne _08051234
+ ldrb r0, [r2, 0x1]
+ strb r0, [r1]
+ adds r0, r4, 0x1
+ str r0, [r5]
+ b _08051242
+ .align 2, 0
+_0805122C: .4byte gUnknown_202F1E0
+_08051230: .4byte gUnknown_202F1DC
+_08051234:
+ movs r0, 0xF
+ ands r0, r3
+ strb r0, [r6]
+ movs r0, 0xF0
+ ands r0, r3
+ lsrs r0, 4
+ strb r0, [r1]
+_08051242:
+ ldrb r0, [r1]
+_08051244:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80511F0
+
+ thumb_func_start sub_805124C
+sub_805124C:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ ldr r5, [sp, 0x1C]
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r5, 24
+ lsrs r5, 24
+ ldrh r6, [r0]
+ movs r7, 0x80
+ lsls r7, 1
+ adds r4, r7, 0
+ movs r7, 0
+ mov r8, r7
+ orrs r4, r6
+ strh r4, [r0]
+ mov r4, r8
+ strb r4, [r0, 0xE]
+ str r5, [sp]
+ bl sub_8051A74
+ lsls r0, 24
+ lsrs r0, 24
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805124C
+
+ thumb_func_start sub_8051288
+sub_8051288:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xC
+ str r0, [sp, 0x4]
+ ldr r0, _08051374
+ ldr r7, [r0]
+ ldr r0, _08051378
+ adds r3, r7, r0
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ ldr r2, [sp, 0x4]
+ lsls r1, r2, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ ldrb r2, [r0]
+ mov r10, r2
+ ldrb r0, [r0, 0x1]
+ mov r9, r0
+ ldr r2, _0805137C
+ adds r0, r7, r2
+ movs r4, 0
+ mov r2, r10
+ strh r2, [r0]
+ ldr r2, _08051380
+ adds r0, r7, r2
+ mov r2, r9
+ strh r2, [r0]
+ ldr r2, _08051384
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ adds r1, r0
+ ldr r0, [r1]
+ adds r0, 0x3
+ str r0, [r2]
+ ldr r0, _08051388
+ strb r4, [r0]
+ movs r6, 0x5
+ mov r0, r9
+ adds r0, 0x5
+ cmp r6, r0
+ bge _0805132E
+ movs r1, 0x5
+ add r1, r10
+ mov r8, r1
+ str r0, [sp, 0x8]
+_080512E8:
+ movs r5, 0x5
+ cmp r5, r8
+ bge _08051326
+_080512EE:
+ bl sub_80511F0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ movs r1, 0x1
+ str r1, [sp]
+ adds r1, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_805124C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08051320
+ ldr r2, _0805138C
+ adds r0, r7, r2
+ strh r5, [r0]
+ ldr r1, _08051390
+ adds r0, r7, r1
+ strh r6, [r0]
+_08051320:
+ adds r5, 0x1
+ cmp r5, r8
+ blt _080512EE
+_08051326:
+ adds r6, 0x1
+ ldr r2, [sp, 0x8]
+ cmp r6, r2
+ blt _080512E8
+_0805132E:
+ movs r6, 0
+ ldr r0, _08051394
+ adds r7, r0, 0
+_08051334:
+ movs r5, 0
+ adds r4, r6, 0x1
+_08051338:
+ cmp r5, 0x4
+ ble _08051350
+ mov r0, r10
+ adds r0, 0x5
+ cmp r5, r0
+ bge _08051350
+ cmp r6, 0x4
+ ble _08051350
+ mov r0, r9
+ adds r0, 0x5
+ cmp r6, r0
+ blt _080513A0
+_08051350:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x10
+ movs r3, 0
+ orrs r1, r0
+ strh r1, [r2]
+ ldr r0, _08051398
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0805139C
+ ands r1, r7
+ movs r0, 0x3
+ orrs r1, r0
+ b _0805139E
+ .align 2, 0
+_08051374: .4byte gUnknown_203B418
+_08051378: .4byte 0x00013568
+_0805137C: .4byte 0x0000e260
+_08051380: .4byte 0x0000e262
+_08051384: .4byte gUnknown_202F1DC
+_08051388: .4byte gUnknown_202F1E1
+_0805138C: .4byte 0x0000e21c
+_08051390: .4byte 0x0000e21e
+_08051394: .4byte 0x0000fffc
+_08051398: .4byte gUnknown_202F1A8
+_0805139C:
+ ands r1, r7
+_0805139E:
+ strh r1, [r2]
+_080513A0:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _08051338
+ adds r6, r4, 0
+ cmp r6, 0x1F
+ ble _08051334
+ ldr r1, [sp, 0x4]
+ cmp r1, 0x4
+ bne _080513DA
+ movs r6, 0x5
+ ldr r2, _0805142C
+ adds r7, r2, 0
+_080513B8:
+ movs r5, 0x2
+ adds r4, r6, 0x1
+_080513BC:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ ldrh r2, [r0]
+ movs r1, 0x10
+ orrs r1, r2
+ ands r1, r7
+ strh r1, [r0]
+ adds r5, 0x1
+ cmp r5, 0x4
+ ble _080513BC
+ adds r6, r4, 0
+ cmp r6, 0x10
+ ble _080513B8
+_080513DA:
+ ldr r0, _08051430
+ ldr r0, [r0]
+ ldr r1, _08051434
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x3F
+ ble _08051416
+ movs r6, 0
+_080513EC:
+ movs r5, 0
+ adds r4, r6, 0x1
+_080513F0:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _0805140A
+ movs r0, 0x10
+ orrs r0, r1
+ strh r0, [r2]
+_0805140A:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _080513F0
+ adds r6, r4, 0
+ cmp r6, 0x1F
+ ble _080513EC
+_08051416:
+ bl sub_804E9DC
+ add sp, 0xC
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0805142C: .4byte 0x0000fffc
+_08051430: .4byte gUnknown_203B418
+_08051434: .4byte 0x00003a0e
+ thumb_func_end sub_8051288
+
+ thumb_func_start sub_8051438
+sub_8051438:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r9, r0
+ ldr r0, _080515AC
+ ldr r0, [r0]
+ str r0, [sp, 0x4]
+ ldr r2, _080515B0
+ ldr r4, _080515B4
+ adds r3, r0, r4
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ lsls r1, 2
+ adds r0, r1, r0
+ ldr r0, [r0]
+ adds r0, 0x3
+ str r0, [r2]
+ ldr r2, _080515B8
+ movs r0, 0
+ strb r0, [r2]
+ ldr r0, [r3]
+ ldr r0, [r0, 0x4]
+ adds r1, r0
+ ldr r0, [r1]
+ ldrb r1, [r0, 0x2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0805147A
+ b _080515D8
+_0805147A:
+ ldr r5, [sp, 0x4]
+ ldr r0, _080515BC
+ adds r1, r5, r0
+ mov r2, r9
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ str r0, [r1]
+ ldr r4, _080515C0
+ adds r1, r5, r4
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ str r0, [r1]
+ ldr r0, [sp, 0x4]
+ ldr r2, _080515C4
+ adds r1, r0, r2
+ mov r3, r9
+ movs r4, 0x4
+ ldrsh r0, [r3, r4]
+ str r0, [r1]
+ ldr r5, [sp, 0x4]
+ ldr r0, _080515C8
+ adds r1, r5, r0
+ movs r2, 0x6
+ ldrsh r0, [r3, r2]
+ str r0, [r1]
+ movs r3, 0
+ str r3, [sp, 0x8]
+ mov r4, r9
+ movs r5, 0x2
+ ldrsh r4, [r4, r5]
+ mov r8, r4
+ mov r1, r9
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+ cmp r8, r0
+ blt _080514C4
+ b _08051640
+_080514C4:
+ mov r3, r9
+ movs r4, 0
+ ldrsh r7, [r3, r4]
+ movs r5, 0x4
+ ldrsh r0, [r3, r5]
+ ldr r1, [sp, 0x8]
+ adds r1, 0x1
+ str r1, [sp, 0x10]
+ mov r2, r8
+ adds r2, 0x1
+ str r2, [sp, 0xC]
+ cmp r7, r0
+ bge _08051598
+ ldr r4, _080515CC
+ ldr r3, [sp, 0x4]
+ adds r4, r3, r4
+ str r4, [sp, 0x14]
+ movs r5, 0
+ str r5, [sp, 0x18]
+ ldr r0, [sp, 0x8]
+ mov r10, r0
+_080514EE:
+ bl sub_80511F0
+ adds r5, r0, 0
+ lsls r5, 24
+ lsrs r5, 24
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8049590
+ adds r6, r0, 0
+ ldr r1, [sp, 0x4]
+ ldr r2, _080515D0
+ adds r0, r1, r2
+ add r0, r10
+ strb r5, [r0]
+ ldr r3, [sp, 0x8]
+ lsls r4, r3, 1
+ adds r4, r3
+ lsls r4, 3
+ ldr r1, [sp, 0x14]
+ adds r0, r1, r4
+ movs r2, 0
+ str r2, [sp]
+ adds r1, r5, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_805124C
+ ldrb r1, [r6, 0x9]
+ ldr r3, [sp, 0x18]
+ adds r4, r3
+ ldr r5, [sp, 0x4]
+ adds r4, r5, r4
+ adds r0, r6, 0
+ ldr r2, _080515CC
+ adds r4, r2
+ ldm r4!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ ldm r4!, {r2,r3,r5}
+ stm r0!, {r2,r3,r5}
+ mov r3, r9
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ adds r0, 0x2
+ cmp r7, r0
+ blt _08051572
+ movs r5, 0x4
+ ldrsh r0, [r3, r5]
+ subs r0, 0x2
+ cmp r7, r0
+ bge _08051572
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ adds r0, 0x2
+ cmp r8, r0
+ blt _08051572
+ movs r4, 0x6
+ ldrsh r0, [r3, r4]
+ subs r0, 0x2
+ cmp r8, r0
+ bge _08051572
+ movs r0, 0x88
+ lsls r0, 1
+ strh r0, [r6]
+ movs r0, 0xE
+ strb r0, [r6, 0xE]
+_08051572:
+ strb r1, [r6, 0x9]
+ ldr r5, [sp, 0x4]
+ ldr r2, _080515D4
+ adds r0, r5, r2
+ strb r1, [r0]
+ ldr r3, [sp, 0x14]
+ adds r3, 0xC0
+ str r3, [sp, 0x14]
+ ldr r4, [sp, 0x18]
+ adds r4, 0xC0
+ str r4, [sp, 0x18]
+ movs r5, 0x8
+ add r10, r5
+ adds r7, 0x1
+ mov r1, r9
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r7, r0
+ blt _080514EE
+_08051598:
+ ldr r3, [sp, 0x10]
+ str r3, [sp, 0x8]
+ ldr r4, [sp, 0xC]
+ mov r8, r4
+ mov r5, r9
+ movs r1, 0x6
+ ldrsh r0, [r5, r1]
+ cmp r8, r0
+ blt _080514C4
+ b _08051640
+ .align 2, 0
+_080515AC: .4byte gUnknown_203B418
+_080515B0: .4byte gUnknown_202F1DC
+_080515B4: .4byte 0x00013568
+_080515B8: .4byte gUnknown_202F1E1
+_080515BC: .4byte 0x0000e250
+_080515C0: .4byte 0x0000e254
+_080515C4: .4byte 0x0000e258
+_080515C8: .4byte 0x0000e25c
+_080515CC: .4byte 0x0000e27c
+_080515D0: .4byte 0x0000e87c
+_080515D4: .4byte 0x0000e8bc
+_080515D8:
+ mov r2, r9
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ mov r8, r2
+ b _08051636
+_080515E2:
+ mov r0, r9
+ movs r1, 0
+ ldrsh r7, [r0, r1]
+ movs r2, 0x4
+ ldrsh r0, [r0, r2]
+ mov r3, r8
+ adds r3, 0x1
+ str r3, [sp, 0xC]
+ cmp r7, r0
+ bge _08051632
+_080515F6:
+ bl sub_80511F0
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ adds r0, r7, 0
+ mov r1, r8
+ bl sub_8049590
+ adds r5, r0, 0
+ ldrb r6, [r5, 0x9]
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r5, 0
+ adds r1, r4, 0
+ adds r2, r7, 0
+ mov r3, r8
+ bl sub_805124C
+ strb r6, [r5, 0x9]
+ ldr r4, [sp, 0x4]
+ ldr r5, _08051650
+ adds r0, r4, r5
+ strb r6, [r0]
+ adds r7, 0x1
+ mov r1, r9
+ movs r2, 0x4
+ ldrsh r0, [r1, r2]
+ cmp r7, r0
+ blt _080515F6
+_08051632:
+ ldr r3, [sp, 0xC]
+ mov r8, r3
+_08051636:
+ mov r4, r9
+ movs r5, 0x6
+ ldrsh r0, [r4, r5]
+ cmp r8, r0
+ blt _080515E2
+_08051640:
+ 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
+_08051650: .4byte 0x0000e8bc
+ thumb_func_end sub_8051438
+
+ thumb_func_start sub_8051654
+sub_8051654:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ str r0, [sp]
+ ldr r4, _080516EC
+ ldr r1, [r4, 0x8]
+ ldr r0, [r4]
+ subs r1, r0
+ subs r1, 0x2
+ movs r0, 0x3
+ bl sub_808411C
+ mov r8, r0
+ cmp r0, 0x2
+ bgt _0805167C
+ movs r0, 0x3
+ mov r8, r0
+_0805167C:
+ ldr r1, [r4, 0xC]
+ ldr r0, [r4, 0x4]
+ subs r1, r0
+ subs r1, 0x2
+ movs r0, 0x3
+ bl sub_808411C
+ mov r9, r0
+ cmp r0, 0x2
+ bgt _08051694
+ movs r1, 0x3
+ mov r9, r1
+_08051694:
+ movs r0, 0x2
+ movs r1, 0x4
+ bl sub_808411C
+ mov r10, r0
+ movs r5, 0
+ cmp r5, r10
+ bge _08051734
+ ldr r0, [r4, 0x8]
+ ldr r1, [r4]
+ subs r0, r1
+ cmp r0, r8
+ ble _08051734
+ adds r6, r4, 0
+_080516B0:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r0, 0x31
+ bgt _080516F4
+ ldr r4, [r6, 0x4]
+ ldr r0, [r6, 0xC]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _080516E4
+ ldr r5, _080516EC
+ ldr r0, _080516F0
+ adds r2, r0, 0
+_080516CA:
+ ldr r0, [r5]
+ adds r1, r4, 0
+ str r2, [sp, 0xC]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r2, [sp, 0xC]
+ ands r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, [r5, 0xC]
+ cmp r4, r0
+ blt _080516CA
+_080516E4:
+ ldr r0, [r6]
+ adds r0, 0x1
+ str r0, [r6]
+ b _08051724
+ .align 2, 0
+_080516EC: .4byte gUnknown_202F1B8
+_080516F0: .4byte 0x0000ffdf
+_080516F4:
+ ldr r0, [r6, 0x8]
+ subs r0, 0x1
+ str r0, [r6, 0x8]
+ ldr r4, [r6, 0x4]
+ ldr r0, [r6, 0xC]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _08051724
+ ldr r5, _08051784
+ ldr r1, _08051788
+ adds r2, r1, 0
+_0805170A:
+ ldr r0, [r5, 0x8]
+ adds r1, r4, 0
+ str r2, [sp, 0xC]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r2, [sp, 0xC]
+ ands r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, [r5, 0xC]
+ cmp r4, r0
+ blt _0805170A
+_08051724:
+ adds r5, r7, 0
+ cmp r5, r10
+ bge _08051734
+ ldr r0, [r6, 0x8]
+ ldr r1, [r6]
+ subs r0, r1
+ cmp r0, r8
+ bgt _080516B0
+_08051734:
+ movs r5, 0
+ ldr r3, _08051784
+ cmp r5, r10
+ bge _080517CE
+ ldr r0, [r3, 0xC]
+ ldr r1, [r3, 0x4]
+ subs r0, r1
+ cmp r0, r9
+ ble _080517CE
+ adds r6, r3, 0
+_08051748:
+ movs r0, 0x64
+ bl sub_8084100
+ cmp r0, 0x31
+ bgt _0805178C
+ ldr r4, [r6]
+ ldr r0, [r6, 0x8]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _0805177C
+ ldr r5, _08051784
+ ldr r0, _08051788
+ adds r2, r0, 0
+_08051762:
+ ldr r1, [r5, 0x4]
+ adds r0, r4, 0
+ str r2, [sp, 0xC]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r2, [sp, 0xC]
+ ands r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, [r5, 0x8]
+ cmp r4, r0
+ blt _08051762
+_0805177C:
+ ldr r0, [r6, 0x4]
+ adds r0, 0x1
+ str r0, [r6, 0x4]
+ b _080517BC
+ .align 2, 0
+_08051784: .4byte gUnknown_202F1B8
+_08051788: .4byte 0x0000ffdf
+_0805178C:
+ ldr r0, [r6, 0xC]
+ subs r0, 0x1
+ str r0, [r6, 0xC]
+ ldr r4, [r6]
+ ldr r0, [r6, 0x8]
+ adds r7, r5, 0x1
+ cmp r4, r0
+ bge _080517BC
+ ldr r5, _080518E4
+ ldr r1, _080518E8
+ adds r2, r1, 0
+_080517A2:
+ ldr r1, [r5, 0xC]
+ adds r0, r4, 0
+ str r2, [sp, 0xC]
+ bl sub_8049590
+ ldrh r1, [r0]
+ ldr r2, [sp, 0xC]
+ ands r1, r2
+ strh r1, [r0]
+ adds r4, 0x1
+ ldr r0, [r5, 0x8]
+ cmp r4, r0
+ blt _080517A2
+_080517BC:
+ adds r5, r7, 0
+ ldr r3, _080518E4
+ cmp r5, r10
+ bge _080517CE
+ ldr r1, [r6, 0xC]
+ ldr r0, [r6, 0x4]
+ subs r1, r0
+ cmp r1, r9
+ bgt _08051748
+_080517CE:
+ ldr r7, [r3]
+ ldr r0, [r3, 0x8]
+ cmp r7, r0
+ bge _08051824
+ adds r4, r3, 0
+ mov r9, r3
+_080517DA:
+ ldr r5, [r4, 0x4]
+ ldr r0, [r4, 0xC]
+ adds r1, r7, 0x1
+ mov r8, r1
+ cmp r5, r0
+ bge _0805181A
+ ldr r3, _080518E4
+ ldr r0, _080518E8
+ adds r6, r0, 0
+_080517EC:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ str r3, [sp, 0x10]
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ beq _08051812
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08051812
+ adds r0, r1, 0
+ ands r0, r6
+ strh r0, [r2]
+_08051812:
+ adds r5, 0x1
+ ldr r0, [r4, 0xC]
+ cmp r5, r0
+ blt _080517EC
+_0805181A:
+ mov r7, r8
+ mov r1, r9
+ ldr r0, [r1, 0x8]
+ cmp r7, r0
+ blt _080517DA
+_08051824:
+ ldr r0, [r3]
+ ldr r1, [r3, 0x8]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r2, r0, 1
+ ldr r0, [r3, 0x4]
+ ldr r1, [r3, 0xC]
+ adds r0, r1
+ lsrs r1, r0, 31
+ adds r0, r1
+ asrs r0, 1
+ subs r0, 0x1
+ mov r10, r0
+ movs r0, 0
+ mov r9, r0
+ subs r7, r2, 0x1
+ adds r0, r2, 0x2
+ cmp r7, r0
+ bge _080518D2
+ adds r2, r0, 0
+ str r2, [sp, 0x4]
+_08051850:
+ mov r5, r10
+ adds r0, r5, 0x3
+ adds r1, r7, 0x1
+ mov r8, r1
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x8]
+ cmp r5, r0
+ bge _080518C6
+ movs r3, 0
+_08051864:
+ adds r0, r7, 0
+ adds r1, r5, 0
+ str r3, [sp, 0x10]
+ bl sub_8049590
+ adds r6, r0, 0
+ ldrh r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ ldr r3, [sp, 0x10]
+ cmp r0, 0
+ beq _080518BA
+ movs r0, 0x40
+ ands r0, r1
+ cmp r0, 0
+ bne _080518BA
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ bne _080518BA
+ mov r0, r9
+ lsls r2, r0, 1
+ adds r2, r3
+ ldr r0, [sp]
+ ldrb r1, [r0, 0x18]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 1
+ adds r2, r0
+ ldr r1, _080518EC
+ adds r2, r1
+ movs r0, 0
+ ldrsh r4, [r2, r0]
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r3, [sp, 0x10]
+ cmp r4, r0
+ ble _080518BA
+ ldrh r1, [r6, 0x4]
+ movs r0, 0x2
+ orrs r0, r1
+ strh r0, [r6, 0x4]
+_080518BA:
+ adds r5, 0x1
+ adds r3, 0x6
+ mov r0, r10
+ adds r0, 0x3
+ cmp r5, r0
+ blt _08051864
+_080518C6:
+ mov r7, r8
+ ldr r1, [sp, 0x8]
+ mov r9, r1
+ ldr r0, [sp, 0x4]
+ cmp r7, r0
+ blt _08051850
+_080518D2:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080518E4: .4byte gUnknown_202F1B8
+_080518E8: .4byte 0x0000ffdf
+_080518EC: .4byte gUnknown_80F57D4
+ thumb_func_end sub_8051654
+
+ thumb_func_start sub_80518F0
+sub_80518F0:
+ push {r4-r7,lr}
+ movs r5, 0
+ movs r6, 0x10
+ movs r7, 0
+_080518F8:
+ adds r0, r5, 0
+ movs r1, 0x1
+ bl sub_8049590
+ adds r4, r0, 0
+ bl sub_804FD10
+ cmp r5, 0
+ beq _0805190E
+ cmp r5, 0x37
+ bne _08051914
+_0805190E:
+ ldrh r0, [r4]
+ orrs r0, r6
+ strh r0, [r4]
+_08051914:
+ adds r0, r5, 0
+ movs r1, 0x1E
+ bl sub_8049590
+ adds r4, r0, 0
+ bl sub_804FD10
+ cmp r5, 0
+ beq _0805192A
+ cmp r5, 0x37
+ bne _08051930
+_0805192A:
+ ldrh r0, [r4]
+ orrs r0, r6
+ strh r0, [r4]
+_08051930:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _080518F8
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80518F0
+
+ thumb_func_start sub_805193C
+sub_805193C:
+ push {r4-r6,lr}
+ sub sp, 0x8
+ adds r6, r3, 0
+ ldr r4, [sp, 0x18]
+ lsls r0, 24
+ lsrs r5, r0, 24
+ lsls r1, 16
+ lsls r2, 16
+ lsrs r1, 16
+ orrs r1, r2
+ str r1, [sp, 0x4]
+ adds r0, r5, 0
+ bl sub_805210C
+ lsls r0, 24
+ cmp r0, 0
+ beq _0805196A
+ mov r0, sp
+ movs r1, 0x76
+ movs r2, 0
+ bl sub_8090A8C
+ b _08051974
+_0805196A:
+ mov r0, sp
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8090A8C
+_08051974:
+ mov r0, sp
+ ldrb r0, [r0]
+ orrs r4, r0
+ mov r0, sp
+ strb r4, [r0]
+ cmp r6, 0
+ beq _08051984
+ strb r6, [r0, 0x1]
+_08051984:
+ add r0, sp, 0x4
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_80460F8
+ add sp, 0x8
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_805193C
+
+ thumb_func_start sub_8051998
+sub_8051998:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x14
+ mov r8, r1
+ mov r9, r2
+ lsls r0, 16
+ asrs r0, 16
+ adds r1, r0, 0
+ lsls r3, 24
+ lsrs r6, r3, 24
+ adds r7, r6, 0
+ ldr r0, _080519E4
+ cmp r1, r0
+ bne _080519E8
+ mov r1, sp
+ movs r5, 0
+ movs r4, 0
+ movs r0, 0x3C
+ strh r0, [r1]
+ bl sub_803DA20
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ mov r0, sp
+ strb r6, [r0, 0x2]
+ str r4, [sp, 0x4]
+ strb r5, [r0, 0x10]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r1, r9
+ strh r1, [r0, 0xE]
+ movs r1, 0x1
+ bl sub_806B7F8
+ b _08051A14
+ .align 2, 0
+_080519E4: .4byte 0x000001a5
+_080519E8:
+ cmp r1, 0
+ beq _08051A14
+ mov r0, sp
+ movs r5, 0
+ movs r4, 0
+ strh r1, [r0]
+ adds r0, r1, 0
+ bl sub_803DA20
+ mov r1, sp
+ strh r0, [r1, 0x8]
+ mov r0, sp
+ strb r7, [r0, 0x2]
+ str r4, [sp, 0x4]
+ strb r5, [r0, 0x10]
+ mov r1, r8
+ strh r1, [r0, 0xC]
+ mov r1, r9
+ strh r1, [r0, 0xE]
+ movs r1, 0x1
+ bl sub_806B7F8
+_08051A14:
+ add sp, 0x14
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051998
+
+ thumb_func_start sub_8051A24
+sub_8051A24:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r6, 24
+ lsrs r6, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r8, r3
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ adds r7, r0, 0
+ lsls r4, 16
+ lsls r5, 16
+ lsrs r4, 16
+ orrs r4, r5
+ str r4, [sp]
+ adds r0, r6, 0
+ mov r1, sp
+ movs r2, 0
+ bl sub_8045684
+ cmp r0, 0
+ beq _08051A66
+ str r0, [r7, 0x14]
+ adds r0, 0x20
+ mov r1, r8
+ strb r1, [r0]
+_08051A66:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051A24
+
+ thumb_func_start sub_8051A74
+sub_8051A74:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r2, 0
+ adds r7, r3, 0
+ ldr r0, [sp, 0x20]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r8, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r9, r0
+ cmp r1, 0xF
+ bls _08051AA2
+ ldrh r0, [r4]
+ ldr r1, _08051AB4
+ ands r1, r0
+ movs r0, 0x1
+ orrs r1, r0
+ strh r1, [r4]
+_08051AA2:
+ mov r0, r8
+ cmp r0, 0x45
+ bls _08051AAA
+ b _08051D68
+_08051AAA:
+ lsls r0, 2
+ ldr r1, _08051AB8
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08051AB4: .4byte 0x0000fffc
+_08051AB8: .4byte _08051ABC
+ .align 2, 0
+_08051ABC:
+ .4byte _08051BF0
+ .4byte _08051C0C
+ .4byte _08051D50
+ .4byte _08051E1A
+ .4byte _08051C20
+ .4byte _08051C54
+ .4byte _08051C64
+ .4byte _08051C74
+ .4byte _08051C94
+ .4byte _08051D00
+ .4byte _08051C7E
+ .4byte _08051D10
+ .4byte _08051D24
+ .4byte _08051D50
+ .4byte _08051D50
+ .4byte _08051E1A
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051D68
+ .4byte _08051C94
+ .4byte _08051CD4
+ .4byte _08051BD4
+_08051BD4:
+ ldr r0, _08051BFC
+ ldr r0, [r0]
+ ldr r2, _08051C00
+ adds r1, r0, r2
+ strh r6, [r1]
+ ldr r3, _08051C04
+ adds r0, r3
+ strh r7, [r0]
+ movs r0, 0xB
+ adds r1, r6, 0
+ adds r2, r7, 0
+ movs r3, 0
+ bl sub_8051A24
+_08051BF0:
+ ldrh r1, [r4]
+ ldr r0, _08051C08
+ ands r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ b _08051D42
+ .align 2, 0
+_08051BFC: .4byte gUnknown_203B418
+_08051C00: .4byte 0x00000684
+_08051C04: .4byte 0x00000686
+_08051C08: .4byte 0x0000fffc
+_08051C0C:
+ ldrh r1, [r4]
+ ldr r0, _08051C18
+ ands r0, r1
+ ldr r1, _08051C1C
+ ands r0, r1
+ b _08051D5A
+ .align 2, 0
+_08051C18: .4byte 0x0000fffc
+_08051C1C: .4byte 0x0000feff
+_08051C20:
+ ldrh r1, [r4]
+ ldr r0, _08051C44
+ ands r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldr r0, _08051C48
+ ldr r0, [r0]
+ ldr r3, _08051C4C
+ adds r1, r0, r3
+ strh r6, [r1]
+ ldr r1, _08051C50
+ adds r0, r1
+ strh r7, [r0]
+ strb r2, [r4, 0x9]
+ b _08051E1A
+ .align 2, 0
+_08051C44: .4byte 0x0000fffc
+_08051C48: .4byte gUnknown_203B418
+_08051C4C: .4byte 0x0000e218
+_08051C50: .4byte 0x0000e21a
+_08051C54:
+ ldrh r1, [r4]
+ ldr r0, _08051C60
+ ands r0, r1
+ movs r2, 0
+ movs r1, 0x2
+ b _08051D42
+ .align 2, 0
+_08051C60: .4byte 0x0000fffc
+_08051C64:
+ ldrh r1, [r4]
+ ldr r0, _08051C70
+ ands r0, r1
+ movs r1, 0x3
+ b _08051D58
+ .align 2, 0
+_08051C70: .4byte 0x0000fffc
+_08051C74:
+ ldr r1, _08051C8C
+ movs r0, 0x1
+ strb r0, [r1]
+ bl sub_8049840
+_08051C7E:
+ ldrh r1, [r4]
+ ldr r0, _08051C90
+ ands r0, r1
+ movs r1, 0x3
+ orrs r0, r1
+ b _08051D56
+ .align 2, 0
+_08051C8C: .4byte gUnknown_202F1A8
+_08051C90: .4byte 0x0000fffc
+_08051C94:
+ ldrh r1, [r4]
+ ldr r0, _08051CC0
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ strh r0, [r4]
+ ldrh r0, [r4, 0x4]
+ movs r2, 0
+ orrs r0, r1
+ ldr r1, _08051CC4
+ ands r0, r1
+ strh r0, [r4, 0x4]
+ strb r2, [r4, 0x9]
+ ldr r0, _08051CC8
+ ldr r0, [r0]
+ ldr r2, _08051CCC
+ adds r1, r0, r2
+ strh r6, [r1]
+ ldr r3, _08051CD0
+ adds r0, r3
+ strh r7, [r0]
+ b _08051E1A
+ .align 2, 0
+_08051CC0: .4byte 0x0000fffc
+_08051CC4: .4byte 0x0000fffd
+_08051CC8: .4byte gUnknown_203B418
+_08051CCC: .4byte 0x0000e21c
+_08051CD0: .4byte 0x0000e21e
+_08051CD4:
+ ldrh r1, [r4]
+ movs r2, 0x80
+ lsls r2, 4
+ adds r0, r2, 0
+ orrs r0, r1
+ ldr r1, _08051CF8
+ ands r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ orrs r0, r1
+ strh r0, [r4]
+ ldrh r1, [r4, 0x4]
+ ldr r0, _08051CFC
+ ands r0, r1
+ strh r0, [r4, 0x4]
+ strb r2, [r4, 0x9]
+ b _08051E1A
+ .align 2, 0
+_08051CF8: .4byte 0x0000fffc
+_08051CFC: .4byte 0x0000fffd
+_08051D00:
+ ldrh r1, [r4]
+ ldr r0, _08051D0C
+ ands r0, r1
+ movs r1, 0x1
+ b _08051D58
+ .align 2, 0
+_08051D0C: .4byte 0x0000fffc
+_08051D10:
+ ldrh r1, [r4]
+ ldr r0, _08051D20
+ ands r0, r1
+ movs r1, 0x1
+ movs r2, 0
+ orrs r0, r1
+ b _08051D3C
+ .align 2, 0
+_08051D20: .4byte 0x0000fffc
+_08051D24:
+ ldrh r1, [r4]
+ ldr r0, _08051D4C
+ ands r0, r1
+ movs r1, 0x1
+ orrs r0, r1
+ movs r2, 0x80
+ lsls r2, 5
+ adds r1, r2, 0
+ orrs r0, r1
+ movs r1, 0x10
+ orrs r0, r1
+ movs r2, 0
+_08051D3C:
+ movs r3, 0x80
+ lsls r3, 4
+ adds r1, r3, 0
+_08051D42:
+ orrs r0, r1
+ strh r0, [r4]
+ strb r2, [r4, 0x9]
+ b _08051E1A
+ .align 2, 0
+_08051D4C: .4byte 0x0000fffc
+_08051D50:
+ ldrh r1, [r4]
+ ldr r0, _08051D64
+ ands r0, r1
+_08051D56:
+ movs r1, 0x10
+_08051D58:
+ orrs r0, r1
+_08051D5A:
+ strh r0, [r4]
+ movs r0, 0xFF
+ strb r0, [r4, 0x9]
+ b _08051E1A
+ .align 2, 0
+_08051D64: .4byte 0x0000fffc
+_08051D68:
+ mov r0, r8
+ subs r0, 0x10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xCB
+ bhi _08051E1A
+ mov r1, r8
+ lsls r0, r1, 4
+ ldr r1, _08051DA0
+ adds r5, r0, r1
+ ldrb r0, [r5, 0xC]
+ strb r0, [r4, 0x9]
+ ldrb r1, [r5]
+ cmp r1, 0
+ beq _08051DB8
+ mov r2, r9
+ cmp r2, 0
+ beq _08051DA4
+ ldrb r0, [r5]
+ movs r1, 0x2
+ ldrsh r3, [r5, r1]
+ ldr r1, [r5, 0x4]
+ str r1, [sp]
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_805193C
+ b _08051DDC
+ .align 2, 0
+_08051DA0: .4byte gUnknown_80F6D20
+_08051DA4:
+ ldr r0, _08051DB0
+ ldr r0, [r0]
+ ldr r2, _08051DB4
+ adds r0, r2
+ strb r1, [r0]
+ b _08051DDC
+ .align 2, 0
+_08051DB0: .4byte gUnknown_203B418
+_08051DB4: .4byte 0x0000068b
+_08051DB8:
+ ldr r2, [r5, 0x4]
+ cmp r2, 0
+ beq _08051DDC
+ ldr r0, _08051E2C
+ ldr r1, [r0]
+ subs r0, r2, 0x1
+ lsls r0, 2
+ adds r0, r1, r0
+ ldr r3, _08051E30
+ adds r0, r3
+ strh r6, [r0]
+ ldr r0, [r5, 0x4]
+ subs r0, 0x1
+ lsls r0, 2
+ adds r1, r0
+ ldr r0, _08051E34
+ adds r1, r0
+ strh r7, [r1]
+_08051DDC:
+ movs r1, 0x8
+ ldrsh r0, [r5, r1]
+ cmp r0, 0
+ beq _08051DF2
+ ldrb r3, [r5, 0xA]
+ mov r1, r8
+ str r1, [sp]
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8051998
+_08051DF2:
+ ldrb r0, [r5, 0xB]
+ cmp r0, 0x14
+ beq _08051E08
+ mov r2, r9
+ cmp r2, 0
+ beq _08051E08
+ ldrb r3, [r5, 0xD]
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8051A24
+_08051E08:
+ ldrb r0, [r5, 0xE]
+ cmp r0, 0
+ beq _08051E1A
+ ldrh r0, [r4]
+ ldr r1, _08051E38
+ ands r1, r0
+ movs r0, 0x2
+ orrs r1, r0
+ strh r1, [r4]
+_08051E1A:
+ movs r0, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08051E2C: .4byte gUnknown_203B418
+_08051E30: .4byte 0x0000e220
+_08051E34: .4byte 0x0000e222
+_08051E38: .4byte 0x0000fffc
+ thumb_func_end sub_8051A74
+
+ thumb_func_start sub_8051E3C
+sub_8051E3C:
+ push {r4-r6,lr}
+ sub sp, 0x4
+ movs r5, 0
+_08051E42:
+ movs r4, 0
+ adds r6, r5, 0x1
+_08051E46:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8049590
+ adds r2, r0, 0
+ ldrb r0, [r2, 0xE]
+ cmp r0, 0xF
+ bls _08051E66
+ adds r1, r0, 0
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r2, 0
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_8051A74
+_08051E66:
+ adds r4, 0x1
+ cmp r4, 0x37
+ ble _08051E46
+ adds r5, r6, 0
+ cmp r5, 0x1F
+ ble _08051E42
+ add sp, 0x4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8051E3C
+
+ thumb_func_start sub_8051E7C
+sub_8051E7C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ mov r9, r0
+ movs r1, 0x4
+ ldrsh r0, [r0, r1]
+ mov r2, r9
+ movs r3, 0x6
+ ldrsh r1, [r2, r3]
+ subs r1, 0x1
+ bl sub_8049590
+ str r0, [sp, 0x8]
+ ldrh r1, [r0]
+ movs r0, 0x80
+ lsls r0, 5
+ ands r0, r1
+ cmp r0, 0
+ bne _08051EB8
+ ldr r0, _08051EB4
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80522A8
+ b _080520F6
+ .align 2, 0
+_08051EB4: .4byte gUnknown_80FDDF0
+_08051EB8:
+ ldr r0, _08051EF0
+ ldr r0, [r0]
+ ldr r1, _08051EF4
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08051EC8
+ b _080520EC
+_08051EC8:
+ mov r2, r9
+ ldrh r1, [r2, 0x6]
+ subs r1, 0x1
+ lsls r1, 16
+ ldrh r0, [r2, 0x4]
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ mov r0, r9
+ bl sub_80450FC
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp, 0xC]
+ mov r3, r9
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ adds r6, r0, 0
+ subs r6, 0x15
+ b _08051FE0
+ .align 2, 0
+_08051EF0: .4byte gUnknown_203B418
+_08051EF4: .4byte 0x00003a09
+_08051EF8:
+ mov r2, r9
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ adds r5, r0, 0
+ subs r5, 0x14
+ adds r0, 0x14
+ adds r1, r6, 0x1
+ str r1, [sp, 0x10]
+ cmp r5, r0
+ bgt _08051FD8
+ ldr r2, _080520C0
+ mov r10, r2
+_08051F10:
+ mov r0, r10
+ ldr r3, [r0]
+ ldr r1, _080520C4
+ adds r0, r3, r1
+ ldr r1, [r0]
+ subs r2, r5, r1
+ mov r8, r2
+ ldr r2, _080520C8
+ adds r0, r3, r2
+ ldr r2, [r0]
+ subs r7, r6, r2
+ mov r0, r8
+ cmp r0, 0
+ blt _08051FCA
+ cmp r7, 0
+ blt _08051FCA
+ cmp r0, 0x7
+ bgt _08051FCA
+ cmp r7, 0x7
+ bgt _08051FCA
+ adds r0, r1, 0x1
+ cmp r5, r0
+ blt _08051FCA
+ adds r0, r2, 0x1
+ cmp r6, r0
+ blt _08051FCA
+ ldr r1, _080520CC
+ adds r0, r3, r1
+ ldr r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ bge _08051FCA
+ ldr r2, _080520D0
+ adds r0, r3, r2
+ ldr r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _08051FCA
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ adds r4, r0, 0
+ ldrh r0, [r4]
+ movs r3, 0x80
+ lsls r3, 1
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08051F9A
+ mov r0, r10
+ ldr r2, [r0]
+ lsls r1, r7, 1
+ adds r1, r7
+ lsls r1, 3
+ mov r3, r8
+ lsls r0, r3, 1
+ add r0, r8
+ lsls r0, 6
+ adds r1, r0
+ adds r2, r1
+ ldr r1, _080520D4
+ adds r0, r2, r1
+ ldrh r0, [r0]
+ strh r0, [r4]
+ ldr r3, _080520D8
+ adds r2, r3
+ ldrh r0, [r2]
+ strh r0, [r4, 0x4]
+_08051F9A:
+ mov r1, r10
+ ldr r0, [r1]
+ mov r2, r8
+ lsls r1, r2, 3
+ adds r1, r7, r1
+ ldr r3, _080520DC
+ adds r0, r3
+ adds r0, r1
+ ldrb r1, [r0]
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r2, r5, 0
+ adds r3, r6, 0
+ bl sub_8051A74
+ ldrh r1, [r4, 0x4]
+ movs r0, 0x3
+ orrs r0, r1
+ strh r0, [r4, 0x4]
+ ldr r0, [sp, 0xC]
+ cmp r0, 0xFF
+ beq _08051FCA
+ strb r0, [r4, 0x9]
+_08051FCA:
+ adds r5, 0x1
+ mov r2, r9
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ adds r0, 0x14
+ cmp r5, r0
+ ble _08051F10
+_08051FD8:
+ ldr r6, [sp, 0x10]
+ mov r1, r9
+ movs r2, 0x6
+ ldrsh r0, [r1, r2]
+_08051FE0:
+ adds r0, 0x13
+ cmp r6, r0
+ ble _08051EF8
+ mov r3, r9
+ movs r1, 0x6
+ ldrsh r0, [r3, r1]
+ adds r6, r0, 0
+ subs r6, 0x15
+ adds r0, 0x13
+ ldr r7, _080520C0
+ cmp r6, r0
+ bgt _0805207A
+_08051FF8:
+ mov r2, r9
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ adds r5, r0, 0
+ subs r5, 0x14
+ adds r0, 0x14
+ adds r1, r6, 0x1
+ str r1, [sp, 0x10]
+ cmp r5, r0
+ bgt _0805206C
+ ldr r7, _080520C0
+_0805200E:
+ ldr r0, _080520C0
+ ldr r4, [r0]
+ ldr r2, _080520C4
+ adds r0, r4, r2
+ ldr r2, [r0]
+ subs r1, r5, r2
+ ldr r3, _080520C8
+ adds r0, r4, r3
+ ldr r3, [r0]
+ subs r0, r6, r3
+ cmp r1, 0
+ blt _0805205E
+ cmp r0, 0
+ blt _0805205E
+ cmp r1, 0x7
+ bgt _0805205E
+ cmp r0, 0x7
+ bgt _0805205E
+ adds r0, r2, 0x1
+ cmp r5, r0
+ blt _0805205E
+ adds r0, r3, 0x1
+ cmp r6, r0
+ blt _0805205E
+ ldr r1, _080520CC
+ adds r0, r4, r1
+ ldr r0, [r0]
+ subs r0, 0x1
+ cmp r5, r0
+ bge _0805205E
+ ldr r2, _080520D0
+ adds r0, r4, r2
+ ldr r0, [r0]
+ subs r0, 0x1
+ cmp r6, r0
+ bge _0805205E
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_80498A8
+_0805205E:
+ adds r5, 0x1
+ mov r3, r9
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ adds r0, 0x14
+ cmp r5, r0
+ ble _0805200E
+_0805206C:
+ ldr r6, [sp, 0x10]
+ mov r2, r9
+ movs r3, 0x6
+ ldrsh r0, [r2, r3]
+ adds r0, 0x13
+ cmp r6, r0
+ ble _08051FF8
+_0805207A:
+ ldr r0, [r7]
+ ldr r1, _080520E0
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r2, [sp, 0x8]
+ ldrh r1, [r2]
+ ldr r0, _080520E4
+ ands r0, r1
+ strh r0, [r2]
+ mov r3, r9
+ movs r1, 0x4
+ ldrsh r0, [r3, r1]
+ movs r2, 0x6
+ ldrsh r1, [r3, r2]
+ subs r1, 0x1
+ bl sub_80498A8
+ bl sub_8049B8C
+ bl sub_8049ED4
+ add r0, sp, 0x4
+ bl sub_80429FC
+ ldr r0, _080520E8
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80522A8
+ movs r0, 0x14
+ movs r1, 0x3C
+ bl sub_803E708
+ b _080520F6
+ .align 2, 0
+_080520C0: .4byte gUnknown_203B418
+_080520C4: .4byte 0x0000e250
+_080520C8: .4byte 0x0000e254
+_080520CC: .4byte 0x0000e258
+_080520D0: .4byte 0x0000e25c
+_080520D4: .4byte 0x0000e27c
+_080520D8: .4byte 0x0000e280
+_080520DC: .4byte 0x0000e87c
+_080520E0: .4byte 0x00003a09
+_080520E4: .4byte 0x0000efef
+_080520E8: .4byte gUnknown_80FDDD0
+_080520EC:
+ ldr r0, _08052108
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80522A8
+_080520F6:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052108: .4byte gUnknown_80FDDF0
+ thumb_func_end sub_8051E7C
+
+ thumb_func_start sub_805210C
+sub_805210C:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r3, 0
+ ldr r7, _080521B4
+ movs r4, 0x1
+ ldr r2, [r7]
+_0805211A:
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0805212A
+ ldrb r0, [r2, 0x2]
+ cmp r0, r5
+ beq _080521C8
+_0805212A:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0805211A
+ movs r3, 0
+ ldr r0, _080521B8
+ ldr r4, [r0]
+ movs r6, 0x1
+_0805213A:
+ movs r0, 0x64
+ adds r2, r3, 0
+ muls r2, r0
+ adds r0, r2, r4
+ ldr r1, _080521BC
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0805216C
+ adds r0, r2, r4
+ ldr r1, _080521C0
+ adds r0, r1
+ ldrb r1, [r0]
+ adds r0, r6, 0
+ ands r0, r1
+ adds r1, r2, r4
+ cmp r0, 0
+ beq _0805216C
+ ldr r2, _080521C4
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, r5
+ beq _080521C8
+_0805216C:
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _0805213A
+ movs r3, 0
+ ldr r0, _080521B8
+ ldr r4, [r0]
+_08052178:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08052196
+ adds r0, r2, 0
+ adds r0, 0x28
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08052196
+ cmp r0, r5
+ beq _080521C8
+_08052196:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _08052178
+ ldr r0, [r7]
+ lsls r1, r5, 1
+ adds r0, 0x50
+ adds r0, r1
+ ldrh r0, [r0]
+ cmp r0, 0
+ bne _080521C8
+ movs r0, 0
+ b _080521CA
+ .align 2, 0
+_080521B4: .4byte gUnknown_203B460
+_080521B8: .4byte gUnknown_203B45C
+_080521BC: .4byte 0x00008df8
+_080521C0: .4byte 0x00008e38
+_080521C4: .4byte 0x00008e3a
+_080521C8:
+ movs r0, 0x1
+_080521CA:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_805210C
+
+ thumb_func_start sub_80521D0
+sub_80521D0:
+ push {r4-r6,lr}
+ movs r1, 0
+ ldr r5, _08052200
+ ldr r6, _08052204
+ ldr r4, _08052208
+ ldr r3, _0805220C
+ movs r2, 0
+_080521DE:
+ ldr r0, [r4]
+ adds r0, r3
+ adds r0, r1
+ strb r2, [r0]
+ adds r1, 0x1
+ cmp r1, 0x9
+ ble _080521DE
+ movs r0, 0
+ str r0, [r5]
+ movs r0, 0x1
+ strb r0, [r6]
+ movs r0, 0
+ bl sub_8052210
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052200: .4byte gUnknown_202F1E8
+_08052204: .4byte gUnknown_203B434
+_08052208: .4byte gUnknown_203B418
+_0805220C: .4byte 0x0001c054
+ thumb_func_end sub_80521D0
+
+ thumb_func_start sub_8052210
+sub_8052210:
+ push {r4-r6,lr}
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r4, 0
+ ldr r5, _08052280
+_0805221A:
+ lsls r0, r4, 6
+ ldr r1, [r5]
+ adds r0, r1
+ ldr r1, _08052284
+ adds r0, r1
+ ldr r1, _08052288
+ bl strcpy
+ adds r4, 0x1
+ cmp r4, 0x9
+ ble _0805221A
+ ldr r1, _08052280
+ ldr r0, [r1]
+ ldr r2, _0805228C
+ adds r0, r2
+ movs r3, 0
+ strb r3, [r0]
+ ldr r0, [r1]
+ adds r2, 0x1
+ adds r1, r0, r2
+ strh r3, [r1]
+ adds r2, 0x2
+ adds r1, r0, r2
+ strh r3, [r1]
+ adds r2, 0x2
+ adds r1, r0, r2
+ strh r3, [r1]
+ ldr r1, _08052290
+ adds r2, r0, r1
+ movs r1, 0x4
+ strh r1, [r2]
+ ldr r2, _08052294
+ adds r0, r2
+ str r3, [r0]
+ cmp r6, 0
+ beq _08052278
+ ldr r0, _08052298
+ ldr r0, [r0]
+ cmp r0, 0x3
+ bne _08052278
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ movs r0, 0xB
+ bl sub_803E46C
+_08052278:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08052280: .4byte gUnknown_203B418
+_08052284: .4byte 0x0001bdd4
+_08052288: .4byte gUnknown_80F7AE8
+_0805228C: .4byte 0x0001c05f
+_08052290: .4byte 0x0001c066
+_08052294: .4byte 0x0001c06c
+_08052298: .4byte gUnknown_202EDD0
+ thumb_func_end sub_8052210
+
+ .align 2,0 @ Don't pad with nop
diff --git a/data/personality_test.inc b/data/personality_test.inc
index 9077082..58bb86e 100644
--- a/data/personality_test.inc
+++ b/data/personality_test.inc
@@ -79,8 +79,8 @@ gNatureQuestionTable: @ 80F2704 (Categories??)
.byte 0x0D, 0x0D, 0x0D @ (Miscellaneous)
.byte 0x02 @ (Question 2b for Brave Category)
- .global gUnknown_80F273C
-gUnknown_80F273C: @ 80F273C
+ .global gGenderText
+gGenderText: @ 80F273C
.asciz "Are you a boy or a girl?"
.align 2,0
.byte 0x3C, 0x27, 0x0F, 0x08 @ pointer to above text
@@ -141,8 +141,8 @@ gStarters: @ 80F278E
.byte 0x15, 0x01 @ Treecko (Quirky F)
.byte 0x00, 0x00 @ End of table
- .global gUnknown_80F27C4
-gUnknown_80F27C4: @ 80F27C4
+ .global gStarterReveal
+gStarterReveal: @ 80F27C4
.string "\n"
.string "#+The Pokémon $m0!"
.byte 0
diff --git a/ld_script.txt b/ld_script.txt
index 4705b5d..b556666 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -75,6 +75,8 @@ SECTIONS {
asm/save.o(.text);
src/save1.o(.text);
asm/code_8012A18.o(.text);
+ src/code_8012A18.o(.text);
+ asm/code_803D110.o(.text);
src/code_80521D0.o(.text);
asm/code_80521D0.o(.text);
src/pokemon.o(.text);
diff --git a/src/code_8012A18.c b/src/code_8012A18.c
new file mode 100644
index 0000000..e21400c
--- /dev/null
+++ b/src/code_8012A18.c
@@ -0,0 +1,25 @@
+#include "global.h"
+
+extern u8 gUnknown_80F42D0[];
+extern u8 gUnknown_80F42F0[];
+extern u8 gUnknown_203B408;
+
+u8 sub_803D0D8()
+{
+ return gUnknown_203B408;
+}
+
+void sub_803D0E4(u8 r0)
+{
+ gUnknown_203B408 = r0;
+}
+
+u8 sub_803D0F0(u8 r0)
+{
+ return gUnknown_80F42F0[r0];
+}
+
+u8 sub_803D100(u8 r0)
+{
+ return gUnknown_80F42D0[r0];
+}