mirror of
https://github.com/pret/pmd-red.git
synced 2026-03-21 17:46:39 -05:00
* move Thunderwave and Tiny Woods pokemon to json * rule tweaking to actually build tool before parsing JSON * delete .inc pokemon for tiny Woods and Thunderwave * silence git complaining about br_ips and ips_patch * use defines for species and pass the header file for species * convert sinister woods * convert MtThunderPeak * convert silent chasm * add trial floor_id w/ tiny woods * change make rule name to fix compile * MtSteel converted and bugfix * convert few floor headers and great canyon pokemon * code cleanup * unify unkData into UnkTextStruct2 * more code cleanup and some text decomp * doc more funcs and decomp/split some stuff * document more save stuff * more save work and move some data * pika sniped UpdateNatureTotal * decomp a litle and convert a few more dungeons * better scanning for json files * mt freeze and peak
14046 lines
208 KiB
ArmAsm
14046 lines
208 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80A77F8
|
|
sub_80A77F8:
|
|
push {r4,r5,lr}
|
|
ldr r4, _080A7860
|
|
movs r0, 0xCE
|
|
lsls r0, 2
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
ldr r4, _080A7864
|
|
movs r0, 0xBA
|
|
lsls r0, 6
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
adds r1, r0, 0
|
|
ldr r0, _080A7868
|
|
adds r5, r0, 0
|
|
movs r4, 0xF8
|
|
lsls r4, 1
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r3, r2, 0
|
|
_080A7826:
|
|
ldrh r0, [r1, 0x2]
|
|
orrs r0, r5
|
|
strh r0, [r1, 0x2]
|
|
adds r0, r2, 0
|
|
adds r2, r3
|
|
asrs r0, 16
|
|
adds r1, r4
|
|
cmp r0, 0x17
|
|
ble _080A7826
|
|
ldr r4, _080A7860
|
|
ldr r1, [r4]
|
|
movs r0, 0xCB
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r0, 0
|
|
movs r2, 0x19
|
|
bl sub_809D710
|
|
ldr r0, [r4]
|
|
movs r1, 0xCC
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strh r1, [r0]
|
|
bl sub_80A786C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7860: .4byte gUnknown_3001B80
|
|
_080A7864: .4byte gUnknown_3001B84
|
|
_080A7868: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A77F8
|
|
|
|
thumb_func_start sub_80A786C
|
|
sub_80A786C:
|
|
push {r4-r6,lr}
|
|
ldr r0, _080A78E8
|
|
ldr r4, [r0]
|
|
movs r1, 0
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
movs r5, 0x80
|
|
lsls r5, 9
|
|
_080A787C:
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r6
|
|
beq _080A788A
|
|
adds r0, r1, 0
|
|
bl GroundLives_Delete
|
|
_080A788A:
|
|
adds r0, r5, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r5, r1
|
|
asrs r1, r0, 16
|
|
movs r2, 0xF8
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
cmp r1, 0x17
|
|
ble _080A787C
|
|
ldr r3, _080A78EC
|
|
ldr r0, [r3]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
str r2, [r0, 0x24]
|
|
adds r0, 0x28
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
movs r5, 0
|
|
movs r4, 0
|
|
movs r1, 0x2
|
|
_080A78B4:
|
|
ldr r0, [r3]
|
|
adds r0, r4
|
|
str r2, [r0, 0x8]
|
|
str r5, [r0]
|
|
str r5, [r0, 0x4]
|
|
adds r4, 0xC
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A78B4
|
|
ldr r4, _080A78EC
|
|
movs r2, 0
|
|
movs r3, 0x2C
|
|
movs r1, 0x3F
|
|
_080A78CE:
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
str r2, [r0]
|
|
str r2, [r0, 0x4]
|
|
str r2, [r0, 0x8]
|
|
adds r3, 0xC
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A78CE
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A78E8: .4byte gUnknown_3001B84
|
|
_080A78EC: .4byte gUnknown_3001B80
|
|
thumb_func_end sub_80A786C
|
|
|
|
thumb_func_start sub_80A78F0
|
|
sub_80A78F0:
|
|
push {r4,r5,lr}
|
|
bl sub_80A786C
|
|
ldr r4, _080A7914
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r5, 0
|
|
str r5, [r4]
|
|
ldr r4, _080A7918
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
str r5, [r4]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7914: .4byte gUnknown_3001B84
|
|
_080A7918: .4byte gUnknown_3001B80
|
|
thumb_func_end sub_80A78F0
|
|
|
|
thumb_func_start GroundLives_Select
|
|
GroundLives_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, _080A7980
|
|
adds r0, r4, 0
|
|
bl sub_80A77D0
|
|
adds r5, r0, 0
|
|
ldr r1, _080A7984
|
|
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, 0x4]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
ble _080A7976
|
|
adds r4, r0, 0
|
|
_080A7960:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
adds r3, r6, 0
|
|
bl GroundLives_Add
|
|
subs r4, 0x1
|
|
adds r5, 0x18
|
|
cmp r4, 0
|
|
bne _080A7960
|
|
_080A7976:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7980: .4byte gUnknown_811808C
|
|
_080A7984: .4byte gUnknown_8118098
|
|
thumb_func_end GroundLives_Select
|
|
|
|
thumb_func_start GroundLives_Cancel
|
|
GroundLives_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, _080A79F4
|
|
movs r0, 0
|
|
adds r2, r7, 0
|
|
adds r3, r5, 0
|
|
bl Log
|
|
movs r1, 0
|
|
ldr r0, _080A79F8
|
|
ldr r4, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080A79B2:
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r8
|
|
beq _080A79D4
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r7
|
|
bne _080A79D4
|
|
cmp r5, 0
|
|
blt _080A79CE
|
|
movs r0, 0x6
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, r5
|
|
bne _080A79D4
|
|
_080A79CE:
|
|
adds r0, r1, 0
|
|
bl GroundLives_Delete
|
|
_080A79D4:
|
|
adds r0, r6, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r6, r1
|
|
asrs r1, r0, 16
|
|
movs r2, 0xF8
|
|
lsls r2, 1
|
|
adds r4, r2
|
|
cmp r1, 0x17
|
|
ble _080A79B2
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A79F4: .4byte gUnknown_81180BC
|
|
_080A79F8: .4byte gUnknown_3001B84
|
|
thumb_func_end GroundLives_Cancel
|
|
|
|
thumb_func_start sub_80A79FC
|
|
sub_80A79FC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
ldr r1, _080A7A70
|
|
movs r0, 0
|
|
bl Log
|
|
movs r6, 0
|
|
ldr r0, _080A7A74
|
|
ldr r4, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r5, r4, r1
|
|
mov r7, sp
|
|
_080A7A20:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r8
|
|
beq _080A7A50
|
|
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, 0xB8
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
mov r1, sp
|
|
bl sub_80A675C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A7A50
|
|
adds r0, r6, 0
|
|
bl GroundLives_Delete
|
|
_080A7A50:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
adds r4, r0
|
|
cmp r6, 0x17
|
|
ble _080A7A20
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7A70: .4byte gUnknown_81180D8
|
|
_080A7A74: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A79FC
|
|
|
|
thumb_func_start sub_80A7A78
|
|
sub_80A7A78:
|
|
push {r4-r7,lr}
|
|
ldr r1, _080A7AC0
|
|
movs r0, 0
|
|
bl Log
|
|
movs r6, 0
|
|
ldr r0, _080A7AC4
|
|
ldr r4, [r0]
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
movs r0, 0x9F
|
|
lsls r0, 1
|
|
adds r5, r4, r0
|
|
_080A7A92:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r7
|
|
beq _080A7ACC
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7AC8
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r1, r4, r0
|
|
adds r0, 0x8
|
|
adds r2, r4, r0
|
|
movs r0, 0x20
|
|
bl sub_80ADCA0
|
|
b _080A7ACA
|
|
.align 2, 0
|
|
_080A7AC0: .4byte gUnknown_81180D8
|
|
_080A7AC4: .4byte gUnknown_3001B84
|
|
_080A7AC8:
|
|
ldr r0, _080A7AE4
|
|
_080A7ACA:
|
|
strh r0, [r5]
|
|
_080A7ACC:
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
movs r1, 0xF8
|
|
lsls r1, 1
|
|
adds r5, r1
|
|
adds r4, r1
|
|
cmp r6, 0x17
|
|
ble _080A7A92
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7AE4: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A7A78
|
|
|
|
thumb_func_start sub_80A7AE8
|
|
sub_80A7AE8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
bl sub_80A7B94
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080A7B34
|
|
movs r3, 0
|
|
ldr r0, _080A7B24
|
|
ldr r1, [r0]
|
|
adds r4, r2, 0
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r6, r2, 0
|
|
movs r5, 0xF8
|
|
lsls r5, 1
|
|
_080A7B16:
|
|
movs r7, 0x2
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r4
|
|
bne _080A7B28
|
|
adds r0, r3, 0
|
|
b _080A7B38
|
|
.align 2, 0
|
|
_080A7B24: .4byte gUnknown_3001B84
|
|
_080A7B28:
|
|
adds r0, r2, 0
|
|
adds r2, r6
|
|
asrs r3, r0, 16
|
|
adds r1, r5
|
|
cmp r3, 0x17
|
|
ble _080A7B16
|
|
_080A7B34:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080A7B38:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A7AE8
|
|
|
|
thumb_func_start sub_80A7B40
|
|
sub_80A7B40:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r3, 0
|
|
ldr r0, _080A7B70
|
|
ldr r1, [r0]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
movs r5, 0x9E
|
|
lsls r5, 1
|
|
_080A7B58:
|
|
movs r7, 0x2
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r6
|
|
beq _080A7B74
|
|
adds r0, r1, r5
|
|
movs r7, 0
|
|
ldrsh r0, [r0, r7]
|
|
cmp r0, r4
|
|
bne _080A7B74
|
|
adds r0, r3, 0
|
|
b _080A7B8C
|
|
.align 2, 0
|
|
_080A7B70: .4byte gUnknown_3001B84
|
|
_080A7B74:
|
|
adds r0, r2, 0
|
|
movs r3, 0x80
|
|
lsls r3, 9
|
|
adds r2, r3
|
|
asrs r3, r0, 16
|
|
movs r7, 0xF8
|
|
lsls r7, 1
|
|
adds r1, r7
|
|
cmp r3, 0x17
|
|
ble _080A7B58
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080A7B8C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A7B40
|
|
|
|
thumb_func_start sub_80A7B94
|
|
sub_80A7B94:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r7, r0, 0
|
|
movs r0, 0
|
|
ldrsh r2, [r7, r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _080A7BD4
|
|
adds r0, r1
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
movs r1, 0
|
|
ldrsh r5, [r0, r1]
|
|
cmp r5, 0x1
|
|
bne _080A7C14
|
|
adds r0, r2, 0
|
|
cmp r0, 0
|
|
bne _080A7C10
|
|
movs r0, 0
|
|
movs r1, 0x1C
|
|
bl sub_8001658
|
|
adds r4, r0, 0
|
|
cmp r4, 0x1
|
|
beq _080A7BDE
|
|
cmp r4, 0x1
|
|
bgt _080A7BD8
|
|
cmp r4, 0
|
|
beq _080A7BF2
|
|
b _080A7C08
|
|
.align 2, 0
|
|
_080A7BD4: .4byte gUnknown_811E63C
|
|
_080A7BD8:
|
|
cmp r4, 0x2
|
|
beq _080A7BE4
|
|
b _080A7C08
|
|
_080A7BDE:
|
|
movs r0, 0x2
|
|
strh r0, [r7]
|
|
b _080A7C10
|
|
_080A7BE4:
|
|
bl sub_808D33C
|
|
adds r6, r0, 0
|
|
bl sub_808D3BC
|
|
cmp r0, r6
|
|
bne _080A7BF6
|
|
_080A7BF2:
|
|
strh r5, [r7]
|
|
b _080A7C10
|
|
_080A7BF6:
|
|
bl sub_808D3F8
|
|
cmp r0, r6
|
|
bne _080A7C02
|
|
strh r4, [r7]
|
|
b _080A7C10
|
|
_080A7C02:
|
|
movs r0, 0x3
|
|
strh r0, [r7]
|
|
b _080A7C10
|
|
_080A7C08:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
b _080A7DAC
|
|
_080A7C10:
|
|
movs r6, 0
|
|
b _080A7DD2
|
|
_080A7C14:
|
|
cmp r5, 0x2
|
|
bne _080A7CD2
|
|
movs r0, 0
|
|
movs r1, 0x1D
|
|
bl sub_8001658
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x1E
|
|
bl sub_8001658
|
|
adds r2, r0, 0
|
|
ldrh r1, [r7]
|
|
subs r0, r1, 0x4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _080A7C82
|
|
cmp r1, 0x4
|
|
bne _080A7C44
|
|
adds r0, r4, 0
|
|
cmp r0, 0
|
|
bne _080A7C4C
|
|
b _080A7C4A
|
|
_080A7C44:
|
|
movs r0, 0
|
|
cmp r4, 0
|
|
beq _080A7C4C
|
|
_080A7C4A:
|
|
adds r0, r2, 0
|
|
_080A7C4C:
|
|
cmp r0, 0x2
|
|
beq _080A7C7A
|
|
cmp r0, 0x2
|
|
bhi _080A7C5A
|
|
cmp r0, 0x1
|
|
beq _080A7C6E
|
|
b _080A7DA6
|
|
_080A7C5A:
|
|
cmp r0, 0x3
|
|
beq _080A7C60
|
|
b _080A7DA6
|
|
_080A7C60:
|
|
bl sub_808D33C
|
|
adds r4, r0, 0
|
|
bl sub_808D3BC
|
|
cmp r0, r4
|
|
bne _080A7C72
|
|
_080A7C6E:
|
|
movs r0, 0x6
|
|
b _080A7C80
|
|
_080A7C72:
|
|
bl sub_808D3F8
|
|
cmp r0, r4
|
|
bne _080A7C7E
|
|
_080A7C7A:
|
|
movs r0, 0x7
|
|
b _080A7C80
|
|
_080A7C7E:
|
|
movs r0, 0x8
|
|
_080A7C80:
|
|
strh r0, [r7]
|
|
_080A7C82:
|
|
movs r0, 0
|
|
ldrsh r5, [r7, r0]
|
|
cmp r5, 0x7
|
|
beq _080A7CB0
|
|
cmp r5, 0x7
|
|
bgt _080A7C94
|
|
cmp r5, 0x6
|
|
beq _080A7C9A
|
|
b _080A7CCA
|
|
_080A7C94:
|
|
cmp r5, 0x8
|
|
beq _080A7CC6
|
|
b _080A7CCA
|
|
_080A7C9A:
|
|
movs r6, 0x2
|
|
bl sub_808D33C
|
|
adds r4, r0, 0
|
|
bl sub_808D3BC
|
|
cmp r4, r0
|
|
beq _080A7CAC
|
|
b _080A7DD2
|
|
_080A7CAC:
|
|
strh r5, [r7]
|
|
b _080A7DD2
|
|
_080A7CB0:
|
|
movs r6, 0x1
|
|
bl sub_808D33C
|
|
adds r4, r0, 0
|
|
bl sub_808D3F8
|
|
cmp r4, r0
|
|
beq _080A7CC2
|
|
b _080A7DD2
|
|
_080A7CC2:
|
|
movs r0, 0x6
|
|
b _080A7DD0
|
|
_080A7CC6:
|
|
movs r6, 0x2
|
|
b _080A7DD2
|
|
_080A7CCA:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
b _080A7DAC
|
|
_080A7CD2:
|
|
cmp r5, 0x3
|
|
bne _080A7DB0
|
|
ldrh r1, [r7]
|
|
adds r0, r1, 0
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bhi _080A7D12
|
|
adds r4, r2, 0
|
|
subs r4, 0xA
|
|
bl sub_8098F88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A7DD2
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7D06
|
|
mov r0, sp
|
|
bl sub_808D6A4
|
|
b _080A7D0C
|
|
_080A7D06:
|
|
mov r0, sp
|
|
bl sub_808D654
|
|
_080A7D0C:
|
|
cmp r4, r0
|
|
bge _080A7DA6
|
|
b _080A7D7E
|
|
_080A7D12:
|
|
adds r0, r1, 0
|
|
subs r0, 0xE
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bhi _080A7DA6
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080A7DA6
|
|
movs r2, 0
|
|
ldrsh r0, [r7, r2]
|
|
adds r4, r0, 0
|
|
subs r4, 0xE
|
|
adds r0, r1, 0
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8092638
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
bge _080A7DA6
|
|
ldr r2, _080A7D84
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, r4
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7D88
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7DA6
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _080A7DA6
|
|
_080A7D7E:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A7DD4
|
|
.align 2, 0
|
|
_080A7D84: .4byte gRecruitedPokemonRef
|
|
_080A7D88:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7DA6
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _080A7DA6
|
|
movs r1, 0
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x41
|
|
bne _080A7DA2
|
|
movs r1, 0x1
|
|
_080A7DA2:
|
|
cmp r1, 0
|
|
beq _080A7D7E
|
|
_080A7DA6:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
_080A7DAC:
|
|
strh r0, [r7]
|
|
b _080A7D7E
|
|
_080A7DB0:
|
|
cmp r2, 0x23
|
|
bne _080A7DD2
|
|
bl sub_808D33C
|
|
adds r4, r0, 0
|
|
bl sub_808D3BC
|
|
cmp r0, r4
|
|
bne _080A7DC6
|
|
movs r0, 0x21
|
|
b _080A7DD0
|
|
_080A7DC6:
|
|
bl sub_808D3F8
|
|
cmp r0, r4
|
|
bne _080A7DD2
|
|
movs r0, 0x22
|
|
_080A7DD0:
|
|
strh r0, [r7]
|
|
_080A7DD2:
|
|
adds r0, r6, 0
|
|
_080A7DD4:
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A7B94
|
|
|
|
thumb_func_start sub_80A7DDC
|
|
sub_80A7DDC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x24
|
|
adds r7, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_80A7B94
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
ldrh r3, [r7]
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
cmp r0, r6
|
|
bne _080A7E0A
|
|
_080A7E04:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A8098
|
|
_080A7E0A:
|
|
movs r0, 0
|
|
ldrsh r2, [r7, r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _080A7E50
|
|
adds r4, r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x3
|
|
beq _080A7E22
|
|
b _080A7F38
|
|
_080A7E22:
|
|
adds r0, r3, 0
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bhi _080A7E90
|
|
adds r4, r2, 0
|
|
subs r4, 0xA
|
|
bl sub_8098F88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7E58
|
|
ldr r0, _080A7E54
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
strh r0, [r5]
|
|
cmp r0, 0
|
|
bne _080A7E04
|
|
strh r6, [r7]
|
|
b _080A7E04
|
|
.align 2, 0
|
|
_080A7E50: .4byte gUnknown_811E63C
|
|
_080A7E54: .4byte gUnknown_81180F0
|
|
_080A7E58:
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7E6C
|
|
mov r0, sp
|
|
bl sub_808D6A4
|
|
b _080A7E72
|
|
_080A7E6C:
|
|
mov r0, sp
|
|
bl sub_808D654
|
|
_080A7E72:
|
|
cmp r4, r0
|
|
blt _080A7E78
|
|
b _080A8080
|
|
_080A7E78:
|
|
ldr r2, _080A7E8C
|
|
lsls r0, r4, 2
|
|
add r0, sp
|
|
ldr r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x8]
|
|
b _080A800A
|
|
.align 2, 0
|
|
_080A7E8C: .4byte gRecruitedPokemonRef
|
|
_080A7E90:
|
|
adds r0, r3, 0
|
|
subs r0, 0xE
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bls _080A7E9E
|
|
b _080A8080
|
|
_080A7E9E:
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
bne _080A7EB8
|
|
b _080A8080
|
|
_080A7EB8:
|
|
movs r2, 0
|
|
ldrsh r0, [r7, r2]
|
|
adds r4, r0, 0
|
|
subs r4, 0xE
|
|
adds r0, r1, 0
|
|
mov r1, sp
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8092638
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
blt _080A7ED8
|
|
b _080A8080
|
|
_080A7ED8:
|
|
ldr r2, _080A7F0C
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, r4
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7F10
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A7EFE
|
|
b _080A8080
|
|
_080A7EFE:
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _080A7F06
|
|
b _080A8080
|
|
_080A7F06:
|
|
ldrh r0, [r4, 0x8]
|
|
b _080A800A
|
|
.align 2, 0
|
|
_080A7F0C: .4byte gRecruitedPokemonRef
|
|
_080A7F10:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A7F1C
|
|
b _080A8080
|
|
_080A7F1C:
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
beq _080A7F24
|
|
b _080A8080
|
|
_080A7F24:
|
|
movs r1, 0
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x41
|
|
bne _080A7F2E
|
|
movs r1, 0x1
|
|
_080A7F2E:
|
|
cmp r1, 0
|
|
beq _080A7F34
|
|
b _080A8080
|
|
_080A7F34:
|
|
ldrh r0, [r4, 0x8]
|
|
b _080A800A
|
|
_080A7F38:
|
|
subs r0, r3, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x23
|
|
bls _080A7F44
|
|
b _080A808A
|
|
_080A7F44:
|
|
lsls r0, 2
|
|
ldr r1, _080A7F50
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A7F50: .4byte _080A7F54
|
|
.align 2, 0
|
|
_080A7F54:
|
|
.4byte _080A7FE4
|
|
.4byte _080A7FEC
|
|
.4byte _080A7FF4
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A7FE4
|
|
.4byte _080A7FEC
|
|
.4byte _080A7FF4
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A808A
|
|
.4byte _080A8032
|
|
.4byte _080A8032
|
|
.4byte _080A8014
|
|
.4byte _080A7FE4
|
|
.4byte _080A7FEC
|
|
.4byte _080A7FF4
|
|
.4byte _080A7FFC
|
|
_080A7FE4:
|
|
bl sub_808D3BC
|
|
ldrh r0, [r0, 0x8]
|
|
b _080A8094
|
|
_080A7FEC:
|
|
bl sub_808D3F8
|
|
ldrh r0, [r0, 0x8]
|
|
b _080A8094
|
|
_080A7FF4:
|
|
bl sub_808D33C
|
|
ldrh r0, [r0, 0x8]
|
|
b _080A8094
|
|
_080A7FFC:
|
|
movs r0, 0xF
|
|
bl RandomCapped
|
|
ldr r1, _080A8010
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
_080A800A:
|
|
strh r0, [r5]
|
|
b _080A7E04
|
|
.align 2, 0
|
|
_080A8010: .4byte gUnknown_81180FC
|
|
_080A8014:
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
beq _080A8028
|
|
strh r0, [r5]
|
|
b _080A7E04
|
|
_080A8028:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
strh r0, [r7]
|
|
b _080A7E04
|
|
_080A8032:
|
|
movs r0, 0x89
|
|
strh r0, [r5]
|
|
add r6, sp, 0x10
|
|
adds r0, r6, 0
|
|
bl sub_8099328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8046
|
|
b _080A7E04
|
|
_080A8046:
|
|
add r1, sp, 0x14
|
|
add r2, sp, 0x18
|
|
movs r0, 0x2
|
|
bl sub_8001B88
|
|
add r4, sp, 0x1C
|
|
ldr r1, [sp, 0x18]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldrb r2, [r6]
|
|
adds r0, r4, 0
|
|
bl sub_8096AF8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A8076
|
|
movs r2, 0
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0x1E
|
|
bne _080A8072
|
|
ldrh r0, [r4, 0x2]
|
|
b _080A8074
|
|
_080A8072:
|
|
ldrh r0, [r4, 0x4]
|
|
_080A8074:
|
|
strh r0, [r5]
|
|
_080A8076:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _080A8080
|
|
b _080A7E04
|
|
_080A8080:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
strh r0, [r7]
|
|
b _080A7E04
|
|
_080A808A:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
bne _080A8096
|
|
ldrh r0, [r4, 0x2]
|
|
_080A8094:
|
|
strh r0, [r5]
|
|
_080A8096:
|
|
mov r0, r8
|
|
_080A8098:
|
|
add sp, 0x24
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A7DDC
|
|
|
|
thumb_func_start GroundLives_Add
|
|
GroundLives_Add:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x24
|
|
str r1, [sp, 0x10]
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
str r2, [sp, 0x14]
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
str r3, [sp, 0x18]
|
|
ldrb r1, [r1]
|
|
add r0, sp, 0xC
|
|
strh r1, [r0]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
mov r4, sp
|
|
adds r4, 0xE
|
|
add r0, sp, 0xC
|
|
adds r1, r4, 0
|
|
bl sub_80A7DDC
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
add r0, sp, 0xC
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r9, r4
|
|
cmp r1, r0
|
|
beq _080A81AE
|
|
cmp r7, 0x1
|
|
beq _080A8104
|
|
cmp r7, 0x1
|
|
bgt _080A80FA
|
|
cmp r7, 0
|
|
beq _080A8100
|
|
b _080A8118
|
|
_080A80FA:
|
|
cmp r7, 0x2
|
|
beq _080A8108
|
|
b _080A8118
|
|
_080A8100:
|
|
movs r6, 0
|
|
b _080A8118
|
|
_080A8104:
|
|
movs r6, 0x1
|
|
b _080A8118
|
|
_080A8108:
|
|
movs r0, 0
|
|
movs r1, 0x1D
|
|
bl sub_8001658
|
|
cmp r0, 0
|
|
bne _080A8116
|
|
movs r7, 0x1
|
|
_080A8116:
|
|
movs r6, 0x2
|
|
_080A8118:
|
|
add r0, sp, 0xC
|
|
movs r3, 0
|
|
ldrsh r2, [r0, r3]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _080A813C
|
|
adds r0, r1
|
|
str r0, [sp, 0x1C]
|
|
cmp r6, 0
|
|
bge _080A81B4
|
|
cmp r2, 0x21
|
|
beq _080A8140
|
|
cmp r2, 0x23
|
|
beq _080A8154
|
|
adds r0, r2, 0
|
|
b _080A8162
|
|
.align 2, 0
|
|
_080A813C: .4byte gUnknown_811E63C
|
|
_080A8140:
|
|
ldr r0, _080A8150
|
|
ldr r0, [r0]
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0x1
|
|
beq _080A81AE
|
|
movs r0, 0x21
|
|
b _080A8162
|
|
.align 2, 0
|
|
_080A8150: .4byte gUnknown_3001B84
|
|
_080A8154:
|
|
ldr r0, _080A8188
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x3
|
|
beq _080A81AE
|
|
movs r0, 0x23
|
|
_080A8162:
|
|
bl sub_80A7AE8
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
bge _080A81B4
|
|
movs r2, 0x3
|
|
ldr r0, _080A8188
|
|
ldr r0, [r0]
|
|
movs r3, 0xBA
|
|
lsls r3, 3
|
|
adds r5, r0, r3
|
|
movs r4, 0x2
|
|
ldrsh r1, [r5, r4]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A818C
|
|
movs r6, 0x3
|
|
b _080A81B4
|
|
.align 2, 0
|
|
_080A8188: .4byte gUnknown_3001B84
|
|
_080A818C:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
cmp r2, 0x17
|
|
bgt _080A81AA
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A818C
|
|
adds r6, r2, 0
|
|
_080A81AA:
|
|
cmp r6, 0
|
|
bge _080A81B4
|
|
_080A81AE:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A8674
|
|
_080A81B4:
|
|
ldr r1, _080A8234
|
|
lsls r0, r6, 5
|
|
subs r0, r6
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r5, r1, r0
|
|
ldr r1, _080A8238
|
|
add r0, sp, 0xC
|
|
movs r4, 0
|
|
ldrsh r3, [r0, r4]
|
|
ldr r2, [sp, 0x1C]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x14]
|
|
str r0, [sp, 0x4]
|
|
ldr r2, [sp, 0x18]
|
|
str r2, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r6, 0
|
|
bl Log
|
|
movs r2, 0
|
|
movs r3, 0x2
|
|
ldrsh r1, [r5, r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A81F0
|
|
movs r2, 0x1
|
|
_080A81F0:
|
|
str r2, [sp, 0x20]
|
|
strh r6, [r5]
|
|
add r0, sp, 0xC
|
|
ldrh r0, [r0]
|
|
strh r0, [r5, 0x2]
|
|
mov r4, sp
|
|
ldrh r4, [r4, 0x14]
|
|
strh r4, [r5, 0x4]
|
|
mov r0, sp
|
|
ldrb r0, [r0, 0x18]
|
|
strb r0, [r5, 0x6]
|
|
mov r1, r9
|
|
ldrh r0, [r1]
|
|
strh r0, [r5, 0x8]
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r4, r5, r2
|
|
adds r0, r4, 0
|
|
bl sub_809CD68
|
|
movs r0, 0x9
|
|
str r0, [r4]
|
|
ldr r3, [sp, 0x1C]
|
|
ldrh r0, [r3]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x9
|
|
bhi _080A82D8
|
|
lsls r0, 2
|
|
ldr r1, _080A823C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A8234: .4byte gUnknown_3001B84
|
|
_080A8238: .4byte gUnknown_811811C
|
|
_080A823C: .4byte _080A8240
|
|
.align 2, 0
|
|
_080A8240:
|
|
.4byte _080A8268
|
|
.4byte _080A8280
|
|
.4byte _080A8290
|
|
.4byte _080A82D8
|
|
.4byte _080A82D8
|
|
.4byte _080A8298
|
|
.4byte _080A82A8
|
|
.4byte _080A82B4
|
|
.4byte _080A82BE
|
|
.4byte _080A82CA
|
|
_080A8268:
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
ldr r0, _080A827C
|
|
str r0, [r1]
|
|
movs r0, 0x90
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
b _080A82E0
|
|
.align 2, 0
|
|
_080A827C: .4byte 0x2300181d
|
|
_080A8280:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
ldr r0, _080A828C
|
|
b _080A82E0
|
|
.align 2, 0
|
|
_080A828C: .4byte 0x23001000
|
|
_080A8290:
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
b _080A82DE
|
|
_080A8298:
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
ldr r0, _080A82A4
|
|
b _080A82E0
|
|
.align 2, 0
|
|
_080A82A4: .4byte 0x2000000d
|
|
_080A82A8:
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x80
|
|
lsls r0, 10
|
|
b _080A82E0
|
|
_080A82B4:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r0, 0
|
|
b _080A82E0
|
|
_080A82BE:
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
movs r0, 0xC0
|
|
lsls r0, 12
|
|
b _080A82E0
|
|
_080A82CA:
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
ldr r0, _080A82D4
|
|
b _080A82E0
|
|
.align 2, 0
|
|
_080A82D4: .4byte 0x20010000
|
|
_080A82D8:
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
_080A82DE:
|
|
ldr r0, _080A83DC
|
|
_080A82E0:
|
|
str r0, [r1]
|
|
ldr r2, [sp, 0x1C]
|
|
ldrb r1, [r2, 0x8]
|
|
lsls r1, 11
|
|
str r1, [r5, 0xC]
|
|
ldrb r0, [r2, 0x9]
|
|
lsls r0, 11
|
|
str r0, [r5, 0x10]
|
|
lsrs r1, 1
|
|
str r1, [r5, 0x14]
|
|
lsrs r0, 1
|
|
str r0, [r5, 0x18]
|
|
ldr r3, [sp, 0x10]
|
|
ldrb r0, [r3, 0x1]
|
|
strb r0, [r5, 0x1C]
|
|
adds r2, r3, 0
|
|
adds r2, 0x4
|
|
adds r4, r5, 0
|
|
adds r4, 0x20
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A8328
|
|
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 _080A8328
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r5, 0x20]
|
|
_080A8328:
|
|
ldrb r1, [r2, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A834A
|
|
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 _080A834A
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r3, r2
|
|
str r0, [r4, 0x4]
|
|
_080A834A:
|
|
ldr r3, [sp, 0x20]
|
|
cmp r3, 0
|
|
beq _080A83EC
|
|
ldrb r0, [r5, 0x1C]
|
|
movs r4, 0xA1
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
ldr r0, [r5, 0x20]
|
|
ldr r1, [r5, 0x14]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
adds r2, r5, r1
|
|
ldr r0, [r5, 0x20]
|
|
ldr r1, [r5, 0x14]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
adds r4, 0x6
|
|
adds r2, r5, r4
|
|
ldr r0, [r5, 0x24]
|
|
ldr r1, [r5, 0x18]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA8
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
ldr r0, [r5, 0x24]
|
|
ldr r1, [r5, 0x18]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
adds r4, 0x10
|
|
adds r0, r5, r4
|
|
str r3, [r0]
|
|
str r3, [r1]
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
strh r7, [r0]
|
|
ldr r1, _080A83E0
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1, 0x8]
|
|
str r3, [r1]
|
|
str r3, [r1, 0x4]
|
|
ldrh r0, [r5, 0x2]
|
|
subs r0, 0xE
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bhi _080A83E4
|
|
movs r0, 0x12
|
|
bl OtherRandomCapped
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
strh r0, [r1]
|
|
b _080A83EC
|
|
.align 2, 0
|
|
_080A83DC: .4byte 0x2300068d
|
|
_080A83E0: .4byte gUnknown_3001B80
|
|
_080A83E4:
|
|
movs r4, 0xA0
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
strh r3, [r0]
|
|
_080A83EC:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A8418
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r3, 0xA6
|
|
lsls r3, 1
|
|
adds r2, r5, r3
|
|
movs r0, 0x20
|
|
bl sub_80ADCA0
|
|
movs r4, 0x9F
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
b _080A8420
|
|
_080A8418:
|
|
movs r0, 0x9F
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
ldr r0, _080A849C
|
|
_080A8420:
|
|
strh r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0x28
|
|
adds r1, r5, 0
|
|
adds r1, 0x30
|
|
bl sub_80A5778
|
|
ldr r1, [sp, 0x20]
|
|
cmp r1, 0
|
|
beq _080A84AC
|
|
ldr r2, _080A84A0
|
|
adds r1, r5, r2
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r3, 0xAF
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
movs r3, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
movs r4, 0xB0
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
movs r2, 0x1
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
str r3, [r0]
|
|
adds r4, 0x8
|
|
adds r1, r5, r4
|
|
ldr r0, _080A84A4
|
|
strh r0, [r1]
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
strb r2, [r0]
|
|
movs r2, 0xB5
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
strh r3, [r0]
|
|
movs r3, 0xB8
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
movs r4, 0x2
|
|
ldrsh r1, [r5, r4]
|
|
movs r3, 0x8
|
|
ldrsh r2, [r5, r3]
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r3, r5, r4
|
|
ldr r3, [r3]
|
|
bl sub_80A7428
|
|
adds r4, r5, 0
|
|
adds r4, 0x38
|
|
ldr r1, _080A84A8
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
b _080A855C
|
|
.align 2, 0
|
|
_080A849C: .4byte 0x0000ffff
|
|
_080A84A0: .4byte 0x0000015d
|
|
_080A84A4: .4byte 0x00000807
|
|
_080A84A8: .4byte gUnknown_8117F10
|
|
_080A84AC:
|
|
adds r4, r5, 0
|
|
adds r4, 0x38
|
|
ldr r0, _080A84F0
|
|
ldr r1, [r0]
|
|
movs r2, 0xCB
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r0, r4, 0
|
|
bl sub_809D684
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8550
|
|
adds r0, r5, 0
|
|
adds r0, 0xBE
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
beq _080A84F4
|
|
adds r0, r5, 0
|
|
adds r0, 0xE0
|
|
ldrh r0, [r0]
|
|
mov r10, r0
|
|
adds r0, r5, 0
|
|
adds r0, 0xE2
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r9, r0
|
|
adds r7, r5, 0
|
|
adds r7, 0x80
|
|
movs r0, 0x82
|
|
adds r0, r5
|
|
b _080A8508
|
|
.align 2, 0
|
|
_080A84F0: .4byte gUnknown_3001B80
|
|
_080A84F4:
|
|
adds r1, r5, 0
|
|
adds r1, 0x80
|
|
ldrh r2, [r1]
|
|
mov r10, r2
|
|
adds r0, r5, 0
|
|
adds r0, 0x82
|
|
movs r3, 0
|
|
ldrsb r3, [r0, r3]
|
|
mov r9, r3
|
|
adds r7, r1, 0
|
|
_080A8508:
|
|
mov r8, r0
|
|
adds r0, r4, 0
|
|
bl sub_809D648
|
|
ldr r1, _080A8544
|
|
ldr r0, [sp, 0x18]
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_809D600
|
|
ldr r0, _080A8548
|
|
ldr r2, [r0]
|
|
movs r1, 0xCB
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
ldr r3, _080A854C
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GroundScript_ExecutePP
|
|
mov r2, r10
|
|
strh r2, [r7]
|
|
mov r0, r9
|
|
mov r3, r8
|
|
strb r0, [r3]
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
b _080A8566
|
|
.align 2, 0
|
|
_080A8544: .4byte gUnknown_8117F10
|
|
_080A8548: .4byte gUnknown_3001B80
|
|
_080A854C: .4byte gUnknown_8118170
|
|
_080A8550:
|
|
adds r0, r4, 0
|
|
bl sub_809D648
|
|
ldr r1, _080A861C
|
|
ldr r2, [sp, 0x18]
|
|
str r2, [sp]
|
|
_080A855C:
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_809D600
|
|
_080A8566:
|
|
ldr r3, [sp, 0x10]
|
|
ldr r2, [r3, 0xC]
|
|
cmp r2, 0
|
|
bne _080A8574
|
|
ldr r0, _080A8620
|
|
adds r0, 0xEC
|
|
ldr r2, [r0]
|
|
_080A8574:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_809D6D8
|
|
ldr r0, [sp, 0x10]
|
|
ldr r2, [r0, 0x10]
|
|
cmp r2, 0
|
|
bne _080A8588
|
|
ldr r0, _080A8620
|
|
ldr r2, [r0, 0x38]
|
|
_080A8588:
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl sub_809D6D8
|
|
ldr r1, [sp, 0x10]
|
|
ldr r2, [r1, 0x14]
|
|
cmp r2, 0
|
|
bne _080A859C
|
|
ldr r0, _080A8620
|
|
ldr r2, [r0, 0x50]
|
|
_080A859C:
|
|
adds r0, r4, 0
|
|
movs r1, 0x3
|
|
bl sub_809D6D8
|
|
ldr r3, [sp, 0x10]
|
|
ldr r2, [r3, 0x8]
|
|
cmp r2, 0
|
|
beq _080A8630
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_809D6D8
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, 0
|
|
bne _080A860C
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
bne _080A860C
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A860C
|
|
ldr r0, _080A8624
|
|
ldr r2, [r0]
|
|
movs r3, 0xCB
|
|
lsls r3, 2
|
|
adds r2, r3
|
|
ldr r3, _080A8628
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GroundScript_ExecutePP
|
|
movs r1, 0xB0
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
movs r2, 0xAF
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r1]
|
|
orrs r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x80
|
|
strh r0, [r1]
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldrb r1, [r0]
|
|
adds r0, r5, 0
|
|
adds r0, 0x82
|
|
strb r1, [r0]
|
|
_080A860C:
|
|
ldr r3, _080A862C
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809D8C0
|
|
b _080A865A
|
|
.align 2, 0
|
|
_080A861C: .4byte gUnknown_8117F10
|
|
_080A8620: .4byte gFunctionScriptTable
|
|
_080A8624: .4byte gUnknown_3001B80
|
|
_080A8628: .4byte gUnknown_811817C
|
|
_080A862C: .4byte gUnknown_8118188
|
|
_080A8630:
|
|
mov r4, r8
|
|
cmp r4, 0
|
|
beq _080A865A
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0x82
|
|
ldrb r0, [r0]
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
strb r0, [r1]
|
|
adds r0, r5, 0
|
|
adds r0, 0x80
|
|
ldrh r1, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_80A9750
|
|
_080A865A:
|
|
ldr r3, [sp, 0x1C]
|
|
movs r4, 0
|
|
ldrsh r0, [r3, r4]
|
|
cmp r0, 0x1
|
|
bne _080A8672
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, 0
|
|
beq _080A8672
|
|
movs r0, 0x1
|
|
adds r1, r6, 0
|
|
bl sub_809D170
|
|
_080A8672:
|
|
adds r0, r6, 0
|
|
_080A8674:
|
|
add sp, 0x24
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GroundLives_Add
|
|
|
|
thumb_func_start GroundLives_Delete
|
|
GroundLives_Delete:
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
ldr r1, _080A86BC
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r4, r1, r0
|
|
ldr r1, _080A86C0
|
|
movs r0, 0
|
|
bl Log
|
|
movs r1, 0xB8
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl sub_80A74E4
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
bl sub_809D648
|
|
ldr r0, _080A86C4
|
|
strh r0, [r4, 0x2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A86BC: .4byte gUnknown_3001B84
|
|
_080A86C0: .4byte gUnknown_8118194
|
|
_080A86C4: .4byte 0x0000ffff
|
|
thumb_func_end GroundLives_Delete
|
|
|
|
thumb_func_start sub_80A86C8
|
|
sub_80A86C8:
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8708
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
cmp r0, r3
|
|
beq _080A8744
|
|
movs r2, 0x9E
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _080A870C
|
|
movs r0, 0xC0
|
|
lsls r0, 6
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A872E
|
|
bl sub_80AB5A4
|
|
b _080A872E
|
|
.align 2, 0
|
|
_080A8708: .4byte gUnknown_3001B84
|
|
_080A870C:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A872E
|
|
ldr r2, _080A874C
|
|
movs r0, 0
|
|
ldrsh r1, [r1, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
str r3, [r1, 0x8]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
str r0, [r1, 0x4]
|
|
_080A872E:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r1, [r0]
|
|
orrs r1, r5
|
|
str r1, [r0]
|
|
movs r2, 0xB8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl sub_80A6688
|
|
_080A8744:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A874C: .4byte gUnknown_3001B80
|
|
thumb_func_end sub_80A86C8
|
|
|
|
thumb_func_start sub_80A8750
|
|
sub_80A8750:
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A87A8
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A87A2
|
|
movs r1, 0x9E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _080A878C
|
|
movs r0, 0xC0
|
|
lsls r0, 6
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A878C
|
|
bl sub_80AB5A4
|
|
_080A878C:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r1, [r0]
|
|
bics r1, r5
|
|
str r1, [r0]
|
|
movs r2, 0xB8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
bl sub_80A6688
|
|
_080A87A2:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A87A8: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8750
|
|
|
|
thumb_func_start sub_80A87AC
|
|
sub_80A87AC:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A87DC
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A87D8
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
adds r1, r3, 0
|
|
bl sub_809CD8C
|
|
_080A87D8:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A87DC: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A87AC
|
|
|
|
thumb_func_start sub_80A87E0
|
|
sub_80A87E0:
|
|
push {r4,lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8820
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A8824
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
adds r2, r3, 0
|
|
bl sub_809B1C0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8824
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
movs r1, 0x5
|
|
bl sub_809CD8C
|
|
movs r0, 0x1
|
|
b _080A8826
|
|
.align 2, 0
|
|
_080A8820: .4byte gUnknown_3001B84
|
|
_080A8824:
|
|
movs r0, 0
|
|
_080A8826:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A87E0
|
|
|
|
thumb_func_start sub_80A882C
|
|
sub_80A882C:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8850
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A8854
|
|
movs r0, 0
|
|
b _080A8858
|
|
.align 2, 0
|
|
_080A8850: .4byte gUnknown_3001B84
|
|
_080A8854:
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
_080A8858:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A882C
|
|
|
|
thumb_func_start sub_80A885C
|
|
sub_80A885C:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r2, 16
|
|
asrs r3, r2, 16
|
|
ldr r2, _080A8884
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A8888
|
|
movs r0, 0
|
|
b _080A8898
|
|
.align 2, 0
|
|
_080A8884: .4byte gUnknown_3001B84
|
|
_080A8888:
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
adds r1, r4, 0
|
|
adds r2, r3, 0
|
|
bl sub_809D6E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080A8898:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A885C
|
|
|
|
thumb_func_start sub_80A88A0
|
|
sub_80A88A0:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A88C4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A88C8
|
|
movs r0, 0
|
|
b _080A88D4
|
|
.align 2, 0
|
|
_080A88C4: .4byte gUnknown_3001B84
|
|
_080A88C8:
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
bl sub_809D678
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080A88D4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A88A0
|
|
|
|
thumb_func_start GroundLives_ExecuteScript
|
|
GroundLives_ExecuteScript:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
ldr r1, _080A8914
|
|
lsls r0, r4, 5
|
|
subs r0, r4
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r5, r1, r0
|
|
ldr r1, _080A8918
|
|
movs r0, 0x2
|
|
ldrsh r3, [r5, r0]
|
|
str r6, [sp]
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
bl Log
|
|
movs r0, 0x2
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A891C
|
|
movs r0, 0
|
|
b _080A8934
|
|
.align 2, 0
|
|
_080A8914: .4byte gUnknown_3001B84
|
|
_080A8918: .4byte gUnknown_81181B0
|
|
_080A891C:
|
|
adds r0, r5, 0
|
|
adds r0, 0x38
|
|
ldr r3, _080A893C
|
|
adds r1, r7, 0
|
|
adds r2, r6, 0
|
|
bl GroundScript_ExecutePP
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A8934:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A893C: .4byte gUnknown_81181F4
|
|
thumb_func_end GroundLives_ExecuteScript
|
|
|
|
thumb_func_start _ExecutePlayerScript
|
|
_ExecutePlayerScript:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
adds r5, r1, 0
|
|
adds r4, r2, 0
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r2, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
movs r0, 0xB0
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
str r2, [r0]
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
ldr r1, _080A898C
|
|
cmp r0, r1
|
|
beq _080A8984
|
|
strh r1, [r2]
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A8984:
|
|
cmp r4, 0
|
|
bne _080A8990
|
|
movs r0, 0
|
|
b _080A89A2
|
|
.align 2, 0
|
|
_080A898C: .4byte 0x00000807
|
|
_080A8990:
|
|
adds r0, r3, 0
|
|
adds r0, 0x38
|
|
ldr r3, _080A89A8
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl GroundScript_ExecutePP
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080A89A2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A89A8: .4byte gUnknown_8118218
|
|
thumb_func_end _ExecutePlayerScript
|
|
|
|
thumb_func_start sub_80A89AC
|
|
sub_80A89AC:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r4, _080A89CC
|
|
lsls r3, r0, 5
|
|
subs r3, r0
|
|
lsls r3, 4
|
|
ldr r0, [r4]
|
|
adds r0, r3
|
|
bl _ExecutePlayerScript
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A89CC: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A89AC
|
|
|
|
thumb_func_start GroundLives_ExecutePlayerScriptActionLives
|
|
GroundLives_ExecutePlayerScriptActionLives:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
cmp r2, 0
|
|
blt _080A8A50
|
|
cmp r4, 0
|
|
blt _080A8A50
|
|
ldr r1, _080A8A48
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r5, r1, r0
|
|
lsls r0, r4, 5
|
|
subs r0, r4
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
movs r2, 0x2
|
|
ldrsh r0, [r5, r2]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r0, r2
|
|
beq _080A8A50
|
|
movs r3, 0x2
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, r2
|
|
beq _080A8A50
|
|
adds r6, r1, 0
|
|
adds r6, 0x38
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_809D6E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8A50
|
|
movs r1, 0x1
|
|
lsls r0, r4, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0xC]
|
|
adds r1, r5, 0
|
|
adds r1, 0x40
|
|
ldr r3, _080A8A4C
|
|
adds r0, r6, 0
|
|
movs r2, 0x3
|
|
bl sub_809D8C0
|
|
add r1, sp, 0xC
|
|
adds r0, r5, 0
|
|
mov r2, sp
|
|
bl _ExecutePlayerScript
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080A8A52
|
|
.align 2, 0
|
|
_080A8A48: .4byte gUnknown_3001B84
|
|
_080A8A4C: .4byte gUnknown_8118250
|
|
_080A8A50:
|
|
movs r0, 0
|
|
_080A8A52:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GroundLives_ExecutePlayerScriptActionLives
|
|
|
|
thumb_func_start sub_80A8A5C
|
|
sub_80A8A5C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x1C
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
cmp r2, 0
|
|
blt _080A8AC0
|
|
cmp r5, 0
|
|
blt _080A8AC0
|
|
ldr r1, _080A8ABC
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_80AC274
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8AC0
|
|
movs r1, 0x2
|
|
lsls r0, r5, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x18]
|
|
add r4, sp, 0xC
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x3
|
|
bl sub_80AC274
|
|
adds r1, r6, 0
|
|
adds r1, 0x40
|
|
adds r0, r5, 0
|
|
adds r2, r4, 0
|
|
bl GroundObject_ExecuteScript
|
|
add r1, sp, 0x18
|
|
adds r0, r6, 0
|
|
mov r2, sp
|
|
bl _ExecutePlayerScript
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080A8AC2
|
|
.align 2, 0
|
|
_080A8ABC: .4byte gUnknown_3001B84
|
|
_080A8AC0:
|
|
movs r0, 0
|
|
_080A8AC2:
|
|
add sp, 0x1C
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8A5C
|
|
|
|
thumb_func_start sub_80A8ACC
|
|
sub_80A8ACC:
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
cmp r2, 0
|
|
blt _080A8B10
|
|
cmp r3, 0
|
|
blt _080A8B10
|
|
ldr r1, _080A8B0C
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r4, r1, r0
|
|
adds r0, r3, 0
|
|
mov r1, sp
|
|
bl sub_80ADC64
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8B10
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl _ExecutePlayerScript
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080A8B12
|
|
.align 2, 0
|
|
_080A8B0C: .4byte gUnknown_3001B84
|
|
_080A8B10:
|
|
movs r0, 0
|
|
_080A8B12:
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8ACC
|
|
|
|
thumb_func_start sub_80A8B1C
|
|
sub_80A8B1C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
ldr r0, _080A8B70
|
|
ldr r4, [r0]
|
|
movs r5, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080A8B36:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r8
|
|
beq _080A8B4E
|
|
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
|
|
_080A8B4E:
|
|
adds r0, r6, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r6, r1
|
|
asrs r0, 16
|
|
movs r1, 0xF8
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
cmp r0, 0x17
|
|
ble _080A8B36
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A8B70: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8B1C
|
|
|
|
thumb_func_start sub_80A8B74
|
|
sub_80A8B74:
|
|
push {r4-r7,lr}
|
|
ldr r0, _080A8BB8
|
|
ldr r4, [r0]
|
|
movs r5, 0
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080A8B84:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r7
|
|
beq _080A8B9A
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
bl sub_809D92C
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_080A8B9A:
|
|
adds r0, r6, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r6, r1
|
|
asrs r0, 16
|
|
movs r1, 0xF8
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
cmp r0, 0x17
|
|
ble _080A8B84
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A8BB8: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8B74
|
|
|
|
thumb_func_start sub_80A8BBC
|
|
sub_80A8BBC:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8BD4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A8BD4: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8BBC
|
|
|
|
thumb_func_start sub_80A8BD8
|
|
sub_80A8BD8:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r3, _080A8BF8
|
|
lsls r2, r0, 5
|
|
subs r2, r0
|
|
lsls r2, 4
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r2, r0, r3
|
|
ldr r2, [r2]
|
|
str r2, [r1]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A8BF8: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8BD8
|
|
|
|
thumb_func_start sub_80A8BFC
|
|
sub_80A8BFC:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8C20
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A8C24
|
|
movs r0, 0
|
|
b _080A8C28
|
|
.align 2, 0
|
|
_080A8C20: .4byte gUnknown_3001B84
|
|
_080A8C24:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
_080A8C28:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8BFC
|
|
|
|
thumb_func_start sub_80A8C2C
|
|
sub_80A8C2C:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A7DDC
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8C2C
|
|
|
|
thumb_func_start sub_80A8C4C
|
|
sub_80A8C4C:
|
|
push {r4,r5,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8C80
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A8C90
|
|
adds r0, r1, 0
|
|
bl sub_80A8D54
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
beq _080A8C84
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r5]
|
|
b _080A8C8A
|
|
.align 2, 0
|
|
_080A8C80: .4byte gUnknown_3001B84
|
|
_080A8C84:
|
|
movs r0, 0x63
|
|
strb r0, [r5]
|
|
strb r1, [r5, 0x1]
|
|
_080A8C8A:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
b _080A8C92
|
|
_080A8C90:
|
|
movs r0, 0
|
|
_080A8C92:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8C4C
|
|
|
|
thumb_func_start sub_80A8C98
|
|
sub_80A8C98:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8CD4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r3, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r3, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A8CE8
|
|
ldr r1, _080A8CD8
|
|
ldrh r2, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
beq _080A8CE8
|
|
movs r0, 0x8
|
|
ldrsh r3, [r3, r0]
|
|
_080A8CC6:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
bne _080A8CDC
|
|
movs r0, 0x1
|
|
b _080A8CEA
|
|
.align 2, 0
|
|
_080A8CD4: .4byte gUnknown_3001B84
|
|
_080A8CD8: .4byte gUnknown_8117FCE
|
|
_080A8CDC:
|
|
adds r1, 0x2
|
|
ldrh r2, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bne _080A8CC6
|
|
_080A8CE8:
|
|
movs r0, 0
|
|
_080A8CEA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8C98
|
|
|
|
thumb_func_start sub_80A8CF0
|
|
sub_80A8CF0:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
ldr r1, _080A8CFC
|
|
b _080A8D0E
|
|
.align 2, 0
|
|
_080A8CFC: .4byte gUnknown_8117FCE
|
|
_080A8D00:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, r3
|
|
bne _080A8D0C
|
|
movs r0, 0x1
|
|
b _080A8D1A
|
|
_080A8D0C:
|
|
adds r1, 0x2
|
|
_080A8D0E:
|
|
ldrh r2, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
bne _080A8D00
|
|
movs r0, 0
|
|
_080A8D1A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8CF0
|
|
|
|
thumb_func_start sub_80A8D20
|
|
sub_80A8D20:
|
|
push {lr}
|
|
movs r0, 0
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8D50
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0x90
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bl sub_809CDB8
|
|
movs r1, 0
|
|
cmp r0, 0x1
|
|
bne _080A8D4A
|
|
movs r1, 0x1
|
|
_080A8D4A:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A8D50: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8D20
|
|
|
|
thumb_func_start sub_80A8D54
|
|
sub_80A8D54:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
mov r1, sp
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
bl sub_80A7B94
|
|
mov r0, sp
|
|
ldrh r1, [r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0x1
|
|
beq _080A8D76
|
|
cmp r0, 0x6
|
|
beq _080A8D76
|
|
cmp r0, 0x21
|
|
bne _080A8D7C
|
|
_080A8D76:
|
|
bl sub_808D3BC
|
|
b _080A8E94
|
|
_080A8D7C:
|
|
cmp r0, 0x2
|
|
beq _080A8D88
|
|
cmp r0, 0x7
|
|
beq _080A8D88
|
|
cmp r0, 0x22
|
|
bne _080A8D8E
|
|
_080A8D88:
|
|
bl sub_808D3F8
|
|
b _080A8E94
|
|
_080A8D8E:
|
|
cmp r0, 0x3
|
|
beq _080A8D9A
|
|
cmp r0, 0x8
|
|
beq _080A8D9A
|
|
cmp r0, 0x23
|
|
bne _080A8DA0
|
|
_080A8D9A:
|
|
bl sub_808D33C
|
|
b _080A8E94
|
|
_080A8DA0:
|
|
adds r0, r1, 0
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x3
|
|
bhi _080A8DF8
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
adds r5, r0, 0
|
|
subs r5, 0xA
|
|
bl sub_8098F88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A8E92
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8DD6
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_808D6A4
|
|
b _080A8DDE
|
|
_080A8DD6:
|
|
add r4, sp, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_808D654
|
|
_080A8DDE:
|
|
cmp r5, r0
|
|
bge _080A8E92
|
|
ldr r2, _080A8DF4
|
|
lsls r0, r5, 2
|
|
adds r0, r4, r0
|
|
ldr r1, [r0]
|
|
movs r0, 0x58
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
b _080A8E94
|
|
.align 2, 0
|
|
_080A8DF4: .4byte gRecruitedPokemonRef
|
|
_080A8DF8:
|
|
adds r0, r1, 0
|
|
subs r0, 0xE
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bhi _080A8E92
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _080A8E92
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r5, r0, 0
|
|
subs r5, 0xE
|
|
add r4, sp, 0x4
|
|
adds r0, r1, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_8092638
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r5, r0
|
|
bge _080A8E92
|
|
ldr r2, _080A8E6C
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, r5
|
|
movs r1, 0x58
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
movs r0, 0x9
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A8E70
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A8E92
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _080A8E92
|
|
adds r0, r4, 0
|
|
b _080A8E94
|
|
.align 2, 0
|
|
_080A8E6C: .4byte gRecruitedPokemonRef
|
|
_080A8E70:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A8E92
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _080A8E92
|
|
movs r1, 0
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x41
|
|
bne _080A8E8A
|
|
movs r1, 0x1
|
|
_080A8E8A:
|
|
cmp r1, 0
|
|
bne _080A8E92
|
|
adds r0, r4, 0
|
|
b _080A8E94
|
|
_080A8E92:
|
|
movs r0, 0
|
|
_080A8E94:
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8D54
|
|
|
|
thumb_func_start sub_80A8E9C
|
|
sub_80A8E9C:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8EBC
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A8D54
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A8EBC: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8E9C
|
|
|
|
thumb_func_start sub_80A8EC0
|
|
sub_80A8EC0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
adds r1, r5, 0
|
|
bl sub_80A7DDC
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A8D54
|
|
cmp r0, 0
|
|
beq _080A8EF0
|
|
adds r1, r0, 0
|
|
adds r1, 0x4C
|
|
adds r0, r4, 0
|
|
movs r2, 0xA
|
|
bl sub_80922B4
|
|
b _080A8F44
|
|
_080A8EF0:
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0x20
|
|
bne _080A8F00
|
|
movs r0, 0
|
|
ldrsh r1, [r5, r0]
|
|
b _080A8F34
|
|
_080A8F00:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A8F3C
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r1, _080A8F2C
|
|
adds r0, r1
|
|
cmp r2, 0x34
|
|
beq _080A8F20
|
|
cmp r2, 0x64
|
|
bne _080A8F30
|
|
_080A8F20:
|
|
ldr r1, [r0, 0x4]
|
|
adds r0, r4, 0
|
|
bl strcpy
|
|
b _080A8F44
|
|
.align 2, 0
|
|
_080A8F2C: .4byte gUnknown_811E63C
|
|
_080A8F30:
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
_080A8F34:
|
|
adds r0, r4, 0
|
|
bl CopySpeciesNametoBuffer
|
|
b _080A8F44
|
|
_080A8F3C:
|
|
ldr r1, _080A8F4C
|
|
adds r0, r4, 0
|
|
bl strcpy
|
|
_080A8F44:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8F4C: .4byte gGroundLives_InvalidityText
|
|
thumb_func_end sub_80A8EC0
|
|
|
|
thumb_func_start sub_80A8F50
|
|
sub_80A8F50:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x80
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r0, sp
|
|
bl sub_80A8EC0
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl BoundedCopyStringtoBuffer
|
|
add sp, 0x80
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A8F50
|
|
|
|
thumb_func_start sub_80A8F74
|
|
sub_80A8F74:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8F98
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r3, 0
|
|
bl sub_80A8EC0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A8F98: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A8F74
|
|
|
|
thumb_func_start sub_80A8F9C
|
|
sub_80A8F9C:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A8FC4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A8FC8
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
str r0, [r3, 0x4]
|
|
b _080A8FD0
|
|
.align 2, 0
|
|
_080A8FC4: .4byte gUnknown_3001B84
|
|
_080A8FC8:
|
|
ldr r0, [r2, 0xC]
|
|
ldr r1, [r2, 0x10]
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
_080A8FD0:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8F9C
|
|
|
|
thumb_func_start sub_80A8FD8
|
|
sub_80A8FD8:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A9000
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A9004
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
b _080A901E
|
|
.align 2, 0
|
|
_080A9000: .4byte gUnknown_3001B84
|
|
_080A9004:
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
ldr r1, [r2, 0x14]
|
|
adds r0, r1
|
|
str r0, [r3]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldr r0, [r0]
|
|
ldr r1, [r2, 0x18]
|
|
adds r0, r1
|
|
_080A901E:
|
|
str r0, [r3, 0x4]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A8FD8
|
|
|
|
thumb_func_start sub_80A9028
|
|
sub_80A9028:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r3, _080A904C
|
|
lsls r2, r0, 5
|
|
subs r2, r0
|
|
lsls r2, 4
|
|
ldr r4, [r3]
|
|
adds r4, r2
|
|
adds r0, r4, 0
|
|
bl sub_80A9F20
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A904C: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A9028
|
|
|
|
thumb_func_start sub_80A9050
|
|
sub_80A9050:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A9078
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
adds r3, r0, 0
|
|
cmp r1, r0
|
|
bne _080A907C
|
|
strb r3, [r4]
|
|
b _080A9086
|
|
.align 2, 0
|
|
_080A9078: .4byte gUnknown_3001B84
|
|
_080A907C:
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
_080A9086:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9050
|
|
|
|
thumb_func_start sub_80A9090
|
|
sub_80A9090:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 24
|
|
asrs r3, r1, 24
|
|
ldr r2, _080A90C4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
movs r0, 0x2
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A90BA
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
adds r0, r2, r1
|
|
strb r3, [r0]
|
|
_080A90BA:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r2, r1]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A90C4: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A9090
|
|
|
|
thumb_func_start sub_80A90C8
|
|
sub_80A90C8:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080A90E4
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A90E4: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80A90C8
|
|
|
|
thumb_func_start sub_80A90E8
|
|
sub_80A90E8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
cmp r2, r3
|
|
beq _080A9196
|
|
ldr r1, _080A916C
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r5, r1, r0
|
|
lsls r0, r3, 5
|
|
subs r0, r3
|
|
lsls r0, 4
|
|
adds r4, r1, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _080A9196
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r1
|
|
beq _080A9196
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, 0x14]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r2, 0xA4
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, 0x18]
|
|
adds r0, r1
|
|
str r0, [sp, 0x4]
|
|
adds r3, r4, r3
|
|
ldr r0, [r3]
|
|
ldr r1, [r4, 0x14]
|
|
adds r0, r1
|
|
str r0, [sp, 0x8]
|
|
adds r2, r4, r2
|
|
ldr r0, [r2]
|
|
ldr r1, [r4, 0x18]
|
|
adds r0, r1
|
|
add r2, sp, 0x8
|
|
str r0, [r2, 0x4]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x24
|
|
bgt _080A9170
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r3, r4, 0
|
|
adds r3, 0xC
|
|
mov r0, sp
|
|
bl sub_8002DF0
|
|
b _080A917E
|
|
.align 2, 0
|
|
_080A916C: .4byte gUnknown_3001B84
|
|
_080A9170:
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r3, r4, 0
|
|
adds r3, 0xC
|
|
mov r0, sp
|
|
bl sub_8002D54
|
|
_080A917E:
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A9196
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
movs r0, 0x1
|
|
b _080A9198
|
|
_080A9196:
|
|
movs r0, 0
|
|
_080A9198:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A90E8
|
|
|
|
thumb_func_start sub_80A91A0
|
|
sub_80A91A0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
cmp r2, r4
|
|
beq _080A928E
|
|
ldr r1, _080A9260
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r7, r1, r0
|
|
lsls r0, r4, 5
|
|
subs r0, r4
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
mov r8, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r7, r1]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
mov r10, r2
|
|
cmp r0, r10
|
|
beq _080A928E
|
|
mov r3, r8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, r10
|
|
beq _080A928E
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r7, r3
|
|
ldr r0, [r0]
|
|
ldr r1, [r7, 0x14]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
movs r2, 0xA4
|
|
lsls r2, 1
|
|
adds r0, r7, r2
|
|
ldr r0, [r0]
|
|
ldr r1, [r7, 0x18]
|
|
adds r0, r1
|
|
str r0, [sp, 0x4]
|
|
add r3, r8
|
|
ldr r0, [r3]
|
|
mov r3, r8
|
|
ldr r1, [r3, 0x14]
|
|
adds r0, r1
|
|
str r0, [sp, 0x8]
|
|
add r2, r8
|
|
ldr r0, [r2]
|
|
ldr r1, [r3, 0x18]
|
|
adds r0, r1
|
|
add r4, sp, 0x8
|
|
str r0, [r4, 0x4]
|
|
adds r5, r7, 0
|
|
adds r5, 0xC
|
|
mov r6, r8
|
|
adds r6, 0xC
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r6, 0
|
|
bl sub_8002DF0
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r9, r0
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
adds r3, r6, 0
|
|
bl sub_8002D54
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r9, r10
|
|
beq _080A928E
|
|
cmp r1, r10
|
|
beq _080A928E
|
|
movs r2, 0x2
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0x24
|
|
bgt _080A9264
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r0, r7, r3
|
|
mov r2, r9
|
|
strb r2, [r0]
|
|
b _080A926C
|
|
.align 2, 0
|
|
_080A9260: .4byte gUnknown_3001B84
|
|
_080A9264:
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r0, r7, r3
|
|
strb r1, [r0]
|
|
_080A926C:
|
|
mov r2, r8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0x25
|
|
bgt _080A927A
|
|
mov r0, r9
|
|
b _080A927C
|
|
_080A927A:
|
|
adds r0, r1, 0
|
|
_080A927C:
|
|
movs r1, 0x5
|
|
bl sub_8002984
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
add r1, r8
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
b _080A9290
|
|
_080A928E:
|
|
movs r0, 0
|
|
_080A9290:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A91A0
|
|
|
|
thumb_func_start sub_80A92A0
|
|
sub_80A92A0:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r9, r1
|
|
adds r4, r2, 0
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
ldr r0, _080A931C
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r5, 0x80
|
|
lsls r5, 9
|
|
_080A92C2:
|
|
cmp r2, r6
|
|
beq _080A9320
|
|
mov r1, r12
|
|
movs r7, 0x2
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r8
|
|
beq _080A9320
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
mov r1, r9
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9320
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bge _080A9320
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
ldr r0, [r4]
|
|
cmp r1, r0
|
|
ble _080A9320
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
ldr r0, [r3, 0x4]
|
|
cmp r1, r0
|
|
bge _080A9320
|
|
movs r0, 0xA8
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
ldr r0, [r4, 0x4]
|
|
cmp r1, r0
|
|
ble _080A9320
|
|
adds r0, r2, 0
|
|
b _080A9338
|
|
.align 2, 0
|
|
_080A931C: .4byte gUnknown_3001B84
|
|
_080A9320:
|
|
adds r0, r5, 0
|
|
movs r7, 0x80
|
|
lsls r7, 9
|
|
adds r5, r7
|
|
asrs r2, r0, 16
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
add r12, r0
|
|
cmp r2, 0x17
|
|
ble _080A92C2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080A9338:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A92A0
|
|
|
|
thumb_func_start sub_80A9344
|
|
sub_80A9344:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4
|
|
mov r9, r1
|
|
str r2, [sp]
|
|
adds r5, r3, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
ldr r0, _080A93C4
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r4, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r10, r0
|
|
movs r7, 0x80
|
|
lsls r7, 9
|
|
_080A936E:
|
|
cmp r4, r8
|
|
beq _080A93C8
|
|
mov r1, r12
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r10
|
|
beq _080A93C8
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
mov r6, r9
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080A93C8
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
mov r6, r12
|
|
ldr r0, [r6, 0x14]
|
|
adds r2, r1, r0
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r1, [r0]
|
|
ldr r0, [r6, 0x18]
|
|
adds r3, r1, r0
|
|
ldr r0, [r5]
|
|
cmp r2, r0
|
|
bge _080A93C8
|
|
ldr r1, [sp]
|
|
ldr r0, [r1]
|
|
cmp r2, r0
|
|
ble _080A93C8
|
|
ldr r0, [r5, 0x4]
|
|
cmp r3, r0
|
|
bge _080A93C8
|
|
ldr r0, [r1, 0x4]
|
|
cmp r3, r0
|
|
ble _080A93C8
|
|
adds r0, r4, 0
|
|
b _080A93E0
|
|
.align 2, 0
|
|
_080A93C4: .4byte gUnknown_3001B84
|
|
_080A93C8:
|
|
adds r0, r7, 0
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r7, r2
|
|
asrs r4, r0, 16
|
|
movs r6, 0xF8
|
|
lsls r6, 1
|
|
add r12, r6
|
|
cmp r4, 0x17
|
|
ble _080A936E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080A93E0:
|
|
add sp, 0x4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9344
|
|
|
|
thumb_func_start sub_80A93F0
|
|
sub_80A93F0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
ldr r2, _080A947C
|
|
lsls r1, r0, 5
|
|
subs r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
mov r12, r0
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _080A941A
|
|
ldr r1, _080A9480
|
|
adds r0, r1
|
|
_080A941A:
|
|
asrs r5, r0, 11
|
|
str r5, [sp]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _080A942E
|
|
ldr r7, _080A9480
|
|
adds r0, r7
|
|
_080A942E:
|
|
asrs r4, r0, 11
|
|
str r4, [sp, 0x4]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
subs r1, r0, 0x1
|
|
cmp r1, 0
|
|
bge _080A9444
|
|
ldr r7, _080A9484
|
|
adds r1, r0, r7
|
|
_080A9444:
|
|
asrs r2, r1, 11
|
|
movs r0, 0xA8
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
subs r1, r0, 0x1
|
|
cmp r1, 0
|
|
bge _080A9458
|
|
ldr r7, _080A9484
|
|
adds r1, r0, r7
|
|
_080A9458:
|
|
asrs r3, r1, 11
|
|
subs r0, r2, r5
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
subs r0, r3, r4
|
|
adds r0, 0x1
|
|
add r2, sp, 0x8
|
|
str r0, [r2, 0x4]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
bl sub_80A5934
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A947C: .4byte gUnknown_3001B84
|
|
_080A9480: .4byte 0x000007ff
|
|
_080A9484: .4byte 0x000007fe
|
|
thumb_func_end sub_80A93F0
|
|
|
|
thumb_func_start sub_80A9488
|
|
sub_80A9488:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bge _080A94A0
|
|
ldr r1, _080A9528
|
|
adds r0, r1
|
|
_080A94A0:
|
|
asrs r0, 11
|
|
mov r12, r0
|
|
str r0, [sp]
|
|
ldr r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
bge _080A94B0
|
|
ldr r3, _080A9528
|
|
adds r0, r3
|
|
_080A94B0:
|
|
asrs r4, r0, 11
|
|
str r4, [sp, 0x4]
|
|
mov r6, r8
|
|
ldr r3, [r6]
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _080A94C2
|
|
ldr r6, _080A952C
|
|
adds r0, r3, r6
|
|
_080A94C2:
|
|
asrs r1, r0, 11
|
|
mov r0, r8
|
|
ldr r3, [r0, 0x4]
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _080A94D2
|
|
ldr r6, _080A952C
|
|
adds r0, r3, r6
|
|
_080A94D2:
|
|
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 r6, 0x8E
|
|
lsls r6, 1
|
|
adds r0, r5, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
beq _080A9504
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A585C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9522
|
|
_080A9504:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9530
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A58C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A9530
|
|
_080A9522:
|
|
movs r0, 0x1
|
|
b _080A95A0
|
|
.align 2, 0
|
|
_080A9528: .4byte 0x000007ff
|
|
_080A952C: .4byte 0x000007fe
|
|
_080A9530:
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9556
|
|
movs r6, 0
|
|
ldrsh r0, [r5, r6]
|
|
adds r2, r7, 0
|
|
mov r3, r8
|
|
bl sub_80A92A0
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080A9556
|
|
movs r0, 0x4
|
|
b _080A95A0
|
|
_080A9556:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A957A
|
|
movs r0, 0x4
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_80AC4C8
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080A957A
|
|
movs r0, 0x8
|
|
b _080A95A0
|
|
_080A957A:
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A959E
|
|
movs r0, 0x40
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_80ADCA0
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080A959E
|
|
movs r0, 0x10
|
|
b _080A95A0
|
|
_080A959E:
|
|
movs r0, 0
|
|
_080A95A0:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9488
|
|
|
|
thumb_func_start sub_80A95AC
|
|
sub_80A95AC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
mov r8, r2
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bge _080A95C6
|
|
ldr r1, _080A96BC
|
|
adds r0, r1
|
|
_080A95C6:
|
|
asrs r0, 11
|
|
mov r9, r0
|
|
str r0, [sp]
|
|
ldr r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
bge _080A95D6
|
|
ldr r2, _080A96BC
|
|
adds r0, r2
|
|
_080A95D6:
|
|
asrs r4, r0, 11
|
|
str r4, [sp, 0x4]
|
|
mov r6, r8
|
|
ldr r3, [r6]
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _080A95E8
|
|
ldr r6, _080A96C0
|
|
adds r0, r3, r6
|
|
_080A95E8:
|
|
asrs r1, r0, 11
|
|
mov r0, r8
|
|
ldr r3, [r0, 0x4]
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0
|
|
bge _080A95F8
|
|
ldr r6, _080A96C0
|
|
adds r0, r3, r6
|
|
_080A95F8:
|
|
asrs r2, r0, 11
|
|
mov r3, r9
|
|
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 r6, 0x8E
|
|
lsls r6, 1
|
|
adds r0, r5, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
beq _080A962C
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A585C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A962C
|
|
b _080A973C
|
|
_080A962C:
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A964A
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A58C8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A973C
|
|
_080A964A:
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A96C8
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
movs r1, 0x44
|
|
adds r2, r7, 0
|
|
mov r3, r8
|
|
bl sub_80A92A0
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
mov r9, r2
|
|
cmp r2, 0
|
|
blt _080A96C8
|
|
ldr r1, _080A96C4
|
|
lsls r0, r2, 5
|
|
subs r0, r2
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
adds r0, r6, r4
|
|
ldr r1, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A973C
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080A96A8
|
|
adds r4, 0x26
|
|
adds r0, r5, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x5
|
|
bl sub_8002984
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
_080A96A8:
|
|
movs r3, 0
|
|
ldrsh r0, [r5, r3]
|
|
mov r1, r9
|
|
bl GroundLives_ExecutePlayerScriptActionLives
|
|
_080A96B2:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A9738
|
|
b _080A973C
|
|
.align 2, 0
|
|
_080A96BC: .4byte 0x000007ff
|
|
_080A96C0: .4byte 0x000007fe
|
|
_080A96C4: .4byte gUnknown_3001B84
|
|
_080A96C8:
|
|
movs r6, 0x8E
|
|
lsls r6, 1
|
|
adds r0, r5, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9708
|
|
movs r0, 0x44
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_80AC4C8
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
blt _080A9708
|
|
add r1, sp, 0x10
|
|
adds r0, r4, 0
|
|
bl sub_80AC3E0
|
|
ldr r0, [sp, 0x10]
|
|
movs r1, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A973C
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
adds r1, r4, 0
|
|
bl sub_80A8A5C
|
|
b _080A96B2
|
|
_080A9708:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A9740
|
|
movs r0, 0x40
|
|
adds r1, r7, 0
|
|
mov r2, r8
|
|
bl sub_80ADCA0
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
blt _080A9740
|
|
movs r3, 0
|
|
ldrsh r0, [r5, r3]
|
|
bl sub_80A8ACC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A973C
|
|
_080A9738:
|
|
movs r0, 0x2
|
|
b _080A9742
|
|
_080A973C:
|
|
movs r0, 0x1
|
|
b _080A9742
|
|
_080A9740:
|
|
movs r0, 0
|
|
_080A9742:
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A95AC
|
|
|
|
thumb_func_start sub_80A9750
|
|
sub_80A9750:
|
|
push {r4,lr}
|
|
mov r12, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r4, r1, 0
|
|
movs r3, 0xFF
|
|
ands r3, r1
|
|
movs r2, 0xF0
|
|
lsls r2, 4
|
|
ands r2, r1
|
|
cmp r3, 0
|
|
beq _080A9770
|
|
movs r0, 0xB0
|
|
lsls r0, 1
|
|
add r0, r12
|
|
strh r3, [r0]
|
|
_080A9770:
|
|
cmp r2, 0
|
|
beq _080A977C
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
add r0, r12
|
|
strh r2, [r0]
|
|
_080A977C:
|
|
movs r2, 0xB0
|
|
lsls r2, 1
|
|
add r2, r12
|
|
ldrh r0, [r2]
|
|
cmp r0, 0x1
|
|
bne _080A97A8
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r1, r0
|
|
beq _080A97B6
|
|
movs r0, 0xB2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
ldr r2, _080A97A4
|
|
cmp r0, 0
|
|
bgt _080A97A0
|
|
b _080A9E98
|
|
_080A97A0:
|
|
b _080A97C0
|
|
.align 2, 0
|
|
_080A97A4: .4byte 0x00000807
|
|
_080A97A8:
|
|
cmp r0, 0x2
|
|
beq _080A97AE
|
|
b _080A9E8C
|
|
_080A97AE:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r4, r0
|
|
bne _080A97C6
|
|
_080A97B6:
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
_080A97C0:
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
b _080A9E98
|
|
_080A97C6:
|
|
movs r0, 0xB2
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bgt _080A97C0
|
|
mov r1, r12
|
|
ldrh r0, [r1, 0x8]
|
|
subs r0, 0xC
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
ldr r0, _080A97F0
|
|
cmp r1, r0
|
|
bls _080A97E4
|
|
b _080A9E7E
|
|
_080A97E4:
|
|
lsls r0, r1, 2
|
|
ldr r1, _080A97F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A97F0: .4byte 0x00000197
|
|
_080A97F4: .4byte _080A97F8
|
|
.align 2, 0
|
|
_080A97F8:
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E68
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E60
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E60
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E7E
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
.4byte _080A9E58
|
|
_080A9E58:
|
|
ldr r2, _080A9E5C
|
|
b _080A9E98
|
|
.align 2, 0
|
|
_080A9E5C: .4byte 0x00000807
|
|
_080A9E60:
|
|
ldr r2, _080A9E64
|
|
b _080A9E98
|
|
.align 2, 0
|
|
_080A9E64: .4byte 0x00000307
|
|
_080A9E68:
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
add r0, r12
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r2, _080A9E84
|
|
cmp r1, r2
|
|
beq _080A9E98
|
|
ldr r0, _080A9E88
|
|
cmp r1, r0
|
|
beq _080A9E98
|
|
_080A9E7E:
|
|
movs r2, 0xC0
|
|
lsls r2, 2
|
|
b _080A9E98
|
|
.align 2, 0
|
|
_080A9E84: .4byte 0x00000807
|
|
_080A9E88: .4byte 0x00000307
|
|
_080A9E8C:
|
|
ldr r1, _080A9EC4
|
|
ldrh r0, [r2]
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
_080A9E98:
|
|
movs r0, 0xE0
|
|
lsls r0, 3
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080A9EEE
|
|
movs r0, 0xAF
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldrh r1, [r0]
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _080A9EEE
|
|
cmp r1, r0
|
|
bgt _080A9EC8
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
cmp r1, r3
|
|
beq _080A9EDA
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
b _080A9ED4
|
|
.align 2, 0
|
|
_080A9EC4: .4byte gUnknown_8117F64
|
|
_080A9EC8:
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
cmp r1, r3
|
|
beq _080A9EDE
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
_080A9ED4:
|
|
cmp r1, r0
|
|
beq _080A9EEC
|
|
b _080A9EEE
|
|
_080A9EDA:
|
|
orrs r2, r0
|
|
b _080A9EEE
|
|
_080A9EDE:
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
adds r0, r1, 0
|
|
orrs r2, r0
|
|
lsls r0, r2, 16
|
|
asrs r2, r0, 16
|
|
b _080A9EEE
|
|
_080A9EEC:
|
|
orrs r2, r3
|
|
_080A9EEE:
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
add r1, r12
|
|
ldrh r3, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, r2
|
|
beq _080A9F02
|
|
strh r2, [r1]
|
|
b _080A9F0C
|
|
_080A9F02:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080A9F16
|
|
_080A9F0C:
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A9F16:
|
|
movs r0, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9750
|
|
|
|
thumb_func_start sub_80A9F20
|
|
sub_80A9F20:
|
|
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 _080A9F5E
|
|
ldr r1, [r5, 0x30]
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, r1
|
|
bge _080A9F5E
|
|
ldr r1, [r5, 0x2C]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, r1
|
|
blt _080A9F5E
|
|
ldr r0, [r5, 0x34]
|
|
cmp r3, r0
|
|
blt _080A9F62
|
|
_080A9F5E:
|
|
movs r0, 0x1
|
|
b _080A9F8C
|
|
_080A9F62:
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
bl sub_80A9488
|
|
cmp r0, 0
|
|
bne _080A9F8C
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0xA6
|
|
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
|
|
_080A9F8C:
|
|
add sp, 0x10
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9F20
|
|
|
|
thumb_func_start sub_80A9F94
|
|
sub_80A9F94:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r1]
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r3, 0xA4
|
|
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, 0xA8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
add r1, sp, 0x8
|
|
str r0, [r1, 0x4]
|
|
movs r6, 0
|
|
ldr r3, [r4, 0x28]
|
|
ldr r0, [sp]
|
|
adds r2, r1, 0
|
|
cmp r0, r3
|
|
bge _080A9FE4
|
|
str r3, [sp]
|
|
ldr r0, [r4, 0xC]
|
|
adds r0, r3, r0
|
|
str r0, [sp, 0x8]
|
|
b _080A9FF4
|
|
_080A9FE4:
|
|
ldr r1, [r4, 0x30]
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, r1
|
|
blt _080A9FF6
|
|
ldr r0, [r4, 0xC]
|
|
subs r0, r1, r0
|
|
str r0, [sp]
|
|
str r1, [sp, 0x8]
|
|
_080A9FF4:
|
|
movs r6, 0x1
|
|
_080A9FF6:
|
|
ldr r1, [r4, 0x2C]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, r1
|
|
bge _080AA008
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r4, 0x10]
|
|
adds r0, r1, r0
|
|
str r0, [r2, 0x4]
|
|
b _080AA018
|
|
_080AA008:
|
|
ldr r1, [r4, 0x34]
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, r1
|
|
blt _080AA01A
|
|
ldr r0, [r4, 0x10]
|
|
subs r0, r1, r0
|
|
str r0, [sp, 0x4]
|
|
str r1, [r2, 0x4]
|
|
_080AA018:
|
|
movs r6, 0x1
|
|
_080AA01A:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80A9488
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
beq _080AA034
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80AAF68
|
|
adds r0, r5, 0
|
|
b _080AA06A
|
|
_080AA034:
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r2, r4, r3
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
adds r2, r4, r0
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0xC]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r6, 0
|
|
bne _080AA060
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_80AAF68
|
|
movs r0, 0
|
|
b _080AA06A
|
|
_080AA060:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80AAF68
|
|
movs r0, 0x1
|
|
_080AA06A:
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A9F94
|
|
|
|
thumb_func_start sub_80AA074
|
|
sub_80AA074:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r1]
|
|
adds r0, r2
|
|
str r0, [sp]
|
|
movs r3, 0xA4
|
|
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, 0xA8
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
add r1, sp, 0x8
|
|
str r0, [r1, 0x4]
|
|
ldr r3, [r4, 0x28]
|
|
ldr r0, [sp]
|
|
adds r5, r1, 0
|
|
cmp r0, r3
|
|
bge _080AA0C2
|
|
str r3, [sp]
|
|
ldr r0, [r4, 0xC]
|
|
adds r0, r3, r0
|
|
str r0, [sp, 0x8]
|
|
b _080AA0D2
|
|
_080AA0C2:
|
|
ldr r1, [r4, 0x30]
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, r1
|
|
blt _080AA0D2
|
|
ldr r0, [r4, 0xC]
|
|
subs r0, r1, r0
|
|
str r0, [sp]
|
|
str r1, [sp, 0x8]
|
|
_080AA0D2:
|
|
ldr r1, [r4, 0x2C]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, r1
|
|
bge _080AA0E4
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r4, 0x10]
|
|
adds r0, r1, r0
|
|
str r0, [r5, 0x4]
|
|
b _080AA0F4
|
|
_080AA0E4:
|
|
ldr r1, [r4, 0x34]
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, r1
|
|
blt _080AA0F4
|
|
ldr r0, [r4, 0x10]
|
|
subs r0, r1, r0
|
|
str r0, [sp, 0x4]
|
|
str r1, [r5, 0x4]
|
|
_080AA0F4:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_80A95AC
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
bne _080AA170
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r2, r4, r3
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
adds r2, r4, r0
|
|
ldr r0, [sp, 0x8]
|
|
ldr r1, [sp, 0xC]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AA170
|
|
movs r0, 0x20
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_80ADCA0
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
blt _080AA166
|
|
movs r2, 0x9F
|
|
lsls r2, 1
|
|
adds r7, r4, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r7, r3]
|
|
cmp r0, r5
|
|
beq _080AA170
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r5, 0
|
|
bl sub_80A8ACC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AA170
|
|
strh r5, [r7]
|
|
movs r6, 0x2
|
|
b _080AA170
|
|
_080AA166:
|
|
movs r2, 0x9F
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
ldr r0, _080AA17C
|
|
strh r0, [r1]
|
|
_080AA170:
|
|
adds r0, r6, 0
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AA17C: .4byte 0x0000ffff
|
|
thumb_func_end sub_80AA074
|
|
|
|
thumb_func_start sub_80AA180
|
|
sub_80AA180:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
movs r0, 0x4
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080AA220
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x80
|
|
bl sub_80A9344
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _080AA220
|
|
mov r1, sp
|
|
bl sub_80A8FD8
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
ldr r1, [r0]
|
|
ldr r0, [r4, 0x14]
|
|
adds r1, r0
|
|
ldr r0, [sp]
|
|
subs r0, r1
|
|
str r0, [sp, 0x8]
|
|
movs r3, 0xA4
|
|
lsls r3, 1
|
|
adds r0, r4, r3
|
|
ldr r0, [r0]
|
|
ldr r1, [r4, 0x18]
|
|
adds r0, r1
|
|
ldr r1, [sp, 0x4]
|
|
subs r1, r0
|
|
add r0, sp, 0x8
|
|
str r1, [r0, 0x4]
|
|
bl sub_8002C60
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080AA2B2
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
adds r2, r4, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
strb r0, [r2]
|
|
ldr r3, _080AA21C
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
beq _080AA20A
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r4, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AA20A:
|
|
movs r1, 0
|
|
ldrsb r1, [r2, r1]
|
|
adds r0, r4, 0
|
|
bl sub_80AA3F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA2AE
|
|
b _080AA2B2
|
|
.align 2, 0
|
|
_080AA21C: .4byte 0x0000015d
|
|
_080AA220:
|
|
movs r0, 0x8
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080AA2B2
|
|
movs r0, 0x80
|
|
adds r1, r6, 0
|
|
adds r2, r7, 0
|
|
bl sub_80AC554
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _080AA2B2
|
|
mov r1, sp
|
|
bl sub_80AC448
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r4, 0x14]
|
|
adds r1, r0
|
|
ldr r0, [sp]
|
|
subs r0, r1
|
|
str r0, [sp, 0x8]
|
|
add r0, sp, 0x8
|
|
movs r2, 0xA4
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
ldr r2, [r1]
|
|
ldr r1, [r4, 0x18]
|
|
adds r2, r1
|
|
ldr r1, [sp, 0x4]
|
|
subs r1, r2
|
|
str r1, [r0, 0x4]
|
|
bl sub_8002C60
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080AA2B2
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r2, r4, r3
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
strb r0, [r2]
|
|
adds r3, 0x1B
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
beq _080AA29E
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r4, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AA29E:
|
|
movs r1, 0
|
|
ldrsb r1, [r2, r1]
|
|
adds r0, r4, 0
|
|
bl sub_80AA3F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AA2B2
|
|
_080AA2AE:
|
|
movs r0, 0x3
|
|
b _080AA2B4
|
|
_080AA2B2:
|
|
movs r0, 0
|
|
_080AA2B4:
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA180
|
|
|
|
thumb_func_start sub_80AA2BC
|
|
sub_80AA2BC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _080AA2E6
|
|
ldr r1, _080AA3C4
|
|
adds r0, r1
|
|
_080AA2E6:
|
|
asrs r0, 11
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bge _080AA2F4
|
|
ldr r2, _080AA3C4
|
|
adds r0, r2
|
|
_080AA2F4:
|
|
asrs r0, 11
|
|
add r1, sp, 0x8
|
|
str r0, [r1, 0x4]
|
|
ldr r4, [sp, 0x10]
|
|
subs r0, r4, 0x1
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
bge _080AA308
|
|
ldr r1, _080AA3C8
|
|
adds r0, r4, r1
|
|
_080AA308:
|
|
asrs r2, r0, 11
|
|
add r0, sp, 0x10
|
|
ldr r4, [r0, 0x4]
|
|
subs r1, r4, 0x1
|
|
mov r9, r0
|
|
cmp r1, 0
|
|
bge _080AA31A
|
|
ldr r0, _080AA3C8
|
|
adds r1, r4, r0
|
|
_080AA31A:
|
|
asrs r3, r1, 11
|
|
ldr r0, [sp, 0x8]
|
|
subs r0, r2, r0
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
mov r1, r10
|
|
ldr r0, [r1, 0x4]
|
|
subs r0, r3, r0
|
|
adds r0, 0x1
|
|
add r1, sp, 0x18
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x4
|
|
mov r2, r8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080AA394
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
movs r1, 0x80
|
|
mov r2, sp
|
|
mov r3, r9
|
|
bl sub_80A92A0
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
blt _080AA394
|
|
ldr r1, _080AA3CC
|
|
lsls r0, r5, 5
|
|
subs r0, r5
|
|
lsls r0, 4
|
|
ldr r1, [r1]
|
|
adds r6, r1, r0
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AA384
|
|
movs r4, 0xA1
|
|
lsls r4, 1
|
|
adds r0, r7, r4
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x5
|
|
bl sub_8002984
|
|
adds r4, r6, r4
|
|
strb r0, [r4]
|
|
_080AA384:
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
adds r1, r5, 0
|
|
bl GroundLives_ExecutePlayerScriptActionLives
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA3BE
|
|
_080AA394:
|
|
movs r0, 0x8
|
|
mov r2, r8
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080AA3D0
|
|
movs r0, 0x80
|
|
mov r1, sp
|
|
mov r2, r9
|
|
bl sub_80AC4C8
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
blt _080AA3D0
|
|
movs r2, 0
|
|
ldrsh r0, [r7, r2]
|
|
bl sub_80A8A5C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AA3D0
|
|
_080AA3BE:
|
|
movs r0, 0x3
|
|
b _080AA3E6
|
|
.align 2, 0
|
|
_080AA3C4: .4byte 0x000007ff
|
|
_080AA3C8: .4byte 0x000007fe
|
|
_080AA3CC: .4byte gUnknown_3001B84
|
|
_080AA3D0:
|
|
movs r0, 0x10
|
|
mov r1, r10
|
|
add r2, sp, 0x18
|
|
bl sub_80A595C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA3E4
|
|
movs r0, 0
|
|
b _080AA3E6
|
|
_080AA3E4:
|
|
movs r0, 0x6
|
|
_080AA3E6:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA2BC
|
|
|
|
thumb_func_start sub_80AA3F8
|
|
sub_80AA3F8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x40
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
str r1, [sp, 0x28]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
mov r0, sp
|
|
bl sub_8002BB8
|
|
ldr r4, [sp]
|
|
ldr r5, [sp, 0x4]
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r0, r6
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
adds r0, r4
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r1, r6
|
|
mov r10, r1
|
|
ldr r0, [r1]
|
|
adds r0, r5
|
|
add r2, sp, 0x8
|
|
str r0, [r2, 0x4]
|
|
movs r1, 0xA6
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldr r0, [r0]
|
|
adds r0, r4
|
|
str r0, [sp, 0x10]
|
|
adds r1, 0x4
|
|
adds r0, r6, r1
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
add r3, sp, 0x10
|
|
str r0, [r3, 0x4]
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
bl sub_80AA2BC
|
|
adds r7, r0, 0
|
|
cmp r7, 0x3
|
|
bne _080AA462
|
|
_080AA45E:
|
|
movs r0, 0x1
|
|
b _080AA650
|
|
_080AA462:
|
|
ldr r0, [r6, 0xC]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r2, 0x80
|
|
lsls r2, 2
|
|
mov r8, r2
|
|
add r0, r8
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _080AA47A
|
|
adds r0, 0xFF
|
|
_080AA47A:
|
|
asrs r0, 8
|
|
str r0, [sp, 0x2C]
|
|
ldr r0, [r6, 0x10]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
add r0, r8
|
|
muls r0, r5
|
|
cmp r0, 0
|
|
bge _080AA490
|
|
adds r0, 0xFF
|
|
_080AA490:
|
|
asrs r0, 8
|
|
str r0, [sp, 0x30]
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
ldr r1, [r6, 0x14]
|
|
adds r0, r1
|
|
ldr r2, [sp, 0x2C]
|
|
adds r0, r2
|
|
ldr r2, _080AA4F4
|
|
adds r0, r2
|
|
str r0, [sp, 0x18]
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
ldr r1, [r6, 0x18]
|
|
adds r0, r1
|
|
ldr r1, [sp, 0x30]
|
|
adds r0, r1
|
|
adds r0, r2
|
|
add r2, sp, 0x18
|
|
str r0, [r2, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 3
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, r1
|
|
str r0, [sp, 0x20]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
add r3, sp, 0x20
|
|
str r0, [r3, 0x4]
|
|
ldr r0, _080AA4F8
|
|
mov r9, r0
|
|
ldr r0, [sp, 0x28]
|
|
lsls r1, r0, 2
|
|
add r9, r1
|
|
mov r0, r9
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x34]
|
|
ldr r0, _080AA4FC
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x38]
|
|
ldr r0, _080AA500
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0x3C]
|
|
mov r10, r8
|
|
mov r9, r2
|
|
mov r8, r3
|
|
b _080AA568
|
|
.align 2, 0
|
|
_080AA4F4: .4byte 0xfffffd00
|
|
_080AA4F8: .4byte gUnknown_8117FF0
|
|
_080AA4FC: .4byte gUnknown_8118010
|
|
_080AA500: .4byte gUnknown_8118030
|
|
_080AA504:
|
|
ldr r1, [r6, 0x28]
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, r1
|
|
bge _080AA50E
|
|
b _080AA64E
|
|
_080AA50E:
|
|
ldr r1, [r6, 0x30]
|
|
ldr r0, [sp, 0x20]
|
|
cmp r0, r1
|
|
blt _080AA518
|
|
b _080AA64E
|
|
_080AA518:
|
|
ldr r1, [r6, 0x2C]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, r1
|
|
bge _080AA524
|
|
b _080AA64E
|
|
_080AA524:
|
|
ldr r1, [r6, 0x34]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, r1
|
|
blt _080AA530
|
|
b _080AA64E
|
|
_080AA530:
|
|
adds r0, r6, 0
|
|
movs r1, 0xC
|
|
mov r2, r9
|
|
mov r3, r8
|
|
bl sub_80AA2BC
|
|
adds r7, r0, 0
|
|
cmp r7, 0x3
|
|
beq _080AA45E
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, r4
|
|
str r0, [sp, 0x18]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [sp, 0x20]
|
|
adds r0, r4
|
|
str r0, [sp, 0x20]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r5
|
|
str r0, [r2, 0x4]
|
|
cmp r7, 0x6
|
|
beq _080AA572
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
add r10, r0
|
|
_080AA568:
|
|
ldr r1, [sp, 0x34]
|
|
cmp r10, r1
|
|
blt _080AA504
|
|
cmp r7, 0x6
|
|
bne _080AA64E
|
|
_080AA572:
|
|
ldr r2, [sp, 0x38]
|
|
cmp r10, r2
|
|
bge _080AA5DC
|
|
_080AA578:
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, [r6, 0x28]
|
|
cmp r1, r0
|
|
blt _080AA64E
|
|
ldr r1, [sp, 0x20]
|
|
ldr r0, [r6, 0x30]
|
|
cmp r1, r0
|
|
bge _080AA64E
|
|
mov r0, r9
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r6, 0x2C]
|
|
cmp r1, r0
|
|
blt _080AA64E
|
|
mov r2, r8
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r6, 0x34]
|
|
cmp r1, r0
|
|
bge _080AA64E
|
|
adds r0, r6, 0
|
|
movs r1, 0x4
|
|
mov r2, r9
|
|
mov r3, r8
|
|
bl sub_80AA2BC
|
|
adds r7, r0, 0
|
|
cmp r7, 0x3
|
|
bne _080AA5B0
|
|
b _080AA45E
|
|
_080AA5B0:
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, r4
|
|
str r0, [sp, 0x18]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [sp, 0x20]
|
|
adds r0, r4
|
|
str r0, [sp, 0x20]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r5
|
|
str r0, [r2, 0x4]
|
|
cmp r7, 0x6
|
|
bne _080AA5E0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
add r10, r0
|
|
ldr r1, [sp, 0x38]
|
|
cmp r10, r1
|
|
blt _080AA578
|
|
_080AA5DC:
|
|
cmp r7, 0x6
|
|
beq _080AA64E
|
|
_080AA5E0:
|
|
movs r2, 0
|
|
mov r10, r2
|
|
ldr r0, [sp, 0x3C]
|
|
cmp r10, r0
|
|
bge _080AA64E
|
|
_080AA5EA:
|
|
ldr r1, [sp, 0x18]
|
|
ldr r0, [r6, 0x28]
|
|
cmp r1, r0
|
|
blt _080AA64E
|
|
ldr r1, [sp, 0x20]
|
|
ldr r0, [r6, 0x30]
|
|
cmp r1, r0
|
|
bge _080AA64E
|
|
mov r2, r9
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r6, 0x2C]
|
|
cmp r1, r0
|
|
blt _080AA64E
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r6, 0x34]
|
|
cmp r1, r0
|
|
bge _080AA64E
|
|
adds r0, r6, 0
|
|
movs r1, 0x4
|
|
mov r2, r9
|
|
mov r3, r8
|
|
bl sub_80AA2BC
|
|
adds r7, r0, 0
|
|
cmp r7, 0x3
|
|
bne _080AA622
|
|
b _080AA45E
|
|
_080AA622:
|
|
cmp r7, 0x6
|
|
beq _080AA64E
|
|
ldr r0, [sp, 0x18]
|
|
adds r0, r4
|
|
str r0, [sp, 0x18]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [sp, 0x20]
|
|
adds r0, r4
|
|
str r0, [sp, 0x20]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r5
|
|
str r0, [r2, 0x4]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
add r10, r0
|
|
ldr r1, [sp, 0x3C]
|
|
cmp r10, r1
|
|
blt _080AA5EA
|
|
_080AA64E:
|
|
movs r0, 0
|
|
_080AA650:
|
|
add sp, 0x40
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA3F8
|
|
|
|
thumb_func_start sub_80AA660
|
|
sub_80AA660:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
bl sub_80AC4C8
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
blt _080AA686
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
bl sub_80A8A5C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AA686
|
|
movs r0, 0x4
|
|
b _080AA688
|
|
_080AA686:
|
|
movs r0, 0
|
|
_080AA688:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA660
|
|
|
|
thumb_func_start sub_80AA690
|
|
sub_80AA690:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
adds r7, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
mov r9, r1
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
mov r0, sp
|
|
bl sub_8002BB8
|
|
ldr r5, [sp]
|
|
ldr r6, [sp, 0x4]
|
|
ldr r0, [r7, 0xC]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
mov r8, r1
|
|
add r0, r8
|
|
muls r0, r5
|
|
cmp r0, 0
|
|
bge _080AA6CA
|
|
adds r0, 0xFF
|
|
_080AA6CA:
|
|
asrs r3, r0, 8
|
|
ldr r0, [r7, 0x10]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
add r0, r8
|
|
muls r0, r6
|
|
cmp r0, 0
|
|
bge _080AA6DE
|
|
adds r0, 0xFF
|
|
_080AA6DE:
|
|
asrs r4, r0, 8
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r7, r2
|
|
ldr r0, [r0]
|
|
ldr r1, [r7, 0x14]
|
|
adds r0, r1
|
|
adds r0, r3
|
|
ldr r2, _080AA76C
|
|
adds r0, r2
|
|
str r0, [sp, 0x8]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r7, r1
|
|
ldr r0, [r0]
|
|
ldr r1, [r7, 0x18]
|
|
adds r0, r1
|
|
adds r0, r4
|
|
adds r0, r2
|
|
add r2, sp, 0x8
|
|
str r0, [r2, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 3
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, r1
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
add r3, sp, 0x10
|
|
str r0, [r3, 0x4]
|
|
ldr r1, _080AA770
|
|
mov r4, r9
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov r10, r0
|
|
mov r9, r8
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
cmp r9, r10
|
|
bge _080AA79C
|
|
_080AA730:
|
|
ldr r1, [r7, 0x28]
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, r1
|
|
blt _080AA79C
|
|
ldr r1, [r7, 0x30]
|
|
ldr r0, [sp, 0x10]
|
|
cmp r0, r1
|
|
bge _080AA79C
|
|
ldr r1, [r7, 0x2C]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, r1
|
|
blt _080AA79C
|
|
ldr r1, [r7, 0x34]
|
|
ldr r0, [r4, 0x4]
|
|
cmp r0, r1
|
|
bge _080AA79C
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
bl sub_80AA660
|
|
cmp r0, 0x4
|
|
beq _080AA774
|
|
cmp r0, 0x4
|
|
bhi _080AA778
|
|
cmp r0, 0
|
|
bne _080AA778
|
|
b _080AA79C
|
|
.align 2, 0
|
|
_080AA76C: .4byte 0xfffffd00
|
|
_080AA770: .4byte gUnknown_8117FF0
|
|
_080AA774:
|
|
movs r0, 0x1
|
|
b _080AA79E
|
|
_080AA778:
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, r5
|
|
str r0, [sp, 0x8]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r6
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [sp, 0x10]
|
|
adds r0, r5
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, r6
|
|
str r0, [r4, 0x4]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r9, r2
|
|
cmp r9, r10
|
|
blt _080AA730
|
|
_080AA79C:
|
|
movs r0, 0
|
|
_080AA79E:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA690
|
|
|
|
thumb_func_start sub_80AA7B0
|
|
sub_80AA7B0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x20
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
mov r12, r2
|
|
ldr r2, [sp, 0x38]
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bge _080AA7DA
|
|
ldr r1, _080AA884
|
|
adds r0, r1
|
|
_080AA7DA:
|
|
asrs r0, 11
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bge _080AA7E8
|
|
ldr r2, _080AA884
|
|
adds r0, r2
|
|
_080AA7E8:
|
|
asrs r0, 11
|
|
add r1, sp, 0x8
|
|
str r0, [r1, 0x4]
|
|
ldr r4, [sp, 0x10]
|
|
subs r0, r4, 0x1
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bge _080AA7FC
|
|
ldr r5, _080AA888
|
|
adds r0, r4, r5
|
|
_080AA7FC:
|
|
asrs r2, r0, 11
|
|
add r4, sp, 0x10
|
|
ldr r1, [r4, 0x4]
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0
|
|
bge _080AA80C
|
|
ldr r5, _080AA888
|
|
adds r0, r1, r5
|
|
_080AA80C:
|
|
asrs r3, r0, 11
|
|
ldr r0, [sp, 0x8]
|
|
subs r0, r2, r0
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x18]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
subs r0, r3, r0
|
|
adds r0, 0x1
|
|
add r1, sp, 0x18
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0x4
|
|
mov r2, r12
|
|
ands r0, r2
|
|
adds r5, r1, 0
|
|
cmp r0, 0
|
|
beq _080AA890
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
movs r1, 0x80
|
|
mov r2, sp
|
|
adds r3, r4, 0
|
|
bl sub_80A92A0
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
blt _080AA890
|
|
adds r0, r4, 0
|
|
bl sub_80A8BBC
|
|
lsls r0, 16
|
|
ldr r2, _080AA88C
|
|
adds r0, r2
|
|
lsrs r0, 16
|
|
cmp r0, 0xF
|
|
bhi _080AA890
|
|
adds r0, r4, 0
|
|
bl sub_80A8E9C
|
|
cmp r0, 0
|
|
beq _080AA890
|
|
strh r4, [r6]
|
|
movs r5, 0xA1
|
|
lsls r5, 1
|
|
adds r0, r7, r5
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
movs r1, 0x5
|
|
bl sub_8002984
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_80A9090
|
|
movs r0, 0x5
|
|
b _080AA8AE
|
|
.align 2, 0
|
|
_080AA884: .4byte 0x000007ff
|
|
_080AA888: .4byte 0x000007fe
|
|
_080AA88C: .4byte 0xfff20000
|
|
_080AA890:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
strh r0, [r6]
|
|
movs r0, 0x10
|
|
mov r1, r8
|
|
adds r2, r5, 0
|
|
bl sub_80A595C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AA8AC
|
|
movs r0, 0
|
|
b _080AA8AE
|
|
_080AA8AC:
|
|
movs r0, 0x6
|
|
_080AA8AE:
|
|
add sp, 0x20
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AA7B0
|
|
|
|
thumb_func_start sub_80AA8BC
|
|
sub_80AA8BC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x30
|
|
adds r6, r0, 0
|
|
str r1, [sp, 0x1C]
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
mov r8, r2
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x4
|
|
mov r1, r8
|
|
bl sub_8002BB8
|
|
ldr r4, [sp, 0x4]
|
|
ldr r5, [sp, 0x8]
|
|
ldr r0, [r6, 0xC]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
mov r9, r1
|
|
add r0, r9
|
|
muls r0, r4
|
|
cmp r0, 0
|
|
bge _080AA8FA
|
|
adds r0, 0xFF
|
|
_080AA8FA:
|
|
asrs r0, 8
|
|
str r0, [sp, 0x20]
|
|
ldr r0, [r6, 0x10]
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
add r0, r9
|
|
muls r0, r5
|
|
cmp r0, 0
|
|
bge _080AA910
|
|
adds r0, 0xFF
|
|
_080AA910:
|
|
asrs r0, 8
|
|
str r0, [sp, 0x24]
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r6, r2
|
|
ldr r0, [r0]
|
|
ldr r1, [r6, 0x14]
|
|
adds r0, r1
|
|
ldr r7, [sp, 0x20]
|
|
adds r0, r7
|
|
ldr r2, _080AA9F0
|
|
adds r0, r2
|
|
str r0, [sp, 0xC]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r6, r1
|
|
ldr r0, [r0]
|
|
ldr r1, [r6, 0x18]
|
|
adds r0, r1
|
|
ldr r7, [sp, 0x24]
|
|
adds r0, r7
|
|
adds r0, r2
|
|
add r2, sp, 0xC
|
|
str r0, [r2, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 3
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, r1
|
|
str r0, [sp, 0x14]
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
add r3, sp, 0x14
|
|
str r0, [r3, 0x4]
|
|
ldr r0, _080AA9F4
|
|
mov r7, r8
|
|
lsls r1, r7, 2
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
mov r10, r0
|
|
ldr r0, _080AA9F8
|
|
adds r0, r1, r0
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x28]
|
|
ldr r0, _080AA9FC
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
str r1, [sp, 0x2C]
|
|
movs r1, 0
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
adds r0, r7, 0
|
|
ldr r7, [sp, 0x1C]
|
|
strh r0, [r7]
|
|
mov r8, r2
|
|
adds r7, r3, 0
|
|
cmp r9, r10
|
|
bge _080AA9E8
|
|
_080AA982:
|
|
ldr r1, [r6, 0x28]
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, r1
|
|
bge _080AA98C
|
|
b _080AAAD4
|
|
_080AA98C:
|
|
ldr r1, [r6, 0x30]
|
|
ldr r0, [sp, 0x14]
|
|
cmp r0, r1
|
|
blt _080AA996
|
|
b _080AAAD4
|
|
_080AA996:
|
|
ldr r1, [r6, 0x2C]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, r1
|
|
bge _080AA9A2
|
|
b _080AAAD4
|
|
_080AA9A2:
|
|
ldr r1, [r6, 0x34]
|
|
ldr r0, [r7, 0x4]
|
|
cmp r0, r1
|
|
blt _080AA9AC
|
|
b _080AAAD4
|
|
_080AA9AC:
|
|
str r7, [sp]
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x1C]
|
|
movs r2, 0xC
|
|
mov r3, r8
|
|
bl sub_80AA7B0
|
|
adds r1, r0, 0
|
|
cmp r1, 0x5
|
|
beq _080AAA66
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, r4
|
|
str r0, [sp, 0xC]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r5
|
|
str r0, [r2, 0x4]
|
|
ldr r0, [sp, 0x14]
|
|
adds r0, r4
|
|
str r0, [sp, 0x14]
|
|
ldr r0, [r7, 0x4]
|
|
adds r0, r5
|
|
str r0, [r7, 0x4]
|
|
cmp r1, 0x6
|
|
beq _080AAA5A
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
add r9, r0
|
|
cmp r9, r10
|
|
blt _080AA982
|
|
_080AA9E8:
|
|
cmp r1, 0x6
|
|
bne _080AAAD4
|
|
b _080AAA5A
|
|
.align 2, 0
|
|
_080AA9F0: .4byte 0xfffffd00
|
|
_080AA9F4: .4byte gUnknown_8117FF0
|
|
_080AA9F8: .4byte gUnknown_8118010
|
|
_080AA9FC: .4byte gUnknown_8118030
|
|
_080AAA00:
|
|
ldr r1, [sp, 0xC]
|
|
ldr r0, [r6, 0x28]
|
|
cmp r1, r0
|
|
blt _080AAAD4
|
|
ldr r1, [sp, 0x14]
|
|
ldr r0, [r6, 0x30]
|
|
cmp r1, r0
|
|
bge _080AAAD4
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r6, 0x2C]
|
|
cmp r1, r0
|
|
blt _080AAAD4
|
|
ldr r1, [r7, 0x4]
|
|
ldr r0, [r6, 0x34]
|
|
cmp r1, r0
|
|
bge _080AAAD4
|
|
str r7, [sp]
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x1C]
|
|
movs r2, 0x4
|
|
mov r3, r8
|
|
bl sub_80AA7B0
|
|
adds r1, r0, 0
|
|
cmp r1, 0x5
|
|
beq _080AAA66
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, r4
|
|
str r0, [sp, 0xC]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r5
|
|
str r0, [r2, 0x4]
|
|
ldr r0, [sp, 0x14]
|
|
adds r0, r4
|
|
str r0, [sp, 0x14]
|
|
ldr r0, [r7, 0x4]
|
|
adds r0, r5
|
|
str r0, [r7, 0x4]
|
|
cmp r1, 0x6
|
|
bne _080AAA6A
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
add r9, r0
|
|
_080AAA5A:
|
|
ldr r2, [sp, 0x28]
|
|
cmp r9, r2
|
|
blt _080AAA00
|
|
cmp r1, 0x6
|
|
bne _080AAA6A
|
|
b _080AAAD4
|
|
_080AAA66:
|
|
movs r0, 0x1
|
|
b _080AAAD6
|
|
_080AAA6A:
|
|
movs r0, 0
|
|
mov r9, r0
|
|
ldr r1, [sp, 0x2C]
|
|
cmp r9, r1
|
|
bge _080AAAD4
|
|
_080AAA74:
|
|
ldr r1, [sp, 0xC]
|
|
ldr r0, [r6, 0x28]
|
|
cmp r1, r0
|
|
blt _080AAAD4
|
|
ldr r1, [sp, 0x14]
|
|
ldr r0, [r6, 0x30]
|
|
cmp r1, r0
|
|
bge _080AAAD4
|
|
mov r2, r8
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r6, 0x2C]
|
|
cmp r1, r0
|
|
blt _080AAAD4
|
|
ldr r1, [r7, 0x4]
|
|
ldr r0, [r6, 0x34]
|
|
cmp r1, r0
|
|
bge _080AAAD4
|
|
str r7, [sp]
|
|
adds r0, r6, 0
|
|
ldr r1, [sp, 0x1C]
|
|
movs r2, 0x4
|
|
mov r3, r8
|
|
bl sub_80AA7B0
|
|
adds r1, r0, 0
|
|
cmp r1, 0x5
|
|
beq _080AAA66
|
|
cmp r1, 0x6
|
|
beq _080AAAD4
|
|
ldr r0, [sp, 0xC]
|
|
adds r0, r4
|
|
str r0, [sp, 0xC]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, r5
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [sp, 0x14]
|
|
adds r0, r4
|
|
str r0, [sp, 0x14]
|
|
ldr r0, [r7, 0x4]
|
|
adds r0, r5
|
|
str r0, [r7, 0x4]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r9, r2
|
|
ldr r0, [sp, 0x2C]
|
|
cmp r9, r0
|
|
blt _080AAA74
|
|
_080AAAD4:
|
|
movs r0, 0
|
|
_080AAAD6:
|
|
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_80AA8BC
|
|
|
|
thumb_func_start sub_80AAAE8
|
|
sub_80AAAE8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x80
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
lsls r2, 24
|
|
asrs r4, r2, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x78]
|
|
movs r2, 0xAF
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
movs r6, 0xB0
|
|
lsls r6, 1
|
|
adds r1, r5, r6
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r0, [sp, 0x78]
|
|
cmp r4, r0
|
|
beq _080AAB26
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
strb r4, [r0]
|
|
_080AAB26:
|
|
subs r0, r3, 0x1
|
|
cmp r0, 0x13
|
|
bls _080AAB2E
|
|
b _080AAEB8
|
|
_080AAB2E:
|
|
lsls r0, 2
|
|
ldr r1, _080AAB38
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AAB38: .4byte _080AAB3C
|
|
.align 2, 0
|
|
_080AAB3C:
|
|
.4byte _080AAB8C
|
|
.4byte _080AAD60
|
|
.4byte _080AAC9C
|
|
.4byte _080AAC9C
|
|
.4byte _080AAC9C
|
|
.4byte _080AAB9E
|
|
.4byte _080AAB9E
|
|
.4byte _080AAB9E
|
|
.4byte _080AAD7C
|
|
.4byte _080AADF4
|
|
.4byte _080AAE06
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAEB8
|
|
.4byte _080AAE32
|
|
.4byte _080AAE9C
|
|
_080AAB8C:
|
|
movs r4, 0xB2
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r6, 0xC0
|
|
lsls r6, 2
|
|
str r6, [sp, 0x78]
|
|
b _080AAD6E
|
|
_080AAB9E:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _080AAC88
|
|
movs r6, 0
|
|
movs r0, 0xB2
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
cmp r3, 0x7
|
|
beq _080AABD2
|
|
cmp r3, 0x7
|
|
bhi _080AABC0
|
|
cmp r3, 0x6
|
|
beq _080AABC6
|
|
b _080AABEA
|
|
_080AABC0:
|
|
cmp r3, 0x8
|
|
beq _080AABDE
|
|
b _080AABEA
|
|
_080AABC6:
|
|
movs r1, 0x90
|
|
lsls r1, 4
|
|
str r1, [sp, 0x78]
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x7C]
|
|
b _080AABFC
|
|
_080AABD2:
|
|
movs r3, 0x80
|
|
lsls r3, 4
|
|
str r3, [sp, 0x78]
|
|
movs r0, 0x2
|
|
str r0, [sp, 0x7C]
|
|
b _080AABFC
|
|
_080AABDE:
|
|
movs r1, 0xA0
|
|
lsls r1, 4
|
|
str r1, [sp, 0x78]
|
|
movs r2, 0x4
|
|
str r2, [sp, 0x7C]
|
|
b _080AABFC
|
|
_080AABEA:
|
|
movs r3, 0xB2
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _080AAC20
|
|
str r0, [sp, 0x78]
|
|
movs r1, 0
|
|
str r1, [sp, 0x7C]
|
|
_080AABFC:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x28
|
|
adds r1, r4, 0
|
|
bl sub_8002BB8
|
|
ldr r0, [sp, 0x28]
|
|
ldr r1, [sp, 0x2C]
|
|
str r0, [sp, 0x38]
|
|
str r1, [sp, 0x3C]
|
|
movs r2, 0
|
|
mov r10, r2
|
|
add r3, sp, 0x40
|
|
mov r9, r3
|
|
add r4, sp, 0x30
|
|
mov r8, r4
|
|
b _080AAC42
|
|
.align 2, 0
|
|
_080AAC20: .4byte 0x00000807
|
|
_080AAC24:
|
|
cmp r6, 0x1
|
|
bne _080AAC3E
|
|
ldr r0, [sp, 0x38]
|
|
str r0, [sp, 0x30]
|
|
mov r6, r8
|
|
str r7, [r6, 0x4]
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_80AA074
|
|
adds r6, r0, 0
|
|
cmp r6, 0x2
|
|
beq _080AAC78
|
|
_080AAC3E:
|
|
movs r0, 0x1
|
|
add r10, r0
|
|
_080AAC42:
|
|
ldr r1, [sp, 0x7C]
|
|
cmp r10, r1
|
|
bge _080AAC74
|
|
add r4, sp, 0x38
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80AA074
|
|
adds r6, r0, 0
|
|
cmp r6, 0x2
|
|
beq _080AAC78
|
|
cmp r6, 0x1
|
|
bne _080AAC3E
|
|
movs r7, 0
|
|
str r7, [sp, 0x40]
|
|
ldr r0, [r4, 0x4]
|
|
mov r2, r9
|
|
str r0, [r2, 0x4]
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_80AA074
|
|
adds r6, r0, 0
|
|
cmp r6, 0x2
|
|
bne _080AAC24
|
|
_080AAC74:
|
|
cmp r6, 0x2
|
|
bne _080AAC7E
|
|
_080AAC78:
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
b _080AAD6C
|
|
_080AAC7E:
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_80AAF68
|
|
b _080AAEC0
|
|
_080AAC88:
|
|
movs r4, 0xB2
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r6, _080AAC98
|
|
str r6, [sp, 0x78]
|
|
b _080AAD6E
|
|
.align 2, 0
|
|
_080AAC98: .4byte 0x00000807
|
|
_080AAC9C:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _080AAD60
|
|
movs r0, 0xB2
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
cmp r3, 0x4
|
|
beq _080AACCE
|
|
cmp r3, 0x4
|
|
bhi _080AACBC
|
|
cmp r3, 0x3
|
|
beq _080AACC2
|
|
b _080AACE6
|
|
_080AACBC:
|
|
cmp r3, 0x5
|
|
beq _080AACDA
|
|
b _080AACE6
|
|
_080AACC2:
|
|
movs r1, 0x90
|
|
lsls r1, 4
|
|
str r1, [sp, 0x78]
|
|
movs r2, 0x1
|
|
mov r9, r2
|
|
b _080AACF6
|
|
_080AACCE:
|
|
movs r3, 0x80
|
|
lsls r3, 4
|
|
str r3, [sp, 0x78]
|
|
movs r6, 0x2
|
|
mov r9, r6
|
|
b _080AACF6
|
|
_080AACDA:
|
|
movs r0, 0xA0
|
|
lsls r0, 4
|
|
str r0, [sp, 0x78]
|
|
movs r1, 0x4
|
|
mov r9, r1
|
|
b _080AACF6
|
|
_080AACE6:
|
|
movs r2, 0xB2
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r3, _080AAD5C
|
|
str r3, [sp, 0x78]
|
|
mov r9, r0
|
|
_080AACF6:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x48
|
|
adds r1, r4, 0
|
|
bl sub_8002BB8
|
|
ldr r0, [sp, 0x48]
|
|
ldr r1, [sp, 0x4C]
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
movs r6, 0
|
|
cmp r6, r9
|
|
bge _080AAD52
|
|
add r4, sp, 0x50
|
|
mov r8, r4
|
|
add r7, sp, 0x58
|
|
_080AAD16:
|
|
adds r0, r5, 0
|
|
mov r1, r8
|
|
bl sub_80A9F94
|
|
cmp r0, 0
|
|
beq _080AAD4C
|
|
movs r4, 0
|
|
str r4, [sp, 0x58]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r7, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_80A9F94
|
|
cmp r0, 0
|
|
beq _080AAD4C
|
|
ldr r0, [sp, 0x50]
|
|
str r0, [sp, 0x60]
|
|
add r1, sp, 0x60
|
|
str r4, [r1, 0x4]
|
|
adds r0, r5, 0
|
|
bl sub_80A9F94
|
|
cmp r0, 0
|
|
beq _080AAD4C
|
|
mov r9, r4
|
|
_080AAD4C:
|
|
adds r6, 0x1
|
|
cmp r6, r9
|
|
blt _080AAD16
|
|
_080AAD52:
|
|
adds r0, r5, 0
|
|
mov r1, r9
|
|
bl sub_80AAF68
|
|
b _080AAEC0
|
|
.align 2, 0
|
|
_080AAD5C: .4byte 0x00000807
|
|
_080AAD60:
|
|
movs r2, 0xB2
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r3, _080AAD78
|
|
_080AAD6C:
|
|
str r3, [sp, 0x78]
|
|
_080AAD6E:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80AAF68
|
|
b _080AAEC0
|
|
.align 2, 0
|
|
_080AAD78: .4byte 0x00000807
|
|
_080AAD7C:
|
|
movs r6, 0x8E
|
|
lsls r6, 1
|
|
adds r0, r5, r6
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AAD9C
|
|
ldr r0, _080AAD98
|
|
ldr r0, [r0]
|
|
adds r0, 0x28
|
|
strb r4, [r0]
|
|
b _080AADA6
|
|
.align 2, 0
|
|
_080AAD98: .4byte gUnknown_3001B80
|
|
_080AAD9C:
|
|
ldr r0, _080AADF0
|
|
ldr r0, [r0]
|
|
adds r0, 0x28
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
_080AADA6:
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
str r2, [sp, 0x78]
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
movs r0, 0x4
|
|
strb r0, [r1]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
cmp r4, r6
|
|
bne _080AADCA
|
|
b _080AAEC0
|
|
_080AADCA:
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x68
|
|
adds r1, r4, 0
|
|
bl sub_8002BB8
|
|
ldr r0, [sp, 0x68]
|
|
ldr r1, [sp, 0x6C]
|
|
str r0, [sp, 0x70]
|
|
str r1, [sp, 0x74]
|
|
add r1, sp, 0x70
|
|
adds r0, r5, 0
|
|
bl sub_80AA074
|
|
cmp r0, 0x2
|
|
bne _080AAEC0
|
|
str r6, [sp, 0x78]
|
|
b _080AAEC0
|
|
.align 2, 0
|
|
_080AADF0: .4byte gUnknown_3001B80
|
|
_080AADF4:
|
|
movs r4, 0xA1
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
adds r0, r5, 0
|
|
bl sub_80AA3F8
|
|
b _080AAEC0
|
|
_080AAE06:
|
|
movs r6, 0xA1
|
|
lsls r6, 1
|
|
adds r0, r5, r6
|
|
movs r1, 0
|
|
ldrsb r1, [r0, r1]
|
|
adds r0, r5, 0
|
|
bl sub_80AA690
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080AAEC0
|
|
movs r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x9
|
|
bl sub_809D710
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl _ExecutePlayerScript
|
|
b _080AAEC0
|
|
_080AAE32:
|
|
add r6, sp, 0xC
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80AA8BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAE84
|
|
add r4, sp, 0x10
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x6
|
|
bl sub_809D710
|
|
movs r2, 0
|
|
ldrsh r0, [r6, r2]
|
|
adds r1, r5, 0
|
|
adds r1, 0x40
|
|
adds r2, r4, 0
|
|
bl GroundLives_ExecuteScript
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl _ExecutePlayerScript
|
|
movs r3, 0
|
|
ldrsh r0, [r6, r3]
|
|
bl sub_80A8E9C
|
|
adds r2, r0, 0
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
bl sub_809B1C0
|
|
b _080AAE8E
|
|
_080AAE84:
|
|
movs r0, 0x7
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809B1C0
|
|
_080AAE8E:
|
|
movs r4, 0x90
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
movs r1, 0x5
|
|
bl sub_809CD8C
|
|
b _080AAEC0
|
|
_080AAE9C:
|
|
add r4, sp, 0x1C
|
|
ldr r2, _080AAEB4
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_809D710
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl _ExecutePlayerScript
|
|
b _080AAEC0
|
|
.align 2, 0
|
|
_080AAEB4: .4byte 0x00000195
|
|
_080AAEB8:
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_80AAF68
|
|
_080AAEC0:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
ldr r6, [sp, 0x78]
|
|
cmp r6, r0
|
|
beq _080AAF04
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
cmp r6, r0
|
|
beq _080AAF04
|
|
movs r3, 0xAE
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r4, 0xB8
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
strh r6, [r2]
|
|
movs r1, 0xA1
|
|
lsls r1, 1
|
|
adds r3, r5, r1
|
|
ldrb r1, [r3]
|
|
subs r4, 0x13
|
|
adds r2, r5, r4
|
|
strb r1, [r2]
|
|
movs r2, 0
|
|
ldrsb r2, [r3, r2]
|
|
ldr r1, [sp, 0x78]
|
|
bl sub_80A6EFC
|
|
b _080AAF54
|
|
_080AAF04:
|
|
movs r6, 0xAE
|
|
lsls r6, 1
|
|
adds r2, r5, r6
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
bne _080AAF2A
|
|
ldr r0, _080AAF64
|
|
adds r1, r5, r0
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
beq _080AAF54
|
|
_080AAF2A:
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
movs r4, 0xB8
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
movs r6, 0xB4
|
|
lsls r6, 1
|
|
adds r1, r5, r6
|
|
movs r2, 0
|
|
ldrsh r1, [r1, r2]
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
adds r4, r5, r3
|
|
ldrb r2, [r4]
|
|
subs r6, 0xB
|
|
adds r3, r5, r6
|
|
strb r2, [r3]
|
|
movs r2, 0
|
|
ldrsb r2, [r4, r2]
|
|
bl sub_80A6EFC
|
|
_080AAF54:
|
|
add sp, 0x80
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AAF64: .4byte 0x0000015d
|
|
thumb_func_end sub_80AAAE8
|
|
|
|
thumb_func_start sub_80AAF68
|
|
sub_80AAF68:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r1, 0x8E
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 7
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AB002
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x1
|
|
bl sub_80A93F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080AAFD0
|
|
movs r1, 0xE4
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0
|
|
bne _080AAFA6
|
|
movs r0, 0xB5
|
|
lsls r0, 1
|
|
adds r1, r4, r0
|
|
adds r0, 0x4C
|
|
b _080AAFB4
|
|
_080AAFA6:
|
|
movs r0, 0xDB
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _080AAFC2
|
|
subs r0, 0x4C
|
|
adds r1, r4, r0
|
|
adds r0, 0x56
|
|
_080AAFB4:
|
|
strh r0, [r1]
|
|
movs r2, 0xB6
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
_080AAFC2:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
bl sub_80A8750
|
|
b _080AB002
|
|
_080AAFD0:
|
|
movs r2, 0xE4
|
|
lsls r2, 1
|
|
adds r0, r4, r2
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0xDB
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080AAFF6
|
|
subs r0, 0x4C
|
|
adds r1, r4, r0
|
|
adds r0, 0x56
|
|
strh r0, [r1]
|
|
movs r2, 0xB6
|
|
lsls r2, 1
|
|
adds r1, r4, r2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
_080AAFF6:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x80
|
|
lsls r1, 17
|
|
bl sub_80A86C8
|
|
_080AB002:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AAF68
|
|
|
|
thumb_func_start sub_80AB008
|
|
sub_80AB008:
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end sub_80AB008
|
|
|
|
thumb_func_start sub_80AB010
|
|
sub_80AB010:
|
|
ldr r2, [r0, 0xC]
|
|
ldr r3, [r0, 0x10]
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_80AB010
|
|
|
|
thumb_func_start sub_80AB01C
|
|
sub_80AB01C:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _080AB05C
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r1, [r4]
|
|
ldr r0, [r3, 0x14]
|
|
subs r0, r1, r0
|
|
str r0, [r2]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x14]
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r1, [r4, 0x4]
|
|
ldr r0, [r3, 0x18]
|
|
subs r0, r1, r0
|
|
str r0, [r2]
|
|
movs r0, 0xA8
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x18]
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
b _080AB0C2
|
|
_080AB05C:
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x20]
|
|
ldr r1, [r3, 0x14]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA6
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x20]
|
|
ldr r1, [r3, 0x14]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x24]
|
|
ldr r1, [r3, 0x18]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0xA8
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, [r3, 0x24]
|
|
ldr r1, [r3, 0x18]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r1, r3, r2
|
|
adds r2, 0x4
|
|
adds r0, r3, r2
|
|
str r4, [r0]
|
|
str r4, [r1]
|
|
movs r0, 0xA1
|
|
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 _080AB0BE
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AB0BE:
|
|
ldrb r0, [r3, 0x1C]
|
|
strb r0, [r2]
|
|
_080AB0C2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB01C
|
|
|
|
thumb_func_start sub_80AB0C8
|
|
sub_80AB0C8:
|
|
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_80AB0C8
|
|
|
|
thumb_func_start sub_80AB0E0
|
|
sub_80AB0E0:
|
|
adds r3, r0, 0
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r3, r2
|
|
ldr r0, [r0]
|
|
ldr r2, [r3, 0x14]
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
movs r2, 0xA4
|
|
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_80AB0E0
|
|
|
|
thumb_func_start sub_80AB100
|
|
sub_80AB100:
|
|
push {lr}
|
|
bl sub_80A9F20
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AB100
|
|
|
|
thumb_func_start sub_80AB10C
|
|
sub_80AB10C:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r4, 0xAA
|
|
lsls r4, 1
|
|
adds r0, r3, r4
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r1, 0xAC
|
|
lsls r1, 1
|
|
adds r0, r3, r1
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB10C
|
|
|
|
thumb_func_start sub_80AB12C
|
|
sub_80AB12C:
|
|
movs r2, 0xAA
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80AB12C
|
|
|
|
thumb_func_start sub_80AB138
|
|
sub_80AB138:
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
bx lr
|
|
thumb_func_end sub_80AB138
|
|
|
|
thumb_func_start sub_80AB144
|
|
sub_80AB144:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080AB17C
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
strb r0, [r2]
|
|
ldr r2, _080AB180
|
|
adds r1, r3, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
beq _080AB17C
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AB17C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB180: .4byte 0x0000015d
|
|
thumb_func_end sub_80AB144
|
|
|
|
thumb_func_start sub_80AB184
|
|
sub_80AB184:
|
|
push {lr}
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
bl sub_80A9750
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB184
|
|
|
|
thumb_func_start sub_80AB194
|
|
sub_80AB194:
|
|
push {lr}
|
|
mov r12, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r3, r1, 0
|
|
cmp r1, 0
|
|
bne _080AB1A8
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
adds r3, r0, 0
|
|
_080AB1A8:
|
|
movs r0, 0xB5
|
|
lsls r0, 1
|
|
add r0, r12
|
|
strh r3, [r0]
|
|
movs r0, 0xB6
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r2, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB194
|
|
|
|
thumb_func_start nullsub_211
|
|
nullsub_211:
|
|
bx lr
|
|
thumb_func_end nullsub_211
|
|
|
|
thumb_func_start sub_80AB1C0
|
|
sub_80AB1C0:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0xAE
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080AB1DE
|
|
adds r2, 0x14
|
|
adds r0, r1, r2
|
|
bl sub_80A66F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080AB1E0
|
|
_080AB1DE:
|
|
movs r0, 0x1
|
|
_080AB1E0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AB1C0
|
|
|
|
thumb_func_start sub_80AB1E4
|
|
sub_80AB1E4:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0xB5
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bne _080AB206
|
|
movs r2, 0xB8
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
bl sub_80A671C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080AB208
|
|
_080AB206:
|
|
movs r0, 0x1
|
|
_080AB208:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AB1E4
|
|
|
|
thumb_func_start sub_80AB20C
|
|
sub_80AB20C:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
thumb_func_end sub_80AB20C
|
|
|
|
thumb_func_start sub_80AB218
|
|
sub_80AB218:
|
|
push {lr}
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80A86C8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB218
|
|
|
|
thumb_func_start sub_80AB228
|
|
sub_80AB228:
|
|
push {lr}
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80A8750
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB228
|
|
|
|
thumb_func_start sub_80AB238
|
|
sub_80AB238:
|
|
push {lr}
|
|
movs r2, 0xB8
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
bl sub_80A6EC8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AB238
|
|
|
|
thumb_func_start sub_80AB248
|
|
sub_80AB248:
|
|
push {lr}
|
|
bl sub_80A9F94
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AB248
|
|
|
|
thumb_func_start GroundLives_Action
|
|
GroundLives_Action:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x3C
|
|
ldr r0, _080AB29C
|
|
ldr r5, [r0]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
_080AB266:
|
|
movs r2, 0x2
|
|
ldrsh r1, [r5, r2]
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
mov r8, r3
|
|
adds r0, r3, 0
|
|
cmp r1, r0
|
|
bne _080AB278
|
|
b _080AB47C
|
|
_080AB278:
|
|
adds r4, r5, 0
|
|
adds r4, 0x38
|
|
ldr r1, _080AB2A0
|
|
adds r0, r4, 0
|
|
bl HandleAction
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
cmp r3, 0
|
|
beq _080AB2A4
|
|
cmp r3, 0x4
|
|
beq _080AB292
|
|
b _080AB44C
|
|
_080AB292:
|
|
mov r0, r9
|
|
bl GroundLives_Delete
|
|
b _080AB47C
|
|
.align 2, 0
|
|
_080AB29C: .4byte gUnknown_3001B84
|
|
_080AB2A0: .4byte gUnknown_8118280
|
|
_080AB2A4:
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
ldr r1, [r2]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080AB2B8
|
|
b _080AB42E
|
|
_080AB2B8:
|
|
str r3, [sp, 0xC]
|
|
add r0, sp, 0x8
|
|
mov r1, r8
|
|
strb r1, [r0]
|
|
str r3, [sp, 0x10]
|
|
movs r3, 0x90
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
add r1, sp, 0xC
|
|
add r3, sp, 0x10
|
|
add r4, sp, 0x14
|
|
str r4, [sp]
|
|
ldr r2, [r2]
|
|
str r2, [sp, 0x4]
|
|
add r2, sp, 0x8
|
|
bl sub_809CDC8
|
|
subs r0, 0x1
|
|
mov r8, r4
|
|
cmp r0, 0x7
|
|
bls _080AB2E4
|
|
b _080AB44C
|
|
_080AB2E4:
|
|
lsls r0, 2
|
|
ldr r1, _080AB2F0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080AB2F0: .4byte _080AB2F4
|
|
.align 2, 0
|
|
_080AB2F4:
|
|
.4byte _080AB314
|
|
.4byte _080AB314
|
|
.4byte _080AB326
|
|
.4byte _080AB44C
|
|
.4byte _080AB314
|
|
.4byte _080AB44C
|
|
.4byte _080AB44C
|
|
.4byte _080AB314
|
|
_080AB314:
|
|
ldr r1, [sp, 0xC]
|
|
add r0, sp, 0x8
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
ldr r3, [sp, 0x10]
|
|
adds r0, r5, 0
|
|
bl sub_80AAAE8
|
|
b _080AB44C
|
|
_080AB326:
|
|
add r4, sp, 0x1C
|
|
adds r0, r4, 0
|
|
bl sub_809D248
|
|
ldr r1, [sp, 0x1C]
|
|
ldr r0, [sp, 0x14]
|
|
adds r6, r1, r0
|
|
ldr r1, [r4, 0x4]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r7, r1, r0
|
|
movs r3, 0xA2
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r1, [r0]
|
|
ldr r0, [r5, 0x14]
|
|
adds r0, r1, r0
|
|
cmp r0, 0
|
|
bge _080AB34E
|
|
adds r0, 0xFF
|
|
_080AB34E:
|
|
asrs r0, 8
|
|
subs r0, r6, r0
|
|
str r0, [sp, 0x24]
|
|
movs r1, 0xA4
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r5, 0x18]
|
|
adds r0, r1, r0
|
|
cmp r0, 0
|
|
bge _080AB366
|
|
adds r0, 0xFF
|
|
_080AB366:
|
|
asrs r0, 8
|
|
subs r0, r7, r0
|
|
add r1, sp, 0x24
|
|
str r0, [r1, 0x4]
|
|
adds r0, r6, 0
|
|
subs r0, 0x10
|
|
lsls r0, 8
|
|
str r0, [sp, 0x2C]
|
|
adds r0, r6, 0
|
|
adds r0, 0x10
|
|
lsls r0, 8
|
|
str r0, [sp, 0x34]
|
|
subs r0, r7, 0x4
|
|
lsls r0, 8
|
|
add r2, sp, 0x2C
|
|
str r0, [r2, 0x4]
|
|
adds r0, r7, 0
|
|
adds r0, 0x1C
|
|
lsls r0, 8
|
|
add r3, sp, 0x34
|
|
str r0, [r3, 0x4]
|
|
ldr r0, [sp, 0xC]
|
|
adds r4, r1, 0
|
|
cmp r0, 0xC
|
|
bne _080AB3C4
|
|
adds r0, r5, 0
|
|
movs r1, 0xC
|
|
bl sub_80AA180
|
|
cmp r0, 0
|
|
bne _080AB44C
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x10
|
|
cmp r0, 0x20
|
|
bhi _080AB44C
|
|
movs r0, 0x1C
|
|
negs r0, r0
|
|
ldr r1, [r4, 0x4]
|
|
cmp r1, r0
|
|
blt _080AB44C
|
|
cmp r1, 0x4
|
|
bgt _080AB44C
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r5, 0
|
|
movs r1, 0x13
|
|
b _080AB426
|
|
_080AB3C4:
|
|
ldr r0, [sp, 0x24]
|
|
adds r0, 0x10
|
|
cmp r0, 0x20
|
|
bhi _080AB3DA
|
|
movs r0, 0x1C
|
|
negs r0, r0
|
|
ldr r1, [r4, 0x4]
|
|
cmp r1, r0
|
|
blt _080AB3DA
|
|
cmp r1, 0x4
|
|
ble _080AB44C
|
|
_080AB3DA:
|
|
adds r0, r4, 0
|
|
bl sub_8002C60
|
|
add r1, sp, 0x8
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
cmp r0, r1
|
|
beq _080AB44C
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0x11
|
|
beq _080AB410
|
|
cmp r0, 0x11
|
|
bhi _080AB3FE
|
|
cmp r0, 0x10
|
|
beq _080AB404
|
|
b _080AB44C
|
|
_080AB3FE:
|
|
cmp r0, 0x12
|
|
beq _080AB41C
|
|
b _080AB44C
|
|
_080AB404:
|
|
add r0, sp, 0x8
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x6
|
|
b _080AB426
|
|
_080AB410:
|
|
add r0, sp, 0x8
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x7
|
|
b _080AB426
|
|
_080AB41C:
|
|
add r0, sp, 0x8
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
adds r0, r5, 0
|
|
movs r1, 0x8
|
|
_080AB426:
|
|
movs r3, 0
|
|
bl sub_80AAAE8
|
|
b _080AB44C
|
|
_080AB42E:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080AB440
|
|
adds r0, r5, 0
|
|
bl sub_80AB5D4
|
|
b _080AB44C
|
|
_080AB440:
|
|
ldr r3, _080AB4C4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
bl sub_809D8C0
|
|
_080AB44C:
|
|
movs r2, 0xAE
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080AB47C
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r3, 0xB8
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
adds r2, 0xC
|
|
adds r1, r5, r2
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
subs r2, 0x26
|
|
adds r4, r5, r2
|
|
ldrb r2, [r4]
|
|
ldr r3, _080AB4C8
|
|
strb r2, [r3, r5]
|
|
movs r2, 0
|
|
ldrsb r2, [r4, r2]
|
|
bl sub_80A6EFC
|
|
_080AB47C:
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
adds r5, r0
|
|
mov r1, r9
|
|
cmp r1, 0x17
|
|
bgt _080AB494
|
|
b _080AB266
|
|
_080AB494:
|
|
ldr r0, _080AB4CC
|
|
ldr r6, [r0]
|
|
ldr r0, _080AB4D0
|
|
ldr r5, [r0]
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
str r0, [r6, 0x4]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r5, r2]
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
beq _080AB4BE
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r1, [r0]
|
|
movs r3, 0x80
|
|
lsls r3, 6
|
|
ands r3, r1
|
|
cmp r3, 0
|
|
beq _080AB4D4
|
|
_080AB4BE:
|
|
bl sub_80AB5A4
|
|
b _080AB594
|
|
.align 2, 0
|
|
_080AB4C4: .4byte gUnknown_811828C
|
|
_080AB4C8: .4byte 0x0000015d
|
|
_080AB4CC: .4byte gUnknown_3001B80
|
|
_080AB4D0: .4byte gUnknown_3001B84
|
|
_080AB4D4:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _080AB590
|
|
ldr r7, [r6, 0x24]
|
|
cmp r7, 0
|
|
bge _080AB51E
|
|
adds r2, r6, 0
|
|
adds r2, 0x2C
|
|
str r3, [r6, 0x24]
|
|
str r3, [r6, 0x2C]
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, 0x14]
|
|
adds r0, r1
|
|
str r0, [r2, 0x4]
|
|
movs r3, 0xA4
|
|
lsls r3, 1
|
|
adds r0, r5, r3
|
|
ldr r0, [r0]
|
|
ldr r1, [r5, 0x18]
|
|
adds r0, r1
|
|
str r0, [r2, 0x8]
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
movs r1, 0x2
|
|
_080AB50E:
|
|
str r2, [r0, 0x8]
|
|
str r2, [r0]
|
|
str r2, [r0, 0x4]
|
|
subs r1, 0x1
|
|
adds r0, 0xC
|
|
cmp r1, 0
|
|
bge _080AB50E
|
|
b _080AB594
|
|
_080AB51E:
|
|
adds r2, r7, 0x1
|
|
adds r0, r2, 0
|
|
cmp r2, 0
|
|
bge _080AB52A
|
|
adds r0, r7, 0
|
|
adds r0, 0x40
|
|
_080AB52A:
|
|
asrs r1, r0, 6
|
|
lsls r0, r1, 6
|
|
subs r1, r2, r0
|
|
str r1, [r6, 0x24]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
adds r0, r6
|
|
mov r8, r0
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
ldr r2, [r0]
|
|
ldr r0, [r5, 0x14]
|
|
adds r2, r0
|
|
mov r3, r8
|
|
str r2, [r3, 0x4]
|
|
adds r1, 0x4
|
|
adds r0, r5, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r5, 0x18]
|
|
adds r1, r0
|
|
str r1, [r3, 0x8]
|
|
lsls r0, r7, 1
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
adds r0, r6, r0
|
|
ldr r3, [r0, 0x4]
|
|
ldr r0, [r0, 0x8]
|
|
subs r0, r1, r0
|
|
subs r2, r3
|
|
cmp r2, 0
|
|
bge _080AB572
|
|
negs r2, r2
|
|
_080AB572:
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
bge _080AB57A
|
|
negs r0, r0
|
|
_080AB57A:
|
|
cmp r0, r4
|
|
bge _080AB580
|
|
adds r0, r2, 0
|
|
_080AB580:
|
|
mov r2, r8
|
|
str r0, [r2]
|
|
cmp r0, 0
|
|
bgt _080AB58C
|
|
str r7, [r6, 0x24]
|
|
b _080AB594
|
|
_080AB58C:
|
|
str r0, [r6]
|
|
b _080AB594
|
|
_080AB590:
|
|
bl sub_80AB5A4
|
|
_080AB594:
|
|
add sp, 0x3C
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end GroundLives_Action
|
|
|
|
thumb_func_start sub_80AB5A4
|
|
sub_80AB5A4:
|
|
push {lr}
|
|
ldr r3, _080AB5D0
|
|
ldr r0, [r3]
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
str r2, [r0, 0x24]
|
|
adds r0, 0x28
|
|
movs r1, 0xFF
|
|
strb r1, [r0]
|
|
ldr r3, [r3]
|
|
movs r1, 0
|
|
movs r0, 0x2
|
|
_080AB5BC:
|
|
str r2, [r3, 0x8]
|
|
str r1, [r3]
|
|
str r1, [r3, 0x4]
|
|
subs r0, 0x1
|
|
adds r3, 0xC
|
|
cmp r0, 0
|
|
bge _080AB5BC
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB5D0: .4byte gUnknown_3001B80
|
|
thumb_func_end sub_80AB5A4
|
|
|
|
thumb_func_start sub_80AB5D4
|
|
sub_80AB5D4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
mov r9, r0
|
|
ldr r4, _080AB6BC
|
|
movs r2, 0x9E
|
|
lsls r2, 1
|
|
add r2, r9
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r3, [r4]
|
|
adds r0, r3
|
|
mov r8, r0
|
|
adds r0, r1, 0
|
|
adds r5, r4, 0
|
|
cmp r0, 0
|
|
bne _080AB604
|
|
b _080AB9E6
|
|
_080AB604:
|
|
movs r1, 0xAF
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
strh r0, [r1]
|
|
movs r1, 0xB0
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0x1
|
|
strh r0, [r1]
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldr r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080AB6D4
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
add r2, r9
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
cmp r0, 0x4
|
|
bne _080AB64C
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
add r0, r9
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
cmp r1, r0
|
|
beq _080AB670
|
|
_080AB64C:
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0x80
|
|
lsls r0, 4
|
|
strh r0, [r1]
|
|
movs r0, 0x4
|
|
strb r0, [r2]
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AB670:
|
|
ldr r0, [r5]
|
|
adds r2, r0, 0
|
|
adds r2, 0x28
|
|
movs r1, 0
|
|
ldrsb r1, [r2, r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080AB69C
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
mov r0, sp
|
|
bl sub_8002BB8
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [sp, 0x8]
|
|
str r1, [sp, 0xC]
|
|
add r1, sp, 0x8
|
|
mov r0, r9
|
|
bl sub_80A9F94
|
|
_080AB69C:
|
|
mov r4, r8
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
blt _080AB6A6
|
|
b _080AB9E6
|
|
_080AB6A6:
|
|
ldr r0, [r5]
|
|
ldr r0, [r0, 0x24]
|
|
cmp r0, 0
|
|
bge _080AB6B0
|
|
b _080AB9E6
|
|
_080AB6B0:
|
|
str r0, [r4, 0x8]
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
str r0, [r4, 0x4]
|
|
b _080AB9E6
|
|
.align 2, 0
|
|
_080AB6BC: .4byte gUnknown_3001B80
|
|
_080AB6C0:
|
|
ldr r5, [sp, 0x28]
|
|
ldr r0, [r5, 0x4]
|
|
adds r0, r7, r0
|
|
str r0, [r5, 0x4]
|
|
b _080AB7E2
|
|
_080AB6CA:
|
|
ldr r1, [sp, 0x28]
|
|
ldr r0, [r1, 0x4]
|
|
subs r0, r7
|
|
str r0, [r1, 0x4]
|
|
b _080AB7E2
|
|
_080AB6D4:
|
|
movs r0, 0xA2
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldr r1, [r0]
|
|
mov r5, r9
|
|
ldr r0, [r5, 0x14]
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0x20]
|
|
movs r0, 0xA4
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r5, 0x18]
|
|
adds r0, r1, r0
|
|
str r0, [sp, 0x24]
|
|
ldr r0, [sp, 0x20]
|
|
ldr r1, [sp, 0x24]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
bge _080AB710
|
|
ldr r0, [r3, 0x24]
|
|
cmp r0, 0
|
|
bge _080AB70A
|
|
b _080AB9E6
|
|
_080AB70A:
|
|
str r0, [r1, 0x8]
|
|
str r2, [r1]
|
|
str r2, [r1, 0x4]
|
|
_080AB710:
|
|
mov r2, r8
|
|
ldr r7, [r2]
|
|
movs r3, 0x1
|
|
mov r10, r3
|
|
mov r5, sp
|
|
adds r5, 0x10
|
|
str r5, [sp, 0x28]
|
|
_080AB71E:
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x8]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
ldr r2, _080AB754
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
ldr r6, [r1, 0x4]
|
|
ldr r5, [sp, 0x10]
|
|
subs r4, r6, r5
|
|
adds r2, r4, 0
|
|
ldr r1, [r1, 0x8]
|
|
ldr r0, [sp, 0x14]
|
|
subs r3, r1, r0
|
|
cmp r4, 0
|
|
ble _080AB75E
|
|
cmp r2, r7
|
|
ble _080AB758
|
|
adds r0, r7, r5
|
|
str r0, [sp, 0x10]
|
|
movs r4, 0
|
|
mov r10, r4
|
|
b _080AB75A
|
|
.align 2, 0
|
|
_080AB754: .4byte gUnknown_3001B80
|
|
_080AB758:
|
|
str r6, [sp, 0x10]
|
|
_080AB75A:
|
|
adds r1, r2, 0
|
|
b _080AB778
|
|
_080AB75E:
|
|
cmp r4, 0
|
|
bge _080AB776
|
|
cmn r2, r7
|
|
bge _080AB770
|
|
subs r0, r5, r7
|
|
str r0, [sp, 0x10]
|
|
movs r5, 0
|
|
mov r10, r5
|
|
b _080AB772
|
|
_080AB770:
|
|
str r6, [sp, 0x10]
|
|
_080AB772:
|
|
negs r1, r2
|
|
b _080AB778
|
|
_080AB776:
|
|
movs r1, 0
|
|
_080AB778:
|
|
cmp r3, 0
|
|
ble _080AB78E
|
|
cmp r3, r7
|
|
bgt _080AB6C0
|
|
mov r4, r12
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [sp, 0x14]
|
|
cmp r3, r1
|
|
ble _080AB7A2
|
|
adds r1, r3, 0
|
|
b _080AB7A2
|
|
_080AB78E:
|
|
cmp r3, 0
|
|
bge _080AB7A2
|
|
cmn r3, r7
|
|
blt _080AB6CA
|
|
mov r5, r12
|
|
ldr r0, [r5, 0x8]
|
|
str r0, [sp, 0x14]
|
|
cmn r3, r1
|
|
bge _080AB7A2
|
|
negs r1, r3
|
|
_080AB7A2:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _080AB7E2
|
|
subs r7, r1
|
|
cmp r7, 0
|
|
ble _080AB7E2
|
|
ldr r1, _080AB7D4
|
|
ldr r0, [r1]
|
|
mov r3, r8
|
|
ldr r2, [r3, 0x8]
|
|
ldr r0, [r0, 0x24]
|
|
cmp r2, r0
|
|
beq _080AB7D8
|
|
adds r1, r2, 0x1
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080AB7C8
|
|
adds r0, r2, 0
|
|
adds r0, 0x40
|
|
_080AB7C8:
|
|
asrs r0, 6
|
|
lsls r0, 6
|
|
subs r0, r1, r0
|
|
mov r4, r8
|
|
str r0, [r4, 0x8]
|
|
b _080AB7DC
|
|
.align 2, 0
|
|
_080AB7D4: .4byte gUnknown_3001B80
|
|
_080AB7D8:
|
|
movs r5, 0
|
|
mov r10, r5
|
|
_080AB7DC:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
bne _080AB71E
|
|
_080AB7E2:
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x8]
|
|
bl sub_80ABA00
|
|
adds r6, r0, 0
|
|
ldr r0, _080AB860
|
|
ldr r7, [r0]
|
|
movs r2, 0x9E
|
|
lsls r2, 1
|
|
add r2, r9
|
|
mov r10, r2
|
|
movs r3, 0
|
|
ldrsh r2, [r2, r3]
|
|
subs r1, r2, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r1, r7, 0x4
|
|
adds r1, r0
|
|
ldr r0, _080AB864
|
|
lsls r2, 2
|
|
adds r2, r0
|
|
ldr r1, [r1]
|
|
ldr r0, [r2]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
mov r4, r8
|
|
ldr r1, [r4, 0x8]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
adds r0, r7, r0
|
|
ldr r3, [r0, 0x4]
|
|
ldr r2, [sp, 0x10]
|
|
ldr r1, [r0, 0x8]
|
|
ldr r5, [sp, 0x28]
|
|
ldr r0, [r5, 0x4]
|
|
subs r1, r0
|
|
subs r3, r2
|
|
cmp r3, 0
|
|
bge _080AB838
|
|
negs r3, r3
|
|
_080AB838:
|
|
adds r4, r3, 0
|
|
cmp r1, 0
|
|
bge _080AB840
|
|
negs r1, r1
|
|
_080AB840:
|
|
cmp r1, r4
|
|
bge _080AB846
|
|
adds r1, r3, 0
|
|
_080AB846:
|
|
adds r6, r1
|
|
mov r0, r8
|
|
str r6, [r0, 0x4]
|
|
cmp r6, r12
|
|
bgt _080AB86C
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
ble _080AB8B2
|
|
ldr r1, _080AB868
|
|
adds r0, r1
|
|
mov r2, r8
|
|
b _080AB8B0
|
|
.align 2, 0
|
|
_080AB860: .4byte gUnknown_3001B80
|
|
_080AB864: .4byte gUnknown_8118050
|
|
_080AB868: .4byte 0xffffff00
|
|
_080AB86C:
|
|
mov r3, r10
|
|
movs r4, 0
|
|
ldrsh r1, [r3, r4]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 11
|
|
cmp r6, r0
|
|
bgt _080AB88E
|
|
mov r5, r8
|
|
ldr r0, [r5]
|
|
cmp r0, 0xFF
|
|
bgt _080AB8B2
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
b _080AB8B2
|
|
_080AB88E:
|
|
subs r1, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r7, r0
|
|
ldr r0, [r0]
|
|
cmp r0, 0xFF
|
|
bgt _080AB8A2
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
_080AB8A2:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
cmp r1, r0
|
|
bge _080AB8B2
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
adds r0, r1, r3
|
|
_080AB8B0:
|
|
str r0, [r2]
|
|
_080AB8B2:
|
|
ldr r0, _080AB96C
|
|
ldr r3, [r0]
|
|
mov r4, r8
|
|
ldr r0, [r4, 0x8]
|
|
subs r0, 0x40
|
|
ldr r2, [r3, 0x24]
|
|
subs r1, r2, r0
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080AB8C8
|
|
adds r0, 0x3F
|
|
_080AB8C8:
|
|
asrs r0, 6
|
|
lsls r0, 6
|
|
subs r0, r1, r0
|
|
cmp r0, 0x3B
|
|
ble _080AB8FC
|
|
adds r1, r2, 0x5
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080AB8DE
|
|
adds r0, r2, 0
|
|
adds r0, 0x44
|
|
_080AB8DE:
|
|
asrs r0, 6
|
|
lsls r0, 6
|
|
subs r0, r1, r0
|
|
mov r5, r8
|
|
str r0, [r5, 0x8]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r0, r3, 0
|
|
adds r0, 0x30
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x10]
|
|
str r1, [sp, 0x14]
|
|
_080AB8FC:
|
|
mov r0, r9
|
|
ldr r1, [sp, 0x28]
|
|
bl sub_80A9F20
|
|
adds r6, r0, 0
|
|
cmp r6, 0
|
|
bne _080AB9E6
|
|
ldr r0, [sp, 0x10]
|
|
ldr r1, [sp, 0x20]
|
|
subs r0, r1
|
|
str r0, [sp, 0x18]
|
|
ldr r2, [sp, 0x28]
|
|
ldr r1, [r2, 0x4]
|
|
ldr r3, [sp, 0x24]
|
|
subs r1, r3
|
|
add r0, sp, 0x18
|
|
str r1, [r0, 0x4]
|
|
movs r5, 0xA1
|
|
lsls r5, 1
|
|
add r5, r9
|
|
movs r4, 0
|
|
ldrsb r4, [r5, r4]
|
|
bl sub_8002C60
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
adds r0, r4, 0
|
|
bl sub_8002B04
|
|
strb r0, [r5]
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
ble _080AB970
|
|
movs r1, 0xB2
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
ldr r1, [r4]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
cmp r1, r0
|
|
ble _080AB95E
|
|
movs r2, 0xA0
|
|
lsls r2, 4
|
|
_080AB95E:
|
|
adds r4, r2, 0
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_80AAF68
|
|
b _080AB982
|
|
.align 2, 0
|
|
_080AB96C: .4byte gUnknown_3001B80
|
|
_080AB970:
|
|
ldr r4, _080AB9F8
|
|
movs r0, 0xB2
|
|
lsls r0, 1
|
|
add r0, r9
|
|
str r6, [r0]
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_80AAF68
|
|
_080AB982:
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080AB9B6
|
|
movs r0, 0xB4
|
|
lsls r0, 1
|
|
add r0, r9
|
|
movs r5, 0
|
|
ldrsh r0, [r0, r5]
|
|
cmp r4, r0
|
|
bne _080AB9B6
|
|
ldr r1, _080AB9FC
|
|
add r1, r9
|
|
movs r0, 0xA1
|
|
lsls r0, 1
|
|
add r0, r9
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
cmp r1, r0
|
|
beq _080AB9E6
|
|
_080AB9B6:
|
|
movs r1, 0xAE
|
|
lsls r1, 1
|
|
add r1, r9
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0xB8
|
|
lsls r0, 1
|
|
add r0, r9
|
|
movs r1, 0xB4
|
|
lsls r1, 1
|
|
add r1, r9
|
|
strh r4, [r1]
|
|
movs r3, 0xA1
|
|
lsls r3, 1
|
|
add r3, r9
|
|
ldrb r1, [r3]
|
|
ldr r2, _080AB9FC
|
|
add r2, r9
|
|
strb r1, [r2]
|
|
movs r2, 0
|
|
ldrsb r2, [r3, r2]
|
|
adds r1, r4, 0
|
|
bl sub_80A6EFC
|
|
_080AB9E6:
|
|
add sp, 0x2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AB9F8: .4byte 0x00000807
|
|
_080AB9FC: .4byte 0x0000015d
|
|
thumb_func_end sub_80AB5D4
|
|
|
|
thumb_func_start sub_80ABA00
|
|
sub_80ABA00:
|
|
push {r4,r5,lr}
|
|
adds r1, r0, 0
|
|
movs r4, 0
|
|
ldr r0, _080ABA34
|
|
ldr r2, [r0]
|
|
ldr r3, [r2, 0x24]
|
|
adds r5, r0, 0
|
|
cmp r3, r1
|
|
ble _080ABA38
|
|
adds r1, 0x1
|
|
cmp r1, r3
|
|
bge _080ABA72
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
adds r2, r0, r2
|
|
subs r1, r3, r1
|
|
_080ABA24:
|
|
ldr r0, [r2]
|
|
adds r4, r0
|
|
adds r2, 0xC
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080ABA24
|
|
b _080ABA72
|
|
.align 2, 0
|
|
_080ABA34: .4byte gUnknown_3001B80
|
|
_080ABA38:
|
|
cmp r3, r1
|
|
bge _080ABA72
|
|
adds r1, 0x1
|
|
cmp r1, 0x3F
|
|
bgt _080ABA58
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, 0x2C
|
|
adds r2, r0, r2
|
|
_080ABA4C:
|
|
ldr r0, [r2]
|
|
adds r4, r0
|
|
adds r2, 0xC
|
|
adds r1, 0x1
|
|
cmp r1, 0x3F
|
|
ble _080ABA4C
|
|
_080ABA58:
|
|
ldr r1, [r5]
|
|
ldr r0, [r1, 0x24]
|
|
cmp r0, 0
|
|
ble _080ABA72
|
|
adds r2, r1, 0
|
|
adds r2, 0x2C
|
|
adds r1, r0, 0
|
|
_080ABA66:
|
|
ldr r0, [r2]
|
|
adds r4, r0
|
|
adds r2, 0xC
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080ABA66
|
|
_080ABA72:
|
|
adds r0, r4, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80ABA00
|
|
|
|
thumb_func_start sub_80ABA7C
|
|
sub_80ABA7C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
ldr r0, _080ABB50
|
|
ldr r5, [r0]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r4, r5, r1
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
mov r9, r2
|
|
_080ABA9A:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, r9
|
|
beq _080ABB2C
|
|
ldr r0, [r4]
|
|
ldr r1, [r5, 0x14]
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r5, 0x18]
|
|
adds r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [r4, 0x10]
|
|
ldr r0, [r4, 0x14]
|
|
adds r7, r1, r0
|
|
ldr r0, [r4, 0x20]
|
|
cmp r0, 0
|
|
ble _080ABADA
|
|
subs r0, 0x1
|
|
str r0, [r4, 0x20]
|
|
cmp r0, 0
|
|
bgt _080ABADA
|
|
ldrh r0, [r4, 0x1C]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _080ABADA
|
|
ldrh r1, [r4, 0x1C]
|
|
adds r0, r5, 0
|
|
bl sub_80A9750
|
|
_080ABADA:
|
|
movs r2, 0xB8
|
|
lsls r2, 1
|
|
adds r6, r5, r2
|
|
adds r0, r6, 0
|
|
bl sub_80A66D4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080ABAFE
|
|
movs r0, 0
|
|
strb r0, [r4, 0x18]
|
|
movs r0, 0x24
|
|
ldrsh r1, [r4, r0]
|
|
movs r2, 0x19
|
|
ldrsb r2, [r4, r2]
|
|
adds r0, r6, 0
|
|
bl sub_80A6EFC
|
|
_080ABAFE:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080ABB1E
|
|
adds r1, r0, 0
|
|
movs r2, 0xA1
|
|
lsls r2, 1
|
|
adds r0, r5, r2
|
|
movs r2, 0
|
|
ldrsb r2, [r0, r2]
|
|
ldr r3, [r4, 0x28]
|
|
adds r0, r6, 0
|
|
bl sub_80A74F0
|
|
movs r0, 0
|
|
strh r0, [r4, 0x26]
|
|
_080ABB1E:
|
|
movs r0, 0x8
|
|
ldrsh r1, [r5, r0]
|
|
adds r0, r6, 0
|
|
mov r2, sp
|
|
adds r3, r7, 0
|
|
bl sub_80A7524
|
|
_080ABB2C:
|
|
mov r0, r8
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
movs r1, 0xF8
|
|
lsls r1, 1
|
|
adds r4, r1
|
|
adds r5, r1
|
|
cmp r0, 0x17
|
|
ble _080ABA9A
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ABB50: .4byte gUnknown_3001B84
|
|
thumb_func_end sub_80ABA7C
|
|
|
|
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
|
|
|
|
thumb_func_start sub_80ACB90
|
|
sub_80ACB90:
|
|
push {r4,r5,lr}
|
|
ldr r4, _080ACBCC
|
|
movs r0, 0xE2
|
|
lsls r0, 5
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
adds r1, r0, 0
|
|
ldr r0, _080ACBD0
|
|
adds r5, r0, 0
|
|
movs r4, 0xE2
|
|
lsls r4, 1
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r3, r2, 0
|
|
_080ACBB0:
|
|
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 _080ACBB0
|
|
bl sub_80ACBD4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACBCC: .4byte gUnknown_3001B8C
|
|
_080ACBD0: .4byte 0x0000ffff
|
|
thumb_func_end sub_80ACB90
|
|
|
|
thumb_func_start sub_80ACBD4
|
|
sub_80ACBD4:
|
|
push {r4-r6,lr}
|
|
ldr r0, _080ACC0C
|
|
ldr r4, [r0]
|
|
movs r1, 0
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
movs r5, 0x80
|
|
lsls r5, 9
|
|
_080ACBE4:
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r6
|
|
beq _080ACBF2
|
|
adds r0, r1, 0
|
|
bl GroundEffect_Delete
|
|
_080ACBF2:
|
|
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 _080ACBE4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACC0C: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80ACBD4
|
|
|
|
thumb_func_start sub_80ACC10
|
|
sub_80ACC10:
|
|
push {r4,lr}
|
|
bl sub_80ACBD4
|
|
ldr r4, _080ACC28
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACC28: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80ACC10
|
|
|
|
thumb_func_start GroundEffect_Select
|
|
GroundEffect_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, _080ACC90
|
|
adds r0, r4, 0
|
|
bl sub_80A77D0
|
|
adds r5, r0, 0
|
|
ldr r1, _080ACC94
|
|
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, 0x14]
|
|
ldr r0, [r0, 0x10]
|
|
cmp r0, 0
|
|
ble _080ACC86
|
|
adds r4, r0, 0
|
|
_080ACC70:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
adds r3, r6, 0
|
|
bl GroundEffect_Add
|
|
subs r4, 0x1
|
|
adds r5, 0xC
|
|
cmp r4, 0
|
|
bne _080ACC70
|
|
_080ACC86:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACC90: .4byte gUnknown_8118610
|
|
_080ACC94: .4byte gUnknown_811861C
|
|
thumb_func_end GroundEffect_Select
|
|
|
|
thumb_func_start GroundEffect_Cancel
|
|
GroundEffect_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, _080ACD00
|
|
movs r0, 0
|
|
adds r2, r7, 0
|
|
bl Log
|
|
movs r1, 0
|
|
ldr r0, _080ACD04
|
|
ldr r4, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080ACCC0:
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r8
|
|
beq _080ACCE2
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r7
|
|
bne _080ACCE2
|
|
cmp r5, 0
|
|
blt _080ACCDC
|
|
movs r0, 0xA
|
|
ldrsb r0, [r4, r0]
|
|
cmp r0, r5
|
|
bne _080ACCE2
|
|
_080ACCDC:
|
|
adds r0, r1, 0
|
|
bl GroundEffect_Delete
|
|
_080ACCE2:
|
|
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 _080ACCC0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACD00: .4byte gUnknown_8118640
|
|
_080ACD04: .4byte gUnknown_3001B8C
|
|
thumb_func_end GroundEffect_Cancel
|
|
|
|
thumb_func_start GroundEffect_CancelBlank
|
|
GroundEffect_CancelBlank:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
ldr r1, _080ACD7C
|
|
movs r0, 0
|
|
bl Log
|
|
movs r6, 0
|
|
ldr r0, _080ACD80
|
|
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
|
|
_080ACD2C:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r8
|
|
beq _080ACD5C
|
|
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 _080ACD5C
|
|
adds r0, r6, 0
|
|
bl GroundEffect_Delete
|
|
_080ACD5C:
|
|
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 _080ACD2C
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080ACD7C: .4byte gUnknown_8118658
|
|
_080ACD80: .4byte gUnknown_3001B8C
|
|
thumb_func_end GroundEffect_CancelBlank
|
|
|
|
thumb_func_start sub_80ACD84
|
|
sub_80ACD84:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r3, 0
|
|
ldr r0, _080ACDA8
|
|
ldr r1, [r0]
|
|
movs r6, 0xE2
|
|
lsls r6, 1
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r5, r2, 0
|
|
_080ACD9A:
|
|
movs r7, 0x6
|
|
ldrsh r0, [r1, r7]
|
|
cmp r0, r4
|
|
bne _080ACDAC
|
|
adds r0, r3, 0
|
|
b _080ACDBC
|
|
.align 2, 0
|
|
_080ACDA8: .4byte gUnknown_3001B8C
|
|
_080ACDAC:
|
|
adds r0, r2, 0
|
|
adds r2, r5
|
|
asrs r3, r0, 16
|
|
adds r1, r6
|
|
cmp r3, 0xF
|
|
ble _080ACD9A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080ACDBC:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80ACD84
|
|
|
|
thumb_func_start GroundEffect_Add
|
|
GroundEffect_Add:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r7, r1, 0
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r10, r2
|
|
lsls r3, 24
|
|
asrs r3, 24
|
|
mov r9, r3
|
|
ldrb r0, [r7]
|
|
lsls r0, 2
|
|
ldr r1, _080ACE08
|
|
adds r0, r1
|
|
mov r8, r0
|
|
ldr r3, _080ACE0C
|
|
cmp r6, 0
|
|
bge _080ACE38
|
|
movs r2, 0
|
|
ldr r5, [r3]
|
|
movs r0, 0x6
|
|
ldrsh r1, [r5, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080ACE10
|
|
movs r6, 0
|
|
b _080ACE38
|
|
.align 2, 0
|
|
_080ACE08: .4byte gFunctionScriptData
|
|
_080ACE0C: .4byte gUnknown_3001B8C
|
|
_080ACE10:
|
|
adds r0, r2, 0x1
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r1, 0xE2
|
|
lsls r1, 1
|
|
adds r5, r1
|
|
cmp r2, 0xF
|
|
bgt _080ACE2E
|
|
movs r4, 0x6
|
|
ldrsh r1, [r5, r4]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080ACE10
|
|
adds r6, r2, 0
|
|
_080ACE2E:
|
|
cmp r6, 0
|
|
bge _080ACE38
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080AD062
|
|
_080ACE38:
|
|
lsls r0, r6, 3
|
|
subs r0, r6
|
|
lsls r0, 4
|
|
adds r0, r6
|
|
lsls r0, 2
|
|
ldr r1, [r3]
|
|
adds r5, r1, r0
|
|
ldr r1, _080ACE9C
|
|
ldrb r3, [r7]
|
|
mov r2, r8
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
str r0, [sp]
|
|
mov r0, r10
|
|
str r0, [sp, 0x4]
|
|
mov r2, r9
|
|
str r2, [sp, 0x8]
|
|
movs r0, 0
|
|
adds r2, r6, 0
|
|
bl Log
|
|
movs r2, 0
|
|
movs r3, 0x6
|
|
ldrsh r1, [r5, r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080ACE72
|
|
movs r2, 0x1
|
|
_080ACE72:
|
|
str r2, [sp, 0xC]
|
|
strh r6, [r5, 0x4]
|
|
ldrb r0, [r7]
|
|
strh r0, [r5, 0x6]
|
|
mov r4, r10
|
|
strh r4, [r5, 0x8]
|
|
mov r0, r9
|
|
strb r0, [r5, 0xA]
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _080ACEEC
|
|
lsls r0, 2
|
|
ldr r1, _080ACEA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080ACE9C: .4byte gUnknown_8118674
|
|
_080ACEA0: .4byte _080ACEA4
|
|
.align 2, 0
|
|
_080ACEA4:
|
|
.4byte _080ACEB8
|
|
.4byte _080ACEEC
|
|
.4byte _080ACEC4
|
|
.4byte _080ACED0
|
|
.4byte _080ACEDC
|
|
_080ACEB8:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
movs r0, 0x81
|
|
lsls r0, 22
|
|
b _080ACEF4
|
|
_080ACEC4:
|
|
movs r4, 0x8E
|
|
lsls r4, 1
|
|
adds r1, r5, r4
|
|
movs r0, 0x83
|
|
lsls r0, 18
|
|
b _080ACEF4
|
|
_080ACED0:
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
adds r1, r5, r0
|
|
movs r0, 0x88
|
|
lsls r0, 22
|
|
b _080ACEF4
|
|
_080ACEDC:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
ldr r0, _080ACEE8
|
|
b _080ACEF4
|
|
.align 2, 0
|
|
_080ACEE8: .4byte 0x22020000
|
|
_080ACEEC:
|
|
movs r3, 0x8E
|
|
lsls r3, 1
|
|
adds r1, r5, r3
|
|
ldr r0, _080ACF08
|
|
_080ACEF4:
|
|
str r0, [r1]
|
|
mov r4, r8
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0
|
|
bne _080ACF0C
|
|
ldrb r0, [r7, 0x2]
|
|
lsls r0, 11
|
|
str r0, [r5, 0xC]
|
|
ldrb r0, [r7, 0x3]
|
|
b _080ACF16
|
|
.align 2, 0
|
|
_080ACF08: .4byte 0x220c0000
|
|
_080ACF0C:
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x2]
|
|
lsls r0, 11
|
|
str r0, [r5, 0xC]
|
|
ldrb r0, [r1, 0x3]
|
|
_080ACF16:
|
|
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]
|
|
ldrb r0, [r7, 0x1]
|
|
strb r0, [r5, 0x1C]
|
|
adds r2, r7, 0x4
|
|
adds r4, r5, 0
|
|
adds r4, 0x20
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080ACF5A
|
|
ldrb r0, [r7, 0x4]
|
|
lsls r3, r0, 11
|
|
str r3, [r5, 0x20]
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080ACF5A
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r5, 0x20]
|
|
_080ACF5A:
|
|
ldrb r1, [r2, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080ACF7C
|
|
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 _080ACF7C
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r3, r2
|
|
str r0, [r4, 0x4]
|
|
_080ACF7C:
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0
|
|
beq _080ACFD2
|
|
ldrb r1, [r5, 0x1C]
|
|
movs r4, 0x90
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
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]
|
|
adds r4, 0x8
|
|
adds r2, r5, r4
|
|
ldr r0, [r5, 0x24]
|
|
ldr r1, [r5, 0x18]
|
|
subs r0, r1
|
|
str r0, [r2]
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
adds r2, r5, r0
|
|
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 r4, 0x10
|
|
adds r0, r5, r4
|
|
str r3, [r0]
|
|
str r3, [r1]
|
|
_080ACFD2:
|
|
adds r0, r5, 0
|
|
adds r0, 0x28
|
|
adds r1, r5, 0
|
|
adds r1, 0x30
|
|
bl sub_80A5778
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0
|
|
beq _080AD01A
|
|
movs r2, 0x9F
|
|
lsls r2, 1
|
|
adds r1, r5, r2
|
|
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 r4, 0xA0
|
|
lsls r4, 1
|
|
adds r0, r5, r4
|
|
strh r2, [r0]
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r5, r1
|
|
movs r3, 0x6
|
|
ldrsh r2, [r5, r3]
|
|
subs r4, 0x24
|
|
adds r1, r5, r4
|
|
ldr r3, [r1]
|
|
adds r1, r6, 0
|
|
bl sub_80A7688
|
|
_080AD01A:
|
|
adds r4, r5, 0
|
|
adds r4, 0x38
|
|
ldr r1, _080AD074
|
|
mov r0, r9
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r2, r5, 0
|
|
mov r3, r10
|
|
bl sub_809D600
|
|
ldr r2, [r7, 0x8]
|
|
cmp r2, 0
|
|
bne _080AD04C
|
|
mov r1, r8
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0x1
|
|
bne _080AD048
|
|
ldr r0, _080AD078
|
|
movs r1, 0xB0
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r2, [r0]
|
|
_080AD048:
|
|
cmp r2, 0
|
|
beq _080AD060
|
|
_080AD04C:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_809D6D8
|
|
ldr r3, _080AD07C
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809D8C0
|
|
_080AD060:
|
|
adds r0, r6, 0
|
|
_080AD062:
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD074: .4byte gUnknown_8118544
|
|
_080AD078: .4byte gFunctionScriptTable
|
|
_080AD07C: .4byte gUnknown_81186CC
|
|
thumb_func_end GroundEffect_Add
|
|
|
|
thumb_func_start GroundEffect_Delete
|
|
GroundEffect_Delete:
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
ldr r1, _080AD0BC
|
|
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, _080AD0C0
|
|
movs r0, 0
|
|
bl Log
|
|
movs r1, 0xA2
|
|
lsls r1, 1
|
|
adds r0, r4, r1
|
|
bl sub_80A7714
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
bl sub_809D648
|
|
ldr r0, _080AD0C4
|
|
strh r0, [r4, 0x6]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD0BC: .4byte gUnknown_3001B8C
|
|
_080AD0C0: .4byte gUnknown_81186D8
|
|
_080AD0C4: .4byte 0x0000ffff
|
|
thumb_func_end GroundEffect_Delete
|
|
|
|
thumb_func_start sub_80AD0C8
|
|
sub_80AD0C8:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD108
|
|
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 _080AD102
|
|
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
|
|
_080AD102:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD108: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD0C8
|
|
|
|
thumb_func_start sub_80AD10C
|
|
sub_80AD10C:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD150
|
|
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 _080AD14A
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
adds r2, r3, r0
|
|
ldr r0, _080AD154
|
|
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
|
|
_080AD14A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD150: .4byte gUnknown_3001B8C
|
|
_080AD154: .4byte 0x337fffff
|
|
thumb_func_end sub_80AD10C
|
|
|
|
thumb_func_start sub_80AD158
|
|
sub_80AD158:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD180
|
|
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 _080AD184
|
|
movs r0, 0
|
|
b _080AD188
|
|
.align 2, 0
|
|
_080AD180: .4byte gUnknown_3001B8C
|
|
_080AD184:
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
_080AD188:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD158
|
|
|
|
thumb_func_start sub_80AD18C
|
|
sub_80AD18C:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r2, 16
|
|
asrs r3, r2, 16
|
|
ldr r2, _080AD1B8
|
|
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 _080AD1BC
|
|
movs r0, 0
|
|
b _080AD1CC
|
|
.align 2, 0
|
|
_080AD1B8: .4byte gUnknown_3001B8C
|
|
_080AD1BC:
|
|
adds r0, r2, 0
|
|
adds r0, 0x38
|
|
adds r1, r4, 0
|
|
adds r2, r3, 0
|
|
bl sub_809D6E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
_080AD1CC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD18C
|
|
|
|
thumb_func_start GroundEffect_ExecuteScript
|
|
GroundEffect_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, _080AD20C
|
|
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, _080AD210
|
|
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 _080AD214
|
|
movs r0, 0
|
|
b _080AD22C
|
|
.align 2, 0
|
|
_080AD20C: .4byte gUnknown_3001B8C
|
|
_080AD210: .4byte gUnknown_81186F4
|
|
_080AD214:
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
ldr r3, _080AD234
|
|
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]
|
|
_080AD22C:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD234: .4byte gUnknown_811872C
|
|
thumb_func_end GroundEffect_ExecuteScript
|
|
|
|
thumb_func_start sub_80AD238
|
|
sub_80AD238:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
ldr r0, _080AD28C
|
|
ldr r4, [r0]
|
|
movs r5, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r8, r0
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080AD252:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r8
|
|
beq _080AD26A
|
|
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
|
|
_080AD26A:
|
|
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 _080AD252
|
|
adds r0, r5, 0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD28C: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD238
|
|
|
|
thumb_func_start sub_80AD290
|
|
sub_80AD290:
|
|
push {r4-r7,lr}
|
|
ldr r0, _080AD2D4
|
|
ldr r4, [r0]
|
|
movs r5, 0
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
_080AD2A0:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, r7
|
|
beq _080AD2B6
|
|
adds r0, r4, 0
|
|
adds r0, 0x38
|
|
bl sub_809D92C
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
lsrs r5, r0, 24
|
|
_080AD2B6:
|
|
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 _080AD2A0
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD2D4: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD290
|
|
|
|
thumb_func_start sub_80AD2D8
|
|
sub_80AD2D8:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD2F4
|
|
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
|
|
_080AD2F4: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD2D8
|
|
|
|
thumb_func_start sub_80AD2F8
|
|
sub_80AD2F8:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r3, _080AD31C
|
|
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
|
|
_080AD31C: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD2F8
|
|
|
|
thumb_func_start sub_80AD320
|
|
sub_80AD320:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD34C
|
|
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 _080AD350
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
str r0, [r3, 0x4]
|
|
b _080AD358
|
|
.align 2, 0
|
|
_080AD34C: .4byte gUnknown_3001B8C
|
|
_080AD350:
|
|
ldr r0, [r2, 0xC]
|
|
ldr r1, [r2, 0x10]
|
|
str r0, [r3]
|
|
str r1, [r3, 0x4]
|
|
_080AD358:
|
|
movs r1, 0x6
|
|
ldrsh r0, [r2, r1]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD320
|
|
|
|
thumb_func_start sub_80AD360
|
|
sub_80AD360:
|
|
push {lr}
|
|
adds r3, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _080AD38C
|
|
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 _080AD390
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
b _080AD3AA
|
|
.align 2, 0
|
|
_080AD38C: .4byte gUnknown_3001B8C
|
|
_080AD390:
|
|
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
|
|
_080AD3AA:
|
|
str r0, [r3, 0x4]
|
|
movs r1, 0x6
|
|
ldrsh r0, [r2, r1]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD360
|
|
|
|
thumb_func_start sub_80AD3B4
|
|
sub_80AD3B4:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r3, _080AD3DC
|
|
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_80AD3E0
|
|
movs r1, 0x6
|
|
ldrsh r0, [r4, r1]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD3DC: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD3B4
|
|
|
|
thumb_func_start sub_80AD3E0
|
|
sub_80AD3E0:
|
|
push {r4-r7,lr}
|
|
mov r12, r0
|
|
ldr r3, [r1]
|
|
ldr r2, [r0, 0x14]
|
|
subs r6, r3, r2
|
|
ldr r1, [r1, 0x4]
|
|
ldr r0, [r0, 0x18]
|
|
subs r7, r1, r0
|
|
adds r4, r3, r2
|
|
adds r5, r1, r0
|
|
mov r1, r12
|
|
ldr r0, [r1, 0x28]
|
|
cmp r6, r0
|
|
blt _080AD40E
|
|
ldr r0, [r1, 0x30]
|
|
cmp r4, r0
|
|
bge _080AD40E
|
|
ldr r0, [r1, 0x2C]
|
|
cmp r7, r0
|
|
blt _080AD40E
|
|
ldr r0, [r1, 0x34]
|
|
cmp r5, r0
|
|
blt _080AD412
|
|
_080AD40E:
|
|
movs r0, 0x1
|
|
b _080AD428
|
|
_080AD412:
|
|
movs r0, 0x92
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r6, [r0]
|
|
str r7, [r0, 0x4]
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r4, [r0]
|
|
str r5, [r0, 0x4]
|
|
movs r0, 0
|
|
_080AD428:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD3E0
|
|
|
|
thumb_func_start sub_80AD430
|
|
sub_80AD430:
|
|
push {r4-r6,lr}
|
|
mov r12, r0
|
|
movs r0, 0x92
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
ldr r2, [r1]
|
|
adds r5, r0, r2
|
|
movs r0, 0x94
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
ldr r1, [r1, 0x4]
|
|
adds r6, r0, r1
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
adds r3, r0, r2
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
mov r0, r12
|
|
ldr r1, [r0, 0x28]
|
|
cmp r5, r1
|
|
bge _080AD470
|
|
adds r5, r1, 0
|
|
ldr r0, [r0, 0xC]
|
|
adds r3, r1, r0
|
|
b _080AD47E
|
|
_080AD470:
|
|
mov r2, r12
|
|
ldr r1, [r2, 0x30]
|
|
cmp r3, r1
|
|
blt _080AD47E
|
|
ldr r0, [r2, 0xC]
|
|
subs r5, r1, r0
|
|
adds r3, r1, 0
|
|
_080AD47E:
|
|
mov r0, r12
|
|
ldr r1, [r0, 0x2C]
|
|
cmp r6, r1
|
|
bge _080AD48E
|
|
adds r6, r1, 0
|
|
ldr r0, [r0, 0x10]
|
|
adds r4, r1, r0
|
|
b _080AD49C
|
|
_080AD48E:
|
|
mov r2, r12
|
|
ldr r1, [r2, 0x34]
|
|
cmp r4, r1
|
|
blt _080AD49C
|
|
ldr r0, [r2, 0x10]
|
|
subs r6, r1, r0
|
|
adds r4, r1, 0
|
|
_080AD49C:
|
|
movs r0, 0x92
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r5, [r0]
|
|
str r6, [r0, 0x4]
|
|
movs r0, 0x96
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r3, [r0]
|
|
str r4, [r0, 0x4]
|
|
movs r0, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD430
|
|
|
|
thumb_func_start sub_80AD4B8
|
|
sub_80AD4B8:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end sub_80AD4B8
|
|
|
|
thumb_func_start sub_80AD4C0
|
|
sub_80AD4C0:
|
|
ldr r2, [r0, 0xC]
|
|
ldr r3, [r0, 0x10]
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_80AD4C0
|
|
|
|
thumb_func_start sub_80AD4CC
|
|
sub_80AD4CC:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _080AD50C
|
|
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 _080AD572
|
|
_080AD50C:
|
|
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 _080AD56E
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AD56E:
|
|
ldrb r0, [r3, 0x1C]
|
|
strb r0, [r2]
|
|
_080AD572:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD4CC
|
|
|
|
thumb_func_start sub_80AD578
|
|
sub_80AD578:
|
|
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_80AD578
|
|
|
|
thumb_func_start sub_80AD590
|
|
sub_80AD590:
|
|
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_80AD590
|
|
|
|
thumb_func_start sub_80AD5B0
|
|
sub_80AD5B0:
|
|
push {lr}
|
|
bl sub_80AD3E0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD5B0
|
|
|
|
thumb_func_start sub_80AD5BC
|
|
sub_80AD5BC:
|
|
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_80AD5BC
|
|
|
|
thumb_func_start sub_80AD5DC
|
|
sub_80AD5DC:
|
|
movs r2, 0x9A
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80AD5DC
|
|
|
|
thumb_func_start sub_80AD5E8
|
|
sub_80AD5E8:
|
|
movs r2, 0x90
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
bx lr
|
|
thumb_func_end sub_80AD5E8
|
|
|
|
thumb_func_start sub_80AD5F4
|
|
sub_80AD5F4:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080AD60C
|
|
movs r3, 0x90
|
|
lsls r3, 1
|
|
adds r0, r2, r3
|
|
strb r1, [r0]
|
|
_080AD60C:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD5F4
|
|
|
|
thumb_func_start sub_80AD610
|
|
sub_80AD610:
|
|
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 _080AD630
|
|
ldr r1, _080AD62C
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
b _080AD636
|
|
.align 2, 0
|
|
_080AD62C: .4byte gUnknown_81185F2
|
|
_080AD630:
|
|
movs r5, 0x9F
|
|
lsls r5, 1
|
|
adds r0, r3, r5
|
|
_080AD636:
|
|
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 _080AD654
|
|
strh r2, [r1]
|
|
movs r0, 0x9E
|
|
lsls r0, 1
|
|
adds r1, r3, r0
|
|
b _080AD664
|
|
_080AD654:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080AD668
|
|
movs r5, 0x9E
|
|
lsls r5, 1
|
|
adds r1, r3, r5
|
|
_080AD664:
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080AD668:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD610
|
|
|
|
thumb_func_start sub_80AD670
|
|
sub_80AD670:
|
|
push {lr}
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r2, r1, 0
|
|
cmp r1, 0
|
|
bne _080AD682
|
|
movs r1, 0xE0
|
|
lsls r1, 1
|
|
adds r2, r1, 0
|
|
_080AD682:
|
|
movs r1, 0xA0
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD670
|
|
|
|
thumb_func_start sub_80AD690
|
|
sub_80AD690:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x9E
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080AD6AE
|
|
adds r2, 0x8
|
|
adds r0, r1, r2
|
|
bl sub_80A66F8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080AD6B0
|
|
_080AD6AE:
|
|
movs r0, 0x1
|
|
_080AD6B0:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD690
|
|
|
|
thumb_func_start sub_80AD6B4
|
|
sub_80AD6B4:
|
|
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 _080AD6D6
|
|
movs r2, 0xA2
|
|
lsls r2, 1
|
|
adds r0, r1, r2
|
|
bl sub_80A671C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080AD6D8
|
|
_080AD6D6:
|
|
movs r0, 0x1
|
|
_080AD6D8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD6B4
|
|
|
|
thumb_func_start sub_80AD6DC
|
|
sub_80AD6DC:
|
|
movs r2, 0x8E
|
|
lsls r2, 1
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
bx lr
|
|
thumb_func_end sub_80AD6DC
|
|
|
|
thumb_func_start sub_80AD6E8
|
|
sub_80AD6E8:
|
|
push {lr}
|
|
movs r2, 0x4
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80AD0C8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD6E8
|
|
|
|
thumb_func_start sub_80AD6F8
|
|
sub_80AD6F8:
|
|
push {lr}
|
|
movs r2, 0x4
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80AD10C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80AD6F8
|
|
|
|
thumb_func_start sub_80AD708
|
|
sub_80AD708:
|
|
push {lr}
|
|
bl sub_80AD430
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80AD708
|
|
|
|
thumb_func_start GroundEffect_Action
|
|
GroundEffect_Action:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r0, _080AD754
|
|
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
|
|
_080AD72C:
|
|
movs r3, 0x6
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, r8
|
|
beq _080AD78A
|
|
adds r4, r5, 0
|
|
adds r4, 0x38
|
|
adds r0, r4, 0
|
|
ldr r1, _080AD758
|
|
bl HandleAction
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
beq _080AD75C
|
|
cmp r0, 0x4
|
|
bne _080AD768
|
|
adds r0, r7, 0
|
|
bl GroundEffect_Delete
|
|
b _080AD78A
|
|
.align 2, 0
|
|
_080AD754: .4byte gUnknown_3001B8C
|
|
_080AD758: .4byte gUnknown_811874C
|
|
_080AD75C:
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x1
|
|
ldr r3, _080AD7A8
|
|
bl sub_809D8C0
|
|
_080AD768:
|
|
ldrb r0, [r6]
|
|
cmp r0, 0
|
|
beq _080AD78A
|
|
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
|
|
_080AD78A:
|
|
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 _080AD72C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD7A8: .4byte gUnknown_8118758
|
|
thumb_func_end GroundEffect_Action
|
|
|
|
thumb_func_start sub_80AD7AC
|
|
sub_80AD7AC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
ldr r0, _080AD864
|
|
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
|
|
_080AD7CA:
|
|
movs r0, 0x6
|
|
ldrsh r1, [r6, r0]
|
|
mov r2, r9
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
beq _080AD83C
|
|
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 _080AD818
|
|
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
|
|
_080AD818:
|
|
movs r1, 0x20
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _080AD832
|
|
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]
|
|
_080AD832:
|
|
adds r0, r5, 0
|
|
mov r1, sp
|
|
adds r2, r7, 0
|
|
bl sub_80A7720
|
|
_080AD83C:
|
|
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 _080AD7CA
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD864: .4byte gUnknown_3001B8C
|
|
thumb_func_end sub_80AD7AC
|
|
|
|
thumb_func_start sub_80AD868
|
|
sub_80AD868:
|
|
ldr r1, _080AD870
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080AD870: .4byte gUnknown_203B4B8
|
|
thumb_func_end sub_80AD868
|
|
|
|
thumb_func_start sub_80AD874
|
|
sub_80AD874:
|
|
ldr r1, _080AD87C
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080AD87C: .4byte gUnknown_203B4B8
|
|
thumb_func_end sub_80AD874
|
|
|
|
thumb_func_start GroundLink_Select
|
|
GroundLink_Select:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, _080AD898
|
|
bl sub_80A77D0
|
|
ldr r1, _080AD89C
|
|
ldr r0, [r0, 0x8]
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080AD898: .4byte gUnknown_8118798
|
|
_080AD89C: .4byte gUnknown_203B4B8
|
|
thumb_func_end GroundLink_Select
|
|
|
|
thumb_func_start sub_80AD8A0
|
|
sub_80AD8A0:
|
|
lsls r0, 16
|
|
ldr r1, _080AD8B0
|
|
asrs r0, 13
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_080AD8B0: .4byte gUnknown_203B4B8
|
|
thumb_func_end sub_80AD8A0
|
|
|
|
thumb_func_start sub_80AD8B4
|
|
sub_80AD8B4:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
ldr r1, _080AD910
|
|
asrs r0, 13
|
|
ldr r1, [r1]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080AD8E4
|
|
ldrb r0, [r2]
|
|
lsls r3, r0, 11
|
|
str r3, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD8E4
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r4]
|
|
_080AD8E4:
|
|
ldrb r1, [r2, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080AD906
|
|
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 _080AD906
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r4, 0x4]
|
|
_080AD906:
|
|
ldrb r0, [r2, 0x6]
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD910: .4byte gUnknown_203B4B8
|
|
thumb_func_end sub_80AD8B4
|
|
|
|
thumb_func_start sub_80AD914
|
|
sub_80AD914:
|
|
push {r4,r5,lr}
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
lsls r0, 16
|
|
ldr r1, _080AD98C
|
|
asrs r0, 13
|
|
ldr r1, [r1]
|
|
adds r2, r1, r0
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [r4]
|
|
str r1, [r4, 0x4]
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080AD94E
|
|
ldrb r0, [r2]
|
|
lsls r3, r0, 11
|
|
str r3, [r4]
|
|
ldrb r1, [r2, 0x2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080AD94E
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r4]
|
|
_080AD94E:
|
|
ldrb r1, [r2, 0x3]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080AD970
|
|
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 _080AD970
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r0, r3, r1
|
|
str r0, [r4, 0x4]
|
|
_080AD970:
|
|
ldrb r1, [r2, 0x4]
|
|
lsls r1, 11
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
ldrb r1, [r2, 0x5]
|
|
lsls r1, 11
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, r1
|
|
str r0, [r5, 0x4]
|
|
ldrb r0, [r2, 0x6]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080AD98C: .4byte gUnknown_203B4B8
|
|
thumb_func_end sub_80AD914
|
|
|
|
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
|