mirror of
https://github.com/pret/pmd-red.git
synced 2026-10-01 15:21:19 -04:00
24959 lines
370 KiB
ArmAsm
24959 lines
370 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_80A26CC
|
|
sub_80A26CC:
|
|
lsls r0, 16
|
|
movs r1, 0xDC
|
|
lsls r1, 14
|
|
adds r0, r1
|
|
asrs r0, 16
|
|
bx lr
|
|
thumb_func_end sub_80A26CC
|
|
|
|
thumb_func_start sub_80A26D8
|
|
sub_80A26D8:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
_080A26E0:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2608
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, 0
|
|
beq _080A26FC
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, r6
|
|
bne _080A26FC
|
|
adds r0, r4, 0
|
|
b _080A2706
|
|
_080A26FC:
|
|
adds r5, 0x1
|
|
cmp r5, 0x52
|
|
ble _080A26E0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080A2706:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A26D8
|
|
|
|
thumb_func_start sub_80A270C
|
|
sub_80A270C:
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r1, _080A2724
|
|
asrs r0, 15
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A2608
|
|
ldrb r0, [r0, 0xC]
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A2724: .4byte gUnknown_8116F9A
|
|
thumb_func_end sub_80A270C
|
|
|
|
thumb_func_start sub_80A2728
|
|
sub_80A2728:
|
|
push {lr}
|
|
lsls r0, 16
|
|
movs r1, 0xDC
|
|
lsls r1, 14
|
|
adds r0, r1
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
ldrb r0, [r0, 0xC]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2728
|
|
|
|
thumb_func_start sub_80A2740
|
|
sub_80A2740:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
ldrb r0, [r0, 0xC]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2740
|
|
|
|
thumb_func_start sub_80A2750
|
|
sub_80A2750:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
cmp r1, 0x50
|
|
bne _080A2760
|
|
movs r0, 0x3
|
|
b _080A27C4
|
|
_080A2760:
|
|
cmp r1, 0x51
|
|
beq _080A27BE
|
|
cmp r1, 0x52
|
|
beq _080A2780
|
|
adds r0, r1, 0
|
|
subs r0, 0x28
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xE
|
|
bls _080A27BE
|
|
adds r0, r1, 0
|
|
subs r0, 0x37
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x18
|
|
bhi _080A2784
|
|
_080A2780:
|
|
movs r0, 0x4
|
|
b _080A27C4
|
|
_080A2784:
|
|
adds r0, r2, 0
|
|
bl sub_80A2608
|
|
adds r4, r0, 0
|
|
movs r0, 0xE
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A27C2
|
|
movs r0, 0x5
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A27C2
|
|
movs r1, 0xE
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A27C2
|
|
movs r0, 0x1
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A27C2
|
|
_080A27BE:
|
|
movs r0, 0x2
|
|
b _080A27C4
|
|
_080A27C2:
|
|
movs r0, 0x1
|
|
_080A27C4:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2750
|
|
|
|
thumb_func_start sub_80A27CC
|
|
sub_80A27CC:
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r5, r4, 0
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A281A
|
|
movs r0, 0x5
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A281A
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A2816
|
|
movs r0, 0x1
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A281A
|
|
adds r0, r5, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A281A
|
|
_080A2816:
|
|
movs r0, 0x1
|
|
b _080A281C
|
|
_080A281A:
|
|
movs r0, 0
|
|
_080A281C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A27CC
|
|
|
|
thumb_func_start sub_80A2824
|
|
sub_80A2824:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r0, 0x5
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A28AC
|
|
movs r0, 0x1
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2880
|
|
movs r5, 0
|
|
_080A2844:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, 0
|
|
beq _080A2874
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, r6
|
|
bne _080A2874
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A287C
|
|
adds r0, r4, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A287C
|
|
_080A2874:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2D
|
|
ble _080A2844
|
|
b _080A28AC
|
|
_080A287C:
|
|
movs r0, 0x1
|
|
b _080A28AE
|
|
_080A2880:
|
|
movs r5, 0
|
|
_080A2882:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, 0
|
|
beq _080A28A6
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, r6
|
|
bne _080A28A6
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A287C
|
|
_080A28A6:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2D
|
|
ble _080A2882
|
|
_080A28AC:
|
|
movs r0, 0
|
|
_080A28AE:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2824
|
|
|
|
thumb_func_start sub_80A28B4
|
|
sub_80A28B4:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A28E8
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A28E4
|
|
adds r0, r4, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A28E8
|
|
_080A28E4:
|
|
movs r0, 0x1
|
|
b _080A28EA
|
|
_080A28E8:
|
|
movs r0, 0
|
|
_080A28EA:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A28B4
|
|
|
|
thumb_func_start sub_80A28F0
|
|
sub_80A28F0:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
_080A28F8:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, 0
|
|
beq _080A292C
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, r6
|
|
bne _080A292C
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A2928
|
|
adds r0, r4, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A292C
|
|
_080A2928:
|
|
movs r0, 0x1
|
|
b _080A2934
|
|
_080A292C:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2D
|
|
ble _080A28F8
|
|
movs r0, 0
|
|
_080A2934:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A28F0
|
|
|
|
thumb_func_start sub_80A293C
|
|
sub_80A293C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x40
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r1, 0
|
|
mov r0, sp
|
|
adds r0, 0x3E
|
|
_080A294E:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, sp
|
|
bge _080A294E
|
|
movs r5, 0
|
|
_080A2958:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r6, r0, 0
|
|
ldrb r0, [r6, 0x11]
|
|
cmp r0, 0
|
|
beq _080A2980
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2980
|
|
ldrb r0, [r6, 0xC]
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A2980:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2D
|
|
ble _080A2958
|
|
movs r5, 0
|
|
_080A2988:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A299A
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
strb r5, [r0]
|
|
adds r7, 0x1
|
|
_080A299A:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3E
|
|
ble _080A2988
|
|
adds r0, r7, 0
|
|
add sp, 0x40
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A293C
|
|
|
|
thumb_func_start sub_80A29B0
|
|
sub_80A29B0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x48
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r0, 0x2B
|
|
add r0, sp
|
|
mov r9, r0
|
|
add r1, sp, 0x2C
|
|
mov r10, r1
|
|
mov r2, sp
|
|
adds r2, 0x2D
|
|
str r2, [sp, 0x40]
|
|
mov r0, sp
|
|
adds r0, 0x2E
|
|
str r0, [sp, 0x44]
|
|
movs r1, 0
|
|
adds r0, 0x10
|
|
_080A29DA:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, sp
|
|
bge _080A29DA
|
|
movs r0, 0x1
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2A1E
|
|
movs r5, 0
|
|
_080A29F0:
|
|
lsls r0, r5, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r6, r0, 0
|
|
ldrb r0, [r6, 0x11]
|
|
cmp r0, 0
|
|
beq _080A2A18
|
|
adds r0, r4, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2A18
|
|
ldrb r0, [r6, 0xC]
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A2A18:
|
|
adds r5, 0x1
|
|
cmp r5, 0x2D
|
|
ble _080A29F0
|
|
_080A2A1E:
|
|
movs r0, 0
|
|
mov r1, r9
|
|
strb r0, [r1]
|
|
mov r2, r10
|
|
strb r0, [r2]
|
|
ldr r1, [sp, 0x40]
|
|
strb r0, [r1]
|
|
ldr r2, [sp, 0x44]
|
|
strb r0, [r2]
|
|
movs r5, 0
|
|
_080A2A32:
|
|
mov r1, sp
|
|
adds r0, r1, r5
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A2A44
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
strb r5, [r0]
|
|
adds r7, 0x1
|
|
_080A2A44:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3E
|
|
ble _080A2A32
|
|
adds r0, r7, 0
|
|
add sp, 0x48
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A29B0
|
|
|
|
thumb_func_start sub_80A2A5C
|
|
sub_80A2A5C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x40
|
|
mov r8, r0
|
|
movs r7, 0
|
|
movs r1, 0
|
|
mov r0, sp
|
|
adds r0, 0x3E
|
|
_080A2A6E:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, sp
|
|
bge _080A2A6E
|
|
movs r0, 0x1
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2AC0
|
|
movs r6, 0
|
|
_080A2A84:
|
|
lsls r0, r6, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5, 0x11]
|
|
cmp r0, 0
|
|
beq _080A2AB8
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A2AAE
|
|
adds r0, r4, 0
|
|
bl sub_80973F4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2AB8
|
|
_080A2AAE:
|
|
ldrb r0, [r5, 0xC]
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A2AB8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x2D
|
|
ble _080A2A84
|
|
b _080A2AF0
|
|
_080A2AC0:
|
|
movs r6, 0
|
|
_080A2AC2:
|
|
lsls r0, r6, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2620
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5, 0x11]
|
|
cmp r0, 0
|
|
beq _080A2AEA
|
|
adds r0, r4, 0
|
|
bl sub_8097384
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2AEA
|
|
ldrb r0, [r5, 0xC]
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A2AEA:
|
|
adds r6, 0x1
|
|
cmp r6, 0x2D
|
|
ble _080A2AC2
|
|
_080A2AF0:
|
|
movs r6, 0
|
|
_080A2AF2:
|
|
mov r1, sp
|
|
adds r0, r1, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A2B04
|
|
mov r2, r8
|
|
adds r0, r2, r7
|
|
strb r6, [r0]
|
|
adds r7, 0x1
|
|
_080A2B04:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3E
|
|
ble _080A2AF2
|
|
adds r0, r7, 0
|
|
add sp, 0x40
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2A5C
|
|
|
|
thumb_func_start sub_80A2B18
|
|
sub_80A2B18:
|
|
lsls r0, 16
|
|
ldr r1, _080A2B24
|
|
asrs r0, 14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A2B24: .4byte gUnknown_8117000
|
|
thumb_func_end sub_80A2B18
|
|
|
|
thumb_func_start sub_80A2B28
|
|
sub_80A2B28:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2B18
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2B28
|
|
|
|
thumb_func_start sub_80A2B40
|
|
sub_80A2B40:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r2, _080A2BFC
|
|
adds r0, r5, r2
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
ldr r3, _080A2C00
|
|
adds r0, r5, r3
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
movs r2, 0xA9
|
|
lsls r2, 3
|
|
adds r1, r5, r2
|
|
str r0, [r1]
|
|
movs r6, 0
|
|
movs r3, 0xA7
|
|
lsls r3, 3
|
|
adds r0, r5, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
cmp r6, r0
|
|
bge _080A2BC0
|
|
_080A2B7C:
|
|
lsls r4, r6, 2
|
|
ldr r0, _080A2C04
|
|
adds r2, r5, r0
|
|
adds r2, r4
|
|
ldr r1, _080A2C08
|
|
adds r0, r5, r1
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r6, 0x2
|
|
adds r0, r1
|
|
lsls r0, 11
|
|
ldr r1, _080A2C0C
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, _080A2C10
|
|
adds r0, r5, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
lsls r0, 7
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
ldr r3, _080A2C14
|
|
adds r1, r5, r3
|
|
adds r1, r4
|
|
str r0, [r1]
|
|
adds r6, 0x1
|
|
movs r4, 0xA7
|
|
lsls r4, 3
|
|
adds r0, r5, r4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r6, r0
|
|
blt _080A2B7C
|
|
_080A2BC0:
|
|
cmp r6, 0x1
|
|
bgt _080A2BD8
|
|
movs r1, 0
|
|
lsls r0, r6, 2
|
|
ldr r2, _080A2C14
|
|
adds r0, r2
|
|
adds r0, r5
|
|
_080A2BCE:
|
|
str r1, [r0, 0x8]
|
|
stm r0!, {r1}
|
|
adds r6, 0x1
|
|
cmp r6, 0x1
|
|
ble _080A2BCE
|
|
_080A2BD8:
|
|
movs r3, 0xA8
|
|
lsls r3, 3
|
|
adds r0, r5, r3
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _080A2C20
|
|
ldr r4, _080A2C18
|
|
adds r0, r5, r4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
ldr r2, _080A2C1C
|
|
adds r1, r5, r2
|
|
str r0, [r1]
|
|
b _080A2C26
|
|
.align 2, 0
|
|
_080A2BFC: .4byte 0x0000052c
|
|
_080A2C00: .4byte 0x00000534
|
|
_080A2C04: .4byte 0x00000554
|
|
_080A2C08: .4byte 0x00000536
|
|
_080A2C0C: .4byte gUnknown_202B038
|
|
_080A2C10: .4byte 0x0000053c
|
|
_080A2C14: .4byte 0x0000054c
|
|
_080A2C18: .4byte 0x0000053a
|
|
_080A2C1C: .4byte 0x00000544
|
|
_080A2C20:
|
|
ldr r3, _080A2CF0
|
|
adds r0, r5, r3
|
|
str r1, [r0]
|
|
_080A2C26:
|
|
movs r4, 0x86
|
|
lsls r4, 3
|
|
adds r0, r5, r4
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r2, _080A2CF4
|
|
adds r0, r5, r2
|
|
str r1, [r0]
|
|
movs r3, 0x87
|
|
lsls r3, 3
|
|
adds r0, r5, r3
|
|
str r1, [r0]
|
|
adds r4, 0xC
|
|
adds r0, r5, r4
|
|
str r1, [r0]
|
|
adds r2, 0xC
|
|
adds r0, r5, r2
|
|
str r1, [r0]
|
|
adds r3, 0xF2
|
|
adds r0, r5, r3
|
|
strb r1, [r0]
|
|
adds r4, 0x8
|
|
adds r2, r5, r4
|
|
ldr r0, _080A2CF8
|
|
strh r0, [r2]
|
|
movs r2, 0x8D
|
|
lsls r2, 3
|
|
adds r0, r5, r2
|
|
str r1, [r0]
|
|
subs r3, 0xE2
|
|
adds r0, r5, r3
|
|
strb r1, [r0]
|
|
adds r4, 0x5
|
|
adds r0, r5, r4
|
|
strb r1, [r0]
|
|
subs r2, 0x1E
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
adds r3, 0x3
|
|
adds r0, r5, r3
|
|
strb r1, [r0]
|
|
adds r4, 0x3
|
|
adds r0, r5, r4
|
|
strb r1, [r0]
|
|
adds r2, 0x3
|
|
adds r0, r5, r2
|
|
strb r1, [r0]
|
|
adds r2, r5, 0
|
|
adds r3, 0x21
|
|
adds r0, r5, r3
|
|
str r1, [r0]
|
|
adds r4, 0x24
|
|
adds r0, r5, r4
|
|
strb r1, [r0]
|
|
adds r3, 0x5
|
|
adds r0, r5, r3
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
_080A2C9C:
|
|
strh r0, [r2]
|
|
strh r0, [r2, 0x2]
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0x4]
|
|
subs r1, 0x1
|
|
adds r2, 0x10
|
|
cmp r1, 0
|
|
bge _080A2C9C
|
|
movs r1, 0
|
|
movs r4, 0xF8
|
|
lsls r4, 2
|
|
adds r0, r5, r4
|
|
movs r2, 0x1
|
|
_080A2CB6:
|
|
strb r1, [r0]
|
|
strb r1, [r0, 0x1]
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
str r1, [r0, 0x8]
|
|
str r1, [r0, 0xC]
|
|
str r1, [r0, 0x14]
|
|
str r1, [r0, 0x10]
|
|
str r1, [r0, 0x1C]
|
|
str r1, [r0, 0x18]
|
|
str r1, [r0, 0x20]
|
|
str r1, [r0, 0x24]
|
|
adds r0, 0x28
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A2CB6
|
|
movs r4, 0
|
|
_080A2CD8:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
ldr r2, _080A2CFC
|
|
bl sub_80A456C
|
|
adds r4, 0x1
|
|
cmp r4, 0x1
|
|
ble _080A2CD8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2CF0: .4byte 0x00000544
|
|
_080A2CF4: .4byte 0x00000434
|
|
_080A2CF8: .4byte 0x0000ffff
|
|
_080A2CFC: .4byte gUnknown_81172B8
|
|
thumb_func_end sub_80A2B40
|
|
|
|
thumb_func_start sub_80A2D00
|
|
sub_80A2D00:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
bl sub_80A2DD4
|
|
ldr r0, _080A2D5C
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2D1A
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2D1A:
|
|
movs r1, 0xA9
|
|
lsls r1, 3
|
|
adds r4, r6, r1
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
movs r5, 0
|
|
movs r7, 0
|
|
_080A2D2E:
|
|
lsls r2, r5, 2
|
|
ldr r1, _080A2D60
|
|
adds r0, r6, r1
|
|
adds r1, r0, r2
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _080A2D3E
|
|
str r7, [r1]
|
|
_080A2D3E:
|
|
ldr r1, _080A2D64
|
|
adds r0, r6, r1
|
|
adds r4, r0, r2
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2D50
|
|
bl MemoryFree
|
|
str r7, [r4]
|
|
_080A2D50:
|
|
adds r5, 0x1
|
|
cmp r5, 0x1
|
|
ble _080A2D2E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2D5C: .4byte 0x00000544
|
|
_080A2D60: .4byte 0x00000554
|
|
_080A2D64: .4byte 0x0000054c
|
|
thumb_func_end sub_80A2D00
|
|
|
|
thumb_func_start sub_80A2D68
|
|
sub_80A2D68:
|
|
push {r4,lr}
|
|
ldr r1, _080A2D84
|
|
adds r4, r0, r1
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2D7C
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2D7C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2D84: .4byte 0x00000544
|
|
thumb_func_end sub_80A2D68
|
|
|
|
thumb_func_start sub_80A2D88
|
|
sub_80A2D88:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r0, 0xA8
|
|
lsls r0, 3
|
|
adds r7, r6, r0
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
beq _080A2DC6
|
|
movs r1, 0x89
|
|
lsls r1, 3
|
|
adds r5, r6, r1
|
|
ldr r2, _080A2DCC
|
|
adds r4, r6, r2
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 8
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
ldr r2, _080A2DD0
|
|
adds r1, r6, r2
|
|
str r0, [r1]
|
|
subs r2, 0xDC
|
|
adds r1, r6, r2
|
|
ldr r1, [r1]
|
|
movs r2, 0
|
|
ldrsh r3, [r4, r2]
|
|
ldr r4, [r7]
|
|
adds r2, r5, 0
|
|
bl _call_via_r4
|
|
_080A2DC6:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2DCC: .4byte 0x0000053a
|
|
_080A2DD0: .4byte 0x00000544
|
|
thumb_func_end sub_80A2D88
|
|
|
|
thumb_func_start sub_80A2DD4
|
|
sub_80A2DD4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r0, 0xFA
|
|
lsls r0, 2
|
|
adds r4, r6, r0
|
|
movs r5, 0x1
|
|
_080A2DE0:
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2DEE
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2DEE:
|
|
adds r4, 0x28
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A2DE0
|
|
ldr r0, _080A2E5C
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2E08
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2E08:
|
|
movs r0, 0x88
|
|
lsls r0, 3
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2E1C
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2E1C:
|
|
movs r0, 0x86
|
|
lsls r0, 3
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2E30
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2E30:
|
|
ldr r0, _080A2E60
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2E42
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2E42:
|
|
movs r0, 0x87
|
|
lsls r0, 3
|
|
adds r4, r6, r0
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A2E56
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A2E56:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2E5C: .4byte 0x0000043c
|
|
_080A2E60: .4byte 0x00000434
|
|
thumb_func_end sub_80A2DD4
|
|
|
|
thumb_func_start sub_80A2E64
|
|
sub_80A2E64:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
adds r7, r0, 0
|
|
bl sub_80A2DD4
|
|
ldr r0, _080A2FA4
|
|
adds r1, r7, r0
|
|
ldr r0, _080A2FA8
|
|
strh r0, [r1]
|
|
movs r1, 0xA5
|
|
lsls r1, 3
|
|
adds r0, r7, r1
|
|
movs r1, 0
|
|
movs r2, 0
|
|
strh r2, [r0]
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
adds r0, r7, r3
|
|
strb r1, [r0]
|
|
ldr r4, _080A2FAC
|
|
adds r0, r7, r4
|
|
strb r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r7, r3
|
|
strb r1, [r0]
|
|
adds r4, 0x2
|
|
adds r0, r7, r4
|
|
strb r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, r7, r3
|
|
strb r1, [r0]
|
|
adds r4, 0x2
|
|
adds r0, r7, r4
|
|
strb r1, [r0]
|
|
adds r3, r7, 0
|
|
adds r4, 0x1F
|
|
adds r0, r7, r4
|
|
str r2, [r0]
|
|
movs r2, 0x8E
|
|
lsls r2, 3
|
|
adds r0, r7, r2
|
|
strb r1, [r0]
|
|
adds r4, 0x5
|
|
adds r0, r7, r4
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
_080A2ECA:
|
|
strh r0, [r3]
|
|
strh r0, [r3, 0x2]
|
|
str r0, [r3, 0x8]
|
|
str r0, [r3, 0x4]
|
|
subs r1, 0x1
|
|
adds r3, 0x10
|
|
cmp r1, 0
|
|
bge _080A2ECA
|
|
movs r1, 0
|
|
movs r2, 0xF8
|
|
lsls r2, 2
|
|
adds r0, r7, r2
|
|
movs r2, 0x1
|
|
_080A2EE4:
|
|
strb r1, [r0]
|
|
strb r1, [r0, 0x1]
|
|
strh r1, [r0, 0x2]
|
|
strh r1, [r0, 0x4]
|
|
str r1, [r0, 0x8]
|
|
str r1, [r0, 0xC]
|
|
str r1, [r0, 0x14]
|
|
str r1, [r0, 0x10]
|
|
str r1, [r0, 0x1C]
|
|
str r1, [r0, 0x18]
|
|
str r1, [r0, 0x20]
|
|
str r1, [r0, 0x24]
|
|
adds r0, 0x28
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A2EE4
|
|
ldr r3, _080A2FB0
|
|
adds r0, r7, r3
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
lsls r0, 20
|
|
lsrs r6, r0, 16
|
|
movs r5, 0
|
|
ldr r1, _080A2FB4
|
|
adds r0, r7, r1
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r5, r0
|
|
bge _080A2F78
|
|
mov r10, r5
|
|
add r4, sp, 0x4
|
|
movs r3, 0xFF
|
|
mov r9, r3
|
|
_080A2F26:
|
|
mov r0, r10
|
|
str r0, [sp]
|
|
ldrb r0, [r4]
|
|
mov r1, r9
|
|
orrs r0, r1
|
|
strb r0, [r4]
|
|
ldrb r0, [r4, 0x1]
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x1]
|
|
ldrb r0, [r4, 0x2]
|
|
orrs r0, r1
|
|
strb r0, [r4, 0x2]
|
|
mov r2, r10
|
|
strb r2, [r4, 0x3]
|
|
adds r0, r6, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r1, [sp]
|
|
bl sub_8003810
|
|
adds r5, 0x1
|
|
mov r8, r5
|
|
movs r5, 0xE
|
|
_080A2F56:
|
|
adds r0, r6, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r6, r1, 16
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8003810
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A2F56
|
|
mov r5, r8
|
|
ldr r3, _080A2FB4
|
|
adds r0, r7, r3
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
blt _080A2F26
|
|
_080A2F78:
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_80A3BB0
|
|
movs r2, 0x91
|
|
lsls r2, 3
|
|
adds r0, r7, r2
|
|
bl sub_80A3EB0
|
|
ldr r3, _080A2FB8
|
|
adds r1, r7, r3
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A2FA4: .4byte 0x00000444
|
|
_080A2FA8: .4byte 0x0000ffff
|
|
_080A2FAC: .4byte 0x00000449
|
|
_080A2FB0: .4byte 0x0000052c
|
|
_080A2FB4: .4byte 0x0000052e
|
|
_080A2FB8: .4byte 0x0000052a
|
|
thumb_func_end sub_80A2E64
|
|
|
|
thumb_func_start sub_80A2FBC
|
|
sub_80A2FBC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x2C
|
|
mov r9, r0
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bne _080A2FDE
|
|
mov r0, r9
|
|
bl sub_80A2E64
|
|
b _080A3428
|
|
_080A2FDE:
|
|
mov r0, r9
|
|
bl sub_80A2DD4
|
|
ldr r0, _080A3284
|
|
add r0, r9
|
|
strh r4, [r0]
|
|
lsls r0, r4, 3
|
|
subs r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _080A3288
|
|
adds r0, r1
|
|
str r0, [sp, 0xC]
|
|
ldr r0, [r0]
|
|
ldr r4, _080A328C
|
|
adds r1, r4, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
movs r6, 0x86
|
|
lsls r6, 3
|
|
add r6, r9
|
|
str r0, [r6]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r0, [r1, 0x4]
|
|
adds r1, r4, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
ldr r5, _080A3290
|
|
add r5, r9
|
|
str r0, [r5]
|
|
ldr r2, [sp, 0xC]
|
|
ldr r0, [r2, 0x8]
|
|
adds r1, r4, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
add r1, r9
|
|
str r0, [r1]
|
|
ldr r1, [r6]
|
|
ldr r1, [r1, 0x4]
|
|
str r1, [sp, 0x18]
|
|
ldr r1, [r5]
|
|
ldr r1, [r1, 0x4]
|
|
mov r8, r1
|
|
ldr r6, [r0, 0x4]
|
|
ldr r3, _080A3294
|
|
add r3, r9
|
|
str r3, [sp, 0x10]
|
|
ldr r4, _080A3298
|
|
add r4, r9
|
|
str r4, [sp, 0x14]
|
|
movs r5, 0x89
|
|
lsls r5, 3
|
|
add r5, r9
|
|
mov r10, r5
|
|
ldr r7, [sp, 0x18]
|
|
ldrb r0, [r7]
|
|
strh r0, [r3]
|
|
adds r0, r7, 0
|
|
adds r0, 0x2
|
|
str r0, [sp, 0x18]
|
|
ldrb r0, [r0]
|
|
strh r0, [r3, 0x2]
|
|
ldr r1, [sp, 0x18]
|
|
adds r1, 0x2
|
|
str r1, [sp, 0x18]
|
|
mov r2, r8
|
|
ldrh r0, [r2]
|
|
strh r0, [r4]
|
|
movs r3, 0x2
|
|
add r8, r3
|
|
mov r4, r8
|
|
ldrh r0, [r4]
|
|
ldr r5, [sp, 0x14]
|
|
strh r0, [r5, 0x2]
|
|
add r8, r3
|
|
mov r7, r8
|
|
ldrh r0, [r7]
|
|
strh r0, [r5, 0x4]
|
|
add r8, r3
|
|
add r3, sp, 0x8
|
|
ldr r0, _080A329C
|
|
add r0, r9
|
|
str r0, [sp, 0x1C]
|
|
adds r1, r0, 0
|
|
movs r2, 0x3
|
|
_080A308A:
|
|
mov r4, r8
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
movs r5, 0x2
|
|
add r8, r5
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A308A
|
|
mov r7, r8
|
|
ldrh r0, [r7]
|
|
movs r2, 0
|
|
movs r1, 0
|
|
ldr r4, [sp, 0x14]
|
|
strh r0, [r4, 0xE]
|
|
add r8, r5
|
|
ldrb r0, [r6]
|
|
mov r5, r10
|
|
strb r0, [r5]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strb r0, [r5, 0x1]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strb r0, [r5, 0x2]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strb r0, [r5, 0x3]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strb r0, [r5, 0x4]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strb r0, [r5, 0x5]
|
|
adds r6, 0x1
|
|
ldrb r0, [r6]
|
|
strh r0, [r5, 0x6]
|
|
adds r6, 0x2
|
|
ldrb r0, [r6]
|
|
strh r0, [r5, 0x8]
|
|
adds r6, 0x2
|
|
ldrb r0, [r6]
|
|
strh r0, [r5, 0xA]
|
|
adds r6, 0x2
|
|
ldr r7, [sp, 0x18]
|
|
ldr r0, _080A32A0
|
|
add r0, r9
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
lsls r0, 20
|
|
lsrs r5, r0, 16
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0xFF
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r3, 0x1]
|
|
strb r0, [r3, 0x2]
|
|
strb r2, [r3, 0x3]
|
|
movs r4, 0
|
|
ldr r1, [sp, 0x10]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
ldr r3, [sp, 0xC]
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x20]
|
|
cmp r4, r0
|
|
bge _080A3158
|
|
ldr r0, _080A32A4
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
bge _080A3198
|
|
_080A311E:
|
|
adds r0, r5, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8003810
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
movs r2, 0xF
|
|
bl sub_809971C
|
|
adds r0, r5, 0
|
|
adds r0, 0xF
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r7, 0x3C
|
|
adds r4, 0x1
|
|
ldr r2, [sp, 0x10]
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
cmp r4, r0
|
|
bge _080A3158
|
|
ldr r0, _080A32A4
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r4, r0
|
|
blt _080A311E
|
|
_080A3158:
|
|
ldr r0, _080A32A4
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r4, r0
|
|
bge _080A3198
|
|
_080A3164:
|
|
adds r0, r5, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r1, [sp, 0x4]
|
|
bl sub_8003810
|
|
adds r7, r4, 0x1
|
|
movs r4, 0xE
|
|
_080A3176:
|
|
adds r0, r5, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldr r1, [sp, 0x8]
|
|
bl sub_8003810
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A3176
|
|
adds r4, r7, 0
|
|
ldr r0, _080A32A4
|
|
add r0, r9
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r4, r0
|
|
blt _080A3164
|
|
_080A3198:
|
|
movs r0, 0xA6
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
lsls r0, 5
|
|
ldr r5, _080A32A8
|
|
adds r0, r5
|
|
ldr r4, _080A32A0
|
|
add r4, r9
|
|
ldr r5, _080A3298
|
|
add r5, r9
|
|
mov r1, r8
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl sub_80A37C4
|
|
movs r0, 0xA9
|
|
lsls r0, 3
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
movs r1, 0xA5
|
|
lsls r1, 3
|
|
add r1, r9
|
|
ldr r7, [sp, 0x14]
|
|
movs r3, 0x4
|
|
ldrsh r2, [r7, r3]
|
|
subs r2, 0x1
|
|
lsls r2, 5
|
|
add r2, r8
|
|
str r5, [sp]
|
|
adds r3, r4, 0
|
|
bl _UncompressCell
|
|
ldr r0, _080A32AC
|
|
add r0, r9
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
add r3, r9
|
|
adds r1, r6, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A3908
|
|
adds r6, r0, 0
|
|
movs r0, 0x8D
|
|
lsls r0, 3
|
|
add r0, r9
|
|
str r6, [r0]
|
|
ldr r0, _080A32B0
|
|
add r0, r9
|
|
ldr r2, [r0]
|
|
cmp r2, 0
|
|
beq _080A321C
|
|
movs r1, 0xA8
|
|
lsls r1, 3
|
|
add r1, r9
|
|
ldr r0, _080A32B4
|
|
add r0, r9
|
|
movs r4, 0
|
|
ldrsh r3, [r0, r4]
|
|
ldr r4, [r1]
|
|
adds r0, r2, 0
|
|
adds r1, r6, 0
|
|
mov r2, r10
|
|
bl _call_via_r4
|
|
_080A321C:
|
|
mov r2, r9
|
|
movs r4, 0
|
|
ldr r5, [sp, 0x10]
|
|
movs r6, 0x2
|
|
ldrsh r0, [r5, r6]
|
|
cmp r0, 0
|
|
beq _080A32E4
|
|
movs r7, 0
|
|
ldrsh r1, [r5, r7]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
ldr r5, [sp, 0x18]
|
|
adds r3, r5, r0
|
|
lsls r1, 2
|
|
adds r6, r3, r1
|
|
ldr r0, _080A32B8
|
|
add r0, r9
|
|
str r3, [r0]
|
|
movs r0, 0x8E
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _080A32BC
|
|
add r0, r9
|
|
strb r1, [r0]
|
|
ldr r7, [sp, 0x10]
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
cmp r4, r0
|
|
bge _080A32F8
|
|
ldr r1, _080A32A4
|
|
add r1, r9
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r4, r0
|
|
bge _080A32F8
|
|
movs r5, 0
|
|
mov r8, r1
|
|
_080A326C:
|
|
movs r7, 0x2
|
|
ldrsh r0, [r3, r7]
|
|
cmp r0, 0
|
|
ble _080A32C0
|
|
str r6, [r2, 0x4]
|
|
movs r0, 0x2
|
|
ldrsh r1, [r3, r0]
|
|
lsls r0, r1, 4
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r6, r0
|
|
b _080A32C2
|
|
.align 2, 0
|
|
_080A3284: .4byte 0x00000444
|
|
_080A3288: .4byte gUnknown_81188F0
|
|
_080A328C: .4byte gUnknown_9890000
|
|
_080A3290: .4byte 0x00000434
|
|
_080A3294: .4byte 0x00000464
|
|
_080A3298: .4byte 0x00000454
|
|
_080A329C: .4byte 0x0000045a
|
|
_080A32A0: .4byte 0x0000052c
|
|
_080A32A4: .4byte 0x0000052e
|
|
_080A32A8: .4byte 0x06008000
|
|
_080A32AC: .4byte 0x0000054c
|
|
_080A32B0: .4byte 0x00000544
|
|
_080A32B4: .4byte 0x0000053a
|
|
_080A32B8: .4byte 0x0000046c
|
|
_080A32BC: .4byte 0x00000471
|
|
_080A32C0:
|
|
str r5, [r2, 0x4]
|
|
_080A32C2:
|
|
strh r5, [r2]
|
|
strh r5, [r2, 0x2]
|
|
str r5, [r2, 0x8]
|
|
adds r4, 0x1
|
|
adds r2, 0x10
|
|
adds r3, 0x4
|
|
ldr r1, [sp, 0x10]
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r4, r0
|
|
bge _080A32F8
|
|
mov r1, r8
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
cmp r4, r0
|
|
blt _080A326C
|
|
b _080A32F8
|
|
_080A32E4:
|
|
ldr r0, _080A3384
|
|
add r0, r9
|
|
str r4, [r0]
|
|
movs r0, 0x8E
|
|
lsls r0, 3
|
|
add r0, r9
|
|
strb r4, [r0]
|
|
ldr r0, _080A3388
|
|
add r0, r9
|
|
strb r4, [r0]
|
|
_080A32F8:
|
|
cmp r4, 0xD
|
|
bgt _080A330E
|
|
movs r0, 0
|
|
_080A32FE:
|
|
strh r0, [r2]
|
|
strh r0, [r2, 0x2]
|
|
str r0, [r2, 0x8]
|
|
str r0, [r2, 0x4]
|
|
adds r4, 0x1
|
|
adds r2, 0x10
|
|
cmp r4, 0xD
|
|
ble _080A32FE
|
|
_080A330E:
|
|
movs r0, 0xA6
|
|
lsls r0, 3
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
ldr r2, [sp, 0x14]
|
|
movs r3, 0x4
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r1
|
|
lsls r0, 5
|
|
ldr r4, _080A338C
|
|
adds r5, r0, r4
|
|
movs r7, 0
|
|
movs r6, 0
|
|
mov r8, r6
|
|
movs r4, 0xF8
|
|
lsls r4, 2
|
|
add r4, r9
|
|
ldr r0, [sp, 0x1C]
|
|
str r0, [sp, 0x28]
|
|
ldr r3, [sp, 0x20]
|
|
_080A3338:
|
|
ldr r0, [r3]
|
|
cmp r0, 0
|
|
beq _080A3394
|
|
ldr r1, _080A3390
|
|
str r3, [sp, 0x24]
|
|
bl OpenFileAndGetFileDataPtr
|
|
str r0, [r4, 0x8]
|
|
movs r1, 0x1
|
|
strb r1, [r4]
|
|
strb r1, [r4, 0x1]
|
|
ldr r2, [r0, 0x4]
|
|
str r2, [r4, 0xC]
|
|
adds r1, r2, 0x4
|
|
movs r0, 0x2
|
|
ldrsh r6, [r2, r0]
|
|
lsls r6, 2
|
|
adds r0, r1, r6
|
|
str r1, [r4, 0x14]
|
|
str r1, [r4, 0x10]
|
|
str r0, [r4, 0x1C]
|
|
str r0, [r4, 0x18]
|
|
mov r1, r8
|
|
strh r1, [r4, 0x2]
|
|
ldr r0, [r2, 0x4]
|
|
strh r0, [r4, 0x4]
|
|
str r5, [r4, 0x20]
|
|
ldr r2, [sp, 0x28]
|
|
movs r6, 0
|
|
ldrsh r0, [r2, r6]
|
|
lsls r0, 5
|
|
str r0, [r4, 0x24]
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
lsls r0, 5
|
|
adds r5, r0
|
|
ldr r3, [sp, 0x24]
|
|
b _080A33AC
|
|
.align 2, 0
|
|
_080A3384: .4byte 0x0000046c
|
|
_080A3388: .4byte 0x00000471
|
|
_080A338C: .4byte 0x06008000
|
|
_080A3390: .4byte gUnknown_9890000
|
|
_080A3394:
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
strh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x2]
|
|
str r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
str r0, [r4, 0x14]
|
|
str r0, [r4, 0x10]
|
|
str r0, [r4, 0x1C]
|
|
str r0, [r4, 0x18]
|
|
str r0, [r4, 0x20]
|
|
str r0, [r4, 0x24]
|
|
_080A33AC:
|
|
adds r4, 0x28
|
|
ldr r2, [sp, 0x28]
|
|
adds r2, 0x2
|
|
str r2, [sp, 0x28]
|
|
adds r3, 0x4
|
|
adds r7, 0x1
|
|
cmp r7, 0x1
|
|
ble _080A3338
|
|
cmp r7, 0x3
|
|
bgt _080A340E
|
|
_080A33C0:
|
|
lsls r0, r7, 2
|
|
ldr r3, [sp, 0x20]
|
|
adds r0, r3, r0
|
|
ldr r0, [r0]
|
|
adds r4, r7, 0x1
|
|
cmp r0, 0
|
|
beq _080A3408
|
|
ldr r1, _080A3438
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r3, r0, 0
|
|
ldr r0, [r3, 0x4]
|
|
adds r1, r0, 0x4
|
|
movs r6, 0x2
|
|
ldrsh r0, [r0, r6]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
lsls r0, r7, 1
|
|
ldr r7, [sp, 0x1C]
|
|
adds r0, r7, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
lsls r0, 4
|
|
cmp r0, 0
|
|
ble _080A3402
|
|
adds r2, r0, 0
|
|
_080A33F4:
|
|
ldrh r0, [r1]
|
|
strh r0, [r5]
|
|
adds r1, 0x2
|
|
adds r5, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A33F4
|
|
_080A3402:
|
|
adds r0, r3, 0
|
|
bl CloseFile
|
|
_080A3408:
|
|
adds r7, r4, 0
|
|
cmp r7, 0x3
|
|
ble _080A33C0
|
|
_080A340E:
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_80A3BB0
|
|
movs r0, 0x91
|
|
lsls r0, 3
|
|
add r0, r9
|
|
bl sub_80A3EB0
|
|
ldr r1, _080A343C
|
|
add r1, r9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A3428:
|
|
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
|
|
_080A3438: .4byte gUnknown_9890000
|
|
_080A343C: .4byte 0x0000052a
|
|
thumb_func_end sub_80A2FBC
|
|
|
|
thumb_func_start sub_80A3440
|
|
sub_80A3440:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x4C
|
|
mov r9, r0
|
|
str r2, [sp, 0x34]
|
|
str r3, [sp, 0x38]
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
beq _080A3464
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x63
|
|
bne _080A346C
|
|
_080A3464:
|
|
mov r0, r9
|
|
bl sub_80A2E64
|
|
b _080A376C
|
|
_080A346C:
|
|
mov r0, r9
|
|
adds r1, r5, 0
|
|
bl sub_80A2FBC
|
|
mov r0, r9
|
|
bl sub_80A2DD4
|
|
ldr r0, _080A377C
|
|
add r0, r9
|
|
strh r5, [r0]
|
|
lsls r4, r5, 3
|
|
subs r4, r5
|
|
lsls r4, 2
|
|
ldr r0, _080A3780
|
|
adds r4, r0
|
|
ldr r0, [r4]
|
|
ldr r5, _080A3784
|
|
adds r1, r5, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
add r1, r9
|
|
mov r8, r1
|
|
str r0, [r1]
|
|
ldr r0, [r4, 0x4]
|
|
adds r1, r5, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
ldr r6, _080A3788
|
|
add r6, r9
|
|
str r0, [r6]
|
|
ldr r0, [r4, 0x8]
|
|
adds r1, r5, 0
|
|
bl OpenFileAndGetFileDataPtr
|
|
movs r1, 0x87
|
|
lsls r1, 3
|
|
add r1, r9
|
|
str r0, [r1]
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
ldr r2, [r1, 0x4]
|
|
ldr r1, [r6]
|
|
ldr r3, [r1, 0x4]
|
|
ldr r7, [r0, 0x4]
|
|
ldr r1, _080A378C
|
|
add r1, r9
|
|
ldr r4, _080A3790
|
|
add r4, r9
|
|
str r4, [sp, 0x3C]
|
|
movs r0, 0x89
|
|
lsls r0, 3
|
|
add r0, r9
|
|
mov r10, r0
|
|
ldrb r0, [r2]
|
|
strh r0, [r1]
|
|
ldrb r0, [r2, 0x2]
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r3]
|
|
strh r0, [r4]
|
|
adds r3, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r4, 0x2]
|
|
adds r3, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r4, 0x4]
|
|
adds r3, 0x2
|
|
add r5, sp, 0x2C
|
|
ldr r1, _080A3794
|
|
add r1, r9
|
|
str r1, [sp, 0x48]
|
|
movs r2, 0x3
|
|
_080A34FE:
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
adds r3, 0x2
|
|
adds r1, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A34FE
|
|
ldrh r0, [r3]
|
|
movs r2, 0
|
|
mov r8, r2
|
|
ldr r4, [sp, 0x3C]
|
|
strh r0, [r4, 0xE]
|
|
ldrb r0, [r7]
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x1]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x2]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x3]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x4]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strb r0, [r1, 0x5]
|
|
adds r7, 0x1
|
|
ldrb r0, [r7]
|
|
strh r0, [r1, 0x6]
|
|
adds r7, 0x2
|
|
ldrb r0, [r7]
|
|
strh r0, [r1, 0x8]
|
|
adds r7, 0x2
|
|
ldrb r0, [r7]
|
|
strh r0, [r1, 0xA]
|
|
adds r7, 0x2
|
|
ldr r4, _080A3798
|
|
add r4, r9
|
|
ldr r0, [r4]
|
|
str r0, [sp, 0x2C]
|
|
str r2, [r5, 0x4]
|
|
ldr r2, _080A379C
|
|
add r2, r9
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
add r3, r9
|
|
adds r0, r5, 0
|
|
adds r1, r7, 0
|
|
bl sub_80A3908
|
|
adds r7, r0, 0
|
|
movs r0, 0x8D
|
|
lsls r0, 3
|
|
add r0, r9
|
|
str r7, [r0]
|
|
ldr r5, _080A37A0
|
|
add r5, r9
|
|
movs r6, 0x88
|
|
lsls r6, 3
|
|
add r6, r9
|
|
ldr r2, _080A37A4
|
|
movs r0, 0xA9
|
|
lsls r0, 3
|
|
add r0, r9
|
|
ldr r3, [r0]
|
|
ldr r0, _080A37A8
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x34]
|
|
str r0, [sp, 0x4]
|
|
ldr r1, [sp, 0x38]
|
|
str r1, [sp, 0x8]
|
|
movs r0, 0x40
|
|
str r0, [sp, 0xC]
|
|
mov r1, r10
|
|
ldrb r0, [r1, 0x5]
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [r4]
|
|
str r0, [sp, 0x14]
|
|
mov r0, r8
|
|
str r0, [sp, 0x18]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80ADD9C
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
ldr r0, [r6]
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
movs r2, 0xA8
|
|
lsls r2, 3
|
|
add r2, r9
|
|
ldr r0, [r4]
|
|
ldr r1, _080A37AC
|
|
add r1, r9
|
|
movs r4, 0
|
|
ldrsh r3, [r1, r4]
|
|
ldr r4, [r2]
|
|
adds r1, r7, 0
|
|
mov r2, r10
|
|
bl _call_via_r4
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ldr r1, [sp, 0x3C]
|
|
strh r0, [r1, 0x4]
|
|
ldr r1, [sp, 0x48]
|
|
movs r2, 0
|
|
adds r0, r1, 0x6
|
|
_080A35EA:
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, r1
|
|
bge _080A35EA
|
|
movs r2, 0
|
|
movs r0, 0xFA
|
|
ldr r4, [sp, 0x3C]
|
|
strh r0, [r4, 0xE]
|
|
ldr r1, _080A378C
|
|
add r1, r9
|
|
movs r0, 0xC
|
|
strh r0, [r1]
|
|
ldr r0, _080A37B0
|
|
add r0, r9
|
|
strh r2, [r0]
|
|
ldr r0, _080A37A0
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A36E6
|
|
ldr r4, [r0, 0x4]
|
|
movs r7, 0
|
|
str r7, [sp, 0x1C]
|
|
add r1, sp, 0x20
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
strb r0, [r1, 0x1]
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0
|
|
strb r0, [r1, 0x3]
|
|
movs r5, 0
|
|
ldr r0, _080A37B4
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
bge _080A36E6
|
|
mov r2, sp
|
|
adds r2, 0x28
|
|
str r2, [sp, 0x40]
|
|
mov r0, sp
|
|
adds r0, 0x29
|
|
str r0, [sp, 0x44]
|
|
movs r1, 0x2A
|
|
add r1, sp
|
|
mov r10, r1
|
|
movs r2, 0x2B
|
|
add r2, sp
|
|
mov r8, r2
|
|
_080A3650:
|
|
adds r0, r7, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
ldr r1, [sp, 0x1C]
|
|
bl sub_8003810
|
|
adds r4, 0x4
|
|
adds r6, r5, 0x1
|
|
movs r5, 0xE
|
|
_080A3664:
|
|
ldrb r0, [r4]
|
|
ldr r1, [sp, 0x40]
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, 0x1]
|
|
ldr r2, [sp, 0x44]
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, 0x2]
|
|
mov r1, r10
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, 0x3]
|
|
mov r2, r8
|
|
strb r0, [r2]
|
|
ldr r1, [sp, 0x28]
|
|
str r1, [sp, 0x24]
|
|
adds r0, r7, 0
|
|
adds r2, r0, 0x1
|
|
lsls r2, 16
|
|
lsrs r7, r2, 16
|
|
bl sub_8003810
|
|
adds r4, 0x4
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A3664
|
|
adds r5, r6, 0
|
|
cmp r5, 0xB
|
|
bgt _080A36A6
|
|
ldr r0, _080A37B4
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
blt _080A3650
|
|
_080A36A6:
|
|
ldr r0, _080A37B4
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r5, r0
|
|
bge _080A36E6
|
|
_080A36B2:
|
|
adds r0, r7, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
ldr r1, [sp, 0x1C]
|
|
bl sub_8003810
|
|
adds r6, r5, 0x1
|
|
movs r5, 0xE
|
|
_080A36C4:
|
|
adds r0, r7, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r7, r1, 16
|
|
ldr r1, [sp, 0x20]
|
|
bl sub_8003810
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A36C4
|
|
adds r5, r6, 0
|
|
ldr r0, _080A37B4
|
|
add r0, r9
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
cmp r5, r0
|
|
blt _080A36B2
|
|
_080A36E6:
|
|
mov r4, r9
|
|
movs r0, 0x88
|
|
lsls r0, 3
|
|
add r0, r9
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
beq _080A36FE
|
|
mov r0, r9
|
|
adds r0, 0xE0
|
|
movs r2, 0x20
|
|
bl sub_8004AA4
|
|
_080A36FE:
|
|
ldr r0, _080A37B8
|
|
add r0, r9
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
movs r0, 0x8E
|
|
lsls r0, 3
|
|
add r0, r9
|
|
strb r1, [r0]
|
|
ldr r0, _080A37BC
|
|
add r0, r9
|
|
strb r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
_080A3718:
|
|
strh r0, [r4]
|
|
strh r0, [r4, 0x2]
|
|
str r0, [r4, 0x8]
|
|
str r0, [r4, 0x4]
|
|
subs r1, 0x1
|
|
adds r4, 0x10
|
|
cmp r1, 0
|
|
bge _080A3718
|
|
movs r1, 0
|
|
movs r0, 0xF8
|
|
lsls r0, 2
|
|
add r0, r9
|
|
movs r2, 0x1
|
|
_080A3732:
|
|
strb r1, [r0]
|
|
strb r1, [r0, 0x1]
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x2]
|
|
str r1, [r0, 0x8]
|
|
str r1, [r0, 0xC]
|
|
str r1, [r0, 0x14]
|
|
str r1, [r0, 0x10]
|
|
str r1, [r0, 0x1C]
|
|
str r1, [r0, 0x18]
|
|
str r1, [r0, 0x20]
|
|
str r1, [r0, 0x24]
|
|
adds r0, 0x28
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A3732
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_80A3BB0
|
|
movs r0, 0x91
|
|
lsls r0, 3
|
|
add r0, r9
|
|
bl sub_80A3EB0
|
|
ldr r1, _080A37C0
|
|
add r1, r9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A376C:
|
|
add sp, 0x4C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A377C: .4byte 0x00000444
|
|
_080A3780: .4byte gUnknown_81188F0
|
|
_080A3784: .4byte gUnknown_9890000
|
|
_080A3788: .4byte 0x00000434
|
|
_080A378C: .4byte 0x00000464
|
|
_080A3790: .4byte 0x00000454
|
|
_080A3794: .4byte 0x0000045a
|
|
_080A3798: .4byte 0x00000544
|
|
_080A379C: .4byte 0x0000052c
|
|
_080A37A0: .4byte 0x0000043c
|
|
_080A37A4: .4byte 0x06008000
|
|
_080A37A8: .4byte 0x0000054c
|
|
_080A37AC: .4byte 0x0000053a
|
|
_080A37B0: .4byte 0x00000466
|
|
_080A37B4: .4byte 0x0000052e
|
|
_080A37B8: .4byte 0x0000046c
|
|
_080A37BC: .4byte 0x00000471
|
|
_080A37C0: .4byte 0x0000052a
|
|
thumb_func_end sub_80A3440
|
|
|
|
thumb_func_start sub_80A37C4
|
|
sub_80A37C4:
|
|
push {r4-r6,lr}
|
|
adds r6, r2, 0
|
|
adds r4, r1, 0
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
_080A37D0:
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A37D0
|
|
movs r0, 0x1
|
|
movs r1, 0x4
|
|
ldrsh r3, [r3, r1]
|
|
cmp r0, r3
|
|
bge _080A37FE
|
|
adds r5, r3, 0
|
|
_080A37E6:
|
|
adds r3, r0, 0x1
|
|
movs r1, 0xF
|
|
_080A37EA:
|
|
ldrh r0, [r4]
|
|
strh r0, [r2]
|
|
adds r4, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A37EA
|
|
adds r0, r3, 0
|
|
cmp r0, r5
|
|
blt _080A37E6
|
|
_080A37FE:
|
|
movs r3, 0x6
|
|
ldrsh r1, [r6, r3]
|
|
cmp r0, r1
|
|
bge _080A3820
|
|
ldr r3, _080A3828
|
|
adds r4, r3, 0
|
|
adds r5, r1, 0
|
|
_080A380C:
|
|
adds r3, r0, 0x1
|
|
movs r1, 0xF
|
|
_080A3810:
|
|
strh r4, [r2]
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A3810
|
|
adds r0, r3, 0
|
|
cmp r0, r5
|
|
blt _080A380C
|
|
_080A3820:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3828: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A37C4
|
|
|
|
thumb_func_start _UncompressCell
|
|
_UncompressCell:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r1, 0
|
|
mov r8, r3
|
|
ldr r3, [sp, 0x18]
|
|
adds r4, r2, 0
|
|
adds r2, r0, 0
|
|
mov r1, r8
|
|
ldrh r0, [r1]
|
|
lsls r0, 12
|
|
ldrh r1, [r1, 0x4]
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r1, [r3]
|
|
ldr r0, _080A385C
|
|
cmp r1, r0
|
|
bne _080A3860
|
|
movs r0, 0x1
|
|
strh r0, [r5]
|
|
movs r5, 0x4
|
|
b _080A3890
|
|
.align 2, 0
|
|
_080A385C: .4byte 0x00020002
|
|
_080A3860:
|
|
ldr r0, _080A3870
|
|
cmp r1, r0
|
|
bne _080A3874
|
|
movs r0, 0x2
|
|
strh r0, [r5]
|
|
movs r5, 0x9
|
|
b _080A3890
|
|
.align 2, 0
|
|
_080A3870: .4byte 0x00030003
|
|
_080A3874:
|
|
movs r0, 0
|
|
strh r0, [r5]
|
|
ldr r0, _080A3888
|
|
ldr r1, _080A388C
|
|
movs r4, 0
|
|
ldrsh r2, [r3, r4]
|
|
movs r6, 0x2
|
|
ldrsh r3, [r3, r6]
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A3888: .4byte gUnknown_81172E8
|
|
_080A388C: .4byte gUnknown_81172F4
|
|
_080A3890:
|
|
movs r0, 0
|
|
movs r1, 0x8
|
|
_080A3894:
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A3894
|
|
movs r0, 0x1
|
|
movs r7, 0xE
|
|
ldrsh r1, [r3, r7]
|
|
cmp r0, r1
|
|
bge _080A38DC
|
|
mov r12, r1
|
|
_080A38AA:
|
|
movs r1, 0
|
|
adds r3, r0, 0x1
|
|
cmp r1, r5
|
|
bge _080A38C6
|
|
adds r1, r5, 0
|
|
_080A38B4:
|
|
ldrh r0, [r4]
|
|
adds r0, r6, r0
|
|
strh r0, [r2]
|
|
adds r4, 0x2
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080A38B4
|
|
adds r1, r5, 0
|
|
_080A38C6:
|
|
cmp r1, 0x8
|
|
bgt _080A38D6
|
|
movs r0, 0
|
|
_080A38CC:
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r1, 0x1
|
|
cmp r1, 0x8
|
|
ble _080A38CC
|
|
_080A38D6:
|
|
adds r0, r3, 0
|
|
cmp r0, r12
|
|
blt _080A38AA
|
|
_080A38DC:
|
|
mov r1, r8
|
|
movs r4, 0x8
|
|
ldrsh r3, [r1, r4]
|
|
cmp r0, r3
|
|
bge _080A38FE
|
|
movs r4, 0
|
|
adds r5, r3, 0
|
|
_080A38EA:
|
|
adds r3, r0, 0x1
|
|
movs r1, 0x8
|
|
_080A38EE:
|
|
strh r4, [r2]
|
|
adds r2, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _080A38EE
|
|
adds r0, r3, 0
|
|
cmp r0, r5
|
|
blt _080A38EA
|
|
_080A38FE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end _UncompressCell
|
|
|
|
thumb_func_start sub_80A3908
|
|
sub_80A3908:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r0, [sp]
|
|
str r2, [sp, 0x4]
|
|
mov r9, r3
|
|
adds r6, r1, 0
|
|
movs r2, 0
|
|
ldr r1, [sp, 0x4]
|
|
movs r3, 0xC
|
|
ldrsh r0, [r1, r3]
|
|
cmp r2, r0
|
|
blt _080A392A
|
|
b _080A3B6C
|
|
_080A392A:
|
|
lsls r0, r2, 2
|
|
ldr r4, [sp]
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r1, 0
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x8]
|
|
mov r5, r9
|
|
ldrb r5, [r5, 0x5]
|
|
cmp r1, r5
|
|
blt _080A3944
|
|
b _080A3B2A
|
|
_080A3944:
|
|
ldr r0, _080A39A4
|
|
mov r10, r0
|
|
_080A3948:
|
|
movs r2, 0
|
|
mov r8, r2
|
|
cmp r1, 0
|
|
bne _080A3A18
|
|
movs r3, 0x1
|
|
str r3, [sp, 0xC]
|
|
mov r4, r9
|
|
ldrb r4, [r4, 0x4]
|
|
cmp r1, r4
|
|
blt _080A395E
|
|
b _080A3B04
|
|
_080A395E:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0xBF
|
|
ble _080A39A8
|
|
adds r2, r1, 0
|
|
subs r2, 0xBF
|
|
cmp r1, 0xBF
|
|
ble _080A39A0
|
|
ldr r5, _080A39A4
|
|
adds r4, r5, 0
|
|
adds r3, r2, 0
|
|
_080A3974:
|
|
ldrb r1, [r6]
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 8
|
|
orrs r1, r0
|
|
ldrb r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
orrs r1, r0
|
|
adds r6, 0x3
|
|
adds r0, r1, 0
|
|
ands r0, r4
|
|
mov r5, r12
|
|
strh r0, [r5]
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
asrs r1, 12
|
|
ands r1, r4
|
|
mov r5, r12
|
|
strh r1, [r5]
|
|
add r12, r0
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A3974
|
|
_080A39A0:
|
|
lsls r0, r2, 1
|
|
b _080A3A0C
|
|
.align 2, 0
|
|
_080A39A4: .4byte 0x00000fff
|
|
_080A39A8:
|
|
cmp r1, 0x7F
|
|
ble _080A39EA
|
|
ldrb r2, [r6]
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
adds r6, 0x3
|
|
adds r4, r1, 0
|
|
subs r4, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A39E6
|
|
adds r0, r2, 0
|
|
mov r1, r10
|
|
ands r0, r1
|
|
asrs r1, r2, 12
|
|
mov r2, r10
|
|
ands r1, r2
|
|
adds r3, r4, 0
|
|
_080A39D2:
|
|
mov r5, r12
|
|
strh r0, [r5]
|
|
movs r2, 0x2
|
|
add r12, r2
|
|
mov r5, r12
|
|
strh r1, [r5]
|
|
add r12, r2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A39D2
|
|
_080A39E6:
|
|
lsls r0, r4, 1
|
|
b _080A3A0C
|
|
_080A39EA:
|
|
movs r3, 0
|
|
adds r0, r1, 0x1
|
|
cmp r3, r1
|
|
bgt _080A3A0A
|
|
movs r1, 0
|
|
adds r3, r0, 0
|
|
_080A39F6:
|
|
mov r2, r12
|
|
strh r1, [r2]
|
|
movs r4, 0x2
|
|
add r12, r4
|
|
mov r5, r12
|
|
strh r1, [r5]
|
|
add r12, r4
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A39F6
|
|
_080A3A0A:
|
|
lsls r0, 1
|
|
_080A3A0C:
|
|
add r8, r0
|
|
mov r0, r9
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r8, r0
|
|
blt _080A395E
|
|
b _080A3B04
|
|
_080A3A18:
|
|
mov r4, r12
|
|
subs r4, 0x80
|
|
adds r1, 0x1
|
|
str r1, [sp, 0xC]
|
|
mov r1, r9
|
|
ldrb r1, [r1, 0x4]
|
|
cmp r8, r1
|
|
bge _080A3B04
|
|
_080A3A28:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0xBF
|
|
ble _080A3A80
|
|
adds r5, r1, 0
|
|
subs r5, 0xBF
|
|
cmp r1, 0xBF
|
|
ble _080A3A78
|
|
ldr r2, _080A3A7C
|
|
adds r7, r2, 0
|
|
adds r3, r5, 0
|
|
_080A3A3E:
|
|
ldrb r2, [r6]
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
adds r6, 0x3
|
|
adds r0, r2, 0
|
|
ands r0, r7
|
|
ldrh r1, [r4]
|
|
eors r0, r1
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
asrs r2, 12
|
|
ands r2, r7
|
|
ldrh r0, [r4]
|
|
eors r2, r0
|
|
mov r1, r12
|
|
strh r2, [r1]
|
|
adds r4, 0x2
|
|
movs r2, 0x2
|
|
add r12, r2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A3A3E
|
|
_080A3A78:
|
|
lsls r0, r5, 1
|
|
b _080A3AFA
|
|
.align 2, 0
|
|
_080A3A7C: .4byte 0x00000fff
|
|
_080A3A80:
|
|
cmp r1, 0x7F
|
|
ble _080A3AD2
|
|
ldrb r2, [r6]
|
|
ldrb r0, [r6, 0x1]
|
|
lsls r0, 8
|
|
orrs r2, r0
|
|
ldrb r0, [r6, 0x2]
|
|
lsls r0, 16
|
|
orrs r2, r0
|
|
adds r6, 0x3
|
|
adds r7, r1, 0
|
|
subs r7, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A3ACE
|
|
adds r5, r2, 0
|
|
mov r3, r10
|
|
ands r5, r3
|
|
asrs r2, 12
|
|
ands r2, r3
|
|
adds r3, r7, 0
|
|
_080A3AA8:
|
|
ldrh r1, [r4]
|
|
adds r0, r5, 0
|
|
eors r0, r1
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
ldrh r1, [r4]
|
|
adds r0, r2, 0
|
|
eors r0, r1
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A3AA8
|
|
_080A3ACE:
|
|
lsls r0, r7, 1
|
|
b _080A3AFA
|
|
_080A3AD2:
|
|
movs r3, 0
|
|
adds r2, r1, 0x1
|
|
cmp r3, r1
|
|
bgt _080A3AF8
|
|
adds r3, r2, 0
|
|
_080A3ADC:
|
|
ldrh r0, [r4]
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
movs r5, 0x2
|
|
add r12, r5
|
|
ldrh r0, [r4]
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
add r12, r5
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A3ADC
|
|
_080A3AF8:
|
|
lsls r0, r2, 1
|
|
_080A3AFA:
|
|
add r8, r0
|
|
mov r2, r9
|
|
ldrb r2, [r2, 0x4]
|
|
cmp r8, r2
|
|
blt _080A3A28
|
|
_080A3B04:
|
|
mov r3, r8
|
|
cmp r3, 0x3F
|
|
bgt _080A3B1E
|
|
movs r0, 0
|
|
_080A3B0C:
|
|
mov r4, r12
|
|
strh r0, [r4]
|
|
movs r5, 0x2
|
|
add r12, r5
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
mov r2, r8
|
|
cmp r2, 0x3F
|
|
ble _080A3B0C
|
|
_080A3B1E:
|
|
ldr r1, [sp, 0xC]
|
|
mov r3, r9
|
|
ldrb r3, [r3, 0x5]
|
|
cmp r1, r3
|
|
bge _080A3B2A
|
|
b _080A3948
|
|
_080A3B2A:
|
|
ldr r4, [sp, 0x4]
|
|
movs r5, 0x10
|
|
ldrsh r0, [r4, r5]
|
|
cmp r1, r0
|
|
bge _080A3B5E
|
|
movs r2, 0
|
|
_080A3B36:
|
|
adds r1, 0x1
|
|
str r1, [sp, 0xC]
|
|
movs r0, 0x3F
|
|
mov r8, r0
|
|
_080A3B3E:
|
|
mov r1, r12
|
|
strh r2, [r1]
|
|
movs r3, 0x2
|
|
add r12, r3
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
add r8, r4
|
|
mov r5, r8
|
|
cmp r5, 0
|
|
bge _080A3B3E
|
|
ldr r1, [sp, 0xC]
|
|
ldr r3, [sp, 0x4]
|
|
movs r4, 0x10
|
|
ldrsh r0, [r3, r4]
|
|
cmp r1, r0
|
|
blt _080A3B36
|
|
_080A3B5E:
|
|
ldr r2, [sp, 0x8]
|
|
ldr r5, [sp, 0x4]
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r2, r0
|
|
bge _080A3B6C
|
|
b _080A392A
|
|
_080A3B6C:
|
|
adds r0, r6, 0
|
|
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_80A3908
|
|
|
|
thumb_func_start sub_80A3B80
|
|
sub_80A3B80:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r4, _080A3BA8
|
|
adds r0, r3, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A3BA2
|
|
adds r4, 0x4
|
|
adds r0, r3, r4
|
|
strb r1, [r0]
|
|
ldr r1, _080A3BAC
|
|
adds r0, r3, r1
|
|
strb r2, [r0]
|
|
_080A3BA2:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3BA8: .4byte 0x0000046c
|
|
_080A3BAC: .4byte 0x00000471
|
|
thumb_func_end sub_80A3B80
|
|
|
|
thumb_func_start sub_80A3BB0
|
|
sub_80A3BB0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r6, r1, 0
|
|
movs r0, 0x91
|
|
lsls r0, 3
|
|
adds r0, r5
|
|
mov r8, r0
|
|
cmp r1, 0
|
|
blt _080A3BD4
|
|
cmp r1, 0x1
|
|
ble _080A3BD4
|
|
cmp r1, 0x4
|
|
ble _080A3C00
|
|
_080A3BD4:
|
|
ldr r1, _080A3BFC
|
|
adds r0, r5, r1
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
movs r2, 0xA7
|
|
lsls r2, 3
|
|
adds r0, r5, r2
|
|
movs r1, 0
|
|
ldrsh r3, [r0, r1]
|
|
movs r0, 0
|
|
cmp r6, 0x1
|
|
bne _080A3BEE
|
|
movs r0, 0x1
|
|
_080A3BEE:
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_80A3D40
|
|
b _080A3C48
|
|
.align 2, 0
|
|
_080A3BFC: .4byte 0x00000474
|
|
_080A3C00:
|
|
ldr r2, _080A3C88
|
|
adds r0, r5, r2
|
|
movs r7, 0x2
|
|
str r7, [r0]
|
|
movs r0, 0xA7
|
|
lsls r0, 3
|
|
adds r4, r5, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
subs r3, r0, 0x1
|
|
movs r0, 0
|
|
cmp r1, 0x4
|
|
bne _080A3C1C
|
|
movs r0, 0x1
|
|
_080A3C1C:
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
bl sub_80A3D40
|
|
movs r1, 0x9B
|
|
lsls r1, 3
|
|
adds r0, r5, r1
|
|
movs r1, 0
|
|
ldrsh r2, [r4, r1]
|
|
subs r2, 0x1
|
|
adds r3, r7, 0
|
|
eors r3, r6
|
|
negs r1, r3
|
|
orrs r1, r3
|
|
lsrs r1, 31
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
movs r3, 0x1
|
|
bl sub_80A3D40
|
|
_080A3C48:
|
|
movs r6, 0
|
|
ldr r2, _080A3C88
|
|
adds r0, r5, r2
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
bge _080A3CF0
|
|
movs r0, 0x8F
|
|
lsls r0, 3
|
|
adds r7, r5, r0
|
|
mov r4, r8
|
|
_080A3C5C:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
ldr r2, _080A3C8C
|
|
bl sub_80A456C
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080A3C72
|
|
cmp r0, 0x2
|
|
beq _080A3CB4
|
|
_080A3C72:
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0x1
|
|
beq _080A3C94
|
|
cmp r0, 0x1
|
|
ble _080A3C82
|
|
cmp r0, 0x2
|
|
beq _080A3C9C
|
|
_080A3C82:
|
|
ldr r0, _080A3C90
|
|
b _080A3CD6
|
|
.align 2, 0
|
|
_080A3C88: .4byte 0x00000474
|
|
_080A3C8C: .4byte gUnknown_8117314
|
|
_080A3C90: .4byte sub_80A3EBC
|
|
_080A3C94:
|
|
ldr r0, _080A3C98
|
|
b _080A3CD6
|
|
.align 2, 0
|
|
_080A3C98: .4byte sub_80A3EF4
|
|
_080A3C9C:
|
|
ldrb r0, [r4, 0x6]
|
|
ldr r1, _080A3CAC
|
|
cmp r0, 0
|
|
beq _080A3CA6
|
|
ldr r1, _080A3CB0
|
|
_080A3CA6:
|
|
str r1, [r4, 0x18]
|
|
b _080A3CD8
|
|
.align 2, 0
|
|
_080A3CAC: .4byte sub_80A4088
|
|
_080A3CB0: .4byte sub_80A41C4
|
|
_080A3CB4:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x1
|
|
beq _080A3CCC
|
|
cmp r0, 0x1
|
|
ble _080A3CC4
|
|
cmp r0, 0x2
|
|
beq _080A3CD4
|
|
_080A3CC4:
|
|
ldr r0, _080A3CC8
|
|
b _080A3CD6
|
|
.align 2, 0
|
|
_080A3CC8: .4byte sub_80A3ED4
|
|
_080A3CCC:
|
|
ldr r0, _080A3CD0
|
|
b _080A3CD6
|
|
.align 2, 0
|
|
_080A3CD0: .4byte sub_80A3F94
|
|
_080A3CD4:
|
|
ldr r0, _080A3D34
|
|
_080A3CD6:
|
|
str r0, [r4, 0x18]
|
|
_080A3CD8:
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80A3E14
|
|
adds r7, 0x8
|
|
adds r4, 0x50
|
|
adds r6, 0x1
|
|
ldr r2, _080A3D38
|
|
adds r0, r5, r2
|
|
ldr r0, [r0]
|
|
cmp r6, r0
|
|
blt _080A3C5C
|
|
_080A3CF0:
|
|
ldr r1, _080A3D38
|
|
adds r0, r5, r1
|
|
ldr r6, [r0]
|
|
cmp r6, 0x1
|
|
bgt _080A3D26
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r0, 4
|
|
mov r2, r8
|
|
adds r4, r0, r2
|
|
_080A3D04:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
ldr r2, _080A3D3C
|
|
bl sub_80A456C
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_80A3D40
|
|
adds r4, 0x50
|
|
adds r6, 0x1
|
|
cmp r6, 0x1
|
|
ble _080A3D04
|
|
_080A3D26:
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3D34: .4byte sub_80A4358
|
|
_080A3D38: .4byte 0x00000474
|
|
_080A3D3C: .4byte gUnknown_8117314
|
|
thumb_func_end sub_80A3BB0
|
|
|
|
thumb_func_start sub_80A3D40
|
|
sub_80A3D40:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r3
|
|
ldr r1, [sp, 0x1C]
|
|
movs r3, 0xA5
|
|
lsls r3, 3
|
|
adds r0, r5, r3
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
strh r2, [r4, 0x2]
|
|
mov r7, r8
|
|
strh r7, [r4, 0x4]
|
|
strb r1, [r4, 0x6]
|
|
ldr r1, _080A3E10
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
str r0, [r4, 0x8]
|
|
subs r3, 0xDB
|
|
adds r0, r5, r3
|
|
ldrb r0, [r0]
|
|
str r0, [r4, 0xC]
|
|
movs r7, 0x89
|
|
lsls r7, 3
|
|
adds r0, r5, r7
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
str r0, [r4, 0x10]
|
|
subs r1, 0x3
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
str r0, [r4, 0x14]
|
|
adds r3, 0xFB
|
|
adds r0, r5, r3
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0x1C]
|
|
movs r3, 0
|
|
cmp r3, r8
|
|
bge _080A3DE0
|
|
adds r7, 0xF0
|
|
adds r6, r5, r7
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r2, r0
|
|
bge _080A3DE0
|
|
lsls r0, r2, 2
|
|
adds r7, 0x14
|
|
adds r0, r7
|
|
adds r1, r0, r5
|
|
movs r0, 0x20
|
|
adds r0, r4
|
|
mov r12, r0
|
|
movs r7, 0x28
|
|
adds r7, r4
|
|
mov r9, r7
|
|
_080A3DB6:
|
|
ldr r0, [r1]
|
|
mov r7, r12
|
|
adds r7, 0x4
|
|
mov r12, r7
|
|
subs r7, 0x4
|
|
stm r7!, {r0}
|
|
ldr r0, [r1, 0x8]
|
|
mov r7, r9
|
|
adds r7, 0x4
|
|
mov r9, r7
|
|
subs r7, 0x4
|
|
stm r7!, {r0}
|
|
adds r3, 0x1
|
|
adds r1, 0x4
|
|
adds r2, 0x1
|
|
cmp r3, r8
|
|
bge _080A3DE0
|
|
movs r7, 0
|
|
ldrsh r0, [r6, r7]
|
|
cmp r2, r0
|
|
blt _080A3DB6
|
|
_080A3DE0:
|
|
cmp r3, 0x1
|
|
bgt _080A3DF8
|
|
movs r1, 0
|
|
lsls r0, r3, 2
|
|
adds r0, 0x20
|
|
adds r0, r4
|
|
_080A3DEC:
|
|
str r1, [r0]
|
|
str r1, [r0, 0x8]
|
|
adds r0, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x1
|
|
ble _080A3DEC
|
|
_080A3DF8:
|
|
movs r0, 0x8F
|
|
lsls r0, 3
|
|
adds r1, r5, r0
|
|
adds r0, r4, 0
|
|
bl sub_80A3E14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A3E10: .4byte 0x0000044c
|
|
thumb_func_end sub_80A3D40
|
|
|
|
thumb_func_start sub_80A3E14
|
|
sub_80A3E14:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
ldr r1, [r0]
|
|
mov r8, r1
|
|
str r1, [r4, 0x30]
|
|
cmp r1, 0
|
|
bge _080A3E2A
|
|
adds r1, 0x7
|
|
_080A3E2A:
|
|
asrs r6, r1, 3
|
|
str r6, [r4, 0x38]
|
|
ldr r7, [r0, 0x4]
|
|
str r7, [r4, 0x34]
|
|
adds r0, r7, 0
|
|
cmp r7, 0
|
|
bge _080A3E3A
|
|
adds r0, r7, 0x7
|
|
_080A3E3A:
|
|
asrs r5, r0, 3
|
|
str r5, [r4, 0x3C]
|
|
movs r3, 0
|
|
ldrsh r2, [r4, r3]
|
|
cmp r2, 0x1
|
|
beq _080A3E60
|
|
cmp r2, 0x1
|
|
bgt _080A3E50
|
|
cmp r2, 0
|
|
beq _080A3E56
|
|
b _080A3EA4
|
|
_080A3E50:
|
|
cmp r2, 0x2
|
|
beq _080A3E7E
|
|
b _080A3EA4
|
|
_080A3E56:
|
|
str r2, [r4, 0x40]
|
|
str r2, [r4, 0x44]
|
|
str r2, [r4, 0x48]
|
|
str r2, [r4, 0x4C]
|
|
b _080A3EA4
|
|
_080A3E60:
|
|
lsrs r1, 31
|
|
adds r1, r6, r1
|
|
asrs r1, 1
|
|
str r1, [r4, 0x40]
|
|
lsrs r0, 31
|
|
adds r0, r5, r0
|
|
asrs r0, 1
|
|
str r0, [r4, 0x44]
|
|
lsls r1, 4
|
|
mov r2, r8
|
|
subs r1, r2, r1
|
|
str r1, [r4, 0x48]
|
|
lsls r0, 4
|
|
subs r0, r7, r0
|
|
b _080A3EA2
|
|
_080A3E7E:
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
str r0, [r4, 0x40]
|
|
adds r0, r5, 0
|
|
movs r1, 0x3
|
|
bl __divsi3
|
|
str r0, [r4, 0x44]
|
|
lsls r0, r6, 3
|
|
mov r3, r8
|
|
subs r0, r3, r0
|
|
str r0, [r4, 0x48]
|
|
adds r0, r7, 0
|
|
movs r1, 0x18
|
|
bl __modsi3
|
|
_080A3EA2:
|
|
str r0, [r4, 0x4C]
|
|
_080A3EA4:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3E14
|
|
|
|
thumb_func_start sub_80A3EB0
|
|
sub_80A3EB0:
|
|
push {lr}
|
|
ldr r1, [r0, 0x18]
|
|
bl _call_via_r1
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3EB0
|
|
|
|
thumb_func_start sub_80A3EBC
|
|
sub_80A3EBC:
|
|
push {lr}
|
|
ldr r0, [r0, 0x28]
|
|
movs r2, 0
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
_080A3EC6:
|
|
strh r2, [r0]
|
|
adds r0, 0x2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080A3EC6
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3EBC
|
|
|
|
thumb_func_start sub_80A3ED4
|
|
sub_80A3ED4:
|
|
push {lr}
|
|
ldr r1, [r0, 0x28]
|
|
ldr r0, [r0, 0x2C]
|
|
movs r3, 0
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
_080A3EE0:
|
|
strh r3, [r1]
|
|
adds r1, 0x2
|
|
strh r3, [r0]
|
|
adds r0, 0x2
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A3EE0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3ED4
|
|
|
|
thumb_func_start sub_80A3EF4
|
|
sub_80A3EF4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
ldr r1, [r0, 0x44]
|
|
lsls r1, 6
|
|
ldr r2, [r0, 0x40]
|
|
adds r1, r2
|
|
lsls r1, 1
|
|
ldr r2, [r0, 0x20]
|
|
adds r2, r1
|
|
movs r1, 0
|
|
mov r12, r1
|
|
ldr r3, [r0, 0x28]
|
|
str r3, [sp, 0xC]
|
|
ldr r0, [r0, 0x1C]
|
|
mov r10, r0
|
|
mov r0, sp
|
|
str r0, [sp, 0x8]
|
|
_080A3F1E:
|
|
adds r5, r2, 0
|
|
movs r2, 0x80
|
|
adds r2, r5
|
|
mov r9, r2
|
|
adds r1, 0x1
|
|
mov r8, r1
|
|
ldr r1, [sp, 0x8]
|
|
mov r3, r12
|
|
lsls r0, r3, 1
|
|
ldr r2, [sp, 0xC]
|
|
adds r0, r2
|
|
movs r2, 0x1
|
|
_080A3F36:
|
|
stm r1!, {r0}
|
|
adds r0, 0x40
|
|
movs r3, 0x20
|
|
add r12, r3
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A3F36
|
|
movs r4, 0
|
|
mov r7, sp
|
|
_080A3F48:
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r10
|
|
adds r3, r1, r0
|
|
adds r5, 0x2
|
|
adds r6, r4, 0x1
|
|
adds r4, r7, 0
|
|
movs r2, 0x1
|
|
_080A3F5C:
|
|
ldr r0, [r4]
|
|
ldrh r1, [r3]
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, 0x2
|
|
ldrh r1, [r3]
|
|
strh r1, [r0]
|
|
adds r3, 0x2
|
|
adds r0, 0x2
|
|
stm r4!, {r0}
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _080A3F5C
|
|
adds r4, r6, 0
|
|
cmp r4, 0xF
|
|
ble _080A3F48
|
|
mov r2, r9
|
|
mov r1, r8
|
|
cmp r1, 0xA
|
|
ble _080A3F1E
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3EF4
|
|
|
|
thumb_func_start sub_80A3F94
|
|
sub_80A3F94:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x34
|
|
ldr r1, [r0, 0x44]
|
|
lsls r1, 6
|
|
ldr r2, [r0, 0x40]
|
|
adds r1, r2
|
|
lsls r1, 1
|
|
ldr r2, [r0, 0x20]
|
|
adds r3, r2, r1
|
|
ldr r2, [r0, 0x24]
|
|
adds r2, r1
|
|
movs r1, 0
|
|
ldr r4, [r0, 0x28]
|
|
str r4, [sp, 0x2C]
|
|
ldr r5, [r0, 0x2C]
|
|
str r5, [sp, 0x18]
|
|
ldr r0, [r0, 0x1C]
|
|
str r0, [sp, 0x1C]
|
|
mov r0, sp
|
|
str r0, [sp, 0x10]
|
|
mov r4, sp
|
|
adds r4, 0x8
|
|
str r4, [sp, 0x14]
|
|
movs r5, 0
|
|
str r5, [sp, 0x30]
|
|
_080A3FCE:
|
|
mov r8, r3
|
|
mov r12, r2
|
|
mov r0, r8
|
|
adds r0, 0x80
|
|
str r0, [sp, 0x20]
|
|
mov r4, r12
|
|
adds r4, 0x80
|
|
str r4, [sp, 0x24]
|
|
adds r1, 0x1
|
|
str r1, [sp, 0x28]
|
|
ldr r3, [sp, 0x14]
|
|
ldr r2, [sp, 0x10]
|
|
ldr r5, [sp, 0x30]
|
|
ldr r0, [sp, 0x18]
|
|
adds r1, r5, r0
|
|
ldr r4, [sp, 0x2C]
|
|
adds r0, r5, r4
|
|
movs r5, 0x1
|
|
_080A3FF2:
|
|
stm r2!, {r0}
|
|
stm r3!, {r1}
|
|
adds r1, 0x40
|
|
adds r0, 0x40
|
|
ldr r4, [sp, 0x30]
|
|
adds r4, 0x40
|
|
str r4, [sp, 0x30]
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A3FF2
|
|
movs r2, 0
|
|
ldr r5, [sp, 0x1C]
|
|
mov r9, r5
|
|
_080A400C:
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r9
|
|
adds r4, r1, r0
|
|
movs r5, 0x2
|
|
add r8, r5
|
|
mov r0, r12
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r9
|
|
adds r3, r1, r0
|
|
add r12, r5
|
|
movs r5, 0
|
|
adds r2, 0x1
|
|
mov r10, r2
|
|
ldr r7, [sp, 0x14]
|
|
ldr r6, [sp, 0x10]
|
|
_080A4038:
|
|
ldr r1, [r6]
|
|
ldr r2, [r7]
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
stm r6!, {r1}
|
|
stm r7!, {r2}
|
|
adds r5, 0x1
|
|
cmp r5, 0x1
|
|
ble _080A4038
|
|
mov r2, r10
|
|
cmp r2, 0xF
|
|
ble _080A400C
|
|
ldr r3, [sp, 0x20]
|
|
ldr r2, [sp, 0x24]
|
|
ldr r1, [sp, 0x28]
|
|
cmp r1, 0xA
|
|
ble _080A3FCE
|
|
add sp, 0x34
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A3F94
|
|
|
|
thumb_func_start sub_80A4088
|
|
sub_80A4088:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x38]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
adds r7, r0, 0
|
|
ldr r0, [r4, 0x44]
|
|
lsls r0, 6
|
|
ldr r1, [r4, 0x40]
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [r4, 0x20]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r2, [r4, 0x28]
|
|
str r2, [sp, 0xC]
|
|
ldr r4, [r4, 0x1C]
|
|
mov r12, r4
|
|
_080A40BA:
|
|
adds r5, r1, 0
|
|
movs r1, 0x80
|
|
adds r1, r5
|
|
mov r9, r1
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
mov r1, sp
|
|
mov r2, r8
|
|
lsls r0, r2, 1
|
|
ldr r2, [sp, 0xC]
|
|
adds r0, r2
|
|
movs r3, 0x2
|
|
_080A40D2:
|
|
stm r1!, {r0}
|
|
adds r0, 0x40
|
|
movs r2, 0x20
|
|
add r8, r2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A40D2
|
|
cmp r7, 0
|
|
beq _080A412E
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r12
|
|
adds r2, r1, r0
|
|
adds r5, 0x2
|
|
cmp r7, 0x1
|
|
bne _080A4116
|
|
adds r2, 0x2
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A40FC:
|
|
ldr r0, [r4]
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
stm r4!, {r0}
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A40FC
|
|
b _080A412E
|
|
_080A4116:
|
|
adds r2, 0x4
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A411C:
|
|
ldr r1, [r4]
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
stm r4!, {r1}
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A411C
|
|
_080A412E:
|
|
movs r3, 0
|
|
_080A4130:
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r12
|
|
adds r2, r1, r0
|
|
adds r5, 0x2
|
|
adds r6, r3, 0x1
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4144:
|
|
ldr r1, [r4]
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
stm r4!, {r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4144
|
|
adds r3, r6, 0
|
|
cmp r3, 0x9
|
|
ble _080A4130
|
|
cmp r7, 0x1
|
|
beq _080A41AA
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r12
|
|
adds r2, r1, r0
|
|
cmp r7, 0
|
|
bne _080A4198
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4184:
|
|
ldm r4!, {r0}
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0x2]
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4184
|
|
b _080A41AA
|
|
_080A4198:
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A419C:
|
|
ldm r4!, {r1}
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A419C
|
|
_080A41AA:
|
|
mov r1, r9
|
|
mov r0, r10
|
|
cmp r0, 0x7
|
|
ble _080A40BA
|
|
add sp, 0x10
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4088
|
|
|
|
thumb_func_start sub_80A41C4
|
|
sub_80A41C4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x20
|
|
mov r8, r0
|
|
ldr r0, [r0, 0x38]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
str r0, [sp, 0xC]
|
|
mov r0, r8
|
|
ldr r2, [r0, 0x44]
|
|
lsls r0, r2, 6
|
|
mov r1, r8
|
|
ldr r3, [r1, 0x40]
|
|
adds r0, r3
|
|
lsls r0, 1
|
|
ldr r1, [r1, 0x20]
|
|
adds r4, r1, r0
|
|
movs r0, 0
|
|
str r0, [sp, 0x10]
|
|
mov r1, r8
|
|
ldr r0, [r1, 0xC]
|
|
subs r0, r2
|
|
mov r10, r0
|
|
ldr r0, [r1, 0x8]
|
|
subs r0, r3
|
|
str r0, [sp, 0x14]
|
|
movs r2, 0
|
|
_080A4202:
|
|
ldr r5, [sp, 0x14]
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
ble _080A4212
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r10, r0
|
|
b _080A4222
|
|
_080A4212:
|
|
mov r1, r8
|
|
ldr r1, [r1, 0xC]
|
|
mov r10, r1
|
|
mov r3, r8
|
|
ldr r0, [r3, 0x40]
|
|
lsls r0, 1
|
|
ldr r1, [r3, 0x20]
|
|
adds r4, r1, r0
|
|
_080A4222:
|
|
adds r6, r4, 0
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x28]
|
|
ldrh r7, [r4]
|
|
ldr r3, [r0, 0x1C]
|
|
mov r9, r3
|
|
adds r0, r4, 0x2
|
|
mov r12, r0
|
|
adds r4, 0x80
|
|
str r4, [sp, 0x18]
|
|
adds r2, 0x1
|
|
str r2, [sp, 0x1C]
|
|
mov r2, sp
|
|
ldr r3, [sp, 0x10]
|
|
lsls r0, r3, 1
|
|
adds r0, r1
|
|
movs r3, 0x2
|
|
_080A4244:
|
|
stm r2!, {r0}
|
|
adds r0, 0x40
|
|
ldr r4, [sp, 0x10]
|
|
adds r4, 0x20
|
|
str r4, [sp, 0x10]
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4244
|
|
ldr r0, [sp, 0xC]
|
|
cmp r0, 0
|
|
beq _080A42B2
|
|
lsls r0, r7, 3
|
|
adds r0, r7
|
|
lsls r0, 1
|
|
mov r1, r9
|
|
adds r2, r1, r0
|
|
mov r6, r12
|
|
ldr r3, [sp, 0xC]
|
|
cmp r3, 0x1
|
|
bne _080A428C
|
|
adds r2, 0x2
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4272:
|
|
ldr r0, [r4]
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
stm r4!, {r0}
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4272
|
|
b _080A42A4
|
|
_080A428C:
|
|
adds r2, 0x4
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4292:
|
|
ldr r1, [r4]
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
stm r4!, {r1}
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4292
|
|
_080A42A4:
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bgt _080A42B2
|
|
mov r4, r8
|
|
ldr r5, [r4, 0x8]
|
|
lsls r0, r5, 1
|
|
subs r6, r0
|
|
_080A42B2:
|
|
movs r3, 0
|
|
_080A42B4:
|
|
ldrh r1, [r6]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r9
|
|
adds r2, r1, r0
|
|
adds r6, 0x2
|
|
subs r5, 0x1
|
|
adds r7, r3, 0x1
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A42CA:
|
|
ldr r1, [r4]
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
stm r4!, {r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A42CA
|
|
cmp r5, 0
|
|
bgt _080A42F8
|
|
mov r3, r8
|
|
ldr r5, [r3, 0x8]
|
|
lsls r0, r5, 1
|
|
subs r6, r0
|
|
_080A42F8:
|
|
adds r3, r7, 0
|
|
cmp r3, 0x9
|
|
ble _080A42B4
|
|
ldr r4, [sp, 0xC]
|
|
cmp r4, 0x1
|
|
beq _080A433E
|
|
ldrh r1, [r6]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r1, r9
|
|
adds r2, r1, r0
|
|
cmp r4, 0
|
|
bne _080A432C
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4318:
|
|
ldm r4!, {r0}
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
ldrh r1, [r2, 0x2]
|
|
strh r1, [r0, 0x2]
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4318
|
|
b _080A433E
|
|
_080A432C:
|
|
mov r4, sp
|
|
movs r3, 0x2
|
|
_080A4330:
|
|
ldm r4!, {r1}
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x6
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080A4330
|
|
_080A433E:
|
|
ldr r4, [sp, 0x18]
|
|
ldr r2, [sp, 0x1C]
|
|
cmp r2, 0x7
|
|
bgt _080A4348
|
|
b _080A4202
|
|
_080A4348:
|
|
add sp, 0x20
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A41C4
|
|
|
|
thumb_func_start sub_80A4358
|
|
sub_80A4358:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x3C
|
|
adds r4, r0, 0
|
|
ldr r0, [r4, 0x38]
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
str r0, [sp, 0x18]
|
|
ldr r0, [r4, 0x44]
|
|
lsls r0, 6
|
|
ldr r1, [r4, 0x40]
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [r4, 0x20]
|
|
adds r2, r1, r0
|
|
ldr r1, [r4, 0x24]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
ldr r3, [r4, 0x28]
|
|
str r3, [sp, 0x24]
|
|
ldr r5, [r4, 0x2C]
|
|
str r5, [sp, 0x28]
|
|
ldr r4, [r4, 0x1C]
|
|
str r4, [sp, 0x20]
|
|
mov r3, sp
|
|
adds r3, 0xC
|
|
str r3, [sp, 0x1C]
|
|
movs r4, 0
|
|
str r4, [sp, 0x38]
|
|
_080A439A:
|
|
mov r12, r2
|
|
mov r8, r1
|
|
mov r5, r12
|
|
adds r5, 0x80
|
|
str r5, [sp, 0x30]
|
|
adds r1, 0x80
|
|
str r1, [sp, 0x34]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x2C]
|
|
add r3, sp, 0xC
|
|
mov r2, sp
|
|
ldr r4, [sp, 0x38]
|
|
ldr r5, [sp, 0x28]
|
|
adds r1, r4, r5
|
|
ldr r5, [sp, 0x24]
|
|
adds r0, r4, r5
|
|
movs r5, 0x2
|
|
_080A43BC:
|
|
stm r2!, {r0}
|
|
stm r3!, {r1}
|
|
adds r1, 0x40
|
|
adds r0, 0x40
|
|
ldr r4, [sp, 0x38]
|
|
adds r4, 0x40
|
|
str r4, [sp, 0x38]
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A43BC
|
|
ldr r5, [sp, 0x18]
|
|
cmp r5, 0
|
|
beq _080A445C
|
|
mov r0, r12
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [sp, 0x20]
|
|
adds r4, r1, r0
|
|
movs r3, 0x2
|
|
add r12, r3
|
|
mov r5, r8
|
|
ldrh r1, [r5]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r1, [sp, 0x20]
|
|
adds r3, r1, r0
|
|
movs r5, 0x2
|
|
add r8, r5
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0x1
|
|
bne _080A4434
|
|
adds r4, 0x2
|
|
adds r3, 0x2
|
|
ldr r7, [sp, 0x1C]
|
|
mov r6, sp
|
|
_080A4408:
|
|
ldr r1, [r6]
|
|
ldr r2, [r7]
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
ldrh r0, [r3, 0x2]
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
stm r6!, {r1}
|
|
stm r7!, {r2}
|
|
adds r4, 0x6
|
|
adds r3, 0x6
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A4408
|
|
b _080A445C
|
|
_080A4434:
|
|
adds r4, 0x4
|
|
adds r3, 0x4
|
|
ldr r6, [sp, 0x1C]
|
|
mov r2, sp
|
|
movs r5, 0x2
|
|
_080A443E:
|
|
ldr r1, [r2]
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
stm r2!, {r1}
|
|
ldr r1, [r6]
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
adds r1, 0x2
|
|
stm r6!, {r1}
|
|
adds r4, 0x6
|
|
adds r3, 0x6
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A443E
|
|
_080A445C:
|
|
movs r2, 0
|
|
ldr r1, [sp, 0x20]
|
|
mov r9, r1
|
|
_080A4462:
|
|
mov r3, r12
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
mov r5, r9
|
|
adds r4, r5, r0
|
|
movs r0, 0x2
|
|
add r12, r0
|
|
mov r3, r8
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r3, r5, r0
|
|
movs r5, 0x2
|
|
add r8, r5
|
|
movs r5, 0
|
|
adds r2, 0x1
|
|
mov r10, r2
|
|
mov r7, sp
|
|
add r6, sp, 0xC
|
|
_080A448E:
|
|
ldr r1, [r7]
|
|
ldr r2, [r6]
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
adds r4, 0x2
|
|
adds r1, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
adds r3, 0x2
|
|
adds r2, 0x2
|
|
stm r7!, {r1}
|
|
stm r6!, {r2}
|
|
adds r5, 0x1
|
|
cmp r5, 0x2
|
|
ble _080A448E
|
|
mov r2, r10
|
|
cmp r2, 0x9
|
|
ble _080A4462
|
|
ldr r0, [sp, 0x18]
|
|
cmp r0, 0x1
|
|
beq _080A453A
|
|
mov r3, r12
|
|
ldrh r1, [r3]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
ldr r5, [sp, 0x20]
|
|
adds r4, r5, r0
|
|
mov r0, r8
|
|
ldrh r1, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 1
|
|
adds r3, r5, r0
|
|
ldr r1, [sp, 0x18]
|
|
cmp r1, 0
|
|
bne _080A451E
|
|
ldr r7, [sp, 0x1C]
|
|
mov r6, sp
|
|
movs r5, 0x2
|
|
_080A44FE:
|
|
ldm r6!, {r1}
|
|
ldm r7!, {r2}
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r1, 0x2]
|
|
ldrh r0, [r3]
|
|
strh r0, [r2]
|
|
ldrh r0, [r3, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
adds r4, 0x6
|
|
adds r3, 0x6
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A44FE
|
|
b _080A453A
|
|
_080A451E:
|
|
ldr r6, [sp, 0x1C]
|
|
mov r2, sp
|
|
movs r5, 0x2
|
|
_080A4524:
|
|
ldm r2!, {r1}
|
|
ldrh r0, [r4]
|
|
strh r0, [r1]
|
|
ldm r6!, {r1}
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
adds r4, 0x6
|
|
adds r3, 0x6
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A4524
|
|
_080A453A:
|
|
ldr r2, [sp, 0x30]
|
|
ldr r1, [sp, 0x34]
|
|
ldr r0, [sp, 0x2C]
|
|
cmp r0, 0x7
|
|
bgt _080A4546
|
|
b _080A439A
|
|
_080A4546:
|
|
add sp, 0x3C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4358
|
|
|
|
thumb_func_start sub_80A4558
|
|
sub_80A4558:
|
|
lsls r1, 3
|
|
movs r3, 0x8F
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_80A4558
|
|
|
|
thumb_func_start sub_80A456C
|
|
sub_80A456C:
|
|
lsls r1, 3
|
|
movs r3, 0x8F
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r1, [r2]
|
|
ldr r2, [r2, 0x4]
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_80A456C
|
|
|
|
thumb_func_start sub_80A4580
|
|
sub_80A4580:
|
|
push {r4,lr}
|
|
adds r3, r2, 0
|
|
lsls r2, r1, 2
|
|
adds r2, r1
|
|
lsls r2, 4
|
|
movs r1, 0x91
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
adds r2, r0, r2
|
|
ldr r0, [r3]
|
|
cmp r0, 0
|
|
bge _080A45AE
|
|
ldrb r0, [r2, 0x6]
|
|
ldr r4, [r3, 0x4]
|
|
cmp r0, 0
|
|
beq _080A45CA
|
|
ldr r1, [r2, 0x10]
|
|
_080A45A2:
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
str r0, [r3]
|
|
cmp r0, 0
|
|
blt _080A45A2
|
|
b _080A45CC
|
|
_080A45AE:
|
|
ldr r1, [r2, 0x10]
|
|
ldr r4, [r3, 0x4]
|
|
cmp r0, r1
|
|
blt _080A45CC
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
beq _080A45C8
|
|
_080A45BC:
|
|
ldr r0, [r3]
|
|
subs r0, r1
|
|
str r0, [r3]
|
|
cmp r0, r1
|
|
bge _080A45BC
|
|
b _080A45CC
|
|
_080A45C8:
|
|
subs r0, r1, 0x1
|
|
_080A45CA:
|
|
str r0, [r3]
|
|
_080A45CC:
|
|
cmp r4, 0
|
|
bge _080A45E4
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
beq _080A45FE
|
|
ldr r1, [r2, 0x14]
|
|
_080A45D8:
|
|
ldr r0, [r3, 0x4]
|
|
adds r0, r1
|
|
str r0, [r3, 0x4]
|
|
cmp r0, 0
|
|
blt _080A45D8
|
|
b _080A4600
|
|
_080A45E4:
|
|
ldr r1, [r2, 0x14]
|
|
cmp r4, r1
|
|
blt _080A4600
|
|
ldrb r0, [r2, 0x6]
|
|
cmp r0, 0
|
|
beq _080A45FC
|
|
_080A45F0:
|
|
ldr r0, [r3, 0x4]
|
|
subs r0, r1
|
|
str r0, [r3, 0x4]
|
|
cmp r0, r1
|
|
bge _080A45F0
|
|
b _080A4600
|
|
_080A45FC:
|
|
subs r0, r1, 0x1
|
|
_080A45FE:
|
|
str r0, [r3, 0x4]
|
|
_080A4600:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4580
|
|
|
|
thumb_func_start sub_80A4608
|
|
sub_80A4608:
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
adds r2, r0, r3
|
|
ldrb r2, [r2]
|
|
str r2, [r1]
|
|
ldr r2, _080A461C
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
str r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A461C: .4byte 0x00000449
|
|
thumb_func_end sub_80A4608
|
|
|
|
thumb_func_start sub_80A4620
|
|
sub_80A4620:
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
adds r2, r0, r3
|
|
ldrb r2, [r2]
|
|
lsls r2, 3
|
|
str r2, [r1]
|
|
ldr r2, _080A4638
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
lsls r0, 3
|
|
str r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A4638: .4byte 0x00000449
|
|
thumb_func_end sub_80A4620
|
|
|
|
thumb_func_start sub_80A463C
|
|
sub_80A463C:
|
|
movs r3, 0
|
|
str r3, [r1]
|
|
str r3, [r1, 0x4]
|
|
movs r3, 0x89
|
|
lsls r3, 3
|
|
adds r1, r0, r3
|
|
ldrb r1, [r1]
|
|
lsls r1, 11
|
|
str r1, [r2]
|
|
ldr r1, _080A465C
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, 11
|
|
str r0, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A465C: .4byte 0x00000449
|
|
thumb_func_end sub_80A463C
|
|
|
|
thumb_func_start sub_80A4660
|
|
sub_80A4660:
|
|
push {r4-r7,lr}
|
|
adds r6, r3, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r1, _080A4678
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
bne _080A467C
|
|
movs r0, 0
|
|
b _080A46B6
|
|
.align 2, 0
|
|
_080A4678: .4byte 0x00000544
|
|
_080A467C:
|
|
ldr r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
ldr r1, _080A46BC
|
|
adds r0, r1
|
|
adds r4, r0
|
|
ldr r3, [r6, 0x4]
|
|
cmp r3, 0
|
|
ble _080A46B4
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
_080A4694:
|
|
ldr r1, [r6]
|
|
adds r2, r4, 0
|
|
cmp r1, 0
|
|
ble _080A46AC
|
|
_080A469C:
|
|
ldrb r0, [r2]
|
|
ands r0, r5
|
|
adds r2, 0x1
|
|
cmp r0, 0
|
|
bne _080A46B6
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bgt _080A469C
|
|
_080A46AC:
|
|
adds r4, r7
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _080A4694
|
|
_080A46B4:
|
|
movs r0, 0
|
|
_080A46B6:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A46BC: .4byte 0x00000405
|
|
thumb_func_end sub_80A4660
|
|
|
|
thumb_func_start sub_80A46C0
|
|
sub_80A46C0:
|
|
push {r4-r7,lr}
|
|
adds r6, r3, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
ldr r1, _080A46D8
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
bne _080A46DC
|
|
_080A46D2:
|
|
movs r0, 0
|
|
b _080A4716
|
|
.align 2, 0
|
|
_080A46D8: .4byte 0x00000544
|
|
_080A46DC:
|
|
ldr r0, [r2, 0x4]
|
|
lsls r0, 8
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
ldr r1, _080A471C
|
|
adds r0, r1
|
|
adds r4, r0
|
|
ldr r3, [r6, 0x4]
|
|
cmp r3, 0
|
|
ble _080A4714
|
|
movs r7, 0x80
|
|
lsls r7, 1
|
|
_080A46F4:
|
|
ldr r1, [r6]
|
|
adds r2, r4, 0
|
|
cmp r1, 0
|
|
ble _080A470C
|
|
_080A46FC:
|
|
ldrb r0, [r2]
|
|
ands r0, r5
|
|
adds r2, 0x1
|
|
cmp r0, r5
|
|
bne _080A46D2
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bgt _080A46FC
|
|
_080A470C:
|
|
adds r4, r7
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _080A46F4
|
|
_080A4714:
|
|
movs r0, 0x1
|
|
_080A4716:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A471C: .4byte 0x00000405
|
|
thumb_func_end sub_80A46C0
|
|
|
|
thumb_func_start sub_80A4720
|
|
sub_80A4720:
|
|
lsls r1, 2
|
|
ldr r3, _080A473C
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldr r1, [r2, 0x4]
|
|
lsls r1, 7
|
|
ldr r3, [r0]
|
|
adds r3, r1
|
|
ldr r0, [r2]
|
|
lsls r0, 1
|
|
adds r3, r0
|
|
ldrh r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A473C: .4byte 0x0000054c
|
|
thumb_func_end sub_80A4720
|
|
|
|
thumb_func_start sub_80A4740
|
|
sub_80A4740:
|
|
push {r4,lr}
|
|
lsls r1, 2
|
|
ldr r4, _080A4760
|
|
adds r0, r4
|
|
adds r0, r1
|
|
ldr r1, [r2, 0x4]
|
|
lsls r1, 7
|
|
ldr r4, [r0]
|
|
adds r4, r1
|
|
ldr r0, [r2]
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
strh r3, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4760: .4byte 0x0000054c
|
|
thumb_func_end sub_80A4740
|
|
|
|
thumb_func_start sub_80A4764
|
|
sub_80A4764:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
mov r9, r0
|
|
ldr r0, _080A47E8
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A4784
|
|
b _080A49CE
|
|
_080A4784:
|
|
ldr r0, _080A47EC
|
|
add r0, r9
|
|
movs r6, 0
|
|
ldrsh r0, [r0, r6]
|
|
cmp r0, 0
|
|
beq _080A4864
|
|
mov r4, r9
|
|
ldr r0, _080A47F0
|
|
add r0, r9
|
|
ldr r5, [r0]
|
|
ldr r0, _080A47F4
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 20
|
|
lsrs r6, r0, 16
|
|
movs r7, 0
|
|
ldr r0, _080A47F8
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r7, r0
|
|
bge _080A484C
|
|
_080A47B2:
|
|
ldr r1, [r4, 0x4]
|
|
cmp r1, 0
|
|
beq _080A4832
|
|
ldrh r0, [r4, 0x2]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A4832
|
|
ldrh r0, [r4]
|
|
subs r0, 0x1
|
|
strh r0, [r4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A4808
|
|
ldr r0, _080A47FC
|
|
add r0, r9
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A4800
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x2]
|
|
ldrh r0, [r5, 0x2]
|
|
strh r0, [r4]
|
|
str r1, [r4, 0x8]
|
|
b _080A480C
|
|
.align 2, 0
|
|
_080A47E8: .4byte 0x00000444
|
|
_080A47EC: .4byte 0x00000466
|
|
_080A47F0: .4byte 0x0000046c
|
|
_080A47F4: .4byte 0x0000052c
|
|
_080A47F8: .4byte 0x00000464
|
|
_080A47FC: .4byte 0x00000471
|
|
_080A4800:
|
|
strh r0, [r4]
|
|
strh r0, [r4, 0x2]
|
|
str r0, [r4, 0x8]
|
|
b _080A480C
|
|
_080A4808:
|
|
ldrh r0, [r5]
|
|
strh r0, [r4, 0x2]
|
|
_080A480C:
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
beq _080A4832
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
bl sub_8003810
|
|
adds r0, r6, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, [r4, 0x8]
|
|
movs r2, 0xF
|
|
bl sub_809971C
|
|
ldr r0, [r4, 0x8]
|
|
adds r0, 0x3C
|
|
str r0, [r4, 0x8]
|
|
_080A4832:
|
|
adds r7, 0x1
|
|
adds r4, 0x10
|
|
adds r5, 0x4
|
|
adds r0, r6, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, _080A485C
|
|
add r0, r9
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r7, r0
|
|
blt _080A47B2
|
|
_080A484C:
|
|
movs r0, 0x8E
|
|
lsls r0, 3
|
|
add r0, r9
|
|
ldrb r1, [r0]
|
|
ldr r0, _080A4860
|
|
add r0, r9
|
|
strb r1, [r0]
|
|
b _080A48E6
|
|
.align 2, 0
|
|
_080A485C: .4byte 0x00000464
|
|
_080A4860: .4byte 0x00000471
|
|
_080A4864:
|
|
movs r0, 0x88
|
|
lsls r0, 3
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A48E6
|
|
mov r4, r9
|
|
adds r4, 0xE0
|
|
movs r6, 0xA0
|
|
movs r5, 0x1F
|
|
_080A4878:
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A48DC
|
|
adds r0, r4, 0
|
|
movs r1, 0x1
|
|
bl sub_8004D40
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A48DC
|
|
ldrh r0, [r4, 0x6]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x6]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A48DC
|
|
ldrh r0, [r4, 0x4]
|
|
strh r0, [r4, 0x6]
|
|
ldr r1, [r4, 0xC]
|
|
ldr r0, [r4, 0x10]
|
|
cmp r1, r0
|
|
bcc _080A48B0
|
|
ldr r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
_080A48B0:
|
|
ldr r1, [r4, 0xC]
|
|
ldm r1!, {r0}
|
|
str r0, [r4, 0x14]
|
|
str r1, [r4, 0xC]
|
|
ldrb r1, [r4, 0x14]
|
|
add r0, sp, 0x4
|
|
strb r1, [r0]
|
|
ldrb r1, [r4, 0x15]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
ldrb r1, [r4, 0x16]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
ldrb r1, [r4, 0x17]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
ldr r1, [sp, 0x4]
|
|
str r1, [sp]
|
|
lsls r0, r6, 16
|
|
lsrs r0, 16
|
|
bl sub_8003810
|
|
_080A48DC:
|
|
subs r5, 0x1
|
|
adds r4, 0x18
|
|
adds r6, 0x1
|
|
cmp r5, 0
|
|
bge _080A4878
|
|
_080A48E6:
|
|
movs r5, 0
|
|
movs r4, 0x1
|
|
_080A48EA:
|
|
movs r2, 0xF8
|
|
lsls r2, 2
|
|
adds r0, r5, r2
|
|
mov r6, r9
|
|
adds r2, r6, r0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080A4942
|
|
ldrh r1, [r2, 0x4]
|
|
subs r0, r1, 0x1
|
|
strh r0, [r2, 0x4]
|
|
lsls r1, 16
|
|
cmp r1, 0
|
|
bgt _080A4942
|
|
ldr r0, [r2, 0x14]
|
|
adds r0, 0x4
|
|
str r0, [r2, 0x14]
|
|
ldr r1, [r2, 0x24]
|
|
lsrs r1, 1
|
|
lsls r1, 1
|
|
ldr r0, [r2, 0x1C]
|
|
adds r0, r1
|
|
str r0, [r2, 0x1C]
|
|
ldrh r0, [r2, 0x2]
|
|
adds r0, 0x1
|
|
movs r3, 0
|
|
strh r0, [r2, 0x2]
|
|
ldr r1, [r2, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r6, 0x2
|
|
ldrsh r1, [r1, r6]
|
|
cmp r0, r1
|
|
blt _080A4938
|
|
ldr r0, [r2, 0x10]
|
|
str r0, [r2, 0x14]
|
|
ldr r0, [r2, 0x18]
|
|
str r0, [r2, 0x1C]
|
|
strh r3, [r2, 0x2]
|
|
_080A4938:
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0x1]
|
|
ldr r0, [r2, 0x14]
|
|
ldr r0, [r0]
|
|
strh r0, [r2, 0x4]
|
|
_080A4942:
|
|
adds r5, 0x28
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A48EA
|
|
movs r4, 0x91
|
|
lsls r4, 3
|
|
add r4, r9
|
|
movs r7, 0x8F
|
|
lsls r7, 3
|
|
add r7, r9
|
|
movs r0, 0
|
|
mov r8, r0
|
|
b _080A49BC
|
|
_080A495C:
|
|
adds r0, r4, 0
|
|
adds r1, r7, 0
|
|
bl sub_80A3E14
|
|
adds r0, r4, 0
|
|
bl sub_80A3EB0
|
|
movs r6, 0
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
ldr r0, _080A4998
|
|
add r0, r9
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r5, r1, r0
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
movs r1, 0x50
|
|
adds r1, r4
|
|
mov r10, r1
|
|
adds r7, 0x8
|
|
cmp r6, r0
|
|
bge _080A49BA
|
|
_080A498E:
|
|
cmp r5, 0
|
|
beq _080A499C
|
|
cmp r5, 0x1
|
|
beq _080A49A6
|
|
b _080A49AE
|
|
.align 2, 0
|
|
_080A4998: .4byte 0x00000536
|
|
_080A499C:
|
|
ldr r0, [r4, 0x48]
|
|
ldr r1, [r4, 0x4C]
|
|
bl sub_800CCA0
|
|
b _080A49AE
|
|
_080A49A6:
|
|
ldr r0, [r4, 0x48]
|
|
ldr r1, [r4, 0x4C]
|
|
bl sub_800CCAC
|
|
_080A49AE:
|
|
adds r6, 0x1
|
|
adds r5, 0x1
|
|
movs r2, 0x4
|
|
ldrsh r0, [r4, r2]
|
|
cmp r6, r0
|
|
blt _080A498E
|
|
_080A49BA:
|
|
mov r4, r10
|
|
_080A49BC:
|
|
ldr r0, _080A49E0
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
cmp r8, r0
|
|
blt _080A495C
|
|
ldr r1, _080A49E4
|
|
add r1, r9
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A49CE:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A49E0: .4byte 0x00000474
|
|
_080A49E4: .4byte 0x0000052a
|
|
thumb_func_end sub_80A4764
|
|
|
|
thumb_func_start sub_80A49E8
|
|
sub_80A49E8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
ldr r0, _080A4A74
|
|
adds r5, r6, r0
|
|
movs r1, 0xFF
|
|
lsls r1, 2
|
|
adds r4, r6, r1
|
|
ldr r0, _080A4A78
|
|
adds r0, r6
|
|
mov r8, r0
|
|
movs r7, 0x1
|
|
_080A4A02:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _080A4A1C
|
|
ldr r0, [r4, 0x4]
|
|
ldr r1, [r4]
|
|
ldr r2, [r4, 0x8]
|
|
bl MemoryCopy32
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
movs r0, 0x1
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
_080A4A1C:
|
|
adds r5, 0x28
|
|
adds r4, 0x28
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _080A4A02
|
|
ldr r1, _080A4A78
|
|
adds r0, r6, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A4A68
|
|
movs r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r6, r1
|
|
movs r1, 0
|
|
ldrsh r4, [r0, r1]
|
|
movs r1, 0xA7
|
|
lsls r1, 3
|
|
adds r0, r6, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r5, r0
|
|
bge _080A4A60
|
|
movs r0, 0xA7
|
|
lsls r0, 3
|
|
adds r7, r6, r0
|
|
_080A4A4E:
|
|
adds r0, r4, 0x2
|
|
bl sub_80098F8
|
|
adds r5, 0x1
|
|
adds r4, 0x1
|
|
movs r1, 0
|
|
ldrsh r0, [r7, r1]
|
|
cmp r5, r0
|
|
blt _080A4A4E
|
|
_080A4A60:
|
|
ldr r0, _080A4A78
|
|
adds r1, r6, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_080A4A68:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4A74: .4byte 0x000003e1
|
|
_080A4A78: .4byte 0x0000052a
|
|
thumb_func_end sub_80A49E8
|
|
|
|
thumb_func_start sub_80A4A7C
|
|
sub_80A4A7C:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _080A4AB8
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
adds r2, r0, 0
|
|
adds r2, 0xE4
|
|
ldr r1, _080A4ABC
|
|
strh r1, [r2]
|
|
ldr r1, _080A4AC0
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
str r3, [sp]
|
|
movs r2, 0
|
|
bl sub_809D600
|
|
movs r0, 0
|
|
bl sub_80A5E8C
|
|
bl sub_80A4AEC
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4AB8: .4byte gUnknown_3001B6C
|
|
_080A4ABC: .4byte 0x0000ffff
|
|
_080A4AC0: .4byte gUnknown_811736C
|
|
thumb_func_end sub_80A4A7C
|
|
|
|
thumb_func_start sub_80A4AC4
|
|
sub_80A4AC4:
|
|
push {r4,lr}
|
|
bl sub_80A4AEC
|
|
bl sub_80A5EBC
|
|
ldr r4, _080A4AE8
|
|
ldr r0, [r4]
|
|
bl sub_809D648
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4AE8: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A4AC4
|
|
|
|
thumb_func_start sub_80A4AEC
|
|
sub_80A4AEC:
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
movs r1, 0x37
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x38
|
|
bl sub_80015C0
|
|
ldr r0, _080A4B2C
|
|
ldr r0, [r0]
|
|
ldr r1, _080A4B30
|
|
bl sub_809D754
|
|
ldr r4, _080A4B34
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A4B1E
|
|
bl sub_80A2D00
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A4B1E:
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4B2C: .4byte gUnknown_3001B6C
|
|
_080A4B30: .4byte gUnknown_8117538
|
|
_080A4B34: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A4AEC
|
|
|
|
thumb_func_start sub_80A4B38
|
|
sub_80A4B38:
|
|
push {lr}
|
|
bl nullsub_121
|
|
ldr r0, _080A4B50
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A4B4A
|
|
bl sub_80A2D68
|
|
_080A4B4A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4B50: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A4B38
|
|
|
|
thumb_func_start sub_80A4B54
|
|
sub_80A4B54:
|
|
push {lr}
|
|
ldr r0, _080A4B6C
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A4B62
|
|
bl sub_80A2D88
|
|
_080A4B62:
|
|
bl nullsub_122
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4B6C: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A4B54
|
|
|
|
thumb_func_start GroundMap_GetStationScript
|
|
GroundMap_GetStationScript:
|
|
push {r4-r6,lr}
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5,r6}
|
|
sub sp, 0x4
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
adds r5, r3, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r6, 16
|
|
asrs r6, 16
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
adds r0, r4, 0
|
|
bl sub_80A77A0
|
|
ldr r1, _080A4BE0
|
|
adds r0, r4, 0
|
|
bl sub_80A77D0
|
|
mov r9, r0
|
|
ldr r1, _080A4BE4
|
|
str r5, [sp]
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
adds r3, r6, 0
|
|
bl Log
|
|
lsls r1, r6, 3
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
lsls r1, r5, 2
|
|
adds r1, r5
|
|
lsls r1, 3
|
|
ldr r0, [r0, 0x4]
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x24]
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
strh r6, [r1, 0x6]
|
|
strb r5, [r1, 0x8]
|
|
add sp, 0x4
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4BE0: .4byte gUnknown_8117560
|
|
_080A4BE4: .4byte gUnknown_811756C
|
|
thumb_func_end GroundMap_GetStationScript
|
|
|
|
thumb_func_start sub_80A4BE8
|
|
sub_80A4BE8:
|
|
push {lr}
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl GroundMap_GetStationScript
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A4BE8
|
|
|
|
thumb_func_start GroundMap_ExecuteEvent
|
|
GroundMap_ExecuteEvent:
|
|
push {r4,r5,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r1, _080A4C44
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
mov r1, sp
|
|
adds r2, r4, 0
|
|
bl sub_809D710
|
|
cmp r5, 0
|
|
beq _080A4C2C
|
|
mov r1, sp
|
|
movs r0, 0x5
|
|
strh r0, [r1, 0x4]
|
|
_080A4C2C:
|
|
ldr r0, _080A4C48
|
|
ldr r0, [r0]
|
|
ldr r3, _080A4C4C
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl GroundScript_ExecutePP
|
|
add sp, 0xC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4C44: .4byte gUnknown_8117594
|
|
_080A4C48: .4byte gUnknown_3001B6C
|
|
_080A4C4C: .4byte gUnknown_81175E0
|
|
thumb_func_end GroundMap_ExecuteEvent
|
|
|
|
thumb_func_start GroundMap_ExecuteStation
|
|
GroundMap_ExecuteStation:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
mov r8, r3
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 16
|
|
asrs r5, 16
|
|
lsls r6, 24
|
|
asrs r6, 24
|
|
mov r0, r8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
ldr r1, _080A4CB8
|
|
str r6, [sp]
|
|
str r0, [sp, 0x4]
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
adds r3, r5, 0
|
|
bl Log
|
|
add r0, sp, 0x8
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl GroundMap_GetStationScript
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080A4C9C
|
|
add r1, sp, 0x8
|
|
movs r0, 0x5
|
|
strh r0, [r1, 0x4]
|
|
_080A4C9C:
|
|
ldr r0, _080A4CBC
|
|
ldr r0, [r0]
|
|
ldr r3, _080A4CC0
|
|
movs r1, 0
|
|
add r2, sp, 0x8
|
|
bl GroundScript_ExecutePP
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4CB8: .4byte gUnknown_81175EC
|
|
_080A4CBC: .4byte gUnknown_3001B6C
|
|
_080A4CC0: .4byte gUnknown_8117644
|
|
thumb_func_end GroundMap_ExecuteStation
|
|
|
|
thumb_func_start GroundMap_ExecuteEnter
|
|
GroundMap_ExecuteEnter:
|
|
push {r4,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
ldr r1, _080A4D08
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
bl Log
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A4BE8
|
|
mov r1, sp
|
|
movs r3, 0
|
|
movs r2, 0
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0x4]
|
|
mov r0, sp
|
|
strh r2, [r0, 0x6]
|
|
strb r3, [r0, 0x8]
|
|
ldr r0, _080A4D0C
|
|
ldr r0, [r0]
|
|
ldr r3, _080A4D10
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl GroundScript_ExecutePP
|
|
add sp, 0xC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A4D08: .4byte gUnknown_8117650
|
|
_080A4D0C: .4byte gUnknown_3001B6C
|
|
_080A4D10: .4byte gUnknown_8117698
|
|
thumb_func_end GroundMap_ExecuteEnter
|
|
|
|
thumb_func_start sub_80A4D14
|
|
sub_80A4D14:
|
|
push {lr}
|
|
ldr r0, _080A4D28
|
|
ldr r0, [r0]
|
|
bl sub_809D678
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A4D28: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A4D14
|
|
|
|
thumb_func_start sub_80A4D2C
|
|
sub_80A4D2C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r0, _080A4D44
|
|
ldr r0, [r0]
|
|
bl sub_809D968
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A4D44: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A4D2C
|
|
|
|
thumb_func_start sub_80A4D48
|
|
sub_80A4D48:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080A4D74
|
|
ldr r1, _080A4D70
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0x5
|
|
beq _080A4D6C
|
|
cmp r0, 0x8
|
|
bne _080A4D74
|
|
_080A4D6C:
|
|
movs r0, 0
|
|
b _080A4D76
|
|
.align 2, 0
|
|
_080A4D70: .4byte gUnknown_811BAF4
|
|
_080A4D74:
|
|
movs r0, 0x1
|
|
_080A4D76:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A4D48
|
|
|
|
thumb_func_start sub_80A4D7C
|
|
sub_80A4D7C:
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0x9
|
|
beq _080A4D94
|
|
cmp r5, 0x9
|
|
bgt _080A4D90
|
|
cmp r5, 0x2
|
|
beq _080A4DB6
|
|
b _080A4DC4
|
|
_080A4D90:
|
|
cmp r5, 0xC
|
|
bne _080A4DC4
|
|
_080A4D94:
|
|
movs r0, 0
|
|
movs r1, 0x27
|
|
bl sub_8001658
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
bl sub_8001658
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
lsls r1, 1
|
|
adds r1, r0
|
|
adds r1, r5, r1
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
b _080A4DC4
|
|
_080A4DB6:
|
|
movs r0, 0x6
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A4DC4
|
|
movs r5, 0x3
|
|
_080A4DC4:
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A4D7C
|
|
|
|
thumb_func_start GroundMap_Select
|
|
GroundMap_Select:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r1, _080A4E38
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
movs r1, 0x37
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x38
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
ldr r4, _080A4E3C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A4E08
|
|
bl sub_80A2D00
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A4E08:
|
|
ldr r0, _080A4E40
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
adds r2, r0, 0
|
|
str r2, [r4]
|
|
ldr r0, _080A4E44
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
strh r5, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _080A4E4C
|
|
ldr r1, _080A4E48
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
ldr r0, [r4]
|
|
adds r1, r5, 0
|
|
bl sub_80A2FBC
|
|
b _080A50BA
|
|
.align 2, 0
|
|
_080A4E38: .4byte gUnknown_81176A4
|
|
_080A4E3C: .4byte gUnknown_3001B70
|
|
_080A4E40: .4byte 0x0000055c
|
|
_080A4E44: .4byte gUnknown_3001B6C
|
|
_080A4E48: .4byte gUnknown_8117324
|
|
_080A4E4C:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A4E6C
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xC
|
|
bhi _080A4F20
|
|
lsls r0, 2
|
|
ldr r1, _080A4E70
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A4E6C: .4byte gUnknown_811BAF4
|
|
_080A4E70: .4byte _080A4E74
|
|
.align 2, 0
|
|
_080A4E74:
|
|
.4byte _080A4F08
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4F20
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4EA8
|
|
.4byte _080A4ECC
|
|
.4byte _080A4ECC
|
|
_080A4EA8:
|
|
ldr r0, _080A4EC0
|
|
ldr r0, [r0]
|
|
ldr r1, _080A4EC4
|
|
bl sub_80A2B40
|
|
ldr r1, _080A4EC8
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _080A4F30
|
|
.align 2, 0
|
|
_080A4EC0: .4byte gUnknown_3001B70
|
|
_080A4EC4: .4byte gUnknown_811733C
|
|
_080A4EC8: .4byte gUnknown_2026E4E
|
|
_080A4ECC:
|
|
ldr r4, _080A4EDC
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r6, _080A4EE0
|
|
b _080A4EEA
|
|
.align 2, 0
|
|
_080A4EDC: .4byte gUnknown_81173C0
|
|
_080A4EE0: .4byte gUnknown_3001B70
|
|
_080A4EE4:
|
|
adds r4, 0xC
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
_080A4EEA:
|
|
cmp r0, r1
|
|
beq _080A4EF2
|
|
cmp r0, r5
|
|
bne _080A4EE4
|
|
_080A4EF2:
|
|
ldr r0, [r6]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
adds r1, r4, 0x4
|
|
ldr r2, [r4, 0x8]
|
|
adds r0, r5, 0
|
|
bl GroundMap_SelectDungeon
|
|
b _080A50BA
|
|
_080A4F08:
|
|
ldr r0, _080A4F18
|
|
ldr r1, _080A4F1C
|
|
movs r2, 0
|
|
ldrsh r3, [r6, r2]
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A4F18: .4byte gUnknown_81176D0
|
|
_080A4F1C: .4byte gUnknown_81176DC
|
|
_080A4F20:
|
|
ldr r0, _080A4FA0
|
|
ldr r0, [r0]
|
|
ldr r1, _080A4FA4
|
|
bl sub_80A2B40
|
|
movs r0, 0x1
|
|
bl sub_80A5EDC
|
|
_080A4F30:
|
|
ldr r5, _080A4FA0
|
|
ldr r0, [r5]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r6, r2]
|
|
bl sub_80A2FBC
|
|
ldr r0, _080A4FA8
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
adds r0, 0xE8
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
movs r4, 0x80
|
|
lsls r4, 1
|
|
add r4, r12
|
|
movs r3, 0x82
|
|
lsls r3, 1
|
|
add r3, r12
|
|
movs r2, 0x84
|
|
lsls r2, 1
|
|
add r2, r12
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r1, [r0]
|
|
str r1, [r2]
|
|
str r1, [r3]
|
|
str r1, [r4]
|
|
mov r0, r12
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xAD
|
|
beq _080A5034
|
|
cmp r0, 0xAD
|
|
bgt _080A4FC0
|
|
cmp r0, 0xA3
|
|
bgt _080A4FAC
|
|
cmp r0, 0xA2
|
|
bge _080A4FEE
|
|
cmp r0, 0x4
|
|
beq _080A5084
|
|
cmp r0, 0xA1
|
|
beq _080A5084
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A4FA0: .4byte gUnknown_3001B70
|
|
_080A4FA4: .4byte gUnknown_8117324
|
|
_080A4FA8: .4byte gUnknown_3001B6C
|
|
_080A4FAC:
|
|
cmp r0, 0xAA
|
|
beq _080A500C
|
|
cmp r0, 0xAA
|
|
bgt _080A4FBA
|
|
cmp r0, 0xA8
|
|
beq _080A500C
|
|
b _080A50A2
|
|
_080A4FBA:
|
|
cmp r0, 0xAB
|
|
beq _080A5018
|
|
b _080A50A2
|
|
_080A4FC0:
|
|
cmp r0, 0xBA
|
|
beq _080A506A
|
|
cmp r0, 0xBA
|
|
bgt _080A4FD6
|
|
cmp r0, 0xAF
|
|
beq _080A5072
|
|
cmp r0, 0xAF
|
|
blt _080A5044
|
|
cmp r0, 0xB0
|
|
beq _080A5060
|
|
b _080A50A2
|
|
_080A4FD6:
|
|
cmp r0, 0xDF
|
|
beq _080A4FEE
|
|
cmp r0, 0xDF
|
|
bgt _080A4FE4
|
|
cmp r0, 0xC0
|
|
beq _080A5020
|
|
b _080A50A2
|
|
_080A4FE4:
|
|
cmp r0, 0xE0
|
|
beq _080A508E
|
|
cmp r0, 0xE1
|
|
beq _080A5096
|
|
b _080A50A2
|
|
_080A4FEE:
|
|
ldr r0, _080A5000
|
|
ldr r0, [r0]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A5004
|
|
ldr r2, _080A5008
|
|
b _080A5050
|
|
.align 2, 0
|
|
_080A5000: .4byte gUnknown_3001B70
|
|
_080A5004: .4byte gUnknown_2026E4E
|
|
_080A5008: .4byte 0x00000808
|
|
_080A500C:
|
|
ldr r0, _080A5014
|
|
ldr r0, [r0]
|
|
b _080A5062
|
|
.align 2, 0
|
|
_080A5014: .4byte gUnknown_3001B70
|
|
_080A5018:
|
|
ldr r0, [r5]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
_080A5020:
|
|
ldr r0, _080A5030
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A3B80
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A5030: .4byte gUnknown_3001B70
|
|
_080A5034:
|
|
ldr r1, _080A503C
|
|
ldr r2, _080A5040
|
|
b _080A5050
|
|
.align 2, 0
|
|
_080A503C: .4byte gUnknown_2026E4E
|
|
_080A5040: .4byte 0x00001010
|
|
_080A5044:
|
|
ldr r0, [r5]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A5058
|
|
ldr r2, _080A505C
|
|
_080A5050:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A5058: .4byte gUnknown_2026E4E
|
|
_080A505C: .4byte 0x0000080c
|
|
_080A5060:
|
|
ldr r0, [r5]
|
|
_080A5062:
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
_080A506A:
|
|
ldr r0, _080A507C
|
|
ldr r2, _080A5080
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
_080A5072:
|
|
ldr r0, [r5]
|
|
movs r1, 0x4
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
.align 2, 0
|
|
_080A507C: .4byte gUnknown_2026E4E
|
|
_080A5080: .4byte 0x00001010
|
|
_080A5084:
|
|
ldr r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_80A3BB0
|
|
b _080A50A2
|
|
_080A508E:
|
|
ldr r0, [r5]
|
|
movs r1, 0x3
|
|
bl sub_80A3BB0
|
|
_080A5096:
|
|
ldr r0, _080A50C0
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_80A3B80
|
|
_080A50A2:
|
|
movs r0, 0x6
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A50B4
|
|
adds r0, r1, 0
|
|
bl GroundWeather_Select
|
|
_080A50B4:
|
|
ldr r0, _080A50C4
|
|
bl sub_80A56D8
|
|
_080A50BA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A50C0: .4byte gUnknown_3001B70
|
|
_080A50C4: .4byte gUnknown_81176F8
|
|
thumb_func_end GroundMap_Select
|
|
|
|
thumb_func_start GroundMap_SelectDungeon
|
|
GroundMap_SelectDungeon:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r8, r1
|
|
mov r10, r2
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r1, _080A514C
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
movs r1, 0x37
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x38
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
ldr r7, _080A5150
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
beq _080A5110
|
|
bl sub_80A2D00
|
|
ldr r0, [r7]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r7]
|
|
_080A5110:
|
|
ldr r0, _080A5154
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
adds r2, r0, 0
|
|
str r2, [r7]
|
|
ldr r0, _080A5158
|
|
mov r9, r0
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r4, 0
|
|
strh r5, [r0]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
cmp r5, r6
|
|
beq _080A5138
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x63
|
|
bne _080A5160
|
|
_080A5138:
|
|
ldr r1, _080A515C
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
ldr r0, [r7]
|
|
adds r1, r6, 0
|
|
bl sub_80A2FBC
|
|
b _080A51EC
|
|
.align 2, 0
|
|
_080A514C: .4byte gUnknown_8117700
|
|
_080A5150: .4byte gUnknown_3001B70
|
|
_080A5154: .4byte 0x0000055c
|
|
_080A5158: .4byte gUnknown_3001B6C
|
|
_080A515C: .4byte gUnknown_8117324
|
|
_080A5160:
|
|
lsls r0, r5, 1
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A5180
|
|
adds r6, r0, r1
|
|
ldrh r0, [r6]
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bls _080A518C
|
|
ldr r0, _080A5184
|
|
ldr r1, _080A5188
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A5180: .4byte gUnknown_811BAF4
|
|
_080A5184: .4byte gUnknown_8117734
|
|
_080A5188: .4byte gUnknown_8117740
|
|
_080A518C:
|
|
ldr r1, _080A51FC
|
|
adds r0, r2, 0
|
|
bl sub_80A2B40
|
|
movs r0, 0x1
|
|
bl sub_80A5EDC
|
|
ldr r0, [r7]
|
|
movs r2, 0x4
|
|
ldrsh r1, [r6, r2]
|
|
mov r2, r8
|
|
mov r3, r10
|
|
bl sub_80A3440
|
|
mov r0, r9
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
adds r0, 0xE8
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
adds r0, 0x4
|
|
str r4, [r0]
|
|
movs r3, 0x80
|
|
lsls r3, 1
|
|
add r3, r12
|
|
movs r2, 0x82
|
|
lsls r2, 1
|
|
add r2, r12
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
add r1, r12
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
add r0, r12
|
|
str r4, [r0]
|
|
str r4, [r1]
|
|
str r4, [r2]
|
|
str r4, [r3]
|
|
ldr r0, _080A5200
|
|
bl sub_80A56D8
|
|
_080A51EC:
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A51FC: .4byte gUnknown_8117354
|
|
_080A5200: .4byte gUnknown_8117754
|
|
thumb_func_end GroundMap_SelectDungeon
|
|
|
|
thumb_func_start sub_80A5204
|
|
sub_80A5204:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp]
|
|
mov r8, r1
|
|
str r2, [sp, 0x4]
|
|
str r3, [sp, 0x8]
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
bgt _080A5222
|
|
b _080A53EA
|
|
_080A5222:
|
|
mov r5, r8
|
|
ldr r2, [sp]
|
|
mov r12, r2
|
|
movs r0, 0
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r3, [r3, 0x1]
|
|
str r3, [sp, 0x10]
|
|
ldr r1, [sp, 0x4]
|
|
ldrh r2, [r1, 0xA]
|
|
mov r1, sp
|
|
strh r2, [r1, 0xC]
|
|
movs r1, 0xFF
|
|
_080A523A:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r3, 0xFF
|
|
mov r9, r3
|
|
_080A5242:
|
|
mov r0, r12
|
|
strb r1, [r0]
|
|
movs r2, 0x1
|
|
add r12, r2
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r9, r3
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
bge _080A5242
|
|
mov r0, r10
|
|
cmp r0, 0x3
|
|
ble _080A523A
|
|
movs r1, 0
|
|
ldr r2, [sp, 0x10]
|
|
cmp r1, r2
|
|
blt _080A5266
|
|
b _080A53BA
|
|
_080A5266:
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
_080A526A:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
adds r0, r1, 0x1
|
|
str r0, [sp, 0x14]
|
|
movs r0, 0xFF
|
|
movs r2, 0x4
|
|
mov r9, r2
|
|
_080A5278:
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
movs r2, 0x1
|
|
add r12, r2
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r9, r3
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bge _080A5278
|
|
movs r3, 0x5
|
|
mov r9, r3
|
|
movs r0, 0
|
|
cmp r1, 0
|
|
bne _080A5308
|
|
cmp r1, r7
|
|
bge _080A5394
|
|
_080A529A:
|
|
ldrb r1, [r5]
|
|
adds r5, 0x1
|
|
cmp r1, 0xBF
|
|
ble _080A52C2
|
|
adds r6, r0, 0
|
|
subs r6, 0xBF
|
|
cmp r1, 0xBF
|
|
ble _080A5300
|
|
adds r2, r1, 0
|
|
subs r2, 0xBF
|
|
_080A52AE:
|
|
ldrb r0, [r5]
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
adds r5, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52AE
|
|
b _080A5300
|
|
_080A52C2:
|
|
cmp r1, 0x7F
|
|
ble _080A52E6
|
|
ldrb r4, [r5]
|
|
adds r5, 0x1
|
|
adds r6, r0, 0
|
|
subs r6, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A5300
|
|
adds r2, r1, 0
|
|
subs r2, 0x7F
|
|
_080A52D6:
|
|
mov r3, r12
|
|
strb r4, [r3]
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52D6
|
|
b _080A5300
|
|
_080A52E6:
|
|
movs r2, 0
|
|
adds r6, r0, 0x1
|
|
cmp r2, r1
|
|
bgt _080A5300
|
|
movs r0, 0
|
|
adds r2, r1, 0x1
|
|
_080A52F2:
|
|
mov r3, r12
|
|
strb r0, [r3]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A52F2
|
|
_080A5300:
|
|
adds r0, r6, r1
|
|
cmp r0, r7
|
|
blt _080A529A
|
|
b _080A5394
|
|
_080A5308:
|
|
ldr r4, _080A5340
|
|
add r4, r12
|
|
cmp r0, r7
|
|
bge _080A5394
|
|
_080A5310:
|
|
ldrb r3, [r5]
|
|
adds r5, 0x1
|
|
cmp r3, 0xBF
|
|
ble _080A5344
|
|
adds r6, r0, 0
|
|
subs r6, 0xBF
|
|
cmp r3, 0xBF
|
|
ble _080A538E
|
|
adds r2, r3, 0
|
|
subs r2, 0xBF
|
|
_080A5324:
|
|
ldrb r1, [r5]
|
|
ldrb r0, [r4]
|
|
eors r1, r0
|
|
mov r0, r12
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A5324
|
|
b _080A538E
|
|
.align 2, 0
|
|
_080A5340: .4byte 0xffffff00
|
|
_080A5344:
|
|
cmp r3, 0x7F
|
|
ble _080A5372
|
|
ldrb r2, [r5]
|
|
mov r8, r2
|
|
adds r5, 0x1
|
|
adds r6, r0, 0
|
|
subs r6, 0x7F
|
|
cmp r3, 0x7F
|
|
ble _080A538E
|
|
adds r2, r3, 0
|
|
subs r2, 0x7F
|
|
_080A535A:
|
|
ldrb r1, [r4]
|
|
mov r0, r8
|
|
eors r0, r1
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A535A
|
|
b _080A538E
|
|
_080A5372:
|
|
movs r2, 0
|
|
adds r6, r0, 0x1
|
|
cmp r2, r3
|
|
bgt _080A538E
|
|
adds r2, r3, 0x1
|
|
_080A537C:
|
|
ldrb r0, [r4]
|
|
mov r1, r12
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
movs r0, 0x1
|
|
add r12, r0
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _080A537C
|
|
_080A538E:
|
|
adds r0, r6, r3
|
|
cmp r0, r7
|
|
blt _080A5310
|
|
_080A5394:
|
|
add r9, r7
|
|
mov r1, r9
|
|
cmp r1, 0xFF
|
|
bgt _080A53AE
|
|
movs r0, 0xFF
|
|
_080A539E:
|
|
mov r2, r12
|
|
strb r0, [r2]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
add r9, r3
|
|
mov r1, r9
|
|
cmp r1, 0xFF
|
|
ble _080A539E
|
|
_080A53AE:
|
|
ldr r1, [sp, 0x14]
|
|
mov r0, r10
|
|
ldr r2, [sp, 0x10]
|
|
cmp r1, r2
|
|
bge _080A53BA
|
|
b _080A526A
|
|
_080A53BA:
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
bge _080A53E6
|
|
movs r1, 0xFF
|
|
_080A53C2:
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
movs r0, 0xFF
|
|
mov r9, r0
|
|
_080A53CA:
|
|
mov r2, r12
|
|
strb r1, [r2]
|
|
movs r3, 0x1
|
|
add r12, r3
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
add r9, r0
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
bge _080A53CA
|
|
mov r0, r10
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
blt _080A53C2
|
|
_080A53E6:
|
|
mov r8, r5
|
|
b _080A547E
|
|
_080A53EA:
|
|
ldr r1, [sp]
|
|
movs r0, 0
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r2, [r2, 0x1]
|
|
str r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x4]
|
|
ldrh r2, [r3, 0xA]
|
|
mov r3, sp
|
|
strh r2, [r3, 0xC]
|
|
movs r6, 0xFF
|
|
_080A53FE:
|
|
adds r5, r0, 0x1
|
|
movs r4, 0xFF
|
|
_080A5402:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A5402
|
|
adds r0, r5, 0
|
|
cmp r0, 0x3
|
|
ble _080A53FE
|
|
movs r4, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r4, r3
|
|
bge _080A5460
|
|
ldr r2, [sp, 0x4]
|
|
ldrb r7, [r2]
|
|
movs r3, 0xFF
|
|
_080A5420:
|
|
adds r5, r0, 0x1
|
|
adds r2, r4, 0x1
|
|
movs r4, 0x4
|
|
_080A5426:
|
|
strb r3, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A5426
|
|
movs r4, 0x5
|
|
cmp r7, 0
|
|
beq _080A5444
|
|
movs r6, 0
|
|
adds r0, r7, 0
|
|
_080A543A:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bne _080A543A
|
|
_080A5444:
|
|
adds r4, r7
|
|
cmp r4, 0xFF
|
|
bgt _080A5456
|
|
movs r0, 0xFF
|
|
_080A544C:
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0xFF
|
|
ble _080A544C
|
|
_080A5456:
|
|
adds r4, r2, 0
|
|
adds r0, r5, 0
|
|
ldr r2, [sp, 0x10]
|
|
cmp r4, r2
|
|
blt _080A5420
|
|
_080A5460:
|
|
ldr r3, [sp, 0x8]
|
|
cmp r0, r3
|
|
bge _080A547E
|
|
movs r6, 0xFF
|
|
_080A5468:
|
|
adds r5, r0, 0x1
|
|
movs r4, 0xFF
|
|
_080A546C:
|
|
strb r6, [r1]
|
|
adds r1, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080A546C
|
|
adds r0, r5, 0
|
|
ldr r2, [sp, 0x8]
|
|
cmp r0, r2
|
|
blt _080A5468
|
|
_080A547E:
|
|
mov r3, sp
|
|
ldrh r3, [r3, 0xC]
|
|
lsls r0, r3, 16
|
|
cmp r0, 0
|
|
bgt _080A548A
|
|
b _080A5590
|
|
_080A548A:
|
|
mov r6, r8
|
|
ldr r0, [sp]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r0, 0
|
|
ldr r3, [sp, 0x10]
|
|
cmp r0, r3
|
|
bge _080A5586
|
|
movs r1, 0xFB
|
|
mov r10, r1
|
|
_080A54A0:
|
|
adds r2, 0x5
|
|
movs r4, 0
|
|
cmp r0, 0
|
|
bne _080A54EC
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
cmp r0, r7
|
|
bge _080A5574
|
|
_080A54B4:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0x7F
|
|
ble _080A54DE
|
|
subs r4, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A54D6
|
|
movs r5, 0x80
|
|
adds r3, r1, 0
|
|
subs r3, 0x7F
|
|
_080A54C8:
|
|
ldrb r0, [r2]
|
|
orrs r0, r5
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A54C8
|
|
_080A54D6:
|
|
adds r4, r1
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
b _080A54E6
|
|
_080A54DE:
|
|
adds r0, r1, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0x1
|
|
adds r4, r0, r1
|
|
_080A54E6:
|
|
cmp r4, r7
|
|
blt _080A54B4
|
|
b _080A5574
|
|
_080A54EC:
|
|
ldr r1, _080A5538
|
|
adds r1, r2
|
|
mov r12, r1
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
adds r0, 0x1
|
|
mov r9, r0
|
|
cmp r4, r7
|
|
bge _080A5574
|
|
_080A54FE:
|
|
ldrb r5, [r6]
|
|
adds r6, 0x1
|
|
cmp r5, 0x7F
|
|
ble _080A553C
|
|
subs r4, 0x7F
|
|
cmp r5, 0x7F
|
|
ble _080A556A
|
|
movs r7, 0x80
|
|
movs r0, 0x80
|
|
mov r8, r0
|
|
adds r3, r5, 0
|
|
subs r3, 0x7F
|
|
_080A5516:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
bne _080A552C
|
|
ldrb r0, [r2]
|
|
orrs r0, r7
|
|
strb r0, [r2]
|
|
_080A552C:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A5516
|
|
b _080A556A
|
|
.align 2, 0
|
|
_080A5538: .4byte 0xffffff00
|
|
_080A553C:
|
|
movs r3, 0
|
|
adds r4, 0x1
|
|
cmp r3, r5
|
|
bgt _080A556A
|
|
movs r7, 0x80
|
|
movs r3, 0x80
|
|
mov r8, r3
|
|
adds r3, r5, 0x1
|
|
_080A554C:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
beq _080A5562
|
|
ldrb r0, [r2]
|
|
orrs r0, r7
|
|
strb r0, [r2]
|
|
_080A5562:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A554C
|
|
_080A556A:
|
|
adds r4, r5
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
cmp r4, r7
|
|
blt _080A54FE
|
|
_080A5574:
|
|
mov r1, r10
|
|
subs r0, r1, r7
|
|
adds r2, r0
|
|
mov r0, r9
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r3, [r3, 0x1]
|
|
str r3, [sp, 0x10]
|
|
cmp r0, r3
|
|
blt _080A54A0
|
|
_080A5586:
|
|
mov r8, r6
|
|
ldr r0, [sp, 0x4]
|
|
ldrh r1, [r0, 0xA]
|
|
mov r0, sp
|
|
strh r1, [r0, 0xC]
|
|
_080A5590:
|
|
mov r2, sp
|
|
ldrh r2, [r2, 0xC]
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
ble _080A568C
|
|
mov r6, r8
|
|
ldr r3, [sp]
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
adds r2, r3, r0
|
|
movs r0, 0
|
|
b _080A5684
|
|
_080A55AA:
|
|
adds r2, 0x5
|
|
movs r4, 0
|
|
cmp r0, 0
|
|
bne _080A55F2
|
|
ldr r3, [sp, 0x4]
|
|
ldrb r7, [r3]
|
|
movs r1, 0x1
|
|
mov r10, r1
|
|
cmp r0, r7
|
|
bge _080A567C
|
|
_080A55BE:
|
|
ldrb r1, [r6]
|
|
adds r6, 0x1
|
|
cmp r1, 0x7F
|
|
ble _080A55E4
|
|
subs r4, 0x7F
|
|
cmp r1, 0x7F
|
|
ble _080A55E0
|
|
movs r5, 0x40
|
|
adds r3, r1, 0
|
|
subs r3, 0x7F
|
|
_080A55D2:
|
|
ldrb r0, [r2]
|
|
orrs r0, r5
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A55D2
|
|
_080A55E0:
|
|
adds r4, r1
|
|
b _080A55EC
|
|
_080A55E4:
|
|
adds r0, r1, 0x1
|
|
adds r2, r0
|
|
adds r0, r4, 0x1
|
|
adds r4, r0, r1
|
|
_080A55EC:
|
|
cmp r4, r7
|
|
blt _080A55BE
|
|
b _080A567C
|
|
_080A55F2:
|
|
ldr r3, _080A5640
|
|
adds r3, r2
|
|
mov r12, r3
|
|
ldr r1, [sp, 0x4]
|
|
ldrb r7, [r1]
|
|
adds r0, 0x1
|
|
mov r10, r0
|
|
cmp r4, r7
|
|
bge _080A567C
|
|
_080A5604:
|
|
ldrb r5, [r6]
|
|
adds r6, 0x1
|
|
cmp r5, 0x7F
|
|
ble _080A5644
|
|
subs r4, 0x7F
|
|
cmp r5, 0x7F
|
|
ble _080A5676
|
|
movs r3, 0x40
|
|
mov r8, r3
|
|
movs r0, 0x40
|
|
mov r9, r0
|
|
adds r3, r5, 0
|
|
subs r3, 0x7F
|
|
_080A561E:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
bne _080A5636
|
|
ldrb r0, [r2]
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A5636:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A561E
|
|
b _080A5676
|
|
.align 2, 0
|
|
_080A5640: .4byte 0xffffff00
|
|
_080A5644:
|
|
movs r3, 0
|
|
adds r4, 0x1
|
|
cmp r3, r5
|
|
bgt _080A5676
|
|
movs r3, 0x40
|
|
mov r8, r3
|
|
movs r0, 0x40
|
|
mov r9, r0
|
|
adds r3, r5, 0x1
|
|
_080A5656:
|
|
mov r0, r12
|
|
ldrb r1, [r0]
|
|
mov r0, r9
|
|
ands r0, r1
|
|
movs r1, 0x1
|
|
add r12, r1
|
|
cmp r0, 0
|
|
beq _080A566E
|
|
ldrb r0, [r2]
|
|
mov r1, r8
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080A566E:
|
|
adds r2, 0x1
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _080A5656
|
|
_080A5676:
|
|
adds r4, r5
|
|
cmp r4, r7
|
|
blt _080A5604
|
|
_080A567C:
|
|
movs r3, 0xFB
|
|
subs r0, r3, r7
|
|
adds r2, r0
|
|
mov r0, r10
|
|
_080A5684:
|
|
ldr r1, [sp, 0x10]
|
|
cmp r0, r1
|
|
blt _080A55AA
|
|
mov r8, r6
|
|
_080A568C:
|
|
mov r0, r8
|
|
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_80A5204
|
|
|
|
thumb_func_start sub_80A56A0
|
|
sub_80A56A0:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
ldr r0, _080A56BC
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl sub_80A3B80
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56BC: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A56A0
|
|
|
|
thumb_func_start sub_80A56C0
|
|
sub_80A56C0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080A56D4
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80A4558
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56D4: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A56C0
|
|
|
|
thumb_func_start sub_80A56D8
|
|
sub_80A56D8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _080A56EC
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_80A456C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A56EC: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A56D8
|
|
|
|
thumb_func_start sub_80A56F0
|
|
sub_80A56F0:
|
|
ldr r1, _080A5700
|
|
ldr r2, [r1]
|
|
adds r2, 0xE8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5700: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A56F0
|
|
|
|
thumb_func_start sub_80A5704
|
|
sub_80A5704:
|
|
ldr r1, _080A5724
|
|
ldr r3, [r1]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r0, r3, 0
|
|
adds r0, 0xF0
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
adds r0, 0x4
|
|
str r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5724: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A5704
|
|
|
|
thumb_func_start sub_80A5728
|
|
sub_80A5728:
|
|
ldr r0, _080A5734
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5734: .4byte gUnknown_3001B6C
|
|
thumb_func_end sub_80A5728
|
|
|
|
thumb_func_start sub_80A5738
|
|
sub_80A5738:
|
|
ldr r0, _080A5750
|
|
ldr r0, [r0]
|
|
adds r0, 0xE4
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080A5754
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080A5750: .4byte gUnknown_3001B6C
|
|
_080A5754: .4byte gUnknown_811BAF4
|
|
thumb_func_end sub_80A5738
|
|
|
|
thumb_func_start sub_80A5758
|
|
sub_80A5758:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _080A5768
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080A576C
|
|
movs r0, 0
|
|
b _080A5772
|
|
.align 2, 0
|
|
_080A5768: .4byte gUnknown_3001B70
|
|
_080A576C:
|
|
bl sub_80A4608
|
|
movs r0, 0x1
|
|
_080A5772:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A5758
|
|
|
|
thumb_func_start sub_80A5778
|
|
sub_80A5778:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080A578C
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _080A5790
|
|
movs r0, 0
|
|
b _080A5798
|
|
.align 2, 0
|
|
_080A578C: .4byte gUnknown_3001B70
|
|
_080A5790:
|
|
adds r1, r3, 0
|
|
bl sub_80A463C
|
|
movs r0, 0x1
|
|
_080A5798:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A5778
|
|
|
|
thumb_func_start sub_80A579C
|
|
sub_80A579C:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
ldr r0, _080A5838
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
beq _080A5854
|
|
ldr r0, _080A583C
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xE4
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A5854
|
|
adds r0, r1, 0
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 2
|
|
ldr r0, _080A5840
|
|
adds r4, r0
|
|
adds r0, r3, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A463C
|
|
ldr r2, [r6]
|
|
mov r12, r2
|
|
movs r0, 0xF0
|
|
lsls r0, 7
|
|
add r0, r12
|
|
str r0, [r6]
|
|
ldr r3, [r6, 0x4]
|
|
movs r7, 0xA0
|
|
lsls r7, 7
|
|
adds r0, r3, r7
|
|
str r0, [r6, 0x4]
|
|
ldr r2, [r5]
|
|
ldr r1, _080A5844
|
|
adds r0, r2, r1
|
|
str r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r7, _080A5848
|
|
adds r0, r1, r7
|
|
str r0, [r5, 0x4]
|
|
movs r7, 0
|
|
ldrsh r0, [r4, r7]
|
|
cmp r0, 0xA
|
|
bne _080A581E
|
|
movs r0, 0x90
|
|
lsls r0, 8
|
|
add r0, r12
|
|
str r0, [r6]
|
|
movs r4, 0xD0
|
|
lsls r4, 7
|
|
adds r0, r3, r4
|
|
str r0, [r6, 0x4]
|
|
ldr r7, _080A584C
|
|
adds r0, r2, r7
|
|
str r0, [r5]
|
|
ldr r2, _080A5850
|
|
adds r0, r1, r2
|
|
str r0, [r5, 0x4]
|
|
_080A581E:
|
|
ldr r1, [r6]
|
|
ldr r0, [r5]
|
|
cmp r1, r0
|
|
ble _080A5828
|
|
str r1, [r5]
|
|
_080A5828:
|
|
ldr r1, [r6, 0x4]
|
|
ldr r0, [r5, 0x4]
|
|
cmp r1, r0
|
|
ble _080A5832
|
|
str r1, [r5, 0x4]
|
|
_080A5832:
|
|
movs r0, 0x1
|
|
b _080A5856
|
|
.align 2, 0
|
|
_080A5838: .4byte gUnknown_3001B70
|
|
_080A583C: .4byte gUnknown_3001B6C
|
|
_080A5840: .4byte gUnknown_811BAF4
|
|
_080A5844: .4byte 0xffff8800
|
|
_080A5848: .4byte 0xffffb000
|
|
_080A584C: .4byte 0xffff7000
|
|
_080A5850: .4byte 0xffff9800
|
|
_080A5854:
|
|
movs r0, 0
|
|
_080A5856:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A579C
|
|
|
|
thumb_func_start sub_80A585C
|
|
sub_80A585C:
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
ldr r1, _080A5884
|
|
ldr r2, [r1]
|
|
ldr r1, _080A5888
|
|
adds r2, r1
|
|
ldr r1, [r0, 0x4]
|
|
lsls r1, 8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldr r0, _080A588C
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r5, r0, r1
|
|
ldr r4, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _080A5890
|
|
_080A587E:
|
|
movs r0, 0x1
|
|
b _080A58C0
|
|
.align 2, 0
|
|
_080A5884: .4byte gUnknown_3001B70
|
|
_080A5888: .4byte 0x00000544
|
|
_080A588C: .4byte 0x00000405
|
|
_080A5890:
|
|
cmp r4, 0
|
|
ble _080A58BE
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r1
|
|
_080A589A:
|
|
ldr r2, [r7]
|
|
adds r3, r5, 0
|
|
cmp r2, 0
|
|
ble _080A58B6
|
|
movs r6, 0x80
|
|
_080A58A4:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
adds r3, 0x1
|
|
cmp r0, 0
|
|
bne _080A587E
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080A58A4
|
|
_080A58B6:
|
|
add r5, r12
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080A589A
|
|
_080A58BE:
|
|
movs r0, 0
|
|
_080A58C0:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A585C
|
|
|
|
thumb_func_start sub_80A58C8
|
|
sub_80A58C8:
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
ldr r1, _080A58F0
|
|
ldr r2, [r1]
|
|
ldr r1, _080A58F4
|
|
adds r2, r1
|
|
ldr r1, [r0, 0x4]
|
|
lsls r1, 8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
ldr r0, _080A58F8
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r5, r0, r1
|
|
ldr r4, [r7, 0x4]
|
|
cmp r0, 0
|
|
bne _080A58FC
|
|
_080A58EA:
|
|
movs r0, 0x1
|
|
b _080A592C
|
|
.align 2, 0
|
|
_080A58F0: .4byte gUnknown_3001B70
|
|
_080A58F4: .4byte 0x00000544
|
|
_080A58F8: .4byte 0x00000405
|
|
_080A58FC:
|
|
cmp r4, 0
|
|
ble _080A592A
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
mov r12, r1
|
|
_080A5906:
|
|
ldr r2, [r7]
|
|
adds r3, r5, 0
|
|
cmp r2, 0
|
|
ble _080A5922
|
|
movs r6, 0x40
|
|
_080A5910:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
adds r3, 0x1
|
|
cmp r0, 0
|
|
bne _080A58EA
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bgt _080A5910
|
|
_080A5922:
|
|
add r5, r12
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bgt _080A5906
|
|
_080A592A:
|
|
movs r0, 0
|
|
_080A592C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A58C8
|
|
|
|
thumb_func_start sub_80A5934
|
|
sub_80A5934:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080A5958
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A4660
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A5958: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A5934
|
|
|
|
thumb_func_start sub_80A595C
|
|
sub_80A595C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080A5980
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A46C0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A5980: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A595C
|
|
|
|
thumb_func_start sub_80A5984
|
|
sub_80A5984:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldr r0, _080A599C
|
|
ldr r0, [r0]
|
|
adds r1, r3, 0
|
|
bl sub_80A4720
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A599C: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A5984
|
|
|
|
thumb_func_start sub_80A59A0
|
|
sub_80A59A0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
lsls r3, r2, 16
|
|
lsrs r3, 16
|
|
ldr r0, _080A59BC
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A4740
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A59BC: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A59A0
|
|
|
|
thumb_func_start GroundMap_Action
|
|
GroundMap_Action:
|
|
push {lr}
|
|
bl nullsub_123
|
|
ldr r0, _080A59D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080A59D8
|
|
bl HandleAction
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A59D4: .4byte gUnknown_3001B6C
|
|
_080A59D8: .4byte gUnknown_8117770
|
|
thumb_func_end GroundMap_Action
|
|
|
|
thumb_func_start sub_80A59DC
|
|
sub_80A59DC:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x58
|
|
ldr r7, _080A5A34
|
|
ldr r0, [r7]
|
|
cmp r0, 0
|
|
bne _080A59F0
|
|
b _080A5E5A
|
|
_080A59F0:
|
|
mov r9, sp
|
|
mov r0, sp
|
|
bl sub_809D248
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A5A04
|
|
str r0, [sp]
|
|
str r0, [sp, 0x4]
|
|
_080A5A04:
|
|
ldr r0, _080A5A38
|
|
mov r8, r0
|
|
ldr r3, [r0]
|
|
adds r0, r3, 0
|
|
adds r0, 0xE4
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
mov r6, r8
|
|
cmp r0, 0xAB
|
|
bne _080A5A1A
|
|
b _080A5BBE
|
|
_080A5A1A:
|
|
cmp r0, 0xAB
|
|
bgt _080A5A46
|
|
cmp r0, 0xA3
|
|
bgt _080A5A3C
|
|
cmp r0, 0xA2
|
|
bge _080A5A76
|
|
cmp r0, 0x4
|
|
bne _080A5A2C
|
|
b _080A5D76
|
|
_080A5A2C:
|
|
cmp r0, 0xA1
|
|
bne _080A5A32
|
|
b _080A5E28
|
|
_080A5A32:
|
|
b _080A5E46
|
|
.align 2, 0
|
|
_080A5A34: .4byte gUnknown_3001B70
|
|
_080A5A38: .4byte gUnknown_3001B6C
|
|
_080A5A3C:
|
|
cmp r0, 0xA8
|
|
beq _080A5AF4
|
|
cmp r0, 0xAA
|
|
beq _080A5AF4
|
|
b _080A5E46
|
|
_080A5A46:
|
|
cmp r0, 0xB0
|
|
bne _080A5A4C
|
|
b _080A5C76
|
|
_080A5A4C:
|
|
cmp r0, 0xB0
|
|
bgt _080A5A5E
|
|
cmp r0, 0xAE
|
|
bne _080A5A56
|
|
b _080A5B58
|
|
_080A5A56:
|
|
cmp r0, 0xAF
|
|
bne _080A5A5C
|
|
b _080A5BD8
|
|
_080A5A5C:
|
|
b _080A5E46
|
|
_080A5A5E:
|
|
cmp r0, 0xDF
|
|
beq _080A5A76
|
|
cmp r0, 0xDF
|
|
bgt _080A5A6E
|
|
cmp r0, 0xBA
|
|
bne _080A5A6C
|
|
b _080A5D18
|
|
_080A5A6C:
|
|
b _080A5E46
|
|
_080A5A6E:
|
|
cmp r0, 0xE0
|
|
bne _080A5A74
|
|
b _080A5DDA
|
|
_080A5A74:
|
|
b _080A5E46
|
|
_080A5A76:
|
|
ldr r3, [r6]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF4
|
|
ldr r1, [r2]
|
|
adds r0, r1, 0x2
|
|
str r0, [r2]
|
|
adds r4, r3, 0
|
|
adds r4, 0xFC
|
|
cmp r0, 0
|
|
bge _080A5A8C
|
|
adds r0, r1, 0x5
|
|
_080A5A8C:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
ldr r0, [r2]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r2]
|
|
ldr r5, _080A5AF0
|
|
ldr r0, [r5]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r0, [sp]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r6]
|
|
adds r0, 0xFC
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
add r4, sp, 0x8
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
ldr r0, [sp]
|
|
str r0, [sp, 0x8]
|
|
ldr r0, [r6]
|
|
adds r0, 0xFC
|
|
ldr r1, [sp, 0x4]
|
|
ldr r0, [r0]
|
|
subs r1, r0
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
b _080A5DD0
|
|
.align 2, 0
|
|
_080A5AF0: .4byte gUnknown_3001B70
|
|
_080A5AF4:
|
|
ldr r2, [r6]
|
|
adds r3, r2, 0
|
|
adds r3, 0xF0
|
|
adds r0, r2, 0
|
|
adds r0, 0xE8
|
|
ldr r1, [r3]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [r3]
|
|
adds r2, 0xF8
|
|
cmp r1, 0
|
|
bge _080A5B0E
|
|
adds r1, 0x7
|
|
_080A5B0E:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r3]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5B20
|
|
adds r0, r1, 0x7
|
|
_080A5B20:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r3]
|
|
ldr r5, _080A5B54
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r6]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x10]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x10
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
.align 2, 0
|
|
_080A5B54: .4byte gUnknown_3001B70
|
|
_080A5B58:
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r0, r3, 0
|
|
adds r0, 0xE8
|
|
ldr r1, [r4]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [r4]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
cmp r1, 0
|
|
bge _080A5B72
|
|
adds r1, 0x7
|
|
_080A5B72:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5B84
|
|
adds r0, r1, 0x7
|
|
_080A5B84:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x18]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x18
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
b _080A5DCE
|
|
_080A5BBE:
|
|
ldr r0, [sp]
|
|
ldr r1, [sp, 0x4]
|
|
str r0, [sp, 0x20]
|
|
str r1, [sp, 0x24]
|
|
ldr r0, [r7]
|
|
add r4, sp, 0x20
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5BD8:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r1, r3, 0
|
|
adds r1, 0xE8
|
|
ldr r0, [r4]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r5, r3, 0
|
|
adds r5, 0xF4
|
|
adds r1, r3, 0
|
|
adds r1, 0xEC
|
|
ldr r0, [r5]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
adds r2, r3, 0
|
|
adds r2, 0xF8
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
bge _080A5C12
|
|
adds r1, 0x7
|
|
_080A5C12:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
adds r3, 0xFC
|
|
ldr r1, [r5]
|
|
cmp r1, 0
|
|
bge _080A5C24
|
|
adds r1, 0x7
|
|
_080A5C24:
|
|
asrs r1, 3
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
str r0, [r3]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5C36
|
|
adds r0, r1, 0x7
|
|
_080A5C36:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5C48
|
|
adds r0, r1, 0x7
|
|
_080A5C48:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r5]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
adds r1, r2, 0
|
|
adds r1, 0xF8
|
|
ldr r0, [sp]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [sp, 0x28]
|
|
adds r2, 0xFC
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
add r4, sp, 0x28
|
|
b _080A5DC2
|
|
_080A5C76:
|
|
adds r4, r3, 0
|
|
adds r4, 0xF0
|
|
adds r1, r3, 0
|
|
adds r1, 0xE8
|
|
ldr r0, [r4]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r4]
|
|
adds r5, r3, 0
|
|
adds r5, 0xF4
|
|
adds r1, r3, 0
|
|
adds r1, 0xEC
|
|
ldr r0, [r5]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [r5]
|
|
adds r6, r3, 0
|
|
adds r6, 0xF8
|
|
ldr r1, [r4]
|
|
cmp r1, 0
|
|
bge _080A5CA2
|
|
adds r1, 0x7
|
|
_080A5CA2:
|
|
asrs r1, 3
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
str r0, [r6]
|
|
adds r2, r3, 0
|
|
adds r2, 0xFC
|
|
ldr r1, [r5]
|
|
cmp r1, 0
|
|
bge _080A5CB6
|
|
adds r1, 0x7
|
|
_080A5CB6:
|
|
asrs r1, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r1, [r4]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5CC8
|
|
adds r0, r1, 0x7
|
|
_080A5CC8:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r4]
|
|
ldr r1, [r5]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080A5CDA
|
|
adds r0, r1, 0x7
|
|
_080A5CDA:
|
|
asrs r0, 3
|
|
lsls r0, 3
|
|
subs r0, r1, r0
|
|
str r0, [r5]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r6, 0
|
|
bl sub_80A4580
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
adds r1, r2, 0
|
|
adds r1, 0xF8
|
|
ldr r0, [sp]
|
|
ldr r1, [r1]
|
|
adds r0, r1
|
|
str r0, [sp, 0x30]
|
|
adds r2, 0xFC
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [r2]
|
|
adds r0, r1
|
|
add r4, sp, 0x30
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5D18:
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5D3A
|
|
adds r0, r4, 0x4
|
|
_080A5D3A:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x38]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x38
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
b _080A5DD2
|
|
_080A5D76:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5D98
|
|
adds r0, 0x7
|
|
_080A5D98:
|
|
asrs r1, r0, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r1, [sp]
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
str r1, [sp, 0x40]
|
|
ldr r0, [sp, 0x4]
|
|
add r4, sp, 0x40
|
|
_080A5DC2:
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
_080A5DCE:
|
|
ldr r0, [r7]
|
|
_080A5DD0:
|
|
movs r1, 0x1
|
|
_080A5DD2:
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
b _080A5E52
|
|
_080A5DDA:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
adds r3, r1, 0
|
|
adds r3, 0xF0
|
|
ldr r4, [r3]
|
|
adds r0, r4, 0x1
|
|
str r0, [r3]
|
|
adds r2, r1, 0
|
|
adds r2, 0xF8
|
|
cmp r0, 0
|
|
bge _080A5DFC
|
|
adds r0, 0x7
|
|
_080A5DFC:
|
|
asrs r1, r0, 3
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0x7
|
|
ands r0, r1
|
|
str r0, [r3]
|
|
ldr r0, [r7]
|
|
movs r1, 0x1
|
|
bl sub_80A4580
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, 0xF8
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x48]
|
|
ldr r0, [sp, 0x4]
|
|
add r2, sp, 0x48
|
|
str r0, [r2, 0x4]
|
|
ldr r0, [r7]
|
|
b _080A5E3E
|
|
_080A5E28:
|
|
ldr r0, [r7]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
movs r0, 0
|
|
movs r1, 0
|
|
str r0, [sp, 0x50]
|
|
str r1, [sp, 0x54]
|
|
ldr r0, [r7]
|
|
add r2, sp, 0x50
|
|
_080A5E3E:
|
|
movs r1, 0x1
|
|
bl sub_80A456C
|
|
b _080A5E52
|
|
_080A5E46:
|
|
ldr r0, _080A5E6C
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
_080A5E52:
|
|
ldr r0, _080A5E6C
|
|
ldr r0, [r0]
|
|
bl sub_80A4764
|
|
_080A5E5A:
|
|
bl sub_80A60D8
|
|
add sp, 0x58
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5E6C: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A59DC
|
|
|
|
thumb_func_start sub_80A5E70
|
|
sub_80A5E70:
|
|
push {lr}
|
|
ldr r0, _080A5E88
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080A5E7E
|
|
bl sub_80A49E8
|
|
_080A5E7E:
|
|
bl sub_80A62D0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5E88: .4byte gUnknown_3001B70
|
|
thumb_func_end sub_80A5E70
|
|
|
|
thumb_func_start sub_80A5E8C
|
|
sub_80A5E8C:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r5, _080A5EB4
|
|
movs r0, 0x24
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r5]
|
|
ldr r1, _080A5EB8
|
|
strh r1, [r0]
|
|
movs r1, 0
|
|
strb r1, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_80A5EDC
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5EB4: .4byte gUnknown_3001B74
|
|
_080A5EB8: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A5E8C
|
|
|
|
thumb_func_start sub_80A5EBC
|
|
sub_80A5EBC:
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl sub_80A5EDC
|
|
ldr r4, _080A5ED8
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5ED8: .4byte gUnknown_3001B74
|
|
thumb_func_end sub_80A5EBC
|
|
|
|
thumb_func_start sub_80A5EDC
|
|
sub_80A5EDC:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0, 0
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
movs r0, 0
|
|
movs r1, 0x1B
|
|
adds r2, r6, 0
|
|
bl sub_80018D8
|
|
ldr r0, _080A5F34
|
|
ldr r1, [r0]
|
|
ldr r0, _080A5F38
|
|
strh r0, [r1]
|
|
strb r5, [r1, 0x2]
|
|
ldr r4, _080A5F3C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A5F12
|
|
bl sub_80A2D00
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080A5F12:
|
|
cmp r5, 0
|
|
beq _080A5F2E
|
|
ldr r0, _080A5F40
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
ldr r1, _080A5F44
|
|
bl sub_80A2B40
|
|
ldr r0, [r4]
|
|
adds r1, r6, 0
|
|
bl sub_80A2FBC
|
|
_080A5F2E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A5F34: .4byte gUnknown_3001B74
|
|
_080A5F38: .4byte 0x0000ffff
|
|
_080A5F3C: .4byte gUnknown_3001B78
|
|
_080A5F40: .4byte 0x0000055c
|
|
_080A5F44: .4byte gUnknown_8117784
|
|
thumb_func_end sub_80A5EDC
|
|
|
|
thumb_func_start nullsub_121
|
|
nullsub_121:
|
|
bx lr
|
|
thumb_func_end nullsub_121
|
|
|
|
thumb_func_start nullsub_122
|
|
nullsub_122:
|
|
bx lr
|
|
thumb_func_end nullsub_122
|
|
|
|
thumb_func_start GroundWeather_Select
|
|
GroundWeather_Select:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
adds r7, r5, 0
|
|
ldr r1, _080A5F94
|
|
ldr r6, _080A5F98
|
|
ldr r0, [r6]
|
|
ldrb r3, [r0, 0x2]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
movs r0, 0
|
|
movs r1, 0x1B
|
|
adds r2, r5, 0
|
|
bl sub_80018D8
|
|
ldr r0, [r6]
|
|
movs r4, 0
|
|
strh r5, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
bne _080A5F80
|
|
b _080A60B4
|
|
_080A5F80:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _080A5FA0
|
|
ldr r0, _080A5F9C
|
|
ldr r0, [r0]
|
|
adds r1, r5, 0
|
|
bl sub_80A2FBC
|
|
b _080A60B4
|
|
.align 2, 0
|
|
_080A5F94: .4byte gUnknown_811779C
|
|
_080A5F98: .4byte gUnknown_3001B74
|
|
_080A5F9C: .4byte gUnknown_3001B78
|
|
_080A5FA0:
|
|
lsls r1, r7, 2
|
|
ldr r0, _080A5FD8
|
|
adds r5, r1, r0
|
|
ldr r0, _080A5FDC
|
|
ldr r0, [r0]
|
|
movs r2, 0x2
|
|
ldrsh r1, [r5, r2]
|
|
bl sub_80A2FBC
|
|
ldr r0, [r6]
|
|
str r4, [r0, 0x4]
|
|
str r4, [r0, 0x8]
|
|
str r4, [r0, 0xC]
|
|
str r4, [r0, 0x10]
|
|
str r4, [r0, 0x20]
|
|
str r4, [r0, 0x1C]
|
|
str r4, [r0, 0x18]
|
|
str r4, [r0, 0x14]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xF
|
|
bhi _080A6098
|
|
lsls r0, 2
|
|
ldr r1, _080A5FE0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A5FD8: .4byte gUnknown_811E5F4
|
|
_080A5FDC: .4byte gUnknown_3001B78
|
|
_080A5FE0: .4byte _080A5FE4
|
|
.align 2, 0
|
|
_080A5FE4:
|
|
.4byte _080A6088
|
|
.4byte _080A6098
|
|
.4byte _080A6098
|
|
.4byte _080A6088
|
|
.4byte _080A6088
|
|
.4byte _080A6088
|
|
.4byte _080A6098
|
|
.4byte _080A6040
|
|
.4byte _080A6088
|
|
.4byte _080A6024
|
|
.4byte _080A6098
|
|
.4byte _080A6098
|
|
.4byte _080A6098
|
|
.4byte _080A6098
|
|
.4byte _080A6050
|
|
.4byte _080A606C
|
|
_080A6024:
|
|
ldr r0, _080A6034
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A6038
|
|
ldr r2, _080A603C
|
|
b _080A60B0
|
|
.align 2, 0
|
|
_080A6034: .4byte gUnknown_3001B78
|
|
_080A6038: .4byte gUnknown_2026E4E
|
|
_080A603C: .4byte 0x0000040c
|
|
_080A6040:
|
|
ldr r1, _080A6048
|
|
ldr r2, _080A604C
|
|
b _080A60B0
|
|
.align 2, 0
|
|
_080A6048: .4byte gUnknown_2026E4E
|
|
_080A604C: .4byte 0x00000808
|
|
_080A6050:
|
|
ldr r0, _080A6060
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A6064
|
|
ldr r2, _080A6068
|
|
b _080A60B0
|
|
.align 2, 0
|
|
_080A6060: .4byte gUnknown_3001B78
|
|
_080A6064: .4byte gUnknown_2026E4E
|
|
_080A6068: .4byte 0x00001010
|
|
_080A606C:
|
|
ldr r0, _080A607C
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
ldr r1, _080A6080
|
|
ldr r2, _080A6084
|
|
b _080A60B0
|
|
.align 2, 0
|
|
_080A607C: .4byte gUnknown_3001B78
|
|
_080A6080: .4byte gUnknown_2026E4E
|
|
_080A6084: .4byte 0x0000040c
|
|
_080A6088:
|
|
ldr r1, _080A6090
|
|
ldr r2, _080A6094
|
|
b _080A60B0
|
|
.align 2, 0
|
|
_080A6090: .4byte gUnknown_2026E4E
|
|
_080A6094: .4byte 0x00001010
|
|
_080A6098:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _080A60AA
|
|
ldr r0, _080A60BC
|
|
ldr r0, [r0]
|
|
movs r1, 0x1
|
|
bl sub_80A3BB0
|
|
_080A60AA:
|
|
ldr r1, _080A60C0
|
|
movs r2, 0x80
|
|
lsls r2, 5
|
|
_080A60B0:
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_080A60B4:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A60BC: .4byte gUnknown_3001B78
|
|
_080A60C0: .4byte gUnknown_2026E4E
|
|
thumb_func_end GroundWeather_Select
|
|
|
|
thumb_func_start sub_80A60C4
|
|
sub_80A60C4:
|
|
ldr r0, _080A60D0
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A60D0: .4byte gUnknown_3001B74
|
|
thumb_func_end sub_80A60C4
|
|
|
|
thumb_func_start nullsub_123
|
|
nullsub_123:
|
|
bx lr
|
|
thumb_func_end nullsub_123
|
|
|
|
thumb_func_start sub_80A60D8
|
|
sub_80A60D8:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x28
|
|
ldr r0, _080A6104
|
|
ldr r3, [r0]
|
|
ldrb r1, [r3, 0x2]
|
|
adds r6, r0, 0
|
|
cmp r1, 0
|
|
bne _080A60EA
|
|
b _080A62C0
|
|
_080A60EA:
|
|
ldrh r0, [r3]
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x10
|
|
bls _080A60F8
|
|
b _080A6278
|
|
_080A60F8:
|
|
lsls r0, 2
|
|
ldr r1, _080A6108
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A6104: .4byte gUnknown_3001B74
|
|
_080A6108: .4byte _080A610C
|
|
.align 2, 0
|
|
_080A610C:
|
|
.4byte _080A62AC
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6278
|
|
.4byte _080A6150
|
|
.4byte _080A61CC
|
|
.4byte _080A61CC
|
|
.4byte _080A61CC
|
|
.4byte _080A61CC
|
|
.4byte _080A61D0
|
|
.4byte _080A6224
|
|
_080A6150:
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
adds r0, r1, 0x2
|
|
str r0, [r2, 0x4]
|
|
ldr r4, [r2, 0x8]
|
|
adds r3, r4, 0x1
|
|
str r3, [r2, 0x8]
|
|
cmp r0, 0
|
|
bge _080A6164
|
|
adds r0, r1, 0x5
|
|
_080A6164:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r1
|
|
str r0, [r2, 0xC]
|
|
adds r1, r3, 0
|
|
cmp r1, 0
|
|
bge _080A6174
|
|
adds r1, r4, 0x4
|
|
_080A6174:
|
|
asrs r1, 2
|
|
ldr r0, [r2, 0x10]
|
|
adds r0, r1
|
|
str r0, [r2, 0x10]
|
|
ldr r4, _080A61C8
|
|
ldr r0, [r4]
|
|
adds r2, 0xC
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r1, [r6]
|
|
ldr r0, [r1, 0x4]
|
|
movs r2, 0x3
|
|
ands r0, r2
|
|
str r0, [r1, 0x4]
|
|
ldr r0, [r1, 0x8]
|
|
ands r0, r2
|
|
str r0, [r1, 0x8]
|
|
mov r0, sp
|
|
bl sub_80A56C0
|
|
ldr r2, [r6]
|
|
ldr r0, [sp]
|
|
ldr r1, [r2, 0xC]
|
|
subs r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [sp, 0x4]
|
|
ldr r1, [r2, 0x10]
|
|
adds r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A4580
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
mov r2, sp
|
|
bl sub_80A456C
|
|
b _080A62B8
|
|
.align 2, 0
|
|
_080A61C8: .4byte gUnknown_3001B78
|
|
_080A61CC:
|
|
add r4, sp, 0x8
|
|
b _080A628E
|
|
_080A61D0:
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
adds r0, r1, 0x1
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
bge _080A61DE
|
|
adds r0, r1, 0x4
|
|
_080A61DE:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r1
|
|
str r0, [r2, 0xC]
|
|
ldr r5, _080A6220
|
|
ldr r0, [r5]
|
|
adds r2, 0xC
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r2, 0x4]
|
|
add r4, sp, 0x10
|
|
adds r0, r4, 0
|
|
bl sub_80A56C0
|
|
ldr r1, [r6]
|
|
ldr r0, [sp, 0x10]
|
|
ldr r1, [r1, 0xC]
|
|
subs r0, r1
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
b _080A6298
|
|
.align 2, 0
|
|
_080A6220: .4byte gUnknown_3001B78
|
|
_080A6224:
|
|
ldr r2, [r6]
|
|
ldr r1, [r2, 0x4]
|
|
adds r0, r1, 0x2
|
|
str r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
bge _080A6232
|
|
adds r0, r1, 0x5
|
|
_080A6232:
|
|
asrs r1, r0, 2
|
|
ldr r0, [r2, 0xC]
|
|
adds r0, r1
|
|
str r0, [r2, 0xC]
|
|
ldr r5, _080A6274
|
|
ldr r0, [r5]
|
|
adds r2, 0xC
|
|
movs r1, 0
|
|
bl sub_80A4580
|
|
ldr r2, [r6]
|
|
ldr r0, [r2, 0x4]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
str r0, [r2, 0x4]
|
|
add r4, sp, 0x18
|
|
adds r0, r4, 0
|
|
bl sub_80A56C0
|
|
ldr r1, [r6]
|
|
ldr r0, [sp, 0x18]
|
|
ldr r1, [r1, 0xC]
|
|
subs r0, r1
|
|
str r0, [sp, 0x18]
|
|
movs r0, 0
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A4580
|
|
ldr r0, [r5]
|
|
b _080A6298
|
|
.align 2, 0
|
|
_080A6274: .4byte gUnknown_3001B78
|
|
_080A6278:
|
|
ldr r0, [r6]
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 2
|
|
ldr r1, _080A62A4
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bne _080A62AC
|
|
add r4, sp, 0x20
|
|
_080A628E:
|
|
adds r0, r4, 0
|
|
bl sub_80A56C0
|
|
ldr r0, _080A62A8
|
|
ldr r0, [r0]
|
|
_080A6298:
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_80A456C
|
|
b _080A62B8
|
|
.align 2, 0
|
|
_080A62A4: .4byte gUnknown_811E5F4
|
|
_080A62A8: .4byte gUnknown_3001B78
|
|
_080A62AC:
|
|
ldr r0, _080A62C8
|
|
ldr r0, [r0]
|
|
ldr r2, _080A62CC
|
|
movs r1, 0
|
|
bl sub_80A456C
|
|
_080A62B8:
|
|
ldr r0, _080A62C8
|
|
ldr r0, [r0]
|
|
bl sub_80A4764
|
|
_080A62C0:
|
|
add sp, 0x28
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A62C8: .4byte gUnknown_3001B78
|
|
_080A62CC: .4byte gUnknown_81177BC
|
|
thumb_func_end sub_80A60D8
|
|
|
|
thumb_func_start sub_80A62D0
|
|
sub_80A62D0:
|
|
push {lr}
|
|
ldr r0, _080A62E8
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x2]
|
|
cmp r0, 0
|
|
beq _080A62E4
|
|
ldr r0, _080A62EC
|
|
ldr r0, [r0]
|
|
bl sub_80A49E8
|
|
_080A62E4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A62E8: .4byte gUnknown_3001B74
|
|
_080A62EC: .4byte gUnknown_3001B78
|
|
thumb_func_end sub_80A62D0
|
|
|
|
thumb_func_start sub_80A62F0
|
|
sub_80A62F0:
|
|
push {r4-r7,lr}
|
|
ldr r4, _080A6378
|
|
movs r0, 0x88
|
|
lsls r0, 1
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
ldr r0, _080A637C
|
|
ldr r1, _080A6380
|
|
bl OpenFileAndGetFileDataPtr
|
|
ldr r1, _080A6384
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_800DAC0
|
|
ldr r4, [r4]
|
|
ldr r1, _080A6388
|
|
movs r0, 0x16
|
|
str r0, [r1]
|
|
ldr r1, _080A638C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r3, r1, 0
|
|
_080A632A:
|
|
str r2, [r4]
|
|
lsls r0, 4
|
|
str r0, [r4, 0x4]
|
|
str r2, [r4, 0x8]
|
|
adds r0, r1, 0
|
|
adds r1, r3
|
|
asrs r0, 16
|
|
adds r4, 0xC
|
|
cmp r0, 0x15
|
|
ble _080A632A
|
|
ldr r0, _080A6378
|
|
ldr r0, [r0]
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
movs r6, 0
|
|
movs r7, 0
|
|
movs r5, 0xE8
|
|
lsls r5, 13
|
|
_080A6350:
|
|
strh r7, [r4]
|
|
strh r7, [r4, 0x2]
|
|
lsrs r0, r5, 16
|
|
movs r1, 0
|
|
bl sub_80997F4
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r6, 0x1
|
|
adds r4, 0x4
|
|
cmp r6, 0x1
|
|
ble _080A6350
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl GroundSprite_Reset
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6378: .4byte gUnknown_3001B7C
|
|
_080A637C: .4byte gUnknown_81177CC
|
|
_080A6380: .4byte gUnknown_83B0000
|
|
_080A6384: .4byte gUnknown_203B4B4
|
|
_080A6388: .4byte gUnknown_2039DD4
|
|
_080A638C: .4byte gUnknown_2039DD0
|
|
thumb_func_end sub_80A62F0
|
|
|
|
thumb_func_start GroundSprite_Reset
|
|
GroundSprite_Reset:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
ldr r1, _080A641C
|
|
movs r0, 0
|
|
bl Log
|
|
ldr r0, _080A6420
|
|
movs r1, 0
|
|
mov r8, r1
|
|
strh r1, [r0]
|
|
ldr r0, _080A6424
|
|
strh r1, [r0]
|
|
bl sub_80A6460
|
|
mov r0, r9
|
|
bl sub_80A4D48
|
|
lsls r0, 24
|
|
movs r1, 0x2
|
|
cmp r0, 0
|
|
beq _080A63C6
|
|
movs r1, 0x3
|
|
_080A63C6:
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
bl sub_808E53C
|
|
ldr r5, _080A6428
|
|
adds r0, r5, 0
|
|
bl sub_8004E8C
|
|
ldr r4, _080A642C
|
|
adds r0, r4, 0
|
|
bl sub_8004E8C
|
|
ldrh r1, [r4, 0x4]
|
|
ldr r6, _080A6430
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r4, 0x4]
|
|
ldrh r1, [r4, 0xA]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
movs r2, 0x80
|
|
lsls r2, 4
|
|
adds r7, r2, 0
|
|
orrs r0, r7
|
|
strh r0, [r4, 0xA]
|
|
mov r0, r9
|
|
bl sub_80A4D48
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A6434
|
|
ldrh r1, [r5, 0x4]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldrh r1, [r5, 0xA]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
movs r2, 0xC0
|
|
lsls r2, 4
|
|
adds r1, r2, 0
|
|
orrs r0, r1
|
|
b _080A6444
|
|
.align 2, 0
|
|
_080A641C: .4byte gUnknown_81177D8
|
|
_080A6420: .4byte gUnknown_2039DCC
|
|
_080A6424: .4byte gUnknown_2039DCE
|
|
_080A6428: .4byte gUnknown_2039DB0
|
|
_080A642C: .4byte gUnknown_2039DC0
|
|
_080A6430: .4byte 0x0000f3ff
|
|
_080A6434:
|
|
ldrh r1, [r5, 0x4]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
strh r0, [r5, 0x4]
|
|
ldrh r1, [r5, 0xA]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
orrs r0, r7
|
|
_080A6444:
|
|
strh r0, [r5, 0xA]
|
|
movs r0, 0x1
|
|
bl ResetSprites
|
|
movs r0, 0x1
|
|
bl nullsub_10
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end GroundSprite_Reset
|
|
|
|
thumb_func_start sub_80A6460
|
|
sub_80A6460:
|
|
push {r4-r7,lr}
|
|
ldr r0, _080A649C
|
|
ldr r1, _080A64A0
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r7, r0, 0
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
ldr r4, [r7, 0x4]
|
|
movs r6, 0xC
|
|
_080A6474:
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x10
|
|
bl sub_809971C
|
|
adds r0, r5, 0
|
|
adds r0, 0x10
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
adds r4, 0x40
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080A6474
|
|
adds r0, r7, 0
|
|
bl CloseFile
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A649C: .4byte gUnknown_81177EC
|
|
_080A64A0: .4byte gUnknown_8510000
|
|
thumb_func_end sub_80A6460
|
|
|
|
thumb_func_start sub_80A64A4
|
|
sub_80A64A4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r0, _080A6508
|
|
ldr r0, [r0]
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
adds r7, r0, r1
|
|
bl sub_80A6460
|
|
movs r0, 0
|
|
mov r8, r0
|
|
_080A64C0:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
ble _080A6568
|
|
ldrh r5, [r7]
|
|
mov r0, r8
|
|
adds r0, 0x1D
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r10, r0
|
|
mov r1, r8
|
|
lsls r0, r1, 20
|
|
movs r1, 0xE8
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
adds r1, r0, 0
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A6514
|
|
ldr r0, _080A650C
|
|
ldr r1, _080A6510
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r6, r0, 0
|
|
movs r0, 0xFF
|
|
ands r0, r5
|
|
lsls r0, 6
|
|
ldr r1, [r6, 0x4]
|
|
adds r2, r1, r0
|
|
b _080A652A
|
|
.align 2, 0
|
|
_080A6508: .4byte gUnknown_3001B7C
|
|
_080A650C: .4byte gUnknown_81177EC
|
|
_080A6510: .4byte gUnknown_8510000
|
|
_080A6514:
|
|
movs r0, 0xFF
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A6584
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _080A6588
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r6, r0, 0
|
|
ldr r2, [r6, 0x4]
|
|
_080A652A:
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
adds r0, r1, 0
|
|
adds r1, r5, 0
|
|
ands r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
negs r1, r1
|
|
lsrs r4, r1, 31
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
adds r0, r1, 0
|
|
ands r5, r0
|
|
cmp r5, 0
|
|
beq _080A654C
|
|
movs r0, 0x2
|
|
orrs r4, r0
|
|
_080A654C:
|
|
mov r0, r9
|
|
adds r1, r2, 0
|
|
movs r2, 0x10
|
|
bl sub_809971C
|
|
mov r0, r10
|
|
adds r1, r4, 0
|
|
bl sub_80997F4
|
|
cmp r6, 0
|
|
beq _080A6568
|
|
adds r0, r6, 0
|
|
bl CloseFile
|
|
_080A6568:
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
adds r7, 0x4
|
|
mov r1, r8
|
|
cmp r1, 0x1
|
|
ble _080A64C0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6584: .4byte gUnknown_81178F4
|
|
_080A6588: .4byte gUnknown_9E60000
|
|
thumb_func_end sub_80A64A4
|
|
|
|
thumb_func_start sub_80A658C
|
|
sub_80A658C:
|
|
push {r4,lr}
|
|
bl sub_800DB7C
|
|
movs r0, 0
|
|
bl ResetSprites
|
|
movs r0, 0
|
|
bl nullsub_10
|
|
bl sub_8005180
|
|
bl nullsub_12
|
|
bl CopySpritesToOam
|
|
bl nullsub_13
|
|
bl sub_8005304
|
|
bl nullsub_14
|
|
ldr r0, _080A65D0
|
|
ldr r0, [r0]
|
|
bl CloseFile
|
|
ldr r4, _080A65D4
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A65D0: .4byte gUnknown_203B4B4
|
|
_080A65D4: .4byte gUnknown_3001B7C
|
|
thumb_func_end sub_80A658C
|
|
|
|
thumb_func_start sub_80A65D8
|
|
sub_80A65D8:
|
|
adds r0, 0x50
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80A65D8
|
|
|
|
thumb_func_start sub_80A65E0
|
|
sub_80A65E0:
|
|
lsrs r0, 16
|
|
ldr r2, _080A65EC
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080A65EC: .4byte 0x0000337f
|
|
thumb_func_end sub_80A65E0
|
|
|
|
thumb_func_start sub_80A65F0
|
|
sub_80A65F0:
|
|
push {r4-r6,lr}
|
|
adds r3, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, 0x50
|
|
strh r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
negs r0, r0
|
|
asrs r2, r0, 31
|
|
movs r0, 0x40
|
|
ands r2, r0
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A6616
|
|
subs r2, 0x40
|
|
_080A6616:
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A6624
|
|
adds r1, r2, 0
|
|
adds r1, 0x48
|
|
b _080A6628
|
|
_080A6624:
|
|
adds r1, r2, 0
|
|
adds r1, 0x40
|
|
_080A6628:
|
|
adds r0, r3, 0
|
|
adds r0, 0x6A
|
|
strh r1, [r0]
|
|
adds r2, r3, 0
|
|
adds r2, 0x50
|
|
ldrh r1, [r2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A6648
|
|
adds r1, r3, 0
|
|
adds r1, 0x3C
|
|
ldr r0, _080A6644
|
|
b _080A664E
|
|
.align 2, 0
|
|
_080A6644: .4byte gUnknown_2039DC0
|
|
_080A6648:
|
|
adds r1, r3, 0
|
|
adds r1, 0x3C
|
|
ldr r0, _080A6680
|
|
_080A664E:
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldrh r1, [r2]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A6678
|
|
ldrh r2, [r3, 0x3C]
|
|
ldr r1, _080A6684
|
|
adds r0, r1, 0
|
|
ands r0, r2
|
|
strh r0, [r3, 0x3C]
|
|
adds r2, r3, 0
|
|
adds r2, 0x42
|
|
ldrh r0, [r2]
|
|
ands r1, r0
|
|
movs r3, 0x80
|
|
lsls r3, 3
|
|
adds r0, r3, 0
|
|
orrs r1, r0
|
|
strh r1, [r2]
|
|
_080A6678:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6680: .4byte gUnknown_2039DB0
|
|
_080A6684: .4byte 0x0000f3ff
|
|
thumb_func_end sub_80A65F0
|
|
|
|
thumb_func_start sub_80A6688
|
|
sub_80A6688:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, r1, 0
|
|
bl sub_80A65E0
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A65F0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6688
|
|
|
|
thumb_func_start sub_80A66A4
|
|
sub_80A66A4:
|
|
push {lr}
|
|
movs r1, 0
|
|
adds r0, 0x48
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
ble _080A66B4
|
|
movs r1, 0x1
|
|
_080A66B4:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A66A4
|
|
|
|
thumb_func_start sub_80A66BC
|
|
sub_80A66BC:
|
|
push {lr}
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080A66CC
|
|
movs r0, 0
|
|
b _080A66CE
|
|
_080A66CC:
|
|
movs r0, 0x1
|
|
_080A66CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A66BC
|
|
|
|
thumb_func_start sub_80A66D4
|
|
sub_80A66D4:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
adds r0, 0x52
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
bge _080A66F2
|
|
adds r0, r1, 0
|
|
adds r0, 0x48
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
ble _080A66F2
|
|
movs r0, 0x1
|
|
b _080A66F4
|
|
_080A66F2:
|
|
movs r0, 0
|
|
_080A66F4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A66D4
|
|
|
|
thumb_func_start sub_80A66F8
|
|
sub_80A66F8:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
adds r0, 0x52
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
blt _080A6716
|
|
ldrh r1, [r1]
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A6716
|
|
lsrs r0, r1, 15
|
|
b _080A6718
|
|
_080A6716:
|
|
movs r0, 0
|
|
_080A6718:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A66F8
|
|
|
|
thumb_func_start sub_80A671C
|
|
sub_80A671C:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r4, 0
|
|
adds r6, 0x58
|
|
movs r0, 0
|
|
ldrsh r1, [r6, r0]
|
|
cmp r1, 0
|
|
beq _080A6752
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _080A674A
|
|
ldr r0, [r4, 0x5C]
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
cmp r0, r5
|
|
beq _080A674A
|
|
bl sub_800E9E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080A674E
|
|
_080A674A:
|
|
movs r0, 0x1
|
|
b _080A6754
|
|
_080A674E:
|
|
str r5, [r4, 0x5C]
|
|
strh r0, [r6]
|
|
_080A6752:
|
|
movs r0, 0
|
|
_080A6754:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A671C
|
|
|
|
thumb_func_start sub_80A675C
|
|
sub_80A675C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r6, r1, 0
|
|
mov r0, sp
|
|
bl sub_809D248
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A678C
|
|
ldr r1, [r6]
|
|
cmp r1, 0
|
|
bge _080A6776
|
|
adds r1, 0xFF
|
|
_080A6776:
|
|
asrs r1, 8
|
|
ldr r0, [sp]
|
|
subs r4, r1, r0
|
|
ldr r1, [r6, 0x4]
|
|
cmp r1, 0
|
|
bge _080A6784
|
|
adds r1, 0xFF
|
|
_080A6784:
|
|
asrs r1, 8
|
|
ldr r0, [sp, 0x4]
|
|
subs r5, r1, r0
|
|
b _080A67A0
|
|
_080A678C:
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
bge _080A6794
|
|
adds r0, 0xFF
|
|
_080A6794:
|
|
asrs r4, r0, 8
|
|
ldr r1, [r6, 0x4]
|
|
cmp r1, 0
|
|
bge _080A679E
|
|
adds r1, 0xFF
|
|
_080A679E:
|
|
asrs r5, r1, 8
|
|
_080A67A0:
|
|
adds r1, r4, 0
|
|
adds r1, 0x40
|
|
ldr r0, _080A67BC
|
|
cmp r1, r0
|
|
bhi _080A67C0
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
blt _080A67C0
|
|
cmp r5, 0xCF
|
|
bgt _080A67C0
|
|
movs r0, 0x1
|
|
b _080A67C2
|
|
.align 2, 0
|
|
_080A67BC: .4byte 0x0000016f
|
|
_080A67C0:
|
|
movs r0, 0
|
|
_080A67C2:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A675C
|
|
|
|
thumb_func_start sub_80A67CC
|
|
sub_80A67CC:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r7, 0
|
|
cmp r5, 0
|
|
beq _080A67E2
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
ble _080A67E2
|
|
movs r7, 0x1
|
|
_080A67E2:
|
|
adds r0, r2, 0
|
|
bl sub_80A65E0
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A65F0
|
|
movs r1, 0
|
|
str r1, [r4, 0x74]
|
|
str r1, [r4, 0x78]
|
|
movs r6, 0x1
|
|
negs r6, r6
|
|
str r6, [r4, 0x7C]
|
|
adds r0, r4, 0
|
|
adds r0, 0x70
|
|
strb r1, [r0]
|
|
subs r0, 0x4
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0x52
|
|
ldr r0, _080A6884
|
|
strh r0, [r2]
|
|
str r1, [r4, 0x54]
|
|
adds r0, r4, 0
|
|
adds r0, 0x64
|
|
strh r1, [r0]
|
|
adds r2, 0x14
|
|
adds r0, r6, 0
|
|
adds r3, r0, 0
|
|
strh r0, [r2]
|
|
adds r0, r4, 0
|
|
adds r0, 0x68
|
|
strh r1, [r0]
|
|
subs r0, 0x10
|
|
strh r1, [r0]
|
|
adds r1, r4, 0
|
|
adds r1, 0x5A
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
str r6, [r4, 0x5C]
|
|
str r6, [r4, 0x60]
|
|
cmp r7, 0
|
|
beq _080A6888
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r4, 0x48]
|
|
str r1, [r4, 0x4C]
|
|
adds r5, r4, 0
|
|
adds r5, 0x48
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_80A68F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A689A
|
|
adds r0, r4, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A689A
|
|
adds r0, r5, 0
|
|
bl sub_80A6CF4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A689A
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_80A68F8
|
|
b _080A689A
|
|
.align 2, 0
|
|
_080A6884: .4byte 0x0000ffff
|
|
_080A6888:
|
|
adds r1, r4, 0
|
|
adds r1, 0x48
|
|
ldrh r0, [r1]
|
|
orrs r0, r3
|
|
strh r0, [r1]
|
|
adds r0, r4, 0
|
|
adds r0, 0x4A
|
|
strh r7, [r0]
|
|
str r7, [r4, 0x4C]
|
|
_080A689A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A67CC
|
|
|
|
thumb_func_start sub_80A68A0
|
|
sub_80A68A0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A68CE
|
|
adds r0, r4, 0
|
|
adds r0, 0x58
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _080A68CE
|
|
ldr r1, [r4, 0x5C]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A68CE
|
|
adds r0, r1, 0
|
|
bl sub_800DC14
|
|
_080A68CE:
|
|
ldr r0, [r4, 0x54]
|
|
cmp r0, 0
|
|
beq _080A68DC
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4, 0x54]
|
|
_080A68DC:
|
|
adds r0, r4, 0
|
|
bl sub_80A69FC
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A68A0
|
|
|
|
thumb_func_start sub_80A68E8
|
|
sub_80A68E8:
|
|
push {lr}
|
|
movs r0, 0x15
|
|
_080A68EC:
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bge _080A68EC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A68E8
|
|
|
|
thumb_func_start sub_80A68F8
|
|
sub_80A68F8:
|
|
push {r4-r7,lr}
|
|
mov r12, r0
|
|
adds r5, r2, 0
|
|
ldr r0, _080A6924
|
|
ldr r4, [r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, r5
|
|
blt _080A6956
|
|
adds r5, r0, 0
|
|
movs r3, 0
|
|
ldr r0, [r4]
|
|
mov r6, r12
|
|
adds r6, 0x52
|
|
mov r7, r12
|
|
adds r7, 0x64
|
|
cmp r0, 0
|
|
bne _080A6928
|
|
movs r2, 0x1
|
|
cmp r2, r5
|
|
blt _080A692A
|
|
b _080A6986
|
|
.align 2, 0
|
|
_080A6924: .4byte gUnknown_3001B7C
|
|
_080A6928:
|
|
movs r2, 0
|
|
_080A692A:
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
adds r4, 0xC
|
|
cmp r3, 0x15
|
|
bgt _080A6986
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080A6928
|
|
adds r2, 0x1
|
|
cmp r2, r5
|
|
blt _080A692A
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
subs r0, 0xC
|
|
subs r4, r0
|
|
adds r0, r3, 0x1
|
|
subs r0, r2
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
b _080A6986
|
|
_080A6956:
|
|
movs r3, 0x15
|
|
adds r4, 0xFC
|
|
ldr r0, [r4]
|
|
mov r6, r12
|
|
adds r6, 0x52
|
|
mov r7, r12
|
|
adds r7, 0x64
|
|
cmp r0, 0
|
|
bne _080A696C
|
|
movs r2, 0x1
|
|
b _080A6982
|
|
_080A696C:
|
|
movs r2, 0
|
|
_080A696E:
|
|
subs r0, r3, 0x1
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
subs r4, 0xC
|
|
cmp r3, 0
|
|
blt _080A6986
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _080A696C
|
|
adds r2, 0x1
|
|
_080A6982:
|
|
cmp r2, r5
|
|
blt _080A696E
|
|
_080A6986:
|
|
cmp r2, r5
|
|
blt _080A69C4
|
|
strh r3, [r6]
|
|
strh r5, [r7]
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
mov r0, r12
|
|
str r0, [r4, 0x8]
|
|
ldrh r1, [r1, 0x2]
|
|
bl GroundSprite_ExtendPaletteAdd
|
|
cmp r5, 0x1
|
|
ble _080A69B2
|
|
movs r2, 0x2
|
|
adds r0, r4, 0
|
|
adds r0, 0xC
|
|
subs r1, r5, 0x1
|
|
_080A69A8:
|
|
str r2, [r0]
|
|
adds r0, 0xC
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080A69A8
|
|
_080A69B2:
|
|
ldr r1, _080A69C0
|
|
ldr r0, [r1]
|
|
subs r0, r5
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
b _080A69EC
|
|
.align 2, 0
|
|
_080A69C0: .4byte gUnknown_2039DD4
|
|
_080A69C4:
|
|
ldr r1, _080A69F4
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r1, r12
|
|
str r0, [r1, 0x7C]
|
|
mov r0, r12
|
|
adds r0, 0x70
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _080A69F8
|
|
strh r0, [r6]
|
|
strh r1, [r7]
|
|
mov r0, r12
|
|
adds r0, 0x6C
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
strh r1, [r0]
|
|
movs r0, 0
|
|
_080A69EC:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A69F4: .4byte gUnknown_2039DD0
|
|
_080A69F8: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A68F8
|
|
|
|
thumb_func_start sub_80A69FC
|
|
sub_80A69FC:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r6, 0
|
|
adds r7, 0x52
|
|
movs r0, 0
|
|
ldrsh r4, [r7, r0]
|
|
ldr r0, _080A6A80
|
|
lsls r1, r4, 1
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
ldr r0, [r0]
|
|
adds r5, r0, r1
|
|
cmp r4, 0
|
|
blt _080A6A7A
|
|
adds r0, r6, 0
|
|
bl GroundSprite_ExtendPaletteDelete
|
|
movs r0, 0
|
|
str r0, [r5, 0x8]
|
|
str r0, [r5]
|
|
adds r5, 0xC
|
|
ldr r1, _080A6A84
|
|
ldr r0, [r1]
|
|
adds r0, 0x1
|
|
str r0, [r1]
|
|
adds r0, r4, 0x1
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r6, 0x64
|
|
mov r12, r6
|
|
cmp r4, 0x15
|
|
bgt _080A6A6A
|
|
ldr r0, [r5]
|
|
cmp r0, 0x2
|
|
bne _080A6A6A
|
|
movs r6, 0
|
|
adds r2, r1, 0
|
|
lsls r1, r4, 16
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r1, r0
|
|
adds r3, r0, 0
|
|
_080A6A50:
|
|
str r6, [r5]
|
|
adds r5, 0xC
|
|
ldr r0, [r2]
|
|
adds r0, 0x1
|
|
str r0, [r2]
|
|
adds r0, r1, 0
|
|
adds r1, r3
|
|
asrs r4, r0, 16
|
|
cmp r4, 0x15
|
|
bgt _080A6A6A
|
|
ldr r0, [r5]
|
|
cmp r0, 0x2
|
|
beq _080A6A50
|
|
_080A6A6A:
|
|
ldr r0, _080A6A88
|
|
strh r0, [r7]
|
|
movs r0, 0
|
|
mov r1, r12
|
|
strh r0, [r1]
|
|
ldr r1, _080A6A8C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_080A6A7A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6A80: .4byte gUnknown_3001B7C
|
|
_080A6A84: .4byte gUnknown_2039DD4
|
|
_080A6A88: .4byte 0x0000ffff
|
|
_080A6A8C: .4byte gUnknown_2039DD0
|
|
thumb_func_end sub_80A69FC
|
|
|
|
thumb_func_start GroundSprite_ExtendPaletteAdd
|
|
GroundSprite_ExtendPaletteAdd:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
mov r10, r0
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
adds r5, r2, 0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080A6AB0
|
|
b _080A6C6C
|
|
_080A6AB0:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080A6AD8
|
|
ldr r0, _080A6AD4
|
|
ldr r1, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 1
|
|
adds r4, r1, r3
|
|
ldrh r1, [r4]
|
|
adds r3, r0, 0
|
|
cmp r1, r2
|
|
bne _080A6B36
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
b _080A6C78
|
|
.align 2, 0
|
|
_080A6AD4: .4byte gUnknown_3001B7C
|
|
_080A6AD8:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r1, _080A6B1C
|
|
ldr r0, [r1]
|
|
movs r2, 0x84
|
|
lsls r2, 1
|
|
adds r4, r0, r2
|
|
adds r3, r1, 0
|
|
movs r1, 0xE8
|
|
lsls r1, 13
|
|
_080A6AEC:
|
|
ldrh r0, [r4]
|
|
cmp r0, r5
|
|
bne _080A6B24
|
|
lsrs r1, 16
|
|
adds r3, r1, 0
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _080A6B08
|
|
subs r1, 0x10
|
|
adds r0, 0x68
|
|
strh r1, [r0]
|
|
_080A6B08:
|
|
adds r0, r3, 0
|
|
subs r0, 0x10
|
|
str r0, [sp]
|
|
str r5, [sp, 0x4]
|
|
movs r0, 0
|
|
ldr r1, _080A6B20
|
|
mov r2, r8
|
|
bl Log
|
|
b _080A6C78
|
|
.align 2, 0
|
|
_080A6B1C: .4byte gUnknown_3001B7C
|
|
_080A6B20: .4byte gUnknown_81177F4
|
|
_080A6B24:
|
|
movs r2, 0x80
|
|
lsls r2, 9
|
|
adds r1, r2
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
adds r4, 0x4
|
|
mov r2, r8
|
|
cmp r2, 0x1
|
|
ble _080A6AEC
|
|
_080A6B36:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A6B68
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r0, [r3]
|
|
movs r1, 0x86
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A6BA8
|
|
ldr r0, _080A6B60
|
|
ldr r1, _080A6B64
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A6B60: .4byte gUnknown_8117858
|
|
_080A6B64: .4byte gUnknown_8117864
|
|
_080A6B68:
|
|
movs r0, 0
|
|
mov r8, r0
|
|
ldr r0, [r3]
|
|
movs r1, 0x84
|
|
lsls r1, 1
|
|
adds r4, r0, r1
|
|
movs r2, 0x2
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
ble _080A6B90
|
|
_080A6B7C:
|
|
movs r3, 0x1
|
|
add r8, r3
|
|
adds r4, 0x4
|
|
mov r0, r8
|
|
cmp r0, 0x1
|
|
bgt _080A6B96
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
bgt _080A6B7C
|
|
_080A6B90:
|
|
mov r2, r8
|
|
cmp r2, 0x1
|
|
ble _080A6BA8
|
|
_080A6B96:
|
|
ldr r0, _080A6BA0
|
|
ldr r1, _080A6BA4
|
|
adds r2, r5, 0
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A6BA0: .4byte gUnknown_8117888
|
|
_080A6BA4: .4byte gUnknown_8117864
|
|
_080A6BA8:
|
|
mov r0, r8
|
|
adds r0, 0x1D
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0xC]
|
|
mov r3, r8
|
|
lsls r0, r3, 20
|
|
movs r1, 0xE8
|
|
lsls r1, 17
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x10]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A6BE8
|
|
ldr r0, _080A6BE0
|
|
ldr r1, _080A6BE4
|
|
bl OpenFileAndGetFileDataPtr
|
|
mov r9, r0
|
|
ldr r7, [r0, 0x4]
|
|
movs r0, 0xFF
|
|
ands r0, r5
|
|
lsls r0, 6
|
|
adds r7, r0
|
|
b _080A6BFE
|
|
.align 2, 0
|
|
_080A6BE0: .4byte gUnknown_81177EC
|
|
_080A6BE4: .4byte gUnknown_8510000
|
|
_080A6BE8:
|
|
movs r0, 0xFF
|
|
ands r0, r5
|
|
lsls r0, 2
|
|
ldr r1, _080A6C60
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
ldr r1, _080A6C64
|
|
bl OpenFileAndGetFileDataPtr
|
|
mov r9, r0
|
|
ldr r7, [r0, 0x4]
|
|
_080A6BFE:
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
ands r0, r5
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
negs r0, r0
|
|
lsrs r6, r0, 31
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _080A6C1A
|
|
movs r0, 0x2
|
|
orrs r6, r0
|
|
_080A6C1A:
|
|
ldr r0, [sp, 0xC]
|
|
adds r1, r6, 0
|
|
bl sub_80997F4
|
|
ldr r0, [sp, 0x10]
|
|
adds r1, r7, 0
|
|
movs r2, 0x10
|
|
bl sub_809971C
|
|
strh r5, [r4]
|
|
movs r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
ldr r2, [sp, 0xC]
|
|
subs r2, 0x10
|
|
mov r3, r10
|
|
cmp r3, 0
|
|
beq _080A6C42
|
|
mov r0, r10
|
|
adds r0, 0x68
|
|
strh r2, [r0]
|
|
_080A6C42:
|
|
ldr r1, _080A6C68
|
|
str r2, [sp]
|
|
str r5, [sp, 0x4]
|
|
str r6, [sp, 0x8]
|
|
movs r0, 0
|
|
mov r2, r8
|
|
ldr r3, [sp, 0xC]
|
|
bl Log
|
|
mov r0, r9
|
|
cmp r0, 0
|
|
beq _080A6C78
|
|
bl CloseFile
|
|
b _080A6C78
|
|
.align 2, 0
|
|
_080A6C60: .4byte gUnknown_81178F4
|
|
_080A6C64: .4byte gUnknown_9E60000
|
|
_080A6C68: .4byte gUnknown_8117894
|
|
_080A6C6C:
|
|
mov r1, r10
|
|
cmp r1, 0
|
|
beq _080A6C78
|
|
mov r0, r10
|
|
adds r0, 0x68
|
|
strh r5, [r0]
|
|
_080A6C78:
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end GroundSprite_ExtendPaletteAdd
|
|
|
|
thumb_func_start GroundSprite_ExtendPaletteDelete
|
|
GroundSprite_ExtendPaletteDelete:
|
|
push {r4-r6,lr}
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
beq _080A6C9E
|
|
adds r0, 0x68
|
|
ldrh r0, [r0]
|
|
adds r5, r0, 0
|
|
subs r5, 0xD
|
|
cmp r5, 0
|
|
blt _080A6CE6
|
|
b _080A6CA0
|
|
_080A6C9E:
|
|
movs r5, 0x1
|
|
_080A6CA0:
|
|
ldr r0, _080A6CEC
|
|
lsls r1, r5, 2
|
|
movs r3, 0x84
|
|
lsls r3, 1
|
|
adds r1, r3
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
cmp r2, 0
|
|
beq _080A6CBA
|
|
adds r1, r2, 0
|
|
adds r1, 0x68
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_080A6CBA:
|
|
ldrh r0, [r4, 0x2]
|
|
subs r0, 0x1
|
|
movs r6, 0
|
|
strh r0, [r4, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bgt _080A6CE6
|
|
ldr r1, _080A6CF0
|
|
ldrh r3, [r4]
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
bl Log
|
|
strh r6, [r4]
|
|
strh r6, [r4, 0x2]
|
|
adds r0, r5, 0
|
|
adds r0, 0x1D
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0
|
|
bl sub_80997F4
|
|
_080A6CE6:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6CEC: .4byte gUnknown_3001B7C
|
|
_080A6CF0: .4byte gUnknown_81178C0
|
|
thumb_func_end GroundSprite_ExtendPaletteDelete
|
|
|
|
thumb_func_start sub_80A6CF4
|
|
sub_80A6CF4:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x68
|
|
movs r1, 0
|
|
mov r8, r1
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
mov r9, r2
|
|
movs r2, 0
|
|
mov r10, r2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [sp, 0x60]
|
|
str r0, [sp, 0x64]
|
|
add r4, sp, 0x58
|
|
adds r0, r4, 0
|
|
bl sub_809D248
|
|
movs r7, 0
|
|
ldr r0, _080A6D70
|
|
ldr r3, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 6
|
|
mov r12, r1
|
|
mov r4, sp
|
|
_080A6D2C:
|
|
ldr r0, [r3]
|
|
cmp r0, 0x1
|
|
bne _080A6DB4
|
|
ldr r2, [r3, 0x8]
|
|
adds r0, r2, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
mov r0, r12
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080A6DB4
|
|
ldr r0, [r2, 0x7C]
|
|
cmp r0, 0
|
|
blt _080A6DB4
|
|
ldr r1, [r2, 0x74]
|
|
cmp r1, 0
|
|
bge _080A6D50
|
|
adds r1, 0xFF
|
|
_080A6D50:
|
|
asrs r1, 8
|
|
ldr r0, [sp, 0x58]
|
|
subs r5, r1, r0
|
|
ldr r1, [r2, 0x78]
|
|
cmp r1, 0
|
|
bge _080A6D5E
|
|
adds r1, 0xFF
|
|
_080A6D5E:
|
|
asrs r1, 8
|
|
ldr r0, [sp, 0x5C]
|
|
subs r1, r0
|
|
adds r6, r1, 0
|
|
cmp r1, 0
|
|
ble _080A6D74
|
|
adds r0, r6, 0
|
|
adds r0, 0x28
|
|
b _080A6D78
|
|
.align 2, 0
|
|
_080A6D70: .4byte gUnknown_3001B7C
|
|
_080A6D74:
|
|
movs r0, 0x28
|
|
subs r0, r6
|
|
_080A6D78:
|
|
str r0, [r2, 0x7C]
|
|
cmp r5, 0
|
|
ble _080A6D88
|
|
ldr r0, [r2, 0x7C]
|
|
cmp r5, r0
|
|
ble _080A6D92
|
|
str r5, [r2, 0x7C]
|
|
b _080A6D92
|
|
_080A6D88:
|
|
negs r1, r5
|
|
ldr r0, [r2, 0x7C]
|
|
cmp r1, r0
|
|
ble _080A6D92
|
|
str r1, [r2, 0x7C]
|
|
_080A6D92:
|
|
adds r0, r2, 0
|
|
adds r0, 0x48
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
add r10, r0
|
|
cmp r0, r9
|
|
blt _080A6DAE
|
|
ldr r0, [r2, 0x7C]
|
|
ldr r1, [sp, 0x64]
|
|
cmp r1, r0
|
|
bge _080A6DAE
|
|
mov r1, r8
|
|
str r1, [sp, 0x60]
|
|
str r0, [sp, 0x64]
|
|
_080A6DAE:
|
|
stm r4!, {r2}
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
_080A6DB4:
|
|
adds r0, r7, 0x1
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
adds r3, 0xC
|
|
cmp r7, 0x15
|
|
ble _080A6D2C
|
|
cmp r10, r9
|
|
blt _080A6E54
|
|
ldr r0, [sp, 0x60]
|
|
cmp r0, 0
|
|
blt _080A6DD8
|
|
lsls r0, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
bl sub_80A69FC
|
|
movs r0, 0x1
|
|
b _080A6E56
|
|
_080A6DD8:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
ble _080A6E54
|
|
_080A6DDE:
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
adds r3, r5, 0
|
|
movs r6, 0
|
|
mov r7, r8
|
|
subs r7, 0x1
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
ble _080A6E08
|
|
mov r2, sp
|
|
mov r1, r8
|
|
_080A6DF4:
|
|
ldr r0, [r2]
|
|
ldr r0, [r0, 0x7C]
|
|
cmp r3, r0
|
|
bge _080A6E00
|
|
mov r5, r8
|
|
adds r3, r0, 0
|
|
_080A6E00:
|
|
adds r2, 0x4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bne _080A6DF4
|
|
_080A6E08:
|
|
lsls r0, r5, 2
|
|
mov r1, sp
|
|
adds r4, r1, r0
|
|
ldr r0, [r4]
|
|
bl sub_80A69FC
|
|
mov r8, r7
|
|
adds r1, r5, 0
|
|
cmp r1, r8
|
|
bge _080A6E28
|
|
adds r2, r4, 0
|
|
_080A6E1E:
|
|
ldr r0, [r2, 0x4]
|
|
stm r2!, {r0}
|
|
adds r1, 0x1
|
|
cmp r1, r8
|
|
blt _080A6E1E
|
|
_080A6E28:
|
|
movs r1, 0
|
|
ldr r0, _080A6E40
|
|
ldr r3, [r0]
|
|
_080A6E2E:
|
|
ldr r0, [r3]
|
|
cmp r0, 0
|
|
bne _080A6E44
|
|
adds r6, 0x1
|
|
cmp r6, r9
|
|
blt _080A6E46
|
|
movs r0, 0x1
|
|
b _080A6E56
|
|
.align 2, 0
|
|
_080A6E40: .4byte gUnknown_3001B7C
|
|
_080A6E44:
|
|
movs r6, 0
|
|
_080A6E46:
|
|
adds r1, 0x1
|
|
adds r3, 0xC
|
|
cmp r1, 0x15
|
|
ble _080A6E2E
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bgt _080A6DDE
|
|
_080A6E54:
|
|
movs r0, 0
|
|
_080A6E56:
|
|
add sp, 0x68
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A6CF4
|
|
|
|
thumb_func_start sub_80A6E68
|
|
sub_80A6E68:
|
|
push {lr}
|
|
movs r0, 0
|
|
bl ResetSprites
|
|
movs r0, 0
|
|
bl nullsub_10
|
|
bl sub_800E970
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6E68
|
|
|
|
thumb_func_start sub_80A6E80
|
|
sub_80A6E80:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
ldr r4, _080A6EC4
|
|
adds r0, r4, 0
|
|
bl sub_809D248
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A6E98
|
|
str r0, [r4]
|
|
str r0, [r4, 0x4]
|
|
_080A6E98:
|
|
bl sub_80ABA7C
|
|
bl sub_80ACAD4
|
|
bl sub_80AD7AC
|
|
ldrh r1, [r4, 0x4]
|
|
lsls r1, 16
|
|
ldrh r0, [r4]
|
|
orrs r0, r1
|
|
str r0, [sp]
|
|
mov r0, sp
|
|
bl sub_800E90C
|
|
bl sub_8005180
|
|
bl nullsub_12
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A6EC4: .4byte gUnknown_2039DD8
|
|
thumb_func_end sub_80A6E80
|
|
|
|
thumb_func_start sub_80A6EC8
|
|
sub_80A6EC8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, 0x52
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, 0
|
|
ble _080A6EF6
|
|
adds r0, r2, 0
|
|
adds r0, 0x48
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r1, r0
|
|
bgt _080A6EE4
|
|
adds r1, r0, 0
|
|
_080A6EE4:
|
|
adds r0, r2, 0
|
|
adds r0, 0x64
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, r1
|
|
beq _080A6EF6
|
|
adds r0, r2, 0
|
|
adds r0, 0x66
|
|
strh r1, [r0]
|
|
_080A6EF6:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6EC8
|
|
|
|
thumb_func_start sub_80A6EFC
|
|
sub_80A6EFC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
asrs r7, r1, 16
|
|
lsls r2, 24
|
|
asrs r6, r2, 24
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
bge _080A6F48
|
|
adds r5, r4, 0
|
|
adds r5, 0x66
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0
|
|
blt _080A6F28
|
|
adds r1, r4, 0
|
|
adds r1, 0x48
|
|
adds r2, r0, 0
|
|
b _080A6F62
|
|
_080A6F28:
|
|
adds r1, r4, 0
|
|
adds r1, 0x48
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bgt _080A6F36
|
|
b _080A7038
|
|
_080A6F36:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r4, 0
|
|
bl sub_80A68F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7038
|
|
b _080A6F72
|
|
_080A6F48:
|
|
adds r5, r4, 0
|
|
adds r5, 0x66
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
blt _080A6F72
|
|
adds r0, r4, 0
|
|
bl sub_80A69FC
|
|
adds r1, r4, 0
|
|
adds r1, 0x48
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
_080A6F62:
|
|
adds r0, r4, 0
|
|
bl sub_80A68F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A7038
|
|
ldr r0, _080A6F8C
|
|
strh r0, [r5]
|
|
_080A6F72:
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
ands r0, r7
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
cmp r3, 0
|
|
beq _080A6F94
|
|
ldrh r1, [r4]
|
|
ldr r0, _080A6F90
|
|
ands r0, r1
|
|
strh r0, [r4]
|
|
b _080A7038
|
|
.align 2, 0
|
|
_080A6F8C: .4byte 0x0000ffff
|
|
_080A6F90: .4byte 0x0000efff
|
|
_080A6F94:
|
|
ldr r2, _080A6FE0
|
|
adds r0, r4, 0
|
|
adds r0, 0x52
|
|
movs r5, 0
|
|
ldrsh r1, [r0, r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
mov r12, r1
|
|
adds r1, r4, 0
|
|
adds r1, 0x70
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
subs r0, 0x2
|
|
str r0, [r4, 0x7C]
|
|
movs r1, 0xE0
|
|
lsls r1, 3
|
|
ands r1, r7
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _080A6FE4
|
|
cmp r1, r0
|
|
ble _080A6FEE
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _080A6FFA
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
bne _080A6FEE
|
|
adds r0, r4, 0
|
|
adds r0, 0x6C
|
|
strh r3, [r0]
|
|
b _080A7000
|
|
.align 2, 0
|
|
_080A6FE0: .4byte gUnknown_3001B7C
|
|
_080A6FE4:
|
|
adds r1, r4, 0
|
|
adds r1, 0x6C
|
|
movs r0, 0x80
|
|
strh r0, [r1]
|
|
b _080A7000
|
|
_080A6FEE:
|
|
adds r1, r4, 0
|
|
adds r1, 0x6C
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
b _080A7000
|
|
_080A6FFA:
|
|
adds r0, r4, 0
|
|
adds r0, 0x6C
|
|
strh r1, [r0]
|
|
_080A7000:
|
|
adds r0, r4, 0
|
|
adds r0, 0x6E
|
|
movs r1, 0
|
|
strh r1, [r0]
|
|
ldr r5, [r4, 0x4C]
|
|
movs r0, 0xFF
|
|
ands r0, r7
|
|
adds r2, r6, 0
|
|
cmp r6, 0
|
|
bge _080A7016
|
|
adds r2, r6, 0x7
|
|
_080A7016:
|
|
asrs r2, 3
|
|
adds r2, r0, r2
|
|
movs r3, 0x7
|
|
ands r3, r6
|
|
mov r6, r12
|
|
ldr r0, [r6, 0x4]
|
|
str r0, [sp]
|
|
str r1, [sp, 0x4]
|
|
lsls r0, r7, 16
|
|
lsrs r0, 27
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
str r0, [sp, 0x8]
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80053D0
|
|
_080A7038:
|
|
add sp, 0xC
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A6EFC
|
|
|
|
thumb_func_start sub_80A7040
|
|
sub_80A7040:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r3, 0
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
lsls r2, 24
|
|
asrs r2, 24
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A708C
|
|
cmp r3, 0
|
|
beq _080A7068
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
cmp r3, r0
|
|
bne _080A7080
|
|
_080A7068:
|
|
adds r0, r4, 0
|
|
bl sub_80A671C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A708C
|
|
adds r1, r4, 0
|
|
adds r1, 0x58
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
b _080A708C
|
|
_080A7080:
|
|
adds r0, r4, 0
|
|
adds r0, 0x58
|
|
strh r3, [r0]
|
|
adds r0, 0x2
|
|
strb r2, [r0]
|
|
str r5, [r4, 0x60]
|
|
_080A708C:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7040
|
|
|
|
thumb_func_start sub_80A7094
|
|
sub_80A7094:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x40
|
|
adds r7, r0, 0
|
|
mov r10, r1
|
|
mov r8, r2
|
|
str r3, [sp, 0x3C]
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
str r0, [r7, 0x74]
|
|
str r1, [r7, 0x78]
|
|
movs r6, 0
|
|
str r6, [r7, 0x7C]
|
|
adds r0, r7, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7172
|
|
adds r4, r7, 0
|
|
adds r4, 0x58
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
beq _080A7172
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080A70EC
|
|
ldr r0, [r7, 0x5C]
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
cmp r0, r5
|
|
beq _080A70E8
|
|
bl sub_800DC14
|
|
str r5, [r7, 0x5C]
|
|
_080A70E8:
|
|
strh r6, [r4]
|
|
b _080A7172
|
|
_080A70EC:
|
|
ldr r0, [r7, 0x5C]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r9, r1
|
|
cmp r0, r9
|
|
bne _080A7160
|
|
add r1, sp, 0x8
|
|
ldr r0, _080A715C
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_800EE5C
|
|
bl sub_800EF64
|
|
add r2, sp, 0x14
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
str r0, [sp, 0x14]
|
|
str r6, [r2, 0x4]
|
|
adds r0, r7, 0
|
|
adds r0, 0x5A
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
str r0, [r2, 0x8]
|
|
mov r4, r8
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bge _080A712C
|
|
adds r0, 0xFF
|
|
_080A712C:
|
|
asrs r0, 8
|
|
strh r0, [r2, 0xC]
|
|
mov r5, r8
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
bge _080A713A
|
|
adds r0, 0xFF
|
|
_080A713A:
|
|
asrs r0, 8
|
|
strh r0, [r2, 0xE]
|
|
strh r6, [r2, 0x10]
|
|
strh r6, [r2, 0x12]
|
|
mov r0, r9
|
|
str r0, [r2, 0x14]
|
|
str r6, [r2, 0x18]
|
|
add r1, sp, 0x30
|
|
add r0, sp, 0x8
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
adds r0, r2, 0
|
|
bl sub_800E890
|
|
str r0, [r7, 0x5C]
|
|
b _080A7172
|
|
.align 2, 0
|
|
_080A715C: .4byte gUnknown_81178E0
|
|
_080A7160:
|
|
bl sub_800E9E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _080A7172
|
|
mov r1, r9
|
|
str r1, [r7, 0x5C]
|
|
strh r0, [r4]
|
|
_080A7172:
|
|
adds r0, r7, 0
|
|
adds r0, 0x52
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
blt _080A7222
|
|
adds r0, r7, 0
|
|
adds r0, 0x50
|
|
ldrh r4, [r0]
|
|
movs r0, 0x40
|
|
ands r0, r4
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
mov r9, r0
|
|
cmp r0, 0
|
|
bne _080A7222
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
cmp r1, 0
|
|
bge _080A719C
|
|
adds r1, 0xFF
|
|
_080A719C:
|
|
asrs r1, 8
|
|
ldr r2, _080A7228
|
|
ldr r0, [r2]
|
|
subs r5, r1, r0
|
|
mov r1, r8
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bge _080A71AE
|
|
adds r0, 0xFF
|
|
_080A71AE:
|
|
asrs r1, r0, 8
|
|
ldr r0, [r2, 0x4]
|
|
subs r6, r1, r0
|
|
ldr r3, [sp, 0x3C]
|
|
cmp r3, 0
|
|
bge _080A71BC
|
|
adds r3, 0xFF
|
|
_080A71BC:
|
|
asrs r0, r3, 8
|
|
subs r0, r6, r0
|
|
mov r8, r0
|
|
adds r1, r5, 0
|
|
adds r1, 0x40
|
|
ldr r0, _080A722C
|
|
cmp r1, r0
|
|
bhi _080A7274
|
|
movs r0, 0x10
|
|
negs r0, r0
|
|
cmp r6, r0
|
|
blt _080A7274
|
|
cmp r6, 0xCF
|
|
bgt _080A7274
|
|
cmp r8, r0
|
|
blt _080A7274
|
|
mov r2, r8
|
|
cmp r2, 0xCF
|
|
bgt _080A7274
|
|
movs r0, 0x10
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080A7234
|
|
ldr r0, _080A7230
|
|
ldrh r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A7234
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_80A72B8
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x68
|
|
ldrh r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r0, 0x3C
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
movs r2, 0xD0
|
|
movs r3, 0
|
|
bl sub_800558C
|
|
adds r0, r7, 0
|
|
adds r0, 0x70
|
|
mov r3, r9
|
|
strb r3, [r0]
|
|
_080A7222:
|
|
movs r0, 0
|
|
b _080A72A6
|
|
.align 2, 0
|
|
_080A7228: .4byte gUnknown_2039DD8
|
|
_080A722C: .4byte 0x0000016f
|
|
_080A7230: .4byte gUnknown_2039DCC
|
|
_080A7234:
|
|
adds r4, r7, 0
|
|
adds r4, 0x70
|
|
ldrb r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_80A72B8
|
|
adds r0, r7, 0
|
|
adds r0, 0x6A
|
|
movs r1, 0
|
|
ldrsh r3, [r0, r1]
|
|
adds r3, r6
|
|
subs r0, 0x2
|
|
ldrh r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r0, 0x3C
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
mov r2, r8
|
|
bl sub_800558C
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
mov r2, r10
|
|
cmp r2, 0
|
|
beq _080A7270
|
|
mov r3, r10
|
|
str r5, [r3]
|
|
str r6, [r3, 0x4]
|
|
_080A7270:
|
|
movs r0, 0x1
|
|
b _080A72A6
|
|
_080A7274:
|
|
adds r4, r7, 0
|
|
adds r4, 0x70
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _080A7222
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl sub_80A72B8
|
|
movs r1, 0x98
|
|
lsls r1, 1
|
|
adds r0, r7, 0
|
|
adds r0, 0x68
|
|
ldrh r0, [r0]
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r0, 0x3C
|
|
str r0, [sp, 0x4]
|
|
adds r0, r7, 0
|
|
movs r2, 0xD0
|
|
movs r3, 0
|
|
bl sub_800558C
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_080A72A6:
|
|
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_80A7094
|
|
|
|
thumb_func_start sub_80A72B8
|
|
sub_80A72B8:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
cmp r1, 0
|
|
beq _080A72D2
|
|
adds r1, r6, 0
|
|
adds r1, 0x6E
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
adds r0, r6, 0
|
|
bl sub_80054BC
|
|
b _080A7304
|
|
_080A72D2:
|
|
adds r5, r6, 0
|
|
adds r5, 0x6E
|
|
adds r0, r6, 0
|
|
adds r0, 0x6C
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r5]
|
|
adds r0, r1
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xFF
|
|
ble _080A7304
|
|
ldr r0, _080A730C
|
|
adds r7, r0, 0
|
|
_080A72EE:
|
|
adds r4, r5, 0
|
|
ldrh r1, [r5]
|
|
adds r0, r7, r1
|
|
strh r0, [r5]
|
|
adds r0, r6, 0
|
|
bl sub_80054BC
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0xFF
|
|
bgt _080A72EE
|
|
_080A7304:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A730C: .4byte 0xffffff00
|
|
thumb_func_end sub_80A72B8
|
|
|
|
thumb_func_start sub_80A7310
|
|
sub_80A7310:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
mov r12, r0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A73DC
|
|
mov r0, r12
|
|
ldr r0, [r0, 0x5C]
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r8, r0
|
|
beq _080A73DC
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bge _080A7344
|
|
adds r0, 0xFF
|
|
_080A7344:
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
ldr r1, _080A73D0
|
|
mov r9, r1
|
|
ldr r2, [sp, 0x4]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp, 0x4]
|
|
ldr r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bge _080A735C
|
|
adds r0, 0xFF
|
|
_080A735C:
|
|
lsls r0, 8
|
|
lsrs r0, 16
|
|
lsls r0, 16
|
|
ldr r6, _080A73D4
|
|
adds r4, r6, 0
|
|
ands r4, r2
|
|
orrs r4, r0
|
|
str r4, [sp, 0x4]
|
|
asrs r2, r4, 16
|
|
ldr r0, _080A73D8
|
|
ldr r0, [r0, 0x4]
|
|
subs r0, r2, r0
|
|
mov r1, r12
|
|
adds r1, 0x6A
|
|
movs r7, 0
|
|
ldrsh r1, [r1, r7]
|
|
adds r0, r1
|
|
adds r7, r0, 0x2
|
|
cmp r3, 0
|
|
bge _080A7386
|
|
adds r3, 0xFF
|
|
_080A7386:
|
|
asrs r0, r3, 8
|
|
subs r0, r2, r0
|
|
lsls r0, 16
|
|
adds r2, r6, 0
|
|
ands r2, r4
|
|
orrs r2, r0
|
|
str r2, [sp, 0x4]
|
|
cmp r5, 0
|
|
beq _080A73B8
|
|
ldr r1, [r5]
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0]
|
|
adds r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, r9
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
asrs r2, r0, 16
|
|
ldr r1, [r5, 0x4]
|
|
adds r1, r2
|
|
lsls r1, 16
|
|
ands r0, r6
|
|
orrs r0, r1
|
|
str r0, [sp, 0x4]
|
|
_080A73B8:
|
|
mov r0, r12
|
|
adds r0, 0x3C
|
|
str r0, [sp]
|
|
mov r0, r8
|
|
add r1, sp, 0x4
|
|
movs r2, 0
|
|
adds r3, r7, 0
|
|
bl sub_800E8AC
|
|
movs r0, 0x1
|
|
b _080A73DE
|
|
.align 2, 0
|
|
_080A73D0: .4byte 0xffff0000
|
|
_080A73D4: .4byte 0x0000ffff
|
|
_080A73D8: .4byte gUnknown_2039DD8
|
|
_080A73DC:
|
|
movs r0, 0
|
|
_080A73DE:
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A7310
|
|
|
|
thumb_func_start sub_80A73EC
|
|
sub_80A73EC:
|
|
push {lr}
|
|
bl CopySpritesToOam
|
|
bl nullsub_13
|
|
bl sub_8005304
|
|
bl nullsub_14
|
|
ldr r1, _080A7420
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
ldr r1, _080A7424
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0xB
|
|
bls _080A741A
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
_080A741A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7420: .4byte gUnknown_2039DCC
|
|
_080A7424: .4byte gUnknown_2039DCE
|
|
thumb_func_end sub_80A73EC
|
|
|
|
thumb_func_start sub_80A7428
|
|
sub_80A7428:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
adds r6, r0, 0
|
|
mov r8, r3
|
|
lsls r1, 16
|
|
asrs r7, r1, 16
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
adds r4, r2, 0
|
|
ldr r1, _080A7480
|
|
mov r0, sp
|
|
bl sprintf
|
|
ldr r1, _080A7484
|
|
mov r0, sp
|
|
bl OpenFile
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
adds r0, r4, 0
|
|
bl sub_808DACC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080A7488
|
|
ldr r2, [sp, 0xC]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
str r2, [sp, 0xC]
|
|
movs r0, 0xD3
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _080A7490
|
|
ldr r0, _080A748C
|
|
ands r0, r2
|
|
movs r1, 0x91
|
|
lsls r1, 17
|
|
orrs r0, r1
|
|
str r0, [sp, 0xC]
|
|
b _080A74AC
|
|
.align 2, 0
|
|
_080A7480: .4byte gUnknown_8117EDC
|
|
_080A7484: .4byte gUnknown_8510000
|
|
_080A7488: .4byte 0xffff0000
|
|
_080A748C: .4byte 0x0000ffff
|
|
_080A7490:
|
|
movs r1, 0
|
|
cmp r7, 0x47
|
|
bne _080A7498
|
|
movs r1, 0x1
|
|
_080A7498:
|
|
adds r0, r4, 0
|
|
bl sub_808DD68
|
|
lsls r0, 24
|
|
lsrs r0, 8
|
|
ldr r2, _080A74E0
|
|
ldr r1, [sp, 0xC]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
str r1, [sp, 0xC]
|
|
_080A74AC:
|
|
ldr r0, [r5, 0x4]
|
|
add r1, sp, 0xC
|
|
str r0, [r1, 0x4]
|
|
adds r0, r6, 0
|
|
mov r2, r8
|
|
bl sub_80A67CC
|
|
str r5, [r6, 0x54]
|
|
adds r0, r6, 0
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
blt _080A74D4
|
|
movs r1, 0xC0
|
|
lsls r1, 2
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
bl sub_80A6EFC
|
|
_080A74D4:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A74E0: .4byte 0x0000ffff
|
|
thumb_func_end sub_80A7428
|
|
|
|
thumb_func_start sub_80A74E4
|
|
sub_80A74E4:
|
|
push {lr}
|
|
bl sub_80A68A0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A74E4
|
|
|
|
thumb_func_start sub_80A74F0
|
|
sub_80A74F0:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
lsls r2, 24
|
|
asrs r5, r2, 24
|
|
cmp r3, 0
|
|
bge _080A7514
|
|
movs r0, 0xE0
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
beq _080A7512
|
|
adds r0, r4, 0
|
|
bl sub_800E700
|
|
adds r3, r0, 0
|
|
b _080A7514
|
|
_080A7512:
|
|
movs r3, 0
|
|
_080A7514:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A7040
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A74F0
|
|
|
|
thumb_func_start sub_80A7524
|
|
sub_80A7524:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
mov r8, r1
|
|
mov r1, sp
|
|
bl sub_80A7094
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A75C0
|
|
ldr r1, [r5, 0x5C]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A758C
|
|
ldr r2, [r5, 0x60]
|
|
cmp r2, 0x3
|
|
bgt _080A7580
|
|
cmp r2, 0
|
|
blt _080A7580
|
|
add r4, sp, 0x8
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_800569C
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
str r0, [sp, 0xC]
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
add r2, sp, 0xC
|
|
str r0, [r2, 0x4]
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
adds r3, r7, 0
|
|
bl sub_80A7310
|
|
b _080A758C
|
|
_080A7580:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
adds r3, r7, 0
|
|
bl sub_80A7310
|
|
_080A758C:
|
|
adds r0, r5, 0
|
|
adds r0, 0x50
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A75B4
|
|
ldr r0, [sp]
|
|
lsls r0, 16
|
|
ldr r1, [sp, 0x4]
|
|
lsls r1, 16
|
|
lsrs r0, 16
|
|
orrs r0, r1
|
|
str r0, [sp, 0x14]
|
|
add r1, sp, 0x14
|
|
mov r0, r8
|
|
adds r2, r5, 0
|
|
bl sub_808E668
|
|
_080A75B4:
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
adds r3, r7, 0
|
|
bl sub_80A7310
|
|
_080A75C0:
|
|
add sp, 0x18
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7524
|
|
|
|
thumb_func_start sub_80A75CC
|
|
sub_80A75CC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r6, r3, 0
|
|
lsls r2, 16
|
|
asrs r2, 13
|
|
ldr r0, _080A7618
|
|
adds r2, r0
|
|
movs r5, 0
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, _080A761C
|
|
ldr r1, [sp]
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
ldrh r3, [r2, 0x2]
|
|
lsls r3, 16
|
|
ldr r0, _080A7620
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
str r0, [sp]
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
beq _080A7628
|
|
ldr r1, _080A7624
|
|
bl OpenFile
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp, 0x4]
|
|
b _080A762A
|
|
.align 2, 0
|
|
_080A7618: .4byte gUnknown_8117AE4
|
|
_080A761C: .4byte 0xffff0000
|
|
_080A7620: .4byte 0x0000ffff
|
|
_080A7624: .4byte gUnknown_9E60000
|
|
_080A7628:
|
|
str r5, [sp, 0x4]
|
|
_080A762A:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r6, 0
|
|
bl sub_80A67CC
|
|
str r5, [r4, 0x54]
|
|
adds r0, r4, 0
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
blt _080A764E
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_80A6EFC
|
|
_080A764E:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A75CC
|
|
|
|
thumb_func_start sub_80A7658
|
|
sub_80A7658:
|
|
push {lr}
|
|
bl sub_80A68A0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7658
|
|
|
|
thumb_func_start sub_80A7664
|
|
sub_80A7664:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
movs r1, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_80A7094
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
adds r3, r6, 0
|
|
bl sub_80A7310
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7664
|
|
|
|
thumb_func_start sub_80A7688
|
|
sub_80A7688:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r6, r3, 0
|
|
lsls r2, 16
|
|
asrs r2, 13
|
|
ldr r0, _080A76D4
|
|
adds r2, r0
|
|
movs r5, 0
|
|
movs r0, 0
|
|
ldrsb r0, [r2, r0]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r3, _080A76D8
|
|
ldr r1, [sp]
|
|
ands r1, r3
|
|
orrs r1, r0
|
|
str r1, [sp]
|
|
ldrh r3, [r2, 0x2]
|
|
lsls r3, 16
|
|
ldr r0, _080A76DC
|
|
ands r0, r1
|
|
orrs r0, r3
|
|
str r0, [sp]
|
|
ldr r0, [r2, 0x4]
|
|
cmp r0, 0
|
|
beq _080A76E4
|
|
ldr r1, _080A76E0
|
|
bl OpenFile
|
|
adds r5, r0, 0
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp, 0x4]
|
|
b _080A76E6
|
|
.align 2, 0
|
|
_080A76D4: .4byte gUnknown_8117E8C
|
|
_080A76D8: .4byte 0xffff0000
|
|
_080A76DC: .4byte 0x0000ffff
|
|
_080A76E0: .4byte gUnknown_9E60000
|
|
_080A76E4:
|
|
str r5, [sp, 0x4]
|
|
_080A76E6:
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r6, 0
|
|
bl sub_80A67CC
|
|
str r5, [r4, 0x54]
|
|
adds r0, r4, 0
|
|
adds r0, 0x52
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
blt _080A770A
|
|
movs r1, 0x80
|
|
lsls r1, 4
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_80A6EFC
|
|
_080A770A:
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7688
|
|
|
|
thumb_func_start sub_80A7714
|
|
sub_80A7714:
|
|
push {lr}
|
|
bl sub_80A68A0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7714
|
|
|
|
thumb_func_start sub_80A7720
|
|
sub_80A7720:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
movs r1, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_80A7094
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0
|
|
adds r3, r6, 0
|
|
bl sub_80A7310
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A7720
|
|
|
|
thumb_func_start sub_80A7744
|
|
sub_80A7744:
|
|
ldr r1, _080A7750
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A7750: .4byte gUnknown_2039DE0
|
|
thumb_func_end sub_80A7744
|
|
|
|
thumb_func_start sub_80A7754
|
|
sub_80A7754:
|
|
ldr r1, _080A7760
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A7760: .4byte gUnknown_2039DE0
|
|
thumb_func_end sub_80A7754
|
|
|
|
thumb_func_start sub_80A7764
|
|
sub_80A7764:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
bl sub_80A7784
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _080A777A
|
|
ldr r0, _080A7780
|
|
strh r4, [r0]
|
|
_080A777A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A7780: .4byte gUnknown_2039DE0
|
|
thumb_func_end sub_80A7764
|
|
|
|
thumb_func_start sub_80A7784
|
|
sub_80A7784:
|
|
push {lr}
|
|
ldr r2, _080A779C
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
beq _080A7796
|
|
strh r1, [r2]
|
|
_080A7796:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A779C: .4byte gUnknown_2039DE0
|
|
thumb_func_end sub_80A7784
|
|
|
|
thumb_func_start sub_80A77A0
|
|
sub_80A77A0:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
ldr r0, _080A77BC
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
cmp r0, r1
|
|
beq _080A77CA
|
|
cmp r1, 0
|
|
bge _080A77C0
|
|
bl sub_80A7784
|
|
b _080A77C6
|
|
.align 2, 0
|
|
_080A77BC: .4byte gUnknown_2039DE0
|
|
_080A77C0:
|
|
adds r0, r2, 0
|
|
bl sub_80A7764
|
|
_080A77C6:
|
|
movs r0, 0x1
|
|
b _080A77CC
|
|
_080A77CA:
|
|
movs r0, 0
|
|
_080A77CC:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A77A0
|
|
|
|
thumb_func_start sub_80A77D0
|
|
sub_80A77D0:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A77E8
|
|
ldr r0, _080A77E4
|
|
b _080A77F0
|
|
.align 2, 0
|
|
_080A77E4: .4byte gUnknown_8117EFC
|
|
_080A77E8:
|
|
ldr r0, _080A77F4
|
|
lsls r1, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
_080A77F0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A77F4: .4byte gUnknown_811E258
|
|
thumb_func_end sub_80A77D0
|
|
|
|
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 gUnknown_203B45C
|
|
_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 gUnknown_203B45C
|
|
_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 gUnknown_203B45C
|
|
_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 gUnknown_812F1F8
|
|
_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 gUnknown_203B45C
|
|
_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 gUnknown_203B45C
|
|
_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 sub_808D8BC
|
|
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 gUnknown_811825C
|
|
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 sub_8092310
|
|
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 gUnknown_812F1F8
|
|
_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 gUnknown_811EE38
|
|
_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 gUnknown_812F1F8
|
|
_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 gUnknown_81187E8
|
|
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 gUnknown_811880C
|
|
_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 gUnknown_8118828
|
|
_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 gUnknown_811886C
|
|
_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 sub_800AE28
|
|
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 sub_800AAA8
|
|
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 sub_800AAA8
|
|
adds r0, r4, 0
|
|
bl CloseFile
|
|
b _080ADEFC
|
|
.align 2, 0
|
|
_080ADEB4: .4byte gUnknown_8118890
|
|
_080ADEB8: .4byte gUnknown_83B0000
|
|
_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 sub_800AAA8
|
|
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 gUnknown_83B0000
|
|
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
|