pmd-red/asm/code_8095014.s
2021-06-18 17:56:20 -05:00

940 lines
14 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
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 CopyStringtoBuffer
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
.align 2,0