Files
Pokemon-Firered/asm/battle_controller_opponent.s
T
sceptillion 670fef77ac first commit
2017-12-16 23:54:22 -08:00

6737 lines
116 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start nullsub_17
nullsub_17: @ 8035A78
bx lr
thumb_func_end nullsub_17
thumb_func_start sub_8035A7C
sub_8035A7C: @ 8035A7C
ldr r1, _08035A8C @ =gUnknown_3004FE0
ldr r0, _08035A90 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08035A94 @ =sub_8035A98
str r1, [r0]
bx lr
.align 2, 0
_08035A8C: .4byte gUnknown_3004FE0
_08035A90: .4byte gUnknown_2023BC4
_08035A94: .4byte sub_8035A98
thumb_func_end sub_8035A7C
thumb_func_start sub_8035A98
sub_8035A98: @ 8035A98
push {lr}
ldr r2, _08035ACC @ =gUnknown_2023BC8
ldr r1, _08035AD0 @ =gUnknown_825E45C
ldr r0, _08035AD4 @ =gUnknown_2023BC4
ldrb r3, [r0]
lsls r0, r3, 2
adds r0, r1
ldr r1, [r2]
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _08035AE4
ldr r0, _08035AD8 @ =gUnknown_2022BC4
lsls r1, r3, 9
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x38
bhi _08035AE0
ldr r0, _08035ADC @ =gUnknown_8250A34
ldrb r1, [r1]
lsls r1, 2
adds r1, r0
ldr r0, [r1]
bl _call_via_r0
b _08035AE4
.align 2, 0
_08035ACC: .4byte gUnknown_2023BC8
_08035AD0: .4byte gUnknown_825E45C
_08035AD4: .4byte gUnknown_2023BC4
_08035AD8: .4byte gUnknown_2022BC4
_08035ADC: .4byte gUnknown_8250A34
_08035AE0:
bl sub_8036530
_08035AE4:
pop {r0}
bx r0
thumb_func_end sub_8035A98
thumb_func_start sub_8035AE8
sub_8035AE8: @ 8035AE8
push {lr}
ldr r2, _08035B10 @ =gUnknown_202063C
ldr r1, _08035B14 @ =gUnknown_2023D44
ldr r0, _08035B18 @ =gUnknown_2023BC4
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08035B1C @ =nullsub_8
cmp r1, r0
bne _08035B0C
bl sub_8036530
_08035B0C:
pop {r0}
bx r0
.align 2, 0
_08035B10: .4byte gUnknown_202063C
_08035B14: .4byte gUnknown_2023D44
_08035B18: .4byte gUnknown_2023BC4
_08035B1C: .4byte nullsub_8
thumb_func_end sub_8035AE8
thumb_func_start sub_8035B20
sub_8035B20: @ 8035B20
push {lr}
ldr r2, _08035B48 @ =gUnknown_202063C
ldr r1, _08035B4C @ =gUnknown_2023D44
ldr r0, _08035B50 @ =gUnknown_2023BC4
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08035B54 @ =nullsub_8
cmp r1, r0
bne _08035B44
bl sub_8036530
_08035B44:
pop {r0}
bx r0
.align 2, 0
_08035B48: .4byte gUnknown_202063C
_08035B4C: .4byte gUnknown_2023D44
_08035B50: .4byte gUnknown_2023BC4
_08035B54: .4byte nullsub_8
thumb_func_end sub_8035B20
thumb_func_start sub_8035B58
sub_8035B58: @ 8035B58
push {r4-r6,lr}
ldr r4, _08035BD0 @ =gUnknown_202063C
ldr r6, _08035BD4 @ =gUnknown_2023D44
ldr r5, _08035BD8 @ =gUnknown_2023BC4
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r2, r0, 2
adds r0, r4, 0
adds r0, 0x1C
adds r0, r2, r0
ldr r1, [r0]
ldr r0, _08035BDC @ =nullsub_8
cmp r1, r0
bne _08035BC8
adds r0, r2, r4
ldrh r0, [r0, 0x6]
bl sub_803477C
ldrb r0, [r5]
adds r0, r6
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r1, 0x38]
ldr r2, _08035BE0 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _08035BE4 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_80077D8
ldrb r0, [r5]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_8007280
bl sub_8036530
_08035BC8:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08035BD0: .4byte gUnknown_202063C
_08035BD4: .4byte gUnknown_2023D44
_08035BD8: .4byte gUnknown_2023BC4
_08035BDC: .4byte nullsub_8
_08035BE0: .4byte 0x000003ff
_08035BE4: .4byte 0xfffffc00
thumb_func_end sub_8035B58
thumb_func_start sub_8035BE8
sub_8035BE8: @ 8035BE8
push {r4,lr}
ldr r4, _08035C28 @ =gUnknown_2024018
ldr r1, [r4]
ldr r3, _08035C2C @ =gUnknown_2023BC4
ldrb r0, [r3]
ldr r2, [r1, 0x4]
lsls r1, r0, 1
adds r1, r0
lsls r1, 2
adds r1, r2
ldrb r0, [r1, 0x9]
subs r0, 0x1
strb r0, [r1, 0x9]
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _08035C20
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strb r1, [r0, 0x9]
bl sub_8036530
_08035C20:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08035C28: .4byte gUnknown_2024018
_08035C2C: .4byte gUnknown_2023BC4
thumb_func_end sub_8035BE8
thumb_func_start sub_8035C30
sub_8035C30: @ 8035C30
push {r4-r7,lr}
movs r6, 0
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _08035C54
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _08035C88
ldr r0, _08035C74 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08035C88
_08035C54:
ldr r2, _08035C78 @ =gUnknown_202063C
ldr r1, _08035C7C @ =gUnknown_3004FF0
ldr r0, _08035C80 @ =gUnknown_2023BC4
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _08035C84 @ =nullsub_8
cmp r1, r0
bne _08035CBE
b _08035CBC
.align 2, 0
_08035C74: .4byte gUnknown_2022B4C
_08035C78: .4byte gUnknown_202063C
_08035C7C: .4byte gUnknown_3004FF0
_08035C80: .4byte gUnknown_2023BC4
_08035C84: .4byte nullsub_8
_08035C88:
ldr r2, _08035D84 @ =gUnknown_202063C
ldr r5, _08035D88 @ =gUnknown_3004FF0
ldr r0, _08035D8C @ =gUnknown_2023BC4
ldrb r3, [r0]
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r4, [r0]
ldr r0, _08035D90 @ =nullsub_8
cmp r4, r0
bne _08035CBE
movs r0, 0x2
eors r3, r0
adds r0, r3, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
ldr r0, [r0]
cmp r0, r4
bne _08035CBE
_08035CBC:
movs r6, 0x1
_08035CBE:
bl sub_80721F0
lsls r0, 24
cmp r0, 0
beq _08035CCA
movs r6, 0
_08035CCA:
cmp r6, 0
bne _08035CD0
b _08035DD2
_08035CD0:
ldr r0, _08035D94 @ =gUnknown_2024018
mov r12, r0
ldr r0, [r0]
ldr r7, _08035D8C @ =gUnknown_2023BC4
ldrb r2, [r7]
ldr r3, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r4, r0, r3
ldrb r1, [r4, 0x1]
movs r5, 0x1
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08035DD2
movs r6, 0x2
adds r1, r6, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x1]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _08035DD2
ldrb r1, [r4]
movs r3, 0x7F
adds r0, r3, 0
ands r0, r1
strb r0, [r4]
mov r1, r12
ldr r0, [r1]
ldrb r2, [r7]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r4, 0x2
negs r4, r4
adds r0, r4, 0
ands r0, r2
strb r0, [r1, 0x1]
mov r0, r12
ldr r2, [r0]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
ands r3, r1
strb r3, [r0]
mov r1, r12
ldr r2, [r1]
ldrb r0, [r7]
adds r1, r6, 0
eors r1, r0
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
ands r4, r1
strb r4, [r0, 0x1]
ldr r4, _08035D98 @ =0x000027f9
adds r0, r4, 0
bl sub_800874C
adds r0, r4, 0
bl sub_8008A30
ldr r0, _08035D9C @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08035DA4
ldr r0, _08035DA0 @ =gMPlay_BGM
bl m4aMPlayContinue
b _08035DB0
.align 2, 0
_08035D84: .4byte gUnknown_202063C
_08035D88: .4byte gUnknown_3004FF0
_08035D8C: .4byte gUnknown_2023BC4
_08035D90: .4byte nullsub_8
_08035D94: .4byte gUnknown_2024018
_08035D98: .4byte 0x000027f9
_08035D9C: .4byte gUnknown_2022B4C
_08035DA0: .4byte gMPlay_BGM
_08035DA4:
ldr r0, _08035DD8 @ =gMPlay_BGM
ldr r1, _08035DDC @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
_08035DB0:
ldr r0, _08035DE0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r3, _08035DE4 @ =gUnknown_2023BC4
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x9]
ldr r1, _08035DE8 @ =gUnknown_3004FE0
ldrb r0, [r3]
lsls r0, 2
adds r0, r1
ldr r1, _08035DEC @ =sub_8035BE8
str r1, [r0]
_08035DD2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08035DD8: .4byte gMPlay_BGM
_08035DDC: .4byte 0x0000ffff
_08035DE0: .4byte gUnknown_2024018
_08035DE4: .4byte gUnknown_2023BC4
_08035DE8: .4byte gUnknown_3004FE0
_08035DEC: .4byte sub_8035BE8
thumb_func_end sub_8035C30
thumb_func_start sub_8035DF0
sub_8035DF0: @ 8035DF0
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r4, _08035FC0 @ =gUnknown_2024018
ldr r0, [r4]
ldr r1, _08035FC4 @ =gUnknown_2023BC4
mov r9, r1
ldrb r2, [r1]
ldr r1, [r0, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r5, 0x88
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _08035E2C
ldr r0, _08035FC8 @ =gUnknown_2023BCE
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08035FCC @ =gUnknown_202402C
adds r1, r0
adds r0, r2, 0
bl sub_80F1720
_08035E2C:
ldr r1, [r4]
mov r2, r9
ldrb r0, [r2]
movs r7, 0x2
adds r2, r7, 0
eors r2, r0
ldr r1, [r1, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
bne _08035E60
ldr r0, _08035FC8 @ =gUnknown_2023BCE
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08035FCC @ =gUnknown_202402C
adds r1, r0
adds r0, r2, 0
bl sub_80F1720
_08035E60:
ldr r0, [r4]
mov r1, r9
ldrb r2, [r1]
ldr r3, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r3
ldrb r1, [r0]
movs r4, 0x8
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _08035E7E
b _08035FB4
_08035E7E:
adds r1, r7, 0
eors r1, r2
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0]
adds r0, r4, 0
ands r0, r1
cmp r0, 0
beq _08035E96
b _08035FB4
_08035E96:
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _08035F28
ldr r0, _08035FD0 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
bne _08035F28
ldr r1, _08035FD4 @ =gUnknown_3004FFC
mov r2, r9
ldrb r0, [r2]
eors r0, r7
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08035FD8 @ =gUnknown_202063C
adds r0, r1
bl sub_8007280
ldr r4, _08035FDC @ =gUnknown_3004FF0
mov r1, r9
ldrb r0, [r1]
adds r1, r7, 0
eors r1, r0
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _08035FC8 @ =gUnknown_2023BCE
mov r8, r2
lsls r1, 1
add r1, r8
ldrh r1, [r1]
movs r6, 0x64
muls r1, r6
ldr r5, _08035FCC @ =gUnknown_202402C
adds r1, r5
movs r2, 0
bl sub_8049D98
mov r1, r9
ldrb r0, [r1]
eors r0, r7
bl sub_804BD94
mov r2, r9
ldrb r0, [r2]
eors r0, r7
adds r0, r4
ldrb r0, [r0]
bl sub_80481D4
mov r1, r9
ldrb r0, [r1]
adds r4, r7, 0
eors r4, r0
lsls r0, r4, 1
add r0, r8
ldrh r0, [r0]
muls r0, r6
adds r0, r5
movs r1, 0xB
bl sub_803FBE8
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8035708
_08035F28:
ldr r1, _08035FD4 @ =gUnknown_3004FFC
ldr r5, _08035FC4 @ =gUnknown_2023BC4
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08035FD8 @ =gUnknown_202063C
adds r0, r1
bl sub_8007280
ldr r4, _08035FDC @ =gUnknown_3004FF0
ldrb r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _08035FC8 @ =gUnknown_2023BCE
mov r9, r2
lsls r1, 1
add r1, r9
ldrh r1, [r1]
movs r2, 0x64
mov r8, r2
mov r2, r8
muls r2, r1
adds r1, r2, 0
ldr r6, _08035FCC @ =gUnknown_202402C
adds r1, r6
movs r2, 0
bl sub_8049D98
ldrb r0, [r5]
bl sub_804BD94
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80481D4
ldrb r4, [r5]
lsls r0, r4, 1
add r0, r9
ldrh r0, [r0]
mov r1, r8
muls r1, r0
adds r0, r1, 0
adds r0, r6
movs r1, 0xB
bl sub_803FBE8
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8035708
ldr r0, _08035FC0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r2, [r0, 0x8]
ldrb r1, [r2, 0x9]
movs r0, 0x2
negs r0, r0
ands r0, r1
strb r0, [r2, 0x9]
ldr r1, _08035FE0 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08035FE4 @ =sub_8035C30
str r1, [r0]
_08035FB4:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08035FC0: .4byte gUnknown_2024018
_08035FC4: .4byte gUnknown_2023BC4
_08035FC8: .4byte gUnknown_2023BCE
_08035FCC: .4byte gUnknown_202402C
_08035FD0: .4byte gUnknown_2022B4C
_08035FD4: .4byte gUnknown_3004FFC
_08035FD8: .4byte gUnknown_202063C
_08035FDC: .4byte gUnknown_3004FF0
_08035FE0: .4byte gUnknown_3004FE0
_08035FE4: .4byte sub_8035C30
thumb_func_end sub_8035DF0
thumb_func_start sub_8035FE8
sub_8035FE8: @ 8035FE8
push {r4-r7,lr}
ldr r2, _08036044 @ =gUnknown_202063C
ldr r0, _08036048 @ =gUnknown_2023D44
ldr r7, _0803604C @ =gUnknown_2023BC4
ldrb r3, [r7]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r0, r2
adds r0, r1, 0
adds r0, 0x3F
ldrb r0, [r0]
lsls r0, 27
lsrs r2, r0, 31
cmp r2, 0x1
bne _08036094
movs r4, 0x24
ldrsh r0, [r1, r4]
cmp r0, 0
bne _08036094
ldr r6, _08036050 @ =gUnknown_2024018
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r4, r3, 1
adds r0, r4, r3
lsls r0, 2
adds r1, r0, r1
ldrb r5, [r1]
movs r0, 0x80
ands r0, r5
cmp r0, 0
bne _0803605C
ldr r0, _08036054 @ =gUnknown_2023BCE
adds r0, r4, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _08036058 @ =gUnknown_202402C
adds r1, r0
adds r0, r3, 0
bl sub_80F1720
b _08036094
.align 2, 0
_08036044: .4byte gUnknown_202063C
_08036048: .4byte gUnknown_2023D44
_0803604C: .4byte gUnknown_2023BC4
_08036050: .4byte gUnknown_2024018
_08036054: .4byte gUnknown_2023BCE
_08036058: .4byte gUnknown_202402C
_0803605C:
ldrb r0, [r1, 0x1]
ands r2, r0
cmp r2, 0
beq _08036094
movs r0, 0x7F
ands r0, r5
strb r0, [r1]
ldr r0, [r6]
ldrb r2, [r7]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, _0803609C @ =0x000027f9
adds r0, r4, 0
bl sub_800874C
adds r0, r4, 0
bl sub_8008A30
bl sub_8036530
_08036094:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803609C: .4byte 0x000027f9
thumb_func_end sub_8035FE8
thumb_func_start sub_80360A0
sub_80360A0: @ 80360A0
push {r4-r6,lr}
ldr r6, _080360E0 @ =gUnknown_2023BC4
ldrb r0, [r6]
ldr r5, _080360E4 @ =gUnknown_3004FF0
adds r1, r0, r5
ldrb r1, [r1]
movs r2, 0
movs r3, 0
bl sub_8049FD8
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
bl sub_80481D4
lsls r4, 16
asrs r1, r4, 16
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080360E8
ldrb r0, [r6]
adds r0, r5
ldrb r0, [r0]
movs r2, 0
bl sub_8048440
b _08036124
.align 2, 0
_080360E0: .4byte gUnknown_2023BC4
_080360E4: .4byte gUnknown_3004FF0
_080360E8:
movs r0, 0x1
bl sub_80EB2E0
lsls r0, 24
cmp r0, 0
bne _08036120
ldr r0, _08036114 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _08036120
movs r0, 0x1
bl sub_80EB2F4
ldr r0, _08036118 @ =gUnknown_3004FE0
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _0803611C @ =sub_80E8570
str r0, [r1]
b _08036124
.align 2, 0
_08036114: .4byte gUnknown_2022B4C
_08036118: .4byte gUnknown_3004FE0
_0803611C: .4byte sub_80E8570
_08036120:
bl sub_8036530
_08036124:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80360A0
thumb_func_start sub_803612C
sub_803612C: @ 803612C
push {lr}
ldr r2, _08036160 @ =gUnknown_202063C
ldr r0, _08036164 @ =gUnknown_2023D44
ldr r1, _08036168 @ =gUnknown_2023BC4
ldrb r3, [r1]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 31
cmp r0, 0
bne _0803615A
ldr r0, _0803616C @ =gUnknown_3004FF0
adds r0, r3, r0
ldrb r0, [r0]
bl sub_8048188
bl sub_8036530
_0803615A:
pop {r0}
bx r0
.align 2, 0
_08036160: .4byte gUnknown_202063C
_08036164: .4byte gUnknown_2023D44
_08036168: .4byte gUnknown_2023BC4
_0803616C: .4byte gUnknown_3004FF0
thumb_func_end sub_803612C
thumb_func_start sub_8036170
sub_8036170: @ 8036170
push {r4-r6,lr}
ldr r0, _080361D0 @ =gUnknown_2024018
ldr r0, [r0]
ldr r6, _080361D4 @ =gUnknown_2023BC4
ldrb r2, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080361CA
ldr r5, _080361D8 @ =gUnknown_2023D44
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _080361DC @ =gUnknown_202063C
adds r0, r4
bl sub_80077D8
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_8007280
ldrb r0, [r6]
bl sub_8035794
ldr r1, _080361E0 @ =gUnknown_3004FF0
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8048188
bl sub_8036530
_080361CA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080361D0: .4byte gUnknown_2024018
_080361D4: .4byte gUnknown_2023BC4
_080361D8: .4byte gUnknown_2023D44
_080361DC: .4byte gUnknown_202063C
_080361E0: .4byte gUnknown_3004FF0
thumb_func_end sub_8036170
thumb_func_start sub_80361E4
sub_80361E4: @ 80361E4
push {lr}
movs r0, 0
bl sub_8002E64
lsls r0, 16
cmp r0, 0
bne _080361F6
bl sub_8036530
_080361F6:
pop {r0}
bx r0
thumb_func_end sub_80361E4
thumb_func_start sub_80361FC
sub_80361FC: @ 80361FC
push {r4,lr}
ldr r1, _08036238 @ =gUnknown_2023D44
ldr r0, _0803623C @ =gUnknown_2023BC4
ldrb r0, [r0]
adds r0, r1
ldrb r1, [r0]
ldr r2, _08036240 @ =gUnknown_202063C
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, r0, r2
movs r1, 0x30
ldrsh r0, [r4, r1]
cmp r0, 0x20
bne _08036248
movs r3, 0
movs r0, 0
strh r0, [r4, 0x30]
adds r2, r4, 0
adds r2, 0x3E
ldrb r1, [r2]
subs r0, 0x5
ands r0, r1
strb r0, [r2]
ldr r0, _08036244 @ =gUnknown_2024005
strb r3, [r0]
bl sub_8036530
b _08036272
.align 2, 0
_08036238: .4byte gUnknown_2023D44
_0803623C: .4byte gUnknown_2023BC4
_08036240: .4byte gUnknown_202063C
_08036244: .4byte gUnknown_2024005
_08036248:
ldrh r0, [r4, 0x30]
movs r1, 0x3
ands r0, r1
cmp r0, 0
bne _0803626C
adds r3, r4, 0
adds r3, 0x3E
ldrb r2, [r3]
lsls r0, r2, 29
lsrs r0, 31
movs r1, 0x1
eors r1, r0
lsls r1, 2
movs r0, 0x5
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
_0803626C:
ldrh r0, [r4, 0x30]
adds r0, 0x1
strh r0, [r4, 0x30]
_08036272:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80361FC
thumb_func_start sub_8036278
sub_8036278: @ 8036278
push {r4,lr}
ldr r2, _080362CC @ =gUnknown_202063C
ldr r0, _080362D0 @ =gUnknown_3004FF0
ldr r4, _080362D4 @ =gUnknown_2023BC4
ldrb r3, [r4]
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, [r0]
ldr r0, _080362D8 @ =nullsub_8
cmp r1, r0
bne _080362C4
ldr r0, _080362DC @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0]
lsls r0, r3, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080362B8
adds r0, r3, 0
adds r1, r3, 0
adds r2, r3, 0
movs r3, 0x6
bl sub_80341D8
_080362B8:
ldr r0, _080362E0 @ =gUnknown_3004FE0
ldrb r1, [r4]
lsls r1, 2
adds r1, r0
ldr r0, _080362E4 @ =sub_80362E8
str r0, [r1]
_080362C4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080362CC: .4byte gUnknown_202063C
_080362D0: .4byte gUnknown_3004FF0
_080362D4: .4byte gUnknown_2023BC4
_080362D8: .4byte nullsub_8
_080362DC: .4byte gUnknown_2024018
_080362E0: .4byte gUnknown_3004FE0
_080362E4: .4byte sub_80362E8
thumb_func_end sub_8036278
thumb_func_start sub_80362E8
sub_80362E8: @ 80362E8
push {lr}
ldr r0, _08036324 @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _08036328 @ =gUnknown_2023BC4
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _08036320
bl sub_80721F0
lsls r0, 24
cmp r0, 0
bne _08036320
ldr r0, _0803632C @ =gMPlay_BGM
ldr r1, _08036330 @ =0x0000ffff
movs r2, 0x80
lsls r2, 1
bl m4aMPlayVolumeControl
bl sub_8036530
_08036320:
pop {r0}
bx r0
.align 2, 0
_08036324: .4byte gUnknown_2024018
_08036328: .4byte gUnknown_2023BC4
_0803632C: .4byte gMPlay_BGM
_08036330: .4byte 0x0000ffff
thumb_func_end sub_80362E8
thumb_func_start sub_8036334
sub_8036334: @ 8036334
push {r4,r5,lr}
ldr r3, _080363E0 @ =gUnknown_2024018
ldr r0, [r3]
ldr r5, _080363E4 @ =gUnknown_2023BC4
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r2, r0, r2
ldrb r1, [r2, 0x1]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080363D8
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
ldr r0, [r3]
ldrb r2, [r5]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1, 0x1]
movs r0, 0x2
negs r0, r0
ands r0, r2
strb r0, [r1, 0x1]
ldr r4, _080363E8 @ =0x000027f9
adds r0, r4, 0
bl sub_800874C
adds r0, r4, 0
bl sub_8008A30
ldr r1, _080363EC @ =gUnknown_2023D44
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080363F0 @ =gUnknown_202063C
adds r0, r1
movs r1, 0
bl sub_800838C
ldr r4, _080363F4 @ =gUnknown_3004FF0
ldrb r1, [r5]
adds r0, r1, r4
ldrb r0, [r0]
ldr r2, _080363F8 @ =gUnknown_2023BCE
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _080363FC @ =gUnknown_202402C
adds r1, r2
movs r2, 0
bl sub_8049D98
ldrb r0, [r5]
bl sub_804BD94
ldrb r0, [r5]
adds r0, r4
ldrb r0, [r0]
bl sub_80481D4
ldrb r0, [r5]
bl sub_8034BB4
ldr r1, _08036400 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08036404 @ =sub_8036278
str r1, [r0]
_080363D8:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080363E0: .4byte gUnknown_2024018
_080363E4: .4byte gUnknown_2023BC4
_080363E8: .4byte 0x000027f9
_080363EC: .4byte gUnknown_2023D44
_080363F0: .4byte gUnknown_202063C
_080363F4: .4byte gUnknown_3004FF0
_080363F8: .4byte gUnknown_2023BCE
_080363FC: .4byte gUnknown_202402C
_08036400: .4byte gUnknown_3004FE0
_08036404: .4byte sub_8036278
thumb_func_end sub_8036334
thumb_func_start sub_8036408
sub_8036408: @ 8036408
push {r4-r6,lr}
ldr r6, _080364AC @ =gUnknown_2024018
ldr r0, [r6]
ldr r5, _080364B0 @ =gUnknown_2023BC4
ldrb r2, [r5]
ldr r1, [r0, 0x4]
lsls r3, r2, 1
adds r0, r3, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x88
ands r0, r1
cmp r0, 0
bne _0803643A
ldr r0, _080364B4 @ =gUnknown_2023BCE
adds r0, r3, r0
ldrh r1, [r0]
movs r0, 0x64
muls r1, r0
ldr r0, _080364B8 @ =gUnknown_202402C
adds r1, r0
adds r0, r2, 0
bl sub_80F1720
_0803643A:
ldr r4, _080364BC @ =gUnknown_202063C
ldr r0, _080364C0 @ =gUnknown_3004FFC
ldrb r2, [r5]
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r3, r0, 2
adds r0, r4, 0
adds r0, 0x1C
adds r0, r3, r0
ldr r1, [r0]
ldr r0, _080364C4 @ =nullsub_8
cmp r1, r0
bne _080364A4
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _080364A4
adds r0, r3, r4
bl sub_8007280
ldrb r4, [r5]
ldr r1, _080364B4 @ =gUnknown_2023BCE
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080364B8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0xB
bl sub_803FBE8
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8035708
ldr r1, _080364C8 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080364CC @ =sub_8036334
str r1, [r0]
_080364A4:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080364AC: .4byte gUnknown_2024018
_080364B0: .4byte gUnknown_2023BC4
_080364B4: .4byte gUnknown_2023BCE
_080364B8: .4byte gUnknown_202402C
_080364BC: .4byte gUnknown_202063C
_080364C0: .4byte gUnknown_3004FFC
_080364C4: .4byte nullsub_8
_080364C8: .4byte gUnknown_3004FE0
_080364CC: .4byte sub_8036334
thumb_func_end sub_8036408
thumb_func_start sub_80364D0
sub_80364D0: @ 80364D0
push {lr}
ldr r0, _080364F8 @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _080364FC @ =gUnknown_2023BC4
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080364F2
bl sub_8036530
_080364F2:
pop {r0}
bx r0
.align 2, 0
_080364F8: .4byte gUnknown_2024018
_080364FC: .4byte gUnknown_2023BC4
thumb_func_end sub_80364D0
thumb_func_start sub_8036500
sub_8036500: @ 8036500
push {lr}
ldr r0, _08036528 @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _0803652C @ =gUnknown_2023BC4
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _08036522
bl sub_8036530
_08036522:
pop {r0}
bx r0
.align 2, 0
_08036528: .4byte gUnknown_2024018
_0803652C: .4byte gUnknown_2023BC4
thumb_func_end sub_8036500
thumb_func_start sub_8036530
sub_8036530: @ 8036530
ldr r1, _08036554 @ =gUnknown_3004FE0
ldr r2, _08036558 @ =gUnknown_2023BC4
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _0803655C @ =sub_8035A98
str r1, [r0]
ldr r3, _08036560 @ =gUnknown_2023BC8
ldr r1, _08036564 @ =gUnknown_825E45C
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, [r0]
ldr r0, [r3]
bics r0, r1
str r0, [r3]
bx lr
.align 2, 0
_08036554: .4byte gUnknown_3004FE0
_08036558: .4byte gUnknown_2023BC4
_0803655C: .4byte sub_8035A98
_08036560: .4byte gUnknown_2023BC8
_08036564: .4byte gUnknown_825E45C
thumb_func_end sub_8036530
thumb_func_start sub_8036568
sub_8036568: @ 8036568
push {r4-r6,lr}
sub sp, 0x100
movs r6, 0
ldr r1, _08036594 @ =gUnknown_2022BC4
ldr r0, _08036598 @ =gUnknown_2023BC4
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _080365A0
ldr r0, _0803659C @ =gUnknown_2023BCE
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
mov r1, sp
bl sub_80365DC
adds r6, r0, 0
b _080365C2
.align 2, 0
_08036594: .4byte gUnknown_2022BC4
_08036598: .4byte gUnknown_2023BC4
_0803659C: .4byte gUnknown_2023BCE
_080365A0:
ldrb r4, [r1]
movs r5, 0
_080365A4:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _080365BA
lsls r0, r5, 24
lsrs r0, 24
mov r2, sp
adds r1, r2, r6
bl sub_80365DC
adds r6, r0
_080365BA:
lsrs r4, 1
adds r5, 0x1
cmp r5, 0x5
ble _080365A4
_080365C2:
lsls r1, r6, 16
lsrs r1, 16
movs r0, 0x1
mov r2, sp
bl sub_800E708
bl sub_8036530
add sp, 0x100
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8036568
thumb_func_start sub_80365DC
sub_80365DC: @ 80365DC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x90
adds r7, r1, 0
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r2, _08036610 @ =gUnknown_2022BC4
ldr r3, _08036614 @ =gUnknown_2023BC4
ldrb r0, [r3]
lsls r0, 9
adds r1, r2, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x3B
bls _08036606
bl _08036D72
_08036606:
lsls r0, 2
ldr r1, _08036618 @ =_0803661C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036610: .4byte gUnknown_2022BC4
_08036614: .4byte gUnknown_2023BC4
_08036618: .4byte _0803661C
.align 2, 0
_0803661C:
.4byte _0803670C
.4byte _08036930
.4byte _08036940
.4byte _08036950
.4byte _080369B8
.4byte _080369B8
.4byte _080369B8
.4byte _080369B8
.4byte _080369D4
.4byte _08036A10
.4byte _08036A10
.4byte _08036A10
.4byte _08036A10
.4byte _08036D72
.4byte _08036D72
.4byte _08036D72
.4byte _08036D72
.4byte _08036A2C
.4byte _08036A3C
.4byte _08036A6C
.4byte _08036A7C
.4byte _08036A8C
.4byte _08036A9C
.4byte _08036AAC
.4byte _08036ABC
.4byte _08036ACC
.4byte _08036ADC
.4byte _08036AEC
.4byte _08036AFC
.4byte _08036B0C
.4byte _08036B1C
.4byte _08036B2C
.4byte _08036B7C
.4byte _08036B8C
.4byte _08036B9C
.4byte _08036BAC
.4byte _08036BBC
.4byte _08036BCC
.4byte _08036BDC
.4byte _08036BEC
.4byte _08036BFC
.4byte _08036C30
.4byte _08036C40
.4byte _08036C50
.4byte _08036C60
.4byte _08036C70
.4byte _08036C80
.4byte _08036C90
.4byte _08036CA0
.4byte _08036CC0
.4byte _08036CD0
.4byte _08036CE0
.4byte _08036CF0
.4byte _08036D00
.4byte _08036D10
.4byte _08036D20
.4byte _08036D30
.4byte _08036D40
.4byte _08036D50
.4byte _08036D60
_0803670C:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08036920 @ =gUnknown_202402C
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
bl sub_803FBE8
mov r1, sp
strh r0, [r1]
adds r0, r4, 0
movs r1, 0xC
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x2E]
movs r6, 0
add r0, sp, 0x24
mov r9, r0
movs r1, 0x3B
add r1, sp
mov r10, r1
mov r2, sp
adds r2, 0x2B
str r2, [sp, 0x80]
mov r0, sp
adds r0, 0x2A
str r0, [sp, 0x7C]
mov r1, sp
adds r1, 0x68
str r1, [sp, 0x8C]
adds r2, 0x5
str r2, [sp, 0x84]
adds r0, 0x12
str r0, [sp, 0x88]
mov r8, r4
add r4, sp, 0xC
_08036758:
adds r1, r6, 0
adds r1, 0xD
mov r0, r8
bl sub_803FBE8
strh r0, [r4]
adds r1, r6, 0
adds r1, 0x11
mov r0, r8
bl sub_803FBE8
mov r2, r9
adds r1, r2, r6
strb r0, [r1]
adds r4, 0x2
adds r6, 0x1
cmp r6, 0x3
ble _08036758
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08036920 @ =gUnknown_202402C
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
bl sub_803FBE8
mov r1, r10
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x20
bl sub_803FBE8
ldr r2, [sp, 0x80]
strb r0, [r2]
adds r0, r4, 0
movs r1, 0x19
bl sub_803FBE8
str r0, [sp, 0x44]
adds r0, r4, 0
movs r1, 0x27
bl sub_803FBE8
mov r3, sp
movs r5, 0x1F
ands r0, r5
ldrb r2, [r3, 0x14]
movs r1, 0x20
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x28
bl sub_803FBE8
mov r3, sp
movs r6, 0x1F
ands r0, r6
lsls r0, 5
ldrh r2, [r3, 0x14]
ldr r1, _08036924 @ =0xfffffc1f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x14]
adds r0, r4, 0
movs r1, 0x29
bl sub_803FBE8
mov r3, sp
ands r0, r5
lsls r0, 2
ldrb r2, [r3, 0x15]
movs r1, 0x7D
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x15]
adds r0, r4, 0
movs r1, 0x2A
bl sub_803FBE8
movs r1, 0x1F
ands r1, r0
lsls r1, 15
ldr r0, [sp, 0x14]
ldr r2, _08036928 @ =0xfff07fff
ands r0, r2
orrs r0, r1
str r0, [sp, 0x14]
adds r0, r4, 0
movs r1, 0x2B
bl sub_803FBE8
mov r3, sp
ands r0, r6
lsls r0, 4
ldrh r2, [r3, 0x16]
ldr r1, _0803692C @ =0xfffffe0f
ands r1, r2
orrs r1, r0
strh r1, [r3, 0x16]
adds r0, r4, 0
movs r1, 0x2C
bl sub_803FBE8
mov r3, sp
ands r0, r5
lsls r0, 1
ldrb r2, [r3, 0x17]
movs r1, 0x3F
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0
bl sub_803FBE8
str r0, [sp, 0x48]
adds r0, r4, 0
movs r1, 0x37
bl sub_803FBE8
str r0, [sp, 0x4C]
adds r0, r4, 0
movs r1, 0x38
bl sub_803FBE8
ldr r1, [sp, 0x7C]
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x39
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x28]
adds r0, r4, 0
movs r1, 0x3A
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x2C]
adds r0, r4, 0
movs r1, 0x3B
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x2]
adds r0, r4, 0
movs r1, 0x3C
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x4]
adds r0, r4, 0
movs r1, 0x3D
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x6]
adds r0, r4, 0
movs r1, 0x3E
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0x8]
adds r0, r4, 0
movs r1, 0x3F
bl sub_803FBE8
mov r1, sp
strh r0, [r1, 0xA]
adds r0, r4, 0
movs r1, 0x2D
bl sub_803FBE8
mov r3, sp
movs r1, 0x1
ands r0, r1
lsls r0, 6
ldrb r2, [r3, 0x17]
movs r1, 0x41
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x2E
bl sub_803FBE8
mov r3, sp
lsls r0, 7
ldrb r2, [r3, 0x17]
movs r1, 0x7F
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x17]
adds r0, r4, 0
movs r1, 0x1
bl sub_803FBE8
str r0, [sp, 0x54]
adds r0, r4, 0
movs r1, 0x2
ldr r2, [sp, 0x8C]
bl sub_803FBE8
ldr r0, [sp, 0x84]
ldr r1, [sp, 0x8C]
bl sub_8008CF4
adds r0, r4, 0
movs r1, 0x7
ldr r2, [sp, 0x88]
bl sub_803FBE8
mov r2, sp
movs r6, 0
_08036910:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0x57
bls _08036910
b _08036D72
.align 2, 0
_08036920: .4byte gUnknown_202402C
_08036924: .4byte 0xfffffc1f
_08036928: .4byte 0xfff07fff
_0803692C: .4byte 0xfffffe0f
_08036930:
movs r0, 0x64
muls r0, r5
ldr r1, _0803693C @ =gUnknown_202402C
adds r0, r1
movs r1, 0xB
b _08036CAA
.align 2, 0
_0803693C: .4byte gUnknown_202402C
_08036940:
movs r0, 0x64
muls r0, r5
ldr r1, _0803694C @ =gUnknown_202402C
adds r0, r1
movs r1, 0xC
b _08036CAA
.align 2, 0
_0803694C: .4byte gUnknown_202402C
_08036950:
movs r6, 0
add r2, sp, 0x58
mov r9, r2
add r0, sp, 0x60
mov r10, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _080369B4 @ =gUnknown_202402C
adds r4, r1, r0
mov r8, r9
_08036966:
adds r1, r6, 0
adds r1, 0xD
adds r0, r4, 0
bl sub_803FBE8
mov r1, r8
strh r0, [r1]
adds r1, r6, 0
adds r1, 0x11
adds r0, r4, 0
bl sub_803FBE8
mov r2, r10
adds r1, r2, r6
strb r0, [r1]
movs r0, 0x2
add r8, r0
adds r6, 0x1
cmp r6, 0x3
ble _08036966
movs r0, 0x64
muls r0, r5
ldr r1, _080369B4 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x15
bl sub_803FBE8
mov r1, r9
strb r0, [r1, 0xC]
mov r2, r9
movs r6, 0
_080369A4:
adds r0, r7, r6
adds r1, r2, r6
ldrb r1, [r1]
strb r1, [r0]
adds r6, 0x1
cmp r6, 0xF
bls _080369A4
b _08036D72
.align 2, 0
_080369B4: .4byte gUnknown_202402C
_080369B8:
movs r0, 0x64
muls r0, r5
ldr r1, _080369D0 @ =gUnknown_202402C
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x9
b _08036CAA
.align 2, 0
_080369D0: .4byte gUnknown_202402C
_080369D4:
movs r6, 0
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r2, _08036A0C @ =gUnknown_202402C
mov r8, r2
_080369E0:
adds r1, r6, 0
adds r1, 0x11
mov r2, r8
adds r0, r4, r2
bl sub_803FBE8
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
cmp r6, 0x3
ble _080369E0
movs r0, 0x64
muls r0, r5
ldr r1, _08036A0C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x15
bl sub_803FBE8
adds r1, r7, r6
strb r0, [r1]
adds r6, 0x1
b _08036D72
.align 2, 0
_08036A0C: .4byte gUnknown_202402C
_08036A10:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A28 @ =gUnknown_202402C
adds r0, r1
ldrb r1, [r3]
lsls r1, 9
adds r2, 0x1
adds r1, r2
ldrb r1, [r1]
adds r1, 0x8
b _08036D6A
.align 2, 0
_08036A28: .4byte gUnknown_202402C
_08036A2C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A38 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1
b _08036A46
.align 2, 0
_08036A38: .4byte gUnknown_202402C
_08036A3C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A68 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x19
_08036A46:
bl sub_803FBE8
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
movs r6, 0x3
b _08036D72
.align 2, 0
_08036A68: .4byte gUnknown_202402C
_08036A6C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A78 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1A
b _08036D6A
.align 2, 0
_08036A78: .4byte gUnknown_202402C
_08036A7C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A88 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1B
b _08036D6A
.align 2, 0
_08036A88: .4byte gUnknown_202402C
_08036A8C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036A98 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1C
b _08036D6A
.align 2, 0
_08036A98: .4byte gUnknown_202402C
_08036A9C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AA8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1D
b _08036D6A
.align 2, 0
_08036AA8: .4byte gUnknown_202402C
_08036AAC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AB8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1E
b _08036D6A
.align 2, 0
_08036AB8: .4byte gUnknown_202402C
_08036ABC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AC8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x1F
b _08036D6A
.align 2, 0
_08036AC8: .4byte gUnknown_202402C
_08036ACC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AD8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x20
b _08036D6A
.align 2, 0
_08036AD8: .4byte gUnknown_202402C
_08036ADC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AE8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x22
b _08036D6A
.align 2, 0
_08036AE8: .4byte gUnknown_202402C
_08036AEC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036AF8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x23
b _08036D6A
.align 2, 0
_08036AF8: .4byte gUnknown_202402C
_08036AFC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036B08 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x24
b _08036D6A
.align 2, 0
_08036B08: .4byte gUnknown_202402C
_08036B0C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036B18 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x25
b _08036D6A
.align 2, 0
_08036B18: .4byte gUnknown_202402C
_08036B1C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036B28 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x26
b _08036D6A
.align 2, 0
_08036B28: .4byte gUnknown_202402C
_08036B2C:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08036B78 @ =gUnknown_202402C
adds r4, r0
adds r0, r4, 0
movs r1, 0x27
bl sub_803FBE8
strb r0, [r7]
adds r0, r4, 0
movs r1, 0x28
bl sub_803FBE8
strb r0, [r7, 0x1]
adds r0, r4, 0
movs r1, 0x29
bl sub_803FBE8
strb r0, [r7, 0x2]
adds r0, r4, 0
movs r1, 0x2A
bl sub_803FBE8
strb r0, [r7, 0x3]
adds r0, r4, 0
movs r1, 0x2B
bl sub_803FBE8
strb r0, [r7, 0x4]
adds r0, r4, 0
movs r1, 0x2C
bl sub_803FBE8
strb r0, [r7, 0x5]
movs r6, 0x6
b _08036D72
.align 2, 0
_08036B78: .4byte gUnknown_202402C
_08036B7C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036B88 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x27
b _08036D6A
.align 2, 0
_08036B88: .4byte gUnknown_202402C
_08036B8C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036B98 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x28
b _08036D6A
.align 2, 0
_08036B98: .4byte gUnknown_202402C
_08036B9C:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BA8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x29
b _08036D6A
.align 2, 0
_08036BA8: .4byte gUnknown_202402C
_08036BAC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BB8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x2A
b _08036D6A
.align 2, 0
_08036BB8: .4byte gUnknown_202402C
_08036BBC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BC8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x2B
b _08036D6A
.align 2, 0
_08036BC8: .4byte gUnknown_202402C
_08036BCC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BD8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x2C
b _08036D6A
.align 2, 0
_08036BD8: .4byte gUnknown_202402C
_08036BDC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BE8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0
b _08036C06
.align 2, 0
_08036BE8: .4byte gUnknown_202402C
_08036BEC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036BF8 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x9
b _08036CAA
.align 2, 0
_08036BF8: .4byte gUnknown_202402C
_08036BFC:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C2C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x37
_08036C06:
bl sub_803FBE8
adds r1, r0, 0
strb r1, [r7]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
lsrs r0, 8
strb r0, [r7, 0x1]
movs r0, 0xFF
lsls r0, 16
ands r0, r1
lsrs r0, 16
strb r0, [r7, 0x2]
lsrs r0, r1, 24
strb r0, [r7, 0x3]
movs r6, 0x4
b _08036D72
.align 2, 0
_08036C2C: .4byte gUnknown_202402C
_08036C30:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C3C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x38
b _08036D6A
.align 2, 0
_08036C3C: .4byte gUnknown_202402C
_08036C40:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C4C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x39
b _08036CAA
.align 2, 0
_08036C4C: .4byte gUnknown_202402C
_08036C50:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C5C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3A
b _08036CAA
.align 2, 0
_08036C5C: .4byte gUnknown_202402C
_08036C60:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C6C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3B
b _08036CAA
.align 2, 0
_08036C6C: .4byte gUnknown_202402C
_08036C70:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C7C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3C
b _08036CAA
.align 2, 0
_08036C7C: .4byte gUnknown_202402C
_08036C80:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C8C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3D
b _08036CAA
.align 2, 0
_08036C8C: .4byte gUnknown_202402C
_08036C90:
movs r0, 0x64
muls r0, r5
ldr r1, _08036C9C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3E
b _08036CAA
.align 2, 0
_08036C9C: .4byte gUnknown_202402C
_08036CA0:
movs r0, 0x64
muls r0, r5
ldr r1, _08036CBC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3F
_08036CAA:
bl sub_803FBE8
lsls r0, 16
lsrs r0, 16
strb r0, [r7]
lsrs r0, 8
strb r0, [r7, 0x1]
movs r6, 0x2
b _08036D72
.align 2, 0
_08036CBC: .4byte gUnknown_202402C
_08036CC0:
movs r0, 0x64
muls r0, r5
ldr r1, _08036CCC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x16
b _08036D6A
.align 2, 0
_08036CCC: .4byte gUnknown_202402C
_08036CD0:
movs r0, 0x64
muls r0, r5
ldr r1, _08036CDC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x17
b _08036D6A
.align 2, 0
_08036CDC: .4byte gUnknown_202402C
_08036CE0:
movs r0, 0x64
muls r0, r5
ldr r1, _08036CEC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x18
b _08036D6A
.align 2, 0
_08036CEC: .4byte gUnknown_202402C
_08036CF0:
movs r0, 0x64
muls r0, r5
ldr r1, _08036CFC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x21
b _08036D6A
.align 2, 0
_08036CFC: .4byte gUnknown_202402C
_08036D00:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D0C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x2F
b _08036D6A
.align 2, 0
_08036D0C: .4byte gUnknown_202402C
_08036D10:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D1C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x30
b _08036D6A
.align 2, 0
_08036D1C: .4byte gUnknown_202402C
_08036D20:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D2C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x32
b _08036D6A
.align 2, 0
_08036D2C: .4byte gUnknown_202402C
_08036D30:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D3C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x33
b _08036D6A
.align 2, 0
_08036D3C: .4byte gUnknown_202402C
_08036D40:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D4C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x34
b _08036D6A
.align 2, 0
_08036D4C: .4byte gUnknown_202402C
_08036D50:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D5C @ =gUnknown_202402C
adds r0, r1
movs r1, 0x35
b _08036D6A
.align 2, 0
_08036D5C: .4byte gUnknown_202402C
_08036D60:
movs r0, 0x64
muls r0, r5
ldr r1, _08036D84 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x36
_08036D6A:
bl sub_803FBE8
strb r0, [r7]
movs r6, 0x1
_08036D72:
adds r0, r6, 0
add sp, 0x90
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08036D84: .4byte gUnknown_202402C
thumb_func_end sub_80365DC
thumb_func_start sub_8036D88
sub_8036D88: @ 8036D88
push {r4-r7,lr}
sub sp, 0x58
ldr r2, _08036E00 @ =gUnknown_2023BCE
ldr r5, _08036E04 @ =gUnknown_2023BC4
ldrb r1, [r5]
lsls r0, r1, 1
adds r0, r2
ldrh r2, [r0]
movs r0, 0x64
adds r4, r2, 0
muls r4, r0
ldr r3, _08036E08 @ =gUnknown_2022BC4
lsls r1, 9
adds r0, r3, 0x1
adds r0, r1, r0
ldrb r2, [r0]
ldr r0, _08036E0C @ =gUnknown_202402C
adds r0, r2, r0
adds r6, r4, r0
mov r0, sp
adds r4, r0, r2
movs r2, 0
adds r0, r3, 0x2
adds r1, r0
adds r7, r5, 0
mov r12, r3
ldrb r1, [r1]
cmp r2, r1
bcs _08036DDE
adds r3, r0, 0
_08036DC4:
adds r1, r4, r2
adds r0, r6, r2
ldrb r0, [r0]
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
ldrb r0, [r5]
lsls r0, 9
adds r0, r3
ldrb r0, [r0]
cmp r2, r0
bcc _08036DC4
_08036DDE:
ldrb r0, [r7]
lsls r0, 9
mov r1, r12
adds r1, 0x2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
adds r2, r4, 0
bl sub_800E708
bl sub_8036530
add sp, 0x58
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08036E00: .4byte gUnknown_2023BCE
_08036E04: .4byte gUnknown_2023BC4
_08036E08: .4byte gUnknown_2022BC4
_08036E0C: .4byte gUnknown_202402C
thumb_func_end sub_8036D88
thumb_func_start sub_8036E10
sub_8036E10: @ 8036E10
push {r4,r5,lr}
ldr r1, _08036E34 @ =gUnknown_2022BC4
ldr r0, _08036E38 @ =gUnknown_2023BC4
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x2
adds r1, r0, r1
ldrb r0, [r1]
cmp r0, 0
bne _08036E40
ldr r0, _08036E3C @ =gUnknown_2023BCE
lsls r1, r2, 1
adds r1, r0
ldrb r0, [r1]
bl sub_8036E68
b _08036E5E
.align 2, 0
_08036E34: .4byte gUnknown_2022BC4
_08036E38: .4byte gUnknown_2023BC4
_08036E3C: .4byte gUnknown_2023BCE
_08036E40:
ldrb r4, [r1]
movs r5, 0
_08036E44:
movs r0, 0x1
ands r0, r4
cmp r0, 0
beq _08036E52
adds r0, r5, 0
bl sub_8036E68
_08036E52:
lsrs r4, 1
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x5
bls _08036E44
_08036E5E:
bl sub_8036530
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8036E10
thumb_func_start sub_8036E68
sub_8036E68: @ 8036E68
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x38
lsls r0, 24
lsrs r5, r0, 24
ldr r3, _08036EA0 @ =gUnknown_2023BC4
ldrb r0, [r3]
lsls r0, 9
ldr r2, _08036EA4 @ =gUnknown_2022BC7
adds r4, r0, r2
adds r7, r4, 0
subs r1, r2, 0x2
adds r0, r1
ldrb r0, [r0]
adds r6, r3, 0
adds r3, r2, 0
cmp r0, 0x3B
bls _08036E96
bl _08037774
_08036E96:
lsls r0, 2
ldr r1, _08036EA8 @ =_08036EAC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08036EA0: .4byte gUnknown_2023BC4
_08036EA4: .4byte gUnknown_2022BC7
_08036EA8: .4byte _08036EAC
.align 2, 0
_08036EAC:
.4byte _08036F9C
.4byte _08037134
.4byte _08037150
.4byte _0803716C
.4byte _080371C0
.4byte _080371C0
.4byte _080371C0
.4byte _080371C0
.4byte _080371E0
.4byte _08037248
.4byte _08037248
.4byte _08037248
.4byte _08037248
.4byte _08037774
.4byte _08037774
.4byte _08037774
.4byte _08037774
.4byte _08037270
.4byte _0803728C
.4byte _080372A8
.4byte _080372C4
.4byte _080372E0
.4byte _080372FC
.4byte _08037318
.4byte _08037334
.4byte _08037350
.4byte _0803736C
.4byte _08037388
.4byte _080373A4
.4byte _080373C0
.4byte _080373DC
.4byte _080373F8
.4byte _0803746C
.4byte _08037488
.4byte _080374A4
.4byte _080374C0
.4byte _080374DC
.4byte _080374F8
.4byte _08037514
.4byte _08037530
.4byte _0803754C
.4byte _08037568
.4byte _08037584
.4byte _080375A0
.4byte _080375BC
.4byte _080375D8
.4byte _080375F4
.4byte _08037610
.4byte _0803762C
.4byte _08037648
.4byte _08037664
.4byte _08037680
.4byte _0803769C
.4byte _080376B8
.4byte _080376D4
.4byte _080376F0
.4byte _0803770C
.4byte _08037728
.4byte _08037744
.4byte _08037760
_08036F9C:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08037130 @ =gUnknown_202402C
adds r4, r0
adds r0, r4, 0
movs r1, 0xB
adds r2, r7, 0
bl sub_804037C
adds r2, r7, 0
adds r2, 0x2E
adds r0, r4, 0
movs r1, 0xC
bl sub_804037C
movs r0, 0
mov r8, r0
movs r0, 0x3B
adds r0, r7
mov r10, r0
adds r0, r7, 0
adds r0, 0x2B
str r0, [sp, 0x20]
adds r0, 0x19
str r0, [sp, 0x28]
adds r0, 0x4
str r0, [sp, 0x2C]
adds r0, 0x4
str r0, [sp, 0x30]
subs r0, 0x22
str r0, [sp, 0x1C]
subs r0, 0x2
str r0, [sp, 0x18]
adds r0, 0x4
str r0, [sp, 0x24]
adds r0, r7, 0x2
str r0, [sp, 0x4]
adds r0, r7, 0x4
str r0, [sp, 0x8]
adds r0, r7, 0x6
str r0, [sp, 0xC]
adds r0, 0x2
str r0, [sp, 0x10]
adds r0, 0x2
str r0, [sp, 0x14]
mov r9, r4
adds r6, r7, 0
adds r6, 0x24
adds r4, r7, 0
adds r4, 0xC
_08037002:
mov r1, r8
adds r1, 0xD
mov r0, r9
adds r2, r4, 0
bl sub_804037C
mov r1, r8
adds r1, 0x11
mov r0, r9
adds r2, r6, 0
bl sub_804037C
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _08037002
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08037130 @ =gUnknown_202402C
adds r4, r0
adds r0, r4, 0
movs r1, 0x15
mov r2, r10
bl sub_804037C
adds r0, r4, 0
movs r1, 0x20
ldr r2, [sp, 0x20]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x19
ldr r2, [sp, 0x28]
bl sub_804037C
ldrb r0, [r7, 0x14]
lsls r0, 27
lsrs r0, 27
mov r1, sp
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x27
mov r2, sp
bl sub_804037C
mov r1, sp
ldrh r0, [r7, 0x14]
lsls r0, 22
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x28
mov r2, sp
bl sub_804037C
mov r1, sp
ldrb r0, [r7, 0x15]
lsls r0, 25
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x29
mov r2, sp
bl sub_804037C
mov r1, sp
ldr r0, [r7, 0x14]
lsls r0, 12
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2A
mov r2, sp
bl sub_804037C
mov r1, sp
ldrh r0, [r7, 0x16]
lsls r0, 23
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2B
mov r2, sp
bl sub_804037C
mov r1, sp
ldrb r0, [r7, 0x17]
lsls r0, 26
lsrs r0, 27
strb r0, [r1]
adds r0, r4, 0
movs r1, 0x2C
mov r2, sp
bl sub_804037C
adds r0, r4, 0
movs r1, 0
ldr r2, [sp, 0x2C]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x37
ldr r2, [sp, 0x30]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x38
ldr r2, [sp, 0x1C]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x39
ldr r2, [sp, 0x18]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3A
ldr r2, [sp, 0x24]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3B
ldr r2, [sp, 0x4]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3C
ldr r2, [sp, 0x8]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3D
ldr r2, [sp, 0xC]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3E
ldr r2, [sp, 0x10]
bl sub_804037C
adds r0, r4, 0
movs r1, 0x3F
ldr r2, [sp, 0x14]
bl sub_804037C
b _08037774
.align 2, 0
_08037130: .4byte gUnknown_202402C
_08037134:
movs r0, 0x64
muls r0, r5
ldr r1, _0803714C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0xB
bl sub_804037C
b _08037774
.align 2, 0
_0803714C: .4byte gUnknown_202402C
_08037150:
movs r0, 0x64
muls r0, r5
ldr r1, _08037168 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0xC
bl sub_804037C
b _08037774
.align 2, 0
_08037168: .4byte gUnknown_202402C
_0803716C:
movs r0, 0
mov r8, r0
movs r0, 0xC
adds r0, r4
mov r9, r0
movs r0, 0x64
adds r1, r5, 0
muls r1, r0
ldr r0, _080371BC @ =gUnknown_202402C
adds r7, r1, r0
adds r6, r4, 0
adds r6, 0x8
_08037184:
mov r1, r8
adds r1, 0xD
adds r0, r7, 0
adds r2, r4, 0
bl sub_804037C
mov r1, r8
adds r1, 0x11
adds r0, r7, 0
adds r2, r6, 0
bl sub_804037C
adds r6, 0x1
adds r4, 0x2
movs r0, 0x1
add r8, r0
mov r0, r8
cmp r0, 0x3
ble _08037184
movs r0, 0x64
muls r0, r5
ldr r1, _080371BC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x15
mov r2, r9
bl sub_804037C
b _08037774
.align 2, 0
_080371BC: .4byte gUnknown_202402C
_080371C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080371D8 @ =gUnknown_202402C
adds r0, r1
ldr r3, _080371DC @ =gUnknown_2022BC4
ldrb r2, [r6]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x9
b _0803725E
.align 2, 0
_080371D8: .4byte gUnknown_202402C
_080371DC: .4byte gUnknown_2022BC4
_080371E0:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08037244 @ =gUnknown_202402C
adds r4, r0
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
adds r0, r4, 0
movs r1, 0x11
str r3, [sp, 0x34]
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x12
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x13
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x14
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x15
bl sub_804037C
b _08037774
.align 2, 0
_08037244: .4byte gUnknown_202402C
_08037248:
movs r0, 0x64
muls r0, r5
ldr r1, _08037268 @ =gUnknown_202402C
adds r0, r1
ldr r3, _0803726C @ =gUnknown_2022BC4
ldrb r2, [r6]
lsls r2, 9
adds r1, r3, 0x1
adds r1, r2, r1
ldrb r1, [r1]
adds r1, 0x8
_0803725E:
adds r3, 0x3
adds r2, r3
bl sub_804037C
b _08037774
.align 2, 0
_08037268: .4byte gUnknown_202402C
_0803726C: .4byte gUnknown_2022BC4
_08037270:
movs r0, 0x64
muls r0, r5
ldr r1, _08037288 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1
bl sub_804037C
b _08037774
.align 2, 0
_08037288: .4byte gUnknown_202402C
_0803728C:
movs r0, 0x64
muls r0, r5
ldr r1, _080372A4 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x19
bl sub_804037C
b _08037774
.align 2, 0
_080372A4: .4byte gUnknown_202402C
_080372A8:
movs r0, 0x64
muls r0, r5
ldr r1, _080372C0 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1A
bl sub_804037C
b _08037774
.align 2, 0
_080372C0: .4byte gUnknown_202402C
_080372C4:
movs r0, 0x64
muls r0, r5
ldr r1, _080372DC @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1B
bl sub_804037C
b _08037774
.align 2, 0
_080372DC: .4byte gUnknown_202402C
_080372E0:
movs r0, 0x64
muls r0, r5
ldr r1, _080372F8 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1C
bl sub_804037C
b _08037774
.align 2, 0
_080372F8: .4byte gUnknown_202402C
_080372FC:
movs r0, 0x64
muls r0, r5
ldr r1, _08037314 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1D
bl sub_804037C
b _08037774
.align 2, 0
_08037314: .4byte gUnknown_202402C
_08037318:
movs r0, 0x64
muls r0, r5
ldr r1, _08037330 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1E
bl sub_804037C
b _08037774
.align 2, 0
_08037330: .4byte gUnknown_202402C
_08037334:
movs r0, 0x64
muls r0, r5
ldr r1, _0803734C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x1F
bl sub_804037C
b _08037774
.align 2, 0
_0803734C: .4byte gUnknown_202402C
_08037350:
movs r0, 0x64
muls r0, r5
ldr r1, _08037368 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x20
bl sub_804037C
b _08037774
.align 2, 0
_08037368: .4byte gUnknown_202402C
_0803736C:
movs r0, 0x64
muls r0, r5
ldr r1, _08037384 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x22
bl sub_804037C
b _08037774
.align 2, 0
_08037384: .4byte gUnknown_202402C
_08037388:
movs r0, 0x64
muls r0, r5
ldr r1, _080373A0 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x23
bl sub_804037C
b _08037774
.align 2, 0
_080373A0: .4byte gUnknown_202402C
_080373A4:
movs r0, 0x64
muls r0, r5
ldr r1, _080373BC @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x24
bl sub_804037C
b _08037774
.align 2, 0
_080373BC: .4byte gUnknown_202402C
_080373C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080373D8 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x25
bl sub_804037C
b _08037774
.align 2, 0
_080373D8: .4byte gUnknown_202402C
_080373DC:
movs r0, 0x64
muls r0, r5
ldr r1, _080373F4 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x26
bl sub_804037C
b _08037774
.align 2, 0
_080373F4: .4byte gUnknown_202402C
_080373F8:
movs r0, 0x64
adds r4, r5, 0
muls r4, r0
ldr r0, _08037468 @ =gUnknown_202402C
adds r4, r0
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
adds r0, r4, 0
movs r1, 0x27
str r3, [sp, 0x34]
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x1
adds r2, r0
adds r0, r4, 0
movs r1, 0x28
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x2
adds r2, r0
adds r0, r4, 0
movs r1, 0x29
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x3
adds r2, r0
adds r0, r4, 0
movs r1, 0x2A
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x4
adds r2, r0
adds r0, r4, 0
movs r1, 0x2B
bl sub_804037C
ldrb r2, [r6]
lsls r2, 9
ldr r3, [sp, 0x34]
adds r0, r3, 0x5
adds r2, r0
adds r0, r4, 0
b _08037506
.align 2, 0
_08037468: .4byte gUnknown_202402C
_0803746C:
movs r0, 0x64
muls r0, r5
ldr r1, _08037484 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x27
bl sub_804037C
b _08037774
.align 2, 0
_08037484: .4byte gUnknown_202402C
_08037488:
movs r0, 0x64
muls r0, r5
ldr r1, _080374A0 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x28
bl sub_804037C
b _08037774
.align 2, 0
_080374A0: .4byte gUnknown_202402C
_080374A4:
movs r0, 0x64
muls r0, r5
ldr r1, _080374BC @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x29
bl sub_804037C
b _08037774
.align 2, 0
_080374BC: .4byte gUnknown_202402C
_080374C0:
movs r0, 0x64
muls r0, r5
ldr r1, _080374D8 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2A
bl sub_804037C
b _08037774
.align 2, 0
_080374D8: .4byte gUnknown_202402C
_080374DC:
movs r0, 0x64
muls r0, r5
ldr r1, _080374F4 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2B
bl sub_804037C
b _08037774
.align 2, 0
_080374F4: .4byte gUnknown_202402C
_080374F8:
movs r0, 0x64
muls r0, r5
ldr r1, _08037510 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
_08037506:
movs r1, 0x2C
bl sub_804037C
b _08037774
.align 2, 0
_08037510: .4byte gUnknown_202402C
_08037514:
movs r0, 0x64
muls r0, r5
ldr r1, _0803752C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0
bl sub_804037C
b _08037774
.align 2, 0
_0803752C: .4byte gUnknown_202402C
_08037530:
movs r0, 0x64
muls r0, r5
ldr r1, _08037548 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x9
bl sub_804037C
b _08037774
.align 2, 0
_08037548: .4byte gUnknown_202402C
_0803754C:
movs r0, 0x64
muls r0, r5
ldr r1, _08037564 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x37
bl sub_804037C
b _08037774
.align 2, 0
_08037564: .4byte gUnknown_202402C
_08037568:
movs r0, 0x64
muls r0, r5
ldr r1, _08037580 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x38
bl sub_804037C
b _08037774
.align 2, 0
_08037580: .4byte gUnknown_202402C
_08037584:
movs r0, 0x64
muls r0, r5
ldr r1, _0803759C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x39
bl sub_804037C
b _08037774
.align 2, 0
_0803759C: .4byte gUnknown_202402C
_080375A0:
movs r0, 0x64
muls r0, r5
ldr r1, _080375B8 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3A
bl sub_804037C
b _08037774
.align 2, 0
_080375B8: .4byte gUnknown_202402C
_080375BC:
movs r0, 0x64
muls r0, r5
ldr r1, _080375D4 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3B
bl sub_804037C
b _08037774
.align 2, 0
_080375D4: .4byte gUnknown_202402C
_080375D8:
movs r0, 0x64
muls r0, r5
ldr r1, _080375F0 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3C
bl sub_804037C
b _08037774
.align 2, 0
_080375F0: .4byte gUnknown_202402C
_080375F4:
movs r0, 0x64
muls r0, r5
ldr r1, _0803760C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3D
bl sub_804037C
b _08037774
.align 2, 0
_0803760C: .4byte gUnknown_202402C
_08037610:
movs r0, 0x64
muls r0, r5
ldr r1, _08037628 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3E
bl sub_804037C
b _08037774
.align 2, 0
_08037628: .4byte gUnknown_202402C
_0803762C:
movs r0, 0x64
muls r0, r5
ldr r1, _08037644 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x3F
bl sub_804037C
b _08037774
.align 2, 0
_08037644: .4byte gUnknown_202402C
_08037648:
movs r0, 0x64
muls r0, r5
ldr r1, _08037660 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x16
bl sub_804037C
b _08037774
.align 2, 0
_08037660: .4byte gUnknown_202402C
_08037664:
movs r0, 0x64
muls r0, r5
ldr r1, _0803767C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x17
bl sub_804037C
b _08037774
.align 2, 0
_0803767C: .4byte gUnknown_202402C
_08037680:
movs r0, 0x64
muls r0, r5
ldr r1, _08037698 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x18
bl sub_804037C
b _08037774
.align 2, 0
_08037698: .4byte gUnknown_202402C
_0803769C:
movs r0, 0x64
muls r0, r5
ldr r1, _080376B4 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x21
bl sub_804037C
b _08037774
.align 2, 0
_080376B4: .4byte gUnknown_202402C
_080376B8:
movs r0, 0x64
muls r0, r5
ldr r1, _080376D0 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x2F
bl sub_804037C
b _08037774
.align 2, 0
_080376D0: .4byte gUnknown_202402C
_080376D4:
movs r0, 0x64
muls r0, r5
ldr r1, _080376EC @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x30
bl sub_804037C
b _08037774
.align 2, 0
_080376EC: .4byte gUnknown_202402C
_080376F0:
movs r0, 0x64
muls r0, r5
ldr r1, _08037708 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x32
bl sub_804037C
b _08037774
.align 2, 0
_08037708: .4byte gUnknown_202402C
_0803770C:
movs r0, 0x64
muls r0, r5
ldr r1, _08037724 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x33
bl sub_804037C
b _08037774
.align 2, 0
_08037724: .4byte gUnknown_202402C
_08037728:
movs r0, 0x64
muls r0, r5
ldr r1, _08037740 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x34
bl sub_804037C
b _08037774
.align 2, 0
_08037740: .4byte gUnknown_202402C
_08037744:
movs r0, 0x64
muls r0, r5
ldr r1, _0803775C @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x35
bl sub_804037C
b _08037774
.align 2, 0
_0803775C: .4byte gUnknown_202402C
_08037760:
movs r0, 0x64
muls r0, r5
ldr r1, _08037784 @ =gUnknown_202402C
adds r0, r1
ldrb r2, [r6]
lsls r2, 9
adds r2, r3
movs r1, 0x36
bl sub_804037C
_08037774:
add sp, 0x38
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08037784: .4byte gUnknown_202402C
thumb_func_end sub_8036E68
thumb_func_start sub_8037788
sub_8037788: @ 8037788
push {r4-r7,lr}
ldr r1, _080377EC @ =gUnknown_2023BCE
ldr r7, _080377F0 @ =gUnknown_2023BC4
ldrb r2, [r7]
lsls r0, r2, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
adds r3, r1, 0
muls r3, r0
ldr r4, _080377F4 @ =gUnknown_2022BC4
lsls r2, 9
adds r0, r4, 0x1
adds r0, r2, r0
ldrb r0, [r0]
ldr r1, _080377F8 @ =gUnknown_202402C
adds r0, r1
adds r5, r3, r0
movs r3, 0
adds r0, r4, 0x2
adds r2, r0
ldrb r2, [r2]
cmp r3, r2
bcs _080377E0
adds r6, r4, 0
adds r2, r7, 0
adds r4, r0, 0
_080377BE:
adds r1, r5, r3
ldrb r0, [r2]
lsls r0, 9
adds r0, 0x3
adds r0, r3, r0
adds r0, r6
ldrb r0, [r0]
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
ldrb r0, [r2]
lsls r0, 9
adds r0, r4
ldrb r0, [r0]
cmp r3, r0
bcc _080377BE
_080377E0:
bl sub_8036530
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080377EC: .4byte gUnknown_2023BCE
_080377F0: .4byte gUnknown_2023BC4
_080377F4: .4byte gUnknown_2022BC4
_080377F8: .4byte gUnknown_202402C
thumb_func_end sub_8037788
thumb_func_start sub_80377FC
sub_80377FC: @ 80377FC
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r7, _0803787C @ =gUnknown_2023BCE
ldr r4, _08037880 @ =gUnknown_2023BC4
ldrb r0, [r4]
lsls r0, 1
adds r0, r7
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r6, _08037884 @ =gUnknown_202402C
adds r0, r6
movs r1, 0xB
bl sub_803FBE8
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, _08037888 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
beq _08037890
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r5
adds r0, r6
bl sub_8034658
ldrb r0, [r4]
bl sub_8074900
lsls r0, 24
lsrs r5, r0, 24
ldr r3, _0803788C @ =gUnknown_2024018
ldr r0, [r3]
ldrb r1, [r4]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x80
orrs r1, r2
strb r1, [r0]
ldr r0, [r3]
ldrb r1, [r4]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x1]
movs r2, 0x1
orrs r1, r2
strb r1, [r0, 0x1]
b _080378AA
.align 2, 0
_0803787C: .4byte gUnknown_2023BCE
_08037880: .4byte gUnknown_2023BC4
_08037884: .4byte gUnknown_202402C
_08037888: .4byte gUnknown_2022B4C
_0803788C: .4byte gUnknown_2024018
_08037890:
ldrb r1, [r4]
lsls r0, r1, 1
adds r0, r7
ldrh r0, [r0]
muls r0, r5
adds r0, r6
bl sub_8034320
ldrb r0, [r4]
bl sub_80748A8
lsls r0, 24
lsrs r5, r0, 24
_080378AA:
ldr r7, _0803799C @ =gUnknown_2023BC4
ldrb r0, [r7]
bl sub_80751D8
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
ldr r6, _080379A0 @ =gUnknown_20244DC
ldrb r0, [r7]
movs r1, 0x2
bl sub_8074480
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r7]
bl sub_807685C
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r6, 0
adds r1, r4, 0
adds r2, r5, 0
bl sub_8006F8C
ldr r4, _080379A4 @ =gUnknown_2023D44
ldrb r1, [r7]
adds r1, r4
strb r0, [r1]
ldr r5, _080379A8 @ =gUnknown_202063C
ldrb r0, [r7]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080379AC @ =0x0000ff10
strh r1, [r0, 0x24]
ldrb r2, [r7]
adds r0, r2, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r2, [r0, 0x2E]
ldrb r0, [r7]
adds r0, r4
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r8
strh r1, [r0, 0x32]
ldrb r3, [r7]
adds r0, r3, r4
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r2, [r7]
adds r4, r2, r4
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080379B0 @ =gUnknown_2024024
adds r2, r1
ldrb r1, [r2]
bl sub_800838C
ldr r0, _080379B4 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x80
lsls r1, 8
ands r0, r1
cmp r0, 0
bne _08037986
ldrb r4, [r7]
ldr r1, _080379B8 @ =gUnknown_2023BCE
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _080379BC @ =gUnknown_202402C
adds r0, r1
movs r1, 0xB
bl sub_803FBE8
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_8035708
_08037986:
ldr r0, _080379C0 @ =gUnknown_3004FE0
ldrb r1, [r7]
lsls r1, 2
adds r1, r0
ldr r0, _080379C4 @ =sub_8035FE8
str r0, [r1]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803799C: .4byte gUnknown_2023BC4
_080379A0: .4byte gUnknown_20244DC
_080379A4: .4byte gUnknown_2023D44
_080379A8: .4byte gUnknown_202063C
_080379AC: .4byte 0x0000ff10
_080379B0: .4byte gUnknown_2024024
_080379B4: .4byte gUnknown_2022B4C
_080379B8: .4byte gUnknown_2023BCE
_080379BC: .4byte gUnknown_202402C
_080379C0: .4byte gUnknown_3004FE0
_080379C4: .4byte sub_8035FE8
thumb_func_end sub_80377FC
thumb_func_start sub_80379C8
sub_80379C8: @ 80379C8
push {r4,lr}
ldr r4, _08037A10 @ =gUnknown_2023BC4
ldrb r0, [r4]
ldr r1, _08037A14 @ =gUnknown_2023FE8
ldr r1, [r1]
adds r0, r1
adds r0, 0x5C
movs r1, 0x6
strb r1, [r0]
ldr r1, _08037A18 @ =gUnknown_2023BCE
ldrb r0, [r4]
lsls r2, r0, 1
adds r2, r1
ldr r3, _08037A1C @ =gUnknown_2022BC4
lsls r0, 9
adds r1, r3, 0x1
adds r0, r1
ldrb r0, [r0]
strh r0, [r2]
ldrb r0, [r4]
lsls r1, r0, 9
adds r3, 0x2
adds r1, r3
ldrb r1, [r1]
bl sub_8037A28
ldr r1, _08037A20 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08037A24 @ =sub_8036408
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08037A10: .4byte gUnknown_2023BC4
_08037A14: .4byte gUnknown_2023FE8
_08037A18: .4byte gUnknown_2023BCE
_08037A1C: .4byte gUnknown_2022BC4
_08037A20: .4byte gUnknown_3004FE0
_08037A24: .4byte sub_8036408
thumb_func_end sub_80379C8
thumb_func_start sub_8037A28
sub_8037A28: @ 8037A28
push {r4-r6,lr}
mov r6, r10
mov r5, r9
mov r4, r8
push {r4-r6}
adds r6, r0, 0
lsls r6, 24
lsrs r6, 24
lsls r1, 24
lsrs r1, 24
adds r0, r6, 0
bl sub_803589C
ldr r0, _08037B84 @ =gUnknown_2023BCE
lsls r4, r6, 1
adds r4, r0
ldr r0, _08037B88 @ =gUnknown_2022BC4
lsls r1, r6, 9
adds r0, 0x1
adds r1, r0
ldrb r0, [r1]
strh r0, [r4]
ldrh r0, [r4]
movs r1, 0x64
mov r9, r1
mov r1, r9
muls r1, r0
adds r0, r1, 0
ldr r5, _08037B8C @ =gUnknown_202402C
adds r0, r5
movs r1, 0xB
bl sub_803FBE8
mov r8, r0
lsls r0, 16
lsrs r0, 16
mov r8, r0
ldr r0, _08037B90 @ =sub_8033E3C
bl sub_8044EF8
ldr r1, _08037B94 @ =gUnknown_3004FFC
mov r10, r1
add r10, r6
mov r1, r10
strb r0, [r1]
ldrh r0, [r4]
mov r1, r9
muls r1, r0
adds r0, r1, 0
adds r0, r5
adds r1, r6, 0
bl sub_8034320
adds r0, r6, 0
bl sub_80751D8
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r8
bl sub_803F7D4
ldr r0, _08037B98 @ =gUnknown_20244DC
mov r9, r0
adds r0, r6, 0
movs r1, 0x2
bl sub_8074480
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
adds r0, r6, 0
bl sub_80748A8
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r6, 0
bl sub_807685C
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
mov r0, r9
adds r1, r5, 0
adds r2, r4, 0
bl sub_8006F8C
ldr r4, _08037B9C @ =gUnknown_2023D44
adds r4, r6, r4
strb r0, [r4]
ldr r5, _08037BA0 @ =gUnknown_202063C
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
strh r6, [r0, 0x2E]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
mov r1, r8
strh r1, [r0, 0x32]
mov r0, r10
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrb r1, [r4]
strh r1, [r0, 0x30]
ldrb r0, [r4]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r5
lsls r3, r6, 4
ldrb r2, [r1, 0x5]
movs r0, 0xF
ands r0, r2
orrs r0, r3
strb r0, [r1, 0x5]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08037BA4 @ =gUnknown_2024024
adds r6, r1
ldrb r1, [r6]
bl sub_800838C
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _08037BA8 @ =nullsub_8
str r1, [r0]
movs r0, 0
movs r1, 0xFE
bl sub_804A938
mov r1, r10
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r5
lsls r0, 24
lsrs r0, 24
strh r0, [r1, 0x2E]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037B84: .4byte gUnknown_2023BCE
_08037B88: .4byte gUnknown_2022BC4
_08037B8C: .4byte gUnknown_202402C
_08037B90: .4byte sub_8033E3C
_08037B94: .4byte gUnknown_3004FFC
_08037B98: .4byte gUnknown_20244DC
_08037B9C: .4byte gUnknown_2023D44
_08037BA0: .4byte gUnknown_202063C
_08037BA4: .4byte gUnknown_2024024
_08037BA8: .4byte nullsub_8
thumb_func_end sub_8037A28
thumb_func_start sub_8037BAC
sub_8037BAC: @ 8037BAC
push {r4-r6,lr}
ldr r1, _08037BE0 @ =gUnknown_2022BC4
ldr r6, _08037BE4 @ =gUnknown_2023BC4
ldrb r2, [r6]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r3, [r0]
cmp r3, 0
bne _08037BF4
ldr r0, _08037BE8 @ =gUnknown_2024018
ldr r0, [r0]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
strb r3, [r0, 0x4]
ldr r1, _08037BEC @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _08037BF0 @ =sub_8037C44
str r1, [r0]
b _08037C30
.align 2, 0
_08037BE0: .4byte gUnknown_2022BC4
_08037BE4: .4byte gUnknown_2023BC4
_08037BE8: .4byte gUnknown_2024018
_08037BEC: .4byte gUnknown_3004FE0
_08037BF0: .4byte sub_8037C44
_08037BF4:
ldr r5, _08037C38 @ =gUnknown_2023D44
adds r0, r2, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _08037C3C @ =gUnknown_202063C
adds r0, r4
bl sub_80077D8
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl sub_8007280
ldrb r0, [r6]
bl sub_8035794
ldr r1, _08037C40 @ =gUnknown_3004FF0
ldrb r0, [r6]
adds r0, r1
ldrb r0, [r0]
bl sub_8048188
bl sub_8036530
_08037C30:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037C38: .4byte gUnknown_2023D44
_08037C3C: .4byte gUnknown_202063C
_08037C40: .4byte gUnknown_3004FF0
thumb_func_end sub_8037BAC
thumb_func_start sub_8037C44
sub_8037C44: @ 8037C44
push {r4-r6,lr}
ldr r6, _08037C64 @ =gUnknown_2024018
ldr r4, [r6]
ldr r5, _08037C68 @ =gUnknown_2023BC4
ldrb r2, [r5]
ldr r1, [r4, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r0, [r3, 0x4]
cmp r0, 0
beq _08037C6C
cmp r0, 0x1
beq _08037C9A
b _08037CC2
.align 2, 0
_08037C64: .4byte gUnknown_2024018
_08037C68: .4byte gUnknown_2023BC4
_08037C6C:
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08037C86
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl sub_80341D8
_08037C86:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strb r1, [r0, 0x4]
b _08037CC2
_08037C9A:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _08037CC2
strb r0, [r3, 0x4]
ldrb r2, [r5]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x2
bl sub_80341D8
ldr r1, _08037CC8 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08037CCC @ =sub_8036170
str r1, [r0]
_08037CC2:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037CC8: .4byte gUnknown_3004FE0
_08037CCC: .4byte sub_8036170
thumb_func_end sub_8037C44
thumb_func_start sub_8037CD0
sub_8037CD0: @ 8037CD0
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r3, _08037CEC @ =gUnknown_20386AE
ldrh r1, [r3]
movs r0, 0x80
lsls r0, 3
cmp r1, r0
bne _08037CF0
bl sub_8040EEC
b _08037D26
.align 2, 0
_08037CEC: .4byte gUnknown_20386AE
_08037CF0:
ldr r0, _08037D04 @ =gUnknown_2022B4C
ldr r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08037D08
bl sub_80E6078
b _08037D26
.align 2, 0
_08037D04: .4byte gUnknown_2022B4C
_08037D08:
movs r0, 0x80
lsls r0, 12
ands r0, r1
cmp r0, 0
beq _08037D18
bl sub_815DA3C
b _08037D26
_08037D18:
movs r0, 0x80
lsls r0, 4
ands r1, r0
cmp r1, 0
beq _08037D2C
bl sub_80E7420
_08037D26:
lsls r0, 24
lsrs r0, 24
b _08037D3A
_08037D2C:
ldr r2, _08037E6C @ =gUnknown_823EAC8
ldrh r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x3]
_08037D3A:
mov r9, r0
ldr r0, _08037E70 @ =gUnknown_2023BC4
mov r8, r0
ldrb r1, [r0]
mov r0, r9
bl sub_80346C4
mov r1, r8
ldrb r0, [r1]
bl sub_80751D8
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
bl sub_803F864
ldr r5, _08037E74 @ =gUnknown_20244DC
ldr r1, _08037E78 @ =gUnknown_823932C
mov r2, r9
lsls r0, r2, 2
adds r0, r1
ldrb r0, [r0]
movs r4, 0x8
subs r4, r0
lsls r4, 18
movs r0, 0xA0
lsls r0, 14
adds r4, r0
asrs r4, 16
mov r1, r8
ldrb r0, [r1]
bl sub_807685C
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
adds r0, r5, 0
movs r1, 0xB0
adds r2, r4, 0
bl sub_8006F8C
ldr r5, _08037E7C @ =gUnknown_2023D44
mov r2, r8
ldrb r1, [r2]
adds r1, r5
strb r0, [r1]
ldr r4, _08037E80 @ =gUnknown_202063C
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _08037E84 @ =0x0000ff10
strh r1, [r0, 0x24]
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x2
strh r1, [r0, 0x2E]
ldr r0, _08037E88 @ =gUnknown_8239A1C
mov r1, r9
lsls r6, r1, 3
adds r0, r6, r0
ldrh r0, [r0, 0x4]
bl sub_80089E8
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r4
lsls r0, 4
ldrb r3, [r2, 0x5]
movs r1, 0xF
ands r1, r3
orrs r1, r0
strb r1, [r2, 0x5]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
ldr r0, _08037E8C @ =gUnknown_823957C
adds r6, r0
ldrh r0, [r6, 0x6]
bl sub_8008804
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldr r2, _08037E90 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _08037E94 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
mov r2, r9
strh r2, [r0, 0x6]
mov r1, r8
ldrb r0, [r1]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, _08037E98 @ =sub_8033EEC
str r1, [r0]
ldr r1, _08037E9C @ =gUnknown_3004FE0
mov r2, r8
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _08037EA0 @ =sub_8035AE8
str r1, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08037E6C: .4byte gUnknown_823EAC8
_08037E70: .4byte gUnknown_2023BC4
_08037E74: .4byte gUnknown_20244DC
_08037E78: .4byte gUnknown_823932C
_08037E7C: .4byte gUnknown_2023D44
_08037E80: .4byte gUnknown_202063C
_08037E84: .4byte 0x0000ff10
_08037E88: .4byte gUnknown_8239A1C
_08037E8C: .4byte gUnknown_823957C
_08037E90: .4byte 0x000003ff
_08037E94: .4byte 0xfffffc00
_08037E98: .4byte sub_8033EEC
_08037E9C: .4byte gUnknown_3004FE0
_08037EA0: .4byte sub_8035AE8
thumb_func_end sub_8037CD0
thumb_func_start sub_8037EA4
sub_8037EA4: @ 8037EA4
push {r4-r6,lr}
mov r6, r9
mov r5, r8
push {r5,r6}
ldr r3, _08037EC0 @ =gUnknown_20386AE
ldrh r1, [r3]
movs r0, 0x80
lsls r0, 3
cmp r1, r0
bne _08037EC4
bl sub_8040EEC
b _08037EFA
.align 2, 0
_08037EC0: .4byte gUnknown_20386AE
_08037EC4:
ldr r0, _08037ED8 @ =gUnknown_2022B4C
ldr r1, [r0]
movs r0, 0x80
lsls r0, 1
ands r0, r1
cmp r0, 0
beq _08037EDC
bl sub_80E6078
b _08037EFA
.align 2, 0
_08037ED8: .4byte gUnknown_2022B4C
_08037EDC:
movs r0, 0x80
lsls r0, 12
ands r0, r1
cmp r0, 0
beq _08037EEC
bl sub_815DA3C
b _08037EFA
_08037EEC:
movs r0, 0x80
lsls r0, 4
ands r1, r0
cmp r1, 0
beq _08037F00
bl sub_80E7420
_08037EFA:
lsls r0, 24
lsrs r0, 24
b _08037F0E
_08037F00:
ldr r2, _08038040 @ =gUnknown_823EAC8
ldrh r1, [r3]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x3]
_08037F0E:
mov r9, r0
ldr r0, _08038044 @ =gUnknown_2023BC4
mov r8, r0
ldrb r1, [r0]
mov r0, r9
bl sub_80346C4
mov r1, r8
ldrb r0, [r1]
bl sub_80751D8
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
mov r0, r9
bl sub_803F864
ldr r0, _08038048 @ =gUnknown_20244DC
ldr r2, _0803804C @ =gUnknown_823932C
mov r3, r9
lsls r1, r3, 2
adds r1, r2
ldrb r1, [r1]
movs r2, 0x8
subs r2, r1
lsls r2, 18
movs r1, 0xA0
lsls r1, 14
adds r2, r1
asrs r2, 16
movs r1, 0xB0
movs r3, 0x1E
bl sub_8006F8C
ldr r5, _08038050 @ =gUnknown_2023D44
mov r2, r8
ldrb r1, [r2]
adds r1, r5
strb r0, [r1]
ldr r4, _08038054 @ =gUnknown_202063C
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x60
strh r1, [r0, 0x24]
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x20]
adds r1, 0x20
strh r1, [r0, 0x20]
ldrb r0, [r2]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _08038058 @ =0x0000fffe
strh r1, [r0, 0x2E]
ldr r0, _0803805C @ =gUnknown_8239A1C
mov r3, r9
lsls r6, r3, 3
adds r0, r6, r0
ldrh r0, [r0, 0x4]
bl sub_80089E8
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r1, [r1]
lsls r2, r1, 4
adds r2, r1
lsls r2, 2
adds r2, r4
lsls r0, 4
ldrb r3, [r2, 0x5]
movs r1, 0xF
ands r1, r3
orrs r1, r0
strb r1, [r2, 0x5]
mov r3, r8
ldrb r0, [r3]
adds r0, r5
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
ldrh r0, [r1, 0x4]
lsls r0, 22
lsrs r0, 22
strh r0, [r1, 0x38]
ldr r0, _08038060 @ =gUnknown_823957C
adds r6, r0
ldrh r0, [r6, 0x6]
bl sub_8008804
mov r2, r8
ldrb r1, [r2]
adds r1, r5
ldrb r2, [r1]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r4
ldr r2, _08038064 @ =0x000003ff
ands r2, r0
ldrh r3, [r1, 0x4]
ldr r0, _08038068 @ =0xfffffc00
ands r0, r3
orrs r0, r2
strh r0, [r1, 0x4]
mov r3, r8
ldrb r0, [r3]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
mov r1, r9
strh r1, [r0, 0x6]
ldrb r0, [r3]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r4, 0x1C
adds r0, r4
ldr r1, _0803806C @ =sub_8033EEC
str r1, [r0]
ldr r1, _08038070 @ =gUnknown_3004FE0
ldrb r0, [r3]
lsls r0, 2
adds r0, r1
ldr r1, _08038074 @ =sub_8035B20
str r1, [r0]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08038040: .4byte gUnknown_823EAC8
_08038044: .4byte gUnknown_2023BC4
_08038048: .4byte gUnknown_20244DC
_0803804C: .4byte gUnknown_823932C
_08038050: .4byte gUnknown_2023D44
_08038054: .4byte gUnknown_202063C
_08038058: .4byte 0x0000fffe
_0803805C: .4byte gUnknown_8239A1C
_08038060: .4byte gUnknown_823957C
_08038064: .4byte 0x000003ff
_08038068: .4byte 0xfffffc00
_0803806C: .4byte sub_8033EEC
_08038070: .4byte gUnknown_3004FE0
_08038074: .4byte sub_8035B20
thumb_func_end sub_8037EA4
thumb_func_start sub_8038078
sub_8038078: @ 8038078
push {r4-r6,lr}
ldr r6, _08038108 @ =gUnknown_2023D44
ldr r4, _0803810C @ =gUnknown_2023BC4
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r5, _08038110 @ =gUnknown_202063C
adds r0, r5
bl sub_80750FC
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x23
strh r1, [r0, 0x2E]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
movs r1, 0x8C
lsls r1, 1
strh r1, [r0, 0x32]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r5, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _08038114 @ =sub_8075590
str r1, [r0]
ldrb r0, [r4]
adds r0, r6
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _08038118 @ =nullsub_8
bl sub_8074A68
ldr r1, _0803811C @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08038120 @ =sub_8035B58
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08038108: .4byte gUnknown_2023D44
_0803810C: .4byte gUnknown_2023BC4
_08038110: .4byte gUnknown_202063C
_08038114: .4byte sub_8075590
_08038118: .4byte nullsub_8
_0803811C: .4byte gUnknown_3004FE0
_08038120: .4byte sub_8035B58
thumb_func_end sub_8038078
thumb_func_start sub_8038124
sub_8038124: @ 8038124
push {r4-r6,lr}
ldr r6, _08038170 @ =gUnknown_2024018
ldr r4, [r6]
ldr r5, _08038174 @ =gUnknown_2023BC4
ldrb r2, [r5]
ldr r0, [r4, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r3, r1, r0
ldrb r0, [r3, 0x4]
cmp r0, 0
bne _08038178
ldr r1, [r4]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08038158
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl sub_80341D8
_08038158:
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x4]
adds r1, 0x1
strb r1, [r0, 0x4]
b _080381B4
.align 2, 0
_08038170: .4byte gUnknown_2024018
_08038174: .4byte gUnknown_2023BC4
_08038178:
ldrb r1, [r3]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r0, 24
cmp r0, 0
bne _080381B4
strb r0, [r3, 0x4]
movs r0, 0x10
movs r1, 0x3F
bl sub_80722F4
ldr r2, _080381BC @ =gUnknown_202063C
ldr r1, _080381C0 @ =gUnknown_2023D44
ldrb r0, [r5]
adds r0, r1
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, 0x1C
adds r0, r2
ldr r1, _080381C4 @ =sub_8011EA0
str r1, [r0]
ldr r1, _080381C8 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _080381CC @ =sub_803612C
str r1, [r0]
_080381B4:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080381BC: .4byte gUnknown_202063C
_080381C0: .4byte gUnknown_2023D44
_080381C4: .4byte sub_8011EA0
_080381C8: .4byte gUnknown_3004FE0
_080381CC: .4byte sub_803612C
thumb_func_end sub_8038124
thumb_func_start sub_80381D0
sub_80381D0: @ 80381D0
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_80381D0
thumb_func_start sub_80381DC
sub_80381DC: @ 80381DC
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_80381DC
thumb_func_start sub_80381E8
sub_80381E8: @ 80381E8
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_80381E8
thumb_func_start sub_80381F4
sub_80381F4: @ 80381F4
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_80381F4
thumb_func_start sub_8038200
sub_8038200: @ 8038200
push {r4-r6,lr}
ldr r6, _080382E4 @ =gUnknown_2023BC4
ldrb r0, [r6]
bl sub_80342A4
lsls r0, 24
cmp r0, 0
beq _08038212
b _08038326
_08038212:
ldr r0, _080382E8 @ =gUnknown_2022BC4
mov r12, r0
ldrb r2, [r6]
lsls r2, 9
adds r0, 0x1
adds r0, r2, r0
ldrb r0, [r0]
mov r1, r12
adds r1, 0x2
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
ldr r5, _080382EC @ =gUnknown_2037F16
mov r1, r12
adds r1, 0x3
adds r2, r1
ldrb r1, [r2]
strb r1, [r5]
ldr r4, _080382F0 @ =gUnknown_2037EEC
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x4
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x5
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r4, _080382F4 @ =gUnknown_2037EE8
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x6
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0x7
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 8
orrs r3, r1
mov r1, r12
adds r1, 0x8
adds r1, r2, r1
ldrb r1, [r1]
lsls r1, 16
orrs r3, r1
mov r1, r12
adds r1, 0x9
adds r2, r1
ldrb r1, [r2]
lsls r1, 24
orrs r3, r1
str r3, [r4]
ldr r3, _080382F8 @ =gUnknown_2037EFE
ldrb r1, [r6]
lsls r1, 9
mov r2, r12
adds r2, 0xA
adds r1, r2
ldrb r1, [r1]
strb r1, [r3]
ldr r4, _080382FC @ =gUnknown_2037F00
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0xC
adds r1, r2, r1
ldrb r3, [r1]
mov r1, r12
adds r1, 0xD
adds r2, r1
ldrb r1, [r2]
lsls r1, 8
orrs r3, r1
strh r3, [r4]
ldr r3, _08038300 @ =gUnknown_2037EE4
ldrb r2, [r6]
lsls r2, 9
mov r1, r12
adds r1, 0x10
adds r2, r1
str r2, [r3]
ldr r3, _08038304 @ =gUnknown_2024008
ldrb r1, [r6]
lsls r1, 2
adds r1, r3
ldr r2, [r2]
str r2, [r1]
ldrb r1, [r5]
bl sub_80342A0
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _08038308
bl sub_8036530
b _08038326
.align 2, 0
_080382E4: .4byte gUnknown_2023BC4
_080382E8: .4byte gUnknown_2022BC4
_080382EC: .4byte gUnknown_2037F16
_080382F0: .4byte gUnknown_2037EEC
_080382F4: .4byte gUnknown_2037EE8
_080382F8: .4byte gUnknown_2037EFE
_080382FC: .4byte gUnknown_2037F00
_08038300: .4byte gUnknown_2037EE4
_08038304: .4byte gUnknown_2024008
_08038308:
ldr r0, _0803832C @ =gUnknown_2024018
ldr r0, [r0]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x4]
ldr r1, _08038330 @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _08038334 @ =sub_8038338
str r1, [r0]
_08038326:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_0803832C: .4byte gUnknown_2024018
_08038330: .4byte gUnknown_3004FE0
_08038334: .4byte sub_8038338
thumb_func_end sub_8038200
thumb_func_start sub_8038338
sub_8038338: @ 8038338
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r2, _08038384 @ =gUnknown_2022BC4
ldr r6, _08038388 @ =gUnknown_2023BC4
ldrb r3, [r6]
lsls r1, r3, 9
adds r0, r2, 0x1
mov r10, r0
adds r0, r1, r0
ldrb r4, [r0]
adds r5, r2, 0x2
mov r9, r5
adds r0, r1, r5
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
adds r2, 0xB
adds r1, r2
ldrb r1, [r1]
mov r8, r1
ldr r7, _0803838C @ =gUnknown_2024018
ldr r5, [r7]
ldr r1, [r5, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r2, [r0, 0x4]
cmp r2, 0x1
beq _080383D0
cmp r2, 0x1
bgt _08038390
cmp r2, 0
beq _0803839A
b _080384AC
.align 2, 0
_08038384: .4byte gUnknown_2022BC4
_08038388: .4byte gUnknown_2023BC4
_0803838C: .4byte gUnknown_2024018
_08038390:
cmp r2, 0x2
beq _080383FA
cmp r2, 0x3
beq _08038470
b _080384AC
_0803839A:
ldr r1, [r5]
lsls r0, r3, 2
adds r1, r0, r1
ldrb r2, [r1]
movs r0, 0xC
ands r0, r2
cmp r0, 0x4
bne _080383BC
movs r0, 0x8
orrs r0, r2
strb r0, [r1]
ldrb r2, [r6]
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x5
bl sub_80341D8
_080383BC:
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x1
strb r1, [r0, 0x4]
b _080384AC
_080383D0:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
cmp r0, 0
bne _080384AC
movs r0, 0
bl sub_8035450
adds r0, r4, 0
bl sub_807259C
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x2
strb r1, [r0, 0x4]
b _080384AC
_080383FA:
ldr r0, _08038460 @ =gUnknown_2037EDC
ldr r0, [r0]
bl _call_via_r0
ldr r0, _08038464 @ =gUnknown_2037EE1
ldrb r0, [r0]
cmp r0, 0
bne _080384AC
movs r0, 0x1
bl sub_8035450
ldr r0, [r7]
ldrb r2, [r6]
ldr r1, [r0]
lsls r0, r2, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _08038448
mov r0, r8
cmp r0, 0x1
bhi _08038448
adds r0, r2, 0
adds r1, r2, 0
movs r3, 0x6
bl sub_80341D8
ldr r0, [r7]
ldrb r1, [r6]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x9
negs r0, r0
ands r0, r2
strb r0, [r1]
_08038448:
ldr r0, _08038468 @ =gUnknown_2024018
ldr r2, [r0]
ldr r0, _0803846C @ =gUnknown_2023BC4
ldrb r1, [r0]
ldr r2, [r2, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0x3
strb r1, [r0, 0x4]
b _080384AC
.align 2, 0
_08038460: .4byte gUnknown_2037EDC
_08038464: .4byte gUnknown_2037EE1
_08038468: .4byte gUnknown_2024018
_0803846C: .4byte gUnknown_2023BC4
_08038470:
ldrb r1, [r0]
movs r0, 0x40
ands r0, r1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080384AC
bl sub_8034B40
ldrb r0, [r6]
lsls r2, r0, 9
mov r3, r10
adds r1, r2, r3
ldrb r1, [r1]
add r2, r9
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
bl sub_8035200
ldr r0, [r7]
ldrb r1, [r6]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r4, [r0, 0x4]
bl sub_8036530
_080384AC:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8038338
thumb_func_start sub_80384BC
sub_80384BC: @ 80384BC
push {r4,lr}
ldr r0, _080384F0 @ =gUnknown_2022974
movs r1, 0
strh r1, [r0]
ldr r0, _080384F4 @ =gUnknown_2022976
strh r1, [r0]
ldr r0, _080384F8 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 9
ldr r1, _080384FC @ =gUnknown_2022BC6
adds r4, r0, r1
ldrh r0, [r4]
bl sub_80D7274
ldrh r0, [r4]
bl sub_80D89B0
lsls r0, 24
cmp r0, 0
beq _08038504
ldr r0, _08038500 @ =gUnknown_202298C
movs r1, 0x40
bl sub_80D87BC
b _0803850C
.align 2, 0
_080384F0: .4byte gUnknown_2022974
_080384F4: .4byte gUnknown_2022976
_080384F8: .4byte gUnknown_2023BC4
_080384FC: .4byte gUnknown_2022BC6
_08038500: .4byte gUnknown_202298C
_08038504:
ldr r0, _08038534 @ =gUnknown_202298C
movs r1, 0
bl sub_80D87BC
_0803850C:
ldr r0, _08038538 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x10
ands r0, r1
cmp r0, 0
beq _08038568
ldrh r1, [r4]
cmp r1, 0xE3
beq _0803854C
ldr r0, _0803853C @ =0x0000017f
cmp r1, r0
bne _08038568
ldr r1, _08038540 @ =gUnknown_3004FE0
ldr r0, _08038544 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08038548 @ =sub_80E85C0
b _08038574
.align 2, 0
_08038534: .4byte gUnknown_202298C
_08038538: .4byte gUnknown_2022B4C
_0803853C: .4byte 0x0000017f
_08038540: .4byte gUnknown_3004FE0
_08038544: .4byte gUnknown_2023BC4
_08038548: .4byte sub_80E85C0
_0803854C:
ldr r1, _0803855C @ =gUnknown_3004FE0
ldr r0, _08038560 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08038564 @ =sub_80E8598
b _08038574
.align 2, 0
_0803855C: .4byte gUnknown_3004FE0
_08038560: .4byte gUnknown_2023BC4
_08038564: .4byte sub_80E8598
_08038568:
ldr r1, _0803857C @ =gUnknown_3004FE0
ldr r0, _08038580 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08038584 @ =sub_80361E4
_08038574:
str r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803857C: .4byte gUnknown_3004FE0
_08038580: .4byte gUnknown_2023BC4
_08038584: .4byte sub_80361E4
thumb_func_end sub_80384BC
thumb_func_start sub_8038588
sub_8038588: @ 8038588
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038588
thumb_func_start sub_8038594
sub_8038594: @ 8038594
push {lr}
bl sub_8039C84
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038594
thumb_func_start sub_80385A4
sub_80385A4: @ 80385A4
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_80385A4
thumb_func_start sub_80385B0
sub_80385B0: @ 80385B0
push {r4-r6,lr}
ldr r6, _080385E4 @ =gUnknown_2023BC4
ldrb r0, [r6]
lsls r0, 9
ldr r1, _080385E8 @ =gUnknown_2022BC8
adds r5, r0, r1
ldr r0, _080385EC @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x93
lsls r1, 3
ands r0, r1
cmp r0, 0
beq _08038680
bl sub_80C6DA0
bl sub_80C6F44
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x4
beq _080385F0
cmp r4, 0x5
bne _080385FC
movs r0, 0x1
movs r1, 0x4
b _080385F4
.align 2, 0
_080385E4: .4byte gUnknown_2023BC4
_080385E8: .4byte gUnknown_2022BC8
_080385EC: .4byte gUnknown_2022B4C
_080385F0:
movs r0, 0x1
movs r1, 0x3
_080385F4:
movs r2, 0
bl sub_800E848
b _08038668
_080385FC:
ldr r3, _08038670 @ =gUnknown_8250C04
lsls r0, r4, 1
adds r2, r5, r0
ldrh r1, [r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x6]
movs r0, 0x12
ands r0, r1
cmp r0, 0
beq _0803861C
ldr r1, _08038674 @ =gUnknown_2023D6C
ldrb r0, [r6]
strb r0, [r1]
_0803861C:
ldrh r1, [r2]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r3
ldrb r1, [r0, 0x6]
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _08038656
movs r0, 0
bl sub_80751E8
ldr r5, _08038674 @ =gUnknown_2023D6C
strb r0, [r5]
ldr r0, _08038678 @ =gUnknown_2023D70
ldrb r1, [r0]
ldr r2, _0803867C @ =gUnknown_825E45C
ldrb r0, [r5]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ands r1, r0
cmp r1, 0
beq _08038656
movs r0, 0x2
bl sub_80751E8
strb r0, [r5]
_08038656:
ldr r0, _08038674 @ =gUnknown_2023D6C
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
movs r0, 0x1
movs r1, 0xA
adds r2, r4, 0
bl sub_800E848
_08038668:
bl sub_8036530
b _08038712
.align 2, 0
_08038670: .4byte gUnknown_8250C04
_08038674: .4byte gUnknown_2023D6C
_08038678: .4byte gUnknown_2023D70
_0803867C: .4byte gUnknown_825E45C
_08038680:
movs r6, 0x3
_08038682:
bl sub_8044EC8
adds r4, r0, 0
ands r4, r6
lsls r0, r4, 1
adds r0, r5, r0
ldrh r2, [r0]
cmp r2, 0
beq _08038682
ldr r1, _080386BC @ =gUnknown_8250C04
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0, 0x6]
movs r0, 0x12
ands r0, r1
cmp r0, 0
beq _080386C4
ldr r0, _080386C0 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 8
orrs r4, r0
movs r0, 0x1
movs r1, 0xA
adds r2, r4, 0
bl sub_800E848
b _0803870E
.align 2, 0
_080386BC: .4byte gUnknown_8250C04
_080386C0: .4byte gUnknown_2023BC4
_080386C4:
ldr r0, _080386F4 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _080386F8
bl sub_8044EC8
movs r1, 0x2
ands r1, r0
lsls r1, 24
lsrs r1, 24
adds r0, r1, 0
bl sub_80751E8
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
bl sub_800E848
b _0803870E
.align 2, 0
_080386F4: .4byte gUnknown_2022B4C
_080386F8:
movs r0, 0
bl sub_80751E8
adds r2, r0, 0
lsls r2, 24
lsrs r2, 16
orrs r2, r4
movs r0, 0x1
movs r1, 0xA
bl sub_800E848
_0803870E:
bl sub_8036530
_08038712:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80385B0
thumb_func_start sub_8038718
sub_8038718: @ 8038718
push {lr}
ldr r0, _0803873C @ =gUnknown_2023BC4
ldrb r0, [r0]
lsrs r0, 1
ldr r1, _08038740 @ =gUnknown_2023FE8
ldr r1, [r1]
lsls r0, 1
adds r0, r1
adds r0, 0xC0
ldrb r1, [r0]
movs r0, 0x1
bl sub_800E8AC
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_0803873C: .4byte gUnknown_2023BC4
_08038740: .4byte gUnknown_2023FE8
thumb_func_end sub_8038718
thumb_func_start sub_8038744
sub_8038744: @ 8038744
push {r4-r6,lr}
ldr r6, _08038788 @ =gUnknown_2023BC4
ldrb r0, [r6]
bl sub_80751D8
lsls r0, 24
lsrs r0, 25
ldr r5, _0803878C @ =gUnknown_2023FE8
ldr r1, [r5]
adds r0, r1
adds r0, 0x92
ldrb r0, [r0]
cmp r0, 0x6
bne _080387E4
bl sub_8039E3C
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x6
bne _0803880A
ldr r0, _08038790 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _08038794
movs r0, 0x1
bl sub_80751E8
lsls r0, 24
lsrs r5, r0, 24
adds r6, r5, 0
b _080387A8
.align 2, 0
_08038788: .4byte gUnknown_2023BC4
_0803878C: .4byte gUnknown_2023FE8
_08038790: .4byte gUnknown_2022B4C
_08038794:
movs r0, 0x1
bl sub_80751E8
lsls r0, 24
lsrs r6, r0, 24
movs r0, 0x3
bl sub_80751E8
lsls r0, 24
lsrs r5, r0, 24
_080387A8:
movs r4, 0
b _080387AE
_080387AC:
adds r4, 0x1
_080387AE:
cmp r4, 0x5
bgt _0803880A
movs r0, 0x64
muls r0, r4
ldr r1, _080387DC @ =gUnknown_202402C
adds r0, r1
movs r1, 0x39
bl sub_803FBE8
cmp r0, 0
beq _080387AC
ldr r1, _080387E0 @ =gUnknown_2023BCE
lsls r0, r6, 1
adds r0, r1
ldrh r0, [r0]
cmp r4, r0
beq _080387AC
lsls r0, r5, 1
adds r0, r1
ldrh r0, [r0]
cmp r4, r0
beq _080387AC
b _0803880A
.align 2, 0
_080387DC: .4byte gUnknown_202402C
_080387E0: .4byte gUnknown_2023BCE
_080387E4:
ldrb r0, [r6]
bl sub_80751D8
lsls r0, 24
lsrs r0, 25
ldr r1, [r5]
adds r0, r1
adds r0, 0x92
ldrb r4, [r0]
ldrb r0, [r6]
bl sub_80751D8
lsls r0, 24
lsrs r0, 25
ldr r1, [r5]
adds r0, r1
adds r0, 0x92
movs r1, 0x6
strb r1, [r0]
_0803880A:
ldr r0, _08038830 @ =gUnknown_2023BC4
ldrb r0, [r0]
ldr r1, _08038834 @ =gUnknown_2023FE8
ldr r1, [r1]
adds r0, r1
adds r0, 0x5C
strb r4, [r0]
lsls r1, r4, 24
lsrs r1, 24
movs r0, 0x1
movs r2, 0
bl sub_800E874
bl sub_8036530
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08038830: .4byte gUnknown_2023BC4
_08038834: .4byte gUnknown_2023FE8
thumb_func_end sub_8038744
thumb_func_start sub_8038838
sub_8038838: @ 8038838
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038838
thumb_func_start sub_8038844
sub_8038844: @ 8038844
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
movs r0, 0
bl sub_8034964
ldr r3, _080388BC @ =gUnknown_2022BC4
ldr r0, _080388C0 @ =gUnknown_2023BC4
mov r9, r0
ldrb r4, [r0]
lsls r2, r4, 9
adds r0, r3, 0x3
adds r0, r2, r0
ldrb r1, [r0]
lsls r1, 8
adds r3, 0x2
adds r2, r3
ldrb r0, [r2]
orrs r0, r1
lsls r0, 16
asrs r7, r0, 16
ldr r0, _080388C4 @ =0x00007fff
cmp r7, r0
beq _080388D4
ldr r6, _080388C8 @ =gUnknown_2023BCE
lsls r0, r4, 1
adds r0, r6
ldrh r0, [r0]
movs r5, 0x64
muls r0, r5
ldr r4, _080388CC @ =gUnknown_202402C
adds r0, r4
movs r1, 0x3A
bl sub_803FBE8
mov r8, r0
mov r1, r9
ldrb r0, [r1]
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
muls r0, r5
adds r0, r4
movs r1, 0x39
bl sub_803FBE8
adds r3, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, _080388D0 @ =gUnknown_3004FF0
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
mov r2, r8
bl sub_8048150
b _080388FE
.align 2, 0
_080388BC: .4byte gUnknown_2022BC4
_080388C0: .4byte gUnknown_2023BC4
_080388C4: .4byte 0x00007fff
_080388C8: .4byte gUnknown_2023BCE
_080388CC: .4byte gUnknown_202402C
_080388D0: .4byte gUnknown_3004FF0
_080388D4:
ldr r1, _0803891C @ =gUnknown_2023BCE
lsls r0, r4, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08038920 @ =gUnknown_202402C
adds r0, r1
movs r1, 0x3A
bl sub_803FBE8
adds r2, r0, 0
mov r1, r9
ldrb r0, [r1]
ldr r1, _08038924 @ =gUnknown_3004FF0
adds r1, r0, r1
ldrb r1, [r1]
str r7, [sp]
movs r3, 0
bl sub_8048150
_080388FE:
ldr r1, _08038928 @ =gUnknown_3004FE0
ldr r0, _0803892C @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 2
adds r0, r1
ldr r1, _08038930 @ =sub_80360A0
str r1, [r0]
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0803891C: .4byte gUnknown_2023BCE
_08038920: .4byte gUnknown_202402C
_08038924: .4byte gUnknown_3004FF0
_08038928: .4byte gUnknown_3004FE0
_0803892C: .4byte gUnknown_2023BC4
_08038930: .4byte sub_80360A0
thumb_func_end sub_8038844
thumb_func_start sub_8038934
sub_8038934: @ 8038934
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038934
thumb_func_start sub_8038940
sub_8038940: @ 8038940
push {r4,lr}
ldr r4, _0803899C @ =gUnknown_2023BC4
ldrb r0, [r4]
bl sub_80342A4
lsls r0, 24
cmp r0, 0
bne _08038994
ldr r0, _080389A0 @ =gUnknown_3004FF0
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
ldr r2, _080389A4 @ =gUnknown_2023BCE
lsls r1, 1
adds r1, r2
ldrh r2, [r1]
movs r1, 0x64
muls r1, r2
ldr r2, _080389A8 @ =gUnknown_202402C
adds r1, r2
movs r2, 0x9
bl sub_8049D98
ldrb r2, [r4]
ldr r0, _080389AC @ =gUnknown_2024018
ldr r0, [r0]
ldr r0, [r0, 0x4]
lsls r1, r2, 1
adds r1, r2
lsls r1, 2
adds r1, r0
ldrb r2, [r1]
movs r0, 0x11
negs r0, r0
ands r0, r2
strb r0, [r1]
ldr r1, _080389B0 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _080389B4 @ =sub_80364D0
str r1, [r0]
_08038994:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0803899C: .4byte gUnknown_2023BC4
_080389A0: .4byte gUnknown_3004FF0
_080389A4: .4byte gUnknown_2023BCE
_080389A8: .4byte gUnknown_202402C
_080389AC: .4byte gUnknown_2024018
_080389B0: .4byte gUnknown_3004FE0
_080389B4: .4byte sub_80364D0
thumb_func_end sub_8038940
thumb_func_start sub_80389B8
sub_80389B8: @ 80389B8
push {r4,r5,lr}
ldr r5, _08038A10 @ =gUnknown_2023BC4
ldrb r0, [r5]
bl sub_80342A4
lsls r0, 24
cmp r0, 0
bne _08038A08
ldr r4, _08038A14 @ =gUnknown_2022BC4
ldrb r3, [r5]
lsls r3, 9
adds r0, r4, 0x1
adds r0, r3, r0
ldrb r0, [r0]
adds r1, r4, 0x2
adds r1, r3, r1
ldrb r1, [r1]
adds r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 8
orrs r1, r2
adds r2, r4, 0x4
adds r2, r3, r2
ldrb r2, [r2]
lsls r2, 16
orrs r1, r2
adds r4, 0x5
adds r3, r4
ldrb r2, [r3]
lsls r2, 24
orrs r1, r2
bl sub_8033F1C
ldr r1, _08038A18 @ =gUnknown_3004FE0
ldrb r0, [r5]
lsls r0, 2
adds r0, r1
ldr r1, _08038A1C @ =sub_80364D0
str r1, [r0]
_08038A08:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08038A10: .4byte gUnknown_2023BC4
_08038A14: .4byte gUnknown_2022BC4
_08038A18: .4byte gUnknown_3004FE0
_08038A1C: .4byte sub_80364D0
thumb_func_end sub_80389B8
thumb_func_start sub_8038A20
sub_8038A20: @ 8038A20
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A20
thumb_func_start sub_8038A2C
sub_8038A2C: @ 8038A2C
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A2C
thumb_func_start sub_8038A38
sub_8038A38: @ 8038A38
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A38
thumb_func_start sub_8038A44
sub_8038A44: @ 8038A44
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A44
thumb_func_start sub_8038A50
sub_8038A50: @ 8038A50
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A50
thumb_func_start sub_8038A5C
sub_8038A5C: @ 8038A5C
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A5C
thumb_func_start sub_8038A68
sub_8038A68: @ 8038A68
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A68
thumb_func_start sub_8038A74
sub_8038A74: @ 8038A74
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A74
thumb_func_start sub_8038A80
sub_8038A80: @ 8038A80
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038A80
thumb_func_start sub_8038A8C
sub_8038A8C: @ 8038A8C
push {lr}
ldr r2, _08038AA4 @ =gUnknown_2022870
ldrb r1, [r2]
movs r0, 0x80
negs r0, r0
ands r0, r1
strb r0, [r2]
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038AA4: .4byte gUnknown_2022870
thumb_func_end sub_8038A8C
thumb_func_start sub_8038AA8
sub_8038AA8: @ 8038AA8
push {lr}
ldr r3, _08038AD4 @ =gUnknown_2022870
ldr r1, _08038AD8 @ =gUnknown_2022BC4
ldr r0, _08038ADC @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
movs r1, 0x7F
ands r1, r0
ldrb r2, [r3]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038AD4: .4byte gUnknown_2022870
_08038AD8: .4byte gUnknown_2022BC4
_08038ADC: .4byte gUnknown_2023BC4
thumb_func_end sub_8038AA8
thumb_func_start sub_8038AE0
sub_8038AE0: @ 8038AE0
push {lr}
ldr r2, _08038AF4 @ =gUnknown_2022870
ldrb r1, [r2]
movs r0, 0x7F
ands r0, r1
strb r0, [r2]
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038AF4: .4byte gUnknown_2022870
thumb_func_end sub_8038AE0
thumb_func_start sub_8038AF8
sub_8038AF8: @ 8038AF8
push {lr}
ldr r3, _08038B1C @ =gUnknown_2022870
ldr r1, [r3]
lsls r1, 24
lsrs r1, 31
movs r0, 0x1
eors r1, r0
lsls r1, 7
ldrb r2, [r3]
movs r0, 0x7F
ands r0, r2
orrs r0, r1
strb r0, [r3]
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038B1C: .4byte gUnknown_2022870
thumb_func_end sub_8038AF8
thumb_func_start sub_8038B20
sub_8038B20: @ 8038B20
push {r4,lr}
ldr r3, _08038B48 @ =gUnknown_202063C
ldr r2, _08038B4C @ =gUnknown_2023D44
ldr r4, _08038B50 @ =gUnknown_2023BC4
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
adds r0, 0x3E
ldrb r0, [r0]
lsls r0, 29
cmp r0, 0
bge _08038B54
bl sub_8036530
b _08038B7E
.align 2, 0
_08038B48: .4byte gUnknown_202063C
_08038B4C: .4byte gUnknown_2023D44
_08038B50: .4byte gUnknown_2023BC4
_08038B54:
ldr r1, _08038B84 @ =gUnknown_2024005
movs r0, 0x1
strb r0, [r1]
ldrb r0, [r4]
adds r0, r2
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r3
movs r1, 0
strh r1, [r0, 0x30]
ldrb r0, [r4]
bl sub_804BE70
ldr r1, _08038B88 @ =gUnknown_3004FE0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r1, _08038B8C @ =sub_80361FC
str r1, [r0]
_08038B7E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038B84: .4byte gUnknown_2024005
_08038B88: .4byte gUnknown_3004FE0
_08038B8C: .4byte sub_80361FC
thumb_func_end sub_8038B20
thumb_func_start sub_8038B90
sub_8038B90: @ 8038B90
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8038B90
thumb_func_start sub_8038B9C
sub_8038B9C: @ 8038B9C
push {r4,lr}
ldr r4, _08038BD8 @ =gUnknown_2023BC4
ldrb r0, [r4]
bl sub_80751C4
lsls r0, 24
movs r3, 0x3F
cmp r0, 0
bne _08038BB0
movs r3, 0xC0
_08038BB0:
ldr r2, _08038BDC @ =gUnknown_2022BC4
ldrb r1, [r4]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
lsls r1, r3, 24
asrs r1, 24
bl sub_80722F4
bl sub_8036530
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038BD8: .4byte gUnknown_2023BC4
_08038BDC: .4byte gUnknown_2022BC4
thumb_func_end sub_8038B9C
thumb_func_start sub_8038BE0
sub_8038BE0: @ 8038BE0
push {lr}
ldr r2, _08038C08 @ =gUnknown_2022BC4
ldr r0, _08038C0C @ =gUnknown_2023BC4
ldrb r1, [r0]
lsls r1, 9
adds r0, r2, 0x1
adds r0, r1, r0
ldrb r0, [r0]
adds r2, 0x2
adds r1, r2
ldrb r1, [r1]
lsls r1, 8
orrs r0, r1
bl sub_8071C60
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038C08: .4byte gUnknown_2022BC4
_08038C0C: .4byte gUnknown_2023BC4
thumb_func_end sub_8038BE0
thumb_func_start sub_8038C10
sub_8038C10: @ 8038C10
push {lr}
ldr r1, _08038C40 @ =gUnknown_2023BCE
ldr r0, _08038C44 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 1
adds r0, r1
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
ldr r1, _08038C48 @ =gUnknown_202402C
adds r0, r1
movs r1, 0xB
bl sub_803FBE8
lsls r0, 16
lsrs r0, 16
movs r1, 0x19
movs r2, 0x5
bl sub_8071E60
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038C40: .4byte gUnknown_2023BCE
_08038C44: .4byte gUnknown_2023BC4
_08038C48: .4byte gUnknown_202402C
thumb_func_end sub_8038C10
thumb_func_start sub_8038C4C
sub_8038C4C: @ 8038C4C
push {lr}
ldr r1, _08038C74 @ =gUnknown_2022BC4
ldr r0, _08038C78 @ =gUnknown_2023BC4
ldrb r0, [r0]
lsls r0, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
bl sub_80BC3A0
ldr r2, _08038C7C @ =gUnknown_2023F4C
ldrh r0, [r2]
movs r1, 0x1
orrs r0, r1
strh r0, [r2]
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08038C74: .4byte gUnknown_2022BC4
_08038C78: .4byte gUnknown_2023BC4
_08038C7C: .4byte gUnknown_2023F4C
thumb_func_end sub_8038C4C
thumb_func_start sub_8038C80
sub_8038C80: @ 8038C80
push {r4-r6,lr}
ldr r5, _08038D60 @ =gUnknown_2023D44
ldr r6, _08038D64 @ =gUnknown_2023BC4
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r4, _08038D68 @ =gUnknown_202063C
adds r0, r4
bl sub_80750FC
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x23
strh r1, [r0, 0x2E]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
movs r1, 0x8C
lsls r1, 1
strh r1, [r0, 0x32]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldrh r1, [r0, 0x22]
strh r1, [r0, 0x36]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r1, r4, 0
adds r1, 0x1C
adds r0, r1
ldr r1, _08038D6C @ =sub_8075590
str r1, [r0]
ldrb r0, [r6]
adds r0, r5
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
ldr r1, _08038D70 @ =sub_8038D90
bl sub_8074A68
ldr r0, _08038D74 @ =sub_8038DC4
movs r1, 0x5
bl sub_807741C
lsls r0, 24
lsrs r0, 24
ldr r4, _08038D78 @ =gUnknown_3005090
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r4
ldrb r0, [r6]
strh r0, [r1, 0x8]
ldr r3, _08038D7C @ =gUnknown_2024018
ldr r0, [r3]
ldrb r2, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08038D42
ldr r0, _08038D80 @ =gUnknown_2024000
adds r0, r2, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r4
ldr r1, _08038D84 @ =sub_80491B0
str r1, [r0]
_08038D42:
ldr r0, [r3]
ldr r2, [r0, 0x8]
ldrb r0, [r2, 0x9]
movs r1, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
ldr r1, _08038D88 @ =gUnknown_3004FE0
ldrb r0, [r6]
lsls r0, 2
adds r0, r1
ldr r1, _08038D8C @ =nullsub_17
str r1, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08038D60: .4byte gUnknown_2023D44
_08038D64: .4byte gUnknown_2023BC4
_08038D68: .4byte gUnknown_202063C
_08038D6C: .4byte sub_8075590
_08038D70: .4byte sub_8038D90
_08038D74: .4byte sub_8038DC4
_08038D78: .4byte gUnknown_3005090
_08038D7C: .4byte gUnknown_2024018
_08038D80: .4byte gUnknown_2024000
_08038D84: .4byte sub_80491B0
_08038D88: .4byte gUnknown_3004FE0
_08038D8C: .4byte nullsub_17
thumb_func_end sub_8038C80
thumb_func_start sub_8038D90
sub_8038D90: @ 8038D90
push {r4,lr}
adds r4, r0, 0
ldrh r0, [r4, 0x6]
bl sub_803477C
ldrh r0, [r4, 0x38]
ldr r1, _08038DBC @ =0x000003ff
ands r1, r0
ldrh r2, [r4, 0x4]
ldr r0, _08038DC0 @ =0xfffffc00
ands r0, r2
orrs r0, r1
strh r0, [r4, 0x4]
adds r0, r4, 0
bl sub_80077D8
adds r0, r4, 0
bl sub_8007280
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038DBC: .4byte 0x000003ff
_08038DC0: .4byte 0xfffffc00
thumb_func_end sub_8038D90
thumb_func_start sub_8038DC4
sub_8038DC4: @ 8038DC4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
lsls r0, 24
lsrs r0, 24
mov r8, r0
ldr r7, _08038E1C @ =gUnknown_2023BC4
ldrb r0, [r7]
mov r9, r0
ldr r1, _08038E20 @ =gUnknown_3005090
mov r2, r8
lsls r0, r2, 2
add r0, r8
lsls r0, 3
adds r0, r1
ldrh r0, [r0, 0x8]
strb r0, [r7]
bl sub_8075290
lsls r0, 24
cmp r0, 0
beq _08038DFE
ldr r0, _08038E24 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x40
ands r0, r1
cmp r0, 0
beq _08038E30
_08038DFE:
ldr r0, _08038E28 @ =gUnknown_2022BC4
ldrb r1, [r7]
lsls r2, r1, 9
adds r0, 0x1
adds r2, r0
ldr r0, _08038E2C @ =gUnknown_2023BCE
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
strb r0, [r2]
ldrb r0, [r7]
movs r1, 0
bl sub_8037A28
b _08038E70
.align 2, 0
_08038E1C: .4byte gUnknown_2023BC4
_08038E20: .4byte gUnknown_3005090
_08038E24: .4byte gUnknown_2022B4C
_08038E28: .4byte gUnknown_2022BC4
_08038E2C: .4byte gUnknown_2023BCE
_08038E30:
ldr r4, _08038E94 @ =gUnknown_2022BC4
ldrb r0, [r7]
lsls r1, r0, 9
adds r4, 0x1
adds r1, r4
ldr r6, _08038E98 @ =gUnknown_2023BCE
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_8037A28
ldrb r0, [r7]
movs r5, 0x2
eors r0, r5
strb r0, [r7]
ldrb r0, [r7]
lsls r1, r0, 9
adds r1, r4
lsls r0, 1
adds r0, r6
ldrh r0, [r0]
strb r0, [r1]
ldrb r0, [r7]
movs r1, 0
bl sub_8037A28
ldrb r0, [r7]
eors r0, r5
strb r0, [r7]
_08038E70:
ldr r1, _08038E9C @ =gUnknown_3004FE0
ldr r2, _08038EA0 @ =gUnknown_2023BC4
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r1, _08038EA4 @ =sub_8035DF0
str r1, [r0]
mov r0, r9
strb r0, [r2]
mov r0, r8
bl sub_8077508
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08038E94: .4byte gUnknown_2022BC4
_08038E98: .4byte gUnknown_2023BCE
_08038E9C: .4byte gUnknown_3004FE0
_08038EA0: .4byte gUnknown_2023BC4
_08038EA4: .4byte sub_8035DF0
thumb_func_end sub_8038DC4
thumb_func_start sub_8038EA8
sub_8038EA8: @ 8038EA8
push {r4-r7,lr}
ldr r1, _08038ED0 @ =gUnknown_2022BC4
ldr r0, _08038ED4 @ =gUnknown_2023BC4
ldrb r2, [r0]
lsls r0, r2, 9
adds r1, 0x1
adds r0, r1
ldrb r0, [r0]
cmp r0, 0
beq _08038ED8
adds r0, r2, 0
bl sub_80751C4
lsls r0, 24
cmp r0, 0
bne _08038ED8
bl sub_8036530
b _08038FA2
.align 2, 0
_08038ED0: .4byte gUnknown_2022BC4
_08038ED4: .4byte gUnknown_2023BC4
_08038ED8:
ldr r4, _08038F30 @ =gUnknown_2024018
ldr r0, [r4]
ldr r3, _08038F34 @ =gUnknown_2023BC4
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0]
movs r2, 0x1
orrs r1, r2
strb r1, [r0]
ldr r1, _08038F38 @ =gUnknown_2022BC4
ldrb r2, [r3]
lsls r0, r2, 9
adds r1, 0x2
adds r0, r1
ldrb r0, [r0]
adds r7, r3, 0
cmp r0, 0
beq _08038F44
ldr r0, [r4]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r3, r0, r1
ldrb r2, [r3, 0x1]
lsls r1, r2, 26
lsrs r0, r1, 27
cmp r0, 0x1
bhi _08038F3C
adds r0, 0x1
movs r1, 0x1F
ands r0, r1
lsls r0, 1
movs r1, 0x3F
negs r1, r1
ands r1, r2
orrs r1, r0
strb r1, [r3, 0x1]
b _08038FA2
.align 2, 0
_08038F30: .4byte gUnknown_2024018
_08038F34: .4byte gUnknown_2023BC4
_08038F38: .4byte gUnknown_2022BC4
_08038F3C:
movs r0, 0x3F
negs r0, r0
ands r0, r2
strb r0, [r3, 0x1]
_08038F44:
adds r5, r7, 0
ldrb r0, [r5]
lsls r3, r0, 9
ldr r4, _08038FA8 @ =gUnknown_2022BC8
adds r1, r3, r4
subs r2, r4, 0x3
adds r2, r3, r2
ldrb r2, [r2]
subs r4, 0x2
adds r3, r4
ldrb r3, [r3]
bl sub_8048D14
ldr r2, _08038FAC @ =gUnknown_2024000
ldrb r1, [r5]
adds r1, r2
movs r3, 0
strb r0, [r1]
ldr r6, _08038FB0 @ =gUnknown_2024018
ldr r0, [r6]
ldrb r1, [r5]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
strb r3, [r0, 0x5]
ldrb r2, [r5]
lsls r0, r2, 9
adds r0, r4
ldrb r0, [r0]
cmp r0, 0
beq _08038F96
ldr r0, [r6]
ldr r1, [r0, 0x4]
lsls r0, r2, 1
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x5D
strb r1, [r0, 0x5]
_08038F96:
ldr r0, _08038FB4 @ =gUnknown_3004FE0
ldrb r1, [r7]
lsls r1, 2
adds r1, r0
ldr r0, _08038FB8 @ =sub_8038FBC
str r0, [r1]
_08038FA2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08038FA8: .4byte gUnknown_2022BC8
_08038FAC: .4byte gUnknown_2024000
_08038FB0: .4byte gUnknown_2024018
_08038FB4: .4byte gUnknown_3004FE0
_08038FB8: .4byte sub_8038FBC
thumb_func_end sub_8038EA8
thumb_func_start sub_8038FBC
sub_8038FBC: @ 8038FBC
push {r4,lr}
ldr r4, _08038FFC @ =gUnknown_2024018
ldr r0, [r4]
ldr r3, _08039000 @ =gUnknown_2023BC4
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
ldrb r1, [r0, 0x5]
adds r2, r1, 0x1
strb r2, [r0, 0x5]
lsls r1, 24
lsrs r1, 24
cmp r1, 0x5C
bls _08038FF4
ldr r0, [r4]
ldrb r1, [r3]
ldr r2, [r0, 0x4]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
movs r1, 0
strb r1, [r0, 0x5]
bl sub_8036530
_08038FF4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08038FFC: .4byte gUnknown_2024018
_08039000: .4byte gUnknown_2023BC4
thumb_func_end sub_8038FBC
thumb_func_start sub_8039004
sub_8039004: @ 8039004
push {lr}
ldr r0, _08039040 @ =gUnknown_2024018
ldr r1, [r0]
ldr r0, _08039044 @ =gUnknown_2023BC4
ldrb r3, [r0]
ldr r1, [r1, 0x4]
lsls r0, r3, 1
adds r0, r3
lsls r0, 2
adds r0, r1
ldrb r1, [r0]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _08039036
ldr r2, _08039048 @ =gUnknown_3005090
ldr r0, _0803904C @ =gUnknown_2024000
adds r0, r3, r0
ldrb r1, [r0]
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r2
ldr r1, _08039050 @ =sub_80491B0
str r1, [r0]
_08039036:
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08039040: .4byte gUnknown_2024018
_08039044: .4byte gUnknown_2023BC4
_08039048: .4byte gUnknown_3005090
_0803904C: .4byte gUnknown_2024000
_08039050: .4byte sub_80491B0
thumb_func_end sub_8039004
thumb_func_start sub_8039054
sub_8039054: @ 8039054
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8039054
thumb_func_start sub_8039060
sub_8039060: @ 8039060
push {r4,lr}
ldr r4, _080390B0 @ =gUnknown_2023BC4
ldrb r0, [r4]
bl sub_8075224
lsls r0, 24
cmp r0, 0
beq _080390A6
ldr r3, _080390B4 @ =gUnknown_202063C
ldr r0, _080390B8 @ =gUnknown_2023D44
ldrb r1, [r4]
adds r0, r1, r0
ldrb r0, [r0]
lsls r2, r0, 4
adds r2, r0
lsls r2, 2
adds r2, r3
ldr r0, _080390BC @ =gUnknown_2022BC4
lsls r1, 9
adds r0, 0x1
adds r1, r0
adds r2, 0x3E
movs r0, 0x1
ldrb r1, [r1]
ands r1, r0
lsls r1, 2
ldrb r3, [r2]
movs r0, 0x5
negs r0, r0
ands r0, r3
orrs r0, r1
strb r0, [r2]
ldrb r0, [r4]
bl sub_8034BB4
_080390A6:
bl sub_8036530
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080390B0: .4byte gUnknown_2023BC4
_080390B4: .4byte gUnknown_202063C
_080390B8: .4byte gUnknown_2023D44
_080390BC: .4byte gUnknown_2022BC4
thumb_func_end sub_8039060
thumb_func_start sub_80390C0
sub_80390C0: @ 80390C0
push {r4-r6,lr}
sub sp, 0x4
ldr r6, _08039104 @ =gUnknown_2023BC4
ldrb r0, [r6]
bl sub_80342A4
lsls r0, 24
cmp r0, 0
bne _08039118
ldr r5, _08039108 @ =gUnknown_2022BC4
ldrb r2, [r6]
lsls r1, r2, 9
adds r0, r5, 0x1
adds r0, r1, r0
ldrb r3, [r0]
adds r0, r5, 0x2
adds r0, r1, r0
ldrb r4, [r0]
adds r5, 0x3
adds r1, r5
ldrb r0, [r1]
lsls r0, 8
orrs r4, r0
str r4, [sp]
adds r0, r2, 0
adds r1, r2, 0
bl sub_803401C
lsls r0, 24
cmp r0, 0
beq _0803910C
bl sub_8036530
b _08039118
.align 2, 0
_08039104: .4byte gUnknown_2023BC4
_08039108: .4byte gUnknown_2022BC4
_0803910C:
ldr r0, _08039120 @ =gUnknown_3004FE0
ldrb r1, [r6]
lsls r1, 2
adds r1, r0
ldr r0, _08039124 @ =sub_8036500
str r0, [r1]
_08039118:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08039120: .4byte gUnknown_3004FE0
_08039124: .4byte sub_8036500
thumb_func_end sub_80390C0
thumb_func_start sub_8039128
sub_8039128: @ 8039128
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8039128
thumb_func_start sub_8039134
sub_8039134: @ 8039134
push {lr}
bl sub_8036530
pop {r0}
bx r0
thumb_func_end sub_8039134
thumb_func_start sub_8039140
sub_8039140: @ 8039140
push {lr}
ldr r0, _08039174 @ =gUnknown_2022B4C
ldr r0, [r0]
movs r1, 0x6
ands r0, r1
cmp r0, 0x2
bne _0803916A
ldr r2, _08039178 @ =gUnknown_30030F0
ldr r0, _0803917C @ =0x00000439
adds r3, r2, r0
ldrb r1, [r3]
movs r0, 0x3
negs r0, r0
ands r0, r1
strb r0, [r3]
ldr r0, _08039180 @ =gUnknown_3004F80
ldr r0, [r0]
str r0, [r2]
ldr r0, [r2, 0x8]
bl sub_8000544
_0803916A:
bl sub_8036530
pop {r0}
bx r0
.align 2, 0
_08039174: .4byte gUnknown_2022B4C
_08039178: .4byte gUnknown_30030F0
_0803917C: .4byte 0x00000439
_08039180: .4byte gUnknown_3004F80
thumb_func_end sub_8039140
thumb_func_start nullsub_18
nullsub_18: @ 8039184
bx lr
thumb_func_end nullsub_18
.align 2, 0 @ Don't pad with nop.