mirror of
https://github.com/pret/pmd-red.git
synced 2024-11-30 16:30:24 +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.
3496 lines
51 KiB
ArmAsm
3496 lines
51 KiB
ArmAsm
#include "asm/constants/gba_constants.inc"
|
|
#include "asm/macros.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
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 GetRescueTeamRank
|
|
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 GetFriendAreaUnlockCondition
|
|
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 gFriendAreas
|
|
_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 xxx_bit_lut_lookup_8091E50
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
beq _08095F6A
|
|
_08095F48:
|
|
lsrs r4, 24
|
|
adds r0, r4, 0
|
|
bl IsThrowableItem
|
|
lsls r0, 24
|
|
cmp r0, 0
|
|
bne _08095F6A
|
|
adds r0, r4, 0
|
|
bl IsNotMoneyOrUsedTMItem
|
|
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 IsMailSlotEmpty
|
|
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 IsMailSlotEmpty
|
|
IsMailSlotEmpty:
|
|
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 IsMailSlotEmpty
|
|
|
|
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 GetRescueTeamRank
|
|
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 IsValidWonderMail
|
|
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 GetNumAcceptedJobs
|
|
GetNumAcceptedJobs:
|
|
push {r4,r5,lr}
|
|
movs r5, 0
|
|
movs r4, 0
|
|
_080969B2:
|
|
lsls r0, r4, 24
|
|
lsrs r0, 24
|
|
bl IsJobSlotEmpty
|
|
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 GetNumAcceptedJobs
|
|
|
|
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 IsJobSlotEmpty
|
|
IsJobSlotEmpty:
|
|
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 IsJobSlotEmpty
|
|
|
|
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 gTeamInventory_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 CheckPKMNNewsSlot
|
|
CheckPKMNNewsSlot:
|
|
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 CheckPKMNNewsSlot
|
|
|
|
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 xxx_init_struct_8094924_restore_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 RestoreIntegerBits
|
|
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 RestoreIntegerBits
|
|
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 RestoreIntegerBits
|
|
ldr r1, [r4]
|
|
movs r2, 0xDC
|
|
lsls r2, 1
|
|
adds r1, r2
|
|
movs r2, 0xF0
|
|
lsls r2, 2
|
|
mov r0, sp
|
|
bl RestoreIntegerBits
|
|
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 RestoreIntegerBits
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl RestoreIntegerBits
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl xxx_restore_poke_sub_4_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 xxx_init_struct_8094924_save_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 SaveIntegerBits
|
|
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 SaveIntegerBits
|
|
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 SaveIntegerBits
|
|
ldr r1, [r4]
|
|
movs r0, 0xDC
|
|
lsls r0, 1
|
|
adds r1, r0
|
|
movs r2, 0xF0
|
|
lsls r2, 2
|
|
mov r0, sp
|
|
bl SaveIntegerBits
|
|
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 SaveIntegerBits
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
adds r1, 0x4
|
|
mov r0, sp
|
|
movs r2, 0x18
|
|
bl SaveIntegerBits
|
|
ldr r1, [r6]
|
|
adds r1, r5
|
|
mov r0, sp
|
|
bl xxx_save_poke_sub_4_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 RestoreIntegerBits
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0xE
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x12
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x13
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x18
|
|
bl RestoreIntegerBits
|
|
adds r1, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl xxx_restore_poke_sub_4_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 SaveIntegerBits
|
|
adds r1, r5, 0x1
|
|
adds r0, r4, 0
|
|
movs r2, 0x3
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0x2
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0xC
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0xE
|
|
adds r0, r4, 0
|
|
movs r2, 0x9
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x10
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x11
|
|
adds r0, r4, 0
|
|
movs r2, 0x4
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x12
|
|
adds r0, r4, 0
|
|
movs r2, 0x8
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x13
|
|
adds r0, r4, 0
|
|
movs r2, 0x6
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0
|
|
adds r1, 0x8
|
|
adds r0, r4, 0
|
|
movs r2, 0x18
|
|
bl SaveIntegerBits
|
|
adds r1, r5, 0x4
|
|
adds r0, r4, 0
|
|
bl xxx_save_poke_sub_4_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
|
|
|
|
.align 2,0
|