diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/arm_func.s | 112 | ||||
-rw-r--r-- | asm/code.s | 2025 | ||||
-rw-r--r-- | asm/code_2.s | 1929 |
3 files changed, 2041 insertions, 2025 deletions
diff --git a/asm/arm_func.s b/asm/arm_func.s new file mode 100644 index 0000000..4fd4543 --- /dev/null +++ b/asm/arm_func.s @@ -0,0 +1,112 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + arm_func_start sub_80001E8 +sub_80001E8: + stmdb sp!, {r4-r11} + mov r12, 0x4000000 + ldr r11, _08000224 + add r10, r11, 0x40 + mov r9, 0x1 + mov r8, 0 + strb r8, [r12, 0x208] + ldmia r10, {r0-r7} + stmia r10!, {r4-r7} + stmia r10!, {r0-r3} + ldr r0, [r11, 0x4] + str r8, [r11, 0x4] + strb r9, [r12, 0x208] + ldmia sp!, {r4-r11} + bx lr + .align 2, 0 +_08000224: .4byte gUnknown_202DCF8 + arm_func_end sub_80001E8 + + arm_func_start sub_8000228 +sub_8000228: + mov r12, 0x4000000 + add r12, r12, 0x120 + ldmia r12, {r0,r1} + stmdb sp!, {r7-r11} + ldr r11, _08000340 + mov r9, 0xFE + add r9, r9, 0xFE00 + ldrh r3, [r12, 0x8] + and r3, r3, 0x40 + strb r3, [r11, 0x9] + ldr r10, [r11, 0x14] + adds r3, r10, 0x1 + blt _08000284 + bne _08000278 + strh r9, [r12, 0xA] + add r8, r11, 0x28 + ldmia r8, {r2,r3} + mov r7, r2 + stmia r8, {r3,r7} + b _08000284 +_08000278: + ldr r3, [r11, 0x2C] + ldr r2, [r3, r10, lsl 1] + strh r2, [r12, 0xA] +_08000284: + cmp r10, 0xB + addlt r10, r10, 0x1 + strlt r10, [r11, 0x14] + stmdb sp!, {r0,r1,r5,r6} + mov r6, 0x3 +_08000298: + add r8, r11, 0x18 + add r8, r8, r6, lsl 2 + ldr r10, [r8] + mov r3, r6, lsl 1 + ldrh r5, [sp, r3] + cmp r5, r9 + bne _080002C8 + cmp r10, 0x9 + ble _080002C8 + mov r0, 0x1 + sub r10, r0, 0x2 + b _080002F4 +_080002C8: + ldr r0, [r8, 0x18] + mov r3, r10, lsl 1 + strh r5, [r0, r3] + cmp r10, 0x9 + bne _080002F4 + ldr r1, [r8, 0x28] + str r0, [r8, 0x28] + str r1, [r8, 0x18] + add r3, r11, 0x4 + mov r0, 0x1 + strb r0, [r3, r6] +_080002F4: + cmp r10, 0xB + addlt r10, r10, 0x1 + str r10, [r8] + subs r6, r6, 0x1 + bge _08000298 + ldrb r0, [r11] + cmp r0, 0 + beq _08000334 + ldr r7, _08000344 + mov r0, 0 + strh r0, [r7] + ldrh r0, [r12, 0x8] + orr r0, r0, 0x80 + strh r0, [r12, 0x8] + mov r0, 0xC0 + strh r0, [r7] +_08000334: + add sp, sp, 0x8 + ldmia sp!, {r5-r11} + bx lr + .align 2, 0 +_08000340: .4byte gUnknown_202DCF8 +_08000344: .4byte 0x0400010e + arm_func_end sub_8000228 + + .align 2,0 @@ -19,2029 +19,4 @@ sub_80001E0: _080001E4: .4byte gUnknown_3004000 thumb_func_end sub_80001E0 - arm_func_start sub_80001E8 -sub_80001E8: - stmdb sp!, {r4-r11} - mov r12, 0x4000000 - ldr r11, _08000224 - add r10, r11, 0x40 - mov r9, 0x1 - mov r8, 0 - strb r8, [r12, 0x208] - ldmia r10, {r0-r7} - stmia r10!, {r4-r7} - stmia r10!, {r0-r3} - ldr r0, [r11, 0x4] - str r8, [r11, 0x4] - strb r9, [r12, 0x208] - ldmia sp!, {r4-r11} - bx lr - .align 2, 0 -_08000224: .4byte gUnknown_202DCF8 - arm_func_end sub_80001E8 - - arm_func_start sub_8000228 -sub_8000228: - mov r12, 0x4000000 - add r12, r12, 0x120 - ldmia r12, {r0,r1} - stmdb sp!, {r7-r11} - ldr r11, _08000340 - mov r9, 0xFE - add r9, r9, 0xFE00 - ldrh r3, [r12, 0x8] - and r3, r3, 0x40 - strb r3, [r11, 0x9] - ldr r10, [r11, 0x14] - adds r3, r10, 0x1 - blt _08000284 - bne _08000278 - strh r9, [r12, 0xA] - add r8, r11, 0x28 - ldmia r8, {r2,r3} - mov r7, r2 - stmia r8, {r3,r7} - b _08000284 -_08000278: - ldr r3, [r11, 0x2C] - ldr r2, [r3, r10, lsl 1] - strh r2, [r12, 0xA] -_08000284: - cmp r10, 0xB - addlt r10, r10, 0x1 - strlt r10, [r11, 0x14] - stmdb sp!, {r0,r1,r5,r6} - mov r6, 0x3 -_08000298: - add r8, r11, 0x18 - add r8, r8, r6, lsl 2 - ldr r10, [r8] - mov r3, r6, lsl 1 - ldrh r5, [sp, r3] - cmp r5, r9 - bne _080002C8 - cmp r10, 0x9 - ble _080002C8 - mov r0, 0x1 - sub r10, r0, 0x2 - b _080002F4 -_080002C8: - ldr r0, [r8, 0x18] - mov r3, r10, lsl 1 - strh r5, [r0, r3] - cmp r10, 0x9 - bne _080002F4 - ldr r1, [r8, 0x28] - str r0, [r8, 0x28] - str r1, [r8, 0x18] - add r3, r11, 0x4 - mov r0, 0x1 - strb r0, [r3, r6] -_080002F4: - cmp r10, 0xB - addlt r10, r10, 0x1 - str r10, [r8] - subs r6, r6, 0x1 - bge _08000298 - ldrb r0, [r11] - cmp r0, 0 - beq _08000334 - ldr r7, _08000344 - mov r0, 0 - strh r0, [r7] - ldrh r0, [r12, 0x8] - orr r0, r0, 0x80 - strh r0, [r12, 0x8] - mov r0, 0xC0 - strh r0, [r7] -_08000334: - add sp, sp, 0x8 - ldmia sp!, {r5-r11} - bx lr - .align 2, 0 -_08000340: .4byte gUnknown_202DCF8 -_08000344: .4byte 0x0400010e - arm_func_end sub_8000228 - - thumb_func_start GameLoop -GameLoop: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - movs r0, 0x1 - mov r9, r0 - bl InitHeap - bl NDS_DebugInit - bl sub_801180C - bl NDS_LoadOverlay_GroundMain - bl sub_8014144 - bl LoadMonsterParameters - bl sub_8097670 - bl sub_8094F88 - bl sub_8094980 - bl sub_8094C14 - bl sub_8097F5C - bl sub_80923A0 - bl sub_8090998 - bl sub_809207C - bl LoadWazaParameters - bl sub_80950BC - bl sub_80958E8 - movs r0, 0x80 - lsls r0, 8 - movs r1, 0 - bl sub_800CD64 - bl sub_8012284 - movs r0, 0x1 - bl sub_8094998 - ldr r0, _08000498 - bl SetWindowTitle - bl sub_800DAAC - movs r0, 0 - bl SetSavingIconCoords - movs r0, 0 - str r0, [sp] - mov r0, sp - bl sub_8011DAC - cmp r0, 0 - beq _080003D2 - bl sub_800135C -_080003D2: - movs r0, 0xE - bl xxx_script_related_8001334 - movs r0, 0xF - bl xxx_script_related_8001334 - movs r0, 0 - movs r1, 0x39 - bl sub_80015C0 - movs r0, 0x10 - bl xxx_script_related_8001334 - movs r0, 0 - movs r1, 0x39 - bl sub_8001658 - cmp r0, 0 - bne _080003FE - movs r0, 0x11 - bl xxx_script_related_8001334 -_080003FE: - movs r1, 0 - mov r10, r1 - ldr r2, _0800049C - mov r8, r2 -_08000406: - ldr r0, _080004A0 - mov r1, r10 - str r1, [r0] - movs r0, 0x2 - bl sub_800A8F8 - movs r0, 0x1 - bl ResetSprites - movs r0, 0 - bl xxx_update_some_bg_tiles - bl sub_80097B0 - movs r0, 0x2 - bl sub_800CDA8 - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - ldr r1, _080004A4 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8000634 - movs r0, 0 - movs r1, 0 - bl sub_800CCA0 - movs r0, 0 - movs r1, 0 - bl sub_800CCAC - mov r0, r10 - mov r1, r8 - str r0, [r1] -_08000456: - mov r2, r8 - ldr r0, [r2] - adds r0, 0x1 - str r0, [r2] - movs r4, 0 -_08000460: - ldr r0, _080004A8 - ldr r0, [r0] - lsls r2, r4, 2 - ldr r1, [r0, 0x4] - adds r1, r2 - mov r0, r8 - ldr r2, [r0] - adds r0, r4, 0 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x1 - cmp r4, 0xEF - ble _08000460 - movs r0, 0 - bl xxx_update_stuff - mov r1, r8 - ldr r0, [r1] - cmp r0, 0x1F - ble _08000456 - mov r2, r9 - cmp r2, 0 - beq _080004C0 - bl sub_8012468 - b _080004B2 - .align 2, 0 -_08000498: .4byte gUnknown_80B69BC -_0800049C: .4byte gUnknown_2000A80 -_080004A0: .4byte gUnknown_203B03C -_080004A4: .4byte gUnknown_2026E4E -_080004A8: .4byte gUnknown_203B038 -_080004AC: - movs r0, 0 - bl xxx_update_stuff -_080004B2: - bl sub_8012484 - lsls r0, 24 - cmp r0, 0 - bne _080004AC - bl sub_8012558 -_080004C0: - movs r0, 0x1 - mov r9, r0 - movs r0, 0x8 - bl sub_800BDFC - movs r4, 0x1 - movs r0, 0 - movs r1, 0x14 - bl sub_80095CC - bl InitMainMenu -_080004D8: - bl sub_80363E0 - lsls r0, 24 - cmp r0, 0 - beq _08000522 - ldr r3, _080004FC - ldrh r1, [r3, 0x2] - movs r2, 0x80 - lsls r2, 2 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08000500 - movs r4, 0 - movs r0, 0x13 - bl SetBGOBJEnableFlags - b _08000516 - .align 2, 0 -_080004FC: .4byte gUnknown_20255F0 -_08000500: - cmp r4, 0 - bne _08000522 - ldrh r1, [r3] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - bne _08000516 - movs r4, 0x1 - movs r0, 0 - bl SetBGOBJEnableFlags -_08000516: - cmp r4, 0 - bne _08000522 - movs r0, 0 - bl xxx_update_stuff - b _080004D8 -_08000522: - bl SetUpMenu - movs r0, 0 - bl xxx_update_stuff - bl UpdateMenu - adds r5, r0, 0 - bl CleanUpMenu - cmp r5, 0x2 - beq _08000542 - cmp r5, 0x4 - beq _08000542 - cmp r5, 0x3 - bne _080004D8 -_08000542: - bl sub_80357D0 - mov r1, r8 - ldr r0, [r1] - cmp r0, 0 - ble _08000580 - ldr r7, _08000598 - adds r6, r7, 0 -_08000552: - ldr r0, [r6] - subs r0, 0x1 - str r0, [r6] - movs r4, 0 -_0800055A: - ldr r0, _0800059C - ldr r0, [r0] - lsls r2, r4, 2 - ldr r1, [r0, 0x4] - adds r1, r2 - ldr r2, [r6] - adds r0, r4, 0 - movs r3, 0 - bl SetBGPaletteBufferColorRGB - adds r4, 0x1 - cmp r4, 0xEF - ble _0800055A - movs r0, 0 - bl xxx_update_stuff - ldr r0, [r7] - cmp r0, 0 - bgt _08000552 -_08000580: - ldr r0, _0800059C - ldr r0, [r0] - bl CloseFile - cmp r5, 0x3 - beq _080005CA - cmp r5, 0x3 - bhi _080005A0 - cmp r5, 0x2 - beq _080005A6 - b _08000406 - .align 2, 0 -_08000598: .4byte gUnknown_2000A80 -_0800059C: .4byte gUnknown_203B038 -_080005A0: - cmp r5, 0x4 - beq _080005C6 - b _08000406 -_080005A6: - movs r0, 0x7 - bl sub_80953D4 - adds r1, r0, 0 - movs r0, 0x1 - negs r0, r0 - cmp r1, r0 - beq _080005C2 - lsls r0, r1, 24 - lsrs r0, 24 - bl sub_8095240 - movs r0, 0x2 - b _080005D4 -_080005C2: - movs r0, 0x1 - b _080005D4 -_080005C6: - movs r0, 0x3 - b _080005D4 -_080005CA: - bl sub_80122A8 - bl nullsub_33 - movs r0, 0 -_080005D4: - bl sub_80009D0 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - b _08000406 - thumb_func_end GameLoop - - thumb_func_start xxx_update_stuff -xxx_update_stuff: - push {lr} - bl xxx_draw_string_80144C4 - movs r0, 0 - movs r1, 0 - bl sub_8005838 - ldr r0, _08000630 - ldr r0, [r0] - ldrb r0, [r0, 0xA] - bl nullsub_8 - bl sub_8005180 - bl sub_80060EC - bl sub_8011860 - bl sub_800CB20 - bl sub_800485C - bl CopySpritesToOam - bl sub_8005304 - bl TransferBGPaletteBuffer - bl xxx_call_update_bg_vram - bl sub_8009908 - bl xxx_call_update_bg_sound_input - movs r0, 0 - bl ResetSprites - pop {r0} - bx r0 - .align 2, 0 -_08000630: .4byte gUnknown_203B46C - thumb_func_end xxx_update_stuff - - thumb_func_start sub_8000634 -sub_8000634: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - mov r1, sp - ldr r0, _08000708 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - add r5, sp, 0xC - adds r1, r5, 0 - ldr r0, _0800070C - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, _08000710 - movs r1, 0 - bl MemoryAlloc - adds r7, r0, 0 - movs r0, 0x3 - bl RandomCapped - adds r4, r0, 0 - lsls r4, 2 - adds r5, r4 - ldr r0, [r5] - ldr r5, _08000714 - adds r1, r5, 0 - bl OpenFileAndGetFileDataPtr - ldr r1, _08000718 - str r0, [r1] - mov r1, sp - adds r0, r1, r4 - ldr r0, [r0] - adds r1, r5, 0 - bl OpenFileAndGetFileDataPtr - mov r8, r0 - adds r0, r7, 0 - movs r1, 0 - mov r2, r8 - bl sub_800AAA8 - movs r2, 0 - ldr r0, _0800071C - movs r3, 0xC0 - lsls r3, 5 - adds r3, r0 - mov r9, r3 - movs r4, 0x80 - lsls r4, 5 - adds r4, r0 - mov r12, r4 -_080006A0: - movs r5, 0 - lsls r1, r2, 6 - adds r6, r2, 0x1 - mov r0, r9 - adds r4, r1, r0 - mov r2, r12 - adds r3, r1, r2 - movs r2, 0x80 - lsls r2, 4 - adds r0, r7, r2 - adds r2, r1, r0 - adds r1, r7 -_080006B8: - ldrh r0, [r1] - strh r0, [r3] - ldrh r0, [r2] - strh r0, [r4] - adds r4, 0x2 - adds r3, 0x2 - adds r2, 0x2 - adds r1, 0x2 - adds r5, 0x1 - cmp r5, 0x1F - ble _080006B8 - adds r2, r6, 0 - cmp r2, 0x1F - ble _080006A0 - movs r0, 0x2 - bl sub_80098F8 - movs r0, 0x3 - bl sub_80098F8 - ldr r0, _08000720 - movs r3, 0x80 - lsls r3, 5 - adds r1, r7, r3 - ldr r2, _08000724 - bl CpuCopy - mov r0, r8 - bl CloseFile - adds r0, r7, 0 - bl MemoryFree - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08000708: .4byte gUnknown_80B69F8 -_0800070C: .4byte gUnknown_80B6A28 -_08000710: .4byte 0x00005b20 -_08000714: .4byte gUnknown_8380000 -_08000718: .4byte gUnknown_203B038 -_0800071C: .4byte gUnknown_202B038 -_08000720: .4byte 0x06008000 -_08000724: .4byte 0x00004b20 - thumb_func_end sub_8000634 - - thumb_func_start sub_8000728 -sub_8000728: - ldr r0, _08000730 - ldr r0, [r0] - bx lr - .align 2, 0 -_08000730: .4byte gUnknown_203B03C - thumb_func_end sub_8000728 - - thumb_func_start QuickSave -QuickSave: - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - movs r4, 0 - movs r6, 0 - movs r0, 0 - bl xxx_update_some_bg_tiles - bl sub_8014144 - bl sub_80097B0 - movs r0, 0x2 - bl sub_800CDA8 - movs r0, 0 - movs r1, 0x14 - bl sub_80095CC - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0 - movs r1, 0x14 - bl sub_8009408 - ldr r0, _080007AC - movs r2, 0x80 - lsls r2, 5 - adds r1, r2, 0 - strh r1, [r0] - bl sub_8099648 - bl sub_8094C14 - movs r0, 0 - bl sub_8099690 - bl sub_8099744 - bl sub_8099750 - movs r0, 0x3 - bl sub_80063D8 - movs r0, 0 - movs r1, 0 - bl sub_8005838 - bl sub_80060EC - ldr r0, _080007B0 - movs r1, 0 - movs r2, 0 - movs r3, 0x20 - bl sub_80141B4 - b _08000892 - .align 2, 0 -_080007AC: .4byte gUnknown_2026E4E -_080007B0: .4byte gUnknown_80B6A34 -_080007B4: - cmp r4, 0x1 - beq _0800086C - cmp r4, 0x1 - bgt _080007C2 - cmp r4, 0 - beq _080007CC - b _0800088E -_080007C2: - cmp r4, 0x2 - beq _08000884 - cmp r4, 0x3 - beq _08000892 - b _0800088E -_080007CC: - str r4, [sp, 0x4] - movs r0, 0x3F - str r0, [sp] - mov r0, sp - bl sub_8097688 - bl sub_80140DC - cmp r5, 0x3 - bhi _080007EC - add r0, sp, 0x4 - movs r1, 0x1 - bl sub_801203C - adds r4, r0, 0 - b _080007EE -_080007EC: - movs r4, 0x2 -_080007EE: - cmp r4, 0 - bne _080007FA - ldr r0, _08000818 - bl sub_80121E0 - adds r4, r0, 0 -_080007FA: - bl sub_8014114 - cmp r4, 0 - bne _0800083C - cmp r5, 0x1 - beq _08000812 - cmp r5, 0x1 - bcc _08000820 - cmp r5, 0x2 - beq _08000820 - cmp r5, 0x3 - bne _08000820 -_08000812: - ldr r0, _0800081C - b _08000822 - .align 2, 0 -_08000818: .4byte 0x000f1206 -_0800081C: .4byte gUnknown_80B6A7C -_08000820: - ldr r0, _08000834 -_08000822: - movs r1, 0 - movs r2, 0 - ldr r3, _08000838 - bl sub_80141B4 - movs r6, 0x3C - movs r4, 0x1 - b _08000892 - .align 2, 0 -_08000834: .4byte gUnknown_80B6AA0 -_08000838: .4byte 0x00000321 -_0800083C: - cmp r4, 0x1 - bne _08000854 - ldr r0, _08000850 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl sub_80141B4 - movs r4, 0x3 - b _08000892 - .align 2, 0 -_08000850: .4byte gUnknown_80B6B14 -_08000854: - ldr r0, _08000864 - movs r1, 0 - movs r2, 0 - ldr r3, _08000868 - bl sub_80141B4 -_08000860: - movs r4, 0x2 - b _08000892 - .align 2, 0 -_08000864: .4byte gUnknown_80B6B78 -_08000868: .4byte 0x00000301 -_0800086C: - cmp r6, 0 - ble _08000860 - ldr r0, _08000880 - ldrh r1, [r0, 0x2] - subs r6, 0x1 - movs r0, 0x3 - ands r1, r0 - cmp r1, 0 - beq _08000892 - b _08000860 - .align 2, 0 -_08000880: .4byte gUnknown_20255F0 -_08000884: - add r0, sp, 0x8 - bl sub_80144A4 - cmp r0, 0 - bne _08000892 -_0800088E: - movs r4, 0x1 - negs r4, r4 -_08000892: - movs r0, 0 - bl xxx_update_stuff - cmp r4, 0 - bge _080007B4 - bl sub_8014490 - movs r0, 0 - bl xxx_update_stuff - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0 - bl xxx_update_stuff - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end QuickSave - - thumb_func_start sub_80008C0 -sub_80008C0: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r4, 0 - movs r6, 0 - movs r0, 0 - bl xxx_update_some_bg_tiles - bl sub_8014144 - bl sub_80097B0 - movs r0, 0x2 - bl sub_800CDA8 - movs r0, 0 - movs r1, 0x14 - bl sub_80095CC - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0 - movs r1, 0x14 - bl sub_8009408 - ldr r1, _08000930 - movs r2, 0x80 - lsls r2, 5 - adds r0, r2, 0 - strh r0, [r1] - bl sub_8099648 - bl sub_8094C14 - movs r0, 0 - bl sub_8099690 - bl sub_8099744 - bl sub_8099750 - movs r0, 0x3 - bl sub_80063D8 - cmp r5, 0x1 - beq _08000948 - cmp r5, 0x1 - bcc _08000934 - cmp r5, 0x2 - beq _08000950 - cmp r5, 0x3 - beq _08000950 - b _080009A2 - .align 2, 0 -_08000930: .4byte gUnknown_2026E4E -_08000934: - ldr r0, _08000944 - movs r1, 0 - movs r2, 0 - movs r3, 0x20 - bl sub_80141B4 - movs r4, 0x2 - b _080009A2 - .align 2, 0 -_08000944: .4byte gUnknown_80B6B88 -_08000948: - ldr r0, _0800094C - b _08000952 - .align 2, 0 -_0800094C: .4byte gUnknown_80B6BDC -_08000950: - ldr r0, _08000960 -_08000952: - ldr r3, _08000964 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0800095C: - movs r4, 0x1 - b _080009A2 - .align 2, 0 -_08000960: .4byte gUnknown_80B6CB8 -_08000964: .4byte 0x00000301 -_08000968: - cmp r4, 0x1 - beq _08000994 - cmp r4, 0x1 - bgt _08000976 - cmp r4, 0 - beq _0800097C - b _0800099E -_08000976: - cmp r4, 0x2 - beq _080009A2 - b _0800099E -_0800097C: - cmp r6, 0 - ble _0800095C - ldr r0, _08000990 - ldrh r1, [r0, 0x2] - subs r6, 0x1 - movs r0, 0x3 - ands r1, r0 - cmp r1, 0 - beq _080009A2 - b _0800095C - .align 2, 0 -_08000990: .4byte gUnknown_20255F0 -_08000994: - mov r0, sp - bl sub_80144A4 - cmp r0, 0 - bne _080009A2 -_0800099E: - movs r4, 0x1 - negs r4, r4 -_080009A2: - movs r0, 0 - bl xxx_update_stuff - cmp r4, 0 - bge _08000968 - bl sub_8014490 - movs r0, 0 - bl xxx_update_stuff - movs r0, 0 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - movs r0, 0 - bl xxx_update_stuff - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_80008C0 - - thumb_func_start sub_80009D0 -sub_80009D0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08000A04 - add sp, r4 - adds r4, r0, 0 - movs r0, 0 - movs r1, 0x18 - bl sub_8001658 - adds r7, r0, 0 - movs r0, 0 - mov r10, r0 - bl sub_801180C - movs r0, 0x10 - bl sub_80118C4 - cmp r7, 0x7 - bne _08000A30 - cmp r4, 0x2 - bne _08000A08 - movs r7, 0x8 - b _08000A3A - .align 2, 0 -_08000A04: .4byte 0xfffffdd4 -_08000A08: - cmp r4, 0x3 - bne _08000A3A - movs r7, 0xB - movs r0, 0 - movs r1, 0x18 - movs r2, 0xB - bl sub_80018D8 - bl sub_8096BD0 - movs r0, 0x3 - bl QuickSave - b _08000A3A -_08000A24: - movs r3, 0x1 - mov r10, r3 - b _08000EC6 -_08000A2A: - movs r0, 0x1 - mov r10, r0 - b _08000EC6 -_08000A30: - cmp r7, 0 - beq _08000A3A - cmp r7, 0xB - beq _08000A3A - movs r7, 0x1 -_08000A3A: - movs r0, 0 - movs r1, 0x41 - bl sub_80015C0 -_08000A42: - cmp r7, 0x4 - bne _08000AB6 - movs r0, 0 - movs r1, 0xD - bl sub_8001658 - lsls r0, 16 - asrs r0, 16 - bl sub_8002658 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08000A9C - movs r1, 0x8 - bl MemoryAlloc - str r0, [sp, 0x8] - mov r0, sp - strb r4, [r0, 0x4] - movs r0, 0x9 - bl sub_80023E4 - mov r1, sp - strb r0, [r1, 0x5] - mov r0, sp - bl sub_800F990 - ldr r0, [sp, 0x8] - bl MemoryFree - mov r0, sp - ldrb r0, [r0, 0xC] - cmp r0, 0x3A - beq _08000B70 - mov r0, sp - ldrb r0, [r0, 0xC] - cmp r0, 0 - beq _08000AA0 - bl sub_8002694 - lsls r0, 16 - asrs r2, r0, 16 - b _08000AA2 - .align 2, 0 -_08000A9C: .4byte 0x00004e30 -_08000AA0: - movs r2, 0x9 -_08000AA2: - movs r0, 0 - movs r1, 0xD - bl sub_80018D8 - movs r0, 0 - movs r1, 0xE - movs r2, 0 - bl sub_80018D8 - b _08000B70 -_08000AB6: - cmp r7, 0x5 - bne _08000B9C - movs r0, 0 - movs r1, 0x12 - bl sub_8001658 - lsls r0, 16 - asrs r0, 16 - mov r8, r0 - bl sub_80A2740 - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, _08000B18 - add r5, sp -_08000AD6: - lsls r0, r4, 24 - lsrs r0, 24 - bl sub_80A28F0 - adds r1, r5, r4 - strb r0, [r1] - adds r4, 0x1 - cmp r4, 0x3E - ble _08000AD6 - cmp r6, 0x63 - beq _08000B70 - add r4, sp, 0xB8 - movs r0, 0x3F - strb r0, [r4, 0x4] - add r0, sp, 0xC0 - adds r1, r6, 0 - bl sub_80011CC - ldrb r1, [r4, 0xD] - add r0, sp, 0x128 - strb r1, [r0] - mov r0, r8 - bl sub_80A2750 - lsls r0, 16 - asrs r0, 16 - adds r5, r4, 0 - cmp r0, 0x1 - beq _08000B1C - cmp r0, 0x2 - beq _08000B3C - b _08000B50 - .align 2, 0 -_08000B18: .4byte 0x00000129 -_08000B1C: - add r4, sp, 0x170 - add r0, sp, 0x174 - mov r1, r8 - bl sub_80990EC - lsls r0, 24 - cmp r0, 0 - beq _08000B50 - ldrb r0, [r4, 0x10] - strb r0, [r5, 0x14] - add r0, sp, 0xD0 - add r1, sp, 0x18C - movs r2, 0x58 - bl memcpy - b _08000B50 -_08000B3C: - ldrb r0, [r5, 0x8] - add r1, sp, 0xD0 - bl sub_8096A08 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08000B4E - movs r0, 0x1 -_08000B4E: - strb r0, [r5, 0x14] -_08000B50: - ldr r0, _08000B74 - movs r1, 0x8 - bl MemoryAlloc - add r4, sp, 0x168 - str r0, [r4] - adds r0, r5, 0 - bl sub_8010268 - ldr r0, [r4] - bl MemoryFree - add r0, sp, 0x16C - ldrb r0, [r0] - cmp r0, 0 - bne _08000B78 -_08000B70: - movs r7, 0x2 - b _08000A42 - .align 2, 0 -_08000B74: .4byte 0x00006474 -_08000B78: - movs r0, 0 - movs r1, 0x13 - mov r2, r8 - bl sub_80018D8 - ldr r1, _08000B98 - movs r0, 0x2 - str r0, [r1] - movs r0, 0x4 - bl sub_800A8F8 - movs r0, 0x5 - bl xxx_script_related_8001334 - adds r5, r0, 0 - b _08000BEC - .align 2, 0 -_08000B98: .4byte gUnknown_203B03C -_08000B9C: - cmp r7, 0x8 - bne _08000BA4 - movs r5, 0 - b _08000BEC -_08000BA4: - cmp r7, 0x7 - bne _08000BAC - movs r5, 0x2 - b _08000BEC -_08000BAC: - cmp r7, 0xB - bne _08000BB6 - bl sub_80012C0 - b _08000BBE -_08000BB6: - cmp r7, 0xC - bne _08000BBE - bl sub_8001248 -_08000BBE: - ldr r1, _08000BE0 - movs r0, 0x2 - str r0, [r1] - movs r0, 0x4 - bl sub_800A8F8 - adds r0, r7, 0 - bl xxx_script_related_8001334 - adds r5, r0, 0 - cmp r5, 0xE - bne _08000BD8 - b _08000EC6 -_08000BD8: - cmp r5, 0x5 - bne _08000BE4 - movs r7, 0x4 - b _08000A42 - .align 2, 0 -_08000BE0: .4byte gUnknown_203B03C -_08000BE4: - cmp r5, 0x6 - bne _08000BEC - movs r7, 0x5 - b _08000A42 -_08000BEC: - add r6, sp, 0x170 - movs r4, 0 - strb r4, [r6, 0x11] - strb r4, [r6, 0x10] - movs r3, 0xC6 - lsls r3, 1 - add r3, sp - mov r8, r3 - mov r0, r8 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - movs r0, 0 - mov r9, r0 - strh r4, [r6, 0x24] - cmp r5, 0x7 - beq _08000C3C - cmp r5, 0x8 - bne _08000C38 - add r0, sp, 0x174 - add r1, sp, 0x228 - bl sub_80991E0 - lsls r0, 24 - cmp r0, 0 - beq _08000C4C - ldrb r0, [r6, 0x4] - mov r1, r8 - bl sub_8096A08 - lsls r0, 24 - cmp r0, 0 - bne _08000C32 - b _08000D98 -_08000C32: - movs r0, 0x1 - strb r0, [r6, 0x10] - b _08000D98 -_08000C38: - cmp r5, 0xA - bne _08000C52 -_08000C3C: - add r0, sp, 0x174 - add r1, sp, 0x228 - bl sub_80991E0 - lsls r0, 24 - cmp r0, 0 - beq _08000C4C - b _08000D98 -_08000C4C: - movs r5, 0xD - movs r7, 0x9 - b _08000D98 -_08000C52: - cmp r5, 0x9 - bne _08000C6C - add r0, sp, 0x174 - add r1, sp, 0x228 - bl sub_80991E0 - lsls r0, 24 - cmp r0, 0 - beq _08000C66 - b _08000D98 -_08000C66: - movs r5, 0xB - movs r7, 0xC - b _08000D98 -_08000C6C: - cmp r5, 0 - bne _08000D04 - bl sub_8011FA8 - adds r1, r0, 0 - ldr r0, _08000CA0 - cmp r1, r0 - bne _08000CC8 - movs r2, 0x1 - strb r2, [r6, 0x11] - strb r2, [r6, 0x8] - mov r3, r9 - strb r3, [r6, 0xF] - ldr r0, _08000CA4 - ldr r1, [r0] - movs r3, 0xC - ldrsh r0, [r1, r3] - cmp r0, 0 - beq _08000CA8 - strb r2, [r6, 0x10] - adds r1, 0x4 - mov r0, r8 - movs r2, 0x58 - bl memcpy - b _08000CAC - .align 2, 0 -_08000CA0: .4byte 0x000f1207 -_08000CA4: .4byte gUnknown_203B484 -_08000CA8: - mov r0, r9 - strb r0, [r6, 0x10] -_08000CAC: - ldr r4, _08000CC4 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0xC] - b _08000CE4 - .align 2, 0 -_08000CC4: .4byte gUnknown_203B484 -_08000CC8: - ldr r0, _08000CD8 - cmp r1, r0 - bne _08000CDC - movs r5, 0x1 - movs r7, 0xB - bl sub_8096BD0 - b _08000CE4 - .align 2, 0 -_08000CD8: .4byte 0x000f1208 -_08000CDC: - movs r5, 0x1 - movs r7, 0xB - bl sub_8096BD0 -_08000CE4: - cmp r5, 0x1 - bne _08000D98 - ldr r4, _08000D00 - ldr r0, [r4] - adds r0, 0x4 - movs r1, 0 - movs r2, 0x58 - bl MemoryFill8 - ldr r1, [r4] - movs r0, 0 - strh r0, [r1, 0xC] - b _08000D98 - .align 2, 0 -_08000D00: .4byte gUnknown_203B484 -_08000D04: - cmp r5, 0x2 - bne _08000D98 - bl sub_8011C1C - cmp r0, 0x2 - bne _08000D34 - bl sub_8011FA8 - adds r1, r0, 0 - movs r0, 0x1 - strb r0, [r6, 0x8] - mov r3, r9 - strb r3, [r6, 0x11] - ldr r0, _08000D30 - cmp r1, r0 - beq _08000D36 - adds r0, 0x1 - movs r5, 0x1 - movs r7, 0xB - bl sub_8096BD0 - b _08000D36 - .align 2, 0 -_08000D30: .4byte 0x000f1207 -_08000D34: - movs r5, 0x3 -_08000D36: - cmp r5, 0x3 - bne _08000D7A - bl sub_8001170 - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0x1 - movs r7, 0xB - bl sub_8096BD0 - cmp r4, 0x3F - beq _08000D70 - cmp r4, 0x63 - beq _08000D70 - adds r0, r4, 0 - bl GetSaveBeforeEntering - lsls r0, 24 - cmp r0, 0 - beq _08000D70 - bl sub_8011C1C - cmp r0, 0x2 - bne _08000D6C - movs r5, 0x3 - movs r7, 0x7 - b _08000D70 -_08000D6C: - movs r5, 0xC - movs r7, 0xA -_08000D70: - cmp r5, 0x1 - bne _08000D98 - bl sub_8011C1C - b _08000D98 -_08000D7A: - cmp r5, 0x4 - bne _08000D8E - movs r5, 0x1 - movs r7, 0xB - bl sub_8096BD0 - movs r0, 0x1 - bl sub_80008C0 - b _08000D98 -_08000D8E: - cmp r5, 0x1 - bne _08000D98 - movs r7, 0xB - bl sub_8096BD0 -_08000D98: - subs r0, r5, 0x7 - cmp r0, 0x3 - bls _08000DAC - cmp r5, 0 - beq _08000E1E - cmp r5, 0x2 - beq _08000DAC - cmp r5, 0x3 - beq _08000DAC - b _08000A42 -_08000DAC: - cmp r5, 0 - beq _08000E1E - cmp r5, 0x2 - beq _08000E1E - cmp r5, 0x3 - beq _08000E1E - bl sub_8001170 - lsls r0, 24 - lsrs r6, r0, 24 - bl sub_8097758 - cmp r5, 0x9 - bne _08000E00 - ldr r4, _08000DF4 - add r4, sp - adds r0, r4, 0 - bl sub_8099394 - lsls r0, 24 - cmp r0, 0 - beq _08000E00 - ldrb r0, [r4] - bl sub_8095228 - adds r2, r0, 0 - adds r0, 0x2C - ldrb r1, [r0] - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0x1 - ble _08000DF8 - subs r1, 0x1 - b _08000DFA - .align 2, 0 -_08000DF4: .4byte 0x0000022a -_08000DF8: - movs r1, 0 -_08000DFA: - adds r0, r2, 0 - adds r0, 0x2C - strb r1, [r0] -_08000E00: - cmp r6, 0x3F - bne _08000E0C - movs r0, 0 - bl QuickSave - b _08000E1E -_08000E0C: - adds r0, r6, 0 - bl GetSaveBeforeEntering - lsls r0, 24 - cmp r0, 0 - bne _08000E1E - movs r0, 0 - bl QuickSave -_08000E1E: - ldr r0, _08000E70 - movs r4, 0x1 - str r4, [r0] - movs r0, 0x3 - bl sub_800A8F8 - add r5, sp, 0x170 - str r4, [r5] - add r0, sp, 0x174 - bl sub_80011E8 - adds r0, r5, 0 - bl sub_8000EDC - add r4, sp, 0x1EC - movs r0, 0 - ldrsh r1, [r4, r0] - cmp r1, 0x3 - bne _08000E46 - b _08000A24 -_08000E46: - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - bne _08000E50 - b _08000A2A -_08000E50: - movs r0, 0 - movs r1, 0x41 - bl sub_80015C0 - ldrh r0, [r4] - adds r0, 0x1 - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x6 - bhi _08000EBE - lsls r0, 2 - ldr r1, _08000E74 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08000E70: .4byte gUnknown_203B03C -_08000E74: .4byte _08000E78 - .align 2, 0 -_08000E78: - .4byte _08000EB6 - .4byte _08000EBE - .4byte _08000E94 - .4byte _08000EB2 - .4byte _08000EBE - .4byte _08000E94 - .4byte _08000EBE -_08000E94: - movs r7, 0x9 - movs r0, 0xF7 - lsls r0, 1 - add r0, sp - ldrb r0, [r0] - movs r3, 0x1 - cmp r0, 0 - beq _08000EA6 - movs r3, 0x2 -_08000EA6: - movs r0, 0 - movs r1, 0x41 - movs r2, 0 - bl sub_800199C - b _08000A42 -_08000EB2: - movs r7, 0xA - b _08000A42 -_08000EB6: - movs r7, 0xC - bl sub_8096BD0 - b _08000A42 -_08000EBE: - movs r7, 0xB - bl sub_8096BD0 - b _08000A42 -_08000EC6: - mov r0, r10 - movs r3, 0x8B - lsls r3, 2 - add sp, r3 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80009D0 - - thumb_func_start sub_8000EDC -sub_8000EDC: - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r5, 0x1 - ldr r0, _08000F24 - str r5, [r0] - movs r0, 0x3 - bl sub_800A8F8 - bl sub_8014144 - add r1, sp, 0x4 - mov r0, sp - bl sub_8043D50 - ldr r0, [sp] - movs r1, 0x7 - bl MemoryAlloc - str r0, [r4, 0x74] - ldr r0, [sp, 0x4] - movs r1, 0x7 - bl MemoryAlloc - str r0, [r4, 0x78] - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _08000F68 - ldr r0, [r4, 0x74] - ldr r1, [sp] - bl sub_801277C - adds r7, r4, 0 - adds r7, 0x7C - b _08000F2E - .align 2, 0 -_08000F24: .4byte gUnknown_203B03C -_08000F28: - movs r0, 0 - bl xxx_update_stuff -_08000F2E: - bl sub_80127A8 - lsls r0, 24 - cmp r0, 0 - bne _08000F28 - bl sub_8012828 - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_8012834 - bl sub_8011830 - cmp r5, 0 - beq _08000F58 - ldr r0, _08000F54 - bl sub_80121E0 - b _08000F5E - .align 2, 0 -_08000F54: .4byte 0x000f1208 -_08000F58: - ldr r0, _08000F64 - bl sub_80121E0 -_08000F5E: - bl sub_8011854 - b _08000F78 - .align 2, 0 -_08000F64: .4byte 0x000f1209 -_08000F68: - bl sub_809674C - bl sub_80961B4 - bl sub_808ED00 - adds r7, r4, 0 - adds r7, 0x7C -_08000F78: - cmp r5, 0 - beq _08000F92 - adds r0, r4, 0 - bl xxx_dungeon_8001340 - bl sub_8099648 - bl sub_8094C14 - movs r0, 0 - bl sub_8099690 - b _08000F96 -_08000F92: - movs r0, 0x5 - strh r0, [r7] -_08000F96: - adds r5, r7, 0 - movs r1, 0 - ldrsh r0, [r5, r1] - movs r6, 0x2 - negs r6, r6 - cmp r0, r6 - bne _08000FAC - adds r0, r4, 0 - adds r0, 0x84 - bl sub_809542C -_08000FAC: - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x3 - beq _08000FB8 - cmp r0, r6 - bne _0800100C -_08000FB8: - adds r0, r4, 0 - adds r0, 0x80 - bl sub_8097688 - bl sub_8011924 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, r6 - bne _08000FD8 - ldr r0, [r4, 0x74] - ldr r1, [sp] - movs r2, 0x1 - bl sub_8012850 - b _08000FFA -_08000FD8: - ldr r0, [r4, 0x74] - ldr r1, [sp] - movs r2, 0 - bl sub_8012850 - b _08000FFA -_08000FE4: - cmp r0, 0x1 - bne _08000FF4 - ldr r0, [r4, 0x78] - bl MemoryFree - ldr r0, [r4, 0x74] - bl MemoryFree -_08000FF4: - movs r0, 0 - bl xxx_update_stuff -_08000FFA: - bl sub_80128B0 - cmp r0, 0x2 - beq _08001006 - cmp r0, 0x3 - bne _08000FE4 -_08001006: - bl sub_80129FC - b _0800101C -_0800100C: - bl sub_808ED00 - ldr r0, [r4, 0x78] - bl MemoryFree - ldr r0, [r4, 0x74] - bl MemoryFree -_0800101C: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8000EDC - - thumb_func_start sub_8001024 -sub_8001024: - push {r4,lr} - ldr r1, _08001040 - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - ldm r1!, {r2-r4} - stm r0!, {r2-r4} - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08001040: .4byte gUnknown_203B040 - thumb_func_end sub_8001024 - - thumb_func_start sub_8001044 -sub_8001044: - push {r4,lr} - ldr r1, _08001060 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08001060: .4byte gUnknown_203B040 - thumb_func_end sub_8001044 - - thumb_func_start sub_8001064 -sub_8001064: - push {r4,r5,lr} - sub sp, 0x28 - bl sub_808D33C - cmp r0, 0 - bne _080010AE - ldr r5, _0800109C - ldrb r0, [r5, 0x8] - cmp r0, 0 - bne _080010A0 - add r4, sp, 0x14 - movs r0, 0x4 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_808D8BC - mov r0, sp - adds r1, r4, 0 - bl sub_80922F4 - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r1, 0x1 - mov r2, sp - bl sub_808CE74 - b _080010AE - .align 2, 0 -_0800109C: .4byte gUnknown_203B040 -_080010A0: - movs r4, 0x4 - ldrsh r0, [r5, r4] - adds r2, r5, 0 - adds r2, 0x8 - movs r1, 0x1 - bl sub_808CE74 -_080010AE: - bl sub_808D378 - cmp r0, 0 - bne _080010F2 - ldr r5, _080010E0 - ldrb r0, [r5, 0x1C] - cmp r0, 0 - bne _080010E4 - add r4, sp, 0x14 - movs r0, 0x6 - ldrsh r1, [r5, r0] - adds r0, r4, 0 - bl sub_808D8BC - mov r0, sp - adds r1, r4, 0 - bl sub_80922F4 - movs r1, 0x6 - ldrsh r0, [r5, r1] - movs r1, 0 - mov r2, sp - bl sub_808CE74 - b _080010F2 - .align 2, 0 -_080010E0: .4byte gUnknown_203B040 -_080010E4: - movs r4, 0x6 - ldrsh r0, [r5, r4] - adds r2, r5, 0 - adds r2, 0x1C - movs r1, 0 - bl sub_808CE74 -_080010F2: - ldr r3, _08001164 - movs r0, 0x4 - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _08001126 - ldr r2, _08001168 - movs r4, 0x4 - ldrsh r0, [r2, r4] - cmp r0, 0 - beq _0800111C - cmp r1, r0 - beq _0800111C -_0800110A: - adds r2, 0x8 - movs r0, 0x4 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _0800111C - movs r4, 0x4 - ldrsh r0, [r3, r4] - cmp r0, r1 - bne _0800110A -_0800111C: - ldr r2, [r2] - movs r0, 0 - movs r1, 0x27 - bl sub_80018D8 -_08001126: - ldr r3, _08001164 - movs r0, 0x6 - ldrsh r1, [r3, r0] - cmp r1, 0 - beq _0800115A - ldr r2, _0800116C - movs r4, 0x4 - ldrsh r0, [r2, r4] - cmp r0, 0 - beq _08001150 - cmp r1, r0 - beq _08001150 -_0800113E: - adds r2, 0x8 - movs r0, 0x4 - ldrsh r1, [r2, r0] - cmp r1, 0 - beq _08001150 - movs r4, 0x6 - ldrsh r0, [r3, r4] - cmp r0, r1 - bne _0800113E -_08001150: - ldr r2, [r2] - movs r0, 0 - movs r1, 0x26 - bl sub_80018D8 -_0800115A: - add sp, 0x28 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08001164: .4byte gUnknown_203B040 -_08001168: .4byte gUnknown_80B690C -_0800116C: .4byte gUnknown_80B6994 - thumb_func_end sub_8001064 - - thumb_func_start sub_8001170 -sub_8001170: - push {r4,lr} - sub sp, 0x8 - add r4, sp, 0x4 - movs r0, 0x63 - strb r0, [r4] - mov r1, sp - adds r1, 0x2 - mov r0, sp - bl sub_80992E0 - lsls r0, 24 - cmp r0, 0 - beq _08001196 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - bl sub_80A2740 - b _080011BE -_08001196: - adds r0, r4, 0 - bl sub_8099328 - lsls r0, 24 - cmp r0, 0 - bne _080011C0 - adds r0, r4, 0 - bl sub_8099360 - lsls r0, 24 - cmp r0, 0 - bne _080011C0 - mov r0, sp - adds r0, 0x5 - bl sub_8099394 - lsls r0, 24 - cmp r0, 0 - beq _080011C0 - movs r0, 0x3F -_080011BE: - strb r0, [r4] -_080011C0: - ldrb r0, [r4] - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8001170 - - thumb_func_start sub_80011CC -sub_80011CC: - push {r4,r5,lr} - adds r4, r0, 0 - movs r5, 0 - strb r1, [r4] - strb r5, [r4, 0x1] - bl sub_80011E8 - strb r5, [r4, 0xB] - strb r5, [r4, 0x4] - strb r5, [r4, 0xC] - strb r5, [r4, 0xD] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80011CC - - thumb_func_start sub_80011E8 -sub_80011E8: - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x8 - bl sub_80023E4 - strb r0, [r4, 0x5] - movs r0, 0x3 - bl sub_80023E4 - strb r0, [r4, 0x6] - movs r0, 0x7 - bl sub_80023E4 - strb r0, [r4, 0x8] - movs r0, 0 - bl sub_80023E4 - strb r0, [r4, 0x9] - movs r0, 0x5 - bl sub_80023E4 - strb r0, [r4, 0xA] - movs r0, 0x18 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _0800123C - movs r0, 0x19 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _0800123C - movs r0, 0x1A - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - beq _0800123C - movs r0, 0x1 - b _0800123E -_0800123C: - movs r0, 0 -_0800123E: - strb r0, [r4, 0x7] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80011E8 - - thumb_func_start sub_8001248 -sub_8001248: - push {r4,r5,lr} - movs r4, 0 - movs r5, 0 -_0800124E: - movs r0, 0x64 - bl RandomCapped - cmp r0, 0x31 - bgt _08001266 - lsls r0, r4, 2 - ldr r1, _080012B8 - ldr r1, [r1] - adds r0, r1 - strb r5, [r0, 0x2] - strb r5, [r0, 0x1] - strb r5, [r0] -_08001266: - adds r4, 0x1 - cmp r4, 0x13 - ble _0800124E - bl sub_80910B4 - movs r4, 0 - ldr r5, _080012BC - movs r3, 0x1 -_08001276: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r5] - adds r1, r0, r1 - ldrh r2, [r1] - adds r0, r3, 0 - ands r0, r2 - cmp r0, 0 - beq _08001298 - lsrs r0, r2, 1 - ands r0, r3 - cmp r0, 0 - beq _08001298 - adds r1, 0x28 - movs r0, 0 - strb r0, [r1] -_08001298: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08001276 - ldr r0, _080012B8 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080012B8: .4byte gUnknown_203B460 -_080012BC: .4byte gUnknown_203B45C - thumb_func_end sub_8001248 - - thumb_func_start sub_80012C0 -sub_80012C0: - push {r4,r5,lr} - movs r3, 0 - ldr r4, _08001324 - movs r2, 0 -_080012C8: - lsls r1, r3, 2 - ldr r0, [r4] - adds r1, r0 - strb r2, [r1, 0x2] - strb r2, [r1, 0x1] - strb r2, [r1] - adds r3, 0x1 - cmp r3, 0x13 - ble _080012C8 - bl sub_80910B4 - movs r3, 0 - ldr r5, _08001328 - movs r4, 0x1 -_080012E4: - movs r0, 0x58 - adds r1, r3, 0 - muls r1, r0 - ldr r0, [r5] - adds r1, r0, r1 - ldrh r2, [r1] - adds r0, r4, 0 - ands r0, r2 - cmp r0, 0 - beq _08001306 - lsrs r0, r2, 1 - ands r0, r4 - cmp r0, 0 - beq _08001306 - adds r1, 0x28 - movs r0, 0 - strb r0, [r1] -_08001306: - adds r3, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r3, r0 - ble _080012E4 - ldr r0, _08001324 - ldr r0, [r0] - movs r1, 0x98 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - str r1, [r0] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08001324: .4byte gUnknown_203B460 -_08001328: .4byte gUnknown_203B45C - thumb_func_end sub_80012C0 - .align 2, 0 @ Don't pad with nop. diff --git a/asm/code_2.s b/asm/code_2.s new file mode 100644 index 0000000..78c393a --- /dev/null +++ b/asm/code_2.s @@ -0,0 +1,1929 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start GameLoop +GameLoop: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x4 + movs r0, 0x1 + mov r9, r0 + bl InitHeap + bl NDS_DebugInit + bl sub_801180C + bl NDS_LoadOverlay_GroundMain + bl sub_8014144 + bl LoadMonsterParameters + bl sub_8097670 + bl sub_8094F88 + bl sub_8094980 + bl sub_8094C14 + bl sub_8097F5C + bl sub_80923A0 + bl sub_8090998 + bl sub_809207C + bl LoadWazaParameters + bl sub_80950BC + bl sub_80958E8 + movs r0, 0x80 + lsls r0, 8 + movs r1, 0 + bl sub_800CD64 + bl sub_8012284 + movs r0, 0x1 + bl sub_8094998 + ldr r0, _08000498 + bl SetWindowTitle + bl sub_800DAAC + movs r0, 0 + bl SetSavingIconCoords + movs r0, 0 + str r0, [sp] + mov r0, sp + bl sub_8011DAC + cmp r0, 0 + beq _080003D2 + bl sub_800135C +_080003D2: + movs r0, 0xE + bl xxx_script_related_8001334 + movs r0, 0xF + bl xxx_script_related_8001334 + movs r0, 0 + movs r1, 0x39 + bl sub_80015C0 + movs r0, 0x10 + bl xxx_script_related_8001334 + movs r0, 0 + movs r1, 0x39 + bl sub_8001658 + cmp r0, 0 + bne _080003FE + movs r0, 0x11 + bl xxx_script_related_8001334 +_080003FE: + movs r1, 0 + mov r10, r1 + ldr r2, _0800049C + mov r8, r2 +_08000406: + ldr r0, _080004A0 + mov r1, r10 + str r1, [r0] + movs r0, 0x2 + bl sub_800A8F8 + movs r0, 0x1 + bl ResetSprites + movs r0, 0 + bl xxx_update_some_bg_tiles + bl sub_80097B0 + movs r0, 0x2 + bl sub_800CDA8 + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + ldr r1, _080004A4 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8000634 + movs r0, 0 + movs r1, 0 + bl sub_800CCA0 + movs r0, 0 + movs r1, 0 + bl sub_800CCAC + mov r0, r10 + mov r1, r8 + str r0, [r1] +_08000456: + mov r2, r8 + ldr r0, [r2] + adds r0, 0x1 + str r0, [r2] + movs r4, 0 +_08000460: + ldr r0, _080004A8 + ldr r0, [r0] + lsls r2, r4, 2 + ldr r1, [r0, 0x4] + adds r1, r2 + mov r0, r8 + ldr r2, [r0] + adds r0, r4, 0 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + adds r4, 0x1 + cmp r4, 0xEF + ble _08000460 + movs r0, 0 + bl xxx_update_stuff + mov r1, r8 + ldr r0, [r1] + cmp r0, 0x1F + ble _08000456 + mov r2, r9 + cmp r2, 0 + beq _080004C0 + bl sub_8012468 + b _080004B2 + .align 2, 0 +_08000498: .4byte gUnknown_80B69BC +_0800049C: .4byte gUnknown_2000A80 +_080004A0: .4byte gUnknown_203B03C +_080004A4: .4byte gUnknown_2026E4E +_080004A8: .4byte gUnknown_203B038 +_080004AC: + movs r0, 0 + bl xxx_update_stuff +_080004B2: + bl sub_8012484 + lsls r0, 24 + cmp r0, 0 + bne _080004AC + bl sub_8012558 +_080004C0: + movs r0, 0x1 + mov r9, r0 + movs r0, 0x8 + bl sub_800BDFC + movs r4, 0x1 + movs r0, 0 + movs r1, 0x14 + bl sub_80095CC + bl InitMainMenu +_080004D8: + bl sub_80363E0 + lsls r0, 24 + cmp r0, 0 + beq _08000522 + ldr r3, _080004FC + ldrh r1, [r3, 0x2] + movs r2, 0x80 + lsls r2, 2 + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + beq _08000500 + movs r4, 0 + movs r0, 0x13 + bl SetBGOBJEnableFlags + b _08000516 + .align 2, 0 +_080004FC: .4byte gUnknown_20255F0 +_08000500: + cmp r4, 0 + bne _08000522 + ldrh r1, [r3] + adds r0, r2, 0 + ands r0, r1 + cmp r0, 0 + bne _08000516 + movs r4, 0x1 + movs r0, 0 + bl SetBGOBJEnableFlags +_08000516: + cmp r4, 0 + bne _08000522 + movs r0, 0 + bl xxx_update_stuff + b _080004D8 +_08000522: + bl SetUpMenu + movs r0, 0 + bl xxx_update_stuff + bl UpdateMenu + adds r5, r0, 0 + bl CleanUpMenu + cmp r5, 0x2 + beq _08000542 + cmp r5, 0x4 + beq _08000542 + cmp r5, 0x3 + bne _080004D8 +_08000542: + bl sub_80357D0 + mov r1, r8 + ldr r0, [r1] + cmp r0, 0 + ble _08000580 + ldr r7, _08000598 + adds r6, r7, 0 +_08000552: + ldr r0, [r6] + subs r0, 0x1 + str r0, [r6] + movs r4, 0 +_0800055A: + ldr r0, _0800059C + ldr r0, [r0] + lsls r2, r4, 2 + ldr r1, [r0, 0x4] + adds r1, r2 + ldr r2, [r6] + adds r0, r4, 0 + movs r3, 0 + bl SetBGPaletteBufferColorRGB + adds r4, 0x1 + cmp r4, 0xEF + ble _0800055A + movs r0, 0 + bl xxx_update_stuff + ldr r0, [r7] + cmp r0, 0 + bgt _08000552 +_08000580: + ldr r0, _0800059C + ldr r0, [r0] + bl CloseFile + cmp r5, 0x3 + beq _080005CA + cmp r5, 0x3 + bhi _080005A0 + cmp r5, 0x2 + beq _080005A6 + b _08000406 + .align 2, 0 +_08000598: .4byte gUnknown_2000A80 +_0800059C: .4byte gUnknown_203B038 +_080005A0: + cmp r5, 0x4 + beq _080005C6 + b _08000406 +_080005A6: + movs r0, 0x7 + bl sub_80953D4 + adds r1, r0, 0 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080005C2 + lsls r0, r1, 24 + lsrs r0, 24 + bl sub_8095240 + movs r0, 0x2 + b _080005D4 +_080005C2: + movs r0, 0x1 + b _080005D4 +_080005C6: + movs r0, 0x3 + b _080005D4 +_080005CA: + bl sub_80122A8 + bl nullsub_33 + movs r0, 0 +_080005D4: + bl sub_80009D0 + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + b _08000406 + thumb_func_end GameLoop + + thumb_func_start xxx_update_stuff +xxx_update_stuff: + push {lr} + bl xxx_draw_string_80144C4 + movs r0, 0 + movs r1, 0 + bl sub_8005838 + ldr r0, _08000630 + ldr r0, [r0] + ldrb r0, [r0, 0xA] + bl nullsub_8 + bl sub_8005180 + bl sub_80060EC + bl sub_8011860 + bl sub_800CB20 + bl sub_800485C + bl CopySpritesToOam + bl sub_8005304 + bl TransferBGPaletteBuffer + bl xxx_call_update_bg_vram + bl sub_8009908 + bl xxx_call_update_bg_sound_input + movs r0, 0 + bl ResetSprites + pop {r0} + bx r0 + .align 2, 0 +_08000630: .4byte gUnknown_203B46C + thumb_func_end xxx_update_stuff + + thumb_func_start sub_8000634 +sub_8000634: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x18 + mov r1, sp + ldr r0, _08000708 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + add r5, sp, 0xC + adds r1, r5, 0 + ldr r0, _0800070C + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, _08000710 + movs r1, 0 + bl MemoryAlloc + adds r7, r0, 0 + movs r0, 0x3 + bl RandomCapped + adds r4, r0, 0 + lsls r4, 2 + adds r5, r4 + ldr r0, [r5] + ldr r5, _08000714 + adds r1, r5, 0 + bl OpenFileAndGetFileDataPtr + ldr r1, _08000718 + str r0, [r1] + mov r1, sp + adds r0, r1, r4 + ldr r0, [r0] + adds r1, r5, 0 + bl OpenFileAndGetFileDataPtr + mov r8, r0 + adds r0, r7, 0 + movs r1, 0 + mov r2, r8 + bl sub_800AAA8 + movs r2, 0 + ldr r0, _0800071C + movs r3, 0xC0 + lsls r3, 5 + adds r3, r0 + mov r9, r3 + movs r4, 0x80 + lsls r4, 5 + adds r4, r0 + mov r12, r4 +_080006A0: + movs r5, 0 + lsls r1, r2, 6 + adds r6, r2, 0x1 + mov r0, r9 + adds r4, r1, r0 + mov r2, r12 + adds r3, r1, r2 + movs r2, 0x80 + lsls r2, 4 + adds r0, r7, r2 + adds r2, r1, r0 + adds r1, r7 +_080006B8: + ldrh r0, [r1] + strh r0, [r3] + ldrh r0, [r2] + strh r0, [r4] + adds r4, 0x2 + adds r3, 0x2 + adds r2, 0x2 + adds r1, 0x2 + adds r5, 0x1 + cmp r5, 0x1F + ble _080006B8 + adds r2, r6, 0 + cmp r2, 0x1F + ble _080006A0 + movs r0, 0x2 + bl sub_80098F8 + movs r0, 0x3 + bl sub_80098F8 + ldr r0, _08000720 + movs r3, 0x80 + lsls r3, 5 + adds r1, r7, r3 + ldr r2, _08000724 + bl CpuCopy + mov r0, r8 + bl CloseFile + adds r0, r7, 0 + bl MemoryFree + add sp, 0x18 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_08000708: .4byte gUnknown_80B69F8 +_0800070C: .4byte gUnknown_80B6A28 +_08000710: .4byte 0x00005b20 +_08000714: .4byte gUnknown_8380000 +_08000718: .4byte gUnknown_203B038 +_0800071C: .4byte gUnknown_202B038 +_08000720: .4byte 0x06008000 +_08000724: .4byte 0x00004b20 + thumb_func_end sub_8000634 + + thumb_func_start sub_8000728 +sub_8000728: + ldr r0, _08000730 + ldr r0, [r0] + bx lr + .align 2, 0 +_08000730: .4byte gUnknown_203B03C + thumb_func_end sub_8000728 + + thumb_func_start QuickSave +QuickSave: + push {r4-r6,lr} + sub sp, 0xC + adds r5, r0, 0 + movs r4, 0 + movs r6, 0 + movs r0, 0 + bl xxx_update_some_bg_tiles + bl sub_8014144 + bl sub_80097B0 + movs r0, 0x2 + bl sub_800CDA8 + movs r0, 0 + movs r1, 0x14 + bl sub_80095CC + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + movs r1, 0x14 + bl sub_8009408 + ldr r0, _080007AC + movs r2, 0x80 + lsls r2, 5 + adds r1, r2, 0 + strh r1, [r0] + bl sub_8099648 + bl sub_8094C14 + movs r0, 0 + bl sub_8099690 + bl sub_8099744 + bl sub_8099750 + movs r0, 0x3 + bl sub_80063D8 + movs r0, 0 + movs r1, 0 + bl sub_8005838 + bl sub_80060EC + ldr r0, _080007B0 + movs r1, 0 + movs r2, 0 + movs r3, 0x20 + bl sub_80141B4 + b _08000892 + .align 2, 0 +_080007AC: .4byte gUnknown_2026E4E +_080007B0: .4byte gUnknown_80B6A34 +_080007B4: + cmp r4, 0x1 + beq _0800086C + cmp r4, 0x1 + bgt _080007C2 + cmp r4, 0 + beq _080007CC + b _0800088E +_080007C2: + cmp r4, 0x2 + beq _08000884 + cmp r4, 0x3 + beq _08000892 + b _0800088E +_080007CC: + str r4, [sp, 0x4] + movs r0, 0x3F + str r0, [sp] + mov r0, sp + bl sub_8097688 + bl sub_80140DC + cmp r5, 0x3 + bhi _080007EC + add r0, sp, 0x4 + movs r1, 0x1 + bl sub_801203C + adds r4, r0, 0 + b _080007EE +_080007EC: + movs r4, 0x2 +_080007EE: + cmp r4, 0 + bne _080007FA + ldr r0, _08000818 + bl sub_80121E0 + adds r4, r0, 0 +_080007FA: + bl sub_8014114 + cmp r4, 0 + bne _0800083C + cmp r5, 0x1 + beq _08000812 + cmp r5, 0x1 + bcc _08000820 + cmp r5, 0x2 + beq _08000820 + cmp r5, 0x3 + bne _08000820 +_08000812: + ldr r0, _0800081C + b _08000822 + .align 2, 0 +_08000818: .4byte 0x000f1206 +_0800081C: .4byte gUnknown_80B6A7C +_08000820: + ldr r0, _08000834 +_08000822: + movs r1, 0 + movs r2, 0 + ldr r3, _08000838 + bl sub_80141B4 + movs r6, 0x3C + movs r4, 0x1 + b _08000892 + .align 2, 0 +_08000834: .4byte gUnknown_80B6AA0 +_08000838: .4byte 0x00000321 +_0800083C: + cmp r4, 0x1 + bne _08000854 + ldr r0, _08000850 + movs r1, 0 + movs r2, 0 + movs r3, 0 + bl sub_80141B4 + movs r4, 0x3 + b _08000892 + .align 2, 0 +_08000850: .4byte gUnknown_80B6B14 +_08000854: + ldr r0, _08000864 + movs r1, 0 + movs r2, 0 + ldr r3, _08000868 + bl sub_80141B4 +_08000860: + movs r4, 0x2 + b _08000892 + .align 2, 0 +_08000864: .4byte gUnknown_80B6B78 +_08000868: .4byte 0x00000301 +_0800086C: + cmp r6, 0 + ble _08000860 + ldr r0, _08000880 + ldrh r1, [r0, 0x2] + subs r6, 0x1 + movs r0, 0x3 + ands r1, r0 + cmp r1, 0 + beq _08000892 + b _08000860 + .align 2, 0 +_08000880: .4byte gUnknown_20255F0 +_08000884: + add r0, sp, 0x8 + bl sub_80144A4 + cmp r0, 0 + bne _08000892 +_0800088E: + movs r4, 0x1 + negs r4, r4 +_08000892: + movs r0, 0 + bl xxx_update_stuff + cmp r4, 0 + bge _080007B4 + bl sub_8014490 + movs r0, 0 + bl xxx_update_stuff + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + bl xxx_update_stuff + add sp, 0xC + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end QuickSave + + thumb_func_start sub_80008C0 +sub_80008C0: + push {r4-r6,lr} + sub sp, 0x4 + adds r5, r0, 0 + movs r4, 0 + movs r6, 0 + movs r0, 0 + bl xxx_update_some_bg_tiles + bl sub_8014144 + bl sub_80097B0 + movs r0, 0x2 + bl sub_800CDA8 + movs r0, 0 + movs r1, 0x14 + bl sub_80095CC + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + movs r1, 0x14 + bl sub_8009408 + ldr r1, _08000930 + movs r2, 0x80 + lsls r2, 5 + adds r0, r2, 0 + strh r0, [r1] + bl sub_8099648 + bl sub_8094C14 + movs r0, 0 + bl sub_8099690 + bl sub_8099744 + bl sub_8099750 + movs r0, 0x3 + bl sub_80063D8 + cmp r5, 0x1 + beq _08000948 + cmp r5, 0x1 + bcc _08000934 + cmp r5, 0x2 + beq _08000950 + cmp r5, 0x3 + beq _08000950 + b _080009A2 + .align 2, 0 +_08000930: .4byte gUnknown_2026E4E +_08000934: + ldr r0, _08000944 + movs r1, 0 + movs r2, 0 + movs r3, 0x20 + bl sub_80141B4 + movs r4, 0x2 + b _080009A2 + .align 2, 0 +_08000944: .4byte gUnknown_80B6B88 +_08000948: + ldr r0, _0800094C + b _08000952 + .align 2, 0 +_0800094C: .4byte gUnknown_80B6BDC +_08000950: + ldr r0, _08000960 +_08000952: + ldr r3, _08000964 + movs r1, 0 + movs r2, 0 + bl sub_80141B4 +_0800095C: + movs r4, 0x1 + b _080009A2 + .align 2, 0 +_08000960: .4byte gUnknown_80B6CB8 +_08000964: .4byte 0x00000301 +_08000968: + cmp r4, 0x1 + beq _08000994 + cmp r4, 0x1 + bgt _08000976 + cmp r4, 0 + beq _0800097C + b _0800099E +_08000976: + cmp r4, 0x2 + beq _080009A2 + b _0800099E +_0800097C: + cmp r6, 0 + ble _0800095C + ldr r0, _08000990 + ldrh r1, [r0, 0x2] + subs r6, 0x1 + movs r0, 0x3 + ands r1, r0 + cmp r1, 0 + beq _080009A2 + b _0800095C + .align 2, 0 +_08000990: .4byte gUnknown_20255F0 +_08000994: + mov r0, sp + bl sub_80144A4 + cmp r0, 0 + bne _080009A2 +_0800099E: + movs r4, 0x1 + negs r4, r4 +_080009A2: + movs r0, 0 + bl xxx_update_stuff + cmp r4, 0 + bge _08000968 + bl sub_8014490 + movs r0, 0 + bl xxx_update_stuff + movs r0, 0 + movs r1, 0x1 + movs r2, 0x1 + bl sub_800641C + movs r0, 0 + bl xxx_update_stuff + add sp, 0x4 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_80008C0 + + thumb_func_start sub_80009D0 +sub_80009D0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + ldr r4, _08000A04 + add sp, r4 + adds r4, r0, 0 + movs r0, 0 + movs r1, 0x18 + bl sub_8001658 + adds r7, r0, 0 + movs r0, 0 + mov r10, r0 + bl sub_801180C + movs r0, 0x10 + bl sub_80118C4 + cmp r7, 0x7 + bne _08000A30 + cmp r4, 0x2 + bne _08000A08 + movs r7, 0x8 + b _08000A3A + .align 2, 0 +_08000A04: .4byte 0xfffffdd4 +_08000A08: + cmp r4, 0x3 + bne _08000A3A + movs r7, 0xB + movs r0, 0 + movs r1, 0x18 + movs r2, 0xB + bl sub_80018D8 + bl sub_8096BD0 + movs r0, 0x3 + bl QuickSave + b _08000A3A +_08000A24: + movs r3, 0x1 + mov r10, r3 + b _08000EC6 +_08000A2A: + movs r0, 0x1 + mov r10, r0 + b _08000EC6 +_08000A30: + cmp r7, 0 + beq _08000A3A + cmp r7, 0xB + beq _08000A3A + movs r7, 0x1 +_08000A3A: + movs r0, 0 + movs r1, 0x41 + bl sub_80015C0 +_08000A42: + cmp r7, 0x4 + bne _08000AB6 + movs r0, 0 + movs r1, 0xD + bl sub_8001658 + lsls r0, 16 + asrs r0, 16 + bl sub_8002658 + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + ldr r0, _08000A9C + movs r1, 0x8 + bl MemoryAlloc + str r0, [sp, 0x8] + mov r0, sp + strb r4, [r0, 0x4] + movs r0, 0x9 + bl sub_80023E4 + mov r1, sp + strb r0, [r1, 0x5] + mov r0, sp + bl sub_800F990 + ldr r0, [sp, 0x8] + bl MemoryFree + mov r0, sp + ldrb r0, [r0, 0xC] + cmp r0, 0x3A + beq _08000B70 + mov r0, sp + ldrb r0, [r0, 0xC] + cmp r0, 0 + beq _08000AA0 + bl sub_8002694 + lsls r0, 16 + asrs r2, r0, 16 + b _08000AA2 + .align 2, 0 +_08000A9C: .4byte 0x00004e30 +_08000AA0: + movs r2, 0x9 +_08000AA2: + movs r0, 0 + movs r1, 0xD + bl sub_80018D8 + movs r0, 0 + movs r1, 0xE + movs r2, 0 + bl sub_80018D8 + b _08000B70 +_08000AB6: + cmp r7, 0x5 + bne _08000B9C + movs r0, 0 + movs r1, 0x12 + bl sub_8001658 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + bl sub_80A2740 + lsls r0, 24 + lsrs r6, r0, 24 + movs r4, 0 + ldr r5, _08000B18 + add r5, sp +_08000AD6: + lsls r0, r4, 24 + lsrs r0, 24 + bl sub_80A28F0 + adds r1, r5, r4 + strb r0, [r1] + adds r4, 0x1 + cmp r4, 0x3E + ble _08000AD6 + cmp r6, 0x63 + beq _08000B70 + add r4, sp, 0xB8 + movs r0, 0x3F + strb r0, [r4, 0x4] + add r0, sp, 0xC0 + adds r1, r6, 0 + bl sub_80011CC + ldrb r1, [r4, 0xD] + add r0, sp, 0x128 + strb r1, [r0] + mov r0, r8 + bl sub_80A2750 + lsls r0, 16 + asrs r0, 16 + adds r5, r4, 0 + cmp r0, 0x1 + beq _08000B1C + cmp r0, 0x2 + beq _08000B3C + b _08000B50 + .align 2, 0 +_08000B18: .4byte 0x00000129 +_08000B1C: + add r4, sp, 0x170 + add r0, sp, 0x174 + mov r1, r8 + bl sub_80990EC + lsls r0, 24 + cmp r0, 0 + beq _08000B50 + ldrb r0, [r4, 0x10] + strb r0, [r5, 0x14] + add r0, sp, 0xD0 + add r1, sp, 0x18C + movs r2, 0x58 + bl memcpy + b _08000B50 +_08000B3C: + ldrb r0, [r5, 0x8] + add r1, sp, 0xD0 + bl sub_8096A08 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + beq _08000B4E + movs r0, 0x1 +_08000B4E: + strb r0, [r5, 0x14] +_08000B50: + ldr r0, _08000B74 + movs r1, 0x8 + bl MemoryAlloc + add r4, sp, 0x168 + str r0, [r4] + adds r0, r5, 0 + bl sub_8010268 + ldr r0, [r4] + bl MemoryFree + add r0, sp, 0x16C + ldrb r0, [r0] + cmp r0, 0 + bne _08000B78 +_08000B70: + movs r7, 0x2 + b _08000A42 + .align 2, 0 +_08000B74: .4byte 0x00006474 +_08000B78: + movs r0, 0 + movs r1, 0x13 + mov r2, r8 + bl sub_80018D8 + ldr r1, _08000B98 + movs r0, 0x2 + str r0, [r1] + movs r0, 0x4 + bl sub_800A8F8 + movs r0, 0x5 + bl xxx_script_related_8001334 + adds r5, r0, 0 + b _08000BEC + .align 2, 0 +_08000B98: .4byte gUnknown_203B03C +_08000B9C: + cmp r7, 0x8 + bne _08000BA4 + movs r5, 0 + b _08000BEC +_08000BA4: + cmp r7, 0x7 + bne _08000BAC + movs r5, 0x2 + b _08000BEC +_08000BAC: + cmp r7, 0xB + bne _08000BB6 + bl sub_80012C0 + b _08000BBE +_08000BB6: + cmp r7, 0xC + bne _08000BBE + bl sub_8001248 +_08000BBE: + ldr r1, _08000BE0 + movs r0, 0x2 + str r0, [r1] + movs r0, 0x4 + bl sub_800A8F8 + adds r0, r7, 0 + bl xxx_script_related_8001334 + adds r5, r0, 0 + cmp r5, 0xE + bne _08000BD8 + b _08000EC6 +_08000BD8: + cmp r5, 0x5 + bne _08000BE4 + movs r7, 0x4 + b _08000A42 + .align 2, 0 +_08000BE0: .4byte gUnknown_203B03C +_08000BE4: + cmp r5, 0x6 + bne _08000BEC + movs r7, 0x5 + b _08000A42 +_08000BEC: + add r6, sp, 0x170 + movs r4, 0 + strb r4, [r6, 0x11] + strb r4, [r6, 0x10] + movs r3, 0xC6 + lsls r3, 1 + add r3, sp + mov r8, r3 + mov r0, r8 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + movs r0, 0 + mov r9, r0 + strh r4, [r6, 0x24] + cmp r5, 0x7 + beq _08000C3C + cmp r5, 0x8 + bne _08000C38 + add r0, sp, 0x174 + add r1, sp, 0x228 + bl sub_80991E0 + lsls r0, 24 + cmp r0, 0 + beq _08000C4C + ldrb r0, [r6, 0x4] + mov r1, r8 + bl sub_8096A08 + lsls r0, 24 + cmp r0, 0 + bne _08000C32 + b _08000D98 +_08000C32: + movs r0, 0x1 + strb r0, [r6, 0x10] + b _08000D98 +_08000C38: + cmp r5, 0xA + bne _08000C52 +_08000C3C: + add r0, sp, 0x174 + add r1, sp, 0x228 + bl sub_80991E0 + lsls r0, 24 + cmp r0, 0 + beq _08000C4C + b _08000D98 +_08000C4C: + movs r5, 0xD + movs r7, 0x9 + b _08000D98 +_08000C52: + cmp r5, 0x9 + bne _08000C6C + add r0, sp, 0x174 + add r1, sp, 0x228 + bl sub_80991E0 + lsls r0, 24 + cmp r0, 0 + beq _08000C66 + b _08000D98 +_08000C66: + movs r5, 0xB + movs r7, 0xC + b _08000D98 +_08000C6C: + cmp r5, 0 + bne _08000D04 + bl sub_8011FA8 + adds r1, r0, 0 + ldr r0, _08000CA0 + cmp r1, r0 + bne _08000CC8 + movs r2, 0x1 + strb r2, [r6, 0x11] + strb r2, [r6, 0x8] + mov r3, r9 + strb r3, [r6, 0xF] + ldr r0, _08000CA4 + ldr r1, [r0] + movs r3, 0xC + ldrsh r0, [r1, r3] + cmp r0, 0 + beq _08000CA8 + strb r2, [r6, 0x10] + adds r1, 0x4 + mov r0, r8 + movs r2, 0x58 + bl memcpy + b _08000CAC + .align 2, 0 +_08000CA0: .4byte 0x000f1207 +_08000CA4: .4byte gUnknown_203B484 +_08000CA8: + mov r0, r9 + strb r0, [r6, 0x10] +_08000CAC: + ldr r4, _08000CC4 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r1, [r4] + movs r0, 0 + strh r0, [r1, 0xC] + b _08000CE4 + .align 2, 0 +_08000CC4: .4byte gUnknown_203B484 +_08000CC8: + ldr r0, _08000CD8 + cmp r1, r0 + bne _08000CDC + movs r5, 0x1 + movs r7, 0xB + bl sub_8096BD0 + b _08000CE4 + .align 2, 0 +_08000CD8: .4byte 0x000f1208 +_08000CDC: + movs r5, 0x1 + movs r7, 0xB + bl sub_8096BD0 +_08000CE4: + cmp r5, 0x1 + bne _08000D98 + ldr r4, _08000D00 + ldr r0, [r4] + adds r0, 0x4 + movs r1, 0 + movs r2, 0x58 + bl MemoryFill8 + ldr r1, [r4] + movs r0, 0 + strh r0, [r1, 0xC] + b _08000D98 + .align 2, 0 +_08000D00: .4byte gUnknown_203B484 +_08000D04: + cmp r5, 0x2 + bne _08000D98 + bl sub_8011C1C + cmp r0, 0x2 + bne _08000D34 + bl sub_8011FA8 + adds r1, r0, 0 + movs r0, 0x1 + strb r0, [r6, 0x8] + mov r3, r9 + strb r3, [r6, 0x11] + ldr r0, _08000D30 + cmp r1, r0 + beq _08000D36 + adds r0, 0x1 + movs r5, 0x1 + movs r7, 0xB + bl sub_8096BD0 + b _08000D36 + .align 2, 0 +_08000D30: .4byte 0x000f1207 +_08000D34: + movs r5, 0x3 +_08000D36: + cmp r5, 0x3 + bne _08000D7A + bl sub_8001170 + lsls r0, 24 + lsrs r4, r0, 24 + movs r5, 0x1 + movs r7, 0xB + bl sub_8096BD0 + cmp r4, 0x3F + beq _08000D70 + cmp r4, 0x63 + beq _08000D70 + adds r0, r4, 0 + bl GetSaveBeforeEntering + lsls r0, 24 + cmp r0, 0 + beq _08000D70 + bl sub_8011C1C + cmp r0, 0x2 + bne _08000D6C + movs r5, 0x3 + movs r7, 0x7 + b _08000D70 +_08000D6C: + movs r5, 0xC + movs r7, 0xA +_08000D70: + cmp r5, 0x1 + bne _08000D98 + bl sub_8011C1C + b _08000D98 +_08000D7A: + cmp r5, 0x4 + bne _08000D8E + movs r5, 0x1 + movs r7, 0xB + bl sub_8096BD0 + movs r0, 0x1 + bl sub_80008C0 + b _08000D98 +_08000D8E: + cmp r5, 0x1 + bne _08000D98 + movs r7, 0xB + bl sub_8096BD0 +_08000D98: + subs r0, r5, 0x7 + cmp r0, 0x3 + bls _08000DAC + cmp r5, 0 + beq _08000E1E + cmp r5, 0x2 + beq _08000DAC + cmp r5, 0x3 + beq _08000DAC + b _08000A42 +_08000DAC: + cmp r5, 0 + beq _08000E1E + cmp r5, 0x2 + beq _08000E1E + cmp r5, 0x3 + beq _08000E1E + bl sub_8001170 + lsls r0, 24 + lsrs r6, r0, 24 + bl sub_8097758 + cmp r5, 0x9 + bne _08000E00 + ldr r4, _08000DF4 + add r4, sp + adds r0, r4, 0 + bl sub_8099394 + lsls r0, 24 + cmp r0, 0 + beq _08000E00 + ldrb r0, [r4] + bl sub_8095228 + adds r2, r0, 0 + adds r0, 0x2C + ldrb r1, [r0] + ldrb r0, [r0] + lsls r0, 24 + asrs r0, 24 + cmp r0, 0x1 + ble _08000DF8 + subs r1, 0x1 + b _08000DFA + .align 2, 0 +_08000DF4: .4byte 0x0000022a +_08000DF8: + movs r1, 0 +_08000DFA: + adds r0, r2, 0 + adds r0, 0x2C + strb r1, [r0] +_08000E00: + cmp r6, 0x3F + bne _08000E0C + movs r0, 0 + bl QuickSave + b _08000E1E +_08000E0C: + adds r0, r6, 0 + bl GetSaveBeforeEntering + lsls r0, 24 + cmp r0, 0 + bne _08000E1E + movs r0, 0 + bl QuickSave +_08000E1E: + ldr r0, _08000E70 + movs r4, 0x1 + str r4, [r0] + movs r0, 0x3 + bl sub_800A8F8 + add r5, sp, 0x170 + str r4, [r5] + add r0, sp, 0x174 + bl sub_80011E8 + adds r0, r5, 0 + bl sub_8000EDC + add r4, sp, 0x1EC + movs r0, 0 + ldrsh r1, [r4, r0] + cmp r1, 0x3 + bne _08000E46 + b _08000A24 +_08000E46: + movs r0, 0x2 + negs r0, r0 + cmp r1, r0 + bne _08000E50 + b _08000A2A +_08000E50: + movs r0, 0 + movs r1, 0x41 + bl sub_80015C0 + ldrh r0, [r4] + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0x6 + bhi _08000EBE + lsls r0, 2 + ldr r1, _08000E74 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08000E70: .4byte gUnknown_203B03C +_08000E74: .4byte _08000E78 + .align 2, 0 +_08000E78: + .4byte _08000EB6 + .4byte _08000EBE + .4byte _08000E94 + .4byte _08000EB2 + .4byte _08000EBE + .4byte _08000E94 + .4byte _08000EBE +_08000E94: + movs r7, 0x9 + movs r0, 0xF7 + lsls r0, 1 + add r0, sp + ldrb r0, [r0] + movs r3, 0x1 + cmp r0, 0 + beq _08000EA6 + movs r3, 0x2 +_08000EA6: + movs r0, 0 + movs r1, 0x41 + movs r2, 0 + bl sub_800199C + b _08000A42 +_08000EB2: + movs r7, 0xA + b _08000A42 +_08000EB6: + movs r7, 0xC + bl sub_8096BD0 + b _08000A42 +_08000EBE: + movs r7, 0xB + bl sub_8096BD0 + b _08000A42 +_08000EC6: + mov r0, r10 + movs r3, 0x8B + lsls r3, 2 + add sp, r3 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80009D0 + + thumb_func_start sub_8000EDC +sub_8000EDC: + push {r4-r7,lr} + sub sp, 0x8 + adds r4, r0, 0 + movs r5, 0x1 + ldr r0, _08000F24 + str r5, [r0] + movs r0, 0x3 + bl sub_800A8F8 + bl sub_8014144 + add r1, sp, 0x4 + mov r0, sp + bl sub_8043D50 + ldr r0, [sp] + movs r1, 0x7 + bl MemoryAlloc + str r0, [r4, 0x74] + ldr r0, [sp, 0x4] + movs r1, 0x7 + bl MemoryAlloc + str r0, [r4, 0x78] + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _08000F68 + ldr r0, [r4, 0x74] + ldr r1, [sp] + bl sub_801277C + adds r7, r4, 0 + adds r7, 0x7C + b _08000F2E + .align 2, 0 +_08000F24: .4byte gUnknown_203B03C +_08000F28: + movs r0, 0 + bl xxx_update_stuff +_08000F2E: + bl sub_80127A8 + lsls r0, 24 + cmp r0, 0 + bne _08000F28 + bl sub_8012828 + lsls r0, 24 + lsrs r5, r0, 24 + bl sub_8012834 + bl sub_8011830 + cmp r5, 0 + beq _08000F58 + ldr r0, _08000F54 + bl sub_80121E0 + b _08000F5E + .align 2, 0 +_08000F54: .4byte 0x000f1208 +_08000F58: + ldr r0, _08000F64 + bl sub_80121E0 +_08000F5E: + bl sub_8011854 + b _08000F78 + .align 2, 0 +_08000F64: .4byte 0x000f1209 +_08000F68: + bl sub_809674C + bl sub_80961B4 + bl sub_808ED00 + adds r7, r4, 0 + adds r7, 0x7C +_08000F78: + cmp r5, 0 + beq _08000F92 + adds r0, r4, 0 + bl xxx_dungeon_8001340 + bl sub_8099648 + bl sub_8094C14 + movs r0, 0 + bl sub_8099690 + b _08000F96 +_08000F92: + movs r0, 0x5 + strh r0, [r7] +_08000F96: + adds r5, r7, 0 + movs r1, 0 + ldrsh r0, [r5, r1] + movs r6, 0x2 + negs r6, r6 + cmp r0, r6 + bne _08000FAC + adds r0, r4, 0 + adds r0, 0x84 + bl sub_809542C +_08000FAC: + movs r1, 0 + ldrsh r0, [r5, r1] + cmp r0, 0x3 + beq _08000FB8 + cmp r0, r6 + bne _0800100C +_08000FB8: + adds r0, r4, 0 + adds r0, 0x80 + bl sub_8097688 + bl sub_8011924 + movs r1, 0 + ldrsh r0, [r7, r1] + cmp r0, r6 + bne _08000FD8 + ldr r0, [r4, 0x74] + ldr r1, [sp] + movs r2, 0x1 + bl sub_8012850 + b _08000FFA +_08000FD8: + ldr r0, [r4, 0x74] + ldr r1, [sp] + movs r2, 0 + bl sub_8012850 + b _08000FFA +_08000FE4: + cmp r0, 0x1 + bne _08000FF4 + ldr r0, [r4, 0x78] + bl MemoryFree + ldr r0, [r4, 0x74] + bl MemoryFree +_08000FF4: + movs r0, 0 + bl xxx_update_stuff +_08000FFA: + bl sub_80128B0 + cmp r0, 0x2 + beq _08001006 + cmp r0, 0x3 + bne _08000FE4 +_08001006: + bl sub_80129FC + b _0800101C +_0800100C: + bl sub_808ED00 + ldr r0, [r4, 0x78] + bl MemoryFree + ldr r0, [r4, 0x74] + bl MemoryFree +_0800101C: + add sp, 0x8 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_8000EDC + + thumb_func_start sub_8001024 +sub_8001024: + push {r4,lr} + ldr r1, _08001040 + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + ldm r1!, {r2-r4} + stm r0!, {r2-r4} + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08001040: .4byte gUnknown_203B040 + thumb_func_end sub_8001024 + + thumb_func_start sub_8001044 +sub_8001044: + push {r4,lr} + ldr r1, _08001060 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_08001060: .4byte gUnknown_203B040 + thumb_func_end sub_8001044 + + thumb_func_start sub_8001064 +sub_8001064: + push {r4,r5,lr} + sub sp, 0x28 + bl sub_808D33C + cmp r0, 0 + bne _080010AE + ldr r5, _0800109C + ldrb r0, [r5, 0x8] + cmp r0, 0 + bne _080010A0 + add r4, sp, 0x14 + movs r0, 0x4 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_808D8BC + mov r0, sp + adds r1, r4, 0 + bl sub_80922F4 + movs r1, 0x4 + ldrsh r0, [r5, r1] + movs r1, 0x1 + mov r2, sp + bl sub_808CE74 + b _080010AE + .align 2, 0 +_0800109C: .4byte gUnknown_203B040 +_080010A0: + movs r4, 0x4 + ldrsh r0, [r5, r4] + adds r2, r5, 0 + adds r2, 0x8 + movs r1, 0x1 + bl sub_808CE74 +_080010AE: + bl sub_808D378 + cmp r0, 0 + bne _080010F2 + ldr r5, _080010E0 + ldrb r0, [r5, 0x1C] + cmp r0, 0 + bne _080010E4 + add r4, sp, 0x14 + movs r0, 0x6 + ldrsh r1, [r5, r0] + adds r0, r4, 0 + bl sub_808D8BC + mov r0, sp + adds r1, r4, 0 + bl sub_80922F4 + movs r1, 0x6 + ldrsh r0, [r5, r1] + movs r1, 0 + mov r2, sp + bl sub_808CE74 + b _080010F2 + .align 2, 0 +_080010E0: .4byte gUnknown_203B040 +_080010E4: + movs r4, 0x6 + ldrsh r0, [r5, r4] + adds r2, r5, 0 + adds r2, 0x1C + movs r1, 0 + bl sub_808CE74 +_080010F2: + ldr r3, _08001164 + movs r0, 0x4 + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _08001126 + ldr r2, _08001168 + movs r4, 0x4 + ldrsh r0, [r2, r4] + cmp r0, 0 + beq _0800111C + cmp r1, r0 + beq _0800111C +_0800110A: + adds r2, 0x8 + movs r0, 0x4 + ldrsh r1, [r2, r0] + cmp r1, 0 + beq _0800111C + movs r4, 0x4 + ldrsh r0, [r3, r4] + cmp r0, r1 + bne _0800110A +_0800111C: + ldr r2, [r2] + movs r0, 0 + movs r1, 0x27 + bl sub_80018D8 +_08001126: + ldr r3, _08001164 + movs r0, 0x6 + ldrsh r1, [r3, r0] + cmp r1, 0 + beq _0800115A + ldr r2, _0800116C + movs r4, 0x4 + ldrsh r0, [r2, r4] + cmp r0, 0 + beq _08001150 + cmp r1, r0 + beq _08001150 +_0800113E: + adds r2, 0x8 + movs r0, 0x4 + ldrsh r1, [r2, r0] + cmp r1, 0 + beq _08001150 + movs r4, 0x6 + ldrsh r0, [r3, r4] + cmp r0, r1 + bne _0800113E +_08001150: + ldr r2, [r2] + movs r0, 0 + movs r1, 0x26 + bl sub_80018D8 +_0800115A: + add sp, 0x28 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08001164: .4byte gUnknown_203B040 +_08001168: .4byte gUnknown_80B690C +_0800116C: .4byte gUnknown_80B6994 + thumb_func_end sub_8001064 + + thumb_func_start sub_8001170 +sub_8001170: + push {r4,lr} + sub sp, 0x8 + add r4, sp, 0x4 + movs r0, 0x63 + strb r0, [r4] + mov r1, sp + adds r1, 0x2 + mov r0, sp + bl sub_80992E0 + lsls r0, 24 + cmp r0, 0 + beq _08001196 + mov r0, sp + movs r1, 0 + ldrsh r0, [r0, r1] + bl sub_80A2740 + b _080011BE +_08001196: + adds r0, r4, 0 + bl sub_8099328 + lsls r0, 24 + cmp r0, 0 + bne _080011C0 + adds r0, r4, 0 + bl sub_8099360 + lsls r0, 24 + cmp r0, 0 + bne _080011C0 + mov r0, sp + adds r0, 0x5 + bl sub_8099394 + lsls r0, 24 + cmp r0, 0 + beq _080011C0 + movs r0, 0x3F +_080011BE: + strb r0, [r4] +_080011C0: + ldrb r0, [r4] + add sp, 0x8 + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_8001170 + + thumb_func_start sub_80011CC +sub_80011CC: + push {r4,r5,lr} + adds r4, r0, 0 + movs r5, 0 + strb r1, [r4] + strb r5, [r4, 0x1] + bl sub_80011E8 + strb r5, [r4, 0xB] + strb r5, [r4, 0x4] + strb r5, [r4, 0xC] + strb r5, [r4, 0xD] + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80011CC + + thumb_func_start sub_80011E8 +sub_80011E8: + push {r4,lr} + adds r4, r0, 0 + movs r0, 0x8 + bl sub_80023E4 + strb r0, [r4, 0x5] + movs r0, 0x3 + bl sub_80023E4 + strb r0, [r4, 0x6] + movs r0, 0x7 + bl sub_80023E4 + strb r0, [r4, 0x8] + movs r0, 0 + bl sub_80023E4 + strb r0, [r4, 0x9] + movs r0, 0x5 + bl sub_80023E4 + strb r0, [r4, 0xA] + movs r0, 0x18 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0800123C + movs r0, 0x19 + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0800123C + movs r0, 0x1A + bl sub_80023E4 + lsls r0, 24 + cmp r0, 0 + beq _0800123C + movs r0, 0x1 + b _0800123E +_0800123C: + movs r0, 0 +_0800123E: + strb r0, [r4, 0x7] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80011E8 + + thumb_func_start sub_8001248 +sub_8001248: + push {r4,r5,lr} + movs r4, 0 + movs r5, 0 +_0800124E: + movs r0, 0x64 + bl RandomCapped + cmp r0, 0x31 + bgt _08001266 + lsls r0, r4, 2 + ldr r1, _080012B8 + ldr r1, [r1] + adds r0, r1 + strb r5, [r0, 0x2] + strb r5, [r0, 0x1] + strb r5, [r0] +_08001266: + adds r4, 0x1 + cmp r4, 0x13 + ble _0800124E + bl sub_80910B4 + movs r4, 0 + ldr r5, _080012BC + movs r3, 0x1 +_08001276: + movs r0, 0x58 + adds r1, r4, 0 + muls r1, r0 + ldr r0, [r5] + adds r1, r0, r1 + ldrh r2, [r1] + adds r0, r3, 0 + ands r0, r2 + cmp r0, 0 + beq _08001298 + lsrs r0, r2, 1 + ands r0, r3 + cmp r0, 0 + beq _08001298 + adds r1, 0x28 + movs r0, 0 + strb r0, [r1] +_08001298: + adds r4, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r4, r0 + ble _08001276 + ldr r0, _080012B8 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080012B8: .4byte gUnknown_203B460 +_080012BC: .4byte gUnknown_203B45C + thumb_func_end sub_8001248 + + thumb_func_start sub_80012C0 +sub_80012C0: + push {r4,r5,lr} + movs r3, 0 + ldr r4, _08001324 + movs r2, 0 +_080012C8: + lsls r1, r3, 2 + ldr r0, [r4] + adds r1, r0 + strb r2, [r1, 0x2] + strb r2, [r1, 0x1] + strb r2, [r1] + adds r3, 0x1 + cmp r3, 0x13 + ble _080012C8 + bl sub_80910B4 + movs r3, 0 + ldr r5, _08001328 + movs r4, 0x1 +_080012E4: + movs r0, 0x58 + adds r1, r3, 0 + muls r1, r0 + ldr r0, [r5] + adds r1, r0, r1 + ldrh r2, [r1] + adds r0, r4, 0 + ands r0, r2 + cmp r0, 0 + beq _08001306 + lsrs r0, r2, 1 + ands r0, r4 + cmp r0, 0 + beq _08001306 + adds r1, 0x28 + movs r0, 0 + strb r0, [r1] +_08001306: + adds r3, 0x1 + movs r0, 0xCE + lsls r0, 1 + cmp r3, r0 + ble _080012E4 + ldr r0, _08001324 + ldr r0, [r0] + movs r1, 0x98 + lsls r1, 2 + adds r0, r1 + movs r1, 0 + str r1, [r0] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_08001324: .4byte gUnknown_203B460 +_08001328: .4byte gUnknown_203B45C + thumb_func_end sub_80012C0 + + .align 2,0 |