pmd-red/asm/code_80958E8.s
2022-03-21 17:48:40 -07:00

2820 lines
41 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 GetJobSlotInfo
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 GetJobSlotInfo
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 GetJobSlotInfo
GetJobSlotInfo:
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 GetJobSlotInfo
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 GetJobSlotInfo
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 GetJobSlotInfo
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
.align 2,0