diff options
Diffstat (limited to 'asm/pokemon.s')
-rw-r--r-- | asm/pokemon.s | 1775 |
1 files changed, 1775 insertions, 0 deletions
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 |