mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-14 00:56:07 -05:00
63220 lines
940 KiB
ArmAsm
63220 lines
940 KiB
ArmAsm
.include "constants/gba_constants.inc"
|
|
.include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_809017C
|
|
sub_809017C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
bl sub_80901D8
|
|
movs r5, 0
|
|
ldr r2, _080901AC
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3F
|
|
beq _080901C6
|
|
mov r3, sp
|
|
ldrb r6, [r3]
|
|
movs r4, 0
|
|
adds r1, r2, 0
|
|
_0809019A:
|
|
ldrb r0, [r1]
|
|
cmp r6, r0
|
|
bne _080901B0
|
|
ldrb r0, [r3, 0x1]
|
|
ldrb r2, [r1, 0x1]
|
|
cmp r0, r2
|
|
bne _080901B0
|
|
movs r0, 0x1
|
|
b _080901C8
|
|
.align 2, 0
|
|
_080901AC: .4byte gUnknown_8107828
|
|
_080901B0:
|
|
adds r4, 0x4
|
|
adds r1, 0x4
|
|
adds r5, 0x1
|
|
ldr r0, _080901D0
|
|
cmp r5, r0
|
|
bgt _080901C6
|
|
ldr r2, _080901D4
|
|
adds r0, r4, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3F
|
|
bne _0809019A
|
|
_080901C6:
|
|
movs r0, 0
|
|
_080901C8:
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080901D0: .4byte 0x000003e6
|
|
_080901D4: .4byte gUnknown_8107828
|
|
thumb_func_end sub_809017C
|
|
|
|
thumb_func_start sub_80901D8
|
|
sub_80901D8:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
ldrb r0, [r2]
|
|
subs r0, 0x4B
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x16
|
|
bhi _080901FE
|
|
movs r0, 0x34
|
|
strb r0, [r3]
|
|
ldrb r1, [r2]
|
|
subs r1, 0x4B
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
ldrb r2, [r2, 0x1]
|
|
adds r0, r2
|
|
strb r0, [r3, 0x1]
|
|
b _08090202
|
|
_080901FE:
|
|
ldr r0, [r2]
|
|
str r0, [r3]
|
|
_08090202:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80901D8
|
|
|
|
thumb_func_start sub_8090208
|
|
sub_8090208:
|
|
push {lr}
|
|
ldr r3, _08090220
|
|
ldr r2, _08090224
|
|
ldrb r1, [r1]
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r2, [r1]
|
|
adds r1, r3, 0
|
|
bl sub_800D158
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090220: .4byte gUnknown_8108F10
|
|
_08090224: .4byte gDungeonNames
|
|
thumb_func_end sub_8090208
|
|
|
|
thumb_func_start sub_8090228
|
|
sub_8090228:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
ldr r0, _08090250
|
|
ldrb r3, [r4]
|
|
lsls r1, r3, 4
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0809025C
|
|
ldr r1, _08090254
|
|
ldr r2, _08090258
|
|
lsls r0, r3, 3
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_800D158
|
|
b _0809026E
|
|
.align 2, 0
|
|
_08090250: .4byte gDungeons
|
|
_08090254: .4byte gUnknown_8108F18
|
|
_08090258: .4byte gDungeonNames
|
|
_0809025C:
|
|
ldr r1, _08090274
|
|
ldr r2, _08090278
|
|
lsls r0, r3, 3
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
bl sub_800D158
|
|
_0809026E:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090274: .4byte gUnknown_8108F2C
|
|
_08090278: .4byte gDungeonNames
|
|
thumb_func_end sub_8090228
|
|
|
|
thumb_func_start sub_809027C
|
|
sub_809027C:
|
|
push {lr}
|
|
ldr r2, _08090294
|
|
ldrb r1, [r1]
|
|
lsls r1, 3
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090294: .4byte gDungeonNames
|
|
thumb_func_end sub_809027C
|
|
|
|
thumb_func_start sub_8090298
|
|
sub_8090298:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r0, 0x4B
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x16
|
|
bhi _080902AE
|
|
movs r0, 0x4
|
|
b _080902C2
|
|
_080902AE:
|
|
cmp r1, 0x3E
|
|
bhi _080902C0
|
|
ldr r0, _080902BC
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
b _080902C2
|
|
.align 2, 0
|
|
_080902BC: .4byte gUnknown_81077A8
|
|
_080902C0:
|
|
movs r0, 0x1
|
|
_080902C2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8090298
|
|
|
|
thumb_func_start sub_80902C8
|
|
sub_80902C8:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
subs r0, 0x4B
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x16
|
|
bls _080902EC
|
|
cmp r1, 0x3E
|
|
bhi _080902EC
|
|
ldr r0, _080902E8
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0]
|
|
b _080902EE
|
|
.align 2, 0
|
|
_080902E8: .4byte gUnknown_81077E8
|
|
_080902EC:
|
|
movs r0, 0
|
|
_080902EE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80902C8
|
|
|
|
thumb_func_start sub_80902F4
|
|
sub_80902F4:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
adds r4, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80902F4
|
|
|
|
thumb_func_start sub_8090314
|
|
sub_8090314:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r5, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
adds r4, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090314
|
|
|
|
thumb_func_start sub_809033C
|
|
sub_809033C:
|
|
lsls r0, 24
|
|
ldr r1, _08090348
|
|
lsrs r0, 20
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090348: .4byte gDungeons
|
|
thumb_func_end sub_809033C
|
|
|
|
thumb_func_start sub_809034C
|
|
sub_809034C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0xF8
|
|
adds r7, r2, 0
|
|
ldr r2, [sp, 0x118]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
str r1, [sp, 0xE0]
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
str r3, [sp, 0xE4]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
str r2, [sp, 0xE8]
|
|
bl sub_8090A34
|
|
str r0, [sp, 0xEC]
|
|
movs r5, 0
|
|
movs r0, 0
|
|
str r0, [sp, 0xF4]
|
|
mov r8, r0
|
|
add r4, sp, 0xC8
|
|
movs r0, 0xA
|
|
strb r0, [r4]
|
|
add r1, sp, 0xF4
|
|
ldrb r1, [r1]
|
|
strb r1, [r4, 0x1]
|
|
ldr r1, _0809040C
|
|
adds r0, r7, 0
|
|
bl strcpy
|
|
movs r2, 0
|
|
str r2, [sp, 0xF0]
|
|
movs r3, 0
|
|
ldr r0, _08090410
|
|
ldr r6, [r0]
|
|
movs r4, 0x1
|
|
_080903A2:
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r2, r6, r0
|
|
ldrh r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080903D0
|
|
lsrs r0, r1, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _080903D0
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080903CA
|
|
ldr r0, [sp, 0xF0]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0xF0]
|
|
_080903CA:
|
|
adds r5, 0x1
|
|
cmp r5, 0x4
|
|
beq _080903DA
|
|
_080903D0:
|
|
adds r3, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r3, r0
|
|
ble _080903A2
|
|
_080903DA:
|
|
ldr r0, _08090414
|
|
mov r2, r9
|
|
lsls r1, r2, 4
|
|
adds r0, r1, r0
|
|
ldrb r0, [r0, 0x5]
|
|
mov r9, r1
|
|
ldr r1, [sp, 0xE4]
|
|
cmp r1, 0
|
|
bne _080903F2
|
|
cmp r0, 0x3
|
|
ble _080903F2
|
|
movs r0, 0x3
|
|
_080903F2:
|
|
cmp r5, r0
|
|
ble _0809043C
|
|
cmp r0, 0x1
|
|
bne _0809041C
|
|
ldr r0, _08090418
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
b _08090430
|
|
.align 2, 0
|
|
_0809040C: .4byte gUnknown_8108F40
|
|
_08090410: .4byte gUnknown_203B45C
|
|
_08090414: .4byte gDungeons
|
|
_08090418: .4byte gUnknown_8115A2C
|
|
_0809041C:
|
|
ldr r1, _08090464
|
|
subs r0, r5, r0
|
|
str r0, [r1]
|
|
ldr r0, _08090468
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
_08090430:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r2, 0x1
|
|
mov r8, r2
|
|
_0809043C:
|
|
ldr r0, _0809046C
|
|
mov r2, r9
|
|
adds r1, r2, r0
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
beq _0809048E
|
|
ldr r1, [sp, 0xEC]
|
|
cmp r0, r1
|
|
bge _0809048E
|
|
ldr r1, _08090464
|
|
str r0, [r1]
|
|
ldr r2, [sp, 0xEC]
|
|
subs r0, r2, r0
|
|
str r0, [r1, 0x4]
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _08090474
|
|
ldr r0, _08090470
|
|
b _08090476
|
|
.align 2, 0
|
|
_08090464: .4byte gUnknown_202DE30
|
|
_08090468: .4byte gUnknown_81159DC
|
|
_0809046C: .4byte gDungeons
|
|
_08090470: .4byte gUnknown_8115A80
|
|
_08090474:
|
|
ldr r0, _080904AC
|
|
_08090476:
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_0809048E:
|
|
ldr r2, [sp, 0xE0]
|
|
cmp r2, 0
|
|
beq _0809054E
|
|
ldr r0, _080904B0
|
|
adds r1, r2, 0
|
|
bl sub_808D908
|
|
cmp r5, 0x3
|
|
ble _080904D2
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080904B8
|
|
ldr r0, _080904B4
|
|
b _080904BA
|
|
.align 2, 0
|
|
_080904AC: .4byte gUnknown_8115ADC
|
|
_080904B0: .4byte gUnknown_202DF98
|
|
_080904B4: .4byte gUnknown_8115B3C
|
|
_080904B8:
|
|
ldr r0, _08090528
|
|
_080904BA:
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_080904D2:
|
|
ldr r0, [sp, 0xE0]
|
|
bl sub_808DACC
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r2, _0809052C
|
|
mov r10, r2
|
|
movs r6, 0x1
|
|
_080904E4:
|
|
movs r0, 0x58
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
mov r2, r10
|
|
ldr r0, [r2]
|
|
adds r2, r0, r1
|
|
ldrh r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090510
|
|
lsrs r0, r1, 1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08090510
|
|
movs r1, 0x8
|
|
ldrsh r0, [r2, r1]
|
|
bl sub_808DACC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r5, r0
|
|
_08090510:
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _080904E4
|
|
cmp r5, 0x6
|
|
ble _0809054E
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
bne _08090534
|
|
ldr r0, _08090530
|
|
b _08090536
|
|
.align 2, 0
|
|
_08090528: .4byte gUnknown_8115BA4
|
|
_0809052C: .4byte gUnknown_203B45C
|
|
_08090530: .4byte gUnknown_8115BF4
|
|
_08090534:
|
|
ldr r0, _080905D0
|
|
_08090536:
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
_0809054E:
|
|
ldr r1, [sp, 0xE4]
|
|
cmp r1, 0
|
|
beq _08090602
|
|
add r5, sp, 0xCC
|
|
ldr r1, _080905D4
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl memcpy
|
|
add r4, sp, 0xD4
|
|
ldr r1, _080905D8
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl memcpy
|
|
movs r6, 0
|
|
mov r10, r4
|
|
ldr r0, _080905DC
|
|
add r0, r9
|
|
ldrb r5, [r0, 0xB]
|
|
add r4, sp, 0xCC
|
|
_08090578:
|
|
adds r0, r5, 0
|
|
asrs r0, r6
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809059E
|
|
ldrh r0, [r4]
|
|
bl sub_8090820
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809059E
|
|
mov r2, r10
|
|
adds r0, r2, r6
|
|
ldrb r0, [r0]
|
|
bl sub_80911A4
|
|
cmp r0, 0
|
|
beq _080905A6
|
|
_0809059E:
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08090578
|
|
_080905A6:
|
|
cmp r6, 0x3
|
|
bgt _08090602
|
|
add r4, sp, 0xD8
|
|
lsls r0, r6, 1
|
|
add r0, sp
|
|
adds r0, 0xCC
|
|
ldrh r1, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8092A88
|
|
ldr r0, _080905E0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080905E8
|
|
ldr r0, _080905E4
|
|
b _080905EA
|
|
.align 2, 0
|
|
_080905D0: .4byte gUnknown_8115C4C
|
|
_080905D4: .4byte gUnknown_8108F42
|
|
_080905D8: .4byte gUnknown_8108F4A
|
|
_080905DC: .4byte gDungeons
|
|
_080905E0: .4byte gUnknown_202DE58
|
|
_080905E4: .4byte gUnknown_8115CB8
|
|
_080905E8:
|
|
ldr r0, _080906A0
|
|
_080905EA:
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_08090602:
|
|
ldr r0, _080906A4
|
|
add r0, r9
|
|
ldrb r1, [r0, 0xB]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080906CE
|
|
ldr r5, _080906A8
|
|
ldr r2, [sp, 0xE0]
|
|
cmp r2, 0
|
|
beq _0809063A
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
bl sub_808DC68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08090638
|
|
ldr r0, [sp, 0xE0]
|
|
movs r1, 0x1
|
|
bl sub_808DC68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bne _0809063A
|
|
_08090638:
|
|
movs r5, 0
|
|
_0809063A:
|
|
ldr r0, _080906A8
|
|
cmp r5, r0
|
|
bne _080906CE
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
_08090644:
|
|
ldr r2, _080906AC
|
|
movs r0, 0x58
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
ldrh r1, [r4]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090686
|
|
lsrs r0, r1, 1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _08090686
|
|
movs r1, 0x8
|
|
ldrsh r0, [r4, r1]
|
|
movs r1, 0
|
|
bl sub_808DC68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08090690
|
|
movs r2, 0x8
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0x1
|
|
bl sub_808DC68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08090690
|
|
_08090686:
|
|
adds r5, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
ble _08090644
|
|
_08090690:
|
|
ldr r0, _080906A8
|
|
cmp r5, r0
|
|
bne _080906CE
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080906B4
|
|
ldr r0, _080906B0
|
|
b _080906B6
|
|
.align 2, 0
|
|
_080906A0: .4byte gUnknown_8115D14
|
|
_080906A4: .4byte gDungeons
|
|
_080906A8: .4byte 0x0000019d
|
|
_080906AC: .4byte gUnknown_203B45C
|
|
_080906B0: .4byte gUnknown_8115D5C
|
|
_080906B4:
|
|
ldr r0, _080906D8
|
|
_080906B6:
|
|
ldr r0, [r0]
|
|
mov r1, sp
|
|
add r2, sp, 0xC8
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8090888
|
|
movs r1, 0x1
|
|
mov r8, r1
|
|
_080906CE:
|
|
mov r2, r8
|
|
cmp r2, 0
|
|
beq _080906DC
|
|
movs r0, 0x1
|
|
b _0809080E
|
|
.align 2, 0
|
|
_080906D8: .4byte gUnknown_8115D94
|
|
_080906DC:
|
|
ldr r0, _080907EC
|
|
add r0, r9
|
|
ldrb r0, [r0, 0xA]
|
|
cmp r0, 0
|
|
beq _080906EC
|
|
ldr r0, [sp, 0xE8]
|
|
cmp r0, 0
|
|
beq _0809071A
|
|
_080906EC:
|
|
ldr r1, [sp, 0xF4]
|
|
cmp r1, 0
|
|
bne _08090708
|
|
ldr r0, _080907F0
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcpy
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
movs r2, 0x1
|
|
str r2, [sp, 0xF4]
|
|
_08090708:
|
|
ldr r0, _080907F4
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcat
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
_0809071A:
|
|
ldr r0, _080907EC
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x6]
|
|
cmp r0, 0
|
|
beq _08090752
|
|
ldr r0, [sp, 0xF4]
|
|
cmp r0, 0
|
|
bne _08090740
|
|
ldr r0, _080907F0
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcpy
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
movs r1, 0x1
|
|
str r1, [sp, 0xF4]
|
|
_08090740:
|
|
ldr r0, _080907F8
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcat
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
_08090752:
|
|
ldr r0, _080907EC
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
bne _08090792
|
|
ldr r2, [sp, 0xEC]
|
|
ldr r0, [sp, 0xF0]
|
|
cmn r2, r0
|
|
beq _08090792
|
|
ldr r1, [sp, 0xF4]
|
|
cmp r1, 0
|
|
bne _08090780
|
|
ldr r0, _080907F0
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcpy
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
movs r2, 0x1
|
|
str r2, [sp, 0xF4]
|
|
_08090780:
|
|
ldr r0, _080907FC
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcat
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
_08090792:
|
|
ldr r0, _080907EC
|
|
add r0, r9
|
|
ldrb r0, [r0, 0x7]
|
|
cmp r0, 0
|
|
bne _080907DA
|
|
ldr r0, _08090800
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080907DA
|
|
ldr r2, [sp, 0xF4]
|
|
cmp r2, 0
|
|
bne _080907C8
|
|
ldr r0, _080907F0
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcpy
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
movs r0, 0x1
|
|
str r0, [sp, 0xF4]
|
|
_080907C8:
|
|
ldr r0, _08090804
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl strcat
|
|
adds r0, r7, 0
|
|
add r1, sp, 0xC8
|
|
bl strcat
|
|
_080907DA:
|
|
ldr r1, [sp, 0xF4]
|
|
cmp r1, 0
|
|
bne _0809080C
|
|
ldr r1, _08090808
|
|
adds r0, r7, 0
|
|
bl sub_800D158
|
|
movs r0, 0
|
|
b _0809080E
|
|
.align 2, 0
|
|
_080907EC: .4byte gDungeons
|
|
_080907F0: .4byte gUnknown_8115DD4
|
|
_080907F4: .4byte gUnknown_8115E00
|
|
_080907F8: .4byte gUnknown_8115E28
|
|
_080907FC: .4byte gUnknown_8115E54
|
|
_08090800: .4byte gUnknown_203B460
|
|
_08090804: .4byte gUnknown_8115E80
|
|
_08090808: .4byte gUnknown_8108F50
|
|
_0809080C:
|
|
movs r0, 0x2
|
|
_0809080E:
|
|
add sp, 0xF8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809034C
|
|
|
|
thumb_func_start sub_8090820
|
|
sub_8090820:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
movs r4, 0
|
|
ldr r0, _08090868
|
|
ldr r0, [r0]
|
|
mov r12, r0
|
|
movs r7, 0x1
|
|
_08090830:
|
|
movs r0, 0x58
|
|
muls r0, r4
|
|
mov r2, r12
|
|
adds r1, r2, r0
|
|
ldrh r2, [r1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08090874
|
|
lsrs r0, r2, 1
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _08090874
|
|
movs r3, 0
|
|
movs r5, 0x1
|
|
adds r2, r1, 0
|
|
adds r2, 0x2C
|
|
_08090852:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809086C
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, r6
|
|
bne _0809086C
|
|
movs r0, 0x1
|
|
b _08090880
|
|
.align 2, 0
|
|
_08090868: .4byte gUnknown_203B45C
|
|
_0809086C:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08090852
|
|
_08090874:
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _08090830
|
|
movs r0, 0
|
|
_08090880:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8090820
|
|
|
|
thumb_func_start sub_8090888
|
|
sub_8090888:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r6, 0
|
|
b _0809089C
|
|
_08090892:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xA
|
|
bne _0809089A
|
|
adds r6, 0x1
|
|
_0809089A:
|
|
adds r4, 0x1
|
|
_0809089C:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08090892
|
|
ldrb r7, [r5]
|
|
b _080908AE
|
|
_080908A6:
|
|
movs r0, 0xA
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
adds r6, 0x1
|
|
_080908AE:
|
|
adds r0, r6, 0
|
|
movs r1, 0x3
|
|
bl __modsi3
|
|
cmp r0, 0
|
|
bne _080908A6
|
|
adds r1, r7, 0
|
|
lsls r0, r1, 24
|
|
cmp r0, 0
|
|
beq _080908CE
|
|
_080908C2:
|
|
strb r1, [r4]
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
ldrb r1, [r5]
|
|
cmp r1, 0
|
|
bne _080908C2
|
|
_080908CE:
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090888
|
|
|
|
thumb_func_start sub_80908D8
|
|
sub_80908D8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x3E
|
|
bhi _08090908
|
|
ldr r0, _08090900
|
|
ldrb r3, [r2]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r2, 0x1]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08090908
|
|
ldr r1, _08090904
|
|
lsls r0, r3, 2
|
|
adds r0, r1
|
|
ldrb r1, [r2, 0x1]
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _0809090A
|
|
.align 2, 0
|
|
_08090900: .4byte gUnknown_81077A8
|
|
_08090904: .4byte gUnknown_8108084
|
|
_08090908:
|
|
movs r0, 0x1
|
|
_0809090A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80908D8
|
|
|
|
thumb_func_start sub_8090910
|
|
sub_8090910:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
ldr r4, _0809094C
|
|
adds r0, r4, 0
|
|
bl RandomCapped
|
|
adds r6, r0, 0
|
|
adds r0, r4, 0
|
|
bl RandomCapped
|
|
adds r2, r0, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x3E
|
|
bhi _08090954
|
|
ldr r0, _08090950
|
|
ldrb r1, [r5]
|
|
adds r1, r0
|
|
ldrb r0, [r5, 0x1]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bcs _08090954
|
|
adds r0, r7, 0
|
|
adds r1, r6, 0
|
|
bl sub_8091E94
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08090956
|
|
.align 2, 0
|
|
_0809094C: .4byte 0x0000270f
|
|
_08090950: .4byte gUnknown_81077A8
|
|
_08090954:
|
|
movs r0, 0x46
|
|
_08090956:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8090910
|
|
|
|
thumb_func_start sub_809095C
|
|
sub_809095C:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0x3E
|
|
bls _0809096A
|
|
_08090966:
|
|
movs r0, 0x1
|
|
b _0809098C
|
|
_0809096A:
|
|
movs r2, 0
|
|
ldr r0, _08090994
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0x3F
|
|
beq _0809098A
|
|
adds r1, r4, 0
|
|
_08090978:
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
beq _08090966
|
|
adds r2, 0x1
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x3F
|
|
bne _08090978
|
|
_0809098A:
|
|
movs r0, 0
|
|
_0809098C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090994: .4byte gUnknown_810A350
|
|
thumb_func_end sub_809095C
|
|
|
|
thumb_func_start sub_8090998
|
|
sub_8090998:
|
|
push {lr}
|
|
ldr r1, _080909B8
|
|
ldr r0, _080909BC
|
|
str r0, [r1]
|
|
ldr r0, _080909C0
|
|
ldr r1, _080909C4
|
|
bl OpenFileAndGetFileDataPtr
|
|
ldr r1, _080909C8
|
|
str r0, [r1]
|
|
ldr r1, _080909CC
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080909B8: .4byte gUnknown_203B460
|
|
_080909BC: .4byte gUnknown_20389A8
|
|
_080909C0: .4byte gUnknown_8109764
|
|
_080909C4: .4byte gUnknown_8300500
|
|
_080909C8: .4byte gItemParametersFile
|
|
_080909CC: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090998
|
|
|
|
thumb_func_start sub_80909D0
|
|
sub_80909D0:
|
|
ldr r0, _080909D4
|
|
bx lr
|
|
.align 2, 0
|
|
_080909D4: .4byte gUnknown_20389A8
|
|
thumb_func_end sub_80909D0
|
|
|
|
thumb_func_start sub_80909D8
|
|
sub_80909D8:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
ldr r3, _08090A30
|
|
movs r2, 0
|
|
_080909E0:
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 2
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _080909E0
|
|
movs r4, 0
|
|
ldr r3, _08090A30
|
|
movs r2, 0
|
|
_080909F4:
|
|
ldr r0, [r3]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x50
|
|
adds r0, r1
|
|
strh r2, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0xEF
|
|
ble _080909F4
|
|
movs r4, 0
|
|
_08090A06:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8091840
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08090A06
|
|
ldr r0, _08090A30
|
|
ldr r2, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r0, r2, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
movs r3, 0x99
|
|
lsls r3, 2
|
|
adds r0, r2, r3
|
|
str r1, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090A30: .4byte gUnknown_203B460
|
|
thumb_func_end sub_80909D8
|
|
|
|
thumb_func_start sub_8090A34
|
|
sub_8090A34:
|
|
push {r4,r5,lr}
|
|
movs r4, 0
|
|
ldr r0, _08090A5C
|
|
movs r5, 0x1
|
|
ldr r2, [r0]
|
|
movs r3, 0x13
|
|
_08090A40:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090A4C
|
|
adds r4, 0x1
|
|
_08090A4C:
|
|
adds r2, 0x4
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08090A40
|
|
adds r0, r4, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090A5C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8090A34
|
|
|
|
thumb_func_start sub_8090A60
|
|
sub_8090A60:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08090A84
|
|
adds r0, r4, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
beq _08090A84
|
|
movs r0, 0
|
|
b _08090A86
|
|
_08090A84:
|
|
movs r0, 0x1
|
|
_08090A86:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8090A60
|
|
|
|
thumb_func_start sub_8090A8C
|
|
sub_8090A8C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
cmp r5, 0
|
|
beq _08090AF8
|
|
movs r7, 0x1
|
|
strb r7, [r6]
|
|
strb r5, [r6, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08090AD4
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8090D80
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8090D80
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl RandomRange
|
|
strb r0, [r6, 0x1]
|
|
b _08090AE8
|
|
_08090AD4:
|
|
adds r0, r5, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _08090AE6
|
|
strb r7, [r6, 0x1]
|
|
b _08090AE8
|
|
_08090AE6:
|
|
strb r4, [r6, 0x1]
|
|
_08090AE8:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08090AFE
|
|
ldrb r1, [r6]
|
|
movs r0, 0x8
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
b _08090AFE
|
|
_08090AF8:
|
|
strb r5, [r6]
|
|
strb r5, [r6, 0x2]
|
|
strb r5, [r6, 0x1]
|
|
_08090AFE:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090A8C
|
|
|
|
thumb_func_start sub_8090B08
|
|
sub_8090B08:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
cmp r5, 0
|
|
beq _08090B5A
|
|
strb r5, [r6]
|
|
adds r0, r5, 0
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
beq _08090B42
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
bl sub_8090D80
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
movs r1, 0x1
|
|
bl sub_8090D80
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl RandomRange
|
|
strb r0, [r6, 0x1]
|
|
b _08090B5E
|
|
_08090B42:
|
|
adds r0, r5, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _08090B56
|
|
movs r0, 0x1
|
|
strb r0, [r6, 0x1]
|
|
b _08090B5E
|
|
_08090B56:
|
|
strb r4, [r6, 0x1]
|
|
b _08090B5E
|
|
_08090B5A:
|
|
strb r5, [r6]
|
|
strb r5, [r6, 0x1]
|
|
_08090B5E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090B08
|
|
|
|
thumb_func_start sub_8090B64
|
|
sub_8090B64:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
ldrb r1, [r5]
|
|
adds r0, r1, 0
|
|
cmp r0, 0
|
|
beq _08090BA4
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
strb r1, [r4, 0x2]
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r6, 0
|
|
bne _08090B9A
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
beq _08090B9A
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x7C
|
|
bne _08090BA0
|
|
_08090B9A:
|
|
ldrb r0, [r5, 0x1]
|
|
strb r0, [r4, 0x1]
|
|
b _08090BAA
|
|
_08090BA0:
|
|
strb r6, [r4, 0x1]
|
|
b _08090BAA
|
|
_08090BA4:
|
|
strb r0, [r4, 0x2]
|
|
strb r0, [r4, 0x1]
|
|
strb r0, [r4]
|
|
_08090BAA:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090B64
|
|
|
|
thumb_func_start sub_8090BB0
|
|
sub_8090BB0:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldrb r0, [r1]
|
|
movs r2, 0x1
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _08090BC8
|
|
ldrb r0, [r1, 0x2]
|
|
strb r0, [r3]
|
|
ldrb r0, [r1, 0x1]
|
|
strb r0, [r3, 0x1]
|
|
b _08090BCA
|
|
_08090BC8:
|
|
strb r2, [r3]
|
|
_08090BCA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090BB0
|
|
|
|
thumb_func_start sub_8090BD0
|
|
sub_8090BD0:
|
|
lsls r0, 24
|
|
ldr r1, _08090BE0
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090BE0: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090BD0
|
|
|
|
thumb_func_start sub_8090BE4
|
|
sub_8090BE4:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x69
|
|
bne _08090BF6
|
|
adds r0, r4, 0
|
|
bl sub_80915D4
|
|
b _08090C24
|
|
_08090BF6:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090C14
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090C10
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
b _08090C24
|
|
.align 2, 0
|
|
_08090C10: .4byte gItemParametersFile + 4
|
|
_08090C14:
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090C2C
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r0, [r0, 0x4]
|
|
muls r0, r1
|
|
_08090C24:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090C2C: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090BE4
|
|
|
|
thumb_func_start sub_8090C30
|
|
sub_8090C30:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x69
|
|
bne _08090C42
|
|
adds r0, r4, 0
|
|
bl sub_80915D4
|
|
b _08090C70
|
|
_08090C42:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090C60
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090C5C
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x8]
|
|
b _08090C70
|
|
.align 2, 0
|
|
_08090C5C: .4byte gItemParametersFile + 4
|
|
_08090C60:
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090C78
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r0, [r0, 0x8]
|
|
muls r0, r1
|
|
_08090C70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090C78: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090C30
|
|
|
|
thumb_func_start sub_8090C7C
|
|
sub_8090C7C:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_80914E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090C90
|
|
movs r0, 0
|
|
b _08090CC0
|
|
_08090C90:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090CB0
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090CAC
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
b _08090CC0
|
|
.align 2, 0
|
|
_08090CAC: .4byte gItemParametersFile + 4
|
|
_08090CB0:
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090CC8
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r0, [r0, 0x4]
|
|
muls r0, r1
|
|
_08090CC0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090CC8: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090C7C
|
|
|
|
thumb_func_start sub_8090CCC
|
|
sub_8090CCC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_80914E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090CE0
|
|
movs r0, 0
|
|
b _08090D10
|
|
_08090CE0:
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090D00
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090CFC
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x8]
|
|
b _08090D10
|
|
.align 2, 0
|
|
_08090CFC: .4byte gItemParametersFile + 4
|
|
_08090D00:
|
|
ldrb r0, [r4, 0x2]
|
|
ldr r1, _08090D18
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldrb r1, [r4, 0x1]
|
|
ldr r0, [r0, 0x8]
|
|
muls r0, r1
|
|
_08090D10:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08090D18: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090CCC
|
|
|
|
thumb_func_start sub_8090D1C
|
|
sub_8090D1C:
|
|
lsls r0, 24
|
|
ldr r1, _08090D2C
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D2C: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D1C
|
|
|
|
thumb_func_start sub_8090D30
|
|
sub_8090D30:
|
|
lsls r0, 24
|
|
ldr r1, _08090D40
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x8]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D40: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D30
|
|
|
|
thumb_func_start sub_8090D44
|
|
sub_8090D44:
|
|
lsls r0, 24
|
|
ldr r1, _08090D54
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1A]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D54: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D44
|
|
|
|
thumb_func_start sub_8090D58
|
|
sub_8090D58:
|
|
lsls r0, 24
|
|
ldr r1, _08090D68
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1D]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D68: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D58
|
|
|
|
thumb_func_start sub_8090D6C
|
|
sub_8090D6C:
|
|
lsls r0, 24
|
|
ldr r1, _08090D7C
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x1E]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D7C: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D6C
|
|
|
|
thumb_func_start sub_8090D80
|
|
sub_8090D80:
|
|
lsls r0, 24
|
|
ldr r2, _08090D94
|
|
ldr r2, [r2]
|
|
lsrs r0, 19
|
|
adds r0, r2
|
|
adds r0, 0x1B
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090D94: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D80
|
|
|
|
thumb_func_start sub_8090D98
|
|
sub_8090D98:
|
|
lsls r0, 24
|
|
ldr r1, _08090DA8
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090DA8: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090D98
|
|
|
|
thumb_func_start sub_8090DAC
|
|
sub_8090DAC:
|
|
lsls r0, 24
|
|
ldr r2, _08090DC0
|
|
ldr r2, [r2]
|
|
lsrs r0, 19
|
|
adds r0, r2
|
|
adds r0, 0x14
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08090DC0: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090DAC
|
|
|
|
thumb_func_start sub_8090DC4
|
|
sub_8090DC4:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x54
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
mov r8, r2
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _08090E10
|
|
ldr r1, [r0]
|
|
lsls r0, r4, 5
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
add r5, sp, 0x50
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8090A8C
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x1]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
mov r3, r8
|
|
bl sub_8090F58
|
|
add sp, 0x54
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090E10: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_8090DC4
|
|
|
|
thumb_func_start sub_8090E14
|
|
sub_8090E14:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x50
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
adds r7, r2, 0
|
|
movs r4, 0
|
|
cmp r7, 0
|
|
beq _08090E2C
|
|
ldrb r1, [r7, 0x8]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r4, r0, 31
|
|
_08090E2C:
|
|
ldrb r0, [r5, 0x2]
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08090E3E
|
|
cmp r4, 0
|
|
bne _08090E50
|
|
b _08090E70
|
|
_08090E3E:
|
|
ldrb r0, [r5, 0x2]
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bne _08090E90
|
|
cmp r4, 0
|
|
beq _08090E70
|
|
_08090E50:
|
|
ldr r1, _08090E68
|
|
ldrb r0, [r5, 0x2]
|
|
ldr r2, _08090E6C
|
|
ldr r2, [r2]
|
|
lsls r0, 5
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
ldrb r3, [r5, 0x1]
|
|
mov r0, sp
|
|
bl sub_800D158
|
|
b _08090EC4
|
|
.align 2, 0
|
|
_08090E68: .4byte gUnknown_8109770
|
|
_08090E6C: .4byte gItemParametersFile + 4
|
|
_08090E70:
|
|
ldr r1, _08090E88
|
|
ldrb r0, [r5, 0x2]
|
|
ldr r2, _08090E8C
|
|
ldr r2, [r2]
|
|
lsls r0, 5
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
mov r0, sp
|
|
bl sub_800D158
|
|
b _08090EC4
|
|
.align 2, 0
|
|
_08090E88: .4byte gUnknown_8109778
|
|
_08090E8C: .4byte gItemParametersFile + 4
|
|
_08090E90:
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x69
|
|
bne _08090EB0
|
|
ldr r4, _08090EAC
|
|
adds r0, r5, 0
|
|
bl sub_80915D4
|
|
adds r2, r0, 0
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_800D158
|
|
b _08090EC4
|
|
.align 2, 0
|
|
_08090EAC: .4byte gUnknown_810977C
|
|
_08090EB0:
|
|
ldrb r0, [r5, 0x2]
|
|
ldr r1, _08090F2C
|
|
ldr r1, [r1]
|
|
lsls r0, 5
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
mov r0, sp
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
_08090EC4:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090EE2
|
|
ldr r1, _08090F30
|
|
adds r0, r6, 0
|
|
mov r2, sp
|
|
bl sub_800D158
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
_08090EE2:
|
|
cmp r7, 0
|
|
beq _08090F38
|
|
ldrb r0, [r7, 0x4]
|
|
cmp r0, 0
|
|
beq _08090F0A
|
|
ldrb r1, [r5]
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090F0A
|
|
ldr r1, _08090F34
|
|
adds r0, r6, 0
|
|
mov r2, sp
|
|
bl sub_800D158
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
_08090F0A:
|
|
ldr r0, [r7]
|
|
cmp r0, 0x1
|
|
beq _08090F14
|
|
cmp r0, 0x3
|
|
bne _08090F44
|
|
_08090F14:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08090F38
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8090F58
|
|
b _08090F50
|
|
.align 2, 0
|
|
_08090F2C: .4byte gItemParametersFile + 4
|
|
_08090F30: .4byte gUnknown_8109784
|
|
_08090F34: .4byte gUnknown_810978C
|
|
_08090F38:
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
b _08090F50
|
|
_08090F44:
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8090F58
|
|
_08090F50:
|
|
add sp, 0x50
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8090E14
|
|
|
|
thumb_func_start sub_8090F58
|
|
sub_8090F58:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x2C
|
|
adds r5, r0, 0
|
|
adds r6, r1, 0
|
|
adds r0, r2, 0
|
|
adds r4, r3, 0
|
|
cmp r4, 0
|
|
bne _08090F6C
|
|
adds r0, r5, 0
|
|
b _08090F94
|
|
_08090F6C:
|
|
ldr r1, [r4]
|
|
cmp r1, 0x1
|
|
bcc _08090F8A
|
|
cmp r1, 0x2
|
|
bhi _08090F7E
|
|
bl sub_8090BE4
|
|
adds r1, r0, 0
|
|
b _08090F8C
|
|
_08090F7E:
|
|
cmp r1, 0x4
|
|
bhi _08090F8A
|
|
bl sub_8090C30
|
|
adds r1, r0, 0
|
|
b _08090F8C
|
|
_08090F8A:
|
|
movs r1, 0
|
|
_08090F8C:
|
|
cmp r1, 0
|
|
bne _08090F9C
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
_08090F94:
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
b _08090FDE
|
|
_08090F9C:
|
|
movs r2, 0x6
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _08090FC8
|
|
adds r0, r1, 0
|
|
add r1, sp, 0x4
|
|
movs r2, 0x1
|
|
bl sub_8090FEC
|
|
ldr r1, _08090FC4
|
|
movs r0, 0x6
|
|
ldrsh r3, [r4, r0]
|
|
add r2, sp, 0x4
|
|
str r2, [sp]
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_800D158
|
|
b _08090FDE
|
|
.align 2, 0
|
|
_08090FC4: .4byte gUnknown_8109794
|
|
_08090FC8:
|
|
adds r0, r1, 0
|
|
add r1, sp, 0x4
|
|
movs r2, 0
|
|
bl sub_8090FEC
|
|
ldr r1, _08090FE8
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
add r3, sp, 0x4
|
|
bl sub_800D158
|
|
_08090FDE:
|
|
add sp, 0x2C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08090FE8: .4byte gUnknown_81097A4
|
|
thumb_func_end sub_8090F58
|
|
|
|
thumb_func_start sub_8090FEC
|
|
sub_8090FEC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r10, r2
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
movs r2, 0
|
|
ldr r1, _08091050
|
|
mov r9, r1
|
|
mov r12, r9
|
|
_0809100E:
|
|
movs r1, 0
|
|
lsls r3, r2, 2
|
|
ldr r7, _08091054
|
|
adds r0, r3, r7
|
|
ldr r0, [r0]
|
|
adds r7, r2, 0x1
|
|
cmp r5, r0
|
|
blt _0809102C
|
|
ldr r2, _08091054
|
|
_08091020:
|
|
adds r0, r3, r2
|
|
ldr r0, [r0]
|
|
subs r5, r0
|
|
adds r1, 0x1
|
|
cmp r5, r0
|
|
bge _08091020
|
|
_0809102C:
|
|
cmp r1, 0x9
|
|
ble _08091032
|
|
movs r1, 0x9
|
|
_08091032:
|
|
cmp r1, 0
|
|
beq _0809105C
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
lsls r1, 1
|
|
mov r2, r12
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
ldr r0, _08091058
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
b _0809106C
|
|
.align 2, 0
|
|
_08091050: .4byte gUnknown_81097C4
|
|
_08091054: .4byte gUnknown_81097B0
|
|
_08091058: .4byte gUnknown_81097C5
|
|
_0809105C:
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
beq _08091074
|
|
mov r2, r12
|
|
ldrb r0, [r2]
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
ldrb r0, [r2, 0x1]
|
|
_0809106C:
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
adds r6, 0x1
|
|
b _08091080
|
|
_08091074:
|
|
mov r0, r10
|
|
cmp r0, 0
|
|
beq _08091080
|
|
movs r0, 0x60
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
_08091080:
|
|
adds r2, r7, 0
|
|
cmp r2, 0x4
|
|
ble _0809100E
|
|
lsls r1, r5, 1
|
|
mov r2, r9
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
mov r0, r9
|
|
adds r0, 0x1
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
strb r0, [r4]
|
|
adds r6, 0x1
|
|
movs r0, 0
|
|
strb r0, [r4, 0x1]
|
|
adds r0, r6, 0
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8090FEC
|
|
|
|
thumb_func_start sub_80910B4
|
|
sub_80910B4:
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
movs r4, 0
|
|
ldr r7, _080910C0
|
|
movs r3, 0
|
|
b _080910DA
|
|
.align 2, 0
|
|
_080910C0: .4byte gUnknown_203B460
|
|
_080910C4:
|
|
cmp r2, r4
|
|
ble _080910D4
|
|
ldr r0, [r7]
|
|
lsls r1, r4, 2
|
|
adds r1, r0, r1
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_080910D4:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
_080910DA:
|
|
cmp r2, 0x13
|
|
bgt _08091106
|
|
ldr r0, [r7]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08091106
|
|
ldr r5, _0809112C
|
|
movs r6, 0x1
|
|
_080910F0:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x13
|
|
bgt _08091106
|
|
ldr r0, [r5]
|
|
adds r0, r3, r0
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080910F0
|
|
_08091106:
|
|
cmp r2, 0x14
|
|
bne _080910C4
|
|
cmp r4, 0x13
|
|
bgt _08091124
|
|
ldr r3, _0809112C
|
|
movs r2, 0
|
|
_08091112:
|
|
lsls r1, r4, 2
|
|
ldr r0, [r3]
|
|
adds r1, r0
|
|
strb r2, [r1, 0x2]
|
|
strb r2, [r1, 0x1]
|
|
strb r2, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _08091112
|
|
_08091124:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809112C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_80910B4
|
|
|
|
thumb_func_start sub_8091130
|
|
sub_8091130:
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r3, 0
|
|
ldr r0, _08091154
|
|
ldr r2, [r0]
|
|
movs r5, 0x1
|
|
_0809113E:
|
|
ldrb r1, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091158
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, r4
|
|
bne _08091158
|
|
adds r0, r3, 0
|
|
b _08091164
|
|
.align 2, 0
|
|
_08091154: .4byte gUnknown_203B460
|
|
_08091158:
|
|
adds r2, 0x4
|
|
adds r3, 0x1
|
|
cmp r3, 0x13
|
|
ble _0809113E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_08091164:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091130
|
|
|
|
thumb_func_start sub_809116C
|
|
sub_809116C:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
ldr r0, _080911A0
|
|
ldr r2, [r0]
|
|
movs r6, 0x1
|
|
movs r3, 0x13
|
|
_0809117C:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809118E
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, r5
|
|
bne _0809118E
|
|
adds r4, 0x1
|
|
_0809118E:
|
|
adds r2, 0x4
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0809117C
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080911A0: .4byte gUnknown_203B460
|
|
thumb_func_end sub_809116C
|
|
|
|
thumb_func_start sub_80911A4
|
|
sub_80911A4:
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_809116C
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
ldr r0, _080911F4
|
|
ldr r7, [r0]
|
|
movs r6, 0x1
|
|
_080911BA:
|
|
movs r0, 0x58
|
|
muls r0, r3
|
|
adds r2, r7, r0
|
|
ldrh r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080911E2
|
|
lsrs r0, r1, 1
|
|
ands r0, r6
|
|
cmp r0, 0
|
|
beq _080911E2
|
|
adds r0, r2, 0
|
|
adds r0, 0x28
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080911E2
|
|
cmp r0, r5
|
|
bne _080911E2
|
|
adds r4, 0x1
|
|
_080911E2:
|
|
adds r3, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r3, r0
|
|
ble _080911BA
|
|
adds r0, r4, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080911F4: .4byte gUnknown_203B45C
|
|
thumb_func_end sub_80911A4
|
|
|
|
thumb_func_start sub_80911F8
|
|
sub_80911F8:
|
|
push {r4,r5,lr}
|
|
adds r2, r0, 0
|
|
ldr r4, _08091230
|
|
cmp r2, 0x12
|
|
bgt _0809121C
|
|
adds r5, r4, 0
|
|
lsls r0, r2, 2
|
|
adds r3, r0, 0x4
|
|
_08091208:
|
|
ldr r0, [r5]
|
|
lsls r1, r2, 2
|
|
adds r1, r0, r1
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x12
|
|
ble _08091208
|
|
_0809121C:
|
|
ldr r0, [r4]
|
|
adds r0, 0x4E
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, 0x4C
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091230: .4byte gUnknown_203B460
|
|
thumb_func_end sub_80911F8
|
|
|
|
thumb_func_start sub_8091234
|
|
sub_8091234:
|
|
ldr r3, _08091248
|
|
ldr r1, [r3]
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
movs r2, 0
|
|
strb r2, [r1, 0x2]
|
|
ldr r1, [r3]
|
|
adds r1, r0
|
|
strb r2, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08091248: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091234
|
|
|
|
thumb_func_start sub_809124C
|
|
sub_809124C:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_8090A8C
|
|
mov r0, sp
|
|
bl sub_8091290
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809124C
|
|
|
|
thumb_func_start sub_8091274
|
|
sub_8091274:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
bl sub_8090B64
|
|
mov r0, sp
|
|
bl sub_8091290
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x4
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091274
|
|
|
|
thumb_func_start sub_8091290
|
|
sub_8091290:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
ldr r5, _080912B4
|
|
movs r6, 0x1
|
|
_0809129A:
|
|
lsls r1, r3, 2
|
|
ldr r0, [r5]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080912B8
|
|
ldr r0, [r4]
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
b _080912C0
|
|
.align 2, 0
|
|
_080912B4: .4byte gUnknown_203B460
|
|
_080912B8:
|
|
adds r3, 0x1
|
|
cmp r3, 0x13
|
|
ble _0809129A
|
|
movs r0, 0x1
|
|
_080912C0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091290
|
|
|
|
thumb_func_start sub_80912C8
|
|
sub_80912C8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r5, 0
|
|
movs r6, 0
|
|
_080912D6:
|
|
ldr r0, _0809139C
|
|
lsls r1, r5, 2
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080912FE
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x69
|
|
bne _080912FE
|
|
adds r0, r4, 0
|
|
bl sub_80915D4
|
|
bl sub_80913A0
|
|
strb r6, [r4, 0x2]
|
|
strb r6, [r4, 0x1]
|
|
strb r6, [r4]
|
|
_080912FE:
|
|
adds r5, 0x1
|
|
cmp r5, 0x13
|
|
ble _080912D6
|
|
bl sub_80910B4
|
|
movs r5, 0
|
|
_0809130A:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
mov r9, r0
|
|
lsls r2, r5, 2
|
|
ldr r1, _0809139C
|
|
mov r8, r1
|
|
ldr r0, [r1]
|
|
adds r3, r2, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
mov r10, r2
|
|
adds r7, r5, 0x1
|
|
cmp r0, 0
|
|
beq _08091382
|
|
ldrb r0, [r3, 0x2]
|
|
bl sub_8090D44
|
|
adds r6, r0, 0
|
|
adds r4, r7, 0
|
|
cmp r7, 0x13
|
|
bgt _08091368
|
|
_08091336:
|
|
lsls r5, r4, 2
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r2, r5, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091362
|
|
ldrb r0, [r2, 0x2]
|
|
bl sub_8090D44
|
|
cmp r6, r0
|
|
ble _08091362
|
|
mov r9, r4
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
adds r0, r5
|
|
ldrb r0, [r0, 0x2]
|
|
bl sub_8090D44
|
|
adds r6, r0, 0
|
|
_08091362:
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _08091336
|
|
_08091368:
|
|
mov r4, r9
|
|
cmp r4, 0
|
|
blt _08091382
|
|
ldr r0, _0809139C
|
|
ldr r1, [r0]
|
|
mov r0, r10
|
|
adds r2, r1, r0
|
|
ldr r3, [r2]
|
|
lsls r0, r4, 2
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
str r0, [r2]
|
|
str r3, [r1]
|
|
_08091382:
|
|
adds r5, r7, 0
|
|
cmp r5, 0x13
|
|
ble _0809130A
|
|
bl sub_80910B4
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809139C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_80912C8
|
|
|
|
thumb_func_start sub_80913A0
|
|
sub_80913A0:
|
|
push {lr}
|
|
ldr r1, _080913C4
|
|
ldr r1, [r1]
|
|
movs r3, 0x98
|
|
lsls r3, 2
|
|
adds r2, r1, r3
|
|
ldr r1, [r2]
|
|
adds r1, r0
|
|
str r1, [r2]
|
|
ldr r0, _080913C8
|
|
cmp r1, r0
|
|
bgt _080913BE
|
|
cmp r1, 0
|
|
bge _080913C0
|
|
movs r0, 0
|
|
_080913BE:
|
|
str r0, [r2]
|
|
_080913C0:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080913C4: .4byte gUnknown_203B460
|
|
_080913C8: .4byte 0x0001869f
|
|
thumb_func_end sub_80913A0
|
|
|
|
thumb_func_start sub_80913CC
|
|
sub_80913CC:
|
|
lsls r0, 24
|
|
ldr r1, _080913DC
|
|
ldr r1, [r1]
|
|
lsrs r0, 19
|
|
adds r0, r1
|
|
ldrh r0, [r0, 0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_080913DC: .4byte gItemParametersFile + 4
|
|
thumb_func_end sub_80913CC
|
|
|
|
thumb_func_start sub_80913E0
|
|
sub_80913E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x5C
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
mov r8, r2
|
|
ldrb r0, [r6, 0x2]
|
|
bl sub_8090D98
|
|
ldrb r1, [r6, 0x2]
|
|
add r0, sp, 0x4
|
|
movs r2, 0
|
|
bl sub_8090DC4
|
|
ldrb r0, [r6, 0x2]
|
|
cmp r0, 0x7C
|
|
bne _08091414
|
|
ldr r0, _080914D4
|
|
ldrb r1, [r6, 0x1]
|
|
adds r1, 0x7D
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
movs r2, 0
|
|
bl sub_8090DC4
|
|
_08091414:
|
|
adds r0, r5, 0
|
|
bl sub_80073B8
|
|
movs r7, 0
|
|
str r7, [sp]
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
add r2, sp, 0x4
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
ldrb r0, [r6, 0x2]
|
|
bl sub_8090D98
|
|
adds r2, r0, 0
|
|
str r7, [sp]
|
|
movs r0, 0x8
|
|
movs r1, 0x18
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
ldrb r0, [r6, 0x2]
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x5
|
|
bne _080914B6
|
|
add r4, sp, 0x54
|
|
ldrb r0, [r6, 0x2]
|
|
bl sub_80913CC
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8092A88
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x52
|
|
movs r3, 0xC8
|
|
bl sub_80078A4
|
|
ldr r0, _080914D8
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x54
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
adds r0, r4, 0
|
|
bl sub_8092B00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092334
|
|
adds r2, r0, 0
|
|
str r7, [sp]
|
|
movs r0, 0x40
|
|
movs r1, 0x54
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
ldr r1, _080914DC
|
|
str r0, [r1]
|
|
ldr r0, _080914E0
|
|
ldr r2, [r0]
|
|
str r7, [sp]
|
|
movs r0, 0x80
|
|
movs r1, 0x54
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
_080914B6:
|
|
adds r0, r5, 0
|
|
bl sub_80073E0
|
|
ldrb r0, [r6, 0x2]
|
|
bl sub_8090D98
|
|
mov r1, r8
|
|
bl sub_8097DF0
|
|
add sp, 0x5C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080914D4: .4byte gUnknown_202DE58
|
|
_080914D8: .4byte gUnknown_810CF0C
|
|
_080914DC: .4byte gUnknown_202DE30
|
|
_080914E0: .4byte gUnknown_8115970
|
|
thumb_func_end sub_80913E0
|
|
|
|
thumb_func_start sub_80914E4
|
|
sub_80914E4:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r4, r0, 0
|
|
cmp r0, 0
|
|
beq _0809151A
|
|
cmp r0, 0x69
|
|
beq _0809151A
|
|
cmp r0, 0x79
|
|
beq _0809151A
|
|
cmp r0, 0x77
|
|
beq _0809151A
|
|
cmp r0, 0x78
|
|
beq _0809151A
|
|
cmp r0, 0x7A
|
|
beq _0809151A
|
|
bl sub_8090D30
|
|
cmp r0, 0
|
|
beq _0809151A
|
|
adds r0, r4, 0
|
|
bl sub_8090D1C
|
|
cmp r0, 0
|
|
beq _0809151A
|
|
movs r0, 0x1
|
|
b _0809151C
|
|
_0809151A:
|
|
movs r0, 0
|
|
_0809151C:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80914E4
|
|
|
|
thumb_func_start sub_8091524
|
|
sub_8091524:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0
|
|
beq _0809153C
|
|
cmp r0, 0x69
|
|
beq _0809153C
|
|
cmp r1, 0x7C
|
|
beq _0809153C
|
|
movs r0, 0x1
|
|
b _0809153E
|
|
_0809153C:
|
|
movs r0, 0
|
|
_0809153E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091524
|
|
|
|
thumb_func_start sub_8091544
|
|
sub_8091544:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0
|
|
beq _08091568
|
|
cmp r0, 0x69
|
|
beq _08091568
|
|
cmp r0, 0x79
|
|
beq _08091568
|
|
cmp r0, 0x77
|
|
beq _08091568
|
|
cmp r0, 0x78
|
|
beq _08091568
|
|
cmp r1, 0x7A
|
|
beq _08091568
|
|
movs r0, 0x1
|
|
b _0809156A
|
|
_08091568:
|
|
movs r0, 0
|
|
_0809156A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091544
|
|
|
|
thumb_func_start sub_8091570
|
|
sub_8091570:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
beq _08091596
|
|
adds r0, r4, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
beq _08091596
|
|
movs r0, 0
|
|
b _08091598
|
|
_08091596:
|
|
movs r0, 0x1
|
|
_08091598:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091570
|
|
|
|
thumb_func_start sub_80915A0
|
|
sub_80915A0:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r1, r0, 0
|
|
cmp r0, 0xE0
|
|
beq _080915CC
|
|
cmp r0, 0xE1
|
|
beq _080915CC
|
|
cmp r0, 0xE2
|
|
beq _080915CC
|
|
cmp r0, 0xE3
|
|
beq _080915CC
|
|
cmp r0, 0xE4
|
|
beq _080915CC
|
|
cmp r0, 0xE5
|
|
beq _080915CC
|
|
cmp r0, 0xE6
|
|
beq _080915CC
|
|
cmp r1, 0xE7
|
|
beq _080915CC
|
|
movs r0, 0
|
|
b _080915CE
|
|
_080915CC:
|
|
movs r0, 0x1
|
|
_080915CE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80915A0
|
|
|
|
thumb_func_start sub_80915D4
|
|
sub_80915D4:
|
|
ldr r1, _080915E0
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080915E0: .4byte gUnknown_810A3F0
|
|
thumb_func_end sub_80915D4
|
|
|
|
thumb_func_start sub_80915E4
|
|
sub_80915E4:
|
|
ldr r1, _080915F0
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080915F0: .4byte gUnknown_810A3F0
|
|
thumb_func_end sub_80915E4
|
|
|
|
thumb_func_start sub_80915F4
|
|
sub_80915F4:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, 0
|
|
adds r7, r3, 0
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
ldr r0, _080916B8
|
|
strh r0, [r7]
|
|
movs r0, 0
|
|
strh r0, [r7, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_8091764
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809161E
|
|
b _08091756
|
|
_0809161E:
|
|
movs r1, 0x8
|
|
ldrsh r0, [r6, r1]
|
|
movs r1, 0
|
|
bl sub_808DC68
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r2, 0x8
|
|
ldrsh r0, [r6, r2]
|
|
movs r1, 0x1
|
|
bl sub_808DC68
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
adds r2, r5, 0
|
|
subs r2, 0x55
|
|
ldr r5, _080916BC
|
|
lsls r2, 1
|
|
lsls r1, r4, 3
|
|
adds r1, r4
|
|
lsls r1, 2
|
|
adds r1, r2, r1
|
|
adds r1, r5
|
|
movs r4, 0
|
|
ldrsh r3, [r1, r4]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
adds r2, r5
|
|
movs r1, 0
|
|
ldrsh r0, [r2, r1]
|
|
movs r2, 0x14
|
|
ldrsh r1, [r6, r2]
|
|
adds r3, r0
|
|
ldrh r4, [r6, 0x14]
|
|
adds r3, r4
|
|
strh r3, [r6, 0x14]
|
|
movs r2, 0x14
|
|
ldrsh r0, [r6, r2]
|
|
subs r1, r0, r1
|
|
lsls r3, 16
|
|
cmp r3, 0
|
|
bgt _0809167C
|
|
movs r0, 0x1
|
|
strh r0, [r6, 0x14]
|
|
_0809167C:
|
|
movs r4, 0x14
|
|
ldrsh r0, [r6, r4]
|
|
ldr r2, _080916C0
|
|
cmp r0, r2
|
|
ble _08091688
|
|
strh r2, [r6, 0x14]
|
|
_08091688:
|
|
movs r0, 0
|
|
cmp r1, 0x8
|
|
bgt _0809169C
|
|
movs r0, 0x1
|
|
cmp r1, 0x4
|
|
bgt _0809169C
|
|
movs r0, 0x3
|
|
cmp r1, 0x2
|
|
ble _0809169C
|
|
movs r0, 0x2
|
|
_0809169C:
|
|
strh r0, [r7]
|
|
mov r1, r8
|
|
cmp r1, 0
|
|
bne _08091756
|
|
cmp r0, 0
|
|
bne _080916C4
|
|
movs r0, 0x10
|
|
bl RandomCapped
|
|
cmp r0, 0xA
|
|
bne _080916C4
|
|
movs r0, 0xF
|
|
b _080916D2
|
|
.align 2, 0
|
|
_080916B8: .4byte 0x0000ffff
|
|
_080916BC: .4byte gUnknown_810A580
|
|
_080916C0: .4byte 0x000003e7
|
|
_080916C4:
|
|
movs r0, 0x4
|
|
bl RandomCapped
|
|
ldr r1, _080916EC
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
_080916D2:
|
|
strh r0, [r7, 0x2]
|
|
ldrh r1, [r7, 0x2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080916F6
|
|
ldrb r0, [r6, 0x18]
|
|
cmp r0, 0xFE
|
|
bhi _080916F0
|
|
adds r0, 0x1
|
|
strb r0, [r6, 0x18]
|
|
b _080916F6
|
|
.align 2, 0
|
|
_080916EC: .4byte gUnknown_81097E0
|
|
_080916F0:
|
|
ldr r0, _0809170C
|
|
ands r0, r1
|
|
strh r0, [r7, 0x2]
|
|
_080916F6:
|
|
ldrh r1, [r7, 0x2]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091716
|
|
ldrb r0, [r6, 0x19]
|
|
cmp r0, 0xFE
|
|
bhi _08091710
|
|
adds r0, 0x1
|
|
strb r0, [r6, 0x19]
|
|
b _08091716
|
|
.align 2, 0
|
|
_0809170C: .4byte 0x0000fffe
|
|
_08091710:
|
|
ldr r0, _0809172C
|
|
ands r0, r1
|
|
strh r0, [r7, 0x2]
|
|
_08091716:
|
|
ldrh r1, [r7, 0x2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091736
|
|
ldrb r0, [r6, 0x1A]
|
|
cmp r0, 0xFE
|
|
bhi _08091730
|
|
adds r0, 0x1
|
|
strb r0, [r6, 0x1A]
|
|
b _08091736
|
|
.align 2, 0
|
|
_0809172C: .4byte 0x0000fffd
|
|
_08091730:
|
|
ldr r0, _0809174C
|
|
ands r0, r1
|
|
strh r0, [r7, 0x2]
|
|
_08091736:
|
|
ldrh r1, [r7, 0x2]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091756
|
|
ldrb r0, [r6, 0x1B]
|
|
cmp r0, 0xFE
|
|
bhi _08091750
|
|
adds r0, 0x1
|
|
strb r0, [r6, 0x1B]
|
|
b _08091756
|
|
.align 2, 0
|
|
_0809174C: .4byte 0x0000fffb
|
|
_08091750:
|
|
ldr r0, _08091760
|
|
ands r0, r1
|
|
strh r0, [r7, 0x2]
|
|
_08091756:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091760: .4byte 0x0000fff7
|
|
thumb_func_end sub_80915F4
|
|
|
|
thumb_func_start sub_8091764
|
|
sub_8091764:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x55
|
|
bls _08091776
|
|
cmp r0, 0x66
|
|
bhi _08091776
|
|
movs r0, 0x1
|
|
b _08091778
|
|
_08091776:
|
|
movs r0, 0
|
|
_08091778:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091764
|
|
|
|
thumb_func_start sub_809177C
|
|
sub_809177C:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_08091780:
|
|
lsls r1, r4, 2
|
|
ldr r0, _080917A4
|
|
ldr r0, [r0]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080917A8
|
|
ldrb r0, [r2, 0x2]
|
|
bl sub_8091764
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080917A8
|
|
movs r0, 0x1
|
|
b _080917B0
|
|
.align 2, 0
|
|
_080917A4: .4byte gUnknown_203B460
|
|
_080917A8:
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _08091780
|
|
movs r0, 0
|
|
_080917B0:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809177C
|
|
|
|
thumb_func_start sub_80917B8
|
|
sub_80917B8:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x2]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080917E0
|
|
ldr r2, _080917DC
|
|
ldr r1, [r2]
|
|
ldrb r0, [r4, 0x2]
|
|
lsls r0, 1
|
|
adds r1, 0x50
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
ldrb r3, [r4, 0x1]
|
|
adds r0, r3
|
|
b _080917F0
|
|
.align 2, 0
|
|
_080917DC: .4byte gUnknown_203B460
|
|
_080917E0:
|
|
ldr r2, _0809180C
|
|
ldr r1, [r2]
|
|
ldrb r0, [r4, 0x2]
|
|
lsls r0, 1
|
|
adds r1, 0x50
|
|
adds r1, r0
|
|
ldrh r0, [r1]
|
|
adds r0, 0x1
|
|
_080917F0:
|
|
strh r0, [r1]
|
|
ldr r0, [r2]
|
|
ldrb r1, [r4, 0x2]
|
|
lsls r1, 1
|
|
adds r0, 0x50
|
|
adds r2, r0, r1
|
|
ldrh r0, [r2]
|
|
ldr r1, _08091810
|
|
cmp r0, r1
|
|
bls _08091806
|
|
strh r1, [r2]
|
|
_08091806:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809180C: .4byte gUnknown_203B460
|
|
_08091810: .4byte 0x000003e7
|
|
thumb_func_end sub_80917B8
|
|
|
|
thumb_func_start sub_8091814
|
|
sub_8091814:
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r0, _0809183C
|
|
ldr r0, [r0]
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
movs r2, 0x7
|
|
_08091824:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _0809182C
|
|
adds r3, 0x1
|
|
_0809182C:
|
|
adds r1, 0x4
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08091824
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809183C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091814
|
|
|
|
thumb_func_start sub_8091840
|
|
sub_8091840:
|
|
lsls r0, 24
|
|
ldr r1, _08091858
|
|
lsrs r0, 22
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08091858: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091840
|
|
|
|
thumb_func_start sub_809185C
|
|
sub_809185C:
|
|
lsls r0, 24
|
|
ldr r1, _08091870
|
|
lsrs r0, 22
|
|
movs r2, 0x8C
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_08091870: .4byte gUnknown_203B460
|
|
thumb_func_end sub_809185C
|
|
|
|
thumb_func_start sub_8091874
|
|
sub_8091874:
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
movs r4, 0
|
|
ldr r7, _08091884
|
|
movs r6, 0x8C
|
|
lsls r6, 2
|
|
movs r3, 0
|
|
b _080918A0
|
|
.align 2, 0
|
|
_08091884: .4byte gUnknown_203B460
|
|
_08091888:
|
|
cmp r2, r4
|
|
ble _0809189A
|
|
ldr r0, [r7]
|
|
lsls r1, r4, 2
|
|
adds r0, r6
|
|
adds r1, r0, r1
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_0809189A:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
_080918A0:
|
|
cmp r2, 0x7
|
|
bgt _080918CA
|
|
ldr r0, [r7]
|
|
adds r0, r3
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080918CA
|
|
ldr r5, _080918E8
|
|
movs r1, 0x8C
|
|
lsls r1, 2
|
|
_080918B6:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
bgt _080918CA
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080918B6
|
|
_080918CA:
|
|
cmp r2, 0x8
|
|
bne _08091888
|
|
cmp r4, 0x7
|
|
bgt _080918E0
|
|
_080918D2:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8091840
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080918D2
|
|
_080918E0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080918E8: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091874
|
|
|
|
thumb_func_start sub_80918EC
|
|
sub_80918EC:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
_080918F8:
|
|
adds r1, r0, 0x1
|
|
mov r8, r1
|
|
mov r6, r8
|
|
cmp r1, 0x7
|
|
bgt _08091964
|
|
ldr r1, _08091978
|
|
mov r9, r1
|
|
lsls r7, r0, 2
|
|
movs r0, 0x8C
|
|
lsls r0, 2
|
|
mov r10, r0
|
|
_0809190E:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r7
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
bl sub_8090D44
|
|
adds r4, r0, 0
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r5, r6, 2
|
|
adds r0, r5
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
bl sub_8090D44
|
|
cmp r4, r0
|
|
bgt _0809194C
|
|
cmp r4, r0
|
|
bne _0809195E
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r2, r0, r7
|
|
ldr r1, _0809197C
|
|
adds r2, r1
|
|
adds r0, r5
|
|
adds r0, r1
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _0809195E
|
|
_0809194C:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
adds r2, r0, r7
|
|
ldr r3, [r2]
|
|
adds r0, r5
|
|
ldr r1, [r0]
|
|
str r1, [r2]
|
|
str r3, [r0]
|
|
_0809195E:
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _0809190E
|
|
_08091964:
|
|
mov r0, r8
|
|
cmp r0, 0x6
|
|
ble _080918F8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091978: .4byte gUnknown_203B460
|
|
_0809197C: .4byte 0x00000231
|
|
thumb_func_end sub_80918EC
|
|
|
|
thumb_func_start sub_8091980
|
|
sub_8091980:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r8, r0
|
|
mov r1, sp
|
|
ldr r0, _080919F4
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r5, 0
|
|
_0809199C:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_8091840
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0809199C
|
|
mov r0, r8
|
|
lsls r7, r0, 2
|
|
ldr r6, _080919F8
|
|
movs r5, 0x7
|
|
_080919B2:
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
adds r2, r0, 0
|
|
mov r1, sp
|
|
adds r0, r1, r7
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
bl sub_8091E94
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80919FC
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080919B2
|
|
bl sub_80918EC
|
|
mov r0, r8
|
|
bl sub_8091BB4
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080919F4: .4byte gUnknown_81097E8
|
|
_080919F8: .4byte 0x0000270f
|
|
thumb_func_end sub_8091980
|
|
|
|
thumb_func_start sub_80919FC
|
|
sub_80919FC:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, sp
|
|
bl sub_8090B08
|
|
movs r3, 0
|
|
ldr r5, _08091A34
|
|
movs r4, 0x8C
|
|
lsls r4, 2
|
|
_08091A14:
|
|
ldr r1, [r5]
|
|
lsls r2, r3, 2
|
|
adds r0, r1, r2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08091A38
|
|
movs r3, 0x8C
|
|
lsls r3, 2
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
ldr r1, [sp]
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
b _08091A40
|
|
.align 2, 0
|
|
_08091A34: .4byte gUnknown_203B460
|
|
_08091A38:
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08091A14
|
|
movs r0, 0x1
|
|
_08091A40:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80919FC
|
|
|
|
thumb_func_start sub_8091A48
|
|
sub_8091A48:
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r0, _08091A70
|
|
ldr r0, [r0]
|
|
movs r2, 0x94
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
movs r2, 0x3
|
|
_08091A58:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08091A60
|
|
adds r3, 0x1
|
|
_08091A60:
|
|
adds r1, 0x4
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08091A58
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08091A70: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091A48
|
|
|
|
thumb_func_start sub_8091A74
|
|
sub_8091A74:
|
|
lsls r0, 24
|
|
ldr r1, _08091A8C
|
|
lsrs r0, 22
|
|
movs r2, 0x94
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
strb r0, [r1, 0x1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08091A8C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091A74
|
|
|
|
thumb_func_start sub_8091A90
|
|
sub_8091A90:
|
|
lsls r0, 24
|
|
ldr r1, _08091AA4
|
|
lsrs r0, 22
|
|
movs r2, 0x94
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
adds r0, r1, 0
|
|
bx lr
|
|
.align 2, 0
|
|
_08091AA4: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091A90
|
|
|
|
thumb_func_start sub_8091AA8
|
|
sub_8091AA8:
|
|
push {r4-r7,lr}
|
|
movs r2, 0
|
|
movs r4, 0
|
|
ldr r7, _08091AB8
|
|
movs r6, 0x94
|
|
lsls r6, 2
|
|
movs r3, 0
|
|
b _08091AD4
|
|
.align 2, 0
|
|
_08091AB8: .4byte gUnknown_203B460
|
|
_08091ABC:
|
|
cmp r2, r4
|
|
ble _08091ACE
|
|
ldr r0, [r7]
|
|
lsls r1, r4, 2
|
|
adds r0, r6
|
|
adds r1, r0, r1
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_08091ACE:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
adds r4, 0x1
|
|
_08091AD4:
|
|
cmp r2, 0x3
|
|
bgt _08091AFE
|
|
ldr r0, [r7]
|
|
adds r0, r3
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08091AFE
|
|
ldr r5, _08091B1C
|
|
movs r1, 0x94
|
|
lsls r1, 2
|
|
_08091AEA:
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08091AFE
|
|
ldr r0, [r5]
|
|
adds r0, r3
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08091AEA
|
|
_08091AFE:
|
|
cmp r2, 0x4
|
|
bne _08091ABC
|
|
cmp r4, 0x3
|
|
bgt _08091B14
|
|
_08091B06:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8091A74
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08091B06
|
|
_08091B14:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091B1C: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091AA8
|
|
|
|
thumb_func_start sub_8091B20
|
|
sub_8091B20:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
movs r0, 0
|
|
_08091B2C:
|
|
adds r1, r0, 0x1
|
|
mov r8, r1
|
|
mov r6, r8
|
|
cmp r1, 0x3
|
|
bgt _08091B98
|
|
ldr r1, _08091BAC
|
|
mov r9, r1
|
|
lsls r7, r0, 2
|
|
movs r0, 0x94
|
|
lsls r0, 2
|
|
mov r10, r0
|
|
_08091B42:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r0, r7
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
bl sub_8090D44
|
|
adds r4, r0, 0
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
lsls r5, r6, 2
|
|
adds r0, r5
|
|
add r0, r10
|
|
ldrb r0, [r0]
|
|
bl sub_8090D44
|
|
cmp r4, r0
|
|
bgt _08091B80
|
|
cmp r4, r0
|
|
bne _08091B92
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
adds r2, r0, r7
|
|
ldr r1, _08091BB0
|
|
adds r2, r1
|
|
adds r0, r5
|
|
adds r0, r1
|
|
ldrb r1, [r2]
|
|
ldrb r0, [r0]
|
|
cmp r1, r0
|
|
bcs _08091B92
|
|
_08091B80:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r10
|
|
adds r2, r0, r7
|
|
ldr r3, [r2]
|
|
adds r0, r5
|
|
ldr r1, [r0]
|
|
str r1, [r2]
|
|
str r3, [r0]
|
|
_08091B92:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08091B42
|
|
_08091B98:
|
|
mov r0, r8
|
|
cmp r0, 0x2
|
|
ble _08091B2C
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091BAC: .4byte gUnknown_203B460
|
|
_08091BB0: .4byte 0x00000251
|
|
thumb_func_end sub_8091B20
|
|
|
|
thumb_func_start sub_8091BB4
|
|
sub_8091BB4:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
mov r1, sp
|
|
ldr r0, _08091C14
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r5, 0
|
|
_08091BCA:
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_8091A74
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08091BCA
|
|
lsls r7, r4, 2
|
|
ldr r6, _08091C18
|
|
movs r5, 0x3
|
|
_08091BDE:
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
adds r4, r0, 0
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
adds r2, r0, 0
|
|
mov r1, sp
|
|
adds r0, r1, r7
|
|
ldr r0, [r0]
|
|
adds r1, r4, 0
|
|
bl sub_8091E94
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8091C1C
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08091BDE
|
|
bl sub_8091B20
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08091C14: .4byte gUnknown_81097F8
|
|
_08091C18: .4byte 0x0000270f
|
|
thumb_func_end sub_8091BB4
|
|
|
|
thumb_func_start sub_8091C1C
|
|
sub_8091C1C:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
mov r0, sp
|
|
bl sub_8090B08
|
|
movs r3, 0
|
|
ldr r5, _08091C54
|
|
movs r4, 0x94
|
|
lsls r4, 2
|
|
_08091C34:
|
|
ldr r1, [r5]
|
|
lsls r2, r3, 2
|
|
adds r0, r1, r2
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08091C58
|
|
movs r3, 0x94
|
|
lsls r3, 2
|
|
adds r0, r1, r3
|
|
adds r0, r2
|
|
ldr r1, [sp]
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
b _08091C60
|
|
.align 2, 0
|
|
_08091C54: .4byte gUnknown_203B460
|
|
_08091C58:
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08091C34
|
|
movs r0, 0x1
|
|
_08091C60:
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091C1C
|
|
|
|
thumb_func_start sub_8091C68
|
|
sub_8091C68:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
movs r4, 0
|
|
ldr r5, _08091D10
|
|
_08091C7C:
|
|
lsls r0, r4, 2
|
|
ldr r1, [r5]
|
|
adds r1, r0
|
|
mov r0, sp
|
|
bl sub_8091E28
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _08091C7C
|
|
ldr r6, _08091D10
|
|
movs r5, 0x50
|
|
movs r4, 0xEF
|
|
_08091C94:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_809488C
|
|
adds r5, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091C94
|
|
ldr r6, _08091D10
|
|
movs r5, 0x8C
|
|
lsls r5, 2
|
|
movs r4, 0x7
|
|
_08091CB0:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8091DE0
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091CB0
|
|
ldr r6, _08091D10
|
|
movs r5, 0x94
|
|
lsls r5, 2
|
|
movs r4, 0x3
|
|
_08091CCA:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8091DE0
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091CCA
|
|
ldr r4, _08091D10
|
|
ldr r1, [r4]
|
|
movs r0, 0x98
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08091D10: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091C68
|
|
|
|
thumb_func_start sub_8091D14
|
|
sub_8091D14:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
movs r4, 0
|
|
ldr r5, _08091DBC
|
|
_08091D28:
|
|
lsls r0, r4, 2
|
|
ldr r1, [r5]
|
|
adds r1, r0
|
|
mov r0, sp
|
|
bl sub_8091E00
|
|
adds r4, 0x1
|
|
cmp r4, 0x13
|
|
ble _08091D28
|
|
ldr r6, _08091DBC
|
|
movs r5, 0x50
|
|
movs r4, 0xEF
|
|
_08091D40:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_8094924
|
|
adds r5, 0x2
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091D40
|
|
ldr r6, _08091DBC
|
|
movs r5, 0x8C
|
|
lsls r5, 2
|
|
movs r4, 0x7
|
|
_08091D5C:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8091DC0
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091D5C
|
|
ldr r6, _08091DBC
|
|
movs r5, 0x94
|
|
lsls r5, 2
|
|
movs r4, 0x3
|
|
_08091D76:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8091DC0
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08091D76
|
|
ldr r4, _08091DBC
|
|
ldr r1, [r4]
|
|
movs r0, 0x98
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
movs r0, 0x99
|
|
lsls r0, 2
|
|
adds r1, r0
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08091DBC: .4byte gUnknown_203B460
|
|
thumb_func_end sub_8091D14
|
|
|
|
thumb_func_start sub_8091DC0
|
|
sub_8091DC0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r4, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8091DC0
|
|
|
|
thumb_func_start sub_8091DE0
|
|
sub_8091DE0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r4, 0x1
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8091DE0
|
|
|
|
thumb_func_start sub_8091E00
|
|
sub_8091E00:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8091E00
|
|
|
|
thumb_func_start sub_8091E28
|
|
sub_8091E28:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
adds r5, 0x2
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8091E28
|
|
|
|
thumb_func_start sub_8091E50
|
|
sub_8091E50:
|
|
lsls r0, 24
|
|
ldr r1, _08091E5C
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08091E5C: .4byte gUnknown_810AF50
|
|
thumb_func_end sub_8091E50
|
|
|
|
thumb_func_start sub_8091E60
|
|
sub_8091E60:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r0, r1, 24
|
|
lsrs r4, r0, 24
|
|
cmp r3, 0x3E
|
|
bhi _08091E8C
|
|
ldr r2, _08091E88
|
|
lsrs r0, 27
|
|
lsls r1, r3, 5
|
|
adds r0, r1
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
movs r1, 0x7
|
|
ands r1, r4
|
|
asrs r0, r1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
b _08091E8E
|
|
.align 2, 0
|
|
_08091E88: .4byte gUnknown_8108F64
|
|
_08091E8C:
|
|
movs r0, 0
|
|
_08091E8E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091E60
|
|
|
|
thumb_func_start sub_8091E94
|
|
sub_8091E94:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
ldr r4, _08091EE4
|
|
add sp, r4
|
|
mov r8, r1
|
|
mov r10, r2
|
|
ldr r1, _08091EE8
|
|
subs r0, 0x1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r3, 0
|
|
add r1, sp, 0x18
|
|
mov r9, r1
|
|
ldr r2, _08091EEC
|
|
mov r12, r2
|
|
add r6, sp, 0x1F8
|
|
ldr r2, [r0]
|
|
adds r7, r6, 0
|
|
movs r4, 0
|
|
_08091EC0:
|
|
ldrh r1, [r2]
|
|
cmp r1, r12
|
|
bls _08091EF4
|
|
ldrh r0, [r2]
|
|
ldr r1, _08091EF0
|
|
adds r0, r1
|
|
cmp r0, 0
|
|
beq _08091EFC
|
|
movs r5, 0
|
|
adds r1, r7, r4
|
|
_08091ED4:
|
|
strh r5, [r1]
|
|
adds r1, 0x2
|
|
adds r4, 0x2
|
|
adds r3, 0x1
|
|
subs r0, 0x1
|
|
cmp r0, 0
|
|
bne _08091ED4
|
|
b _08091EFC
|
|
.align 2, 0
|
|
_08091EE4: .4byte 0xfffffc10
|
|
_08091EE8: .4byte gUnknown_8108E58
|
|
_08091EEC: .4byte 0x0000752f
|
|
_08091EF0: .4byte 0xffff8ad0
|
|
_08091EF4:
|
|
adds r0, r6, r4
|
|
strh r1, [r0]
|
|
adds r4, 0x2
|
|
adds r3, 0x1
|
|
_08091EFC:
|
|
adds r2, 0x2
|
|
cmp r3, 0xFB
|
|
ble _08091EC0
|
|
movs r3, 0xB
|
|
add r2, sp, 0x1F8
|
|
mov r1, sp
|
|
_08091F08:
|
|
ldrh r0, [r2]
|
|
strh r0, [r1]
|
|
adds r2, 0x2
|
|
adds r1, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08091F08
|
|
mov r2, r9
|
|
add r1, sp, 0x210
|
|
movs r3, 0xEF
|
|
_08091F1C:
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
adds r1, 0x2
|
|
adds r2, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08091F1C
|
|
movs r7, 0xC
|
|
movs r6, 0
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
cmp r0, 0
|
|
beq _08091F4A
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, r8
|
|
blt _08091F4A
|
|
movs r7, 0
|
|
b _08091F66
|
|
_08091F46:
|
|
mov r8, r5
|
|
b _08091F9C
|
|
_08091F4A:
|
|
adds r6, 0x1
|
|
cmp r6, 0xB
|
|
bgt _08091F66
|
|
lsls r0, r6, 1
|
|
mov r2, sp
|
|
adds r1, r2, r0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
beq _08091F4A
|
|
cmp r0, r8
|
|
blt _08091F4A
|
|
lsls r0, r6, 24
|
|
lsrs r7, r0, 24
|
|
_08091F66:
|
|
movs r0, 0x46
|
|
mov r8, r0
|
|
cmp r7, 0xC
|
|
beq _08091F9C
|
|
movs r6, 0
|
|
mov r4, r9
|
|
_08091F72:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _08091F94
|
|
lsls r0, r6, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r5, 0
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r7
|
|
bne _08091F94
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, r10
|
|
bge _08091F46
|
|
_08091F94:
|
|
adds r4, 0x2
|
|
adds r6, 0x1
|
|
cmp r6, 0xEF
|
|
ble _08091F72
|
|
_08091F9C:
|
|
mov r0, r8
|
|
movs r3, 0xFC
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8091E94
|
|
|
|
thumb_func_start sub_8091FB4
|
|
sub_8091FB4:
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
_08091FB8:
|
|
ldr r0, _08092038
|
|
lsls r1, r6, 2
|
|
ldr r0, [r0]
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08091FE8
|
|
movs r0, 0xF7
|
|
ands r0, r1
|
|
movs r5, 0
|
|
strb r0, [r4]
|
|
ldrb r0, [r4, 0x2]
|
|
cmp r0, 0x69
|
|
bne _08091FE8
|
|
adds r0, r4, 0
|
|
bl sub_80915D4
|
|
bl sub_80913A0
|
|
strb r5, [r4, 0x2]
|
|
strb r5, [r4, 0x1]
|
|
strb r5, [r4]
|
|
_08091FE8:
|
|
adds r6, 0x1
|
|
cmp r6, 0x13
|
|
ble _08091FB8
|
|
bl sub_80910B4
|
|
movs r6, 0
|
|
_08091FF4:
|
|
movs r0, 0x58
|
|
adds r1, r6, 0
|
|
muls r1, r0
|
|
ldr r0, _0809203C
|
|
ldr r0, [r0]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092026
|
|
adds r4, r2, 0
|
|
adds r4, 0x28
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08092026
|
|
cmp r0, 0x69
|
|
bne _08092026
|
|
adds r0, r4, 0
|
|
bl sub_80915E4
|
|
bl sub_80913A0
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
_08092026:
|
|
adds r6, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r6, r0
|
|
ble _08091FF4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092038: .4byte gUnknown_203B460
|
|
_0809203C: .4byte gUnknown_203B45C
|
|
thumb_func_end sub_8091FB4
|
|
|
|
thumb_func_start sub_8092040
|
|
sub_8092040:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
cmp r3, 0xEF
|
|
bls _0809204E
|
|
_0809204A:
|
|
movs r0, 0x1
|
|
b _08092070
|
|
_0809204E:
|
|
movs r2, 0
|
|
ldr r0, _08092078
|
|
ldrb r1, [r0]
|
|
adds r4, r0, 0
|
|
cmp r1, 0xF0
|
|
beq _0809206E
|
|
adds r1, r4, 0
|
|
_0809205C:
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, r3
|
|
beq _0809204A
|
|
adds r2, 0x1
|
|
adds r0, r2, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xF0
|
|
bne _0809205C
|
|
_0809206E:
|
|
movs r0, 0
|
|
_08092070:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08092078: .4byte gUnknown_810A35B
|
|
thumb_func_end sub_8092040
|
|
|
|
thumb_func_start sub_809207C
|
|
sub_809207C:
|
|
ldr r1, _08092084
|
|
ldr r0, _08092088
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092084: .4byte gUnknown_203B464
|
|
_08092088: .4byte gUnknown_2038C10
|
|
thumb_func_end sub_809207C
|
|
|
|
thumb_func_start sub_809208C
|
|
sub_809208C:
|
|
ldr r0, _08092090
|
|
bx lr
|
|
.align 2, 0
|
|
_08092090: .4byte gUnknown_2038C10
|
|
thumb_func_end sub_809208C
|
|
|
|
thumb_func_start sub_8092094
|
|
sub_8092094:
|
|
push {r4,lr}
|
|
ldr r4, _080920B0
|
|
ldr r0, [r4]
|
|
ldr r1, _080920B4
|
|
movs r2, 0xA
|
|
bl sub_8092310
|
|
ldr r1, [r4]
|
|
movs r0, 0
|
|
str r0, [r1, 0xC]
|
|
strb r0, [r1, 0x10]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080920B0: .4byte gUnknown_203B464
|
|
_080920B4: .4byte gUnknown_810982C
|
|
thumb_func_end sub_8092094
|
|
|
|
thumb_func_start sub_80920B8
|
|
sub_80920B8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r1, 0
|
|
ldr r0, _080920D4
|
|
ldr r3, [r0]
|
|
_080920C2:
|
|
adds r0, r3, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r2]
|
|
adds r2, 0x1
|
|
adds r1, 0x1
|
|
cmp r1, 0x9
|
|
ble _080920C2
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080920D4: .4byte gUnknown_203B464
|
|
thumb_func_end sub_80920B8
|
|
|
|
thumb_func_start sub_80920D8
|
|
sub_80920D8:
|
|
push {lr}
|
|
ldr r1, _080920E8
|
|
ldr r1, [r1]
|
|
movs r2, 0xA
|
|
bl sub_80922B4
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080920E8: .4byte gUnknown_203B464
|
|
thumb_func_end sub_80920D8
|
|
|
|
thumb_func_start sub_80920EC
|
|
sub_80920EC:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r4, _0809210C
|
|
_080920F4:
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
ldrb r1, [r3]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080920F4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809210C: .4byte gUnknown_203B464
|
|
thumb_func_end sub_80920EC
|
|
|
|
thumb_func_start sub_8092110
|
|
sub_8092110:
|
|
ldr r0, _08092118
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092118: .4byte gUnknown_203B464
|
|
thumb_func_end sub_8092110
|
|
|
|
thumb_func_start sub_809211C
|
|
sub_809211C:
|
|
push {lr}
|
|
bl sub_8092178
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
beq _08092144
|
|
ldr r1, _0809213C
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, _08092140
|
|
ldr r1, [r1]
|
|
ldr r0, [r0]
|
|
ldr r1, [r1, 0xC]
|
|
subs r0, r1
|
|
b _08092146
|
|
.align 2, 0
|
|
_0809213C: .4byte gUnknown_8109810
|
|
_08092140: .4byte gUnknown_203B464
|
|
_08092144:
|
|
movs r0, 0
|
|
_08092146:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809211C
|
|
|
|
thumb_func_start sub_809214C
|
|
sub_809214C:
|
|
ldr r1, _08092154
|
|
ldr r1, [r1]
|
|
str r0, [r1, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092154: .4byte gUnknown_203B464
|
|
thumb_func_end sub_809214C
|
|
|
|
thumb_func_start sub_8092158
|
|
sub_8092158:
|
|
push {lr}
|
|
ldr r1, _08092170
|
|
ldr r2, [r1]
|
|
ldr r1, [r2, 0xC]
|
|
adds r1, r0
|
|
str r1, [r2, 0xC]
|
|
ldr r0, _08092174
|
|
cmp r1, r0
|
|
ble _0809216C
|
|
str r0, [r2, 0xC]
|
|
_0809216C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092170: .4byte gUnknown_203B464
|
|
_08092174: .4byte 0x05f5e0ff
|
|
thumb_func_end sub_8092158
|
|
|
|
thumb_func_start sub_8092178
|
|
sub_8092178:
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r0, _08092190
|
|
ldr r0, [r0]
|
|
ldr r3, [r0, 0xC]
|
|
ldr r2, _08092194
|
|
_08092184:
|
|
ldr r0, [r2]
|
|
cmp r3, r0
|
|
bge _08092198
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
b _080921A2
|
|
.align 2, 0
|
|
_08092190: .4byte gUnknown_203B464
|
|
_08092194: .4byte gUnknown_8109810
|
|
_08092198:
|
|
adds r2, 0x4
|
|
adds r1, 0x1
|
|
cmp r1, 0x6
|
|
ble _08092184
|
|
movs r0, 0x6
|
|
_080921A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092178
|
|
|
|
thumb_func_start sub_80921A8
|
|
sub_80921A8:
|
|
lsls r0, 24
|
|
ldr r1, _080921B4
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080921B4: .4byte gUnknown_810B44C
|
|
thumb_func_end sub_80921A8
|
|
|
|
thumb_func_start sub_80921B8
|
|
sub_80921B8:
|
|
ldr r0, _080921C0
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_080921C0: .4byte gUnknown_203B464
|
|
thumb_func_end sub_80921B8
|
|
|
|
thumb_func_start sub_80921C4
|
|
sub_80921C4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
add r6, sp, 0x10
|
|
movs r0, 0xFF
|
|
strb r0, [r6]
|
|
mov r5, sp
|
|
adds r5, 0x11
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
ldr r4, _08092228
|
|
ldr r1, [r4]
|
|
mov r0, sp
|
|
movs r2, 0x58
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
movs r0, 0
|
|
bl sub_80023E4
|
|
ldr r1, [r4]
|
|
strb r0, [r1, 0x10]
|
|
ldr r0, [r4]
|
|
ldrb r0, [r0, 0x10]
|
|
adds r1, r5, 0
|
|
cmp r0, 0
|
|
beq _08092210
|
|
adds r1, r6, 0
|
|
_08092210:
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08092228: .4byte gUnknown_203B464
|
|
thumb_func_end sub_80921C4
|
|
|
|
thumb_func_start sub_809222C
|
|
sub_809222C:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
ldr r5, _0809227C
|
|
ldr r1, [r5]
|
|
mov r0, sp
|
|
movs r2, 0x58
|
|
bl sub_8094924
|
|
ldr r1, [r5]
|
|
adds r1, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
add r4, sp, 0x10
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
strb r0, [r2, 0x10]
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809227C: .4byte gUnknown_203B464
|
|
thumb_func_end sub_809222C
|
|
|
|
thumb_func_start sub_8092280
|
|
sub_8092280:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bx lr
|
|
thumb_func_end sub_8092280
|
|
|
|
thumb_func_start sub_8092288
|
|
sub_8092288:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bx lr
|
|
thumb_func_end sub_8092288
|
|
|
|
thumb_func_start sub_8092290
|
|
sub_8092290:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
b _080922A4
|
|
_08092298:
|
|
ldrb r0, [r4]
|
|
adds r4, 0x1
|
|
bl sub_8092288
|
|
strb r0, [r5]
|
|
adds r5, 0x1
|
|
_080922A4:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _08092298
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092290
|
|
|
|
thumb_func_start sub_80922B4
|
|
sub_80922B4:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
b _080922CA
|
|
_080922BE:
|
|
ldrb r0, [r4]
|
|
adds r4, 0x1
|
|
bl sub_8092288
|
|
strb r0, [r6]
|
|
adds r6, 0x1
|
|
_080922CA:
|
|
adds r0, r5, 0
|
|
subs r5, 0x1
|
|
cmp r0, 0
|
|
ble _080922D8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _080922BE
|
|
_080922D8:
|
|
movs r0, 0
|
|
strb r0, [r6]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80922B4
|
|
|
|
thumb_func_start sub_80922E4
|
|
sub_80922E4:
|
|
ldr r1, _080922F0
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080922F0: .4byte gUnknown_810983C
|
|
thumb_func_end sub_80922E4
|
|
|
|
thumb_func_start sub_80922F4
|
|
sub_80922F4:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
b _08092300
|
|
_080922FA:
|
|
strb r0, [r2]
|
|
adds r1, 0x1
|
|
adds r2, 0x1
|
|
_08092300:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080922FA
|
|
movs r0, 0
|
|
strb r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80922F4
|
|
|
|
thumb_func_start sub_8092310
|
|
sub_8092310:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
b _0809231C
|
|
_08092316:
|
|
strb r0, [r4]
|
|
adds r4, 0x1
|
|
adds r1, 0x1
|
|
_0809231C:
|
|
adds r0, r2, 0
|
|
subs r2, 0x1
|
|
cmp r0, 0
|
|
ble _0809232E
|
|
ldrb r0, [r1]
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
bne _08092316
|
|
strb r3, [r4]
|
|
_0809232E:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092310
|
|
|
|
thumb_func_start sub_8092334
|
|
sub_8092334:
|
|
lsls r0, 24
|
|
ldr r1, _08092340
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092340: .4byte gUnknown_810AD4C
|
|
thumb_func_end sub_8092334
|
|
|
|
thumb_func_start sub_8092344
|
|
sub_8092344:
|
|
lsls r0, 24
|
|
ldr r1, _08092350
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092350: .4byte gUnknown_810AE24
|
|
thumb_func_end sub_8092344
|
|
|
|
thumb_func_start sub_8092354
|
|
sub_8092354:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08092360
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092360: .4byte gUnknown_810AC7C
|
|
thumb_func_end sub_8092354
|
|
|
|
thumb_func_start sub_8092364
|
|
sub_8092364:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08092370
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092370: .4byte gUnknown_810AC6A
|
|
thumb_func_end sub_8092364
|
|
|
|
thumb_func_start sub_8092374
|
|
sub_8092374:
|
|
push {lr}
|
|
lsls r1, 24
|
|
ldr r2, _0809238C
|
|
lsrs r1, 22
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
movs r2, 0x50
|
|
bl strncpy
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809238C: .4byte gUnknown_810B4C8
|
|
thumb_func_end sub_8092374
|
|
|
|
thumb_func_start sub_8092390
|
|
sub_8092390:
|
|
lsls r0, 24
|
|
ldr r1, _0809239C
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809239C: .4byte gUnknown_810B988
|
|
thumb_func_end sub_8092390
|
|
|
|
thumb_func_start sub_80923A0
|
|
sub_80923A0:
|
|
ldr r1, _080923A8
|
|
ldr r0, _080923AC
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080923A8: .4byte gUnknown_203B468
|
|
_080923AC: .4byte gUnknown_2038C28
|
|
thumb_func_end sub_80923A0
|
|
|
|
thumb_func_start sub_80923B0
|
|
sub_80923B0:
|
|
ldr r0, _080923B4
|
|
bx lr
|
|
.align 2, 0
|
|
_080923B4: .4byte gUnknown_2038C28
|
|
thumb_func_end sub_80923B0
|
|
|
|
thumb_func_start sub_80923B8
|
|
sub_80923B8:
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r3, _080923D0
|
|
movs r2, 0
|
|
_080923C0:
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
adds r1, 0x1
|
|
cmp r1, 0x39
|
|
ble _080923C0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080923D0: .4byte gUnknown_203B468
|
|
thumb_func_end sub_80923B8
|
|
|
|
thumb_func_start sub_80923D4
|
|
sub_80923D4:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
movs r1, 0
|
|
ldr r2, _080923F0
|
|
_080923DE:
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
adds r3, r0
|
|
cmp r3, r4
|
|
ble _080923F4
|
|
lsls r0, r1, 24
|
|
lsrs r0, 24
|
|
b _080923FE
|
|
.align 2, 0
|
|
_080923F0: .4byte gUnknown_810AA90
|
|
_080923F4:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x39
|
|
ble _080923DE
|
|
movs r0, 0
|
|
_080923FE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80923D4
|
|
|
|
thumb_func_start sub_8092404
|
|
sub_8092404:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
mov r10, r1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
mov r9, r0
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r8, r2
|
|
lsls r3, 24
|
|
lsrs r7, r3, 24
|
|
movs r6, 0
|
|
movs r4, 0
|
|
mov r5, r10
|
|
_08092426:
|
|
movs r0, 0x58
|
|
adds r1, r4, 0
|
|
muls r1, r0
|
|
ldr r0, _08092494
|
|
ldr r0, [r0]
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092472
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
beq _08092448
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08092472
|
|
_08092448:
|
|
movs r1, 0
|
|
ldrb r0, [r2, 0x4]
|
|
cmp r0, 0x41
|
|
bne _08092452
|
|
movs r1, 0x1
|
|
_08092452:
|
|
cmp r1, 0
|
|
beq _0809245A
|
|
cmp r7, 0
|
|
beq _08092472
|
|
_0809245A:
|
|
adds r0, r4, 0
|
|
bl sub_80923D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r9
|
|
bne _08092472
|
|
cmp r6, 0xF
|
|
bgt _08092472
|
|
strh r4, [r5]
|
|
adds r5, 0x2
|
|
adds r6, 0x1
|
|
_08092472:
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _08092426
|
|
lsls r0, r6, 1
|
|
add r0, r10
|
|
ldr r2, _08092498
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092494: .4byte gUnknown_203B45C
|
|
_08092498: .4byte 0x0000ffff
|
|
thumb_func_end sub_8092404
|
|
|
|
thumb_func_start sub_809249C
|
|
sub_809249C:
|
|
push {r4-r7,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
ldr r0, _080924F8
|
|
ldr r0, [r0]
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809251A
|
|
movs r5, 0
|
|
_080924B4:
|
|
ldr r2, _080924FC
|
|
movs r0, 0x58
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092502
|
|
adds r0, r5, 0
|
|
bl sub_80923D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, r6
|
|
bne _08092502
|
|
movs r1, 0
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0x41
|
|
bne _080924E2
|
|
movs r1, 0x1
|
|
_080924E2:
|
|
cmp r1, 0
|
|
bne _080924F2
|
|
ldrb r1, [r4, 0x2]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
cmp r0, 0
|
|
beq _08092500
|
|
_080924F2:
|
|
movs r7, 0
|
|
b _08092502
|
|
.align 2, 0
|
|
_080924F8: .4byte gUnknown_203B468
|
|
_080924FC: .4byte gUnknown_203B45C
|
|
_08092500:
|
|
strh r0, [r4]
|
|
_08092502:
|
|
adds r5, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r5, r0
|
|
ble _080924B4
|
|
cmp r7, 0
|
|
beq _0809251A
|
|
ldr r0, _08092520
|
|
ldr r0, [r0]
|
|
adds r0, r6
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
_0809251A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092520: .4byte gUnknown_203B468
|
|
thumb_func_end sub_809249C
|
|
|
|
thumb_func_start sub_8092524
|
|
sub_8092524:
|
|
lsls r0, 24
|
|
ldr r1, _08092530
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092530: .4byte gUnknown_81139D0
|
|
thumb_func_end sub_8092524
|
|
|
|
thumb_func_start sub_8092534
|
|
sub_8092534:
|
|
lsls r0, 24
|
|
ldr r1, _08092540
|
|
lsrs r0, 21
|
|
adds r0, r1
|
|
ldrb r0, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092540: .4byte gUnknown_810AA90
|
|
thumb_func_end sub_8092534
|
|
|
|
thumb_func_start sub_8092544
|
|
sub_8092544:
|
|
lsls r0, 24
|
|
ldr r1, _08092554
|
|
lsrs r0, 21
|
|
adds r1, 0x4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092554: .4byte gUnknown_810AA90
|
|
thumb_func_end sub_8092544
|
|
|
|
thumb_func_start sub_8092558
|
|
sub_8092558:
|
|
push {lr}
|
|
lsls r2, r1, 24
|
|
ldr r1, _08092570
|
|
ldr r3, _08092574
|
|
lsrs r2, 22
|
|
adds r2, r3
|
|
ldr r2, [r2]
|
|
bl sub_800D158
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092570: .4byte gUnknown_81098A4
|
|
_08092574: .4byte gUnknown_81139D0
|
|
thumb_func_end sub_8092558
|
|
|
|
thumb_func_start sub_8092578
|
|
sub_8092578:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x18
|
|
adds r5, r0, 0
|
|
lsls r1, 24
|
|
lsrs r4, r1, 24
|
|
lsls r2, 24
|
|
cmp r2, 0
|
|
beq _080925C0
|
|
ldr r0, _080925B4
|
|
lsls r1, r4, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r0, [r1]
|
|
add r1, sp, 0x4
|
|
movs r2, 0x1
|
|
bl sub_8090FEC
|
|
ldr r1, _080925B8
|
|
ldr r2, _080925BC
|
|
lsls r0, r4, 2
|
|
adds r0, r2
|
|
ldr r2, [r0]
|
|
add r0, sp, 0x4
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r3, 0x60
|
|
bl sub_800D158
|
|
b _080925CE
|
|
.align 2, 0
|
|
_080925B4: .4byte gUnknown_810AA90
|
|
_080925B8: .4byte gUnknown_81098AC
|
|
_080925BC: .4byte gUnknown_81139D0
|
|
_080925C0:
|
|
ldr r0, _080925D8
|
|
lsls r1, r4, 2
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r5, 0
|
|
bl strcpy
|
|
_080925CE:
|
|
add sp, 0x18
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080925D8: .4byte gUnknown_81139D0
|
|
thumb_func_end sub_8092578
|
|
|
|
thumb_func_start sub_80925DC
|
|
sub_80925DC:
|
|
lsls r0, 24
|
|
ldr r1, _080925E8
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_080925E8: .4byte gUnknown_8113E30
|
|
thumb_func_end sub_80925DC
|
|
|
|
thumb_func_start sub_80925EC
|
|
sub_80925EC:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080925FC
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080925FC: .4byte gUnknown_203B468
|
|
thumb_func_end sub_80925EC
|
|
|
|
thumb_func_start sub_8092600
|
|
sub_8092600:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08092610
|
|
ldr r1, [r1]
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092610: .4byte gUnknown_203B468
|
|
thumb_func_end sub_8092600
|
|
|
|
thumb_func_start sub_8092614
|
|
sub_8092614:
|
|
push {lr}
|
|
movs r1, 0x1
|
|
ldr r0, _08092628
|
|
ldr r2, [r0]
|
|
_0809261C:
|
|
adds r0, r2, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809262C
|
|
movs r0, 0
|
|
b _08092634
|
|
.align 2, 0
|
|
_08092628: .4byte gUnknown_203B468
|
|
_0809262C:
|
|
adds r1, 0x1
|
|
cmp r1, 0x39
|
|
ble _0809261C
|
|
movs r0, 0x1
|
|
_08092634:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092614
|
|
|
|
thumb_func_start sub_8092638
|
|
sub_8092638:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r12, r2
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
mov r8, r3
|
|
movs r6, 0
|
|
movs r3, 0
|
|
ldr r2, _080926DC
|
|
cmp r3, r5
|
|
bge _0809266E
|
|
ldr r1, _080926E0
|
|
adds r3, r5, 0
|
|
_0809265E:
|
|
movs r7, 0
|
|
ldrsh r0, [r1, r7]
|
|
adds r6, r0
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _0809265E
|
|
adds r3, r5, 0
|
|
_0809266E:
|
|
str r6, [r4, 0x8]
|
|
ldr r0, [r2]
|
|
adds r0, r3
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _080926E8
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2]
|
|
ldr r1, _080926E0
|
|
lsls r0, r3, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
movs r3, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
bge _080926EC
|
|
ldr r5, _080926E4
|
|
_0809269A:
|
|
movs r0, 0x58
|
|
adds r1, r6, 0
|
|
muls r1, r0
|
|
ldr r0, [r5]
|
|
adds r2, r0, r1
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080926CC
|
|
mov r7, r12
|
|
cmp r7, 0
|
|
beq _080926BA
|
|
ldrb r0, [r2, 0x2]
|
|
cmp r0, 0
|
|
bne _080926CC
|
|
_080926BA:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _080926C6
|
|
ldrb r0, [r2, 0x4]
|
|
cmp r0, 0x41
|
|
beq _080926CC
|
|
_080926C6:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
_080926CC:
|
|
adds r3, 0x1
|
|
adds r6, 0x1
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r3, r0
|
|
blt _0809269A
|
|
b _080926EC
|
|
.align 2, 0
|
|
_080926DC: .4byte gUnknown_203B468
|
|
_080926E0: .4byte gUnknown_810AA90
|
|
_080926E4: .4byte gUnknown_203B45C
|
|
_080926E8:
|
|
strh r0, [r4, 0x2]
|
|
strh r0, [r4]
|
|
_080926EC:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092638
|
|
|
|
thumb_func_start sub_80926F8
|
|
sub_80926F8:
|
|
push {r4-r7,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
lsls r2, 24
|
|
lsrs r7, r2, 24
|
|
movs r5, 0
|
|
movs r2, 0
|
|
ldr r0, _08092780
|
|
mov r12, r0
|
|
cmp r2, r3
|
|
bge _08092724
|
|
ldr r1, _08092784
|
|
adds r2, r3, 0
|
|
_08092714:
|
|
movs r6, 0
|
|
ldrsh r0, [r1, r6]
|
|
adds r5, r0
|
|
adds r1, 0x8
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bne _08092714
|
|
adds r2, r3, 0
|
|
_08092724:
|
|
str r5, [r4, 0x8]
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
beq _0809279C
|
|
movs r0, 0
|
|
strh r0, [r4, 0x2]
|
|
ldr r1, _08092784
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
strh r0, [r4]
|
|
movs r6, 0
|
|
ldrsh r0, [r4, r6]
|
|
cmp r0, 0
|
|
ble _080927A0
|
|
ldr r6, _08092788
|
|
adds r2, r0, 0
|
|
_08092752:
|
|
movs r0, 0x58
|
|
adds r1, r5, 0
|
|
muls r1, r0
|
|
ldr r0, [r6]
|
|
adds r3, r0, r1
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092792
|
|
ldrb r0, [r3, 0x2]
|
|
cmp r0, 0
|
|
bne _08092776
|
|
cmp r7, 0
|
|
bne _0809278C
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, 0x41
|
|
bne _0809278C
|
|
_08092776:
|
|
ldrh r0, [r4]
|
|
subs r0, 0x1
|
|
strh r0, [r4]
|
|
b _08092792
|
|
.align 2, 0
|
|
_08092780: .4byte gUnknown_203B468
|
|
_08092784: .4byte gUnknown_810AA90
|
|
_08092788: .4byte gUnknown_203B45C
|
|
_0809278C:
|
|
ldrh r0, [r4, 0x2]
|
|
adds r0, 0x1
|
|
strh r0, [r4, 0x2]
|
|
_08092792:
|
|
subs r2, 0x1
|
|
adds r5, 0x1
|
|
cmp r2, 0
|
|
bne _08092752
|
|
b _080927A0
|
|
_0809279C:
|
|
strh r0, [r4, 0x2]
|
|
strh r0, [r4]
|
|
_080927A0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80926F8
|
|
|
|
thumb_func_start sub_80927A8
|
|
sub_80927A8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
movs r4, 0
|
|
add r5, sp, 0x10
|
|
_080927BC:
|
|
ldr r0, _080927F0
|
|
ldr r0, [r0]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080927CC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080927CC:
|
|
str r0, [sp, 0x10]
|
|
mov r0, sp
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r4, 0x1
|
|
cmp r4, 0x39
|
|
ble _080927BC
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080927F0: .4byte gUnknown_203B468
|
|
thumb_func_end sub_80927A8
|
|
|
|
thumb_func_start sub_80927F4
|
|
sub_80927F4:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
movs r4, 0
|
|
add r7, sp, 0x10
|
|
movs r6, 0x1
|
|
ldr r5, _08092828
|
|
_0809280C:
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r1, [sp, 0x10]
|
|
ands r1, r6
|
|
cmp r1, 0
|
|
beq _0809282C
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
strb r6, [r0]
|
|
b _08092832
|
|
.align 2, 0
|
|
_08092828: .4byte gUnknown_203B468
|
|
_0809282C:
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
_08092832:
|
|
adds r4, 0x1
|
|
cmp r4, 0x39
|
|
ble _0809280C
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80927F4
|
|
|
|
thumb_func_start LoadWazaParameters
|
|
LoadWazaParameters:
|
|
push {lr}
|
|
ldr r0, _08092868
|
|
ldr r1, _0809286C
|
|
bl OpenFileAndGetFileDataPtr
|
|
ldr r1, _08092870
|
|
str r0, [r1]
|
|
ldr r1, _08092874
|
|
ldr r2, [r0, 0x4]
|
|
ldr r0, [r2]
|
|
str r0, [r1]
|
|
ldr r1, _08092878
|
|
ldr r0, [r2, 0x4]
|
|
str r0, [r1]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092868: .4byte gUnknown_81098D0
|
|
_0809286C: .4byte gUnknown_8300500
|
|
_08092870: .4byte gWazaParametersFile
|
|
_08092874: .4byte gUnknown_2038C68
|
|
_08092878: .4byte gUnknown_2038C6C
|
|
thumb_func_end LoadWazaParameters
|
|
|
|
thumb_func_start sub_809287C
|
|
sub_809287C:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08092894
|
|
ldrb r1, [r2, 0x1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092898
|
|
_08092894:
|
|
movs r0, 0x32
|
|
b _0809289A
|
|
_08092898:
|
|
movs r0, 0x34
|
|
_0809289A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809287C
|
|
|
|
thumb_func_start sub_80928A0
|
|
sub_80928A0:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
mov r0, sp
|
|
bl sub_8093F10
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
bl sub_80928C0
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80928A0
|
|
|
|
thumb_func_start sub_80928C0
|
|
sub_80928C0:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x20
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r5, r2, 0
|
|
adds r0, r4, 0
|
|
bl sub_809287C
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
cmp r5, 0
|
|
bne _080928DE
|
|
ldr r5, _080928F0
|
|
_080928DE:
|
|
ldrb r1, [r4, 0x5]
|
|
cmp r1, 0
|
|
beq _080928F8
|
|
ldr r1, _080928F4
|
|
ldrb r2, [r4, 0x5]
|
|
add r0, sp, 0x14
|
|
bl sub_800D158
|
|
b _080928FC
|
|
.align 2, 0
|
|
_080928F0: .4byte gUnknown_81098C4
|
|
_080928F4: .4byte gUnknown_81098DC
|
|
_080928F8:
|
|
add r0, sp, 0x14
|
|
strb r1, [r0]
|
|
_080928FC:
|
|
ldrb r0, [r5, 0x8]
|
|
cmp r0, 0
|
|
beq _08092904
|
|
movs r6, 0x2
|
|
_08092904:
|
|
ldrb r0, [r5, 0x9]
|
|
cmp r0, 0
|
|
beq _08092918
|
|
ldrh r0, [r4, 0x2]
|
|
bl sub_809422C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08092918
|
|
movs r6, 0x2
|
|
_08092918:
|
|
ldr r0, [r5]
|
|
cmp r0, 0x4
|
|
bls _08092920
|
|
b _08092A6A
|
|
_08092920:
|
|
lsls r0, 2
|
|
ldr r1, _0809292C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809292C: .4byte _08092930
|
|
.align 2, 0
|
|
_08092930:
|
|
.4byte _08092944
|
|
.4byte _0809296C
|
|
.4byte _08092998
|
|
.4byte _080929C4
|
|
.4byte _08092A20
|
|
_08092944:
|
|
ldr r1, _08092964
|
|
ldrh r2, [r4, 0x2]
|
|
ldr r0, _08092968
|
|
ldr r3, [r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r3, [r0]
|
|
add r0, sp, 0x14
|
|
str r0, [sp]
|
|
adds r0, r7, 0
|
|
adds r2, r6, 0
|
|
bl sub_800D158
|
|
b _08092A6A
|
|
.align 2, 0
|
|
_08092964: .4byte gUnknown_81098E0
|
|
_08092968: .4byte gUnknown_2038C68
|
|
_0809296C:
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
adds r3, r0, 0
|
|
ldr r1, _0809298C
|
|
mov r8, r1
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
ldr r1, _08092990
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _080929E2
|
|
ldr r0, _08092994
|
|
b _080929E0
|
|
.align 2, 0
|
|
_0809298C: .4byte gUnknown_81098EC
|
|
_08092990: .4byte gUnknown_810990C
|
|
_08092994: .4byte gUnknown_8109908
|
|
_08092998:
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
adds r3, r0, 0
|
|
ldr r0, _080929B8
|
|
mov r8, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
ldr r1, _080929BC
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _080929E2
|
|
ldr r0, _080929C0
|
|
b _080929E0
|
|
.align 2, 0
|
|
_080929B8: .4byte gUnknown_8109910
|
|
_080929BC: .4byte gUnknown_810990C
|
|
_080929C0: .4byte gUnknown_8109908
|
|
_080929C4:
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
adds r3, r0, 0
|
|
ldr r0, _08092A10
|
|
mov r8, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
ldr r1, _08092A14
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _080929E2
|
|
ldr r0, _08092A18
|
|
_080929E0:
|
|
mov r12, r0
|
|
_080929E2:
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08092A1C
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
add r1, sp, 0x14
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0xC]
|
|
str r3, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
mov r3, r12
|
|
bl sub_800D158
|
|
b _08092A6A
|
|
.align 2, 0
|
|
_08092A10: .4byte gUnknown_81098EC
|
|
_08092A14: .4byte gUnknown_810990C
|
|
_08092A18: .4byte gUnknown_8109928
|
|
_08092A1C: .4byte gUnknown_2038C68
|
|
_08092A20:
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
adds r3, r0, 0
|
|
ldr r0, _08092A78
|
|
mov r8, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
ldr r1, _08092A7C
|
|
mov r12, r1
|
|
cmp r0, 0
|
|
beq _08092A3E
|
|
ldr r0, _08092A80
|
|
mov r12, r0
|
|
_08092A3E:
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08092A84
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
add r1, sp, 0x14
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r5, 0x4]
|
|
str r0, [sp, 0x8]
|
|
ldrb r0, [r4, 0x4]
|
|
str r0, [sp, 0xC]
|
|
str r3, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
mov r1, r8
|
|
adds r2, r6, 0
|
|
mov r3, r12
|
|
bl sub_800D158
|
|
_08092A6A:
|
|
add sp, 0x20
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092A78: .4byte gUnknown_8109910
|
|
_08092A7C: .4byte gUnknown_810990C
|
|
_08092A80: .4byte gUnknown_8109928
|
|
_08092A84: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_80928C0
|
|
|
|
thumb_func_start sub_8092A88
|
|
sub_8092A88:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r2, 0
|
|
movs r0, 0x5
|
|
strb r0, [r4]
|
|
strb r2, [r4, 0x1]
|
|
movs r5, 0
|
|
strh r1, [r4, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8092BF4
|
|
strb r0, [r4, 0x4]
|
|
strb r5, [r4, 0x5]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092A88
|
|
|
|
thumb_func_start sub_8092AA8
|
|
sub_8092AA8:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
cmp r2, 0
|
|
bne _08092AB8
|
|
strb r2, [r5]
|
|
b _08092ACE
|
|
_08092AB8:
|
|
movs r1, 0
|
|
movs r0, 0x5
|
|
strb r0, [r5]
|
|
strb r1, [r5, 0x1]
|
|
movs r4, 0
|
|
strh r2, [r5, 0x2]
|
|
adds r0, r5, 0
|
|
bl sub_8092BF4
|
|
strb r0, [r5, 0x4]
|
|
strb r4, [r5, 0x5]
|
|
_08092ACE:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092AA8
|
|
|
|
thumb_func_start sub_8092AD4
|
|
sub_8092AD4:
|
|
movs r2, 0x5
|
|
strb r2, [r0]
|
|
movs r2, 0
|
|
strh r1, [r0, 0x2]
|
|
strb r2, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_8092AD4
|
|
|
|
thumb_func_start sub_8092AE0
|
|
sub_8092AE0:
|
|
ldrh r2, [r0, 0x2]
|
|
ldr r0, _08092AFC
|
|
ldr r3, [r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
lsls r1, 1
|
|
adds r0, 0x8
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092AFC: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092AE0
|
|
|
|
thumb_func_start sub_8092B00
|
|
sub_8092B00:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092B14
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x6]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092B14: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092B00
|
|
|
|
thumb_func_start sub_8092B18
|
|
sub_8092B18:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
ldr r0, _08092B40
|
|
cmp r1, r0
|
|
beq _08092B48
|
|
cmp r1, 0
|
|
beq _08092B48
|
|
movs r0, 0xD2
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
beq _08092B48
|
|
ldr r0, _08092B44
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
b _08092B4A
|
|
.align 2, 0
|
|
_08092B40: .4byte 0x000001a5
|
|
_08092B44: .4byte gUnknown_2038C6C
|
|
_08092B48:
|
|
ldr r0, _08092B50
|
|
_08092B4A:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08092B50: .4byte gUnknown_810992B
|
|
thumb_func_end sub_8092B18
|
|
|
|
thumb_func_start sub_8092B54
|
|
sub_8092B54:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
ldr r0, _08092B7C
|
|
cmp r1, r0
|
|
beq _08092B84
|
|
cmp r1, 0
|
|
beq _08092B84
|
|
movs r0, 0xD2
|
|
lsls r0, 1
|
|
cmp r2, r0
|
|
beq _08092B84
|
|
ldr r0, _08092B80
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r1
|
|
ldr r0, [r0, 0x4]
|
|
b _08092B86
|
|
.align 2, 0
|
|
_08092B7C: .4byte 0x000001a5
|
|
_08092B80: .4byte gUnknown_2038C6C
|
|
_08092B84:
|
|
ldr r0, _08092B8C
|
|
_08092B86:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08092B8C: .4byte gUnknown_810992B
|
|
thumb_func_end sub_8092B54
|
|
|
|
thumb_func_start sub_8092B90
|
|
sub_8092B90:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092BA4
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xD]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092BA4: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092B90
|
|
|
|
thumb_func_start sub_8092BA8
|
|
sub_8092BA8:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092BBC
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x11]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092BBC: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092BA8
|
|
|
|
thumb_func_start sub_8092BC0
|
|
sub_8092BC0:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092BD4
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
movs r1, 0x4
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092BD4: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092BC0
|
|
|
|
thumb_func_start sub_8092BD8
|
|
sub_8092BD8:
|
|
ldrh r2, [r0, 0x2]
|
|
ldr r0, _08092BF0
|
|
ldr r3, [r0]
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
adds r0, 0xE
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092BF0: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092BD8
|
|
|
|
thumb_func_start sub_8092BF4
|
|
sub_8092BF4:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C08
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C08: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092BF4
|
|
|
|
thumb_func_start sub_8092C0C
|
|
sub_8092C0C:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C20
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x12]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C20: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092C0C
|
|
|
|
thumb_func_start sub_8092C24
|
|
sub_8092C24:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C38
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x13]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C38: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092C24
|
|
|
|
thumb_func_start sub_8092C3C
|
|
sub_8092C3C:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C50
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x17]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C50: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092C3C
|
|
|
|
thumb_func_start sub_8092C54
|
|
sub_8092C54:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C68
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C68: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092C54
|
|
|
|
thumb_func_start sub_8092C6C
|
|
sub_8092C6C:
|
|
ldrh r1, [r0, 0x2]
|
|
ldr r0, _08092C80
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x19]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092C80: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092C6C
|
|
|
|
thumb_func_start sub_8092C84
|
|
sub_8092C84:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, sp
|
|
bl sub_8092A88
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8092C84
|
|
|
|
thumb_func_start sub_8092CA8
|
|
sub_8092CA8:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08092CBC
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldr r0, [r1, 0x20]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092CBC: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092CA8
|
|
|
|
thumb_func_start sub_8092CC0
|
|
sub_8092CC0:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08092CD4
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x14]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092CD4: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092CC0
|
|
|
|
thumb_func_start sub_8092CD8
|
|
sub_8092CD8:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08092CEC
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x15]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092CEC: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092CD8
|
|
|
|
thumb_func_start sub_8092CF0
|
|
sub_8092CF0:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08092D04
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
ldrb r0, [r1, 0x16]
|
|
bx lr
|
|
.align 2, 0
|
|
_08092D04: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8092CF0
|
|
|
|
thumb_func_start sub_8092D08
|
|
sub_8092D08:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrh r1, [r2, 0x2]
|
|
cmp r1, 0xD9
|
|
beq _08092D4C
|
|
movs r0, 0x8E
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08092D4C
|
|
cmp r1, 0x53
|
|
beq _08092D4C
|
|
cmp r1, 0x22
|
|
beq _08092D4C
|
|
cmp r1, 0x54
|
|
beq _08092D4C
|
|
cmp r1, 0xAB
|
|
beq _08092D4C
|
|
ldr r0, _08092D48
|
|
cmp r1, r0
|
|
beq _08092D4C
|
|
cmp r1, 0x1B
|
|
beq _08092D4C
|
|
cmp r1, 0xF1
|
|
beq _08092D4C
|
|
cmp r1, 0x19
|
|
beq _08092D4C
|
|
ldrh r0, [r2, 0x2]
|
|
cmp r0, 0x1A
|
|
beq _08092D4C
|
|
movs r0, 0
|
|
b _08092D4E
|
|
.align 2, 0
|
|
_08092D48: .4byte 0x00000125
|
|
_08092D4C:
|
|
movs r0, 0x1
|
|
_08092D4E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092D08
|
|
|
|
thumb_func_start sub_8092D54
|
|
sub_8092D54:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r0, r1, 0
|
|
ldr r5, _08092D78
|
|
ldr r4, _08092D7C
|
|
bl sub_8092C6C
|
|
lsls r0, 2
|
|
adds r0, r4
|
|
ldr r2, [r0]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_800D158
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08092D78: .4byte gUnknown_810992C
|
|
_08092D7C: .4byte gUnknown_810CC0C
|
|
thumb_func_end sub_8092D54
|
|
|
|
thumb_func_start sub_8092D80
|
|
sub_8092D80:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092D8A:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x4
|
|
beq _08092DB0
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092DB0
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092DAA
|
|
adds r0, r3, 0
|
|
b _08092DB2
|
|
_08092DAA:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08092D8A
|
|
_08092DB0:
|
|
movs r0, 0
|
|
_08092DB2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092D80
|
|
|
|
thumb_func_start sub_8092DB8
|
|
sub_8092DB8:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
movs r6, 0x1
|
|
_08092DC0:
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092DF0
|
|
movs r2, 0x3
|
|
ldrb r1, [r4, 0x18]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092DD6
|
|
movs r1, 0x3
|
|
b _08092DEC
|
|
_08092DD6:
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
blt _08092E12
|
|
lsls r0, r2, 3
|
|
adds r0, r4
|
|
ldrb r1, [r0]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092DD6
|
|
adds r1, r2, 0
|
|
_08092DEC:
|
|
cmp r2, 0
|
|
blt _08092E12
|
|
_08092DF0:
|
|
lsls r0, r1, 3
|
|
adds r0, r4
|
|
ldrb r2, [r0]
|
|
movs r3, 0x1
|
|
adds r0, r3, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E12
|
|
lsrs r0, r2, 1
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _08092E0C
|
|
adds r0, r1, 0
|
|
b _08092E14
|
|
_08092E0C:
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _08092DC0
|
|
_08092E12:
|
|
movs r0, 0
|
|
_08092E14:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092DB8
|
|
|
|
thumb_func_start sub_8092E1C
|
|
sub_8092E1C:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092E26:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x8
|
|
beq _08092E4C
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E4C
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092E46
|
|
adds r0, r3, 0
|
|
b _08092E4E
|
|
_08092E46:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E26
|
|
_08092E4C:
|
|
movs r0, 0
|
|
_08092E4E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E1C
|
|
|
|
thumb_func_start sub_8092E54
|
|
sub_8092E54:
|
|
push {r4,r5,lr}
|
|
adds r3, r1, 0
|
|
movs r5, 0
|
|
lsls r1, r3, 3
|
|
adds r1, r0
|
|
_08092E5E:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x8
|
|
beq _08092E84
|
|
ldrb r2, [r1]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092E84
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092E7E
|
|
adds r0, r3, 0
|
|
b _08092E86
|
|
_08092E7E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E5E
|
|
_08092E84:
|
|
movs r0, 0
|
|
_08092E86:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E54
|
|
|
|
thumb_func_start sub_8092E8C
|
|
sub_8092E8C:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08092E96:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092EC6
|
|
movs r3, 0x7
|
|
movs r4, 0x1
|
|
adds r2, r6, 0
|
|
adds r2, 0x38
|
|
_08092EA6:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092EBC
|
|
lsrs r0, r1, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092EBC
|
|
adds r0, r3, 0
|
|
b _08092EE6
|
|
_08092EBC:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _08092EA6
|
|
b _08092EE4
|
|
_08092EC6:
|
|
ldrb r2, [r3]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092EE4
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092EDE
|
|
adds r0, r1, 0
|
|
b _08092EE6
|
|
_08092EDE:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092E96
|
|
_08092EE4:
|
|
movs r0, 0
|
|
_08092EE6:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092E8C
|
|
|
|
thumb_func_start sub_8092EEC
|
|
sub_8092EEC:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
movs r5, 0
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08092EF6:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _08092F26
|
|
movs r3, 0x7
|
|
movs r4, 0x1
|
|
adds r2, r6, 0
|
|
adds r2, 0x38
|
|
_08092F06:
|
|
ldrb r1, [r2]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08092F1C
|
|
lsrs r0, r1, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F1C
|
|
adds r0, r3, 0
|
|
b _08092F46
|
|
_08092F1C:
|
|
subs r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bgt _08092F06
|
|
b _08092F44
|
|
_08092F26:
|
|
ldrb r2, [r3]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092F44
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F3E
|
|
adds r0, r1, 0
|
|
b _08092F46
|
|
_08092F3E:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08092EF6
|
|
_08092F44:
|
|
movs r0, 0
|
|
_08092F46:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092EEC
|
|
|
|
thumb_func_start sub_8092F4C
|
|
sub_8092F4C:
|
|
push {r4,lr}
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
ble _08092F78
|
|
movs r4, 0x1
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r2
|
|
_08092F5A:
|
|
ldrb r2, [r3]
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092F78
|
|
lsrs r0, r2, 1
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
bne _08092F70
|
|
adds r0, r1, 0
|
|
b _08092F7A
|
|
_08092F70:
|
|
subs r3, 0x8
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bgt _08092F5A
|
|
_08092F78:
|
|
movs r0, 0
|
|
_08092F7A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092F4C
|
|
|
|
thumb_func_start sub_8092F80
|
|
sub_8092F80:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x80
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
mov r0, sp
|
|
bl sub_8093744
|
|
adds r3, r0, 0
|
|
cmp r3, 0x2
|
|
bhi _08092FCC
|
|
lsls r1, r3, 5
|
|
adds r0, r3, 0x1
|
|
lsls r0, 5
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x3
|
|
_08092FBA:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08092FBA
|
|
_08092FCC:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_08092FDC:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08092FF0
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _08092FF8
|
|
_08092FF0:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08092FDC
|
|
_08092FF8:
|
|
mov r0, r8
|
|
add sp, 0x80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8092F80
|
|
|
|
thumb_func_start sub_8093008
|
|
sub_8093008:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0809307C
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
mov r0, sp
|
|
bl sub_80938F4
|
|
adds r3, r0, 0
|
|
cmp r3, 0x6
|
|
bhi _08093056
|
|
lsls r1, r3, 6
|
|
adds r0, r3, 0x1
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_08093044:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08093044
|
|
_08093056:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_08093066:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08093080
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _08093088
|
|
.align 2, 0
|
|
_0809307C: .4byte 0xfffffe00
|
|
_08093080:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093066
|
|
_08093088:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093008
|
|
|
|
thumb_func_start sub_809309C
|
|
sub_809309C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _08093110
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
mov r0, sp
|
|
bl sub_8093934
|
|
adds r3, r0, 0
|
|
cmp r3, 0x6
|
|
bhi _080930EA
|
|
lsls r1, r3, 6
|
|
adds r0, r3, 0x1
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_080930D8:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080930D8
|
|
_080930EA:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r3, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r1, r7, 0
|
|
_080930FA:
|
|
ldrb r2, [r1]
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08093114
|
|
adds r0, r4, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
mov r8, r3
|
|
b _0809311C
|
|
.align 2, 0
|
|
_08093110: .4byte 0xfffffe00
|
|
_08093114:
|
|
adds r1, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _080930FA
|
|
_0809311C:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809309C
|
|
|
|
thumb_func_start sub_8093130
|
|
sub_8093130:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x80
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
mov r0, sp
|
|
bl sub_8093744
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x2
|
|
bhi _0809317C
|
|
lsls r1, 5
|
|
lsls r0, 5
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x3
|
|
_0809316A:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _0809316A
|
|
_0809317C:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_0809318C:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080931A0
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _080931A8
|
|
_080931A0:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x3
|
|
ble _0809318C
|
|
_080931A8:
|
|
mov r0, r8
|
|
add sp, 0x80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093130
|
|
|
|
thumb_func_start sub_80931B8
|
|
sub_80931B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _0809322C
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
mov r0, sp
|
|
bl sub_80938F4
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x6
|
|
bhi _08093206
|
|
lsls r1, 6
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_080931F4:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _080931F4
|
|
_08093206:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_08093216:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _08093230
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _08093238
|
|
.align 2, 0
|
|
_0809322C: .4byte 0xfffffe00
|
|
_08093230:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x7
|
|
ble _08093216
|
|
_08093238:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80931B8
|
|
|
|
thumb_func_start sub_809324C
|
|
sub_809324C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _080932C0
|
|
add sp, r4
|
|
adds r7, r0, 0
|
|
mov r8, r1
|
|
lsls r0, r1, 3
|
|
adds r0, r7, r0
|
|
ldrb r2, [r0]
|
|
movs r1, 0x80
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
mov r0, sp
|
|
bl sub_8093934
|
|
adds r1, r0, 0
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x6
|
|
bhi _0809329A
|
|
lsls r1, 6
|
|
lsls r0, 6
|
|
mov r2, sp
|
|
adds r5, r0, r2
|
|
adds r4, r1, r2
|
|
movs r6, 0x7
|
|
_08093288:
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
stm r4!, {r0,r1}
|
|
stm r5!, {r2,r3}
|
|
subs r6, 0x1
|
|
cmp r6, 0
|
|
bge _08093288
|
|
_0809329A:
|
|
adds r0, r7, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r1, 0
|
|
movs r5, 0x80
|
|
movs r4, 0x7F
|
|
adds r2, r7, 0
|
|
_080932AA:
|
|
ldrb r3, [r2]
|
|
adds r0, r5, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _080932C4
|
|
adds r0, r4, 0
|
|
ands r0, r3
|
|
strb r0, [r2]
|
|
mov r8, r1
|
|
b _080932CC
|
|
.align 2, 0
|
|
_080932C0: .4byte 0xfffffe00
|
|
_080932C4:
|
|
adds r2, 0x8
|
|
adds r1, 0x1
|
|
cmp r1, 0x7
|
|
ble _080932AA
|
|
_080932CC:
|
|
mov r0, r8
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809324C
|
|
|
|
thumb_func_start sub_80932E0
|
|
sub_80932E0:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080932F4
|
|
movs r0, 0
|
|
b _080932F6
|
|
_080932F4:
|
|
movs r0, 0x1
|
|
_080932F6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80932E0
|
|
|
|
thumb_func_start sub_80932FC
|
|
sub_80932FC:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093310
|
|
movs r0, 0
|
|
b _08093312
|
|
_08093310:
|
|
movs r0, 0x1
|
|
_08093312:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80932FC
|
|
|
|
thumb_func_start sub_8093318
|
|
sub_8093318:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093400
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093318
|
|
|
|
thumb_func_start sub_809333C
|
|
sub_809333C:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093468
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809333C
|
|
|
|
thumb_func_start sub_8093360
|
|
sub_8093360:
|
|
push {r4,lr}
|
|
sub sp, 0x40
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
movs r2, 0x40
|
|
bl MemoryCopy8
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80933D8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0x40
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093360
|
|
|
|
thumb_func_start sub_8093384
|
|
sub_8093384:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1
|
|
ldrb r1, [r0]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093398
|
|
movs r0, 0x1
|
|
b _0809339A
|
|
_08093398:
|
|
movs r0, 0
|
|
_0809339A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093384
|
|
|
|
thumb_func_start sub_80933A0
|
|
sub_80933A0:
|
|
push {r4-r6,lr}
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x2
|
|
movs r3, 0x7
|
|
_080933AA:
|
|
ldrb r2, [r1]
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080933BE
|
|
adds r0, r5, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _080933BE
|
|
adds r4, 0x1
|
|
_080933BE:
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080933AA
|
|
cmp r4, 0x1
|
|
bgt _080933CE
|
|
movs r0, 0
|
|
b _080933D0
|
|
_080933CE:
|
|
movs r0, 0x1
|
|
_080933D0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80933A0
|
|
|
|
thumb_func_start sub_80933D8
|
|
sub_80933D8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
bl sub_8093400
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080933F6
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8093468
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080933F8
|
|
_080933F6:
|
|
movs r0, 0x1
|
|
_080933F8:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80933D8
|
|
|
|
thumb_func_start sub_8093400
|
|
sub_8093400:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r7, r1, 0
|
|
lsls r0, r4, 3
|
|
adds r0, r7, r0
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_809422C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08093428
|
|
b _08093460
|
|
_08093418:
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strb r0, [r6]
|
|
adds r0, r7, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
b _08093462
|
|
_08093428:
|
|
adds r5, r4, 0x1
|
|
cmp r5, 0x7
|
|
bgt _08093460
|
|
lsls r0, r5, 3
|
|
adds r4, r0, r7
|
|
adds r6, r4, 0
|
|
_08093434:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093460
|
|
ldrh r0, [r4, 0x2]
|
|
bl sub_809422C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08093460
|
|
ldrb r1, [r4]
|
|
movs r2, 0x2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093418
|
|
adds r4, 0x8
|
|
adds r6, 0x8
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _08093434
|
|
_08093460:
|
|
movs r0, 0
|
|
_08093462:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093400
|
|
|
|
thumb_func_start sub_8093468
|
|
sub_8093468:
|
|
push {r4-r7,lr}
|
|
adds r6, r1, 0
|
|
movs r5, 0
|
|
adds r1, r0, 0x1
|
|
movs r4, 0
|
|
cmp r1, 0x7
|
|
bgt _080934A0
|
|
movs r0, 0x2
|
|
mov r12, r0
|
|
movs r7, 0xFD
|
|
lsls r0, r1, 3
|
|
adds r3, r0, r6
|
|
_08093480:
|
|
ldrb r2, [r3]
|
|
mov r0, r12
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _080934A0
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
strb r0, [r3]
|
|
movs r5, 0x1
|
|
adds r3, 0x8
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
bgt _080934A0
|
|
cmp r1, 0x7
|
|
ble _08093480
|
|
_080934A0:
|
|
adds r0, r6, 0
|
|
bl sub_809371C
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093468
|
|
|
|
thumb_func_start sub_80934B0
|
|
sub_80934B0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r0, r2, 0x1
|
|
cmp r0, 0x7
|
|
bgt _080934D2
|
|
lsls r0, r2, 3
|
|
adds r0, 0x8
|
|
adds r0, r1, r0
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080934D2
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080934D6
|
|
_080934D2:
|
|
movs r0, 0
|
|
b _080934D8
|
|
_080934D6:
|
|
movs r0, 0x1
|
|
_080934D8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80934B0
|
|
|
|
thumb_func_start sub_80934DC
|
|
sub_80934DC:
|
|
push {r4-r7,lr}
|
|
adds r5, r1, 0
|
|
lsls r0, 3
|
|
adds r4, r5, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080934F4
|
|
movs r0, 0xF7
|
|
ands r0, r1
|
|
b _0809351A
|
|
_080934F4:
|
|
movs r7, 0x1
|
|
movs r6, 0xF7
|
|
adds r1, r5, 0
|
|
movs r3, 0x3
|
|
_080934FC:
|
|
ldrb r2, [r1]
|
|
adds r0, r7, 0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809350C
|
|
adds r0, r6, 0
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
_0809350C:
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080934FC
|
|
ldrb r1, [r4]
|
|
movs r0, 0x8
|
|
orrs r0, r1
|
|
_0809351A:
|
|
strb r0, [r4]
|
|
adds r0, r5, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80934DC
|
|
|
|
thumb_func_start sub_809352C
|
|
sub_809352C:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1, r0
|
|
ldrb r3, [r0]
|
|
movs r2, 0xF7
|
|
ands r2, r3
|
|
strb r2, [r0]
|
|
adds r0, r1, 0
|
|
bl sub_809371C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809352C
|
|
|
|
thumb_func_start sub_8093544
|
|
sub_8093544:
|
|
push {lr}
|
|
lsls r0, 3
|
|
adds r0, r1, r0
|
|
ldrb r2, [r0]
|
|
movs r3, 0x4
|
|
eors r2, r3
|
|
strb r2, [r0]
|
|
adds r0, r1, 0
|
|
bl sub_809371C
|
|
movs r0, 0x1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093544
|
|
|
|
thumb_func_start sub_8093560
|
|
sub_8093560:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
movs r5, 0x1
|
|
lsls r0, r4, 3
|
|
adds r0, r6, r0
|
|
ldrh r0, [r0, 0x2]
|
|
strh r0, [r2]
|
|
movs r1, 0
|
|
adds r0, r2, 0x2
|
|
movs r3, 0x2
|
|
_08093576:
|
|
strh r1, [r0]
|
|
adds r0, 0x2
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093576
|
|
adds r4, 0x1
|
|
adds r2, 0x2
|
|
cmp r4, 0x7
|
|
bgt _080935B0
|
|
cmp r5, 0x3
|
|
bgt _080935B0
|
|
movs r7, 0x2
|
|
lsls r0, r4, 3
|
|
adds r3, r0, r6
|
|
_08093592:
|
|
ldrb r1, [r3]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080935B0
|
|
ldrh r0, [r3, 0x2]
|
|
strh r0, [r2]
|
|
adds r2, 0x2
|
|
adds r5, 0x1
|
|
adds r3, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
bgt _080935B0
|
|
cmp r5, 0x3
|
|
ble _08093592
|
|
_080935B0:
|
|
adds r0, r5, 0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093560
|
|
|
|
thumb_func_start sub_80935B8
|
|
sub_80935B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r5, r0, 0
|
|
movs r0, 0x63
|
|
mov r12, r0
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
blt _08093606
|
|
lsls r0, r4, 3
|
|
adds r2, r5, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
movs r7, 0x1
|
|
movs r3, 0x2
|
|
_080935EC:
|
|
subs r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
blt _08093606
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093606
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080935EC
|
|
_08093606:
|
|
adds r2, r4, 0x1
|
|
mov r9, r2
|
|
cmp r2, 0x3
|
|
bgt _08093642
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
movs r6, 0x1
|
|
movs r7, 0x2
|
|
_08093628:
|
|
adds r3, 0x8
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08093642
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093642
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093628
|
|
_08093642:
|
|
cmp r6, 0
|
|
bne _0809364A
|
|
movs r0, 0x63
|
|
b _080936CC
|
|
_0809364A:
|
|
movs r6, 0
|
|
b _08093668
|
|
_0809364E:
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r12, r0
|
|
ble _08093656
|
|
mov r12, r0
|
|
_08093656:
|
|
cmp r0, 0
|
|
bne _0809365C
|
|
movs r6, 0x1
|
|
_0809365C:
|
|
ldrb r1, [r3, 0x1]
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093668
|
|
movs r6, 0x1
|
|
_08093668:
|
|
subs r2, 0x1
|
|
cmp r2, r4
|
|
blt _0809367C
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0809364E
|
|
_0809367C:
|
|
cmp r6, 0
|
|
beq _080936C6
|
|
mov r2, r9
|
|
cmp r2, 0x3
|
|
bgt _080936C0
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080936C0
|
|
movs r6, 0x2
|
|
movs r4, 0xFD
|
|
_08093698:
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080936C0
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080936C0
|
|
lsls r0, r2, 3
|
|
adds r3, r5, r0
|
|
ldrb r1, [r3]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093698
|
|
_080936C0:
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
bne _080936CA
|
|
_080936C6:
|
|
mov r0, r12
|
|
b _080936CC
|
|
_080936CA:
|
|
movs r0, 0
|
|
_080936CC:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80935B8
|
|
|
|
thumb_func_start sub_80936D8
|
|
sub_80936D8:
|
|
push {r4,lr}
|
|
sub sp, 0x80
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_8093784
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_80937E0
|
|
add sp, 0x80
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80936D8
|
|
|
|
thumb_func_start sub_80936F4
|
|
sub_80936F4:
|
|
push {r4,lr}
|
|
ldr r4, _08093718
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_8093974
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093A2C
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093718: .4byte 0xfffffe00
|
|
thumb_func_end sub_80936F4
|
|
|
|
thumb_func_start sub_809371C
|
|
sub_809371C:
|
|
push {r4,lr}
|
|
ldr r4, _08093740
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
mov r1, sp
|
|
bl sub_80939D0
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
bl sub_8093B40
|
|
movs r3, 0x80
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093740: .4byte 0xfffffe00
|
|
thumb_func_end sub_809371C
|
|
|
|
thumb_func_start sub_8093744
|
|
sub_8093744:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_0809374E:
|
|
movs r3, 0
|
|
lsls r0, r4, 5
|
|
adds r2, r0, r7
|
|
_08093754:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809376A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809376A
|
|
adds r0, r4, 0
|
|
b _0809377C
|
|
_0809376A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08093754
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0809374E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809377C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093744
|
|
|
|
thumb_func_start sub_8093784
|
|
sub_8093784:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_0809378C:
|
|
lsls r0, r2, 5
|
|
adds r2, 0x1
|
|
movs r3, 0x3
|
|
adds r0, r1
|
|
adds r0, 0x18
|
|
_08093796:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093796
|
|
cmp r2, 0x3
|
|
ble _0809378C
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x20
|
|
movs r7, 0x2
|
|
_080937AE:
|
|
cmp r5, 0
|
|
beq _080937BC
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080937C0
|
|
_080937BC:
|
|
adds r4, 0x20
|
|
movs r3, 0
|
|
_080937C0:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x3
|
|
ble _080937AE
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093784
|
|
|
|
thumb_func_start sub_80937E0
|
|
sub_80937E0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x10
|
|
str r0, [sp, 0x8]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x4
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_080937FE:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x4
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 5
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x3
|
|
_0809381E:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809383E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093832
|
|
strb r3, [r7]
|
|
_08093832:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809383E
|
|
strb r3, [r5]
|
|
_0809383E:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0809381E
|
|
cmp r6, 0x3
|
|
ble _080937FE
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0xC]
|
|
_08093852:
|
|
movs r4, 0
|
|
lsls r0, r6, 5
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x8]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093866:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080938D6
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093884
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _0809388A
|
|
_08093884:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_0809388A:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080938B0
|
|
cmp r4, 0
|
|
bne _080938B0
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080938B0:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080938C4
|
|
cmp r4, 0
|
|
bne _080938C4
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080938C4:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0xC]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0xC]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x4
|
|
beq _080938E4
|
|
_080938D6:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08093866
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08093852
|
|
_080938E4:
|
|
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_80937E0
|
|
|
|
thumb_func_start sub_80938F4
|
|
sub_80938F4:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_080938FE:
|
|
movs r3, 0
|
|
lsls r0, r4, 6
|
|
adds r2, r0, r7
|
|
_08093904:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809391A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809391A
|
|
adds r0, r4, 0
|
|
b _0809392C
|
|
_0809391A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093904
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080938FE
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809392C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80938F4
|
|
|
|
thumb_func_start sub_8093934
|
|
sub_8093934:
|
|
push {r4-r7,lr}
|
|
adds r7, r0, 0
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
movs r5, 0x80
|
|
_0809393E:
|
|
movs r3, 0
|
|
lsls r0, r4, 6
|
|
adds r2, r0, r7
|
|
_08093944:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809395A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809395A
|
|
adds r0, r4, 0
|
|
b _0809396C
|
|
_0809395A:
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08093944
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0809393E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809396C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093934
|
|
|
|
thumb_func_start sub_8093974
|
|
sub_8093974:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_0809397C:
|
|
lsls r0, r2, 6
|
|
adds r2, 0x1
|
|
movs r3, 0x7
|
|
adds r0, r1
|
|
adds r0, 0x38
|
|
_08093986:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093986
|
|
cmp r2, 0x7
|
|
ble _0809397C
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x40
|
|
movs r7, 0x2
|
|
_0809399E:
|
|
cmp r5, 0
|
|
beq _080939AC
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080939B0
|
|
_080939AC:
|
|
adds r4, 0x40
|
|
movs r3, 0
|
|
_080939B0:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _0809399E
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093974
|
|
|
|
thumb_func_start sub_80939D0
|
|
sub_80939D0:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r2, 0
|
|
movs r4, 0
|
|
_080939D8:
|
|
lsls r0, r2, 6
|
|
adds r2, 0x1
|
|
movs r3, 0x7
|
|
adds r0, r1
|
|
adds r0, 0x38
|
|
_080939E2:
|
|
strb r4, [r0]
|
|
subs r0, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _080939E2
|
|
cmp r2, 0x7
|
|
ble _080939D8
|
|
movs r3, 0
|
|
movs r5, 0
|
|
adds r4, r1, 0
|
|
subs r4, 0x40
|
|
movs r7, 0x2
|
|
_080939FA:
|
|
cmp r5, 0
|
|
beq _08093A08
|
|
ldrb r1, [r6]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093A0C
|
|
_08093A08:
|
|
adds r4, 0x40
|
|
movs r3, 0
|
|
_08093A0C:
|
|
lsls r2, r3, 3
|
|
adds r2, r4
|
|
ldm r6!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r3, 0x1
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
ble _080939FA
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80939D0
|
|
|
|
thumb_func_start sub_8093A2C
|
|
sub_8093A2C:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp, 0x10]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x8
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_08093A4A:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x8
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 6
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x7
|
|
_08093A6A:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A8A
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A7E
|
|
strb r3, [r7]
|
|
_08093A7E:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093A8A
|
|
strb r3, [r5]
|
|
_08093A8A:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08093A6A
|
|
cmp r6, 0x7
|
|
ble _08093A4A
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0x14]
|
|
_08093A9E:
|
|
movs r4, 0
|
|
lsls r0, r6, 6
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0x10]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093AB2:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B22
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093AD0
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _08093AD6
|
|
_08093AD0:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_08093AD6:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08093AFC
|
|
cmp r4, 0
|
|
bne _08093AFC
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093AFC:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08093B10
|
|
cmp r4, 0
|
|
bne _08093B10
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093B10:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0x14]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0x14]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x8
|
|
beq _08093B30
|
|
_08093B22:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093AB2
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08093A9E
|
|
_08093B30:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093A2C
|
|
|
|
thumb_func_start sub_8093B40
|
|
sub_8093B40:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
str r0, [sp, 0x10]
|
|
mov r9, r1
|
|
movs r0, 0
|
|
mov r8, r0
|
|
movs r6, 0
|
|
add r1, sp, 0x8
|
|
mov r10, r1
|
|
mov r12, r6
|
|
movs r3, 0x1
|
|
_08093B5E:
|
|
mov r2, sp
|
|
adds r0, r2, r6
|
|
mov r7, r12
|
|
strb r7, [r0]
|
|
mov r1, sp
|
|
adds r1, r6
|
|
adds r1, 0x8
|
|
mov r2, r12
|
|
strb r2, [r1]
|
|
adds r7, r0, 0
|
|
lsls r0, r6, 6
|
|
adds r6, 0x1
|
|
adds r5, r1, 0
|
|
mov r1, r9
|
|
adds r2, r0, r1
|
|
movs r4, 0x7
|
|
_08093B7E:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B9E
|
|
movs r0, 0x8
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B92
|
|
strb r3, [r7]
|
|
_08093B92:
|
|
ldrb r1, [r2]
|
|
movs r0, 0x4
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093B9E
|
|
strb r3, [r5]
|
|
_08093B9E:
|
|
adds r2, 0x8
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08093B7E
|
|
cmp r6, 0x7
|
|
ble _08093B5E
|
|
movs r6, 0
|
|
mov r2, r8
|
|
lsls r2, 3
|
|
str r2, [sp, 0x14]
|
|
_08093BB2:
|
|
movs r4, 0
|
|
lsls r0, r6, 6
|
|
mov r7, r9
|
|
adds r5, r0, r7
|
|
ldr r0, [sp, 0x14]
|
|
ldr r1, [sp, 0x10]
|
|
adds r2, r0, r1
|
|
mov r7, r10
|
|
adds r7, r6
|
|
mov r12, r7
|
|
_08093BC6:
|
|
ldrb r1, [r5]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093C36
|
|
ldr r0, [r5]
|
|
ldr r1, [r5, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
cmp r4, 0
|
|
bne _08093BE4
|
|
ldrb r1, [r2]
|
|
movs r0, 0xFD
|
|
ands r0, r1
|
|
b _08093BEA
|
|
_08093BE4:
|
|
ldrb r0, [r2]
|
|
movs r1, 0x2
|
|
orrs r0, r1
|
|
_08093BEA:
|
|
strb r0, [r2]
|
|
ldrb r0, [r2]
|
|
movs r3, 0xF7
|
|
ands r3, r0
|
|
movs r1, 0
|
|
movs r0, 0xFB
|
|
ands r3, r0
|
|
strb r3, [r2]
|
|
mov r7, sp
|
|
adds r0, r7, r6
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08093C10
|
|
cmp r4, 0
|
|
bne _08093C10
|
|
movs r1, 0x8
|
|
adds r0, r3, 0
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093C10:
|
|
mov r1, r12
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08093C24
|
|
cmp r4, 0
|
|
bne _08093C24
|
|
ldrb r0, [r2]
|
|
movs r1, 0x4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08093C24:
|
|
adds r2, 0x8
|
|
ldr r7, [sp, 0x14]
|
|
adds r7, 0x8
|
|
str r7, [sp, 0x14]
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x8
|
|
beq _08093C44
|
|
_08093C36:
|
|
adds r5, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093BC6
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08093BB2
|
|
_08093C44:
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093B40
|
|
|
|
thumb_func_start sub_8093C54
|
|
sub_8093C54:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x40
|
|
adds r6, r0, 0
|
|
lsls r0, r1, 3
|
|
adds r0, r6
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
adds r3, r1, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093CA6
|
|
lsls r0, r3, 3
|
|
adds r4, r6, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
mov r12, r2
|
|
movs r7, 0x1
|
|
adds r2, r4, 0
|
|
movs r5, 0x2
|
|
_08093C86:
|
|
mov r0, r12
|
|
strb r0, [r4]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093CA6
|
|
adds r4, r2, 0
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CA6
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093C86
|
|
_08093CA6:
|
|
movs r4, 0
|
|
movs r7, 0x1
|
|
adds r2, r6, 0
|
|
mov r5, sp
|
|
movs r3, 0x7
|
|
_08093CB0:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093CC2
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
stm r5!, {r0,r1}
|
|
adds r4, 0x1
|
|
_08093CC2:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093CB0
|
|
cmp r4, 0x7
|
|
bgt _08093CDE
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
add r0, sp
|
|
_08093CD4:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093CD4
|
|
_08093CDE:
|
|
mov r4, sp
|
|
adds r2, r6, 0
|
|
movs r3, 0x7
|
|
_08093CE4:
|
|
ldm r4!, {r0,r1}
|
|
stm r2!, {r0,r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093CE4
|
|
add sp, 0x40
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093C54
|
|
|
|
thumb_func_start sub_8093CF8
|
|
sub_8093CF8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x40
|
|
adds r6, r0, 0
|
|
lsls r0, r1, 3
|
|
adds r0, r6
|
|
movs r2, 0
|
|
strb r2, [r0]
|
|
adds r3, r1, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093D4A
|
|
lsls r0, r3, 3
|
|
adds r4, r6, r0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
mov r12, r2
|
|
movs r7, 0x1
|
|
adds r2, r4, 0
|
|
movs r5, 0x2
|
|
_08093D2A:
|
|
mov r0, r12
|
|
strb r0, [r4]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
bgt _08093D4A
|
|
adds r4, r2, 0
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D4A
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093D2A
|
|
_08093D4A:
|
|
movs r4, 0
|
|
movs r7, 0x1
|
|
adds r2, r6, 0
|
|
mov r5, sp
|
|
movs r3, 0x7
|
|
_08093D54:
|
|
ldrb r1, [r2]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093D66
|
|
ldr r0, [r2]
|
|
ldr r1, [r2, 0x4]
|
|
stm r5!, {r0,r1}
|
|
adds r4, 0x1
|
|
_08093D66:
|
|
adds r2, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093D54
|
|
cmp r4, 0x7
|
|
bgt _08093D82
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
add r0, sp
|
|
_08093D78:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08093D78
|
|
_08093D82:
|
|
mov r4, sp
|
|
adds r2, r6, 0
|
|
movs r3, 0x7
|
|
_08093D88:
|
|
ldm r4!, {r0,r1}
|
|
stm r2!, {r0,r1}
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093D88
|
|
add sp, 0x40
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093CF8
|
|
|
|
thumb_func_start sub_8093D9C
|
|
sub_8093D9C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, sp
|
|
bl sub_8092A88
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8093DE8
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093D9C
|
|
|
|
thumb_func_start sub_8093DC4
|
|
sub_8093DC4:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r6, r3, 0
|
|
mov r0, sp
|
|
bl sub_8093F10
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_8093DE8
|
|
add sp, 0x8
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8093DC4
|
|
|
|
thumb_func_start sub_8093DE8
|
|
sub_8093DE8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r4, _08093E80
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
mov r8, r3
|
|
adds r0, r5, 0
|
|
bl sub_80073B8
|
|
ldr r0, _08093E84
|
|
adds r1, r6, 0
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
lsls r4, 3
|
|
adds r4, 0x10
|
|
ldr r2, _08093E88
|
|
movs r7, 0
|
|
str r7, [sp]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
movs r3, 0x13
|
|
ldrh r1, [r6, 0x2]
|
|
ldr r4, _08093E8C
|
|
ldr r2, [r4]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r2, [r0, 0x1C]
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x2A
|
|
bne _08093E3A
|
|
movs r3, 0x10
|
|
adds r2, 0x1
|
|
_08093E3A:
|
|
str r7, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r3, 0
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8093E90
|
|
adds r0, r5, 0
|
|
bl sub_80073E0
|
|
ldrh r1, [r6, 0x2]
|
|
ldr r2, [r4]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldr r1, [r0, 0x1C]
|
|
add r0, sp, 0x4
|
|
bl strcpy
|
|
add r0, sp, 0x4
|
|
mov r1, r8
|
|
bl sub_8097DF0
|
|
movs r3, 0xC9
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08093E80: .4byte 0xfffffcdc
|
|
_08093E84: .4byte gUnknown_202DF98
|
|
_08093E88: .4byte gUnknown_8109930
|
|
_08093E8C: .4byte gUnknown_2038C68
|
|
thumb_func_end sub_8093DE8
|
|
|
|
thumb_func_start sub_8093E90
|
|
sub_8093E90:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0x7
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r1, 0x4
|
|
movs r2, 0x48
|
|
movs r3, 0xC8
|
|
bl sub_80078A4
|
|
ldr r0, _08093F00
|
|
adds r1, r6, 0
|
|
bl sub_8092D54
|
|
ldr r0, _08093F04
|
|
ldr r2, [r0]
|
|
movs r4, 0
|
|
str r4, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x4A
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
ldr r0, _08093F08
|
|
ldr r2, [r0]
|
|
str r4, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x56
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
adds r0, r6, 0
|
|
bl sub_8092B00
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092334
|
|
adds r2, r0, 0
|
|
str r4, [sp]
|
|
movs r0, 0x40
|
|
movs r1, 0x56
|
|
adds r3, r5, 0
|
|
bl sub_8014FF0
|
|
adds r0, r6, 0
|
|
bl sub_8092BC0
|
|
ldr r1, _08093F0C
|
|
str r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08093F00: .4byte gUnknown_202DF98
|
|
_08093F04: .4byte gUnknown_810CF00
|
|
_08093F08: .4byte gUnknown_810CF0C
|
|
_08093F0C: .4byte gUnknown_202DE30
|
|
thumb_func_end sub_8093E90
|
|
|
|
thumb_func_start sub_8093F10
|
|
sub_8093F10:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093F48
|
|
movs r0, 0
|
|
strb r1, [r3]
|
|
strb r0, [r3, 0x1]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08093F44
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r3, 0x5]
|
|
b _08093F4A
|
|
.align 2, 0
|
|
_08093F44: .4byte gUnknown_2038C68
|
|
_08093F48:
|
|
strb r0, [r3]
|
|
_08093F4A:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093F10
|
|
|
|
thumb_func_start sub_8093F50
|
|
sub_8093F50:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
movs r7, 0
|
|
adds r3, r6, 0
|
|
adds r4, r1, 0
|
|
movs r5, 0x3
|
|
_08093F5C:
|
|
ldrb r1, [r4]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08093F8C
|
|
strb r1, [r3]
|
|
strb r7, [r3, 0x1]
|
|
ldrh r0, [r4, 0x2]
|
|
strh r0, [r3, 0x2]
|
|
ldrh r1, [r4, 0x2]
|
|
ldr r0, _08093F88
|
|
ldr r2, [r0]
|
|
lsls r0, r1, 3
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r3, 0x4]
|
|
ldrb r0, [r4, 0x4]
|
|
strb r0, [r3, 0x5]
|
|
b _08093F8E
|
|
.align 2, 0
|
|
_08093F88: .4byte gUnknown_2038C68
|
|
_08093F8C:
|
|
strb r0, [r3]
|
|
_08093F8E:
|
|
adds r3, 0x8
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08093F5C
|
|
adds r1, r6, 0
|
|
adds r1, 0x20
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093F50
|
|
|
|
thumb_func_start sub_8093FA8
|
|
sub_8093FA8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
movs r3, 0x3
|
|
_08093FAE:
|
|
ldrb r0, [r1]
|
|
strb r0, [r2]
|
|
ldrh r0, [r1, 0x2]
|
|
strh r0, [r2, 0x2]
|
|
ldrb r0, [r1, 0x5]
|
|
strb r0, [r2, 0x4]
|
|
adds r2, 0x8
|
|
adds r1, 0x8
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08093FAE
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093FA8
|
|
|
|
thumb_func_start sub_8093FC8
|
|
sub_8093FC8:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r2, r1, 0
|
|
movs r3, 0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094002
|
|
movs r7, 0xFB
|
|
movs r6, 0x1
|
|
adds r4, r2, 0
|
|
adds r2, r5, 0
|
|
_08093FE2:
|
|
ldm r4!, {r0,r1}
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldrb r1, [r2, 0x1]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
adds r2, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
bgt _08094002
|
|
ldrb r1, [r4]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08093FE2
|
|
_08094002:
|
|
cmp r3, 0x7
|
|
bgt _08094016
|
|
movs r1, 0
|
|
lsls r0, r3, 3
|
|
adds r0, r5
|
|
_0809400C:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _0809400C
|
|
_08094016:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8093FC8
|
|
|
|
thumb_func_start sub_809401C
|
|
sub_809401C:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
movs r2, 0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094046
|
|
movs r6, 0x1
|
|
adds r4, r5, 0
|
|
_08094032:
|
|
ldm r3!, {r0,r1}
|
|
stm r4!, {r0,r1}
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _08094046
|
|
ldrb r1, [r3]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08094032
|
|
_08094046:
|
|
cmp r2, 0x7
|
|
bgt _0809405A
|
|
movs r1, 0
|
|
lsls r0, r2, 3
|
|
adds r0, r5
|
|
_08094050:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _08094050
|
|
_0809405A:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809401C
|
|
|
|
thumb_func_start sub_8094060
|
|
sub_8094060:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
movs r4, 0
|
|
movs r5, 0
|
|
adds r3, r6, 0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094084
|
|
_08094076:
|
|
lsls r2, r4, 3
|
|
adds r2, r7, r2
|
|
ldr r0, [r3]
|
|
ldr r1, [r3, 0x4]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
adds r4, 0x1
|
|
_08094084:
|
|
adds r5, 0x1
|
|
cmp r5, 0x7
|
|
bgt _0809409C
|
|
lsls r0, r5, 3
|
|
adds r3, r6, r0
|
|
ldrb r1, [r3]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094084
|
|
cmp r4, 0x3
|
|
ble _08094076
|
|
_0809409C:
|
|
cmp r4, 0x3
|
|
bgt _080940B0
|
|
movs r1, 0
|
|
lsls r0, r4, 3
|
|
adds r0, r7
|
|
_080940A6:
|
|
strb r1, [r0]
|
|
adds r0, 0x8
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _080940A6
|
|
_080940B0:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094060
|
|
|
|
thumb_func_start sub_80940B8
|
|
sub_80940B8:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r5, 0x4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80940B8
|
|
|
|
thumb_func_start sub_80940E0
|
|
sub_80940E0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r5, 0x4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80940E0
|
|
|
|
thumb_func_start sub_8094108
|
|
sub_8094108:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
movs r5, 0x3
|
|
_08094110:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80940B8
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08094110
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094108
|
|
|
|
thumb_func_start sub_8094128
|
|
sub_8094128:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
movs r5, 0x3
|
|
_08094130:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80940E0
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08094130
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094128
|
|
|
|
thumb_func_start sub_8094148
|
|
sub_8094148:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r4, 0x1
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r1, r4, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
adds r4, 0x5
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094148
|
|
|
|
thumb_func_start sub_8094184
|
|
sub_8094184:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r7, 0
|
|
movs r5, 0x3
|
|
_0809418E:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_8094148
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _0809418E
|
|
adds r1, r7, 0
|
|
adds r1, 0x20
|
|
adds r0, r6, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094184
|
|
|
|
thumb_func_start sub_80941B0
|
|
sub_80941B0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x8
|
|
bl memset
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r4, 0x1
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
adds r1, r4, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
adds r4, 0x5
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80941B0
|
|
|
|
thumb_func_start sub_80941FC
|
|
sub_80941FC:
|
|
push {r4-r7,lr}
|
|
adds r6, r0, 0
|
|
adds r7, r1, 0
|
|
adds r4, r7, 0
|
|
movs r5, 0x3
|
|
_08094206:
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80941B0
|
|
adds r4, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08094206
|
|
adds r1, r7, 0
|
|
adds r1, 0x20
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
adds r0, r6, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80941FC
|
|
|
|
thumb_func_start sub_809422C
|
|
sub_809422C:
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
cmp r1, 0x97
|
|
beq _08094260
|
|
cmp r1, 0x64
|
|
beq _08094260
|
|
cmp r1, 0x3C
|
|
beq _08094260
|
|
cmp r1, 0x4B
|
|
beq _08094260
|
|
movs r0, 0xAE
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08094260
|
|
cmp r1, 0x99
|
|
beq _08094260
|
|
cmp r1, 0xCD
|
|
beq _08094260
|
|
cmp r1, 0x9C
|
|
beq _08094260
|
|
cmp r2, 0x8
|
|
beq _08094260
|
|
movs r0, 0
|
|
b _08094262
|
|
_08094260:
|
|
movs r0, 0x1
|
|
_08094262:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809422C
|
|
|
|
thumb_func_start sub_8094268
|
|
sub_8094268:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
asrs r0, r3, 16
|
|
asrs r1, r2, 16
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ldr r6, _080942B0
|
|
ands r3, r6
|
|
orrs r3, r0
|
|
adds r2, r3, r2
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r4, _080942B4
|
|
ands r3, r4
|
|
orrs r3, r2
|
|
asrs r1, r3, 16
|
|
ldr r0, _080942B8
|
|
cmp r1, r0
|
|
ble _080942A6
|
|
adds r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ands r3, r4
|
|
orrs r3, r0
|
|
asrs r0, r3, 16
|
|
ldr r1, _080942BC
|
|
adds r0, r1
|
|
lsls r0, 16
|
|
ands r3, r6
|
|
orrs r3, r0
|
|
_080942A6:
|
|
str r3, [r5]
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080942B0: .4byte 0x0000ffff
|
|
_080942B4: .4byte 0xffff0000
|
|
_080942B8: .4byte 0x000003e7
|
|
_080942BC: .4byte 0xfffffc18
|
|
thumb_func_end sub_8094268
|
|
|
|
thumb_func_start sub_80942C0
|
|
sub_80942C0:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r3, r1, 0
|
|
asrs r0, r3, 16
|
|
asrs r1, r2, 16
|
|
subs r0, r1
|
|
lsls r0, 16
|
|
ldr r4, _08094310
|
|
ands r3, r4
|
|
orrs r3, r0
|
|
subs r2, r3, r2
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r1, _08094314
|
|
ands r3, r1
|
|
orrs r3, r2
|
|
cmp r3, 0
|
|
bge _080942FC
|
|
subs r0, r3, 0x1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ands r3, r1
|
|
orrs r3, r0
|
|
asrs r0, r3, 16
|
|
movs r2, 0xFA
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
lsls r0, 16
|
|
ands r3, r4
|
|
orrs r3, r0
|
|
_080942FC:
|
|
lsls r0, r3, 16
|
|
cmp r0, 0
|
|
bge _08094304
|
|
movs r3, 0
|
|
_08094304:
|
|
str r3, [r5]
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08094310: .4byte 0x0000ffff
|
|
_08094314: .4byte 0xffff0000
|
|
thumb_func_end sub_80942C0
|
|
|
|
thumb_func_start sub_8094318
|
|
sub_8094318:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
lsls r0, r3, 16
|
|
asrs r1, r0, 16
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _08094336
|
|
cmp r1, r0
|
|
blt _0809433A
|
|
asrs r1, r3, 16
|
|
asrs r0, r2, 16
|
|
cmp r1, r0
|
|
ble _0809433A
|
|
_08094336:
|
|
str r2, [r4]
|
|
b _0809433C
|
|
_0809433A:
|
|
str r3, [r4]
|
|
_0809433C:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094318
|
|
|
|
thumb_func_start sub_8094344
|
|
sub_8094344:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
lsls r0, r3, 16
|
|
asrs r1, r0, 16
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bgt _08094362
|
|
cmp r1, r0
|
|
blt _08094366
|
|
asrs r1, r3, 16
|
|
asrs r0, r2, 16
|
|
cmp r1, r0
|
|
ble _08094366
|
|
_08094362:
|
|
str r3, [r4]
|
|
b _08094368
|
|
_08094366:
|
|
str r2, [r4]
|
|
_08094368:
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094344
|
|
|
|
thumb_func_start sub_8094370
|
|
sub_8094370:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
lsls r2, 16
|
|
ldr r4, _08094398
|
|
lsrs r3, r1, 16
|
|
orrs r3, r2
|
|
asrs r2, 16
|
|
ldr r1, _0809439C
|
|
asrs r0, r1, 16
|
|
cmp r2, r0
|
|
ble _0809438C
|
|
ands r3, r4
|
|
orrs r3, r1
|
|
_0809438C:
|
|
str r3, [r5]
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08094398: .4byte 0x0000ffff
|
|
_0809439C: .4byte 0x03e70000
|
|
thumb_func_end sub_8094370
|
|
|
|
thumb_func_start sub_80943A0
|
|
sub_80943A0:
|
|
lsls r1, 16
|
|
lsrs r2, r1, 16
|
|
str r2, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80943A0
|
|
|
|
thumb_func_start sub_80943A8
|
|
sub_80943A8:
|
|
push {r4,r5,lr}
|
|
ldr r3, [r1, 0x4]
|
|
lsrs r2, r3, 16
|
|
ldr r1, _080943D4
|
|
ands r5, r1
|
|
orrs r5, r2
|
|
ldr r4, _080943D8
|
|
adds r2, r4, 0
|
|
ands r2, r3
|
|
lsls r1, r2, 5
|
|
subs r1, r2
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
lsrs r1, 16
|
|
lsls r1, 16
|
|
ands r5, r4
|
|
orrs r5, r1
|
|
str r5, [r0]
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080943D4: .4byte 0xffff0000
|
|
_080943D8: .4byte 0x0000ffff
|
|
thumb_func_end sub_80943A8
|
|
|
|
thumb_func_start sub_80943DC
|
|
sub_80943DC:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
mov r8, r0
|
|
adds r4, r1, 0
|
|
lsls r1, r4, 16
|
|
asrs r1, 16
|
|
lsls r0, r1, 5
|
|
subs r0, r1
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
lsls r0, 3
|
|
asrs r1, r4, 16
|
|
adds r0, r1
|
|
lsls r3, r2, 16
|
|
asrs r3, 16
|
|
lsls r1, r3, 5
|
|
subs r1, r3
|
|
lsls r1, 2
|
|
adds r1, r3
|
|
lsls r1, 3
|
|
asrs r2, 16
|
|
adds r1, r2
|
|
muls r0, r1
|
|
movs r5, 0xFA
|
|
lsls r5, 2
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
adds r6, r0, 0
|
|
adds r1, r5, 0
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r1, _08094448
|
|
ands r4, r1
|
|
orrs r4, r0
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl __modsi3
|
|
lsls r0, 16
|
|
ldr r1, _0809444C
|
|
ands r1, r4
|
|
orrs r0, r1
|
|
mov r1, r8
|
|
str r0, [r1]
|
|
mov r0, r8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08094448: .4byte 0xffff0000
|
|
_0809444C: .4byte 0x0000ffff
|
|
thumb_func_end sub_80943DC
|
|
|
|
thumb_func_start sub_8094450
|
|
sub_8094450:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
lsls r0, r1, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0
|
|
bne _0809446A
|
|
asrs r0, r1, 16
|
|
cmp r0, 0
|
|
bne _08094466
|
|
movs r0, 0
|
|
b _08094476
|
|
_08094466:
|
|
movs r0, 0x1
|
|
b _08094476
|
|
_0809446A:
|
|
asrs r0, r1, 16
|
|
cmp r0, 0
|
|
bne _08094474
|
|
adds r0, r2, 0
|
|
b _08094476
|
|
_08094474:
|
|
adds r0, r2, 0x1
|
|
_08094476:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094450
|
|
|
|
thumb_func_start sub_809447C
|
|
sub_809447C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x10
|
|
bl sub_8094924
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x10
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809447C
|
|
|
|
thumb_func_start sub_809449C
|
|
sub_809449C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r2, 0x10
|
|
bl sub_809488C
|
|
adds r4, 0x2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x10
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809449C
|
|
|
|
thumb_func_start sub_80944BC
|
|
sub_80944BC:
|
|
push {r4,lr}
|
|
sub sp, 0x8
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
ldr r0, _080944F4
|
|
cmp r1, r0
|
|
bgt _08094500
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
mov r0, sp
|
|
bl sub_8092AA8
|
|
ldr r0, _080944F8
|
|
mov r1, sp
|
|
movs r2, 0
|
|
bl sub_80928C0
|
|
ldr r0, _080944FC
|
|
ldr r0, [r0]
|
|
adds r2, r4, 0
|
|
adds r2, 0xC8
|
|
adds r1, r4, 0
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
b _08094516
|
|
.align 2, 0
|
|
_080944F4: .4byte 0x000001f3
|
|
_080944F8: .4byte gUnknown_202DE58
|
|
_080944FC: .4byte gUnknown_811383C
|
|
_08094500:
|
|
ldr r0, _08094520
|
|
ldr r2, _08094524
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r0, 0x4
|
|
adds r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, 0
|
|
movs r2, 0xC8
|
|
bl strncpy
|
|
_08094516:
|
|
add sp, 0x8
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094520: .4byte gUnknown_8113080
|
|
_08094524: .4byte 0xfffffe0c
|
|
thumb_func_end sub_80944BC
|
|
|
|
thumb_func_start sub_8094528
|
|
sub_8094528:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
ldr r0, _08094544
|
|
cmp r1, r0
|
|
ble _08094550
|
|
ldr r0, _08094548
|
|
ldr r2, _0809454C
|
|
adds r1, r2
|
|
lsls r1, 3
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
b _08094552
|
|
.align 2, 0
|
|
_08094544: .4byte 0x000001f3
|
|
_08094548: .4byte gUnknown_8113080
|
|
_0809454C: .4byte 0xfffffe0c
|
|
_08094550:
|
|
movs r0, 0x1
|
|
_08094552:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094528
|
|
|
|
thumb_func_start sub_8094558
|
|
sub_8094558:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0xCC
|
|
adds r7, r0, 0
|
|
adds r4, r1, 0
|
|
adds r6, r2, 0
|
|
bl sub_80073B8
|
|
movs r5, 0
|
|
str r5, [sp]
|
|
movs r0, 0x10
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
ldr r4, _080945D0
|
|
adds r1, r6, 0
|
|
adds r1, 0x18
|
|
adds r0, r4, 0
|
|
bl sub_8090208
|
|
ldr r0, _080945D4
|
|
ldr r2, [r0]
|
|
str r5, [sp]
|
|
movs r0, 0x4
|
|
movs r1, 0x10
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
movs r5, 0x1A
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
movs r2, 0xA
|
|
bl sub_80922B4
|
|
adds r4, 0x50
|
|
adds r1, r6, 0
|
|
adds r1, 0xA
|
|
adds r0, r4, 0
|
|
movs r2, 0xA
|
|
bl sub_80922B4
|
|
movs r1, 0x14
|
|
ldrsh r0, [r6, r1]
|
|
bl sub_8094528
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080945DC
|
|
ldr r0, _080945D8
|
|
ldr r0, [r0]
|
|
add r2, sp, 0xCC
|
|
add r1, sp, 0x4
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
b _080945EA
|
|
.align 2, 0
|
|
_080945D0: .4byte gUnknown_202DF98
|
|
_080945D4: .4byte gUnknown_8113850
|
|
_080945D8: .4byte gUnknown_8113868
|
|
_080945DC:
|
|
ldr r0, _0809465C
|
|
ldr r0, [r0]
|
|
add r2, sp, 0xCC
|
|
add r1, sp, 0x4
|
|
movs r3, 0
|
|
bl xxx_format_string
|
|
_080945EA:
|
|
add r0, sp, 0x4
|
|
bl sub_8008ED0
|
|
movs r4, 0xB0
|
|
subs r0, r4, r0
|
|
lsrs r1, r0, 31
|
|
adds r0, r1
|
|
asrs r0, 1
|
|
movs r1, 0
|
|
mov r8, r1
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
add r2, sp, 0x4
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
adds r5, 0xA
|
|
movs r1, 0x14
|
|
ldrsh r0, [r6, r1]
|
|
add r1, sp, 0x4
|
|
bl sub_80944BC
|
|
add r0, sp, 0x4
|
|
bl sub_8008ED0
|
|
subs r4, r0
|
|
lsrs r0, r4, 31
|
|
adds r4, r0
|
|
asrs r0, r4, 1
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
adds r1, r5, 0
|
|
add r2, sp, 0x4
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
adds r5, 0x10
|
|
ldr r1, _08094660
|
|
ldr r0, [r6, 0x20]
|
|
str r0, [r1]
|
|
adds r0, r6, 0
|
|
adds r0, 0x2A
|
|
ldrb r0, [r0]
|
|
str r0, [r1, 0x4]
|
|
cmp r0, 0x63
|
|
ble _08094668
|
|
ldr r0, _08094664
|
|
ldr r2, [r0]
|
|
mov r0, r8
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
b _0809467A
|
|
.align 2, 0
|
|
_0809465C: .4byte gUnknown_8113870
|
|
_08094660: .4byte gUnknown_202DE30
|
|
_08094664: .4byte gUnknown_81138C0
|
|
_08094668:
|
|
ldr r0, _080946CC
|
|
ldr r2, [r0]
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
_0809467A:
|
|
adds r5, 0xA
|
|
ldr r4, _080946D0
|
|
movs r1, 0x24
|
|
ldrsh r0, [r6, r1]
|
|
str r0, [r4]
|
|
ldr r0, _080946D4
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
mov r8, r0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
adds r5, 0xA
|
|
adds r0, r6, 0
|
|
adds r0, 0x26
|
|
ldrb r2, [r0]
|
|
str r2, [r4]
|
|
adds r0, 0x2
|
|
ldrb r0, [r0]
|
|
str r0, [r4, 0x4]
|
|
adds r0, r6, 0
|
|
adds r0, 0x2B
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _080946DC
|
|
adds r0, r1, 0
|
|
adds r0, r2, r0
|
|
str r0, [r4]
|
|
ldr r0, _080946D8
|
|
ldr r2, [r0]
|
|
mov r1, r8
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
b _080946EC
|
|
.align 2, 0
|
|
_080946CC: .4byte gUnknown_8113898
|
|
_080946D0: .4byte gUnknown_202DE30
|
|
_080946D4: .4byte gUnknown_81138D0
|
|
_080946D8: .4byte gUnknown_8113950
|
|
_080946DC:
|
|
ldr r0, _08094714
|
|
ldr r2, [r0]
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
_080946EC:
|
|
adds r0, r6, 0
|
|
adds r0, 0x2D
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08094720
|
|
ldr r2, _08094718
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r0, _0809471C
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
b _08094730
|
|
.align 2, 0
|
|
_08094714: .4byte gUnknown_81138E4
|
|
_08094718: .4byte gUnknown_202DE30
|
|
_0809471C: .4byte gUnknown_8113974
|
|
_08094720:
|
|
ldr r0, _08094768
|
|
ldr r2, [r0]
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
_08094730:
|
|
adds r5, 0xA
|
|
ldr r2, _0809476C
|
|
adds r0, r6, 0
|
|
adds r0, 0x27
|
|
ldrb r3, [r0]
|
|
str r3, [r2]
|
|
adds r0, 0x2
|
|
ldrb r0, [r0]
|
|
str r0, [r2, 0x4]
|
|
adds r0, r6, 0
|
|
adds r0, 0x2C
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _08094774
|
|
adds r0, r1, 0
|
|
adds r0, r3, r0
|
|
str r0, [r2]
|
|
ldr r0, _08094770
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
b _08094784
|
|
.align 2, 0
|
|
_08094768: .4byte gUnknown_8113900
|
|
_0809476C: .4byte gUnknown_202DE30
|
|
_08094770: .4byte gUnknown_8113990
|
|
_08094774:
|
|
ldr r0, _080947AC
|
|
ldr r2, [r0]
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
_08094784:
|
|
adds r0, r6, 0
|
|
adds r0, 0x2E
|
|
ldrb r1, [r0]
|
|
cmp r1, 0
|
|
beq _080947B8
|
|
ldr r2, _080947B0
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r0, _080947B4
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
b _080947C8
|
|
.align 2, 0
|
|
_080947AC: .4byte gUnknown_8113918
|
|
_080947B0: .4byte gUnknown_202DE30
|
|
_080947B4: .4byte gUnknown_81139B4
|
|
_080947B8:
|
|
ldr r0, _080947E4
|
|
ldr r2, [r0]
|
|
str r1, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
_080947C8:
|
|
adds r5, 0x10
|
|
adds r2, r6, 0
|
|
adds r2, 0x1C
|
|
ldrb r1, [r6, 0x1C]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080947EC
|
|
ldr r0, _080947E8
|
|
adds r1, r2, 0
|
|
movs r2, 0
|
|
bl sub_8090E14
|
|
b _080947F6
|
|
.align 2, 0
|
|
_080947E4: .4byte gUnknown_8113934
|
|
_080947E8: .4byte gUnknown_202DE58
|
|
_080947EC:
|
|
ldr r0, _0809481C
|
|
ldr r1, _08094820
|
|
ldr r1, [r1]
|
|
bl strcpy
|
|
_080947F6:
|
|
ldr r0, _08094824
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
movs r0, 0x4
|
|
adds r1, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8014FF0
|
|
adds r0, r7, 0
|
|
bl sub_80073E0
|
|
add sp, 0xCC
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809481C: .4byte gUnknown_202DE58
|
|
_08094820: .4byte gUnknown_81139B8
|
|
_08094824: .4byte gUnknown_81139CC
|
|
thumb_func_end sub_8094558
|
|
|
|
thumb_func_start sub_8094828
|
|
sub_8094828:
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
lsls r1, 24
|
|
lsrs r0, r1, 24
|
|
cmp r0, 0
|
|
beq _08094852
|
|
bl sub_8090BD0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bne _0809484C
|
|
ldr r0, _08094848
|
|
b _08094856
|
|
.align 2, 0
|
|
_08094848: .4byte 0x00000223
|
|
_0809484C:
|
|
movs r0, 0x89
|
|
lsls r0, 2
|
|
b _08094856
|
|
_08094852:
|
|
lsls r0, r2, 16
|
|
asrs r0, 16
|
|
_08094856:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094828
|
|
|
|
thumb_func_start sub_809485C
|
|
sub_809485C:
|
|
str r1, [r0]
|
|
movs r3, 0
|
|
str r3, [r0, 0x8]
|
|
str r3, [r0, 0xC]
|
|
adds r1, r2
|
|
str r1, [r0, 0x4]
|
|
bx lr
|
|
thumb_func_end sub_809485C
|
|
|
|
thumb_func_start sub_809486C
|
|
sub_809486C:
|
|
push {lr}
|
|
str r1, [r0]
|
|
movs r3, 0
|
|
str r3, [r0, 0x8]
|
|
str r3, [r0, 0xC]
|
|
adds r3, r1, r2
|
|
str r3, [r0, 0x4]
|
|
adds r0, r1, 0
|
|
adds r1, r2, 0
|
|
bl MemoryClear8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809486C
|
|
|
|
thumb_func_start nullsub_102
|
|
nullsub_102:
|
|
bx lr
|
|
thumb_func_end nullsub_102
|
|
|
|
thumb_func_start sub_809488C
|
|
sub_809488C:
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r2, 0
|
|
movs r5, 0
|
|
adds r6, r1, 0
|
|
cmp r4, 0
|
|
beq _080948DE
|
|
movs r7, 0x1
|
|
_0809489C:
|
|
ldrb r0, [r6]
|
|
asrs r0, r5
|
|
ands r0, r7
|
|
cmp r0, 0
|
|
beq _080948B4
|
|
ldr r2, [r3]
|
|
ldr r1, [r3, 0x8]
|
|
adds r0, r7, 0
|
|
lsls r0, r1
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_080948B4:
|
|
adds r5, 0x1
|
|
cmp r5, 0x8
|
|
bne _080948BE
|
|
adds r6, 0x1
|
|
movs r5, 0
|
|
_080948BE:
|
|
ldr r0, [r3, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
cmp r0, 0x8
|
|
bne _080948D2
|
|
ldr r0, [r3]
|
|
adds r0, 0x1
|
|
str r0, [r3]
|
|
movs r0, 0
|
|
str r0, [r3, 0x8]
|
|
_080948D2:
|
|
ldr r0, [r3, 0xC]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0xC]
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _0809489C
|
|
_080948DE:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809488C
|
|
|
|
thumb_func_start sub_80948E4
|
|
sub_80948E4:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r2, 0
|
|
adds r6, r1, 0
|
|
cmp r5, 0
|
|
beq _0809491C
|
|
_080948F0:
|
|
ldrb r1, [r6]
|
|
ldr r0, [r4, 0x8]
|
|
lsls r1, r0
|
|
ldr r3, [r4]
|
|
ldrb r2, [r3]
|
|
adds r0, r1, 0
|
|
orrs r0, r2
|
|
strb r0, [r3]
|
|
ldr r2, [r4]
|
|
adds r0, r2, 0x1
|
|
str r0, [r4]
|
|
asrs r1, 8
|
|
ldrb r0, [r2, 0x1]
|
|
orrs r1, r0
|
|
strb r1, [r2, 0x1]
|
|
adds r6, 0x1
|
|
ldr r0, [r4, 0xC]
|
|
adds r0, 0x8
|
|
str r0, [r4, 0xC]
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _080948F0
|
|
_0809491C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80948E4
|
|
|
|
thumb_func_start sub_8094924
|
|
sub_8094924:
|
|
push {r4-r7,lr}
|
|
adds r3, r0, 0
|
|
adds r5, r2, 0
|
|
movs r6, 0
|
|
adds r2, r1, 0
|
|
cmp r5, 0
|
|
beq _08094978
|
|
_08094932:
|
|
cmp r6, 0
|
|
bne _08094938
|
|
strb r6, [r2]
|
|
_08094938:
|
|
ldr r7, [r3]
|
|
ldrb r0, [r7]
|
|
ldr r4, [r3, 0x8]
|
|
asrs r0, r4
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08094952
|
|
adds r0, r1, 0
|
|
lsls r0, r6
|
|
ldrb r1, [r2]
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_08094952:
|
|
adds r6, 0x1
|
|
cmp r6, 0x8
|
|
bne _0809495C
|
|
adds r2, 0x1
|
|
movs r6, 0
|
|
_0809495C:
|
|
adds r0, r4, 0x1
|
|
str r0, [r3, 0x8]
|
|
cmp r0, 0x8
|
|
bne _0809496C
|
|
adds r0, r7, 0x1
|
|
str r0, [r3]
|
|
movs r0, 0
|
|
str r0, [r3, 0x8]
|
|
_0809496C:
|
|
ldr r0, [r3, 0xC]
|
|
adds r0, 0x1
|
|
str r0, [r3, 0xC]
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bne _08094932
|
|
_08094978:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094924
|
|
|
|
thumb_func_start sub_8094980
|
|
sub_8094980:
|
|
ldr r1, _08094988
|
|
ldr r0, _0809498C
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094988: .4byte gUnknown_203B46C
|
|
_0809498C: .4byte gUnknown_2038C70
|
|
thumb_func_end sub_8094980
|
|
|
|
thumb_func_start sub_8094990
|
|
sub_8094990:
|
|
ldr r0, _08094994
|
|
bx lr
|
|
.align 2, 0
|
|
_08094994: .4byte gUnknown_2038C70
|
|
thumb_func_end sub_8094990
|
|
|
|
thumb_func_start sub_8094998
|
|
sub_8094998:
|
|
push {lr}
|
|
lsls r0, 24
|
|
ldr r2, _080949D8
|
|
ldr r1, [r2]
|
|
movs r3, 0
|
|
strb r3, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _080949AC
|
|
ldr r0, [r2]
|
|
strb r3, [r0, 0xB]
|
|
_080949AC:
|
|
ldr r0, [r2]
|
|
strb r3, [r0, 0x9]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, 0xA]
|
|
ldr r0, [r2]
|
|
strb r3, [r0]
|
|
ldr r0, [r2]
|
|
movs r1, 0x1
|
|
strb r1, [r0, 0x1]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x2]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x3]
|
|
ldr r0, [r2]
|
|
strb r1, [r0, 0x4]
|
|
ldr r0, [r2]
|
|
strb r3, [r0, 0xC]
|
|
bl sub_8094C14
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080949D8: .4byte gUnknown_203B46C
|
|
thumb_func_end sub_8094998
|
|
|
|
thumb_func_start sub_80949DC
|
|
sub_80949DC:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r0, _08094A38
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x8]
|
|
ldrb r3, [r2, 0x8]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0x9]
|
|
ldrb r3, [r2, 0x9]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0xA]
|
|
ldrb r3, [r2, 0xA]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0xB]
|
|
ldrb r3, [r2, 0xB]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1]
|
|
ldrb r3, [r2]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0x1]
|
|
ldrb r3, [r2, 0x1]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0x2]
|
|
ldrb r3, [r2, 0x2]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0x3]
|
|
ldrb r3, [r2, 0x3]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0x4]
|
|
ldrb r3, [r2, 0x4]
|
|
cmp r0, r3
|
|
bne _08094A3C
|
|
ldrb r0, [r1, 0xC]
|
|
ldrb r2, [r2, 0xC]
|
|
cmp r0, r2
|
|
bne _08094A3C
|
|
movs r0, 0x1
|
|
b _08094A3E
|
|
.align 2, 0
|
|
_08094A38: .4byte gUnknown_203B46C
|
|
_08094A3C:
|
|
movs r0, 0
|
|
_08094A3E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80949DC
|
|
|
|
thumb_func_start sub_8094A44
|
|
sub_8094A44:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
movs r1, 0xFF
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
mov r7, sp
|
|
adds r7, 0x1
|
|
movs r0, 0
|
|
strb r0, [r7]
|
|
ldr r5, _08094B14
|
|
ldr r1, [r5]
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x9]
|
|
mov r1, sp
|
|
adds r6, r7, 0
|
|
cmp r0, 0
|
|
bne _08094A74
|
|
adds r1, r6, 0
|
|
_08094A74:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0xA]
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
beq _08094A88
|
|
mov r1, sp
|
|
_08094A88:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0xB]
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
beq _08094A9C
|
|
mov r1, sp
|
|
_08094A9C:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0]
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
beq _08094AB0
|
|
mov r1, sp
|
|
_08094AB0:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x1]
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
beq _08094AC4
|
|
mov r1, sp
|
|
_08094AC4:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x2]
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
beq _08094AD8
|
|
mov r1, sp
|
|
_08094AD8:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r0, [r5]
|
|
ldrb r0, [r0, 0x3]
|
|
adds r1, r7, 0
|
|
cmp r0, 0
|
|
beq _08094AEC
|
|
mov r1, sp
|
|
_08094AEC:
|
|
adds r0, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r1, [r5]
|
|
adds r1, 0x4
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
bl sub_809488C
|
|
ldr r1, [r5]
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_809488C
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094B14: .4byte gUnknown_203B46C
|
|
thumb_func_end sub_8094A44
|
|
|
|
thumb_func_start sub_8094B18
|
|
sub_8094B18:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8094924
|
|
ldr r5, _08094C10
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, 0x3
|
|
mov r8, r0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x8]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r4, 0x1
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x9]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0xA]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0xB]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x1]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
adds r0, r4, 0
|
|
ands r0, r1
|
|
strb r0, [r2, 0x2]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r1, [r5]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
ands r4, r0
|
|
strb r4, [r1, 0x3]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x3
|
|
bl sub_8094924
|
|
ldr r2, [r5]
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, 0x7
|
|
ands r0, r1
|
|
strb r0, [r2, 0x4]
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x2
|
|
bl sub_8094924
|
|
ldr r1, [r5]
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
mov r2, r8
|
|
ands r2, r0
|
|
strb r2, [r1, 0xC]
|
|
bl sub_8094C14
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094C10: .4byte gUnknown_203B46C
|
|
thumb_func_end sub_8094B18
|
|
|
|
thumb_func_start sub_8094C14
|
|
sub_8094C14:
|
|
push {r4,lr}
|
|
sub sp, 0x10
|
|
mov r1, sp
|
|
ldr r0, _08094C40
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r0, _08094C44
|
|
ldr r0, [r0]
|
|
ldrb r1, [r0, 0x8]
|
|
movs r0, 0x3
|
|
ands r0, r1
|
|
lsls r0, 2
|
|
add r0, sp
|
|
ldr r0, [r0]
|
|
bl sub_80099F0
|
|
add sp, 0x10
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094C40: .4byte gUnknown_8109954
|
|
_08094C44: .4byte gUnknown_203B46C
|
|
thumb_func_end sub_8094C14
|
|
|
|
thumb_func_start sub_8094C48
|
|
sub_8094C48:
|
|
push {lr}
|
|
ldr r0, _08094C5C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _08094C60
|
|
cmp r0, 0x3
|
|
beq _08094C60
|
|
movs r0, 0x1
|
|
b _08094C62
|
|
.align 2, 0
|
|
_08094C5C: .4byte gUnknown_203B46C
|
|
_08094C60:
|
|
movs r0, 0
|
|
_08094C62:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094C48
|
|
|
|
thumb_func_start sub_8094C68
|
|
sub_8094C68:
|
|
push {lr}
|
|
ldr r0, _08094C7C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0x4]
|
|
cmp r0, 0x2
|
|
beq _08094C80
|
|
cmp r0, 0x5
|
|
beq _08094C80
|
|
movs r0, 0x1
|
|
b _08094C82
|
|
.align 2, 0
|
|
_08094C7C: .4byte gUnknown_203B46C
|
|
_08094C80:
|
|
movs r0, 0
|
|
_08094C82:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8094C68
|
|
|
|
thumb_func_start sub_8094C88
|
|
sub_8094C88:
|
|
push {lr}
|
|
ldr r0, _08094C98
|
|
ldr r1, [r0]
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, 0x2
|
|
bhi _08094C9C
|
|
movs r0, 0x1
|
|
b _08094CA8
|
|
.align 2, 0
|
|
_08094C98: .4byte gUnknown_203B46C
|
|
_08094C9C:
|
|
subs r0, 0x3
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bhi _08094CAA
|
|
movs r0, 0x4
|
|
_08094CA8:
|
|
strb r0, [r1, 0x4]
|
|
_08094CAA:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8094C88
|
|
|
|
thumb_func_start sub_8094CB0
|
|
sub_8094CB0:
|
|
ldr r1, _08094CBC
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094CBC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094CB0
|
|
|
|
thumb_func_start sub_8094CC0
|
|
sub_8094CC0:
|
|
ldr r1, _08094CCC
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094CCC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094CC0
|
|
|
|
thumb_func_start sub_8094CD0
|
|
sub_8094CD0:
|
|
ldr r1, _08094CDC
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094CDC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094CD0
|
|
|
|
thumb_func_start sub_8094CE0
|
|
sub_8094CE0:
|
|
ldr r1, _08094CEC
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094CEC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094CE0
|
|
|
|
thumb_func_start sub_8094CF0
|
|
sub_8094CF0:
|
|
ldr r1, _08094CFC
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094CFC: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094CF0
|
|
|
|
thumb_func_start sub_8094D00
|
|
sub_8094D00:
|
|
ldr r1, _08094D0C
|
|
strh r1, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r0, 0x2]
|
|
bx lr
|
|
.align 2, 0
|
|
_08094D0C: .4byte 0x0000ffff
|
|
thumb_func_end sub_8094D00
|
|
|
|
thumb_func_start sub_8094D10
|
|
sub_8094D10:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D10
|
|
|
|
thumb_func_start sub_8094D14
|
|
sub_8094D14:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D14
|
|
|
|
thumb_func_start sub_8094D18
|
|
sub_8094D18:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D18
|
|
|
|
thumb_func_start sub_8094D1C
|
|
sub_8094D1C:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D1C
|
|
|
|
thumb_func_start sub_8094D20
|
|
sub_8094D20:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D20
|
|
|
|
thumb_func_start sub_8094D24
|
|
sub_8094D24:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_8094D24
|
|
|
|
thumb_func_start sub_8094D28
|
|
sub_8094D28:
|
|
push {r4-r7,lr}
|
|
ldr r2, _08094D64
|
|
str r0, [r2]
|
|
ldr r1, _08094D68
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r7, _08094D6C
|
|
adds r5, r2, 0
|
|
adds r4, r1, 0
|
|
ldr r6, _08094D70
|
|
_08094D3C:
|
|
ldr r2, [r4]
|
|
lsls r3, r2, 2
|
|
adds r3, r5
|
|
subs r0, r2, 0x1
|
|
lsls r0, 2
|
|
adds r0, r5
|
|
ldr r0, [r0]
|
|
lsrs r1, r0, 30
|
|
eors r0, r1
|
|
muls r0, r6
|
|
adds r0, r2
|
|
str r0, [r3]
|
|
adds r2, 0x1
|
|
str r2, [r4]
|
|
cmp r2, r7
|
|
ble _08094D3C
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094D64: .4byte gUnknown_3001198
|
|
_08094D68: .4byte gUnknown_203B470
|
|
_08094D6C: .4byte 0x0000026f
|
|
_08094D70: .4byte 0x6c078965
|
|
thumb_func_end sub_8094D28
|
|
|
|
thumb_func_start sub_8094D74
|
|
sub_8094D74:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
mov r8, r0
|
|
adds r7, r1, 0
|
|
ldr r0, _08094E34
|
|
bl sub_8094D28
|
|
movs r4, 0x1
|
|
movs r5, 0
|
|
adds r3, r7, 0
|
|
movs r0, 0x9C
|
|
lsls r0, 2
|
|
cmp r3, r0
|
|
bge _08094D96
|
|
adds r3, r0, 0
|
|
_08094D96:
|
|
ldr r6, _08094E38
|
|
cmp r3, 0
|
|
beq _08094DE2
|
|
mov r9, r6
|
|
ldr r0, _08094E3C
|
|
adds r0, r6
|
|
mov r12, r0
|
|
adds r2, r6, 0
|
|
_08094DA6:
|
|
ldr r1, [r2]
|
|
lsrs r0, r1, 30
|
|
eors r1, r0
|
|
ldr r0, _08094E40
|
|
muls r0, r1
|
|
ldr r1, [r2, 0x4]
|
|
eors r1, r0
|
|
lsls r0, r5, 2
|
|
add r0, r8
|
|
ldr r0, [r0]
|
|
adds r1, r0
|
|
adds r1, r5
|
|
str r1, [r2, 0x4]
|
|
adds r2, 0x4
|
|
adds r4, 0x1
|
|
adds r5, 0x1
|
|
ldr r0, _08094E44
|
|
cmp r4, r0
|
|
ble _08094DD6
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
str r0, [r6]
|
|
mov r2, r9
|
|
movs r4, 0x1
|
|
_08094DD6:
|
|
cmp r5, r7
|
|
blt _08094DDC
|
|
movs r5, 0
|
|
_08094DDC:
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _08094DA6
|
|
_08094DE2:
|
|
ldr r3, _08094E44
|
|
ldr r5, _08094E38
|
|
ldr r0, _08094E3C
|
|
adds r0, r5
|
|
mov r8, r0
|
|
lsls r0, r4, 2
|
|
subs r0, 0x4
|
|
adds r2, r0, r5
|
|
ldr r1, _08094E48
|
|
mov r12, r1
|
|
adds r7, r3, 0
|
|
_08094DF8:
|
|
ldr r0, [r2]
|
|
lsrs r1, r0, 30
|
|
eors r0, r1
|
|
mov r1, r12
|
|
muls r1, r0
|
|
ldr r0, [r2, 0x4]
|
|
eors r0, r1
|
|
subs r0, r4
|
|
str r0, [r2, 0x4]
|
|
adds r2, 0x4
|
|
adds r4, 0x1
|
|
cmp r4, r7
|
|
ble _08094E1C
|
|
mov r1, r8
|
|
ldr r0, [r1]
|
|
str r0, [r6]
|
|
adds r2, r5, 0
|
|
movs r4, 0x1
|
|
_08094E1C:
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bne _08094DF8
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
str r0, [r6]
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094E34: .4byte 0x012bd6aa
|
|
_08094E38: .4byte gUnknown_3001198
|
|
_08094E3C: .4byte 0x000009bc
|
|
_08094E40: .4byte 0x0019660d
|
|
_08094E44: .4byte 0x0000026f
|
|
_08094E48: .4byte 0x5d588b65
|
|
thumb_func_end sub_8094D74
|
|
|
|
thumb_func_start sub_8094E4C
|
|
sub_8094E4C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r0, _08094F54
|
|
ldr r2, [r0]
|
|
ldr r1, _08094F58
|
|
mov r8, r0
|
|
cmp r2, r1
|
|
ble _08094F1C
|
|
ldr r0, _08094F5C
|
|
cmp r2, r0
|
|
bne _08094E6C
|
|
ldr r0, _08094F60
|
|
bl sub_8094D28
|
|
_08094E6C:
|
|
movs r3, 0
|
|
ldr r0, _08094F64
|
|
mov r9, r0
|
|
ldr r7, _08094F68
|
|
mov r12, r9
|
|
adds r5, r7, 0
|
|
_08094E78:
|
|
ldr r4, [r5]
|
|
movs r6, 0x80
|
|
lsls r6, 24
|
|
ands r4, r6
|
|
ldr r0, [r5, 0x4]
|
|
ldr r1, _08094F6C
|
|
ands r0, r1
|
|
orrs r4, r0
|
|
ldr r1, _08094F70
|
|
adds r0, r3, r1
|
|
lsls r0, 2
|
|
adds r0, r7
|
|
lsrs r2, r4, 1
|
|
ldr r1, [r0]
|
|
eors r1, r2
|
|
movs r0, 0x1
|
|
ands r4, r0
|
|
lsls r0, r4, 2
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
eors r1, r0
|
|
stm r5!, {r1}
|
|
adds r3, 0x1
|
|
cmp r3, 0xE2
|
|
ble _08094E78
|
|
ldr r5, _08094F74
|
|
cmp r3, r5
|
|
bgt _08094EE6
|
|
ldr r1, _08094F68
|
|
ldr r4, _08094F64
|
|
mov r12, r4
|
|
lsls r0, r3, 2
|
|
adds r2, r0, r1
|
|
ldr r4, _08094F78
|
|
adds r0, r4
|
|
adds r7, r0, r1
|
|
_08094EC0:
|
|
ldr r4, [r2]
|
|
ands r4, r6
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, _08094F6C
|
|
ands r0, r1
|
|
orrs r4, r0
|
|
lsrs r0, r4, 1
|
|
ldm r7!, {r1}
|
|
eors r1, r0
|
|
movs r0, 0x1
|
|
ands r4, r0
|
|
lsls r0, r4, 2
|
|
add r0, r12
|
|
ldr r0, [r0]
|
|
eors r1, r0
|
|
stm r2!, {r1}
|
|
adds r3, 0x1
|
|
cmp r3, r5
|
|
ble _08094EC0
|
|
_08094EE6:
|
|
ldr r2, _08094F68
|
|
ldr r0, _08094F7C
|
|
adds r3, r2, r0
|
|
ldr r4, [r3]
|
|
movs r0, 0x80
|
|
lsls r0, 24
|
|
ands r4, r0
|
|
ldr r0, [r2]
|
|
ldr r1, _08094F6C
|
|
ands r0, r1
|
|
orrs r4, r0
|
|
movs r1, 0xC6
|
|
lsls r1, 3
|
|
adds r2, r1
|
|
lsrs r0, r4, 1
|
|
ldr r1, [r2]
|
|
eors r1, r0
|
|
movs r0, 0x1
|
|
ands r4, r0
|
|
lsls r0, r4, 2
|
|
add r0, r9
|
|
ldr r0, [r0]
|
|
eors r1, r0
|
|
str r1, [r3]
|
|
movs r0, 0
|
|
mov r4, r8
|
|
str r0, [r4]
|
|
_08094F1C:
|
|
ldr r2, _08094F68
|
|
mov r0, r8
|
|
ldr r1, [r0]
|
|
lsls r0, r1, 2
|
|
adds r0, r2
|
|
ldr r4, [r0]
|
|
adds r1, 0x1
|
|
mov r0, r8
|
|
str r1, [r0]
|
|
lsrs r0, r4, 11
|
|
eors r4, r0
|
|
lsls r0, r4, 7
|
|
ldr r1, _08094F80
|
|
ands r0, r1
|
|
eors r4, r0
|
|
lsls r0, r4, 15
|
|
ldr r1, _08094F84
|
|
ands r0, r1
|
|
eors r4, r0
|
|
lsrs r0, r4, 18
|
|
eors r4, r0
|
|
adds r0, r4, 0
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08094F54: .4byte gUnknown_203B470
|
|
_08094F58: .4byte 0x0000026f
|
|
_08094F5C: .4byte 0x00000271
|
|
_08094F60: .4byte 0x00001571
|
|
_08094F64: .4byte gUnknown_203B474
|
|
_08094F68: .4byte gUnknown_3001198
|
|
_08094F6C: .4byte 0x7fffffff
|
|
_08094F70: .4byte 0x0000018d
|
|
_08094F74: .4byte 0x0000026e
|
|
_08094F78: .4byte 0xfffffc74
|
|
_08094F7C: .4byte 0x000009bc
|
|
_08094F80: .4byte 0x9d2c5680
|
|
_08094F84: .4byte 0xefc60000
|
|
thumb_func_end sub_8094E4C
|
|
|
|
thumb_func_start sub_8094F88
|
|
sub_8094F88:
|
|
push {lr}
|
|
ldr r1, _08094F98
|
|
ldr r0, _08094F9C
|
|
str r0, [r1]
|
|
bl sub_8094FA8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08094F98: .4byte gUnknown_203B47C
|
|
_08094F9C: .4byte gUnknown_2038C80
|
|
thumb_func_end sub_8094F88
|
|
|
|
thumb_func_start sub_8094FA0
|
|
sub_8094FA0:
|
|
ldr r0, _08094FA4
|
|
bx lr
|
|
.align 2, 0
|
|
_08094FA4: .4byte gUnknown_2038C80
|
|
thumb_func_end sub_8094FA0
|
|
|
|
thumb_func_start sub_8094FA8
|
|
sub_8094FA8:
|
|
movs r1, 0
|
|
strb r1, [r0, 0x4]
|
|
strb r1, [r0, 0x3]
|
|
strb r1, [r0, 0x2]
|
|
strh r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_8094FA8
|
|
|
|
thumb_func_start sub_8094FB4
|
|
sub_8094FB4:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldrb r0, [r2, 0x4]
|
|
adds r0, 0x1
|
|
movs r1, 0
|
|
strb r0, [r2, 0x4]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bls _0809500A
|
|
strb r1, [r2, 0x4]
|
|
ldrb r0, [r2, 0x3]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x3]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bls _0809500A
|
|
strb r1, [r2, 0x3]
|
|
ldrb r0, [r2, 0x2]
|
|
adds r0, 0x1
|
|
strb r0, [r2, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3B
|
|
bls _0809500A
|
|
strb r1, [r2, 0x2]
|
|
ldrh r3, [r2]
|
|
movs r0, 0
|
|
ldrsh r1, [r2, r0]
|
|
ldr r0, _08094FFC
|
|
cmp r1, r0
|
|
bgt _08095000
|
|
adds r0, r3, 0x1
|
|
b _08095008
|
|
.align 2, 0
|
|
_08094FFC: .4byte 0x0000270e
|
|
_08095000:
|
|
movs r0, 0x3B
|
|
strb r0, [r2, 0x3]
|
|
strb r0, [r2, 0x2]
|
|
ldr r0, _08095010
|
|
_08095008:
|
|
strh r0, [r2]
|
|
_0809500A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095010: .4byte 0x0000270f
|
|
thumb_func_end sub_8094FB4
|
|
|
|
thumb_func_start sub_8095014
|
|
sub_8095014:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
ldr r1, _08095030
|
|
cmp r0, r1
|
|
bgt _08095034
|
|
str r0, [r5]
|
|
ldrb r0, [r4, 0x2]
|
|
str r0, [r2]
|
|
ldrb r0, [r4, 0x3]
|
|
b _0809503A
|
|
.align 2, 0
|
|
_08095030: .4byte 0x0000270f
|
|
_08095034:
|
|
str r1, [r5]
|
|
movs r0, 0x3B
|
|
str r0, [r2]
|
|
_0809503A:
|
|
str r0, [r3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8095014
|
|
|
|
thumb_func_start sub_8095044
|
|
sub_8095044:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _0809507C
|
|
ldr r1, [r4]
|
|
adds r1, 0x4
|
|
movs r2, 0x6
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x3
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_809488C
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809507C: .4byte gUnknown_203B47C
|
|
thumb_func_end sub_8095044
|
|
|
|
thumb_func_start sub_8095080
|
|
sub_8095080:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _080950B8
|
|
ldr r1, [r4]
|
|
adds r1, 0x4
|
|
movs r2, 0x6
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x3
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x2
|
|
adds r0, r5, 0
|
|
movs r2, 0x6
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_8094924
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080950B8: .4byte gUnknown_203B47C
|
|
thumb_func_end sub_8095080
|
|
|
|
thumb_func_start sub_80950BC
|
|
sub_80950BC:
|
|
ldr r1, _080950D8
|
|
ldr r0, _080950DC
|
|
str r0, [r1]
|
|
ldr r1, _080950E0
|
|
ldr r0, _080950E4
|
|
str r0, [r1]
|
|
ldr r1, _080950E8
|
|
ldr r0, _080950EC
|
|
str r0, [r1]
|
|
ldr r1, _080950F0
|
|
ldr r0, _080950F4
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080950D8: .4byte gUnknown_203B480
|
|
_080950DC: .4byte gUnknown_2038C88
|
|
_080950E0: .4byte gUnknown_203B484
|
|
_080950E4: .4byte gUnknown_2039288
|
|
_080950E8: .4byte gUnknown_203B488
|
|
_080950EC: .4byte gUnknown_20392E8
|
|
_080950F0: .4byte gUnknown_203B48C
|
|
_080950F4: .4byte gUnknown_20393C0
|
|
thumb_func_end sub_80950BC
|
|
|
|
thumb_func_start sub_80950F8
|
|
sub_80950F8:
|
|
ldr r0, _080950FC
|
|
bx lr
|
|
.align 2, 0
|
|
_080950FC: .4byte gUnknown_2038C88
|
|
thumb_func_end sub_80950F8
|
|
|
|
thumb_func_start sub_8095100
|
|
sub_8095100:
|
|
ldr r0, _08095104
|
|
bx lr
|
|
.align 2, 0
|
|
_08095104: .4byte gUnknown_2039288
|
|
thumb_func_end sub_8095100
|
|
|
|
thumb_func_start sub_8095108
|
|
sub_8095108:
|
|
ldr r0, _0809510C
|
|
bx lr
|
|
.align 2, 0
|
|
_0809510C: .4byte gUnknown_20392E8
|
|
thumb_func_end sub_8095108
|
|
|
|
thumb_func_start sub_8095110
|
|
sub_8095110:
|
|
ldr r0, _08095114
|
|
bx lr
|
|
.align 2, 0
|
|
_08095114: .4byte gUnknown_20393C0
|
|
thumb_func_end sub_8095110
|
|
|
|
thumb_func_start sub_8095118
|
|
sub_8095118:
|
|
push {r4,lr}
|
|
ldr r4, _0809517C
|
|
ldr r0, [r4]
|
|
movs r2, 0xC0
|
|
lsls r2, 3
|
|
movs r1, 0
|
|
bl MemoryFill8
|
|
ldr r0, _08095180
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
movs r2, 0x5C
|
|
bl MemoryFill8
|
|
movs r2, 0
|
|
movs r1, 0
|
|
movs r3, 0x1F
|
|
_0809513A:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x22
|
|
strb r2, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x2D
|
|
strb r2, [r0]
|
|
adds r1, 0x30
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _0809513A
|
|
ldr r2, _08095184
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r3, 0
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_08095166:
|
|
ldr r0, [r2]
|
|
lsls r1, r3, 2
|
|
adds r0, 0x4
|
|
adds r0, r1
|
|
str r4, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x1F
|
|
ble _08095166
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809517C: .4byte gUnknown_203B480
|
|
_08095180: .4byte gUnknown_203B484
|
|
_08095184: .4byte gUnknown_203B48C
|
|
thumb_func_end sub_8095118
|
|
|
|
thumb_func_start nullsub_206
|
|
nullsub_206:
|
|
bx lr
|
|
thumb_func_end nullsub_206
|
|
|
|
thumb_func_start nullsub_207
|
|
nullsub_207:
|
|
bx lr
|
|
thumb_func_end nullsub_207
|
|
|
|
thumb_func_start sub_8095190
|
|
sub_8095190:
|
|
push {lr}
|
|
movs r2, 0x2
|
|
ldr r0, _080951A8
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x60
|
|
_0809519C:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _080951AC
|
|
adds r0, r2, 0
|
|
b _080951B8
|
|
.align 2, 0
|
|
_080951A8: .4byte gUnknown_203B480
|
|
_080951AC:
|
|
adds r1, 0x30
|
|
adds r2, 0x1
|
|
cmp r2, 0x1F
|
|
ble _0809519C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080951B8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095190
|
|
|
|
thumb_func_start sub_80951BC
|
|
sub_80951BC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8095190
|
|
adds r2, r0, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
beq _080951F4
|
|
ldr r0, _080951F0
|
|
ldr r1, [r0]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
movs r0, 0x1
|
|
b _080951F6
|
|
.align 2, 0
|
|
_080951F0: .4byte gUnknown_203B480
|
|
_080951F4:
|
|
movs r0, 0
|
|
_080951F6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80951BC
|
|
|
|
thumb_func_start sub_80951FC
|
|
sub_80951FC:
|
|
push {r4,r5,lr}
|
|
ldr r1, _08095224
|
|
ldr r1, [r1]
|
|
adds r1, 0x30
|
|
ldrb r2, [r1]
|
|
negs r3, r2
|
|
orrs r3, r2
|
|
lsrs r3, 31
|
|
ldm r0!, {r2,r4,r5}
|
|
stm r1!, {r2,r4,r5}
|
|
ldm r0!, {r2,r4,r5}
|
|
stm r1!, {r2,r4,r5}
|
|
ldm r0!, {r2,r4,r5}
|
|
stm r1!, {r2,r4,r5}
|
|
ldm r0!, {r2,r4,r5}
|
|
stm r1!, {r2,r4,r5}
|
|
adds r0, r3, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08095224: .4byte gUnknown_203B480
|
|
thumb_func_end sub_80951FC
|
|
|
|
thumb_func_start sub_8095228
|
|
sub_8095228:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _0809523C
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 4
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_0809523C: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095228
|
|
|
|
thumb_func_start sub_8095240
|
|
sub_8095240:
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r5, _08095270
|
|
lsls r4, r0, 1
|
|
adds r4, r0
|
|
lsls r4, 4
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
movs r2, 0x30
|
|
bl MemoryFill8
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r5]
|
|
adds r0, r4
|
|
adds r0, 0x22
|
|
strb r1, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095270: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095240
|
|
|
|
thumb_func_start sub_8095274
|
|
sub_8095274:
|
|
push {lr}
|
|
ldr r1, _08095294
|
|
ldr r3, [r1]
|
|
adds r2, r3, 0
|
|
ldm r2!, {r1}
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
str r0, [r2]
|
|
ldr r0, [r3]
|
|
movs r1, 0
|
|
cmp r0, 0x1E
|
|
bgt _0809528E
|
|
adds r1, r0, 0x1
|
|
_0809528E:
|
|
str r1, [r3]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095294: .4byte gUnknown_203B48C
|
|
thumb_func_end sub_8095274
|
|
|
|
thumb_func_start sub_8095298
|
|
sub_8095298:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r0, _080952B0
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0x4
|
|
_080952A4:
|
|
ldr r0, [r1]
|
|
cmp r0, r3
|
|
bne _080952B4
|
|
movs r0, 0x1
|
|
b _080952BE
|
|
.align 2, 0
|
|
_080952B0: .4byte gUnknown_203B48C
|
|
_080952B4:
|
|
adds r1, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0x1F
|
|
ble _080952A4
|
|
movs r0, 0
|
|
_080952BE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095298
|
|
|
|
thumb_func_start sub_80952C4
|
|
sub_80952C4:
|
|
push {r4,lr}
|
|
ldr r2, _080952EC
|
|
ldr r1, [r2]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
movs r3, 0
|
|
adds r4, r2, 0
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
_080952D6:
|
|
ldr r0, [r4]
|
|
lsls r1, r3, 2
|
|
adds r0, 0x4
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x1F
|
|
ble _080952D6
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080952EC: .4byte gUnknown_203B48C
|
|
thumb_func_end sub_80952C4
|
|
|
|
thumb_func_start sub_80952F0
|
|
sub_80952F0:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r3, 0
|
|
ldr r0, _08095310
|
|
ldr r2, [r0]
|
|
_080952FE:
|
|
ldrb r0, [r2]
|
|
cmp r0, r1
|
|
bne _08095314
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r4
|
|
bne _08095314
|
|
movs r0, 0x1
|
|
b _0809531E
|
|
.align 2, 0
|
|
_08095310: .4byte gUnknown_203B480
|
|
_08095314:
|
|
adds r2, 0x30
|
|
adds r3, 0x1
|
|
cmp r3, 0x1F
|
|
ble _080952FE
|
|
movs r0, 0
|
|
_0809531E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80952F0
|
|
|
|
thumb_func_start sub_8095324
|
|
sub_8095324:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
movs r3, 0
|
|
ldr r0, _0809534C
|
|
ldr r1, [r0]
|
|
movs r2, 0x1F
|
|
_08095332:
|
|
ldrb r0, [r1]
|
|
cmp r0, r4
|
|
bne _0809533A
|
|
adds r3, 0x1
|
|
_0809533A:
|
|
adds r1, 0x30
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08095332
|
|
adds r0, r3, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809534C: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095324
|
|
|
|
thumb_func_start sub_8095350
|
|
sub_8095350:
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r0, _08095370
|
|
ldr r1, [r0]
|
|
movs r2, 0x1F
|
|
_0809535A:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08095362
|
|
adds r3, 0x1
|
|
_08095362:
|
|
adds r1, 0x30
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _0809535A
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08095370: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095350
|
|
|
|
thumb_func_start sub_8095374
|
|
sub_8095374:
|
|
push {lr}
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
movs r2, 0
|
|
ldr r0, _08095398
|
|
ldr r1, [r0]
|
|
_08095380:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _08095388
|
|
adds r3, r2, 0
|
|
_08095388:
|
|
adds r1, 0x30
|
|
adds r2, 0x1
|
|
cmp r2, 0x1F
|
|
ble _08095380
|
|
adds r0, r3, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08095398: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095374
|
|
|
|
thumb_func_start sub_809539C
|
|
sub_809539C:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r3, 0
|
|
ldr r0, _080953BC
|
|
ldr r2, [r0]
|
|
_080953AA:
|
|
ldrb r0, [r2]
|
|
cmp r0, r1
|
|
bne _080953C0
|
|
ldr r0, [r2, 0x10]
|
|
cmp r0, r4
|
|
bne _080953C0
|
|
adds r0, r3, 0
|
|
b _080953CC
|
|
.align 2, 0
|
|
_080953BC: .4byte gUnknown_203B480
|
|
_080953C0:
|
|
adds r2, 0x30
|
|
adds r3, 0x1
|
|
cmp r3, 0x1F
|
|
ble _080953AA
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080953CC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809539C
|
|
|
|
thumb_func_start sub_80953D4
|
|
sub_80953D4:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r2, 0
|
|
ldr r0, _080953EC
|
|
ldr r1, [r0]
|
|
_080953E0:
|
|
ldrb r0, [r1]
|
|
cmp r0, r3
|
|
bne _080953F0
|
|
adds r0, r2, 0
|
|
b _080953FC
|
|
.align 2, 0
|
|
_080953EC: .4byte gUnknown_203B480
|
|
_080953F0:
|
|
adds r1, 0x30
|
|
adds r2, 0x1
|
|
cmp r2, 0x1F
|
|
ble _080953E0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_080953FC:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80953D4
|
|
|
|
thumb_func_start sub_8095400
|
|
sub_8095400:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
movs r2, 0
|
|
ldr r0, _08095418
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0x10
|
|
_0809540E:
|
|
ldr r0, [r1]
|
|
cmp r0, r3
|
|
bne _0809541C
|
|
adds r0, r2, 0
|
|
b _08095428
|
|
.align 2, 0
|
|
_08095418: .4byte gUnknown_203B480
|
|
_0809541C:
|
|
adds r1, 0x30
|
|
adds r2, 0x1
|
|
cmp r2, 0x1F
|
|
ble _0809540E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_08095428:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095400
|
|
|
|
thumb_func_start sub_809542C
|
|
sub_809542C:
|
|
push {r4,lr}
|
|
sub sp, 0x14
|
|
ldr r4, _08095490
|
|
ldr r2, [r4]
|
|
movs r1, 0x1
|
|
strb r1, [r2]
|
|
ldr r2, [r4]
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
str r0, [r2, 0x4]
|
|
str r1, [r2, 0x8]
|
|
bl Random
|
|
bl sub_8094D28
|
|
bl sub_8094E4C
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x10]
|
|
bl sub_808D33C
|
|
ldr r1, [r4]
|
|
ldrh r0, [r0, 0x8]
|
|
strh r0, [r1, 0xC]
|
|
bl sub_808D33C
|
|
adds r1, r0, 0
|
|
mov r0, sp
|
|
bl sub_808DA34
|
|
ldr r0, [r4]
|
|
adds r0, 0x14
|
|
mov r1, sp
|
|
bl sub_80922F4
|
|
bl sub_8011C34
|
|
ldr r1, [r4]
|
|
str r0, [r1, 0x24]
|
|
ldrb r0, [r1, 0x4]
|
|
bl GetUnk3
|
|
ldr r1, [r4]
|
|
adds r1, 0x2C
|
|
strb r0, [r1]
|
|
add sp, 0x14
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08095490: .4byte gUnknown_203B480
|
|
thumb_func_end sub_809542C
|
|
|
|
thumb_func_start sub_8095494
|
|
sub_8095494:
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
ldr r2, _080954B0
|
|
ldr r3, [r2]
|
|
lsls r2, r1, 1
|
|
adds r2, r1
|
|
lsls r2, 4
|
|
adds r3, r2
|
|
ldr r1, [r3, 0x4]
|
|
ldr r2, [r3, 0x8]
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_080954B0: .4byte gUnknown_203B480
|
|
thumb_func_end sub_8095494
|
|
|
|
thumb_func_start sub_80954B4
|
|
sub_80954B4:
|
|
push {lr}
|
|
movs r0, 0x3
|
|
bl sub_8095324
|
|
cmp r0, 0
|
|
bne _080954C4
|
|
movs r0, 0
|
|
b _080954C6
|
|
_080954C4:
|
|
movs r0, 0x1
|
|
_080954C6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80954B4
|
|
|
|
thumb_func_start sub_80954CC
|
|
sub_80954CC:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
ldr r6, _08095618
|
|
movs r5, 0
|
|
movs r4, 0x1F
|
|
_080954E2:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8095774
|
|
adds r5, 0x30
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080954E2
|
|
ldr r4, _0809561C
|
|
ldr r1, [r4]
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
ldr r5, [r4]
|
|
adds r4, r5, 0x4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x58
|
|
bl memset
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_8094924
|
|
adds r1, r5, 0x6
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
adds r1, r5, 0x7
|
|
mov r0, sp
|
|
movs r2, 0x7
|
|
bl sub_8094924
|
|
adds r4, 0x4
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_8090314
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
mov r0, sp
|
|
bl sub_808F410
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
mov r0, sp
|
|
bl sub_808F410
|
|
adds r1, r5, 0
|
|
adds r1, 0x18
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x1A
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x1D
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x1E
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x1F
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x20
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x2C
|
|
mov r0, sp
|
|
bl sub_8091DC0
|
|
adds r1, r5, 0
|
|
adds r1, 0x30
|
|
mov r0, sp
|
|
bl sub_8094128
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
mov r0, sp
|
|
movs r2, 0x50
|
|
bl sub_8094924
|
|
ldr r4, _08095620
|
|
ldr r1, [r4]
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
adds r6, r4, 0
|
|
movs r5, 0x4
|
|
movs r4, 0x1F
|
|
_080955F4:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080955F4
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08095618: .4byte gUnknown_203B480
|
|
_0809561C: .4byte gUnknown_203B484
|
|
_08095620: .4byte gUnknown_203B48C
|
|
thumb_func_end sub_80954CC
|
|
|
|
thumb_func_start sub_8095624
|
|
sub_8095624:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
ldr r6, _08095768
|
|
movs r5, 0
|
|
movs r4, 0x1F
|
|
_0809563A:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8095824
|
|
adds r5, 0x30
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _0809563A
|
|
ldr r4, _0809576C
|
|
ldr r1, [r4]
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
ldr r5, [r4]
|
|
adds r4, r5, 0x4
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0x2
|
|
bl sub_809488C
|
|
adds r1, r5, 0x6
|
|
mov r0, sp
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r1, r5, 0x7
|
|
mov r0, sp
|
|
movs r2, 0x7
|
|
bl sub_809488C
|
|
adds r4, 0x4
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80902F4
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
mov r0, sp
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
mov r0, sp
|
|
bl sub_808F41C
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
mov r0, sp
|
|
bl sub_808F41C
|
|
adds r1, r5, 0
|
|
adds r1, 0x18
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x1A
|
|
mov r0, sp
|
|
movs r2, 0xA
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x1C
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x1D
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x1E
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x1F
|
|
mov r0, sp
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x20
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
mov r0, sp
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x2C
|
|
mov r0, sp
|
|
bl sub_8091DE0
|
|
adds r1, r5, 0
|
|
adds r1, 0x30
|
|
mov r0, sp
|
|
bl sub_8094108
|
|
adds r1, r5, 0
|
|
adds r1, 0x50
|
|
mov r0, sp
|
|
movs r2, 0x50
|
|
bl sub_809488C
|
|
ldr r4, _08095770
|
|
ldr r1, [r4]
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
adds r6, r4, 0
|
|
movs r5, 0x4
|
|
movs r4, 0x1F
|
|
_08095742:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
adds r5, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08095742
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08095768: .4byte gUnknown_203B480
|
|
_0809576C: .4byte gUnknown_203B484
|
|
_08095770: .4byte gUnknown_203B48C
|
|
thumb_func_end sub_8095624
|
|
|
|
thumb_func_start sub_8095774
|
|
sub_8095774:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_8090314
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x14
|
|
adds r0, r4, 0
|
|
movs r2, 0x50
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x20
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x21
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x22
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x24
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x28
|
|
adds r0, r4, 0
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x2C
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
mov r0, sp
|
|
ldrb r1, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
adds r1, r5, 0
|
|
adds r1, 0x2D
|
|
strb r0, [r1]
|
|
add sp, 0x4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8095774
|
|
|
|
thumb_func_start sub_8095824
|
|
sub_8095824:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x4
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
movs r1, 0xFF
|
|
mov r0, sp
|
|
strb r1, [r0]
|
|
mov r6, sp
|
|
adds r6, 0x1
|
|
movs r0, 0
|
|
strb r0, [r6]
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r4, 0x4
|
|
adds r0, r5, 0
|
|
bl sub_80902F4
|
|
adds r1, r4, 0
|
|
adds r1, 0x8
|
|
adds r0, r5, 0
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0xC
|
|
adds r0, r5, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x10
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x14
|
|
adds r0, r5, 0
|
|
movs r2, 0x50
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x20
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x22
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x24
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x28
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
adds r1, r4, 0
|
|
adds r1, 0x2C
|
|
adds r0, r5, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r0, r4, 0
|
|
adds r0, 0x2D
|
|
ldrb r0, [r0]
|
|
mov r1, sp
|
|
cmp r0, 0
|
|
bne _080958D2
|
|
adds r1, r6, 0
|
|
_080958D2:
|
|
adds r0, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
add sp, 0x4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8095824
|
|
|
|
thumb_func_start sub_80958E4
|
|
sub_80958E4:
|
|
str r1, [r0]
|
|
bx lr
|
|
thumb_func_end sub_80958E4
|
|
|
|
thumb_func_start sub_80958E8
|
|
sub_80958E8:
|
|
ldr r1, _080958F0
|
|
ldr r0, _080958F4
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080958F0: .4byte gUnknown_203B490
|
|
_080958F4: .4byte gUnknown_2039448
|
|
thumb_func_end sub_80958E8
|
|
|
|
thumb_func_start sub_80958F8
|
|
sub_80958F8:
|
|
ldr r0, _080958FC
|
|
bx lr
|
|
.align 2, 0
|
|
_080958FC: .4byte gUnknown_2039448
|
|
thumb_func_end sub_80958F8
|
|
|
|
thumb_func_start sub_8095900
|
|
sub_8095900:
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
_08095904:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096040
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08095904
|
|
movs r4, 0
|
|
_08095914:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_80965B8
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08095914
|
|
movs r4, 0
|
|
_08095924:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096C3C
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08095924
|
|
movs r4, 0
|
|
ldr r3, _080959B8
|
|
movs r2, 0xBC
|
|
lsls r2, 2
|
|
movs r1, 0
|
|
_0809593C:
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _0809593C
|
|
ldr r4, _080959B8
|
|
ldr r0, [r4]
|
|
movs r1, 0xCA
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
movs r7, 0xC8
|
|
lsls r7, 1
|
|
adds r0, r7
|
|
movs r1, 0x28
|
|
bl MemoryClear8
|
|
ldr r0, [r4]
|
|
movs r1, 0xDC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
movs r1, 0x78
|
|
bl MemoryClear8
|
|
adds r3, r4, 0
|
|
movs r5, 0
|
|
movs r2, 0
|
|
movs r6, 0x8C
|
|
lsls r6, 2
|
|
movs r4, 0xF
|
|
_08095980:
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
adds r0, r6
|
|
movs r1, 0x63
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
ldr r7, _080959BC
|
|
adds r0, r7
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r1, [r3]
|
|
adds r7, 0x3
|
|
adds r0, r1, r7
|
|
adds r0, r2
|
|
str r5, [r0]
|
|
adds r7, 0x4
|
|
adds r0, r1, r7
|
|
adds r0, r2
|
|
str r5, [r0]
|
|
adds r2, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08095980
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080959B8: .4byte gUnknown_203B490
|
|
_080959BC: .4byte 0x00000231
|
|
thumb_func_end sub_8095900
|
|
|
|
thumb_func_start sub_80959C0
|
|
sub_80959C0:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x5
|
|
bne _080959D6
|
|
adds r0, r1, 0
|
|
bl sub_80959DC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _080959D8
|
|
_080959D6:
|
|
movs r0, 0
|
|
_080959D8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80959C0
|
|
|
|
thumb_func_start sub_80959DC
|
|
sub_80959DC:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5, 0x1]
|
|
cmp r0, 0x4
|
|
bls _080959E8
|
|
b _08095B16
|
|
_080959E8:
|
|
cmp r0, 0x4
|
|
bne _080959F8
|
|
ldrb r0, [r5, 0x4]
|
|
bl GetMaxItemCount
|
|
cmp r0, 0
|
|
bne _080959F8
|
|
b _08095B16
|
|
_080959F8:
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x9
|
|
bls _08095A00
|
|
b _08095B16
|
|
_08095A00:
|
|
ldrb r0, [r5, 0x4]
|
|
bl sub_809095C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095A0E
|
|
b _08095B16
|
|
_08095A0E:
|
|
ldrb r4, [r5, 0x5]
|
|
ldrb r0, [r5, 0x4]
|
|
bl sub_8090298
|
|
cmp r4, r0
|
|
bge _08095B16
|
|
adds r4, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_809017C
|
|
lsls r0, 24
|
|
adds r6, r4, 0
|
|
cmp r0, 0
|
|
bne _08095B16
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0
|
|
beq _08095B16
|
|
ldr r4, _08095B1C
|
|
cmp r0, r4
|
|
bgt _08095B16
|
|
movs r2, 0xC
|
|
ldrsh r0, [r5, r2]
|
|
bl sub_808E770
|
|
movs r2, 0xC
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bne _08095B16
|
|
movs r1, 0xC
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_803C0DC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095B16
|
|
movs r2, 0xE
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, r4
|
|
bgt _08095B16
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_808E770
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r1, r0
|
|
bne _08095B16
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_803C0DC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095B16
|
|
ldrb r0, [r5, 0x1]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08095A9C
|
|
movs r2, 0xE
|
|
ldrsh r1, [r5, r2]
|
|
movs r2, 0xC
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _08095B16
|
|
_08095A9C:
|
|
ldrb r0, [r5, 0x10]
|
|
bl sub_8092040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095B16
|
|
ldrb r0, [r5, 0x10]
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095B16
|
|
ldrb r0, [r5, 0x10]
|
|
bl sub_8091524
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095B16
|
|
ldrb r0, [r5, 0x1]
|
|
cmp r0, 0x3
|
|
bne _08095AD4
|
|
ldrb r0, [r5, 0x4]
|
|
ldrb r1, [r5, 0x10]
|
|
bl sub_8091E60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095B16
|
|
_08095AD4:
|
|
ldrb r0, [r5, 0x11]
|
|
cmp r0, 0x4
|
|
beq _08095B16
|
|
cmp r0, 0xA
|
|
beq _08095B16
|
|
cmp r0, 0xA
|
|
bhi _08095B16
|
|
ldrb r0, [r5, 0x12]
|
|
bl sub_8092040
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095B16
|
|
ldrb r0, [r5, 0x13]
|
|
cmp r0, 0x39
|
|
bhi _08095B16
|
|
ldrb r0, [r5, 0x11]
|
|
cmp r0, 0x9
|
|
bne _08095B20
|
|
ldrb r0, [r5, 0x13]
|
|
bl sub_8092534
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08095B16
|
|
ldrb r1, [r5, 0x1]
|
|
adds r0, r6, 0
|
|
bl sub_803C1D0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095B20
|
|
_08095B16:
|
|
movs r0, 0
|
|
b _08095B22
|
|
.align 2, 0
|
|
_08095B1C: .4byte 0x000001a7
|
|
_08095B20:
|
|
movs r0, 0x1
|
|
_08095B22:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80959DC
|
|
|
|
thumb_func_start sub_8095B28
|
|
sub_8095B28:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r4, _08095B44
|
|
add sp, r4
|
|
adds r4, r0, 0
|
|
bl sub_8095CE0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095B48
|
|
movs r0, 0
|
|
b _08095CCC
|
|
.align 2, 0
|
|
_08095B44: .4byte 0xfffffcb0
|
|
_08095B48:
|
|
movs r0, 0x5
|
|
strb r0, [r4]
|
|
movs r0, 0x8
|
|
bl RandomCapped
|
|
ldr r1, _08095BC8
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
strb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
bne _08095B6C
|
|
bl sub_8092178
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08095B6C
|
|
strb r0, [r4, 0x1]
|
|
_08095B6C:
|
|
movs r0, 0
|
|
strb r0, [r4, 0x2]
|
|
bl Random
|
|
ldr r1, _08095BCC
|
|
ands r1, r0
|
|
str r1, [r4, 0x8]
|
|
movs r7, 0
|
|
movs r5, 0x1
|
|
adds r0, r4, 0x4
|
|
mov r8, r0
|
|
movs r1, 0x12
|
|
adds r1, r4
|
|
mov r9, r1
|
|
mov r6, sp
|
|
_08095B8A:
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
bl sub_803C110
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095B9E
|
|
strh r5, [r6]
|
|
adds r6, 0x2
|
|
adds r7, 0x1
|
|
_08095B9E:
|
|
adds r5, 0x1
|
|
ldr r0, _08095BD0
|
|
cmp r5, r0
|
|
ble _08095B8A
|
|
cmp r7, 0
|
|
beq _08095BD4
|
|
adds r0, r7, 0
|
|
bl RandomCapped
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
strh r0, [r4, 0xC]
|
|
adds r0, r7, 0
|
|
bl RandomCapped
|
|
lsls r0, 1
|
|
add r0, sp
|
|
ldrh r0, [r0]
|
|
b _08095BDC
|
|
.align 2, 0
|
|
_08095BC8: .4byte gUnknown_8109984
|
|
_08095BCC: .4byte 0x00ffffff
|
|
_08095BD0: .4byte 0x000001a7
|
|
_08095BD4:
|
|
movs r0, 0x10
|
|
strh r0, [r4, 0xC]
|
|
movs r0, 0x91
|
|
lsls r0, 1
|
|
_08095BDC:
|
|
strh r0, [r4, 0xE]
|
|
ldrb r0, [r4, 0x1]
|
|
subs r0, 0x1
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x1
|
|
bls _08095BEE
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
_08095BEE:
|
|
ldrb r0, [r4, 0x4]
|
|
bl sub_8095F28
|
|
strb r0, [r4, 0x10]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0
|
|
bne _08095C10
|
|
strb r0, [r4, 0x1]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
adds r2, r4, 0
|
|
adds r2, 0x10
|
|
mov r0, r8
|
|
movs r1, 0
|
|
bl sub_803C37C
|
|
_08095C10:
|
|
ldrb r0, [r4, 0x4]
|
|
bl GetMaxItemCount
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bne _08095C28
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x4
|
|
bne _08095C28
|
|
strb r1, [r4, 0x1]
|
|
ldrh r0, [r4, 0xC]
|
|
strh r0, [r4, 0xE]
|
|
_08095C28:
|
|
ldrb r1, [r4, 0x1]
|
|
mov r0, r8
|
|
mov r2, r9
|
|
bl sub_803C37C
|
|
ldrb r0, [r4, 0x10]
|
|
ldrb r1, [r4, 0x12]
|
|
cmp r0, r1
|
|
beq _08095C28
|
|
movs r0, 0
|
|
strb r0, [r4, 0x13]
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
beq _08095C90
|
|
cmp r0, 0x2
|
|
bgt _08095C4E
|
|
cmp r0, 0x1
|
|
beq _08095C6C
|
|
b _08095CCA
|
|
_08095C4E:
|
|
cmp r0, 0x4
|
|
bgt _08095CCA
|
|
bl Random
|
|
adds r1, r0, 0
|
|
movs r0, 0xE0
|
|
lsls r0, 3
|
|
ands r1, r0
|
|
movs r0, 0xC0
|
|
lsls r0, 2
|
|
cmp r1, r0
|
|
beq _08095CC4
|
|
cmp r1, r0
|
|
bgt _08095CB4
|
|
b _08095CAA
|
|
_08095C6C:
|
|
bl Random
|
|
adds r1, r0, 0
|
|
movs r0, 0x70
|
|
ands r1, r0
|
|
cmp r1, 0x10
|
|
beq _08095C80
|
|
cmp r1, 0x30
|
|
beq _08095C88
|
|
b _08095CCA
|
|
_08095C80:
|
|
adds r0, r4, 0
|
|
bl sub_803C3E0
|
|
b _08095CCA
|
|
_08095C88:
|
|
adds r0, r4, 0
|
|
bl sub_803C45C
|
|
b _08095CCA
|
|
_08095C90:
|
|
bl Random
|
|
movs r1, 0xC0
|
|
lsls r1, 6
|
|
ands r1, r0
|
|
movs r0, 0x80
|
|
lsls r0, 5
|
|
cmp r1, r0
|
|
bne _08095CCA
|
|
adds r0, r4, 0
|
|
bl sub_803C4F0
|
|
b _08095CCA
|
|
_08095CAA:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _08095CBC
|
|
b _08095CCA
|
|
_08095CB4:
|
|
movs r0, 0xC0
|
|
lsls r0, 3
|
|
cmp r1, r0
|
|
bne _08095CCA
|
|
_08095CBC:
|
|
adds r0, r4, 0
|
|
bl sub_803C580
|
|
b _08095CCA
|
|
_08095CC4:
|
|
adds r0, r4, 0
|
|
bl sub_803C610
|
|
_08095CCA:
|
|
movs r0, 0x1
|
|
_08095CCC:
|
|
movs r3, 0xD4
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095B28
|
|
|
|
thumb_func_start sub_8095CE0
|
|
sub_8095CE0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x60
|
|
str r0, [sp, 0x44]
|
|
mov r0, sp
|
|
bl sub_80A29B0
|
|
str r0, [sp, 0x4C]
|
|
cmp r0, 0
|
|
bne _08095D0C
|
|
mov r0, sp
|
|
add r1, sp, 0x4C
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
mov r1, sp
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0x1]
|
|
movs r2, 0x2
|
|
str r2, [sp, 0x4C]
|
|
_08095D0C:
|
|
ldr r0, [sp, 0x4C]
|
|
bl RandomCapped
|
|
mov r9, r0
|
|
str r0, [sp, 0x48]
|
|
mov r1, sp
|
|
adds r1, 0x40
|
|
str r1, [sp, 0x5C]
|
|
_08095D1C:
|
|
mov r0, sp
|
|
add r0, r9
|
|
ldrb r7, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_8090298
|
|
str r0, [sp, 0x58]
|
|
lsrs r0, 31
|
|
ldr r2, [sp, 0x58]
|
|
adds r0, r2, r0
|
|
asrs r0, 1
|
|
str r0, [sp, 0x54]
|
|
adds r1, r2, 0
|
|
bl RandomRange
|
|
adds r4, r0, 0
|
|
str r4, [sp, 0x50]
|
|
_08095D3E:
|
|
movs r0, 0x1
|
|
mov r8, r0
|
|
ldr r1, _08095DF4
|
|
ldr r0, [sp, 0x40]
|
|
ands r0, r1
|
|
orrs r0, r7
|
|
lsls r2, r4, 24
|
|
lsrs r2, 16
|
|
ldr r1, _08095DF8
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x40]
|
|
ldr r0, [sp, 0x5C]
|
|
bl sub_809017C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095D66
|
|
movs r1, 0
|
|
mov r8, r1
|
|
_08095D66:
|
|
ldr r2, _08095DFC
|
|
mov r10, r2
|
|
movs r6, 0
|
|
movs r5, 0x3
|
|
_08095D6E:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8095E38
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095D88
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_08095D88:
|
|
adds r6, 0x14
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08095D6E
|
|
ldr r0, _08095DFC
|
|
mov r10, r0
|
|
movs r6, 0x50
|
|
movs r5, 0x7
|
|
_08095D98:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8095E38
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095DB2
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_08095DB2:
|
|
adds r6, 0x14
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08095D98
|
|
ldr r0, _08095DFC
|
|
mov r10, r0
|
|
movs r6, 0xF0
|
|
movs r5, 0x7
|
|
_08095DC2:
|
|
mov r1, r10
|
|
ldr r0, [r1]
|
|
adds r0, r6
|
|
adds r1, r7, 0
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_8095E38
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095DDC
|
|
movs r2, 0
|
|
mov r8, r2
|
|
_08095DDC:
|
|
adds r6, 0x14
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08095DC2
|
|
mov r0, r8
|
|
cmp r0, 0
|
|
beq _08095E00
|
|
ldr r1, [sp, 0x44]
|
|
strb r7, [r1, 0x4]
|
|
strb r4, [r1, 0x5]
|
|
movs r0, 0x1
|
|
b _08095E28
|
|
.align 2, 0
|
|
_08095DF4: .4byte 0xffffff00
|
|
_08095DF8: .4byte 0xffff00ff
|
|
_08095DFC: .4byte gUnknown_203B490
|
|
_08095E00:
|
|
adds r4, 0x1
|
|
ldr r2, [sp, 0x58]
|
|
cmp r4, r2
|
|
blt _08095E0A
|
|
ldr r4, [sp, 0x54]
|
|
_08095E0A:
|
|
ldr r0, [sp, 0x50]
|
|
cmp r4, r0
|
|
bne _08095D3E
|
|
movs r1, 0x1
|
|
add r9, r1
|
|
ldr r2, [sp, 0x4C]
|
|
cmp r9, r2
|
|
bne _08095E1E
|
|
movs r0, 0
|
|
mov r9, r0
|
|
_08095E1E:
|
|
ldr r1, [sp, 0x48]
|
|
cmp r9, r1
|
|
beq _08095E26
|
|
b _08095D1C
|
|
_08095E26:
|
|
movs r0, 0
|
|
_08095E28:
|
|
add sp, 0x60
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095CE0
|
|
|
|
thumb_func_start sub_8095E38
|
|
sub_8095E38:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _08095E6E
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
bne _08095E5E
|
|
cmp r3, 0x1
|
|
bne _08095E5E
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, r1
|
|
bne _08095E6E
|
|
movs r0, 0x1
|
|
b _08095E70
|
|
_08095E5E:
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, r1
|
|
bne _08095E6E
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, r2
|
|
bne _08095E6E
|
|
movs r0, 0x1
|
|
b _08095E70
|
|
_08095E6E:
|
|
movs r0, 0
|
|
_08095E70:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095E38
|
|
|
|
thumb_func_start sub_8095E78
|
|
sub_8095E78:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x3C
|
|
movs r6, 0
|
|
movs r5, 0x1
|
|
_08095E84:
|
|
ldr r0, _08095F04
|
|
ldr r0, [r0]
|
|
adds r0, r5
|
|
ldrb r0, [r0]
|
|
adds r1, r5, 0x1
|
|
mov r8, r1
|
|
cmp r0, 0
|
|
bne _08095EF6
|
|
lsls r0, r5, 24
|
|
lsrs r0, 24
|
|
bl sub_8092534
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x2
|
|
bne _08095EF6
|
|
movs r4, 0
|
|
ldr r0, _08095F08
|
|
ldr r1, [r0]
|
|
movs r3, 0x3
|
|
_08095EAC:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _08095EBA
|
|
ldrb r0, [r1, 0x11]
|
|
cmp r0, 0x9
|
|
bne _08095EBA
|
|
movs r4, 0x1
|
|
_08095EBA:
|
|
adds r1, 0x14
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08095EAC
|
|
ldr r0, _08095F08
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xF0
|
|
adds r1, r0, 0
|
|
movs r3, 0x7
|
|
_08095ECE:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08095EE0
|
|
ldr r7, _08095F0C
|
|
adds r0, r1, r7
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x9
|
|
bne _08095EE0
|
|
movs r4, 0x1
|
|
_08095EE0:
|
|
adds r2, 0x14
|
|
adds r1, 0x14
|
|
subs r3, 0x1
|
|
cmp r3, 0
|
|
bge _08095ECE
|
|
cmp r4, 0
|
|
bne _08095EF6
|
|
mov r1, sp
|
|
adds r0, r1, r6
|
|
strb r5, [r0]
|
|
adds r6, 0x1
|
|
_08095EF6:
|
|
mov r5, r8
|
|
cmp r5, 0x39
|
|
ble _08095E84
|
|
cmp r6, 0
|
|
bne _08095F10
|
|
movs r0, 0
|
|
b _08095F1A
|
|
.align 2, 0
|
|
_08095F04: .4byte gUnknown_203B468
|
|
_08095F08: .4byte gUnknown_203B490
|
|
_08095F0C: .4byte 0x00000101
|
|
_08095F10:
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
_08095F1A:
|
|
add sp, 0x3C
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095E78
|
|
|
|
thumb_func_start sub_8095F28
|
|
sub_8095F28:
|
|
push {r4-r7,lr}
|
|
sub sp, 0xF0
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r6, 0
|
|
movs r5, 0x1
|
|
_08095F34:
|
|
lsls r4, r5, 24
|
|
cmp r7, 0x63
|
|
beq _08095F48
|
|
lsrs r1, r4, 24
|
|
adds r0, r7, 0
|
|
bl sub_8091E60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095F6A
|
|
_08095F48:
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl sub_8090A60
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095F6A
|
|
adds r0, r4, 0
|
|
bl sub_8091524
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095F6A
|
|
mov r1, sp
|
|
adds r0, r1, r6
|
|
strb r5, [r0]
|
|
adds r6, 0x1
|
|
_08095F6A:
|
|
adds r5, 0x1
|
|
cmp r5, 0xEF
|
|
ble _08095F34
|
|
cmp r6, 0
|
|
beq _08095F80
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
add r0, sp
|
|
ldrb r0, [r0]
|
|
b _08095F82
|
|
_08095F80:
|
|
movs r0, 0
|
|
_08095F82:
|
|
add sp, 0xF0
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095F28
|
|
|
|
thumb_func_start sub_8095F8C
|
|
sub_8095F8C:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_08095F92:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096000
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095FA2
|
|
adds r5, 0x1
|
|
_08095FA2:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _08095F92
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095F8C
|
|
|
|
thumb_func_start sub_8095FB0
|
|
sub_8095FB0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
ldr r5, _08095FD4
|
|
movs r2, 0
|
|
_08095FBA:
|
|
ldr r0, [r5]
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08095FD8
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
movs r0, 0
|
|
b _08095FE2
|
|
.align 2, 0
|
|
_08095FD4: .4byte gUnknown_203B490
|
|
_08095FD8:
|
|
adds r2, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _08095FBA
|
|
movs r0, 0x1
|
|
_08095FE2:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8095FB0
|
|
|
|
thumb_func_start sub_8095FE8
|
|
sub_8095FE8:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08095FFC
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08095FFC: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8095FE8
|
|
|
|
thumb_func_start sub_8096000
|
|
sub_8096000:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0809601C
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08096020
|
|
movs r0, 0
|
|
b _08096022
|
|
.align 2, 0
|
|
_0809601C: .4byte gUnknown_203B490
|
|
_08096020:
|
|
movs r0, 0x1
|
|
_08096022:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096000
|
|
|
|
thumb_func_start sub_8096028
|
|
sub_8096028:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0809602C:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096040
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0809602C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8096028
|
|
|
|
thumb_func_start sub_8096040
|
|
sub_8096040:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08096074
|
|
ldr r1, [r3]
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
movs r4, 0
|
|
strb r4, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
movs r1, 0x63
|
|
strb r1, [r0, 0x4]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
strb r4, [r0, 0x5]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
movs r1, 0x5
|
|
strb r1, [r0, 0x11]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096074: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096040
|
|
|
|
thumb_func_start sub_8096078
|
|
sub_8096078:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r2, 0
|
|
movs r3, 0
|
|
ldr r0, _08096090
|
|
mov r12, r0
|
|
mov r8, r3
|
|
movs r4, 0
|
|
mov r9, r4
|
|
b _080960B6
|
|
.align 2, 0
|
|
_08096090: .4byte gUnknown_203B490
|
|
_08096094:
|
|
cmp r2, r3
|
|
ble _080960AA
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
mov r5, r8
|
|
adds r1, r0, r5
|
|
adds r0, r4
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r6,r7}
|
|
stm r1!, {r6,r7}
|
|
_080960AA:
|
|
adds r4, 0x14
|
|
movs r0, 0x14
|
|
add r9, r0
|
|
adds r2, 0x1
|
|
add r8, r0
|
|
adds r3, 0x1
|
|
_080960B6:
|
|
cmp r2, 0x3
|
|
bgt _080960E2
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080960E2
|
|
ldr r6, _08096110
|
|
mov r1, r9
|
|
_080960CA:
|
|
adds r1, 0x14
|
|
adds r4, 0x14
|
|
movs r5, 0x14
|
|
add r9, r5
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
bgt _080960E2
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080960CA
|
|
_080960E2:
|
|
cmp r2, 0x4
|
|
bne _08096094
|
|
cmp r3, 0x3
|
|
bgt _08096102
|
|
ldr r4, _08096110
|
|
movs r2, 0
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r1, r0, 2
|
|
_080960F4:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
adds r1, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x3
|
|
ble _080960F4
|
|
_08096102:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096110: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096078
|
|
|
|
thumb_func_start sub_8096114
|
|
sub_8096114:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
movs r1, 0
|
|
_08096122:
|
|
adds r0, r1, 0x1
|
|
mov r10, r0
|
|
mov r8, r10
|
|
cmp r0, 0x3
|
|
bgt _08096198
|
|
ldr r2, _080961B0
|
|
mov r9, r2
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r12, r0
|
|
mov r3, r10
|
|
lsls r0, r3, 2
|
|
add r0, r10
|
|
lsls r4, r0, 2
|
|
_08096140:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
adds r3, r1, r4
|
|
ldrb r0, [r3]
|
|
cmp r0, 0
|
|
beq _0809618C
|
|
mov r6, r12
|
|
adds r2, r1, r6
|
|
ldrb r1, [r2, 0x4]
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r1, r0
|
|
bhi _08096164
|
|
cmp r1, r0
|
|
bne _0809618C
|
|
ldrb r0, [r2, 0x5]
|
|
ldrb r7, [r3, 0x5]
|
|
cmp r0, r7
|
|
bls _0809618C
|
|
_08096164:
|
|
mov r1, sp
|
|
adds r0, r2, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r5,r6}
|
|
stm r1!, {r5,r6}
|
|
adds r1, r2, 0
|
|
adds r0, r3, 0
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r5,r6}
|
|
stm r1!, {r5,r6}
|
|
mov r7, r9
|
|
ldr r1, [r7]
|
|
adds r1, r4
|
|
mov r0, sp
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r6,r7}
|
|
stm r1!, {r6,r7}
|
|
_0809618C:
|
|
adds r4, 0x14
|
|
movs r0, 0x1
|
|
add r8, r0
|
|
mov r1, r8
|
|
cmp r1, 0x3
|
|
ble _08096140
|
|
_08096198:
|
|
mov r1, r10
|
|
cmp r1, 0x2
|
|
ble _08096122
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080961B0: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096114
|
|
|
|
thumb_func_start sub_80961B4
|
|
sub_80961B4:
|
|
push {lr}
|
|
bl sub_8096E2C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080961CE
|
|
ldr r0, _080961D4
|
|
ldr r0, [r0]
|
|
movs r1, 0xCA
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
_080961CE:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080961D4: .4byte gUnknown_203B490
|
|
thumb_func_end sub_80961B4
|
|
|
|
thumb_func_start sub_80961D8
|
|
sub_80961D8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r7, 0
|
|
bl sub_8095F8C
|
|
adds r6, r0, 0
|
|
movs r1, 0x4
|
|
bl RandomRange
|
|
mov r8, r0
|
|
cmp r6, 0x3
|
|
bgt _08096202
|
|
ldr r4, _08096208
|
|
ldr r0, [r4]
|
|
movs r2, 0xCA
|
|
lsls r2, 2
|
|
adds r1, r0, r2
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _0809620C
|
|
_08096202:
|
|
movs r0, 0
|
|
b _080963A8
|
|
.align 2, 0
|
|
_08096208: .4byte gUnknown_203B490
|
|
_0809620C:
|
|
strb r7, [r1]
|
|
movs r5, 0x38
|
|
movs r0, 0xA
|
|
movs r1, 0x31
|
|
movs r2, 0x1
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809623A
|
|
ldr r0, [r4]
|
|
ldr r1, _08096328
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809623A
|
|
movs r0, 0x35
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809623A
|
|
movs r5, 0x35
|
|
_0809623A:
|
|
movs r0, 0xF
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809629C
|
|
ldr r0, _0809632C
|
|
ldr r0, [r0]
|
|
movs r2, 0xC9
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08096264
|
|
movs r0, 0x34
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08096264
|
|
movs r5, 0x34
|
|
_08096264:
|
|
ldr r0, _0809632C
|
|
ldr r0, [r0]
|
|
ldr r1, _08096330
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08096280
|
|
movs r0, 0x33
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08096280
|
|
movs r5, 0x33
|
|
_08096280:
|
|
ldr r0, _0809632C
|
|
ldr r0, [r0]
|
|
ldr r2, _08096334
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809629C
|
|
movs r0, 0x32
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809629C
|
|
movs r5, 0x32
|
|
_0809629C:
|
|
bl sub_8092178
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x6
|
|
bne _080962C4
|
|
ldr r0, _0809632C
|
|
ldr r0, [r0]
|
|
ldr r1, _08096338
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080962C4
|
|
movs r0, 0x36
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080962C4
|
|
movs r5, 0x36
|
|
_080962C4:
|
|
movs r0, 0x6
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080962EC
|
|
ldr r0, _0809632C
|
|
ldr r0, [r0]
|
|
ldr r2, _0809633C
|
|
adds r0, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080962EC
|
|
movs r0, 0x37
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080962EC
|
|
movs r5, 0x37
|
|
_080962EC:
|
|
cmp r5, 0x38
|
|
bne _08096310
|
|
cmp r6, r8
|
|
bgt _08096392
|
|
bl sub_8096E2C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r0, 0xE
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809630C
|
|
cmp r5, 0x2
|
|
bhi _0809638E
|
|
_0809630C:
|
|
cmp r5, 0x31
|
|
bhi _0809638E
|
|
_08096310:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl sub_8095FE8
|
|
adds r4, r0, 0
|
|
movs r0, 0x1
|
|
strb r0, [r4]
|
|
movs r0, 0x62
|
|
strb r0, [r4, 0x4]
|
|
strb r5, [r4, 0x5]
|
|
b _0809638A
|
|
.align 2, 0
|
|
_08096328: .4byte 0x00000325
|
|
_0809632C: .4byte gUnknown_203B490
|
|
_08096330: .4byte 0x00000323
|
|
_08096334: .4byte 0x00000322
|
|
_08096338: .4byte 0x00000326
|
|
_0809633C: .4byte 0x00000327
|
|
_08096340:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl sub_8095FE8
|
|
adds r4, r0, 0
|
|
bl sub_8095B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08096392
|
|
bl sub_8095E78
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
adds r0, r4, 0x4
|
|
ldrb r1, [r4, 0x1]
|
|
bl sub_803C1D0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809636C
|
|
movs r5, 0
|
|
_0809636C:
|
|
movs r0, 0x5
|
|
movs r1, 0xA
|
|
bl RandomRange
|
|
strb r0, [r4, 0x11]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x9
|
|
bne _0809638A
|
|
cmp r5, 0
|
|
bne _08096388
|
|
movs r0, 0x5
|
|
strb r0, [r4, 0x11]
|
|
b _0809638A
|
|
_08096388:
|
|
strb r5, [r4, 0x13]
|
|
_0809638A:
|
|
movs r7, 0x1
|
|
adds r6, 0x1
|
|
_0809638E:
|
|
cmp r6, r8
|
|
ble _08096340
|
|
_08096392:
|
|
bl sub_80963B4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809639E
|
|
movs r7, 0x1
|
|
_0809639E:
|
|
bl sub_8096078
|
|
bl sub_8096114
|
|
adds r0, r7, 0
|
|
_080963A8:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80961D8
|
|
|
|
thumb_func_start sub_80963B4
|
|
sub_80963B4:
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
bl sub_8096E2C
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
bl sub_8095F8C
|
|
adds r4, r0, 0
|
|
cmp r4, 0x3
|
|
ble _080963CE
|
|
movs r0, 0
|
|
b _080963F4
|
|
_080963CE:
|
|
movs r0, 0xE
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080963F2
|
|
cmp r5, 0x31
|
|
bhi _080963F2
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8095FE8
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r1, 0x62
|
|
strb r1, [r0, 0x4]
|
|
strb r5, [r0, 0x5]
|
|
movs r6, 0x1
|
|
_080963F2:
|
|
adds r0, r6, 0
|
|
_080963F4:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80963B4
|
|
|
|
thumb_func_start sub_80963FC
|
|
sub_80963FC:
|
|
push {r4-r6,lr}
|
|
movs r6, 0
|
|
_08096400:
|
|
lsls r0, r6, 24
|
|
lsrs r4, r0, 24
|
|
adds r0, r4, 0
|
|
bl sub_8095FE8
|
|
adds r5, r0, 0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x1
|
|
beq _08096418
|
|
adds r0, r4, 0
|
|
bl sub_8096040
|
|
_08096418:
|
|
adds r6, 0x1
|
|
cmp r6, 0x3
|
|
ble _08096400
|
|
bl sub_8096078
|
|
bl sub_8095F8C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8095FE8
|
|
adds r5, r0, 0
|
|
movs r0, 0
|
|
movs r4, 0x5
|
|
strb r4, [r5]
|
|
strb r0, [r5, 0x1]
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0x3
|
|
strb r0, [r5, 0x5]
|
|
bl Random
|
|
ldr r1, _08096484
|
|
ands r1, r0
|
|
str r1, [r5, 0x8]
|
|
movs r0, 0x10
|
|
strh r0, [r5, 0xC]
|
|
strh r0, [r5, 0xE]
|
|
ldrb r0, [r5, 0x4]
|
|
bl sub_8095F28
|
|
strb r0, [r5, 0x10]
|
|
strb r4, [r5, 0x11]
|
|
_0809645C:
|
|
ldrb r1, [r5, 0x1]
|
|
adds r0, r5, 0x4
|
|
adds r2, r5, 0
|
|
adds r2, 0x12
|
|
bl sub_803C37C
|
|
ldrb r0, [r5, 0x10]
|
|
ldrb r1, [r5, 0x12]
|
|
cmp r0, r1
|
|
beq _0809645C
|
|
movs r0, 0
|
|
strb r0, [r5, 0x13]
|
|
bl sub_8096078
|
|
bl sub_8096114
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096484: .4byte 0x00ffffff
|
|
thumb_func_end sub_80963FC
|
|
|
|
thumb_func_start sub_8096488
|
|
sub_8096488:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_0809648C:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096040
|
|
adds r4, 0x1
|
|
cmp r4, 0x3
|
|
ble _0809648C
|
|
movs r0, 0
|
|
bl sub_8095FE8
|
|
movs r2, 0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
movs r1, 0x62
|
|
strb r1, [r0, 0x4]
|
|
strb r2, [r0, 0x5]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8096488
|
|
|
|
thumb_func_start sub_80964B4
|
|
sub_80964B4:
|
|
push {lr}
|
|
ldr r0, _080964D4
|
|
ldr r0, [r0]
|
|
ldr r1, _080964D8
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080964DC
|
|
movs r0, 0x35
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080964DC
|
|
movs r0, 0
|
|
b _080964DE
|
|
.align 2, 0
|
|
_080964D4: .4byte gUnknown_203B490
|
|
_080964D8: .4byte 0x00000325
|
|
_080964DC:
|
|
movs r0, 0x1
|
|
_080964DE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80964B4
|
|
|
|
thumb_func_start sub_80964E4
|
|
sub_80964E4:
|
|
push {lr}
|
|
ldr r0, _08096504
|
|
ldr r0, [r0]
|
|
ldr r1, _08096508
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809650C
|
|
movs r0, 0x36
|
|
bl sub_8096E80
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809650C
|
|
movs r0, 0
|
|
b _0809650E
|
|
.align 2, 0
|
|
_08096504: .4byte gUnknown_203B490
|
|
_08096508: .4byte 0x00000326
|
|
_0809650C:
|
|
movs r0, 0x1
|
|
_0809650E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80964E4
|
|
|
|
thumb_func_start sub_8096514
|
|
sub_8096514:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_0809651A:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_809658C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809652A
|
|
adds r5, 0x1
|
|
_0809652A:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _0809651A
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096514
|
|
|
|
thumb_func_start sub_8096538
|
|
sub_8096538:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
ldr r5, _08096560
|
|
movs r2, 0
|
|
_08096542:
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0x50
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08096564
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
movs r0, 0
|
|
b _0809656E
|
|
.align 2, 0
|
|
_08096560: .4byte gUnknown_203B490
|
|
_08096564:
|
|
adds r2, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08096542
|
|
movs r0, 0x1
|
|
_0809656E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096538
|
|
|
|
thumb_func_start sub_8096574
|
|
sub_8096574:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08096588
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, 0x50
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08096588: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096574
|
|
|
|
thumb_func_start sub_809658C
|
|
sub_809658C:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _080965AC
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
adds r2, 0x50
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _080965B0
|
|
movs r0, 0
|
|
b _080965B2
|
|
.align 2, 0
|
|
_080965AC: .4byte gUnknown_203B490
|
|
_080965B0:
|
|
movs r0, 0x1
|
|
_080965B2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809658C
|
|
|
|
thumb_func_start sub_80965B8
|
|
sub_80965B8:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r4, _080965F0
|
|
ldr r1, [r4]
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r1, 0x50
|
|
movs r3, 0
|
|
strb r3, [r1]
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, 0x54
|
|
movs r1, 0x63
|
|
strb r1, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, 0x55
|
|
strb r3, [r0]
|
|
ldr r0, [r4]
|
|
adds r0, r2
|
|
adds r0, 0x61
|
|
strb r3, [r0]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080965F0: .4byte gUnknown_203B490
|
|
thumb_func_end sub_80965B8
|
|
|
|
thumb_func_start sub_80965F4
|
|
sub_80965F4:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r2, 0
|
|
movs r3, 0
|
|
ldr r0, _0809660C
|
|
mov r12, r0
|
|
mov r8, r3
|
|
movs r4, 0
|
|
mov r9, r4
|
|
b _08096636
|
|
.align 2, 0
|
|
_0809660C: .4byte gUnknown_203B490
|
|
_08096610:
|
|
cmp r2, r3
|
|
ble _0809662A
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
mov r5, r8
|
|
adds r1, r0, r5
|
|
adds r0, r4
|
|
adds r1, 0x50
|
|
adds r0, 0x50
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r6,r7}
|
|
stm r1!, {r6,r7}
|
|
_0809662A:
|
|
adds r4, 0x14
|
|
movs r0, 0x14
|
|
add r9, r0
|
|
adds r2, 0x1
|
|
add r8, r0
|
|
adds r3, 0x1
|
|
_08096636:
|
|
cmp r2, 0x7
|
|
bgt _08096666
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
adds r0, 0x50
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08096666
|
|
ldr r6, _08096694
|
|
mov r1, r9
|
|
_0809664C:
|
|
adds r1, 0x14
|
|
adds r4, 0x14
|
|
movs r5, 0x14
|
|
add r9, r5
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
bgt _08096666
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
adds r0, 0x50
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809664C
|
|
_08096666:
|
|
cmp r2, 0x8
|
|
bne _08096610
|
|
cmp r3, 0x7
|
|
bgt _08096688
|
|
ldr r4, _08096694
|
|
movs r2, 0
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r1, r0, 2
|
|
_08096678:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, 0x50
|
|
strb r2, [r0]
|
|
adds r1, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08096678
|
|
_08096688:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096694: .4byte gUnknown_203B490
|
|
thumb_func_end sub_80965F4
|
|
|
|
thumb_func_start sub_8096698
|
|
sub_8096698:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x14
|
|
movs r1, 0
|
|
_080966A6:
|
|
adds r6, r1, 0x1
|
|
mov r10, r6
|
|
cmp r6, 0x7
|
|
bgt _08096730
|
|
ldr r0, _08096748
|
|
mov r8, r0
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r9, r0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r4, r0, 2
|
|
_080966C0:
|
|
mov r2, r8
|
|
ldr r1, [r2]
|
|
adds r3, r1, r4
|
|
adds r5, r3, 0
|
|
adds r5, 0x50
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08096724
|
|
add r1, r9
|
|
mov r12, r1
|
|
mov r0, r12
|
|
adds r0, 0x54
|
|
adds r1, r3, 0
|
|
adds r1, 0x54
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
bhi _080966F6
|
|
cmp r2, r0
|
|
bne _08096724
|
|
mov r0, r12
|
|
adds r0, 0x55
|
|
adds r1, 0x1
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _08096724
|
|
_080966F6:
|
|
mov r1, sp
|
|
mov r0, r12
|
|
adds r0, 0x50
|
|
ldm r0!, {r2,r3,r7}
|
|
stm r1!, {r2,r3,r7}
|
|
ldm r0!, {r3,r7}
|
|
stm r1!, {r3,r7}
|
|
mov r1, r12
|
|
adds r1, 0x50
|
|
adds r0, r5, 0
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r7}
|
|
stm r1!, {r2,r7}
|
|
mov r3, r8
|
|
ldr r1, [r3]
|
|
adds r1, r4
|
|
adds r1, 0x50
|
|
mov r0, sp
|
|
ldm r0!, {r2,r5,r7}
|
|
stm r1!, {r2,r5,r7}
|
|
ldm r0!, {r3,r5}
|
|
stm r1!, {r3,r5}
|
|
_08096724:
|
|
adds r4, 0x14
|
|
movs r7, 0x1
|
|
add r10, r7
|
|
mov r0, r10
|
|
cmp r0, 0x7
|
|
ble _080966C0
|
|
_08096730:
|
|
adds r1, r6, 0
|
|
cmp r1, 0x6
|
|
ble _080966A6
|
|
add sp, 0x14
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096748: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096698
|
|
|
|
thumb_func_start sub_809674C
|
|
sub_809674C:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
movs r0, 0x4
|
|
movs r1, 0x8
|
|
bl RandomRange
|
|
mov r8, r0
|
|
ldr r3, _08096864
|
|
movs r2, 0
|
|
movs r1, 0
|
|
movs r7, 0x7
|
|
_08096764:
|
|
ldr r0, [r3]
|
|
adds r0, r1
|
|
adds r0, 0x50
|
|
strb r2, [r0]
|
|
adds r1, 0x14
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _08096764
|
|
movs r7, 0
|
|
movs r0, 0xE
|
|
bl sub_8097318
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080967C0
|
|
movs r0, 0
|
|
bl sub_8096574
|
|
adds r5, r0, 0
|
|
movs r4, 0x2
|
|
strb r4, [r5]
|
|
movs r0, 0x6
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x1
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0x2A
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xA
|
|
strb r0, [r5, 0x5]
|
|
bl Random
|
|
ldr r1, _08096868
|
|
ands r1, r0
|
|
str r1, [r5, 0x8]
|
|
movs r1, 0
|
|
movs r0, 0xC2
|
|
lsls r0, 1
|
|
strh r0, [r5, 0xC]
|
|
movs r0, 0x38
|
|
strh r0, [r5, 0xE]
|
|
strb r1, [r5, 0x10]
|
|
strb r4, [r5, 0x11]
|
|
movs r0, 0x3A
|
|
strb r0, [r5, 0x12]
|
|
strb r1, [r5, 0x13]
|
|
movs r7, 0x1
|
|
_080967C0:
|
|
movs r0, 0xF
|
|
bl sub_8097318
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809680A
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
bl sub_8096574
|
|
adds r5, r0, 0
|
|
movs r0, 0x3
|
|
strb r0, [r5]
|
|
movs r0, 0x6
|
|
strb r0, [r5, 0x1]
|
|
movs r4, 0x2
|
|
strb r4, [r5, 0x2]
|
|
movs r0, 0x35
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0xF
|
|
strb r0, [r5, 0x5]
|
|
bl Random
|
|
ldr r1, _08096868
|
|
ands r1, r0
|
|
str r1, [r5, 0x8]
|
|
movs r1, 0
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
strh r0, [r5, 0xC]
|
|
strh r0, [r5, 0xE]
|
|
strb r1, [r5, 0x10]
|
|
strb r4, [r5, 0x11]
|
|
movs r0, 0x3A
|
|
strb r0, [r5, 0x12]
|
|
strb r1, [r5, 0x13]
|
|
adds r7, 0x1
|
|
_0809680A:
|
|
movs r0, 0x1C
|
|
bl sub_8097318
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08096854
|
|
lsls r0, r7, 24
|
|
lsrs r0, 24
|
|
bl sub_8096574
|
|
adds r5, r0, 0
|
|
movs r0, 0x4
|
|
strb r0, [r5]
|
|
movs r0, 0x6
|
|
strb r0, [r5, 0x1]
|
|
movs r0, 0x3
|
|
strb r0, [r5, 0x2]
|
|
movs r0, 0x1A
|
|
strb r0, [r5, 0x4]
|
|
movs r0, 0x14
|
|
strb r0, [r5, 0x5]
|
|
bl Random
|
|
ldr r1, _08096868
|
|
ands r1, r0
|
|
str r1, [r5, 0x8]
|
|
movs r1, 0
|
|
ldr r0, _0809686C
|
|
strh r0, [r5, 0xC]
|
|
strh r0, [r5, 0xE]
|
|
strb r1, [r5, 0x10]
|
|
movs r0, 0x2
|
|
strb r0, [r5, 0x11]
|
|
movs r0, 0x3A
|
|
strb r0, [r5, 0x12]
|
|
strb r1, [r5, 0x13]
|
|
adds r7, 0x1
|
|
_08096854:
|
|
lsls r0, r7, 2
|
|
adds r0, r7
|
|
lsls r0, 2
|
|
adds r5, r0, 0
|
|
adds r5, 0x50
|
|
adds r4, r0, 0
|
|
b _08096886
|
|
.align 2, 0
|
|
_08096864: .4byte gUnknown_203B490
|
|
_08096868: .4byte 0x00ffffff
|
|
_0809686C: .4byte 0x0000014d
|
|
_08096870:
|
|
movs r0, 0
|
|
movs r1, 0x4
|
|
bl RandomRange
|
|
ldr r1, [r6]
|
|
adds r1, r4
|
|
adds r1, 0x61
|
|
strb r0, [r1]
|
|
adds r5, 0x14
|
|
adds r4, 0x14
|
|
adds r7, 0x1
|
|
_08096886:
|
|
cmp r7, r8
|
|
bgt _0809689A
|
|
ldr r6, _080968AC
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
bl sub_8095B28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08096870
|
|
_0809689A:
|
|
bl sub_80965F4
|
|
bl sub_8096698
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080968AC: .4byte gUnknown_203B490
|
|
thumb_func_end sub_809674C
|
|
|
|
thumb_func_start sub_80968B0
|
|
sub_80968B0:
|
|
push {r4,r5,lr}
|
|
adds r3, r0, 0
|
|
movs r4, 0
|
|
ldr r0, _08096928
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xF0
|
|
_080968BE:
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _0809692C
|
|
ldrb r0, [r3, 0x1]
|
|
ldrb r1, [r2, 0x1]
|
|
cmp r0, r1
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x2]
|
|
ldrb r5, [r2, 0x2]
|
|
cmp r0, r5
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x4]
|
|
ldrb r1, [r2, 0x4]
|
|
cmp r0, r1
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x5]
|
|
ldrb r5, [r2, 0x5]
|
|
cmp r0, r5
|
|
bne _0809692C
|
|
ldr r1, [r3, 0x8]
|
|
ldr r0, [r2, 0x8]
|
|
cmp r1, r0
|
|
bne _0809692C
|
|
movs r0, 0xC
|
|
ldrsh r1, [r3, r0]
|
|
movs r5, 0xC
|
|
ldrsh r0, [r2, r5]
|
|
cmp r1, r0
|
|
bne _0809692C
|
|
movs r0, 0xE
|
|
ldrsh r1, [r3, r0]
|
|
movs r5, 0xE
|
|
ldrsh r0, [r2, r5]
|
|
cmp r1, r0
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x10]
|
|
ldrb r1, [r2, 0x10]
|
|
cmp r0, r1
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x11]
|
|
ldrb r5, [r2, 0x11]
|
|
cmp r0, r5
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x12]
|
|
ldrb r1, [r2, 0x12]
|
|
cmp r0, r1
|
|
bne _0809692C
|
|
ldrb r0, [r3, 0x13]
|
|
ldrb r5, [r2, 0x13]
|
|
cmp r0, r5
|
|
bne _0809692C
|
|
movs r0, 0x1
|
|
b _08096936
|
|
.align 2, 0
|
|
_08096928: .4byte gUnknown_203B490
|
|
_0809692C:
|
|
adds r2, 0x14
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080968BE
|
|
movs r0, 0
|
|
_08096936:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80968B0
|
|
|
|
thumb_func_start sub_809693C
|
|
sub_809693C:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
adds r4, r0, 0
|
|
ldrb r0, [r4, 0x4]
|
|
mov r9, r0
|
|
ldrb r0, [r4, 0x5]
|
|
mov r8, r0
|
|
movs r7, 0
|
|
adds r0, r4, 0
|
|
bl sub_80959C0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08096962
|
|
b _0809699A
|
|
_0809695E:
|
|
movs r0, 0x1
|
|
b _0809699C
|
|
_08096962:
|
|
ldrb r0, [r4, 0x1]
|
|
cmp r0, 0x2
|
|
bne _0809696A
|
|
movs r7, 0x1
|
|
_0809696A:
|
|
movs r6, 0
|
|
movs r5, 0xF0
|
|
movs r4, 0
|
|
_08096970:
|
|
ldr r0, _080969A8
|
|
ldr r1, [r0]
|
|
adds r0, r1, r4
|
|
adds r0, 0xF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x6
|
|
bne _08096990
|
|
adds r0, r1, r5
|
|
mov r1, r9
|
|
mov r2, r8
|
|
adds r3, r7, 0
|
|
bl sub_8095E38
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809695E
|
|
_08096990:
|
|
adds r5, 0x14
|
|
adds r4, 0x14
|
|
adds r6, 0x1
|
|
cmp r6, 0x7
|
|
ble _08096970
|
|
_0809699A:
|
|
movs r0, 0
|
|
_0809699C:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080969A8: .4byte gUnknown_203B490
|
|
thumb_func_end sub_809693C
|
|
|
|
thumb_func_start sub_80969AC
|
|
sub_80969AC:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_080969B2:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096ACC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080969C2
|
|
adds r5, 0x1
|
|
_080969C2:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080969B2
|
|
adds r0, r5, 0
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80969AC
|
|
|
|
thumb_func_start sub_80969D0
|
|
sub_80969D0:
|
|
push {r4-r6,lr}
|
|
lsls r0, 24
|
|
lsrs r6, r0, 24
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_080969DA:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, r6
|
|
bne _080969FA
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
beq _080969F8
|
|
cmp r0, 0x8
|
|
beq _080969F8
|
|
cmp r0, 0x9
|
|
bne _080969FA
|
|
_080969F8:
|
|
adds r5, 0x1
|
|
_080969FA:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _080969DA
|
|
adds r0, r5, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80969D0
|
|
|
|
thumb_func_start sub_8096A08
|
|
sub_8096A08:
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r6, r1, 0
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
_08096A14:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r2, r0, 0
|
|
ldrb r0, [r2, 0x4]
|
|
cmp r0, r5
|
|
bne _08096A68
|
|
ldrb r0, [r2]
|
|
cmp r0, 0x6
|
|
bne _08096A68
|
|
ldrb r0, [r2, 0x1]
|
|
cmp r0, 0x2
|
|
bne _08096A68
|
|
ldr r1, _08096A60
|
|
ldr r0, [sp, 0x8]
|
|
ands r0, r1
|
|
movs r1, 0x4A
|
|
orrs r0, r1
|
|
ldr r1, _08096A64
|
|
ands r0, r1
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
orrs r0, r1
|
|
str r0, [sp, 0x8]
|
|
movs r0, 0xC
|
|
ldrsh r1, [r2, r0]
|
|
add r0, sp, 0x8
|
|
str r0, [sp]
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
adds r0, r6, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_808CFD0
|
|
movs r0, 0x1
|
|
b _08096A70
|
|
.align 2, 0
|
|
_08096A60: .4byte 0xffffff00
|
|
_08096A64: .4byte 0xffff00ff
|
|
_08096A68:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08096A14
|
|
movs r0, 0
|
|
_08096A70:
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096A08
|
|
|
|
thumb_func_start sub_8096A78
|
|
sub_8096A78:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
movs r3, 0
|
|
ldr r5, _08096AA0
|
|
movs r2, 0
|
|
_08096A82:
|
|
ldr r0, [r5]
|
|
adds r0, r2
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08096AA4
|
|
adds r0, r4, 0
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldm r0!, {r2,r3}
|
|
stm r1!, {r2,r3}
|
|
movs r0, 0
|
|
b _08096AAE
|
|
.align 2, 0
|
|
_08096AA0: .4byte gUnknown_203B490
|
|
_08096AA4:
|
|
adds r2, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08096A82
|
|
movs r0, 0x1
|
|
_08096AAE:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096A78
|
|
|
|
thumb_func_start sub_8096AB4
|
|
sub_8096AB4:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r2, _08096AC8
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, 0xF0
|
|
ldr r0, [r2]
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08096AC8: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096AB4
|
|
|
|
thumb_func_start sub_8096ACC
|
|
sub_8096ACC:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08096AEC
|
|
ldr r2, [r1]
|
|
lsls r1, r0, 2
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r2, r1
|
|
adds r2, 0xF0
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08096AF0
|
|
movs r0, 0
|
|
b _08096AF2
|
|
.align 2, 0
|
|
_08096AEC: .4byte gUnknown_203B490
|
|
_08096AF0:
|
|
movs r0, 0x1
|
|
_08096AF2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096ACC
|
|
|
|
thumb_func_start sub_8096AF8
|
|
sub_8096AF8:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r0, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_8096AB4
|
|
adds r3, r0, 0
|
|
movs r1, 0
|
|
strb r1, [r5]
|
|
ldrh r0, [r3, 0xC]
|
|
strh r0, [r5, 0x2]
|
|
strh r1, [r5, 0x4]
|
|
ldrb r0, [r3, 0x4]
|
|
cmp r0, r4
|
|
bne _08096B92
|
|
ldrb r0, [r3, 0x1]
|
|
cmp r0, 0x4
|
|
bhi _08096B92
|
|
lsls r0, 2
|
|
ldr r1, _08096B30
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08096B30: .4byte _08096B34
|
|
.align 2, 0
|
|
_08096B34:
|
|
.4byte _08096B78
|
|
.4byte _08096B84
|
|
.4byte _08096B84
|
|
.4byte _08096B48
|
|
.4byte _08096B78
|
|
_08096B48:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x6
|
|
bne _08096B92
|
|
ldr r0, _08096B74
|
|
movs r6, 0x1
|
|
ldr r2, [r0]
|
|
movs r4, 0x13
|
|
_08096B56:
|
|
ldrb r1, [r2]
|
|
adds r0, r6, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08096B6A
|
|
ldrb r0, [r2, 0x2]
|
|
ldrb r1, [r3, 0x10]
|
|
cmp r0, r1
|
|
bne _08096B6A
|
|
strb r6, [r5]
|
|
_08096B6A:
|
|
adds r2, 0x4
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08096B56
|
|
b _08096B92
|
|
.align 2, 0
|
|
_08096B74: .4byte gUnknown_203B460
|
|
_08096B78:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x9
|
|
bne _08096B92
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
b _08096B92
|
|
_08096B84:
|
|
ldrb r0, [r3]
|
|
cmp r0, 0x9
|
|
bne _08096B92
|
|
movs r0, 0x1
|
|
strb r0, [r5]
|
|
ldrh r0, [r3, 0xE]
|
|
strh r0, [r5, 0x4]
|
|
_08096B92:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8096AF8
|
|
|
|
thumb_func_start sub_8096B98
|
|
sub_8096B98:
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
movs r4, 0
|
|
_08096BA0:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096AB4
|
|
adds r1, r0, 0
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x6
|
|
bne _08096BC2
|
|
ldrb r0, [r1, 0x1]
|
|
cmp r0, 0x2
|
|
bne _08096BC2
|
|
ldrb r0, [r1, 0x4]
|
|
cmp r0, r5
|
|
bne _08096BC2
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
b _08096BCA
|
|
_08096BC2:
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08096BA0
|
|
movs r0, 0
|
|
_08096BCA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096B98
|
|
|
|
thumb_func_start sub_8096BD0
|
|
sub_8096BD0:
|
|
push {r4,r5,lr}
|
|
ldr r0, _08096C04
|
|
ldr r0, [r0]
|
|
adds r5, r0, 0
|
|
adds r5, 0xF0
|
|
movs r4, 0
|
|
_08096BDC:
|
|
ldrb r0, [r5]
|
|
cmp r0, 0x9
|
|
bgt _08096BEE
|
|
cmp r0, 0x7
|
|
blt _08096BEE
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8096C3C
|
|
_08096BEE:
|
|
adds r5, 0x14
|
|
adds r4, 0x1
|
|
cmp r4, 0x7
|
|
ble _08096BDC
|
|
bl sub_8096C80
|
|
bl sub_8096D24
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096C04: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096BD0
|
|
|
|
thumb_func_start sub_8096C08
|
|
sub_8096C08:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _08096C28
|
|
ldr r0, [r0]
|
|
adds r1, r0, 0
|
|
adds r1, 0xF0
|
|
movs r2, 0
|
|
_08096C16:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x4
|
|
bls _08096C2C
|
|
ldrb r0, [r1, 0x2]
|
|
cmp r0, 0x4
|
|
bne _08096C2C
|
|
strb r2, [r3]
|
|
movs r0, 0x1
|
|
b _08096C36
|
|
.align 2, 0
|
|
_08096C28: .4byte gUnknown_203B490
|
|
_08096C2C:
|
|
adds r1, 0x14
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
ble _08096C16
|
|
movs r0, 0
|
|
_08096C36:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096C08
|
|
|
|
thumb_func_start sub_8096C3C
|
|
sub_8096C3C:
|
|
push {r4,lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r3, _08096C78
|
|
ldr r1, [r3]
|
|
lsls r2, r0, 2
|
|
adds r2, r0
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r1, 0xF0
|
|
movs r4, 0
|
|
strb r4, [r1]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
adds r0, 0xF4
|
|
movs r1, 0x63
|
|
strb r1, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
adds r0, 0xF5
|
|
strb r4, [r0]
|
|
ldr r0, [r3]
|
|
adds r0, r2
|
|
ldr r2, _08096C7C
|
|
adds r1, r0, r2
|
|
movs r0, 0x5
|
|
strb r0, [r1]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096C78: .4byte gUnknown_203B490
|
|
_08096C7C: .4byte 0x00000101
|
|
thumb_func_end sub_8096C3C
|
|
|
|
thumb_func_start sub_8096C80
|
|
sub_8096C80:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
movs r2, 0
|
|
movs r3, 0
|
|
ldr r0, _08096C98
|
|
mov r12, r0
|
|
mov r8, r3
|
|
movs r4, 0
|
|
mov r9, r4
|
|
b _08096CC2
|
|
.align 2, 0
|
|
_08096C98: .4byte gUnknown_203B490
|
|
_08096C9C:
|
|
cmp r2, r3
|
|
ble _08096CB6
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
mov r5, r8
|
|
adds r1, r0, r5
|
|
adds r0, r4
|
|
adds r1, 0xF0
|
|
adds r0, 0xF0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldm r0!, {r6,r7}
|
|
stm r1!, {r6,r7}
|
|
_08096CB6:
|
|
adds r4, 0x14
|
|
movs r0, 0x14
|
|
add r9, r0
|
|
adds r2, 0x1
|
|
add r8, r0
|
|
adds r3, 0x1
|
|
_08096CC2:
|
|
cmp r2, 0x7
|
|
bgt _08096CF2
|
|
mov r1, r12
|
|
ldr r0, [r1]
|
|
adds r0, r4
|
|
adds r0, 0xF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08096CF2
|
|
ldr r6, _08096D20
|
|
mov r1, r9
|
|
_08096CD8:
|
|
adds r1, 0x14
|
|
adds r4, 0x14
|
|
movs r5, 0x14
|
|
add r9, r5
|
|
adds r2, 0x1
|
|
cmp r2, 0x7
|
|
bgt _08096CF2
|
|
ldr r0, [r6]
|
|
adds r0, r1
|
|
adds r0, 0xF0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08096CD8
|
|
_08096CF2:
|
|
cmp r2, 0x8
|
|
bne _08096C9C
|
|
cmp r3, 0x7
|
|
bgt _08096D14
|
|
ldr r4, _08096D20
|
|
movs r2, 0
|
|
lsls r0, r3, 2
|
|
adds r0, r3
|
|
lsls r1, r0, 2
|
|
_08096D04:
|
|
ldr r0, [r4]
|
|
adds r0, r1
|
|
adds r0, 0xF0
|
|
strb r2, [r0]
|
|
adds r1, 0x14
|
|
adds r3, 0x1
|
|
cmp r3, 0x7
|
|
ble _08096D04
|
|
_08096D14:
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096D20: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096C80
|
|
|
|
thumb_func_start sub_8096D24
|
|
sub_8096D24:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x18
|
|
movs r1, 0
|
|
_08096D32:
|
|
adds r6, r1, 0x1
|
|
mov r10, r6
|
|
cmp r6, 0x7
|
|
bgt _08096DBC
|
|
ldr r0, _08096DD4
|
|
mov r8, r0
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
mov r9, r0
|
|
lsls r0, r6, 2
|
|
adds r0, r6
|
|
lsls r4, r0, 2
|
|
_08096D4C:
|
|
mov r1, r8
|
|
ldr r2, [r1]
|
|
adds r3, r2, r4
|
|
adds r5, r3, 0
|
|
adds r5, 0xF0
|
|
str r5, [sp, 0x14]
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08096DB0
|
|
add r2, r9
|
|
mov r12, r2
|
|
mov r0, r12
|
|
adds r0, 0xF4
|
|
adds r1, r3, 0
|
|
adds r1, 0xF4
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r1]
|
|
cmp r2, r0
|
|
bhi _08096D84
|
|
cmp r2, r0
|
|
bne _08096DB0
|
|
mov r0, r12
|
|
adds r0, 0xF5
|
|
adds r1, 0x1
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bls _08096DB0
|
|
_08096D84:
|
|
mov r2, r12
|
|
adds r2, 0xF0
|
|
mov r1, sp
|
|
adds r0, r2, 0
|
|
ldm r0!, {r3,r5,r7}
|
|
stm r1!, {r3,r5,r7}
|
|
ldm r0!, {r3,r7}
|
|
stm r1!, {r3,r7}
|
|
ldr r0, [sp, 0x14]
|
|
ldm r0!, {r1,r5,r7}
|
|
stm r2!, {r1,r5,r7}
|
|
ldm r0!, {r3,r5}
|
|
stm r2!, {r3,r5}
|
|
mov r7, r8
|
|
ldr r1, [r7]
|
|
adds r1, r4
|
|
adds r1, 0xF0
|
|
mov r0, sp
|
|
ldm r0!, {r2,r3,r5}
|
|
stm r1!, {r2,r3,r5}
|
|
ldm r0!, {r2,r7}
|
|
stm r1!, {r2,r7}
|
|
_08096DB0:
|
|
adds r4, 0x14
|
|
movs r3, 0x1
|
|
add r10, r3
|
|
mov r5, r10
|
|
cmp r5, 0x7
|
|
ble _08096D4C
|
|
_08096DBC:
|
|
adds r1, r6, 0
|
|
cmp r1, 0x6
|
|
ble _08096D32
|
|
add sp, 0x18
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096DD4: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096D24
|
|
|
|
thumb_func_start sub_8096DD8
|
|
sub_8096DD8:
|
|
ldr r0, _08096DE4
|
|
ldr r0, [r0]
|
|
movs r1, 0xC8
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08096DE4: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096DD8
|
|
|
|
thumb_func_start sub_8096DE8
|
|
sub_8096DE8:
|
|
ldr r0, _08096DF4
|
|
ldr r0, [r0]
|
|
movs r1, 0xDC
|
|
lsls r1, 1
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_08096DF4: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096DE8
|
|
|
|
thumb_func_start sub_8096DF8
|
|
sub_8096DF8:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08096E10
|
|
ldr r1, [r1]
|
|
movs r2, 0xBC
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08096E10: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096DF8
|
|
|
|
thumb_func_start sub_8096E14
|
|
sub_8096E14:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _08096E28
|
|
ldr r1, [r1]
|
|
movs r2, 0xBC
|
|
lsls r2, 2
|
|
adds r1, r2
|
|
adds r1, r0
|
|
ldrb r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08096E28: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096E14
|
|
|
|
thumb_func_start sub_8096E2C
|
|
sub_8096E2C:
|
|
push {lr}
|
|
movs r3, 0
|
|
ldr r0, _08096E70
|
|
ldr r1, [r0]
|
|
movs r2, 0x3
|
|
_08096E36:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _08096E48
|
|
ldrb r0, [r1, 0x5]
|
|
cmp r3, r0
|
|
bgt _08096E48
|
|
cmp r0, 0x31
|
|
bhi _08096E48
|
|
adds r3, r0, 0x1
|
|
_08096E48:
|
|
adds r1, 0x14
|
|
subs r2, 0x1
|
|
cmp r2, 0
|
|
bge _08096E36
|
|
adds r2, r3, 0
|
|
cmp r2, 0x31
|
|
bgt _08096E7A
|
|
ldr r0, _08096E70
|
|
ldr r0, [r0]
|
|
movs r3, 0xBC
|
|
lsls r3, 2
|
|
adds r1, r0, r3
|
|
_08096E60:
|
|
adds r0, r1, r2
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08096E74
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
b _08096E7C
|
|
.align 2, 0
|
|
_08096E70: .4byte gUnknown_203B490
|
|
_08096E74:
|
|
adds r2, 0x1
|
|
cmp r2, 0x31
|
|
ble _08096E60
|
|
_08096E7A:
|
|
movs r0, 0x38
|
|
_08096E7C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096E2C
|
|
|
|
thumb_func_start sub_8096E80
|
|
sub_8096E80:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r3, r0, 24
|
|
movs r2, 0
|
|
ldr r0, _08096E9C
|
|
ldr r1, [r0]
|
|
_08096E8C:
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x1
|
|
bne _08096EA0
|
|
ldrb r0, [r1, 0x5]
|
|
cmp r3, r0
|
|
bne _08096EA0
|
|
movs r0, 0x1
|
|
b _08096EAA
|
|
.align 2, 0
|
|
_08096E9C: .4byte gUnknown_203B490
|
|
_08096EA0:
|
|
adds r1, 0x14
|
|
adds r2, 0x1
|
|
cmp r2, 0x3
|
|
ble _08096E8C
|
|
movs r0, 0
|
|
_08096EAA:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096E80
|
|
|
|
thumb_func_start sub_8096EB0
|
|
sub_8096EB0:
|
|
ldrb r1, [r0, 0x2]
|
|
ldrb r2, [r0, 0x1]
|
|
adds r1, r2
|
|
ldrb r3, [r0, 0x4]
|
|
adds r2, r1, r3
|
|
ldrb r1, [r0, 0x5]
|
|
adds r2, r1
|
|
ldr r1, [r0, 0x8]
|
|
lsls r1, 8
|
|
adds r2, r1
|
|
movs r3, 0xC
|
|
ldrsh r1, [r0, r3]
|
|
lsls r1, 12
|
|
adds r2, r1
|
|
movs r3, 0xE
|
|
ldrsh r1, [r0, r3]
|
|
lsls r1, 16
|
|
adds r2, r1
|
|
ldrb r1, [r0, 0x10]
|
|
lsls r1, 24
|
|
adds r1, r2, r1
|
|
ldrb r3, [r0, 0x11]
|
|
adds r2, r1, r3
|
|
ldrb r1, [r0, 0x12]
|
|
adds r1, r2, r1
|
|
ldrb r0, [r0, 0x13]
|
|
adds r2, r1, r0
|
|
adds r0, r2, 0
|
|
bx lr
|
|
thumb_func_end sub_8096EB0
|
|
|
|
thumb_func_start sub_8096EEC
|
|
sub_8096EEC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
mov r12, r0
|
|
movs r3, 0xF
|
|
ldr r5, _08096F4C
|
|
mov r8, r5
|
|
movs r4, 0x8C
|
|
lsls r4, 2
|
|
_08096EFE:
|
|
mov r0, r8
|
|
ldr r2, [r0]
|
|
lsls r1, r3, 1
|
|
adds r1, r3
|
|
lsls r1, 2
|
|
adds r1, r2, r1
|
|
subs r3, 0x1
|
|
lsls r0, r3, 1
|
|
adds r0, r3
|
|
lsls r0, 2
|
|
adds r2, r0
|
|
adds r1, r4
|
|
adds r2, r4
|
|
ldm r2!, {r0,r6,r7}
|
|
stm r1!, {r0,r6,r7}
|
|
cmp r3, 0
|
|
bgt _08096EFE
|
|
ldr r2, [r5]
|
|
movs r3, 0x8C
|
|
lsls r3, 2
|
|
adds r2, r3
|
|
mov r6, r12
|
|
ldr r0, [r6, 0x4]
|
|
ldr r1, [r6, 0x8]
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
mov r0, r12
|
|
bl sub_8096EB0
|
|
ldr r1, [r5]
|
|
movs r7, 0x8E
|
|
lsls r7, 2
|
|
adds r1, r7
|
|
str r0, [r1]
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08096F4C: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096EEC
|
|
|
|
thumb_func_start sub_8096F50
|
|
sub_8096F50:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
bl sub_8096EB0
|
|
mov r12, r0
|
|
movs r5, 0
|
|
ldr r0, _08096F8C
|
|
ldr r7, [r0]
|
|
ldrb r6, [r4, 0x4]
|
|
movs r3, 0
|
|
_08096F64:
|
|
movs r1, 0x8C
|
|
lsls r1, 2
|
|
adds r0, r3, r1
|
|
adds r2, r7, r0
|
|
ldrb r0, [r2]
|
|
cmp r0, r6
|
|
bne _08096F90
|
|
ldrb r0, [r2, 0x1]
|
|
ldrb r1, [r4, 0x5]
|
|
cmp r0, r1
|
|
bne _08096F90
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r4, 0x8]
|
|
cmp r1, r0
|
|
bne _08096F90
|
|
ldr r0, [r2, 0x8]
|
|
cmp r0, r12
|
|
bne _08096F90
|
|
movs r0, 0x1
|
|
b _08096F9A
|
|
.align 2, 0
|
|
_08096F8C: .4byte gUnknown_203B490
|
|
_08096F90:
|
|
adds r3, 0xC
|
|
adds r5, 0x1
|
|
cmp r5, 0xF
|
|
ble _08096F64
|
|
movs r0, 0
|
|
_08096F9A:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8096F50
|
|
|
|
thumb_func_start sub_8096FA0
|
|
sub_8096FA0:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
add r7, sp, 0x10
|
|
ldr r6, _08097020
|
|
movs r5, 0
|
|
movs r4, 0x3
|
|
_08096FB8:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_80971EC
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08096FB8
|
|
ldr r6, _08097020
|
|
movs r5, 0x50
|
|
movs r4, 0x7
|
|
_08096FD0:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_80971EC
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08096FD0
|
|
ldr r6, _08097020
|
|
movs r5, 0xF0
|
|
movs r4, 0x7
|
|
_08096FE8:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_80971EC
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08096FE8
|
|
movs r4, 0
|
|
movs r6, 0x1
|
|
ldr r5, _08097020
|
|
_08097000:
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r1, [sp, 0x10]
|
|
ands r1, r6
|
|
cmp r1, 0
|
|
beq _08097024
|
|
ldr r0, [r5]
|
|
movs r1, 0xBC
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
adds r0, r4
|
|
strb r6, [r0]
|
|
b _08097030
|
|
.align 2, 0
|
|
_08097020: .4byte gUnknown_203B490
|
|
_08097024:
|
|
ldr r0, [r5]
|
|
movs r2, 0xBC
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
adds r0, r4
|
|
strb r1, [r0]
|
|
_08097030:
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _08097000
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r1, [sp, 0x10]
|
|
movs r2, 0x1
|
|
ands r1, r2
|
|
cmp r1, 0
|
|
beq _0809705C
|
|
ldr r0, _08097058
|
|
ldr r0, [r0]
|
|
movs r1, 0xCA
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
strb r2, [r0]
|
|
b _08097068
|
|
.align 2, 0
|
|
_08097058: .4byte gUnknown_203B490
|
|
_0809705C:
|
|
ldr r0, _080970D4
|
|
ldr r0, [r0]
|
|
movs r2, 0xCA
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
strb r1, [r0]
|
|
_08097068:
|
|
ldr r4, _080970D4
|
|
ldr r1, [r4]
|
|
movs r0, 0xC8
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
mov r0, sp
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
movs r2, 0xDC
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
movs r2, 0xF0
|
|
lsls r2, 2
|
|
mov r0, sp
|
|
bl sub_8094924
|
|
adds r6, r4, 0
|
|
movs r5, 0x8C
|
|
lsls r5, 2
|
|
movs r4, 0xF
|
|
_08097096:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8090314
|
|
adds r5, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08097096
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080970D4: .4byte gUnknown_203B490
|
|
thumb_func_end sub_8096FA0
|
|
|
|
thumb_func_start sub_80970D8
|
|
sub_80970D8:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x14
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
add r7, sp, 0x10
|
|
ldr r6, _080971E8
|
|
movs r5, 0
|
|
movs r4, 0x3
|
|
_080970F0:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8097270
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080970F0
|
|
ldr r6, _080971E8
|
|
movs r5, 0x50
|
|
movs r4, 0x7
|
|
_08097108:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8097270
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08097108
|
|
ldr r6, _080971E8
|
|
movs r5, 0xF0
|
|
movs r4, 0x7
|
|
_08097120:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_8097270
|
|
adds r5, 0x14
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _08097120
|
|
movs r4, 0
|
|
_08097134:
|
|
ldr r0, _080971E8
|
|
ldr r0, [r0]
|
|
movs r1, 0xBC
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809714A
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809714A:
|
|
str r0, [sp, 0x10]
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r4, 0x1
|
|
cmp r4, 0x37
|
|
ble _08097134
|
|
ldr r0, _080971E8
|
|
ldr r0, [r0]
|
|
movs r1, 0xCA
|
|
lsls r1, 2
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08097170
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_08097170:
|
|
str r0, [sp, 0x10]
|
|
mov r0, sp
|
|
adds r1, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
ldr r4, _080971E8
|
|
ldr r1, [r4]
|
|
movs r0, 0xC8
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r2, 0xA0
|
|
lsls r2, 1
|
|
mov r0, sp
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
movs r0, 0xDC
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r2, 0xF0
|
|
lsls r2, 2
|
|
mov r0, sp
|
|
bl sub_809488C
|
|
adds r6, r4, 0
|
|
movs r5, 0x8C
|
|
lsls r5, 2
|
|
movs r4, 0xF
|
|
_080971AA:
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x8
|
|
mov r0, sp
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl sub_80902F4
|
|
adds r5, 0xC
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bge _080971AA
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x14
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080971E8: .4byte gUnknown_203B490
|
|
thumb_func_end sub_80970D8
|
|
|
|
thumb_func_start sub_80971EC
|
|
sub_80971EC:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
bl sub_8094924
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0xE
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x12
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x13
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
bl sub_8094924
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x18
|
|
bl sub_8094924
|
|
adds r1, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_8090314
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80971EC
|
|
|
|
thumb_func_start sub_8097270
|
|
sub_8097270:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
bl sub_809488C
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0xE
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x12
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x13
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
bl sub_809488C
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x18
|
|
bl sub_809488C
|
|
adds r1, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl sub_80902F4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8097270
|
|
|
|
thumb_func_start sub_80972F4
|
|
sub_80972F4:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x2B
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2D
|
|
bl sub_80015C0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80972F4
|
|
|
|
thumb_func_start nullsub_128
|
|
nullsub_128:
|
|
bx lr
|
|
thumb_func_end nullsub_128
|
|
|
|
thumb_func_start sub_8097318
|
|
sub_8097318:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _08097326
|
|
movs r0, 0
|
|
b _08097338
|
|
_08097326:
|
|
lsls r2, r0, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x2B
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
beq _08097338
|
|
movs r0, 0x1
|
|
_08097338:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097318
|
|
|
|
thumb_func_start sub_809733C
|
|
sub_809733C:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r4, 0xD
|
|
beq _0809737C
|
|
lsls r0, r4, 16
|
|
lsrs r5, r0, 16
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
adds r2, r5, 0
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
bne _0809737C
|
|
movs r0, 0
|
|
movs r1, 0x2B
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_800199C
|
|
cmp r6, 0
|
|
beq _0809737C
|
|
cmp r4, 0xE
|
|
blt _0809737C
|
|
cmp r4, 0xF
|
|
ble _08097378
|
|
cmp r4, 0x1C
|
|
bne _0809737C
|
|
_08097378:
|
|
bl sub_809674C
|
|
_0809737C:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809733C
|
|
|
|
thumb_func_start sub_8097384
|
|
sub_8097384:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _08097392
|
|
movs r0, 0
|
|
b _080973A4
|
|
_08097392:
|
|
lsls r2, r0, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
beq _080973A4
|
|
movs r0, 0x1
|
|
_080973A4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097384
|
|
|
|
thumb_func_start sub_80973A8
|
|
sub_80973A8:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 24
|
|
lsrs r6, r1, 24
|
|
cmp r0, 0xD
|
|
beq _080973EE
|
|
lsls r5, r0, 16
|
|
cmp r6, 0
|
|
beq _080973E2
|
|
bl sub_80A26B8
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsrs r2, r5, 16
|
|
movs r0, 0
|
|
movs r1, 0x2B
|
|
movs r3, 0
|
|
bl sub_800199C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _080973E2
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
_080973E2:
|
|
lsrs r2, r5, 16
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
adds r3, r6, 0
|
|
bl sub_800199C
|
|
_080973EE:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80973A8
|
|
|
|
thumb_func_start sub_80973F4
|
|
sub_80973F4:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bne _08097402
|
|
movs r0, 0
|
|
b _08097414
|
|
_08097402:
|
|
lsls r2, r0, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x2D
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
beq _08097414
|
|
movs r0, 0x1
|
|
_08097414:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80973F4
|
|
|
|
thumb_func_start sub_8097418
|
|
sub_8097418:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
lsls r1, 24
|
|
lsrs r7, r1, 24
|
|
cmp r5, 0xD
|
|
beq _08097470
|
|
lsls r6, r5, 16
|
|
cmp r7, 0
|
|
beq _08097464
|
|
lsrs r2, r6, 16
|
|
movs r0, 0
|
|
movs r1, 0x2C
|
|
movs r3, 0
|
|
bl sub_800199C
|
|
cmp r5, 0x1E
|
|
bgt _08097464
|
|
lsls r0, r5, 3
|
|
ldr r1, _08097478
|
|
adds r4, r0, r1
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0xFF
|
|
beq _0809744C
|
|
bl sub_8097FA8
|
|
_0809744C:
|
|
ldrb r0, [r4, 0x5]
|
|
cmp r0, 0xFF
|
|
beq _08097456
|
|
bl sub_8097FA8
|
|
_08097456:
|
|
cmp r5, 0x9
|
|
bne _08097460
|
|
movs r0, 0x1F
|
|
bl sub_8097FA8
|
|
_08097460:
|
|
bl sub_8097FF8
|
|
_08097464:
|
|
lsrs r2, r6, 16
|
|
movs r0, 0
|
|
movs r1, 0x2D
|
|
adds r3, r7, 0
|
|
bl sub_800199C
|
|
_08097470:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097478: .4byte gStoryMissionText
|
|
thumb_func_end sub_8097418
|
|
|
|
thumb_func_start sub_809747C
|
|
sub_809747C:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
beq _08097494
|
|
bl sub_80A270C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetDungeonName1
|
|
b _08097496
|
|
_08097494:
|
|
ldr r0, _0809749C
|
|
_08097496:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809749C: .4byte gDummyScenarioText
|
|
thumb_func_end sub_809747C
|
|
|
|
thumb_func_start sub_80974A0
|
|
sub_80974A0:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
beq _080974B8
|
|
bl sub_80A270C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetDungeonName1
|
|
b _080974BA
|
|
_080974B8:
|
|
ldr r0, _080974C0
|
|
_080974BA:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080974C0: .4byte gDummyScenarioText
|
|
thumb_func_end sub_80974A0
|
|
|
|
thumb_func_start sub_80974C4
|
|
sub_80974C4:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1E
|
|
ble _080974D8
|
|
ldr r0, _080974D4
|
|
b _080974E0
|
|
.align 2, 0
|
|
_080974D4: .4byte gUnknown_8109CC0
|
|
_080974D8:
|
|
lsls r0, 3
|
|
ldr r1, _080974E4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
_080974E0:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080974E4: .4byte gStoryMissionText
|
|
thumb_func_end sub_80974C4
|
|
|
|
thumb_func_start sub_80974E8
|
|
sub_80974E8:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x2F
|
|
bl sub_80015C0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80974E8
|
|
|
|
thumb_func_start nullsub_208
|
|
nullsub_208:
|
|
bx lr
|
|
thumb_func_end nullsub_208
|
|
|
|
thumb_func_start sub_8097504
|
|
sub_8097504:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r0, 0
|
|
cmp r0, 0x10
|
|
bgt _08097568
|
|
cmp r0, 0xE
|
|
bhi _08097580
|
|
lsls r0, 2
|
|
ldr r1, _08097520
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08097520: .4byte _08097524
|
|
.align 2, 0
|
|
_08097524:
|
|
.4byte _08097564
|
|
.4byte _08097564
|
|
.4byte _08097560
|
|
.4byte _08097580
|
|
.4byte _08097580
|
|
.4byte _08097564
|
|
.4byte _08097580
|
|
.4byte _08097564
|
|
.4byte _08097580
|
|
.4byte _08097564
|
|
.4byte _08097560
|
|
.4byte _08097560
|
|
.4byte _08097560
|
|
.4byte _08097574
|
|
.4byte _08097564
|
|
_08097560:
|
|
movs r0, 0xE
|
|
b _08097576
|
|
_08097564:
|
|
movs r0, 0xF
|
|
b _08097576
|
|
_08097568:
|
|
cmp r1, 0x16
|
|
bgt _08097584
|
|
cmp r1, 0x16
|
|
beq _08097584
|
|
cmp r1, 0x15
|
|
beq _08097584
|
|
_08097574:
|
|
movs r0, 0x6
|
|
_08097576:
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08097584
|
|
_08097580:
|
|
movs r0, 0x1
|
|
b _08097586
|
|
_08097584:
|
|
movs r0, 0
|
|
_08097586:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097504
|
|
|
|
thumb_func_start sub_809758C
|
|
sub_809758C:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
beq _080975A2
|
|
movs r0, 0x1
|
|
_080975A2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809758C
|
|
|
|
thumb_func_start sub_80975A8
|
|
sub_80975A8:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
bl sub_800199C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80975A8
|
|
|
|
thumb_func_start sub_80975C4
|
|
sub_80975C4:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2728
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl GetDungeonName1
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80975C4
|
|
|
|
thumb_func_start sub_80975DC
|
|
sub_80975DC:
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r1, _08097600
|
|
adds r0, r1
|
|
lsrs r0, 16
|
|
cmp r0, 0x1
|
|
bhi _08097610
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0xE
|
|
bl sub_8001D08
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08097608
|
|
ldr r0, _08097604
|
|
b _08097612
|
|
.align 2, 0
|
|
_08097600: .4byte 0xffe90000
|
|
_08097604: .4byte gMeetNinetalesText
|
|
_08097608:
|
|
ldr r0, _0809760C
|
|
b _08097612
|
|
.align 2, 0
|
|
_0809760C: .4byte gAvoidCaptureText
|
|
_08097610:
|
|
ldr r0, _08097618
|
|
_08097612:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08097618: .4byte gFinalScenarioText
|
|
thumb_func_end sub_80975DC
|
|
|
|
thumb_func_start sub_809761C
|
|
sub_809761C:
|
|
push {r4,lr}
|
|
movs r4, 0
|
|
_08097620:
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
bl sub_809758C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08097632
|
|
movs r0, 0
|
|
b _0809763A
|
|
_08097632:
|
|
adds r4, 0x1
|
|
cmp r4, 0x10
|
|
ble _08097620
|
|
movs r0, 0x1
|
|
_0809763A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809761C
|
|
|
|
thumb_func_start sub_8097640
|
|
sub_8097640:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
movs r2, 0x1F
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
bne _0809766A
|
|
bl sub_809761C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809766A
|
|
movs r0, 0
|
|
movs r1, 0x2E
|
|
movs r2, 0x1F
|
|
movs r3, 0x1
|
|
bl sub_800199C
|
|
movs r0, 0x1
|
|
b _0809766C
|
|
_0809766A:
|
|
movs r0, 0
|
|
_0809766C:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097640
|
|
|
|
thumb_func_start sub_8097670
|
|
sub_8097670:
|
|
ldr r1, _08097678
|
|
ldr r0, _0809767C
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097678: .4byte gUnknown_203B494
|
|
_0809767C: .4byte gUnknown_2039778
|
|
thumb_func_end sub_8097670
|
|
|
|
thumb_func_start sub_8097680
|
|
sub_8097680:
|
|
ldr r0, _08097684
|
|
bx lr
|
|
.align 2, 0
|
|
_08097684: .4byte gUnknown_2039778
|
|
thumb_func_end sub_8097680
|
|
|
|
thumb_func_start sub_8097688
|
|
sub_8097688:
|
|
ldr r3, _08097698
|
|
ldr r2, [r3]
|
|
ldrb r1, [r0]
|
|
strb r1, [r2, 0x10]
|
|
ldr r1, [r3]
|
|
ldrb r0, [r0, 0x1]
|
|
strb r0, [r1, 0x11]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097698: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097688
|
|
|
|
thumb_func_start sub_809769C
|
|
sub_809769C:
|
|
ldr r0, _080976A4
|
|
ldr r0, [r0]
|
|
adds r0, 0x10
|
|
bx lr
|
|
.align 2, 0
|
|
_080976A4: .4byte gUnknown_203B494
|
|
thumb_func_end sub_809769C
|
|
|
|
thumb_func_start sub_80976A8
|
|
sub_80976A8:
|
|
push {r4,lr}
|
|
ldr r3, _080976F4
|
|
ldr r1, [r3]
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
strh r0, [r1, 0x14]
|
|
strh r0, [r1, 0x16]
|
|
strh r0, [r1, 0x18]
|
|
adds r2, r1, 0
|
|
adds r2, 0xC0
|
|
str r0, [r2]
|
|
str r0, [r1, 0x8]
|
|
str r0, [r1, 0xC]
|
|
movs r2, 0
|
|
adds r4, r3, 0
|
|
movs r3, 0
|
|
_080976C8:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 2
|
|
adds r0, 0x1C
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xD
|
|
ble _080976C8
|
|
movs r2, 0
|
|
ldr r4, _080976F4
|
|
movs r3, 0
|
|
_080976DE:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 2
|
|
adds r0, 0x8C
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0xC
|
|
ble _080976DE
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080976F4: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80976A8
|
|
|
|
thumb_func_start sub_80976F8
|
|
sub_80976F8:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0809770C
|
|
ldr r2, [r1]
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809770C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80976F8
|
|
|
|
thumb_func_start sub_8097710
|
|
sub_8097710:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldr r1, _0809772C
|
|
ldr r2, [r1]
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _08097730
|
|
movs r0, 0
|
|
b _08097732
|
|
.align 2, 0
|
|
_0809772C: .4byte gUnknown_203B494
|
|
_08097730:
|
|
movs r0, 0x1
|
|
_08097732:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097710
|
|
|
|
thumb_func_start sub_8097738
|
|
sub_8097738:
|
|
lsls r0, 24
|
|
ldr r1, _08097744
|
|
lsrs r0, 22
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097744: .4byte gTeamRanks
|
|
thumb_func_end sub_8097738
|
|
|
|
thumb_func_start sub_8097748
|
|
sub_8097748:
|
|
ldr r0, _08097754
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
str r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097754: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097748
|
|
|
|
thumb_func_start sub_8097758
|
|
sub_8097758:
|
|
push {lr}
|
|
ldr r0, _08097770
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x4]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x4]
|
|
ldr r2, _08097774
|
|
cmp r0, r2
|
|
ble _0809776C
|
|
str r2, [r1, 0x4]
|
|
_0809776C:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097770: .4byte gUnknown_203B494
|
|
_08097774: .4byte 0x0001869f
|
|
thumb_func_end sub_8097758
|
|
|
|
thumb_func_start sub_8097778
|
|
sub_8097778:
|
|
ldr r0, _08097780
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097780: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097778
|
|
|
|
thumb_func_start sub_8097784
|
|
sub_8097784:
|
|
ldr r1, _0809778C
|
|
ldr r1, [r1]
|
|
str r0, [r1, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809778C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097784
|
|
|
|
thumb_func_start sub_8097790
|
|
sub_8097790:
|
|
push {lr}
|
|
ldr r0, _080977B0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0x8]
|
|
ldr r2, _080977B4
|
|
cmp r0, r2
|
|
ble _080977A4
|
|
str r2, [r1, 0x8]
|
|
_080977A4:
|
|
movs r0, 0x8
|
|
bl sub_80976F8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080977B0: .4byte gUnknown_203B494
|
|
_080977B4: .4byte 0x0001869f
|
|
thumb_func_end sub_8097790
|
|
|
|
thumb_func_start sub_80977B8
|
|
sub_80977B8:
|
|
ldr r0, _080977C0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0x8]
|
|
bx lr
|
|
.align 2, 0
|
|
_080977C0: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80977B8
|
|
|
|
thumb_func_start sub_80977C4
|
|
sub_80977C4:
|
|
ldr r1, _080977CC
|
|
ldr r1, [r1]
|
|
str r0, [r1, 0x8]
|
|
bx lr
|
|
.align 2, 0
|
|
_080977CC: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80977C4
|
|
|
|
thumb_func_start sub_80977D0
|
|
sub_80977D0:
|
|
push {lr}
|
|
ldr r0, _080977F0
|
|
ldr r1, [r0]
|
|
ldr r0, [r1, 0xC]
|
|
adds r0, 0x1
|
|
str r0, [r1, 0xC]
|
|
ldr r2, _080977F4
|
|
cmp r0, r2
|
|
ble _080977E4
|
|
str r2, [r1, 0xC]
|
|
_080977E4:
|
|
movs r0, 0x9
|
|
bl sub_80976F8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080977F0: .4byte gUnknown_203B494
|
|
_080977F4: .4byte 0x0001869f
|
|
thumb_func_end sub_80977D0
|
|
|
|
thumb_func_start sub_80977F8
|
|
sub_80977F8:
|
|
ldr r0, _08097800
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097800: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80977F8
|
|
|
|
thumb_func_start sub_8097804
|
|
sub_8097804:
|
|
ldr r1, _0809780C
|
|
ldr r1, [r1]
|
|
str r0, [r1, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809780C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097804
|
|
|
|
thumb_func_start sub_8097810
|
|
sub_8097810:
|
|
push {lr}
|
|
ldr r0, _08097830
|
|
ldr r2, [r0]
|
|
ldrh r3, [r2, 0x14]
|
|
movs r0, 0x14
|
|
ldrsh r1, [r2, r0]
|
|
ldr r0, _08097834
|
|
cmp r1, r0
|
|
bgt _08097826
|
|
adds r0, r3, 0x1
|
|
strh r0, [r2, 0x14]
|
|
_08097826:
|
|
movs r0, 0xB
|
|
bl sub_80976F8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097830: .4byte gUnknown_203B494
|
|
_08097834: .4byte 0x0000270e
|
|
thumb_func_end sub_8097810
|
|
|
|
thumb_func_start sub_8097838
|
|
sub_8097838:
|
|
ldr r0, _08097844
|
|
ldr r0, [r0]
|
|
movs r1, 0x14
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097844: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097838
|
|
|
|
thumb_func_start sub_8097848
|
|
sub_8097848:
|
|
push {lr}
|
|
ldr r0, _08097868
|
|
ldr r2, [r0]
|
|
ldrh r3, [r2, 0x16]
|
|
movs r0, 0x16
|
|
ldrsh r1, [r2, r0]
|
|
ldr r0, _0809786C
|
|
cmp r1, r0
|
|
bgt _0809785E
|
|
adds r0, r3, 0x1
|
|
strh r0, [r2, 0x16]
|
|
_0809785E:
|
|
movs r0, 0xA
|
|
bl sub_80976F8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097868: .4byte gUnknown_203B494
|
|
_0809786C: .4byte 0x0000270e
|
|
thumb_func_end sub_8097848
|
|
|
|
thumb_func_start sub_8097870
|
|
sub_8097870:
|
|
ldr r0, _0809787C
|
|
ldr r0, [r0]
|
|
movs r1, 0x16
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809787C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097870
|
|
|
|
thumb_func_start sub_8097880
|
|
sub_8097880:
|
|
ldr r0, _0809788C
|
|
ldr r0, [r0]
|
|
movs r1, 0x18
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809788C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097880
|
|
|
|
thumb_func_start sub_8097890
|
|
sub_8097890:
|
|
push {lr}
|
|
ldr r0, _080978B0
|
|
ldr r0, [r0]
|
|
adds r2, r0, 0
|
|
adds r2, 0xC0
|
|
ldr r1, [r2]
|
|
ldr r0, _080978B4
|
|
cmp r1, r0
|
|
bgt _080978A6
|
|
adds r0, r1, 0x1
|
|
str r0, [r2]
|
|
_080978A6:
|
|
movs r0, 0xC
|
|
bl sub_80976F8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080978B0: .4byte gUnknown_203B494
|
|
_080978B4: .4byte 0x0001869e
|
|
thumb_func_end sub_8097890
|
|
|
|
thumb_func_start sub_80978B8
|
|
sub_80978B8:
|
|
ldr r0, _080978C4
|
|
ldr r0, [r0]
|
|
adds r0, 0xC0
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080978C4: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80978B8
|
|
|
|
thumb_func_start sub_80978C8
|
|
sub_80978C8:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_808E858
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
ldr r0, _080978FC
|
|
ldr r2, [r0]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _080978E2
|
|
adds r0, 0x1F
|
|
_080978E2:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x54
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080978FC: .4byte gUnknown_203B494
|
|
thumb_func_end sub_80978C8
|
|
|
|
thumb_func_start sub_8097900
|
|
sub_8097900:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_808E858
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
ldr r0, _08097938
|
|
ldr r2, [r0]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _0809791A
|
|
adds r0, 0x1F
|
|
_0809791A:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x1C
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _0809793C
|
|
movs r0, 0
|
|
b _0809793E
|
|
.align 2, 0
|
|
_08097938: .4byte gUnknown_203B494
|
|
_0809793C:
|
|
movs r0, 0x1
|
|
_0809793E:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097900
|
|
|
|
thumb_func_start sub_8097944
|
|
sub_8097944:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
movs r0, 0x1
|
|
str r0, [sp]
|
|
movs r1, 0x1
|
|
str r1, [sp, 0x4]
|
|
movs r0, 0xD
|
|
bl sub_8097710
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08097974
|
|
bl sub_8092614
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08097974
|
|
movs r0, 0xD
|
|
bl sub_80976F8
|
|
_08097974:
|
|
movs r4, 0
|
|
ldr r0, _08097B5C
|
|
mov r10, r0
|
|
mov r8, r4
|
|
_0809797C:
|
|
ldr r1, _08097B60
|
|
ldr r0, [r1]
|
|
mov r1, r8
|
|
adds r2, r1, r0
|
|
ldrb r1, [r2]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080979F6
|
|
movs r0, 0x8
|
|
ldrsh r3, [r2, r0]
|
|
mov r1, r10
|
|
ldr r2, [r1]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _0809799E
|
|
adds r0, 0x1F
|
|
_0809799E:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x1C
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
ldr r0, _08097B60
|
|
mov r9, r0
|
|
mov r12, r8
|
|
movs r7, 0x1
|
|
movs r6, 0x2C
|
|
movs r5, 0x3
|
|
_080979C0:
|
|
mov r1, r9
|
|
ldr r0, [r1]
|
|
add r0, r12
|
|
adds r3, r0, r6
|
|
ldrb r1, [r3]
|
|
adds r0, r7, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080979EE
|
|
mov r0, r10
|
|
ldr r2, [r0]
|
|
ldrh r3, [r3, 0x2]
|
|
lsrs r0, r3, 5
|
|
lsls r0, 2
|
|
adds r2, 0x8C
|
|
adds r2, r0
|
|
movs r0, 0x1F
|
|
ands r3, r0
|
|
adds r1, r7, 0
|
|
lsls r1, r3
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_080979EE:
|
|
adds r6, 0x8
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080979C0
|
|
_080979F6:
|
|
movs r1, 0x58
|
|
add r8, r1
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _0809797C
|
|
movs r4, 0
|
|
ldr r1, _08097B64
|
|
_08097A08:
|
|
cmp r4, 0
|
|
bne _08097A0E
|
|
b _08097B80
|
|
_08097A0E:
|
|
ldr r0, _08097B68
|
|
cmp r4, r0
|
|
bne _08097A16
|
|
b _08097B80
|
|
_08097A16:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A1E
|
|
b _08097B80
|
|
_08097A1E:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A26
|
|
b _08097B80
|
|
_08097A26:
|
|
adds r0, 0x26
|
|
cmp r4, r0
|
|
bne _08097A2E
|
|
b _08097B80
|
|
_08097A2E:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A36
|
|
b _08097B80
|
|
_08097A36:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A3E
|
|
b _08097B80
|
|
_08097A3E:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A46
|
|
b _08097B80
|
|
_08097A46:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A4E
|
|
b _08097B80
|
|
_08097A4E:
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
bne _08097A56
|
|
b _08097B80
|
|
_08097A56:
|
|
cmp r4, r1
|
|
bne _08097A5C
|
|
b _08097B80
|
|
_08097A5C:
|
|
ldr r0, _08097B5C
|
|
ldr r5, [r0]
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08097A68
|
|
adds r0, 0x1F
|
|
_08097A68:
|
|
asrs r0, 5
|
|
lsls r3, r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x54
|
|
adds r1, r3
|
|
lsls r0, 5
|
|
subs r0, r4, r0
|
|
movs r2, 0x1
|
|
lsls r2, r0
|
|
ldr r0, [r1]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
bne _08097A86
|
|
movs r0, 0
|
|
str r0, [sp, 0x4]
|
|
_08097A86:
|
|
adds r0, r5, 0
|
|
adds r0, 0x1C
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08097B7C
|
|
cmp r4, 0x92
|
|
bne _08097A9E
|
|
movs r0, 0x10
|
|
bl sub_80976F8
|
|
_08097A9E:
|
|
cmp r4, 0x91
|
|
bne _08097AA8
|
|
movs r0, 0x11
|
|
bl sub_80976F8
|
|
_08097AA8:
|
|
cmp r4, 0x90
|
|
bne _08097AB2
|
|
movs r0, 0x12
|
|
bl sub_80976F8
|
|
_08097AB2:
|
|
movs r0, 0xCF
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097AC0
|
|
movs r0, 0x13
|
|
bl sub_80976F8
|
|
_08097AC0:
|
|
ldr r0, _08097B6C
|
|
cmp r4, r0
|
|
bne _08097ACC
|
|
movs r0, 0x14
|
|
bl sub_80976F8
|
|
_08097ACC:
|
|
movs r0, 0x86
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097ADA
|
|
movs r0, 0x15
|
|
bl sub_80976F8
|
|
_08097ADA:
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097AE8
|
|
movs r0, 0x16
|
|
bl sub_80976F8
|
|
_08097AE8:
|
|
ldr r0, _08097B70
|
|
cmp r4, r0
|
|
bne _08097AF4
|
|
movs r0, 0x17
|
|
bl sub_80976F8
|
|
_08097AF4:
|
|
movs r0, 0xCD
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097B02
|
|
movs r0, 0x18
|
|
bl sub_80976F8
|
|
_08097B02:
|
|
ldr r0, _08097B74
|
|
cmp r4, r0
|
|
bne _08097B0E
|
|
movs r0, 0x19
|
|
bl sub_80976F8
|
|
_08097B0E:
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097B1C
|
|
movs r0, 0x1A
|
|
bl sub_80976F8
|
|
_08097B1C:
|
|
movs r0, 0x89
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097B2A
|
|
movs r0, 0x1B
|
|
bl sub_80976F8
|
|
_08097B2A:
|
|
movs r0, 0x8A
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
bne _08097B38
|
|
movs r0, 0x1C
|
|
bl sub_80976F8
|
|
_08097B38:
|
|
cmp r4, 0x97
|
|
bne _08097B42
|
|
movs r0, 0x1D
|
|
bl sub_80976F8
|
|
_08097B42:
|
|
cmp r4, 0x96
|
|
bne _08097B4C
|
|
movs r0, 0x1E
|
|
bl sub_80976F8
|
|
_08097B4C:
|
|
ldr r0, _08097B78
|
|
cmp r4, r0
|
|
bne _08097B80
|
|
movs r0, 0x1F
|
|
bl sub_80976F8
|
|
b _08097B80
|
|
.align 2, 0
|
|
_08097B5C: .4byte gUnknown_203B494
|
|
_08097B60: .4byte gUnknown_203B45C
|
|
_08097B64: .4byte 0x000001a7
|
|
_08097B68: .4byte 0x00000179
|
|
_08097B6C: .4byte 0x0000010d
|
|
_08097B70: .4byte 0x00000113
|
|
_08097B74: .4byte 0x0000019b
|
|
_08097B78: .4byte 0x0000019d
|
|
_08097B7C:
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
_08097B80:
|
|
adds r4, 0x1
|
|
ldr r1, _08097C0C
|
|
cmp r4, r1
|
|
bgt _08097B8A
|
|
b _08097A08
|
|
_08097B8A:
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
beq _08097B96
|
|
movs r0, 0xF
|
|
bl sub_80976F8
|
|
_08097B96:
|
|
ldr r1, [sp, 0x4]
|
|
cmp r1, 0
|
|
beq _08097BA2
|
|
movs r0, 0xE
|
|
bl sub_80976F8
|
|
_08097BA2:
|
|
movs r3, 0
|
|
movs r4, 0
|
|
_08097BA6:
|
|
cmp r4, 0
|
|
beq _08097BE2
|
|
ldr r0, _08097C10
|
|
cmp r4, r0
|
|
beq _08097BE2
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
beq _08097BE2
|
|
adds r0, 0x1
|
|
cmp r4, r0
|
|
beq _08097BE2
|
|
ldr r0, _08097C14
|
|
ldr r2, [r0]
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _08097BC8
|
|
adds r0, 0x1F
|
|
_08097BC8:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x8C
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r4, r0
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08097BE2
|
|
adds r3, 0x1
|
|
_08097BE2:
|
|
adds r4, 0x1
|
|
movs r0, 0xCE
|
|
lsls r0, 1
|
|
cmp r4, r0
|
|
ble _08097BA6
|
|
cmp r3, 0
|
|
beq _08097BFC
|
|
ldr r0, _08097C14
|
|
ldr r0, [r0]
|
|
strh r3, [r0, 0x18]
|
|
movs r0, 0x7
|
|
bl sub_80976F8
|
|
_08097BFC:
|
|
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
|
|
_08097C0C: .4byte 0x000001a7
|
|
_08097C10: .4byte 0x00000163
|
|
_08097C14: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097944
|
|
|
|
thumb_func_start sub_8097C18
|
|
sub_8097C18:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
bl sub_8097944
|
|
ldr r4, _08097CBC
|
|
ldr r1, [r4]
|
|
adds r1, 0x4
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x8
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0xC
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x14
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x16
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x18
|
|
adds r0, r5, 0
|
|
movs r2, 0x9
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0xC0
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x1C
|
|
movs r6, 0xE0
|
|
lsls r6, 1
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x54
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x8C
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
adds r0, r5, 0
|
|
bl sub_809488C
|
|
ldr r1, [r4]
|
|
adds r1, 0x10
|
|
adds r0, r5, 0
|
|
bl sub_80902F4
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097CBC: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097C18
|
|
|
|
thumb_func_start sub_8097CC0
|
|
sub_8097CC0:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
ldr r4, _08097D5C
|
|
ldr r1, [r4]
|
|
adds r1, 0x4
|
|
movs r2, 0x11
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x8
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0xC
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r0, r5, 0
|
|
movs r2, 0x20
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x14
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x16
|
|
adds r0, r5, 0
|
|
movs r2, 0xE
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x18
|
|
adds r0, r5, 0
|
|
movs r2, 0x9
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0xC0
|
|
adds r0, r5, 0
|
|
movs r2, 0x11
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x1C
|
|
movs r6, 0xE0
|
|
lsls r6, 1
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x54
|
|
adds r0, r5, 0
|
|
adds r2, r6, 0
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x8C
|
|
movs r2, 0xD0
|
|
lsls r2, 1
|
|
adds r0, r5, 0
|
|
bl sub_8094924
|
|
ldr r1, [r4]
|
|
adds r1, 0x10
|
|
adds r0, r5, 0
|
|
bl sub_8090314
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097D5C: .4byte gUnknown_203B494
|
|
thumb_func_end sub_8097CC0
|
|
|
|
thumb_func_start sub_8097D60
|
|
sub_8097D60:
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809486C
|
|
mov r0, sp
|
|
bl sub_8094A44
|
|
mov r0, sp
|
|
bl sub_8095044
|
|
mov r0, sp
|
|
bl sub_8097C18
|
|
mov r0, sp
|
|
bl sub_8098248
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097D60
|
|
|
|
thumb_func_start sub_8097D98
|
|
sub_8097D98:
|
|
push {lr}
|
|
sub sp, 0x10
|
|
adds r3, r0, 0
|
|
adds r2, r1, 0
|
|
mov r0, sp
|
|
adds r1, r3, 0
|
|
bl sub_809485C
|
|
mov r0, sp
|
|
bl sub_8094B18
|
|
mov r0, sp
|
|
bl sub_8095080
|
|
mov r0, sp
|
|
bl sub_8097CC0
|
|
mov r0, sp
|
|
bl sub_8098308
|
|
mov r0, sp
|
|
bl nullsub_102
|
|
ldr r0, [sp, 0x8]
|
|
add sp, 0x10
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097D98
|
|
|
|
thumb_func_start sub_8097DD0
|
|
sub_8097DD0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bne _08097DEA
|
|
ldr r1, [r2, 0x4]
|
|
ldr r0, [r3, 0x4]
|
|
cmp r1, r0
|
|
bne _08097DEA
|
|
movs r0, 0x1
|
|
b _08097DEC
|
|
_08097DEA:
|
|
movs r0, 0
|
|
_08097DEC:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097DD0
|
|
|
|
thumb_func_start sub_8097DF0
|
|
sub_8097DF0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1F8
|
|
mov r8, r0
|
|
str r1, [sp, 0x1F0]
|
|
movs r0, 0
|
|
mov r9, r0
|
|
movs r7, 0
|
|
ldr r1, _08097E3C
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _08097E6E
|
|
_08097E0E:
|
|
movs r4, 0
|
|
lsls r5, r7, 3
|
|
lsls r1, r7, 2
|
|
mov r10, r1
|
|
adds r6, r7, 0x1
|
|
ldr r2, _08097E3C
|
|
adds r3, r5, r2
|
|
add r1, sp, 0x18C
|
|
_08097E1E:
|
|
ldr r0, [r3]
|
|
adds r0, r4
|
|
ldrb r2, [r0]
|
|
cmp r2, 0x23
|
|
bne _08097E40
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0x72
|
|
bne _08097E40
|
|
strb r2, [r1]
|
|
adds r1, 0x1
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
b _08097E50
|
|
.align 2, 0
|
|
_08097E3C: .4byte gStatusDescriptions
|
|
_08097E40:
|
|
ldr r0, [r3]
|
|
adds r0, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, 0x1
|
|
adds r4, 0x1
|
|
cmp r4, 0x63
|
|
ble _08097E1E
|
|
_08097E50:
|
|
add r0, sp, 0x18C
|
|
bl strlen
|
|
mov r1, sp
|
|
add r1, r10
|
|
str r0, [r1]
|
|
adds r7, r6, 0
|
|
cmp r6, 0x62
|
|
bgt _08097E6E
|
|
lsls r0, r6, 3
|
|
ldr r1, _08097EB4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08097E0E
|
|
_08097E6E:
|
|
mov r2, r8
|
|
ldrb r0, [r2]
|
|
cmp r0, 0
|
|
beq _08097F2C
|
|
ldr r3, _08097EB4
|
|
_08097E78:
|
|
cmp r0, 0x23
|
|
bne _08097F08
|
|
movs r7, 0
|
|
adds r1, r3, 0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _08097F20
|
|
mov r2, r9
|
|
lsls r0, r2, 2
|
|
ldr r2, [sp, 0x1F0]
|
|
adds r0, r2
|
|
mov r10, r0
|
|
_08097E90:
|
|
lsls r4, r7, 3
|
|
adds r0, r4, r1
|
|
ldr r0, [r0]
|
|
lsls r1, r7, 2
|
|
add r1, sp
|
|
ldr r2, [r1]
|
|
mov r1, r8
|
|
str r3, [sp, 0x1F4]
|
|
bl sub_800B2D4
|
|
lsls r0, 24
|
|
adds r5, r4, 0
|
|
adds r6, r7, 0x1
|
|
ldr r3, [sp, 0x1F4]
|
|
cmp r0, 0
|
|
bne _08097EF0
|
|
movs r4, 0
|
|
b _08097EBA
|
|
.align 2, 0
|
|
_08097EB4: .4byte gStatusDescriptions
|
|
_08097EB8:
|
|
adds r4, 0x1
|
|
_08097EBA:
|
|
cmp r4, r9
|
|
bge _08097ED6
|
|
adds r0, r5, r3
|
|
lsls r1, r4, 2
|
|
ldr r2, [sp, 0x1F0]
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
str r3, [sp, 0x1F4]
|
|
bl sub_8097DD0
|
|
lsls r0, 24
|
|
ldr r3, [sp, 0x1F4]
|
|
cmp r0, 0
|
|
beq _08097EB8
|
|
_08097ED6:
|
|
cmp r4, r9
|
|
bne _08097EF0
|
|
mov r0, r9
|
|
cmp r0, 0x3
|
|
bgt _08097EF0
|
|
adds r0, r5, r3
|
|
mov r1, r10
|
|
adds r1, 0x4
|
|
mov r10, r1
|
|
subs r1, 0x4
|
|
stm r1!, {r0}
|
|
movs r2, 0x1
|
|
add r9, r2
|
|
_08097EF0:
|
|
adds r7, r6, 0
|
|
cmp r6, 0x62
|
|
bgt _08097F20
|
|
ldr r1, _08097F04
|
|
lsls r0, r6, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08097E90
|
|
b _08097F20
|
|
.align 2, 0
|
|
_08097F04: .4byte gStatusDescriptions
|
|
_08097F08:
|
|
mov r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r1, 0
|
|
adds r0, 0x7F
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bls _08097F1C
|
|
cmp r1, 0x87
|
|
bne _08097F20
|
|
_08097F1C:
|
|
movs r1, 0x1
|
|
add r8, r1
|
|
_08097F20:
|
|
movs r2, 0x1
|
|
add r8, r2
|
|
mov r1, r8
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
bne _08097E78
|
|
_08097F2C:
|
|
mov r0, r9
|
|
add sp, 0x1F8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8097DF0
|
|
|
|
thumb_func_start sub_8097F40
|
|
sub_8097F40:
|
|
push {lr}
|
|
movs r2, 0
|
|
ldr r1, _08097F58
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x2
|
|
bne _08097F50
|
|
movs r2, 0x1
|
|
_08097F50:
|
|
adds r0, r2, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08097F58: .4byte gUnknown_810ACC0
|
|
thumb_func_end sub_8097F40
|
|
|
|
thumb_func_start sub_8097F5C
|
|
sub_8097F5C:
|
|
ldr r1, _08097F64
|
|
ldr r0, _08097F68
|
|
str r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097F64: .4byte gUnknown_203B498
|
|
_08097F68: .4byte gUnknown_2039840
|
|
thumb_func_end sub_8097F5C
|
|
|
|
thumb_func_start sub_8097F6C
|
|
sub_8097F6C:
|
|
ldr r0, _08097F70
|
|
bx lr
|
|
.align 2, 0
|
|
_08097F70: .4byte gUnknown_2039840
|
|
thumb_func_end sub_8097F6C
|
|
|
|
thumb_func_start sub_8097F74
|
|
sub_8097F74:
|
|
push {r4,lr}
|
|
ldr r4, _08097FA0
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x64
|
|
bl memset
|
|
movs r2, 0
|
|
ldr r3, _08097FA4
|
|
_08097F86:
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
adds r0, r2
|
|
ldrb r1, [r3, 0x2]
|
|
strb r1, [r0]
|
|
adds r3, 0x4
|
|
adds r2, 0x1
|
|
cmp r2, 0xB
|
|
ble _08097F86
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08097FA0: .4byte gUnknown_203B498
|
|
_08097FA4: .4byte gUnknown_810AD0C
|
|
thumb_func_end sub_8097F74
|
|
|
|
thumb_func_start sub_8097FA8
|
|
sub_8097FA8:
|
|
lsls r0, 24
|
|
ldr r1, _08097FCC
|
|
ldr r3, [r1]
|
|
lsrs r1, r0, 29
|
|
lsls r1, 2
|
|
adds r3, 0x48
|
|
adds r3, r1
|
|
movs r1, 0xF8
|
|
lsls r1, 21
|
|
ands r1, r0
|
|
lsrs r1, 24
|
|
movs r2, 0x1
|
|
lsls r2, r1
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097FCC: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8097FA8
|
|
|
|
thumb_func_start sub_8097FD0
|
|
sub_8097FD0:
|
|
lsls r0, 24
|
|
ldr r1, _08097FF4
|
|
ldr r3, [r1]
|
|
lsrs r1, r0, 29
|
|
lsls r1, 2
|
|
adds r3, 0x3C
|
|
adds r3, r1
|
|
movs r1, 0xF8
|
|
lsls r1, 21
|
|
ands r1, r0
|
|
lsrs r1, 24
|
|
movs r2, 0x1
|
|
lsls r2, r1
|
|
ldr r0, [r3]
|
|
orrs r0, r2
|
|
str r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_08097FF4: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8097FD0
|
|
|
|
thumb_func_start sub_8097FF8
|
|
sub_8097FF8:
|
|
push {r4-r7,lr}
|
|
movs r4, 0
|
|
ldr r6, _08098040
|
|
movs r7, 0x1
|
|
_08098000:
|
|
ldr r5, [r6]
|
|
adds r0, r4, 0
|
|
cmp r4, 0
|
|
bge _0809800A
|
|
adds r0, 0x1F
|
|
_0809800A:
|
|
asrs r0, 5
|
|
lsls r3, r0, 2
|
|
adds r1, r5, 0
|
|
adds r1, 0x48
|
|
adds r1, r3
|
|
lsls r0, 5
|
|
subs r0, r4, r0
|
|
adds r2, r7, 0
|
|
lsls r2, r0
|
|
ldr r0, [r1]
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _08098030
|
|
adds r1, r5, 0
|
|
adds r1, 0x3C
|
|
adds r1, r3
|
|
ldr r0, [r1]
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
_08098030:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3F
|
|
ble _08098000
|
|
bl sub_8098080
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08098040: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8097FF8
|
|
|
|
thumb_func_start sub_8098044
|
|
sub_8098044:
|
|
push {r4,r5,lr}
|
|
lsls r0, 24
|
|
ldr r1, _0809807C
|
|
ldr r3, [r1]
|
|
lsrs r5, r0, 29
|
|
lsls r5, 2
|
|
adds r4, r3, 0
|
|
adds r4, 0x3C
|
|
adds r4, r5
|
|
movs r1, 0xF8
|
|
lsls r1, 21
|
|
ands r1, r0
|
|
lsrs r1, 24
|
|
movs r2, 0x1
|
|
lsls r2, r1
|
|
mvns r2, r2
|
|
ldr r0, [r4]
|
|
ands r0, r2
|
|
str r0, [r4]
|
|
adds r3, 0x48
|
|
adds r3, r5
|
|
ldr r0, [r3]
|
|
ands r0, r2
|
|
str r0, [r3]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809807C: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8098044
|
|
|
|
thumb_func_start sub_8098080
|
|
sub_8098080:
|
|
push {r4,lr}
|
|
movs r2, 0
|
|
ldr r4, _080980A0
|
|
movs r3, 0
|
|
_08098088:
|
|
ldr r0, [r4]
|
|
lsls r1, r2, 2
|
|
adds r0, 0x48
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x2
|
|
ble _08098088
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080980A0: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8098080
|
|
|
|
thumb_func_start sub_80980A4
|
|
sub_80980A4:
|
|
ldr r0, _080980B0
|
|
ldr r2, [r0]
|
|
ldrb r0, [r2]
|
|
movs r1, 0x1
|
|
strb r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_080980B0: .4byte gUnknown_203B498
|
|
thumb_func_end sub_80980A4
|
|
|
|
thumb_func_start sub_80980B4
|
|
sub_80980B4:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r3, r1, 0
|
|
ldr r0, _080980F8
|
|
cmp r1, r0
|
|
beq _080980F4
|
|
adds r0, 0x1
|
|
cmp r1, r0
|
|
beq _080980F4
|
|
adds r0, 0x1
|
|
cmp r1, r0
|
|
beq _080980F4
|
|
ldr r0, _080980FC
|
|
ldr r2, [r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _080980DA
|
|
adds r0, 0x1F
|
|
_080980DA:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x4
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
_080980F4:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080980F8: .4byte 0x000001a5
|
|
_080980FC: .4byte gUnknown_203B498
|
|
thumb_func_end sub_80980B4
|
|
|
|
thumb_func_start sub_8098100
|
|
sub_8098100:
|
|
push {lr}
|
|
lsls r1, r0, 24
|
|
lsrs r3, r1, 24
|
|
cmp r3, 0x3F
|
|
bls _0809810E
|
|
movs r0, 0
|
|
b _0809812C
|
|
_0809810E:
|
|
ldr r0, _08098130
|
|
ldr r2, [r0]
|
|
lsrs r0, r1, 29
|
|
lsls r0, 2
|
|
adds r2, 0x3C
|
|
adds r2, r0
|
|
movs r0, 0x1F
|
|
ands r0, r3
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809812C
|
|
movs r0, 0x1
|
|
_0809812C:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08098130: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8098100
|
|
|
|
thumb_func_start sub_8098134
|
|
sub_8098134:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r3, r1, 0
|
|
ldr r0, _0809816C
|
|
ldr r2, [r0]
|
|
adds r0, r1, 0
|
|
cmp r1, 0
|
|
bge _08098148
|
|
adds r0, 0x1F
|
|
_08098148:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x4
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08098166
|
|
movs r0, 0x1
|
|
_08098166:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809816C: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8098134
|
|
|
|
thumb_func_start sub_8098170
|
|
sub_8098170:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _0809819C
|
|
ldr r2, [r0]
|
|
adds r0, r3, 0
|
|
cmp r3, 0
|
|
bge _08098180
|
|
adds r0, 0x1F
|
|
_08098180:
|
|
asrs r0, 5
|
|
lsls r1, r0, 2
|
|
adds r2, 0x54
|
|
adds r2, r1
|
|
lsls r0, 5
|
|
subs r0, r3, r0
|
|
movs r1, 0x1
|
|
lsls r1, r0
|
|
ldr r0, [r2]
|
|
orrs r0, r1
|
|
str r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809819C: .4byte gUnknown_203B498
|
|
thumb_func_end sub_8098170
|
|
|
|
thumb_func_start sub_80981A0
|
|
sub_80981A0:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
cmp r3, 0x1E
|
|
ble _080981AC
|
|
movs r0, 0
|
|
b _080981D4
|
|
_080981AC:
|
|
ldr r0, _080981D8
|
|
ldr r2, [r0]
|
|
adds r1, r3, 0
|
|
cmp r3, 0
|
|
bge _080981B8
|
|
adds r1, 0x1F
|
|
_080981B8:
|
|
asrs r1, 5
|
|
lsls r0, r1, 2
|
|
adds r2, 0x54
|
|
adds r2, r0
|
|
lsls r1, 5
|
|
subs r1, r3, r1
|
|
movs r0, 0x1
|
|
lsls r0, r1
|
|
ldr r2, [r2]
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
beq _080981D2
|
|
movs r2, 0x1
|
|
_080981D2:
|
|
adds r0, r2, 0
|
|
_080981D4:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080981D8: .4byte gUnknown_203B498
|
|
thumb_func_end sub_80981A0
|
|
|
|
thumb_func_start sub_80981DC
|
|
sub_80981DC:
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
movs r1, 0
|
|
ldr r4, _080981FC
|
|
ldr r2, _08098200
|
|
_080981E8:
|
|
movs r5, 0
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, r3
|
|
bne _08098204
|
|
ldr r0, [r4]
|
|
adds r0, 0x58
|
|
adds r0, r1
|
|
ldrb r0, [r0]
|
|
b _0809820E
|
|
.align 2, 0
|
|
_080981FC: .4byte gUnknown_203B498
|
|
_08098200: .4byte gUnknown_810AD0C
|
|
_08098204:
|
|
adds r2, 0x4
|
|
adds r1, 0x1
|
|
cmp r1, 0xB
|
|
ble _080981E8
|
|
movs r0, 0x1
|
|
_0809820E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80981DC
|
|
|
|
thumb_func_start sub_8098214
|
|
sub_8098214:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r3, r0, 16
|
|
movs r1, 0
|
|
ldr r5, _08098240
|
|
movs r4, 0x1
|
|
ldr r2, _08098244
|
|
_08098222:
|
|
movs r6, 0
|
|
ldrsh r0, [r2, r6]
|
|
cmp r0, r3
|
|
bne _08098232
|
|
ldr r0, [r5]
|
|
adds r0, 0x58
|
|
adds r0, r1
|
|
strb r4, [r0]
|
|
_08098232:
|
|
adds r2, 0x4
|
|
adds r1, 0x1
|
|
cmp r1, 0xB
|
|
ble _08098222
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08098240: .4byte gUnknown_203B498
|
|
_08098244: .4byte gUnknown_810AD0C
|
|
thumb_func_end sub_8098214
|
|
|
|
thumb_func_start sub_8098248
|
|
sub_8098248:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x8
|
|
adds r7, r0, 0
|
|
mov r5, sp
|
|
adds r5, 0x3
|
|
movs r0, 0xFF
|
|
strb r0, [r5]
|
|
add r4, sp, 0x4
|
|
movs r0, 0
|
|
strb r0, [r4]
|
|
ldr r0, _08098300
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
movs r6, 0
|
|
mov r9, r5
|
|
mov r8, r4
|
|
mov r4, sp
|
|
adds r4, 0x1
|
|
mov r5, sp
|
|
adds r5, 0x2
|
|
_0809827C:
|
|
lsls r0, r6, 16
|
|
asrs r0, 16
|
|
bl sub_8098134
|
|
mov r1, sp
|
|
strb r0, [r1]
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r6, 0x1
|
|
ldr r0, _08098304
|
|
cmp r6, r0
|
|
ble _0809827C
|
|
movs r6, 0
|
|
_0809829A:
|
|
lsls r0, r6, 24
|
|
lsrs r0, 24
|
|
bl sub_8098100
|
|
strb r0, [r4]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r6, 0x1
|
|
cmp r6, 0x3F
|
|
ble _0809829A
|
|
movs r6, 0
|
|
adds r4, r5, 0
|
|
_080982B8:
|
|
adds r0, r6, 0
|
|
bl sub_80981A0
|
|
strb r0, [r4]
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r6, 0x1
|
|
cmp r6, 0x1E
|
|
ble _080982B8
|
|
movs r6, 0
|
|
_080982D2:
|
|
ldr r0, _08098300
|
|
ldr r0, [r0]
|
|
adds r0, 0x58
|
|
adds r0, r6
|
|
ldrb r0, [r0]
|
|
mov r1, r8
|
|
cmp r0, 0
|
|
beq _080982E4
|
|
mov r1, r9
|
|
_080982E4:
|
|
adds r0, r7, 0
|
|
movs r2, 0x1
|
|
bl sub_809488C
|
|
adds r6, 0x1
|
|
cmp r6, 0xB
|
|
ble _080982D2
|
|
add sp, 0x8
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08098300: .4byte gUnknown_203B498
|
|
_08098304: .4byte 0x000001a7
|
|
thumb_func_end sub_8098248
|
|
|
|
thumb_func_start sub_8098308
|
|
sub_8098308:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x4
|
|
adds r6, r0, 0
|
|
ldr r4, _080983D0
|
|
ldr r0, [r4]
|
|
movs r1, 0
|
|
movs r2, 0x64
|
|
bl memset
|
|
ldr r1, [r4]
|
|
adds r0, r6, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
movs r4, 0
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
mov r7, sp
|
|
adds r7, 0x2
|
|
movs r0, 0x3
|
|
add r0, sp
|
|
mov r8, r0
|
|
_08098338:
|
|
adds r0, r6, 0
|
|
mov r1, sp
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08098352
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
bl sub_80980B4
|
|
_08098352:
|
|
adds r4, 0x1
|
|
ldr r0, _080983D4
|
|
cmp r4, r0
|
|
ble _08098338
|
|
movs r4, 0
|
|
_0809835C:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08098374
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl sub_8097FA8
|
|
_08098374:
|
|
adds r4, 0x1
|
|
cmp r4, 0x3F
|
|
ble _0809835C
|
|
movs r4, 0
|
|
adds r5, r7, 0
|
|
_0809837E:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _08098394
|
|
adds r0, r4, 0
|
|
bl sub_8098170
|
|
_08098394:
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0809837E
|
|
movs r4, 0
|
|
_0809839C:
|
|
adds r0, r6, 0
|
|
mov r1, r8
|
|
movs r2, 0x1
|
|
bl sub_8094924
|
|
ldr r0, _080983D0
|
|
ldr r1, [r0]
|
|
adds r1, 0x58
|
|
adds r1, r4
|
|
mov r0, sp
|
|
adds r0, 0x3
|
|
ldrb r2, [r0]
|
|
movs r0, 0x1
|
|
ands r0, r2
|
|
strb r0, [r1]
|
|
adds r4, 0x1
|
|
cmp r4, 0xB
|
|
ble _0809839C
|
|
bl sub_8097FF8
|
|
add sp, 0x4
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080983D0: .4byte gUnknown_203B498
|
|
_080983D4: .4byte 0x000001a7
|
|
thumb_func_end sub_8098308
|
|
|
|
thumb_func_start sub_80983D8
|
|
sub_80983D8:
|
|
push {r4,lr}
|
|
movs r2, 0
|
|
ldrsh r3, [r1, r2]
|
|
movs r4, 0
|
|
ldrsh r2, [r0, r4]
|
|
subs r2, r3, r2
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
subs r1, r0
|
|
cmp r2, 0
|
|
bne _080983FA
|
|
cmp r1, 0
|
|
bne _080983FA
|
|
movs r0, 0
|
|
b _08098428
|
|
_080983FA:
|
|
cmp r2, 0
|
|
ble _08098400
|
|
movs r2, 0x1
|
|
_08098400:
|
|
cmp r1, 0
|
|
ble _08098406
|
|
movs r1, 0x1
|
|
_08098406:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bgt _08098410
|
|
adds r2, r0, 0
|
|
_08098410:
|
|
cmp r1, r0
|
|
bgt _08098416
|
|
adds r1, r0, 0
|
|
_08098416:
|
|
ldr r3, _08098430
|
|
adds r2, 0x1
|
|
adds r1, 0x1
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
_08098428:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08098430: .4byte gUnknown_8115E94
|
|
thumb_func_end sub_80983D8
|
|
|
|
thumb_func_start sub_8098434
|
|
sub_8098434:
|
|
push {r4,lr}
|
|
adds r3, r0, 0
|
|
adds r4, r1, 0
|
|
movs r0, 0
|
|
ldrsh r1, [r3, r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
subs r2, r1, r0
|
|
cmp r2, 0
|
|
bge _0809844A
|
|
negs r2, r2
|
|
_0809844A:
|
|
movs r0, 0x2
|
|
ldrsh r1, [r3, r0]
|
|
movs r3, 0x2
|
|
ldrsh r0, [r4, r3]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _0809845A
|
|
negs r0, r0
|
|
_0809845A:
|
|
cmp r0, r2
|
|
bge _08098460
|
|
adds r0, r2, 0
|
|
_08098460:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098434
|
|
|
|
thumb_func_start xxx_script_related_8098468
|
|
xxx_script_related_8098468:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x8
|
|
ldr r1, _08098494
|
|
str r0, [r1]
|
|
ldr r4, _08098498
|
|
movs r2, 0
|
|
strb r2, [r4]
|
|
ldr r3, _0809849C
|
|
movs r1, 0x1
|
|
strb r1, [r3]
|
|
ldr r1, _080984A0
|
|
strb r2, [r1]
|
|
subs r0, 0xD
|
|
adds r2, r1, 0
|
|
cmp r0, 0x4
|
|
bhi _08098504
|
|
lsls r0, 2
|
|
ldr r1, _080984A4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08098494: .4byte gUnknown_20398B4
|
|
_08098498: .4byte gUnknown_20398B9
|
|
_0809849C: .4byte gUnknown_20398B8
|
|
_080984A0: .4byte gUnknown_20398BA
|
|
_080984A4: .4byte _080984A8
|
|
.align 2, 0
|
|
_080984A8:
|
|
.4byte _080984BC
|
|
.4byte _080984C8
|
|
.4byte _080984CE
|
|
.4byte _080984D4
|
|
.4byte _080984FC
|
|
_080984BC:
|
|
movs r1, 0x1
|
|
strb r1, [r2]
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
strb r1, [r4]
|
|
b _08098504
|
|
_080984C8:
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
b _08098502
|
|
_080984CE:
|
|
movs r0, 0x1
|
|
strb r0, [r3]
|
|
b _08098502
|
|
_080984D4:
|
|
add r2, sp, 0x4
|
|
movs r0, 0x3
|
|
mov r1, sp
|
|
bl sub_8001B88
|
|
ldr r2, _080984F4
|
|
movs r1, 0
|
|
ldr r0, [sp]
|
|
cmp r0, 0
|
|
bne _080984EA
|
|
movs r1, 0x1
|
|
_080984EA:
|
|
strb r1, [r2]
|
|
ldr r1, _080984F8
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
b _08098504
|
|
.align 2, 0
|
|
_080984F4: .4byte gUnknown_20398B8
|
|
_080984F8: .4byte gUnknown_20398B9
|
|
_080984FC:
|
|
movs r0, 0
|
|
strb r0, [r3]
|
|
movs r0, 0x1
|
|
_08098502:
|
|
strb r0, [r4]
|
|
_08098504:
|
|
bl sub_801180C
|
|
ldr r0, _080985B0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08098522
|
|
movs r0, 0xD
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08098522
|
|
movs r0, 0x10
|
|
bl sub_80118C4
|
|
_08098522:
|
|
ldr r1, _080985B4
|
|
ldr r2, _080985B8
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
bl sub_8099648
|
|
bl sub_809975C
|
|
bl sub_809D0AC
|
|
bl sub_80A7744
|
|
bl sub_809D490
|
|
bl sub_80A62F0
|
|
bl sub_809C5C4
|
|
bl sub_809A560
|
|
bl sub_809CB50
|
|
bl sub_80A4A7C
|
|
bl nullsub_117
|
|
bl sub_80AD990
|
|
bl sub_80A77F8
|
|
bl sub_80ABB54
|
|
bl sub_80ACB90
|
|
bl sub_809A62C
|
|
ldr r0, _080985BC
|
|
movs r1, 0
|
|
strb r1, [r0]
|
|
ldr r0, _080985C0
|
|
strb r1, [r0]
|
|
ldr r6, _080985C4
|
|
movs r0, 0x1
|
|
str r0, [r6]
|
|
ldr r1, _080985C8
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
ldr r0, _080985CC
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [r0]
|
|
ldr r5, _080985D0
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_8001658
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
bl sub_8001658
|
|
ldr r1, _080985D4
|
|
str r0, [r1]
|
|
ldr r0, _080985D8
|
|
strh r4, [r0]
|
|
adds r7, r4, 0
|
|
ldr r0, [r6]
|
|
b _08098988
|
|
.align 2, 0
|
|
_080985B0: .4byte gUnknown_20398B9
|
|
_080985B4: .4byte gUnknown_2026E4E
|
|
_080985B8: .4byte 0x00000808
|
|
_080985BC: .4byte gUnknown_203B49C
|
|
_080985C0: .4byte gUnknown_203B49D
|
|
_080985C4: .4byte gUnknown_20398A8
|
|
_080985C8: .4byte gUnknown_20398AC
|
|
_080985CC: .4byte gUnknown_20398B0
|
|
_080985D0: .4byte gUnknown_20398BE
|
|
_080985D4: .4byte gUnknown_20398C0
|
|
_080985D8: .4byte gUnknown_20398C4
|
|
_080985DC:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl sub_809A71C
|
|
bl sub_809A76C
|
|
bl sub_809977C
|
|
ldr r0, _08098600
|
|
ldr r0, [r0]
|
|
cmp r0, 0x11
|
|
bls _080985F6
|
|
b _08098756
|
|
_080985F6:
|
|
lsls r0, 2
|
|
ldr r1, _08098604
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08098600: .4byte gUnknown_20398B4
|
|
_08098604: .4byte _08098608
|
|
.align 2, 0
|
|
_08098608:
|
|
.4byte _08098650
|
|
.4byte _08098756
|
|
.4byte _08098660
|
|
.4byte _08098660
|
|
.4byte _08098756
|
|
.4byte _08098666
|
|
.4byte _08098756
|
|
.4byte _08098756
|
|
.4byte _08098756
|
|
.4byte _0809866A
|
|
.4byte _0809866A
|
|
.4byte _0809866A
|
|
.4byte _0809866A
|
|
.4byte _0809870C
|
|
.4byte _08098748
|
|
.4byte _0809874C
|
|
.4byte _08098750
|
|
.4byte _08098754
|
|
_08098650:
|
|
bl sub_8098C58
|
|
ldr r1, _0809865C
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
b _08098756
|
|
.align 2, 0
|
|
_0809865C: .4byte gUnknown_20398B4
|
|
_08098660:
|
|
bl sub_8001D88
|
|
b _08098756
|
|
_08098666:
|
|
movs r7, 0x70
|
|
b _08098756
|
|
_0809866A:
|
|
ldr r0, _080986BC
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x25
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
bl sub_8098C58
|
|
movs r0, 0
|
|
movs r1, 0x15
|
|
movs r2, 0x1
|
|
movs r3, 0x2
|
|
bl sub_800226C
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _08098756
|
|
cmp r4, 0x51
|
|
bne _080986C0
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
b _080986C6
|
|
.align 2, 0
|
|
_080986BC: .4byte gUnknown_20398B4
|
|
_080986C0:
|
|
adds r0, r4, 0
|
|
bl sub_80A2608
|
|
_080986C6:
|
|
movs r1, 0xA
|
|
ldrsh r7, [r0, r1]
|
|
ldr r5, _08098700
|
|
ldr r0, [r5]
|
|
cmp r0, 0x9
|
|
bne _080986E0
|
|
lsls r2, r4, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x31
|
|
movs r3, 0x1
|
|
bl sub_800199C
|
|
_080986E0:
|
|
ldr r0, [r5]
|
|
bl sub_8098FCC
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08098756
|
|
ldr r0, _08098704
|
|
strh r1, [r0]
|
|
ldr r1, _08098708
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
b _08098756
|
|
.align 2, 0
|
|
_08098700: .4byte gUnknown_20398B4
|
|
_08098704: .4byte gUnknown_20398BE
|
|
_08098708: .4byte gUnknown_20398C0
|
|
_0809870C:
|
|
bl sub_8098C58
|
|
ldr r1, _08098744
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x1
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r7, 0x71
|
|
b _08098756
|
|
.align 2, 0
|
|
_08098744: .4byte gUnknown_20398B4
|
|
_08098748:
|
|
movs r7, 0x73
|
|
b _08098756
|
|
_0809874C:
|
|
movs r7, 0x74
|
|
b _08098756
|
|
_08098750:
|
|
movs r7, 0x75
|
|
b _08098756
|
|
_08098754:
|
|
movs r7, 0x76
|
|
_08098756:
|
|
ldr r0, _08098790
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080987C0
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_8001658
|
|
adds r5, r0, 0
|
|
ldr r4, _08098794
|
|
ldr r2, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
bl sub_80018D8
|
|
ldr r4, [r4]
|
|
cmp r4, 0x1
|
|
beq _080987A6
|
|
cmp r4, 0x3
|
|
bne _0809879C
|
|
ldr r0, _08098798
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl sub_80018D8
|
|
b _080987A6
|
|
.align 2, 0
|
|
_08098790: .4byte gUnknown_20398B9
|
|
_08098794: .4byte gUnknown_20398B4
|
|
_08098798: .4byte gUnknown_20398BE
|
|
_0809879C:
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
adds r2, r5, 0
|
|
bl sub_80018D8
|
|
_080987A6:
|
|
ldr r0, _0809882C
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_80018D8
|
|
ldr r0, _08098830
|
|
ldr r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0xE
|
|
bl sub_80018D8
|
|
_080987C0:
|
|
ldr r1, _08098834
|
|
movs r0, 0x2
|
|
str r0, [r1]
|
|
ldr r0, _08098838
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
ldr r0, _0809883C
|
|
str r1, [r0]
|
|
ldr r0, _08098840
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
str r4, [r0]
|
|
ldr r2, _08098844
|
|
ldr r1, _0809882C
|
|
ldrh r0, [r1]
|
|
strh r0, [r2]
|
|
strh r4, [r1]
|
|
bl sub_809977C
|
|
bl sub_809D4B0
|
|
adds r0, r4, 0
|
|
bl GroundSprite_Reset
|
|
bl sub_809C63C
|
|
bl sub_809A62C
|
|
bl sub_80A4AEC
|
|
bl sub_809D0BC
|
|
bl sub_80AD9D0
|
|
bl sub_80A786C
|
|
bl sub_80ABB98
|
|
bl sub_80ACBD4
|
|
bl sub_809C658
|
|
bl nullsub_16
|
|
bl sub_8097944
|
|
cmp r7, r4
|
|
beq _08098848
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
b _08098850
|
|
.align 2, 0
|
|
_0809882C: .4byte gUnknown_20398BE
|
|
_08098830: .4byte gUnknown_20398C0
|
|
_08098834: .4byte gUnknown_20398B4
|
|
_08098838: .4byte gUnknown_20398A8
|
|
_0809883C: .4byte gUnknown_20398AC
|
|
_08098840: .4byte gUnknown_20398B0
|
|
_08098844: .4byte gUnknown_20398BC
|
|
_08098848:
|
|
movs r0, 0x66
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
_08098850:
|
|
bl GroundMap_Action
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
bl sub_80060EC
|
|
bl xxx_call_update_bg_sound_input
|
|
_08098864:
|
|
bl xxx_call_update_bg_sound_input
|
|
bl sub_80A6E68
|
|
ldr r0, _08098890
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _080988B2
|
|
ldr r1, _08098894
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
ble _0809889C
|
|
subs r0, 0x1
|
|
str r0, [r1]
|
|
cmp r0, 0
|
|
bgt _080988F8
|
|
ldr r0, _08098898
|
|
ldr r0, [r0]
|
|
bl sub_80999D4
|
|
b _080988F8
|
|
.align 2, 0
|
|
_08098890: .4byte gUnknown_20398A8
|
|
_08098894: .4byte gUnknown_20398AC
|
|
_08098898: .4byte gUnknown_20398B0
|
|
_0809889C:
|
|
bl sub_8099B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080988F8
|
|
bl sub_809C740
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809897C
|
|
b _080988F8
|
|
_080988B2:
|
|
ldr r0, _08098968
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080988F8
|
|
ldr r0, _0809896C
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _080988F8
|
|
bl sub_809AFAC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080988F8
|
|
ldr r0, _08098970
|
|
ldrh r0, [r0, 0x2]
|
|
ldr r2, _08098974
|
|
adds r1, r2, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
bne _080988E4
|
|
bl sub_80048BC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080988F8
|
|
_080988E4:
|
|
movs r0, 0x72
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
movs r0, 0x1E
|
|
bl sub_8098F44
|
|
movs r0, 0x1E
|
|
bl sub_80118C4
|
|
_080988F8:
|
|
bl GroundMap_Action
|
|
bl nullsub_124
|
|
bl GroundLives_Action
|
|
bl GroundObject_Action
|
|
bl GroundEffect_Action
|
|
bl nullsub_105
|
|
bl sub_809B474
|
|
bl GroundScript_Unlock
|
|
bl sub_809D25C
|
|
bl sub_80A59DC
|
|
bl sub_809B614
|
|
bl sub_809CA20
|
|
bl sub_80A6E80
|
|
bl sub_8099BE4
|
|
bl sub_8099744
|
|
bl sub_8011860
|
|
ldr r0, _08098978
|
|
ldr r0, [r0]
|
|
bl sub_8094FB4
|
|
bl sub_800CB20
|
|
bl sub_800485C
|
|
bl nullsub_120
|
|
bl sub_80A5E70
|
|
bl sub_809B638
|
|
bl nullsub_106
|
|
bl sub_80A73EC
|
|
bl sub_8099750
|
|
bl sub_8009908
|
|
b _08098864
|
|
.align 2, 0
|
|
_08098968: .4byte gUnknown_20398B9
|
|
_0809896C: .4byte gUnknown_20398B8
|
|
_08098970: .4byte gUnknown_20255F0
|
|
_08098974: .4byte 0x0000030f
|
|
_08098978: .4byte gUnknown_203B47C
|
|
_0809897C:
|
|
bl sub_80A4AEC
|
|
movs r7, 0x1
|
|
negs r7, r7
|
|
ldr r0, _080989E8
|
|
ldr r0, [r0]
|
|
_08098988:
|
|
subs r0, 0x1
|
|
cmp r0, 0x1
|
|
bhi _08098990
|
|
b _080985DC
|
|
_08098990:
|
|
bl sub_80A4AC4
|
|
bl nullsub_118
|
|
bl sub_80A78F0
|
|
bl sub_80ABBD4
|
|
bl sub_80ACC10
|
|
bl sub_80ADA08
|
|
bl sub_809CB74
|
|
bl sub_809A610
|
|
bl sub_809C618
|
|
bl sub_80A658C
|
|
bl sub_809D508
|
|
bl sub_80A7754
|
|
bl nullsub_119
|
|
bl sub_8099768
|
|
bl nullsub_103
|
|
bl nullsub_16
|
|
ldr r0, _080989EC
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _080989FA
|
|
ldr r0, _080989E8
|
|
ldr r0, [r0]
|
|
cmp r0, 0x9
|
|
beq _080989F0
|
|
cmp r0, 0xA
|
|
bne _080989F0
|
|
movs r0, 0x10
|
|
b _08098BD2
|
|
.align 2, 0
|
|
_080989E8: .4byte gUnknown_20398A8
|
|
_080989EC: .4byte gUnknown_20398B9
|
|
_080989F0:
|
|
movs r0, 0x1E
|
|
bl sub_80118C4
|
|
movs r0, 0xF
|
|
b _08098BD2
|
|
_080989FA:
|
|
ldr r0, _08098A10
|
|
ldr r0, [r0]
|
|
subs r0, 0x3
|
|
cmp r0, 0x5
|
|
bls _08098A06
|
|
b _08098BC0
|
|
_08098A06:
|
|
lsls r0, 2
|
|
ldr r1, _08098A14
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08098A10: .4byte gUnknown_20398A8
|
|
_08098A14: .4byte _08098A18
|
|
.align 2, 0
|
|
_08098A18:
|
|
.4byte _08098A30
|
|
.4byte _08098A72
|
|
.4byte _08098AA0
|
|
.4byte _08098B08
|
|
.4byte _08098B58
|
|
.4byte _08098B8C
|
|
_08098A30:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x4
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x4
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0xD
|
|
bl sub_8001658
|
|
adds r2, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl sub_80018D8
|
|
movs r0, 0x5
|
|
b _08098BD2
|
|
_08098A72:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x5
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x5
|
|
bl sub_80018D8
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_80018D8
|
|
movs r0, 0x6
|
|
b _08098BD2
|
|
_08098AA0:
|
|
ldr r5, _08098B04
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
bl sub_80A2654
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
ldrh r2, [r5]
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
movs r3, 0x1
|
|
bl sub_800199C
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _08098B00
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
_08098B00:
|
|
movs r0, 0x7
|
|
b _08098BD2
|
|
.align 2, 0
|
|
_08098B04: .4byte gUnknown_20398C4
|
|
_08098B08:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0x51
|
|
bl sub_80018D8
|
|
ldr r0, _08098B54
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xA
|
|
bne _08098B4E
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
_08098B4E:
|
|
movs r0, 0x8
|
|
b _08098BD2
|
|
.align 2, 0
|
|
_08098B54: .4byte gUnknown_20398C4
|
|
_08098B58:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0x50
|
|
bl sub_80018D8
|
|
ldr r0, _08098B88
|
|
ldrb r2, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0x9
|
|
b _08098BD2
|
|
.align 2, 0
|
|
_08098B88: .4byte gUnknown_2039950
|
|
_08098B8C:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0x52
|
|
bl sub_80018D8
|
|
ldr r0, _08098BBC
|
|
movs r1, 0
|
|
ldrsh r2, [r0, r1]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
movs r2, 0x7
|
|
bl sub_80018D8
|
|
movs r0, 0xA
|
|
b _08098BD2
|
|
.align 2, 0
|
|
_08098BBC: .4byte gUnknown_20398C4
|
|
_08098BC0:
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x1
|
|
bl sub_80018D8
|
|
movs r0, 0x10
|
|
bl sub_80118C4
|
|
movs r0, 0xE
|
|
_08098BD2:
|
|
add sp, 0x8
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end xxx_script_related_8098468
|
|
|
|
thumb_func_start sub_8098BDC
|
|
sub_8098BDC:
|
|
push {lr}
|
|
bl sub_809B57C
|
|
bl GroundScript_Unlock
|
|
bl sub_809D25C
|
|
bl sub_80A59DC
|
|
bl sub_809B614
|
|
bl sub_809CA20
|
|
bl sub_80A6E80
|
|
bl sub_8099BE4
|
|
bl sub_8099744
|
|
bl sub_8011860
|
|
ldr r0, _08098C54
|
|
ldr r0, [r0]
|
|
bl sub_8094FB4
|
|
bl sub_800CB20
|
|
bl sub_800485C
|
|
bl nullsub_120
|
|
bl sub_80A5E70
|
|
bl sub_809B638
|
|
bl nullsub_106
|
|
bl sub_80A73EC
|
|
bl sub_8099750
|
|
bl sub_8009908
|
|
bl xxx_call_update_bg_sound_input
|
|
bl sub_80A6E68
|
|
bl GroundMap_Action
|
|
bl nullsub_124
|
|
bl GroundLives_Action
|
|
bl GroundObject_Action
|
|
bl GroundEffect_Action
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08098C54: .4byte gUnknown_203B47C
|
|
thumb_func_end sub_8098BDC
|
|
|
|
thumb_func_start sub_8098C58
|
|
sub_8098C58:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x36
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
bl sub_80015C0
|
|
bl sub_809CB8C
|
|
bl sub_8001D88
|
|
movs r0, 0
|
|
movs r1, 0x2A
|
|
bl sub_8001658
|
|
cmp r0, 0
|
|
beq _08098CA2
|
|
movs r0, 0
|
|
movs r1, 0x29
|
|
bl sub_8001658
|
|
adds r2, r0, 0
|
|
adds r2, 0x1
|
|
cmp r2, 0xF
|
|
ble _08098C90
|
|
movs r2, 0
|
|
_08098C90:
|
|
movs r0, 0
|
|
movs r1, 0x29
|
|
bl sub_80018D8
|
|
movs r0, 0
|
|
movs r1, 0x2A
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
_08098CA2:
|
|
movs r0, 0
|
|
movs r1, 0x42
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
adds r3, r0, 0
|
|
cmp r3, 0
|
|
bgt _08098CB4
|
|
movs r3, 0x1
|
|
_08098CB4:
|
|
subs r3, 0x1
|
|
movs r0, 0
|
|
movs r1, 0x42
|
|
movs r2, 0
|
|
bl sub_800199C
|
|
bl sub_8098CC8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8098C58
|
|
|
|
thumb_func_start sub_8098CC8
|
|
sub_8098CC8:
|
|
push {lr}
|
|
movs r0, 0x3
|
|
movs r1, 0xB
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08098CDE
|
|
movs r1, 0
|
|
b _08098D06
|
|
_08098CDE:
|
|
movs r0, 0x3
|
|
movs r1, 0xF
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08098CF2
|
|
movs r1, 0x1
|
|
b _08098D06
|
|
_08098CF2:
|
|
movs r0, 0x3
|
|
movs r1, 0x12
|
|
movs r2, 0
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
movs r1, 0x3
|
|
cmp r0, 0
|
|
beq _08098D06
|
|
movs r1, 0x2
|
|
_08098D06:
|
|
adds r0, r1, 0
|
|
bl sub_8091980
|
|
bl sub_809674C
|
|
bl sub_80961B4
|
|
bl sub_8091FB4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8098CC8
|
|
|
|
thumb_func_start sub_8098D1C
|
|
sub_8098D1C:
|
|
push {r4-r7,lr}
|
|
adds r7, r1, 0
|
|
adds r4, r2, 0
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r6, _08098D34
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
beq _08098D38
|
|
movs r0, 0
|
|
b _08098D60
|
|
.align 2, 0
|
|
_08098D34: .4byte gUnknown_20398A8
|
|
_08098D38:
|
|
ldr r1, _08098D68
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl Log
|
|
movs r1, 0x1
|
|
str r1, [r6]
|
|
ldr r0, _08098D6C
|
|
str r1, [r0]
|
|
ldr r0, _08098D70
|
|
str r4, [r0]
|
|
ldr r1, _08098D74
|
|
movs r0, 0x2
|
|
str r0, [r1]
|
|
ldr r0, _08098D78
|
|
strh r5, [r0]
|
|
ldr r0, _08098D7C
|
|
str r7, [r0]
|
|
movs r0, 0x1
|
|
_08098D60:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08098D68: .4byte gUnknown_8115F5C
|
|
_08098D6C: .4byte gUnknown_20398AC
|
|
_08098D70: .4byte gUnknown_20398B0
|
|
_08098D74: .4byte gUnknown_20398B4
|
|
_08098D78: .4byte gUnknown_20398BE
|
|
_08098D7C: .4byte gUnknown_20398C0
|
|
thumb_func_end sub_8098D1C
|
|
|
|
thumb_func_start sub_8098D80
|
|
sub_8098D80:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _08098DB8
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _08098DC4
|
|
movs r0, 0x3
|
|
str r0, [r1]
|
|
ldr r1, _08098DBC
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08098DC0
|
|
str r4, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0xD
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08098DB2
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
bl sub_80118C4
|
|
_08098DB2:
|
|
movs r0, 0x1
|
|
b _08098DC6
|
|
.align 2, 0
|
|
_08098DB8: .4byte gUnknown_20398A8
|
|
_08098DBC: .4byte gUnknown_20398AC
|
|
_08098DC0: .4byte gUnknown_20398B0
|
|
_08098DC4:
|
|
movs r0, 0
|
|
_08098DC6:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098D80
|
|
|
|
thumb_func_start sub_8098DCC
|
|
sub_8098DCC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r1, _08098E04
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _08098E10
|
|
movs r0, 0x4
|
|
str r0, [r1]
|
|
ldr r1, _08098E08
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08098E0C
|
|
str r4, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0xD
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08098DFE
|
|
lsls r0, r4, 16
|
|
lsrs r0, 16
|
|
bl sub_80118C4
|
|
_08098DFE:
|
|
movs r0, 0x1
|
|
b _08098E12
|
|
.align 2, 0
|
|
_08098E04: .4byte gUnknown_20398A8
|
|
_08098E08: .4byte gUnknown_20398AC
|
|
_08098E0C: .4byte gUnknown_20398B0
|
|
_08098E10:
|
|
movs r0, 0
|
|
_08098E12:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098DCC
|
|
|
|
thumb_func_start sub_8098E18
|
|
sub_8098E18:
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
adds r5, r2, 0
|
|
ldr r4, _08098E40
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _08098EA8
|
|
ldr r1, _08098E44
|
|
movs r0, 0
|
|
adds r3, r6, 0
|
|
bl Log
|
|
ldr r0, _08098E48
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08098E4C
|
|
movs r0, 0x7
|
|
b _08098E8A
|
|
.align 2, 0
|
|
_08098E40: .4byte gUnknown_20398A8
|
|
_08098E44: .4byte gUnknown_8115F80
|
|
_08098E48: .4byte gUnknown_203B49D
|
|
_08098E4C:
|
|
ldr r0, _08098E74
|
|
ldrb r0, [r0]
|
|
ldr r1, _08098E78
|
|
cmp r0, 0
|
|
bne _08098E58
|
|
strh r5, [r1]
|
|
_08098E58:
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80A2750
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x2
|
|
beq _08098E88
|
|
cmp r0, 0x2
|
|
bgt _08098E7C
|
|
cmp r0, 0x1
|
|
beq _08098E84
|
|
b _08098E8C
|
|
.align 2, 0
|
|
_08098E74: .4byte gUnknown_203B49C
|
|
_08098E78: .4byte gUnknown_20398C4
|
|
_08098E7C:
|
|
cmp r0, 0x4
|
|
bne _08098E8C
|
|
movs r0, 0x8
|
|
b _08098E8A
|
|
_08098E84:
|
|
movs r0, 0x5
|
|
b _08098E8A
|
|
_08098E88:
|
|
movs r0, 0x6
|
|
_08098E8A:
|
|
str r0, [r4]
|
|
_08098E8C:
|
|
ldr r0, _08098EA0
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
ldr r0, _08098EA4
|
|
str r6, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0x1
|
|
b _08098EAA
|
|
.align 2, 0
|
|
_08098EA0: .4byte gUnknown_20398AC
|
|
_08098EA4: .4byte gUnknown_20398B0
|
|
_08098EA8:
|
|
movs r0, 0
|
|
_08098EAA:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098E18
|
|
|
|
thumb_func_start sub_8098EB0
|
|
sub_8098EB0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _08098EE4
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
bne _08098EF8
|
|
ldr r0, _08098EE8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08098EF8
|
|
ldr r1, _08098EEC
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
bl Log
|
|
movs r0, 0x7
|
|
str r0, [r5]
|
|
ldr r1, _08098EF0
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08098EF4
|
|
str r4, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0x1
|
|
b _08098EFA
|
|
.align 2, 0
|
|
_08098EE4: .4byte gUnknown_20398A8
|
|
_08098EE8: .4byte gUnknown_203B49D
|
|
_08098EEC: .4byte gUnknown_8115FA4
|
|
_08098EF0: .4byte gUnknown_20398AC
|
|
_08098EF4: .4byte gUnknown_20398B0
|
|
_08098EF8:
|
|
movs r0, 0
|
|
_08098EFA:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098EB0
|
|
|
|
thumb_func_start sub_8098F00
|
|
sub_8098F00:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _08098F10
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08098F14
|
|
movs r0, 0
|
|
b _08098F32
|
|
.align 2, 0
|
|
_08098F10: .4byte gUnknown_20398A8
|
|
_08098F14:
|
|
ldr r1, _08098F38
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
bl Log
|
|
movs r0, 0x9
|
|
str r0, [r5]
|
|
ldr r1, _08098F3C
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08098F40
|
|
str r4, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0x1
|
|
_08098F32:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08098F38: .4byte gUnknown_8115FC8
|
|
_08098F3C: .4byte gUnknown_20398AC
|
|
_08098F40: .4byte gUnknown_20398B0
|
|
thumb_func_end sub_8098F00
|
|
|
|
thumb_func_start sub_8098F44
|
|
sub_8098F44:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
ldr r5, _08098F54
|
|
ldr r0, [r5]
|
|
cmp r0, 0
|
|
beq _08098F58
|
|
movs r0, 0
|
|
b _08098F76
|
|
.align 2, 0
|
|
_08098F54: .4byte gUnknown_20398A8
|
|
_08098F58:
|
|
ldr r1, _08098F7C
|
|
movs r0, 0
|
|
adds r2, r4, 0
|
|
bl Log
|
|
movs r0, 0xA
|
|
str r0, [r5]
|
|
ldr r1, _08098F80
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
ldr r0, _08098F84
|
|
str r4, [r0]
|
|
bl sub_809C730
|
|
movs r0, 0x1
|
|
_08098F76:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08098F7C: .4byte gUnknown_8115FE8
|
|
_08098F80: .4byte gUnknown_20398AC
|
|
_08098F84: .4byte gUnknown_20398B0
|
|
thumb_func_end sub_8098F44
|
|
|
|
thumb_func_start sub_8098F88
|
|
sub_8098F88:
|
|
ldr r0, _08098F90
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08098F90: .4byte gUnknown_20398B9
|
|
thumb_func_end sub_8098F88
|
|
|
|
thumb_func_start sub_8098F94
|
|
sub_8098F94:
|
|
ldr r0, _08098F9C
|
|
ldrb r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08098F9C: .4byte gUnknown_20398BA
|
|
thumb_func_end sub_8098F94
|
|
|
|
thumb_func_start sub_8098FA0
|
|
sub_8098FA0:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098FA0
|
|
|
|
thumb_func_start sub_8098FB4
|
|
sub_8098FB4:
|
|
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_8098FB4
|
|
|
|
thumb_func_start sub_8098FCC
|
|
sub_8098FCC:
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809909E
|
|
cmp r1, 0x51
|
|
bne _08098FF6
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
b _08098FF8
|
|
_08098FF6:
|
|
adds r0, r2, 0
|
|
_08098FF8:
|
|
bl sub_80A2608
|
|
adds r4, r0, 0
|
|
ldr r0, _0809900C
|
|
ldr r0, [r0]
|
|
cmp r0, 0x9
|
|
bne _08099010
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
b _080990B2
|
|
.align 2, 0
|
|
_0809900C: .4byte gUnknown_20398B4
|
|
_08099010:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0xB2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x17
|
|
bhi _080990AE
|
|
lsls r0, 2
|
|
ldr r1, _08099028
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08099028: .4byte _0809902C
|
|
.align 2, 0
|
|
_0809902C:
|
|
.4byte _0809908C
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990A2
|
|
.4byte _080990AE
|
|
.4byte _080990A2
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990A2
|
|
.4byte _080990AE
|
|
.4byte _080990AE
|
|
.4byte _080990A2
|
|
_0809908C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x2
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080990AE
|
|
_0809909E:
|
|
movs r0, 0xC
|
|
b _080990B2
|
|
_080990A2:
|
|
movs r0, 0x5
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809909E
|
|
_080990AE:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
_080990B2:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8098FCC
|
|
|
|
thumb_func_start sub_80990B8
|
|
sub_80990B8:
|
|
push {lr}
|
|
movs r0, 0xB
|
|
bl sub_8098FCC
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _080990D2
|
|
bl sub_8098FB4
|
|
b _080990E4
|
|
_080990D2:
|
|
ldr r1, _080990E8
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A2B18
|
|
_080990E4:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080990E8: .4byte gUnknown_811BAF4
|
|
thumb_func_end sub_80990B8
|
|
|
|
thumb_func_start sub_80990EC
|
|
sub_80990EC:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x80
|
|
adds r7, r0, 0
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2608
|
|
mov r8, r0
|
|
ldrb r0, [r0, 0xC]
|
|
movs r5, 0
|
|
strb r0, [r7]
|
|
movs r0, 0x1
|
|
strb r0, [r7, 0x1]
|
|
strb r5, [r7, 0xC]
|
|
adds r0, r4, 0
|
|
bl sub_80A2750
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
cmp r6, 0x2
|
|
beq _080991C8
|
|
cmp r6, 0x2
|
|
bgt _08099126
|
|
cmp r6, 0x1
|
|
beq _0809912C
|
|
b _080991CA
|
|
_08099126:
|
|
cmp r6, 0x4
|
|
beq _080991C4
|
|
b _080991CA
|
|
_0809912C:
|
|
movs r1, 0
|
|
strb r5, [r7, 0xB]
|
|
adds r0, r4, 0
|
|
subs r0, 0x25
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bhi _0809913E
|
|
movs r1, 0x1
|
|
_0809913E:
|
|
cmp r1, 0
|
|
beq _080991CA
|
|
strb r6, [r7, 0xC]
|
|
mov r0, sp
|
|
movs r1, 0x5B
|
|
bl sub_80A8EC0
|
|
add r4, sp, 0x18
|
|
adds r0, r4, 0
|
|
mov r1, sp
|
|
movs r2, 0xA
|
|
bl sub_8092310
|
|
add r5, sp, 0x30
|
|
str r4, [sp, 0x58]
|
|
add r1, sp, 0x5C
|
|
movs r2, 0
|
|
movs r0, 0x5E
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x5E
|
|
strb r2, [r0]
|
|
add r0, sp, 0x60
|
|
movs r1, 0x47
|
|
strb r1, [r0]
|
|
strb r2, [r0, 0x1]
|
|
add r1, sp, 0x64
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
strh r0, [r1]
|
|
movs r0, 0xE0
|
|
strh r0, [r1, 0x2]
|
|
movs r0, 0xAC
|
|
strh r0, [r1, 0x4]
|
|
movs r0, 0xBE
|
|
strh r0, [r1, 0x6]
|
|
add r1, sp, 0x6C
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
mov r0, sp
|
|
adds r0, 0x6E
|
|
movs r2, 0xF
|
|
strh r2, [r0]
|
|
add r0, sp, 0x70
|
|
strh r6, [r0]
|
|
adds r0, 0x2
|
|
movs r1, 0x19
|
|
strh r1, [r0]
|
|
strh r1, [r0, 0x2]
|
|
adds r0, 0x4
|
|
strh r2, [r0]
|
|
strh r2, [r0, 0x2]
|
|
ldr r0, _080991C0
|
|
str r0, [sp, 0x7C]
|
|
add r1, sp, 0x58
|
|
adds r0, r5, 0
|
|
movs r2, 0x28
|
|
bl memcpy
|
|
adds r0, r7, 0
|
|
adds r0, 0x18
|
|
adds r1, r5, 0
|
|
bl sub_808D144
|
|
b _080991CA
|
|
.align 2, 0
|
|
_080991C0: .4byte 0x000061a8
|
|
_080991C4:
|
|
strb r5, [r7, 0xB]
|
|
b _080991CA
|
|
_080991C8:
|
|
strb r6, [r7, 0xB]
|
|
_080991CA:
|
|
movs r0, 0
|
|
strb r0, [r7, 0x4]
|
|
strb r0, [r7, 0xD]
|
|
mov r1, r8
|
|
ldrb r0, [r1, 0x11]
|
|
add sp, 0x80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80990EC
|
|
|
|
thumb_func_start sub_80991E0
|
|
sub_80991E0:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r3, _08099204
|
|
ldrh r0, [r3]
|
|
strh r0, [r1]
|
|
ldr r0, _08099208
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809920C
|
|
movs r0, 0
|
|
ldrsh r1, [r3, r0]
|
|
adds r0, r2, 0
|
|
bl sub_80990EC
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _08099218
|
|
.align 2, 0
|
|
_08099204: .4byte gUnknown_20398C4
|
|
_08099208: .4byte gUnknown_203B49C
|
|
_0809920C:
|
|
ldr r1, _0809921C
|
|
adds r0, r2, 0
|
|
movs r2, 0x88
|
|
bl memcpy
|
|
movs r0, 0x1
|
|
_08099218:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809921C: .4byte gUnknown_20398C8
|
|
thumb_func_end sub_80991E0
|
|
|
|
thumb_func_start sub_8099220
|
|
sub_8099220:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
lsls r1, 16
|
|
asrs r3, r1, 16
|
|
cmp r2, 0
|
|
beq _08099258
|
|
ldr r1, _08099248
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, _0809924C
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r0, _08099250
|
|
strh r3, [r0]
|
|
ldr r0, _08099254
|
|
adds r1, r2, 0
|
|
movs r2, 0x88
|
|
bl memcpy
|
|
b _0809926A
|
|
.align 2, 0
|
|
_08099248: .4byte gUnknown_203B49C
|
|
_0809924C: .4byte gUnknown_203B49D
|
|
_08099250: .4byte gUnknown_20398C4
|
|
_08099254: .4byte gUnknown_20398C8
|
|
_08099258:
|
|
ldr r0, _08099270
|
|
strb r2, [r0]
|
|
ldr r0, _08099274
|
|
strb r2, [r0]
|
|
ldr r1, _08099278
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
_0809926A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099270: .4byte gUnknown_203B49C
|
|
_08099274: .4byte gUnknown_203B49D
|
|
_08099278: .4byte gUnknown_20398C4
|
|
thumb_func_end sub_8099220
|
|
|
|
thumb_func_start sub_809927C
|
|
sub_809927C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
ldr r0, _080992CC
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _080992D0
|
|
strb r1, [r0]
|
|
ldr r1, _080992D4
|
|
movs r0, 0x50
|
|
strh r0, [r1]
|
|
ldr r4, _080992D8
|
|
strb r5, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0x50
|
|
bl sub_80018D8
|
|
ldrb r2, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80018D8
|
|
ldr r4, _080992DC
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8095494
|
|
subs r4, 0x10
|
|
movs r1, 0
|
|
movs r0, 0x1
|
|
strb r0, [r4, 0xB]
|
|
strb r1, [r4, 0xC]
|
|
strb r1, [r4, 0x4]
|
|
strb r1, [r4, 0xD]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080992CC: .4byte gUnknown_203B49C
|
|
_080992D0: .4byte gUnknown_203B49D
|
|
_080992D4: .4byte gUnknown_20398C4
|
|
_080992D8: .4byte gUnknown_2039950
|
|
_080992DC: .4byte gUnknown_20398D8
|
|
thumb_func_end sub_809927C
|
|
|
|
thumb_func_start sub_80992E0
|
|
sub_80992E0:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _08099316
|
|
cmp r1, 0x50
|
|
beq _08099316
|
|
cmp r1, 0x51
|
|
beq _08099316
|
|
cmp r1, 0x52
|
|
beq _08099316
|
|
strh r1, [r4]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
strh r0, [r5]
|
|
movs r0, 0x1
|
|
b _08099322
|
|
_08099316:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
strh r0, [r4]
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
_08099322:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80992E0
|
|
|
|
thumb_func_start sub_8099328
|
|
sub_8099328:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x51
|
|
bne _08099358
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0x3E
|
|
bhi _08099358
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
b _0809935A
|
|
_08099358:
|
|
movs r0, 0
|
|
_0809935A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8099328
|
|
|
|
thumb_func_start sub_8099360
|
|
sub_8099360:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x52
|
|
beq _08099378
|
|
movs r0, 0
|
|
b _0809938E
|
|
_08099378:
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
ldrb r0, [r0, 0xC]
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_0809938E:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8099360
|
|
|
|
thumb_func_start sub_8099394
|
|
sub_8099394:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x50
|
|
beq _080993AC
|
|
movs r0, 0
|
|
b _080993B8
|
|
_080993AC:
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
strb r0, [r4]
|
|
movs r0, 0x1
|
|
_080993B8:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_8099394
|
|
|
|
thumb_func_start sub_80993C0
|
|
sub_80993C0:
|
|
push {lr}
|
|
lsls r0, 24
|
|
ldr r2, _080993D4
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
bne _080993CE
|
|
movs r1, 0x1
|
|
_080993CE:
|
|
strb r1, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080993D4: .4byte gUnknown_20398B8
|
|
thumb_func_end sub_80993C0
|
|
|
|
thumb_func_start sub_80993D8
|
|
sub_80993D8:
|
|
push {lr}
|
|
bl sub_80A4B38
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80993D8
|
|
|
|
thumb_func_start sub_80993E4
|
|
sub_80993E4:
|
|
push {lr}
|
|
bl sub_80A4B54
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80993E4
|
|
|
|
thumb_func_start sub_80993F0
|
|
sub_80993F0:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x28
|
|
movs r0, 0
|
|
mov r10, r0
|
|
bl sub_801180C
|
|
movs r0, 0x10
|
|
bl sub_80118C4
|
|
ldr r1, _0809948C
|
|
ldr r2, _08099490
|
|
adds r0, r2, 0
|
|
strh r0, [r1]
|
|
movs r0, 0
|
|
bl xxx_update_some_bg_tiles
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80095CC
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8009408
|
|
bl sub_8099648
|
|
bl sub_809975C
|
|
bl sub_809D0AC
|
|
bl sub_8014144
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
bl sub_80A4A7C
|
|
mov r7, sp
|
|
add r0, sp, 0x8
|
|
mov r8, r0
|
|
_08099454:
|
|
bl sub_801D9E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809949C
|
|
mov r0, r10
|
|
bl sub_801DA58
|
|
_08099464:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
movs r0, 0
|
|
bl sub_8012A18
|
|
bl sub_801DA78
|
|
cmp r0, 0x2
|
|
beq _08099494
|
|
cmp r0, 0x3
|
|
bne _08099464
|
|
bl sub_801DAC0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r10, r0
|
|
b _080994A2
|
|
.align 2, 0
|
|
_0809948C: .4byte gUnknown_2026E4E
|
|
_08099490: .4byte 0x00000808
|
|
_08099494:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r10, r1
|
|
b _080994A2
|
|
_0809949C:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
mov r10, r2
|
|
_080994A2:
|
|
bl sub_801DB0C
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r10, r0
|
|
bne _080994B0
|
|
b _08099624
|
|
_080994B0:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
bl sub_80A4AEC
|
|
bl sub_809D0BC
|
|
mov r0, r10
|
|
bl GroundMap_Select
|
|
mov r0, sp
|
|
mov r1, r8
|
|
bl sub_80A579C
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
str r0, [r7, 0x4]
|
|
mov r2, r8
|
|
ldr r0, [r2, 0x4]
|
|
adds r0, r1
|
|
str r0, [r2, 0x4]
|
|
ldr r0, [sp]
|
|
ldr r1, _08099520
|
|
adds r0, r1
|
|
str r0, [sp]
|
|
ldr r0, [r7, 0x4]
|
|
adds r0, r1
|
|
str r0, [r7, 0x4]
|
|
ldr r0, [sp, 0x8]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
str r0, [sp, 0x8]
|
|
mov r0, r8
|
|
ldr r1, [r0, 0x4]
|
|
adds r1, r2
|
|
str r1, [r0, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
ldr r0, [sp]
|
|
subs r0, r2, r0
|
|
str r0, [sp, 0x20]
|
|
ldr r0, [r7, 0x4]
|
|
subs r0, r1, r0
|
|
str r0, [sp, 0x24]
|
|
movs r4, 0
|
|
movs r5, 0
|
|
movs r0, 0x4
|
|
bl sub_80999E8
|
|
mov r9, r5
|
|
b _08099604
|
|
.align 2, 0
|
|
_08099520: .4byte 0xfffffc00
|
|
_08099524:
|
|
ldr r0, _0809953C
|
|
ldrh r1, [r0, 0x2]
|
|
ldrh r6, [r0]
|
|
movs r0, 0x4
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _08099540
|
|
bl sub_80999FC
|
|
movs r1, 0x1
|
|
mov r9, r1
|
|
b _080995AE
|
|
.align 2, 0
|
|
_0809953C: .4byte gUnknown_20255F0
|
|
_08099540:
|
|
adds r0, r6, 0
|
|
bl sub_809CFE8
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
cmp r1, r2
|
|
beq _0809959A
|
|
add r0, sp, 0x10
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
bl sub_8002BB8
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x14]
|
|
movs r0, 0x2
|
|
ands r6, r0
|
|
cmp r6, 0
|
|
beq _0809956A
|
|
movs r0, 0x4
|
|
_0809956A:
|
|
adds r1, r0, 0
|
|
muls r1, r2
|
|
adds r1, r4
|
|
adds r4, r1, 0
|
|
muls r0, r3
|
|
adds r5, r0
|
|
cmp r1, 0
|
|
bge _0809957E
|
|
movs r4, 0
|
|
b _08099588
|
|
_0809957E:
|
|
ldr r0, [sp, 0x20]
|
|
cmp r4, r0
|
|
blt _08099588
|
|
adds r4, r0, 0
|
|
subs r4, 0x1
|
|
_08099588:
|
|
cmp r5, 0
|
|
bge _08099590
|
|
movs r5, 0
|
|
b _0809959A
|
|
_08099590:
|
|
ldr r1, [sp, 0x24]
|
|
cmp r5, r1
|
|
blt _0809959A
|
|
adds r5, r1, 0
|
|
subs r5, 0x1
|
|
_0809959A:
|
|
ldr r0, [sp]
|
|
adds r0, r4
|
|
str r0, [sp, 0x18]
|
|
ldr r0, [r7, 0x4]
|
|
adds r0, r5
|
|
add r1, sp, 0x18
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0
|
|
bl sub_809D158
|
|
_080995AE:
|
|
bl sub_809D25C
|
|
bl sub_80A59DC
|
|
bl xxx_draw_string_80144C4
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
bl sub_80060EC
|
|
ldr r0, _08099620
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xA]
|
|
bl nullsub_8
|
|
bl sub_8005180
|
|
bl sub_8099BE4
|
|
bl sub_8099744
|
|
bl sub_8011860
|
|
bl sub_800CB20
|
|
bl sub_800485C
|
|
bl nullsub_120
|
|
bl sub_80A5E70
|
|
bl xxx_call_update_bg_vram
|
|
bl CopySpritesToOam
|
|
bl sub_8005304
|
|
bl sub_8099750
|
|
bl sub_8009908
|
|
_08099604:
|
|
bl xxx_call_update_bg_sound_input
|
|
movs r0, 0
|
|
bl ResetSprites
|
|
mov r2, r9
|
|
cmp r2, 0
|
|
beq _08099524
|
|
bl sub_8099B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080995AE
|
|
b _08099454
|
|
.align 2, 0
|
|
_08099620: .4byte gUnknown_203B46C
|
|
_08099624:
|
|
movs r0, 0x10
|
|
bl sub_80118C4
|
|
bl sub_80A4AC4
|
|
bl sub_8099768
|
|
bl nullsub_103
|
|
add sp, 0x28
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80993F0
|
|
|
|
thumb_func_start sub_8099648
|
|
sub_8099648:
|
|
push {lr}
|
|
bl sub_8003600
|
|
bl sub_809965C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099648
|
|
|
|
thumb_func_start nullsub_103
|
|
nullsub_103:
|
|
bx lr
|
|
thumb_func_end nullsub_103
|
|
|
|
thumb_func_start sub_809965C
|
|
sub_809965C:
|
|
push {r4,lr}
|
|
movs r0, 0
|
|
bl sub_8099690
|
|
ldr r0, _08099688
|
|
ldr r1, _0809968C
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r4, r0, 0
|
|
movs r0, 0xF8
|
|
lsls r0, 1
|
|
ldr r1, [r4, 0x4]
|
|
movs r2, 0x10
|
|
bl sub_800388C
|
|
adds r0, r4, 0
|
|
bl CloseFile
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099688: .4byte gUnknown_811601C
|
|
_0809968C: .4byte gUnknown_8300500
|
|
thumb_func_end sub_809965C
|
|
|
|
thumb_func_start sub_8099690
|
|
sub_8099690:
|
|
push {r4-r6,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, _080996BC
|
|
ldr r1, _080996C0
|
|
bl OpenFileAndGetFileDataPtr
|
|
adds r6, r0, 0
|
|
cmp r4, 0x1
|
|
beq _080996CC
|
|
cmp r4, 0x2
|
|
beq _080996D4
|
|
ldr r0, _080996C4
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xB]
|
|
ldr r4, _080996C8
|
|
cmp r0, 0
|
|
beq _080996D6
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
adds r4, r0
|
|
b _080996D6
|
|
.align 2, 0
|
|
_080996BC: .4byte gUnknown_8116028
|
|
_080996C0: .4byte gUnknown_8300500
|
|
_080996C4: .4byte gUnknown_203B46C
|
|
_080996C8: .4byte gUnknown_202D078
|
|
_080996CC:
|
|
ldr r4, _080996D0
|
|
b _080996D6
|
|
.align 2, 0
|
|
_080996D0: .4byte gUnknown_202D1B8
|
|
_080996D4:
|
|
ldr r4, _08099704
|
|
_080996D6:
|
|
movs r0, 0xF0
|
|
adds r1, r4, 0
|
|
movs r2, 0x10
|
|
bl sub_800388C
|
|
adds r5, r4, 0
|
|
movs r4, 0
|
|
_080996E4:
|
|
adds r0, r4, 0
|
|
adds r0, 0xF0
|
|
adds r1, r5, 0
|
|
adds r5, 0x4
|
|
bl nullsub_5
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _080996E4
|
|
adds r0, r6, 0
|
|
bl CloseFile
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099704: .4byte gUnknown_202D1F8
|
|
thumb_func_end sub_8099690
|
|
|
|
thumb_func_start sub_8099708
|
|
sub_8099708:
|
|
push {lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_8003810
|
|
add sp, 0x4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099708
|
|
|
|
thumb_func_start sub_809971C
|
|
sub_809971C:
|
|
push {r4-r6,lr}
|
|
adds r6, r1, 0
|
|
lsls r0, 16
|
|
lsrs r5, r0, 16
|
|
cmp r2, 0
|
|
ble _0809973E
|
|
adds r4, r2, 0
|
|
_0809972A:
|
|
adds r0, r5, 0
|
|
adds r1, r0, 0x1
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
ldm r6!, {r1}
|
|
bl sub_8003810
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
bne _0809972A
|
|
_0809973E:
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809971C
|
|
|
|
thumb_func_start sub_8099744
|
|
sub_8099744:
|
|
push {lr}
|
|
bl sub_80039B8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099744
|
|
|
|
thumb_func_start sub_8099750
|
|
sub_8099750:
|
|
push {lr}
|
|
bl TransferBGPaletteBuffer
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099750
|
|
|
|
thumb_func_start sub_809975C
|
|
sub_809975C:
|
|
push {lr}
|
|
bl sub_809977C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809975C
|
|
|
|
thumb_func_start sub_8099768
|
|
sub_8099768:
|
|
push {lr}
|
|
bl sub_809977C
|
|
bl sub_8099744
|
|
bl sub_8099750
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099768
|
|
|
|
thumb_func_start sub_809977C
|
|
sub_809977C:
|
|
push {r4-r6,lr}
|
|
mov r6, r8
|
|
push {r6}
|
|
ldr r1, _080997DC
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
ldr r1, _080997E0
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
ldr r6, _080997E4
|
|
adds r0, r6, 0
|
|
bl sub_8099838
|
|
ldr r0, _080997E8
|
|
mov r8, r0
|
|
bl sub_8099838
|
|
ldr r4, _080997EC
|
|
adds r0, r4, 0
|
|
bl sub_8099838
|
|
subs r4, 0x8
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
movs r5, 0x80
|
|
lsls r5, 1
|
|
strh r5, [r4, 0x14]
|
|
strh r0, [r6, 0xC]
|
|
bl sub_8099DD0
|
|
mov r0, r8
|
|
strh r5, [r0, 0xC]
|
|
adds r0, r5, 0
|
|
bl sub_8099E58
|
|
ldr r1, _080997F0
|
|
movs r2, 0
|
|
adds r0, r1, 0
|
|
adds r0, 0x40
|
|
_080997CA:
|
|
strh r2, [r0]
|
|
subs r0, 0x2
|
|
cmp r0, r1
|
|
bge _080997CA
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080997DC: .4byte gUnknown_2039990
|
|
_080997E0: .4byte gUnknown_2039992
|
|
_080997E4: .4byte gUnknown_2039958
|
|
_080997E8: .4byte gUnknown_2039968
|
|
_080997EC: .4byte gUnknown_2039980
|
|
_080997F0: .4byte gUnknown_2039998
|
|
thumb_func_end sub_809977C
|
|
|
|
thumb_func_start sub_80997F4
|
|
sub_80997F4:
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _08099818
|
|
lsrs r0, 15
|
|
adds r0, r2
|
|
strh r1, [r0]
|
|
ldr r0, _0809981C
|
|
bl sub_8099848
|
|
ldr r0, _08099820
|
|
bl sub_8099848
|
|
ldr r0, _08099824
|
|
bl sub_8099848
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099818: .4byte gUnknown_2039998
|
|
_0809981C: .4byte gUnknown_2039958
|
|
_08099820: .4byte gUnknown_2039968
|
|
_08099824: .4byte gUnknown_2039980
|
|
thumb_func_end sub_80997F4
|
|
|
|
thumb_func_start sub_8099828
|
|
sub_8099828:
|
|
lsls r0, 16
|
|
ldr r1, _08099834
|
|
lsrs r0, 15
|
|
adds r0, r1
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08099834: .4byte gUnknown_2039998
|
|
thumb_func_end sub_8099828
|
|
|
|
thumb_func_start sub_8099838
|
|
sub_8099838:
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
movs r1, 0
|
|
strh r1, [r0, 0xC]
|
|
strh r1, [r0, 0x4]
|
|
strh r1, [r0, 0x6]
|
|
bx lr
|
|
thumb_func_end sub_8099838
|
|
|
|
thumb_func_start sub_8099848
|
|
sub_8099848:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _08099856
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
_08099856:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099848
|
|
|
|
thumb_func_start sub_809985C
|
|
sub_809985C:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
blt _08099872
|
|
cmp r1, 0
|
|
bne _08099874
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r2, 0xC]
|
|
movs r0, 0x1
|
|
b _08099876
|
|
_08099872:
|
|
movs r1, 0x1E
|
|
_08099874:
|
|
movs r0, 0x2
|
|
_08099876:
|
|
str r0, [r2]
|
|
strh r1, [r2, 0x4]
|
|
strh r1, [r2, 0x6]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809985C
|
|
|
|
thumb_func_start sub_8099880
|
|
sub_8099880:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
cmp r1, 0
|
|
blt _08099892
|
|
cmp r1, 0
|
|
bne _08099894
|
|
strh r1, [r2, 0xC]
|
|
movs r0, 0x1
|
|
b _08099896
|
|
_08099892:
|
|
movs r1, 0x1E
|
|
_08099894:
|
|
movs r0, 0x3
|
|
_08099896:
|
|
str r0, [r2]
|
|
strh r1, [r2, 0x4]
|
|
strh r1, [r2, 0x6]
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099880
|
|
|
|
thumb_func_start sub_80998A0
|
|
sub_80998A0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
cmp r1, 0
|
|
bge _080998B2
|
|
movs r1, 0x1E
|
|
_080998B2:
|
|
cmp r2, r3
|
|
bls _080998BE
|
|
movs r0, 0x5
|
|
str r0, [r4]
|
|
subs r0, r2, r3
|
|
b _080998D0
|
|
_080998BE:
|
|
cmp r2, r3
|
|
bcs _080998CA
|
|
movs r0, 0x4
|
|
str r0, [r4]
|
|
subs r0, r3, r2
|
|
b _080998D0
|
|
_080998CA:
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
movs r0, 0
|
|
_080998D0:
|
|
strh r0, [r4, 0xA]
|
|
strh r1, [r4, 0x4]
|
|
strh r1, [r4, 0x6]
|
|
strh r2, [r4, 0xC]
|
|
strh r3, [r4, 0x8]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80998A0
|
|
|
|
thumb_func_start sub_80998E0
|
|
sub_80998E0:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r0, [r4]
|
|
cmp r0, 0x5
|
|
bhi _080999CA
|
|
lsls r0, 2
|
|
ldr r1, _080998F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080998F4: .4byte _080998F8
|
|
.align 2, 0
|
|
_080998F8:
|
|
.4byte _080999CA
|
|
.4byte _080999C2
|
|
.4byte _08099910
|
|
.4byte _08099946
|
|
.4byte _08099976
|
|
.4byte _0809999A
|
|
_08099910:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _08099940
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 8
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
adds r1, r2, 0
|
|
subs r1, r0
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldrh r0, [r4, 0xC]
|
|
cmp r0, r1
|
|
bcs _080999C6
|
|
strh r1, [r4, 0xC]
|
|
b _080999C6
|
|
_08099940:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
b _080999C0
|
|
_08099946:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
movs r1, 0
|
|
strh r0, [r4, 0x4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _08099970
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
lsls r0, 8
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldrh r0, [r4, 0xC]
|
|
cmp r0, r1
|
|
bls _080999C6
|
|
strh r1, [r4, 0xC]
|
|
b _080999C6
|
|
_08099970:
|
|
strh r1, [r4, 0xC]
|
|
str r1, [r4]
|
|
b _080999C6
|
|
_08099976:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080999BE
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
ldrh r0, [r4, 0xA]
|
|
muls r0, r1
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x8]
|
|
subs r1, r0
|
|
strh r1, [r4, 0xC]
|
|
b _080999C6
|
|
_0809999A:
|
|
ldrh r0, [r4, 0x4]
|
|
subs r0, 0x1
|
|
strh r0, [r4, 0x4]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080999BE
|
|
movs r0, 0x4
|
|
ldrsh r1, [r4, r0]
|
|
ldrh r0, [r4, 0xA]
|
|
muls r0, r1
|
|
movs r2, 0x6
|
|
ldrsh r1, [r4, r2]
|
|
bl __divsi3
|
|
ldrh r1, [r4, 0x8]
|
|
adds r1, r0
|
|
strh r1, [r4, 0xC]
|
|
b _080999C6
|
|
_080999BE:
|
|
ldrh r0, [r4, 0x8]
|
|
_080999C0:
|
|
strh r0, [r4, 0xC]
|
|
_080999C2:
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_080999C6:
|
|
movs r0, 0x1
|
|
b _080999CC
|
|
_080999CA:
|
|
movs r0, 0
|
|
_080999CC:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80998E0
|
|
|
|
thumb_func_start sub_80999D4
|
|
sub_80999D4:
|
|
ldr r2, _080999E0
|
|
movs r1, 0x1
|
|
strb r1, [r2]
|
|
ldr r1, _080999E4
|
|
strh r0, [r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080999E0: .4byte gUnknown_2039990
|
|
_080999E4: .4byte gUnknown_2039992
|
|
thumb_func_end sub_80999D4
|
|
|
|
thumb_func_start sub_80999E8
|
|
sub_80999E8:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _080999F8
|
|
bl sub_809985C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080999F8: .4byte gUnknown_2039958
|
|
thumb_func_end sub_80999E8
|
|
|
|
thumb_func_start sub_80999FC
|
|
sub_80999FC:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08099A0C
|
|
bl sub_8099880
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099A0C: .4byte gUnknown_2039958
|
|
thumb_func_end sub_80999FC
|
|
|
|
thumb_func_start sub_8099A10
|
|
sub_8099A10:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
lsls r3, 16
|
|
lsrs r3, 16
|
|
ldr r0, _08099A30
|
|
adds r1, r5, 0
|
|
adds r2, r4, 0
|
|
bl sub_80998A0
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099A30: .4byte gUnknown_2039958
|
|
thumb_func_end sub_8099A10
|
|
|
|
thumb_func_start sub_8099A34
|
|
sub_8099A34:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08099A44
|
|
bl sub_809985C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099A44: .4byte gUnknown_2039968
|
|
thumb_func_end sub_8099A34
|
|
|
|
thumb_func_start sub_8099A48
|
|
sub_8099A48:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _08099A58
|
|
bl sub_8099880
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099A58: .4byte gUnknown_2039968
|
|
thumb_func_end sub_8099A48
|
|
|
|
thumb_func_start sub_8099A5C
|
|
sub_8099A5C:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
str r2, [sp]
|
|
ldr r0, _08099A88
|
|
str r4, [r0]
|
|
ldr r2, [sp]
|
|
str r2, [r0, 0x4]
|
|
movs r2, 0
|
|
strh r2, [r0, 0x14]
|
|
adds r0, 0x8
|
|
bl sub_809985C
|
|
subs r0, r4, 0x1
|
|
cmp r0, 0xD
|
|
bhi _08099AF0
|
|
lsls r0, 2
|
|
ldr r1, _08099A8C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08099A88: .4byte gUnknown_2039978
|
|
_08099A8C: .4byte _08099A90
|
|
.align 2, 0
|
|
_08099A90:
|
|
.4byte _08099AC8
|
|
.4byte _08099AF0
|
|
.4byte _08099AC8
|
|
.4byte _08099AF0
|
|
.4byte _08099AE8
|
|
.4byte _08099AF0
|
|
.4byte _08099AE8
|
|
.4byte _08099AF0
|
|
.4byte _08099AE0
|
|
.4byte _08099AF0
|
|
.4byte _08099AE0
|
|
.4byte _08099AF0
|
|
.4byte _08099AE8
|
|
.4byte _08099AE8
|
|
_08099AC8:
|
|
ldr r0, _08099AD8
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
strh r1, [r0, 0xC]
|
|
ldr r0, _08099ADC
|
|
strh r1, [r0, 0xC]
|
|
b _08099AF0
|
|
.align 2, 0
|
|
_08099AD8: .4byte gUnknown_2039968
|
|
_08099ADC: .4byte gUnknown_2039958
|
|
_08099AE0:
|
|
ldr r1, _08099AE4
|
|
b _08099AEA
|
|
.align 2, 0
|
|
_08099AE4: .4byte gUnknown_2039968
|
|
_08099AE8:
|
|
ldr r1, _08099AF8
|
|
_08099AEA:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
strh r0, [r1, 0xC]
|
|
_08099AF0:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099AF8: .4byte gUnknown_2039958
|
|
thumb_func_end sub_8099A5C
|
|
|
|
thumb_func_start sub_8099AFC
|
|
sub_8099AFC:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
str r2, [sp]
|
|
ldr r0, _08099B28
|
|
str r4, [r0]
|
|
ldr r2, [sp]
|
|
str r2, [r0, 0x4]
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
strh r2, [r0, 0x14]
|
|
adds r0, 0x8
|
|
bl sub_8099880
|
|
subs r0, r4, 0x2
|
|
cmp r0, 0xC
|
|
bhi _08099B86
|
|
lsls r0, 2
|
|
ldr r1, _08099B2C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08099B28: .4byte gUnknown_2039978
|
|
_08099B2C: .4byte _08099B30
|
|
.align 2, 0
|
|
_08099B30:
|
|
.4byte _08099B64
|
|
.4byte _08099B86
|
|
.4byte _08099B64
|
|
.4byte _08099B86
|
|
.4byte _08099B80
|
|
.4byte _08099B86
|
|
.4byte _08099B80
|
|
.4byte _08099B86
|
|
.4byte _08099B78
|
|
.4byte _08099B86
|
|
.4byte _08099B78
|
|
.4byte _08099B80
|
|
.4byte _08099B80
|
|
_08099B64:
|
|
ldr r0, _08099B70
|
|
movs r1, 0
|
|
strh r1, [r0, 0xC]
|
|
ldr r0, _08099B74
|
|
strh r1, [r0, 0xC]
|
|
b _08099B86
|
|
.align 2, 0
|
|
_08099B70: .4byte gUnknown_2039968
|
|
_08099B74: .4byte gUnknown_2039958
|
|
_08099B78:
|
|
ldr r1, _08099B7C
|
|
b _08099B82
|
|
.align 2, 0
|
|
_08099B7C: .4byte gUnknown_2039968
|
|
_08099B80:
|
|
ldr r1, _08099B90
|
|
_08099B82:
|
|
movs r0, 0
|
|
strh r0, [r1, 0xC]
|
|
_08099B86:
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099B90: .4byte gUnknown_2039958
|
|
thumb_func_end sub_8099AFC
|
|
|
|
thumb_func_start sub_8099B94
|
|
sub_8099B94:
|
|
push {lr}
|
|
ldr r0, _08099BA4
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08099BA8
|
|
movs r0, 0x1
|
|
b _08099BD6
|
|
.align 2, 0
|
|
_08099BA4: .4byte gUnknown_2039990
|
|
_08099BA8:
|
|
ldr r1, _08099BBC
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
beq _08099BC0
|
|
ldr r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
beq _08099BD6
|
|
movs r0, 0x1
|
|
b _08099BD6
|
|
.align 2, 0
|
|
_08099BBC: .4byte gUnknown_2039978
|
|
_08099BC0:
|
|
movs r1, 0
|
|
ldr r0, _08099BDC
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _08099BD2
|
|
ldr r0, _08099BE0
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _08099BD4
|
|
_08099BD2:
|
|
movs r1, 0x1
|
|
_08099BD4:
|
|
adds r0, r1, 0
|
|
_08099BD6:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_08099BDC: .4byte gUnknown_2039958
|
|
_08099BE0: .4byte gUnknown_2039968
|
|
thumb_func_end sub_8099B94
|
|
|
|
thumb_func_start sub_8099BE4
|
|
sub_8099BE4:
|
|
push {r4,r5,lr}
|
|
ldr r4, _08099C10
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _08099BF6
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
bne _08099BF6
|
|
b _08099D08
|
|
_08099BF6:
|
|
adds r0, r4, 0
|
|
adds r0, 0x8
|
|
bl sub_80998E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08099C14
|
|
ldrh r0, [r4, 0x14]
|
|
ldr r1, [r4, 0x4]
|
|
bl sub_8099E80
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099C10: .4byte gUnknown_2039978
|
|
_08099C14:
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
beq _08099C1C
|
|
b _08099DC0
|
|
_08099C1C:
|
|
ldr r0, [r4]
|
|
cmp r0, 0xE
|
|
bls _08099C24
|
|
b _08099DC0
|
|
_08099C24:
|
|
lsls r0, 2
|
|
ldr r1, _08099C30
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08099C30: .4byte _08099C34
|
|
.align 2, 0
|
|
_08099C34:
|
|
.4byte _08099DC0
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099C70
|
|
.4byte _08099CD8
|
|
.4byte _08099CD8
|
|
.4byte _08099CD8
|
|
_08099C70:
|
|
ldr r0, _08099C80
|
|
ldrh r1, [r0, 0x14]
|
|
adds r3, r0, 0
|
|
cmp r1, 0xFF
|
|
bls _08099C84
|
|
movs r0, 0
|
|
str r0, [r3]
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099C80: .4byte gUnknown_2039978
|
|
_08099C84:
|
|
ldr r0, _08099CA0
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
bne _08099C8E
|
|
b _08099DC0
|
|
_08099C8E:
|
|
movs r2, 0
|
|
ldr r0, [r3]
|
|
cmp r0, 0x3
|
|
beq _08099CB2
|
|
cmp r0, 0x3
|
|
bhi _08099CA4
|
|
cmp r0, 0x1
|
|
beq _08099CAE
|
|
b _08099CBC
|
|
.align 2, 0
|
|
_08099CA0: .4byte gUnknown_2039990
|
|
_08099CA4:
|
|
cmp r0, 0x5
|
|
beq _08099CB6
|
|
cmp r0, 0x7
|
|
beq _08099CBA
|
|
b _08099CBC
|
|
_08099CAE:
|
|
movs r2, 0x2
|
|
b _08099CC0
|
|
_08099CB2:
|
|
movs r2, 0x4
|
|
b _08099CC0
|
|
_08099CB6:
|
|
movs r2, 0x6
|
|
b _08099CC0
|
|
_08099CBA:
|
|
movs r2, 0x8
|
|
_08099CBC:
|
|
cmp r2, 0
|
|
beq _08099CD4
|
|
_08099CC0:
|
|
ldr r0, _08099CD0
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
adds r0, r2, 0
|
|
ldr r2, [r3, 0x4]
|
|
bl sub_8099AFC
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099CD0: .4byte gUnknown_2039992
|
|
_08099CD4:
|
|
str r2, [r3]
|
|
b _08099DC0
|
|
_08099CD8:
|
|
ldr r2, _08099CE4
|
|
ldrh r0, [r2, 0x14]
|
|
cmp r0, 0
|
|
bne _08099CE8
|
|
str r0, [r2]
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099CE4: .4byte gUnknown_2039978
|
|
_08099CE8:
|
|
ldr r0, _08099D00
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08099DC0
|
|
ldr r0, [r2]
|
|
ldr r1, _08099D04
|
|
movs r3, 0
|
|
ldrsh r1, [r1, r3]
|
|
ldr r2, [r2, 0x4]
|
|
bl sub_8099AFC
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099D00: .4byte gUnknown_2039990
|
|
_08099D04: .4byte gUnknown_2039992
|
|
_08099D08:
|
|
ldr r0, _08099D88
|
|
ldrb r0, [r0]
|
|
cmp r0, 0
|
|
beq _08099D98
|
|
movs r5, 0x1
|
|
ldr r4, _08099D8C
|
|
ldrh r0, [r4, 0xC]
|
|
cmp r0, 0
|
|
bne _08099D20
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08099D46
|
|
_08099D20:
|
|
movs r5, 0
|
|
ldr r0, [r4]
|
|
cmp r0, 0x3
|
|
beq _08099D34
|
|
ldr r0, _08099D90
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r4, 0
|
|
bl sub_8099880
|
|
_08099D34:
|
|
adds r0, r4, 0
|
|
bl sub_80998E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08099D46
|
|
ldrh r0, [r4, 0xC]
|
|
bl sub_8099DD0
|
|
_08099D46:
|
|
ldr r4, _08099D94
|
|
ldrh r0, [r4, 0xC]
|
|
cmp r0, 0
|
|
bne _08099D54
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
beq _08099D7A
|
|
_08099D54:
|
|
movs r5, 0
|
|
ldr r0, [r4]
|
|
cmp r0, 0x3
|
|
beq _08099D68
|
|
ldr r0, _08099D90
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
adds r0, r4, 0
|
|
bl sub_8099880
|
|
_08099D68:
|
|
adds r0, r4, 0
|
|
bl sub_80998E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08099D7A
|
|
ldrh r0, [r4, 0xC]
|
|
bl sub_8099E58
|
|
_08099D7A:
|
|
cmp r5, 0
|
|
beq _08099DC0
|
|
ldr r1, _08099D88
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
b _08099DC0
|
|
.align 2, 0
|
|
_08099D88: .4byte gUnknown_2039990
|
|
_08099D8C: .4byte gUnknown_2039958
|
|
_08099D90: .4byte gUnknown_2039992
|
|
_08099D94: .4byte gUnknown_2039968
|
|
_08099D98:
|
|
ldr r4, _08099DC8
|
|
adds r0, r4, 0
|
|
bl sub_80998E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08099DAC
|
|
ldrh r0, [r4, 0xC]
|
|
bl sub_8099DD0
|
|
_08099DAC:
|
|
ldr r4, _08099DCC
|
|
adds r0, r4, 0
|
|
bl sub_80998E0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08099DC0
|
|
ldrh r0, [r4, 0xC]
|
|
bl sub_8099E58
|
|
_08099DC0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_08099DC8: .4byte gUnknown_2039958
|
|
_08099DCC: .4byte gUnknown_2039968
|
|
thumb_func_end sub_8099BE4
|
|
|
|
thumb_func_start sub_8099DD0
|
|
sub_8099DD0:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
lsrs r7, r0, 16
|
|
movs r4, 0
|
|
ldr r6, _08099DF4
|
|
movs r5, 0xD
|
|
_08099DDC:
|
|
ldrh r1, [r6]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099DF8
|
|
lsrs r0, r4, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099E00
|
|
.align 2, 0
|
|
_08099DF4: .4byte gUnknown_2039998
|
|
_08099DF8:
|
|
lsrs r0, r4, 16
|
|
adds r1, r7, 0
|
|
bl sub_8003664
|
|
_08099E00:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r4, r0
|
|
adds r6, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08099DDC
|
|
ldr r0, _08099E30
|
|
movs r4, 0x80
|
|
lsls r4, 13
|
|
adds r6, r0, 0
|
|
adds r6, 0x20
|
|
movs r5, 0xE
|
|
_08099E1A:
|
|
ldrh r1, [r6]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099E34
|
|
lsrs r0, r4, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099E3C
|
|
.align 2, 0
|
|
_08099E30: .4byte gUnknown_2039998
|
|
_08099E34:
|
|
lsrs r0, r4, 16
|
|
adds r1, r7, 0
|
|
bl sub_8003664
|
|
_08099E3C:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r4, r0
|
|
adds r6, 0x2
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _08099E1A
|
|
movs r0, 0x20
|
|
adds r1, r7, 0
|
|
bl sub_8003664
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099DD0
|
|
|
|
thumb_func_start sub_8099E58
|
|
sub_8099E58:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
lsrs r4, 16
|
|
movs r0, 0xF
|
|
adds r1, r4, 0
|
|
bl sub_8003664
|
|
movs r0, 0xE
|
|
adds r1, r4, 0
|
|
bl sub_8003664
|
|
movs r0, 0x1F
|
|
adds r1, r4, 0
|
|
bl sub_8003664
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099E58
|
|
|
|
thumb_func_start sub_8099E80
|
|
sub_8099E80:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x4
|
|
str r1, [sp]
|
|
lsls r0, 16
|
|
lsrs r6, r0, 16
|
|
ldr r0, _08099EA0
|
|
ldr r1, [r0]
|
|
adds r2, r0, 0
|
|
cmp r1, 0xE
|
|
bls _08099E96
|
|
b _0809A558
|
|
_08099E96:
|
|
lsls r0, r1, 2
|
|
ldr r1, _08099EA4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08099EA0: .4byte gUnknown_2039978
|
|
_08099EA4: .4byte _08099EA8
|
|
.align 2, 0
|
|
_08099EA8:
|
|
.4byte _0809A558
|
|
.4byte _08099EE4
|
|
.4byte _0809A05A
|
|
.4byte _0809A1D2
|
|
.4byte _0809A34A
|
|
.4byte _08099FDE
|
|
.4byte _0809A156
|
|
.4byte _0809A2CE
|
|
.4byte _0809A4BC
|
|
.4byte _08099F5E
|
|
.4byte _0809A0D6
|
|
.4byte _0809A24E
|
|
.4byte _0809A3EA
|
|
.4byte _0809A48A
|
|
.4byte _0809A48A
|
|
_08099EE4:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _08099F00
|
|
_08099EEA:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099F04
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099F0E
|
|
.align 2, 0
|
|
_08099F00: .4byte gUnknown_2039998
|
|
_08099F04:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_08099F0E:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08099EEA
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _08099F40
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_08099F28:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099F44
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099F4E
|
|
.align 2, 0
|
|
_08099F40: .4byte gUnknown_2039998
|
|
_08099F44:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_08099F4E:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _08099F28
|
|
b _0809A558
|
|
_08099F5E:
|
|
movs r4, 0xE
|
|
movs r5, 0xE0
|
|
lsls r5, 12
|
|
ldr r0, _08099F80
|
|
adds r7, r0, 0
|
|
adds r7, 0x1C
|
|
_08099F6A:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099F84
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099F8E
|
|
.align 2, 0
|
|
_08099F80: .4byte gUnknown_2039998
|
|
_08099F84:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_08099F8E:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _08099F6A
|
|
movs r4, 0x1F
|
|
movs r5, 0xF8
|
|
lsls r5, 13
|
|
ldr r0, _08099FC0
|
|
adds r7, r0, 0
|
|
adds r7, 0x3E
|
|
_08099FA8:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _08099FC4
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _08099FCE
|
|
.align 2, 0
|
|
_08099FC0: .4byte gUnknown_2039998
|
|
_08099FC4:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_08099FCE:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _08099FA8
|
|
b _0809A558
|
|
_08099FDE:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _08099FFC
|
|
_08099FE4:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A000
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A00A
|
|
.align 2, 0
|
|
_08099FFC: .4byte gUnknown_2039998
|
|
_0809A000:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_0809A00A:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xD
|
|
ble _08099FE4
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _0809A03C
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_0809A024:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A040
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A04A
|
|
.align 2, 0
|
|
_0809A03C: .4byte gUnknown_2039998
|
|
_0809A040:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036AC
|
|
_0809A04A:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0809A024
|
|
b _0809A558
|
|
_0809A05A:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _0809A078
|
|
_0809A060:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A07C
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A086
|
|
.align 2, 0
|
|
_0809A078: .4byte gUnknown_2039998
|
|
_0809A07C:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A086:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A060
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _0809A0B8
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_0809A0A0:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A0BC
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A0C6
|
|
.align 2, 0
|
|
_0809A0B8: .4byte gUnknown_2039998
|
|
_0809A0BC:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A0C6:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A0A0
|
|
b _0809A558
|
|
_0809A0D6:
|
|
movs r4, 0xE
|
|
movs r5, 0xE0
|
|
lsls r5, 12
|
|
ldr r0, _0809A0F8
|
|
adds r7, r0, 0
|
|
adds r7, 0x1C
|
|
_0809A0E2:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A0FC
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A106
|
|
.align 2, 0
|
|
_0809A0F8: .4byte gUnknown_2039998
|
|
_0809A0FC:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A106:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A0E2
|
|
movs r4, 0x1F
|
|
movs r5, 0xF8
|
|
lsls r5, 13
|
|
ldr r0, _0809A138
|
|
adds r7, r0, 0
|
|
adds r7, 0x3E
|
|
_0809A120:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A13C
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A146
|
|
.align 2, 0
|
|
_0809A138: .4byte gUnknown_2039998
|
|
_0809A13C:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A146:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A120
|
|
b _0809A558
|
|
_0809A156:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _0809A174
|
|
_0809A15C:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A178
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A182
|
|
.align 2, 0
|
|
_0809A174: .4byte gUnknown_2039998
|
|
_0809A178:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A182:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xD
|
|
ble _0809A15C
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _0809A1B4
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_0809A19C:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A1B8
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A1C2
|
|
.align 2, 0
|
|
_0809A1B4: .4byte gUnknown_2039998
|
|
_0809A1B8:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80036F4
|
|
_0809A1C2:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0809A19C
|
|
b _0809A558
|
|
_0809A1D2:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _0809A1F0
|
|
_0809A1D8:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A1F4
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A1FE
|
|
.align 2, 0
|
|
_0809A1F0: .4byte gUnknown_2039998
|
|
_0809A1F4:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A1FE:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A1D8
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _0809A230
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_0809A218:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A234
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A23E
|
|
.align 2, 0
|
|
_0809A230: .4byte gUnknown_2039998
|
|
_0809A234:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A23E:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A218
|
|
b _0809A558
|
|
_0809A24E:
|
|
movs r4, 0xE
|
|
movs r5, 0xE0
|
|
lsls r5, 12
|
|
ldr r0, _0809A270
|
|
adds r7, r0, 0
|
|
adds r7, 0x1C
|
|
_0809A25A:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A274
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A27E
|
|
.align 2, 0
|
|
_0809A270: .4byte gUnknown_2039998
|
|
_0809A274:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A27E:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A25A
|
|
movs r4, 0x1F
|
|
movs r5, 0xF8
|
|
lsls r5, 13
|
|
ldr r0, _0809A2B0
|
|
adds r7, r0, 0
|
|
adds r7, 0x3E
|
|
_0809A298:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A2B4
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A2BE
|
|
.align 2, 0
|
|
_0809A2B0: .4byte gUnknown_2039998
|
|
_0809A2B4:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A2BE:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A298
|
|
b _0809A558
|
|
_0809A2CE:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
ldr r7, _0809A2EC
|
|
_0809A2D4:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A2F0
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A2FA
|
|
.align 2, 0
|
|
_0809A2EC: .4byte gUnknown_2039998
|
|
_0809A2F0:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A2FA:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0xD
|
|
ble _0809A2D4
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
ldr r0, _0809A32C
|
|
adds r7, r0, 0
|
|
adds r7, 0x20
|
|
_0809A314:
|
|
ldrh r1, [r7]
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A330
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A33A
|
|
.align 2, 0
|
|
_0809A32C: .4byte gUnknown_2039998
|
|
_0809A330:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_8003780
|
|
_0809A33A:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r7, 0x2
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0809A314
|
|
b _0809A558
|
|
_0809A34A:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_0809A34E:
|
|
ldr r0, _0809A36C
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A370
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A38C
|
|
.align 2, 0
|
|
_0809A36C: .4byte gUnknown_2039998
|
|
_0809A370:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A382
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A38C
|
|
_0809A382:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A38C:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A34E
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
_0809A39E:
|
|
ldr r0, _0809A3BC
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A3C0
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A3DC
|
|
.align 2, 0
|
|
_0809A3BC: .4byte gUnknown_2039998
|
|
_0809A3C0:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A3D2
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A3DC
|
|
_0809A3D2:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A3DC:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A39E
|
|
b _0809A558
|
|
_0809A3EA:
|
|
movs r4, 0xE
|
|
movs r5, 0xE0
|
|
lsls r5, 12
|
|
_0809A3F0:
|
|
ldr r0, _0809A40C
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A410
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A42C
|
|
.align 2, 0
|
|
_0809A40C: .4byte gUnknown_2039998
|
|
_0809A410:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A422
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A42C
|
|
_0809A422:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A42C:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0xF
|
|
ble _0809A3F0
|
|
movs r4, 0x1F
|
|
movs r5, 0xF8
|
|
lsls r5, 13
|
|
_0809A43E:
|
|
ldr r0, _0809A45C
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A460
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A47C
|
|
.align 2, 0
|
|
_0809A45C: .4byte gUnknown_2039998
|
|
_0809A460:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A472
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A47C
|
|
_0809A472:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A47C:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0x1F
|
|
ble _0809A43E
|
|
b _0809A558
|
|
_0809A48A:
|
|
ldr r0, [r2]
|
|
cmp r0, 0xD
|
|
beq _0809A496
|
|
cmp r0, 0xE
|
|
beq _0809A4AA
|
|
b _0809A4BC
|
|
_0809A496:
|
|
mov r0, sp
|
|
movs r1, 0x90
|
|
strb r1, [r0]
|
|
strb r1, [r0, 0x1]
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1, 0x2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0809A4BA
|
|
_0809A4AA:
|
|
mov r1, sp
|
|
movs r0, 0xFF
|
|
strb r0, [r1]
|
|
movs r0, 0xC0
|
|
strb r0, [r1, 0x1]
|
|
movs r0, 0x80
|
|
strb r0, [r1, 0x2]
|
|
subs r0, 0x81
|
|
_0809A4BA:
|
|
strb r0, [r1, 0x3]
|
|
_0809A4BC:
|
|
movs r4, 0
|
|
movs r5, 0
|
|
_0809A4C0:
|
|
ldr r0, _0809A4DC
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A4E0
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A4FC
|
|
.align 2, 0
|
|
_0809A4DC: .4byte gUnknown_2039998
|
|
_0809A4E0:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A4F2
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A4FC
|
|
_0809A4F2:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A4FC:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0xD
|
|
ble _0809A4C0
|
|
movs r4, 0x10
|
|
movs r5, 0x80
|
|
lsls r5, 13
|
|
_0809A50E:
|
|
ldr r0, _0809A52C
|
|
lsls r1, r4, 1
|
|
adds r1, r0
|
|
ldrh r1, [r1]
|
|
movs r0, 0x1
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A530
|
|
lsrs r0, r5, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8003664
|
|
b _0809A54C
|
|
.align 2, 0
|
|
_0809A52C: .4byte gUnknown_2039998
|
|
_0809A530:
|
|
movs r0, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809A542
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
bl sub_8003664
|
|
b _0809A54C
|
|
_0809A542:
|
|
lsrs r0, r5, 16
|
|
adds r1, r6, 0
|
|
ldr r2, [sp]
|
|
bl sub_80037C8
|
|
_0809A54C:
|
|
movs r0, 0x80
|
|
lsls r0, 9
|
|
adds r5, r0
|
|
adds r4, 0x1
|
|
cmp r4, 0x1E
|
|
ble _0809A50E
|
|
_0809A558:
|
|
add sp, 0x4
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_8099E80
|
|
|
|
thumb_func_start sub_809A560
|
|
sub_809A560:
|
|
push {r4-r6,lr}
|
|
bl sub_8014144
|
|
ldr r6, _0809A5F4
|
|
movs r0, 0xB5
|
|
lsls r0, 3
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r6]
|
|
movs r4, 0
|
|
str r4, [r0]
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
str r5, [r0, 0x4]
|
|
str r5, [r0, 0x8]
|
|
ldr r0, _0809A5F8
|
|
strh r4, [r0]
|
|
ldr r0, _0809A5FC
|
|
strh r4, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_80095CC
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8009408
|
|
bl sub_809B294
|
|
ldr r0, [r6]
|
|
ldr r2, _0809A600
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r4, [r1]
|
|
adds r2, 0x4
|
|
adds r1, r0, r2
|
|
str r5, [r1]
|
|
ldr r1, _0809A604
|
|
adds r0, r1
|
|
str r5, [r0]
|
|
bl sub_809A7EC
|
|
ldr r0, [r6]
|
|
ldr r2, _0809A608
|
|
adds r0, r2
|
|
ldr r1, _0809A60C
|
|
strh r1, [r0]
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A5F4: .4byte gUnknown_3001B64
|
|
_0809A5F8: .4byte gUnknown_20399DC
|
|
_0809A5FC: .4byte gUnknown_20399DE
|
|
_0809A600: .4byte 0x00000414
|
|
_0809A604: .4byte 0x00000434
|
|
_0809A608: .4byte 0x000005a4
|
|
_0809A60C: .4byte 0x0000ffff
|
|
thumb_func_end sub_809A560
|
|
|
|
thumb_func_start sub_809A610
|
|
sub_809A610:
|
|
push {r4,lr}
|
|
bl sub_809A62C
|
|
ldr r4, _0809A628
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A628: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809A610
|
|
|
|
thumb_func_start sub_809A62C
|
|
sub_809A62C:
|
|
push {r4,lr}
|
|
ldr r0, _0809A670
|
|
ldr r0, [r0]
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0, 0x4]
|
|
str r1, [r0, 0x8]
|
|
ldr r0, _0809A674
|
|
strh r2, [r0]
|
|
ldr r0, _0809A678
|
|
strh r2, [r0]
|
|
movs r4, 0
|
|
_0809A648:
|
|
lsls r0, r4, 16
|
|
asrs r0, 16
|
|
bl sub_809A83C
|
|
adds r4, 0x1
|
|
cmp r4, 0x9
|
|
ble _0809A648
|
|
ldr r0, _0809A670
|
|
ldr r0, [r0]
|
|
ldr r1, _0809A67C
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A670: .4byte gUnknown_3001B64
|
|
_0809A674: .4byte gUnknown_20399DC
|
|
_0809A678: .4byte gUnknown_20399DE
|
|
_0809A67C: .4byte 0x00000414
|
|
thumb_func_end sub_809A62C
|
|
|
|
thumb_func_start sub_809A680
|
|
sub_809A680:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
cmp r4, 0x4
|
|
bhi _0809A6C2
|
|
lsls r0, r4, 2
|
|
ldr r1, _0809A694
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809A694: .4byte _0809A698
|
|
.align 2, 0
|
|
_0809A698:
|
|
.4byte _0809A6AC
|
|
.4byte _0809A6BC
|
|
.4byte _0809A6BC
|
|
.4byte _0809A6BC
|
|
.4byte _0809A6BC
|
|
_0809A6AC:
|
|
bl sub_809B294
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
b _0809A6D0
|
|
_0809A6BC:
|
|
bl sub_809B294
|
|
b _0809A6D0
|
|
_0809A6C2:
|
|
bl sub_809B294
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
_0809A6D0:
|
|
ldr r0, _0809A6E0
|
|
ldr r0, [r0]
|
|
str r4, [r0]
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809A6E0: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809A680
|
|
|
|
thumb_func_start sub_809A6E4
|
|
sub_809A6E4:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0809A6F4
|
|
ldrh r1, [r2]
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809A6F4: .4byte gUnknown_20399DC
|
|
thumb_func_end sub_809A6E4
|
|
|
|
thumb_func_start sub_809A6F8
|
|
sub_809A6F8:
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
ldr r2, _0809A708
|
|
ldrh r1, [r2]
|
|
bics r1, r0
|
|
strh r1, [r2]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809A708: .4byte gUnknown_20399DC
|
|
thumb_func_end sub_809A6F8
|
|
|
|
thumb_func_start sub_809A70C
|
|
sub_809A70C:
|
|
ldr r0, _0809A714
|
|
ldrh r0, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809A714: .4byte gUnknown_20399DC
|
|
thumb_func_end sub_809A70C
|
|
|
|
thumb_func_start nullsub_209
|
|
nullsub_209:
|
|
bx lr
|
|
thumb_func_end nullsub_209
|
|
|
|
thumb_func_start sub_809A71C
|
|
sub_809A71C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, _0809A734
|
|
ldr r0, [r0]
|
|
str r1, [r0, 0x4]
|
|
str r1, [r0, 0x8]
|
|
adds r0, r1, 0
|
|
bl sub_801416C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A734: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809A71C
|
|
|
|
thumb_func_start sub_809A738
|
|
sub_809A738:
|
|
push {lr}
|
|
ldr r2, _0809A74C
|
|
ldr r2, [r2]
|
|
str r0, [r2, 0x4]
|
|
str r1, [r2, 0x8]
|
|
bl sub_801416C
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A74C: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809A738
|
|
|
|
thumb_func_start sub_809A750
|
|
sub_809A750:
|
|
push {lr}
|
|
ldr r0, _0809A764
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
bl sub_809B40C
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809A764: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809A750
|
|
|
|
thumb_func_start sub_809A768
|
|
sub_809A768:
|
|
movs r0, 0
|
|
bx lr
|
|
thumb_func_end sub_809A768
|
|
|
|
thumb_func_start sub_809A76C
|
|
sub_809A76C:
|
|
push {lr}
|
|
ldr r0, _0809A78C
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
cmp r1, 0x1
|
|
bcc _0809A7A4
|
|
cmp r1, 0x2
|
|
bls _0809A790
|
|
cmp r1, 0x3
|
|
bne _0809A7A4
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0x4
|
|
b _0809A798
|
|
.align 2, 0
|
|
_0809A78C: .4byte gUnknown_3001B64
|
|
_0809A790:
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0x84
|
|
_0809A798:
|
|
movs r3, 0
|
|
bl sub_809B2B8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0809A7AE
|
|
_0809A7A4:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
movs r0, 0
|
|
_0809A7AE:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809A76C
|
|
|
|
thumb_func_start sub_809A7B4
|
|
sub_809A7B4:
|
|
push {lr}
|
|
ldr r0, _0809A7D8
|
|
ldr r0, [r0]
|
|
ldr r1, [r0]
|
|
cmp r1, 0x3
|
|
bhi _0809A7DC
|
|
cmp r1, 0x1
|
|
bcc _0809A7DC
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0x4
|
|
movs r3, 0
|
|
bl sub_809B2B8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
b _0809A7E6
|
|
.align 2, 0
|
|
_0809A7D8: .4byte gUnknown_3001B64
|
|
_0809A7DC:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
movs r0, 0
|
|
_0809A7E6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809A7B4
|
|
|
|
thumb_func_start sub_809A7EC
|
|
sub_809A7EC:
|
|
push {r4-r6,lr}
|
|
ldr r0, _0809A830
|
|
ldr r0, [r0]
|
|
ldr r2, _0809A834
|
|
adds r1, r0, r2
|
|
ldr r0, _0809A838
|
|
adds r6, r0, 0
|
|
movs r3, 0
|
|
movs r2, 0
|
|
movs r4, 0x9
|
|
movs r5, 0xFF
|
|
_0809A802:
|
|
ldrh r0, [r1]
|
|
orrs r0, r6
|
|
strh r0, [r1]
|
|
strh r2, [r1, 0x2]
|
|
strb r3, [r1, 0x4]
|
|
strb r3, [r1, 0x5]
|
|
ldrb r0, [r1, 0x6]
|
|
orrs r0, r5
|
|
strb r0, [r1, 0x6]
|
|
strb r3, [r1, 0x7]
|
|
str r2, [r1, 0x8]
|
|
str r2, [r1, 0xC]
|
|
str r2, [r1, 0x10]
|
|
str r2, [r1, 0x14]
|
|
strb r3, [r1, 0x1C]
|
|
str r2, [r1, 0x20]
|
|
subs r4, 0x1
|
|
adds r1, 0x24
|
|
cmp r4, 0
|
|
bge _0809A802
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A830: .4byte gUnknown_3001B64
|
|
_0809A834: .4byte 0x0000043c
|
|
_0809A838: .4byte 0x0000ffff
|
|
thumb_func_end sub_809A7EC
|
|
|
|
thumb_func_start sub_809A83C
|
|
sub_809A83C:
|
|
push {r4-r7,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _0809A8A0
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r3, _0809A8A4
|
|
adds r1, r3
|
|
ldr r2, [r2]
|
|
adds r6, r2, r1
|
|
ldr r1, _0809A8A8
|
|
strh r1, [r6]
|
|
movs r2, 0
|
|
movs r7, 0
|
|
strh r7, [r6, 0x2]
|
|
strb r2, [r6, 0x4]
|
|
strb r2, [r6, 0x5]
|
|
movs r1, 0xFF
|
|
strb r1, [r6, 0x6]
|
|
strb r2, [r6, 0x7]
|
|
str r7, [r6, 0x8]
|
|
str r7, [r6, 0xC]
|
|
str r7, [r6, 0x10]
|
|
str r7, [r6, 0x14]
|
|
strb r2, [r6, 0x1C]
|
|
lsls r4, r0, 2
|
|
adds r4, r0
|
|
lsls r4, 4
|
|
ldr r0, _0809A8AC
|
|
adds r0, r4, r0
|
|
ldr r5, _0809A8B0
|
|
adds r1, r5, 0
|
|
bl strcpy
|
|
ldr r0, _0809A8B4
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl strcpy
|
|
ldr r0, [r6, 0x20]
|
|
cmp r0, 0
|
|
beq _0809A89A
|
|
bl CloseFile
|
|
str r7, [r6, 0x20]
|
|
_0809A89A:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809A8A0: .4byte gUnknown_3001B64
|
|
_0809A8A4: .4byte 0x0000043c
|
|
_0809A8A8: .4byte 0x0000ffff
|
|
_0809A8AC: .4byte gUnknown_202DF98
|
|
_0809A8B0: .4byte gUnknown_811615C
|
|
_0809A8B4: .4byte gPlayerName
|
|
thumb_func_end sub_809A83C
|
|
|
|
thumb_func_start sub_809A8B8
|
|
sub_809A8B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r9, r0
|
|
mov r0, sp
|
|
strh r1, [r0]
|
|
ldr r1, _0809A928
|
|
mov r2, r9
|
|
lsls r0, r2, 3
|
|
add r0, r9
|
|
lsls r0, 2
|
|
ldr r2, _0809A92C
|
|
adds r0, r2
|
|
ldr r1, [r1]
|
|
adds r7, r1, r0
|
|
movs r0, 0x1
|
|
mov r10, r0
|
|
movs r1, 0
|
|
str r1, [sp, 0x4]
|
|
ldr r0, [r7, 0x20]
|
|
cmp r0, 0
|
|
beq _0809A8F6
|
|
bl CloseFile
|
|
ldr r2, [sp, 0x4]
|
|
str r2, [r7, 0x20]
|
|
_0809A8F6:
|
|
mov r4, sp
|
|
adds r4, 0x2
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
bl sub_80A7DDC
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
subs r0, 0xA
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x13
|
|
bhi _0809A9D6
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A8D54
|
|
adds r5, r0, 0
|
|
cmp r5, 0
|
|
bne _0809A930
|
|
movs r2, 0
|
|
mov r10, r2
|
|
b _0809A9D6
|
|
.align 2, 0
|
|
_0809A928: .4byte gUnknown_3001B64
|
|
_0809A92C: .4byte 0x0000043c
|
|
_0809A930:
|
|
bl sub_808D3BC
|
|
cmp r5, r0
|
|
bne _0809A940
|
|
mov r1, sp
|
|
movs r0, 0x21
|
|
strh r0, [r1]
|
|
b _0809A9D6
|
|
_0809A940:
|
|
bl sub_808D3F8
|
|
cmp r5, r0
|
|
bne _0809A950
|
|
mov r1, sp
|
|
movs r0, 0x22
|
|
strh r0, [r1]
|
|
b _0809A9D6
|
|
_0809A950:
|
|
ldrb r0, [r5, 0x4]
|
|
subs r0, 0x43
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x3
|
|
bhi _0809A990
|
|
movs r0, 0
|
|
ldrsh r1, [r4, r0]
|
|
ldr r0, _0809A978
|
|
cmp r1, r0
|
|
beq _0809A9D6
|
|
cmp r1, r0
|
|
ble _0809A97C
|
|
adds r0, 0x16
|
|
cmp r1, r0
|
|
bgt _0809A98A
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
blt _0809A98A
|
|
b _0809A9D6
|
|
.align 2, 0
|
|
_0809A978: .4byte 0x00000183
|
|
_0809A97C:
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
beq _0809A9D6
|
|
adds r0, 0x2F
|
|
cmp r1, r0
|
|
beq _0809A9D6
|
|
_0809A98A:
|
|
movs r1, 0
|
|
mov r10, r1
|
|
b _0809A9D6
|
|
_0809A990:
|
|
movs r2, 0
|
|
ldrsh r1, [r4, r2]
|
|
movs r0, 0x87
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bgt _0809A9B0
|
|
subs r0, 0x2
|
|
cmp r1, r0
|
|
bge _0809A9D6
|
|
cmp r1, 0x90
|
|
blt _0809A9D2
|
|
cmp r1, 0x92
|
|
ble _0809A9D6
|
|
cmp r1, 0x96
|
|
beq _0809A9D6
|
|
b _0809A9D2
|
|
_0809A9B0:
|
|
movs r0, 0xCF
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bgt _0809A9CC
|
|
subs r0, 0x4
|
|
cmp r1, r0
|
|
bge _0809A9D6
|
|
subs r0, 0x87
|
|
cmp r1, r0
|
|
bgt _0809A9D2
|
|
subs r0, 0x1
|
|
cmp r1, r0
|
|
blt _0809A9D2
|
|
b _0809A9D6
|
|
_0809A9CC:
|
|
ldr r0, _0809A9F0
|
|
cmp r1, r0
|
|
beq _0809A9D6
|
|
_0809A9D2:
|
|
movs r0, 0
|
|
mov r10, r0
|
|
_0809A9D6:
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
subs r0, 0x1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x21
|
|
bhi _0809AA98
|
|
lsls r0, 2
|
|
ldr r1, _0809A9F4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809A9F0: .4byte 0x000001a7
|
|
_0809A9F4: .4byte _0809A9F8
|
|
.align 2, 0
|
|
_0809A9F8:
|
|
.4byte _0809AA80
|
|
.4byte _0809AA80
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA80
|
|
.4byte _0809AA80
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA98
|
|
.4byte _0809AA80
|
|
.4byte _0809AA80
|
|
_0809AA80:
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_80A8CF0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809AA94
|
|
movs r2, 0x1
|
|
str r2, [sp, 0x4]
|
|
b _0809AA98
|
|
_0809AA94:
|
|
movs r0, 0
|
|
mov r10, r0
|
|
_0809AA98:
|
|
mov r0, sp
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809AB34
|
|
mov r0, sp
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
blt _0809AACE
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
movs r2, 0
|
|
mov r8, r2
|
|
movs r6, 0
|
|
strh r0, [r7]
|
|
adds r0, r1, 0
|
|
bl sub_80A8BFC
|
|
strh r0, [r7, 0x2]
|
|
b _0809AAE6
|
|
_0809AACE:
|
|
ldrh r1, [r4]
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, 0
|
|
beq _0809AB34
|
|
mov r0, sp
|
|
ldrh r0, [r0]
|
|
movs r2, 0
|
|
mov r8, r2
|
|
movs r6, 0
|
|
strh r0, [r7]
|
|
strh r1, [r7, 0x2]
|
|
_0809AAE6:
|
|
mov r0, r9
|
|
lsls r4, r0, 2
|
|
add r4, r9
|
|
lsls r4, 4
|
|
ldr r0, _0809AB28
|
|
adds r0, r4, r0
|
|
ldr r5, _0809AB2C
|
|
adds r1, r5, 0
|
|
bl strcpy
|
|
ldr r0, _0809AB30
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl strcpy
|
|
mov r1, r10
|
|
strb r1, [r7, 0x4]
|
|
mov r2, sp
|
|
ldrb r2, [r2, 0x4]
|
|
strb r2, [r7, 0x5]
|
|
movs r0, 0xFF
|
|
strb r0, [r7, 0x6]
|
|
mov r0, r8
|
|
strb r0, [r7, 0x7]
|
|
str r6, [r7, 0x8]
|
|
str r6, [r7, 0xC]
|
|
str r6, [r7, 0x10]
|
|
str r6, [r7, 0x14]
|
|
strb r0, [r7, 0x1C]
|
|
movs r0, 0x1
|
|
b _0809AB3C
|
|
.align 2, 0
|
|
_0809AB28: .4byte gUnknown_202DF98
|
|
_0809AB2C: .4byte gUnknown_811616C
|
|
_0809AB30: .4byte gPlayerName
|
|
_0809AB34:
|
|
mov r0, r9
|
|
bl sub_809A83C
|
|
movs r0, 0
|
|
_0809AB3C:
|
|
add sp, 0x8
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809A8B8
|
|
|
|
thumb_func_start sub_809AB4C
|
|
sub_809AB4C:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, _0809AB78
|
|
lsls r0, r5, 3
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r3, _0809AB7C
|
|
adds r0, r3
|
|
ldr r2, [r2]
|
|
adds r6, r2, r0
|
|
adds r0, r5, 0
|
|
bl sub_809A8B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809AB80
|
|
movs r0, 0
|
|
b _0809ABA0
|
|
.align 2, 0
|
|
_0809AB78: .4byte gUnknown_3001B64
|
|
_0809AB7C: .4byte 0x0000043c
|
|
_0809AB80:
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 4
|
|
ldr r0, _0809ABA8
|
|
adds r0, r4, r0
|
|
movs r2, 0x2
|
|
ldrsh r1, [r6, r2]
|
|
bl sub_808D908
|
|
ldr r0, _0809ABAC
|
|
adds r4, r0
|
|
ldr r1, _0809ABB0
|
|
adds r0, r4, 0
|
|
bl strcpy
|
|
movs r0, 0x1
|
|
_0809ABA0:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809ABA8: .4byte gUnknown_202DF98
|
|
_0809ABAC: .4byte gPlayerName
|
|
_0809ABB0: .4byte gUnknown_811617C
|
|
thumb_func_end sub_809AB4C
|
|
|
|
thumb_func_start sub_809ABB4
|
|
sub_809ABB4:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, _0809ABE0
|
|
lsls r0, r5, 3
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r3, _0809ABE4
|
|
adds r0, r3
|
|
ldr r2, [r2]
|
|
adds r6, r2, r0
|
|
adds r0, r5, 0
|
|
bl sub_809A8B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809ABE8
|
|
movs r0, 0
|
|
b _0809AC0A
|
|
.align 2, 0
|
|
_0809ABE0: .4byte gUnknown_3001B64
|
|
_0809ABE4: .4byte 0x0000043c
|
|
_0809ABE8:
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 4
|
|
ldr r5, _0809AC10
|
|
adds r5, r4, r5
|
|
movs r0, 0x2
|
|
ldrsh r1, [r6, r0]
|
|
adds r0, r5, 0
|
|
bl sub_808D908
|
|
ldr r0, _0809AC14
|
|
adds r4, r0
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl strcpy
|
|
movs r0, 0x1
|
|
_0809AC0A:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809AC10: .4byte gUnknown_202DF98
|
|
_0809AC14: .4byte gPlayerName
|
|
thumb_func_end sub_809ABB4
|
|
|
|
thumb_func_start sub_809AC18
|
|
sub_809AC18:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, _0809AC44
|
|
lsls r0, r5, 3
|
|
adds r0, r5
|
|
lsls r0, 2
|
|
ldr r3, _0809AC48
|
|
adds r0, r3
|
|
ldr r2, [r2]
|
|
adds r6, r2, r0
|
|
adds r0, r5, 0
|
|
bl sub_809A8B8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809AC4C
|
|
movs r0, 0
|
|
b _0809AC6E
|
|
.align 2, 0
|
|
_0809AC44: .4byte gUnknown_3001B64
|
|
_0809AC48: .4byte 0x0000043c
|
|
_0809AC4C:
|
|
lsls r4, r5, 2
|
|
adds r4, r5
|
|
lsls r4, 4
|
|
ldr r0, _0809AC74
|
|
adds r0, r4, r0
|
|
movs r2, 0x2
|
|
ldrsh r1, [r6, r2]
|
|
bl sub_808D908
|
|
ldr r0, _0809AC78
|
|
adds r4, r0
|
|
movs r3, 0
|
|
ldrsh r1, [r6, r3]
|
|
adds r0, r4, 0
|
|
bl sub_80A8EC0
|
|
movs r0, 0x1
|
|
_0809AC6E:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809AC74: .4byte gUnknown_202DF98
|
|
_0809AC78: .4byte gPlayerName
|
|
thumb_func_end sub_809AC18
|
|
|
|
thumb_func_start sub_809AC7C
|
|
sub_809AC7C:
|
|
push {r4-r6,lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
lsls r1, 24
|
|
asrs r5, r1, 24
|
|
lsls r2, 24
|
|
lsrs r6, r2, 24
|
|
ldr r2, _0809AD10
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0809AD14
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r4, r0, r1
|
|
ldr r0, [r4, 0x20]
|
|
cmp r0, 0
|
|
beq _0809ACA8
|
|
bl CloseFile
|
|
movs r0, 0
|
|
str r0, [r4, 0x20]
|
|
_0809ACA8:
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
cmp r1, 0
|
|
bge _0809ACB2
|
|
b _0809ADC0
|
|
_0809ACB2:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _0809ACBC
|
|
b _0809ADC0
|
|
_0809ACBC:
|
|
cmp r1, 0
|
|
bne _0809ACC2
|
|
b _0809ADC0
|
|
_0809ACC2:
|
|
cmp r6, 0x15
|
|
beq _0809ACCE
|
|
movs r0, 0
|
|
strb r6, [r4, 0x7]
|
|
str r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
_0809ACCE:
|
|
ldr r2, _0809AD18
|
|
ldrb r0, [r4, 0x7]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, [r4, 0x8]
|
|
ldrh r0, [r0]
|
|
adds r0, r1
|
|
movs r6, 0
|
|
movs r3, 0
|
|
strh r0, [r4, 0x18]
|
|
ldrb r0, [r4, 0x7]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, [r4, 0xC]
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r4, 0x1A]
|
|
ldrb r0, [r4, 0x7]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldrb r0, [r0, 0x4]
|
|
strb r0, [r4, 0x1D]
|
|
strb r6, [r4, 0x1E]
|
|
movs r0, 0x2
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _0809AD1C
|
|
strb r5, [r4, 0x6]
|
|
str r3, [r4, 0x10]
|
|
str r3, [r4, 0x14]
|
|
strb r6, [r4, 0x1C]
|
|
movs r0, 0
|
|
b _0809ADD2
|
|
.align 2, 0
|
|
_0809AD10: .4byte gUnknown_3001B64
|
|
_0809AD14: .4byte 0x0000043c
|
|
_0809AD18: .4byte gUnknown_8116040
|
|
_0809AD1C:
|
|
ldrb r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
beq _0809ADC0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
bl sub_808DD90
|
|
str r0, [r4, 0x20]
|
|
cmp r0, 0
|
|
beq _0809ADB6
|
|
strb r5, [r4, 0x6]
|
|
str r0, [r4, 0x10]
|
|
movs r1, 0
|
|
bl GetFileDataPtr
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0x4D
|
|
beq _0809AD62
|
|
cmp r0, 0x4D
|
|
bgt _0809AD4C
|
|
cmp r0, 0x47
|
|
beq _0809AD56
|
|
b _0809ADA8
|
|
_0809AD4C:
|
|
cmp r0, 0x53
|
|
beq _0809AD76
|
|
cmp r0, 0x73
|
|
beq _0809AD8A
|
|
b _0809ADA8
|
|
_0809AD56:
|
|
movs r0, 0xF
|
|
ands r0, r5
|
|
cmp r0, 0x5
|
|
bgt _0809ADA8
|
|
adds r0, r5, 0x6
|
|
b _0809AD9C
|
|
_0809AD62:
|
|
ldrb r0, [r4, 0x1D]
|
|
cmp r0, 0
|
|
beq _0809ADA8
|
|
movs r0, 0xF
|
|
ands r0, r5
|
|
cmp r0, 0x3
|
|
bgt _0809ADA8
|
|
strb r6, [r4, 0x1D]
|
|
adds r0, r5, 0x4
|
|
b _0809AD9C
|
|
_0809AD76:
|
|
ldrb r0, [r4, 0x1D]
|
|
cmp r0, 0
|
|
beq _0809ADA8
|
|
movs r0, 0xF
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bgt _0809ADA8
|
|
strb r6, [r4, 0x1D]
|
|
adds r0, r5, 0x1
|
|
b _0809AD9C
|
|
_0809AD8A:
|
|
ldrb r0, [r4, 0x1D]
|
|
cmp r0, 0
|
|
beq _0809ADA8
|
|
movs r0, 0xF
|
|
ands r0, r5
|
|
cmp r0, 0x1
|
|
bgt _0809ADA8
|
|
strb r6, [r4, 0x1D]
|
|
adds r0, r5, 0x2
|
|
_0809AD9C:
|
|
lsls r0, 24
|
|
asrs r5, r0, 24
|
|
movs r0, 0x40
|
|
orrs r5, r0
|
|
lsls r0, r5, 24
|
|
asrs r5, r0, 24
|
|
_0809ADA8:
|
|
ldr r0, [r4, 0x20]
|
|
ldr r0, [r0, 0x4]
|
|
str r0, [r4, 0x14]
|
|
movs r0, 0xF
|
|
ands r5, r0
|
|
strb r5, [r4, 0x1C]
|
|
b _0809ADBC
|
|
_0809ADB6:
|
|
str r0, [r4, 0x10]
|
|
str r0, [r4, 0x14]
|
|
strb r6, [r4, 0x1C]
|
|
_0809ADBC:
|
|
movs r0, 0x1
|
|
b _0809ADD2
|
|
_0809ADC0:
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x6]
|
|
movs r0, 0
|
|
strb r0, [r4, 0x7]
|
|
str r0, [r4, 0x8]
|
|
str r0, [r4, 0xC]
|
|
str r0, [r4, 0x10]
|
|
str r0, [r4, 0x14]
|
|
strb r0, [r4, 0x1C]
|
|
_0809ADD2:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AC7C
|
|
|
|
thumb_func_start sub_809ADD8
|
|
sub_809ADD8:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _0809AE28
|
|
lsls r1, r0, 3
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
ldr r0, _0809AE2C
|
|
adds r1, r0
|
|
ldr r0, [r2]
|
|
adds r3, r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r3, r1]
|
|
cmp r0, 0
|
|
blt _0809AE34
|
|
cmp r0, 0
|
|
beq _0809AE34
|
|
ldr r0, [r4]
|
|
ldr r1, [r4, 0x4]
|
|
str r0, [r3, 0x8]
|
|
str r1, [r3, 0xC]
|
|
ldr r2, _0809AE30
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, [r3, 0x8]
|
|
ldrh r0, [r0]
|
|
adds r0, r1
|
|
strh r0, [r3, 0x18]
|
|
ldrb r0, [r3, 0x7]
|
|
lsls r0, 3
|
|
adds r0, r2
|
|
ldr r1, [r3, 0xC]
|
|
ldrh r0, [r0, 0x2]
|
|
adds r0, r1
|
|
strh r0, [r3, 0x1A]
|
|
movs r0, 0x1
|
|
b _0809AE36
|
|
.align 2, 0
|
|
_0809AE28: .4byte gUnknown_3001B64
|
|
_0809AE2C: .4byte 0x0000043c
|
|
_0809AE30: .4byte gUnknown_8116040
|
|
_0809AE34:
|
|
movs r0, 0
|
|
_0809AE36:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809ADD8
|
|
|
|
thumb_func_start sub_809AE3C
|
|
sub_809AE3C:
|
|
push {r4,lr}
|
|
lsls r0, 16
|
|
asrs r2, r0, 16
|
|
cmp r2, 0
|
|
blt _0809AE88
|
|
ldr r1, _0809AE80
|
|
lsls r0, r2, 3
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
ldr r3, _0809AE84
|
|
adds r0, r3
|
|
ldr r1, [r1]
|
|
adds r4, r1, r0
|
|
movs r1, 0x2
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, 0
|
|
beq _0809AE74
|
|
movs r1, 0x6
|
|
ldrsb r1, [r4, r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0809AE74
|
|
adds r0, r2, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809AC7C
|
|
_0809AE74:
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
beq _0809AE88
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
b _0809AE8A
|
|
.align 2, 0
|
|
_0809AE80: .4byte gUnknown_3001B64
|
|
_0809AE84: .4byte 0x0000043c
|
|
_0809AE88:
|
|
movs r0, 0
|
|
_0809AE8A:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AE3C
|
|
|
|
thumb_func_start sub_809AE90
|
|
sub_809AE90:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r2, 0
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
cmp r4, 0
|
|
bne _0809AEA4
|
|
bl sub_809A76C
|
|
b _0809AEE0
|
|
_0809AEA4:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809AEDC
|
|
ldr r1, _0809AED0
|
|
lsls r0, r5, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_809A680
|
|
ldr r0, _0809AED4
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
ldr r2, _0809AED8
|
|
lsls r1, r5, 1
|
|
adds r1, r2
|
|
ldrh r1, [r1]
|
|
adds r2, r6, 0
|
|
adds r3, r4, 0
|
|
bl sub_809B2B8
|
|
b _0809AEE0
|
|
.align 2, 0
|
|
_0809AED0: .4byte gUnknown_8116134
|
|
_0809AED4: .4byte gUnknown_3001B64
|
|
_0809AED8: .4byte gUnknown_8116148
|
|
_0809AEDC:
|
|
bl sub_809A7B4
|
|
_0809AEE0:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AE90
|
|
|
|
thumb_func_start sub_809AEEC
|
|
sub_809AEEC:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0809AF1C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809AF1C
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
ldr r0, _0809AF18
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0xC2
|
|
adds r3, r4, 0
|
|
bl sub_809B2B8
|
|
b _0809AF20
|
|
.align 2, 0
|
|
_0809AF18: .4byte gUnknown_3001B64
|
|
_0809AF1C:
|
|
bl sub_809A76C
|
|
_0809AF20:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AEEC
|
|
|
|
thumb_func_start sub_809AF2C
|
|
sub_809AF2C:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
beq _0809AF5C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809AF5C
|
|
movs r0, 0x2
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
ldr r0, _0809AF58
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0xC2
|
|
adds r3, r4, 0
|
|
bl sub_809B2B8
|
|
b _0809AF60
|
|
.align 2, 0
|
|
_0809AF58: .4byte gUnknown_3001B64
|
|
_0809AF5C:
|
|
bl sub_809A76C
|
|
_0809AF60:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AF2C
|
|
|
|
thumb_func_start sub_809AF6C
|
|
sub_809AF6C:
|
|
push {r4,lr}
|
|
adds r4, r1, 0
|
|
cmp r4, 0
|
|
beq _0809AF9C
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809AF9C
|
|
movs r0, 0x3
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
ldr r0, _0809AF98
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0x65
|
|
adds r3, r4, 0
|
|
bl sub_809B2B8
|
|
b _0809AFA0
|
|
.align 2, 0
|
|
_0809AF98: .4byte gUnknown_3001B64
|
|
_0809AF9C:
|
|
bl sub_809A76C
|
|
_0809AFA0:
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AF6C
|
|
|
|
thumb_func_start sub_809AFAC
|
|
sub_809AFAC:
|
|
push {lr}
|
|
movs r1, 0
|
|
ldr r0, _0809AFC4
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, 0x4
|
|
bne _0809AFBC
|
|
movs r1, 0x1
|
|
_0809AFBC:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809AFC4: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809AFAC
|
|
|
|
thumb_func_start sub_809AFC8
|
|
sub_809AFC8:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
adds r5, r1, 0
|
|
adds r1, r2, 0
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r4, _0809AFF8
|
|
negs r2, r0
|
|
orrs r2, r0
|
|
lsrs r2, 31
|
|
str r1, [sp]
|
|
str r3, [sp, 0x4]
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
adds r3, r5, 0
|
|
bl sub_809B028
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809AFF8: .4byte gUnknown_81160E8
|
|
thumb_func_end sub_809AFC8
|
|
|
|
thumb_func_start sub_809AFFC
|
|
sub_809AFFC:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
adds r4, r0, 0
|
|
mov r0, sp
|
|
bl sub_809B18C
|
|
lsls r0, 24
|
|
lsrs r2, r0, 24
|
|
cmp r4, 0
|
|
beq _0809B01C
|
|
movs r1, 0
|
|
ldr r0, [sp]
|
|
cmp r0, 0x1
|
|
bne _0809B01A
|
|
movs r1, 0x1
|
|
_0809B01A:
|
|
strb r1, [r4]
|
|
_0809B01C:
|
|
adds r0, r2, 0
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809AFFC
|
|
|
|
thumb_func_start sub_809B028
|
|
sub_809B028:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x14
|
|
mov r8, r0
|
|
adds r7, r2, 0
|
|
adds r6, r3, 0
|
|
ldr r0, [sp, 0x2C]
|
|
lsls r1, 24
|
|
lsrs r5, r1, 24
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
ldr r1, _0809B084
|
|
lsls r0, r6, 2
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
bl sub_809A680
|
|
ldr r0, _0809B088
|
|
ldr r1, [r0]
|
|
ldr r0, _0809B08C
|
|
adds r2, r1, r0
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
movs r0, 0x83
|
|
lsls r0, 3
|
|
adds r2, r1, r0
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
ldr r2, _0809B090
|
|
adds r0, r1, r2
|
|
mov r2, r8
|
|
str r2, [r0]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r1, r2
|
|
movs r2, 0x2
|
|
str r2, [r0]
|
|
ldr r0, _0809B094
|
|
adds r1, r0
|
|
cmp r5, 0
|
|
beq _0809B098
|
|
str r2, [r1]
|
|
b _0809B09A
|
|
.align 2, 0
|
|
_0809B084: .4byte gUnknown_8116134
|
|
_0809B088: .4byte gUnknown_3001B64
|
|
_0809B08C: .4byte 0x00000414
|
|
_0809B090: .4byte 0x0000041c
|
|
_0809B094: .4byte 0x00000424
|
|
_0809B098:
|
|
str r5, [r1]
|
|
_0809B09A:
|
|
ldr r0, _0809B0D4
|
|
ldr r0, [r0]
|
|
movs r1, 0x85
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
movs r1, 0
|
|
str r1, [r2]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
str r7, [r0]
|
|
ldr r0, _0809B0D8
|
|
lsls r2, r6, 1
|
|
adds r0, r2, r0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r1
|
|
adds r5, r2, 0
|
|
cmp r0, 0
|
|
beq _0809B0F6
|
|
cmp r4, 0
|
|
bge _0809B0E4
|
|
ldr r0, _0809B0DC
|
|
ldr r1, _0809B0E0
|
|
bl strcpy
|
|
b _0809B0F6
|
|
.align 2, 0
|
|
_0809B0D4: .4byte gUnknown_3001B64
|
|
_0809B0D8: .4byte gUnknown_8116148
|
|
_0809B0DC: .4byte gUnknown_202E5D8
|
|
_0809B0E0: .4byte gUnknown_8116180
|
|
_0809B0E4:
|
|
ldr r0, _0809B134
|
|
ldr r1, _0809B138
|
|
lsls r2, r4, 2
|
|
adds r2, r4
|
|
lsls r2, 4
|
|
ldr r3, _0809B13C
|
|
adds r2, r3
|
|
bl sub_800D158
|
|
_0809B0F6:
|
|
adds r0, r4, 0
|
|
bl sub_809AE3C
|
|
ldr r4, _0809B140
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
movs r3, 0x4
|
|
str r3, [sp, 0x4]
|
|
str r1, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
ldr r0, _0809B144
|
|
adds r0, r5, r0
|
|
ldrh r2, [r0]
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809B11C
|
|
movs r1, 0xC
|
|
_0809B11C:
|
|
movs r0, 0x80
|
|
lsls r0, 2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809B128
|
|
orrs r1, r3
|
|
_0809B128:
|
|
movs r0, 0x20
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809B148
|
|
movs r0, 0x21
|
|
b _0809B14A
|
|
.align 2, 0
|
|
_0809B134: .4byte gUnknown_202E5D8
|
|
_0809B138: .4byte gUnknown_8116188
|
|
_0809B13C: .4byte gPlayerName
|
|
_0809B140: .4byte sub_809B428
|
|
_0809B144: .4byte gUnknown_8116148
|
|
_0809B148:
|
|
movs r0, 0x1
|
|
_0809B14A:
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x10]
|
|
ldr r0, [sp, 0x30]
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
mov r3, r8
|
|
bl sub_8014248
|
|
ldr r0, _0809B184
|
|
ldr r0, [r0]
|
|
ldr r1, _0809B188
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
movs r1, 0x2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809B176
|
|
movs r0, 0x1
|
|
bl sub_809A6E4
|
|
_0809B176:
|
|
add sp, 0x14
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809B184: .4byte gUnknown_3001B64
|
|
_0809B188: .4byte 0x00000424
|
|
thumb_func_end sub_809B028
|
|
|
|
thumb_func_start sub_809B18C
|
|
sub_809B18C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r2, _0809B1BC
|
|
cmp r1, 0
|
|
beq _0809B1A2
|
|
ldr r0, [r2]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_0809B1A2:
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0809B1B4
|
|
movs r1, 0x1
|
|
_0809B1B4:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809B1BC: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809B18C
|
|
|
|
thumb_func_start sub_809B1C0
|
|
sub_809B1C0:
|
|
push {lr}
|
|
adds r3, r2, 0
|
|
movs r2, 0
|
|
bl sub_809B1D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809B1C0
|
|
|
|
thumb_func_start sub_809B1D4
|
|
sub_809B1D4:
|
|
push {r4-r7,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r2, 0
|
|
adds r7, r3, 0
|
|
cmp r4, 0xB
|
|
beq _0809B1E8
|
|
cmp r4, 0xC
|
|
beq _0809B1F0
|
|
b _0809B202
|
|
_0809B1E8:
|
|
adds r0, r5, 0
|
|
bl sub_8021700
|
|
b _0809B1F8
|
|
_0809B1F0:
|
|
bl sub_8001D88
|
|
bl sub_802FCF0
|
|
_0809B1F8:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809B202
|
|
movs r0, 0
|
|
b _0809B24C
|
|
_0809B202:
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl sub_809A680
|
|
ldr r0, _0809B254
|
|
ldr r1, [r0]
|
|
ldr r2, _0809B258
|
|
adds r0, r1, r2
|
|
str r4, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r1, r3
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
adds r3, 0x4
|
|
adds r0, r1, r3
|
|
str r2, [r0]
|
|
movs r0, 0x84
|
|
lsls r0, 3
|
|
adds r2, r1, r0
|
|
movs r0, 0x1
|
|
str r0, [r2]
|
|
ldr r2, _0809B25C
|
|
adds r0, r1, r2
|
|
str r5, [r0]
|
|
adds r3, 0xC
|
|
adds r0, r1, r3
|
|
str r6, [r0]
|
|
adds r2, 0x8
|
|
adds r0, r1, r2
|
|
str r7, [r0]
|
|
adds r3, 0x8
|
|
adds r1, r3
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1]
|
|
movs r0, 0x1
|
|
_0809B24C:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809B254: .4byte gUnknown_3001B64
|
|
_0809B258: .4byte 0x00000414
|
|
_0809B25C: .4byte 0x00000424
|
|
thumb_func_end sub_809B1D4
|
|
|
|
thumb_func_start sub_809B260
|
|
sub_809B260:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r2, _0809B290
|
|
cmp r1, 0
|
|
beq _0809B276
|
|
ldr r0, [r2]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
_0809B276:
|
|
movs r1, 0
|
|
ldr r0, [r2]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0809B288
|
|
movs r1, 0x1
|
|
_0809B288:
|
|
adds r0, r1, 0
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809B290: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809B260
|
|
|
|
thumb_func_start sub_809B294
|
|
sub_809B294:
|
|
push {lr}
|
|
movs r0, 0x3
|
|
bl sub_80063D8
|
|
ldr r0, _0809B2B4
|
|
ldr r0, [r0]
|
|
adds r0, 0xC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0
|
|
movs r3, 0
|
|
bl sub_809B2B8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809B2B4: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809B294
|
|
|
|
thumb_func_start sub_809B2B8
|
|
sub_809B2B8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
sub sp, 0x14
|
|
adds r4, r0, 0
|
|
adds r7, r3, 0
|
|
lsls r1, 16
|
|
lsrs r5, r1, 16
|
|
lsls r2, 16
|
|
asrs r6, r2, 16
|
|
strh r5, [r4]
|
|
cmp r7, 0
|
|
bne _0809B2F6
|
|
cmp r5, 0
|
|
bne _0809B2DE
|
|
str r7, [r4, 0x4]
|
|
movs r0, 0
|
|
b _0809B3FC
|
|
_0809B2DE:
|
|
movs r0, 0x4
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
bne _0809B2E8
|
|
b _0809B3FA
|
|
_0809B2E8:
|
|
bl sub_8014490
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
b _0809B3FA
|
|
_0809B2F6:
|
|
movs r0, 0x1
|
|
str r0, [r4, 0x4]
|
|
adds r0, 0xFF
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0809B32A
|
|
cmp r6, 0
|
|
bge _0809B318
|
|
ldr r0, _0809B310
|
|
ldr r1, _0809B314
|
|
bl strcpy
|
|
b _0809B32A
|
|
.align 2, 0
|
|
_0809B310: .4byte gUnknown_202E5D8
|
|
_0809B314: .4byte gUnknown_8116180
|
|
_0809B318:
|
|
ldr r0, _0809B3D0
|
|
ldr r1, _0809B3D4
|
|
lsls r2, r6, 2
|
|
adds r2, r6
|
|
lsls r2, 4
|
|
ldr r3, _0809B3D8
|
|
adds r2, r3
|
|
bl sub_800D158
|
|
_0809B32A:
|
|
ldr r0, _0809B3DC
|
|
mov r8, r0
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, 0x3
|
|
bne _0809B344
|
|
adds r4, 0x8
|
|
ldr r1, _0809B3E0
|
|
adds r0, r4, 0
|
|
adds r2, r7, 0
|
|
bl sub_800D158
|
|
adds r7, r4, 0
|
|
_0809B344:
|
|
adds r0, r6, 0
|
|
bl sub_809AE3C
|
|
ldr r1, _0809B3E4
|
|
mov r9, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r12, r1
|
|
movs r2, 0
|
|
str r2, [sp]
|
|
movs r1, 0x3
|
|
str r1, [sp, 0x4]
|
|
str r2, [sp, 0x8]
|
|
str r0, [sp, 0xC]
|
|
movs r6, 0x80
|
|
lsls r6, 1
|
|
adds r0, r5, 0
|
|
ands r0, r6
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
beq _0809B370
|
|
movs r1, 0xC
|
|
_0809B370:
|
|
movs r4, 0x80
|
|
lsls r4, 2
|
|
adds r0, r5, 0
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0809B380
|
|
movs r0, 0x4
|
|
orrs r1, r0
|
|
_0809B380:
|
|
mov r0, r8
|
|
ldr r3, [r0]
|
|
ldr r2, [r3]
|
|
cmp r2, 0x3
|
|
bne _0809B38E
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
_0809B38E:
|
|
cmp r2, 0x2
|
|
bne _0809B396
|
|
movs r0, 0x10
|
|
orrs r1, r0
|
|
_0809B396:
|
|
adds r2, r1, 0
|
|
movs r1, 0x20
|
|
adds r0, r5, 0
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809B3A4
|
|
orrs r2, r1
|
|
_0809B3A4:
|
|
lsrs r1, r5, 6
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
movs r0, 0x80
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0809B3B6
|
|
orrs r1, r6
|
|
_0809B3B6:
|
|
movs r0, 0x4
|
|
ands r0, r5
|
|
cmp r0, 0
|
|
beq _0809B3C0
|
|
orrs r1, r4
|
|
_0809B3C0:
|
|
ldr r0, [r3, 0x4]
|
|
cmp r0, r12
|
|
beq _0809B3E8
|
|
movs r0, 0x2
|
|
orrs r0, r1
|
|
lsls r0, 16
|
|
b _0809B3EA
|
|
.align 2, 0
|
|
_0809B3D0: .4byte gUnknown_202E5D8
|
|
_0809B3D4: .4byte gUnknown_8116188
|
|
_0809B3D8: .4byte gPlayerName
|
|
_0809B3DC: .4byte gUnknown_3001B64
|
|
_0809B3E0: .4byte gUnknown_8116190
|
|
_0809B3E4: .4byte sub_809B428
|
|
_0809B3E8:
|
|
lsls r0, r1, 16
|
|
_0809B3EA:
|
|
lsrs r0, 16
|
|
str r0, [sp, 0x10]
|
|
adds r0, r7, 0
|
|
mov r1, r9
|
|
mov r2, r12
|
|
movs r3, 0
|
|
bl sub_8014248
|
|
_0809B3FA:
|
|
movs r0, 0x1
|
|
_0809B3FC:
|
|
add sp, 0x14
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809B2B8
|
|
|
|
thumb_func_start sub_809B40C
|
|
sub_809B40C:
|
|
push {lr}
|
|
ldr r0, [r0, 0x4]
|
|
cmp r0, 0
|
|
beq _0809B41C
|
|
cmp r0, 0x3
|
|
bhi _0809B420
|
|
cmp r0, 0x2
|
|
bcc _0809B420
|
|
_0809B41C:
|
|
movs r0, 0
|
|
b _0809B422
|
|
_0809B420:
|
|
movs r0, 0x1
|
|
_0809B422:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809B40C
|
|
|
|
thumb_func_start sub_809B428
|
|
sub_809B428:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r2, 0
|
|
ldrb r0, [r5, 0x2]
|
|
cmp r0, 0x4F
|
|
beq _0809B44C
|
|
cmp r0, 0x4F
|
|
bgt _0809B43E
|
|
cmp r0, 0x49
|
|
beq _0809B444
|
|
b _0809B46A
|
|
_0809B43E:
|
|
cmp r0, 0x57
|
|
beq _0809B454
|
|
b _0809B46A
|
|
_0809B444:
|
|
movs r0, 0x1E
|
|
bl sub_8099A34
|
|
b _0809B462
|
|
_0809B44C:
|
|
movs r0, 0x1E
|
|
bl sub_8099A48
|
|
b _0809B462
|
|
_0809B454:
|
|
bl sub_8099B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809B462
|
|
adds r0, r5, 0
|
|
b _0809B46C
|
|
_0809B462:
|
|
adds r1, r4, 0
|
|
adds r1, 0x21
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0809B46A:
|
|
movs r0, 0
|
|
_0809B46C:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809B428
|
|
|
|
thumb_func_start sub_809B474
|
|
sub_809B474:
|
|
push {r4-r6,lr}
|
|
ldr r0, _0809B498
|
|
ldr r1, [r0]
|
|
ldr r2, [r1]
|
|
adds r6, r0, 0
|
|
cmp r2, 0x3
|
|
bls _0809B56E
|
|
cmp r2, 0x4
|
|
bne _0809B56E
|
|
movs r5, 0x84
|
|
lsls r5, 3
|
|
adds r0, r1, r5
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0809B49C
|
|
cmp r0, 0x2
|
|
beq _0809B508
|
|
b _0809B56E
|
|
.align 2, 0
|
|
_0809B498: .4byte gUnknown_3001B64
|
|
_0809B49C:
|
|
bl sub_809B648
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809B4B0
|
|
ldr r0, [r6]
|
|
adds r0, r5
|
|
movs r1, 0x3
|
|
str r1, [r0]
|
|
b _0809B4E8
|
|
_0809B4B0:
|
|
ldr r0, [r6]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
beq _0809B4F8
|
|
ldr r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
beq _0809B4F2
|
|
bl sub_809B294
|
|
ldr r0, [r4, 0x4]
|
|
bl _call_via_r0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809B4F2
|
|
ldr r1, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r2, r1, r3
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r2]
|
|
adds r1, r5
|
|
movs r0, 0x3
|
|
str r0, [r1]
|
|
_0809B4E8:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
b _0809B56E
|
|
_0809B4F2:
|
|
ldrh r0, [r4]
|
|
bl sub_809A6E4
|
|
_0809B4F8:
|
|
ldr r0, _0809B534
|
|
ldr r1, [r0]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
movs r2, 0x2
|
|
str r2, [r1]
|
|
adds r6, r0, 0
|
|
_0809B508:
|
|
ldr r0, [r6]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r4, [r0]
|
|
cmp r4, 0
|
|
beq _0809B54E
|
|
ldr r0, [r4, 0xC]
|
|
bl _call_via_r0
|
|
adds r2, r0, 0
|
|
cmp r2, 0x1
|
|
bls _0809B56E
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r1, r0, r3
|
|
cmp r2, 0x2
|
|
bne _0809B538
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0809B53A
|
|
.align 2, 0
|
|
_0809B534: .4byte gUnknown_3001B64
|
|
_0809B538:
|
|
movs r0, 0
|
|
_0809B53A:
|
|
str r0, [r1]
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
beq _0809B546
|
|
bl _call_via_r0
|
|
_0809B546:
|
|
ldrh r0, [r4]
|
|
bl sub_809A6F8
|
|
b _0809B558
|
|
_0809B54E:
|
|
bl sub_809B648
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809B56E
|
|
_0809B558:
|
|
ldr r0, _0809B578
|
|
ldr r0, [r0]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x3
|
|
str r1, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_809A680
|
|
_0809B56E:
|
|
bl sub_809B57C
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809B578: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809B474
|
|
|
|
thumb_func_start sub_809B57C
|
|
sub_809B57C:
|
|
push {r4,r5,lr}
|
|
sub sp, 0x8
|
|
bl xxx_draw_string_80144C4
|
|
ldr r5, _0809B5C8
|
|
ldr r0, [r5]
|
|
ldr r1, [r0]
|
|
cmp r1, 0x3
|
|
bhi _0809B5E4
|
|
cmp r1, 0x1
|
|
bcc _0809B5E4
|
|
movs r4, 0x84
|
|
lsls r4, 3
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809B5CC
|
|
cmp r0, 0x3
|
|
beq _0809B5CC
|
|
mov r0, sp
|
|
bl sub_80144A4
|
|
cmp r0, 0
|
|
bne _0809B5E4
|
|
ldr r1, [sp]
|
|
movs r0, 0x1
|
|
bl sub_809D9E0
|
|
ldr r1, [r5]
|
|
adds r2, r1, r4
|
|
movs r0, 0x3
|
|
str r0, [r2]
|
|
movs r0, 0x86
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldr r0, [sp]
|
|
str r0, [r1]
|
|
b _0809B5E4
|
|
.align 2, 0
|
|
_0809B5C8: .4byte gUnknown_3001B64
|
|
_0809B5CC:
|
|
add r0, sp, 0x4
|
|
bl sub_80144A4
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _0809B5E4
|
|
movs r0, 0
|
|
bl sub_809D9B8
|
|
ldr r0, _0809B5FC
|
|
ldr r0, [r0]
|
|
str r4, [r0]
|
|
_0809B5E4:
|
|
ldr r0, _0809B5FC
|
|
ldr r0, [r0]
|
|
ldr r1, _0809B600
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bge _0809B604
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8005838
|
|
b _0809B60C
|
|
.align 2, 0
|
|
_0809B5FC: .4byte gUnknown_3001B64
|
|
_0809B600: .4byte 0x00000434
|
|
_0809B604:
|
|
movs r0, 0
|
|
movs r1, 0x5
|
|
bl sub_8005838
|
|
_0809B60C:
|
|
add sp, 0x8
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809B57C
|
|
|
|
thumb_func_start sub_809B614
|
|
sub_809B614:
|
|
push {lr}
|
|
bl sub_80060EC
|
|
ldr r0, _0809B62C
|
|
ldr r2, _0809B630
|
|
ldrh r1, [r2]
|
|
strh r1, [r0]
|
|
ldr r0, _0809B634
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809B62C: .4byte gUnknown_20399DE
|
|
_0809B630: .4byte gUnknown_20399DC
|
|
_0809B634: .4byte 0x0000fffd
|
|
thumb_func_end sub_809B614
|
|
|
|
thumb_func_start sub_809B638
|
|
sub_809B638:
|
|
push {lr}
|
|
bl xxx_call_update_bg_vram
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809B638
|
|
|
|
thumb_func_start nullsub_210
|
|
nullsub_210:
|
|
bx lr
|
|
thumb_func_end nullsub_210
|
|
|
|
thumb_func_start sub_809B648
|
|
sub_809B648:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x24
|
|
ldr r0, _0809B66C
|
|
ldr r1, [r0]
|
|
ldr r2, _0809B670
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
subs r1, 0x2
|
|
adds r6, r0, 0
|
|
cmp r1, 0x2C
|
|
bls _0809B662
|
|
bl _0809C392
|
|
_0809B662:
|
|
lsls r0, r1, 2
|
|
ldr r1, _0809B674
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809B66C: .4byte gUnknown_3001B64
|
|
_0809B670: .4byte 0x00000414
|
|
_0809B674: .4byte _0809B678
|
|
.align 2, 0
|
|
_0809B678:
|
|
.4byte _0809B72C
|
|
.4byte _0809B772
|
|
.4byte _0809B7AC
|
|
.4byte _0809B834
|
|
.4byte _0809B89C
|
|
.4byte _0809B8FC
|
|
.4byte _0809B91C
|
|
.4byte _0809B944
|
|
.4byte _0809B9D2
|
|
.4byte _0809BA2A
|
|
.4byte _0809BAA8
|
|
.4byte _0809BB66
|
|
.4byte _0809BBDA
|
|
.4byte _0809BBDA
|
|
.4byte _0809BC26
|
|
.4byte _0809BC68
|
|
.4byte _0809C1B4
|
|
.4byte _0809BC78
|
|
.4byte _0809C1C2
|
|
.4byte _0809C1C2
|
|
.4byte _0809C1C8
|
|
.4byte _0809BCBC
|
|
.4byte _0809BCBC
|
|
.4byte _0809BD1C
|
|
.4byte _0809BD64
|
|
.4byte _0809BDE8
|
|
.4byte _0809BE30
|
|
.4byte _0809BE40
|
|
.4byte _0809BE50
|
|
.4byte _0809BE60
|
|
.4byte _0809BE9C
|
|
.4byte _0809BEB8
|
|
.4byte _0809BED4
|
|
.4byte _0809BF70
|
|
.4byte _0809BFFC
|
|
.4byte _0809C072
|
|
.4byte _0809C0B8
|
|
.4byte _0809C0FC
|
|
.4byte _0809C148
|
|
.4byte _0809C158
|
|
.4byte _0809C168
|
|
.4byte _0809C204
|
|
.4byte _0809C238
|
|
.4byte _0809C280
|
|
.4byte _0809C32A
|
|
_0809B72C:
|
|
ldr r2, [r6]
|
|
movs r3, 0x84
|
|
lsls r3, 3
|
|
adds r0, r2, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
beq _0809B780
|
|
ldr r0, _0809B754
|
|
ldrh r0, [r0, 0x2]
|
|
movs r1, 0x3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809B758
|
|
movs r0, 0x86
|
|
lsls r0, 3
|
|
adds r1, r2, r0
|
|
movs r0, 0x1
|
|
str r0, [r1]
|
|
bl _0809C392
|
|
.align 2, 0
|
|
_0809B754: .4byte gUnknown_20255F0
|
|
_0809B758:
|
|
bl sub_8094D14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809B784
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
str r1, [r0]
|
|
bl _0809C392
|
|
_0809B772:
|
|
ldr r0, [r6]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809B78A
|
|
_0809B780:
|
|
bl sub_809B294
|
|
_0809B784:
|
|
movs r0, 0x1
|
|
bl _0809C394
|
|
_0809B78A:
|
|
ldr r0, _0809B7A8
|
|
ldrh r1, [r0]
|
|
ldrh r0, [r0, 0x2]
|
|
movs r2, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809B79C
|
|
bl _0809C392
|
|
_0809B79C:
|
|
ands r1, r2
|
|
cmp r1, 0
|
|
bne _0809B784
|
|
bl _0809C392
|
|
.align 2, 0
|
|
_0809B7A8: .4byte gUnknown_20255F0
|
|
_0809B7AC:
|
|
ldr r0, [r6]
|
|
movs r3, 0x84
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809B7F4
|
|
bl sub_809B294
|
|
ldr r1, [r6]
|
|
ldr r2, _0809B7D8
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809B7E0
|
|
ldr r3, _0809B7DC
|
|
adds r0, r1, r3
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
bl sub_801602C
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809B7D8: .4byte 0x00000424
|
|
_0809B7DC: .4byte 0x0000042c
|
|
_0809B7E0:
|
|
ldr r2, _0809B7F0
|
|
adds r0, r1, r2
|
|
ldr r1, [r0]
|
|
movs r0, 0x2
|
|
bl sub_801602C
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809B7F0: .4byte 0x0000042c
|
|
_0809B7F4:
|
|
bl sub_8016080
|
|
cmp r0, 0x3
|
|
bne _0809B80C
|
|
bl sub_80160D8
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
bl _0809C1BC
|
|
_0809B80C:
|
|
cmp r0, 0x2
|
|
bne _0809B784
|
|
ldr r0, [r6]
|
|
ldr r1, _0809B830
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809B784
|
|
bl sub_80160D8
|
|
ldr r0, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
_0809B828:
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
bl _0809C392
|
|
.align 2, 0
|
|
_0809B830: .4byte 0x00000424
|
|
_0809B834:
|
|
ldr r0, [r6]
|
|
movs r3, 0x84
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809B85C
|
|
bl sub_809B294
|
|
ldr r0, [r6]
|
|
ldr r1, _0809B858
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_801602C
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809B858: .4byte 0x0000042c
|
|
_0809B85C:
|
|
bl sub_8016080
|
|
cmp r0, 0x3
|
|
bne _0809B874
|
|
bl sub_80160D8
|
|
ldr r0, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
bl _0809C1BC
|
|
_0809B874:
|
|
cmp r0, 0x2
|
|
beq _0809B87A
|
|
b _0809B784
|
|
_0809B87A:
|
|
ldr r0, [r6]
|
|
ldr r3, _0809B898
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809B888
|
|
b _0809B784
|
|
_0809B888:
|
|
bl sub_80160D8
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
b _0809B828
|
|
.align 2, 0
|
|
_0809B898: .4byte 0x00000424
|
|
_0809B89C:
|
|
ldr r0, [r6]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809B8C4
|
|
bl sub_809B294
|
|
ldr r0, [r6]
|
|
ldr r3, _0809B8C0
|
|
adds r0, r3
|
|
ldr r1, [r0]
|
|
movs r0, 0x4
|
|
bl sub_80151C0
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809B8C0: .4byte 0x0000042c
|
|
_0809B8C4:
|
|
bl sub_80154F0
|
|
cmp r0, 0x3
|
|
bne _0809B8D4
|
|
bl sub_80155F0
|
|
bl _0809C1B4
|
|
_0809B8D4:
|
|
cmp r0, 0x2
|
|
beq _0809B8DA
|
|
b _0809B784
|
|
_0809B8DA:
|
|
ldr r0, [r6]
|
|
ldr r2, _0809B8F8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
bne _0809B8E8
|
|
b _0809B784
|
|
_0809B8E8:
|
|
bl sub_80155F0
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B828
|
|
.align 2, 0
|
|
_0809B8F8: .4byte 0x00000424
|
|
_0809B8FC:
|
|
ldr r0, [r6]
|
|
ldr r1, _0809B914
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
bl sub_801D014
|
|
ldr r0, [r6]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809B918
|
|
b _0809B932
|
|
.align 2, 0
|
|
_0809B914: .4byte 0x0000042c
|
|
_0809B918: .4byte gUnknown_81161A8
|
|
_0809B91C:
|
|
ldr r0, [r6]
|
|
ldr r3, _0809B93C
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
bl sub_801D014
|
|
ldr r0, [r6]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809B940
|
|
_0809B932:
|
|
str r1, [r0]
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809B93C: .4byte 0x0000042c
|
|
_0809B940: .4byte gUnknown_81161B8
|
|
_0809B944:
|
|
bl sub_809B294
|
|
ldr r4, _0809B984
|
|
ldr r0, [r4]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809B998
|
|
bl sub_809B294
|
|
ldr r0, [r4]
|
|
ldr r3, _0809B988
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
ldr r1, _0809B98C
|
|
bl sub_8015080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809B990
|
|
ldr r0, [r4]
|
|
_0809B972:
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
_0809B978:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl _0809C392
|
|
.align 2, 0
|
|
_0809B984: .4byte gUnknown_3001B64
|
|
_0809B988: .4byte 0x0000042c
|
|
_0809B98C: .4byte gUnknown_811610C
|
|
_0809B990:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
_0809B998:
|
|
bl sub_801516C
|
|
cmp r0, 0x2
|
|
beq _0809B9BC
|
|
cmp r0, 0x3
|
|
beq _0809B9A6
|
|
b _0809B784
|
|
_0809B9A6:
|
|
bl sub_8015198
|
|
ldr r1, [r4]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
bl sub_80151A4
|
|
bl _0809C392
|
|
_0809B9BC:
|
|
ldr r0, [r4]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_80151A4
|
|
bl _0809C392
|
|
_0809B9D2:
|
|
bl sub_809B294
|
|
ldr r4, _0809BA08
|
|
ldr r0, [r4]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BA1C
|
|
bl sub_809B294
|
|
ldr r0, [r4]
|
|
ldr r2, _0809BA0C
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
ldr r1, _0809BA10
|
|
bl sub_8015080
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BA14
|
|
ldr r0, [r4]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809BA08: .4byte gUnknown_3001B64
|
|
_0809BA0C: .4byte 0x0000042c
|
|
_0809BA10: .4byte gUnknown_811612C
|
|
_0809BA14:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
_0809BA1C:
|
|
bl sub_801516C
|
|
cmp r0, 0x2
|
|
beq _0809B9BC
|
|
cmp r0, 0x3
|
|
beq _0809B9A6
|
|
b _0809B784
|
|
_0809BA2A:
|
|
ldr r0, [r6]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BA68
|
|
bl sub_809B294
|
|
ldr r0, [r6]
|
|
ldr r2, _0809BA5C
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
movs r1, 0x3
|
|
bl sub_80211AC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BA60
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809BA5C: .4byte 0x00000424
|
|
_0809BA60:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
_0809BA68:
|
|
movs r0, 0x1
|
|
bl sub_8021274
|
|
cmp r0, 0x2
|
|
beq _0809BA92
|
|
cmp r0, 0x3
|
|
beq _0809BA78
|
|
b _0809B784
|
|
_0809BA78:
|
|
bl sub_802132C
|
|
ldr r1, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
str r0, [r1]
|
|
bl sub_80213A0
|
|
bl _0809C392
|
|
_0809BA92:
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_80213A0
|
|
bl _0809C392
|
|
_0809BAA8:
|
|
ldr r0, [r6]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BB10
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2654
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
bl sub_809B294
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
movs r3, 0x1
|
|
bl sub_802F73C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BAEA
|
|
ldr r0, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
b _0809B978
|
|
_0809BAEA:
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
cmp r4, r5
|
|
beq _0809BB08
|
|
adds r0, r4, 0
|
|
bl sub_802F848
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BB08
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
adds r2, r5, 0
|
|
bl sub_80018D8
|
|
_0809BB08:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
_0809BB10:
|
|
movs r0, 0x1
|
|
bl sub_802F8A0
|
|
cmp r0, 0x2
|
|
beq _0809BB50
|
|
cmp r0, 0x3
|
|
beq _0809BB20
|
|
b _0809B784
|
|
_0809BB20:
|
|
bl sub_802F90C
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A26B8
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_80018D8
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
str r4, [r0]
|
|
bl sub_802F974
|
|
bl _0809C392
|
|
_0809BB50:
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_802F974
|
|
bl _0809C392
|
|
_0809BB66:
|
|
ldr r0, [r6]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BB9A
|
|
bl sub_809B294
|
|
movs r0, 0x3
|
|
movs r1, 0
|
|
movs r2, 0xA
|
|
bl sub_80302E8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BB92
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B978
|
|
_0809BB92:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
b _0809B784
|
|
_0809BB9A:
|
|
movs r0, 0x1
|
|
bl sub_80303AC
|
|
cmp r0, 0x2
|
|
beq _0809BBC4
|
|
cmp r0, 0x3
|
|
beq _0809BBAA
|
|
b _0809B784
|
|
_0809BBAA:
|
|
bl sub_8030418
|
|
ldr r1, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [r1]
|
|
bl sub_8030480
|
|
bl _0809C392
|
|
_0809BBC4:
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_8030480
|
|
bl _0809C392
|
|
_0809BBDA:
|
|
ldr r0, [r6]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BC14
|
|
bl sub_809B294
|
|
ldr r0, [r6]
|
|
ldr r2, _0809BC10
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0xE
|
|
bne _0809BC02
|
|
movs r0, 0
|
|
movs r1, 0x18
|
|
movs r2, 0x1
|
|
bl sub_80018D8
|
|
_0809BC02:
|
|
movs r0, 0x1
|
|
bl sub_8011C28
|
|
movs r0, 0
|
|
bl sub_8012574
|
|
b _0809B784
|
|
.align 2, 0
|
|
_0809BC10: .4byte 0x00000414
|
|
_0809BC14:
|
|
bl sub_8012600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BC20
|
|
b _0809B784
|
|
_0809BC20:
|
|
bl sub_8012750
|
|
b _0809C392
|
|
_0809BC26:
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
lsrs r4, 31
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_8016C94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BC5C
|
|
ldr r0, _0809BC54
|
|
ldr r0, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809BC58
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BC54: .4byte gUnknown_3001B64
|
|
_0809BC58: .4byte gUnknown_81161C8
|
|
_0809BC5C:
|
|
ldr r0, _0809BC64
|
|
ldr r0, [r0]
|
|
b _0809B972
|
|
.align 2, 0
|
|
_0809BC64: .4byte gUnknown_3001B64
|
|
_0809BC68:
|
|
ldr r0, [r6]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809BC74
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BC74: .4byte gUnknown_81161D8
|
|
_0809BC78:
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
lsrs r4, 31
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_80162E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BCB0
|
|
ldr r0, _0809BCA8
|
|
ldr r0, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809BCAC
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BCA8: .4byte gUnknown_3001B64
|
|
_0809BCAC: .4byte gUnknown_81161E8
|
|
_0809BCB0:
|
|
ldr r0, _0809BCB8
|
|
ldr r0, [r0]
|
|
b _0809B972
|
|
.align 2, 0
|
|
_0809BCB8: .4byte gUnknown_3001B64
|
|
_0809BCBC:
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_809B294
|
|
ldr r0, _0809BCE0
|
|
ldr r0, [r0]
|
|
ldr r2, _0809BCE4
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x17
|
|
bne _0809BCE8
|
|
negs r0, r4
|
|
orrs r0, r4
|
|
lsrs r0, 31
|
|
b _0809BCF0
|
|
.align 2, 0
|
|
_0809BCE0: .4byte gUnknown_3001B64
|
|
_0809BCE4: .4byte 0x00000414
|
|
_0809BCE8:
|
|
movs r0, 0x2
|
|
cmp r4, 0
|
|
beq _0809BCF0
|
|
movs r0, 0x3
|
|
_0809BCF0:
|
|
bl sub_8018B00
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BD10
|
|
ldr r0, _0809BD08
|
|
ldr r0, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809BD0C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BD08: .4byte gUnknown_3001B64
|
|
_0809BD0C: .4byte gUnknown_81161F8
|
|
_0809BD10:
|
|
ldr r0, _0809BD18
|
|
ldr r0, [r0]
|
|
b _0809B972
|
|
.align 2, 0
|
|
_0809BD18: .4byte gUnknown_3001B64
|
|
_0809BD1C:
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
lsrs r4, 31
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_801FB50
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BD54
|
|
ldr r0, _0809BD4C
|
|
ldr r0, [r0]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809BD50
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BD4C: .4byte gUnknown_3001B64
|
|
_0809BD50: .4byte gUnknown_8116208
|
|
_0809BD54:
|
|
ldr r0, _0809BD60
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809BD60: .4byte gUnknown_3001B64
|
|
_0809BD64:
|
|
ldr r0, [r6]
|
|
movs r1, 0x84
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809BD84
|
|
bl sub_809B294
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
bl sub_80015C0
|
|
bl sub_802465C
|
|
b _0809B784
|
|
_0809BD84:
|
|
bl sub_80246F0
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
bl sub_8001658
|
|
cmp r0, 0
|
|
bne _0809BDB2
|
|
bl sub_80247B4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BDB2
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
movs r2, 0x1
|
|
bl sub_80018D8
|
|
movs r0, 0x46
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
_0809BDB2:
|
|
cmp r4, 0x3
|
|
bne _0809BDCC
|
|
bl sub_80247C0
|
|
ldr r0, _0809BDC8
|
|
ldr r0, [r0]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
b _0809C1BC
|
|
.align 2, 0
|
|
_0809BDC8: .4byte gUnknown_3001B64
|
|
_0809BDCC:
|
|
cmp r4, 0x2
|
|
beq _0809BDD2
|
|
b _0809B784
|
|
_0809BDD2:
|
|
bl sub_80247C0
|
|
ldr r0, _0809BDE4
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B828
|
|
.align 2, 0
|
|
_0809BDE4: .4byte gUnknown_3001B64
|
|
_0809BDE8:
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
lsrs r4, 31
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_8021B9C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BE20
|
|
ldr r0, _0809BE18
|
|
ldr r0, [r0]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809BE1C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BE18: .4byte gUnknown_3001B64
|
|
_0809BE1C: .4byte gUnknown_8116218
|
|
_0809BE20:
|
|
ldr r0, _0809BE2C
|
|
ldr r0, [r0]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809BE2C: .4byte gUnknown_3001B64
|
|
_0809BE30:
|
|
ldr r0, [r6]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809BE3C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BE3C: .4byte gUnknown_8116228
|
|
_0809BE40:
|
|
ldr r0, [r6]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809BE4C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BE4C: .4byte gUnknown_8116238
|
|
_0809BE50:
|
|
ldr r0, [r6]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809BE5C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BE5C: .4byte gUnknown_8116248
|
|
_0809BE60:
|
|
bl sub_809B294
|
|
movs r0, 0x98
|
|
lsls r0, 1
|
|
bl sub_80314B4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BE84
|
|
ldr r0, _0809BE80
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809BE80: .4byte gUnknown_3001B64
|
|
_0809BE84:
|
|
ldr r0, _0809BE94
|
|
ldr r0, [r0]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809BE98
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BE94: .4byte gUnknown_3001B64
|
|
_0809BE98: .4byte gUnknown_8116258
|
|
_0809BE9C:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
ldr r0, _0809BEB0
|
|
ldr r0, [r0]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809BEB4
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BEB0: .4byte gUnknown_3001B64
|
|
_0809BEB4: .4byte gUnknown_8116268
|
|
_0809BEB8:
|
|
movs r0, 0x4
|
|
bl sub_80119D4
|
|
ldr r0, _0809BECC
|
|
ldr r0, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809BED0
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BECC: .4byte gUnknown_3001B64
|
|
_0809BED0: .4byte gUnknown_8116278
|
|
_0809BED4:
|
|
mov r0, sp
|
|
bl sub_8099328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809BF4E
|
|
add r1, sp, 0x4
|
|
add r2, sp, 0x8
|
|
movs r0, 0x2
|
|
bl sub_8001B88
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, 0x7
|
|
bgt _0809BF4E
|
|
add r4, sp, 0xC
|
|
_0809BEF2:
|
|
lsls r1, r0, 24
|
|
lsrs r1, 24
|
|
mov r0, sp
|
|
ldrb r2, [r0]
|
|
adds r0, r4, 0
|
|
bl sub_8096AF8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
beq _0809BF44
|
|
ldr r1, [sp, 0x4]
|
|
ldr r2, [sp, 0x8]
|
|
movs r0, 0x2
|
|
bl sub_8001BB4
|
|
ldr r0, _0809BF40
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r2, r0, r1
|
|
ldrh r1, [r4, 0x2]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r1, r0, 31
|
|
movs r3, 0x4
|
|
ldrsh r0, [r4, r3]
|
|
cmp r0, 0
|
|
beq _0809BF30
|
|
adds r1, 0x2
|
|
_0809BF30:
|
|
str r1, [r2]
|
|
cmp r1, 0
|
|
beq _0809BF38
|
|
b _0809C392
|
|
_0809BF38:
|
|
movs r0, 0x3
|
|
str r0, [r2]
|
|
b _0809C392
|
|
.align 2, 0
|
|
_0809BF40: .4byte gUnknown_3001B64
|
|
_0809BF44:
|
|
ldr r0, [sp, 0x8]
|
|
adds r0, 0x1
|
|
str r0, [sp, 0x8]
|
|
cmp r0, 0x7
|
|
ble _0809BEF2
|
|
_0809BF4E:
|
|
ldr r0, _0809BF6C
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0
|
|
str r1, [r0]
|
|
bl sub_8096BD0
|
|
movs r0, 0x2
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_8001BB4
|
|
b _0809C392
|
|
.align 2, 0
|
|
_0809BF6C: .4byte gUnknown_3001B64
|
|
_0809BF70:
|
|
mov r5, sp
|
|
adds r5, 0x1
|
|
adds r0, r5, 0
|
|
bl sub_8099328
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BF82
|
|
b _0809C392
|
|
_0809BF82:
|
|
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, [r5]
|
|
adds r0, r4, 0
|
|
bl sub_8096AF8
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0809BFA4
|
|
b _0809C392
|
|
_0809BFA4:
|
|
ldr r0, [sp, 0x18]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
ldrb r1, [r5]
|
|
bl sub_802DB28
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809BFB8
|
|
b _0809C392
|
|
_0809BFB8:
|
|
movs r0, 0
|
|
movs r1, 0x19
|
|
bl sub_8001658
|
|
cmp r0, 0x63
|
|
bgt _0809BFCE
|
|
adds r2, r0, 0x1
|
|
movs r0, 0
|
|
movs r1, 0x19
|
|
bl sub_80018D8
|
|
_0809BFCE:
|
|
movs r0, 0
|
|
movs r1, 0x39
|
|
movs r2, 0x1
|
|
bl sub_80018D8
|
|
ldr r1, [sp, 0x14]
|
|
ldr r2, [sp, 0x18]
|
|
adds r2, 0x1
|
|
movs r0, 0x2
|
|
bl sub_8001BB4
|
|
ldr r0, _0809BFF4
|
|
ldr r0, [r0]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809BFF8
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809BFF4: .4byte gUnknown_3001B64
|
|
_0809BFF8: .4byte gUnknown_8116288
|
|
_0809BFFC:
|
|
ldr r0, [r6]
|
|
movs r3, 0x84
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809C036
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
negs r4, r0
|
|
orrs r4, r0
|
|
asrs r4, 31
|
|
movs r0, 0x4
|
|
ands r4, r0
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_802FD14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C032
|
|
bl _0809B784
|
|
_0809C032:
|
|
ldr r0, [r6]
|
|
b _0809B972
|
|
_0809C036:
|
|
bl sub_802FE58
|
|
cmp r0, 0x2
|
|
beq _0809C05E
|
|
cmp r0, 0x3
|
|
beq _0809C046
|
|
bl _0809B784
|
|
_0809C046:
|
|
bl sub_802FED0
|
|
ldr r1, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [r1]
|
|
bl sub_802FEE0
|
|
b _0809C392
|
|
_0809C05E:
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_802FEE0
|
|
b _0809C392
|
|
_0809C072:
|
|
movs r4, 0x1
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C082
|
|
movs r4, 0x5
|
|
_0809C082:
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_802FD14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C0A8
|
|
ldr r0, _0809C0A0
|
|
ldr r0, [r0]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809C0A4
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C0A0: .4byte gUnknown_3001B64
|
|
_0809C0A4: .4byte gUnknown_8116298
|
|
_0809C0A8:
|
|
ldr r0, _0809C0B4
|
|
ldr r0, [r0]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
b _0809B978
|
|
.align 2, 0
|
|
_0809C0B4: .4byte gUnknown_3001B64
|
|
_0809C0B8:
|
|
movs r4, 0x2
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C0C8
|
|
movs r4, 0x6
|
|
_0809C0C8:
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_802FD14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C0F0
|
|
ldr r0, _0809C0E8
|
|
ldr r0, [r0]
|
|
movs r3, 0x83
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r1, _0809C0EC
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C0E8: .4byte gUnknown_3001B64
|
|
_0809C0EC: .4byte gUnknown_81162A8
|
|
_0809C0F0:
|
|
ldr r0, _0809C0F8
|
|
ldr r0, [r0]
|
|
b _0809B972
|
|
.align 2, 0
|
|
_0809C0F8: .4byte gUnknown_3001B64
|
|
_0809C0FC:
|
|
movs r4, 0x3
|
|
movs r0, 0x4
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C10C
|
|
movs r4, 0x7
|
|
_0809C10C:
|
|
bl sub_809B294
|
|
adds r0, r4, 0
|
|
bl sub_802FD14
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C134
|
|
ldr r0, _0809C12C
|
|
ldr r0, [r0]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809C130
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C12C: .4byte gUnknown_3001B64
|
|
_0809C130: .4byte gUnknown_81162B8
|
|
_0809C134:
|
|
ldr r0, _0809C144
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
bl _0809B978
|
|
.align 2, 0
|
|
_0809C144: .4byte gUnknown_3001B64
|
|
_0809C148:
|
|
ldr r0, [r6]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809C154
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C154: .4byte gUnknown_81162C8
|
|
_0809C158:
|
|
ldr r0, [r6]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809C164
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C164: .4byte gUnknown_81162D8
|
|
_0809C168:
|
|
bl sub_809B294
|
|
bl sub_803B050
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C1A0
|
|
ldr r4, _0809C194
|
|
ldr r0, [r4]
|
|
ldr r3, _0809C198
|
|
adds r0, r3
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_803B100
|
|
ldr r0, [r4]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809C19C
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C194: .4byte gUnknown_3001B64
|
|
_0809C198: .4byte 0x000005a4
|
|
_0809C19C: .4byte gUnknown_81162E8
|
|
_0809C1A0:
|
|
ldr r0, _0809C1B0
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
bl _0809B978
|
|
.align 2, 0
|
|
_0809C1B0: .4byte gUnknown_3001B64
|
|
_0809C1B4:
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
_0809C1BC:
|
|
movs r1, 0x1
|
|
str r1, [r0]
|
|
b _0809C392
|
|
_0809C1C2:
|
|
bl sub_809B294
|
|
b _0809C392
|
|
_0809C1C8:
|
|
movs r0, 0x2
|
|
bl sub_80252F0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C1EC
|
|
ldr r0, _0809C1E4
|
|
ldr r0, [r0]
|
|
movs r2, 0x83
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r1, _0809C1E8
|
|
b _0809C266
|
|
.align 2, 0
|
|
_0809C1E4: .4byte gUnknown_3001B64
|
|
_0809C1E8: .4byte gUnknown_81162F8
|
|
_0809C1EC:
|
|
ldr r0, _0809C200
|
|
ldr r0, [r0]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
movs r1, 0x2
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
b _0809C392
|
|
.align 2, 0
|
|
_0809C200: .4byte gUnknown_3001B64
|
|
_0809C204:
|
|
ldr r1, [r6]
|
|
ldr r2, _0809C230
|
|
adds r0, r1, r2
|
|
ldr r0, [r0]
|
|
movs r3, 0x85
|
|
lsls r3, 3
|
|
adds r1, r3
|
|
ldr r1, [r1]
|
|
bl sub_809CCDC
|
|
ldr r1, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r2, r1, r3
|
|
str r0, [r2]
|
|
movs r0, 0x83
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
ldr r0, _0809C234
|
|
str r0, [r1]
|
|
bl _0809B784
|
|
.align 2, 0
|
|
_0809C230: .4byte 0x00000424
|
|
_0809C234: .4byte gUnknown_8116308
|
|
_0809C238:
|
|
ldr r0, [r6]
|
|
movs r2, 0x85
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldr r5, [r1]
|
|
ldr r3, _0809C26C
|
|
adds r0, r3
|
|
ldrb r4, [r0]
|
|
bl sub_809B294
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
movs r2, 0x1
|
|
bl sub_801B60C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C274
|
|
ldr r0, [r6]
|
|
movs r1, 0x83
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
ldr r1, _0809C270
|
|
_0809C266:
|
|
str r1, [r0]
|
|
bl _0809B784
|
|
.align 2, 0
|
|
_0809C26C: .4byte 0x00000424
|
|
_0809C270: .4byte gUnknown_8116318
|
|
_0809C274:
|
|
ldr r0, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
bl _0809B978
|
|
_0809C280:
|
|
ldr r0, [r6]
|
|
movs r3, 0x84
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809C2B8
|
|
bl sub_809B294
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
movs r2, 0x1
|
|
bl sub_800641C
|
|
movs r0, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
movs r3, 0xA
|
|
bl sub_801A5D8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C2B2
|
|
bl _0809B784
|
|
_0809C2B2:
|
|
ldr r0, [r6]
|
|
bl _0809B972
|
|
_0809C2B8:
|
|
movs r0, 0x1
|
|
bl sub_801A6E8
|
|
cmp r0, 0x2
|
|
beq _0809C320
|
|
cmp r0, 0x3
|
|
beq _0809C2CA
|
|
bl _0809B784
|
|
_0809C2CA:
|
|
bl sub_801A8AC
|
|
adds r5, r0, 0
|
|
ldr r0, _0809C304
|
|
ldr r0, [r0]
|
|
lsls r1, r5, 2
|
|
adds r0, r1
|
|
ldrb r4, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8091570
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C30C
|
|
ldr r0, _0809C308
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8090DC4
|
|
adds r0, r5, 0
|
|
bl sub_80911F8
|
|
ldr r0, [r6]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
movs r1, 0x1
|
|
b _0809C318
|
|
.align 2, 0
|
|
_0809C304: .4byte gUnknown_203B460
|
|
_0809C308: .4byte gUnknown_202DE58
|
|
_0809C30C:
|
|
ldr r0, [r6]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
_0809C314:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
_0809C318:
|
|
str r1, [r0]
|
|
bl sub_801A928
|
|
b _0809C392
|
|
_0809C320:
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
b _0809C314
|
|
_0809C32A:
|
|
adds r4, r6, 0
|
|
ldr r0, [r4]
|
|
movs r2, 0x84
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809C36C
|
|
bl sub_809B294
|
|
ldr r1, [r4]
|
|
ldr r3, _0809C368
|
|
adds r0, r1, r3
|
|
ldr r0, [r0]
|
|
movs r2, 0x85
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
ldr r1, [r1]
|
|
bl sub_8035444
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C35C
|
|
bl _0809B784
|
|
_0809C35C:
|
|
ldr r0, [r4]
|
|
movs r3, 0x86
|
|
lsls r3, 3
|
|
adds r0, r3
|
|
bl _0809B978
|
|
.align 2, 0
|
|
_0809C368: .4byte 0x00000424
|
|
_0809C36C:
|
|
bl sub_8035574
|
|
cmp r0, 0x3
|
|
bls _0809C378
|
|
bl _0809B784
|
|
_0809C378:
|
|
cmp r0, 0x2
|
|
bcs _0809C380
|
|
bl _0809B784
|
|
_0809C380:
|
|
ldr r0, [r6]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
bl sub_803565C
|
|
_0809C392:
|
|
movs r0, 0
|
|
_0809C394:
|
|
add sp, 0x24
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809B648
|
|
|
|
thumb_func_start sub_809C39C
|
|
sub_809C39C:
|
|
push {lr}
|
|
bl sub_801D178
|
|
ldr r1, _0809C3D4
|
|
ldr r1, [r1]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _0809C3CC
|
|
bl sub_801D1D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8002694
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0
|
|
bl sub_8098D1C
|
|
_0809C3CC:
|
|
bl sub_801D1E0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C3D4: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809C39C
|
|
|
|
thumb_func_start sub_809C3D8
|
|
sub_809C3D8:
|
|
push {lr}
|
|
bl sub_801D178
|
|
ldr r1, _0809C410
|
|
ldr r1, [r1]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r2
|
|
str r0, [r1]
|
|
cmp r0, 0x3
|
|
bne _0809C408
|
|
bl sub_801D1D4
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8002694
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0
|
|
bl sub_8098D1C
|
|
_0809C408:
|
|
bl sub_801D1E0
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C410: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809C3D8
|
|
|
|
thumb_func_start sub_809C414
|
|
sub_809C414:
|
|
push {lr}
|
|
bl sub_802540C
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
cmp r1, 0
|
|
beq _0809C448
|
|
ldr r0, _0809C444
|
|
ldr r0, [r0]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
adds r0, r1, 0
|
|
bl sub_8002694
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r1, 0
|
|
bl sub_8098D1C
|
|
b _0809C458
|
|
.align 2, 0
|
|
_0809C444: .4byte gUnknown_3001B64
|
|
_0809C448:
|
|
ldr r0, _0809C460
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
_0809C458:
|
|
bl sub_8025418
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C460: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809C414
|
|
|
|
thumb_func_start sub_809C464
|
|
sub_809C464:
|
|
push {lr}
|
|
bl sub_803C850
|
|
bl sub_8001064
|
|
bl sub_809965C
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809C464
|
|
|
|
thumb_func_start sub_809C478
|
|
sub_809C478:
|
|
push {lr}
|
|
sub sp, 0x8
|
|
bl sub_80356A0
|
|
cmp r0, 0x3
|
|
bne _0809C492
|
|
ldr r0, _0809C4AC
|
|
bl sub_8011988
|
|
bl InitFlash
|
|
bl ClearFlashData
|
|
_0809C492:
|
|
bl sub_8035758
|
|
add r2, sp, 0x4
|
|
movs r0, 0x3
|
|
mov r1, sp
|
|
bl sub_8001B88
|
|
movs r0, 0
|
|
bl sub_80993C0
|
|
add sp, 0x8
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C4AC: .4byte 0x00000313
|
|
thumb_func_end sub_809C478
|
|
|
|
thumb_func_start sub_809C4B0
|
|
sub_809C4B0:
|
|
push {r4,r5,lr}
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
ldr r5, _0809C4FC
|
|
ldr r0, [r5]
|
|
movs r2, 0x86
|
|
lsls r2, 3
|
|
adds r1, r0, r2
|
|
ldr r0, [r1]
|
|
cmp r0, 0
|
|
bne _0809C4DE
|
|
bl sub_803B168
|
|
lsls r0, 16
|
|
ldr r1, [r5]
|
|
ldr r3, _0809C500
|
|
adds r2, r1, r3
|
|
asrs r4, r0, 16
|
|
lsrs r0, 16
|
|
strh r0, [r2]
|
|
movs r0, 0x86
|
|
lsls r0, 3
|
|
adds r1, r0
|
|
_0809C4DE:
|
|
str r4, [r1]
|
|
bl sub_803B1BC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _0809C4F4
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
_0809C4F4:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C4FC: .4byte gUnknown_3001B64
|
|
_0809C500: .4byte 0x000005a4
|
|
thumb_func_end sub_809C4B0
|
|
|
|
thumb_func_start sub_809C504
|
|
sub_809C504:
|
|
push {r4,lr}
|
|
sub sp, 0x4
|
|
mov r0, sp
|
|
bl sub_80282DC
|
|
adds r4, r0, 0
|
|
cmp r4, 0x1
|
|
bne _0809C530
|
|
mov r0, sp
|
|
ldrb r0, [r0]
|
|
bl sub_809927C
|
|
ldr r0, _0809C52C
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
str r4, [r0]
|
|
b _0809C540
|
|
.align 2, 0
|
|
_0809C52C: .4byte gUnknown_3001B64
|
|
_0809C530:
|
|
ldr r0, _0809C54C
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0]
|
|
_0809C540:
|
|
bl sub_80282FC
|
|
add sp, 0x4
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C54C: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809C504
|
|
|
|
thumb_func_start sub_809C550
|
|
sub_809C550:
|
|
push {r4,r5,lr}
|
|
bl sub_802E90C
|
|
adds r4, r0, 0
|
|
movs r5, 0
|
|
bl sub_802E918
|
|
cmp r4, 0x2
|
|
beq _0809C586
|
|
cmp r4, 0x2
|
|
bhi _0809C56C
|
|
cmp r4, 0x1
|
|
beq _0809C572
|
|
b _0809C5AC
|
|
_0809C56C:
|
|
cmp r4, 0x3
|
|
beq _0809C59A
|
|
b _0809C5AC
|
|
_0809C572:
|
|
movs r0, 0x4
|
|
movs r1, 0x1D
|
|
movs r2, 0x3
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C5AC
|
|
movs r5, 0x1
|
|
b _0809C5AC
|
|
_0809C586:
|
|
movs r0, 0x4
|
|
movs r1, 0x1F
|
|
movs r2, 0x2
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C5AC
|
|
movs r5, 0x2
|
|
b _0809C5AC
|
|
_0809C59A:
|
|
movs r0, 0xB
|
|
movs r1, 0x33
|
|
movs r2, 0x8
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809C5AC
|
|
movs r5, 0x3
|
|
_0809C5AC:
|
|
ldr r0, _0809C5C0
|
|
ldr r0, [r0]
|
|
movs r1, 0x86
|
|
lsls r1, 3
|
|
adds r0, r1
|
|
str r5, [r0]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C5C0: .4byte gUnknown_3001B64
|
|
thumb_func_end sub_809C550
|
|
|
|
thumb_func_start sub_809C5C4
|
|
sub_809C5C4:
|
|
push {r4,lr}
|
|
ldr r4, _0809C610
|
|
movs r0, 0x24
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
str r2, [r0, 0x4]
|
|
movs r3, 0
|
|
strh r2, [r0, 0x8]
|
|
strh r2, [r0, 0xA]
|
|
strb r3, [r0, 0xD]
|
|
ldr r0, [r4]
|
|
strb r3, [r0, 0xE]
|
|
ldr r1, [r4]
|
|
str r2, [r1, 0x10]
|
|
ldr r0, _0809C614
|
|
strh r0, [r1, 0x14]
|
|
movs r0, 0x23
|
|
strh r0, [r1, 0x16]
|
|
strb r3, [r1, 0x18]
|
|
ldr r1, [r4]
|
|
movs r0, 0x3F
|
|
strb r0, [r1, 0x19]
|
|
ldr r0, [r4]
|
|
str r2, [r0, 0x1C]
|
|
adds r0, 0x20
|
|
strb r3, [r0]
|
|
bl nullsub_107
|
|
bl sub_809C63C
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C610: .4byte gUnknown_3001B68
|
|
_0809C614: .4byte 0x0000ffff
|
|
thumb_func_end sub_809C5C4
|
|
|
|
thumb_func_start sub_809C618
|
|
sub_809C618:
|
|
push {r4,lr}
|
|
bl sub_809C63C
|
|
bl nullsub_107
|
|
bl nullsub_108
|
|
ldr r4, _0809C638
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C638: .4byte gUnknown_3001B68
|
|
thumb_func_end sub_809C618
|
|
|
|
thumb_func_start sub_809C63C
|
|
sub_809C63C:
|
|
push {lr}
|
|
bl nullsub_108
|
|
ldr r0, _0809C654
|
|
ldr r0, [r0]
|
|
movs r1, 0
|
|
str r1, [r0, 0x1C]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C654: .4byte gUnknown_3001B68
|
|
thumb_func_end sub_809C63C
|
|
|
|
thumb_func_start sub_809C658
|
|
sub_809C658:
|
|
push {lr}
|
|
ldr r0, _0809C670
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0xA]
|
|
cmp r0, 0x5
|
|
bhi _0809C6C8
|
|
lsls r0, 2
|
|
ldr r1, _0809C674
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809C670: .4byte gUnknown_3001B68
|
|
_0809C674: .4byte _0809C678
|
|
.align 2, 0
|
|
_0809C678:
|
|
.4byte _0809C6C0
|
|
.4byte _0809C6C0
|
|
.4byte _0809C6AC
|
|
.4byte _0809C690
|
|
.4byte _0809C69E
|
|
.4byte _0809C6B6
|
|
_0809C690:
|
|
bl nullsub_111
|
|
bl nullsub_112
|
|
bl nullsub_113
|
|
b _0809C6C8
|
|
_0809C69E:
|
|
bl nullsub_114
|
|
bl nullsub_115
|
|
bl nullsub_116
|
|
b _0809C6C8
|
|
_0809C6AC:
|
|
bl nullsub_109
|
|
bl nullsub_110
|
|
b _0809C6C8
|
|
_0809C6B6:
|
|
bl nullsub_107
|
|
bl nullsub_108
|
|
b _0809C6C8
|
|
_0809C6C0:
|
|
bl nullsub_107
|
|
bl nullsub_108
|
|
_0809C6C8:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809C658
|
|
|
|
thumb_func_start sub_809C6CC
|
|
sub_809C6CC:
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, _0809C6E8
|
|
ldr r1, [r0]
|
|
ldrh r0, [r1, 0x8]
|
|
cmp r0, r2
|
|
beq _0809C6E2
|
|
movs r0, 0
|
|
strh r2, [r1, 0x8]
|
|
strb r0, [r1, 0xE]
|
|
_0809C6E2:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809C6E8: .4byte gUnknown_3001B68
|
|
thumb_func_end sub_809C6CC
|
|
|
|
thumb_func_start sub_809C6EC
|
|
sub_809C6EC:
|
|
push {lr}
|
|
bl sub_8098F88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809C718
|
|
ldr r0, _0809C70C
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
bne _0809C710
|
|
movs r0, 0x4
|
|
bl sub_809C6CC
|
|
b _0809C71E
|
|
.align 2, 0
|
|
_0809C70C: .4byte gUnknown_203B46C
|
|
_0809C710:
|
|
movs r0, 0x3
|
|
bl sub_809C6CC
|
|
b _0809C71E
|
|
_0809C718:
|
|
movs r0, 0x5
|
|
bl sub_809C6CC
|
|
_0809C71E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809C6EC
|
|
|
|
thumb_func_start sub_809C724
|
|
sub_809C724:
|
|
ldr r0, _0809C72C
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0x8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809C72C: .4byte gUnknown_3001B68
|
|
thumb_func_end sub_809C724
|
|
|
|
thumb_func_start sub_809C730
|
|
sub_809C730:
|
|
push {lr}
|
|
bl sub_809C740
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809C730
|
|
|
|
thumb_func_start sub_809C740
|
|
sub_809C740:
|
|
push {lr}
|
|
ldr r0, _0809C750
|
|
ldr r0, [r0]
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809C754
|
|
movs r0, 0
|
|
b _0809C756
|
|
.align 2, 0
|
|
_0809C750: .4byte gUnknown_3001B68
|
|
_0809C754:
|
|
movs r0, 0x1
|
|
_0809C756:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809C740
|
|
|
|
thumb_func_start nullsub_104
|
|
nullsub_104:
|
|
bx lr
|
|
thumb_func_end nullsub_104
|
|
|
|
thumb_func_start sub_809C760
|
|
sub_809C760:
|
|
ldr r0, _0809C76C
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xE]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809C76C: .4byte gUnknown_3001B68
|
|
thumb_func_end sub_809C760
|
|
|
|
thumb_func_start sub_809C770
|
|
sub_809C770:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
ldr r4, _0809C790
|
|
ldr r1, [r4]
|
|
ldrb r0, [r1, 0xE]
|
|
cmp r0, 0
|
|
beq _0809C794
|
|
movs r0, 0
|
|
strb r0, [r1, 0xE]
|
|
b _0809CA10
|
|
.align 2, 0
|
|
_0809C790: .4byte gUnknown_3001B68
|
|
_0809C794:
|
|
ldrh r0, [r1, 0x8]
|
|
cmp r0, 0
|
|
bne _0809C79E
|
|
bl sub_809C6EC
|
|
_0809C79E:
|
|
ldr r0, [r4]
|
|
ldrb r5, [r0, 0x18]
|
|
ldrb r7, [r0, 0x19]
|
|
cmp r6, 0x26
|
|
bls _0809C7AA
|
|
b _0809C8C8
|
|
_0809C7AA:
|
|
lsls r0, r6, 2
|
|
ldr r1, _0809C7B4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809C7B4: .4byte _0809C7B8
|
|
.align 2, 0
|
|
_0809C7B8:
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C854
|
|
.4byte _0809C868
|
|
.4byte _0809C868
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C8C8
|
|
.4byte _0809C86E
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
_0809C854:
|
|
mov r0, r8
|
|
bl sub_8002658
|
|
lsls r0, 24
|
|
lsrs r5, r0, 24
|
|
cmp r5, 0
|
|
bne _0809C864
|
|
b _0809CA10
|
|
_0809C864:
|
|
movs r4, 0x1
|
|
b _0809C988
|
|
_0809C868:
|
|
movs r4, 0x1
|
|
movs r5, 0
|
|
b _0809C988
|
|
_0809C86E:
|
|
mov r0, r8
|
|
subs r0, 0xA4
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0xD
|
|
bls _0809C87C
|
|
b _0809CA10
|
|
_0809C87C:
|
|
lsls r0, 2
|
|
ldr r1, _0809C888
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809C888: .4byte _0809C88C
|
|
.align 2, 0
|
|
_0809C88C:
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809CA10
|
|
.4byte _0809CA10
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809CA10
|
|
.4byte _0809CA10
|
|
.4byte _0809CA10
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
.4byte _0809C8C4
|
|
_0809C8C4:
|
|
movs r4, 0
|
|
b _0809C988
|
|
_0809C8C8:
|
|
adds r0, r6, 0
|
|
subs r0, 0xC
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x16
|
|
bhi _0809C968
|
|
lsls r0, 2
|
|
ldr r1, _0809C8E0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809C8E0: .4byte _0809C8E4
|
|
.align 2, 0
|
|
_0809C8E4:
|
|
.4byte _0809C968
|
|
.4byte _0809C940
|
|
.4byte _0809C968
|
|
.4byte _0809C968
|
|
.4byte _0809C968
|
|
.4byte _0809C968
|
|
.4byte _0809C944
|
|
.4byte _0809C944
|
|
.4byte _0809C948
|
|
.4byte _0809C948
|
|
.4byte _0809C94C
|
|
.4byte _0809C968
|
|
.4byte _0809C950
|
|
.4byte _0809C950
|
|
.4byte _0809C954
|
|
.4byte _0809C954
|
|
.4byte _0809C958
|
|
.4byte _0809C958
|
|
.4byte _0809C95C
|
|
.4byte _0809C95C
|
|
.4byte _0809C960
|
|
.4byte _0809C960
|
|
.4byte _0809C964
|
|
_0809C940:
|
|
movs r1, 0
|
|
b _0809C974
|
|
_0809C944:
|
|
movs r1, 0x7
|
|
b _0809C974
|
|
_0809C948:
|
|
movs r1, 0x9
|
|
b _0809C974
|
|
_0809C94C:
|
|
movs r1, 0xA
|
|
b _0809C974
|
|
_0809C950:
|
|
movs r1, 0xB
|
|
b _0809C974
|
|
_0809C954:
|
|
movs r1, 0xD
|
|
b _0809C974
|
|
_0809C958:
|
|
movs r1, 0xF
|
|
b _0809C974
|
|
_0809C95C:
|
|
movs r1, 0x11
|
|
b _0809C974
|
|
_0809C960:
|
|
movs r1, 0x13
|
|
b _0809C974
|
|
_0809C964:
|
|
movs r1, 0x20
|
|
b _0809C974
|
|
_0809C968:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
_0809C974:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809CA10
|
|
adds r0, r1, 0
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r7, r0, 24
|
|
movs r4, 0x2
|
|
_0809C988:
|
|
ldr r0, _0809C99C
|
|
ldr r2, [r0]
|
|
ldr r1, [r2, 0x10]
|
|
adds r3, r0, 0
|
|
cmp r1, r4
|
|
beq _0809C9A0
|
|
movs r0, 0x2
|
|
str r0, [r2]
|
|
b _0809C9DE
|
|
.align 2, 0
|
|
_0809C99C: .4byte gUnknown_3001B68
|
|
_0809C9A0:
|
|
cmp r4, 0x1
|
|
bne _0809C9CC
|
|
ldrb r0, [r2, 0x18]
|
|
cmp r5, r0
|
|
bne _0809C9B2
|
|
movs r1, 0x14
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r8
|
|
beq _0809C9BC
|
|
_0809C9B2:
|
|
strb r4, [r2, 0xC]
|
|
ldr r0, [r3]
|
|
adds r0, 0x20
|
|
strb r4, [r0]
|
|
b _0809C9E8
|
|
_0809C9BC:
|
|
cmp r5, 0
|
|
bne _0809C9E8
|
|
movs r1, 0x16
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r6
|
|
beq _0809C9E8
|
|
strb r4, [r2, 0xC]
|
|
b _0809C9E8
|
|
_0809C9CC:
|
|
cmp r4, 0x2
|
|
bne _0809C9E8
|
|
ldrb r0, [r2, 0x19]
|
|
cmp r7, r0
|
|
bne _0809C9DE
|
|
movs r1, 0x16
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, r6
|
|
beq _0809C9E8
|
|
_0809C9DE:
|
|
movs r1, 0x1
|
|
strb r1, [r2, 0xC]
|
|
ldr r0, [r3]
|
|
adds r0, 0x20
|
|
strb r1, [r0]
|
|
_0809C9E8:
|
|
ldr r1, [r3]
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, 0
|
|
beq _0809CA10
|
|
str r4, [r1, 0x10]
|
|
movs r2, 0
|
|
mov r0, r8
|
|
strh r0, [r1, 0x14]
|
|
strh r6, [r1, 0x16]
|
|
strb r5, [r1, 0x18]
|
|
ldr r0, [r3]
|
|
strb r7, [r0, 0x19]
|
|
ldr r1, [r3]
|
|
ldrh r0, [r1, 0x8]
|
|
cmp r0, 0x4
|
|
beq _0809CA10
|
|
strb r2, [r1, 0xC]
|
|
ldr r0, [r3]
|
|
adds r0, 0x20
|
|
strb r2, [r0]
|
|
_0809CA10:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809C770
|
|
|
|
thumb_func_start nullsub_105
|
|
nullsub_105:
|
|
bx lr
|
|
thumb_func_end nullsub_105
|
|
|
|
thumb_func_start sub_809CA20
|
|
sub_809CA20:
|
|
push {lr}
|
|
ldr r1, _0809CA74
|
|
ldr r2, [r1]
|
|
ldr r0, [r2]
|
|
cmp r0, 0
|
|
beq _0809CA38
|
|
movs r0, 0
|
|
str r0, [r2]
|
|
movs r0, 0x1F
|
|
str r0, [r2, 0x4]
|
|
movs r0, 0x1
|
|
strb r0, [r2, 0xC]
|
|
_0809CA38:
|
|
ldr r1, [r1]
|
|
ldrb r0, [r1, 0xC]
|
|
cmp r0, 0
|
|
beq _0809CAE8
|
|
ldrh r0, [r1, 0x8]
|
|
strh r0, [r1, 0xA]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x4
|
|
bne _0809CA5E
|
|
ldr r2, [r1, 0x10]
|
|
cmp r2, 0
|
|
bne _0809CA5E
|
|
movs r0, 0x2
|
|
strh r0, [r1, 0xA]
|
|
str r2, [r1, 0x1C]
|
|
adds r1, 0x20
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
_0809CA5E:
|
|
ldr r0, _0809CA74
|
|
ldr r0, [r0]
|
|
ldrh r0, [r0, 0xA]
|
|
cmp r0, 0x5
|
|
bhi _0809CADA
|
|
lsls r0, 2
|
|
ldr r1, _0809CA78
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809CA74: .4byte gUnknown_3001B68
|
|
_0809CA78: .4byte _0809CA7C
|
|
.align 2, 0
|
|
_0809CA7C:
|
|
.4byte _0809CAD2
|
|
.4byte _0809CAD2
|
|
.4byte _0809CABE
|
|
.4byte _0809CA94
|
|
.4byte _0809CAB0
|
|
.4byte _0809CAC8
|
|
_0809CA94:
|
|
bl nullsub_111
|
|
bl nullsub_113
|
|
bl nullsub_112
|
|
ldr r0, _0809CAAC
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
strb r0, [r1, 0xD]
|
|
b _0809CADA
|
|
.align 2, 0
|
|
_0809CAAC: .4byte gUnknown_3001B68
|
|
_0809CAB0:
|
|
bl nullsub_114
|
|
bl nullsub_115
|
|
bl nullsub_116
|
|
b _0809CADA
|
|
_0809CABE:
|
|
bl nullsub_109
|
|
bl nullsub_110
|
|
b _0809CADA
|
|
_0809CAC8:
|
|
bl nullsub_107
|
|
bl nullsub_108
|
|
b _0809CADA
|
|
_0809CAD2:
|
|
bl nullsub_107
|
|
bl nullsub_108
|
|
_0809CADA:
|
|
ldr r0, _0809CAE4
|
|
ldr r1, [r0]
|
|
movs r0, 0
|
|
strb r0, [r1, 0xC]
|
|
b _0809CB1E
|
|
.align 2, 0
|
|
_0809CAE4: .4byte gUnknown_3001B68
|
|
_0809CAE8:
|
|
ldrh r0, [r1, 0xA]
|
|
cmp r0, 0x5
|
|
bhi _0809CB1E
|
|
lsls r0, 2
|
|
ldr r1, _0809CAF8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809CAF8: .4byte _0809CAFC
|
|
.align 2, 0
|
|
_0809CAFC:
|
|
.4byte _0809CB1E
|
|
.4byte _0809CB1E
|
|
.4byte _0809CB1E
|
|
.4byte _0809CB14
|
|
.4byte _0809CB1A
|
|
.4byte _0809CB1E
|
|
_0809CB14:
|
|
bl nullsub_113
|
|
b _0809CB1E
|
|
_0809CB1A:
|
|
bl nullsub_116
|
|
_0809CB1E:
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809CA20
|
|
|
|
thumb_func_start nullsub_106
|
|
nullsub_106:
|
|
bx lr
|
|
thumb_func_end nullsub_106
|
|
|
|
thumb_func_start nullsub_107
|
|
nullsub_107:
|
|
bx lr
|
|
thumb_func_end nullsub_107
|
|
|
|
thumb_func_start nullsub_108
|
|
nullsub_108:
|
|
bx lr
|
|
thumb_func_end nullsub_108
|
|
|
|
thumb_func_start nullsub_109
|
|
nullsub_109:
|
|
bx lr
|
|
thumb_func_end nullsub_109
|
|
|
|
thumb_func_start nullsub_110
|
|
nullsub_110:
|
|
bx lr
|
|
thumb_func_end nullsub_110
|
|
|
|
thumb_func_start nullsub_111
|
|
nullsub_111:
|
|
bx lr
|
|
thumb_func_end nullsub_111
|
|
|
|
thumb_func_start nullsub_112
|
|
nullsub_112:
|
|
bx lr
|
|
thumb_func_end nullsub_112
|
|
|
|
thumb_func_start nullsub_113
|
|
nullsub_113:
|
|
bx lr
|
|
thumb_func_end nullsub_113
|
|
|
|
thumb_func_start nullsub_114
|
|
nullsub_114:
|
|
bx lr
|
|
thumb_func_end nullsub_114
|
|
|
|
thumb_func_start nullsub_115
|
|
nullsub_115:
|
|
bx lr
|
|
thumb_func_end nullsub_115
|
|
|
|
thumb_func_start nullsub_116
|
|
nullsub_116:
|
|
bx lr
|
|
thumb_func_end nullsub_116
|
|
|
|
thumb_func_start sub_809CB50
|
|
sub_809CB50:
|
|
push {r4,lr}
|
|
ldr r4, _0809CB70
|
|
movs r0, 0xC
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0, 0x4]
|
|
movs r1, 0
|
|
str r1, [r0, 0x8]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809CB70: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_809CB50
|
|
|
|
thumb_func_start sub_809CB74
|
|
sub_809CB74:
|
|
push {r4,lr}
|
|
ldr r4, _0809CB88
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809CB88: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_809CB74
|
|
|
|
thumb_func_start sub_809CB8C
|
|
sub_809CB8C:
|
|
push {lr}
|
|
movs r0, 0
|
|
movs r1, 0x3B
|
|
bl sub_80015C0
|
|
movs r0, 0
|
|
movs r1, 0x3D
|
|
bl sub_80015C0
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809CB8C
|
|
|
|
thumb_func_start sub_809CBA4
|
|
sub_809CBA4:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8091130
|
|
cmp r0, 0
|
|
bge _0809CBB6
|
|
movs r0, 0
|
|
b _0809CBB8
|
|
_0809CBB6:
|
|
movs r0, 0x1
|
|
_0809CBB8:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CBA4
|
|
|
|
thumb_func_start sub_809CBBC
|
|
sub_809CBBC:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x54
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
ldrb r1, [r4]
|
|
cmp r1, 0x69
|
|
bne _0809CC20
|
|
ldr r1, _0809CC0C
|
|
movs r0, 0x2
|
|
ldrsh r2, [r4, r0]
|
|
ldr r0, _0809CC10
|
|
ldr r0, [r0]
|
|
movs r3, 0xD2
|
|
lsls r3, 4
|
|
adds r0, r3
|
|
ldr r3, [r0]
|
|
mov r0, sp
|
|
bl sub_800D158
|
|
ldr r0, _0809CC14
|
|
ldr r0, [r0]
|
|
movs r1, 0x98
|
|
lsls r1, 2
|
|
adds r2, r0, r1
|
|
movs r3, 0x2
|
|
ldrsh r1, [r4, r3]
|
|
ldr r0, [r2]
|
|
adds r1, r0, r1
|
|
ldr r0, _0809CC18
|
|
cmp r1, r0
|
|
ble _0809CC1C
|
|
cmp r6, 0
|
|
beq _0809CC4E
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
adds r2, r6, 0
|
|
b _0809CC4A
|
|
.align 2, 0
|
|
_0809CC0C: .4byte gUnknown_81163E4
|
|
_0809CC10: .4byte gItemParametersFile + 4
|
|
_0809CC14: .4byte gUnknown_203B460
|
|
_0809CC18: .4byte 0x0001869f
|
|
_0809CC1C:
|
|
str r1, [r2]
|
|
b _0809CC5E
|
|
_0809CC20:
|
|
ldrb r0, [r4, 0x2]
|
|
lsls r1, 16
|
|
lsls r0, 8
|
|
orrs r0, r1
|
|
str r0, [sp, 0x50]
|
|
add r4, sp, 0x50
|
|
mov r0, sp
|
|
adds r1, r4, 0
|
|
movs r2, 0
|
|
bl sub_8090E14
|
|
bl sub_8090A34
|
|
cmp r0, 0x13
|
|
ble _0809CC52
|
|
cmp r5, 0
|
|
beq _0809CC4E
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
adds r2, r5, 0
|
|
_0809CC4A:
|
|
bl sub_809AE90
|
|
_0809CC4E:
|
|
movs r0, 0
|
|
b _0809CC82
|
|
_0809CC52:
|
|
ldrb r0, [r4, 0x2]
|
|
movs r1, 0
|
|
bl sub_809124C
|
|
bl sub_80910B4
|
|
_0809CC5E:
|
|
cmp r7, 0
|
|
beq _0809CC80
|
|
ldr r0, _0809CC8C
|
|
mov r1, sp
|
|
bl strcpy
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
movs r0, 0
|
|
adds r2, r7, 0
|
|
bl sub_809AE90
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
movs r0, 0xCB
|
|
bl sub_8011974
|
|
_0809CC80:
|
|
movs r0, 0x1
|
|
_0809CC82:
|
|
add sp, 0x54
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809CC8C: .4byte gUnknown_202DE58
|
|
thumb_func_end sub_809CBBC
|
|
|
|
thumb_func_start sub_809CC90
|
|
sub_809CC90:
|
|
push {lr}
|
|
lsls r0, 2
|
|
ldr r1, _0809CCBC
|
|
adds r1, r0, r1
|
|
ldrb r0, [r1]
|
|
cmp r0, 0x69
|
|
bne _0809CCC8
|
|
ldr r0, _0809CCC0
|
|
ldr r0, [r0]
|
|
movs r2, 0x98
|
|
lsls r2, 2
|
|
adds r0, r2
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
ldr r1, _0809CCC4
|
|
cmp r0, r1
|
|
ble _0809CCD4
|
|
movs r0, 0x2
|
|
b _0809CCD6
|
|
.align 2, 0
|
|
_0809CCBC: .4byte gUnknown_81163BC
|
|
_0809CCC0: .4byte gUnknown_203B460
|
|
_0809CCC4: .4byte 0x0001869f
|
|
_0809CCC8:
|
|
bl sub_8090A34
|
|
cmp r0, 0x13
|
|
ble _0809CCD4
|
|
movs r0, 0x2
|
|
b _0809CCD6
|
|
_0809CCD4:
|
|
movs r0, 0x1
|
|
_0809CCD6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CC90
|
|
|
|
thumb_func_start sub_809CCDC
|
|
sub_809CCDC:
|
|
push {r4-r6,lr}
|
|
adds r6, r0, 0
|
|
adds r4, r1, 0
|
|
lsls r1, r6, 2
|
|
ldr r0, _0809CD20
|
|
adds r5, r1, r0
|
|
ldr r0, _0809CD24
|
|
ldr r1, [r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r1, 0x4]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x2
|
|
cmp r4, 0x63
|
|
bgt _0809CD04
|
|
movs r0, 0
|
|
cmp r4, 0x1
|
|
ble _0809CD04
|
|
movs r0, 0x1
|
|
_0809CD04:
|
|
ldr r1, _0809CD28
|
|
ldr r2, _0809CD2C
|
|
ldr r3, _0809CD30
|
|
lsls r0, 2
|
|
adds r0, r3
|
|
ldr r3, [r0]
|
|
adds r0, r5, 0
|
|
bl sub_809CBBC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809CD34
|
|
movs r0, 0x2
|
|
b _0809CD3E
|
|
.align 2, 0
|
|
_0809CD20: .4byte gUnknown_81163BC
|
|
_0809CD24: .4byte gUnknown_20399E0
|
|
_0809CD28: .4byte gUnknown_81163F0
|
|
_0809CD2C: .4byte gUnknown_811642C
|
|
_0809CD30: .4byte gUnknown_203B4A0
|
|
_0809CD34:
|
|
ldr r0, _0809CD44
|
|
ldr r0, [r0]
|
|
str r6, [r0, 0x4]
|
|
str r4, [r0, 0x8]
|
|
movs r0, 0x1
|
|
_0809CD3E:
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809CD44: .4byte gUnknown_20399E0
|
|
thumb_func_end sub_809CCDC
|
|
|
|
thumb_func_start sub_809CD48
|
|
sub_809CD48:
|
|
push {lr}
|
|
bl sub_809A750
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809CD58
|
|
movs r0, 0x3
|
|
b _0809CD5A
|
|
_0809CD58:
|
|
movs r0, 0
|
|
_0809CD5A:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CD48
|
|
|
|
thumb_func_start nullsub_117
|
|
nullsub_117:
|
|
bx lr
|
|
thumb_func_end nullsub_117
|
|
|
|
thumb_func_start nullsub_118
|
|
nullsub_118:
|
|
bx lr
|
|
thumb_func_end nullsub_118
|
|
|
|
thumb_func_start sub_809CD68
|
|
sub_809CD68:
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
str r2, [r0, 0x4]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0, 0x10]
|
|
str r2, [r0, 0x14]
|
|
str r2, [r0, 0x8]
|
|
strb r2, [r0, 0x18]
|
|
bx lr
|
|
thumb_func_end sub_809CD68
|
|
|
|
thumb_func_start sub_809CD7C
|
|
sub_809CD7C:
|
|
movs r2, 0
|
|
str r2, [r0]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
str r1, [r0, 0x10]
|
|
str r2, [r0, 0x14]
|
|
str r2, [r0, 0x8]
|
|
bx lr
|
|
thumb_func_end sub_809CD7C
|
|
|
|
thumb_func_start sub_809CD8C
|
|
sub_809CD8C:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
adds r4, r1, 0
|
|
cmp r4, 0x5
|
|
bne _0809CD9E
|
|
bl sub_809CD68
|
|
str r4, [r5]
|
|
b _0809CDB0
|
|
_0809CD9E:
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, r4
|
|
beq _0809CDB0
|
|
str r4, [r5, 0x4]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r5, 0x10]
|
|
movs r0, 0
|
|
str r0, [r5, 0x14]
|
|
_0809CDB0:
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809CD8C
|
|
|
|
thumb_func_start sub_809CDB8
|
|
sub_809CDB8:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
ldr r0, [r1, 0x4]
|
|
cmp r0, 0
|
|
bne _0809CDC4
|
|
ldr r0, [r1]
|
|
_0809CDC4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CDB8
|
|
|
|
thumb_func_start sub_809CDC8
|
|
sub_809CDC8:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x8
|
|
adds r4, r0, 0
|
|
adds r6, r1, 0
|
|
adds r7, r2, 0
|
|
ldr r1, [sp, 0x24]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r3]
|
|
ldr r0, [r4]
|
|
cmp r0, 0x1
|
|
beq _0809CDEA
|
|
cmp r0, 0x2
|
|
beq _0809CDFE
|
|
b _0809CE12
|
|
_0809CDEA:
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0809CE12
|
|
adds r0, r4, 0
|
|
bl sub_809CD68
|
|
movs r0, 0x2
|
|
b _0809CE10
|
|
_0809CDFE:
|
|
movs r0, 0x80
|
|
lsls r0, 6
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
bne _0809CE12
|
|
adds r0, r4, 0
|
|
bl sub_809CD68
|
|
movs r0, 0x1
|
|
_0809CE10:
|
|
str r0, [r4]
|
|
_0809CE12:
|
|
ldr r0, [r4, 0x4]
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bne _0809CE1E
|
|
ldr r1, [r4]
|
|
mov r8, r1
|
|
_0809CE1E:
|
|
mov r0, r8
|
|
subs r0, 0x1
|
|
cmp r0, 0x6
|
|
bls _0809CE28
|
|
b _0809CFCC
|
|
_0809CE28:
|
|
lsls r0, 2
|
|
ldr r1, _0809CE34
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809CE34: .4byte _0809CE38
|
|
.align 2, 0
|
|
_0809CE38:
|
|
.4byte _0809CE54
|
|
.4byte _0809CF74
|
|
.4byte _0809CFCC
|
|
.4byte _0809CFCC
|
|
.4byte _0809CECC
|
|
.4byte _0809CF5C
|
|
.4byte _0809CF5C
|
|
_0809CE54:
|
|
ldr r0, _0809CE70
|
|
ldrh r2, [r0]
|
|
ldrh r1, [r0, 0x2]
|
|
movs r0, 0xF0
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809CE74
|
|
movs r0, 0x2
|
|
ands r0, r2
|
|
cmp r0, 0
|
|
beq _0809CEA4
|
|
movs r0, 0
|
|
b _0809CEA8
|
|
.align 2, 0
|
|
_0809CE70: .4byte gUnknown_20255F0
|
|
_0809CE74:
|
|
movs r3, 0x2
|
|
adds r0, r1, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
beq _0809CE82
|
|
movs r0, 0x14
|
|
b _0809CEA8
|
|
_0809CE82:
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, 0x1
|
|
ble _0809CEA4
|
|
subs r0, 0x1
|
|
str r0, [r4, 0x10]
|
|
adds r0, r2, 0
|
|
ands r0, r3
|
|
cmp r0, 0
|
|
bne _0809CEAA
|
|
movs r0, 0x13
|
|
str r0, [r6]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
strb r0, [r7]
|
|
movs r0, 0x5
|
|
b _0809CFDA
|
|
_0809CEA4:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
_0809CEA8:
|
|
str r0, [r4, 0x10]
|
|
_0809CEAA:
|
|
movs r0, 0x1
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0809CEB6
|
|
movs r0, 0xA
|
|
b _0809CEC2
|
|
_0809CEB6:
|
|
ldr r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
bne _0809CEC0
|
|
movs r0, 0x8
|
|
b _0809CEC2
|
|
_0809CEC0:
|
|
movs r0, 0x7
|
|
_0809CEC2:
|
|
str r0, [r6]
|
|
adds r0, r2, 0
|
|
bl sub_809CFE8
|
|
b _0809CF4E
|
|
_0809CECC:
|
|
mov r0, sp
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809CFCC
|
|
ldr r0, _0809CEEC
|
|
ldr r0, [r0]
|
|
ldrb r0, [r0, 0xC]
|
|
cmp r0, 0
|
|
bne _0809CEF0
|
|
movs r0, 0x4
|
|
bl sub_809C6CC
|
|
b _0809CEF6
|
|
.align 2, 0
|
|
_0809CEEC: .4byte gUnknown_203B46C
|
|
_0809CEF0:
|
|
movs r0, 0x3
|
|
bl sub_809C6CC
|
|
_0809CEF6:
|
|
bl nullsub_104
|
|
adds r0, r4, 0
|
|
bl sub_809CD7C
|
|
movs r5, 0x1
|
|
str r5, [r4]
|
|
ldr r0, [sp]
|
|
cmp r0, 0x2
|
|
beq _0809CF1E
|
|
cmp r0, 0x2
|
|
bgt _0809CF14
|
|
cmp r0, 0x1
|
|
beq _0809CF2A
|
|
b _0809CF54
|
|
_0809CF14:
|
|
cmp r0, 0x3
|
|
beq _0809CF2A
|
|
cmp r0, 0x4
|
|
beq _0809CF3C
|
|
b _0809CF54
|
|
_0809CF1E:
|
|
movs r0, 0x4
|
|
str r0, [r4]
|
|
movs r0, 0x1E
|
|
bl sub_8098D80
|
|
b _0809CF46
|
|
_0809CF2A:
|
|
movs r0, 0x4
|
|
str r0, [r4]
|
|
str r5, [r6]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
strb r0, [r7]
|
|
movs r0, 0x4
|
|
b _0809CFDA
|
|
_0809CF3C:
|
|
str r0, [r4]
|
|
movs r0, 0x45
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
_0809CF46:
|
|
str r5, [r6]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
_0809CF4E:
|
|
strb r0, [r7]
|
|
ldr r0, [r4]
|
|
b _0809CFDA
|
|
_0809CF54:
|
|
movs r0, 0x2
|
|
bl sub_809D9B8
|
|
b _0809CFCC
|
|
_0809CF5C:
|
|
add r0, sp, 0x4
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809CFCC
|
|
adds r0, r4, 0
|
|
bl sub_809CD7C
|
|
movs r0, 0x1
|
|
str r0, [r4]
|
|
b _0809CFDA
|
|
_0809CF74:
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0
|
|
ble _0809CF86
|
|
subs r0, 0x1
|
|
str r0, [r4, 0x8]
|
|
movs r0, 0x9
|
|
str r0, [r6]
|
|
ldrb r0, [r4, 0xC]
|
|
b _0809CFD6
|
|
_0809CF86:
|
|
ldr r0, _0809CFA0
|
|
ldrh r1, [r0]
|
|
movs r0, 0x9
|
|
str r0, [r6]
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
cmp r2, 0
|
|
beq _0809CFA4
|
|
movs r0, 0x4
|
|
b _0809CFB6
|
|
.align 2, 0
|
|
_0809CFA0: .4byte gUnknown_20255F0
|
|
_0809CFA4:
|
|
movs r0, 0x80
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0809CFB0
|
|
strb r2, [r7]
|
|
b _0809CFB8
|
|
_0809CFB0:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
_0809CFB6:
|
|
strb r0, [r7]
|
|
_0809CFB8:
|
|
ldrb r0, [r7]
|
|
strb r0, [r4, 0xC]
|
|
lsls r0, 24
|
|
movs r1, 0xFF
|
|
lsls r1, 24
|
|
cmp r0, r1
|
|
beq _0809CFD8
|
|
movs r0, 0x20
|
|
str r0, [r4, 0x8]
|
|
b _0809CFD8
|
|
_0809CFCC:
|
|
movs r0, 0
|
|
str r0, [r6]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r1, 0
|
|
_0809CFD6:
|
|
strb r0, [r7]
|
|
_0809CFD8:
|
|
mov r0, r8
|
|
_0809CFDA:
|
|
add sp, 0x8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CDC8
|
|
|
|
thumb_func_start sub_809CFE8
|
|
sub_809CFE8:
|
|
push {lr}
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
adds r2, r1, 0
|
|
movs r0, 0x40
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D014
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D004
|
|
movs r0, 0x3
|
|
b _0809D052
|
|
_0809D004:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D010
|
|
movs r0, 0x5
|
|
b _0809D052
|
|
_0809D010:
|
|
movs r0, 0x4
|
|
b _0809D052
|
|
_0809D014:
|
|
movs r0, 0x80
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D038
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D028
|
|
movs r0, 0x1
|
|
b _0809D052
|
|
_0809D028:
|
|
movs r0, 0x20
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D034
|
|
movs r0, 0x7
|
|
b _0809D052
|
|
_0809D034:
|
|
movs r0, 0
|
|
b _0809D052
|
|
_0809D038:
|
|
movs r0, 0x10
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809D044
|
|
movs r0, 0x2
|
|
b _0809D052
|
|
_0809D044:
|
|
movs r0, 0x20
|
|
ands r2, r0
|
|
cmp r2, 0
|
|
bne _0809D050
|
|
subs r0, 0x21
|
|
b _0809D052
|
|
_0809D050:
|
|
movs r0, 0x6
|
|
_0809D052:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809CFE8
|
|
|
|
thumb_func_start sub_809D058
|
|
sub_809D058:
|
|
push {lr}
|
|
ldr r1, [r0, 0x4]
|
|
cmp r1, 0x3F
|
|
bgt _0809D076
|
|
ldr r0, [r0]
|
|
cmp r0, 0x67
|
|
bgt _0809D06A
|
|
movs r0, 0x5
|
|
b _0809D0A6
|
|
_0809D06A:
|
|
cmp r0, 0x88
|
|
ble _0809D072
|
|
movs r0, 0x3
|
|
b _0809D0A6
|
|
_0809D072:
|
|
movs r0, 0x4
|
|
b _0809D0A6
|
|
_0809D076:
|
|
cmp r1, 0x60
|
|
ble _0809D090
|
|
ldr r0, [r0]
|
|
cmp r0, 0x67
|
|
bgt _0809D084
|
|
movs r0, 0x7
|
|
b _0809D0A6
|
|
_0809D084:
|
|
cmp r0, 0x88
|
|
ble _0809D08C
|
|
movs r0, 0x1
|
|
b _0809D0A6
|
|
_0809D08C:
|
|
movs r0, 0
|
|
b _0809D0A6
|
|
_0809D090:
|
|
ldr r0, [r0]
|
|
cmp r0, 0x67
|
|
bgt _0809D09A
|
|
movs r0, 0x6
|
|
b _0809D0A6
|
|
_0809D09A:
|
|
cmp r0, 0x88
|
|
bgt _0809D0A4
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0809D0A6
|
|
_0809D0A4:
|
|
movs r0, 0x2
|
|
_0809D0A6:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D058
|
|
|
|
thumb_func_start sub_809D0AC
|
|
sub_809D0AC:
|
|
push {lr}
|
|
bl sub_809D0BC
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809D0AC
|
|
|
|
thumb_func_start nullsub_119
|
|
nullsub_119:
|
|
bx lr
|
|
thumb_func_end nullsub_119
|
|
|
|
thumb_func_start sub_809D0BC
|
|
sub_809D0BC:
|
|
push {r4,r5,lr}
|
|
ldr r5, _0809D0F8
|
|
ldr r1, _0809D0FC
|
|
ldr r2, [r1]
|
|
ldr r3, [r1, 0x4]
|
|
str r2, [r5, 0x3C]
|
|
str r3, [r5, 0x40]
|
|
adds r0, r5, 0
|
|
adds r0, 0x44
|
|
movs r4, 0
|
|
strb r4, [r0]
|
|
movs r0, 0
|
|
bl sub_809D158
|
|
str r4, [r5, 0x8]
|
|
str r4, [r5, 0xC]
|
|
str r4, [r5, 0x10]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
str r0, [r5, 0x4]
|
|
str r4, [r5, 0x24]
|
|
str r4, [r5, 0x28]
|
|
str r4, [r5, 0x2C]
|
|
str r4, [r5, 0x30]
|
|
str r4, [r5, 0x34]
|
|
str r4, [r5, 0x38]
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D0F8: .4byte gUnknown_20399E8
|
|
_0809D0FC: .4byte gUnknown_8116478
|
|
thumb_func_end sub_809D0BC
|
|
|
|
thumb_func_start sub_809D100
|
|
sub_809D100:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
ldr r1, _0809D120
|
|
ldr r0, [r1, 0x24]
|
|
cmp r0, r2
|
|
beq _0809D11A
|
|
str r2, [r1, 0x24]
|
|
movs r0, 0
|
|
str r0, [r1, 0x28]
|
|
str r0, [r1, 0x2C]
|
|
str r0, [r1, 0x30]
|
|
str r0, [r1, 0x34]
|
|
str r0, [r1, 0x38]
|
|
_0809D11A:
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D120: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D100
|
|
|
|
thumb_func_start sub_809D124
|
|
sub_809D124:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
ldr r3, _0809D144
|
|
ldr r0, [r3, 0x24]
|
|
cmp r0, r4
|
|
beq _0809D13A
|
|
str r4, [r3, 0x24]
|
|
movs r0, 0
|
|
str r0, [r3, 0x30]
|
|
str r0, [r3, 0x34]
|
|
str r0, [r3, 0x38]
|
|
_0809D13A:
|
|
str r1, [r3, 0x28]
|
|
str r2, [r3, 0x2C]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D144: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D124
|
|
|
|
thumb_func_start sub_809D148
|
|
sub_809D148:
|
|
ldr r1, _0809D154
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
str r0, [r1, 0x8]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D154: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D148
|
|
|
|
thumb_func_start sub_809D158
|
|
sub_809D158:
|
|
ldr r2, _0809D16C
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
str r0, [r2, 0x1C]
|
|
str r1, [r2, 0x20]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D16C: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D158
|
|
|
|
thumb_func_start sub_809D170
|
|
sub_809D170:
|
|
ldr r2, _0809D17C
|
|
str r0, [r2]
|
|
movs r0, 0
|
|
str r0, [r2, 0x8]
|
|
str r1, [r2, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D17C: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D170
|
|
|
|
thumb_func_start sub_809D180
|
|
sub_809D180:
|
|
ldr r2, _0809D18C
|
|
str r0, [r2]
|
|
movs r0, 0x1
|
|
str r0, [r2, 0x8]
|
|
str r1, [r2, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D18C: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D180
|
|
|
|
thumb_func_start sub_809D190
|
|
sub_809D190:
|
|
ldr r3, _0809D1A4
|
|
str r0, [r3]
|
|
movs r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0xC]
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
str r0, [r3, 0x14]
|
|
str r1, [r3, 0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D1A4: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D190
|
|
|
|
thumb_func_start sub_809D1A8
|
|
sub_809D1A8:
|
|
ldr r3, _0809D1B8
|
|
str r0, [r3]
|
|
movs r0, 0x1
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0xC]
|
|
str r1, [r3, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D1B8: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D1A8
|
|
|
|
thumb_func_start sub_809D1BC
|
|
sub_809D1BC:
|
|
ldr r2, _0809D1C8
|
|
str r0, [r2]
|
|
movs r0, 0x2
|
|
str r0, [r2, 0x8]
|
|
str r1, [r2, 0x10]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D1C8: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D1BC
|
|
|
|
thumb_func_start sub_809D1CC
|
|
sub_809D1CC:
|
|
ldr r3, _0809D1E0
|
|
str r0, [r3]
|
|
movs r0, 0x2
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0x10]
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
str r0, [r3, 0x14]
|
|
str r1, [r3, 0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D1E0: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D1CC
|
|
|
|
thumb_func_start sub_809D1E4
|
|
sub_809D1E4:
|
|
ldr r3, _0809D1F4
|
|
str r0, [r3]
|
|
movs r0, 0x2
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0x10]
|
|
str r1, [r3, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D1F4: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D1E4
|
|
|
|
thumb_func_start sub_809D1F8
|
|
sub_809D1F8:
|
|
ldr r2, _0809D204
|
|
str r0, [r2]
|
|
movs r0, 0x3
|
|
str r0, [r2, 0x8]
|
|
str r1, [r2, 0xC]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D204: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D1F8
|
|
|
|
thumb_func_start sub_809D208
|
|
sub_809D208:
|
|
ldr r3, _0809D21C
|
|
str r0, [r3]
|
|
movs r0, 0x3
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0xC]
|
|
ldr r0, [r1]
|
|
ldr r1, [r1, 0x4]
|
|
str r0, [r3, 0x14]
|
|
str r1, [r3, 0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D21C: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D208
|
|
|
|
thumb_func_start sub_809D220
|
|
sub_809D220:
|
|
ldr r3, _0809D230
|
|
str r0, [r3]
|
|
movs r0, 0x3
|
|
str r0, [r3, 0x8]
|
|
str r2, [r3, 0xC]
|
|
str r1, [r3, 0x4]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D230: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D220
|
|
|
|
thumb_func_start sub_809D234
|
|
sub_809D234:
|
|
push {lr}
|
|
ldr r0, _0809D244
|
|
ldr r0, [r0, 0x8]
|
|
cmp r0, 0
|
|
beq _0809D240
|
|
movs r0, 0x1
|
|
_0809D240:
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809D244: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D234
|
|
|
|
thumb_func_start sub_809D248
|
|
sub_809D248:
|
|
ldr r3, _0809D258
|
|
ldr r1, [r3, 0x3C]
|
|
ldr r2, [r3, 0x40]
|
|
str r1, [r0]
|
|
str r2, [r0, 0x4]
|
|
adds r3, 0x44
|
|
ldrb r0, [r3]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D258: .4byte gUnknown_20399E8
|
|
thumb_func_end sub_809D248
|
|
|
|
thumb_func_start sub_809D25C
|
|
sub_809D25C:
|
|
push {r4-r6,lr}
|
|
sub sp, 0x24
|
|
ldr r4, _0809D274
|
|
ldr r0, [r4]
|
|
cmp r0, 0x2
|
|
beq _0809D28C
|
|
cmp r0, 0x2
|
|
bhi _0809D278
|
|
cmp r0, 0x1
|
|
beq _0809D27E
|
|
b _0809D2B2
|
|
.align 2, 0
|
|
_0809D274: .4byte gUnknown_20399E8
|
|
_0809D278:
|
|
cmp r0, 0x3
|
|
beq _0809D29A
|
|
b _0809D2B2
|
|
_0809D27E:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
bl sub_80A8FD8
|
|
b _0809D2A6
|
|
_0809D28C:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
bl sub_80AC448
|
|
b _0809D2A6
|
|
_0809D29A:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r4, 0
|
|
adds r1, 0x1C
|
|
bl sub_80AD360
|
|
_0809D2A6:
|
|
lsls r0, 16
|
|
ldr r1, _0809D2C4
|
|
cmp r0, r1
|
|
bne _0809D2B2
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
_0809D2B2:
|
|
ldr r4, _0809D2C8
|
|
ldr r0, [r4, 0x8]
|
|
cmp r0, 0x2
|
|
beq _0809D356
|
|
cmp r0, 0x2
|
|
bhi _0809D2CC
|
|
cmp r0, 0x1
|
|
beq _0809D2D2
|
|
b _0809D388
|
|
.align 2, 0
|
|
_0809D2C4: .4byte 0xffff0000
|
|
_0809D2C8: .4byte gUnknown_20399E8
|
|
_0809D2CC:
|
|
cmp r0, 0x3
|
|
beq _0809D314
|
|
b _0809D388
|
|
_0809D2D2:
|
|
ldr r0, [r4, 0x1C]
|
|
ldr r1, [r4, 0x14]
|
|
subs r0, r1
|
|
str r0, [sp, 0x4]
|
|
ldr r0, [r4, 0x20]
|
|
ldr r1, [r4, 0x18]
|
|
subs r0, r1
|
|
str r0, [sp, 0x8]
|
|
ldr r1, [r4, 0xC]
|
|
add r0, sp, 0x4
|
|
bl sub_800290C
|
|
ldr r0, [sp, 0x4]
|
|
cmp r0, 0
|
|
bne _0809D2FA
|
|
ldr r0, [sp, 0x8]
|
|
cmp r0, 0
|
|
bne _0809D2FA
|
|
str r0, [r4, 0x8]
|
|
b _0809D392
|
|
_0809D2FA:
|
|
ldr r2, _0809D310
|
|
ldr r0, [r2, 0x14]
|
|
ldr r1, [sp, 0x4]
|
|
adds r0, r1
|
|
str r0, [r2, 0x14]
|
|
ldr r0, [r2, 0x18]
|
|
ldr r1, [sp, 0x8]
|
|
adds r0, r1
|
|
str r0, [r2, 0x18]
|
|
b _0809D392
|
|
.align 2, 0
|
|
_0809D310: .4byte gUnknown_20399E8
|
|
_0809D314:
|
|
ldr r1, [r4, 0x1C]
|
|
ldr r0, [r4, 0x14]
|
|
subs r0, r1, r0
|
|
cmp r0, 0
|
|
bge _0809D320
|
|
adds r0, 0xFF
|
|
_0809D320:
|
|
asrs r2, r0, 8
|
|
ldr r1, [r4, 0x20]
|
|
ldr r0, [r4, 0x18]
|
|
subs r1, r0
|
|
cmp r1, 0
|
|
bge _0809D32E
|
|
adds r1, 0xFF
|
|
_0809D32E:
|
|
asrs r1, 8
|
|
lsls r0, r2, 8
|
|
lsls r1, 8
|
|
bl sub_8009FB8
|
|
cmp r0, 0
|
|
bge _0809D33E
|
|
adds r0, 0xFF
|
|
_0809D33E:
|
|
asrs r0, 8
|
|
lsls r0, 8
|
|
ldr r1, [r4, 0xC]
|
|
bl __divsi3
|
|
str r0, [r4, 0x10]
|
|
cmp r0, 0
|
|
bgt _0809D352
|
|
movs r0, 0x1
|
|
str r0, [r4, 0x10]
|
|
_0809D352:
|
|
movs r0, 0x2
|
|
str r0, [r4, 0x8]
|
|
_0809D356:
|
|
add r0, sp, 0xC
|
|
ldr r1, _0809D384
|
|
adds r2, r1, 0
|
|
adds r2, 0x8
|
|
adds r5, r1, 0
|
|
subs r5, 0x14
|
|
ldr r3, [r5, 0x10]
|
|
movs r4, 0x1
|
|
str r4, [sp]
|
|
bl sub_8002934
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x10]
|
|
str r0, [r5, 0x14]
|
|
str r1, [r5, 0x18]
|
|
ldr r0, [r5, 0x10]
|
|
subs r0, 0x1
|
|
str r0, [r5, 0x10]
|
|
cmp r0, 0
|
|
bgt _0809D392
|
|
movs r0, 0
|
|
str r0, [r5, 0x8]
|
|
b _0809D392
|
|
.align 2, 0
|
|
_0809D384: .4byte gUnknown_20399FC
|
|
_0809D388:
|
|
ldr r2, _0809D3A4
|
|
ldr r0, [r2, 0x1C]
|
|
ldr r1, [r2, 0x20]
|
|
str r0, [r2, 0x14]
|
|
str r1, [r2, 0x18]
|
|
_0809D392:
|
|
ldr r5, _0809D3A4
|
|
ldr r0, [r5, 0x24]
|
|
cmp r0, 0x1
|
|
beq _0809D3A8
|
|
cmp r0, 0x2
|
|
beq _0809D3D2
|
|
movs r0, 0
|
|
str r0, [r5, 0x34]
|
|
b _0809D402
|
|
.align 2, 0
|
|
_0809D3A4: .4byte gUnknown_20399E8
|
|
_0809D3A8:
|
|
ldr r0, [r5, 0x30]
|
|
subs r0, 0x1
|
|
str r0, [r5, 0x30]
|
|
cmp r0, 0
|
|
bgt _0809D404
|
|
movs r0, 0x4
|
|
str r0, [r5, 0x30]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl OtherRandomRange
|
|
lsls r0, 10
|
|
str r0, [r5, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl OtherRandomRange
|
|
lsls r0, 10
|
|
b _0809D402
|
|
_0809D3D2:
|
|
ldr r0, [r5, 0x30]
|
|
subs r0, 0x1
|
|
str r0, [r5, 0x30]
|
|
cmp r0, 0
|
|
bgt _0809D404
|
|
ldr r0, [r5, 0x2C]
|
|
str r0, [r5, 0x30]
|
|
movs r4, 0x2
|
|
negs r4, r4
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl OtherRandomRange
|
|
ldr r1, [r5, 0x28]
|
|
muls r0, r1
|
|
lsls r0, 8
|
|
str r0, [r5, 0x34]
|
|
adds r0, r4, 0
|
|
movs r1, 0x2
|
|
bl OtherRandomRange
|
|
ldr r1, [r5, 0x28]
|
|
muls r0, r1
|
|
lsls r0, 8
|
|
_0809D402:
|
|
str r0, [r5, 0x38]
|
|
_0809D404:
|
|
add r5, sp, 0x14
|
|
add r6, sp, 0x1C
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80A579C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809D474
|
|
ldr r4, _0809D47C
|
|
ldr r0, [r4, 0x14]
|
|
ldr r1, [r4, 0x34]
|
|
adds r0, r1
|
|
adds r2, r0, 0
|
|
subs r2, 0x80
|
|
ldr r0, [r4, 0x18]
|
|
ldr r1, [r4, 0x38]
|
|
adds r0, r1
|
|
ldr r1, _0809D480
|
|
adds r3, r0, r1
|
|
ldr r0, [sp, 0x14]
|
|
cmp r2, r0
|
|
bge _0809D434
|
|
adds r2, r0, 0
|
|
_0809D434:
|
|
ldr r0, [sp, 0x1C]
|
|
cmp r2, r0
|
|
blt _0809D43C
|
|
subs r2, r0, 0x1
|
|
_0809D43C:
|
|
ldr r0, [r5, 0x4]
|
|
cmp r3, r0
|
|
bge _0809D444
|
|
adds r3, r0, 0
|
|
_0809D444:
|
|
ldr r1, [r6, 0x4]
|
|
cmp r3, r1
|
|
blt _0809D44C
|
|
subs r3, r1, 0x1
|
|
_0809D44C:
|
|
ldr r1, _0809D484
|
|
adds r0, r2, r1
|
|
cmp r0, 0
|
|
bge _0809D458
|
|
adds r1, 0xFF
|
|
adds r0, r2, r1
|
|
_0809D458:
|
|
asrs r0, 8
|
|
str r0, [r4, 0x3C]
|
|
ldr r1, _0809D488
|
|
adds r0, r3, r1
|
|
cmp r0, 0
|
|
bge _0809D468
|
|
adds r1, 0xFF
|
|
adds r0, r3, r1
|
|
_0809D468:
|
|
asrs r0, 8
|
|
str r0, [r4, 0x40]
|
|
adds r1, r4, 0
|
|
adds r1, 0x44
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
_0809D474:
|
|
add sp, 0x24
|
|
pop {r4-r6}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D47C: .4byte gUnknown_20399E8
|
|
_0809D480: .4byte 0xfffff480
|
|
_0809D484: .4byte 0xffff8700
|
|
_0809D488: .4byte 0xffffb000
|
|
thumb_func_end sub_809D25C
|
|
|
|
thumb_func_start nullsub_120
|
|
nullsub_120:
|
|
bx lr
|
|
thumb_func_end nullsub_120
|
|
|
|
thumb_func_start sub_809D490
|
|
sub_809D490:
|
|
push {r4,lr}
|
|
ldr r4, _0809D4AC
|
|
movs r0, 0x80
|
|
lsls r0, 3
|
|
movs r1, 0x6
|
|
bl MemoryAlloc
|
|
str r0, [r4]
|
|
bl sub_809D4B0
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D4AC: .4byte gUnknown_203B4B0
|
|
thumb_func_end sub_809D490
|
|
|
|
thumb_func_start sub_809D4B0
|
|
sub_809D4B0:
|
|
push {r4,r5,lr}
|
|
ldr r0, _0809D4EC
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
adds r1, r2, 0
|
|
strh r1, [r0]
|
|
ldr r0, _0809D4F0
|
|
strh r1, [r0]
|
|
ldr r0, _0809D4F4
|
|
strh r1, [r0]
|
|
ldr r1, _0809D4F8
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r1, 0
|
|
ldr r5, _0809D4FC
|
|
movs r2, 0
|
|
ldr r3, _0809D500
|
|
ldr r4, _0809D504
|
|
_0809D4D4:
|
|
adds r0, r1, r5
|
|
strb r2, [r0]
|
|
adds r0, r1, r3
|
|
strb r2, [r0]
|
|
stm r4!, {r2}
|
|
adds r1, 0x1
|
|
cmp r1, 0x80
|
|
ble _0809D4D4
|
|
pop {r4,r5}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D4EC: .4byte gUnknown_2039A30
|
|
_0809D4F0: .4byte gUnknown_2039A32
|
|
_0809D4F4: .4byte gUnknown_2039A34
|
|
_0809D4F8: .4byte gUnknown_2039A36
|
|
_0809D4FC: .4byte gUnknown_2039A38
|
|
_0809D500: .4byte gUnknown_2039AC0
|
|
_0809D504: .4byte gUnknown_2039B48
|
|
thumb_func_end sub_809D4B0
|
|
|
|
thumb_func_start sub_809D508
|
|
sub_809D508:
|
|
push {r4,lr}
|
|
ldr r4, _0809D51C
|
|
ldr r0, [r4]
|
|
bl MemoryFree
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D51C: .4byte gUnknown_203B4B0
|
|
thumb_func_end sub_809D508
|
|
|
|
thumb_func_start sub_809D520
|
|
sub_809D520:
|
|
ldr r1, _0809D528
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D528: .4byte 0x0000ffff
|
|
thumb_func_end sub_809D520
|
|
|
|
thumb_func_start sub_809D52C
|
|
sub_809D52C:
|
|
push {lr}
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
cmp r1, 0x1
|
|
beq _0809D544
|
|
cmp r1, 0x1
|
|
ble _0809D562
|
|
cmp r1, 0x2
|
|
beq _0809D54E
|
|
cmp r1, 0x3
|
|
beq _0809D558
|
|
b _0809D562
|
|
_0809D544:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80A882C
|
|
b _0809D564
|
|
_0809D54E:
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80AC240
|
|
b _0809D564
|
|
_0809D558:
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80AD158
|
|
b _0809D564
|
|
_0809D562:
|
|
movs r0, 0
|
|
_0809D564:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D52C
|
|
|
|
thumb_func_start sub_809D568
|
|
sub_809D568:
|
|
push {lr}
|
|
adds r3, r0, 0
|
|
ldr r0, _0809D5B4
|
|
strh r0, [r3]
|
|
movs r2, 0
|
|
movs r0, 0
|
|
strh r0, [r3, 0x2]
|
|
str r0, [r3, 0x8]
|
|
str r0, [r3, 0x4]
|
|
str r0, [r3, 0x14]
|
|
str r0, [r3, 0x10]
|
|
adds r1, r3, 0
|
|
adds r1, 0x20
|
|
strb r2, [r1]
|
|
str r0, [r3, 0x1C]
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
strh r1, [r3, 0x22]
|
|
strh r0, [r3, 0x24]
|
|
adds r2, r3, 0
|
|
adds r2, 0x26
|
|
movs r1, 0xFF
|
|
strb r1, [r2]
|
|
strh r0, [r3, 0x28]
|
|
strh r0, [r3, 0x2A]
|
|
strh r0, [r3, 0x2C]
|
|
str r0, [r3, 0x30]
|
|
movs r2, 0
|
|
movs r1, 0x3
|
|
adds r0, r3, 0
|
|
adds r0, 0x5C
|
|
_0809D5A6:
|
|
str r2, [r0]
|
|
subs r0, 0x4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0809D5A6
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D5B4: .4byte 0x0000ffff
|
|
thumb_func_end sub_809D568
|
|
|
|
thumb_func_start sub_809D5B8
|
|
sub_809D5B8:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r0, 0
|
|
str r0, [r4]
|
|
str r0, [r4, 0x4]
|
|
ldr r0, _0809D5FC
|
|
strh r0, [r4, 0x10]
|
|
movs r0, 0xFF
|
|
strb r0, [r4, 0x12]
|
|
adds r0, r4, 0
|
|
adds r0, 0xC
|
|
bl sub_809D520
|
|
movs r2, 0
|
|
movs r1, 0x3
|
|
adds r0, r4, 0
|
|
adds r0, 0x20
|
|
_0809D5DA:
|
|
str r2, [r0]
|
|
subs r0, 0x4
|
|
subs r1, 0x1
|
|
cmp r1, 0
|
|
bge _0809D5DA
|
|
adds r0, r4, 0
|
|
adds r0, 0x24
|
|
bl sub_809D568
|
|
adds r0, r4, 0
|
|
adds r0, 0x84
|
|
bl sub_809D568
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D5FC: .4byte 0x0000ffff
|
|
thumb_func_end sub_809D5B8
|
|
|
|
thumb_func_start sub_809D600
|
|
sub_809D600:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, 0
|
|
adds r6, r1, 0
|
|
mov r8, r2
|
|
adds r4, r3, 0
|
|
ldr r5, [sp, 0x18]
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
lsls r5, 24
|
|
asrs r5, 24
|
|
bl sub_809D5B8
|
|
str r6, [r7]
|
|
mov r0, r8
|
|
str r0, [r7, 0x4]
|
|
strh r4, [r7, 0x10]
|
|
strb r5, [r7, 0x12]
|
|
ldrh r0, [r6]
|
|
strh r0, [r7, 0x8]
|
|
ldr r1, [r6, 0x4]
|
|
cmp r1, 0
|
|
beq _0809D63A
|
|
mov r0, r8
|
|
bl _call_via_r1
|
|
strh r0, [r7, 0xA]
|
|
b _0809D63C
|
|
_0809D63A:
|
|
strh r1, [r7, 0xA]
|
|
_0809D63C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809D600
|
|
|
|
thumb_func_start sub_809D648
|
|
sub_809D648:
|
|
push {lr}
|
|
bl sub_809D5B8
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_809D648
|
|
|
|
thumb_func_start sub_809D654
|
|
sub_809D654:
|
|
movs r1, 0x26
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
thumb_func_end sub_809D654
|
|
|
|
thumb_func_start sub_809D65C
|
|
sub_809D65C:
|
|
push {lr}
|
|
adds r1, r0, 0
|
|
movs r2, 0x26
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0809D66E
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _0809D672
|
|
_0809D66E:
|
|
movs r2, 0x24
|
|
ldrsh r0, [r1, r2]
|
|
_0809D672:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D65C
|
|
|
|
thumb_func_start sub_809D678
|
|
sub_809D678:
|
|
movs r2, 0x26
|
|
ldrsh r1, [r0, r2]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
bx lr
|
|
thumb_func_end sub_809D678
|
|
|
|
thumb_func_start sub_809D684
|
|
sub_809D684:
|
|
push {lr}
|
|
adds r2, r0, 0
|
|
adds r3, r1, 0
|
|
movs r1, 0x26
|
|
ldrsh r0, [r2, r1]
|
|
cmp r0, 0
|
|
beq _0809D6A4
|
|
ldr r0, [r2, 0x34]
|
|
cmp r0, 0
|
|
beq _0809D69C
|
|
ldr r1, [r2, 0x38]
|
|
b _0809D69E
|
|
_0809D69C:
|
|
ldr r1, [r2, 0x2C]
|
|
_0809D69E:
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
beq _0809D6CC
|
|
_0809D6A4:
|
|
adds r0, r2, 0
|
|
adds r0, 0x86
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _0809D6D0
|
|
adds r0, r2, 0
|
|
adds r0, 0x94
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809D6C0
|
|
adds r0, r2, 0
|
|
adds r0, 0x98
|
|
b _0809D6C4
|
|
_0809D6C0:
|
|
adds r0, r2, 0
|
|
adds r0, 0x8C
|
|
_0809D6C4:
|
|
ldr r1, [r0]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bne _0809D6D0
|
|
_0809D6CC:
|
|
movs r0, 0x1
|
|
b _0809D6D2
|
|
_0809D6D0:
|
|
movs r0, 0
|
|
_0809D6D2:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D684
|
|
|
|
thumb_func_start sub_809D6D8
|
|
sub_809D6D8:
|
|
lsls r1, 16
|
|
asrs r1, 14
|
|
adds r0, 0x14
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
bx lr
|
|
thumb_func_end sub_809D6D8
|
|
|
|
thumb_func_start sub_809D6E4
|
|
sub_809D6E4:
|
|
push {r4,lr}
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
lsls r4, r2, 2
|
|
adds r3, r0, 0
|
|
adds r3, 0x14
|
|
adds r3, r4
|
|
ldr r3, [r3]
|
|
str r3, [r1]
|
|
strh r2, [r1, 0x4]
|
|
ldrh r2, [r0, 0x10]
|
|
strh r2, [r1, 0x6]
|
|
ldrb r0, [r0, 0x12]
|
|
strb r0, [r1, 0x8]
|
|
adds r0, r3, 0
|
|
cmp r0, 0
|
|
beq _0809D708
|
|
movs r0, 0x1
|
|
_0809D708:
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D6E4
|
|
|
|
thumb_func_start sub_809D710
|
|
sub_809D710:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r3, r1, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
ldr r1, _0809D73C
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r1, 0x8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r3]
|
|
movs r0, 0x2
|
|
strh r0, [r3, 0x4]
|
|
cmp r4, 0
|
|
beq _0809D740
|
|
ldrh r0, [r4, 0x10]
|
|
strh r0, [r3, 0x6]
|
|
ldrb r0, [r4, 0x12]
|
|
b _0809D746
|
|
.align 2, 0
|
|
_0809D73C: .4byte gUnknown_812F1F8
|
|
_0809D740:
|
|
ldr r0, _0809D750
|
|
strh r0, [r3, 0x6]
|
|
movs r0, 0xFF
|
|
_0809D746:
|
|
strb r0, [r3, 0x8]
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_0809D750: .4byte 0x0000ffff
|
|
thumb_func_end sub_809D710
|
|
|
|
thumb_func_start sub_809D754
|
|
sub_809D754:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x24
|
|
bl sub_809D568
|
|
adds r4, 0x84
|
|
adds r0, r4, 0
|
|
bl sub_809D568
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D754
|
|
|
|
thumb_func_start sub_809D770
|
|
sub_809D770:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
adds r0, 0x24
|
|
bl sub_809D568
|
|
adds r0, r4, 0
|
|
adds r0, 0x84
|
|
bl sub_809D568
|
|
movs r0, 0x4
|
|
strh r0, [r4, 0x26]
|
|
movs r0, 0x1
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D770
|
|
|
|
thumb_func_start GroundScript_ExecutePP
|
|
GroundScript_ExecutePP:
|
|
push {r4-r7,lr}
|
|
adds r5, r0, 0
|
|
adds r7, r1, 0
|
|
adds r6, r2, 0
|
|
cmp r6, 0
|
|
beq _0809D7A2
|
|
ldr r0, [r6]
|
|
cmp r0, 0
|
|
bne _0809D7A6
|
|
_0809D7A2:
|
|
movs r0, 0
|
|
b _0809D8B8
|
|
_0809D7A6:
|
|
movs r1, 0x4
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x5
|
|
bhi _0809D858
|
|
lsls r0, 2
|
|
ldr r1, _0809D7B8
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809D7B8: .4byte _0809D7BC
|
|
.align 2, 0
|
|
_0809D7BC:
|
|
.4byte _0809D830
|
|
.4byte _0809D84A
|
|
.4byte _0809D7D4
|
|
.4byte _0809D7D4
|
|
.4byte _0809D858
|
|
.4byte _0809D7EE
|
|
_0809D7D4:
|
|
movs r3, 0x24
|
|
ldrsh r0, [r5, r3]
|
|
cmp r0, 0x1
|
|
beq _0809D838
|
|
adds r4, r5, 0
|
|
adds r4, 0x24
|
|
cmp r0, 0x5
|
|
bne _0809D86C
|
|
adds r0, r5, 0
|
|
adds r0, 0x84
|
|
bl sub_809D568
|
|
b _0809D86C
|
|
_0809D7EE:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x2
|
|
beq _0809D808
|
|
ldr r0, _0809D800
|
|
ldr r1, _0809D804
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0809D800: .4byte gUnknown_8116538
|
|
_0809D804: .4byte gUnknown_8116544
|
|
_0809D808:
|
|
adds r2, r5, 0
|
|
adds r2, 0x84
|
|
movs r3, 0
|
|
ldrsh r1, [r2, r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809D828
|
|
ldr r0, _0809D820
|
|
ldr r1, _0809D824
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0809D820: .4byte gUnknown_8116560
|
|
_0809D824: .4byte gUnknown_811656C
|
|
_0809D828:
|
|
adds r4, r5, 0
|
|
adds r4, 0x24
|
|
adds r0, r2, 0
|
|
b _0809D840
|
|
_0809D830:
|
|
movs r1, 0x24
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
bne _0809D84A
|
|
_0809D838:
|
|
adds r0, r5, 0
|
|
adds r0, 0x84
|
|
adds r4, r5, 0
|
|
adds r4, 0x24
|
|
_0809D840:
|
|
adds r1, r4, 0
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
b _0809D86C
|
|
_0809D84A:
|
|
adds r0, r5, 0
|
|
adds r0, 0x84
|
|
bl sub_809D568
|
|
adds r4, r5, 0
|
|
adds r4, 0x24
|
|
b _0809D86C
|
|
_0809D858:
|
|
ldr r0, _0809D864
|
|
ldr r1, _0809D868
|
|
movs r3, 0x4
|
|
ldrsh r2, [r6, r3]
|
|
bl FatalError
|
|
.align 2, 0
|
|
_0809D864: .4byte gUnknown_8116588
|
|
_0809D868: .4byte gUnknown_8116594
|
|
_0809D86C:
|
|
adds r0, r4, 0
|
|
bl sub_809D568
|
|
cmp r7, 0
|
|
beq _0809D87C
|
|
ldr r0, [r7]
|
|
str r0, [r5, 0xC]
|
|
b _0809D884
|
|
_0809D87C:
|
|
adds r0, r5, 0
|
|
adds r0, 0xC
|
|
bl sub_809D520
|
|
_0809D884:
|
|
ldrh r0, [r6, 0x4]
|
|
movs r1, 0
|
|
strh r0, [r5, 0x24]
|
|
movs r0, 0x3
|
|
strh r0, [r5, 0x26]
|
|
ldrh r0, [r6, 0x6]
|
|
strh r0, [r5, 0x30]
|
|
ldrb r0, [r6, 0x8]
|
|
adds r2, r5, 0
|
|
adds r2, 0x32
|
|
strb r0, [r2]
|
|
ldr r0, [r6]
|
|
str r0, [r5, 0x28]
|
|
str r0, [r5, 0x2C]
|
|
str r1, [r5, 0x34]
|
|
str r1, [r5, 0x38]
|
|
ldr r0, [r5]
|
|
ldr r2, [r0, 0x14]
|
|
cmp r2, 0
|
|
beq _0809D8B6
|
|
ldr r0, [r5, 0x4]
|
|
adds r1, r5, 0
|
|
adds r1, 0x4A
|
|
bl _call_via_r2
|
|
_0809D8B6:
|
|
movs r0, 0x1
|
|
_0809D8B8:
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GroundScript_ExecutePP
|
|
|
|
thumb_func_start sub_809D8C0
|
|
sub_809D8C0:
|
|
push {r4-r6,lr}
|
|
sub sp, 0xC
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r6, r3, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
mov r1, sp
|
|
bl sub_809D6E4
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
mov r2, sp
|
|
adds r3, r6, 0
|
|
bl GroundScript_ExecutePP
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
add sp, 0xC
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D8C0
|
|
|
|
thumb_func_start sub_809D8EC
|
|
sub_809D8EC:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
lsls r1, 16
|
|
asrs r5, r1, 16
|
|
cmp r5, 0
|
|
bne _0809D910
|
|
bl sub_809A750
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809D910
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
bl sub_80A2460
|
|
str r0, [r4, 0x28]
|
|
movs r0, 0
|
|
b _0809D922
|
|
_0809D910:
|
|
adds r0, r4, 0
|
|
adds r0, 0x46
|
|
strh r5, [r0]
|
|
movs r0, 0x2
|
|
strh r0, [r4, 0x26]
|
|
ldr r1, _0809D928
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
_0809D922:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809D928: .4byte gUnknown_2039A36
|
|
thumb_func_end sub_809D8EC
|
|
|
|
thumb_func_start sub_809D92C
|
|
sub_809D92C:
|
|
push {lr}
|
|
ldr r1, _0809D93C
|
|
bl sub_809D770
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809D93C: .4byte gUnknown_81165C8
|
|
thumb_func_end sub_809D92C
|
|
|
|
thumb_func_start sub_809D940
|
|
sub_809D940:
|
|
push {r4,lr}
|
|
bl sub_80A8B74
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80AC378
|
|
orrs r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
bl sub_80AD290
|
|
orrs r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
pop {r4}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_809D940
|
|
|
|
thumb_func_start sub_809D968
|
|
sub_809D968:
|
|
push {r4-r6,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
asrs r6, r1, 16
|
|
movs r4, 0
|
|
adds r2, r5, 0
|
|
adds r2, 0x46
|
|
ldrh r1, [r2]
|
|
movs r0, 0
|
|
ldrsh r3, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r3, r0
|
|
beq _0809D98E
|
|
cmp r3, r6
|
|
bne _0809D98E
|
|
ldr r0, _0809D9B4
|
|
strh r0, [r2]
|
|
movs r4, 0x1
|
|
_0809D98E:
|
|
adds r2, r5, 0
|
|
adds r2, 0xA6
|
|
ldrh r1, [r2]
|
|
movs r0, 0
|
|
ldrsh r3, [r2, r0]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r3, r0
|
|
beq _0809D9AA
|
|
cmp r3, r6
|
|
bne _0809D9AA
|
|
ldr r0, _0809D9B4
|
|
strh r0, [r2]
|
|
movs r4, 0x1
|
|
_0809D9AA:
|
|
adds r0, r4, 0
|
|
pop {r4-r6}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809D9B4: .4byte 0x0000ffff
|
|
thumb_func_end sub_809D968
|
|
|
|
thumb_func_start sub_809D9B8
|
|
sub_809D9B8:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r1, _0809D9D4
|
|
adds r1, r0, r1
|
|
movs r3, 0
|
|
movs r2, 0x1
|
|
strb r2, [r1]
|
|
ldr r1, _0809D9D8
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
str r3, [r0]
|
|
ldr r0, _0809D9DC
|
|
strb r2, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D9D4: .4byte gUnknown_2039A38
|
|
_0809D9D8: .4byte gUnknown_2039B48
|
|
_0809D9DC: .4byte gUnknown_2039A36
|
|
thumb_func_end sub_809D9B8
|
|
|
|
thumb_func_start sub_809D9E0
|
|
sub_809D9E0:
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
ldr r2, _0809D9FC
|
|
adds r2, r0, r2
|
|
movs r3, 0x1
|
|
strb r3, [r2]
|
|
ldr r2, _0809DA00
|
|
lsls r0, 2
|
|
adds r0, r2
|
|
str r1, [r0]
|
|
ldr r0, _0809DA04
|
|
strb r3, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_0809D9FC: .4byte gUnknown_2039A38
|
|
_0809DA00: .4byte gUnknown_2039B48
|
|
_0809DA04: .4byte gUnknown_2039A36
|
|
thumb_func_end sub_809D9E0
|
|
|
|
thumb_func_start sub_809DA08
|
|
sub_809DA08:
|
|
push {r4,r5,lr}
|
|
adds r5, r0, 0
|
|
lsls r1, 16
|
|
asrs r4, r1, 16
|
|
ldr r1, _0809DA2C
|
|
lsls r0, r4, 2
|
|
adds r0, r1
|
|
str r2, [r0]
|
|
cmp r4, 0
|
|
bne _0809DA38
|
|
bl sub_809A750
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809DA30
|
|
movs r0, 0
|
|
b _0809DA5E
|
|
.align 2, 0
|
|
_0809DA2C: .4byte gUnknown_2039B48
|
|
_0809DA30:
|
|
adds r0, r5, 0
|
|
adds r0, 0x46
|
|
strh r4, [r0]
|
|
b _0809DA52
|
|
_0809DA38:
|
|
movs r1, 0x80
|
|
adds r2, r5, 0
|
|
adds r2, 0x46
|
|
adds r0, r4, 0
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
ldr r0, _0809DA64
|
|
adds r0, r4, r0
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
ldr r0, _0809DA68
|
|
adds r0, r4, r0
|
|
strb r1, [r0]
|
|
_0809DA52:
|
|
movs r0, 0x2
|
|
strh r0, [r5, 0x26]
|
|
ldr r1, _0809DA6C
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
_0809DA5E:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_0809DA64: .4byte gUnknown_2039A38
|
|
_0809DA68: .4byte gUnknown_2039AC0
|
|
_0809DA6C: .4byte gUnknown_2039A36
|
|
thumb_func_end sub_809DA08
|
|
|
|
thumb_func_start HandleAction
|
|
HandleAction:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x148
|
|
adds r7, r0, 0
|
|
movs r1, 0x26
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
bne _0809DA8A
|
|
bl _0809EAB8
|
|
_0809DA8A:
|
|
movs r2, 0x26
|
|
ldrsh r0, [r7, r2]
|
|
cmp r0, 0x4
|
|
bls _0809DA96
|
|
bl _0809E9CC
|
|
_0809DA96:
|
|
lsls r0, 2
|
|
ldr r1, _0809DAA0
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809DAA0: .4byte _0809DAA4
|
|
.align 2, 0
|
|
_0809DAA4:
|
|
.4byte _0809E9C6
|
|
.4byte _0809E9C6
|
|
.4byte _0809DAB8
|
|
.4byte _0809E900
|
|
.4byte _0809E9C6
|
|
_0809DAB8:
|
|
adds r1, r7, 0
|
|
adds r1, 0x44
|
|
ldrb r0, [r1]
|
|
subs r0, 0x3
|
|
adds r6, r1, 0
|
|
cmp r0, 0xED
|
|
bls _0809DACA
|
|
bl _0809E9D6
|
|
_0809DACA:
|
|
lsls r0, 2
|
|
ldr r1, _0809DAD4
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809DAD4: .4byte _0809DAD8
|
|
.align 2, 0
|
|
_0809DAD8:
|
|
.4byte _0809E382
|
|
.4byte _0809E3C4
|
|
.4byte _0809E524
|
|
.4byte _0809E464
|
|
.4byte _0809E4B4
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809DED6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E308
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E308
|
|
.4byte _0809E31C
|
|
.4byte _0809E75C
|
|
.4byte _0809E33C
|
|
.4byte _0809E368
|
|
.4byte _0809E658
|
|
.4byte _0809E6B4
|
|
.4byte _0809E6E8
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809E9D6
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809E9D6
|
|
.4byte _0809DE90
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809DF60
|
|
.4byte _0809E0A2
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809DFDC
|
|
.4byte _0809E0A2
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E078
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E08C
|
|
.4byte _0809E0E8
|
|
.4byte _0809E0E8
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809E146
|
|
.4byte _0809E146
|
|
.4byte _0809E146
|
|
.4byte _0809E146
|
|
.4byte _0809E146
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809E9D6
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E2D0
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E798
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E864
|
|
.4byte _0809E9D6
|
|
.4byte _0809E8D8
|
|
.4byte _0809DE90
|
|
.4byte _0809DE90
|
|
.4byte _0809DEA6
|
|
.4byte _0809DEBE
|
|
.4byte _0809DED6
|
|
.4byte _0809DEE8
|
|
.4byte _0809DF24
|
|
.4byte _0809DF24
|
|
.4byte _0809E2DE
|
|
.4byte _0809E9D6
|
|
.4byte _0809E2DE
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9D6
|
|
_0809DE90:
|
|
adds r1, r7, 0
|
|
adds r1, 0x4E
|
|
ldrh r2, [r1]
|
|
movs r3, 0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, 0
|
|
ble _0809DEA2
|
|
bl _0809EAB2
|
|
_0809DEA2:
|
|
bl _0809E8F4
|
|
_0809DEA6:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r1, [r1, 0x4C]
|
|
bl _call_via_r1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809DEBA
|
|
bl _0809E9D6
|
|
_0809DEBA:
|
|
bl _0809E8F4
|
|
_0809DEBE:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r1, [r1, 0x50]
|
|
bl _call_via_r1
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809DED2
|
|
bl _0809E9D6
|
|
_0809DED2:
|
|
bl _0809E8F4
|
|
_0809DED6:
|
|
bl sub_8099B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809DEE4
|
|
bl _0809E9D6
|
|
_0809DEE4:
|
|
bl _0809E8F4
|
|
_0809DEE8:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r4-r6}
|
|
stm r1!, {r4-r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_8011940
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809DF06
|
|
bl _0809E8F4
|
|
_0809DF06:
|
|
adds r2, r7, 0
|
|
adds r2, 0x50
|
|
ldrh r1, [r2]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r2]
|
|
lsls r1, 16
|
|
ldr r0, _0809DF20
|
|
cmp r1, r0
|
|
bgt _0809DF1C
|
|
bl _0809E9D6
|
|
_0809DF1C:
|
|
bl _0809E8F4
|
|
.align 2, 0
|
|
_0809DF20: .4byte 0x2a2f0000
|
|
_0809DF24:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x4
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_80119C0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809DF42
|
|
bl _0809E8F4
|
|
_0809DF42:
|
|
adds r2, r7, 0
|
|
adds r2, 0x50
|
|
ldrh r1, [r2]
|
|
adds r0, r1, 0x1
|
|
strh r0, [r2]
|
|
lsls r1, 16
|
|
ldr r0, _0809DF5C
|
|
cmp r1, r0
|
|
bgt _0809DF58
|
|
bl _0809E9D6
|
|
_0809DF58:
|
|
bl _0809E8F4
|
|
.align 2, 0
|
|
_0809DF5C: .4byte 0x0e0f0000
|
|
_0809DF60:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r5, sp, 0xA4
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r1, [r7, 0x60]
|
|
ldr r0, [r5]
|
|
subs r1, r0
|
|
add r4, sp, 0xAC
|
|
str r1, [r4]
|
|
ldr r0, [r7, 0x64]
|
|
ldr r1, [r5, 0x4]
|
|
subs r0, r1
|
|
str r0, [r4, 0x4]
|
|
ldr r1, [r7, 0x54]
|
|
adds r0, r4, 0
|
|
bl sub_800290C
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
bne _0809DF98
|
|
ldr r0, [r4, 0x4]
|
|
cmp r0, 0
|
|
bne _0809DF98
|
|
bl _0809E8F4
|
|
_0809DF98:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r1, 0x9
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0809DFB0
|
|
bl _0809E8F4
|
|
_0809DFB0:
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
adds r2, r7, 0
|
|
adds r2, 0x4E
|
|
ldrh r0, [r2]
|
|
movs r5, 0
|
|
ldrsh r1, [r2, r5]
|
|
cmp r1, 0
|
|
bge _0809DFD0
|
|
bl _0809E9D6
|
|
_0809DFD0:
|
|
cmp r1, 0
|
|
ble _0809DFD8
|
|
bl _0809EAAC
|
|
_0809DFD8:
|
|
bl _0809E8F4
|
|
_0809DFDC:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r5, sp, 0xB4
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r1, [r7, 0x60]
|
|
ldr r0, [r5]
|
|
subs r1, r0
|
|
add r4, sp, 0xBC
|
|
str r1, [r4]
|
|
ldr r0, [r7, 0x64]
|
|
ldr r1, [r5, 0x4]
|
|
subs r0, r1
|
|
str r0, [r4, 0x4]
|
|
ldr r1, [r7, 0x54]
|
|
adds r0, r4, 0
|
|
bl sub_800290C
|
|
ldr r0, [r4]
|
|
adds r5, r4, 0
|
|
cmp r0, 0
|
|
bne _0809E016
|
|
ldr r0, [r5, 0x4]
|
|
cmp r0, 0
|
|
bne _0809E016
|
|
bl _0809E8F4
|
|
_0809E016:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
adds r4, r0, 0
|
|
adds r0, r5, 0
|
|
bl sub_8002C60
|
|
lsls r0, 24
|
|
adds r2, r7, 0
|
|
adds r2, 0x4A
|
|
asrs r1, r0, 24
|
|
lsrs r0, 24
|
|
strb r0, [r2]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
movs r0, 0x9
|
|
ands r0, r4
|
|
cmp r0, 0
|
|
beq _0809E04C
|
|
bl _0809E8F4
|
|
_0809E04C:
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
adds r2, r7, 0
|
|
adds r2, 0x4E
|
|
ldrh r0, [r2]
|
|
movs r6, 0
|
|
ldrsh r1, [r2, r6]
|
|
cmp r1, 0
|
|
bge _0809E06C
|
|
bl _0809E9D6
|
|
_0809E06C:
|
|
cmp r1, 0
|
|
ble _0809E074
|
|
bl _0809EAAC
|
|
_0809E074:
|
|
bl _0809E8F4
|
|
_0809E078:
|
|
adds r6, r7, 0
|
|
adds r6, 0x4E
|
|
movs r1, 0
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0
|
|
ble _0809E088
|
|
bl _0809EA62
|
|
_0809E088:
|
|
bl _0809E8F4
|
|
_0809E08C:
|
|
movs r2, 0x4E
|
|
adds r2, r7
|
|
mov r8, r2
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
cmp r0, 0
|
|
ble _0809E09E
|
|
bl _0809E9DA
|
|
_0809E09E:
|
|
bl _0809E8F4
|
|
_0809E0A2:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r4, sp, 0xE4
|
|
add r2, sp, 0xE8
|
|
ldr r3, [r1, 0x10]
|
|
adds r1, r4, 0
|
|
bl _call_via_r3
|
|
ldr r0, [r7, 0x6C]
|
|
ldr r1, [r4]
|
|
subs r0, r1
|
|
adds r2, r4, 0
|
|
cmp r0, 0
|
|
bne _0809E0C2
|
|
bl _0809E8F4
|
|
_0809E0C2:
|
|
ldr r4, [r7, 0x54]
|
|
cmn r0, r4
|
|
bge _0809E0CC
|
|
subs r0, r1, r4
|
|
b _0809E0D4
|
|
_0809E0CC:
|
|
cmp r0, r4
|
|
ble _0809E0D2
|
|
adds r0, r4, 0
|
|
_0809E0D2:
|
|
adds r0, r1, r0
|
|
_0809E0D4:
|
|
str r0, [r2]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r1, sp, 0xE4
|
|
ldr r1, [r1]
|
|
ldr r2, [r2, 0x28]
|
|
bl _call_via_r2
|
|
bl _0809E9D6
|
|
_0809E0E8:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r4, sp, 0x14
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
ldr r2, [r7, 0x54]
|
|
add r4, sp, 0xEC
|
|
adds r0, r4, 0
|
|
bl sub_8002BB8
|
|
ldr r2, [r4]
|
|
ldr r3, [r4, 0x4]
|
|
add r1, sp, 0xF4
|
|
str r2, [r1]
|
|
str r3, [r1, 0x4]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r2, 0x48]
|
|
bl _call_via_r2
|
|
movs r1, 0x9
|
|
ands r1, r0
|
|
cmp r1, 0
|
|
beq _0809E124
|
|
bl _0809E8F4
|
|
_0809E124:
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
adds r1, r7, 0
|
|
adds r1, 0x4E
|
|
ldrh r2, [r1]
|
|
movs r4, 0
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, 0
|
|
ble _0809E144
|
|
bl _0809EAB2
|
|
_0809E144:
|
|
b _0809E8F4
|
|
_0809E146:
|
|
adds r1, r7, 0
|
|
adds r1, 0x4E
|
|
ldrh r2, [r1]
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
mov r10, r1
|
|
cmp r0, 0
|
|
ble _0809E15A
|
|
bl _0809EAB2
|
|
_0809E15A:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
mov r8, r4
|
|
movs r5, 0
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
mov r4, sp
|
|
adds r4, 0x15
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r0, sp, 0x4
|
|
ldrb r0, [r0]
|
|
subs r0, 0x91
|
|
mov r9, r4
|
|
cmp r0, 0x4
|
|
bhi _0809E234
|
|
lsls r0, 2
|
|
ldr r1, _0809E194
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809E194: .4byte _0809E198
|
|
.align 2, 0
|
|
_0809E198:
|
|
.4byte _0809E1AC
|
|
.4byte _0809E1AC
|
|
.4byte _0809E1BA
|
|
.4byte _0809E1E0
|
|
.4byte _0809E20C
|
|
_0809E1AC:
|
|
adds r0, r7, 0
|
|
adds r0, 0x71
|
|
ldrb r0, [r0]
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r8, r0
|
|
b _0809E234
|
|
_0809E1BA:
|
|
ldr r0, [sp, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
blt _0809E234
|
|
movs r5, 0x1
|
|
add r1, sp, 0xFC
|
|
adds r0, r4, 0
|
|
bl sub_80A8FD8
|
|
add r1, sp, 0x104
|
|
adds r0, r4, 0
|
|
bl sub_80A8F9C
|
|
b _0809E234
|
|
_0809E1E0:
|
|
ldr r0, [sp, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _0809E234
|
|
movs r5, 0x1
|
|
add r1, sp, 0xFC
|
|
bl sub_80A8FD8
|
|
ldr r0, _0809E208
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
add r2, sp, 0x104
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
b _0809E234
|
|
.align 2, 0
|
|
_0809E208: .4byte gUnknown_81164DC
|
|
_0809E20C:
|
|
movs r5, 0x1
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r4, sp, 0xFC
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r1, sp, 0x104
|
|
ldr r2, [r2, 0x8]
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0x8]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
_0809E234:
|
|
cmp r5, 0
|
|
beq _0809E282
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r5, sp, 0x10C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r4, sp, 0x114
|
|
ldr r2, [r1, 0x8]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r6, sp, 0xFC
|
|
add r3, sp, 0x104
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r6, 0
|
|
bl sub_8002DF0
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r8, r0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r8, r0
|
|
bne _0809E28C
|
|
ldr r3, _0809E2CC
|
|
adds r0, r5, 0
|
|
adds r1, r3, 0
|
|
adds r2, r6, 0
|
|
bl sub_8002D54
|
|
lsls r0, 24
|
|
asrs r0, 24
|
|
mov r8, r0
|
|
_0809E282:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r8, r0
|
|
bne _0809E28C
|
|
b _0809E8F4
|
|
_0809E28C:
|
|
mov r5, r9
|
|
movs r0, 0
|
|
ldrsb r0, [r5, r0]
|
|
cmp r8, r0
|
|
bne _0809E298
|
|
b _0809E8F4
|
|
_0809E298:
|
|
mov r6, r9
|
|
movs r0, 0
|
|
ldrsb r0, [r6, r0]
|
|
add r1, sp, 0x4
|
|
ldrh r2, [r1, 0x2]
|
|
lsls r2, 24
|
|
lsrs r2, 24
|
|
mov r1, r8
|
|
bl sub_8002A70
|
|
adds r1, r7, 0
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x4
|
|
ldrb r0, [r0, 0x1]
|
|
mov r1, r10
|
|
strh r0, [r1]
|
|
b _0809E9CC
|
|
.align 2, 0
|
|
_0809E2CC: .4byte gUnknown_81164DC
|
|
_0809E2D0:
|
|
bl sub_809D234
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809E2DC
|
|
b _0809E9D6
|
|
_0809E2DC:
|
|
b _0809E8F4
|
|
_0809E2DE:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E2F0
|
|
b _0809E9D6
|
|
_0809E2F0:
|
|
ldr r1, _0809E304
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
lsls r0, 2
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
b _0809E8EC
|
|
.align 2, 0
|
|
_0809E304: .4byte gUnknown_2039B48
|
|
_0809E308:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r4, 0
|
|
ldrsh r1, [r0, r4]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E31A
|
|
b _0809E9D6
|
|
_0809E31A:
|
|
b _0809E8CA
|
|
_0809E31C:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r5, 0
|
|
ldrsh r1, [r0, r5]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E32E
|
|
b _0809E9D6
|
|
_0809E32E:
|
|
bl sub_8099B94
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809E33A
|
|
b _0809E9D6
|
|
_0809E33A:
|
|
b _0809E8CA
|
|
_0809E33C:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x4
|
|
ldrb r1, [r0, 0x1]
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
ldr r3, [sp, 0x8]
|
|
adds r0, r7, 0
|
|
bl sub_80A14E8
|
|
adds r1, r0, 0
|
|
cmp r1, 0
|
|
bge _0809E360
|
|
b _0809E9D6
|
|
_0809E360:
|
|
movs r0, 0x3
|
|
strh r0, [r7, 0x26]
|
|
adds r0, r7, 0
|
|
b _0809E60C
|
|
_0809E368:
|
|
add r0, sp, 0x11C
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E376
|
|
b _0809E9D6
|
|
_0809E376:
|
|
add r0, sp, 0x11C
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80A2460
|
|
b _0809E8C8
|
|
_0809E382:
|
|
add r0, sp, 0x120
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E390
|
|
b _0809E9D6
|
|
_0809E390:
|
|
add r4, sp, 0x120
|
|
ldr r0, [r4]
|
|
cmp r0, 0
|
|
blt _0809E3BA
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldrb r0, [r4]
|
|
bl sub_8002694
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r1, sp, 0x4
|
|
movs r3, 0x2
|
|
ldrsh r2, [r1, r3]
|
|
movs r1, 0
|
|
bl sub_8098D1C
|
|
_0809E3BA:
|
|
ldr r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_80A2460
|
|
b _0809E8C8
|
|
_0809E3C4:
|
|
adds r4, r7, 0
|
|
adds r4, 0x4C
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0
|
|
bne _0809E40C
|
|
add r0, sp, 0x124
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E3DE
|
|
b _0809E9D6
|
|
_0809E3DE:
|
|
add r0, sp, 0x124
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
blt _0809E400
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A26B8
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_80018D8
|
|
movs r0, 0x1
|
|
b _0809E402
|
|
_0809E400:
|
|
ldr r0, _0809E408
|
|
_0809E402:
|
|
strh r0, [r4]
|
|
b _0809E8CE
|
|
.align 2, 0
|
|
_0809E408: .4byte 0x0000ffff
|
|
_0809E40C:
|
|
cmp r0, 0x1
|
|
bne _0809E464
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_8001658
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r4, r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
bl sub_8001784
|
|
cmp r4, 0x13
|
|
bne _0809E43C
|
|
cmp r0, 0
|
|
beq _0809E45A
|
|
_0809E43C:
|
|
add r0, sp, 0x4
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_8098DCC
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_80A2460
|
|
str r0, [r7, 0x28]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80A87AC
|
|
b _0809E8F4
|
|
_0809E45A:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
movs r2, 0x13
|
|
bl sub_80018D8
|
|
_0809E464:
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r2, 0
|
|
ldrsh r1, [r0, r2]
|
|
adds r5, r0, 0
|
|
cmp r1, 0
|
|
bne _0809E4B4
|
|
add r0, sp, 0x128
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E480
|
|
b _0809E9D6
|
|
_0809E480:
|
|
add r0, sp, 0x128
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
blt _0809E4AA
|
|
ldrb r0, [r6]
|
|
cmp r0, 0x4
|
|
bne _0809E49A
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
bl sub_80A26B8
|
|
lsls r0, 16
|
|
b _0809E49C
|
|
_0809E49A:
|
|
lsls r0, r1, 16
|
|
_0809E49C:
|
|
asrs r2, r0, 16
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_80018D8
|
|
movs r0, 0x1
|
|
b _0809E4AC
|
|
_0809E4AA:
|
|
ldr r0, _0809E4B0
|
|
_0809E4AC:
|
|
strh r0, [r5]
|
|
b _0809E8CE
|
|
.align 2, 0
|
|
_0809E4B0: .4byte 0x0000ffff
|
|
_0809E4B4:
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
adds r5, r0, 0
|
|
cmp r1, 0x1
|
|
beq _0809E4C4
|
|
b _0809E5B8
|
|
_0809E4C4:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
add r4, sp, 0x18
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_80990EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809E580
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
bl sub_8099220
|
|
movs r0, 0x6
|
|
bl sub_80023E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4]
|
|
ldr r4, _0809E51C
|
|
ldr r2, [r4]
|
|
movs r1, 0
|
|
str r1, [sp]
|
|
bl sub_809034C
|
|
adds r1, r0, 0
|
|
ldr r0, _0809E520
|
|
str r1, [r0]
|
|
cmp r1, 0x1
|
|
beq _0809E586
|
|
cmp r1, 0x1
|
|
bcc _0809E580
|
|
cmp r1, 0x2
|
|
bne _0809E5AE
|
|
strh r1, [r5]
|
|
ldr r2, [r4]
|
|
movs r0, 0x9
|
|
b _0809E58E
|
|
.align 2, 0
|
|
_0809E51C: .4byte gUnknown_203B4B0
|
|
_0809E520: .4byte gUnknown_2039DA4
|
|
_0809E524:
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r4, 0
|
|
ldrsh r6, [r0, r4]
|
|
adds r5, r0, 0
|
|
cmp r6, 0x1
|
|
bne _0809E5B8
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8095228
|
|
adds r4, r0, 0
|
|
movs r0, 0x6
|
|
bl sub_80023E4
|
|
adds r3, r0, 0
|
|
lsls r3, 24
|
|
lsrs r3, 24
|
|
ldrb r0, [r4, 0x4]
|
|
ldr r4, _0809E578
|
|
ldr r2, [r4]
|
|
str r6, [sp]
|
|
movs r1, 0
|
|
bl sub_809034C
|
|
adds r1, r0, 0
|
|
ldr r0, _0809E57C
|
|
str r1, [r0]
|
|
cmp r1, 0x1
|
|
beq _0809E586
|
|
cmp r1, 0x1
|
|
bcc _0809E580
|
|
cmp r1, 0x2
|
|
bne _0809E5AE
|
|
strh r1, [r5]
|
|
ldr r2, [r4]
|
|
movs r0, 0x9
|
|
b _0809E58E
|
|
.align 2, 0
|
|
_0809E578: .4byte gUnknown_203B4B0
|
|
_0809E57C: .4byte gUnknown_2039DA4
|
|
_0809E580:
|
|
movs r0, 0x3
|
|
strh r0, [r5]
|
|
b _0809E9CC
|
|
_0809E586:
|
|
movs r0, 0x4
|
|
strh r0, [r5]
|
|
ldr r2, [r4]
|
|
movs r0, 0xA
|
|
_0809E58E:
|
|
movs r1, 0x1
|
|
bl sub_809B1C0
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
bl sub_809D8EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E5A4
|
|
b _0809E9CC
|
|
_0809E5A4:
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl sub_80A87AC
|
|
b _0809E9CC
|
|
_0809E5AE:
|
|
ldr r0, _0809E5B4
|
|
strh r0, [r5]
|
|
b _0809E9CC
|
|
.align 2, 0
|
|
_0809E5B4: .4byte 0x0000ffff
|
|
_0809E5B8:
|
|
movs r6, 0
|
|
ldrsh r2, [r5, r6]
|
|
cmp r2, 0x2
|
|
bne _0809E5DA
|
|
add r0, sp, 0x12C
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E5CE
|
|
b _0809E9D6
|
|
_0809E5CE:
|
|
add r0, sp, 0x12C
|
|
ldr r0, [r0]
|
|
cmp r0, 0
|
|
beq _0809E626
|
|
movs r0, 0x3
|
|
b _0809E628
|
|
_0809E5DA:
|
|
cmp r2, 0x3
|
|
bne _0809E614
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
strh r2, [r7, 0x26]
|
|
add r0, sp, 0x4
|
|
movs r6, 0x2
|
|
ldrsh r0, [r0, r6]
|
|
bl sub_80999FC
|
|
movs r0, 0x70
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
movs r1, 0x8
|
|
ldrsh r0, [r7, r1]
|
|
cmp r0, 0
|
|
bne _0809E608
|
|
b _0809E9CC
|
|
_0809E608:
|
|
adds r0, r7, 0
|
|
movs r1, 0x1
|
|
_0809E60C:
|
|
bl sub_80A2460
|
|
str r0, [r7, 0x28]
|
|
b _0809E9CC
|
|
_0809E614:
|
|
cmp r2, 0x4
|
|
bne _0809E63C
|
|
add r0, sp, 0x130
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E626
|
|
b _0809E9D6
|
|
_0809E626:
|
|
ldr r0, _0809E638
|
|
_0809E628:
|
|
strh r0, [r5]
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_80A87AC
|
|
bl sub_809A76C
|
|
b _0809E9CC
|
|
.align 2, 0
|
|
_0809E638: .4byte 0x0000ffff
|
|
_0809E63C:
|
|
movs r0, 0
|
|
movs r1, 0
|
|
bl sub_8099220
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
adds r0, r7, 0
|
|
adds r1, r4, 0
|
|
b _0809E8EE
|
|
_0809E658:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x134
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E672
|
|
b _0809E9D6
|
|
_0809E672:
|
|
add r0, sp, 0x134
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809E6A4
|
|
ldr r0, [sp, 0x8]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E6A4
|
|
adds r0, r1, 0
|
|
bl sub_80A8D54
|
|
movs r2, 0
|
|
adds r3, r0, 0
|
|
adds r3, 0x4C
|
|
ldr r4, _0809E6B0
|
|
_0809E696:
|
|
adds r0, r3, r2
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _0809E696
|
|
_0809E6A4:
|
|
add r0, sp, 0x134
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80A2460
|
|
b _0809E8C8
|
|
.align 2, 0
|
|
_0809E6B0: .4byte gUnknown_2039D98
|
|
_0809E6B4:
|
|
add r0, sp, 0x138
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E6C2
|
|
b _0809E9D6
|
|
_0809E6C2:
|
|
add r4, sp, 0x138
|
|
ldr r0, [r4]
|
|
cmp r0, 0x1
|
|
bne _0809E6D0
|
|
ldr r0, _0809E6DC
|
|
bl sub_80920EC
|
|
_0809E6D0:
|
|
ldr r1, [r4]
|
|
adds r0, r7, 0
|
|
bl sub_80A2460
|
|
b _0809E8C8
|
|
.align 2, 0
|
|
_0809E6DC: .4byte gUnknown_2039D98
|
|
_0809E6E0:
|
|
movs r1, 0x2
|
|
add r0, sp, 0x13C
|
|
str r1, [r0]
|
|
b _0809E74A
|
|
_0809E6E8:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
ldr r5, [sp, 0x10]
|
|
add r0, sp, 0x13C
|
|
bl sub_809B260
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E704
|
|
b _0809E9D6
|
|
_0809E704:
|
|
add r0, sp, 0x13C
|
|
ldr r0, [r0]
|
|
cmp r0, 0x1
|
|
bne _0809E74A
|
|
add r4, sp, 0x18
|
|
ldr r0, _0809E758
|
|
adds r3, r4, 0
|
|
movs r2, 0
|
|
mov r1, sp
|
|
adds r1, 0x27
|
|
_0809E718:
|
|
strb r2, [r1]
|
|
subs r1, 0x1
|
|
cmp r1, r3
|
|
bge _0809E718
|
|
adds r1, r4, 0
|
|
bl sub_80922F4
|
|
movs r2, 0
|
|
ldrb r0, [r4]
|
|
ldrb r3, [r5]
|
|
cmp r0, r3
|
|
bne _0809E6E0
|
|
cmp r0, 0
|
|
beq _0809E74A
|
|
_0809E734:
|
|
adds r2, 0x1
|
|
cmp r2, 0xF
|
|
bgt _0809E74A
|
|
adds r0, r4, r2
|
|
adds r1, r5, r2
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
bne _0809E6E0
|
|
cmp r0, 0
|
|
bne _0809E734
|
|
_0809E74A:
|
|
add r0, sp, 0x13C
|
|
ldr r1, [r0]
|
|
adds r0, r7, 0
|
|
bl sub_80A2460
|
|
b _0809E8C8
|
|
.align 2, 0
|
|
_0809E758: .4byte gUnknown_2039D98
|
|
_0809E75C:
|
|
adds r2, r7, 0
|
|
adds r2, 0x50
|
|
ldrh r3, [r2]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
bne _0809E76C
|
|
b _0809E872
|
|
_0809E76C:
|
|
add r4, sp, 0xA0
|
|
adds r0, r4, 0
|
|
bl sub_809AFFC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E77C
|
|
b _0809E9D6
|
|
_0809E77C:
|
|
ldrb r0, [r4]
|
|
cmp r0, 0
|
|
bne _0809E784
|
|
b _0809E8CA
|
|
_0809E784:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x4
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
b _0809E8C2
|
|
_0809E798:
|
|
add r1, sp, 0x4
|
|
ldr r0, [r7, 0x40]
|
|
ldm r0!, {r2,r5,r6}
|
|
stm r1!, {r2,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r2, r7, 0
|
|
adds r2, 0x50
|
|
movs r3, 0
|
|
ldrsh r0, [r2, r3]
|
|
adds r4, r2, 0
|
|
cmp r0, 0
|
|
bne _0809E84C
|
|
movs r3, 0
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r5, 0
|
|
ldrsh r2, [r0, r5]
|
|
adds r5, r0, 0
|
|
cmp r2, 0
|
|
bge _0809E7CC
|
|
ldr r0, [r7, 0x28]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xD1
|
|
beq _0809E812
|
|
b _0809E8F4
|
|
_0809E7CC:
|
|
ldr r1, [r7, 0x28]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD0
|
|
bne _0809E7F8
|
|
movs r6, 0x2
|
|
ldrsh r0, [r1, r6]
|
|
cmp r0, r2
|
|
beq _0809E812
|
|
_0809E7DC:
|
|
ldr r0, [r7, 0x28]
|
|
adds r1, r0, 0
|
|
adds r1, 0x10
|
|
str r1, [r7, 0x28]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0xD0
|
|
bne _0809E7F8
|
|
movs r0, 0x2
|
|
ldrsh r1, [r1, r0]
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
cmp r1, r0
|
|
bne _0809E7DC
|
|
movs r3, 0x1
|
|
_0809E7F8:
|
|
cmp r3, 0
|
|
bne _0809E812
|
|
ldr r1, [r7, 0x28]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD1
|
|
bne _0809E8F4
|
|
_0809E804:
|
|
adds r0, r1, 0
|
|
adds r1, 0x10
|
|
str r1, [r7, 0x28]
|
|
ldrb r0, [r0, 0x10]
|
|
cmp r0, 0xD1
|
|
beq _0809E804
|
|
b _0809E8F4
|
|
_0809E812:
|
|
add r0, sp, 0x4
|
|
ldrb r0, [r0, 0x1]
|
|
ldr r1, [sp, 0x8]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, [r7, 0x28]
|
|
ldr r2, [r2, 0xC]
|
|
bl sub_809AE90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809E844
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl sub_80A87AC
|
|
adds r0, r7, 0
|
|
movs r1, 0
|
|
bl sub_809D8EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809E844
|
|
movs r0, 0x1
|
|
strh r0, [r4]
|
|
_0809E844:
|
|
ldr r0, [r7, 0x28]
|
|
adds r0, 0x10
|
|
str r0, [r7, 0x28]
|
|
b _0809E9CC
|
|
_0809E84C:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r3, 0
|
|
ldrsh r1, [r0, r3]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E85E
|
|
b _0809E9D6
|
|
_0809E85E:
|
|
movs r0, 0
|
|
strh r0, [r2]
|
|
b _0809E8D0
|
|
_0809E864:
|
|
adds r2, r7, 0
|
|
adds r2, 0x50
|
|
ldrh r3, [r2]
|
|
movs r4, 0
|
|
ldrsh r0, [r2, r4]
|
|
cmp r0, 0
|
|
bne _0809E88A
|
|
_0809E872:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r5, 0
|
|
ldrsh r1, [r0, r5]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E884
|
|
b _0809E9D6
|
|
_0809E884:
|
|
adds r0, r3, 0x1
|
|
strh r0, [r2]
|
|
b _0809E9CC
|
|
_0809E88A:
|
|
add r0, sp, 0x140
|
|
bl sub_809B18C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809E898
|
|
b _0809E9D6
|
|
_0809E898:
|
|
add r0, sp, 0x140
|
|
ldr r3, [r0]
|
|
cmp r3, 0
|
|
ble _0809E8CA
|
|
adds r0, r7, 0
|
|
adds r0, 0x4C
|
|
movs r6, 0
|
|
ldrsh r2, [r0, r6]
|
|
ldr r1, [r7, 0x40]
|
|
lsls r0, r3, 4
|
|
lsls r2, 4
|
|
adds r2, r1
|
|
add r1, sp, 0x4
|
|
adds r0, r2
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r0, sp, 0x4
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
_0809E8C2:
|
|
adds r0, r7, 0
|
|
bl sub_80A242C
|
|
_0809E8C8:
|
|
str r0, [r7, 0x28]
|
|
_0809E8CA:
|
|
movs r0, 0x3
|
|
strh r0, [r7, 0x26]
|
|
_0809E8CE:
|
|
movs r0, 0
|
|
_0809E8D0:
|
|
movs r1, 0
|
|
bl sub_80A87AC
|
|
b _0809E9CC
|
|
_0809E8D8:
|
|
adds r0, r7, 0
|
|
adds r0, 0x46
|
|
movs r6, 0
|
|
ldrsh r1, [r0, r6]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0809E9D6
|
|
ldr r0, _0809E8FC
|
|
ldr r1, [r0, 0x4]
|
|
_0809E8EC:
|
|
adds r0, r7, 0
|
|
_0809E8EE:
|
|
bl sub_80A2460
|
|
str r0, [r7, 0x28]
|
|
_0809E8F4:
|
|
movs r0, 0x3
|
|
strh r0, [r7, 0x26]
|
|
b _0809E9CC
|
|
.align 2, 0
|
|
_0809E8FC: .4byte gUnknown_2039B48
|
|
_0809E900:
|
|
adds r0, r7, 0
|
|
bl ExecuteScriptCommand
|
|
strh r0, [r7, 0x26]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x4
|
|
bhi _0809E9BC
|
|
lsls r0, 2
|
|
ldr r1, _0809E91C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809E91C: .4byte _0809E920
|
|
.align 2, 0
|
|
_0809E920:
|
|
.4byte _0809E934
|
|
.4byte _0809E9B8
|
|
.4byte _0809E9BC
|
|
.4byte _0809E9D6
|
|
.4byte _0809E9B4
|
|
_0809E934:
|
|
adds r0, r7, 0
|
|
adds r0, 0x86
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0
|
|
beq _0809E9AA
|
|
adds r4, r7, 0
|
|
adds r4, 0x84
|
|
adds r0, r7, 0
|
|
adds r0, 0x24
|
|
adds r1, r4, 0
|
|
movs r2, 0x60
|
|
bl memcpy
|
|
ldr r2, [r7]
|
|
ldr r0, [r2, 0x2C]
|
|
cmp r0, 0
|
|
beq _0809E98E
|
|
adds r5, r7, 0
|
|
adds r5, 0x4A
|
|
movs r1, 0
|
|
ldrsb r1, [r5, r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809E98E
|
|
ldr r0, [r7, 0x4]
|
|
add r1, sp, 0x144
|
|
ldr r2, [r2, 0x18]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x144
|
|
ldr r0, [r0]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809E98E
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0
|
|
ldrsb r1, [r5, r1]
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
_0809E98E:
|
|
ldr r0, [r7]
|
|
ldr r2, [r0, 0x30]
|
|
cmp r2, 0
|
|
beq _0809E9A2
|
|
ldr r0, [r7, 0x4]
|
|
adds r1, r7, 0
|
|
adds r1, 0x48
|
|
ldrh r1, [r1]
|
|
bl _call_via_r2
|
|
_0809E9A2:
|
|
adds r0, r4, 0
|
|
bl sub_809D568
|
|
b _0809E9D6
|
|
_0809E9AA:
|
|
adds r0, r7, 0
|
|
adds r0, 0x24
|
|
bl sub_809D568
|
|
b _0809E9D6
|
|
_0809E9B4:
|
|
movs r0, 0x4
|
|
b _0809EABA
|
|
_0809E9B8:
|
|
movs r0, 0x1
|
|
b _0809EABA
|
|
_0809E9BC:
|
|
adds r1, r7, 0
|
|
adds r1, 0x50
|
|
movs r0, 0
|
|
strh r0, [r1]
|
|
b _0809E9CC
|
|
_0809E9C6:
|
|
movs r2, 0x26
|
|
ldrsh r0, [r7, r2]
|
|
b _0809EABA
|
|
_0809E9CC:
|
|
movs r3, 0x1
|
|
cmp r3, 0
|
|
beq _0809E9D6
|
|
bl _0809DA8A
|
|
_0809E9D6:
|
|
movs r0, 0x3
|
|
b _0809EABA
|
|
_0809E9DA:
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r4, sp, 0xCC
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r5, sp, 0xD4
|
|
adds r1, r7, 0
|
|
adds r1, 0x58
|
|
adds r2, r7, 0
|
|
adds r2, 0x60
|
|
mov r6, r8
|
|
movs r0, 0
|
|
ldrsh r6, [r6, r0]
|
|
mov r9, r6
|
|
adds r6, r7, 0
|
|
adds r6, 0x50
|
|
movs r3, 0
|
|
ldrsh r0, [r6, r3]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
mov r3, r9
|
|
bl sub_8002934
|
|
ldr r1, [r5]
|
|
ldr r0, [r4]
|
|
subs r1, r0
|
|
add r0, sp, 0xDC
|
|
str r1, [r0]
|
|
ldr r1, [r5, 0x4]
|
|
ldr r2, [r4, 0x4]
|
|
subs r1, r2
|
|
str r1, [r0, 0x4]
|
|
bl sub_8002C60
|
|
lsls r0, 24
|
|
adds r2, r7, 0
|
|
adds r2, 0x4A
|
|
asrs r1, r0, 24
|
|
lsrs r0, 24
|
|
strb r0, [r2]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
mov r4, r8
|
|
ldrh r0, [r4]
|
|
subs r0, 0x1
|
|
strh r0, [r4]
|
|
ldrh r0, [r6]
|
|
adds r0, 0x1
|
|
strh r0, [r6]
|
|
b _0809E9D6
|
|
_0809EA62:
|
|
add r5, sp, 0xC4
|
|
adds r1, r7, 0
|
|
adds r1, 0x58
|
|
adds r2, r7, 0
|
|
adds r2, 0x60
|
|
movs r3, 0
|
|
ldrsh r0, [r6, r3]
|
|
mov r8, r0
|
|
adds r4, r7, 0
|
|
adds r4, 0x50
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
mov r3, r8
|
|
bl sub_8002934
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
movs r1, 0x80
|
|
lsls r1, 5
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
ldrh r0, [r6]
|
|
subs r0, 0x1
|
|
strh r0, [r6]
|
|
ldrh r0, [r4]
|
|
adds r0, 0x1
|
|
strh r0, [r4]
|
|
b _0809E9D6
|
|
_0809EAAC:
|
|
subs r0, 0x1
|
|
strh r0, [r2]
|
|
b _0809E9D6
|
|
_0809EAB2:
|
|
subs r0, r2, 0x1
|
|
strh r0, [r1]
|
|
b _0809E9D6
|
|
_0809EAB8:
|
|
movs r0, 0
|
|
_0809EABA:
|
|
add sp, 0x148
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end HandleAction
|
|
|
|
thumb_func_start ExecuteScriptCommand
|
|
ExecuteScriptCommand:
|
|
push {r4-r7,lr}
|
|
mov r7, r10
|
|
mov r6, r9
|
|
mov r5, r8
|
|
push {r5-r7}
|
|
sub sp, 0x1BC
|
|
mov r9, r0
|
|
movs r0, 0x24
|
|
add r0, r9
|
|
mov r10, r0
|
|
_0809EAE0:
|
|
mov r1, r10
|
|
ldr r2, [r1, 0x4]
|
|
str r2, [r1, 0x1C]
|
|
add r1, sp, 0x8
|
|
adds r0, r2, 0
|
|
ldm r0!, {r3-r5}
|
|
stm r1!, {r3-r5}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r2, 0x10
|
|
mov r0, r10
|
|
str r2, [r0, 0x4]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
mov r1, r10
|
|
adds r1, 0x20
|
|
strb r0, [r1]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
subs r0, 0x1
|
|
adds r2, r1, 0
|
|
cmp r0, 0xF5
|
|
bhi _0809EAE0
|
|
lsls r0, 2
|
|
ldr r1, _0809EB18
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809EB18: .4byte _0809EB1C
|
|
.align 2, 0
|
|
_0809EB1C:
|
|
.4byte _0809EEF4
|
|
.4byte _0809EF40
|
|
.4byte _0809EFA2
|
|
.4byte _0809EFD6
|
|
.4byte _0809F064
|
|
.4byte _0809F02A
|
|
.4byte _0809F06C
|
|
.4byte _0809F0D0
|
|
.4byte _0809F0D0
|
|
.4byte _0809F1FC
|
|
.4byte _0809F2C8
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F2D6
|
|
.4byte _0809F42A
|
|
.4byte _0809F432
|
|
.4byte _0809F43A
|
|
.4byte _0809F442
|
|
.4byte _0809F4FE
|
|
.4byte _0809F5BE
|
|
.4byte _0809F5AE
|
|
.4byte _0809F5C6
|
|
.4byte _0809F5C6
|
|
.4byte _0809F660
|
|
.4byte _0809F6EA
|
|
.4byte _0809F786
|
|
.4byte _0809F830
|
|
.4byte _0809F842
|
|
.4byte _0809F854
|
|
.4byte _0809F872
|
|
.4byte _0809F884
|
|
.4byte _0809F896
|
|
.4byte _0809F896
|
|
.4byte _0809F8E8
|
|
.4byte _0809F8F4
|
|
.4byte _0809F900
|
|
.4byte _0809F90C
|
|
.4byte _0809F93E
|
|
.4byte _0809FAF8
|
|
.4byte _0809FB10
|
|
.4byte _0809F92E
|
|
.4byte _0809F936
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FB28
|
|
.4byte _0809FBDA
|
|
.4byte _0809FC12
|
|
.4byte _0809FC40
|
|
.4byte _0809FC2E
|
|
.4byte _0809FC46
|
|
.4byte _0809FCA4
|
|
.4byte _0809FCC4
|
|
.4byte _0809EAE0
|
|
.4byte _080A0E3A
|
|
.4byte _0809FCE8
|
|
.4byte _0809FCF0
|
|
.4byte _0809FD0A
|
|
.4byte _0809FD38
|
|
.4byte _0809FD6C
|
|
.4byte _0809FDA0
|
|
.4byte _0809FDA8
|
|
.4byte _0809FDC2
|
|
.4byte _0809FDD4
|
|
.4byte _0809FDE2
|
|
.4byte _0809FDC2
|
|
.4byte _0809FDD4
|
|
.4byte _0809FDE2
|
|
.4byte _0809FE04
|
|
.4byte _0809FE28
|
|
.4byte _0809FE86
|
|
.4byte _0809FEBE
|
|
.4byte _0809FED0
|
|
.4byte _0809FF00
|
|
.4byte _0809FF32
|
|
.4byte _0809FF46
|
|
.4byte _0809FF62
|
|
.4byte _0809FF78
|
|
.4byte _0809FF9A
|
|
.4byte _0809FFBA
|
|
.4byte _0809FFE4
|
|
.4byte _080A0010
|
|
.4byte _080A0064
|
|
.4byte _080A0096
|
|
.4byte _080A010E
|
|
.4byte _080A0186
|
|
.4byte _080A0198
|
|
.4byte _080A01B8
|
|
.4byte _080A01F0
|
|
.4byte _080A0220
|
|
.4byte _080A0250
|
|
.4byte _080A0282
|
|
.4byte _080A0282
|
|
.4byte _080A0560
|
|
.4byte _080A0198
|
|
.4byte _080A01B8
|
|
.4byte _080A01F0
|
|
.4byte _080A0220
|
|
.4byte _080A0250
|
|
.4byte _080A0282
|
|
.4byte _080A0282
|
|
.4byte _080A0560
|
|
.4byte _080A02B2
|
|
.4byte _080A0310
|
|
.4byte _080A0370
|
|
.4byte _080A03F8
|
|
.4byte _080A0462
|
|
.4byte _080A04F2
|
|
.4byte _080A02B2
|
|
.4byte _080A0310
|
|
.4byte _080A0370
|
|
.4byte _080A03F8
|
|
.4byte _080A0462
|
|
.4byte _080A04F2
|
|
.4byte _080A02B2
|
|
.4byte _080A0310
|
|
.4byte _080A0370
|
|
.4byte _080A03F8
|
|
.4byte _080A0462
|
|
.4byte _080A04F2
|
|
.4byte _080A02B2
|
|
.4byte _080A0310
|
|
.4byte _080A0370
|
|
.4byte _080A03F8
|
|
.4byte _080A0462
|
|
.4byte _080A04F2
|
|
.4byte _080A057C
|
|
.4byte _080A05A4
|
|
.4byte _080A05F0
|
|
.4byte _080A060E
|
|
.4byte _080A065C
|
|
.4byte _080A068A
|
|
.4byte _080A068A
|
|
.4byte _080A068A
|
|
.4byte _080A07CA
|
|
.4byte _080A07DC
|
|
.4byte _080A07C4
|
|
.4byte _080A07C4
|
|
.4byte _080A07C4
|
|
.4byte _0809EAE0
|
|
.4byte _080A080C
|
|
.4byte _080A081E
|
|
.4byte _080A086A
|
|
.4byte _080A08BE
|
|
.4byte _080A08CA
|
|
.4byte _080A091E
|
|
.4byte _080A0986
|
|
.4byte _080A0998
|
|
.4byte _080A09EA
|
|
.4byte _080A0A52
|
|
.4byte _080A0A64
|
|
.4byte _080A0AB6
|
|
.4byte _080A0B1E
|
|
.4byte _080A0B30
|
|
.4byte _080A0B42
|
|
.4byte _080A0B54
|
|
.4byte _080A0B6C
|
|
.4byte _080A0B88
|
|
.4byte _080A0BA2
|
|
.4byte _080A0BB4
|
|
.4byte _080A0BDA
|
|
.4byte _080A0BF6
|
|
.4byte _080A0C08
|
|
.4byte _080A0C20
|
|
.4byte _080A0C38
|
|
.4byte _080A0C50
|
|
.4byte _080A0C68
|
|
.4byte _080A0C80
|
|
.4byte _080A0C90
|
|
.4byte _080A0CA2
|
|
.4byte _080A0CC8
|
|
.4byte _080A0CF2
|
|
.4byte _080A0D16
|
|
.4byte _080A0D40
|
|
.4byte _080A0D6A
|
|
.4byte _080A0D7A
|
|
.4byte _080A0D94
|
|
.4byte _080A0DAE
|
|
.4byte _080A0DD6
|
|
.4byte _080A0E08
|
|
.4byte _080A0DE2
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _080A0E56
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _080A10A0
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _080A10F8
|
|
.4byte _0809EAE0
|
|
.4byte _080A129E
|
|
.4byte _080A12A8
|
|
.4byte _080A12B4
|
|
.4byte _0809F0C4
|
|
.4byte _0809F0C4
|
|
.4byte _0809F0C4
|
|
.4byte _0809F0C4
|
|
.4byte _0809F0C4
|
|
.4byte _0809F0C4
|
|
.4byte _080A12D0
|
|
.4byte _080A12E6
|
|
.4byte _080A12F4
|
|
.4byte _080A1318
|
|
.4byte _080A1324
|
|
.4byte _080A1338
|
|
.4byte _080A1344
|
|
.4byte _080A1368
|
|
.4byte _080A1374
|
|
.4byte _080A13CA
|
|
.4byte _080A13F8
|
|
.4byte _080A1404
|
|
.4byte _080A140C
|
|
.4byte _080A1428
|
|
.4byte _080A142C
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
.4byte _0809EAE0
|
|
_0809EEF4:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r6, r4, 0
|
|
add r0, sp, 0x8
|
|
ldrb r5, [r0, 0x1]
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809EF26
|
|
ldr r1, _0809EF38
|
|
ldr r2, _0809EF3C
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
adds r2, 0x8
|
|
adds r0, r2
|
|
ldr r3, [r0]
|
|
str r5, [sp]
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl Log
|
|
_0809EF26:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r2, [r0, r1]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl sub_8098D1C
|
|
b _0809EAE0
|
|
.align 2, 0
|
|
_0809EF38: .4byte gUnknown_81165D4
|
|
_0809EF3C: .4byte gUnknown_811BAF4
|
|
_0809EF40:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r5, 0x1
|
|
negs r5, r5
|
|
cmp r4, r5
|
|
bne _0809EF5A
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
_0809EF5A:
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809EF70
|
|
ldr r1, _0809EF90
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl Log
|
|
_0809EF70:
|
|
cmp r4, r5
|
|
beq _0809EF94
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r4, 0
|
|
bl sub_8098E18
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_80A2460
|
|
mov r3, r9
|
|
str r0, [r3, 0x28]
|
|
b _0809EAE0
|
|
.align 2, 0
|
|
_0809EF90: .4byte gUnknown_81165F4
|
|
_0809EF94:
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_80A2460
|
|
mov r4, r9
|
|
str r0, [r4, 0x28]
|
|
b _0809EAE0
|
|
_0809EFA2:
|
|
ldr r0, [sp, 0xC]
|
|
bl sub_8021700
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809EFBE
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
mov r0, r9
|
|
bl sub_80A2460
|
|
mov r5, r9
|
|
str r0, [r5, 0x28]
|
|
b _0809EAE0
|
|
_0809EFBE:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_8098D80
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_80A2460
|
|
mov r2, r9
|
|
str r0, [r2, 0x28]
|
|
b _0809EAE0
|
|
_0809EFD6:
|
|
ldr r1, [sp, 0xC]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0809F00C
|
|
bl sub_802FCF0
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
cmp r4, 0
|
|
bne _0809F0BC
|
|
movs r0, 0xC
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809B1C0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F0BC
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl sub_80A87AC
|
|
mov r0, r9
|
|
adds r0, 0x4C
|
|
strh r4, [r0]
|
|
b _0809F0C4
|
|
_0809F00C:
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
bl sub_80A26B8
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x12
|
|
bl sub_80018D8
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
movs r0, 0x1
|
|
b _0809F0C2
|
|
_0809F02A:
|
|
ldr r2, [sp, 0xC]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r2, r0
|
|
bne _0809F054
|
|
movs r0, 0x24
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_809B1C0
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F0BC
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl sub_80A87AC
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
movs r0, 0
|
|
b _0809F0C2
|
|
_0809F054:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_80018D8
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
movs r0, 0x1
|
|
b _0809F0C2
|
|
_0809F064:
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
movs r0, 0x1
|
|
b _0809F0C2
|
|
_0809F06C:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
bne _0809F088
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
b _0809F092
|
|
_0809F088:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
adds r2, r4, 0
|
|
bl sub_80018D8
|
|
_0809F092:
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F0A8
|
|
ldr r1, _0809F0B8
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl Log
|
|
_0809F0A8:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r4, r0
|
|
beq _0809F0BC
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
movs r0, 0x1
|
|
b _0809F0C2
|
|
.align 2, 0
|
|
_0809F0B8: .4byte gUnknown_811660C
|
|
_0809F0BC:
|
|
mov r1, r9
|
|
adds r1, 0x4C
|
|
ldr r0, _0809F0CC
|
|
_0809F0C2:
|
|
strh r0, [r1]
|
|
_0809F0C4:
|
|
movs r0, 0x2
|
|
bl _080A142E
|
|
.align 2, 0
|
|
_0809F0CC: .4byte 0x0000ffff
|
|
_0809F0D0:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8
|
|
bne _0809F130
|
|
ldr r5, _0809F11C
|
|
ldr r0, [sp, 0xC]
|
|
strh r0, [r5]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A4D7C
|
|
ldr r4, _0809F120
|
|
strh r0, [r4]
|
|
ldr r1, _0809F124
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F16A
|
|
ldr r1, _0809F128
|
|
movs r3, 0
|
|
ldrsh r2, [r5, r3]
|
|
movs r5, 0
|
|
ldrsh r3, [r4, r5]
|
|
ldr r4, _0809F12C
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl Log
|
|
b _0809F16A
|
|
.align 2, 0
|
|
_0809F11C: .4byte gUnknown_2039A30
|
|
_0809F120: .4byte gUnknown_2039A32
|
|
_0809F124: .4byte gUnknown_2039A34
|
|
_0809F128: .4byte gUnknown_8116628
|
|
_0809F12C: .4byte gUnknown_811BAF4
|
|
_0809F130:
|
|
ldr r5, _0809F1E8
|
|
ldr r4, _0809F1EC
|
|
ldr r1, [sp, 0xC]
|
|
strh r1, [r4]
|
|
strh r1, [r5]
|
|
ldr r0, _0809F1F0
|
|
strh r1, [r0]
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F16A
|
|
ldr r1, _0809F1F4
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
movs r4, 0
|
|
ldrsh r3, [r5, r4]
|
|
ldr r4, _0809F1F8
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl Log
|
|
_0809F16A:
|
|
ldr r5, _0809F1EC
|
|
movs r0, 0
|
|
ldrsh r2, [r5, r0]
|
|
movs r0, 0
|
|
movs r1, 0x10
|
|
bl sub_80018D8
|
|
ldr r6, _0809F1F8
|
|
movs r2, 0
|
|
ldrsh r1, [r5, r2]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r0, r6
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
movs r0, 0
|
|
movs r1, 0x11
|
|
bl sub_80018D8
|
|
ldr r4, _0809F1E8
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl GroundSprite_Reset
|
|
bl sub_809D0BC
|
|
bl sub_80AD9D0
|
|
bl sub_80A786C
|
|
bl sub_80ABB98
|
|
bl sub_80ACBD4
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
lsls r1, r0, 1
|
|
adds r1, r0
|
|
lsls r1, 2
|
|
adds r1, r6
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
bl sub_809C770
|
|
movs r5, 0
|
|
ldrsh r0, [r4, r5]
|
|
bl GroundMap_Select
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
bl GroundLink_Select
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GroundLives_Select
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
b _0809F2A0
|
|
.align 2, 0
|
|
_0809F1E8: .4byte gUnknown_2039A32
|
|
_0809F1EC: .4byte gUnknown_2039A30
|
|
_0809F1F0: .4byte gUnknown_2039A34
|
|
_0809F1F4: .4byte gUnknown_8116644
|
|
_0809F1F8: .4byte gUnknown_811BAF4
|
|
_0809F1FC:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
adds r6, r0, 0
|
|
ldr r1, _0809F2AC
|
|
ldr r5, _0809F2B0
|
|
ldr r4, _0809F2B4
|
|
ldr r0, [sp, 0x10]
|
|
strh r0, [r4]
|
|
strh r0, [r5]
|
|
strh r0, [r1]
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F242
|
|
ldr r1, _0809F2B8
|
|
movs r0, 0
|
|
ldrsh r2, [r4, r0]
|
|
movs r4, 0
|
|
ldrsh r3, [r5, r4]
|
|
ldr r4, _0809F2BC
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r4, 0x8
|
|
adds r0, r4
|
|
ldr r0, [r0]
|
|
str r0, [sp]
|
|
movs r0, 0x1
|
|
bl Log
|
|
_0809F242:
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
bl GroundSprite_Reset
|
|
bl sub_809D0BC
|
|
bl sub_80AD9D0
|
|
bl sub_80A786C
|
|
bl sub_80ABB98
|
|
bl sub_80ACBD4
|
|
ldrb r2, [r6, 0xC]
|
|
ldr r1, _0809F2C0
|
|
ldr r0, [sp, 0x58]
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x58]
|
|
add r1, sp, 0x8
|
|
ldrh r2, [r1, 0x2]
|
|
lsls r2, 24
|
|
lsrs r2, 16
|
|
ldr r1, _0809F2C4
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
str r0, [sp, 0x58]
|
|
movs r2, 0
|
|
ldrsh r0, [r5, r2]
|
|
add r1, sp, 0x58
|
|
add r2, sp, 0x8
|
|
ldrb r2, [r2, 0x1]
|
|
bl GroundMap_SelectDungeon
|
|
movs r3, 0
|
|
ldrsh r0, [r5, r3]
|
|
bl GroundLink_Select
|
|
movs r4, 0
|
|
ldrsh r0, [r5, r4]
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GroundLives_Select
|
|
movs r1, 0
|
|
ldrsh r0, [r5, r1]
|
|
_0809F2A0:
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl GroundObject_Select
|
|
b _0809EAE0
|
|
.align 2, 0
|
|
_0809F2AC: .4byte gUnknown_2039A34
|
|
_0809F2B0: .4byte gUnknown_2039A32
|
|
_0809F2B4: .4byte gUnknown_2039A30
|
|
_0809F2B8: .4byte gUnknown_8116664
|
|
_0809F2BC: .4byte gUnknown_811BAF4
|
|
_0809F2C0: .4byte 0xffffff00
|
|
_0809F2C4: .4byte 0xffff00ff
|
|
_0809F2C8:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl GroundWeather_Select
|
|
bl _0809EAE0
|
|
_0809F2D6:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _0809F2E8
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
b _0809F2EE
|
|
_0809F2E8:
|
|
mov r3, r10
|
|
movs r4, 0xC
|
|
ldrsh r0, [r3, r4]
|
|
_0809F2EE:
|
|
adds r6, r0, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
blt _0809F302
|
|
add r0, sp, 0x8
|
|
movs r1, 0x1
|
|
ldrsb r1, [r0, r1]
|
|
b _0809F308
|
|
_0809F302:
|
|
mov r5, r10
|
|
movs r1, 0xE
|
|
ldrsb r1, [r5, r1]
|
|
_0809F308:
|
|
adds r5, r1, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
subs r0, 0xC
|
|
cmp r0, 0x9
|
|
bls _0809F318
|
|
bl _0809EAE0
|
|
_0809F318:
|
|
lsls r0, 2
|
|
ldr r1, _0809F324
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809F324: .4byte _0809F328
|
|
.align 2, 0
|
|
_0809F328:
|
|
.4byte _0809F350
|
|
.4byte _0809F380
|
|
.4byte _0809F398
|
|
.4byte _0809F3B0
|
|
.4byte _0809F3C8
|
|
.4byte _0809F3E0
|
|
.4byte _0809F3FA
|
|
.4byte _0809F406
|
|
.4byte _0809F412
|
|
.4byte _0809F41E
|
|
_0809F350:
|
|
ldr r4, _0809F37C
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundLives_Select
|
|
movs r2, 0
|
|
ldrsh r0, [r4, r2]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundObject_Select
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundEffect_Select
|
|
movs r1, 0
|
|
ldrsh r0, [r4, r1]
|
|
b _0809F3CE
|
|
.align 2, 0
|
|
_0809F37C: .4byte gUnknown_2039A32
|
|
_0809F380:
|
|
ldr r0, _0809F394
|
|
movs r2, 0
|
|
ldrsh r0, [r0, r2]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundLives_Select
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809F394: .4byte gUnknown_2039A32
|
|
_0809F398:
|
|
ldr r0, _0809F3AC
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundObject_Select
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809F3AC: .4byte gUnknown_2039A32
|
|
_0809F3B0:
|
|
ldr r0, _0809F3C4
|
|
movs r4, 0
|
|
ldrsh r0, [r0, r4]
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundEffect_Select
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809F3C4: .4byte gUnknown_2039A32
|
|
_0809F3C8:
|
|
ldr r0, _0809F3DC
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
_0809F3CE:
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundEvent_Select
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809F3DC: .4byte gUnknown_2039A32
|
|
_0809F3E0:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundLives_Cancel
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundObject_Cancel
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundEffect_Cancel
|
|
b _0809F41E
|
|
_0809F3FA:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundLives_Cancel
|
|
bl _0809EAE0
|
|
_0809F406:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundObject_Cancel
|
|
bl _0809EAE0
|
|
_0809F412:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundEffect_Cancel
|
|
bl _0809EAE0
|
|
_0809F41E:
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
bl GroundEvent_Cancel
|
|
bl _0809EAE0
|
|
_0809F42A:
|
|
bl sub_80A79FC
|
|
bl _0809EAE0
|
|
_0809F432:
|
|
bl GroundObject_CancelBlank
|
|
bl _0809EAE0
|
|
_0809F43A:
|
|
bl GroundEffect_CancelBlank
|
|
bl _0809EAE0
|
|
_0809F442:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r4, sp, 0x18
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r6, sp, 0x1C
|
|
ldr r0, [sp, 0x10]
|
|
add r5, sp, 0x34
|
|
movs r2, 0
|
|
strb r0, [r5]
|
|
ldrb r1, [r4]
|
|
mov r0, sp
|
|
adds r0, 0x35
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
movs r1, 0x1
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
strb r1, [r0]
|
|
str r2, [sp, 0x38]
|
|
add r4, sp, 0x3C
|
|
adds r0, r4, 0
|
|
movs r1, 0
|
|
movs r2, 0x10
|
|
bl memset
|
|
ldr r2, _0809F4AC
|
|
ldr r1, [sp, 0xC]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r4, 0xC]
|
|
adds r0, r6, 0
|
|
adds r1, r5, 0
|
|
movs r2, 0x18
|
|
bl memcpy
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
adds r1, r6, 0
|
|
cmp r0, 0
|
|
blt _0809F4B0
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
b _0809F4B6
|
|
.align 2, 0
|
|
_0809F4AC: .4byte gUnknown_812F1F8
|
|
_0809F4B0:
|
|
mov r4, r10
|
|
movs r5, 0xC
|
|
ldrsh r2, [r4, r5]
|
|
_0809F4B6:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
blt _0809F4C8
|
|
add r0, sp, 0x8
|
|
movs r3, 0x1
|
|
ldrsb r3, [r0, r3]
|
|
b _0809F4CE
|
|
_0809F4C8:
|
|
mov r0, r10
|
|
movs r3, 0xE
|
|
ldrsb r3, [r0, r3]
|
|
_0809F4CE:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl GroundObject_Add
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
bge _0809F4E2
|
|
bl _0809EAE0
|
|
_0809F4E2:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r4, sp, 0x5C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80AC49C
|
|
bl _0809EAE0
|
|
_0809F4FE:
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
add r4, sp, 0x4C
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r5, sp, 0x1C
|
|
ldr r0, [sp, 0x10]
|
|
add r1, sp, 0x28
|
|
movs r3, 0
|
|
strb r0, [r1]
|
|
ldrb r2, [r4]
|
|
mov r0, sp
|
|
adds r0, 0x29
|
|
strb r2, [r0]
|
|
adds r0, 0x1
|
|
movs r2, 0x1
|
|
strb r2, [r0]
|
|
adds r0, 0x1
|
|
strb r2, [r0]
|
|
str r3, [sp, 0x2C]
|
|
ldr r3, _0809F55C
|
|
ldr r2, [sp, 0xC]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 2
|
|
adds r3, 0x8
|
|
adds r0, r3
|
|
ldr r0, [r0]
|
|
str r0, [sp, 0x30]
|
|
adds r0, r5, 0
|
|
movs r2, 0xC
|
|
bl memcpy
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
adds r1, r5, 0
|
|
cmp r0, 0
|
|
blt _0809F560
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
b _0809F566
|
|
.align 2, 0
|
|
_0809F55C: .4byte gUnknown_812F1F8
|
|
_0809F560:
|
|
mov r5, r10
|
|
movs r0, 0xC
|
|
ldrsh r2, [r5, r0]
|
|
_0809F566:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
blt _0809F578
|
|
add r0, sp, 0x8
|
|
movs r3, 0x1
|
|
ldrsb r3, [r0, r3]
|
|
b _0809F57E
|
|
_0809F578:
|
|
mov r4, r10
|
|
movs r3, 0xE
|
|
ldrsb r3, [r4, r3]
|
|
_0809F57E:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
bl GroundEffect_Add
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
bge _0809F592
|
|
bl _0809EAE0
|
|
_0809F592:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
add r4, sp, 0x64
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
bl sub_80AD3B4
|
|
bl _0809EAE0
|
|
_0809F5AE:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, 0x1
|
|
bl GroundMap_ExecuteEvent
|
|
bl _0809EAE0
|
|
_0809F5BE:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
b _0809F712
|
|
_0809F5C6:
|
|
ldr r1, [sp, 0xC]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809F5D6
|
|
lsls r0, r1, 16
|
|
asrs r0, 16
|
|
b _0809F5DC
|
|
_0809F5D6:
|
|
ldr r0, _0809F5F0
|
|
movs r3, 0
|
|
ldrsh r0, [r0, r3]
|
|
_0809F5DC:
|
|
adds r4, r0, 0
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _0809F5F4
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
b _0809F5FA
|
|
.align 2, 0
|
|
_0809F5F0: .4byte gUnknown_2039A30
|
|
_0809F5F4:
|
|
mov r0, r10
|
|
movs r2, 0xC
|
|
ldrsh r1, [r0, r2]
|
|
_0809F5FA:
|
|
adds r6, r1, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
blt _0809F60E
|
|
add r0, sp, 0x8
|
|
movs r5, 0x1
|
|
ldrsb r5, [r0, r5]
|
|
b _0809F614
|
|
_0809F60E:
|
|
mov r3, r10
|
|
movs r5, 0xE
|
|
ldrsb r5, [r3, r5]
|
|
_0809F614:
|
|
adds r0, r4, 0
|
|
bl sub_80A4D7C
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
movs r3, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x1E
|
|
bne _0809F62A
|
|
movs r3, 0x1
|
|
_0809F62A:
|
|
adds r0, r4, 0
|
|
adds r1, r6, 0
|
|
adds r2, r5, 0
|
|
bl GroundMap_ExecuteStation
|
|
ldr r1, _0809F65C
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, r4
|
|
bne _0809F642
|
|
bl _0809EAE0
|
|
_0809F642:
|
|
strh r4, [r1]
|
|
bl sub_809D940
|
|
mov r1, r9
|
|
movs r2, 0x8
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0
|
|
bne _0809F656
|
|
bl _0809EAE0
|
|
_0809F656:
|
|
bl _080A142C
|
|
.align 2, 0
|
|
_0809F65C: .4byte gUnknown_2039A34
|
|
_0809F660:
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A2608
|
|
adds r5, r0, 0
|
|
lsls r2, r4, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x30
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
bne _0809F68A
|
|
movs r3, 0x6
|
|
ldrsh r5, [r5, r3]
|
|
b _0809F68E
|
|
_0809F68A:
|
|
movs r0, 0x8
|
|
ldrsh r5, [r5, r0]
|
|
_0809F68E:
|
|
adds r0, r4, 0
|
|
subs r0, 0x37
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x10
|
|
bls _0809F6DC
|
|
adds r0, r4, 0
|
|
bl sub_80A2750
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0x1
|
|
bne _0809F6DC
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r5, r0
|
|
bne _0809F6D8
|
|
movs r0, 0x1
|
|
bl sub_8011BA4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _0809F6C6
|
|
ldr r1, _0809F6D4
|
|
movs r0, 0x1
|
|
adds r2, r4, 0
|
|
bl Log
|
|
_0809F6C6:
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_8098E18
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809F6D4: .4byte gUnknown_8116684
|
|
_0809F6D8:
|
|
adds r0, r5, 0
|
|
b _0809F712
|
|
_0809F6DC:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
adds r0, r4, 0
|
|
bl sub_8098E18
|
|
bl _0809EAE0
|
|
_0809F6EA:
|
|
mov r1, r9
|
|
movs r2, 0xC
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
beq _0809F71C
|
|
cmp r0, 0x1
|
|
bgt _0809F700
|
|
cmp r0, 0
|
|
beq _0809F70C
|
|
bl _0809EAE0
|
|
_0809F700:
|
|
cmp r0, 0x2
|
|
beq _0809F73E
|
|
cmp r0, 0x3
|
|
beq _0809F762
|
|
bl _0809EAE0
|
|
_0809F70C:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
_0809F712:
|
|
movs r1, 0
|
|
bl GroundMap_ExecuteEvent
|
|
bl _0809EAE0
|
|
_0809F71C:
|
|
add r4, sp, 0x1C
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
mov r0, r9
|
|
adds r1, r4, 0
|
|
bl sub_809D710
|
|
mov r1, r9
|
|
movs r2, 0xE
|
|
ldrsh r0, [r1, r2]
|
|
adds r1, 0x8
|
|
adds r2, r4, 0
|
|
bl GroundLives_ExecuteScript
|
|
bl _0809EAE0
|
|
_0809F73E:
|
|
add r4, sp, 0x28
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
mov r0, r9
|
|
adds r1, r4, 0
|
|
bl sub_809D710
|
|
mov r5, r9
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
mov r1, r9
|
|
adds r1, 0x8
|
|
adds r2, r4, 0
|
|
bl GroundObject_ExecuteScript
|
|
bl _0809EAE0
|
|
_0809F762:
|
|
add r4, sp, 0x34
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
mov r0, r9
|
|
adds r1, r4, 0
|
|
bl sub_809D710
|
|
mov r5, r9
|
|
movs r1, 0xE
|
|
ldrsh r0, [r5, r1]
|
|
mov r1, r9
|
|
adds r1, 0x8
|
|
adds r2, r4, 0
|
|
bl GroundEffect_ExecuteScript
|
|
bl _0809EAE0
|
|
_0809F786:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r8, r0
|
|
cmp r0, 0
|
|
bge _0809F79E
|
|
bl _0809EAE0
|
|
_0809F79E:
|
|
add r1, sp, 0x6C
|
|
bl sub_80A8BD8
|
|
ldr r0, [sp, 0x6C]
|
|
movs r1, 0x80
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809F818
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r7, sp, 0x70
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r7, 0
|
|
bl _call_via_r2
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
add r5, sp, 0x78
|
|
ldr r2, [r1, 0x8]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
add r6, sp, 0x80
|
|
mov r0, r8
|
|
adds r1, r6, 0
|
|
bl sub_80A8FD8
|
|
add r4, sp, 0x88
|
|
mov r0, r8
|
|
adds r1, r4, 0
|
|
bl sub_80A8F9C
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
adds r3, r5, 0
|
|
bl sub_8002DF0
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
adds r4, r1, 0
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _0809F812
|
|
ldr r3, _0809F82C
|
|
adds r0, r7, 0
|
|
adds r1, r3, 0
|
|
adds r2, r6, 0
|
|
bl sub_8002D54
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
cmp r1, r4
|
|
beq _0809F818
|
|
_0809F812:
|
|
mov r0, r8
|
|
bl sub_80A9090
|
|
_0809F818:
|
|
mov r4, r9
|
|
movs r5, 0xA
|
|
ldrsh r0, [r4, r5]
|
|
mov r1, r8
|
|
bl GroundLives_ExecutePlayerScriptActionLives
|
|
movs r0, 0x3
|
|
bl _080A142E
|
|
.align 2, 0
|
|
_0809F82C: .4byte gUnknown_81164DC
|
|
_0809F830:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
bl sub_80999E8
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F842:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80999FC
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F854:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
lsrs r1, 16
|
|
ldr r2, [sp, 0x10]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
bl sub_8099A10
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F872:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
bl sub_8099A34
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F884:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_8099A48
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F896:
|
|
ldr r0, [sp, 0x10]
|
|
asrs r0, 16
|
|
add r1, sp, 0x20
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
ldr r0, [sp, 0x10]
|
|
asrs r0, 8
|
|
adds r1, 0x1
|
|
strb r0, [r1]
|
|
ldr r1, [sp, 0x10]
|
|
mov r0, sp
|
|
adds r0, 0x22
|
|
strb r1, [r0]
|
|
adds r0, 0x1
|
|
strb r2, [r0]
|
|
ldr r2, [sp, 0x20]
|
|
str r2, [sp, 0x1C]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x27
|
|
beq _0809F8C6
|
|
cmp r0, 0x28
|
|
beq _0809F8D4
|
|
b _0809F8E0
|
|
_0809F8C6:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [sp, 0xC]
|
|
bl sub_8099A5C
|
|
b _0809F8E0
|
|
_0809F8D4:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
ldr r1, [sp, 0xC]
|
|
bl sub_8099AFC
|
|
_0809F8E0:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A130C
|
|
_0809F8E8:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_809A6E4
|
|
bl _0809EAE0
|
|
_0809F8F4:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
bl sub_809A6F8
|
|
bl _0809EAE0
|
|
_0809F900:
|
|
ldr r0, [sp, 0xC]
|
|
ldr r1, [sp, 0x10]
|
|
bl sub_809A738
|
|
bl _0809EAE0
|
|
_0809F90C:
|
|
bl sub_809A768
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809F91A
|
|
bl _0809EAE0
|
|
_0809F91A:
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl sub_80A87AC
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_809D8EC
|
|
bl _080A130A
|
|
_0809F92E:
|
|
bl sub_809A76C
|
|
bl _0809EAE0
|
|
_0809F936:
|
|
bl sub_809A7B4
|
|
bl _0809EAE0
|
|
_0809F93E:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0xA
|
|
bls _0809F94A
|
|
bl _0809EAE0
|
|
_0809F94A:
|
|
lsls r0, 2
|
|
ldr r1, _0809F954
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809F954: .4byte _0809F958
|
|
.align 2, 0
|
|
_0809F958:
|
|
.4byte _0809F984
|
|
.4byte _0809F992
|
|
.4byte _0809F9A4
|
|
.4byte _0809F9B6
|
|
.4byte _0809F9D8
|
|
.4byte _0809F9EA
|
|
.4byte _0809F9FC
|
|
.4byte _0809FA44
|
|
.4byte _0809FA56
|
|
.4byte _0809FA68
|
|
.4byte _0809FAB0
|
|
_0809F984:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
bl sub_809A83C
|
|
bl _0809EAE0
|
|
_0809F992:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
mov r1, r9
|
|
adds r1, 0x8
|
|
bl sub_80A2500
|
|
bl _0809EAE0
|
|
_0809F9A4:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
mov r1, r9
|
|
adds r1, 0xC
|
|
bl sub_80A2500
|
|
bl _0809EAE0
|
|
_0809F9B6:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
add r1, sp, 0x90
|
|
lsls r0, 16
|
|
movs r2, 0x1
|
|
orrs r0, r2
|
|
str r0, [r1]
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
bl sub_80A2500
|
|
bl _0809EAE0
|
|
_0809F9D8:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
mov r1, r9
|
|
adds r1, 0x8
|
|
bl sub_80A252C
|
|
bl _0809EAE0
|
|
_0809F9EA:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
mov r1, r9
|
|
adds r1, 0xC
|
|
bl sub_80A252C
|
|
bl _0809EAE0
|
|
_0809F9FC:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
add r1, sp, 0x94
|
|
ldrh r2, [r1]
|
|
orrs r2, r0
|
|
str r2, [r1]
|
|
cmp r2, 0
|
|
blt _0809FA30
|
|
ldr r0, _0809FA2C
|
|
ands r2, r0
|
|
movs r0, 0x1
|
|
orrs r2, r0
|
|
str r2, [r1]
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_80A252C
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FA2C: .4byte 0xffff0000
|
|
_0809FA30:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_80A2584
|
|
bl _0809EAE0
|
|
_0809FA44:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
mov r1, r9
|
|
adds r1, 0x8
|
|
bl sub_80A2558
|
|
bl _0809EAE0
|
|
_0809FA56:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
mov r1, r9
|
|
adds r1, 0xC
|
|
bl sub_80A2558
|
|
bl _0809EAE0
|
|
_0809FA68:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
add r1, sp, 0x98
|
|
ldrh r2, [r1]
|
|
orrs r2, r0
|
|
str r2, [r1]
|
|
cmp r2, 0
|
|
blt _0809FA9C
|
|
ldr r0, _0809FA98
|
|
ands r2, r0
|
|
movs r0, 0x1
|
|
orrs r2, r0
|
|
str r2, [r1]
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
bl sub_80A2558
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FA98: .4byte 0xffff0000
|
|
_0809FA9C:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_80A2598
|
|
bl _0809EAE0
|
|
_0809FAB0:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
movs r4, 0
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
beq _0809FAD0
|
|
cmp r0, 0x2
|
|
beq _0809FAD4
|
|
b _0809FAD8
|
|
_0809FAD0:
|
|
movs r4, 0x1
|
|
b _0809FAD8
|
|
_0809FAD4:
|
|
movs r4, 0x1
|
|
negs r4, r4
|
|
_0809FAD8:
|
|
adds r0, r1, 0
|
|
bl sub_8090298
|
|
ldr r2, _0809FAF4
|
|
add r1, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
lsls r1, 2
|
|
adds r1, r2
|
|
adds r0, r4
|
|
str r0, [r1]
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FAF4: .4byte gUnknown_202DE30
|
|
_0809FAF8:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
add r2, sp, 0x8
|
|
ldrb r2, [r2, 0x1]
|
|
bl sub_809AC7C
|
|
bl _0809EAE0
|
|
_0809FB10:
|
|
ldr r0, [sp, 0xC]
|
|
add r1, sp, 0x9C
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0x10]
|
|
str r0, [r1, 0x4]
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_809ADD8
|
|
bl _0809EAE0
|
|
_0809FB28:
|
|
movs r1, 0
|
|
ldrb r0, [r2]
|
|
subs r0, 0x32
|
|
cmp r0, 0x6
|
|
bhi _0809FBBE
|
|
lsls r0, 2
|
|
ldr r1, _0809FB3C
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_0809FB3C: .4byte _0809FB40
|
|
.align 2, 0
|
|
_0809FB40:
|
|
.4byte _0809FB5C
|
|
.4byte _0809FB6C
|
|
.4byte _0809FB7C
|
|
.4byte _0809FB8C
|
|
.4byte _0809FB9C
|
|
.4byte _0809FBAC
|
|
.4byte _0809FBB4
|
|
_0809FB5C:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
ldr r2, [sp, 0x14]
|
|
movs r0, 0
|
|
bl sub_809AE90
|
|
b _0809FBBA
|
|
_0809FB6C:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r0, r3]
|
|
ldr r2, [sp, 0x14]
|
|
movs r0, 0x1
|
|
bl sub_809AE90
|
|
b _0809FBBA
|
|
_0809FB7C:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
ldr r2, [sp, 0x14]
|
|
movs r0, 0x2
|
|
bl sub_809AE90
|
|
b _0809FBBA
|
|
_0809FB8C:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
ldr r2, [sp, 0x14]
|
|
movs r0, 0x3
|
|
bl sub_809AE90
|
|
b _0809FBBA
|
|
_0809FB9C:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
ldr r2, [sp, 0x14]
|
|
movs r0, 0x4
|
|
bl sub_809AE90
|
|
b _0809FBBA
|
|
_0809FBAC:
|
|
ldr r0, [sp, 0x14]
|
|
bl sub_809AEEC
|
|
b _0809FBBA
|
|
_0809FBB4:
|
|
ldr r0, [sp, 0x14]
|
|
bl sub_809AF2C
|
|
_0809FBBA:
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
_0809FBBE:
|
|
cmp r1, 0
|
|
bne _0809FBC6
|
|
bl _0809EAE0
|
|
_0809FBC6:
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl sub_80A87AC
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_809D8EC
|
|
bl _080A130A
|
|
_0809FBDA:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
ldr r1, [sp, 0x14]
|
|
bl sub_809AF6C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _0809FBF0
|
|
bl _0809EAE0
|
|
_0809FBF0:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
bge _0809FBFE
|
|
bl _0809EAE0
|
|
_0809FBFE:
|
|
movs r0, 0
|
|
movs r1, 0xA
|
|
bl sub_80A87AC
|
|
mov r0, r9
|
|
movs r1, 0
|
|
bl sub_809D8EC
|
|
bl _080A130A
|
|
_0809FC12:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_809AFC8
|
|
bl _080A1280
|
|
_0809FC2E:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
ldr r3, [sp, 0x14]
|
|
bl sub_809B1D4
|
|
bl _080A1292
|
|
_0809FC40:
|
|
movs r0, 0
|
|
bl _080A0654
|
|
_0809FC46:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _0809FC90
|
|
adds r0, r1, 0
|
|
bl sub_80A8D54
|
|
cmp r0, 0
|
|
bne _0809FC62
|
|
bl _0809EAE0
|
|
_0809FC62:
|
|
movs r3, 0
|
|
ldr r2, _0809FC8C
|
|
adds r5, r2, 0
|
|
adds r4, r0, 0
|
|
adds r4, 0x4C
|
|
_0809FC6C:
|
|
adds r0, r3, r5
|
|
adds r1, r4, r3
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9
|
|
ble _0809FC6C
|
|
movs r0, 0
|
|
strb r0, [r2, 0xA]
|
|
movs r0, 0x4
|
|
movs r1, 0
|
|
bl sub_809B1C0
|
|
bl _080A1292
|
|
.align 2, 0
|
|
_0809FC8C: .4byte gUnknown_2039D98
|
|
_0809FC90:
|
|
ldr r2, _0809FCA0
|
|
movs r0, 0x4
|
|
movs r1, 0x1
|
|
bl sub_809B1C0
|
|
bl _080A1292
|
|
.align 2, 0
|
|
_0809FCA0: .4byte gUnknown_2039D98
|
|
_0809FCA4:
|
|
ldr r4, _0809FCC0
|
|
adds r0, r4, 0
|
|
bl sub_80920B8
|
|
movs r0, 0
|
|
strb r0, [r4, 0xA]
|
|
movs r0, 0x5
|
|
movs r1, 0
|
|
adds r2, r4, 0
|
|
bl sub_809B1C0
|
|
bl _080A1292
|
|
.align 2, 0
|
|
_0809FCC0: .4byte gUnknown_2039D98
|
|
_0809FCC4:
|
|
ldr r2, _0809FCE4
|
|
adds r3, r2, 0
|
|
movs r1, 0
|
|
adds r0, r2, 0
|
|
adds r0, 0xB
|
|
_0809FCCE:
|
|
strb r1, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r3
|
|
bge _0809FCCE
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
movs r0, 0x6
|
|
bl sub_809B1C0
|
|
bl _080A1292
|
|
.align 2, 0
|
|
_0809FCE4: .4byte gUnknown_2039D98
|
|
_0809FCE8:
|
|
bl sub_80118A4
|
|
bl _0809EAE0
|
|
_0809FCF0:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _0809FD00
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _0809FD02
|
|
_0809FD00:
|
|
movs r0, 0x1E
|
|
_0809FD02:
|
|
bl sub_80118C4
|
|
bl _0809EAE0
|
|
_0809FD0A:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0809FD1E
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80A25AC
|
|
b _0809FD20
|
|
_0809FD1E:
|
|
ldr r0, [sp, 0xC]
|
|
_0809FD20:
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, _0809FD34
|
|
cmp r1, r0
|
|
beq _0809FDA0
|
|
adds r0, r1, 0
|
|
bl sub_80118F0
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FD34: .4byte 0x000003e7
|
|
_0809FD38:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0809FD4C
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80A25AC
|
|
b _0809FD4E
|
|
_0809FD4C:
|
|
ldr r0, [sp, 0xC]
|
|
_0809FD4E:
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
ldr r0, _0809FD68
|
|
cmp r2, r0
|
|
beq _0809FDA0
|
|
add r0, sp, 0x8
|
|
ldrh r1, [r0, 0x2]
|
|
adds r0, r2, 0
|
|
bl sub_8011900
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FD68: .4byte 0x000003e7
|
|
_0809FD6C:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
cmp r0, 0
|
|
bne _0809FD80
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_80A25AC
|
|
b _0809FD82
|
|
_0809FD80:
|
|
ldr r0, [sp, 0xC]
|
|
_0809FD82:
|
|
lsls r0, 16
|
|
lsrs r1, r0, 16
|
|
ldr r0, _0809FD9C
|
|
cmp r1, r0
|
|
bne _0809FD90
|
|
bl _0809EAE0
|
|
_0809FD90:
|
|
adds r0, r1, 0
|
|
bl sub_8011914
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_0809FD9C: .4byte 0x000003e7
|
|
_0809FDA0:
|
|
bl sub_8011924
|
|
bl _0809EAE0
|
|
_0809FDA8:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _0809FDB8
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _0809FDBA
|
|
_0809FDB8:
|
|
movs r0, 0x1E
|
|
_0809FDBA:
|
|
bl sub_8011930
|
|
bl _0809EAE0
|
|
_0809FDC2:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
movs r1, 0x80
|
|
lsls r1, 1
|
|
bl sub_8011974
|
|
bl _0809EAE0
|
|
_0809FDD4:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
bl sub_801199C
|
|
bl _0809EAE0
|
|
_0809FDE2:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
lsrs r2, r0, 16
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _0809FDF8
|
|
add r0, sp, 0x8
|
|
ldrh r1, [r0, 0x2]
|
|
b _0809FDFA
|
|
_0809FDF8:
|
|
movs r1, 0x1E
|
|
_0809FDFA:
|
|
adds r0, r2, 0
|
|
bl sub_80119AC
|
|
bl _0809EAE0
|
|
_0809FE04:
|
|
mov r1, r9
|
|
adds r1, 0x84
|
|
movs r5, 0
|
|
ldrsh r0, [r1, r5]
|
|
cmp r0, 0x1
|
|
bne _0809FE16
|
|
adds r0, r1, 0
|
|
bl sub_809D568
|
|
_0809FE16:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r1, 0x1C]
|
|
movs r1, 0
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FE28:
|
|
mov r0, r9
|
|
adds r0, 0xC
|
|
bl sub_809D52C
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _0809FE3A
|
|
bl _0809EAE0
|
|
_0809FE3A:
|
|
ldr r1, [r4]
|
|
mov r2, r9
|
|
ldr r0, [r2, 0x4]
|
|
add r5, sp, 0xA4
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r1, [r4]
|
|
mov r3, r9
|
|
ldr r0, [r3, 0x4]
|
|
mov r4, sp
|
|
adds r4, 0x4D
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldrb r0, [r4]
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
mov r1, r9
|
|
ldr r2, [r1]
|
|
ldr r0, [r1, 0x4]
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FE86:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r6, sp, 0xAC
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
add r4, sp, 0xB4
|
|
add r5, sp, 0xBC
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_80AD914
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r3, [r1, 0x20]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl _call_via_r3
|
|
bl _0809EAE0
|
|
_0809FEBE:
|
|
mov r1, r9
|
|
ldr r2, [r1]
|
|
ldr r0, [r1, 0x4]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [r2, 0x3C]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FED0:
|
|
ldr r0, [sp, 0xC]
|
|
movs r1, 0x80
|
|
lsls r1, 3
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _0809FEEE
|
|
mov r1, r9
|
|
adds r1, 0x84
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _0809FEEE
|
|
adds r0, r1, 0
|
|
bl sub_809D568
|
|
_0809FEEE:
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [r2, 0x40]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FF00:
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
ldr r2, [r2, 0x14]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
ldrh r1, [r0, 0x2]
|
|
cmp r1, 0
|
|
beq _0809FF1E
|
|
mov r0, r9
|
|
adds r0, 0x48
|
|
strh r1, [r0]
|
|
_0809FF1E:
|
|
mov r5, r9
|
|
ldr r2, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
ldr r2, [r2, 0x30]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FF32:
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
ldr r2, [r2, 0x34]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FF46:
|
|
mov r1, r9
|
|
ldr r3, [r1]
|
|
ldr r0, [r1, 0x4]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
add r2, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r2, r4]
|
|
ldr r3, [r3, 0x38]
|
|
bl _call_via_r3
|
|
bl _0809EAE0
|
|
_0809FF62:
|
|
mov r5, r9
|
|
ldr r2, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r1, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
ldr r2, [r2, 0x44]
|
|
bl _call_via_r2
|
|
bl _0809EAE0
|
|
_0809FF78:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 8
|
|
add r1, sp, 0xC4
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0x10]
|
|
lsls r0, 8
|
|
str r0, [r1, 0x4]
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
ldr r2, [r2, 0x24]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
mov r5, r10
|
|
b _080A05EA
|
|
_0809FF9A:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
lsls r0, 8
|
|
add r1, sp, 0xCC
|
|
str r0, [r1]
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 8
|
|
str r0, [r1, 0x4]
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r2, [r2, 0x48]
|
|
bl _call_via_r2
|
|
b _080A0650
|
|
_0809FFBA:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl OtherRandomCapped
|
|
lsls r0, 8
|
|
add r4, sp, 0xD4
|
|
str r0, [r4]
|
|
ldr r0, [sp, 0xC]
|
|
bl OtherRandomCapped
|
|
lsls r0, 8
|
|
str r0, [r4, 0x4]
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
b _080A07B4
|
|
_0809FFE4:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r4, sp, 0xDC
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
b _080A0650
|
|
_080A0010:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r6, sp, 0xE4
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
add r4, sp, 0xEC
|
|
add r5, sp, 0xF4
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r6, 0
|
|
bl sub_80AD914
|
|
ldr r0, [r5]
|
|
ldr r1, [r4]
|
|
subs r0, r1
|
|
bl OtherRandomCapped
|
|
ldr r1, [r4]
|
|
adds r1, r0
|
|
str r1, [r6]
|
|
ldr r0, [r5, 0x4]
|
|
ldr r1, [r4, 0x4]
|
|
subs r0, r1
|
|
bl OtherRandomCapped
|
|
ldr r1, [r4, 0x4]
|
|
adds r1, r0
|
|
str r1, [r6, 0x4]
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
b _080A07B4
|
|
_080A0064:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080A007A
|
|
bl _0809EAE0
|
|
_080A007A:
|
|
add r4, sp, 0xFC
|
|
adds r1, r4, 0
|
|
bl sub_80A8FD8
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
b _080A03F0
|
|
_080A0096:
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x32
|
|
bl sub_8001784
|
|
add r5, sp, 0x104
|
|
str r0, [r5]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x33
|
|
bl sub_8001784
|
|
str r0, [r5, 0x4]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x34
|
|
bl sub_8001784
|
|
adds r6, r0, 0
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
movs r1, 0x35
|
|
bl sub_8001784
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
asrs r4, 24
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r2, [r1, 0x28]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
mov r0, r9
|
|
adds r0, 0x4A
|
|
strb r4, [r0]
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r2, [r1, 0x2C]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
b _080A0650
|
|
_080A010E:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r4, sp, 0x10C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r3, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r1, sp, 0x114
|
|
add r2, sp, 0x118
|
|
ldr r3, [r3, 0x10]
|
|
bl _call_via_r3
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
mov r5, sp
|
|
adds r5, 0x4E
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
add r0, sp, 0x10C
|
|
ldr r3, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x32
|
|
bl sub_800199C
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r3, [r4, 0x4]
|
|
movs r0, 0
|
|
movs r1, 0x33
|
|
bl sub_800199C
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
add r0, sp, 0x114
|
|
ldr r3, [r0]
|
|
movs r0, 0
|
|
movs r1, 0x34
|
|
bl sub_800199C
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r3, 0
|
|
ldrsb r3, [r5, r3]
|
|
movs r0, 0
|
|
movs r1, 0x35
|
|
bl sub_800199C
|
|
bl _0809EAE0
|
|
_080A0186:
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 8
|
|
ldr r2, [r2, 0x28]
|
|
bl _call_via_r2
|
|
b _080A07B4
|
|
_080A0198:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 8
|
|
mov r2, r10
|
|
str r0, [r2, 0x3C]
|
|
ldr r0, [sp, 0x10]
|
|
lsls r0, 8
|
|
str r0, [r2, 0x40]
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
str r0, [r2, 0x30]
|
|
ldr r0, _080A01B4
|
|
bl _080A12AE
|
|
.align 2, 0
|
|
_080A01B4: .4byte 0x0000ffff
|
|
_080A01B8:
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
add r4, sp, 0x11C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 8
|
|
add r0, sp, 0x11C
|
|
ldr r0, [r0]
|
|
adds r0, r1
|
|
mov r5, r10
|
|
str r0, [r5, 0x3C]
|
|
ldr r1, [sp, 0x10]
|
|
lsls r1, 8
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, r1
|
|
str r0, [r5, 0x40]
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [r5, 0x30]
|
|
ldr r0, _080A01EC
|
|
b _080A05EA
|
|
.align 2, 0
|
|
_080A01EC: .4byte 0x0000ffff
|
|
_080A01F0:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
mov r4, r10
|
|
adds r4, 0x3C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
mov r4, r10
|
|
str r0, [r4, 0x30]
|
|
ldr r0, _080A021C
|
|
b _080A0656
|
|
.align 2, 0
|
|
_080A021C: .4byte 0x0000ffff
|
|
_080A0220:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
mov r4, r10
|
|
adds r4, 0x3C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
mov r2, r10
|
|
str r0, [r2, 0x30]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A12AE
|
|
_080A0250:
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
mov r4, r10
|
|
adds r4, 0x3C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
mov r5, r10
|
|
str r0, [r5, 0x30]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl OtherRandomCapped
|
|
b _080A05EA
|
|
_080A0282:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080A0298
|
|
bl _0809EAE0
|
|
_080A0298:
|
|
mov r1, r10
|
|
adds r1, 0x3C
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
mov r2, r10
|
|
str r0, [r2, 0x30]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
bl _080A12AE
|
|
_080A02B2:
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
mov r1, r10
|
|
adds r1, 0x34
|
|
ldr r2, [r2, 0xC]
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r1, r0, 8
|
|
mov r4, r10
|
|
str r1, [r4, 0x3C]
|
|
ldr r0, [sp, 0x10]
|
|
lsls r2, r0, 8
|
|
str r2, [r4, 0x40]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7D
|
|
beq _080A02DC
|
|
cmp r0, 0x83
|
|
bne _080A0304
|
|
_080A02DC:
|
|
mov r5, r10
|
|
ldr r0, [r5, 0x34]
|
|
subs r0, r1, r0
|
|
ldr r1, [r5, 0x38]
|
|
subs r1, r2, r1
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl __divsi3
|
|
strh r0, [r5, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A0300
|
|
bl _0809F0C4
|
|
_080A0300:
|
|
movs r0, 0x1
|
|
b _080A05EA
|
|
_080A0304:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
mov r3, r10
|
|
strh r0, [r3, 0x2A]
|
|
bl _0809F0C4
|
|
_080A0310:
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
mov r1, r10
|
|
adds r1, 0x34
|
|
ldr r2, [r2, 0xC]
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 8
|
|
mov r5, r10
|
|
ldr r4, [r5, 0x34]
|
|
adds r3, r4, r0
|
|
str r3, [r5, 0x3C]
|
|
ldr r0, [sp, 0x10]
|
|
lsls r0, 8
|
|
ldr r2, [r5, 0x38]
|
|
adds r1, r2, r0
|
|
str r1, [r5, 0x40]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7E
|
|
beq _080A0342
|
|
cmp r0, 0x84
|
|
bne _080A036A
|
|
_080A0342:
|
|
subs r0, r3, r4
|
|
subs r1, r2
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl __divsi3
|
|
mov r3, r10
|
|
strh r0, [r3, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A0362
|
|
bl _0809F0C4
|
|
_080A0362:
|
|
movs r0, 0x1
|
|
strh r0, [r3, 0x2A]
|
|
bl _0809F0C4
|
|
_080A036A:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _080A0654
|
|
_080A0370:
|
|
ldr r4, [sp, 0xC]
|
|
lsls r4, 1
|
|
subs r4, 0x1
|
|
ldr r5, [sp, 0x10]
|
|
lsls r5, 1
|
|
subs r5, 0x1
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
mov r1, r10
|
|
adds r1, 0x34
|
|
ldr r2, [r2, 0xC]
|
|
bl _call_via_r2
|
|
adds r0, r4, 0
|
|
bl OtherRandomCapped
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
mov r3, r10
|
|
ldr r1, [r3, 0x34]
|
|
adds r1, r0
|
|
str r1, [r3, 0x3C]
|
|
adds r0, r5, 0
|
|
bl OtherRandomCapped
|
|
ldr r1, [sp, 0xC]
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
mov r4, r10
|
|
ldr r3, [r4, 0x38]
|
|
adds r2, r3, r0
|
|
str r2, [r4, 0x40]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x7F
|
|
beq _080A03C4
|
|
cmp r0, 0x85
|
|
bne _080A03EC
|
|
_080A03C4:
|
|
mov r5, r10
|
|
ldr r0, [r5, 0x3C]
|
|
ldr r1, [r5, 0x34]
|
|
subs r0, r1
|
|
subs r1, r2, r3
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl __divsi3
|
|
strh r0, [r5, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A03E8
|
|
bl _0809F0C4
|
|
_080A03E8:
|
|
movs r0, 0x1
|
|
b _080A05EA
|
|
_080A03EC:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
_080A03F0:
|
|
mov r3, r10
|
|
strh r0, [r3, 0x2A]
|
|
bl _0809F0C4
|
|
_080A03F8:
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
mov r1, r10
|
|
adds r1, 0x34
|
|
ldr r2, [r2, 0xC]
|
|
bl _call_via_r2
|
|
mov r5, r10
|
|
ldr r0, [r5, 0x34]
|
|
ldr r1, [r5, 0x38]
|
|
mov r2, r10
|
|
str r0, [r2, 0x3C]
|
|
str r1, [r2, 0x40]
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r1, r10
|
|
adds r1, 0x3C
|
|
bl sub_80AD8B4
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x80
|
|
beq _080A042E
|
|
cmp r0, 0x86
|
|
bne _080A045C
|
|
_080A042E:
|
|
mov r3, r10
|
|
ldr r0, [r3, 0x3C]
|
|
ldr r1, [r3, 0x34]
|
|
subs r0, r1
|
|
ldr r1, [r3, 0x40]
|
|
ldr r2, [r3, 0x38]
|
|
subs r1, r2
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r1, r4]
|
|
bl __divsi3
|
|
mov r5, r10
|
|
strh r0, [r5, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A0458
|
|
bl _0809F0C4
|
|
_080A0458:
|
|
movs r0, 0x1
|
|
b _080A05EA
|
|
_080A045C:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _080A07B8
|
|
_080A0462:
|
|
ldr r4, [sp, 0xC]
|
|
lsls r4, 1
|
|
subs r4, 0x1
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
mov r5, r10
|
|
adds r5, 0x3C
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0x10]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r5, 0
|
|
bl sub_80AD8B4
|
|
adds r0, r4, 0
|
|
bl OtherRandomCapped
|
|
add r1, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
mov r5, r10
|
|
ldr r1, [r5, 0x3C]
|
|
adds r1, r0
|
|
str r1, [r5, 0x3C]
|
|
adds r0, r4, 0
|
|
bl OtherRandomCapped
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
subs r0, r1
|
|
lsls r0, 8
|
|
ldr r1, [r5, 0x40]
|
|
adds r2, r1, r0
|
|
str r2, [r5, 0x40]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x81
|
|
beq _080A04C0
|
|
cmp r0, 0x87
|
|
bne _080A04EC
|
|
_080A04C0:
|
|
mov r3, r10
|
|
ldr r0, [r3, 0x3C]
|
|
ldr r1, [r3, 0x34]
|
|
subs r0, r1
|
|
ldr r1, [r3, 0x38]
|
|
subs r1, r2, r1
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r1, r4]
|
|
bl __divsi3
|
|
mov r5, r10
|
|
strh r0, [r5, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A04E8
|
|
bl _0809F0C4
|
|
_080A04E8:
|
|
movs r0, 0x1
|
|
b _080A05EA
|
|
_080A04EC:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _080A07B8
|
|
_080A04F2:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
bge _080A0508
|
|
bl _0809EAE0
|
|
_080A0508:
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
mov r1, r10
|
|
adds r1, 0x34
|
|
ldr r2, [r2, 0xC]
|
|
bl _call_via_r2
|
|
mov r1, r10
|
|
adds r1, 0x3C
|
|
adds r0, r4, 0
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x82
|
|
beq _080A052E
|
|
cmp r0, 0x88
|
|
bne _080A055A
|
|
_080A052E:
|
|
mov r4, r10
|
|
ldr r0, [r4, 0x3C]
|
|
ldr r1, [r4, 0x34]
|
|
subs r0, r1
|
|
ldr r1, [r4, 0x40]
|
|
ldr r2, [r4, 0x38]
|
|
subs r1, r2
|
|
bl sub_8009FB8
|
|
add r1, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r1, r5]
|
|
bl __divsi3
|
|
strh r0, [r4, 0x2A]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
ble _080A0556
|
|
bl _0809F0C4
|
|
_080A0556:
|
|
movs r0, 0x1
|
|
b _080A0656
|
|
_080A055A:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
b _080A07B8
|
|
_080A0560:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 8
|
|
mov r2, r10
|
|
str r0, [r2, 0x48]
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
str r0, [r2, 0x30]
|
|
ldr r0, _080A0578
|
|
bl _080A12AE
|
|
.align 2, 0
|
|
_080A0578: .4byte 0x0000ffff
|
|
_080A057C:
|
|
ldr r1, [sp, 0xC]
|
|
mov r0, r9
|
|
adds r0, 0x4A
|
|
strb r1, [r0]
|
|
mov r4, r9
|
|
ldr r2, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
mov r1, r10
|
|
str r0, [r1, 0x30]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
b _080A07BA
|
|
_080A05A4:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
mov r4, sp
|
|
adds r4, 0x4F
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8002984
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
mov r5, r10
|
|
str r0, [r5, 0x30]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
_080A05EA:
|
|
strh r0, [r5, 0x2A]
|
|
bl _0809F0C4
|
|
_080A05F0:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
_080A0600:
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
b _080A07B4
|
|
_080A060E:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _080A0650
|
|
add r4, sp, 0x50
|
|
adds r1, r4, 0
|
|
bl sub_80A9050
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8002984
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
_080A0650:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
_080A0654:
|
|
mov r4, r10
|
|
_080A0656:
|
|
strh r0, [r4, 0x2A]
|
|
bl _0809F0C4
|
|
_080A065C:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
mov r4, sp
|
|
adds r4, 0x51
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8002984
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
ldr r2, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
b _080A0600
|
|
_080A068A:
|
|
movs r5, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x8F
|
|
beq _080A06CA
|
|
cmp r0, 0x8F
|
|
bgt _080A069E
|
|
cmp r0, 0x8E
|
|
beq _080A06A4
|
|
b _080A0724
|
|
_080A069E:
|
|
cmp r0, 0x90
|
|
beq _080A06F8
|
|
b _080A0724
|
|
_080A06A4:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
cmp r4, 0
|
|
blt _080A0724
|
|
movs r5, 0x1
|
|
add r1, sp, 0x124
|
|
adds r0, r4, 0
|
|
bl sub_80A8FD8
|
|
add r1, sp, 0x12C
|
|
adds r0, r4, 0
|
|
bl sub_80A8F9C
|
|
b _080A0724
|
|
_080A06CA:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
blt _080A0724
|
|
movs r5, 0x1
|
|
add r1, sp, 0x124
|
|
bl sub_80A8FD8
|
|
ldr r0, _080A06F4
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
add r2, sp, 0x12C
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
b _080A0724
|
|
.align 2, 0
|
|
_080A06F4: .4byte gUnknown_81164DC
|
|
_080A06F8:
|
|
movs r5, 0x1
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
add r4, sp, 0x124
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
mov r3, r9
|
|
ldr r2, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
add r1, sp, 0x12C
|
|
ldr r2, [r2, 0x8]
|
|
bl _call_via_r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r1, r4, 0
|
|
bl sub_80AD8B4
|
|
_080A0724:
|
|
cmp r5, 0
|
|
beq _080A07B4
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
add r5, sp, 0x134
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
add r4, sp, 0x13C
|
|
ldr r2, [r1, 0x8]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r7, sp, 0x124
|
|
add r3, sp, 0x12C
|
|
adds r0, r5, 0
|
|
adds r1, r4, 0
|
|
adds r2, r7, 0
|
|
bl sub_8002DF0
|
|
mov r1, sp
|
|
adds r1, 0x52
|
|
strb r0, [r1]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
movs r4, 0
|
|
ldrsb r4, [r1, r4]
|
|
adds r6, r1, 0
|
|
cmp r4, r0
|
|
bne _080A078C
|
|
ldr r3, _080A07C0
|
|
adds r0, r5, 0
|
|
adds r1, r3, 0
|
|
adds r2, r7, 0
|
|
bl sub_8002D54
|
|
strb r0, [r6]
|
|
movs r0, 0
|
|
ldrsb r0, [r6, r0]
|
|
cmp r0, r4
|
|
bne _080A078C
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
_080A078C:
|
|
movs r0, 0
|
|
ldrsb r0, [r6, r0]
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8002984
|
|
mov r1, r9
|
|
adds r1, 0x4A
|
|
strb r0, [r1]
|
|
mov r0, r9
|
|
ldr r2, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldrb r1, [r1]
|
|
lsls r1, 24
|
|
asrs r1, 24
|
|
ldr r2, [r2, 0x2C]
|
|
bl _call_via_r2
|
|
_080A07B4:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
_080A07B8:
|
|
mov r1, r10
|
|
_080A07BA:
|
|
strh r0, [r1, 0x2A]
|
|
bl _0809F0C4
|
|
.align 2, 0
|
|
_080A07C0: .4byte gUnknown_81164DC
|
|
_080A07C4:
|
|
movs r0, 0
|
|
bl _080A12AC
|
|
_080A07CA:
|
|
ldr r0, [sp, 0xC]
|
|
mov r1, r9
|
|
adds r1, 0x71
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
mov r3, r10
|
|
strh r2, [r3, 0x2A]
|
|
bl _0809F0C4
|
|
_080A07DC:
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
mov r4, sp
|
|
adds r4, 0x53
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r0, 0
|
|
ldrsb r0, [r4, r0]
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
bl sub_8002984
|
|
mov r1, r9
|
|
adds r1, 0x71
|
|
movs r2, 0
|
|
strb r0, [r1]
|
|
mov r5, r10
|
|
strh r2, [r5, 0x2A]
|
|
bl _0809F0C4
|
|
_080A080C:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
bl sub_809D124
|
|
bl _0809EAE0
|
|
_080A081E:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
mov r3, r9
|
|
movs r4, 0x8
|
|
ldrsh r0, [r3, r4]
|
|
cmp r0, 0x2
|
|
beq _080A0856
|
|
cmp r0, 0x2
|
|
bgt _080A0844
|
|
cmp r0, 0x1
|
|
beq _080A084C
|
|
bl _0809EAE0
|
|
_080A0844:
|
|
cmp r0, 0x3
|
|
beq _080A0860
|
|
bl _0809EAE0
|
|
_080A084C:
|
|
movs r0, 0x1
|
|
bl sub_809D170
|
|
bl _0809EAE0
|
|
_080A0856:
|
|
movs r0, 0x2
|
|
bl sub_809D170
|
|
bl _0809EAE0
|
|
_080A0860:
|
|
movs r0, 0x3
|
|
bl sub_809D170
|
|
bl _0809EAE0
|
|
_080A086A:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
movs r2, 0x8
|
|
ldrsh r1, [r5, r2]
|
|
cmp r1, 0x2
|
|
beq _080A08A0
|
|
cmp r1, 0x2
|
|
bgt _080A088E
|
|
cmp r1, 0x1
|
|
beq _080A0896
|
|
bl _0809EAE0
|
|
_080A088E:
|
|
cmp r1, 0x3
|
|
beq _080A08AA
|
|
bl _0809EAE0
|
|
_080A0896:
|
|
add r4, sp, 0x144
|
|
adds r1, r4, 0
|
|
bl sub_80A8FD8
|
|
b _080A08B2
|
|
_080A08A0:
|
|
add r4, sp, 0x144
|
|
adds r1, r4, 0
|
|
bl sub_80AC448
|
|
b _080A08B2
|
|
_080A08AA:
|
|
add r4, sp, 0x144
|
|
adds r1, r4, 0
|
|
bl sub_80AD360
|
|
_080A08B2:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_809D158
|
|
bl _0809EAE0
|
|
_080A08BE:
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
bl sub_809D170
|
|
bl _0809EAE0
|
|
_080A08CA:
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bge _080A08E2
|
|
bl _0809EAE0
|
|
_080A08E2:
|
|
mov r4, r9
|
|
movs r5, 0x8
|
|
ldrsh r0, [r4, r5]
|
|
cmp r0, 0x2
|
|
beq _080A090A
|
|
cmp r0, 0x2
|
|
bgt _080A08F8
|
|
cmp r0, 0x1
|
|
beq _080A0900
|
|
bl _0809EAE0
|
|
_080A08F8:
|
|
cmp r0, 0x3
|
|
beq _080A0914
|
|
bl _0809EAE0
|
|
_080A0900:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
movs r0, 0x1
|
|
b _080A0990
|
|
_080A090A:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x2
|
|
b _080A0990
|
|
_080A0914:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
movs r0, 0x3
|
|
b _080A0990
|
|
_080A091E:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r9
|
|
movs r3, 0x8
|
|
ldrsh r1, [r2, r3]
|
|
cmp r1, 0x2
|
|
beq _080A095C
|
|
cmp r1, 0x2
|
|
bgt _080A0944
|
|
cmp r1, 0x1
|
|
beq _080A094C
|
|
bl _0809EAE0
|
|
_080A0944:
|
|
cmp r1, 0x3
|
|
beq _080A096C
|
|
bl _0809EAE0
|
|
_080A094C:
|
|
add r4, sp, 0x14C
|
|
adds r1, r4, 0
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
b _080A097A
|
|
_080A095C:
|
|
add r4, sp, 0x14C
|
|
adds r1, r4, 0
|
|
bl sub_80AC448
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r2, [r0, r1]
|
|
b _080A097A
|
|
_080A096C:
|
|
add r4, sp, 0x14C
|
|
adds r1, r4, 0
|
|
bl sub_80AD360
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
_080A097A:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_809D190
|
|
bl _0809F0C4
|
|
_080A0986:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
_080A0990:
|
|
bl sub_809D1A8
|
|
bl _0809F0C4
|
|
_080A0998:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bge _080A09B0
|
|
bl _0809EAE0
|
|
_080A09B0:
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x2
|
|
beq _080A09D6
|
|
cmp r0, 0x2
|
|
bgt _080A09C4
|
|
cmp r0, 0x1
|
|
beq _080A09CC
|
|
bl _0809EAE0
|
|
_080A09C4:
|
|
cmp r0, 0x3
|
|
beq _080A09E0
|
|
bl _0809EAE0
|
|
_080A09CC:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
movs r0, 0x1
|
|
b _080A0A5C
|
|
_080A09D6:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x2
|
|
b _080A0A5C
|
|
_080A09E0:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
movs r0, 0x3
|
|
b _080A0A5C
|
|
_080A09EA:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r9
|
|
movs r3, 0x8
|
|
ldrsh r1, [r2, r3]
|
|
cmp r1, 0x2
|
|
beq _080A0A28
|
|
cmp r1, 0x2
|
|
bgt _080A0A10
|
|
cmp r1, 0x1
|
|
beq _080A0A18
|
|
bl _0809EAE0
|
|
_080A0A10:
|
|
cmp r1, 0x3
|
|
beq _080A0A38
|
|
bl _0809EAE0
|
|
_080A0A18:
|
|
add r4, sp, 0x154
|
|
adds r1, r4, 0
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
b _080A0A46
|
|
_080A0A28:
|
|
add r4, sp, 0x154
|
|
adds r1, r4, 0
|
|
bl sub_80AC448
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r2, [r0, r1]
|
|
b _080A0A46
|
|
_080A0A38:
|
|
add r4, sp, 0x154
|
|
adds r1, r4, 0
|
|
bl sub_80AD360
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
_080A0A46:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_809D1CC
|
|
bl _0809F0C4
|
|
_080A0A52:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
_080A0A5C:
|
|
bl sub_809D1E4
|
|
bl _0809F0C4
|
|
_080A0A64:
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bge _080A0A7C
|
|
bl _0809EAE0
|
|
_080A0A7C:
|
|
movs r2, 0x8
|
|
ldrsh r0, [r5, r2]
|
|
cmp r0, 0x2
|
|
beq _080A0AA2
|
|
cmp r0, 0x2
|
|
bgt _080A0A90
|
|
cmp r0, 0x1
|
|
beq _080A0A98
|
|
bl _0809EAE0
|
|
_080A0A90:
|
|
cmp r0, 0x3
|
|
beq _080A0AAC
|
|
bl _0809EAE0
|
|
_080A0A98:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
movs r0, 0x1
|
|
b _080A0B28
|
|
_080A0AA2:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x2
|
|
b _080A0B28
|
|
_080A0AAC:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
movs r0, 0x3
|
|
b _080A0B28
|
|
_080A0AB6:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
ldr r1, [r1, 0x4]
|
|
bl _call_via_r1
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
mov r2, r9
|
|
movs r3, 0x8
|
|
ldrsh r1, [r2, r3]
|
|
cmp r1, 0x2
|
|
beq _080A0AF4
|
|
cmp r1, 0x2
|
|
bgt _080A0ADC
|
|
cmp r1, 0x1
|
|
beq _080A0AE4
|
|
bl _0809EAE0
|
|
_080A0ADC:
|
|
cmp r1, 0x3
|
|
beq _080A0B04
|
|
bl _0809EAE0
|
|
_080A0AE4:
|
|
add r4, sp, 0x15C
|
|
adds r1, r4, 0
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
b _080A0B12
|
|
_080A0AF4:
|
|
add r4, sp, 0x15C
|
|
adds r1, r4, 0
|
|
bl sub_80AC448
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r2, [r0, r1]
|
|
b _080A0B12
|
|
_080A0B04:
|
|
add r4, sp, 0x15C
|
|
adds r1, r4, 0
|
|
bl sub_80AD360
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
_080A0B12:
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_809D208
|
|
bl _0809F0C4
|
|
_080A0B1E:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0x1
|
|
movs r1, 0
|
|
_080A0B28:
|
|
bl sub_809D220
|
|
bl _0809F0C4
|
|
_080A0B30:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r1, r5]
|
|
bl sub_8001570
|
|
bl _0809EAE0
|
|
_080A0B42:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_80015C0
|
|
bl _0809EAE0
|
|
_080A0B54:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r1, r3]
|
|
ldr r2, [sp, 0xC]
|
|
add r3, sp, 0x8
|
|
ldrb r3, [r3, 0x1]
|
|
bl sub_800226C
|
|
bl _0809EAE0
|
|
_080A0B6C:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r1, r4]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
add r3, sp, 0x8
|
|
ldrb r3, [r3, 0x1]
|
|
bl sub_80022A0
|
|
bl _0809EAE0
|
|
_080A0B88:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r1, r5]
|
|
ldr r2, [sp, 0xC]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
ldr r3, [sp, 0x10]
|
|
bl sub_800199C
|
|
bl _0809EAE0
|
|
_080A0BA2:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
bl sub_8001BB4
|
|
bl _0809EAE0
|
|
_080A0BB4:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
add r1, sp, 0x164
|
|
add r2, sp, 0x168
|
|
bl sub_8001B88
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
add r1, sp, 0x164
|
|
ldr r1, [r1]
|
|
add r2, sp, 0x168
|
|
ldr r2, [r2]
|
|
adds r2, 0x1
|
|
bl sub_8001BB4
|
|
bl _0809EAE0
|
|
_080A0BDA:
|
|
ldr r2, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r1, 0x13
|
|
bl sub_80018D8
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r2, [r0, r4]
|
|
movs r0, 0
|
|
movs r1, 0x16
|
|
bl sub_80018D8
|
|
bl _0809EAE0
|
|
_080A0BF6:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r2, [r0, r5]
|
|
movs r0, 0
|
|
movs r1, 0x1C
|
|
bl sub_80018D8
|
|
bl _0809EAE0
|
|
_080A0C08:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
add r1, sp, 0x8
|
|
ldrb r2, [r1, 0x1]
|
|
negs r1, r2
|
|
orrs r1, r2
|
|
lsrs r1, 31
|
|
bl sub_80026E8
|
|
bl _0809EAE0
|
|
_080A0C20:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r0, [r0, r2]
|
|
add r1, sp, 0x8
|
|
ldrb r2, [r1, 0x1]
|
|
negs r1, r2
|
|
orrs r1, r2
|
|
lsrs r1, 31
|
|
bl sub_809733C
|
|
bl _0809EAE0
|
|
_080A0C38:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
add r1, sp, 0x8
|
|
ldrb r2, [r1, 0x1]
|
|
negs r1, r2
|
|
orrs r1, r2
|
|
lsrs r1, 31
|
|
bl sub_80973A8
|
|
bl _0809EAE0
|
|
_080A0C50:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
add r1, sp, 0x8
|
|
ldrb r2, [r1, 0x1]
|
|
negs r1, r2
|
|
orrs r1, r2
|
|
lsrs r1, 31
|
|
bl sub_8097418
|
|
bl _0809EAE0
|
|
_080A0C68:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
add r1, sp, 0x8
|
|
ldrb r2, [r1, 0x1]
|
|
negs r1, r2
|
|
orrs r1, r2
|
|
lsrs r1, 31
|
|
bl sub_80975A8
|
|
bl _0809EAE0
|
|
_080A0C80:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80976F8
|
|
bl _0809EAE0
|
|
_080A0C90:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
ldr r2, [sp, 0xC]
|
|
movs r0, 0
|
|
movs r3, 0x2
|
|
bl sub_80022F8
|
|
b _080A0E1E
|
|
_080A0CA2:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, [sp, 0x10]
|
|
add r3, sp, 0x8
|
|
ldrb r3, [r3, 0x1]
|
|
bl sub_80022F8
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0CC0
|
|
bl _0809EAE0
|
|
_080A0CC0:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
b _080A0D5C
|
|
_080A0CC8:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, [sp, 0x10]
|
|
lsls r2, 16
|
|
asrs r2, 16
|
|
add r3, sp, 0x8
|
|
ldrb r3, [r3, 0x1]
|
|
bl sub_8002318
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0CEA
|
|
bl _0809EAE0
|
|
_080A0CEA:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
b _080A0E2C
|
|
_080A0CF2:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
ldr r2, [sp, 0x10]
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
bne _080A0D0E
|
|
bl _0809EAE0
|
|
_080A0D0E:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
b _080A0D5C
|
|
_080A0D16:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8001AB0
|
|
ldr r1, [sp, 0x10]
|
|
add r2, sp, 0x8
|
|
ldrb r2, [r2, 0x1]
|
|
bl FlagJudge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0D38
|
|
bl _0809EAE0
|
|
_080A0D38:
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
b _080A0E2C
|
|
_080A0D40:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r0, [r0, r4]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
bl sub_8001CC4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0D58
|
|
bl _0809EAE0
|
|
_080A0D58:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
_080A0D5C:
|
|
mov r0, r9
|
|
bl sub_80A242C
|
|
mov r5, r10
|
|
str r0, [r5, 0x4]
|
|
bl _0809EAE0
|
|
_080A0D6A:
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
bl sub_8001D08
|
|
b _080A0DBA
|
|
_080A0D7A:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
ldr r1, [sp, 0xC]
|
|
ldr r2, [sp, 0x10]
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0D92
|
|
bl _0809EAE0
|
|
_080A0D92:
|
|
b _080A0DF6
|
|
_080A0D94:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0DA8
|
|
bl _0809EAE0
|
|
_080A0DA8:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
b _080A132A
|
|
_080A0DAE:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8098100
|
|
_080A0DBA:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0DC4
|
|
bl _0809EAE0
|
|
_080A0DC4:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
mov r0, r9
|
|
bl sub_80A242C
|
|
mov r2, r10
|
|
str r0, [r2, 0x4]
|
|
bl _0809EAE0
|
|
_080A0DD6:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80026CC
|
|
b _080A0E1E
|
|
_080A0DE2:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_809CBA4
|
|
cmp r0, 0
|
|
bgt _080A0DF6
|
|
bl _0809EAE0
|
|
_080A0DF6:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
mov r0, r9
|
|
bl sub_80A242C
|
|
mov r4, r10
|
|
str r0, [r4, 0x4]
|
|
bl _0809EAE0
|
|
_080A0E08:
|
|
mov r5, r9
|
|
movs r1, 0x8
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, 0x1
|
|
beq _080A0E16
|
|
bl _0809EAE0
|
|
_080A0E16:
|
|
movs r2, 0xA
|
|
ldrsh r0, [r5, r2]
|
|
bl sub_80A8C98
|
|
_080A0E1E:
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A0E28
|
|
bl _0809EAE0
|
|
_080A0E28:
|
|
add r0, sp, 0x8
|
|
ldrb r1, [r0, 0x1]
|
|
_080A0E2C:
|
|
mov r0, r9
|
|
bl sub_80A242C
|
|
mov r3, r10
|
|
str r0, [r3, 0x4]
|
|
bl _0809EAE0
|
|
_080A0E3A:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8091130
|
|
cmp r0, 0
|
|
bge _080A0E4E
|
|
bl _0809EAE0
|
|
_080A0E4E:
|
|
bl sub_80911F8
|
|
bl _0809EAE0
|
|
_080A0E56:
|
|
add r0, sp, 0x8
|
|
ldrb r2, [r0]
|
|
adds r0, r2, 0
|
|
subs r0, 0xC0
|
|
cmp r0, 0xB
|
|
bls _080A0E64
|
|
b _080A1088
|
|
_080A0E64:
|
|
lsls r0, 2
|
|
ldr r1, _080A0E70
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A0E70: .4byte _080A0E74
|
|
.align 2, 0
|
|
_080A0E74:
|
|
.4byte _080A0EA4
|
|
.4byte _080A0EB6
|
|
.4byte _080A0ECC
|
|
.4byte _080A0EFA
|
|
.4byte _080A0F08
|
|
.4byte _080A0F14
|
|
.4byte _080A0F26
|
|
.4byte _080A0F36
|
|
.4byte _080A0F98
|
|
.4byte _080A1008
|
|
.4byte _080A0F4C
|
|
.4byte _080A107A
|
|
_080A0EA4:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r1, r4]
|
|
bl sub_8001658
|
|
adds r1, r0, 0
|
|
b _080A1098
|
|
_080A0EB6:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r1, r5]
|
|
bl sub_8001658
|
|
ldr r1, [sp, 0xC]
|
|
add r2, sp, 0x8
|
|
ldrb r2, [r2, 0x1]
|
|
b _080A0EF2
|
|
_080A0ECC:
|
|
mov r4, r10
|
|
adds r4, 0x50
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
adds r0, r4, 0
|
|
bl sub_8001658
|
|
adds r5, r0, 0
|
|
ldr r1, [sp, 0xC]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_8001658
|
|
adds r1, r0, 0
|
|
add r0, sp, 0x8
|
|
ldrb r2, [r0, 0x1]
|
|
adds r0, r5, 0
|
|
_080A0EF2:
|
|
bl FlagCalc
|
|
adds r1, r0, 0
|
|
b _080A1098
|
|
_080A0EFA:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
bl OtherRandomCapped
|
|
adds r1, r0, 0
|
|
b _080A1098
|
|
_080A0F08:
|
|
add r0, sp, 0x8
|
|
movs r4, 0x2
|
|
ldrsh r1, [r0, r4]
|
|
movs r0, 0
|
|
movs r2, 0
|
|
b _080A0F1E
|
|
_080A0F14:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
movs r0, 0
|
|
movs r2, 0x1
|
|
_080A0F1E:
|
|
bl sub_8001784
|
|
adds r1, r0, 0
|
|
b _080A1098
|
|
_080A0F26:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A8C2C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
b _080A1098
|
|
_080A0F36:
|
|
mov r0, r9
|
|
ldr r1, [r0]
|
|
ldr r0, [r0, 0x4]
|
|
add r4, sp, 0x54
|
|
ldr r2, [r1, 0x14]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
movs r1, 0
|
|
ldrsb r1, [r4, r1]
|
|
b _080A1098
|
|
_080A0F4C:
|
|
mov r2, r9
|
|
ldr r1, [r2]
|
|
ldr r0, [r2, 0x4]
|
|
movs r3, 0xB6
|
|
lsls r3, 1
|
|
add r3, sp
|
|
mov r8, r3
|
|
ldr r2, [r1, 0xC]
|
|
mov r1, r8
|
|
bl _call_via_r2
|
|
add r6, sp, 0x16C
|
|
ldr r0, [r6]
|
|
ldr r1, [r6, 0x4]
|
|
add r4, sp, 0x174
|
|
str r0, [r4]
|
|
str r1, [r4, 0x4]
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
adds r5, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80AD8B4
|
|
ldr r1, [r4]
|
|
ldr r0, [r6]
|
|
subs r1, r0
|
|
add r0, sp, 0x17C
|
|
str r1, [r0]
|
|
ldr r1, [r5, 0x4]
|
|
mov r4, r8
|
|
ldr r0, [r4, 0x4]
|
|
subs r1, r0
|
|
add r0, sp, 0x17C
|
|
str r1, [r0, 0x4]
|
|
bl sub_8002C60
|
|
b _080A106A
|
|
_080A0F98:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r6, r0, 16
|
|
cmp r6, 0
|
|
blt _080A1074
|
|
mov r5, r9
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
movs r2, 0xC2
|
|
lsls r2, 1
|
|
add r2, sp
|
|
mov r8, r2
|
|
ldr r2, [r1, 0xC]
|
|
mov r1, r8
|
|
bl _call_via_r2
|
|
ldr r1, [r5]
|
|
ldr r0, [r5, 0x4]
|
|
add r5, sp, 0x18C
|
|
ldr r2, [r1, 0x8]
|
|
adds r1, r5, 0
|
|
bl _call_via_r2
|
|
add r7, sp, 0x194
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
bl sub_80A8FD8
|
|
add r4, sp, 0x19C
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
bl sub_80A8F9C
|
|
mov r0, r8
|
|
adds r1, r5, 0
|
|
adds r2, r7, 0
|
|
adds r3, r4, 0
|
|
bl sub_8002DF0
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A1098
|
|
ldr r3, _080A1004
|
|
mov r0, r8
|
|
adds r1, r3, 0
|
|
adds r2, r7, 0
|
|
b _080A1066
|
|
.align 2, 0
|
|
_080A1004: .4byte gUnknown_81164DC
|
|
_080A1008:
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r7, r0, 16
|
|
cmp r7, 0
|
|
blt _080A1074
|
|
mov r3, r9
|
|
ldr r1, [r3]
|
|
ldr r0, [r3, 0x4]
|
|
add r6, sp, 0x1A4
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
mov r4, r9
|
|
ldr r1, [r4]
|
|
ldr r0, [r4, 0x4]
|
|
add r4, sp, 0x1AC
|
|
ldr r2, [r1, 0x8]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
add r5, sp, 0x1B4
|
|
adds r0, r7, 0
|
|
adds r1, r5, 0
|
|
bl sub_80A8FD8
|
|
ldr r7, _080A1070
|
|
adds r0, r6, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
bl sub_8002DF0
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
bne _080A1098
|
|
adds r0, r6, 0
|
|
adds r1, r7, 0
|
|
adds r2, r5, 0
|
|
adds r3, r7, 0
|
|
_080A1066:
|
|
bl sub_8002D54
|
|
_080A106A:
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
b _080A1098
|
|
.align 2, 0
|
|
_080A1070: .4byte gUnknown_81164DC
|
|
_080A1074:
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
b _080A1098
|
|
_080A107A:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r0, [r0, r5]
|
|
bl sub_809CC90
|
|
adds r1, r0, 0
|
|
b _080A1098
|
|
_080A1088:
|
|
ldr r0, _080A1090
|
|
ldr r1, _080A1094
|
|
bl FatalError
|
|
.align 2, 0
|
|
_080A1090: .4byte gUnknown_81166B4
|
|
_080A1094: .4byte gUnknown_81166C0
|
|
_080A1098:
|
|
mov r0, r9
|
|
bl sub_80A2460
|
|
b _080A1330
|
|
_080A10A0:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_8001658
|
|
adds r2, r0, 0
|
|
mov r3, r10
|
|
strh r2, [r3, 0x28]
|
|
ldr r1, [r3, 0x4]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD0
|
|
bne _080A10DE
|
|
lsls r0, r2, 16
|
|
asrs r3, r0, 16
|
|
_080A10C0:
|
|
adds r2, r1, 0
|
|
movs r4, 0x2
|
|
ldrsh r0, [r1, r4]
|
|
cmp r0, r3
|
|
bne _080A10CE
|
|
bl _0809F0C4
|
|
_080A10CE:
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
mov r5, r10
|
|
str r0, [r5, 0x4]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r2, 0x10]
|
|
cmp r0, 0xD0
|
|
beq _080A10C0
|
|
_080A10DE:
|
|
mov r1, r10
|
|
ldr r0, [r1, 0x4]
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xD1
|
|
beq _080A10EC
|
|
bl _0809EAE0
|
|
_080A10EC:
|
|
ldr r0, _080A10F4
|
|
strh r0, [r1, 0x28]
|
|
bl _0809F0C4
|
|
.align 2, 0
|
|
_080A10F4: .4byte 0x0000ffff
|
|
_080A10F8:
|
|
ldr r7, [sp, 0x14]
|
|
ldr r1, _080A11F0
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
mov r2, r10
|
|
strh r0, [r2, 0x28]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
cmp r0, 0xD8
|
|
bgt _080A1176
|
|
cmp r0, 0xD6
|
|
blt _080A1176
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
ldr r1, [sp, 0x10]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
bl sub_8001658
|
|
adds r3, r0, 0
|
|
mov r4, r10
|
|
ldr r1, [r4, 0x4]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD0
|
|
bne _080A114E
|
|
_080A112A:
|
|
adds r2, r1, 0
|
|
movs r5, 0x2
|
|
ldrsh r0, [r2, r5]
|
|
cmp r0, r3
|
|
bne _080A1136
|
|
ldr r7, [r2, 0xC]
|
|
_080A1136:
|
|
adds r0, r1, 0
|
|
adds r0, 0x10
|
|
mov r1, r10
|
|
str r0, [r1, 0x4]
|
|
ldrh r1, [r1, 0x28]
|
|
adds r1, 0x1
|
|
mov r4, r10
|
|
strh r1, [r4, 0x28]
|
|
adds r1, r0, 0
|
|
ldrb r0, [r2, 0x10]
|
|
cmp r0, 0xD0
|
|
beq _080A112A
|
|
_080A114E:
|
|
mov r5, r10
|
|
ldr r1, [r5, 0x4]
|
|
ldrb r0, [r1]
|
|
cmp r0, 0xD1
|
|
bne _080A1176
|
|
_080A1158:
|
|
cmp r7, 0
|
|
bne _080A115E
|
|
ldr r7, [r1, 0xC]
|
|
_080A115E:
|
|
mov r0, r10
|
|
ldr r2, [r0, 0x4]
|
|
adds r1, r2, 0
|
|
adds r1, 0x10
|
|
str r1, [r0, 0x4]
|
|
ldrh r0, [r0, 0x28]
|
|
adds r0, 0x1
|
|
mov r3, r10
|
|
strh r0, [r3, 0x28]
|
|
ldrb r0, [r2, 0x10]
|
|
cmp r0, 0xD1
|
|
beq _080A1158
|
|
_080A1176:
|
|
cmp r7, 0
|
|
bne _080A117C
|
|
ldr r7, _080A11F4
|
|
_080A117C:
|
|
mov r4, r10
|
|
ldr r5, [r4, 0x4]
|
|
ldrb r0, [r5]
|
|
cmp r0, 0xD9
|
|
bne _080A11B8
|
|
ldr r0, _080A11F8
|
|
mov r8, r0
|
|
ldr r6, _080A11F0
|
|
movs r1, 0x4
|
|
add r1, r8
|
|
mov r12, r1
|
|
_080A1192:
|
|
ldr r1, [r6]
|
|
lsls r2, r1, 3
|
|
mov r4, r8
|
|
adds r3, r2, r4
|
|
adds r4, r5, 0
|
|
ldr r0, [r4, 0xC]
|
|
str r0, [r3]
|
|
add r2, r12
|
|
adds r1, 0x1
|
|
str r1, [r2]
|
|
str r1, [r6]
|
|
adds r0, r4, 0
|
|
adds r0, 0x10
|
|
mov r5, r10
|
|
str r0, [r5, 0x4]
|
|
adds r5, r0, 0
|
|
ldrb r0, [r4, 0x10]
|
|
cmp r0, 0xD9
|
|
beq _080A1192
|
|
_080A11B8:
|
|
ldr r0, _080A11F0
|
|
ldr r1, [r0]
|
|
cmp r1, 0
|
|
bgt _080A11C4
|
|
bl _0809EAE0
|
|
_080A11C4:
|
|
ldr r3, _080A11F8
|
|
lsls r2, r1, 3
|
|
adds r1, r2, r3
|
|
movs r0, 0
|
|
str r0, [r1]
|
|
adds r0, r3, 0x4
|
|
adds r2, r0
|
|
add r0, sp, 0x8
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
str r0, [r2]
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0]
|
|
subs r0, 0xD2
|
|
cmp r0, 0x6
|
|
bhi _080A1280
|
|
lsls r0, 2
|
|
ldr r1, _080A11FC
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A11F0: .4byte gUnknown_203B4AC
|
|
_080A11F4: .4byte gUnknown_81166D8
|
|
_080A11F8: .4byte gUnknown_2039D50
|
|
_080A11FC: .4byte _080A1200
|
|
.align 2, 0
|
|
_080A1200:
|
|
.4byte _080A121C
|
|
.4byte _080A121C
|
|
.4byte _080A123E
|
|
.4byte _080A1260
|
|
.4byte _080A121C
|
|
.4byte _080A123E
|
|
.4byte _080A1260
|
|
_080A121C:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
adds r0, r3, 0
|
|
movs r3, 0
|
|
bl sub_809B028
|
|
b _080A1280
|
|
_080A123E:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
adds r0, r3, 0
|
|
movs r3, 0x1
|
|
bl sub_809B028
|
|
b _080A1280
|
|
_080A1260:
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
negs r1, r0
|
|
orrs r1, r0
|
|
lsrs r1, 31
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
ldr r0, [sp, 0xC]
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
str r0, [sp]
|
|
str r7, [sp, 0x4]
|
|
adds r0, r3, 0
|
|
movs r3, 0x2
|
|
bl sub_809B028
|
|
_080A1280:
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_809D8EC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1292
|
|
bl _0809EAE0
|
|
_080A1292:
|
|
movs r0, 0
|
|
movs r1, 0xB
|
|
bl sub_80A87AC
|
|
bl _0809F0C4
|
|
_080A129E:
|
|
mov r0, r9
|
|
movs r1, 0x1
|
|
bl sub_809D8EC
|
|
b _080A130A
|
|
_080A12A8:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
_080A12AC:
|
|
mov r2, r10
|
|
_080A12AE:
|
|
strh r0, [r2, 0x2A]
|
|
bl _0809F0C4
|
|
_080A12B4:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r1, [r0, r3]
|
|
ldr r0, [sp, 0xC]
|
|
subs r0, r1
|
|
bl OtherRandomCapped
|
|
add r1, sp, 0x8
|
|
ldrh r1, [r1, 0x2]
|
|
adds r1, r0
|
|
mov r4, r10
|
|
strh r1, [r4, 0x2A]
|
|
bl _0809F0C4
|
|
_080A12D0:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
mov r5, r10
|
|
strh r0, [r5, 0x28]
|
|
add r0, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r0, r2]
|
|
mov r0, r9
|
|
bl sub_809D8EC
|
|
b _080A130A
|
|
_080A12E6:
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r0, [r0, r3]
|
|
bl sub_809D9B8
|
|
bl _0809EAE0
|
|
_080A12F4:
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
mov r4, r10
|
|
strh r0, [r4, 0x28]
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
ldrb r2, [r0, 0x1]
|
|
mov r0, r9
|
|
bl sub_809DA08
|
|
_080A130A:
|
|
lsls r0, 24
|
|
_080A130C:
|
|
cmp r0, 0
|
|
bne _080A1314
|
|
bl _0809EAE0
|
|
_080A1314:
|
|
bl _0809F0C4
|
|
_080A1318:
|
|
mov r1, r10
|
|
adds r1, 0x10
|
|
mov r0, r10
|
|
adds r0, 0x4
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
_080A1324:
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
_080A132A:
|
|
mov r0, r9
|
|
bl sub_80A242C
|
|
_080A1330:
|
|
mov r1, r10
|
|
str r0, [r1, 0x4]
|
|
bl _0809EAE0
|
|
_080A1338:
|
|
mov r1, r10
|
|
adds r1, 0x10
|
|
mov r0, r10
|
|
adds r0, 0x4
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
_080A1344:
|
|
ldr r2, _080A1364
|
|
add r0, sp, 0x8
|
|
movs r5, 0x2
|
|
ldrsh r1, [r0, r5]
|
|
lsls r0, r1, 1
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
adds r2, 0x8
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
mov r1, r10
|
|
str r0, [r1, 0x4]
|
|
str r0, [r1, 0x8]
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_080A1364: .4byte gUnknown_812F1F8
|
|
_080A1368:
|
|
mov r1, r10
|
|
adds r1, 0x10
|
|
mov r0, r10
|
|
adds r0, 0x4
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
_080A1374:
|
|
ldr r0, _080A138C
|
|
movs r5, 0
|
|
ldrsh r1, [r0, r5]
|
|
add r0, sp, 0x8
|
|
ldrh r0, [r0, 0x2]
|
|
lsls r0, 16
|
|
cmp r0, 0
|
|
blt _080A1390
|
|
add r0, sp, 0x8
|
|
movs r3, 0x2
|
|
ldrsh r2, [r0, r3]
|
|
b _080A1396
|
|
.align 2, 0
|
|
_080A138C: .4byte gUnknown_2039A34
|
|
_080A1390:
|
|
mov r4, r10
|
|
movs r5, 0xC
|
|
ldrsh r2, [r4, r5]
|
|
_080A1396:
|
|
adds r5, r2, 0
|
|
add r0, sp, 0x8
|
|
ldrb r0, [r0, 0x1]
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
blt _080A13AA
|
|
add r0, sp, 0x8
|
|
movs r4, 0x1
|
|
ldrsb r4, [r0, r4]
|
|
b _080A13B0
|
|
_080A13AA:
|
|
mov r0, r10
|
|
movs r4, 0xE
|
|
ldrsb r4, [r0, r4]
|
|
_080A13B0:
|
|
add r0, sp, 0x1C
|
|
adds r2, r5, 0
|
|
adds r3, r4, 0
|
|
bl GroundMap_GetStationScript
|
|
ldr r0, [sp, 0x1C]
|
|
mov r1, r10
|
|
str r0, [r1, 0x4]
|
|
str r0, [r1, 0x8]
|
|
strh r5, [r1, 0xC]
|
|
strb r4, [r1, 0xE]
|
|
bl _0809EAE0
|
|
_080A13CA:
|
|
mov r0, r10
|
|
adds r0, 0x50
|
|
add r1, sp, 0x8
|
|
movs r2, 0x2
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A4D7C
|
|
ldr r4, _080A13F4
|
|
strh r0, [r4]
|
|
bl sub_809D940
|
|
movs r3, 0
|
|
ldrsh r0, [r4, r3]
|
|
bl GroundMap_ExecuteEnter
|
|
bl _0809EAE0
|
|
.align 2, 0
|
|
_080A13F4: .4byte gUnknown_2039A34
|
|
_080A13F8:
|
|
movs r0, 0
|
|
mov r4, r10
|
|
str r0, [r4, 0x10]
|
|
str r0, [r4, 0x14]
|
|
bl _0809EAE0
|
|
_080A1404:
|
|
mov r5, r10
|
|
ldr r0, [r5, 0x10]
|
|
cmp r0, 0
|
|
bne _080A1410
|
|
_080A140C:
|
|
movs r0, 0
|
|
b _080A142E
|
|
_080A1410:
|
|
mov r0, r10
|
|
adds r0, 0x4
|
|
mov r1, r10
|
|
adds r1, 0x10
|
|
ldm r1!, {r2-r4}
|
|
stm r0!, {r2-r4}
|
|
movs r0, 0
|
|
mov r5, r10
|
|
str r0, [r5, 0x10]
|
|
str r0, [r5, 0x14]
|
|
bl _0809EAE0
|
|
_080A1428:
|
|
movs r0, 0x1
|
|
b _080A142E
|
|
_080A142C:
|
|
movs r0, 0x4
|
|
_080A142E:
|
|
add sp, 0x1BC
|
|
pop {r3-r5}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
mov r10, r5
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end ExecuteScriptCommand
|
|
|
|
thumb_func_start sub_80A1440
|
|
sub_80A1440:
|
|
push {r4,r5,lr}
|
|
adds r4, r0, 0
|
|
adds r5, r1, 0
|
|
adds r3, r2, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl sub_80A14E8
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A1440
|
|
|
|
thumb_func_start GroundScript_ExecuteTrigger
|
|
GroundScript_ExecuteTrigger:
|
|
push {r4,r5,lr}
|
|
sub sp, 0xF4
|
|
lsls r0, 16
|
|
asrs r4, r0, 16
|
|
lsls r0, r4, 1
|
|
adds r0, r4
|
|
lsls r0, 2
|
|
ldr r1, _080A14C8
|
|
adds r0, r1
|
|
movs r1, 0x2
|
|
ldrsh r0, [r0, r1]
|
|
cmp r0, 0xB
|
|
bne _080A14C4
|
|
add r5, sp, 0x10
|
|
ldr r1, _080A14CC
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r5, 0
|
|
movs r2, 0
|
|
movs r3, 0
|
|
bl sub_809D600
|
|
movs r0, 0
|
|
add r1, sp, 0x4
|
|
adds r2, r4, 0
|
|
bl sub_809D710
|
|
ldr r3, _080A14D0
|
|
adds r0, r5, 0
|
|
movs r1, 0
|
|
add r2, sp, 0x4
|
|
bl GroundScript_ExecutePP
|
|
add r1, sp, 0x44
|
|
add r0, sp, 0x38
|
|
ldm r0!, {r2-r4}
|
|
stm r1!, {r2-r4}
|
|
ldr r0, _080A14D4
|
|
str r0, [r5, 0x34]
|
|
str r0, [r5, 0x38]
|
|
ldr r1, _080A14D8
|
|
adds r0, r5, 0
|
|
bl HandleAction
|
|
adds r4, r0, 0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r5, 0
|
|
bl sub_809D648
|
|
cmp r4, 0
|
|
beq _080A14DC
|
|
_080A14C4:
|
|
movs r0, 0
|
|
b _080A14DE
|
|
.align 2, 0
|
|
_080A14C8: .4byte gUnknown_812F1F8
|
|
_080A14CC: .4byte gUnknown_8116488
|
|
_080A14D0: .4byte gUnknown_81166F8
|
|
_080A14D4: .4byte gUnknown_81164E4
|
|
_080A14D8: .4byte gUnknown_8116704
|
|
_080A14DC:
|
|
movs r0, 0x1
|
|
_080A14DE:
|
|
add sp, 0xF4
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end GroundScript_ExecuteTrigger
|
|
|
|
thumb_func_start sub_80A14E8
|
|
sub_80A14E8:
|
|
push {r4-r7,lr}
|
|
mov r7, r9
|
|
mov r6, r8
|
|
push {r6,r7}
|
|
ldr r4, _080A1514
|
|
add sp, r4
|
|
adds r6, r0, 0
|
|
adds r5, r2, 0
|
|
adds r7, r3, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
subs r0, r1, 0x1
|
|
cmp r0, 0x49
|
|
bls _080A1508
|
|
bl _080A236A
|
|
_080A1508:
|
|
lsls r0, 2
|
|
ldr r1, _080A1518
|
|
adds r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_080A1514: .4byte 0xfffffc80
|
|
_080A1518: .4byte _080A151C
|
|
.align 2, 0
|
|
_080A151C:
|
|
.4byte _080A1644
|
|
.4byte _080A164C
|
|
.4byte _080A1672
|
|
.4byte _080A167A
|
|
.4byte _080A1680
|
|
.4byte _080A1688
|
|
.4byte _080A1690
|
|
.4byte _080A1698
|
|
.4byte _080A169E
|
|
.4byte _080A16C6
|
|
.4byte _080A1730
|
|
.4byte _080A1756
|
|
.4byte _080A178C
|
|
.4byte _080A1792
|
|
.4byte _080A17C0
|
|
.4byte _080A17C6
|
|
.4byte _080A1800
|
|
.4byte _080A1814
|
|
.4byte _080A1824
|
|
.4byte _080A1840
|
|
.4byte _080A185E
|
|
.4byte _080A18C2
|
|
.4byte _080A18E2
|
|
.4byte _080A18F2
|
|
.4byte _080A1904
|
|
.4byte _080A197C
|
|
.4byte _080A1988
|
|
.4byte _080A19DC
|
|
.4byte _080A19FC
|
|
.4byte _080A1A0E
|
|
.4byte _080A1A18
|
|
.4byte _080A1A70
|
|
.4byte _080A1AF8
|
|
.4byte _080A1B20
|
|
.4byte _080A1B36
|
|
.4byte _080A1B58
|
|
.4byte _080A1B64
|
|
.4byte _080A1BD8
|
|
.4byte _080A1BE4
|
|
.4byte _080A1C30
|
|
.4byte _080A1C84
|
|
.4byte _080A1DEC
|
|
.4byte _080A1E30
|
|
.4byte _080A1E3C
|
|
.4byte _080A1ED0
|
|
.4byte _080A1ED6
|
|
.4byte _080A1F28
|
|
.4byte _080A1F3C
|
|
.4byte _080A1F44
|
|
.4byte _080A1F50
|
|
.4byte _080A1F80
|
|
.4byte _080A1FDA
|
|
.4byte _080A202C
|
|
.4byte _080A2054
|
|
.4byte _080A2060
|
|
.4byte _080A204A
|
|
.4byte _080A206C
|
|
.4byte _080A2076
|
|
.4byte _080A207C
|
|
.4byte _080A2082
|
|
.4byte _080A20D4
|
|
.4byte _080A20F4
|
|
.4byte _080A21E4
|
|
.4byte _080A228C
|
|
.4byte _080A229E
|
|
.4byte _080A2298
|
|
.4byte _080A22AE
|
|
.4byte _080A22CC
|
|
.4byte _080A22E4
|
|
.4byte _080A2304
|
|
.4byte _080A2320
|
|
.4byte _080A232E
|
|
.4byte _080A233A
|
|
.4byte _080A2346
|
|
_080A1644:
|
|
bl sub_8098C58
|
|
bl _080A236A
|
|
_080A164C:
|
|
bl sub_8011C34
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
cmp r0, r1
|
|
bne _080A1660
|
|
bl Random
|
|
bl sub_8011C40
|
|
_080A1660:
|
|
movs r0, 0x1
|
|
bl sub_8011C28
|
|
bl sub_8001064
|
|
bl sub_809965C
|
|
bl _080A236A
|
|
_080A1672:
|
|
bl sub_8098CC8
|
|
bl _080A236A
|
|
_080A167A:
|
|
bl sub_80961D8
|
|
b _080A1804
|
|
_080A1680:
|
|
bl sub_8096028
|
|
bl _080A236A
|
|
_080A1688:
|
|
bl sub_80963FC
|
|
bl _080A236A
|
|
_080A1690:
|
|
bl sub_8096488
|
|
bl _080A236A
|
|
_080A1698:
|
|
bl sub_80964B4
|
|
b _080A1804
|
|
_080A169E:
|
|
movs r0, 0x8
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A16B0
|
|
bl sub_808D4B0
|
|
b _080A16B4
|
|
_080A16B0:
|
|
bl sub_808D500
|
|
_080A16B4:
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl nullsub_104
|
|
negs r0, r4
|
|
orrs r0, r4
|
|
lsrs r0, 31
|
|
bl _080A236C
|
|
_080A16C6:
|
|
movs r1, 0xC
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
beq _080A16D2
|
|
bl _080A236A
|
|
_080A16D2:
|
|
movs r2, 0xE
|
|
ldrsh r0, [r6, r2]
|
|
add r1, sp, 0x314
|
|
bl sub_80A8C4C
|
|
lsls r0, 16
|
|
asrs r1, r0, 16
|
|
cmp r1, 0
|
|
bne _080A16E8
|
|
bl _080A236A
|
|
_080A16E8:
|
|
add r0, sp, 0x314
|
|
ldrb r0, [r0]
|
|
cmp r0, 0x44
|
|
bne _080A16FC
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
cmp r1, r0
|
|
bne _080A16FC
|
|
bl _080A203C
|
|
_080A16FC:
|
|
movs r3, 0xE
|
|
ldrsh r0, [r6, r3]
|
|
bl sub_80A90C8
|
|
lsls r0, 16
|
|
ldr r1, _080A172C
|
|
asrs r0, 14
|
|
adds r0, r1
|
|
ldr r1, [r0]
|
|
add r0, sp, 0x4
|
|
bl strcpy
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
add r2, sp, 0x4
|
|
bl sub_809AE90
|
|
_080A171E:
|
|
lsls r0, 24
|
|
_080A1720:
|
|
cmp r0, 0
|
|
beq _080A1726
|
|
b _080A1EBE
|
|
_080A1726:
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A172C: .4byte gUnknown_813237C
|
|
_080A1730:
|
|
movs r0, 0
|
|
movs r1, 0x14
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2740
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80969D0
|
|
movs r1, 0
|
|
cmp r0, 0
|
|
ble _080A1750
|
|
movs r1, 0x1
|
|
_080A1750:
|
|
adds r0, r1, 0
|
|
bl _080A236C
|
|
_080A1756:
|
|
add r4, sp, 0x104
|
|
adds r0, r4, 0
|
|
bl sub_8099394
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1768
|
|
bl _080A236A
|
|
_080A1768:
|
|
ldr r0, _080A1788
|
|
ldr r1, [r0]
|
|
ldrb r2, [r4]
|
|
lsls r0, r2, 1
|
|
adds r0, r2
|
|
lsls r0, 4
|
|
adds r1, r0
|
|
adds r1, 0x2C
|
|
movs r0, 0
|
|
ldrsb r0, [r1, r0]
|
|
_080A177C:
|
|
cmp r0, 0
|
|
ble _080A1782
|
|
b _080A1EBE
|
|
_080A1782:
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A1788: .4byte gUnknown_203B480
|
|
_080A178C:
|
|
bl sub_8097640
|
|
b _080A1804
|
|
_080A1792:
|
|
movs r5, 0x11
|
|
_080A1794:
|
|
lsls r4, r5, 16
|
|
asrs r0, r4, 16
|
|
bl sub_809758C
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A17B6
|
|
lsrs r4, 16
|
|
movs r0, 0
|
|
movs r1, 0x2F
|
|
adds r2, r4, 0
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
bne _080A17B6
|
|
bl _080A234E
|
|
_080A17B6:
|
|
adds r5, 0x1
|
|
cmp r5, 0x16
|
|
ble _080A1794
|
|
bl _080A236A
|
|
_080A17C0:
|
|
bl sub_80964E4
|
|
b _080A1804
|
|
_080A17C6:
|
|
movs r4, 0x8
|
|
ldrsh r0, [r6, r4]
|
|
cmp r0, 0x1
|
|
beq _080A17D2
|
|
bl _080A236A
|
|
_080A17D2:
|
|
movs r5, 0xA
|
|
ldrsh r0, [r6, r5]
|
|
cmp r0, 0
|
|
beq _080A17DE
|
|
bl _080A236A
|
|
_080A17DE:
|
|
movs r1, 0xC
|
|
ldrsh r0, [r6, r1]
|
|
cmp r0, 0x1
|
|
beq _080A17EA
|
|
bl _080A236A
|
|
_080A17EA:
|
|
movs r2, 0xA
|
|
ldrsh r4, [r6, r2]
|
|
movs r3, 0xE
|
|
ldrsh r0, [r6, r3]
|
|
bl sub_80A8E9C
|
|
adds r1, r0, 0
|
|
adds r0, r4, 0
|
|
bl sub_80A87E0
|
|
b _080A171E
|
|
_080A1800:
|
|
bl sub_80A8D20
|
|
_080A1804:
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
negs r0, r1
|
|
orrs r0, r1
|
|
lsrs r0, 31
|
|
bl _080A236C
|
|
_080A1814:
|
|
ldr r0, _080A1820
|
|
ldrh r0, [r0]
|
|
movs r1, 0xC0
|
|
lsls r1, 2
|
|
ands r0, r1
|
|
b _080A1720
|
|
.align 2, 0
|
|
_080A1820: .4byte gUnknown_20255F0
|
|
_080A1824:
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
bl sub_80A8D54
|
|
cmp r0, 0
|
|
bne _080A1834
|
|
bl _080A236A
|
|
_080A1834:
|
|
ldrh r0, [r0]
|
|
lsrs r0, 1
|
|
movs r1, 0x1
|
|
ands r0, r1
|
|
bl _080A236C
|
|
_080A1840:
|
|
movs r4, 0x8
|
|
ldrsh r0, [r6, r4]
|
|
cmp r0, 0x1
|
|
beq _080A184C
|
|
bl _080A236A
|
|
_080A184C:
|
|
movs r5, 0xA
|
|
ldrsh r0, [r6, r5]
|
|
bl sub_80A8BFC
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_808DB48
|
|
b _080A171E
|
|
_080A185E:
|
|
lsls r0, r5, 16
|
|
asrs r0, 16
|
|
bl sub_80A7AE8
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, 0
|
|
bge _080A1872
|
|
bl _080A236A
|
|
_080A1872:
|
|
lsls r4, r7, 8
|
|
ldr r1, [r6]
|
|
ldr r0, [r6, 0x4]
|
|
add r7, sp, 0x318
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r7, 0
|
|
bl _call_via_r2
|
|
add r6, sp, 0x320
|
|
adds r0, r5, 0
|
|
adds r1, r6, 0
|
|
bl sub_80A8FD8
|
|
add r0, sp, 0x318
|
|
ldr r3, [r0]
|
|
subs r1, r3, r4
|
|
add r0, sp, 0x320
|
|
ldr r2, [r0]
|
|
cmp r1, r2
|
|
ble _080A189E
|
|
bl _080A236A
|
|
_080A189E:
|
|
adds r0, r3, r4
|
|
cmp r0, r2
|
|
bge _080A18A8
|
|
bl _080A236A
|
|
_080A18A8:
|
|
ldr r2, [r7, 0x4]
|
|
subs r0, r2, r4
|
|
ldr r1, [r6, 0x4]
|
|
cmp r0, r1
|
|
ble _080A18B6
|
|
bl _080A236A
|
|
_080A18B6:
|
|
adds r0, r2, r4
|
|
cmp r0, r1
|
|
blt _080A18BE
|
|
b _080A1EBE
|
|
_080A18BE:
|
|
bl _080A236A
|
|
_080A18C2:
|
|
movs r0, 0x1
|
|
bl sub_80A8D54
|
|
cmp r0, 0
|
|
bne _080A18D0
|
|
bl _080A236A
|
|
_080A18D0:
|
|
adds r1, r0, 0
|
|
adds r1, 0x4C
|
|
movs r2, 0
|
|
adds r0, 0x55
|
|
_080A18D8:
|
|
strb r2, [r0]
|
|
subs r0, 0x1
|
|
cmp r0, r1
|
|
bge _080A18D8
|
|
b _080A1EBE
|
|
_080A18E2:
|
|
movs r0, 0xC
|
|
bl sub_80925EC
|
|
movs r0, 0x12
|
|
bl sub_80925EC
|
|
bl _080A236A
|
|
_080A18F2:
|
|
ldr r0, _080A1900
|
|
movs r1, 0x3C
|
|
_080A18F6:
|
|
movs r2, 0xA
|
|
bl sub_80A8F50
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A1900: .4byte gUnknown_2039D98
|
|
_080A1904:
|
|
movs r0, 0x51
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80925EC
|
|
add r1, sp, 0x4
|
|
ldr r0, _080A1970
|
|
ldm r0!, {r2,r3,r6}
|
|
stm r1!, {r2,r3,r6}
|
|
ldm r0!, {r2,r4,r6}
|
|
stm r1!, {r2,r4,r6}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r1!, {r3,r4,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
add r4, sp, 0x2C
|
|
adds r0, r4, 0
|
|
add r1, sp, 0x4
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
cmp r0, 0
|
|
bne _080A193C
|
|
b _080A1EBE
|
|
_080A193C:
|
|
movs r3, 0
|
|
ldr r1, _080A1974
|
|
mov r8, r1
|
|
lsls r6, r5, 2
|
|
ldr r2, _080A1978
|
|
adds r4, r0, 0
|
|
adds r4, 0x4C
|
|
mov r7, r8
|
|
_080A194C:
|
|
adds r0, r4, r3
|
|
adds r1, r3, r7
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9
|
|
ble _080A194C
|
|
_080A195A:
|
|
adds r0, r6, r5
|
|
lsls r0, 4
|
|
adds r0, r2
|
|
mov r1, r8
|
|
movs r2, 0xA
|
|
bl sub_80922B4
|
|
_080A1968:
|
|
bl sub_8097848
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A1970: .4byte gUnknown_8116710
|
|
_080A1974: .4byte gUnknown_2039D98
|
|
_080A1978: .4byte gPlayerName
|
|
_080A197C:
|
|
ldr r0, _080A1984
|
|
movs r1, 0x53
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1984: .4byte gUnknown_2039D98
|
|
_080A1988:
|
|
ldr r0, _080A19D4
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80925EC
|
|
add r1, sp, 0x84
|
|
adds r2, r1, 0
|
|
ldr r0, _080A19D8
|
|
ldm r0!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
add r4, sp, 0xAC
|
|
adds r0, r4, 0
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
adds r4, r0, 0
|
|
cmp r4, 0
|
|
bne _080A19C2
|
|
b _080A1EBE
|
|
_080A19C2:
|
|
bl sub_8097848
|
|
ldrh r1, [r4]
|
|
movs r0, 0x2
|
|
orrs r0, r1
|
|
strh r0, [r4]
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A19D4: .4byte 0x00000183
|
|
_080A19D8: .4byte gUnknown_8116738
|
|
_080A19DC:
|
|
ldr r0, _080A19F8
|
|
movs r1, 0
|
|
bl sub_808D434
|
|
adds r2, r0, 0
|
|
cmp r2, 0
|
|
bne _080A19EC
|
|
b _080A1EBE
|
|
_080A19EC:
|
|
ldrh r1, [r2]
|
|
movs r0, 0x2
|
|
orrs r0, r1
|
|
strh r0, [r2]
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A19F8: .4byte 0x00000183
|
|
_080A19FC:
|
|
movs r0, 0x82
|
|
lsls r0, 1
|
|
_080A1A00:
|
|
bl sub_808D278
|
|
cmp r0, 0
|
|
bne _080A1A0A
|
|
b _080A1EBE
|
|
_080A1A0A:
|
|
bl _080A236A
|
|
_080A1A0E:
|
|
ldr r0, _080A1A14
|
|
movs r1, 0x7C
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1A14: .4byte gUnknown_2039D98
|
|
_080A1A18:
|
|
add r1, sp, 0x108
|
|
adds r2, r1, 0
|
|
ldr r0, _080A1A64
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
add r4, sp, 0x130
|
|
adds r0, r4, 0
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
cmp r0, 0
|
|
bne _080A1A42
|
|
b _080A1EBE
|
|
_080A1A42:
|
|
movs r3, 0
|
|
ldr r4, _080A1A68
|
|
mov r8, r4
|
|
lsls r6, r5, 2
|
|
ldr r2, _080A1A6C
|
|
adds r4, r0, 0
|
|
adds r4, 0x4C
|
|
mov r7, r8
|
|
_080A1A52:
|
|
adds r0, r4, r3
|
|
adds r1, r3, r7
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r3, 0x1
|
|
cmp r3, 0x9
|
|
ble _080A1A52
|
|
b _080A195A
|
|
.align 2, 0
|
|
_080A1A64: .4byte gUnknown_8116760
|
|
_080A1A68: .4byte gUnknown_2039D98
|
|
_080A1A6C: .4byte gPlayerName
|
|
_080A1A70:
|
|
movs r0, 0x9E
|
|
movs r1, 0x1
|
|
bl sub_80026E8
|
|
movs r0, 0x91
|
|
movs r1, 0
|
|
bl sub_808D434
|
|
cmp r0, 0
|
|
bne _080A1A9A
|
|
ldr r3, _080A1AEC
|
|
str r0, [sp]
|
|
movs r0, 0x91
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_808D2E8
|
|
cmp r0, 0
|
|
beq _080A1A9A
|
|
bl sub_8097848
|
|
_080A1A9A:
|
|
movs r0, 0x92
|
|
movs r1, 0
|
|
bl sub_808D434
|
|
cmp r0, 0
|
|
bne _080A1ABC
|
|
ldr r3, _080A1AF0
|
|
str r0, [sp]
|
|
movs r0, 0x92
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_808D2E8
|
|
cmp r0, 0
|
|
beq _080A1ABC
|
|
bl sub_8097848
|
|
_080A1ABC:
|
|
movs r0, 0x90
|
|
movs r1, 0
|
|
bl sub_808D434
|
|
cmp r0, 0
|
|
beq _080A1ACC
|
|
bl _080A236A
|
|
_080A1ACC:
|
|
ldr r3, _080A1AF4
|
|
str r0, [sp]
|
|
movs r0, 0x90
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_808D2E8
|
|
cmp r0, 0
|
|
bne _080A1AE2
|
|
bl _080A236A
|
|
_080A1AE2:
|
|
bl sub_8097848
|
|
bl _080A236A
|
|
.align 2, 0
|
|
_080A1AEC: .4byte gUnknown_8116788
|
|
_080A1AF0: .4byte gUnknown_811678C
|
|
_080A1AF4: .4byte gUnknown_8116790
|
|
_080A1AF8:
|
|
movs r0, 0x90
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1B08
|
|
bl _080A236A
|
|
_080A1B08:
|
|
movs r0, 0x91
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1B18
|
|
bl _080A236A
|
|
_080A1B18:
|
|
movs r0, 0x92
|
|
bl sub_808E734
|
|
b _080A171E
|
|
_080A1B20:
|
|
bl sub_808D33C
|
|
ldrh r0, [r0, 0x8]
|
|
subs r0, 0x90
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bls _080A1B32
|
|
b _080A1EBE
|
|
_080A1B32:
|
|
bl _080A236A
|
|
_080A1B36:
|
|
bl sub_808D33C
|
|
cmp r0, 0
|
|
beq _080A1B4A
|
|
movs r5, 0x8
|
|
ldrsh r1, [r0, r5]
|
|
ldr r0, _080A1B54
|
|
cmp r1, r0
|
|
bne _080A1B4A
|
|
b _080A203C
|
|
_080A1B4A:
|
|
ldr r0, _080A1B54
|
|
bl sub_8098134
|
|
b _080A171E
|
|
.align 2, 0
|
|
_080A1B54: .4byte 0x00000113
|
|
_080A1B58:
|
|
ldr r0, _080A1B60
|
|
movs r1, 0x79
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1B60: .4byte gUnknown_2039D98
|
|
_080A1B64:
|
|
ldr r4, _080A1BCC
|
|
adds r0, r4, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1B88
|
|
adds r0, r4, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80925EC
|
|
_080A1B88:
|
|
add r1, sp, 0x188
|
|
adds r2, r1, 0
|
|
ldr r0, _080A1BD0
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldm r0!, {r4-r6}
|
|
stm r2!, {r4-r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
add r4, sp, 0x1B0
|
|
adds r0, r4, 0
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
cmp r0, 0
|
|
bne _080A1BB2
|
|
b _080A1EBE
|
|
_080A1BB2:
|
|
movs r2, 0
|
|
adds r3, r0, 0
|
|
adds r3, 0x4C
|
|
ldr r4, _080A1BD4
|
|
_080A1BBA:
|
|
adds r0, r3, r2
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080A1BBA
|
|
b _080A1968
|
|
.align 2, 0
|
|
_080A1BCC: .4byte 0x00000199
|
|
_080A1BD0: .4byte gUnknown_8116794
|
|
_080A1BD4: .4byte gUnknown_2039D98
|
|
_080A1BD8:
|
|
ldr r0, _080A1BE0
|
|
movs r1, 0x7A
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1BE0: .4byte gUnknown_2039D98
|
|
_080A1BE4:
|
|
add r1, sp, 0x208
|
|
adds r2, r1, 0
|
|
ldr r0, _080A1C28
|
|
ldm r0!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
add r4, sp, 0x230
|
|
adds r0, r4, 0
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
cmp r0, 0
|
|
bne _080A1C0E
|
|
b _080A1EBE
|
|
_080A1C0E:
|
|
movs r2, 0
|
|
adds r3, r0, 0
|
|
adds r3, 0x4C
|
|
ldr r4, _080A1C2C
|
|
_080A1C16:
|
|
adds r0, r3, r2
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080A1C16
|
|
b _080A1968
|
|
.align 2, 0
|
|
_080A1C28: .4byte gUnknown_81167BC
|
|
_080A1C2C: .4byte gUnknown_2039D98
|
|
_080A1C30:
|
|
bl sub_8090A34
|
|
cmp r0, 0x13
|
|
ble _080A1C70
|
|
ldr r0, _080A1C64
|
|
ldrb r4, [r0, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8091524
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1C4A
|
|
b _080A236A
|
|
_080A1C4A:
|
|
ldr r0, _080A1C68
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x50
|
|
adds r1, r0, r1
|
|
ldrh r2, [r1]
|
|
ldr r0, _080A1C6C
|
|
cmp r2, r0
|
|
bls _080A1C5E
|
|
b _080A236A
|
|
_080A1C5E:
|
|
adds r0, r2, 0x1
|
|
strh r0, [r1]
|
|
b _080A236A
|
|
.align 2, 0
|
|
_080A1C64: .4byte gUnknown_81167E4
|
|
_080A1C68: .4byte gUnknown_203B460
|
|
_080A1C6C: .4byte 0x000003e6
|
|
_080A1C70:
|
|
ldr r0, _080A1C80
|
|
ldrb r0, [r0, 0x2]
|
|
movs r1, 0
|
|
bl sub_809124C
|
|
bl sub_80910B4
|
|
b _080A236A
|
|
.align 2, 0
|
|
_080A1C80: .4byte gUnknown_81167E4
|
|
_080A1C84:
|
|
movs r0, 0xD1
|
|
lsls r0, 1
|
|
bl RandomCapped
|
|
adds r0, 0x1
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
movs r0, 0x20
|
|
bl RandomCapped
|
|
adds r4, r0, 0
|
|
movs r7, 0xD2
|
|
lsls r7, 1
|
|
movs r6, 0
|
|
ldr r0, _080A1DE0
|
|
mov r8, r0
|
|
_080A1CA4:
|
|
adds r0, r5, 0x1
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
cmp r5, r8
|
|
ble _080A1CB0
|
|
movs r5, 0x1
|
|
_080A1CB0:
|
|
subs r7, 0x1
|
|
cmp r7, 0
|
|
bge _080A1CCC
|
|
cmp r6, 0
|
|
bne _080A1CBC
|
|
b _080A2360
|
|
_080A1CBC:
|
|
cmp r4, r6
|
|
blt _080A1CCC
|
|
adds r0, r6, 0
|
|
bl RandomCapped
|
|
adds r4, r0, 0
|
|
movs r7, 0xD2
|
|
lsls r7, 1
|
|
_080A1CCC:
|
|
adds r0, r5, 0
|
|
subs r0, 0x90
|
|
lsls r0, 16
|
|
lsrs r0, 16
|
|
cmp r0, 0x2
|
|
bls _080A1CA4
|
|
ldr r0, _080A1DE4
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0xB
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
subs r0, 0xD
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
subs r0, 0x88
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x67
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x23
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x3
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
cmp r5, r8
|
|
beq _080A1CA4
|
|
cmp r5, 0x96
|
|
beq _080A1CA4
|
|
subs r0, 0x5
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
cmp r5, 0x97
|
|
beq _080A1CA4
|
|
subs r0, 0x5
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
subs r0, 0x8C
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
subs r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x2
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x5
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x82
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, 0x1
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
subs r0, 0x83
|
|
cmp r5, r0
|
|
beq _080A1CA4
|
|
adds r0, r5, 0
|
|
bl sub_80981DC
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A1CA4
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A1D9E
|
|
adds r0, r5, 0
|
|
bl sub_808E734
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1CA4
|
|
adds r0, r5, 0
|
|
bl sub_808D278
|
|
cmp r0, 0
|
|
beq _080A1CA4
|
|
_080A1D9E:
|
|
adds r6, 0x1
|
|
subs r4, 0x1
|
|
cmp r4, 0
|
|
blt _080A1DA8
|
|
b _080A1CA4
|
|
_080A1DA8:
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
adds r2, r5, 0
|
|
bl sub_80018D8
|
|
ldr r4, _080A1DE8
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_8092578
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1EBE
|
|
b _080A203C
|
|
.align 2, 0
|
|
_080A1DE0: .4byte 0x000001a3
|
|
_080A1DE4: .4byte 0x0000019b
|
|
_080A1DE8: .4byte gUnknown_202E628
|
|
_080A1DEC:
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
ldr r4, _080A1E2C
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_8092578
|
|
cmp r5, 0
|
|
bne _080A1E14
|
|
b _080A236A
|
|
_080A1E14:
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1EBE
|
|
b _080A203C
|
|
.align 2, 0
|
|
_080A1E2C: .4byte gUnknown_202E628
|
|
_080A1E30:
|
|
ldr r0, _080A1E38
|
|
movs r1, 0x20
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1E38: .4byte gUnknown_2039D98
|
|
_080A1E3C:
|
|
cmp r5, 0
|
|
bne _080A1E42
|
|
b _080A2360
|
|
_080A1E42:
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
bl sub_8001658
|
|
lsls r0, 16
|
|
asrs r5, r0, 16
|
|
adds r6, r5, 0
|
|
ldr r4, _080A1EC4
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
adds r1, r0, 0
|
|
lsls r1, 24
|
|
lsrs r1, 24
|
|
adds r0, r4, 0
|
|
movs r2, 0
|
|
bl sub_8092578
|
|
cmp r5, 0
|
|
bne _080A1E6C
|
|
b _080A236A
|
|
_080A1E6C:
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_8092600
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1E8E
|
|
adds r0, r5, 0
|
|
bl sub_808DBA8
|
|
lsls r0, 24
|
|
lsrs r0, 24
|
|
bl sub_80925EC
|
|
_080A1E8E:
|
|
ldr r3, _080A1EC8
|
|
movs r0, 0
|
|
str r0, [sp]
|
|
adds r0, r6, 0
|
|
movs r1, 0
|
|
movs r2, 0
|
|
bl sub_808D2E8
|
|
cmp r0, 0
|
|
bne _080A1EA4
|
|
b _080A236A
|
|
_080A1EA4:
|
|
movs r2, 0
|
|
adds r3, r0, 0
|
|
adds r3, 0x4C
|
|
ldr r4, _080A1ECC
|
|
_080A1EAC:
|
|
adds r0, r3, r2
|
|
adds r1, r2, r4
|
|
ldrb r1, [r1]
|
|
strb r1, [r0]
|
|
adds r2, 0x1
|
|
cmp r2, 0x9
|
|
ble _080A1EAC
|
|
bl sub_8097848
|
|
_080A1EBE:
|
|
movs r0, 0x1
|
|
b _080A236C
|
|
.align 2, 0
|
|
_080A1EC4: .4byte gUnknown_202E628
|
|
_080A1EC8: .4byte gUnknown_81167E8
|
|
_080A1ECC: .4byte gUnknown_2039D98
|
|
_080A1ED0:
|
|
bl sub_809211C
|
|
b _080A177C
|
|
_080A1ED6:
|
|
bl sub_8092178
|
|
lsls r0, 24
|
|
lsrs r4, r0, 24
|
|
bl sub_809211C
|
|
cmp r0, 0
|
|
bgt _080A1EE8
|
|
b _080A236A
|
|
_080A1EE8:
|
|
bl sub_8092158
|
|
bl sub_8092178
|
|
adds r5, r0, 0
|
|
lsls r5, 24
|
|
lsrs r5, 24
|
|
adds r0, r4, 0
|
|
bl sub_80921A8
|
|
adds r1, r0, 0
|
|
ldr r4, _080A1F30
|
|
adds r0, r4, 0
|
|
bl strcpy
|
|
adds r0, r5, 0
|
|
bl sub_80921A8
|
|
adds r1, r0, 0
|
|
adds r4, 0x50
|
|
adds r0, r4, 0
|
|
bl strcpy
|
|
movs r1, 0x1
|
|
negs r1, r1
|
|
ldr r2, _080A1F34
|
|
movs r0, 0
|
|
bl sub_809AE90
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1EBE
|
|
_080A1F28:
|
|
ldr r0, _080A1F38
|
|
bl sub_80913A0
|
|
b _080A236A
|
|
.align 2, 0
|
|
_080A1F30: .4byte gUnknown_202DE58
|
|
_080A1F34: .4byte gUnknown_81167EC
|
|
_080A1F38: .4byte 0x00002710
|
|
_080A1F3C:
|
|
ldr r0, _080A1F40
|
|
b _080A1A00
|
|
.align 2, 0
|
|
_080A1F40: .4byte 0x00000133
|
|
_080A1F44:
|
|
ldr r0, _080A1F4C
|
|
movs r1, 0x52
|
|
b _080A18F6
|
|
.align 2, 0
|
|
_080A1F4C: .4byte gUnknown_2039D98
|
|
_080A1F50:
|
|
add r1, sp, 0x288
|
|
adds r2, r1, 0
|
|
ldr r0, _080A1F7C
|
|
ldm r0!, {r3-r5}
|
|
stm r2!, {r3-r5}
|
|
ldm r0!, {r3,r4,r6}
|
|
stm r2!, {r3,r4,r6}
|
|
ldm r0!, {r3,r5,r6}
|
|
stm r2!, {r3,r5,r6}
|
|
ldr r0, [r0]
|
|
str r0, [r2]
|
|
add r4, sp, 0x2B0
|
|
adds r0, r4, 0
|
|
bl sub_808D144
|
|
adds r0, r4, 0
|
|
bl sub_808D1DC
|
|
cmp r0, 0
|
|
beq _080A1EBE
|
|
b _080A1968
|
|
.align 2, 0
|
|
_080A1F7C: .4byte gUnknown_811681C
|
|
_080A1F80:
|
|
movs r2, 0x1
|
|
negs r2, r2
|
|
movs r0, 0x3
|
|
movs r1, 0x12
|
|
bl sub_8001D44
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A1F94
|
|
b _080A236A
|
|
_080A1F94:
|
|
movs r0, 0
|
|
movs r1, 0xF
|
|
bl sub_8001658
|
|
cmp r0, 0x4
|
|
bne _080A1FA2
|
|
b _080A236A
|
|
_080A1FA2:
|
|
movs r0, 0
|
|
movs r1, 0x42
|
|
movs r2, 0
|
|
bl sub_8001784
|
|
cmp r0, 0
|
|
ble _080A1FB2
|
|
b _080A236A
|
|
_080A1FB2:
|
|
movs r0, 0x80
|
|
lsls r0, 1
|
|
bl OtherRandomCapped
|
|
cmp r0, 0
|
|
bne _080A1FCC
|
|
movs r0, 0
|
|
movs r1, 0x42
|
|
movs r2, 0
|
|
movs r3, 0x4
|
|
bl sub_800199C
|
|
b _080A1EBE
|
|
_080A1FCC:
|
|
movs r0, 0
|
|
movs r1, 0x42
|
|
movs r2, 0
|
|
movs r3, 0x1
|
|
bl sub_800199C
|
|
b _080A236A
|
|
_080A1FDA:
|
|
ldr r6, _080A200C
|
|
ldr r7, _080A2010
|
|
movs r5, 0x2
|
|
_080A1FE0:
|
|
bl sub_8090A34
|
|
cmp r0, 0x13
|
|
ble _080A2018
|
|
ldrb r4, [r6, 0x2]
|
|
adds r0, r4, 0
|
|
bl sub_8091524
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A2024
|
|
ldr r0, _080A2014
|
|
ldr r0, [r0]
|
|
lsls r1, r4, 1
|
|
adds r0, 0x50
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1]
|
|
cmp r0, r7
|
|
bhi _080A2024
|
|
adds r0, 0x1
|
|
strh r0, [r1]
|
|
b _080A2024
|
|
.align 2, 0
|
|
_080A200C: .4byte gUnknown_8116844
|
|
_080A2010: .4byte 0x000003e6
|
|
_080A2014: .4byte gUnknown_203B460
|
|
_080A2018:
|
|
ldrb r0, [r6, 0x2]
|
|
movs r1, 0
|
|
bl sub_809124C
|
|
bl sub_80910B4
|
|
_080A2024:
|
|
subs r5, 0x1
|
|
cmp r5, 0
|
|
bge _080A1FE0
|
|
b _080A236A
|
|
_080A202C:
|
|
bl sub_808D33C
|
|
cmp r0, 0
|
|
beq _080A2040
|
|
movs r4, 0x8
|
|
ldrsh r0, [r0, r4]
|
|
cmp r0, 0x71
|
|
bne _080A2040
|
|
_080A203C:
|
|
movs r0, 0x2
|
|
b _080A236C
|
|
_080A2040:
|
|
movs r0, 0x71
|
|
bl sub_8098134
|
|
bl _080A171E
|
|
_080A204A:
|
|
movs r0, 0
|
|
movs r1, 0x1
|
|
bl sub_80A56A0
|
|
b _080A236A
|
|
_080A2054:
|
|
add r0, sp, 0x328
|
|
str r5, [r0]
|
|
str r7, [r0, 0x4]
|
|
bl sub_80A56F0
|
|
b _080A236A
|
|
_080A2060:
|
|
add r0, sp, 0x330
|
|
str r5, [r0]
|
|
str r7, [r0, 0x4]
|
|
bl sub_80A5704
|
|
b _080A236A
|
|
_080A206C:
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
bl sub_809C6CC
|
|
b _080A236A
|
|
_080A2076:
|
|
bl sub_809C6EC
|
|
b _080A236A
|
|
_080A207C:
|
|
bl sub_809C760
|
|
b _080A236A
|
|
_080A2082:
|
|
movs r0, 0
|
|
movs r4, 0x80
|
|
lsls r4, 9
|
|
_080A2088:
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
bl sub_80A86C8
|
|
adds r0, r4, 0
|
|
movs r5, 0x80
|
|
lsls r5, 9
|
|
adds r4, r5
|
|
asrs r0, 16
|
|
cmp r0, 0x17
|
|
ble _080A2088
|
|
movs r0, 0
|
|
adds r4, r5, 0
|
|
_080A20A2:
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
bl sub_80AC1B0
|
|
adds r0, r4, 0
|
|
movs r6, 0x80
|
|
lsls r6, 9
|
|
adds r4, r6
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080A20A2
|
|
movs r0, 0
|
|
adds r4, r6, 0
|
|
_080A20BC:
|
|
movs r1, 0x80
|
|
lsls r1, 15
|
|
bl sub_80AD0C8
|
|
adds r0, r4, 0
|
|
movs r1, 0x80
|
|
lsls r1, 9
|
|
adds r4, r1
|
|
asrs r0, 16
|
|
cmp r0, 0xF
|
|
ble _080A20BC
|
|
b _080A236A
|
|
_080A20D4:
|
|
add r0, sp, 0x338
|
|
str r5, [r0]
|
|
adds r4, r0, 0
|
|
str r7, [r4, 0x4]
|
|
movs r0, 0x1
|
|
adds r1, r4, 0
|
|
bl sub_80A5984
|
|
adds r2, r0, 0
|
|
lsls r2, 16
|
|
lsrs r2, 16
|
|
movs r0, 0
|
|
adds r1, r4, 0
|
|
bl sub_80A59A0
|
|
b _080A236A
|
|
_080A20F4:
|
|
add r1, sp, 0x308
|
|
movs r2, 0
|
|
movs r0, 0x1
|
|
strb r0, [r1]
|
|
strb r2, [r1, 0x1]
|
|
strb r0, [r1, 0x2]
|
|
strb r0, [r1, 0x3]
|
|
str r2, [r1, 0x4]
|
|
ldr r0, _080A21D8
|
|
ldr r2, _080A21DC
|
|
adds r0, r2
|
|
ldr r0, [r0]
|
|
str r0, [r1, 0x8]
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
lsls r2, r5, 16
|
|
asrs r2, 16
|
|
lsls r3, r7, 24
|
|
asrs r3, 24
|
|
bl GroundEffect_Add
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
cmp r0, 0
|
|
bge _080A2128
|
|
b _080A236A
|
|
_080A2128:
|
|
bl sub_80AD158
|
|
adds r7, r0, 0
|
|
add r4, sp, 0x340
|
|
add r5, sp, 0x348
|
|
adds r0, r4, 0
|
|
adds r1, r5, 0
|
|
bl sub_80A579C
|
|
ldr r0, [r4, 0x4]
|
|
movs r1, 0xC0
|
|
lsls r1, 4
|
|
adds r0, r1
|
|
str r0, [r4, 0x4]
|
|
ldr r0, [r5, 0x4]
|
|
adds r0, r1
|
|
str r0, [r5, 0x4]
|
|
ldr r1, [r6]
|
|
ldr r0, [r6, 0x4]
|
|
add r6, sp, 0x350
|
|
ldr r2, [r1, 0xC]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
add r1, sp, 0x350
|
|
ldr r2, [r1]
|
|
add r0, sp, 0x340
|
|
ldr r0, [r0]
|
|
cmp r2, r0
|
|
blt _080A216E
|
|
add r0, sp, 0x348
|
|
ldr r0, [r0]
|
|
cmp r2, r0
|
|
blt _080A2170
|
|
subs r0, 0x1
|
|
_080A216E:
|
|
str r0, [r1]
|
|
_080A2170:
|
|
ldr r1, [r6, 0x4]
|
|
ldr r0, [r4, 0x4]
|
|
cmp r1, r0
|
|
blt _080A2180
|
|
ldr r0, [r5, 0x4]
|
|
cmp r1, r0
|
|
blt _080A2182
|
|
subs r0, 0x1
|
|
_080A2180:
|
|
str r0, [r6, 0x4]
|
|
_080A2182:
|
|
add r1, sp, 0x340
|
|
ldr r0, [r1]
|
|
ldr r2, _080A21E0
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
ldr r0, [r4, 0x4]
|
|
adds r0, r2
|
|
str r0, [r4, 0x4]
|
|
add r1, sp, 0x348
|
|
ldr r0, [r1]
|
|
movs r2, 0x80
|
|
lsls r2, 3
|
|
adds r0, r2
|
|
str r0, [r1]
|
|
ldr r0, [r5, 0x4]
|
|
adds r0, r2
|
|
str r0, [r5, 0x4]
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r3, [r1, 0x20]
|
|
adds r1, r4, 0
|
|
adds r2, r5, 0
|
|
bl _call_via_r3
|
|
ldr r1, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
ldr r2, [r1, 0x24]
|
|
adds r1, r6, 0
|
|
bl _call_via_r2
|
|
movs r0, 0
|
|
movs r1, 0
|
|
add r2, sp, 0x358
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
ldr r2, [r7]
|
|
ldr r0, [r7, 0x4]
|
|
add r1, sp, 0x358
|
|
ldr r2, [r2, 0x48]
|
|
bl _call_via_r2
|
|
b _080A1EBE
|
|
.align 2, 0
|
|
_080A21D8: .4byte gUnknown_812F1F8
|
|
_080A21DC: .4byte 0x00001310
|
|
_080A21E0: .4byte 0xfffffc00
|
|
_080A21E4:
|
|
ldr r0, _080A2288
|
|
ldrh r4, [r0]
|
|
ldrh r0, [r0, 0x2]
|
|
movs r1, 0xC
|
|
ands r0, r1
|
|
cmp r0, 0
|
|
beq _080A21F4
|
|
b _080A236A
|
|
_080A21F4:
|
|
adds r0, r4, 0
|
|
bl sub_809CFE8
|
|
lsls r0, 24
|
|
asrs r1, r0, 24
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
cmp r1, r0
|
|
beq _080A2282
|
|
movs r2, 0x80
|
|
lsls r2, 1
|
|
add r0, sp, 0x360
|
|
bl sub_8002BB8
|
|
add r0, sp, 0x360
|
|
ldr r1, [r0, 0x4]
|
|
ldr r0, [r0]
|
|
add r2, sp, 0x368
|
|
str r0, [r2]
|
|
str r1, [r2, 0x4]
|
|
movs r0, 0x2
|
|
ands r4, r0
|
|
cmp r4, 0
|
|
beq _080A2226
|
|
movs r0, 0x4
|
|
_080A2226:
|
|
cmp r0, 0
|
|
beq _080A2282
|
|
movs r3, 0xDA
|
|
lsls r3, 2
|
|
add r3, sp
|
|
mov r9, r3
|
|
add r7, sp, 0x370
|
|
add r4, sp, 0x378
|
|
mov r8, r0
|
|
_080A2238:
|
|
ldr r1, [r6]
|
|
ldr r0, [r6, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
mov r1, r9
|
|
bl _call_via_r2
|
|
cmp r0, 0
|
|
beq _080A2276
|
|
movs r5, 0
|
|
str r5, [r7]
|
|
mov r1, r9
|
|
ldr r0, [r1, 0x4]
|
|
str r0, [r7, 0x4]
|
|
ldr r1, [r6]
|
|
ldr r0, [r6, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
adds r1, r7, 0
|
|
bl _call_via_r2
|
|
cmp r0, 0
|
|
beq _080A2276
|
|
mov r2, r9
|
|
ldr r0, [r2]
|
|
str r0, [r4]
|
|
str r5, [r4, 0x4]
|
|
ldr r1, [r6]
|
|
ldr r0, [r6, 0x4]
|
|
ldr r2, [r1, 0x48]
|
|
adds r1, r4, 0
|
|
bl _call_via_r2
|
|
_080A2276:
|
|
movs r3, 0x1
|
|
negs r3, r3
|
|
add r8, r3
|
|
mov r5, r8
|
|
cmp r5, 0
|
|
bne _080A2238
|
|
_080A2282:
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A236C
|
|
.align 2, 0
|
|
_080A2288: .4byte gUnknown_20255F0
|
|
_080A228C:
|
|
negs r0, r5
|
|
orrs r0, r5
|
|
lsrs r0, 31
|
|
bl sub_80993C0
|
|
b _080A236A
|
|
_080A2298:
|
|
movs r0, 0x1
|
|
bl sub_8011C28
|
|
_080A229E:
|
|
adds r0, r5, 0
|
|
bl sub_8098F00
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
bl sub_80118C4
|
|
b _080A236A
|
|
_080A22AE:
|
|
bl sub_800C068
|
|
ldr r1, _080A22C4
|
|
strh r0, [r1]
|
|
lsls r0, 16
|
|
ldr r1, _080A22C8
|
|
cmp r0, r1
|
|
beq _080A22C0
|
|
b _080A1EBE
|
|
_080A22C0:
|
|
b _080A236A
|
|
.align 2, 0
|
|
_080A22C4: .4byte gUnknown_2039DA8
|
|
_080A22C8: .4byte 0x03e70000
|
|
_080A22CC:
|
|
ldr r4, _080A22DC
|
|
ldrh r0, [r4]
|
|
ldr r5, _080A22E0
|
|
cmp r0, r5
|
|
beq _080A236A
|
|
bl sub_80118F0
|
|
b _080A2312
|
|
.align 2, 0
|
|
_080A22DC: .4byte gUnknown_2039DA8
|
|
_080A22E0: .4byte 0x000003e7
|
|
_080A22E4:
|
|
ldr r4, _080A22FC
|
|
ldrh r0, [r4]
|
|
ldr r6, _080A2300
|
|
cmp r0, r6
|
|
beq _080A236A
|
|
lsls r1, r5, 16
|
|
lsrs r1, 16
|
|
bl sub_8011900
|
|
strh r6, [r4]
|
|
b _080A1EBE
|
|
.align 2, 0
|
|
_080A22FC: .4byte gUnknown_2039DA8
|
|
_080A2300: .4byte 0x000003e7
|
|
_080A2304:
|
|
ldr r4, _080A2318
|
|
ldrh r0, [r4]
|
|
ldr r5, _080A231C
|
|
cmp r0, r5
|
|
beq _080A236A
|
|
bl sub_8011914
|
|
_080A2312:
|
|
strh r5, [r4]
|
|
b _080A1EBE
|
|
.align 2, 0
|
|
_080A2318: .4byte gUnknown_2039DA8
|
|
_080A231C: .4byte 0x000003e7
|
|
_080A2320:
|
|
lsls r0, r5, 16
|
|
lsrs r0, 16
|
|
lsls r1, r7, 16
|
|
lsrs r1, 16
|
|
bl sub_80997F4
|
|
b _080A236A
|
|
_080A232E:
|
|
lsls r1, r5, 16
|
|
lsrs r1, 16
|
|
movs r0, 0x1E
|
|
bl sub_80997F4
|
|
b _080A236A
|
|
_080A233A:
|
|
lsls r1, r5, 16
|
|
lsrs r1, 16
|
|
movs r0, 0
|
|
bl GroundSprite_ExtendPaletteAdd
|
|
b _080A236A
|
|
_080A2346:
|
|
movs r0, 0
|
|
bl GroundSprite_ExtendPaletteDelete
|
|
b _080A236A
|
|
_080A234E:
|
|
movs r0, 0
|
|
movs r1, 0x2F
|
|
adds r2, r4, 0
|
|
movs r3, 0x1
|
|
bl sub_800199C
|
|
adds r0, r5, 0
|
|
subs r0, 0x10
|
|
b _080A236C
|
|
_080A2360:
|
|
movs r0, 0
|
|
movs r1, 0x1F
|
|
movs r2, 0
|
|
bl sub_80018D8
|
|
_080A236A:
|
|
movs r0, 0
|
|
_080A236C:
|
|
movs r3, 0xE0
|
|
lsls r3, 2
|
|
add sp, r3
|
|
pop {r3,r4}
|
|
mov r8, r3
|
|
mov r9, r4
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A14E8
|
|
|
|
thumb_func_start GroundScript_Unlock
|
|
GroundScript_Unlock:
|
|
push {r4-r7,lr}
|
|
ldr r1, _080A241C
|
|
ldrb r0, [r1]
|
|
cmp r0, 0
|
|
beq _080A2414
|
|
movs r0, 0
|
|
strb r0, [r1]
|
|
movs r6, 0
|
|
_080A2390:
|
|
ldr r0, _080A2420
|
|
adds r7, r6, r0
|
|
ldrb r0, [r7]
|
|
cmp r0, 0
|
|
beq _080A240E
|
|
movs r0, 0x1
|
|
ldr r1, _080A2424
|
|
adds r2, r6, 0
|
|
bl Log
|
|
lsls r5, r6, 16
|
|
asrs r5, 16
|
|
adds r0, r5, 0
|
|
bl sub_80A4D2C
|
|
adds r4, r0, 0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
bl sub_80A8B1C
|
|
orrs r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
bl sub_80AC320
|
|
orrs r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
adds r0, r5, 0
|
|
bl sub_80AD238
|
|
orrs r4, r0
|
|
lsls r4, 24
|
|
lsrs r4, 24
|
|
ldr r0, _080A2428
|
|
adds r5, r6, r0
|
|
ldrb r0, [r5]
|
|
cmp r0, 0
|
|
beq _080A240C
|
|
cmp r4, 0
|
|
beq _080A240E
|
|
movs r0, 0x80
|
|
adds r4, r6, 0
|
|
orrs r4, r0
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
adds r0, r4, 0
|
|
bl sub_80A4D2C
|
|
adds r0, r4, 0
|
|
bl sub_80A8B1C
|
|
adds r0, r4, 0
|
|
bl sub_80AC320
|
|
adds r0, r4, 0
|
|
bl sub_80AD238
|
|
movs r0, 0
|
|
strb r0, [r5]
|
|
_080A240C:
|
|
strb r0, [r7]
|
|
_080A240E:
|
|
adds r6, 0x1
|
|
cmp r6, 0x80
|
|
ble _080A2390
|
|
_080A2414:
|
|
pop {r4-r7}
|
|
pop {r0}
|
|
bx r0
|
|
.align 2, 0
|
|
_080A241C: .4byte gUnknown_2039A36
|
|
_080A2420: .4byte gUnknown_2039A38
|
|
_080A2424: .4byte gUnknown_8116848
|
|
_080A2428: .4byte gUnknown_2039AC0
|
|
thumb_func_end GroundScript_Unlock
|
|
|
|
thumb_func_start sub_80A242C
|
|
sub_80A242C:
|
|
push {r4-r7,lr}
|
|
sub sp, 0x10
|
|
adds r4, r1, 0
|
|
ldr r0, [r0, 0x2C]
|
|
adds r2, r0, 0
|
|
adds r2, 0x10
|
|
mov r3, sp
|
|
_080A243A:
|
|
mov r1, sp
|
|
adds r0, r2, 0
|
|
ldm r0!, {r5-r7}
|
|
stm r1!, {r5-r7}
|
|
ldr r0, [r0]
|
|
str r0, [r1]
|
|
adds r2, 0x10
|
|
ldrb r0, [r3]
|
|
cmp r0, 0xF4
|
|
bne _080A243A
|
|
movs r1, 0x2
|
|
ldrsh r0, [r3, r1]
|
|
cmp r4, r0
|
|
bne _080A243A
|
|
adds r0, r2, 0
|
|
add sp, 0x10
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A242C
|
|
|
|
thumb_func_start sub_80A2460
|
|
sub_80A2460:
|
|
push {r4-r7,lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
sub sp, 0x10
|
|
adds r5, r0, 0
|
|
mov r8, r1
|
|
ldr r6, [r5, 0x28]
|
|
mov r4, sp
|
|
_080A2470:
|
|
mov r0, sp
|
|
adds r1, r6, 0
|
|
ldm r1!, {r2,r3,r7}
|
|
stm r0!, {r2,r3,r7}
|
|
ldr r1, [r1]
|
|
str r1, [r0]
|
|
ldrb r0, [r4]
|
|
cmp r0, 0xCC
|
|
bne _080A249E
|
|
ldr r1, [sp, 0x4]
|
|
mov r0, r8
|
|
movs r2, 0x2
|
|
bl FlagJudge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A24F0
|
|
movs r0, 0x2
|
|
ldrsh r1, [r4, r0]
|
|
adds r0, r5, 0
|
|
bl sub_80A242C
|
|
b _080A24F4
|
|
_080A249E:
|
|
cmp r0, 0xCD
|
|
bne _080A24BE
|
|
ldr r1, [sp, 0x4]
|
|
ldrb r2, [r4, 0x1]
|
|
mov r0, r8
|
|
bl FlagJudge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A24F0
|
|
movs r2, 0x2
|
|
ldrsh r1, [r4, r2]
|
|
adds r0, r5, 0
|
|
bl sub_80A242C
|
|
b _080A24F4
|
|
_080A24BE:
|
|
cmp r0, 0xCE
|
|
bne _080A24EC
|
|
ldr r1, [sp, 0x4]
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r5, 0
|
|
adds r0, 0x74
|
|
bl sub_8001658
|
|
adds r1, r0, 0
|
|
ldrb r2, [r4, 0x1]
|
|
mov r0, r8
|
|
bl FlagJudge
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A24F0
|
|
movs r3, 0x2
|
|
ldrsh r1, [r4, r3]
|
|
adds r0, r5, 0
|
|
bl sub_80A242C
|
|
b _080A24F4
|
|
_080A24EC:
|
|
adds r0, r6, 0
|
|
b _080A24F4
|
|
_080A24F0:
|
|
adds r6, 0x10
|
|
b _080A2470
|
|
_080A24F4:
|
|
add sp, 0x10
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4-r7}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2460
|
|
|
|
thumb_func_start sub_80A2500
|
|
sub_80A2500:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _080A2524
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80A8BBC
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_809AB4C
|
|
_080A2524:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2500
|
|
|
|
thumb_func_start sub_80A252C
|
|
sub_80A252C:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _080A2550
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80A8BBC
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_809ABB4
|
|
_080A2550:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A252C
|
|
|
|
thumb_func_start sub_80A2558
|
|
sub_80A2558:
|
|
push {r4,lr}
|
|
adds r4, r0, 0
|
|
movs r2, 0
|
|
ldrsh r0, [r1, r2]
|
|
cmp r0, 0x1
|
|
bne _080A257C
|
|
lsls r4, 16
|
|
asrs r4, 16
|
|
movs r2, 0x2
|
|
ldrsh r0, [r1, r2]
|
|
bl sub_80A8BBC
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
adds r0, r4, 0
|
|
bl sub_809AC18
|
|
_080A257C:
|
|
pop {r4}
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2558
|
|
|
|
thumb_func_start sub_80A2584
|
|
sub_80A2584:
|
|
push {lr}
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_809ABB4
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2584
|
|
|
|
thumb_func_start sub_80A2598
|
|
sub_80A2598:
|
|
push {lr}
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_809AC18
|
|
pop {r0}
|
|
bx r0
|
|
thumb_func_end sub_80A2598
|
|
|
|
thumb_func_start sub_80A25AC
|
|
sub_80A25AC:
|
|
push {r4,r5,lr}
|
|
lsls r0, 16
|
|
lsrs r4, r0, 16
|
|
adds r5, r4, 0
|
|
bl sub_8098F88
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A25C2
|
|
adds r0, r4, 0
|
|
b _080A2602
|
|
_080A25C2:
|
|
cmp r4, 0x32
|
|
bne _080A25CA
|
|
movs r0, 0x32
|
|
b _080A2602
|
|
_080A25CA:
|
|
movs r0, 0xC
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _080A25E0
|
|
ldr r0, _080A25DC
|
|
b _080A2602
|
|
.align 2, 0
|
|
_080A25DC: .4byte 0x000003e7
|
|
_080A25E0:
|
|
movs r0, 0xD
|
|
bl sub_80023E4
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _080A25F0
|
|
movs r0, 0x13
|
|
b _080A2602
|
|
_080A25F0:
|
|
cmp r4, 0x1
|
|
bne _080A2600
|
|
movs r0, 0
|
|
movs r1, 0x28
|
|
bl sub_8001658
|
|
movs r0, 0x1
|
|
b _080A2602
|
|
_080A2600:
|
|
adds r0, r5, 0
|
|
_080A2602:
|
|
pop {r4,r5}
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A25AC
|
|
|
|
thumb_func_start sub_80A2608
|
|
sub_80A2608:
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080A261C
|
|
adds r0, r1
|
|
bx lr
|
|
.align 2, 0
|
|
_080A261C: .4byte gUnknown_81168A8
|
|
thumb_func_end sub_80A2608
|
|
|
|
thumb_func_start sub_80A2620
|
|
sub_80A2620:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A26B8
|
|
adds r1, r0, 0
|
|
lsls r1, 16
|
|
asrs r1, 16
|
|
lsls r0, r1, 2
|
|
adds r0, r1
|
|
lsls r0, 2
|
|
ldr r1, _080A2640
|
|
adds r0, r1
|
|
pop {r1}
|
|
bx r1
|
|
.align 2, 0
|
|
_080A2640: .4byte gUnknown_81168A8
|
|
thumb_func_end sub_80A2620
|
|
|
|
thumb_func_start sub_80A2644
|
|
sub_80A2644:
|
|
ldr r1, _080A2650
|
|
lsls r0, 1
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A2650: .4byte gUnknown_8116F24
|
|
thumb_func_end sub_80A2644
|
|
|
|
thumb_func_start sub_80A2654
|
|
sub_80A2654:
|
|
push {lr}
|
|
lsls r0, 16
|
|
asrs r0, 16
|
|
bl sub_80A2608
|
|
movs r1, 0xE
|
|
ldrsh r0, [r0, r1]
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2654
|
|
|
|
thumb_func_start sub_80A2668
|
|
sub_80A2668:
|
|
push {lr}
|
|
lsls r0, 16
|
|
ldr r2, _080A267C
|
|
adds r1, r0, r2
|
|
lsrs r0, r1, 16
|
|
cmp r0, 0x18
|
|
bls _080A2680
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A2682
|
|
.align 2, 0
|
|
_080A267C: .4byte 0xffc90000
|
|
_080A2680:
|
|
asrs r0, r1, 16
|
|
_080A2682:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2668
|
|
|
|
thumb_func_start sub_80A2688
|
|
sub_80A2688:
|
|
push {lr}
|
|
lsls r0, 24
|
|
lsrs r1, r0, 24
|
|
adds r3, r1, 0
|
|
adds r2, r1, 0
|
|
subs r2, 0x4B
|
|
lsls r0, r2, 24
|
|
lsrs r0, 24
|
|
cmp r0, 0x16
|
|
bhi _080A26A0
|
|
adds r0, r2, 0
|
|
b _080A26B4
|
|
_080A26A0:
|
|
cmp r1, 0x2F
|
|
bne _080A26A8
|
|
movs r0, 0x17
|
|
b _080A26B4
|
|
_080A26A8:
|
|
cmp r3, 0x30
|
|
beq _080A26B2
|
|
movs r0, 0x1
|
|
negs r0, r0
|
|
b _080A26B4
|
|
_080A26B2:
|
|
movs r0, 0x18
|
|
_080A26B4:
|
|
pop {r1}
|
|
bx r1
|
|
thumb_func_end sub_80A2688
|
|
|
|
thumb_func_start sub_80A26B8
|
|
sub_80A26B8:
|
|
lsls r0, 16
|
|
ldr r1, _080A26C8
|
|
asrs r0, 15
|
|
adds r0, r1
|
|
movs r1, 0
|
|
ldrsh r0, [r0, r1]
|
|
bx lr
|
|
.align 2, 0
|
|
_080A26C8: .4byte gUnknown_8116F9A
|
|
thumb_func_end sub_80A26B8
|
|
|
|
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 @ Don't pad with nop.
|