pokefirered/asm/link_rfu_2.s
2019-08-02 07:28:09 +08:00

10183 lines
174 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start nullsub_87
nullsub_87: @ 80F85F0
bx lr
thumb_func_end nullsub_87
thumb_func_start nullsub_88
nullsub_88: @ 80F85F4
bx lr
thumb_func_end nullsub_88
thumb_func_start sub_80F85F8
sub_80F85F8: @ 80F85F8
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x8
ldr r6, _080F869C @ =gUnknown_3005450
adds r5, r6, 0
adds r5, 0xEE
ldrb r4, [r5]
mov r0, sp
movs r7, 0
strh r7, [r0]
ldr r2, _080F86A0 @ =0x010004d6
adds r1, r6, 0
bl CpuSet
movs r0, 0xFF
strb r0, [r6, 0xC]
ldrb r0, [r5]
strb r4, [r5]
ldrb r0, [r5]
cmp r0, 0x4
beq _080F862A
ldrb r0, [r5]
strb r7, [r5]
_080F862A:
mov r7, sp
adds r7, 0x2
add r0, sp, 0x4
mov r8, r0
movs r0, 0x6
add r0, sp
mov r9, r0
adds r5, r6, 0
adds r5, 0x80
movs r4, 0x4
_080F863E:
adds r0, r5, 0
bl sub_80F9CB4
adds r5, 0x14
subs r4, 0x1
cmp r4, 0
bge _080F863E
movs r5, 0
ldr r4, _080F86A4 @ =gUnknown_30054BC
adds r0, r4, 0
bl sub_80F9CB4
adds r0, r4, 0
adds r0, 0xB8
bl sub_80FC478
ldr r0, _080F86A8 @ =0x00000634
adds r4, r0
adds r0, r4, 0
bl sub_80FC4D4
strh r5, [r7]
ldr r1, _080F86AC @ =gUnknown_3003F50
ldr r2, _080F86B0 @ =0x01000008
adds r0, r7, 0
bl CpuSet
mov r0, r8
strh r5, [r0]
ldr r1, _080F86B4 @ =gRecvCmds
ldr r2, _080F86B8 @ =0x01000028
bl CpuSet
mov r0, r9
strh r5, [r0]
ldr r1, _080F86BC @ =gLinkPlayers
ldr r2, _080F86C0 @ =0x01000046
bl CpuSet
add sp, 0x8
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F869C: .4byte gUnknown_3005450
_080F86A0: .4byte 0x010004d6
_080F86A4: .4byte gUnknown_30054BC
_080F86A8: .4byte 0x00000634
_080F86AC: .4byte gUnknown_3003F50
_080F86B0: .4byte 0x01000008
_080F86B4: .4byte gRecvCmds
_080F86B8: .4byte 0x01000028
_080F86BC: .4byte gLinkPlayers
_080F86C0: .4byte 0x01000046
thumb_func_end sub_80F85F8
thumb_func_start InitRFU
InitRFU: @ 80F86C4
push {r4-r6,lr}
ldr r4, _080F86EC @ =gIntrTable
ldr r5, [r4, 0x4]
ldr r6, [r4, 0x8]
bl sub_80F86F4
bl rfu_REQ_stopMode
bl rfu_waitREQComplete
ldr r1, _080F86F0 @ =0x04000208
movs r0, 0
strh r0, [r1]
str r5, [r4, 0x4]
str r6, [r4, 0x8]
movs r0, 0x1
strh r0, [r1]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F86EC: .4byte gIntrTable
_080F86F0: .4byte 0x04000208
thumb_func_end InitRFU
thumb_func_start sub_80F86F4
sub_80F86F4: @ 80F86F4
push {r4,lr}
ldr r0, _080F8728 @ =gUnknown_3001190
ldr r1, _080F872C @ =0x00000e64
ldr r4, _080F8730 @ =gIntrTable + 0x4
adds r2, r4, 0
movs r3, 0x1
bl sub_81E05B0
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
bne _080F8722
ldr r0, _080F8734 @ =gLinkType
strh r1, [r0]
movs r0, 0
bl sub_80FB128
bl sub_80F85F8
adds r1, r4, 0x4
movs r0, 0x3
bl rfu_setTimerInterrupt
_080F8722:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F8728: .4byte gUnknown_3001190
_080F872C: .4byte 0x00000e64
_080F8730: .4byte gIntrTable + 0x4
_080F8734: .4byte gLinkType
thumb_func_end sub_80F86F4
thumb_func_start sub_80F8738
sub_80F8738: @ 80F8738
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_80FA738
ldr r0, _080F8758 @ =gUnknown_3005450
ldrh r0, [r0, 0x4]
cmp r0, 0x12
bls _080F874C
b _080F8852
_080F874C:
lsls r0, 2
ldr r1, _080F875C @ =_080F8760
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F8758: .4byte gUnknown_3005450
_080F875C: .4byte _080F8760
.align 2, 0
_080F8760:
.4byte _080F87AC
.4byte _080F8852
.4byte _080F87D4
.4byte _080F8852
.4byte _080F8804
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8852
.4byte _080F8818
_080F87AC:
ldr r0, _080F87C8 @ =gUnknown_203ABF0
bl sub_80FD4B0
ldr r0, _080F87CC @ =gUnknown_3005450
movs r2, 0x1
strh r2, [r0, 0x4]
ldr r1, _080F87D0 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
strh r2, [r0, 0xA]
b _080F8852
.align 2, 0
_080F87C8: .4byte gUnknown_203ABF0
_080F87CC: .4byte gUnknown_3005450
_080F87D0: .4byte gTasks
_080F87D4:
ldr r4, _080F87F8 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
ldr r3, _080F87FC @ =gUnknown_843EC8C
movs r1, 0
movs r2, 0xF0
bl sub_80FD538
movs r0, 0x3
strh r0, [r4, 0x4]
ldr r1, _080F8800 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x6
strh r1, [r0, 0xA]
b _080F8852
.align 2, 0
_080F87F8: .4byte gUnknown_3005450
_080F87FC: .4byte gUnknown_843EC8C
_080F8800: .4byte gTasks
_080F8804:
movs r0, 0
bl sub_80FD760
ldr r1, _080F8814 @ =gUnknown_3005450
movs r0, 0x5
strh r0, [r1, 0x4]
b _080F8852
.align 2, 0
_080F8814: .4byte gUnknown_3005450
_080F8818:
ldr r4, _080F8858 @ =gUnknown_3005450
ldr r0, _080F885C @ =0x00000993
adds r1, r4, r0
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r0, _080F8860 @ =sub_80F8DA8
bl sub_80FEA10
bl sub_80F8AA4
bl sub_80F8AEC
movs r0, 0x14
strh r0, [r4, 0x4]
ldr r1, _080F8864 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x8
strh r1, [r0, 0xA]
ldr r0, _080F8868 @ =sub_80FA834
movs r1, 0x5
bl CreateTask
adds r0, r5, 0
bl DestroyTask
_080F8852:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F8858: .4byte gUnknown_3005450
_080F885C: .4byte 0x00000993
_080F8860: .4byte sub_80F8DA8
_080F8864: .4byte gTasks
_080F8868: .4byte sub_80FA834
thumb_func_end sub_80F8738
thumb_func_start sub_80F886C
sub_80F886C: @ 80F886C
lsls r0, 24
lsrs r0, 24
ldr r1, _080F8878 @ =gUnknown_843EC51
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080F8878: .4byte gUnknown_843EC51
thumb_func_end sub_80F886C
thumb_func_start sub_80F887C
sub_80F887C: @ 80F887C
push {r4-r7,lr}
adds r2, r0, 0
adds r5, r1, 0
movs r4, 0x1
adds r1, r2, 0
movs r6, 0
movs r0, 0x1
negs r0, r0
cmp r5, r0
bne _080F88BC
movs r3, 0
movs r5, 0x1
ldr r1, _080F88B8 @ =gUnknown_3005DE6
_080F8896:
adds r0, r2, 0
ands r0, r5
cmp r0, 0
beq _080F88A8
adds r0, r3, r1
strb r4, [r0]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
_080F88A8:
asrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080F8896
b _080F8932
.align 2, 0
_080F88B8: .4byte gUnknown_3005DE6
_080F88BC:
movs r3, 0
mvns r0, r1
mov r12, r0
movs r7, 0x1
ldr r4, _080F8938 @ =gUnknown_3005DE6
_080F88C6:
adds r2, r1, 0
ands r2, r7
cmp r2, 0
bne _080F88D2
adds r0, r3, r4
strb r2, [r0]
_080F88D2:
asrs r1, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080F88C6
movs r4, 0x4
ldr r0, _080F8938 @ =gUnknown_3005DE6
ldrb r7, [r0]
_080F88E4:
movs r3, 0
subs r1, r4, 0x1
cmp r7, r4
beq _080F8900
ldr r2, _080F8938 @ =gUnknown_3005DE6
_080F88EE:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bhi _080F8900
adds r0, r3, r2
ldrb r0, [r0]
cmp r0, r4
bne _080F88EE
_080F8900:
cmp r3, 0x4
bne _080F8906
adds r6, r4, 0
_080F8906:
lsls r0, r1, 24
lsrs r4, r0, 24
cmp r4, 0
bne _080F88E4
mov r0, r12
ands r5, r0
movs r3, 0
movs r2, 0x1
ldr r1, _080F8938 @ =gUnknown_3005DE6
_080F8918:
adds r0, r5, 0
ands r0, r2
cmp r0, 0
beq _080F8926
adds r0, r3, r1
strb r6, [r0]
adds r6, 0x1
_080F8926:
asrs r5, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080F8918
_080F8932:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F8938: .4byte gUnknown_3005DE6
thumb_func_end sub_80F887C
thumb_func_start sub_80F893C
sub_80F893C: @ 80F893C
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r0, _080F8958 @ =gUnknown_3005450
ldrh r3, [r0, 0x4]
adds r7, r0, 0
cmp r3, 0xC
bls _080F894E
b _080F8A8A
_080F894E:
lsls r0, r3, 2
ldr r1, _080F895C @ =_080F8960
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F8958: .4byte gUnknown_3005450
_080F895C: .4byte _080F8960
.align 2, 0
_080F8960:
.4byte _080F8994
.4byte _080F8A8A
.4byte _080F8A8A
.4byte _080F8A8A
.4byte _080F8A8A
.4byte _080F8A8A
.4byte _080F89AC
.4byte _080F8A8A
.4byte _080F8A8A
.4byte _080F89D4
.4byte _080F8A8A
.4byte _080F89E8
.4byte _080F8A2C
_080F8994:
ldr r0, _080F89A4 @ =gUnknown_843EBB4
bl sub_80FD4B0
ldr r0, _080F89A8 @ =gUnknown_3005450
movs r2, 0x1
strh r2, [r0, 0x4]
b _080F89BC
.align 2, 0
_080F89A4: .4byte gUnknown_843EBB4
_080F89A8: .4byte gUnknown_3005450
_080F89AC:
ldrb r0, [r7, 0xC]
ldr r3, _080F89CC @ =gUnknown_843EC8C
movs r1, 0
movs r2, 0xF0
bl sub_80FD538
movs r2, 0x7
strh r2, [r7, 0x4]
_080F89BC:
ldr r1, _080F89D0 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
strh r2, [r0, 0xA]
b _080F8A8A
.align 2, 0
_080F89CC: .4byte gUnknown_843EC8C
_080F89D0: .4byte gTasks
_080F89D4:
ldr r0, _080F89E4 @ =gTasks
lsls r1, r6, 2
adds r1, r6
lsls r1, 3
adds r1, r0
movs r0, 0xA
strh r0, [r1, 0xA]
b _080F8A8A
.align 2, 0
_080F89E4: .4byte gTasks
_080F89E8:
bl sub_80FA788
cmp r0, 0x6
beq _080F8A0C
cmp r0, 0x6
bgt _080F89FA
cmp r0, 0x5
beq _080F8A00
b _080F8A8A
_080F89FA:
cmp r0, 0x9
beq _080F8A0C
b _080F8A8A
_080F8A00:
ldr r1, _080F8A08 @ =gUnknown_3005450
movs r0, 0xC
strh r0, [r1, 0x4]
b _080F8A8A
.align 2, 0
_080F8A08: .4byte gUnknown_3005450
_080F8A0C:
bl sub_80FEB14
ldr r0, _080F8A24 @ =gUnknown_3005450
ldr r1, _080F8A28 @ =0x0000099c
adds r0, r1
movs r1, 0x2
strb r1, [r0]
adds r0, r6, 0
bl DestroyTask
b _080F8A8A
.align 2, 0
_080F8A24: .4byte gUnknown_3005450
_080F8A28: .4byte 0x0000099c
_080F8A2C:
ldr r0, _080F8A90 @ =0x000008f6
adds r4, r7, r0
ldrb r0, [r4]
movs r5, 0x80
lsls r5, 17
lsls r5, r0
lsrs r5, 24
ldrb r1, [r4]
movs r0, 0xC
bl rfu_clearSlot
ldrb r1, [r4]
ldr r0, _080F8A94 @ =0x000008f7
adds r2, r7, r0
movs r0, 0x10
movs r3, 0x46
bl rfu_setRecvBuffer
adds r1, r7, 0
adds r1, 0x4C
adds r0, r5, 0
movs r2, 0xE
bl rfu_UNI_setSendData
ldr r1, _080F8A98 @ =gTasks
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
adds r0, r1
movs r1, 0x8
strh r1, [r0, 0xA]
adds r0, r6, 0
bl DestroyTask
ldr r4, _080F8A9C @ =gUnknown_203AC08
ldrb r0, [r4, 0xF]
cmp r0, 0
bne _080F8A82
bl sub_80FC208
ldrb r0, [r4, 0xF]
adds r0, 0x1
strb r0, [r4, 0xF]
_080F8A82:
ldr r0, _080F8AA0 @ =sub_80FA834
movs r1, 0x5
bl CreateTask
_080F8A8A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F8A90: .4byte 0x000008f6
_080F8A94: .4byte 0x000008f7
_080F8A98: .4byte gTasks
_080F8A9C: .4byte gUnknown_203AC08
_080F8AA0: .4byte sub_80FA834
thumb_func_end sub_80F893C
thumb_func_start sub_80F8AA4
sub_80F8AA4: @ 80F8AA4
push {r4,r5,lr}
ldr r0, _080F8AE4 @ =gUnknown_3005E10
ldrb r5, [r0]
movs r4, 0
_080F8AAC:
movs r0, 0x1
ands r0, r5
cmp r0, 0
beq _080F8AD0
lsls r2, r4, 3
subs r2, r4
lsls r2, 1
ldr r0, _080F8AE8 @ =gUnknown_3005464
adds r2, r0
movs r0, 0x10
adds r1, r4, 0
movs r3, 0xE
bl rfu_setRecvBuffer
movs r0, 0x3
adds r1, r4, 0
bl rfu_clearSlot
_080F8AD0:
lsrs r5, 1
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080F8AAC
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F8AE4: .4byte gUnknown_3005E10
_080F8AE8: .4byte gUnknown_3005464
thumb_func_end sub_80F8AA4
thumb_func_start sub_80F8AEC
sub_80F8AEC: @ 80F8AEC
push {r4-r6,lr}
ldr r0, _080F8B28 @ =gUnknown_3005E10
ldrb r5, [r0]
ldr r4, _080F8B2C @ =gUnknown_3005D8F
adds r0, r5, 0
adds r1, r4, 0
movs r2, 0x46
bl rfu_UNI_setSendData
adds r0, r5, 0
bl sub_80F886C
ldr r1, _080F8B30 @ =0xfffff6c1
adds r6, r4, r1
adds r1, r4, 0
adds r1, 0x53
strb r0, [r1]
adds r4, 0x5B
strb r5, [r4]
movs r1, 0x1
negs r1, r1
adds r0, r5, 0
bl sub_80F887C
movs r0, 0x1
strb r0, [r6, 0xC]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F8B28: .4byte gUnknown_3005E10
_080F8B2C: .4byte gUnknown_3005D8F
_080F8B30: .4byte 0xfffff6c1
thumb_func_end sub_80F8AEC
thumb_func_start sub_80F8B34
sub_80F8B34: @ 80F8B34
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x54
bne _080F8B68
bl sub_80FB9F4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bne _080F8B68
ldr r0, _080F8B80 @ =gUnknown_3005E10
ldrb r0, [r0]
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
movs r0, 0
movs r1, 0
bl sub_80FB9E4
_080F8B68:
ldr r0, _080F8B84 @ =gUnknown_3005450
ldrh r2, [r0, 0x4]
adds r6, r0, 0
cmp r2, 0x12
bls _080F8B74
b _080F8CE6
_080F8B74:
lsls r0, r2, 2
ldr r1, _080F8B88 @ =_080F8B8C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080F8B80: .4byte gUnknown_3005E10
_080F8B84: .4byte gUnknown_3005450
_080F8B88: .4byte _080F8B8C
.align 2, 0
_080F8B8C:
.4byte _080F8BD8
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8CE6
.4byte _080F8C28
.4byte _080F8C88
.4byte _080F8CE6
.4byte _080F8C9C
.4byte _080F8C00
.4byte _080F8CE6
_080F8BD8:
ldr r0, _080F8BF4 @ =gUnknown_203ABF0
bl sub_80FD4B0
ldr r0, _080F8BF8 @ =gUnknown_3005450
movs r2, 0x1
strh r2, [r0, 0x4]
ldr r1, _080F8BFC @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
strh r2, [r0, 0xA]
b _080F8CE6
.align 2, 0
_080F8BF4: .4byte gUnknown_203ABF0
_080F8BF8: .4byte gUnknown_3005450
_080F8BFC: .4byte gTasks
_080F8C00:
ldr r3, _080F8C1C @ =gUnknown_843EC8C
movs r0, 0x2
movs r1, 0
movs r2, 0xF0
bl sub_80FD538
ldr r0, _080F8C20 @ =sub_80F8D20
bl sub_80FEA10
ldr r1, _080F8C24 @ =gUnknown_3005450
movs r0, 0x12
strh r0, [r1, 0x4]
b _080F8CE6
.align 2, 0
_080F8C1C: .4byte gUnknown_843EC8C
_080F8C20: .4byte sub_80F8D20
_080F8C24: .4byte gUnknown_3005450
_080F8C28:
ldr r1, _080F8C6C @ =0x000008f6
adds r0, r6, r1
ldrb r1, [r0]
movs r0, 0x80
lsls r0, 17
lsls r0, r1
lsrs r0, 24
adds r1, r6, 0
adds r1, 0x4C
movs r2, 0xE
bl rfu_UNI_setSendData
lsls r0, 16
lsrs r0, 16
cmp r0, 0
bne _080F8CE6
strb r0, [r6, 0xC]
adds r0, r5, 0
bl DestroyTask
ldr r0, _080F8C70 @ =gTasks
lsls r1, r5, 2
adds r1, r5
lsls r1, 3
adds r1, r0
movs r2, 0x16
ldrsh r0, [r1, r2]
cmp r0, 0
beq _080F8C78
ldr r0, _080F8C74 @ =sub_80FACF0
movs r1, 0x1
bl CreateTask
b _080F8CE6
.align 2, 0
_080F8C6C: .4byte 0x000008f6
_080F8C70: .4byte gTasks
_080F8C74: .4byte sub_80FACF0
_080F8C78:
ldr r0, _080F8C84 @ =sub_80FA834
movs r1, 0x5
bl CreateTask
b _080F8CE6
.align 2, 0
_080F8C84: .4byte sub_80FA834
_080F8C88:
movs r0, 0
bl sub_80FD760
ldr r1, _080F8C98 @ =gUnknown_3005450
movs r0, 0xF
strh r0, [r1, 0x4]
b _080F8CE6
.align 2, 0
_080F8C98: .4byte gUnknown_3005450
_080F8C9C:
ldr r0, _080F8CEC @ =0x00000993
adds r1, r6, r0
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r0, _080F8CF0 @ =sub_80F8DA8
bl sub_80FEA10
movs r0, 0x1
bl sub_80FAFE0
bl sub_80F8AA4
bl sub_80F8AEC
movs r0, 0x14
strh r0, [r6, 0x4]
ldr r1, _080F8CF4 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r0, r1
movs r1, 0x8
strh r1, [r0, 0xA]
movs r4, 0x1
strb r4, [r6, 0xC]
ldr r0, _080F8CF8 @ =sub_80FA834
movs r1, 0x5
bl CreateTask
movs r1, 0x9A
lsls r1, 4
adds r0, r6, r1
strb r4, [r0]
adds r0, r5, 0
bl DestroyTask
_080F8CE6:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F8CEC: .4byte 0x00000993
_080F8CF0: .4byte sub_80F8DA8
_080F8CF4: .4byte gTasks
_080F8CF8: .4byte sub_80FA834
thumb_func_end sub_80F8B34
thumb_func_start sub_80F8CFC
sub_80F8CFC: @ 80F8CFC
push {lr}
ldr r3, _080F8D10 @ =gUnknown_843EC8C
movs r0, 0x1
movs r1, 0
movs r2, 0xF0
bl sub_80FD538
pop {r0}
bx r0
.align 2, 0
_080F8D10: .4byte gUnknown_843EC8C
thumb_func_end sub_80F8CFC
thumb_func_start sub_80F8D14
sub_80F8D14: @ 80F8D14
push {lr}
movs r0, 0
bl sub_80FD760
pop {r0}
bx r0
thumb_func_end sub_80F8D14
thumb_func_start sub_80F8D20
sub_80F8D20: @ 80F8D20
push {r4,lr}
ldr r0, _080F8D90 @ =gUnknown_3005450
movs r2, 0
movs r1, 0xD
adds r0, 0x59
_080F8D2A:
strb r2, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _080F8D2A
bl rfu_REQ_recvData
bl rfu_waitREQComplete
ldr r1, _080F8D94 @ =gUnknown_3007440
ldr r3, _080F8D90 @ =gUnknown_3005450
ldr r0, _080F8D98 @ =0x000008f6
adds r4, r3, r0
ldrb r0, [r4]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldrb r0, [r0, 0x12]
cmp r0, 0
beq _080F8D84
ldr r2, _080F8D9C @ =0x00000988
adds r1, r3, r2
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r1, 0x92
lsls r1, 1
adds r0, r3, r1
ldr r2, _080F8DA0 @ =0x000008f7
adds r1, r3, r2
bl sub_80FC588
ldr r1, _080F8DA4 @ =gUnknown_203AC08
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
bl sub_80F906C
ldrb r0, [r4]
bl rfu_UNI_readySendData
ldrb r0, [r4]
bl rfu_UNI_clearRecvNewDataFlag
_080F8D84:
movs r0, 0x1
bl rfu_REQ_sendData_wrapper
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F8D90: .4byte gUnknown_3005450
_080F8D94: .4byte gUnknown_3007440
_080F8D98: .4byte 0x000008f6
_080F8D9C: .4byte 0x00000988
_080F8DA0: .4byte 0x000008f7
_080F8DA4: .4byte gUnknown_203AC08
thumb_func_end sub_80F8D20
thumb_func_start sub_80F8DA8
sub_80F8DA8: @ 80F8DA8
ldr r0, _080F8DB8 @ =gUnknown_3005450
ldr r1, _080F8DBC @ =0x00000993
adds r0, r1
ldrb r1, [r0]
movs r1, 0x1
strb r1, [r0]
bx lr
.align 2, 0
_080F8DB8: .4byte gUnknown_3005450
_080F8DBC: .4byte 0x00000993
thumb_func_end sub_80F8DA8
thumb_func_start sub_80F8DC0
sub_80F8DC0: @ 80F8DC0
push {r4-r6,lr}
ldr r0, _080F8DE0 @ =gUnknown_203ADFA
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080F8E64
bl sub_80FD52C
ldr r4, _080F8DE4 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
cmp r0, 0x1
bne _080F8DEC
ldr r0, _080F8DE8 @ =sub_80F8738
b _080F8DF2
.align 2, 0
_080F8DE0: .4byte gUnknown_203ADFA
_080F8DE4: .4byte gUnknown_3005450
_080F8DE8: .4byte sub_80F8738
_080F8DEC:
cmp r0, 0
bne _080F8E14
ldr r0, _080F8E10 @ =sub_80F893C
_080F8DF2:
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080F8E34
adds r0, r4, 0
adds r0, 0x67
ldrb r0, [r0]
bl DestroyTask
bl sub_80F85F8
b _080F8E34
.align 2, 0
_080F8E10: .4byte sub_80F893C
_080F8E14:
cmp r0, 0x2
bne _080F8E34
ldr r0, _080F8E6C @ =sub_80F8B34
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080F8E34
adds r0, r4, 0
adds r0, 0x67
ldrb r0, [r0]
bl DestroyTask
bl sub_80F85F8
_080F8E34:
movs r5, 0
ldr r6, _080F8E70 @ =gUnknown_843ED88
_080F8E38:
lsls r0, r5, 2
adds r0, r6
ldr r4, [r0]
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080F8E5A
adds r0, r4, 0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r0, 24
bl DestroyTask
_080F8E5A:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x2
bls _080F8E38
_080F8E64:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080F8E6C: .4byte sub_80F8B34
_080F8E70: .4byte gUnknown_843ED88
thumb_func_end sub_80F8DC0
thumb_func_start sub_80F8E74
sub_80F8E74: @ 80F8E74
push {lr}
ldr r0, _080F8E98 @ =gUnknown_203ADFA
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080F8E92
ldr r0, _080F8E9C @ =sub_80F8738
movs r1, 0x1
bl CreateTask
ldr r1, _080F8EA0 @ =gUnknown_3005450
adds r1, 0x67
strb r0, [r1]
_080F8E92:
pop {r0}
bx r0
.align 2, 0
_080F8E98: .4byte gUnknown_203ADFA
_080F8E9C: .4byte sub_80F8738
_080F8EA0: .4byte gUnknown_3005450
thumb_func_end sub_80F8E74
thumb_func_start sub_80F8EA4
sub_80F8EA4: @ 80F8EA4
push {lr}
ldr r1, _080F8EBC @ =gUnknown_3005450
ldrh r0, [r1, 0x4]
cmp r0, 0x7
bne _080F8EC4
ldr r2, _080F8EC0 @ =0x00000985
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
beq _080F8EC4
movs r0, 0x1
b _080F8EC6
.align 2, 0
_080F8EBC: .4byte gUnknown_3005450
_080F8EC0: .4byte 0x00000985
_080F8EC4:
movs r0, 0
_080F8EC6:
pop {r1}
bx r1
thumb_func_end sub_80F8EA4
thumb_func_start sub_80F8ECC
sub_80F8ECC: @ 80F8ECC
push {r4,lr}
ldr r4, _080F8EFC @ =gUnknown_3005450
ldrh r0, [r4, 0x4]
cmp r0, 0x7
bne _080F8F08
ldr r0, _080F8F00 @ =gUnknown_3007460
ldr r1, [r0]
ldr r2, _080F8F04 @ =0x000008f5
adds r0, r4, r2
ldrb r0, [r0]
lsls r0, 5
adds r1, r0
ldrh r0, [r1, 0x14]
movs r1, 0xF0
bl sub_80FD610
lsls r0, 24
cmp r0, 0
bne _080F8F08
movs r0, 0x9
strh r0, [r4, 0x4]
movs r0, 0x1
b _080F8F0A
.align 2, 0
_080F8EFC: .4byte gUnknown_3005450
_080F8F00: .4byte gUnknown_3007460
_080F8F04: .4byte 0x000008f5
_080F8F08:
movs r0, 0
_080F8F0A:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80F8ECC
thumb_func_start sub_80F8F10
sub_80F8F10: @ 80F8F10
push {lr}
ldr r0, _080F8F34 @ =gUnknown_203ADFA
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080F8F2E
ldr r0, _080F8F38 @ =sub_80F893C
movs r1, 0x1
bl CreateTask
ldr r1, _080F8F3C @ =gUnknown_3005450
adds r1, 0x67
strb r0, [r1]
_080F8F2E:
pop {r0}
bx r0
.align 2, 0
_080F8F34: .4byte gUnknown_203ADFA
_080F8F38: .4byte sub_80F893C
_080F8F3C: .4byte gUnknown_3005450
thumb_func_end sub_80F8F10
thumb_func_start sub_80F8F40
sub_80F8F40: @ 80F8F40
push {lr}
ldr r0, _080F8F50 @ =gUnknown_3005E10
ldrb r0, [r0]
cmp r0, 0
bne _080F8F54
movs r0, 0
b _080F8F56
.align 2, 0
_080F8F50: .4byte gUnknown_3005E10
_080F8F54:
movs r0, 0x1
_080F8F56:
pop {r1}
bx r1
thumb_func_end sub_80F8F40
thumb_func_start sub_80F8F5C
sub_80F8F5C: @ 80F8F5C
ldr r1, _080F8F70 @ =gUnknown_3005450
movs r0, 0x4
strh r0, [r1, 0x4]
ldr r0, _080F8F74 @ =gUnknown_3005E10
ldrb r0, [r0]
ldr r2, _080F8F78 @ =0x0000099f
adds r1, r2
strb r0, [r1]
bx lr
.align 2, 0
_080F8F70: .4byte gUnknown_3005450
_080F8F74: .4byte gUnknown_3005E10
_080F8F78: .4byte 0x0000099f
thumb_func_end sub_80F8F5C
thumb_func_start sub_80F8F7C
sub_80F8F7C: @ 80F8F7C
push {lr}
adds r1, r0, 0
ldr r2, _080F8F94 @ =gUnknown_3005450
ldrh r0, [r2, 0x4]
cmp r0, 0x11
beq _080F8F8C
cmp r1, 0
beq _080F8F98
_080F8F8C:
movs r0, 0x12
strh r0, [r2, 0x4]
movs r0, 0x1
b _080F8F9A
.align 2, 0
_080F8F94: .4byte gUnknown_3005450
_080F8F98:
movs r0, 0
_080F8F9A:
pop {r1}
bx r1
thumb_func_end sub_80F8F7C
thumb_func_start sub_80F8FA0
sub_80F8FA0: @ 80F8FA0
ldr r1, _080F8FA8 @ =gUnknown_3005450
movs r0, 0xE
strh r0, [r1, 0x4]
bx lr
.align 2, 0
_080F8FA8: .4byte gUnknown_3005450
thumb_func_end sub_80F8FA0
thumb_func_start sub_80F8FAC
sub_80F8FAC: @ 80F8FAC
push {lr}
lsls r0, 24
lsrs r1, r0, 24
movs r2, 0
b _080F8FBE
_080F8FB6:
lsrs r1, 1
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
_080F8FBE:
cmp r2, 0x3
bhi _080F8FD0
movs r0, 0x1
ands r0, r1
cmp r0, 0
beq _080F8FB6
adds r0, r2, 0
bl rfu_UNI_readySendData
_080F8FD0:
pop {r0}
bx r0
thumb_func_end sub_80F8FAC
thumb_func_start sub_80F8FD4
sub_80F8FD4: @ 80F8FD4
push {r4-r7,lr}
sub sp, 0x4
movs r2, 0
ldr r7, _080F9028 @ =gRecvCmds
ldr r0, _080F902C @ =gUnknown_3005450
adds r6, r7, 0
ldr r1, _080F9030 @ =0x0000093f
adds r5, r0, r1
_080F8FE4:
movs r3, 0
lsls r0, r2, 3
lsls r1, r2, 4
adds r4, r2, 0x1
subs r0, r2
lsls r0, 1
adds r2, r0, r5
adds r1, r6
_080F8FF4:
ldrh r0, [r1]
lsrs r0, 8
strb r0, [r2, 0x1]
ldrh r0, [r1]
strb r0, [r2]
adds r2, 0x2
adds r1, 0x2
adds r3, 0x1
cmp r3, 0x6
ble _080F8FF4
adds r2, r4, 0
cmp r2, 0x4
ble _080F8FE4
movs r0, 0
mov r1, sp
strh r0, [r1]
ldr r2, _080F9034 @ =0x01000028
mov r0, sp
adds r1, r7, 0
bl CpuSet
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F9028: .4byte gRecvCmds
_080F902C: .4byte gUnknown_3005450
_080F9030: .4byte 0x0000093f
_080F9034: .4byte 0x01000028
thumb_func_end sub_80F8FD4
thumb_func_start sub_80F9038
sub_80F9038: @ 80F9038
push {lr}
ldr r3, _080F9064 @ =gUnknown_3003F50
ldr r2, _080F9068 @ =gRecvCmds
movs r1, 0x6
_080F9040:
ldrh r0, [r3]
strh r0, [r2]
adds r3, 0x2
adds r2, 0x2
subs r1, 0x1
cmp r1, 0
bge _080F9040
ldr r1, _080F9064 @ =gUnknown_3003F50
movs r2, 0
adds r0, r1, 0
adds r0, 0xC
_080F9056:
strh r2, [r0]
subs r0, 0x2
cmp r0, r1
bge _080F9056
pop {r0}
bx r0
.align 2, 0
_080F9064: .4byte gUnknown_3003F50
_080F9068: .4byte gRecvCmds
thumb_func_end sub_80F9038
thumb_func_start sub_80F906C
sub_80F906C: @ 80F906C
push {r4,r5,lr}
ldr r4, _080F90CC @ =gUnknown_3005450
ldr r0, _080F90D0 @ =0x000008f4
adds r5, r4, r0
ldrb r0, [r5]
cmp r0, 0
beq _080F909E
ldr r1, _080F90D4 @ =0x000008d4
adds r0, r4, r1
adds r1, r4, 0
adds r1, 0x4C
bl sub_80FC888
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080F90D8 @ =0x000008f2
adds r0, r4, r1
ldrb r0, [r0]
adds r1, r0, 0
cmp r1, 0
bne _080F909A
ldrb r0, [r5]
strb r1, [r5]
_080F909A:
cmp r2, 0
bne _080F90C4
_080F909E:
ldr r5, _080F90CC @ =gUnknown_3005450
ldr r1, _080F90D0 @ =0x000008f4
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0
bne _080F90C4
movs r1, 0xD4
lsls r1, 3
adds r0, r5, r1
adds r4, r5, 0
adds r4, 0x4C
adds r1, r4, 0
bl sub_80FC79C
ldr r1, _080F90D4 @ =0x000008d4
adds r0, r5, r1
adds r1, r4, 0
bl sub_80FC828
_080F90C4:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F90CC: .4byte gUnknown_3005450
_080F90D0: .4byte 0x000008f4
_080F90D4: .4byte 0x000008d4
_080F90D8: .4byte 0x000008f2
thumb_func_end sub_80F906C
thumb_func_start sub_80F90DC
sub_80F90DC: @ 80F90DC
push {r4,lr}
ldr r0, _080F90EC @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _080F90F0
_080F90E8:
movs r0, 0
b _080F9110
.align 2, 0
_080F90EC: .4byte gUnknown_3007460
_080F90F0:
movs r3, 0
ldr r4, _080F9118 @ =gRecvCmds
_080F90F4:
movs r2, 0
lsls r0, r3, 4
adds r1, r0, r4
_080F90FA:
ldrh r0, [r1]
cmp r0, 0
bne _080F90E8
adds r1, 0x2
adds r2, 0x1
cmp r2, 0x6
ble _080F90FA
adds r3, 0x1
cmp r3, 0x4
ble _080F90F4
movs r0, 0x1
_080F9110:
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080F9118: .4byte gRecvCmds
thumb_func_end sub_80F90DC
thumb_func_start sub_80F911C
sub_80F911C: @ 80F911C
push {r4-r6,lr}
ldr r6, _080F9138 @ =gUnknown_3005450
ldrh r0, [r6, 0x4]
cmp r0, 0x13
bhi _080F913C
bl rfu_REQ_recvData
bl rfu_waitREQComplete
movs r0, 0
bl rfu_REQ_sendData_wrapper
b _080F91F6
.align 2, 0
_080F9138: .4byte gUnknown_3005450
_080F913C:
ldr r0, _080F9198 @ =0x00000993
adds r1, r6, r0
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r0, _080F919C @ =0x0000099a
adds r1, r6, r0
ldr r0, _080F91A0 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r1]
ldrb r0, [r0, 0x2]
ands r0, r1
cmp r0, r1
bne _080F91F6
cmp r0, 0
beq _080F91F6
ldr r1, _080F91A4 @ =0x00000994
adds r0, r6, r1
ldrb r0, [r0]
adds r5, r0, 0
cmp r5, 0
bne _080F91EC
ldr r0, _080F91A8 @ =0x0000099b
adds r4, r6, r0
ldrb r0, [r4]
cmp r0, 0
beq _080F91CC
bl sub_80FBCF8
strb r5, [r4]
ldr r1, _080F91AC @ =0x0000099c
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080F91B0
movs r4, 0x80
lsls r4, 8
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
adds r0, r4, 0
bl sub_80FB0E8
b _080F91F6
.align 2, 0
_080F9198: .4byte 0x00000993
_080F919C: .4byte 0x0000099a
_080F91A0: .4byte gUnknown_3007460
_080F91A4: .4byte 0x00000994
_080F91A8: .4byte 0x0000099b
_080F91AC: .4byte 0x0000099c
_080F91B0:
ldr r0, _080F91C4 @ =gUnknown_3005E10
ldrb r4, [r0]
cmp r4, 0
bne _080F91CC
bl sub_80F8DC0
ldr r0, _080F91C8 @ =gReceivedRemoteLinkPlayers
strb r4, [r0]
b _080F91F6
.align 2, 0
_080F91C4: .4byte gUnknown_3005E10
_080F91C8: .4byte gReceivedRemoteLinkPlayers
_080F91CC:
bl sub_80F8FD4
ldr r0, _080F91E4 @ =gUnknown_3005450
ldr r1, _080F91E8 @ =0x00000992
adds r0, r1
ldrb r0, [r0]
bl rfu_UNI_readySendData
movs r0, 0x1
bl rfu_REQ_sendData_wrapper
b _080F91F0
.align 2, 0
_080F91E4: .4byte gUnknown_3005450
_080F91E8: .4byte 0x00000992
_080F91EC:
bl rfu_REQ_PARENT_resumeRetransmitAndChange
_080F91F0:
ldr r1, _080F9200 @ =gUnknown_3005450
movs r0, 0x1
strb r0, [r1, 0xE]
_080F91F6:
movs r0, 0
pop {r4-r6}
pop {r1}
bx r1
.align 2, 0
_080F9200: .4byte gUnknown_3005450
thumb_func_end sub_80F911C
thumb_func_start sub_80F9204
sub_80F9204: @ 80F9204
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r0, _080F92E4 @ =gUnknown_3005450
ldrh r1, [r0, 0x4]
adds r6, r0, 0
cmp r1, 0x13
bhi _080F921C
b _080F947E
_080F921C:
ldrb r0, [r6, 0xE]
cmp r0, 0x1
beq _080F9224
b _080F947E
_080F9224:
bl rfu_waitREQComplete
ldr r0, _080F92E8 @ =0x00000993
adds r2, r6, r0
ldrb r0, [r2]
cmp r0, 0
bne _080F9244
adds r1, r6, 0
adds r1, 0xEE
_080F9236:
ldrb r0, [r1]
cmp r0, 0
beq _080F923E
b _080F94A4
_080F923E:
ldrb r0, [r2]
cmp r0, 0
beq _080F9236
_080F9244:
bl rfu_REQ_recvData
bl rfu_waitREQComplete
ldr r2, _080F92EC @ =gUnknown_3005E10
ldr r4, _080F92E4 @ =gUnknown_3005450
ldr r1, _080F92F0 @ =0x0000099a
adds r0, r4, r1
ldrb r1, [r2, 0x3]
ldrb r0, [r0]
ands r1, r0
cmp r1, r0
beq _080F9260
b _080F9468
_080F9260:
ldr r6, _080F92F4 @ =0x00000994
adds r1, r4, r6
ldrb r0, [r1]
movs r0, 0
strb r0, [r1]
ldr r1, _080F92F8 @ =gUnknown_203AC08
ldrh r0, [r1, 0x6]
adds r0, 0x1
strh r0, [r1, 0x6]
ldrb r7, [r2]
movs r5, 0
_080F9276:
movs r0, 0x1
ands r0, r7
lsrs r1, r7, 1
str r1, [sp, 0x4]
adds r2, r5, 0x1
str r2, [sp]
cmp r0, 0
bne _080F9288
b _080F9388
_080F9288:
ldr r1, _080F92E4 @ =gUnknown_3005450
lsls r2, r5, 3
subs r0, r2, r5
lsls r4, r0, 1
adds r0, r1, 0
adds r0, 0x15
adds r0, r4, r0
ldrb r0, [r0]
adds r6, r1, 0
adds r3, r2, 0
lsls r1, r5, 24
mov r10, r1
cmp r0, 0
beq _080F9380
ldr r2, _080F92FC @ =0x000009a6
adds r0, r6, r2
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, 0xFF
beq _080F9304
adds r0, r6, 0
adds r0, 0x14
adds r0, r4, r0
ldrb r2, [r0]
lsrs r2, 5
ldrb r0, [r1]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
cmp r2, r0
beq _080F9304
ldr r0, _080F9300 @ =0x000009a2
adds r1, r6, r0
adds r1, r5, r1
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x4
bls _080F9380
movs r0, 0x81
lsls r0, 8
bl sub_80FB0E8
b _080F9380
.align 2, 0
_080F92E4: .4byte gUnknown_3005450
_080F92E8: .4byte 0x00000993
_080F92EC: .4byte gUnknown_3005E10
_080F92F0: .4byte 0x0000099a
_080F92F4: .4byte 0x00000994
_080F92F8: .4byte gUnknown_203AC08
_080F92FC: .4byte 0x000009a6
_080F9300: .4byte 0x000009a2
_080F9304:
ldr r2, _080F9444 @ =gUnknown_3005450
ldr r6, _080F9448 @ =0x000009a6
adds r1, r2, r6
adds r1, r5, r1
subs r3, r5
lsls r3, 1
adds r4, r2, 0
adds r4, 0x14
adds r2, r3, r4
ldrb r0, [r2]
lsrs r0, 5
strb r0, [r1]
ldr r1, _080F9444 @ =gUnknown_3005450
subs r6, 0x4
adds r0, r1, r6
adds r0, r5, r0
movs r1, 0
strb r1, [r0]
ldrb r1, [r2]
movs r0, 0x1F
ands r0, r1
strb r0, [r2]
ldr r2, _080F944C @ =gUnknown_3005DE6
adds r0, r5, r2
ldrb r0, [r0]
movs r6, 0
lsls r1, r5, 24
mov r10, r1
lsrs r2, r7, 1
str r2, [sp, 0x4]
adds r5, 0x1
str r5, [sp]
ldr r1, _080F9450 @ =gRecvCmds
mov r9, r1
adds r5, r3, 0
adds r7, r4, 0
lsls r0, 4
mov r8, r0
adds r2, r5, 0x1
mov r12, r2
_080F9354:
lsls r1, r6, 1
mov r0, r8
adds r4, r1, r0
add r4, r9
mov r2, r12
adds r3, r1, r2
adds r3, r7
ldrb r2, [r3]
lsls r2, 8
adds r1, r5
adds r1, r7
ldrb r0, [r1]
orrs r0, r2
strh r0, [r4]
movs r0, 0
strb r0, [r3]
strb r0, [r1]
adds r0, r6, 0x1
lsls r0, 16
lsrs r6, r0, 16
cmp r6, 0x6
bls _080F9354
_080F9380:
mov r1, r10
lsrs r0, r1, 24
bl rfu_UNI_clearRecvNewDataFlag
_080F9388:
ldr r2, [sp, 0x4]
lsls r0, r2, 16
lsrs r7, r0, 16
ldr r6, [sp]
lsls r0, r6, 16
lsrs r5, r0, 16
cmp r5, 0x3
bhi _080F939A
b _080F9276
_080F939A:
bl sub_80F9038
movs r0, 0
bl sub_80F9868
bl sub_80FA510
ldr r4, _080F9444 @ =gUnknown_3005450
ldr r1, _080F9454 @ =0x0000099d
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
beq _080F9476
ldr r2, _080F9458 @ =0x00000991
adds r0, r4, r2
ldrb r2, [r0]
cmp r2, 0
bne _080F9476
ldr r0, _080F945C @ =gUnknown_203AC08
ldrb r1, [r0, 0xE]
strb r2, [r0, 0xE]
ldr r6, _080F9460 @ =0x00000992
adds r0, r4, r6
ldrb r1, [r0]
movs r0, 0x3
bl rfu_clearSlot
movs r5, 0
adds r7, r4, 0
adds r7, 0x14
_080F93D6:
ldr r0, _080F9454 @ =0x0000099d
adds r6, r4, r0
ldrb r0, [r6]
asrs r0, r5
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _080F93FA
lsls r1, r5, 24
lsrs r1, 24
lsls r2, r5, 3
subs r2, r5
lsls r2, 1
adds r2, r7
movs r0, 0x10
movs r3, 0xE
bl rfu_setRecvBuffer
_080F93FA:
adds r0, r5, 0x1
lsls r0, 16
lsrs r5, r0, 16
cmp r5, 0x3
bls _080F93D6
subs r4, r6, 0x3
ldrb r0, [r4]
ldrb r2, [r6]
adds r1, r0, 0
orrs r1, r2
bl sub_80F887C
ldrb r1, [r6]
movs r2, 0
strb r1, [r6, 0x4]
ldrb r0, [r4]
orrs r0, r1
strb r0, [r4]
strb r2, [r6]
ldrb r0, [r4]
adds r1, r6, 0
subs r1, 0x5E
movs r2, 0x46
bl rfu_UNI_setSendData
ldrb r0, [r4]
bl sub_80F886C
adds r1, r6, 0
subs r1, 0xB
strb r0, [r1]
ldr r0, _080F9464 @ =sub_80FAA94
movs r1, 0
bl CreateTask
b _080F9476
.align 2, 0
_080F9444: .4byte gUnknown_3005450
_080F9448: .4byte 0x000009a6
_080F944C: .4byte gUnknown_3005DE6
_080F9450: .4byte gRecvCmds
_080F9454: .4byte 0x0000099d
_080F9458: .4byte 0x00000991
_080F945C: .4byte gUnknown_203AC08
_080F9460: .4byte 0x00000992
_080F9464: .4byte sub_80FAA94
_080F9468:
ldr r2, _080F9498 @ =0x00000994
adds r1, r4, r2
ldrb r0, [r1]
movs r2, 0
movs r0, 0x1
strb r0, [r1]
strb r2, [r4, 0xE]
_080F9476:
ldr r1, _080F949C @ =gUnknown_3005450
movs r0, 0
strb r0, [r1, 0xE]
adds r6, r1, 0
_080F947E:
ldr r1, _080F9498 @ =0x00000994
adds r0, r6, r1
ldrb r0, [r0]
adds r1, r0, 0
ldr r0, _080F94A0 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x6]
cmp r0, 0
beq _080F94A8
movs r0, 0x1
ands r0, r1
b _080F94AA
.align 2, 0
_080F9498: .4byte 0x00000994
_080F949C: .4byte gUnknown_3005450
_080F94A0: .4byte gUnknown_3007460
_080F94A4:
movs r0, 0
b _080F94AA
_080F94A8:
movs r0, 0
_080F94AA:
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80F9204
thumb_func_start sub_80F94BC
sub_80F94BC: @ 80F94BC
push {r4,r5,lr}
adds r4, r0, 0
adds r2, r1, 0
ldrh r1, [r4]
cmp r1, 0
beq _080F9500
ldr r0, _080F94FC @ =gUnknown_3005450
movs r5, 0x81
lsls r5, 1
adds r3, r0, r5
ldrb r0, [r3]
lsls r0, 5
orrs r0, r1
strh r0, [r4]
ldrb r0, [r3]
adds r0, 0x1
movs r1, 0x7
ands r0, r1
strb r0, [r3]
adds r3, r4, 0
movs r4, 0x6
_080F94E6:
ldrh r1, [r3]
lsrs r0, r1, 8
strb r0, [r2, 0x1]
strb r1, [r2]
adds r2, 0x2
adds r3, 0x2
subs r4, 0x1
cmp r4, 0
bge _080F94E6
b _080F950E
.align 2, 0
_080F94FC: .4byte gUnknown_3005450
_080F9500:
movs r1, 0
adds r0, r2, 0
adds r0, 0xD
_080F9506:
strb r1, [r0]
subs r0, 0x1
cmp r0, r2
bge _080F9506
_080F950E:
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80F94BC
thumb_func_start sub_80F9514
sub_80F9514: @ 80F9514
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x58
ldr r0, _080F9638 @ =gUnknown_3005574
mov r1, sp
bl sub_80FC6E8
movs r1, 0
ldr r0, _080F963C @ =gRecvCmds
mov r12, r0
_080F952A:
movs r4, 0
lsls r0, r1, 3
adds r2, r1, 0x1
mov r8, r2
lsls r6, r1, 4
subs r0, r1
lsls r5, r0, 1
_080F9538:
lsls r1, r4, 1
adds r3, r1, r6
add r3, r12
adds r1, r5, r1
adds r0, r1, 0x1
add r0, sp
ldrb r2, [r0]
lsls r2, 8
mov r7, sp
adds r0, r7, r1
ldrb r0, [r0]
orrs r0, r2
strh r0, [r3]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x6
bls _080F9538
mov r1, r8
lsls r0, r1, 24
lsrs r1, r0, 24
cmp r1, 0x4
bls _080F952A
movs r0, 0
bl sub_80F9868
ldr r0, _080F9640 @ =gUnknown_3005E10
ldrb r0, [r0, 0x2]
cmp r0, 0
bne _080F95E4
ldr r0, _080F9644 @ =gUnknown_3005450
ldr r2, _080F9648 @ =0x0000099c
adds r0, r2
ldrb r0, [r0]
cmp r0, 0
beq _080F95E4
ldr r0, _080F964C @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r0, 0x2]
ldrb r0, [r0, 0x3]
orrs r0, r1
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
bl sub_80FB9F4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
beq _080F95B0
cmp r0, 0x6
beq _080F95B0
cmp r0, 0x9
beq _080F95B0
movs r1, 0x90
lsls r1, 8
movs r0, 0x2
bl sub_80FB9E4
_080F95B0:
bl rfu_clearAllSlot
ldr r1, _080F9650 @ =gReceivedRemoteLinkPlayers
movs r0, 0
strb r0, [r1]
ldr r0, _080F9644 @ =gUnknown_3005450
movs r5, 0
str r5, [r0]
ldr r7, _080F9648 @ =0x0000099c
adds r6, r0, r7
ldrb r0, [r6]
cmp r0, 0x1
bne _080F95DC
movs r4, 0x90
lsls r4, 8
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
adds r0, r4, 0
bl sub_80FB0E8
_080F95DC:
ldr r0, _080F9640 @ =gUnknown_3005E10
strb r5, [r0, 0x5]
strb r5, [r0, 0x4]
strb r5, [r6]
_080F95E4:
ldr r6, _080F9644 @ =gUnknown_3005450
ldr r0, _080F9654 @ =0x00000988
adds r2, r6, r0
ldrb r0, [r2]
cmp r0, 0
beq _080F9628
ldrb r0, [r2]
subs r0, 0x1
ldrb r1, [r2]
strb r0, [r2]
bl sub_80FA510
ldr r5, _080F9658 @ =gUnknown_3003F50
add r4, sp, 0x48
adds r0, r5, 0
adds r1, r4, 0
bl sub_80F94BC
movs r1, 0xD4
lsls r1, 3
adds r0, r6, r1
adds r1, r4, 0
bl sub_80FC63C
movs r1, 0
movs r2, 0
_080F9618:
lsls r0, r1, 1
adds r0, r5
strh r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x6
bls _080F9618
_080F9628:
bl sub_80F90DC
add sp, 0x58
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080F9638: .4byte gUnknown_3005574
_080F963C: .4byte gRecvCmds
_080F9640: .4byte gUnknown_3005E10
_080F9644: .4byte gUnknown_3005450
_080F9648: .4byte 0x0000099c
_080F964C: .4byte gUnknown_3007460
_080F9650: .4byte gReceivedRemoteLinkPlayers
_080F9654: .4byte 0x00000988
_080F9658: .4byte gUnknown_3003F50
thumb_func_end sub_80F9514
thumb_func_start sub_80F965C
sub_80F965C: @ 80F965C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
ldr r0, _080F9708 @ =gUnknown_3005450
ldr r2, [r0, 0x70]
mov r10, r2
movs r5, 0
adds r2, r0, 0
adds r2, 0x6E
ldrh r3, [r2]
cmp r5, r3
bge _080F96F8
mov r9, r0
ldr r0, _080F970C @ =gUnknown_3002008
mov r8, r0
_080F967E:
movs r0, 0x1
ands r0, r1
lsrs r7, r1, 1
adds r6, r5, 0x1
cmp r0, 0
bne _080F96EC
ldr r1, _080F9710 @ =0xffff8900
adds r0, r1, 0
adds r1, r5, 0
orrs r1, r0
mov r2, r8
strh r1, [r2]
movs r4, 0
lsls r0, r5, 1
ldr r3, _080F9714 @ =gUnknown_3001FF8
mov r12, r3
adds r0, r5
lsls r0, 2
mov r1, r10
adds r2, r0, r1
mov r3, r8
adds r3, 0x2
_080F96AA:
ldrb r1, [r2, 0x1]
lsls r1, 8
ldrb r0, [r2]
orrs r0, r1
strh r0, [r3]
adds r2, 0x2
adds r3, 0x2
adds r4, 0x1
cmp r4, 0x6
ble _080F96AA
movs r4, 0
ldr r2, _080F970C @ =gUnknown_3002008
ldr r1, _080F9714 @ =gUnknown_3001FF8
_080F96C4:
ldrh r0, [r2]
lsrs r0, 8
strb r0, [r1, 0x1]
ldrh r0, [r2]
strb r0, [r1]
adds r2, 0x2
adds r1, 0x2
adds r4, 0x1
cmp r4, 0x6
ble _080F96C4
ldr r0, _080F9718 @ =gUnknown_3005AF0
mov r1, r12
bl sub_80FC63C
movs r1, 0x1
lsls r1, r5
mov r2, r9
ldr r0, [r2, 0x78]
orrs r0, r1
str r0, [r2, 0x78]
_080F96EC:
adds r1, r7, 0
adds r5, r6, 0
ldr r3, _080F971C @ =gUnknown_30054BE
ldrh r3, [r3]
cmp r5, r3
blt _080F967E
_080F96F8:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080F9708: .4byte gUnknown_3005450
_080F970C: .4byte gUnknown_3002008
_080F9710: .4byte 0xffff8900
_080F9714: .4byte gUnknown_3001FF8
_080F9718: .4byte gUnknown_3005AF0
_080F971C: .4byte gUnknown_30054BE
thumb_func_end sub_80F965C
thumb_func_start sub_80F9720
sub_80F9720: @ 80F9720
push {lr}
lsls r0, 24
lsrs r1, r0, 24
ldr r0, _080F973C @ =gUnknown_3005450
ldrb r2, [r0, 0xC]
cmp r2, 0x1
bne _080F9740
cmp r1, 0
beq _080F9740
adds r0, 0x61
adds r0, r1, r0
strb r2, [r0]
b _080F9748
.align 2, 0
_080F973C: .4byte gUnknown_3005450
_080F9740:
adds r0, 0x5C
adds r0, r1, r0
movs r1, 0x1
strb r1, [r0]
_080F9748:
pop {r0}
bx r0
thumb_func_end sub_80F9720
thumb_func_start sub_80F974C
sub_80F974C: @ 80F974C
lsls r0, 24
lsrs r0, 24
ldr r3, _080F976C @ =gUnknown_3005450
adds r1, r3, 0
adds r1, 0x5C
adds r1, r0, r1
movs r2, 0
strb r2, [r1]
lsls r1, r0, 2
adds r1, r0
lsls r1, 2
adds r1, r3
adds r1, 0x92
strb r2, [r1]
bx lr
.align 2, 0
_080F976C: .4byte gUnknown_3005450
thumb_func_end sub_80F974C
thumb_func_start sub_80F9770
sub_80F9770: @ 80F9770
push {r4,r5,lr}
adds r3, r0, 0
ldr r0, _080F9784 @ =gUnknown_3005450
ldrb r1, [r0, 0xC]
adds r5, r0, 0
cmp r1, 0x1
bne _080F9788
movs r0, 0
b _080F97AA
.align 2, 0
_080F9784: .4byte gUnknown_3005450
_080F9788:
movs r2, 0
ldr r0, _080F97B0 @ =0x00000996
adds r4, r5, r0
_080F978E:
adds r1, r2, r4
adds r0, r3, r2
ldrb r0, [r0]
strb r0, [r1]
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080F978E
ldr r1, _080F97B4 @ =0x000008f6
adds r0, r5, r1
ldrb r0, [r0]
adds r0, r3
ldrb r0, [r0]
_080F97AA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080F97B0: .4byte 0x00000996
_080F97B4: .4byte 0x000008f6
thumb_func_end sub_80F9770
thumb_func_start rfu_func_080F97B8
rfu_func_080F97B8: @ 80F97B8
push {lr}
ldr r0, _080F97F0 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _080F97EA
ldr r3, _080F97F4 @ =gUnknown_3005028
ldrh r2, [r3]
cmp r2, 0
beq _080F97EA
ldr r0, _080F97F8 @ =gLinkTransferringData
ldrb r0, [r0]
cmp r0, 0x1
beq _080F97EA
ldr r1, _080F97FC @ =gUnknown_3001188
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldrb r0, [r1]
lsls r0, 8
orrs r0, r2
strh r0, [r3]
movs r0, 0xBE
lsls r0, 8
bl sub_80F9D04
_080F97EA:
pop {r0}
bx r0
.align 2, 0
_080F97F0: .4byte gReceivedRemoteLinkPlayers
_080F97F4: .4byte gUnknown_3005028
_080F97F8: .4byte gLinkTransferringData
_080F97FC: .4byte gUnknown_3001188
thumb_func_end rfu_func_080F97B8
thumb_func_start sub_80F9800
sub_80F9800: @ 80F9800
ldr r0, _080F9804 @ =gUnknown_3005440
bx lr
.align 2, 0
_080F9804: .4byte gUnknown_3005440
thumb_func_end sub_80F9800
thumb_func_start sub_80F9808
sub_80F9808: @ 80F9808
push {lr}
movs r2, 0
ldr r0, _080F9820 @ =gUnknown_3005450
ldr r1, [r0]
ldr r0, _080F9824 @ =rfu_func_080F97B8
cmp r1, r0
bne _080F9818
movs r2, 0x1
_080F9818:
adds r0, r2, 0
pop {r1}
bx r1
.align 2, 0
_080F9820: .4byte gUnknown_3005450
_080F9824: .4byte rfu_func_080F97B8
thumb_func_end sub_80F9808
thumb_func_start sub_80F9828
sub_80F9828: @ 80F9828
push {r4,lr}
ldr r4, _080F9848 @ =gUnknown_3005450
ldr r0, [r4]
cmp r0, 0
beq _080F983E
ldr r0, _080F984C @ =gUnknown_843ED94 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu.c"
ldr r1, _080F9850 @ =0x000005c1
ldr r2, _080F9854 @ =gUnknown_843EDC4 "Rfu.RfuFunc == NULL"
movs r3, 0x1
bl AGBAssert
_080F983E:
ldr r0, _080F9858 @ =rfu_func_080F97B8
str r0, [r4]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F9848: .4byte gUnknown_3005450
_080F984C: .4byte gUnknown_843ED94
_080F9850: .4byte 0x000005c1
_080F9854: .4byte gUnknown_843EDC4
_080F9858: .4byte rfu_func_080F97B8
thumb_func_end sub_80F9828
thumb_func_start sub_80F985C
sub_80F985C: @ 80F985C
ldr r1, _080F9864 @ =gUnknown_3005450
movs r0, 0
str r0, [r1]
bx lr
.align 2, 0
_080F9864: .4byte gUnknown_3005450
thumb_func_end sub_80F985C
thumb_func_start sub_80F9868
sub_80F9868: @ 80F9868
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r0, 0
mov r8, r0
_080F9876:
mov r1, r8
lsls r5, r1, 4
ldr r2, _080F98B4 @ =gRecvCmds
adds r0, r5, r2
ldrh r7, [r0]
movs r3, 0xFF
lsls r3, 8
adds r0, r3, 0
adds r1, r0, 0
ands r1, r7
movs r0, 0x88
lsls r0, 8
adds r2, r5, 0
cmp r1, r0
beq _080F9954
cmp r1, r0
bgt _080F98CA
movs r0, 0xCC
lsls r0, 7
cmp r1, r0
bne _080F98A2
b _080F9AD0
_080F98A2:
cmp r1, r0
bgt _080F98B8
movs r0, 0xBE
lsls r0, 7
cmp r1, r0
bne _080F98B0
b _080F9AC0
_080F98B0:
b _080F9BF4
.align 2, 0
_080F98B4: .4byte gRecvCmds
_080F98B8:
movs r0, 0xEE
lsls r0, 7
cmp r1, r0
beq _080F9914
movs r0, 0xF0
lsls r0, 7
cmp r1, r0
beq _080F9902
b _080F9BF4
_080F98CA:
movs r0, 0xBE
lsls r0, 8
cmp r1, r0
bne _080F98D4
b _080F9BE4
_080F98D4:
cmp r1, r0
bgt _080F98EC
movs r0, 0x89
lsls r0, 8
cmp r1, r0
beq _080F99B8
movs r0, 0xA1
lsls r0, 8
cmp r1, r0
bne _080F98EA
b _080F9A9C
_080F98EA:
b _080F9BF4
_080F98EC:
movs r0, 0xED
lsls r0, 8
cmp r1, r0
bne _080F98F6
b _080F9B00
_080F98F6:
movs r0, 0xEE
lsls r0, 8
cmp r1, r0
bne _080F9900
b _080F9BA0
_080F9900:
b _080F9BF4
_080F9902:
ldr r4, _080F993C @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
cmp r0, 0
bne _080F9914
ldr r0, _080F9940 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _080F9914
b _080F9C40
_080F9914:
ldr r0, _080F9944 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
mov r6, r8
adds r6, 0x1
cmp r0, 0
beq _080F9924
b _080F9BF8
_080F9924:
ldr r1, _080F9948 @ =gUnknown_3003ED2
adds r0, r2, r1
ldrh r0, [r0]
ldr r3, _080F993C @ =gUnknown_3005450
strb r0, [r3, 0xD]
ldr r4, _080F994C @ =gUnknown_3003ED4
adds r0, r2, r4
bl sub_80F9770
ldr r1, _080F9950 @ =gUnknown_3005DD6
strb r0, [r1]
b _080F9BF8
.align 2, 0
_080F993C: .4byte gUnknown_3005450
_080F9940: .4byte gReceivedRemoteLinkPlayers
_080F9944: .4byte gUnknown_3007460
_080F9948: .4byte gUnknown_3003ED2
_080F994C: .4byte gUnknown_3003ED4
_080F9950: .4byte gUnknown_3005DD6
_080F9954:
ldr r2, _080F99AC @ =gUnknown_3005450
mov r9, r2
mov r3, r8
lsls r0, r3, 2
add r0, r8
lsls r7, r0, 2
adds r3, r7, r2
movs r4, 0x92
adds r4, r3
mov r12, r4
ldrb r4, [r4]
mov r6, r8
adds r6, 0x1
cmp r4, 0
beq _080F9974
b _080F9BF8
_080F9974:
adds r0, r3, 0
adds r0, 0x80
movs r2, 0
strh r4, [r0]
ldr r1, _080F99B0 @ =gUnknown_3003ED2
adds r0, r5, r1
ldrh r0, [r0]
adds r1, r3, 0
adds r1, 0x82
strh r0, [r1]
ldr r1, _080F99B4 @ =gUnknown_3003ED4
adds r0, r5, r1
ldrh r1, [r0]
adds r0, r3, 0
adds r0, 0x91
strb r1, [r0]
mov r0, r9
adds r0, 0x88
adds r0, r7, r0
str r4, [r0]
movs r0, 0x1
mov r3, r12
strb r0, [r3]
mov r0, r9
adds r0, 0x5C
add r0, r8
strb r2, [r0]
b _080F9BF8
.align 2, 0
_080F99AC: .4byte gUnknown_3005450
_080F99B0: .4byte gUnknown_3003ED2
_080F99B4: .4byte gUnknown_3003ED4
_080F99B8:
ldr r4, _080F9A88 @ =gUnknown_3005450
mov r9, r4
mov r0, r8
lsls r1, r0, 2
adds r0, r1, r0
lsls r4, r0, 2
mov r3, r9
adds r2, r4, r3
adds r0, r2, 0
adds r0, 0x92
ldrb r3, [r0]
mov r10, r1
mov r6, r8
adds r6, 0x1
cmp r3, 0x1
beq _080F99DA
b _080F9BF8
_080F99DA:
movs r0, 0xFF
ands r0, r7
adds r2, 0x80
strh r0, [r2]
mov r1, r9
adds r1, 0x88
adds r1, r4, r1
lsls r3, r0
ldr r0, [r1]
orrs r0, r3
str r0, [r1]
movs r4, 0
ldr r0, _080F9A8C @ =gBlockRecvBuffer
mov r9, r0
mov r12, r2
mov r1, r8
lsls r7, r1, 8
adds r3, r5, 0
_080F99FE:
mov r2, r12
ldrh r0, [r2]
lsls r1, r0, 1
adds r1, r0
lsls r1, 1
adds r1, r4
lsls r1, 1
adds r1, r7
add r1, r9
adds r2, r4, 0x1
lsls r0, r2, 1
adds r0, r3
ldr r4, _080F9A90 @ =gRecvCmds
adds r0, r4
ldrh r0, [r0]
strh r0, [r1]
lsls r2, 16
lsrs r4, r2, 16
cmp r4, 0x5
bls _080F99FE
ldr r4, _080F9A88 @ =gUnknown_3005450
mov r0, r10
add r0, r8
lsls r0, 2
adds r1, r4, 0
adds r1, 0x88
adds r1, r0, r1
adds r2, r0, r4
adds r0, r2, 0
adds r0, 0x82
ldrh r0, [r0]
lsls r0, 2
ldr r3, _080F9A94 @ =gUnknown_843EBD4
adds r0, r3
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _080F9A4C
b _080F9BF8
_080F9A4C:
adds r1, r2, 0
adds r1, 0x92
movs r0, 0x2
strb r0, [r1]
mov r1, r8
lsls r0, r1, 24
lsrs r0, 24
bl sub_80F9720
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
beq _080F9A6E
b _080F9BF8
_080F9A6E:
ldr r0, _080F9A98 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
bne _080F9A78
b _080F9BF8
_080F9A78:
ldrb r0, [r4, 0xC]
cmp r0, 0
beq _080F9A80
b _080F9BF8
_080F9A80:
ldr r0, _080F9A8C @ =gBlockRecvBuffer
bl sub_80FAA58
b _080F9BF8
.align 2, 0
_080F9A88: .4byte gUnknown_3005450
_080F9A8C: .4byte gBlockRecvBuffer
_080F9A90: .4byte gRecvCmds
_080F9A94: .4byte gUnknown_843EBD4
_080F9A98: .4byte gReceivedRemoteLinkPlayers
_080F9A9C:
ldr r2, _080F9AB8 @ =gUnknown_843EC64
ldr r3, _080F9ABC @ =gUnknown_3003ED2
adds r0, r5, r3
ldrh r1, [r0]
lsls r1, 3
adds r0, r1, r2
ldr r0, [r0]
adds r2, 0x4
adds r1, r2
ldrh r1, [r1]
bl sub_80F9E60
b _080F9BF4
.align 2, 0
_080F9AB8: .4byte gUnknown_843EC64
_080F9ABC: .4byte gUnknown_3003ED2
_080F9AC0:
ldr r1, _080F9ACC @ =gUnknown_3005534
add r1, r8
movs r0, 0x1
strb r0, [r1]
b _080F9BF4
.align 2, 0
_080F9ACC: .4byte gUnknown_3005534
_080F9AD0:
ldr r2, _080F9AF8 @ =gUnknown_3005450
movs r4, 0x80
lsls r4, 1
adds r0, r2, r4
ldr r3, _080F9AFC @ =gUnknown_3003ED2
adds r1, r5, r3
ldrh r0, [r0]
mov r6, r8
adds r6, 0x1
ldrh r1, [r1]
cmp r0, r1
beq _080F9AEA
b _080F9BF8
_080F9AEA:
adds r0, r2, 0
adds r0, 0xE9
add r0, r8
movs r1, 0x1
strb r1, [r0]
b _080F9BF8
.align 2, 0
_080F9AF8: .4byte gUnknown_3005450
_080F9AFC: .4byte gUnknown_3003ED2
_080F9B00:
ldr r7, _080F9B4C @ =gUnknown_3005450
ldrb r2, [r7, 0xC]
cmp r2, 0
bne _080F9B68
ldr r3, _080F9B50 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r3]
mov r6, r8
adds r6, 0x1
cmp r0, 0
beq _080F9BF8
ldr r0, _080F9B54 @ =gUnknown_3003ED2
adds r4, r5, r0
ldrh r1, [r4]
ldr r0, _080F9B58 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0, 0x2]
ands r1, r0
cmp r1, 0
beq _080F9B38
strb r2, [r3]
bl sub_80FEB14
ldr r1, _080F9B5C @ =gUnknown_3003ED4
adds r0, r5, r1
ldrh r1, [r0]
ldr r2, _080F9B60 @ =0x0000099c
adds r0, r7, r2
strb r1, [r0]
_080F9B38:
ldr r0, _080F9B64 @ =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
strb r0, [r7, 0xD]
ldrh r0, [r4]
bl sub_80FA9D0
b _080F9BF8
.align 2, 0
_080F9B4C: .4byte gUnknown_3005450
_080F9B50: .4byte gReceivedRemoteLinkPlayers
_080F9B54: .4byte gUnknown_3003ED2
_080F9B58: .4byte gUnknown_3007460
_080F9B5C: .4byte gUnknown_3003ED4
_080F9B60: .4byte 0x0000099c
_080F9B64: .4byte gRecvCmds
_080F9B68:
movs r0, 0xEE
lsls r0, 8
bl sub_80F9D04
ldr r1, _080F9B90 @ =gUnknown_3003F50
ldr r3, _080F9B94 @ =gUnknown_3003ED2
adds r0, r5, r3
ldrh r0, [r0]
strh r0, [r1, 0x2]
ldr r4, _080F9B98 @ =gUnknown_3003ED4
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r1, 0x4]
ldr r0, _080F9B9C @ =gRecvCmds
adds r0, 0x6
adds r0, r5, r0
ldrh r0, [r0]
strh r0, [r1, 0x6]
b _080F9BF4
.align 2, 0
_080F9B90: .4byte gUnknown_3003F50
_080F9B94: .4byte gUnknown_3003ED2
_080F9B98: .4byte gUnknown_3003ED4
_080F9B9C: .4byte gRecvCmds
_080F9BA0:
ldr r4, _080F9BD0 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
mov r6, r8
adds r6, 0x1
cmp r0, 0x1
bne _080F9C34
ldr r0, _080F9BD4 @ =0x0000099b
adds r2, r4, r0
ldr r1, _080F9BD8 @ =gUnknown_3003ED2
adds r3, r5, r1
ldrb r1, [r3]
ldrb r0, [r2]
orrs r0, r1
strb r0, [r2]
ldr r2, _080F9BDC @ =gUnknown_3003ED4
adds r0, r5, r2
ldrh r1, [r0]
ldr r2, _080F9BE0 @ =0x0000099c
adds r0, r4, r2
strb r1, [r0]
ldrh r0, [r3]
bl sub_80FA9D0
b _080F9BF8
.align 2, 0
_080F9BD0: .4byte gUnknown_3005450
_080F9BD4: .4byte 0x0000099b
_080F9BD8: .4byte gUnknown_3003ED2
_080F9BDC: .4byte gUnknown_3003ED4
_080F9BE0: .4byte 0x0000099c
_080F9BE4:
ldr r0, _080F9C24 @ =gUnknown_3003E60
mov r3, r8
lsls r1, r3, 1
adds r1, r0
ldr r4, _080F9C28 @ =gUnknown_3003ED2
adds r0, r5, r4
ldrh r0, [r0]
strh r0, [r1]
_080F9BF4:
mov r6, r8
adds r6, 0x1
_080F9BF8:
ldr r3, _080F9C2C @ =gUnknown_3005450
ldrb r4, [r3, 0xC]
cmp r4, 0x1
bne _080F9C34
adds r0, r3, 0
adds r0, 0x61
mov r1, r8
adds r2, r1, r0
ldrb r0, [r2]
adds r1, r0, 0
cmp r1, 0
beq _080F9C34
cmp r1, 0x4
bne _080F9C30
adds r0, r3, 0
adds r0, 0x5C
add r0, r8
movs r1, 0
strb r4, [r0]
strb r1, [r2]
b _080F9C34
.align 2, 0
_080F9C24: .4byte gUnknown_3003E60
_080F9C28: .4byte gUnknown_3003ED2
_080F9C2C: .4byte gUnknown_3005450
_080F9C30:
adds r0, 0x1
strb r0, [r2]
_080F9C34:
lsls r0, r6, 16
lsrs r0, 16
mov r8, r0
cmp r0, 0x4
bhi _080F9C40
b _080F9876
_080F9C40:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80F9868
thumb_func_start sub_80F9C50
sub_80F9C50: @ 80F9C50
push {lr}
movs r2, 0
ldr r0, _080F9C64 @ =gUnknown_3005450
adds r1, r0, 0
adds r1, 0x92
_080F9C5A:
ldrb r0, [r1]
cmp r0, 0
beq _080F9C68
movs r0, 0
b _080F9C72
.align 2, 0
_080F9C64: .4byte gUnknown_3005450
_080F9C68:
adds r1, 0x14
adds r2, 0x1
cmp r2, 0x4
ble _080F9C5A
movs r0, 0x1
_080F9C72:
pop {r1}
bx r1
thumb_func_end sub_80F9C50
thumb_func_start sub_80F9C78
sub_80F9C78: @ 80F9C78
push {r4,lr}
movs r1, 0
ldr r2, _080F9CA0 @ =gUnknown_3005450
ldrb r0, [r2, 0xD]
cmp r1, r0
bge _080F9CAC
adds r4, r0, 0
adds r3, r2, 0
adds r3, 0x92
adds r2, 0x5C
_080F9C8C:
ldrb r0, [r3]
cmp r0, 0x2
bne _080F9C9A
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x1
beq _080F9CA4
_080F9C9A:
movs r0, 0
b _080F9CAE
.align 2, 0
_080F9CA0: .4byte gUnknown_3005450
_080F9CA4:
adds r3, 0x14
adds r1, 0x1
cmp r1, r4
blt _080F9C8C
_080F9CAC:
movs r0, 0x1
_080F9CAE:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80F9C78
thumb_func_start sub_80F9CB4
sub_80F9CB4: @ 80F9CB4
movs r2, 0
movs r1, 0
strh r1, [r0]
strh r1, [r0, 0x2]
str r1, [r0, 0x4]
str r1, [r0, 0x8]
strb r2, [r0, 0x10]
strb r2, [r0, 0x11]
strb r2, [r0, 0x12]
bx lr
thumb_func_end sub_80F9CB4
thumb_func_start sub_80F9CC8
sub_80F9CC8: @ 80F9CC8
push {r4,lr}
movs r2, 0
movs r1, 0
ldr r0, _080F9D00 @ =gUnknown_3005450
adds r3, r0, 0
adds r3, 0x92
adds r4, r0, 0
adds r4, 0x5C
_080F9CD8:
ldrb r0, [r3]
cmp r0, 0x2
bne _080F9CEE
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0x1
bne _080F9CEE
lsls r0, r1
orrs r2, r0
lsls r0, r2, 24
lsrs r2, r0, 24
_080F9CEE:
adds r3, 0x14
adds r1, 0x1
cmp r1, 0x4
ble _080F9CD8
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080F9D00: .4byte gUnknown_3005450
thumb_func_end sub_80F9CC8
thumb_func_start sub_80F9D04
sub_80F9D04: @ 80F9D04
push {r4,r5,lr}
lsls r0, 16
lsrs r1, r0, 16
ldr r5, _080F9D34 @ =gUnknown_3003F50
strh r1, [r5]
movs r0, 0xF0
lsls r0, 7
adds r4, r5, 0
cmp r1, r0
beq _080F9D98
cmp r1, r0
bgt _080F9D4A
movs r0, 0xBE
lsls r0, 7
cmp r1, r0
beq _080F9DE8
cmp r1, r0
bgt _080F9D38
movs r0, 0xBC
lsls r0, 6
cmp r1, r0
beq _080F9DFC
b _080F9E22
.align 2, 0
_080F9D34: .4byte gUnknown_3003F50
_080F9D38:
movs r0, 0xCC
lsls r0, 7
cmp r1, r0
beq _080F9DE8
movs r0, 0xEE
lsls r0, 7
cmp r1, r0
beq _080F9D98
b _080F9E22
_080F9D4A:
movs r0, 0xBE
lsls r0, 8
cmp r1, r0
beq _080F9E1C
cmp r1, r0
bgt _080F9E22
movs r0, 0x88
lsls r0, 8
cmp r1, r0
beq _080F9D68
movs r0, 0xA1
lsls r0, 8
cmp r1, r0
beq _080F9D80
b _080F9E22
_080F9D68:
ldr r0, _080F9D7C @ =gUnknown_3005450
adds r1, r0, 0
adds r1, 0x6E
ldrh r1, [r1]
strh r1, [r5, 0x2]
adds r0, 0x7D
ldrb r0, [r0]
adds r0, 0x80
strh r0, [r5, 0x4]
b _080F9E22
.align 2, 0
_080F9D7C: .4byte gUnknown_3005450
_080F9D80:
bl sub_80F9C50
lsls r0, 24
cmp r0, 0
beq _080F9E22
ldr r0, _080F9D94 @ =gUnknown_3005450
adds r0, 0x5A
ldrb r0, [r0]
b _080F9E20
.align 2, 0
_080F9D94: .4byte gUnknown_3005450
_080F9D98:
ldr r3, _080F9DD4 @ =gUnknown_3005450
ldr r1, _080F9DD8 @ =0x0000099a
adds r0, r3, r1
ldr r2, _080F9DDC @ =0x0000099b
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
eors r0, r2
ldr r1, _080F9DE0 @ =gUnknown_843EC41
adds r0, r1
ldrb r0, [r0]
adds r0, 0x1
strb r0, [r3, 0xD]
ldrb r0, [r3, 0xD]
strh r0, [r4, 0x2]
adds r2, r4, 0x4
movs r4, 0
ldr r0, _080F9DE4 @ =0x00000996
adds r3, r0
_080F9DBE:
adds r1, r2, r4
adds r0, r4, r3
ldrb r0, [r0]
strb r0, [r1]
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x3
bls _080F9DBE
b _080F9E22
.align 2, 0
_080F9DD4: .4byte gUnknown_3005450
_080F9DD8: .4byte 0x0000099a
_080F9DDC: .4byte 0x0000099b
_080F9DE0: .4byte gUnknown_843EC41
_080F9DE4: .4byte 0x00000996
_080F9DE8:
ldr r0, _080F9DF8 @ =gUnknown_3005450
movs r1, 0x80
lsls r1, 1
adds r0, r1
ldrh r0, [r0]
strh r0, [r4, 0x2]
b _080F9E22
.align 2, 0
_080F9DF8: .4byte gUnknown_3005450
_080F9DFC:
movs r4, 0
ldr r3, _080F9E18 @ =gUnknown_3005542
_080F9E00:
adds r2, r4, 0x1
lsls r1, r2, 1
adds r1, r5
lsls r0, r4, 1
adds r0, r3
ldrh r0, [r0]
strh r0, [r1]
lsls r2, 24
lsrs r4, r2, 24
cmp r4, 0x5
bls _080F9E00
b _080F9E22
.align 2, 0
_080F9E18: .4byte gUnknown_3005542
_080F9E1C:
ldr r0, _080F9E28 @ =gUnknown_3005028
ldrh r0, [r0]
_080F9E20:
strh r0, [r5, 0x2]
_080F9E22:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F9E28: .4byte gUnknown_3005028
thumb_func_end sub_80F9D04
thumb_func_start sub_80F9E2C
sub_80F9E2C: @ 80F9E2C
push {r4,lr}
adds r4, r0, 0
ldr r0, _080F9E58 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080F9E52
bl sub_80FBA00
cmp r0, 0
bne _080F9E52
ldr r0, _080F9E5C @ =gUnknown_3005542
adds r1, r4, 0
movs r2, 0xC
bl memcpy
movs r0, 0xBC
lsls r0, 6
bl sub_80F9D04
_080F9E52:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080F9E58: .4byte gUnknown_3003F50
_080F9E5C: .4byte gUnknown_3005542
thumb_func_end sub_80F9E2C
thumb_func_start sub_80F9E60
sub_80F9E60: @ 80F9E60
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
adds r6, r1, 0
cmp r6, 0xFC
bls _080F9E7C
ldr r0, _080F9EA8 @ =gUnknown_843ED94 "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/rfu.c"
ldr r1, _080F9EAC @ =0x00000701
ldr r2, _080F9EB0 @ =gUnknown_843EDD8 "size<=252"
movs r3, 0x1
bl AGBAssert
_080F9E7C:
ldr r5, _080F9EB4 @ =gUnknown_3005450
ldr r0, [r5]
cmp r0, 0
bne _080F9EA4
ldr r0, _080F9EB8 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080F9EA4
movs r0, 0x7C
adds r0, r5
mov r9, r0
ldrb r1, [r0]
mov r8, r1
cmp r1, 0
beq _080F9EC0
ldr r1, _080F9EBC @ =gUnknown_203AC08
adds r1, 0x83
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
_080F9EA4:
movs r0, 0
b _080F9F2A
.align 2, 0
_080F9EA8: .4byte gUnknown_843ED94
_080F9EAC: .4byte 0x00000701
_080F9EB0: .4byte gUnknown_843EDD8
_080F9EB4: .4byte gUnknown_3005450
_080F9EB8: .4byte gUnknown_3003F50
_080F9EBC: .4byte gUnknown_203AC08
_080F9EC0:
adds r0, r6, 0
movs r1, 0xC
bl __umodsi3
negs r4, r0
orrs r4, r0
lsrs r4, 31
bl GetMultiplayerId
adds r1, r5, 0
adds r1, 0x7D
strb r0, [r1]
movs r0, 0x1
mov r1, r9
strb r0, [r1]
adds r0, r6, 0
movs r1, 0xC
bl __udivsi3
adds r0, r4
adds r1, r5, 0
adds r1, 0x6E
strh r0, [r1]
adds r0, r5, 0
adds r0, 0x6C
mov r1, r8
strh r1, [r0]
movs r0, 0x80
lsls r0, 1
cmp r6, r0
bls _080F9F02
str r7, [r5, 0x70]
b _080F9F14
_080F9F02:
ldr r4, _080F9F38 @ =gBlockSendBuffer
cmp r7, r4
beq _080F9F12
adds r0, r4, 0
adds r1, r7, 0
adds r2, r6, 0
bl memcpy
_080F9F12:
str r4, [r5, 0x70]
_080F9F14:
movs r0, 0x88
lsls r0, 8
bl sub_80F9D04
ldr r0, _080F9F3C @ =gUnknown_3005450
ldr r1, _080F9F40 @ =rfufunc_80F9F44
str r1, [r0]
adds r0, 0x5B
movs r1, 0
strb r1, [r0]
movs r0, 0x1
_080F9F2A:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080F9F38: .4byte gBlockSendBuffer
_080F9F3C: .4byte gUnknown_3005450
_080F9F40: .4byte rfufunc_80F9F44
thumb_func_end sub_80F9E60
thumb_func_start rfufunc_80F9F44
rfufunc_80F9F44: @ 80F9F44
push {r4,r5,lr}
ldr r0, _080F9F74 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080F9F98
movs r5, 0x88
lsls r5, 8
adds r0, r5, 0
bl sub_80F9D04
ldr r4, _080F9F78 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
cmp r0, 0x1
bne _080F9F7C
adds r1, r4, 0
adds r1, 0x5B
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bls _080F9F98
b _080F9F94
.align 2, 0
_080F9F74: .4byte gUnknown_3003F50
_080F9F78: .4byte gUnknown_3005450
_080F9F7C:
bl GetMultiplayerId
ldr r1, _080F9FA0 @ =gRecvCmds
lsls r0, 24
lsrs r0, 20
adds r0, r1
ldrh r1, [r0]
movs r0, 0xFF
lsls r0, 8
ands r0, r1
cmp r0, r5
bne _080F9F98
_080F9F94:
ldr r0, _080F9FA4 @ =sub_80F9FA8
str r0, [r4]
_080F9F98:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080F9FA0: .4byte gRecvCmds
_080F9FA4: .4byte sub_80F9FA8
thumb_func_end rfufunc_80F9F44
thumb_func_start sub_80F9FA8
sub_80F9FA8: @ 80F9FA8
push {r4-r6,lr}
ldr r0, _080FA014 @ =gUnknown_3005450
mov r12, r0
ldr r5, [r0, 0x70]
ldr r3, _080FA018 @ =gUnknown_3003F50
mov r2, r12
adds r2, 0x6C
ldrh r1, [r2]
movs r4, 0x89
lsls r4, 8
adds r0, r4, 0
orrs r0, r1
strh r0, [r3]
movs r4, 0
adds r6, r2, 0
adds r3, 0x2
_080F9FC8:
lsls r2, r4, 1
ldrh r1, [r6]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
adds r0, r5
ldrb r1, [r0, 0x1]
lsls r1, 8
ldrb r0, [r0]
orrs r0, r1
strh r0, [r3]
adds r3, 0x2
adds r4, 0x1
cmp r4, 0x6
ble _080F9FC8
mov r0, r12
adds r0, 0x6C
ldrh r1, [r0]
adds r1, 0x1
strh r1, [r0]
adds r0, 0x2
ldrh r0, [r0]
lsls r1, 16
lsrs r1, 16
cmp r0, r1
bhi _080FA00C
mov r0, r12
adds r0, 0x7C
movs r1, 0
strb r1, [r0]
ldr r0, _080FA01C @ =rfufunc_80FA020
mov r1, r12
str r0, [r1]
_080FA00C:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FA014: .4byte gUnknown_3005450
_080FA018: .4byte gUnknown_3003F50
_080FA01C: .4byte rfufunc_80FA020
thumb_func_end sub_80F9FA8
thumb_func_start rfufunc_80FA020
rfufunc_80FA020: @ 80FA020
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
ldr r5, _080FA0C8 @ =gUnknown_3005450
ldr r0, [r5, 0x70]
mov r8, r0
bl GetMultiplayerId
lsls r0, 24
lsrs r6, r0, 24
ldrb r0, [r5, 0xC]
cmp r0, 0
bne _080FA0E8
ldr r3, _080FA0CC @ =gUnknown_3003F50
adds r2, r5, 0
adds r2, 0x6E
ldrh r0, [r2]
subs r0, 0x1
ldr r4, _080FA0D0 @ =0xffff8900
adds r1, r4, 0
orrs r0, r1
strh r0, [r3]
movs r4, 0
mov r9, r5
ldr r0, _080FA0D4 @ =gRecvCmds
mov r12, r0
lsls r5, r6, 4
adds r7, r2, 0
adds r3, 0x2
_080FA05C:
lsls r2, r4, 1
ldrh r1, [r7]
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
adds r0, r2
add r0, r8
adds r1, r0, 0
subs r1, 0xB
ldrb r1, [r1]
lsls r1, 8
subs r0, 0xC
ldrb r0, [r0]
orrs r0, r1
strh r0, [r3]
adds r3, 0x2
adds r4, 0x1
cmp r4, 0x6
ble _080FA05C
mov r1, r12
adds r0, r5, r1
ldrb r1, [r0]
mov r3, r9
adds r0, r3, 0
adds r0, 0x6E
ldrh r0, [r0]
subs r0, 0x1
cmp r1, r0
bne _080FA0EC
lsls r0, r6, 2
adds r0, r6
lsls r0, 2
adds r1, r3, 0
adds r1, 0x88
adds r1, r0, r1
ldr r2, _080FA0D8 @ =gUnknown_843EBD4
adds r0, r3
adds r0, 0x82
ldrh r0, [r0]
lsls r0, 2
adds r0, r2
ldr r1, [r1]
ldr r0, [r0]
cmp r1, r0
beq _080FA0E0
adds r0, r6, 0
bl sub_80F965C
ldr r1, _080FA0DC @ =gUnknown_203AC08
adds r1, 0x64
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
b _080FA0EC
.align 2, 0
_080FA0C8: .4byte gUnknown_3005450
_080FA0CC: .4byte gUnknown_3003F50
_080FA0D0: .4byte 0xffff8900
_080FA0D4: .4byte gRecvCmds
_080FA0D8: .4byte gUnknown_843EBD4
_080FA0DC: .4byte gUnknown_203AC08
_080FA0E0:
movs r0, 0
mov r4, r9
str r0, [r4]
b _080FA0EC
_080FA0E8:
movs r0, 0
str r0, [r5]
_080FA0EC:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end rfufunc_80FA020
thumb_func_start sub_80FA0F8
sub_80FA0F8: @ 80FA0F8
push {lr}
ldr r1, _080FA110 @ =gUnknown_3005450
adds r1, 0x5A
strb r0, [r1]
movs r0, 0xA1
lsls r0, 8
bl sub_80F9D04
movs r0, 0x1
pop {r1}
bx r1
.align 2, 0
_080FA110: .4byte gUnknown_3005450
thumb_func_end sub_80FA0F8
thumb_func_start sub_80FA114
sub_80FA114: @ 80FA114
push {lr}
bl rfu_clearAllSlot
bl sub_80FD52C
ldr r1, _080FA138 @ =gReceivedRemoteLinkPlayers
movs r0, 0
strb r0, [r1]
ldr r2, _080FA13C @ =gUnknown_3005450
adds r3, r2, 0
adds r3, 0xEF
movs r1, 0
movs r0, 0x1
strb r0, [r3]
str r1, [r2]
pop {r0}
bx r0
.align 2, 0
_080FA138: .4byte gReceivedRemoteLinkPlayers
_080FA13C: .4byte gUnknown_3005450
thumb_func_end sub_80FA114
thumb_func_start sub_80FA140
sub_80FA140: @ 80FA140
push {lr}
ldr r0, _080FA15C @ =gUnknown_3007460
ldr r0, [r0]
ldrb r1, [r0, 0x2]
ldrb r0, [r0, 0x3]
orrs r0, r1
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
bl sub_80FA114
pop {r0}
bx r0
.align 2, 0
_080FA15C: .4byte gUnknown_3007460
thumb_func_end sub_80FA140
thumb_func_start sub_80FA160
sub_80FA160: @ 80FA160
push {r4,lr}
ldr r4, _080FA178 @ =gUnknown_3005450
ldrb r0, [r4, 0xC]
cmp r0, 0
bne _080FA180
bl sub_80FEB14
ldr r0, _080FA17C @ =0x0000099c
adds r1, r4, r0
movs r0, 0x2
strb r0, [r1]
b _080FA184
.align 2, 0
_080FA178: .4byte gUnknown_3005450
_080FA17C: .4byte 0x0000099c
_080FA180:
ldr r0, _080FA18C @ =sub_80FA140
str r0, [r4]
_080FA184:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FA18C: .4byte sub_80FA140
thumb_func_end sub_80FA160
thumb_func_start sub_80FA190
sub_80FA190: @ 80FA190
push {lr}
bl sub_80FEB14
ldr r2, _080FA1B4 @ =gUnknown_3005450
ldr r0, _080FA1B8 @ =0x0000099c
adds r1, r2, r0
movs r0, 0x1
strb r0, [r1]
ldr r0, _080FA1BC @ =gUnknown_3007460
ldr r1, [r0]
ldrb r0, [r1, 0x2]
ldrb r1, [r1, 0x3]
orrs r0, r1
ldr r1, _080FA1C0 @ =0x0000099b
adds r2, r1
strb r0, [r2]
pop {r0}
bx r0
.align 2, 0
_080FA1B4: .4byte gUnknown_3005450
_080FA1B8: .4byte 0x0000099c
_080FA1BC: .4byte gUnknown_3007460
_080FA1C0: .4byte 0x0000099b
thumb_func_end sub_80FA190
thumb_func_start sub_80FA1C4
sub_80FA1C4: @ 80FA1C4
push {r4,r5,lr}
ldr r0, _080FA208 @ =gUnknown_3005450
ldrb r5, [r0, 0xD]
movs r2, 0
movs r1, 0
adds r3, r0, 0
adds r4, r3, 0
adds r4, 0xE4
_080FA1D4:
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
beq _080FA1DE
adds r2, 0x1
_080FA1DE:
adds r1, 0x1
cmp r1, 0x4
ble _080FA1D4
cmp r2, r5
bne _080FA218
ldr r2, _080FA20C @ =gBattleTypeFlags
ldr r0, [r2]
ldr r1, _080FA210 @ =0x0000ffdf
ands r0, r1
str r0, [r2]
ldrb r0, [r3, 0xC]
cmp r0, 0
bne _080FA214
adds r0, r3, 0
adds r0, 0xEE
ldrb r1, [r0]
movs r1, 0x3
strb r1, [r0]
bl sub_80FA160
b _080FA218
.align 2, 0
_080FA208: .4byte gUnknown_3005450
_080FA20C: .4byte gBattleTypeFlags
_080FA210: .4byte 0x0000ffdf
_080FA214:
ldr r0, _080FA220 @ =sub_80FA160
str r0, [r3]
_080FA218:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FA220: .4byte sub_80FA160
thumb_func_end sub_80FA1C4
thumb_func_start sub_80FA224
sub_80FA224: @ 80FA224
push {r4,lr}
ldr r0, _080FA250 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080FA248
ldr r4, _080FA254 @ =gUnknown_3005450
movs r1, 0x9A
lsls r1, 4
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FA248
movs r0, 0xBE
lsls r0, 7
bl sub_80F9D04
ldr r0, _080FA258 @ =sub_80FA1C4
str r0, [r4]
_080FA248:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FA250: .4byte gUnknown_3003F50
_080FA254: .4byte gUnknown_3005450
_080FA258: .4byte sub_80FA1C4
thumb_func_end sub_80FA224
thumb_func_start sub_80FA25C
sub_80FA25C: @ 80FA25C
push {lr}
lsls r0, 24
lsrs r3, r0, 24
ldr r2, _080FA280 @ =gUnknown_3005450
ldr r0, [r2]
cmp r0, 0
bne _080FA27C
ldr r1, _080FA284 @ =0x00000991
adds r0, r2, r1
movs r1, 0x1
strb r1, [r0]
ldr r0, _080FA288 @ =sub_80FA224
str r0, [r2]
adds r0, r3, 0
bl DestroyTask
_080FA27C:
pop {r0}
bx r0
.align 2, 0
_080FA280: .4byte gUnknown_3005450
_080FA284: .4byte 0x00000991
_080FA288: .4byte sub_80FA224
thumb_func_end sub_80FA25C
thumb_func_start task_add_05_task_del_08FA224_when_no_RfuFunc
task_add_05_task_del_08FA224_when_no_RfuFunc: @ 80FA28C
push {r4,lr}
ldr r4, _080FA2AC @ =sub_80FA25C
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _080FA2A4
adds r0, r4, 0
movs r1, 0x5
bl CreateTask
_080FA2A4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FA2AC: .4byte sub_80FA25C
thumb_func_end task_add_05_task_del_08FA224_when_no_RfuFunc
thumb_func_start sub_80FA2B0
sub_80FA2B0: @ 80FA2B0
push {r4,r5,lr}
bl GetMultiplayerId
lsls r0, 24
cmp r0, 0
beq _080FA2DE
ldr r1, _080FA348 @ =gUnknown_3005450
ldr r2, _080FA34C @ =0x0000069e
adds r0, r1, r2
ldrb r0, [r0]
adds r4, r0, 0
cmp r4, 0
bne _080FA2DE
adds r5, r1, 0
adds r5, 0xFE
ldrh r0, [r5]
cmp r0, 0x3C
bls _080FA2DE
movs r0, 0xCC
lsls r0, 7
bl sub_80F9D04
strh r4, [r5]
_080FA2DE:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0
cmp r1, r2
bcs _080FA30A
ldr r0, _080FA348 @ =gUnknown_3005450
adds r3, r0, 0
adds r3, 0xE9
ldrb r0, [r3]
cmp r0, 0
beq _080FA30A
_080FA2F8:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r2
bcs _080FA30A
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
bne _080FA2F8
_080FA30A:
ldr r4, _080FA348 @ =gUnknown_3005450
cmp r1, r2
bne _080FA336
movs r1, 0
adds r3, r4, 0
adds r3, 0xE9
movs r2, 0
_080FA318:
adds r0, r1, r3
strb r2, [r0]
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x4
bls _080FA318
movs r1, 0x80
lsls r1, 1
adds r0, r4, r1
ldrh r1, [r0]
adds r1, 0x1
movs r2, 0
strh r1, [r0]
str r2, [r4]
_080FA336:
adds r1, r4, 0
adds r1, 0xFE
ldrh r0, [r1]
adds r0, 0x1
strh r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FA348: .4byte gUnknown_3005450
_080FA34C: .4byte 0x0000069e
thumb_func_end sub_80FA2B0
thumb_func_start sub_80FA350
sub_80FA350: @ 80FA350
push {r4,lr}
ldr r4, _080FA378 @ =gUnknown_3005450
ldr r1, _080FA37C @ =0x0000069e
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FA372
ldr r0, _080FA380 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080FA372
movs r0, 0xCC
lsls r0, 7
bl sub_80F9D04
ldr r0, _080FA384 @ =sub_80FA2B0
str r0, [r4]
_080FA372:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FA378: .4byte gUnknown_3005450
_080FA37C: .4byte 0x0000069e
_080FA380: .4byte gUnknown_3003F50
_080FA384: .4byte sub_80FA2B0
thumb_func_end sub_80FA350
thumb_func_start sub_80FA388
sub_80FA388: @ 80FA388
push {r4,lr}
bl GetMultiplayerId
lsls r0, 24
cmp r0, 0
beq _080FA3C4
ldr r4, _080FA3B4 @ =gUnknown_3005450
ldr r1, _080FA3B8 @ =0x0000069e
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FA416
ldr r0, _080FA3BC @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080FA416
movs r0, 0xCC
lsls r0, 7
bl sub_80F9D04
ldr r0, _080FA3C0 @ =sub_80FA2B0
b _080FA414
.align 2, 0
_080FA3B4: .4byte gUnknown_3005450
_080FA3B8: .4byte 0x0000069e
_080FA3BC: .4byte gUnknown_3003F50
_080FA3C0: .4byte sub_80FA2B0
_080FA3C4:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r2, r0, 24
movs r1, 0x1
cmp r1, r2
bcs _080FA3F2
ldr r3, _080FA41C @ =gUnknown_3005450
adds r0, r3, 0
adds r0, 0xEA
ldrb r0, [r0]
cmp r0, 0
beq _080FA3F2
adds r3, 0xE9
_080FA3E0:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, r2
bcs _080FA3F2
adds r0, r1, r3
ldrb r0, [r0]
cmp r0, 0
bne _080FA3E0
_080FA3F2:
cmp r1, r2
bne _080FA416
ldr r4, _080FA41C @ =gUnknown_3005450
ldr r1, _080FA420 @ =0x0000069e
adds r0, r4, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FA416
ldr r0, _080FA424 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080FA416
movs r0, 0xCC
lsls r0, 7
bl sub_80F9D04
ldr r0, _080FA428 @ =sub_80FA350
_080FA414:
str r0, [r4]
_080FA416:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FA41C: .4byte gUnknown_3005450
_080FA420: .4byte 0x0000069e
_080FA424: .4byte gUnknown_3003F50
_080FA428: .4byte sub_80FA350
thumb_func_end sub_80FA388
thumb_func_start sub_80FA42C
sub_80FA42C: @ 80FA42C
push {lr}
ldr r1, _080FA444 @ =gUnknown_3005450
ldr r2, [r1]
cmp r2, 0
bne _080FA440
ldr r0, _080FA448 @ =sub_80FA388
str r0, [r1]
adds r0, r1, 0
adds r0, 0xFE
strh r2, [r0]
_080FA440:
pop {r0}
bx r0
.align 2, 0
_080FA444: .4byte gUnknown_3005450
_080FA448: .4byte sub_80FA388
thumb_func_end sub_80FA42C
thumb_func_start sub_80FA44C
sub_80FA44C: @ 80FA44C
push {r4,lr}
adds r3, r0, 0
ldr r1, _080FA468 @ =gUnknown_843EC8C
ldrh r0, [r1]
cmp r0, r3
beq _080FA47A
ldr r4, _080FA46C @ =0x0000ffff
adds r2, r1, 0
_080FA45C:
ldrh r0, [r2]
cmp r0, r4
bne _080FA470
movs r0, 0
b _080FA47C
.align 2, 0
_080FA468: .4byte gUnknown_843EC8C
_080FA46C: .4byte 0x0000ffff
_080FA470:
adds r1, 0x2
adds r2, 0x2
ldrh r0, [r1]
cmp r0, r3
bne _080FA45C
_080FA47A:
movs r0, 0x1
_080FA47C:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FA44C
thumb_func_start sub_80FA484
sub_80FA484: @ 80FA484
push {lr}
cmp r0, 0
beq _080FA498
movs r1, 0x96
lsls r1, 2
movs r0, 0x1
bl sub_80FEA34
movs r0, 0
b _080FA4A4
_080FA498:
movs r0, 0
movs r1, 0
bl sub_80FEA34
lsls r0, 24
lsrs r0, 24
_080FA4A4:
pop {r1}
bx r1
thumb_func_end sub_80FA484
thumb_func_start sub_80FA4A8
sub_80FA4A8: @ 80FA4A8
push {lr}
ldr r0, _080FA4C0 @ =gUnknown_3005450
ldr r1, _080FA4C4 @ =0x00000991
adds r0, r1
movs r1, 0x1
strb r1, [r0]
movs r0, 0
bl sub_80FD760
pop {r0}
bx r0
.align 2, 0
_080FA4C0: .4byte gUnknown_3005450
_080FA4C4: .4byte 0x00000991
thumb_func_end sub_80FA4A8
thumb_func_start rfu_get_multiplayer_id
rfu_get_multiplayer_id: @ 80FA4C8
push {lr}
ldr r1, _080FA4DC @ =gUnknown_3005450
ldrb r0, [r1, 0xC]
cmp r0, 0x1
beq _080FA4E4
ldr r2, _080FA4E0 @ =0x00000986
adds r0, r1, r2
ldrb r0, [r0]
b _080FA4E6
.align 2, 0
_080FA4DC: .4byte gUnknown_3005450
_080FA4E0: .4byte 0x00000986
_080FA4E4:
movs r0, 0
_080FA4E6:
pop {r1}
bx r1
thumb_func_end rfu_get_multiplayer_id
thumb_func_start sub_80FA4EC
sub_80FA4EC: @ 80FA4EC
ldr r0, _080FA4F4 @ =gUnknown_3005450
ldrb r0, [r0, 0xD]
bx lr
.align 2, 0
_080FA4F4: .4byte gUnknown_3005450
thumb_func_end sub_80FA4EC
thumb_func_start IsNoOneConnected
IsNoOneConnected: @ 80FA4F8
push {lr}
movs r1, 0
ldr r0, _080FA50C @ =gUnknown_3005450
ldr r0, [r0]
cmp r0, 0
bne _080FA506
movs r1, 0x1
_080FA506:
adds r0, r1, 0
pop {r1}
bx r1
.align 2, 0
_080FA50C: .4byte gUnknown_3005450
thumb_func_end IsNoOneConnected
thumb_func_start sub_80FA510
sub_80FA510: @ 80FA510
push {lr}
ldr r0, _080FA524 @ =gUnknown_3005450
ldr r0, [r0]
cmp r0, 0
beq _080FA51E
bl _call_via_r0
_080FA51E:
pop {r0}
bx r0
.align 2, 0
_080FA524: .4byte gUnknown_3005450
thumb_func_end sub_80FA510
thumb_func_start sub_80FA528
sub_80FA528: @ 80FA528
push {r4-r7,lr}
mov r7, r8
push {r7}
movs r7, 0
movs r5, 0
ldr r6, _080FA594 @ =gUnknown_3005450
ldr r0, _080FA598 @ =0x000008f6
adds r0, r6
mov r8, r0
_080FA53A:
ldr r1, _080FA59C @ =0x00000989
adds r0, r6, r1
adds r4, r5, r0
ldrb r0, [r4]
subs r0, 0x5
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080FA5C2
ldr r1, _080FA5A0 @ =gUnknown_3007450
lsls r0, r5, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0, 0x34]
cmp r0, 0x46
beq _080FA55E
cmp r0, 0x48
bne _080FA5A8
_080FA55E:
ldr r2, _080FA5A4 @ =0x0000098d
adds r0, r6, r2
adds r1, r5, r0
ldrb r0, [r1]
cmp r0, 0x8
bne _080FA5C2
movs r0, 0x9
strb r0, [r4]
movs r0, 0xA
strb r0, [r1]
lsls r1, r5, 24
lsrs r1, 24
movs r0, 0x8
bl rfu_clearSlot
movs r0, 0x80
lsls r0, 17
lsls r0, r5
lsrs r0, 24
movs r1, 0x8
adds r2, r4, 0
movs r3, 0x1
bl rfu_NI_setSendData
movs r7, 0x1
b _080FA5C2
.align 2, 0
_080FA594: .4byte gUnknown_3005450
_080FA598: .4byte 0x000008f6
_080FA59C: .4byte 0x00000989
_080FA5A0: .4byte gUnknown_3007450
_080FA5A4: .4byte 0x0000098d
_080FA5A8:
mov r2, r8
ldrb r0, [r2]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0, 0x34]
cmp r0, 0x47
bne _080FA5C2
lsls r1, r5, 24
lsrs r1, 24
movs r0, 0x8
bl rfu_clearSlot
_080FA5C2:
adds r5, 0x1
cmp r5, 0x3
ble _080FA53A
adds r0, r7, 0
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FA528
thumb_func_start sub_80FA5D4
sub_80FA5D4: @ 80FA5D4
push {r4-r6,lr}
movs r3, 0
movs r1, 0
ldr r5, _080FA620 @ =gUnknown_3005DDD
movs r6, 0x1
movs r4, 0
_080FA5E0:
adds r2, r1, r5
ldrb r0, [r2]
cmp r0, 0xB
bne _080FA5F4
adds r0, r6, 0
lsls r0, r1
orrs r3, r0
lsls r0, r3, 24
lsrs r3, r0, 24
strb r4, [r2]
_080FA5F4:
adds r1, 0x1
cmp r1, 0x3
ble _080FA5E0
cmp r3, 0
beq _080FA608
adds r0, r3, 0
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
_080FA608:
movs r1, 0
ldr r2, _080FA620 @ =gUnknown_3005DDD
_080FA60C:
adds r0, r1, r2
ldrb r0, [r0]
subs r0, 0xA
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080FA624
movs r0, 0x1
b _080FA62C
.align 2, 0
_080FA620: .4byte gUnknown_3005DDD
_080FA624:
adds r1, 0x1
cmp r1, 0x3
ble _080FA60C
movs r0, 0
_080FA62C:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_80FA5D4
thumb_func_start sub_80FA634
sub_80FA634: @ 80FA634
push {lr}
adds r2, r0, 0
adds r0, r1, 0
lsls r2, 16
lsrs r2, 16
adds r1, r2, 0
bl sub_80FBC70
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
beq _080FA668
ldr r0, _080FA660 @ =gUnknown_3005450
ldr r2, _080FA664 @ =0x00000989
adds r0, r2
adds r0, r1, r0
ldrb r0, [r0]
cmp r0, 0x9
beq _080FA668
movs r0, 0
b _080FA66A
.align 2, 0
_080FA660: .4byte gUnknown_3005450
_080FA664: .4byte 0x00000989
_080FA668:
movs r0, 0x1
_080FA66A:
pop {r1}
bx r1
thumb_func_end sub_80FA634
thumb_func_start sub_80FA670
sub_80FA670: @ 80FA670
push {r4-r6,lr}
adds r6, r0, 0
adds r0, r2, 0
lsls r6, 24
lsrs r6, 24
lsls r1, 16
lsrs r1, 16
bl sub_80FBC70
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r5, _080FA6B4 @ =gUnknown_3005450
ldr r0, _080FA6B8 @ =0x00000989
adds r5, r0
adds r5, r4, r5
strb r6, [r5]
movs r0, 0x4
adds r1, r4, 0
bl rfu_clearSlot
movs r0, 0x80
lsls r0, 17
lsls r0, r4
lsrs r0, 24
movs r1, 0x8
adds r2, r5, 0
movs r3, 0x1
bl rfu_NI_setSendData
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FA6B4: .4byte gUnknown_3005450
_080FA6B8: .4byte 0x00000989
thumb_func_end sub_80FA670
thumb_func_start sub_80FA6BC
sub_80FA6BC: @ 80FA6BC
push {r4,r5,lr}
ldr r4, _080FA6F0 @ =gUnknown_3005450
ldr r0, _080FA6F4 @ =0x0000093d
adds r5, r4, r0
movs r0, 0x8
strb r0, [r5]
ldr r0, _080FA6F8 @ =0x000008f6
adds r4, r0
ldrb r1, [r4]
movs r0, 0x4
bl rfu_clearSlot
ldrb r1, [r4]
movs r0, 0x80
lsls r0, 17
lsls r0, r1
lsrs r0, 24
movs r1, 0x8
adds r2, r5, 0
movs r3, 0x1
bl rfu_NI_setSendData
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FA6F0: .4byte gUnknown_3005450
_080FA6F4: .4byte 0x0000093d
_080FA6F8: .4byte 0x000008f6
thumb_func_end sub_80FA6BC
thumb_func_start sub_80FA6FC
sub_80FA6FC: @ 80FA6FC
push {lr}
adds r2, r0, 0
adds r0, r1, 0
lsls r2, 16
lsrs r2, 16
adds r1, r2, 0
bl sub_80FBC70
lsls r0, 24
lsrs r0, 24
cmp r0, 0xFF
bne _080FA718
movs r0, 0x2
b _080FA732
_080FA718:
ldr r1, _080FA72C @ =gUnknown_3007450
lsls r0, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0
beq _080FA730
movs r0, 0
b _080FA732
.align 2, 0
_080FA72C: .4byte gUnknown_3007450
_080FA730:
movs r0, 0x1
_080FA732:
pop {r1}
bx r1
thumb_func_end sub_80FA6FC
thumb_func_start sub_80FA738
sub_80FA738: @ 80FA738
push {r4,r5,lr}
bl sub_80FA528
movs r4, 0
ldr r0, _080FA77C @ =gUnknown_3005450
ldr r1, _080FA780 @ =0x0000098d
adds r5, r0, r1
_080FA746:
ldr r1, _080FA784 @ =gUnknown_3007450
lsls r0, r4, 2
adds r0, r1
ldr r0, [r0]
ldrh r0, [r0]
subs r0, 0x26
lsls r0, 16
lsrs r0, 16
cmp r0, 0x1
bhi _080FA770
adds r1, r4, r5
ldrb r0, [r1]
cmp r0, 0xA
bne _080FA766
movs r0, 0xB
strb r0, [r1]
_080FA766:
lsls r1, r4, 24
lsrs r1, 24
movs r0, 0x4
bl rfu_clearSlot
_080FA770:
adds r4, 0x1
cmp r4, 0x3
ble _080FA746
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FA77C: .4byte gUnknown_3005450
_080FA780: .4byte 0x0000098d
_080FA784: .4byte gUnknown_3007450
thumb_func_end sub_80FA738
thumb_func_start sub_80FA788
sub_80FA788: @ 80FA788
push {r4,r5,lr}
movs r4, 0
ldr r1, _080FA800 @ =gUnknown_3005450
ldr r2, _080FA804 @ =0x0000093d
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0x8
bne _080FA7C2
ldr r2, _080FA808 @ =gUnknown_3007450
ldr r0, _080FA80C @ =0x000008f6
adds r1, r0
ldrb r0, [r1]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x26
beq _080FA7BA
ldrb r0, [r1]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0]
cmp r0, 0x27
bne _080FA7C2
_080FA7BA:
ldrb r1, [r1]
movs r0, 0x4
bl rfu_clearSlot
_080FA7C2:
ldr r2, _080FA808 @ =gUnknown_3007450
ldr r5, _080FA800 @ =gUnknown_3005450
ldr r0, _080FA80C @ =0x000008f6
adds r1, r5, r0
ldrb r0, [r1]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0, 0x34]
cmp r0, 0x46
beq _080FA7E6
ldrb r0, [r1]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0, 0x34]
cmp r0, 0x48
bne _080FA814
_080FA7E6:
ldrb r1, [r1]
movs r0, 0x8
bl rfu_clearSlot
ldr r2, _080FA810 @ =0x0000093e
adds r4, r5, r2
ldrb r0, [r4]
movs r1, 0
bl sub_80FB9E4
ldrb r4, [r4]
b _080FA82C
.align 2, 0
_080FA800: .4byte gUnknown_3005450
_080FA804: .4byte 0x0000093d
_080FA808: .4byte gUnknown_3007450
_080FA80C: .4byte 0x000008f6
_080FA810: .4byte 0x0000093e
_080FA814:
ldrb r0, [r1]
lsls r0, 2
adds r0, r2
ldr r0, [r0]
ldrh r0, [r0, 0x34]
cmp r0, 0x47
bne _080FA82C
ldrb r1, [r1]
movs r0, 0x8
bl rfu_clearSlot
movs r4, 0x6
_080FA82C:
adds r0, r4, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FA788
thumb_func_start sub_80FA834
sub_80FA834: @ 80FA834
push {r4-r7,lr}
lsls r0, 24
lsrs r6, r0, 24
ldr r5, _080FA884 @ =gUnknown_3005450
adds r0, r5, 0
adds r0, 0xF1
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080FA85C
movs r0, 0x9A
lsls r0, 4
adds r1, r5, r0
movs r0, 0
strb r0, [r1]
adds r0, r6, 0
bl DestroyTask
_080FA85C:
ldr r2, _080FA888 @ =gTasks
lsls r1, r6, 2
adds r0, r1, r6
lsls r0, 3
adds r4, r0, r2
movs r2, 0x8
ldrsh r0, [r4, r2]
adds r7, r1, 0
cmp r0, 0x3
beq _080FA904
cmp r0, 0x3
bgt _080FA88C
cmp r0, 0x1
beq _080FA8B4
cmp r0, 0x1
bgt _080FA900
cmp r0, 0
beq _080FA89E
b _080FA9BC
.align 2, 0
_080FA884: .4byte gUnknown_3005450
_080FA888: .4byte gTasks
_080FA88C:
cmp r0, 0x5
beq _080FA938
cmp r0, 0x5
blt _080FA926
cmp r0, 0x6
beq _080FA96C
cmp r0, 0x65
beq _080FA8EC
b _080FA9BC
_080FA89E:
bl sub_80F9C50
lsls r0, 24
cmp r0, 0
bne _080FA8AA
b _080FA9BC
_080FA8AA:
bl ResetBlockReceivedFlags
bl sub_800B0B4
b _080FA930
_080FA8B4:
ldrb r0, [r5, 0xC]
cmp r0, 0x1
bne _080FA8F4
ldr r0, _080FA8CC @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0
beq _080FA8D0
movs r0, 0xF0
lsls r0, 7
bl sub_80F9D04
b _080FA8D8
.align 2, 0
_080FA8CC: .4byte gReceivedRemoteLinkPlayers
_080FA8D0:
movs r0, 0xEE
lsls r0, 7
bl sub_80F9D04
_080FA8D8:
ldr r0, _080FA8E8 @ =gTasks
adds r1, r7, r6
lsls r1, 3
adds r1, r0
movs r0, 0x65
strh r0, [r1, 0x8]
b _080FA9BC
.align 2, 0
_080FA8E8: .4byte gTasks
_080FA8EC:
ldr r0, _080FA8FC @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
bne _080FA9BC
_080FA8F4:
movs r0, 0x2
strh r0, [r4, 0x8]
b _080FA9BC
.align 2, 0
_080FA8FC: .4byte gUnknown_3003F50
_080FA900:
ldrb r0, [r5, 0xD]
b _080FA92C
_080FA904:
ldrb r0, [r5, 0xC]
cmp r0, 0x1
bne _080FA930
bl sub_80F9C50
lsls r0, 24
cmp r0, 0
beq _080FA9BC
adds r1, r5, 0
adds r1, 0x5A
movs r0, 0
strb r0, [r1]
movs r0, 0xA1
lsls r0, 8
bl sub_80F9D04
b _080FA930
_080FA926:
bl sub_80F9C78
lsls r0, 24
_080FA92C:
cmp r0, 0
beq _080FA9BC
_080FA930:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080FA9BC
_080FA938:
movs r4, 0
ldrb r0, [r5, 0xD]
cmp r4, r0
bge _080FA956
_080FA940:
adds r0, r4, 0
bl sub_800B110
lsls r0, r4, 24
lsrs r0, 24
bl sub_80F974C
adds r4, 0x1
ldrb r2, [r5, 0xD]
cmp r4, r2
blt _080FA940
_080FA956:
ldr r0, _080FA968 @ =gTasks
adds r1, r7, r6
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080FA9BC
.align 2, 0
_080FA968: .4byte gTasks
_080FA96C:
adds r0, r6, 0
bl DestroyTask
ldr r1, _080FA9C4 @ =gReceivedRemoteLinkPlayers
movs r0, 0x1
strb r0, [r1]
movs r0, 0x9A
lsls r0, 4
adds r1, r5, r0
movs r0, 0
strb r0, [r1]
movs r1, 0x96
lsls r1, 2
movs r0, 0x1
bl sub_80FEA34
ldr r2, _080FA9C8 @ =0x0000099e
adds r1, r5, r2
ldrb r0, [r1]
cmp r0, 0
beq _080FA9BC
movs r4, 0
adds r2, r1, 0
movs r3, 0x1
ldr r0, _080FA9CC @ =0x0000099d
adds r5, r0
_080FA9A0:
ldrb r0, [r2]
asrs r0, r4
ands r0, r3
cmp r0, 0
beq _080FA9B6
adds r0, r3, 0
lsls r0, r4
strb r0, [r5]
ldrb r1, [r2]
eors r0, r1
strb r0, [r2]
_080FA9B6:
adds r4, 0x1
cmp r4, 0x3
ble _080FA9A0
_080FA9BC:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FA9C4: .4byte gReceivedRemoteLinkPlayers
_080FA9C8: .4byte 0x0000099e
_080FA9CC: .4byte 0x0000099d
thumb_func_end sub_80FA834
thumb_func_start sub_80FA9D0
sub_80FA9D0: @ 80FA9D0
push {r4,r5,lr}
lsls r0, 16
lsrs r2, r0, 16
movs r1, 0
movs r5, 0x1
ldr r4, _080FA9F8 @ =gUnknown_3005DE6
movs r3, 0
_080FA9DE:
adds r0, r2, 0
asrs r0, r1
ands r0, r5
cmp r0, 0
beq _080FA9EC
adds r0, r1, r4
strb r3, [r0]
_080FA9EC:
adds r1, 0x1
cmp r1, 0x3
ble _080FA9DE
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FA9F8: .4byte gUnknown_3005DE6
thumb_func_end sub_80FA9D0
thumb_func_start sub_80FA9FC
sub_80FA9FC: @ 80FA9FC
push {r4-r7,lr}
adds r2, r0, 0
ldr r1, _080FAA4C @ =gUnknown_3005450
ldrb r0, [r2, 0xF]
strb r0, [r1, 0xD]
movs r4, 0
ldr r0, _080FAA50 @ =0x00000996
adds r5, r1, r0
adds r3, r2, 0
adds r3, 0x10
_080FAA10:
adds r0, r4, r5
adds r1, r3, r4
ldrb r1, [r1]
strb r1, [r0]
adds r4, 0x1
cmp r4, 0x3
ble _080FAA10
adds r6, r2, 0
ldr r5, _080FAA54 @ =gLinkPlayers
movs r4, 0x4
_080FAA24:
adds r0, r5, 0
adds r1, r6, 0
adds r1, 0x14
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
ldm r1!, {r2,r3,r7}
stm r0!, {r2,r3,r7}
ldr r1, [r1]
str r1, [r0]
adds r0, r5, 0
bl sub_800B284
adds r6, 0x1C
adds r5, 0x1C
subs r4, 0x1
cmp r4, 0
bge _080FAA24
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FAA4C: .4byte gUnknown_3005450
_080FAA50: .4byte 0x00000996
_080FAA54: .4byte gLinkPlayers
thumb_func_end sub_80FA9FC
thumb_func_start sub_80FAA58
sub_80FAA58: @ 80FAA58
push {r4,r5,lr}
sub sp, 0x4
adds r4, r0, 0
ldr r0, _080FAA8C @ =gUnknown_843EDE4 "PokemonSioInfo"
adds r1, r4, 0
bl strcmp
adds r5, r0, 0
cmp r5, 0
bne _080FAA84
adds r0, r4, 0
bl sub_80FA9FC
mov r0, sp
strh r5, [r0]
ldr r2, _080FAA90 @ =0x0100007e
adds r1, r4, 0
bl CpuSet
movs r0, 0
bl ResetBlockReceivedFlag
_080FAA84:
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FAA8C: .4byte gUnknown_843EDE4
_080FAA90: .4byte 0x0100007e
thumb_func_end sub_80FAA58
thumb_func_start sub_80FAA94
sub_80FAA94: @ 80FAA94
push {r4-r7,lr}
sub sp, 0x4
lsls r0, 24
lsrs r6, r0, 24
ldr r3, _080FAAF4 @ =gUnknown_3005450
ldr r2, _080FAAF8 @ =gUnknown_843EC38
ldr r1, _080FAAFC @ =0x000009a1
adds r0, r3, r1
ldrb r1, [r0]
adds r1, r2
ldr r2, _080FAB00 @ =0x00000996
adds r0, r3, r2
ldrb r1, [r1]
adds r0, r1
ldrb r4, [r0]
adds r0, r3, 0
adds r0, 0xF1
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080FAAD2
movs r5, 0x9A
lsls r5, 4
adds r1, r3, r5
movs r0, 0
strb r0, [r1]
adds r0, r6, 0
bl DestroyTask
_080FAAD2:
ldr r0, _080FAB04 @ =gTasks
lsls r2, r6, 2
adds r1, r2, r6
lsls r1, 3
adds r1, r0
movs r3, 0x8
ldrsh r1, [r1, r3]
adds r3, r0, 0
adds r7, r2, 0
cmp r1, 0x5
bls _080FAAEA
b _080FACD6
_080FAAEA:
lsls r0, r1, 2
ldr r1, _080FAB08 @ =_080FAB0C
adds r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_080FAAF4: .4byte gUnknown_3005450
_080FAAF8: .4byte gUnknown_843EC38
_080FAAFC: .4byte 0x000009a1
_080FAB00: .4byte 0x00000996
_080FAB04: .4byte gTasks
_080FAB08: .4byte _080FAB0C
.align 2, 0
_080FAB0C:
.4byte _080FAB24
.4byte _080FAB44
.4byte _080FAB5C
.4byte _080FABA4
.4byte _080FABEE
.4byte _080FAC78
_080FAB24:
ldr r0, _080FAB40 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
beq _080FAB2E
b _080FACD6
_080FAB2E:
adds r0, r4, 0
bl ResetBlockReceivedFlag
movs r0, 0xF0
lsls r0, 7
bl sub_80F9D04
b _080FAC2E
.align 2, 0
_080FAB40: .4byte gUnknown_3003F50
_080FAB44:
ldr r0, _080FAB58 @ =gUnknown_3003F50
ldrh r0, [r0]
cmp r0, 0
beq _080FAB4E
b _080FACD6
_080FAB4E:
adds r1, r7, r6
lsls r1, 3
adds r1, r3
b _080FAC36
.align 2, 0
_080FAB58: .4byte gUnknown_3003F50
_080FAB5C:
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
asrs r0, r4
movs r1, 0x1
ands r0, r1
cmp r0, 0
bne _080FAB70
b _080FACD6
_080FAB70:
adds r0, r4, 0
bl ResetBlockReceivedFlag
lsls r2, r4, 8
ldr r0, _080FAB9C @ =gBlockRecvBuffer
adds r2, r0
ldr r1, _080FABA0 @ =gLinkPlayers
lsls r0, r4, 3
subs r0, r4
lsls r0, 2
adds r0, r1
adds r1, r0, 0
adds r2, 0x10
ldm r2!, {r3-r5}
stm r1!, {r3-r5}
ldm r2!, {r3-r5}
stm r1!, {r3-r5}
ldr r2, [r2]
str r2, [r1]
bl sub_800B284
b _080FAC2E
.align 2, 0
_080FAB9C: .4byte gBlockRecvBuffer
_080FABA0: .4byte gLinkPlayers
_080FABA4:
ldr r5, _080FAC40 @ =gBlockSendBuffer
adds r1, r5, 0
ldr r0, _080FAC44 @ =gUnknown_843EDE4 "PokemonSioInfo"
ldm r0!, {r2-r4}
stm r1!, {r2-r4}
ldrh r2, [r0]
strh r2, [r1]
ldrb r0, [r0, 0x2]
strb r0, [r1, 0x2]
ldr r1, _080FAC48 @ =gUnknown_3005450
ldrb r0, [r1, 0xD]
strb r0, [r5, 0xF]
movs r2, 0
adds r4, r5, 0
adds r4, 0x10
ldr r0, _080FAC4C @ =0x00000996
adds r3, r1, r0
_080FABC6:
adds r0, r4, r2
adds r1, r2, r3
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080FABC6
ldr r1, _080FAC50 @ =gLinkPlayers
adds r0, r5, 0
adds r0, 0x14
movs r2, 0x8C
bl memcpy
ldr r0, _080FAC54 @ =gTasks
adds r1, r7, r6
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
_080FABEE:
ldr r5, _080FAC40 @ =gBlockSendBuffer
ldr r1, _080FAC48 @ =gUnknown_3005450
ldrb r0, [r1, 0xD]
strb r0, [r5, 0xF]
movs r2, 0
ldr r3, _080FAC50 @ =gLinkPlayers
mov r12, r3
adds r4, r5, 0
adds r4, 0x10
ldr r0, _080FAC4C @ =0x00000996
adds r3, r1, r0
_080FAC04:
adds r0, r4, r2
adds r1, r2, r3
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0x3
ble _080FAC04
adds r0, r5, 0
adds r0, 0x14
mov r1, r12
movs r2, 0x8C
bl memcpy
ldr r1, _080FAC40 @ =gBlockSendBuffer
movs r0, 0
movs r2, 0xA0
bl SendBlock
lsls r0, 24
cmp r0, 0
beq _080FACD6
_080FAC2E:
ldr r0, _080FAC54 @ =gTasks
adds r1, r7, r6
lsls r1, 3
adds r1, r0
_080FAC36:
ldrh r0, [r1, 0x8]
adds r0, 0x1
strh r0, [r1, 0x8]
b _080FACD6
.align 2, 0
_080FAC40: .4byte gBlockSendBuffer
_080FAC44: .4byte gUnknown_843EDE4
_080FAC48: .4byte gUnknown_3005450
_080FAC4C: .4byte 0x00000996
_080FAC50: .4byte gLinkPlayers
_080FAC54: .4byte gTasks
_080FAC58:
adds r0, r3, 0
lsls r0, r2
ldr r2, _080FAC74 @ =0x0000099d
adds r1, r5, r2
strb r0, [r1]
ldrb r1, [r4]
eors r0, r1
strb r0, [r4]
movs r4, 0x9A
lsls r4, 4
adds r0, r5, r4
strb r3, [r0]
b _080FACD0
.align 2, 0
_080FAC74: .4byte 0x0000099d
_080FAC78:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _080FACD6
bl GetBlockReceivedStatus
movs r1, 0x1
ands r1, r0
cmp r1, 0
beq _080FACD6
mov r0, sp
movs r4, 0
strh r4, [r0]
ldr r1, _080FACE0 @ =gBlockRecvBuffer
ldr r2, _080FACE4 @ =0x0100007e
bl CpuSet
movs r0, 0
bl ResetBlockReceivedFlag
ldr r1, _080FACE8 @ =gUnknown_3005450
movs r5, 0x9A
lsls r5, 4
adds r0, r1, r5
strb r4, [r0]
ldr r0, _080FACEC @ =0x0000099e
adds r3, r1, r0
ldrb r0, [r3]
cmp r0, 0
beq _080FACD0
movs r2, 0
adds r5, r1, 0
adds r4, r3, 0
ldrb r1, [r4]
movs r3, 0x1
_080FACC0:
adds r0, r1, 0
asrs r0, r2
ands r0, r3
cmp r0, 0
bne _080FAC58
adds r2, 0x1
cmp r2, 0x3
ble _080FACC0
_080FACD0:
adds r0, r6, 0
bl DestroyTask
_080FACD6:
add sp, 0x4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FACE0: .4byte gBlockRecvBuffer
_080FACE4: .4byte 0x0100007e
_080FACE8: .4byte gUnknown_3005450
_080FACEC: .4byte 0x0000099e
thumb_func_end sub_80FAA94
thumb_func_start sub_80FACF0
sub_80FACF0: @ 80FACF0
push {r4-r6,lr}
lsls r0, 24
lsrs r5, r0, 24
ldr r6, _080FAD2C @ =gUnknown_3005450
adds r0, r6, 0
adds r0, 0xF1
ldrb r0, [r0]
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080FAD0E
adds r0, r5, 0
bl DestroyTask
_080FAD0E:
ldr r1, _080FAD30 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
movs r1, 0x8
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _080FAD54
cmp r0, 0x1
bgt _080FAD34
cmp r0, 0
beq _080FAD3A
b _080FAD8A
.align 2, 0
_080FAD2C: .4byte gUnknown_3005450
_080FAD30: .4byte gTasks
_080FAD34:
cmp r0, 0x2
beq _080FAD66
b _080FAD8A
_080FAD3A:
ldrb r0, [r6, 0xD]
cmp r0, 0
beq _080FAD8A
bl sub_800B0B4
ldr r1, _080FAD50 @ =gBlockSendBuffer
movs r0, 0
movs r2, 0x3C
bl SendBlock
b _080FAD5E
.align 2, 0
_080FAD50: .4byte gBlockSendBuffer
_080FAD54:
bl IsLinkTaskFinished
lsls r0, 24
cmp r0, 0
beq _080FAD8A
_080FAD5E:
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
b _080FAD8A
_080FAD66:
bl GetBlockReceivedStatus
movs r4, 0x1
adds r1, r4, 0
ands r1, r0
cmp r1, 0
beq _080FAD8A
ldr r0, _080FAD90 @ =gBlockRecvBuffer
bl sub_80FA9FC
movs r0, 0
bl ResetBlockReceivedFlag
ldr r0, _080FAD94 @ =gReceivedRemoteLinkPlayers
strb r4, [r0]
adds r0, r5, 0
bl DestroyTask
_080FAD8A:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FAD90: .4byte gBlockRecvBuffer
_080FAD94: .4byte gReceivedRemoteLinkPlayers
thumb_func_end sub_80FACF0
thumb_func_start sub_80FAD98
sub_80FAD98: @ 80FAD98
push {r4-r7,lr}
ldr r0, _080FAE10 @ =gUnknown_3005450
adds r7, r0, 0
adds r7, 0xEE
ldrb r1, [r7]
adds r5, r0, 0
cmp r1, 0x1
bne _080FAE30
ldr r0, _080FAE14 @ =gUnknown_3005E10
ldrb r0, [r0, 0x2]
cmp r0, 0
bne _080FAE30
ldr r6, _080FAE18 @ =gMain
ldr r1, [r6, 0x4]
ldr r0, _080FAE1C @ =c2_mystery_gift_e_reader_run
cmp r1, r0
bne _080FADC0
ldr r1, _080FAE20 @ =gWirelessCommType
movs r0, 0x2
strb r0, [r1]
_080FADC0:
ldr r4, _080FAE24 @ =c2_800ACD4
adds r0, r4, 0
bl SetMainCallback2
str r4, [r6, 0x8]
ldrh r0, [r5, 0xA]
lsls r4, r0, 16
ldrh r0, [r5, 0x10]
lsls r0, 8
orrs r4, r0
ldrh r0, [r5, 0x12]
orrs r4, r0
ldr r1, _080FAE28 @ =0x0000069e
adds r0, r5, r1
ldrb r0, [r0]
adds r6, r0, 0
ldr r1, _080FAE2C @ =0x000008d2
adds r0, r5, r1
ldrb r0, [r0]
adds r5, r0, 0
bl sub_80FB9F4
movs r3, 0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x2
bne _080FADF8
movs r3, 0x1
_080FADF8:
adds r0, r4, 0
adds r1, r6, 0
adds r2, r5, 0
bl sub_800ACBC
ldrb r0, [r7]
movs r0, 0x2
strb r0, [r7]
bl CloseLink
b _080FAE62
.align 2, 0
_080FAE10: .4byte gUnknown_3005450
_080FAE14: .4byte gUnknown_3005E10
_080FAE18: .4byte gMain
_080FAE1C: .4byte c2_mystery_gift_e_reader_run
_080FAE20: .4byte gWirelessCommType
_080FAE24: .4byte c2_800ACD4
_080FAE28: .4byte 0x0000069e
_080FAE2C: .4byte 0x000008d2
_080FAE30:
ldr r1, _080FAE68 @ =0x000008d3
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0x1
beq _080FAE44
ldr r1, _080FAE6C @ =0x0000069f
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0x1
bne _080FAE62
_080FAE44:
ldr r0, _080FAE70 @ =gUnknown_3005E10
ldrb r0, [r0, 0x2]
cmp r0, 0
beq _080FAE50
bl sub_80FEB14
_080FAE50:
movs r4, 0xE0
lsls r4, 7
movs r0, 0x1
adds r1, r4, 0
bl sub_80FB9E4
adds r0, r4, 0
bl sub_80FB0E8
_080FAE62:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FAE68: .4byte 0x000008d3
_080FAE6C: .4byte 0x0000069f
_080FAE70: .4byte gUnknown_3005E10
thumb_func_end sub_80FAD98
thumb_func_start rfu_REQ_recvData_then_sendData
rfu_REQ_recvData_then_sendData: @ 80FAE74
push {lr}
ldr r0, _080FAE90 @ =gUnknown_3005E10
ldrb r0, [r0, 0x6]
cmp r0, 0x1
bne _080FAE8C
bl rfu_REQ_recvData
bl rfu_waitREQComplete
movs r0, 0
bl rfu_REQ_sendData_wrapper
_080FAE8C:
pop {r0}
bx r0
.align 2, 0
_080FAE90: .4byte gUnknown_3005E10
thumb_func_end rfu_REQ_recvData_then_sendData
thumb_func_start sub_80FAE94
sub_80FAE94: @ 80FAE94
push {r4,r5,lr}
movs r5, 0
ldr r4, _080FAEC8 @ =gUnknown_3005450
ldr r1, _080FAECC @ =0x00000985
adds r0, r4, r1
strb r5, [r0]
bl Random
lsls r0, 16
lsrs r0, 16
bl sub_80FDA30
adds r0, r4, 0
adds r0, 0xEF
ldrb r0, [r0]
cmp r0, 0
bne _080FAEE8
ldrb r0, [r4, 0xC]
cmp r0, 0x1
beq _080FAED6
cmp r0, 0x1
bgt _080FAED0
cmp r0, 0
beq _080FAEDC
b _080FAEE8
.align 2, 0
_080FAEC8: .4byte gUnknown_3005450
_080FAECC: .4byte 0x00000985
_080FAED0:
cmp r0, 0x2
beq _080FAEE4
b _080FAEE8
_080FAED6:
bl sub_80F911C
b _080FAEE8
_080FAEDC:
bl sub_80F9514
adds r5, r0, 0
b _080FAEE8
_080FAEE4:
bl rfu_REQ_recvData_then_sendData
_080FAEE8:
adds r0, r5, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FAE94
thumb_func_start sub_80FAEF0
sub_80FAEF0: @ 80FAEF0
push {r4,lr}
movs r4, 0
ldr r1, _080FAF18 @ =gUnknown_3005450
adds r0, r1, 0
adds r0, 0xEF
ldrb r0, [r0]
cmp r0, 0
bne _080FAF10
ldrb r0, [r1, 0xC]
cmp r0, 0x1
bne _080FAF0C
bl sub_80F9204
adds r4, r0, 0
_080FAF0C:
bl sub_80FAD98
_080FAF10:
adds r0, r4, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080FAF18: .4byte gUnknown_3005450
thumb_func_end sub_80FAEF0
thumb_func_start sub_80FAF1C
sub_80FAF1C: @ 80FAF1C
push {lr}
ldr r0, _080FAF2C @ =gUnknown_3005E00
ldr r1, _080FAF30 @ =gSaveBlock2Ptr
ldr r1, [r1]
bl StringCopy
pop {r0}
bx r0
.align 2, 0
_080FAF2C: .4byte gUnknown_3005E00
_080FAF30: .4byte gSaveBlock2Ptr
thumb_func_end sub_80FAF1C
thumb_func_start sub_80FAF34
sub_80FAF34: @ 80FAF34
push {r4,lr}
ldr r4, _080FAF54 @ =gUnknown_3005440
adds r0, r4, 0
movs r1, 0
movs r2, 0xD
bl memset
adds r0, r4, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_80FCB54
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FAF54: .4byte gUnknown_3005440
thumb_func_end sub_80FAF34
thumb_func_start sub_80FAF58
sub_80FAF58: @ 80FAF58
push {r4,lr}
adds r4, r0, 0
adds r3, r1, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _080FAF70 @ =gUnknown_3005440
adds r1, r4, 0
bl sub_80FCB54
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FAF70: .4byte gUnknown_3005440
thumb_func_end sub_80FAF58
thumb_func_start sub_80FAF74
sub_80FAF74: @ 80FAF74
push {r4,r5,lr}
ldr r5, _080FAF9C @ =gUnknown_3005440
movs r4, 0x1
ands r0, r4
lsls r0, 4
ldrb r3, [r5]
movs r2, 0x11
negs r2, r2
ands r2, r3
orrs r2, r0
ands r1, r4
lsls r1, 5
movs r0, 0x21
negs r0, r0
ands r2, r0
orrs r2, r1
strb r2, [r5]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FAF9C: .4byte gUnknown_3005440
thumb_func_end sub_80FAF74
thumb_func_start sub_80FAFA0
sub_80FAFA0: @ 80FAFA0
push {r4,r5,lr}
ldr r5, _080FAFD4 @ =gUnknown_3005440
lsls r0, 2
ldrb r4, [r5, 0x9]
movs r3, 0x3
ands r3, r4
orrs r3, r0
strb r3, [r5, 0x9]
ldr r3, _080FAFD8 @ =0x000003ff
adds r0, r3, 0
ands r1, r0
ldrh r3, [r5, 0x8]
ldr r0, _080FAFDC @ =0xfffffc00
ands r0, r3
orrs r0, r1
strh r0, [r5, 0x8]
lsls r2, 1
ldrb r1, [r5, 0xB]
movs r0, 0x1
ands r0, r1
orrs r0, r2
strb r0, [r5, 0xB]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FAFD4: .4byte gUnknown_3005440
_080FAFD8: .4byte 0x000003ff
_080FAFDC: .4byte 0xfffffc00
thumb_func_end sub_80FAFA0
thumb_func_start sub_80FAFE0
sub_80FAFE0: @ 80FAFE0
push {lr}
lsls r0, 24
ldr r2, _080FB000 @ =gUnknown_3005440
lsrs r0, 17
ldrb r3, [r2, 0xA]
movs r1, 0x7F
ands r1, r3
orrs r1, r0
strb r1, [r2, 0xA]
ldr r3, _080FB004 @ =gUnknown_3005E00
movs r0, 0
movs r1, 0x2
bl rfu_REQ_configGameData
pop {r0}
bx r0
.align 2, 0
_080FB000: .4byte gUnknown_3005440
_080FB004: .4byte gUnknown_3005E00
thumb_func_end sub_80FAFE0
thumb_func_start sub_80FB008
sub_80FB008: @ 80FB008
push {lr}
lsls r0, 24
lsrs r0, 24
cmp r0, 0
beq _080FB016
bl sub_80FAF58
_080FB016:
ldr r2, _080FB028 @ =gUnknown_3005440
ldr r3, _080FB02C @ =gUnknown_3005E00
movs r0, 0
movs r1, 0x2
bl rfu_REQ_configGameData
pop {r0}
bx r0
.align 2, 0
_080FB028: .4byte gUnknown_3005440
_080FB02C: .4byte gUnknown_3005E00
thumb_func_end sub_80FB008
thumb_func_start sub_80FB030
sub_80FB030: @ 80FB030
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
mov r9, r0
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
bne _080FB0C4
movs r5, 0
movs r7, 0
ldr r3, _080FB0D4 @ =gUnknown_3005450
ldr r1, _080FB0D8 @ =0x0000099a
adds r0, r3, r1
ldr r2, _080FB0DC @ =0x0000099b
adds r1, r3, r2
ldrb r2, [r0]
ldrb r0, [r1]
adds r1, r0, 0
eors r1, r2
mov r8, r1
movs r4, 0
movs r6, 0x1
ldr r2, _080FB0E0 @ =gLinkPlayers
mov r12, r2
ldr r0, _080FB0E4 @ =0x00000996
adds r0, r3
mov r10, r0
mov r3, r12
adds r3, 0x4
_080FB074:
mov r0, r8
asrs r0, r4
ands r0, r6
cmp r0, 0
beq _080FB0B4
mov r1, r10
adds r0, r4, r1
ldrb r1, [r0]
lsls r0, r1, 3
subs r0, r1
lsls r0, 2
mov r2, r12
adds r1, r0, r2
ldrb r1, [r1, 0x13]
adds r2, r6, 0
ands r2, r1
lsls r2, 3
adds r0, r3
ldr r1, [r0]
movs r0, 0x7
ands r1, r0
movs r0, 0x80
orrs r1, r0
orrs r2, r1
lsls r0, r5, 3
lsls r2, r0
orrs r7, r2
adds r5, 0x1
mov r0, r9
subs r0, 0x1
cmp r5, r0
beq _080FB0BA
_080FB0B4:
adds r4, 0x1
cmp r4, 0x3
ble _080FB074
_080FB0BA:
movs r0, 0x45
adds r1, r7, 0
movs r2, 0
bl sub_80FB008
_080FB0C4:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FB0D4: .4byte gUnknown_3005450
_080FB0D8: .4byte 0x0000099a
_080FB0DC: .4byte 0x0000099b
_080FB0E0: .4byte gLinkPlayers
_080FB0E4: .4byte 0x00000996
thumb_func_end sub_80FB030
thumb_func_start sub_80FB0E8
sub_80FB0E8: @ 80FB0E8
push {r4,lr}
adds r4, r0, 0
ldr r2, _080FB110 @ =gUnknown_3005450
adds r3, r2, 0
adds r3, 0xEE
ldrb r0, [r3]
cmp r0, 0
bne _080FB10A
ldr r1, _080FB114 @ =gUnknown_3005E10
ldrh r0, [r1, 0x14]
strh r0, [r2, 0x10]
ldrh r0, [r1, 0x16]
strh r0, [r2, 0x12]
strh r4, [r2, 0xA]
ldrb r0, [r3]
movs r0, 0x1
strb r0, [r3]
_080FB10A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FB110: .4byte gUnknown_3005450
_080FB114: .4byte gUnknown_3005E10
thumb_func_end sub_80FB0E8
thumb_func_start sub_80FB118
sub_80FB118: @ 80FB118
ldr r0, _080FB124 @ =gUnknown_3005450
adds r0, 0xEE
ldrb r1, [r0]
movs r1, 0
strb r1, [r0]
bx lr
.align 2, 0
_080FB124: .4byte gUnknown_3005450
thumb_func_end sub_80FB118
thumb_func_start sub_80FB128
sub_80FB128: @ 80FB128
push {lr}
adds r2, r0, 0
cmp r2, 0
bne _080FB140
ldr r0, _080FB13C @ =gUnknown_3005450
adds r0, 0xEE
ldrb r1, [r0]
strb r2, [r0]
b _080FB14A
.align 2, 0
_080FB13C: .4byte gUnknown_3005450
_080FB140:
ldr r0, _080FB150 @ =gUnknown_3005450
adds r0, 0xEE
ldrb r1, [r0]
movs r1, 0x4
strb r1, [r0]
_080FB14A:
pop {r0}
bx r0
.align 2, 0
_080FB150: .4byte gUnknown_3005450
thumb_func_end sub_80FB128
thumb_func_start sub_80FB154
sub_80FB154: @ 80FB154
push {lr}
ldr r0, _080FB16C @ =gUnknown_3005E10
ldrb r0, [r0]
movs r1, 0x1
bl sub_80FBE20
ldr r1, _080FB170 @ =gUnknown_3005450
movs r0, 0
str r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080FB16C: .4byte gUnknown_3005E10
_080FB170: .4byte gUnknown_3005450
thumb_func_end sub_80FB154
thumb_func_start sub_80FB174
sub_80FB174: @ 80FB174
ldr r1, _080FB17C @ =gUnknown_3005450
ldr r0, _080FB180 @ =sub_80FB154
str r0, [r1]
bx lr
.align 2, 0
_080FB17C: .4byte gUnknown_3005450
_080FB180: .4byte sub_80FB154
thumb_func_end sub_80FB174
thumb_func_start sub_80FB184
sub_80FB184: @ 80FB184
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 24
lsrs r4, r0, 24
movs r6, 0
cmp r4, 0x32
bne _080FB19A
b _080FB2D8
_080FB19A:
cmp r4, 0x32
bgt _080FB1CA
cmp r4, 0x13
bgt _080FB1B8
cmp r4, 0x12
blt _080FB1A8
b _080FB366
_080FB1A8:
cmp r4, 0x10
bne _080FB1AE
b _080FB366
_080FB1AE:
cmp r4, 0x10
bgt _080FB204
cmp r4, 0
beq _080FB1F6
b _080FB366
_080FB1B8:
cmp r4, 0x30
bne _080FB1BE
b _080FB2E4
_080FB1BE:
cmp r4, 0x30
ble _080FB1C4
b _080FB2CC
_080FB1C4:
cmp r4, 0x14
beq _080FB2A0
b _080FB366
_080FB1CA:
cmp r4, 0x44
bgt _080FB1DC
cmp r4, 0x42
blt _080FB1D4
b _080FB366
_080FB1D4:
cmp r4, 0x33
bne _080FB1DA
b _080FB2E4
_080FB1DA:
b _080FB366
_080FB1DC:
cmp r4, 0xF3
bne _080FB1E2
b _080FB332
_080FB1E2:
cmp r4, 0xF3
bgt _080FB1EE
cmp r4, 0xF0
bge _080FB1EC
b _080FB366
_080FB1EC:
b _080FB34C
_080FB1EE:
cmp r4, 0xFF
bne _080FB1F4
b _080FB34C
_080FB1F4:
b _080FB366
_080FB1F6:
ldr r1, _080FB200 @ =gUnknown_3005450
movs r0, 0x2
strh r0, [r1, 0x4]
b _080FB366
.align 2, 0
_080FB200: .4byte gUnknown_3005450
_080FB204:
ldr r0, _080FB268 @ =gUnknown_3005E10
ldrh r0, [r0, 0x14]
bl sub_80FB564
movs r5, 0
movs r0, 0x1
mov r8, r0
ldr r1, _080FB26C @ =gUnknown_3005450
mov r9, r1
ldr r3, _080FB270 @ =0x0000098d
add r3, r9
mov r10, r3
movs r7, 0x7F
_080FB21E:
ldr r0, _080FB268 @ =gUnknown_3005E10
ldrh r0, [r0, 0x14]
asrs r0, r5
mov r1, r8
ands r0, r1
cmp r0, 0
beq _080FB286
ldr r0, _080FB274 @ =gUnknown_3007460
lsls r1, r5, 5
adds r1, 0x14
ldr r0, [r0]
adds r0, r1
ldrb r0, [r0, 0x10]
adds r4, r7, 0
ands r4, r0
bl sub_80F9800
ldrb r1, [r0, 0xA]
adds r0, r7, 0
ands r0, r1
cmp r4, r0
bne _080FB27C
ldr r0, _080FB278 @ =0x00000989
add r0, r9
adds r0, r5, r0
movs r1, 0
strb r1, [r0]
mov r3, r10
adds r2, r5, r3
strb r1, [r2]
movs r0, 0x20
adds r1, r5, 0
movs r3, 0x1
bl rfu_setRecvBuffer
b _080FB286
.align 2, 0
_080FB268: .4byte gUnknown_3005E10
_080FB26C: .4byte gUnknown_3005450
_080FB270: .4byte 0x0000098d
_080FB274: .4byte gUnknown_3007460
_080FB278: .4byte 0x00000989
_080FB27C:
mov r0, r8
lsls r0, r5
orrs r6, r0
lsls r0, r6, 24
lsrs r6, r0, 24
_080FB286:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x3
bls _080FB21E
cmp r6, 0
beq _080FB366
adds r0, r6, 0
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
b _080FB366
_080FB2A0:
ldr r4, _080FB2C0 @ =gUnknown_3005450
ldr r1, _080FB2C4 @ =0x0000099f
adds r0, r4, r1
ldr r1, _080FB2C8 @ =gUnknown_3005E10
ldrb r2, [r0]
ldrb r0, [r1]
cmp r2, r0
beq _080FB2BA
eors r0, r2
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
_080FB2BA:
movs r0, 0x11
strh r0, [r4, 0x4]
b _080FB366
.align 2, 0
_080FB2C0: .4byte gUnknown_3005450
_080FB2C4: .4byte 0x0000099f
_080FB2C8: .4byte gUnknown_3005E10
_080FB2CC:
ldr r0, _080FB2D4 @ =gUnknown_3005450
adds r0, 0xF0
b _080FB362
.align 2, 0
_080FB2D4: .4byte gUnknown_3005450
_080FB2D8:
ldr r0, _080FB2E0 @ =gUnknown_3005450
adds r0, 0xF0
movs r1, 0x3
b _080FB364
.align 2, 0
_080FB2E0: .4byte gUnknown_3005450
_080FB2E4:
ldr r1, _080FB314 @ =gUnknown_3005450
adds r2, r1, 0
adds r2, 0xF0
movs r0, 0x4
strb r0, [r2]
ldr r3, _080FB318 @ =0x0000099a
adds r1, r3
ldr r0, _080FB31C @ =gUnknown_3005E10
ldrb r2, [r0, 0x14]
ldrb r0, [r1]
adds r3, r0, 0
bics r3, r2
adds r2, r3, 0
strb r2, [r1]
ldr r0, _080FB320 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0x1
bne _080FB328
cmp r2, 0
bne _080FB324
adds r0, r4, 0
bl sub_80FB0E8
b _080FB328
.align 2, 0
_080FB314: .4byte gUnknown_3005450
_080FB318: .4byte 0x0000099a
_080FB31C: .4byte gUnknown_3005E10
_080FB320: .4byte gReceivedRemoteLinkPlayers
_080FB324:
bl sub_80FB174
_080FB328:
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
b _080FB366
_080FB332:
movs r0, 0x1
movs r1, 0xF3
bl sub_80FB9E4
movs r0, 0xF3
bl sub_80FB0E8
ldr r0, _080FB348 @ =gUnknown_3005450
adds r0, 0xEF
b _080FB362
.align 2, 0
_080FB348: .4byte gUnknown_3005450
_080FB34C:
adds r0, r4, 0
bl sub_80FB0E8
movs r0, 0x1
adds r1, r4, 0
bl sub_80FB9E4
ldr r0, _080FB374 @ =gUnknown_3005450
ldr r1, _080FB378 @ =0x00000993
adds r0, r1
ldrb r1, [r0]
_080FB362:
movs r1, 0x1
_080FB364:
strb r1, [r0]
_080FB366:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FB374: .4byte gUnknown_3005450
_080FB378: .4byte 0x00000993
thumb_func_end sub_80FB184
thumb_func_start sub_80FB37C
sub_80FB37C: @ 80FB37C
push {r4,r5,lr}
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x31
bne _080FB388
b _080FB4E8
_080FB388:
cmp r4, 0x31
bgt _080FB3B6
cmp r4, 0x22
beq _080FB40C
cmp r4, 0x22
bgt _080FB3A4
cmp r4, 0x20
beq _080FB3F4
cmp r4, 0x20
ble _080FB39E
b _080FB556
_080FB39E:
cmp r4, 0
beq _080FB3E6
b _080FB556
_080FB3A4:
cmp r4, 0x24
beq _080FB432
cmp r4, 0x24
blt _080FB428
cmp r4, 0x25
beq _080FB47C
cmp r4, 0x30
beq _080FB486
b _080FB556
_080FB3B6:
cmp r4, 0x44
bgt _080FB3CC
cmp r4, 0x42
blt _080FB3C0
b _080FB556
_080FB3C0:
cmp r4, 0x33
beq _080FB49A
cmp r4, 0x33
bge _080FB3CA
b _080FB504
_080FB3CA:
b _080FB556
_080FB3CC:
cmp r4, 0xF3
bne _080FB3D2
b _080FB524
_080FB3D2:
cmp r4, 0xF3
bgt _080FB3DE
cmp r4, 0xF0
bge _080FB3DC
b _080FB556
_080FB3DC:
b _080FB53C
_080FB3DE:
cmp r4, 0xFF
bne _080FB3E4
b _080FB53C
_080FB3E4:
b _080FB556
_080FB3E6:
ldr r1, _080FB3F0 @ =gUnknown_3005450
movs r0, 0x6
strh r0, [r1, 0x4]
b _080FB556
.align 2, 0
_080FB3F0: .4byte gUnknown_3005450
_080FB3F4:
ldr r0, _080FB400 @ =gUnknown_3005450
ldr r1, _080FB404 @ =gUnknown_3005E10
ldrh r1, [r1, 0x14]
ldr r2, _080FB408 @ =0x00000985
adds r0, r2
b _080FB554
.align 2, 0
_080FB400: .4byte gUnknown_3005450
_080FB404: .4byte gUnknown_3005E10
_080FB408: .4byte 0x00000985
_080FB40C:
ldr r0, _080FB41C @ =gUnknown_3005450
ldr r1, _080FB420 @ =gUnknown_3005E10
ldrh r1, [r1, 0x14]
ldr r2, _080FB424 @ =0x000008f6
adds r0, r2
ldrb r2, [r0]
b _080FB554
.align 2, 0
_080FB41C: .4byte gUnknown_3005450
_080FB420: .4byte gUnknown_3005E10
_080FB424: .4byte 0x000008f6
_080FB428:
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
b _080FB556
_080FB432:
ldr r4, _080FB468 @ =gUnknown_3005450
movs r1, 0
movs r0, 0xB
strh r0, [r4, 0x4]
ldr r2, _080FB46C @ =0x0000093d
adds r0, r4, r2
strb r1, [r0]
ldr r0, _080FB470 @ =0x0000093e
adds r2, r4, r0
strb r1, [r2]
ldr r1, _080FB474 @ =0x000008f6
adds r5, r4, r1
ldrb r1, [r5]
movs r0, 0x20
movs r3, 0x1
bl rfu_setRecvBuffer
ldrb r1, [r5]
ldr r2, _080FB478 @ =0x000008f7
adds r4, r2
movs r0, 0x10
adds r2, r4, 0
movs r3, 0x46
bl rfu_setRecvBuffer
b _080FB556
.align 2, 0
_080FB468: .4byte gUnknown_3005450
_080FB46C: .4byte 0x0000093d
_080FB470: .4byte 0x0000093e
_080FB474: .4byte 0x000008f6
_080FB478: .4byte 0x000008f7
_080FB47C:
movs r0, 0x2
movs r1, 0x25
bl sub_80FB9E4
b _080FB556
_080FB486:
ldr r0, _080FB4D8 @ =gUnknown_3005450
adds r2, r0, 0
adds r2, 0xF0
movs r1, 0x2
strb r1, [r2]
ldr r1, _080FB4DC @ =0x0000093e
adds r0, r1
ldrb r0, [r0]
cmp r0, 0x6
beq _080FB556
_080FB49A:
ldr r2, _080FB4D8 @ =gUnknown_3005450
adds r1, r2, 0
adds r1, 0xF0
ldrb r0, [r1]
cmp r0, 0x2
beq _080FB4AA
movs r0, 0x4
strb r0, [r1]
_080FB4AA:
ldr r1, _080FB4DC @ =0x0000093e
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x9
beq _080FB4BC
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
_080FB4BC:
ldr r0, _080FB4E0 @ =gUnknown_843EDF8 "LINK LOSS DISCONNECT!"
movs r1, 0x5
movs r2, 0x5
bl nullsub_87
ldr r0, _080FB4E4 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0x1
bne _080FB556
adds r0, r4, 0
bl sub_80FB0E8
b _080FB556
.align 2, 0
_080FB4D8: .4byte gUnknown_3005450
_080FB4DC: .4byte 0x0000093e
_080FB4E0: .4byte gUnknown_843EDF8
_080FB4E4: .4byte gReceivedRemoteLinkPlayers
_080FB4E8:
ldr r0, _080FB4FC @ =gUnknown_3005450
adds r0, 0xF0
movs r1, 0x1
strb r1, [r0]
ldr r0, _080FB500 @ =gUnknown_843EE10 "LINK LOSS RECOVERY NOW"
movs r1, 0x5
movs r2, 0x5
bl nullsub_87
b _080FB556
.align 2, 0
_080FB4FC: .4byte gUnknown_3005450
_080FB500: .4byte gUnknown_843EE10
_080FB504:
ldr r1, _080FB51C @ =gUnknown_3005450
adds r2, r1, 0
adds r2, 0xF0
movs r0, 0x3
strb r0, [r2]
ldr r2, _080FB520 @ =0x000008f4
adds r1, r2
ldrb r0, [r1]
movs r0, 0x1
strb r0, [r1]
b _080FB556
.align 2, 0
_080FB51C: .4byte gUnknown_3005450
_080FB520: .4byte 0x000008f4
_080FB524:
movs r0, 0x1
movs r1, 0xF3
bl sub_80FB9E4
movs r0, 0xF3
bl sub_80FB0E8
ldr r0, _080FB538 @ =gUnknown_3005450
adds r0, 0xEF
b _080FB552
.align 2, 0
_080FB538: .4byte gUnknown_3005450
_080FB53C:
movs r0, 0x1
adds r1, r4, 0
bl sub_80FB9E4
adds r0, r4, 0
bl sub_80FB0E8
ldr r0, _080FB55C @ =gUnknown_3005450
ldr r1, _080FB560 @ =0x00000993
adds r0, r1
ldrb r1, [r0]
_080FB552:
movs r1, 0x1
_080FB554:
strb r1, [r0]
_080FB556:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FB55C: .4byte gUnknown_3005450
_080FB560: .4byte 0x00000993
thumb_func_end sub_80FB37C
thumb_func_start sub_80FB564
sub_80FB564: @ 80FB564
push {r4-r6,lr}
adds r3, r0, 0
movs r2, 0
movs r6, 0x1
ldr r0, _080FB598 @ =gUnknown_3005450
ldr r4, _080FB59C @ =0x000009a2
adds r1, r0, r4
movs r5, 0
movs r4, 0xFF
_080FB576:
adds r0, r3, 0
asrs r0, r2
ands r0, r6
cmp r0, 0
beq _080FB588
strb r5, [r1]
ldrb r0, [r1, 0x4]
orrs r0, r4
strb r0, [r1, 0x4]
_080FB588:
adds r1, 0x1
adds r2, 0x1
cmp r2, 0x3
ble _080FB576
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FB598: .4byte gUnknown_3005450
_080FB59C: .4byte 0x000009a2
thumb_func_end sub_80FB564
thumb_func_start sub_80FB5A0
sub_80FB5A0: @ 80FB5A0
push {r4-r7,lr}
adds r5, r0, 0
movs r3, 0
movs r2, 0
movs r4, 0x1
ldr r6, _080FB5E8 @ =gUnknown_3007460
movs r7, 0x7F
_080FB5AE:
adds r0, r5, 0
asrs r0, r2
ands r0, r4
cmp r0, 0
beq _080FB5D4
lsls r1, r2, 5
adds r1, 0x14
ldr r0, [r6]
adds r0, r1
ldrb r1, [r0, 0x10]
adds r0, r7, 0
ands r0, r1
cmp r0, 0x45
bne _080FB5D4
adds r0, r4, 0
lsls r0, r2
orrs r3, r0
lsls r0, r3, 24
lsrs r3, r0, 24
_080FB5D4:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x3
bls _080FB5AE
adds r0, r3, 0
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FB5E8: .4byte gUnknown_3007460
thumb_func_end sub_80FB5A0
thumb_func_start sub_80FB5EC
sub_80FB5EC: @ 80FB5EC
push {r4-r7,lr}
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x25
bne _080FB5F8
b _080FB86C
_080FB5F8:
cmp r4, 0x25
bgt _080FB63A
cmp r4, 0x14
bne _080FB602
b _080FB780
_080FB602:
cmp r4, 0x14
bgt _080FB61A
cmp r4, 0x11
beq _080FB69A
cmp r4, 0x11
ble _080FB610
b _080FB9C2
_080FB610:
cmp r4, 0
beq _080FB684
cmp r4, 0x10
beq _080FB690
b _080FB9C2
_080FB61A:
cmp r4, 0x22
bne _080FB620
b _080FB7E8
_080FB620:
cmp r4, 0x22
bgt _080FB62C
cmp r4, 0x20
bne _080FB62A
b _080FB7D0
_080FB62A:
b _080FB9C2
_080FB62C:
cmp r4, 0x23
bne _080FB632
b _080FB804
_080FB632:
cmp r4, 0x24
bne _080FB638
b _080FB83A
_080FB638:
b _080FB9C2
_080FB63A:
cmp r4, 0x44
bgt _080FB66A
cmp r4, 0x42
blt _080FB644
b _080FB9C2
_080FB644:
cmp r4, 0x32
bne _080FB64A
b _080FB894
_080FB64A:
cmp r4, 0x32
bgt _080FB65C
cmp r4, 0x30
bne _080FB654
b _080FB8C0
_080FB654:
cmp r4, 0x31
bne _080FB65A
b _080FB876
_080FB65A:
b _080FB9C2
_080FB65C:
cmp r4, 0x33
bne _080FB662
b _080FB8C8
_080FB662:
cmp r4, 0x40
bne _080FB668
b _080FB97C
_080FB668:
b _080FB9C2
_080FB66A:
cmp r4, 0xF3
bne _080FB670
b _080FB98C
_080FB670:
cmp r4, 0xF3
bgt _080FB67C
cmp r4, 0xF0
bge _080FB67A
b _080FB9C2
_080FB67A:
b _080FB9A8
_080FB67C:
cmp r4, 0xFF
bne _080FB682
b _080FB9A8
_080FB682:
b _080FB9C2
_080FB684:
ldr r1, _080FB68C @ =gUnknown_3005450
movs r0, 0x11
strh r0, [r1, 0x4]
b _080FB9C2
.align 2, 0
_080FB68C: .4byte gUnknown_3005450
_080FB690:
movs r0, 0x4
movs r1, 0
bl sub_80FB9E4
b _080FB9C2
_080FB69A:
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
bne _080FB758
ldr r5, _080FB704 @ =gUnknown_3005450
ldr r1, _080FB708 @ =0x00000991
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FB758
ldr r0, _080FB70C @ =gUnknown_3005E10
ldrh r0, [r0, 0x14]
bl sub_80FB5A0
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0
beq _080FB722
adds r0, r4, 0
bl sub_80F886C
lsls r0, 24
lsrs r0, 24
movs r2, 0x1
mov r12, r2
mov r1, r12
lsls r1, r0
lsls r1, 24
lsrs r1, 24
ldr r7, _080FB710 @ =0x0000099e
adds r6, r5, r7
ldrb r2, [r6]
cmp r2, 0
bne _080FB714
movs r0, 0x9A
lsls r0, 4
adds r3, r5, r0
ldrb r0, [r3]
cmp r0, 0
bne _080FB714
subs r7, 0x1
adds r0, r5, r7
strb r1, [r0]
eors r1, r4
orrs r1, r2
strb r1, [r6]
mov r0, r12
strb r0, [r3]
b _080FB722
.align 2, 0
_080FB704: .4byte gUnknown_3005450
_080FB708: .4byte 0x00000991
_080FB70C: .4byte gUnknown_3005E10
_080FB710: .4byte 0x0000099e
_080FB714:
ldr r0, _080FB744 @ =gUnknown_3005450
ldr r1, _080FB748 @ =0x0000099e
adds r0, r1
ldrb r2, [r0]
adds r1, r4, 0
orrs r1, r2
strb r1, [r0]
_080FB722:
ldr r0, _080FB74C @ =gUnknown_3005E10
ldrh r1, [r0, 0x14]
cmp r4, r1
beq _080FB772
ldr r2, _080FB744 @ =gUnknown_3005450
ldr r7, _080FB750 @ =0x0000099b
adds r3, r2, r7
adds r0, r4, 0
eors r0, r1
ldrb r1, [r3]
orrs r0, r1
strb r0, [r3]
ldr r0, _080FB754 @ =0x0000099c
adds r2, r0
movs r0, 0x2
strb r0, [r2]
b _080FB772
.align 2, 0
_080FB744: .4byte gUnknown_3005450
_080FB748: .4byte 0x0000099e
_080FB74C: .4byte gUnknown_3005E10
_080FB750: .4byte 0x0000099b
_080FB754: .4byte 0x0000099c
_080FB758:
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x54
bne _080FB772
ldr r0, _080FB77C @ =gUnknown_3005E10
ldrb r0, [r0]
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
_080FB772:
ldr r0, _080FB77C @ =gUnknown_3005E10
ldrh r0, [r0, 0x14]
bl sub_80FB564
b _080FB9C2
.align 2, 0
_080FB77C: .4byte gUnknown_3005E10
_080FB780:
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r0, 0x7F
ands r0, r1
cmp r0, 0x45
beq _080FB7B6
ldr r4, _080FB7C8 @ =gUnknown_3005E10
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bls _080FB7B6
ldrb r0, [r4, 0x14]
bl sub_80F886C
lsls r0, 24
lsrs r0, 24
movs r1, 0x80
lsls r1, 17
lsls r1, r0
lsrs r1, 24
ldrb r0, [r4]
eors r1, r0
adds r0, r1, 0
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
_080FB7B6:
ldr r1, _080FB7CC @ =gUnknown_3005450
ldrh r0, [r1, 0x4]
cmp r0, 0xF
beq _080FB7C0
b _080FB9C2
_080FB7C0:
movs r0, 0x10
strh r0, [r1, 0x4]
b _080FB9C2
.align 2, 0
_080FB7C8: .4byte gUnknown_3005E10
_080FB7CC: .4byte gUnknown_3005450
_080FB7D0:
ldr r0, _080FB7DC @ =gUnknown_3005450
ldr r1, _080FB7E0 @ =gUnknown_3005E10
ldrh r1, [r1, 0x14]
ldr r2, _080FB7E4 @ =0x00000985
adds r0, r2
b _080FB9C0
.align 2, 0
_080FB7DC: .4byte gUnknown_3005450
_080FB7E0: .4byte gUnknown_3005E10
_080FB7E4: .4byte 0x00000985
_080FB7E8:
ldr r0, _080FB7F8 @ =gUnknown_3005450
ldr r1, _080FB7FC @ =gUnknown_3005E10
ldrh r1, [r1, 0x14]
ldr r7, _080FB800 @ =0x000008f6
adds r0, r7
ldrb r2, [r0]
b _080FB9C0
.align 2, 0
_080FB7F8: .4byte gUnknown_3005450
_080FB7FC: .4byte gUnknown_3005E10
_080FB800: .4byte 0x000008f6
_080FB804:
ldr r1, _080FB824 @ =gUnknown_3005450
movs r0, 0x12
strh r0, [r1, 0x4]
ldr r0, _080FB828 @ =0x00000987
adds r1, r0
ldrb r0, [r1]
cmp r0, 0x1
bhi _080FB830
adds r0, 0x1
strb r0, [r1]
ldr r0, _080FB82C @ =sub_80FC028
movs r1, 0x2
bl CreateTask
b _080FB9C2
.align 2, 0
_080FB824: .4byte gUnknown_3005450
_080FB828: .4byte 0x00000987
_080FB82C: .4byte sub_80FC028
_080FB830:
movs r0, 0x2
movs r1, 0x23
bl sub_80FB9E4
b _080FB9C2
_080FB83A:
ldr r4, _080FB860 @ =gUnknown_3005450
movs r0, 0xD
strh r0, [r4, 0x4]
movs r0, 0x3
movs r1, 0
bl sub_80FB9E4
ldr r1, _080FB864 @ =0x000008f6
adds r0, r4, r1
ldrb r1, [r0]
ldr r2, _080FB868 @ =0x000008f7
adds r4, r2
movs r0, 0x10
adds r2, r4, 0
movs r3, 0x46
bl rfu_setRecvBuffer
b _080FB9C2
.align 2, 0
_080FB860: .4byte gUnknown_3005450
_080FB864: .4byte 0x000008f6
_080FB868: .4byte 0x000008f7
_080FB86C:
movs r0, 0x2
movs r1, 0x25
bl sub_80FB9E4
b _080FB9C2
_080FB876:
ldr r0, _080FB88C @ =gUnknown_3005E10
ldrb r1, [r0]
ldrh r0, [r0, 0x14]
ands r1, r0
cmp r1, 0
bne _080FB884
b _080FB9C2
_080FB884:
ldr r0, _080FB890 @ =gUnknown_3005450
adds r0, 0xF0
movs r1, 0x1
b _080FB9C0
.align 2, 0
_080FB88C: .4byte gUnknown_3005E10
_080FB890: .4byte gUnknown_3005450
_080FB894:
ldr r2, _080FB8B4 @ =gUnknown_3005450
adds r1, r2, 0
adds r1, 0xF0
movs r0, 0x3
strb r0, [r1]
ldr r0, _080FB8B8 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0
beq _080FB8AA
b _080FB9C2
_080FB8AA:
ldr r7, _080FB8BC @ =0x000008f4
adds r0, r2, r7
ldrb r1, [r0]
movs r1, 0x1
b _080FB9C0
.align 2, 0
_080FB8B4: .4byte gUnknown_3005450
_080FB8B8: .4byte gUnknown_3007460
_080FB8BC: .4byte 0x000008f4
_080FB8C0:
ldr r0, _080FB900 @ =gUnknown_3005450
adds r0, 0xF0
movs r1, 0x2
strb r1, [r0]
_080FB8C8:
ldr r2, _080FB900 @ =gUnknown_3005450
adds r1, r2, 0
adds r1, 0xF0
ldrb r0, [r1]
cmp r0, 0x2
beq _080FB8D8
movs r0, 0x4
strb r0, [r1]
_080FB8D8:
ldrb r0, [r2, 0xC]
cmp r0, 0x1
bne _080FB916
ldr r0, _080FB904 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0x1
bne _080FB934
ldr r0, _080FB908 @ =0x0000099a
adds r2, r0
ldr r0, _080FB90C @ =gUnknown_3005E10
ldrb r1, [r0, 0x14]
ldrb r0, [r2]
bics r0, r1
strb r0, [r2]
cmp r0, 0
bne _080FB910
adds r0, r4, 0
bl sub_80FB0E8
b _080FB934
.align 2, 0
_080FB900: .4byte gUnknown_3005450
_080FB904: .4byte gReceivedRemoteLinkPlayers
_080FB908: .4byte 0x0000099a
_080FB90C: .4byte gUnknown_3005E10
_080FB910:
bl sub_80FB174
b _080FB934
_080FB916:
ldr r1, _080FB964 @ =0x0000099c
adds r0, r2, r1
ldrb r0, [r0]
cmp r0, 0x2
beq _080FB934
ldr r0, _080FB968 @ =gReceivedRemoteLinkPlayers
ldrb r0, [r0]
cmp r0, 0x1
bne _080FB934
adds r0, r4, 0
bl sub_80FB0E8
movs r0, 0
bl sub_80FD760
_080FB934:
ldr r0, _080FB96C @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0xFF
bne _080FB95A
ldr r0, _080FB970 @ =gUnknown_3005E10
ldrb r0, [r0, 0x7]
cmp r0, 0
bne _080FB95A
ldr r0, _080FB974 @ =sub_80F8B34
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FB95A
ldr r1, _080FB978 @ =gUnknown_3005450
movs r0, 0x11
strh r0, [r1, 0x4]
_080FB95A:
movs r0, 0x2
adds r1, r4, 0
bl sub_80FB9E4
b _080FB9C2
.align 2, 0
_080FB964: .4byte 0x0000099c
_080FB968: .4byte gReceivedRemoteLinkPlayers
_080FB96C: .4byte gUnknown_3007460
_080FB970: .4byte gUnknown_3005E10
_080FB974: .4byte sub_80F8B34
_080FB978: .4byte gUnknown_3005450
_080FB97C:
ldr r0, _080FB984 @ =gUnknown_3005450
ldr r2, _080FB988 @ =0x0000099b
adds r0, r2
b _080FB9BE
.align 2, 0
_080FB984: .4byte gUnknown_3005450
_080FB988: .4byte 0x0000099b
_080FB98C:
movs r0, 0x1
movs r1, 0xF3
bl sub_80FB9E4
movs r0, 0xF3
bl sub_80FB0E8
ldr r0, _080FB9A4 @ =gUnknown_3005450
adds r0, 0xEF
movs r1, 0x1
b _080FB9C0
.align 2, 0
_080FB9A4: .4byte gUnknown_3005450
_080FB9A8:
adds r0, r4, 0
bl sub_80FB0E8
movs r0, 0x1
adds r1, r4, 0
bl sub_80FB9E4
ldr r0, _080FB9C8 @ =gUnknown_3005450
ldr r7, _080FB9CC @ =0x00000993
adds r0, r7
ldrb r1, [r0]
_080FB9BE:
movs r1, 0
_080FB9C0:
strb r1, [r0]
_080FB9C2:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FB9C8: .4byte gUnknown_3005450
_080FB9CC: .4byte 0x00000993
thumb_func_end sub_80FB5EC
thumb_func_start sub_80FB9D0
sub_80FB9D0: @ 80FB9D0
ldr r0, _080FB9DC @ =gUnknown_3005450
ldr r1, _080FB9E0 @ =0x0000099c
adds r0, r1
movs r1, 0x2
strb r1, [r0]
bx lr
.align 2, 0
_080FB9DC: .4byte gUnknown_3005450
_080FB9E0: .4byte 0x0000099c
thumb_func_end sub_80FB9D0
thumb_func_start sub_80FB9E4
sub_80FB9E4: @ 80FB9E4
ldr r2, _080FB9F0 @ =gUnknown_3005450
adds r3, r2, 0
adds r3, 0xF1
strb r0, [r3]
strh r1, [r2, 0xA]
bx lr
.align 2, 0
_080FB9F0: .4byte gUnknown_3005450
thumb_func_end sub_80FB9E4
thumb_func_start sub_80FB9F4
sub_80FB9F4: @ 80FB9F4
ldr r0, _080FB9FC @ =gUnknown_3005450
adds r0, 0xF1
ldrb r0, [r0]
bx lr
.align 2, 0
_080FB9FC: .4byte gUnknown_3005450
thumb_func_end sub_80FB9F4
thumb_func_start sub_80FBA00
sub_80FBA00: @ 80FBA00
push {lr}
bl sub_80FB9F4
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
cmp r0, 0x1
bls _080FBA14
movs r0, 0
b _080FBA16
_080FBA14:
movs r0, 0x1
_080FBA16:
pop {r1}
bx r1
thumb_func_end sub_80FBA00
thumb_func_start sub_80FBA1C
sub_80FBA1C: @ 80FBA1C
ldr r0, _080FBA28 @ =gUnknown_3005450
movs r1, 0x9A
lsls r1, 4
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080FBA28: .4byte gUnknown_3005450
thumb_func_end sub_80FBA1C
thumb_func_start sub_80FBA2C
sub_80FBA2C: @ 80FBA2C
ldr r0, _080FBA34 @ =gUnknown_3005450
ldrb r0, [r0, 0xC]
bx lr
.align 2, 0
_080FBA34: .4byte gUnknown_3005450
thumb_func_end sub_80FBA2C
thumb_func_start RFUVSync
RFUVSync: @ 80FBA38
push {lr}
bl rfu_syncVBlank_
pop {r0}
bx r0
thumb_func_end RFUVSync
thumb_func_start sub_80FBA44
sub_80FBA44: @ 80FBA44
push {lr}
sub sp, 0x4
movs r0, 0
str r0, [sp]
ldr r1, _080FBA5C @ =gRecvCmds
ldr r2, _080FBA60 @ =0x05000014
mov r0, sp
bl CpuSet
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_080FBA5C: .4byte gRecvCmds
_080FBA60: .4byte 0x05000014
thumb_func_end sub_80FBA44
thumb_func_start sub_80FBA64
sub_80FBA64: @ 80FBA64
push {lr}
bl LoadOam
bl ProcessSpriteCopyRequests
bl TransferPlttBuffer
pop {r0}
bx r0
thumb_func_end sub_80FBA64
thumb_func_start sub_80FBA78
sub_80FBA78: @ 80FBA78
push {r4,lr}
bl ResetSpriteData
bl FreeAllSpritePalettes
bl ResetTasks
bl ResetPaletteFade
ldr r0, _080FBAF4 @ =sub_80FBA64
bl SetVBlankCallback
bl sub_8009480
lsls r0, 24
cmp r0, 0
beq _080FBAEC
ldr r1, _080FBAF8 @ =gLinkType
ldr r2, _080FBAFC @ =0x00001111
adds r0, r2, 0
strh r0, [r1]
bl sub_800B1F4
bl OpenLink
ldr r0, _080FBB00 @ =gMain
ldrh r0, [r0, 0x24]
bl SeedRng
movs r4, 0
_080FBAB4:
bl Random
ldr r1, _080FBB04 @ =gSaveBlock2Ptr
ldr r1, [r1]
adds r1, 0xA
adds r1, r4
strb r0, [r1]
adds r4, 0x1
cmp r4, 0x3
ble _080FBAB4
movs r1, 0xAA
lsls r1, 5
movs r0, 0
bl SetGpuReg
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
bl sub_80FBB20
ldr r0, _080FBB08 @ =sub_80FBB74
bl SetMainCallback2
_080FBAEC:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FBAF4: .4byte sub_80FBA64
_080FBAF8: .4byte gLinkType
_080FBAFC: .4byte 0x00001111
_080FBB00: .4byte gMain
_080FBB04: .4byte gSaveBlock2Ptr
_080FBB08: .4byte sub_80FBB74
thumb_func_end sub_80FBA78
thumb_func_start sub_80FBB0C
sub_80FBB0C: @ 80FBB0C
push {lr}
ldr r0, _080FBB1C @ =sub_80F8B34
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
.align 2, 0
_080FBB1C: .4byte sub_80F8B34
thumb_func_end sub_80FBB0C
thumb_func_start sub_80FBB20
sub_80FBB20: @ 80FBB20
push {r4,lr}
ldr r4, _080FBB44 @ =nullsub_89
adds r0, r4, 0
bl FuncIsActiveTask
lsls r0, 24
cmp r0, 0
bne _080FBB3E
adds r0, r4, 0
movs r1, 0
bl CreateTask
ldr r1, _080FBB48 @ =gUnknown_3005450
adds r1, 0x66
strb r0, [r1]
_080FBB3E:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FBB44: .4byte nullsub_89
_080FBB48: .4byte gUnknown_3005450
thumb_func_end sub_80FBB20
thumb_func_start sub_80FBB4C
sub_80FBB4C: @ 80FBB4C
push {lr}
ldr r0, _080FBB6C @ =nullsub_89
bl FuncIsActiveTask
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FBB66
ldr r0, _080FBB70 @ =gUnknown_3005450
adds r0, 0x66
ldrb r0, [r0]
bl DestroyTask
_080FBB66:
pop {r0}
bx r0
.align 2, 0
_080FBB6C: .4byte nullsub_89
_080FBB70: .4byte gUnknown_3005450
thumb_func_end sub_80FBB4C
thumb_func_start sub_80FBB74
sub_80FBB74: @ 80FBB74
push {lr}
bl RunTasks
bl AnimateSprites
bl BuildOamBuffer
bl UpdatePaletteFade
pop {r0}
bx r0
thumb_func_end sub_80FBB74
thumb_func_start sub_80FBB8C
sub_80FBB8C: @ 80FBB8C
push {r4-r6,lr}
adds r4, r0, 0
ldr r1, _080FBBC4 @ =gUnknown_3005450
movs r0, 0x1
strb r0, [r1, 0xC]
bl sub_80FAF1C
ldr r0, _080FBBC8 @ =sub_80FB184
movs r1, 0
bl sub_80FD430
ldr r2, _080FBBCC @ =gUnknown_203ABF0
adds r1, r2, 0
ldr r0, _080FBBD0 @ =gUnknown_843EBB4
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldm r0!, {r3,r5,r6}
stm r1!, {r3,r5,r6}
ldr r0, _080FBBD4 @ =gUnknown_843EBCC
subs r4, 0x1
adds r4, r0
ldrb r0, [r4]
strh r0, [r2, 0x2]
bl sub_80F8E74
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBBC4: .4byte gUnknown_3005450
_080FBBC8: .4byte sub_80FB184
_080FBBCC: .4byte gUnknown_203ABF0
_080FBBD0: .4byte gUnknown_843EBB4
_080FBBD4: .4byte gUnknown_843EBCC
thumb_func_end sub_80FBB8C
thumb_func_start sub_80FBBD8
sub_80FBBD8: @ 80FBBD8
push {lr}
ldr r1, _080FBBF4 @ =gUnknown_3005450
movs r0, 0
strb r0, [r1, 0xC]
bl sub_80FAF1C
ldr r0, _080FBBF8 @ =sub_80FB37C
ldr r1, _080FBBFC @ =sub_80F8D20
bl sub_80FD430
bl sub_80F8F10
pop {r0}
bx r0
.align 2, 0
_080FBBF4: .4byte gUnknown_3005450
_080FBBF8: .4byte sub_80FB37C
_080FBBFC: .4byte sub_80F8D20
thumb_func_end sub_80FBBD8
thumb_func_start sub_80FBC00
sub_80FBC00: @ 80FBC00
push {r4-r7,lr}
ldr r0, _080FBC4C @ =gUnknown_203ADFA
ldrb r0, [r0]
subs r0, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bls _080FBC46
ldr r4, _080FBC50 @ =gUnknown_3005450
movs r5, 0
movs r0, 0x2
strb r0, [r4, 0xC]
bl sub_80FAF1C
ldr r0, _080FBC54 @ =sub_80FB5EC
movs r1, 0
bl sub_80FD430
ldr r2, _080FBC58 @ =gUnknown_203ABF0
adds r1, r2, 0
ldr r0, _080FBC5C @ =gUnknown_843EBB4
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
ldm r0!, {r3,r6,r7}
stm r1!, {r3,r6,r7}
strb r5, [r2, 0x11]
movs r0, 0x96
lsls r0, 2
strh r0, [r2, 0x12]
ldr r0, _080FBC60 @ =sub_80F8B34
movs r1, 0x1
bl CreateTask
adds r4, 0x67
strb r0, [r4]
_080FBC46:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FBC4C: .4byte gUnknown_203ADFA
_080FBC50: .4byte gUnknown_3005450
_080FBC54: .4byte sub_80FB5EC
_080FBC58: .4byte gUnknown_203ABF0
_080FBC5C: .4byte gUnknown_843EBB4
_080FBC60: .4byte sub_80F8B34
thumb_func_end sub_80FBC00
thumb_func_start sub_80FBC64
sub_80FBC64: @ 80FBC64
ldrb r1, [r0, 0x1]
lsls r1, 8
ldrb r0, [r0]
orrs r0, r1
bx lr
thumb_func_end sub_80FBC64
thumb_func_start sub_80FBC70
sub_80FBC70: @ 80FBC70
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x4
str r0, [sp]
lsls r1, 16
lsrs r1, 16
mov r10, r1
movs r0, 0xFF
mov r9, r0
movs r7, 0
ldr r1, _080FBCF4 @ =gUnknown_3007460
mov r8, r1
_080FBC8E:
lsls r4, r7, 5
adds r5, r4, 0
adds r5, 0x14
mov r1, r8
ldr r0, [r1]
adds r0, r5
adds r0, 0x8
bl sub_80FBC64
lsls r0, 16
lsrs r6, r0, 16
mov r1, r8
ldr r0, [r1]
adds r0, r4
ldrh r0, [r0, 0x18]
bl sub_80FA44C
cmp r0, 0
beq _080FBCD8
mov r0, r8
ldr r1, [r0]
adds r1, r5
adds r1, 0x15
ldr r0, [sp]
bl StringCompare
cmp r0, 0
bne _080FBCD8
cmp r10, r6
bne _080FBCD8
mov r9, r7
mov r1, r8
ldr r0, [r1]
adds r0, r4
ldrb r0, [r0, 0x16]
cmp r0, 0xFF
bne _080FBCE2
_080FBCD8:
adds r0, r7, 0x1
lsls r0, 24
lsrs r7, r0, 24
cmp r7, 0x3
bls _080FBC8E
_080FBCE2:
mov r0, r9
add sp, 0x4
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FBCF4: .4byte gUnknown_3007460
thumb_func_end sub_80FBC70
thumb_func_start sub_80FBCF8
sub_80FBCF8: @ 80FBCF8
push {r4-r6,lr}
adds r6, r0, 0
lsls r0, r6, 24
lsrs r0, 24
bl rfu_REQ_disconnect
bl rfu_waitREQComplete
ldr r4, _080FBD3C @ =gUnknown_3005450
ldr r0, _080FBD40 @ =0x0000099a
adds r5, r4, r0
ldrb r0, [r5]
bics r0, r6
strb r0, [r5]
ldr r1, _080FBD44 @ =0x00000992
adds r6, r4, r1
ldrb r1, [r6]
movs r0, 0x1
bl rfu_clearSlot
ldrb r0, [r5]
ldr r1, _080FBD48 @ =0x0000093f
adds r4, r1
adds r1, r4, 0
movs r2, 0x46
bl rfu_UNI_setSendData
ldrb r0, [r5]
bl sub_80F886C
strb r0, [r6]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBD3C: .4byte gUnknown_3005450
_080FBD40: .4byte 0x0000099a
_080FBD44: .4byte 0x00000992
_080FBD48: .4byte 0x0000093f
thumb_func_end sub_80FBCF8
thumb_func_start sub_80FBD4C
sub_80FBD4C: @ 80FBD4C
push {lr}
lsls r1, 16
lsrs r1, 16
bl sub_80FBC70
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0xFF
beq _080FBD66
movs r0, 0x1
lsls r0, r1
bl sub_80FBCF8
_080FBD66:
pop {r0}
bx r0
thumb_func_end sub_80FBD4C
thumb_func_start sub_80FBD6C
sub_80FBD6C: @ 80FBD6C
push {r4-r6,lr}
adds r4, r0, 0
cmp r4, 0
beq _080FBDAC
movs r3, 0
movs r2, 0
ldr r5, _080FBDB4 @ =gUnknown_3005DE6
adds r6, r5, 0x4
_080FBD7C:
adds r0, r2, r5
ldrb r0, [r0]
cmp r0, r4
bne _080FBD9A
ldrb r0, [r6]
asrs r0, r2
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _080FBD9A
adds r0, r1, 0
lsls r0, r2
orrs r3, r0
lsls r0, r3, 24
lsrs r3, r0, 24
_080FBD9A:
adds r2, 0x1
cmp r2, 0x3
ble _080FBD7C
cmp r3, 0
beq _080FBDAC
adds r0, r3, 0
movs r1, 0x2
bl sub_80FBE20
_080FBDAC:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBDB4: .4byte gUnknown_3005DE6
thumb_func_end sub_80FBD6C
thumb_func_start sub_80FBDB8
sub_80FBDB8: @ 80FBDB8
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
ldr r6, _080FBE10 @ =gUnknown_3003F50
ldrh r0, [r6]
cmp r0, 0
bne _080FBE08
ldr r5, _080FBE14 @ =gUnknown_3005450
movs r1, 0x9A
lsls r1, 4
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0
bne _080FBE08
movs r0, 0xED
lsls r0, 8
bl sub_80F9D04
ldr r1, _080FBE18 @ =gTasks
lsls r0, r4, 2
adds r0, r4
lsls r0, 3
adds r0, r1
ldrh r1, [r0, 0x8]
strh r1, [r6, 0x2]
ldrh r1, [r0, 0xA]
strh r1, [r6, 0x4]
ldr r1, _080FBE1C @ =gUnknown_843EC41
movs r2, 0x8
ldrsh r0, [r0, r2]
adds r0, r1
ldrb r1, [r5, 0xD]
ldrb r0, [r0]
subs r1, r0
strb r1, [r5, 0xD]
ldrb r0, [r5, 0xD]
strh r0, [r6, 0x6]
adds r0, r4, 0
bl DestroyTask
_080FBE08:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBE10: .4byte gUnknown_3003F50
_080FBE14: .4byte gUnknown_3005450
_080FBE18: .4byte gTasks
_080FBE1C: .4byte gUnknown_843EC41
thumb_func_end sub_80FBDB8
thumb_func_start sub_80FBE20
sub_80FBE20: @ 80FBE20
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
ldr r5, _080FBE50 @ =sub_80FBDB8
adds r0, r5, 0
bl FindTaskIdByFunc
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
bne _080FBE58
adds r0, r5, 0
movs r1, 0x5
bl CreateTask
lsls r0, 24
lsrs r2, r0, 24
ldr r1, _080FBE54 @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r4, [r0, 0x8]
b _080FBE68
.align 2, 0
_080FBE50: .4byte sub_80FBDB8
_080FBE54: .4byte gTasks
_080FBE58:
ldr r0, _080FBE7C @ =gTasks
lsls r1, r2, 2
adds r1, r2
lsls r1, 3
adds r1, r0
ldrh r0, [r1, 0x8]
orrs r4, r0
strh r4, [r1, 0x8]
_080FBE68:
ldr r1, _080FBE7C @ =gTasks
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r1
strh r6, [r0, 0xA]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBE7C: .4byte gTasks
thumb_func_end sub_80FBE20
thumb_func_start sub_80FBE80
sub_80FBE80: @ 80FBE80
push {r4-r6,lr}
lsls r0, 24
lsrs r6, r0, 24
lsls r0, r6, 2
adds r0, r6
lsls r0, 3
ldr r1, _080FBED8 @ =gTasks+0x8
adds r4, r0, r1
bl sub_80F8EA4
lsls r0, 24
cmp r0, 0
beq _080FBF30
adds r0, r4, 0
adds r0, 0x10
bl sub_80FBC64
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
adds r0, r4, 0
bl sub_80FBC70
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080FBF18
ldr r0, _080FBEDC @ =gUnknown_3007460
ldr r0, [r0]
lsls r1, r2, 5
adds r0, r1
ldrb r0, [r0, 0x16]
cmp r0, 0xFF
beq _080FBEE8
ldr r0, _080FBEE0 @ =gUnknown_3005450
ldr r1, _080FBEE4 @ =0x000008f5
adds r0, r1
strb r2, [r0]
bl sub_80F8ECC
cmp r0, 0
beq _080FBF36
b _080FBF10
.align 2, 0
_080FBED8: .4byte gTasks+0x8
_080FBEDC: .4byte gUnknown_3007460
_080FBEE0: .4byte gUnknown_3005450
_080FBEE4: .4byte 0x000008f5
_080FBEE8:
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r5, 0x7F
adds r0, r5, 0
ands r0, r1
cmp r0, 0x15
beq _080FBF30
bl sub_80F9800
ldrb r1, [r0, 0xA]
adds r0, r5, 0
ands r0, r1
cmp r0, 0x16
beq _080FBF30
movs r1, 0xE0
lsls r1, 7
movs r0, 0x2
bl sub_80FB9E4
_080FBF10:
adds r0, r6, 0
bl DestroyTask
b _080FBF36
_080FBF18:
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
ldr r0, _080FBF28 @ =gUnknown_3005450
ldr r1, _080FBF2C @ =0x000008f5
adds r0, r1
strb r2, [r0]
b _080FBF36
.align 2, 0
_080FBF28: .4byte gUnknown_3005450
_080FBF2C: .4byte 0x000008f5
_080FBF30:
ldrh r0, [r4, 0x1E]
adds r0, 0x1
strh r0, [r4, 0x1E]
_080FBF36:
movs r1, 0x1E
ldrsh r0, [r4, r1]
cmp r0, 0xF0
ble _080FBF4E
movs r1, 0xE0
lsls r1, 7
movs r0, 0x2
bl sub_80FB9E4
adds r0, r6, 0
bl DestroyTask
_080FBF4E:
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_80FBE80
thumb_func_start sub_80FBF54
sub_80FBF54: @ 80FBF54
push {r4-r6,lr}
adds r6, r0, 0
lsls r5, r1, 16
lsrs r5, 16
ldr r0, _080FBF8C @ =gUnknown_3005450
adds r0, 0xF1
movs r1, 0
strb r1, [r0]
ldr r0, _080FBF90 @ =sub_80FBE80
movs r1, 0x3
bl CreateTask
lsls r0, 24
lsrs r0, 24
lsls r4, r0, 2
adds r4, r0
lsls r4, 3
ldr r0, _080FBF94 @ =gTasks+0x8
adds r4, r0
adds r0, r4, 0
adds r1, r6, 0
bl StringCopy
strh r5, [r4, 0x10]
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080FBF8C: .4byte gUnknown_3005450
_080FBF90: .4byte sub_80FBE80
_080FBF94: .4byte gTasks+0x8
thumb_func_end sub_80FBF54
thumb_func_start sub_80FBF98
sub_80FBF98: @ 80FBF98
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 16
lsrs r5, r0, 16
bl sub_80F9800
ldrb r1, [r0, 0xA]
movs r2, 0x7F
adds r0, r2, 0
ands r0, r1
cmp r0, 0x45
bne _080FBFBE
ldrb r1, [r4, 0xA]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x45
beq _080FC01E
_080FBFBA:
movs r0, 0x1
b _080FC020
_080FBFBE:
ldrb r1, [r4, 0xA]
adds r0, r2, 0
ands r0, r1
cmp r0, 0x40
bne _080FBFBA
cmp r5, 0x44
bne _080FC01E
ldr r5, _080FBFEC @ =gUnknown_300555A
ldrh r0, [r5, 0x8]
ldr r3, _080FBFF0 @ =0x000003ff
adds r2, r3, 0
ands r2, r0
movs r0, 0xCE
lsls r0, 1
cmp r2, r0
bne _080FBFF4
ldrh r1, [r4, 0x8]
adds r0, r3, 0
ands r0, r1
cmp r0, r2
beq _080FC01E
b _080FBFBA
.align 2, 0
_080FBFEC: .4byte gUnknown_300555A
_080FBFF0: .4byte 0x000003ff
_080FBFF4:
ldrh r1, [r4, 0x8]
adds r0, r3, 0
ands r0, r1
cmp r0, r2
bne _080FBFBA
ldrb r2, [r4, 0xB]
movs r0, 0xFE
ldrb r3, [r5, 0xB]
adds r1, r0, 0
ands r1, r2
ands r0, r3
cmp r1, r0
bne _080FBFBA
ldrb r2, [r4, 0x9]
movs r0, 0xFC
ldrb r3, [r5, 0x9]
adds r1, r0, 0
ands r1, r2
ands r0, r3
cmp r1, r0
bne _080FBFBA
_080FC01E:
movs r0, 0
_080FC020:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FBF98
thumb_func_start sub_80FC028
sub_80FC028: @ 80FC028
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 24
lsrs r5, r0, 24
mov r8, r5
ldr r6, _080FC0E0 @ =gUnknown_3005450
adds r0, r6, 0
adds r0, 0xF1
ldrb r0, [r0]
cmp r0, 0x4
bne _080FC046
adds r0, r5, 0
bl DestroyTask
_080FC046:
ldr r1, _080FC0E4 @ =gTasks
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
adds r4, r0, r1
ldrh r0, [r4, 0x8]
adds r0, 0x1
strh r0, [r4, 0x8]
lsls r0, 16
movs r1, 0x96
lsls r1, 17
cmp r0, r1
ble _080FC070
movs r1, 0xE0
lsls r1, 7
movs r0, 0x2
bl sub_80FB9E4
adds r0, r5, 0
bl DestroyTask
_080FC070:
ldr r1, _080FC0E8 @ =0x00000985
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0
beq _080FC108
ldr r0, _080FC0EC @ =gUnknown_3005E10
ldrb r0, [r0, 0x6]
cmp r0, 0
bne _080FC108
movs r2, 0x86
lsls r2, 1
adds r0, r6, r2
bl sub_80FBC64
adds r1, r0, 0
lsls r1, 16
lsrs r1, 16
ldr r2, _080FC0F0 @ =0x00000119
adds r0, r6, r2
bl sub_80FBC70
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0xFF
beq _080FC108
movs r1, 0xA
ldrsh r0, [r4, r1]
ldr r7, _080FC0F4 @ =gUnknown_3007460
lsls r4, r2, 5
adds r2, r4, 0
adds r2, 0x14
ldr r1, [r7]
adds r1, r2
adds r1, 0x6
bl sub_80FBF98
cmp r0, 0
bne _080FC0F8
ldr r0, [r7]
adds r1, r0, r4
ldrb r0, [r1, 0x16]
cmp r0, 0xFF
beq _080FC108
ldrh r0, [r1, 0x14]
movs r1, 0x5A
bl sub_80FD610
lsls r0, 24
cmp r0, 0
bne _080FC108
movs r0, 0xA
strh r0, [r6, 0x4]
adds r0, r5, 0
bl DestroyTask
b _080FC108
.align 2, 0
_080FC0E0: .4byte gUnknown_3005450
_080FC0E4: .4byte gTasks
_080FC0E8: .4byte 0x00000985
_080FC0EC: .4byte gUnknown_3005E10
_080FC0F0: .4byte 0x00000119
_080FC0F4: .4byte gUnknown_3007460
_080FC0F8:
movs r1, 0xE0
lsls r1, 7
movs r0, 0x2
bl sub_80FB9E4
mov r0, r8
bl DestroyTask
_080FC108:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80FC028
thumb_func_start sub_80FC114
sub_80FC114: @ 80FC114
push {r4-r7,lr}
adds r3, r0, 0
adds r5, r1, 0
lsls r4, r2, 24
lsrs r4, 24
ldr r6, _080FC184 @ =gUnknown_3005450
ldr r1, _080FC188 @ =0x00000987
adds r0, r6, r1
movs r7, 0
strb r7, [r0]
adds r0, r6, 0
adds r0, 0xF1
strb r7, [r0]
ldr r1, _080FC18C @ =0x00000119
adds r0, r6, r1
adds r1, r3, 0
bl StringCopy
movs r1, 0x85
lsls r1, 1
adds r0, r6, r1
adds r1, r5, 0
movs r2, 0xD
bl memcpy
bl sub_80FEB3C
ldr r0, _080FC190 @ =sub_80FC028
movs r1, 0x2
bl CreateTask
lsls r0, 24
lsrs r0, 24
ldr r5, _080FC194 @ =gTasks
lsls r1, r0, 2
adds r1, r0
lsls r1, 3
adds r1, r5
strh r4, [r1, 0xA]
ldr r0, _080FC198 @ =sub_80F8B34
bl FindTaskIdByFunc
lsls r0, 24
lsrs r1, r0, 24
adds r2, r1, 0
cmp r4, 0x45
bne _080FC19C
cmp r1, 0xFF
beq _080FC1AA
lsls r0, r1, 2
adds r0, r1
lsls r0, 3
adds r0, r5
movs r1, 0x1
strh r1, [r0, 0x16]
b _080FC1AA
.align 2, 0
_080FC184: .4byte gUnknown_3005450
_080FC188: .4byte 0x00000987
_080FC18C: .4byte 0x00000119
_080FC190: .4byte sub_80FC028
_080FC194: .4byte gTasks
_080FC198: .4byte sub_80F8B34
_080FC19C:
cmp r2, 0xFF
beq _080FC1AA
lsls r0, r2, 2
adds r0, r2
lsls r0, 3
adds r0, r5
strh r7, [r0, 0x16]
_080FC1AA:
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80FC114
thumb_func_start sub_80FC1B0
sub_80FC1B0: @ 80FC1B0
push {lr}
ldr r0, _080FC1C0 @ =gUnknown_3005450
adds r0, 0xF0
ldrb r0, [r0]
cmp r0, 0x1
beq _080FC1C4
movs r0, 0
b _080FC1C6
.align 2, 0
_080FC1C0: .4byte gUnknown_3005450
_080FC1C4:
movs r0, 0x1
_080FC1C6:
pop {r1}
bx r1
thumb_func_end sub_80FC1B0
thumb_func_start sub_80FC1CC
sub_80FC1CC: @ 80FC1CC
push {r4,lr}
movs r1, 0
ldr r0, _080FC1F0 @ =gUnknown_3005E10
ldrb r2, [r0]
ldr r4, _080FC1F4 @ =gUnknown_3005DD9
movs r3, 0x1
_080FC1D8:
adds r0, r2, 0
asrs r0, r1
ands r0, r3
cmp r0, 0
beq _080FC1F8
adds r0, r1, r4
ldrb r0, [r0]
cmp r0, 0
bne _080FC1F8
movs r0, 0
b _080FC200
.align 2, 0
_080FC1F0: .4byte gUnknown_3005E10
_080FC1F4: .4byte gUnknown_3005DD9
_080FC1F8:
adds r1, 0x1
cmp r1, 0x3
ble _080FC1D8
movs r0, 0x1
_080FC200:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FC1CC
thumb_func_start sub_80FC208
sub_80FC208: @ 80FC208
push {r4,lr}
movs r4, 0
_080FC20C:
lsls r2, r4, 24
lsrs r2, 24
ldr r0, _080FC224 @ =gUnknown_843EE28
movs r1, 0
bl nullsub_87
adds r4, 0x1
cmp r4, 0x13
ble _080FC20C
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FC224: .4byte gUnknown_843EE28
thumb_func_end sub_80FC208
thumb_func_start sub_80FC228
sub_80FC228: @ 80FC228
push {r4-r7,lr}
mov r7, r8
push {r7}
bl GetBlockReceivedStatus
lsls r0, 24
lsrs r0, 24
movs r1, 0x1C
movs r2, 0x13
movs r3, 0x2
bl nullsub_88
ldr r4, _080FC2F8 @ =gUnknown_3007460
ldr r0, [r4]
ldrb r0, [r0, 0x2]
movs r1, 0x14
movs r2, 0x1
movs r3, 0x1
bl nullsub_88
ldr r0, [r4]
ldrb r0, [r0, 0x3]
movs r1, 0x17
movs r2, 0x1
movs r3, 0x1
bl nullsub_88
ldr r0, _080FC2FC @ =gUnknown_3005450
ldrb r0, [r0, 0xC]
cmp r0, 0x1
bne _080FC304
movs r6, 0
adds r7, r4, 0
movs r5, 0x14
_080FC26C:
ldr r2, [r7]
ldrb r0, [r2, 0x7]
asrs r0, r6
movs r1, 0x1
ands r0, r1
cmp r0, 0
beq _080FC2AA
lsls r0, r6, 5
adds r0, r2, r0
ldrh r0, [r0, 0x18]
adds r4, r6, 0x3
lsls r4, 24
lsrs r4, 24
adds r2, r4, 0
movs r3, 0x4
bl nullsub_88
ldr r0, [r7]
adds r0, r5
adds r0, 0x6
movs r1, 0x6
adds r2, r4, 0
bl nullsub_87
ldr r0, [r7]
adds r0, r5
adds r0, 0x15
movs r1, 0x16
adds r2, r4, 0
bl nullsub_87
_080FC2AA:
adds r5, 0x20
adds r6, 0x1
cmp r6, 0x3
ble _080FC26C
movs r6, 0
ldr r0, _080FC2FC @ =gUnknown_3005450
mov r8, r0
_080FC2B8:
movs r5, 0
adds r7, r6, 0x1
lsls r0, r6, 3
adds r2, r6, 0
adds r2, 0xB
subs r0, r6
lsls r0, 1
mov r1, r8
adds r1, 0x14
adds r4, r0, r1
lsls r6, r2, 24
_080FC2CE:
ldrb r0, [r4]
lsls r1, r5, 25
lsrs r1, 24
lsrs r2, r6, 24
movs r3, 0x2
bl nullsub_88
adds r4, 0x1
adds r5, 0x1
cmp r5, 0xD
ble _080FC2CE
adds r6, r7, 0
cmp r6, 0x3
ble _080FC2B8
ldr r0, _080FC300 @ =gUnknown_843EE64 "NOWSLOT"
movs r1, 0x1
movs r2, 0xF
bl nullsub_87
b _080FC436
.align 2, 0
_080FC2F8: .4byte gUnknown_3007460
_080FC2FC: .4byte gUnknown_3005450
_080FC300: .4byte gUnknown_843EE64
_080FC304:
ldr r1, [r4]
ldrb r0, [r1, 0x2]
cmp r0, 0
beq _080FC3A0
ldrb r0, [r1, 0x7]
cmp r0, 0
beq _080FC3A0
movs r6, 0
movs r5, 0xC0
lsls r5, 18
_080FC318:
lsrs r4, r5, 24
movs r0, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
bl nullsub_88
ldr r0, _080FC38C @ =gUnknown_843EE47
movs r1, 0x6
adds r2, r4, 0
bl nullsub_87
ldr r0, _080FC390 @ =gUnknown_843EE57
movs r1, 0x16
adds r2, r4, 0
bl nullsub_87
movs r1, 0x80
lsls r1, 17
adds r5, r1
adds r6, 0x1
cmp r6, 0x3
ble _080FC318
ldr r5, _080FC394 @ =gUnknown_3007460
ldr r1, [r5]
ldr r4, _080FC398 @ =gUnknown_3005450
ldr r0, _080FC39C @ =0x000008f6
adds r4, r0
ldrb r0, [r4]
lsls r0, 5
adds r1, r0
ldrh r0, [r1, 0x18]
movs r1, 0x1
movs r2, 0x3
movs r3, 0x4
bl nullsub_88
ldrb r1, [r4]
lsls r1, 5
adds r1, 0x14
ldr r0, [r5]
adds r0, r1
adds r0, 0x6
movs r1, 0x6
movs r2, 0x3
bl nullsub_87
ldrb r1, [r4]
lsls r1, 5
adds r1, 0x14
ldr r0, [r5]
adds r0, r1
adds r0, 0x15
movs r1, 0x16
movs r2, 0x3
bl nullsub_87
b _080FC436
.align 2, 0
_080FC38C: .4byte gUnknown_843EE47
_080FC390: .4byte gUnknown_843EE57
_080FC394: .4byte gUnknown_3007460
_080FC398: .4byte gUnknown_3005450
_080FC39C: .4byte 0x000008f6
_080FC3A0:
movs r6, 0
ldr r1, _080FC440 @ =gUnknown_3007460
ldr r0, [r1]
ldrb r0, [r0, 0x8]
cmp r6, r0
bge _080FC3FC
adds r7, r1, 0
movs r1, 0x14
mov r8, r1
_080FC3B2:
ldr r0, [r7]
lsls r5, r6, 5
adds r1, r0, r5
ldrb r0, [r1, 0x16]
cmp r0, 0xFF
beq _080FC3EE
ldrh r0, [r1, 0x18]
adds r4, r6, 0x3
lsls r4, 24
lsrs r4, 24
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
bl nullsub_88
ldr r0, [r7]
adds r0, r5
ldrh r0, [r0, 0x14]
movs r1, 0x6
adds r2, r4, 0
movs r3, 0x4
bl nullsub_88
ldr r0, [r7]
add r0, r8
adds r0, 0x15
movs r1, 0x16
adds r2, r4, 0
bl nullsub_87
_080FC3EE:
movs r0, 0x20
add r8, r0
adds r6, 0x1
ldr r0, [r7]
ldrb r0, [r0, 0x8]
cmp r6, r0
blt _080FC3B2
_080FC3FC:
cmp r6, 0x3
bgt _080FC436
lsls r0, r6, 24
movs r1, 0xC0
lsls r1, 18
adds r5, r0, r1
_080FC408:
lsrs r4, r5, 24
movs r0, 0
movs r1, 0x1
adds r2, r4, 0
movs r3, 0x4
bl nullsub_88
ldr r0, _080FC444 @ =gUnknown_843EE47
movs r1, 0x6
adds r2, r4, 0
bl nullsub_87
ldr r0, _080FC448 @ =gUnknown_843EE57
movs r1, 0x16
adds r2, r4, 0
bl nullsub_87
movs r0, 0x80
lsls r0, 17
adds r5, r0
adds r6, 0x1
cmp r6, 0x3
ble _080FC408
_080FC436:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FC440: .4byte gUnknown_3007460
_080FC444: .4byte gUnknown_843EE47
_080FC448: .4byte gUnknown_843EE57
thumb_func_end sub_80FC228
thumb_func_start sub_80FC44C
sub_80FC44C: @ 80FC44C
ldr r0, _080FC458 @ =gUnknown_3005450
ldr r1, _080FC45C @ =0x000008d2
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080FC458: .4byte gUnknown_3005450
_080FC45C: .4byte 0x000008d2
thumb_func_end sub_80FC44C
thumb_func_start sub_80FC460
sub_80FC460: @ 80FC460
ldr r0, _080FC46C @ =gUnknown_3005450
ldr r1, _080FC470 @ =0x0000069e
adds r0, r1
ldrb r0, [r0]
bx lr
.align 2, 0
_080FC46C: .4byte gUnknown_3005450
_080FC470: .4byte 0x0000069e
thumb_func_end sub_80FC460
thumb_func_start nullsub_89
nullsub_89: @ 80FC474
bx lr
thumb_func_end nullsub_89
thumb_func_start sub_80FC478
sub_80FC478: @ 80FC478
push {r4,r5,lr}
adds r3, r0, 0
movs r0, 0
movs r4, 0
movs r5, 0x46
_080FC482:
adds r2, r0, 0x1
movs r1, 0x45
muls r0, r5
adds r0, r3
adds r0, 0x45
_080FC48C:
strb r4, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _080FC48C
adds r0, r2, 0
cmp r0, 0x13
ble _080FC482
movs r1, 0
ldr r2, _080FC4C8 @ =0x00000579
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
movs r2, 0xAF
lsls r2, 3
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC4CC @ =0x0000057a
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC4D0 @ =0x0000057b
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FC4C8: .4byte 0x00000579
_080FC4CC: .4byte 0x0000057a
_080FC4D0: .4byte 0x0000057b
thumb_func_end sub_80FC478
thumb_func_start sub_80FC4D4
sub_80FC4D4: @ 80FC4D4
push {r4,lr}
adds r3, r0, 0
movs r1, 0
movs r4, 0
_080FC4DC:
lsls r0, r1, 3
adds r2, r1, 0x1
subs r0, r1
movs r1, 0xD
lsls r0, 1
adds r0, r3
adds r0, 0xD
_080FC4EA:
strb r4, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _080FC4EA
adds r1, r2, 0
cmp r1, 0x27
ble _080FC4DC
movs r1, 0
ldr r2, _080FC524 @ =0x00000231
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
movs r2, 0x8C
lsls r2, 2
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC528 @ =0x00000232
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC52C @ =0x00000233
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FC524: .4byte 0x00000231
_080FC528: .4byte 0x00000232
_080FC52C: .4byte 0x00000233
thumb_func_end sub_80FC4D4
thumb_func_start sub_80FC530
sub_80FC530: @ 80FC530
push {r4,lr}
adds r3, r0, 0
movs r1, 0
movs r4, 0
_080FC538:
lsls r0, r1, 8
adds r2, r1, 0x1
movs r1, 0xFF
adds r0, r3
adds r0, 0xFF
_080FC542:
strb r4, [r0]
subs r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _080FC542
adds r1, r2, 0
cmp r1, 0x1
ble _080FC538
movs r1, 0
ldr r2, _080FC57C @ =0x00000201
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
movs r2, 0x80
lsls r2, 2
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC580 @ =0x00000202
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
ldr r2, _080FC584 @ =0x00000203
adds r0, r3, r2
ldrb r2, [r0]
strb r1, [r0]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FC57C: .4byte 0x00000201
_080FC580: .4byte 0x00000202
_080FC584: .4byte 0x00000203
thumb_func_end sub_80FC530
thumb_func_start sub_80FC588
sub_80FC588: @ 80FC588
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
ldr r1, _080FC620 @ =0x0000057a
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0x13
bhi _080FC628
ldr r0, _080FC624 @ =0x04000208
ldrh r1, [r0]
adds r7, r1, 0
movs r1, 0
strh r1, [r0]
movs r3, 0
movs r2, 0
_080FC5A6:
adds r1, r6, r2
ldrb r0, [r1]
cmp r0, 0
bne _080FC5BA
ldrb r0, [r1, 0x1]
cmp r0, 0
bne _080FC5BA
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
_080FC5BA:
adds r2, 0xE
cmp r2, 0x45
ble _080FC5A6
cmp r3, 0x5
beq _080FC618
movs r2, 0
movs r0, 0xAF
lsls r0, 3
adds r3, r5, r0
movs r4, 0x46
_080FC5CE:
ldrb r0, [r3]
adds r1, r0, 0
muls r1, r4
adds r1, r2, r1
adds r1, r5, r1
adds r0, r6, r2
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
cmp r2, 0x45
ble _080FC5CE
movs r1, 0xAF
lsls r1, 3
adds r4, r5, r1
ldrb r0, [r4]
adds r0, 0x1
ldrb r1, [r4]
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0x14
bl __umodsi3
ldrb r1, [r4]
strb r0, [r4]
ldr r0, _080FC620 @ =0x0000057a
adds r1, r5, r0
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r1, 0
adds r0, r6, 0
adds r0, 0x45
_080FC610:
strb r1, [r0]
subs r0, 0x1
cmp r0, r6
bge _080FC610
_080FC618:
ldr r0, _080FC624 @ =0x04000208
strh r7, [r0]
b _080FC632
.align 2, 0
_080FC620: .4byte 0x0000057a
_080FC624: .4byte 0x04000208
_080FC628:
ldr r1, _080FC638 @ =0x0000057b
adds r0, r5, r1
ldrb r1, [r0]
movs r1, 0x1
strb r1, [r0]
_080FC632:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FC638: .4byte 0x0000057b
thumb_func_end sub_80FC588
thumb_func_start sub_80FC63C
sub_80FC63C: @ 80FC63C
push {r4-r7,lr}
adds r6, r0, 0
adds r5, r1, 0
ldr r1, _080FC6CC @ =0x00000232
adds r0, r6, r1
ldrb r0, [r0]
cmp r0, 0x27
bhi _080FC6D4
ldr r1, _080FC6D0 @ =0x04000208
ldrh r0, [r1]
adds r7, r0, 0
movs r0, 0
strh r0, [r1]
movs r2, 0
ldrb r0, [r5]
cmp r0, 0
bne _080FC66C
_080FC65E:
adds r2, 0x1
cmp r2, 0xD
bgt _080FC66C
adds r0, r5, r2
ldrb r0, [r0]
cmp r0, 0
beq _080FC65E
_080FC66C:
cmp r2, 0xE
beq _080FC6C4
movs r2, 0
movs r0, 0x8C
lsls r0, 2
adds r3, r6, r0
_080FC678:
ldrb r1, [r3]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
adds r0, r2, r0
adds r0, r6, r0
adds r1, r5, r2
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0xD
ble _080FC678
movs r1, 0x8C
lsls r1, 2
adds r4, r6, r1
ldrb r0, [r4]
adds r0, 0x1
ldrb r1, [r4]
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0x28
bl __umodsi3
ldrb r1, [r4]
strb r0, [r4]
ldr r0, _080FC6CC @ =0x00000232
adds r1, r6, r0
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r1, 0
adds r0, r5, 0
adds r0, 0xD
_080FC6BC:
strb r1, [r0]
subs r0, 0x1
cmp r0, r5
bge _080FC6BC
_080FC6C4:
ldr r0, _080FC6D0 @ =0x04000208
strh r7, [r0]
b _080FC6DE
.align 2, 0
_080FC6CC: .4byte 0x00000232
_080FC6D0: .4byte 0x04000208
_080FC6D4:
ldr r1, _080FC6E4 @ =0x00000233
adds r0, r6, r1
ldrb r1, [r0]
movs r1, 0x1
strb r1, [r0]
_080FC6DE:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FC6E4: .4byte 0x00000233
thumb_func_end sub_80FC63C
thumb_func_start sub_80FC6E8
sub_80FC6E8: @ 80FC6E8
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
adds r3, r1, 0
ldr r1, _080FC730 @ =0x04000208
ldrh r0, [r1]
mov r8, r0
movs r0, 0
strh r0, [r1]
movs r1, 0xAF
lsls r1, 3
adds r0, r5, r1
ldr r7, _080FC734 @ =0x00000579
adds r4, r5, r7
ldrb r1, [r0]
ldrb r0, [r4]
cmp r1, r0
beq _080FC718
ldr r1, _080FC738 @ =0x0000057b
adds r0, r5, r1
ldrb r0, [r0]
cmp r0, 0
beq _080FC73C
_080FC718:
movs r1, 0
adds r0, r3, 0
adds r0, 0x45
_080FC71E:
strb r1, [r0]
subs r0, 0x1
cmp r0, r3
bge _080FC71E
ldr r0, _080FC730 @ =0x04000208
mov r7, r8
strh r7, [r0]
movs r0, 0
b _080FC784
.align 2, 0
_080FC730: .4byte 0x04000208
_080FC734: .4byte 0x00000579
_080FC738: .4byte 0x0000057b
_080FC73C:
movs r2, 0
movs r6, 0x46
_080FC740:
adds r1, r3, r2
ldrb r0, [r4]
adds r7, r0, 0
muls r7, r6
adds r0, r7, 0
adds r0, r2, r0
adds r0, r5, r0
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
cmp r2, 0x45
ble _080FC740
ldr r0, _080FC790 @ =0x00000579
adds r4, r5, r0
ldrb r0, [r4]
adds r0, 0x1
ldrb r1, [r4]
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0x14
bl __umodsi3
ldrb r1, [r4]
strb r0, [r4]
ldr r7, _080FC794 @ =0x0000057a
adds r1, r5, r7
ldrb r0, [r1]
subs r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
ldr r0, _080FC798 @ =0x04000208
mov r1, r8
strh r1, [r0]
movs r0, 0x1
_080FC784:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FC790: .4byte 0x00000579
_080FC794: .4byte 0x0000057a
_080FC798: .4byte 0x04000208
thumb_func_end sub_80FC6E8
thumb_func_start sub_80FC79C
sub_80FC79C: @ 80FC79C
push {r4-r7,lr}
adds r5, r0, 0
adds r6, r1, 0
movs r1, 0x8C
lsls r1, 2
adds r0, r5, r1
adds r1, 0x1
adds r4, r5, r1
ldrb r1, [r0]
ldrb r0, [r4]
cmp r1, r0
beq _080FC7C0
ldr r1, _080FC7C4 @ =0x00000233
adds r0, r5, r1
ldrb r0, [r0]
adds r2, r0, 0
cmp r2, 0
beq _080FC7C8
_080FC7C0:
movs r0, 0
b _080FC814
.align 2, 0
_080FC7C4: .4byte 0x00000233
_080FC7C8:
ldr r1, _080FC81C @ =0x04000208
ldrh r0, [r1]
adds r7, r0, 0
strh r2, [r1]
movs r3, 0
_080FC7D2:
adds r2, r6, r3
ldrb r1, [r4]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
adds r0, r3, r0
adds r0, r5, r0
ldrb r0, [r0]
strb r0, [r2]
adds r3, 0x1
cmp r3, 0xD
ble _080FC7D2
ldr r0, _080FC820 @ =0x00000231
adds r4, r5, r0
ldrb r0, [r4]
adds r0, 0x1
ldrb r1, [r4]
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0x28
bl __umodsi3
ldrb r1, [r4]
strb r0, [r4]
ldr r0, _080FC824 @ =0x00000232
adds r1, r5, r0
ldrb r0, [r1]
subs r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
ldr r0, _080FC81C @ =0x04000208
strh r7, [r0]
movs r0, 0x1
_080FC814:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080FC81C: .4byte 0x04000208
_080FC820: .4byte 0x00000231
_080FC824: .4byte 0x00000232
thumb_func_end sub_80FC79C
thumb_func_start sub_80FC828
sub_80FC828: @ 80FC828
push {r4,lr}
adds r2, r0, 0
adds r4, r1, 0
ldrb r0, [r4, 0x1]
cmp r0, 0
bne _080FC83E
adds r0, r2, 0
movs r1, 0
bl sub_80FC888
b _080FC880
_080FC83E:
movs r3, 0
_080FC840:
ldrb r1, [r2, 0x1C]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
adds r0, r3, r0
adds r0, r2, r0
adds r1, r4, r3
ldrb r1, [r1]
strb r1, [r0]
adds r3, 0x1
cmp r3, 0xD
ble _080FC840
ldrb r0, [r2, 0x1C]
adds r0, 0x1
ldrb r1, [r2, 0x1C]
strb r0, [r2, 0x1C]
ldrb r1, [r2, 0x1C]
movs r0, 0x1
ands r0, r1
ldrb r1, [r2, 0x1C]
strb r0, [r2, 0x1C]
ldrb r0, [r2, 0x1E]
cmp r0, 0x1
bhi _080FC87A
ldrb r0, [r2, 0x1E]
adds r0, 0x1
ldrb r1, [r2, 0x1E]
strb r0, [r2, 0x1E]
b _080FC880
_080FC87A:
ldrb r0, [r2, 0x1C]
ldrb r1, [r2, 0x1D]
strb r0, [r2, 0x1D]
_080FC880:
pop {r4}
pop {r0}
bx r0
thumb_func_end sub_80FC828
thumb_func_start sub_80FC888
sub_80FC888: @ 80FC888
push {r4,r5,lr}
adds r3, r0, 0
adds r5, r1, 0
ldrb r0, [r3, 0x1E]
cmp r0, 0
bne _080FC898
movs r0, 0
b _080FC8D2
_080FC898:
cmp r5, 0
beq _080FC8B6
movs r4, 0
_080FC89E:
adds r2, r5, r4
ldrb r1, [r3, 0x1D]
lsls r0, r1, 3
subs r0, r1
lsls r0, 1
adds r0, r4, r0
adds r0, r3, r0
ldrb r0, [r0]
strb r0, [r2]
adds r4, 0x1
cmp r4, 0xD
ble _080FC89E
_080FC8B6:
ldrb r0, [r3, 0x1D]
adds r0, 0x1
ldrb r1, [r3, 0x1D]
strb r0, [r3, 0x1D]
ldrb r1, [r3, 0x1D]
movs r0, 0x1
ands r0, r1
ldrb r1, [r3, 0x1D]
strb r0, [r3, 0x1D]
ldrb r0, [r3, 0x1E]
subs r0, 0x1
ldrb r1, [r3, 0x1E]
strb r0, [r3, 0x1E]
movs r0, 0x1
_080FC8D2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80FC888
thumb_func_start sub_80FC8D8
sub_80FC8D8: @ 80FC8D8
push {r4,r5,lr}
adds r3, r0, 0
adds r5, r1, 0
ldr r1, _080FC92C @ =0x00000202
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0x1
bhi _080FC930
movs r2, 0
movs r0, 0x80
lsls r0, 2
adds r4, r3, r0
_080FC8F0:
ldrb r0, [r4]
lsls r0, 8
adds r0, r2, r0
adds r0, r3, r0
adds r1, r5, r2
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0xFF
ble _080FC8F0
movs r0, 0x80
lsls r0, 2
adds r1, r3, r0
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
ldrb r2, [r1]
movs r0, 0x1
ands r0, r2
ldrb r2, [r1]
strb r0, [r1]
ldr r0, _080FC92C @ =0x00000202
adds r1, r3, r0
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
b _080FC93A
.align 2, 0
_080FC92C: .4byte 0x00000202
_080FC930:
ldr r1, _080FC940 @ =0x00000203
adds r0, r3, r1
ldrb r1, [r0]
movs r1, 0x1
strb r1, [r0]
_080FC93A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FC940: .4byte 0x00000203
thumb_func_end sub_80FC8D8
thumb_func_start sub_80FC944
sub_80FC944: @ 80FC944
push {r4,r5,lr}
adds r3, r0, 0
adds r5, r1, 0
movs r1, 0x80
lsls r1, 2
adds r0, r3, r1
adds r1, 0x1
adds r4, r3, r1
ldrb r1, [r0]
ldrb r0, [r4]
cmp r1, r0
beq _080FC966
ldr r1, _080FC96C @ =0x00000203
adds r0, r3, r1
ldrb r0, [r0]
cmp r0, 0
beq _080FC970
_080FC966:
movs r0, 0
b _080FC9AA
.align 2, 0
_080FC96C: .4byte 0x00000203
_080FC970:
movs r2, 0
_080FC972:
adds r0, r5, r2
ldrb r1, [r4]
lsls r1, 8
adds r1, r2, r1
adds r1, r3, r1
ldrb r1, [r1]
strb r1, [r0]
adds r2, 0x1
cmp r2, 0xFF
ble _080FC972
ldr r0, _080FC9B0 @ =0x00000201
adds r1, r3, r0
ldrb r0, [r1]
adds r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
ldrb r2, [r1]
movs r0, 0x1
ands r0, r2
ldrb r2, [r1]
strb r0, [r1]
ldr r0, _080FC9B4 @ =0x00000202
adds r1, r3, r0
ldrb r0, [r1]
subs r0, 0x1
ldrb r2, [r1]
strb r0, [r1]
movs r0, 0x1
_080FC9AA:
pop {r4,r5}
pop {r1}
bx r1
.align 2, 0
_080FC9B0: .4byte 0x00000201
_080FC9B4: .4byte 0x00000202
thumb_func_end sub_80FC944
thumb_func_start sub_80FC9B8
sub_80FC9B8: @ 80FC9B8
push {r4-r7,lr}
adds r6, r0, 0
lsls r1, 24
lsrs r1, 24
adds r0, r1, 0
movs r5, 0
cmp r1, 0x1
beq _080FC9F6
cmp r1, 0x1
bgt _080FC9D2
cmp r1, 0
beq _080FC9DC
b _080FCA6A
_080FC9D2:
cmp r0, 0x2
beq _080FCA16
cmp r0, 0x3
beq _080FCA36
b _080FCA6A
_080FC9DC:
movs r4, 0
_080FC9DE:
adds r0, r6, r4
adds r1, r4, 0x1
strb r1, [r0]
lsls r0, r5, 16
asrs r0, 16
adds r0, r1
lsls r0, 16
lsrs r5, r0, 16
adds r4, r1, 0
cmp r4, 0xC7
ble _080FC9DE
b _080FCA30
_080FC9F6:
movs r4, 0
adds r2, r6, 0
adds r2, 0xC8
_080FC9FC:
adds r0, r6, r4
adds r1, r4, 0x1
strb r1, [r0]
lsls r0, r5, 16
asrs r0, 16
adds r0, r1
lsls r0, 16
lsrs r5, r0, 16
adds r4, r1, 0
cmp r4, 0x63
ble _080FC9FC
strh r5, [r2]
b _080FCA6A
_080FCA16:
movs r4, 0
_080FCA18:
bl Random
lsls r0, 24
lsrs r0, 24
adds r1, r6, r4
strb r0, [r1]
adds r0, r5, r0
lsls r0, 16
lsrs r5, r0, 16
adds r4, 0x1
cmp r4, 0xC7
ble _080FCA18
_080FCA30:
adds r0, r6, r4
strh r5, [r0]
b _080FCA6A
_080FCA36:
movs r4, 0
ldr r3, _080FCA70 @ =gUnknown_3002018
ldrb r1, [r3]
ldrb r0, [r3]
adds r7, r0, 0x1
adds r2, r1, 0x1
movs r0, 0xFF
mov r12, r0
_080FCA46:
adds r0, r6, r4
adds r1, r4, 0x1
strb r2, [r0]
adds r0, r4, r7
mov r4, r12
ands r0, r4
adds r0, r5, r0
lsls r0, 16
lsrs r5, r0, 16
adds r2, 0x1
adds r4, r1, 0
cmp r1, 0xC7
ble _080FCA46
adds r0, r6, r1
strh r5, [r0]
ldrb r0, [r3]
adds r0, 0x1
strb r0, [r3]
_080FCA6A:
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FCA70: .4byte gUnknown_3002018
thumb_func_end sub_80FC9B8
thumb_func_start sub_80FCA74
sub_80FCA74: @ 80FCA74
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldrb r0, [r1]
cmp r0, 0xFF
beq _080FCA98
ldr r5, _080FCAA4 @ =gUnknown_843F104
adds r2, r1, 0
_080FCA84:
adds r1, r4, r3
ldrb r0, [r2]
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0xFF
bne _080FCA84
_080FCA98:
adds r1, r4, r3
movs r0, 0
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FCAA4: .4byte gUnknown_843F104
thumb_func_end sub_80FCA74
thumb_func_start sub_80FCAA8
sub_80FCAA8: @ 80FCAA8
push {r4,r5,lr}
adds r4, r0, 0
movs r3, 0
ldrb r0, [r1]
cmp r0, 0
beq _080FCACC
ldr r5, _080FCAD8 @ =gUnknown_843F004
adds r2, r1, 0
_080FCAB8:
adds r1, r4, r3
ldrb r0, [r2]
adds r0, r5
ldrb r0, [r0]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
ldrb r0, [r2]
cmp r0, 0
bne _080FCAB8
_080FCACC:
adds r1, r4, r3
movs r0, 0xFF
strb r0, [r1]
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FCAD8: .4byte gUnknown_843F004
thumb_func_end sub_80FCAA8
thumb_func_start sub_80FCADC
sub_80FCADC: @ 80FCADC
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
movs r6, 0
ldr r0, _080FCB04 @ =gUnknown_3007460
ldr r4, [r0]
ldrb r2, [r4, 0x2]
ldrb r1, [r4]
adds r7, r0, 0
cmp r1, 0x1
bne _080FCB32
movs r3, 0
ands r1, r2
cmp r1, 0
beq _080FCB0E
cmp r5, 0x1
bne _080FCB08
ldrb r0, [r4, 0xA]
b _080FCB4C
.align 2, 0
_080FCB04: .4byte gUnknown_3007460
_080FCB08:
adds r0, r6, 0x1
lsls r0, 24
lsrs r6, r0, 24
_080FCB0E:
lsrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bhi _080FCB4A
movs r0, 0x1
ands r0, r2
cmp r0, 0
beq _080FCB0E
adds r0, r6, 0x1
cmp r5, r0
bne _080FCB08
_080FCB28:
ldr r0, [r7]
adds r0, 0xA
adds r0, r3
ldrb r0, [r0]
b _080FCB4C
_080FCB32:
movs r3, 0
movs r1, 0x1
_080FCB36:
adds r0, r2, 0
ands r0, r1
cmp r0, 0
bne _080FCB28
lsrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080FCB36
_080FCB4A:
movs r0, 0
_080FCB4C:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FCADC
thumb_func_start sub_80FCB54
sub_80FCB54: @ 80FCB54
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
lsls r1, 24
lsrs r1, 24
mov r9, r1
movs r4, 0
ldr r0, _080FCC30 @ =gSaveBlock2Ptr
mov r8, r0
adds r6, r7, 0x2
ldr r0, [r0]
adds r5, r0, 0
adds r5, 0xA
_080FCB72:
adds r0, r6, r4
adds r1, r5, r4
ldrb r1, [r1]
strb r1, [r0]
adds r4, 0x1
cmp r4, 0x1
ble _080FCB72
movs r4, 0
lsls r2, 7
mov r12, r2
adds r1, r7, 0x4
_080FCB88:
adds r0, r1, r4
strb r3, [r0]
asrs r3, 8
adds r4, 0x1
cmp r4, 0x3
ble _080FCB88
mov r1, r8
ldr r0, [r1]
ldrb r0, [r0, 0x8]
movs r6, 0x1
movs r1, 0x1
ands r1, r0
ldrb r2, [r7, 0xB]
movs r5, 0x2
negs r5, r5
adds r0, r5, 0
ands r0, r2
orrs r0, r1
strb r0, [r7, 0xB]
movs r4, 0x7F
mov r1, r9
ands r1, r4
ldrb r2, [r7, 0xA]
movs r0, 0x80
negs r0, r0
ands r0, r2
orrs r0, r1
ands r0, r4
mov r1, r12
orrs r0, r1
strb r0, [r7, 0xA]
ldrb r0, [r7]
movs r1, 0x10
negs r1, r1
ands r1, r0
movs r0, 0x2
orrs r1, r0
ldrb r2, [r7, 0x1]
movs r0, 0x3D
negs r0, r0
ands r0, r2
movs r2, 0x10
orrs r0, r2
strb r0, [r7, 0x1]
movs r0, 0x11
negs r0, r0
ands r1, r0
subs r0, 0x10
ands r1, r0
subs r0, 0x20
ands r1, r0
strb r1, [r7]
ldr r0, _080FCC34 @ =0x00000844
bl FlagGet
lsls r0, 7
ldrb r1, [r7]
ands r4, r1
orrs r4, r0
strb r4, [r7]
bl sub_806E25C
ands r0, r6
ldrb r1, [r7, 0x1]
ands r5, r1
orrs r5, r0
strb r5, [r7, 0x1]
ldr r0, _080FCC38 @ =0x0000082c
bl FlagGet
ands r6, r0
lsls r6, 1
ldrb r1, [r7, 0x1]
movs r0, 0x3
negs r0, r0
ands r0, r1
orrs r0, r6
strb r0, [r7, 0x1]
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FCC30: .4byte gSaveBlock2Ptr
_080FCC34: .4byte 0x00000844
_080FCC38: .4byte 0x0000082c
thumb_func_end sub_80FCB54
thumb_func_start sub_80FCC3C
sub_80FCC3C: @ 80FCC3C
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
adds r7, r0, 0
mov r8, r1
lsls r2, 24
lsrs r5, r2, 24
ldr r0, _080FCC90 @ =gUnknown_3005E10
ldrb r0, [r0, 0x6]
cmp r0, 0x1
bne _080FCC98
movs r0, 0x1
mov r9, r0
ldr r6, _080FCC94 @ =gUnknown_3007460
ldr r0, [r6]
lsls r4, r5, 5
adds r0, r4
ldrh r0, [r0, 0x18]
bl sub_80FA44C
cmp r0, 0
beq _080FCC78
ldr r1, [r6]
ldrb r0, [r1, 0x7]
asrs r0, r5
mov r2, r9
ands r0, r2
cmp r0, 0
bne _080FCCB0
_080FCC78:
adds r0, r7, 0
movs r1, 0
movs r2, 0xD
bl memset
mov r0, r8
movs r1, 0
movs r2, 0x8
bl memset
b _080FCCE4
.align 2, 0
_080FCC90: .4byte gUnknown_3005E10
_080FCC94: .4byte gUnknown_3007460
_080FCC98:
movs r0, 0
mov r9, r0
ldr r6, _080FCCCC @ =gUnknown_3007460
ldr r0, [r6]
lsls r4, r5, 5
adds r0, r4
ldrh r0, [r0, 0x18]
bl sub_80FA44C
cmp r0, 0
beq _080FCCD0
ldr r1, [r6]
_080FCCB0:
adds r1, r4, r1
adds r1, 0x1A
adds r0, r7, 0
movs r2, 0xD
bl memcpy
ldr r1, [r6]
adds r1, r4, r1
adds r1, 0x29
mov r0, r8
movs r2, 0x8
bl memcpy
b _080FCCE4
.align 2, 0
_080FCCCC: .4byte gUnknown_3007460
_080FCCD0:
adds r0, r7, 0
movs r1, 0
movs r2, 0xD
bl memset
mov r0, r8
movs r1, 0
movs r2, 0x8
bl memset
_080FCCE4:
mov r0, r9
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FCC3C
thumb_func_start sub_80FCCF4
sub_80FCCF4: @ 80FCCF4
push {r4-r7,lr}
adds r3, r0, 0
adds r5, r1, 0
lsls r2, 24
movs r7, 0
ldr r6, _080FCD2C @ =gUnknown_3007460
ldr r0, [r6]
lsrs r4, r2, 19
adds r2, r0, r4
ldrh r1, [r2, 0x18]
ldr r0, _080FCD30 @ =0x00007f7d
cmp r1, r0
bne _080FCD34
adds r1, r2, 0
adds r1, 0x1A
adds r0, r3, 0
movs r2, 0xD
bl memcpy
ldr r1, [r6]
adds r1, r4, r1
adds r1, 0x29
adds r0, r5, 0
movs r2, 0x8
bl memcpy
movs r7, 0x1
b _080FCD48
.align 2, 0
_080FCD2C: .4byte gUnknown_3007460
_080FCD30: .4byte 0x00007f7d
_080FCD34:
adds r0, r3, 0
movs r1, 0
movs r2, 0xD
bl memset
adds r0, r5, 0
movs r1, 0
movs r2, 0x8
bl memset
_080FCD48:
adds r0, r7, 0
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FCCF4
thumb_func_start sub_80FCD50
sub_80FCD50: @ 80FCD50
push {r4,lr}
adds r4, r1, 0
ldr r1, _080FCD6C @ =gUnknown_3005440
movs r2, 0xD
bl memcpy
ldr r1, _080FCD70 @ =gUnknown_3005E00
adds r0, r4, 0
movs r2, 0x8
bl memcpy
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FCD6C: .4byte gUnknown_3005440
_080FCD70: .4byte gUnknown_3005E00
thumb_func_end sub_80FCD50
thumb_func_start CreateWirelessStatusIndicatorSprite
CreateWirelessStatusIndicatorSprite: @ 80FCD74
push {r4,r5,lr}
lsls r0, 24
lsrs r3, r0, 24
lsls r1, 24
lsrs r2, r1, 24
cmp r3, 0
bne _080FCD8A
cmp r2, 0
bne _080FCD8A
movs r3, 0xE7
movs r2, 0x8
_080FCD8A:
ldr r0, _080FCDCC @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x1
bne _080FCDE4
ldr r0, _080FCDD0 @ =gUnknown_843F284
adds r1, r3, 0
movs r3, 0
bl CreateSprite
adds r5, r0, 0
lsls r5, 24
lsrs r5, 24
ldr r0, _080FCDD4 @ =gSprites
lsls r4, r5, 4
adds r4, r5
lsls r4, 2
adds r4, r0
ldr r0, _080FCDD8 @ =0x00001234
strh r0, [r4, 0x3C]
ldr r0, _080FCDDC @ =gUnknown_843F274
ldrh r0, [r0, 0x6]
bl GetSpriteTileStartByTag
strh r0, [r4, 0x3A]
adds r4, 0x3E
ldrb r0, [r4]
movs r1, 0x4
orrs r0, r1
strb r0, [r4]
ldr r0, _080FCDE0 @ =gUnknown_203ACE4
strb r5, [r0]
b _080FCE2A
.align 2, 0
_080FCDCC: .4byte gUnknown_3007460
_080FCDD0: .4byte gUnknown_843F284
_080FCDD4: .4byte gSprites
_080FCDD8: .4byte 0x00001234
_080FCDDC: .4byte gUnknown_843F274
_080FCDE0: .4byte gUnknown_203ACE4
_080FCDE4:
ldr r0, _080FCE30 @ =gUnknown_843F284
adds r1, r3, 0
movs r3, 0
bl CreateSprite
ldr r4, _080FCE34 @ =gUnknown_203ACE4
strb r0, [r4]
ldr r5, _080FCE38 @ =gSprites
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
ldr r1, _080FCE3C @ =0x00001234
strh r1, [r0, 0x3C]
ldr r0, _080FCE40 @ =gUnknown_843F274
ldrh r0, [r0, 0x6]
bl GetSpriteTileStartByTag
ldrb r2, [r4]
lsls r1, r2, 4
adds r1, r2
lsls r1, 2
adds r1, r5
strh r0, [r1, 0x3A]
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r5
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
_080FCE2A:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080FCE30: .4byte gUnknown_843F284
_080FCE34: .4byte gUnknown_203ACE4
_080FCE38: .4byte gSprites
_080FCE3C: .4byte 0x00001234
_080FCE40: .4byte gUnknown_843F274
thumb_func_end CreateWirelessStatusIndicatorSprite
thumb_func_start DestroyWirelessStatusIndicatorSprite
DestroyWirelessStatusIndicatorSprite: @ 80FCE44
push {r4,lr}
ldr r4, _080FCE90 @ =gSprites
ldr r3, _080FCE94 @ =gUnknown_203ACE4
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, r0, r4
movs r0, 0x3C
ldrsh r1, [r2, r0]
ldr r0, _080FCE98 @ =0x00001234
cmp r1, r0
bne _080FCE8A
movs r0, 0
strh r0, [r2, 0x3C]
ldrb r1, [r3]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
bl DestroySprite
ldr r3, _080FCE9C @ =gMain
movs r0, 0x84
lsls r0, 3
adds r3, r0
ldr r0, _080FCEA0 @ =gDummyOamData
ldr r1, [r0]
ldr r2, [r0, 0x4]
str r1, [r3]
str r2, [r3, 0x4]
ldr r1, _080FCEA4 @ =0x070003e8
movs r2, 0x4
bl CpuSet
_080FCE8A:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FCE90: .4byte gSprites
_080FCE94: .4byte gUnknown_203ACE4
_080FCE98: .4byte 0x00001234
_080FCE9C: .4byte gMain
_080FCEA0: .4byte gDummyOamData
_080FCEA4: .4byte 0x070003e8
thumb_func_end DestroyWirelessStatusIndicatorSprite
thumb_func_start LoadWirelessStatusIndicatorSpriteGfx
LoadWirelessStatusIndicatorSpriteGfx: @ 80FCEA8
push {r4,lr}
ldr r4, _080FCED4 @ =gUnknown_843F274
ldrh r0, [r4, 0x6]
bl GetSpriteTileStartByTag
lsls r0, 16
ldr r1, _080FCED8 @ =0xffff0000
cmp r0, r1
bne _080FCEC0
adds r0, r4, 0
bl LoadCompressedSpriteSheet
_080FCEC0:
ldr r0, _080FCEDC @ =gUnknown_843F27C
bl LoadSpritePalette
ldr r1, _080FCEE0 @ =gUnknown_203ACE4
movs r0, 0xFF
strb r0, [r1]
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080FCED4: .4byte gUnknown_843F274
_080FCED8: .4byte 0xffff0000
_080FCEDC: .4byte gUnknown_843F27C
_080FCEE0: .4byte gUnknown_203ACE4
thumb_func_end LoadWirelessStatusIndicatorSpriteGfx
thumb_func_start sub_80FCEE4
sub_80FCEE4: @ 80FCEE4
push {r4,lr}
ldr r1, _080FCF04 @ =gUnknown_3007460
ldr r0, [r1]
ldrb r2, [r0, 0x2]
movs r3, 0
movs r4, 0x1
_080FCEF0:
adds r0, r2, 0
ands r0, r4
cmp r0, 0
beq _080FCF08
ldr r0, [r1]
adds r0, 0xA
adds r0, r3
ldrb r0, [r0]
b _080FCF16
.align 2, 0
_080FCF04: .4byte gUnknown_3007460
_080FCF08:
lsrs r2, 1
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x3
bls _080FCEF0
movs r0, 0
_080FCF16:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_80FCEE4
thumb_func_start sub_80FCF1C
sub_80FCF1C: @ 80FCF1C
push {lr}
adds r2, r0, 0
movs r3, 0x32
ldrsh r0, [r2, r3]
cmp r0, r1
beq _080FCF30
movs r0, 0
strh r1, [r2, 0x32]
strh r0, [r2, 0x34]
strh r0, [r2, 0x36]
_080FCF30:
pop {r0}
bx r0
thumb_func_end sub_80FCF1C
thumb_func_start sub_80FCF34
sub_80FCF34: @ 80FCF34
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r1, _080FCF78 @ =gUnknown_203ACE4
ldrb r0, [r1]
cmp r0, 0xFF
bne _080FCF44
b _080FD106
_080FCF44:
ldr r2, _080FCF7C @ =gSprites
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r2, r0, r2
movs r0, 0x3C
ldrsh r1, [r2, r0]
ldr r0, _080FCF80 @ =0x00001234
cmp r1, r0
beq _080FCF5C
b _080FD106
_080FCF5C:
adds r6, r2, 0
movs r5, 0xFF
movs r4, 0
ldr r0, _080FCF84 @ =gUnknown_3007460
ldr r0, [r0]
ldrb r0, [r0]
cmp r0, 0x1
bne _080FCFB6
adds r7, r6, 0
adds r7, 0x28
movs r1, 0x29
adds r1, r6
mov r8, r1
b _080FCFA6
.align 2, 0
_080FCF78: .4byte gUnknown_203ACE4
_080FCF7C: .4byte gSprites
_080FCF80: .4byte 0x00001234
_080FCF84: .4byte gUnknown_3007460
_080FCF88:
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
adds r0, r4, 0
bl sub_80FCADC
lsls r0, 24
lsrs r0, 24
cmp r5, r0
bcc _080FCFA6
adds r0, r4, 0
bl sub_80FCADC
lsls r0, 24
lsrs r5, r0, 24
_080FCFA6:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
subs r0, 0x1
cmp r4, r0
blt _080FCF88
b _080FCFC8
_080FCFB6:
bl sub_80FCEE4
lsls r0, 24
lsrs r5, r0, 24
adds r7, r6, 0
adds r7, 0x28
movs r2, 0x29
adds r2, r6
mov r8, r2
_080FCFC8:
bl sub_80FC1B0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FCFD8
movs r0, 0x4
b _080FD006
_080FCFD8:
cmp r5, 0x18
bhi _080FCFE0
movs r0, 0x3
b _080FD006
_080FCFE0:
adds r0, r5, 0
subs r0, 0x19
lsls r0, 24
lsrs r0, 24
cmp r0, 0x65
bhi _080FCFF0
movs r0, 0x2
b _080FD006
_080FCFF0:
adds r0, r5, 0
subs r0, 0x7F
lsls r0, 24
lsrs r0, 24
cmp r0, 0x65
bhi _080FD000
movs r0, 0x1
b _080FD006
_080FD000:
cmp r5, 0xE4
bls _080FD008
movs r0, 0
_080FD006:
strh r0, [r6, 0x2E]
_080FD008:
movs r3, 0x2E
ldrsh r1, [r6, r3]
movs r2, 0x30
ldrsh r0, [r6, r2]
cmp r1, r0
beq _080FD01E
adds r0, r6, 0
bl sub_80FCF1C
ldrh r0, [r6, 0x2E]
strh r0, [r6, 0x30]
_080FD01E:
movs r0, 0x32
ldrsh r1, [r6, r0]
ldr r2, [r6, 0x8]
lsls r1, 2
adds r1, r2
movs r3, 0x36
ldrsh r0, [r6, r3]
ldr r1, [r1]
lsls r0, 2
adds r0, r1
ldr r0, [r0]
lsls r0, 10
lsrs r0, 26
movs r3, 0x34
ldrsh r1, [r6, r3]
cmp r0, r1
bge _080FD06C
ldrh r0, [r6, 0x36]
adds r0, 0x1
movs r3, 0
strh r0, [r6, 0x36]
strh r3, [r6, 0x34]
movs r1, 0x32
ldrsh r0, [r6, r1]
lsls r0, 2
adds r0, r2
movs r2, 0x36
ldrsh r1, [r6, r2]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
movs r0, 0
ldrsh r1, [r1, r0]
movs r0, 0x2
negs r0, r0
cmp r1, r0
bne _080FD072
strh r3, [r6, 0x36]
b _080FD072
_080FD06C:
ldrh r0, [r6, 0x34]
adds r0, 0x1
strh r0, [r6, 0x34]
_080FD072:
ldr r4, _080FD110 @ =gMain
movs r1, 0x84
lsls r1, 3
adds r0, r4, r1
ldr r1, _080FD114 @ =gUnknown_843F204
ldr r2, [r1, 0x4]
ldr r1, [r1]
str r1, [r0]
str r2, [r0, 0x4]
movs r3, 0x20
ldrsh r2, [r6, r3]
movs r1, 0
ldrsb r1, [r7, r1]
adds r2, r1
ldr r1, _080FD118 @ =0x00000422
adds r5, r4, r1
ldr r3, _080FD11C @ =0x000001ff
adds r1, r3, 0
ands r2, r1
ldrh r3, [r5]
ldr r1, _080FD120 @ =0xfffffe00
ands r1, r3
orrs r1, r2
strh r1, [r5]
ldrh r1, [r6, 0x22]
mov r2, r8
ldrb r2, [r2]
adds r1, r2
strb r1, [r0]
ldrb r2, [r6, 0x5]
ldr r3, _080FD124 @ =0x00000425
adds r5, r4, r3
lsrs r2, 4
lsls r2, 4
ldrb r3, [r5]
movs r1, 0xF
ands r1, r3
orrs r1, r2
strb r1, [r5]
movs r1, 0x32
ldrsh r2, [r6, r1]
ldr r1, [r6, 0x8]
lsls r2, 2
adds r2, r1
movs r3, 0x36
ldrsh r1, [r6, r3]
ldr r2, [r2]
lsls r1, 2
adds r1, r2
ldrh r2, [r1]
ldrh r6, [r6, 0x3A]
adds r2, r6
ldr r1, _080FD128 @ =0x00000424
adds r4, r1
ldr r3, _080FD12C @ =0x000003ff
adds r1, r3, 0
ands r2, r1
ldrh r3, [r4]
ldr r1, _080FD130 @ =0xfffffc00
ands r1, r3
orrs r1, r2
strh r1, [r4]
ldr r1, _080FD134 @ =0x070003e8
movs r2, 0x4
bl CpuSet
bl sub_80FB9F4
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080FD106
bl DestroyWirelessStatusIndicatorSprite
_080FD106:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FD110: .4byte gMain
_080FD114: .4byte gUnknown_843F204
_080FD118: .4byte 0x00000422
_080FD11C: .4byte 0x000001ff
_080FD120: .4byte 0xfffffe00
_080FD124: .4byte 0x00000425
_080FD128: .4byte 0x00000424
_080FD12C: .4byte 0x000003ff
_080FD130: .4byte 0xfffffc00
_080FD134: .4byte 0x070003e8
thumb_func_end sub_80FCF34
thumb_func_start sub_80FD138
sub_80FD138: @ 80FD138
push {r4,r5,lr}
adds r4, r0, 0
str r1, [r4]
movs r3, 0
ldrb r0, [r2]
cmp r0, 0xFF
beq _080FD15C
adds r5, r4, 0x4
_080FD148:
adds r1, r5, r3
ldrb r0, [r2]
strb r0, [r1]
adds r2, 0x1
adds r3, 0x1
cmp r3, 0x6
bgt _080FD15C
ldrb r0, [r2]
cmp r0, 0xFF
bne _080FD148
_080FD15C:
adds r0, r4, 0x4
adds r0, r3
movs r1, 0xFF
strb r1, [r0]
pop {r4,r5}
pop {r0}
bx r0
thumb_func_end sub_80FD138
thumb_func_start sub_80FD16C
sub_80FD16C: @ 80FD16C
push {lr}
movs r2, 0
movs r1, 0x7
_080FD172:
strb r2, [r0]
adds r0, 0x1
subs r1, 0x1
cmp r1, 0
bge _080FD172
pop {r0}
bx r0
thumb_func_end sub_80FD16C
thumb_func_start sub_80FD180
sub_80FD180: @ 80FD180
push {lr}
adds r1, r0, 0
movs r2, 0
_080FD186:
ldrb r0, [r1]
adds r1, 0x1
cmp r0, 0
beq _080FD192
movs r0, 0
b _080FD19A
_080FD192:
adds r2, 0x1
cmp r2, 0x7
ble _080FD186
movs r0, 0x1
_080FD19A:
pop {r1}
bx r1
thumb_func_end sub_80FD180
thumb_func_start sub_80FD1A0
sub_80FD1A0: @ 80FD1A0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x20
ldr r0, _080FD1C4 @ =gWirelessCommType
ldrb r0, [r0]
cmp r0, 0
bne _080FD1B6
b _080FD318
_080FD1B6:
movs r0, 0xF0
bl AllocZeroed
str r0, [sp, 0x14]
movs r4, 0
b _080FD22C
.align 2, 0
_080FD1C4: .4byte gWirelessCommType
_080FD1C8:
lsls r2, r4, 2
mov r0, sp
adds r1, r0, r2
movs r0, 0x1
negs r0, r0
str r0, [r1]
movs r5, 0
mov r8, r2
lsls r0, r4, 3
adds r1, r4, 0x1
mov r9, r1
subs r0, r4
lsls r0, 2
str r0, [sp, 0x1C]
ldr r2, _080FD24C @ =gLinkPlayers + 8
mov r10, r2
ldr r6, _080FD250 @ =0x00003ba8
movs r4, 0
mov r0, r10
subs r0, 0x4
ldr r7, [sp, 0x1C]
adds r3, r7, r0
_080FD1F4:
ldrh r1, [r3]
ldr r0, _080FD254 @ =gSaveBlock1Ptr
ldr r2, [r0]
ldr r7, _080FD250 @ =0x00003ba8
adds r0, r2, r7
adds r0, r4
ldr r0, [r0]
cmp r1, r0
bne _080FD220
adds r1, r2, r6
adds r1, 0x4
ldr r0, [sp, 0x1C]
add r0, r10
str r3, [sp, 0x18]
bl StringCompare
ldr r3, [sp, 0x18]
cmp r0, 0
bne _080FD220
mov r0, sp
add r0, r8
str r5, [r0]
_080FD220:
adds r6, 0xC
adds r4, 0xC
adds r5, 0x1
cmp r5, 0x13
ble _080FD1F4
mov r4, r9
_080FD22C:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r4, r0
blt _080FD1C8
movs r0, 0
mov r8, r0
movs r4, 0
ldr r1, _080FD254 @ =gSaveBlock1Ptr
mov r9, r1
mov r7, sp
movs r5, 0
ldr r6, [sp, 0x14]
b _080FD2A4
.align 2, 0
_080FD24C: .4byte gLinkPlayers + 8
_080FD250: .4byte 0x00003ba8
_080FD254: .4byte gSaveBlock1Ptr
_080FD258:
bl GetMultiplayerId
lsls r0, 24
lsrs r0, 24
cmp r4, r0
beq _080FD29E
ldr r2, _080FD328 @ =gLinkPlayers
adds r0, r5, r2
ldrh r0, [r0, 0x1A]
cmp r0, 0x1
beq _080FD29E
adds r0, r2, 0x4
adds r0, r5, r0
ldrh r1, [r0]
adds r2, 0x8
adds r2, r5, r2
adds r0, r6, 0
bl sub_80FD138
ldr r1, [r7]
cmp r1, 0
blt _080FD298
lsls r0, r1, 1
adds r0, r1
lsls r0, 2
mov r2, r9
ldr r1, [r2]
adds r0, r1
ldr r1, _080FD32C @ =0x00003bac
adds r0, r1
bl sub_80FD16C
_080FD298:
adds r6, 0xC
movs r2, 0x1
add r8, r2
_080FD29E:
adds r7, 0x4
adds r5, 0x1C
adds r4, 0x1
_080FD2A4:
bl GetLinkPlayerCount
lsls r0, 24
lsrs r0, 24
cmp r4, r0
blt _080FD258
movs r4, 0
ldr r7, _080FD330 @ =gSaveBlock1Ptr
mov r9, r7
ldr r6, _080FD334 @ =0x00003ba8
movs r7, 0
mov r1, r8
lsls r0, r1, 1
add r0, r8
lsls r0, 2
ldr r2, [sp, 0x14]
adds r5, r0, r2
_080FD2C6:
mov r1, r9
ldr r0, [r1]
adds r0, r6
adds r0, 0x4
bl sub_80FD180
cmp r0, 0
bne _080FD2F8
mov r0, r9
ldr r2, [r0]
ldr r1, _080FD334 @ =0x00003ba8
adds r0, r2, r1
adds r0, r7
ldr r1, [r0]
adds r2, r6
adds r2, 0x4
adds r0, r5, 0
bl sub_80FD138
adds r5, 0xC
movs r2, 0x1
add r8, r2
mov r0, r8
cmp r0, 0x13
bgt _080FD302
_080FD2F8:
adds r6, 0xC
adds r7, 0xC
adds r4, 0x1
cmp r4, 0x13
ble _080FD2C6
_080FD302:
ldr r0, _080FD330 @ =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, _080FD334 @ =0x00003ba8
adds r0, r1
ldr r1, [sp, 0x14]
movs r2, 0xF0
bl memcpy
ldr r0, [sp, 0x14]
bl Free
_080FD318:
add sp, 0x20
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080FD328: .4byte gLinkPlayers
_080FD32C: .4byte 0x00003bac
_080FD330: .4byte gSaveBlock1Ptr
_080FD334: .4byte 0x00003ba8
thumb_func_end sub_80FD1A0
thumb_func_start sub_80FD338
sub_80FD338: @ 80FD338
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
mov r9, r1
lsls r0, 16
lsrs r0, 16
mov r8, r0
movs r7, 0
ldr r6, _080FD374 @ =gSaveBlock1Ptr
ldr r4, _080FD378 @ =0x00003ba8
movs r5, 0
_080FD350:
ldr r0, [r6]
adds r0, r4
adds r0, 0x4
mov r1, r9
movs r2, 0x7
bl StringCompareN
cmp r0, 0
bne _080FD37C
ldr r0, [r6]
ldr r1, _080FD378 @ =0x00003ba8
adds r0, r1
adds r0, r5
ldr r0, [r0]
cmp r0, r8
bne _080FD37C
movs r0, 0x1
b _080FD396
.align 2, 0
_080FD374: .4byte gSaveBlock1Ptr
_080FD378: .4byte 0x00003ba8
_080FD37C:
ldr r0, [r6]
adds r0, r4
adds r0, 0x4
bl sub_80FD180
cmp r0, 0
bne _080FD394
adds r4, 0xC
adds r5, 0xC
adds r7, 0x1
cmp r7, 0x13
ble _080FD350
_080FD394:
movs r0, 0
_080FD396:
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_80FD338
.align 2, 0 @ Don't pad with nop.