mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-27 23:10:50 +00:00
99a038284b
This decision was made to reduce the complexity of using .include whilst juggling with tools/scaninc and tools/preproc: - tools/scaninc doesn't apply the proper search rules for .include (it assumes #include behavior). In particular, it doesn't consider paths starting from $PWD, and doesn't scan the included files as a result. - .include had to be processed before #include by preproc in many cases, as code was being included that had to be preprocessed by CPP (think of #define). This contradicts standard GCC behavior. To make include paths consistent across the asm/ data/ and src/ directories, the following files were moved: - constants/ → include/asm/constants/ - asm/macros/ → include/asm/macros/ - asm/macros.inc → include/asm/macros.inc - include/macros/m4a.inc → include/asm/macros/m4a.inc As part of the necessary changes for this to work, the scaninc method in the makefile was improved to generate .d files that don't choke when files are missing.
751 lines
12 KiB
ArmAsm
751 lines
12 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
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 gFunctionScriptTable
|
|
_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
|
|
|
|
.align 2,0
|