summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/code_80521D0.s1811
-rw-r--r--asm/pokemon.s1775
-rw-r--r--include/pokemon.h44
-rwxr-xr-xld_script.txt2
-rw-r--r--src/pokemon.c23
5 files changed, 1800 insertions, 1855 deletions
diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s
index 353a421..ac93e6b 100644
--- a/asm/code_80521D0.s
+++ b/asm/code_80521D0.s
@@ -116461,1815 +116461,4 @@ sub_808CDB0:
_0808CDBC: .4byte gUnknown_8107544
thumb_func_end sub_808CDB0
- thumb_func_start LoadMonsterParameters
-LoadMonsterParameters:
- push {lr}
- ldr r1, _0808CDE4
- ldr r0, _0808CDE8
- str r0, [r1]
- ldr r0, _0808CDEC
- ldr r1, _0808CDF0
- bl OpenFileAndGetFileDataPtr
- ldr r1, _0808CDF4
- str r0, [r1]
- ldr r1, _0808CDF8
- ldr r0, [r0, 0x4]
- str r0, [r1]
- ldr r1, _0808CDFC
- movs r0, 0
- strh r0, [r1]
- pop {r0}
- bx r0
- .align 2, 0
-_0808CDE4: .4byte gUnknown_203B45C
-_0808CDE8: .4byte gUnknown_202F400
-_0808CDEC: .4byte gUnknown_81075F4
-_0808CDF0: .4byte gUnknown_8300500
-_0808CDF4: .4byte gMonsterParametersFile
-_0808CDF8: .4byte gMonsterParameters
-_0808CDFC: .4byte gUnknown_20384E8
- thumb_func_end LoadMonsterParameters
-
- thumb_func_start sub_808CE00
-sub_808CE00:
- ldr r0, _0808CE04
- bx lr
- .align 2, 0
-_0808CE04: .4byte gUnknown_202F400
- thumb_func_end sub_808CE00
-
- thumb_func_start sub_808CE08
-sub_808CE08:
- push {r4-r7,lr}
- ldr r4, _0808CE60
- movs r3, 0
- movs r1, 0
- ldr r2, _0808CE64
-_0808CE12:
- ldr r0, [r4]
- adds r0, r1
- strh r3, [r0]
- adds r1, 0x58
- subs r2, 0x1
- cmp r2, 0
- bne _0808CE12
- ldr r5, _0808CE60
- ldr r4, _0808CE68
- movs r3, 0
- movs r1, 0
- movs r2, 0x3
-_0808CE2A:
- ldr r0, [r5]
- adds r0, r1
- adds r0, r4
- strh r3, [r0]
- adds r1, 0x64
- subs r2, 0x1
- cmp r2, 0
- bge _0808CE2A
- ldr r7, _0808CE60
- ldr r6, _0808CE6C
- movs r4, 0
- movs r3, 0
- ldr r5, _0808CE70
- movs r2, 0x3
-_0808CE46:
- ldr r0, [r7]
- adds r0, r3
- adds r1, r0, r6
- strh r4, [r1]
- adds r0, r5
- strh r4, [r0]
- adds r3, 0x58
- subs r2, 0x1
- cmp r2, 0
- bge _0808CE46
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CE60: .4byte gUnknown_203B45C
-_0808CE64: .4byte 0x0000019d
-_0808CE68: .4byte 0x00008df8
-_0808CE6C: .4byte 0x00008f90
-_0808CE70: .4byte 0x00008f88
- thumb_func_end sub_808CE08
-
- thumb_func_start sub_808CE74
-sub_808CE74:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x6C
- mov r8, r2
- lsls r0, 16
- asrs r7, r0, 16
- lsls r1, 24
- mov r2, sp
- movs r0, 0x3
- strh r0, [r2]
- cmp r1, 0
- beq _0808CE9C
- mov r1, sp
- movs r0, 0x1
- strb r0, [r1, 0x2]
- movs r0, 0x40
- b _0808CEA4
-_0808CE9C:
- mov r1, sp
- movs r0, 0
- strb r0, [r1, 0x2]
- movs r0, 0x41
-_0808CEA4:
- strb r0, [r1, 0x4]
- mov r0, sp
- movs r6, 0
- movs r5, 0x1
- strb r5, [r0, 0x3]
- adds r0, r7, 0
- bl sub_808DBC0
- mov r1, sp
- movs r4, 0
- strh r0, [r1, 0x16]
- adds r0, r7, 0
- movs r1, 0
- bl sub_808DC28
- mov r1, sp
- strb r0, [r1, 0x18]
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_808DC28
- mov r1, sp
- strb r0, [r1, 0x19]
- adds r0, r7, 0
- movs r1, 0
- bl sub_808DC48
- mov r1, sp
- strb r0, [r1, 0x1A]
- adds r0, r7, 0
- movs r1, 0x1
- bl sub_808DC48
- mov r1, sp
- strb r0, [r1, 0x1B]
- mov r0, sp
- strh r5, [r0, 0x14]
- strb r4, [r0, 0xC]
- strb r4, [r0, 0x10]
- add r0, sp, 0x20
- movs r1, 0
- bl sub_808EC94
- mov r0, sp
- strh r7, [r0, 0x8]
- add r0, sp, 0x28
- strb r4, [r0]
- adds r0, 0x1
- strb r4, [r0]
- str r6, [sp, 0x1C]
- add r0, sp, 0x24
- strb r4, [r0]
- mov r0, sp
- strb r4, [r0, 0x5]
- add r0, sp, 0x2C
- adds r1, r7, 0
- bl sub_808E490
- mov r0, r8
- cmp r0, 0
- bne _0808CF5C
- add r4, sp, 0x58
- adds r0, r4, 0
- adds r1, r7, 0
- bl sub_808D8BC
- add r0, sp, 0x4C
- adds r1, r4, 0
- movs r2, 0xA
- bl sub_8092310
- lsls r4, r7, 3
- b _0808CF72
-_0808CF36:
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6
- mov r1, sp
- movs r2, 0x58
- bl memcpy
- ldr r0, _0808CF58
- ldr r0, [r0]
- adds r0, r4
- mov r5, r9
- strb r5, [r0]
- adds r0, r7, 0
- bl sub_80980B4
- b _0808CFB8
- .align 2, 0
-_0808CF58: .4byte gUnknown_203B468
-_0808CF5C:
- movs r2, 0
- lsls r4, r7, 3
- add r3, sp, 0x4C
-_0808CF62:
- adds r0, r3, r2
- mov r5, r8
- adds r1, r5, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _0808CF62
-_0808CF72:
- ldr r0, _0808CFC8
- ldr r1, [r0]
- adds r0, r4, r7
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x16]
- mov r10, r0
- movs r5, 0
- ldr r0, _0808CFCC
- mov r8, r0
- movs r1, 0x1
- mov r9, r1
-_0808CF8A:
- movs r0, 0x58
- adds r6, r5, 0
- muls r6, r0
- mov r1, r8
- ldr r0, [r1]
- adds r0, r6, r0
- ldrb r1, [r0]
- mov r0, r9
- ands r0, r1
- cmp r0, 0
- bne _0808CFAE
- adds r0, r5, 0
- bl sub_80923D4
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r10
- beq _0808CF36
-_0808CFAE:
- adds r5, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r5, r0
- ble _0808CF8A
-_0808CFB8:
- add sp, 0x6C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808CFC8: .4byte gMonsterParameters
-_0808CFCC: .4byte gUnknown_203B45C
- thumb_func_end sub_808CE74
-
- thumb_func_start sub_808CFD0
-sub_808CFD0:
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- mov r10, r2
- adds r4, r3, 0
- lsls r1, 16
- asrs r1, 16
- mov r9, r1
- lsls r4, 24
- lsrs r4, 24
- movs r5, 0
- movs r0, 0
- mov r8, r0
- movs r0, 0x1
- movs r6, 0x1
- strh r6, [r7]
- strb r5, [r7, 0x2]
- strb r0, [r7, 0x3]
- mov r0, r9
- bl sub_808DBC0
- strh r0, [r7, 0x16]
- mov r0, r9
- movs r1, 0
- bl sub_808DC28
- strb r0, [r7, 0x18]
- mov r0, r9
- movs r1, 0x1
- bl sub_808DC28
- strb r0, [r7, 0x19]
- mov r0, r9
- movs r1, 0
- bl sub_808DC48
- strb r0, [r7, 0x1A]
- mov r0, r9
- movs r1, 0x1
- bl sub_808DC48
- strb r0, [r7, 0x1B]
- mov r1, r9
- strh r1, [r7, 0x8]
- adds r0, r7, 0
- adds r0, 0x28
- adds r1, r4, 0
- bl sub_8090B08
- mov r4, r8
- str r4, [r7, 0x1C]
- adds r0, r7, 0
- adds r0, 0x24
- strb r5, [r0]
- strh r6, [r7, 0x14]
- ldr r1, [sp, 0x34]
- ldr r0, [r1]
- str r0, [r7, 0x4]
- strb r5, [r7, 0xC]
- strb r5, [r7, 0x10]
- adds r0, r7, 0
- adds r0, 0x20
- movs r1, 0
- bl sub_808EC94
- ldr r4, [sp, 0x38]
- cmp r4, 0
- beq _0808D08C
- movs r0, 0x4C
- adds r0, r7
- mov r8, r0
- adds r5, r4, 0
- adds r4, r7, 0
- adds r4, 0x2C
- movs r6, 0x3
-_0808D06E:
- ldrh r0, [r5]
- cmp r0, 0
- beq _0808D07E
- adds r1, r0, 0
- adds r0, r4, 0
- bl sub_8092AD4
- b _0808D080
-_0808D07E:
- strb r0, [r4]
-_0808D080:
- adds r5, 0x2
- adds r4, 0x8
- subs r6, 0x1
- cmp r6, 0
- bge _0808D06E
- b _0808D09A
-_0808D08C:
- adds r0, r7, 0
- adds r0, 0x2C
- mov r1, r9
- bl sub_808E490
- adds r7, 0x4C
- mov r8, r7
-_0808D09A:
- mov r1, r10
- cmp r1, 0
- bne _0808D0B4
- mov r0, sp
- mov r1, r9
- bl sub_808D8BC
- mov r0, r8
- mov r1, sp
- movs r2, 0xA
- bl sub_8092310
- b _0808D0C8
-_0808D0B4:
- movs r2, 0
- mov r3, r8
-_0808D0B8:
- adds r0, r3, r2
- mov r4, r10
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x9
- ble _0808D0B8
-_0808D0C8:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808CFD0
-
- thumb_func_start sub_808D0D8
-sub_808D0D8:
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r6, 0
- movs r4, 0x1
- strb r4, [r7, 0x3]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- bl sub_808DBC0
- movs r5, 0
- strh r0, [r7, 0x16]
- movs r2, 0x8
- ldrsh r0, [r7, r2]
- movs r1, 0
- bl sub_808DC28
- strb r0, [r7, 0x18]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r1, 0x1
- bl sub_808DC28
- strb r0, [r7, 0x19]
- movs r2, 0x8
- ldrsh r0, [r7, r2]
- movs r1, 0
- bl sub_808DC48
- strb r0, [r7, 0x1A]
- movs r1, 0x8
- ldrsh r0, [r7, r1]
- movs r1, 0x1
- bl sub_808DC48
- strb r0, [r7, 0x1B]
- str r6, [r7, 0x1C]
- adds r0, r7, 0
- adds r0, 0x24
- strb r5, [r0]
- strh r4, [r7, 0x14]
- subs r0, 0x4
- movs r1, 0
- bl sub_808EC94
- adds r0, r7, 0
- adds r0, 0x2C
- movs r2, 0x8
- ldrsh r1, [r7, r2]
- bl sub_808E490
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808D0D8
-
- thumb_func_start sub_808D144
-sub_808D144:
- push {r4-r7,lr}
- adds r5, r0, 0
- adds r7, r1, 0
- movs r4, 0
- movs r0, 0x1
- strh r0, [r5]
- strb r4, [r5, 0x2]
- ldrh r0, [r7, 0x16]
- strb r0, [r5, 0x3]
- ldrh r0, [r7, 0x14]
- strh r0, [r5, 0x16]
- ldrh r0, [r7, 0x1A]
- strb r0, [r5, 0x18]
- ldrh r0, [r7, 0x1C]
- strb r0, [r5, 0x19]
- ldrh r0, [r7, 0x1E]
- strb r0, [r5, 0x1A]
- ldrh r0, [r7, 0x20]
- strb r0, [r5, 0x1B]
- ldrh r0, [r7, 0x4]
- strh r0, [r5, 0x8]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r7, 0x6]
- bl sub_8090B08
- ldr r0, [r7, 0x24]
- str r0, [r5, 0x1C]
- adds r0, r5, 0
- adds r0, 0x24
- strb r4, [r0]
- ldrh r0, [r7, 0x18]
- strh r0, [r5, 0x14]
- ldr r0, [r7, 0x8]
- str r0, [r5, 0x4]
- strb r4, [r5, 0xC]
- strb r4, [r5, 0x10]
- adds r0, r5, 0
- adds r0, 0x20
- movs r1, 0
- bl sub_808EC94
- movs r6, 0
- adds r4, r5, 0
- adds r4, 0x2C
-_0808D19E:
- lsls r1, r6, 1
- adds r0, r7, 0
- adds r0, 0xC
- adds r0, r1
- ldrh r1, [r0]
- cmp r1, 0
- beq _0808D1B4
- adds r0, r4, 0
- bl sub_8092AD4
- b _0808D1B6
-_0808D1B4:
- strb r1, [r4]
-_0808D1B6:
- adds r4, 0x8
- adds r6, 0x1
- cmp r6, 0x3
- ble _0808D19E
- movs r6, 0
- adds r3, r5, 0
- adds r3, 0x4C
- ldr r2, [r7]
-_0808D1C6:
- adds r0, r3, r6
- adds r1, r2, r6
- ldrb r1, [r1]
- strb r1, [r0]
- adds r6, 0x1
- cmp r6, 0x9
- ble _0808D1C6
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_808D144
-
- thumb_func_start sub_808D1DC
-sub_808D1DC:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- movs r2, 0x8
- ldrsh r1, [r0, r2]
- ldr r0, _0808D204
- ldr r2, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 3
- adds r0, r2
- ldrb r6, [r0, 0x16]
- ldr r0, _0808D208
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808D238
- b _0808D268
- .align 2, 0
-_0808D204: .4byte gMonsterParameters
-_0808D208: .4byte gUnknown_203B468
-_0808D20C:
- ldr r0, [r7]
- adds r0, r5
- mov r1, r8
- movs r2, 0x58
- bl memcpy
- ldr r1, [r7]
- adds r1, r5
- ldrh r2, [r1]
- ldr r0, _0808D234
- ands r0, r2
- strh r0, [r1]
- mov r1, r8
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- bl sub_80980B4
- ldr r0, [r7]
- adds r0, r5
- b _0808D26A
- .align 2, 0
-_0808D234: .4byte 0x0000bfff
-_0808D238:
- movs r4, 0
- ldr r7, _0808D274
-_0808D23C:
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- ldr r0, [r7]
- adds r0, r5, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808D25E
- adds r0, r4, 0
- bl sub_80923D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _0808D20C
-_0808D25E:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D23C
-_0808D268:
- movs r0, 0
-_0808D26A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D274: .4byte gUnknown_203B45C
- thumb_func_end sub_808D1DC
-
- thumb_func_start sub_808D278
-sub_808D278:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808D29C
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r6, [r1, 0x16]
- ldr r0, _0808D2A0
- ldr r0, [r0]
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- bne _0808D2AA
- b _0808D2DA
- .align 2, 0
-_0808D29C: .4byte gMonsterParameters
-_0808D2A0: .4byte gUnknown_203B468
-_0808D2A4:
- ldr r0, [r7]
- adds r0, r5
- b _0808D2DC
-_0808D2AA:
- movs r4, 0
- ldr r7, _0808D2E4
-_0808D2AE:
- movs r0, 0x58
- adds r5, r4, 0
- muls r5, r0
- ldr r0, [r7]
- adds r0, r5, r0
- ldrb r1, [r0]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _0808D2D0
- adds r0, r4, 0
- bl sub_80923D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, r6
- beq _0808D2A4
-_0808D2D0:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D2AE
-_0808D2DA:
- movs r0, 0
-_0808D2DC:
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D2E4: .4byte gUnknown_203B45C
- thumb_func_end sub_808D278
-
- thumb_func_start sub_808D2E8
-sub_808D2E8:
- push {r4-r6,lr}
- sub sp, 0x60
- adds r4, r0, 0
- adds r6, r1, 0
- adds r5, r2, 0
- ldr r0, [sp, 0x70]
- lsls r4, 16
- asrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- str r3, [sp]
- str r0, [sp, 0x4]
- add r0, sp, 0x8
- adds r1, r4, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl sub_808CFD0
- add r0, sp, 0x8
- bl sub_808D1DC
- add sp, 0x60
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808D2E8
-
- thumb_func_start sub_808D31C
-sub_808D31C:
- push {lr}
- adds r1, r0, 0
- ldrb r0, [r1, 0x2]
- cmp r0, 0
- bne _0808D338
- movs r2, 0
- ldrb r0, [r1, 0x4]
- cmp r0, 0x41
- bne _0808D330
- movs r2, 0x1
-_0808D330:
- adds r0, r2, 0
- cmp r0, 0
- bne _0808D338
- strh r0, [r1]
-_0808D338:
- pop {r0}
- bx r0
- thumb_func_end sub_808D31C
-
- thumb_func_start sub_808D33C
-sub_808D33C:
- push {r4,lr}
- movs r3, 0
- ldr r0, _0808D360
- ldr r4, [r0]
-_0808D344:
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D364
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _0808D364
- adds r0, r2, 0
- b _0808D370
- .align 2, 0
-_0808D360: .4byte gUnknown_203B45C
-_0808D364:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _0808D344
- movs r0, 0
-_0808D370:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808D33C
-
- thumb_func_start sub_808D378
-sub_808D378:
- push {r4,lr}
- movs r3, 0
- ldr r0, _0808D3A4
- ldr r4, [r0]
-_0808D380:
- movs r0, 0x58
- muls r0, r3
- adds r2, r0, r4
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D3A8
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D39A
- movs r1, 0x1
-_0808D39A:
- cmp r1, 0
- beq _0808D3A8
- adds r0, r2, 0
- b _0808D3B4
- .align 2, 0
-_0808D3A4: .4byte gUnknown_203B45C
-_0808D3A8:
- adds r3, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r3, r0
- ble _0808D380
- movs r0, 0
-_0808D3B4:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808D378
-
- thumb_func_start sub_808D3BC
-sub_808D3BC:
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _0808D3E0
- ldr r2, [r0]
- adds r3, r2, 0
- movs r6, 0x1
- movs r5, 0xCE
- lsls r5, 1
-_0808D3CC:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D3E4
- ldrb r0, [r2, 0x4]
- cmp r0, 0x40
- bne _0808D3E4
- adds r0, r3, 0
- b _0808D3F0
- .align 2, 0
-_0808D3E0: .4byte gUnknown_203B45C
-_0808D3E4:
- adds r2, 0x58
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- ble _0808D3CC
- movs r0, 0
-_0808D3F0:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808D3BC
-
- thumb_func_start sub_808D3F8
-sub_808D3F8:
- push {r4-r6,lr}
- movs r4, 0
- ldr r0, _0808D41C
- ldr r2, [r0]
- adds r3, r2, 0
- movs r6, 0x1
- movs r5, 0xCE
- lsls r5, 1
-_0808D408:
- ldrb r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D420
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D420
- adds r0, r3, 0
- b _0808D42C
- .align 2, 0
-_0808D41C: .4byte gUnknown_203B45C
-_0808D420:
- adds r2, 0x58
- adds r3, 0x58
- adds r4, 0x1
- cmp r4, r5
- ble _0808D408
- movs r0, 0
-_0808D42C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_808D3F8
-
- thumb_func_start sub_808D434
-sub_808D434:
- push {r4-r7,lr}
- adds r6, r1, 0
- lsls r0, 16
- asrs r5, r0, 16
- ldr r0, _0808D468
- ldr r2, [r0]
- movs r4, 0
- movs r3, 0
- movs r0, 0x1
- mov r12, r0
- movs r7, 0xCE
- lsls r7, 1
-_0808D44C:
- ldrb r1, [r2]
- mov r0, r12
- ands r0, r1
- cmp r0, 0
- beq _0808D46E
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- cmp r0, r5
- bne _0808D46E
- cmp r4, r6
- bne _0808D46C
- adds r0, r2, 0
- b _0808D478
- .align 2, 0
-_0808D468: .4byte gUnknown_203B45C
-_0808D46C:
- adds r4, 0x1
-_0808D46E:
- adds r3, 0x1
- adds r2, 0x58
- cmp r3, r7
- ble _0808D44C
- movs r0, 0
-_0808D478:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808D434
-
- thumb_func_start sub_808D480
-sub_808D480:
- push {r4,r5,lr}
- ldr r0, _0808D4A8
- ldr r2, [r0]
- movs r4, 0
- movs r5, 0x1
- ldr r3, _0808D4AC
-_0808D48C:
- ldrb r1, [r2]
- adds r0, r5, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D498
- adds r4, 0x1
-_0808D498:
- subs r3, 0x1
- adds r2, 0x58
- cmp r3, 0
- bne _0808D48C
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D4A8: .4byte gUnknown_203B45C
-_0808D4AC: .4byte 0x0000019d
- thumb_func_end sub_808D480
-
- thumb_func_start sub_808D4B0
-sub_808D4B0:
- push {r4-r6,lr}
- ldr r0, _0808D4F8
- ldr r2, [r0]
- movs r5, 0
- movs r4, 0
- ldr r6, _0808D4FC
-_0808D4BC:
- ldrh r3, [r2]
- lsrs r0, r3, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D4E4
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D4E4
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D4D8
- movs r1, 0x1
-_0808D4D8:
- cmp r1, 0
- bne _0808D4E4
- movs r5, 0x1
- adds r0, r6, 0
- ands r0, r3
- strh r0, [r2]
-_0808D4E4:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D4BC
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D4F8: .4byte gUnknown_203B45C
-_0808D4FC: .4byte 0x0000fffd
- thumb_func_end sub_808D4B0
-
- thumb_func_start sub_808D500
-sub_808D500:
- push {r4-r6,lr}
- ldr r0, _0808D53C
- ldr r2, [r0]
- movs r5, 0
- movs r4, 0
- ldr r6, _0808D540
-_0808D50C:
- ldrh r3, [r2]
- lsrs r0, r3, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D526
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D526
- movs r5, 0x1
- adds r0, r6, 0
- ands r0, r3
- strh r0, [r2]
-_0808D526:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D50C
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D53C: .4byte gUnknown_203B45C
-_0808D540: .4byte 0x0000fffd
- thumb_func_end sub_808D500
-
- thumb_func_start sub_808D544
-sub_808D544:
- push {r4-r7,lr}
- adds r4, r0, 0
- ldr r0, _0808D57C
- ldr r3, [r0]
- movs r5, 0
- movs r2, 0
- movs r7, 0x1
- movs r6, 0xCE
- lsls r6, 1
- adds r1, r4, 0
-_0808D558:
- ldrh r0, [r3]
- lsrs r0, 1
- ands r0, r7
- cmp r0, 0
- beq _0808D56C
- cmp r4, 0
- beq _0808D568
- str r2, [r1]
-_0808D568:
- adds r1, 0x4
- adds r5, 0x1
-_0808D56C:
- adds r2, 0x1
- adds r3, 0x58
- cmp r2, r6
- ble _0808D558
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D57C: .4byte gUnknown_203B45C
- thumb_func_end sub_808D544
-
- thumb_func_start sub_808D580
-sub_808D580:
- push {r4-r7,lr}
- adds r6, r0, 0
- ldr r0, _0808D5AC
- ldr r2, [r0]
- movs r5, 0
- movs r4, 0
- mov r12, r0
- adds r3, r6, 0
-_0808D590:
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- beq _0808D5B0
- ldrb r1, [r2]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D5B0
- cmp r6, 0
- beq _0808D5B0
- str r4, [r3]
- adds r5, 0x1
- b _0808D5BC
- .align 2, 0
-_0808D5AC: .4byte gUnknown_203B45C
-_0808D5B0:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D590
-_0808D5BC:
- mov r0, r12
- ldr r2, [r0]
- movs r4, 0
- lsls r0, r5, 2
- adds r7, r0, r6
-_0808D5C6:
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D5D0
- movs r1, 0x1
-_0808D5D0:
- cmp r1, 0
- beq _0808D5F8
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D5F8
- ldrh r1, [r2]
- lsrs r0, r1, 1
- movs r3, 0x1
- ands r0, r3
- cmp r0, 0
- beq _0808D5F8
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D5F8
- cmp r6, 0
- beq _0808D5F8
- str r4, [r7]
- adds r5, 0x1
- b _0808D604
-_0808D5F8:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D5C6
-_0808D604:
- mov r0, r12
- ldr r2, [r0]
- movs r4, 0
- movs r3, 0x1
- lsls r0, r5, 2
- adds r7, r0, r6
-_0808D610:
- ldrh r1, [r2]
- lsrs r0, r1, 1
- ands r0, r3
- cmp r0, 0
- beq _0808D63E
- adds r0, r3, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D63E
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D63E
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D632
- movs r1, 0x1
-_0808D632:
- cmp r1, 0
- bne _0808D63E
- cmp r6, 0
- beq _0808D63E
- stm r7!, {r4}
- adds r5, 0x1
-_0808D63E:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D610
- adds r0, r5, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808D580
-
- thumb_func_start sub_808D654
-sub_808D654:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0808D6A0
- ldr r2, [r0]
- movs r6, 0
- movs r4, 0
- adds r3, r5, 0
-_0808D662:
- ldrh r0, [r2]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D68C
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D68C
- movs r1, 0
- ldrb r0, [r2, 0x4]
- cmp r0, 0x41
- bne _0808D67E
- movs r1, 0x1
-_0808D67E:
- cmp r1, 0
- bne _0808D68C
- cmp r5, 0
- beq _0808D688
- str r4, [r3]
-_0808D688:
- adds r3, 0x4
- adds r6, 0x1
-_0808D68C:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D662
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D6A0: .4byte gUnknown_203B45C
- thumb_func_end sub_808D654
-
- thumb_func_start sub_808D6A4
-sub_808D6A4:
- push {r4-r6,lr}
- adds r5, r0, 0
- ldr r0, _0808D6E4
- ldr r2, [r0]
- movs r6, 0
- movs r4, 0
- adds r3, r5, 0
-_0808D6B2:
- ldrh r0, [r2]
- lsrs r0, 1
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0808D6CE
- ldrb r0, [r2, 0x2]
- cmp r0, 0
- bne _0808D6CE
- cmp r5, 0
- beq _0808D6CA
- str r4, [r3]
-_0808D6CA:
- adds r3, 0x4
- adds r6, 0x1
-_0808D6CE:
- adds r4, 0x1
- adds r2, 0x58
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D6B2
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808D6E4: .4byte gUnknown_203B45C
- thumb_func_end sub_808D6A4
-
- thumb_func_start sub_808D6E8
-sub_808D6E8:
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r7, 0
- movs r5, 0
- movs r4, 0
- ldr r0, _0808D740
- mov r8, r0
- movs r6, 0x1
-_0808D6FA:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- mov r2, r8
- ldr r0, [r2]
- adds r2, r0, r1
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _0808D728
- lsrs r0, r1, 1
- ands r0, r6
- cmp r0, 0
- beq _0808D728
- movs r1, 0x8
- ldrsh r0, [r2, r1]
- bl sub_808DACC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0
- adds r7, 0x1
-_0808D728:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D6FA
- cmp r5, 0x5
- bgt _0808D744
- cmp r7, 0x3
- bgt _0808D744
- movs r0, 0x1
- b _0808D746
- .align 2, 0
-_0808D740: .4byte gUnknown_203B45C
-_0808D744:
- movs r0, 0
-_0808D746:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808D6E8
-
- thumb_func_start sub_808D750
-sub_808D750:
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 16
- asrs r0, 16
- mov r8, r0
- movs r6, 0
- movs r5, 0
- movs r4, 0
- ldr r0, _0808D7C8
- mov r9, r0
- movs r7, 0x1
-_0808D76A:
- movs r0, 0x58
- adds r1, r4, 0
- muls r1, r0
- mov r2, r9
- ldr r0, [r2]
- adds r1, r0, r1
- ldrh r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- cmp r0, 0
- beq _0808D798
- lsrs r0, r2, 1
- ands r0, r7
- cmp r0, 0
- beq _0808D798
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- bl sub_808DACC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0
- adds r6, 0x1
-_0808D798:
- adds r4, 0x1
- movs r0, 0xCE
- lsls r0, 1
- cmp r4, r0
- ble _0808D76A
- cmp r6, 0x3
- bgt _0808D7CC
- ldr r2, _0808D7C8
- movs r0, 0x58
- mov r1, r8
- muls r1, r0
- ldr r0, [r2]
- adds r1, r0, r1
- movs r2, 0x8
- ldrsh r0, [r1, r2]
- bl sub_808DACC
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0
- cmp r5, 0x6
- bgt _0808D7CC
- movs r0, 0x1
- b _0808D7CE
- .align 2, 0
-_0808D7C8: .4byte gUnknown_203B45C
-_0808D7CC:
- movs r0, 0
-_0808D7CE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808D750
-
- thumb_func_start sub_808D7DC
-sub_808D7DC:
- lsls r0, 16
- asrs r0, 16
- ldr r3, _0808D7FC
- movs r2, 0x58
- muls r2, r0
- ldr r0, [r3]
- adds r0, r2
- adds r2, r0, 0
- adds r2, 0x28
- ldrb r2, [r2]
- strb r2, [r1]
- adds r0, 0x29
- ldrb r0, [r0]
- strb r0, [r1, 0x1]
- bx lr
- .align 2, 0
-_0808D7FC: .4byte gUnknown_203B45C
- thumb_func_end sub_808D7DC
-
- thumb_func_start sub_808D800
-sub_808D800:
- lsls r0, 16
- asrs r0, 16
- ldr r3, _0808D820
- movs r2, 0x58
- muls r2, r0
- ldr r0, [r3]
- adds r0, r2
- ldrb r3, [r1]
- adds r2, r0, 0
- adds r2, 0x28
- strb r3, [r2]
- ldrb r1, [r1, 0x1]
- adds r0, 0x29
- strb r1, [r0]
- bx lr
- .align 2, 0
-_0808D820: .4byte gUnknown_203B45C
- thumb_func_end sub_808D800
-
- thumb_func_start sub_808D824
-sub_808D824:
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- bl sub_808D994
- adds r1, r0, 0
- mov r0, sp
- bl sub_80922F4
- movs r2, 0
- adds r4, 0x4C
-_0808D83E:
- adds r0, r4, r2
- mov r3, sp
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _0808D850
- movs r0, 0
- b _0808D85C
-_0808D850:
- cmp r0, 0
- beq _0808D85A
- adds r2, 0x1
- cmp r2, 0x9
- ble _0808D83E
-_0808D85A:
- movs r0, 0x1
-_0808D85C:
- add sp, 0x14
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_808D824
-
- thumb_func_start sub_808D864
-sub_808D864:
- push {r4-r7,lr}
- lsls r0, 16
- asrs r0, 16
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0808D8A0
- movs r3, 0x58
- muls r0, r3
- ldr r2, [r2]
- adds r0, r2, r0
- adds r6, r0, 0
- adds r6, 0x4C
- adds r0, r1, 0
- muls r0, r3
- adds r2, r0
- adds r5, r2, 0
- adds r5, 0x4C
- movs r7, 0
-_0808D888:
- ldrb r0, [r6]
- bl sub_8092280
- adds r4, r0, 0
- ldrb r0, [r5]
- bl sub_8092280
- cmp r4, r0
- ble _0808D8A4
- movs r0, 0x1
- b _0808D8B4
- .align 2, 0
-_0808D8A0: .4byte gUnknown_203B45C
-_0808D8A4:
- cmp r4, r0
- blt _0808D8B2
- adds r6, 0x1
- adds r5, 0x1
- adds r7, 0x1
- cmp r7, 0x9
- ble _0808D888
-_0808D8B2:
- movs r0, 0
-_0808D8B4:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_808D864
-
- thumb_func_start sub_808D8BC
-sub_808D8BC:
- push {lr}
- lsls r1, 16
- asrs r1, 16
- ldr r2, _0808D8DC
- ldr r3, [r2]
- lsls r2, r1, 3
- adds r2, r1
- lsls r2, 3
- adds r2, r3
- ldr r1, [r2]
- movs r2, 0x14
- bl strncpy
- pop {r0}
- bx r0
- .align 2, 0
-_0808D8DC: .4byte gMonsterParameters
- thumb_func_end sub_808D8BC
-
- thumb_func_start sub_808D8E0
-sub_808D8E0:
- push {r4,lr}
- lsls r3, r1, 16
- asrs r3, 16
- ldr r1, _0808D900
- ldr r2, _0808D904
- ldr r4, [r2]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 3
- adds r2, r4
- ldr r2, [r2]
- bl sub_800D158
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D900: .4byte gUnknown_8107600
-_0808D904: .4byte gMonsterParameters
- thumb_func_end sub_808D8E0
-
- thumb_func_start sub_808D908
-sub_808D908:
- push {r4,lr}
- lsls r3, r1, 16
- asrs r3, 16
- ldr r1, _0808D928
- ldr r2, _0808D92C
- ldr r4, [r2]
- lsls r2, r3, 3
- adds r2, r3
- lsls r2, 3
- adds r2, r4
- ldr r2, [r2]
- bl sub_800D158
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D928: .4byte gUnknown_8107608
-_0808D92C: .4byte gMonsterParameters
- thumb_func_end sub_808D908
-
- thumb_func_start sub_808D930
-sub_808D930:
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r1, 16
- asrs r6, r1, 16
- adds r0, r6, 0
- bl sub_808E770
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xC9
- bne _0808D970
- ldr r5, _0808D968
- movs r0, 0xC9
- bl sub_808D994
- adds r4, r0, 0
- adds r0, r6, 0
- bl sub_808E8C8
- ldr r1, _0808D96C
- adds r0, r1
- ldrb r3, [r0]
- adds r0, r7, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl sub_800D158
- b _0808D986
- .align 2, 0
-_0808D968: .4byte gUnknown_8107630
-_0808D96C: .4byte gUnknown_8107610
-_0808D970:
- ldr r1, _0808D98C
- ldr r0, _0808D990
- ldr r2, [r0]
- lsls r0, r6, 3
- adds r0, r6
- lsls r0, 3
- adds r0, r2
- ldr r2, [r0]
- adds r0, r7, 0
- bl sub_800D158
-_0808D986:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D98C: .4byte gUnknown_8107638
-_0808D990: .4byte gMonsterParameters
- thumb_func_end sub_808D930
-
- thumb_func_start sub_808D994
-sub_808D994:
- lsls r0, 16
- asrs r0, 16
- ldr r1, _0808D9A8
- ldr r2, [r1]
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, [r1]
- bx lr
- .align 2, 0
-_0808D9A8: .4byte gMonsterParameters
- thumb_func_end sub_808D994
-
- thumb_func_start sub_808D9AC
-sub_808D9AC:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r0, 0
- adds r4, r2, 0
- adds r1, 0x4C
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- cmp r4, 0
- bne _0808D9C4
- movs r4, 0x5
-_0808D9C4:
- ldr r1, _0808D9D8
- adds r0, r5, 0
- adds r2, r4, 0
- mov r3, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808D9D8: .4byte gUnknown_810763C
- thumb_func_end sub_808D9AC
-
- thumb_func_start sub_808D9DC
-sub_808D9DC:
- push {r4,r5,lr}
- sub sp, 0x14
- adds r5, r0, 0
- adds r4, r2, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- cmp r4, 0
- bne _0808D9F4
- movs r4, 0x6
-_0808D9F4:
- ldr r1, _0808DA08
- adds r0, r5, 0
- adds r2, r4, 0
- mov r3, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DA08: .4byte gUnknown_810763C
- thumb_func_end sub_808D9DC
-
- thumb_func_start sub_808DA0C
-sub_808DA0C:
- push {r4,lr}
- sub sp, 0x14
- adds r4, r0, 0
- adds r1, 0x58
- mov r0, sp
- movs r2, 0xA
- bl sub_80922B4
- ldr r1, _0808DA30
- adds r0, r4, 0
- mov r2, sp
- bl sub_800D158
- add sp, 0x14
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0808DA30: .4byte gUnknown_8107638
- thumb_func_end sub_808DA0C
-
- thumb_func_start sub_808DA34
-sub_808DA34:
- push {lr}
- adds r1, 0x4C
- movs r2, 0xA
- bl sub_80922B4
- pop {r0}
- bx r0
- thumb_func_end sub_808DA34
-
- thumb_func_start sub_808DA44
-sub_808DA44:
- push {r4-r6,lr}
- sub sp, 0x30
- lsls r0, 16
- asrs r4, r0, 16
- lsls r1, 24
- lsrs r2, r1, 24
- cmp r2, 0xC
- bls _0808DAA0
- mov r1, sp
- ldr r0, _0808DA98
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- ldm r0!, {r3,r5,r6}
- stm r1!, {r3,r5,r6}
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _0808DA92
- mov r1, sp
- add r3, sp, 0x48
-_0808DA76:
- movs r5, 0
- ldrsh r0, [r1, r5]
- cmp r0, r4
- bne _0808DA84
- ldr r0, [r1, 0x4]
- cmp r0, r2
- beq _0808DA9C
-_0808DA84:
- adds r1, 0x8
- cmp r1, r3
- bgt _0808DA92
- movs r6, 0
- ldrsh r0, [r1, r6]
- cmp r0, 0
- bne _0808DA76
-_0808DA92:
- movs r0, 0
- b _0808DAA6
- .align 2, 0
-_0808DA98: .4byte gUnknown_8107654
-_0808DA9C:
- movs r0, 0x1
- b _0808DAA6
-_0808DAA0:
- ldr r0, _0808DAB0
- adds r0, r2, r0
- ldrb r0, [r0]
-_0808DAA6:
- add sp, 0x30
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0808DAB0: .4byte gUnknown_8107645
- thumb_func_end sub_808DA44
-
.align 2,0 @ Don't pad with nop
diff --git a/asm/pokemon.s b/asm/pokemon.s
index 600a73c..edb5334 100644
--- a/asm/pokemon.s
+++ b/asm/pokemon.s
@@ -4,6 +4,1781 @@
.syntax unified
.text
+
+ thumb_func_start sub_808CE08
+sub_808CE08:
+ push {r4-r7,lr}
+ ldr r4, _0808CE60
+ movs r3, 0
+ movs r1, 0
+ ldr r2, _0808CE64
+_0808CE12:
+ ldr r0, [r4]
+ adds r0, r1
+ strh r3, [r0]
+ adds r1, 0x58
+ subs r2, 0x1
+ cmp r2, 0
+ bne _0808CE12
+ ldr r5, _0808CE60
+ ldr r4, _0808CE68
+ movs r3, 0
+ movs r1, 0
+ movs r2, 0x3
+_0808CE2A:
+ ldr r0, [r5]
+ adds r0, r1
+ adds r0, r4
+ strh r3, [r0]
+ adds r1, 0x64
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0808CE2A
+ ldr r7, _0808CE60
+ ldr r6, _0808CE6C
+ movs r4, 0
+ movs r3, 0
+ ldr r5, _0808CE70
+ movs r2, 0x3
+_0808CE46:
+ ldr r0, [r7]
+ adds r0, r3
+ adds r1, r0, r6
+ strh r4, [r1]
+ adds r0, r5
+ strh r4, [r0]
+ adds r3, 0x58
+ subs r2, 0x1
+ cmp r2, 0
+ bge _0808CE46
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808CE60: .4byte gUnknown_203B45C
+_0808CE64: .4byte 0x0000019d
+_0808CE68: .4byte 0x00008df8
+_0808CE6C: .4byte 0x00008f90
+_0808CE70: .4byte 0x00008f88
+ thumb_func_end sub_808CE08
+
+ thumb_func_start sub_808CE74
+sub_808CE74:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x6C
+ mov r8, r2
+ lsls r0, 16
+ asrs r7, r0, 16
+ lsls r1, 24
+ mov r2, sp
+ movs r0, 0x3
+ strh r0, [r2]
+ cmp r1, 0
+ beq _0808CE9C
+ mov r1, sp
+ movs r0, 0x1
+ strb r0, [r1, 0x2]
+ movs r0, 0x40
+ b _0808CEA4
+_0808CE9C:
+ mov r1, sp
+ movs r0, 0
+ strb r0, [r1, 0x2]
+ movs r0, 0x41
+_0808CEA4:
+ strb r0, [r1, 0x4]
+ mov r0, sp
+ movs r6, 0
+ movs r5, 0x1
+ strb r5, [r0, 0x3]
+ adds r0, r7, 0
+ bl sub_808DBC0
+ mov r1, sp
+ movs r4, 0
+ strh r0, [r1, 0x16]
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_808DC28
+ mov r1, sp
+ strb r0, [r1, 0x18]
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_808DC28
+ mov r1, sp
+ strb r0, [r1, 0x19]
+ adds r0, r7, 0
+ movs r1, 0
+ bl sub_808DC48
+ mov r1, sp
+ strb r0, [r1, 0x1A]
+ adds r0, r7, 0
+ movs r1, 0x1
+ bl sub_808DC48
+ mov r1, sp
+ strb r0, [r1, 0x1B]
+ mov r0, sp
+ strh r5, [r0, 0x14]
+ strb r4, [r0, 0xC]
+ strb r4, [r0, 0x10]
+ add r0, sp, 0x20
+ movs r1, 0
+ bl sub_808EC94
+ mov r0, sp
+ strh r7, [r0, 0x8]
+ add r0, sp, 0x28
+ strb r4, [r0]
+ adds r0, 0x1
+ strb r4, [r0]
+ str r6, [sp, 0x1C]
+ add r0, sp, 0x24
+ strb r4, [r0]
+ mov r0, sp
+ strb r4, [r0, 0x5]
+ add r0, sp, 0x2C
+ adds r1, r7, 0
+ bl sub_808E490
+ mov r0, r8
+ cmp r0, 0
+ bne _0808CF5C
+ add r4, sp, 0x58
+ adds r0, r4, 0
+ adds r1, r7, 0
+ bl sub_808D8BC
+ add r0, sp, 0x4C
+ adds r1, r4, 0
+ movs r2, 0xA
+ bl sub_8092310
+ lsls r4, r7, 3
+ b _0808CF72
+_0808CF36:
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6
+ mov r1, sp
+ movs r2, 0x58
+ bl memcpy
+ ldr r0, _0808CF58
+ ldr r0, [r0]
+ adds r0, r4
+ mov r5, r9
+ strb r5, [r0]
+ adds r0, r7, 0
+ bl sub_80980B4
+ b _0808CFB8
+ .align 2, 0
+_0808CF58: .4byte gUnknown_203B468
+_0808CF5C:
+ movs r2, 0
+ lsls r4, r7, 3
+ add r3, sp, 0x4C
+_0808CF62:
+ adds r0, r3, r2
+ mov r5, r8
+ adds r1, r5, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _0808CF62
+_0808CF72:
+ ldr r0, _0808CFC8
+ ldr r1, [r0]
+ adds r0, r4, r7
+ lsls r0, 3
+ adds r0, r1
+ ldrb r0, [r0, 0x16]
+ mov r10, r0
+ movs r5, 0
+ ldr r0, _0808CFCC
+ mov r8, r0
+ movs r1, 0x1
+ mov r9, r1
+_0808CF8A:
+ movs r0, 0x58
+ adds r6, r5, 0
+ muls r6, r0
+ mov r1, r8
+ ldr r0, [r1]
+ adds r0, r6, r0
+ ldrb r1, [r0]
+ mov r0, r9
+ ands r0, r1
+ cmp r0, 0
+ bne _0808CFAE
+ adds r0, r5, 0
+ bl sub_80923D4
+ lsls r0, 24
+ lsrs r4, r0, 24
+ cmp r4, r10
+ beq _0808CF36
+_0808CFAE:
+ adds r5, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r5, r0
+ ble _0808CF8A
+_0808CFB8:
+ add sp, 0x6C
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808CFC8: .4byte gMonsterParameters
+_0808CFCC: .4byte gUnknown_203B45C
+ thumb_func_end sub_808CE74
+
+ thumb_func_start sub_808CFD0
+sub_808CFD0:
+ push {r4-r7,lr}
+ mov r7, r10
+ mov r6, r9
+ mov r5, r8
+ push {r5-r7}
+ sub sp, 0x14
+ adds r7, r0, 0
+ mov r10, r2
+ adds r4, r3, 0
+ lsls r1, 16
+ asrs r1, 16
+ mov r9, r1
+ lsls r4, 24
+ lsrs r4, 24
+ movs r5, 0
+ movs r0, 0
+ mov r8, r0
+ movs r0, 0x1
+ movs r6, 0x1
+ strh r6, [r7]
+ strb r5, [r7, 0x2]
+ strb r0, [r7, 0x3]
+ mov r0, r9
+ bl sub_808DBC0
+ strh r0, [r7, 0x16]
+ mov r0, r9
+ movs r1, 0
+ bl sub_808DC28
+ strb r0, [r7, 0x18]
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_808DC28
+ strb r0, [r7, 0x19]
+ mov r0, r9
+ movs r1, 0
+ bl sub_808DC48
+ strb r0, [r7, 0x1A]
+ mov r0, r9
+ movs r1, 0x1
+ bl sub_808DC48
+ strb r0, [r7, 0x1B]
+ mov r1, r9
+ strh r1, [r7, 0x8]
+ adds r0, r7, 0
+ adds r0, 0x28
+ adds r1, r4, 0
+ bl sub_8090B08
+ mov r4, r8
+ str r4, [r7, 0x1C]
+ adds r0, r7, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ strh r6, [r7, 0x14]
+ ldr r1, [sp, 0x34]
+ ldr r0, [r1]
+ str r0, [r7, 0x4]
+ strb r5, [r7, 0xC]
+ strb r5, [r7, 0x10]
+ adds r0, r7, 0
+ adds r0, 0x20
+ movs r1, 0
+ bl sub_808EC94
+ ldr r4, [sp, 0x38]
+ cmp r4, 0
+ beq _0808D08C
+ movs r0, 0x4C
+ adds r0, r7
+ mov r8, r0
+ adds r5, r4, 0
+ adds r4, r7, 0
+ adds r4, 0x2C
+ movs r6, 0x3
+_0808D06E:
+ ldrh r0, [r5]
+ cmp r0, 0
+ beq _0808D07E
+ adds r1, r0, 0
+ adds r0, r4, 0
+ bl sub_8092AD4
+ b _0808D080
+_0808D07E:
+ strb r0, [r4]
+_0808D080:
+ adds r5, 0x2
+ adds r4, 0x8
+ subs r6, 0x1
+ cmp r6, 0
+ bge _0808D06E
+ b _0808D09A
+_0808D08C:
+ adds r0, r7, 0
+ adds r0, 0x2C
+ mov r1, r9
+ bl sub_808E490
+ adds r7, 0x4C
+ mov r8, r7
+_0808D09A:
+ mov r1, r10
+ cmp r1, 0
+ bne _0808D0B4
+ mov r0, sp
+ mov r1, r9
+ bl sub_808D8BC
+ mov r0, r8
+ mov r1, sp
+ movs r2, 0xA
+ bl sub_8092310
+ b _0808D0C8
+_0808D0B4:
+ movs r2, 0
+ mov r3, r8
+_0808D0B8:
+ adds r0, r3, r2
+ mov r4, r10
+ adds r1, r4, r2
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _0808D0B8
+_0808D0C8:
+ add sp, 0x14
+ pop {r3-r5}
+ mov r8, r3
+ mov r9, r4
+ mov r10, r5
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808CFD0
+
+ thumb_func_start sub_808D0D8
+sub_808D0D8:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ movs r6, 0
+ movs r4, 0x1
+ strb r4, [r7, 0x3]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ bl sub_808DBC0
+ movs r5, 0
+ strh r0, [r7, 0x16]
+ movs r2, 0x8
+ ldrsh r0, [r7, r2]
+ movs r1, 0
+ bl sub_808DC28
+ strb r0, [r7, 0x18]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1
+ bl sub_808DC28
+ strb r0, [r7, 0x19]
+ movs r2, 0x8
+ ldrsh r0, [r7, r2]
+ movs r1, 0
+ bl sub_808DC48
+ strb r0, [r7, 0x1A]
+ movs r1, 0x8
+ ldrsh r0, [r7, r1]
+ movs r1, 0x1
+ bl sub_808DC48
+ strb r0, [r7, 0x1B]
+ str r6, [r7, 0x1C]
+ adds r0, r7, 0
+ adds r0, 0x24
+ strb r5, [r0]
+ strh r4, [r7, 0x14]
+ subs r0, 0x4
+ movs r1, 0
+ bl sub_808EC94
+ adds r0, r7, 0
+ adds r0, 0x2C
+ movs r2, 0x8
+ ldrsh r1, [r7, r2]
+ bl sub_808E490
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808D0D8
+
+ thumb_func_start sub_808D144
+sub_808D144:
+ push {r4-r7,lr}
+ adds r5, r0, 0
+ adds r7, r1, 0
+ movs r4, 0
+ movs r0, 0x1
+ strh r0, [r5]
+ strb r4, [r5, 0x2]
+ ldrh r0, [r7, 0x16]
+ strb r0, [r5, 0x3]
+ ldrh r0, [r7, 0x14]
+ strh r0, [r5, 0x16]
+ ldrh r0, [r7, 0x1A]
+ strb r0, [r5, 0x18]
+ ldrh r0, [r7, 0x1C]
+ strb r0, [r5, 0x19]
+ ldrh r0, [r7, 0x1E]
+ strb r0, [r5, 0x1A]
+ ldrh r0, [r7, 0x20]
+ strb r0, [r5, 0x1B]
+ ldrh r0, [r7, 0x4]
+ strh r0, [r5, 0x8]
+ adds r0, r5, 0
+ adds r0, 0x28
+ ldrb r1, [r7, 0x6]
+ bl sub_8090B08
+ ldr r0, [r7, 0x24]
+ str r0, [r5, 0x1C]
+ adds r0, r5, 0
+ adds r0, 0x24
+ strb r4, [r0]
+ ldrh r0, [r7, 0x18]
+ strh r0, [r5, 0x14]
+ ldr r0, [r7, 0x8]
+ str r0, [r5, 0x4]
+ strb r4, [r5, 0xC]
+ strb r4, [r5, 0x10]
+ adds r0, r5, 0
+ adds r0, 0x20
+ movs r1, 0
+ bl sub_808EC94
+ movs r6, 0
+ adds r4, r5, 0
+ adds r4, 0x2C
+_0808D19E:
+ lsls r1, r6, 1
+ adds r0, r7, 0
+ adds r0, 0xC
+ adds r0, r1
+ ldrh r1, [r0]
+ cmp r1, 0
+ beq _0808D1B4
+ adds r0, r4, 0
+ bl sub_8092AD4
+ b _0808D1B6
+_0808D1B4:
+ strb r1, [r4]
+_0808D1B6:
+ adds r4, 0x8
+ adds r6, 0x1
+ cmp r6, 0x3
+ ble _0808D19E
+ movs r6, 0
+ adds r3, r5, 0
+ adds r3, 0x4C
+ ldr r2, [r7]
+_0808D1C6:
+ adds r0, r3, r6
+ adds r1, r2, r6
+ ldrb r1, [r1]
+ strb r1, [r0]
+ adds r6, 0x1
+ cmp r6, 0x9
+ ble _0808D1C6
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808D144
+
+ thumb_func_start sub_808D1DC
+sub_808D1DC:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ mov r8, r0
+ movs r2, 0x8
+ ldrsh r1, [r0, r2]
+ ldr r0, _0808D204
+ ldr r2, [r0]
+ lsls r0, r1, 3
+ adds r0, r1
+ lsls r0, 3
+ adds r0, r2
+ ldrb r6, [r0, 0x16]
+ ldr r0, _0808D208
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808D238
+ b _0808D268
+ .align 2, 0
+_0808D204: .4byte gMonsterParameters
+_0808D208: .4byte gUnknown_203B468
+_0808D20C:
+ ldr r0, [r7]
+ adds r0, r5
+ mov r1, r8
+ movs r2, 0x58
+ bl memcpy
+ ldr r1, [r7]
+ adds r1, r5
+ ldrh r2, [r1]
+ ldr r0, _0808D234
+ ands r0, r2
+ strh r0, [r1]
+ mov r1, r8
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ bl sub_80980B4
+ ldr r0, [r7]
+ adds r0, r5
+ b _0808D26A
+ .align 2, 0
+_0808D234: .4byte 0x0000bfff
+_0808D238:
+ movs r4, 0
+ ldr r7, _0808D274
+_0808D23C:
+ movs r0, 0x58
+ adds r5, r4, 0
+ muls r5, r0
+ ldr r0, [r7]
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808D25E
+ adds r0, r4, 0
+ bl sub_80923D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _0808D20C
+_0808D25E:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D23C
+_0808D268:
+ movs r0, 0
+_0808D26A:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D274: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D1DC
+
+ thumb_func_start sub_808D278
+sub_808D278:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0808D29C
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldrb r6, [r1, 0x16]
+ ldr r0, _0808D2A0
+ ldr r0, [r0]
+ adds r0, r6
+ ldrb r0, [r0]
+ cmp r0, 0
+ bne _0808D2AA
+ b _0808D2DA
+ .align 2, 0
+_0808D29C: .4byte gMonsterParameters
+_0808D2A0: .4byte gUnknown_203B468
+_0808D2A4:
+ ldr r0, [r7]
+ adds r0, r5
+ b _0808D2DC
+_0808D2AA:
+ movs r4, 0
+ ldr r7, _0808D2E4
+_0808D2AE:
+ movs r0, 0x58
+ adds r5, r4, 0
+ muls r5, r0
+ ldr r0, [r7]
+ adds r0, r5, r0
+ ldrb r1, [r0]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ bne _0808D2D0
+ adds r0, r4, 0
+ bl sub_80923D4
+ lsls r0, 24
+ lsrs r0, 24
+ cmp r0, r6
+ beq _0808D2A4
+_0808D2D0:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D2AE
+_0808D2DA:
+ movs r0, 0
+_0808D2DC:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D2E4: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D278
+
+ thumb_func_start sub_808D2E8
+sub_808D2E8:
+ push {r4-r6,lr}
+ sub sp, 0x60
+ adds r4, r0, 0
+ adds r6, r1, 0
+ adds r5, r2, 0
+ ldr r0, [sp, 0x70]
+ lsls r4, 16
+ asrs r4, 16
+ lsls r5, 24
+ lsrs r5, 24
+ str r3, [sp]
+ str r0, [sp, 0x4]
+ add r0, sp, 0x8
+ adds r1, r4, 0
+ adds r2, r6, 0
+ adds r3, r5, 0
+ bl sub_808CFD0
+ add r0, sp, 0x8
+ bl sub_808D1DC
+ add sp, 0x60
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D2E8
+
+ thumb_func_start sub_808D31C
+sub_808D31C:
+ push {lr}
+ adds r1, r0, 0
+ ldrb r0, [r1, 0x2]
+ cmp r0, 0
+ bne _0808D338
+ movs r2, 0
+ ldrb r0, [r1, 0x4]
+ cmp r0, 0x41
+ bne _0808D330
+ movs r2, 0x1
+_0808D330:
+ adds r0, r2, 0
+ cmp r0, 0
+ bne _0808D338
+ strh r0, [r1]
+_0808D338:
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808D31C
+
+ thumb_func_start sub_808D33C
+sub_808D33C:
+ push {r4,lr}
+ movs r3, 0
+ ldr r0, _0808D360
+ ldr r4, [r0]
+_0808D344:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D364
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _0808D364
+ adds r0, r2, 0
+ b _0808D370
+ .align 2, 0
+_0808D360: .4byte gUnknown_203B45C
+_0808D364:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _0808D344
+ movs r0, 0
+_0808D370:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D33C
+
+ thumb_func_start sub_808D378
+sub_808D378:
+ push {r4,lr}
+ movs r3, 0
+ ldr r0, _0808D3A4
+ ldr r4, [r0]
+_0808D380:
+ movs r0, 0x58
+ muls r0, r3
+ adds r2, r0, r4
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D3A8
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D39A
+ movs r1, 0x1
+_0808D39A:
+ cmp r1, 0
+ beq _0808D3A8
+ adds r0, r2, 0
+ b _0808D3B4
+ .align 2, 0
+_0808D3A4: .4byte gUnknown_203B45C
+_0808D3A8:
+ adds r3, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r3, r0
+ ble _0808D380
+ movs r0, 0
+_0808D3B4:
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D378
+
+ thumb_func_start sub_808D3BC
+sub_808D3BC:
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r0, _0808D3E0
+ ldr r2, [r0]
+ adds r3, r2, 0
+ movs r6, 0x1
+ movs r5, 0xCE
+ lsls r5, 1
+_0808D3CC:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D3E4
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x40
+ bne _0808D3E4
+ adds r0, r3, 0
+ b _0808D3F0
+ .align 2, 0
+_0808D3E0: .4byte gUnknown_203B45C
+_0808D3E4:
+ adds r2, 0x58
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ ble _0808D3CC
+ movs r0, 0
+_0808D3F0:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D3BC
+
+ thumb_func_start sub_808D3F8
+sub_808D3F8:
+ push {r4-r6,lr}
+ movs r4, 0
+ ldr r0, _0808D41C
+ ldr r2, [r0]
+ adds r3, r2, 0
+ movs r6, 0x1
+ movs r5, 0xCE
+ lsls r5, 1
+_0808D408:
+ ldrb r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D420
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D420
+ adds r0, r3, 0
+ b _0808D42C
+ .align 2, 0
+_0808D41C: .4byte gUnknown_203B45C
+_0808D420:
+ adds r2, 0x58
+ adds r3, 0x58
+ adds r4, 0x1
+ cmp r4, r5
+ ble _0808D408
+ movs r0, 0
+_0808D42C:
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D3F8
+
+ thumb_func_start sub_808D434
+sub_808D434:
+ push {r4-r7,lr}
+ adds r6, r1, 0
+ lsls r0, 16
+ asrs r5, r0, 16
+ ldr r0, _0808D468
+ ldr r2, [r0]
+ movs r4, 0
+ movs r3, 0
+ movs r0, 0x1
+ mov r12, r0
+ movs r7, 0xCE
+ lsls r7, 1
+_0808D44C:
+ ldrb r1, [r2]
+ mov r0, r12
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D46E
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ cmp r0, r5
+ bne _0808D46E
+ cmp r4, r6
+ bne _0808D46C
+ adds r0, r2, 0
+ b _0808D478
+ .align 2, 0
+_0808D468: .4byte gUnknown_203B45C
+_0808D46C:
+ adds r4, 0x1
+_0808D46E:
+ adds r3, 0x1
+ adds r2, 0x58
+ cmp r3, r7
+ ble _0808D44C
+ movs r0, 0
+_0808D478:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D434
+
+ thumb_func_start sub_808D480
+sub_808D480:
+ push {r4,r5,lr}
+ ldr r0, _0808D4A8
+ ldr r2, [r0]
+ movs r4, 0
+ movs r5, 0x1
+ ldr r3, _0808D4AC
+_0808D48C:
+ ldrb r1, [r2]
+ adds r0, r5, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D498
+ adds r4, 0x1
+_0808D498:
+ subs r3, 0x1
+ adds r2, 0x58
+ cmp r3, 0
+ bne _0808D48C
+ adds r0, r4, 0
+ pop {r4,r5}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D4A8: .4byte gUnknown_203B45C
+_0808D4AC: .4byte 0x0000019d
+ thumb_func_end sub_808D480
+
+ thumb_func_start sub_808D4B0
+sub_808D4B0:
+ push {r4-r6,lr}
+ ldr r0, _0808D4F8
+ ldr r2, [r0]
+ movs r5, 0
+ movs r4, 0
+ ldr r6, _0808D4FC
+_0808D4BC:
+ ldrh r3, [r2]
+ lsrs r0, r3, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D4E4
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D4E4
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D4D8
+ movs r1, 0x1
+_0808D4D8:
+ cmp r1, 0
+ bne _0808D4E4
+ movs r5, 0x1
+ adds r0, r6, 0
+ ands r0, r3
+ strh r0, [r2]
+_0808D4E4:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D4BC
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D4F8: .4byte gUnknown_203B45C
+_0808D4FC: .4byte 0x0000fffd
+ thumb_func_end sub_808D4B0
+
+ thumb_func_start sub_808D500
+sub_808D500:
+ push {r4-r6,lr}
+ ldr r0, _0808D53C
+ ldr r2, [r0]
+ movs r5, 0
+ movs r4, 0
+ ldr r6, _0808D540
+_0808D50C:
+ ldrh r3, [r2]
+ lsrs r0, r3, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D526
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D526
+ movs r5, 0x1
+ adds r0, r6, 0
+ ands r0, r3
+ strh r0, [r2]
+_0808D526:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D50C
+ adds r0, r5, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D53C: .4byte gUnknown_203B45C
+_0808D540: .4byte 0x0000fffd
+ thumb_func_end sub_808D500
+
+ thumb_func_start sub_808D544
+sub_808D544:
+ push {r4-r7,lr}
+ adds r4, r0, 0
+ ldr r0, _0808D57C
+ ldr r3, [r0]
+ movs r5, 0
+ movs r2, 0
+ movs r7, 0x1
+ movs r6, 0xCE
+ lsls r6, 1
+ adds r1, r4, 0
+_0808D558:
+ ldrh r0, [r3]
+ lsrs r0, 1
+ ands r0, r7
+ cmp r0, 0
+ beq _0808D56C
+ cmp r4, 0
+ beq _0808D568
+ str r2, [r1]
+_0808D568:
+ adds r1, 0x4
+ adds r5, 0x1
+_0808D56C:
+ adds r2, 0x1
+ adds r3, 0x58
+ cmp r2, r6
+ ble _0808D558
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D57C: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D544
+
+ thumb_func_start sub_808D580
+sub_808D580:
+ push {r4-r7,lr}
+ adds r6, r0, 0
+ ldr r0, _0808D5AC
+ ldr r2, [r0]
+ movs r5, 0
+ movs r4, 0
+ mov r12, r0
+ adds r3, r6, 0
+_0808D590:
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ beq _0808D5B0
+ ldrb r1, [r2]
+ movs r0, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D5B0
+ cmp r6, 0
+ beq _0808D5B0
+ str r4, [r3]
+ adds r5, 0x1
+ b _0808D5BC
+ .align 2, 0
+_0808D5AC: .4byte gUnknown_203B45C
+_0808D5B0:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D590
+_0808D5BC:
+ mov r0, r12
+ ldr r2, [r0]
+ movs r4, 0
+ lsls r0, r5, 2
+ adds r7, r0, r6
+_0808D5C6:
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D5D0
+ movs r1, 0x1
+_0808D5D0:
+ cmp r1, 0
+ beq _0808D5F8
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D5F8
+ ldrh r1, [r2]
+ lsrs r0, r1, 1
+ movs r3, 0x1
+ ands r0, r3
+ cmp r0, 0
+ beq _0808D5F8
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D5F8
+ cmp r6, 0
+ beq _0808D5F8
+ str r4, [r7]
+ adds r5, 0x1
+ b _0808D604
+_0808D5F8:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D5C6
+_0808D604:
+ mov r0, r12
+ ldr r2, [r0]
+ movs r4, 0
+ movs r3, 0x1
+ lsls r0, r5, 2
+ adds r7, r0, r6
+_0808D610:
+ ldrh r1, [r2]
+ lsrs r0, r1, 1
+ ands r0, r3
+ cmp r0, 0
+ beq _0808D63E
+ adds r0, r3, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D63E
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D63E
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D632
+ movs r1, 0x1
+_0808D632:
+ cmp r1, 0
+ bne _0808D63E
+ cmp r6, 0
+ beq _0808D63E
+ stm r7!, {r4}
+ adds r5, 0x1
+_0808D63E:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D610
+ adds r0, r5, 0
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D580
+
+ thumb_func_start sub_808D654
+sub_808D654:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _0808D6A0
+ ldr r2, [r0]
+ movs r6, 0
+ movs r4, 0
+ adds r3, r5, 0
+_0808D662:
+ ldrh r0, [r2]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D68C
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D68C
+ movs r1, 0
+ ldrb r0, [r2, 0x4]
+ cmp r0, 0x41
+ bne _0808D67E
+ movs r1, 0x1
+_0808D67E:
+ cmp r1, 0
+ bne _0808D68C
+ cmp r5, 0
+ beq _0808D688
+ str r4, [r3]
+_0808D688:
+ adds r3, 0x4
+ adds r6, 0x1
+_0808D68C:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D662
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D6A0: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D654
+
+ thumb_func_start sub_808D6A4
+sub_808D6A4:
+ push {r4-r6,lr}
+ adds r5, r0, 0
+ ldr r0, _0808D6E4
+ ldr r2, [r0]
+ movs r6, 0
+ movs r4, 0
+ adds r3, r5, 0
+_0808D6B2:
+ ldrh r0, [r2]
+ lsrs r0, 1
+ movs r1, 0x1
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D6CE
+ ldrb r0, [r2, 0x2]
+ cmp r0, 0
+ bne _0808D6CE
+ cmp r5, 0
+ beq _0808D6CA
+ str r4, [r3]
+_0808D6CA:
+ adds r3, 0x4
+ adds r6, 0x1
+_0808D6CE:
+ adds r4, 0x1
+ adds r2, 0x58
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D6B2
+ adds r0, r6, 0
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808D6E4: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D6A4
+
+ thumb_func_start sub_808D6E8
+sub_808D6E8:
+ push {r4-r7,lr}
+ mov r7, r8
+ push {r7}
+ movs r7, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r0, _0808D740
+ mov r8, r0
+ movs r6, 0x1
+_0808D6FA:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ mov r2, r8
+ ldr r0, [r2]
+ adds r2, r0, r1
+ ldrh r1, [r2]
+ adds r0, r6, 0
+ ands r0, r1
+ cmp r0, 0
+ beq _0808D728
+ lsrs r0, r1, 1
+ ands r0, r6
+ cmp r0, 0
+ beq _0808D728
+ movs r1, 0x8
+ ldrsh r0, [r2, r1]
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0
+ adds r7, 0x1
+_0808D728:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D6FA
+ cmp r5, 0x5
+ bgt _0808D744
+ cmp r7, 0x3
+ bgt _0808D744
+ movs r0, 0x1
+ b _0808D746
+ .align 2, 0
+_0808D740: .4byte gUnknown_203B45C
+_0808D744:
+ movs r0, 0
+_0808D746:
+ pop {r3}
+ mov r8, r3
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D6E8
+
+ thumb_func_start sub_808D750
+sub_808D750:
+ push {r4-r7,lr}
+ mov r7, r9
+ mov r6, r8
+ push {r6,r7}
+ lsls r0, 16
+ asrs r0, 16
+ mov r8, r0
+ movs r6, 0
+ movs r5, 0
+ movs r4, 0
+ ldr r0, _0808D7C8
+ mov r9, r0
+ movs r7, 0x1
+_0808D76A:
+ movs r0, 0x58
+ adds r1, r4, 0
+ muls r1, r0
+ mov r2, r9
+ ldr r0, [r2]
+ adds r1, r0, r1
+ ldrh r2, [r1]
+ adds r0, r7, 0
+ ands r0, r2
+ cmp r0, 0
+ beq _0808D798
+ lsrs r0, r2, 1
+ ands r0, r7
+ cmp r0, 0
+ beq _0808D798
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0
+ adds r6, 0x1
+_0808D798:
+ adds r4, 0x1
+ movs r0, 0xCE
+ lsls r0, 1
+ cmp r4, r0
+ ble _0808D76A
+ cmp r6, 0x3
+ bgt _0808D7CC
+ ldr r2, _0808D7C8
+ movs r0, 0x58
+ mov r1, r8
+ muls r1, r0
+ ldr r0, [r2]
+ adds r1, r0, r1
+ movs r2, 0x8
+ ldrsh r0, [r1, r2]
+ bl sub_808DACC
+ lsls r0, 24
+ lsrs r0, 24
+ adds r5, r0
+ cmp r5, 0x6
+ bgt _0808D7CC
+ movs r0, 0x1
+ b _0808D7CE
+ .align 2, 0
+_0808D7C8: .4byte gUnknown_203B45C
+_0808D7CC:
+ movs r0, 0
+_0808D7CE:
+ pop {r3,r4}
+ mov r8, r3
+ mov r9, r4
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D750
+
+ thumb_func_start sub_808D7DC
+sub_808D7DC:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _0808D7FC
+ movs r2, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ adds r2, r0, 0
+ adds r2, 0x28
+ ldrb r2, [r2]
+ strb r2, [r1]
+ adds r0, 0x29
+ ldrb r0, [r0]
+ strb r0, [r1, 0x1]
+ bx lr
+ .align 2, 0
+_0808D7FC: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D7DC
+
+ thumb_func_start sub_808D800
+sub_808D800:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r3, _0808D820
+ movs r2, 0x58
+ muls r2, r0
+ ldr r0, [r3]
+ adds r0, r2
+ ldrb r3, [r1]
+ adds r2, r0, 0
+ adds r2, 0x28
+ strb r3, [r2]
+ ldrb r1, [r1, 0x1]
+ adds r0, 0x29
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+_0808D820: .4byte gUnknown_203B45C
+ thumb_func_end sub_808D800
+
+ thumb_func_start sub_808D824
+sub_808D824:
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ movs r1, 0x8
+ ldrsh r0, [r4, r1]
+ bl sub_808D994
+ adds r1, r0, 0
+ mov r0, sp
+ bl sub_80922F4
+ movs r2, 0
+ adds r4, 0x4C
+_0808D83E:
+ adds r0, r4, r2
+ mov r3, sp
+ adds r1, r3, r2
+ ldrb r0, [r0]
+ ldrb r1, [r1]
+ cmp r0, r1
+ beq _0808D850
+ movs r0, 0
+ b _0808D85C
+_0808D850:
+ cmp r0, 0
+ beq _0808D85A
+ adds r2, 0x1
+ cmp r2, 0x9
+ ble _0808D83E
+_0808D85A:
+ movs r0, 0x1
+_0808D85C:
+ add sp, 0x14
+ pop {r4}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D824
+
+ thumb_func_start sub_808D864
+sub_808D864:
+ push {r4-r7,lr}
+ lsls r0, 16
+ asrs r0, 16
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0808D8A0
+ movs r3, 0x58
+ muls r0, r3
+ ldr r2, [r2]
+ adds r0, r2, r0
+ adds r6, r0, 0
+ adds r6, 0x4C
+ adds r0, r1, 0
+ muls r0, r3
+ adds r2, r0
+ adds r5, r2, 0
+ adds r5, 0x4C
+ movs r7, 0
+_0808D888:
+ ldrb r0, [r6]
+ bl sub_8092280
+ adds r4, r0, 0
+ ldrb r0, [r5]
+ bl sub_8092280
+ cmp r4, r0
+ ble _0808D8A4
+ movs r0, 0x1
+ b _0808D8B4
+ .align 2, 0
+_0808D8A0: .4byte gUnknown_203B45C
+_0808D8A4:
+ cmp r4, r0
+ blt _0808D8B2
+ adds r6, 0x1
+ adds r5, 0x1
+ adds r7, 0x1
+ cmp r7, 0x9
+ ble _0808D888
+_0808D8B2:
+ movs r0, 0
+_0808D8B4:
+ pop {r4-r7}
+ pop {r1}
+ bx r1
+ thumb_func_end sub_808D864
+
+ thumb_func_start sub_808D8BC
+sub_808D8BC:
+ push {lr}
+ lsls r1, 16
+ asrs r1, 16
+ ldr r2, _0808D8DC
+ ldr r3, [r2]
+ lsls r2, r1, 3
+ adds r2, r1
+ lsls r2, 3
+ adds r2, r3
+ ldr r1, [r2]
+ movs r2, 0x14
+ bl strncpy
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D8DC: .4byte gMonsterParameters
+ thumb_func_end sub_808D8BC
+
+ thumb_func_start sub_808D8E0
+sub_808D8E0:
+ push {r4,lr}
+ lsls r3, r1, 16
+ asrs r3, 16
+ ldr r1, _0808D900
+ ldr r2, _0808D904
+ ldr r4, [r2]
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 3
+ adds r2, r4
+ ldr r2, [r2]
+ bl sub_800D158
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D900: .4byte gUnknown_8107600
+_0808D904: .4byte gMonsterParameters
+ thumb_func_end sub_808D8E0
+
+ thumb_func_start sub_808D908
+sub_808D908:
+ push {r4,lr}
+ lsls r3, r1, 16
+ asrs r3, 16
+ ldr r1, _0808D928
+ ldr r2, _0808D92C
+ ldr r4, [r2]
+ lsls r2, r3, 3
+ adds r2, r3
+ lsls r2, 3
+ adds r2, r4
+ ldr r2, [r2]
+ bl sub_800D158
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D928: .4byte gUnknown_8107608
+_0808D92C: .4byte gMonsterParameters
+ thumb_func_end sub_808D908
+
+ thumb_func_start sub_808D930
+sub_808D930:
+ push {r4-r7,lr}
+ adds r7, r0, 0
+ lsls r1, 16
+ asrs r6, r1, 16
+ adds r0, r6, 0
+ bl sub_808E770
+ lsls r0, 16
+ asrs r0, 16
+ cmp r0, 0xC9
+ bne _0808D970
+ ldr r5, _0808D968
+ movs r0, 0xC9
+ bl sub_808D994
+ adds r4, r0, 0
+ adds r0, r6, 0
+ bl sub_808E8C8
+ ldr r1, _0808D96C
+ adds r0, r1
+ ldrb r3, [r0]
+ adds r0, r7, 0
+ adds r1, r5, 0
+ adds r2, r4, 0
+ bl sub_800D158
+ b _0808D986
+ .align 2, 0
+_0808D968: .4byte gUnknown_8107630
+_0808D96C: .4byte gUnknown_8107610
+_0808D970:
+ ldr r1, _0808D98C
+ ldr r0, _0808D990
+ ldr r2, [r0]
+ lsls r0, r6, 3
+ adds r0, r6
+ lsls r0, 3
+ adds r0, r2
+ ldr r2, [r0]
+ adds r0, r7, 0
+ bl sub_800D158
+_0808D986:
+ pop {r4-r7}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D98C: .4byte gUnknown_8107638
+_0808D990: .4byte gMonsterParameters
+ thumb_func_end sub_808D930
+
+ thumb_func_start sub_808D994
+sub_808D994:
+ lsls r0, 16
+ asrs r0, 16
+ ldr r1, _0808D9A8
+ ldr r2, [r1]
+ lsls r1, r0, 3
+ adds r1, r0
+ lsls r1, 3
+ adds r1, r2
+ ldr r0, [r1]
+ bx lr
+ .align 2, 0
+_0808D9A8: .4byte gMonsterParameters
+ thumb_func_end sub_808D994
+
+ thumb_func_start sub_808D9AC
+sub_808D9AC:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r5, r0, 0
+ adds r4, r2, 0
+ adds r1, 0x4C
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_80922B4
+ cmp r4, 0
+ bne _0808D9C4
+ movs r4, 0x5
+_0808D9C4:
+ ldr r1, _0808D9D8
+ adds r0, r5, 0
+ adds r2, r4, 0
+ mov r3, sp
+ bl sub_800D158
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808D9D8: .4byte gUnknown_810763C
+ thumb_func_end sub_808D9AC
+
+ thumb_func_start sub_808D9DC
+sub_808D9DC:
+ push {r4,r5,lr}
+ sub sp, 0x14
+ adds r5, r0, 0
+ adds r4, r2, 0
+ adds r1, 0x58
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_80922B4
+ cmp r4, 0
+ bne _0808D9F4
+ movs r4, 0x6
+_0808D9F4:
+ ldr r1, _0808DA08
+ adds r0, r5, 0
+ adds r2, r4, 0
+ mov r3, sp
+ bl sub_800D158
+ add sp, 0x14
+ pop {r4,r5}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DA08: .4byte gUnknown_810763C
+ thumb_func_end sub_808D9DC
+
+ thumb_func_start sub_808DA0C
+sub_808DA0C:
+ push {r4,lr}
+ sub sp, 0x14
+ adds r4, r0, 0
+ adds r1, 0x58
+ mov r0, sp
+ movs r2, 0xA
+ bl sub_80922B4
+ ldr r1, _0808DA30
+ adds r0, r4, 0
+ mov r2, sp
+ bl sub_800D158
+ add sp, 0x14
+ pop {r4}
+ pop {r0}
+ bx r0
+ .align 2, 0
+_0808DA30: .4byte gUnknown_8107638
+ thumb_func_end sub_808DA0C
+
+ thumb_func_start sub_808DA34
+sub_808DA34:
+ push {lr}
+ adds r1, 0x4C
+ movs r2, 0xA
+ bl sub_80922B4
+ pop {r0}
+ bx r0
+ thumb_func_end sub_808DA34
+
+ thumb_func_start sub_808DA44
+sub_808DA44:
+ push {r4-r6,lr}
+ sub sp, 0x30
+ lsls r0, 16
+ asrs r4, r0, 16
+ lsls r1, 24
+ lsrs r2, r1, 24
+ cmp r2, 0xC
+ bls _0808DAA0
+ mov r1, sp
+ ldr r0, _0808DA98
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ ldm r0!, {r3,r5,r6}
+ stm r1!, {r3,r5,r6}
+ mov r0, sp
+ movs r1, 0
+ ldrsh r0, [r0, r1]
+ cmp r0, 0
+ beq _0808DA92
+ mov r1, sp
+ add r3, sp, 0x48
+_0808DA76:
+ movs r5, 0
+ ldrsh r0, [r1, r5]
+ cmp r0, r4
+ bne _0808DA84
+ ldr r0, [r1, 0x4]
+ cmp r0, r2
+ beq _0808DA9C
+_0808DA84:
+ adds r1, 0x8
+ cmp r1, r3
+ bgt _0808DA92
+ movs r6, 0
+ ldrsh r0, [r1, r6]
+ cmp r0, 0
+ bne _0808DA76
+_0808DA92:
+ movs r0, 0
+ b _0808DAA6
+ .align 2, 0
+_0808DA98: .4byte gUnknown_8107654
+_0808DA9C:
+ movs r0, 0x1
+ b _0808DAA6
+_0808DAA0:
+ ldr r0, _0808DAB0
+ adds r0, r2, r0
+ ldrb r0, [r0]
+_0808DAA6:
+ add sp, 0x30
+ pop {r4-r6}
+ pop {r1}
+ bx r1
+ .align 2, 0
+_0808DAB0: .4byte gUnknown_8107645
+ thumb_func_end sub_808DA44
+
thumb_func_start sub_808DAB4
sub_808DAB4:
lsls r0, 16
diff --git a/include/pokemon.h b/include/pokemon.h
index 864b611..fba7199 100644
--- a/include/pokemon.h
+++ b/include/pokemon.h
@@ -3,49 +3,7 @@
struct gPokemon
{
- /* 0x0 */ u32 species; // pointer to string
- /* 0x4 */ u32 category; // pointer to string
- /* 0x8 */ u8 palette; // between 0 - 12
- /* 0x9 */ u8 size; // between 0x01 - 0x06
- /* 0xA */ u8 unk0;
- /* 0xB */ u8 unk1;
- /* 0xC */ s32 speed;
- /* 0x10 */ u16 dial_sprite;
- /* 0x12 */ u8 unk2;
- /* 0x13 */ u8 type_1; // between 0x00 - 0x11
- /* 0x14 */ u8 type_2; // between 0x00 - 0x11
- /* 0x15 */ u8 walkable_tiles; // between 0x00 - 0x05
- /* 0x16 */ u8 friend_area; // 0x00 - 0x39
- /* 0x17 */ u8 ability_1; // between 0x00 - 0x4C
- /* 0x18 */ u8 ability_2; // between 0x00 - 0x4C
- /* 0x19 */ u8 shadow_size; // between 0x0 - 0x2
- /* 0x1A */ u8 unk3;
- /* 0x1B */ u8 unk4;
- /* 0x1C */ bool8 isMoving;
- /* 0x1D */ u8 unk5;
- /* 0x1E */ u16 base_hp;
- /* 0x20 */ u16 base_exp;
- /* 0x22 */ u16 unk6;
- /* 0x24 */ u16 base_att;
- /* 0x26 */ u16 base_sp_att;
- /* 0x28 */ u16 base_def;
- /* 0x2A */ u16 base_sp_def;
- /* 0x2C */ u16 lowkick_dmg;
- /* 0x2E */ u16 sizeorb_dmg;
- /* 0x30 */ u8 unk7;
- /* 0x31 */ u8 unk8;
- /* 0x32 */ u8 unk9;
- /* 0x33 */ bool8 unk10;
- /* 0x34 */ u16 prior_evolution;
- /* 0x36 */ u16 evol_type;
- /* 0x38 */ u16 evol_need1;
- /* 0x3A */ u16 evol_need2;
- /* 0x3C */ u16 dexNum;
- /* 0x3E */ u8 internalNum;
- /* 0x40 */ u16 base_recruit;
- /* 0x42 */ u16 unk11;
- /* 0x44 */ u16 alphaNum;
- /* 0x46 */ u16 parentNum;
+ /* 0x0 */ u8* unk0;
};
#endif // POKEMON_H
diff --git a/ld_script.txt b/ld_script.txt
index 1ffd769..4705b5d 100755
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -77,8 +77,8 @@ SECTIONS {
asm/code_8012A18.o(.text);
src/code_80521D0.o(.text);
asm/code_80521D0.o(.text);
- asm/pokemon.o(.text);
src/pokemon.o(.text);
+ asm/pokemon.o(.text);
asm/code_808DAB4.o(.text);
src/dungeon.o(.text);
asm/code_809017C.o(.text);
diff --git a/src/pokemon.c b/src/pokemon.c
index 40606df..ae2b801 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -1,2 +1,25 @@
#include "global.h"
#include "pokemon.h"
+#include "file_system.h"
+
+extern u32 *gUnknown_203B45C;
+extern u32 gUnknown_202F400;
+extern struct FileArchive gUnknown_8300500;
+extern const char gUnknown_81075F4;
+extern struct OpenedFile *gMonsterParametersFile;
+extern u16 gUnknown_20384E8;
+extern struct gPokemon gMonsterParameters;
+
+void LoadMonsterParameters(void)
+{
+ gUnknown_203B45C = &gUnknown_202F400;
+ gMonsterParametersFile = OpenFileAndGetFileDataPtr(&gUnknown_81075F4, &gUnknown_8300500);
+ gMonsterParameters.unk0 = gMonsterParametersFile->data;
+ gUnknown_20384E8 = 0;
+}
+
+u32 *sub_808CE00(void)
+{
+ return &gUnknown_202F400;
+
+}