summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-09-27 17:56:12 -0500
committerSeth Barberee <seth.barberee@gmail.com>2020-09-27 17:56:12 -0500
commitc5d9ff48096fed3eba4b28a4f229579e694e2d63 (patch)
treeeaa273f3c8679409ce2b46d089dee04b4522c502
parent9b6d44a63b19c238d35c1604fed3a72d737e6cf3 (diff)
1.8% functions decomped.. so close to 2%
-rw-r--r--asm/code_803D110.s11605
-rw-r--r--asm/code_80428A0.s11310
-rwxr-xr-xld_script.txt2
-rw-r--r--src/code_80428A0.c145
4 files changed, 11457 insertions, 11605 deletions
diff --git a/asm/code_803D110.s b/asm/code_803D110.s
index 3093e8b..6792896 100644
--- a/asm/code_803D110.s
+++ b/asm/code_803D110.s
@@ -11565,11609 +11565,4 @@ _08042896:
_0804289C: .4byte gUnknown_80F680C
thumb_func_end sub_8042818
- thumb_func_start sub_80428A0
-sub_80428A0:
- push {lr}
- movs r1, 0x29
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_80428A0
-
- thumb_func_start sub_80428B0
-sub_80428B0:
- push {lr}
- ldr r1, _080428C0
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080428C0: .4byte 0x000001a9
- thumb_func_end sub_80428B0
-
- thumb_func_start sub_80428C4
-sub_80428C4:
- push {lr}
- ldr r1, _080428D4
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080428D4: .4byte 0x000001a9
- thumb_func_end sub_80428C4
-
- thumb_func_start sub_80428D8
-sub_80428D8:
- push {lr}
- ldr r1, _080428E8
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080428E8: .4byte 0x000001a9
- thumb_func_end sub_80428D8
-
- thumb_func_start sub_80428EC
-sub_80428EC:
- push {lr}
- ldr r1, _080428FC
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080428FC: .4byte 0x000001a9
- thumb_func_end sub_80428EC
-
- thumb_func_start sub_8042900
-sub_8042900:
- push {lr}
- movs r1, 0xD4
- lsls r1, 1
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042900
-
- thumb_func_start sub_8042910
-sub_8042910:
- push {lr}
- movs r1, 0x29
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042910
-
- thumb_func_start sub_8042920
-sub_8042920:
- push {lr}
- movs r1, 0x48
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042920
-
- thumb_func_start sub_8042930
-sub_8042930:
- push {lr}
- movs r1, 0xD3
- lsls r1, 1
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042930
-
- thumb_func_start sub_8042940
-sub_8042940:
- push {lr}
- movs r1, 0xC7
- lsls r1, 1
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042940
-
- thumb_func_start sub_8042950
-sub_8042950:
- push {lr}
- movs r1, 0xD8
- lsls r1, 1
- movs r2, 0x1
- bl sub_804151C
- movs r0, 0xA
- movs r1, 0x42
- bl sub_803E708
- pop {r0}
- bx r0
- thumb_func_end sub_8042950
-
- thumb_func_start sub_8042968
-sub_8042968:
- push {lr}
- movs r1, 0xD4
- lsls r1, 1
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042968
-
- thumb_func_start sub_8042978
-sub_8042978:
- push {lr}
- ldr r1, _08042988
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_08042988: .4byte 0x000001a9
- thumb_func_end sub_8042978
-
- thumb_func_start sub_804298C
-sub_804298C:
- push {lr}
- ldr r1, _0804299C
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_0804299C: .4byte 0x000001a9
- thumb_func_end sub_804298C
-
- thumb_func_start sub_80429A0
-sub_80429A0:
- push {lr}
- ldr r1, _080429B0
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080429B0: .4byte 0x00000199
- thumb_func_end sub_80429A0
-
- thumb_func_start sub_80429B4
-sub_80429B4:
- push {lr}
- ldr r1, _080429C4
- movs r2, 0
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080429C4: .4byte 0x000001ab
- thumb_func_end sub_80429B4
-
- thumb_func_start sub_80429C8
-sub_80429C8:
- push {lr}
- movs r1, 0x4
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_80429C8
-
- thumb_func_start sub_80429D8
-sub_80429D8:
- push {lr}
- movs r1, 0x8F
- lsls r1, 1
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_80429D8
-
- thumb_func_start sub_80429E8
-sub_80429E8:
- push {lr}
- ldr r1, _080429F8
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- .align 2, 0
-_080429F8: .4byte 0x0000011d
- thumb_func_end sub_80429E8
-
- thumb_func_start sub_80429FC
-sub_80429FC:
- push {lr}
- movs r1, 0xCF
- lsls r1, 1
- movs r2, 0x1
- bl sub_80416A4
- movs r0, 0
- movs r1, 0xD4
- bl sub_80421C0
- pop {r0}
- bx r0
- thumb_func_end sub_80429FC
-
- thumb_func_start sub_8042A14
-sub_8042A14:
- push {lr}
- movs r1, 0x36
- movs r2, 0x1
- bl sub_80416A4
- pop {r0}
- bx r0
- thumb_func_end sub_8042A14
-
- thumb_func_start sub_8042A24
-sub_8042A24:
- push {lr}
- movs r1, 0x15
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042A24
-
- thumb_func_start sub_8042A34
-sub_8042A34:
- push {lr}
- movs r1, 0x9F
- lsls r1, 1
- movs r2, 0
- bl sub_80416A4
- pop {r0}
- bx r0
- thumb_func_end sub_8042A34
-
- thumb_func_start sub_8042A44
-sub_8042A44:
- push {lr}
- movs r1, 0xDA
- lsls r1, 1
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042A44
-
- thumb_func_start sub_8042A54
-sub_8042A54:
- push {lr}
- movs r1, 0x37
- movs r2, 0x1
- bl sub_80416A4
- pop {r0}
- bx r0
- thumb_func_end sub_8042A54
-
- thumb_func_start sub_8042A64
-sub_8042A64:
- push {lr}
- movs r1, 0x29
- movs r2, 0x1
- bl sub_80416A4
- pop {r0}
- bx r0
- thumb_func_end sub_8042A64
-
- thumb_func_start sub_8042A74
-sub_8042A74:
- push {lr}
- movs r1, 0x18
- movs r2, 0x1
- bl sub_804151C
- pop {r0}
- bx r0
- thumb_func_end sub_8042A74
-
- thumb_func_start sub_8042A84
-sub_8042A84:
- push {r4-r7,lr}
- adds r4, r1, 0
- adds r7, r2, 0
- lsls r0, 16
- asrs r5, r0, 16
- movs r6, 0x80
- lsls r6, 2
- adds r0, r4, 0
- bl sub_8042768
- lsls r0, 24
- cmp r0, 0
- beq _08042AF8
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0
- bl sub_804151C
- adds r0, r7, 0
- movs r1, 0x42
- bl sub_803E708
- adds r5, r4, 0
- adds r5, 0x20
-_08042AB4:
- ldr r1, [r4, 0x1C]
- ldr r0, _08042B00
- cmp r1, r0
- bgt _08042AF0
- movs r0, 0x42
- bl sub_803E46C
- ldr r1, [r4, 0x1C]
- adds r1, r6
- str r1, [r4, 0x1C]
- movs r0, 0x80
- lsls r0, 1
- adds r6, r0
- ldr r0, [r4, 0x10]
- subs r0, r1
- cmp r0, 0
- bge _08042AD8
- adds r0, 0xFF
-_08042AD8:
- asrs r1, r0, 8
- ldr r0, _08042B04
- ldr r0, [r0]
- ldr r2, _08042B08
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- subs r1, r0
- movs r0, 0x8
- negs r0, r0
- cmp r1, r0
- bge _08042AB4
-_08042AF0:
- movs r0, 0
- strb r0, [r5]
- bl sub_804178C
-_08042AF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042B00: .4byte 0x0000c7ff
-_08042B04: .4byte gUnknown_203B418
-_08042B08: .4byte 0x000181f2
- thumb_func_end sub_8042A84
-
- thumb_func_start sub_8042B0C
-sub_8042B0C:
- push {lr}
- adds r1, r0, 0
- movs r0, 0x9F
- lsls r0, 1
- movs r2, 0x5
- bl sub_8042A84
- pop {r0}
- bx r0
- thumb_func_end sub_8042B0C
-
- thumb_func_start sub_8042B20
-sub_8042B20:
- push {lr}
- adds r1, r0, 0
- movs r0, 0xDE
- lsls r0, 1
- movs r2, 0xE
- bl sub_8042A84
- pop {r0}
- bx r0
- thumb_func_end sub_8042B20
-
- thumb_func_start sub_8042B34
-sub_8042B34:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x28
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- movs r0, 0
- mov r8, r0
- bl sub_8085480
- mov r10, r0
- ldr r7, _08042CB0
- movs r0, 0xCC
- movs r1, 0x7
- bl MemoryAlloc
- str r0, [r7]
- str r5, [r0]
- adds r4, 0x1
- lsls r4, 2
- str r4, [r0, 0x8]
- ldr r4, _08042CB4
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 3
- adds r0, r4
- movs r1, 0
- ldrsh r0, [r0, r1]
- bl sub_800EE5C
- bl sub_800EF64
- movs r0, 0x46
- bl sub_803E46C
- ldr r0, [r7]
- str r6, [r0, 0x4]
- movs r5, 0
- ldr r0, [r0, 0x8]
- cmp r5, r0
- blt _08042B8E
- b _08042C9E
-_08042B8E:
- mov r9, sp
-_08042B90:
- mov r2, r8
- lsls r6, r2, 3
- ldr r0, [r7]
- ldr r1, [r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, r6, r0
- ldr r3, _08042CB4
- adds r0, r3
- movs r1, 0
- ldrsh r0, [r0, r1]
- str r0, [sp]
- str r5, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- mov r2, r10
- ldr r0, [r2, 0xC]
- cmp r0, 0
- bge _08042BBA
- adds r0, 0xFF
-_08042BBA:
- asrs r0, 8
- mov r3, r9
- strh r0, [r3, 0xC]
- mov r1, sp
- mov r2, r10
- ldr r0, [r2, 0x10]
- cmp r0, 0
- bge _08042BCC
- adds r0, 0xFF
-_08042BCC:
- asrs r0, 8
- strh r0, [r1, 0xE]
- movs r0, 0x2
- bl RandomCapped
- ldr r1, [r7]
- lsls r4, r5, 2
- adds r3, r1, 0
- adds r3, 0x4C
- adds r3, r4
- ldr r2, [r1]
- lsls r1, r2, 1
- adds r1, r2
- lsls r1, 3
- adds r1, r6, r1
- ldr r2, _08042CB4
- adds r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- lsls r1, 1
- adds r1, r0
- str r1, [r3]
- movs r0, 0xF0
- bl RandomCapped
- ldr r1, [r7]
- adds r1, r4
- adds r0, 0x98
- adds r1, 0x8C
- strh r0, [r1]
- lsls r0, r5, 1
- adds r0, 0x8
- bl RandomCapped
- ldr r1, [r7]
- adds r2, r1, r4
- adds r3, r0, 0
- adds r3, 0x18
- adds r1, r5, 0
- cmp r5, 0
- bge _08042C20
- adds r1, r5, 0x3
-_08042C20:
- asrs r1, 2
- lsls r1, 2
- subs r1, r5, r1
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- subs r0, r3, r0
- adds r1, r2, 0
- adds r1, 0x8E
- strh r0, [r1]
- adds r0, r2, 0
- adds r0, 0x8C
- ldrh r0, [r0]
- mov r3, r9
- strh r0, [r3, 0x10]
- ldrh r0, [r1]
- strh r0, [r3, 0x12]
- movs r0, 0x4
- str r0, [sp, 0x14]
- ldr r0, _08042CB8
- str r0, [sp, 0x18]
- add r1, sp, 0x1C
- ldr r0, _08042CBC
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- mov r0, sp
- bl sub_800E890
- ldr r2, [r7]
- adds r1, r2, 0
- adds r1, 0xC
- adds r1, r4
- str r0, [r1]
- movs r6, 0x1
- add r8, r6
- mov r0, r8
- cmp r0, 0x2
- bgt _08042C82
- ldr r0, [r2]
- lsls r1, r0, 1
- adds r1, r0
- add r1, r8
- lsls r1, 3
- ldr r2, _08042CB4
- adds r1, r2
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08042C86
-_08042C82:
- movs r6, 0
- mov r8, r6
-_08042C86:
- ldr r0, [sp]
- bl sub_800ECA4
- ldr r0, [r0, 0x4]
- bl sub_800F15C
- adds r5, 0x1
- ldr r0, [r7]
- ldr r0, [r0, 0x8]
- cmp r5, r0
- bge _08042C9E
- b _08042B90
-_08042C9E:
- add sp, 0x28
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042CB0: .4byte gUnknown_203B414
-_08042CB4: .4byte gUnknown_80F6624
-_08042CB8: .4byte 0x0000ffff
-_08042CBC: .4byte gUnknown_80F683C
- thumb_func_end sub_8042B34
-
- thumb_func_start sub_8042CC0
-sub_8042CC0:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x4
- movs r7, 0
- ldr r2, _08042D20
- ldr r1, [r2]
- ldr r0, [r1, 0x4]
- cmp r0, 0
- beq _08042CDC
- movs r7, 0x1
- subs r0, 0x1
- str r0, [r1, 0x4]
-_08042CDC:
- movs r5, 0
- ldr r0, [r2]
- ldr r0, [r0, 0x8]
- cmp r5, r0
- bge _08042D56
- adds r6, r2, 0
- movs r0, 0x98
- negs r0, r0
- mov r9, r0
- movs r4, 0
- ldr r1, _08042D24
- mov r8, r1
-_08042CF4:
- ldr r3, [r6]
- adds r0, r3, r4
- adds r2, r0, 0
- adds r2, 0x8C
- adds r0, r3, 0
- adds r0, 0x4C
- adds r0, r4
- ldr r1, [r0]
- ldrh r0, [r2]
- subs r0, r1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, r9
- bgt _08042D2E
- ldr r0, [r3, 0x4]
- cmp r0, 0
- ble _08042D28
- movs r0, 0x98
- strh r0, [r2]
- b _08042D30
- .align 2, 0
-_08042D20: .4byte gUnknown_203B414
-_08042D24: .4byte 0x0000ff68
-_08042D28:
- mov r0, r8
- strh r0, [r2]
- b _08042D30
-_08042D2E:
- movs r7, 0x1
-_08042D30:
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xC
- adds r0, r4
- ldr r0, [r0]
- adds r1, r4, 0
- adds r1, 0x8C
- adds r2, r1
- movs r1, 0
- str r1, [sp]
- movs r3, 0
- bl sub_800E8AC
- adds r4, 0x4
- adds r5, 0x1
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- cmp r5, r0
- blt _08042CF4
-_08042D56:
- ldr r0, _08042D74
- ldr r0, [r0]
- ldr r1, _08042D78
- adds r0, r1
- bl sub_800E90C
- adds r0, r7, 0
- add sp, 0x4
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08042D74: .4byte gUnknown_203B418
-_08042D78: .4byte 0x000181f0
- thumb_func_end sub_8042CC0
-
- thumb_func_start sub_8042D7C
-sub_8042D7C:
- push {r4-r6,lr}
- ldr r1, _08042DD0
- ldr r0, [r1]
- cmp r0, 0
- beq _08042DCA
- movs r5, 0
- ldr r0, [r0, 0x8]
- cmp r5, r0
- bge _08042DBA
- adds r6, r1, 0
-_08042D90:
- ldr r0, [r6]
- lsls r4, r5, 2
- adds r0, 0xC
- adds r0, r4
- ldr r0, [r0]
- bl sub_800E9A8
- lsls r0, 24
- cmp r0, 0
- beq _08042DB0
- ldr r0, [r6]
- adds r0, 0xC
- adds r0, r4
- ldr r0, [r0]
- bl sub_800DC14
-_08042DB0:
- adds r5, 0x1
- ldr r0, [r6]
- ldr r0, [r0, 0x8]
- cmp r5, r0
- blt _08042D90
-_08042DBA:
- bl sub_800DBBC
- ldr r4, _08042DD0
- ldr r0, [r4]
- bl MemoryFree
- movs r0, 0
- str r0, [r4]
-_08042DCA:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08042DD0: .4byte gUnknown_203B414
- thumb_func_end sub_8042D7C
-
- thumb_func_start sub_8042DD4
-sub_8042DD4:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- movs r2, 0
- ldr r0, _08042E04
- mov r12, r0
- ldr r3, _08042E08
-_08042DE4:
- mov r1, r12
- ldr r0, [r1]
- adds r4, r0, r3
- ldr r1, [r4]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- bne _08042E0C
- str r5, [r4]
- str r6, [r4, 0xC]
- str r7, [r4, 0x4]
- adds r0, r5, 0
- bl sub_800E6D8
- str r0, [r4, 0x8]
- b _08042E14
- .align 2, 0
-_08042E04: .4byte gUnknown_203B418
-_08042E08: .4byte 0x000005c4
-_08042E0C:
- adds r3, 0x10
- adds r2, 0x1
- cmp r2, 0x2
- ble _08042DE4
-_08042E14:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8042DD4
-
- thumb_func_start sub_8042E1C
-sub_8042E1C:
- push {r4-r6,lr}
- movs r5, 0
- ldr r6, _08042E44
- ldr r4, _08042E48
-_08042E24:
- ldr r0, [r6]
- adds r0, r4
- ldr r1, [r0]
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _08042E4C
- adds r0, r1, 0
- bl sub_800E9A8
- lsls r0, 24
- cmp r0, 0
- beq _08042E4C
- movs r0, 0x1
- b _08042E56
- .align 2, 0
-_08042E44: .4byte gUnknown_203B418
-_08042E48: .4byte 0x000005c4
-_08042E4C:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x2
- ble _08042E24
- movs r0, 0
-_08042E56:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8042E1C
-
- thumb_func_start sub_8042E5C
-sub_8042E5C:
- push {r4-r7,lr}
- ldr r7, _08042E90
- ldr r6, _08042E94
- movs r5, 0x2
-_08042E64:
- ldr r0, [r7]
- adds r4, r0, r6
- ldr r0, [r4]
- cmp r0, 0
- blt _08042E82
- bl sub_800E9A8
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _08042E82
- movs r0, 0x1
- negs r0, r0
- str r0, [r4]
- str r1, [r4, 0xC]
-_08042E82:
- adds r6, 0x10
- subs r5, 0x1
- cmp r5, 0
- bge _08042E64
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042E90: .4byte gUnknown_203B418
-_08042E94: .4byte 0x000005c4
- thumb_func_end sub_8042E5C
-
- thumb_func_start sub_8042E98
-sub_8042E98:
- push {r4,r5,lr}
- ldr r5, _08042EC0
- movs r4, 0x1
- negs r4, r4
- movs r3, 0
- ldr r2, _08042EC4
- movs r1, 0x2
-_08042EA6:
- ldr r0, [r5]
- adds r0, r2
- str r4, [r0]
- str r3, [r0, 0x4]
- str r3, [r0, 0xC]
- adds r2, 0x10
- subs r1, 0x1
- cmp r1, 0
- bge _08042EA6
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08042EC0: .4byte gUnknown_203B418
-_08042EC4: .4byte 0x000005c4
- thumb_func_end sub_8042E98
-
- thumb_func_start sub_8042EC8
-sub_8042EC8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- adds r6, r0, 0
- mov r8, r1
- movs r7, 0
-_08042ED6:
- ldr r1, _08042F5C
- lsls r0, r7, 4
- ldr r2, _08042F60
- adds r0, r2
- ldr r1, [r1]
- adds r4, r1, r0
- ldr r0, [r4]
- cmp r0, 0
- blt _08042F4A
- ldr r0, [r4, 0xC]
- cmp r0, r6
- bne _08042F4A
- ldr r0, [r6, 0xC]
- cmp r0, 0
- bge _08042EF6
- adds r0, 0xFF
-_08042EF6:
- lsls r0, 8
- lsrs r0, 16
- ldr r1, _08042F64
- ldr r2, [sp, 0x8]
- ands r2, r1
- orrs r2, r0
- str r2, [sp, 0x8]
- ldr r1, [r6, 0x10]
- cmp r1, 0
- bge _08042F0C
- adds r1, 0xFF
-_08042F0C:
- lsls r1, 8
- lsrs r1, 16
- lsls r1, 16
- ldr r0, _08042F68
- ands r2, r0
- orrs r2, r1
- str r2, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0x4]
- ldr r5, [r6, 0x70]
- ldr r2, [r4, 0x8]
- subs r0, 0x1
- cmp r2, r0
- beq _08042F36
- lsls r2, 24
- lsrs r2, 24
- add r0, sp, 0x4
- adds r1, r6, 0
- adds r1, 0x28
- bl sub_800569C
-_08042F36:
- ldr r0, [r4]
- adds r1, r5, 0
- adds r1, 0x46
- ldrb r1, [r1]
- str r1, [sp]
- add r1, sp, 0x8
- add r2, sp, 0x4
- mov r3, r8
- bl sub_800EB24
-_08042F4A:
- adds r7, 0x1
- cmp r7, 0x2
- ble _08042ED6
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08042F5C: .4byte gUnknown_203B418
-_08042F60: .4byte 0x000005c4
-_08042F64: .4byte 0xffff0000
-_08042F68: .4byte 0x0000ffff
- thumb_func_end sub_8042EC8
-
- thumb_func_start xxx_dungeon_8042F6C
-xxx_dungeon_8042F6C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r8, r0
- ldr r1, _0804310C
- movs r0, 0
- strb r0, [r1]
- mov r0, r8
- ldrb r6, [r0, 0x8]
- ldrb r1, [r0, 0x11]
- mov r9, r1
- ldrb r2, [r0, 0x10]
- mov r10, r2
- ldr r0, _08043110
- mov r3, r8
- ldr r1, [r3, 0x74]
- str r1, [r0]
- ldr r2, _08043114
- ldr r0, [r3, 0x78]
- str r0, [r2]
- cmp r6, 0
- bne _08042FA0
- strb r6, [r1]
-_08042FA0:
- ldr r2, [r2]
- movs r1, 0
- ldr r4, _08043118
- ldr r5, _0804311C
- mov r0, sp
- adds r0, 0x4
- str r0, [sp, 0x8]
- mov r3, r8
- adds r3, 0x7C
- str r3, [sp, 0xC]
- movs r3, 0
-_08042FB6:
- adds r0, r2, r1
- strb r3, [r0]
- adds r1, 0x1
- cmp r1, r4
- bls _08042FB6
- movs r7, 0
- movs r0, 0x64
- strh r0, [r5]
- cmp r6, 0
- bne _0804300C
- ldr r4, _08043114
- ldr r0, [r4]
- mov r5, r8
- ldrb r1, [r5, 0xF]
- movs r2, 0xCF
- lsls r2, 3
- adds r0, r2
- strb r1, [r0]
- ldr r2, [r4]
- ldr r3, _08043120
- adds r2, r3
- ldr r0, [r5, 0x14]
- ldr r1, [r5, 0x18]
- str r0, [r2]
- str r1, [r2, 0x4]
- ldrb r0, [r5, 0x4]
- bl GetUnkC
- ldr r1, [r4]
- ldr r5, _08043124
- adds r2, r1, r5
- strh r0, [r2]
- ldr r0, _08043128
- adds r1, r0
- strb r7, [r1]
- mov r1, r8
- ldrb r0, [r1, 0x4]
- bl GetUnk3
- ldr r1, [r4]
- ldr r2, _0804312C
- adds r1, r2
- strb r0, [r1]
-_0804300C:
- ldr r4, _08043114
- ldr r0, [r4]
- movs r3, 0xD3
- lsls r3, 3
- adds r0, r3
- strb r7, [r0]
- ldr r0, [r4]
- ldr r5, _08043130
- adds r0, r5
- strb r7, [r0]
- ldr r0, [r4]
- mov r2, r8
- ldrb r1, [r2, 0x9]
- subs r3, 0x3C
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r2, 0xC]
- subs r5, 0x3F
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r2, 0xA]
- movs r2, 0xCB
- lsls r2, 3
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- mov r3, r8
- ldrb r1, [r3, 0xB]
- subs r5, 0x1
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r3, 0xD]
- adds r2, 0x3
- adds r0, r2
- strb r1, [r0]
- ldr r0, [r4]
- ldrb r1, [r3, 0xE]
- ldr r3, _08043134
- adds r0, r3
- strb r1, [r0]
- bl sub_8083F34
- bl sub_803D4AC
- bl sub_804513C
- bl sub_8043CD8
- bl sub_80495E4
- bl sub_803E250
- bl sub_8040130
- bl sub_8040124
- movs r0, 0x1
- bl sub_803F27C
- ldr r1, _08043138
- ldr r5, _0804313C
- adds r0, r5, 0
- strh r0, [r1]
- movs r0, 0x1
- movs r1, 0x14
- bl sub_80095CC
- movs r0, 0
- bl sub_800DAC0
- movs r0, 0x1
- bl xxx_update_some_bg_tiles
- bl sub_803DF60
- bl sub_803E02C
- bl sub_8042E98
- ldr r0, _08043140
- strb r7, [r0]
- cmp r6, 0
- beq _080430C8
- ldr r0, _08043110
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 7
- bl sub_8081BF4
- bl sub_8049840
-_080430C8:
- mov r0, r9
- cmp r0, 0
- beq _080430D2
- bl sub_8043D60
-_080430D2:
- cmp r6, 0
- beq _080430D8
- b _080431DC
-_080430D8:
- ldr r0, [r4]
- ldr r1, _08043144
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r2, _08043148
- adds r0, r2
- strb r1, [r0]
- ldr r2, [r4]
- movs r3, 0xCF
- lsls r3, 3
- adds r0, r2, r3
- ldrb r3, [r0]
- cmp r3, 0x1
- bne _08043154
- mov r5, r8
- ldrb r1, [r5, 0x14]
- ldr r5, _0804314C
- adds r0, r2, r5
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, _08043150
- adds r0, r1
- strb r3, [r0]
- b _0804315E
- .align 2, 0
-_0804310C: .4byte gUnknown_203B40C
-_08043110: .4byte gUnknown_203B41C
-_08043114: .4byte gUnknown_203B418
-_08043118: .4byte 0x0001cedb
-_0804311C: .4byte gUnknown_203B410
-_08043120: .4byte 0x0000064c
-_08043124: .4byte 0x00000666
-_08043128: .4byte 0x0000067a
-_0804312C: .4byte 0x0000067b
-_08043130: .4byte 0x00000699
-_08043134: .4byte 0x0000065d
-_08043138: .4byte gUnknown_2026E4E
-_0804313C: .4byte 0x00000808
-_08043140: .4byte gUnknown_202F32C
-_08043144: .4byte 0x0001820b
-_08043148: .4byte 0x0001820c
-_0804314C: .4byte 0x00000644
-_08043150: .4byte 0x00000645
-_08043154:
- ldr r3, _0804318C
- adds r1, r2, r3
- mov r5, r8
- ldr r0, [r5, 0x4]
- str r0, [r1]
-_0804315E:
- ldr r4, _08043190
- ldr r0, [r4]
- ldr r1, _08043194
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- bl sub_8044124
- cmp r6, 0
- bne _080431DC
- ldr r1, [r4]
- movs r2, 0xCF
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0804319C
- ldr r3, _08043198
- adds r1, r3
- mov r5, r8
- ldr r0, [r5, 0x18]
- str r0, [r1]
- b _080431AC
- .align 2, 0
-_0804318C: .4byte 0x00000644
-_08043190: .4byte gUnknown_203B418
-_08043194: .4byte 0x00000674
-_08043198: .4byte 0x0000067c
-_0804319C:
- bl Random
- ldr r2, [r4]
- ldr r1, _08043208
- adds r2, r1
- ldr r1, _0804320C
- ands r1, r0
- str r1, [r2]
-_080431AC:
- ldr r4, _08043210
- ldr r0, [r4]
- ldr r2, _08043208
- adds r0, r2
- ldr r0, [r0]
- bl sub_808408C
- cmp r6, 0
- bne _080431DC
- bl sub_80980A4
- lsls r0, 24
- cmp r0, 0
- bne _080431D8
- ldr r0, [r4]
- ldr r3, _08043214
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080431D8
- bl sub_8043FD0
-_080431D8:
- bl sub_806890C
-_080431DC:
- mov r5, r9
- cmp r5, 0
- beq _08043230
- ldr r1, _08043218
- ldr r0, _08043210
- ldr r0, [r0]
- ldr r2, _0804321C
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- str r0, [r1]
- cmp r0, 0
- beq _08043224
- ldr r0, _08043220
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- b _08043230
- .align 2, 0
-_08043208: .4byte 0x0000067c
-_0804320C: .4byte 0x00ffffff
-_08043210: .4byte gUnknown_203B418
-_08043214: .4byte 0x00000644
-_08043218: .4byte gUnknown_202DE30
-_0804321C: .4byte 0x0000067b
-_08043220: .4byte gUnknown_80FEC48
-_08043224:
- ldr r0, _080432B4
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
-_08043230:
- mov r3, r10
- cmp r3, 0
- beq _0804326A
- mov r1, r8
- adds r1, 0x44
- movs r0, 0
- strb r0, [r1]
- ldr r0, _080432B8
- ldr r0, [r0]
- ldr r5, _080432BC
- adds r0, r5
- ldrb r0, [r0]
- bl GetLevelCondition
- lsls r0, 24
- mov r4, r8
- adds r4, 0x1C
- cmp r0, 0
- beq _0804325C
- adds r0, r4, 0
- bl sub_808D0D8
-_0804325C:
- adds r0, r4, 0
- bl sub_8068A84
- cmp r6, 0
- beq _0804326A
- bl sub_806B404
-_0804326A:
- bl sub_8068614
- cmp r6, 0
- bne _080432F4
- ldr r0, _080432B8
- ldr r0, [r0]
- movs r1, 0xCF
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080432F4
- mov r0, sp
- bl sub_8099394
- lsls r0, 24
- cmp r0, 0
- beq _080432F4
- mov r0, sp
- ldrb r0, [r0]
- bl sub_8095228
- adds r2, r0, 0
- adds r2, 0x2C
- movs r0, 0
- ldrsb r0, [r2, r0]
- cmp r0, 0
- beq _080432E8
- ldr r1, _080432C0
- str r0, [r1]
- ldr r0, _080432C4
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- b _080432F4
- .align 2, 0
-_080432B4: .4byte gUnknown_80FEC7C
-_080432B8: .4byte gUnknown_203B418
-_080432BC: .4byte 0x00000644
-_080432C0: .4byte gUnknown_202DE30
-_080432C4: .4byte gUnknown_81002B8
-_080432C8:
- ldr r4, _080432CC
- b _080432D2
- .align 2, 0
-_080432CC: .4byte 0x00000226
-_080432D0:
- ldr r4, _080432E4
-_080432D2:
- bl sub_8083600
- adds r2, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8083AB0
- bl _08043AF4
- .align 2, 0
-_080432E4: .4byte 0x00000227
-_080432E8:
- ldr r0, _080434B8
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
-_080432F4:
- movs r2, 0
- mov r10, r2
- movs r3, 0
- mov r9, r3
-_080432FC:
- bl sub_8098080
- bl nullsub_16
- bl sub_80521D0
- bl sub_80531A8
- bl sub_800F690
- cmp r6, 0
- bne _08043318
- bl sub_804513C
-_08043318:
- ldr r0, _080434BC
- movs r5, 0
- str r5, [r0]
- ldr r4, _080434C0
- ldr r0, [r4]
- strb r5, [r0]
- cmp r6, 0
- bne _08043346
- bl sub_80840A4
- ldr r1, [r4]
- movs r3, 0xD0
- lsls r3, 3
- adds r2, r1, r3
- str r0, [r2]
- movs r0, 0xCD
- lsls r0, 3
- adds r1, r0
- movs r0, 0xA
- strh r0, [r1]
- ldr r0, [r2]
- bl sub_80840D8
-_08043346:
- ldr r0, [r4]
- ldr r1, _080434C4
- adds r0, r1
- strb r5, [r0]
- cmp r6, 0
- bne _08043390
- ldr r0, [r4]
- ldr r2, _080434C8
- adds r0, r2
- strb r6, [r0]
- movs r0, 0x4
- bl sub_8084100
- ldr r1, [r4]
- ldr r3, _080434CC
- adds r1, r3
- strb r6, [r1]
- ldr r1, [r4]
- ldr r2, _080434D0
- adds r1, r2
- strb r6, [r1]
- ldr r2, [r4]
- ldr r1, _080434D4
- lsls r0, 1
- adds r0, r1
- ldrh r1, [r0]
- adds r3, 0x3
- adds r0, r2, r3
- strh r1, [r0]
- ldr r0, _080434D8
- adds r2, r0
- mov r1, r10
- strb r1, [r2]
- ldr r0, [r4]
- ldr r2, _080434DC
- adds r0, r2
- strb r1, [r0]
-_08043390:
- bl sub_803D4D0
- ldr r0, [r4]
- strb r5, [r0, 0x1]
- ldr r0, [r4]
- strb r5, [r0, 0x10]
- ldr r0, [r4]
- strb r5, [r0, 0x2]
- ldr r0, [r4]
- strb r5, [r0, 0x4]
- ldr r0, [r4]
- strb r5, [r0, 0x11]
- ldr r0, [r4]
- strb r5, [r0, 0x8]
- ldr r0, [r4]
- strb r5, [r0, 0x3]
- ldr r0, [r4]
- strb r5, [r0, 0x6]
- ldr r0, [r4]
- strb r5, [r0, 0xF]
- ldr r2, [r4]
- movs r3, 0xB8
- lsls r3, 3
- adds r1, r2, r3
- movs r0, 0x1
- negs r0, r0
- str r0, [r1]
- strb r5, [r2, 0x7]
- ldr r0, [r4]
- strb r5, [r0, 0x9]
- ldr r0, [r4]
- strb r5, [r0, 0xA]
- ldr r0, [r4]
- movs r1, 0x1
- strb r1, [r0, 0xB]
- ldr r0, [r4]
- strb r1, [r0, 0xD]
- ldr r0, [r4]
- strb r5, [r0, 0xE]
- ldr r0, [r4]
- ldr r2, _080434E0
- adds r0, r2
- strb r5, [r0]
- cmp r6, 0
- bne _080434A6
- ldr r0, [r4]
- adds r3, 0xB9
- adds r0, r3
- strb r6, [r0]
- ldr r1, [r4]
- ldr r5, _080434E4
- adds r0, r1, r5
- str r6, [r0]
- movs r2, 0xD2
- lsls r2, 3
- adds r0, r1, r2
- str r6, [r0]
- adds r3, 0x1B
- adds r0, r1, r3
- str r6, [r0]
- subs r5, 0x2C
- adds r0, r1, r5
- strh r6, [r0]
- subs r2, 0x2E
- adds r0, r1, r2
- strh r6, [r0]
- subs r3, 0x26
- adds r1, r3
- mov r5, r10
- strb r5, [r1]
- ldr r0, [r4]
- ldr r1, _080434E8
- adds r0, r1
- strb r5, [r0]
- ldr r0, [r4]
- adds r2, 0xE
- adds r0, r2
- strb r5, [r0]
- ldr r0, [r4]
- adds r3, 0x8
- adds r0, r3
- strb r5, [r0]
- ldr r0, [r4]
- ldr r5, _080434EC
- adds r0, r5
- mov r1, r10
- strb r1, [r0]
- ldr r0, [r4]
- adds r2, 0x2
- adds r0, r2
- strb r1, [r0]
- ldr r1, [r4]
- subs r3, 0xC
- adds r2, r1, r3
- ldr r0, _080434F0
- strh r0, [r2]
- adds r5, 0x17
- adds r0, r1, r5
- strh r6, [r0]
- ldr r0, _080434F4
- adds r1, r0
- mov r2, r10
- strb r2, [r1]
- ldr r1, [r4]
- adds r3, 0x1A
- adds r0, r1, r3
- movs r2, 0x63
- strh r2, [r0]
- subs r5, 0x2
- adds r0, r1, r5
- strh r2, [r0]
- ldr r0, _080434F8
- adds r1, r0
- mov r2, r10
- strb r2, [r1]
- ldr r1, [r4]
- ldr r3, _080434FC
- adds r0, r1, r3
- ldrb r2, [r0]
- ldr r5, _08043500
- adds r0, r1, r5
- strh r2, [r0]
- ldr r2, _08043504
- adds r0, r1, r2
- ldrb r2, [r0]
- ldr r3, _08043508
- adds r0, r1, r3
- strh r2, [r0]
- ldr r5, _0804350C
- adds r0, r1, r5
- ldrb r0, [r0]
- ldr r2, _08043510
- adds r1, r2
- strh r0, [r1]
- movs r0, 0
- bl sub_807E5E4
- bl sub_80842F0
-_080434A6:
- bl sub_803D8F0
- bl sub_8068658
- cmp r6, 0
- bne _08043514
- bl sub_80687AC
- b _0804351C
- .align 2, 0
-_080434B8: .4byte gUnknown_81002D8
-_080434BC: .4byte gUnknown_203B450
-_080434C0: .4byte gUnknown_203B418
-_080434C4: .4byte 0x000037ec
-_080434C8: .4byte 0x000037fc
-_080434CC: .4byte 0x000037fd
-_080434D0: .4byte 0x000037fe
-_080434D4: .4byte gUnknown_80F6850
-_080434D8: .4byte 0x000037ff
-_080434DC: .4byte 0x00000675
-_080434E0: .4byte 0x0001c05e
-_080434E4: .4byte 0x0000068c
-_080434E8: .4byte 0x0000066f
-_080434EC: .4byte 0x00000671
-_080434F0: .4byte 0x000003e7
-_080434F4: .4byte 0x0000068a
-_080434F8: .4byte 0x0000e264
-_080434FC: .4byte 0x0001c576
-_08043500: .4byte 0x00003a0e
-_08043504: .4byte 0x0001c577
-_08043508: .4byte 0x00003a10
-_0804350C: .4byte 0x0001c586
-_08043510: .4byte 0x00003a14
-_08043514:
- bl sub_8068768
- bl sub_8082B40
-_0804351C:
- bl sub_806C42C
- bl sub_806AD3C
- cmp r6, 0
- bne _08043544
- ldr r1, _080435B4
- ldr r3, _080435B8
- ldr r0, [r3]
- ldr r5, _080435BC
- adds r0, r5
- movs r2, 0
- ldrsh r0, [r0, r2]
- lsls r0, 1
- adds r0, r1
- ldrh r0, [r0]
- bl sub_8083E88
- bl sub_80847D4
-_08043544:
- bl sub_8049840
- bl sub_803E178
- ldr r0, _080435C0
- mov r3, r9
- str r3, [r0]
- bl sub_8040124
- movs r0, 0x4
- movs r1, 0
- bl sub_803EAF0
- movs r0, 0
- bl sub_8052210
- adds r0, r6, 0
- bl sub_803F27C
- bl ShowDungeonNameBanner
- cmp r6, 0
- bne _08043594
- bl sub_804AFAC
- ldr r5, _080435B8
- ldr r0, [r5]
- ldr r1, _080435C4
- adds r0, r1
- ldrb r0, [r0]
- bl GetUnkC
- ldr r2, [r5]
- ldr r3, _080435C8
- adds r1, r2, r3
- strh r0, [r1]
- ldr r5, _080435CC
- adds r2, r5
- mov r0, r10
- strb r0, [r2]
-_08043594:
- bl sub_804AAD4
- bl sub_8049B8C
- bl sub_804966C
- cmp r6, 0
- bne _080435D0
- bl sub_806B168
- bl sub_806C3C0
- bl sub_806B6C4
- b _080435D4
- .align 2, 0
-_080435B4: .4byte gUnknown_80F5668
-_080435B8: .4byte gUnknown_203B418
-_080435BC: .4byte 0x00003a10
-_080435C0: .4byte gUnknown_202EDC8
-_080435C4: .4byte 0x00000644
-_080435C8: .4byte 0x00000666
-_080435CC: .4byte 0x0000067a
-_080435D0:
- bl sub_806B678
-_080435D4:
- ldr r4, _0804362C
- ldr r1, [r4]
- ldr r2, _08043630
- adds r0, r1, r2
- mov r3, r9
- str r3, [r0]
- ldr r5, _08043634
- adds r0, r1, r5
- str r3, [r0]
- adds r2, 0x4
- adds r0, r1, r2
- str r3, [r0]
- ldr r3, _08043638
- adds r0, r1, r3
- mov r5, r9
- str r5, [r0]
- adds r2, 0x4
- adds r0, r1, r2
- str r5, [r0]
- adds r3, 0x4
- adds r1, r3
- str r5, [r1]
- cmp r6, 0
- bne _08043644
- bl sub_807FA18
- bl sub_8045CB0
- ldr r1, [r4]
- ldr r5, _0804363C
- adds r2, r1, r5
- ldr r3, _08043640
- adds r0, r1, r3
- ldr r0, [r0]
- str r0, [r2]
- subs r5, 0x4
- adds r1, r5
- str r6, [r1]
- bl sub_8051E3C
- bl sub_804AAAC
- b _08043648
- .align 2, 0
-_0804362C: .4byte gUnknown_203B418
-_08043630: .4byte 0x00017b2c
-_08043634: .4byte 0x00017b38
-_08043638: .4byte 0x00017b3c
-_0804363C: .4byte 0x00000694
-_08043640: .4byte 0x0000068c
-_08043644:
- bl sub_806A338
-_08043648:
- bl sub_8068F80
- bl sub_8049884
- bl sub_8049ED4
- cmp r6, 0
- bne _08043664
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- bl sub_806A914
- b _0804366C
-_08043664:
- bl sub_806CF60
- bl sub_806A974
-_0804366C:
- movs r0, 0x1
- bl sub_8041888
- cmp r6, 0
- bne _0804367E
- bl sub_80848F0
- bl sub_8097890
-_0804367E:
- ldr r0, _080436A0
- movs r1, 0x1
- strb r1, [r0]
- cmp r6, 0
- beq _08043690
- bl sub_807E88C
- bl sub_806AB2C
-_08043690:
- ldr r2, _080436A4
- ldr r0, [r2]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _080436A8
- bl sub_803E748
- b _080436AC
- .align 2, 0
-_080436A0: .4byte gUnknown_203B40C
-_080436A4: .4byte gUnknown_203B418
-_080436A8:
- bl sub_803E7C8
-_080436AC:
- movs r0, 0
- bl sub_8040094
- movs r0, 0
- movs r1, 0
- bl sub_803EAF0
- adds r0, r6, 0
- bl sub_8040150
- bl sub_8040A84
- ldr r4, _08043730
- ldr r1, [r4]
- adds r0, r1, 0
- adds r0, 0xB8
- mov r3, r9
- str r3, [r0]
- ldr r5, _08043734
- adds r1, r5
- strb r3, [r1]
- ldr r0, [r4]
- ldr r1, _08043738
- adds r0, r1
- mov r2, r9
- strb r2, [r0]
- ldr r1, [r4]
- movs r5, 0
- movs r0, 0x63
- strh r0, [r1, 0x12]
- movs r3, 0x1
- strb r3, [r1]
- cmp r6, 0
- bne _08043706
- bl sub_8052DD0
- ldr r1, [r4]
- ldrb r0, [r1, 0x9]
- cmp r0, 0
- beq _08043706
- strb r5, [r1, 0x9]
- bl sub_8083D68
- bl sub_8052F80
-_08043706:
- ldr r0, _0804373C
- mov r5, r9
- str r5, [r0]
- ldr r4, _08043730
- ldr r0, [r4]
- strb r5, [r0, 0x5]
- cmp r6, 0
- bne _08043778
- bl sub_8084B64
- ldr r1, [r4]
- ldrb r0, [r1, 0x4]
- cmp r0, 0
- bne _08043728
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- beq _08043740
-_08043728:
- movs r0, 0x1
- strb r0, [r1, 0x5]
- b _0804374C
- .align 2, 0
-_08043730: .4byte gUnknown_203B418
-_08043734: .4byte 0x0000066c
-_08043738: .4byte 0x0000066d
-_0804373C: .4byte gUnknown_203B450
-_08043740:
- bl sub_8083600
- bl sub_803F4A0
- bl sub_8040A84
-_0804374C:
- cmp r6, 0
- bne _08043778
- ldr r1, _08043774
- ldr r0, [r1]
- ldrb r0, [r0, 0x5]
- cmp r0, 0
- bne _0804377C
- bl sub_807E5AC
- movs r0, 0
- bl sub_807E580
- lsls r0, 24
- cmp r0, 0
- beq _0804377C
- movs r0, 0x1
- bl sub_807E7FC
- b _0804377C
- .align 2, 0
-_08043774: .4byte gUnknown_203B418
-_08043778:
- bl sub_8069E8C
-_0804377C:
- cmp r6, 0
- beq _08043784
- movs r6, 0
- b _080437A2
-_08043784:
- bl sub_80427AC
- bl sub_8083600
- ldr r2, _08043960
- ldr r1, [r2]
- ldr r3, _08043964
- adds r1, r3
- ldrb r1, [r1]
- bl sub_8075900
- movs r0, 0x1
- movs r1, 0
- bl sub_807EAA0
-_080437A2:
- bl nullsub_16
- ldr r2, _08043960
- ldr r0, [r2]
- ldrb r1, [r0, 0x5]
- cmp r1, 0
- bne _080437DA
- movs r4, 0x1
- ldr r5, _08043968
- adds r0, r5
- strb r1, [r0]
- ldr r0, [r2]
- ldr r3, _0804396C
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r2]
- ldr r5, _08043970
- adds r0, r5
- strb r4, [r0]
-_080437C8:
- adds r0, r4, 0
- bl RunDungeon
- movs r4, 0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _080437C8
-_080437DA:
- bl sub_8083600
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080437F0
- adds r0, r4, 0
- bl sub_8071DA4
-_080437F0:
- ldr r5, _08043960
- ldr r0, [r5]
- ldr r4, _08043968
- adds r0, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08043822
- movs r0, 0x1
- bl sub_8043ED0
- lsls r0, 24
- cmp r0, 0
- beq _08043812
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0]
-_08043812:
- ldr r1, [r5]
- adds r0, r1, r4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08043822
- ldrb r0, [r1, 0x11]
- cmp r0, 0
- beq _08043830
-_08043822:
- ldr r2, _08043960
- ldr r0, [r2]
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- bne _08043830
- bl sub_806AA70
-_08043830:
- bl sub_8083600
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0804384A
- movs r0, 0x4F
- bl sub_80526D0
- movs r0, 0x4F
- bl sub_8052740
-_0804384A:
- bl sub_8040124
- movs r0, 0x1
- movs r1, 0
- bl sub_803EAF0
- ldr r3, _08043960
- ldr r0, [r3]
- ldr r5, _08043970
- adds r0, r5
- mov r1, r9
- strb r1, [r0]
- ldr r0, [r3]
- ldr r2, _0804396C
- adds r0, r2
- movs r3, 0x1
- strb r3, [r0]
- ldr r5, _08043960
- ldr r1, [r5]
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- bne _08043896
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _08043896
- ldr r2, _08043974
- adds r0, r1, r2
- ldrh r0, [r0]
- cmp r0, 0x72
- bne _08043896
- ldr r3, _08043978
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1B
- bne _08043896
- movs r0, 0x3C
- bl sub_8083ED8
-_08043896:
- movs r0, 0x4
- movs r1, 0x4F
- bl sub_803E708
- ldr r5, _08043960
- ldr r0, [r5]
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _080438AC
- bl sub_803E830
-_080438AC:
- movs r0, 0
- bl SetBGOBJEnableFlags
- ldr r1, _0804397C
- ldr r0, [sp, 0x4]
- ands r0, r1
- movs r1, 0x60
- orrs r0, r1
- ldr r1, _08043980
- ands r0, r1
- movs r1, 0x80
- lsls r1, 8
- orrs r0, r1
- ldr r1, _08043984
- ands r0, r1
- movs r1, 0xF8
- lsls r1, 16
- orrs r0, r1
- str r0, [sp, 0x4]
- ldr r0, _08043988
- ldr r2, [r0]
- movs r0, 0xFD
- ldr r1, [sp, 0x8]
- movs r3, 0
- bl SetBGPaletteBufferColorRGB
- movs r0, 0x1
- bl sub_8040094
- ldr r0, [r5]
- ldr r1, _0804396C
- adds r0, r1
- movs r7, 0
- movs r2, 0x1
- strb r2, [r0]
- ldr r1, [r5]
- ldrb r0, [r1, 0x10]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _08043926
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08043926
- bl sub_8083600
- adds r4, r0, 0
- ldr r0, _0804398C
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- ldr r0, [r5]
- strb r7, [r0, 0x6]
- ldr r0, _08043990
- adds r1, r4, 0
- adds r2, r4, 0
- bl sub_8083AB0
-_08043926:
- bl sub_80688CC
- bl sub_8049820
- ldr r0, _08043994
- ldr r0, [r0]
- bl CloseFile
- bl sub_800F740
- ldr r0, _08043998
- mov r3, r10
- strb r3, [r0]
- ldr r4, _08043960
- ldr r1, [r4]
- ldrb r0, [r1, 0x3]
- cmp r0, 0
- beq _0804394C
- b _08043BFC
-_0804394C:
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _080439A0
- ldr r0, _0804399C
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 7
- bl sub_8080B30
- b _080439A6
- .align 2, 0
-_08043960: .4byte gUnknown_203B418
-_08043964: .4byte 0x00003a08
-_08043968: .4byte 0x00000654
-_0804396C: .4byte 0x00018218
-_08043970: .4byte 0x00018219
-_08043974: .4byte 0x0001ceda
-_08043978: .4byte 0x00000644
-_0804397C: .4byte 0xffffff00
-_08043980: .4byte 0xffff00ff
-_08043984: .4byte 0xff00ffff
-_08043988: .4byte gUnknown_202EDC8
-_0804398C: .4byte gUnknown_81006A4
-_08043990: .4byte 0x00000222
-_08043994: .4byte gDungeonNameBannerPalette
-_08043998: .4byte gUnknown_203B40C
-_0804399C: .4byte gUnknown_203B41C
-_080439A0:
- movs r0, 0x2
- bl sub_8046F84
-_080439A6:
- bl sub_806C1D8
- ldr r4, _080439CC
- ldr r1, [r4]
- ldr r5, _080439D0
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080439D4
- adds r5, 0x1A
- adds r0, r1, r5
- ldrb r0, [r0]
- cmp r0, 0
- bne _080439C4
- b _08043AF4
-_080439C4:
- bl sub_804700C
- b _08043AF4
- .align 2, 0
-_080439CC: .4byte gUnknown_203B418
-_080439D0: .4byte 0x00000654
-_080439D4:
- ldrb r0, [r1, 0x11]
- cmp r0, 0x1
- bne _080439DC
- b _080432C8
-_080439DC:
- cmp r0, 0x2
- bne _08043A00
- bl sub_8083600
- adds r2, r0, 0
- ldr r0, _080439F8
- movs r1, 0
- bl sub_8083AB0
- ldr r0, [r4]
- ldr r1, _080439FC
- adds r0, r1
- b _08043A62
- .align 2, 0
-_080439F8: .4byte 0x00000229
-_080439FC: .4byte 0x0000066e
-_08043A00:
- cmp r0, 0x3
- bne _08043A24
- bl sub_8083600
- adds r2, r0, 0
- ldr r0, _08043A1C
- movs r1, 0
- bl sub_8083AB0
- ldr r0, [r4]
- ldr r2, _08043A20
- adds r0, r2
- b _08043A62
- .align 2, 0
-_08043A1C: .4byte 0x0000022a
-_08043A20: .4byte 0x0000066e
-_08043A24:
- cmp r0, 0x4
- bne _08043A2A
- b _080432D0
-_08043A2A:
- movs r3, 0xCF
- lsls r3, 3
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08043A74
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08043A74
- ldr r0, [r4]
- adds r0, r5
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08043A74
- bl sub_8083600
- adds r2, r0, 0
- movs r0, 0x8A
- lsls r0, 2
- movs r1, 0
- bl sub_8083AB0
- ldr r0, [r4]
- ldr r5, _08043A70
- adds r0, r5
-_08043A62:
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043AF4
- bl sub_8097810
- b _08043AF4
- .align 2, 0
-_08043A70: .4byte 0x0000066e
-_08043A74:
- ldr r4, _08043ACC
- ldr r0, [r4]
- ldr r1, _08043AD0
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043A86
- bl sub_8097810
-_08043A86:
- ldr r1, [r4]
- ldr r3, _08043AD4
- adds r2, r1, r3
- ldrb r0, [r2]
- adds r0, 0x1
- ldr r5, _08043AD8
- adds r1, r5
- ldrb r1, [r1]
- cmp r0, r1
- bge _08043AE4
- strb r0, [r2]
- ldr r0, [r4]
- ldr r1, _08043ADC
- adds r0, r1
- ldrh r1, [r0]
- ldr r0, _08043AE0
- cmp r1, r0
- beq _08043AAC
- b _080432FC
-_08043AAC:
- movs r0, 0x1F
- bl sub_8098100
- lsls r0, 24
- cmp r0, 0
- beq _08043ABA
- b _080432FC
-_08043ABA:
- movs r0, 0x1F
- bl sub_8097FA8
- bl sub_8086130
- bl sub_8097FF8
- b _080432FC
- .align 2, 0
-_08043ACC: .4byte gUnknown_203B418
-_08043AD0: .4byte 0x0000066e
-_08043AD4: .4byte 0x00000645
-_08043AD8: .4byte 0x0001cec8
-_08043ADC: .4byte 0x00000644
-_08043AE0: .4byte 0x0000060b
-_08043AE4:
- ldr r4, _08043B80
- bl sub_8083600
- adds r2, r0, 0
- adds r0, r4, 0
- movs r1, 0
- bl sub_8083AB0
-_08043AF4:
- ldr r1, _08043B84
- movs r0, 0
- strb r0, [r1]
- mov r4, r8
- adds r4, 0x7E
- movs r0, 0
- strb r0, [r4]
- bl sub_8097FF8
- movs r0, 0x1
- movs r1, 0x14
- bl sub_80095CC
- bl sub_803E13C
- movs r0, 0x4
- bl sub_800CDA8
- ldr r0, _08043B88
- ldr r1, [r0]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- bne _08043B38
- movs r2, 0xCF
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- bl sub_8083C88
- lsls r0, 24
- cmp r0, 0
- beq _08043B38
- bl sub_80841EC
-_08043B38:
- bl sub_8083C24
- lsls r0, 24
- cmp r0, 0
- beq _08043BA4
- ldr r5, _08043B88
- ldr r0, [r5]
- ldrb r0, [r0, 0x6]
- cmp r0, 0
- beq _08043B98
- ldr r0, _08043B8C
- ldr r3, [sp, 0xC]
- strh r0, [r3]
- mov r4, r8
- adds r4, 0x84
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x8
- bl memset
- mov r3, r8
- adds r3, 0x80
- ldr r1, [r5]
- ldr r5, _08043B90
- adds r2, r1, r5
- ldr r0, [r2]
- str r0, [r3]
- ldr r0, [r2]
- str r0, [r4]
- mov r2, r8
- adds r2, 0x88
- ldr r0, _08043B94
- adds r1, r0
- ldr r0, [r1]
- str r0, [r2]
- b _08043C32
- .align 2, 0
-_08043B80: .4byte 0x00000227
-_08043B84: .4byte gUnknown_203B40C
-_08043B88: .4byte gUnknown_203B418
-_08043B8C: .4byte 0x0000fffe
-_08043B90: .4byte 0x00000644
-_08043B94: .4byte 0x0000067c
-_08043B98:
- ldr r0, _08043BA0
- ldr r1, [sp, 0xC]
- strh r0, [r1]
- b _08043C32
- .align 2, 0
-_08043BA0: .4byte 0x0000ffff
-_08043BA4:
- bl sub_8083C50
- lsls r0, 24
- cmp r0, 0
- beq _08043C28
- ldr r0, _08043BC8
- ldr r0, [r0]
- movs r2, 0xCF
- lsls r2, 3
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08043BCC
- movs r0, 0x4
- ldr r3, [sp, 0xC]
- strh r0, [r3]
- b _08043BE6
- .align 2, 0
-_08043BC8: .4byte gUnknown_203B418
-_08043BCC:
- cmp r0, 0
- bne _08043BDC
- movs r0, 0x1
- ldr r5, [sp, 0xC]
- strh r0, [r5]
- bl sub_8084424
- b _08043BE6
-_08043BDC:
- movs r0, 0x1
- ldr r1, [sp, 0xC]
- strh r0, [r1]
- bl sub_8084424
-_08043BE6:
- ldr r0, _08043BF4
- ldr r0, [r0]
- ldr r2, _08043BF8
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r4]
- b _08043C32
- .align 2, 0
-_08043BF4: .4byte gUnknown_203B418
-_08043BF8: .4byte 0x00000674
-_08043BFC:
- ldr r0, _08043C20
- ldr r0, [r0]
- movs r1, 0x90
- lsls r1, 7
- bl sub_8080B30
- movs r0, 0x3
- ldr r3, [sp, 0xC]
- strh r0, [r3]
- mov r1, r8
- adds r1, 0x80
- ldr r0, [r4]
- ldr r5, _08043C24
- adds r0, r5
- ldr r0, [r0]
- str r0, [r1]
- b _08043C32
- .align 2, 0
-_08043C20: .4byte gUnknown_203B41C
-_08043C24: .4byte 0x00000644
-_08043C28:
- movs r0, 0x2
- ldr r1, [sp, 0xC]
- strh r0, [r1]
- bl sub_8084424
-_08043C32:
- bl sub_806863C
- bl sub_803E214
- bl nullsub_56
- bl sub_8040218
- ldr r2, [sp, 0xC]
- movs r3, 0
- ldrsh r0, [r2, r3]
- cmp r0, 0x1
- beq _08043C54
- cmp r0, 0x4
- beq _08043C54
- cmp r0, 0x2
- bne _08043C58
-_08043C54:
- bl sub_8047104
-_08043C58:
- ldr r5, [sp, 0xC]
- movs r0, 0
- ldrsh r1, [r5, r0]
- cmp r1, 0x1
- beq _08043C8A
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _08043C78
- cmp r1, 0x4
- beq _08043C78
- adds r0, 0x1
- cmp r1, r0
- beq _08043C78
- cmp r1, 0x2
- bne _08043CAC
-_08043C78:
- ldr r2, [sp, 0xC]
- movs r3, 0
- ldrsh r1, [r2, r3]
- cmp r1, 0x1
- beq _08043C8A
- cmp r1, 0x4
- beq _08043C8A
- cmp r1, 0x2
- bne _08043C92
-_08043C8A:
- movs r0, 0x1
- bl sub_8068BDC
- b _08043CAC
-_08043C92:
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- bne _08043CA2
- movs r0, 0
- bl sub_8068BDC
- b _08043CAC
-_08043CA2:
- bl sub_8068F28
- movs r0, 0
- bl sub_8068BDC
-_08043CAC:
- bl sub_800DB7C
- ldr r0, _08043CD0
- movs r1, 0
- str r1, [r0]
- ldr r0, _08043CD4
- str r1, [r0]
- bl nullsub_16
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043CD0: .4byte gUnknown_203B418
-_08043CD4: .4byte gUnknown_203B41C
- thumb_func_end xxx_dungeon_8042F6C
-
- thumb_func_start sub_8043CD8
-sub_8043CD8:
- push {lr}
- bl sub_8009804
- pop {r0}
- bx r0
- thumb_func_end sub_8043CD8
-
- thumb_func_start sub_8043CE4
-sub_8043CE4:
- push {lr}
- adds r1, r0, 0
- ldr r0, _08043CF4
- ldrb r0, [r0]
- cmp r0, 0
- beq _08043CF8
- movs r0, 0x1
- b _08043D08
- .align 2, 0
-_08043CF4: .4byte gUnknown_202F1A8
-_08043CF8:
- movs r2, 0
- ldr r0, _08043D0C
- adds r0, r1, r0
- ldrb r0, [r0]
- cmp r0, 0x2
- bne _08043D06
- movs r2, 0x1
-_08043D06:
- adds r0, r2, 0
-_08043D08:
- pop {r1}
- bx r1
- .align 2, 0
-_08043D0C: .4byte gUnknown_810ACC0
- thumb_func_end sub_8043CE4
-
- thumb_func_start sub_8043D10
-sub_8043D10:
- push {lr}
- ldr r0, _08043D38
- ldr r1, [r0]
- movs r2, 0xCF
- lsls r2, 3
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08043D3C
- subs r2, 0x2B
- adds r0, r1, r2
- subs r2, 0x8
- adds r1, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08043D3C
- movs r0, 0x2
- b _08043D4C
- .align 2, 0
-_08043D38: .4byte gUnknown_203B418
-_08043D3C:
- bl sub_80441BC
- lsls r0, 24
- cmp r0, 0
- bne _08043D4A
- movs r0, 0
- b _08043D4C
-_08043D4A:
- movs r0, 0x1
-_08043D4C:
- pop {r1}
- bx r1
- thumb_func_end sub_8043D10
-
- thumb_func_start sub_8043D50
-sub_8043D50:
- ldr r2, _08043D5C
- str r2, [r1]
- movs r1, 0x90
- lsls r1, 7
- str r1, [r0]
- bx lr
- .align 2, 0
-_08043D5C: .4byte 0x0001cedc
- thumb_func_end sub_8043D50
-
- thumb_func_start sub_8043D60
-sub_8043D60:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r5, 0
-_08043D6A:
- ldr r0, _08043DA4
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08043DA8
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08043DCE
- ldr r2, [r4, 0x70]
- movs r1, 0x1
- ldrb r0, [r2, 0x8]
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- adds r0, r2, 0
- adds r0, 0x40
- ldrb r0, [r0]
- cmp r0, 0x4A
- beq _08043DA0
- cmp r0, 0x47
- bne _08043DAC
-_08043DA0:
- movs r0, 0x1
- b _08043DAE
- .align 2, 0
-_08043DA4: .4byte gUnknown_203B418
-_08043DA8: .4byte 0x0001358c
-_08043DAC:
- movs r0, 0
-_08043DAE:
- cmp r0, 0
- beq _08043DB4
- movs r1, 0
-_08043DB4:
- adds r0, r2, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08043DC0
- movs r1, 0
-_08043DC0:
- cmp r1, 0
- beq _08043DCE
- adds r0, r4, 0
- ldr r1, _08043EC0
- adds r2, r4, 0
- bl sub_8068FE0
-_08043DCE:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08043D6A
- movs r5, 0
- ldr r0, _08043EC4
- mov r9, r0
- mov r8, r5
-_08043DDC:
- mov r1, r9
- ldr r0, [r1]
- lsls r1, r5, 2
- ldr r2, _08043EC8
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- adds r7, r5, 0x1
- cmp r0, 0
- beq _08043E62
- adds r0, r4, 0
- adds r0, 0x22
- mov r1, r8
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x20
- movs r0, 0x1
- strb r0, [r1]
- ldr r4, [r4, 0x70]
- ldrh r0, [r4, 0x10]
- strh r0, [r4, 0xE]
- movs r2, 0x9E
- lsls r2, 1
- adds r1, r4, r2
- adds r2, 0x4
- adds r0, r4, r2
- ldr r0, [r0]
- str r0, [r1]
- mov r1, r9
- ldr r0, [r1]
- ldr r2, _08043ECC
- adds r0, r2
- mov r1, r8
- strb r1, [r0]
- adds r0, r4, 0
- movs r1, 0
- bl sub_806BFC0
- ldrh r0, [r4, 0x2]
- strh r0, [r4, 0x4]
- adds r0, r4, 0
- adds r0, 0xFD
- mov r2, r8
- strb r2, [r0]
- movs r0, 0x8C
- lsls r0, 1
- adds r5, r4, r0
- adds r4, r5, 0
- movs r6, 0x3
-_08043E46:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08043E58
- adds r0, r5, 0
- bl sub_8092BF4
- strb r0, [r4, 0x4]
-_08043E58:
- adds r4, 0x8
- adds r5, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _08043E46
-_08043E62:
- adds r5, r7, 0
- cmp r5, 0x3
- ble _08043DDC
- movs r6, 0
-_08043E6A:
- movs r5, 0
- adds r7, r6, 0x1
-_08043E6E:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8049590
- ldr r4, [r0, 0x14]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08043EA0
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- bne _08043EA0
- adds r0, r4, 0
- bl sub_8045104
- adds r1, r0, 0
- ldrb r0, [r1]
- cmp r0, 0x1B
- bne _08043EA0
- movs r0, 0x5
- strb r0, [r1]
-_08043EA0:
- adds r5, 0x1
- cmp r5, 0x37
- ble _08043E6E
- adds r6, r7, 0
- cmp r6, 0x1F
- ble _08043E6A
- movs r0, 0x2
- bl sub_8046F84
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08043EC0: .4byte 0x00000207
-_08043EC4: .4byte gUnknown_203B418
-_08043EC8: .4byte 0x0001357c
-_08043ECC: .4byte 0x00000676
- thumb_func_end sub_8043D60
-
- thumb_func_start sub_8043ED0
-sub_8043ED0:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r7, 0
- cmp r5, 0
- bne _08043EEA
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08043EEA
- movs r0, 0
- b _08043FB8
-_08043EEA:
- ldr r6, _08043F2C
- ldr r0, [r6]
- ldrb r0, [r0, 0x10]
- cmp r0, 0x1
- bne _08043F40
- bl sub_8083600
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08043FB6
- cmp r5, 0
- bne _08043F20
- ldr r0, _08043F30
- ldr r1, [r6]
- ldr r2, _08043F34
- adds r1, r2
- bl strcpy
- ldr r0, _08043F38
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
-_08043F20:
- adds r0, r4, 0
- bl sub_8042B0C
- ldr r1, _08043F3C
- b _08043FAC
- .align 2, 0
-_08043F2C: .4byte gUnknown_203B418
-_08043F30: .4byte gUnknown_202DF98
-_08043F34: .4byte 0x000005f4
-_08043F38: .4byte gUnknown_80F89B4
-_08043F3C: .4byte 0x0000021f
-_08043F40:
- cmp r0, 0x2
- bne _08043F74
- bl sub_8083600
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08043FB6
- cmp r5, 0
- bne _08043FA4
- ldr r0, _08043F68
- ldr r1, [r6]
- ldr r2, _08043F6C
- adds r1, r2
- bl strcpy
- ldr r0, _08043F70
- b _08043F9A
- .align 2, 0
-_08043F68: .4byte gUnknown_202DF98
-_08043F6C: .4byte 0x000005f4
-_08043F70: .4byte gUnknown_80F89D4
-_08043F74:
- cmp r0, 0x3
- bne _08043FB6
- bl sub_8083600
- adds r4, r0, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08043FB6
- cmp r5, 0
- bne _08043FA4
- ldr r0, _08043FC0
- ldr r1, [r6]
- ldr r2, _08043FC4
- adds r1, r2
- bl strcpy
- ldr r0, _08043FC8
-_08043F9A:
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
-_08043FA4:
- adds r0, r4, 0
- bl sub_8042B0C
- ldr r1, _08043FCC
-_08043FAC:
- adds r0, r4, 0
- adds r2, r4, 0
- bl sub_8068FE0
- movs r7, 0x1
-_08043FB6:
- adds r0, r7, 0
-_08043FB8:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_08043FC0: .4byte gUnknown_202DF98
-_08043FC4: .4byte 0x000005f4
-_08043FC8: .4byte gUnknown_80F89D8
-_08043FCC: .4byte 0x00000222
- thumb_func_end sub_8043ED0
-
- thumb_func_start sub_8043FD0
-sub_8043FD0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- movs r0, 0x2
- mov r9, r0
- movs r1, 0x1
- mov r10, r1
- movs r0, 0xFF
- mov r8, r0
-_08043FE8:
- movs r3, 0
- mov r1, r9
- adds r1, 0x1
- str r1, [sp, 0x3C]
-_08043FF0:
- ldr r2, _080440E4
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r2]
- adds r4, r0, r1
- ldrh r1, [r4]
- mov r0, r10
- ands r0, r1
- adds r3, 0x1
- str r3, [sp, 0x40]
- cmp r0, 0
- beq _080440FE
- lsrs r0, r1, 1
- mov r1, r10
- ands r0, r1
- cmp r0, 0
- beq _080440FE
- add r5, sp, 0x20
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- adds r0, r5, 0
- mov r2, r9
- bl sub_808E010
- mov r1, r9
- strb r1, [r4, 0x3]
- ldr r0, [sp, 0x20]
- str r0, [r4, 0x1C]
- ldrh r0, [r5, 0x4]
- ldrh r1, [r4, 0x16]
- adds r0, r1
- movs r2, 0
- strh r0, [r4, 0x16]
- lsls r0, 16
- ldr r1, _080440E8
- cmp r0, r1
- ble _08044040
- ldr r0, _080440EC
- strh r0, [r4, 0x16]
-_08044040:
- ldrb r0, [r4, 0x18]
- str r0, [sp, 0x2C]
- ldrb r0, [r4, 0x19]
- str r0, [sp, 0x30]
- ldrb r0, [r4, 0x1A]
- str r0, [sp, 0x34]
- ldrb r0, [r4, 0x1B]
- str r0, [sp, 0x38]
- ldrb r1, [r5, 0x6]
- ldr r0, [sp, 0x2C]
- adds r0, r1
- str r0, [sp, 0x2C]
- ldrb r1, [r5, 0x7]
- ldr r0, [sp, 0x30]
- adds r0, r1
- str r0, [sp, 0x30]
- ldrb r1, [r5, 0x8]
- ldr r0, [sp, 0x34]
- adds r0, r1
- str r0, [sp, 0x34]
- ldrb r1, [r5, 0x9]
- ldr r0, [sp, 0x38]
- adds r0, r1
- str r0, [sp, 0x38]
- ldr r0, [sp, 0x2C]
- cmp r0, 0xFE
- ble _0804407A
- mov r0, r8
- str r0, [sp, 0x2C]
-_0804407A:
- ldr r0, [sp, 0x30]
- cmp r0, 0xFE
- ble _08044084
- mov r1, r8
- str r1, [sp, 0x30]
-_08044084:
- ldr r0, [sp, 0x34]
- cmp r0, 0xFE
- ble _0804408E
- mov r0, r8
- str r0, [sp, 0x34]
-_0804408E:
- ldr r0, [sp, 0x38]
- cmp r0, 0xFE
- ble _08044098
- mov r1, r8
- str r1, [sp, 0x38]
-_08044098:
- ldr r0, [sp, 0x2C]
- strb r0, [r4, 0x18]
- ldr r0, [sp, 0x30]
- strb r0, [r4, 0x19]
- ldr r0, [sp, 0x34]
- strb r0, [r4, 0x1A]
- ldr r0, [sp, 0x38]
- strb r0, [r4, 0x1B]
- movs r0, 0x8
- ldrsh r1, [r4, r0]
- ldrb r2, [r4, 0x3]
- mov r0, sp
- ldr r3, _080440EC
- bl sub_808E0AC
- adds r6, r0, 0
- cmp r6, 0
- beq _080440FE
- movs r0, 0
- cmp r0, r6
- bge _080440FE
-_080440C2:
- movs r3, 0
- adds r7, r0, 0x1
- lsls r0, 1
- mov r1, sp
- adds r5, r1, r0
- adds r2, r4, 0
- adds r2, 0x2C
-_080440D0:
- ldrb r1, [r2]
- mov r0, r10
- ands r0, r1
- cmp r0, 0
- bne _080440F0
- ldrh r1, [r5]
- adds r0, r2, 0
- bl sub_8092AD4
- b _080440F8
- .align 2, 0
-_080440E4: .4byte gUnknown_203B45C
-_080440E8: .4byte 0x03e60000
-_080440EC: .4byte 0x000003e7
-_080440F0:
- adds r2, 0x8
- adds r3, 0x1
- cmp r3, 0x3
- ble _080440D0
-_080440F8:
- adds r0, r7, 0
- cmp r0, r6
- blt _080440C2
-_080440FE:
- ldr r3, [sp, 0x40]
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- bgt _0804410A
- b _08043FF0
-_0804410A:
- ldr r0, [sp, 0x3C]
- mov r9, r0
- cmp r0, 0x5
- bgt _08044114
- b _08043FE8
-_08044114:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8043FD0
-
- thumb_func_start sub_8044124
-sub_8044124:
- push {r4,r5,lr}
- ldr r0, _080441AC
- ldr r0, [r0]
- ldr r1, _080441B0
- adds r0, r1
- ldrb r0, [r0]
- bl GetMaxItemCount
- cmp r0, 0
- bne _08044182
- movs r3, 0
- ldr r4, _080441B4
- movs r2, 0
-_0804413E:
- lsls r1, r3, 2
- ldr r0, [r4]
- adds r1, r0
- strb r2, [r1, 0x2]
- strb r2, [r1, 0x1]
- strb r2, [r1]
- adds r3, 0x1
- cmp r3, 0x13
- ble _0804413E
- movs r3, 0
- ldr r5, _080441B8
- movs r4, 0x1
-_08044156:
- movs r0, 0x58
- adds r1, r3, 0
- muls r1, r0
- ldr r0, [r5]
- adds r1, r0, r1
- ldrh r2, [r1]
- adds r0, r4, 0
- ands r0, r2
- cmp r0, 0
- beq _08044178
- lsrs r0, r2, 1
- ands r0, r4
- cmp r0, 0
- beq _08044178
- adds r1, 0x28
- movs r0, 0
- strb r0, [r1]
-_08044178:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _08044156
-_08044182:
- ldr r0, _080441AC
- ldr r0, [r0]
- ldr r2, _080441B0
- adds r0, r2
- ldrb r0, [r0]
- bl GetMoneyCondition
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080441A4
- ldr r0, _080441B4
- ldr r0, [r0]
- movs r2, 0x98
- lsls r2, 2
- adds r0, r2
- str r1, [r0]
-_080441A4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080441AC: .4byte gUnknown_203B418
-_080441B0: .4byte 0x00000644
-_080441B4: .4byte gUnknown_203B460
-_080441B8: .4byte gUnknown_203B45C
- thumb_func_end sub_8044124
-
- thumb_func_start sub_80441BC
-sub_80441BC:
- push {lr}
- ldr r0, _080441D8
- ldr r0, [r0]
- ldr r1, _080441DC
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080441E0
- cmp r0, 0x31
- bgt _080441E0
- movs r0, 0x1
- b _080441E2
- .align 2, 0
-_080441D8: .4byte gUnknown_203B418
-_080441DC: .4byte 0x00003a14
-_080441E0:
- movs r0, 0
-_080441E2:
- pop {r1}
- bx r1
- thumb_func_end sub_80441BC
-
- thumb_func_start sub_80441E8
-sub_80441E8:
- push {lr}
- ldr r0, _08044200
- ldr r0, [r0]
- ldr r1, _08044204
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x3F
- bgt _08044208
- movs r0, 0
- b _0804420A
- .align 2, 0
-_08044200: .4byte gUnknown_203B418
-_08044204: .4byte 0x00003a0e
-_08044208:
- movs r0, 0x1
-_0804420A:
- pop {r1}
- bx r1
- thumb_func_end sub_80441E8
-
- thumb_func_start sub_8044210
-sub_8044210:
- push {lr}
- ldr r0, _0804422C
- ldr r0, [r0]
- ldr r1, _08044230
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x4B
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x16
- bls _08044234
- movs r0, 0
- b _08044236
- .align 2, 0
-_0804422C: .4byte gUnknown_203B418
-_08044230: .4byte 0x00000644
-_08044234:
- movs r0, 0x1
-_08044236:
- pop {r1}
- bx r1
- thumb_func_end sub_8044210
-
- thumb_func_start RunDungeon
-RunDungeon:
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044994
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- adds r0, r4, 0
- bl xxx_dungeon_80442D0
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- cmp r4, 0
- beq _08044280
- bl sub_807E378
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
-_08044280:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044574
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080442C6
- bl sub_8044820
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080442C6
- bl sub_8044AB4
- ldr r0, _080442CC
- ldr r0, [r0]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r0, r2
- ldrh r0, [r1]
- adds r0, 0x1
- strh r0, [r1]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x18
- bne _080442C6
- strh r4, [r1]
-_080442C6:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080442CC: .4byte gUnknown_203B418
- thumb_func_end RunDungeon
-
- thumb_func_start xxx_dungeon_80442D0
-xxx_dungeon_80442D0:
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r7, r0, 24
- bl sub_8083600
- adds r5, r0, 0
- cmp r5, 0
- beq _0804431A
- bl sub_8069E8C
- adds r0, r5, 0
- bl sub_8070774
- ldr r3, _08044320
- ldr r1, _08044324
- ldr r1, [r1]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- adds r1, r3
- movs r3, 0
- ldrsh r0, [r1, r3]
- cmp r0, 0
- beq _0804431A
- ldr r0, [r5, 0x70]
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08044328
-_0804431A:
- movs r0, 0
- b _0804444E
- .align 2, 0
-_08044320: .4byte gUnknown_80F6860
-_08044324: .4byte gUnknown_203B418
-_08044328:
- bl sub_8083600
- adds r5, r0, 0
- cmp r5, 0
- beq _0804431A
- movs r0, 0
- bl sub_807520C
- lsls r0, 24
- cmp r0, 0
- bne _0804435C
- ldr r0, _08044388
- ldr r1, [r0]
- ldr r2, _0804438C
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08044356
- ldr r3, _08044390
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804435C
-_08044356:
- movs r0, 0xC
- bl sub_803E46C
-_0804435C:
- ldr r0, [r5, 0x70]
- adds r0, 0xF8
- movs r1, 0
- strb r1, [r0]
- bl sub_8044B28
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _0804431A
- ldr r0, _08044388
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xB8
- str r5, [r0]
- adds r1, 0xBC
- str r2, [r1]
- cmp r7, 0
- beq _08044394
- movs r7, 0
- b _0804439A
- .align 2, 0
-_08044388: .4byte gUnknown_203B418
-_0804438C: .4byte 0x0000066c
-_08044390: .4byte 0x00000673
-_08044394:
- adds r0, r5, 0
- bl sub_8074B54
-_0804439A:
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804431A
- adds r0, r5, 0
- bl sub_8071DA4
- ldr r6, _08044434
- ldr r1, [r6]
- movs r0, 0x1
- strb r0, [r1, 0xF]
- bl sub_805D8C8
- ldr r0, [r6]
- strb r4, [r0, 0xF]
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- adds r0, r5, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- ldr r2, [r5, 0x70]
- ldrh r1, [r2]
- movs r3, 0x80
- lsls r3, 8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _08044400
- subs r3, 0x1
- adds r0, r3, 0
- ands r0, r1
- movs r3, 0x80
- lsls r3, 7
- adds r1, r3, 0
- orrs r0, r1
- strh r0, [r2]
-_08044400:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804444C
- bl sub_8044454
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _0804444C
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0xBC
- ldr r1, [r0]
- cmp r1, 0
- beq _08044438
- bl sub_805F02C
- ldr r0, [r6]
- adds r0, 0xBC
- str r4, [r0]
- movs r7, 0x1
- b _08044328
- .align 2, 0
-_08044434: .4byte gUnknown_203B418
-_08044438:
- ldr r0, [r5, 0x70]
- adds r0, 0xF8
- ldrb r0, [r0]
- cmp r0, 0
- beq _0804444C
- movs r3, 0xCC
- lsls r3, 3
- adds r0, r2, r3
- strh r1, [r0]
- b _08044328
-_0804444C:
- movs r0, 0x1
-_0804444E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end xxx_dungeon_80442D0
-
- thumb_func_start sub_8044454
-sub_8044454:
- push {r4-r6,lr}
- ldr r0, _080444E8
- ldr r1, [r0]
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- beq _080444E2
- movs r0, 0
- strb r0, [r1, 0xE]
- movs r6, 0
-_08044466:
- ldr r0, _080444E8
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _080444EC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080444DC
- ldr r5, [r4, 0x70]
- ldrh r0, [r5]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _080444DC
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080444E2
- adds r0, r4, 0
- bl sub_8074B54
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080444DC
- adds r0, r4, 0
- bl sub_8071DA4
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075990
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- ldrh r0, [r5]
- ldr r2, _080444F0
- adds r1, r2, 0
- ands r0, r1
- movs r2, 0x80
- lsls r2, 7
- adds r1, r2, 0
- orrs r0, r1
- strh r0, [r5]
-_080444DC:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08044466
-_080444E2:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080444E8: .4byte gUnknown_203B418
-_080444EC: .4byte 0x000135cc
-_080444F0: .4byte 0x00007fff
- thumb_func_end sub_8044454
-
- thumb_func_start sub_80444F4
-sub_80444F4:
- push {r4-r6,lr}
- adds r6, r0, 0
- bl sub_8083600
- cmp r6, r0
- bne _08044566
- ldr r0, _0804456C
- ldr r1, [r0]
- ldrb r0, [r1, 0xE]
- cmp r0, 0
- beq _08044566
- movs r0, 0
- strb r0, [r1, 0xE]
- movs r5, 0
-_08044510:
- ldr r0, _0804456C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08044570
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044560
- cmp r6, r4
- beq _08044560
- ldr r0, [r4, 0x70]
- ldrh r0, [r0]
- movs r2, 0x80
- lsls r2, 8
- adds r1, r2, 0
- ands r0, r1
- cmp r0, 0
- beq _08044560
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044566
- adds r0, r4, 0
- movs r1, 0
- bl sub_8075990
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
-_08044560:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08044510
-_08044566:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804456C: .4byte gUnknown_203B418
-_08044570: .4byte 0x000135cc
- thumb_func_end sub_80444F4
-
- thumb_func_start sub_8044574
-sub_8044574:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- bl sub_8083600
- mov r10, r0
- movs r7, 0
- mov r0, sp
- adds r0, 0x4
- str r0, [sp, 0x40]
- ldr r1, _08044634
- mov r9, r1
-_08044592:
- mov r2, r9
- ldr r0, [r2]
- lsls r1, r7, 2
- ldr r3, _08044638
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- ldr r6, [r5, 0x70]
- mov r8, r6
- ldrb r0, [r6, 0x7]
- cmp r0, 0
- bne _080446A4
- bl sub_8044B28
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _080446AC
- mov r1, r9
- ldr r0, [r1]
- adds r0, 0xB8
- str r5, [r0]
- bl sub_8069E8C
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r6, r2
- strb r4, [r0]
- adds r0, r5, 0
- bl sub_8070774
- mov r3, r9
- ldr r1, [r3]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- ldr r0, _0804463C
- adds r1, r0
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080446A4
- movs r3, 0xA4
- lsls r3, 1
- adds r0, r6, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _080446A4
- ldrh r1, [r6]
- movs r2, 0x80
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- cmp r0, 0
- bne _080446A4
- movs r3, 0x80
- lsls r3, 7
- adds r0, r3, 0
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- beq _08044644
- ldr r2, _08044640
- adds r0, r2, 0
- ands r0, r1
- strh r0, [r6]
- b _080446A4
- .align 2, 0
-_08044634: .4byte gUnknown_203B418
-_08044638: .4byte 0x0001357c
-_0804463C: .4byte gUnknown_80F6860
-_08044640: .4byte 0x0000bfff
-_08044644:
- ldr r1, _08044668
- add r1, r8
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8074B54
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- adds r0, r5, 0
- bl sub_8071DA4
- movs r4, 0
- b _0804466E
- .align 2, 0
-_08044668: .4byte 0x00000145
-_0804466C:
- adds r4, 0x1
-_0804466E:
- cmp r4, 0x2
- bgt _080446A4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075990
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _080446A4
- adds r0, r5, 0
- bl sub_8072CF4
- lsls r0, 24
- cmp r0, 0
- beq _080446A4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _0804466C
-_080446A4:
- adds r7, 0x1
- cmp r7, 0x3
- bgt _080446AC
- b _08044592
-_080446AC:
- movs r0, 0
- mov r8, r0
-_080446B0:
- adds r0, 0x1
- mov r9, r0
- add r2, sp, 0x8
- ldr r1, [sp, 0x40]
- mov r0, sp
- movs r7, 0x2
-_080446BC:
- mov r3, r8
- str r3, [r0]
- str r2, [r1]
- adds r2, 0x8
- adds r1, 0x8
- adds r0, 0x8
- subs r7, 0x1
- cmp r7, 0
- bge _080446BC
- str r3, [sp, 0x18]
- str r3, [sp, 0x1C]
- movs r7, 0
-_080446D4:
- ldr r0, _08044710
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08044714
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044760
- ldr r1, [r4, 0x70]
- movs r3, 0xA2
- lsls r3, 1
- adds r2, r1, r3
- ldrb r0, [r2]
- cmp r0, 0
- beq _08044760
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- beq _08044718
- adds r3, 0x1
- adds r0, r1, r3
- mov r1, r8
- strb r1, [r0]
- strb r1, [r2]
- b _08044760
- .align 2, 0
-_08044710: .4byte gUnknown_203B418
-_08044714: .4byte 0x0001357c
-_08044718:
- mov r2, r10
- movs r3, 0x4
- ldrsh r1, [r2, r3]
- movs r2, 0x4
- ldrsh r0, [r4, r2]
- subs r2, r1, r0
- cmp r2, 0
- bge _0804472A
- negs r2, r2
-_0804472A:
- mov r3, r10
- movs r0, 0x6
- ldrsh r1, [r3, r0]
- movs r3, 0x6
- ldrsh r0, [r4, r3]
- subs r1, r0
- cmp r1, 0
- bge _0804473C
- negs r1, r1
-_0804473C:
- cmp r1, r2
- bge _08044742
- adds r1, r2, 0
-_08044742:
- cmp r1, 0x2
- ble _08044748
- movs r1, 0x2
-_08044748:
- add r3, sp, 0x20
- lsls r0, r7, 3
- adds r3, r0
- str r4, [r3]
- add r2, sp, 0x24
- adds r2, r0
- lsls r1, 3
- ldr r0, [sp, 0x40]
- adds r1, r0, r1
- ldr r0, [r1]
- str r0, [r2]
- str r3, [r1]
-_08044760:
- adds r7, 0x1
- cmp r7, 0x3
- ble _080446D4
- mov r5, sp
- movs r6, 0
-_0804476A:
- ldr r4, [r5]
- cmp r4, 0
- beq _080447A0
- ldr r1, [r4, 0x70]
- ldr r3, _08044814
- adds r2, r1, r3
- movs r0, 0x1
- strb r0, [r2]
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r1, r2
- strb r6, [r0]
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8075990
- adds r0, r4, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- adds r0, r4, 0
- bl sub_80450E0
-_080447A0:
- ldr r5, [r5, 0x4]
- cmp r5, 0
- bne _0804476A
- mov r0, r9
- cmp r0, 0x2
- ble _080446B0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044802
- movs r7, 0
-_080447B8:
- ldr r0, _08044818
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r3, _0804481C
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080447FC
- ldr r0, [r4, 0x70]
- movs r1, 0xA2
- lsls r1, 1
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0
- beq _080447FC
- adds r0, r4, 0
- bl sub_8074094
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080447FC
- adds r0, r4, 0
- bl sub_8071DA4
- movs r0, 0
- strb r0, [r5]
-_080447FC:
- adds r7, 0x1
- cmp r7, 0x3
- ble _080447B8
-_08044802:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044814: .4byte 0x00000145
-_08044818: .4byte gUnknown_203B418
-_0804481C: .4byte 0x0001357c
- thumb_func_end sub_8044574
-
- thumb_func_start sub_8044820
-sub_8044820:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- ldr r0, _08044830
- mov r8, r0
- b _080448FC
- .align 2, 0
-_08044830: .4byte gUnknown_80F6860
-_08044834:
- ldr r4, [r5, 0x70]
- ldr r0, [r6]
- adds r0, 0xB8
- str r5, [r0]
- bl sub_8069E8C
- ldrh r2, [r4]
- movs r1, 0x80
- lsls r1, 8
- adds r0, r1, 0
- ands r0, r2
- cmp r0, 0
- bne _080448FA
- movs r1, 0x80
- lsls r1, 7
- adds r0, r1, 0
- ands r0, r2
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0
- beq _0804486C
- ldr r1, _08044868
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r4]
- b _080448FA
- .align 2, 0
-_08044868: .4byte 0x0000bfff
-_0804486C:
- movs r2, 0xA2
- lsls r2, 1
- adds r0, r4, r2
- strb r1, [r0]
- adds r0, r5, 0
- bl sub_8070774
- ldr r1, [r6]
- movs r2, 0xCC
- lsls r2, 3
- adds r1, r2
- movs r2, 0
- ldrsh r1, [r1, r2]
- lsls r1, 1
- movs r2, 0x32
- muls r0, r2
- adds r1, r0
- add r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- cmp r0, 0
- beq _080448FA
- movs r1, 0xA4
- lsls r1, 1
- adds r0, r4, r1
- ldrb r0, [r0]
- cmp r0, 0
- bne _080448FA
- ldrh r1, [r4]
- ldr r2, _08044984
- adds r0, r2, 0
- ands r1, r0
- movs r0, 0
- strh r1, [r4]
- ldr r2, _08044988
- adds r1, r4, r2
- strb r0, [r1]
- adds r0, r5, 0
- bl sub_8074B54
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080448FA
- adds r0, r5, 0
- bl sub_8071DA4
- adds r0, r5, 0
- movs r1, 0
- bl sub_8075990
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044924
- adds r0, r5, 0
- bl sub_8072CF4
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _08044924
-_080448FA:
- adds r7, 0x1
-_080448FC:
- cmp r7, 0xF
- bgt _08044924
- ldr r6, _0804498C
- ldr r0, [r6]
- lsls r1, r7, 2
- ldr r2, _08044990
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080448FA
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- beq _08044834
-_08044924:
- bl sub_8044B28
- lsls r0, 24
- cmp r0, 0
- bne _0804497A
- movs r7, 0
-_08044930:
- ldr r0, _0804498C
- ldr r0, [r0]
- lsls r1, r7, 2
- ldr r2, _08044990
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044974
- ldr r0, [r4, 0x70]
- movs r1, 0xA2
- lsls r1, 1
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0
- beq _08044974
- adds r0, r4, 0
- bl sub_8074094
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044974
- adds r0, r4, 0
- bl sub_8071DA4
- movs r0, 0
- strb r0, [r5]
-_08044974:
- adds r7, 0x1
- cmp r7, 0xF
- ble _08044930
-_0804497A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044984: .4byte 0x00003fff
-_08044988: .4byte 0x00000145
-_0804498C: .4byte gUnknown_203B418
-_08044990: .4byte 0x0001358c
- thumb_func_end sub_8044820
-
- thumb_func_start sub_8044994
-sub_8044994:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, _08044A94
- ldr r4, _08044A98
- ldr r0, [r4]
- movs r2, 0xCC
- lsls r2, 3
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- lsls r0, 1
- adds r1, 0x32
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08044A8A
- bl sub_8071B48
- ldr r0, [r4]
- ldr r2, _08044A9C
- adds r0, r2
- movs r2, 0
- strb r2, [r0]
- ldr r0, [r4]
- ldr r3, _08044AA0
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r4]
- ldr r1, _08044AA4
- adds r0, r1
- strb r2, [r0]
- ldr r0, [r4]
- adds r3, 0x2
- adds r0, r3
- strb r2, [r0]
- ldr r0, [r4]
- ldr r3, _08044AA8
- adds r1, r0, r3
- str r2, [r1]
- ldr r1, _08044AAC
- adds r0, r1
- movs r1, 0x2
- str r1, [r0]
- mov r8, r2
- adds r7, r4, 0
-_080449F2:
- ldr r0, [r7]
- mov r2, r8
- lsls r1, r2, 2
- ldr r3, _08044AB0
- adds r0, r3
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044A7A
- ldr r0, [r5, 0x70]
- adds r4, r0, 0
- movs r0, 0xA4
- lsls r0, 1
- adds r1, r4, r0
- movs r0, 0
- strb r0, [r1]
- ldrb r0, [r4, 0x6]
- movs r6, 0x1
- cmp r0, 0
- beq _08044A24
- movs r6, 0
-_08044A24:
- adds r0, r5, 0
- movs r1, 0x32
- bl sub_8071824
- lsls r0, 24
- cmp r0, 0
- beq _08044A46
- ldr r1, [r7]
- ldr r2, _08044AA8
- adds r0, r1, r2
- str r5, [r0]
- ldr r3, _08044AAC
- adds r1, r3
- adds r0, r4, 0
- adds r0, 0x98
- ldr r0, [r0]
- str r0, [r1]
-_08044A46:
- adds r0, r5, 0
- movs r1, 0x3F
- bl sub_8071824
- lsls r0, 24
- cmp r0, 0
- beq _08044A60
- ldr r0, [r7]
- ldr r1, _08044AA4
- adds r0, r1
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
-_08044A60:
- adds r0, r5, 0
- movs r1, 0x38
- bl sub_8071824
- lsls r0, 24
- cmp r0, 0
- beq _08044A7A
- ldr r0, [r7]
- ldr r2, _08044A9C
- adds r0, r2
- adds r0, r6
- movs r1, 0x1
- strb r1, [r0]
-_08044A7A:
- movs r3, 0x1
- add r8, r3
- mov r0, r8
- cmp r0, 0x13
- ble _080449F2
- movs r0, 0
- bl sub_8043ED0
-_08044A8A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044A94: .4byte gUnknown_80F6860
-_08044A98: .4byte gUnknown_203B418
-_08044A9C: .4byte 0x000037f8
-_08044AA0: .4byte 0x000037f9
-_08044AA4: .4byte 0x000037fa
-_08044AA8: .4byte 0x00017b2c
-_08044AAC: .4byte 0x00017b38
-_08044AB0: .4byte 0x000135cc
- thumb_func_end sub_8044994
-
- thumb_func_start sub_8044AB4
-sub_8044AB4:
- push {r4,lr}
- ldr r1, _08044ADC
- ldr r0, _08044AE0
- ldr r0, [r0]
- movs r2, 0xCC
- lsls r2, 3
- adds r0, r2
- movs r2, 0
- ldrsh r0, [r0, r2]
- adds r0, 0x1
- lsls r0, 1
- adds r1, 0x32
- adds r0, r1
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _08044B1A
- movs r4, 0
- b _08044AE6
- .align 2, 0
-_08044ADC: .4byte gUnknown_80F6860
-_08044AE0: .4byte gUnknown_203B418
-_08044AE4:
- adds r4, 0x1
-_08044AE6:
- cmp r4, 0x13
- bgt _08044B08
- ldr r0, _08044B20
- ldr r0, [r0]
- lsls r1, r4, 2
- ldr r2, _08044B24
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08044AE4
- movs r0, 0
- bl sub_807520C
-_08044B08:
- movs r0, 0x1
- movs r1, 0
- bl sub_807EAA0
- bl sub_8086AC0
- movs r0, 0
- bl sub_8043ED0
-_08044B1A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044B20: .4byte gUnknown_203B418
-_08044B24: .4byte 0x000135cc
- thumb_func_end sub_8044AB4
-
- thumb_func_start sub_8044B28
-sub_8044B28:
- push {r4,lr}
- ldr r4, _08044B48
- ldr r0, [r4]
- ldrb r0, [r0, 0x4]
- cmp r0, 0
- bne _08044B76
- bl sub_8083600
- cmp r0, 0
- bne _08044B50
- ldr r0, [r4]
- ldr r1, _08044B4C
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _08044B76
- .align 2, 0
-_08044B48: .4byte gUnknown_203B418
-_08044B4C: .4byte 0x00000654
-_08044B50:
- ldr r0, [r4]
- ldrb r2, [r0, 0x2]
- cmp r2, 0x1
- bne _08044B68
- ldr r2, _08044B64
- adds r1, r0, r2
- movs r0, 0x2
- strb r0, [r1]
- b _08044B76
- .align 2, 0
-_08044B64: .4byte 0x00000654
-_08044B68:
- cmp r2, 0x2
- beq _08044B70
- movs r0, 0
- b _08044B78
-_08044B70:
- ldr r1, _08044B80
- adds r0, r1
- strb r2, [r0]
-_08044B76:
- movs r0, 0x1
-_08044B78:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_08044B80: .4byte 0x00000654
- thumb_func_end sub_8044B28
-
- thumb_func_start sub_8044B84
-sub_8044B84:
- push {lr}
- ldr r0, _08044B9C
- ldr r0, [r0]
- ldrb r0, [r0, 0x10]
- cmp r0, 0
- bne _08044BA0
- bl sub_8044B28
- lsls r0, 24
- lsrs r0, 24
- b _08044BA2
- .align 2, 0
-_08044B9C: .4byte gUnknown_203B418
-_08044BA0:
- movs r0, 0x1
-_08044BA2:
- pop {r1}
- bx r1
- thumb_func_end sub_8044B84
-
- thumb_func_start sub_8044BA8
-sub_8044BA8:
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r5, r1, 24
- cmp r4, 0x26
- bne _08044BCC
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08044BCC
- ldr r0, _08044BC8
- b _08044C02
- .align 2, 0
-_08044BC8: .4byte gUnknown_80F91EC
-_08044BCC:
- ldr r1, _08044BEC
- lsls r0, r4, 3
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r1, _08044BF0
- bl strcmp
- cmp r0, 0
- beq _08044BE0
- movs r0, 0x1
-_08044BE0:
- lsls r0, 24
- cmp r0, 0
- beq _08044BF4
- ldr r0, [r4]
- b _08044C04
- .align 2, 0
-_08044BEC: .4byte gUnknown_80F7C50
-_08044BF0: .4byte gUnknown_80F697C
-_08044BF4:
- ldr r4, _08044C0C
- adds r0, r5, 0
- bl sub_8090D6C
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
-_08044C02:
- ldr r0, [r0]
-_08044C04:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08044C0C: .4byte gUnknown_80F7B14
- thumb_func_end sub_8044BA8
-
- thumb_func_start sub_8044C10
-sub_8044C10:
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8083654
- adds r2, r0, 0
- adds r1, r2, 0
- adds r1, 0x44
- movs r3, 0
- movs r0, 0
- strh r0, [r1]
- cmp r4, 0
- beq _08044C44
- adds r0, r2, 0
- adds r0, 0x48
- strb r3, [r0]
- adds r0, 0x8
- strb r3, [r0]
- adds r1, 0x14
- ldr r0, _08044C4C
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
-_08044C44:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044C4C: .4byte 0x0000ffff
- thumb_func_end sub_8044C10
-
- thumb_func_start sub_8044C50
-sub_8044C50:
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- bl sub_8083654
- adds r2, r0, 0
- adds r0, 0x44
- movs r1, 0
- strh r4, [r0]
- adds r0, 0x4
- strb r1, [r0]
- adds r0, 0x8
- strb r1, [r0]
- adds r1, r2, 0
- adds r1, 0x58
- ldr r0, _08044C84
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08044C84: .4byte 0x0000ffff
- thumb_func_end sub_8044C50
-
- thumb_func_start sub_8044C88
-sub_8044C88:
- movs r2, 0
- movs r1, 0
- strh r1, [r0]
- strb r2, [r0, 0x4]
- strb r2, [r0, 0xC]
- bx lr
- thumb_func_end sub_8044C88
-
- thumb_func_start sub_8044C94
-sub_8044C94:
- movs r2, 0
- strh r1, [r0]
- strb r2, [r0, 0x4]
- strb r2, [r0, 0xC]
- bx lr
- thumb_func_end sub_8044C94
-
- thumb_func_start sub_8044CA0
-sub_8044CA0:
- push {r4,lr}
- adds r4, r0, 0
- lsls r0, r1, 16
- asrs r0, 16
- bl sub_808DB48
- lsls r0, 24
- cmp r0, 0
- beq _08044CB6
- movs r0, 0x2
- b _08044CB8
-_08044CB6:
- movs r0, 0x1
-_08044CB8:
- strh r0, [r4]
- movs r0, 0
- strb r0, [r4, 0x4]
- strb r0, [r4, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8044CA0
-
- thumb_func_start sub_8044CC8
-sub_8044CC8:
- push {lr}
- adds r3, r0, 0
- adds r2, r1, 0
- ldrb r1, [r2]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08044CEC
- ldr r0, _08044CE8
- ldrb r1, [r2]
- lsls r1, 2
- subs r1, 0x4
- ldr r0, [r0]
- adds r0, r1
- b _08044D34
- .align 2, 0
-_08044CE8: .4byte gUnknown_203B460
-_08044CEC:
- adds r0, r1, 0
- cmp r0, 0x80
- bne _08044D06
- movs r1, 0x4
- ldrsh r0, [r2, r1]
- movs r3, 0x6
- ldrsh r1, [r2, r3]
- bl sub_804954C
- ldr r0, [r0, 0x14]
- bl sub_8045108
- b _08044D34
-_08044D06:
- cmp r0, 0x81
- bne _08044D0E
- ldr r0, [r3, 0x70]
- b _08044D32
-_08044D0E:
- adds r0, r1, 0
- adds r0, 0x70
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bls _08044D1E
- movs r0, 0
- b _08044D34
-_08044D1E:
- ldr r0, _08044D38
- ldr r1, [r0]
- ldrb r0, [r2]
- subs r0, 0x90
- lsls r0, 2
- ldr r2, _08044D3C
- adds r1, r2
- adds r1, r0
- ldr r0, [r1]
- ldr r0, [r0, 0x70]
-_08044D32:
- adds r0, 0x60
-_08044D34:
- pop {r1}
- bx r1
- .align 2, 0
-_08044D38: .4byte gUnknown_203B418
-_08044D3C: .4byte 0x0001357c
- thumb_func_end sub_8044CC8
-
- thumb_func_start sub_8044D40
-sub_8044D40:
- push {lr}
- lsls r1, 3
- adds r1, 0x4
- adds r2, r0, r1
- ldrb r1, [r2]
- subs r0, r1, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x13
- bhi _08044D74
- ldr r1, _08044D70
- ldrb r0, [r2]
- lsls r0, 2
- subs r0, 0x4
- ldr r1, [r1]
- adds r1, r0
- movs r0, 0
- strb r0, [r1, 0x2]
- strb r0, [r1, 0x1]
- strb r0, [r1]
- bl sub_80910B4
- b _08044D88
- .align 2, 0
-_08044D70: .4byte gUnknown_203B460
-_08044D74:
- lsls r0, r1, 24
- lsrs r0, 24
- cmp r0, 0x80
- beq _08044D80
- movs r0, 0
- b _08044D8A
-_08044D80:
- adds r0, r2, 0x4
- movs r1, 0x1
- bl sub_80461C8
-_08044D88:
- movs r0, 0x1
-_08044D8A:
- pop {r1}
- bx r1
- thumb_func_end sub_8044D40
-
- thumb_func_start sub_8044D90
-sub_8044D90:
- push {lr}
- ldr r3, [r0, 0x70]
- lsls r1, 3
- adds r1, 0x48
- adds r3, r1
- adds r1, r3, 0
- bl sub_8044CC8
- pop {r1}
- bx r1
- thumb_func_end sub_8044D90
-
- thumb_func_start sub_8044DA4
-sub_8044DA4:
- ldr r0, [r0, 0x70]
- ldr r2, _08044DC0
- ldr r2, [r2]
- lsls r1, 3
- adds r0, r1
- adds r0, 0x48
- ldrb r0, [r0]
- lsls r0, 2
- ldr r1, _08044DC4
- adds r2, r1
- adds r2, r0
- ldr r0, [r2]
- bx lr
- .align 2, 0
-_08044DC0: .4byte gUnknown_203B418
-_08044DC4: .4byte 0x0001357c
- thumb_func_end sub_8044DA4
-
- thumb_func_start sub_8044DC8
-sub_8044DC8:
- push {r4,lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x2]
- cmp r0, 0xE9
- beq _08044DE8
- ldr r4, _08044DE4
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 23
- adds r0, r4
- ldrh r0, [r0]
- b _08044DEA
- .align 2, 0
-_08044DE4: .4byte gUnknown_80F6964
-_08044DE8:
- movs r0, 0x35
-_08044DEA:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8044DC8
-
- thumb_func_start sub_8044DF0
-sub_8044DF0:
- push {r4,lr}
- ldr r4, [r0, 0x70]
- bl sub_8044D90
- adds r1, r0, 0
- adds r0, r4, 0
- adds r0, 0x48
- ldrb r0, [r0]
- cmp r0, 0x80
- bne _08044E10
- adds r0, r4, 0
- adds r0, 0x4C
- movs r1, 0x1
- bl sub_80461C8
- b _08044E1C
-_08044E10:
- movs r0, 0
- strb r0, [r1, 0x2]
- strb r0, [r1, 0x1]
- strb r0, [r1]
- bl sub_80910B4
-_08044E1C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8044DF0
-
- thumb_func_start sub_8044E24
-sub_8044E24:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- adds r6, r1, 0
- adds r7, r2, 0
- bl sub_8044D90
- adds r5, r0, 0
- ldr r0, [r4, 0x70]
- mov r8, r0
- ldrb r0, [r5, 0x2]
- bl sub_80915A0
- lsls r0, 24
- cmp r0, 0
- bne _08044EBA
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _08044EB0
- lsls r1, r6, 3
- mov r2, r8
- adds r0, r2, r1
- adds r0, 0x48
- ldrb r0, [r0]
- cmp r0, 0x80
- bne _08044EA4
- ldr r0, [r5]
- str r0, [sp]
- adds r4, r1, r2
- adds r4, 0x4C
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_80461C8
- ldrb r1, [r5, 0x2]
- subs r1, 0x7D
- lsls r1, 24
- lsrs r1, 16
- ldr r2, _08044E9C
- ldr r0, [sp]
- ands r0, r2
- orrs r0, r1
- ldr r1, _08044EA0
- ands r0, r1
- movs r1, 0xF8
- lsls r1, 15
- orrs r0, r1
- str r0, [sp]
- adds r0, r4, 0
- mov r1, sp
- movs r2, 0x1
- bl sub_80460F8
- b _08044EBA
- .align 2, 0
-_08044E9C: .4byte 0xffff00ff
-_08044EA0: .4byte 0xff00ffff
-_08044EA4:
- ldrb r0, [r5, 0x2]
- subs r0, 0x7D
- strb r0, [r5, 0x1]
- movs r0, 0x7C
- strb r0, [r5, 0x2]
- b _08044EBA
-_08044EB0:
- adds r0, r4, 0
- adds r1, r6, 0
- adds r2, r7, 0
- bl sub_8044DF0
-_08044EBA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8044E24
-
- thumb_func_start sub_8044EC8
-sub_8044EC8:
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r1, _08044EE8
- lsls r0, r5, 2
- adds r0, r1
- ldrh r4, [r0]
- cmp r4, 0x26
- bne _08044EF0
- bl sub_8043D10
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08044EF0
- ldr r0, _08044EEC
- b _08044F2C
- .align 2, 0
-_08044EE8: .4byte gUnknown_202EE44
-_08044EEC: .4byte gUnknown_80F91EC
-_08044EF0:
- ldr r1, _08044F10
- lsls r0, r4, 3
- adds r4, r0, r1
- ldr r0, [r4]
- ldr r1, _08044F14
- bl strcmp
- cmp r0, 0
- beq _08044F04
- movs r0, 0x1
-_08044F04:
- lsls r0, 24
- cmp r0, 0
- beq _08044F18
- ldr r0, [r4]
- b _08044F2E
- .align 2, 0
-_08044F10: .4byte gUnknown_80F7C50
-_08044F14: .4byte gUnknown_80F697C
-_08044F18:
- ldr r4, _08044F34
- ldr r1, _08044F38
- lsls r0, r5, 2
- adds r0, r1
- ldrb r0, [r0, 0x2]
- bl sub_8090D6C
- lsls r0, 3
- adds r4, 0x4
- adds r0, r4
-_08044F2C:
- ldr r0, [r0]
-_08044F2E:
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_08044F34: .4byte gUnknown_80F7B14
-_08044F38: .4byte gUnknown_202EE44
- thumb_func_end sub_8044EC8
-
- thumb_func_start sub_8044F3C
-sub_8044F3C:
- push {lr}
- adds r1, r0, 0
- cmp r1, 0
- blt _08044F54
- ldr r0, _08044F50
- lsls r1, 2
- adds r1, r0
- ldrb r0, [r1, 0x3]
- b _08044F56
- .align 2, 0
-_08044F50: .4byte gUnknown_202EE44
-_08044F54:
- movs r0, 0
-_08044F56:
- pop {r1}
- bx r1
- thumb_func_end sub_8044F3C
-
- thumb_func_start sub_8044F5C
-sub_8044F5C:
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r0, _08044FAC
- ldr r2, [r0]
- adds r6, r0, 0
- cmp r2, 0x9
- bgt _08044FA4
- movs r3, 0
- ldr r5, _08044FB0
- cmp r3, r2
- bge _08044F8A
- adds r1, r2, 0
- adds r2, r5, 0
-_08044F7C:
- ldrh r0, [r2]
- cmp r0, r4
- beq _08044FA4
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, r1
- blt _08044F7C
-_08044F8A:
- ldr r0, [r6]
- lsls r0, 2
- adds r0, r5
- strh r4, [r0]
- strb r7, [r0, 0x2]
- ldr r0, [r6]
- lsls r0, 2
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0, 0x3]
- ldr r0, [r6]
- adds r0, 0x1
- str r0, [r6]
-_08044FA4:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08044FAC: .4byte gUnknown_202EE6C
-_08044FB0: .4byte gUnknown_202EE44
- thumb_func_end sub_8044F5C
-
- thumb_func_start sub_8044FB4
-sub_8044FB4:
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- movs r1, 0
- ldr r0, _08044FD4
- ldr r0, [r0]
- cmp r1, r0
- bge _08044FE4
- adds r3, r0, 0
- ldr r2, _08044FD8
-_08044FC8:
- ldrh r0, [r2]
- cmp r0, r4
- bne _08044FDC
- adds r0, r1, 0
- b _08044FE8
- .align 2, 0
-_08044FD4: .4byte gUnknown_202EE6C
-_08044FD8: .4byte gUnknown_202EE44
-_08044FDC:
- adds r2, 0x4
- adds r1, 0x1
- cmp r1, r3
- blt _08044FC8
-_08044FE4:
- movs r0, 0x1
- negs r0, r0
-_08044FE8:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8044FB4
-
- thumb_func_start sub_8044FF0
-sub_8044FF0:
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r3, r0, 16
- movs r2, 0
- ldr r1, _08045010
- ldr r0, [r1]
- cmp r2, r0
- bge _08045022
- movs r5, 0
- adds r4, r1, 0
- ldr r1, _08045014
-_08045006:
- ldrh r0, [r1]
- cmp r0, r3
- bne _08045018
- strb r5, [r1, 0x3]
- b _08045022
- .align 2, 0
-_08045010: .4byte gUnknown_202EE6C
-_08045014: .4byte gUnknown_202EE44
-_08045018:
- adds r1, 0x4
- adds r2, 0x1
- ldr r0, [r4]
- cmp r2, r0
- blt _08045006
-_08045022:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8044FF0
-
- thumb_func_start sub_8045028
-sub_8045028:
- push {r4,lr}
- adds r2, r0, 0
- lsls r1, 24
- ldr r0, [r2, 0x70]
- adds r4, r0, 0
- adds r4, 0x44
- cmp r1, 0
- beq _08045044
- adds r0, r2, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- beq _0804505A
-_08045044:
- ldrh r0, [r4]
- cmp r0, 0
- beq _0804505A
- cmp r0, 0x2
- beq _0804505A
- cmp r0, 0x1
- beq _0804505A
- cmp r0, 0x5
- beq _0804505A
- movs r0, 0
- b _0804505C
-_0804505A:
- movs r0, 0x1
-_0804505C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8045028
-
- thumb_func_start sub_8045064
-sub_8045064:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r1, 0
- ldr r0, _080450D4
- mov r8, r0
- ldr r0, [r0]
- cmp r1, r0
- bge _080450C8
- mov r7, r8
- ldr r2, _080450D8
- mov r9, r2
- ldr r0, _080450DC
- mov r12, r0
-_08045082:
- adds r4, r1, 0x1
- ldr r0, [r7]
- adds r5, r4, 0
- cmp r5, r0
- bge _080450BE
- lsls r0, r1, 2
- mov r1, r12
- adds r3, r0, r1
- mov r6, r9
- lsls r0, r5, 2
- adds r2, r0, r1
-_08045098:
- ldrh r1, [r3]
- lsls r1, 3
- adds r1, r6
- ldrh r0, [r2]
- lsls r0, 3
- adds r0, r6
- ldr r1, [r1]
- ldr r0, [r0]
- cmp r1, r0
- ble _080450B4
- ldr r1, [r3]
- ldr r0, [r2]
- str r0, [r3]
- str r1, [r2]
-_080450B4:
- adds r2, 0x4
- adds r4, 0x1
- ldr r0, [r7]
- cmp r4, r0
- blt _08045098
-_080450BE:
- adds r1, r5, 0
- mov r2, r8
- ldr r0, [r2]
- cmp r1, r0
- blt _08045082
-_080450C8:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080450D4: .4byte gUnknown_202EE6C
-_080450D8: .4byte gUnknown_80F7C54
-_080450DC: .4byte gUnknown_202EE44
- thumb_func_end sub_8045064
-
- thumb_func_start sub_80450E0
-sub_80450E0:
- push {lr}
- cmp r0, 0
- bne _080450EA
- movs r0, 0
- b _080450F2
-_080450EA:
- ldr r0, [r0]
- cmp r0, 0
- beq _080450F2
- movs r0, 0x1
-_080450F2:
- pop {r1}
- bx r1
- thumb_func_end sub_80450E0
-
- thumb_func_start sub_80450F8
-sub_80450F8:
- ldr r0, [r0]
- bx lr
- thumb_func_end sub_80450F8
-
- thumb_func_start sub_80450FC
-sub_80450FC:
- adds r0, 0x25
- ldrb r0, [r0]
- bx lr
- thumb_func_end sub_80450FC
-
- thumb_func_start sub_8045104
-sub_8045104:
- ldr r0, [r0, 0x70]
- bx lr
- thumb_func_end sub_8045104
-
- thumb_func_start sub_8045108
-sub_8045108:
- ldr r0, [r0, 0x70]
- bx lr
- thumb_func_end sub_8045108
-
- thumb_func_start sub_804510C
-sub_804510C:
- ldr r0, [r0, 0x70]
- bx lr
- thumb_func_end sub_804510C
-
- thumb_func_start sub_8045110
-sub_8045110:
- ldr r0, [r0, 0x70]
- bx lr
- thumb_func_end sub_8045110
-
- thumb_func_start sub_8045114
-sub_8045114:
- push {lr}
- movs r1, 0x4
- ldrsh r2, [r0, r1]
- movs r3, 0x6
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl sub_804954C
- pop {r1}
- bx r1
- thumb_func_end sub_8045114
-
- thumb_func_start sub_8045128
-sub_8045128:
- push {lr}
- movs r1, 0x4
- ldrsh r2, [r0, r1]
- movs r3, 0x6
- ldrsh r1, [r0, r3]
- adds r0, r2, 0
- bl sub_8049590
- pop {r1}
- bx r1
- thumb_func_end sub_8045128
-
- thumb_func_start sub_804513C
-sub_804513C:
- push {r4-r7,lr}
- movs r3, 0
- ldr r7, _080451FC
- ldr r6, _08045200
- ldr r4, _08045204
- movs r5, 0
-_08045148:
- ldr r0, [r7]
- lsls r2, r3, 2
- adds r1, r0, r6
- adds r1, r2
- adds r0, r4
- str r0, [r1]
- str r5, [r0]
- adds r4, 0x74
- adds r3, 0x1
- cmp r3, 0x3
- ble _08045148
- ldr r1, _08045208
- movs r2, 0
- adds r0, r1, 0x5
-_08045164:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08045164
- movs r3, 0
- ldr r7, _080451FC
- ldr r6, _0804520C
- ldr r4, _08045210
- movs r5, 0
-_08045176:
- ldr r0, [r7]
- lsls r2, r3, 2
- adds r1, r0, r6
- adds r1, r2
- adds r0, r4
- str r0, [r1]
- str r5, [r0]
- adds r4, 0x74
- adds r3, 0x1
- cmp r3, 0xF
- ble _08045176
- ldr r1, _08045214
- movs r2, 0
- adds r0, r1, 0
- adds r0, 0xF
-_08045194:
- strb r2, [r0]
- subs r0, 0x1
- cmp r0, r1
- bge _08045194
- movs r3, 0
- ldr r5, _080451FC
- ldr r4, _08045218
- movs r2, 0
-_080451A4:
- ldr r0, [r5]
- lsls r1, r3, 2
- adds r0, r4
- adds r0, r1
- str r2, [r0]
- adds r3, 0x1
- cmp r3, 0x13
- ble _080451A4
- movs r3, 0
- ldr r7, _080451FC
- ldr r6, _0804521C
- ldr r4, _08045220
- movs r5, 0
-_080451BE:
- ldr r0, [r7]
- lsls r2, r3, 2
- adds r1, r0, r6
- adds r1, r2
- adds r0, r4
- str r0, [r1]
- str r5, [r0]
- adds r4, 0x74
- adds r3, 0x1
- cmp r3, 0x3F
- ble _080451BE
- movs r3, 0
- ldr r7, _080451FC
- ldr r6, _08045224
- ldr r4, _08045228
- movs r5, 0
-_080451DE:
- ldr r0, [r7]
- lsls r2, r3, 2
- adds r1, r0, r6
- adds r1, r2
- adds r0, r4
- str r0, [r1]
- str r5, [r0]
- adds r4, 0x74
- adds r3, 0x1
- cmp r3, 0x3F
- ble _080451DE
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080451FC: .4byte gUnknown_203B418
-_08045200: .4byte 0x0001357c
-_08045204: .4byte 0x0001381c
-_08045208: .4byte gUnknown_202EE70
-_0804520C: .4byte 0x0001358c
-_08045210: .4byte 0x000139ec
-_08045214: .4byte gUnknown_202EE76
-_08045218: .4byte 0x000135cc
-_0804521C: .4byte 0x0001361c
-_08045220: .4byte 0x0001412c
-_08045224: .4byte 0x0001371c
-_08045228: .4byte 0x00015e2c
- thumb_func_end sub_804513C
-
- thumb_func_start sub_804522C
-sub_804522C:
- push {r4-r7,lr}
- sub sp, 0x4
- ldr r2, _08045274
- ldr r0, [r2]
- ldr r3, _08045278
- adds r1, r0, r3
- ldrb r7, [r1]
- ldr r1, _0804527C
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _080452AA
- movs r6, 0
- adds r7, r2, 0
-_08045248:
- ldr r0, [r7]
- lsls r1, r6, 2
- ldr r2, _08045280
- adds r0, r2
- adds r0, r1
- ldr r5, [r0]
- adds r0, r5, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080452A2
- ldr r0, [r7]
- ldr r3, _08045284
- adds r0, r3
- ldr r0, [r0]
- cmp r5, r0
- bne _08045288
- adds r0, r5, 0
- bl sub_806C51C
- b _080452A2
- .align 2, 0
-_08045274: .4byte gUnknown_203B418
-_08045278: .4byte 0x00018210
-_0804527C: .4byte 0x0001820a
-_08045280: .4byte 0x000135cc
-_08045284: .4byte 0x000181f8
-_08045288:
- ldr r4, [r5, 0x70]
- adds r0, r5, 0
- bl sub_804187C
- adds r2, r0, 0
- adds r0, r4, 0
- adds r0, 0x98
- ldr r0, [r0]
- movs r3, 0x4
- ldrsh r1, [r4, r3]
- movs r3, 0
- bl sub_800F75C
-_080452A2:
- adds r6, 0x1
- cmp r6, 0x13
- ble _08045248
- b _0804533E
-_080452AA:
- movs r6, 0
-_080452AC:
- ldr r0, _08045348
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _0804534C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080452CC
- adds r0, r4, 0
- bl sub_806C51C
-_080452CC:
- adds r6, 0x1
- cmp r6, 0x3
- ble _080452AC
- movs r6, 0
-_080452D4:
- ldr r5, _08045348
- ldr r0, [r5]
- lsls r1, r6, 2
- ldr r3, _08045350
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080452F4
- adds r0, r4, 0
- bl sub_806C51C
-_080452F4:
- adds r6, 0x1
- cmp r6, 0xF
- ble _080452D4
- movs r6, 0
- ldr r0, [r5]
- ldr r1, _08045354
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r6, r0
- bge _08045336
- adds r4, r5, 0
-_0804530C:
- ldr r0, [r4]
- lsls r1, r6, 2
- ldr r3, _08045358
- adds r0, r3
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- str r1, [sp]
- adds r1, r7, 0
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80462AC
- adds r6, 0x1
- ldr r0, [r4]
- ldr r1, _08045354
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r6, r0
- blt _0804530C
-_08045336:
- cmp r7, 0
- beq _0804533E
- bl sub_807FA9C
-_0804533E:
- add sp, 0x4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045348: .4byte gUnknown_203B418
-_0804534C: .4byte 0x0001357c
-_08045350: .4byte 0x0001358c
-_08045354: .4byte 0x00003904
-_08045358: .4byte 0x0001361c
- thumb_func_end sub_804522C
-
- thumb_func_start sub_804535C
-sub_804535C:
- push {lr}
- adds r2, r0, 0
- cmp r1, 0
- beq _0804536C
- ldr r0, [r1]
- str r0, [r2, 0xC]
- ldr r0, [r1, 0x4]
- b _0804538E
-_0804536C:
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- str r0, [r2, 0xC]
- movs r0, 0x6
- ldrsh r1, [r2, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r1, 0x80
- lsls r1, 5
- adds r0, r1
-_0804538E:
- str r0, [r2, 0x10]
- pop {r0}
- bx r0
- thumb_func_end sub_804535C
-
- thumb_func_start sub_8045394
-sub_8045394:
- str r1, [r0, 0xC]
- str r2, [r0, 0x10]
- bx lr
- thumb_func_end sub_8045394
-
- thumb_func_start sub_804539C
-sub_804539C:
- ldr r3, [r0, 0xC]
- adds r3, r1
- str r3, [r0, 0xC]
- ldr r1, [r0, 0x10]
- adds r1, r2
- str r1, [r0, 0x10]
- bx lr
- thumb_func_end sub_804539C
-
- thumb_func_start sub_80453AC
-sub_80453AC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- mov r0, r8
- bl sub_808DACC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- movs r0, 0x6
- subs r3, r0, r6
- ldr r4, _080453D8
- b _080453DE
- .align 2, 0
-_080453D8: .4byte gUnknown_202EE70
-_080453DC:
- adds r5, 0x1
-_080453DE:
- cmp r5, r3
- bgt _08045400
- movs r2, 0
- cmp r2, r6
- bge _080453FA
- adds r1, r5, r4
- b _080453F4
-_080453EC:
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, r6
- bge _080453FA
-_080453F4:
- ldrb r0, [r1]
- cmp r0, 0
- beq _080453EC
-_080453FA:
- cmp r2, r6
- bne _080453DC
- mov r9, r5
-_08045400:
- movs r0, 0x1
- negs r0, r0
- cmp r9, r0
- beq _080454FC
- movs r5, 0
- ldr r7, _080454DC
-_0804540C:
- ldr r1, _080454E0
- ldr r0, [r1]
- lsls r1, r5, 2
- ldr r2, _080454E4
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- cmp r0, 0
- bne _080454F0
- movs r0, 0x1
- str r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- strb r5, [r0]
- ldr r1, _080454E0
- ldr r0, [r1]
- adds r0, r7
- str r0, [r4, 0x70]
- mov r2, r8
- strh r2, [r0, 0x2]
- movs r0, 0
- mov r1, r8
- bl sub_8069F54
- ldr r1, [r4, 0x70]
- strh r0, [r1, 0x4]
- ldr r0, [r4, 0x70]
- movs r5, 0
- strb r5, [r0, 0x6]
- movs r0, 0
- mov r1, r8
- bl sub_8069F54
- lsls r0, 16
- asrs r0, 16
- bl sub_80687D0
- str r0, [r4, 0x64]
- mov r1, r9
- lsls r0, r1, 4
- adds r0, 0x40
- adds r1, r4, 0
- adds r1, 0x68
- strh r0, [r1]
- adds r1, 0x2
- movs r0, 0x7
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x6C
- movs r2, 0
- strb r2, [r0]
- adds r1, 0x1
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x6D
- movs r5, 0x1
- strb r5, [r0]
- adds r0, 0x2
- strb r5, [r0]
- mov r0, r10
- str r0, [r4, 0x1C]
- bl sub_8045ACC
- ldr r0, [r4, 0x70]
- ldr r1, _080454E8
- adds r0, r1
- mov r2, r9
- strb r2, [r0]
- ldr r0, [r4, 0x70]
- movs r5, 0xB4
- lsls r5, 1
- adds r0, r5
- strb r6, [r0]
- cmp r6, 0
- beq _080454C6
- ldr r3, _080454EC
- movs r2, 0x1
- adds r1, r6, 0
-_080454B6:
- mov r5, r9
- adds r0, r5, r3
- strb r2, [r0]
- movs r0, 0x1
- add r9, r0
- subs r1, 0x1
- cmp r1, 0
- bne _080454B6
-_080454C6:
- ldr r1, _080454E0
- ldr r0, [r1]
- movs r2, 0xCD
- lsls r2, 3
- adds r0, r2
- ldrh r2, [r0]
- adds r1, r2, 0x1
- strh r1, [r0]
- strh r2, [r4, 0x26]
- adds r0, r4, 0
- b _080454FE
- .align 2, 0
-_080454DC: .4byte 0x0000069c
-_080454E0: .4byte gUnknown_203B418
-_080454E4: .4byte 0x0001357c
-_080454E8: .4byte 0x00000167
-_080454EC: .4byte gUnknown_202EE70
-_080454F0:
- movs r0, 0x82
- lsls r0, 2
- adds r7, r0
- adds r5, 0x1
- cmp r5, 0x3
- ble _0804540C
-_080454FC:
- movs r0, 0
-_080454FE:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80453AC
-
- thumb_func_start sub_804550C
-sub_804550C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- movs r0, 0x1
- negs r0, r0
- mov r9, r0
- mov r0, r8
- bl sub_808DACC
- lsls r0, 24
- lsrs r7, r0, 24
- movs r5, 0
- movs r0, 0x10
- subs r3, r0, r7
- ldr r4, _08045538
- b _0804553E
- .align 2, 0
-_08045538: .4byte gUnknown_202EE76
-_0804553C:
- adds r5, 0x1
-_0804553E:
- cmp r5, r3
- bgt _08045560
- movs r2, 0
- cmp r2, r7
- bge _0804555A
- adds r1, r5, r4
- b _08045554
-_0804554C:
- adds r1, 0x1
- adds r2, 0x1
- cmp r2, r7
- bge _0804555A
-_08045554:
- ldrb r0, [r1]
- cmp r0, 0
- beq _0804554C
-_0804555A:
- cmp r2, r7
- bne _0804553C
- mov r9, r5
-_08045560:
- movs r0, 0x1
- negs r0, r0
- cmp r9, r0
- bne _0804556A
- b _08045670
-_0804556A:
- movs r5, 0
- movs r1, 0x1
- mov r10, r1
- ldr r2, _08045650
- mov r3, r9
- lsls r0, r3, 4
- adds r0, 0xA0
- str r0, [sp]
-_0804557A:
- ldr r1, _08045654
- ldr r0, [r1]
- lsls r1, r5, 2
- ldr r3, _08045658
- adds r0, r3
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- str r2, [sp, 0x4]
- bl sub_80450E0
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r2, [sp, 0x4]
- cmp r6, 0
- bne _08045664
- mov r0, r10
- str r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- strb r5, [r0]
- subs r0, 0x2
- strb r6, [r0]
- ldr r1, _08045654
- ldr r0, [r1]
- adds r0, r2
- str r0, [r4, 0x70]
- mov r2, r8
- strh r2, [r0, 0x2]
- movs r0, 0
- mov r1, r8
- bl sub_8069F54
- ldr r1, [r4, 0x70]
- strh r0, [r1, 0x4]
- ldr r0, [r4, 0x70]
- mov r3, r10
- strb r3, [r0, 0x6]
- movs r0, 0
- mov r1, r8
- bl sub_8069F54
- lsls r0, 16
- asrs r0, 16
- bl sub_80687D0
- str r0, [r4, 0x64]
- adds r0, r4, 0
- adds r0, 0x68
- mov r5, sp
- ldrh r5, [r5]
- strh r5, [r0]
- adds r1, r4, 0
- adds r1, 0x6A
- movs r0, 0x7
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x6C
- movs r1, 0
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x6B
- movs r0, 0xFF
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x6D
- mov r2, r10
- strb r2, [r0]
- adds r0, 0x2
- strb r2, [r0]
- str r6, [r4, 0x1C]
- ldr r0, [r4, 0x70]
- ldr r3, _0804565C
- adds r0, r3
- mov r5, r9
- strb r5, [r0]
- ldr r0, [r4, 0x70]
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r1
- strb r7, [r0]
- cmp r7, 0
- beq _08045636
- ldr r3, _08045660
- movs r2, 0x1
- adds r1, r7, 0
-_08045626:
- mov r5, r9
- adds r0, r5, r3
- strb r2, [r0]
- movs r0, 0x1
- add r9, r0
- subs r1, 0x1
- cmp r1, 0
- bne _08045626
-_08045636:
- bl sub_8045ACC
- ldr r1, _08045654
- ldr r0, [r1]
- movs r2, 0xCD
- lsls r2, 3
- adds r0, r2
- ldrh r2, [r0]
- adds r1, r2, 0x1
- strh r1, [r0]
- strh r2, [r4, 0x26]
- adds r0, r4, 0
- b _08045672
- .align 2, 0
-_08045650: .4byte 0x00000ebc
-_08045654: .4byte gUnknown_203B418
-_08045658: .4byte 0x0001358c
-_0804565C: .4byte 0x00000167
-_08045660: .4byte gUnknown_202EE76
-_08045664:
- movs r3, 0x82
- lsls r3, 2
- adds r2, r3
- adds r5, 0x1
- cmp r5, 0xF
- ble _0804557A
-_08045670:
- movs r0, 0
-_08045672:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_804550C
-
- thumb_func_start sub_8045684
-sub_8045684:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r10, r1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- movs r5, 0
- ldr r7, _080456E4
- ldr r6, _080456E8
-_080456A2:
- ldr r0, [r7]
- lsls r1, r5, 2
- ldr r2, _080456EC
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080456F0
- movs r0, 0x2
- str r0, [r4]
- ldr r0, [r7]
- adds r0, r6
- str r0, [r4, 0x70]
- mov r2, r8
- strb r2, [r0]
- ldr r0, [r4, 0x70]
- mov r2, r9
- strb r2, [r0, 0x1]
- str r1, [r4, 0x1C]
- adds r0, r4, 0
- adds r0, 0x22
- strb r1, [r0]
- mov r2, r10
- ldr r0, [r2]
- str r0, [r4, 0x4]
- strh r1, [r4, 0x26]
- adds r0, r4, 0
- b _080456FA
- .align 2, 0
-_080456E4: .4byte gUnknown_203B418
-_080456E8: .4byte 0x00003908
-_080456EC: .4byte 0x0001371c
-_080456F0:
- adds r6, 0x4
- adds r5, 0x1
- cmp r5, 0x3F
- ble _080456A2
- movs r0, 0
-_080456FA:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8045684
-
- thumb_func_start sub_8045708
-sub_8045708:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- mov r8, r0
- ldr r1, _08045744
- ldr r0, _08045748
- ldr r0, [r0]
- ldr r2, _0804574C
- adds r0, r2
- movs r3, 0
- ldrsh r0, [r0, r3]
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0804579C
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- bl sub_8049590
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x2
- bne _0804579C
- b _080457C4
- .align 2, 0
-_08045744: .4byte gUnknown_810ACC0
-_08045748: .4byte gUnknown_203B418
-_0804574C: .4byte 0x00003a0e
-_08045750:
- movs r0, 0x3
- str r0, [r4]
- ldr r0, _08045798
- adds r1, r6, r0
- mov r2, r9
- ldr r0, [r2]
- adds r0, r1
- str r0, [r4, 0x70]
- mov r3, r8
- ldr r0, [r3]
- str r0, [r4, 0x4]
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 3
- adds r2, 0x4
- lsls r2, 8
- adds r0, r4, 0
- bl sub_8045394
- movs r0, 0
- strh r7, [r4, 0x26]
- adds r1, r4, 0
- adds r1, 0x22
- strb r0, [r1]
- str r7, [r4, 0x1C]
- adds r0, r4, 0
- b _080457C6
- .align 2, 0
-_08045798: .4byte 0x00003804
-_0804579C:
- movs r5, 0
- ldr r3, _080457D4
- mov r9, r3
-_080457A2:
- mov r1, r9
- ldr r0, [r1]
- lsls r6, r5, 2
- ldr r2, _080457D8
- adds r0, r2
- adds r0, r6
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0
- beq _08045750
- adds r5, 0x1
- cmp r5, 0x3F
- ble _080457A2
-_080457C4:
- movs r0, 0
-_080457C6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080457D4: .4byte gUnknown_203B418
-_080457D8: .4byte 0x0001361c
- thumb_func_end sub_8045708
-
- thumb_func_start sub_80457DC
-sub_80457DC:
- push {r4-r6,lr}
- adds r4, r0, 0
- movs r0, 0x5
- str r0, [r4]
- movs r6, 0
- movs r5, 0
- strh r5, [r4, 0x4]
- strh r5, [r4, 0x6]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0
- bl sub_8045394
- strh r5, [r4, 0x26]
- adds r4, 0x22
- strb r6, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80457DC
-
- thumb_func_start sub_8045804
-sub_8045804:
- push {r4-r6,lr}
- adds r4, r0, 0
- bl sub_80450F8
- cmp r0, 0x1
- beq _0804581C
- cmp r0, 0x1
- bcc _08045880
- cmp r0, 0x5
- beq _08045880
-_08045818:
- movs r0, 0x1
- b _08045882
-_0804581C:
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08045880
- ldr r0, _08045874
- ldr r1, [r0]
- ldr r0, _08045878
- adds r2, r1, r0
- ldr r5, [r2, 0x10]
- ldr r3, [r4, 0x70]
- ldrb r0, [r3, 0x6]
- cmp r0, 0
- beq _08045818
- ldr r6, _0804587C
- adds r0, r1, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0804584C
- adds r0, r3, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08045880
-_0804584C:
- adds r0, r2, 0
- adds r0, 0x23
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045818
- adds r0, r2, 0
- adds r0, 0x25
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045818
- cmp r5, 0
- beq _08045880
- adds r1, r4, 0x4
- adds r0, r2, 0
- bl sub_8083294
- lsls r0, 24
- lsrs r0, 24
- b _08045882
- .align 2, 0
-_08045874: .4byte gUnknown_203B418
-_08045878: .4byte 0x000181e8
-_0804587C: .4byte 0x0001820f
-_08045880:
- movs r0, 0
-_08045882:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8045804
-
- thumb_func_start sub_8045888
-sub_8045888:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08045988
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bge _0804589C
- adds r1, 0xFF
-_0804589C:
- asrs r1, 8
- ldr r0, _080458F0
- ldr r2, [r0]
- ldr r3, _080458F4
- adds r0, r2, r3
- movs r5, 0
- ldrsh r0, [r0, r5]
- subs r3, r1, r0
- ldr r0, [r4, 0x10]
- cmp r0, 0
- bge _080458B4
- adds r0, 0xFF
-_080458B4:
- asrs r0, 8
- ldr r5, _080458F8
- adds r1, r2, r5
- movs r5, 0
- ldrsh r1, [r1, r5]
- subs r1, r0, r1
- movs r0, 0x20
- negs r0, r0
- cmp r3, r0
- blt _08045988
- cmp r1, r0
- blt _08045988
- movs r0, 0x88
- lsls r0, 1
- cmp r3, r0
- bgt _08045988
- cmp r1, 0xC0
- bgt _08045988
- ldr r0, _080458FC
- adds r5, r2, r0
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x5
- bhi _08045984
- lsls r0, 2
- ldr r1, _08045900
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080458F0: .4byte gUnknown_203B418
-_080458F4: .4byte 0x000181f0
-_080458F8: .4byte 0x000181f2
-_080458FC: .4byte 0x000181e8
-_08045900: .4byte _08045904
- .align 2, 0
-_08045904:
- .4byte _08045988
- .4byte _08045934
- .4byte _08045964
- .4byte _0804591C
- .4byte _08045984
- .4byte _08045988
-_0804591C:
- adds r0, r5, 0
- adds r0, 0x26
-_08045920:
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045984
- adds r0, r4, 0x4
- bl sub_803F428
- lsls r0, 24
-_0804592E:
- cmp r0, 0
- bne _08045984
- b _08045988
-_08045934:
- ldr r1, [r4, 0x70]
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08045984
- ldr r0, _0804595C
- ldr r0, [r0]
- ldr r2, _08045960
- adds r0, r2
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045954
- adds r0, r1, 0
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08045988
-_08045954:
- adds r0, r5, 0
- adds r0, 0x25
- b _08045920
- .align 2, 0
-_0804595C: .4byte gUnknown_203B418
-_08045960: .4byte 0x0001820f
-_08045964:
- ldr r0, _0804597C
- ldr r0, [r0]
- ldr r3, _08045980
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045984
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- b _0804592E
- .align 2, 0
-_0804597C: .4byte gUnknown_203B418
-_08045980: .4byte 0x0001820f
-_08045984:
- movs r0, 0x1
- b _0804598A
-_08045988:
- movs r0, 0
-_0804598A:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8045888
-
- thumb_func_start sub_8045990
-sub_8045990:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080459E8
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080459E8
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _080459E8
- ldr r0, [r4]
- cmp r0, 0x1
- bne _080459EC
- ldr r0, [r5]
- cmp r0, 0x1
- bne _080459DE
- adds r0, r5, 0
- bl sub_8071884
- lsls r0, 24
- cmp r0, 0
- bne _080459D8
- ldr r0, [r4, 0x70]
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080459E8
-_080459D8:
- ldr r0, [r5, 0x70]
- adds r0, 0xE8
- b _080459E2
-_080459DE:
- ldr r0, [r4, 0x70]
- adds r0, 0xE4
-_080459E2:
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080459EC
-_080459E8:
- movs r0, 0
- b _080459F8
-_080459EC:
- adds r0, r5, 0x4
- adds r1, r4, 0x4
- bl sub_8083294
- lsls r0, 24
- lsrs r0, 24
-_080459F8:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8045990
-
- thumb_func_start sub_8045A00
-sub_8045A00:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045A58
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045A58
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08045A58
- ldr r0, [r4]
- cmp r0, 0x1
- bne _08045A5C
- ldr r0, [r5]
- cmp r0, 0x1
- bne _08045A4E
- adds r0, r5, 0
- bl sub_8071884
- lsls r0, 24
- cmp r0, 0
- bne _08045A48
- ldr r0, [r4, 0x70]
- adds r0, 0xE4
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _08045A58
-_08045A48:
- ldr r0, [r5, 0x70]
- adds r0, 0xE8
- b _08045A52
-_08045A4E:
- ldr r0, [r4, 0x70]
- adds r0, 0xE4
-_08045A52:
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08045A5C
-_08045A58:
- movs r0, 0
- b _08045A68
-_08045A5C:
- adds r0, r5, 0x4
- adds r1, r4, 0x4
- bl sub_808333C
- lsls r0, 24
- lsrs r0, 24
-_08045A68:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8045A00
-
- thumb_func_start sub_8045A70
-sub_8045A70:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045AA4
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045AA4
- adds r0, r4, 0
- adds r0, 0x20
- ldrb r0, [r0]
- cmp r0, 0
- beq _08045AA4
- adds r0, r5, 0x4
- adds r1, r4, 0x4
- bl sub_8083294
- lsls r0, 24
- lsrs r0, 24
- b _08045AA6
-_08045AA4:
- movs r0, 0
-_08045AA6:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8045A70
-
- thumb_func_start sub_8045AAC
-sub_8045AAC:
- push {lr}
- adds r0, 0x4
- bl sub_8083294
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8045AAC
-
- thumb_func_start sub_8045ABC
-sub_8045ABC:
- push {lr}
- adds r0, 0x4
- bl sub_808333C
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end sub_8045ABC
-
- thumb_func_start sub_8045ACC
-sub_8045ACC:
- push {r4-r7,lr}
- movs r6, 0
- movs r5, 0
- ldr r7, _08045B50
-_08045AD4:
- ldr r0, [r7]
- lsls r1, r5, 2
- ldr r2, _08045B54
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045AFA
- ldr r0, [r7]
- lsls r1, r6, 2
- ldr r2, _08045B58
- adds r0, r2
- adds r0, r1
- str r4, [r0]
- adds r6, 0x1
-_08045AFA:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08045AD4
- movs r5, 0
- ldr r7, _08045B50
-_08045B04:
- ldr r0, [r7]
- lsls r1, r5, 2
- ldr r2, _08045B5C
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08045B2A
- ldr r0, [r7]
- lsls r1, r6, 2
- ldr r2, _08045B58
- adds r0, r2
- adds r0, r1
- str r4, [r0]
- adds r6, 0x1
-_08045B2A:
- adds r5, 0x1
- cmp r5, 0xF
- ble _08045B04
- cmp r6, 0x13
- bgt _08045B4A
- ldr r4, _08045B50
- ldr r3, _08045B58
- movs r2, 0
-_08045B3A:
- ldr r0, [r4]
- lsls r1, r6, 2
- adds r0, r3
- adds r0, r1
- str r2, [r0]
- adds r6, 0x1
- cmp r6, 0x13
- ble _08045B3A
-_08045B4A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045B50: .4byte gUnknown_203B418
-_08045B54: .4byte 0x0001357c
-_08045B58: .4byte 0x000135cc
-_08045B5C: .4byte 0x0001358c
- thumb_func_end sub_8045ACC
-
- thumb_func_start sub_8045B60
-sub_8045B60:
- push {r4,lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r0, _08045B78
- ldr r0, [r0]
- ldr r4, _08045B7C
- adds r1, r0, r4
-_08045B6E:
- ldr r0, [r1]
- cmp r3, r0
- bne _08045B80
- adds r0, r2, 0
- b _08045B8C
- .align 2, 0
-_08045B78: .4byte gUnknown_203B418
-_08045B7C: .4byte 0x0001357c
-_08045B80:
- adds r1, 0x4
- adds r2, 0x1
- cmp r2, 0x3
- ble _08045B6E
- movs r0, 0x1
- negs r0, r0
-_08045B8C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8045B60
-
- thumb_func_start sub_8045B94
-sub_8045B94:
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r6, r2, 0
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x2
- beq _08045BD2
- cmp r0, 0x2
- bhi _08045BB0
- cmp r0, 0x1
- beq _08045BB6
- b _08045BE2
-_08045BB0:
- cmp r0, 0x3
- beq _08045BC2
- b _08045BE2
-_08045BB6:
- ldr r1, [r4, 0x70]
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_80708B4
- b _08045BEC
-_08045BC2:
- adds r0, r4, 0
- bl sub_8045110
- adds r1, r0, 0
- adds r0, r5, 0
- bl sub_8045BF8
- b _08045BEC
-_08045BD2:
- adds r0, r4, 0
- bl sub_804510C
- ldrb r1, [r0]
- adds r0, r5, 0
- bl sub_807FE84
- b _08045BEC
-_08045BE2:
- ldr r0, _08045BF4
- ldr r1, [r0]
- adds r0, r5, 0
- bl strcpy
-_08045BEC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08045BF4: .4byte gUnknown_80FE6F4
- thumb_func_end sub_8045B94
-
- thumb_func_start sub_8045BF8
-sub_8045BF8:
- push {lr}
- ldr r2, _08045C04
- bl sub_8090E14
- pop {r0}
- bx r0
- .align 2, 0
-_08045C04: .4byte gUnknown_80F699C
- thumb_func_end sub_8045BF8
-
- thumb_func_start sub_8045C08
-sub_8045C08:
- push {lr}
- ldr r2, _08045C14
- bl sub_8090E14
- pop {r0}
- bx r0
- .align 2, 0
-_08045C14: .4byte gUnknown_80F69A8
- thumb_func_end sub_8045C08
-
- thumb_func_start sub_8045C18
-sub_8045C18:
- push {lr}
- ldr r2, _08045C24
- bl sub_8090E14
- pop {r0}
- bx r0
- .align 2, 0
-_08045C24: .4byte gUnknown_80F6990
- thumb_func_end sub_8045C18
-
- thumb_func_start sub_8045C28
-sub_8045C28:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r2, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r1, r4, 0
- movs r2, 0
- bl sub_8090A8C
- movs r7, 0
- adds r0, r4, 0
- bl sub_8091544
- lsls r0, 24
- cmp r0, 0
- beq _08045C72
- cmp r6, 0
- bne _08045C6C
- movs r0, 0x64
- bl sub_8084100
- ldr r1, _08045C64
- ldr r1, [r1]
- ldr r2, _08045C68
- adds r1, r2
- ldrb r1, [r1]
- cmp r0, r1
- bge _08045C72
- b _08045C76
- .align 2, 0
-_08045C64: .4byte gUnknown_203B418
-_08045C68: .4byte 0x0001c57e
-_08045C6C:
- cmp r6, 0x1
- bne _08045C72
- movs r7, 0x1
-_08045C72:
- cmp r7, 0
- beq _08045C7E
-_08045C76:
- ldrb r1, [r5]
- movs r0, 0x8
- orrs r0, r1
- strb r0, [r5]
-_08045C7E:
- adds r0, r4, 0
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08045CA2
- ldr r0, _08045CA8
- ldr r0, [r0]
- ldr r1, _08045CAC
- adds r0, r1
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r0, r5, 0
- bl sub_8046CE4
-_08045CA2:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08045CA8: .4byte gUnknown_203B418
-_08045CAC: .4byte 0x0001c58b
- thumb_func_end sub_8045C28
-
- thumb_func_start sub_8045CB0
-sub_8045CB0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- movs r0, 0x38
- bl sub_8084100
- adds r5, r0, 0
- movs r0, 0x20
- bl sub_8084100
- adds r6, r0, 0
- ldr r0, _08045D34
- ldr r0, [r0]
- ldr r1, _08045D38
- adds r0, r1
- movs r1, 0
- strh r1, [r0]
- movs r0, 0
-_08045CDA:
- adds r6, 0x1
- cmp r6, 0x20
- bne _08045CE2
- movs r6, 0
-_08045CE2:
- adds r0, 0x1
- mov r10, r0
- movs r3, 0x2
- mov r9, r3
- movs r0, 0x37
- mov r8, r0
-_08045CEE:
- adds r5, 0x1
- cmp r5, 0x38
- bne _08045CF6
- movs r5, 0
-_08045CF6:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_804954C
- adds r2, r0, 0
- ldrh r0, [r2]
- movs r3, 0x80
- lsls r3, 2
- adds r1, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08045D92
- ldrh r1, [r2, 0x4]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- beq _08045D92
- movs r7, 0
- lsls r0, r5, 16
- lsls r1, r6, 16
- lsrs r0, 16
- orrs r0, r1
- str r0, [sp, 0x4]
- ldrh r1, [r2]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08045D3C
- movs r7, 0x1
- movs r0, 0x1
- b _08045D58
- .align 2, 0
-_08045D34: .4byte gUnknown_203B418
-_08045D38: .4byte 0x00003904
-_08045D3C:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08045D48
- movs r0, 0x3
- b _08045D58
-_08045D48:
- movs r0, 0x40
- ands r0, r1
- lsls r0, 16
- lsrs r0, 16
- negs r0, r0
- asrs r0, 31
- mov r1, r9
- ands r0, r1
-_08045D58:
- bl sub_803D73C
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- bne _08045D6E
- movs r7, 0
-_08045D6E:
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045C28
- cmp r7, 0
- beq _08045D88
- mov r0, sp
- ldrb r1, [r0]
- mov r0, r9
- orrs r0, r1
- mov r1, sp
- strb r0, [r1]
-_08045D88:
- add r0, sp, 0x4
- mov r1, sp
- movs r2, 0x1
- bl sub_80460F8
-_08045D92:
- movs r3, 0x1
- negs r3, r3
- add r8, r3
- mov r0, r8
- cmp r0, 0
- bge _08045CEE
- mov r0, r10
- cmp r0, 0x1F
- ble _08045CDA
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8045CB0
-
- thumb_func_start sub_8045DB4
-sub_8045DB4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xB8
- mov r10, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0xA8]
- bl sub_8083600
- adds r7, r0, 0
- ldr r0, [r7, 0x70]
- str r0, [sp, 0xAC]
- mov r1, r10
- movs r2, 0
- ldrsh r0, [r1, r2]
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- bl sub_804954C
- ldr r4, [r0, 0x14]
- cmp r4, 0
- bne _08045DE8
- b _080460E0
-_08045DE8:
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x3
- beq _08045DF4
- b _080460E0
-_08045DF4:
- adds r0, r4, 0
- bl sub_8045108
- adds r5, r0, 0
- ldr r0, [sp, 0xAC]
- adds r0, 0x48
- ldrb r0, [r0]
- cmp r0, 0
- bne _08045E08
- b _0804602E
-_08045E08:
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_8071518
- lsls r0, 24
- cmp r0, 0
- beq _08045E40
- ldr r0, [sp, 0xA8]
- cmp r0, 0
- bne _08045E1E
- b _080460E0
-_08045E1E:
- ldr r0, _08045E34
- adds r1, r5, 0
- bl sub_8045BF8
- ldr r0, _08045E38
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08045E3C
- b _08046048
- .align 2, 0
-_08045E34: .4byte gUnknown_202DE58
-_08045E38: .4byte gUnknown_202DF98
-_08045E3C: .4byte gUnknown_80F8F88
-_08045E40:
- ldrb r0, [r5, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bne _08045E7C
- movs r0, 0xA6
- lsls r0, 1
- bl sub_8083E38
- adds r0, r5, 0
- bl sub_80915D4
- bl sub_80913A0
- ldr r0, _08045E74
- adds r1, r5, 0
- bl sub_8045BF8
- mov r0, r10
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _08045E78
- b _08045FD0
- .align 2, 0
-_08045E74: .4byte gUnknown_202DE58
-_08045E78: .4byte gUnknown_80F8FFC
-_08045E7C:
- ldr r0, _08045EA8
- ldr r0, [r0]
- ldr r1, _08045EAC
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0
- beq _08045EB4
- movs r4, 0
- ldr r0, _08045EB0
- mov r2, sp
- ldr r0, [r0]
- add r1, sp, 0x54
-_08045E94:
- stm r1!, {r0}
- stm r2!, {r4}
- adds r0, 0x4
- adds r4, 0x1
- cmp r4, 0x13
- ble _08045E94
- movs r2, 0x14
- mov r8, r2
- b _08045EC4
- .align 2, 0
-_08045EA8: .4byte gUnknown_203B418
-_08045EAC: .4byte 0x0000065b
-_08045EB0: .4byte gUnknown_203B460
-_08045EB4:
- ldr r0, [sp, 0xAC]
- adds r0, 0x60
- str r0, [sp, 0x54]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- movs r3, 0x1
- mov r8, r3
-_08045EC4:
- ldrb r0, [r5, 0x2]
- add r6, sp, 0xB0
- strb r0, [r6]
- cmp r0, 0x8
- bls _08045ED0
- b _08046000
-_08045ED0:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08045EDC
- b _08046000
-_08045EDC:
- movs r1, 0x1
- negs r1, r1
- mov r12, r1
- mov r2, r12
- str r2, [sp, 0xB4]
- movs r4, 0
- cmp r4, r8
- bge _08045F2C
- ldr r3, _08045FDC
- mov r9, r3
- add r3, sp, 0x54
-_08045EF2:
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08045F24
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08045F24
- ldr r1, [r5]
- mov r6, r9
- ands r1, r6
- ldr r0, [r2]
- ands r0, r6
- cmp r1, r0
- bne _08045F24
- ldrb r0, [r2, 0x1]
- cmp r0, 0x63
- beq _08045F24
- ldr r1, [sp, 0xB4]
- cmp r1, r0
- bge _08045F24
- str r0, [sp, 0xB4]
- mov r12, r4
-_08045F24:
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, r8
- blt _08045EF2
-_08045F2C:
- movs r0, 0x1
- negs r0, r0
- cmp r12, r0
- bne _08045F80
- mov r2, r12
- str r2, [sp, 0xB4]
- movs r4, 0
- cmp r4, r8
- bge _08045F78
- add r3, sp, 0xB0
- ldrb r3, [r3]
- mov r9, r3
- add r3, sp, 0x54
-_08045F46:
- ldr r2, [r3]
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08045F70
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _08045F70
- ldrb r6, [r2, 0x2]
- cmp r9, r6
- bne _08045F70
- ldrb r0, [r2, 0x1]
- cmp r0, 0x63
- beq _08045F70
- ldr r1, [sp, 0xB4]
- cmp r1, r0
- bge _08045F70
- str r0, [sp, 0xB4]
- mov r12, r4
-_08045F70:
- adds r3, 0x4
- adds r4, 0x1
- cmp r4, r8
- blt _08045F46
-_08045F78:
- movs r0, 0x1
- negs r0, r0
- cmp r12, r0
- beq _08046000
-_08045F80:
- add r0, sp, 0x54
- mov r2, r12
- lsls r4, r2, 2
- adds r3, r0, r4
- ldr r2, [r3]
- ldrb r1, [r2, 0x1]
- ldrb r0, [r5, 0x1]
- adds r1, r0
- cmp r1, 0x62
- ble _08045F96
- movs r1, 0x63
-_08045F96:
- strb r1, [r2, 0x1]
- ldrb r1, [r5]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08045FAC
- ldr r0, [r3]
- ldrb r1, [r0]
- movs r2, 0x8
- orrs r1, r2
- strb r1, [r0]
-_08045FAC:
- ldr r0, _08045FE0
- adds r1, r5, 0
- bl sub_8045BF8
- mov r0, r10
- movs r1, 0x1
- bl sub_80461C8
- movs r0, 0xA5
- lsls r0, 1
- bl sub_8083E38
- mov r3, sp
- adds r0, r3, r4
- ldr r0, [r0]
- cmp r0, 0
- bge _08045FE8
- ldr r0, _08045FE4
-_08045FD0:
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80522A8
- b _08045FF2
- .align 2, 0
-_08045FDC: .4byte 0x00ff0008
-_08045FE0: .4byte gUnknown_202DE58
-_08045FE4: .4byte gUnknown_80F8FC4
-_08045FE8:
- ldr r0, _08045FFC
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80522A8
-_08045FF2:
- ldrb r0, [r5, 0x2]
- bl sub_8052EC0
- b _080460E0
- .align 2, 0
-_08045FFC: .4byte gUnknown_80F8FF8
-_08046000:
- movs r4, 0
- cmp r4, r8
- bge _0804602A
- ldr r0, [sp, 0x54]
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804602A
- movs r3, 0x1
- add r2, sp, 0x54
-_08046016:
- adds r2, 0x4
- adds r4, 0x1
- cmp r4, r8
- bge _0804602A
- ldr r0, [r2]
- ldrb r1, [r0]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _08046016
-_0804602A:
- cmp r4, r8
- bne _08046060
-_0804602E:
- ldr r6, [sp, 0xA8]
- cmp r6, 0
- beq _080460E0
- ldr r0, _08046054
- adds r1, r5, 0
- bl sub_8045BF8
- ldr r0, _08046058
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _0804605C
-_08046048:
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80522A8
- b _080460E0
- .align 2, 0
-_08046054: .4byte gUnknown_202DE58
-_08046058: .4byte gUnknown_202DF98
-_0804605C: .4byte gUnknown_80F8F54
-_08046060:
- movs r0, 0xA5
- lsls r0, 1
- bl sub_8083E38
- lsls r0, r4, 2
- add r0, sp
- ldr r0, [r0]
- cmp r0, 0
- bge _08046094
- ldr r0, [r5]
- ldr r1, [sp, 0xAC]
- str r0, [r1, 0x60]
- ldr r0, _0804608C
- adds r1, r5, 0
- bl sub_8045BF8
- mov r0, r10
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _08046090
- b _080460AC
- .align 2, 0
-_0804608C: .4byte gUnknown_202DE58
-_08046090: .4byte gUnknown_80F8FC4
-_08046094:
- adds r0, r5, 0
- bl sub_8091290
- lsls r0, 24
- cmp r0, 0
- beq _080460C0
- ldr r0, _080460B8
- adds r1, r7, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _080460BC
-_080460AC:
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80522A8
- b _080460DA
- .align 2, 0
-_080460B8: .4byte gUnknown_202DF98
-_080460BC: .4byte gUnknown_80F8FAC
-_080460C0:
- ldr r0, _080460F0
- adds r1, r5, 0
- bl sub_8045BF8
- mov r0, r10
- movs r1, 0x1
- bl sub_80461C8
- ldr r0, _080460F4
- ldr r1, [r0]
- adds r0, r7, 0
- bl sub_80522A8
-_080460DA:
- ldrb r0, [r5, 0x2]
- bl sub_8052EC0
-_080460E0:
- add sp, 0xB8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080460F0: .4byte gUnknown_202DE58
-_080460F4: .4byte gUnknown_80F8FF8
- thumb_func_end sub_8045DB4
-
- thumb_func_start sub_80460F8
-sub_80460F8:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- lsls r2, 24
- lsrs r7, r2, 24
- bl sub_8045708
- adds r4, r0, 0
- cmp r4, 0
- bne _08046110
- movs r0, 0
- b _080461B6
-_08046110:
- ldr r1, [r4, 0x70]
- ldr r0, [r6]
- str r0, [r1]
- ldr r2, [r4, 0x70]
- ldrb r1, [r2]
- movs r0, 0xEF
- ands r0, r1
- strb r0, [r2]
- adds r1, r4, 0
- adds r1, 0x20
- movs r0, 0x1
- strb r0, [r1]
- movs r1, 0
- ldrsh r0, [r5, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl sub_8049590
- str r4, [r0, 0x14]
- ldrh r1, [r0]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08046186
- ldrb r0, [r6, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- beq _08046186
- ldrb r1, [r6]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08046170
- cmp r7, 0
- beq _08046186
- adds r0, r6, 0
- bl sub_8090C7C
- ldr r1, _08046168
- ldr r2, [r1]
- ldr r1, _0804616C
- b _0804617E
- .align 2, 0
-_08046168: .4byte gUnknown_203B418
-_0804616C: .4byte 0x0000068c
-_08046170:
- adds r0, r6, 0
- bl sub_8090CCC
- ldr r1, _080461BC
- ldr r2, [r1]
- movs r1, 0xD2
- lsls r1, 3
-_0804617E:
- adds r2, r1
- ldr r1, [r2]
- adds r1, r0
- str r1, [r2]
-_08046186:
- movs r6, 0
- movs r4, 0
-_0804618A:
- ldr r5, _080461BC
- ldr r0, [r5]
- lsls r1, r4, 2
- ldr r2, _080461C0
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl sub_80450E0
- lsls r0, 24
- adds r1, r4, 0x1
- cmp r0, 0
- beq _080461A6
- adds r6, r1, 0
-_080461A6:
- adds r4, r1, 0
- cmp r4, 0x3F
- ble _0804618A
- ldr r0, [r5]
- ldr r1, _080461C4
- adds r0, r1
- strh r6, [r0]
- movs r0, 0x1
-_080461B6:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_080461BC: .4byte gUnknown_203B418
-_080461C0: .4byte 0x0001361c
-_080461C4: .4byte 0x00003904
- thumb_func_end sub_80460F8
-
- thumb_func_start sub_80461C8
-sub_80461C8:
- push {r4-r7,lr}
- adds r2, r0, 0
- lsls r1, 24
- lsrs r7, r1, 24
- movs r1, 0
- ldrsh r0, [r2, r1]
- movs r3, 0x2
- ldrsh r1, [r2, r3]
- bl sub_8049590
- adds r6, r0, 0
- ldr r5, [r6, 0x14]
- cmp r5, 0
- beq _080461EE
- adds r0, r5, 0
- bl sub_80450F8
- cmp r0, 0x3
- beq _080461F2
-_080461EE:
- movs r0, 0
- b _08046284
-_080461F2:
- adds r0, r5, 0
- bl sub_8045108
- adds r4, r0, 0
- ldrh r1, [r6]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0804624E
- ldrb r0, [r4, 0x2]
- bl sub_80914E4
- lsls r0, 24
- cmp r0, 0
- beq _0804624E
- ldrb r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08046238
- cmp r7, 0
- beq _0804624E
- adds r0, r4, 0
- bl sub_8090C7C
- ldr r1, _08046230
- ldr r2, [r1]
- ldr r1, _08046234
- adds r2, r1
- b _08046248
- .align 2, 0
-_08046230: .4byte gUnknown_203B418
-_08046234: .4byte 0x0000068c
-_08046238:
- adds r0, r4, 0
- bl sub_8090CCC
- ldr r1, _0804628C
- ldr r2, [r1]
- movs r3, 0xD2
- lsls r3, 3
- adds r2, r3
-_08046248:
- ldr r1, [r2]
- subs r1, r0
- str r1, [r2]
-_0804624E:
- movs r0, 0
- str r0, [r6, 0x14]
- str r0, [r5]
- movs r6, 0
- movs r4, 0
-_08046258:
- ldr r5, _0804628C
- ldr r0, [r5]
- lsls r1, r4, 2
- ldr r2, _08046290
- adds r0, r2
- adds r0, r1
- ldr r0, [r0]
- bl sub_80450E0
- lsls r0, 24
- adds r1, r4, 0x1
- cmp r0, 0
- beq _08046274
- adds r6, r1, 0
-_08046274:
- adds r4, r1, 0
- cmp r4, 0x3F
- ble _08046258
- ldr r0, [r5]
- ldr r3, _08046294
- adds r0, r3
- strh r6, [r0]
- movs r0, 0x1
-_08046284:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0804628C: .4byte gUnknown_203B418
-_08046290: .4byte 0x0001361c
-_08046294: .4byte 0x00003904
- thumb_func_end sub_80461C8
-
- thumb_func_start sub_8046298
-sub_8046298:
- ldrb r0, [r0, 0x2]
- ldr r1, _080462A8
- ldr r1, [r1]
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0xD]
- bx lr
- .align 2, 0
-_080462A8: .4byte gItemParametersFile + 4
- thumb_func_end sub_8046298
-
- thumb_func_start sub_80462AC
-sub_80462AC:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- adds r4, r0, 0
- ldr r0, [sp, 0x28]
- lsls r1, 24
- lsrs r1, 24
- mov r10, r1
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- bne _080462E4
- b _08046498
-_080462E4:
- cmp r5, 0
- beq _08046316
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r2, 0x6
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- cmp r1, 0
- bne _08046300
- b _08046498
-_08046300:
- cmp r1, 0x2
- bne _08046308
- movs r3, 0x1
- str r3, [sp, 0x4]
-_08046308:
- adds r0, r4, 0
- bl sub_8045888
- lsls r0, 24
- cmp r0, 0
- bne _08046316
- b _08046498
-_08046316:
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bge _0804631E
- adds r1, 0xFF
-_0804631E:
- asrs r1, 8
- ldr r0, _080463A4
- ldr r2, [r0]
- ldr r5, _080463A8
- adds r0, r2, r5
- movs r3, 0
- ldrsh r0, [r0, r3]
- subs r6, r1, r0
- ldr r3, [r4, 0x10]
- ldr r0, [r4, 0x1C]
- subs r1, r3, r0
- cmp r1, 0
- bge _0804633A
- adds r1, 0xFF
-_0804633A:
- asrs r1, 8
- ldr r5, _080463AC
- adds r0, r2, r5
- movs r5, 0
- ldrsh r2, [r0, r5]
- subs r1, r2
- mov r8, r1
- adds r0, r3, 0
- cmp r0, 0
- bge _08046350
- adds r0, 0xFF
-_08046350:
- asrs r0, 8
- subs r0, r2
- adds r7, r0, 0
- adds r7, 0x8
- lsrs r0, r7, 31
- adds r0, r7, r0
- asrs r7, r0, 1
- movs r0, 0x20
- negs r0, r0
- cmp r6, r0
- bge _08046368
- b _08046498
-_08046368:
- cmp r8, r0
- bge _0804636E
- b _08046498
-_0804636E:
- movs r0, 0x88
- lsls r0, 1
- cmp r6, r0
- ble _08046378
- b _08046498
-_08046378:
- mov r0, r8
- cmp r0, 0xC0
- ble _08046380
- b _08046498
-_08046380:
- ldr r5, _080463B0
- ldrh r1, [r5, 0x2]
- ldr r0, _080463B4
- ands r0, r1
- strh r0, [r5, 0x2]
- mov r1, r10
- cmp r1, 0
- beq _080463BC
- movs r2, 0x17
- mov r10, r2
- movs r2, 0xA0
- lsls r2, 8
- ldrh r1, [r5, 0x4]
- ldr r0, _080463B8
- ands r0, r1
- orrs r0, r2
- strh r0, [r5, 0x4]
- b _08046408
- .align 2, 0
-_080463A4: .4byte gUnknown_203B418
-_080463A8: .4byte 0x000181f0
-_080463AC: .4byte 0x000181f2
-_080463B0: .4byte gUnknown_202EDC0
-_080463B4: .4byte 0x0000c1ff
-_080463B8: .4byte 0x00000fff
-_080463BC:
- ldr r0, [r4, 0x70]
- bl sub_8046298
- mov r10, r0
- mov r3, r9
- cmp r3, 0xFF
- beq _080463EE
- cmp r0, 0
- bne _080463EE
- ldr r0, _08046478
- add r0, r9
- ldrb r0, [r0]
- mov r10, r0
- ldr r0, _0804647C
- add r0, r9
- ldrb r1, [r0]
- lsls r1, 3
- movs r0, 0x1F
- ands r1, r0
- lsls r1, 9
- ldrh r2, [r5, 0x2]
- ldr r0, _08046480
- ands r0, r2
- orrs r0, r1
- strh r0, [r5, 0x2]
-_080463EE:
- ldr r0, [r4, 0x70]
- ldrb r0, [r0, 0x2]
- bl sub_8090D58
- movs r1, 0xF
- ands r0, r1
- lsls r0, 12
- ldr r3, _08046484
- ldrh r2, [r3, 0x4]
- ldr r1, _08046488
- ands r1, r2
- orrs r1, r0
- strh r1, [r3, 0x4]
-_08046408:
- ldr r1, _08046488
- mov r5, r8
- ands r1, r5
- lsls r1, 4
- ldr r4, _08046484
- ldrh r2, [r4, 0x6]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x6]
- ldr r0, _0804648C
- ands r6, r0
- ldrh r1, [r4, 0x2]
- movs r0, 0xFE
- lsls r0, 8
- ands r0, r1
- orrs r0, r6
- strh r0, [r4, 0x2]
- ldr r0, [sp, 0x4]
- lsls r3, r0, 10
- ldrh r2, [r4]
- ldr r1, _08046490
- adds r0, r1, 0
- ands r0, r2
- orrs r0, r3
- strh r0, [r4]
- movs r2, 0xC0
- lsls r2, 4
- ldrh r0, [r4, 0x4]
- ands r1, r0
- orrs r1, r2
- mov r2, r10
- lsls r0, r2, 2
- movs r3, 0xD0
- lsls r3, 1
- adds r0, r3
- ldr r2, _08046494
- ands r0, r2
- movs r2, 0xFC
- lsls r2, 8
- ands r1, r2
- orrs r1, r0
- strh r1, [r4, 0x4]
- ldr r5, [sp]
- cmp r5, 0
- bne _08046466
- movs r7, 0x1
-_08046466:
- adds r0, r4, 0
- adds r1, r7, 0
- movs r2, 0
- movs r3, 0
- bl AddSprite
- movs r0, 0x1
- b _0804649A
- .align 2, 0
-_08046478: .4byte gUnknown_203B420
-_0804647C: .4byte gUnknown_203B428
-_08046480: .4byte 0x0000c1ff
-_08046484: .4byte gUnknown_202EDC0
-_08046488: .4byte 0x00000fff
-_0804648C: .4byte 0x000001ff
-_08046490: .4byte 0x0000f3ff
-_08046494: .4byte 0x000003ff
-_08046498:
- movs r0, 0
-_0804649A:
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80462AC
-
- thumb_func_start sub_80464AC
-sub_80464AC:
- push {r4,lr}
- ldr r4, _080464C4
- ldrb r0, [r0, 0x2]
- bl sub_8090D6C
- lsls r0, 3
- adds r0, r4
- ldr r0, [r0]
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_080464C4: .4byte gUnknown_80F7B14
- thumb_func_end sub_80464AC
-
- thumb_func_start sub_80464C8
-sub_80464C8:
- push {r4-r6,lr}
- sub sp, 0x78
- adds r6, r0, 0
- adds r3, r1, 0
- adds r5, r2, 0
- movs r0, 0x3
- str r0, [sp, 0x4]
- add r0, sp, 0x28
- movs r4, 0
- strb r4, [r0]
- add r1, sp, 0x24
- movs r0, 0x1
- strb r0, [r1]
- mov r0, sp
- adds r0, 0x26
- strb r4, [r0]
- str r5, [sp, 0x74]
- ldr r0, [r3]
- str r0, [sp, 0x8]
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 3
- adds r2, 0x4
- lsls r2, 8
- add r0, sp, 0x4
- bl sub_8045394
- add r0, sp, 0x4
- strh r4, [r0, 0x26]
- str r4, [sp]
- adds r0, r6, 0
- add r1, sp, 0x4
- adds r2, r5, 0
- movs r3, 0x1
- bl sub_804652C
- add sp, 0x78
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_80464C8
-
- thumb_func_start sub_804652C
-sub_804652C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- mov r10, r0
- adds r5, r1, 0
- mov r9, r2
- lsls r3, 24
- lsrs r6, r3, 24
- movs r1, 0x4
- ldrsh r0, [r5, r1]
- movs r2, 0x6
- ldrsh r1, [r5, r2]
- bl sub_804954C
- adds r4, r0, 0
- ldr r0, [r4, 0x14]
- movs r3, 0
- str r3, [sp, 0xC]
- cmp r0, 0
- beq _0804658C
- bl sub_80450F8
- cmp r0, 0x2
- bne _0804658C
- adds r4, r5, 0x4
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_8046734
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_807FE44
- ldr r0, _080465A4
- ldr r1, [r0]
- mov r0, r10
- bl sub_80522A8
- mov r0, r9
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0804658C
- b _0804671E
-_0804658C:
- ldrh r1, [r5, 0x6]
- lsls r1, 16
- ldrh r0, [r5, 0x4]
- orrs r0, r1
- str r0, [sp]
- mov r8, r0
- movs r7, 0x1
- cmp r6, 0
- beq _08046632
- movs r7, 0
- b _08046632
- .align 2, 0
-_080465A4: .4byte gUnknown_80FED30
-_080465A8:
- lsls r3, r7, 2
- adds r3, r0
- ldrh r0, [r3]
- ldrh r1, [r5, 0x4]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _08046628
- ldr r2, [sp]
- ands r2, r1
- orrs r2, r0
- str r2, [sp]
- ldrh r0, [r3, 0x2]
- ldrh r3, [r5, 0x6]
- adds r0, r3
- lsls r0, 16
- ldr r1, _0804662C
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- movs r2, 0
- ldrsh r0, [r0, r2]
- asrs r1, 16
- bl sub_804954C
- adds r4, r0, 0
- ldrh r1, [r4]
- movs r6, 0x3
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08046630
- movs r0, 0x80
- lsls r0, 2
- ands r0, r1
- cmp r0, 0
- bne _08046630
- ldr r0, [r4, 0x14]
- cmp r0, 0
- bne _08046630
- adds r0, r5, 0
- mov r1, sp
- bl sub_8046734
- ldr r3, [sp]
- mov r8, r3
- ldrh r1, [r4]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0x3
- beq _08046620
- mov r0, sp
- mov r1, r9
- movs r2, 0x1
- bl sub_80460F8
- lsls r0, 24
- cmp r0, 0
- beq _08046644
-_08046620:
- movs r0, 0x1
- str r0, [sp, 0xC]
- b _08046644
- .align 2, 0
-_08046628: .4byte 0xffff0000
-_0804662C: .4byte 0x0000ffff
-_08046630:
- adds r7, 0x1
-_08046632:
- ldr r0, _08046688
- lsls r1, r7, 2
- adds r1, r0
- movs r2, 0
- ldrsh r1, [r1, r2]
- cmp r1, 0x63
- bne _080465A8
- movs r3, 0
- str r3, [sp, 0xC]
-_08046644:
- ldr r0, _0804668C
- mov r1, r9
- bl sub_8045BF8
- ldr r0, [sp, 0xC]
- cmp r0, 0
- beq _080466C8
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- mov r4, sp
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_80402AC
- mov r0, sp
- movs r3, 0
- ldrsh r0, [r0, r3]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl sub_804954C
- ldrh r0, [r0]
- movs r1, 0x3
- ands r1, r0
- adds r0, r1, 0
- cmp r1, 0x1
- beq _0804669A
- cmp r1, 0x1
- bgt _08046690
- cmp r1, 0
- beq _080466AC
- b _0804671E
- .align 2, 0
-_08046688: .4byte gUnknown_80F4468
-_0804668C: .4byte gUnknown_202DE58
-_08046690:
- cmp r0, 0x2
- beq _080466A4
- cmp r0, 0x3
- beq _080466B4
- b _0804671E
-_0804669A:
- ldr r0, _080466A0
- b _080466B6
- .align 2, 0
-_080466A0: .4byte gUnknown_80F93E8
-_080466A4:
- ldr r0, _080466A8
- b _080466B6
- .align 2, 0
-_080466A8: .4byte gUnknown_80F9408
-_080466AC:
- ldr r0, _080466B0
- b _080466B6
- .align 2, 0
-_080466B0: .4byte gUnknown_80F9424
-_080466B4:
- ldr r0, _080466C4
-_080466B6:
- ldr r2, [r0]
- mov r0, r10
- mov r1, sp
- bl sub_8052364
- b _0804671E
- .align 2, 0
-_080466C4: .4byte gUnknown_80F949C
-_080466C8:
- mov r3, r8
- lsls r1, r3, 16
- asrs r1, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r1, 0xC0
- lsls r1, 4
- adds r0, r1
- str r0, [sp, 0x4]
- asrs r1, r3, 16
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- movs r2, 0xC0
- lsls r2, 4
- adds r0, r2
- add r2, sp, 0x4
- str r0, [r2, 0x4]
- ldr r3, [sp, 0x30]
- cmp r3, 0
- beq _0804670C
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 8
- ldr r1, [sp, 0x4]
- adds r0, r1
- str r0, [sp, 0x4]
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- lsls r0, 8
- ldr r1, [r2, 0x4]
- adds r0, r1
- str r0, [r2, 0x4]
-_0804670C:
- adds r0, r2, 0
- bl sub_804219C
- ldr r0, _08046730
- ldr r2, [r0]
- mov r0, r10
- mov r1, sp
- bl sub_8052364
-_0804671E:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046730: .4byte gUnknown_80F943C
- thumb_func_end sub_804652C
-
- thumb_func_start sub_8046734
-sub_8046734:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- mov r8, r0
- ldr r0, _08046858
- ldr r0, [r0]
- ldr r2, _0804685C
- adds r0, r2
- ldrb r0, [r0]
- str r0, [sp, 0xC]
- movs r0, 0
- ldrsh r2, [r1, r0]
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 3
- adds r0, 0x4
- lsls r4, r0, 8
- movs r2, 0x2
- ldrsh r1, [r1, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- lsls r5, r0, 8
- mov r1, r8
- ldr r0, [r1, 0xC]
- subs r0, r4
- cmp r0, 0
- bge _08046776
- negs r0, r0
-_08046776:
- mov r2, r8
- ldr r2, [r2, 0x10]
- mov r9, r2
- cmp r0, 0xB
- bgt _0804678C
- subs r0, r2, r5
- cmp r0, 0
- bge _08046788
- negs r0, r0
-_08046788:
- cmp r0, 0xB
- ble _08046822
-_0804678C:
- movs r0, 0
- mov r10, r0
- movs r1, 0
- str r1, [sp, 0x10]
- mov r2, r8
- ldr r0, [r2, 0xC]
- str r0, [sp, 0x4]
- mov r1, r9
- str r1, [sp, 0x8]
- subs r0, r4, r0
- movs r1, 0x18
- bl __divsi3
- adds r6, r0, 0
- mov r2, r9
- subs r0, r5, r2
- movs r1, 0x18
- bl __divsi3
- adds r7, r0, 0
- movs r0, 0
- mov r9, r0
- mov r1, sp
- adds r1, 0x4
- str r1, [sp, 0x14]
-_080467BE:
- ldr r0, [sp, 0x4]
- adds r0, r6
- str r0, [sp, 0x4]
- ldr r2, [sp, 0x14]
- ldr r0, [r2, 0x4]
- adds r0, r7
- str r0, [r2, 0x4]
- ldr r0, [sp, 0x10]
- bl sub_8009C7C
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- mov r0, r8
- str r1, [r0, 0x1C]
- add r1, sp, 0x4
- bl sub_804535C
- mov r1, r10
- lsls r3, r1, 24
- lsrs r3, 24
- movs r0, 0
- str r0, [sp]
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0
- bl sub_80462AC
- movs r0, 0x13
- bl sub_803E46C
- ldr r2, [sp, 0x10]
- adds r2, 0x55
- str r2, [sp, 0x10]
- movs r0, 0x3
- mov r1, r9
- ands r0, r1
- cmp r0, 0
- bne _08046810
- movs r2, 0x1
- add r10, r2
-_08046810:
- movs r0, 0x7
- mov r1, r10
- ands r1, r0
- mov r10, r1
- movs r2, 0x1
- add r9, r2
- mov r0, r9
- cmp r0, 0x17
- ble _080467BE
-_08046822:
- mov r0, r8
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_8045394
- movs r0, 0
- mov r1, r8
- str r0, [r1, 0x1C]
- str r0, [sp]
- mov r0, r8
- ldr r1, [sp, 0xC]
- movs r2, 0x1
- movs r3, 0xFF
- bl sub_80462AC
- movs r0, 0x13
- bl sub_803E46C
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046858: .4byte gUnknown_203B418
-_0804685C: .4byte 0x00018210
- thumb_func_end sub_8046734
-
- thumb_func_start sub_8046860
-sub_8046860:
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- adds r5, r2, 0
- str r3, [sp]
- adds r2, r4, 0
- adds r3, r5, 0
- bl sub_804687C
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8046860
-
- thumb_func_start sub_804687C
-sub_804687C:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _08046970
- add sp, r4
- ldr r5, _08046974
- add r5, sp
- str r0, [r5]
- movs r0, 0xA5
- lsls r0, 3
- add r0, sp
- str r1, [r0]
- mov r8, r2
- ldr r1, _08046978
- add r1, sp
- str r3, [r1]
- movs r1, 0
- movs r7, 0x1D
- ldr r0, _0804697C
- add r0, sp
-_080468A8:
- strb r1, [r0]
- subs r0, 0x1
- subs r7, 0x1
- cmp r7, 0
- bge _080468A8
- movs r7, 0
- movs r2, 0xAD
- lsls r2, 3
- add r2, sp
- ldr r2, [r2]
- cmp r7, r2
- blt _080468C2
- b _080469DE
-_080468C2:
- ldr r3, _08046980
- mov r9, r3
- ldr r5, _08046984
- movs r0, 0
- ldrsh r5, [r5, r0]
- ldr r0, _08046988
- add r0, sp
- str r5, [r0]
-_080468D2:
- mov r1, r8
- ldrh r0, [r1]
- ldr r1, _0804698C
- ands r4, r1
- orrs r4, r0
- mov r2, r8
- ldrh r0, [r2, 0x2]
- lsls r0, 16
- mov r3, r9
- ands r4, r3
- orrs r4, r0
- movs r5, 0
- adds r0, r7, 0x1
- mov r10, r0
- ldr r1, _08046984
- ldr r2, _08046988
- add r2, sp
- ldr r2, [r2]
- cmp r2, 0x63
- beq _080469B0
- ldr r3, _08046990
- add r3, sp
- ldr r0, _08046994
- add r0, sp
- str r3, [r0]
-_08046904:
- ldr r0, _08046998
- add r0, sp
- adds r6, r0, r5
- ldrb r0, [r6]
- cmp r0, 0
- bne _0804699C
- lsls r2, r5, 2
- adds r2, r1
- ldrh r0, [r2]
- mov r1, r8
- ldrh r1, [r1]
- adds r0, r1
- lsls r0, 16
- lsrs r0, 16
- ldr r1, _0804698C
- ands r4, r1
- orrs r4, r0
- ldrh r0, [r2, 0x2]
- mov r2, r8
- ldrh r2, [r2, 0x2]
- adds r0, r2
- lsls r0, 16
- mov r3, r9
- ands r4, r3
- orrs r4, r0
- lsls r0, r4, 16
- asrs r0, 16
- asrs r1, r4, 16
- bl sub_804954C
- adds r2, r0, 0
- ldrh r1, [r2]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _0804699C
- movs r3, 0x80
- lsls r3, 2
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- bne _0804699C
- ldr r0, [r2, 0x14]
- cmp r0, 0
- bne _0804699C
- lsls r0, r7, 2
- ldr r5, _08046994
- add r5, sp
- ldr r5, [r5]
- adds r0, r5, r0
- str r4, [r0]
- movs r0, 0x1
- strb r0, [r6]
- b _080469CE
- .align 2, 0
-_08046970: .4byte 0xfffffab8
-_08046974: .4byte 0x00000524
-_08046978: .4byte 0x0000052c
-_0804697C: .4byte 0x00000521
-_08046980: .4byte 0x0000ffff
-_08046984: .4byte gUnknown_80F4468
-_08046988: .4byte 0x00000534
-_0804698C: .4byte 0xffff0000
-_08046990: .4byte 0x0000048c
-_08046994: .4byte 0x00000544
-_08046998: .4byte 0x00000504
-_0804699C:
- adds r5, 0x1
- cmp r5, 0x1D
- bgt _080469B0
- lsls r0, r5, 2
- ldr r1, _08046A18
- adds r0, r1
- movs r2, 0
- ldrsh r0, [r0, r2]
- cmp r0, 0x63
- bne _08046904
-_080469B0:
- movs r3, 0
- cmp r3, 0
- bne _080469CE
- ldr r1, _08046A1C
- add r1, sp
- lsls r0, r7, 2
- adds r1, r0
- ldrh r2, [r1]
- mov r0, r9
- orrs r0, r2
- strh r0, [r1]
- ldrh r2, [r1, 0x2]
- mov r0, r9
- orrs r0, r2
- strh r0, [r1, 0x2]
-_080469CE:
- mov r7, r10
- movs r5, 0xAD
- lsls r5, 3
- add r5, sp
- ldr r5, [r5]
- cmp r7, r5
- bge _080469DE
- b _080468D2
-_080469DE:
- movs r1, 0
- mov r9, r1
- movs r7, 0
- movs r0, 0xAD
- lsls r0, 3
- add r0, sp
- ldr r0, [r0]
- cmp r7, r0
- blt _080469F2
- b _08046B0A
-_080469F2:
- movs r2, 0
- mov r8, r2
-_080469F6:
- ldr r0, _08046A1C
- add r0, sp
- lsls r2, r7, 2
- adds r3, r0, r2
- movs r4, 0
- ldrsh r0, [r3, r4]
- cmp r0, 0
- bge _08046A20
- movs r0, 0x74
- muls r0, r7
- add r0, sp
- adds r0, 0x4
- mov r5, r8
- str r5, [r0]
- movs r0, 0x1
- mov r9, r0
- b _08046AFA
- .align 2, 0
-_08046A18: .4byte gUnknown_80F4468
-_08046A1C: .4byte 0x0000048c
-_08046A20:
- movs r0, 0x74
- adds r6, r7, 0
- muls r6, r0
- mov r4, sp
- adds r4, r6
- adds r4, 0x4
- movs r0, 0x3
- str r0, [r4]
- adds r0, r4, 0
- adds r0, 0x24
- mov r1, r8
- strb r1, [r0]
- adds r1, r4, 0
- adds r1, 0x20
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r4, 0
- adds r0, 0x22
- mov r5, r8
- strb r5, [r0]
- add r0, sp, 0x74
- adds r0, r6
- ldr r1, _08046B2C
- add r1, sp
- ldr r1, [r1]
- adds r2, r1, r2
- str r2, [r0]
- add r0, sp, 0x8
- adds r0, r6
- ldr r1, [r3]
- str r1, [r0]
- movs r2, 0xA5
- lsls r2, 3
- add r2, sp
- ldr r2, [r2]
- movs r5, 0
- ldrsh r0, [r2, r5]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r5, 0x2
- ldrsh r0, [r2, r5]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 3
- adds r2, 0x4
- lsls r2, 8
- adds r0, r4, 0
- movs r5, 0xA8
- lsls r5, 3
- add r5, sp
- str r3, [r5]
- bl sub_8045394
- mov r0, r8
- strh r0, [r4, 0x26]
- ldr r4, _08046B30
- add r4, sp
- lsls r5, r7, 3
- adds r4, r5
- movs r1, 0xA8
- lsls r1, 3
- add r1, sp
- ldr r3, [r1]
- movs r2, 0
- ldrsh r1, [r3, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 8
- add r1, sp, 0x10
- adds r1, r6
- ldr r1, [r1]
- subs r0, r1
- movs r1, 0x18
- movs r2, 0xA8
- lsls r2, 3
- add r2, sp
- str r3, [r2]
- bl __divsi3
- str r0, [r4]
- movs r4, 0x97
- lsls r4, 3
- add r4, sp
- adds r4, r5
- movs r5, 0xA8
- lsls r5, 3
- add r5, sp
- ldr r3, [r5]
- movs r0, 0x2
- ldrsh r1, [r3, r0]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- adds r0, 0x4
- lsls r0, 8
- add r1, sp, 0x14
- adds r1, r6
- ldr r1, [r1]
- subs r0, r1
- movs r1, 0x18
- bl __divsi3
- str r0, [r4]
- movs r1, 0x1
-_08046AFA:
- adds r7, 0x1
- movs r2, 0xAD
- lsls r2, 3
- add r2, sp
- ldr r2, [r2]
- cmp r7, r2
- bge _08046B0A
- b _080469F6
-_08046B0A:
- cmp r1, 0
- bne _08046B54
- movs r3, 0xAD
- lsls r3, 3
- add r3, sp
- ldr r3, [r3]
- cmp r3, 0x1
- ble _08046B3C
- ldr r0, _08046B34
- ldr r1, [r0]
- ldr r4, _08046B38
- add r4, sp
- ldr r0, [r4]
- bl sub_80522A8
- b _08046C7C
- .align 2, 0
-_08046B2C: .4byte 0x0000052c
-_08046B30: .4byte 0x000004b4
-_08046B34: .4byte gUnknown_80F945C
-_08046B38: .4byte 0x00000524
-_08046B3C:
- ldr r0, _08046B4C
- ldr r1, [r0]
- ldr r5, _08046B50
- add r5, sp
- ldr r0, [r5]
- bl sub_80522A8
- b _08046C7C
- .align 2, 0
-_08046B4C: .4byte gUnknown_80F943C
-_08046B50: .4byte 0x00000524
-_08046B54:
- mov r0, r9
- cmp r0, 0
- beq _08046B68
- ldr r0, _08046C90
- ldr r1, [r0]
- ldr r2, _08046C94
- add r2, sp
- ldr r0, [r2]
- bl sub_80522A8
-_08046B68:
- movs r3, 0
- mov r9, r3
- ldr r0, _08046C98
- ldr r0, [r0]
- ldr r4, _08046C9C
- adds r0, r4
- ldrb r0, [r0]
- movs r5, 0xA6
- lsls r5, 3
- add r5, sp
- str r0, [r5]
- mov r10, r3
- movs r6, 0
-_08046B82:
- movs r7, 0
- mov r0, r10
- adds r0, 0x55
- movs r1, 0xA7
- lsls r1, 3
- add r1, sp
- str r0, [r1]
- adds r2, r6, 0x1
- ldr r3, _08046CA0
- add r3, sp
- str r2, [r3]
- movs r4, 0xAD
- lsls r4, 3
- add r4, sp
- ldr r4, [r4]
- cmp r7, r4
- bge _08046C14
- mov r5, r9
- lsls r5, 24
- mov r8, r5
-_08046BAA:
- movs r0, 0x74
- adds r5, r7, 0
- muls r5, r0
- mov r4, sp
- adds r4, r5
- adds r4, 0x4
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08046C06
- ldr r0, _08046CA4
- add r0, sp
- lsls r2, r7, 3
- adds r0, r2
- ldr r1, [r0]
- movs r0, 0x97
- lsls r0, 3
- add r0, sp
- adds r0, r2
- ldr r2, [r0]
- adds r0, r4, 0
- bl sub_804539C
- mov r0, r10
- bl sub_8009C7C
- add r2, sp, 0x20
- adds r2, r5
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- str r1, [r2]
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- movs r2, 0xA6
- lsls r2, 3
- add r2, sp
- ldr r1, [r2]
- movs r2, 0x1
- mov r4, r8
- lsrs r3, r4, 24
- bl sub_80462AC
-_08046C06:
- adds r7, 0x1
- movs r5, 0xAD
- lsls r5, 3
- add r5, sp
- ldr r5, [r5]
- cmp r7, r5
- blt _08046BAA
-_08046C14:
- movs r0, 0x13
- bl sub_803E46C
- movs r0, 0xA7
- lsls r0, 3
- add r0, sp
- ldr r0, [r0]
- mov r10, r0
- movs r0, 0x3
- ands r0, r6
- cmp r0, 0
- bne _08046C30
- movs r1, 0x1
- add r9, r1
-_08046C30:
- movs r0, 0x7
- mov r2, r9
- ands r2, r0
- mov r9, r2
- ldr r3, _08046CA0
- add r3, sp
- ldr r6, [r3]
- cmp r6, 0x17
- ble _08046B82
- movs r4, 0xAD
- lsls r4, 3
- add r4, sp
- ldr r4, [r4]
- cmp r4, 0
- ble _08046C7C
- ldr r0, _08046CA8
- add r0, sp
- ldr r5, [r0]
- ldr r4, _08046CAC
- add r4, sp
- movs r1, 0xAD
- lsls r1, 3
- add r1, sp
- ldr r7, [r1]
-_08046C60:
- movs r2, 0
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08046C72
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80460F8
-_08046C72:
- adds r5, 0x4
- adds r4, 0x4
- subs r7, 0x1
- cmp r7, 0
- bne _08046C60
-_08046C7C:
- movs r3, 0xA9
- lsls r3, 3
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046C90: .4byte gUnknown_80F947C
-_08046C94: .4byte 0x00000524
-_08046C98: .4byte gUnknown_203B418
-_08046C9C: .4byte 0x00018210
-_08046CA0: .4byte 0x0000053c
-_08046CA4: .4byte 0x000004b4
-_08046CA8: .4byte 0x0000052c
-_08046CAC: .4byte 0x0000048c
- thumb_func_end sub_804687C
-
- thumb_func_start sub_8046CB0
-sub_8046CB0:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- ldr r0, [r0, 0x70]
- adds r3, r0, 0
- adds r0, 0x60
- ldrb r2, [r0]
- movs r0, 0x1
- ands r0, r2
- cmp r0, 0
- beq _08046CDC
- movs r0, 0x8
- ands r0, r2
- cmp r0, 0
- bne _08046CDC
- adds r0, r3, 0
- adds r0, 0x62
- ldrb r0, [r0]
- cmp r0, r1
- bne _08046CDC
- movs r0, 0x1
- b _08046CDE
-_08046CDC:
- movs r0, 0
-_08046CDE:
- pop {r1}
- bx r1
- thumb_func_end sub_8046CB0
-
- thumb_func_start sub_8046CE4
-sub_8046CE4:
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- movs r0, 0x64
- bl sub_8084100
- adds r1, r0, 0
- movs r2, 0
- ldr r3, _08046D04
-_08046CF6:
- lsls r0, r1, 2
- adds r0, r3
- ldr r0, [r0]
- cmp r0, r5
- bgt _08046D08
- strb r1, [r4, 0x1]
- b _08046D18
- .align 2, 0
-_08046D04: .4byte gUnknown_810A3F0
-_08046D08:
- lsrs r0, r1, 31
- adds r0, r1, r0
- asrs r1, r0, 1
- adds r2, 0x1
- cmp r2, 0xC7
- ble _08046CF6
- movs r0, 0x1
- strb r0, [r4, 0x1]
-_08046D18:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8046CE4
-
- thumb_func_start sub_8046D20
-sub_8046D20:
- push {r4,r5,lr}
- ldr r4, _08046D5C
- ldr r0, [r4]
- ldrb r5, [r0, 0x8]
- bl sub_8046D70
- ldr r1, [r4]
- strb r0, [r1, 0x8]
- ldr r0, [r4]
- ldrb r0, [r0, 0x8]
- cmp r0, 0x1
- bne _08046D64
- cmp r5, 0
- bne _08046D64
- ldr r0, _08046D60
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl sub_8052B8C
- adds r1, r0, 0
- cmp r1, 0x1
- bne _08046D64
- ldr r0, [r4]
- strb r1, [r0, 0x4]
- ldr r1, [r4]
- movs r0, 0x2
- strb r0, [r1, 0x11]
- b _08046D68
- .align 2, 0
-_08046D5C: .4byte gUnknown_203B418
-_08046D60: .4byte gUnknown_80FA408
-_08046D64:
- bl sub_8046D8C
-_08046D68:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8046D20
-
- thumb_func_start sub_8046D70
-sub_8046D70:
- push {lr}
- ldr r0, _08046D84
- ldr r0, [r0]
- ldr r1, _08046D88
- adds r0, r1
- ldrb r0, [r0]
- movs r0, 0
- pop {r1}
- bx r1
- .align 2, 0
-_08046D84: .4byte gUnknown_203B418
-_08046D88: .4byte 0x0000068a
- thumb_func_end sub_8046D70
-
- thumb_func_start sub_8046D8C
-sub_8046D8C:
- push {r4-r7,lr}
- sub sp, 0xC
- movs r6, 0
- ldr r5, _08046EDC
- movs r4, 0
-_08046D96:
- movs r7, 0
- movs r0, 0x1
- negs r0, r0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- movs r3, 0
- ldr r2, [r5]
-_08046DA6:
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046DC8
- ldrb r0, [r2, 0x2]
- cmp r0, 0x79
- bne _08046DB8
- str r3, [sp]
-_08046DB8:
- ldrb r0, [r2, 0x2]
- cmp r0, 0x77
- bne _08046DC0
- str r3, [sp, 0x4]
-_08046DC0:
- ldrb r0, [r2, 0x2]
- cmp r0, 0x78
- bne _08046DC8
- str r3, [sp, 0x8]
-_08046DC8:
- adds r2, 0x4
- adds r3, 0x1
- cmp r3, 0x13
- ble _08046DA6
- ldr r1, [sp]
- cmp r1, 0
- blt _08046E1E
- ldr r0, [sp, 0x4]
- cmp r0, 0
- blt _08046E1E
- ldr r0, [sp, 0x8]
- cmp r0, 0
- blt _08046E1E
- movs r7, 0x1
- movs r6, 0x1
- lsls r1, 2
- ldr r0, [r5]
- adds r1, r0
- strb r4, [r1, 0x2]
- strb r4, [r1, 0x1]
- strb r4, [r1]
- ldr r0, [sp, 0x4]
- lsls r0, 2
- ldr r1, [r5]
- adds r0, r1
- strb r4, [r0, 0x2]
- strb r4, [r0, 0x1]
- strb r4, [r0]
- ldr r0, [sp, 0x8]
- lsls r0, 2
- ldr r1, [r5]
- adds r0, r1
- strb r4, [r0, 0x2]
- strb r4, [r0, 0x1]
- strb r4, [r0]
- ldr r1, [sp]
- lsls r1, 2
- ldr r0, [r5]
- adds r0, r1
- movs r1, 0x7A
- movs r2, 0
- bl sub_8090A8C
-_08046E1E:
- cmp r7, 0
- bne _08046D96
- bl sub_80910B4
- cmp r6, 0
- beq _08046ED4
- bl sub_8083600
- adds r4, r0, 0
- ldr r0, _08046EE0
- bl sub_80855E4
- ldr r6, _08046EE4
- ldr r0, [r6]
- ldr r5, _08046EE8
- adds r0, r5
- movs r1, 0x1
- strb r1, [r0]
- ldr r0, _08046EEC
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- movs r0, 0x3C
- movs r1, 0x41
- bl sub_803E708
- ldr r0, _08046EF0
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- adds r0, r4, 0
- movs r1, 0x4
- movs r2, 0xA
- movs r3, 0
- bl sub_80869E4
- adds r0, r4, 0
- adds r0, 0xC
- movs r1, 0x86
- lsls r1, 1
- movs r2, 0
- bl sub_80416E0
- adds r0, r4, 0
- movs r1, 0xD7
- bl sub_80421C0
- movs r0, 0x3C
- movs r1, 0x41
- bl sub_803E708
- ldr r0, _08046EF4
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08046EF8
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- movs r0, 0xA
- movs r1, 0x41
- bl sub_803E708
- movs r0, 0xD4
- bl sub_8083E38
- ldr r0, _08046EFC
- ldr r1, [r0]
- movs r0, 0
- movs r2, 0x1
- bl PrintFieldMessage
- movs r0, 0xA
- movs r1, 0x41
- bl sub_803E708
- movs r0, 0x1
- bl sub_804178C
- ldr r0, [r6]
- adds r0, r5
- strb r7, [r0]
- bl sub_8040A84
-_08046ED4:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08046EDC: .4byte gUnknown_203B460
-_08046EE0: .4byte sub_80861A8
-_08046EE4: .4byte gUnknown_203B418
-_08046EE8: .4byte 0x0001356c
-_08046EEC: .4byte gUnknown_810531C
-_08046EF0: .4byte gUnknown_8105360
-_08046EF4: .4byte gUnknown_202DF98
-_08046EF8: .4byte gUnknown_81053A8
-_08046EFC: .4byte gUnknown_8105434
- thumb_func_end sub_8046D8C
-
- thumb_func_start sub_8046F00
-sub_8046F00:
- push {r4-r7,lr}
- adds r4, r0, 0
- ldrb r0, [r4, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bne _08046F7C
- ldrb r0, [r4, 0x2]
- bl sub_80913CC
- lsls r0, 16
- lsrs r7, r0, 16
- ldrb r0, [r4, 0x2]
- bl sub_80915A0
- lsls r0, 24
- cmp r0, 0
- bne _08046F6E
- movs r6, 0
-_08046F2A:
- ldr r0, _08046F74
- ldr r0, [r0]
- lsls r1, r6, 2
- ldr r2, _08046F78
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08046F68
- ldr r0, [r4, 0x70]
- movs r2, 0x2
- ldrsh r1, [r0, r2]
- adds r0, r7, 0
- bl sub_808E190
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_8070B6C
- lsls r0, 24
- cmp r0, 0
- beq _08046F64
- movs r5, 0
-_08046F64:
- cmp r5, 0
- bne _08046F7C
-_08046F68:
- adds r6, 0x1
- cmp r6, 0x3
- ble _08046F2A
-_08046F6E:
- movs r0, 0
- b _08046F7E
- .align 2, 0
-_08046F74: .4byte gUnknown_203B418
-_08046F78: .4byte 0x0001357c
-_08046F7C:
- movs r0, 0x1
-_08046F7E:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8046F00
-
- thumb_func_start sub_8046F84
-sub_8046F84:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r5, 0
- ldr r4, _08047000
- movs r6, 0x1
- movs r3, 0
-_08046F90:
- lsls r1, r5, 2
- ldr r0, [r4]
- adds r2, r0, r1
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08046FAE
- ldrb r0, [r2]
- ands r0, r7
- cmp r0, 0
- beq _08046FAE
- strb r3, [r2, 0x2]
- strb r3, [r2, 0x1]
- strb r3, [r2]
-_08046FAE:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08046F90
- bl sub_80910B4
- movs r5, 0
- movs r6, 0
-_08046FBC:
- ldr r0, _08047004
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08047008
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _08046FF4
- ldr r0, [r4, 0x70]
- adds r2, r0, 0
- adds r2, 0x60
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08046FF4
- ldrb r0, [r2]
- ands r0, r7
- cmp r0, 0
- beq _08046FF4
- strb r6, [r2, 0x2]
- strb r6, [r2, 0x1]
- strb r6, [r2]
-_08046FF4:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08046FBC
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08047000: .4byte gUnknown_203B460
-_08047004: .4byte gUnknown_203B418
-_08047008: .4byte 0x0001357c
- thumb_func_end sub_8046F84
-
- thumb_func_start sub_804700C
-sub_804700C:
- push {r4,r5,lr}
- movs r5, 0
- ldr r4, _08047078
-_08047012:
- lsls r1, r5, 2
- ldr r0, [r4]
- adds r2, r0, r1
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804702C
- adds r0, r2, 0
- movs r1, 0x46
- movs r2, 0
- bl sub_8090A8C
-_0804702C:
- adds r5, 0x1
- cmp r5, 0x13
- ble _08047012
- bl sub_80910B4
- movs r5, 0
-_08047038:
- ldr r0, _0804707C
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _08047080
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _0804706C
- ldr r0, [r4, 0x70]
- adds r2, r0, 0
- adds r2, 0x60
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0804706C
- adds r0, r2, 0
- movs r1, 0x46
- movs r2, 0
- bl sub_8090A8C
-_0804706C:
- adds r5, 0x1
- cmp r5, 0x3
- ble _08047038
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08047078: .4byte gUnknown_203B460
-_0804707C: .4byte gUnknown_203B418
-_08047080: .4byte 0x0001357c
- thumb_func_end sub_804700C
-
- thumb_func_start sub_8047084
-sub_8047084:
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r5, 0
- ldr r0, _080470E8
- ldr r2, [r0]
- movs r3, 0x1
-_08047090:
- ldrb r1, [r2]
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _080470A2
- ldrb r0, [r2]
- ands r0, r6
- cmp r0, 0
- bne _080470E2
-_080470A2:
- adds r2, 0x4
- adds r5, 0x1
- cmp r5, 0x13
- ble _08047090
- bl sub_80910B4
- movs r5, 0
-_080470B0:
- ldr r0, _080470EC
- ldr r0, [r0]
- lsls r1, r5, 2
- ldr r2, _080470F0
- adds r0, r2
- adds r0, r1
- ldr r4, [r0]
- adds r0, r4, 0
- bl sub_80450E0
- lsls r0, 24
- cmp r0, 0
- beq _080470F4
- ldr r0, [r4, 0x70]
- adds r2, r0, 0
- adds r2, 0x60
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080470F4
- ldrb r0, [r2]
- ands r0, r6
- cmp r0, 0
- beq _080470F4
-_080470E2:
- movs r0, 0x1
- b _080470FC
- .align 2, 0
-_080470E8: .4byte gUnknown_203B460
-_080470EC: .4byte gUnknown_203B418
-_080470F0: .4byte 0x0001357c
-_080470F4:
- adds r5, 0x1
- cmp r5, 0x3
- ble _080470B0
- movs r0, 0
-_080470FC:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8047084
-
- thumb_func_start sub_8047104
-sub_8047104:
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
-_0804710A:
- ldr r0, _08047154
- lsls r1, r6, 2
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08047142
- ldrb r0, [r4, 0x2]
- cmp r0, 0x69
- bne _08047132
- adds r0, r4, 0
- bl sub_80915D4
- bl sub_80913A0
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x1]
- strb r5, [r4]
-_08047132:
- ldrb r1, [r4]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _08047142
- strb r5, [r4, 0x2]
- strb r5, [r4, 0x1]
- strb r5, [r4]
-_08047142:
- adds r6, 0x1
- cmp r6, 0x13
- ble _0804710A
- bl sub_80910B4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08047154: .4byte gUnknown_203B460
- thumb_func_end sub_8047104
-
- thumb_func_start sub_8047158
-sub_8047158:
- push {r4-r6,lr}
- movs r3, 0
- ldr r5, _0804718C
- movs r6, 0x1
- movs r4, 0x4
-_08047162:
- lsls r1, r3, 2
- ldr r0, [r5]
- adds r2, r0, r1
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08047180
- adds r0, r4, 0
- ands r0, r1
- cmp r0, 0
- beq _08047180
- movs r0, 0xFB
- ands r0, r1
- strb r0, [r2]
-_08047180:
- adds r3, 0x1
- cmp r3, 0x13
- ble _08047162
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804718C: .4byte gUnknown_203B460
- thumb_func_end sub_8047158
-
- thumb_func_start sub_8047190
-sub_8047190:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r4, _080472E8
- add sp, r4
- mov r9, r0
- str r1, [sp, 0x214]
- ldr r6, _080472EC
- ldr r1, [r6]
- ldr r4, _080472F0
- adds r0, r1, r4
- ldrb r0, [r0]
- str r0, [sp, 0x220]
- mov r8, r3
- adds r7, r1, 0
- adds r7, 0xC0
- movs r0, 0x3
- str r0, [r7]
- adds r0, r1, 0
- adds r0, 0xE4
- movs r4, 0
- strb r4, [r0]
- subs r0, 0x4
- movs r5, 0x1
- strb r5, [r0]
- adds r0, 0x2
- strb r4, [r0]
- ldr r0, [sp, 0x214]
- str r0, [r7, 0x70]
- str r4, [r7, 0x1C]
- ldr r0, [r2]
- str r0, [r7, 0x4]
- movs r1, 0
- ldrsh r0, [r2, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r3, 0x2
- ldrsh r0, [r2, r3]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 11
- adds r0, r7, 0
- bl sub_8045394
- strh r4, [r7, 0x26]
- str r4, [sp, 0x224]
- mov r0, r9
- bl sub_80450F8
- cmp r0, 0x1
- bne _08047214
- mov r0, r9
- movs r1, 0x2A
- bl sub_8046CB0
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x224]
-_08047214:
- ldr r0, [sp, 0x260]
- movs r1, 0x2
- ldrsh r0, [r0, r1]
- str r0, [sp, 0x218]
- movs r2, 0
- str r2, [sp, 0x21C]
- ldr r0, [r6]
- ldr r3, _080472F4
- adds r0, r3
- strb r5, [r0]
-_08047228:
- ldr r4, [r7, 0x4]
- mov r10, r4
- ldr r1, [sp, 0x260]
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _080472AE
- ldrb r0, [r1]
- cmp r0, 0
- bne _080472AE
- movs r2, 0x4
- ldrsh r0, [r7, r2]
- ldr r2, _080472F8
- mov r3, r8
- lsls r4, r3, 2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r1, [r2, r3]
- adds r0, r1
- movs r3, 0x6
- ldrsh r1, [r7, r3]
- movs r3, 0x2
- ldrsh r2, [r2, r3]
- adds r1, r2
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- str r4, [sp, 0x230]
- cmp r0, 0
- bne _080472AE
- movs r6, 0
- ldr r1, _080472FC
- mov r4, r10
- lsls r0, r4, 16
- asrs r0, 16
- str r0, [sp, 0x23C]
- ldr r0, [sp, 0x230]
- adds r5, r0, r1
- asrs r2, r4, 16
-_0804727A:
- ldrb r4, [r5]
- cmp r4, 0x7
- bgt _080472A6
- ldr r0, _080472F8
- lsls r1, r4, 2
- adds r1, r0
- movs r3, 0
- ldrsh r0, [r1, r3]
- ldr r3, [sp, 0x23C]
- adds r0, r3
- movs r3, 0x2
- ldrsh r1, [r1, r3]
- adds r1, r2
- str r2, [sp, 0x234]
- bl sub_804954C
- ldrh r1, [r0]
- movs r0, 0x3
- ands r0, r1
- ldr r2, [sp, 0x234]
- cmp r0, 0
- bne _08047300
-_080472A6:
- adds r5, 0x1
- adds r6, 0x1
- cmp r6, 0x3
- ble _0804727A
-_080472AE:
- ldr r0, _080472F8
- mov r4, r8
- lsls r2, r4, 2
- adds r3, r2, r0
- ldrh r1, [r3]
- ldrh r0, [r7, 0x4]
- adds r1, r0
- strh r1, [r7, 0x4]
- ldrh r0, [r3, 0x2]
- ldrh r4, [r7, 0x6]
- adds r0, r4
- strh r0, [r7, 0x6]
- lsls r1, 16
- asrs r1, 16
- str r2, [sp, 0x230]
- cmp r1, 0
- blt _080472E0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- blt _080472E0
- cmp r1, 0x37
- bgt _080472E0
- cmp r0, 0x1F
- ble _08047304
-_080472E0:
- movs r0, 0x2
- mov r10, r0
- b _0804744C
- .align 2, 0
-_080472E8: .4byte 0xfffffdc0
-_080472EC: .4byte gUnknown_203B418
-_080472F0: .4byte 0x00018210
-_080472F4: .4byte 0x0001c05e
-_080472F8: .4byte gUnknown_80F4448
-_080472FC: .4byte gUnknown_80F4D64
-_08047300:
- mov r8, r4
- b _080472AE
-_08047304:
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r0, 10
- str r0, [sp, 0x228]
- movs r2, 0x2
- ldrsh r0, [r3, r2]
- lsls r0, 10
- str r0, [sp, 0x22C]
- mov r3, r8
- lsls r6, r3, 24
- movs r5, 0x5
-_0804731A:
- movs r4, 0
- adds r0, r7, 0
- ldr r1, [sp, 0x228]
- ldr r2, [sp, 0x22C]
- bl sub_804539C
- bl sub_804AF74
- lsls r0, 24
- movs r2, 0
- cmp r0, 0
- beq _08047334
- movs r2, 0x3
-_08047334:
- ldr r0, [r7, 0xC]
- cmp r0, 0
- bge _0804733C
- adds r0, 0xFF
-_0804733C:
- asrs r0, 8
- adds r0, 0x8
- ldr r1, [r7, 0x10]
- cmp r1, 0
- bge _08047348
- adds r1, 0xFF
-_08047348:
- asrs r1, 8
- adds r1, 0x10
- bl sub_8083568
- lsls r0, 24
- cmp r0, 0
- beq _08047358
- movs r4, 0x1
-_08047358:
- movs r0, 0x1
- str r0, [sp]
- adds r0, r7, 0
- ldr r1, [sp, 0x220]
- movs r2, 0
- lsrs r3, r6, 24
- bl sub_80462AC
- lsls r0, 24
- cmp r0, 0
- beq _08047370
- movs r4, 0x1
-_08047370:
- cmp r4, 0
- beq _0804737A
- movs r0, 0x12
- bl sub_803E46C
-_0804737A:
- subs r5, 0x1
- cmp r5, 0
- bge _0804731A
- movs r4, 0x4
- ldrsh r0, [r7, r4]
- movs r2, 0x6
- ldrsh r1, [r7, r2]
- bl sub_804954C
- adds r5, r0, 0
- ldrh r1, [r5]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080473A2
- ldr r3, [sp, 0x260]
- ldrb r0, [r3]
- cmp r0, 0
- bne _080473A2
- b _0804757A
-_080473A2:
- ldr r1, [r5, 0x10]
- cmp r1, 0
- beq _08047436
- movs r4, 0
- ldr r2, [sp, 0x260]
- ldrb r0, [r2]
- cmp r0, 0
- bne _080473CE
- adds r0, r1, 0
- bl sub_80450F8
- cmp r0, 0x1
- bne _080473CE
- ldr r0, [r5, 0x10]
- movs r1, 0x26
- bl sub_8046CB0
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
-_080473CE:
- cmp r4, 0
- beq _080473E0
- movs r3, 0x4
- add r8, r3
- movs r0, 0x7
- mov r4, r8
- ands r4, r0
- mov r8, r4
- b _08047436
-_080473E0:
- movs r6, 0x1
- ldr r0, [r5, 0x10]
- bl sub_80450F8
- cmp r0, 0x1
- bne _08047406
- add r4, sp, 0x208
- adds r0, r4, 0
- ldr r1, _080474B8
- bl sub_8092A88
- ldr r0, [r5, 0x10]
- adds r1, r4, 0
- bl sub_80571F0
- lsls r0, 24
- cmp r0, 0
- beq _08047406
- movs r6, 0
-_08047406:
- cmp r6, 0
- beq _08047436
- ldr r0, [sp, 0x21C]
- cmp r0, 0x3F
- bgt _0804742C
- lsls r0, 3
- mov r4, sp
- adds r4, r0
- adds r4, 0x8
- ldr r0, [r5, 0x10]
- str r0, [r4]
- ldr r1, [r5, 0x10]
- mov r0, r9
- bl sub_8047930
- strb r0, [r4, 0x4]
- ldr r1, [sp, 0x21C]
- adds r1, 0x1
- str r1, [sp, 0x21C]
-_0804742C:
- ldr r2, [sp, 0x260]
- ldrb r0, [r2]
- cmp r0, 0
- bne _08047436
- b _08047574
-_08047436:
- ldr r3, [sp, 0x218]
- subs r3, 0x1
- str r3, [sp, 0x218]
- cmp r3, 0
- ble _08047442
- b _08047228
-_08047442:
- movs r4, 0x1
- mov r10, r4
- mov r0, r8
- lsls r0, 2
- str r0, [sp, 0x230]
-_0804744C:
- ldr r0, _080474BC
- ldr r0, [r0]
- ldr r1, _080474C0
- adds r0, r1
- movs r1, 0
- strb r1, [r0]
- ldr r2, [sp, 0x21C]
- cmp r2, 0
- ble _0804752C
- add r5, sp, 0x8
- adds r6, r2, 0
-_08047462:
- ldr r4, [r5]
- ldrb r0, [r5, 0x4]
- cmp r0, 0
- beq _080474D0
- ldr r0, _080474C4
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _080474C8
- ldr r1, [sp, 0x214]
- bl sub_8045C08
- ldr r0, _080474CC
- ldr r2, [r0]
- mov r0, r9
- adds r1, r4, 0
- bl sub_80522F4
- mov r0, r9
- adds r1, r4, 0
- bl sub_807A96C
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, [sp, 0x224]
- cmp r3, 0
- bne _080474A4
- ldr r3, [sp, 0x260]
- ldrb r0, [r3]
- cmp r0, 0
- beq _080474A6
-_080474A4:
- movs r1, 0x1
-_080474A6:
- str r4, [sp]
- ldr r4, [sp, 0x214]
- str r4, [sp, 0x4]
- movs r0, 0x1
- mov r3, r9
- bl sub_80479B8
- b _08047524
- .align 2, 0
-_080474B8: .4byte 0x00000195
-_080474BC: .4byte gUnknown_203B418
-_080474C0: .4byte 0x0001c05e
-_080474C4: .4byte gUnknown_202DF98
-_080474C8: .4byte gUnknown_202DE58
-_080474CC: .4byte gUnknown_80F94C4
-_080474D0:
- ldr r1, [sp, 0x260]
- ldrb r0, [r1]
- cmp r0, 0
- bne _080474E2
- ldr r2, [sp, 0x21C]
- cmp r2, 0x1
- bne _080474E2
- movs r3, 0x1
- mov r10, r3
-_080474E2:
- ldr r0, _0804750C
- adds r1, r4, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08047510
- ldr r1, [sp, 0x214]
- bl sub_8045BF8
- ldr r1, [sp, 0x260]
- ldrb r0, [r1]
- cmp r0, 0
- beq _08047518
- ldr r0, _08047514
- ldr r2, [r0]
- mov r0, r9
- adds r1, r4, 0
- bl sub_80522F4
- b _08047524
- .align 2, 0
-_0804750C: .4byte gUnknown_202DF98
-_08047510: .4byte gUnknown_202DE58
-_08047514: .4byte gUnknown_80F94D8
-_08047518:
- ldr r0, _08047564
- ldr r2, [r0]
- mov r0, r9
- adds r1, r4, 0
- bl sub_80522F4
-_08047524:
- adds r5, 0x8
- subs r6, 0x1
- cmp r6, 0
- bne _08047462
-_0804752C:
- ldr r2, _08047568
- ldr r3, [sp, 0x230]
- adds r2, r3, r2
- movs r4, 0
- ldrsh r1, [r2, r4]
- lsls r1, 19
- lsrs r1, 16
- ldr r4, _0804756C
- add r3, sp, 0x210
- ldr r0, [r3]
- ands r0, r4
- orrs r0, r1
- str r0, [r3]
- movs r4, 0x2
- ldrsh r1, [r2, r4]
- lsls r1, 19
- ldr r2, _08047570
- ands r0, r2
- orrs r0, r1
- str r0, [r3]
- mov r0, r10
- cmp r0, 0x1
- beq _08047584
- cmp r0, 0x1
- bcc _080475A8
- cmp r0, 0x2
- beq _08047596
- b _080475A8
- .align 2, 0
-_08047564: .4byte gUnknown_80F94F0
-_08047568: .4byte gUnknown_80F4448
-_0804756C: .4byte 0xffff0000
-_08047570: .4byte 0x0000ffff
-_08047574:
- movs r1, 0
- mov r10, r1
- b _0804744C
-_0804757A:
- mov r2, r10
- str r2, [r7, 0x4]
- movs r3, 0x1
- mov r10, r3
- b _0804744C
-_08047584:
- add r0, sp, 0x210
- str r0, [sp]
- mov r0, r9
- adds r1, r7, 0
- ldr r2, [sp, 0x214]
- movs r3, 0x1
- bl sub_804652C
- b _080475A8
-_08047596:
- ldr r0, _080475BC
- ldr r1, [sp, 0x214]
- bl sub_8045C08
- ldr r0, _080475C0
- ldr r1, [r0]
- mov r0, r9
- bl sub_80522A8
-_080475A8:
- movs r3, 0x90
- lsls r3, 2
- add sp, r3
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080475BC: .4byte gUnknown_202DE58
-_080475C0: .4byte gUnknown_80F9530
- thumb_func_end sub_8047190
-
- thumb_func_start sub_80475C4
-sub_80475C4:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x44
- str r0, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r7, r2, 0
- str r3, [sp, 0x18]
- ldr r0, _08047848
- mov r8, r0
- ldr r2, [r0]
- ldr r1, _0804784C
- adds r0, r2, r1
- ldrb r0, [r0]
- str r0, [sp, 0x24]
- movs r4, 0
- movs r5, 0
- adds r3, r2, 0
- adds r3, 0xC0
- str r3, [sp, 0x1C]
- movs r0, 0x3
- str r0, [r3]
- adds r0, r2, 0
- adds r0, 0xE4
- strb r4, [r0]
- adds r1, r2, 0
- adds r1, 0xE0
- movs r0, 0x1
- strb r0, [r1]
- adds r0, r2, 0
- adds r0, 0xE2
- strb r4, [r0]
- ldr r0, [sp, 0x14]
- str r0, [r3, 0x70]
- str r5, [r3, 0x1C]
- ldr r0, [r7]
- str r0, [r3, 0x4]
- movs r1, 0
- ldrsh r0, [r7, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 3
- adds r1, 0x4
- lsls r1, 8
- movs r2, 0x2
- ldrsh r0, [r7, r2]
- lsls r2, r0, 1
- adds r2, r0
- lsls r2, 3
- adds r2, 0x4
- lsls r2, 8
- ldr r0, [sp, 0x1C]
- bl sub_8045394
- ldr r3, [sp, 0x1C]
- strh r4, [r3, 0x26]
- movs r0, 0x1
- str r0, [sp, 0x20]
- movs r1, 0
- str r1, [sp, 0x28]
- ldr r0, [sp, 0x10]
- bl sub_80450F8
- cmp r0, 0x1
- bne _0804765E
- ldr r0, [sp, 0x10]
- movs r1, 0x2A
- bl sub_8046CB0
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- str r1, [sp, 0x28]
-_0804765E:
- adds r0, r7, 0
- bl sub_803F428
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r4, r1, 31
- ldr r0, [sp, 0x18]
- bl sub_803F428
- lsls r0, 24
- cmp r0, 0
- beq _0804767C
- movs r4, 0x1
-_0804767C:
- mov r2, r8
- ldr r0, [r2]
- ldr r3, _08047850
- adds r0, r3
- add r1, sp, 0x20
- ldrb r1, [r1]
- strb r1, [r0]
- cmp r4, 0
- bne _08047690
- b _080477D0
-_08047690:
- ldr r2, [sp, 0x1C]
- movs r3, 0x4
- ldrsh r0, [r2, r3]
- ldr r1, [sp, 0x18]
- movs r2, 0
- ldrsh r1, [r1, r2]
- mov r9, r1
- subs r1, r0, r1
- cmp r1, 0
- bge _080476A6
- negs r1, r1
-_080476A6:
- ldr r3, [sp, 0x1C]
- movs r2, 0x6
- ldrsh r0, [r3, r2]
- ldr r3, [sp, 0x18]
- movs r2, 0x2
- ldrsh r3, [r3, r2]
- mov r10, r3
- subs r0, r3
- cmp r0, 0
- bge _080476BC
- negs r0, r0
-_080476BC:
- adds r1, r0
- lsls r0, r1, 1
- adds r0, r1
- lsls r4, r0, 2
- adds r3, r4, 0
- adds r3, 0xC
- str r3, [sp, 0x30]
- cmp r3, 0x3F
- ble _080476D2
- movs r0, 0x40
- str r0, [sp, 0x30]
-_080476D2:
- movs r1, 0
- str r1, [sp, 0x3C]
- movs r0, 0x80
- lsls r0, 12
- adds r1, r4, 0
- bl __divsi3
- str r0, [sp, 0x40]
- movs r2, 0
- ldrsh r1, [r7, r2]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 11
- mov r8, r0
- movs r3, 0x2
- ldrsh r1, [r7, r3]
- lsls r0, r1, 1
- adds r0, r1
- lsls r7, r0, 11
- mov r1, r9
- lsls r0, r1, 1
- add r0, r9
- lsls r0, 11
- mov r2, r8
- subs r0, r2
- adds r1, r4, 0
- bl __divsi3
- str r0, [sp, 0x34]
- mov r3, r10
- lsls r0, r3, 1
- add r0, r10
- lsls r0, 11
- subs r0, r7
- adds r1, r4, 0
- bl __divsi3
- str r0, [sp, 0x38]
- subs r0, r4, 0x3
- cmp r0, 0
- ble _080477D0
- str r0, [sp, 0x2C]
-_08047726:
- movs r0, 0
- mov r10, r0
- ldr r0, [sp, 0x3C]
- cmp r0, 0
- bge _08047732
- adds r0, 0xFF
-_08047732:
- asrs r0, 8
- bl sub_8009C7C
- ldr r2, [sp, 0x30]
- adds r1, r0, 0
- muls r1, r2
- movs r0, 0x80
- lsls r0, 3
- mov r2, r8
- adds r3, r2, r0
- adds r2, r7, r0
- ldr r0, [sp, 0x1C]
- str r1, [r0, 0x1C]
- mov r0, r8
- cmp r0, 0
- bge _08047754
- adds r0, 0xFF
-_08047754:
- asrs r0, 8
- adds r0, 0x8
- mov r9, r0
- adds r0, r7, 0
- cmp r7, 0
- bge _08047762
- adds r0, 0xFF
-_08047762:
- asrs r0, 8
- adds r4, r0, 0
- adds r4, 0x10
- ldr r1, [sp, 0x3C]
- ldr r0, [sp, 0x40]
- adds r1, r0
- str r1, [sp, 0x3C]
- ldr r0, [sp, 0x1C]
- adds r1, r3, 0
- bl sub_8045394
- bl sub_804AF74
- lsls r0, 24
- movs r2, 0
- cmp r0, 0
- beq _08047786
- movs r2, 0x3
-_08047786:
- mov r0, r9
- adds r1, r4, 0
- bl sub_8083568
- lsls r0, 24
- cmp r0, 0
- beq _08047798
- movs r1, 0x1
- mov r10, r1
-_08047798:
- movs r0, 0x1
- str r0, [sp]
- ldr r0, [sp, 0x1C]
- ldr r1, [sp, 0x24]
- movs r2, 0
- movs r3, 0xFF
- bl sub_80462AC
- lsls r0, 24
- cmp r0, 0
- beq _080477B2
- movs r2, 0x1
- mov r10, r2
-_080477B2:
- mov r3, r10
- cmp r3, 0
- beq _080477BE
- movs r0, 0x17
- bl sub_803E46C
-_080477BE:
- ldr r0, [sp, 0x34]
- add r8, r0
- ldr r1, [sp, 0x38]
- adds r7, r1
- ldr r2, [sp, 0x2C]
- subs r2, 0x1
- str r2, [sp, 0x2C]
- cmp r2, 0
- bne _08047726
-_080477D0:
- ldr r3, [sp, 0x18]
- ldr r0, [r3]
- ldr r1, [sp, 0x1C]
- str r0, [r1, 0x4]
- ldr r0, _08047848
- ldr r0, [r0]
- ldr r2, _08047850
- adds r0, r2
- movs r1, 0
- strb r1, [r0]
- movs r1, 0
- ldrsh r0, [r3, r1]
- movs r2, 0x2
- ldrsh r1, [r3, r2]
- bl sub_804954C
- adds r4, r0, 0
- ldr r0, [r4, 0x10]
- cmp r0, 0
- bne _080477FA
- b _08047904
-_080477FA:
- movs r3, 0x1
- mov r8, r3
- movs r7, 0
- bl sub_80450F8
- cmp r0, 0x1
- bne _08047834
- ldr r0, [r4, 0x10]
- movs r1, 0x26
- bl sub_8046CB0
- lsls r0, 24
- lsrs r0, 24
- negs r1, r0
- orrs r1, r0
- lsrs r7, r1, 31
- ldr r1, _08047854
- add r0, sp, 0x8
- bl sub_8092A88
- ldr r0, [r4, 0x10]
- add r1, sp, 0x8
- bl sub_80571F0
- lsls r0, 24
- cmp r0, 0
- beq _08047834
- movs r0, 0
- mov r8, r0
-_08047834:
- mov r1, r8
- cmp r1, 0
- beq _08047904
- ldr r1, [r4, 0x10]
- adds r5, r1, 0
- cmp r7, 0
- beq _0804785C
- ldr r0, _08047858
- ands r6, r0
- b _0804786E
- .align 2, 0
-_08047848: .4byte gUnknown_203B418
-_0804784C: .4byte 0x00018210
-_08047850: .4byte 0x0001c05e
-_08047854: .4byte 0x00000195
-_08047858: .4byte 0xffffff00
-_0804785C:
- ldr r0, [sp, 0x10]
- bl sub_8047930
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _080478CC
- ands r1, r6
- adds r6, r1, 0
- orrs r6, r0
-_0804786E:
- ldr r0, _080478D0
- ldr r1, [sp, 0x14]
- bl sub_8045C08
- ldr r0, _080478D4
- adds r1, r5, 0
- movs r2, 0
- bl sub_8045B94
- lsls r0, r6, 24
- cmp r0, 0
- beq _080478DC
- adds r0, r5, 0
- movs r1, 0x8
- bl sub_806CE94
- ldr r0, _080478D8
- ldr r2, [r0]
- ldr r0, [sp, 0x10]
- adds r1, r5, 0
- bl sub_80522F4
- ldr r0, [sp, 0x10]
- adds r1, r5, 0
- bl sub_807A96C
- lsls r0, 24
- lsrs r2, r0, 24
- movs r1, 0
- ldr r3, [sp, 0x28]
- cmp r3, 0
- bne _080478B6
- ldr r0, [sp, 0x64]
- ldrb r0, [r0]
- cmp r0, 0
- beq _080478B8
-_080478B6:
- movs r1, 0x1
-_080478B8:
- str r5, [sp]
- ldr r0, [sp, 0x14]
- str r0, [sp, 0x4]
- movs r0, 0x1
- ldr r3, [sp, 0x10]
- bl sub_80479B8
- movs r1, 0
- str r1, [sp, 0x20]
- b _08047904
- .align 2, 0
-_080478CC: .4byte 0xffffff00
-_080478D0: .4byte gUnknown_202DE58
-_080478D4: .4byte gUnknown_202DF98
-_080478D8: .4byte gUnknown_80F94C4
-_080478DC:
- cmp r7, 0
- beq _080478F4
- ldr r0, _080478F0
- ldr r2, [r0]
- ldr r0, [sp, 0x10]
- adds r1, r5, 0
- bl sub_80522F4
- b _08047900
- .align 2, 0
-_080478F0: .4byte gUnknown_80F9510
-_080478F4:
- ldr r0, _0804792C
- ldr r2, [r0]
- ldr r0, [sp, 0x10]
- adds r1, r5, 0
- bl sub_80522F4
-_08047900:
- movs r2, 0x1
- str r2, [sp, 0x20]
-_08047904:
- ldr r3, [sp, 0x20]
- cmp r3, 0x1
- bne _0804791A
- movs r0, 0
- str r0, [sp]
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x1C]
- ldr r2, [sp, 0x14]
- movs r3, 0
- bl sub_804652C
-_0804791A:
- add sp, 0x44
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0804792C: .4byte gUnknown_80F94F0
- thumb_func_end sub_80475C4
-
- thumb_func_start sub_8047930
-sub_8047930:
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r1, [r5, 0x70]
- ldrb r0, [r1, 0x8]
- cmp r0, 0x1
- beq _0804794C
- adds r0, r1, 0
- adds r0, 0xA4
- ldrb r0, [r0]
- cmp r0, 0x4
- beq _0804794C
- cmp r0, 0x1
- bne _08047950
-_0804794C:
- movs r0, 0
- b _080479B0
-_08047950:
- movs r0, 0x64
- bl sub_8084100
- ldr r1, _08047980
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r6, 0
- cmp r0, r1
- bge _08047964
- movs r6, 0x1
-_08047964:
- adds r0, r4, 0
- bl sub_80450F8
- cmp r0, 0x1
- bne _08047994
- adds r0, r4, 0
- movs r1, 0x28
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _08047984
- movs r6, 0
- b _08047994
- .align 2, 0
-_08047980: .4byte gUnknown_80F4FA2
-_08047984:
- adds r0, r4, 0
- movs r1, 0x2A
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _08047994
- movs r6, 0x1
-_08047994:
- adds r0, r5, 0
- bl sub_80450F8
- cmp r0, 0x1
- bne _080479AE
- adds r0, r5, 0
- movs r1, 0x25
- bl sub_8046CB0
- lsls r0, 24
- cmp r0, 0
- beq _080479AE
- movs r6, 0
-_080479AE:
- adds r0, r6, 0
-_080479B0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8047930
-
- thumb_func_start sub_80479B8
-sub_80479B8:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x1C
- adds r4, r3, 0
- ldr r5, [sp, 0x3C]
- ldr r7, [sp, 0x40]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- cmp r6, 0
- beq _08047AD0
- cmp r1, 0
- bne _08047ABC
- movs r0, 0
- mov r8, r0
- ldr r1, [r5, 0x70]
- mov r9, r1
- ldrb r0, [r1, 0x6]
- cmp r0, 0
- beq _08047A20
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- cmp r0, 0
- beq _08047A3C
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08047A3C
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- eors r0, r1
- negs r1, r0
- orrs r1, r0
- lsrs r1, 31
- mov r8, r1
- b _08047A3C
-_08047A20:
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08047A3C
- adds r0, r5, 0
- movs r1, 0x2
- bl sub_80718D8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
-_08047A3C:
- adds r0, r5, 0
- bl sub_8070C60
- lsls r0, 24
- cmp r0, 0
- beq _08047A4C
- movs r0, 0
- mov r8, r0
-_08047A4C:
- mov r1, r8
- cmp r1, 0
- beq _08047ABC
- mov r0, r9
- adds r0, 0x60
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _08047ABC
- mov r1, r9
- ldrb r0, [r1, 0x8]
- cmp r0, 0x1
- bne _08047A76
- adds r1, r5, 0x4
- adds r0, r4, 0
- adds r2, r7, 0
- bl sub_80464C8
- bl _080482BA
-_08047A76:
- ldr r0, _08047AAC
- bl sub_8083E38
- ldr r0, _08047AB0
- adds r1, r7, 0
- bl sub_8045BF8
- ldr r0, _08047AB4
- adds r1, r5, 0
- movs r2, 0
- bl sub_8045B94
- ldr r0, _08047AB8
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80522F4
- ldr r0, [r7]
- mov r1, r9
- str r0, [r1, 0x60]
- adds r0, r5, 0
- bl sub_806A6E8
- bl _080482BA
- .align 2, 0
-_08047AAC: .4byte 0x0000014d
-_08047AB0: .4byte gUnknown_202DE58
-_08047AB4: .4byte gUnknown_202DF98
-_08047AB8: .4byte gUnknown_80FDBB8
-_08047ABC:
- cmp r6, 0
- beq _08047AD0
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_8042390
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_806F450
-_08047AD0:
- ldrb r1, [r7]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08047B2C
- ldr r0, _08047B1C
- adds r1, r7, 0
- bl sub_8045BF8
- ldr r0, _08047B20
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80522F4
- cmp r6, 0
- beq _08047B30
- ldr r0, _08047B24
- movs r1, 0
- ldrsh r2, [r0, r1]
- add r0, sp, 0x18
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _08047B28
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl sub_806F370
- adds r0, r4, 0
- bl sub_8071DA4
- b _080482BA
- .align 2, 0
-_08047B1C: .4byte gUnknown_202DE58
-_08047B20: .4byte gUnknown_80FE3E8
-_08047B24: .4byte gUnknown_80F4FAE
-_08047B28: .4byte 0x00000217
-_08047B2C:
- cmp r6, 0
- bne _08047B38
-_08047B30:
- adds r0, r5, 0
- adds r1, r7, 0
- bl sub_804245C
-_08047B38:
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _08047B56
- movs r0, 0
- str r0, [sp]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x5
- movs r3, 0
- bl sub_8078B5C
-_08047B56:
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- beq _08047B72
- ldrb r0, [r7, 0x2]
- bl sub_8090BD0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xA
- bne _08047B9C
-_08047B72:
- cmp r6, 0
- beq _08047B88
- ldr r0, _08047B84
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, sp
- adds r0, 0x19
- b _08048284
- .align 2, 0
-_08047B84: .4byte gUnknown_80F4FAC
-_08047B88:
- ldr r0, _08047B98
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80522F4
- b _080482B4
- .align 2, 0
-_08047B98: .4byte gUnknown_80FE458
-_08047B9C:
- ldrb r0, [r7, 0x2]
- subs r0, 0x1
- cmp r0, 0xE8
- bls _08047BA6
- b _08048276
-_08047BA6:
- lsls r0, 2
- ldr r1, _08047BB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_08047BB0: .4byte _08047BB4
- .align 2, 0
-_08047BB4:
- .4byte _08047F58
- .4byte _08047F70
- .4byte _08047F88
- .4byte _08047FA0
- .4byte _08047FB8
- .4byte _08047FD0
- .4byte _08047FF0
- .4byte _08047FE8
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048004
- .4byte _0804825E
- .4byte _08048010
- .4byte _0804801A
- .4byte _0804804C
- .4byte _08048276
- .4byte _0804802E
- .4byte _0804809C
- .4byte _08048038
- .4byte _08048024
- .4byte _080480BA
- .4byte _080480C4
- .4byte _08048042
- .4byte _0804806A
- .4byte _08048060
- .4byte _08048056
- .4byte _0804807E
- .4byte _080480B0
- .4byte _08048074
- .4byte _080480D8
- .4byte _080480CE
- .4byte _08048092
- .4byte _08048088
- .4byte _080480A6
- .4byte _080480E4
- .4byte _080480EE
- .4byte _080480F8
- .4byte _08048102
- .4byte _0804810C
- .4byte _08048212
- .4byte _08048122
- .4byte _0804813C
- .4byte _0804812A
- .4byte _08048146
- .4byte _08048152
- .4byte _0804815E
- .4byte _0804816A
- .4byte _08048176
- .4byte _08048182
- .4byte _0804818E
- .4byte _0804819A
- .4byte _080481A6
- .4byte _080481B2
- .4byte _080481BE
- .4byte _080481CA
- .4byte _080481D6
- .4byte _080481E2
- .4byte _080481EE
- .4byte _080481FA
- .4byte _08048206
- .4byte _08048212
- .4byte _08048220
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _0804823A
- .4byte _08048252
- .4byte _08048246
- .4byte _0804826A
- .4byte _0804822E
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048276
- .4byte _08048116
-_08047F58:
- ldr r0, _08047F6C
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047F6C: .4byte gUnknown_80F503A
-_08047F70:
- ldr r0, _08047F84
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x2
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047F84: .4byte gUnknown_80F503C
-_08047F88:
- ldr r0, _08047F9C
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x3
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047F9C: .4byte gUnknown_80F503E
-_08047FA0:
- ldr r0, _08047FB4
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x4
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047FB4: .4byte gUnknown_80F5040
-_08047FB8:
- ldr r0, _08047FCC
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x5
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047FCC: .4byte gUnknown_80F5042
-_08047FD0:
- ldr r0, _08047FE4
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x6
- bl sub_80482FC
- b _080482B4
- .align 2, 0
-_08047FE4: .4byte gUnknown_80F5044
-_08047FE8:
- ldr r0, _08047FEC
- b _08047FF2
- .align 2, 0
-_08047FEC: .4byte gUnknown_80F5048
-_08047FF0:
- ldr r0, _08048000
-_08047FF2:
- movs r1, 0
- ldrsh r2, [r0, r1]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048340
- b _080482B4
- .align 2, 0
-_08048000: .4byte gUnknown_80F5046
-_08048004:
- adds r0, r4, 0
- adds r1, r5, 0
- mov r2, r10
- bl sub_8048364
- b _080482B4
-_08048010:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048374
- b _080482B4
-_0804801A:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804839C
- b _080482B4
-_08048024:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80483D4
- b _080482B4
-_0804802E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80483F4
- b _080482B4
-_08048038:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048400
- b _080482B4
-_08048042:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804840C
- b _080482B4
-_0804804C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804841C
- b _080482B4
-_08048056:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804849C
- b _080482B4
-_08048060:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048428
- b _080482B4
-_0804806A:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048450
- b _080482B4
-_08048074:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048480
- b _080482B4
-_0804807E:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80482D4
- b _080482B4
-_08048088:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048490
- b _080482B4
-_08048092:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80484A8
- b _080482B4
-_0804809C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80484DC
- b _080482B4
-_080480A6:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80484BC
- b _080482B4
-_080480B0:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80484C8
- b _080482B4
-_080480BA:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80484E8
- b _080482B4
-_080480C4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048524
- b _080482B4
-_080480CE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80485B0
- b _080482B4
-_080480D8:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_804869C
- b _080482B4
-_080480E4:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80483C4
- b _080482B4
-_080480EE:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_804891C
- b _080482B4
-_080480F8:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048928
- b _080482B4
-_08048102:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048934
- b _080482B4
-_0804810C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048940
- b _080482B4
-_08048116:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl nullsub_94
- b _080482B4
-_08048122:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x64
- b _08048130
-_0804812A:
- ldr r2, _08048138
- adds r0, r4, 0
- adds r1, r5, 0
-_08048130:
- movs r3, 0xA
- bl sub_80487CC
- b _080482B4
- .align 2, 0
-_08048138: .4byte 0x000003e7
-_0804813C:
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8048E04
- b _080482B4
-_08048146:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x1
- bl sub_80487E0
- b _080482B4
-_08048152:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x2
- bl sub_80487E0
- b _080482B4
-_0804815E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x3
- bl sub_80487E0
- b _080482B4
-_0804816A:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x4
- bl sub_80487E0
- b _080482B4
-_08048176:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x5
- bl sub_80487E0
- b _080482B4
-_08048182:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x6
- bl sub_80487E0
- b _080482B4
-_0804818E:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x7
- bl sub_80487E0
- b _080482B4
-_0804819A:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x8
- bl sub_80487E0
- b _080482B4
-_080481A6:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x9
- bl sub_80487E0
- b _080482B4
-_080481B2:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xA
- bl sub_80487E0
- b _080482B4
-_080481BE:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xB
- bl sub_80487E0
- b _080482B4
-_080481CA:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xC
- bl sub_80487E0
- b _080482B4
-_080481D6:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xD
- bl sub_80487E0
- b _080482B4
-_080481E2:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xE
- bl sub_80487E0
- b _080482B4
-_080481EE:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xF
- bl sub_80487E0
- b _080482B4
-_080481FA:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x10
- bl sub_80487E0
- b _080482B4
-_08048206:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x11
- bl sub_80487E0
- b _080482B4
-_08048212:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0x32
- movs r3, 0x5
- bl sub_80487CC
- b _080482B4
-_08048220:
- adds r0, r4, 0
- adds r1, r5, 0
- movs r2, 0xA
- movs r3, 0
- bl sub_80487CC
- b _080482B4
-_0804822E:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048DB8
- b _080482B4
-_0804823A:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048EB0
- b _080482B4
-_08048246:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048EC4
- b _080482B4
-_08048252:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048ED8
- b _080482B4
-_0804825E:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048EEC
- b _080482B4
-_0804826A:
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_8048F00
- b _080482B4
-_08048276:
- cmp r6, 0
- beq _080482A8
- ldr r0, _080482A0
- movs r1, 0
- ldrsh r2, [r0, r1]
- mov r0, sp
- adds r0, 0x1A
-_08048284:
- str r0, [sp]
- movs r1, 0
- str r1, [sp, 0x4]
- ldr r0, _080482A4
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- str r1, [sp, 0x10]
- str r1, [sp, 0x14]
- adds r0, r4, 0
- adds r1, r5, 0
- movs r3, 0x1
- bl sub_806F370
- b _080482B4
- .align 2, 0
-_080482A0: .4byte gUnknown_80F4FAC
-_080482A4: .4byte 0x00000217
-_080482A8:
- ldr r0, _080482CC
- ldr r2, [r0]
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_80522F4
-_080482B4:
- adds r0, r4, 0
- bl sub_8071DA4
-_080482BA:
- add sp, 0x1C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080482CC: .4byte gUnknown_80FE458
- thumb_func_end sub_80479B8
-
- thumb_func_start nullsub_205
-nullsub_205:
- bx lr
- thumb_func_end nullsub_205
-
- thumb_func_start sub_80482D4
-sub_80482D4:
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, _080482F8
- adds r0, r4, 0
- movs r2, 0x1
- bl sub_808417C
- adds r2, r0, 0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl sub_8075C58
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080482F8: .4byte gUnknown_80F4E74
- thumb_func_end sub_80482D4
-
- thumb_func_start sub_80482FC
-sub_80482FC:
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- mov r8, r0
- mov r9, r1
- adds r6, r2, 0
- lsls r4, r3, 24
- lsrs r4, 24
- add r5, sp, 0x4
- ldr r1, _0804833C
- adds r0, r5, 0
- bl sub_8092A88
- strb r6, [r5, 0x4]
- movs r3, 0x80
- lsls r3, 1
- str r4, [sp]
- mov r0, r8
- mov r1, r9
- add r2, sp, 0x4
- bl sub_8055640
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0804833C: .4byte 0x00000195
- thumb_func_end sub_80482FC
-
- thumb_func_start sub_8048340
-sub_8048340:
- push {r4,lr}
- sub sp, 0x18
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r3, 0x84
- lsls r3, 2
- str r3, [sp, 0x8]
- str r4, [sp, 0xC]
- str r4, [sp, 0x10]
- str r4, [sp, 0x14]
- movs r3, 0x1
- bl sub_806F370
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8048340
-
- thumb_func_start sub_8048364
-sub_8048364:
- push {lr}
- lsls r3, r2, 24
- lsrs r3, 24
- movs r2, 0x1
- bl sub_8079F20
- pop {r0}
- bx r0
- thumb_func_end sub_8048364
-
- thumb_func_start sub_8048374
-sub_8048374:
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _08048394
- movs r3, 0
- ldrsh r2, [r2, r3]
- ldr r3, _08048398
- movs r4, 0
- ldrsh r3, [r3, r4]
- movs r4, 0x1
- str r4, [sp]
- bl sub_8077C44
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_08048394: .4byte gUnknown_80F4FB6
-_08048398: .4byte gUnknown_80F4FB8
- thumb_func_end sub_8048374
-
- thumb_func_start sub_804839C
-sub_804839C:
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _080483BC
- movs r3, 0
- ldrsh r2, [r2, r3]
- ldr r3, _080483C0
- movs r4, 0
- ldrsh r3, [r3, r4]
- movs r4, 0x1
- str r4, [sp]
- bl sub_8077C44
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080483BC: .4byte gUnknown_80F4FBA
-_080483C0: .4byte gUnknown_80F4FBC
- thumb_func_end sub_804839C
-
- thumb_func_start sub_80483C4
-sub_80483C4:
- push {lr}
- ldr r2, _080483D0
- bl sub_80792F8
- pop {r0}
- bx r0
- .align 2, 0
-_080483D0: .4byte 0x000003e7
- thumb_func_end sub_80483C4
-
- thumb_func_start sub_80483D4
-sub_80483D4:
- push {r4,lr}
- sub sp, 0x4
- ldr r2, _080483F0
- movs r4, 0
- ldrsh r3, [r2, r4]
- movs r2, 0x1
- str r2, [sp]
- movs r2, 0
- bl sub_8077C44
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080483F0: .4byte gUnknown_80F4FBE
- thumb_func_end sub_80483D4
-
- thumb_func_start sub_80483F4
-sub_80483F4:
- push {lr}
- bl sub_8079140
- pop {r0}
- bx r0
- thumb_func_end sub_80483F4
-
- thumb_func_start sub_8048400
-sub_8048400:
- push {lr}
- bl sub_80791D8
- pop {r0}
- bx r0
- thumb_func_end sub_8048400
-
- thumb_func_start sub_804840C
-sub_804840C:
- push {lr}
- movs r2, 0
- movs r3, 0x1
- bl sub_8077910
- pop {r0}
- bx r0
- thumb_func_end sub_804840C
-
- thumb_func_start sub_804841C
-sub_804841C:
- push {lr}
- bl sub_8079270
- pop {r0}
- bx r0
- thumb_func_end sub_804841C
-
- thumb_func_start sub_8048428
-sub_8048428:
- push {lr}
- adds r3, r0, 0
- ldr r0, [r1, 0x70]
- adds r0, 0xAC
- ldrb r0, [r0]
- cmp r0, 0x4
- bne _0804843E
- adds r0, r3, 0
- bl sub_807A290
- b _08048448
-_0804843E:
- ldr r0, _0804844C
- ldr r2, [r0]
- adds r0, r3, 0
- bl sub_80522F4
-_08048448:
- pop {r0}
- bx r0
- .align 2, 0
-_0804844C: .4byte gUnknown_80F89F4
- thumb_func_end sub_8048428
-
- thumb_func_start sub_8048450
-sub_8048450:
- push {lr}
- adds r3, r0, 0
- ldr r0, [r1, 0x70]
- adds r0, 0xAC
- ldrb r0, [r0]
- subs r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bhi _0804846C
- adds r0, r3, 0
- bl sub_807A290
- b _08048476
-_0804846C:
- ldr r0, _0804847C
- ldr r2, [r0]
- adds r0, r3, 0
- bl sub_80522F4
-_08048476:
- pop {r0}
- bx r0
- .align 2, 0
-_0804847C: .4byte gUnknown_80F89F4
- thumb_func_end sub_8048450
-
.align 2,0 @ Don't pad with nop
diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s
new file mode 100644
index 0000000..861a75c
--- /dev/null
+++ b/asm/code_80428A0.s
@@ -0,0 +1,11310 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_8042A84
+sub_8042A84:
+ push {r4-r7,lr}
+ adds r4, r1, 0
+ adds r7, r2, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+ movs r6, 0x80
+ lsls r6, 2
+ adds r0, r4, 0
+ bl sub_8042768
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042AF8
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_804151C
+ adds r0, r7, 0
+ movs r1, 0x42
+ bl sub_803E708
+ adds r5, r4, 0
+ adds r5, 0x20
+_08042AB4:
+ ldr r1, [r4, 0x1C]
+ ldr r0, _08042B00
+ cmp r1, r0
+ bgt _08042AF0
+ movs r0, 0x42
+ bl sub_803E46C
+ ldr r1, [r4, 0x1C]
+ adds r1, r6
+ str r1, [r4, 0x1C]
+ movs r0, 0x80
+ lsls r0, 1
+ adds r6, r0
+ ldr r0, [r4, 0x10]
+ subs r0, r1
+ cmp r0, 0
+ bge _08042AD8
+ adds r0, 0xFF
+_08042AD8:
+ asrs r1, r0, 8
+ ldr r0, _08042B04
+ ldr r0, [r0]
+ ldr r2, _08042B08
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ subs r1, r0
+ movs r0, 0x8
+ negs r0, r0
+ cmp r1, r0
+ bge _08042AB4
+_08042AF0:
+ movs r0, 0
+ strb r0, [r5]
+ bl sub_804178C
+_08042AF8:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042B00: .4byte 0x0000c7ff
+_08042B04: .4byte gUnknown_203B418
+_08042B08: .4byte 0x000181f2
+ thumb_func_end sub_8042A84
+
+ thumb_func_start sub_8042B0C
+sub_8042B0C:
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0x9F
+ lsls r0, 1
+ movs r2, 0x5
+ bl sub_8042A84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042B0C
+
+ thumb_func_start sub_8042B20
+sub_8042B20:
+ push {lr}
+ adds r1, r0, 0
+ movs r0, 0xDE
+ lsls r0, 1
+ movs r2, 0xE
+ bl sub_8042A84
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042B20
+
+ thumb_func_start sub_8042B34
+sub_8042B34:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x28
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ movs r0, 0
+ mov r8, r0
+ bl sub_8085480
+ mov r10, r0
+ ldr r7, _08042CB0
+ movs r0, 0xCC
+ movs r1, 0x7
+ bl MemoryAlloc
+ str r0, [r7]
+ str r5, [r0]
+ adds r4, 0x1
+ lsls r4, 2
+ str r4, [r0, 0x8]
+ ldr r4, _08042CB4
+ lsls r0, r5, 1
+ adds r0, r5
+ lsls r0, 3
+ adds r0, r4
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ bl sub_800EE5C
+ bl sub_800EF64
+ movs r0, 0x46
+ bl sub_803E46C
+ ldr r0, [r7]
+ str r6, [r0, 0x4]
+ movs r5, 0
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042B8E
+ b _08042C9E
+_08042B8E:
+ mov r9, sp
+_08042B90:
+ mov r2, r8
+ lsls r6, r2, 3
+ ldr r0, [r7]
+ ldr r1, [r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r6, r0
+ ldr r3, _08042CB4
+ adds r0, r3
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ str r0, [sp]
+ str r5, [sp, 0x4]
+ movs r0, 0
+ str r0, [sp, 0x8]
+ mov r2, r10
+ ldr r0, [r2, 0xC]
+ cmp r0, 0
+ bge _08042BBA
+ adds r0, 0xFF
+_08042BBA:
+ asrs r0, 8
+ mov r3, r9
+ strh r0, [r3, 0xC]
+ mov r1, sp
+ mov r2, r10
+ ldr r0, [r2, 0x10]
+ cmp r0, 0
+ bge _08042BCC
+ adds r0, 0xFF
+_08042BCC:
+ asrs r0, 8
+ strh r0, [r1, 0xE]
+ movs r0, 0x2
+ bl RandomCapped
+ ldr r1, [r7]
+ lsls r4, r5, 2
+ adds r3, r1, 0
+ adds r3, 0x4C
+ adds r3, r4
+ ldr r2, [r1]
+ lsls r1, r2, 1
+ adds r1, r2
+ lsls r1, 3
+ adds r1, r6, r1
+ ldr r2, _08042CB4
+ adds r2, 0x4
+ adds r1, r2
+ ldr r1, [r1]
+ lsls r1, 1
+ adds r1, r0
+ str r1, [r3]
+ movs r0, 0xF0
+ bl RandomCapped
+ ldr r1, [r7]
+ adds r1, r4
+ adds r0, 0x98
+ adds r1, 0x8C
+ strh r0, [r1]
+ lsls r0, r5, 1
+ adds r0, 0x8
+ bl RandomCapped
+ ldr r1, [r7]
+ adds r2, r1, r4
+ adds r3, r0, 0
+ adds r3, 0x18
+ adds r1, r5, 0
+ cmp r5, 0
+ bge _08042C20
+ adds r1, r5, 0x3
+_08042C20:
+ asrs r1, 2
+ lsls r1, 2
+ subs r1, r5, r1
+ lsls r0, r1, 2
+ adds r0, r1
+ lsls r0, 3
+ subs r0, r3, r0
+ adds r1, r2, 0
+ adds r1, 0x8E
+ strh r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0x8C
+ ldrh r0, [r0]
+ mov r3, r9
+ strh r0, [r3, 0x10]
+ ldrh r0, [r1]
+ strh r0, [r3, 0x12]
+ movs r0, 0x4
+ str r0, [sp, 0x14]
+ ldr r0, _08042CB8
+ str r0, [sp, 0x18]
+ add r1, sp, 0x1C
+ ldr r0, _08042CBC
+ ldm r0!, {r2,r3,r6}
+ stm r1!, {r2,r3,r6}
+ mov r0, sp
+ bl sub_800E890
+ ldr r2, [r7]
+ adds r1, r2, 0
+ adds r1, 0xC
+ adds r1, r4
+ str r0, [r1]
+ movs r6, 0x1
+ add r8, r6
+ mov r0, r8
+ cmp r0, 0x2
+ bgt _08042C82
+ ldr r0, [r2]
+ lsls r1, r0, 1
+ adds r1, r0
+ add r1, r8
+ lsls r1, 3
+ ldr r2, _08042CB4
+ adds r1, r2
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ bne _08042C86
+_08042C82:
+ movs r6, 0
+ mov r8, r6
+_08042C86:
+ ldr r0, [sp]
+ bl sub_800ECA4
+ ldr r0, [r0, 0x4]
+ bl sub_800F15C
+ adds r5, 0x1
+ ldr r0, [r7]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042C9E
+ b _08042B90
+_08042C9E:
+ add sp, 0x28
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042CB0: .4byte gUnknown_203B414
+_08042CB4: .4byte gUnknown_80F6624
+_08042CB8: .4byte 0x0000ffff
+_08042CBC: .4byte gUnknown_80F683C
+ thumb_func_end sub_8042B34
+
+ thumb_func_start sub_8042CC0
+sub_8042CC0:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ sub sp, 0x4
+ movs r7, 0
+ ldr r2, _08042D20
+ ldr r1, [r2]
+ ldr r0, [r1, 0x4]
+ cmp r0, 0
+ beq _08042CDC
+ movs r7, 0x1
+ subs r0, 0x1
+ str r0, [r1, 0x4]
+_08042CDC:
+ movs r5, 0
+ ldr r0, [r2]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042D56
+ adds r6, r2, 0
+ movs r0, 0x98
+ negs r0, r0
+ mov r9, r0
+ movs r4, 0
+ ldr r1, _08042D24
+ mov r8, r1
+_08042CF4:
+ ldr r3, [r6]
+ adds r0, r3, r4
+ adds r2, r0, 0
+ adds r2, 0x8C
+ adds r0, r3, 0
+ adds r0, 0x4C
+ adds r0, r4
+ ldr r1, [r0]
+ ldrh r0, [r2]
+ subs r0, r1
+ strh r0, [r2]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, r9
+ bgt _08042D2E
+ ldr r0, [r3, 0x4]
+ cmp r0, 0
+ ble _08042D28
+ movs r0, 0x98
+ strh r0, [r2]
+ b _08042D30
+ .align 2, 0
+_08042D20: .4byte gUnknown_203B414
+_08042D24: .4byte 0x0000ff68
+_08042D28:
+ mov r0, r8
+ strh r0, [r2]
+ b _08042D30
+_08042D2E:
+ movs r7, 0x1
+_08042D30:
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ adds r1, r4, 0
+ adds r1, 0x8C
+ adds r2, r1
+ movs r1, 0
+ str r1, [sp]
+ movs r3, 0
+ bl sub_800E8AC
+ adds r4, 0x4
+ adds r5, 0x1
+ ldr r0, [r6]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042CF4
+_08042D56:
+ ldr r0, _08042D74
+ ldr r0, [r0]
+ ldr r1, _08042D78
+ adds r0, r1
+ bl sub_800E90C
+ adds r0, r7, 0
+ add sp, 0x4
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08042D74: .4byte gUnknown_203B418
+_08042D78: .4byte 0x000181f0
+ thumb_func_end sub_8042CC0
+
+ thumb_func_start sub_8042D7C
+sub_8042D7C:
+ push {r4-r6,lr}
+ ldr r1, _08042DD0
+ ldr r0, [r1]
+ cmp r0, 0
+ beq _08042DCA
+ movs r5, 0
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ bge _08042DBA
+ adds r6, r1, 0
+_08042D90:
+ ldr r0, [r6]
+ lsls r4, r5, 2
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042DB0
+ ldr r0, [r6]
+ adds r0, 0xC
+ adds r0, r4
+ ldr r0, [r0]
+ bl sub_800DC14
+_08042DB0:
+ adds r5, 0x1
+ ldr r0, [r6]
+ ldr r0, [r0, 0x8]
+ cmp r5, r0
+ blt _08042D90
+_08042DBA:
+ bl sub_800DBBC
+ ldr r4, _08042DD0
+ ldr r0, [r4]
+ bl MemoryFree
+ movs r0, 0
+ str r0, [r4]
+_08042DCA:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042DD0: .4byte gUnknown_203B414
+ thumb_func_end sub_8042D7C
+
+ thumb_func_start sub_8042DD4
+sub_8042DD4:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ movs r2, 0
+ ldr r0, _08042E04
+ mov r12, r0
+ ldr r3, _08042E08
+_08042DE4:
+ mov r1, r12
+ ldr r0, [r1]
+ adds r4, r0, r3
+ ldr r1, [r4]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ bne _08042E0C
+ str r5, [r4]
+ str r6, [r4, 0xC]
+ str r7, [r4, 0x4]
+ adds r0, r5, 0
+ bl sub_800E6D8
+ str r0, [r4, 0x8]
+ b _08042E14
+ .align 2, 0
+_08042E04: .4byte gUnknown_203B418
+_08042E08: .4byte 0x000005c4
+_08042E0C:
+ adds r3, 0x10
+ adds r2, 0x1
+ cmp r2, 0x2
+ ble _08042DE4
+_08042E14:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8042DD4
+
+ thumb_func_start sub_8042E1C
+sub_8042E1C:
+ push {r4-r6,lr}
+ movs r5, 0
+ ldr r6, _08042E44
+ ldr r4, _08042E48
+_08042E24:
+ ldr r0, [r6]
+ adds r0, r4
+ ldr r1, [r0]
+ movs r0, 0x1
+ negs r0, r0
+ cmp r1, r0
+ beq _08042E4C
+ adds r0, r1, 0
+ bl sub_800E9A8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08042E4C
+ movs r0, 0x1
+ b _08042E56
+ .align 2, 0
+_08042E44: .4byte gUnknown_203B418
+_08042E48: .4byte 0x000005c4
+_08042E4C:
+ adds r4, 0x10
+ adds r5, 0x1
+ cmp r5, 0x2
+ ble _08042E24
+ movs r0, 0
+_08042E56:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8042E1C
+
+ thumb_func_start sub_8042E5C
+sub_8042E5C:
+ push {r4-r7,lr}
+ ldr r7, _08042E90
+ ldr r6, _08042E94
+ movs r5, 0x2
+_08042E64:
+ ldr r0, [r7]
+ adds r4, r0, r6
+ ldr r0, [r4]
+ cmp r0, 0
+ blt _08042E82
+ bl sub_800E9A8
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _08042E82
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r4]
+ str r1, [r4, 0xC]
+_08042E82:
+ adds r6, 0x10
+ subs r5, 0x1
+ cmp r5, 0
+ bge _08042E64
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042E90: .4byte gUnknown_203B418
+_08042E94: .4byte 0x000005c4
+ thumb_func_end sub_8042E5C
+
+ thumb_func_start sub_8042E98
+sub_8042E98:
+ push {r4,r5,lr}
+ ldr r5, _08042EC0
+ movs r4, 0x1
+ negs r4, r4
+ movs r3, 0
+ ldr r2, _08042EC4
+ movs r1, 0x2
+_08042EA6:
+ ldr r0, [r5]
+ adds r0, r2
+ str r4, [r0]
+ str r3, [r0, 0x4]
+ str r3, [r0, 0xC]
+ adds r2, 0x10
+ subs r1, 0x1
+ cmp r1, 0
+ bge _08042EA6
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042EC0: .4byte gUnknown_203B418
+_08042EC4: .4byte 0x000005c4
+ thumb_func_end sub_8042E98
+
+ thumb_func_start sub_8042EC8
+sub_8042EC8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0xC
+ adds r6, r0, 0
+ mov r8, r1
+ movs r7, 0
+_08042ED6:
+ ldr r1, _08042F5C
+ lsls r0, r7, 4
+ ldr r2, _08042F60
+ adds r0, r2
+ ldr r1, [r1]
+ adds r4, r1, r0
+ ldr r0, [r4]
+ cmp r0, 0
+ blt _08042F4A
+ ldr r0, [r4, 0xC]
+ cmp r0, r6
+ bne _08042F4A
+ ldr r0, [r6, 0xC]
+ cmp r0, 0
+ bge _08042EF6
+ adds r0, 0xFF
+_08042EF6:
+ lsls r0, 8
+ lsrs r0, 16
+ ldr r1, _08042F64
+ ldr r2, [sp, 0x8]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp, 0x8]
+ ldr r1, [r6, 0x10]
+ cmp r1, 0
+ bge _08042F0C
+ adds r1, 0xFF
+_08042F0C:
+ lsls r1, 8
+ lsrs r1, 16
+ lsls r1, 16
+ ldr r0, _08042F68
+ ands r2, r0
+ orrs r2, r1
+ str r2, [sp, 0x8]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ ldr r5, [r6, 0x70]
+ ldr r2, [r4, 0x8]
+ subs r0, 0x1
+ cmp r2, r0
+ beq _08042F36
+ lsls r2, 24
+ lsrs r2, 24
+ add r0, sp, 0x4
+ adds r1, r6, 0
+ adds r1, 0x28
+ bl sub_800569C
+_08042F36:
+ ldr r0, [r4]
+ adds r1, r5, 0
+ adds r1, 0x46
+ ldrb r1, [r1]
+ str r1, [sp]
+ add r1, sp, 0x8
+ add r2, sp, 0x4
+ mov r3, r8
+ bl sub_800EB24
+_08042F4A:
+ adds r7, 0x1
+ cmp r7, 0x2
+ ble _08042ED6
+ add sp, 0xC
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08042F5C: .4byte gUnknown_203B418
+_08042F60: .4byte 0x000005c4
+_08042F64: .4byte 0xffff0000
+_08042F68: .4byte 0x0000ffff
+ thumb_func_end sub_8042EC8
+
+ thumb_func_start xxx_dungeon_8042F6C
+xxx_dungeon_8042F6C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r8, r0
+ ldr r1, _0804310C
+ movs r0, 0
+ strb r0, [r1]
+ mov r0, r8
+ ldrb r6, [r0, 0x8]
+ ldrb r1, [r0, 0x11]
+ mov r9, r1
+ ldrb r2, [r0, 0x10]
+ mov r10, r2
+ ldr r0, _08043110
+ mov r3, r8
+ ldr r1, [r3, 0x74]
+ str r1, [r0]
+ ldr r2, _08043114
+ ldr r0, [r3, 0x78]
+ str r0, [r2]
+ cmp r6, 0
+ bne _08042FA0
+ strb r6, [r1]
+_08042FA0:
+ ldr r2, [r2]
+ movs r1, 0
+ ldr r4, _08043118
+ ldr r5, _0804311C
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x8]
+ mov r3, r8
+ adds r3, 0x7C
+ str r3, [sp, 0xC]
+ movs r3, 0
+_08042FB6:
+ adds r0, r2, r1
+ strb r3, [r0]
+ adds r1, 0x1
+ cmp r1, r4
+ bls _08042FB6
+ movs r7, 0
+ movs r0, 0x64
+ strh r0, [r5]
+ cmp r6, 0
+ bne _0804300C
+ ldr r4, _08043114
+ ldr r0, [r4]
+ mov r5, r8
+ ldrb r1, [r5, 0xF]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r4]
+ ldr r3, _08043120
+ adds r2, r3
+ ldr r0, [r5, 0x14]
+ ldr r1, [r5, 0x18]
+ str r0, [r2]
+ str r1, [r2, 0x4]
+ ldrb r0, [r5, 0x4]
+ bl GetUnkC
+ ldr r1, [r4]
+ ldr r5, _08043124
+ adds r2, r1, r5
+ strh r0, [r2]
+ ldr r0, _08043128
+ adds r1, r0
+ strb r7, [r1]
+ mov r1, r8
+ ldrb r0, [r1, 0x4]
+ bl GetUnk3
+ ldr r1, [r4]
+ ldr r2, _0804312C
+ adds r1, r2
+ strb r0, [r1]
+_0804300C:
+ ldr r4, _08043114
+ ldr r0, [r4]
+ movs r3, 0xD3
+ lsls r3, 3
+ adds r0, r3
+ strb r7, [r0]
+ ldr r0, [r4]
+ ldr r5, _08043130
+ adds r0, r5
+ strb r7, [r0]
+ ldr r0, [r4]
+ mov r2, r8
+ ldrb r1, [r2, 0x9]
+ subs r3, 0x3C
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r2, 0xC]
+ subs r5, 0x3F
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r2, 0xA]
+ movs r2, 0xCB
+ lsls r2, 3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ mov r3, r8
+ ldrb r1, [r3, 0xB]
+ subs r5, 0x1
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r3, 0xD]
+ adds r2, 0x3
+ adds r0, r2
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldrb r1, [r3, 0xE]
+ ldr r3, _08043134
+ adds r0, r3
+ strb r1, [r0]
+ bl sub_8083F34
+ bl sub_803D4AC
+ bl sub_804513C
+ bl sub_8043CD8
+ bl sub_80495E4
+ bl sub_803E250
+ bl sub_8040130
+ bl sub_8040124
+ movs r0, 0x1
+ bl sub_803F27C
+ ldr r1, _08043138
+ ldr r5, _0804313C
+ adds r0, r5, 0
+ strh r0, [r1]
+ movs r0, 0x1
+ movs r1, 0x14
+ bl sub_80095CC
+ movs r0, 0
+ bl sub_800DAC0
+ movs r0, 0x1
+ bl xxx_update_some_bg_tiles
+ bl sub_803DF60
+ bl sub_803E02C
+ bl sub_8042E98
+ ldr r0, _08043140
+ strb r7, [r0]
+ cmp r6, 0
+ beq _080430C8
+ ldr r0, _08043110
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8081BF4
+ bl sub_8049840
+_080430C8:
+ mov r0, r9
+ cmp r0, 0
+ beq _080430D2
+ bl sub_8043D60
+_080430D2:
+ cmp r6, 0
+ beq _080430D8
+ b _080431DC
+_080430D8:
+ ldr r0, [r4]
+ ldr r1, _08043144
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r2, _08043148
+ adds r0, r2
+ strb r1, [r0]
+ ldr r2, [r4]
+ movs r3, 0xCF
+ lsls r3, 3
+ adds r0, r2, r3
+ ldrb r3, [r0]
+ cmp r3, 0x1
+ bne _08043154
+ mov r5, r8
+ ldrb r1, [r5, 0x14]
+ ldr r5, _0804314C
+ adds r0, r2, r5
+ strb r1, [r0]
+ ldr r0, [r4]
+ ldr r1, _08043150
+ adds r0, r1
+ strb r3, [r0]
+ b _0804315E
+ .align 2, 0
+_0804310C: .4byte gUnknown_203B40C
+_08043110: .4byte gUnknown_203B41C
+_08043114: .4byte gUnknown_203B418
+_08043118: .4byte 0x0001cedb
+_0804311C: .4byte gUnknown_203B410
+_08043120: .4byte 0x0000064c
+_08043124: .4byte 0x00000666
+_08043128: .4byte 0x0000067a
+_0804312C: .4byte 0x0000067b
+_08043130: .4byte 0x00000699
+_08043134: .4byte 0x0000065d
+_08043138: .4byte gUnknown_2026E4E
+_0804313C: .4byte 0x00000808
+_08043140: .4byte gUnknown_202F32C
+_08043144: .4byte 0x0001820b
+_08043148: .4byte 0x0001820c
+_0804314C: .4byte 0x00000644
+_08043150: .4byte 0x00000645
+_08043154:
+ ldr r3, _0804318C
+ adds r1, r2, r3
+ mov r5, r8
+ ldr r0, [r5, 0x4]
+ str r0, [r1]
+_0804315E:
+ ldr r4, _08043190
+ ldr r0, [r4]
+ ldr r1, _08043194
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8044124
+ cmp r6, 0
+ bne _080431DC
+ ldr r1, [r4]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804319C
+ ldr r3, _08043198
+ adds r1, r3
+ mov r5, r8
+ ldr r0, [r5, 0x18]
+ str r0, [r1]
+ b _080431AC
+ .align 2, 0
+_0804318C: .4byte 0x00000644
+_08043190: .4byte gUnknown_203B418
+_08043194: .4byte 0x00000674
+_08043198: .4byte 0x0000067c
+_0804319C:
+ bl Random
+ ldr r2, [r4]
+ ldr r1, _08043208
+ adds r2, r1
+ ldr r1, _0804320C
+ ands r1, r0
+ str r1, [r2]
+_080431AC:
+ ldr r4, _08043210
+ ldr r0, [r4]
+ ldr r2, _08043208
+ adds r0, r2
+ ldr r0, [r0]
+ bl sub_808408C
+ cmp r6, 0
+ bne _080431DC
+ bl sub_80980A4
+ lsls r0, 24
+ cmp r0, 0
+ bne _080431D8
+ ldr r0, [r4]
+ ldr r3, _08043214
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080431D8
+ bl sub_8043FD0
+_080431D8:
+ bl sub_806890C
+_080431DC:
+ mov r5, r9
+ cmp r5, 0
+ beq _08043230
+ ldr r1, _08043218
+ ldr r0, _08043210
+ ldr r0, [r0]
+ ldr r2, _0804321C
+ adds r0, r2
+ ldrb r0, [r0]
+ lsls r0, 24
+ asrs r0, 24
+ str r0, [r1]
+ cmp r0, 0
+ beq _08043224
+ ldr r0, _08043220
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _08043230
+ .align 2, 0
+_08043208: .4byte 0x0000067c
+_0804320C: .4byte 0x00ffffff
+_08043210: .4byte gUnknown_203B418
+_08043214: .4byte 0x00000644
+_08043218: .4byte gUnknown_202DE30
+_0804321C: .4byte 0x0000067b
+_08043220: .4byte gUnknown_80FEC48
+_08043224:
+ ldr r0, _080432B4
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043230:
+ mov r3, r10
+ cmp r3, 0
+ beq _0804326A
+ mov r1, r8
+ adds r1, 0x44
+ movs r0, 0
+ strb r0, [r1]
+ ldr r0, _080432B8
+ ldr r0, [r0]
+ ldr r5, _080432BC
+ adds r0, r5
+ ldrb r0, [r0]
+ bl GetLevelCondition
+ lsls r0, 24
+ mov r4, r8
+ adds r4, 0x1C
+ cmp r0, 0
+ beq _0804325C
+ adds r0, r4, 0
+ bl sub_808D0D8
+_0804325C:
+ adds r0, r4, 0
+ bl sub_8068A84
+ cmp r6, 0
+ beq _0804326A
+ bl sub_806B404
+_0804326A:
+ bl sub_8068614
+ cmp r6, 0
+ bne _080432F4
+ ldr r0, _080432B8
+ ldr r0, [r0]
+ movs r1, 0xCF
+ lsls r1, 3
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080432F4
+ mov r0, sp
+ bl sub_8099394
+ lsls r0, 24
+ cmp r0, 0
+ beq _080432F4
+ mov r0, sp
+ ldrb r0, [r0]
+ bl sub_8095228
+ adds r2, r0, 0
+ adds r2, 0x2C
+ movs r0, 0
+ ldrsb r0, [r2, r0]
+ cmp r0, 0
+ beq _080432E8
+ ldr r1, _080432C0
+ str r0, [r1]
+ ldr r0, _080432C4
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ b _080432F4
+ .align 2, 0
+_080432B4: .4byte gUnknown_80FEC7C
+_080432B8: .4byte gUnknown_203B418
+_080432BC: .4byte 0x00000644
+_080432C0: .4byte gUnknown_202DE30
+_080432C4: .4byte gUnknown_81002B8
+_080432C8:
+ ldr r4, _080432CC
+ b _080432D2
+ .align 2, 0
+_080432CC: .4byte 0x00000226
+_080432D0:
+ ldr r4, _080432E4
+_080432D2:
+ bl sub_8083600
+ adds r2, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8083AB0
+ bl _08043AF4
+ .align 2, 0
+_080432E4: .4byte 0x00000227
+_080432E8:
+ ldr r0, _080434B8
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_080432F4:
+ movs r2, 0
+ mov r10, r2
+ movs r3, 0
+ mov r9, r3
+_080432FC:
+ bl sub_8098080
+ bl nullsub_16
+ bl sub_80521D0
+ bl sub_80531A8
+ bl sub_800F690
+ cmp r6, 0
+ bne _08043318
+ bl sub_804513C
+_08043318:
+ ldr r0, _080434BC
+ movs r5, 0
+ str r5, [r0]
+ ldr r4, _080434C0
+ ldr r0, [r4]
+ strb r5, [r0]
+ cmp r6, 0
+ bne _08043346
+ bl sub_80840A4
+ ldr r1, [r4]
+ movs r3, 0xD0
+ lsls r3, 3
+ adds r2, r1, r3
+ str r0, [r2]
+ movs r0, 0xCD
+ lsls r0, 3
+ adds r1, r0
+ movs r0, 0xA
+ strh r0, [r1]
+ ldr r0, [r2]
+ bl sub_80840D8
+_08043346:
+ ldr r0, [r4]
+ ldr r1, _080434C4
+ adds r0, r1
+ strb r5, [r0]
+ cmp r6, 0
+ bne _08043390
+ ldr r0, [r4]
+ ldr r2, _080434C8
+ adds r0, r2
+ strb r6, [r0]
+ movs r0, 0x4
+ bl sub_8084100
+ ldr r1, [r4]
+ ldr r3, _080434CC
+ adds r1, r3
+ strb r6, [r1]
+ ldr r1, [r4]
+ ldr r2, _080434D0
+ adds r1, r2
+ strb r6, [r1]
+ ldr r2, [r4]
+ ldr r1, _080434D4
+ lsls r0, 1
+ adds r0, r1
+ ldrh r1, [r0]
+ adds r3, 0x3
+ adds r0, r2, r3
+ strh r1, [r0]
+ ldr r0, _080434D8
+ adds r2, r0
+ mov r1, r10
+ strb r1, [r2]
+ ldr r0, [r4]
+ ldr r2, _080434DC
+ adds r0, r2
+ strb r1, [r0]
+_08043390:
+ bl sub_803D4D0
+ ldr r0, [r4]
+ strb r5, [r0, 0x1]
+ ldr r0, [r4]
+ strb r5, [r0, 0x10]
+ ldr r0, [r4]
+ strb r5, [r0, 0x2]
+ ldr r0, [r4]
+ strb r5, [r0, 0x4]
+ ldr r0, [r4]
+ strb r5, [r0, 0x11]
+ ldr r0, [r4]
+ strb r5, [r0, 0x8]
+ ldr r0, [r4]
+ strb r5, [r0, 0x3]
+ ldr r0, [r4]
+ strb r5, [r0, 0x6]
+ ldr r0, [r4]
+ strb r5, [r0, 0xF]
+ ldr r2, [r4]
+ movs r3, 0xB8
+ lsls r3, 3
+ adds r1, r2, r3
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [r1]
+ strb r5, [r2, 0x7]
+ ldr r0, [r4]
+ strb r5, [r0, 0x9]
+ ldr r0, [r4]
+ strb r5, [r0, 0xA]
+ ldr r0, [r4]
+ movs r1, 0x1
+ strb r1, [r0, 0xB]
+ ldr r0, [r4]
+ strb r1, [r0, 0xD]
+ ldr r0, [r4]
+ strb r5, [r0, 0xE]
+ ldr r0, [r4]
+ ldr r2, _080434E0
+ adds r0, r2
+ strb r5, [r0]
+ cmp r6, 0
+ bne _080434A6
+ ldr r0, [r4]
+ adds r3, 0xB9
+ adds r0, r3
+ strb r6, [r0]
+ ldr r1, [r4]
+ ldr r5, _080434E4
+ adds r0, r1, r5
+ str r6, [r0]
+ movs r2, 0xD2
+ lsls r2, 3
+ adds r0, r1, r2
+ str r6, [r0]
+ adds r3, 0x1B
+ adds r0, r1, r3
+ str r6, [r0]
+ subs r5, 0x2C
+ adds r0, r1, r5
+ strh r6, [r0]
+ subs r2, 0x2E
+ adds r0, r1, r2
+ strh r6, [r0]
+ subs r3, 0x26
+ adds r1, r3
+ mov r5, r10
+ strb r5, [r1]
+ ldr r0, [r4]
+ ldr r1, _080434E8
+ adds r0, r1
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r2, 0xE
+ adds r0, r2
+ strb r5, [r0]
+ ldr r0, [r4]
+ adds r3, 0x8
+ adds r0, r3
+ strb r5, [r0]
+ ldr r0, [r4]
+ ldr r5, _080434EC
+ adds r0, r5
+ mov r1, r10
+ strb r1, [r0]
+ ldr r0, [r4]
+ adds r2, 0x2
+ adds r0, r2
+ strb r1, [r0]
+ ldr r1, [r4]
+ subs r3, 0xC
+ adds r2, r1, r3
+ ldr r0, _080434F0
+ strh r0, [r2]
+ adds r5, 0x17
+ adds r0, r1, r5
+ strh r6, [r0]
+ ldr r0, _080434F4
+ adds r1, r0
+ mov r2, r10
+ strb r2, [r1]
+ ldr r1, [r4]
+ adds r3, 0x1A
+ adds r0, r1, r3
+ movs r2, 0x63
+ strh r2, [r0]
+ subs r5, 0x2
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r0, _080434F8
+ adds r1, r0
+ mov r2, r10
+ strb r2, [r1]
+ ldr r1, [r4]
+ ldr r3, _080434FC
+ adds r0, r1, r3
+ ldrb r2, [r0]
+ ldr r5, _08043500
+ adds r0, r1, r5
+ strh r2, [r0]
+ ldr r2, _08043504
+ adds r0, r1, r2
+ ldrb r2, [r0]
+ ldr r3, _08043508
+ adds r0, r1, r3
+ strh r2, [r0]
+ ldr r5, _0804350C
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ ldr r2, _08043510
+ adds r1, r2
+ strh r0, [r1]
+ movs r0, 0
+ bl sub_807E5E4
+ bl sub_80842F0
+_080434A6:
+ bl sub_803D8F0
+ bl sub_8068658
+ cmp r6, 0
+ bne _08043514
+ bl sub_80687AC
+ b _0804351C
+ .align 2, 0
+_080434B8: .4byte gUnknown_81002D8
+_080434BC: .4byte gUnknown_203B450
+_080434C0: .4byte gUnknown_203B418
+_080434C4: .4byte 0x000037ec
+_080434C8: .4byte 0x000037fc
+_080434CC: .4byte 0x000037fd
+_080434D0: .4byte 0x000037fe
+_080434D4: .4byte gUnknown_80F6850
+_080434D8: .4byte 0x000037ff
+_080434DC: .4byte 0x00000675
+_080434E0: .4byte 0x0001c05e
+_080434E4: .4byte 0x0000068c
+_080434E8: .4byte 0x0000066f
+_080434EC: .4byte 0x00000671
+_080434F0: .4byte 0x000003e7
+_080434F4: .4byte 0x0000068a
+_080434F8: .4byte 0x0000e264
+_080434FC: .4byte 0x0001c576
+_08043500: .4byte 0x00003a0e
+_08043504: .4byte 0x0001c577
+_08043508: .4byte 0x00003a10
+_0804350C: .4byte 0x0001c586
+_08043510: .4byte 0x00003a14
+_08043514:
+ bl sub_8068768
+ bl sub_8082B40
+_0804351C:
+ bl sub_806C42C
+ bl sub_806AD3C
+ cmp r6, 0
+ bne _08043544
+ ldr r1, _080435B4
+ ldr r3, _080435B8
+ ldr r0, [r3]
+ ldr r5, _080435BC
+ adds r0, r5
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ lsls r0, 1
+ adds r0, r1
+ ldrh r0, [r0]
+ bl sub_8083E88
+ bl sub_80847D4
+_08043544:
+ bl sub_8049840
+ bl sub_803E178
+ ldr r0, _080435C0
+ mov r3, r9
+ str r3, [r0]
+ bl sub_8040124
+ movs r0, 0x4
+ movs r1, 0
+ bl sub_803EAF0
+ movs r0, 0
+ bl sub_8052210
+ adds r0, r6, 0
+ bl sub_803F27C
+ bl ShowDungeonNameBanner
+ cmp r6, 0
+ bne _08043594
+ bl sub_804AFAC
+ ldr r5, _080435B8
+ ldr r0, [r5]
+ ldr r1, _080435C4
+ adds r0, r1
+ ldrb r0, [r0]
+ bl GetUnkC
+ ldr r2, [r5]
+ ldr r3, _080435C8
+ adds r1, r2, r3
+ strh r0, [r1]
+ ldr r5, _080435CC
+ adds r2, r5
+ mov r0, r10
+ strb r0, [r2]
+_08043594:
+ bl sub_804AAD4
+ bl sub_8049B8C
+ bl sub_804966C
+ cmp r6, 0
+ bne _080435D0
+ bl sub_806B168
+ bl sub_806C3C0
+ bl sub_806B6C4
+ b _080435D4
+ .align 2, 0
+_080435B4: .4byte gUnknown_80F5668
+_080435B8: .4byte gUnknown_203B418
+_080435BC: .4byte 0x00003a10
+_080435C0: .4byte gUnknown_202EDC8
+_080435C4: .4byte 0x00000644
+_080435C8: .4byte 0x00000666
+_080435CC: .4byte 0x0000067a
+_080435D0:
+ bl sub_806B678
+_080435D4:
+ ldr r4, _0804362C
+ ldr r1, [r4]
+ ldr r2, _08043630
+ adds r0, r1, r2
+ mov r3, r9
+ str r3, [r0]
+ ldr r5, _08043634
+ adds r0, r1, r5
+ str r3, [r0]
+ adds r2, 0x4
+ adds r0, r1, r2
+ str r3, [r0]
+ ldr r3, _08043638
+ adds r0, r1, r3
+ mov r5, r9
+ str r5, [r0]
+ adds r2, 0x4
+ adds r0, r1, r2
+ str r5, [r0]
+ adds r3, 0x4
+ adds r1, r3
+ str r5, [r1]
+ cmp r6, 0
+ bne _08043644
+ bl sub_807FA18
+ bl sub_8045CB0
+ ldr r1, [r4]
+ ldr r5, _0804363C
+ adds r2, r1, r5
+ ldr r3, _08043640
+ adds r0, r1, r3
+ ldr r0, [r0]
+ str r0, [r2]
+ subs r5, 0x4
+ adds r1, r5
+ str r6, [r1]
+ bl sub_8051E3C
+ bl sub_804AAAC
+ b _08043648
+ .align 2, 0
+_0804362C: .4byte gUnknown_203B418
+_08043630: .4byte 0x00017b2c
+_08043634: .4byte 0x00017b38
+_08043638: .4byte 0x00017b3c
+_0804363C: .4byte 0x00000694
+_08043640: .4byte 0x0000068c
+_08043644:
+ bl sub_806A338
+_08043648:
+ bl sub_8068F80
+ bl sub_8049884
+ bl sub_8049ED4
+ cmp r6, 0
+ bne _08043664
+ movs r0, 0x1
+ movs r1, 0
+ movs r2, 0
+ bl sub_806A914
+ b _0804366C
+_08043664:
+ bl sub_806CF60
+ bl sub_806A974
+_0804366C:
+ movs r0, 0x1
+ bl sub_8041888
+ cmp r6, 0
+ bne _0804367E
+ bl sub_80848F0
+ bl sub_8097890
+_0804367E:
+ ldr r0, _080436A0
+ movs r1, 0x1
+ strb r1, [r0]
+ cmp r6, 0
+ beq _08043690
+ bl sub_807E88C
+ bl sub_806AB2C
+_08043690:
+ ldr r2, _080436A4
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080436A8
+ bl sub_803E748
+ b _080436AC
+ .align 2, 0
+_080436A0: .4byte gUnknown_203B40C
+_080436A4: .4byte gUnknown_203B418
+_080436A8:
+ bl sub_803E7C8
+_080436AC:
+ movs r0, 0
+ bl sub_8040094
+ movs r0, 0
+ movs r1, 0
+ bl sub_803EAF0
+ adds r0, r6, 0
+ bl sub_8040150
+ bl sub_8040A84
+ ldr r4, _08043730
+ ldr r1, [r4]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ mov r3, r9
+ str r3, [r0]
+ ldr r5, _08043734
+ adds r1, r5
+ strb r3, [r1]
+ ldr r0, [r4]
+ ldr r1, _08043738
+ adds r0, r1
+ mov r2, r9
+ strb r2, [r0]
+ ldr r1, [r4]
+ movs r5, 0
+ movs r0, 0x63
+ strh r0, [r1, 0x12]
+ movs r3, 0x1
+ strb r3, [r1]
+ cmp r6, 0
+ bne _08043706
+ bl sub_8052DD0
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x9]
+ cmp r0, 0
+ beq _08043706
+ strb r5, [r1, 0x9]
+ bl sub_8083D68
+ bl sub_8052F80
+_08043706:
+ ldr r0, _0804373C
+ mov r5, r9
+ str r5, [r0]
+ ldr r4, _08043730
+ ldr r0, [r4]
+ strb r5, [r0, 0x5]
+ cmp r6, 0
+ bne _08043778
+ bl sub_8084B64
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0
+ bne _08043728
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ beq _08043740
+_08043728:
+ movs r0, 0x1
+ strb r0, [r1, 0x5]
+ b _0804374C
+ .align 2, 0
+_08043730: .4byte gUnknown_203B418
+_08043734: .4byte 0x0000066c
+_08043738: .4byte 0x0000066d
+_0804373C: .4byte gUnknown_203B450
+_08043740:
+ bl sub_8083600
+ bl sub_803F4A0
+ bl sub_8040A84
+_0804374C:
+ cmp r6, 0
+ bne _08043778
+ ldr r1, _08043774
+ ldr r0, [r1]
+ ldrb r0, [r0, 0x5]
+ cmp r0, 0
+ bne _0804377C
+ bl sub_807E5AC
+ movs r0, 0
+ bl sub_807E580
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804377C
+ movs r0, 0x1
+ bl sub_807E7FC
+ b _0804377C
+ .align 2, 0
+_08043774: .4byte gUnknown_203B418
+_08043778:
+ bl sub_8069E8C
+_0804377C:
+ cmp r6, 0
+ beq _08043784
+ movs r6, 0
+ b _080437A2
+_08043784:
+ bl sub_80427AC
+ bl sub_8083600
+ ldr r2, _08043960
+ ldr r1, [r2]
+ ldr r3, _08043964
+ adds r1, r3
+ ldrb r1, [r1]
+ bl sub_8075900
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_807EAA0
+_080437A2:
+ bl nullsub_16
+ ldr r2, _08043960
+ ldr r0, [r2]
+ ldrb r1, [r0, 0x5]
+ cmp r1, 0
+ bne _080437DA
+ movs r4, 0x1
+ ldr r5, _08043968
+ adds r0, r5
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r3, _0804396C
+ adds r0, r3
+ strb r1, [r0]
+ ldr r0, [r2]
+ ldr r5, _08043970
+ adds r0, r5
+ strb r4, [r0]
+_080437C8:
+ adds r0, r4, 0
+ bl RunDungeon
+ movs r4, 0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _080437C8
+_080437DA:
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080437F0
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080437F0:
+ ldr r5, _08043960
+ ldr r0, [r5]
+ ldr r4, _08043968
+ adds r0, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08043822
+ movs r0, 0x1
+ bl sub_8043ED0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043812
+ ldr r0, [r5]
+ adds r0, r4
+ movs r1, 0x1
+ strb r1, [r0]
+_08043812:
+ ldr r1, [r5]
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08043822
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0
+ beq _08043830
+_08043822:
+ ldr r2, _08043960
+ ldr r0, [r2]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ bne _08043830
+ bl sub_806AA70
+_08043830:
+ bl sub_8083600
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804384A
+ movs r0, 0x4F
+ bl sub_80526D0
+ movs r0, 0x4F
+ bl sub_8052740
+_0804384A:
+ bl sub_8040124
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_803EAF0
+ ldr r3, _08043960
+ ldr r0, [r3]
+ ldr r5, _08043970
+ adds r0, r5
+ mov r1, r9
+ strb r1, [r0]
+ ldr r0, [r3]
+ ldr r2, _0804396C
+ adds r0, r2
+ movs r3, 0x1
+ strb r3, [r0]
+ ldr r5, _08043960
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ bne _08043896
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08043896
+ ldr r2, _08043974
+ adds r0, r1, r2
+ ldrh r0, [r0]
+ cmp r0, 0x72
+ bne _08043896
+ ldr r3, _08043978
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1B
+ bne _08043896
+ movs r0, 0x3C
+ bl sub_8083ED8
+_08043896:
+ movs r0, 0x4
+ movs r1, 0x4F
+ bl sub_803E708
+ ldr r5, _08043960
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x7]
+ cmp r0, 0
+ bne _080438AC
+ bl sub_803E830
+_080438AC:
+ movs r0, 0
+ bl SetBGOBJEnableFlags
+ ldr r1, _0804397C
+ ldr r0, [sp, 0x4]
+ ands r0, r1
+ movs r1, 0x60
+ orrs r0, r1
+ ldr r1, _08043980
+ ands r0, r1
+ movs r1, 0x80
+ lsls r1, 8
+ orrs r0, r1
+ ldr r1, _08043984
+ ands r0, r1
+ movs r1, 0xF8
+ lsls r1, 16
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldr r0, _08043988
+ ldr r2, [r0]
+ movs r0, 0xFD
+ ldr r1, [sp, 0x8]
+ movs r3, 0
+ bl SetBGPaletteBufferColorRGB
+ movs r0, 0x1
+ bl sub_8040094
+ ldr r0, [r5]
+ ldr r1, _0804396C
+ adds r0, r1
+ movs r7, 0
+ movs r2, 0x1
+ strb r2, [r0]
+ ldr r1, [r5]
+ ldrb r0, [r1, 0x10]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _08043926
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08043926
+ bl sub_8083600
+ adds r4, r0, 0
+ ldr r0, _0804398C
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ ldr r0, [r5]
+ strb r7, [r0, 0x6]
+ ldr r0, _08043990
+ adds r1, r4, 0
+ adds r2, r4, 0
+ bl sub_8083AB0
+_08043926:
+ bl sub_80688CC
+ bl sub_8049820
+ ldr r0, _08043994
+ ldr r0, [r0]
+ bl CloseFile
+ bl sub_800F740
+ ldr r0, _08043998
+ mov r3, r10
+ strb r3, [r0]
+ ldr r4, _08043960
+ ldr r1, [r4]
+ ldrb r0, [r1, 0x3]
+ cmp r0, 0
+ beq _0804394C
+ b _08043BFC
+_0804394C:
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _080439A0
+ ldr r0, _0804399C
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8080B30
+ b _080439A6
+ .align 2, 0
+_08043960: .4byte gUnknown_203B418
+_08043964: .4byte 0x00003a08
+_08043968: .4byte 0x00000654
+_0804396C: .4byte 0x00018218
+_08043970: .4byte 0x00018219
+_08043974: .4byte 0x0001ceda
+_08043978: .4byte 0x00000644
+_0804397C: .4byte 0xffffff00
+_08043980: .4byte 0xffff00ff
+_08043984: .4byte 0xff00ffff
+_08043988: .4byte gUnknown_202EDC8
+_0804398C: .4byte gUnknown_81006A4
+_08043990: .4byte 0x00000222
+_08043994: .4byte gDungeonNameBannerPalette
+_08043998: .4byte gUnknown_203B40C
+_0804399C: .4byte gUnknown_203B41C
+_080439A0:
+ movs r0, 0x2
+ bl sub_8046F84
+_080439A6:
+ bl sub_806C1D8
+ ldr r4, _080439CC
+ ldr r1, [r4]
+ ldr r5, _080439D0
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080439D4
+ adds r5, 0x1A
+ adds r0, r1, r5
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080439C4
+ b _08043AF4
+_080439C4:
+ bl sub_804700C
+ b _08043AF4
+ .align 2, 0
+_080439CC: .4byte gUnknown_203B418
+_080439D0: .4byte 0x00000654
+_080439D4:
+ ldrb r0, [r1, 0x11]
+ cmp r0, 0x1
+ bne _080439DC
+ b _080432C8
+_080439DC:
+ cmp r0, 0x2
+ bne _08043A00
+ bl sub_8083600
+ adds r2, r0, 0
+ ldr r0, _080439F8
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r1, _080439FC
+ adds r0, r1
+ b _08043A62
+ .align 2, 0
+_080439F8: .4byte 0x00000229
+_080439FC: .4byte 0x0000066e
+_08043A00:
+ cmp r0, 0x3
+ bne _08043A24
+ bl sub_8083600
+ adds r2, r0, 0
+ ldr r0, _08043A1C
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r2, _08043A20
+ adds r0, r2
+ b _08043A62
+ .align 2, 0
+_08043A1C: .4byte 0x0000022a
+_08043A20: .4byte 0x0000066e
+_08043A24:
+ cmp r0, 0x4
+ bne _08043A2A
+ b _080432D0
+_08043A2A:
+ movs r3, 0xCF
+ lsls r3, 3
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043A74
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08043A74
+ ldr r0, [r4]
+ adds r0, r5
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08043A74
+ bl sub_8083600
+ adds r2, r0, 0
+ movs r0, 0x8A
+ lsls r0, 2
+ movs r1, 0
+ bl sub_8083AB0
+ ldr r0, [r4]
+ ldr r5, _08043A70
+ adds r0, r5
+_08043A62:
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043AF4
+ bl sub_8097810
+ b _08043AF4
+ .align 2, 0
+_08043A70: .4byte 0x0000066e
+_08043A74:
+ ldr r4, _08043ACC
+ ldr r0, [r4]
+ ldr r1, _08043AD0
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043A86
+ bl sub_8097810
+_08043A86:
+ ldr r1, [r4]
+ ldr r3, _08043AD4
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ adds r0, 0x1
+ ldr r5, _08043AD8
+ adds r1, r5
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08043AE4
+ strb r0, [r2]
+ ldr r0, [r4]
+ ldr r1, _08043ADC
+ adds r0, r1
+ ldrh r1, [r0]
+ ldr r0, _08043AE0
+ cmp r1, r0
+ beq _08043AAC
+ b _080432FC
+_08043AAC:
+ movs r0, 0x1F
+ bl sub_8098100
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043ABA
+ b _080432FC
+_08043ABA:
+ movs r0, 0x1F
+ bl sub_8097FA8
+ bl sub_8086130
+ bl sub_8097FF8
+ b _080432FC
+ .align 2, 0
+_08043ACC: .4byte gUnknown_203B418
+_08043AD0: .4byte 0x0000066e
+_08043AD4: .4byte 0x00000645
+_08043AD8: .4byte 0x0001cec8
+_08043ADC: .4byte 0x00000644
+_08043AE0: .4byte 0x0000060b
+_08043AE4:
+ ldr r4, _08043B80
+ bl sub_8083600
+ adds r2, r0, 0
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8083AB0
+_08043AF4:
+ ldr r1, _08043B84
+ movs r0, 0
+ strb r0, [r1]
+ mov r4, r8
+ adds r4, 0x7E
+ movs r0, 0
+ strb r0, [r4]
+ bl sub_8097FF8
+ movs r0, 0x1
+ movs r1, 0x14
+ bl sub_80095CC
+ bl sub_803E13C
+ movs r0, 0x4
+ bl sub_800CDA8
+ ldr r0, _08043B88
+ ldr r1, [r0]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ bne _08043B38
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ bl sub_8083C88
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043B38
+ bl sub_80841EC
+_08043B38:
+ bl sub_8083C24
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043BA4
+ ldr r5, _08043B88
+ ldr r0, [r5]
+ ldrb r0, [r0, 0x6]
+ cmp r0, 0
+ beq _08043B98
+ ldr r0, _08043B8C
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ mov r4, r8
+ adds r4, 0x84
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0x8
+ bl memset
+ mov r3, r8
+ adds r3, 0x80
+ ldr r1, [r5]
+ ldr r5, _08043B90
+ adds r2, r1, r5
+ ldr r0, [r2]
+ str r0, [r3]
+ ldr r0, [r2]
+ str r0, [r4]
+ mov r2, r8
+ adds r2, 0x88
+ ldr r0, _08043B94
+ adds r1, r0
+ ldr r0, [r1]
+ str r0, [r2]
+ b _08043C32
+ .align 2, 0
+_08043B80: .4byte 0x00000227
+_08043B84: .4byte gUnknown_203B40C
+_08043B88: .4byte gUnknown_203B418
+_08043B8C: .4byte 0x0000fffe
+_08043B90: .4byte 0x00000644
+_08043B94: .4byte 0x0000067c
+_08043B98:
+ ldr r0, _08043BA0
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ b _08043C32
+ .align 2, 0
+_08043BA0: .4byte 0x0000ffff
+_08043BA4:
+ bl sub_8083C50
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043C28
+ ldr r0, _08043BC8
+ ldr r0, [r0]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043BCC
+ movs r0, 0x4
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ b _08043BE6
+ .align 2, 0
+_08043BC8: .4byte gUnknown_203B418
+_08043BCC:
+ cmp r0, 0
+ bne _08043BDC
+ movs r0, 0x1
+ ldr r5, [sp, 0xC]
+ strh r0, [r5]
+ bl sub_8084424
+ b _08043BE6
+_08043BDC:
+ movs r0, 0x1
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ bl sub_8084424
+_08043BE6:
+ ldr r0, _08043BF4
+ ldr r0, [r0]
+ ldr r2, _08043BF8
+ adds r0, r2
+ ldrb r0, [r0]
+ strb r0, [r4]
+ b _08043C32
+ .align 2, 0
+_08043BF4: .4byte gUnknown_203B418
+_08043BF8: .4byte 0x00000674
+_08043BFC:
+ ldr r0, _08043C20
+ ldr r0, [r0]
+ movs r1, 0x90
+ lsls r1, 7
+ bl sub_8080B30
+ movs r0, 0x3
+ ldr r3, [sp, 0xC]
+ strh r0, [r3]
+ mov r1, r8
+ adds r1, 0x80
+ ldr r0, [r4]
+ ldr r5, _08043C24
+ adds r0, r5
+ ldr r0, [r0]
+ str r0, [r1]
+ b _08043C32
+ .align 2, 0
+_08043C20: .4byte gUnknown_203B41C
+_08043C24: .4byte 0x00000644
+_08043C28:
+ movs r0, 0x2
+ ldr r1, [sp, 0xC]
+ strh r0, [r1]
+ bl sub_8084424
+_08043C32:
+ bl sub_806863C
+ bl sub_803E214
+ bl nullsub_56
+ bl sub_8040218
+ ldr r2, [sp, 0xC]
+ movs r3, 0
+ ldrsh r0, [r2, r3]
+ cmp r0, 0x1
+ beq _08043C54
+ cmp r0, 0x4
+ beq _08043C54
+ cmp r0, 0x2
+ bne _08043C58
+_08043C54:
+ bl sub_8047104
+_08043C58:
+ ldr r5, [sp, 0xC]
+ movs r0, 0
+ ldrsh r1, [r5, r0]
+ cmp r1, 0x1
+ beq _08043C8A
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ beq _08043C78
+ cmp r1, 0x4
+ beq _08043C78
+ adds r0, 0x1
+ cmp r1, r0
+ beq _08043C78
+ cmp r1, 0x2
+ bne _08043CAC
+_08043C78:
+ ldr r2, [sp, 0xC]
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ cmp r1, 0x1
+ beq _08043C8A
+ cmp r1, 0x4
+ beq _08043C8A
+ cmp r1, 0x2
+ bne _08043C92
+_08043C8A:
+ movs r0, 0x1
+ bl sub_8068BDC
+ b _08043CAC
+_08043C92:
+ movs r0, 0x2
+ negs r0, r0
+ cmp r1, r0
+ bne _08043CA2
+ movs r0, 0
+ bl sub_8068BDC
+ b _08043CAC
+_08043CA2:
+ bl sub_8068F28
+ movs r0, 0
+ bl sub_8068BDC
+_08043CAC:
+ bl sub_800DB7C
+ ldr r0, _08043CD0
+ movs r1, 0
+ str r1, [r0]
+ ldr r0, _08043CD4
+ str r1, [r0]
+ bl nullsub_16
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043CD0: .4byte gUnknown_203B418
+_08043CD4: .4byte gUnknown_203B41C
+ thumb_func_end xxx_dungeon_8042F6C
+
+ thumb_func_start sub_8043CD8
+sub_8043CD8:
+ push {lr}
+ bl sub_8009804
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8043CD8
+
+ thumb_func_start sub_8043CE4
+sub_8043CE4:
+ push {lr}
+ adds r1, r0, 0
+ ldr r0, _08043CF4
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08043CF8
+ movs r0, 0x1
+ b _08043D08
+ .align 2, 0
+_08043CF4: .4byte gUnknown_202F1A8
+_08043CF8:
+ movs r2, 0
+ ldr r0, _08043D0C
+ adds r0, r1, r0
+ ldrb r0, [r0]
+ cmp r0, 0x2
+ bne _08043D06
+ movs r2, 0x1
+_08043D06:
+ adds r0, r2, 0
+_08043D08:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043D0C: .4byte gUnknown_810ACC0
+ thumb_func_end sub_8043CE4
+
+ thumb_func_start sub_8043D10
+sub_8043D10:
+ push {lr}
+ ldr r0, _08043D38
+ ldr r1, [r0]
+ movs r2, 0xCF
+ lsls r2, 3
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043D3C
+ subs r2, 0x2B
+ adds r0, r1, r2
+ subs r2, 0x8
+ adds r1, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ bne _08043D3C
+ movs r0, 0x2
+ b _08043D4C
+ .align 2, 0
+_08043D38: .4byte gUnknown_203B418
+_08043D3C:
+ bl sub_80441BC
+ lsls r0, 24
+ cmp r0, 0
+ bne _08043D4A
+ movs r0, 0
+ b _08043D4C
+_08043D4A:
+ movs r0, 0x1
+_08043D4C:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8043D10
+
+ thumb_func_start sub_8043D50
+sub_8043D50:
+ ldr r2, _08043D5C
+ str r2, [r1]
+ movs r1, 0x90
+ lsls r1, 7
+ str r1, [r0]
+ bx lr
+ .align 2, 0
+_08043D5C: .4byte 0x0001cedc
+ thumb_func_end sub_8043D50
+
+ thumb_func_start sub_8043D60
+sub_8043D60:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r5, 0
+_08043D6A:
+ ldr r0, _08043DA4
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08043DA8
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043DCE
+ ldr r2, [r4, 0x70]
+ movs r1, 0x1
+ ldrb r0, [r2, 0x8]
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ adds r0, r2, 0
+ adds r0, 0x40
+ ldrb r0, [r0]
+ cmp r0, 0x4A
+ beq _08043DA0
+ cmp r0, 0x47
+ bne _08043DAC
+_08043DA0:
+ movs r0, 0x1
+ b _08043DAE
+ .align 2, 0
+_08043DA4: .4byte gUnknown_203B418
+_08043DA8: .4byte 0x0001358c
+_08043DAC:
+ movs r0, 0
+_08043DAE:
+ cmp r0, 0
+ beq _08043DB4
+ movs r1, 0
+_08043DB4:
+ adds r0, r2, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08043DC0
+ movs r1, 0
+_08043DC0:
+ cmp r1, 0
+ beq _08043DCE
+ adds r0, r4, 0
+ ldr r1, _08043EC0
+ adds r2, r4, 0
+ bl sub_8068FE0
+_08043DCE:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08043D6A
+ movs r5, 0
+ ldr r0, _08043EC4
+ mov r9, r0
+ mov r8, r5
+_08043DDC:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r2, _08043EC8
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ adds r7, r5, 0x1
+ cmp r0, 0
+ beq _08043E62
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r1, r8
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ ldr r4, [r4, 0x70]
+ ldrh r0, [r4, 0x10]
+ strh r0, [r4, 0xE]
+ movs r2, 0x9E
+ lsls r2, 1
+ adds r1, r4, r2
+ adds r2, 0x4
+ adds r0, r4, r2
+ ldr r0, [r0]
+ str r0, [r1]
+ mov r1, r9
+ ldr r0, [r1]
+ ldr r2, _08043ECC
+ adds r0, r2
+ mov r1, r8
+ strb r1, [r0]
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_806BFC0
+ ldrh r0, [r4, 0x2]
+ strh r0, [r4, 0x4]
+ adds r0, r4, 0
+ adds r0, 0xFD
+ mov r2, r8
+ strb r2, [r0]
+ movs r0, 0x8C
+ lsls r0, 1
+ adds r5, r4, r0
+ adds r4, r5, 0
+ movs r6, 0x3
+_08043E46:
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08043E58
+ adds r0, r5, 0
+ bl sub_8092BF4
+ strb r0, [r4, 0x4]
+_08043E58:
+ adds r4, 0x8
+ adds r5, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bge _08043E46
+_08043E62:
+ adds r5, r7, 0
+ cmp r5, 0x3
+ ble _08043DDC
+ movs r6, 0
+_08043E6A:
+ movs r5, 0
+ adds r7, r6, 0x1
+_08043E6E:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_8049590
+ ldr r4, [r0, 0x14]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043EA0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _08043EA0
+ adds r0, r4, 0
+ bl sub_8045104
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0x1B
+ bne _08043EA0
+ movs r0, 0x5
+ strb r0, [r1]
+_08043EA0:
+ adds r5, 0x1
+ cmp r5, 0x37
+ ble _08043E6E
+ adds r6, r7, 0
+ cmp r6, 0x1F
+ ble _08043E6A
+ movs r0, 0x2
+ bl sub_8046F84
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08043EC0: .4byte 0x00000207
+_08043EC4: .4byte gUnknown_203B418
+_08043EC8: .4byte 0x0001357c
+_08043ECC: .4byte 0x00000676
+ thumb_func_end sub_8043D60
+
+ thumb_func_start sub_8043ED0
+sub_8043ED0:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r5, r0, 24
+ movs r7, 0
+ cmp r5, 0
+ bne _08043EEA
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043EEA
+ movs r0, 0
+ b _08043FB8
+_08043EEA:
+ ldr r6, _08043F2C
+ ldr r0, [r6]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0x1
+ bne _08043F40
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043F20
+ ldr r0, _08043F30
+ ldr r1, [r6]
+ ldr r2, _08043F34
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043F38
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043F20:
+ adds r0, r4, 0
+ bl sub_8042B0C
+ ldr r1, _08043F3C
+ b _08043FAC
+ .align 2, 0
+_08043F2C: .4byte gUnknown_203B418
+_08043F30: .4byte gUnknown_202DF98
+_08043F34: .4byte 0x000005f4
+_08043F38: .4byte gUnknown_80F89B4
+_08043F3C: .4byte 0x0000021f
+_08043F40:
+ cmp r0, 0x2
+ bne _08043F74
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043FA4
+ ldr r0, _08043F68
+ ldr r1, [r6]
+ ldr r2, _08043F6C
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043F70
+ b _08043F9A
+ .align 2, 0
+_08043F68: .4byte gUnknown_202DF98
+_08043F6C: .4byte 0x000005f4
+_08043F70: .4byte gUnknown_80F89D4
+_08043F74:
+ cmp r0, 0x3
+ bne _08043FB6
+ bl sub_8083600
+ adds r4, r0, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08043FB6
+ cmp r5, 0
+ bne _08043FA4
+ ldr r0, _08043FC0
+ ldr r1, [r6]
+ ldr r2, _08043FC4
+ adds r1, r2
+ bl strcpy
+ ldr r0, _08043FC8
+_08043F9A:
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+_08043FA4:
+ adds r0, r4, 0
+ bl sub_8042B0C
+ ldr r1, _08043FCC
+_08043FAC:
+ adds r0, r4, 0
+ adds r2, r4, 0
+ bl sub_8068FE0
+ movs r7, 0x1
+_08043FB6:
+ adds r0, r7, 0
+_08043FB8:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08043FC0: .4byte gUnknown_202DF98
+_08043FC4: .4byte 0x000005f4
+_08043FC8: .4byte gUnknown_80F89D8
+_08043FCC: .4byte 0x00000222
+ thumb_func_end sub_8043ED0
+
+ thumb_func_start sub_8043FD0
+sub_8043FD0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ movs r0, 0x2
+ mov r9, r0
+ movs r1, 0x1
+ mov r10, r1
+ movs r0, 0xFF
+ mov r8, r0
+_08043FE8:
+ movs r3, 0
+ mov r1, r9
+ adds r1, 0x1
+ str r1, [sp, 0x3C]
+_08043FF0:
+ ldr r2, _080440E4
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r2]
+ adds r4, r0, r1
+ ldrh r1, [r4]
+ mov r0, r10
+ ands r0, r1
+ adds r3, 0x1
+ str r3, [sp, 0x40]
+ cmp r0, 0
+ beq _080440FE
+ lsrs r0, r1, 1
+ mov r1, r10
+ ands r0, r1
+ cmp r0, 0
+ beq _080440FE
+ add r5, sp, 0x20
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ adds r0, r5, 0
+ mov r2, r9
+ bl sub_808E010
+ mov r1, r9
+ strb r1, [r4, 0x3]
+ ldr r0, [sp, 0x20]
+ str r0, [r4, 0x1C]
+ ldrh r0, [r5, 0x4]
+ ldrh r1, [r4, 0x16]
+ adds r0, r1
+ movs r2, 0
+ strh r0, [r4, 0x16]
+ lsls r0, 16
+ ldr r1, _080440E8
+ cmp r0, r1
+ ble _08044040
+ ldr r0, _080440EC
+ strh r0, [r4, 0x16]
+_08044040:
+ ldrb r0, [r4, 0x18]
+ str r0, [sp, 0x2C]
+ ldrb r0, [r4, 0x19]
+ str r0, [sp, 0x30]
+ ldrb r0, [r4, 0x1A]
+ str r0, [sp, 0x34]
+ ldrb r0, [r4, 0x1B]
+ str r0, [sp, 0x38]
+ ldrb r1, [r5, 0x6]
+ ldr r0, [sp, 0x2C]
+ adds r0, r1
+ str r0, [sp, 0x2C]
+ ldrb r1, [r5, 0x7]
+ ldr r0, [sp, 0x30]
+ adds r0, r1
+ str r0, [sp, 0x30]
+ ldrb r1, [r5, 0x8]
+ ldr r0, [sp, 0x34]
+ adds r0, r1
+ str r0, [sp, 0x34]
+ ldrb r1, [r5, 0x9]
+ ldr r0, [sp, 0x38]
+ adds r0, r1
+ str r0, [sp, 0x38]
+ ldr r0, [sp, 0x2C]
+ cmp r0, 0xFE
+ ble _0804407A
+ mov r0, r8
+ str r0, [sp, 0x2C]
+_0804407A:
+ ldr r0, [sp, 0x30]
+ cmp r0, 0xFE
+ ble _08044084
+ mov r1, r8
+ str r1, [sp, 0x30]
+_08044084:
+ ldr r0, [sp, 0x34]
+ cmp r0, 0xFE
+ ble _0804408E
+ mov r0, r8
+ str r0, [sp, 0x34]
+_0804408E:
+ ldr r0, [sp, 0x38]
+ cmp r0, 0xFE
+ ble _08044098
+ mov r1, r8
+ str r1, [sp, 0x38]
+_08044098:
+ ldr r0, [sp, 0x2C]
+ strb r0, [r4, 0x18]
+ ldr r0, [sp, 0x30]
+ strb r0, [r4, 0x19]
+ ldr r0, [sp, 0x34]
+ strb r0, [r4, 0x1A]
+ ldr r0, [sp, 0x38]
+ strb r0, [r4, 0x1B]
+ movs r0, 0x8
+ ldrsh r1, [r4, r0]
+ ldrb r2, [r4, 0x3]
+ mov r0, sp
+ ldr r3, _080440EC
+ bl sub_808E0AC
+ adds r6, r0, 0
+ cmp r6, 0
+ beq _080440FE
+ movs r0, 0
+ cmp r0, r6
+ bge _080440FE
+_080440C2:
+ movs r3, 0
+ adds r7, r0, 0x1
+ lsls r0, 1
+ mov r1, sp
+ adds r5, r1, r0
+ adds r2, r4, 0
+ adds r2, 0x2C
+_080440D0:
+ ldrb r1, [r2]
+ mov r0, r10
+ ands r0, r1
+ cmp r0, 0
+ bne _080440F0
+ ldrh r1, [r5]
+ adds r0, r2, 0
+ bl sub_8092AD4
+ b _080440F8
+ .align 2, 0
+_080440E4: .4byte gUnknown_203B45C
+_080440E8: .4byte 0x03e60000
+_080440EC: .4byte 0x000003e7
+_080440F0:
+ adds r2, 0x8
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _080440D0
+_080440F8:
+ adds r0, r7, 0
+ cmp r0, r6
+ blt _080440C2
+_080440FE:
+ ldr r3, [sp, 0x40]
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ bgt _0804410A
+ b _08043FF0
+_0804410A:
+ ldr r0, [sp, 0x3C]
+ mov r9, r0
+ cmp r0, 0x5
+ bgt _08044114
+ b _08043FE8
+_08044114:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8043FD0
+
+ thumb_func_start sub_8044124
+sub_8044124:
+ push {r4,r5,lr}
+ ldr r0, _080441AC
+ ldr r0, [r0]
+ ldr r1, _080441B0
+ adds r0, r1
+ ldrb r0, [r0]
+ bl GetMaxItemCount
+ cmp r0, 0
+ bne _08044182
+ movs r3, 0
+ ldr r4, _080441B4
+ movs r2, 0
+_0804413E:
+ lsls r1, r3, 2
+ ldr r0, [r4]
+ adds r1, r0
+ strb r2, [r1, 0x2]
+ strb r2, [r1, 0x1]
+ strb r2, [r1]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _0804413E
+ movs r3, 0
+ ldr r5, _080441B8
+ movs r4, 0x1
+_08044156:
+ movs r0, 0x58
+ adds r1, r3, 0
+ muls r1, r0
+ ldr r0, [r5]
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ adds r0, r4, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _08044178
+ lsrs r0, r2, 1
+ ands r0, r4
+ cmp r0, 0
+ beq _08044178
+ adds r1, 0x28
+ movs r0, 0
+ strb r0, [r1]
+_08044178:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _08044156
+_08044182:
+ ldr r0, _080441AC
+ ldr r0, [r0]
+ ldr r2, _080441B0
+ adds r0, r2
+ ldrb r0, [r0]
+ bl GetMoneyCondition
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080441A4
+ ldr r0, _080441B4
+ ldr r0, [r0]
+ movs r2, 0x98
+ lsls r2, 2
+ adds r0, r2
+ str r1, [r0]
+_080441A4:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080441AC: .4byte gUnknown_203B418
+_080441B0: .4byte 0x00000644
+_080441B4: .4byte gUnknown_203B460
+_080441B8: .4byte gUnknown_203B45C
+ thumb_func_end sub_8044124
+
+ thumb_func_start sub_80441BC
+sub_80441BC:
+ push {lr}
+ ldr r0, _080441D8
+ ldr r0, [r0]
+ ldr r1, _080441DC
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _080441E0
+ cmp r0, 0x31
+ bgt _080441E0
+ movs r0, 0x1
+ b _080441E2
+ .align 2, 0
+_080441D8: .4byte gUnknown_203B418
+_080441DC: .4byte 0x00003a14
+_080441E0:
+ movs r0, 0
+_080441E2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80441BC
+
+ thumb_func_start sub_80441E8
+sub_80441E8:
+ push {lr}
+ ldr r0, _08044200
+ ldr r0, [r0]
+ ldr r1, _08044204
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0x3F
+ bgt _08044208
+ movs r0, 0
+ b _0804420A
+ .align 2, 0
+_08044200: .4byte gUnknown_203B418
+_08044204: .4byte 0x00003a0e
+_08044208:
+ movs r0, 0x1
+_0804420A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80441E8
+
+ thumb_func_start sub_8044210
+sub_8044210:
+ push {lr}
+ ldr r0, _0804422C
+ ldr r0, [r0]
+ ldr r1, _08044230
+ adds r0, r1
+ ldrb r0, [r0]
+ subs r0, 0x4B
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x16
+ bls _08044234
+ movs r0, 0
+ b _08044236
+ .align 2, 0
+_0804422C: .4byte gUnknown_203B418
+_08044230: .4byte 0x00000644
+_08044234:
+ movs r0, 0x1
+_08044236:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044210
+
+ thumb_func_start RunDungeon
+RunDungeon:
+ push {r4,lr}
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044994
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ adds r0, r4, 0
+ bl xxx_dungeon_80442D0
+ lsls r0, 24
+ lsrs r4, r0, 24
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ cmp r4, 0
+ beq _08044280
+ bl sub_807E378
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+_08044280:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044574
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080442C6
+ bl sub_8044820
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080442C6
+ bl sub_8044AB4
+ ldr r0, _080442CC
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r0, r2
+ ldrh r0, [r1]
+ adds r0, 0x1
+ strh r0, [r1]
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0x18
+ bne _080442C6
+ strh r4, [r1]
+_080442C6:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080442CC: .4byte gUnknown_203B418
+ thumb_func_end RunDungeon
+
+ thumb_func_start xxx_dungeon_80442D0
+xxx_dungeon_80442D0:
+ push {r4-r7,lr}
+ lsls r0, 24
+ lsrs r7, r0, 24
+ bl sub_8083600
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ bl sub_8069E8C
+ adds r0, r5, 0
+ bl sub_8070774
+ ldr r3, _08044320
+ ldr r1, _08044324
+ ldr r1, [r1]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ adds r1, r3
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, 0
+ beq _0804431A
+ ldr r0, [r5, 0x70]
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08044328
+_0804431A:
+ movs r0, 0
+ b _0804444E
+ .align 2, 0
+_08044320: .4byte gUnknown_80F6860
+_08044324: .4byte gUnknown_203B418
+_08044328:
+ bl sub_8083600
+ adds r5, r0, 0
+ cmp r5, 0
+ beq _0804431A
+ movs r0, 0
+ bl sub_807520C
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804435C
+ ldr r0, _08044388
+ ldr r1, [r0]
+ ldr r2, _0804438C
+ adds r0, r1, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08044356
+ ldr r3, _08044390
+ adds r0, r1, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804435C
+_08044356:
+ movs r0, 0xC
+ bl sub_803E46C
+_0804435C:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ movs r1, 0
+ strb r1, [r0]
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r2, r0, 24
+ cmp r2, 0
+ bne _0804431A
+ ldr r0, _08044388
+ ldr r1, [r0]
+ adds r0, r1, 0
+ adds r0, 0xB8
+ str r5, [r0]
+ adds r1, 0xBC
+ str r2, [r1]
+ cmp r7, 0
+ beq _08044394
+ movs r7, 0
+ b _0804439A
+ .align 2, 0
+_08044388: .4byte gUnknown_203B418
+_0804438C: .4byte 0x0000066c
+_08044390: .4byte 0x00000673
+_08044394:
+ adds r0, r5, 0
+ bl sub_8074B54
+_0804439A:
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804431A
+ adds r0, r5, 0
+ bl sub_8071DA4
+ ldr r6, _08044434
+ ldr r1, [r6]
+ movs r0, 0x1
+ strb r0, [r1, 0xF]
+ bl sub_805D8C8
+ ldr r0, [r6]
+ strb r4, [r0, 0xF]
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ ldr r2, [r5, 0x70]
+ ldrh r1, [r2]
+ movs r3, 0x80
+ lsls r3, 8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044400
+ subs r3, 0x1
+ adds r0, r3, 0
+ ands r0, r1
+ movs r3, 0x80
+ lsls r3, 7
+ adds r1, r3, 0
+ orrs r0, r1
+ strh r0, [r2]
+_08044400:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804444C
+ bl sub_8044454
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _0804444C
+ ldr r2, [r6]
+ adds r0, r2, 0
+ adds r0, 0xBC
+ ldr r1, [r0]
+ cmp r1, 0
+ beq _08044438
+ bl sub_805F02C
+ ldr r0, [r6]
+ adds r0, 0xBC
+ str r4, [r0]
+ movs r7, 0x1
+ b _08044328
+ .align 2, 0
+_08044434: .4byte gUnknown_203B418
+_08044438:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xF8
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _0804444C
+ movs r3, 0xCC
+ lsls r3, 3
+ adds r0, r2, r3
+ strh r1, [r0]
+ b _08044328
+_0804444C:
+ movs r0, 0x1
+_0804444E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end xxx_dungeon_80442D0
+
+ thumb_func_start sub_8044454
+sub_8044454:
+ push {r4-r6,lr}
+ ldr r0, _080444E8
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _080444E2
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r6, 0
+_08044466:
+ ldr r0, _080444E8
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _080444EC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ ldr r5, [r4, 0x70]
+ ldrh r0, [r5]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080444DC
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080444E2
+ adds r0, r4, 0
+ bl sub_8074B54
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080444DC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ ldrh r0, [r5]
+ ldr r2, _080444F0
+ adds r1, r2, 0
+ ands r0, r1
+ movs r2, 0x80
+ lsls r2, 7
+ adds r1, r2, 0
+ orrs r0, r1
+ strh r0, [r5]
+_080444DC:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08044466
+_080444E2:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080444E8: .4byte gUnknown_203B418
+_080444EC: .4byte 0x000135cc
+_080444F0: .4byte 0x00007fff
+ thumb_func_end sub_8044454
+
+ thumb_func_start sub_80444F4
+sub_80444F4:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ bl sub_8083600
+ cmp r6, r0
+ bne _08044566
+ ldr r0, _0804456C
+ ldr r1, [r0]
+ ldrb r0, [r1, 0xE]
+ cmp r0, 0
+ beq _08044566
+ movs r0, 0
+ strb r0, [r1, 0xE]
+ movs r5, 0
+_08044510:
+ ldr r0, _0804456C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08044570
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044560
+ cmp r6, r4
+ beq _08044560
+ ldr r0, [r4, 0x70]
+ ldrh r0, [r0]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r1, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08044560
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044566
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044560:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08044510
+_08044566:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804456C: .4byte gUnknown_203B418
+_08044570: .4byte 0x000135cc
+ thumb_func_end sub_80444F4
+
+ thumb_func_start sub_8044574
+sub_8044574:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ bl sub_8083600
+ mov r10, r0
+ movs r7, 0
+ mov r0, sp
+ adds r0, 0x4
+ str r0, [sp, 0x40]
+ ldr r1, _08044634
+ mov r9, r1
+_08044592:
+ mov r2, r9
+ ldr r0, [r2]
+ lsls r1, r7, 2
+ ldr r3, _08044638
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ ldr r6, [r5, 0x70]
+ mov r8, r6
+ ldrb r0, [r6, 0x7]
+ cmp r0, 0
+ bne _080446A4
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, 0
+ bne _080446AC
+ mov r1, r9
+ ldr r0, [r1]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl sub_8069E8C
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r6, r2
+ strb r4, [r0]
+ adds r0, r5, 0
+ bl sub_8070774
+ mov r3, r9
+ ldr r1, [r3]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r3, 0
+ ldrsh r1, [r1, r3]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ ldr r0, _0804463C
+ adds r1, r0
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080446A4
+ movs r3, 0xA4
+ lsls r3, 1
+ adds r0, r6, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080446A4
+ ldrh r1, [r6]
+ movs r2, 0x80
+ lsls r2, 8
+ adds r0, r2, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _080446A4
+ movs r3, 0x80
+ lsls r3, 7
+ adds r0, r3, 0
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ cmp r0, 0
+ beq _08044644
+ ldr r2, _08044640
+ adds r0, r2, 0
+ ands r0, r1
+ strh r0, [r6]
+ b _080446A4
+ .align 2, 0
+_08044634: .4byte gUnknown_203B418
+_08044638: .4byte 0x0001357c
+_0804463C: .4byte gUnknown_80F6860
+_08044640: .4byte 0x0000bfff
+_08044644:
+ ldr r1, _08044668
+ add r1, r8
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8074B54
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ adds r0, r5, 0
+ bl sub_8071DA4
+ movs r4, 0
+ b _0804466E
+ .align 2, 0
+_08044668: .4byte 0x00000145
+_0804466C:
+ adds r4, 0x1
+_0804466E:
+ cmp r4, 0x2
+ bgt _080446A4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075990
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _080446A4
+ adds r0, r5, 0
+ bl sub_8072CF4
+ lsls r0, 24
+ cmp r0, 0
+ beq _080446A4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804466C
+_080446A4:
+ adds r7, 0x1
+ cmp r7, 0x3
+ bgt _080446AC
+ b _08044592
+_080446AC:
+ movs r0, 0
+ mov r8, r0
+_080446B0:
+ adds r0, 0x1
+ mov r9, r0
+ add r2, sp, 0x8
+ ldr r1, [sp, 0x40]
+ mov r0, sp
+ movs r7, 0x2
+_080446BC:
+ mov r3, r8
+ str r3, [r0]
+ str r2, [r1]
+ adds r2, 0x8
+ adds r1, 0x8
+ adds r0, 0x8
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080446BC
+ str r3, [sp, 0x18]
+ str r3, [sp, 0x1C]
+ movs r7, 0
+_080446D4:
+ ldr r0, _08044710
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044714
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044760
+ ldr r1, [r4, 0x70]
+ movs r3, 0xA2
+ lsls r3, 1
+ adds r2, r1, r3
+ ldrb r0, [r2]
+ cmp r0, 0
+ beq _08044760
+ ldrb r0, [r1, 0x7]
+ cmp r0, 0
+ beq _08044718
+ adds r3, 0x1
+ adds r0, r1, r3
+ mov r1, r8
+ strb r1, [r0]
+ strb r1, [r2]
+ b _08044760
+ .align 2, 0
+_08044710: .4byte gUnknown_203B418
+_08044714: .4byte 0x0001357c
+_08044718:
+ mov r2, r10
+ movs r3, 0x4
+ ldrsh r1, [r2, r3]
+ movs r2, 0x4
+ ldrsh r0, [r4, r2]
+ subs r2, r1, r0
+ cmp r2, 0
+ bge _0804472A
+ negs r2, r2
+_0804472A:
+ mov r3, r10
+ movs r0, 0x6
+ ldrsh r1, [r3, r0]
+ movs r3, 0x6
+ ldrsh r0, [r4, r3]
+ subs r1, r0
+ cmp r1, 0
+ bge _0804473C
+ negs r1, r1
+_0804473C:
+ cmp r1, r2
+ bge _08044742
+ adds r1, r2, 0
+_08044742:
+ cmp r1, 0x2
+ ble _08044748
+ movs r1, 0x2
+_08044748:
+ add r3, sp, 0x20
+ lsls r0, r7, 3
+ adds r3, r0
+ str r4, [r3]
+ add r2, sp, 0x24
+ adds r2, r0
+ lsls r1, 3
+ ldr r0, [sp, 0x40]
+ adds r1, r0, r1
+ ldr r0, [r1]
+ str r0, [r2]
+ str r3, [r1]
+_08044760:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080446D4
+ mov r5, sp
+ movs r6, 0
+_0804476A:
+ ldr r4, [r5]
+ cmp r4, 0
+ beq _080447A0
+ ldr r1, [r4, 0x70]
+ ldr r3, _08044814
+ adds r2, r1, r3
+ movs r0, 0x1
+ strb r0, [r2]
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r1, r2
+ strb r6, [r0]
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_8075990
+ adds r0, r4, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ adds r0, r4, 0
+ bl sub_80450E0
+_080447A0:
+ ldr r5, [r5, 0x4]
+ cmp r5, 0
+ bne _0804476A
+ mov r0, r9
+ cmp r0, 0x2
+ ble _080446B0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044802
+ movs r7, 0
+_080447B8:
+ ldr r0, _08044818
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r3, _0804481C
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080447FC
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_080447FC:
+ adds r7, 0x1
+ cmp r7, 0x3
+ ble _080447B8
+_08044802:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044814: .4byte 0x00000145
+_08044818: .4byte gUnknown_203B418
+_0804481C: .4byte 0x0001357c
+ thumb_func_end sub_8044574
+
+ thumb_func_start sub_8044820
+sub_8044820:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ ldr r0, _08044830
+ mov r8, r0
+ b _080448FC
+ .align 2, 0
+_08044830: .4byte gUnknown_80F6860
+_08044834:
+ ldr r4, [r5, 0x70]
+ ldr r0, [r6]
+ adds r0, 0xB8
+ str r5, [r0]
+ bl sub_8069E8C
+ ldrh r2, [r4]
+ movs r1, 0x80
+ lsls r1, 8
+ adds r0, r1, 0
+ ands r0, r2
+ cmp r0, 0
+ bne _080448FA
+ movs r1, 0x80
+ lsls r1, 7
+ adds r0, r1, 0
+ ands r0, r2
+ lsls r0, 16
+ lsrs r1, r0, 16
+ cmp r1, 0
+ beq _0804486C
+ ldr r1, _08044868
+ adds r0, r1, 0
+ ands r0, r2
+ strh r0, [r4]
+ b _080448FA
+ .align 2, 0
+_08044868: .4byte 0x0000bfff
+_0804486C:
+ movs r2, 0xA2
+ lsls r2, 1
+ adds r0, r4, r2
+ strb r1, [r0]
+ adds r0, r5, 0
+ bl sub_8070774
+ ldr r1, [r6]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r1, r2
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ lsls r1, 1
+ movs r2, 0x32
+ muls r0, r2
+ adds r1, r0
+ add r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ cmp r0, 0
+ beq _080448FA
+ movs r1, 0xA4
+ lsls r1, 1
+ adds r0, r4, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _080448FA
+ ldrh r1, [r4]
+ ldr r2, _08044984
+ adds r0, r2, 0
+ ands r1, r0
+ movs r0, 0
+ strh r1, [r4]
+ ldr r2, _08044988
+ adds r1, r4, r2
+ strb r0, [r1]
+ adds r0, r5, 0
+ bl sub_8074B54
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ adds r0, r5, 0
+ bl sub_8071DA4
+ adds r0, r5, 0
+ movs r1, 0
+ bl sub_8075990
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+ adds r0, r5, 0
+ bl sub_8072CF4
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044924
+_080448FA:
+ adds r7, 0x1
+_080448FC:
+ cmp r7, 0xF
+ bgt _08044924
+ ldr r6, _0804498C
+ ldr r0, [r6]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080448FA
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044834
+_08044924:
+ bl sub_8044B28
+ lsls r0, 24
+ cmp r0, 0
+ bne _0804497A
+ movs r7, 0
+_08044930:
+ ldr r0, _0804498C
+ ldr r0, [r0]
+ lsls r1, r7, 2
+ ldr r2, _08044990
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ ldr r0, [r4, 0x70]
+ movs r1, 0xA2
+ lsls r1, 1
+ adds r5, r0, r1
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8074094
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044974
+ adds r0, r4, 0
+ bl sub_8071DA4
+ movs r0, 0
+ strb r0, [r5]
+_08044974:
+ adds r7, 0x1
+ cmp r7, 0xF
+ ble _08044930
+_0804497A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044984: .4byte 0x00003fff
+_08044988: .4byte 0x00000145
+_0804498C: .4byte gUnknown_203B418
+_08044990: .4byte 0x0001358c
+ thumb_func_end sub_8044820
+
+ thumb_func_start sub_8044994
+sub_8044994:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ ldr r1, _08044A94
+ ldr r4, _08044A98
+ ldr r0, [r4]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044A8A
+ bl sub_8071B48
+ ldr r0, [r4]
+ ldr r2, _08044A9C
+ adds r0, r2
+ movs r2, 0
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA0
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r1, _08044AA4
+ adds r0, r1
+ strb r2, [r0]
+ ldr r0, [r4]
+ adds r3, 0x2
+ adds r0, r3
+ strb r2, [r0]
+ ldr r0, [r4]
+ ldr r3, _08044AA8
+ adds r1, r0, r3
+ str r2, [r1]
+ ldr r1, _08044AAC
+ adds r0, r1
+ movs r1, 0x2
+ str r1, [r0]
+ mov r8, r2
+ adds r7, r4, 0
+_080449F2:
+ ldr r0, [r7]
+ mov r2, r8
+ lsls r1, r2, 2
+ ldr r3, _08044AB0
+ adds r0, r3
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r5, 0x70]
+ adds r4, r0, 0
+ movs r0, 0xA4
+ lsls r0, 1
+ adds r1, r4, r0
+ movs r0, 0
+ strb r0, [r1]
+ ldrb r0, [r4, 0x6]
+ movs r6, 0x1
+ cmp r0, 0
+ beq _08044A24
+ movs r6, 0
+_08044A24:
+ adds r0, r5, 0
+ movs r1, 0x32
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A46
+ ldr r1, [r7]
+ ldr r2, _08044AA8
+ adds r0, r1, r2
+ str r5, [r0]
+ ldr r3, _08044AAC
+ adds r1, r3
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ str r0, [r1]
+_08044A46:
+ adds r0, r5, 0
+ movs r1, 0x3F
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A60
+ ldr r0, [r7]
+ ldr r1, _08044AA4
+ adds r0, r1
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A60:
+ adds r0, r5, 0
+ movs r1, 0x38
+ bl sub_8071824
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044A7A
+ ldr r0, [r7]
+ ldr r2, _08044A9C
+ adds r0, r2
+ adds r0, r6
+ movs r1, 0x1
+ strb r1, [r0]
+_08044A7A:
+ movs r3, 0x1
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0x13
+ ble _080449F2
+ movs r0, 0
+ bl sub_8043ED0
+_08044A8A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044A94: .4byte gUnknown_80F6860
+_08044A98: .4byte gUnknown_203B418
+_08044A9C: .4byte 0x000037f8
+_08044AA0: .4byte 0x000037f9
+_08044AA4: .4byte 0x000037fa
+_08044AA8: .4byte 0x00017b2c
+_08044AAC: .4byte 0x00017b38
+_08044AB0: .4byte 0x000135cc
+ thumb_func_end sub_8044994
+
+ thumb_func_start sub_8044AB4
+sub_8044AB4:
+ push {r4,lr}
+ ldr r1, _08044ADC
+ ldr r0, _08044AE0
+ ldr r0, [r0]
+ movs r2, 0xCC
+ lsls r2, 3
+ adds r0, r2
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ adds r0, 0x1
+ lsls r0, 1
+ adds r1, 0x32
+ adds r0, r1
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _08044B1A
+ movs r4, 0
+ b _08044AE6
+ .align 2, 0
+_08044ADC: .4byte gUnknown_80F6860
+_08044AE0: .4byte gUnknown_203B418
+_08044AE4:
+ adds r4, 0x1
+_08044AE6:
+ cmp r4, 0x13
+ bgt _08044B08
+ ldr r0, _08044B20
+ ldr r0, [r0]
+ lsls r1, r4, 2
+ ldr r2, _08044B24
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044AE4
+ movs r0, 0
+ bl sub_807520C
+_08044B08:
+ movs r0, 0x1
+ movs r1, 0
+ bl sub_807EAA0
+ bl sub_8086AC0
+ movs r0, 0
+ bl sub_8043ED0
+_08044B1A:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044B20: .4byte gUnknown_203B418
+_08044B24: .4byte 0x000135cc
+ thumb_func_end sub_8044AB4
+
+ thumb_func_start sub_8044B28
+sub_8044B28:
+ push {r4,lr}
+ ldr r4, _08044B48
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x4]
+ cmp r0, 0
+ bne _08044B76
+ bl sub_8083600
+ cmp r0, 0
+ bne _08044B50
+ ldr r0, [r4]
+ ldr r1, _08044B4C
+ adds r0, r1
+ movs r1, 0x1
+ strb r1, [r0]
+ b _08044B76
+ .align 2, 0
+_08044B48: .4byte gUnknown_203B418
+_08044B4C: .4byte 0x00000654
+_08044B50:
+ ldr r0, [r4]
+ ldrb r2, [r0, 0x2]
+ cmp r2, 0x1
+ bne _08044B68
+ ldr r2, _08044B64
+ adds r1, r0, r2
+ movs r0, 0x2
+ strb r0, [r1]
+ b _08044B76
+ .align 2, 0
+_08044B64: .4byte 0x00000654
+_08044B68:
+ cmp r2, 0x2
+ beq _08044B70
+ movs r0, 0
+ b _08044B78
+_08044B70:
+ ldr r1, _08044B80
+ adds r0, r1
+ strb r2, [r0]
+_08044B76:
+ movs r0, 0x1
+_08044B78:
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044B80: .4byte 0x00000654
+ thumb_func_end sub_8044B28
+
+ thumb_func_start sub_8044B84
+sub_8044B84:
+ push {lr}
+ ldr r0, _08044B9C
+ ldr r0, [r0]
+ ldrb r0, [r0, 0x10]
+ cmp r0, 0
+ bne _08044BA0
+ bl sub_8044B28
+ lsls r0, 24
+ lsrs r0, 24
+ b _08044BA2
+ .align 2, 0
+_08044B9C: .4byte gUnknown_203B418
+_08044BA0:
+ movs r0, 0x1
+_08044BA2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044B84
+
+ thumb_func_start sub_8044BA8
+sub_8044BA8:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r5, r1, 24
+ cmp r4, 0x26
+ bne _08044BCC
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08044BCC
+ ldr r0, _08044BC8
+ b _08044C02
+ .align 2, 0
+_08044BC8: .4byte gUnknown_80F91EC
+_08044BCC:
+ ldr r1, _08044BEC
+ lsls r0, r4, 3
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r1, _08044BF0
+ bl strcmp
+ cmp r0, 0
+ beq _08044BE0
+ movs r0, 0x1
+_08044BE0:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044BF4
+ ldr r0, [r4]
+ b _08044C04
+ .align 2, 0
+_08044BEC: .4byte gUnknown_80F7C50
+_08044BF0: .4byte gUnknown_80F697C
+_08044BF4:
+ ldr r4, _08044C0C
+ adds r0, r5, 0
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+_08044C02:
+ ldr r0, [r0]
+_08044C04:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044C0C: .4byte gUnknown_80F7B14
+ thumb_func_end sub_8044BA8
+
+ thumb_func_start sub_8044C10
+sub_8044C10:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 24
+ lsrs r4, 24
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r1, r2, 0
+ adds r1, 0x44
+ movs r3, 0
+ movs r0, 0
+ strh r0, [r1]
+ cmp r4, 0
+ beq _08044C44
+ adds r0, r2, 0
+ adds r0, 0x48
+ strb r3, [r0]
+ adds r0, 0x8
+ strb r3, [r0]
+ adds r1, 0x14
+ ldr r0, _08044C4C
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+_08044C44:
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C4C: .4byte 0x0000ffff
+ thumb_func_end sub_8044C10
+
+ thumb_func_start sub_8044C50
+sub_8044C50:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r4, 16
+ lsrs r4, 16
+ bl sub_8083654
+ adds r2, r0, 0
+ adds r0, 0x44
+ movs r1, 0
+ strh r4, [r0]
+ adds r0, 0x4
+ strb r1, [r0]
+ adds r0, 0x8
+ strb r1, [r0]
+ adds r1, r2, 0
+ adds r1, 0x58
+ ldr r0, _08044C84
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x1
+ negs r0, r0
+ strh r0, [r1]
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044C84: .4byte 0x0000ffff
+ thumb_func_end sub_8044C50
+
+ thumb_func_start sub_8044C88
+sub_8044C88:
+ movs r2, 0
+ movs r1, 0
+ strh r1, [r0]
+ strb r2, [r0, 0x4]
+ strb r2, [r0, 0xC]
+ bx lr
+ thumb_func_end sub_8044C88
+
+ thumb_func_start sub_8044C94
+sub_8044C94:
+ movs r2, 0
+ strh r1, [r0]
+ strb r2, [r0, 0x4]
+ strb r2, [r0, 0xC]
+ bx lr
+ thumb_func_end sub_8044C94
+
+ thumb_func_start sub_8044CA0
+sub_8044CA0:
+ push {r4,lr}
+ adds r4, r0, 0
+ lsls r0, r1, 16
+ asrs r0, 16
+ bl sub_808DB48
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044CB6
+ movs r0, 0x2
+ b _08044CB8
+_08044CB6:
+ movs r0, 0x1
+_08044CB8:
+ strh r0, [r4]
+ movs r0, 0
+ strb r0, [r4, 0x4]
+ strb r0, [r4, 0xC]
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044CA0
+
+ thumb_func_start sub_8044CC8
+sub_8044CC8:
+ push {lr}
+ adds r3, r0, 0
+ adds r2, r1, 0
+ ldrb r1, [r2]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08044CEC
+ ldr r0, _08044CE8
+ ldrb r1, [r2]
+ lsls r1, 2
+ subs r1, 0x4
+ ldr r0, [r0]
+ adds r0, r1
+ b _08044D34
+ .align 2, 0
+_08044CE8: .4byte gUnknown_203B460
+_08044CEC:
+ adds r0, r1, 0
+ cmp r0, 0x80
+ bne _08044D06
+ movs r1, 0x4
+ ldrsh r0, [r2, r1]
+ movs r3, 0x6
+ ldrsh r1, [r2, r3]
+ bl sub_804954C
+ ldr r0, [r0, 0x14]
+ bl sub_8045108
+ b _08044D34
+_08044D06:
+ cmp r0, 0x81
+ bne _08044D0E
+ ldr r0, [r3, 0x70]
+ b _08044D32
+_08044D0E:
+ adds r0, r1, 0
+ adds r0, 0x70
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x3
+ bls _08044D1E
+ movs r0, 0
+ b _08044D34
+_08044D1E:
+ ldr r0, _08044D38
+ ldr r1, [r0]
+ ldrb r0, [r2]
+ subs r0, 0x90
+ lsls r0, 2
+ ldr r2, _08044D3C
+ adds r1, r2
+ adds r1, r0
+ ldr r0, [r1]
+ ldr r0, [r0, 0x70]
+_08044D32:
+ adds r0, 0x60
+_08044D34:
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044D38: .4byte gUnknown_203B418
+_08044D3C: .4byte 0x0001357c
+ thumb_func_end sub_8044CC8
+
+ thumb_func_start sub_8044D40
+sub_8044D40:
+ push {lr}
+ lsls r1, 3
+ adds r1, 0x4
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ subs r0, r1, 0x1
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x13
+ bhi _08044D74
+ ldr r1, _08044D70
+ ldrb r0, [r2]
+ lsls r0, 2
+ subs r0, 0x4
+ ldr r1, [r1]
+ adds r1, r0
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ bl sub_80910B4
+ b _08044D88
+ .align 2, 0
+_08044D70: .4byte gUnknown_203B460
+_08044D74:
+ lsls r0, r1, 24
+ lsrs r0, 24
+ cmp r0, 0x80
+ beq _08044D80
+ movs r0, 0
+ b _08044D8A
+_08044D80:
+ adds r0, r2, 0x4
+ movs r1, 0x1
+ bl sub_80461C8
+_08044D88:
+ movs r0, 0x1
+_08044D8A:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044D40
+
+ thumb_func_start sub_8044D90
+sub_8044D90:
+ push {lr}
+ ldr r3, [r0, 0x70]
+ lsls r1, 3
+ adds r1, 0x48
+ adds r3, r1
+ adds r1, r3, 0
+ bl sub_8044CC8
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044D90
+
+ thumb_func_start sub_8044DA4
+sub_8044DA4:
+ ldr r0, [r0, 0x70]
+ ldr r2, _08044DC0
+ ldr r2, [r2]
+ lsls r1, 3
+ adds r0, r1
+ adds r0, 0x48
+ ldrb r0, [r0]
+ lsls r0, 2
+ ldr r1, _08044DC4
+ adds r2, r1
+ adds r2, r0
+ ldr r0, [r2]
+ bx lr
+ .align 2, 0
+_08044DC0: .4byte gUnknown_203B418
+_08044DC4: .4byte 0x0001357c
+ thumb_func_end sub_8044DA4
+
+ thumb_func_start sub_8044DC8
+sub_8044DC8:
+ push {r4,lr}
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0xE9
+ beq _08044DE8
+ ldr r4, _08044DE4
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 23
+ adds r0, r4
+ ldrh r0, [r0]
+ b _08044DEA
+ .align 2, 0
+_08044DE4: .4byte gUnknown_80F6964
+_08044DE8:
+ movs r0, 0x35
+_08044DEA:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044DC8
+
+ thumb_func_start sub_8044DF0
+sub_8044DF0:
+ push {r4,lr}
+ ldr r4, [r0, 0x70]
+ bl sub_8044D90
+ adds r1, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0x80
+ bne _08044E10
+ adds r0, r4, 0
+ adds r0, 0x4C
+ movs r1, 0x1
+ bl sub_80461C8
+ b _08044E1C
+_08044E10:
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ strb r0, [r1, 0x1]
+ strb r0, [r1]
+ bl sub_80910B4
+_08044E1C:
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044DF0
+
+ thumb_func_start sub_8044E24
+sub_8044E24:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x4
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r7, r2, 0
+ bl sub_8044D90
+ adds r5, r0, 0
+ ldr r0, [r4, 0x70]
+ mov r8, r0
+ ldrb r0, [r5, 0x2]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08044EBA
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08044EB0
+ lsls r1, r6, 3
+ mov r2, r8
+ adds r0, r2, r1
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0x80
+ bne _08044EA4
+ ldr r0, [r5]
+ str r0, [sp]
+ adds r4, r1, r2
+ adds r4, 0x4C
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_80461C8
+ ldrb r1, [r5, 0x2]
+ subs r1, 0x7D
+ lsls r1, 24
+ lsrs r1, 16
+ ldr r2, _08044E9C
+ ldr r0, [sp]
+ ands r0, r2
+ orrs r0, r1
+ ldr r1, _08044EA0
+ ands r0, r1
+ movs r1, 0xF8
+ lsls r1, 15
+ orrs r0, r1
+ str r0, [sp]
+ adds r0, r4, 0
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_80460F8
+ b _08044EBA
+ .align 2, 0
+_08044E9C: .4byte 0xffff00ff
+_08044EA0: .4byte 0xff00ffff
+_08044EA4:
+ ldrb r0, [r5, 0x2]
+ subs r0, 0x7D
+ strb r0, [r5, 0x1]
+ movs r0, 0x7C
+ strb r0, [r5, 0x2]
+ b _08044EBA
+_08044EB0:
+ adds r0, r4, 0
+ adds r1, r6, 0
+ adds r2, r7, 0
+ bl sub_8044DF0
+_08044EBA:
+ add sp, 0x4
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044E24
+
+ thumb_func_start sub_8044EC8
+sub_8044EC8:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ ldr r1, _08044EE8
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrh r4, [r0]
+ cmp r4, 0x26
+ bne _08044EF0
+ bl sub_8043D10
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08044EF0
+ ldr r0, _08044EEC
+ b _08044F2C
+ .align 2, 0
+_08044EE8: .4byte gUnknown_202EE44
+_08044EEC: .4byte gUnknown_80F91EC
+_08044EF0:
+ ldr r1, _08044F10
+ lsls r0, r4, 3
+ adds r4, r0, r1
+ ldr r0, [r4]
+ ldr r1, _08044F14
+ bl strcmp
+ cmp r0, 0
+ beq _08044F04
+ movs r0, 0x1
+_08044F04:
+ lsls r0, 24
+ cmp r0, 0
+ beq _08044F18
+ ldr r0, [r4]
+ b _08044F2E
+ .align 2, 0
+_08044F10: .4byte gUnknown_80F7C50
+_08044F14: .4byte gUnknown_80F697C
+_08044F18:
+ ldr r4, _08044F34
+ ldr r1, _08044F38
+ lsls r0, r5, 2
+ adds r0, r1
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r4, 0x4
+ adds r0, r4
+_08044F2C:
+ ldr r0, [r0]
+_08044F2E:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08044F34: .4byte gUnknown_80F7B14
+_08044F38: .4byte gUnknown_202EE44
+ thumb_func_end sub_8044EC8
+
+ thumb_func_start sub_8044F3C
+sub_8044F3C:
+ push {lr}
+ adds r1, r0, 0
+ cmp r1, 0
+ blt _08044F54
+ ldr r0, _08044F50
+ lsls r1, 2
+ adds r1, r0
+ ldrb r0, [r1, 0x3]
+ b _08044F56
+ .align 2, 0
+_08044F50: .4byte gUnknown_202EE44
+_08044F54:
+ movs r0, 0
+_08044F56:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044F3C
+
+ thumb_func_start sub_8044F5C
+sub_8044F5C:
+ push {r4-r7,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ lsls r1, 24
+ lsrs r7, r1, 24
+ ldr r0, _08044FAC
+ ldr r2, [r0]
+ adds r6, r0, 0
+ cmp r2, 0x9
+ bgt _08044FA4
+ movs r3, 0
+ ldr r5, _08044FB0
+ cmp r3, r2
+ bge _08044F8A
+ adds r1, r2, 0
+ adds r2, r5, 0
+_08044F7C:
+ ldrh r0, [r2]
+ cmp r0, r4
+ beq _08044FA4
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, r1
+ blt _08044F7C
+_08044F8A:
+ ldr r0, [r6]
+ lsls r0, 2
+ adds r0, r5
+ strh r4, [r0]
+ strb r7, [r0, 0x2]
+ ldr r0, [r6]
+ lsls r0, 2
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0, 0x3]
+ ldr r0, [r6]
+ adds r0, 0x1
+ str r0, [r6]
+_08044FA4:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08044FAC: .4byte gUnknown_202EE6C
+_08044FB0: .4byte gUnknown_202EE44
+ thumb_func_end sub_8044F5C
+
+ thumb_func_start sub_8044FB4
+sub_8044FB4:
+ push {r4,lr}
+ lsls r0, 16
+ lsrs r4, r0, 16
+ movs r1, 0
+ ldr r0, _08044FD4
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _08044FE4
+ adds r3, r0, 0
+ ldr r2, _08044FD8
+_08044FC8:
+ ldrh r0, [r2]
+ cmp r0, r4
+ bne _08044FDC
+ adds r0, r1, 0
+ b _08044FE8
+ .align 2, 0
+_08044FD4: .4byte gUnknown_202EE6C
+_08044FD8: .4byte gUnknown_202EE44
+_08044FDC:
+ adds r2, 0x4
+ adds r1, 0x1
+ cmp r1, r3
+ blt _08044FC8
+_08044FE4:
+ movs r0, 0x1
+ negs r0, r0
+_08044FE8:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8044FB4
+
+ thumb_func_start sub_8044FF0
+sub_8044FF0:
+ push {r4,r5,lr}
+ lsls r0, 16
+ lsrs r3, r0, 16
+ movs r2, 0
+ ldr r1, _08045010
+ ldr r0, [r1]
+ cmp r2, r0
+ bge _08045022
+ movs r5, 0
+ adds r4, r1, 0
+ ldr r1, _08045014
+_08045006:
+ ldrh r0, [r1]
+ cmp r0, r3
+ bne _08045018
+ strb r5, [r1, 0x3]
+ b _08045022
+ .align 2, 0
+_08045010: .4byte gUnknown_202EE6C
+_08045014: .4byte gUnknown_202EE44
+_08045018:
+ adds r1, 0x4
+ adds r2, 0x1
+ ldr r0, [r4]
+ cmp r2, r0
+ blt _08045006
+_08045022:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8044FF0
+
+ thumb_func_start sub_8045028
+sub_8045028:
+ push {r4,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ ldr r0, [r2, 0x70]
+ adds r4, r0, 0
+ adds r4, 0x44
+ cmp r1, 0
+ beq _08045044
+ adds r0, r2, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804505A
+_08045044:
+ ldrh r0, [r4]
+ cmp r0, 0
+ beq _0804505A
+ cmp r0, 0x2
+ beq _0804505A
+ cmp r0, 0x1
+ beq _0804505A
+ cmp r0, 0x5
+ beq _0804505A
+ movs r0, 0
+ b _0804505C
+_0804505A:
+ movs r0, 0x1
+_0804505C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045028
+
+ thumb_func_start sub_8045064
+sub_8045064:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ movs r1, 0
+ ldr r0, _080450D4
+ mov r8, r0
+ ldr r0, [r0]
+ cmp r1, r0
+ bge _080450C8
+ mov r7, r8
+ ldr r2, _080450D8
+ mov r9, r2
+ ldr r0, _080450DC
+ mov r12, r0
+_08045082:
+ adds r4, r1, 0x1
+ ldr r0, [r7]
+ adds r5, r4, 0
+ cmp r5, r0
+ bge _080450BE
+ lsls r0, r1, 2
+ mov r1, r12
+ adds r3, r0, r1
+ mov r6, r9
+ lsls r0, r5, 2
+ adds r2, r0, r1
+_08045098:
+ ldrh r1, [r3]
+ lsls r1, 3
+ adds r1, r6
+ ldrh r0, [r2]
+ lsls r0, 3
+ adds r0, r6
+ ldr r1, [r1]
+ ldr r0, [r0]
+ cmp r1, r0
+ ble _080450B4
+ ldr r1, [r3]
+ ldr r0, [r2]
+ str r0, [r3]
+ str r1, [r2]
+_080450B4:
+ adds r2, 0x4
+ adds r4, 0x1
+ ldr r0, [r7]
+ cmp r4, r0
+ blt _08045098
+_080450BE:
+ adds r1, r5, 0
+ mov r2, r8
+ ldr r0, [r2]
+ cmp r1, r0
+ blt _08045082
+_080450C8:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080450D4: .4byte gUnknown_202EE6C
+_080450D8: .4byte gUnknown_80F7C54
+_080450DC: .4byte gUnknown_202EE44
+ thumb_func_end sub_8045064
+
+ thumb_func_start sub_80450E0
+sub_80450E0:
+ push {lr}
+ cmp r0, 0
+ bne _080450EA
+ movs r0, 0
+ b _080450F2
+_080450EA:
+ ldr r0, [r0]
+ cmp r0, 0
+ beq _080450F2
+ movs r0, 0x1
+_080450F2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80450E0
+
+ thumb_func_start sub_80450F8
+sub_80450F8:
+ ldr r0, [r0]
+ bx lr
+ thumb_func_end sub_80450F8
+
+ thumb_func_start sub_80450FC
+sub_80450FC:
+ adds r0, 0x25
+ ldrb r0, [r0]
+ bx lr
+ thumb_func_end sub_80450FC
+
+ thumb_func_start sub_8045104
+sub_8045104:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045104
+
+ thumb_func_start sub_8045108
+sub_8045108:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045108
+
+ thumb_func_start sub_804510C
+sub_804510C:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_804510C
+
+ thumb_func_start sub_8045110
+sub_8045110:
+ ldr r0, [r0, 0x70]
+ bx lr
+ thumb_func_end sub_8045110
+
+ thumb_func_start sub_8045114
+sub_8045114:
+ push {lr}
+ movs r1, 0x4
+ ldrsh r2, [r0, r1]
+ movs r3, 0x6
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_804954C
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045114
+
+ thumb_func_start sub_8045128
+sub_8045128:
+ push {lr}
+ movs r1, 0x4
+ ldrsh r2, [r0, r1]
+ movs r3, 0x6
+ ldrsh r1, [r0, r3]
+ adds r0, r2, 0
+ bl sub_8049590
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045128
+
+ thumb_func_start sub_804513C
+sub_804513C:
+ push {r4-r7,lr}
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _08045200
+ ldr r4, _08045204
+ movs r5, 0
+_08045148:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3
+ ble _08045148
+ ldr r1, _08045208
+ movs r2, 0
+ adds r0, r1, 0x5
+_08045164:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08045164
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _0804520C
+ ldr r4, _08045210
+ movs r5, 0
+_08045176:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0xF
+ ble _08045176
+ ldr r1, _08045214
+ movs r2, 0
+ adds r0, r1, 0
+ adds r0, 0xF
+_08045194:
+ strb r2, [r0]
+ subs r0, 0x1
+ cmp r0, r1
+ bge _08045194
+ movs r3, 0
+ ldr r5, _080451FC
+ ldr r4, _08045218
+ movs r2, 0
+_080451A4:
+ ldr r0, [r5]
+ lsls r1, r3, 2
+ adds r0, r4
+ adds r0, r1
+ str r2, [r0]
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _080451A4
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _0804521C
+ ldr r4, _08045220
+ movs r5, 0
+_080451BE:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3F
+ ble _080451BE
+ movs r3, 0
+ ldr r7, _080451FC
+ ldr r6, _08045224
+ ldr r4, _08045228
+ movs r5, 0
+_080451DE:
+ ldr r0, [r7]
+ lsls r2, r3, 2
+ adds r1, r0, r6
+ adds r1, r2
+ adds r0, r4
+ str r0, [r1]
+ str r5, [r0]
+ adds r4, 0x74
+ adds r3, 0x1
+ cmp r3, 0x3F
+ ble _080451DE
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080451FC: .4byte gUnknown_203B418
+_08045200: .4byte 0x0001357c
+_08045204: .4byte 0x0001381c
+_08045208: .4byte gUnknown_202EE70
+_0804520C: .4byte 0x0001358c
+_08045210: .4byte 0x000139ec
+_08045214: .4byte gUnknown_202EE76
+_08045218: .4byte 0x000135cc
+_0804521C: .4byte 0x0001361c
+_08045220: .4byte 0x0001412c
+_08045224: .4byte 0x0001371c
+_08045228: .4byte 0x00015e2c
+ thumb_func_end sub_804513C
+
+ thumb_func_start sub_804522C
+sub_804522C:
+ push {r4-r7,lr}
+ sub sp, 0x4
+ ldr r2, _08045274
+ ldr r0, [r2]
+ ldr r3, _08045278
+ adds r1, r0, r3
+ ldrb r7, [r1]
+ ldr r1, _0804527C
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080452AA
+ movs r6, 0
+ adds r7, r2, 0
+_08045248:
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045280
+ adds r0, r2
+ adds r0, r1
+ ldr r5, [r0]
+ adds r0, r5, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452A2
+ ldr r0, [r7]
+ ldr r3, _08045284
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r5, r0
+ bne _08045288
+ adds r0, r5, 0
+ bl sub_806C51C
+ b _080452A2
+ .align 2, 0
+_08045274: .4byte gUnknown_203B418
+_08045278: .4byte 0x00018210
+_0804527C: .4byte 0x0001820a
+_08045280: .4byte 0x000135cc
+_08045284: .4byte 0x000181f8
+_08045288:
+ ldr r4, [r5, 0x70]
+ adds r0, r5, 0
+ bl sub_804187C
+ adds r2, r0, 0
+ adds r0, r4, 0
+ adds r0, 0x98
+ ldr r0, [r0]
+ movs r3, 0x4
+ ldrsh r1, [r4, r3]
+ movs r3, 0
+ bl sub_800F75C
+_080452A2:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08045248
+ b _0804533E
+_080452AA:
+ movs r6, 0
+_080452AC:
+ ldr r0, _08045348
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _0804534C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452CC
+ adds r0, r4, 0
+ bl sub_806C51C
+_080452CC:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _080452AC
+ movs r6, 0
+_080452D4:
+ ldr r5, _08045348
+ ldr r0, [r5]
+ lsls r1, r6, 2
+ ldr r3, _08045350
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080452F4
+ adds r0, r4, 0
+ bl sub_806C51C
+_080452F4:
+ adds r6, 0x1
+ cmp r6, 0xF
+ ble _080452D4
+ movs r6, 0
+ ldr r0, [r5]
+ ldr r1, _08045354
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ bge _08045336
+ adds r4, r5, 0
+_0804530C:
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ ldr r3, _08045358
+ adds r0, r3
+ adds r0, r1
+ ldr r0, [r0]
+ movs r1, 0
+ str r1, [sp]
+ adds r1, r7, 0
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80462AC
+ adds r6, 0x1
+ ldr r0, [r4]
+ ldr r1, _08045354
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r6, r0
+ blt _0804530C
+_08045336:
+ cmp r7, 0
+ beq _0804533E
+ bl sub_807FA9C
+_0804533E:
+ add sp, 0x4
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045348: .4byte gUnknown_203B418
+_0804534C: .4byte 0x0001357c
+_08045350: .4byte 0x0001358c
+_08045354: .4byte 0x00003904
+_08045358: .4byte 0x0001361c
+ thumb_func_end sub_804522C
+
+ thumb_func_start sub_804535C
+sub_804535C:
+ push {lr}
+ adds r2, r0, 0
+ cmp r1, 0
+ beq _0804536C
+ ldr r0, [r1]
+ str r0, [r2, 0xC]
+ ldr r0, [r1, 0x4]
+ b _0804538E
+_0804536C:
+ movs r0, 0x4
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [r2, 0xC]
+ movs r0, 0x6
+ ldrsh r1, [r2, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0x80
+ lsls r1, 5
+ adds r0, r1
+_0804538E:
+ str r0, [r2, 0x10]
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804535C
+
+ thumb_func_start sub_8045394
+sub_8045394:
+ str r1, [r0, 0xC]
+ str r2, [r0, 0x10]
+ bx lr
+ thumb_func_end sub_8045394
+
+ thumb_func_start sub_804539C
+sub_804539C:
+ ldr r3, [r0, 0xC]
+ adds r3, r1
+ str r3, [r0, 0xC]
+ ldr r1, [r0, 0x10]
+ adds r1, r2
+ str r1, [r0, 0x10]
+ bx lr
+ thumb_func_end sub_804539C
+
+ thumb_func_start sub_80453AC
+sub_80453AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r0, r8
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r6, r0, 24
+ movs r5, 0
+ movs r0, 0x6
+ subs r3, r0, r6
+ ldr r4, _080453D8
+ b _080453DE
+ .align 2, 0
+_080453D8: .4byte gUnknown_202EE70
+_080453DC:
+ adds r5, 0x1
+_080453DE:
+ cmp r5, r3
+ bgt _08045400
+ movs r2, 0
+ cmp r2, r6
+ bge _080453FA
+ adds r1, r5, r4
+ b _080453F4
+_080453EC:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r6
+ bge _080453FA
+_080453F4:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _080453EC
+_080453FA:
+ cmp r2, r6
+ bne _080453DC
+ mov r9, r5
+_08045400:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ beq _080454FC
+ movs r5, 0
+ ldr r7, _080454DC
+_0804540C:
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r2, _080454E4
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r0, 24
+ mov r10, r0
+ cmp r0, 0
+ bne _080454F0
+ movs r0, 0x1
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ adds r0, r7
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strh r2, [r0, 0x2]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ ldr r1, [r4, 0x70]
+ strh r0, [r1, 0x4]
+ ldr r0, [r4, 0x70]
+ movs r5, 0
+ strb r5, [r0, 0x6]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80687D0
+ str r0, [r4, 0x64]
+ mov r1, r9
+ lsls r0, r1, 4
+ adds r0, 0x40
+ adds r1, r4, 0
+ adds r1, 0x68
+ strh r0, [r1]
+ adds r1, 0x2
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6C
+ movs r2, 0
+ strb r2, [r0]
+ adds r1, 0x1
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6D
+ movs r5, 0x1
+ strb r5, [r0]
+ adds r0, 0x2
+ strb r5, [r0]
+ mov r0, r10
+ str r0, [r4, 0x1C]
+ bl sub_8045ACC
+ ldr r0, [r4, 0x70]
+ ldr r1, _080454E8
+ adds r0, r1
+ mov r2, r9
+ strb r2, [r0]
+ ldr r0, [r4, 0x70]
+ movs r5, 0xB4
+ lsls r5, 1
+ adds r0, r5
+ strb r6, [r0]
+ cmp r6, 0
+ beq _080454C6
+ ldr r3, _080454EC
+ movs r2, 0x1
+ adds r1, r6, 0
+_080454B6:
+ mov r5, r9
+ adds r0, r5, r3
+ strb r2, [r0]
+ movs r0, 0x1
+ add r9, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _080454B6
+_080454C6:
+ ldr r1, _080454E0
+ ldr r0, [r1]
+ movs r2, 0xCD
+ lsls r2, 3
+ adds r0, r2
+ ldrh r2, [r0]
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ strh r2, [r4, 0x26]
+ adds r0, r4, 0
+ b _080454FE
+ .align 2, 0
+_080454DC: .4byte 0x0000069c
+_080454E0: .4byte gUnknown_203B418
+_080454E4: .4byte 0x0001357c
+_080454E8: .4byte 0x00000167
+_080454EC: .4byte gUnknown_202EE70
+_080454F0:
+ movs r0, 0x82
+ lsls r0, 2
+ adds r7, r0
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _0804540C
+_080454FC:
+ movs r0, 0
+_080454FE:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80453AC
+
+ thumb_func_start sub_804550C
+sub_804550C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r0, 0x1
+ negs r0, r0
+ mov r9, r0
+ mov r0, r8
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r7, r0, 24
+ movs r5, 0
+ movs r0, 0x10
+ subs r3, r0, r7
+ ldr r4, _08045538
+ b _0804553E
+ .align 2, 0
+_08045538: .4byte gUnknown_202EE76
+_0804553C:
+ adds r5, 0x1
+_0804553E:
+ cmp r5, r3
+ bgt _08045560
+ movs r2, 0
+ cmp r2, r7
+ bge _0804555A
+ adds r1, r5, r4
+ b _08045554
+_0804554C:
+ adds r1, 0x1
+ adds r2, 0x1
+ cmp r2, r7
+ bge _0804555A
+_08045554:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0804554C
+_0804555A:
+ cmp r2, r7
+ bne _0804553C
+ mov r9, r5
+_08045560:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r9, r0
+ bne _0804556A
+ b _08045670
+_0804556A:
+ movs r5, 0
+ movs r1, 0x1
+ mov r10, r1
+ ldr r2, _08045650
+ mov r3, r9
+ lsls r0, r3, 4
+ adds r0, 0xA0
+ str r0, [sp]
+_0804557A:
+ ldr r1, _08045654
+ ldr r0, [r1]
+ lsls r1, r5, 2
+ ldr r3, _08045658
+ adds r0, r3
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ str r2, [sp, 0x4]
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r6, r0, 24
+ ldr r2, [sp, 0x4]
+ cmp r6, 0
+ bne _08045664
+ mov r0, r10
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ subs r0, 0x2
+ strb r6, [r0]
+ ldr r1, _08045654
+ ldr r0, [r1]
+ adds r0, r2
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strh r2, [r0, 0x2]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ ldr r1, [r4, 0x70]
+ strh r0, [r1, 0x4]
+ ldr r0, [r4, 0x70]
+ mov r3, r10
+ strb r3, [r0, 0x6]
+ movs r0, 0
+ mov r1, r8
+ bl sub_8069F54
+ lsls r0, 16
+ asrs r0, 16
+ bl sub_80687D0
+ str r0, [r4, 0x64]
+ adds r0, r4, 0
+ adds r0, 0x68
+ mov r5, sp
+ ldrh r5, [r5]
+ strh r5, [r0]
+ adds r1, r4, 0
+ adds r1, 0x6A
+ movs r0, 0x7
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6C
+ movs r1, 0
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x6B
+ movs r0, 0xFF
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x6D
+ mov r2, r10
+ strb r2, [r0]
+ adds r0, 0x2
+ strb r2, [r0]
+ str r6, [r4, 0x1C]
+ ldr r0, [r4, 0x70]
+ ldr r3, _0804565C
+ adds r0, r3
+ mov r5, r9
+ strb r5, [r0]
+ ldr r0, [r4, 0x70]
+ movs r1, 0xB4
+ lsls r1, 1
+ adds r0, r1
+ strb r7, [r0]
+ cmp r7, 0
+ beq _08045636
+ ldr r3, _08045660
+ movs r2, 0x1
+ adds r1, r7, 0
+_08045626:
+ mov r5, r9
+ adds r0, r5, r3
+ strb r2, [r0]
+ movs r0, 0x1
+ add r9, r0
+ subs r1, 0x1
+ cmp r1, 0
+ bne _08045626
+_08045636:
+ bl sub_8045ACC
+ ldr r1, _08045654
+ ldr r0, [r1]
+ movs r2, 0xCD
+ lsls r2, 3
+ adds r0, r2
+ ldrh r2, [r0]
+ adds r1, r2, 0x1
+ strh r1, [r0]
+ strh r2, [r4, 0x26]
+ adds r0, r4, 0
+ b _08045672
+ .align 2, 0
+_08045650: .4byte 0x00000ebc
+_08045654: .4byte gUnknown_203B418
+_08045658: .4byte 0x0001358c
+_0804565C: .4byte 0x00000167
+_08045660: .4byte gUnknown_202EE76
+_08045664:
+ movs r3, 0x82
+ lsls r3, 2
+ adds r2, r3
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _0804557A
+_08045670:
+ movs r0, 0
+_08045672:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_804550C
+
+ thumb_func_start sub_8045684
+sub_8045684:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ mov r10, r1
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+ lsls r2, 24
+ lsrs r2, 24
+ mov r9, r2
+ movs r5, 0
+ ldr r7, _080456E4
+ ldr r6, _080456E8
+_080456A2:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _080456EC
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r1, r0, 24
+ cmp r1, 0
+ bne _080456F0
+ movs r0, 0x2
+ str r0, [r4]
+ ldr r0, [r7]
+ adds r0, r6
+ str r0, [r4, 0x70]
+ mov r2, r8
+ strb r2, [r0]
+ ldr r0, [r4, 0x70]
+ mov r2, r9
+ strb r2, [r0, 0x1]
+ str r1, [r4, 0x1C]
+ adds r0, r4, 0
+ adds r0, 0x22
+ strb r1, [r0]
+ mov r2, r10
+ ldr r0, [r2]
+ str r0, [r4, 0x4]
+ strh r1, [r4, 0x26]
+ adds r0, r4, 0
+ b _080456FA
+ .align 2, 0
+_080456E4: .4byte gUnknown_203B418
+_080456E8: .4byte 0x00003908
+_080456EC: .4byte 0x0001371c
+_080456F0:
+ adds r6, 0x4
+ adds r5, 0x1
+ cmp r5, 0x3F
+ ble _080456A2
+ movs r0, 0
+_080456FA:
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045684
+
+ thumb_func_start sub_8045708
+sub_8045708:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ mov r8, r0
+ ldr r1, _08045744
+ ldr r0, _08045748
+ ldr r0, [r0]
+ ldr r2, _0804574C
+ adds r0, r2
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _0804579C
+ mov r1, r8
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl sub_8049590
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0x2
+ bne _0804579C
+ b _080457C4
+ .align 2, 0
+_08045744: .4byte gUnknown_810ACC0
+_08045748: .4byte gUnknown_203B418
+_0804574C: .4byte 0x00003a0e
+_08045750:
+ movs r0, 0x3
+ str r0, [r4]
+ ldr r0, _08045798
+ adds r1, r6, r0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r0, r1
+ str r0, [r4, 0x70]
+ mov r3, r8
+ ldr r0, [r3]
+ str r0, [r4, 0x4]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ adds r0, r4, 0
+ bl sub_8045394
+ movs r0, 0
+ strh r7, [r4, 0x26]
+ adds r1, r4, 0
+ adds r1, 0x22
+ strb r0, [r1]
+ str r7, [r4, 0x1C]
+ adds r0, r4, 0
+ b _080457C6
+ .align 2, 0
+_08045798: .4byte 0x00003804
+_0804579C:
+ movs r5, 0
+ ldr r3, _080457D4
+ mov r9, r3
+_080457A2:
+ mov r1, r9
+ ldr r0, [r1]
+ lsls r6, r5, 2
+ ldr r2, _080457D8
+ adds r0, r2
+ adds r0, r6
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ lsrs r7, r0, 24
+ cmp r7, 0
+ beq _08045750
+ adds r5, 0x1
+ cmp r5, 0x3F
+ ble _080457A2
+_080457C4:
+ movs r0, 0
+_080457C6:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080457D4: .4byte gUnknown_203B418
+_080457D8: .4byte 0x0001361c
+ thumb_func_end sub_8045708
+
+ thumb_func_start sub_80457DC
+sub_80457DC:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ movs r0, 0x5
+ str r0, [r4]
+ movs r6, 0
+ movs r5, 0
+ strh r5, [r4, 0x4]
+ strh r5, [r4, 0x6]
+ adds r0, r4, 0
+ movs r1, 0
+ movs r2, 0
+ bl sub_8045394
+ strh r5, [r4, 0x26]
+ adds r4, 0x22
+ strb r6, [r4]
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80457DC
+
+ thumb_func_start sub_8045804
+sub_8045804:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ beq _0804581C
+ cmp r0, 0x1
+ bcc _08045880
+ cmp r0, 0x5
+ beq _08045880
+_08045818:
+ movs r0, 0x1
+ b _08045882
+_0804581C:
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045880
+ ldr r0, _08045874
+ ldr r1, [r0]
+ ldr r0, _08045878
+ adds r2, r1, r0
+ ldr r5, [r2, 0x10]
+ ldr r3, [r4, 0x70]
+ ldrb r0, [r3, 0x6]
+ cmp r0, 0
+ beq _08045818
+ ldr r6, _0804587C
+ adds r0, r1, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0804584C
+ adds r0, r3, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045880
+_0804584C:
+ adds r0, r2, 0
+ adds r0, 0x23
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045818
+ adds r0, r2, 0
+ adds r0, 0x25
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045818
+ cmp r5, 0
+ beq _08045880
+ adds r1, r4, 0x4
+ adds r0, r2, 0
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ b _08045882
+ .align 2, 0
+_08045874: .4byte gUnknown_203B418
+_08045878: .4byte 0x000181e8
+_0804587C: .4byte 0x0001820f
+_08045880:
+ movs r0, 0
+_08045882:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045804
+
+ thumb_func_start sub_8045888
+sub_8045888:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045988
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bge _0804589C
+ adds r1, 0xFF
+_0804589C:
+ asrs r1, 8
+ ldr r0, _080458F0
+ ldr r2, [r0]
+ ldr r3, _080458F4
+ adds r0, r2, r3
+ movs r5, 0
+ ldrsh r0, [r0, r5]
+ subs r3, r1, r0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bge _080458B4
+ adds r0, 0xFF
+_080458B4:
+ asrs r0, 8
+ ldr r5, _080458F8
+ adds r1, r2, r5
+ movs r5, 0
+ ldrsh r1, [r1, r5]
+ subs r1, r0, r1
+ movs r0, 0x20
+ negs r0, r0
+ cmp r3, r0
+ blt _08045988
+ cmp r1, r0
+ blt _08045988
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r3, r0
+ bgt _08045988
+ cmp r1, 0xC0
+ bgt _08045988
+ ldr r0, _080458FC
+ adds r5, r2, r0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x5
+ bhi _08045984
+ lsls r0, 2
+ ldr r1, _08045900
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_080458F0: .4byte gUnknown_203B418
+_080458F4: .4byte 0x000181f0
+_080458F8: .4byte 0x000181f2
+_080458FC: .4byte 0x000181e8
+_08045900: .4byte _08045904
+ .align 2, 0
+_08045904:
+ .4byte _08045988
+ .4byte _08045934
+ .4byte _08045964
+ .4byte _0804591C
+ .4byte _08045984
+ .4byte _08045988
+_0804591C:
+ adds r0, r5, 0
+ adds r0, 0x26
+_08045920:
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045984
+ adds r0, r4, 0x4
+ bl sub_803F428
+ lsls r0, 24
+_0804592E:
+ cmp r0, 0
+ bne _08045984
+ b _08045988
+_08045934:
+ ldr r1, [r4, 0x70]
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08045984
+ ldr r0, _0804595C
+ ldr r0, [r0]
+ ldr r2, _08045960
+ adds r0, r2
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045954
+ adds r0, r1, 0
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045988
+_08045954:
+ adds r0, r5, 0
+ adds r0, 0x25
+ b _08045920
+ .align 2, 0
+_0804595C: .4byte gUnknown_203B418
+_08045960: .4byte 0x0001820f
+_08045964:
+ ldr r0, _0804597C
+ ldr r0, [r0]
+ ldr r3, _08045980
+ adds r0, r3
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045984
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ b _0804592E
+ .align 2, 0
+_0804597C: .4byte gUnknown_203B418
+_08045980: .4byte 0x0001820f
+_08045984:
+ movs r0, 0x1
+ b _0804598A
+_08045988:
+ movs r0, 0
+_0804598A:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045888
+
+ thumb_func_start sub_8045990
+sub_8045990:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080459E8
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080459E8
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080459E8
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bne _080459EC
+ ldr r0, [r5]
+ cmp r0, 0x1
+ bne _080459DE
+ adds r0, r5, 0
+ bl sub_8071884
+ lsls r0, 24
+ cmp r0, 0
+ bne _080459D8
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _080459E8
+_080459D8:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xE8
+ b _080459E2
+_080459DE:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+_080459E2:
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _080459EC
+_080459E8:
+ movs r0, 0
+ b _080459F8
+_080459EC:
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+_080459F8:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045990
+
+ thumb_func_start sub_8045A00
+sub_8045A00:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045A58
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045A58
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045A58
+ ldr r0, [r4]
+ cmp r0, 0x1
+ bne _08045A5C
+ ldr r0, [r5]
+ cmp r0, 0x1
+ bne _08045A4E
+ adds r0, r5, 0
+ bl sub_8071884
+ lsls r0, 24
+ cmp r0, 0
+ bne _08045A48
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ beq _08045A58
+_08045A48:
+ ldr r0, [r5, 0x70]
+ adds r0, 0xE8
+ b _08045A52
+_08045A4E:
+ ldr r0, [r4, 0x70]
+ adds r0, 0xE4
+_08045A52:
+ ldrb r0, [r0]
+ cmp r0, 0x1
+ bne _08045A5C
+_08045A58:
+ movs r0, 0
+ b _08045A68
+_08045A5C:
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_808333C
+ lsls r0, 24
+ lsrs r0, 24
+_08045A68:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045A00
+
+ thumb_func_start sub_8045A70
+sub_8045A70:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r4, 0
+ adds r0, 0x20
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045AA4
+ adds r0, r5, 0x4
+ adds r1, r4, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ b _08045AA6
+_08045AA4:
+ movs r0, 0
+_08045AA6:
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045A70
+
+ thumb_func_start sub_8045AAC
+sub_8045AAC:
+ push {lr}
+ adds r0, 0x4
+ bl sub_8083294
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045AAC
+
+ thumb_func_start sub_8045ABC
+sub_8045ABC:
+ push {lr}
+ adds r0, 0x4
+ bl sub_808333C
+ lsls r0, 24
+ lsrs r0, 24
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045ABC
+
+ thumb_func_start sub_8045ACC
+sub_8045ACC:
+ push {r4-r7,lr}
+ movs r6, 0
+ movs r5, 0
+ ldr r7, _08045B50
+_08045AD4:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _08045B54
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045AFA
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045B58
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+ adds r6, 0x1
+_08045AFA:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08045AD4
+ movs r5, 0
+ ldr r7, _08045B50
+_08045B04:
+ ldr r0, [r7]
+ lsls r1, r5, 2
+ ldr r2, _08045B5C
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045B2A
+ ldr r0, [r7]
+ lsls r1, r6, 2
+ ldr r2, _08045B58
+ adds r0, r2
+ adds r0, r1
+ str r4, [r0]
+ adds r6, 0x1
+_08045B2A:
+ adds r5, 0x1
+ cmp r5, 0xF
+ ble _08045B04
+ cmp r6, 0x13
+ bgt _08045B4A
+ ldr r4, _08045B50
+ ldr r3, _08045B58
+ movs r2, 0
+_08045B3A:
+ ldr r0, [r4]
+ lsls r1, r6, 2
+ adds r0, r3
+ adds r0, r1
+ str r2, [r0]
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _08045B3A
+_08045B4A:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045B50: .4byte gUnknown_203B418
+_08045B54: .4byte 0x0001357c
+_08045B58: .4byte 0x000135cc
+_08045B5C: .4byte 0x0001358c
+ thumb_func_end sub_8045ACC
+
+ thumb_func_start sub_8045B60
+sub_8045B60:
+ push {r4,lr}
+ adds r3, r0, 0
+ movs r2, 0
+ ldr r0, _08045B78
+ ldr r0, [r0]
+ ldr r4, _08045B7C
+ adds r1, r0, r4
+_08045B6E:
+ ldr r0, [r1]
+ cmp r3, r0
+ bne _08045B80
+ adds r0, r2, 0
+ b _08045B8C
+ .align 2, 0
+_08045B78: .4byte gUnknown_203B418
+_08045B7C: .4byte 0x0001357c
+_08045B80:
+ adds r1, 0x4
+ adds r2, 0x1
+ cmp r2, 0x3
+ ble _08045B6E
+ movs r0, 0x1
+ negs r0, r0
+_08045B8C:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8045B60
+
+ thumb_func_start sub_8045B94
+sub_8045B94:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ adds r6, r2, 0
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x2
+ beq _08045BD2
+ cmp r0, 0x2
+ bhi _08045BB0
+ cmp r0, 0x1
+ beq _08045BB6
+ b _08045BE2
+_08045BB0:
+ cmp r0, 0x3
+ beq _08045BC2
+ b _08045BE2
+_08045BB6:
+ ldr r1, [r4, 0x70]
+ adds r0, r5, 0
+ adds r2, r6, 0
+ bl sub_80708B4
+ b _08045BEC
+_08045BC2:
+ adds r0, r4, 0
+ bl sub_8045110
+ adds r1, r0, 0
+ adds r0, r5, 0
+ bl sub_8045BF8
+ b _08045BEC
+_08045BD2:
+ adds r0, r4, 0
+ bl sub_804510C
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ bl sub_807FE84
+ b _08045BEC
+_08045BE2:
+ ldr r0, _08045BF4
+ ldr r1, [r0]
+ adds r0, r5, 0
+ bl strcpy
+_08045BEC:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045BF4: .4byte gUnknown_80FE6F4
+ thumb_func_end sub_8045B94
+
+ thumb_func_start sub_8045BF8
+sub_8045BF8:
+ push {lr}
+ ldr r2, _08045C04
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C04: .4byte gUnknown_80F699C
+ thumb_func_end sub_8045BF8
+
+ thumb_func_start sub_8045C08
+sub_8045C08:
+ push {lr}
+ ldr r2, _08045C14
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C14: .4byte gUnknown_80F69A8
+ thumb_func_end sub_8045C08
+
+ thumb_func_start sub_8045C18
+sub_8045C18:
+ push {lr}
+ ldr r2, _08045C24
+ bl sub_8090E14
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045C24: .4byte gUnknown_80F6990
+ thumb_func_end sub_8045C18
+
+ thumb_func_start sub_8045C28
+sub_8045C28:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r2, 0
+ lsls r1, 24
+ lsrs r4, r1, 24
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8090A8C
+ movs r7, 0
+ adds r0, r4, 0
+ bl sub_8091544
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045C72
+ cmp r6, 0
+ bne _08045C6C
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r1, _08045C64
+ ldr r1, [r1]
+ ldr r2, _08045C68
+ adds r1, r2
+ ldrb r1, [r1]
+ cmp r0, r1
+ bge _08045C72
+ b _08045C76
+ .align 2, 0
+_08045C64: .4byte gUnknown_203B418
+_08045C68: .4byte 0x0001c57e
+_08045C6C:
+ cmp r6, 0x1
+ bne _08045C72
+ movs r7, 0x1
+_08045C72:
+ cmp r7, 0
+ beq _08045C7E
+_08045C76:
+ ldrb r1, [r5]
+ movs r0, 0x8
+ orrs r0, r1
+ strb r0, [r5]
+_08045C7E:
+ adds r0, r4, 0
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08045CA2
+ ldr r0, _08045CA8
+ ldr r0, [r0]
+ ldr r1, _08045CAC
+ adds r0, r1
+ ldrb r0, [r0]
+ lsls r1, r0, 2
+ adds r1, r0
+ lsls r1, 3
+ adds r0, r5, 0
+ bl sub_8046CE4
+_08045CA2:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08045CA8: .4byte gUnknown_203B418
+_08045CAC: .4byte 0x0001c58b
+ thumb_func_end sub_8045C28
+
+ thumb_func_start sub_8045CB0
+sub_8045CB0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ movs r0, 0x38
+ bl sub_8084100
+ adds r5, r0, 0
+ movs r0, 0x20
+ bl sub_8084100
+ adds r6, r0, 0
+ ldr r0, _08045D34
+ ldr r0, [r0]
+ ldr r1, _08045D38
+ adds r0, r1
+ movs r1, 0
+ strh r1, [r0]
+ movs r0, 0
+_08045CDA:
+ adds r6, 0x1
+ cmp r6, 0x20
+ bne _08045CE2
+ movs r6, 0
+_08045CE2:
+ adds r0, 0x1
+ mov r10, r0
+ movs r3, 0x2
+ mov r9, r3
+ movs r0, 0x37
+ mov r8, r0
+_08045CEE:
+ adds r5, 0x1
+ cmp r5, 0x38
+ bne _08045CF6
+ movs r5, 0
+_08045CF6:
+ adds r0, r5, 0
+ adds r1, r6, 0
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r0, [r2]
+ movs r3, 0x80
+ lsls r3, 2
+ adds r1, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08045D92
+ ldrh r1, [r2, 0x4]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ beq _08045D92
+ movs r7, 0
+ lsls r0, r5, 16
+ lsls r1, r6, 16
+ lsrs r0, 16
+ orrs r0, r1
+ str r0, [sp, 0x4]
+ ldrh r1, [r2]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08045D3C
+ movs r7, 0x1
+ movs r0, 0x1
+ b _08045D58
+ .align 2, 0
+_08045D34: .4byte gUnknown_203B418
+_08045D38: .4byte 0x00003904
+_08045D3C:
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _08045D48
+ movs r0, 0x3
+ b _08045D58
+_08045D48:
+ movs r0, 0x40
+ ands r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ negs r0, r0
+ asrs r0, 31
+ mov r1, r9
+ ands r0, r1
+_08045D58:
+ bl sub_803D73C
+ lsls r0, 24
+ lsrs r0, 24
+ adds r4, r0, 0
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ bne _08045D6E
+ movs r7, 0
+_08045D6E:
+ mov r0, sp
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045C28
+ cmp r7, 0
+ beq _08045D88
+ mov r0, sp
+ ldrb r1, [r0]
+ mov r0, r9
+ orrs r0, r1
+ mov r1, sp
+ strb r0, [r1]
+_08045D88:
+ add r0, sp, 0x4
+ mov r1, sp
+ movs r2, 0x1
+ bl sub_80460F8
+_08045D92:
+ movs r3, 0x1
+ negs r3, r3
+ add r8, r3
+ mov r0, r8
+ cmp r0, 0
+ bge _08045CEE
+ mov r0, r10
+ cmp r0, 0x1F
+ ble _08045CDA
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8045CB0
+
+ thumb_func_start sub_8045DB4
+sub_8045DB4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0xB8
+ mov r10, r0
+ lsls r1, 24
+ lsrs r1, 24
+ str r1, [sp, 0xA8]
+ bl sub_8083600
+ adds r7, r0, 0
+ ldr r0, [r7, 0x70]
+ str r0, [sp, 0xAC]
+ mov r1, r10
+ movs r2, 0
+ ldrsh r0, [r1, r2]
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ bl sub_804954C
+ ldr r4, [r0, 0x14]
+ cmp r4, 0
+ bne _08045DE8
+ b _080460E0
+_08045DE8:
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x3
+ beq _08045DF4
+ b _080460E0
+_08045DF4:
+ adds r0, r4, 0
+ bl sub_8045108
+ adds r5, r0, 0
+ ldr r0, [sp, 0xAC]
+ adds r0, 0x48
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _08045E08
+ b _0804602E
+_08045E08:
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_8071518
+ lsls r0, 24
+ cmp r0, 0
+ beq _08045E40
+ ldr r0, [sp, 0xA8]
+ cmp r0, 0
+ bne _08045E1E
+ b _080460E0
+_08045E1E:
+ ldr r0, _08045E34
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08045E38
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08045E3C
+ b _08046048
+ .align 2, 0
+_08045E34: .4byte gUnknown_202DE58
+_08045E38: .4byte gUnknown_202DF98
+_08045E3C: .4byte gUnknown_80F8F88
+_08045E40:
+ ldrb r0, [r5, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x6
+ bne _08045E7C
+ movs r0, 0xA6
+ lsls r0, 1
+ bl sub_8083E38
+ adds r0, r5, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ ldr r0, _08045E74
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08045E78
+ b _08045FD0
+ .align 2, 0
+_08045E74: .4byte gUnknown_202DE58
+_08045E78: .4byte gUnknown_80F8FFC
+_08045E7C:
+ ldr r0, _08045EA8
+ ldr r0, [r0]
+ ldr r1, _08045EAC
+ adds r0, r1
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _08045EB4
+ movs r4, 0
+ ldr r0, _08045EB0
+ mov r2, sp
+ ldr r0, [r0]
+ add r1, sp, 0x54
+_08045E94:
+ stm r1!, {r0}
+ stm r2!, {r4}
+ adds r0, 0x4
+ adds r4, 0x1
+ cmp r4, 0x13
+ ble _08045E94
+ movs r2, 0x14
+ mov r8, r2
+ b _08045EC4
+ .align 2, 0
+_08045EA8: .4byte gUnknown_203B418
+_08045EAC: .4byte 0x0000065b
+_08045EB0: .4byte gUnknown_203B460
+_08045EB4:
+ ldr r0, [sp, 0xAC]
+ adds r0, 0x60
+ str r0, [sp, 0x54]
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ movs r3, 0x1
+ mov r8, r3
+_08045EC4:
+ ldrb r0, [r5, 0x2]
+ add r6, sp, 0xB0
+ strb r0, [r6]
+ cmp r0, 0x8
+ bls _08045ED0
+ b _08046000
+_08045ED0:
+ ldrb r1, [r5]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08045EDC
+ b _08046000
+_08045EDC:
+ movs r1, 0x1
+ negs r1, r1
+ mov r12, r1
+ mov r2, r12
+ str r2, [sp, 0xB4]
+ movs r4, 0
+ cmp r4, r8
+ bge _08045F2C
+ ldr r3, _08045FDC
+ mov r9, r3
+ add r3, sp, 0x54
+_08045EF2:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08045F24
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08045F24
+ ldr r1, [r5]
+ mov r6, r9
+ ands r1, r6
+ ldr r0, [r2]
+ ands r0, r6
+ cmp r1, r0
+ bne _08045F24
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08045F24
+ ldr r1, [sp, 0xB4]
+ cmp r1, r0
+ bge _08045F24
+ str r0, [sp, 0xB4]
+ mov r12, r4
+_08045F24:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08045EF2
+_08045F2C:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ bne _08045F80
+ mov r2, r12
+ str r2, [sp, 0xB4]
+ movs r4, 0
+ cmp r4, r8
+ bge _08045F78
+ add r3, sp, 0xB0
+ ldrb r3, [r3]
+ mov r9, r3
+ add r3, sp, 0x54
+_08045F46:
+ ldr r2, [r3]
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08045F70
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ bne _08045F70
+ ldrb r6, [r2, 0x2]
+ cmp r9, r6
+ bne _08045F70
+ ldrb r0, [r2, 0x1]
+ cmp r0, 0x63
+ beq _08045F70
+ ldr r1, [sp, 0xB4]
+ cmp r1, r0
+ bge _08045F70
+ str r0, [sp, 0xB4]
+ mov r12, r4
+_08045F70:
+ adds r3, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ blt _08045F46
+_08045F78:
+ movs r0, 0x1
+ negs r0, r0
+ cmp r12, r0
+ beq _08046000
+_08045F80:
+ add r0, sp, 0x54
+ mov r2, r12
+ lsls r4, r2, 2
+ adds r3, r0, r4
+ ldr r2, [r3]
+ ldrb r1, [r2, 0x1]
+ ldrb r0, [r5, 0x1]
+ adds r1, r0
+ cmp r1, 0x62
+ ble _08045F96
+ movs r1, 0x63
+_08045F96:
+ strb r1, [r2, 0x1]
+ ldrb r1, [r5]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08045FAC
+ ldr r0, [r3]
+ ldrb r1, [r0]
+ movs r2, 0x8
+ orrs r1, r2
+ strb r1, [r0]
+_08045FAC:
+ ldr r0, _08045FE0
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ movs r0, 0xA5
+ lsls r0, 1
+ bl sub_8083E38
+ mov r3, sp
+ adds r0, r3, r4
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08045FE8
+ ldr r0, _08045FE4
+_08045FD0:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _08045FF2
+ .align 2, 0
+_08045FDC: .4byte 0x00ff0008
+_08045FE0: .4byte gUnknown_202DE58
+_08045FE4: .4byte gUnknown_80F8FC4
+_08045FE8:
+ ldr r0, _08045FFC
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+_08045FF2:
+ ldrb r0, [r5, 0x2]
+ bl sub_8052EC0
+ b _080460E0
+ .align 2, 0
+_08045FFC: .4byte gUnknown_80F8FF8
+_08046000:
+ movs r4, 0
+ cmp r4, r8
+ bge _0804602A
+ ldr r0, [sp, 0x54]
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804602A
+ movs r3, 0x1
+ add r2, sp, 0x54
+_08046016:
+ adds r2, 0x4
+ adds r4, 0x1
+ cmp r4, r8
+ bge _0804602A
+ ldr r0, [r2]
+ ldrb r1, [r0]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _08046016
+_0804602A:
+ cmp r4, r8
+ bne _08046060
+_0804602E:
+ ldr r6, [sp, 0xA8]
+ cmp r6, 0
+ beq _080460E0
+ ldr r0, _08046054
+ adds r1, r5, 0
+ bl sub_8045BF8
+ ldr r0, _08046058
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _0804605C
+_08046048:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _080460E0
+ .align 2, 0
+_08046054: .4byte gUnknown_202DE58
+_08046058: .4byte gUnknown_202DF98
+_0804605C: .4byte gUnknown_80F8F54
+_08046060:
+ movs r0, 0xA5
+ lsls r0, 1
+ bl sub_8083E38
+ lsls r0, r4, 2
+ add r0, sp
+ ldr r0, [r0]
+ cmp r0, 0
+ bge _08046094
+ ldr r0, [r5]
+ ldr r1, [sp, 0xAC]
+ str r0, [r1, 0x60]
+ ldr r0, _0804608C
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _08046090
+ b _080460AC
+ .align 2, 0
+_0804608C: .4byte gUnknown_202DE58
+_08046090: .4byte gUnknown_80F8FC4
+_08046094:
+ adds r0, r5, 0
+ bl sub_8091290
+ lsls r0, 24
+ cmp r0, 0
+ beq _080460C0
+ ldr r0, _080460B8
+ adds r1, r7, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _080460BC
+_080460AC:
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+ b _080460DA
+ .align 2, 0
+_080460B8: .4byte gUnknown_202DF98
+_080460BC: .4byte gUnknown_80F8FAC
+_080460C0:
+ ldr r0, _080460F0
+ adds r1, r5, 0
+ bl sub_8045BF8
+ mov r0, r10
+ movs r1, 0x1
+ bl sub_80461C8
+ ldr r0, _080460F4
+ ldr r1, [r0]
+ adds r0, r7, 0
+ bl sub_80522A8
+_080460DA:
+ ldrb r0, [r5, 0x2]
+ bl sub_8052EC0
+_080460E0:
+ add sp, 0xB8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080460F0: .4byte gUnknown_202DE58
+_080460F4: .4byte gUnknown_80F8FF8
+ thumb_func_end sub_8045DB4
+
+ thumb_func_start sub_80460F8
+sub_80460F8:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r6, r1, 0
+ lsls r2, 24
+ lsrs r7, r2, 24
+ bl sub_8045708
+ adds r4, r0, 0
+ cmp r4, 0
+ bne _08046110
+ movs r0, 0
+ b _080461B6
+_08046110:
+ ldr r1, [r4, 0x70]
+ ldr r0, [r6]
+ str r0, [r1]
+ ldr r2, [r4, 0x70]
+ ldrb r1, [r2]
+ movs r0, 0xEF
+ ands r0, r1
+ strb r0, [r2]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ movs r1, 0
+ ldrsh r0, [r5, r1]
+ movs r2, 0x2
+ ldrsh r1, [r5, r2]
+ bl sub_8049590
+ str r4, [r0, 0x14]
+ ldrh r1, [r0]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _08046186
+ ldrb r0, [r6, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046186
+ ldrb r1, [r6]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08046170
+ cmp r7, 0
+ beq _08046186
+ adds r0, r6, 0
+ bl sub_8090C7C
+ ldr r1, _08046168
+ ldr r2, [r1]
+ ldr r1, _0804616C
+ b _0804617E
+ .align 2, 0
+_08046168: .4byte gUnknown_203B418
+_0804616C: .4byte 0x0000068c
+_08046170:
+ adds r0, r6, 0
+ bl sub_8090CCC
+ ldr r1, _080461BC
+ ldr r2, [r1]
+ movs r1, 0xD2
+ lsls r1, 3
+_0804617E:
+ adds r2, r1
+ ldr r1, [r2]
+ adds r1, r0
+ str r1, [r2]
+_08046186:
+ movs r6, 0
+ movs r4, 0
+_0804618A:
+ ldr r5, _080461BC
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, _080461C0
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ adds r1, r4, 0x1
+ cmp r0, 0
+ beq _080461A6
+ adds r6, r1, 0
+_080461A6:
+ adds r4, r1, 0
+ cmp r4, 0x3F
+ ble _0804618A
+ ldr r0, [r5]
+ ldr r1, _080461C4
+ adds r0, r1
+ strh r6, [r0]
+ movs r0, 0x1
+_080461B6:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080461BC: .4byte gUnknown_203B418
+_080461C0: .4byte 0x0001361c
+_080461C4: .4byte 0x00003904
+ thumb_func_end sub_80460F8
+
+ thumb_func_start sub_80461C8
+sub_80461C8:
+ push {r4-r7,lr}
+ adds r2, r0, 0
+ lsls r1, 24
+ lsrs r7, r1, 24
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ movs r3, 0x2
+ ldrsh r1, [r2, r3]
+ bl sub_8049590
+ adds r6, r0, 0
+ ldr r5, [r6, 0x14]
+ cmp r5, 0
+ beq _080461EE
+ adds r0, r5, 0
+ bl sub_80450F8
+ cmp r0, 0x3
+ beq _080461F2
+_080461EE:
+ movs r0, 0
+ b _08046284
+_080461F2:
+ adds r0, r5, 0
+ bl sub_8045108
+ adds r4, r0, 0
+ ldrh r1, [r6]
+ movs r0, 0x20
+ ands r0, r1
+ cmp r0, 0
+ beq _0804624E
+ ldrb r0, [r4, 0x2]
+ bl sub_80914E4
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804624E
+ ldrb r1, [r4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08046238
+ cmp r7, 0
+ beq _0804624E
+ adds r0, r4, 0
+ bl sub_8090C7C
+ ldr r1, _08046230
+ ldr r2, [r1]
+ ldr r1, _08046234
+ adds r2, r1
+ b _08046248
+ .align 2, 0
+_08046230: .4byte gUnknown_203B418
+_08046234: .4byte 0x0000068c
+_08046238:
+ adds r0, r4, 0
+ bl sub_8090CCC
+ ldr r1, _0804628C
+ ldr r2, [r1]
+ movs r3, 0xD2
+ lsls r3, 3
+ adds r2, r3
+_08046248:
+ ldr r1, [r2]
+ subs r1, r0
+ str r1, [r2]
+_0804624E:
+ movs r0, 0
+ str r0, [r6, 0x14]
+ str r0, [r5]
+ movs r6, 0
+ movs r4, 0
+_08046258:
+ ldr r5, _0804628C
+ ldr r0, [r5]
+ lsls r1, r4, 2
+ ldr r2, _08046290
+ adds r0, r2
+ adds r0, r1
+ ldr r0, [r0]
+ bl sub_80450E0
+ lsls r0, 24
+ adds r1, r4, 0x1
+ cmp r0, 0
+ beq _08046274
+ adds r6, r1, 0
+_08046274:
+ adds r4, r1, 0
+ cmp r4, 0x3F
+ ble _08046258
+ ldr r0, [r5]
+ ldr r3, _08046294
+ adds r0, r3
+ strh r6, [r0]
+ movs r0, 0x1
+_08046284:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0804628C: .4byte gUnknown_203B418
+_08046290: .4byte 0x0001361c
+_08046294: .4byte 0x00003904
+ thumb_func_end sub_80461C8
+
+ thumb_func_start sub_8046298
+sub_8046298:
+ ldrb r0, [r0, 0x2]
+ ldr r1, _080462A8
+ ldr r1, [r1]
+ lsls r0, 5
+ adds r0, r1
+ ldrb r0, [r0, 0xD]
+ bx lr
+ .align 2, 0
+_080462A8: .4byte gItemParametersFile + 4
+ thumb_func_end sub_8046298
+
+ thumb_func_start sub_80462AC
+sub_80462AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x8
+ adds r4, r0, 0
+ ldr r0, [sp, 0x28]
+ lsls r1, 24
+ lsrs r1, 24
+ mov r10, r1
+ lsls r2, 24
+ lsrs r5, r2, 24
+ lsls r3, 24
+ lsrs r3, 24
+ mov r9, r3
+ lsls r0, 24
+ lsrs r0, 24
+ str r0, [sp]
+ movs r0, 0
+ str r0, [sp, 0x4]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ bne _080462E4
+ b _08046498
+_080462E4:
+ cmp r5, 0
+ beq _08046316
+ movs r1, 0x4
+ ldrsh r0, [r4, r1]
+ movs r2, 0x6
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ cmp r1, 0
+ bne _08046300
+ b _08046498
+_08046300:
+ cmp r1, 0x2
+ bne _08046308
+ movs r3, 0x1
+ str r3, [sp, 0x4]
+_08046308:
+ adds r0, r4, 0
+ bl sub_8045888
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046316
+ b _08046498
+_08046316:
+ ldr r1, [r4, 0xC]
+ cmp r1, 0
+ bge _0804631E
+ adds r1, 0xFF
+_0804631E:
+ asrs r1, 8
+ ldr r0, _080463A4
+ ldr r2, [r0]
+ ldr r5, _080463A8
+ adds r0, r2, r5
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ subs r6, r1, r0
+ ldr r3, [r4, 0x10]
+ ldr r0, [r4, 0x1C]
+ subs r1, r3, r0
+ cmp r1, 0
+ bge _0804633A
+ adds r1, 0xFF
+_0804633A:
+ asrs r1, 8
+ ldr r5, _080463AC
+ adds r0, r2, r5
+ movs r5, 0
+ ldrsh r2, [r0, r5]
+ subs r1, r2
+ mov r8, r1
+ adds r0, r3, 0
+ cmp r0, 0
+ bge _08046350
+ adds r0, 0xFF
+_08046350:
+ asrs r0, 8
+ subs r0, r2
+ adds r7, r0, 0
+ adds r7, 0x8
+ lsrs r0, r7, 31
+ adds r0, r7, r0
+ asrs r7, r0, 1
+ movs r0, 0x20
+ negs r0, r0
+ cmp r6, r0
+ bge _08046368
+ b _08046498
+_08046368:
+ cmp r8, r0
+ bge _0804636E
+ b _08046498
+_0804636E:
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r6, r0
+ ble _08046378
+ b _08046498
+_08046378:
+ mov r0, r8
+ cmp r0, 0xC0
+ ble _08046380
+ b _08046498
+_08046380:
+ ldr r5, _080463B0
+ ldrh r1, [r5, 0x2]
+ ldr r0, _080463B4
+ ands r0, r1
+ strh r0, [r5, 0x2]
+ mov r1, r10
+ cmp r1, 0
+ beq _080463BC
+ movs r2, 0x17
+ mov r10, r2
+ movs r2, 0xA0
+ lsls r2, 8
+ ldrh r1, [r5, 0x4]
+ ldr r0, _080463B8
+ ands r0, r1
+ orrs r0, r2
+ strh r0, [r5, 0x4]
+ b _08046408
+ .align 2, 0
+_080463A4: .4byte gUnknown_203B418
+_080463A8: .4byte 0x000181f0
+_080463AC: .4byte 0x000181f2
+_080463B0: .4byte gUnknown_202EDC0
+_080463B4: .4byte 0x0000c1ff
+_080463B8: .4byte 0x00000fff
+_080463BC:
+ ldr r0, [r4, 0x70]
+ bl sub_8046298
+ mov r10, r0
+ mov r3, r9
+ cmp r3, 0xFF
+ beq _080463EE
+ cmp r0, 0
+ bne _080463EE
+ ldr r0, _08046478
+ add r0, r9
+ ldrb r0, [r0]
+ mov r10, r0
+ ldr r0, _0804647C
+ add r0, r9
+ ldrb r1, [r0]
+ lsls r1, 3
+ movs r0, 0x1F
+ ands r1, r0
+ lsls r1, 9
+ ldrh r2, [r5, 0x2]
+ ldr r0, _08046480
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r5, 0x2]
+_080463EE:
+ ldr r0, [r4, 0x70]
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D58
+ movs r1, 0xF
+ ands r0, r1
+ lsls r0, 12
+ ldr r3, _08046484
+ ldrh r2, [r3, 0x4]
+ ldr r1, _08046488
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x4]
+_08046408:
+ ldr r1, _08046488
+ mov r5, r8
+ ands r1, r5
+ lsls r1, 4
+ ldr r4, _08046484
+ ldrh r2, [r4, 0x6]
+ movs r0, 0xF
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r4, 0x6]
+ ldr r0, _0804648C
+ ands r6, r0
+ ldrh r1, [r4, 0x2]
+ movs r0, 0xFE
+ lsls r0, 8
+ ands r0, r1
+ orrs r0, r6
+ strh r0, [r4, 0x2]
+ ldr r0, [sp, 0x4]
+ lsls r3, r0, 10
+ ldrh r2, [r4]
+ ldr r1, _08046490
+ adds r0, r1, 0
+ ands r0, r2
+ orrs r0, r3
+ strh r0, [r4]
+ movs r2, 0xC0
+ lsls r2, 4
+ ldrh r0, [r4, 0x4]
+ ands r1, r0
+ orrs r1, r2
+ mov r2, r10
+ lsls r0, r2, 2
+ movs r3, 0xD0
+ lsls r3, 1
+ adds r0, r3
+ ldr r2, _08046494
+ ands r0, r2
+ movs r2, 0xFC
+ lsls r2, 8
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r4, 0x4]
+ ldr r5, [sp]
+ cmp r5, 0
+ bne _08046466
+ movs r7, 0x1
+_08046466:
+ adds r0, r4, 0
+ adds r1, r7, 0
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+ movs r0, 0x1
+ b _0804649A
+ .align 2, 0
+_08046478: .4byte gUnknown_203B420
+_0804647C: .4byte gUnknown_203B428
+_08046480: .4byte 0x0000c1ff
+_08046484: .4byte gUnknown_202EDC0
+_08046488: .4byte 0x00000fff
+_0804648C: .4byte 0x000001ff
+_08046490: .4byte 0x0000f3ff
+_08046494: .4byte 0x000003ff
+_08046498:
+ movs r0, 0
+_0804649A:
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_80462AC
+
+ thumb_func_start sub_80464AC
+sub_80464AC:
+ push {r4,lr}
+ ldr r4, _080464C4
+ ldrb r0, [r0, 0x2]
+ bl sub_8090D6C
+ lsls r0, 3
+ adds r0, r4
+ ldr r0, [r0]
+ pop {r4}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_080464C4: .4byte gUnknown_80F7B14
+ thumb_func_end sub_80464AC
+
+ thumb_func_start sub_80464C8
+sub_80464C8:
+ push {r4-r6,lr}
+ sub sp, 0x78
+ adds r6, r0, 0
+ adds r3, r1, 0
+ adds r5, r2, 0
+ movs r0, 0x3
+ str r0, [sp, 0x4]
+ add r0, sp, 0x28
+ movs r4, 0
+ strb r4, [r0]
+ add r1, sp, 0x24
+ movs r0, 0x1
+ strb r0, [r1]
+ mov r0, sp
+ adds r0, 0x26
+ strb r4, [r0]
+ str r5, [sp, 0x74]
+ ldr r0, [r3]
+ str r0, [sp, 0x8]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ add r0, sp, 0x4
+ bl sub_8045394
+ add r0, sp, 0x4
+ strh r4, [r0, 0x26]
+ str r4, [sp]
+ adds r0, r6, 0
+ add r1, sp, 0x4
+ adds r2, r5, 0
+ movs r3, 0x1
+ bl sub_804652C
+ add sp, 0x78
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80464C8
+
+ thumb_func_start sub_804652C
+sub_804652C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x10
+ mov r10, r0
+ adds r5, r1, 0
+ mov r9, r2
+ lsls r3, 24
+ lsrs r6, r3, 24
+ movs r1, 0x4
+ ldrsh r0, [r5, r1]
+ movs r2, 0x6
+ ldrsh r1, [r5, r2]
+ bl sub_804954C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x14]
+ movs r3, 0
+ str r3, [sp, 0xC]
+ cmp r0, 0
+ beq _0804658C
+ bl sub_80450F8
+ cmp r0, 0x2
+ bne _0804658C
+ adds r4, r5, 0x4
+ adds r0, r5, 0
+ adds r1, r4, 0
+ bl sub_8046734
+ adds r0, r4, 0
+ movs r1, 0x1
+ bl sub_807FE44
+ ldr r0, _080465A4
+ ldr r1, [r0]
+ mov r0, r10
+ bl sub_80522A8
+ mov r0, r9
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0804658C
+ b _0804671E
+_0804658C:
+ ldrh r1, [r5, 0x6]
+ lsls r1, 16
+ ldrh r0, [r5, 0x4]
+ orrs r0, r1
+ str r0, [sp]
+ mov r8, r0
+ movs r7, 0x1
+ cmp r6, 0
+ beq _08046632
+ movs r7, 0
+ b _08046632
+ .align 2, 0
+_080465A4: .4byte gUnknown_80FED30
+_080465A8:
+ lsls r3, r7, 2
+ adds r3, r0
+ ldrh r0, [r3]
+ ldrh r1, [r5, 0x4]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _08046628
+ ldr r2, [sp]
+ ands r2, r1
+ orrs r2, r0
+ str r2, [sp]
+ ldrh r0, [r3, 0x2]
+ ldrh r3, [r5, 0x6]
+ adds r0, r3
+ lsls r0, 16
+ ldr r1, _0804662C
+ ands r1, r2
+ orrs r1, r0
+ str r1, [sp]
+ mov r0, sp
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ asrs r1, 16
+ bl sub_804954C
+ adds r4, r0, 0
+ ldrh r1, [r4]
+ movs r6, 0x3
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08046630
+ movs r0, 0x80
+ lsls r0, 2
+ ands r0, r1
+ cmp r0, 0
+ bne _08046630
+ ldr r0, [r4, 0x14]
+ cmp r0, 0
+ bne _08046630
+ adds r0, r5, 0
+ mov r1, sp
+ bl sub_8046734
+ ldr r3, [sp]
+ mov r8, r3
+ ldrh r1, [r4]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0x3
+ beq _08046620
+ mov r0, sp
+ mov r1, r9
+ movs r2, 0x1
+ bl sub_80460F8
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046644
+_08046620:
+ movs r0, 0x1
+ str r0, [sp, 0xC]
+ b _08046644
+ .align 2, 0
+_08046628: .4byte 0xffff0000
+_0804662C: .4byte 0x0000ffff
+_08046630:
+ adds r7, 0x1
+_08046632:
+ ldr r0, _08046688
+ lsls r1, r7, 2
+ adds r1, r0
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ cmp r1, 0x63
+ bne _080465A8
+ movs r3, 0
+ str r3, [sp, 0xC]
+_08046644:
+ ldr r0, _0804668C
+ mov r1, r9
+ bl sub_8045BF8
+ ldr r0, [sp, 0xC]
+ cmp r0, 0
+ beq _080466C8
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ mov r4, sp
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_80402AC
+ mov r0, sp
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ movs r2, 0x2
+ ldrsh r1, [r4, r2]
+ bl sub_804954C
+ ldrh r0, [r0]
+ movs r1, 0x3
+ ands r1, r0
+ adds r0, r1, 0
+ cmp r1, 0x1
+ beq _0804669A
+ cmp r1, 0x1
+ bgt _08046690
+ cmp r1, 0
+ beq _080466AC
+ b _0804671E
+ .align 2, 0
+_08046688: .4byte gUnknown_80F4468
+_0804668C: .4byte gUnknown_202DE58
+_08046690:
+ cmp r0, 0x2
+ beq _080466A4
+ cmp r0, 0x3
+ beq _080466B4
+ b _0804671E
+_0804669A:
+ ldr r0, _080466A0
+ b _080466B6
+ .align 2, 0
+_080466A0: .4byte gUnknown_80F93E8
+_080466A4:
+ ldr r0, _080466A8
+ b _080466B6
+ .align 2, 0
+_080466A8: .4byte gUnknown_80F9408
+_080466AC:
+ ldr r0, _080466B0
+ b _080466B6
+ .align 2, 0
+_080466B0: .4byte gUnknown_80F9424
+_080466B4:
+ ldr r0, _080466C4
+_080466B6:
+ ldr r2, [r0]
+ mov r0, r10
+ mov r1, sp
+ bl sub_8052364
+ b _0804671E
+ .align 2, 0
+_080466C4: .4byte gUnknown_80F949C
+_080466C8:
+ mov r3, r8
+ lsls r1, r3, 16
+ asrs r1, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r1, 0xC0
+ lsls r1, 4
+ adds r0, r1
+ str r0, [sp, 0x4]
+ asrs r1, r3, 16
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ movs r2, 0xC0
+ lsls r2, 4
+ adds r0, r2
+ add r2, sp, 0x4
+ str r0, [r2, 0x4]
+ ldr r3, [sp, 0x30]
+ cmp r3, 0
+ beq _0804670C
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ ldr r1, [sp, 0x4]
+ adds r0, r1
+ str r0, [sp, 0x4]
+ movs r1, 0x2
+ ldrsh r0, [r3, r1]
+ lsls r0, 8
+ ldr r1, [r2, 0x4]
+ adds r0, r1
+ str r0, [r2, 0x4]
+_0804670C:
+ adds r0, r2, 0
+ bl sub_804219C
+ ldr r0, _08046730
+ ldr r2, [r0]
+ mov r0, r10
+ mov r1, sp
+ bl sub_8052364
+_0804671E:
+ add sp, 0x10
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046730: .4byte gUnknown_80F943C
+ thumb_func_end sub_804652C
+
+ thumb_func_start sub_8046734
+sub_8046734:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x18
+ mov r8, r0
+ ldr r0, _08046858
+ ldr r0, [r0]
+ ldr r2, _0804685C
+ adds r0, r2
+ ldrb r0, [r0]
+ str r0, [sp, 0xC]
+ movs r0, 0
+ ldrsh r2, [r1, r0]
+ lsls r0, r2, 1
+ adds r0, r2
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r4, r0, 8
+ movs r2, 0x2
+ ldrsh r1, [r1, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r5, r0, 8
+ mov r1, r8
+ ldr r0, [r1, 0xC]
+ subs r0, r4
+ cmp r0, 0
+ bge _08046776
+ negs r0, r0
+_08046776:
+ mov r2, r8
+ ldr r2, [r2, 0x10]
+ mov r9, r2
+ cmp r0, 0xB
+ bgt _0804678C
+ subs r0, r2, r5
+ cmp r0, 0
+ bge _08046788
+ negs r0, r0
+_08046788:
+ cmp r0, 0xB
+ ble _08046822
+_0804678C:
+ movs r0, 0
+ mov r10, r0
+ movs r1, 0
+ str r1, [sp, 0x10]
+ mov r2, r8
+ ldr r0, [r2, 0xC]
+ str r0, [sp, 0x4]
+ mov r1, r9
+ str r1, [sp, 0x8]
+ subs r0, r4, r0
+ movs r1, 0x18
+ bl __divsi3
+ adds r6, r0, 0
+ mov r2, r9
+ subs r0, r5, r2
+ movs r1, 0x18
+ bl __divsi3
+ adds r7, r0, 0
+ movs r0, 0
+ mov r9, r0
+ mov r1, sp
+ adds r1, 0x4
+ str r1, [sp, 0x14]
+_080467BE:
+ ldr r0, [sp, 0x4]
+ adds r0, r6
+ str r0, [sp, 0x4]
+ ldr r2, [sp, 0x14]
+ ldr r0, [r2, 0x4]
+ adds r0, r7
+ str r0, [r2, 0x4]
+ ldr r0, [sp, 0x10]
+ bl sub_8009C7C
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ mov r0, r8
+ str r1, [r0, 0x1C]
+ add r1, sp, 0x4
+ bl sub_804535C
+ mov r1, r10
+ lsls r3, r1, 24
+ lsrs r3, 24
+ movs r0, 0
+ str r0, [sp]
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0
+ bl sub_80462AC
+ movs r0, 0x13
+ bl sub_803E46C
+ ldr r2, [sp, 0x10]
+ adds r2, 0x55
+ str r2, [sp, 0x10]
+ movs r0, 0x3
+ mov r1, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _08046810
+ movs r2, 0x1
+ add r10, r2
+_08046810:
+ movs r0, 0x7
+ mov r1, r10
+ ands r1, r0
+ mov r10, r1
+ movs r2, 0x1
+ add r9, r2
+ mov r0, r9
+ cmp r0, 0x17
+ ble _080467BE
+_08046822:
+ mov r0, r8
+ adds r1, r4, 0
+ adds r2, r5, 0
+ bl sub_8045394
+ movs r0, 0
+ mov r1, r8
+ str r0, [r1, 0x1C]
+ str r0, [sp]
+ mov r0, r8
+ ldr r1, [sp, 0xC]
+ movs r2, 0x1
+ movs r3, 0xFF
+ bl sub_80462AC
+ movs r0, 0x13
+ bl sub_803E46C
+ add sp, 0x18
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046858: .4byte gUnknown_203B418
+_0804685C: .4byte 0x00018210
+ thumb_func_end sub_8046734
+
+ thumb_func_start sub_8046860
+sub_8046860:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ adds r4, r1, 0
+ adds r5, r2, 0
+ str r3, [sp]
+ adds r2, r4, 0
+ adds r3, r5, 0
+ bl sub_804687C
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046860
+
+ thumb_func_start sub_804687C
+sub_804687C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _08046970
+ add sp, r4
+ ldr r5, _08046974
+ add r5, sp
+ str r0, [r5]
+ movs r0, 0xA5
+ lsls r0, 3
+ add r0, sp
+ str r1, [r0]
+ mov r8, r2
+ ldr r1, _08046978
+ add r1, sp
+ str r3, [r1]
+ movs r1, 0
+ movs r7, 0x1D
+ ldr r0, _0804697C
+ add r0, sp
+_080468A8:
+ strb r1, [r0]
+ subs r0, 0x1
+ subs r7, 0x1
+ cmp r7, 0
+ bge _080468A8
+ movs r7, 0
+ movs r2, 0xAD
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ cmp r7, r2
+ blt _080468C2
+ b _080469DE
+_080468C2:
+ ldr r3, _08046980
+ mov r9, r3
+ ldr r5, _08046984
+ movs r0, 0
+ ldrsh r5, [r5, r0]
+ ldr r0, _08046988
+ add r0, sp
+ str r5, [r0]
+_080468D2:
+ mov r1, r8
+ ldrh r0, [r1]
+ ldr r1, _0804698C
+ ands r4, r1
+ orrs r4, r0
+ mov r2, r8
+ ldrh r0, [r2, 0x2]
+ lsls r0, 16
+ mov r3, r9
+ ands r4, r3
+ orrs r4, r0
+ movs r5, 0
+ adds r0, r7, 0x1
+ mov r10, r0
+ ldr r1, _08046984
+ ldr r2, _08046988
+ add r2, sp
+ ldr r2, [r2]
+ cmp r2, 0x63
+ beq _080469B0
+ ldr r3, _08046990
+ add r3, sp
+ ldr r0, _08046994
+ add r0, sp
+ str r3, [r0]
+_08046904:
+ ldr r0, _08046998
+ add r0, sp
+ adds r6, r0, r5
+ ldrb r0, [r6]
+ cmp r0, 0
+ bne _0804699C
+ lsls r2, r5, 2
+ adds r2, r1
+ ldrh r0, [r2]
+ mov r1, r8
+ ldrh r1, [r1]
+ adds r0, r1
+ lsls r0, 16
+ lsrs r0, 16
+ ldr r1, _0804698C
+ ands r4, r1
+ orrs r4, r0
+ ldrh r0, [r2, 0x2]
+ mov r2, r8
+ ldrh r2, [r2, 0x2]
+ adds r0, r2
+ lsls r0, 16
+ mov r3, r9
+ ands r4, r3
+ orrs r4, r0
+ lsls r0, r4, 16
+ asrs r0, 16
+ asrs r1, r4, 16
+ bl sub_804954C
+ adds r2, r0, 0
+ ldrh r1, [r2]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ beq _0804699C
+ movs r3, 0x80
+ lsls r3, 2
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ bne _0804699C
+ ldr r0, [r2, 0x14]
+ cmp r0, 0
+ bne _0804699C
+ lsls r0, r7, 2
+ ldr r5, _08046994
+ add r5, sp
+ ldr r5, [r5]
+ adds r0, r5, r0
+ str r4, [r0]
+ movs r0, 0x1
+ strb r0, [r6]
+ b _080469CE
+ .align 2, 0
+_08046970: .4byte 0xfffffab8
+_08046974: .4byte 0x00000524
+_08046978: .4byte 0x0000052c
+_0804697C: .4byte 0x00000521
+_08046980: .4byte 0x0000ffff
+_08046984: .4byte gUnknown_80F4468
+_08046988: .4byte 0x00000534
+_0804698C: .4byte 0xffff0000
+_08046990: .4byte 0x0000048c
+_08046994: .4byte 0x00000544
+_08046998: .4byte 0x00000504
+_0804699C:
+ adds r5, 0x1
+ cmp r5, 0x1D
+ bgt _080469B0
+ lsls r0, r5, 2
+ ldr r1, _08046A18
+ adds r0, r1
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r0, 0x63
+ bne _08046904
+_080469B0:
+ movs r3, 0
+ cmp r3, 0
+ bne _080469CE
+ ldr r1, _08046A1C
+ add r1, sp
+ lsls r0, r7, 2
+ adds r1, r0
+ ldrh r2, [r1]
+ mov r0, r9
+ orrs r0, r2
+ strh r0, [r1]
+ ldrh r2, [r1, 0x2]
+ mov r0, r9
+ orrs r0, r2
+ strh r0, [r1, 0x2]
+_080469CE:
+ mov r7, r10
+ movs r5, 0xAD
+ lsls r5, 3
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ bge _080469DE
+ b _080468D2
+_080469DE:
+ movs r1, 0
+ mov r9, r1
+ movs r7, 0
+ movs r0, 0xAD
+ lsls r0, 3
+ add r0, sp
+ ldr r0, [r0]
+ cmp r7, r0
+ blt _080469F2
+ b _08046B0A
+_080469F2:
+ movs r2, 0
+ mov r8, r2
+_080469F6:
+ ldr r0, _08046A1C
+ add r0, sp
+ lsls r2, r7, 2
+ adds r3, r0, r2
+ movs r4, 0
+ ldrsh r0, [r3, r4]
+ cmp r0, 0
+ bge _08046A20
+ movs r0, 0x74
+ muls r0, r7
+ add r0, sp
+ adds r0, 0x4
+ mov r5, r8
+ str r5, [r0]
+ movs r0, 0x1
+ mov r9, r0
+ b _08046AFA
+ .align 2, 0
+_08046A18: .4byte gUnknown_80F4468
+_08046A1C: .4byte 0x0000048c
+_08046A20:
+ movs r0, 0x74
+ adds r6, r7, 0
+ muls r6, r0
+ mov r4, sp
+ adds r4, r6
+ adds r4, 0x4
+ movs r0, 0x3
+ str r0, [r4]
+ adds r0, r4, 0
+ adds r0, 0x24
+ mov r1, r8
+ strb r1, [r0]
+ adds r1, r4, 0
+ adds r1, 0x20
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r4, 0
+ adds r0, 0x22
+ mov r5, r8
+ strb r5, [r0]
+ add r0, sp, 0x74
+ adds r0, r6
+ ldr r1, _08046B2C
+ add r1, sp
+ ldr r1, [r1]
+ adds r2, r1, r2
+ str r2, [r0]
+ add r0, sp, 0x8
+ adds r0, r6
+ ldr r1, [r3]
+ str r1, [r0]
+ movs r2, 0xA5
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ movs r5, 0
+ ldrsh r0, [r2, r5]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r5, 0x2
+ ldrsh r0, [r2, r5]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ adds r0, r4, 0
+ movs r5, 0xA8
+ lsls r5, 3
+ add r5, sp
+ str r3, [r5]
+ bl sub_8045394
+ mov r0, r8
+ strh r0, [r4, 0x26]
+ ldr r4, _08046B30
+ add r4, sp
+ lsls r5, r7, 3
+ adds r4, r5
+ movs r1, 0xA8
+ lsls r1, 3
+ add r1, sp
+ ldr r3, [r1]
+ movs r2, 0
+ ldrsh r1, [r3, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x10
+ adds r1, r6
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x18
+ movs r2, 0xA8
+ lsls r2, 3
+ add r2, sp
+ str r3, [r2]
+ bl __divsi3
+ str r0, [r4]
+ movs r4, 0x97
+ lsls r4, 3
+ add r4, sp
+ adds r4, r5
+ movs r5, 0xA8
+ lsls r5, 3
+ add r5, sp
+ ldr r3, [r5]
+ movs r0, 0x2
+ ldrsh r1, [r3, r0]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 3
+ adds r0, 0x4
+ lsls r0, 8
+ add r1, sp, 0x14
+ adds r1, r6
+ ldr r1, [r1]
+ subs r0, r1
+ movs r1, 0x18
+ bl __divsi3
+ str r0, [r4]
+ movs r1, 0x1
+_08046AFA:
+ adds r7, 0x1
+ movs r2, 0xAD
+ lsls r2, 3
+ add r2, sp
+ ldr r2, [r2]
+ cmp r7, r2
+ bge _08046B0A
+ b _080469F6
+_08046B0A:
+ cmp r1, 0
+ bne _08046B54
+ movs r3, 0xAD
+ lsls r3, 3
+ add r3, sp
+ ldr r3, [r3]
+ cmp r3, 0x1
+ ble _08046B3C
+ ldr r0, _08046B34
+ ldr r1, [r0]
+ ldr r4, _08046B38
+ add r4, sp
+ ldr r0, [r4]
+ bl sub_80522A8
+ b _08046C7C
+ .align 2, 0
+_08046B2C: .4byte 0x0000052c
+_08046B30: .4byte 0x000004b4
+_08046B34: .4byte gUnknown_80F945C
+_08046B38: .4byte 0x00000524
+_08046B3C:
+ ldr r0, _08046B4C
+ ldr r1, [r0]
+ ldr r5, _08046B50
+ add r5, sp
+ ldr r0, [r5]
+ bl sub_80522A8
+ b _08046C7C
+ .align 2, 0
+_08046B4C: .4byte gUnknown_80F943C
+_08046B50: .4byte 0x00000524
+_08046B54:
+ mov r0, r9
+ cmp r0, 0
+ beq _08046B68
+ ldr r0, _08046C90
+ ldr r1, [r0]
+ ldr r2, _08046C94
+ add r2, sp
+ ldr r0, [r2]
+ bl sub_80522A8
+_08046B68:
+ movs r3, 0
+ mov r9, r3
+ ldr r0, _08046C98
+ ldr r0, [r0]
+ ldr r4, _08046C9C
+ adds r0, r4
+ ldrb r0, [r0]
+ movs r5, 0xA6
+ lsls r5, 3
+ add r5, sp
+ str r0, [r5]
+ mov r10, r3
+ movs r6, 0
+_08046B82:
+ movs r7, 0
+ mov r0, r10
+ adds r0, 0x55
+ movs r1, 0xA7
+ lsls r1, 3
+ add r1, sp
+ str r0, [r1]
+ adds r2, r6, 0x1
+ ldr r3, _08046CA0
+ add r3, sp
+ str r2, [r3]
+ movs r4, 0xAD
+ lsls r4, 3
+ add r4, sp
+ ldr r4, [r4]
+ cmp r7, r4
+ bge _08046C14
+ mov r5, r9
+ lsls r5, 24
+ mov r8, r5
+_08046BAA:
+ movs r0, 0x74
+ adds r5, r7, 0
+ muls r5, r0
+ mov r4, sp
+ adds r4, r5
+ adds r4, 0x4
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046C06
+ ldr r0, _08046CA4
+ add r0, sp
+ lsls r2, r7, 3
+ adds r0, r2
+ ldr r1, [r0]
+ movs r0, 0x97
+ lsls r0, 3
+ add r0, sp
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r4, 0
+ bl sub_804539C
+ mov r0, r10
+ bl sub_8009C7C
+ add r2, sp, 0x20
+ adds r2, r5
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 2
+ str r1, [r2]
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ movs r2, 0xA6
+ lsls r2, 3
+ add r2, sp
+ ldr r1, [r2]
+ movs r2, 0x1
+ mov r4, r8
+ lsrs r3, r4, 24
+ bl sub_80462AC
+_08046C06:
+ adds r7, 0x1
+ movs r5, 0xAD
+ lsls r5, 3
+ add r5, sp
+ ldr r5, [r5]
+ cmp r7, r5
+ blt _08046BAA
+_08046C14:
+ movs r0, 0x13
+ bl sub_803E46C
+ movs r0, 0xA7
+ lsls r0, 3
+ add r0, sp
+ ldr r0, [r0]
+ mov r10, r0
+ movs r0, 0x3
+ ands r0, r6
+ cmp r0, 0
+ bne _08046C30
+ movs r1, 0x1
+ add r9, r1
+_08046C30:
+ movs r0, 0x7
+ mov r2, r9
+ ands r2, r0
+ mov r9, r2
+ ldr r3, _08046CA0
+ add r3, sp
+ ldr r6, [r3]
+ cmp r6, 0x17
+ ble _08046B82
+ movs r4, 0xAD
+ lsls r4, 3
+ add r4, sp
+ ldr r4, [r4]
+ cmp r4, 0
+ ble _08046C7C
+ ldr r0, _08046CA8
+ add r0, sp
+ ldr r5, [r0]
+ ldr r4, _08046CAC
+ add r4, sp
+ movs r1, 0xAD
+ lsls r1, 3
+ add r1, sp
+ ldr r7, [r1]
+_08046C60:
+ movs r2, 0
+ ldrsh r0, [r4, r2]
+ cmp r0, 0
+ blt _08046C72
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_80460F8
+_08046C72:
+ adds r5, 0x4
+ adds r4, 0x4
+ subs r7, 0x1
+ cmp r7, 0
+ bne _08046C60
+_08046C7C:
+ movs r3, 0xA9
+ lsls r3, 3
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046C90: .4byte gUnknown_80F947C
+_08046C94: .4byte 0x00000524
+_08046C98: .4byte gUnknown_203B418
+_08046C9C: .4byte 0x00018210
+_08046CA0: .4byte 0x0000053c
+_08046CA4: .4byte 0x000004b4
+_08046CA8: .4byte 0x0000052c
+_08046CAC: .4byte 0x0000048c
+ thumb_func_end sub_804687C
+
+ thumb_func_start sub_8046CB0
+sub_8046CB0:
+ push {lr}
+ lsls r1, 24
+ lsrs r1, 24
+ ldr r0, [r0, 0x70]
+ adds r3, r0, 0
+ adds r0, 0x60
+ ldrb r2, [r0]
+ movs r0, 0x1
+ ands r0, r2
+ cmp r0, 0
+ beq _08046CDC
+ movs r0, 0x8
+ ands r0, r2
+ cmp r0, 0
+ bne _08046CDC
+ adds r0, r3, 0
+ adds r0, 0x62
+ ldrb r0, [r0]
+ cmp r0, r1
+ bne _08046CDC
+ movs r0, 0x1
+ b _08046CDE
+_08046CDC:
+ movs r0, 0
+_08046CDE:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046CB0
+
+ thumb_func_start sub_8046CE4
+sub_8046CE4:
+ push {r4,r5,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ movs r0, 0x64
+ bl sub_8084100
+ adds r1, r0, 0
+ movs r2, 0
+ ldr r3, _08046D04
+_08046CF6:
+ lsls r0, r1, 2
+ adds r0, r3
+ ldr r0, [r0]
+ cmp r0, r5
+ bgt _08046D08
+ strb r1, [r4, 0x1]
+ b _08046D18
+ .align 2, 0
+_08046D04: .4byte gUnknown_810A3F0
+_08046D08:
+ lsrs r0, r1, 31
+ adds r0, r1, r0
+ asrs r1, r0, 1
+ adds r2, 0x1
+ cmp r2, 0xC7
+ ble _08046CF6
+ movs r0, 0x1
+ strb r0, [r4, 0x1]
+_08046D18:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046CE4
+
+ thumb_func_start sub_8046D20
+sub_8046D20:
+ push {r4,r5,lr}
+ ldr r4, _08046D5C
+ ldr r0, [r4]
+ ldrb r5, [r0, 0x8]
+ bl sub_8046D70
+ ldr r1, [r4]
+ strb r0, [r1, 0x8]
+ ldr r0, [r4]
+ ldrb r0, [r0, 0x8]
+ cmp r0, 0x1
+ bne _08046D64
+ cmp r5, 0
+ bne _08046D64
+ ldr r0, _08046D60
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl sub_8052B8C
+ adds r1, r0, 0
+ cmp r1, 0x1
+ bne _08046D64
+ ldr r0, [r4]
+ strb r1, [r0, 0x4]
+ ldr r1, [r4]
+ movs r0, 0x2
+ strb r0, [r1, 0x11]
+ b _08046D68
+ .align 2, 0
+_08046D5C: .4byte gUnknown_203B418
+_08046D60: .4byte gUnknown_80FA408
+_08046D64:
+ bl sub_8046D8C
+_08046D68:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8046D20
+
+ thumb_func_start sub_8046D70
+sub_8046D70:
+ push {lr}
+ ldr r0, _08046D84
+ ldr r0, [r0]
+ ldr r1, _08046D88
+ adds r0, r1
+ ldrb r0, [r0]
+ movs r0, 0
+ pop {r1}
+ bx r1
+ .align 2, 0
+_08046D84: .4byte gUnknown_203B418
+_08046D88: .4byte 0x0000068a
+ thumb_func_end sub_8046D70
+
+ thumb_func_start sub_8046D8C
+sub_8046D8C:
+ push {r4-r7,lr}
+ sub sp, 0xC
+ movs r6, 0
+ ldr r5, _08046EDC
+ movs r4, 0
+_08046D96:
+ movs r7, 0
+ movs r0, 0x1
+ negs r0, r0
+ str r0, [sp]
+ str r0, [sp, 0x4]
+ str r0, [sp, 0x8]
+ movs r3, 0
+ ldr r2, [r5]
+_08046DA6:
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046DC8
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x79
+ bne _08046DB8
+ str r3, [sp]
+_08046DB8:
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x77
+ bne _08046DC0
+ str r3, [sp, 0x4]
+_08046DC0:
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0x78
+ bne _08046DC8
+ str r3, [sp, 0x8]
+_08046DC8:
+ adds r2, 0x4
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _08046DA6
+ ldr r1, [sp]
+ cmp r1, 0
+ blt _08046E1E
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ blt _08046E1E
+ ldr r0, [sp, 0x8]
+ cmp r0, 0
+ blt _08046E1E
+ movs r7, 0x1
+ movs r6, 0x1
+ lsls r1, 2
+ ldr r0, [r5]
+ adds r1, r0
+ strb r4, [r1, 0x2]
+ strb r4, [r1, 0x1]
+ strb r4, [r1]
+ ldr r0, [sp, 0x4]
+ lsls r0, 2
+ ldr r1, [r5]
+ adds r0, r1
+ strb r4, [r0, 0x2]
+ strb r4, [r0, 0x1]
+ strb r4, [r0]
+ ldr r0, [sp, 0x8]
+ lsls r0, 2
+ ldr r1, [r5]
+ adds r0, r1
+ strb r4, [r0, 0x2]
+ strb r4, [r0, 0x1]
+ strb r4, [r0]
+ ldr r1, [sp]
+ lsls r1, 2
+ ldr r0, [r5]
+ adds r0, r1
+ movs r1, 0x7A
+ movs r2, 0
+ bl sub_8090A8C
+_08046E1E:
+ cmp r7, 0
+ bne _08046D96
+ bl sub_80910B4
+ cmp r6, 0
+ beq _08046ED4
+ bl sub_8083600
+ adds r4, r0, 0
+ ldr r0, _08046EE0
+ bl sub_80855E4
+ ldr r6, _08046EE4
+ ldr r0, [r6]
+ ldr r5, _08046EE8
+ adds r0, r5
+ movs r1, 0x1
+ strb r1, [r0]
+ ldr r0, _08046EEC
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0x3C
+ movs r1, 0x41
+ bl sub_803E708
+ ldr r0, _08046EF0
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ adds r0, r4, 0
+ movs r1, 0x4
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80869E4
+ adds r0, r4, 0
+ adds r0, 0xC
+ movs r1, 0x86
+ lsls r1, 1
+ movs r2, 0
+ bl sub_80416E0
+ adds r0, r4, 0
+ movs r1, 0xD7
+ bl sub_80421C0
+ movs r0, 0x3C
+ movs r1, 0x41
+ bl sub_803E708
+ ldr r0, _08046EF4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08046EF8
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0xA
+ movs r1, 0x41
+ bl sub_803E708
+ movs r0, 0xD4
+ bl sub_8083E38
+ ldr r0, _08046EFC
+ ldr r1, [r0]
+ movs r0, 0
+ movs r2, 0x1
+ bl PrintFieldMessage
+ movs r0, 0xA
+ movs r1, 0x41
+ bl sub_803E708
+ movs r0, 0x1
+ bl sub_804178C
+ ldr r0, [r6]
+ adds r0, r5
+ strb r7, [r0]
+ bl sub_8040A84
+_08046ED4:
+ add sp, 0xC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08046EDC: .4byte gUnknown_203B460
+_08046EE0: .4byte sub_80861A8
+_08046EE4: .4byte gUnknown_203B418
+_08046EE8: .4byte 0x0001356c
+_08046EEC: .4byte gUnknown_810531C
+_08046EF0: .4byte gUnknown_8105360
+_08046EF4: .4byte gUnknown_202DF98
+_08046EF8: .4byte gUnknown_81053A8
+_08046EFC: .4byte gUnknown_8105434
+ thumb_func_end sub_8046D8C
+
+ thumb_func_start sub_8046F00
+sub_8046F00:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldrb r0, [r4, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ bne _08046F7C
+ ldrb r0, [r4, 0x2]
+ bl sub_80913CC
+ lsls r0, 16
+ lsrs r7, r0, 16
+ ldrb r0, [r4, 0x2]
+ bl sub_80915A0
+ lsls r0, 24
+ cmp r0, 0
+ bne _08046F6E
+ movs r6, 0
+_08046F2A:
+ ldr r0, _08046F74
+ ldr r0, [r0]
+ lsls r1, r6, 2
+ ldr r2, _08046F78
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046F68
+ ldr r0, [r4, 0x70]
+ movs r2, 0x2
+ ldrsh r1, [r0, r2]
+ adds r0, r7, 0
+ bl sub_808E190
+ lsls r0, 24
+ lsrs r5, r0, 24
+ adds r0, r4, 0
+ movs r1, 0
+ bl sub_8070B6C
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046F64
+ movs r5, 0
+_08046F64:
+ cmp r5, 0
+ bne _08046F7C
+_08046F68:
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _08046F2A
+_08046F6E:
+ movs r0, 0
+ b _08046F7E
+ .align 2, 0
+_08046F74: .4byte gUnknown_203B418
+_08046F78: .4byte 0x0001357c
+_08046F7C:
+ movs r0, 0x1
+_08046F7E:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8046F00
+
+ thumb_func_start sub_8046F84
+sub_8046F84:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r5, 0
+ ldr r4, _08047000
+ movs r6, 0x1
+ movs r3, 0
+_08046F90:
+ lsls r1, r5, 2
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FAE
+ ldrb r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ beq _08046FAE
+ strb r3, [r2, 0x2]
+ strb r3, [r2, 0x1]
+ strb r3, [r2]
+_08046FAE:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08046F90
+ bl sub_80910B4
+ movs r5, 0
+ movs r6, 0
+_08046FBC:
+ ldr r0, _08047004
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08047008
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08046FF4
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08046FF4
+ ldrb r0, [r2]
+ ands r0, r7
+ cmp r0, 0
+ beq _08046FF4
+ strb r6, [r2, 0x2]
+ strb r6, [r2, 0x1]
+ strb r6, [r2]
+_08046FF4:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08046FBC
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047000: .4byte gUnknown_203B460
+_08047004: .4byte gUnknown_203B418
+_08047008: .4byte 0x0001357c
+ thumb_func_end sub_8046F84
+
+ thumb_func_start sub_804700C
+sub_804700C:
+ push {r4,r5,lr}
+ movs r5, 0
+ ldr r4, _08047078
+_08047012:
+ lsls r1, r5, 2
+ ldr r0, [r4]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804702C
+ adds r0, r2, 0
+ movs r1, 0x46
+ movs r2, 0
+ bl sub_8090A8C
+_0804702C:
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08047012
+ bl sub_80910B4
+ movs r5, 0
+_08047038:
+ ldr r0, _0804707C
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _08047080
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804706C
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0804706C
+ adds r0, r2, 0
+ movs r1, 0x46
+ movs r2, 0
+ bl sub_8090A8C
+_0804706C:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _08047038
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047078: .4byte gUnknown_203B460
+_0804707C: .4byte gUnknown_203B418
+_08047080: .4byte 0x0001357c
+ thumb_func_end sub_804700C
+
+ thumb_func_start sub_8047084
+sub_8047084:
+ push {r4-r6,lr}
+ adds r6, r0, 0
+ movs r5, 0
+ ldr r0, _080470E8
+ ldr r2, [r0]
+ movs r3, 0x1
+_08047090:
+ ldrb r1, [r2]
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _080470A2
+ ldrb r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ bne _080470E2
+_080470A2:
+ adds r2, 0x4
+ adds r5, 0x1
+ cmp r5, 0x13
+ ble _08047090
+ bl sub_80910B4
+ movs r5, 0
+_080470B0:
+ ldr r0, _080470EC
+ ldr r0, [r0]
+ lsls r1, r5, 2
+ ldr r2, _080470F0
+ adds r0, r2
+ adds r0, r1
+ ldr r4, [r0]
+ adds r0, r4, 0
+ bl sub_80450E0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080470F4
+ ldr r0, [r4, 0x70]
+ adds r2, r0, 0
+ adds r2, 0x60
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _080470F4
+ ldrb r0, [r2]
+ ands r0, r6
+ cmp r0, 0
+ beq _080470F4
+_080470E2:
+ movs r0, 0x1
+ b _080470FC
+ .align 2, 0
+_080470E8: .4byte gUnknown_203B460
+_080470EC: .4byte gUnknown_203B418
+_080470F0: .4byte 0x0001357c
+_080470F4:
+ adds r5, 0x1
+ cmp r5, 0x3
+ ble _080470B0
+ movs r0, 0
+_080470FC:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8047084
+
+ thumb_func_start sub_8047104
+sub_8047104:
+ push {r4-r6,lr}
+ movs r6, 0
+ movs r5, 0
+_0804710A:
+ ldr r0, _08047154
+ lsls r1, r6, 2
+ ldr r0, [r0]
+ adds r4, r0, r1
+ ldrb r1, [r4]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _08047142
+ ldrb r0, [r4, 0x2]
+ cmp r0, 0x69
+ bne _08047132
+ adds r0, r4, 0
+ bl sub_80915D4
+ bl sub_80913A0
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08047132:
+ ldrb r1, [r4]
+ movs r0, 0x2
+ ands r0, r1
+ cmp r0, 0
+ beq _08047142
+ strb r5, [r4, 0x2]
+ strb r5, [r4, 0x1]
+ strb r5, [r4]
+_08047142:
+ adds r6, 0x1
+ cmp r6, 0x13
+ ble _0804710A
+ bl sub_80910B4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08047154: .4byte gUnknown_203B460
+ thumb_func_end sub_8047104
+
+ thumb_func_start sub_8047158
+sub_8047158:
+ push {r4-r6,lr}
+ movs r3, 0
+ ldr r5, _0804718C
+ movs r6, 0x1
+ movs r4, 0x4
+_08047162:
+ lsls r1, r3, 2
+ ldr r0, [r5]
+ adds r2, r0, r1
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08047180
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _08047180
+ movs r0, 0xFB
+ ands r0, r1
+ strb r0, [r2]
+_08047180:
+ adds r3, 0x1
+ cmp r3, 0x13
+ ble _08047162
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804718C: .4byte gUnknown_203B460
+ thumb_func_end sub_8047158
+
+ thumb_func_start sub_8047190
+sub_8047190:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ ldr r4, _080472E8
+ add sp, r4
+ mov r9, r0
+ str r1, [sp, 0x214]
+ ldr r6, _080472EC
+ ldr r1, [r6]
+ ldr r4, _080472F0
+ adds r0, r1, r4
+ ldrb r0, [r0]
+ str r0, [sp, 0x220]
+ mov r8, r3
+ adds r7, r1, 0
+ adds r7, 0xC0
+ movs r0, 0x3
+ str r0, [r7]
+ adds r0, r1, 0
+ adds r0, 0xE4
+ movs r4, 0
+ strb r4, [r0]
+ subs r0, 0x4
+ movs r5, 0x1
+ strb r5, [r0]
+ adds r0, 0x2
+ strb r4, [r0]
+ ldr r0, [sp, 0x214]
+ str r0, [r7, 0x70]
+ str r4, [r7, 0x1C]
+ ldr r0, [r2]
+ str r0, [r7, 0x4]
+ movs r1, 0
+ ldrsh r0, [r2, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r3, 0x2
+ ldrsh r0, [r2, r3]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 11
+ adds r0, r7, 0
+ bl sub_8045394
+ strh r4, [r7, 0x26]
+ str r4, [sp, 0x224]
+ mov r0, r9
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047214
+ mov r0, r9
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x224]
+_08047214:
+ ldr r0, [sp, 0x260]
+ movs r1, 0x2
+ ldrsh r0, [r0, r1]
+ str r0, [sp, 0x218]
+ movs r2, 0
+ str r2, [sp, 0x21C]
+ ldr r0, [r6]
+ ldr r3, _080472F4
+ adds r0, r3
+ strb r5, [r0]
+_08047228:
+ ldr r4, [r7, 0x4]
+ mov r10, r4
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1, 0x1]
+ cmp r0, 0
+ beq _080472AE
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080472AE
+ movs r2, 0x4
+ ldrsh r0, [r7, r2]
+ ldr r2, _080472F8
+ mov r3, r8
+ lsls r4, r3, 2
+ adds r2, r4, r2
+ movs r3, 0
+ ldrsh r1, [r2, r3]
+ adds r0, r1
+ movs r3, 0x6
+ ldrsh r1, [r7, r3]
+ movs r3, 0x2
+ ldrsh r2, [r2, r3]
+ adds r1, r2
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ str r4, [sp, 0x230]
+ cmp r0, 0
+ bne _080472AE
+ movs r6, 0
+ ldr r1, _080472FC
+ mov r4, r10
+ lsls r0, r4, 16
+ asrs r0, 16
+ str r0, [sp, 0x23C]
+ ldr r0, [sp, 0x230]
+ adds r5, r0, r1
+ asrs r2, r4, 16
+_0804727A:
+ ldrb r4, [r5]
+ cmp r4, 0x7
+ bgt _080472A6
+ ldr r0, _080472F8
+ lsls r1, r4, 2
+ adds r1, r0
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ ldr r3, [sp, 0x23C]
+ adds r0, r3
+ movs r3, 0x2
+ ldrsh r1, [r1, r3]
+ adds r1, r2
+ str r2, [sp, 0x234]
+ bl sub_804954C
+ ldrh r1, [r0]
+ movs r0, 0x3
+ ands r0, r1
+ ldr r2, [sp, 0x234]
+ cmp r0, 0
+ bne _08047300
+_080472A6:
+ adds r5, 0x1
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0804727A
+_080472AE:
+ ldr r0, _080472F8
+ mov r4, r8
+ lsls r2, r4, 2
+ adds r3, r2, r0
+ ldrh r1, [r3]
+ ldrh r0, [r7, 0x4]
+ adds r1, r0
+ strh r1, [r7, 0x4]
+ ldrh r0, [r3, 0x2]
+ ldrh r4, [r7, 0x6]
+ adds r0, r4
+ strh r0, [r7, 0x6]
+ lsls r1, 16
+ asrs r1, 16
+ str r2, [sp, 0x230]
+ cmp r1, 0
+ blt _080472E0
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0
+ blt _080472E0
+ cmp r1, 0x37
+ bgt _080472E0
+ cmp r0, 0x1F
+ ble _08047304
+_080472E0:
+ movs r0, 0x2
+ mov r10, r0
+ b _0804744C
+ .align 2, 0
+_080472E8: .4byte 0xfffffdc0
+_080472EC: .4byte gUnknown_203B418
+_080472F0: .4byte 0x00018210
+_080472F4: .4byte 0x0001c05e
+_080472F8: .4byte gUnknown_80F4448
+_080472FC: .4byte gUnknown_80F4D64
+_08047300:
+ mov r8, r4
+ b _080472AE
+_08047304:
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ lsls r0, 10
+ str r0, [sp, 0x228]
+ movs r2, 0x2
+ ldrsh r0, [r3, r2]
+ lsls r0, 10
+ str r0, [sp, 0x22C]
+ mov r3, r8
+ lsls r6, r3, 24
+ movs r5, 0x5
+_0804731A:
+ movs r4, 0
+ adds r0, r7, 0
+ ldr r1, [sp, 0x228]
+ ldr r2, [sp, 0x22C]
+ bl sub_804539C
+ bl sub_804AF74
+ lsls r0, 24
+ movs r2, 0
+ cmp r0, 0
+ beq _08047334
+ movs r2, 0x3
+_08047334:
+ ldr r0, [r7, 0xC]
+ cmp r0, 0
+ bge _0804733C
+ adds r0, 0xFF
+_0804733C:
+ asrs r0, 8
+ adds r0, 0x8
+ ldr r1, [r7, 0x10]
+ cmp r1, 0
+ bge _08047348
+ adds r1, 0xFF
+_08047348:
+ asrs r1, 8
+ adds r1, 0x10
+ bl sub_8083568
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047358
+ movs r4, 0x1
+_08047358:
+ movs r0, 0x1
+ str r0, [sp]
+ adds r0, r7, 0
+ ldr r1, [sp, 0x220]
+ movs r2, 0
+ lsrs r3, r6, 24
+ bl sub_80462AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047370
+ movs r4, 0x1
+_08047370:
+ cmp r4, 0
+ beq _0804737A
+ movs r0, 0x12
+ bl sub_803E46C
+_0804737A:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0804731A
+ movs r4, 0x4
+ ldrsh r0, [r7, r4]
+ movs r2, 0x6
+ ldrsh r1, [r7, r2]
+ bl sub_804954C
+ adds r5, r0, 0
+ ldrh r1, [r5]
+ movs r0, 0x3
+ ands r0, r1
+ cmp r0, 0
+ bne _080473A2
+ ldr r3, [sp, 0x260]
+ ldrb r0, [r3]
+ cmp r0, 0
+ bne _080473A2
+ b _0804757A
+_080473A2:
+ ldr r1, [r5, 0x10]
+ cmp r1, 0
+ beq _08047436
+ movs r4, 0
+ ldr r2, [sp, 0x260]
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _080473CE
+ adds r0, r1, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _080473CE
+ ldr r0, [r5, 0x10]
+ movs r1, 0x26
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+_080473CE:
+ cmp r4, 0
+ beq _080473E0
+ movs r3, 0x4
+ add r8, r3
+ movs r0, 0x7
+ mov r4, r8
+ ands r4, r0
+ mov r8, r4
+ b _08047436
+_080473E0:
+ movs r6, 0x1
+ ldr r0, [r5, 0x10]
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047406
+ add r4, sp, 0x208
+ adds r0, r4, 0
+ ldr r1, _080474B8
+ bl sub_8092A88
+ ldr r0, [r5, 0x10]
+ adds r1, r4, 0
+ bl sub_80571F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047406
+ movs r6, 0
+_08047406:
+ cmp r6, 0
+ beq _08047436
+ ldr r0, [sp, 0x21C]
+ cmp r0, 0x3F
+ bgt _0804742C
+ lsls r0, 3
+ mov r4, sp
+ adds r4, r0
+ adds r4, 0x8
+ ldr r0, [r5, 0x10]
+ str r0, [r4]
+ ldr r1, [r5, 0x10]
+ mov r0, r9
+ bl sub_8047930
+ strb r0, [r4, 0x4]
+ ldr r1, [sp, 0x21C]
+ adds r1, 0x1
+ str r1, [sp, 0x21C]
+_0804742C:
+ ldr r2, [sp, 0x260]
+ ldrb r0, [r2]
+ cmp r0, 0
+ bne _08047436
+ b _08047574
+_08047436:
+ ldr r3, [sp, 0x218]
+ subs r3, 0x1
+ str r3, [sp, 0x218]
+ cmp r3, 0
+ ble _08047442
+ b _08047228
+_08047442:
+ movs r4, 0x1
+ mov r10, r4
+ mov r0, r8
+ lsls r0, 2
+ str r0, [sp, 0x230]
+_0804744C:
+ ldr r0, _080474BC
+ ldr r0, [r0]
+ ldr r1, _080474C0
+ adds r0, r1
+ movs r1, 0
+ strb r1, [r0]
+ ldr r2, [sp, 0x21C]
+ cmp r2, 0
+ ble _0804752C
+ add r5, sp, 0x8
+ adds r6, r2, 0
+_08047462:
+ ldr r4, [r5]
+ ldrb r0, [r5, 0x4]
+ cmp r0, 0
+ beq _080474D0
+ ldr r0, _080474C4
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _080474C8
+ ldr r1, [sp, 0x214]
+ bl sub_8045C08
+ ldr r0, _080474CC
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_807A96C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, [sp, 0x224]
+ cmp r3, 0
+ bne _080474A4
+ ldr r3, [sp, 0x260]
+ ldrb r0, [r3]
+ cmp r0, 0
+ beq _080474A6
+_080474A4:
+ movs r1, 0x1
+_080474A6:
+ str r4, [sp]
+ ldr r4, [sp, 0x214]
+ str r4, [sp, 0x4]
+ movs r0, 0x1
+ mov r3, r9
+ bl sub_80479B8
+ b _08047524
+ .align 2, 0
+_080474B8: .4byte 0x00000195
+_080474BC: .4byte gUnknown_203B418
+_080474C0: .4byte 0x0001c05e
+_080474C4: .4byte gUnknown_202DF98
+_080474C8: .4byte gUnknown_202DE58
+_080474CC: .4byte gUnknown_80F94C4
+_080474D0:
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _080474E2
+ ldr r2, [sp, 0x21C]
+ cmp r2, 0x1
+ bne _080474E2
+ movs r3, 0x1
+ mov r10, r3
+_080474E2:
+ ldr r0, _0804750C
+ adds r1, r4, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08047510
+ ldr r1, [sp, 0x214]
+ bl sub_8045BF8
+ ldr r1, [sp, 0x260]
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _08047518
+ ldr r0, _08047514
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+ b _08047524
+ .align 2, 0
+_0804750C: .4byte gUnknown_202DF98
+_08047510: .4byte gUnknown_202DE58
+_08047514: .4byte gUnknown_80F94D8
+_08047518:
+ ldr r0, _08047564
+ ldr r2, [r0]
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_80522F4
+_08047524:
+ adds r5, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bne _08047462
+_0804752C:
+ ldr r2, _08047568
+ ldr r3, [sp, 0x230]
+ adds r2, r3, r2
+ movs r4, 0
+ ldrsh r1, [r2, r4]
+ lsls r1, 19
+ lsrs r1, 16
+ ldr r4, _0804756C
+ add r3, sp, 0x210
+ ldr r0, [r3]
+ ands r0, r4
+ orrs r0, r1
+ str r0, [r3]
+ movs r4, 0x2
+ ldrsh r1, [r2, r4]
+ lsls r1, 19
+ ldr r2, _08047570
+ ands r0, r2
+ orrs r0, r1
+ str r0, [r3]
+ mov r0, r10
+ cmp r0, 0x1
+ beq _08047584
+ cmp r0, 0x1
+ bcc _080475A8
+ cmp r0, 0x2
+ beq _08047596
+ b _080475A8
+ .align 2, 0
+_08047564: .4byte gUnknown_80F94F0
+_08047568: .4byte gUnknown_80F4448
+_0804756C: .4byte 0xffff0000
+_08047570: .4byte 0x0000ffff
+_08047574:
+ movs r1, 0
+ mov r10, r1
+ b _0804744C
+_0804757A:
+ mov r2, r10
+ str r2, [r7, 0x4]
+ movs r3, 0x1
+ mov r10, r3
+ b _0804744C
+_08047584:
+ add r0, sp, 0x210
+ str r0, [sp]
+ mov r0, r9
+ adds r1, r7, 0
+ ldr r2, [sp, 0x214]
+ movs r3, 0x1
+ bl sub_804652C
+ b _080475A8
+_08047596:
+ ldr r0, _080475BC
+ ldr r1, [sp, 0x214]
+ bl sub_8045C08
+ ldr r0, _080475C0
+ ldr r1, [r0]
+ mov r0, r9
+ bl sub_80522A8
+_080475A8:
+ movs r3, 0x90
+ lsls r3, 2
+ add sp, r3
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080475BC: .4byte gUnknown_202DE58
+_080475C0: .4byte gUnknown_80F9530
+ thumb_func_end sub_8047190
+
+ thumb_func_start sub_80475C4
+sub_80475C4:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x44
+ str r0, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r7, r2, 0
+ str r3, [sp, 0x18]
+ ldr r0, _08047848
+ mov r8, r0
+ ldr r2, [r0]
+ ldr r1, _0804784C
+ adds r0, r2, r1
+ ldrb r0, [r0]
+ str r0, [sp, 0x24]
+ movs r4, 0
+ movs r5, 0
+ adds r3, r2, 0
+ adds r3, 0xC0
+ str r3, [sp, 0x1C]
+ movs r0, 0x3
+ str r0, [r3]
+ adds r0, r2, 0
+ adds r0, 0xE4
+ strb r4, [r0]
+ adds r1, r2, 0
+ adds r1, 0xE0
+ movs r0, 0x1
+ strb r0, [r1]
+ adds r0, r2, 0
+ adds r0, 0xE2
+ strb r4, [r0]
+ ldr r0, [sp, 0x14]
+ str r0, [r3, 0x70]
+ str r5, [r3, 0x1C]
+ ldr r0, [r7]
+ str r0, [r3, 0x4]
+ movs r1, 0
+ ldrsh r0, [r7, r1]
+ lsls r1, r0, 1
+ adds r1, r0
+ lsls r1, 3
+ adds r1, 0x4
+ lsls r1, 8
+ movs r2, 0x2
+ ldrsh r0, [r7, r2]
+ lsls r2, r0, 1
+ adds r2, r0
+ lsls r2, 3
+ adds r2, 0x4
+ lsls r2, 8
+ ldr r0, [sp, 0x1C]
+ bl sub_8045394
+ ldr r3, [sp, 0x1C]
+ strh r4, [r3, 0x26]
+ movs r0, 0x1
+ str r0, [sp, 0x20]
+ movs r1, 0
+ str r1, [sp, 0x28]
+ ldr r0, [sp, 0x10]
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _0804765E
+ ldr r0, [sp, 0x10]
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ str r1, [sp, 0x28]
+_0804765E:
+ adds r0, r7, 0
+ bl sub_803F428
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r4, r1, 31
+ ldr r0, [sp, 0x18]
+ bl sub_803F428
+ lsls r0, 24
+ cmp r0, 0
+ beq _0804767C
+ movs r4, 0x1
+_0804767C:
+ mov r2, r8
+ ldr r0, [r2]
+ ldr r3, _08047850
+ adds r0, r3
+ add r1, sp, 0x20
+ ldrb r1, [r1]
+ strb r1, [r0]
+ cmp r4, 0
+ bne _08047690
+ b _080477D0
+_08047690:
+ ldr r2, [sp, 0x1C]
+ movs r3, 0x4
+ ldrsh r0, [r2, r3]
+ ldr r1, [sp, 0x18]
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ mov r9, r1
+ subs r1, r0, r1
+ cmp r1, 0
+ bge _080476A6
+ negs r1, r1
+_080476A6:
+ ldr r3, [sp, 0x1C]
+ movs r2, 0x6
+ ldrsh r0, [r3, r2]
+ ldr r3, [sp, 0x18]
+ movs r2, 0x2
+ ldrsh r3, [r3, r2]
+ mov r10, r3
+ subs r0, r3
+ cmp r0, 0
+ bge _080476BC
+ negs r0, r0
+_080476BC:
+ adds r1, r0
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r4, r0, 2
+ adds r3, r4, 0
+ adds r3, 0xC
+ str r3, [sp, 0x30]
+ cmp r3, 0x3F
+ ble _080476D2
+ movs r0, 0x40
+ str r0, [sp, 0x30]
+_080476D2:
+ movs r1, 0
+ str r1, [sp, 0x3C]
+ movs r0, 0x80
+ lsls r0, 12
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x40]
+ movs r2, 0
+ ldrsh r1, [r7, r2]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r0, 11
+ mov r8, r0
+ movs r3, 0x2
+ ldrsh r1, [r7, r3]
+ lsls r0, r1, 1
+ adds r0, r1
+ lsls r7, r0, 11
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r9
+ lsls r0, 11
+ mov r2, r8
+ subs r0, r2
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x34]
+ mov r3, r10
+ lsls r0, r3, 1
+ add r0, r10
+ lsls r0, 11
+ subs r0, r7
+ adds r1, r4, 0
+ bl __divsi3
+ str r0, [sp, 0x38]
+ subs r0, r4, 0x3
+ cmp r0, 0
+ ble _080477D0
+ str r0, [sp, 0x2C]
+_08047726:
+ movs r0, 0
+ mov r10, r0
+ ldr r0, [sp, 0x3C]
+ cmp r0, 0
+ bge _08047732
+ adds r0, 0xFF
+_08047732:
+ asrs r0, 8
+ bl sub_8009C7C
+ ldr r2, [sp, 0x30]
+ adds r1, r0, 0
+ muls r1, r2
+ movs r0, 0x80
+ lsls r0, 3
+ mov r2, r8
+ adds r3, r2, r0
+ adds r2, r7, r0
+ ldr r0, [sp, 0x1C]
+ str r1, [r0, 0x1C]
+ mov r0, r8
+ cmp r0, 0
+ bge _08047754
+ adds r0, 0xFF
+_08047754:
+ asrs r0, 8
+ adds r0, 0x8
+ mov r9, r0
+ adds r0, r7, 0
+ cmp r7, 0
+ bge _08047762
+ adds r0, 0xFF
+_08047762:
+ asrs r0, 8
+ adds r4, r0, 0
+ adds r4, 0x10
+ ldr r1, [sp, 0x3C]
+ ldr r0, [sp, 0x40]
+ adds r1, r0
+ str r1, [sp, 0x3C]
+ ldr r0, [sp, 0x1C]
+ adds r1, r3, 0
+ bl sub_8045394
+ bl sub_804AF74
+ lsls r0, 24
+ movs r2, 0
+ cmp r0, 0
+ beq _08047786
+ movs r2, 0x3
+_08047786:
+ mov r0, r9
+ adds r1, r4, 0
+ bl sub_8083568
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047798
+ movs r1, 0x1
+ mov r10, r1
+_08047798:
+ movs r0, 0x1
+ str r0, [sp]
+ ldr r0, [sp, 0x1C]
+ ldr r1, [sp, 0x24]
+ movs r2, 0
+ movs r3, 0xFF
+ bl sub_80462AC
+ lsls r0, 24
+ cmp r0, 0
+ beq _080477B2
+ movs r2, 0x1
+ mov r10, r2
+_080477B2:
+ mov r3, r10
+ cmp r3, 0
+ beq _080477BE
+ movs r0, 0x17
+ bl sub_803E46C
+_080477BE:
+ ldr r0, [sp, 0x34]
+ add r8, r0
+ ldr r1, [sp, 0x38]
+ adds r7, r1
+ ldr r2, [sp, 0x2C]
+ subs r2, 0x1
+ str r2, [sp, 0x2C]
+ cmp r2, 0
+ bne _08047726
+_080477D0:
+ ldr r3, [sp, 0x18]
+ ldr r0, [r3]
+ ldr r1, [sp, 0x1C]
+ str r0, [r1, 0x4]
+ ldr r0, _08047848
+ ldr r0, [r0]
+ ldr r2, _08047850
+ adds r0, r2
+ movs r1, 0
+ strb r1, [r0]
+ movs r1, 0
+ ldrsh r0, [r3, r1]
+ movs r2, 0x2
+ ldrsh r1, [r3, r2]
+ bl sub_804954C
+ adds r4, r0, 0
+ ldr r0, [r4, 0x10]
+ cmp r0, 0
+ bne _080477FA
+ b _08047904
+_080477FA:
+ movs r3, 0x1
+ mov r8, r3
+ movs r7, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047834
+ ldr r0, [r4, 0x10]
+ movs r1, 0x26
+ bl sub_8046CB0
+ lsls r0, 24
+ lsrs r0, 24
+ negs r1, r0
+ orrs r1, r0
+ lsrs r7, r1, 31
+ ldr r1, _08047854
+ add r0, sp, 0x8
+ bl sub_8092A88
+ ldr r0, [r4, 0x10]
+ add r1, sp, 0x8
+ bl sub_80571F0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047834
+ movs r0, 0
+ mov r8, r0
+_08047834:
+ mov r1, r8
+ cmp r1, 0
+ beq _08047904
+ ldr r1, [r4, 0x10]
+ adds r5, r1, 0
+ cmp r7, 0
+ beq _0804785C
+ ldr r0, _08047858
+ ands r6, r0
+ b _0804786E
+ .align 2, 0
+_08047848: .4byte gUnknown_203B418
+_0804784C: .4byte 0x00018210
+_08047850: .4byte 0x0001c05e
+_08047854: .4byte 0x00000195
+_08047858: .4byte 0xffffff00
+_0804785C:
+ ldr r0, [sp, 0x10]
+ bl sub_8047930
+ lsls r0, 24
+ lsrs r0, 24
+ ldr r1, _080478CC
+ ands r1, r6
+ adds r6, r1, 0
+ orrs r6, r0
+_0804786E:
+ ldr r0, _080478D0
+ ldr r1, [sp, 0x14]
+ bl sub_8045C08
+ ldr r0, _080478D4
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8045B94
+ lsls r0, r6, 24
+ cmp r0, 0
+ beq _080478DC
+ adds r0, r5, 0
+ movs r1, 0x8
+ bl sub_806CE94
+ ldr r0, _080478D8
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_807A96C
+ lsls r0, 24
+ lsrs r2, r0, 24
+ movs r1, 0
+ ldr r3, [sp, 0x28]
+ cmp r3, 0
+ bne _080478B6
+ ldr r0, [sp, 0x64]
+ ldrb r0, [r0]
+ cmp r0, 0
+ beq _080478B8
+_080478B6:
+ movs r1, 0x1
+_080478B8:
+ str r5, [sp]
+ ldr r0, [sp, 0x14]
+ str r0, [sp, 0x4]
+ movs r0, 0x1
+ ldr r3, [sp, 0x10]
+ bl sub_80479B8
+ movs r1, 0
+ str r1, [sp, 0x20]
+ b _08047904
+ .align 2, 0
+_080478CC: .4byte 0xffffff00
+_080478D0: .4byte gUnknown_202DE58
+_080478D4: .4byte gUnknown_202DF98
+_080478D8: .4byte gUnknown_80F94C4
+_080478DC:
+ cmp r7, 0
+ beq _080478F4
+ ldr r0, _080478F0
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _08047900
+ .align 2, 0
+_080478F0: .4byte gUnknown_80F9510
+_080478F4:
+ ldr r0, _0804792C
+ ldr r2, [r0]
+ ldr r0, [sp, 0x10]
+ adds r1, r5, 0
+ bl sub_80522F4
+_08047900:
+ movs r2, 0x1
+ str r2, [sp, 0x20]
+_08047904:
+ ldr r3, [sp, 0x20]
+ cmp r3, 0x1
+ bne _0804791A
+ movs r0, 0
+ str r0, [sp]
+ ldr r0, [sp, 0x10]
+ ldr r1, [sp, 0x1C]
+ ldr r2, [sp, 0x14]
+ movs r3, 0
+ bl sub_804652C
+_0804791A:
+ add sp, 0x44
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804792C: .4byte gUnknown_80F94F0
+ thumb_func_end sub_80475C4
+
+ thumb_func_start sub_8047930
+sub_8047930:
+ push {r4-r6,lr}
+ adds r4, r0, 0
+ adds r5, r1, 0
+ ldr r1, [r5, 0x70]
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ beq _0804794C
+ adds r0, r1, 0
+ adds r0, 0xA4
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ beq _0804794C
+ cmp r0, 0x1
+ bne _08047950
+_0804794C:
+ movs r0, 0
+ b _080479B0
+_08047950:
+ movs r0, 0x64
+ bl sub_8084100
+ ldr r1, _08047980
+ movs r2, 0
+ ldrsh r1, [r1, r2]
+ movs r6, 0
+ cmp r0, r1
+ bge _08047964
+ movs r6, 0x1
+_08047964:
+ adds r0, r4, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _08047994
+ adds r0, r4, 0
+ movs r1, 0x28
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047984
+ movs r6, 0
+ b _08047994
+ .align 2, 0
+_08047980: .4byte gUnknown_80F4FA2
+_08047984:
+ adds r0, r4, 0
+ movs r1, 0x2A
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047994
+ movs r6, 0x1
+_08047994:
+ adds r0, r5, 0
+ bl sub_80450F8
+ cmp r0, 0x1
+ bne _080479AE
+ adds r0, r5, 0
+ movs r1, 0x25
+ bl sub_8046CB0
+ lsls r0, 24
+ cmp r0, 0
+ beq _080479AE
+ movs r6, 0
+_080479AE:
+ adds r0, r6, 0
+_080479B0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_8047930
+
+ thumb_func_start sub_80479B8
+sub_80479B8:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ adds r4, r3, 0
+ ldr r5, [sp, 0x3C]
+ ldr r7, [sp, 0x40]
+ lsls r0, 24
+ lsrs r6, r0, 24
+ lsls r1, 24
+ lsrs r1, 24
+ lsls r2, 24
+ lsrs r2, 24
+ mov r10, r2
+ cmp r6, 0
+ beq _08047AD0
+ cmp r1, 0
+ bne _08047ABC
+ movs r0, 0
+ mov r8, r0
+ ldr r1, [r5, 0x70]
+ mov r9, r1
+ ldrb r0, [r1, 0x6]
+ cmp r0, 0
+ beq _08047A20
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047A3C
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08047A3C
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ movs r1, 0x1
+ eors r0, r1
+ negs r1, r0
+ orrs r1, r0
+ lsrs r1, 31
+ mov r8, r1
+ b _08047A3C
+_08047A20:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ beq _08047A3C
+ adds r0, r5, 0
+ movs r1, 0x2
+ bl sub_80718D8
+ lsls r0, 24
+ lsrs r0, 24
+ mov r8, r0
+_08047A3C:
+ adds r0, r5, 0
+ bl sub_8070C60
+ lsls r0, 24
+ cmp r0, 0
+ beq _08047A4C
+ movs r0, 0
+ mov r8, r0
+_08047A4C:
+ mov r1, r8
+ cmp r1, 0
+ beq _08047ABC
+ mov r0, r9
+ adds r0, 0x60
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _08047ABC
+ mov r1, r9
+ ldrb r0, [r1, 0x8]
+ cmp r0, 0x1
+ bne _08047A76
+ adds r1, r5, 0x4
+ adds r0, r4, 0
+ adds r2, r7, 0
+ bl sub_80464C8
+ bl _080482BA
+_08047A76:
+ ldr r0, _08047AAC
+ bl sub_8083E38
+ ldr r0, _08047AB0
+ adds r1, r7, 0
+ bl sub_8045BF8
+ ldr r0, _08047AB4
+ adds r1, r5, 0
+ movs r2, 0
+ bl sub_8045B94
+ ldr r0, _08047AB8
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ ldr r0, [r7]
+ mov r1, r9
+ str r0, [r1, 0x60]
+ adds r0, r5, 0
+ bl sub_806A6E8
+ bl _080482BA
+ .align 2, 0
+_08047AAC: .4byte 0x0000014d
+_08047AB0: .4byte gUnknown_202DE58
+_08047AB4: .4byte gUnknown_202DF98
+_08047AB8: .4byte gUnknown_80FDBB8
+_08047ABC:
+ cmp r6, 0
+ beq _08047AD0
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_8042390
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_806F450
+_08047AD0:
+ ldrb r1, [r7]
+ movs r0, 0x8
+ ands r0, r1
+ cmp r0, 0
+ beq _08047B2C
+ ldr r0, _08047B1C
+ adds r1, r7, 0
+ bl sub_8045BF8
+ ldr r0, _08047B20
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ cmp r6, 0
+ beq _08047B30
+ ldr r0, _08047B24
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ add r0, sp, 0x18
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _08047B28
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_806F370
+ adds r0, r4, 0
+ bl sub_8071DA4
+ b _080482BA
+ .align 2, 0
+_08047B1C: .4byte gUnknown_202DE58
+_08047B20: .4byte gUnknown_80FE3E8
+_08047B24: .4byte gUnknown_80F4FAE
+_08047B28: .4byte 0x00000217
+_08047B2C:
+ cmp r6, 0
+ bne _08047B38
+_08047B30:
+ adds r0, r5, 0
+ adds r1, r7, 0
+ bl sub_804245C
+_08047B38:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x2
+ bne _08047B56
+ movs r0, 0
+ str r0, [sp]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ movs r3, 0
+ bl sub_8078B5C
+_08047B56:
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x5
+ beq _08047B72
+ ldrb r0, [r7, 0x2]
+ bl sub_8090BD0
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0xA
+ bne _08047B9C
+_08047B72:
+ cmp r6, 0
+ beq _08047B88
+ ldr r0, _08047B84
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, sp
+ adds r0, 0x19
+ b _08048284
+ .align 2, 0
+_08047B84: .4byte gUnknown_80F4FAC
+_08047B88:
+ ldr r0, _08047B98
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+ b _080482B4
+ .align 2, 0
+_08047B98: .4byte gUnknown_80FE458
+_08047B9C:
+ ldrb r0, [r7, 0x2]
+ subs r0, 0x1
+ cmp r0, 0xE8
+ bls _08047BA6
+ b _08048276
+_08047BA6:
+ lsls r0, 2
+ ldr r1, _08047BB0
+ adds r0, r1
+ ldr r0, [r0]
+ mov pc, r0
+ .align 2, 0
+_08047BB0: .4byte _08047BB4
+ .align 2, 0
+_08047BB4:
+ .4byte _08047F58
+ .4byte _08047F70
+ .4byte _08047F88
+ .4byte _08047FA0
+ .4byte _08047FB8
+ .4byte _08047FD0
+ .4byte _08047FF0
+ .4byte _08047FE8
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048004
+ .4byte _0804825E
+ .4byte _08048010
+ .4byte _0804801A
+ .4byte _0804804C
+ .4byte _08048276
+ .4byte _0804802E
+ .4byte _0804809C
+ .4byte _08048038
+ .4byte _08048024
+ .4byte _080480BA
+ .4byte _080480C4
+ .4byte _08048042
+ .4byte _0804806A
+ .4byte _08048060
+ .4byte _08048056
+ .4byte _0804807E
+ .4byte _080480B0
+ .4byte _08048074
+ .4byte _080480D8
+ .4byte _080480CE
+ .4byte _08048092
+ .4byte _08048088
+ .4byte _080480A6
+ .4byte _080480E4
+ .4byte _080480EE
+ .4byte _080480F8
+ .4byte _08048102
+ .4byte _0804810C
+ .4byte _08048212
+ .4byte _08048122
+ .4byte _0804813C
+ .4byte _0804812A
+ .4byte _08048146
+ .4byte _08048152
+ .4byte _0804815E
+ .4byte _0804816A
+ .4byte _08048176
+ .4byte _08048182
+ .4byte _0804818E
+ .4byte _0804819A
+ .4byte _080481A6
+ .4byte _080481B2
+ .4byte _080481BE
+ .4byte _080481CA
+ .4byte _080481D6
+ .4byte _080481E2
+ .4byte _080481EE
+ .4byte _080481FA
+ .4byte _08048206
+ .4byte _08048212
+ .4byte _08048220
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _0804823A
+ .4byte _08048252
+ .4byte _08048246
+ .4byte _0804826A
+ .4byte _0804822E
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048276
+ .4byte _08048116
+_08047F58:
+ ldr r0, _08047F6C
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F6C: .4byte gUnknown_80F503A
+_08047F70:
+ ldr r0, _08047F84
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x2
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F84: .4byte gUnknown_80F503C
+_08047F88:
+ ldr r0, _08047F9C
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x3
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047F9C: .4byte gUnknown_80F503E
+_08047FA0:
+ ldr r0, _08047FB4
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x4
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FB4: .4byte gUnknown_80F5040
+_08047FB8:
+ ldr r0, _08047FCC
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x5
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FCC: .4byte gUnknown_80F5042
+_08047FD0:
+ ldr r0, _08047FE4
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x6
+ bl sub_80482FC
+ b _080482B4
+ .align 2, 0
+_08047FE4: .4byte gUnknown_80F5044
+_08047FE8:
+ ldr r0, _08047FEC
+ b _08047FF2
+ .align 2, 0
+_08047FEC: .4byte gUnknown_80F5048
+_08047FF0:
+ ldr r0, _08048000
+_08047FF2:
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048340
+ b _080482B4
+ .align 2, 0
+_08048000: .4byte gUnknown_80F5046
+_08048004:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ mov r2, r10
+ bl sub_8048364
+ b _080482B4
+_08048010:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048374
+ b _080482B4
+_0804801A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804839C
+ b _080482B4
+_08048024:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483D4
+ b _080482B4
+_0804802E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483F4
+ b _080482B4
+_08048038:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048400
+ b _080482B4
+_08048042:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804840C
+ b _080482B4
+_0804804C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804841C
+ b _080482B4
+_08048056:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804849C
+ b _080482B4
+_08048060:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048428
+ b _080482B4
+_0804806A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048450
+ b _080482B4
+_08048074:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048480
+ b _080482B4
+_0804807E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80482D4
+ b _080482B4
+_08048088:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048490
+ b _080482B4
+_08048092:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484A8
+ b _080482B4
+_0804809C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484DC
+ b _080482B4
+_080480A6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484BC
+ b _080482B4
+_080480B0:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484C8
+ b _080482B4
+_080480BA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80484E8
+ b _080482B4
+_080480C4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048524
+ b _080482B4
+_080480CE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80485B0
+ b _080482B4
+_080480D8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_804869C
+ b _080482B4
+_080480E4:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80483C4
+ b _080482B4
+_080480EE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_804891C
+ b _080482B4
+_080480F8:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048928
+ b _080482B4
+_08048102:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048934
+ b _080482B4
+_0804810C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048940
+ b _080482B4
+_08048116:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl nullsub_94
+ b _080482B4
+_08048122:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x64
+ b _08048130
+_0804812A:
+ ldr r2, _08048138
+ adds r0, r4, 0
+ adds r1, r5, 0
+_08048130:
+ movs r3, 0xA
+ bl sub_80487CC
+ b _080482B4
+ .align 2, 0
+_08048138: .4byte 0x000003e7
+_0804813C:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_8048E04
+ b _080482B4
+_08048146:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x1
+ bl sub_80487E0
+ b _080482B4
+_08048152:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x2
+ bl sub_80487E0
+ b _080482B4
+_0804815E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x3
+ bl sub_80487E0
+ b _080482B4
+_0804816A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x4
+ bl sub_80487E0
+ b _080482B4
+_08048176:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x5
+ bl sub_80487E0
+ b _080482B4
+_08048182:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x6
+ bl sub_80487E0
+ b _080482B4
+_0804818E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x7
+ bl sub_80487E0
+ b _080482B4
+_0804819A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x8
+ bl sub_80487E0
+ b _080482B4
+_080481A6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x9
+ bl sub_80487E0
+ b _080482B4
+_080481B2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA
+ bl sub_80487E0
+ b _080482B4
+_080481BE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xB
+ bl sub_80487E0
+ b _080482B4
+_080481CA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xC
+ bl sub_80487E0
+ b _080482B4
+_080481D6:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xD
+ bl sub_80487E0
+ b _080482B4
+_080481E2:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xE
+ bl sub_80487E0
+ b _080482B4
+_080481EE:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xF
+ bl sub_80487E0
+ b _080482B4
+_080481FA:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x10
+ bl sub_80487E0
+ b _080482B4
+_08048206:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x11
+ bl sub_80487E0
+ b _080482B4
+_08048212:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0x32
+ movs r3, 0x5
+ bl sub_80487CC
+ b _080482B4
+_08048220:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r2, 0xA
+ movs r3, 0
+ bl sub_80487CC
+ b _080482B4
+_0804822E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048DB8
+ b _080482B4
+_0804823A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EB0
+ b _080482B4
+_08048246:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EC4
+ b _080482B4
+_08048252:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048ED8
+ b _080482B4
+_0804825E:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048EEC
+ b _080482B4
+_0804826A:
+ adds r0, r4, 0
+ adds r1, r5, 0
+ adds r2, r6, 0
+ bl sub_8048F00
+ b _080482B4
+_08048276:
+ cmp r6, 0
+ beq _080482A8
+ ldr r0, _080482A0
+ movs r1, 0
+ ldrsh r2, [r0, r1]
+ mov r0, sp
+ adds r0, 0x1A
+_08048284:
+ str r0, [sp]
+ movs r1, 0
+ str r1, [sp, 0x4]
+ ldr r0, _080482A4
+ str r0, [sp, 0x8]
+ str r1, [sp, 0xC]
+ str r1, [sp, 0x10]
+ str r1, [sp, 0x14]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ movs r3, 0x1
+ bl sub_806F370
+ b _080482B4
+ .align 2, 0
+_080482A0: .4byte gUnknown_80F4FAC
+_080482A4: .4byte 0x00000217
+_080482A8:
+ ldr r0, _080482CC
+ ldr r2, [r0]
+ adds r0, r4, 0
+ adds r1, r5, 0
+ bl sub_80522F4
+_080482B4:
+ adds r0, r4, 0
+ bl sub_8071DA4
+_080482BA:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080482CC: .4byte gUnknown_80FE458
+ thumb_func_end sub_80479B8
+
+ thumb_func_start nullsub_205
+nullsub_205:
+ bx lr
+ thumb_func_end nullsub_205
+
+ thumb_func_start sub_80482D4
+sub_80482D4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldr r1, _080482F8
+ adds r0, r4, 0
+ movs r2, 0x1
+ bl sub_808417C
+ adds r2, r0, 0
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r3, 0x1
+ bl sub_8075C58
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080482F8: .4byte gUnknown_80F4E74
+ thumb_func_end sub_80482D4
+
+ thumb_func_start sub_80482FC
+sub_80482FC:
+ push {r4-r6,lr}
+ mov r6, r9
+ mov r5, r8
+ push {r5,r6}
+ sub sp, 0xC
+ mov r8, r0
+ mov r9, r1
+ adds r6, r2, 0
+ lsls r4, r3, 24
+ lsrs r4, 24
+ add r5, sp, 0x4
+ ldr r1, _0804833C
+ adds r0, r5, 0
+ bl sub_8092A88
+ strb r6, [r5, 0x4]
+ movs r3, 0x80
+ lsls r3, 1
+ str r4, [sp]
+ mov r0, r8
+ mov r1, r9
+ add r2, sp, 0x4
+ bl sub_8055640
+ add sp, 0xC
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804833C: .4byte 0x00000195
+ thumb_func_end sub_80482FC
+
+ thumb_func_start sub_8048340
+sub_8048340:
+ push {r4,lr}
+ sub sp, 0x18
+ movs r4, 0
+ str r4, [sp]
+ str r4, [sp, 0x4]
+ movs r3, 0x84
+ lsls r3, 2
+ str r3, [sp, 0x8]
+ str r4, [sp, 0xC]
+ str r4, [sp, 0x10]
+ str r4, [sp, 0x14]
+ movs r3, 0x1
+ bl sub_806F370
+ add sp, 0x18
+ pop {r4}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048340
+
+ thumb_func_start sub_8048364
+sub_8048364:
+ push {lr}
+ lsls r3, r2, 24
+ lsrs r3, 24
+ movs r2, 0x1
+ bl sub_8079F20
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048364
+
+ thumb_func_start sub_8048374
+sub_8048374:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _08048394
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ ldr r3, _08048398
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_08048394: .4byte gUnknown_80F4FB6
+_08048398: .4byte gUnknown_80F4FB8
+ thumb_func_end sub_8048374
+
+ thumb_func_start sub_804839C
+sub_804839C:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _080483BC
+ movs r3, 0
+ ldrsh r2, [r2, r3]
+ ldr r3, _080483C0
+ movs r4, 0
+ ldrsh r3, [r3, r4]
+ movs r4, 0x1
+ str r4, [sp]
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483BC: .4byte gUnknown_80F4FBA
+_080483C0: .4byte gUnknown_80F4FBC
+ thumb_func_end sub_804839C
+
+ thumb_func_start sub_80483C4
+sub_80483C4:
+ push {lr}
+ ldr r2, _080483D0
+ bl sub_80792F8
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483D0: .4byte 0x000003e7
+ thumb_func_end sub_80483C4
+
+ thumb_func_start sub_80483D4
+sub_80483D4:
+ push {r4,lr}
+ sub sp, 0x4
+ ldr r2, _080483F0
+ movs r4, 0
+ ldrsh r3, [r2, r4]
+ movs r2, 0x1
+ str r2, [sp]
+ movs r2, 0
+ bl sub_8077C44
+ add sp, 0x4
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_080483F0: .4byte gUnknown_80F4FBE
+ thumb_func_end sub_80483D4
+
+ thumb_func_start sub_80483F4
+sub_80483F4:
+ push {lr}
+ bl sub_8079140
+ pop {r0}
+ bx r0
+ thumb_func_end sub_80483F4
+
+ thumb_func_start sub_8048400
+sub_8048400:
+ push {lr}
+ bl sub_80791D8
+ pop {r0}
+ bx r0
+ thumb_func_end sub_8048400
+
+ thumb_func_start sub_804840C
+sub_804840C:
+ push {lr}
+ movs r2, 0
+ movs r3, 0x1
+ bl sub_8077910
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804840C
+
+ thumb_func_start sub_804841C
+sub_804841C:
+ push {lr}
+ bl sub_8079270
+ pop {r0}
+ bx r0
+ thumb_func_end sub_804841C
+
+ thumb_func_start sub_8048428
+sub_8048428:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, [r1, 0x70]
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ cmp r0, 0x4
+ bne _0804843E
+ adds r0, r3, 0
+ bl sub_807A290
+ b _08048448
+_0804843E:
+ ldr r0, _0804844C
+ ldr r2, [r0]
+ adds r0, r3, 0
+ bl sub_80522F4
+_08048448:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804844C: .4byte gUnknown_80F89F4
+ thumb_func_end sub_8048428
+
+ thumb_func_start sub_8048450
+sub_8048450:
+ push {lr}
+ adds r3, r0, 0
+ ldr r0, [r1, 0x70]
+ adds r0, 0xAC
+ ldrb r0, [r0]
+ subs r0, 0x2
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, 0x1
+ bhi _0804846C
+ adds r0, r3, 0
+ bl sub_807A290
+ b _08048476
+_0804846C:
+ ldr r0, _0804847C
+ ldr r2, [r0]
+ adds r0, r3, 0
+ bl sub_80522F4
+_08048476:
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0804847C: .4byte gUnknown_80F89F4
+ thumb_func_end sub_8048450
+
+ .align 2,0
diff --git a/ld_script.txt b/ld_script.txt
index 0880775..b8b4848 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -79,6 +79,8 @@ SECTIONS {
asm/code_8012A18.o(.text);
src/code_8012A18.o(.text);
asm/code_803D110.o(.text);
+ src/code_80428A0.o(.text);
+ asm/code_80428A0.o(.text);
src/code_8048480.o(.text);
asm/code_8048480.o(.text);
src/code_80521D0.o(.text);
diff --git a/src/code_80428A0.c b/src/code_80428A0.c
new file mode 100644
index 0000000..eab25f3
--- /dev/null
+++ b/src/code_80428A0.c
@@ -0,0 +1,145 @@
+#include "global.h"
+
+extern void sub_804151C(u32 r0, u32 r1, u32 r2);
+extern void sub_803E708(u32 r0, u32 r1);
+extern void sub_80416A4(u32 r0, u32 r1, u32 r2);
+extern void sub_80421C0(u32 r0, u32 r1);
+
+void sub_80428A0(u32 r0)
+{
+ sub_804151C(r0, 0x29, 1);
+}
+
+void sub_80428B0(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+
+void sub_80428C4(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+
+void sub_80428D8(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+void sub_80428EC(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+void sub_8042900(u32 r0)
+{
+ sub_804151C(r0, 0xD4 << 1, 0);
+}
+
+void sub_8042910(u32 r0)
+{
+ sub_804151C(r0, 0x29, 0);
+}
+
+void sub_8042920(u32 r0)
+{
+ sub_804151C(r0, 0x48, 0);
+}
+
+void sub_8042930(u32 r0)
+{
+ sub_804151C(r0, 0xD3 << 1, 1);
+}
+
+void sub_8042940(u32 r0)
+{
+ sub_804151C(r0, 0xC7 << 1, 0);
+}
+
+void sub_8042950(u32 r0)
+{
+ sub_804151C(r0, 0xD8 << 1, 1);
+ sub_803E708(0xA, 0x42);
+}
+
+void sub_8042968(u32 r0)
+{
+ sub_804151C(r0, 0xD4 << 1, 0);
+}
+
+void sub_8042978(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+void sub_804298C(u32 r0)
+{
+ sub_804151C(r0, 0x1a9, 0);
+}
+
+void sub_80429A0(u32 r0)
+{
+ sub_804151C(r0, 0x199, 0);
+}
+
+void sub_80429B4(u32 r0)
+{
+ sub_804151C(r0, 0x1ab, 0);
+}
+
+void sub_80429C8(u32 r0)
+{
+ sub_804151C(r0, 0x4, 1);
+}
+
+void sub_80429D8(u32 r0)
+{
+ sub_804151C(r0, 0x8F << 1, 1);
+}
+
+void sub_80429E8(u32 r0)
+{
+ sub_804151C(r0, 0x11d, 1);
+}
+
+void sub_80429FC(u32 r0)
+{
+ sub_80416A4(r0, 0xCF << 1, 1);
+ sub_80421C0(0, 0xD4);
+}
+
+void sub_8042A14(u32 r0)
+{
+ sub_80416A4(r0, 0x36, 1);
+}
+
+void sub_8042A24(u32 r0)
+{
+ sub_804151C(r0, 0x15, 1);
+}
+
+void sub_8042A34(u32 r0)
+{
+ sub_80416A4(r0, 0x9F << 1, 0);
+}
+
+void sub_8042A44(u32 r0)
+{
+ sub_804151C(r0, 0xDA << 1, 1);
+}
+
+void sub_8042A54(u32 r0)
+{
+ sub_80416A4(r0, 0x37, 1);
+}
+
+void sub_8042A64(u32 r0)
+{
+ sub_80416A4(r0, 0x29, 1);
+}
+
+void sub_8042A74(u32 r0)
+{
+ sub_804151C(r0, 0x18, 1);
+}