diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-10-22 10:01:07 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-22 10:01:07 -0700 |
commit | 3e5dd1d047bada52ab0dce2fe58b04e39bcaa1cc (patch) | |
tree | 0e40067d711c783ef97667f4a8256f38ab0d4b0a /asm/ground_object.s | |
parent | 3f7ee3a806d965fae70fd98f2cd1af13a2e4cf0b (diff) |
Death by 74 files (#65)
* death by 74 files
* 20% reached
* doc move stuff in pokemon
* fix undef reference
* doc more and plumb a few more constanst for num party members and num moves
* that struct is def PokemonMove.. clean up all code with it
Diffstat (limited to 'asm/ground_object.s')
-rw-r--r-- | asm/ground_object.s | 2259 |
1 files changed, 2259 insertions, 0 deletions
diff --git a/asm/ground_object.s b/asm/ground_object.s new file mode 100644 index 0000000..6425371 --- /dev/null +++ b/asm/ground_object.s @@ -0,0 +1,2259 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_80ABB54 +sub_80ABB54: + push {r4,r5,lr} + ldr r4, _080ABB90 + movs r0, 0xE2 + lsls r0, 5 + movs r1, 0x6 + bl MemoryAlloc + str r0, [r4] + adds r1, r0, 0 + ldr r0, _080ABB94 + adds r5, r0, 0 + movs r4, 0xE2 + lsls r4, 1 + movs r2, 0x80 + lsls r2, 9 + adds r3, r2, 0 +_080ABB74: + ldrh r0, [r1, 0x6] + orrs r0, r5 + strh r0, [r1, 0x6] + adds r0, r2, 0 + adds r2, r3 + asrs r0, 16 + adds r1, r4 + cmp r0, 0xF + ble _080ABB74 + bl sub_80ABB98 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080ABB90: .4byte gUnknown_3001B88 +_080ABB94: .4byte 0x0000ffff + thumb_func_end sub_80ABB54 + + thumb_func_start sub_80ABB98 +sub_80ABB98: + push {r4-r6,lr} + ldr r0, _080ABBD0 + ldr r4, [r0] + movs r1, 0 + movs r6, 0x1 + negs r6, r6 + movs r5, 0x80 + lsls r5, 9 +_080ABBA8: + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, r6 + beq _080ABBB6 + adds r0, r1, 0 + bl GroundObject_Delete +_080ABBB6: + adds r0, r5, 0 + movs r1, 0x80 + lsls r1, 9 + adds r5, r1 + asrs r1, r0, 16 + movs r2, 0xE2 + lsls r2, 1 + adds r4, r2 + cmp r1, 0xF + ble _080ABBA8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080ABBD0: .4byte gUnknown_3001B88 + thumb_func_end sub_80ABB98 + + thumb_func_start sub_80ABBD4 +sub_80ABBD4: + push {r4,lr} + bl sub_80ABB98 + ldr r4, _080ABBEC + ldr r0, [r4] + bl MemoryFree + movs r0, 0 + str r0, [r4] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080ABBEC: .4byte gUnknown_3001B88 + thumb_func_end sub_80ABBD4 + + thumb_func_start GroundObject_Select +GroundObject_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, _080ABC54 + adds r0, r4, 0 + bl sub_80A77D0 + adds r5, r0, 0 + ldr r1, _080ABC58 + 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, 0xC] + ldr r0, [r0, 0x8] + cmp r0, 0 + ble _080ABC4A + adds r4, r0, 0 +_080ABC34: + movs r0, 0x1 + negs r0, r0 + adds r1, r5, 0 + adds r2, r7, 0 + adds r3, r6, 0 + bl GroundObject_Add + subs r4, 0x1 + adds r5, 0x18 + cmp r4, 0 + bne _080ABC34 +_080ABC4A: + add sp, 0x4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABC54: .4byte gUnknown_81183E4 +_080ABC58: .4byte gUnknown_81183F0 + thumb_func_end GroundObject_Select + + thumb_func_start GroundObject_Cancel +GroundObject_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, _080ABCC4 + movs r0, 0 + adds r2, r7, 0 + bl Log + movs r1, 0 + ldr r0, _080ABCC8 + ldr r4, [r0] + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + movs r6, 0x80 + lsls r6, 9 +_080ABC84: + movs r2, 0x6 + ldrsh r0, [r4, r2] + cmp r0, r8 + beq _080ABCA6 + movs r2, 0x8 + ldrsh r0, [r4, r2] + cmp r0, r7 + bne _080ABCA6 + cmp r5, 0 + blt _080ABCA0 + movs r0, 0xA + ldrsb r0, [r4, r0] + cmp r0, r5 + bne _080ABCA6 +_080ABCA0: + adds r0, r1, 0 + bl GroundObject_Delete +_080ABCA6: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r1, r0, 16 + movs r2, 0xE2 + lsls r2, 1 + adds r4, r2 + cmp r1, 0xF + ble _080ABC84 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABCC4: .4byte gUnknown_8118414 +_080ABCC8: .4byte gUnknown_3001B88 + thumb_func_end GroundObject_Cancel + + thumb_func_start GroundObject_CancelBlank +GroundObject_CancelBlank: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x8 + ldr r1, _080ABD40 + movs r0, 0 + bl Log + movs r6, 0 + ldr r0, _080ABD44 + ldr r4, [r0] + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + movs r1, 0x92 + lsls r1, 1 + adds r5, r4, r1 + mov r7, sp +_080ABCF0: + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, r8 + beq _080ABD20 + ldr r0, [r5] + ldr r1, [r4, 0x14] + adds r0, r1 + str r0, [sp] + ldr r0, [r5, 0x4] + ldr r1, [r4, 0x18] + adds r0, r1 + str r0, [r7, 0x4] + movs r1, 0xA2 + lsls r1, 1 + adds r0, r4, r1 + mov r1, sp + bl sub_80A675C + lsls r0, 24 + cmp r0, 0 + bne _080ABD20 + adds r0, r6, 0 + bl GroundObject_Delete +_080ABD20: + adds r0, r6, 0x1 + lsls r0, 16 + asrs r6, r0, 16 + movs r0, 0xE2 + lsls r0, 1 + adds r5, r0 + adds r4, r0 + cmp r6, 0xF + ble _080ABCF0 + add sp, 0x8 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ABD40: .4byte gUnknown_811842C +_080ABD44: .4byte gUnknown_3001B88 + thumb_func_end GroundObject_CancelBlank + + thumb_func_start sub_80ABD48 +sub_80ABD48: + push {r4-r7,lr} + lsls r0, 16 + asrs r4, r0, 16 + movs r3, 0 + ldr r0, _080ABD6C + ldr r1, [r0] + movs r6, 0xE2 + lsls r6, 1 + movs r2, 0x80 + lsls r2, 9 + adds r5, r2, 0 +_080ABD5E: + movs r7, 0x6 + ldrsh r0, [r1, r7] + cmp r0, r4 + bne _080ABD70 + adds r0, r3, 0 + b _080ABD80 + .align 2, 0 +_080ABD6C: .4byte gUnknown_3001B88 +_080ABD70: + adds r0, r2, 0 + adds r2, r5 + asrs r3, r0, 16 + adds r1, r6 + cmp r3, 0xF + ble _080ABD5E + movs r0, 0x1 + negs r0, r0 +_080ABD80: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80ABD48 + + thumb_func_start GroundObject_Add +GroundObject_Add: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x14 + mov r8, r1 + lsls r0, 16 + asrs r7, r0, 16 + lsls r2, 16 + asrs r2, 16 + mov r10, r2 + lsls r3, 24 + asrs r3, 24 + mov r9, r3 + ldrb r4, [r1] + cmp r4, 0x1A + bne _080ABDDA + movs r0, 0 + movs r1, 0x28 + bl sub_8001658 + cmp r0, 0x1 + bgt _080ABDBC + movs r4, 0x1B + b _080ABDDA +_080ABDBC: + movs r0, 0 + movs r1, 0x29 + bl sub_8001658 + cmp r0, 0 + bne _080ABDD4 + movs r0, 0 + movs r1, 0x27 + bl sub_8001658 + adds r0, 0x1C + b _080ABDD6 +_080ABDD4: + adds r0, 0x2B +_080ABDD6: + lsls r0, 16 + asrs r4, r0, 16 +_080ABDDA: + lsls r1, r4, 2 + ldr r0, _080ABE10 + adds r6, r1, r0 + cmp r7, 0 + bge _080ABE40 + cmp r4, 0xE + bgt _080ABDF4 + cmp r4, 0xD + blt _080ABDF4 + adds r0, r4, 0 + bl sub_80ABD48 + adds r7, r0, 0 +_080ABDF4: + cmp r7, 0 + bge _080ABE40 + movs r3, 0 + ldr r0, _080ABE14 + ldr r5, [r0] + movs r0, 0x6 + ldrsh r1, [r5, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ABE18 + movs r7, 0 + b _080ABE40 + .align 2, 0 +_080ABE10: .4byte gUnknown_811ED20 +_080ABE14: .4byte gUnknown_3001B88 +_080ABE18: + adds r0, r3, 0x1 + lsls r0, 16 + asrs r3, r0, 16 + movs r1, 0xE2 + lsls r1, 1 + adds r5, r1 + cmp r3, 0xF + bgt _080ABE36 + movs r2, 0x6 + ldrsh r1, [r5, r2] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ABE18 + adds r7, r3, 0 +_080ABE36: + cmp r7, 0 + bge _080ABE40 + movs r0, 0x1 + negs r0, r0 + b _080AC142 +_080ABE40: + ldr r1, _080ABEA8 + lsls r0, r7, 3 + subs r0, r7 + lsls r0, 4 + adds r0, r7 + lsls r0, 2 + ldr r1, [r1] + adds r5, r1, r0 + ldr r1, _080ABEAC + mov r3, r8 + ldrb r0, [r3] + str r0, [sp] + movs r2, 0 + ldrsh r0, [r6, r2] + str r0, [sp, 0x4] + mov r3, r10 + str r3, [sp, 0x8] + mov r0, r9 + str r0, [sp, 0xC] + movs r0, 0 + adds r2, r7, 0 + adds r3, r4, 0 + bl Log + movs r2, 0 + movs r3, 0x6 + ldrsh r1, [r5, r3] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080ABE80 + movs r2, 0x1 +_080ABE80: + str r2, [sp, 0x10] + strh r7, [r5, 0x4] + strh r4, [r5, 0x6] + mov r0, r10 + strh r0, [r5, 0x8] + mov r1, r9 + strb r1, [r5, 0xA] + ldrh r0, [r6] + subs r0, 0x1 + lsls r0, 16 + asrs r0, 16 + cmp r0, 0xE + bls _080ABE9C + b _080ABF8C +_080ABE9C: + lsls r0, 2 + ldr r1, _080ABEB0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_080ABEA8: .4byte gUnknown_3001B88 +_080ABEAC: .4byte gUnknown_8118448 +_080ABEB0: .4byte _080ABEB4 + .align 2, 0 +_080ABEB4: + .4byte _080ABEF0 + .4byte _080ABF7C + .4byte _080ABF46 + .4byte _080ABF54 + .4byte _080ABF54 + .4byte _080ABF5E + .4byte _080ABF68 + .4byte _080ABF72 + .4byte _080ABF3C + .4byte _080ABEFA + .4byte _080ABEF0 + .4byte _080ABF06 + .4byte _080ABF2C + .4byte _080ABF1E + .4byte _080ABF12 +_080ABEF0: + movs r2, 0x8E + lsls r2, 1 + adds r1, r5, r2 + movs r0, 0 + b _080ABF94 +_080ABEFA: + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + movs r0, 0x80 + lsls r0, 10 + b _080ABF94 +_080ABF06: + movs r0, 0x8E + lsls r0, 1 + adds r1, r5, r0 + movs r0, 0x80 + lsls r0, 11 + b _080ABF94 +_080ABF12: + movs r2, 0x8E + lsls r2, 1 + adds r1, r5, r2 + movs r0, 0x83 + lsls r0, 18 + b _080ABF94 +_080ABF1E: + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + ldr r0, _080ABF28 + b _080ABF94 + .align 2, 0 +_080ABF28: .4byte 0x220c0000 +_080ABF2C: + movs r0, 0x8E + lsls r0, 1 + adds r1, r5, r0 + ldr r0, _080ABF38 + b _080ABF94 + .align 2, 0 +_080ABF38: .4byte 0x20010000 +_080ABF3C: + movs r2, 0x8E + lsls r2, 1 + adds r1, r5, r2 + movs r0, 0x5 + b _080ABF94 +_080ABF46: + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + ldr r0, _080ABF50 + b _080ABF94 + .align 2, 0 +_080ABF50: .4byte 0x22000184 +_080ABF54: + movs r0, 0x8E + lsls r0, 1 + adds r1, r5, r0 + adds r0, 0x68 + b _080ABF94 +_080ABF5E: + movs r2, 0x8E + lsls r2, 1 + adds r1, r5, r2 + movs r0, 0x44 + b _080ABF94 +_080ABF68: + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + movs r0, 0x84 + b _080ABF94 +_080ABF72: + movs r0, 0x8E + lsls r0, 1 + adds r1, r5, r0 + adds r0, 0x64 + b _080ABF94 +_080ABF7C: + movs r2, 0x8E + lsls r2, 1 + adds r1, r5, r2 + ldr r0, _080ABF88 + b _080ABF94 + .align 2, 0 +_080ABF88: .4byte 0x020000c4 +_080ABF8C: + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + ldr r0, _080ABFA8 +_080ABF94: + str r0, [r1] + ldrb r0, [r6, 0x2] + cmp r0, 0 + bne _080ABFAC + mov r1, r8 + ldrb r0, [r1, 0x2] + lsls r0, 11 + str r0, [r5, 0xC] + ldrb r0, [r1, 0x3] + b _080ABFB4 + .align 2, 0 +_080ABFA8: .4byte 0x02000185 +_080ABFAC: + ldrb r0, [r6, 0x2] + lsls r0, 11 + str r0, [r5, 0xC] + ldrb r0, [r6, 0x3] +_080ABFB4: + lsls r0, 11 + str r0, [r5, 0x10] + ldr r0, [r5, 0xC] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r5, 0x14] + ldr r0, [r5, 0x10] + lsrs r1, r0, 31 + adds r0, r1 + asrs r0, 1 + str r0, [r5, 0x18] + mov r2, r8 + ldrb r0, [r2, 0x1] + strb r0, [r5, 0x1C] + adds r2, 0x4 + adds r4, r5, 0 + adds r4, 0x20 + ldrb r1, [r2, 0x2] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080ABFFC + mov r3, r8 + ldrb r0, [r3, 0x4] + lsls r3, r0, 11 + str r3, [r5, 0x20] + ldrb r1, [r2, 0x2] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080ABFFC + movs r1, 0x80 + lsls r1, 3 + adds r0, r3, r1 + str r0, [r5, 0x20] +_080ABFFC: + ldrb r1, [r2, 0x3] + movs r0, 0x4 + ands r0, r1 + cmp r0, 0 + bne _080AC01E + ldrb r0, [r2, 0x1] + lsls r3, r0, 11 + str r3, [r4, 0x4] + ldrb r1, [r2, 0x3] + movs r0, 0x2 + ands r0, r1 + cmp r0, 0 + beq _080AC01E + movs r2, 0x80 + lsls r2, 3 + adds r0, r3, r2 + str r0, [r4, 0x4] +_080AC01E: + ldr r3, [sp, 0x10] + cmp r3, 0 + beq _080AC076 + ldrb r1, [r5, 0x1C] + movs r2, 0x90 + lsls r2, 1 + adds r0, r5, r2 + movs r3, 0 + strb r1, [r0] + movs r0, 0x92 + lsls r0, 1 + adds r2, r5, r0 + ldr r0, [r5, 0x20] + ldr r1, [r5, 0x14] + subs r0, r1 + str r0, [r2] + movs r1, 0x96 + lsls r1, 1 + adds r2, r5, r1 + ldr r0, [r5, 0x20] + ldr r1, [r5, 0x14] + adds r0, r1 + str r0, [r2] + movs r0, 0x94 + lsls r0, 1 + adds r2, r5, r0 + ldr r0, [r5, 0x24] + ldr r1, [r5, 0x18] + subs r0, r1 + str r0, [r2] + movs r1, 0x98 + lsls r1, 1 + adds r2, r5, r1 + ldr r0, [r5, 0x24] + ldr r1, [r5, 0x18] + adds r0, r1 + str r0, [r2] + movs r2, 0x9A + lsls r2, 1 + adds r1, r5, r2 + adds r2, 0x4 + adds r0, r5, r2 + str r3, [r0] + str r3, [r1] +_080AC076: + adds r0, r5, 0 + adds r0, 0x28 + adds r1, r5, 0 + adds r1, 0x30 + bl sub_80A5778 + ldr r3, [sp, 0x10] + cmp r3, 0 + beq _080AC0C0 + movs r0, 0x9F + lsls r0, 1 + adds r1, r5, r0 + movs r2, 0 + movs r0, 0x80 + lsls r0, 4 + strh r0, [r1] + movs r3, 0x9E + lsls r3, 1 + adds r1, r5, r3 + movs r0, 0x1 + strb r0, [r1] + movs r1, 0xA0 + lsls r1, 1 + adds r0, r5, r1 + strh r2, [r0] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r5, r2 + movs r3, 0x6 + ldrsh r2, [r5, r3] + movs r3, 0x8E + lsls r3, 1 + adds r1, r5, r3 + ldr r3, [r1] + adds r1, r7, 0 + bl sub_80A75CC +_080AC0C0: + adds r4, r5, 0 + adds r4, 0x38 + ldr r1, _080AC154 + mov r0, r9 + str r0, [sp] + adds r0, r4, 0 + adds r2, r5, 0 + mov r3, r10 + bl sub_809D600 + adds r6, r4, 0 + mov r1, r8 + ldr r2, [r1, 0xC] + cmp r2, 0 + bne _080AC0F2 + movs r2, 0xA2 + lsls r2, 1 + adds r0, r5, r2 + bl sub_80A66A4 + lsls r0, 24 + ldr r2, _080AC158 + cmp r0, 0 + beq _080AC0F2 + ldr r2, _080AC15C +_080AC0F2: + adds r0, r6, 0 + movs r1, 0x1 + bl sub_809D6D8 + adds r1, r4, 0 + mov r3, r8 + ldr r2, [r3, 0x10] + cmp r2, 0 + bne _080AC108 + ldr r0, _080AC160 + ldr r2, [r0, 0x38] +_080AC108: + adds r0, r1, 0 + movs r1, 0x2 + bl sub_809D6D8 + mov r0, r8 + ldr r2, [r0, 0x14] + cmp r2, 0 + bne _080AC11C + ldr r0, _080AC160 + ldr r2, [r0, 0x68] +_080AC11C: + adds r0, r4, 0 + movs r1, 0x3 + bl sub_809D6D8 + mov r1, r8 + ldr r2, [r1, 0x8] + cmp r2, 0 + beq _080AC140 + adds r0, r4, 0 + movs r1, 0 + bl sub_809D6D8 + ldr r3, _080AC164 + adds r0, r4, 0 + movs r1, 0 + movs r2, 0 + bl sub_809D8C0 +_080AC140: + adds r0, r7, 0 +_080AC142: + add sp, 0x14 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AC154: .4byte gUnknown_81182A0 +_080AC158: .4byte gUnknown_81182F4 +_080AC15C: .4byte gUnknown_8118350 +_080AC160: .4byte gFunctionScriptTable +_080AC164: .4byte gUnknown_81184A4 + thumb_func_end GroundObject_Add + + thumb_func_start GroundObject_Delete +GroundObject_Delete: + push {r4,lr} + adds r2, r0, 0 + lsls r2, 16 + asrs r2, 16 + ldr r1, _080AC1A4 + lsls r0, r2, 3 + subs r0, r2 + lsls r0, 4 + adds r0, r2 + lsls r0, 2 + ldr r1, [r1] + adds r4, r1, r0 + ldr r1, _080AC1A8 + movs r0, 0 + bl Log + movs r1, 0xA2 + lsls r1, 1 + adds r0, r4, r1 + bl sub_80A7658 + adds r0, r4, 0 + adds r0, 0x38 + bl sub_809D648 + ldr r0, _080AC1AC + strh r0, [r4, 0x6] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC1A4: .4byte gUnknown_3001B88 +_080AC1A8: .4byte gUnknown_81184B0 +_080AC1AC: .4byte 0x0000ffff + thumb_func_end GroundObject_Delete + + thumb_func_start sub_80AC1B0 +sub_80AC1B0: + push {lr} + adds r3, r1, 0 + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC1F0 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r2, r0, r1 + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080AC1EA + movs r1, 0x8E + lsls r1, 1 + adds r0, r2, r1 + ldr r1, [r0] + orrs r1, r3 + str r1, [r0] + movs r3, 0xA2 + lsls r3, 1 + adds r0, r2, r3 + bl sub_80A6688 +_080AC1EA: + pop {r0} + bx r0 + .align 2, 0 +_080AC1F0: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC1B0 + + thumb_func_start sub_80AC1F4 +sub_80AC1F4: + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC238 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r3, r0, r1 + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080AC232 + movs r0, 0x8E + lsls r0, 1 + adds r2, r3, r0 + ldr r0, _080AC23C + eors r0, r4 + ldr r1, [r2] + ands r1, r0 + str r1, [r2] + movs r2, 0xA2 + lsls r2, 1 + adds r0, r3, r2 + bl sub_80A6688 +_080AC232: + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080AC238: .4byte gUnknown_3001B88 +_080AC23C: .4byte 0x337fffff + thumb_func_end sub_80AC1F4 + + thumb_func_start sub_80AC240 +sub_80AC240: + push {lr} + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC268 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r2, r0, r1 + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080AC26C + movs r0, 0 + b _080AC270 + .align 2, 0 +_080AC268: .4byte gUnknown_3001B88 +_080AC26C: + adds r0, r2, 0 + adds r0, 0x38 +_080AC270: + pop {r1} + bx r1 + thumb_func_end sub_80AC240 + + thumb_func_start sub_80AC274 +sub_80AC274: + push {r4,lr} + adds r4, r1, 0 + lsls r0, 16 + asrs r0, 16 + lsls r2, 16 + asrs r3, r2, 16 + ldr r2, _080AC2A0 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r2, r0, r1 + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080AC2A4 + movs r0, 0 + b _080AC2B4 + .align 2, 0 +_080AC2A0: .4byte gUnknown_3001B88 +_080AC2A4: + adds r0, r2, 0 + adds r0, 0x38 + adds r1, r4, 0 + adds r2, r3, 0 + bl sub_809D6E4 + lsls r0, 24 + lsrs r0, 24 +_080AC2B4: + pop {r4} + pop {r1} + bx r1 + thumb_func_end sub_80AC274 + + thumb_func_start GroundObject_ExecuteScript +GroundObject_ExecuteScript: + push {r4-r6,lr} + adds r3, r0, 0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r3, 16 + asrs r3, 16 + ldr r1, _080AC2F4 + lsls r0, r3, 3 + subs r0, r3 + lsls r0, 4 + adds r0, r3 + lsls r0, 2 + ldr r1, [r1] + adds r4, r1, r0 + ldr r1, _080AC2F8 + movs r0, 0 + adds r2, r3, 0 + bl Log + movs r0, 0x6 + ldrsh r1, [r4, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080AC2FC + movs r0, 0 + b _080AC314 + .align 2, 0 +_080AC2F4: .4byte gUnknown_3001B88 +_080AC2F8: .4byte gUnknown_81184CC +_080AC2FC: + adds r0, r4, 0 + adds r0, 0x38 + ldr r3, _080AC31C + adds r1, r5, 0 + adds r2, r6, 0 + bl GroundScript_ExecutePP + movs r0, 0x9E + lsls r0, 1 + adds r1, r4, r0 + movs r0, 0x1 + strb r0, [r1] +_080AC314: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_080AC31C: .4byte gUnknown_8118504 + thumb_func_end GroundObject_ExecuteScript + + thumb_func_start sub_80AC320 +sub_80AC320: + push {r4-r7,lr} + mov r7, r8 + push {r7} + lsls r0, 16 + asrs r7, r0, 16 + ldr r0, _080AC374 + ldr r4, [r0] + movs r5, 0 + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + movs r6, 0x80 + lsls r6, 9 +_080AC33A: + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, r8 + beq _080AC352 + adds r0, r4, 0 + adds r0, 0x38 + adds r1, r7, 0 + bl sub_809D968 + orrs r5, r0 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080AC352: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r0, 16 + movs r1, 0xE2 + lsls r1, 1 + adds r4, r1 + cmp r0, 0xF + ble _080AC33A + adds r0, r5, 0 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AC374: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC320 + + thumb_func_start sub_80AC378 +sub_80AC378: + push {r4-r7,lr} + ldr r0, _080AC3BC + ldr r4, [r0] + movs r5, 0 + movs r7, 0x1 + negs r7, r7 + movs r6, 0x80 + lsls r6, 9 +_080AC388: + movs r1, 0x6 + ldrsh r0, [r4, r1] + cmp r0, r7 + beq _080AC39E + adds r0, r4, 0 + adds r0, 0x38 + bl sub_809D92C + orrs r5, r0 + lsls r0, r5, 24 + lsrs r5, r0, 24 +_080AC39E: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r0, 16 + movs r1, 0xE2 + lsls r1, 1 + adds r4, r1 + cmp r0, 0xF + ble _080AC388 + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_080AC3BC: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC378 + + thumb_func_start sub_80AC3C0 +sub_80AC3C0: + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC3DC + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r0, r1 + movs r1, 0x6 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_080AC3DC: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC3C0 + + thumb_func_start sub_80AC3E0 +sub_80AC3E0: + lsls r0, 16 + asrs r0, 16 + ldr r3, _080AC404 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 4 + adds r2, r0 + lsls r2, 2 + ldr r0, [r3] + adds r0, r2 + movs r3, 0x8E + lsls r3, 1 + adds r2, r0, r3 + ldr r2, [r2] + str r2, [r1] + movs r1, 0x6 + ldrsh r0, [r0, r1] + bx lr + .align 2, 0 +_080AC404: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC3E0 + + thumb_func_start sub_80AC408 +sub_80AC408: + push {lr} + adds r3, r1, 0 + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC434 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r2, r0, r1 + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080AC438 + movs r0, 0 + str r0, [r3] + str r0, [r3, 0x4] + b _080AC440 + .align 2, 0 +_080AC434: .4byte gUnknown_3001B88 +_080AC438: + ldr r0, [r2, 0xC] + ldr r1, [r2, 0x10] + str r0, [r3] + str r1, [r3, 0x4] +_080AC440: + movs r1, 0x6 + ldrsh r0, [r2, r1] + pop {r1} + bx r1 + thumb_func_end sub_80AC408 + + thumb_func_start sub_80AC448 +sub_80AC448: + push {lr} + adds r3, r1, 0 + lsls r0, 16 + asrs r0, 16 + ldr r2, _080AC474 + lsls r1, r0, 3 + subs r1, r0 + lsls r1, 4 + adds r1, r0 + lsls r1, 2 + ldr r0, [r2] + adds r2, r0, r1 + movs r0, 0x6 + ldrsh r1, [r2, r0] + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + bne _080AC478 + movs r0, 0 + str r0, [r3] + b _080AC492 + .align 2, 0 +_080AC474: .4byte gUnknown_3001B88 +_080AC478: + movs r1, 0x92 + lsls r1, 1 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r2, 0x14] + adds r0, r1 + str r0, [r3] + movs r1, 0x94 + lsls r1, 1 + adds r0, r2, r1 + ldr r0, [r0] + ldr r1, [r2, 0x18] + adds r0, r1 +_080AC492: + str r0, [r3, 0x4] + movs r1, 0x6 + ldrsh r0, [r2, r1] + pop {r1} + bx r1 + thumb_func_end sub_80AC448 + + thumb_func_start sub_80AC49C +sub_80AC49C: + push {r4,lr} + lsls r0, 16 + asrs r0, 16 + ldr r3, _080AC4C4 + lsls r2, r0, 3 + subs r2, r0 + lsls r2, 4 + adds r2, r0 + lsls r2, 2 + ldr r4, [r3] + adds r4, r2 + adds r0, r4, 0 + bl sub_80AC6AC + movs r1, 0x6 + ldrsh r0, [r4, r1] + pop {r4} + pop {r1} + bx r1 + .align 2, 0 +_080AC4C4: .4byte gUnknown_3001B88 + thumb_func_end sub_80AC49C + + thumb_func_start sub_80AC4C8 +sub_80AC4C8: + push {r4-r7,lr} + adds r7, r0, 0 + adds r4, r1, 0 + ldr r0, _080AC530 + ldr r3, [r0] + movs r5, 0 + movs r0, 0x1 + negs r0, r0 + mov r12, r0 + movs r6, 0x80 + lsls r6, 9 +_080AC4DE: + movs r1, 0x6 + ldrsh r0, [r3, r1] + cmp r0, r12 + beq _080AC534 + movs r1, 0x8E + lsls r1, 1 + adds r0, r3, r1 + ldr r0, [r0] + ands r0, r7 + cmp r0, 0 + beq _080AC534 + adds r1, 0x8 + adds r0, r3, r1 + ldr r1, [r0] + ldr r0, [r2] + cmp r1, r0 + bge _080AC534 + movs r1, 0x96 + lsls r1, 1 + adds r0, r3, r1 + ldr r1, [r0] + ldr r0, [r4] + cmp r1, r0 + ble _080AC534 + movs r1, 0x94 + lsls r1, 1 + adds r0, r3, r1 + ldr r1, [r0] + ldr r0, [r2, 0x4] + cmp r1, r0 + bge _080AC534 + movs r1, 0x98 + lsls r1, 1 + adds r0, r3, r1 + ldr r1, [r0] + ldr r0, [r4, 0x4] + cmp r1, r0 + ble _080AC534 + adds r0, r5, 0 + b _080AC54C + .align 2, 0 +_080AC530: .4byte gUnknown_3001B88 +_080AC534: + adds r0, r6, 0 + movs r1, 0x80 + lsls r1, 9 + adds r6, r1 + asrs r5, r0, 16 + movs r0, 0xE2 + lsls r0, 1 + adds r3, r0 + cmp r5, 0xF + ble _080AC4DE + movs r0, 0x1 + negs r0, r0 +_080AC54C: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AC4C8 + + thumb_func_start sub_80AC554 +sub_80AC554: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + mov r8, r0 + mov r10, r1 + adds r4, r2, 0 + ldr r0, _080AC5C8 + ldr r0, [r0] + mov r12, r0 + movs r6, 0 + movs r0, 0x1 + negs r0, r0 + mov r9, r0 + movs r7, 0x80 + lsls r7, 9 +_080AC576: + mov r1, r12 + movs r2, 0x6 + ldrsh r0, [r1, r2] + cmp r0, r9 + beq _080AC5CC + movs r0, 0x8E + lsls r0, 1 + add r0, r12 + ldr r0, [r0] + mov r5, r8 + ands r0, r5 + cmp r0, 0 + beq _080AC5CC + movs r0, 0x92 + lsls r0, 1 + add r0, r12 + ldr r1, [r0] + mov r5, r12 + ldr r0, [r5, 0x14] + adds r2, r1, r0 + movs r0, 0x94 + lsls r0, 1 + add r0, r12 + ldr r1, [r0] + ldr r0, [r5, 0x18] + adds r3, r1, r0 + ldr r0, [r4] + cmp r2, r0 + bge _080AC5CC + mov r1, r10 + ldr r0, [r1] + cmp r2, r0 + ble _080AC5CC + ldr r0, [r4, 0x4] + cmp r3, r0 + bge _080AC5CC + ldr r0, [r1, 0x4] + cmp r3, r0 + ble _080AC5CC + adds r0, r6, 0 + b _080AC5E4 + .align 2, 0 +_080AC5C8: .4byte gUnknown_3001B88 +_080AC5CC: + adds r0, r7, 0 + movs r2, 0x80 + lsls r2, 9 + adds r7, r2 + asrs r6, r0, 16 + movs r5, 0xE2 + lsls r5, 1 + add r12, r5 + cmp r6, 0xF + ble _080AC576 + movs r0, 0x1 + negs r0, r0 +_080AC5E4: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AC554 + + thumb_func_start sub_80AC5F4 +sub_80AC5F4: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x10 + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + ldr r0, [r5] + cmp r0, 0 + bge _080AC60C + ldr r1, _080AC670 + adds r0, r1 +_080AC60C: + asrs r0, 11 + mov r12, r0 + str r0, [sp] + ldr r0, [r5, 0x4] + cmp r0, 0 + bge _080AC61C + ldr r3, _080AC670 + adds r0, r3 +_080AC61C: + asrs r4, r0, 11 + str r4, [sp, 0x4] + ldr r3, [r6] + subs r0, r3, 0x1 + cmp r0, 0 + bge _080AC62C + ldr r7, _080AC674 + adds r0, r3, r7 +_080AC62C: + asrs r1, r0, 11 + ldr r3, [r6, 0x4] + subs r0, r3, 0x1 + cmp r0, 0 + bge _080AC63A + ldr r7, _080AC674 + adds r0, r3, r7 +_080AC63A: + asrs r2, r0, 11 + mov r3, r12 + subs r0, r1, r3 + adds r0, 0x1 + str r0, [sp, 0x8] + subs r0, r2, r4 + adds r0, 0x1 + add r2, sp, 0x8 + str r0, [r2, 0x4] + movs r0, 0x8E + lsls r0, 1 + add r0, r8 + ldr r0, [r0] + movs r1, 0x1 + ands r0, r1 + cmp r0, 0 + beq _080AC678 + mov r0, sp + adds r1, r2, 0 + bl sub_80A585C + lsls r0, 24 + cmp r0, 0 + beq _080AC678 + movs r0, 0x1 + b _080AC6A0 + .align 2, 0 +_080AC670: .4byte 0x000007ff +_080AC674: .4byte 0x000007fe +_080AC678: + movs r0, 0x8E + lsls r0, 1 + add r0, r8 + ldr r0, [r0] + movs r1, 0x4 + ands r0, r1 + cmp r0, 0 + beq _080AC69E + movs r0, 0x1 + negs r0, r0 + adds r2, r5, 0 + adds r3, r6, 0 + bl sub_80A92A0 + lsls r0, 16 + cmp r0, 0 + blt _080AC69E + movs r0, 0x4 + b _080AC6A0 +_080AC69E: + movs r0, 0 +_080AC6A0: + add sp, 0x10 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80AC5F4 + + thumb_func_start sub_80AC6AC +sub_80AC6AC: + push {r4,r5,lr} + sub sp, 0x10 + adds r5, r0, 0 + ldr r2, [r1] + ldr r4, [r5, 0x14] + subs r0, r2, r4 + str r0, [sp] + ldr r3, [r1, 0x4] + ldr r1, [r5, 0x18] + subs r0, r3, r1 + str r0, [sp, 0x4] + adds r2, r4 + str r2, [sp, 0x8] + adds r3, r1 + add r2, sp, 0x8 + str r3, [r2, 0x4] + ldr r1, [r5, 0x28] + ldr r0, [sp] + cmp r0, r1 + blt _080AC6EA + ldr r1, [r5, 0x30] + ldr r0, [sp, 0x8] + cmp r0, r1 + bge _080AC6EA + ldr r1, [r5, 0x2C] + ldr r0, [sp, 0x4] + cmp r0, r1 + blt _080AC6EA + ldr r0, [r5, 0x34] + cmp r3, r0 + blt _080AC6EE +_080AC6EA: + movs r0, 0x1 + b _080AC718 +_080AC6EE: + adds r0, r5, 0 + mov r1, sp + bl sub_80AC5F4 + cmp r0, 0 + bne _080AC718 + movs r0, 0x92 + lsls r0, 1 + adds r2, r5, r0 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x96 + lsls r0, 1 + adds r2, r5, r0 + ldr r0, [sp, 0x8] + ldr r1, [sp, 0xC] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0 +_080AC718: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AC6AC + + thumb_func_start sub_80AC720 +sub_80AC720: + push {r4,r5,lr} + sub sp, 0x10 + adds r4, r0, 0 + movs r2, 0x92 + lsls r2, 1 + adds r0, r4, r2 + ldr r0, [r0] + ldr r2, [r1] + adds r0, r2 + str r0, [sp] + movs r3, 0x94 + lsls r3, 1 + adds r0, r4, r3 + ldr r0, [r0] + ldr r1, [r1, 0x4] + adds r0, r1 + str r0, [sp, 0x4] + adds r3, 0x4 + adds r0, r4, r3 + ldr r0, [r0] + adds r0, r2 + str r0, [sp, 0x8] + movs r2, 0x98 + lsls r2, 1 + adds r0, r4, r2 + ldr r0, [r0] + adds r0, r1 + add r1, sp, 0x8 + str r0, [r1, 0x4] + movs r5, 0 + ldr r3, [r4, 0x28] + ldr r0, [sp] + adds r2, r1, 0 + cmp r0, r3 + bge _080AC770 + str r3, [sp] + ldr r0, [r4, 0xC] + adds r0, r3, r0 + str r0, [sp, 0x8] + b _080AC780 +_080AC770: + ldr r1, [r4, 0x30] + ldr r0, [sp, 0x8] + cmp r0, r1 + blt _080AC782 + ldr r0, [r4, 0xC] + subs r0, r1, r0 + str r0, [sp] + str r1, [sp, 0x8] +_080AC780: + movs r5, 0x1 +_080AC782: + ldr r1, [r4, 0x2C] + ldr r0, [sp, 0x4] + cmp r0, r1 + bge _080AC794 + str r1, [sp, 0x4] + ldr r0, [r4, 0x10] + adds r0, r1, r0 + str r0, [r2, 0x4] + b _080AC7A4 +_080AC794: + ldr r1, [r4, 0x34] + ldr r0, [r2, 0x4] + cmp r0, r1 + blt _080AC7A6 + ldr r0, [r4, 0x10] + subs r0, r1, r0 + str r0, [sp, 0x4] + str r1, [r2, 0x4] +_080AC7A4: + movs r5, 0x1 +_080AC7A6: + adds r0, r4, 0 + mov r1, sp + bl sub_80AC5F4 + cmp r0, 0 + bne _080AC7D8 + movs r3, 0x92 + lsls r3, 1 + adds r2, r4, r3 + ldr r0, [sp] + ldr r1, [sp, 0x4] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x96 + lsls r0, 1 + adds r2, r4, r0 + ldr r0, [sp, 0x8] + ldr r1, [sp, 0xC] + str r0, [r2] + str r1, [r2, 0x4] + cmp r5, 0 + bne _080AC7D6 + movs r0, 0 + b _080AC7D8 +_080AC7D6: + movs r0, 0x1 +_080AC7D8: + add sp, 0x10 + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_80AC720 + + thumb_func_start sub_80AC7E0 +sub_80AC7E0: + movs r1, 0x4 + ldrsh r0, [r0, r1] + bx lr + thumb_func_end sub_80AC7E0 + + thumb_func_start sub_80AC7E8 +sub_80AC7E8: + ldr r2, [r0, 0xC] + ldr r3, [r0, 0x10] + str r2, [r1] + str r3, [r1, 0x4] + bx lr + thumb_func_end sub_80AC7E8 + + thumb_func_start sub_80AC7F4 +sub_80AC7F4: + push {r4,lr} + adds r3, r0, 0 + adds r4, r1, 0 + cmp r4, 0 + beq _080AC834 + movs r0, 0x92 + lsls r0, 1 + adds r2, r3, r0 + ldr r1, [r4] + ldr r0, [r3, 0x14] + subs r0, r1, r0 + str r0, [r2] + movs r0, 0x96 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x14] + adds r1, r0 + str r1, [r2] + movs r0, 0x94 + lsls r0, 1 + adds r2, r3, r0 + ldr r1, [r4, 0x4] + ldr r0, [r3, 0x18] + subs r0, r1, r0 + str r0, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x18] + adds r1, r0 + str r1, [r2] + b _080AC89A +_080AC834: + movs r0, 0x92 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x20] + ldr r1, [r3, 0x14] + subs r0, r1 + str r0, [r2] + movs r0, 0x96 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x20] + ldr r1, [r3, 0x14] + adds r0, r1 + str r0, [r2] + movs r0, 0x94 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x24] + ldr r1, [r3, 0x18] + subs r0, r1 + str r0, [r2] + movs r0, 0x98 + lsls r0, 1 + adds r2, r3, r0 + ldr r0, [r3, 0x24] + ldr r1, [r3, 0x18] + adds r0, r1 + str r0, [r2] + movs r2, 0x9A + lsls r2, 1 + adds r1, r3, r2 + adds r2, 0x4 + adds r0, r3, r2 + str r4, [r0] + str r4, [r1] + movs r0, 0x90 + lsls r0, 1 + adds r2, r3, r0 + movs r1, 0 + ldrsb r1, [r2, r1] + movs r0, 0x1C + ldrsb r0, [r3, r0] + cmp r1, r0 + beq _080AC896 + movs r0, 0x9E + lsls r0, 1 + adds r1, r3, r0 + movs r0, 0x1 + strb r0, [r1] +_080AC896: + ldrb r0, [r3, 0x1C] + strb r0, [r2] +_080AC89A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC7F4 + + thumb_func_start sub_80AC8A0 +sub_80AC8A0: + push {r4,lr} + ldr r3, [r1] + ldr r4, [r1, 0x4] + str r3, [r0, 0x28] + str r4, [r0, 0x2C] + ldr r1, [r2] + ldr r2, [r2, 0x4] + str r1, [r0, 0x30] + str r2, [r0, 0x34] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC8A0 + + thumb_func_start sub_80AC8B8 +sub_80AC8B8: + adds r3, r0, 0 + movs r2, 0x92 + lsls r2, 1 + adds r0, r3, r2 + ldr r0, [r0] + ldr r2, [r3, 0x14] + adds r0, r2 + str r0, [r1] + movs r2, 0x94 + lsls r2, 1 + adds r0, r3, r2 + ldr r0, [r0] + ldr r2, [r3, 0x18] + adds r0, r2 + str r0, [r1, 0x4] + bx lr + thumb_func_end sub_80AC8B8 + + thumb_func_start sub_80AC8D8 +sub_80AC8D8: + push {lr} + bl sub_80AC6AC + pop {r1} + bx r1 + thumb_func_end sub_80AC8D8 + + thumb_func_start sub_80AC8E4 +sub_80AC8E4: + push {r4,lr} + adds r3, r0, 0 + movs r4, 0x9A + lsls r4, 1 + adds r0, r3, r4 + ldr r0, [r0] + str r0, [r1] + movs r1, 0x9C + lsls r1, 1 + adds r0, r3, r1 + ldr r0, [r0] + str r0, [r2] + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_80AC8E4 + + thumb_func_start sub_80AC904 +sub_80AC904: + movs r2, 0x9A + lsls r2, 1 + adds r0, r2 + str r1, [r0] + bx lr + thumb_func_end sub_80AC904 + + thumb_func_start sub_80AC910 +sub_80AC910: + movs r2, 0x90 + lsls r2, 1 + adds r0, r2 + ldrb r0, [r0] + strb r0, [r1] + bx lr + thumb_func_end sub_80AC910 + + thumb_func_start sub_80AC91C +sub_80AC91C: + push {lr} + adds r2, r0, 0 + lsls r1, 24 + asrs r1, 24 + movs r0, 0x1 + negs r0, r0 + cmp r1, r0 + beq _080AC934 + movs r3, 0x90 + lsls r3, 1 + adds r0, r2, r3 + strb r1, [r0] +_080AC934: + pop {r0} + bx r0 + thumb_func_end sub_80AC91C + + thumb_func_start sub_80AC938 +sub_80AC938: + push {r4,r5,lr} + lsls r1, 16 + adds r3, r0, 0 + movs r0, 0xFF + lsls r0, 16 + ands r0, r1 + lsrs r0, 16 + cmp r0, 0 + beq _080AC958 + ldr r1, _080AC954 + lsls r0, 1 + adds r0, r1 + b _080AC95E + .align 2, 0 +_080AC954: .4byte gUnknown_81183A0 +_080AC958: + movs r5, 0x9F + lsls r5, 1 + adds r0, r3, r5 +_080AC95E: + movs r1, 0 + ldrsh r2, [r0, r1] + movs r5, 0x9F + lsls r5, 1 + adds r1, r3, r5 + ldrh r4, [r1] + movs r5, 0 + ldrsh r0, [r1, r5] + cmp r0, r2 + beq _080AC97C + strh r2, [r1] + movs r0, 0x9E + lsls r0, 1 + adds r1, r3, r0 + b _080AC98C +_080AC97C: + movs r0, 0x80 + lsls r0, 5 + ands r0, r4 + cmp r0, 0 + beq _080AC990 + movs r5, 0x9E + lsls r5, 1 + adds r1, r3, r5 +_080AC98C: + movs r0, 0x1 + strb r0, [r1] +_080AC990: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80AC938 + + thumb_func_start sub_80AC998 +sub_80AC998: + push {lr} + lsls r1, 16 + asrs r1, 16 + adds r2, r1, 0 + cmp r1, 0 + bne _080AC9AA + movs r1, 0xE0 + lsls r1, 1 + adds r2, r1, 0 +_080AC9AA: + movs r1, 0xA0 + lsls r1, 1 + adds r0, r1 + strh r2, [r0] + pop {r0} + bx r0 + thumb_func_end sub_80AC998 + + thumb_func_start sub_80AC9B8 +sub_80AC9B8: + push {lr} + adds r1, r0, 0 + movs r2, 0x9E + lsls r2, 1 + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _080AC9D6 + adds r2, 0x8 + adds r0, r1, r2 + bl sub_80A66F8 + lsls r0, 24 + lsrs r0, 24 + b _080AC9D8 +_080AC9D6: + movs r0, 0x1 +_080AC9D8: + pop {r1} + bx r1 + thumb_func_end sub_80AC9B8 + + thumb_func_start sub_80AC9DC +sub_80AC9DC: + push {lr} + adds r1, r0, 0 + movs r2, 0xA0 + lsls r2, 1 + adds r0, r1, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + cmp r0, 0 + bne _080AC9FE + movs r2, 0xA2 + lsls r2, 1 + adds r0, r1, r2 + bl sub_80A671C + lsls r0, 24 + lsrs r0, 24 + b _080ACA00 +_080AC9FE: + movs r0, 0x1 +_080ACA00: + pop {r1} + bx r1 + thumb_func_end sub_80AC9DC + + thumb_func_start sub_80ACA04 +sub_80ACA04: + movs r2, 0x8E + lsls r2, 1 + adds r0, r2 + ldr r0, [r0] + str r0, [r1] + bx lr + thumb_func_end sub_80ACA04 + + thumb_func_start sub_80ACA10 +sub_80ACA10: + push {lr} + movs r2, 0x4 + ldrsh r0, [r0, r2] + bl sub_80AC1B0 + pop {r0} + bx r0 + thumb_func_end sub_80ACA10 + + thumb_func_start sub_80ACA20 +sub_80ACA20: + push {lr} + movs r2, 0x4 + ldrsh r0, [r0, r2] + bl sub_80AC1F4 + pop {r0} + bx r0 + thumb_func_end sub_80ACA20 + + thumb_func_start sub_80ACA30 +sub_80ACA30: + push {lr} + bl sub_80AC720 + pop {r1} + bx r1 + thumb_func_end sub_80ACA30 + + thumb_func_start GroundObject_Action +GroundObject_Action: + push {r4-r7,lr} + mov r7, r8 + push {r7} + ldr r0, _080ACA7C + ldr r5, [r0] + movs r7, 0 + movs r0, 0x1 + negs r0, r0 + mov r8, r0 + movs r1, 0x9E + lsls r1, 1 + adds r6, r5, r1 +_080ACA54: + movs r3, 0x6 + ldrsh r0, [r5, r3] + cmp r0, r8 + beq _080ACAB2 + adds r4, r5, 0 + adds r4, 0x38 + adds r0, r4, 0 + ldr r1, _080ACA80 + bl HandleAction + lsls r0, 16 + asrs r0, 16 + cmp r0, 0 + beq _080ACA84 + cmp r0, 0x4 + bne _080ACA90 + adds r0, r7, 0 + bl GroundObject_Delete + b _080ACAB2 + .align 2, 0 +_080ACA7C: .4byte gUnknown_3001B88 +_080ACA80: .4byte gUnknown_8118524 +_080ACA84: + adds r0, r4, 0 + movs r1, 0 + movs r2, 0x1 + ldr r3, _080ACAD0 + bl sub_809D8C0 +_080ACA90: + ldrb r0, [r6] + cmp r0, 0 + beq _080ACAB2 + movs r0, 0 + strb r0, [r6] + movs r1, 0xA2 + lsls r1, 1 + adds r0, r5, r1 + ldrh r2, [r6, 0x2] + movs r3, 0xF8 + lsls r3, 5 + adds r1, r3, 0 + ands r1, r2 + lsls r2, 24 + asrs r2, 24 + bl sub_80A6EFC +_080ACAB2: + adds r0, r7, 0x1 + lsls r0, 16 + asrs r7, r0, 16 + movs r0, 0xE2 + lsls r0, 1 + adds r6, r0 + adds r5, r0 + cmp r7, 0xF + ble _080ACA54 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ACAD0: .4byte gUnknown_8118530 + thumb_func_end GroundObject_Action + + thumb_func_start sub_80ACAD4 +sub_80ACAD4: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x8 + ldr r0, _080ACB8C + ldr r6, [r0] + movs r0, 0 + mov r8, r0 + movs r1, 0x1 + negs r1, r1 + mov r9, r1 + movs r2, 0x90 + lsls r2, 1 + adds r4, r6, r2 +_080ACAF2: + movs r0, 0x6 + ldrsh r1, [r6, r0] + mov r2, r9 + lsls r0, r2, 16 + asrs r0, 16 + cmp r1, r0 + beq _080ACB64 + ldr r0, [r4, 0x4] + ldr r1, [r6, 0x14] + adds r0, r1 + str r0, [sp] + ldr r0, [r4, 0x8] + ldr r1, [r6, 0x18] + adds r0, r1 + str r0, [sp, 0x4] + ldr r1, [r4, 0x14] + ldr r0, [r4, 0x18] + adds r7, r1, r0 + movs r0, 0xA2 + lsls r0, 1 + adds r5, r6, r0 + adds r0, r5, 0 + bl sub_80A66D4 + lsls r0, 24 + cmp r0, 0 + beq _080ACB40 + movs r0, 0 + strb r0, [r4, 0x1C] + ldrh r2, [r4, 0x1E] + movs r0, 0xF8 + lsls r0, 5 + adds r1, r0, 0 + ands r1, r2 + lsls r2, 24 + asrs r2, 24 + adds r0, r5, 0 + bl sub_80A6EFC +_080ACB40: + movs r1, 0x20 + ldrsh r0, [r4, r1] + cmp r0, 0 + beq _080ACB5A + adds r1, r0, 0 + movs r2, 0 + ldrsb r2, [r4, r2] + adds r0, r5, 0 + movs r3, 0 + bl sub_80A7040 + movs r0, 0 + strh r0, [r4, 0x20] +_080ACB5A: + adds r0, r5, 0 + mov r1, sp + adds r2, r7, 0 + bl sub_80A7664 +_080ACB64: + mov r0, r8 + adds r0, 0x1 + lsls r0, 16 + asrs r0, 16 + mov r8, r0 + movs r0, 0xE2 + lsls r0, 1 + adds r4, r0 + adds r6, r0 + mov r1, r8 + cmp r1, 0xF + ble _080ACAF2 + add sp, 0x8 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_080ACB8C: .4byte gUnknown_3001B88 + thumb_func_end sub_80ACAD4 + + .align 2,0 |