pmd-red/asm/code_8095014.s
Seth Barberee 87cd9885a9
Friend Area Decomp Work (#15)
split out and work on friend area stuff
2020-12-31 18:30:16 -06:00

4821 lines
70 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start sub_8095118
sub_8095118:
push {r4,lr}
ldr r4, _0809517C
ldr r0, [r4]
movs r2, 0xC0
lsls r2, 3
movs r1, 0
bl MemoryFill8
ldr r0, _08095180
ldr r0, [r0]
movs r1, 0
movs r2, 0x5C
bl MemoryFill8
movs r2, 0
movs r1, 0
movs r3, 0x1F
_0809513A:
ldr r0, [r4]
adds r0, r1
strb r2, [r0]
ldr r0, [r4]
adds r0, r1
adds r0, 0x22
strb r2, [r0]
ldr r0, [r4]
adds r0, r1
adds r0, 0x2D
strb r2, [r0]
adds r1, 0x30
subs r3, 0x1
cmp r3, 0
bge _0809513A
ldr r2, _08095184
ldr r1, [r2]
movs r0, 0
str r0, [r1]
movs r3, 0
movs r4, 0x1
negs r4, r4
_08095166:
ldr r0, [r2]
lsls r1, r3, 2
adds r0, 0x4
adds r0, r1
str r4, [r0]
adds r3, 0x1
cmp r3, 0x1F
ble _08095166
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809517C: .4byte gUnknown_203B480
_08095180: .4byte gUnknown_203B484
_08095184: .4byte gUnknown_203B48C
thumb_func_end sub_8095118
thumb_func_start nullsub_206
nullsub_206:
bx lr
thumb_func_end nullsub_206
thumb_func_start nullsub_207
nullsub_207:
bx lr
thumb_func_end nullsub_207
thumb_func_start sub_8095190
sub_8095190:
push {lr}
movs r2, 0x2
ldr r0, _080951A8
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x60
_0809519C:
ldrb r0, [r1]
cmp r0, 0
bne _080951AC
adds r0, r2, 0
b _080951B8
.align 2, 0
_080951A8: .4byte gUnknown_203B480
_080951AC:
adds r1, 0x30
adds r2, 0x1
cmp r2, 0x1F
ble _0809519C
movs r0, 0x1
negs r0, r0
_080951B8:
pop {r1}
bx r1
thumb_func_end sub_8095190
thumb_func_start sub_80951BC
sub_80951BC:
push {r4,lr}
adds r4, r0, 0
bl sub_8095190
adds r2, r0, 0
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _080951F4
ldr r0, _080951F0
ldr r1, [r0]
lsls r0, r2, 1
adds r0, r2
lsls r0, 4
adds r1, r0
adds r0, r4, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
movs r0, 0x1
b _080951F6
.align 2, 0
_080951F0: .4byte gUnknown_203B480
_080951F4:
movs r0, 0
_080951F6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80951BC
thumb_func_start sub_80951FC
sub_80951FC:
push {r4,r5,lr}
ldr r1, _08095224
ldr r1, [r1]
adds r1, 0x30
ldrb r2, [r1]
negs r3, r2
orrs r3, r2
lsrs r3, 31
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
ldm r0!, {r2,r4,r5}
stm r1!, {r2,r4,r5}
adds r0, r3, 0
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_08095224: .4byte gUnknown_203B480
thumb_func_end sub_80951FC
thumb_func_start sub_8095228
sub_8095228:
lsls r0, 24
lsrs r0, 24
ldr r2, _0809523C
lsls r1, r0, 1
adds r1, r0
lsls r1, 4
ldr r0, [r2]
adds r0, r1
bx lr
.align 2, 0
_0809523C: .4byte gUnknown_203B480
thumb_func_end sub_8095228
thumb_func_start sub_8095240
sub_8095240:
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r5, _08095270
lsls r4, r0, 1
adds r4, r0
lsls r4, 4
ldr r0, [r5]
adds r0, r4
movs r1, 0
movs r2, 0x30
bl MemoryFill8
ldr r0, [r5]
adds r0, r4
movs r1, 0
strb r1, [r0]
ldr r0, [r5]
adds r0, r4
adds r0, 0x22
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08095270: .4byte gUnknown_203B480
thumb_func_end sub_8095240
thumb_func_start sub_8095274
sub_8095274:
push {lr}
ldr r1, _08095294
ldr r3, [r1]
adds r2, r3, 0
ldm r2!, {r1}
lsls r1, 2
adds r2, r1
str r0, [r2]
ldr r0, [r3]
movs r1, 0
cmp r0, 0x1E
bgt _0809528E
adds r1, r0, 0x1
_0809528E:
str r1, [r3]
pop {r0}
bx r0
.align 2, 0
_08095294: .4byte gUnknown_203B48C
thumb_func_end sub_8095274
thumb_func_start sub_8095298
sub_8095298:
push {lr}
adds r3, r0, 0
movs r2, 0
ldr r0, _080952B0
ldr r0, [r0]
adds r1, r0, 0x4
_080952A4:
ldr r0, [r1]
cmp r0, r3
bne _080952B4
movs r0, 0x1
b _080952BE
.align 2, 0
_080952B0: .4byte gUnknown_203B48C
_080952B4:
adds r1, 0x4
adds r2, 0x1
cmp r2, 0x1F
ble _080952A4
movs r0, 0
_080952BE:
pop {r1}
bx r1
thumb_func_end sub_8095298
thumb_func_start sub_80952C4
sub_80952C4:
push {r4,lr}
ldr r2, _080952EC
ldr r1, [r2]
movs r0, 0
str r0, [r1]
movs r3, 0
adds r4, r2, 0
movs r2, 0x1
negs r2, r2
_080952D6:
ldr r0, [r4]
lsls r1, r3, 2
adds r0, 0x4
adds r0, r1
str r2, [r0]
adds r3, 0x1
cmp r3, 0x1F
ble _080952D6
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080952EC: .4byte gUnknown_203B48C
thumb_func_end sub_80952C4
thumb_func_start sub_80952F0
sub_80952F0:
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
ldr r0, _08095310
ldr r2, [r0]
_080952FE:
ldrb r0, [r2]
cmp r0, r1
bne _08095314
ldr r0, [r2, 0x10]
cmp r0, r4
bne _08095314
movs r0, 0x1
b _0809531E
.align 2, 0
_08095310: .4byte gUnknown_203B480
_08095314:
adds r2, 0x30
adds r3, 0x1
cmp r3, 0x1F
ble _080952FE
movs r0, 0
_0809531E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80952F0
thumb_func_start sub_8095324
sub_8095324:
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
movs r3, 0
ldr r0, _0809534C
ldr r1, [r0]
movs r2, 0x1F
_08095332:
ldrb r0, [r1]
cmp r0, r4
bne _0809533A
adds r3, 0x1
_0809533A:
adds r1, 0x30
subs r2, 0x1
cmp r2, 0
bge _08095332
adds r0, r3, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_0809534C: .4byte gUnknown_203B480
thumb_func_end sub_8095324
thumb_func_start sub_8095350
sub_8095350:
push {lr}
movs r3, 0
ldr r0, _08095370
ldr r1, [r0]
movs r2, 0x1F
_0809535A:
ldrb r0, [r1]
cmp r0, 0
beq _08095362
adds r3, 0x1
_08095362:
adds r1, 0x30
subs r2, 0x1
cmp r2, 0
bge _0809535A
adds r0, r3, 0
pop {r1}
bx r1
.align 2, 0
_08095370: .4byte gUnknown_203B480
thumb_func_end sub_8095350
thumb_func_start sub_8095374
sub_8095374:
push {lr}
movs r3, 0x1
negs r3, r3
movs r2, 0
ldr r0, _08095398
ldr r1, [r0]
_08095380:
ldrb r0, [r1]
cmp r0, 0x1
bne _08095388
adds r3, r2, 0
_08095388:
adds r1, 0x30
adds r2, 0x1
cmp r2, 0x1F
ble _08095380
adds r0, r3, 0
pop {r1}
bx r1
.align 2, 0
_08095398: .4byte gUnknown_203B480
thumb_func_end sub_8095374
thumb_func_start sub_809539C
sub_809539C:
push {r4,lr}
adds r4, r1, 0
lsls r0, 24
lsrs r1, r0, 24
movs r3, 0
ldr r0, _080953BC
ldr r2, [r0]
_080953AA:
ldrb r0, [r2]
cmp r0, r1
bne _080953C0
ldr r0, [r2, 0x10]
cmp r0, r4
bne _080953C0
adds r0, r3, 0
b _080953CC
.align 2, 0
_080953BC: .4byte gUnknown_203B480
_080953C0:
adds r2, 0x30
adds r3, 0x1
cmp r3, 0x1F
ble _080953AA
movs r0, 0x1
negs r0, r0
_080953CC:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_809539C
thumb_func_start sub_80953D4
sub_80953D4:
push {lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r0, _080953EC
ldr r1, [r0]
_080953E0:
ldrb r0, [r1]
cmp r0, r3
bne _080953F0
adds r0, r2, 0
b _080953FC
.align 2, 0
_080953EC: .4byte gUnknown_203B480
_080953F0:
adds r1, 0x30
adds r2, 0x1
cmp r2, 0x1F
ble _080953E0
movs r0, 0x1
negs r0, r0
_080953FC:
pop {r1}
bx r1
thumb_func_end sub_80953D4
thumb_func_start sub_8095400
sub_8095400:
push {lr}
adds r3, r0, 0
movs r2, 0
ldr r0, _08095418
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0x10
_0809540E:
ldr r0, [r1]
cmp r0, r3
bne _0809541C
adds r0, r2, 0
b _08095428
.align 2, 0
_08095418: .4byte gUnknown_203B480
_0809541C:
adds r1, 0x30
adds r2, 0x1
cmp r2, 0x1F
ble _0809540E
movs r0, 0x1
negs r0, r0
_08095428:
pop {r1}
bx r1
thumb_func_end sub_8095400
thumb_func_start sub_809542C
sub_809542C:
push {r4,lr}
sub sp, 0x14
ldr r4, _08095490
ldr r2, [r4]
movs r1, 0x1
strb r1, [r2]
ldr r2, [r4]
ldr r1, [r0, 0x4]
ldr r0, [r0]
str r0, [r2, 0x4]
str r1, [r2, 0x8]
bl Random
bl sub_8094D28
bl sub_8094E4C
ldr r1, [r4]
str r0, [r1, 0x10]
bl sub_808D33C
ldr r1, [r4]
ldrh r0, [r0, 0x8]
strh r0, [r1, 0xC]
bl sub_808D33C
adds r1, r0, 0
mov r0, sp
bl sub_808DA34
ldr r0, [r4]
adds r0, 0x14
mov r1, sp
bl sub_80922F4
bl sub_8011C34
ldr r1, [r4]
str r0, [r1, 0x24]
ldrb r0, [r1, 0x4]
bl GetUnk3
ldr r1, [r4]
adds r1, 0x2C
strb r0, [r1]
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08095490: .4byte gUnknown_203B480
thumb_func_end sub_809542C
thumb_func_start sub_8095494
sub_8095494:
lsls r1, 24
lsrs r1, 24
ldr r2, _080954B0
ldr r3, [r2]
lsls r2, r1, 1
adds r2, r1
lsls r2, 4
adds r3, r2
ldr r1, [r3, 0x4]
ldr r2, [r3, 0x8]
str r1, [r0]
str r2, [r0, 0x4]
bx lr
.align 2, 0
_080954B0: .4byte gUnknown_203B480
thumb_func_end sub_8095494
thumb_func_start sub_80954B4
sub_80954B4:
push {lr}
movs r0, 0x3
bl sub_8095324
cmp r0, 0
bne _080954C4
movs r0, 0
b _080954C6
_080954C4:
movs r0, 0x1
_080954C6:
pop {r1}
bx r1
thumb_func_end sub_80954B4
thumb_func_start sub_80954CC
sub_80954CC:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809485C
ldr r6, _08095618
movs r5, 0
movs r4, 0x1F
_080954E2:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8095774
adds r5, 0x30
subs r4, 0x1
cmp r4, 0
bge _080954E2
ldr r4, _0809561C
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl sub_8094924
ldr r5, [r4]
adds r4, r5, 0x4
adds r0, r4, 0
movs r1, 0
movs r2, 0x58
bl memset
mov r0, sp
adds r1, r4, 0
movs r2, 0x2
bl sub_8094924
adds r1, r5, 0x6
mov r0, sp
movs r2, 0x1
bl sub_8094924
adds r1, r5, 0x7
mov r0, sp
movs r2, 0x7
bl sub_8094924
adds r4, 0x4
mov r0, sp
adds r1, r4, 0
bl sub_8090314
adds r1, r5, 0
adds r1, 0xC
mov r0, sp
movs r2, 0x9
bl sub_8094924
adds r1, r5, 0
adds r1, 0x10
mov r0, sp
bl sub_808F410
adds r1, r5, 0
adds r1, 0x14
mov r0, sp
bl sub_808F410
adds r1, r5, 0
adds r1, 0x18
mov r0, sp
movs r2, 0xA
bl sub_8094924
adds r1, r5, 0
adds r1, 0x1A
mov r0, sp
movs r2, 0xA
bl sub_8094924
adds r1, r5, 0
adds r1, 0x1C
mov r0, sp
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x1D
mov r0, sp
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x1E
mov r0, sp
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x1F
mov r0, sp
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x20
mov r0, sp
movs r2, 0x18
bl sub_8094924
adds r1, r5, 0
adds r1, 0x24
mov r0, sp
movs r2, 0x18
bl sub_8094924
adds r1, r5, 0
adds r1, 0x28
mov r0, sp
movs r2, 0x4
bl sub_8094924
adds r1, r5, 0
adds r1, 0x2C
mov r0, sp
bl sub_8091DC0
adds r1, r5, 0
adds r1, 0x30
mov r0, sp
bl sub_8094128
adds r1, r5, 0
adds r1, 0x50
mov r0, sp
movs r2, 0x50
bl sub_8094924
ldr r4, _08095620
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl sub_8094924
adds r6, r4, 0
movs r5, 0x4
movs r4, 0x1F
_080955F4:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0x20
bl sub_8094924
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _080955F4
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08095618: .4byte gUnknown_203B480
_0809561C: .4byte gUnknown_203B484
_08095620: .4byte gUnknown_203B48C
thumb_func_end sub_80954CC
thumb_func_start sub_8095624
sub_8095624:
push {r4-r6,lr}
sub sp, 0x10
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809486C
ldr r6, _08095768
movs r5, 0
movs r4, 0x1F
_0809563A:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8095824
adds r5, 0x30
subs r4, 0x1
cmp r4, 0
bge _0809563A
ldr r4, _0809576C
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl sub_809488C
ldr r5, [r4]
adds r4, r5, 0x4
mov r0, sp
adds r1, r4, 0
movs r2, 0x2
bl sub_809488C
adds r1, r5, 0x6
mov r0, sp
movs r2, 0x1
bl sub_809488C
adds r1, r5, 0x7
mov r0, sp
movs r2, 0x7
bl sub_809488C
adds r4, 0x4
mov r0, sp
adds r1, r4, 0
bl sub_80902F4
adds r1, r5, 0
adds r1, 0xC
mov r0, sp
movs r2, 0x9
bl sub_809488C
adds r1, r5, 0
adds r1, 0x10
mov r0, sp
bl sub_808F41C
adds r1, r5, 0
adds r1, 0x14
mov r0, sp
bl sub_808F41C
adds r1, r5, 0
adds r1, 0x18
mov r0, sp
movs r2, 0xA
bl sub_809488C
adds r1, r5, 0
adds r1, 0x1A
mov r0, sp
movs r2, 0xA
bl sub_809488C
adds r1, r5, 0
adds r1, 0x1C
mov r0, sp
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x1D
mov r0, sp
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x1E
mov r0, sp
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x1F
mov r0, sp
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x20
mov r0, sp
movs r2, 0x18
bl sub_809488C
adds r1, r5, 0
adds r1, 0x24
mov r0, sp
movs r2, 0x18
bl sub_809488C
adds r1, r5, 0
adds r1, 0x28
mov r0, sp
movs r2, 0x4
bl sub_809488C
adds r1, r5, 0
adds r1, 0x2C
mov r0, sp
bl sub_8091DE0
adds r1, r5, 0
adds r1, 0x30
mov r0, sp
bl sub_8094108
adds r1, r5, 0
adds r1, 0x50
mov r0, sp
movs r2, 0x50
bl sub_809488C
ldr r4, _08095770
ldr r1, [r4]
mov r0, sp
movs r2, 0x20
bl sub_809488C
adds r6, r4, 0
movs r5, 0x4
movs r4, 0x1F
_08095742:
ldr r1, [r6]
adds r1, r5
mov r0, sp
movs r2, 0x20
bl sub_809488C
adds r5, 0x4
subs r4, 0x1
cmp r4, 0
bge _08095742
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x10
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_08095768: .4byte gUnknown_203B480
_0809576C: .4byte gUnknown_203B484
_08095770: .4byte gUnknown_203B48C
thumb_func_end sub_8095624
thumb_func_start sub_8095774
sub_8095774:
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8094924
adds r1, r5, 0x4
adds r0, r4, 0
bl sub_8090314
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl sub_8094924
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl sub_8094924
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x20
bl sub_8094924
adds r1, r5, 0
adds r1, 0x14
adds r0, r4, 0
movs r2, 0x50
bl sub_8094924
adds r1, r5, 0
adds r1, 0x20
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x21
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x22
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x24
adds r0, r4, 0
movs r2, 0x20
bl sub_8094924
adds r1, r5, 0
adds r1, 0x28
adds r0, r4, 0
movs r2, 0x20
bl sub_8094924
adds r1, r5, 0
adds r1, 0x2C
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r0, r4, 0
mov r1, sp
movs r2, 0x1
bl sub_8094924
mov r0, sp
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
adds r1, r5, 0
adds r1, 0x2D
strb r0, [r1]
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8095774
thumb_func_start sub_8095824
sub_8095824:
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r4, r1, 0
movs r1, 0xFF
mov r0, sp
strb r1, [r0]
mov r6, sp
adds r6, 0x1
movs r0, 0
strb r0, [r6]
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x4
bl sub_809488C
adds r1, r4, 0x4
adds r0, r5, 0
bl sub_80902F4
adds r1, r4, 0
adds r1, 0x8
adds r0, r5, 0
movs r2, 0x18
bl sub_809488C
adds r1, r4, 0
adds r1, 0xC
adds r0, r5, 0
movs r2, 0x9
bl sub_809488C
adds r1, r4, 0
adds r1, 0x10
adds r0, r5, 0
movs r2, 0x20
bl sub_809488C
adds r1, r4, 0
adds r1, 0x14
adds r0, r5, 0
movs r2, 0x50
bl sub_809488C
adds r1, r4, 0
adds r1, 0x20
adds r0, r5, 0
movs r2, 0x8
bl sub_809488C
adds r1, r4, 0
adds r1, 0x21
adds r0, r5, 0
movs r2, 0x8
bl sub_809488C
adds r1, r4, 0
adds r1, 0x22
adds r0, r5, 0
movs r2, 0x8
bl sub_809488C
adds r1, r4, 0
adds r1, 0x24
adds r0, r5, 0
movs r2, 0x20
bl sub_809488C
adds r1, r4, 0
adds r1, 0x28
adds r0, r5, 0
movs r2, 0x20
bl sub_809488C
adds r1, r4, 0
adds r1, 0x2C
adds r0, r5, 0
movs r2, 0x8
bl sub_809488C
adds r0, r4, 0
adds r0, 0x2D
ldrb r0, [r0]
mov r1, sp
cmp r0, 0
bne _080958D2
adds r1, r6, 0
_080958D2:
adds r0, r5, 0
movs r2, 0x1
bl sub_809488C
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8095824
thumb_func_start sub_80958E4
sub_80958E4:
str r1, [r0]
bx lr
thumb_func_end sub_80958E4
thumb_func_start sub_80958E8
sub_80958E8:
ldr r1, _080958F0
ldr r0, _080958F4
str r0, [r1]
bx lr
.align 2, 0
_080958F0: .4byte gUnknown_203B490
_080958F4: .4byte gUnknown_2039448
thumb_func_end sub_80958E8
thumb_func_start sub_80958F8
sub_80958F8:
ldr r0, _080958FC
bx lr
.align 2, 0
_080958FC: .4byte gUnknown_2039448
thumb_func_end sub_80958F8
thumb_func_start sub_8095900
sub_8095900:
push {r4-r7,lr}
movs r4, 0
_08095904:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096040
adds r4, 0x1
cmp r4, 0x3
ble _08095904
movs r4, 0
_08095914:
lsls r0, r4, 24
lsrs r0, 24
bl sub_80965B8
adds r4, 0x1
cmp r4, 0x7
ble _08095914
movs r4, 0
_08095924:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096C3C
adds r4, 0x1
cmp r4, 0x7
ble _08095924
movs r4, 0
ldr r3, _080959B8
movs r2, 0xBC
lsls r2, 2
movs r1, 0
_0809593C:
ldr r0, [r3]
adds r0, r2
adds r0, r4
strb r1, [r0]
adds r4, 0x1
cmp r4, 0x37
ble _0809593C
ldr r4, _080959B8
ldr r0, [r4]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
movs r1, 0
strb r1, [r0]
ldr r0, [r4]
movs r7, 0xC8
lsls r7, 1
adds r0, r7
movs r1, 0x28
bl MemoryClear8
ldr r0, [r4]
movs r1, 0xDC
lsls r1, 1
adds r0, r1
movs r1, 0x78
bl MemoryClear8
adds r3, r4, 0
movs r5, 0
movs r2, 0
movs r6, 0x8C
lsls r6, 2
movs r4, 0xF
_08095980:
ldr r0, [r3]
adds r0, r2
adds r0, r6
movs r1, 0x63
strb r1, [r0]
ldr r0, [r3]
adds r0, r2
ldr r7, _080959BC
adds r0, r7
movs r1, 0x1
strb r1, [r0]
ldr r1, [r3]
adds r7, 0x3
adds r0, r1, r7
adds r0, r2
str r5, [r0]
adds r7, 0x4
adds r0, r1, r7
adds r0, r2
str r5, [r0]
adds r2, 0xC
subs r4, 0x1
cmp r4, 0
bge _08095980
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080959B8: .4byte gUnknown_203B490
_080959BC: .4byte 0x00000231
thumb_func_end sub_8095900
thumb_func_start sub_80959C0
sub_80959C0:
push {lr}
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0x5
bne _080959D6
adds r0, r1, 0
bl sub_80959DC
lsls r0, 24
lsrs r0, 24
b _080959D8
_080959D6:
movs r0, 0
_080959D8:
pop {r1}
bx r1
thumb_func_end sub_80959C0
thumb_func_start sub_80959DC
sub_80959DC:
push {r4-r6,lr}
adds r5, r0, 0
ldrb r0, [r5, 0x1]
cmp r0, 0x4
bls _080959E8
b _08095B16
_080959E8:
cmp r0, 0x4
bne _080959F8
ldrb r0, [r5, 0x4]
bl GetMaxItemCount
cmp r0, 0
bne _080959F8
b _08095B16
_080959F8:
ldrb r0, [r5, 0x2]
cmp r0, 0x9
bls _08095A00
b _08095B16
_08095A00:
ldrb r0, [r5, 0x4]
bl sub_809095C
lsls r0, 24
cmp r0, 0
beq _08095A0E
b _08095B16
_08095A0E:
ldrb r4, [r5, 0x5]
ldrb r0, [r5, 0x4]
bl sub_8090298
cmp r4, r0
bge _08095B16
adds r4, r5, 0x4
adds r0, r4, 0
bl sub_809017C
lsls r0, 24
adds r6, r4, 0
cmp r0, 0
bne _08095B16
movs r1, 0xC
ldrsh r0, [r5, r1]
cmp r0, 0
beq _08095B16
ldr r4, _08095B1C
cmp r0, r4
bgt _08095B16
movs r2, 0xC
ldrsh r0, [r5, r2]
bl sub_808E770
movs r2, 0xC
ldrsh r1, [r5, r2]
lsls r0, 16
asrs r0, 16
cmp r1, r0
bne _08095B16
movs r1, 0xC
ldrsh r0, [r5, r1]
bl sub_803C0DC
lsls r0, 24
cmp r0, 0
beq _08095B16
movs r2, 0xE
ldrsh r0, [r5, r2]
cmp r0, r4
bgt _08095B16
movs r1, 0xE
ldrsh r0, [r5, r1]
bl sub_808E770
movs r2, 0xE
ldrsh r1, [r5, r2]
lsls r0, 16
asrs r0, 16
cmp r1, r0
bne _08095B16
movs r1, 0xE
ldrsh r0, [r5, r1]
bl sub_803C0DC
lsls r0, 24
cmp r0, 0
beq _08095B16
ldrb r0, [r5, 0x1]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _08095A9C
movs r2, 0xE
ldrsh r1, [r5, r2]
movs r2, 0xC
ldrsh r0, [r5, r2]
cmp r1, r0
bne _08095B16
_08095A9C:
ldrb r0, [r5, 0x10]
bl sub_8092040
lsls r0, 24
cmp r0, 0
bne _08095B16
ldrb r0, [r5, 0x10]
bl sub_8090A60
lsls r0, 24
cmp r0, 0
bne _08095B16
ldrb r0, [r5, 0x10]
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _08095B16
ldrb r0, [r5, 0x1]
cmp r0, 0x3
bne _08095AD4
ldrb r0, [r5, 0x4]
ldrb r1, [r5, 0x10]
bl sub_8091E60
lsls r0, 24
cmp r0, 0
beq _08095B16
_08095AD4:
ldrb r0, [r5, 0x11]
cmp r0, 0x4
beq _08095B16
cmp r0, 0xA
beq _08095B16
cmp r0, 0xA
bhi _08095B16
ldrb r0, [r5, 0x12]
bl sub_8092040
lsls r0, 24
cmp r0, 0
bne _08095B16
ldrb r0, [r5, 0x13]
cmp r0, 0x39
bhi _08095B16
ldrb r0, [r5, 0x11]
cmp r0, 0x9
bne _08095B20
ldrb r0, [r5, 0x13]
bl GetFriendAreaUnlockCondition
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _08095B16
ldrb r1, [r5, 0x1]
adds r0, r6, 0
bl sub_803C1D0
lsls r0, 24
cmp r0, 0
bne _08095B20
_08095B16:
movs r0, 0
b _08095B22
.align 2, 0
_08095B1C: .4byte 0x000001a7
_08095B20:
movs r0, 0x1
_08095B22:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80959DC
thumb_func_start sub_8095B28
sub_8095B28:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _08095B44
add sp, r4
adds r4, r0, 0
bl sub_8095CE0
lsls r0, 24
cmp r0, 0
bne _08095B48
movs r0, 0
b _08095CCC
.align 2, 0
_08095B44: .4byte 0xfffffcb0
_08095B48:
movs r0, 0x5
strb r0, [r4]
movs r0, 0x8
bl RandomCapped
ldr r1, _08095BC8
adds r0, r1
ldrb r0, [r0]
strb r0, [r4, 0x1]
cmp r0, 0x2
bne _08095B6C
bl sub_8092178
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _08095B6C
strb r0, [r4, 0x1]
_08095B6C:
movs r0, 0
strb r0, [r4, 0x2]
bl Random
ldr r1, _08095BCC
ands r1, r0
str r1, [r4, 0x8]
movs r7, 0
movs r5, 0x1
adds r0, r4, 0x4
mov r8, r0
movs r1, 0x12
adds r1, r4
mov r9, r1
mov r6, sp
_08095B8A:
lsls r0, r5, 16
asrs r0, 16
bl sub_803C110
lsls r0, 24
cmp r0, 0
beq _08095B9E
strh r5, [r6]
adds r6, 0x2
adds r7, 0x1
_08095B9E:
adds r5, 0x1
ldr r0, _08095BD0
cmp r5, r0
ble _08095B8A
cmp r7, 0
beq _08095BD4
adds r0, r7, 0
bl RandomCapped
lsls r0, 1
add r0, sp
ldrh r0, [r0]
strh r0, [r4, 0xC]
adds r0, r7, 0
bl RandomCapped
lsls r0, 1
add r0, sp
ldrh r0, [r0]
b _08095BDC
.align 2, 0
_08095BC8: .4byte gUnknown_8109984
_08095BCC: .4byte 0x00ffffff
_08095BD0: .4byte 0x000001a7
_08095BD4:
movs r0, 0x10
strh r0, [r4, 0xC]
movs r0, 0x91
lsls r0, 1
_08095BDC:
strh r0, [r4, 0xE]
ldrb r0, [r4, 0x1]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _08095BEE
ldrh r0, [r4, 0xC]
strh r0, [r4, 0xE]
_08095BEE:
ldrb r0, [r4, 0x4]
bl sub_8095F28
strb r0, [r4, 0x10]
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _08095C10
strb r0, [r4, 0x1]
ldrh r0, [r4, 0xC]
strh r0, [r4, 0xE]
adds r2, r4, 0
adds r2, 0x10
mov r0, r8
movs r1, 0
bl sub_803C37C
_08095C10:
ldrb r0, [r4, 0x4]
bl GetMaxItemCount
adds r1, r0, 0
cmp r1, 0
bne _08095C28
ldrb r0, [r4, 0x1]
cmp r0, 0x4
bne _08095C28
strb r1, [r4, 0x1]
ldrh r0, [r4, 0xC]
strh r0, [r4, 0xE]
_08095C28:
ldrb r1, [r4, 0x1]
mov r0, r8
mov r2, r9
bl sub_803C37C
ldrb r0, [r4, 0x10]
ldrb r1, [r4, 0x12]
cmp r0, r1
beq _08095C28
movs r0, 0
strb r0, [r4, 0x13]
ldrb r0, [r4, 0x1]
cmp r0, 0x2
beq _08095C90
cmp r0, 0x2
bgt _08095C4E
cmp r0, 0x1
beq _08095C6C
b _08095CCA
_08095C4E:
cmp r0, 0x4
bgt _08095CCA
bl Random
adds r1, r0, 0
movs r0, 0xE0
lsls r0, 3
ands r1, r0
movs r0, 0xC0
lsls r0, 2
cmp r1, r0
beq _08095CC4
cmp r1, r0
bgt _08095CB4
b _08095CAA
_08095C6C:
bl Random
adds r1, r0, 0
movs r0, 0x70
ands r1, r0
cmp r1, 0x10
beq _08095C80
cmp r1, 0x30
beq _08095C88
b _08095CCA
_08095C80:
adds r0, r4, 0
bl sub_803C3E0
b _08095CCA
_08095C88:
adds r0, r4, 0
bl sub_803C45C
b _08095CCA
_08095C90:
bl Random
movs r1, 0xC0
lsls r1, 6
ands r1, r0
movs r0, 0x80
lsls r0, 5
cmp r1, r0
bne _08095CCA
adds r0, r4, 0
bl sub_803C4F0
b _08095CCA
_08095CAA:
movs r0, 0x80
lsls r0, 1
cmp r1, r0
beq _08095CBC
b _08095CCA
_08095CB4:
movs r0, 0xC0
lsls r0, 3
cmp r1, r0
bne _08095CCA
_08095CBC:
adds r0, r4, 0
bl sub_803C580
b _08095CCA
_08095CC4:
adds r0, r4, 0
bl sub_803C610
_08095CCA:
movs r0, 0x1
_08095CCC:
movs r3, 0xD4
lsls r3, 2
add sp, r3
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8095B28
thumb_func_start sub_8095CE0
sub_8095CE0:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x60
str r0, [sp, 0x44]
mov r0, sp
bl sub_80A29B0
str r0, [sp, 0x4C]
cmp r0, 0
bne _08095D0C
mov r0, sp
add r1, sp, 0x4C
ldrb r1, [r1]
strb r1, [r0]
mov r1, sp
movs r0, 0x1
strb r0, [r1, 0x1]
movs r2, 0x2
str r2, [sp, 0x4C]
_08095D0C:
ldr r0, [sp, 0x4C]
bl RandomCapped
mov r9, r0
str r0, [sp, 0x48]
mov r1, sp
adds r1, 0x40
str r1, [sp, 0x5C]
_08095D1C:
mov r0, sp
add r0, r9
ldrb r7, [r0]
adds r0, r7, 0
bl sub_8090298
str r0, [sp, 0x58]
lsrs r0, 31
ldr r2, [sp, 0x58]
adds r0, r2, r0
asrs r0, 1
str r0, [sp, 0x54]
adds r1, r2, 0
bl RandomRange
adds r4, r0, 0
str r4, [sp, 0x50]
_08095D3E:
movs r0, 0x1
mov r8, r0
ldr r1, _08095DF4
ldr r0, [sp, 0x40]
ands r0, r1
orrs r0, r7
lsls r2, r4, 24
lsrs r2, 16
ldr r1, _08095DF8
ands r0, r1
orrs r0, r2
str r0, [sp, 0x40]
ldr r0, [sp, 0x5C]
bl sub_809017C
lsls r0, 24
cmp r0, 0
beq _08095D66
movs r1, 0
mov r8, r1
_08095D66:
ldr r2, _08095DFC
mov r10, r2
movs r6, 0
movs r5, 0x3
_08095D6E:
mov r1, r10
ldr r0, [r1]
adds r0, r6
adds r1, r7, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_8095E38
lsls r0, 24
cmp r0, 0
beq _08095D88
movs r2, 0
mov r8, r2
_08095D88:
adds r6, 0x14
subs r5, 0x1
cmp r5, 0
bge _08095D6E
ldr r0, _08095DFC
mov r10, r0
movs r6, 0x50
movs r5, 0x7
_08095D98:
mov r1, r10
ldr r0, [r1]
adds r0, r6
adds r1, r7, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_8095E38
lsls r0, 24
cmp r0, 0
beq _08095DB2
movs r2, 0
mov r8, r2
_08095DB2:
adds r6, 0x14
subs r5, 0x1
cmp r5, 0
bge _08095D98
ldr r0, _08095DFC
mov r10, r0
movs r6, 0xF0
movs r5, 0x7
_08095DC2:
mov r1, r10
ldr r0, [r1]
adds r0, r6
adds r1, r7, 0
adds r2, r4, 0
movs r3, 0x1
bl sub_8095E38
lsls r0, 24
cmp r0, 0
beq _08095DDC
movs r2, 0
mov r8, r2
_08095DDC:
adds r6, 0x14
subs r5, 0x1
cmp r5, 0
bge _08095DC2
mov r0, r8
cmp r0, 0
beq _08095E00
ldr r1, [sp, 0x44]
strb r7, [r1, 0x4]
strb r4, [r1, 0x5]
movs r0, 0x1
b _08095E28
.align 2, 0
_08095DF4: .4byte 0xffffff00
_08095DF8: .4byte 0xffff00ff
_08095DFC: .4byte gUnknown_203B490
_08095E00:
adds r4, 0x1
ldr r2, [sp, 0x58]
cmp r4, r2
blt _08095E0A
ldr r4, [sp, 0x54]
_08095E0A:
ldr r0, [sp, 0x50]
cmp r4, r0
bne _08095D3E
movs r1, 0x1
add r9, r1
ldr r2, [sp, 0x4C]
cmp r9, r2
bne _08095E1E
movs r0, 0
mov r9, r0
_08095E1E:
ldr r1, [sp, 0x48]
cmp r9, r1
beq _08095E26
b _08095D1C
_08095E26:
movs r0, 0
_08095E28:
add sp, 0x60
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8095CE0
thumb_func_start sub_8095E38
sub_8095E38:
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r3, 24
ldrb r0, [r4]
cmp r0, 0
beq _08095E6E
ldrb r0, [r4, 0x1]
cmp r0, 0x2
bne _08095E5E
cmp r3, 0x1
bne _08095E5E
ldrb r0, [r4, 0x4]
cmp r0, r1
bne _08095E6E
movs r0, 0x1
b _08095E70
_08095E5E:
ldrb r0, [r4, 0x4]
cmp r0, r1
bne _08095E6E
ldrb r0, [r4, 0x5]
cmp r0, r2
bne _08095E6E
movs r0, 0x1
b _08095E70
_08095E6E:
movs r0, 0
_08095E70:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8095E38
thumb_func_start sub_8095E78
sub_8095E78:
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x3C
movs r6, 0
movs r5, 0x1
_08095E84:
ldr r0, _08095F04
ldr r0, [r0]
adds r0, r5
ldrb r0, [r0]
adds r1, r5, 0x1
mov r8, r1
cmp r0, 0
bne _08095EF6
lsls r0, r5, 24
lsrs r0, 24
bl 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 sub_8091E60
lsls r0, 24
cmp r0, 0
beq _08095F6A
_08095F48:
lsrs r4, 24
adds r0, r4, 0
bl sub_8090A60
lsls r0, 24
cmp r0, 0
bne _08095F6A
adds r0, r4, 0
bl sub_8091524
lsls r0, 24
cmp r0, 0
beq _08095F6A
mov r1, sp
adds r0, r1, r6
strb r5, [r0]
adds r6, 0x1
_08095F6A:
adds r5, 0x1
cmp r5, 0xEF
ble _08095F34
cmp r6, 0
beq _08095F80
adds r0, r6, 0
bl RandomCapped
add r0, sp
ldrb r0, [r0]
b _08095F82
_08095F80:
movs r0, 0
_08095F82:
add sp, 0xF0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8095F28
thumb_func_start sub_8095F8C
sub_8095F8C:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_08095F92:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096000
lsls r0, 24
cmp r0, 0
bne _08095FA2
adds r5, 0x1
_08095FA2:
adds r4, 0x1
cmp r4, 0x3
ble _08095F92
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095F8C
thumb_func_start sub_8095FB0
sub_8095FB0:
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldr r5, _08095FD4
movs r2, 0
_08095FBA:
ldr r0, [r5]
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
bne _08095FD8
adds r0, r4, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
movs r0, 0
b _08095FE2
.align 2, 0
_08095FD4: .4byte gUnknown_203B490
_08095FD8:
adds r2, 0x14
adds r3, 0x1
cmp r3, 0x3
ble _08095FBA
movs r0, 0x1
_08095FE2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8095FB0
thumb_func_start sub_8095FE8
sub_8095FE8:
lsls r0, 24
lsrs r0, 24
ldr r2, _08095FFC
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
ldr r0, [r2]
adds r0, r1
bx lr
.align 2, 0
_08095FFC: .4byte gUnknown_203B490
thumb_func_end sub_8095FE8
thumb_func_start sub_8096000
sub_8096000:
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0809601C
ldr r2, [r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r2, r1
ldrb r0, [r2]
cmp r0, 0
beq _08096020
movs r0, 0
b _08096022
.align 2, 0
_0809601C: .4byte gUnknown_203B490
_08096020:
movs r0, 0x1
_08096022:
pop {r1}
bx r1
thumb_func_end sub_8096000
thumb_func_start sub_8096028
sub_8096028:
push {r4,lr}
movs r4, 0
_0809602C:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096040
adds r4, 0x1
cmp r4, 0x3
ble _0809602C
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8096028
thumb_func_start sub_8096040
sub_8096040:
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _08096074
ldr r1, [r3]
lsls r2, r0, 2
adds r2, r0
lsls r2, 2
adds r1, r2
movs r4, 0
strb r4, [r1]
ldr r0, [r3]
adds r0, r2
movs r1, 0x63
strb r1, [r0, 0x4]
ldr r0, [r3]
adds r0, r2
strb r4, [r0, 0x5]
ldr r0, [r3]
adds r0, r2
movs r1, 0x5
strb r1, [r0, 0x11]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08096074: .4byte gUnknown_203B490
thumb_func_end sub_8096040
thumb_func_start sub_8096078
sub_8096078:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r2, 0
movs r3, 0
ldr r0, _08096090
mov r12, r0
mov r8, r3
movs r4, 0
mov r9, r4
b _080960B6
.align 2, 0
_08096090: .4byte gUnknown_203B490
_08096094:
cmp r2, r3
ble _080960AA
mov r1, r12
ldr r0, [r1]
mov r5, r8
adds r1, r0, r5
adds r0, r4
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r6,r7}
stm r1!, {r6,r7}
_080960AA:
adds r4, 0x14
movs r0, 0x14
add r9, r0
adds r2, 0x1
add r8, r0
adds r3, 0x1
_080960B6:
cmp r2, 0x3
bgt _080960E2
mov r1, r12
ldr r0, [r1]
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
bne _080960E2
ldr r6, _08096110
mov r1, r9
_080960CA:
adds r1, 0x14
adds r4, 0x14
movs r5, 0x14
add r9, r5
adds r2, 0x1
cmp r2, 0x3
bgt _080960E2
ldr r0, [r6]
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _080960CA
_080960E2:
cmp r2, 0x4
bne _08096094
cmp r3, 0x3
bgt _08096102
ldr r4, _08096110
movs r2, 0
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 2
_080960F4:
ldr r0, [r4]
adds r0, r1
strb r2, [r0]
adds r1, 0x14
adds r3, 0x1
cmp r3, 0x3
ble _080960F4
_08096102:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096110: .4byte gUnknown_203B490
thumb_func_end sub_8096078
thumb_func_start sub_8096114
sub_8096114:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
movs r1, 0
_08096122:
adds r0, r1, 0x1
mov r10, r0
mov r8, r10
cmp r0, 0x3
bgt _08096198
ldr r2, _080961B0
mov r9, r2
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
mov r12, r0
mov r3, r10
lsls r0, r3, 2
add r0, r10
lsls r4, r0, 2
_08096140:
mov r5, r9
ldr r1, [r5]
adds r3, r1, r4
ldrb r0, [r3]
cmp r0, 0
beq _0809618C
mov r6, r12
adds r2, r1, r6
ldrb r1, [r2, 0x4]
ldrb r0, [r3, 0x4]
cmp r1, r0
bhi _08096164
cmp r1, r0
bne _0809618C
ldrb r0, [r2, 0x5]
ldrb r7, [r3, 0x5]
cmp r0, r7
bls _0809618C
_08096164:
mov r1, sp
adds r0, r2, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5,r6}
stm r1!, {r5,r6}
adds r1, r2, 0
adds r0, r3, 0
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r5,r6}
stm r1!, {r5,r6}
mov r7, r9
ldr r1, [r7]
adds r1, r4
mov r0, sp
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r6,r7}
stm r1!, {r6,r7}
_0809618C:
adds r4, 0x14
movs r0, 0x1
add r8, r0
mov r1, r8
cmp r1, 0x3
ble _08096140
_08096198:
mov r1, r10
cmp r1, 0x2
ble _08096122
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080961B0: .4byte gUnknown_203B490
thumb_func_end sub_8096114
thumb_func_start sub_80961B4
sub_80961B4:
push {lr}
bl sub_8096E2C
lsls r0, 24
cmp r0, 0
beq _080961CE
ldr r0, _080961D4
ldr r0, [r0]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
movs r1, 0x1
strb r1, [r0]
_080961CE:
pop {r0}
bx r0
.align 2, 0
_080961D4: .4byte gUnknown_203B490
thumb_func_end sub_80961B4
thumb_func_start sub_80961D8
sub_80961D8:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r7, 0
bl sub_8095F8C
adds r6, r0, 0
movs r1, 0x4
bl RandomRange
mov r8, r0
cmp r6, 0x3
bgt _08096202
ldr r4, _08096208
ldr r0, [r4]
movs r2, 0xCA
lsls r2, 2
adds r1, r0, r2
ldrb r0, [r1]
cmp r0, 0
bne _0809620C
_08096202:
movs r0, 0
b _080963A8
.align 2, 0
_08096208: .4byte gUnknown_203B490
_0809620C:
strb r7, [r1]
movs r5, 0x38
movs r0, 0xA
movs r1, 0x31
movs r2, 0x1
bl sub_8001D08
lsls r0, 24
cmp r0, 0
beq _0809623A
ldr r0, [r4]
ldr r1, _08096328
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0809623A
movs r0, 0x35
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _0809623A
movs r5, 0x35
_0809623A:
movs r0, 0xF
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _0809629C
ldr r0, _0809632C
ldr r0, [r0]
movs r2, 0xC9
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _08096264
movs r0, 0x34
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _08096264
movs r5, 0x34
_08096264:
ldr r0, _0809632C
ldr r0, [r0]
ldr r1, _08096330
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _08096280
movs r0, 0x33
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _08096280
movs r5, 0x33
_08096280:
ldr r0, _0809632C
ldr r0, [r0]
ldr r2, _08096334
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _0809629C
movs r0, 0x32
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _0809629C
movs r5, 0x32
_0809629C:
bl sub_8092178
lsls r0, 24
lsrs r0, 24
cmp r0, 0x6
bne _080962C4
ldr r0, _0809632C
ldr r0, [r0]
ldr r1, _08096338
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080962C4
movs r0, 0x36
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _080962C4
movs r5, 0x36
_080962C4:
movs r0, 0x6
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080962EC
ldr r0, _0809632C
ldr r0, [r0]
ldr r2, _0809633C
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
bne _080962EC
movs r0, 0x37
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _080962EC
movs r5, 0x37
_080962EC:
cmp r5, 0x38
bne _08096310
cmp r6, r8
bgt _08096392
bl sub_8096E2C
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0xE
bl sub_80023E4
lsls r0, 24
cmp r0, 0
bne _0809630C
cmp r5, 0x2
bhi _0809638E
_0809630C:
cmp r5, 0x31
bhi _0809638E
_08096310:
lsls r0, r6, 24
lsrs r0, 24
bl sub_8095FE8
adds r4, r0, 0
movs r0, 0x1
strb r0, [r4]
movs r0, 0x62
strb r0, [r4, 0x4]
strb r5, [r4, 0x5]
b _0809638A
.align 2, 0
_08096328: .4byte 0x00000325
_0809632C: .4byte gUnknown_203B490
_08096330: .4byte 0x00000323
_08096334: .4byte 0x00000322
_08096338: .4byte 0x00000326
_0809633C: .4byte 0x00000327
_08096340:
lsls r0, r6, 24
lsrs r0, 24
bl sub_8095FE8
adds r4, r0, 0
bl sub_8095B28
lsls r0, 24
cmp r0, 0
beq _08096392
bl sub_8095E78
lsls r0, 24
lsrs r5, r0, 24
adds r0, r4, 0x4
ldrb r1, [r4, 0x1]
bl sub_803C1D0
lsls r0, 24
cmp r0, 0
bne _0809636C
movs r5, 0
_0809636C:
movs r0, 0x5
movs r1, 0xA
bl RandomRange
strb r0, [r4, 0x11]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x9
bne _0809638A
cmp r5, 0
bne _08096388
movs r0, 0x5
strb r0, [r4, 0x11]
b _0809638A
_08096388:
strb r5, [r4, 0x13]
_0809638A:
movs r7, 0x1
adds r6, 0x1
_0809638E:
cmp r6, r8
ble _08096340
_08096392:
bl sub_80963B4
lsls r0, 24
cmp r0, 0
beq _0809639E
movs r7, 0x1
_0809639E:
bl sub_8096078
bl sub_8096114
adds r0, r7, 0
_080963A8:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80961D8
thumb_func_start sub_80963B4
sub_80963B4:
push {r4-r6,lr}
movs r6, 0
bl sub_8096E2C
lsls r0, 24
lsrs r5, r0, 24
bl sub_8095F8C
adds r4, r0, 0
cmp r4, 0x3
ble _080963CE
movs r0, 0
b _080963F4
_080963CE:
movs r0, 0xE
bl sub_80023E4
lsls r0, 24
cmp r0, 0
beq _080963F2
cmp r5, 0x31
bhi _080963F2
lsls r0, r4, 24
lsrs r0, 24
bl sub_8095FE8
movs r1, 0x1
strb r1, [r0]
movs r1, 0x62
strb r1, [r0, 0x4]
strb r5, [r0, 0x5]
movs r6, 0x1
_080963F2:
adds r0, r6, 0
_080963F4:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80963B4
thumb_func_start sub_80963FC
sub_80963FC:
push {r4-r6,lr}
movs r6, 0
_08096400:
lsls r0, r6, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_8095FE8
adds r5, r0, 0
ldrb r0, [r5]
cmp r0, 0x1
beq _08096418
adds r0, r4, 0
bl sub_8096040
_08096418:
adds r6, 0x1
cmp r6, 0x3
ble _08096400
bl sub_8096078
bl sub_8095F8C
lsls r0, 24
lsrs r0, 24
bl sub_8095FE8
adds r5, r0, 0
movs r0, 0
movs r4, 0x5
strb r4, [r5]
strb r0, [r5, 0x1]
strb r0, [r5, 0x2]
movs r0, 0x2
strb r0, [r5, 0x4]
movs r0, 0x3
strb r0, [r5, 0x5]
bl Random
ldr r1, _08096484
ands r1, r0
str r1, [r5, 0x8]
movs r0, 0x10
strh r0, [r5, 0xC]
strh r0, [r5, 0xE]
ldrb r0, [r5, 0x4]
bl sub_8095F28
strb r0, [r5, 0x10]
strb r4, [r5, 0x11]
_0809645C:
ldrb r1, [r5, 0x1]
adds r0, r5, 0x4
adds r2, r5, 0
adds r2, 0x12
bl sub_803C37C
ldrb r0, [r5, 0x10]
ldrb r1, [r5, 0x12]
cmp r0, r1
beq _0809645C
movs r0, 0
strb r0, [r5, 0x13]
bl sub_8096078
bl sub_8096114
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08096484: .4byte 0x00ffffff
thumb_func_end sub_80963FC
thumb_func_start sub_8096488
sub_8096488:
push {r4,lr}
movs r4, 0
_0809648C:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096040
adds r4, 0x1
cmp r4, 0x3
ble _0809648C
movs r0, 0
bl sub_8095FE8
movs r2, 0
movs r1, 0x1
strb r1, [r0]
movs r1, 0x62
strb r1, [r0, 0x4]
strb r2, [r0, 0x5]
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8096488
thumb_func_start sub_80964B4
sub_80964B4:
push {lr}
ldr r0, _080964D4
ldr r0, [r0]
ldr r1, _080964D8
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _080964DC
movs r0, 0x35
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _080964DC
movs r0, 0
b _080964DE
.align 2, 0
_080964D4: .4byte gUnknown_203B490
_080964D8: .4byte 0x00000325
_080964DC:
movs r0, 0x1
_080964DE:
pop {r1}
bx r1
thumb_func_end sub_80964B4
thumb_func_start sub_80964E4
sub_80964E4:
push {lr}
ldr r0, _08096504
ldr r0, [r0]
ldr r1, _08096508
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
bne _0809650C
movs r0, 0x36
bl sub_8096E80
lsls r0, 24
cmp r0, 0
bne _0809650C
movs r0, 0
b _0809650E
.align 2, 0
_08096504: .4byte gUnknown_203B490
_08096508: .4byte 0x00000326
_0809650C:
movs r0, 0x1
_0809650E:
pop {r1}
bx r1
thumb_func_end sub_80964E4
thumb_func_start sub_8096514
sub_8096514:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_0809651A:
lsls r0, r4, 24
lsrs r0, 24
bl sub_809658C
lsls r0, 24
cmp r0, 0
bne _0809652A
adds r5, 0x1
_0809652A:
adds r4, 0x1
cmp r4, 0x7
ble _0809651A
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096514
thumb_func_start sub_8096538
sub_8096538:
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldr r5, _08096560
movs r2, 0
_08096542:
ldr r0, [r5]
adds r0, r2
adds r1, r0, 0
adds r1, 0x50
ldrb r0, [r1]
cmp r0, 0
bne _08096564
adds r0, r4, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
movs r0, 0
b _0809656E
.align 2, 0
_08096560: .4byte gUnknown_203B490
_08096564:
adds r2, 0x14
adds r3, 0x1
cmp r3, 0x7
ble _08096542
movs r0, 0x1
_0809656E:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096538
thumb_func_start sub_8096574
sub_8096574:
lsls r0, 24
lsrs r0, 24
ldr r2, _08096588
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, 0x50
ldr r0, [r2]
adds r0, r1
bx lr
.align 2, 0
_08096588: .4byte gUnknown_203B490
thumb_func_end sub_8096574
thumb_func_start sub_809658C
sub_809658C:
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _080965AC
ldr r2, [r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r2, r1
adds r2, 0x50
ldrb r0, [r2]
cmp r0, 0
beq _080965B0
movs r0, 0
b _080965B2
.align 2, 0
_080965AC: .4byte gUnknown_203B490
_080965B0:
movs r0, 0x1
_080965B2:
pop {r1}
bx r1
thumb_func_end sub_809658C
thumb_func_start sub_80965B8
sub_80965B8:
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, _080965F0
ldr r1, [r4]
lsls r2, r0, 2
adds r2, r0
lsls r2, 2
adds r1, r2
adds r1, 0x50
movs r3, 0
strb r3, [r1]
ldr r0, [r4]
adds r0, r2
adds r0, 0x54
movs r1, 0x63
strb r1, [r0]
ldr r0, [r4]
adds r0, r2
adds r0, 0x55
strb r3, [r0]
ldr r0, [r4]
adds r0, r2
adds r0, 0x61
strb r3, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080965F0: .4byte gUnknown_203B490
thumb_func_end sub_80965B8
thumb_func_start sub_80965F4
sub_80965F4:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r2, 0
movs r3, 0
ldr r0, _0809660C
mov r12, r0
mov r8, r3
movs r4, 0
mov r9, r4
b _08096636
.align 2, 0
_0809660C: .4byte gUnknown_203B490
_08096610:
cmp r2, r3
ble _0809662A
mov r1, r12
ldr r0, [r1]
mov r5, r8
adds r1, r0, r5
adds r0, r4
adds r1, 0x50
adds r0, 0x50
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r6,r7}
stm r1!, {r6,r7}
_0809662A:
adds r4, 0x14
movs r0, 0x14
add r9, r0
adds r2, 0x1
add r8, r0
adds r3, 0x1
_08096636:
cmp r2, 0x7
bgt _08096666
mov r1, r12
ldr r0, [r1]
adds r0, r4
adds r0, 0x50
ldrb r0, [r0]
cmp r0, 0
bne _08096666
ldr r6, _08096694
mov r1, r9
_0809664C:
adds r1, 0x14
adds r4, 0x14
movs r5, 0x14
add r9, r5
adds r2, 0x1
cmp r2, 0x7
bgt _08096666
ldr r0, [r6]
adds r0, r1
adds r0, 0x50
ldrb r0, [r0]
cmp r0, 0
beq _0809664C
_08096666:
cmp r2, 0x8
bne _08096610
cmp r3, 0x7
bgt _08096688
ldr r4, _08096694
movs r2, 0
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 2
_08096678:
ldr r0, [r4]
adds r0, r1
adds r0, 0x50
strb r2, [r0]
adds r1, 0x14
adds r3, 0x1
cmp r3, 0x7
ble _08096678
_08096688:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096694: .4byte gUnknown_203B490
thumb_func_end sub_80965F4
thumb_func_start sub_8096698
sub_8096698:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
movs r1, 0
_080966A6:
adds r6, r1, 0x1
mov r10, r6
cmp r6, 0x7
bgt _08096730
ldr r0, _08096748
mov r8, r0
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
mov r9, r0
lsls r0, r6, 2
adds r0, r6
lsls r4, r0, 2
_080966C0:
mov r2, r8
ldr r1, [r2]
adds r3, r1, r4
adds r5, r3, 0
adds r5, 0x50
ldrb r0, [r5]
cmp r0, 0
beq _08096724
add r1, r9
mov r12, r1
mov r0, r12
adds r0, 0x54
adds r1, r3, 0
adds r1, 0x54
ldrb r2, [r0]
ldrb r0, [r1]
cmp r2, r0
bhi _080966F6
cmp r2, r0
bne _08096724
mov r0, r12
adds r0, 0x55
adds r1, 0x1
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bls _08096724
_080966F6:
mov r1, sp
mov r0, r12
adds r0, 0x50
ldm r0!, {r2,r3,r7}
stm r1!, {r2,r3,r7}
ldm r0!, {r3,r7}
stm r1!, {r3,r7}
mov r1, r12
adds r1, 0x50
adds r0, r5, 0
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r7}
stm r1!, {r2,r7}
mov r3, r8
ldr r1, [r3]
adds r1, r4
adds r1, 0x50
mov r0, sp
ldm r0!, {r2,r5,r7}
stm r1!, {r2,r5,r7}
ldm r0!, {r3,r5}
stm r1!, {r3,r5}
_08096724:
adds r4, 0x14
movs r7, 0x1
add r10, r7
mov r0, r10
cmp r0, 0x7
ble _080966C0
_08096730:
adds r1, r6, 0
cmp r1, 0x6
ble _080966A6
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096748: .4byte gUnknown_203B490
thumb_func_end sub_8096698
thumb_func_start sub_809674C
sub_809674C:
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r0, 0x4
movs r1, 0x8
bl RandomRange
mov r8, r0
ldr r3, _08096864
movs r2, 0
movs r1, 0
movs r7, 0x7
_08096764:
ldr r0, [r3]
adds r0, r1
adds r0, 0x50
strb r2, [r0]
adds r1, 0x14
subs r7, 0x1
cmp r7, 0
bge _08096764
movs r7, 0
movs r0, 0xE
bl sub_8097318
lsls r0, 24
cmp r0, 0
beq _080967C0
movs r0, 0
bl sub_8096574
adds r5, r0, 0
movs r4, 0x2
strb r4, [r5]
movs r0, 0x6
strb r0, [r5, 0x1]
movs r0, 0x1
strb r0, [r5, 0x2]
movs r0, 0x2A
strb r0, [r5, 0x4]
movs r0, 0xA
strb r0, [r5, 0x5]
bl Random
ldr r1, _08096868
ands r1, r0
str r1, [r5, 0x8]
movs r1, 0
movs r0, 0xC2
lsls r0, 1
strh r0, [r5, 0xC]
movs r0, 0x38
strh r0, [r5, 0xE]
strb r1, [r5, 0x10]
strb r4, [r5, 0x11]
movs r0, 0x3A
strb r0, [r5, 0x12]
strb r1, [r5, 0x13]
movs r7, 0x1
_080967C0:
movs r0, 0xF
bl sub_8097318
lsls r0, 24
cmp r0, 0
beq _0809680A
lsls r0, r7, 24
lsrs r0, 24
bl sub_8096574
adds r5, r0, 0
movs r0, 0x3
strb r0, [r5]
movs r0, 0x6
strb r0, [r5, 0x1]
movs r4, 0x2
strb r4, [r5, 0x2]
movs r0, 0x35
strb r0, [r5, 0x4]
movs r0, 0xF
strb r0, [r5, 0x5]
bl Random
ldr r1, _08096868
ands r1, r0
str r1, [r5, 0x8]
movs r1, 0
movs r0, 0x82
lsls r0, 1
strh r0, [r5, 0xC]
strh r0, [r5, 0xE]
strb r1, [r5, 0x10]
strb r4, [r5, 0x11]
movs r0, 0x3A
strb r0, [r5, 0x12]
strb r1, [r5, 0x13]
adds r7, 0x1
_0809680A:
movs r0, 0x1C
bl sub_8097318
lsls r0, 24
cmp r0, 0
beq _08096854
lsls r0, r7, 24
lsrs r0, 24
bl sub_8096574
adds r5, r0, 0
movs r0, 0x4
strb r0, [r5]
movs r0, 0x6
strb r0, [r5, 0x1]
movs r0, 0x3
strb r0, [r5, 0x2]
movs r0, 0x1A
strb r0, [r5, 0x4]
movs r0, 0x14
strb r0, [r5, 0x5]
bl Random
ldr r1, _08096868
ands r1, r0
str r1, [r5, 0x8]
movs r1, 0
ldr r0, _0809686C
strh r0, [r5, 0xC]
strh r0, [r5, 0xE]
strb r1, [r5, 0x10]
movs r0, 0x2
strb r0, [r5, 0x11]
movs r0, 0x3A
strb r0, [r5, 0x12]
strb r1, [r5, 0x13]
adds r7, 0x1
_08096854:
lsls r0, r7, 2
adds r0, r7
lsls r0, 2
adds r5, r0, 0
adds r5, 0x50
adds r4, r0, 0
b _08096886
.align 2, 0
_08096864: .4byte gUnknown_203B490
_08096868: .4byte 0x00ffffff
_0809686C: .4byte 0x0000014d
_08096870:
movs r0, 0
movs r1, 0x4
bl RandomRange
ldr r1, [r6]
adds r1, r4
adds r1, 0x61
strb r0, [r1]
adds r5, 0x14
adds r4, 0x14
adds r7, 0x1
_08096886:
cmp r7, r8
bgt _0809689A
ldr r6, _080968AC
ldr r0, [r6]
adds r0, r5
bl sub_8095B28
lsls r0, 24
cmp r0, 0
bne _08096870
_0809689A:
bl sub_80965F4
bl sub_8096698
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080968AC: .4byte gUnknown_203B490
thumb_func_end sub_809674C
thumb_func_start sub_80968B0
sub_80968B0:
push {r4,r5,lr}
adds r3, r0, 0
movs r4, 0
ldr r0, _08096928
ldr r0, [r0]
adds r2, r0, 0
adds r2, 0xF0
_080968BE:
ldrb r0, [r2]
cmp r0, 0
beq _0809692C
ldrb r0, [r3, 0x1]
ldrb r1, [r2, 0x1]
cmp r0, r1
bne _0809692C
ldrb r0, [r3, 0x2]
ldrb r5, [r2, 0x2]
cmp r0, r5
bne _0809692C
ldrb r0, [r3, 0x4]
ldrb r1, [r2, 0x4]
cmp r0, r1
bne _0809692C
ldrb r0, [r3, 0x5]
ldrb r5, [r2, 0x5]
cmp r0, r5
bne _0809692C
ldr r1, [r3, 0x8]
ldr r0, [r2, 0x8]
cmp r1, r0
bne _0809692C
movs r0, 0xC
ldrsh r1, [r3, r0]
movs r5, 0xC
ldrsh r0, [r2, r5]
cmp r1, r0
bne _0809692C
movs r0, 0xE
ldrsh r1, [r3, r0]
movs r5, 0xE
ldrsh r0, [r2, r5]
cmp r1, r0
bne _0809692C
ldrb r0, [r3, 0x10]
ldrb r1, [r2, 0x10]
cmp r0, r1
bne _0809692C
ldrb r0, [r3, 0x11]
ldrb r5, [r2, 0x11]
cmp r0, r5
bne _0809692C
ldrb r0, [r3, 0x12]
ldrb r1, [r2, 0x12]
cmp r0, r1
bne _0809692C
ldrb r0, [r3, 0x13]
ldrb r5, [r2, 0x13]
cmp r0, r5
bne _0809692C
movs r0, 0x1
b _08096936
.align 2, 0
_08096928: .4byte gUnknown_203B490
_0809692C:
adds r2, 0x14
adds r4, 0x1
cmp r4, 0x7
ble _080968BE
movs r0, 0
_08096936:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80968B0
thumb_func_start sub_809693C
sub_809693C:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r4, r0, 0
ldrb r0, [r4, 0x4]
mov r9, r0
ldrb r0, [r4, 0x5]
mov r8, r0
movs r7, 0
adds r0, r4, 0
bl sub_80959C0
lsls r0, 24
cmp r0, 0
bne _08096962
b _0809699A
_0809695E:
movs r0, 0x1
b _0809699C
_08096962:
ldrb r0, [r4, 0x1]
cmp r0, 0x2
bne _0809696A
movs r7, 0x1
_0809696A:
movs r6, 0
movs r5, 0xF0
movs r4, 0
_08096970:
ldr r0, _080969A8
ldr r1, [r0]
adds r0, r1, r4
adds r0, 0xF0
ldrb r0, [r0]
cmp r0, 0x6
bne _08096990
adds r0, r1, r5
mov r1, r9
mov r2, r8
adds r3, r7, 0
bl sub_8095E38
lsls r0, 24
cmp r0, 0
bne _0809695E
_08096990:
adds r5, 0x14
adds r4, 0x14
adds r6, 0x1
cmp r6, 0x7
ble _08096970
_0809699A:
movs r0, 0
_0809699C:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080969A8: .4byte gUnknown_203B490
thumb_func_end sub_809693C
thumb_func_start sub_80969AC
sub_80969AC:
push {r4,r5,lr}
movs r5, 0
movs r4, 0
_080969B2:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096ACC
lsls r0, 24
cmp r0, 0
bne _080969C2
adds r5, 0x1
_080969C2:
adds r4, 0x1
cmp r4, 0x7
ble _080969B2
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80969AC
thumb_func_start sub_80969D0
sub_80969D0:
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
movs r5, 0
movs r4, 0
_080969DA:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096AB4
adds r1, r0, 0
ldrb r0, [r1, 0x4]
cmp r0, r6
bne _080969FA
ldrb r0, [r1]
cmp r0, 0x6
beq _080969F8
cmp r0, 0x8
beq _080969F8
cmp r0, 0x9
bne _080969FA
_080969F8:
adds r5, 0x1
_080969FA:
adds r4, 0x1
cmp r4, 0x7
ble _080969DA
adds r0, r5, 0
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80969D0
thumb_func_start sub_8096A08
sub_8096A08:
push {r4-r6,lr}
sub sp, 0xC
adds r6, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_08096A14:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096AB4
adds r2, r0, 0
ldrb r0, [r2, 0x4]
cmp r0, r5
bne _08096A68
ldrb r0, [r2]
cmp r0, 0x6
bne _08096A68
ldrb r0, [r2, 0x1]
cmp r0, 0x2
bne _08096A68
ldr r1, _08096A60
ldr r0, [sp, 0x8]
ands r0, r1
movs r1, 0x4A
orrs r0, r1
ldr r1, _08096A64
ands r0, r1
movs r1, 0x80
lsls r1, 1
orrs r0, r1
str r0, [sp, 0x8]
movs r0, 0xC
ldrsh r1, [r2, r0]
add r0, sp, 0x8
str r0, [sp]
movs r0, 0
str r0, [sp, 0x4]
adds r0, r6, 0
movs r2, 0
movs r3, 0
bl sub_808CFD0
movs r0, 0x1
b _08096A70
.align 2, 0
_08096A60: .4byte 0xffffff00
_08096A64: .4byte 0xffff00ff
_08096A68:
adds r4, 0x1
cmp r4, 0x7
ble _08096A14
movs r0, 0
_08096A70:
add sp, 0xC
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8096A08
thumb_func_start sub_8096A78
sub_8096A78:
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldr r5, _08096AA0
movs r2, 0
_08096A82:
ldr r0, [r5]
adds r0, r2
adds r1, r0, 0
adds r1, 0xF0
ldrb r0, [r1]
cmp r0, 0
bne _08096AA4
adds r0, r4, 0
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldm r0!, {r2,r3}
stm r1!, {r2,r3}
movs r0, 0
b _08096AAE
.align 2, 0
_08096AA0: .4byte gUnknown_203B490
_08096AA4:
adds r2, 0x14
adds r3, 0x1
cmp r3, 0x7
ble _08096A82
movs r0, 0x1
_08096AAE:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096A78
thumb_func_start sub_8096AB4
sub_8096AB4:
lsls r0, 24
lsrs r0, 24
ldr r2, _08096AC8
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, 0xF0
ldr r0, [r2]
adds r0, r1
bx lr
.align 2, 0
_08096AC8: .4byte gUnknown_203B490
thumb_func_end sub_8096AB4
thumb_func_start sub_8096ACC
sub_8096ACC:
push {lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _08096AEC
ldr r2, [r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r2, r1
adds r2, 0xF0
ldrb r0, [r2]
cmp r0, 0
beq _08096AF0
movs r0, 0
b _08096AF2
.align 2, 0
_08096AEC: .4byte gUnknown_203B490
_08096AF0:
movs r0, 0x1
_08096AF2:
pop {r1}
bx r1
thumb_func_end sub_8096ACC
thumb_func_start sub_8096AF8
sub_8096AF8:
push {r4-r6,lr}
adds r5, r0, 0
adds r0, r1, 0
adds r4, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r4, 24
lsrs r4, 24
bl sub_8096AB4
adds r3, r0, 0
movs r1, 0
strb r1, [r5]
ldrh r0, [r3, 0xC]
strh r0, [r5, 0x2]
strh r1, [r5, 0x4]
ldrb r0, [r3, 0x4]
cmp r0, r4
bne _08096B92
ldrb r0, [r3, 0x1]
cmp r0, 0x4
bhi _08096B92
lsls r0, 2
ldr r1, _08096B30
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08096B30: .4byte _08096B34
.align 2, 0
_08096B34:
.4byte _08096B78
.4byte _08096B84
.4byte _08096B84
.4byte _08096B48
.4byte _08096B78
_08096B48:
ldrb r0, [r3]
cmp r0, 0x6
bne _08096B92
ldr r0, _08096B74
movs r6, 0x1
ldr r2, [r0]
movs r4, 0x13
_08096B56:
ldrb r1, [r2]
adds r0, r6, 0
ands r0, r1
cmp r0, 0
beq _08096B6A
ldrb r0, [r2, 0x2]
ldrb r1, [r3, 0x10]
cmp r0, r1
bne _08096B6A
strb r6, [r5]
_08096B6A:
adds r2, 0x4
subs r4, 0x1
cmp r4, 0
bge _08096B56
b _08096B92
.align 2, 0
_08096B74: .4byte gUnknown_203B460
_08096B78:
ldrb r0, [r3]
cmp r0, 0x9
bne _08096B92
movs r0, 0x1
strb r0, [r5]
b _08096B92
_08096B84:
ldrb r0, [r3]
cmp r0, 0x9
bne _08096B92
movs r0, 0x1
strb r0, [r5]
ldrh r0, [r3, 0xE]
strh r0, [r5, 0x4]
_08096B92:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8096AF8
thumb_func_start sub_8096B98
sub_8096B98:
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r4, 0
_08096BA0:
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096AB4
adds r1, r0, 0
ldrb r0, [r1]
cmp r0, 0x6
bne _08096BC2
ldrb r0, [r1, 0x1]
cmp r0, 0x2
bne _08096BC2
ldrb r0, [r1, 0x4]
cmp r0, r5
bne _08096BC2
movs r2, 0xE
ldrsh r0, [r1, r2]
b _08096BCA
_08096BC2:
adds r4, 0x1
cmp r4, 0x7
ble _08096BA0
movs r0, 0
_08096BCA:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8096B98
thumb_func_start sub_8096BD0
sub_8096BD0:
push {r4,r5,lr}
ldr r0, _08096C04
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0xF0
movs r4, 0
_08096BDC:
ldrb r0, [r5]
cmp r0, 0x9
bgt _08096BEE
cmp r0, 0x7
blt _08096BEE
lsls r0, r4, 24
lsrs r0, 24
bl sub_8096C3C
_08096BEE:
adds r5, 0x14
adds r4, 0x1
cmp r4, 0x7
ble _08096BDC
bl sub_8096C80
bl sub_8096D24
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08096C04: .4byte gUnknown_203B490
thumb_func_end sub_8096BD0
thumb_func_start sub_8096C08
sub_8096C08:
push {lr}
adds r3, r0, 0
ldr r0, _08096C28
ldr r0, [r0]
adds r1, r0, 0
adds r1, 0xF0
movs r2, 0
_08096C16:
ldrb r0, [r1]
cmp r0, 0x4
bls _08096C2C
ldrb r0, [r1, 0x2]
cmp r0, 0x4
bne _08096C2C
strb r2, [r3]
movs r0, 0x1
b _08096C36
.align 2, 0
_08096C28: .4byte gUnknown_203B490
_08096C2C:
adds r1, 0x14
adds r2, 0x1
cmp r2, 0x7
ble _08096C16
movs r0, 0
_08096C36:
pop {r1}
bx r1
thumb_func_end sub_8096C08
thumb_func_start sub_8096C3C
sub_8096C3C:
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r3, _08096C78
ldr r1, [r3]
lsls r2, r0, 2
adds r2, r0
lsls r2, 2
adds r1, r2
adds r1, 0xF0
movs r4, 0
strb r4, [r1]
ldr r0, [r3]
adds r0, r2
adds r0, 0xF4
movs r1, 0x63
strb r1, [r0]
ldr r0, [r3]
adds r0, r2
adds r0, 0xF5
strb r4, [r0]
ldr r0, [r3]
adds r0, r2
ldr r2, _08096C7C
adds r1, r0, r2
movs r0, 0x5
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08096C78: .4byte gUnknown_203B490
_08096C7C: .4byte 0x00000101
thumb_func_end sub_8096C3C
thumb_func_start sub_8096C80
sub_8096C80:
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
movs r2, 0
movs r3, 0
ldr r0, _08096C98
mov r12, r0
mov r8, r3
movs r4, 0
mov r9, r4
b _08096CC2
.align 2, 0
_08096C98: .4byte gUnknown_203B490
_08096C9C:
cmp r2, r3
ble _08096CB6
mov r1, r12
ldr r0, [r1]
mov r5, r8
adds r1, r0, r5
adds r0, r4
adds r1, 0xF0
adds r0, 0xF0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r6,r7}
stm r1!, {r6,r7}
_08096CB6:
adds r4, 0x14
movs r0, 0x14
add r9, r0
adds r2, 0x1
add r8, r0
adds r3, 0x1
_08096CC2:
cmp r2, 0x7
bgt _08096CF2
mov r1, r12
ldr r0, [r1]
adds r0, r4
adds r0, 0xF0
ldrb r0, [r0]
cmp r0, 0
bne _08096CF2
ldr r6, _08096D20
mov r1, r9
_08096CD8:
adds r1, 0x14
adds r4, 0x14
movs r5, 0x14
add r9, r5
adds r2, 0x1
cmp r2, 0x7
bgt _08096CF2
ldr r0, [r6]
adds r0, r1
adds r0, 0xF0
ldrb r0, [r0]
cmp r0, 0
beq _08096CD8
_08096CF2:
cmp r2, 0x8
bne _08096C9C
cmp r3, 0x7
bgt _08096D14
ldr r4, _08096D20
movs r2, 0
lsls r0, r3, 2
adds r0, r3
lsls r1, r0, 2
_08096D04:
ldr r0, [r4]
adds r0, r1
adds r0, 0xF0
strb r2, [r0]
adds r1, 0x14
adds r3, 0x1
cmp r3, 0x7
ble _08096D04
_08096D14:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096D20: .4byte gUnknown_203B490
thumb_func_end sub_8096C80
thumb_func_start sub_8096D24
sub_8096D24:
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x18
movs r1, 0
_08096D32:
adds r6, r1, 0x1
mov r10, r6
cmp r6, 0x7
bgt _08096DBC
ldr r0, _08096DD4
mov r8, r0
lsls r0, r1, 2
adds r0, r1
lsls r0, 2
mov r9, r0
lsls r0, r6, 2
adds r0, r6
lsls r4, r0, 2
_08096D4C:
mov r1, r8
ldr r2, [r1]
adds r3, r2, r4
adds r5, r3, 0
adds r5, 0xF0
str r5, [sp, 0x14]
ldrb r0, [r5]
cmp r0, 0
beq _08096DB0
add r2, r9
mov r12, r2
mov r0, r12
adds r0, 0xF4
adds r1, r3, 0
adds r1, 0xF4
ldrb r2, [r0]
ldrb r0, [r1]
cmp r2, r0
bhi _08096D84
cmp r2, r0
bne _08096DB0
mov r0, r12
adds r0, 0xF5
adds r1, 0x1
ldrb r0, [r0]
ldrb r1, [r1]
cmp r0, r1
bls _08096DB0
_08096D84:
mov r2, r12
adds r2, 0xF0
mov r1, sp
adds r0, r2, 0
ldm r0!, {r3,r5,r7}
stm r1!, {r3,r5,r7}
ldm r0!, {r3,r7}
stm r1!, {r3,r7}
ldr r0, [sp, 0x14]
ldm r0!, {r1,r5,r7}
stm r2!, {r1,r5,r7}
ldm r0!, {r3,r5}
stm r2!, {r3,r5}
mov r7, r8
ldr r1, [r7]
adds r1, r4
adds r1, 0xF0
mov r0, sp
ldm r0!, {r2,r3,r5}
stm r1!, {r2,r3,r5}
ldm r0!, {r2,r7}
stm r1!, {r2,r7}
_08096DB0:
adds r4, 0x14
movs r3, 0x1
add r10, r3
mov r5, r10
cmp r5, 0x7
ble _08096D4C
_08096DBC:
adds r1, r6, 0
cmp r1, 0x6
ble _08096D32
add sp, 0x18
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096DD4: .4byte gUnknown_203B490
thumb_func_end sub_8096D24
thumb_func_start sub_8096DD8
sub_8096DD8:
ldr r0, _08096DE4
ldr r0, [r0]
movs r1, 0xC8
lsls r1, 1
adds r0, r1
bx lr
.align 2, 0
_08096DE4: .4byte gUnknown_203B490
thumb_func_end sub_8096DD8
thumb_func_start sub_8096DE8
sub_8096DE8:
ldr r0, _08096DF4
ldr r0, [r0]
movs r1, 0xDC
lsls r1, 1
adds r0, r1
bx lr
.align 2, 0
_08096DF4: .4byte gUnknown_203B490
thumb_func_end sub_8096DE8
thumb_func_start sub_8096DF8
sub_8096DF8:
lsls r0, 24
lsrs r0, 24
ldr r1, _08096E10
ldr r1, [r1]
movs r2, 0xBC
lsls r2, 2
adds r1, r2
adds r1, r0
movs r0, 0x1
strb r0, [r1]
bx lr
.align 2, 0
_08096E10: .4byte gUnknown_203B490
thumb_func_end sub_8096DF8
thumb_func_start sub_8096E14
sub_8096E14:
lsls r0, 24
lsrs r0, 24
ldr r1, _08096E28
ldr r1, [r1]
movs r2, 0xBC
lsls r2, 2
adds r1, r2
adds r1, r0
ldrb r0, [r1]
bx lr
.align 2, 0
_08096E28: .4byte gUnknown_203B490
thumb_func_end sub_8096E14
thumb_func_start sub_8096E2C
sub_8096E2C:
push {lr}
movs r3, 0
ldr r0, _08096E70
ldr r1, [r0]
movs r2, 0x3
_08096E36:
ldrb r0, [r1]
cmp r0, 0x1
bne _08096E48
ldrb r0, [r1, 0x5]
cmp r3, r0
bgt _08096E48
cmp r0, 0x31
bhi _08096E48
adds r3, r0, 0x1
_08096E48:
adds r1, 0x14
subs r2, 0x1
cmp r2, 0
bge _08096E36
adds r2, r3, 0
cmp r2, 0x31
bgt _08096E7A
ldr r0, _08096E70
ldr r0, [r0]
movs r3, 0xBC
lsls r3, 2
adds r1, r0, r3
_08096E60:
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08096E74
lsls r0, r2, 24
lsrs r0, 24
b _08096E7C
.align 2, 0
_08096E70: .4byte gUnknown_203B490
_08096E74:
adds r2, 0x1
cmp r2, 0x31
ble _08096E60
_08096E7A:
movs r0, 0x38
_08096E7C:
pop {r1}
bx r1
thumb_func_end sub_8096E2C
thumb_func_start sub_8096E80
sub_8096E80:
push {lr}
lsls r0, 24
lsrs r3, r0, 24
movs r2, 0
ldr r0, _08096E9C
ldr r1, [r0]
_08096E8C:
ldrb r0, [r1]
cmp r0, 0x1
bne _08096EA0
ldrb r0, [r1, 0x5]
cmp r3, r0
bne _08096EA0
movs r0, 0x1
b _08096EAA
.align 2, 0
_08096E9C: .4byte gUnknown_203B490
_08096EA0:
adds r1, 0x14
adds r2, 0x1
cmp r2, 0x3
ble _08096E8C
movs r0, 0
_08096EAA:
pop {r1}
bx r1
thumb_func_end sub_8096E80
thumb_func_start sub_8096EB0
sub_8096EB0:
ldrb r1, [r0, 0x2]
ldrb r2, [r0, 0x1]
adds r1, r2
ldrb r3, [r0, 0x4]
adds r2, r1, r3
ldrb r1, [r0, 0x5]
adds r2, r1
ldr r1, [r0, 0x8]
lsls r1, 8
adds r2, r1
movs r3, 0xC
ldrsh r1, [r0, r3]
lsls r1, 12
adds r2, r1
movs r3, 0xE
ldrsh r1, [r0, r3]
lsls r1, 16
adds r2, r1
ldrb r1, [r0, 0x10]
lsls r1, 24
adds r1, r2, r1
ldrb r3, [r0, 0x11]
adds r2, r1, r3
ldrb r1, [r0, 0x12]
adds r1, r2, r1
ldrb r0, [r0, 0x13]
adds r2, r1, r0
adds r0, r2, 0
bx lr
thumb_func_end sub_8096EB0
thumb_func_start sub_8096EEC
sub_8096EEC:
push {r4-r7,lr}
mov r7, r8
push {r7}
mov r12, r0
movs r3, 0xF
ldr r5, _08096F4C
mov r8, r5
movs r4, 0x8C
lsls r4, 2
_08096EFE:
mov r0, r8
ldr r2, [r0]
lsls r1, r3, 1
adds r1, r3
lsls r1, 2
adds r1, r2, r1
subs r3, 0x1
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r2, r0
adds r1, r4
adds r2, r4
ldm r2!, {r0,r6,r7}
stm r1!, {r0,r6,r7}
cmp r3, 0
bgt _08096EFE
ldr r2, [r5]
movs r3, 0x8C
lsls r3, 2
adds r2, r3
mov r6, r12
ldr r0, [r6, 0x4]
ldr r1, [r6, 0x8]
str r0, [r2]
str r1, [r2, 0x4]
mov r0, r12
bl sub_8096EB0
ldr r1, [r5]
movs r7, 0x8E
lsls r7, 2
adds r1, r7
str r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08096F4C: .4byte gUnknown_203B490
thumb_func_end sub_8096EEC
thumb_func_start sub_8096F50
sub_8096F50:
push {r4-r7,lr}
adds r4, r0, 0
bl sub_8096EB0
mov r12, r0
movs r5, 0
ldr r0, _08096F8C
ldr r7, [r0]
ldrb r6, [r4, 0x4]
movs r3, 0
_08096F64:
movs r1, 0x8C
lsls r1, 2
adds r0, r3, r1
adds r2, r7, r0
ldrb r0, [r2]
cmp r0, r6
bne _08096F90
ldrb r0, [r2, 0x1]
ldrb r1, [r4, 0x5]
cmp r0, r1
bne _08096F90
ldr r1, [r2, 0x4]
ldr r0, [r4, 0x8]
cmp r1, r0
bne _08096F90
ldr r0, [r2, 0x8]
cmp r0, r12
bne _08096F90
movs r0, 0x1
b _08096F9A
.align 2, 0
_08096F8C: .4byte gUnknown_203B490
_08096F90:
adds r3, 0xC
adds r5, 0x1
cmp r5, 0xF
ble _08096F64
movs r0, 0
_08096F9A:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8096F50
thumb_func_start sub_8096FA0
sub_8096FA0:
push {r4-r7,lr}
sub sp, 0x14
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809485C
add r7, sp, 0x10
ldr r6, _08097020
movs r5, 0
movs r4, 0x3
_08096FB8:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FB8
ldr r6, _08097020
movs r5, 0x50
movs r4, 0x7
_08096FD0:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FD0
ldr r6, _08097020
movs r5, 0xF0
movs r4, 0x7
_08096FE8:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80971EC
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08096FE8
movs r4, 0
movs r6, 0x1
ldr r5, _08097020
_08097000:
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl sub_8094924
ldr r1, [sp, 0x10]
ands r1, r6
cmp r1, 0
beq _08097024
ldr r0, [r5]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
adds r0, r4
strb r6, [r0]
b _08097030
.align 2, 0
_08097020: .4byte gUnknown_203B490
_08097024:
ldr r0, [r5]
movs r2, 0xBC
lsls r2, 2
adds r0, r2
adds r0, r4
strb r1, [r0]
_08097030:
adds r4, 0x1
cmp r4, 0x37
ble _08097000
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl sub_8094924
ldr r1, [sp, 0x10]
movs r2, 0x1
ands r1, r2
cmp r1, 0
beq _0809705C
ldr r0, _08097058
ldr r0, [r0]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
strb r2, [r0]
b _08097068
.align 2, 0
_08097058: .4byte gUnknown_203B490
_0809705C:
ldr r0, _080970D4
ldr r0, [r0]
movs r2, 0xCA
lsls r2, 2
adds r0, r2
strb r1, [r0]
_08097068:
ldr r4, _080970D4
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r2, 0xA0
lsls r2, 1
mov r0, sp
bl sub_8094924
ldr r1, [r4]
movs r2, 0xDC
lsls r2, 1
adds r1, r2
movs r2, 0xF0
lsls r2, 2
mov r0, sp
bl sub_8094924
adds r6, r4, 0
movs r5, 0x8C
lsls r5, 2
movs r4, 0xF
_08097096:
ldr r1, [r6]
adds r1, r5
adds r1, 0x8
mov r0, sp
movs r2, 0x20
bl sub_8094924
ldr r1, [r6]
adds r1, r5
adds r1, 0x4
mov r0, sp
movs r2, 0x18
bl sub_8094924
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8090314
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _08097096
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080970D4: .4byte gUnknown_203B490
thumb_func_end sub_8096FA0
thumb_func_start sub_80970D8
sub_80970D8:
push {r4-r7,lr}
sub sp, 0x14
adds r3, r0, 0
adds r2, r1, 0
mov r0, sp
adds r1, r3, 0
bl sub_809486C
add r7, sp, 0x10
ldr r6, _080971E8
movs r5, 0
movs r4, 0x3
_080970F0:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _080970F0
ldr r6, _080971E8
movs r5, 0x50
movs r4, 0x7
_08097108:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08097108
ldr r6, _080971E8
movs r5, 0xF0
movs r4, 0x7
_08097120:
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_8097270
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _08097120
movs r4, 0
_08097134:
ldr r0, _080971E8
ldr r0, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _0809714A
movs r0, 0x1
negs r0, r0
_0809714A:
str r0, [sp, 0x10]
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl sub_809488C
adds r4, 0x1
cmp r4, 0x37
ble _08097134
ldr r0, _080971E8
ldr r0, [r0]
movs r1, 0xCA
lsls r1, 2
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08097170
movs r0, 0x1
negs r0, r0
_08097170:
str r0, [sp, 0x10]
mov r0, sp
adds r1, r7, 0
movs r2, 0x1
bl sub_809488C
ldr r4, _080971E8
ldr r1, [r4]
movs r0, 0xC8
lsls r0, 1
adds r1, r0
movs r2, 0xA0
lsls r2, 1
mov r0, sp
bl sub_809488C
ldr r1, [r4]
movs r0, 0xDC
lsls r0, 1
adds r1, r0
movs r2, 0xF0
lsls r2, 2
mov r0, sp
bl sub_809488C
adds r6, r4, 0
movs r5, 0x8C
lsls r5, 2
movs r4, 0xF
_080971AA:
ldr r1, [r6]
adds r1, r5
adds r1, 0x8
mov r0, sp
movs r2, 0x20
bl sub_809488C
ldr r1, [r6]
adds r1, r5
adds r1, 0x4
mov r0, sp
movs r2, 0x18
bl sub_809488C
ldr r1, [r6]
adds r1, r5
mov r0, sp
bl sub_80902F4
adds r5, 0xC
subs r4, 0x1
cmp r4, 0
bge _080971AA
mov r0, sp
bl nullsub_102
ldr r0, [sp, 0x8]
add sp, 0x14
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080971E8: .4byte gUnknown_203B490
thumb_func_end sub_80970D8
thumb_func_start sub_80971EC
sub_80971EC:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_8094924
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x3
bl sub_8094924
adds r1, r5, 0x2
adds r0, r4, 0
movs r2, 0x4
bl sub_8094924
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl sub_8094924
adds r1, r5, 0
adds r1, 0xE
adds r0, r4, 0
movs r2, 0x9
bl sub_8094924
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x11
adds r0, r4, 0
movs r2, 0x4
bl sub_8094924
adds r1, r5, 0
adds r1, 0x12
adds r0, r4, 0
movs r2, 0x8
bl sub_8094924
adds r1, r5, 0
adds r1, 0x13
adds r0, r4, 0
movs r2, 0x6
bl sub_8094924
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl sub_8094924
adds r1, r5, 0x4
adds r0, r4, 0
bl sub_8090314
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80971EC
thumb_func_start sub_8097270
sub_8097270:
push {r4,r5,lr}
adds r4, r0, 0
adds r5, r1, 0
movs r2, 0x4
bl sub_809488C
adds r1, r5, 0x1
adds r0, r4, 0
movs r2, 0x3
bl sub_809488C
adds r1, r5, 0x2
adds r0, r4, 0
movs r2, 0x4
bl sub_809488C
adds r1, r5, 0
adds r1, 0xC
adds r0, r4, 0
movs r2, 0x9
bl sub_809488C
adds r1, r5, 0
adds r1, 0xE
adds r0, r4, 0
movs r2, 0x9
bl sub_809488C
adds r1, r5, 0
adds r1, 0x10
adds r0, r4, 0
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x11
adds r0, r4, 0
movs r2, 0x4
bl sub_809488C
adds r1, r5, 0
adds r1, 0x12
adds r0, r4, 0
movs r2, 0x8
bl sub_809488C
adds r1, r5, 0
adds r1, 0x13
adds r0, r4, 0
movs r2, 0x6
bl sub_809488C
adds r1, r5, 0
adds r1, 0x8
adds r0, r4, 0
movs r2, 0x18
bl sub_809488C
adds r1, r5, 0x4
adds r0, r4, 0
bl sub_80902F4
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8097270
thumb_func_start sub_80972F4
sub_80972F4:
push {lr}
movs r0, 0
movs r1, 0x2B
bl sub_80015C0
movs r0, 0
movs r1, 0x2C
bl sub_80015C0
movs r0, 0
movs r1, 0x2D
bl sub_80015C0
pop {r0}
bx r0
thumb_func_end sub_80972F4
thumb_func_start nullsub_128
nullsub_128:
bx lr
thumb_func_end nullsub_128
thumb_func_start sub_8097318
sub_8097318:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097326
movs r0, 0
b _08097338
_08097326:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2B
bl sub_8001784
cmp r0, 0
beq _08097338
movs r0, 0x1
_08097338:
pop {r1}
bx r1
thumb_func_end sub_8097318
thumb_func_start sub_809733C
sub_809733C:
push {r4-r6,lr}
lsls r0, 16
asrs r4, r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r4, 0xD
beq _0809737C
lsls r0, r4, 16
lsrs r5, r0, 16
movs r0, 0
movs r1, 0x2C
adds r2, r5, 0
bl sub_8001784
cmp r0, 0
bne _0809737C
movs r0, 0
movs r1, 0x2B
adds r2, r5, 0
adds r3, r6, 0
bl sub_800199C
cmp r6, 0
beq _0809737C
cmp r4, 0xE
blt _0809737C
cmp r4, 0xF
ble _08097378
cmp r4, 0x1C
bne _0809737C
_08097378:
bl sub_809674C
_0809737C:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_809733C
thumb_func_start sub_8097384
sub_8097384:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097392
movs r0, 0
b _080973A4
_08097392:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2C
bl sub_8001784
cmp r0, 0
beq _080973A4
movs r0, 0x1
_080973A4:
pop {r1}
bx r1
thumb_func_end sub_8097384
thumb_func_start sub_80973A8
sub_80973A8:
push {r4-r6,lr}
lsls r0, 16
asrs r0, 16
lsls r1, 24
lsrs r6, r1, 24
cmp r0, 0xD
beq _080973EE
lsls r5, r0, 16
cmp r6, 0
beq _080973E2
bl sub_80A26B8
lsls r0, 16
asrs r4, r0, 16
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2B
movs r3, 0
bl sub_800199C
movs r0, 0x1
negs r0, r0
cmp r4, r0
beq _080973E2
movs r0, 0
movs r1, 0x12
adds r2, r4, 0
bl sub_80018D8
_080973E2:
lsrs r2, r5, 16
movs r0, 0
movs r1, 0x2C
adds r3, r6, 0
bl sub_800199C
_080973EE:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80973A8
thumb_func_start sub_80973F4
sub_80973F4:
push {lr}
lsls r0, 16
asrs r0, 16
cmp r0, 0xD
bne _08097402
movs r0, 0
b _08097414
_08097402:
lsls r2, r0, 16
lsrs r2, 16
movs r0, 0
movs r1, 0x2D
bl sub_8001784
cmp r0, 0
beq _08097414
movs r0, 0x1
_08097414:
pop {r1}
bx r1
thumb_func_end sub_80973F4
thumb_func_start sub_8097418
sub_8097418:
push {r4-r7,lr}
lsls r0, 16
asrs r5, r0, 16
lsls r1, 24
lsrs r7, r1, 24
cmp r5, 0xD
beq _08097470
lsls r6, r5, 16
cmp r7, 0
beq _08097464
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2C
movs r3, 0
bl sub_800199C
cmp r5, 0x1E
bgt _08097464
lsls r0, r5, 3
ldr r1, _08097478
adds r4, r0, r1
ldrb r0, [r4, 0x4]
cmp r0, 0xFF
beq _0809744C
bl sub_8097FA8
_0809744C:
ldrb r0, [r4, 0x5]
cmp r0, 0xFF
beq _08097456
bl sub_8097FA8
_08097456:
cmp r5, 0x9
bne _08097460
movs r0, 0x1F
bl sub_8097FA8
_08097460:
bl sub_8097FF8
_08097464:
lsrs r2, r6, 16
movs r0, 0
movs r1, 0x2D
adds r3, r7, 0
bl sub_800199C
_08097470:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08097478: .4byte gStoryMissionText
thumb_func_end sub_8097418
.align 2,0