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

2020 lines
31 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start nullsub_90
nullsub_90: @ 8106ECC
bx lr
thumb_func_end nullsub_90
thumb_func_start sub_8106ED0
sub_8106ED0: @ 8106ED0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r12, r0
str r1, [sp]
ldr r0, [sp, 0x28]
lsls r2, 24
lsrs r6, r2, 24
mov r10, r6
lsls r3, 16
lsrs r7, r3, 16
str r7, [sp, 0x4]
lsls r0, 16
mov r8, r0
lsrs r0, 16
mov r9, r0
ldr r5, _08106F60 @ =gUnknown_203ACF4
ldrb r4, [r5, 0x4]
cmp r4, 0x1
beq _08106F68
cmp r4, 0x1
ble _08106F06
cmp r4, 0x2
beq _08106FCC
_08106F06:
mov r0, r12
bl sub_8003CE4
strb r0, [r5, 0x5]
cmp r6, 0x1
beq _08106F24
cmp r6, 0x2
bne _08106F34
ldrb r0, [r5, 0x5]
mov r1, r9
lsls r2, r1, 24
lsrs r2, 24
adds r1, r7, 0
bl sub_815001C
_08106F24:
ldrb r0, [r5, 0x5]
mov r3, r8
lsrs r2, r3, 20
lsls r2, 24
lsrs r2, 24
ldr r1, [sp, 0x4]
bl sub_8150048
_08106F34:
ldr r0, _08106F64 @ =gUnknown_3005E70
adds r2, r0, 0
ldr r1, [sp]
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldm r1!, {r3-r5}
stm r2!, {r3-r5}
ldr r4, _08106F60 @ =gUnknown_203ACF4
ldrb r1, [r4, 0x5]
strb r1, [r0, 0x10]
movs r1, 0
movs r2, 0
bl sub_8106FF8
strb r0, [r4, 0x6]
ldrb r0, [r4, 0x5]
movs r1, 0x1
bl sub_8003F20
movs r0, 0x1
strb r0, [r4, 0x4]
b _08106FE4
.align 2, 0
_08106F60: .4byte gUnknown_203ACF4
_08106F64: .4byte gUnknown_3005E70
_08106F68:
ldrb r0, [r5, 0x6]
bl sub_8107078
str r0, [r5]
ldr r1, _08106FA4 @ =gUnknown_30030F0
ldrh r0, [r1, 0x2E]
ands r4, r0
cmp r4, 0
beq _08106F7E
movs r0, 0x2
strb r0, [r5, 0x4]
_08106F7E:
ldrh r1, [r1, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _08106F92
movs r0, 0x2
negs r0, r0
str r0, [r5]
movs r0, 0x2
strb r0, [r5, 0x4]
_08106F92:
ldrb r0, [r5, 0x4]
cmp r0, 0x2
bne _08106FE4
cmp r6, 0
bne _08106FA8
ldrb r0, [r5, 0x5]
bl sub_80040B8
b _08106FBA
.align 2, 0
_08106FA4: .4byte gUnknown_30030F0
_08106FA8:
mov r4, r10
cmp r4, 0
blt _08106FBA
cmp r4, 0x2
bgt _08106FBA
ldrb r0, [r5, 0x5]
movs r1, 0
bl sub_80F6F9C
_08106FBA:
ldr r0, _08106FC8 @ =gUnknown_203ACF4
ldrb r0, [r0, 0x5]
movs r1, 0x1
bl sub_8003F20
b _08106FE4
.align 2, 0
_08106FC8: .4byte gUnknown_203ACF4
_08106FCC:
ldrb r0, [r5, 0x6]
movs r1, 0
movs r2, 0
bl sub_810713C
ldrb r0, [r5, 0x5]
bl sub_8003E3C
movs r0, 0
strb r0, [r5, 0x4]
ldr r0, [r5]
b _08106FE8
_08106FE4:
movs r0, 0x1
negs r0, r0
_08106FE8:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8106ED0
thumb_func_start sub_8106FF8
sub_8106FF8: @ 8106FF8
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
bl sub_8107348
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r5, 0x10]
bl sub_8003FA0
ldrb r0, [r5, 0x10]
movs r1, 0x2
bl sub_8003F20
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8106FF8
thumb_func_start sub_8107024
sub_8107024: @ 8107024
push {r4-r7,lr}
sub sp, 0x8
adds r6, r0, 0
adds r4, r1, 0
adds r1, r2, 0
adds r2, r3, 0
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
bl sub_8107348
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r4, 0x4]
cmp r0, 0xFF
beq _08107064
adds r5, r4, 0
_08107048:
ldrb r0, [r6, 0x10]
ldrb r1, [r5]
ldrb r2, [r5, 0x1]
ldrb r3, [r5, 0x2]
ldrb r4, [r5, 0x3]
str r4, [sp]
ldrb r4, [r5, 0x4]
str r4, [sp, 0x4]
bl sub_8004000
adds r5, 0x8
ldrb r0, [r5, 0x4]
cmp r0, 0xFF
bne _08107048
_08107064:
ldrb r0, [r6, 0x10]
movs r1, 0x2
bl sub_8003F20
adds r0, r7, 0
add sp, 0x8
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8107024
thumb_func_start sub_8107078
sub_8107078: @ 8107078
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _081070A4 @ =gUnknown_3005098
adds r3, r1, r0
ldr r2, _081070A8 @ =gUnknown_30030F0
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _081070AC
ldrh r0, [r3, 0x18]
ldrh r1, [r3, 0x1A]
adds r0, r1
ldr r1, [r3]
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
b _08107136
.align 2, 0
_081070A4: .4byte gUnknown_3005098
_081070A8: .4byte gUnknown_30030F0
_081070AC:
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _081070BA
movs r0, 0x2
negs r0, r0
b _08107136
_081070BA:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _081070CE
adds r0, r3, 0
movs r1, 0x1
movs r2, 0x1
movs r3, 0
b _0810712E
_081070CE:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _081070DE
adds r0, r3, 0
movs r1, 0x1
movs r2, 0x1
b _0810712C
_081070DE:
ldrb r0, [r3, 0x16]
lsrs r0, 6
cmp r0, 0x1
beq _081070F4
cmp r0, 0x1
ble _081070EE
cmp r0, 0x2
beq _08107100
_081070EE:
movs r2, 0
movs r0, 0
b _08107114
_081070F4:
movs r0, 0x20
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
movs r0, 0x10
b _0810710E
_08107100:
movs r0, 0x80
lsls r0, 2
ands r0, r1
lsls r0, 16
lsrs r2, r0, 16
movs r0, 0x80
lsls r0, 1
_0810710E:
ands r0, r1
lsls r0, 16
lsrs r0, 16
_08107114:
cmp r2, 0
beq _08107122
ldrb r2, [r3, 0xE]
adds r0, r3, 0
movs r1, 0x1
movs r3, 0
b _0810712E
_08107122:
cmp r0, 0
beq _08107132
ldrb r2, [r3, 0xE]
adds r0, r3, 0
movs r1, 0x1
_0810712C:
movs r3, 0x1
_0810712E:
bl sub_810799C
_08107132:
movs r0, 0x1
negs r0, r0
_08107136:
pop {r1}
bx r1
thumb_func_end sub_8107078
thumb_func_start sub_810713C
sub_810713C: @ 810713C
push {r4,lr}
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
adds r4, r0, 0
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _0810717C @ =gUnknown_3005098
adds r1, r0, r1
cmp r3, 0
beq _08107158
ldrh r0, [r1, 0x18]
strh r0, [r3]
_08107158:
cmp r2, 0
beq _08107160
ldrh r0, [r1, 0x1A]
strh r0, [r2]
_08107160:
ldrb r0, [r1, 0x1E]
cmp r0, 0xFF
beq _08107170
ldrb r1, [r1, 0x17]
lsrs r1, 6
subs r1, 0x2
bl sub_8133CD4
_08107170:
adds r0, r4, 0
bl sub_8077508
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0810717C: .4byte gUnknown_3005098
thumb_func_end sub_810713C
thumb_func_start sub_8107180
sub_8107180: @ 8107180
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _081071C0 @ =gUnknown_3005098
adds r4, r0
ldrb r0, [r4, 0x10]
ldrb r2, [r4, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
bl sub_800445C
ldrh r1, [r4, 0x18]
ldrh r3, [r4, 0xE]
adds r0, r4, 0
movs r2, 0
bl sub_81074DC
adds r0, r4, 0
bl sub_8107594
ldrb r0, [r4, 0x10]
movs r1, 0x2
bl sub_8003F20
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081071C0: .4byte gUnknown_3005098
thumb_func_end sub_8107180
thumb_func_start sub_81071C4
sub_81071C4: @ 81071C4
push {r4-r6,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _08107204 @ =gUnknown_3005098
adds r4, r0
lsrs r1, 20
ldrb r6, [r4, 0x14]
movs r5, 0xF
adds r0, r5, 0
ands r0, r6
orrs r0, r1
strb r0, [r4, 0x14]
ands r2, r5
ldrb r1, [r4, 0x15]
movs r0, 0x10
negs r0, r0
ands r0, r1
orrs r0, r2
lsrs r3, 20
ands r0, r5
orrs r0, r3
strb r0, [r4, 0x15]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08107204: .4byte gUnknown_3005098
thumb_func_end sub_81071C4
thumb_func_start sub_8107208
sub_8107208: @ 8107208
push {r4,r5,lr}
adds r3, r1, 0
adds r5, r2, 0
lsls r0, 24
lsrs r0, 24
lsls r3, 24
lsrs r3, 24
lsls r5, 24
lsrs r5, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _08107240 @ =gUnknown_3005098
adds r4, r0
ldrb r0, [r4, 0x10]
movs r1, 0x1
adds r2, r3, 0
bl sub_80048BC
ldrb r0, [r4, 0x10]
movs r1, 0x2
adds r2, r5, 0
bl sub_80048BC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08107240: .4byte gUnknown_3005098
thumb_func_end sub_8107208
thumb_func_start sub_8107244
sub_8107244: @ 8107244
push {r4-r7,lr}
sub sp, 0x20
mov r12, r2
ldr r5, [sp, 0x34]
lsls r3, 16
lsrs r3, 16
adds r4, r3, 0
mov r3, sp
ldm r0!, {r2,r6,r7}
stm r3!, {r2,r6,r7}
ldm r0!, {r2,r6,r7}
stm r3!, {r2,r6,r7}
mov r0, sp
movs r3, 0
strh r1, [r0, 0x18]
mov r1, r12
strh r1, [r0, 0x1A]
strb r3, [r0, 0x1C]
strb r3, [r0, 0x1D]
cmp r4, 0x40
bne _08107278
movs r1, 0
movs r2, 0x1
movs r3, 0
bl sub_810799C
_08107278:
cmp r4, 0x80
bne _08107288
mov r0, sp
movs r1, 0
movs r2, 0x1
movs r3, 0x1
bl sub_810799C
_08107288:
cmp r5, 0
beq _08107292
mov r0, sp
ldrh r0, [r0, 0x18]
strh r0, [r5]
_08107292:
ldr r2, [sp, 0x38]
cmp r2, 0
beq _0810729E
mov r0, sp
ldrh r0, [r0, 0x1A]
strh r0, [r2]
_0810729E:
movs r0, 0x1
negs r0, r0
add sp, 0x20
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_8107244
thumb_func_start sub_81072AC
sub_81072AC: @ 81072AC
push {lr}
adds r2, r1, 0
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _081072D0 @ =gUnknown_3005098
adds r1, r0
cmp r2, 0
beq _081072CA
ldrh r0, [r1, 0x1A]
ldrh r1, [r1, 0x18]
adds r0, r1
strh r0, [r2]
_081072CA:
pop {r0}
bx r0
.align 2, 0
_081072D0: .4byte gUnknown_3005098
thumb_func_end sub_81072AC
thumb_func_start sub_81072D4
sub_81072D4: @ 81072D4
push {lr}
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _081072FC @ =gUnknown_3005098
adds r1, r0
cmp r3, 0
beq _081072EE
ldrh r0, [r1, 0x18]
strh r0, [r3]
_081072EE:
cmp r2, 0
beq _081072F6
ldrh r0, [r1, 0x1A]
strh r0, [r2]
_081072F6:
pop {r0}
bx r0
.align 2, 0
_081072FC: .4byte gUnknown_3005098
thumb_func_end sub_81072D4
thumb_func_start sub_8107300
sub_8107300: @ 8107300
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _08107344 @ =gUnknown_3005098
adds r4, r0
ldrb r0, [r4, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
ldrb r1, [r4, 0x16]
lsls r1, 26
lsrs r1, 29
adds r0, r1
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x1A]
adds r2, r1, 0
muls r2, r0
adds r1, r2, 0
ldrb r0, [r4, 0x14]
lsls r0, 28
lsrs r0, 28
adds r0, r1
lsls r0, 16
lsrs r0, 16
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08107344: .4byte gUnknown_3005098
thumb_func_end sub_8107300
thumb_func_start sub_8107348
sub_8107348: @ 8107348
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r4, r0, 0
adds r5, r1, 0
adds r6, r2, 0
lsls r5, 16
lsrs r5, 16
lsls r6, 16
lsrs r6, 16
ldr r0, _08107418 @ =nullsub_90
movs r1, 0
bl sub_807741C
lsls r0, 24
lsrs r0, 24
mov r8, r0
lsls r0, 2
add r0, r8
lsls r0, 3
ldr r1, _0810741C @ =gUnknown_3005098
adds r7, r0, r1
adds r0, r7, 0
ldm r4!, {r1-r3}
stm r0!, {r1-r3}
ldm r4!, {r1-r3}
stm r0!, {r1-r3}
movs r1, 0
strh r5, [r7, 0x18]
strh r6, [r7, 0x1A]
strb r1, [r7, 0x1C]
strb r1, [r7, 0x1D]
movs r0, 0xFF
strb r0, [r7, 0x1E]
strb r1, [r7, 0x1F]
ldr r3, _08107420 @ =gUnknown_3005E60
ldrb r1, [r7, 0x14]
movs r5, 0xF
lsrs r1, 4
ldrb r4, [r3]
movs r2, 0x10
negs r2, r2
adds r0, r2, 0
ands r0, r4
orrs r0, r1
strb r0, [r3]
ldrb r1, [r7, 0x15]
lsls r1, 28
lsrs r1, 24
ands r0, r5
orrs r0, r1
strb r0, [r3]
ldrb r0, [r7, 0x15]
lsrs r0, 4
ands r5, r0
ldrb r0, [r3, 0x1]
ands r2, r0
orrs r2, r5
strb r2, [r3, 0x1]
ldrb r1, [r7, 0x16]
lsls r1, 29
lsrs r1, 17
ldr r0, [r3]
ldr r2, _08107424 @ =0xfffc0fff
ands r0, r2
orrs r0, r1
str r0, [r3]
ldrb r0, [r7, 0x17]
lsls r0, 26
lsrs r0, 26
strb r0, [r3, 0x3]
ldrh r0, [r7, 0xC]
ldrh r1, [r7, 0xE]
cmp r0, r1
bcs _081073E0
strh r0, [r7, 0xE]
_081073E0:
ldrb r0, [r7, 0x10]
ldrb r2, [r7, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
bl sub_800445C
ldrh r1, [r7, 0x18]
ldrh r3, [r7, 0xE]
adds r0, r7, 0
movs r2, 0
bl sub_81074DC
adds r0, r7, 0
bl sub_8107594
adds r0, r7, 0
movs r1, 0x1
bl sub_8107A74
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08107418: .4byte nullsub_90
_0810741C: .4byte gUnknown_3005098
_08107420: .4byte gUnknown_3005E60
_08107424: .4byte 0xfffc0fff
thumb_func_end sub_8107348
thumb_func_start sub_8107428
sub_8107428: @ 8107428
push {r4-r7,lr}
sub sp, 0x18
adds r4, r0, 0
adds r6, r1, 0
lsls r2, 24
lsrs r7, r2, 24
lsls r3, 24
lsrs r3, 24
mov r12, r3
ldr r5, _08107490 @ =gUnknown_3005E60
ldrb r1, [r5, 0x3]
movs r0, 0x80
ands r0, r1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0
beq _08107494
add r1, sp, 0x14
ldr r2, [r5]
lsls r0, r2, 24
lsrs r0, 28
movs r3, 0
strb r0, [r1]
lsls r0, r2, 28
lsrs r0, 28
strb r0, [r1, 0x1]
lsls r0, r2, 20
lsrs r0, 28
strb r0, [r1, 0x2]
ldrb r0, [r4, 0x10]
lsls r1, r2, 1
lsrs r1, 25
lsls r2, 14
lsrs r2, 26
str r2, [sp]
str r3, [sp, 0x4]
add r2, sp, 0x14
str r2, [sp, 0x8]
movs r2, 0x1
negs r2, r2
str r2, [sp, 0xC]
str r6, [sp, 0x10]
adds r2, r7, 0
mov r3, r12
bl sub_812E5A4
ldrb r1, [r5, 0x3]
movs r0, 0x7F
ands r0, r1
strb r0, [r5, 0x3]
b _081074D2
.align 2, 0
_08107490: .4byte gUnknown_3005E60
_08107494:
add r2, sp, 0x14
ldrb r1, [r4, 0x15]
lsls r0, r1, 28
lsrs r0, 28
strb r0, [r2]
ldrb r0, [r4, 0x14]
lsrs r0, 4
strb r0, [r2, 0x1]
adds r0, r2, 0
lsls r1, 24
lsrs r1, 28
strb r1, [r0, 0x2]
ldrb r0, [r4, 0x10]
ldrb r1, [r4, 0x17]
lsls r1, 26
lsrs r1, 26
ldrb r2, [r4, 0x16]
lsls r2, 29
lsrs r2, 29
str r2, [sp]
str r3, [sp, 0x4]
add r2, sp, 0x14
str r2, [sp, 0x8]
movs r2, 0x1
negs r2, r2
str r2, [sp, 0xC]
str r6, [sp, 0x10]
adds r2, r7, 0
mov r3, r12
bl sub_812E5A4
_081074D2:
add sp, 0x18
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8107428
thumb_func_start sub_81074DC
sub_81074DC: @ 81074DC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
adds r4, r0, 0
lsls r1, 16
lsrs r1, 16
mov r9, r1
lsls r2, 16
lsrs r2, 16
str r2, [sp]
lsls r3, 16
lsrs r3, 16
mov r10, r3
ldrb r0, [r4, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
ldrb r1, [r4, 0x16]
lsls r1, 26
lsrs r1, 29
adds r0, r1
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x4]
movs r0, 0
mov r8, r0
cmp r8, r10
bge _08107584
_0810751E:
ldr r0, [r4]
mov r2, r9
lsls r1, r2, 3
adds r0, r1, r0
ldr r2, [r0, 0x4]
movs r0, 0x3
negs r0, r0
adds r5, r1, 0
cmp r2, r0
beq _08107536
ldrb r6, [r4, 0x12]
b _08107538
_08107536:
ldrb r6, [r4, 0x11]
_08107538:
ldr r0, [sp]
add r0, r8
ldr r2, [sp, 0x4]
adds r1, r0, 0
muls r1, r2
ldrb r0, [r4, 0x14]
lsls r0, 28
lsrs r0, 28
adds r0, r1
lsls r0, 24
lsrs r2, r0, 24
adds r7, r2, 0
ldr r3, [r4, 0x8]
cmp r3, 0
beq _08107562
ldrb r0, [r4, 0x10]
ldr r1, [r4]
adds r1, r5, r1
ldr r1, [r1, 0x4]
bl _call_via_r3
_08107562:
ldr r0, [r4]
adds r0, r5, r0
ldr r1, [r0]
adds r0, r4, 0
adds r2, r6, 0
adds r3, r7, 0
bl sub_8107428
mov r0, r9
adds r0, 0x1
lsls r0, 16
lsrs r0, 16
mov r9, r0
movs r0, 0x1
add r8, r0
cmp r8, r10
blt _0810751E
_08107584:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81074DC
thumb_func_start sub_8107594
sub_8107594: @ 8107594
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r0, 0
ldrb r0, [r6, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
ldrb r1, [r6, 0x16]
lsls r1, 26
lsrs r1, 29
adds r0, r1
lsls r0, 24
lsrs r0, 24
ldrb r1, [r6, 0x13]
mov r8, r1
ldrh r1, [r6, 0x1A]
muls r1, r0
ldrb r0, [r6, 0x14]
lsls r0, 28
lsrs r0, 28
adds r0, r1
lsls r0, 24
lsrs r7, r0, 24
ldrb r0, [r6, 0x17]
lsrs r0, 6
cmp r0, 0x1
beq _08107680
cmp r0, 0x1
bgt _081075DA
cmp r0, 0
beq _081075E4
b _08107680
_081075DA:
cmp r0, 0x2
beq _081075F8
cmp r0, 0x3
beq _08107640
b _08107680
_081075E4:
ldr r1, _081075F4 @ =gUnknown_841623B
adds r0, r6, 0
mov r2, r8
adds r3, r7, 0
bl sub_8107428
b _08107680
.align 2, 0
_081075F4: .4byte gUnknown_841623B
_081075F8:
ldrb r0, [r6, 0x1E]
cmp r0, 0xFF
bne _08107608
adds r0, r6, 0
movs r1, 0
bl sub_810768C
strb r0, [r6, 0x1E]
_08107608:
ldrb r5, [r6, 0x1E]
ldrb r0, [r6, 0x10]
movs r1, 0x1
bl sub_8004950
adds r4, r0, 0
lsls r4, 19
ldr r0, _0810763C @ =0xffff0000
adds r4, r0
lsrs r4, 16
ldrb r0, [r6, 0x10]
movs r1, 0x2
bl sub_8004950
adds r2, r0, 0
lsls r2, 3
adds r2, r7
subs r2, 0x1
lsls r2, 16
lsrs r2, 16
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0
bl sub_8133CAC
b _08107680
.align 2, 0
_0810763C: .4byte 0xffff0000
_08107640:
ldrb r0, [r6, 0x1E]
cmp r0, 0xFF
bne _08107650
adds r0, r6, 0
movs r1, 0x1
bl sub_810768C
strb r0, [r6, 0x1E]
_08107650:
ldrb r5, [r6, 0x1E]
ldrb r0, [r6, 0x10]
movs r1, 0x1
bl sub_8004950
adds r4, r0, 0
lsls r4, 3
add r4, r8
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6, 0x10]
movs r1, 0x2
bl sub_8004950
adds r2, r0, 0
lsls r2, 3
adds r2, r7
lsls r2, 16
lsrs r2, 16
adds r0, r5, 0
adds r1, r4, 0
movs r3, 0x1
bl sub_8133CAC
_08107680:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8107594
thumb_func_start sub_810768C
sub_810768C: @ 810768C
push {r4,r5,lr}
sub sp, 0xC
adds r4, r0, 0
adds r5, r1, 0
mov r1, sp
movs r0, 0
strb r0, [r1]
movs r0, 0xA0
strb r0, [r1, 0x1]
ldrb r0, [r4, 0x10]
movs r1, 0x3
bl sub_8004950
mov r1, sp
lsls r0, 3
adds r0, 0x2
strh r0, [r1, 0x2]
ldrb r0, [r4, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
mov r1, sp
lsls r0, 24
lsrs r0, 24
adds r0, 0x2
strh r0, [r1, 0x4]
movs r0, 0x80
lsls r0, 7
strh r0, [r1, 0x6]
ldr r0, _081076E8 @ =0x0000ffff
strh r0, [r1, 0x8]
movs r0, 0xF
strb r0, [r1, 0xA]
mov r0, sp
adds r1, r5, 0
bl sub_8133C90
lsls r0, 24
lsrs r0, 24
add sp, 0xC
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_081076E8: .4byte 0x0000ffff
thumb_func_end sub_810768C
thumb_func_start sub_81076EC
sub_81076EC: @ 81076EC
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r7, r0, 0
lsls r1, 16
lsrs r1, 16
mov r8, r1
ldrb r1, [r7, 0x17]
lsrs r0, r1, 6
cmp r0, 0
bne _08107768
lsls r0, r1, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
adds r4, r0, 0
ldrb r0, [r7, 0x16]
lsls r0, 26
lsrs r0, 29
adds r4, r0
lsls r4, 24
lsrs r4, 24
ldrb r0, [r7, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0
bl sub_80F7AC0
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldrb r0, [r7, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F7AC0
lsls r0, 24
lsrs r0, 24
ldrb r6, [r7, 0x10]
ldrb r2, [r7, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
ldrb r2, [r7, 0x13]
mov r3, r8
muls r3, r4
adds r4, r3, 0
ldrb r3, [r7, 0x14]
lsls r3, 28
lsrs r3, 28
adds r3, r4
lsls r3, 16
lsrs r3, 16
str r5, [sp]
str r0, [sp, 0x4]
adds r0, r6, 0
bl sub_8004378
_08107768:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_81076EC
thumb_func_start sub_8107774
sub_8107774: @ 8107774
push {r4-r6,lr}
adds r4, r0, 0
lsls r1, 24
ldrh r3, [r4, 0x1A]
ldrh r5, [r4, 0x18]
cmp r1, 0
bne _081077E8
ldrh r0, [r4, 0xE]
cmp r0, 0x1
bne _0810778C
movs r2, 0
b _0810779E
_0810778C:
ldrh r0, [r4, 0xE]
lsrs r2, r0, 1
movs r1, 0x1
ands r1, r0
adds r2, r1
subs r0, r2
subs r0, 0x1
lsls r0, 16
lsrs r2, r0, 16
_0810779E:
cmp r5, 0
bne _081077C4
cmp r3, 0
beq _0810782A
ldr r1, [r4]
movs r2, 0x3
negs r2, r2
_081077AC:
subs r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
adds r0, r5, r3
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
cmp r0, r2
bne _0810782E
cmp r3, 0
bne _081077AC
b _0810782A
_081077C4:
cmp r3, r2
bls _081077E4
ldr r1, [r4]
movs r6, 0x3
negs r6, r6
_081077CE:
subs r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
adds r0, r5, r3
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
cmp r0, r6
bne _0810782E
cmp r3, r2
bhi _081077CE
_081077E4:
subs r0, r5, 0x1
b _08107856
_081077E8:
ldrh r0, [r4, 0xE]
cmp r0, 0x1
bne _081077F2
movs r2, 0
b _081077FC
_081077F2:
ldrh r0, [r4, 0xE]
lsrs r2, r0, 1
movs r1, 0x1
ands r1, r0
adds r2, r1
_081077FC:
adds r1, r0, 0
ldrh r0, [r4, 0xC]
subs r0, r1
cmp r5, r0
bne _08107834
subs r0, r1, 0x1
cmp r3, r0
bge _0810782A
ldr r2, [r4]
movs r6, 0x3
negs r6, r6
adds r1, r0, 0
_08107814:
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
adds r0, r5, r3
lsls r0, 3
adds r0, r2
ldr r0, [r0, 0x4]
cmp r0, r6
bne _0810782E
cmp r3, r1
blt _08107814
_0810782A:
movs r0, 0
b _0810785C
_0810782E:
strh r3, [r4, 0x1A]
movs r0, 0x1
b _0810785C
_08107834:
cmp r3, r2
bcs _08107854
ldr r1, [r4]
movs r6, 0x3
negs r6, r6
_0810783E:
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
adds r0, r5, r3
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
cmp r0, r6
bne _0810782E
cmp r3, r2
bcc _0810783E
_08107854:
adds r0, r5, 0x1
_08107856:
strh r2, [r4, 0x1A]
strh r0, [r4, 0x18]
movs r0, 0x2
_0810785C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8107774
thumb_func_start sub_8107864
sub_8107864: @ 8107864
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x8
adds r6, r0, 0
lsls r1, 24
lsrs r5, r1, 24
adds r7, r5, 0
lsls r2, 24
lsrs r2, 24
mov r8, r2
ldrh r0, [r6, 0xE]
cmp r5, r0
bcc _0810789E
ldrb r0, [r6, 0x10]
ldrb r2, [r6, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
bl sub_800445C
ldrh r1, [r6, 0x18]
ldrh r3, [r6, 0xE]
adds r0, r6, 0
movs r2, 0
bl sub_81074DC
b _0810798E
_0810789E:
ldrb r0, [r6, 0x17]
lsls r0, 26
lsrs r0, 26
movs r1, 0x1
bl sub_80F79D8
ldrb r1, [r6, 0x16]
lsls r1, 26
lsrs r1, 29
adds r0, r1
lsls r0, 24
lsrs r4, r0, 24
mov r1, r8
cmp r1, 0
bne _08107930
ldrb r0, [r6, 0x10]
adds r2, r5, 0
muls r2, r4
lsls r2, 24
lsrs r2, 24
ldrb r1, [r6, 0x15]
lsls r1, 28
lsrs r3, r1, 4
orrs r3, r1
lsrs r3, 24
movs r1, 0x1
bl sub_80044A8
ldrh r1, [r6, 0x18]
adds r0, r6, 0
movs r2, 0
adds r3, r5, 0
bl sub_81074DC
ldrh r0, [r6, 0xE]
adds r1, r0, 0
muls r1, r4
adds r0, r1, 0
ldrb r4, [r6, 0x14]
lsls r4, 28
lsrs r4, 28
adds r4, r0
lsls r4, 16
lsrs r4, 16
ldrb r0, [r6, 0x10]
movs r1, 0x3
bl sub_8004950
adds r5, r0, 0
lsls r5, 19
lsrs r5, 16
ldrb r0, [r6, 0x10]
movs r1, 0x4
bl sub_8004950
lsls r0, 3
subs r0, r4
lsls r0, 16
lsrs r0, 16
ldrb r3, [r6, 0x10]
ldrb r2, [r6, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
str r5, [sp]
str r0, [sp, 0x4]
adds r0, r3, 0
movs r2, 0
adds r3, r4, 0
bl sub_8004378
b _0810798E
_08107930:
ldrb r0, [r6, 0x10]
adds r2, r7, 0
muls r2, r4
lsls r2, 24
lsrs r2, 24
ldrb r1, [r6, 0x15]
lsls r1, 28
lsrs r3, r1, 4
orrs r3, r1
lsrs r3, 24
movs r1, 0
bl sub_80044A8
ldrh r2, [r6, 0xE]
subs r2, r7
ldrh r1, [r6, 0x18]
adds r1, r2
lsls r1, 16
lsrs r1, 16
lsls r2, 16
lsrs r2, 16
adds r0, r6, 0
adds r3, r7, 0
bl sub_81074DC
ldrb r0, [r6, 0x10]
movs r1, 0x3
bl sub_8004950
lsls r0, 19
lsrs r0, 16
ldrb r3, [r6, 0x10]
ldrb r2, [r6, 0x15]
lsls r2, 28
lsrs r1, r2, 4
orrs r1, r2
lsrs r1, 24
str r0, [sp]
ldrb r0, [r6, 0x14]
lsls r0, 28
lsrs r0, 28
str r0, [sp, 0x4]
adds r0, r3, 0
movs r2, 0
movs r3, 0
bl sub_8004378
_0810798E:
add sp, 0x8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8107864
thumb_func_start sub_810799C
sub_810799C: @ 810799C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
adds r4, r0, 0
lsls r1, 24
lsrs r1, 24
str r1, [sp]
lsls r2, 24
lsrs r2, 24
mov r8, r2
lsls r3, 24
lsrs r3, 24
mov r9, r3
ldrh r0, [r4, 0x1A]
mov r10, r0
movs r7, 0
movs r5, 0
movs r0, 0
cmp r7, r8
bcs _08107A04
_081079CA:
adds r6, r0, 0x1
b _081079EA
_081079CE:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
ldrh r0, [r4, 0x18]
ldrh r1, [r4, 0x1A]
adds r0, r1
ldr r1, [r4]
lsls r0, 3
adds r0, r1
ldr r1, [r0, 0x4]
movs r0, 0x3
negs r0, r0
cmp r1, r0
bne _081079FC
_081079EA:
adds r0, r4, 0
mov r1, r9
bl sub_8107774
lsls r0, 24
lsrs r0, 24
orrs r5, r0
cmp r0, 0x2
beq _081079CE
_081079FC:
lsls r0, r6, 24
lsrs r0, 24
cmp r0, r8
bcc _081079CA
_08107A04:
ldr r0, [sp]
cmp r0, 0
beq _08107A62
cmp r5, 0x1
beq _08107A1A
cmp r5, 0x1
ble _08107A16
cmp r5, 0x3
ble _08107A3A
_08107A16:
movs r0, 0x1
b _08107A64
_08107A1A:
adds r0, r4, 0
mov r1, r10
bl sub_81076EC
adds r0, r4, 0
bl sub_8107594
adds r0, r4, 0
movs r1, 0
bl sub_8107A74
ldrb r0, [r4, 0x10]
movs r1, 0x2
bl sub_8003F20
b _08107A62
_08107A3A:
adds r0, r4, 0
mov r1, r10
bl sub_81076EC
adds r0, r4, 0
adds r1, r7, 0
mov r2, r9
bl sub_8107864
adds r0, r4, 0
bl sub_8107594
adds r0, r4, 0
movs r1, 0
bl sub_8107A74
ldrb r0, [r4, 0x10]
movs r1, 0x2
bl sub_8003F20
_08107A62:
movs r0, 0
_08107A64:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_810799C
thumb_func_start sub_8107A74
sub_8107A74: @ 8107A74
push {r4,lr}
adds r2, r0, 0
lsls r1, 24
lsrs r4, r1, 24
ldr r3, [r2, 0x4]
cmp r3, 0
beq _08107A96
ldrh r0, [r2, 0x18]
ldrh r1, [r2, 0x1A]
adds r0, r1
ldr r1, [r2]
lsls r0, 3
adds r0, r1
ldr r0, [r0, 0x4]
adds r1, r4, 0
bl _call_via_r3
_08107A96:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8107A74
thumb_func_start sub_8107A9C
sub_8107A9C: @ 8107A9C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsls r2, 24
lsrs r2, 24
ldr r6, _08107AE8 @ =gUnknown_3005E60
movs r5, 0xF
ands r0, r5
ldrb r3, [r6]
mov r8, r3
movs r4, 0x10
negs r4, r4
adds r3, r4, 0
mov r7, r8
ands r3, r7
orrs r3, r0
lsrs r1, 20
ands r3, r5
orrs r3, r1
strb r3, [r6]
ands r2, r5
ldrb r0, [r6, 0x1]
ands r4, r0
orrs r4, r2
strb r4, [r6, 0x1]
ldrb r0, [r6, 0x3]
movs r1, 0x80
orrs r0, r1
strb r0, [r6, 0x3]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08107AE8: .4byte gUnknown_3005E60
thumb_func_end sub_8107A9C
thumb_func_start sub_8107AEC
sub_8107AEC: @ 8107AEC
push {lr}
lsls r1, 24
cmp r1, 0
bne _08107AFA
movs r0, 0x5
bl sub_80722CC
_08107AFA:
pop {r0}
bx r0
thumb_func_end sub_8107AEC
thumb_func_start sub_8107B00
sub_8107B00: @ 8107B00
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r3, r1, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08107B24 @ =gUnknown_3005098
adds r2, r1, r0
cmp r3, 0x10
bhi _08107BC8
lsls r0, r3, 2
ldr r1, _08107B28 @ =_08107B2C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08107B24: .4byte gUnknown_3005098
_08107B28: .4byte _08107B2C
.align 2, 0
_08107B2C:
.4byte _08107B70
.4byte _08107B70
.4byte _08107B74
.4byte _08107B78
.4byte _08107B7C
.4byte _08107B80
.4byte _08107B84
.4byte _08107B88
.4byte _08107B8C
.4byte _08107B90
.4byte _08107B96
.4byte _08107B9E
.4byte _08107BA4
.4byte _08107BAC
.4byte _08107BB4
.4byte _08107BBA
.4byte _08107BC2
_08107B70:
ldr r0, [r2, 0x4]
b _08107BCC
_08107B74:
ldrh r0, [r2, 0xC]
b _08107BCC
_08107B78:
ldrh r0, [r2, 0xE]
b _08107BCC
_08107B7C:
ldrb r0, [r2, 0x10]
b _08107BCC
_08107B80:
ldrb r0, [r2, 0x11]
b _08107BCC
_08107B84:
ldrb r0, [r2, 0x12]
b _08107BCC
_08107B88:
ldrb r0, [r2, 0x13]
b _08107BCC
_08107B8C:
ldrb r0, [r2, 0x14]
b _08107B98
_08107B90:
ldrb r0, [r2, 0x14]
lsrs r0, 4
b _08107BCC
_08107B96:
ldrb r0, [r2, 0x15]
_08107B98:
lsls r0, 28
lsrs r0, 28
b _08107BCC
_08107B9E:
ldrb r0, [r2, 0x15]
lsrs r0, 4
b _08107BCC
_08107BA4:
ldrb r0, [r2, 0x16]
lsls r0, 29
lsrs r0, 29
b _08107BCC
_08107BAC:
ldrb r0, [r2, 0x16]
lsls r0, 26
lsrs r0, 29
b _08107BCC
_08107BB4:
ldrb r0, [r2, 0x16]
lsrs r0, 6
b _08107BCC
_08107BBA:
ldrb r0, [r2, 0x17]
lsls r0, 26
lsrs r0, 26
b _08107BCC
_08107BC2:
ldrb r0, [r2, 0x17]
lsrs r0, 6
b _08107BCC
_08107BC8:
movs r0, 0x1
negs r0, r0
_08107BCC:
pop {r1}
bx r1
thumb_func_end sub_8107B00
thumb_func_start sub_8107BD0
sub_8107BD0: @ 8107BD0
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r4, r1, 24
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
ldr r0, _08107BF4 @ =gUnknown_3005098
adds r3, r1, r0
cmp r4, 0x10
bhi _08107CD0
lsls r0, r4, 2
ldr r1, _08107BF8 @ =_08107BFC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08107BF4: .4byte gUnknown_3005098
_08107BF8: .4byte _08107BFC
.align 2, 0
_08107BFC:
.4byte _08107C40
.4byte _08107C40
.4byte _08107C44
.4byte _08107C48
.4byte _08107C4C
.4byte _08107C50
.4byte _08107C54
.4byte _08107C58
.4byte _08107C5C
.4byte _08107C68
.4byte _08107C76
.4byte _08107C82
.4byte _08107C90
.4byte _08107C9C
.4byte _08107CAA
.4byte _08107CB8
.4byte _08107CC4
_08107C40:
str r2, [r3, 0x4]
b _08107CD0
_08107C44:
strh r2, [r3, 0xC]
b _08107CD0
_08107C48:
strh r2, [r3, 0xE]
b _08107CD0
_08107C4C:
strb r2, [r3, 0x10]
b _08107CD0
_08107C50:
strb r2, [r3, 0x11]
b _08107CD0
_08107C54:
strb r2, [r3, 0x12]
b _08107CD0
_08107C58:
strb r2, [r3, 0x13]
b _08107CD0
_08107C5C:
movs r0, 0xF
ands r2, r0
ldrb r1, [r3, 0x14]
movs r0, 0x10
negs r0, r0
b _08107C6E
_08107C68:
lsls r2, 4
ldrb r1, [r3, 0x14]
movs r0, 0xF
_08107C6E:
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x14]
b _08107CD0
_08107C76:
movs r0, 0xF
ands r2, r0
ldrb r1, [r3, 0x15]
movs r0, 0x10
negs r0, r0
b _08107C88
_08107C82:
lsls r2, 4
ldrb r1, [r3, 0x15]
movs r0, 0xF
_08107C88:
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x15]
b _08107CD0
_08107C90:
movs r0, 0x7
ands r2, r0
ldrb r1, [r3, 0x16]
movs r0, 0x8
negs r0, r0
b _08107CB0
_08107C9C:
movs r0, 0x7
ands r2, r0
lsls r2, 3
ldrb r1, [r3, 0x16]
movs r0, 0x39
negs r0, r0
b _08107CB0
_08107CAA:
lsls r2, 6
ldrb r1, [r3, 0x16]
movs r0, 0x3F
_08107CB0:
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x16]
b _08107CD0
_08107CB8:
movs r0, 0x3F
ands r2, r0
ldrb r1, [r3, 0x17]
movs r0, 0x40
negs r0, r0
b _08107CCA
_08107CC4:
lsls r2, 6
ldrb r1, [r3, 0x17]
movs r0, 0x3F
_08107CCA:
ands r0, r1
orrs r0, r2
strb r0, [r3, 0x17]
_08107CD0:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8107BD0
thumb_func_start sub_8107CD8
sub_8107CD8: @ 8107CD8
push {r4,lr}
adds r4, r0, 0
adds r0, r1, 0
lsls r4, 24
lsrs r4, 24
lsls r0, 16
lsrs r0, 16
bl sub_80971CC
adds r1, r4, 0
movs r2, 0x20
bl sub_80703EC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8107CD8
thumb_func_start sub_8107CF8
sub_8107CF8: @ 8107CF8
push {r4-r6,lr}
sub sp, 0x8
adds r6, r0, 0
adds r0, r1, 0
adds r1, r2, 0
adds r4, r3, 0
ldr r5, [sp, 0x18]
lsls r6, 24
lsrs r6, 24
lsls r0, 16
lsrs r0, 16
lsls r4, 16
lsrs r4, 16
lsls r5, 16
lsrs r5, 16
movs r2, 0x1
bl sub_8097054
adds r1, r0, 0
movs r0, 0x20
str r0, [sp]
str r0, [sp, 0x4]
adds r0, r6, 0
adds r2, r4, 0
adds r3, r5, 0
bl sub_80041B8
add sp, 0x8
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8107CF8
thumb_func_start sub_8107D38
sub_8107D38: @ 8107D38
push {lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r1, 24
cmp r1, 0
beq _08107D4A
cmp r1, 0x1
beq _08107D54
_08107D4A:
ldr r0, _08107D50 @ =gUnknown_8E95D9C
b _08107D56
.align 2, 0
_08107D50: .4byte gUnknown_8E95D9C
_08107D54:
ldr r0, _08107D64 @ =gUnknown_8E95DBC
_08107D56:
adds r1, r2, 0
movs r2, 0x20
bl sub_80703EC
pop {r0}
bx r0
.align 2, 0
_08107D64: .4byte gUnknown_8E95DBC
thumb_func_end sub_8107D38
thumb_func_start sub_8107D68
sub_8107D68: @ 8107D68
push {r4,r5,lr}
sub sp, 0x18
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsls r2, 16
lsrs r2, 16
lsls r3, 16
lsrs r3, 16
ldr r4, _08107DAC @ =gUnknown_8452C94
lsrs r1, 22
adds r1, r4
ldrh r5, [r1, 0x2]
lsls r5, 5
ldr r4, _08107DB0 @ =gUnknown_8E95DDC
adds r5, r4
movs r4, 0x80
str r4, [sp]
str r4, [sp, 0x4]
str r2, [sp, 0x8]
str r3, [sp, 0xC]
ldrb r2, [r1]
str r2, [sp, 0x10]
ldrb r1, [r1, 0x1]
str r1, [sp, 0x14]
adds r1, r5, 0
movs r2, 0
movs r3, 0
bl sub_80041F0
add sp, 0x18
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08107DAC: .4byte gUnknown_8452C94
_08107DB0: .4byte gUnknown_8E95DDC
thumb_func_end sub_8107D68
.align 2, 0 @ Don't pad with nop.