diff options
Diffstat (limited to 'asm/personality_test.s')
-rw-r--r-- | asm/personality_test.s | 2030 |
1 files changed, 2030 insertions, 0 deletions
diff --git a/asm/personality_test.s b/asm/personality_test.s new file mode 100644 index 0000000..0c45e92 --- /dev/null +++ b/asm/personality_test.s @@ -0,0 +1,2030 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_803C190 +sub_803C190: + lsls r0, 24 + ldr r1, _0803C19C + lsrs r0, 21 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0803C19C: .4byte gUnknown_80EBA18 + thumb_func_end sub_803C190 + + thumb_func_start sub_803C1A0 +sub_803C1A0: + lsls r0, 24 + ldr r1, _0803C1B0 + lsrs r0, 21 + adds r1, 0x4 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0803C1B0: .4byte gUnknown_80EBA18 + thumb_func_end sub_803C1A0 + + thumb_func_start sub_803C1B4 +sub_803C1B4: + push {r4,lr} + lsls r4, r1, 24 + lsrs r4, 24 + bl sub_80908D8 + cmp r4, 0x2 + bne _0803C1C4 + adds r0, 0x2 +_0803C1C4: + cmp r0, 0xF + ble _0803C1CA + movs r0, 0xF +_0803C1CA: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_803C1B4 + + thumb_func_start sub_803C1D0 +sub_803C1D0: + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + adds r1, r0, 0 + lsrs r0, r1, 31 + adds r0, r1, r0 + asrs r1, r0, 1 + lsls r0, r1, 24 + lsrs r0, 24 + cmp r0, 0x6 + bls _0803C1EC + movs r0, 0x6 +_0803C1EC: + pop {r1} + bx r1 + thumb_func_end sub_803C1D0 + + thumb_func_start sub_803C1F0 +sub_803C1F0: + lsls r0, 24 + ldr r1, _0803C1FC + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0803C1FC: .4byte gUnknown_80E8BF8 + thumb_func_end sub_803C1F0 + + thumb_func_start sub_803C200 +sub_803C200: + push {lr} + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + ldr r1, _0803C218 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + pop {r1} + bx r1 + .align 2, 0 +_0803C218: .4byte gUnknown_80E80A0 + thumb_func_end sub_803C200 + + thumb_func_start sub_803C21C +sub_803C21C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + adds r4, r1, 0 + adds r0, r6, 0x4 + ldrb r1, [r6, 0x1] + bl sub_803C1D0 + lsls r0, 24 + lsrs r2, r0, 24 + movs r0, 0 + str r0, [r4, 0x18] + movs r3, 0 + movs r1, 0x2 + adds r0, r4, 0 + adds r0, 0x1E +_0803C23E: + strb r3, [r0] + subs r0, 0x1 + subs r1, 0x1 + cmp r1, 0 + bge _0803C23E + adds r0, r4, 0 + adds r0, 0x20 + movs r1, 0 + strb r1, [r0] + movs r1, 0xA + strb r1, [r4, 0x1F] + ldrb r1, [r6, 0x11] + adds r3, r0, 0 + cmp r1, 0x9 + bhi _0803C354 + lsls r0, r1, 2 + ldr r1, _0803C268 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C268: .4byte _0803C26C + .align 2, 0 +_0803C26C: + .4byte _0803C294 + .4byte _0803C2A2 + .4byte _0803C2B4 + .4byte _0803C2BE + .4byte _0803C354 + .4byte _0803C2E0 + .4byte _0803C2EE + .4byte _0803C300 + .4byte _0803C30A + .4byte _0803C34A +_0803C294: + movs r0, 0 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0x64 + muls r0, r1 + str r0, [r4, 0x18] + b _0803C358 +_0803C2A2: + movs r0, 0x1 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0x64 + muls r0, r1 + str r0, [r4, 0x18] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C2B4: + movs r0, 0x2 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C2BE: + movs r0, 0x3 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + adds r5, r6, 0x4 + adds r7, r4, 0 + adds r7, 0x1D +_0803C2CC: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + adds r2, r7, 0 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1D] + cmp r0, r1 + beq _0803C2CC + b _0803C35A +_0803C2E0: + movs r0, 0 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0xC8 + muls r0, r1 + str r0, [r4, 0x18] + b _0803C358 +_0803C2EE: + movs r0, 0x1 + strb r0, [r4, 0x16] + adds r1, r2, 0x1 + movs r0, 0xC8 + muls r0, r1 + str r0, [r4, 0x18] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C300: + movs r0, 0x2 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + b _0803C358 +_0803C30A: + movs r0, 0x3 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x12] + strb r0, [r4, 0x1C] + adds r5, r6, 0x4 + adds r7, r4, 0 + adds r7, 0x1D + movs r0, 0x1E + adds r0, r4 + mov r8, r0 +_0803C31E: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + adds r2, r7, 0 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1D] + cmp r0, r1 + beq _0803C31E +_0803C330: + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + mov r2, r8 + bl sub_803C37C + ldrb r0, [r4, 0x1C] + ldrb r1, [r4, 0x1E] + cmp r0, r1 + beq _0803C330 + ldrb r0, [r4, 0x1D] + cmp r0, r1 + beq _0803C330 + b _0803C35A +_0803C34A: + movs r0, 0x4 + strb r0, [r4, 0x16] + ldrb r0, [r6, 0x13] + strb r0, [r3] + b _0803C358 +_0803C354: + movs r0, 0x5 + strb r0, [r4, 0x16] +_0803C358: + adds r5, r6, 0x4 +_0803C35A: + movs r0, 0xC + ldrsh r1, [r6, r0] + adds r0, r4, 0 + bl sub_808D8E0 + ldrh r0, [r6, 0xC] + strh r0, [r4, 0x14] + ldrb r1, [r6, 0x1] + adds r0, r5, 0 + bl sub_803C200 + str r0, [r4, 0x24] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803C21C + + thumb_func_start sub_803C37C +sub_803C37C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + adds r6, r0, 0 + mov r8, r2 + lsls r1, 24 + lsrs r1, 24 + bl sub_803C1B4 + adds r7, r0, 0 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8090910 +_0803C398: + movs r5, 0 + adds r0, r6, 0 + adds r1, r7, 0 + bl sub_8090910 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0xEA + bne _0803C3BA + movs r0, 0 + movs r1, 0x47 + movs r2, 0x1 + bl sub_8001784 + negs r1, r0 + orrs r1, r0 + lsrs r5, r1, 31 +_0803C3BA: + cmp r4, 0xEB + bne _0803C3CE + movs r0, 0 + movs r1, 0x47 + movs r2, 0 + bl sub_8001784 + cmp r0, 0 + beq _0803C3CE + movs r5, 0x1 +_0803C3CE: + cmp r5, 0 + bne _0803C398 + mov r0, r8 + strb r4, [r0] + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_803C37C + + thumb_func_start sub_803C3E0 +sub_803C3E0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x54 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C42C + movs r4, 0 + mov r8, sp +_0803C3F2: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C41A + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C41A + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C41A: + adds r5, 0x8 + adds r4, 0x1 + cmp r4, 0x14 + ble _0803C3F2 + ldr r5, _0803C42C + cmp r6, 0 + bne _0803C430 + movs r0, 0 + b _0803C44E + .align 2, 0 +_0803C42C: .4byte gUnknown_80E9920 +_0803C430: + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 3 + adds r5, r0, r5 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xE] + movs r0, 0x7 + strb r0, [r7, 0x2] + movs r0, 0x1 +_0803C44E: + add sp, 0x54 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C3E0 + + thumb_func_start sub_803C45C +sub_803C45C: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xB4 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C4CC + movs r4, 0 + mov r8, sp +_0803C46E: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C496 + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C496 + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C496: + adds r5, 0xC + adds r4, 0x1 + cmp r4, 0x2C + ble _0803C46E + ldr r5, _0803C4CC + cmp r6, 0 + beq _0803C4E0 + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 1 + adds r0, r4 + lsls r0, 2 + adds r5, r0, r5 + bl Random + movs r1, 0x10 + ands r1, r0 + cmp r1, 0 + beq _0803C4D0 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + b _0803C4D6 + .align 2, 0 +_0803C4CC: .4byte gUnknown_80E9F8C +_0803C4D0: + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xC] + ldrh r0, [r5] +_0803C4D6: + strh r0, [r7, 0xE] + movs r0, 0x8 + strb r0, [r7, 0x2] + movs r0, 0x1 + b _0803C4E2 +_0803C4E0: + movs r0, 0 +_0803C4E2: + add sp, 0xB4 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C45C + + thumb_func_start sub_803C4F0 +sub_803C4F0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x18 + adds r7, r0, 0 + movs r6, 0 + ldr r5, _0803C55C + movs r4, 0 + mov r8, sp +_0803C502: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C52A + movs r1, 0x2 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C52A + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r6, 0x1 +_0803C52A: + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0x5 + ble _0803C502 + ldr r5, _0803C55C + cmp r6, 0 + beq _0803C570 + adds r0, r6, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r0, r4, 2 + adds r5, r0, r5 + bl Random + movs r1, 0x10 + ands r1, r0 + cmp r1, 0 + beq _0803C560 + ldrh r0, [r5] + strh r0, [r7, 0xC] + ldrh r0, [r5, 0x2] + b _0803C566 + .align 2, 0 +_0803C55C: .4byte gUnknown_80E8168 +_0803C560: + ldrh r0, [r5, 0x2] + strh r0, [r7, 0xC] + ldrh r0, [r5] +_0803C566: + strh r0, [r7, 0xE] + movs r0, 0x9 + strb r0, [r7, 0x2] + movs r0, 0x1 + b _0803C572 +_0803C570: + movs r0, 0 +_0803C572: + add sp, 0x18 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_803C4F0 + + thumb_func_start sub_803C580 +sub_803C580: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x54 + adds r6, r0, 0 + movs r7, 0 + ldr r5, _0803C5D8 + movs r0, 0x6 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0803C5D2 + movs r4, 0 + mov r8, sp +_0803C59E: + movs r1, 0 + ldrsh r0, [r5, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C5C6 + ldrb r0, [r6, 0x4] + ldrb r1, [r5, 0x2] + bl sub_8091E60 + lsls r0, 24 + cmp r0, 0 + beq _0803C5C6 + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r4} + adds r7, 0x1 +_0803C5C6: + adds r5, 0x4 + adds r4, 0x1 + cmp r4, 0x14 + ble _0803C59E + cmp r7, 0 + bne _0803C5DC +_0803C5D2: + movs r0, 0 + b _0803C600 + .align 2, 0 +_0803C5D8: .4byte gUnknown_80E8180 +_0803C5DC: + adds r0, r7, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r4, [r0] + lsls r1, r4, 2 + ldr r0, _0803C60C + adds r5, r1, r0 + ldrh r0, [r5] + strh r0, [r6, 0xC] + ldrh r0, [r5] + strh r0, [r6, 0xE] + ldrb r0, [r5, 0x2] + strb r0, [r6, 0x10] + movs r0, 0x5 + strb r0, [r6, 0x2] + movs r0, 0x1 +_0803C600: + add sp, 0x54 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803C60C: .4byte gUnknown_80E8180 + thumb_func_end sub_803C580 + + thumb_func_start sub_803C610 +sub_803C610: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r4, _0803C660 + add sp, r4 + adds r6, r0, 0 + movs r7, 0 + ldr r4, _0803C664 + movs r5, 0 + mov r8, sp +_0803C624: + movs r1, 0 + ldrsh r0, [r4, r1] + bl sub_803C110 + lsls r0, 24 + cmp r0, 0 + beq _0803C64C + ldrb r0, [r6, 0x4] + ldrb r1, [r4, 0x2] + bl sub_8091E60 + lsls r0, 24 + cmp r0, 0 + beq _0803C64C + mov r0, r8 + adds r0, 0x4 + mov r8, r0 + subs r0, 0x4 + stm r0!, {r5} + adds r7, 0x1 +_0803C64C: + adds r4, 0x4 + adds r5, 0x1 + ldr r0, _0803C668 + cmp r5, r0 + ble _0803C624 + cmp r7, 0 + bne _0803C66C + movs r0, 0 + b _0803C690 + .align 2, 0 +_0803C660: .4byte 0xfffff9f8 +_0803C664: .4byte gUnknown_80E81D4 +_0803C668: .4byte 0x00000181 +_0803C66C: + adds r0, r7, 0 + bl RandomCapped + lsls r0, 2 + add r0, sp + ldr r5, [r0] + lsls r1, r5, 2 + ldr r0, _0803C6A0 + adds r4, r1, r0 + ldrh r0, [r4] + strh r0, [r6, 0xC] + ldrh r0, [r4] + strh r0, [r6, 0xE] + ldrb r0, [r4, 0x2] + strb r0, [r6, 0x10] + movs r0, 0x6 + strb r0, [r6, 0x2] + movs r0, 0x1 +_0803C690: + movs r3, 0xC1 + lsls r3, 3 + add sp, r3 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803C6A0: .4byte gUnknown_80E81D4 + thumb_func_end sub_803C610 + + thumb_func_start sub_803C6A4 +sub_803C6A4: + push {r4,lr} + ldr r4, _0803C6CC + movs r0, 0xC0 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + adds r0, 0xB4 + bl sub_801317C + bl sub_803C6D0 + movs r0, 0x1 + bl sub_8099690 + movs r0, 0x1 + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_0803C6CC: .4byte gUnknown_203B400 + thumb_func_end sub_803C6A4 + + thumb_func_start sub_803C6D0 +sub_803C6D0: + push {r4,r5,lr} + ldr r4, _0803C72C + ldr r0, [r4] + adds r0, 0x4 + bl sub_8001024 + ldr r1, [r4] + movs r0, 0 + str r0, [r1] + str r0, [r1, 0x34] + str r0, [r1, 0x38] + movs r2, 0 + movs r5, 0 + adds r3, r4, 0 +_0803C6EC: + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, 0x44 + adds r0, r1 + str r5, [r0] + adds r2, 0x1 + cmp r2, 0xC + ble _0803C6EC + ldr r1, [r3] + movs r0, 0 + str r0, [r1, 0x3C] + movs r2, 0 + adds r4, r3, 0 + movs r1, 0 +_0803C708: + ldr r0, [r4] + adds r0, 0x78 + adds r0, r2 + strb r1, [r0] + adds r2, 0x1 + cmp r2, 0x36 + ble _0803C708 + ldr r0, [r3] + adds r0, 0x40 + movs r1, 0 + strb r1, [r0] + ldr r0, [r3] + adds r0, 0xB0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803C72C: .4byte gUnknown_203B400 + thumb_func_end sub_803C6D0 + + thumb_func_start sub_803C730 +sub_803C730: + push {r4,r5,lr} + ldr r0, _0803C750 + ldr r1, [r0] + ldr r0, [r1] + adds r0, 0x1 + str r0, [r1] + ldr r0, [r1, 0x34] + cmp r0, 0xF + bls _0803C744 + b _0803C848 +_0803C744: + lsls r0, 2 + ldr r1, _0803C754 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0803C750: .4byte gUnknown_203B400 +_0803C754: .4byte _0803C758 + .align 2, 0 +_0803C758: + .4byte _0803C798 + .4byte _0803C79E + .4byte _0803C7A4 + .4byte _0803C7AA + .4byte _0803C7B0 + .4byte _0803C7B6 + .4byte _0803C7BC + .4byte _0803C7C2 + .4byte _0803C7C8 + .4byte _0803C7CE + .4byte _0803C7D4 + .4byte _0803C7DA + .4byte _0803C7E0 + .4byte _0803C7E6 + .4byte _0803C7EC + .4byte _0803C7F2 +_0803C798: + bl sub_803C870 + b _0803C848 +_0803C79E: + bl sub_803C908 + b _0803C848 +_0803C7A4: + bl sub_803C920 + b _0803C848 +_0803C7AA: + bl sub_803C98C + b _0803C848 +_0803C7B0: + bl sub_803C9D8 + b _0803C848 +_0803C7B6: + bl sub_803CA54 + b _0803C848 +_0803C7BC: + bl sub_803CA8C + b _0803C848 +_0803C7C2: + bl sub_803CAAC + b _0803C848 +_0803C7C8: + bl sub_803CAD4 + b _0803C848 +_0803C7CE: + bl sub_803CAF4 + b _0803C848 +_0803C7D4: + bl sub_803CB14 + b _0803C848 +_0803C7DA: + bl sub_803CB5C + b _0803C848 +_0803C7E0: + bl sub_803CB7C + b _0803C848 +_0803C7E6: + bl sub_803CBB0 + b _0803C848 +_0803C7EC: + bl sub_803CBE4 + b _0803C848 +_0803C7F2: + bl Random + ldr r4, _0803C844 + ldr r1, [r4] + ldr r1, [r1] + adds r5, r0, 0 + muls r5, r1 + bl Random + bl sub_8094D28 + movs r1, 0 + ldr r0, [r4] + adds r2, r0, 0 + adds r2, 0x44 +_0803C810: + ldm r2!, {r0} + adds r0, r1 + adds r0, 0x3 + muls r5, r0 + adds r1, 0x1 + cmp r1, 0xC + ble _0803C810 + bl sub_8094E4C + adds r5, r0 + movs r0, 0x1 + negs r0, r0 + cmp r5, r0 + bne _0803C838 + adds r4, r5, 0 +_0803C82E: + bl sub_8094E4C + adds r5, r0 + cmp r5, r4 + beq _0803C82E +_0803C838: + adds r0, r5, 0 + bl sub_8011C40 + movs r0, 0x3 + b _0803C84A + .align 2, 0 +_0803C844: .4byte gUnknown_203B400 +_0803C848: + movs r0, 0 +_0803C84A: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_803C730 + + thumb_func_start sub_803C850 +sub_803C850: + push {r4,lr} + ldr r4, _0803C86C + ldr r0, [r4] + adds r0, 0x4 + bl sub_8001044 + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803C86C: .4byte gUnknown_203B400 + thumb_func_end sub_803C850 + + thumb_func_start sub_803C870 +sub_803C870: + push {r4-r6,lr} + sub sp, 0x14 + ldr r5, _0803C8A4 + ldr r1, [r5] + ldr r0, [r1, 0x38] + adds r0, 0x1 + str r0, [r1, 0x38] + cmp r0, 0x8 + ble _0803C8B4 + ldr r0, _0803C8A8 + ldr r3, _0803C8AC + movs r1, 0 + str r1, [sp] + movs r4, 0x3 + str r4, [sp, 0x4] + str r1, [sp, 0x8] + str r1, [sp, 0xC] + ldr r1, _0803C8B0 + str r1, [sp, 0x10] + movs r1, 0 + movs r2, 0 + bl sub_8014248 + ldr r0, [r5] + str r4, [r0, 0x34] + b _0803C8F8 + .align 2, 0 +_0803C8A4: .4byte gUnknown_203B400 +_0803C8A8: .4byte gGenderText +_0803C8AC: .4byte gUnknown_80F275C +_0803C8B0: .4byte 0x00000101 +_0803C8B4: + adds r4, r5, 0 +_0803C8B6: + movs r0, 0x37 + bl RandomCapped + ldr r1, [r4] + str r0, [r1, 0x3C] + adds r1, 0x78 + adds r1, r0 + ldrb r0, [r1] + cmp r0, 0x1 + beq _0803C8B6 + ldr r2, _0803C900 + ldr r1, _0803C904 + ldr r0, [r1] + ldr r0, [r0, 0x3C] + adds r0, r2 + ldrb r4, [r0] + movs r3, 0 + adds r6, r1, 0 + movs r5, 0x1 +_0803C8DC: + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, r4 + bne _0803C8EC + ldr r0, [r1] + adds r0, 0x78 + adds r0, r3 + strb r5, [r0] +_0803C8EC: + adds r3, 0x1 + cmp r3, 0x36 + ble _0803C8DC + ldr r1, [r6] + movs r0, 0x1 + str r0, [r1, 0x34] +_0803C8F8: + add sp, 0x14 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803C900: .4byte gNatureQuestionTable +_0803C904: .4byte gUnknown_203B400 + thumb_func_end sub_803C870 + + thumb_func_start sub_803C908 +sub_803C908: + push {lr} + bl sub_803CC04 + ldr r0, _0803C91C + ldr r1, [r0] + movs r0, 0x2 + str r0, [r1, 0x34] + pop {r0} + bx r0 + .align 2, 0 +_0803C91C: .4byte gUnknown_203B400 + thumb_func_end sub_803C908 + + thumb_func_start sub_803C920 +sub_803C920: + push {r4-r6,lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803C97C + ldr r3, [sp] + cmp r3, 0x63 + bne _0803C944 + ldr r0, _0803C940 + ldr r1, [r0] + movs r0, 0x37 + str r0, [r1, 0x3C] + movs r0, 0x1 + b _0803C97A + .align 2, 0 +_0803C940: .4byte gUnknown_203B400 +_0803C944: + ldr r1, _0803C984 + ldr r2, _0803C988 + ldr r0, [r2] + ldr r0, [r0, 0x3C] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r4, [r0, 0x8] + lsls r0, r3, 4 + adds r4, r0 + movs r3, 0 + adds r6, r2, 0 + adds r5, r6, 0 +_0803C95E: + ldr r1, [r5] + lsls r0, r3, 2 + adds r1, 0x44 + adds r1, r0 + adds r0, r4, r3 + ldrb r2, [r0] + ldr r0, [r1] + adds r0, r2 + str r0, [r1] + adds r3, 0x1 + cmp r3, 0xC + ble _0803C95E + ldr r1, [r6] + movs r0, 0 +_0803C97A: + str r0, [r1, 0x34] +_0803C97C: + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803C984: .4byte gPersonalityQuestionPointerTable +_0803C988: .4byte gUnknown_203B400 + thumb_func_end sub_803C920 + + thumb_func_start sub_803C98C +sub_803C98C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803C9CA + ldr r1, [sp] + cmp r1, 0 + bne _0803C9AC + ldr r0, _0803C9A8 + ldr r0, [r0] + adds r0, 0xB0 + b _0803C9B4 + .align 2, 0 +_0803C9A8: .4byte gUnknown_203B400 +_0803C9AC: + ldr r0, _0803C9D0 + ldr r0, [r0] + adds r0, 0xB0 + movs r1, 0x1 +_0803C9B4: + str r1, [r0] + ldr r0, _0803C9D4 + ldr r0, [r0] + strb r1, [r0, 0xB] + movs r0, 0 + bl sub_8099690 + ldr r0, _0803C9D0 + ldr r1, [r0] + movs r0, 0x4 + str r0, [r1, 0x34] +_0803C9CA: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803C9D0: .4byte gUnknown_203B400 +_0803C9D4: .4byte gUnknown_203B46C + thumb_func_end sub_803C98C + + thumb_func_start sub_803C9D8 +sub_803C9D8: + push {r4-r7,lr} + movs r0, 0xD + bl RandomCapped + ldr r2, _0803CA4C + ldr r1, [r2] + adds r1, 0x40 + strb r0, [r1] + ldr r0, [r2] + adds r0, 0x40 + ldrb r3, [r0] + adds r7, r2, 0 + movs r5, 0xB +_0803C9F2: + adds r3, 0x1 + cmp r3, 0xC + ble _0803C9FA + movs r3, 0 +_0803C9FA: + ldr r0, [r7] + lsls r2, r3, 2 + adds r1, r0, 0 + adds r1, 0x44 + adds r2, r1, r2 + adds r4, r0, 0 + adds r4, 0x40 + ldrb r0, [r4] + lsls r0, 2 + adds r1, r0 + ldr r2, [r2] + ldr r0, [r1] + ldr r6, _0803CA4C + cmp r2, r0 + ble _0803CA1A + strb r3, [r4] +_0803CA1A: + subs r5, 0x1 + cmp r5, 0 + bge _0803C9F2 + ldr r3, [r6] + ldr r2, _0803CA50 + adds r0, r3, 0 + adds r0, 0xB0 + ldr r1, [r0] + lsls r1, 1 + subs r0, 0x70 + ldrb r0, [r0] + lsls r0, 2 + adds r1, r0 + adds r1, r2 + ldrh r0, [r1] + strh r0, [r3, 0x8] + bl sub_803CC40 + ldr r1, [r6] + movs r0, 0x5 + str r0, [r1, 0x34] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803CA4C: .4byte gUnknown_203B400 +_0803CA50: .4byte gStarters + thumb_func_end sub_803C9D8 + + thumb_func_start sub_803CA54 +sub_803CA54: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803CA7A + ldr r0, _0803CA80 + ldr r3, _0803CA84 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + bl sub_803CC80 + ldr r0, _0803CA88 + ldr r1, [r0] + movs r0, 0x6 + str r0, [r1, 0x34] +_0803CA7A: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803CA80: .4byte gStarterReveal +_0803CA84: .4byte 0x00000101 +_0803CA88: .4byte gUnknown_203B400 + thumb_func_end sub_803CA54 + + thumb_func_start sub_803CA8C +sub_803CA8C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803CAA2 + ldr r0, _0803CAA8 + ldr r1, [r0] + movs r0, 0x7 + str r0, [r1, 0x34] +_0803CAA2: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803CAA8: .4byte gUnknown_203B400 + thumb_func_end sub_803CA8C + + thumb_func_start sub_803CAAC +sub_803CAAC: + push {lr} + ldr r0, _0803CAC8 + ldr r3, _0803CACC + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + ldr r0, _0803CAD0 + ldr r1, [r0] + movs r0, 0x8 + str r0, [r1, 0x34] + pop {r0} + bx r0 + .align 2, 0 +_0803CAC8: .4byte gUnknown_80F27DC +_0803CACC: .4byte 0x00000301 +_0803CAD0: .4byte gUnknown_203B400 + thumb_func_end sub_803CAAC + + thumb_func_start sub_803CAD4 +sub_803CAD4: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803CAEA + ldr r0, _0803CAF0 + ldr r1, [r0] + movs r0, 0x9 + str r0, [r1, 0x34] +_0803CAEA: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803CAF0: .4byte gUnknown_203B400 + thumb_func_end sub_803CAD4 + + thumb_func_start sub_803CAF4 +sub_803CAF4: + push {r4,lr} + ldr r4, _0803CB10 + ldr r0, [r4] + movs r1, 0x8 + ldrsh r0, [r0, r1] + bl sub_803CD08 + ldr r1, [r4] + movs r0, 0xA + str r0, [r1, 0x34] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803CB10: .4byte gUnknown_203B400 + thumb_func_end sub_803CAF4 + + thumb_func_start sub_803CB14 +sub_803CB14: + push {r4,r5,lr} + bl sub_803CDC0 + lsls r0, 16 + lsrs r5, r0, 16 + ldr r0, _0803CB4C + cmp r5, r0 + beq _0803CB46 + subs r0, 0x1 + cmp r5, r0 + beq _0803CB46 + bl sub_803CE6C + ldr r4, _0803CB50 + ldr r0, [r4] + strh r5, [r0, 0xA] + ldr r0, _0803CB54 + ldr r3, _0803CB58 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + ldr r1, [r4] + movs r0, 0xB + str r0, [r1, 0x34] +_0803CB46: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803CB4C: .4byte 0x0000ffff +_0803CB50: .4byte gUnknown_203B400 +_0803CB54: .4byte gUnknown_80F286C +_0803CB58: .4byte 0x00000301 + thumb_func_end sub_803CB14 + + thumb_func_start sub_803CB5C +sub_803CB5C: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803CB72 + ldr r0, _0803CB78 + ldr r1, [r0] + movs r0, 0xC + str r0, [r1, 0x34] +_0803CB72: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803CB78: .4byte gUnknown_203B400 + thumb_func_end sub_803CB5C + + thumb_func_start sub_803CB7C +sub_803CB7C: + push {r4,r5,lr} + ldr r4, _0803CBAC + ldr r0, [r4] + adds r5, r0, 0 + adds r5, 0x20 + movs r1, 0xA + ldrsh r0, [r0, r1] + bl sub_808D994 + adds r1, r0, 0 + adds r0, r5, 0 + bl sub_80922F4 + ldr r1, [r4] + adds r1, 0x20 + movs r0, 0x3 + bl sub_801602C + ldr r1, [r4] + movs r0, 0xD + str r0, [r1, 0x34] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803CBAC: .4byte gUnknown_203B400 + thumb_func_end sub_803CB7C + + thumb_func_start sub_803CBB0 +sub_803CBB0: + push {lr} + bl sub_8016080 + cmp r0, 0 + beq _0803CBD2 + bl sub_80160D8 + ldr r0, _0803CBD8 + ldr r3, _0803CBDC + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + ldr r0, _0803CBE0 + ldr r1, [r0] + movs r0, 0xE + str r0, [r1, 0x34] +_0803CBD2: + pop {r0} + bx r0 + .align 2, 0 +_0803CBD8: .4byte gUnknown_80F2898 +_0803CBDC: .4byte 0x00000301 +_0803CBE0: .4byte gUnknown_203B400 + thumb_func_end sub_803CBB0 + + thumb_func_start sub_803CBE4 +sub_803CBE4: + push {lr} + sub sp, 0x4 + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _0803CBFA + ldr r0, _0803CC00 + ldr r1, [r0] + movs r0, 0xF + str r0, [r1, 0x34] +_0803CBFA: + add sp, 0x4 + pop {r0} + bx r0 + .align 2, 0 +_0803CC00: .4byte gUnknown_203B400 + thumb_func_end sub_803CBE4 + + thumb_func_start sub_803CC04 +sub_803CC04: + push {lr} + sub sp, 0x14 + ldr r1, _0803CC38 + ldr r0, _0803CC3C + ldr r0, [r0] + ldr r0, [r0, 0x3C] + lsls r0, 2 + adds r0, r1 + ldr r1, [r0] + ldr r0, [r1] + ldr r3, [r1, 0x4] + movs r2, 0 + str r2, [sp] + movs r1, 0x3 + str r1, [sp, 0x4] + str r2, [sp, 0x8] + str r2, [sp, 0xC] + adds r1, 0xFE + str r1, [sp, 0x10] + movs r1, 0 + bl sub_8014248 + add sp, 0x14 + pop {r0} + bx r0 + .align 2, 0 +_0803CC38: .4byte gPersonalityQuestionPointerTable +_0803CC3C: .4byte gUnknown_203B400 + thumb_func_end sub_803CC04 + + thumb_func_start sub_803CC40 +sub_803CC40: + push {r4,lr} + ldr r0, _0803CC70 + ldr r4, _0803CC74 + ldr r1, [r4] + movs r2, 0x8 + ldrsh r1, [r1, r2] + bl sub_808D8BC + ldr r1, _0803CC78 + ldr r0, [r4] + adds r0, 0x40 + ldrb r0, [r0] + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + ldr r3, _0803CC7C + movs r1, 0 + movs r2, 0 + bl sub_80141B4 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803CC70: .4byte gUnknown_202DF98 +_0803CC74: .4byte gUnknown_203B400 +_0803CC78: .4byte gPersonalityTypeDescriptionTable +_0803CC7C: .4byte 0x00000101 + thumb_func_end sub_803CC40 + + thumb_func_start sub_803CC80 +sub_803CC80: + push {r4-r7,lr} + sub sp, 0x60 + ldr r0, _0803CD00 + ldr r0, [r0] + movs r1, 0x8 + ldrsh r4, [r0, r1] + mov r0, sp + bl sub_8006518 + add r1, sp, 0x18 + ldr r0, _0803CD04 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl sub_8004914 + mov r0, sp + movs r1, 0x1 + movs r2, 0 + bl sub_800641C + movs r0, 0x1 + bl sub_8008C54 + movs r0, 0x1 + bl sub_80073B8 + adds r0, r4, 0 + bl sub_808DDD0 + adds r5, r0, 0 + ldr r0, [r5, 0x4] + ldr r6, [r0, 0xC] + movs r4, 0 + movs r7, 0x8 +_0803CCC8: + adds r0, r4, 0 + adds r0, 0xE0 + ldr r1, [r5, 0x4] + adds r1, r7 + lsls r2, r4, 2 + ldr r1, [r1] + adds r1, r2 + bl SetBGPaletteBufferColorArray + adds r4, 0x1 + cmp r4, 0xF + ble _0803CCC8 + movs r0, 0x1 + adds r1, r6, 0 + movs r2, 0xE + bl sub_800836C + adds r0, r5, 0 + bl CloseFile + movs r0, 0x1 + bl sub_80073E0 + add sp, 0x60 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803CD00: .4byte gUnknown_203B400 +_0803CD04: .4byte gUnknown_80F4244 + thumb_func_end sub_803CC80 + + thumb_func_start sub_803CD08 +sub_803CD08: + push {r4-r7,lr} + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + bl sub_803CEAC + ldr r5, _0803CDB0 + ldr r0, [r5] + movs r3, 0 + movs r1, 0 + strh r4, [r0] + str r1, [r0, 0x4C] + adds r1, r0, 0 + adds r1, 0x54 + str r1, [r0, 0x50] + ldr r0, _0803CDB4 + ldm r0!, {r2,r4,r6} + stm r1!, {r2,r4,r6} + ldm r0!, {r2,r4,r7} + stm r1!, {r2,r4,r7} + ldr r1, [r5] + adds r1, 0x6C + ldr r0, _0803CDB8 + ldm r0!, {r2,r6,r7} + stm r1!, {r2,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldr r1, [r5] + ldr r2, _0803CDBC + adds r1, 0x84 + adds r0, r2, 0 + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldm r0!, {r4,r6,r7} + stm r1!, {r4,r6,r7} + ldr r0, [r5] + adds r0, 0x9C + ldm r2!, {r1,r4,r6} + stm r0!, {r1,r4,r6} + ldm r2!, {r1,r4,r7} + stm r0!, {r1,r4,r7} + ldr r0, [r5] + ldr r1, [r0, 0x50] + adds r0, 0xB4 + str r0, [r1, 0x14] + movs r1, 0x1 + strb r1, [r0] + ldr r0, [r5] + adds r0, 0xB5 + strb r3, [r0] + ldr r0, [r5] + adds r0, 0xB6 + movs r1, 0x6 + strb r1, [r0] + ldr r0, [r5] + adds r0, 0xB7 + strb r3, [r0] + bl sub_8004914 + ldr r0, [r5] + adds r0, 0x54 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r4, [r5] + adds r4, 0x18 + bl sub_803D030 + adds r1, r0, 0 + ldr r0, [r5] + ldr r3, [r0, 0x4C] + adds r0, r4, 0 + movs r2, 0xA + bl sub_8013818 + bl sub_803CEF0 + bl sub_803CFC0 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803CDB0: .4byte gUnknown_203B404 +_0803CDB4: .4byte gUnknown_80F4290 +_0803CDB8: .4byte gUnknown_80F42A8 +_0803CDBC: .4byte gUnknown_80F4278 + thumb_func_end sub_803CD08 + + thumb_func_start sub_803CDC0 +sub_803CDC0: + push {r4,r5,lr} + ldr r4, _0803CDF0 + ldr r1, [r4] + movs r0, 0x30 + ldrsh r5, [r1, r0] + movs r0, 0 + strb r0, [r1, 0x16] + ldr r0, [r4] + adds r0, 0x18 + bl GetKeyPress + cmp r0, 0x1 + bne _0803CDF4 + movs r0, 0 + bl sub_80119D4 + ldr r0, [r4] + movs r2, 0x30 + ldrsh r1, [r0, r2] + lsls r1, 1 + adds r0, 0x2 + adds r0, r1 + ldrh r0, [r0] + b _0803CE2A + .align 2, 0 +_0803CDF0: .4byte gUnknown_203B404 +_0803CDF4: + ldr r0, [r4] + adds r0, 0x18 + movs r1, 0x1 + bl sub_80138B8 + lsls r0, 24 + cmp r0, 0 + beq _0803CE08 + bl sub_803CEF0 +_0803CE08: + ldr r0, [r4] + movs r1, 0x30 + ldrsh r0, [r0, r1] + cmp r5, r0 + beq _0803CE16 + bl sub_803CFC0 +_0803CE16: + ldr r0, [r4] + ldrb r0, [r0, 0x16] + cmp r0, 0 + bne _0803CE28 + ldr r0, _0803CE24 + b _0803CE2A + .align 2, 0 +_0803CE24: .4byte 0x0000ffff +_0803CE28: + ldr r0, _0803CE30 +_0803CE2A: + pop {r4,r5} + pop {r1} + bx r1 + .align 2, 0 +_0803CE30: .4byte 0x0000fffe + thumb_func_end sub_803CDC0 + + thumb_func_start sub_803CE34 +sub_803CE34: + push {r4,r5,lr} + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + bl sub_803D030 + adds r1, r0, 0 + ldr r5, _0803CE68 + ldr r0, [r5] + strh r1, [r0, 0x3A] + adds r0, 0x18 + bl sub_8013984 + bl sub_803CEF0 + bl sub_803CFC0 + cmp r4, 0 + beq _0803CE62 + ldr r0, [r5] + adds r0, 0x18 + bl AddMenuCursorSprite +_0803CE62: + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803CE68: .4byte gUnknown_203B404 + thumb_func_end sub_803CE34 + + thumb_func_start sub_803CE6C +sub_803CE6C: + push {r4,r5,lr} + ldr r4, _0803CEA4 + ldr r1, [r4] + ldr r2, [r1, 0x4C] + lsls r0, r2, 1 + adds r0, r2 + lsls r0, 3 + adds r1, r0 + adds r1, 0x54 + ldr r0, _0803CEA8 + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + ldm r0!, {r2,r3,r5} + stm r1!, {r2,r3,r5} + bl sub_8004914 + ldr r0, [r4] + adds r0, 0x54 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + bl sub_803CECC + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0803CEA4: .4byte gUnknown_203B404 +_0803CEA8: .4byte gUnknown_80F4278 + thumb_func_end sub_803CE6C + + thumb_func_start sub_803CEAC +sub_803CEAC: + push {r4,lr} + ldr r4, _0803CEC4 + movs r0, 0xB8 + movs r1, 0x8 + bl MemoryAlloc + str r0, [r4] + bl nullsub_135 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803CEC4: .4byte gUnknown_203B404 + thumb_func_end sub_803CEAC + + thumb_func_start nullsub_135 +nullsub_135: + bx lr + thumb_func_end nullsub_135 + + thumb_func_start sub_803CECC +sub_803CECC: + push {r4,lr} + ldr r4, _0803CEEC + ldr r0, [r4] + cmp r0, 0 + beq _0803CEE4 + bl nullsub_135 + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] +_0803CEE4: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0803CEEC: .4byte gUnknown_203B404 + thumb_func_end sub_803CECC + + thumb_func_start sub_803CEF0 +sub_803CEF0: + push {r4-r6,lr} + sub sp, 0x4 + ldr r6, _0803CF60 + ldr r0, [r6] + movs r1, 0x32 + ldrsh r0, [r0, r1] + movs r1, 0xC + bl sub_80095E4 + adds r0, 0x2 + lsls r0, 16 + ldr r2, [r6] + ldr r3, [r2, 0x4C] + lsls r1, r3, 1 + adds r1, r3 + lsls r1, 3 + adds r1, r2, r1 + adds r1, 0x62 + movs r4, 0 + asrs r3, r0, 16 + lsrs r0, 16 + strh r0, [r1] + ldr r1, [r2, 0x4C] + lsls r0, r1, 1 + adds r0, r1 + lsls r0, 3 + adds r2, r0 + adds r3, 0x2 + adds r2, 0x64 + strh r3, [r2] + bl sub_8004914 + ldr r0, [r6] + adds r0, 0x54 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r0, [r6] + ldr r0, [r0, 0x4C] + bl sub_8008C54 + ldr r0, [r6] + ldr r0, [r0, 0x4C] + bl sub_80073B8 + ldr r2, _0803CF64 + ldr r0, [r6] + ldr r3, [r0, 0x4C] + str r4, [sp] + movs r0, 0xC + movs r1, 0 + bl xxx_call_draw_string + movs r5, 0 + b _0803CF98 + .align 2, 0 +_0803CF60: .4byte gUnknown_203B404 +_0803CF64: .4byte gUnknown_80F42C0 +_0803CF68: + ldr r0, [r6] + adds r0, 0x18 + adds r1, r5, 0 + bl sub_8013800 + adds r4, r0, 0 + ldr r0, [r6] + lsls r1, r5, 1 + adds r0, 0x2 + adds r0, r1 + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_808D994 + adds r2, r0, 0 + ldr r0, [r6] + ldr r3, [r0, 0x4C] + movs r0, 0 + str r0, [sp] + movs r0, 0x8 + adds r1, r4, 0 + bl xxx_call_draw_string + adds r5, 0x1 +_0803CF98: + ldr r0, [r6] + movs r1, 0x32 + ldrsh r0, [r0, r1] + cmp r5, r0 + blt _0803CF68 + ldr r4, _0803CFBC + ldr r0, [r4] + ldr r0, [r0, 0x4C] + bl sub_80073E0 + ldr r1, [r4] + movs r0, 0x1 + strb r0, [r1, 0x16] + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0803CFBC: .4byte gUnknown_203B404 + thumb_func_end sub_803CEF0 + + thumb_func_start sub_803CFC0 +sub_803CFC0: + push {r4-r7,lr} + ldr r0, _0803D02C + ldr r0, [r0] + movs r2, 0x30 + ldrsh r1, [r0, r2] + lsls r1, 1 + adds r0, 0x2 + adds r0, r1 + movs r1, 0 + ldrsh r4, [r0, r1] + movs r0, 0x1 + bl sub_8008C54 + movs r0, 0x1 + bl sub_80073B8 + adds r0, r4, 0 + bl sub_808DDD0 + adds r5, r0, 0 + ldr r0, [r5, 0x4] + ldr r6, [r0, 0x4] + movs r4, 0 + movs r7, 0 +_0803CFF0: + adds r0, r4, 0 + adds r0, 0xE0 + ldr r1, [r5, 0x4] + adds r1, r7 + lsls r2, r4, 2 + ldr r1, [r1] + adds r1, r2 + bl SetBGPaletteBufferColorArray + adds r4, 0x1 + cmp r4, 0xF + ble _0803CFF0 + movs r0, 0x1 + adds r1, r6, 0 + movs r2, 0xE + bl sub_800836C + adds r0, r5, 0 + bl CloseFile + movs r0, 0x1 + bl sub_80073E0 + ldr r0, _0803D02C + ldr r1, [r0] + movs r0, 0x1 + strb r0, [r1, 0x16] + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0803D02C: .4byte gUnknown_203B404 + thumb_func_end sub_803CFC0 + + thumb_func_start sub_803D030 +sub_803D030: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + movs r0, 0 + mov r8, r0 + ldr r4, _0803D0D0 + ldr r0, [r4] + movs r1, 0 + ldrsh r0, [r0, r1] + movs r1, 0 + bl sub_808DC68 + mov r1, sp + strb r0, [r1] + ldr r0, [r4] + movs r2, 0 + ldrsh r0, [r0, r2] + movs r1, 0x1 + bl sub_808DC68 + mov r1, sp + strb r0, [r1, 0x1] + movs r7, 0 + add r6, sp, 0x4 + mov r5, sp +_0803D064: + ldr r0, _0803D0D4 + lsls r1, r7, 1 + adds r1, r0 + movs r0, 0 + ldrsh r4, [r1, r0] + adds r0, r4, 0 + movs r1, 0 + bl sub_808DC68 + strb r0, [r6] + adds r0, r4, 0 + movs r1, 0x1 + bl sub_808DC68 + adds r2, r0, 0 + strb r2, [r6, 0x1] + ldrb r1, [r6] + cmp r1, 0 + beq _0803D096 + ldrb r0, [r5] + cmp r1, r0 + beq _0803D0BC + ldrb r0, [r5, 0x1] + cmp r1, r0 + beq _0803D0BC +_0803D096: + lsls r0, r2, 24 + lsrs r1, r0, 24 + cmp r1, 0 + beq _0803D0AA + ldrb r2, [r5] + cmp r1, r2 + beq _0803D0BC + ldrb r0, [r5, 0x1] + cmp r1, r0 + beq _0803D0BC +_0803D0AA: + ldr r0, _0803D0D0 + ldr r0, [r0] + mov r2, r8 + lsls r1, r2, 1 + adds r0, 0x2 + adds r0, r1 + strh r4, [r0] + movs r0, 0x1 + add r8, r0 +_0803D0BC: + adds r7, 0x1 + cmp r7, 0x9 + ble _0803D064 + mov r0, r8 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0803D0D0: .4byte gUnknown_203B404 +_0803D0D4: .4byte gPartners + thumb_func_end sub_803D030 + + .align 2,0 |