pokefirered/asm/link_rfu.s
2019-06-28 01:56:43 +08:00

10822 lines
175 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80FD3A4
sub_80FD3A4: @ 80FD3A4
push {r4,lr}
bl rfu_REQBN_softReset_and_checkID
adds r4, r0, 0
ldr r0, _080FD3E8 @ =0x00008001
cmp r4, r0
bne _080FD3B8
ldr r1, _080FD3EC @ =gUnknown_3005E10
movs r0, 0x1
strb r0, [r1, 0x8]
_080FD3B8:
ldr r0, _080FD3EC @ =gUnknown_3005E10
ldrb r2, [r0, 0x4]
adds r1, r0, 0
cmp r2, 0x17
beq _080FD3CC
cmp r2, 0x1
beq _080FD3CC
movs r0, 0
strb r0, [r1, 0x5]
strb r0, [r1, 0x4]
_080FD3CC:
movs r0, 0
strb r0, [r1, 0x7]
strb r0, [r1, 0xD]
strb r0, [r1, 0x1]
strb r0, [r1]
movs r0, 0xFF
strb r0, [r1, 0x6]
bl sub_80FEAF4
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080FD3E8: .4byte 0x00008001
_080FD3EC: .4byte gUnknown_3005E10
thumb_func_end sub_80FD3A4
thumb_func_start rfu_REQ_sendData_wrapper
rfu_REQ_sendData_wrapper: @ 80FD3F0
push {lr}
lsls r0, 24
lsrs r2, r0, 24
ldr r0, _080FD410 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
bne _080FD418
ldr r0, _080FD414 @ =gUnknown_3005E10
ldrb r0, [r0, 0x2]
movs r2, 0
cmp r0, 0x1
bne _080FD420
movs r2, 0x1
b _080FD420
.align 2, 0
_080FD410: .4byte gUnknown_3007460
_080FD414: .4byte gUnknown_3005E10
_080FD418:
ldr r0, _080FD42C @ =gUnknown_3005E10
ldrb r1, [r0, 0x3]
movs r1, 0
strb r1, [r0, 0x3]
_080FD420:
adds r0, r2, 0
bl rfu_REQ_sendData
pop {r0}
bx r0
.align 2, 0
_080FD42C: .4byte gUnknown_3005E10
thumb_func_end rfu_REQ_sendData_wrapper
thumb_func_start sub_80FD430
sub_80FD430: @ 80FD430
push {r4-r6,lr}
sub sp, 0x4
adds r5, r0, 0
adds r6, r1, 0
cmp r5, 0
beq _080FD478
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r4, _080FD468 @ =gUnknown_3005E10
ldr r2, _080FD46C @ =0x01000024
mov r0, sp
adds r1, r4, 0
bl CpuSet
movs r0, 0xFF
strb r0, [r4, 0x6]
str r5, [r4, 0x40]
str r6, [r4, 0x44]
ldr r0, _080FD470 @ =sub_80FE394
bl rfu_setMSCCallback
ldr r0, _080FD474 @ =sub_80FDC98
bl rfu_setREQCallback
movs r0, 0
b _080FD47A
.align 2, 0
_080FD468: .4byte gUnknown_3005E10
_080FD46C: .4byte 0x01000024
_080FD470: .4byte sub_80FE394
_080FD474: .4byte sub_80FDC98
_080FD478:
movs r0, 0x4
_080FD47A:
add sp, 0x4
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80FD430
thumb_func_start sub_80FD484
sub_80FD484: @ 80FD484
push {r4,lr}
sub sp, 0x4
mov r1, sp
movs r0, 0
strh r0, [r1]
ldr r4, _080FD4A8 @ =gUnknown_3005E10
ldr r2, _080FD4AC @ =0x01000020
mov r0, sp
adds r1, r4, 0
bl CpuSet
movs r0, 0xFF
strb r0, [r4, 0x6]
add sp, 0x4
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FD4A8: .4byte gUnknown_3005E10
_080FD4AC: .4byte 0x01000020
thumb_func_end sub_80FD484
thumb_func_start sub_80FD4B0
sub_80FD4B0: @ 80FD4B0
push {r4,lr}
adds r4, r0, 0
bl sub_80FD4E4
ldr r1, _080FD4E0 @ =gUnknown_3005E10
movs r2, 0x1
strb r2, [r1, 0x4]
movs r0, 0x2
strb r0, [r1, 0x5]
str r4, [r1, 0x3C]
ldrb r0, [r4, 0x11]
strb r0, [r1, 0x9]
ldrh r0, [r4, 0x12]
strh r0, [r1, 0x32]
ldrh r0, [r4, 0x14]
strh r0, [r1, 0x18]
ldrb r0, [r4, 0x10]
cmp r0, 0
beq _080FD4D8
strb r2, [r1, 0xB]
_080FD4D8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FD4E0: .4byte gUnknown_3005E10
thumb_func_end sub_80FD4B0
thumb_func_start sub_80FD4E4
sub_80FD4E4: @ 80FD4E4
push {r4,r5,lr}
ldr r2, _080FD528 @ =gUnknown_3005E10
movs r0, 0
strb r0, [r2, 0x5]
strb r0, [r2, 0x4]
movs r1, 0xFF
strb r1, [r2, 0x6]
strb r0, [r2, 0x7]
strb r0, [r2, 0x10]
strb r0, [r2, 0xC]
adds r1, r2, 0
adds r1, 0x24
strb r0, [r1]
adds r1, 0xC
strb r0, [r1]
movs r3, 0
adds r5, r2, 0
adds r5, 0x28
movs r4, 0
adds r2, 0x34
_080FD50C:
lsls r1, r3, 1
adds r0, r1, r5
strh r4, [r0]
adds r1, r2
strh r4, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080FD50C
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FD528: .4byte gUnknown_3005E10
thumb_func_end sub_80FD4E4
thumb_func_start sub_80FD52C
sub_80FD52C: @ 80FD52C
ldr r1, _080FD534 @ =gUnknown_3005E10
movs r0, 0x15
strb r0, [r1, 0x4]
bx lr
.align 2, 0
_080FD534: .4byte gUnknown_3005E10
thumb_func_end sub_80FD52C
thumb_func_start sub_80FD538
sub_80FD538: @ 80FD538
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r6, r3, 0
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 16
lsrs r7, r1, 16
lsls r2, 16
lsrs r2, 16
mov r8, r2
ldr r1, _080FD570 @ =gUnknown_3005E10
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _080FD574
cmp r0, 0x8
bne _080FD55E
cmp r5, 0x1
beq _080FD574
_080FD55E:
movs r0, 0x1
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x1
b _080FD606
.align 2, 0
_080FD570: .4byte gUnknown_3005E10
_080FD574:
bl rfu_getMasterSlave
lsls r0, 24
cmp r0, 0
bne _080FD594
ldr r1, _080FD590 @ =gUnknown_3005E10
movs r0, 0x2
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x2
b _080FD606
.align 2, 0
_080FD590: .4byte gUnknown_3005E10
_080FD594:
movs r2, 0
ldrh r0, [r6]
ldr r4, _080FD5C8 @ =0x0000ffff
adds r1, r6, 0x2
ldr r3, _080FD5CC @ =gUnknown_3005E10
cmp r0, r4
beq _080FD5B4
_080FD5A2:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xF
bhi _080FD5B4
ldrh r0, [r1]
adds r1, 0x2
cmp r0, r4
bne _080FD5A2
_080FD5B4:
cmp r2, 0x10
bne _080FD5D0
movs r0, 0x4
strh r0, [r3, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x4
b _080FD606
.align 2, 0
_080FD5C8: .4byte 0x0000ffff
_080FD5CC: .4byte gUnknown_3005E10
_080FD5D0:
cmp r5, 0x1
bls _080FD5DE
movs r0, 0x1
strb r0, [r3, 0x7]
movs r5, 0x1
movs r7, 0
b _080FD5E2
_080FD5DE:
movs r0, 0
strb r0, [r3, 0x7]
_080FD5E2:
cmp r5, 0
beq _080FD5EC
movs r0, 0x5
strb r0, [r3, 0x4]
b _080FD5FA
_080FD5EC:
movs r0, 0x9
strb r0, [r3, 0x4]
ldrb r0, [r3, 0xB]
cmp r0, 0
beq _080FD5FA
movs r0, 0x2
strb r0, [r3, 0xB]
_080FD5FA:
strb r5, [r3, 0x6]
strh r7, [r3, 0x1A]
mov r0, r8
strh r0, [r3, 0x26]
str r6, [r3, 0x20]
movs r0, 0
_080FD606:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FD538
thumb_func_start sub_80FD610
sub_80FD610: @ 80FD610
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r1, 16
mov r8, r1
ldr r1, _080FD644 @ =gUnknown_3005E10
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _080FD648
subs r0, 0x9
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bls _080FD648
movs r0, 0x1
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x1
b _080FD6E8
.align 2, 0
_080FD644: .4byte gUnknown_3005E10
_080FD648:
bl rfu_getMasterSlave
lsls r0, 24
cmp r0, 0
bne _080FD668
ldr r1, _080FD664 @ =gUnknown_3005E10
movs r0, 0x2
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x2
b _080FD6E8
.align 2, 0
_080FD664: .4byte gUnknown_3005E10
_080FD668:
movs r2, 0
ldr r0, _080FD6B4 @ =gUnknown_3007460
ldr r1, [r0]
ldrb r3, [r1, 0x8]
ldr r5, _080FD6B8 @ =gUnknown_3005E10
adds r7, r0, 0
cmp r2, r3
bcs _080FD696
ldrh r0, [r1, 0x14]
cmp r0, r6
beq _080FD696
adds r4, r1, 0
adds r1, r3, 0
_080FD682:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r1
bcs _080FD696
lsls r0, r2, 5
adds r0, r4, r0
ldrh r0, [r0, 0x14]
cmp r0, r6
bne _080FD682
_080FD696:
ldr r0, [r7]
ldrb r0, [r0, 0x8]
cmp r0, 0
beq _080FD6A2
cmp r2, r0
bne _080FD6BC
_080FD6A2:
movs r0, 0x3
strh r0, [r5, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x3
b _080FD6E8
.align 2, 0
_080FD6B4: .4byte gUnknown_3007460
_080FD6B8: .4byte gUnknown_3005E10
_080FD6BC:
ldrb r0, [r5, 0x4]
cmp r0, 0
beq _080FD6C6
cmp r0, 0x9
bne _080FD6CE
_080FD6C6:
movs r0, 0xC
strb r0, [r5, 0x4]
movs r0, 0xD
b _080FD6D4
_080FD6CE:
movs r0, 0xB
strb r0, [r5, 0x4]
movs r0, 0xC
_080FD6D4:
strb r0, [r5, 0x5]
strh r6, [r5, 0x1E]
mov r0, r8
strh r0, [r5, 0x1A]
ldrb r0, [r5, 0x7]
cmp r0, 0
beq _080FD6E6
movs r0, 0x7
strb r0, [r5, 0x7]
_080FD6E6:
movs r0, 0
_080FD6E8:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FD610
thumb_func_start sub_80FD6F4
sub_80FD6F4: @ 80FD6F4
push {r4-r7,lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r6, _080FD758 @ =gUnknown_3005E10
adds r3, r6, 0
adds r3, 0x30
ldrb r2, [r3]
adds r0, r1, 0
ands r0, r2
cmp r0, 0
beq _080FD750
adds r0, r2, 0
bics r0, r1
strb r0, [r3]
movs r4, 0
ldr r7, _080FD75C @ =gUnknown_3007460
movs r5, 0x1
adds r3, 0x4
movs r2, 0
_080FD71A:
adds r0, r1, 0
asrs r0, r4
ands r0, r5
cmp r0, 0
beq _080FD72A
lsls r0, r4, 1
adds r0, r3
strh r2, [r0]
_080FD72A:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080FD71A
ldr r0, [r7]
ldrb r4, [r0, 0x3]
ands r4, r1
cmp r4, 0
beq _080FD744
adds r0, r4, 0
bl sub_80FE818
_080FD744:
ldr r0, _080FD758 @ =gUnknown_3005E10
strh r4, [r0, 0x14]
movs r0, 0x33
adds r1, r4, 0
bl sub_80FE7F0
_080FD750:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FD758: .4byte gUnknown_3005E10
_080FD75C: .4byte gUnknown_3007460
thumb_func_end sub_80FD6F4
thumb_func_start sub_80FD760
sub_80FD760: @ 80FD760
push {r4,r5,lr}
lsls r0, 24
movs r2, 0
ldr r1, _080FD77C @ =gUnknown_3005E10
strb r2, [r1, 0x7]
adds r5, r1, 0
cmp r0, 0
beq _080FD780
bl sub_80FD4E4
movs r0, 0x17
strb r0, [r5, 0x4]
b _080FD84A
.align 2, 0
_080FD77C: .4byte gUnknown_3005E10
_080FD780:
ldrb r0, [r5, 0x4]
subs r0, 0x5
cmp r0, 0xD
bhi _080FD836
lsls r0, 2
ldr r1, _080FD794 @ =_080FD798
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FD794: .4byte _080FD798
.align 2, 0
_080FD798:
.4byte _080FD7D0
.4byte _080FD7DC
.4byte _080FD7DC
.4byte _080FD83C
.4byte _080FD7E6
.4byte _080FD7F0
.4byte _080FD7F0
.4byte _080FD7FA
.4byte _080FD804
.4byte _080FD804
.4byte _080FD83C
.4byte _080FD80A
.4byte _080FD830
.4byte _080FD830
_080FD7D0:
movs r1, 0
movs r0, 0x8
strb r0, [r5, 0x4]
strb r1, [r5, 0x5]
movs r2, 0x13
b _080FD83C
_080FD7DC:
movs r0, 0x7
strb r0, [r5, 0x4]
movs r0, 0x8
strb r0, [r5, 0x5]
b _080FD83C
_080FD7E6:
movs r0, 0
strb r0, [r5, 0x5]
strb r0, [r5, 0x4]
movs r2, 0x21
b _080FD83C
_080FD7F0:
movs r1, 0
movs r0, 0xB
strb r0, [r5, 0x4]
strb r1, [r5, 0x5]
b _080FD83C
_080FD7FA:
movs r0, 0
strb r0, [r5, 0x5]
strb r0, [r5, 0x4]
movs r2, 0x23
b _080FD83C
_080FD804:
movs r0, 0xE
strb r0, [r5, 0x4]
b _080FD83C
_080FD80A:
ldrb r0, [r5, 0x11]
strb r0, [r5, 0x4]
ldrb r0, [r5, 0x12]
strb r0, [r5, 0x5]
ldr r4, _080FD82C @ =gUnknown_3007460
ldr r0, [r4]
ldrb r0, [r0, 0x3]
bl sub_80FE818
ldr r0, [r4]
ldrb r0, [r0, 0x3]
strh r0, [r5, 0x14]
movs r0, 0x33
movs r1, 0x1
bl sub_80FE7F0
b _080FD84A
.align 2, 0
_080FD82C: .4byte gUnknown_3007460
_080FD830:
movs r0, 0x12
strb r0, [r5, 0x4]
b _080FD83C
_080FD836:
strb r2, [r5, 0x5]
strb r2, [r5, 0x4]
movs r2, 0x43
_080FD83C:
ldrb r0, [r5, 0x4]
cmp r0, 0
bne _080FD84A
adds r0, r2, 0
movs r1, 0
bl sub_80FE7F0
_080FD84A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80FD760
thumb_func_start sub_80FD850
sub_80FD850: @ 80FD850
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
movs r1, 0
mov r8, r1
mov r5, sp
adds r5, 0x1
mov r4, sp
adds r4, 0x2
mov r1, sp
adds r2, r5, 0
adds r3, r4, 0
bl sub_81E13F0
mov r0, sp
ldrb r0, [r0]
adds r7, r4, 0
cmp r0, 0
beq _080FD922
ldr r1, _080FD8EC @ =gUnknown_3005E10
mov r0, sp
ldrb r0, [r0]
strh r0, [r1, 0x14]
ldrb r0, [r5]
strh r0, [r1, 0x16]
ldrb r0, [r1, 0x9]
adds r6, r1, 0
cmp r0, 0
beq _080FD90A
movs r0, 0x1
strb r0, [r6, 0xA]
ldrb r0, [r6, 0x6]
cmp r0, 0
bne _080FD8A6
ldrb r0, [r5]
cmp r0, 0
bne _080FD8A6
movs r0, 0x4
strb r0, [r6, 0xA]
_080FD8A6:
ldrb r0, [r6, 0xA]
cmp r0, 0x1
bne _080FD8F0
movs r2, 0
mov r4, sp
movs r5, 0x1
mov r12, r6
mov r3, r12
adds r3, 0x30
movs r6, 0x34
add r6, r12
mov r9, r6
_080FD8BE:
ldrb r0, [r4]
asrs r0, r2
ands r0, r5
cmp r0, 0
beq _080FD8DC
adds r0, r5, 0
lsls r0, r2
ldrb r1, [r3]
orrs r0, r1
strb r0, [r3]
lsls r0, r2, 1
add r0, r9
mov r6, r12
ldrh r1, [r6, 0x32]
strh r1, [r0]
_080FD8DC:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080FD8BE
movs r0, 0x31
b _080FD902
.align 2, 0
_080FD8EC: .4byte gUnknown_3005E10
_080FD8F0:
movs r0, 0
strb r0, [r6, 0xA]
mov r0, sp
ldrb r0, [r0]
bl sub_80FE818
movs r0, 0x1
mov r8, r0
movs r0, 0x33
_080FD902:
movs r1, 0x1
bl sub_80FE7F0
b _080FD91E
_080FD90A:
mov r0, sp
ldrb r0, [r0]
bl sub_80FE818
movs r1, 0x1
mov r8, r1
movs r0, 0x30
movs r1, 0x2
bl sub_80FE7F0
_080FD91E:
bl sub_80FEAF4
_080FD922:
ldr r0, _080FDA0C @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x1
bne _080FD9FC
ldrb r0, [r7]
cmp r0, 0
beq _080FD980
movs r2, 0
ldr r6, _080FDA10 @ =gUnknown_3005E10
movs r3, 0x1
adds r4, r6, 0
adds r4, 0x34
adds r6, 0x30
adds r5, r7, 0
_080FD940:
ldrb r0, [r6]
asrs r0, r2
ands r0, r3
cmp r0, 0
beq _080FD95C
ldrb r0, [r5]
asrs r0, r2
ands r0, r3
cmp r0, 0
beq _080FD95C
lsls r0, r2, 1
adds r0, r4
movs r1, 0
strh r1, [r0]
_080FD95C:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080FD940
ldr r3, _080FDA10 @ =gUnknown_3005E10
adds r2, r3, 0
adds r2, 0x30
ldrb r1, [r7]
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
ldrb r0, [r7]
strh r0, [r3, 0x14]
movs r0, 0x32
movs r1, 0x1
bl sub_80FE7F0
_080FD980:
ldr r0, _080FDA10 @ =gUnknown_3005E10
adds r3, r0, 0
adds r3, 0x30
ldrb r1, [r3]
adds r6, r0, 0
cmp r1, 0
beq _080FD9F8
movs r4, 0
movs r2, 0
movs r5, 0x1
_080FD994:
ldrb r0, [r3]
asrs r0, r2
ands r0, r5
cmp r0, 0
beq _080FD9C6
lsls r1, r2, 1
adds r0, r6, 0
adds r0, 0x34
adds r1, r0
ldrh r0, [r1]
cmp r0, 0
beq _080FD9C6
subs r0, 0x1
strh r0, [r1]
lsls r0, 16
cmp r0, 0
bne _080FD9C6
adds r0, r5, 0
lsls r0, r2
ldrb r1, [r3]
bics r1, r0
strb r1, [r3]
orrs r4, r0
lsls r0, r4, 24
lsrs r4, r0, 24
_080FD9C6:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080FD994
cmp r4, 0
beq _080FD9EA
adds r0, r4, 0
bl sub_80FE818
movs r6, 0x1
mov r8, r6
ldr r0, _080FDA10 @ =gUnknown_3005E10
strh r4, [r0, 0x14]
movs r0, 0x33
movs r1, 0x1
bl sub_80FE7F0
_080FD9EA:
ldr r0, _080FDA10 @ =gUnknown_3005E10
adds r1, r0, 0
adds r1, 0x30
ldrb r1, [r1]
adds r6, r0, 0
cmp r1, 0
bne _080FD9FC
_080FD9F8:
movs r0, 0
strb r0, [r6, 0xA]
_080FD9FC:
mov r0, r8
add sp, 0x4
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FDA0C: .4byte gUnknown_3007460
_080FDA10: .4byte gUnknown_3005E10
thumb_func_end sub_80FD850
thumb_func_start rfu_syncVBlank_
rfu_syncVBlank_: @ 80FDA14
push {lr}
bl rfu_syncVBlank
lsls r0, 16
cmp r0, 0
beq _080FDA2C
movs r0, 0xF1
movs r1, 0
bl sub_80FE7F0
bl sub_80FEAF4
_080FDA2C:
pop {r0}
bx r0
thumb_func_end rfu_syncVBlank_
thumb_func_start sub_80FDA30
sub_80FDA30: @ 80FDA30
push {r4,lr}
adds r3, r0, 0
ldr r1, _080FDA48 @ =gUnknown_3005E10
ldr r2, [r1, 0x40]
cmp r2, 0
bne _080FDA4C
ldrb r0, [r1, 0x4]
cmp r0, 0
beq _080FDA4C
strb r2, [r1, 0x4]
b _080FDC1A
.align 2, 0
_080FDA48: .4byte gUnknown_3005E10
_080FDA4C:
ldr r0, _080FDA80 @ =gUnknown_3005E10
ldrb r0, [r0, 0x7]
cmp r0, 0
beq _080FDA5A
adds r0, r3, 0
bl sub_80FDC28
_080FDA5A:
ldr r4, _080FDA80 @ =gUnknown_3005E10
ldrb r0, [r4, 0x4]
cmp r0, 0
bne _080FDA64
b _080FDBE4
_080FDA64:
bl rfu_waitREQComplete
movs r0, 0x1
strb r0, [r4, 0xE]
ldrb r0, [r4, 0x4]
subs r0, 0x1
cmp r0, 0x16
bls _080FDA76
b _080FDBDA
_080FDA76:
lsls r0, 2
ldr r1, _080FDA84 @ =_080FDA88
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FDA80: .4byte gUnknown_3005E10
_080FDA84: .4byte _080FDA88
.align 2, 0
_080FDA88:
.4byte _080FDB08
.4byte _080FDB40
.4byte _080FDB46
.4byte _080FDB5C
.4byte _080FDB74
.4byte _080FDB7A
.4byte _080FDB80
.4byte _080FDBDA
.4byte _080FDB86
.4byte _080FDB8C
.4byte _080FDB92
.4byte _080FDB98
.4byte _080FDBA8
.4byte _080FDBAE
.4byte _080FDBDA
.4byte _080FDBB4
.4byte _080FDBC4
.4byte _080FDBCA
.4byte _080FDBD0
.4byte _080FDBDA
.4byte _080FDBD6
.4byte _080FDBDA
.4byte _080FDAE4
_080FDAE4:
bl sub_80FD3A4
ldr r1, _080FDB00 @ =0x00008001
movs r2, 0xFF
cmp r0, r1
bne _080FDAF2
movs r2, 0x44
_080FDAF2:
ldr r1, _080FDB04 @ =gUnknown_3005E10
movs r0, 0
strb r0, [r1, 0x5]
strb r0, [r1, 0x4]
adds r0, r2, 0
b _080FDB32
.align 2, 0
_080FDB00: .4byte 0x00008001
_080FDB04: .4byte gUnknown_3005E10
_080FDB08:
bl sub_80FD3A4
ldr r1, _080FDB20 @ =0x00008001
cmp r0, r1
bne _080FDB28
ldr r0, _080FDB24 @ =gUnknown_3005E10
ldrb r1, [r0, 0x5]
strb r1, [r0, 0x4]
movs r1, 0x3
strb r1, [r0, 0x5]
b _080FDBDA
.align 2, 0
_080FDB20: .4byte 0x00008001
_080FDB24: .4byte gUnknown_3005E10
_080FDB28:
ldr r1, _080FDB3C @ =gUnknown_3005E10
movs r0, 0
strb r0, [r1, 0x5]
strb r0, [r1, 0x4]
movs r0, 0xFF
_080FDB32:
movs r1, 0
bl sub_80FE7F0
b _080FDBDA
.align 2, 0
_080FDB3C: .4byte gUnknown_3005E10
_080FDB40:
bl rfu_REQ_reset
b _080FDBDA
_080FDB46:
ldr r0, _080FDB58 @ =gUnknown_3005E10
ldr r2, [r0, 0x3C]
ldrh r0, [r2, 0x2]
ldrb r1, [r2]
ldrb r2, [r2, 0x1]
bl rfu_REQ_configSystem
b _080FDBDA
.align 2, 0
_080FDB58: .4byte gUnknown_3005E10
_080FDB5C:
ldr r0, _080FDB70 @ =gUnknown_3005E10
ldr r3, [r0, 0x3C]
ldrb r0, [r3, 0x4]
ldrh r1, [r3, 0x6]
ldr r2, [r3, 0x8]
ldr r3, [r3, 0xC]
bl rfu_REQ_configGameData
b _080FDBDA
.align 2, 0
_080FDB70: .4byte gUnknown_3005E10
_080FDB74:
bl sub_81E0CAC
b _080FDBDA
_080FDB7A:
bl rfu_REQ_pollSearchChild
b _080FDBDA
_080FDB80:
bl rfu_REQ_endSearchChild
b _080FDBDA
_080FDB86:
bl rfu_REQ_startSearchParent
b _080FDBDA
_080FDB8C:
bl rfu_REQ_pollSearchParent
b _080FDBDA
_080FDB92:
bl rfu_REQ_endSearchParent
b _080FDBDA
_080FDB98:
ldr r0, _080FDBA4 @ =gUnknown_3005E10
ldrh r0, [r0, 0x1E]
bl rfu_REQ_startConnectParent
b _080FDBDA
.align 2, 0
_080FDBA4: .4byte gUnknown_3005E10
_080FDBA8:
bl rfu_REQ_pollConnectParent
b _080FDBDA
_080FDBAE:
bl rfu_REQ_endConnectParent
b _080FDBDA
_080FDBB4:
ldr r0, _080FDBC0 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x3]
bl rfu_REQ_CHILD_startConnectRecovery
b _080FDBDA
.align 2, 0
_080FDBC0: .4byte gUnknown_3007460
_080FDBC4:
bl rfu_REQ_CHILD_pollConnectRecovery
b _080FDBDA
_080FDBCA:
bl rfu_REQ_CHILD_endConnectRecovery
b _080FDBDA
_080FDBD0:
bl rfu_REQ_changeMasterSlave
b _080FDBDA
_080FDBD6:
bl rfu_REQ_stopMode
_080FDBDA:
bl rfu_waitREQComplete
ldr r1, _080FDC20 @ =gUnknown_3005E10
movs r0, 0
strb r0, [r1, 0xE]
_080FDBE4:
ldr r0, _080FDC20 @ =gUnknown_3005E10
ldrb r0, [r0, 0x4]
subs r0, 0x12
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080FDBF4
b _080FDA5A
_080FDBF4:
ldr r0, _080FDC24 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x1
bne _080FDC0A
movs r0, 0
bl sub_80FD850
lsls r0, 24
cmp r0, 0
bne _080FDC1A
_080FDC0A:
bl sub_80FE418
bl sub_80FE63C
bl sub_80FE74C
bl sub_80FE918
_080FDC1A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FDC20: .4byte gUnknown_3005E10
_080FDC24: .4byte gUnknown_3007460
thumb_func_end sub_80FDA30
thumb_func_start sub_80FDC28
sub_80FDC28: @ 80FDC28
push {r4,lr}
adds r3, r0, 0
ldr r0, _080FDC4C @ =gUnknown_3005E10
ldrb r1, [r0, 0x7]
adds r4, r0, 0
cmp r1, 0x5
bne _080FDC52
movs r2, 0x1
strb r2, [r4, 0x6]
strb r1, [r4, 0x4]
ldrh r0, [r4, 0x1C]
strh r0, [r4, 0x1A]
lsls r0, 16
cmp r0, 0
beq _080FDC50
movs r0, 0x6
strb r0, [r4, 0x7]
b _080FDC52
.align 2, 0
_080FDC4C: .4byte gUnknown_3005E10
_080FDC50:
strb r2, [r4, 0x7]
_080FDC52:
ldrb r0, [r4, 0x7]
cmp r0, 0x1
bne _080FDC7C
strb r0, [r4, 0x6]
movs r0, 0x5
strb r0, [r4, 0x4]
adds r0, r3, 0
movs r1, 0x8C
bl __umodsi3
strh r0, [r4, 0x1A]
movs r1, 0x8C
subs r1, r0
strh r1, [r4, 0x1C]
lsls r0, 16
cmp r0, 0
beq _080FDC78
movs r0, 0x2
b _080FDC7A
_080FDC78:
movs r0, 0x3
_080FDC7A:
strb r0, [r4, 0x7]
_080FDC7C:
ldrb r0, [r4, 0x7]
cmp r0, 0x3
bne _080FDC92
movs r0, 0
strb r0, [r4, 0x6]
movs r0, 0x28
strh r0, [r4, 0x1A]
movs r0, 0x4
strb r0, [r4, 0x7]
movs r0, 0x9
strb r0, [r4, 0x4]
_080FDC92:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FDC28
thumb_func_start sub_80FDC98
sub_80FDC98: @ 80FDC98
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x4
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r1, 16
lsrs r6, r1, 16
ldr r0, _080FDCD0 @ =gUnknown_3005E10
ldrb r1, [r0, 0xE]
adds r7, r0, 0
cmp r1, 0
bne _080FDCB6
b _080FE17C
_080FDCB6:
movs r0, 0
strb r0, [r7, 0xE]
mov r0, r8
subs r0, 0x10
cmp r0, 0x2D
bls _080FDCC4
b _080FE16E
_080FDCC4:
lsls r0, 2
ldr r1, _080FDCD4 @ =_080FDCD8
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FDCD0: .4byte gUnknown_3005E10
_080FDCD4: .4byte _080FDCD8
.align 2, 0
_080FDCD8:
.4byte _080FDD90
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FDDBC
.4byte _080FDDA8
.4byte _080FE16E
.4byte _080FDDD0
.4byte _080FDDE0
.4byte _080FDE04
.4byte _080FDE24
.4byte _080FDE44
.4byte _080FDEB4
.4byte _080FDEE6
.4byte _080FDEFC
.4byte _080FDF44
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE0BC
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FDFB4
.4byte _080FE000
.4byte _080FE048
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE16E
.4byte _080FE15C
_080FDD90:
cmp r6, 0
beq _080FDD96
b _080FE16E
_080FDD96:
ldr r0, _080FDDA4 @ =gUnknown_3005E10
ldrb r1, [r0, 0x5]
strb r1, [r0, 0x4]
movs r1, 0x4
strb r1, [r0, 0x5]
b _080FE16E
.align 2, 0
_080FDDA4: .4byte gUnknown_3005E10
_080FDDA8:
cmp r6, 0
beq _080FDDAE
b _080FE16E
_080FDDAE:
ldr r0, _080FDDB8 @ =gUnknown_3005E10
ldrb r1, [r0, 0x5]
strb r1, [r0, 0x4]
strb r6, [r0, 0x5]
b _080FE16E
.align 2, 0
_080FDDB8: .4byte gUnknown_3005E10
_080FDDBC:
cmp r6, 0
beq _080FDDC2
b _080FE16E
_080FDDC2:
ldr r0, _080FDDCC @ =gUnknown_3005E10
strb r6, [r0, 0x5]
strb r6, [r0, 0x4]
movs r0, 0
b _080FE0DA
.align 2, 0
_080FDDCC: .4byte gUnknown_3005E10
_080FDDD0:
cmp r6, 0
beq _080FDDD6
b _080FE16E
_080FDDD6:
ldr r1, _080FDDDC @ =gUnknown_3005E10
movs r0, 0x6
b _080FDEF0
.align 2, 0
_080FDDDC: .4byte gUnknown_3005E10
_080FDDE0:
ldr r1, _080FDE00 @ =gUnknown_3005E10
ldrh r0, [r1, 0x1A]
cmp r0, 0
bne _080FDDEA
b _080FE16E
_080FDDEA:
subs r0, 0x1
strh r0, [r1, 0x1A]
lsls r0, 16
cmp r0, 0
beq _080FDDF6
b _080FE16E
_080FDDF6:
movs r0, 0x7
strb r0, [r1, 0x4]
movs r0, 0x8
strb r0, [r1, 0x5]
b _080FE16E
.align 2, 0
_080FDE00: .4byte gUnknown_3005E10
_080FDE04:
cmp r6, 0
beq _080FDE0A
b _080FE16E
_080FDE0A:
ldr r0, _080FDE20 @ =gUnknown_3005E10
ldrb r1, [r0, 0x5]
strb r1, [r0, 0x4]
strb r6, [r0, 0x5]
ldrb r0, [r0, 0x7]
cmp r0, 0
beq _080FDE1A
b _080FE16E
_080FDE1A:
movs r0, 0x13
b _080FE0DA
.align 2, 0
_080FDE20: .4byte gUnknown_3005E10
_080FDE24:
cmp r6, 0
beq _080FDE2A
b _080FE16E
_080FDE2A:
ldrb r0, [r7, 0xB]
cmp r0, 0x1
bne _080FDE3A
ldrh r0, [r7, 0x1A]
cmp r0, 0x1
bls _080FDE3A
subs r0, 0x1
strh r0, [r7, 0x1A]
_080FDE3A:
ldr r1, _080FDE40 @ =gUnknown_3005E10
movs r0, 0xA
b _080FDEF0
.align 2, 0
_080FDE40: .4byte gUnknown_3005E10
_080FDE44:
cmp r6, 0
bne _080FDE8A
bl sub_80FE778
lsls r0, 24
lsrs r0, 24
mov r1, sp
strb r0, [r1]
ldr r4, _080FDEAC @ =gUnknown_3005E10
strh r0, [r4, 0x14]
cmp r0, 0
beq _080FDE64
movs r0, 0x20
movs r1, 0x1
bl sub_80FE7F0
_080FDE64:
ldrb r0, [r4, 0xB]
cmp r0, 0
beq _080FDE8A
ldrh r0, [r4, 0x1A]
cmp r0, 0x1
beq _080FDE8A
ldr r0, _080FDEB0 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x8]
cmp r0, 0x4
bne _080FDE8A
bl rfu_REQ_endSearchParent
bl rfu_waitREQComplete
movs r0, 0x9
strb r0, [r4, 0x4]
movs r0, 0x1
strb r0, [r4, 0xB]
_080FDE8A:
ldr r1, _080FDEAC @ =gUnknown_3005E10
ldrh r0, [r1, 0x1A]
cmp r0, 0
bne _080FDE94
b _080FE16E
_080FDE94:
subs r0, 0x1
strh r0, [r1, 0x1A]
lsls r0, 16
cmp r0, 0
beq _080FDEA0
b _080FE16E
_080FDEA0:
movs r0, 0xB
strb r0, [r1, 0x4]
movs r0, 0
strb r0, [r1, 0x5]
b _080FE16E
.align 2, 0
_080FDEAC: .4byte gUnknown_3005E10
_080FDEB0: .4byte gUnknown_3007460
_080FDEB4:
cmp r6, 0
beq _080FDEBA
b _080FE16E
_080FDEBA:
ldr r2, _080FDED4 @ =gUnknown_3005E10
ldrb r0, [r2, 0x5]
strb r0, [r2, 0x4]
ldrb r1, [r2, 0x7]
cmp r1, 0
bne _080FDED8
lsls r0, 24
cmp r0, 0
beq _080FDECE
b _080FE16E
_080FDECE:
movs r0, 0x21
b _080FE0DA
.align 2, 0
_080FDED4: .4byte gUnknown_3005E10
_080FDED8:
cmp r1, 0x7
bne _080FDEDE
b _080FE16E
_080FDEDE:
movs r0, 0x5
strb r0, [r2, 0x4]
strb r0, [r2, 0x7]
b _080FE16E
_080FDEE6:
cmp r6, 0
beq _080FDEEC
b _080FE16E
_080FDEEC:
ldr r1, _080FDEF8 @ =gUnknown_3005E10
movs r0, 0xD
_080FDEF0:
strb r0, [r1, 0x5]
strb r0, [r1, 0x4]
b _080FE16E
.align 2, 0
_080FDEF8: .4byte gUnknown_3005E10
_080FDEFC:
cmp r6, 0
bne _080FDF20
ldr r4, _080FDF3C @ =gUnknown_3005E20
mov r0, sp
adds r1, r4, 0
bl rfu_getConnectParentStatus
lsls r0, 16
cmp r0, 0
bne _080FDF20
mov r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _080FDF20
adds r1, r4, 0
subs r1, 0x10
movs r0, 0xE
strb r0, [r1, 0x4]
_080FDF20:
ldr r1, _080FDF40 @ =gUnknown_3005E10
ldrh r0, [r1, 0x1A]
cmp r0, 0
bne _080FDF2A
b _080FE16E
_080FDF2A:
subs r0, 0x1
strh r0, [r1, 0x1A]
lsls r0, 16
cmp r0, 0
beq _080FDF36
b _080FE16E
_080FDF36:
movs r0, 0xE
strb r0, [r1, 0x4]
b _080FE16E
.align 2, 0
_080FDF3C: .4byte gUnknown_3005E20
_080FDF40: .4byte gUnknown_3005E10
_080FDF44:
cmp r6, 0
beq _080FDF4A
b _080FE16E
_080FDF4A:
ldr r4, _080FDF7C @ =gUnknown_3005E20
mov r0, sp
adds r1, r4, 0
bl rfu_getConnectParentStatus
lsls r0, 16
cmp r0, 0
beq _080FDF5C
b _080FE16E
_080FDF5C:
mov r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _080FDF80
adds r1, r4, 0
subs r1, 0x10
movs r0, 0x13
strb r0, [r1, 0x4]
movs r0, 0xF
strb r0, [r1, 0x5]
movs r0, 0x22
strh r0, [r1, 0x1E]
ldrb r0, [r1, 0x10]
strh r0, [r1, 0x14]
b _080FDFA0
.align 2, 0
_080FDF7C: .4byte gUnknown_3005E20
_080FDF80:
adds r1, r4, 0
subs r1, 0x10
strb r6, [r1, 0x5]
strb r6, [r1, 0x4]
movs r0, 0x23
strh r0, [r1, 0x1E]
mov r0, sp
ldrb r0, [r0]
strh r0, [r1, 0x14]
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _080FDFA0
movs r0, 0x3
strb r0, [r1, 0x7]
movs r0, 0x9
strb r0, [r1, 0x4]
_080FDFA0:
ldr r4, _080FDFB0 @ =gUnknown_3005E10
ldrb r0, [r4, 0x1E]
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0
strh r0, [r4, 0x1E]
b _080FE16E
.align 2, 0
_080FDFB0: .4byte gUnknown_3005E10
_080FDFB4:
cmp r6, 0
beq _080FDFBA
b _080FE16E
_080FDFBA:
ldr r2, _080FDFFC @ =gUnknown_3007460
ldr r3, [r2]
ldrb r0, [r3, 0x3]
movs r1, 0
strh r0, [r7, 0x14]
movs r0, 0x11
strb r0, [r7, 0x5]
strb r0, [r7, 0x4]
strb r1, [r7, 0x10]
ldrb r0, [r3, 0x3]
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _080FDFD8
b _080FE16E
_080FDFD8:
adds r1, r7, 0
movs r3, 0x1
_080FDFDC:
ldrb r0, [r1, 0x10]
adds r0, 0x1
strb r0, [r1, 0x10]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x3
bls _080FDFEC
b _080FE16E
_080FDFEC:
ldr r0, [r2]
ldrb r0, [r0, 0x3]
ldrb r4, [r7, 0x10]
asrs r0, r4
ands r0, r3
cmp r0, 0
beq _080FDFDC
b _080FE16E
.align 2, 0
_080FDFFC: .4byte gUnknown_3007460
_080FE000:
cmp r6, 0
bne _080FE01E
mov r0, sp
bl rfu_CHILD_getConnectRecoveryStatus
lsls r0, 16
cmp r0, 0
bne _080FE01E
mov r0, sp
ldrb r0, [r0]
cmp r0, 0x1
bhi _080FE01E
ldr r1, _080FE044 @ =gUnknown_3005E10
movs r0, 0x12
strb r0, [r1, 0x4]
_080FE01E:
ldr r2, _080FE044 @ =gUnknown_3005E10
ldrb r0, [r2, 0x10]
lsls r0, 1
adds r1, r2, 0
adds r1, 0x34
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, 0
bne _080FE032
b _080FE16E
_080FE032:
subs r0, 0x1
strh r0, [r1]
lsls r0, 16
cmp r0, 0
beq _080FE03E
b _080FE16E
_080FE03E:
movs r0, 0x12
strb r0, [r2, 0x4]
b _080FE16E
.align 2, 0
_080FE044: .4byte gUnknown_3005E10
_080FE048:
cmp r6, 0
beq _080FE04E
b _080FE16E
_080FE04E:
mov r0, sp
bl rfu_CHILD_getConnectRecoveryStatus
lsls r0, 16
cmp r0, 0
beq _080FE05C
b _080FE16E
_080FE05C:
mov r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _080FE078
ldr r1, _080FE074 @ =gUnknown_3005E10
movs r0, 0x13
strb r0, [r1, 0x4]
movs r0, 0x16
strb r0, [r1, 0x5]
movs r0, 0x32
strh r0, [r1, 0x1E]
b _080FE08C
.align 2, 0
_080FE074: .4byte gUnknown_3005E10
_080FE078:
ldr r4, _080FE0B4 @ =gUnknown_3005E10
strb r6, [r4, 0x5]
strb r6, [r4, 0x4]
ldr r0, _080FE0B8 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x3]
bl sub_80FE818
movs r0, 0x33
strh r0, [r4, 0x1E]
_080FE08C:
ldr r5, _080FE0B4 @ =gUnknown_3005E10
ldrb r0, [r5, 0x10]
lsls r0, 1
adds r1, r5, 0
adds r1, 0x34
adds r0, r1
movs r1, 0
movs r4, 0
strh r4, [r0]
adds r0, r5, 0
adds r0, 0x30
strb r1, [r0]
strb r1, [r5, 0xA]
ldrb r0, [r5, 0x1E]
movs r1, 0x1
bl sub_80FE7F0
strh r4, [r5, 0x1E]
b _080FE16E
.align 2, 0
_080FE0B4: .4byte gUnknown_3005E10
_080FE0B8: .4byte gUnknown_3007460
_080FE0BC:
cmp r6, 0
bne _080FE16E
ldr r5, _080FE0E4 @ =gUnknown_3005E10
ldrb r1, [r5, 0x5]
adds r0, r1, 0
cmp r0, 0x16
bne _080FE0E8
ldrb r0, [r5, 0x11]
strb r0, [r5, 0x4]
ldrb r0, [r5, 0x12]
strb r0, [r5, 0x5]
ldrb r0, [r5, 0x2]
movs r0, 0x1
strb r0, [r5, 0x2]
movs r0, 0x41
_080FE0DA:
movs r1, 0
bl sub_80FE7F0
b _080FE16E
.align 2, 0
_080FE0E4: .4byte gUnknown_3005E10
_080FE0E8:
cmp r0, 0xF
bne _080FE16E
strb r1, [r5, 0x4]
ldrb r0, [r5, 0x2]
movs r4, 0x1
strb r4, [r5, 0x2]
movs r0, 0x41
movs r1, 0
bl sub_80FE7F0
adds r1, r5, 0
adds r1, 0x24
ldrb r0, [r5, 0x10]
lsls r4, r0
ldrb r0, [r1]
orrs r4, r0
strb r4, [r1]
ldrb r0, [r5, 0x10]
lsls r0, 1
adds r1, 0x4
adds r0, r1
ldrh r1, [r5, 0x26]
movs r7, 0
strh r1, [r0]
ldrb r1, [r5, 0x10]
movs r0, 0x4
bl rfu_clearSlot
mov r4, sp
ldrb r0, [r5, 0x10]
movs r1, 0xE
bl rfu_NI_CHILD_setSendGameName
strb r0, [r4]
lsls r0, 24
cmp r0, 0
beq _080FE16E
strb r7, [r5, 0x5]
strb r7, [r5, 0x4]
bl sub_80FEAF4
ldr r0, _080FE158 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r0, 0x2]
ldrb r0, [r0, 0x3]
orrs r0, r1
bl sub_80FE818
mov r0, sp
ldrb r0, [r0]
strh r0, [r5, 0x14]
movs r0, 0x25
movs r1, 0x1
bl sub_80FE7F0
b _080FE16E
.align 2, 0
_080FE158: .4byte gUnknown_3007460
_080FE15C:
cmp r6, 0
bne _080FE16E
ldr r0, _080FE178 @ =gUnknown_3005E10
strb r6, [r0, 0x5]
strb r6, [r0, 0x4]
movs r0, 0x42
movs r1, 0
bl sub_80FE7F0
_080FE16E:
ldr r1, _080FE178 @ =gUnknown_3005E10
movs r0, 0x1
strb r0, [r1, 0xE]
b _080FE1CA
.align 2, 0
_080FE178: .4byte gUnknown_3005E10
_080FE17C:
cmp r6, 0x3
bne _080FE1CA
ldrb r0, [r7, 0xF]
cmp r0, 0
beq _080FE1CA
mov r3, r8
cmp r3, 0x24
beq _080FE194
cmp r3, 0x26
beq _080FE194
cmp r3, 0x27
bne _080FE1CA
_080FE194:
bl rfu_REQ_RFUStatus
bl rfu_waitREQComplete
mov r0, sp
bl rfu_getRFUStatus
mov r0, sp
ldrb r0, [r0]
cmp r0, 0
bne _080FE1CA
ldr r4, _080FE1E0 @ =gUnknown_3007460
ldr r0, [r4]
ldrb r0, [r0]
cmp r0, 0
bne _080FE1CA
bl rfu_getSTWIRecvBuffer
ldr r1, [r4]
ldrb r1, [r1, 0x2]
strb r1, [r0, 0x4]
movs r1, 0x1
strb r1, [r0, 0x5]
movs r0, 0x29
bl sub_80FD850
movs r6, 0
_080FE1CA:
mov r4, r8
cmp r4, 0x26
bne _080FE1D2
b _080FE2E6
_080FE1D2:
cmp r4, 0x26
bgt _080FE1E4
cmp r4, 0x10
bne _080FE1DC
b _080FE304
_080FE1DC:
b _080FE322
.align 2, 0
_080FE1E0: .4byte gUnknown_3007460
_080FE1E4:
mov r0, r8
cmp r0, 0x30
beq _080FE1F2
cmp r0, 0x3D
bne _080FE1F0
b _080FE304
_080FE1F0:
b _080FE322
_080FE1F2:
cmp r6, 0
beq _080FE1F8
b _080FE326
_080FE1F8:
bl rfu_getSTWIRecvBuffer
ldr r4, _080FE2A8 @ =gUnknown_3005E10
ldrb r0, [r0, 0x8]
strh r0, [r4, 0x14]
bl sub_80FE83C
adds r2, r4, 0
adds r2, 0x30
ldrb r1, [r2]
cmp r1, 0
beq _080FE24E
ldrb r0, [r4, 0x14]
adds r3, r1, 0
bics r3, r0
adds r0, r3, 0
strb r0, [r2]
movs r3, 0
adds r7, r4, 0
adds r1, r7, 0
movs r5, 0x1
adds r4, r1, 0
adds r4, 0x34
movs r2, 0
_080FE228:
ldrh r0, [r1, 0x14]
asrs r0, r3
ands r0, r5
cmp r0, 0
beq _080FE238
lsls r0, r3, 1
adds r0, r4
strh r2, [r0]
_080FE238:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080FE228
ldr r1, _080FE2A8 @ =gUnknown_3005E10
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _080FE24E
strb r0, [r1, 0x5]
strb r0, [r1, 0x4]
_080FE24E:
mov r3, sp
ldr r1, _080FE2A8 @ =gUnknown_3005E10
ldrb r2, [r1]
ldrb r0, [r1, 0x14]
ands r0, r2
strb r0, [r3]
movs r3, 0
adds r7, r1, 0
ldr r2, _080FE2AC @ =gUnknown_3007460
mov r1, sp
movs r5, 0x1
adds r4, r7, 0
_080FE266:
ldrb r0, [r1]
asrs r0, r3
ands r0, r5
cmp r0, 0
beq _080FE27A
ldrb r0, [r4, 0x1]
cmp r0, 0
beq _080FE27A
subs r0, 0x1
strb r0, [r7, 0x1]
_080FE27A:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080FE266
ldrb r1, [r7, 0x14]
ldrb r0, [r7]
bics r0, r1
strb r0, [r7]
ldrb r1, [r7, 0x7]
cmp r1, 0
beq _080FE2C4
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0xFF
bne _080FE2D6
cmp r1, 0x8
bne _080FE2B0
ldrh r0, [r7, 0x1C]
strh r0, [r7, 0x1A]
movs r0, 0x6
strb r0, [r7, 0x7]
b _080FE2C2
.align 2, 0
_080FE2A8: .4byte gUnknown_3005E10
_080FE2AC: .4byte gUnknown_3007460
_080FE2B0:
ldrb r0, [r7, 0x4]
subs r0, 0x6
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080FE2C4
movs r0, 0x1
strb r0, [r7, 0x7]
movs r0, 0x5
_080FE2C2:
strb r0, [r7, 0x4]
_080FE2C4:
ldr r0, [r2]
ldrb r0, [r0]
cmp r0, 0xFF
bne _080FE2D6
ldrb r0, [r7, 0x4]
cmp r0, 0
bne _080FE2D6
movs r0, 0xFF
strb r0, [r7, 0x6]
_080FE2D6:
ldrb r0, [r7, 0xE]
cmp r0, 0
bne _080FE322
movs r0, 0x40
movs r1, 0x1
bl sub_80FE7F0
b _080FE322
_080FE2E6:
bl sub_80FE6F0
ldr r0, _080FE300 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0xFF
beq _080FE322
movs r0, 0x50
movs r1, 0
bl sub_80FE7F0
b _080FE322
.align 2, 0
_080FE300: .4byte gUnknown_3007460
_080FE304:
cmp r6, 0
bne _080FE326
ldr r0, _080FE350 @ =gUnknown_3005E10
strb r6, [r0, 0xD]
strb r6, [r0, 0x1]
strb r6, [r0]
movs r1, 0xFF
strb r1, [r0, 0x6]
bl sub_80FEAF4
mov r4, r8
cmp r4, 0x3D
bne _080FE322
bl sub_80FD484
_080FE322:
cmp r6, 0
beq _080FE376
_080FE326:
ldr r7, _080FE350 @ =gUnknown_3005E10
mov r0, r8
cmp r0, 0x1C
bne _080FE358
cmp r6, 0
beq _080FE358
ldrb r0, [r7, 0x7]
cmp r0, 0x4
bne _080FE358
ldr r2, _080FE354 @ =gUnknown_3007460
ldr r1, [r2]
movs r0, 0x1
strb r0, [r1]
ldr r1, [r2]
movs r0, 0xF
strb r0, [r1, 0x2]
bl sub_80FE818
bl rfu_waitREQComplete
b _080FE388
.align 2, 0
_080FE350: .4byte gUnknown_3005E10
_080FE354: .4byte gUnknown_3007460
_080FE358:
movs r1, 0
mov r3, r8
strh r3, [r7, 0x14]
strh r6, [r7, 0x16]
ldrb r0, [r7, 0xE]
cmp r0, 0
beq _080FE36A
strb r1, [r7, 0x5]
strb r1, [r7, 0x4]
_080FE36A:
movs r0, 0xF0
movs r1, 0x2
bl sub_80FE7F0
bl sub_80FEAF4
_080FE376:
mov r4, r8
cmp r4, 0xFF
bne _080FE388
movs r0, 0xF2
movs r1, 0
bl sub_80FE7F0
bl sub_80FEAF4
_080FE388:
add sp, 0x4
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80FDC98
thumb_func_start sub_80FE394
sub_80FE394: @ 80FE394
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 16
lsrs r6, r0, 16
ldr r4, _080FE3C8 @ =gUnknown_3005E10
ldrb r7, [r4, 0xE]
movs r0, 0
strb r0, [r4, 0xE]
movs r0, 0x1
strb r0, [r4, 0xF]
ldr r0, _080FE3CC @ =gUnknown_3007460
ldr r0, [r0]
ldrb r5, [r0]
cmp r5, 0
bne _080FE3D0
adds r0, r6, 0
bl sub_80FD850
ldrb r0, [r4, 0x2]
cmp r0, 0x1
beq _080FE3E8
bl sub_80FEAF4
strb r5, [r4, 0xF]
strb r7, [r4, 0xE]
b _080FE40C
.align 2, 0
_080FE3C8: .4byte gUnknown_3005E10
_080FE3CC: .4byte gUnknown_3007460
_080FE3D0:
mov r0, sp
bl rfu_UNI_PARENT_getDRAC_ACK
lsls r0, 16
cmp r0, 0
bne _080FE3E8
mov r1, sp
ldrb r0, [r4, 0x3]
ldrb r1, [r1]
orrs r0, r1
ldrb r1, [r4, 0x3]
strb r0, [r4, 0x3]
_080FE3E8:
ldr r4, _080FE414 @ =gUnknown_3005E10
ldr r1, [r4, 0x44]
cmp r1, 0
beq _080FE404
adds r0, r6, 0
bl _call_via_r1
bl rfu_waitREQComplete
ldrb r0, [r4, 0x2]
cmp r0, 0x2
bne _080FE404
bl sub_80FEAF4
_080FE404:
ldr r1, _080FE414 @ =gUnknown_3005E10
movs r0, 0
strb r0, [r1, 0xF]
strb r7, [r1, 0xE]
_080FE40C:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FE414: .4byte gUnknown_3005E10
thumb_func_end sub_80FE394
thumb_func_start sub_80FE418
sub_80FE418: @ 80FE418
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r1, _080FE49C @ =gUnknown_3005E10
ldrb r0, [r1, 0x4]
subs r0, 0x5
lsls r0, 24
lsrs r0, 24
adds r3, r1, 0
cmp r0, 0x3
bls _080FE436
b _080FE62A
_080FE436:
ldr r0, _080FE4A0 @ =gUnknown_3007460
ldr r2, [r0]
ldrb r1, [r2, 0x2]
ldrb r0, [r3, 0xC]
adds r4, r1, 0
eors r4, r0
ands r4, r1
ldrb r0, [r2, 0x7]
bics r4, r0
mov r8, r4
strb r1, [r3, 0xC]
cmp r4, 0
beq _080FE45E
strh r4, [r3, 0x14]
movs r0, 0x10
movs r1, 0x1
str r3, [sp, 0x4]
bl sub_80FE7F0
ldr r3, [sp, 0x4]
_080FE45E:
movs r0, 0
str r0, [sp]
movs r6, 0
adds r7, r3, 0
movs r1, 0x24
adds r1, r3
mov r9, r1
_080FE46C:
movs r0, 0x80
lsls r0, 17
lsls r0, r6
lsrs r4, r0, 24
movs r5, 0
mov r0, r8
ands r0, r4
cmp r0, 0
beq _080FE4BE
lsls r1, r6, 1
adds r0, r7, 0
adds r0, 0x28
adds r1, r0
ldrh r0, [r7, 0x26]
strh r0, [r1]
mov r2, r9
ldrb r1, [r2]
adds r0, r4, 0
orrs r0, r1
strb r0, [r2]
adds r6, 0x1
mov r10, r6
b _080FE574
.align 2, 0
_080FE49C: .4byte gUnknown_3005E10
_080FE4A0: .4byte gUnknown_3007460
_080FE4A4:
ldrb r1, [r7]
adds r0, r4, 0
orrs r0, r1
strb r0, [r7]
ldrb r0, [r7, 0x1]
adds r0, 0x1
strb r0, [r7, 0x1]
ldr r0, [sp]
orrs r0, r4
str r0, [sp]
movs r0, 0x1
orrs r5, r0
b _080FE508
_080FE4BE:
mov r1, r9
ldrb r0, [r1]
ands r0, r4
adds r2, r6, 0x1
mov r10, r2
cmp r0, 0
beq _080FE574
ldr r0, _080FE518 @ =gUnknown_3007450
lsls r1, r6, 2
adds r1, r0
ldr r1, [r1]
ldrh r0, [r1, 0x34]
cmp r0, 0x46
bne _080FE524
adds r0, r1, 0
adds r0, 0x61
ldrb r0, [r0]
cmp r0, 0x1
bne _080FE53C
movs r5, 0x2
ldr r3, [r3, 0x20]
ldrh r2, [r3]
ldr r0, _080FE51C @ =0x0000ffff
cmp r2, r0
beq _080FE508
ldr r0, _080FE520 @ =gUnknown_3007460
ldr r0, [r0]
lsls r1, r6, 5
adds r0, r1
ldrh r0, [r0, 0x18]
ldr r1, _080FE51C @ =0x0000ffff
_080FE4FC:
cmp r0, r2
beq _080FE4A4
adds r3, 0x2
ldrh r2, [r3]
cmp r2, r1
bne _080FE4FC
_080FE508:
movs r0, 0x1
ands r0, r5
cmp r0, 0
bne _080FE53C
movs r0, 0x4
orrs r5, r0
b _080FE53C
.align 2, 0
_080FE518: .4byte gUnknown_3007450
_080FE51C: .4byte 0x0000ffff
_080FE520: .4byte gUnknown_3007460
_080FE524:
lsls r1, r6, 1
adds r0, r3, 0
adds r0, 0x28
adds r1, r0
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
ldr r1, _080FE5F8 @ =0x0000ffff
ands r0, r1
cmp r0, 0
bne _080FE53C
movs r5, 0x6
_080FE53C:
movs r0, 0x2
ands r0, r5
cmp r0, 0
beq _080FE562
mov r2, r9
ldrb r0, [r2]
bics r0, r4
movs r2, 0
mov r1, r9
strb r0, [r1]
lsls r0, r6, 1
adds r1, r7, 0
adds r1, 0x28
adds r0, r1
strh r2, [r0]
movs r0, 0x8
adds r1, r6, 0
bl rfu_clearSlot
_080FE562:
movs r0, 0x4
ands r5, r0
ldr r3, _080FE5FC @ =gUnknown_3005E10
cmp r5, 0
beq _080FE574
ldrb r1, [r7, 0xD]
adds r0, r4, 0
orrs r0, r1
strb r0, [r7, 0xD]
_080FE574:
mov r2, r10
lsls r0, r2, 24
lsrs r6, r0, 24
cmp r6, 0x3
bhi _080FE580
b _080FE46C
_080FE580:
ldr r4, [sp]
cmp r4, 0
beq _080FE592
ldr r0, _080FE5FC @ =gUnknown_3005E10
strh r4, [r0, 0x14]
movs r0, 0x11
movs r1, 0x1
bl sub_80FE7F0
_080FE592:
ldr r1, _080FE5FC @ =gUnknown_3005E10
ldrb r0, [r1, 0xD]
cmp r0, 0
beq _080FE5CE
movs r5, 0x1
ldr r0, _080FE600 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _080FE5B2
ldrb r0, [r1, 0x3]
ldrb r1, [r1]
ands r0, r1
cmp r0, r1
beq _080FE5B2
movs r5, 0
_080FE5B2:
cmp r5, 0
beq _080FE5CE
ldr r4, _080FE5FC @ =gUnknown_3005E10
ldrb r0, [r4, 0xD]
bl sub_80FE818
ldrb r0, [r4, 0xD]
movs r1, 0
strh r0, [r4, 0x14]
strb r1, [r4, 0xD]
movs r0, 0x12
movs r1, 0x1
bl sub_80FE7F0
_080FE5CE:
ldr r0, _080FE5FC @ =gUnknown_3005E10
adds r1, r0, 0
adds r1, 0x24
ldrb r1, [r1]
adds r3, r0, 0
cmp r1, 0
bne _080FE62A
ldrb r0, [r3, 0x4]
cmp r0, 0x8
bne _080FE62A
ldrb r0, [r3, 0x7]
cmp r0, 0
bne _080FE604
strb r0, [r3, 0x5]
strb r0, [r3, 0x4]
movs r0, 0x14
movs r1, 0
bl sub_80FE7F0
b _080FE62A
.align 2, 0
_080FE5F8: .4byte 0x0000ffff
_080FE5FC: .4byte gUnknown_3005E10
_080FE600: .4byte gUnknown_3007460
_080FE604:
cmp r0, 0x2
bne _080FE610
movs r0, 0x3
strb r0, [r3, 0x7]
movs r0, 0x9
b _080FE616
_080FE610:
movs r0, 0x1
strb r0, [r3, 0x7]
movs r0, 0x5
_080FE616:
strb r0, [r3, 0x4]
ldrb r0, [r3]
cmp r0, 0
beq _080FE62A
movs r0, 0
strh r0, [r3, 0x1A]
movs r0, 0x8
strb r0, [r3, 0x7]
movs r0, 0x5
strb r0, [r3, 0x4]
_080FE62A:
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_80FE418
thumb_func_start sub_80FE63C
sub_80FE63C: @ 80FE63C
push {r4-r6,lr}
ldr r1, _080FE6E0 @ =0x04000208
ldrh r0, [r1]
adds r6, r0, 0
movs r0, 0
strh r0, [r1]
ldr r4, _080FE6E4 @ =gUnknown_3005E10
ldrb r0, [r4, 0x4]
cmp r0, 0xF
bne _080FE6A0
ldrb r1, [r4, 0x10]
lsls r1, 1
adds r5, r4, 0
adds r5, 0x28
adds r1, r5
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
lsls r0, 16
cmp r0, 0
beq _080FE676
ldr r1, _080FE6E8 @ =gUnknown_3007450
ldrb r0, [r4, 0x10]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x27
bne _080FE6A0
_080FE676:
bl sub_80FEB14
movs r0, 0x18
strb r0, [r4, 0x4]
ldrb r1, [r4, 0x10]
movs r0, 0x4
bl rfu_clearSlot
adds r2, r4, 0
adds r2, 0x24
movs r1, 0x1
ldrb r0, [r4, 0x10]
lsls r1, r0
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
ldrb r0, [r4, 0x10]
lsls r0, 1
adds r0, r5
movs r1, 0
strh r1, [r0]
_080FE6A0:
ldr r0, _080FE6E0 @ =0x04000208
strh r6, [r0]
ldr r5, _080FE6E4 @ =gUnknown_3005E10
ldrb r0, [r5, 0x4]
cmp r0, 0x18
bne _080FE6DA
ldrb r0, [r5, 0x2]
cmp r0, 0x1
bne _080FE6B6
bl sub_80FEB14
_080FE6B6:
ldrb r0, [r5, 0x2]
adds r4, r0, 0
cmp r4, 0
bne _080FE6DA
strb r4, [r5, 0x5]
strb r4, [r5, 0x4]
ldr r0, _080FE6EC @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r0, 0x2]
ldrb r0, [r0, 0x3]
orrs r0, r1
bl sub_80FE818
strh r4, [r5, 0x14]
movs r0, 0x25
movs r1, 0x1
bl sub_80FE7F0
_080FE6DA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FE6E0: .4byte 0x04000208
_080FE6E4: .4byte gUnknown_3005E10
_080FE6E8: .4byte gUnknown_3007450
_080FE6EC: .4byte gUnknown_3007460
thumb_func_end sub_80FE63C
thumb_func_start sub_80FE6F0
sub_80FE6F0: @ 80FE6F0
push {r4,r5,lr}
ldr r5, _080FE744 @ =gUnknown_3005E10
ldrb r0, [r5, 0x4]
cmp r0, 0xF
bne _080FE73C
ldr r1, _080FE748 @ =gUnknown_3007450
ldrb r2, [r5, 0x10]
lsls r0, r2, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x26
bne _080FE73C
movs r4, 0
strb r4, [r5, 0x5]
strb r4, [r5, 0x4]
movs r0, 0x4
adds r1, r2, 0
bl rfu_clearSlot
adds r2, r5, 0
adds r2, 0x24
movs r1, 0x1
ldrb r0, [r5, 0x10]
lsls r1, r0
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
ldrb r0, [r5, 0x10]
lsls r0, 1
adds r1, r5, 0
adds r1, 0x28
adds r0, r1
strh r4, [r0]
movs r0, 0x24
movs r1, 0
bl sub_80FE7F0
_080FE73C:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FE744: .4byte gUnknown_3005E10
_080FE748: .4byte gUnknown_3007450
thumb_func_end sub_80FE6F0
thumb_func_start sub_80FE74C
sub_80FE74C: @ 80FE74C
push {lr}
ldr r1, _080FE774 @ =gUnknown_3005E10
ldrb r0, [r1, 0x6]
cmp r0, 0
bne _080FE770
ldrb r0, [r1, 0xA]
cmp r0, 0x1
bne _080FE770
ldrb r0, [r1, 0x4]
strb r0, [r1, 0x11]
ldrb r0, [r1, 0x5]
strb r0, [r1, 0x12]
movs r0, 0x10
strb r0, [r1, 0x4]
movs r0, 0x11
strb r0, [r1, 0x5]
movs r0, 0x2
strb r0, [r1, 0xA]
_080FE770:
pop {r0}
bx r0
.align 2, 0
_080FE774: .4byte gUnknown_3005E10
thumb_func_end sub_80FE74C
thumb_func_start sub_80FE778
sub_80FE778: @ 80FE778
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r6, 0
movs r5, 0
ldr r1, _080FE7E4 @ =gUnknown_3007460
ldr r0, [r1]
ldrb r0, [r0, 0x8]
cmp r6, r0
bcs _080FE7D4
mov r8, r0
ldr r0, _080FE7E8 @ =gUnknown_3005E10
mov r10, r0
mov r9, r1
_080FE798:
mov r1, r10
ldr r3, [r1, 0x20]
ldrh r2, [r3]
adds r0, r5, 0x1
mov r12, r0
ldr r1, _080FE7EC @ =0x0000ffff
cmp r2, r1
beq _080FE7CA
mov r1, r9
ldr r0, [r1]
lsls r1, r5, 5
adds r0, r1
ldrh r4, [r0, 0x18]
ldr r7, _080FE7EC @ =0x0000ffff
movs r1, 0x1
lsls r1, r5
_080FE7B8:
cmp r4, r2
bne _080FE7C2
orrs r6, r1
lsls r0, r6, 24
lsrs r6, r0, 24
_080FE7C2:
adds r3, 0x2
ldrh r2, [r3]
cmp r2, r7
bne _080FE7B8
_080FE7CA:
mov r1, r12
lsls r0, r1, 24
lsrs r5, r0, 24
cmp r5, r8
bcc _080FE798
_080FE7D4:
adds r0, r6, 0
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FE7E4: .4byte gUnknown_3007460
_080FE7E8: .4byte gUnknown_3005E10
_080FE7EC: .4byte 0x0000ffff
thumb_func_end sub_80FE778
thumb_func_start sub_80FE7F0
sub_80FE7F0: @ 80FE7F0
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r4, _080FE814 @ =gUnknown_3005E10
ldr r2, [r4, 0x40]
cmp r2, 0
beq _080FE806
bl _call_via_r2
_080FE806:
movs r0, 0
strh r0, [r4, 0x16]
strh r0, [r4, 0x14]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FE814: .4byte gUnknown_3005E10
thumb_func_end sub_80FE7F0
thumb_func_start sub_80FE818
sub_80FE818: @ 80FE818
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
ldr r4, _080FE838 @ =gUnknown_3005E10
ldrb r5, [r4, 0xE]
movs r1, 0x1
strb r1, [r4, 0xE]
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
strb r5, [r4, 0xE]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FE838: .4byte gUnknown_3005E10
thumb_func_end sub_80FE818
thumb_func_start sub_80FE83C
sub_80FE83C: @ 80FE83C
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r0, _080FE908 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080FE884
movs r4, 0
_080FE84E:
ldr r1, _080FE90C @ =gUnknown_3007450
lsls r0, r4, 2
adds r0, r1
ldr r2, [r0]
ldrh r0, [r2]
movs r3, 0x80
lsls r3, 8
adds r1, r3, 0
ands r0, r1
cmp r0, 0
beq _080FE87A
ldrb r1, [r2, 0x1A]
adds r0, r5, 0
ands r0, r1
cmp r0, 0
beq _080FE87A
adds r2, r1, 0
bics r2, r5
movs r0, 0x20
adds r1, r4, 0
bl rfu_changeSendTarget
_080FE87A:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080FE84E
_080FE884:
ldr r0, _080FE908 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0
beq _080FE8C2
movs r4, 0
_080FE890:
ldr r1, _080FE90C @ =gUnknown_3007450
lsls r0, r4, 2
adds r0, r1
ldr r2, [r0]
ldrh r0, [r2, 0x34]
movs r3, 0x80
lsls r3, 8
adds r1, r3, 0
ands r0, r1
cmp r0, 0
beq _080FE8B8
adds r0, r2, 0
adds r0, 0x4E
ldrb r0, [r0]
ands r0, r5
cmp r0, 0
beq _080FE8B8
adds r0, r4, 0
bl rfu_NI_stopReceivingData
_080FE8B8:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080FE890
_080FE8C2:
ldr r0, _080FE908 @ =gUnknown_3007460
ldr r3, [r0]
ldrb r2, [r3, 0x6]
cmp r2, 0
beq _080FE900
mvns r1, r5
adds r0, r1, 0
ands r0, r2
strb r0, [r3, 0x6]
movs r4, 0
ldr r7, _080FE910 @ =gUnknown_3007440
ldr r6, _080FE914 @ =0x00008024
_080FE8DA:
lsls r0, r4, 2
adds r0, r7
ldr r2, [r0]
ldrh r0, [r2]
cmp r0, r6
bne _080FE8F6
ldrb r3, [r2, 0x3]
adds r0, r5, 0
ands r0, r3
cmp r0, 0
beq _080FE8F6
adds r0, r1, 0
ands r0, r3
strb r0, [r2, 0x3]
_080FE8F6:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080FE8DA
_080FE900:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FE908: .4byte gUnknown_3007460
_080FE90C: .4byte gUnknown_3007450
_080FE910: .4byte gUnknown_3007440
_080FE914: .4byte 0x00008024
thumb_func_end sub_80FE83C
thumb_func_start sub_80FE918
sub_80FE918: @ 80FE918
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
ldr r0, _080FEA04 @ =gUnknown_3005E10
ldrh r0, [r0, 0x18]
cmp r0, 0
beq _080FE9F4
ldr r0, _080FEA08 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0
beq _080FE9B8
movs r6, 0
_080FE938:
ldr r3, _080FEA0C @ =gUnknown_3007450
lsls r2, r6, 2
adds r0, r2, r3
ldr r0, [r0]
ldrh r1, [r0]
movs r4, 0x80
lsls r4, 8
adds r0, r4, 0
ands r1, r0
adds r7, r2, 0
adds r0, r6, 0x1
mov r9, r0
cmp r1, 0
beq _080FE9AE
movs r5, 0
movs r4, 0
movs r1, 0x1
mov r8, r1
mov r10, r3
_080FE95E:
adds r0, r7, r3
ldr r0, [r0]
ldrb r0, [r0, 0x1A]
asrs r0, r4
mov r1, r8
ands r0, r1
cmp r0, 0
beq _080FE988
lsls r0, r4, 2
adds r0, r3
ldr r0, [r0]
ldr r1, _080FEA04 @ =gUnknown_3005E10
ldrh r0, [r0, 0x2]
ldrh r1, [r1, 0x18]
cmp r0, r1
bls _080FE988
mov r0, r8
lsls r0, r4
orrs r5, r0
lsls r0, r5, 24
lsrs r5, r0, 24
_080FE988:
cmp r5, 0
beq _080FE9A4
mov r1, r10
adds r0, r7, r1
ldr r0, [r0]
ldrb r0, [r0, 0x1A]
adds r2, r5, 0
eors r2, r0
movs r0, 0x20
adds r1, r6, 0
str r3, [sp]
bl rfu_changeSendTarget
ldr r3, [sp]
_080FE9A4:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080FE95E
_080FE9AE:
mov r3, r9
lsls r0, r3, 24
lsrs r6, r0, 24
cmp r6, 0x3
bls _080FE938
_080FE9B8:
ldr r0, _080FEA08 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x5]
cmp r0, 0
beq _080FE9F4
movs r6, 0
_080FE9C4:
ldr r1, _080FEA0C @ =gUnknown_3007450
lsls r0, r6, 2
adds r0, r1
ldr r2, [r0]
ldrh r0, [r2, 0x34]
movs r4, 0x80
lsls r4, 8
adds r1, r4, 0
ands r0, r1
cmp r0, 0
beq _080FE9EA
ldr r1, _080FEA04 @ =gUnknown_3005E10
ldrh r0, [r2, 0x36]
ldrh r1, [r1, 0x18]
cmp r0, r1
bls _080FE9EA
adds r0, r6, 0
bl rfu_NI_stopReceivingData
_080FE9EA:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
cmp r6, 0x3
bls _080FE9C4
_080FE9F4:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FEA04: .4byte gUnknown_3005E10
_080FEA08: .4byte gUnknown_3007460
_080FEA0C: .4byte gUnknown_3007450
thumb_func_end sub_80FE918
thumb_func_start sub_80FEA10
sub_80FEA10: @ 80FEA10
push {lr}
ldr r1, _080FEA20 @ =gUnknown_3005E10
str r0, [r1, 0x44]
ldr r0, _080FEA24 @ =sub_80FE394
bl rfu_setMSCCallback
pop {r0}
bx r0
.align 2, 0
_080FEA20: .4byte gUnknown_3005E10
_080FEA24: .4byte sub_80FE394
thumb_func_end sub_80FEA10
thumb_func_start sub_80FEA28
sub_80FEA28: @ 80FEA28
ldr r1, _080FEA30 @ =gUnknown_3005E10
str r0, [r1, 0x40]
bx lr
.align 2, 0
_080FEA30: .4byte gUnknown_3005E10
thumb_func_end sub_80FEA28
thumb_func_start sub_80FEA34
sub_80FEA34: @ 80FEA34
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
lsls r1, 16
lsrs r5, r1, 16
ldr r0, _080FEA58 @ =gUnknown_3005E10
ldrb r1, [r0, 0x9]
adds r3, r0, 0
cmp r1, 0
beq _080FEA5C
cmp r4, 0
bne _080FEA5C
adds r0, 0x30
ldrb r0, [r0]
cmp r0, 0
beq _080FEA5C
movs r0, 0x5
b _080FEA6C
.align 2, 0
_080FEA58: .4byte gUnknown_3005E10
_080FEA5C:
ldr r2, _080FEA74 @ =0x04000208
ldrh r1, [r2]
movs r0, 0
strh r0, [r2]
strb r4, [r3, 0x9]
strh r5, [r3, 0x32]
strh r1, [r2]
movs r0, 0
_080FEA6C:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080FEA74: .4byte 0x04000208
thumb_func_end sub_80FEA34
thumb_func_start sub_80FEA78
sub_80FEA78: @ 80FEA78
push {lr}
lsls r0, 16
lsrs r2, r0, 16
ldr r0, _080FEA94 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r0, 0x4]
ldrb r0, [r0, 0x5]
orrs r0, r1
cmp r0, 0
bne _080FEA9C
ldr r0, _080FEA98 @ =gUnknown_3005E10
strh r2, [r0, 0x18]
movs r0, 0
b _080FEAAC
.align 2, 0
_080FEA94: .4byte gUnknown_3007460
_080FEA98: .4byte gUnknown_3005E10
_080FEA9C:
ldr r1, _080FEAB0 @ =gUnknown_3005E10
movs r0, 0x6
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x6
_080FEAAC:
pop {r1}
bx r1
.align 2, 0
_080FEAB0: .4byte gUnknown_3005E10
thumb_func_end sub_80FEA78
thumb_func_start sub_80FEAB4
sub_80FEAB4: @ 80FEAB4
push {lr}
lsls r0, 24
lsrs r2, r0, 24
adds r3, r2, 0
ldr r1, _080FEADC @ =gUnknown_3005E10
ldrb r0, [r1, 0x4]
subs r0, 0x9
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bhi _080FEAE0
movs r0, 0x7
strh r0, [r1, 0x14]
movs r0, 0xF3
movs r1, 0x1
bl sub_80FE7F0
movs r0, 0x7
b _080FEAEE
.align 2, 0
_080FEADC: .4byte gUnknown_3005E10
_080FEAE0:
cmp r2, 0
beq _080FEAEA
movs r0, 0x1
strb r0, [r1, 0xB]
b _080FEAEC
_080FEAEA:
strb r3, [r1, 0xB]
_080FEAEC:
movs r0, 0
_080FEAEE:
pop {r1}
bx r1
thumb_func_end sub_80FEAB4
thumb_func_start sub_80FEAF4
sub_80FEAF4: @ 80FEAF4
push {lr}
ldr r1, _080FEB10 @ =gUnknown_3005E10
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _080FEB0C
ldrb r0, [r1, 0x2]
movs r0, 0
strb r0, [r1, 0x2]
movs r0, 0x45
movs r1, 0
bl sub_80FE7F0
_080FEB0C:
pop {r0}
bx r0
.align 2, 0
_080FEB10: .4byte gUnknown_3005E10
thumb_func_end sub_80FEAF4
thumb_func_start sub_80FEB14
sub_80FEB14: @ 80FEB14
push {lr}
ldr r1, _080FEB28 @ =gUnknown_3005E10
ldrb r0, [r1, 0x2]
cmp r0, 0
bne _080FEB2C
movs r0, 0x45
movs r1, 0
bl sub_80FE7F0
b _080FEB38
.align 2, 0
_080FEB28: .4byte gUnknown_3005E10
_080FEB2C:
ldrb r0, [r1, 0x2]
cmp r0, 0x1
bne _080FEB38
ldrb r0, [r1, 0x2]
movs r0, 0x2
strb r0, [r1, 0x2]
_080FEB38:
pop {r0}
bx r0
thumb_func_end sub_80FEB14
thumb_func_start sub_80FEB3C
sub_80FEB3C: @ 80FEB3C
push {lr}
ldr r0, _080FEB5C @ =gUnknown_3005E10
ldrb r1, [r0, 0x7]
adds r2, r0, 0
cmp r1, 0
beq _080FEBA6
ldrb r0, [r2, 0x4]
subs r0, 0x5
cmp r0, 0x6
bhi _080FEBA6
lsls r0, 2
ldr r1, _080FEB60 @ =_080FEB64
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FEB5C: .4byte gUnknown_3005E10
_080FEB60: .4byte _080FEB64
.align 2, 0
_080FEB64:
.4byte _080FEB80
.4byte _080FEB88
.4byte _080FEB92
.4byte _080FEB92
.4byte _080FEB98
.4byte _080FEB98
.4byte _080FEB9E
_080FEB80:
movs r0, 0x3
strb r0, [r2, 0x7]
movs r0, 0x9
b _080FEBA4
_080FEB88:
movs r0, 0x2
strb r0, [r2, 0x7]
movs r0, 0x1
strh r0, [r2, 0x1A]
b _080FEBA6
_080FEB92:
movs r0, 0x2
strb r0, [r2, 0x7]
b _080FEBA6
_080FEB98:
movs r0, 0x28
strh r0, [r2, 0x1A]
b _080FEBA6
_080FEB9E:
movs r0, 0x28
strh r0, [r2, 0x1A]
movs r0, 0xA
_080FEBA4:
strb r0, [r2, 0x4]
_080FEBA6:
pop {r0}
bx r0
thumb_func_end sub_80FEB3C
thumb_func_start sub_80FEBAC
sub_80FEBAC: @ 80FEBAC
push {r4-r6,lr}
mov r6, r8
push {r6}
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
bl ResetTasks
ldr r0, _080FEC00 @ =sub_80FEC54
movs r1, 0
bl CreateTask
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r1, _080FEC04 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
strh r5, [r0, 0xA]
adds r0, r4, 0
movs r1, 0x2
adds r2, r6, 0
bl SetWordTaskArg
adds r0, r4, 0
movs r1, 0x4
mov r2, r8
bl SetWordTaskArg
ldr r0, _080FEC08 @ =sub_80FEC0C
bl SetMainCallback2
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FEC00: .4byte sub_80FEC54
_080FEC04: .4byte gTasks
_080FEC08: .4byte sub_80FEC0C
thumb_func_end sub_80FEBAC
thumb_func_start sub_80FEC0C
sub_80FEC0C: @ 80FEC0C
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80FEC0C
thumb_func_start sub_80FEC24
sub_80FEC24: @ 80FEC24
push {lr}
bl TransferPlttBuffer
bl LoadOam
bl ProcessSpriteCopyRequests
pop {r0}
bx r0
thumb_func_end sub_80FEC24
thumb_func_start sub_80FEC38
sub_80FEC38: @ 80FEC38
lsls r0, 24
lsrs r0, 24
ldr r3, _080FEC50 @ =gTasks
lsls r2, r0, 2
adds r2, r0
lsls r2, 3
adds r2, r3
str r1, [r2]
movs r0, 0
strh r0, [r2, 0x8]
bx lr
.align 2, 0
_080FEC50: .4byte gTasks
thumb_func_end sub_80FEC38
thumb_func_start sub_80FEC54
sub_80FEC54: @ 80FEC54
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
bl IsUpdateLinkStateCBActive
cmp r0, 0
bne _080FEC70
_080FEC62:
adds r0, r4, 0
bl sub_80FED80
lsls r0, 24
cmp r0, 0
bne _080FEC62
b _080FEC7E
_080FEC70:
adds r0, r4, 0
bl sub_80FED80
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080FEC86
_080FEC7E:
ldr r1, _080FEC8C @ =sub_80FEC90
adds r0, r4, 0
bl sub_80FEC38
_080FEC86:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FEC8C: .4byte sub_80FEC90
thumb_func_end sub_80FEC54
thumb_func_start sub_80FEC90
sub_80FEC90: @ 80FEC90
push {r4-r6,lr}
sub sp, 0x4
lsls r0, 24
lsrs r4, r0, 24
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
ldr r1, _080FECB4 @ =gTasks+0x8
adds r6, r0, r1
movs r0, 0
ldrsh r5, [r6, r0]
cmp r5, 0x1
beq _080FECEC
cmp r5, 0x1
bgt _080FECB8
cmp r5, 0
beq _080FECC2
b _080FED6E
.align 2, 0
_080FECB4: .4byte gTasks+0x8
_080FECB8:
cmp r5, 0x2
beq _080FED28
cmp r5, 0x3
beq _080FED38
b _080FED6E
_080FECC2:
ldr r0, _080FECE8 @ =sub_80FEC24
bl SetVBlankCallback
movs r4, 0x1
negs r4, r4
adds r0, r4, 0
movs r1, 0x10
movs r2, 0
bl BlendPalettes
str r5, [sp]
adds r0, r4, 0
adds r1, r4, 0
movs r2, 0x10
movs r3, 0
bl BeginNormalPaletteFade
b _080FED20
.align 2, 0
_080FECE8: .4byte sub_80FEC24
_080FECEC:
bl sub_80FF028
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0x17
bne _080FED10
movs r1, 0x1
negs r1, r1
movs r0, 0
str r0, [sp]
adds r0, r1, 0
movs r2, 0
movs r3, 0x10
bl BeginNormalPaletteFade
movs r0, 0x3
strh r0, [r6]
b _080FED6E
_080FED10:
cmp r4, 0
beq _080FED6E
movs r0, 0x5
bl PlaySE
adds r0, r4, 0
bl sub_8100134
_080FED20:
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
b _080FED6E
_080FED28:
bl sub_810014C
lsls r0, 24
cmp r0, 0
bne _080FED6E
movs r0, 0x1
strh r0, [r6]
b _080FED6E
_080FED38:
ldr r0, _080FED78 @ =gPaletteFade
ldrb r1, [r0, 0x7]
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080FED6E
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, 0xE
bne _080FED50
bl sub_80FEF4C
_080FED50:
movs r1, 0x2
ldrsh r0, [r6, r1]
cmp r0, 0
bne _080FED62
ldr r0, _080FED7C @ =0x0000082d
bl FlagSet
bl sub_80FEF2C
_080FED62:
adds r0, r4, 0
movs r1, 0x4
bl GetWordTaskArg
bl sub_80FEE24
_080FED6E:
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FED78: .4byte gPaletteFade
_080FED7C: .4byte 0x0000082d
thumb_func_end sub_80FEC90
thumb_func_start sub_80FED80
sub_80FED80: @ 80FED80
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _080FEDA4 @ =gTasks+0x8
adds r6, r0, r1
movs r1, 0
ldrsh r0, [r6, r1]
cmp r0, 0x4
bhi _080FEE12
lsls r0, 2
ldr r1, _080FEDA8 @ =_080FEDAC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FEDA4: .4byte gTasks+0x8
_080FEDA8: .4byte _080FEDAC
.align 2, 0
_080FEDAC:
.4byte _080FEDC0
.4byte _080FEDD4
.4byte _080FEDDA
.4byte _080FEDEE
.4byte _080FEE06
_080FEDC0:
movs r0, 0
bl SetVBlankCallback
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetPaletteFade
b _080FEE16
_080FEDD4:
bl sub_80BDE44
b _080FEDF2
_080FEDDA:
ldrb r4, [r6, 0x2]
adds r0, r5, 0
movs r1, 0x2
bl GetWordTaskArg
adds r1, r0, 0
adds r0, r4, 0
bl sub_80FEF6C
b _080FEDF2
_080FEDEE:
bl sub_80FFF80
_080FEDF2:
lsls r0, 24
cmp r0, 0
bne _080FEE16
adds r0, r5, 0
movs r1, 0x4
bl GetWordTaskArg
bl sub_80FEE24
b _080FEE16
_080FEE06:
bl sub_80FFF98
lsls r0, 24
cmp r0, 0
beq _080FEE16
b _080FEE1C
_080FEE12:
movs r0, 0
b _080FEE1E
_080FEE16:
ldrh r0, [r6]
adds r0, 0x1
strh r0, [r6]
_080FEE1C:
movs r0, 0x1
_080FEE1E:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80FED80
thumb_func_start sub_80FEE24
sub_80FEE24: @ 80FEE24
push {r4,lr}
adds r4, r0, 0
bl sub_80BDE70
bl sub_80FF010
bl sub_810011C
bl FreeAllWindowBuffers
adds r0, r4, 0
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FEE24
thumb_func_start sub_80FEE44
sub_80FEE44: @ 80FEE44
push {lr}
ldr r0, _080FEE58 @ =gSpecialVar_0x8004
ldrh r0, [r0]
cmp r0, 0xE
bhi _080FEF12
lsls r0, 2
ldr r1, _080FEE5C @ =_080FEE60
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FEE58: .4byte gSpecialVar_0x8004
_080FEE5C: .4byte _080FEE60
.align 2, 0
_080FEE60:
.4byte _080FEE9C
.4byte _080FEEB0
.4byte _080FEEC4
.4byte _080FEED8
.4byte _080FEEF4
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEF12
.4byte _080FEEEC
_080FEE9C:
ldr r0, _080FEEA8 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEAC @ =0x00002ca0
adds r1, r0, r2
b _080FEF08
.align 2, 0
_080FEEA8: .4byte gSaveBlock1Ptr
_080FEEAC: .4byte 0x00002ca0
_080FEEB0:
ldr r0, _080FEEBC @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEC0 @ =0x00002cac
adds r1, r0, r2
b _080FEF08
.align 2, 0
_080FEEBC: .4byte gSaveBlock1Ptr
_080FEEC0: .4byte 0x00002cac
_080FEEC4:
ldr r0, _080FEED0 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEED4 @ =0x00002cb8
adds r1, r0, r2
b _080FEF08
.align 2, 0
_080FEED0: .4byte gSaveBlock1Ptr
_080FEED4: .4byte 0x00002cb8
_080FEED8:
ldr r0, _080FEEE4 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r2, _080FEEE8 @ =0x00002cc4
adds r1, r0, r2
b _080FEF08
.align 2, 0
_080FEEE4: .4byte gSaveBlock1Ptr
_080FEEE8: .4byte 0x00002cc4
_080FEEEC:
bl sub_8143DA8
adds r1, r0, 0
b _080FEF08
_080FEEF4:
ldr r2, _080FEF18 @ =gSaveBlock1Ptr
ldr r0, _080FEF1C @ =gSpecialVar_0x8005
ldrh r1, [r0]
lsls r0, r1, 3
adds r0, r1
lsls r0, 2
ldr r1, _080FEF20 @ =0x00002cd0
adds r0, r1
ldr r1, [r2]
adds r1, r0
_080FEF08:
ldr r0, _080FEF24 @ =gSpecialVar_0x8004
ldrb r0, [r0]
ldr r2, _080FEF28 @ =sub_80568C4
bl sub_80FEBAC
_080FEF12:
pop {r0}
bx r0
.align 2, 0
_080FEF18: .4byte gSaveBlock1Ptr
_080FEF1C: .4byte gSpecialVar_0x8005
_080FEF20: .4byte 0x00002cd0
_080FEF24: .4byte gSpecialVar_0x8004
_080FEF28: .4byte sub_80568C4
thumb_func_end sub_80FEE44
thumb_func_start sub_80FEF2C
sub_80FEF2C: @ 80FEF2C
push {r4,lr}
ldr r4, _080FEF44 @ =gSpecialVar_0x8004
ldr r0, _080FEF48 @ =gUnknown_843F29C
movs r1, 0x4
bl sub_80FFEDC
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FEF44: .4byte gSpecialVar_0x8004
_080FEF48: .4byte gUnknown_843F29C
thumb_func_end sub_80FEF2C
thumb_func_start sub_80FEF4C
sub_80FEF4C: @ 80FEF4C
push {r4,lr}
ldr r4, _080FEF64 @ =gSpecialVar_0x8004
ldr r0, _080FEF68 @ =gUnknown_843F2A4
movs r1, 0x4
bl sub_80FFEDC
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FEF64: .4byte gSpecialVar_0x8004
_080FEF68: .4byte gUnknown_843F2A4
thumb_func_end sub_80FEF4C
thumb_func_start sub_80FEF6C
sub_80FEF6C: @ 80FEF6C
push {r4-r6,lr}
adds r6, r1, 0
lsls r0, 24
lsrs r5, r0, 24
ldr r4, _080FEF88 @ =gUnknown_203ACE8
movs r0, 0x2C
bl Alloc
str r0, [r4]
cmp r0, 0
bne _080FEF8C
movs r0, 0
b _080FF006
.align 2, 0
_080FEF88: .4byte gUnknown_203ACE8
_080FEF8C:
movs r1, 0
strb r5, [r0]
ldr r0, [r4]
str r6, [r0, 0x14]
strb r1, [r0, 0x4]
ldr r0, [r4]
strb r1, [r0, 0x5]
ldr r0, [r4]
strb r1, [r0, 0x6]
ldr r0, [r4]
strb r1, [r0, 0x9]
adds r0, r5, 0
bl sub_80FFF1C
lsls r0, 24
lsrs r0, 24
ldr r3, [r4]
ldr r2, _080FF00C @ =gUnknown_843F2AC
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r2
ldrb r2, [r1, 0x1]
strb r2, [r3, 0x2]
ldr r2, [r4]
ldrb r1, [r1, 0x2]
strb r1, [r2, 0x3]
ldr r1, [r4]
ldrb r3, [r1, 0x2]
ldrb r2, [r1, 0x3]
adds r5, r3, 0
muls r5, r2
adds r2, r5, 0
strb r2, [r1, 0x7]
ldr r1, [r4]
strb r0, [r1, 0x1]
ldr r1, [r4]
ldrb r0, [r1, 0x7]
cmp r0, 0x9
bls _080FEFE0
movs r0, 0x9
strb r0, [r1, 0x7]
_080FEFE0:
ldr r0, [r4]
adds r1, r0, 0
adds r1, 0x18
ldrb r2, [r0, 0x7]
adds r0, r6, 0
bl CpuSet
bl sub_80BDF38
ldr r2, [r4]
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
adds r0, 0x1
strb r0, [r2, 0xD]
movs r0, 0x1
_080FF006:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080FF00C: .4byte gUnknown_843F2AC
thumb_func_end sub_80FEF6C
thumb_func_start sub_80FF010
sub_80FF010: @ 80FF010
push {lr}
ldr r0, _080FF024 @ =gUnknown_203ACE8
ldr r0, [r0]
cmp r0, 0
beq _080FF01E
bl Free
_080FF01E:
pop {r0}
bx r0
.align 2, 0
_080FF024: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF010
thumb_func_start sub_80FF028
sub_80FF028: @ 80FF028
push {lr}
ldr r0, _080FF040 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x4]
cmp r0, 0x6
bhi _080FF092
lsls r0, 2
ldr r1, _080FF044 @ =_080FF048
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FF040: .4byte gUnknown_203ACE8
_080FF044: .4byte _080FF048
.align 2, 0
_080FF048:
.4byte _080FF064
.4byte _080FF06A
.4byte _080FF070
.4byte _080FF076
.4byte _080FF07C
.4byte _080FF082
.4byte _080FF088
_080FF064:
bl sub_80FF098
b _080FF08C
_080FF06A:
bl sub_80FF20C
b _080FF08C
_080FF070:
bl sub_80FF360
b _080FF08C
_080FF076:
bl sub_80FF41C
b _080FF08C
_080FF07C:
bl sub_80FF4A8
b _080FF08C
_080FF082:
bl sub_80FF544
b _080FF08C
_080FF088:
bl sub_80FF4F0
_080FF08C:
lsls r0, 16
lsrs r0, 16
b _080FF094
_080FF092:
movs r0, 0
_080FF094:
pop {r1}
bx r1
thumb_func_end sub_80FF028
thumb_func_start sub_80FF098
sub_80FF098: @ 80FF098
push {r4-r7,lr}
ldr r0, _080FF0C0 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080FF0E4
ldr r1, _080FF0C4 @ =gUnknown_203ACE8
ldr r3, [r1]
movs r2, 0
movs r0, 0x2
strb r0, [r3, 0x4]
ldr r0, [r1]
strb r2, [r0, 0xA]
ldr r0, [r1]
strb r2, [r0, 0xB]
ldr r0, [r1]
strb r2, [r0, 0xC]
movs r0, 0x9
b _080FF1FC
.align 2, 0
_080FF0C0: .4byte gMain
_080FF0C4: .4byte gUnknown_203ACE8
_080FF0C8:
movs r0, 0x20
ands r0, r1
cmp r0, 0
bne _080FF194
movs r0, 0x80
ands r0, r1
cmp r0, 0
bne _080FF184
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080FF174
movs r0, 0
b _080FF1FC
_080FF0E4:
movs r0, 0x2
ands r0, r1
cmp r0, 0
bne _080FF1A4
movs r0, 0x8
ands r0, r1
cmp r0, 0
bne _080FF1AA
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080FF0C8
ldr r2, _080FF16C @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x6]
subs r0, 0x1
_080FF104:
strb r0, [r1, 0x6]
_080FF106:
adds r7, r2, 0
adds r4, r7, 0
ldr r2, [r4]
movs r0, 0x6
ldrsb r0, [r2, r0]
ldr r6, _080FF170 @ =gUnknown_843F2AC
cmp r0, 0
bge _080FF124
ldrb r0, [r2, 0x1]
lsls r1, r0, 1
adds r1, r0
lsls r1, 3
adds r1, r6
ldrb r0, [r1, 0x2]
strb r0, [r2, 0x6]
_080FF124:
ldr r3, [r4]
movs r2, 0x6
ldrsb r2, [r3, r2]
adds r5, r6, 0
ldrb r1, [r3, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, r5
ldrb r0, [r0, 0x2]
cmp r2, r0
ble _080FF140
movs r0, 0
strb r0, [r3, 0x6]
_080FF140:
ldr r3, [r4]
movs r2, 0x6
ldrsb r2, [r3, r2]
ldrb r1, [r3, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r0, r5
ldrb r0, [r1, 0x2]
cmp r2, r0
bne _080FF1B4
movs r0, 0x5
ldrsb r0, [r3, r0]
cmp r0, 0x2
ble _080FF162
movs r0, 0x2
strb r0, [r3, 0x5]
_080FF162:
ldr r1, [r4]
movs r0, 0x1
strb r0, [r1, 0x4]
movs r0, 0x3
b _080FF1FC
.align 2, 0
_080FF16C: .4byte gUnknown_203ACE8
_080FF170: .4byte gUnknown_843F2AC
_080FF174:
ldr r2, _080FF180 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x5]
adds r0, 0x1
strb r0, [r1, 0x5]
b _080FF106
.align 2, 0
_080FF180: .4byte gUnknown_203ACE8
_080FF184:
ldr r2, _080FF190 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x6]
adds r0, 0x1
b _080FF104
.align 2, 0
_080FF190: .4byte gUnknown_203ACE8
_080FF194:
ldr r2, _080FF1A0 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x5]
subs r0, 0x1
strb r0, [r1, 0x5]
b _080FF106
.align 2, 0
_080FF1A0: .4byte gUnknown_203ACE8
_080FF1A4:
bl sub_80FF590
b _080FF1AE
_080FF1AA:
bl sub_80FF5C0
_080FF1AE:
lsls r0, 16
lsrs r0, 16
b _080FF1FC
_080FF1B4:
movs r0, 0x5
ldrsb r0, [r3, r0]
cmp r0, 0
bge _080FF1C2
ldrb r0, [r1, 0x1]
subs r0, 0x1
strb r0, [r3, 0x5]
_080FF1C2:
ldr r3, [r4]
movs r2, 0x5
ldrsb r2, [r3, r2]
ldrb r1, [r3, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, r6
ldrb r0, [r0, 0x1]
cmp r2, r0
blt _080FF1DC
movs r0, 0
strb r0, [r3, 0x5]
_080FF1DC:
bl sub_80FFCE0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080FF1FA
ldr r2, [r7]
ldr r0, [r2, 0x4]
ldr r1, _080FF204 @ =0x00ffff00
ands r0, r1
ldr r1, _080FF208 @ =0x00040100
cmp r0, r1
bne _080FF1FA
movs r0, 0
strb r0, [r2, 0x5]
_080FF1FA:
movs r0, 0x2
_080FF1FC:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FF204: .4byte 0x00ffff00
_080FF208: .4byte 0x00040100
thumb_func_end sub_80FF098
thumb_func_start sub_80FF20C
sub_80FF20C: @ 80FF20C
push {r4-r6,lr}
ldr r2, _080FF22C @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080FF270
ldr r0, _080FF230 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x5]
lsls r0, 24
asrs r0, 24
cmp r0, 0x1
beq _080FF26A
b _080FF254
.align 2, 0
_080FF22C: .4byte gMain
_080FF230: .4byte gUnknown_203ACE8
_080FF234:
movs r0, 0x20
ands r0, r2
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0
bne _080FF2F8
movs r0, 0x80
ands r0, r2
cmp r0, 0
bne _080FF2E8
movs r0, 0x10
ands r0, r2
cmp r0, 0
bne _080FF2D8
movs r0, 0
b _080FF34E
_080FF254:
cmp r0, 0x1
bgt _080FF25E
cmp r0, 0
beq _080FF264
b _080FF270
_080FF25E:
cmp r0, 0x2
beq _080FF30E
b _080FF270
_080FF264:
bl sub_80FF5A8
b _080FF312
_080FF26A:
bl sub_80FF590
b _080FF312
_080FF270:
ldrh r2, [r2, 0x2E]
movs r0, 0x2
ands r0, r2
cmp r0, 0
bne _080FF308
movs r0, 0x8
ands r0, r2
cmp r0, 0
bne _080FF30E
movs r0, 0x40
ands r0, r2
cmp r0, 0
beq _080FF234
ldr r2, _080FF2D0 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x6]
subs r0, 0x1
strb r0, [r1, 0x6]
_080FF294:
adds r6, r2, 0
_080FF296:
adds r5, r6, 0
ldr r4, [r5]
movs r3, 0x6
ldrsb r3, [r4, r3]
ldr r2, _080FF2D4 @ =gUnknown_843F2AC
ldrb r1, [r4, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r1, r0, r2
ldrb r0, [r1, 0x2]
cmp r3, r0
bne _080FF318
movs r0, 0x5
ldrsb r0, [r4, r0]
cmp r0, 0
bge _080FF2BC
movs r0, 0x2
strb r0, [r4, 0x5]
_080FF2BC:
ldr r1, [r5]
movs r0, 0x5
ldrsb r0, [r1, r0]
cmp r0, 0x2
ble _080FF2CA
movs r0, 0
strb r0, [r1, 0x5]
_080FF2CA:
movs r0, 0x3
b _080FF34E
.align 2, 0
_080FF2D0: .4byte gUnknown_203ACE8
_080FF2D4: .4byte gUnknown_843F2AC
_080FF2D8:
ldr r2, _080FF2E4 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x5]
adds r0, 0x1
strb r0, [r1, 0x5]
b _080FF294
.align 2, 0
_080FF2E4: .4byte gUnknown_203ACE8
_080FF2E8:
ldr r1, _080FF2F4 @ =gUnknown_203ACE8
ldr r0, [r1]
strb r3, [r0, 0x6]
adds r6, r1, 0
b _080FF296
.align 2, 0
_080FF2F4: .4byte gUnknown_203ACE8
_080FF2F8:
ldr r2, _080FF304 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x5]
subs r0, 0x1
strb r0, [r1, 0x5]
b _080FF294
.align 2, 0
_080FF304: .4byte gUnknown_203ACE8
_080FF308:
bl sub_80FF590
b _080FF312
_080FF30E:
bl sub_80FF5C0
_080FF312:
lsls r0, 16
lsrs r0, 16
b _080FF34E
_080FF318:
movs r0, 0x5
ldrsb r0, [r4, r0]
ldrb r1, [r1, 0x1]
cmp r0, r1
blt _080FF326
subs r0, r1, 0x1
strb r0, [r4, 0x5]
_080FF326:
bl sub_80FFCE0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080FF344
ldr r2, [r6]
ldr r0, [r2, 0x4]
ldr r1, _080FF354 @ =0x00ffff00
ands r0, r1
ldr r1, _080FF358 @ =0x00040100
cmp r0, r1
bne _080FF344
movs r0, 0
strb r0, [r2, 0x5]
_080FF344:
ldr r0, _080FF35C @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0
strb r0, [r1, 0x4]
movs r0, 0x2
_080FF34E:
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080FF354: .4byte 0x00ffff00
_080FF358: .4byte 0x00040100
_080FF35C: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF20C
thumb_func_start sub_80FF360
sub_80FF360: @ 80FF360
push {lr}
ldr r1, _080FF378 @ =gMain
ldrh r2, [r1, 0x2E]
movs r0, 0x2
ands r0, r2
adds r3, r1, 0
cmp r0, 0
beq _080FF37C
bl sub_80FF678
b _080FF412
.align 2, 0
_080FF378: .4byte gMain
_080FF37C:
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _080FF3CA
ldr r0, _080FF39C @ =gUnknown_203ACE8
ldr r2, [r0]
movs r1, 0xA
ldrsb r1, [r2, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080FF3A0
bl sub_80FF5FC
b _080FF412
.align 2, 0
_080FF39C: .4byte gUnknown_203ACE8
_080FF3A0:
movs r0, 0xB
ldrsb r0, [r2, r0]
cmp r0, 0x1
beq _080FF3BE
cmp r0, 0x1
bgt _080FF3B2
cmp r0, 0
beq _080FF3B8
b _080FF3CA
_080FF3B2:
cmp r0, 0x2
beq _080FF3C4
b _080FF3CA
_080FF3B8:
bl sub_80FF688
b _080FF412
_080FF3BE:
bl sub_80FF6B4
b _080FF412
_080FF3C4:
bl sub_80FF678
b _080FF412
_080FF3CA:
ldrh r1, [r3, 0x2E]
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080FF3DA
bl sub_80FF688
b _080FF412
_080FF3DA:
ldrh r1, [r3, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080FF3E8
movs r0, 0x2
b _080FF40E
_080FF3E8:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080FF3F4
movs r0, 0x3
b _080FF40E
_080FF3F4:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080FF400
movs r0, 0x1
b _080FF40E
_080FF400:
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080FF40C
movs r0, 0
b _080FF416
_080FF40C:
movs r0, 0
_080FF40E:
bl sub_80FF7CC
_080FF412:
lsls r0, 16
lsrs r0, 16
_080FF416:
pop {r1}
bx r1
thumb_func_end sub_80FF360
thumb_func_start sub_80FF41C
sub_80FF41C: @ 80FF41C
push {lr}
ldr r2, _080FF438 @ =gMain
ldrh r1, [r2, 0x2E]
movs r0, 0x2
ands r0, r1
cmp r0, 0
beq _080FF440
ldr r0, _080FF43C @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0x2
strb r0, [r1, 0x4]
movs r0, 0xD
b _080FF4A2
.align 2, 0
_080FF438: .4byte gMain
_080FF43C: .4byte gUnknown_203ACE8
_080FF440:
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080FF44E
bl sub_80FF6C8
b _080FF49E
_080FF44E:
movs r0, 0x8
ands r0, r1
cmp r0, 0
beq _080FF45A
movs r0, 0x4
b _080FF49A
_080FF45A:
movs r0, 0x4
ands r0, r1
cmp r0, 0
beq _080FF466
movs r0, 0x5
b _080FF49A
_080FF466:
ldrh r1, [r2, 0x30]
movs r0, 0x40
ands r0, r1
cmp r0, 0
beq _080FF474
movs r0, 0x2
b _080FF49A
_080FF474:
movs r0, 0x80
ands r0, r1
cmp r0, 0
beq _080FF480
movs r0, 0x3
b _080FF49A
_080FF480:
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080FF48C
movs r0, 0x1
b _080FF49A
_080FF48C:
movs r0, 0x10
ands r0, r1
cmp r0, 0
bne _080FF498
movs r0, 0
b _080FF4A2
_080FF498:
movs r0, 0
_080FF49A:
bl sub_80FFA38
_080FF49E:
lsls r0, 16
lsrs r0, 16
_080FF4A2:
pop {r1}
bx r1
thumb_func_end sub_80FF41C
thumb_func_start sub_80FF4A8
sub_80FF4A8: @ 80FF4A8
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _080FF4DC
cmp r1, 0
bgt _080FF4C4
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080FF4C8
b _080FF4E8
_080FF4C4:
cmp r1, 0x1
bne _080FF4E8
_080FF4C8:
bl sub_80FF5F0
ldr r1, _080FF4D8 @ =gUnknown_203ACE8
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x7
b _080FF4EA
.align 2, 0
_080FF4D8: .4byte gUnknown_203ACE8
_080FF4DC:
ldr r0, _080FF4E4 @ =gSpecialVar_Result
strh r1, [r0]
movs r0, 0x17
b _080FF4EA
.align 2, 0
_080FF4E4: .4byte gSpecialVar_Result
_080FF4E8:
movs r0, 0
_080FF4EA:
pop {r1}
bx r1
thumb_func_end sub_80FF4A8
thumb_func_start sub_80FF4F0
sub_80FF4F0: @ 80FF4F0
push {r4,lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _080FF524
cmp r1, 0
bgt _080FF50C
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080FF510
b _080FF53C
_080FF50C:
cmp r1, 0x1
bne _080FF53C
_080FF510:
bl sub_80FF5F0
ldr r1, _080FF520 @ =gUnknown_203ACE8
ldr r1, [r1]
strb r0, [r1, 0x4]
movs r0, 0x7
b _080FF53E
.align 2, 0
_080FF520: .4byte gUnknown_203ACE8
_080FF524:
ldr r4, _080FF538 @ =gSpecialVar_Result
bl sub_80FF78C
lsls r0, 24
lsrs r0, 24
strh r0, [r4]
bl sub_80FF6F0
movs r0, 0x17
b _080FF53E
.align 2, 0
_080FF538: .4byte gSpecialVar_Result
_080FF53C:
movs r0, 0
_080FF53E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FF4F0
thumb_func_start sub_80FF544
sub_80FF544: @ 80FF544
push {lr}
bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
beq _080FF574
cmp r1, 0
bgt _080FF560
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080FF564
b _080FF588
_080FF560:
cmp r1, 0x1
bne _080FF588
_080FF564:
ldr r0, _080FF570 @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x4]
movs r0, 0x7
b _080FF58A
.align 2, 0
_080FF570: .4byte gUnknown_203ACE8
_080FF574:
bl sub_80FF728
ldr r0, _080FF584 @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0x1
strb r0, [r1, 0x4]
movs r0, 0x8
b _080FF58A
.align 2, 0
_080FF584: .4byte gUnknown_203ACE8
_080FF588:
movs r0, 0
_080FF58A:
pop {r1}
bx r1
thumb_func_end sub_80FF544
thumb_func_start sub_80FF590
sub_80FF590: @ 80FF590
ldr r2, _080FF5A4 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x4]
strb r0, [r1, 0x8]
ldr r1, [r2]
movs r0, 0x4
strb r0, [r1, 0x4]
movs r0, 0x5
bx lr
.align 2, 0
_080FF5A4: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF590
thumb_func_start sub_80FF5A8
sub_80FF5A8: @ 80FF5A8
ldr r2, _080FF5BC @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0x4]
strb r0, [r1, 0x8]
ldr r1, [r2]
movs r0, 0x5
strb r0, [r1, 0x4]
movs r0, 0x4
bx lr
.align 2, 0
_080FF5BC: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF5A8
thumb_func_start sub_80FF5C0
sub_80FF5C0: @ 80FF5C0
push {r4,lr}
ldr r4, _080FF5DC @ =gUnknown_203ACE8
ldr r0, [r4]
ldrb r1, [r0, 0x4]
strb r1, [r0, 0x8]
bl sub_80FFF48
cmp r0, 0
bne _080FF5E0
ldr r1, [r4]
movs r0, 0x6
strb r0, [r1, 0x4]
b _080FF5E8
.align 2, 0
_080FF5DC: .4byte gUnknown_203ACE8
_080FF5E0:
ldr r1, [r4]
movs r0, 0x4
strb r0, [r1, 0x4]
movs r0, 0x5
_080FF5E8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FF5C0
thumb_func_start sub_80FF5F0
sub_80FF5F0: @ 80FF5F0
ldr r0, _080FF5F8 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x8]
bx lr
.align 2, 0
_080FF5F8: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF5F0
thumb_func_start sub_80FF5FC
sub_80FF5FC: @ 80FF5FC
push {lr}
ldr r0, _080FF624 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x9]
cmp r0, 0
bne _080FF628
bl sub_80FFB8C
lsls r0, 24
lsrs r0, 24
bl sub_80BDF44
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
movs r0, 0
bl sub_80BE16C
b _080FF638
.align 2, 0
_080FF624: .4byte gUnknown_203ACE8
_080FF628:
bl sub_80FFBAC
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
movs r0, 0x1
bl sub_80BE16C
_080FF638:
bl sub_80BE1D4
lsls r0, 16
lsrs r0, 16
cmp r0, 0
beq _080FF670
ldr r2, _080FF66C @ =gUnknown_203ACE8
ldr r3, [r2]
subs r0, 0x1
lsrs r1, r0, 31
adds r0, r1
asrs r0, 1
movs r1, 0
strb r0, [r3, 0xF]
ldr r0, [r2]
strb r1, [r0, 0xE]
ldr r0, [r2]
strb r1, [r0, 0x10]
ldr r0, [r2]
strb r1, [r0, 0x11]
ldr r1, [r2]
movs r0, 0x3
strb r0, [r1, 0x4]
movs r0, 0xB
b _080FF672
.align 2, 0
_080FF66C: .4byte gUnknown_203ACE8
_080FF670:
movs r0, 0
_080FF672:
pop {r1}
bx r1
thumb_func_end sub_80FF5FC
thumb_func_start sub_80FF678
sub_80FF678: @ 80FF678
ldr r0, _080FF684 @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0
strb r0, [r1, 0x4]
movs r0, 0xA
bx lr
.align 2, 0
_080FF684: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF678
thumb_func_start sub_80FF688
sub_80FF688: @ 80FF688
push {lr}
ldr r1, _080FF6A8 @ =gUnknown_203ACE8
ldr r0, [r1]
movs r2, 0
strb r2, [r0, 0xA]
ldr r0, [r1]
strb r2, [r0, 0xB]
ldr r0, [r1]
strb r2, [r0, 0xC]
ldr r1, [r1]
ldrb r0, [r1, 0x9]
cmp r0, 0
bne _080FF6AC
movs r0, 0x1
strb r0, [r1, 0x9]
b _080FF6AE
.align 2, 0
_080FF6A8: .4byte gUnknown_203ACE8
_080FF6AC:
strb r2, [r1, 0x9]
_080FF6AE:
movs r0, 0x16
pop {r1}
bx r1
thumb_func_end sub_80FF688
thumb_func_start sub_80FF6B4
sub_80FF6B4: @ 80FF6B4
push {lr}
ldr r0, _080FF6C4 @ =0x0000ffff
bl sub_80FF768
movs r0, 0x1
pop {r1}
bx r1
.align 2, 0
_080FF6C4: .4byte 0x0000ffff
thumb_func_end sub_80FF6B4
thumb_func_start sub_80FF6C8
sub_80FF6C8: @ 80FF6C8
push {lr}
bl sub_80FFBE4
lsls r0, 16
lsrs r0, 16
bl sub_80BE19C
lsls r0, 16
lsrs r0, 16
bl sub_80FF768
ldr r0, _080FF6EC @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0
strb r0, [r1, 0x4]
movs r0, 0xC
pop {r1}
bx r1
.align 2, 0
_080FF6EC: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF6C8
thumb_func_start sub_80FF6F0
sub_80FF6F0: @ 80FF6F0
push {r4,r5,lr}
movs r4, 0
ldr r3, _080FF724 @ =gUnknown_203ACE8
ldr r0, [r3]
ldrb r0, [r0, 0x7]
cmp r4, r0
bcs _080FF71E
adds r5, r3, 0
_080FF700:
ldr r3, [r5]
ldr r1, [r3, 0x14]
lsls r2, r4, 1
adds r1, r2, r1
adds r0, r3, 0
adds r0, 0x18
adds r0, r2
ldrh r0, [r0]
strh r0, [r1]
adds r0, r4, 0x1
lsls r0, 16
lsrs r4, r0, 16
ldrb r3, [r3, 0x7]
cmp r4, r3
bcc _080FF700
_080FF71E:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FF724: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF6F0
thumb_func_start sub_80FF728
sub_80FF728: @ 80FF728
push {r4,r5,lr}
movs r3, 0
ldr r2, _080FF760 @ =gUnknown_203ACE8
ldr r0, [r2]
ldrb r0, [r0, 0x7]
cmp r3, r0
bcs _080FF758
adds r5, r2, 0
ldr r0, _080FF764 @ =0x0000ffff
adds r4, r0, 0
_080FF73C:
ldr r2, [r5]
lsls r0, r3, 1
adds r1, r2, 0
adds r1, 0x18
adds r1, r0
ldrh r0, [r1]
orrs r0, r4
strh r0, [r1]
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
ldrb r2, [r2, 0x7]
cmp r3, r2
bcc _080FF73C
_080FF758:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FF760: .4byte gUnknown_203ACE8
_080FF764: .4byte 0x0000ffff
thumb_func_end sub_80FF728
thumb_func_start sub_80FF768
sub_80FF768: @ 80FF768
push {r4,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
bl sub_80FFB6C
lsls r0, 16
ldr r1, _080FF788 @ =gUnknown_203ACE8
ldr r1, [r1]
lsrs r0, 15
adds r1, 0x18
adds r1, r0
strh r4, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FF788: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF768
thumb_func_start sub_80FF78C
sub_80FF78C: @ 80FF78C
push {r4,r5,lr}
movs r2, 0
ldr r0, _080FF7B4 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r1, [r0, 0x7]
cmp r2, r1
bcs _080FF7C2
adds r5, r1, 0
adds r4, r0, 0
adds r4, 0x18
ldr r3, [r0, 0x14]
_080FF7A2:
lsls r0, r2, 1
adds r1, r4, r0
adds r0, r3
ldrh r1, [r1]
ldrh r0, [r0]
cmp r1, r0
beq _080FF7B8
movs r0, 0x1
b _080FF7C4
.align 2, 0
_080FF7B4: .4byte gUnknown_203ACE8
_080FF7B8:
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r5
bcc _080FF7A2
_080FF7C2:
movs r0, 0
_080FF7C4:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FF78C
thumb_func_start sub_80FF7CC
sub_80FF7CC: @ 80FF7CC
push {lr}
adds r2, r0, 0
ldr r0, _080FF7F0 @ =gUnknown_203ACE8
ldr r3, [r0]
movs r1, 0xA
ldrsb r1, [r3, r1]
movs r0, 0x1
negs r0, r0
cmp r1, r0
beq _080FF7FC
ldrb r0, [r3, 0x9]
cmp r0, 0
bne _080FF7F4
adds r0, r2, 0
bl sub_80FF80C
b _080FF802
.align 2, 0
_080FF7F0: .4byte gUnknown_203ACE8
_080FF7F4:
adds r0, r2, 0
bl sub_80FF8D8
b _080FF802
_080FF7FC:
adds r0, r2, 0
bl sub_80FF968
_080FF802:
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
thumb_func_end sub_80FF7CC
thumb_func_start sub_80FF80C
sub_80FF80C: @ 80FF80C
push {r4,lr}
cmp r0, 0x1
beq _080FF882
cmp r0, 0x1
bcc _080FF8A2
cmp r0, 0x2
beq _080FF820
cmp r0, 0x3
beq _080FF848
b _080FF8CE
_080FF820:
ldr r0, _080FF83C @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0xB
ldrsb r0, [r1, r0]
ldrb r3, [r1, 0xC]
cmn r0, r3
beq _080FF8CE
ldrb r2, [r1, 0xB]
cmp r0, 0
beq _080FF840
subs r0, r2, 0x1
strb r0, [r1, 0xB]
_080FF838:
movs r0, 0xE
b _080FF8D0
.align 2, 0
_080FF83C: .4byte gUnknown_203ACE8
_080FF840:
subs r0, r3, 0x1
strb r0, [r1, 0xC]
movs r0, 0x10
b _080FF8D0
_080FF848:
ldr r0, _080FF870 @ =gUnknown_203ACE8
ldr r2, [r0]
movs r1, 0xB
ldrsb r1, [r2, r1]
ldrb r3, [r2, 0xC]
adds r1, r3
ldrb r0, [r2, 0xD]
subs r0, 0x1
cmp r1, r0
bge _080FF8CE
ldrb r1, [r2, 0xB]
movs r0, 0xB
ldrsb r0, [r2, r0]
cmp r0, 0x2
bgt _080FF874
adds r0, r1, 0x1
strb r0, [r2, 0xB]
movs r4, 0xE
b _080FF87A
.align 2, 0
_080FF870: .4byte gUnknown_203ACE8
_080FF874:
adds r0, r3, 0x1
strb r0, [r2, 0xC]
movs r4, 0xF
_080FF87A:
bl sub_80FFC1C
adds r0, r4, 0
b _080FF8D0
_080FF882:
ldr r0, _080FF898 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xA]
movs r0, 0xA
ldrsb r0, [r1, r0]
cmp r0, 0
beq _080FF89C
subs r0, r2, 0x1
strb r0, [r1, 0xA]
b _080FF838
.align 2, 0
_080FF898: .4byte gUnknown_203ACE8
_080FF89C:
bl sub_80FF9E8
b _080FF838
_080FF8A2:
ldr r0, _080FF8C4 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xA]
movs r0, 0xA
ldrsb r0, [r1, r0]
cmp r0, 0
bgt _080FF8C8
adds r0, r2, 0x1
strb r0, [r1, 0xA]
bl sub_80FFC6C
lsls r0, 24
cmp r0, 0
beq _080FF838
bl sub_80FF9E8
b _080FF838
.align 2, 0
_080FF8C4: .4byte gUnknown_203ACE8
_080FF8C8:
bl sub_80FF9E8
b _080FF838
_080FF8CE:
movs r0, 0
_080FF8D0:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FF80C
thumb_func_start sub_80FF8D8
sub_80FF8D8: @ 80FF8D8
push {lr}
cmp r0, 0x1
beq _080FF944
cmp r0, 0x1
bcc _080FF928
cmp r0, 0x2
beq _080FF8EE
cmp r0, 0x3
beq _080FF90E
movs r0, 0
b _080FF960
_080FF8EE:
ldr r0, _080FF900 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xB]
movs r0, 0xB
ldrsb r0, [r1, r0]
cmp r0, 0
ble _080FF904
subs r0, r2, 0x1
b _080FF906
.align 2, 0
_080FF900: .4byte gUnknown_203ACE8
_080FF904:
movs r0, 0x3
_080FF906:
strb r0, [r1, 0xB]
bl sub_80FFC1C
b _080FF95E
_080FF90E:
ldr r0, _080FF920 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xB]
movs r0, 0xB
ldrsb r0, [r1, r0]
cmp r0, 0x2
bgt _080FF924
adds r0, r2, 0x1
b _080FF906
.align 2, 0
_080FF920: .4byte gUnknown_203ACE8
_080FF924:
movs r0, 0
b _080FF906
_080FF928:
ldr r0, _080FF940 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r0, [r1, 0xA]
adds r0, 0x1
strb r0, [r1, 0xA]
bl sub_80FFC6C
lsls r0, 24
cmp r0, 0
beq _080FF95E
b _080FF95A
.align 2, 0
_080FF940: .4byte gUnknown_203ACE8
_080FF944:
ldr r2, _080FF964 @ =gUnknown_203ACE8
ldr r1, [r2]
ldrb r0, [r1, 0xA]
subs r0, 0x1
strb r0, [r1, 0xA]
ldr r0, [r2]
ldrb r0, [r0, 0xA]
lsls r0, 24
asrs r0, 24
cmp r0, 0
bge _080FF95E
_080FF95A:
bl sub_80FF9E8
_080FF95E:
movs r0, 0xE
_080FF960:
pop {r1}
bx r1
.align 2, 0
_080FF964: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF8D8
thumb_func_start sub_80FF968
sub_80FF968: @ 80FF968
push {lr}
adds r2, r0, 0
cmp r2, 0x1
beq _080FF9B8
cmp r2, 0x1
bcc _080FF9CC
cmp r2, 0x2
beq _080FF980
cmp r2, 0x3
beq _080FF99C
movs r0, 0
b _080FF9DE
_080FF980:
ldr r0, _080FF994 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r3, [r1, 0xB]
movs r0, 0xB
ldrsb r0, [r1, r0]
cmp r0, 0
beq _080FF998
subs r0, r3, 0x1
b _080FF9DA
.align 2, 0
_080FF994: .4byte gUnknown_203ACE8
_080FF998:
strb r2, [r1, 0xB]
b _080FF9DC
_080FF99C:
ldr r0, _080FF9B0 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xB]
movs r0, 0xB
ldrsb r0, [r1, r0]
cmp r0, 0x1
bgt _080FF9B4
adds r0, r2, 0x1
b _080FF9DA
.align 2, 0
_080FF9B0: .4byte gUnknown_203ACE8
_080FF9B4:
movs r0, 0
b _080FF9DA
_080FF9B8:
ldr r0, _080FF9C8 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r0, [r1, 0xB]
adds r0, 0x1
strb r0, [r1, 0xB]
bl sub_80FFA0C
b _080FF9DC
.align 2, 0
_080FF9C8: .4byte gUnknown_203ACE8
_080FF9CC:
ldr r2, _080FF9E4 @ =gUnknown_203ACE8
ldr r1, [r2]
movs r0, 0
strb r0, [r1, 0xA]
ldr r1, [r2]
ldrb r0, [r1, 0xB]
adds r0, 0x1
_080FF9DA:
strb r0, [r1, 0xB]
_080FF9DC:
movs r0, 0xE
_080FF9DE:
pop {r1}
bx r1
.align 2, 0
_080FF9E4: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF968
thumb_func_start sub_80FF9E8
sub_80FF9E8: @ 80FF9E8
push {lr}
ldr r2, _080FFA08 @ =gUnknown_203ACE8
ldr r1, [r2]
movs r0, 0xFF
strb r0, [r1, 0xA]
ldr r2, [r2]
ldrb r1, [r2, 0xB]
movs r0, 0xB
ldrsb r0, [r2, r0]
cmp r0, 0
beq _080FFA02
subs r0, r1, 0x1
strb r0, [r2, 0xB]
_080FFA02:
pop {r0}
bx r0
.align 2, 0
_080FFA08: .4byte gUnknown_203ACE8
thumb_func_end sub_80FF9E8
thumb_func_start sub_80FFA0C
sub_80FFA0C: @ 80FFA0C
push {r4,lr}
ldr r4, _080FFA24 @ =gUnknown_203ACE8
ldr r1, [r4]
ldrb r0, [r1, 0x9]
cmp r0, 0
bne _080FFA28
movs r0, 0x1
strb r0, [r1, 0xA]
bl sub_80FFC1C
b _080FFA32
.align 2, 0
_080FFA24: .4byte gUnknown_203ACE8
_080FFA28:
ldrb r0, [r1, 0xB]
bl sub_80FFC04
ldr r1, [r4]
strb r0, [r1, 0xA]
_080FFA32:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FFA0C
thumb_func_start sub_80FFA38
sub_80FFA38: @ 80FFA38
push {r4,lr}
cmp r0, 0x5
bls _080FFA40
b _080FFB64
_080FFA40:
lsls r0, 2
ldr r1, _080FFA4C @ =_080FFA50
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FFA4C: .4byte _080FFA50
.align 2, 0
_080FFA50:
.4byte _080FFAEC
.4byte _080FFACA
.4byte _080FFA68
.4byte _080FFA94
.4byte _080FFB14
.4byte _080FFB34
_080FFA68:
ldr r0, _080FFA88 @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0x11
ldrsb r0, [r1, r0]
ldrb r3, [r1, 0xE]
adds r0, r3
cmp r0, 0
bgt _080FFA7A
b _080FFB64
_080FFA7A:
ldrb r2, [r1, 0x11]
movs r0, 0x11
ldrsb r0, [r1, r0]
cmp r0, 0
ble _080FFA8C
subs r0, r2, 0x1
b _080FFAB2
.align 2, 0
_080FFA88: .4byte gUnknown_203ACE8
_080FFA8C:
subs r0, r3, 0x1
strb r0, [r1, 0xE]
movs r4, 0x12
b _080FFAC2
_080FFA94:
ldr r0, _080FFAB8 @ =gUnknown_203ACE8
ldr r1, [r0]
movs r0, 0x11
ldrsb r0, [r1, r0]
ldrb r3, [r1, 0xE]
adds r0, r3
ldrb r2, [r1, 0xF]
cmp r0, r2
bge _080FFB64
ldrb r2, [r1, 0x11]
movs r0, 0x11
ldrsb r0, [r1, r0]
cmp r0, 0x2
bgt _080FFABC
adds r0, r2, 0x1
_080FFAB2:
strb r0, [r1, 0x11]
movs r4, 0x11
b _080FFAC2
.align 2, 0
_080FFAB8: .4byte gUnknown_203ACE8
_080FFABC:
adds r0, r3, 0x1
strb r0, [r1, 0xE]
movs r4, 0x13
_080FFAC2:
bl sub_80FFC44
adds r0, r4, 0
b _080FFB66
_080FFACA:
ldr r0, _080FFADC @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0x10]
movs r0, 0x10
ldrsb r0, [r1, r0]
cmp r0, 0
ble _080FFAE0
subs r0, r2, 0x1
b _080FFAE2
.align 2, 0
_080FFADC: .4byte gUnknown_203ACE8
_080FFAE0:
movs r0, 0x1
_080FFAE2:
strb r0, [r1, 0x10]
bl sub_80FFC44
_080FFAE8:
movs r0, 0x11
b _080FFB66
_080FFAEC:
ldr r4, _080FFB10 @ =gUnknown_203ACE8
ldr r1, [r4]
ldrb r2, [r1, 0x10]
movs r0, 0x10
ldrsb r0, [r1, r0]
cmp r0, 0
bgt _080FFB0A
adds r0, r2, 0x1
strb r0, [r1, 0x10]
bl sub_80FFCC0
lsls r0, 24
cmp r0, 0
beq _080FFAE8
ldr r1, [r4]
_080FFB0A:
movs r0, 0
strb r0, [r1, 0x10]
b _080FFAE8
.align 2, 0
_080FFB10: .4byte gUnknown_203ACE8
_080FFB14:
ldr r0, _080FFB28 @ =gUnknown_203ACE8
ldr r2, [r0]
ldrb r0, [r2, 0xE]
adds r1, r0, 0
cmp r1, 0
beq _080FFB64
cmp r1, 0x3
bls _080FFB2C
subs r0, 0x4
b _080FFB2E
.align 2, 0
_080FFB28: .4byte gUnknown_203ACE8
_080FFB2C:
movs r0, 0
_080FFB2E:
strb r0, [r2, 0xE]
movs r0, 0x14
b _080FFB66
_080FFB34:
ldr r3, _080FFB60 @ =gUnknown_203ACE8
ldr r1, [r3]
ldrb r2, [r1, 0xE]
ldrb r0, [r1, 0xF]
subs r0, 0x4
cmp r2, r0
bgt _080FFB64
adds r0, r2, 0x4
strb r0, [r1, 0xE]
ldr r2, [r3]
ldrb r1, [r2, 0xE]
ldrb r3, [r2, 0xF]
subs r0, r3, 0x3
cmp r1, r0
ble _080FFB58
adds r0, r3, 0
adds r0, 0xFD
strb r0, [r2, 0xE]
_080FFB58:
bl sub_80FFC44
movs r0, 0x15
b _080FFB66
.align 2, 0
_080FFB60: .4byte gUnknown_203ACE8
_080FFB64:
movs r0, 0
_080FFB66:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FFA38
thumb_func_start sub_80FFB6C
sub_80FFB6C: @ 80FFB6C
ldr r0, _080FFB88 @ =gUnknown_203ACE8
ldr r0, [r0]
movs r2, 0x6
ldrsb r2, [r0, r2]
ldrb r1, [r0, 0x2]
muls r1, r2
ldrb r0, [r0, 0x5]
lsls r0, 24
asrs r0, 24
adds r0, r1
lsls r0, 16
lsrs r0, 16
bx lr
.align 2, 0
_080FFB88: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFB6C
thumb_func_start sub_80FFB8C
sub_80FFB8C: @ 80FFB8C
ldr r0, _080FFBA8 @ =gUnknown_203ACE8
ldr r0, [r0]
movs r1, 0xB
ldrsb r1, [r0, r1]
ldrb r2, [r0, 0xC]
adds r1, r2
lsls r1, 1
ldrb r0, [r0, 0xA]
lsls r0, 24
asrs r0, 24
adds r0, r1
lsls r0, 16
lsrs r0, 16
bx lr
.align 2, 0
_080FFBA8: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFB8C
thumb_func_start sub_80FFBAC
sub_80FFBAC: @ 80FFBAC
push {lr}
ldr r0, _080FFBDC @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r0, [r1, 0xA]
movs r3, 0
cmp r0, 0x6
bhi _080FFBBE
movs r3, 0xA
ldrsb r3, [r1, r3]
_080FFBBE:
ldrb r0, [r1, 0xB]
movs r2, 0
cmp r0, 0x3
bhi _080FFBCA
movs r2, 0xB
ldrsb r2, [r1, r2]
_080FFBCA:
ldr r0, _080FFBE0 @ =gUnknown_843F39C
lsls r1, r2, 3
subs r1, r2
adds r1, r3, r1
adds r1, r0
ldrb r0, [r1]
pop {r1}
bx r1
.align 2, 0
_080FFBDC: .4byte gUnknown_203ACE8
_080FFBE0: .4byte gUnknown_843F39C
thumb_func_end sub_80FFBAC
thumb_func_start sub_80FFBE4
sub_80FFBE4: @ 80FFBE4
ldr r0, _080FFC00 @ =gUnknown_203ACE8
ldr r0, [r0]
movs r1, 0x11
ldrsb r1, [r0, r1]
ldrb r2, [r0, 0xE]
adds r1, r2
lsls r1, 1
ldrb r0, [r0, 0x10]
lsls r0, 24
asrs r0, 24
adds r0, r1
lsls r0, 16
lsrs r0, 16
bx lr
.align 2, 0
_080FFC00: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFBE4
thumb_func_start sub_80FFC04
sub_80FFC04: @ 80FFC04
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080FFC12
cmp r0, 0x1
beq _080FFC16
_080FFC12:
movs r0, 0x6
b _080FFC18
_080FFC16:
movs r0, 0x5
_080FFC18:
pop {r1}
bx r1
thumb_func_end sub_80FFC04
thumb_func_start sub_80FFC1C
sub_80FFC1C: @ 80FFC1C
push {lr}
b _080FFC32
_080FFC20:
ldr r0, _080FFC40 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0xA]
movs r0, 0xA
ldrsb r0, [r1, r0]
cmp r0, 0
beq _080FFC3C
subs r0, r2, 0x1
strb r0, [r1, 0xA]
_080FFC32:
bl sub_80FFC6C
lsls r0, 24
cmp r0, 0
bne _080FFC20
_080FFC3C:
pop {r0}
bx r0
.align 2, 0
_080FFC40: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFC1C
thumb_func_start sub_80FFC44
sub_80FFC44: @ 80FFC44
push {lr}
b _080FFC5A
_080FFC48:
ldr r0, _080FFC68 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r2, [r1, 0x10]
movs r0, 0x10
ldrsb r0, [r1, r0]
cmp r0, 0
beq _080FFC64
subs r0, r2, 0x1
strb r0, [r1, 0x10]
_080FFC5A:
bl sub_80FFCC0
lsls r0, 24
cmp r0, 0
bne _080FFC48
_080FFC64:
pop {r0}
bx r0
.align 2, 0
_080FFC68: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFC44
thumb_func_start sub_80FFC6C
sub_80FFC6C: @ 80FFC6C
push {r4,lr}
ldr r4, _080FFC98 @ =gUnknown_203ACE8
ldr r1, [r4]
ldrb r0, [r1, 0x9]
cmp r0, 0
bne _080FFC9C
bl sub_80FFB8C
adds r4, r0, 0
bl sub_80BDF38
movs r1, 0
lsls r0, 24
lsls r4, 16
lsrs r4, 16
lsrs r0, 24
cmp r4, r0
bcc _080FFC92
movs r1, 0x1
_080FFC92:
adds r0, r1, 0
b _080FFCB8
.align 2, 0
_080FFC98: .4byte gUnknown_203ACE8
_080FFC9C:
ldrb r0, [r1, 0xB]
bl sub_80FFC04
movs r2, 0
ldr r1, [r4]
ldrb r1, [r1, 0xA]
lsls r1, 24
asrs r1, 24
lsls r0, 24
lsrs r0, 24
cmp r1, r0
ble _080FFCB6
movs r2, 0x1
_080FFCB6:
adds r0, r2, 0
_080FFCB8:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FFC6C
thumb_func_start sub_80FFCC0
sub_80FFCC0: @ 80FFCC0
push {r4,lr}
bl sub_80FFBE4
adds r4, r0, 0
bl sub_80BE1D4
movs r1, 0
lsls r4, 16
lsls r0, 16
cmp r4, r0
bcc _080FFCD8
movs r1, 0x1
_080FFCD8:
adds r0, r1, 0
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FFCC0
thumb_func_start sub_80FFCE0
sub_80FFCE0: @ 80FFCE0
ldr r2, _080FFCF4 @ =gUnknown_843F2AC
ldr r0, _080FFCF8 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r1, [r0, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r0, r2
ldrb r0, [r0, 0x3]
bx lr
.align 2, 0
_080FFCF4: .4byte gUnknown_843F2AC
_080FFCF8: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFCE0
thumb_func_start sub_80FFCFC
sub_80FFCFC: @ 80FFCFC
ldr r2, _080FFD14 @ =gUnknown_843F2AC
ldr r0, _080FFD18 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r1, [r0, 0x1]
lsls r0, r1, 1
adds r0, r1
lsls r0, 3
adds r2, 0x4
adds r0, r2
ldr r0, [r0]
bx lr
.align 2, 0
_080FFD14: .4byte gUnknown_843F2AC
_080FFD18: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFCFC
thumb_func_start sub_80FFD1C
sub_80FFD1C: @ 80FFD1C
ldr r0, _080FFD24 @ =gUnknown_203ACE8
ldr r0, [r0]
adds r0, 0x18
bx lr
.align 2, 0
_080FFD24: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD1C
thumb_func_start sub_80FFD28
sub_80FFD28: @ 80FFD28
ldr r0, _080FFD30 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x3]
bx lr
.align 2, 0
_080FFD30: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD28
thumb_func_start sub_80FFD34
sub_80FFD34: @ 80FFD34
ldr r0, _080FFD3C @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x2]
bx lr
.align 2, 0
_080FFD3C: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD34
thumb_func_start sub_80FFD40
sub_80FFD40: @ 80FFD40
ldr r0, _080FFD48 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x5]
bx lr
.align 2, 0
_080FFD48: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD40
thumb_func_start sub_80FFD4C
sub_80FFD4C: @ 80FFD4C
ldr r0, _080FFD54 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x6]
bx lr
.align 2, 0
_080FFD54: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD4C
thumb_func_start sub_80FFD58
sub_80FFD58: @ 80FFD58
push {r4,r5,lr}
ldr r4, _080FFD88 @ =gUnknown_843F2AC
ldr r2, _080FFD8C @ =gUnknown_203ACE8
ldr r5, [r2]
ldrb r3, [r5, 0x1]
lsls r2, r3, 1
adds r2, r3
lsls r2, 3
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
ldr r2, [r2]
str r2, [r0]
ldrb r2, [r5, 0x1]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r4, 0xC
adds r0, r4
ldr r0, [r0]
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FFD88: .4byte gUnknown_843F2AC
_080FFD8C: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD58
thumb_func_start sub_80FFD90
sub_80FFD90: @ 80FFD90
push {r4,r5,lr}
ldr r4, _080FFDC0 @ =gUnknown_843F2AC
ldr r2, _080FFDC4 @ =gUnknown_203ACE8
ldr r5, [r2]
ldrb r3, [r5, 0x1]
lsls r2, r3, 1
adds r2, r3
lsls r2, 3
adds r3, r4, 0
adds r3, 0x10
adds r2, r3
ldr r2, [r2]
str r2, [r0]
ldrb r2, [r5, 0x1]
lsls r0, r2, 1
adds r0, r2
lsls r0, 3
adds r4, 0x14
adds r0, r4
ldr r0, [r0]
str r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FFDC0: .4byte gUnknown_843F2AC
_080FFDC4: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFD90
thumb_func_start sub_80FFDC8
sub_80FFDC8: @ 80FFDC8
push {lr}
adds r2, r0, 0
ldr r0, _080FFDDC @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x4
bne _080FFDE4
ldr r0, _080FFDE0 @ =gUnknown_84189EE
b _080FFDE6
.align 2, 0
_080FFDDC: .4byte gUnknown_203ACE8
_080FFDE0: .4byte gUnknown_84189EE
_080FFDE4:
ldr r0, _080FFDF0 @ =gUnknown_84189E0
_080FFDE6:
str r0, [r2]
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080FFDF0: .4byte gUnknown_84189E0
thumb_func_end sub_80FFDC8
thumb_func_start sub_80FFDF4
sub_80FFDF4: @ 80FFDF4
ldr r2, _080FFE00 @ =gUnknown_8418937
str r2, [r0]
ldr r0, _080FFE04 @ =gUnknown_8418956
str r0, [r1]
bx lr
.align 2, 0
_080FFE00: .4byte gUnknown_8418937
_080FFE04: .4byte gUnknown_8418956
thumb_func_end sub_80FFDF4
thumb_func_start sub_80FFE08
sub_80FFE08: @ 80FFE08
ldr r2, _080FFE18 @ =gUnknown_203ACE8
ldr r3, [r2]
ldrb r2, [r3, 0xA]
strb r2, [r0]
ldrb r0, [r3, 0xB]
strb r0, [r1]
bx lr
.align 2, 0
_080FFE18: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE08
thumb_func_start sub_80FFE1C
sub_80FFE1C: @ 80FFE1C
ldr r0, _080FFE24 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0x9]
bx lr
.align 2, 0
_080FFE24: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE1C
thumb_func_start sub_80FFE28
sub_80FFE28: @ 80FFE28
ldr r0, _080FFE30 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_080FFE30: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE28
thumb_func_start sub_80FFE34
sub_80FFE34: @ 80FFE34
ldr r2, _080FFE44 @ =gUnknown_203ACE8
ldr r3, [r2]
ldrb r2, [r3, 0x10]
strb r2, [r0]
ldrb r0, [r3, 0x11]
strb r0, [r1]
bx lr
.align 2, 0
_080FFE44: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE34
thumb_func_start sub_80FFE48
sub_80FFE48: @ 80FFE48
ldr r0, _080FFE50 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0xE]
bx lr
.align 2, 0
_080FFE50: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE48
thumb_func_start sub_80FFE54
sub_80FFE54: @ 80FFE54
ldr r0, _080FFE5C @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r0, [r0, 0xF]
bx lr
.align 2, 0
_080FFE5C: .4byte gUnknown_203ACE8
thumb_func_end sub_80FFE54
thumb_func_start sub_80FFE60
sub_80FFE60: @ 80FFE60
movs r0, 0
bx lr
thumb_func_end sub_80FFE60
thumb_func_start sub_80FFE64
sub_80FFE64: @ 80FFE64
push {lr}
ldr r0, _080FFE78 @ =gUnknown_203ACE8
ldr r1, [r0]
ldrb r0, [r1, 0x4]
cmp r0, 0x2
beq _080FFE7C
cmp r0, 0x3
beq _080FFE86
b _080FFE90
.align 2, 0
_080FFE78: .4byte gUnknown_203ACE8
_080FFE7C:
ldrb r0, [r1, 0x9]
cmp r0, 0
bne _080FFE90
ldrb r0, [r1, 0xC]
b _080FFE88
_080FFE86:
ldrb r0, [r1, 0xE]
_080FFE88:
cmp r0, 0
beq _080FFE90
movs r0, 0x1
b _080FFE92
_080FFE90:
movs r0, 0
_080FFE92:
pop {r1}
bx r1
thumb_func_end sub_80FFE64
thumb_func_start sub_80FFE98
sub_80FFE98: @ 80FFE98
push {lr}
ldr r0, _080FFEAC @ =gUnknown_203ACE8
ldr r2, [r0]
ldrb r0, [r2, 0x4]
cmp r0, 0x2
beq _080FFEB0
cmp r0, 0x3
beq _080FFEC6
b _080FFED4
.align 2, 0
_080FFEAC: .4byte gUnknown_203ACE8
_080FFEB0:
ldrb r0, [r2, 0x9]
cmp r0, 0
bne _080FFED4
ldrb r1, [r2, 0xC]
adds r1, 0x4
ldrb r0, [r2, 0xD]
subs r0, 0x1
cmp r1, r0
bgt _080FFED4
movs r0, 0x1
b _080FFED6
_080FFEC6:
ldrb r0, [r2, 0xE]
adds r0, 0x4
ldrb r2, [r2, 0xF]
cmp r0, r2
bgt _080FFED4
movs r0, 0x1
b _080FFED6
_080FFED4:
movs r0, 0
_080FFED6:
pop {r1}
bx r1
thumb_func_end sub_80FFE98
thumb_func_start sub_80FFEDC
sub_80FFEDC: @ 80FFEDC
push {r4,r5,lr}
adds r5, r0, 0
lsls r1, 24
lsrs r3, r1, 24
movs r2, 0
cmp r2, r3
bcs _080FFF12
ldr r0, _080FFF04 @ =gUnknown_203ACE8
ldr r0, [r0]
adds r4, r0, 0
adds r4, 0x18
_080FFEF2:
lsls r0, r2, 1
adds r1, r0, r5
adds r0, r4, r0
ldrh r1, [r1]
ldrh r0, [r0]
cmp r1, r0
beq _080FFF08
movs r0, 0x1
b _080FFF14
.align 2, 0
_080FFF04: .4byte gUnknown_203ACE8
_080FFF08:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r3
bcc _080FFEF2
_080FFF12:
movs r0, 0
_080FFF14:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FFEDC
thumb_func_start sub_80FFF1C
sub_80FFF1C: @ 80FFF1C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
movs r1, 0
ldr r2, _080FFF34 @ =gUnknown_843F2AC
_080FFF26:
ldrb r0, [r2]
cmp r0, r3
bne _080FFF38
lsls r0, r1, 24
lsrs r0, 24
b _080FFF42
.align 2, 0
_080FFF34: .4byte gUnknown_843F2AC
_080FFF38:
adds r2, 0x18
adds r1, 0x1
cmp r1, 0x9
bls _080FFF26
movs r0, 0
_080FFF42:
pop {r1}
bx r1
thumb_func_end sub_80FFF1C
thumb_func_start sub_80FFF48
sub_80FFF48: @ 80FFF48
push {r4,lr}
movs r2, 0
ldr r0, _080FFF68 @ =gUnknown_203ACE8
ldr r0, [r0]
ldrb r1, [r0, 0x7]
cmp r2, r1
bge _080FFF78
ldr r4, _080FFF6C @ =0x0000ffff
adds r3, r1, 0
adds r1, r0, 0
adds r1, 0x18
_080FFF5E:
ldrh r0, [r1]
cmp r0, r4
beq _080FFF70
movs r0, 0
b _080FFF7A
.align 2, 0
_080FFF68: .4byte gUnknown_203ACE8
_080FFF6C: .4byte 0x0000ffff
_080FFF70:
adds r1, 0x2
adds r2, 0x1
cmp r2, r3
blt _080FFF5E
_080FFF78:
movs r0, 0x1
_080FFF7A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FFF48
thumb_func_start sub_80FFF80
sub_80FFF80: @ 80FFF80
push {lr}
bl sub_8100BF4
lsls r0, 24
cmp r0, 0
beq _080FFF90
movs r0, 0x1
b _080FFF92
_080FFF90:
movs r0, 0
_080FFF92:
pop {r1}
bx r1
thumb_func_end sub_80FFF80
thumb_func_start sub_80FFF98
sub_80FFF98: @ 80FFF98
push {r4,lr}
sub sp, 0x8
ldr r0, _080FFFB4 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x5
bls _080FFFA8
b _08100100
_080FFFA8:
lsls r0, 2
ldr r1, _080FFFB8 @ =_080FFFBC
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FFFB4: .4byte gUnknown_203ACEC
_080FFFB8: .4byte _080FFFBC
.align 2, 0
_080FFFBC:
.4byte _080FFFD4
.4byte _08100038
.4byte _0810006C
.4byte _0810009C
.4byte _081000AE
.4byte _081000B8
_080FFFD4:
movs r0, 0
bl ResetBgsAndClearDma3BusyFlags
ldr r1, _08100028 @ =gUnknown_843F8A0
movs r0, 0
movs r2, 0x4
bl InitBgsFromTemplates
ldr r4, _0810002C @ =gUnknown_203ACEC
ldr r1, [r4]
movs r0, 0xB0
lsls r0, 4
adds r1, r0
movs r0, 0x3
bl SetBgTilemapBuffer
ldr r1, [r4]
movs r0, 0xC0
lsls r0, 2
adds r1, r0
movs r0, 0x1
bl SetBgTilemapBuffer
ldr r0, _08100030 @ =gUnknown_843F8B0
bl InitWindows
bl DeactivateAllTextPrinters
bl sub_8100CBC
bl sub_8100C5C
movs r0, 0
str r0, [sp, 0x4]
movs r1, 0xE0
lsls r1, 19
ldr r2, _08100034 @ =0x01000100
add r0, sp, 0x4
bl CpuFastSet
b _08100104
.align 2, 0
_08100028: .4byte gUnknown_843F8A0
_0810002C: .4byte gUnknown_203ACEC
_08100030: .4byte gUnknown_843F8B0
_08100034: .4byte 0x01000100
_08100038:
ldr r1, _08100064 @ =gUnknown_8E99DAC
movs r0, 0
str r0, [sp]
movs r0, 0x3
movs r2, 0
movs r3, 0
bl DecompressAndLoadBgGfxUsingHeap
ldr r1, _08100068 @ =gUnknown_8E99E74
movs r0, 0x3
movs r2, 0
movs r3, 0
bl CopyToBgTilemapBuffer
bl sub_8100F44
bl sub_8102428
movs r0, 0x3
bl CopyBgTilemapBufferToVram
b _08100104
.align 2, 0
_08100064: .4byte gUnknown_8E99DAC
_08100068: .4byte gUnknown_8E99E74
_0810006C:
ldr r0, _08100094 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 2
adds r0, r1
bl sub_8101100
ldr r1, _08100098 @ =gUnknown_843F7AC
movs r0, 0
str r0, [sp]
movs r0, 0x1
movs r2, 0
movs r3, 0
bl DecompressAndLoadBgGfxUsingHeap
movs r0, 0x1
bl CopyBgTilemapBufferToVram
b _08100104
.align 2, 0
_08100094: .4byte gUnknown_203ACEC
_08100098: .4byte gUnknown_843F7AC
_0810009C:
bl sub_8100D24
bl sub_8100E34
bl sub_8100FDC
bl sub_81012CC
b _08100104
_081000AE:
bl sub_8101A90
bl sub_8101AC4
b _08100104
_081000B8:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _0810010E
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_8101A5C
movs r0, 0x48
movs r1, 0x3F
bl SetGpuReg
movs r0, 0x4A
movs r1, 0x3B
bl SetGpuReg
movs r0, 0x3
bl ShowBg
movs r0, 0x1
bl ShowBg
movs r0, 0x2
bl ShowBg
movs r0, 0
bl ShowBg
bl sub_81021D4
bl sub_8102320
b _08100104
_08100100:
movs r0, 0
b _08100110
_08100104:
ldr r0, _08100118 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0810010E:
movs r0, 0x1
_08100110:
add sp, 0x8
pop {r4}
pop {r1}
bx r1
.align 2, 0
_08100118: .4byte gUnknown_203ACEC
thumb_func_end sub_80FFF98
thumb_func_start sub_810011C
sub_810011C: @ 810011C
push {lr}
ldr r0, _08100130 @ =gUnknown_203ACEC
ldr r0, [r0]
cmp r0, 0
beq _0810012A
bl Free
_0810012A:
pop {r0}
bx r0
.align 2, 0
_08100130: .4byte gUnknown_203ACEC
thumb_func_end sub_810011C
thumb_func_start sub_8100134
sub_8100134: @ 8100134
push {lr}
ldr r1, _08100148 @ =gUnknown_203ACEC
ldr r1, [r1]
movs r2, 0
strh r0, [r1, 0x4]
strh r2, [r1]
bl sub_810014C
pop {r0}
bx r0
.align 2, 0
_08100148: .4byte gUnknown_203ACEC
thumb_func_end sub_8100134
thumb_func_start sub_810014C
sub_810014C: @ 810014C
push {lr}
ldr r0, _08100164 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0, 0x4]
cmp r0, 0x16
bhi _08100250
lsls r0, 2
ldr r1, _08100168 @ =_0810016C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08100164: .4byte gUnknown_203ACEC
_08100168: .4byte _0810016C
.align 2, 0
_0810016C:
.4byte _08100250
.4byte _081001C8
.4byte _081001CE
.4byte _081001D4
.4byte _081001DA
.4byte _081001E0
.4byte _081001E6
.4byte _081001EC
.4byte _081001F2
.4byte _081001F8
.4byte _081001FE
.4byte _08100204
.4byte _0810020A
.4byte _08100210
.4byte _08100216
.4byte _0810021C
.4byte _08100222
.4byte _08100228
.4byte _0810022E
.4byte _08100234
.4byte _0810023A
.4byte _08100240
.4byte _08100246
_081001C8:
bl sub_8100258
b _0810024A
_081001CE:
bl sub_8100290
b _0810024A
_081001D4:
bl sub_8100374
b _0810024A
_081001DA:
bl sub_8100430
b _0810024A
_081001E0:
bl sub_81003A8
b _0810024A
_081001E6:
bl sub_81003EC
b _0810024A
_081001EC:
bl sub_8100474
b _0810024A
_081001F2:
bl sub_81004B8
b _0810024A
_081001F8:
bl sub_81004F4
b _0810024A
_081001FE:
bl sub_81005C0
b _0810024A
_08100204:
bl sub_81007D0
b _0810024A
_0810020A:
bl sub_8100890
b _0810024A
_08100210:
bl sub_810093C
b _0810024A
_08100216:
bl sub_8100720
b _0810024A
_0810021C:
bl sub_810072C
b _0810024A
_08100222:
bl sub_8100774
b _0810024A
_08100228:
bl sub_81009F8
b _0810024A
_0810022E:
bl sub_8100A78
b _0810024A
_08100234:
bl sub_8100A04
b _0810024A
_0810023A:
bl sub_8100B70
b _0810024A
_08100240:
bl sub_8100AE8
b _0810024A
_08100246:
bl sub_8100660
_0810024A:
lsls r0, 24
lsrs r0, 24
b _08100252
_08100250:
movs r0, 0
_08100252:
pop {r1}
bx r1
thumb_func_end sub_810014C
thumb_func_start sub_8100258
sub_8100258: @ 8100258
push {r4,lr}
ldr r4, _0810026C @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _08100270
cmp r0, 0x1
beq _0810027E
b _08100288
.align 2, 0
_0810026C: .4byte gUnknown_203ACEC
_08100270:
bl sub_8100FDC
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100288
_0810027E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0810028A
_08100288:
movs r0, 0x1
_0810028A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100258
thumb_func_start sub_8100290
sub_8100290: @ 8100290
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x40
bl sub_80FFD1C
adds r4, r0, 0
bl sub_80FFCE0
lsls r0, 24
lsrs r0, 24
mov r9, r0
bl sub_80FFD40
lsls r0, 24
lsrs r7, r0, 24
bl sub_80FFD4C
lsls r0, 24
lsrs r0, 24
mov r8, r0
bl sub_80FFD34
lsls r0, 24
lsrs r0, 24
mov r1, r8
muls r1, r0
adds r0, r1, 0
lsls r0, 1
adds r4, r0
ldr r1, _08100304 @ =gUnknown_843F888
mov r2, r9
lsls r0, r2, 2
adds r0, r1
ldrb r0, [r0]
lsls r0, 19
movs r1, 0xD0
lsls r1, 12
adds r0, r1
lsrs r6, r0, 16
movs r5, 0
cmp r5, r7
bcs _0810033A
ldr r2, _08100308 @ =0x0000ffff
mov r10, r2
_081002EE:
ldrh r0, [r4]
cmp r0, r10
bne _08100310
movs r0, 0x1
ldr r1, _0810030C @ =gUnknown_843F8D8
movs r2, 0
bl GetStringWidth
lsls r1, r0, 3
subs r0, r1, r0
b _08100322
.align 2, 0
_08100304: .4byte gUnknown_843F888
_08100308: .4byte 0x0000ffff
_0810030C: .4byte gUnknown_843F8D8
_08100310:
ldrh r1, [r4]
mov r0, sp
bl CopyEasyChatWord
movs r0, 0x1
mov r1, sp
movs r2, 0
bl GetStringWidth
_08100322:
adds r0, 0x11
lsls r1, r6, 16
asrs r1, 16
adds r1, r0
lsls r1, 16
lsrs r6, r1, 16
adds r4, 0x2
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, r7
bcc _081002EE
_0810033A:
ldr r1, _08100370 @ =gUnknown_843F888
mov r2, r9
lsls r0, r2, 2
adds r0, r1
mov r2, r8
lsls r1, r2, 1
ldrb r0, [r0, 0x1]
adds r1, r0
adds r1, 0x1
lsls r1, 3
adds r1, 0x1
lsls r0, r6, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
bl sub_8101B58
movs r0, 0
add sp, 0x40
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08100370: .4byte gUnknown_843F888
thumb_func_end sub_8100290
thumb_func_start sub_8100374
sub_8100374: @ 8100374
push {lr}
bl sub_80FFD40
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08100396
cmp r0, 0x1
bgt _0810038C
cmp r0, 0
beq _08100392
b _081003A2
_0810038C:
cmp r0, 0x2
beq _0810039A
b _081003A2
_08100392:
movs r0, 0x1C
b _0810039C
_08100396:
movs r0, 0x73
b _0810039C
_0810039A:
movs r0, 0xBF
_0810039C:
movs r1, 0x61
bl sub_8101B58
_081003A2:
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8100374
thumb_func_start sub_81003A8
sub_81003A8: @ 81003A8
push {r4,lr}
ldr r4, _081003BC @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _081003C0
cmp r0, 0x1
beq _081003DA
b _081003E4
.align 2, 0
_081003BC: .4byte gUnknown_203ACEC
_081003C0:
bl sub_8101B88
movs r0, 0x2
bl sub_8100E7C
movs r0, 0x1
bl sub_8100F18
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081003E4
_081003DA:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _081003E6
_081003E4:
movs r0, 0x1
_081003E6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81003A8
thumb_func_start sub_81003EC
sub_81003EC: @ 81003EC
push {r4,lr}
ldr r4, _08100400 @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _08100404
cmp r0, 0x1
beq _0810041E
b _08100428
.align 2, 0
_08100400: .4byte gUnknown_203ACEC
_08100404:
bl sub_8101B88
movs r0, 0x3
bl sub_8100E7C
movs r0, 0
bl sub_8100F18
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100428
_0810041E:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0810042A
_08100428:
movs r0, 0x1
_0810042A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81003EC
thumb_func_start sub_8100430
sub_8100430: @ 8100430
push {r4,lr}
ldr r4, _08100444 @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _08100448
cmp r0, 0x1
beq _08100462
b _0810046C
.align 2, 0
_08100444: .4byte gUnknown_203ACEC
_08100448:
bl sub_8101B88
movs r0, 0x1
bl sub_8100E7C
movs r0, 0x1
bl sub_8100F18
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _0810046C
_08100462:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _0810046E
_0810046C:
movs r0, 0x1
_0810046E:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100430
thumb_func_start sub_8100474
sub_8100474: @ 8100474
push {r4,lr}
ldr r4, _08100488 @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _0810048C
cmp r0, 0x1
beq _081004A6
b _081004B0
.align 2, 0
_08100488: .4byte gUnknown_203ACEC
_0810048C:
bl sub_8101BA8
movs r0, 0
bl sub_8100E7C
movs r0, 0
bl ShowBg
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081004B0
_081004A6:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
b _081004B2
_081004B0:
movs r0, 0x1
_081004B2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100474
thumb_func_start sub_81004B8
sub_81004B8: @ 81004B8
push {r4,lr}
ldr r4, _081004CC @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _081004D0
cmp r0, 0x1
beq _081004E6
movs r0, 0x1
b _081004EE
.align 2, 0
_081004CC: .4byte gUnknown_203ACEC
_081004D0:
bl sub_8101BA8
movs r0, 0
bl sub_8100E7C
bl sub_8100FDC
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_081004E6:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
lsrs r0, 24
_081004EE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81004B8
thumb_func_start sub_81004F4
sub_81004F4: @ 81004F4
push {lr}
ldr r0, _0810050C @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x4
bhi _081005AE
lsls r0, 2
ldr r1, _08100510 @ =_08100514
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0810050C: .4byte gUnknown_203ACEC
_08100510: .4byte _08100514
.align 2, 0
_08100514:
.4byte _08100528
.4byte _08100544
.4byte _08100556
.4byte _0810056C
.4byte _0810058C
_08100528:
bl sub_8101B88
movs r0, 0
bl HideBg
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_8101A5C
bl sub_810131C
b _0810057A
_08100544:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081005B8
movs r0, 0
bl sub_81015D4
b _0810057A
_08100556:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081005B8
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _081005B8
b _0810057A
_0810056C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081005B8
bl sub_8101FAC
_0810057A:
ldr r0, _08100588 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081005B8
.align 2, 0
_08100588: .4byte gUnknown_203ACEC
_0810058C:
bl sub_8102018
lsls r0, 24
cmp r0, 0
bne _081005B8
bl sub_8101BC0
movs r0, 0
bl sub_81022E0
bl sub_810224C
ldr r0, _081005B4 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_081005AE:
movs r0, 0
b _081005BA
.align 2, 0
_081005B4: .4byte gUnknown_203ACEC
_081005B8:
movs r0, 0x1
_081005BA:
pop {r1}
bx r1
thumb_func_end sub_81004F4
thumb_func_start sub_81005C0
sub_81005C0: @ 81005C0
push {lr}
ldr r0, _081005D8 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x4
bhi _08100658
lsls r0, 2
ldr r1, _081005DC @ =_081005E0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081005D8: .4byte gUnknown_203ACEC
_081005DC: .4byte _081005E0
.align 2, 0
_081005E0:
.4byte _081005F4
.4byte _08100602
.4byte _0810061E
.4byte _08100630
.4byte _08100654
_081005F4:
bl sub_8101C48
bl sub_81020AC
bl sub_81022B0
b _08100644
_08100602:
bl sub_81020D0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _08100658
movs r0, 0x1
bl sub_81015D4
ldr r0, _0810062C @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0810061E:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _08100658
b _08100644
.align 2, 0
_0810062C: .4byte gUnknown_203ACEC
_08100630:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100658
bl sub_8101BA8
movs r0, 0
bl ShowBg
_08100644:
ldr r0, _08100650 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100658
.align 2, 0
_08100650: .4byte gUnknown_203ACEC
_08100654:
movs r0, 0
b _0810065A
_08100658:
movs r0, 0x1
_0810065A:
pop {r1}
bx r1
thumb_func_end sub_81005C0
thumb_func_start sub_8100660
sub_8100660: @ 8100660
push {lr}
ldr r0, _08100678 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x4
bhi _08100718
lsls r0, 2
ldr r1, _0810067C @ =_08100680
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08100678: .4byte gUnknown_203ACEC
_0810067C: .4byte _08100680
.align 2, 0
_08100680:
.4byte _08100694
.4byte _081006A8
.4byte _081006C2
.4byte _081006E8
.4byte _0810070E
_08100694:
bl sub_8101C48
bl sub_81022B0
bl sub_810215C
movs r0, 0x5
bl sub_81015D4
b _081006D6
_081006A8:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _08100718
bl sub_81021B8
lsls r0, 24
cmp r0, 0
bne _08100718
bl sub_810131C
b _081006D6
_081006C2:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100718
movs r0, 0x6
bl sub_81015D4
bl sub_8102178
_081006D6:
ldr r0, _081006E4 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100718
.align 2, 0
_081006E4: .4byte gUnknown_203ACEC
_081006E8:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _08100718
bl sub_81021B8
lsls r0, 24
cmp r0, 0
bne _08100718
bl sub_810224C
bl sub_8101BC0
ldr r0, _08100714 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0810070E:
movs r0, 0
b _0810071A
.align 2, 0
_08100714: .4byte gUnknown_203ACEC
_08100718:
movs r0, 0x1
_0810071A:
pop {r1}
bx r1
thumb_func_end sub_8100660
thumb_func_start sub_8100720
sub_8100720: @ 8100720
push {lr}
bl sub_8101C80
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_8100720
thumb_func_start sub_810072C
sub_810072C: @ 810072C
push {r4,lr}
ldr r4, _08100740 @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0
beq _08100744
cmp r0, 0x1
beq _08100754
b _0810076A
.align 2, 0
_08100740: .4byte gUnknown_203ACEC
_08100744:
movs r0, 0x1
movs r1, 0x2
bl sub_81019B0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08100754:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _0810076A
bl sub_8101C80
bl sub_810224C
movs r0, 0
b _0810076C
_0810076A:
movs r0, 0x1
_0810076C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_810072C
thumb_func_start sub_8100774
sub_8100774: @ 8100774
push {r4,lr}
ldr r4, _0810078C @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0x1
beq _081007A8
cmp r0, 0x1
bgt _08100790
cmp r0, 0
beq _08100796
b _081007C8
.align 2, 0
_0810078C: .4byte gUnknown_203ACEC
_08100790:
cmp r0, 0x2
beq _081007C0
b _081007C8
_08100796:
movs r0, 0x1
negs r0, r0
movs r1, 0x2
bl sub_81019B0
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_081007A8:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _081007C8
bl sub_810224C
ldr r0, _081007C4 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_081007C0:
movs r0, 0
b _081007CA
.align 2, 0
_081007C4: .4byte gUnknown_203ACEC
_081007C8:
movs r0, 0x1
_081007CA:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100774
thumb_func_start sub_81007D0
sub_81007D0: @ 81007D0
push {lr}
ldr r0, _081007E8 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x5
bhi _08100888
lsls r0, 2
ldr r1, _081007EC @ =_081007F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081007E8: .4byte gUnknown_203ACEC
_081007EC: .4byte _081007F0
.align 2, 0
_081007F0:
.4byte _08100808
.4byte _08100816
.4byte _08100826
.4byte _08100838
.4byte _08100858
.4byte _0810087E
_08100808:
bl sub_8101C48
bl sub_81020AC
bl sub_81022B0
b _08100848
_08100816:
bl sub_81020D0
lsls r0, 24
cmp r0, 0
bne _08100888
bl sub_81015BC
b _08100848
_08100826:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100888
movs r0, 0x2
bl sub_81015D4
b _08100848
_08100838:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _08100888
movs r0, 0x2
bl sub_81012E0
_08100848:
ldr r0, _08100854 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100888
.align 2, 0
_08100854: .4byte gUnknown_203ACEC
_08100858:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100888
bl sub_8101E80
movs r0, 0x1
bl sub_81022E0
bl sub_810224C
bl sub_8102394
ldr r0, _08100884 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0810087E:
movs r0, 0
b _0810088A
.align 2, 0
_08100884: .4byte gUnknown_203ACEC
_08100888:
movs r0, 0x1
_0810088A:
pop {r1}
bx r1
thumb_func_end sub_81007D0
thumb_func_start sub_8100890
sub_8100890: @ 8100890
push {lr}
ldr r0, _081008A8 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x5
bhi _08100934
lsls r0, 2
ldr r1, _081008AC @ =_081008B0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081008A8: .4byte gUnknown_203ACEC
_081008AC: .4byte _081008B0
.align 2, 0
_081008B0:
.4byte _081008C8
.4byte _081008CE
.4byte _081008E0
.4byte _081008F2
.4byte _08100914
.4byte _0810092C
_081008C8:
bl sub_8100FDC
b _08100902
_081008CE:
bl sub_8101F80
bl sub_81022B0
bl sub_81023F8
bl sub_81015BC
b _08100902
_081008E0:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100934
movs r0, 0x3
bl sub_81015D4
b _08100902
_081008F2:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _08100934
movs r0, 0
bl ShowBg
_08100902:
ldr r0, _08100910 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100934
.align 2, 0
_08100910: .4byte gUnknown_203ACEC
_08100914:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100934
bl sub_8101BA8
ldr r0, _08100930 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_0810092C:
movs r0, 0
b _08100936
.align 2, 0
_08100930: .4byte gUnknown_203ACEC
_08100934:
movs r0, 0x1
_08100936:
pop {r1}
bx r1
thumb_func_end sub_8100890
thumb_func_start sub_810093C
sub_810093C: @ 810093C
push {lr}
ldr r0, _08100954 @ =gUnknown_203ACEC
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x4
bhi _081009F0
lsls r0, 2
ldr r1, _08100958 @ =_0810095C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08100954: .4byte gUnknown_203ACEC
_08100958: .4byte _0810095C
.align 2, 0
_0810095C:
.4byte _08100970
.4byte _08100982
.4byte _08100994
.4byte _081009A4
.4byte _081009C4
_08100970:
bl sub_8101F80
bl sub_81022B0
bl sub_81023F8
bl sub_81015BC
b _081009B2
_08100982:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081009F0
movs r0, 0x4
bl sub_81015D4
b _081009B2
_08100994:
bl sub_81016AC
lsls r0, 24
cmp r0, 0
bne _081009F0
bl sub_810131C
b _081009B2
_081009A4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _081009F0
bl sub_8101FAC
_081009B2:
ldr r0, _081009C0 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _081009F0
.align 2, 0
_081009C0: .4byte gUnknown_203ACEC
_081009C4:
bl sub_8102018
lsls r0, 24
cmp r0, 0
bne _081009F0
bl sub_8101BC0
movs r0, 0
bl sub_81022E0
bl sub_810224C
ldr r0, _081009EC @ =gUnknown_203ACEC
ldr r1, [r0]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
movs r0, 0
b _081009F2
.align 2, 0
_081009EC: .4byte gUnknown_203ACEC
_081009F0:
movs r0, 0x1
_081009F2:
pop {r1}
bx r1
thumb_func_end sub_810093C
thumb_func_start sub_81009F8
sub_81009F8: @ 81009F8
push {lr}
bl sub_8101F04
movs r0, 0
pop {r1}
bx r1
thumb_func_end sub_81009F8
thumb_func_start sub_8100A04
sub_8100A04: @ 8100A04
push {r4,lr}
ldr r4, _08100A1C @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0x1
beq _08100A30
cmp r0, 0x1
bgt _08100A20
cmp r0, 0
beq _08100A2A
b _08100A6E
.align 2, 0
_08100A1C: .4byte gUnknown_203ACEC
_08100A20:
cmp r0, 0x2
beq _08100A4C
cmp r0, 0x3
beq _08100A6A
b _08100A6E
_08100A2A:
bl sub_81013EC
b _08100A42
_08100A30:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100A6E
movs r0, 0x1
movs r1, 0x2
bl sub_81019B0
_08100A42:
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100A6E
_08100A4C:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _08100A6E
bl sub_8101F04
bl sub_810224C
bl sub_8102394
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08100A6A:
movs r0, 0
b _08100A70
_08100A6E:
movs r0, 0x1
_08100A70:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100A04
thumb_func_start sub_8100A78
sub_8100A78: @ 8100A78
push {r4,lr}
ldr r4, _08100A90 @ =gUnknown_203ACEC
ldr r0, [r4]
ldrh r0, [r0]
cmp r0, 0x1
beq _08100AA4
cmp r0, 0x1
bgt _08100A94
cmp r0, 0
beq _08100A9E
b _08100AE0
.align 2, 0
_08100A90: .4byte gUnknown_203ACEC
_08100A94:
cmp r0, 0x2
beq _08100AC2
cmp r0, 0x3
beq _08100ADC
b _08100AE0
_08100A9E:
bl sub_8101410
b _08100AB8
_08100AA4:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100AE0
movs r0, 0x1
negs r0, r0
movs r1, 0x2
bl sub_81019B0
_08100AB8:
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100AE0
_08100AC2:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _08100AE0
bl sub_810224C
bl sub_8102394
ldr r1, [r4]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08100ADC:
movs r0, 0
b _08100AE2
_08100AE0:
movs r0, 0x1
_08100AE2:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100A78
thumb_func_start sub_8100AE8
sub_8100AE8: @ 8100AE8
push {r4,r5,lr}
ldr r5, _08100B00 @ =gUnknown_203ACEC
ldr r0, [r5]
ldrh r0, [r0]
cmp r0, 0x1
beq _08100B14
cmp r0, 0x1
bgt _08100B04
cmp r0, 0
beq _08100B0E
b _08100B66
.align 2, 0
_08100B00: .4byte gUnknown_203ACEC
_08100B04:
cmp r0, 0x2
beq _08100B44
cmp r0, 0x3
beq _08100B62
b _08100B66
_08100B0E:
bl sub_8101434
b _08100B3A
_08100B14:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100B66
bl sub_80FFE48
adds r4, r0, 0
bl sub_8101A48
lsls r4, 24
lsrs r4, 24
subs r4, r0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
movs r1, 0x4
bl sub_81019B0
_08100B3A:
ldr r1, [r5]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100B66
_08100B44:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _08100B66
bl sub_8101F04
bl sub_810224C
bl sub_8102394
ldr r1, [r5]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08100B62:
movs r0, 0
b _08100B68
_08100B66:
movs r0, 0x1
_08100B68:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8100AE8
thumb_func_start sub_8100B70
sub_8100B70: @ 8100B70
push {r4,r5,lr}
ldr r5, _08100B88 @ =gUnknown_203ACEC
ldr r0, [r5]
ldrh r0, [r0]
cmp r0, 0x1
beq _08100B9C
cmp r0, 0x1
bgt _08100B8C
cmp r0, 0
beq _08100B96
b _08100BEA
.align 2, 0
_08100B88: .4byte gUnknown_203ACEC
_08100B8C:
cmp r0, 0x2
beq _08100BCC
cmp r0, 0x3
beq _08100BE6
b _08100BEA
_08100B96:
bl sub_8101478
b _08100BC2
_08100B9C:
bl IsDma3ManagerBusyWithBgCopy
lsls r0, 24
cmp r0, 0
bne _08100BEA
bl sub_80FFE48
adds r4, r0, 0
bl sub_8101A48
lsls r4, 24
lsrs r4, 24
subs r4, r0
lsls r4, 16
asrs r4, 16
adds r0, r4, 0
movs r1, 0x4
bl sub_81019B0
_08100BC2:
ldr r1, [r5]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _08100BEA
_08100BCC:
bl sub_8101A10
lsls r0, 24
cmp r0, 0
bne _08100BEA
bl sub_810224C
bl sub_8102394
ldr r1, [r5]
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
_08100BE6:
movs r0, 0
b _08100BEC
_08100BEA:
movs r0, 0x1
_08100BEC:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_8100B70
thumb_func_start sub_8100BF4
sub_8100BF4: @ 8100BF4
push {r4,lr}
ldr r4, _08100C50 @ =gUnknown_203ACEC
movs r0, 0x98
lsls r0, 5
bl Alloc
adds r2, r0, 0
str r2, [r4]
cmp r2, 0
beq _08100C54
movs r1, 0
strh r1, [r2]
movs r3, 0xB6
lsls r3, 2
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
adds r3, 0x4
adds r0, r2, r3
str r1, [r0]
movs r0, 0x1
b _08100C56
.align 2, 0
_08100C50: .4byte gUnknown_203ACEC
_08100C54:
movs r0, 0
_08100C56:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8100BF4
thumb_func_start sub_8100C5C
sub_8100C5C: @ 8100C5C
push {lr}
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x3
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x1
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0x2
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgX
movs r0, 0
movs r1, 0
movs r2, 0
bl ChangeBgY
movs r1, 0xC1
lsls r1, 6
movs r0, 0
bl SetGpuReg
pop {r0}
bx r0
thumb_func_end sub_8100C5C
thumb_func_start sub_8100CBC
sub_8100CBC: @ 8100CBC
push {r4,lr}
bl ResetPaletteFade
ldr r0, _08100D10 @ =gUnknown_8E99D8C
movs r1, 0
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D14 @ =gUnknown_843F76C
movs r1, 0x10
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D18 @ =gUnknown_843F78C
movs r1, 0x40
movs r2, 0x20
bl LoadPalette
ldr r0, _08100D1C @ =gUnknown_843F874
movs r1, 0xA0
movs r2, 0x8
bl LoadPalette
ldr r4, _08100D20 @ =gUnknown_843F87C
adds r0, r4, 0
movs r1, 0xB0
movs r2, 0xA
bl LoadPalette
adds r0, r4, 0
movs r1, 0xF0
movs r2, 0xA
bl LoadPalette
adds r0, r4, 0
movs r1, 0x30
movs r2, 0xA
bl LoadPalette
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08100D10: .4byte gUnknown_8E99D8C
_08100D14: .4byte gUnknown_843F76C
_08100D18: .4byte gUnknown_843F78C
_08100D1C: .4byte gUnknown_843F874
_08100D20: .4byte gUnknown_843F87C
thumb_func_end sub_8100CBC
thumb_func_start sub_8100D24
sub_8100D24: @ 8100D24
push {r4,r5,lr}
sub sp, 0x14
bl sub_80FFCFC
adds r5, r0, 0
cmp r5, 0
beq _08100D7A
movs r0, 0x1
adds r1, r5, 0
movs r2, 0
bl GetStringWidth
movs r4, 0x80
subs r4, r0
lsrs r4, 1
movs r0, 0
movs r1, 0
bl FillWindowPixelBuffer
lsls r4, 24
lsrs r4, 24
movs r1, 0
str r1, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x2
str r0, [sp, 0xC]
movs r0, 0x3
str r0, [sp, 0x10]
movs r0, 0
movs r1, 0x1
adds r2, r5, 0
adds r3, r4, 0
bl sub_8100DC4
movs r0, 0
bl PutWindowTilemap
movs r0, 0
movs r1, 0x3
bl CopyWindowToVram
_08100D7A:
add sp, 0x14
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8100D24
thumb_func_start sub_8100D84
sub_8100D84: @ 8100D84
push {r4-r6,lr}
sub sp, 0xC
adds r6, r2, 0
ldr r2, [sp, 0x1C]
ldr r4, [sp, 0x20]
lsls r0, 24
lsrs r5, r0, 24
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r3, 24
lsls r2, 24
lsrs r0, r2, 24
lsls r4, 24
lsrs r4, 24
cmp r1, 0x1
bne _08100DAC
adds r0, 0x2
lsls r0, 24
lsrs r0, 24
_08100DAC:
str r0, [sp]
str r4, [sp, 0x4]
ldr r0, [sp, 0x24]
str r0, [sp, 0x8]
adds r0, r5, 0
adds r2, r6, 0
bl AddTextPrinterParameterized
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_8100D84
thumb_func_start sub_8100DC4
sub_8100DC4: @ 8100DC4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x10
mov r9, r2
ldr r2, [sp, 0x2C]
ldr r4, [sp, 0x30]
ldr r5, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r7, [sp, 0x3C]
mov r8, r7
lsls r0, 24
lsrs r0, 24
mov r12, r0
lsls r1, 24
lsrs r1, 24
lsls r3, 24
lsrs r7, r3, 24
lsls r2, 24
lsrs r3, r2, 24
lsls r4, 24
lsrs r4, 24
lsls r5, 24
lsrs r5, 24
lsls r6, 24
lsrs r6, 24
mov r0, r8
lsls r0, 24
lsrs r2, r0, 24
cmp r1, 0x1
bne _08100E0A
adds r0, r3, 0x2
lsls r0, 24
lsrs r3, r0, 24
_08100E0A:
add r0, sp, 0xC
strb r5, [r0]
strb r6, [r0, 0x1]
strb r2, [r0, 0x2]
str r0, [sp]
lsls r0, r4, 24
asrs r0, 24
str r0, [sp, 0x4]
mov r0, r9
str r0, [sp, 0x8]
mov r0, r12
adds r2, r7, 0
bl AddTextPrinterParameterized3
add sp, 0x10
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_8100DC4
thumb_func_start sub_8100E34
sub_8100E34: @ 8100E34
push {lr}
sub sp, 0xC
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
str r0, [sp, 0x4]
movs r0, 0x11
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl FillBgTilemapBufferRect
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE0
bl TextWindow_SetUserSelectedFrame
movs r0, 0x1
movs r1, 0x1
movs r2, 0xE
bl DrawTextBorderOuter
movs r0, 0
bl sub_8100E7C
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0
bl CopyBgTilemapBufferToVram
add sp, 0xC
pop {r0}
bx r0
thumb_func_end sub_8100E34
thumb_func_start sub_8100E7C
sub_8100E7C: @ 8100E7C
push {lr}
sub sp, 0x14
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
movs r0, 0
str r0, [sp, 0x10]
str r0, [sp, 0xC]
cmp r1, 0x1
beq _08100EC2
cmp r1, 0x1
bgt _08100E9A
cmp r1, 0
beq _08100EA4
b _08100ECA
_08100E9A:
cmp r2, 0x2
beq _08100EAE
cmp r2, 0x3
beq _08100EB8
b _08100ECA
_08100EA4:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_80FFD58
b _08100ECA
_08100EAE:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_80FFDC8
b _08100ECA
_08100EB8:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_80FFD90
b _08100ECA
_08100EC2:
add r1, sp, 0x10
add r0, sp, 0xC
bl sub_80FFDF4
_08100ECA:
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, [sp, 0xC]
cmp r2, 0
beq _08100EEC
movs r1, 0
str r1, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
str r1, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r3, 0
bl sub_8100D84
_08100EEC:
ldr r2, [sp, 0x10]
cmp r2, 0
beq _08100F08
movs r0, 0x10
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x1
movs r1, 0x1
movs r3, 0
bl sub_8100D84
_08100F08:
movs r0, 0x1
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x14
pop {r0}
bx r0
thumb_func_end sub_8100E7C
thumb_func_start sub_8100F18
sub_8100F18: @ 8100F18
push {lr}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
ldr r2, _08100F40 @ =gUnknown_843F8D0
movs r1, 0x1
str r1, [sp]
movs r1, 0xE
str r1, [sp, 0x4]
str r0, [sp, 0x8]
adds r0, r2, 0
movs r1, 0x1
movs r2, 0
movs r3, 0x2
bl CreateYesNoMenu
add sp, 0xC
pop {r0}
bx r0
.align 2, 0
_08100F40: .4byte gUnknown_843F8D0
thumb_func_end sub_8100F18
thumb_func_start sub_8100F44
sub_8100F44: @ 8100F44
push {r4,r5,lr}
sub sp, 0x8
bl sub_80FFCE0
lsls r0, 24
ldr r5, _08100FC0 @ =0xffffff00
ldr r3, [sp]
ands r3, r5
movs r1, 0x3
orrs r3, r1
str r3, [sp]
ldr r1, _08100FC4 @ =gUnknown_843F888
lsrs r0, 22
adds r0, r1
ldrb r2, [r0]
lsls r2, 8
ldr r4, _08100FC8 @ =0xffff00ff
adds r1, r4, 0
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r2, [r0, 0x1]
lsls r2, 16
ldr r3, _08100FCC @ =0xff00ffff
ands r3, r1
orrs r3, r2
str r3, [sp]
ldrb r2, [r0, 0x2]
lsls r2, 24
ldr r1, _08100FD0 @ =0x00ffffff
ands r1, r3
orrs r1, r2
str r1, [sp]
ldrb r1, [r0, 0x3]
ldr r0, [sp, 0x4]
ands r0, r5
orrs r0, r1
ands r0, r4
movs r1, 0xB0
lsls r1, 4
orrs r0, r1
ldr r1, _08100FD4 @ =0x0000ffff
ands r0, r1
movs r1, 0xC0
lsls r1, 15
orrs r0, r1
str r0, [sp, 0x4]
mov r0, sp
bl AddWindow
ldr r1, _08100FD8 @ =gUnknown_203ACEC
ldr r1, [r1]
strh r0, [r1, 0x2]
lsls r0, 24
lsrs r0, 24
bl PutWindowTilemap
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08100FC0: .4byte 0xffffff00
_08100FC4: .4byte gUnknown_843F888
_08100FC8: .4byte 0xffff00ff
_08100FCC: .4byte 0xff00ffff
_08100FD0: .4byte 0x00ffffff
_08100FD4: .4byte 0x0000ffff
_08100FD8: .4byte gUnknown_203ACEC
thumb_func_end sub_8100F44
thumb_func_start sub_8100FDC
sub_8100FDC: @ 8100FDC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x14
bl sub_80FFD1C
adds r4, r0, 0
bl sub_80FFD34
lsls r0, 24
lsrs r0, 24
mov r8, r0
bl sub_80FFD28
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0xC]
bl sub_80FFCE0
lsls r0, 24
lsrs r0, 24
str r0, [sp, 0x10]
ldr r0, _0810101C @ =gUnknown_203ACEC
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x11
bl FillWindowPixelBuffer
movs r6, 0
b _081010D6
.align 2, 0
_0810101C: .4byte gUnknown_203ACEC
_08101020:
ldr r0, _0810105C @ =gUnknown_203ACEC
ldr r1, [r0]
adds r2, r1, 0
adds r2, 0xA
movs r0, 0xFF
strb r0, [r1, 0xA]
adds r0, r2, 0
ldr r1, _08101060 @ =gUnknown_843F8DB
bl StringAppend
adds r2, r0, 0
movs r5, 0
lsls r7, r6, 28
adds r0, r6, 0x1
mov r9, r0
cmp r5, r8
bge _081010B4
ldr r0, _08101064 @ =0x0000ffff
mov r10, r0
_08101046:
ldrh r0, [r4]
cmp r0, r10
beq _08101068
adds r1, r0, 0
adds r0, r2, 0
bl CopyEasyChatWord
adds r2, r0, 0
adds r4, 0x2
b _08101096
.align 2, 0
_0810105C: .4byte gUnknown_203ACEC
_08101060: .4byte gUnknown_843F8DB
_08101064: .4byte 0x0000ffff
_08101068:
adds r0, r2, 0
movs r1, 0
movs r2, 0x4
bl WriteColorChangeControlCode
adds r2, r0, 0
adds r4, 0x2
movs r3, 0xF9
movs r1, 0x9
movs r0, 0x6
_0810107C:
strb r3, [r2]
adds r2, 0x1
strb r1, [r2]
adds r2, 0x1
subs r0, 0x1
cmp r0, 0
bge _0810107C
adds r0, r2, 0
movs r1, 0
movs r2, 0x2
bl WriteColorChangeControlCode
adds r2, r0, 0
_08101096:
adds r0, r2, 0
ldr r1, _081010F8 @ =gUnknown_843F8DB
bl StringAppend
adds r2, r0, 0
ldr r0, [sp, 0x10]
cmp r0, 0x2
bne _081010AE
cmp r5, 0
bne _081010AE
cmp r6, 0x4
beq _081010B4
_081010AE:
adds r5, 0x1
cmp r5, r8
blt _08101046
_081010B4:
movs r0, 0xFF
strb r0, [r2]
ldr r0, _081010FC @ =gUnknown_203ACEC
ldr r2, [r0]
ldrb r0, [r2, 0x2]
adds r2, 0xA
lsrs r1, r7, 24
str r1, [sp]
movs r1, 0xFF
str r1, [sp, 0x4]
movs r1, 0
str r1, [sp, 0x8]
movs r1, 0x1
movs r3, 0
bl sub_8100D84
mov r6, r9
_081010D6:
ldr r0, [sp, 0xC]
cmp r6, r0
blt _08101020
ldr r0, _081010FC @ =gUnknown_203ACEC
ldr r0, [r0]
ldrb r0, [r0, 0x2]
movs r1, 0x3
bl CopyWindowToVram
add sp, 0x14
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081010F8: .4byte gUnknown_843F8DB
_081010FC: .4byte gUnknown_203ACEC
thumb_func_end sub_8100FDC
thumb_func_start sub_8101100
sub_8101100: @ 8101100
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
mov r8, r0
bl sub_80FFCE0
lsls r0, 24
lsrs r5, r0, 24
movs r0, 0
str r0, [sp]
ldr r2, _08101194 @ =0x01000200
mov r0, sp
mov r1, r8
bl CpuFastSet
cmp r5, 0x2
bne _081011A4
ldr r0, _08101198 @ =gUnknown_843F888
adds r1, r0, 0
adds r1, 0x8
ldrb r5, [r0, 0x8]
ldrb r0, [r1, 0x2]
adds r4, r5, r0
ldrb r2, [r1, 0x1]
ldrb r0, [r1, 0x3]
adds r0, r2
mov r12, r0
adds r7, r2, 0
cmp r7, r12
blt _08101144
b _08101296
_08101144:
adds r3, r5, 0
lsls r0, r3, 1
mov r9, r0
_0810114A:
subs r6, r3, 0x1
lsls r0, r7, 5
adds r1, r0, r6
lsls r1, 1
add r1, r8
ldr r5, _0810119C @ =0x00001005
adds r2, r5, 0
strh r2, [r1]
adds r6, r3, 0
adds r5, r0, 0
adds r2, r7, 0x1
cmp r6, r4
bge _0810117E
movs r0, 0x80
lsls r0, 5
adds r1, r0, 0
lsls r0, r7, 6
add r0, r8
add r0, r9
subs r6, r4, r6
_08101172:
strh r1, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _08101172
adds r6, r4, 0
_0810117E:
adds r0, r5, r6
lsls r0, 1
add r0, r8
ldr r5, _081011A0 @ =0x00001007
adds r1, r5, 0
strh r1, [r0]
adds r7, r2, 0
cmp r7, r12
blt _0810114A
b _08101296
.align 2, 0
_08101194: .4byte 0x01000200
_08101198: .4byte gUnknown_843F888
_0810119C: .4byte 0x00001005
_081011A0: .4byte 0x00001007
_081011A4:
ldr r6, _081012A8 @ =gUnknown_843F888
mov r9, r6
lsls r5, 2
adds r1, r5, r6
ldrb r3, [r1, 0x1]
subs r7, r3, 0x1
ldrb r2, [r1]
subs r6, r2, 0x1
ldrb r0, [r1, 0x2]
adds r4, r2, r0
ldrb r0, [r1, 0x3]
adds r3, r0
mov r12, r3
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r3, _081012AC @ =0x00001001
adds r1, r3, 0
strh r1, [r0]
adds r6, r2, 0
mov r10, r9
mov r9, r5
cmp r6, r4
bge _081011F0
ldr r5, _081012B0 @ =0x00001002
adds r2, r5, 0
lsls r1, r6, 1
lsls r0, r7, 6
add r0, r8
adds r1, r0
subs r6, r4, r6
_081011E4:
strh r2, [r1]
adds r1, 0x2
subs r6, 0x1
cmp r6, 0
bne _081011E4
adds r6, r4, 0
_081011F0:
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r6, _081012B4 @ =0x00001003
adds r1, r6, 0
strh r1, [r0]
adds r7, 0x1
cmp r7, r12
bge _08101252
ldr r0, _081012A8 @ =gUnknown_843F888
add r0, r9
ldrb r3, [r0]
lsls r5, r3, 1
_0810120C:
subs r6, r3, 0x1
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r2, _081012B8 @ =0x00001005
adds r1, r2, 0
strh r1, [r0]
adds r6, r3, 0
adds r2, r7, 0x1
cmp r6, r4
bge _0810123E
movs r0, 0x80
lsls r0, 5
adds r1, r0, 0
lsls r0, r7, 6
add r0, r8
adds r0, r5, r0
subs r6, r4, r6
_08101232:
strh r1, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _08101232
adds r6, r4, 0
_0810123E:
lsls r0, r7, 5
adds r0, r6
lsls r0, 1
add r0, r8
ldr r6, _081012BC @ =0x00001007
adds r1, r6, 0
strh r1, [r0]
adds r7, r2, 0
cmp r7, r12
blt _0810120C
_08101252:
mov r0, r9
add r0, r10
ldrb r3, [r0]
subs r6, r3, 0x1
lsls r2, r7, 5
adds r0, r2, r6
lsls r0, 1
add r0, r8
ldr r5, _081012C0 @ =0x00001009
adds r1, r5, 0
strh r1, [r0]
adds r6, r3, 0
adds r5, r2, 0
cmp r6, r4
bge _0810128A
ldr r0, _081012C4 @ =0x0000100a
adds r2, r0, 0
lsls r1, r6, 1
lsls r0, r7, 6
add r0, r8
adds r0, r1, r0
subs r6, r4, r6
_0810127E:
strh r2, [r0]
adds r0, 0x2
subs r6, 0x1
cmp r6, 0
bne _0810127E
adds r6, r4, 0
_0810128A:
adds r0, r5, r6
lsls r0, 1
add r0, r8
ldr r2, _081012C8 @ =0x0000100b
adds r1, r2, 0
strh r1, [r0]
_08101296:
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_081012A8: .4byte gUnknown_843F888
_081012AC: .4byte 0x00001001
_081012B0: .4byte 0x00001002
_081012B4: .4byte 0x00001003
_081012B8: .4byte 0x00001005
_081012BC: .4byte 0x00001007
_081012C0: .4byte 0x00001009
_081012C4: .4byte 0x0000100a
_081012C8: .4byte 0x0000100b
thumb_func_end sub_8101100
thumb_func_start sub_81012CC
sub_81012CC: @ 81012CC
push {lr}
movs r0, 0x2
bl PutWindowTilemap
movs r0, 0x2
bl CopyBgTilemapBufferToVram
pop {r0}
bx r0
thumb_func_end sub_81012CC
thumb_func_start sub_81012E0
sub_81012E0: @ 81012E0
push {r4,lr}
adds r4, r0, 0
bl sub_810198C
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
cmp r4, 0x1
beq _08101304
cmp r4, 0x1
bcc _081012FE
cmp r4, 0x2
beq _0810130A
b _0810130E
_081012FE:
bl sub_810133C
b _0810130E
_08101304:
bl sub_81013A0
b _0810130E
_0810130A:
bl sub_81013DC
_0810130E:
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81012E0
thumb_func_start sub_810131C
sub_810131C: @ 810131C
push {lr}
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08101330
movs r0, 0
bl sub_81012E0
b _08101336
_08101330:
movs r0, 0x1
bl sub_81012E0
_08101336:
pop {r0}
bx r0
thumb_func_end sub_810131C
thumb_func_start sub_810133C
sub_810133C: @ 810133C
push {r4-r7,lr}
sub sp, 0xC
movs r5, 0
movs r7, 0x60
_08101344:
movs r4, 0
lsls r0, r7, 24
lsrs r6, r0, 24
_0810134A:
lsls r0, r5, 24
lsrs r0, 24
adds r5, 0x1
bl sub_80BDF44
lsls r0, 24
lsrs r0, 24
cmp r0, 0x16
beq _0810138A
bl sub_80BDFB0
adds r2, r0, 0
movs r0, 0x54
adds r3, r4, 0
muls r3, r0
adds r3, 0xA
lsls r3, 24
lsrs r3, 24
str r6, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
bl sub_8100D84
adds r4, 0x1
cmp r4, 0x1
ble _0810134A
adds r7, 0x10
b _08101344
_0810138A:
bl sub_80FFE28
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_81019B0
add sp, 0xC
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_810133C
thumb_func_start sub_81013A0
sub_81013A0: @ 81013A0
push {r4-r6,lr}
sub sp, 0xC
movs r5, 0
movs r4, 0xC0
lsls r4, 23
ldr r6, _081013D8 @ =gUnknown_843F8E0
_081013AC:
ldm r6!, {r2}
lsrs r0, r4, 24
str r0, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
movs r3, 0xA
bl sub_8100D84
movs r0, 0x80
lsls r0, 21
adds r4, r0
adds r5, 0x1
cmp r5, 0x3
bls _081013AC
add sp, 0xC
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081013D8: .4byte gUnknown_843F8E0
thumb_func_end sub_81013A0
thumb_func_start sub_81013DC
sub_81013DC: @ 81013DC
push {lr}
movs r0, 0
movs r1, 0x4
bl sub_81014AC
pop {r0}
bx r0
thumb_func_end sub_81013DC
thumb_func_start sub_81013EC
sub_81013EC: @ 81013EC
push {r4,lr}
bl sub_80FFE48
adds r4, r0, 0
adds r4, 0x3
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_8101558
adds r0, r4, 0
movs r1, 0x1
bl sub_81014AC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81013EC
thumb_func_start sub_8101410
sub_8101410: @ 8101410
push {r4,lr}
bl sub_80FFE48
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
bl sub_8101558
adds r0, r4, 0
movs r1, 0x1
bl sub_81014AC
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101410
thumb_func_start sub_8101434
sub_8101434: @ 8101434
push {r4,r5,lr}
bl sub_80FFE48
lsls r0, 24
lsrs r0, 24
adds r5, r0, 0
adds r0, r5, 0x4
lsls r0, 24
lsrs r4, r0, 24
bl sub_80FFE54
adds r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r4, r0
bls _08101456
adds r4, r0, 0
_08101456:
cmp r5, r4
bcs _08101470
subs r4, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8101558
adds r0, r5, 0
adds r1, r4, 0
bl sub_81014AC
_08101470:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101434
thumb_func_start sub_8101478
sub_8101478: @ 8101478
push {r4,r5,lr}
bl sub_80FFE48
lsls r0, 24
lsrs r5, r0, 24
bl sub_8101A48
lsls r0, 24
lsrs r0, 24
cmp r5, r0
bcs _081014A4
subs r4, r0, r5
lsls r4, 24
lsrs r4, 24
adds r0, r5, 0
adds r1, r4, 0
bl sub_8101558
adds r0, r5, 0
adds r1, r4, 0
bl sub_81014AC
_081014A4:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101478
thumb_func_start sub_81014AC
sub_81014AC: @ 81014AC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0xC
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r10, r1
lsls r4, r0, 1
lsls r0, 4
adds r1, r0, 0
adds r1, 0x60
movs r0, 0xFF
ands r1, r0
movs r0, 0
cmp r0, r10
bge _08101538
ldr r2, _08101550 @ =gUnknown_203ACEC
mov r9, r2
_081014D8:
movs r5, 0
movs r2, 0x10
adds r2, r1
mov r8, r2
adds r7, r0, 0x1
lsls r0, r1, 24
lsrs r6, r0, 24
_081014E6:
lsls r0, r4, 16
lsrs r0, 16
adds r4, 0x1
bl sub_80BE19C
lsls r0, 16
lsrs r1, r0, 16
ldr r0, _08101554 @ =0x0000ffff
cmp r1, r0
beq _0810152A
mov r2, r9
ldr r0, [r2]
adds r0, 0xCB
movs r2, 0
bl CopyEasyChatWordPadded
mov r0, r9
ldr r2, [r0]
adds r2, 0xCB
movs r0, 0xD
adds r3, r5, 0
muls r3, r0
adds r3, 0x3
lsls r3, 27
lsrs r3, 24
str r6, [sp]
movs r0, 0xFF
str r0, [sp, 0x4]
movs r0, 0
str r0, [sp, 0x8]
movs r0, 0x2
movs r1, 0x1
bl sub_8100D84
_0810152A:
adds r5, 0x1
cmp r5, 0x1
ble _081014E6
mov r1, r8
adds r0, r7, 0
cmp r0, r10
blt _081014D8
_08101538:
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
add sp, 0xC
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101550: .4byte gUnknown_203ACEC
_08101554: .4byte 0x0000ffff
thumb_func_end sub_81014AC
thumb_func_start sub_8101558
sub_8101558: @ 8101558
push {r4,r5,lr}
sub sp, 0x8
lsls r0, 24
lsls r1, 24
lsrs r0, 20
adds r3, r0, 0
adds r3, 0x60
movs r0, 0xFF
ands r3, r0
lsrs r0, r1, 20
adds r1, r3, r0
cmp r1, 0xFF
ble _08101584
ldr r0, _08101580 @ =0xffffff00
adds r4, r1, r0
movs r0, 0x80
lsls r0, 1
subs r0, r3
b _08101586
.align 2, 0
_08101580: .4byte 0xffffff00
_08101584:
movs r4, 0
_08101586:
movs r5, 0xE0
str r5, [sp]
lsls r0, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
bl FillWindowPixelRect
cmp r4, 0
beq _081015B2
str r5, [sp]
lsls r0, r4, 16
lsrs r0, 16
str r0, [sp, 0x4]
movs r0, 0x2
movs r1, 0x11
movs r2, 0
movs r3, 0
bl FillWindowPixelRect
_081015B2:
add sp, 0x8
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101558
thumb_func_start sub_81015BC
sub_81015BC: @ 81015BC
push {lr}
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
movs r0, 0x2
movs r1, 0x2
bl CopyWindowToVram
pop {r0}
bx r0
thumb_func_end sub_81015BC
thumb_func_start sub_81015D4
sub_81015D4: @ 81015D4
push {lr}
ldr r1, _081015E8 @ =gUnknown_203ACEC
cmp r0, 0x6
bhi _0810168E
lsls r0, 2
ldr r1, _081015EC @ =_081015F0
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_081015E8: .4byte gUnknown_203ACEC
_081015EC: .4byte _081015F0
.align 2, 0
_081015F0:
.4byte _0810160C
.4byte _08101620
.4byte _08101630
.4byte _08101644
.4byte _08101658
.4byte _0810166C
.4byte _08101680
_0810160C:
ldr r1, _0810161C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0810168C
.align 2, 0
_0810161C: .4byte gUnknown_203ACEC
_08101620:
ldr r1, _0810162C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0
movs r0, 0x9
b _0810164C
.align 2, 0
_0810162C: .4byte gUnknown_203ACEC
_08101630:
ldr r1, _08101640 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0xB
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x11
b _0810168C
.align 2, 0
_08101640: .4byte gUnknown_203ACEC
_08101644:
ldr r1, _08101654 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0
movs r0, 0x11
_0810164C:
strb r0, [r2, 0x6]
ldr r0, [r1]
strb r3, [r0, 0x7]
b _0810168E
.align 2, 0
_08101654: .4byte gUnknown_203ACEC
_08101658:
ldr r1, _08101668 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x11
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0xA
b _0810168C
.align 2, 0
_08101668: .4byte gUnknown_203ACEC
_0810166C:
ldr r1, _0810167C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x12
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x16
b _0810168C
.align 2, 0
_0810167C: .4byte gUnknown_203ACEC
_08101680:
ldr r1, _081016A8 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r0, 0x16
strb r0, [r2, 0x6]
ldr r2, [r1]
movs r0, 0x12
_0810168C:
strb r0, [r2, 0x7]
_0810168E:
ldr r1, [r1]
ldrb r0, [r1, 0x6]
movs r3, 0x1
negs r3, r3
adds r2, r3, 0
ldrb r3, [r1, 0x7]
cmp r0, r3
bcs _081016A0
movs r2, 0x1
_081016A0:
strb r2, [r1, 0x8]
pop {r0}
bx r0
.align 2, 0
_081016A8: .4byte gUnknown_203ACEC
thumb_func_end sub_81015D4
thumb_func_start sub_81016AC
sub_81016AC: @ 81016AC
push {r4,lr}
ldr r4, _081016D8 @ =gUnknown_203ACEC
ldr r1, [r4]
ldrb r2, [r1, 0x6]
ldrb r0, [r1, 0x7]
cmp r2, r0
beq _081016DC
ldrb r0, [r1, 0x8]
adds r0, r2, r0
strb r0, [r1, 0x6]
ldr r0, [r4]
ldrb r0, [r0, 0x6]
bl sub_81016E4
ldr r0, [r4]
ldrb r1, [r0, 0x6]
ldrb r0, [r0, 0x7]
eors r1, r0
negs r0, r1
orrs r0, r1
lsrs r0, 31
b _081016DE
.align 2, 0
_081016D8: .4byte gUnknown_203ACEC
_081016DC:
movs r0, 0
_081016DE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_81016AC
thumb_func_start sub_81016E4
sub_81016E4: @ 81016E4
push {r4,lr}
sub sp, 0x8
lsls r0, 24
lsrs r4, r0, 24
movs r0, 0x1E
str r0, [sp]
movs r0, 0xA
str r0, [sp, 0x4]
movs r0, 0x1
movs r1, 0
movs r2, 0
movs r3, 0xA
bl FillBgTilemapBufferRect_Palette0
cmp r4, 0x16
bls _08101706
b _08101822
_08101706:
lsls r0, r4, 2
ldr r1, _08101710 @ =_08101714
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08101710: .4byte _08101714
.align 2, 0
_08101714:
.4byte _08101822
.4byte _08101770
.4byte _08101778
.4byte _08101780
.4byte _08101788
.4byte _08101790
.4byte _08101798
.4byte _08101808
.4byte _081017FA
.4byte _081017EC
.4byte _081017DE
.4byte _081017A6
.4byte _081017AE
.4byte _081017B6
.4byte _081017BE
.4byte _081017C6
.4byte _081017CE
.4byte _081017D6
.4byte _081017DE
.4byte _081017EC
.4byte _081017FA
.4byte _08101808
.4byte _08101816
_08101770:
movs r0, 0xB
movs r1, 0xE
movs r2, 0x3
b _0810179E
_08101778:
movs r0, 0x9
movs r1, 0xE
movs r2, 0x7
b _0810179E
_08101780:
movs r0, 0x7
movs r1, 0xE
movs r2, 0xB
b _0810179E
_08101788:
movs r0, 0x5
movs r1, 0xE
movs r2, 0xF
b _0810179E
_08101790:
movs r0, 0x3
movs r1, 0xE
movs r2, 0x13
b _0810179E
_08101798:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
_0810179E:
movs r3, 0x2
bl sub_8101830
b _08101822
_081017A6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x18
b _081017E4
_081017AE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x19
b _081017E4
_081017B6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1A
b _081017E4
_081017BE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1B
b _081017E4
_081017C6:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1C
b _081017E4
_081017CE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x1D
b _081017E4
_081017D6:
movs r0, 0
movs r1, 0xA
movs r2, 0x1E
b _081017E4
_081017DE:
movs r0, 0x1
movs r1, 0xA
movs r2, 0x17
_081017E4:
movs r3, 0xA
bl sub_8101830
b _08101822
_081017EC:
movs r0, 0x1
movs r1, 0xB
movs r2, 0x17
movs r3, 0x8
bl sub_8101830
b _08101822
_081017FA:
movs r0, 0x1
movs r1, 0xC
movs r2, 0x17
movs r3, 0x6
bl sub_8101830
b _08101822
_08101808:
movs r0, 0x1
movs r1, 0xD
movs r2, 0x17
movs r3, 0x4
bl sub_8101830
b _08101822
_08101816:
movs r0, 0x1
movs r1, 0xE
movs r2, 0x17
movs r3, 0x2
bl sub_8101830
_08101822:
movs r0, 0x1
bl CopyBgTilemapBufferToVram
add sp, 0x8
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_81016E4
thumb_func_start sub_8101830
sub_8101830: @ 8101830
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
mov r12, r0
adds r7, r1, 0
mov r9, r2
mov r10, r3
ldr r0, _08101968 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xC0
lsls r1, 2
adds r6, r0, r1
mov r0, r12
add r0, r9
subs r5, r0, 0x1
adds r0, r7, r3
subs r0, 0x1
mov r8, r0
mov r2, r12
adds r3, r7, 0
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r4, _0810196C @ =0x00004001
adds r1, r4, 0
strh r1, [r0]
adds r2, 0x1
cmp r2, r5
bge _0810188C
ldr r0, _08101970 @ =0x00004002
adds r4, r0, 0
lsls r1, r2, 1
lsls r0, r3, 6
adds r0, r6
adds r1, r0
subs r2, r5, r2
_08101880:
strh r4, [r1]
adds r1, 0x2
subs r2, 0x1
cmp r2, 0
bne _08101880
adds r2, r5, 0
_0810188C:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, _08101974 @ =0x00004003
adds r1, r2, 0
strh r1, [r0]
adds r3, 0x1
mov r4, r12
adds r4, 0x1
adds r0, r7, 0x1
str r0, [sp, 0x4]
mov r1, r9
subs r1, 0x2
str r1, [sp]
movs r2, 0x2
negs r2, r2
add r10, r2
cmp r3, r8
bge _081018FC
lsls r7, r4, 1
mov r9, r7
_081018B8:
lsls r0, r3, 5
add r0, r12
lsls r0, 1
adds r0, r6
ldr r2, _08101978 @ =0x00004005
adds r1, r2, 0
strh r1, [r0]
adds r2, r4, 0
adds r7, r3, 0x1
cmp r4, r5
bge _081018E8
movs r0, 0x80
lsls r0, 7
adds r1, r0, 0
lsls r0, r3, 6
adds r0, r6
add r0, r9
subs r2, r5, r4
_081018DC:
strh r1, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _081018DC
adds r2, r5, 0
_081018E8:
lsls r0, r3, 5
adds r0, r2
lsls r0, 1
adds r0, r6
ldr r2, _0810197C @ =0x00004007
adds r1, r2, 0
strh r1, [r0]
adds r3, r7, 0
cmp r3, r8
blt _081018B8
_081018FC:
lsls r0, r3, 5
mov r7, r12
adds r1, r0, r7
lsls r1, 1
adds r1, r6
ldr r7, _08101980 @ =0x00004009
adds r2, r7, 0
strh r2, [r1]
adds r2, r4, 0
mov r12, r0
cmp r4, r5
bge _0810192E
ldr r0, _08101984 @ =0x0000400a
adds r7, r0, 0
lsls r1, r4, 1
lsls r0, r3, 6
adds r0, r6
adds r0, r1, r0
subs r2, r5, r4
_08101922:
strh r7, [r0]
adds r0, 0x2
subs r2, 0x1
cmp r2, 0
bne _08101922
adds r2, r5, 0
_0810192E:
mov r1, r12
adds r0, r1, r2
lsls r0, 1
adds r0, r6
ldr r2, _08101988 @ =0x0000400b
adds r1, r2, 0
strh r1, [r0]
lsls r0, r4, 27
lsrs r0, 24
ldr r3, [sp, 0x4]
lsls r1, r3, 27
lsrs r1, 24
ldr r4, [sp]
lsls r2, r4, 27
lsrs r2, 24
mov r7, r10
lsls r3, r7, 27
lsrs r3, 24
bl sub_8101A5C
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101968: .4byte gUnknown_203ACEC
_0810196C: .4byte 0x00004001
_08101970: .4byte 0x00004002
_08101974: .4byte 0x00004003
_08101978: .4byte 0x00004005
_0810197C: .4byte 0x00004007
_08101980: .4byte 0x00004009
_08101984: .4byte 0x0000400a
_08101988: .4byte 0x0000400b
thumb_func_end sub_8101830
thumb_func_start sub_810198C
sub_810198C: @ 810198C
push {lr}
movs r1, 0x80
lsls r1, 4
movs r0, 0x2
movs r2, 0
bl ChangeBgY
ldr r0, _081019AC @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB3
lsls r1, 2
adds r0, r1
movs r1, 0
strh r1, [r0]
pop {r0}
bx r0
.align 2, 0
_081019AC: .4byte gUnknown_203ACEC
thumb_func_end sub_810198C
thumb_func_start sub_81019B0
sub_81019B0: @ 81019B0
push {r4,r5,lr}
adds r4, r0, 0
lsls r4, 16
lsrs r4, 16
lsls r1, 24
lsrs r5, r1, 24
movs r0, 0x2
bl GetBgY
adds r2, r0, 0
ldr r0, _081019FC @ =gUnknown_203ACEC
ldr r3, [r0]
movs r0, 0xB3
lsls r0, 2
adds r1, r3, r0
ldrh r0, [r1]
adds r0, r4
strh r0, [r1]
lsls r4, 20
asrs r4, 16
lsls r0, r4, 8
adds r2, r0
cmp r5, 0
beq _08101A00
movs r1, 0xB4
lsls r1, 2
adds r0, r3, r1
str r2, [r0]
movs r0, 0xB5
lsls r0, 2
adds r1, r3, r0
lsls r0, r5, 8
str r0, [r1]
cmp r4, 0
bge _08101A0A
negs r0, r0
str r0, [r1]
b _08101A0A
.align 2, 0
_081019FC: .4byte gUnknown_203ACEC
_08101A00:
movs r0, 0x2
adds r1, r2, 0
movs r2, 0
bl ChangeBgY
_08101A0A:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_81019B0
thumb_func_start sub_8101A10
sub_8101A10: @ 8101A10
push {lr}
movs r0, 0x2
bl GetBgY
ldr r1, _08101A3C @ =gUnknown_203ACEC
ldr r2, [r1]
movs r3, 0xB4
lsls r3, 2
adds r1, r2, r3
ldr r1, [r1]
cmp r0, r1
beq _08101A40
movs r1, 0xB5
lsls r1, 2
adds r0, r2, r1
ldr r1, [r0]
movs r0, 0x2
movs r2, 0x1
bl ChangeBgY
movs r0, 0x1
b _08101A42
.align 2, 0
_08101A3C: .4byte gUnknown_203ACEC
_08101A40:
movs r0, 0
_08101A42:
pop {r1}
bx r1
thumb_func_end sub_8101A10
thumb_func_start sub_8101A48
sub_8101A48: @ 8101A48
ldr r0, _08101A58 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB3
lsls r1, 2
adds r0, r1
ldrh r0, [r0]
bx lr
.align 2, 0
_08101A58: .4byte gUnknown_203ACEC
thumb_func_end sub_8101A48
thumb_func_start sub_8101A5C
sub_8101A5C: @ 8101A5C
push {r4,r5,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
lsls r2, 24
lsrs r2, 24
lsls r3, 24
lsrs r3, 24
lsls r4, r0, 8
adds r0, r2
orrs r4, r0
lsls r5, r1, 8
adds r1, r3
orrs r5, r1
movs r0, 0x40
adds r1, r4, 0
bl SetGpuReg
movs r0, 0x44
adds r1, r5, 0
bl SetGpuReg
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_8101A5C
thumb_func_start sub_8101A90
sub_8101A90: @ 8101A90
push {r4,r5,lr}
ldr r0, _08101AB8 @ =gUnknown_843F8F0
bl LoadSpriteSheets
ldr r0, _08101ABC @ =gUnknown_843F910
bl LoadSpritePalettes
movs r5, 0
ldr r4, _08101AC0 @ =gUnknown_843F938
_08101AA2:
adds r0, r4, 0
bl LoadCompressedSpriteSheet
adds r4, 0x8
adds r5, 0x1
cmp r5, 0x3
bls _08101AA2
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_08101AB8: .4byte gUnknown_843F8F0
_08101ABC: .4byte gUnknown_843F910
_08101AC0: .4byte gUnknown_843F938
thumb_func_end sub_8101A90
thumb_func_start sub_8101AC4
sub_8101AC4: @ 8101AC4
push {lr}
bl sub_80FFCE0
lsls r0, 24
ldr r1, _08101B10 @ =gUnknown_843F888
lsrs r0, 22
adds r0, r1
ldrb r1, [r0]
lsls r1, 19
ldrb r2, [r0, 0x1]
adds r2, 0x1
lsls r2, 3
adds r2, 0x1
ldr r0, _08101B14 @ =gUnknown_843F968
movs r3, 0xD0
lsls r3, 12
adds r1, r3
asrs r1, 16
movs r3, 0x2
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _08101B18 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r1, 0xB6
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08101B1C @ =gSprites
adds r1, r0
str r1, [r2]
movs r0, 0x1
strh r0, [r1, 0x30]
pop {r0}
bx r0
.align 2, 0
_08101B10: .4byte gUnknown_843F888
_08101B14: .4byte gUnknown_843F968
_08101B18: .4byte gUnknown_203ACEC
_08101B1C: .4byte gSprites
thumb_func_end sub_8101AC4
thumb_func_start sub_8101B20
sub_8101B20: @ 8101B20
push {lr}
adds r1, r0, 0
movs r2, 0x30
ldrsh r0, [r1, r2]
cmp r0, 0
beq _08101B4E
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101B4E
movs r0, 0
strh r0, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
cmp r0, 0
ble _08101B4E
ldr r0, _08101B54 @ =0x0000fffa
strh r0, [r1, 0x24]
_08101B4E:
pop {r0}
bx r0
.align 2, 0
_08101B54: .4byte 0x0000fffa
thumb_func_end sub_8101B20
thumb_func_start sub_8101B58
sub_8101B58: @ 8101B58
push {r4,lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
ldr r2, _08101B84 @ =gUnknown_203ACEC
ldr r2, [r2]
movs r3, 0xB6
lsls r3, 2
adds r2, r3
ldr r3, [r2]
movs r4, 0
strh r0, [r3, 0x20]
ldr r0, [r2]
strh r1, [r0, 0x22]
ldr r0, [r2]
strh r4, [r0, 0x24]
ldr r0, [r2]
strh r4, [r0, 0x2E]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101B84: .4byte gUnknown_203ACEC
thumb_func_end sub_8101B58
thumb_func_start sub_8101B88
sub_8101B88: @ 8101B88
ldr r0, _08101BA4 @ =gUnknown_203ACEC
ldr r1, [r0]
movs r0, 0xB6
lsls r0, 2
adds r1, r0
ldr r0, [r1]
movs r2, 0
strh r2, [r0, 0x2E]
ldr r0, [r1]
strh r2, [r0, 0x30]
ldr r0, [r1]
strh r2, [r0, 0x24]
bx lr
.align 2, 0
_08101BA4: .4byte gUnknown_203ACEC
thumb_func_end sub_8101B88
thumb_func_start sub_8101BA8
sub_8101BA8: @ 8101BA8
ldr r0, _08101BBC @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB6
lsls r1, 2
adds r0, r1
ldr r1, [r0]
movs r0, 0x1
strh r0, [r1, 0x30]
bx lr
.align 2, 0
_08101BBC: .4byte gUnknown_203ACEC
thumb_func_end sub_8101BA8
thumb_func_start sub_8101BC0
sub_8101BC0: @ 8101BC0
push {r4-r6,lr}
mov r6, r8
push {r6}
ldr r6, _08101C38 @ =gUnknown_843F9B8
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, _08101C3C @ =gUnknown_203ACEC
ldr r2, [r5]
movs r1, 0xB7
lsls r1, 2
mov r8, r1
add r2, r8
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, _08101C40 @ =gSprites
adds r1, r4
str r1, [r2]
movs r0, 0x20
strh r0, [r1, 0x24]
adds r0, r6, 0
movs r1, 0
movs r2, 0
movs r3, 0x3
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
movs r1, 0xB8
lsls r1, 2
adds r3, r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r3]
ldr r0, _08101C44 @ =0x0000ffe0
strh r0, [r1, 0x24]
add r2, r8
ldr r1, [r2]
adds r1, 0x3F
ldrb r0, [r1]
movs r2, 0x1
orrs r0, r2
strb r0, [r1]
bl sub_8101C80
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08101C38: .4byte gUnknown_843F9B8
_08101C3C: .4byte gUnknown_203ACEC
_08101C40: .4byte gSprites
_08101C44: .4byte 0x0000ffe0
thumb_func_end sub_8101BC0
thumb_func_start sub_8101C48
sub_8101C48: @ 8101C48
push {r4-r6,lr}
ldr r5, _08101C7C @ =gUnknown_203ACEC
ldr r0, [r5]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
adds r4, r0, r4
movs r6, 0
str r6, [r4]
movs r4, 0xB8
lsls r4, 2
adds r0, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
adds r0, r4
str r6, [r0]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08101C7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101C48
thumb_func_start sub_8101C80
sub_8101C80: @ 8101C80
push {r4,lr}
sub sp, 0x4
ldr r0, _08101CC8 @ =gUnknown_203ACEC
ldr r1, [r0]
movs r2, 0xB7
lsls r2, 2
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _08101CDC
adds r2, 0x4
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
beq _08101CDC
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_80FFE08
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08101CCC
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_8101CE4
b _08101CDC
.align 2, 0
_08101CC8: .4byte gUnknown_203ACEC
_08101CCC:
mov r0, sp
ldrb r0, [r0]
lsls r0, 24
asrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
bl sub_8101D9C
_08101CDC:
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101C80
thumb_func_start sub_8101CE4
sub_8101CE4: @ 8101CE4
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r1, 24
lsrs r7, r1, 24
lsls r0, 24
asrs r5, r0, 24
movs r0, 0x1
negs r0, r0
cmp r5, r0
beq _08101D48
ldr r0, _08101D44 @ =gUnknown_203ACEC
mov r8, r0
ldr r0, [r0]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0
bl StartSpriteAnim
mov r2, r8
ldr r1, [r2]
adds r4, r1, r4
ldr r2, [r4]
movs r0, 0x54
muls r5, r0
adds r5, 0x3A
strh r5, [r2, 0x20]
ldr r0, [r4]
lsls r4, r7, 24
asrs r4, 20
adds r4, 0x60
strh r4, [r0, 0x22]
movs r6, 0xB8
lsls r6, 2
adds r1, r6
ldr r0, [r1]
movs r1, 0
bl StartSpriteAnim
mov r1, r8
ldr r0, [r1]
adds r0, r6
ldr r1, [r0]
strh r5, [r1, 0x20]
b _08101D8A
.align 2, 0
_08101D44: .4byte gUnknown_203ACEC
_08101D48:
ldr r6, _08101D98 @ =gUnknown_203ACEC
ldr r0, [r6]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
ldr r1, [r6]
adds r4, r1, r4
ldr r0, [r4]
movs r2, 0xD8
mov r8, r2
mov r2, r8
strh r2, [r0, 0x20]
ldr r0, [r4]
lsls r4, r7, 24
asrs r4, 20
adds r4, 0x70
strh r4, [r0, 0x22]
movs r5, 0xB8
lsls r5, 2
adds r1, r5
ldr r0, [r1]
movs r1, 0x1
bl StartSpriteAnim
ldr r0, [r6]
adds r0, r5
ldr r1, [r0]
mov r2, r8
strh r2, [r1, 0x20]
_08101D8A:
ldr r0, [r0]
strh r4, [r0, 0x22]
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101D98: .4byte gUnknown_203ACEC
thumb_func_end sub_8101CE4
thumb_func_start sub_8101D9C
sub_8101D9C: @ 8101D9C
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsls r1, 24
lsrs r5, r1, 24
lsrs r4, r0, 24
asrs r2, r0, 24
movs r0, 0x1
negs r0, r0
cmp r2, r0
beq _08101E2C
lsls r0, r5, 24
asrs r1, r0, 24
lsls r0, r1, 4
adds r0, 0x60
mov r8, r0
movs r7, 0x20
cmp r2, 0x6
bne _08101DCE
cmp r1, 0
bne _08101DCE
movs r7, 0x9D
movs r6, 0x2
b _08101DE4
_08101DCE:
ldr r3, _08101E24 @ =gUnknown_843F958
lsls r1, r4, 24
lsrs r0, r1, 24
movs r2, 0
cmp r0, 0x6
bhi _08101DDC
asrs r2, r1, 24
_08101DDC:
adds r0, r2, r3
ldrb r0, [r0]
adds r7, r0
movs r6, 0x3
_08101DE4:
ldr r5, _08101E28 @ =gUnknown_203ACEC
ldr r0, [r5]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
adds r1, r6, 0
bl StartSpriteAnim
ldr r1, [r5]
adds r4, r1, r4
ldr r0, [r4]
strh r7, [r0, 0x20]
ldr r0, [r4]
mov r2, r8
strh r2, [r0, 0x22]
movs r4, 0xB8
lsls r4, 2
adds r1, r4
ldr r0, [r1]
adds r1, r6, 0
bl StartSpriteAnim
ldr r0, [r5]
adds r0, r4
ldr r1, [r0]
strh r7, [r1, 0x20]
ldr r0, [r0]
mov r1, r8
strh r1, [r0, 0x22]
b _08101E72
.align 2, 0
_08101E24: .4byte gUnknown_843F958
_08101E28: .4byte gUnknown_203ACEC
_08101E2C:
ldr r6, _08101E7C @ =gUnknown_203ACEC
ldr r0, [r6]
movs r4, 0xB7
lsls r4, 2
adds r0, r4
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
ldr r1, [r6]
adds r4, r1, r4
ldr r0, [r4]
movs r2, 0xD8
mov r8, r2
mov r2, r8
strh r2, [r0, 0x20]
ldr r0, [r4]
lsls r4, r5, 24
asrs r4, 20
adds r4, 0x70
strh r4, [r0, 0x22]
movs r5, 0xB8
lsls r5, 2
adds r1, r5
ldr r0, [r1]
movs r1, 0x1
bl StartSpriteAnim
ldr r0, [r6]
adds r0, r5
ldr r1, [r0]
mov r2, r8
strh r2, [r1, 0x20]
ldr r0, [r0]
strh r4, [r0, 0x22]
_08101E72:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_08101E7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101D9C
thumb_func_start sub_8101E80
sub_8101E80: @ 8101E80
push {lr}
ldr r0, _08101EC4 @ =gUnknown_843F968
movs r1, 0
movs r2, 0
movs r3, 0x4
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r1, _08101EC8 @ =gUnknown_203ACEC
ldr r2, [r1]
movs r1, 0xB9
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r0, _08101ECC @ =gSprites
adds r1, r0
str r1, [r2]
ldr r0, _08101ED0 @ =sub_8101ED4
str r0, [r1, 0x1C]
ldrb r2, [r1, 0x5]
movs r0, 0xD
negs r0, r0
ands r0, r2
movs r2, 0x8
orrs r0, r2
strb r0, [r1, 0x5]
bl sub_8101F04
pop {r0}
bx r0
.align 2, 0
_08101EC4: .4byte gUnknown_843F968
_08101EC8: .4byte gUnknown_203ACEC
_08101ECC: .4byte gSprites
_08101ED0: .4byte sub_8101ED4
thumb_func_end sub_8101E80
thumb_func_start sub_8101ED4
sub_8101ED4: @ 8101ED4
push {lr}
adds r1, r0, 0
ldrh r0, [r1, 0x2E]
adds r0, 0x1
strh r0, [r1, 0x2E]
lsls r0, 16
asrs r0, 16
cmp r0, 0x2
ble _08101EFA
movs r0, 0
strh r0, [r1, 0x2E]
ldrh r0, [r1, 0x24]
adds r0, 0x1
strh r0, [r1, 0x24]
lsls r0, 16
cmp r0, 0
ble _08101EFA
ldr r0, _08101F00 @ =0x0000fffa
strh r0, [r1, 0x24]
_08101EFA:
pop {r0}
bx r0
.align 2, 0
_08101F00: .4byte 0x0000fffa
thumb_func_end sub_8101ED4
thumb_func_start sub_8101F04
sub_8101F04: @ 8101F04
push {r4,lr}
sub sp, 0x4
mov r4, sp
adds r4, 0x1
mov r0, sp
adds r1, r4, 0
bl sub_80FFE34
mov r0, sp
movs r1, 0
ldrsb r1, [r0, r1]
movs r0, 0xD
muls r0, r1
adds r0, 0x3
lsls r0, 24
lsrs r0, 24
movs r1, 0
ldrsb r1, [r4, r1]
lsls r1, 25
movs r2, 0xB0
lsls r2, 20
adds r1, r2
lsrs r1, 24
bl sub_8101F40
add sp, 0x4
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_8101F04
thumb_func_start sub_8101F40
sub_8101F40: @ 8101F40
push {r4,lr}
lsls r0, 24
lsrs r2, r0, 24
lsls r1, 24
lsrs r4, r1, 24
ldr r0, _08101F7C @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xB9
lsls r1, 2
adds r3, r0, r1
ldr r1, [r3]
cmp r1, 0
beq _08101F74
lsls r0, r2, 3
adds r0, 0x4
movs r2, 0
strh r0, [r1, 0x20]
ldr r1, [r3]
adds r0, r4, 0x1
lsls r0, 3
adds r0, 0x1
strh r0, [r1, 0x22]
ldr r0, [r3]
strh r2, [r0, 0x24]
ldr r0, [r3]
strh r2, [r0, 0x2E]
_08101F74:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101F7C: .4byte gUnknown_203ACEC
thumb_func_end sub_8101F40
thumb_func_start sub_8101F80
sub_8101F80: @ 8101F80
push {r4,lr}
ldr r4, _08101FA8 @ =gUnknown_203ACEC
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
ldr r0, [r0]
cmp r0, 0
beq _08101FA2
bl DestroySprite
ldr r0, [r4]
movs r1, 0xB9
lsls r1, 2
adds r0, r1
movs r1, 0
str r1, [r0]
_08101FA2:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08101FA8: .4byte gUnknown_203ACEC
thumb_func_end sub_8101F80
thumb_func_start sub_8101FAC
sub_8101FAC: @ 8101FAC
push {r4-r6,lr}
ldr r0, _08102004 @ =gUnknown_843FA40
movs r1, 0xD0
movs r2, 0x80
movs r3, 0x6
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r5, _08102008 @ =gUnknown_203ACEC
ldr r2, [r5]
movs r1, 0xBA
lsls r1, 2
adds r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
ldr r4, _0810200C @ =gSprites
adds r1, r4
str r1, [r2]
movs r6, 0
ldr r0, _08102010 @ =0x0000ffc0
strh r0, [r1, 0x24]
ldr r0, _08102014 @ =gUnknown_843FA20
movs r1, 0xD0
movs r2, 0x50
movs r3, 0x5
bl CreateSprite
lsls r0, 24
lsrs r0, 24
ldr r2, [r5]
movs r1, 0xBB
lsls r1, 2
adds r3, r2, r1
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r4
str r1, [r3]
strb r6, [r2, 0x9]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08102004: .4byte gUnknown_843FA40
_08102008: .4byte gUnknown_203ACEC
_0810200C: .4byte gSprites
_08102010: .4byte 0x0000ffc0
_08102014: .4byte gUnknown_843FA20
thumb_func_end sub_8101FAC
thumb_func_start sub_8102018
sub_8102018: @ 8102018
push {r4,lr}
ldr r4, _0810202C @ =gUnknown_203ACEC
ldr r2, [r4]
ldrb r3, [r2, 0x9]
cmp r3, 0
beq _08102030
cmp r3, 0x1
beq _08102088
movs r0, 0
b _081020A6
.align 2, 0
_0810202C: .4byte gUnknown_203ACEC
_08102030:
movs r0, 0xBA
lsls r0, 2
adds r2, r0
ldr r1, [r2]
ldrh r0, [r1, 0x24]
adds r0, 0x8
strh r0, [r1, 0x24]
ldr r2, [r2]
movs r1, 0x24
ldrsh r0, [r2, r1]
cmp r0, 0
blt _081020A4
strh r3, [r2, 0x24]
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _08102066
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _08102076
_08102066:
ldr r0, [r4]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_08102076:
ldr r0, _08102084 @ =gUnknown_203ACEC
ldr r1, [r0]
ldrb r0, [r1, 0x9]
adds r0, 0x1
strb r0, [r1, 0x9]
b _081020A4
.align 2, 0
_08102084: .4byte gUnknown_203ACEC
_08102088:
movs r1, 0xBB
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _081020A4
movs r0, 0x2
strb r0, [r2, 0x9]
movs r0, 0
b _081020A6
_081020A4:
movs r0, 0x1
_081020A6:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8102018
thumb_func_start sub_81020AC
sub_81020AC: @ 81020AC
push {lr}
ldr r2, _081020CC @ =gUnknown_203ACEC
ldr r1, [r2]
movs r0, 0
strb r0, [r1, 0x9]
ldr r0, [r2]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x3
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_081020CC: .4byte gUnknown_203ACEC
thumb_func_end sub_81020AC
thumb_func_start sub_81020D0
sub_81020D0: @ 81020D0
push {r4-r6,lr}
ldr r5, _081020E4 @ =gUnknown_203ACEC
ldr r3, [r5]
ldrb r0, [r3, 0x9]
cmp r0, 0
beq _081020E8
cmp r0, 0x1
beq _08102102
movs r0, 0
b _08102154
.align 2, 0
_081020E4: .4byte gUnknown_203ACEC
_081020E8:
movs r1, 0xBB
lsls r1, 2
adds r0, r3, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x10
ands r0, r1
cmp r0, 0
beq _08102152
movs r0, 0x1
strb r0, [r3, 0x9]
b _08102152
_08102102:
movs r0, 0xBA
lsls r0, 2
adds r2, r3, r0
ldr r1, [r2]
ldrh r0, [r1, 0x24]
subs r0, 0x8
movs r6, 0
strh r0, [r1, 0x24]
ldr r0, [r2]
movs r2, 0x24
ldrsh r1, [r0, r2]
movs r0, 0x40
negs r0, r0
cmp r1, r0
bgt _08102152
movs r4, 0xBB
lsls r4, 2
adds r0, r3, r4
ldr r0, [r0]
bl DestroySprite
ldr r0, [r5]
movs r1, 0xBA
lsls r1, 2
adds r0, r1
ldr r0, [r0]
bl DestroySprite
ldr r1, [r5]
adds r4, r1, r4
str r6, [r4]
movs r2, 0xBA
lsls r2, 2
adds r0, r1, r2
str r6, [r0]
ldrb r0, [r1, 0x9]
adds r0, 0x1
strb r0, [r1, 0x9]
movs r0, 0
b _08102154
_08102152:
movs r0, 0x1
_08102154:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_81020D0
thumb_func_start sub_810215C
sub_810215C: @ 810215C
push {lr}
ldr r0, _08102174 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x4
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_08102174: .4byte gUnknown_203ACEC
thumb_func_end sub_810215C
thumb_func_start sub_8102178
sub_8102178: @ 8102178
push {lr}
bl sub_80FFE1C
lsls r0, 24
cmp r0, 0
bne _0810219C
ldr r0, _08102198 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x1
bl StartSpriteAnim
b _081021AE
.align 2, 0
_08102198: .4byte gUnknown_203ACEC
_0810219C:
ldr r0, _081021B4 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
movs r1, 0x2
bl StartSpriteAnim
_081021AE:
pop {r0}
bx r0
.align 2, 0
_081021B4: .4byte gUnknown_203ACEC
thumb_func_end sub_8102178
thumb_func_start sub_81021B8
sub_81021B8: @ 81021B8
ldr r0, _081021D0 @ =gUnknown_203ACEC
ldr r0, [r0]
movs r1, 0xBB
lsls r1, 2
adds r0, r1
ldr r0, [r0]
adds r0, 0x3F
ldrb r1, [r0]
lsrs r1, 4
movs r0, 0x1
bics r0, r1
bx lr
.align 2, 0
_081021D0: .4byte gUnknown_203ACEC
thumb_func_end sub_81021B8
thumb_func_start sub_81021D4
sub_81021D4: @ 81021D4
push {r4,lr}
ldr r4, _08102240 @ =gUnknown_843FA98
adds r0, r4, 0
movs r1, 0x60
movs r2, 0x50
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _08102202
ldr r0, _08102244 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBC
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102248 @ =gSprites
adds r0, r1
str r0, [r2]
_08102202:
adds r0, r4, 0
movs r1, 0x60
movs r2, 0x9C
movs r3, 0
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _08102236
ldr r0, _08102244 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBD
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102248 @ =gSprites
adds r0, r1
str r0, [r2]
adds r0, 0x3F
ldrb r1, [r0]
movs r2, 0x2
orrs r1, r2
strb r1, [r0]
_08102236:
bl sub_81022B0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102240: .4byte gUnknown_843FA98
_08102244: .4byte gUnknown_203ACEC
_08102248: .4byte gSprites
thumb_func_end sub_81021D4
thumb_func_start sub_810224C
sub_810224C: @ 810224C
push {r4-r6,lr}
bl sub_80FFE64
ldr r6, _081022AC @ =gUnknown_203ACEC
ldr r1, [r6]
movs r2, 0xBC
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _08102266
movs r2, 0x1
_08102266:
adds r3, r1, 0
adds r3, 0x3E
movs r4, 0x1
lsls r2, 2
ldrb r1, [r3]
movs r5, 0x5
negs r5, r5
adds r0, r5, 0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_80FFE98
ldr r1, [r6]
movs r2, 0xBD
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _08102292
movs r2, 0x1
_08102292:
adds r3, r1, 0
adds r3, 0x3E
adds r1, r4, 0
ands r1, r2
lsls r1, 2
ldrb r2, [r3]
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081022AC: .4byte gUnknown_203ACEC
thumb_func_end sub_810224C
thumb_func_start sub_81022B0
sub_81022B0: @ 81022B0
ldr r3, _081022DC @ =gUnknown_203ACEC
ldr r0, [r3]
movs r1, 0xBC
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, 0xBD
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_081022DC: .4byte gUnknown_203ACEC
thumb_func_end sub_81022B0
thumb_func_start sub_81022E0
sub_81022E0: @ 81022E0
push {lr}
cmp r0, 0
bne _081022FC
ldr r0, _081022F8 @ =gUnknown_203ACEC
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x60
b _0810230A
.align 2, 0
_081022F8: .4byte gUnknown_203ACEC
_081022FC:
ldr r0, _0810231C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r1, 0xBC
lsls r1, 2
adds r0, r2, r1
ldr r0, [r0]
movs r1, 0x78
_0810230A:
strh r1, [r0, 0x20]
movs r3, 0xBD
lsls r3, 2
adds r0, r2, r3
ldr r0, [r0]
strh r1, [r0, 0x20]
pop {r0}
bx r0
.align 2, 0
_0810231C: .4byte gUnknown_203ACEC
thumb_func_end sub_81022E0
thumb_func_start sub_8102320
sub_8102320: @ 8102320
push {r4,lr}
ldr r4, _08102388 @ =gUnknown_843FA80
adds r0, r4, 0
movs r1, 0xDC
movs r2, 0x54
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810234E
ldr r0, _0810238C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBE
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102390 @ =gSprites
adds r0, r1
str r0, [r2]
_0810234E:
adds r0, r4, 0
movs r1, 0xDC
movs r2, 0x9C
movs r3, 0x1
bl CreateSprite
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x40
beq _0810237E
ldr r0, _0810238C @ =gUnknown_203ACEC
ldr r2, [r0]
movs r0, 0xBF
lsls r0, 2
adds r2, r0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08102390 @ =gSprites
adds r0, r1
str r0, [r2]
movs r1, 0x1
bl StartSpriteAnim
_0810237E:
bl sub_81023F8
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08102388: .4byte gUnknown_843FA80
_0810238C: .4byte gUnknown_203ACEC
_08102390: .4byte gSprites
thumb_func_end sub_8102320
thumb_func_start sub_8102394
sub_8102394: @ 8102394
push {r4-r6,lr}
bl sub_80FFE64
ldr r6, _081023F4 @ =gUnknown_203ACEC
ldr r1, [r6]
movs r2, 0xBE
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _081023AE
movs r2, 0x1
_081023AE:
adds r3, r1, 0
adds r3, 0x3E
movs r4, 0x1
lsls r2, 2
ldrb r1, [r3]
movs r5, 0x5
negs r5, r5
adds r0, r5, 0
ands r0, r1
orrs r0, r2
strb r0, [r3]
bl sub_80FFE98
ldr r1, [r6]
movs r2, 0xBF
lsls r2, 2
adds r1, r2
ldr r1, [r1]
movs r2, 0
cmp r0, 0
bne _081023DA
movs r2, 0x1
_081023DA:
adds r3, r1, 0
adds r3, 0x3E
adds r1, r4, 0
ands r1, r2
lsls r1, 2
ldrb r2, [r3]
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r3]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_081023F4: .4byte gUnknown_203ACEC
thumb_func_end sub_8102394
thumb_func_start sub_81023F8
sub_81023F8: @ 81023F8
ldr r3, _08102424 @ =gUnknown_203ACEC
ldr r0, [r3]
movs r1, 0xBE
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
movs r2, 0x4
orrs r0, r2
strb r0, [r1]
ldr r0, [r3]
movs r1, 0xBF
lsls r1, 2
adds r0, r1
ldr r1, [r0]
adds r1, 0x3E
ldrb r0, [r1]
orrs r0, r2
strb r0, [r1]
bx lr
.align 2, 0
_08102424: .4byte gUnknown_203ACEC
thumb_func_end sub_81023F8
thumb_func_start sub_8102428
sub_8102428: @ 8102428
push {r4,lr}
sub sp, 0x14
ldr r3, _081024A8 @ =0xffffff00
ldr r0, [sp, 0xC]
ands r0, r3
movs r1, 0x3
orrs r0, r1
ldr r2, _081024AC @ =0xffff00ff
ands r0, r2
movs r1, 0x80
lsls r1, 3
orrs r0, r1
ldr r1, _081024B0 @ =0xff00ffff
ands r0, r1
movs r1, 0xB0
lsls r1, 12
orrs r0, r1
ldr r1, _081024B4 @ =0x00ffffff
ands r0, r1
movs r1, 0xC0
lsls r1, 21
orrs r0, r1
str r0, [sp, 0xC]
ldr r0, [sp, 0x10]
ands r0, r3
movs r1, 0x2
orrs r0, r1
ands r0, r2
movs r1, 0xB0
lsls r1, 4
orrs r0, r1
ldr r1, _081024B8 @ =0x0000ffff
ands r0, r1
movs r1, 0xC0
lsls r1, 14
orrs r0, r1
str r0, [sp, 0x10]
add r0, sp, 0xC
bl AddWindow
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x11
bl FillWindowPixelBuffer
ldr r2, _081024BC @ =gUnknown_841EE2B
movs r0, 0
str r0, [sp]
str r0, [sp, 0x4]
str r0, [sp, 0x8]
adds r0, r4, 0
movs r1, 0x1
movs r3, 0
bl sub_8100D84
adds r0, r4, 0
bl PutWindowTilemap
add sp, 0x14
pop {r4}
pop {r0}
bx r0
.align 2, 0
_081024A8: .4byte 0xffffff00
_081024AC: .4byte 0xffff00ff
_081024B0: .4byte 0xff00ffff
_081024B4: .4byte 0x00ffffff
_081024B8: .4byte 0x0000ffff
_081024BC: .4byte gUnknown_841EE2B
thumb_func_end sub_8102428
.align 2, 0 @ Don't pad with nop.