diff options
Diffstat (limited to 'asm/ground_event.s')
-rw-r--r-- | asm/ground_event.s | 1190 |
1 files changed, 1190 insertions, 0 deletions
diff --git a/asm/ground_event.s b/asm/ground_event.s new file mode 100644 index 0000000..871ec68 --- /dev/null +++ b/asm/ground_event.s @@ -0,0 +1,1190 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80AD990 +sub_80AD990: + push {r4,lr} + ldr r4, _080AD9C8 + movs r0, 0x80 + lsls r0, 3 + movs r1, 0x6 + bl MemoryAlloc + str r0, [r4] + adds r1, r0, 0 + ldr r0, _080AD9CC + adds r4, r0, 0 + movs r2, 0x80 + lsls r2, 9 + adds r3, r2, 0 +_080AD9AC: + ldrh r0, [r1, 0x2] + orrs r0, r4 + strh r0, [r1, 0x2] + adds r0, r2, 0 + adds r2, r3 + asrs r0, 16 + adds r1, 0x20 + cmp r0, 0x1F + ble _080AD9AC + bl sub_80AD9D0 + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AD9C8: .4byte gUnknown_3001B90 +_080AD9CC: .4byte 0x0000ffff + thumb_func_end sub_80AD990 + + thumb_func_start sub_80AD9D0 +sub_80AD9D0: + push {r4-r6,lr} + ldr r0, _080ADA04 + ldr r4, [r0] + movs r1, 0 + movs r6, 0x1 + negs r6, r6 + movs r5, 0x80 + lsls r5, 9 +_080AD9E0: + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, r6 + beq _080AD9EE + adds r0, r1, 0 + bl GroundEvent_Delete +_080AD9EE: + adds r0, r5, 0 + movs r1, 0x80 + lsls r1, 9 + adds r5, r1 + asrs r1, r0, 16 + adds r4, 0x20 + cmp r1, 0x1F + ble _080AD9E0 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ADA04: .4byte gUnknown_3001B90 + thumb_func_end sub_80AD9D0 + + thumb_func_start sub_80ADA08 +sub_80ADA08: + push {r4,lr} + bl sub_80AD9D0 + ldr r4, _080ADA20 + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADA20: .4byte gUnknown_3001B90 + thumb_func_end sub_80ADA08 + + thumb_func_start GroundEvent_Select +GroundEvent_Select: + push {r4-r7,lr} + sub sp, 0x4 + adds r4, r0, 0 + lsls r4, 16 + asrs r4, 16 + lsls r1, 16 + asrs r7, r1, 16 + lsls r2, 24 + asrs r6, r2, 24 + ldr r1, _080ADA88 + adds r0, r4, 0 + bl sub_80A77D0 + adds r5, r0, 0 + ldr r1, _080ADA8C + str r6, [sp] + movs r0, 0 + adds r2, r4, 0 + adds r3, r7, 0 + bl Log + lsls r1, r7, 3 + ldr r0, [r5, 0x4] + adds r0, r1 + lsls r1, r6, 2 + adds r1, r6 + lsls r1, 3 + ldr r0, [r0, 0x4] + adds r0, r1 + ldr r5, [r0, 0x1C] + ldr r0, [r0, 0x18] + cmp r0, 0 + ble _080ADA7E + adds r4, r0, 0 +_080ADA68: + movs r0, 0x1 + negs r0, r0 + adds r1, r5, 0 + adds r2, r7, 0 + adds r3, r6, 0 + bl GroundEvent_Add + subs r4, 0x1 + adds r5, 0xC + cmp r4, 0 + bne _080ADA68 +_080ADA7E: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADA88: .4byte gUnknown_81187DC +_080ADA8C: .4byte gGroundEventSelectText + thumb_func_end GroundEvent_Select + + thumb_func_start GroundEvent_Cancel +GroundEvent_Cancel: + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + asrs r7, r0, 16 + lsls r1, 24 + asrs r5, r1, 24 + ldr r1, _080ADAF8 + movs r0, 0 + adds r2, r7, 0 + adds r3, r5, 0 + bl Log + movs r1, 0 + ldr r0, _080ADAFC + ldr r4, [r0] + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + movs r6, 0x80 + lsls r6, 9 +_080ADABA: + movs r2, 0x2 + ldrsh r0, [r4, r2] + cmp r0, r8 + beq _080ADADC + movs r2, 0x4 + ldrsh r0, [r4, r2] + cmp r0, r7 + bne _080ADADC + cmp r5, 0 + blt _080ADAD6 + movs r0, 0x6 + ldrsb r0, [r4, r0] + cmp r0, r5 + bne _080ADADC +_080ADAD6: + adds r0, r1, 0 + bl GroundEvent_Delete +_080ADADC: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r1, r0, 16 + adds r4, 0x20 + cmp r1, 0x1F + ble _080ADABA + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADAF8: .4byte gGroundEventCancelText +_080ADAFC: .4byte gUnknown_3001B90 + thumb_func_end GroundEvent_Cancel + + thumb_func_start GroundEvent_Add +GroundEvent_Add: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x14 + mov r8, r1 + lsls r0, 16 + asrs r7, r0, 16 + lsls r2, 16 + asrs r6, r2, 16 + lsls r3, 24 + asrs r3, 24 + mov r9, r3 + ldr r5, [r1, 0x8] + cmp r7, 0 + bge _080ADB60 + ldr r0, _080ADB38 + ldr r4, [r0] + movs r2, 0 + movs r0, 0x2 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ADB3C + movs r7, 0 + b _080ADB68 + .align 2, 0 +_080ADB38: .4byte gUnknown_3001B90 +_080ADB3C: + adds r0, r2, 0x1 + lsls r0, 16 + asrs r2, r0, 16 + adds r4, 0x20 + cmp r2, 0x1F + bgt _080ADB56 + movs r3, 0x2 + ldrsh r1, [r4, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ADB3C + adds r7, r2, 0 +_080ADB56: + cmp r7, 0 + bge _080ADB68 + movs r0, 0x1 + negs r0, r0 + b _080ADC24 +_080ADB60: + ldr r0, _080ADBA0 + lsls r1, r7, 5 + ldr r0, [r0] + adds r4, r0, r1 +_080ADB68: + ldr r1, _080ADBA4 + movs r0, 0 + ldrsh r3, [r5, r0] + str r6, [sp] + mov r2, r9 + str r2, [sp, 0x4] + mov r2, r8 + ldr r0, [r2, 0x8] + ldr r0, [r0, 0x8] + str r0, [sp, 0x8] + movs r0, 0 + adds r2, r7, 0 + bl Log + strh r7, [r4] + ldrh r0, [r5] + strh r0, [r4, 0x2] + strh r6, [r4, 0x4] + mov r3, r9 + strb r3, [r4, 0x6] + movs r6, 0x2 + ldrsh r0, [r5, r6] + cmp r0, 0x1 + blt _080ADBA8 + cmp r0, 0x2 + bgt _080ADBA8 + movs r0, 0x60 + b _080ADBAA + .align 2, 0 +_080ADBA0: .4byte gUnknown_3001B90 +_080ADBA4: .4byte gGroundEventAddText +_080ADBA8: + movs r0, 0x20 +_080ADBAA: + str r0, [r4, 0x8] + mov r3, r8 + ldrb r0, [r3] + lsls r1, r0, 11 + ldrb r0, [r3, 0x1] + lsls r2, r0, 11 + mov r5, r8 + adds r5, 0x4 + add r6, sp, 0xC + mov r12, r6 + ldrb r6, [r5, 0x2] + movs r0, 0x4 + ands r0, r6 + cmp r0, 0 + bne _080ADBDE + ldrb r0, [r3, 0x4] + lsls r3, r0, 11 + str r3, [sp, 0xC] + movs r0, 0x2 + ands r0, r6 + cmp r0, 0 + beq _080ADBDE + movs r6, 0x80 + lsls r6, 3 + adds r0, r3, r6 + str r0, [sp, 0xC] +_080ADBDE: + ldrb r6, [r5, 0x3] + movs r0, 0x4 + ands r0, r6 + cmp r0, 0 + bne _080ADC02 + ldrb r0, [r5, 0x1] + lsls r3, r0, 11 + mov r0, r12 + str r3, [r0, 0x4] + movs r0, 0x2 + ands r0, r6 + cmp r0, 0 + beq _080ADC02 + movs r5, 0x80 + lsls r5, 3 + adds r0, r3, r5 + mov r6, r12 + str r0, [r6, 0x4] +_080ADC02: + ldr r0, [sp, 0xC] + str r0, [r4, 0xC] + ldr r0, [sp, 0xC] + adds r0, r1 + str r0, [r4, 0x14] + ldr r0, [sp, 0x10] + str r0, [r4, 0x10] + ldr r0, [sp, 0x10] + adds r0, r2 + str r0, [r4, 0x18] + mov r1, r8 + ldr r0, [r1, 0x8] + ldr r0, [r0, 0x8] + str r0, [r4, 0x1C] + bl sub_80A7A78 + adds r0, r7, 0 +_080ADC24: + add sp, 0x14 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end GroundEvent_Add + + thumb_func_start GroundEvent_Delete +GroundEvent_Delete: + push {r4,lr} + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + ldr r0, _080ADC58 + lsls r1, r2, 5 + ldr r4, [r0] + adds r4, r1 + ldr r1, _080ADC5C + movs r0, 0 + bl Log + ldr r0, _080ADC60 + strh r0, [r4, 0x2] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ADC58: .4byte gUnknown_3001B90 +_080ADC5C: .4byte gGroundEventDeleteText +_080ADC60: .4byte 0x0000ffff + thumb_func_end GroundEvent_Delete + + thumb_func_start sub_80ADC64 +sub_80ADC64: + push {lr} + adds r3, r1, 0 + lsls r0, 16 + ldr r1, _080ADC84 + asrs r0, 11 + ldr r1, [r1] + adds r2, r1, r0 + movs r0, 0x2 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ADC88 + movs r0, 0 + b _080ADC9A + .align 2, 0 +_080ADC84: .4byte gUnknown_3001B90 +_080ADC88: + ldr r0, [r2, 0x1C] + str r0, [r3] + movs r0, 0x2 + strh r0, [r3, 0x4] + ldrh r0, [r2, 0x4] + strh r0, [r3, 0x6] + ldrb r0, [r2, 0x6] + strb r0, [r3, 0x8] + movs r0, 0x1 +_080ADC9A: + pop {r1} + bx r1 + thumb_func_end sub_80ADC64 + + thumb_func_start sub_80ADCA0 +sub_80ADCA0: + push {r4-r7,lr} + adds r7, r0, 0 + adds r4, r1, 0 + ldr r0, _080ADCEC + ldr r3, [r0] + movs r5, 0 + movs r0, 0x1 + negs r0, r0 + mov r12, r0 + movs r6, 0x80 + lsls r6, 9 +_080ADCB6: + movs r1, 0x2 + ldrsh r0, [r3, r1] + cmp r0, r12 + beq _080ADCF0 + ldr r0, [r3, 0x8] + ands r0, r7 + cmp r0, 0 + beq _080ADCF0 + ldr r1, [r3, 0xC] + ldr r0, [r2] + cmp r1, r0 + bge _080ADCF0 + ldr r1, [r3, 0x14] + ldr r0, [r4] + cmp r1, r0 + ble _080ADCF0 + ldr r1, [r3, 0x10] + ldr r0, [r2, 0x4] + cmp r1, r0 + bge _080ADCF0 + ldr r1, [r3, 0x18] + ldr r0, [r4, 0x4] + cmp r1, r0 + ble _080ADCF0 + adds r0, r5, 0 + b _080ADD04 + .align 2, 0 +_080ADCEC: .4byte gUnknown_3001B90 +_080ADCF0: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r5, r0, 16 + adds r3, 0x20 + cmp r5, 0x1F + ble _080ADCB6 + movs r0, 0x1 + negs r0, r0 +_080ADD04: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ADCA0 + + thumb_func_start sub_80ADD0C +sub_80ADD0C: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + mov r8, r0 + adds r6, r1, 0 + adds r5, r2, 0 + ldr r0, _080ADD74 + ldr r4, [r0] + movs r7, 0 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + movs r1, 0x80 + lsls r1, 9 + mov r12, r1 +_080ADD2C: + movs r1, 0x2 + ldrsh r0, [r4, r1] + cmp r0, r9 + beq _080ADD78 + ldr r0, [r4, 0x8] + mov r1, r8 + ands r0, r1 + cmp r0, 0 + beq _080ADD78 + ldr r0, [r4, 0xC] + ldr r1, [r4, 0x14] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r2, r0, 1 + ldr r0, [r4, 0x10] + ldr r1, [r4, 0x18] + adds r0, r1 + lsrs r1, r0, 31 + adds r0, r1 + asrs r3, r0, 1 + ldr r0, [r5] + cmp r2, r0 + bge _080ADD78 + ldr r0, [r6] + cmp r2, r0 + ble _080ADD78 + ldr r0, [r5, 0x4] + cmp r3, r0 + bge _080ADD78 + ldr r0, [r6, 0x4] + cmp r3, r0 + ble _080ADD78 + adds r0, r7, 0 + b _080ADD8C + .align 2, 0 +_080ADD74: .4byte gUnknown_3001B90 +_080ADD78: + mov r0, r12 + movs r1, 0x80 + lsls r1, 9 + add r12, r1 + asrs r7, r0, 16 + adds r4, 0x20 + cmp r7, 0x1F + ble _080ADD2C + movs r0, 0x1 + negs r0, r0 +_080ADD8C: + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ADD0C + + thumb_func_start nullsub_124 +nullsub_124: + bx lr + thumb_func_end nullsub_124 + + thumb_func_start sub_80ADD9C +sub_80ADD9C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + str r0, [sp, 0x20] + str r1, [sp, 0x24] + str r2, [sp, 0x28] + str r3, [sp, 0x2C] + ldr r5, [sp, 0x54] + ldr r0, [sp, 0x5C] + mov r9, r0 + movs r0, 0x93 + lsls r0, 4 + movs r1, 0x7 + bl MemoryAlloc + mov r10, r0 + ldr r0, _080ADEB4 + ldr r7, _080ADEB8 + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r6, r0, 0 + add r4, sp, 0x1C + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_80901D8 + ldrb r5, [r4] + ldrb r4, [r4, 0x1] + cmp r5, 0x3E + bls _080ADDE2 + movs r5, 0x3E +_080ADDE2: + cmp r4, 0 + bgt _080ADDE8 + movs r4, 0x1 +_080ADDE8: + adds r0, r5, 0 + bl sub_8090298 + cmp r4, r0 + blt _080ADDFA + adds r0, r5, 0 + bl sub_8090298 + subs r4, r0, 0x1 +_080ADDFA: + ldr r2, [r6, 0x4] + ldr r1, [r2] + lsls r0, r5, 2 + adds r0, r1 + lsls r1, r4, 4 + ldr r0, [r0] + adds r0, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r2, [r2, 0x4] + lsls r0, r1, 3 + subs r0, r1 + lsls r0, 2 + adds r0, r2 + ldrb r0, [r0, 0x2] + mov r8, r0 + adds r0, r6, 0 + bl CloseFile + ldr r1, _080ADEBC + ldr r0, _080ADEC0 + add r0, r8 + ldrb r5, [r0] + add r0, sp, 0x10 + adds r2, r5, 0 + bl sprintf + add r0, sp, 0x10 + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r0, [sp, 0x28] + movs r1, 0 + adds r2, r4, 0 + bl DecompressATGlobalFile + adds r0, r4, 0 + bl CloseFile + ldr r1, _080ADEC4 + add r0, sp, 0x10 + mov r2, r8 + bl sprintf + add r0, sp, 0x10 + adds r1, r7, 0 + bl OpenFile + ldr r1, [sp, 0x20] + str r0, [r1] + ldr r1, _080ADEC8 + add r0, sp, 0x10 + adds r2, r5, 0 + bl sprintf + add r0, sp, 0x10 + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + ldr r1, _080ADECC + ldr r0, [sp, 0x2C] + adds r2, r4, 0 + bl DecompressATFile + adds r0, r4, 0 + bl CloseFile + mov r2, r8 + cmp r2, 0x3F + bgt _080ADED4 + ldr r1, _080ADED0 + add r0, sp, 0x10 + adds r2, r5, 0 + bl sprintf + add r0, sp, 0x10 + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + mov r0, r10 + movs r1, 0x93 + lsls r1, 4 + adds r2, r4, 0 + bl DecompressATFile + adds r0, r4, 0 + bl CloseFile + b _080ADEFC + .align 2, 0 +_080ADEB4: .4byte gMapparamText +_080ADEB8: .4byte gDungeonFileArchive +_080ADEBC: .4byte gUnknown_811889C +_080ADEC0: .4byte gUnknown_8108EC0 +_080ADEC4: .4byte gUnknown_81188A8 +_080ADEC8: .4byte gUnknown_81188B4 +_080ADECC: .4byte 0x00001194 +_080ADED0: .4byte gUnknown_81188C0 +_080ADED4: + ldr r1, _080ADF80 + add r0, sp, 0x10 + mov r2, r8 + ldr r3, [sp, 0x58] + bl sprintf + add r0, sp, 0x10 + adds r1, r7, 0 + bl OpenFileAndGetFileDataPtr + adds r4, r0, 0 + movs r1, 0x90 + lsls r1, 2 + mov r0, r10 + adds r2, r4, 0 + bl DecompressATFile + adds r0, r4, 0 + bl CloseFile +_080ADEFC: + movs r5, 0 + ldr r3, [sp, 0x60] + cmp r5, r3 + bge _080ADF52 +_080ADF04: + mov r0, r8 + bl sub_8097F40 + lsls r0, 24 + movs r7, 0 + cmp r0, 0 + beq _080ADF14 + movs r7, 0x3 +_080ADF14: + movs r4, 0 + adds r6, r5, 0x1 + cmp r4, r9 + bge _080ADF4A +_080ADF1C: + ldr r0, [sp, 0x64] + str r0, [sp] + str r7, [sp, 0x4] + mov r1, r10 + str r1, [sp, 0x8] + mov r2, r8 + str r2, [sp, 0xC] + adds r0, r4, 0 + adds r1, r5, 0 + mov r2, r9 + ldr r3, [sp, 0x60] + bl sub_80ADFB8 + mov r1, r9 + muls r1, r5 + adds r1, r4 + lsls r1, 1 + ldr r3, [sp, 0x50] + adds r1, r3 + strh r0, [r1] + adds r4, 0x1 + cmp r4, r9 + blt _080ADF1C +_080ADF4A: + adds r5, r6, 0 + ldr r0, [sp, 0x60] + cmp r5, r0 + blt _080ADF04 +_080ADF52: + ldr r1, _080ADF84 + add r0, sp, 0x10 + mov r2, r8 + bl sprintf + ldr r1, _080ADF88 + add r0, sp, 0x10 + bl OpenFile + ldr r1, [sp, 0x24] + str r0, [r1] + mov r0, r10 + bl MemoryFree + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ADF80: .4byte gUnknown_81188CC +_080ADF84: .4byte gUnknown_81188DC +_080ADF88: .4byte gDungeonFileArchive + thumb_func_end sub_80ADD9C + + thumb_func_start sub_80ADF8C +sub_80ADF8C: + push {r4,lr} + adds r4, r0, 0 + ldr r0, [sp, 0xC] + cmp r4, 0 + blt _080ADFB0 + cmp r1, 0 + blt _080ADFB0 + cmp r4, r2 + bge _080ADFB0 + cmp r1, r3 + bge _080ADFB0 + adds r0, r1, 0 + muls r0, r2 + adds r0, r4, r0 + lsls r0, 1 + ldr r1, [sp, 0x8] + adds r0, r1 + ldrh r0, [r0] +_080ADFB0: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80ADF8C + + thumb_func_start sub_80ADFB8 +sub_80ADFB8: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x30 + mov r9, r0 + mov r10, r1 + adds r6, r2, 0 + mov r8, r3 + ldr r4, [sp, 0x5C] + movs r7, 0 + ldr r0, [sp, 0x50] + str r0, [sp] + ldr r1, [sp, 0x54] + str r1, [sp, 0x4] + mov r0, r9 + mov r1, r10 + bl sub_80ADF8C + str r0, [sp, 0x28] + cmp r4, 0x3F + ble _080AE000 + mov r0, r9 + cmp r0, 0x17 + bgt _080ADFFC + mov r1, r10 + cmp r1, 0x17 + bgt _080ADFFC + lsls r0, r1, 1 + add r0, r10 + lsls r0, 3 + add r0, r9 + b _080AE24E +_080ADFFC: + ldr r0, [sp, 0x54] + b _080AE254 +_080AE000: + mov r0, r10 + adds r0, 0x1 + str r0, [sp, 0x2C] + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + mov r0, r9 + ldr r1, [sp, 0x2C] + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x8] + mov r4, r9 + adds r4, 0x1 + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + ldr r1, [sp, 0x2C] + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0xC] + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + mov r1, r10 + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x10] + mov r5, r10 + subs r5, 0x1 + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x14] + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + mov r0, r9 + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x18] + subs r4, 0x2 + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + adds r1, r5, 0 + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x1C] + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + mov r1, r10 + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + str r0, [sp, 0x20] + ldr r1, [sp, 0x50] + str r1, [sp] + ldr r0, [sp, 0x54] + str r0, [sp, 0x4] + adds r0, r4, 0 + ldr r1, [sp, 0x2C] + adds r2, r6, 0 + mov r3, r8 + bl sub_80ADF8C + adds r1, r0, 0 + str r1, [sp, 0x24] + ldr r0, [sp, 0x28] + cmp r0, 0x1 + bne _080AE12A + movs r7, 0xFF + ldr r0, [sp, 0x8] + cmp r0, 0 + bne _080AE0D2 + movs r7, 0xFE +_080AE0D2: + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _080AE0DE + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_080AE0DE: + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _080AE0EA + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_080AE0EA: + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _080AE0F6 + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_080AE0F6: + ldr r0, [sp, 0x18] + cmp r0, 0 + bne _080AE102 + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_080AE102: + ldr r0, [sp, 0x1C] + cmp r0, 0 + bne _080AE10E + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_080AE10E: + ldr r0, [sp, 0x20] + cmp r0, 0 + bne _080AE11A + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_080AE11A: + cmp r1, 0 + bne _080AE124 + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_080AE124: + movs r0, 0x80 + lsls r0, 2 + b _080AE248 +_080AE12A: + ldr r0, [sp, 0x28] + cmp r0, 0x2 + bne _080AE192 + movs r7, 0xFF + ldr r0, [sp, 0x8] + cmp r0, 0x2 + beq _080AE13A + movs r7, 0xFE +_080AE13A: + ldr r0, [sp, 0xC] + cmp r0, 0x2 + beq _080AE146 + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_080AE146: + ldr r0, [sp, 0x10] + cmp r0, 0x2 + beq _080AE152 + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_080AE152: + ldr r0, [sp, 0x14] + cmp r0, 0x2 + beq _080AE15E + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_080AE15E: + ldr r0, [sp, 0x18] + cmp r0, 0x2 + beq _080AE16A + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_080AE16A: + ldr r0, [sp, 0x1C] + cmp r0, 0x2 + beq _080AE176 + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_080AE176: + ldr r0, [sp, 0x20] + cmp r0, 0x2 + beq _080AE182 + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_080AE182: + cmp r1, 0x2 + beq _080AE18C + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_080AE18C: + movs r0, 0x80 + lsls r0, 1 + b _080AE248 +_080AE192: + ldr r1, [sp, 0x28] + cmp r1, 0x3 + bne _080AE1FC + movs r7, 0xFF + ldr r0, [sp, 0x8] + cmp r0, 0x3 + beq _080AE1A2 + movs r7, 0xFE +_080AE1A2: + ldr r0, [sp, 0xC] + cmp r0, 0x3 + beq _080AE1AE + movs r0, 0x3 + negs r0, r0 + ands r7, r0 +_080AE1AE: + ldr r0, [sp, 0x10] + cmp r0, 0x3 + beq _080AE1BA + movs r0, 0x5 + negs r0, r0 + ands r7, r0 +_080AE1BA: + ldr r0, [sp, 0x14] + cmp r0, 0x3 + beq _080AE1C6 + movs r0, 0x9 + negs r0, r0 + ands r7, r0 +_080AE1C6: + ldr r0, [sp, 0x18] + cmp r0, 0x3 + beq _080AE1D2 + movs r0, 0x11 + negs r0, r0 + ands r7, r0 +_080AE1D2: + ldr r0, [sp, 0x1C] + cmp r0, 0x3 + beq _080AE1DE + movs r0, 0x21 + negs r0, r0 + ands r7, r0 +_080AE1DE: + ldr r0, [sp, 0x20] + cmp r0, 0x3 + beq _080AE1EA + movs r0, 0x41 + negs r0, r0 + ands r7, r0 +_080AE1EA: + ldr r0, [sp, 0x24] + cmp r0, 0x3 + beq _080AE1F6 + movs r0, 0x81 + negs r0, r0 + ands r7, r0 +_080AE1F6: + movs r0, 0x80 + lsls r0, 1 + b _080AE248 +_080AE1FC: + ldr r0, [sp, 0x8] + cmp r0, 0 + bne _080AE204 + movs r7, 0x1 +_080AE204: + ldr r0, [sp, 0xC] + cmp r0, 0 + bne _080AE20E + movs r0, 0x2 + orrs r7, r0 +_080AE20E: + ldr r0, [sp, 0x10] + cmp r0, 0 + bne _080AE218 + movs r0, 0x4 + orrs r7, r0 +_080AE218: + ldr r0, [sp, 0x14] + cmp r0, 0 + bne _080AE222 + movs r0, 0x8 + orrs r7, r0 +_080AE222: + ldr r0, [sp, 0x18] + cmp r0, 0 + bne _080AE22C + movs r0, 0x10 + orrs r7, r0 +_080AE22C: + ldr r0, [sp, 0x1C] + cmp r0, 0 + bne _080AE236 + movs r0, 0x20 + orrs r7, r0 +_080AE236: + ldr r0, [sp, 0x20] + cmp r0, 0 + bne _080AE240 + movs r0, 0x40 + orrs r7, r0 +_080AE240: + ldr r0, [sp, 0x24] + cmp r0, 0 + bne _080AE24A + movs r0, 0x80 +_080AE248: + orrs r7, r0 +_080AE24A: + lsls r0, r7, 1 + adds r0, r7 +_080AE24E: + ldr r1, [sp, 0x58] + adds r0, r1, r0 + ldrb r0, [r0] +_080AE254: + add sp, 0x30 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ADFB8 + + .align 2,0 |