pokefirered/asm/link_rfu.s
jiangzhengwenjz 16396b8ebb clean up
2019-12-22 03:37:13 +08:00

3176 lines
52 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
.align 2, 0 @ Don't pad with nop.