summaryrefslogtreecommitdiff
path: root/asm/code_808DAB4.s
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2020-12-17 13:17:58 -0600
committerGitHub <noreply@github.com>2020-12-17 13:17:58 -0600
commit096de8d9b2ffd90c52e790296bfd7c5436d45ca3 (patch)
tree9c5af2e04dea05221c71946a5dfc06471f77801d /asm/code_808DAB4.s
parentbc504264f1e54b3c1e482710c592e5549828bfe1 (diff)
parentf90f3affeb9b0a66aa7df68f5fdecd692033faf9 (diff)
Merge pull request #12 from SethBarberee/master
Merge work from SethBarberee/pmd-red into pret.
Diffstat (limited to 'asm/code_808DAB4.s')
-rw-r--r--asm/code_808DAB4.s1727
1 files changed, 1727 insertions, 0 deletions
diff --git a/asm/code_808DAB4.s b/asm/code_808DAB4.s
new file mode 100644
index 0000000..bfc6812
--- /dev/null
+++ b/asm/code_808DAB4.s
@@ -0,0 +1,1727 @@
+ .include "constants/gba_constants.inc"
+ .include "asm/macros.inc"
+
+ .syntax unified
+
+ .text
+
+ thumb_func_start sub_808DE50
+sub_808DE50:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x8
+ adds r5, r0, 0
+ adds r6, r1, 0
+ adds r4, r2, 0
+ ldrh r0, [r6]
+ strh r0, [r5]
+ ldrb r0, [r6, 0x3]
+ strb r0, [r5, 0x3]
+ ldrh r0, [r6, 0x14]
+ strh r0, [r5, 0x8]
+ ldr r0, [r6, 0x20]
+ str r0, [r5, 0x4C]
+ adds r0, r5, 0
+ adds r0, 0x54
+ bl sub_808E6F4
+ ldr r0, [r6, 0x4]
+ str r0, [r5, 0x4]
+ ldrb r0, [r6, 0x2]
+ strb r0, [r5, 0x2]
+ strh r4, [r5, 0xA]
+ ldrh r0, [r6, 0x8]
+ strh r0, [r5, 0xE]
+ adds r0, r6, 0
+ adds r0, 0x24
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x50
+ strb r1, [r0]
+ ldrh r0, [r6, 0x16]
+ strh r0, [r5, 0x12]
+ strh r0, [r5, 0x10]
+ add r0, sp, 0x4
+ mov r8, r0
+ adds r2, r6, 0
+ adds r2, 0x18
+ adds r1, r5, 0
+ adds r1, 0x14
+ movs r3, 0x1
+_0808DEA4:
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrb r0, [r2, 0x2]
+ strb r0, [r1, 0x2]
+ adds r2, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0808DEA4
+ ldr r0, [r6, 0x1C]
+ str r0, [r5, 0x18]
+ adds r0, r5, 0
+ adds r0, 0x1C
+ adds r1, r6, 0
+ adds r1, 0x2C
+ bl sub_8093F50
+ movs r3, 0
+ movs r0, 0x28
+ adds r0, r6
+ mov r12, r0
+ adds r2, r5, 0
+ adds r2, 0x40
+ adds r7, r5, 0
+ adds r7, 0x58
+ adds r4, r6, 0
+ adds r4, 0x4C
+_0808DEDA:
+ adds r0, r7, r3
+ adds r1, r4, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _0808DEDA
+ mov r0, r12
+ ldrb r1, [r0]
+ negs r0, r1
+ orrs r0, r1
+ lsrs r0, 31
+ cmp r0, 0
+ beq _0808DF00
+ adds r0, r2, 0
+ mov r1, r12
+ bl sub_8090B64
+ b _0808DF06
+_0808DF00:
+ strb r0, [r2, 0x2]
+ strb r0, [r2, 0x1]
+ strb r0, [r2]
+_0808DF06:
+ mov r0, sp
+ movs r1, 0x64
+ bl sub_80943A0
+ ldr r0, [sp]
+ str r0, [r5, 0x44]
+ mov r0, r8
+ movs r1, 0x64
+ bl sub_80943A0
+ ldr r0, [sp, 0x4]
+ str r0, [r5, 0x48]
+ add sp, 0x8
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808DE50
+
+ thumb_func_start sub_808DF2C
+sub_808DF2C:
+ push {lr}
+ ldr r3, _0808DF40
+ movs r2, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ bl sub_808DF44
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DF40: .4byte gUnknown_203B45C
+ thumb_func_end sub_808DF2C
+
+ thumb_func_start sub_808DF44
+sub_808DF44:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r4, r1, 0
+ ldrh r0, [r4]
+ strh r0, [r5]
+ ldrb r0, [r4, 0x3]
+ strb r0, [r5, 0x3]
+ ldrh r0, [r4, 0x8]
+ strh r0, [r5, 0x14]
+ ldr r0, [r4, 0x4C]
+ str r0, [r5, 0x20]
+ ldr r0, [r4, 0x4]
+ str r0, [r5, 0x4]
+ ldrb r0, [r4, 0x2]
+ strb r0, [r5, 0x2]
+ ldrh r0, [r4, 0xE]
+ strh r0, [r5, 0x8]
+ adds r0, r4, 0
+ adds r0, 0x50
+ ldrb r1, [r0]
+ adds r0, r5, 0
+ adds r0, 0x24
+ strb r1, [r0]
+ ldrh r0, [r4, 0x12]
+ strh r0, [r5, 0x16]
+ adds r2, r4, 0
+ adds r2, 0x14
+ adds r1, r5, 0
+ adds r1, 0x18
+ movs r3, 0x1
+_0808DF80:
+ ldrb r0, [r2]
+ strb r0, [r1]
+ ldrb r0, [r2, 0x2]
+ strb r0, [r1, 0x2]
+ adds r2, 0x1
+ adds r1, 0x1
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0808DF80
+ ldr r0, [r4, 0x18]
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ adds r0, 0x2C
+ adds r1, r4, 0
+ adds r1, 0x1C
+ bl sub_8093FA8
+ movs r3, 0
+ adds r7, r4, 0
+ adds r7, 0x40
+ adds r6, r5, 0
+ adds r6, 0x28
+ adds r5, 0x4C
+ adds r2, r4, 0
+ adds r2, 0x58
+_0808DFB2:
+ adds r0, r5, r3
+ adds r1, r2, r3
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r3, 0x1
+ cmp r3, 0x9
+ ble _0808DFB2
+ ldrb r0, [r7]
+ movs r1, 0x1
+ ands r1, r0
+ cmp r1, 0
+ beq _0808DFD4
+ adds r0, r6, 0
+ adds r1, r7, 0
+ bl sub_8090BB0
+ b _0808DFD6
+_0808DFD4:
+ strb r1, [r6]
+_0808DFD6:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808DF44
+
+ thumb_func_start sub_808DFDC
+sub_808DFDC:
+ push {lr}
+ ldr r3, _0808E000
+ movs r2, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r3, r0, r2
+ adds r1, 0x40
+ ldrb r0, [r1]
+ movs r2, 0x1
+ ands r2, r0
+ cmp r2, 0
+ beq _0808E004
+ adds r0, r3, 0
+ adds r0, 0x28
+ bl sub_8090BB0
+ b _0808E00A
+ .align 2, 0
+_0808E000: .4byte gUnknown_203B45C
+_0808E004:
+ adds r0, r3, 0
+ adds r0, 0x28
+ strb r2, [r0]
+_0808E00A:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808DFDC
+
+ thumb_func_start sub_808E010
+sub_808E010:
+ push {r4-r6,lr}
+ sub sp, 0xC
+ adds r6, r0, 0
+ adds r5, r2, 0
+ lsls r1, 16
+ asrs r2, r1, 16
+ ldr r1, _0808E06C
+ movs r3, 0
+ ldrsh r0, [r1, r3]
+ cmp r0, r2
+ beq _0808E04A
+ strh r2, [r1]
+ ldr r1, _0808E070
+ mov r0, sp
+ bl sprintf
+ ldr r1, _0808E074
+ mov r0, sp
+ bl OpenFileAndGetFileDataPtr
+ adds r4, r0, 0
+ ldr r0, _0808E078
+ movs r1, 0
+ adds r2, r4, 0
+ bl DecompressATFile
+ adds r0, r4, 0
+ bl CloseFile
+_0808E04A:
+ subs r5, 0x1
+ cmp r5, 0
+ bge _0808E052
+ movs r5, 0
+_0808E052:
+ ldr r0, _0808E078
+ lsls r1, r5, 1
+ adds r1, r5
+ lsls r1, 2
+ adds r2, r6, 0
+ adds r1, r0
+ ldm r1!, {r0,r3,r4}
+ stm r2!, {r0,r3,r4}
+ add sp, 0xC
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E06C: .4byte gUnknown_20384E8
+_0808E070: .4byte gUnknown_810768C
+_0808E074: .4byte gUnknown_8300500
+_0808E078: .4byte gUnknown_20384F0
+ thumb_func_end sub_808E010
+
+ thumb_func_start sub_808E07C
+sub_808E07C:
+ push {r4,lr}
+ adds r2, r0, 0
+ adds r4, r1, 0
+ ldrb r1, [r2]
+ adds r2, 0x1
+ movs r0, 0x80
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E094
+ ldrb r3, [r2]
+ adds r2, 0x1
+ b _0808E098
+_0808E094:
+ adds r3, r1, 0
+ movs r1, 0
+_0808E098:
+ movs r0, 0x7F
+ ands r3, r0
+ ands r1, r0
+ lsls r0, r1, 7
+ orrs r0, r3
+ strh r0, [r4]
+ adds r0, r2, 0
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E07C
+
+ thumb_func_start sub_808E0AC
+sub_808E0AC:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ adds r6, r0, 0
+ mov r8, r2
+ adds r5, r3, 0
+ lsls r1, 16
+ asrs r1, 16
+ adds r2, r1, 0
+ movs r7, 0
+ ldr r0, _0808E0DC
+ cmp r1, r0
+ beq _0808E0D8
+ cmp r1, 0
+ beq _0808E0D8
+ movs r0, 0xD2
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E0E0
+_0808E0D8:
+ movs r0, 0
+ b _0808E170
+ .align 2, 0
+_0808E0DC: .4byte 0x000001a5
+_0808E0E0:
+ adds r0, r2, 0
+ bl sub_8092B18
+ adds r1, r0, 0
+ mov r4, sp
+ movs r0, 0x88
+ lsls r0, 1
+ mov r10, r0
+ movs r3, 0xB1
+ lsls r3, 1
+ mov r9, r3
+ b _0808E156
+_0808E0F8:
+ cmp r0, r8
+ bne _0808E156
+ movs r2, 0x1
+ ldrh r0, [r4]
+ cmp r0, 0xEE
+ bne _0808E110
+ ldr r0, _0808E180
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r5, r0
+ bge _0808E110
+ movs r2, 0
+_0808E110:
+ ldrh r0, [r4]
+ cmp r0, 0xEF
+ bne _0808E122
+ ldr r0, _0808E184
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r5, r0
+ bge _0808E122
+ movs r2, 0
+_0808E122:
+ ldrh r0, [r4]
+ cmp r0, r10
+ bne _0808E134
+ ldr r0, _0808E188
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r5, r0
+ bge _0808E134
+ movs r2, 0
+_0808E134:
+ ldrh r0, [r4]
+ cmp r0, r9
+ bne _0808E146
+ ldr r0, _0808E18C
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r5, r0
+ bge _0808E146
+ movs r2, 0
+_0808E146:
+ cmp r2, 0
+ beq _0808E156
+ cmp r7, 0xF
+ bgt _0808E156
+ ldrh r0, [r4]
+ strh r0, [r6]
+ adds r6, 0x2
+ adds r7, 0x1
+_0808E156:
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0808E16E
+ adds r0, r1, 0
+ mov r1, sp
+ bl sub_808E07C
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ adds r1, 0x1
+ cmp r0, r8
+ ble _0808E0F8
+_0808E16E:
+ adds r0, r7, 0
+_0808E170:
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E180: .4byte gUnknown_810ACB8
+_0808E184: .4byte gUnknown_810ACBA
+_0808E188: .4byte gUnknown_810ACBC
+_0808E18C: .4byte gUnknown_810ACBE
+ thumb_func_end sub_808E0AC
+
+ thumb_func_start sub_808E190
+sub_808E190:
+ push {r4,r5,lr}
+ sub sp, 0x4
+ lsls r0, 16
+ lsrs r5, r0, 16
+ lsls r1, 16
+ asrs r4, r1, 16
+ ldr r0, _0808E1B8
+ cmp r4, r0
+ beq _0808E20C
+ cmp r4, 0
+ beq _0808E20C
+ movs r0, 0xD2
+ lsls r0, 1
+ cmp r4, r0
+ beq _0808E20C
+ movs r0, 0xB0
+ lsls r0, 1
+ cmp r5, r0
+ bne _0808E1C0
+ b _0808E20C
+ .align 2, 0
+_0808E1B8: .4byte 0x000001a5
+_0808E1BC:
+ movs r0, 0x1
+ b _0808E20E
+_0808E1C0:
+ adds r0, r4, 0
+ bl sub_8092B18
+ adds r1, r0, 0
+ b _0808E1DE
+_0808E1CA:
+ adds r0, r1, 0
+ mov r1, sp
+ bl sub_808E07C
+ adds r1, r0, 0
+ adds r1, 0x1
+ mov r0, sp
+ ldrh r0, [r0]
+ cmp r5, r0
+ beq _0808E1BC
+_0808E1DE:
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0808E1CA
+ adds r0, r4, 0
+ bl sub_8092B54
+ adds r1, r0, 0
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0808E20C
+ mov r4, sp
+ adds r4, 0x2
+_0808E1F6:
+ adds r0, r1, 0
+ adds r1, r4, 0
+ bl sub_808E07C
+ adds r1, r0, 0
+ ldrh r0, [r4]
+ cmp r0, r5
+ beq _0808E1BC
+ ldrb r0, [r1]
+ cmp r0, 0
+ bne _0808E1F6
+_0808E20C:
+ movs r0, 0
+_0808E20E:
+ add sp, 0x4
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E190
+
+ thumb_func_start sub_808E218
+sub_808E218:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x1C
+ mov r10, r0
+ mov r8, r1
+ movs r0, 0
+ mov r9, r0
+ movs r0, 0xCF
+ lsls r0, 2
+ add r0, r10
+ mov r1, r9
+ str r1, [r0]
+ mov r2, r8
+ movs r3, 0x8
+ ldrsh r1, [r2, r3]
+ ldr r0, _0808E254
+ cmp r1, r0
+ beq _0808E24E
+ cmp r1, 0
+ beq _0808E24E
+ movs r0, 0xD2
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E258
+_0808E24E:
+ movs r0, 0
+ b _0808E396
+ .align 2, 0
+_0808E254: .4byte 0x000001a5
+_0808E258:
+ mov r0, r8
+ mov r1, sp
+ bl sub_808E3B8
+ str r0, [sp, 0x10]
+ movs r5, 0
+ cmp r9, r0
+ blt _0808E26A
+ b _0808E38A
+_0808E26A:
+ lsls r4, r5, 2
+ mov r1, sp
+ adds r0, r1, r4
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ bl sub_8092B18
+ adds r6, r0, 0
+ str r4, [sp, 0x18]
+ adds r5, 0x1
+ str r5, [sp, 0x14]
+ b _0808E35E
+_0808E282:
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r9, r0
+ bgt _0808E35E
+ movs r7, 0x1
+ ldrh r0, [r4]
+ cmp r0, 0xEE
+ bne _0808E2A4
+ ldr r0, _0808E3A8
+ mov r3, r8
+ movs r4, 0x14
+ ldrsh r1, [r3, r4]
+ movs r2, 0
+ ldrsh r0, [r0, r2]
+ cmp r1, r0
+ bge _0808E2A4
+ movs r7, 0
+_0808E2A4:
+ mov r3, r12
+ ldrh r0, [r3]
+ cmp r0, 0xEF
+ bne _0808E2BE
+ ldr r0, _0808E3AC
+ mov r4, r8
+ movs r2, 0x14
+ ldrsh r1, [r4, r2]
+ movs r3, 0
+ ldrsh r0, [r0, r3]
+ cmp r1, r0
+ bge _0808E2BE
+ movs r7, 0
+_0808E2BE:
+ mov r4, r12
+ ldrh r1, [r4]
+ movs r0, 0x88
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E2DC
+ ldr r0, _0808E3B0
+ mov r2, r8
+ movs r3, 0x14
+ ldrsh r1, [r2, r3]
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ bge _0808E2DC
+ movs r7, 0
+_0808E2DC:
+ mov r0, r12
+ ldrh r1, [r0]
+ movs r0, 0xB1
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E2FA
+ ldr r0, _0808E3B4
+ mov r2, r8
+ movs r3, 0x14
+ ldrsh r1, [r2, r3]
+ movs r4, 0
+ ldrsh r0, [r0, r4]
+ cmp r1, r0
+ bge _0808E2FA
+ movs r7, 0
+_0808E2FA:
+ movs r4, 0x1
+ mov r5, r12
+ mov r2, r8
+ adds r2, 0x2C
+ movs r3, 0x3
+_0808E304:
+ ldrb r1, [r2]
+ adds r0, r4, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E318
+ ldrh r0, [r2, 0x2]
+ ldrh r1, [r5]
+ cmp r0, r1
+ bne _0808E318
+ movs r7, 0
+_0808E318:
+ adds r2, 0x8
+ subs r3, 0x1
+ cmp r3, 0
+ bge _0808E304
+ cmp r7, 0
+ beq _0808E35E
+ movs r2, 0
+ cmp r2, r9
+ bge _0808E34A
+ mov r3, r10
+ ldrh r0, [r3]
+ mov r4, r12
+ ldrh r4, [r4]
+ cmp r0, r4
+ beq _0808E34A
+ mov r3, r12
+ mov r1, r10
+_0808E33A:
+ adds r1, 0x2
+ adds r2, 0x1
+ cmp r2, r9
+ bge _0808E34A
+ ldrh r0, [r1]
+ ldrh r4, [r3]
+ cmp r0, r4
+ bne _0808E33A
+_0808E34A:
+ cmp r2, r9
+ bne _0808E35E
+ mov r1, r9
+ lsls r0, r1, 1
+ add r0, r10
+ mov r2, r12
+ ldrh r1, [r2]
+ strh r1, [r0]
+ movs r3, 0x1
+ add r9, r3
+_0808E35E:
+ ldrb r0, [r6]
+ cmp r0, 0
+ beq _0808E380
+ add r4, sp, 0xC
+ adds r0, r6, 0
+ adds r1, r4, 0
+ bl sub_808E07C
+ adds r6, r0, 0
+ ldrb r0, [r6]
+ adds r6, 0x1
+ ldr r1, [sp, 0x18]
+ add r1, sp
+ ldrb r1, [r1, 0x2]
+ mov r12, r4
+ cmp r0, r1
+ ble _0808E282
+_0808E380:
+ ldr r5, [sp, 0x14]
+ ldr r4, [sp, 0x10]
+ cmp r5, r4
+ bge _0808E38A
+ b _0808E26A
+_0808E38A:
+ movs r0, 0xCF
+ lsls r0, 2
+ add r0, r10
+ mov r1, r9
+ str r1, [r0]
+ mov r0, r9
+_0808E396:
+ add sp, 0x1C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E3A8: .4byte gUnknown_810ACB8
+_0808E3AC: .4byte gUnknown_810ACBA
+_0808E3B0: .4byte gUnknown_810ACBC
+_0808E3B4: .4byte gUnknown_810ACBE
+ thumb_func_end sub_808E218
+
+ thumb_func_start sub_808E3B8
+sub_808E3B8:
+ push {r4-r7,lr}
+ ldrh r2, [r0, 0x8]
+ strh r2, [r1]
+ ldrb r2, [r0, 0x3]
+ strb r2, [r1, 0x2]
+ movs r7, 0x1
+ movs r3, 0x8
+ ldrsh r2, [r0, r3]
+ movs r6, 0
+ adds r5, r0, 0
+ adds r5, 0xC
+ adds r4, r1, 0x4
+ b _0808E3E0
+_0808E3D2:
+ strh r2, [r4]
+ ldrb r0, [r5]
+ strb r0, [r4, 0x2]
+ adds r4, 0x4
+ adds r7, 0x1
+ adds r5, 0x4
+ adds r6, 0x1
+_0808E3E0:
+ cmp r6, 0x1
+ bgt _0808E3F8
+ ldrb r0, [r5]
+ cmp r0, 0
+ beq _0808E3F8
+ adds r0, r2, 0
+ bl sub_808DC0C
+ lsls r0, 16
+ asrs r2, r0, 16
+ cmp r2, 0
+ bne _0808E3D2
+_0808E3F8:
+ adds r0, r7, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E3B8
+
+ thumb_func_start sub_808E400
+sub_808E400:
+ 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 r9, r0
+ lsls r2, 24
+ lsrs r2, 24
+ str r2, [sp]
+ lsls r3, 24
+ lsrs r3, 24
+ str r3, [sp, 0x4]
+ movs r0, 0
+ mov r10, r0
+ movs r7, 0x1
+ adds r6, r1, 0
+_0808E426:
+ lsls r0, r7, 16
+ asrs r5, r0, 16
+ mov r8, r5
+ adds r0, r5, 0
+ bl sub_808DC0C
+ lsls r0, 16
+ asrs r0, 16
+ cmp r9, r0
+ bne _0808E46C
+ ldr r0, [sp]
+ cmp r0, 0
+ bne _0808E456
+ mov r0, r9
+ bl GetPokemonSize
+ adds r4, r0, 0
+ adds r0, r5, 0
+ bl GetPokemonSize
+ lsls r4, 24
+ lsls r0, 24
+ cmp r4, r0
+ bne _0808E46C
+_0808E456:
+ ldr r0, [sp, 0x4]
+ cmp r0, 0
+ bne _0808E462
+ ldr r0, _0808E488
+ cmp r5, r0
+ beq _0808E46C
+_0808E462:
+ mov r0, r8
+ strh r0, [r6]
+ adds r6, 0x2
+ movs r0, 0x1
+ add r10, r0
+_0808E46C:
+ adds r7, 0x1
+ ldr r0, _0808E48C
+ cmp r7, r0
+ ble _0808E426
+ mov r0, r10
+ add sp, 0x8
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E488: .4byte 0x0000013d
+_0808E48C: .4byte 0x000001a7
+ thumb_func_end sub_808E400
+
+ thumb_func_start sub_808E490
+sub_808E490:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ sub sp, 0x20
+ mov r8, r0
+ lsls r1, 16
+ asrs r1, 16
+ ldr r3, _0808E4F8
+ mov r0, sp
+ movs r2, 0x1
+ bl sub_808E0AC
+ adds r7, r0, 0
+ cmp r7, 0
+ bne _0808E4B8
+ movs r7, 0x1
+ mov r1, sp
+ movs r0, 0xCC
+ lsls r0, 1
+ strh r0, [r1]
+_0808E4B8:
+ movs r4, 0
+ cmp r4, r7
+ bge _0808E4D8
+ mov r6, sp
+ mov r5, r8
+ adds r4, r7, 0
+_0808E4C4:
+ ldrh r1, [r6]
+ adds r0, r5, 0
+ bl sub_8092AD4
+ adds r6, 0x2
+ adds r5, 0x8
+ subs r4, 0x1
+ cmp r4, 0
+ bne _0808E4C4
+ adds r4, r7, 0
+_0808E4D8:
+ cmp r4, 0x3
+ bgt _0808E4EC
+ movs r1, 0
+ lsls r0, r4, 3
+ add r0, r8
+_0808E4E2:
+ strb r1, [r0]
+ adds r0, 0x8
+ adds r4, 0x1
+ cmp r4, 0x3
+ ble _0808E4E2
+_0808E4EC:
+ add sp, 0x20
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E4F8: .4byte 0x000003e7
+ thumb_func_end sub_808E490
+
+ thumb_func_start sub_808E4FC
+sub_808E4FC:
+ push {lr}
+ sub sp, 0x10
+ ldr r1, _0808E518
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r1, sp
+ bl sub_8097DF0
+ ldr r0, [sp]
+ ldr r0, [r0]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E518: .4byte gFormattedStatusNames
+ thumb_func_end sub_808E4FC
+
+ thumb_func_start sub_808E51C
+sub_808E51C:
+ push {lr}
+ sub sp, 0x10
+ ldr r1, _0808E538
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ mov r1, sp
+ bl sub_8097DF0
+ ldr r0, [sp]
+ ldr r0, [r0, 0x4]
+ add sp, 0x10
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E538: .4byte gFormattedStatusNames
+ thumb_func_end sub_808E51C
+
+ thumb_func_start sub_808E53C
+sub_808E53C:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x4
+ mov r8, r0
+ str r1, [sp]
+ ldr r0, _0808E628
+ ldr r1, _0808E62C
+ bl OpenFileAndGetFileDataPtr
+ adds r7, r0, 0
+ ldr r4, [r7, 0x4]
+ movs r6, 0x7
+ adds r4, 0x4
+ mov r1, r8
+ lsls r0, r1, 5
+ ldr r2, _0808E630
+ adds r5, r0, r2
+_0808E564:
+ adds r0, r5, 0
+ adds r1, r4, 0
+ movs r2, 0x20
+ bl CpuCopy
+ adds r5, 0x20
+ adds r4, 0x20
+ subs r6, 0x1
+ cmp r6, 0
+ bne _0808E564
+ adds r0, r7, 0
+ bl CloseFile
+ movs r6, 0
+ movs r0, 0x3
+ mov r12, r0
+ ldr r1, _0808E634
+ mov r10, r1
+ ldr r2, _0808E638
+ mov r9, r2
+ ldr r5, _0808E63C
+ movs r7, 0
+ mov r4, r12
+ ldr r0, [sp]
+ ands r4, r0
+ lsls r4, 10
+_0808E598:
+ lsls r3, r6, 3
+ ldr r0, _0808E640
+ adds r3, r0
+ ldrh r1, [r3]
+ ldr r0, _0808E644
+ ands r0, r1
+ ldr r1, _0808E648
+ ands r0, r1
+ mov r2, r10
+ ands r0, r2
+ ldr r1, _0808E64C
+ ands r0, r1
+ ldr r1, _0808E650
+ ands r0, r1
+ strh r0, [r3]
+ ldr r1, [r5]
+ mov r2, r12
+ ands r1, r2
+ lsls r1, 14
+ mov r2, r9
+ ands r0, r2
+ orrs r0, r1
+ strh r0, [r3]
+ ldrh r0, [r3, 0x2]
+ ldr r1, _0808E654
+ ands r1, r0
+ strh r1, [r3, 0x2]
+ ldr r0, _0808E63C
+ adds r0, 0x4
+ adds r0, r7, r0
+ ldr r0, [r0]
+ mov r2, r12
+ ands r0, r2
+ lsls r0, 14
+ mov r2, r9
+ ands r1, r2
+ orrs r1, r0
+ strh r1, [r3, 0x2]
+ ldr r1, [r5, 0x8]
+ add r1, r8
+ ldr r0, _0808E658
+ ands r1, r0
+ ldrh r2, [r3, 0x4]
+ movs r0, 0xFC
+ lsls r0, 8
+ ands r0, r2
+ orrs r0, r1
+ mov r1, r10
+ ands r0, r1
+ orrs r0, r4
+ ldr r1, _0808E65C
+ ands r0, r1
+ strh r0, [r3, 0x4]
+ ldrh r1, [r3, 0x6]
+ ldr r0, _0808E660
+ ands r0, r1
+ ldr r1, _0808E664
+ ands r0, r1
+ strh r0, [r3, 0x6]
+ adds r5, 0xC
+ adds r7, 0xC
+ adds r6, 0x1
+ cmp r6, 0x2
+ ble _0808E598
+ add sp, 0x4
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808E628: .4byte gUnknown_81076BC
+_0808E62C: .4byte gUnknown_83B0000
+_0808E630: .4byte 0x06010000
+_0808E634: .4byte 0x0000f3ff
+_0808E638: .4byte 0x00003fff
+_0808E63C: .4byte gUnknown_8107698
+_0808E640: .4byte gUnknown_202F3E8
+_0808E644: .4byte 0x0000feff
+_0808E648: .4byte 0x0000fdff
+_0808E64C: .4byte 0x0000efff
+_0808E650: .4byte 0x0000dfff
+_0808E654: .4byte 0x0000c1ff
+_0808E658: .4byte 0x000003ff
+_0808E65C: .4byte 0x00000fff
+_0808E660: .4byte 0x0000fffe
+_0808E664: .4byte 0x0000fffd
+ thumb_func_end sub_808E53C
+
+ thumb_func_start sub_808E668
+sub_808E668:
+ push {r4,r5,lr}
+ adds r4, r1, 0
+ adds r5, r2, 0
+ lsls r0, 16
+ asrs r1, r0, 16
+ ldr r2, _0808E6E0
+ adds r0, r2
+ lsrs r0, 16
+ cmp r0, 0x1
+ bls _0808E6D6
+ adds r0, r1, 0
+ bl GetShadowSize
+ lsls r0, 24
+ lsrs r0, 24
+ movs r3, 0
+ ldrsh r2, [r4, r3]
+ movs r3, 0x10
+ ldrsh r1, [r5, r3]
+ adds r2, r1
+ movs r1, 0x2
+ ldrsh r3, [r4, r1]
+ movs r4, 0x12
+ ldrsh r1, [r5, r4]
+ adds r3, r1
+ ldr r4, _0808E6E4
+ lsls r1, r0, 2
+ adds r1, r4
+ ldr r1, [r1]
+ adds r2, r1
+ subs r3, 0x4
+ ldr r1, _0808E6E8
+ ands r2, r1
+ lsls r0, 3
+ ldr r1, _0808E6EC
+ adds r0, r1
+ ldrh r4, [r0, 0x2]
+ movs r1, 0xFE
+ lsls r1, 8
+ ands r1, r4
+ orrs r1, r2
+ strh r1, [r0, 0x2]
+ ldr r1, _0808E6F0
+ ands r3, r1
+ lsls r3, 4
+ ldrh r2, [r0, 0x6]
+ movs r1, 0xF
+ ands r1, r2
+ orrs r1, r3
+ strh r1, [r0, 0x6]
+ movs r1, 0
+ movs r2, 0
+ movs r3, 0
+ bl AddSprite
+_0808E6D6:
+ movs r0, 0x1
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808E6E0: .4byte 0xffce0000
+_0808E6E4: .4byte gUnknown_81076C4
+_0808E6E8: .4byte 0x000001ff
+_0808E6EC: .4byte gUnknown_202F3E8
+_0808E6F0: .4byte 0x00000fff
+ thumb_func_end sub_808E668
+
+ thumb_func_start sub_808E6F4
+sub_808E6F4:
+ push {r4,r5,lr}
+ adds r5, r0, 0
+ movs r0, 0xA
+ bl RandomCapped
+ ldr r1, _0808E70C
+ lsls r0, 2
+ adds r0, r1
+ ldr r0, [r0]
+ strh r0, [r5]
+ movs r4, 0
+ b _0808E712
+ .align 2, 0
+_0808E70C: .4byte gUnknown_810AC90
+_0808E710:
+ adds r4, 0x1
+_0808E712:
+ cmp r4, 0x63
+ bgt _0808E724
+ movs r0, 0x12
+ bl RandomCapped
+ strb r0, [r5, 0x2]
+ lsls r0, 24
+ cmp r0, 0
+ beq _0808E710
+_0808E724:
+ cmp r4, 0x64
+ bne _0808E72C
+ movs r0, 0x2
+ strb r0, [r5, 0x2]
+_0808E72C:
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808E6F4
+
+ thumb_func_start sub_808E734
+sub_808E734:
+ push {r4-r6,lr}
+ lsls r0, 16
+ asrs r4, r0, 16
+ movs r3, 0
+ ldr r0, _0808E75C
+ ldr r2, [r0]
+ movs r6, 0x1
+ movs r5, 0xCE
+ lsls r5, 1
+_0808E746:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808E760
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, r4
+ bne _0808E760
+ movs r0, 0x1
+ b _0808E76A
+ .align 2, 0
+_0808E75C: .4byte gUnknown_203B45C
+_0808E760:
+ adds r2, 0x58
+ adds r3, 0x1
+ cmp r3, r5
+ ble _0808E746
+ movs r0, 0
+_0808E76A:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E734
+
+ thumb_func_start sub_808E770
+sub_808E770:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ ldr r0, _0808E788
+ cmp r1, r0
+ beq _0808E792
+ movs r0, 0xBD
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E78C
+ subs r0, 0x2
+ b _0808E854
+ .align 2, 0
+_0808E788: .4byte 0x00000179
+_0808E78C:
+ ldr r0, _0808E798
+ cmp r1, r0
+ bne _0808E79C
+_0808E792:
+ movs r0, 0xBC
+ lsls r0, 1
+ b _0808E854
+ .align 2, 0
+_0808E798: .4byte 0x0000017b
+_0808E79C:
+ cmp r1, 0xCA
+ beq _0808E80E
+ cmp r1, 0xCB
+ beq _0808E80E
+ cmp r1, 0xCC
+ beq _0808E80E
+ cmp r1, 0xCD
+ beq _0808E80E
+ cmp r1, 0xCE
+ beq _0808E80E
+ cmp r1, 0xCF
+ beq _0808E80E
+ cmp r1, 0xD0
+ beq _0808E80E
+ cmp r1, 0xD1
+ beq _0808E80E
+ cmp r1, 0xD2
+ beq _0808E80E
+ cmp r1, 0xD3
+ beq _0808E80E
+ cmp r1, 0xD4
+ beq _0808E80E
+ cmp r1, 0xD5
+ beq _0808E80E
+ cmp r1, 0xD6
+ beq _0808E80E
+ cmp r1, 0xD7
+ beq _0808E80E
+ cmp r1, 0xD8
+ beq _0808E80E
+ cmp r1, 0xD9
+ beq _0808E80E
+ cmp r1, 0xDA
+ beq _0808E80E
+ cmp r1, 0xDB
+ beq _0808E80E
+ cmp r1, 0xDC
+ beq _0808E80E
+ cmp r1, 0xDD
+ beq _0808E80E
+ cmp r1, 0xDE
+ beq _0808E80E
+ cmp r1, 0xDF
+ beq _0808E80E
+ cmp r1, 0xE0
+ beq _0808E80E
+ cmp r1, 0xE1
+ beq _0808E80E
+ cmp r1, 0xE2
+ beq _0808E80E
+ ldr r0, _0808E814
+ cmp r1, r0
+ beq _0808E80E
+ movs r0, 0xD0
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E818
+_0808E80E:
+ movs r0, 0xC9
+ b _0808E854
+ .align 2, 0
+_0808E814: .4byte 0x0000019f
+_0808E818:
+ ldr r0, _0808E82C
+ cmp r1, r0
+ beq _0808E836
+ movs r0, 0xD1
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E830
+ subs r0, 0x4
+ b _0808E854
+ .align 2, 0
+_0808E82C: .4byte 0x000001a1
+_0808E830:
+ ldr r0, _0808E83C
+ cmp r1, r0
+ bne _0808E840
+_0808E836:
+ movs r0, 0xCF
+ lsls r0, 1
+ b _0808E854
+ .align 2, 0
+_0808E83C: .4byte 0x000001a3
+_0808E840:
+ ldr r0, _0808E84C
+ cmp r1, r0
+ beq _0808E850
+ adds r0, r1, 0
+ b _0808E854
+ .align 2, 0
+_0808E84C: .4byte 0x000001a7
+_0808E850:
+ movs r0, 0xCE
+ lsls r0, 1
+_0808E854:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E770
+
+ thumb_func_start sub_808E858
+sub_808E858:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ adds r2, r1, 0
+ ldr r0, _0808E874
+ cmp r1, r0
+ beq _0808E87E
+ movs r0, 0xBD
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E878
+ subs r0, 0x2
+ b _0808E8C4
+ .align 2, 0
+_0808E874: .4byte 0x00000179
+_0808E878:
+ ldr r0, _0808E884
+ cmp r1, r0
+ bne _0808E888
+_0808E87E:
+ movs r0, 0xBC
+ lsls r0, 1
+ b _0808E8C4
+ .align 2, 0
+_0808E884: .4byte 0x0000017b
+_0808E888:
+ ldr r0, _0808E89C
+ cmp r1, r0
+ beq _0808E8A6
+ movs r0, 0xD1
+ lsls r0, 1
+ cmp r1, r0
+ bne _0808E8A0
+ subs r0, 0x4
+ b _0808E8C4
+ .align 2, 0
+_0808E89C: .4byte 0x000001a1
+_0808E8A0:
+ ldr r0, _0808E8AC
+ cmp r1, r0
+ bne _0808E8B0
+_0808E8A6:
+ movs r0, 0xCF
+ lsls r0, 1
+ b _0808E8C4
+ .align 2, 0
+_0808E8AC: .4byte 0x000001a3
+_0808E8B0:
+ ldr r0, _0808E8BC
+ cmp r2, r0
+ beq _0808E8C0
+ adds r0, r2, 0
+ b _0808E8C4
+ .align 2, 0
+_0808E8BC: .4byte 0x000001a7
+_0808E8C0:
+ movs r0, 0xCE
+ lsls r0, 1
+_0808E8C4:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E858
+
+ thumb_func_start sub_808E8C8
+sub_808E8C8:
+ push {lr}
+ lsls r0, 16
+ asrs r1, r0, 16
+ cmp r1, 0xCA
+ bne _0808E8D6
+ movs r0, 0x1
+ b _0808E9B2
+_0808E8D6:
+ cmp r1, 0xCB
+ bne _0808E8DE
+ movs r0, 0x2
+ b _0808E9B2
+_0808E8DE:
+ cmp r1, 0xCC
+ bne _0808E8E6
+ movs r0, 0x3
+ b _0808E9B2
+_0808E8E6:
+ cmp r1, 0xCD
+ bne _0808E8EE
+ movs r0, 0x4
+ b _0808E9B2
+_0808E8EE:
+ cmp r1, 0xCE
+ bne _0808E8F6
+ movs r0, 0x5
+ b _0808E9B2
+_0808E8F6:
+ cmp r1, 0xCF
+ bne _0808E8FE
+ movs r0, 0x6
+ b _0808E9B2
+_0808E8FE:
+ cmp r1, 0xD0
+ bne _0808E906
+ movs r0, 0x7
+ b _0808E9B2
+_0808E906:
+ cmp r1, 0xD1
+ bne _0808E90E
+ movs r0, 0x8
+ b _0808E9B2
+_0808E90E:
+ cmp r1, 0xD2
+ bne _0808E916
+ movs r0, 0x9
+ b _0808E9B2
+_0808E916:
+ cmp r1, 0xD3
+ bne _0808E91E
+ movs r0, 0xA
+ b _0808E9B2
+_0808E91E:
+ cmp r1, 0xD4
+ bne _0808E926
+ movs r0, 0xB
+ b _0808E9B2
+_0808E926:
+ cmp r1, 0xD5
+ bne _0808E92E
+ movs r0, 0xC
+ b _0808E9B2
+_0808E92E:
+ cmp r1, 0xD6
+ bne _0808E936
+ movs r0, 0xD
+ b _0808E9B2
+_0808E936:
+ cmp r1, 0xD7
+ bne _0808E93E
+ movs r0, 0xE
+ b _0808E9B2
+_0808E93E:
+ cmp r1, 0xD8
+ bne _0808E946
+ movs r0, 0xF
+ b _0808E9B2
+_0808E946:
+ cmp r1, 0xD9
+ bne _0808E94E
+ movs r0, 0x10
+ b _0808E9B2
+_0808E94E:
+ cmp r1, 0xDA
+ bne _0808E956
+ movs r0, 0x11
+ b _0808E9B2
+_0808E956:
+ cmp r1, 0xDB
+ bne _0808E95E
+ movs r0, 0x12
+ b _0808E9B2
+_0808E95E:
+ cmp r1, 0xDC
+ bne _0808E966
+ movs r0, 0x13
+ b _0808E9B2
+_0808E966:
+ cmp r1, 0xDD
+ bne _0808E96E
+ movs r0, 0x14
+ b _0808E9B2
+_0808E96E:
+ cmp r1, 0xDE
+ bne _0808E976
+ movs r0, 0x15
+ b _0808E9B2
+_0808E976:
+ cmp r1, 0xDF
+ bne _0808E97E
+ movs r0, 0x16
+ b _0808E9B2
+_0808E97E:
+ cmp r1, 0xE0
+ bne _0808E986
+ movs r0, 0x17
+ b _0808E9B2
+_0808E986:
+ cmp r1, 0xE1
+ bne _0808E98E
+ movs r0, 0x18
+ b _0808E9B2
+_0808E98E:
+ cmp r1, 0xE2
+ bne _0808E996
+ movs r0, 0x19
+ b _0808E9B2
+_0808E996:
+ ldr r0, _0808E9A0
+ cmp r1, r0
+ bne _0808E9A4
+ movs r0, 0x1A
+ b _0808E9B2
+ .align 2, 0
+_0808E9A0: .4byte 0x0000019f
+_0808E9A4:
+ movs r0, 0xD0
+ lsls r0, 1
+ cmp r1, r0
+ beq _0808E9B0
+ movs r0, 0
+ b _0808E9B2
+_0808E9B0:
+ movs r0, 0x1B
+_0808E9B2:
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808E8C8
+
+ thumb_func_start sub_808E9B8
+sub_808E9B8:
+ ldrh r1, [r0]
+ ldr r0, _0808E9C0
+ ands r0, r1
+ bx lr
+ .align 2, 0
+_0808E9C0: .4byte 0x000001ff
+ thumb_func_end sub_808E9B8
+
+ thumb_func_start sub_808E9C4
+sub_808E9C4:
+ lsls r1, 16
+ asrs r1, 16
+ ldrh r3, [r0]
+ movs r2, 0xFE
+ lsls r2, 8
+ ands r2, r3
+ orrs r2, r1
+ strh r2, [r0]
+ bx lr
+ thumb_func_end sub_808E9C4
+
+ thumb_func_start sub_808E9D8
+sub_808E9D8:
+ lsls r2, 16
+ asrs r2, 16
+ lsls r1, 9
+ orrs r2, r1
+ strh r2, [r0]
+ bx lr
+ thumb_func_end sub_808E9D8
+
+ thumb_func_start sub_808E9E4
+sub_808E9E4:
+ ldrh r0, [r0]
+ lsrs r0, 9
+ bx lr
+ thumb_func_end sub_808E9E4
+
+ thumb_func_start sub_808E9EC
+sub_808E9EC:
+ push {r4-r6,lr}
+ adds r3, r1, 0
+ ldrb r2, [r0, 0x18]
+ str r2, [r3]
+ ldrb r1, [r0, 0x19]
+ str r1, [r3, 0x4]
+ ldrb r1, [r0, 0x1A]
+ str r1, [r3, 0x8]
+ ldrb r1, [r0, 0x1B]
+ str r1, [r3, 0xC]
+ movs r1, 0
+ strb r1, [r3, 0x10]
+ strb r1, [r3, 0x11]
+ strb r1, [r3, 0x12]
+ strb r1, [r3, 0x13]
+ adds r1, r0, 0
+ adds r1, 0x28
+ ldrb r0, [r1]
+ cmp r0, 0
+ beq _0808EA96
+ adds r4, r0, 0
+ adds r5, r4, 0
+ cmp r4, 0x13
+ bne _0808EA2A
+ ldr r1, _0808EA9C
+ ldrh r0, [r1]
+ strb r0, [r3, 0x10]
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ adds r0, r2, r0
+ str r0, [r3]
+_0808EA2A:
+ cmp r4, 0x21
+ bne _0808EA42
+ ldr r1, _0808EAA0
+ ldrb r0, [r1]
+ ldrb r2, [r3, 0x11]
+ adds r0, r2
+ strb r0, [r3, 0x11]
+ movs r6, 0
+ ldrsh r1, [r1, r6]
+ ldr r0, [r3, 0x4]
+ adds r0, r1
+ str r0, [r3, 0x4]
+_0808EA42:
+ cmp r4, 0x2B
+ bne _0808EA66
+ ldr r2, _0808EAA4
+ ldrb r0, [r2]
+ ldrb r6, [r3, 0x10]
+ adds r1, r0, r6
+ strb r1, [r3, 0x10]
+ ldrb r1, [r3, 0x11]
+ adds r0, r1
+ strb r0, [r3, 0x11]
+ movs r6, 0
+ ldrsh r1, [r2, r6]
+ ldr r0, [r3]
+ adds r0, r1
+ str r0, [r3]
+ ldr r0, [r3, 0x4]
+ adds r0, r1
+ str r0, [r3, 0x4]
+_0808EA66:
+ cmp r4, 0x1E
+ bne _0808EA7E
+ ldr r1, _0808EAA8
+ ldrb r0, [r1]
+ ldrb r2, [r3, 0x12]
+ adds r0, r2
+ strb r0, [r3, 0x12]
+ movs r6, 0
+ ldrsh r1, [r1, r6]
+ ldr r0, [r3, 0x8]
+ adds r0, r1
+ str r0, [r3, 0x8]
+_0808EA7E:
+ cmp r5, 0x22
+ bne _0808EA96
+ ldr r1, _0808EAAC
+ ldrb r0, [r1]
+ ldrb r2, [r3, 0x13]
+ adds r0, r2
+ strb r0, [r3, 0x13]
+ movs r6, 0
+ ldrsh r1, [r1, r6]
+ ldr r0, [r3, 0xC]
+ adds r0, r1
+ str r0, [r3, 0xC]
+_0808EA96:
+ pop {r4-r6}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808EA9C: .4byte gUnknown_810AC60
+_0808EAA0: .4byte gUnknown_810AC62
+_0808EAA4: .4byte gUnknown_810AC68
+_0808EAA8: .4byte gUnknown_810AC64
+_0808EAAC: .4byte gUnknown_810AC66
+ thumb_func_end sub_808E9EC
+
+ .align 2, 0 @ Don't pad with nop.