diff options
-rw-r--r-- | asm/code_8009804.s | 6 | ||||
-rw-r--r-- | asm/code_8027C84.s | 2022 | ||||
-rw-r--r-- | asm/code_80428A0.s | 2 | ||||
-rw-r--r-- | asm/code_8095014.s | 1519 | ||||
-rw-r--r-- | asm/code_809747C.s | 1446 | ||||
-rw-r--r-- | asm/personality_test.s | 2030 | ||||
-rw-r--r-- | include/dungeon.h | 1 | ||||
-rwxr-xr-x | ld_script.txt | 5 | ||||
-rw-r--r-- | src/code_8027C84.c | 25 | ||||
-rw-r--r-- | src/code_809747C.c | 81 | ||||
-rw-r--r-- | src/personality_test.c | 25 |
11 files changed, 3591 insertions, 3571 deletions
diff --git a/asm/code_8009804.s b/asm/code_8009804.s index ba4860f..edd2bd1 100644 --- a/asm/code_8009804.s +++ b/asm/code_8009804.s @@ -5,8 +5,8 @@ .text - thumb_func_start sub_8009804 -sub_8009804: + thumb_func_start vram_related_8009804 +vram_related_8009804: push {lr} movs r1, 0xC0 lsls r1, 19 @@ -83,7 +83,7 @@ _08009890: .4byte 0x06010000 _08009894: .4byte 0x00001f7f _08009898: .4byte 0x05000200 _0800989C: .4byte 0x00a000a0 - thumb_func_end sub_8009804 + thumb_func_end vram_related_8009804 thumb_func_start sub_80098A0 sub_80098A0: diff --git a/asm/code_8027C84.s b/asm/code_8027C84.s index a099f3d..fa48de9 100644 --- a/asm/code_8027C84.s +++ b/asm/code_8027C84.s @@ -40592,2026 +40592,4 @@ _0803C18A: bx r1 thumb_func_end sub_803C110 - 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 diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index 85b2ec5..ab7f48a 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -2181,7 +2181,7 @@ _08043CD4: .4byte gUnknown_203B41C thumb_func_start sub_8043CD8 sub_8043CD8: push {lr} - bl sub_8009804 + bl vram_related_8009804 pop {r0} bx r0 thumb_func_end sub_8043CD8 diff --git a/asm/code_8095014.s b/asm/code_8095014.s index 297aafd..7a3d217 100644 --- a/asm/code_8095014.s +++ b/asm/code_8095014.s @@ -4817,1523 +4817,4 @@ _08097470: _08097478: .4byte gStoryMissionText thumb_func_end sub_8097418 - thumb_func_start sub_809747C -sub_809747C: - push {lr} - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - beq _08097494 - bl sub_80A270C - lsls r0, 24 - lsrs r0, 24 - bl GetDungeonName1 - b _08097496 -_08097494: - ldr r0, _0809749C -_08097496: - pop {r1} - bx r1 - .align 2, 0 -_0809749C: .4byte gDummyScenarioText - thumb_func_end sub_809747C - - thumb_func_start sub_80974A0 -sub_80974A0: - push {lr} - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xD - beq _080974B8 - bl sub_80A270C - lsls r0, 24 - lsrs r0, 24 - bl GetDungeonName1 - b _080974BA -_080974B8: - ldr r0, _080974C0 -_080974BA: - pop {r1} - bx r1 - .align 2, 0 -_080974C0: .4byte gDummyScenarioText - thumb_func_end sub_80974A0 - - thumb_func_start sub_80974C4 -sub_80974C4: - push {lr} - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080974D8 - ldr r0, _080974D4 - b _080974E0 - .align 2, 0 -_080974D4: .4byte gUnknown_8109CC0 -_080974D8: - lsls r0, 3 - ldr r1, _080974E4 - adds r0, r1 - ldr r0, [r0] -_080974E0: - pop {r1} - bx r1 - .align 2, 0 -_080974E4: .4byte gStoryMissionText - thumb_func_end sub_80974C4 - - thumb_func_start sub_80974E8 -sub_80974E8: - push {lr} - movs r0, 0 - movs r1, 0x2E - bl sub_80015C0 - movs r0, 0 - movs r1, 0x2F - bl sub_80015C0 - pop {r0} - bx r0 - thumb_func_end sub_80974E8 - - thumb_func_start nullsub_208 -nullsub_208: - bx lr - thumb_func_end nullsub_208 - - thumb_func_start sub_8097504 -sub_8097504: - push {lr} - lsls r0, 16 - asrs r0, 16 - adds r1, r0, 0 - cmp r0, 0x10 - bgt _08097568 - cmp r0, 0xE - bhi _08097580 - lsls r0, 2 - ldr r1, _08097520 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08097520: .4byte _08097524 - .align 2, 0 -_08097524: - .4byte _08097564 - .4byte _08097564 - .4byte _08097560 - .4byte _08097580 - .4byte _08097580 - .4byte _08097564 - .4byte _08097580 - .4byte _08097564 - .4byte _08097580 - .4byte _08097564 - .4byte _08097560 - .4byte _08097560 - .4byte _08097560 - .4byte _08097574 - .4byte _08097564 -_08097560: - movs r0, 0xE - b _08097576 -_08097564: - movs r0, 0xF - b _08097576 -_08097568: - cmp r1, 0x16 - bgt _08097584 - cmp r1, 0x16 - beq _08097584 - cmp r1, 0x15 - beq _08097584 -_08097574: - movs r0, 0x6 -_08097576: - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _08097584 -_08097580: - movs r0, 0x1 - b _08097586 -_08097584: - movs r0, 0 -_08097586: - pop {r1} - bx r1 - thumb_func_end sub_8097504 - - thumb_func_start sub_809758C -sub_809758C: - push {lr} - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0 - movs r1, 0x2E - bl sub_8001784 - cmp r0, 0 - beq _080975A2 - movs r0, 0x1 -_080975A2: - pop {r1} - bx r1 - thumb_func_end sub_809758C - - thumb_func_start sub_80975A8 -sub_80975A8: - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - lsls r3, 24 - lsrs r3, 24 - lsls r2, 16 - lsrs r2, 16 - movs r0, 0 - movs r1, 0x2E - bl sub_800199C - pop {r0} - bx r0 - thumb_func_end sub_80975A8 - - thumb_func_start sub_80975C4 -sub_80975C4: - push {lr} - lsls r0, 16 - asrs r0, 16 - bl sub_80A2728 - lsls r0, 24 - lsrs r0, 24 - bl GetDungeonName1 - pop {r1} - bx r1 - thumb_func_end sub_80975C4 - - thumb_func_start sub_80975DC -sub_80975DC: - push {lr} - lsls r0, 16 - ldr r1, _08097600 - adds r0, r1 - lsrs r0, 16 - cmp r0, 0x1 - bhi _08097610 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x3 - movs r1, 0xE - bl sub_8001D08 - lsls r0, 24 - cmp r0, 0 - beq _08097608 - ldr r0, _08097604 - b _08097612 - .align 2, 0 -_08097600: .4byte 0xffe90000 -_08097604: .4byte gMeetNinetalesText -_08097608: - ldr r0, _0809760C - b _08097612 - .align 2, 0 -_0809760C: .4byte gAvoidCaptureText -_08097610: - ldr r0, _08097618 -_08097612: - pop {r1} - bx r1 - .align 2, 0 -_08097618: .4byte gFinalScenarioText - thumb_func_end sub_80975DC - - thumb_func_start sub_809761C -sub_809761C: - push {r4,lr} - movs r4, 0 -_08097620: - lsls r0, r4, 16 - asrs r0, 16 - bl sub_809758C - lsls r0, 24 - cmp r0, 0 - bne _08097632 - movs r0, 0 - b _0809763A -_08097632: - adds r4, 0x1 - cmp r4, 0x10 - ble _08097620 - movs r0, 0x1 -_0809763A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809761C - - thumb_func_start sub_8097640 -sub_8097640: - push {lr} - movs r0, 0 - movs r1, 0x2E - movs r2, 0x1F - bl sub_8001784 - cmp r0, 0 - bne _0809766A - bl sub_809761C - lsls r0, 24 - cmp r0, 0 - beq _0809766A - movs r0, 0 - movs r1, 0x2E - movs r2, 0x1F - movs r3, 0x1 - bl sub_800199C - movs r0, 0x1 - b _0809766C -_0809766A: - movs r0, 0 -_0809766C: - pop {r1} - bx r1 - thumb_func_end sub_8097640 - - thumb_func_start sub_8097670 -sub_8097670: - ldr r1, _08097678 - ldr r0, _0809767C - str r0, [r1] - bx lr - .align 2, 0 -_08097678: .4byte gUnknown_203B494 -_0809767C: .4byte gUnknown_2039778 - thumb_func_end sub_8097670 - - thumb_func_start sub_8097680 -sub_8097680: - ldr r0, _08097684 - bx lr - .align 2, 0 -_08097684: .4byte gUnknown_2039778 - thumb_func_end sub_8097680 - - thumb_func_start sub_8097688 -sub_8097688: - ldr r3, _08097698 - ldr r2, [r3] - ldrb r1, [r0] - strb r1, [r2, 0x10] - ldr r1, [r3] - ldrb r0, [r0, 0x1] - strb r0, [r1, 0x11] - bx lr - .align 2, 0 -_08097698: .4byte gUnknown_203B494 - thumb_func_end sub_8097688 - - thumb_func_start sub_809769C -sub_809769C: - ldr r0, _080976A4 - ldr r0, [r0] - adds r0, 0x10 - bx lr - .align 2, 0 -_080976A4: .4byte gUnknown_203B494 - thumb_func_end sub_809769C - - thumb_func_start sub_80976A8 -sub_80976A8: - push {r4,lr} - ldr r3, _080976F4 - ldr r1, [r3] - movs r0, 0 - str r0, [r1] - strh r0, [r1, 0x14] - strh r0, [r1, 0x16] - strh r0, [r1, 0x18] - adds r2, r1, 0 - adds r2, 0xC0 - str r0, [r2] - str r0, [r1, 0x8] - str r0, [r1, 0xC] - movs r2, 0 - adds r4, r3, 0 - movs r3, 0 -_080976C8: - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, 0x1C - adds r0, r1 - str r3, [r0] - adds r2, 0x1 - cmp r2, 0xD - ble _080976C8 - movs r2, 0 - ldr r4, _080976F4 - movs r3, 0 -_080976DE: - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, 0x8C - adds r0, r1 - str r3, [r0] - adds r2, 0x1 - cmp r2, 0xC - ble _080976DE - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080976F4: .4byte gUnknown_203B494 - thumb_func_end sub_80976A8 - - thumb_func_start sub_80976F8 -sub_80976F8: - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809770C - ldr r2, [r1] - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_0809770C: .4byte gUnknown_203B494 - thumb_func_end sub_80976F8 - - thumb_func_start sub_8097710 -sub_8097710: - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0809772C - ldr r2, [r1] - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _08097730 - movs r0, 0 - b _08097732 - .align 2, 0 -_0809772C: .4byte gUnknown_203B494 -_08097730: - movs r0, 0x1 -_08097732: - pop {r1} - bx r1 - thumb_func_end sub_8097710 - - thumb_func_start sub_8097738 -sub_8097738: - lsls r0, 24 - ldr r1, _08097744 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_08097744: .4byte gAdventureLogText - thumb_func_end sub_8097738 - - thumb_func_start sub_8097748 -sub_8097748: - ldr r0, _08097754 - ldr r1, [r0] - movs r0, 0 - str r0, [r1, 0x4] - bx lr - .align 2, 0 -_08097754: .4byte gUnknown_203B494 - thumb_func_end sub_8097748 - - thumb_func_start sub_8097758 -sub_8097758: - push {lr} - ldr r0, _08097770 - ldr r1, [r0] - ldr r0, [r1, 0x4] - adds r0, 0x1 - str r0, [r1, 0x4] - ldr r2, _08097774 - cmp r0, r2 - ble _0809776C - str r2, [r1, 0x4] -_0809776C: - pop {r0} - bx r0 - .align 2, 0 -_08097770: .4byte gUnknown_203B494 -_08097774: .4byte 0x0001869f - thumb_func_end sub_8097758 - - thumb_func_start sub_8097778 -sub_8097778: - ldr r0, _08097780 - ldr r0, [r0] - ldr r0, [r0, 0x4] - bx lr - .align 2, 0 -_08097780: .4byte gUnknown_203B494 - thumb_func_end sub_8097778 - - thumb_func_start sub_8097784 -sub_8097784: - ldr r1, _0809778C - ldr r1, [r1] - str r0, [r1, 0x4] - bx lr - .align 2, 0 -_0809778C: .4byte gUnknown_203B494 - thumb_func_end sub_8097784 - - thumb_func_start sub_8097790 -sub_8097790: - push {lr} - ldr r0, _080977B0 - ldr r1, [r0] - ldr r0, [r1, 0x8] - adds r0, 0x1 - str r0, [r1, 0x8] - ldr r2, _080977B4 - cmp r0, r2 - ble _080977A4 - str r2, [r1, 0x8] -_080977A4: - movs r0, 0x8 - bl sub_80976F8 - pop {r0} - bx r0 - .align 2, 0 -_080977B0: .4byte gUnknown_203B494 -_080977B4: .4byte 0x0001869f - thumb_func_end sub_8097790 - - thumb_func_start sub_80977B8 -sub_80977B8: - ldr r0, _080977C0 - ldr r0, [r0] - ldr r0, [r0, 0x8] - bx lr - .align 2, 0 -_080977C0: .4byte gUnknown_203B494 - thumb_func_end sub_80977B8 - - thumb_func_start sub_80977C4 -sub_80977C4: - ldr r1, _080977CC - ldr r1, [r1] - str r0, [r1, 0x8] - bx lr - .align 2, 0 -_080977CC: .4byte gUnknown_203B494 - thumb_func_end sub_80977C4 - - thumb_func_start sub_80977D0 -sub_80977D0: - push {lr} - ldr r0, _080977F0 - ldr r1, [r0] - ldr r0, [r1, 0xC] - adds r0, 0x1 - str r0, [r1, 0xC] - ldr r2, _080977F4 - cmp r0, r2 - ble _080977E4 - str r2, [r1, 0xC] -_080977E4: - movs r0, 0x9 - bl sub_80976F8 - pop {r0} - bx r0 - .align 2, 0 -_080977F0: .4byte gUnknown_203B494 -_080977F4: .4byte 0x0001869f - thumb_func_end sub_80977D0 - - thumb_func_start sub_80977F8 -sub_80977F8: - ldr r0, _08097800 - ldr r0, [r0] - ldr r0, [r0, 0xC] - bx lr - .align 2, 0 -_08097800: .4byte gUnknown_203B494 - thumb_func_end sub_80977F8 - - thumb_func_start sub_8097804 -sub_8097804: - ldr r1, _0809780C - ldr r1, [r1] - str r0, [r1, 0xC] - bx lr - .align 2, 0 -_0809780C: .4byte gUnknown_203B494 - thumb_func_end sub_8097804 - - thumb_func_start sub_8097810 -sub_8097810: - push {lr} - ldr r0, _08097830 - ldr r2, [r0] - ldrh r3, [r2, 0x14] - movs r0, 0x14 - ldrsh r1, [r2, r0] - ldr r0, _08097834 - cmp r1, r0 - bgt _08097826 - adds r0, r3, 0x1 - strh r0, [r2, 0x14] -_08097826: - movs r0, 0xB - bl sub_80976F8 - pop {r0} - bx r0 - .align 2, 0 -_08097830: .4byte gUnknown_203B494 -_08097834: .4byte 0x0000270e - thumb_func_end sub_8097810 - - thumb_func_start sub_8097838 -sub_8097838: - ldr r0, _08097844 - ldr r0, [r0] - movs r1, 0x14 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08097844: .4byte gUnknown_203B494 - thumb_func_end sub_8097838 - - thumb_func_start sub_8097848 -sub_8097848: - push {lr} - ldr r0, _08097868 - ldr r2, [r0] - ldrh r3, [r2, 0x16] - movs r0, 0x16 - ldrsh r1, [r2, r0] - ldr r0, _0809786C - cmp r1, r0 - bgt _0809785E - adds r0, r3, 0x1 - strh r0, [r2, 0x16] -_0809785E: - movs r0, 0xA - bl sub_80976F8 - pop {r0} - bx r0 - .align 2, 0 -_08097868: .4byte gUnknown_203B494 -_0809786C: .4byte 0x0000270e - thumb_func_end sub_8097848 - - thumb_func_start sub_8097870 -sub_8097870: - ldr r0, _0809787C - ldr r0, [r0] - movs r1, 0x16 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0809787C: .4byte gUnknown_203B494 - thumb_func_end sub_8097870 - - thumb_func_start sub_8097880 -sub_8097880: - ldr r0, _0809788C - ldr r0, [r0] - movs r1, 0x18 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_0809788C: .4byte gUnknown_203B494 - thumb_func_end sub_8097880 - - thumb_func_start sub_8097890 -sub_8097890: - push {lr} - ldr r0, _080978B0 - ldr r0, [r0] - adds r2, r0, 0 - adds r2, 0xC0 - ldr r1, [r2] - ldr r0, _080978B4 - cmp r1, r0 - bgt _080978A6 - adds r0, r1, 0x1 - str r0, [r2] -_080978A6: - movs r0, 0xC - bl sub_80976F8 - pop {r0} - bx r0 - .align 2, 0 -_080978B0: .4byte gUnknown_203B494 -_080978B4: .4byte 0x0001869e - thumb_func_end sub_8097890 - - thumb_func_start sub_80978B8 -sub_80978B8: - ldr r0, _080978C4 - ldr r0, [r0] - adds r0, 0xC0 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_080978C4: .4byte gUnknown_203B494 - thumb_func_end sub_80978B8 - - thumb_func_start sub_80978C8 -sub_80978C8: - push {lr} - lsls r0, 16 - asrs r0, 16 - bl sub_808E858 - lsls r0, 16 - asrs r3, r0, 16 - ldr r0, _080978FC - ldr r2, [r0] - adds r0, r3, 0 - cmp r3, 0 - bge _080978E2 - adds r0, 0x1F -_080978E2: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x54 - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - pop {r0} - bx r0 - .align 2, 0 -_080978FC: .4byte gUnknown_203B494 - thumb_func_end sub_80978C8 - - thumb_func_start sub_8097900 -sub_8097900: - push {lr} - lsls r0, 16 - asrs r0, 16 - bl sub_808E858 - lsls r0, 16 - asrs r3, r0, 16 - ldr r0, _08097938 - ldr r2, [r0] - adds r0, r3, 0 - cmp r3, 0 - bge _0809791A - adds r0, 0x1F -_0809791A: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x1C - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - bne _0809793C - movs r0, 0 - b _0809793E - .align 2, 0 -_08097938: .4byte gUnknown_203B494 -_0809793C: - movs r0, 0x1 -_0809793E: - pop {r1} - bx r1 - thumb_func_end sub_8097900 - - thumb_func_start sub_8097944 -sub_8097944: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - movs r0, 0x1 - str r0, [sp] - movs r1, 0x1 - str r1, [sp, 0x4] - movs r0, 0xD - bl sub_8097710 - lsls r0, 24 - cmp r0, 0 - bne _08097974 - bl sub_8092614 - lsls r0, 24 - cmp r0, 0 - beq _08097974 - movs r0, 0xD - bl sub_80976F8 -_08097974: - movs r4, 0 - ldr r0, _08097B5C - mov r10, r0 - mov r8, r4 -_0809797C: - ldr r1, _08097B60 - ldr r0, [r1] - mov r1, r8 - adds r2, r1, r0 - ldrb r1, [r2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080979F6 - movs r0, 0x8 - ldrsh r3, [r2, r0] - mov r1, r10 - ldr r2, [r1] - adds r0, r3, 0 - cmp r3, 0 - bge _0809799E - adds r0, 0x1F -_0809799E: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x1C - adds r2, r1 - lsls r0, 5 - subs r0, r3, r0 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - ldr r0, _08097B60 - mov r9, r0 - mov r12, r8 - movs r7, 0x1 - movs r6, 0x2C - movs r5, 0x3 -_080979C0: - mov r1, r9 - ldr r0, [r1] - add r0, r12 - adds r3, r0, r6 - ldrb r1, [r3] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _080979EE - mov r0, r10 - ldr r2, [r0] - ldrh r3, [r3, 0x2] - lsrs r0, r3, 5 - lsls r0, 2 - adds r2, 0x8C - adds r2, r0 - movs r0, 0x1F - ands r3, r0 - adds r1, r7, 0 - lsls r1, r3 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] -_080979EE: - adds r6, 0x8 - subs r5, 0x1 - cmp r5, 0 - bge _080979C0 -_080979F6: - movs r1, 0x58 - add r8, r1 - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _0809797C - movs r4, 0 - ldr r1, _08097B64 -_08097A08: - cmp r4, 0 - bne _08097A0E - b _08097B80 -_08097A0E: - ldr r0, _08097B68 - cmp r4, r0 - bne _08097A16 - b _08097B80 -_08097A16: - adds r0, 0x1 - cmp r4, r0 - bne _08097A1E - b _08097B80 -_08097A1E: - adds r0, 0x1 - cmp r4, r0 - bne _08097A26 - b _08097B80 -_08097A26: - adds r0, 0x26 - cmp r4, r0 - bne _08097A2E - b _08097B80 -_08097A2E: - adds r0, 0x1 - cmp r4, r0 - bne _08097A36 - b _08097B80 -_08097A36: - adds r0, 0x1 - cmp r4, r0 - bne _08097A3E - b _08097B80 -_08097A3E: - adds r0, 0x1 - cmp r4, r0 - bne _08097A46 - b _08097B80 -_08097A46: - adds r0, 0x1 - cmp r4, r0 - bne _08097A4E - b _08097B80 -_08097A4E: - adds r0, 0x1 - cmp r4, r0 - bne _08097A56 - b _08097B80 -_08097A56: - cmp r4, r1 - bne _08097A5C - b _08097B80 -_08097A5C: - ldr r0, _08097B5C - ldr r5, [r0] - adds r0, r4, 0 - cmp r4, 0 - bge _08097A68 - adds r0, 0x1F -_08097A68: - asrs r0, 5 - lsls r3, r0, 2 - adds r1, r5, 0 - adds r1, 0x54 - adds r1, r3 - lsls r0, 5 - subs r0, r4, r0 - movs r2, 0x1 - lsls r2, r0 - ldr r0, [r1] - ands r0, r2 - cmp r0, 0 - bne _08097A86 - movs r0, 0 - str r0, [sp, 0x4] -_08097A86: - adds r0, r5, 0 - adds r0, 0x1C - adds r0, r3 - ldr r0, [r0] - ands r0, r2 - cmp r0, 0 - beq _08097B7C - cmp r4, 0x92 - bne _08097A9E - movs r0, 0x10 - bl sub_80976F8 -_08097A9E: - cmp r4, 0x91 - bne _08097AA8 - movs r0, 0x11 - bl sub_80976F8 -_08097AA8: - cmp r4, 0x90 - bne _08097AB2 - movs r0, 0x12 - bl sub_80976F8 -_08097AB2: - movs r0, 0xCF - lsls r0, 1 - cmp r4, r0 - bne _08097AC0 - movs r0, 0x13 - bl sub_80976F8 -_08097AC0: - ldr r0, _08097B6C - cmp r4, r0 - bne _08097ACC - movs r0, 0x14 - bl sub_80976F8 -_08097ACC: - movs r0, 0x86 - lsls r0, 1 - cmp r4, r0 - bne _08097ADA - movs r0, 0x15 - bl sub_80976F8 -_08097ADA: - movs r0, 0x87 - lsls r0, 1 - cmp r4, r0 - bne _08097AE8 - movs r0, 0x16 - bl sub_80976F8 -_08097AE8: - ldr r0, _08097B70 - cmp r4, r0 - bne _08097AF4 - movs r0, 0x17 - bl sub_80976F8 -_08097AF4: - movs r0, 0xCD - lsls r0, 1 - cmp r4, r0 - bne _08097B02 - movs r0, 0x18 - bl sub_80976F8 -_08097B02: - ldr r0, _08097B74 - cmp r4, r0 - bne _08097B0E - movs r0, 0x19 - bl sub_80976F8 -_08097B0E: - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - bne _08097B1C - movs r0, 0x1A - bl sub_80976F8 -_08097B1C: - movs r0, 0x89 - lsls r0, 1 - cmp r4, r0 - bne _08097B2A - movs r0, 0x1B - bl sub_80976F8 -_08097B2A: - movs r0, 0x8A - lsls r0, 1 - cmp r4, r0 - bne _08097B38 - movs r0, 0x1C - bl sub_80976F8 -_08097B38: - cmp r4, 0x97 - bne _08097B42 - movs r0, 0x1D - bl sub_80976F8 -_08097B42: - cmp r4, 0x96 - bne _08097B4C - movs r0, 0x1E - bl sub_80976F8 -_08097B4C: - ldr r0, _08097B78 - cmp r4, r0 - bne _08097B80 - movs r0, 0x1F - bl sub_80976F8 - b _08097B80 - .align 2, 0 -_08097B5C: .4byte gUnknown_203B494 -_08097B60: .4byte gUnknown_203B45C -_08097B64: .4byte 0x000001a7 -_08097B68: .4byte 0x00000179 -_08097B6C: .4byte 0x0000010d -_08097B70: .4byte 0x00000113 -_08097B74: .4byte 0x0000019b -_08097B78: .4byte 0x0000019d -_08097B7C: - movs r1, 0 - str r1, [sp] -_08097B80: - adds r4, 0x1 - ldr r1, _08097C0C - cmp r4, r1 - bgt _08097B8A - b _08097A08 -_08097B8A: - ldr r0, [sp] - cmp r0, 0 - beq _08097B96 - movs r0, 0xF - bl sub_80976F8 -_08097B96: - ldr r1, [sp, 0x4] - cmp r1, 0 - beq _08097BA2 - movs r0, 0xE - bl sub_80976F8 -_08097BA2: - movs r3, 0 - movs r4, 0 -_08097BA6: - cmp r4, 0 - beq _08097BE2 - ldr r0, _08097C10 - cmp r4, r0 - beq _08097BE2 - adds r0, 0x1 - cmp r4, r0 - beq _08097BE2 - adds r0, 0x1 - cmp r4, r0 - beq _08097BE2 - ldr r0, _08097C14 - ldr r2, [r0] - adds r0, r4, 0 - cmp r4, 0 - bge _08097BC8 - adds r0, 0x1F -_08097BC8: - asrs r0, 5 - lsls r1, r0, 2 - adds r2, 0x8C - adds r2, r1 - lsls r0, 5 - subs r0, r4, r0 - movs r1, 0x1 - lsls r1, r0 - ldr r0, [r2] - ands r0, r1 - cmp r0, 0 - beq _08097BE2 - adds r3, 0x1 -_08097BE2: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08097BA6 - cmp r3, 0 - beq _08097BFC - ldr r0, _08097C14 - ldr r0, [r0] - strh r3, [r0, 0x18] - movs r0, 0x7 - bl sub_80976F8 -_08097BFC: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08097C0C: .4byte 0x000001a7 -_08097C10: .4byte 0x00000163 -_08097C14: .4byte gUnknown_203B494 - thumb_func_end sub_8097944 - - thumb_func_start sub_8097C18 -sub_8097C18: - push {r4-r6,lr} - adds r5, r0, 0 - bl sub_8097944 - ldr r4, _08097CBC - ldr r1, [r4] - adds r1, 0x4 - adds r0, r5, 0 - movs r2, 0x11 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x8 - adds r0, r5, 0 - movs r2, 0x11 - bl sub_809488C - ldr r1, [r4] - adds r1, 0xC - adds r0, r5, 0 - movs r2, 0x11 - bl sub_809488C - ldr r1, [r4] - adds r0, r5, 0 - movs r2, 0x20 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x14 - adds r0, r5, 0 - movs r2, 0xE - bl sub_809488C - ldr r1, [r4] - adds r1, 0x16 - adds r0, r5, 0 - movs r2, 0xE - bl sub_809488C - ldr r1, [r4] - adds r1, 0x18 - adds r0, r5, 0 - movs r2, 0x9 - bl sub_809488C - ldr r1, [r4] - adds r1, 0xC0 - adds r0, r5, 0 - movs r2, 0x11 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x1C - movs r6, 0xE0 - lsls r6, 1 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x54 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0xD0 - lsls r2, 1 - adds r0, r5, 0 - bl sub_809488C - ldr r1, [r4] - adds r1, 0x10 - adds r0, r5, 0 - bl sub_80902F4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08097CBC: .4byte gUnknown_203B494 - thumb_func_end sub_8097C18 - - thumb_func_start sub_8097CC0 -sub_8097CC0: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, _08097D5C - ldr r1, [r4] - adds r1, 0x4 - movs r2, 0x11 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x8 - adds r0, r5, 0 - movs r2, 0x11 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0xC - adds r0, r5, 0 - movs r2, 0x11 - bl sub_8094924 - ldr r1, [r4] - adds r0, r5, 0 - movs r2, 0x20 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x14 - adds r0, r5, 0 - movs r2, 0xE - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x16 - adds r0, r5, 0 - movs r2, 0xE - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x18 - adds r0, r5, 0 - movs r2, 0x9 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0xC0 - adds r0, r5, 0 - movs r2, 0x11 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x1C - movs r6, 0xE0 - lsls r6, 1 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x54 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x8C - movs r2, 0xD0 - lsls r2, 1 - adds r0, r5, 0 - bl sub_8094924 - ldr r1, [r4] - adds r1, 0x10 - adds r0, r5, 0 - bl sub_8090314 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08097D5C: .4byte gUnknown_203B494 - thumb_func_end sub_8097CC0 - - thumb_func_start sub_8097D60 -sub_8097D60: - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - adds r2, r1, 0 - mov r0, sp - adds r1, r3, 0 - bl sub_809486C - mov r0, sp - bl sub_8094A44 - mov r0, sp - bl sub_8095044 - mov r0, sp - bl sub_8097C18 - mov r0, sp - bl sub_8098248 - mov r0, sp - bl nullsub_102 - ldr r0, [sp, 0x8] - add sp, 0x10 - pop {r1} - bx r1 - thumb_func_end sub_8097D60 - - thumb_func_start sub_8097D98 -sub_8097D98: - push {lr} - sub sp, 0x10 - adds r3, r0, 0 - adds r2, r1, 0 - mov r0, sp - adds r1, r3, 0 - bl sub_809485C - mov r0, sp - bl sub_8094B18 - mov r0, sp - bl sub_8095080 - mov r0, sp - bl sub_8097CC0 - mov r0, sp - bl sub_8098308 - mov r0, sp - bl nullsub_102 - ldr r0, [sp, 0x8] - add sp, 0x10 - pop {r1} - bx r1 - thumb_func_end sub_8097D98 - - thumb_func_start sub_8097DD0 -sub_8097DD0: - push {lr} - adds r2, r0, 0 - adds r3, r1, 0 - ldr r1, [r2] - ldr r0, [r3] - cmp r1, r0 - bne _08097DEA - ldr r1, [r2, 0x4] - ldr r0, [r3, 0x4] - cmp r1, r0 - bne _08097DEA - movs r0, 0x1 - b _08097DEC -_08097DEA: - movs r0, 0 -_08097DEC: - pop {r1} - bx r1 - thumb_func_end sub_8097DD0 - - thumb_func_start sub_8097DF0 -sub_8097DF0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1F8 - mov r8, r0 - str r1, [sp, 0x1F0] - movs r0, 0 - mov r9, r0 - movs r7, 0 - ldr r1, _08097E3C - ldr r0, [r1] - cmp r0, 0 - beq _08097E6E -_08097E0E: - movs r4, 0 - lsls r5, r7, 3 - lsls r1, r7, 2 - mov r10, r1 - adds r6, r7, 0x1 - ldr r2, _08097E3C - adds r3, r5, r2 - add r1, sp, 0x18C -_08097E1E: - ldr r0, [r3] - adds r0, r4 - ldrb r2, [r0] - cmp r2, 0x23 - bne _08097E40 - ldrb r0, [r0, 0x1] - cmp r0, 0x72 - bne _08097E40 - strb r2, [r1] - adds r1, 0x1 - strb r0, [r1] - adds r1, 0x1 - movs r0, 0 - strb r0, [r1] - b _08097E50 - .align 2, 0 -_08097E3C: .4byte gStatusDescriptions -_08097E40: - ldr r0, [r3] - adds r0, r4 - ldrb r0, [r0] - strb r0, [r1] - adds r1, 0x1 - adds r4, 0x1 - cmp r4, 0x63 - ble _08097E1E -_08097E50: - add r0, sp, 0x18C - bl strlen - mov r1, sp - add r1, r10 - str r0, [r1] - adds r7, r6, 0 - cmp r6, 0x62 - bgt _08097E6E - lsls r0, r6, 3 - ldr r1, _08097EB4 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _08097E0E -_08097E6E: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0 - beq _08097F2C - ldr r3, _08097EB4 -_08097E78: - cmp r0, 0x23 - bne _08097F08 - movs r7, 0 - adds r1, r3, 0 - ldr r0, [r1] - cmp r0, 0 - beq _08097F20 - mov r2, r9 - lsls r0, r2, 2 - ldr r2, [sp, 0x1F0] - adds r0, r2 - mov r10, r0 -_08097E90: - lsls r4, r7, 3 - adds r0, r4, r1 - ldr r0, [r0] - lsls r1, r7, 2 - add r1, sp - ldr r2, [r1] - mov r1, r8 - str r3, [sp, 0x1F4] - bl sub_800B2D4 - lsls r0, 24 - adds r5, r4, 0 - adds r6, r7, 0x1 - ldr r3, [sp, 0x1F4] - cmp r0, 0 - bne _08097EF0 - movs r4, 0 - b _08097EBA - .align 2, 0 -_08097EB4: .4byte gStatusDescriptions -_08097EB8: - adds r4, 0x1 -_08097EBA: - cmp r4, r9 - bge _08097ED6 - adds r0, r5, r3 - lsls r1, r4, 2 - ldr r2, [sp, 0x1F0] - adds r1, r2 - ldr r1, [r1] - str r3, [sp, 0x1F4] - bl sub_8097DD0 - lsls r0, 24 - ldr r3, [sp, 0x1F4] - cmp r0, 0 - beq _08097EB8 -_08097ED6: - cmp r4, r9 - bne _08097EF0 - mov r0, r9 - cmp r0, 0x3 - bgt _08097EF0 - adds r0, r5, r3 - mov r1, r10 - adds r1, 0x4 - mov r10, r1 - subs r1, 0x4 - stm r1!, {r0} - movs r2, 0x1 - add r9, r2 -_08097EF0: - adds r7, r6, 0 - cmp r6, 0x62 - bgt _08097F20 - ldr r1, _08097F04 - lsls r0, r6, 3 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _08097E90 - b _08097F20 - .align 2, 0 -_08097F04: .4byte gStatusDescriptions -_08097F08: - mov r0, r8 - ldrb r1, [r0] - adds r0, r1, 0 - adds r0, 0x7F - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bls _08097F1C - cmp r1, 0x87 - bne _08097F20 -_08097F1C: - movs r1, 0x1 - add r8, r1 -_08097F20: - movs r2, 0x1 - add r8, r2 - mov r1, r8 - ldrb r0, [r1] - cmp r0, 0 - bne _08097E78 -_08097F2C: - mov r0, r9 - add sp, 0x1F8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8097DF0 - .align 2,0 diff --git a/asm/code_809747C.s b/asm/code_809747C.s new file mode 100644 index 0000000..17e2dab --- /dev/null +++ b/asm/code_809747C.s @@ -0,0 +1,1446 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + + thumb_func_start sub_8097504 +sub_8097504: + push {lr} + lsls r0, 16 + asrs r0, 16 + adds r1, r0, 0 + cmp r0, 0x10 + bgt _08097568 + cmp r0, 0xE + bhi _08097580 + lsls r0, 2 + ldr r1, _08097520 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08097520: .4byte _08097524 + .align 2, 0 +_08097524: + .4byte _08097564 + .4byte _08097564 + .4byte _08097560 + .4byte _08097580 + .4byte _08097580 + .4byte _08097564 + .4byte _08097580 + .4byte _08097564 + .4byte _08097580 + .4byte _08097564 + .4byte _08097560 + .4byte _08097560 + .4byte _08097560 + .4byte _08097574 + .4byte _08097564 +_08097560: + movs r0, 0xE + b _08097576 +_08097564: + movs r0, 0xF + b _08097576 +_08097568: + cmp r1, 0x16 + bgt _08097584 + cmp r1, 0x16 + beq _08097584 + cmp r1, 0x15 + beq _08097584 +_08097574: + movs r0, 0x6 +_08097576: + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _08097584 +_08097580: + movs r0, 0x1 + b _08097586 +_08097584: + movs r0, 0 +_08097586: + pop {r1} + bx r1 + thumb_func_end sub_8097504 + + thumb_func_start sub_809758C +sub_809758C: + push {lr} + adds r2, r0, 0 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0 + movs r1, 0x2E + bl sub_8001784 + cmp r0, 0 + beq _080975A2 + movs r0, 0x1 +_080975A2: + pop {r1} + bx r1 + thumb_func_end sub_809758C + + thumb_func_start sub_80975A8 +sub_80975A8: + push {lr} + adds r2, r0, 0 + adds r3, r1, 0 + lsls r3, 24 + lsrs r3, 24 + lsls r2, 16 + lsrs r2, 16 + movs r0, 0 + movs r1, 0x2E + bl sub_800199C + pop {r0} + bx r0 + thumb_func_end sub_80975A8 + + thumb_func_start sub_80975C4 +sub_80975C4: + push {lr} + lsls r0, 16 + asrs r0, 16 + bl sub_80A2728 + lsls r0, 24 + lsrs r0, 24 + bl GetDungeonName1 + pop {r1} + bx r1 + thumb_func_end sub_80975C4 + + thumb_func_start sub_80975DC +sub_80975DC: + push {lr} + lsls r0, 16 + ldr r1, _08097600 + adds r0, r1 + lsrs r0, 16 + cmp r0, 0x1 + bhi _08097610 + movs r2, 0x1 + negs r2, r2 + movs r0, 0x3 + movs r1, 0xE + bl sub_8001D08 + lsls r0, 24 + cmp r0, 0 + beq _08097608 + ldr r0, _08097604 + b _08097612 + .align 2, 0 +_08097600: .4byte 0xffe90000 +_08097604: .4byte gMeetNinetalesText +_08097608: + ldr r0, _0809760C + b _08097612 + .align 2, 0 +_0809760C: .4byte gAvoidCaptureText +_08097610: + ldr r0, _08097618 +_08097612: + pop {r1} + bx r1 + .align 2, 0 +_08097618: .4byte gFinalScenarioText + thumb_func_end sub_80975DC + + thumb_func_start sub_809761C +sub_809761C: + push {r4,lr} + movs r4, 0 +_08097620: + lsls r0, r4, 16 + asrs r0, 16 + bl sub_809758C + lsls r0, 24 + cmp r0, 0 + bne _08097632 + movs r0, 0 + b _0809763A +_08097632: + adds r4, 0x1 + cmp r4, 0x10 + ble _08097620 + movs r0, 0x1 +_0809763A: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_809761C + + thumb_func_start sub_8097640 +sub_8097640: + push {lr} + movs r0, 0 + movs r1, 0x2E + movs r2, 0x1F + bl sub_8001784 + cmp r0, 0 + bne _0809766A + bl sub_809761C + lsls r0, 24 + cmp r0, 0 + beq _0809766A + movs r0, 0 + movs r1, 0x2E + movs r2, 0x1F + movs r3, 0x1 + bl sub_800199C + movs r0, 0x1 + b _0809766C +_0809766A: + movs r0, 0 +_0809766C: + pop {r1} + bx r1 + thumb_func_end sub_8097640 + + thumb_func_start sub_8097670 +sub_8097670: + ldr r1, _08097678 + ldr r0, _0809767C + str r0, [r1] + bx lr + .align 2, 0 +_08097678: .4byte gUnknown_203B494 +_0809767C: .4byte gUnknown_2039778 + thumb_func_end sub_8097670 + + thumb_func_start sub_8097680 +sub_8097680: + ldr r0, _08097684 + bx lr + .align 2, 0 +_08097684: .4byte gUnknown_2039778 + thumb_func_end sub_8097680 + + thumb_func_start sub_8097688 +sub_8097688: + ldr r3, _08097698 + ldr r2, [r3] + ldrb r1, [r0] + strb r1, [r2, 0x10] + ldr r1, [r3] + ldrb r0, [r0, 0x1] + strb r0, [r1, 0x11] + bx lr + .align 2, 0 +_08097698: .4byte gUnknown_203B494 + thumb_func_end sub_8097688 + + thumb_func_start sub_809769C +sub_809769C: + ldr r0, _080976A4 + ldr r0, [r0] + adds r0, 0x10 + bx lr + .align 2, 0 +_080976A4: .4byte gUnknown_203B494 + thumb_func_end sub_809769C + + thumb_func_start sub_80976A8 +sub_80976A8: + push {r4,lr} + ldr r3, _080976F4 + ldr r1, [r3] + movs r0, 0 + str r0, [r1] + strh r0, [r1, 0x14] + strh r0, [r1, 0x16] + strh r0, [r1, 0x18] + adds r2, r1, 0 + adds r2, 0xC0 + str r0, [r2] + str r0, [r1, 0x8] + str r0, [r1, 0xC] + movs r2, 0 + adds r4, r3, 0 + movs r3, 0 +_080976C8: + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, 0x1C + adds r0, r1 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0xD + ble _080976C8 + movs r2, 0 + ldr r4, _080976F4 + movs r3, 0 +_080976DE: + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, 0x8C + adds r0, r1 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0xC + ble _080976DE + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080976F4: .4byte gUnknown_203B494 + thumb_func_end sub_80976A8 + + thumb_func_start sub_80976F8 +sub_80976F8: + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809770C + ldr r2, [r1] + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + bx lr + .align 2, 0 +_0809770C: .4byte gUnknown_203B494 + thumb_func_end sub_80976F8 + + thumb_func_start sub_8097710 +sub_8097710: + push {lr} + lsls r0, 24 + lsrs r0, 24 + ldr r1, _0809772C + ldr r2, [r1] + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _08097730 + movs r0, 0 + b _08097732 + .align 2, 0 +_0809772C: .4byte gUnknown_203B494 +_08097730: + movs r0, 0x1 +_08097732: + pop {r1} + bx r1 + thumb_func_end sub_8097710 + + thumb_func_start sub_8097738 +sub_8097738: + lsls r0, 24 + ldr r1, _08097744 + lsrs r0, 22 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_08097744: .4byte gAdventureLogText + thumb_func_end sub_8097738 + + thumb_func_start sub_8097748 +sub_8097748: + ldr r0, _08097754 + ldr r1, [r0] + movs r0, 0 + str r0, [r1, 0x4] + bx lr + .align 2, 0 +_08097754: .4byte gUnknown_203B494 + thumb_func_end sub_8097748 + + thumb_func_start sub_8097758 +sub_8097758: + push {lr} + ldr r0, _08097770 + ldr r1, [r0] + ldr r0, [r1, 0x4] + adds r0, 0x1 + str r0, [r1, 0x4] + ldr r2, _08097774 + cmp r0, r2 + ble _0809776C + str r2, [r1, 0x4] +_0809776C: + pop {r0} + bx r0 + .align 2, 0 +_08097770: .4byte gUnknown_203B494 +_08097774: .4byte 0x0001869f + thumb_func_end sub_8097758 + + thumb_func_start sub_8097778 +sub_8097778: + ldr r0, _08097780 + ldr r0, [r0] + ldr r0, [r0, 0x4] + bx lr + .align 2, 0 +_08097780: .4byte gUnknown_203B494 + thumb_func_end sub_8097778 + + thumb_func_start sub_8097784 +sub_8097784: + ldr r1, _0809778C + ldr r1, [r1] + str r0, [r1, 0x4] + bx lr + .align 2, 0 +_0809778C: .4byte gUnknown_203B494 + thumb_func_end sub_8097784 + + thumb_func_start sub_8097790 +sub_8097790: + push {lr} + ldr r0, _080977B0 + ldr r1, [r0] + ldr r0, [r1, 0x8] + adds r0, 0x1 + str r0, [r1, 0x8] + ldr r2, _080977B4 + cmp r0, r2 + ble _080977A4 + str r2, [r1, 0x8] +_080977A4: + movs r0, 0x8 + bl sub_80976F8 + pop {r0} + bx r0 + .align 2, 0 +_080977B0: .4byte gUnknown_203B494 +_080977B4: .4byte 0x0001869f + thumb_func_end sub_8097790 + + thumb_func_start sub_80977B8 +sub_80977B8: + ldr r0, _080977C0 + ldr r0, [r0] + ldr r0, [r0, 0x8] + bx lr + .align 2, 0 +_080977C0: .4byte gUnknown_203B494 + thumb_func_end sub_80977B8 + + thumb_func_start sub_80977C4 +sub_80977C4: + ldr r1, _080977CC + ldr r1, [r1] + str r0, [r1, 0x8] + bx lr + .align 2, 0 +_080977CC: .4byte gUnknown_203B494 + thumb_func_end sub_80977C4 + + thumb_func_start sub_80977D0 +sub_80977D0: + push {lr} + ldr r0, _080977F0 + ldr r1, [r0] + ldr r0, [r1, 0xC] + adds r0, 0x1 + str r0, [r1, 0xC] + ldr r2, _080977F4 + cmp r0, r2 + ble _080977E4 + str r2, [r1, 0xC] +_080977E4: + movs r0, 0x9 + bl sub_80976F8 + pop {r0} + bx r0 + .align 2, 0 +_080977F0: .4byte gUnknown_203B494 +_080977F4: .4byte 0x0001869f + thumb_func_end sub_80977D0 + + thumb_func_start sub_80977F8 +sub_80977F8: + ldr r0, _08097800 + ldr r0, [r0] + ldr r0, [r0, 0xC] + bx lr + .align 2, 0 +_08097800: .4byte gUnknown_203B494 + thumb_func_end sub_80977F8 + + thumb_func_start sub_8097804 +sub_8097804: + ldr r1, _0809780C + ldr r1, [r1] + str r0, [r1, 0xC] + bx lr + .align 2, 0 +_0809780C: .4byte gUnknown_203B494 + thumb_func_end sub_8097804 + + thumb_func_start sub_8097810 +sub_8097810: + push {lr} + ldr r0, _08097830 + ldr r2, [r0] + ldrh r3, [r2, 0x14] + movs r0, 0x14 + ldrsh r1, [r2, r0] + ldr r0, _08097834 + cmp r1, r0 + bgt _08097826 + adds r0, r3, 0x1 + strh r0, [r2, 0x14] +_08097826: + movs r0, 0xB + bl sub_80976F8 + pop {r0} + bx r0 + .align 2, 0 +_08097830: .4byte gUnknown_203B494 +_08097834: .4byte 0x0000270e + thumb_func_end sub_8097810 + + thumb_func_start sub_8097838 +sub_8097838: + ldr r0, _08097844 + ldr r0, [r0] + movs r1, 0x14 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_08097844: .4byte gUnknown_203B494 + thumb_func_end sub_8097838 + + thumb_func_start sub_8097848 +sub_8097848: + push {lr} + ldr r0, _08097868 + ldr r2, [r0] + ldrh r3, [r2, 0x16] + movs r0, 0x16 + ldrsh r1, [r2, r0] + ldr r0, _0809786C + cmp r1, r0 + bgt _0809785E + adds r0, r3, 0x1 + strh r0, [r2, 0x16] +_0809785E: + movs r0, 0xA + bl sub_80976F8 + pop {r0} + bx r0 + .align 2, 0 +_08097868: .4byte gUnknown_203B494 +_0809786C: .4byte 0x0000270e + thumb_func_end sub_8097848 + + thumb_func_start sub_8097870 +sub_8097870: + ldr r0, _0809787C + ldr r0, [r0] + movs r1, 0x16 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0809787C: .4byte gUnknown_203B494 + thumb_func_end sub_8097870 + + thumb_func_start sub_8097880 +sub_8097880: + ldr r0, _0809788C + ldr r0, [r0] + movs r1, 0x18 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_0809788C: .4byte gUnknown_203B494 + thumb_func_end sub_8097880 + + thumb_func_start sub_8097890 +sub_8097890: + push {lr} + ldr r0, _080978B0 + ldr r0, [r0] + adds r2, r0, 0 + adds r2, 0xC0 + ldr r1, [r2] + ldr r0, _080978B4 + cmp r1, r0 + bgt _080978A6 + adds r0, r1, 0x1 + str r0, [r2] +_080978A6: + movs r0, 0xC + bl sub_80976F8 + pop {r0} + bx r0 + .align 2, 0 +_080978B0: .4byte gUnknown_203B494 +_080978B4: .4byte 0x0001869e + thumb_func_end sub_8097890 + + thumb_func_start sub_80978B8 +sub_80978B8: + ldr r0, _080978C4 + ldr r0, [r0] + adds r0, 0xC0 + movs r1, 0 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_080978C4: .4byte gUnknown_203B494 + thumb_func_end sub_80978B8 + + thumb_func_start sub_80978C8 +sub_80978C8: + push {lr} + lsls r0, 16 + asrs r0, 16 + bl sub_808E858 + lsls r0, 16 + asrs r3, r0, 16 + ldr r0, _080978FC + ldr r2, [r0] + adds r0, r3, 0 + cmp r3, 0 + bge _080978E2 + adds r0, 0x1F +_080978E2: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x54 + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + pop {r0} + bx r0 + .align 2, 0 +_080978FC: .4byte gUnknown_203B494 + thumb_func_end sub_80978C8 + + thumb_func_start sub_8097900 +sub_8097900: + push {lr} + lsls r0, 16 + asrs r0, 16 + bl sub_808E858 + lsls r0, 16 + asrs r3, r0, 16 + ldr r0, _08097938 + ldr r2, [r0] + adds r0, r3, 0 + cmp r3, 0 + bge _0809791A + adds r0, 0x1F +_0809791A: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x1C + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + bne _0809793C + movs r0, 0 + b _0809793E + .align 2, 0 +_08097938: .4byte gUnknown_203B494 +_0809793C: + movs r0, 0x1 +_0809793E: + pop {r1} + bx r1 + thumb_func_end sub_8097900 + + thumb_func_start sub_8097944 +sub_8097944: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8 + movs r0, 0x1 + str r0, [sp] + movs r1, 0x1 + str r1, [sp, 0x4] + movs r0, 0xD + bl sub_8097710 + lsls r0, 24 + cmp r0, 0 + bne _08097974 + bl sub_8092614 + lsls r0, 24 + cmp r0, 0 + beq _08097974 + movs r0, 0xD + bl sub_80976F8 +_08097974: + movs r4, 0 + ldr r0, _08097B5C + mov r10, r0 + mov r8, r4 +_0809797C: + ldr r1, _08097B60 + ldr r0, [r1] + mov r1, r8 + adds r2, r1, r0 + ldrb r1, [r2] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080979F6 + movs r0, 0x8 + ldrsh r3, [r2, r0] + mov r1, r10 + ldr r2, [r1] + adds r0, r3, 0 + cmp r3, 0 + bge _0809799E + adds r0, 0x1F +_0809799E: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x1C + adds r2, r1 + lsls r0, 5 + subs r0, r3, r0 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] + ldr r0, _08097B60 + mov r9, r0 + mov r12, r8 + movs r7, 0x1 + movs r6, 0x2C + movs r5, 0x3 +_080979C0: + mov r1, r9 + ldr r0, [r1] + add r0, r12 + adds r3, r0, r6 + ldrb r1, [r3] + adds r0, r7, 0 + ands r0, r1 + cmp r0, 0 + beq _080979EE + mov r0, r10 + ldr r2, [r0] + ldrh r3, [r3, 0x2] + lsrs r0, r3, 5 + lsls r0, 2 + adds r2, 0x8C + adds r2, r0 + movs r0, 0x1F + ands r3, r0 + adds r1, r7, 0 + lsls r1, r3 + ldr r0, [r2] + orrs r0, r1 + str r0, [r2] +_080979EE: + adds r6, 0x8 + subs r5, 0x1 + cmp r5, 0 + bge _080979C0 +_080979F6: + movs r1, 0x58 + add r8, r1 + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _0809797C + movs r4, 0 + ldr r1, _08097B64 +_08097A08: + cmp r4, 0 + bne _08097A0E + b _08097B80 +_08097A0E: + ldr r0, _08097B68 + cmp r4, r0 + bne _08097A16 + b _08097B80 +_08097A16: + adds r0, 0x1 + cmp r4, r0 + bne _08097A1E + b _08097B80 +_08097A1E: + adds r0, 0x1 + cmp r4, r0 + bne _08097A26 + b _08097B80 +_08097A26: + adds r0, 0x26 + cmp r4, r0 + bne _08097A2E + b _08097B80 +_08097A2E: + adds r0, 0x1 + cmp r4, r0 + bne _08097A36 + b _08097B80 +_08097A36: + adds r0, 0x1 + cmp r4, r0 + bne _08097A3E + b _08097B80 +_08097A3E: + adds r0, 0x1 + cmp r4, r0 + bne _08097A46 + b _08097B80 +_08097A46: + adds r0, 0x1 + cmp r4, r0 + bne _08097A4E + b _08097B80 +_08097A4E: + adds r0, 0x1 + cmp r4, r0 + bne _08097A56 + b _08097B80 +_08097A56: + cmp r4, r1 + bne _08097A5C + b _08097B80 +_08097A5C: + ldr r0, _08097B5C + ldr r5, [r0] + adds r0, r4, 0 + cmp r4, 0 + bge _08097A68 + adds r0, 0x1F +_08097A68: + asrs r0, 5 + lsls r3, r0, 2 + adds r1, r5, 0 + adds r1, 0x54 + adds r1, r3 + lsls r0, 5 + subs r0, r4, r0 + movs r2, 0x1 + lsls r2, r0 + ldr r0, [r1] + ands r0, r2 + cmp r0, 0 + bne _08097A86 + movs r0, 0 + str r0, [sp, 0x4] +_08097A86: + adds r0, r5, 0 + adds r0, 0x1C + adds r0, r3 + ldr r0, [r0] + ands r0, r2 + cmp r0, 0 + beq _08097B7C + cmp r4, 0x92 + bne _08097A9E + movs r0, 0x10 + bl sub_80976F8 +_08097A9E: + cmp r4, 0x91 + bne _08097AA8 + movs r0, 0x11 + bl sub_80976F8 +_08097AA8: + cmp r4, 0x90 + bne _08097AB2 + movs r0, 0x12 + bl sub_80976F8 +_08097AB2: + movs r0, 0xCF + lsls r0, 1 + cmp r4, r0 + bne _08097AC0 + movs r0, 0x13 + bl sub_80976F8 +_08097AC0: + ldr r0, _08097B6C + cmp r4, r0 + bne _08097ACC + movs r0, 0x14 + bl sub_80976F8 +_08097ACC: + movs r0, 0x86 + lsls r0, 1 + cmp r4, r0 + bne _08097ADA + movs r0, 0x15 + bl sub_80976F8 +_08097ADA: + movs r0, 0x87 + lsls r0, 1 + cmp r4, r0 + bne _08097AE8 + movs r0, 0x16 + bl sub_80976F8 +_08097AE8: + ldr r0, _08097B70 + cmp r4, r0 + bne _08097AF4 + movs r0, 0x17 + bl sub_80976F8 +_08097AF4: + movs r0, 0xCD + lsls r0, 1 + cmp r4, r0 + bne _08097B02 + movs r0, 0x18 + bl sub_80976F8 +_08097B02: + ldr r0, _08097B74 + cmp r4, r0 + bne _08097B0E + movs r0, 0x19 + bl sub_80976F8 +_08097B0E: + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + bne _08097B1C + movs r0, 0x1A + bl sub_80976F8 +_08097B1C: + movs r0, 0x89 + lsls r0, 1 + cmp r4, r0 + bne _08097B2A + movs r0, 0x1B + bl sub_80976F8 +_08097B2A: + movs r0, 0x8A + lsls r0, 1 + cmp r4, r0 + bne _08097B38 + movs r0, 0x1C + bl sub_80976F8 +_08097B38: + cmp r4, 0x97 + bne _08097B42 + movs r0, 0x1D + bl sub_80976F8 +_08097B42: + cmp r4, 0x96 + bne _08097B4C + movs r0, 0x1E + bl sub_80976F8 +_08097B4C: + ldr r0, _08097B78 + cmp r4, r0 + bne _08097B80 + movs r0, 0x1F + bl sub_80976F8 + b _08097B80 + .align 2, 0 +_08097B5C: .4byte gUnknown_203B494 +_08097B60: .4byte gUnknown_203B45C +_08097B64: .4byte 0x000001a7 +_08097B68: .4byte 0x00000179 +_08097B6C: .4byte 0x0000010d +_08097B70: .4byte 0x00000113 +_08097B74: .4byte 0x0000019b +_08097B78: .4byte 0x0000019d +_08097B7C: + movs r1, 0 + str r1, [sp] +_08097B80: + adds r4, 0x1 + ldr r1, _08097C0C + cmp r4, r1 + bgt _08097B8A + b _08097A08 +_08097B8A: + ldr r0, [sp] + cmp r0, 0 + beq _08097B96 + movs r0, 0xF + bl sub_80976F8 +_08097B96: + ldr r1, [sp, 0x4] + cmp r1, 0 + beq _08097BA2 + movs r0, 0xE + bl sub_80976F8 +_08097BA2: + movs r3, 0 + movs r4, 0 +_08097BA6: + cmp r4, 0 + beq _08097BE2 + ldr r0, _08097C10 + cmp r4, r0 + beq _08097BE2 + adds r0, 0x1 + cmp r4, r0 + beq _08097BE2 + adds r0, 0x1 + cmp r4, r0 + beq _08097BE2 + ldr r0, _08097C14 + ldr r2, [r0] + adds r0, r4, 0 + cmp r4, 0 + bge _08097BC8 + adds r0, 0x1F +_08097BC8: + asrs r0, 5 + lsls r1, r0, 2 + adds r2, 0x8C + adds r2, r1 + lsls r0, 5 + subs r0, r4, r0 + movs r1, 0x1 + lsls r1, r0 + ldr r0, [r2] + ands r0, r1 + cmp r0, 0 + beq _08097BE2 + adds r3, 0x1 +_08097BE2: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08097BA6 + cmp r3, 0 + beq _08097BFC + ldr r0, _08097C14 + ldr r0, [r0] + strh r3, [r0, 0x18] + movs r0, 0x7 + bl sub_80976F8 +_08097BFC: + add sp, 0x8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08097C0C: .4byte 0x000001a7 +_08097C10: .4byte 0x00000163 +_08097C14: .4byte gUnknown_203B494 + thumb_func_end sub_8097944 + + thumb_func_start sub_8097C18 +sub_8097C18: + push {r4-r6,lr} + adds r5, r0, 0 + bl sub_8097944 + ldr r4, _08097CBC + ldr r1, [r4] + adds r1, 0x4 + adds r0, r5, 0 + movs r2, 0x11 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x8 + adds r0, r5, 0 + movs r2, 0x11 + bl sub_809488C + ldr r1, [r4] + adds r1, 0xC + adds r0, r5, 0 + movs r2, 0x11 + bl sub_809488C + ldr r1, [r4] + adds r0, r5, 0 + movs r2, 0x20 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x14 + adds r0, r5, 0 + movs r2, 0xE + bl sub_809488C + ldr r1, [r4] + adds r1, 0x16 + adds r0, r5, 0 + movs r2, 0xE + bl sub_809488C + ldr r1, [r4] + adds r1, 0x18 + adds r0, r5, 0 + movs r2, 0x9 + bl sub_809488C + ldr r1, [r4] + adds r1, 0xC0 + adds r0, r5, 0 + movs r2, 0x11 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x1C + movs r6, 0xE0 + lsls r6, 1 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x54 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x8C + movs r2, 0xD0 + lsls r2, 1 + adds r0, r5, 0 + bl sub_809488C + ldr r1, [r4] + adds r1, 0x10 + adds r0, r5, 0 + bl sub_80902F4 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08097CBC: .4byte gUnknown_203B494 + thumb_func_end sub_8097C18 + + thumb_func_start sub_8097CC0 +sub_8097CC0: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, _08097D5C + ldr r1, [r4] + adds r1, 0x4 + movs r2, 0x11 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x8 + adds r0, r5, 0 + movs r2, 0x11 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0xC + adds r0, r5, 0 + movs r2, 0x11 + bl sub_8094924 + ldr r1, [r4] + adds r0, r5, 0 + movs r2, 0x20 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x14 + adds r0, r5, 0 + movs r2, 0xE + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x16 + adds r0, r5, 0 + movs r2, 0xE + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x18 + adds r0, r5, 0 + movs r2, 0x9 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0xC0 + adds r0, r5, 0 + movs r2, 0x11 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x1C + movs r6, 0xE0 + lsls r6, 1 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x54 + adds r0, r5, 0 + adds r2, r6, 0 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x8C + movs r2, 0xD0 + lsls r2, 1 + adds r0, r5, 0 + bl sub_8094924 + ldr r1, [r4] + adds r1, 0x10 + adds r0, r5, 0 + bl sub_8090314 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08097D5C: .4byte gUnknown_203B494 + thumb_func_end sub_8097CC0 + + thumb_func_start sub_8097D60 +sub_8097D60: + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + adds r2, r1, 0 + mov r0, sp + adds r1, r3, 0 + bl sub_809486C + mov r0, sp + bl sub_8094A44 + mov r0, sp + bl sub_8095044 + mov r0, sp + bl sub_8097C18 + mov r0, sp + bl sub_8098248 + mov r0, sp + bl nullsub_102 + ldr r0, [sp, 0x8] + add sp, 0x10 + pop {r1} + bx r1 + thumb_func_end sub_8097D60 + + thumb_func_start sub_8097D98 +sub_8097D98: + push {lr} + sub sp, 0x10 + adds r3, r0, 0 + adds r2, r1, 0 + mov r0, sp + adds r1, r3, 0 + bl sub_809485C + mov r0, sp + bl sub_8094B18 + mov r0, sp + bl sub_8095080 + mov r0, sp + bl sub_8097CC0 + mov r0, sp + bl sub_8098308 + mov r0, sp + bl nullsub_102 + ldr r0, [sp, 0x8] + add sp, 0x10 + pop {r1} + bx r1 + thumb_func_end sub_8097D98 + + thumb_func_start sub_8097DD0 +sub_8097DD0: + push {lr} + adds r2, r0, 0 + adds r3, r1, 0 + ldr r1, [r2] + ldr r0, [r3] + cmp r1, r0 + bne _08097DEA + ldr r1, [r2, 0x4] + ldr r0, [r3, 0x4] + cmp r1, r0 + bne _08097DEA + movs r0, 0x1 + b _08097DEC +_08097DEA: + movs r0, 0 +_08097DEC: + pop {r1} + bx r1 + thumb_func_end sub_8097DD0 + + thumb_func_start sub_8097DF0 +sub_8097DF0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1F8 + mov r8, r0 + str r1, [sp, 0x1F0] + movs r0, 0 + mov r9, r0 + movs r7, 0 + ldr r1, _08097E3C + ldr r0, [r1] + cmp r0, 0 + beq _08097E6E +_08097E0E: + movs r4, 0 + lsls r5, r7, 3 + lsls r1, r7, 2 + mov r10, r1 + adds r6, r7, 0x1 + ldr r2, _08097E3C + adds r3, r5, r2 + add r1, sp, 0x18C +_08097E1E: + ldr r0, [r3] + adds r0, r4 + ldrb r2, [r0] + cmp r2, 0x23 + bne _08097E40 + ldrb r0, [r0, 0x1] + cmp r0, 0x72 + bne _08097E40 + strb r2, [r1] + adds r1, 0x1 + strb r0, [r1] + adds r1, 0x1 + movs r0, 0 + strb r0, [r1] + b _08097E50 + .align 2, 0 +_08097E3C: .4byte gStatusDescriptions +_08097E40: + ldr r0, [r3] + adds r0, r4 + ldrb r0, [r0] + strb r0, [r1] + adds r1, 0x1 + adds r4, 0x1 + cmp r4, 0x63 + ble _08097E1E +_08097E50: + add r0, sp, 0x18C + bl strlen + mov r1, sp + add r1, r10 + str r0, [r1] + adds r7, r6, 0 + cmp r6, 0x62 + bgt _08097E6E + lsls r0, r6, 3 + ldr r1, _08097EB4 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _08097E0E +_08097E6E: + mov r2, r8 + ldrb r0, [r2] + cmp r0, 0 + beq _08097F2C + ldr r3, _08097EB4 +_08097E78: + cmp r0, 0x23 + bne _08097F08 + movs r7, 0 + adds r1, r3, 0 + ldr r0, [r1] + cmp r0, 0 + beq _08097F20 + mov r2, r9 + lsls r0, r2, 2 + ldr r2, [sp, 0x1F0] + adds r0, r2 + mov r10, r0 +_08097E90: + lsls r4, r7, 3 + adds r0, r4, r1 + ldr r0, [r0] + lsls r1, r7, 2 + add r1, sp + ldr r2, [r1] + mov r1, r8 + str r3, [sp, 0x1F4] + bl sub_800B2D4 + lsls r0, 24 + adds r5, r4, 0 + adds r6, r7, 0x1 + ldr r3, [sp, 0x1F4] + cmp r0, 0 + bne _08097EF0 + movs r4, 0 + b _08097EBA + .align 2, 0 +_08097EB4: .4byte gStatusDescriptions +_08097EB8: + adds r4, 0x1 +_08097EBA: + cmp r4, r9 + bge _08097ED6 + adds r0, r5, r3 + lsls r1, r4, 2 + ldr r2, [sp, 0x1F0] + adds r1, r2 + ldr r1, [r1] + str r3, [sp, 0x1F4] + bl sub_8097DD0 + lsls r0, 24 + ldr r3, [sp, 0x1F4] + cmp r0, 0 + beq _08097EB8 +_08097ED6: + cmp r4, r9 + bne _08097EF0 + mov r0, r9 + cmp r0, 0x3 + bgt _08097EF0 + adds r0, r5, r3 + mov r1, r10 + adds r1, 0x4 + mov r10, r1 + subs r1, 0x4 + stm r1!, {r0} + movs r2, 0x1 + add r9, r2 +_08097EF0: + adds r7, r6, 0 + cmp r6, 0x62 + bgt _08097F20 + ldr r1, _08097F04 + lsls r0, r6, 3 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _08097E90 + b _08097F20 + .align 2, 0 +_08097F04: .4byte gStatusDescriptions +_08097F08: + mov r0, r8 + ldrb r1, [r0] + adds r0, r1, 0 + adds r0, 0x7F + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x3 + bls _08097F1C + cmp r1, 0x87 + bne _08097F20 +_08097F1C: + movs r1, 0x1 + add r8, r1 +_08097F20: + movs r2, 0x1 + add r8, r2 + mov r1, r8 + ldrb r0, [r1] + cmp r0, 0 + bne _08097E78 +_08097F2C: + mov r0, r9 + add sp, 0x1F8 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_8097DF0 + + .align 2,0 + 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 diff --git a/include/dungeon.h b/include/dungeon.h index 96cc579..faf58e5 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -27,5 +27,6 @@ struct Dungeon extern struct Dungeon gDungeons[]; extern struct DungeonName gDungeonNames[]; +const u8 *GetDungeonName1(u8 dungeon); #endif //GUARD_DUNGEON_H diff --git a/ld_script.txt b/ld_script.txt index 28ed166..86faeb8 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -97,7 +97,8 @@ SECTIONS { asm/code_801D760.o(.text); src/code_8027C84_pre.o(.text); asm/code_8027C84.o(.text); - src/code_8027C84.o(.text); + asm/personality_test.o(.text); + src/personality_test.o(.text); asm/code_803D110.o(.text); src/code_8040094.o(.text); asm/code_8040094.o(.text); @@ -124,6 +125,8 @@ SECTIONS { asm/code_8092334.o(.text); src/code_8094F88.o(.text); asm/code_8095014.o(.text); + src/code_809747C.o(.text); + asm/code_809747C.o(.text); src/code_8097F40.o(.text); asm/code_8097F40.o(.text); asm/code_8098468.o(.text); diff --git a/src/code_8027C84.c b/src/code_8027C84.c deleted file mode 100644 index e21400c..0000000 --- a/src/code_8027C84.c +++ /dev/null @@ -1,25 +0,0 @@ -#include "global.h" - -extern u8 gUnknown_80F42D0[]; -extern u8 gUnknown_80F42F0[]; -extern u8 gUnknown_203B408; - -u8 sub_803D0D8() -{ - return gUnknown_203B408; -} - -void sub_803D0E4(u8 r0) -{ - gUnknown_203B408 = r0; -} - -u8 sub_803D0F0(u8 r0) -{ - return gUnknown_80F42F0[r0]; -} - -u8 sub_803D100(u8 r0) -{ - return gUnknown_80F42D0[r0]; -} diff --git a/src/code_809747C.c b/src/code_809747C.c new file mode 100644 index 0000000..56e057e --- /dev/null +++ b/src/code_809747C.c @@ -0,0 +1,81 @@ +#include "global.h" +#include "dungeon.h" + +extern u32 *gStoryMissionText[]; +extern const u8 gDummyScenarioText; +extern u32 gUnknown_8109CC0; +extern u8 sub_80A270C(); +extern void sub_80015C0(u8, u8); + +const u8 *sub_809747C(s16 r0) +{ + if(r0 == 0xD) + { + return &gDummyScenarioText; + } + else + { + return GetDungeonName1(sub_80A270C()); + } +} + +const u8 *sub_80974A0(s16 r0) +{ + if(r0 == 0xD) + { + return &gDummyScenarioText; + } + else + { + return GetDungeonName1(sub_80A270C()); + } +} + +#ifndef NONMATCHING +NAKED +#endif +u32 *sub_80974C4(s16 r0) +{ +#ifdef NONMATCHING + // TODO fix regswap memes of r0/r1 + if(r0 <= 0x1E) + { + return gStoryMissionText[(r0 << 1)]; + } + else + { + return &gUnknown_8109CC0; + } +#else + asm_unified("\tpush {lr}\n" + "\tlsls r0, 16\n" + "\tasrs r0, 16\n" + "\tcmp r0, 0x1E\n" + "\tble _080974D8\n" + "\tldr r0, _080974D4\n" + "\tb _080974E0\n" + "\t.align 2, 0\n" +"_080974D4: .4byte gUnknown_8109CC0\n" +"_080974D8:\n" + "\tlsls r0, 3\n" + "\tldr r1, _080974E4\n" + "\tadds r0, r1\n" + "\tldr r0, [r0]\n" +"_080974E0:\n" + "\tpop {r1}\n" + "\tbx r1\n" + "\t.align 2, 0\n" +"_080974E4: .4byte gStoryMissionText"); + +#endif +} + +void sub_80974E8(void) +{ + sub_80015C0(0, 0x2E); + sub_80015C0(0, 0x2F); +} + +void nullsub_208(void) +{ +} diff --git a/src/personality_test.c b/src/personality_test.c index bac1b89..c0562e4 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -28,3 +28,28 @@ const u16 gPartners[10] = SPECIES_MUDKIP }; +extern u8 gUnknown_80F42D0[]; +extern u8 gUnknown_80F42F0[]; +extern u8 gUnknown_203B408; + +u8 sub_803D0D8() +{ + return gUnknown_203B408; +} + +void sub_803D0E4(u8 r0) +{ + gUnknown_203B408 = r0; +} + +u8 sub_803D0F0(u8 r0) +{ + return gUnknown_80F42F0[r0]; +} + +u8 sub_803D100(u8 r0) +{ + return gUnknown_80F42D0[r0]; +} + + |