.include "asm/macros.inc"

	.syntax unified

	.text

	thumb_func_start rfu_initializeAPI
rfu_initializeAPI: @ 82E3EB4
	push {r4-r7,lr}
	adds r4, r0, 0
	mov r12, r2
	lsls r1, 16
	lsrs r2, r1, 16
	lsls r3, 24
	lsrs r7, r3, 24
	movs r0, 0xF0
	lsls r0, 20
	ands r0, r4
	movs r1, 0x80
	lsls r1, 18
	cmp r0, r1
	bne _082E3ED4
	cmp r7, 0
	bne _082E3EDC
_082E3ED4:
	movs r0, 0x3
	ands r0, r4
	cmp r0, 0
	beq _082E3EE0
_082E3EDC:
	movs r0, 0x2
	b _082E3FB8
_082E3EE0:
	cmp r7, 0
	beq _082E3EEC
	ldr r3, _082E3EE8
	b _082E3EEE
	.align 2, 0
_082E3EE8: .4byte 0x00000e64
_082E3EEC:
	ldr r3, _082E3EF8
_082E3EEE:
	cmp r2, r3
	bcs _082E3EFC
	movs r0, 0x1
	b _082E3FB8
	.align 2, 0
_082E3EF8: .4byte 0x00000504
_082E3EFC:
	ldr r0, _082E3FC0
	str r4, [r0]
	ldr r1, _082E3FC4
	adds r0, r4, 0
	adds r0, 0xB4
	str r0, [r1]
	ldr r1, _082E3FC8
	adds r0, 0x28
	str r0, [r1]
	ldr r2, _082E3FCC
	movs r1, 0xDE
	lsls r1, 1
	adds r0, r4, r1
	str r0, [r2]
	ldr r1, _082E3FD0
	movs r3, 0xDF
	lsls r3, 2
	adds r0, r4, r3
	str r0, [r1]
	movs r5, 0x1
	adds r6, r2, 0
	adds r4, r1, 0
_082E3F28:
	lsls r2, r5, 2
	adds r3, r2, r6
	subs r1, r5, 0x1
	lsls r1, 2
	adds r0, r1, r6
	ldr r0, [r0]
	adds r0, 0x70
	str r0, [r3]
	adds r2, r4
	adds r1, r4
	ldr r0, [r1]
	adds r0, 0x1C
	str r0, [r2]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _082E3F28
	ldr r0, _082E3FC8
	ldr r1, [r0]
	adds r1, 0xDC
	ldr r4, _082E3FD0
	ldr r0, [r4, 0xC]
	adds r0, 0x1C
	str r0, [r1]
	mov r1, r12
	adds r2, r7, 0
	bl STWI_init_all
	bl rfu_STC_clearAPIVariables
	movs r5, 0
	ldr r3, _082E3FCC
	movs r2, 0
_082E3F6C:
	lsls r1, r5, 2
	adds r0, r1, r3
	ldr r0, [r0]
	str r2, [r0, 0x68]
	str r2, [r0, 0x6C]
	adds r1, r4
	ldr r0, [r1]
	str r2, [r0, 0x14]
	str r2, [r0, 0x18]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _082E3F6C
	ldr r4, _082E3FD4
	movs r0, 0x2
	negs r0, r0
	ands r4, r0
	ldr r1, _082E3FC8
	ldr r0, [r1]
	adds r2, r0, 0
	adds r2, 0x8
	movs r3, 0x2F
	ldr r5, _082E3FD8
_082E3F9C:
	ldrh r0, [r4]
	strh r0, [r2]
	adds r4, 0x2
	adds r2, 0x2
	subs r0, r3, 0x1
	lsls r0, 16
	lsrs r3, r0, 16
	cmp r3, r5
	bne _082E3F9C
	ldr r1, [r1]
	adds r0, r1, 0
	adds r0, 0x9
	str r0, [r1, 0x4]
	movs r0, 0
_082E3FB8:
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_082E3FC0: .4byte gUnknown_03007890
_082E3FC4: .4byte gUnknown_03007894
_082E3FC8: .4byte gUnknown_03007898
_082E3FCC: .4byte gUnknown_03007880
_082E3FD0: .4byte gUnknown_03007870
_082E3FD4: .4byte sub_82E53F4
_082E3FD8: .4byte 0x0000ffff
	thumb_func_end rfu_initializeAPI

	thumb_func_start rfu_STC_clearAPIVariables
rfu_STC_clearAPIVariables: @ 82E3FDC
	push {r4-r7,lr}
	sub sp, 0x4
	ldr r1, _082E4050
	ldrh r0, [r1]
	adds r7, r0, 0
	movs r6, 0
	strh r6, [r1]
	ldr r5, _082E4054
	ldr r1, [r5]
	ldrb r4, [r1]
	mov r0, sp
	strh r6, [r0]
	ldr r2, _082E4058
	bl CpuSet
	ldr r2, [r5]
	movs r0, 0x8
	ands r4, r0
	movs r1, 0
	strb r4, [r2]
	mov r0, sp
	adds r0, 0x2
	strh r1, [r0]
	ldr r4, _082E405C
	ldr r1, [r4]
	ldr r2, _082E4060
	bl CpuSet
	ldr r1, [r4]
	movs r0, 0x4
	strb r0, [r1, 0x9]
	ldr r0, [r5]
	strb r6, [r0, 0x6]
	ldr r1, [r4]
	movs r0, 0xFF
	strb r0, [r1]
	bl rfu_clearAllSlot
	ldr r0, [r5]
	strb r6, [r0, 0x9]
	movs r2, 0
	movs r3, 0
_082E4030:
	ldr r0, [r5]
	lsls r1, r2, 1
	adds r0, 0x12
	adds r0, r1
	strh r3, [r0]
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _082E4030
	ldr r0, _082E4050
	strh r7, [r0]
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E4050: .4byte 0x04000208
_082E4054: .4byte gUnknown_03007894
_082E4058: .4byte 0x01000014
_082E405C: .4byte gUnknown_03007890
_082E4060: .4byte 0x0100005a
	thumb_func_end rfu_STC_clearAPIVariables

	thumb_func_start rfu_REQ_PARENT_resumeRetransmitAndChange
rfu_REQ_PARENT_resumeRetransmitAndChange: @ 82E4064
	push {lr}
	ldr r0, _082E4074
	bl STWI_set_Callback_M
	bl STWI_send_ResumeRetransmitAndChangeREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E4074: .4byte rfu_STC_REQ_callback
	thumb_func_end rfu_REQ_PARENT_resumeRetransmitAndChange

	thumb_func_start rfu_UNI_PARENT_getDRAC_ACK
rfu_UNI_PARENT_getDRAC_ACK: @ 82E4078
	push {r4,r5,lr}
	adds r4, r0, 0
	movs r0, 0
	strb r0, [r4]
	ldr r5, _082E4090
	ldr r0, [r5]
	ldrb r0, [r0]
	cmp r0, 0x1
	beq _082E4094
	movs r0, 0xC0
	lsls r0, 2
	b _082E40BA
	.align 2, 0
_082E4090: .4byte gUnknown_03007890
_082E4094:
	bl rfu_getSTWIRecvBuffer
	adds r1, r0, 0
	ldrb r0, [r1]
	cmp r0, 0x28
	beq _082E40A4
	cmp r0, 0x36
	bne _082E40B8
_082E40A4:
	ldrb r0, [r1, 0x1]
	cmp r0, 0
	bne _082E40B0
	ldr r0, [r5]
	ldrb r0, [r0, 0x2]
	b _082E40B2
_082E40B0:
	ldrb r0, [r1, 0x4]
_082E40B2:
	strb r0, [r4]
	movs r0, 0
	b _082E40BA
_082E40B8:
	movs r0, 0x10
_082E40BA:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end rfu_UNI_PARENT_getDRAC_ACK

	thumb_func_start rfu_setTimerInterrupt
rfu_setTimerInterrupt: @ 82E40C0
	push {lr}
	adds r2, r0, 0
	adds r0, r1, 0
	lsls r2, 24
	lsrs r2, 24
	adds r1, r2, 0
	bl STWI_init_timer
	pop {r0}
	bx r0
	thumb_func_end rfu_setTimerInterrupt

	thumb_func_start rfu_getSTWIRecvBuffer
rfu_getSTWIRecvBuffer: @ 82E40D4
	ldr r0, _082E40E0
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	bx lr
	.align 2, 0
_082E40E0: .4byte gUnknown_03007898
	thumb_func_end rfu_getSTWIRecvBuffer

	thumb_func_start rfu_setMSCCallback
rfu_setMSCCallback: @ 82E40E4
	push {lr}
	bl STWI_set_Callback_S
	pop {r0}
	bx r0
	thumb_func_end rfu_setMSCCallback

	thumb_func_start rfu_setREQCallback
rfu_setREQCallback: @ 82E40F0
	push {lr}
	adds r1, r0, 0
	ldr r0, _082E4108
	ldr r0, [r0]
	str r1, [r0]
	negs r0, r1
	orrs r0, r1
	lsrs r0, 31
	bl rfu_enableREQCallback
	pop {r0}
	bx r0
	.align 2, 0
_082E4108: .4byte gUnknown_03007898
	thumb_func_end rfu_setREQCallback

	thumb_func_start rfu_enableREQCallback
rfu_enableREQCallback: @ 82E410C
	push {lr}
	lsls r0, 24
	cmp r0, 0
	beq _082E4124
	ldr r0, _082E4120
	ldr r2, [r0]
	ldrb r1, [r2]
	movs r0, 0x8
	orrs r0, r1
	b _082E412E
	.align 2, 0
_082E4120: .4byte gUnknown_03007894
_082E4124:
	ldr r0, _082E4134
	ldr r2, [r0]
	ldrb r1, [r2]
	movs r0, 0xF7
	ands r0, r1
_082E412E:
	strb r0, [r2]
	pop {r0}
	bx r0
	.align 2, 0
_082E4134: .4byte gUnknown_03007894
	thumb_func_end rfu_enableREQCallback

	thumb_func_start rfu_STC_REQ_callback
rfu_STC_REQ_callback: @ 82E4138
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 16
	lsrs r4, r1, 16
	ldr r0, _082E416C
	bl STWI_set_Callback_M
	ldr r0, _082E4170
	ldr r0, [r0]
	strh r4, [r0, 0x1C]
	ldrb r1, [r0]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _082E4166
	ldr r0, _082E4174
	ldr r0, [r0]
	ldr r2, [r0]
	adds r0, r5, 0
	adds r1, r4, 0
	bl _call_via_r2
_082E4166:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E416C: .4byte rfu_CB_defaultCallback
_082E4170: .4byte gUnknown_03007894
_082E4174: .4byte gUnknown_03007898
	thumb_func_end rfu_STC_REQ_callback

	thumb_func_start rfu_CB_defaultCallback
rfu_CB_defaultCallback: @ 82E4178
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 16
	lsrs r3, r1, 16
	cmp r0, 0xFF
	bne _082E41D4
	ldr r0, _082E41DC
	ldr r0, [r0]
	ldrb r1, [r0]
	movs r0, 0x8
	ands r0, r1
	cmp r0, 0
	beq _082E41A2
	ldr r0, _082E41E0
	ldr r0, [r0]
	ldr r2, [r0]
	movs r0, 0xFF
	adds r1, r3, 0
	bl _call_via_r2
_082E41A2:
	ldr r0, _082E41E4
	ldr r0, [r0]
	ldrb r1, [r0, 0x2]
	ldrb r0, [r0, 0x3]
	adds r5, r0, 0
	orrs r5, r1
	movs r4, 0
_082E41B0:
	adds r0, r5, 0
	asrs r0, r4
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _082E41C2
	adds r0, r4, 0
	bl rfu_STC_removeLinkData
_082E41C2:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E41B0
	ldr r0, _082E41E4
	ldr r1, [r0]
	movs r0, 0xFF
	strb r0, [r1]
_082E41D4:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E41DC: .4byte gUnknown_03007894
_082E41E0: .4byte gUnknown_03007898
_082E41E4: .4byte gUnknown_03007890
	thumb_func_end rfu_CB_defaultCallback

	thumb_func_start rfu_waitREQComplete
rfu_waitREQComplete: @ 82E41E8
	push {lr}
	bl STWI_poll_CommandEnd
	ldr r0, _082E41F8
	ldr r0, [r0]
	ldrh r0, [r0, 0x1C]
	pop {r1}
	bx r1
	.align 2, 0
_082E41F8: .4byte gUnknown_03007894
	thumb_func_end rfu_waitREQComplete

	thumb_func_start rfu_REQ_RFUStatus
rfu_REQ_RFUStatus: @ 82E41FC
	push {lr}
	ldr r0, _082E420C
	bl STWI_set_Callback_M
	bl STWI_send_SystemStatusREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E420C: .4byte rfu_STC_REQ_callback
	thumb_func_end rfu_REQ_RFUStatus

	thumb_func_start rfu_getRFUStatus
rfu_getRFUStatus: @ 82E4210
	push {r4,r5,lr}
	adds r4, r0, 0
	ldr r5, _082E4228
	ldr r0, [r5]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x93
	beq _082E422C
	movs r0, 0x10
	b _082E4246
	.align 2, 0
_082E4228: .4byte gUnknown_03007898
_082E422C:
	bl STWI_poll_CommandEnd
	lsls r0, 16
	cmp r0, 0
	bne _082E4240
	ldr r0, [r5]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x7]
	b _082E4242
_082E4240:
	movs r0, 0xFF
_082E4242:
	strb r0, [r4]
	movs r0, 0
_082E4246:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end rfu_getRFUStatus

	thumb_func_start sub_82E424C
sub_82E424C: @ 82E424C
	push {lr}
	ldr r2, _082E4254
	ldr r3, _082E4258
	b _082E4266
	.align 2, 0
_082E4254: .4byte gUnknown_089A324C
_082E4258: .4byte gDma3Requests + 0xE0
	thumb_func_end sub_82E424C

	thumb_func_start sub_82E425C
sub_82E425C: @ 82E425C
	ldrb r0, [r3]
	adds r3, 0x1
	adds r2, 0x1
	cmp r1, r0
	bne _082E42BC
_082E4266:
	ldrb r1, [r2]
	cmp r1, 0
	bne sub_82E425C
	movs r2, 0xC0
	lsls r2, 18
	movs r3, 0
	movs r1, 0
_082E4274:
	ldrh r0, [r2]
	adds r0, r3, r0
	lsls r0, 16
	lsrs r3, r0, 16
	adds r2, 0x2
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x59
	bls _082E4274
	ldr r0, _082E42B0
	ldrh r0, [r0]
	cmp r3, r0
	bne _082E42BC
	movs r0, 0xC0
	lsls r0, 18
	ldr r1, _082E42B4
	ldr r1, [r1]
	movs r2, 0x5A
	bl CpuSet
	ldr r0, _082E42B8
	ldr r2, [r0]
	ldrb r1, [r2]
	movs r0, 0x80
	orrs r0, r1
	strb r0, [r2]
	movs r0, 0
	b _082E42BE
	.align 2, 0
_082E42B0: .4byte gDma3Requests + 0xEA
_082E42B4: .4byte gUnknown_03007890
_082E42B8: .4byte gUnknown_03007894
_082E42BC:
	movs r0, 0x1
_082E42BE:
	pop {r1}
	bx r1
	thumb_func_end sub_82E425C

	thumb_func_start rfu_REQ_stopMode
rfu_REQ_stopMode: @ 82E42C4
	push {lr}
	ldr r0, _082E42E4
	ldrh r0, [r0]
	cmp r0, 0
	bne _082E42EC
	movs r0, 0x3D
	movs r1, 0x6
	bl rfu_STC_REQ_callback
	ldr r0, _082E42E8
	ldr r1, [r0]
	ldrh r0, [r1, 0x12]
	movs r0, 0x6
	strh r0, [r1, 0x12]
	b _082E4362
	.align 2, 0
_082E42E4: .4byte 0x04000208
_082E42E8: .4byte gRfuState
_082E42EC:
	bl AgbRFU_SoftReset
	bl rfu_STC_clearAPIVariables
	movs r0, 0x8
	bl sub_82E6D6C
	ldr r1, _082E433C
	cmp r0, r1
	bne _082E4350
	ldr r0, _082E4340
	ldr r0, [r0]
	ldrb r0, [r0, 0xA]
	lsls r0, 2
	ldr r2, _082E4344
	adds r1, r0, r2
	movs r0, 0
	str r0, [r1]
	movs r0, 0x83
	lsls r0, 16
	str r0, [r1]
	ldr r0, [r1]
	lsls r0, 16
	ldr r2, _082E4348
	ldr r3, _082E434C
	cmp r0, r2
	bhi _082E432A
_082E4322:
	ldr r0, [r1]
	lsls r0, 16
	cmp r0, r2
	bls _082E4322
_082E432A:
	movs r0, 0
	str r0, [r1]
	adds r0, r3, 0
	bl STWI_set_Callback_M
	bl STWI_send_StopModeREQ
	b _082E4362
	.align 2, 0
_082E433C: .4byte 0x00008001
_082E4340: .4byte gRfuState
_082E4344: .4byte 0x04000100
_082E4348: .4byte 0x0105ffff
_082E434C: .4byte rfu_CB_stopMode
_082E4350:
	ldr r1, _082E4368
	movs r2, 0x80
	lsls r2, 6
	adds r0, r2, 0
	strh r0, [r1]
	movs r0, 0x3D
	movs r1, 0
	bl rfu_STC_REQ_callback
_082E4362:
	pop {r0}
	bx r0
	.align 2, 0
_082E4368: .4byte 0x04000128
	thumb_func_end rfu_REQ_stopMode

	thumb_func_start rfu_CB_stopMode
rfu_CB_stopMode: @ 82E436C
	push {r4,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 16
	lsrs r1, 16
	adds r2, r1, 0
	cmp r2, 0
	bne _082E4386
	ldr r1, _082E4394
	movs r4, 0x80
	lsls r4, 6
	adds r0, r4, 0
	strh r0, [r1]
_082E4386:
	adds r0, r3, 0
	adds r1, r2, 0
	bl rfu_STC_REQ_callback
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_082E4394: .4byte 0x04000128
	thumb_func_end rfu_CB_stopMode

	thumb_func_start rfu_REQBN_softReset_and_checkID
rfu_REQBN_softReset_and_checkID: @ 82E4398
	push {lr}
	ldr r0, _082E43A8
	ldrh r0, [r0]
	cmp r0, 0
	bne _082E43AC
	movs r0, 0x1
	negs r0, r0
	b _082E43CC
	.align 2, 0
_082E43A8: .4byte 0x04000208
_082E43AC:
	bl AgbRFU_SoftReset
	bl rfu_STC_clearAPIVariables
	movs r0, 0x1E
	bl sub_82E6D6C
	adds r2, r0, 0
	cmp r2, 0
	bne _082E43CA
	ldr r1, _082E43D0
	movs r3, 0x80
	lsls r3, 6
	adds r0, r3, 0
	strh r0, [r1]
_082E43CA:
	adds r0, r2, 0
_082E43CC:
	pop {r1}
	bx r1
	.align 2, 0
_082E43D0: .4byte 0x04000128
	thumb_func_end rfu_REQBN_softReset_and_checkID

	thumb_func_start rfu_REQ_reset
rfu_REQ_reset: @ 82E43D4
	push {lr}
	ldr r0, _082E43E4
	bl STWI_set_Callback_M
	bl STWI_send_ResetREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E43E4: .4byte rfu_CB_reset
	thumb_func_end rfu_REQ_reset

	thumb_func_start rfu_CB_reset
rfu_CB_reset: @ 82E43E8
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 16
	lsrs r1, 16
	adds r4, r1, 0
	cmp r4, 0
	bne _082E43FC
	bl rfu_STC_clearAPIVariables
_082E43FC:
	adds r0, r5, 0
	adds r1, r4, 0
	bl rfu_STC_REQ_callback
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end rfu_CB_reset

	thumb_func_start rfu_REQ_configSystem
rfu_REQ_configSystem: @ 82E440C
	push {r4-r6,lr}
	adds r4, r0, 0
	adds r5, r1, 0
	lsls r4, 16
	lsrs r4, 16
	lsls r5, 24
	lsrs r5, 24
	lsls r2, 24
	lsrs r6, r2, 24
	ldr r0, _082E4444
	bl STWI_set_Callback_M
	movs r0, 0x3
	ands r4, r0
	movs r0, 0x3C
	orrs r4, r0
	adds r0, r4, 0
	adds r1, r5, 0
	adds r2, r6, 0
	bl STWI_send_SystemConfigREQ
	cmp r6, 0
	bne _082E444C
	ldr r0, _082E4448
	ldr r1, [r0]
	movs r0, 0x1
	strh r0, [r1, 0x1A]
	b _082E4466
	.align 2, 0
_082E4444: .4byte rfu_STC_REQ_callback
_082E4448: .4byte gUnknown_03007894
_082E444C:
	ldr r5, _082E446C
	ldrh r4, [r5]
	movs r0, 0
	strh r0, [r5]
	movs r0, 0x96
	lsls r0, 2
	adds r1, r6, 0
	bl Div
	ldr r1, _082E4470
	ldr r1, [r1]
	strh r0, [r1, 0x1A]
	strh r4, [r5]
_082E4466:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_082E446C: .4byte 0x04000208
_082E4470: .4byte gUnknown_03007894
	thumb_func_end rfu_REQ_configSystem

	thumb_func_start rfu_REQ_configGameData
rfu_REQ_configGameData: @ 82E4474
	push {r4-r7,lr}
	sub sp, 0x10
	adds r4, r2, 0
	adds r7, r3, 0
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r2, r1, 16
	adds r5, r4, 0
	mov r0, sp
	strb r1, [r0]
	lsrs r2, 24
	strb r2, [r0, 0x1]
	cmp r6, 0
	beq _082E449A
	movs r1, 0x80
	orrs r2, r1
	movs r1, 0
	orrs r2, r1
	strb r2, [r0, 0x1]
_082E449A:
	movs r2, 0x2
	ldr r0, _082E44FC
	mov r12, r0
_082E44A0:
	mov r3, sp
	adds r1, r3, r2
	ldrb r0, [r4]
	strb r0, [r1]
	adds r4, 0x1
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xE
	bls _082E44A0
	movs r3, 0
	adds r1, r7, 0
	movs r2, 0
_082E44BA:
	ldrb r0, [r1]
	adds r0, r3, r0
	lsls r0, 24
	adds r1, 0x1
	lsrs r0, 24
	ldrb r3, [r5]
	adds r0, r3
	lsls r0, 24
	lsrs r3, r0, 24
	adds r5, 0x1
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _082E44BA
	mov r1, sp
	mvns r0, r3
	strb r0, [r1, 0xF]
	cmp r6, 0
	beq _082E44E6
	movs r0, 0
	strb r0, [r1, 0xE]
_082E44E6:
	mov r0, r12
	bl STWI_set_Callback_M
	mov r0, sp
	adds r1, r7, 0
	bl STWI_send_GameConfigREQ
	add sp, 0x10
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E44FC: .4byte rfu_CB_configGameData
	thumb_func_end rfu_REQ_configGameData

	thumb_func_start rfu_CB_configGameData
rfu_CB_configGameData: @ 82E4500
	push {r4-r7,lr}
	lsls r0, 24
	lsrs r0, 24
	mov r12, r0
	lsls r1, 16
	lsrs r7, r1, 16
	cmp r7, 0
	bne _082E458A
	ldr r0, _082E4544
	ldr r0, [r0]
	ldr r1, [r0, 0x24]
	ldr r0, _082E4548
	ldr r6, [r0]
	ldrb r2, [r1, 0x4]
	adds r5, r6, 0
	adds r5, 0x98
	strh r2, [r5]
	ldrb r0, [r1, 0x5]
	lsls r3, r0, 8
	orrs r3, r2
	strh r3, [r5]
	adds r4, r1, 0x6
	movs r1, 0x80
	lsls r1, 8
	adds r0, r3, 0
	ands r0, r1
	cmp r0, 0
	beq _082E454C
	eors r3, r1
	strh r3, [r5]
	adds r1, r6, 0
	adds r1, 0x97
	movs r0, 0x1
	b _082E4552
	.align 2, 0
_082E4544: .4byte gRfuState
_082E4548: .4byte gUnknown_03007890
_082E454C:
	adds r1, r6, 0
	adds r1, 0x97
	movs r0, 0
_082E4552:
	strb r0, [r1]
	movs r2, 0
	ldr r3, _082E4598
_082E4558:
	ldr r0, [r3]
	adds r0, 0x9A
	adds r0, r2
	ldrb r1, [r4]
	strb r1, [r0]
	adds r4, 0x1
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0xC
	bls _082E4558
	adds r4, 0x1
	movs r2, 0
	ldr r3, _082E4598
_082E4574:
	ldr r0, [r3]
	adds r0, 0xA9
	adds r0, r2
	ldrb r1, [r4]
	strb r1, [r0]
	adds r4, 0x1
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x7
	bls _082E4574
_082E458A:
	mov r0, r12
	adds r1, r7, 0
	bl rfu_STC_REQ_callback
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E4598: .4byte gUnknown_03007890
	thumb_func_end rfu_CB_configGameData

	thumb_func_start rfu_REQ_startSearchChild
rfu_REQ_startSearchChild: @ 82E459C
	push {r4,lr}
	movs r1, 0
	ldr r4, _082E45E4
	ldr r3, _082E45E8
	movs r2, 0
_082E45A6:
	ldr r0, [r3]
	adds r0, 0xE
	adds r0, r1
	strb r2, [r0]
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x3
	bls _082E45A6
	adds r0, r4, 0
	bl STWI_set_Callback_M
	bl STWI_send_SystemStatusREQ
	bl STWI_poll_CommandEnd
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	bne _082E45F0
	ldr r0, _082E45EC
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x7]
	cmp r0, 0
	bne _082E45F6
	movs r0, 0x1
	bl rfu_STC_clearLinkStatus
	b _082E45F6
	.align 2, 0
_082E45E4: .4byte rfu_CB_defaultCallback
_082E45E8: .4byte gUnknown_03007894
_082E45EC: .4byte gUnknown_03007898
_082E45F0:
	movs r0, 0x19
	bl rfu_STC_REQ_callback
_082E45F6:
	ldr r0, _082E4608
	bl STWI_set_Callback_M
	bl STWI_send_SC_StartREQ
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_082E4608: .4byte rfu_CB_startSearchChild
	thumb_func_end rfu_REQ_startSearchChild

	thumb_func_start rfu_CB_startSearchChild
rfu_CB_startSearchChild: @ 82E460C
	push {lr}
	lsls r0, 24
	lsrs r3, r0, 24
	lsls r1, 16
	lsrs r1, 16
	adds r2, r1, 0
	cmp r2, 0
	bne _082E4624
	ldr r0, _082E4630
	ldr r1, [r0]
	movs r0, 0x1
	strb r0, [r1, 0x9]
_082E4624:
	adds r0, r3, 0
	adds r1, r2, 0
	bl rfu_STC_REQ_callback
	pop {r0}
	bx r0
	.align 2, 0
_082E4630: .4byte gUnknown_03007894
	thumb_func_end rfu_CB_startSearchChild

	thumb_func_start rfu_STC_clearLinkStatus
rfu_STC_clearLinkStatus: @ 82E4634
	push {r4,r5,lr}
	sub sp, 0x4
	adds r4, r0, 0
	lsls r4, 24
	lsrs r4, 24
	bl rfu_clearAllSlot
	cmp r4, 0
	beq _082E465C
	mov r0, sp
	movs r5, 0
	strh r5, [r0]
	ldr r4, _082E4690
	ldr r1, [r4]
	adds r1, 0x14
	ldr r2, _082E4694
	bl CpuSet
	ldr r0, [r4]
	strb r5, [r0, 0x8]
_082E465C:
	movs r1, 0
	ldr r2, _082E4690
	adds r4, r2, 0
	movs r3, 0
_082E4664:
	ldr r0, [r4]
	adds r0, 0xA
	adds r0, r1
	strb r3, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _082E4664
	ldr r0, [r2]
	movs r1, 0
	strb r1, [r0, 0x1]
	ldr r0, [r2]
	strb r1, [r0, 0x2]
	ldr r0, [r2]
	strb r1, [r0, 0x3]
	ldr r0, [r2]
	strb r1, [r0, 0x7]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E4690: .4byte gUnknown_03007890
_082E4694: .4byte 0x01000040
	thumb_func_end rfu_STC_clearLinkStatus

	thumb_func_start rfu_REQ_pollSearchChild
rfu_REQ_pollSearchChild: @ 82E4698
	push {lr}
	ldr r0, _082E46A8
	bl STWI_set_Callback_M
	bl STWI_send_SC_PollingREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E46A8: .4byte rfu_CB_pollAndEndSearchChild
	thumb_func_end rfu_REQ_pollSearchChild

	thumb_func_start rfu_REQ_endSearchChild
rfu_REQ_endSearchChild: @ 82E46AC
	push {lr}
	ldr r0, _082E46BC
	bl STWI_set_Callback_M
	bl STWI_send_SC_EndREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E46BC: .4byte rfu_CB_pollAndEndSearchChild
	thumb_func_end rfu_REQ_endSearchChild

	thumb_func_start rfu_CB_pollAndEndSearchChild
rfu_CB_pollAndEndSearchChild: @ 82E46C0
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	lsls r1, 16
	lsrs r6, r1, 16
	cmp r6, 0
	bne _082E46D2
	bl rfu_STC_readChildList
_082E46D2:
	cmp r4, 0x1A
	bne _082E4714
	ldr r5, _082E4708
	ldr r0, [r5]
	adds r0, 0x94
	ldrh r0, [r0]
	cmp r0, 0
	bne _082E4730
	ldr r0, _082E470C
	bl STWI_set_Callback_M
	bl STWI_send_SystemStatusREQ
	bl STWI_poll_CommandEnd
	lsls r0, 16
	cmp r0, 0
	bne _082E4730
	ldr r1, [r5]
	ldr r0, _082E4710
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrh r0, [r0, 0x4]
	adds r1, 0x94
	strh r0, [r1]
	b _082E4730
	.align 2, 0
_082E4708: .4byte gUnknown_03007890
_082E470C: .4byte rfu_CB_defaultCallback
_082E4710: .4byte gUnknown_03007898
_082E4714:
	cmp r4, 0x1B
	bne _082E4730
	ldr r0, _082E4740
	ldr r1, [r0]
	ldrb r0, [r1]
	cmp r0, 0xFF
	bne _082E4728
	adds r1, 0x94
	movs r0, 0
	strh r0, [r1]
_082E4728:
	ldr r0, _082E4744
	ldr r1, [r0]
	movs r0, 0
	strb r0, [r1, 0x9]
_082E4730:
	adds r0, r4, 0
	adds r1, r6, 0
	bl rfu_STC_REQ_callback
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_082E4740: .4byte gUnknown_03007890
_082E4744: .4byte gUnknown_03007894
	thumb_func_end rfu_CB_pollAndEndSearchChild

	thumb_func_start rfu_STC_readChildList
rfu_STC_readChildList: @ 82E4748
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	ldr r0, _082E47F8
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r7, [r0, 0x1]
	adds r6, r0, 0x4
	cmp r7, 0
	beq _082E47EE
	ldr r0, _082E47FC
	mov r8, r0
	ldr r1, _082E4800
	mov r12, r1
_082E4766:
	ldrb r4, [r6, 0x2]
	cmp r4, 0x3
	bhi _082E47E2
	mov r2, r12
	ldr r1, [r2]
	ldrb r0, [r1, 0x2]
	asrs r0, r4
	movs r5, 0x1
	ands r0, r5
	cmp r0, 0
	bne _082E47E2
	ldrb r0, [r1, 0x3]
	asrs r0, r4
	ands r0, r5
	cmp r0, 0
	bne _082E47E2
	mov r1, r8
	ldr r0, [r1]
	adds r0, 0xE
	adds r0, r4
	movs r1, 0xF0
	strb r1, [r0]
	ldr r0, [r2]
	adds r0, 0xA
	adds r0, r4
	movs r1, 0x10
	strb r1, [r0]
	ldr r2, [r2]
	adds r0, r5, 0
	lsls r0, r4
	ldrb r1, [r2, 0x2]
	orrs r0, r1
	strb r0, [r2, 0x2]
	mov r2, r12
	ldr r1, [r2]
	ldrb r0, [r1, 0x1]
	adds r0, 0x1
	strb r0, [r1, 0x1]
	ldr r1, [r2]
	lsls r3, r4, 5
	adds r1, r3
	ldrh r0, [r6]
	strh r0, [r1, 0x14]
	strb r4, [r1, 0x16]
	ldr r0, [r2]
	strb r5, [r0]
	mov r0, r8
	ldr r2, [r0]
	ldrb r1, [r2]
	movs r0, 0x7F
	ands r0, r1
	strb r0, [r2]
	mov r2, r8
	ldr r1, [r2]
	lsls r0, r4, 1
	adds r1, 0x12
	adds r1, r0
	mov r2, r12
	ldr r0, [r2]
	adds r0, r3
	ldrh r0, [r0, 0x14]
	strh r0, [r1]
_082E47E2:
	subs r0, r7, 0x1
	lsls r0, 24
	lsrs r7, r0, 24
	adds r6, 0x4
	cmp r7, 0
	bne _082E4766
_082E47EE:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E47F8: .4byte gUnknown_03007898
_082E47FC: .4byte gUnknown_03007894
_082E4800: .4byte gUnknown_03007890
	thumb_func_end rfu_STC_readChildList

	thumb_func_start rfu_REQ_startSearchParent
rfu_REQ_startSearchParent: @ 82E4804
	push {lr}
	ldr r0, _082E4814
	bl STWI_set_Callback_M
	bl STWI_send_SP_StartREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E4814: .4byte rfu_CB_startSearchParent
	thumb_func_end rfu_REQ_startSearchParent

	thumb_func_start rfu_CB_startSearchParent
rfu_CB_startSearchParent: @ 82E4818
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 16
	lsrs r1, 16
	adds r4, r1, 0
	cmp r4, 0
	bne _082E482E
	movs r0, 0
	bl rfu_STC_clearLinkStatus
_082E482E:
	adds r0, r5, 0
	adds r1, r4, 0
	bl rfu_STC_REQ_callback
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end rfu_CB_startSearchParent

	thumb_func_start rfu_REQ_pollSearchParent
rfu_REQ_pollSearchParent: @ 82E483C
	push {lr}
	ldr r0, _082E484C
	bl STWI_set_Callback_M
	bl STWI_send_SP_PollingREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E484C: .4byte sub_82E4850
	thumb_func_end rfu_REQ_pollSearchParent

	thumb_func_start sub_82E4850
sub_82E4850: @ 82E4850
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	lsls r1, 16
	lsrs r1, 16
	adds r4, r1, 0
	cmp r4, 0
	bne _082E4864
	bl rfu_STC_readParentCandidateList
_082E4864:
	adds r0, r5, 0
	adds r1, r4, 0
	bl rfu_STC_REQ_callback
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end sub_82E4850

	thumb_func_start rfu_REQ_endSearchParent
rfu_REQ_endSearchParent: @ 82E4874
	push {lr}
	ldr r0, _082E4884
	bl STWI_set_Callback_M
	bl STWI_send_SP_EndREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E4884: .4byte rfu_STC_REQ_callback
	thumb_func_end rfu_REQ_endSearchParent

	thumb_func_start rfu_STC_readParentCandidateList
rfu_STC_readParentCandidateList: @ 82E4888
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	mov r0, sp
	movs r4, 0
	strh r4, [r0]
	ldr r5, _082E4930
	ldr r1, [r5]
	adds r1, 0x14
	ldr r2, _082E4934
	bl CpuSet
	ldr r0, _082E4938
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r2, [r0]
	ldrb r7, [r2, 0x1]
	adds r2, 0x4
	ldr r0, [r5]
	strb r4, [r0, 0x8]
	movs r6, 0
	cmp r7, 0
	beq _082E498C
	mov r12, r5
	ldr r0, _082E493C
	mov r8, r0
_082E48BE:
	subs r0, r7, 0x7
	lsls r0, 24
	lsrs r7, r0, 24
	adds r1, r2, 0x6
	adds r2, 0x13
	ldrb r0, [r2]
	mvns r0, r0
	lsls r0, 24
	lsrs r5, r0, 24
	adds r2, 0x1
	movs r4, 0
	movs r3, 0
	adds r6, 0x1
_082E48D8:
	ldrb r0, [r2]
	adds r0, r4, r0
	lsls r0, 24
	adds r2, 0x1
	lsrs r0, 24
	ldrb r4, [r1]
	adds r0, r4
	lsls r0, 24
	lsrs r4, r0, 24
	adds r1, 0x1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x7
	bls _082E48D8
	cmp r4, r5
	bne _082E4980
	subs r2, 0x1C
	mov r0, r12
	ldr r1, [r0]
	ldrb r0, [r1, 0x8]
	lsls r0, 5
	adds r0, 0x14
	adds r4, r1, r0
	ldrh r0, [r2]
	movs r3, 0
	strh r0, [r4]
	adds r2, 0x2
	ldrb r0, [r2]
	strb r0, [r4, 0x2]
	adds r2, 0x2
	ldrh r1, [r2]
	mov r0, r8
	ands r0, r1
	strh r0, [r4, 0x4]
	ldrh r1, [r2]
	movs r0, 0x80
	lsls r0, 8
	ands r0, r1
	cmp r0, 0
	beq _082E4940
	movs r0, 0x1
	strb r0, [r4, 0x3]
	b _082E4942
	.align 2, 0
_082E4930: .4byte gUnknown_03007890
_082E4934: .4byte 0x01000040
_082E4938: .4byte gUnknown_03007898
_082E493C: .4byte 0x00007fff
_082E4940:
	strb r3, [r4, 0x3]
_082E4942:
	adds r2, 0x2
	movs r3, 0
	adds r5, r4, 0
	adds r5, 0x15
	adds r4, 0x6
_082E494C:
	adds r1, r4, r3
	ldrb r0, [r2]
	strb r0, [r1]
	adds r2, 0x1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0xC
	bls _082E494C
	adds r2, 0x1
	movs r3, 0
	adds r4, r5, 0
_082E4964:
	adds r1, r4, r3
	ldrb r0, [r2]
	strb r0, [r1]
	adds r2, 0x1
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x7
	bls _082E4964
	mov r4, r12
	ldr r1, [r4]
	ldrb r0, [r1, 0x8]
	adds r0, 0x1
	strb r0, [r1, 0x8]
_082E4980:
	lsls r0, r6, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bhi _082E498C
	cmp r7, 0
	bne _082E48BE
_082E498C:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	thumb_func_end rfu_STC_readParentCandidateList

	thumb_func_start rfu_REQ_startConnectParent
rfu_REQ_startConnectParent: @ 82E4998
	push {r4,r5,lr}
	lsls r0, 16
	lsrs r4, r0, 16
	movs r3, 0
	movs r2, 0
	ldr r1, _082E49E4
	ldr r0, [r1]
	ldrh r0, [r0, 0x14]
	cmp r0, r4
	beq _082E49C4
	adds r5, r1, 0
_082E49AE:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bhi _082E49C4
	ldr r0, [r5]
	lsls r1, r2, 5
	adds r0, r1
	ldrh r0, [r0, 0x14]
	cmp r0, r4
	bne _082E49AE
_082E49C4:
	cmp r2, 0x4
	bne _082E49CC
	movs r3, 0x80
	lsls r3, 1
_082E49CC:
	cmp r3, 0
	bne _082E49F0
	ldr r0, _082E49E8
	ldr r0, [r0]
	strh r4, [r0, 0x1E]
	ldr r0, _082E49EC
	bl STWI_set_Callback_M
	adds r0, r4, 0
	bl STWI_send_CP_StartREQ
	b _082E49F8
	.align 2, 0
_082E49E4: .4byte gUnknown_03007890
_082E49E8: .4byte gUnknown_03007894
_082E49EC: .4byte rfu_STC_REQ_callback
_082E49F0:
	movs r0, 0x1F
	adds r1, r3, 0
	bl rfu_STC_REQ_callback
_082E49F8:
	pop {r4,r5}
	pop {r0}
	bx r0
	thumb_func_end rfu_REQ_startConnectParent

	thumb_func_start rfu_REQ_pollConnectParent
rfu_REQ_pollConnectParent: @ 82E4A00
	push {lr}
	ldr r0, _082E4A10
	bl STWI_set_Callback_M
	bl STWI_send_CP_PollingREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E4A10: .4byte rfu_CB_pollConnectParent
	thumb_func_end rfu_REQ_pollConnectParent

	thumb_func_start rfu_CB_pollConnectParent
rfu_CB_pollConnectParent: @ 82E4A14
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x2C
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0x24]
	lsls r1, 16
	lsrs r1, 16
	str r1, [sp, 0x28]
	cmp r1, 0
	bne _082E4B16
	ldr r0, _082E4AD0
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrh r5, [r0, 0x4]
	ldrb r1, [r0, 0x6]
	mov r10, r1
	ldrb r0, [r0, 0x7]
	cmp r0, 0
	bne _082E4B16
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r1
	lsrs r2, r0, 24
	ldr r4, _082E4AD4
	ldr r3, [r4]
	ldrb r1, [r3, 0x2]
	adds r0, r2, 0
	ands r0, r1
	cmp r0, 0
	bne _082E4B16
	adds r0, r2, 0
	orrs r0, r1
	strb r0, [r3, 0x2]
	ldr r1, [r4]
	ldrb r0, [r1, 0x3]
	bics r0, r2
	strb r0, [r1, 0x3]
	ldr r1, [r4]
	adds r0, r1, 0
	adds r0, 0x94
	movs r2, 0
	strh r5, [r0]
	ldrb r0, [r1, 0x1]
	adds r0, 0x1
	strb r0, [r1, 0x1]
	ldr r0, [r4]
	strb r2, [r0]
	ldr r3, _082E4AD8
	ldr r2, [r3]
	ldrb r1, [r2]
	movs r0, 0x80
	orrs r0, r1
	strb r0, [r2]
	movs r5, 0
	adds r7, r4, 0
	add r6, sp, 0x20
	movs r0, 0
	mov r8, r0
_082E4A92:
	ldr r2, [r7]
	lsls r4, r5, 5
	adds r0, r2, r4
	ldr r1, [r3]
	ldrh r0, [r0, 0x14]
	ldrh r1, [r1, 0x1E]
	cmp r0, r1
	bne _082E4AEA
	ldrb r0, [r2, 0x8]
	cmp r0, 0
	beq _082E4AE0
	mov r9, sp
	adds r0, r4, 0
	adds r0, 0x14
	adds r0, r2, r0
	mov r1, sp
	movs r2, 0x10
	bl CpuSet
	mov r1, r8
	strh r1, [r6]
	ldr r1, [r7]
	adds r1, 0x14
	adds r0, r6, 0
	ldr r2, _082E4ADC
	bl CpuSet
	ldr r0, [r7]
	mov r1, r8
	strb r1, [r0, 0x8]
	b _082E4AF4
	.align 2, 0
_082E4AD0: .4byte gUnknown_03007898
_082E4AD4: .4byte gUnknown_03007890
_082E4AD8: .4byte gUnknown_03007894
_082E4ADC: .4byte 0x01000040
_082E4AE0:
	adds r0, r4, 0
	adds r0, 0x14
	adds r2, r0
	mov r9, r2
	b _082E4AF4
_082E4AEA:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _082E4A92
_082E4AF4:
	cmp r5, 0x3
	bhi _082E4B16
	ldr r4, _082E4B30
	mov r0, r10
	lsls r5, r0, 5
	adds r0, r5, 0
	adds r0, 0x14
	ldr r1, [r4]
	adds r1, r0
	mov r0, r9
	movs r2, 0x10
	bl CpuSet
	ldr r0, [r4]
	adds r0, r5
	mov r1, r10
	strb r1, [r0, 0x16]
_082E4B16:
	ldr r0, [sp, 0x24]
	ldr r1, [sp, 0x28]
	bl rfu_STC_REQ_callback
	add sp, 0x2C
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E4B30: .4byte gUnknown_03007890
	thumb_func_end rfu_CB_pollConnectParent

	thumb_func_start rfu_getConnectParentStatus
rfu_getConnectParentStatus: @ 82E4B34
	push {lr}
	adds r3, r0, 0
	movs r0, 0xFF
	strb r0, [r3]
	ldr r0, _082E4B54
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r2, [r0]
	ldrb r0, [r2]
	adds r0, 0x60
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _082E4B58
	movs r0, 0x10
	b _082E4B64
	.align 2, 0
_082E4B54: .4byte gUnknown_03007898
_082E4B58:
	adds r2, 0x6
	ldrb r0, [r2]
	strb r0, [r1]
	ldrb r0, [r2, 0x1]
	strb r0, [r3]
	movs r0, 0
_082E4B64:
	pop {r1}
	bx r1
	thumb_func_end rfu_getConnectParentStatus

	thumb_func_start rfu_REQ_endConnectParent
rfu_REQ_endConnectParent: @ 82E4B68
	push {lr}
	ldr r0, _082E4B94
	bl STWI_set_Callback_M
	bl STWI_send_CP_EndREQ
	ldr r0, _082E4B98
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r1, [r0]
	ldrb r0, [r1, 0x6]
	cmp r0, 0x3
	bhi _082E4B90
	ldr r0, _082E4B9C
	ldr r0, [r0]
	adds r0, 0xA
	ldrb r1, [r1, 0x6]
	adds r0, r1
	movs r1, 0
	strb r1, [r0]
_082E4B90:
	pop {r0}
	bx r0
	.align 2, 0
_082E4B94: .4byte rfu_CB_pollConnectParent
_082E4B98: .4byte gUnknown_03007898
_082E4B9C: .4byte gUnknown_03007894
	thumb_func_end rfu_REQ_endConnectParent

	thumb_func_start rfu_syncVBlank
rfu_syncVBlank: @ 82E4BA0
	push {r4,r5,lr}
	bl rfu_NI_checkCommFailCounter
	ldr r0, _082E4BE8
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0xFF
	beq _082E4C78
	ldr r4, _082E4BEC
	ldr r1, [r4]
	ldrb r0, [r1, 0x6]
	cmp r0, 0
	beq _082E4BBE
	subs r0, 0x1
	strb r0, [r1, 0x6]
_082E4BBE:
	bl rfu_getMasterSlave
	lsls r0, 24
	lsrs r3, r0, 24
	ldr r2, [r4]
	ldrb r1, [r2]
	movs r0, 0x2
	ands r0, r1
	cmp r0, 0
	bne _082E4BF0
	cmp r3, 0
	bne _082E4BFE
	movs r0, 0x4
	orrs r0, r1
	strb r0, [r2]
	ldr r1, [r4]
	movs r0, 0xB4
	lsls r0, 1
	strh r0, [r1, 0x20]
	b _082E4BFA
	.align 2, 0
_082E4BE8: .4byte gUnknown_03007890
_082E4BEC: .4byte gUnknown_03007894
_082E4BF0:
	cmp r3, 0
	beq _082E4C10
	movs r0, 0xFB
	ands r0, r1
	strb r0, [r2]
_082E4BFA:
	cmp r3, 0
	beq _082E4C10
_082E4BFE:
	ldr r3, _082E4C0C
	ldr r2, [r3]
	ldrb r1, [r2]
	movs r0, 0xFD
	ands r0, r1
	b _082E4C1A
	.align 2, 0
_082E4C0C: .4byte gUnknown_03007894
_082E4C10:
	ldr r3, _082E4C6C
	ldr r2, [r3]
	ldrb r1, [r2]
	movs r0, 0x2
	orrs r0, r1
_082E4C1A:
	strb r0, [r2]
	ldr r3, [r3]
	ldrb r1, [r3]
	movs r0, 0x4
	ands r0, r1
	cmp r0, 0
	beq _082E4C78
	ldrh r0, [r3, 0x20]
	cmp r0, 0
	bne _082E4C74
	movs r0, 0xFB
	ands r0, r1
	strb r0, [r3]
	ldr r0, _082E4C70
	ldr r0, [r0]
	ldrb r1, [r0, 0x2]
	ldrb r0, [r0, 0x3]
	adds r5, r0, 0
	orrs r5, r1
	movs r4, 0
_082E4C42:
	adds r0, r5, 0
	asrs r0, r4
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _082E4C54
	adds r0, r4, 0
	bl rfu_STC_removeLinkData
_082E4C54:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E4C42
	ldr r0, _082E4C70
	ldr r1, [r0]
	movs r0, 0xFF
	strb r0, [r1]
	movs r0, 0x1
	b _082E4C7A
	.align 2, 0
_082E4C6C: .4byte gUnknown_03007894
_082E4C70: .4byte gUnknown_03007890
_082E4C74:
	subs r0, 0x1
	strh r0, [r3, 0x20]
_082E4C78:
	movs r0, 0
_082E4C7A:
	pop {r4,r5}
	pop {r1}
	bx r1
	thumb_func_end rfu_syncVBlank

	thumb_func_start rfu_REQBN_watchLink
rfu_REQBN_watchLink: @ 82E4C80
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x18
	mov r8, r1
	str r2, [sp]
	str r3, [sp, 0x4]
	lsls r0, 16
	lsrs r6, r0, 16
	movs r0, 0
	str r0, [sp, 0x8]
	movs r1, 0
	str r1, [sp, 0xC]
	mov r2, r8
	strb r1, [r2]
	mov r0, sp
	ldrb r1, [r0, 0xC]
	ldr r0, [sp]
	strb r1, [r0]
	mov r2, sp
	ldrb r0, [r2, 0xC]
	ldr r2, [sp, 0x4]
	strb r0, [r2]
	ldr r5, _082E4D20
	ldr r0, [r5]
	ldrb r0, [r0]
	cmp r0, 0xFF
	bne _082E4CBE
	b _082E504E
_082E4CBE:
	ldr r0, _082E4D24
	ldr r0, [r0]
	ldrb r0, [r0, 0x14]
	cmp r0, 0
	bne _082E4CCA
	b _082E504E
_082E4CCA:
	ldr r3, _082E4D28
	ldr r2, [r3]
	ldrb r1, [r2]
	movs r4, 0x4
	adds r0, r4, 0
	ands r0, r1
	cmp r0, 0
	beq _082E4CE0
	movs r0, 0xB4
	lsls r0, 1
	strh r0, [r2, 0x20]
_082E4CE0:
	ldr r1, [r3]
	ldrb r0, [r1, 0x6]
	cmp r0, 0
	bne _082E4CEE
	strb r4, [r1, 0x6]
	movs r1, 0x1
	str r1, [sp, 0x8]
_082E4CEE:
	lsls r0, r6, 24
	lsrs r0, 24
	cmp r0, 0x29
	bne _082E4D30
	ldr r0, _082E4D2C
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r1, [r0]
	ldrb r0, [r1, 0x4]
	mov r2, r8
	strb r0, [r2]
	ldrb r0, [r1, 0x5]
	ldr r1, [sp]
	strb r0, [r1]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bne _082E4D18
	ldr r0, [r5]
	ldrb r0, [r0, 0x2]
	strb r0, [r2]
_082E4D18:
	movs r2, 0x2
	str r2, [sp, 0x8]
	b _082E4D88
	.align 2, 0
_082E4D20: .4byte gUnknown_03007890
_082E4D24: .4byte gRfuState
_082E4D28: .4byte gUnknown_03007894
_082E4D2C: .4byte gUnknown_03007898
_082E4D30:
	movs r0, 0x9B
	lsls r0, 1
	cmp r6, r0
	bne _082E4D80
	ldr r0, _082E4DDC
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r6, [r0, 0x5]
	ldr r0, [r5]
	ldrb r0, [r0, 0x2]
	eors r6, r0
	ands r6, r0
	mov r0, r8
	strb r6, [r0]
	movs r0, 0x1
	ldr r1, [sp]
	strb r0, [r1]
	movs r5, 0
_082E4D56:
	mov r2, r8
	ldrb r0, [r2]
	asrs r0, r5
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _082E4D76
	ldr r0, _082E4DE0
	ldr r0, [r0]
	adds r0, 0xA
	adds r0, r5
	movs r1, 0
	strb r1, [r0]
	adds r0, r5, 0
	bl rfu_STC_removeLinkData
_082E4D76:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _082E4D56
_082E4D80:
	ldr r0, [sp, 0x8]
	cmp r0, 0
	bne _082E4D88
	b _082E504E
_082E4D88:
	ldr r4, _082E4DDC
	ldr r0, [r4]
	adds r0, 0xDC
	ldr r0, [r0]
	ldr r1, [r0]
	str r1, [sp, 0x10]
	ldr r0, [r0, 0x4]
	str r0, [sp, 0x14]
	ldr r0, _082E4DE4
	bl STWI_set_Callback_M
	bl STWI_send_LinkStatusREQ
	bl STWI_poll_CommandEnd
	lsls r0, 24
	lsrs r0, 24
	str r0, [sp, 0xC]
	cmp r0, 0
	bne _082E4DE8
	ldr r0, [r4]
	adds r0, 0xDC
	ldr r0, [r0]
	adds r2, r0, 0x4
	movs r5, 0
	ldr r3, _082E4DE0
_082E4DBC:
	ldr r0, [r3]
	adds r0, 0xA
	adds r0, r5
	ldrb r1, [r2]
	strb r1, [r0]
	adds r2, 0x1
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _082E4DBC
	movs r2, 0
	mov r9, r2
	movs r5, 0
	b _082E4DF4
	.align 2, 0
_082E4DDC: .4byte gUnknown_03007898
_082E4DE0: .4byte gUnknown_03007890
_082E4DE4: .4byte rfu_CB_defaultCallback
_082E4DE8:
	movs r0, 0x11
	ldr r1, [sp, 0xC]
	bl rfu_STC_REQ_callback
	ldr r0, [sp, 0xC]
	b _082E5050
_082E4DF4:
	ldr r1, _082E4E7C
	ldr r0, [r1]
	adds r0, 0xE
	adds r2, r0, r5
	ldrb r0, [r2]
	adds r3, r1, 0
	cmp r0, 0
	beq _082E4E1A
	subs r0, 0x4
	strb r0, [r2]
	ldr r0, _082E4E80
	ldr r0, [r0]
	adds r0, 0xA
	adds r1, r0, r5
	ldrb r0, [r1]
	cmp r0, 0xF
	bhi _082E4E1A
	movs r0, 0x10
	strb r0, [r1]
_082E4E1A:
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r5
	lsrs r6, r0, 24
	adds r0, r5, 0x1
	mov r10, r0
	ldr r1, [sp, 0xC]
	cmp r1, 0
	beq _082E4E2E
	b _082E5002
_082E4E2E:
	ldr r2, [sp, 0x8]
	cmp r2, 0x1
	bne _082E4F10
	ldr r4, _082E4E80
	ldr r1, [r4]
	ldrb r0, [r1, 0x2]
	ands r0, r6
	cmp r0, 0
	beq _082E4F10
	adds r0, r1, 0
	adds r0, 0xA
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0
	bne _082E4F04
	ldrb r0, [r1]
	cmp r0, 0x1
	bne _082E4E84
	ldr r1, [r3]
	adds r1, 0xA
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	ldr r0, [r3]
	adds r0, 0xA
	adds r0, r5
	ldrb r0, [r0]
	cmp r0, 0x3
	bls _082E4F10
	mov r0, r8
	ldrb r1, [r0]
	adds r0, r6, 0
	orrs r0, r1
	mov r1, r8
	strb r0, [r1]
	ldr r0, [sp]
	strb r2, [r0]
	b _082E4F10
	.align 2, 0
_082E4E7C: .4byte gUnknown_03007894
_082E4E80: .4byte gUnknown_03007890
_082E4E84:
	bl STWI_send_SystemStatusREQ
	bl STWI_poll_CommandEnd
	lsls r0, 16
	cmp r0, 0
	bne _082E4F10
	ldr r0, _082E4EB4
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x7]
	cmp r0, 0
	bne _082E4EB8
	mov r2, r8
	ldrb r1, [r2]
	adds r0, r6, 0
	orrs r0, r1
	strb r0, [r2]
	mov r0, sp
	ldrb r1, [r0, 0x8]
	ldr r0, [sp]
	b _082E4F0E
	.align 2, 0
_082E4EB4: .4byte gUnknown_03007898
_082E4EB8:
	ldr r2, _082E4F00
	ldr r1, [r2]
	adds r1, 0xA
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x1
	strb r0, [r1]
	lsls r0, 24
	ldr r2, [r2]
	lsrs r0, 24
	ldrh r1, [r2, 0x1A]
	cmp r0, r1
	bls _082E4F10
	adds r0, r2, 0
	adds r0, 0xA
	adds r0, r5
	mov r2, sp
	ldrb r2, [r2, 0xC]
	strb r2, [r0]
	ldr r0, [r4]
	ldrb r0, [r0, 0x2]
	bl STWI_send_DisconnectREQ
	bl STWI_poll_CommandEnd
	mov r0, r8
	ldrb r1, [r0]
	adds r0, r6, 0
	orrs r0, r1
	mov r1, r8
	strb r0, [r1]
	mov r2, sp
	ldrb r0, [r2, 0x8]
	ldr r2, [sp]
	strb r0, [r2]
	b _082E4F10
	.align 2, 0
_082E4F00: .4byte gUnknown_03007894
_082E4F04:
	ldr r0, [r3]
	adds r0, 0xA
	adds r0, r5
	mov r1, sp
	ldrb r1, [r1, 0xC]
_082E4F0E:
	strb r1, [r0]
_082E4F10:
	ldr r2, _082E4F70
	mov r12, r2
	ldr r1, [r2]
	ldrb r7, [r1]
	adds r0, r5, 0x1
	mov r10, r0
	cmp r7, 0x1
	bne _082E5002
	adds r0, r1, 0
	adds r0, 0xA
	adds r4, r0, r5
	ldrb r3, [r4]
	cmp r3, 0
	beq _082E5002
	ldrb r2, [r1, 0x3]
	adds r0, r6, 0
	ands r0, r2
	cmp r0, 0
	beq _082E4F7E
	cmp r3, 0xA
	bls _082E4F78
	ldr r2, [sp, 0x4]
	ldrb r1, [r2]
	adds r0, r6, 0
	orrs r0, r1
	strb r0, [r2]
	mov r0, r12
	ldr r2, [r0]
	ldrb r1, [r2, 0x2]
	adds r0, r6, 0
	orrs r0, r1
	movs r3, 0
	strb r0, [r2, 0x2]
	mov r2, r12
	ldr r1, [r2]
	ldrb r0, [r1, 0x3]
	bics r0, r6
	strb r0, [r1, 0x3]
	ldr r1, [r2]
	ldrb r0, [r1, 0x1]
	adds r0, 0x1
	strb r0, [r1, 0x1]
	ldr r0, _082E4F74
	ldr r0, [r0]
	adds r0, 0xA
	adds r0, r5
	strb r3, [r0]
	b _082E5002
	.align 2, 0
_082E4F70: .4byte gUnknown_03007890
_082E4F74: .4byte gUnknown_03007894
_082E4F78:
	movs r0, 0
	strb r0, [r4]
	b _082E5002
_082E4F7E:
	ldrb r0, [r1, 0x2]
	orrs r0, r2
	ands r0, r6
	cmp r0, 0
	bne _082E5002
	bl STWI_send_SlotStatusREQ
	bl STWI_poll_CommandEnd
	ldr r0, _082E4FC8
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r2, [r0]
	ldrb r0, [r2, 0x1]
	subs r0, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	adds r2, 0x8
	cmp r3, 0
	beq _082E5002
	ldrh r4, [r2]
	ldrb r0, [r2, 0x2]
	cmp r0, r5
	bne _082E4FD0
	ldr r0, _082E4FCC
	ldr r0, [r0]
	lsls r1, r5, 1
	adds r0, 0x12
	adds r0, r1
	ldrh r0, [r0]
	cmp r4, r0
	bne _082E4FD0
	lsls r7, r5
	mov r0, r9
	orrs r0, r7
	lsls r0, 24
	b _082E4FFE
	.align 2, 0
_082E4FC8: .4byte gUnknown_03007898
_082E4FCC: .4byte gUnknown_03007894
_082E4FD0:
	adds r2, 0x4
	subs r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0
	beq _082E5002
	ldrh r4, [r2]
	ldrb r0, [r2, 0x2]
	cmp r0, r5
	bne _082E4FD0
	ldr r0, _082E5060
	ldr r0, [r0]
	lsls r1, r5, 1
	adds r0, 0x12
	adds r0, r1
	ldrh r0, [r0]
	cmp r4, r0
	bne _082E4FD0
	movs r0, 0x1
	lsls r0, r5
	mov r1, r9
	orrs r1, r0
	lsls r0, r1, 24
_082E4FFE:
	lsrs r0, 24
	mov r9, r0
_082E5002:
	ldr r0, _082E5064
	ldr r0, [r0]
	ldrb r1, [r0, 0x2]
	mov r2, r8
	ldrb r0, [r2]
	ands r0, r1
	ands r6, r0
	cmp r6, 0
	beq _082E501C
	adds r0, r5, 0
	movs r1, 0
	bl rfu_STC_removeLinkData
_082E501C:
	mov r1, r10
	lsls r0, r1, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bhi _082E5028
	b _082E4DF4
_082E5028:
	mov r2, r9
	cmp r2, 0
	beq _082E5038
	mov r0, r9
	bl STWI_send_DisconnectREQ
	bl STWI_poll_CommandEnd
_082E5038:
	ldr r1, _082E5068
	ldr r0, [r1]
	adds r0, 0xDC
	ldr r0, [r0]
	ldr r2, [sp, 0x10]
	str r2, [r0]
	ldr r0, [r1]
	adds r0, 0xDC
	ldr r0, [r0]
	ldr r1, [sp, 0x14]
	str r1, [r0, 0x4]
_082E504E:
	movs r0, 0
_082E5050:
	add sp, 0x18
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_082E5060: .4byte gUnknown_03007894
_082E5064: .4byte gUnknown_03007890
_082E5068: .4byte gUnknown_03007898
	thumb_func_end rfu_REQBN_watchLink

	thumb_func_start rfu_STC_removeLinkData
rfu_STC_removeLinkData: @ 82E506C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r7, r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r12, r1
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r7
	lsrs r6, r0, 24
	ldr r0, _082E511C
	ldr r0, [r0]
	adds r0, 0xE
	adds r0, r7
	movs r1, 0
	strb r1, [r0]
	ldr r1, _082E5120
	ldr r4, [r1]
	ldrb r0, [r4, 0x2]
	ands r0, r6
	mov r8, r1
	cmp r0, 0
	beq _082E50AA
	ldrb r0, [r4, 0x1]
	cmp r0, 0
	beq _082E50AA
	subs r0, 0x1
	strb r0, [r4, 0x1]
_082E50AA:
	mov r3, r8
	ldr r2, [r3]
	mvns r5, r6
	ldrb r1, [r2, 0x2]
	adds r0, r5, 0
	ands r0, r1
	strb r0, [r2, 0x2]
	ldr r2, [r3]
	ldrb r1, [r2, 0x3]
	adds r0, r6, 0
	orrs r0, r1
	strb r0, [r2, 0x3]
	ldr r3, [r3]
	ldr r0, [r3]
	ldr r1, _082E5124
	ands r0, r1
	cmp r0, 0
	bne _082E50D2
	movs r0, 0xFF
	strb r0, [r3]
_082E50D2:
	mov r0, r12
	cmp r0, 0
	beq _082E5110
	mov r1, sp
	movs r4, 0
	movs r0, 0
	strh r0, [r1]
	lsls r0, r7, 5
	adds r0, 0x14
	mov r2, r8
	ldr r1, [r2]
	adds r1, r0
	ldr r2, _082E5128
	mov r0, sp
	bl CpuSet
	mov r0, r8
	ldr r2, [r0]
	ldrb r1, [r2, 0x3]
	adds r0, r5, 0
	ands r0, r1
	strb r0, [r2, 0x3]
	mov r2, r8
	ldr r1, [r2]
	ldrb r0, [r1, 0x7]
	ands r5, r0
	strb r5, [r1, 0x7]
	ldr r0, [r2]
	adds r0, 0xA
	adds r0, r7
	strb r4, [r0]
_082E5110:
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E511C: .4byte gUnknown_03007894
_082E5120: .4byte gUnknown_03007890
_082E5124: .4byte 0x00ff00ff
_082E5128: .4byte 0x01000010
	thumb_func_end rfu_STC_removeLinkData

	thumb_func_start rfu_REQ_disconnect
rfu_REQ_disconnect: @ 82E512C
	push {r4,lr}
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r2, _082E5170
	ldr r1, [r2]
	ldrb r0, [r1, 0x2]
	ldrb r1, [r1, 0x3]
	orrs r0, r1
	ands r0, r4
	cmp r0, 0
	beq _082E51B0
	ldr r0, _082E5174
	ldr r1, [r0]
	strb r4, [r1, 0x5]
	ldr r2, [r2]
	ldrb r1, [r2]
	adds r3, r0, 0
	cmp r1, 0xFF
	bne _082E5178
	ldr r0, [r3]
	ldrb r1, [r0]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	beq _082E5178
	ldrb r0, [r2, 0x3]
	ands r0, r4
	cmp r0, 0
	beq _082E51B0
	movs r0, 0x30
	movs r1, 0
	bl rfu_CB_disconnect
	b _082E51B0
	.align 2, 0
_082E5170: .4byte gUnknown_03007890
_082E5174: .4byte gUnknown_03007894
_082E5178:
	ldr r0, [r3]
	ldrb r0, [r0, 0x9]
	cmp r0, 0
	beq _082E51A4
	ldr r0, _082E51A0
	bl STWI_set_Callback_M
	bl STWI_send_SC_EndREQ
	bl STWI_poll_CommandEnd
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0
	beq _082E51A4
	movs r0, 0x1B
	bl rfu_STC_REQ_callback
	b _082E51B0
	.align 2, 0
_082E51A0: .4byte rfu_CB_defaultCallback
_082E51A4:
	ldr r0, _082E51B8
	bl STWI_set_Callback_M
	adds r0, r4, 0
	bl STWI_send_DisconnectREQ
_082E51B0:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_082E51B8: .4byte rfu_CB_disconnect
	thumb_func_end rfu_REQ_disconnect

	thumb_func_start rfu_CB_disconnect
rfu_CB_disconnect: @ 82E51BC
	push {r4-r6,lr}
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 16
	lsrs r5, r1, 16
	cmp r5, 0x3
	bne _082E51F8
	ldr r0, _082E528C
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0
	bne _082E51F8
	ldr r0, _082E5290
	bl STWI_set_Callback_M
	bl STWI_send_SystemStatusREQ
	bl STWI_poll_CommandEnd
	lsls r0, 16
	cmp r0, 0
	bne _082E51F8
	ldr r0, _082E5294
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x7]
	cmp r0, 0
	bne _082E51F8
	movs r5, 0
_082E51F8:
	ldr r3, _082E5298
	ldr r2, [r3]
	ldr r0, _082E528C
	ldr r1, [r0]
	ldrb r0, [r1, 0x2]
	ldrb r1, [r1, 0x3]
	orrs r0, r1
	ldrb r1, [r2, 0x5]
	ands r0, r1
	strb r0, [r2, 0x5]
	ldr r0, _082E5294
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r1, [r0]
	ldr r0, [r3]
	ldrb r0, [r0, 0x5]
	strb r0, [r1, 0x8]
	cmp r5, 0
	bne _082E5246
	movs r4, 0
_082E5220:
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r4
	lsrs r0, 24
	ldr r1, _082E5298
	ldr r1, [r1]
	ldrb r1, [r1, 0x5]
	ands r0, r1
	cmp r0, 0
	beq _082E523C
	adds r0, r4, 0
	movs r1, 0x1
	bl rfu_STC_removeLinkData
_082E523C:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E5220
_082E5246:
	ldr r0, _082E528C
	ldr r2, [r0]
	ldrb r1, [r2, 0x2]
	ldrb r0, [r2, 0x3]
	orrs r0, r1
	cmp r0, 0
	bne _082E5258
	movs r0, 0xFF
	strb r0, [r2]
_082E5258:
	adds r0, r6, 0
	adds r1, r5, 0
	bl rfu_STC_REQ_callback
	ldr r0, _082E5298
	ldr r0, [r0]
	ldrb r0, [r0, 0x9]
	cmp r0, 0
	beq _082E5286
	ldr r0, _082E5290
	bl STWI_set_Callback_M
	bl STWI_send_SC_StartREQ
	bl STWI_poll_CommandEnd
	adds r5, r0, 0
	cmp r5, 0
	beq _082E5286
	movs r0, 0x19
	adds r1, r5, 0
	bl rfu_STC_REQ_callback
_082E5286:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_082E528C: .4byte gUnknown_03007890
_082E5290: .4byte rfu_CB_defaultCallback
_082E5294: .4byte gUnknown_03007898
_082E5298: .4byte gUnknown_03007894
	thumb_func_end rfu_CB_disconnect

	thumb_func_start rfu_REQ_CHILD_startConnectRecovery
rfu_REQ_CHILD_startConnectRecovery: @ 82E529C
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _082E52EC
	ldr r0, [r0]
	strb r5, [r0, 0x5]
	movs r4, 0
	movs r0, 0x1
	ands r0, r5
	ldr r2, _082E52F0
	cmp r0, 0
	bne _082E52CA
	movs r1, 0x1
_082E52B6:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bhi _082E52CA
	adds r0, r5, 0
	asrs r0, r4
	ands r0, r1
	cmp r0, 0
	beq _082E52B6
_082E52CA:
	adds r0, r2, 0
	bl STWI_set_Callback_M
	ldr r0, _082E52F4
	ldr r1, [r0]
	lsls r0, r4, 5
	adds r0, r1, r0
	ldrh r0, [r0, 0x14]
	adds r1, 0x94
	ldrh r1, [r1]
	adds r2, r5, 0
	bl STWI_send_CPR_StartREQ
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E52EC: .4byte gUnknown_03007894
_082E52F0: .4byte rfu_STC_REQ_callback
_082E52F4: .4byte gUnknown_03007890
	thumb_func_end rfu_REQ_CHILD_startConnectRecovery

	thumb_func_start rfu_REQ_CHILD_pollConnectRecovery
rfu_REQ_CHILD_pollConnectRecovery: @ 82E52F8
	push {lr}
	ldr r0, _082E5308
	bl STWI_set_Callback_M
	bl STWI_send_CPR_PollingREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E5308: .4byte rfu_CB_CHILD_pollConnectRecovery
	thumb_func_end rfu_REQ_CHILD_pollConnectRecovery

	thumb_func_start rfu_CB_CHILD_pollConnectRecovery
rfu_CB_CHILD_pollConnectRecovery: @ 82E530C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 16
	lsrs r7, r1, 16
	cmp r7, 0
	bne _082E5390
	ldr r0, _082E53A4
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x4]
	cmp r0, 0
	bne _082E5390
	ldr r0, _082E53A8
	ldr r1, [r0]
	ldrb r1, [r1, 0x5]
	adds r6, r0, 0
	cmp r1, 0
	beq _082E5390
	ldr r1, _082E53AC
	ldr r0, [r1]
	strb r7, [r0]
	movs r4, 0
	adds r5, r1, 0
	mov r12, r4
_082E5346:
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r4
	lsrs r3, r0, 24
	ldr r2, [r5]
	ldr r0, [r6]
	ldrb r0, [r0, 0x5]
	ands r0, r3
	ldrb r1, [r2, 0x3]
	ands r0, r1
	cmp r0, 0
	beq _082E5380
	ldrb r1, [r2, 0x2]
	adds r0, r3, 0
	orrs r0, r1
	strb r0, [r2, 0x2]
	ldr r1, [r5]
	ldrb r0, [r1, 0x3]
	bics r0, r3
	strb r0, [r1, 0x3]
	ldr r1, [r5]
	ldrb r0, [r1, 0x1]
	adds r0, 0x1
	strb r0, [r1, 0x1]
	ldr r0, [r6]
	adds r0, 0xA
	adds r0, r4
	mov r1, r12
	strb r1, [r0]
_082E5380:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E5346
	ldr r1, [r6]
	movs r0, 0
	strb r0, [r1, 0x5]
_082E5390:
	mov r0, r8
	adds r1, r7, 0
	bl rfu_STC_REQ_callback
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E53A4: .4byte gUnknown_03007898
_082E53A8: .4byte gUnknown_03007894
_082E53AC: .4byte gUnknown_03007890
	thumb_func_end rfu_CB_CHILD_pollConnectRecovery

	thumb_func_start rfu_CHILD_getConnectRecoveryStatus
rfu_CHILD_getConnectRecoveryStatus: @ 82E53B0
	push {lr}
	adds r2, r0, 0
	movs r0, 0xFF
	strb r0, [r2]
	ldr r0, _082E53D0
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r1, [r0]
	ldrb r0, [r1]
	adds r0, 0x4D
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x1
	bls _082E53D4
	movs r0, 0x10
	b _082E53DA
	.align 2, 0
_082E53D0: .4byte gUnknown_03007898
_082E53D4:
	ldrb r0, [r1, 0x4]
	strb r0, [r2]
	movs r0, 0
_082E53DA:
	pop {r1}
	bx r1
	thumb_func_end rfu_CHILD_getConnectRecoveryStatus

	thumb_func_start rfu_REQ_CHILD_endConnectRecovery
rfu_REQ_CHILD_endConnectRecovery: @ 82E53E0
	push {lr}
	ldr r0, _082E53F0
	bl STWI_set_Callback_M
	bl STWI_send_CPR_EndREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E53F0: .4byte rfu_CB_CHILD_pollConnectRecovery
	thumb_func_end rfu_REQ_CHILD_endConnectRecovery

	thumb_func_start sub_82E53F4
sub_82E53F4: @ 82E53F4
	push {r4-r6,lr}
	adds r5, r0, 0
	adds r6, r1, 0
	ldr r3, [r5]
	ldr r1, [r6]
	subs r2, 0x1
	movs r0, 0x1
	negs r0, r0
	cmp r2, r0
	beq _082E5418
	adds r4, r0, 0
	thumb_func_end sub_82E53F4

	non_word_aligned_thumb_func_start sub_82E540A
sub_82E540A: @ 82E540A
	ldrb r0, [r3]
	strb r0, [r1]
	adds r3, 0x1
	adds r1, 0x1
	subs r2, 0x1
	cmp r2, r4
	bne sub_82E540A
_082E5418:
	str r3, [r5]
	str r1, [r6]
	pop {r4-r6}
	pop {r0}
	bx r0
	thumb_func_end sub_82E540A

	thumb_func_start rfu_REQ_changeMasterSlave
rfu_REQ_changeMasterSlave: @ 82E5424
	push {lr}
	movs r0, 0x1
	bl STWI_read_status
	lsls r0, 16
	lsrs r0, 16
	cmp r0, 0x1
	bne _082E5444
	ldr r0, _082E5440
	bl STWI_set_Callback_M
	bl STWI_send_MS_ChangeREQ
	b _082E544C
	.align 2, 0
_082E5440: .4byte rfu_STC_REQ_callback
_082E5444:
	movs r0, 0x27
	movs r1, 0
	bl rfu_STC_REQ_callback
_082E544C:
	pop {r0}
	bx r0
	thumb_func_end rfu_REQ_changeMasterSlave

	thumb_func_start rfu_getMasterSlave
rfu_getMasterSlave: @ 82E5450
	push {lr}
	movs r0, 0x1
	bl STWI_read_status
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x1
	bne _082E547E
	ldr r0, _082E5484
	ldr r1, [r0]
	adds r0, r1, 0
	adds r0, 0x2C
	ldrb r0, [r0]
	cmp r0, 0
	beq _082E547E
	ldrb r0, [r1, 0x6]
	cmp r0, 0x27
	beq _082E547C
	cmp r0, 0x25
	beq _082E547C
	cmp r0, 0x37
	bne _082E547E
_082E547C:
	movs r2, 0
_082E547E:
	adds r0, r2, 0
	pop {r1}
	bx r1
	.align 2, 0
_082E5484: .4byte gRfuState
	thumb_func_end rfu_getMasterSlave

	thumb_func_start rfu_clearAllSlot
rfu_clearAllSlot: @ 82E5488
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x4
	ldr r1, _082E550C
	ldrh r0, [r1]
	mov r8, r0
	movs r0, 0
	strh r0, [r1]
	movs r5, 0
	mov r0, sp
	adds r0, 0x2
	movs r7, 0
	adds r6, r0, 0
_082E54A4:
	mov r0, sp
	strh r7, [r0]
	ldr r0, _082E5510
	lsls r4, r5, 2
	adds r0, r4, r0
	ldr r1, [r0]
	mov r0, sp
	ldr r2, _082E5514
	bl CpuSet
	strh r7, [r6]
	ldr r0, _082E5518
	adds r4, r0
	ldr r1, [r4]
	adds r0, r6, 0
	ldr r2, _082E551C
	bl CpuSet
	ldr r3, _082E5520
	ldr r0, [r3]
	adds r0, 0x10
	adds r0, r5
	movs r1, 0x10
	strb r1, [r0]
	adds r0, r5, 0x1
	lsls r0, 16
	lsrs r5, r0, 16
	cmp r5, 0x3
	bls _082E54A4
	ldr r2, [r3]
	movs r1, 0
	movs r0, 0x57
	strb r0, [r2, 0xF]
	ldr r0, [r3]
	strb r1, [r0, 0x4]
	ldr r0, [r3]
	strb r1, [r0, 0x5]
	ldr r0, [r3]
	strb r1, [r0, 0x6]
	ldr r0, _082E5524
	ldr r0, [r0]
	strb r1, [r0, 0x2]
	ldr r0, _082E550C
	mov r1, r8
	strh r1, [r0]
	add sp, 0x4
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E550C: .4byte 0x04000208
_082E5510: .4byte gUnknown_03007880
_082E5514: .4byte 0x01000034
_082E5518: .4byte gUnknown_03007870
_082E551C: .4byte 0x0100000a
_082E5520: .4byte gUnknown_03007890
_082E5524: .4byte gUnknown_03007894
	thumb_func_end rfu_clearAllSlot

	thumb_func_start rfu_STC_releaseFrame
rfu_STC_releaseFrame: @ 82E5528
	push {r4-r6,lr}
	adds r4, r2, 0
	lsls r0, 24
	lsrs r2, r0, 24
	adds r5, r2, 0
	lsls r1, 24
	lsrs r3, r1, 24
	ldr r0, _082E5560
	ldr r0, [r0]
	ldrb r1, [r0]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _082E5568
	ldr r6, _082E5564
	cmp r3, 0
	bne _082E5554
	ldr r1, [r6]
	ldrb r0, [r1, 0xF]
	ldrh r4, [r4, 0x2E]
	adds r0, r4
	strb r0, [r1, 0xF]
_082E5554:
	ldr r1, [r6]
	ldrb r0, [r1, 0xF]
	adds r0, 0x3
	strb r0, [r1, 0xF]
	b _082E5588
	.align 2, 0
_082E5560: .4byte gUnknown_03007894
_082E5564: .4byte gUnknown_03007890
_082E5568:
	ldr r6, _082E5590
	cmp r3, 0
	bne _082E557C
	ldr r1, [r6]
	adds r1, 0x10
	adds r1, r2
	ldrb r0, [r1]
	ldrh r4, [r4, 0x2E]
	adds r0, r4
	strb r0, [r1]
_082E557C:
	ldr r1, [r6]
	adds r1, 0x10
	adds r1, r5
	ldrb r0, [r1]
	adds r0, 0x2
	strb r0, [r1]
_082E5588:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_082E5590: .4byte gUnknown_03007890
	thumb_func_end rfu_STC_releaseFrame

	thumb_func_start rfu_clearSlot
rfu_clearSlot: @ 82E5594
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	lsls r1, 24
	lsrs r7, r1, 24
	cmp r7, 0x3
	bls _082E55B4
	movs r0, 0x80
	lsls r0, 3
	b _082E572C
_082E55B4:
	movs r0, 0xF
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	bne _082E55C4
	movs r0, 0xC0
	lsls r0, 3
	b _082E572C
_082E55C4:
	ldr r1, _082E5608
	ldrh r0, [r1]
	mov r10, r0
	movs r0, 0
	strh r0, [r1]
	movs r0, 0xC
	mov r2, r8
	ands r0, r2
	cmp r0, 0
	beq _082E568C
	movs r3, 0
	ldr r1, _082E560C
	lsls r0, r7, 2
	adds r0, r1
	mov r9, r0
_082E55E2:
	movs r4, 0
	cmp r3, 0
	bne _082E5614
	movs r0, 0x4
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	beq _082E5634
	mov r2, r9
	ldr r4, [r2]
	ldr r0, _082E5610
	ldr r2, [r0]
	adds r0, r4, 0
	adds r0, 0x2C
	ldrb r1, [r0]
	ldrb r0, [r2, 0x4]
	bics r0, r1
	strb r0, [r2, 0x4]
	b _082E5634
	.align 2, 0
_082E5608: .4byte 0x04000208
_082E560C: .4byte gUnknown_03007880
_082E5610: .4byte gUnknown_03007890
_082E5614:
	movs r0, 0x8
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	beq _082E5634
	mov r2, r9
	ldr r0, [r2]
	adds r4, r0, 0
	adds r4, 0x34
	ldr r0, _082E56C8
	ldr r2, [r0]
	movs r1, 0x1
	lsls r1, r7
	ldrb r0, [r2, 0x5]
	bics r0, r1
	strb r0, [r2, 0x5]
_082E5634:
	adds r6, r3, 0x1
	cmp r4, 0
	beq _082E5684
	ldrh r0, [r4]
	movs r2, 0x80
	lsls r2, 8
	adds r1, r2, 0
	ands r0, r1
	cmp r0, 0
	beq _082E5674
	lsls r1, r3, 24
	lsrs r1, 24
	adds r0, r7, 0
	adds r2, r4, 0
	bl rfu_STC_releaseFrame
	movs r1, 0
	adds r2, r4, 0
	adds r2, 0x2C
	movs r5, 0x1
	movs r3, 0
_082E565E:
	ldrb r0, [r2]
	asrs r0, r1
	ands r0, r5
	cmp r0, 0
	beq _082E566A
	strh r3, [r4, 0x2]
_082E566A:
	adds r0, r1, 0x1
	lsls r0, 16
	lsrs r1, r0, 16
	cmp r1, 0x3
	bls _082E565E
_082E5674:
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	mov r0, sp
	adds r1, r4, 0
	ldr r2, _082E56CC
	bl CpuSet
_082E5684:
	lsls r0, r6, 16
	lsrs r3, r0, 16
	cmp r3, 0x1
	bls _082E55E2
_082E568C:
	movs r0, 0x1
	mov r4, r8
	ands r0, r4
	cmp r0, 0
	beq _082E5702
	ldr r1, _082E56D0
	lsls r0, r7, 2
	adds r0, r1
	ldr r3, [r0]
	ldrh r1, [r3]
	movs r0, 0x80
	lsls r0, 8
	ands r0, r1
	cmp r0, 0
	beq _082E56F4
	ldr r0, _082E56D4
	ldr r0, [r0]
	ldrb r1, [r0]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _082E56D8
	ldr r2, _082E56C8
	ldr r1, [r2]
	ldrb r0, [r1, 0xF]
	adds r0, 0x3
	ldrb r4, [r3, 0x4]
	adds r0, r4
	strb r0, [r1, 0xF]
	b _082E56EA
	.align 2, 0
_082E56C8: .4byte gUnknown_03007890
_082E56CC: .4byte 0x0100001a
_082E56D0: .4byte gUnknown_03007870
_082E56D4: .4byte gUnknown_03007894
_082E56D8:
	ldr r2, _082E573C
	ldr r1, [r2]
	adds r1, 0x10
	adds r1, r7
	ldrb r0, [r1]
	adds r0, 0x2
	ldrb r4, [r3, 0x4]
	adds r0, r4
	strb r0, [r1]
_082E56EA:
	ldr r2, [r2]
	ldrb r1, [r3, 0x3]
	ldrb r0, [r2, 0x6]
	bics r0, r1
	strb r0, [r2, 0x6]
_082E56F4:
	mov r0, sp
	movs r1, 0
	strh r1, [r0]
	ldr r2, _082E5740
	adds r1, r3, 0
	bl CpuSet
_082E5702:
	movs r0, 0x2
	mov r1, r8
	ands r0, r1
	cmp r0, 0
	beq _082E5724
	mov r1, sp
	movs r0, 0
	strh r0, [r1]
	ldr r1, _082E5744
	lsls r0, r7, 2
	adds r0, r1
	ldr r1, [r0]
	adds r1, 0xC
	ldr r2, _082E5748
	mov r0, sp
	bl CpuSet
_082E5724:
	ldr r0, _082E574C
	mov r2, r10
	strh r2, [r0]
	movs r0, 0
_082E572C:
	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
_082E573C: .4byte gUnknown_03007890
_082E5740: .4byte 0x01000006
_082E5744: .4byte gUnknown_03007870
_082E5748: .4byte 0x01000004
_082E574C: .4byte 0x04000208
	thumb_func_end rfu_clearSlot

	thumb_func_start rfu_setRecvBuffer
rfu_setRecvBuffer: @ 82E5750
	push {r4-r6,lr}
	adds r5, r2, 0
	adds r6, r3, 0
	lsls r0, 24
	lsrs r3, r0, 24
	adds r2, r3, 0
	lsls r1, 24
	lsrs r1, 24
	adds r4, r1, 0
	cmp r1, 0x3
	bls _082E576C
	movs r0, 0x80
	lsls r0, 3
	b _082E57A4
_082E576C:
	movs r0, 0x20
	ands r0, r3
	cmp r0, 0
	beq _082E5788
	ldr r0, _082E5784
	lsls r1, 2
	adds r1, r0
	ldr r0, [r1]
	str r5, [r0, 0x68]
	str r6, [r0, 0x6C]
	b _082E57A2
	.align 2, 0
_082E5784: .4byte gUnknown_03007880
_082E5788:
	movs r0, 0x10
	ands r2, r0
	cmp r2, 0
	bne _082E5796
	movs r0, 0xC0
	lsls r0, 3
	b _082E57A4
_082E5796:
	ldr r0, _082E57AC
	lsls r1, r4, 2
	adds r1, r0
	ldr r0, [r1]
	str r5, [r0, 0x14]
	str r6, [r0, 0x18]
_082E57A2:
	movs r0, 0
_082E57A4:
	pop {r4-r6}
	pop {r1}
	bx r1
	.align 2, 0
_082E57AC: .4byte gUnknown_03007870
	thumb_func_end rfu_setRecvBuffer

	thumb_func_start rfu_NI_setSendData
rfu_NI_setSendData: @ 82E57B0
	push {r4-r6,lr}
	sub sp, 0x4
	adds r4, r0, 0
	adds r5, r1, 0
	adds r6, r2, 0
	lsls r4, 24
	lsrs r4, 24
	lsls r5, 24
	lsrs r5, 24
	str r3, [sp]
	movs r0, 0x20
	adds r1, r4, 0
	adds r2, r5, 0
	adds r3, r6, 0
	bl rfu_STC_setSendData_org
	lsls r0, 16
	lsrs r0, 16
	add sp, 0x4
	pop {r4-r6}
	pop {r1}
	bx r1
	thumb_func_end rfu_NI_setSendData

	thumb_func_start rfu_UNI_setSendData
rfu_UNI_setSendData: @ 82E57DC
	push {lr}
	sub sp, 0x4
	adds r3, r1, 0
	lsls r0, 24
	lsrs r1, r0, 24
	lsls r2, 24
	lsrs r2, 24
	ldr r0, _082E57F8
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E57FC
	adds r0, r2, 0x3
	b _082E57FE
	.align 2, 0
_082E57F8: .4byte gUnknown_03007890
_082E57FC:
	adds r0, r2, 0x2
_082E57FE:
	lsls r0, 24
	lsrs r2, r0, 24
	movs r0, 0
	str r0, [sp]
	movs r0, 0x10
	bl rfu_STC_setSendData_org
	lsls r0, 16
	lsrs r0, 16
	add sp, 0x4
	pop {r1}
	bx r1
	thumb_func_end rfu_UNI_setSendData

	thumb_func_start rfu_NI_CHILD_setSendGameName
rfu_NI_CHILD_setSendGameName: @ 82E5818
	push {lr}
	sub sp, 0x4
	adds r2, r1, 0
	lsls r0, 24
	lsrs r0, 24
	lsls r2, 24
	lsrs r2, 24
	movs r1, 0x80
	lsls r1, 17
	lsls r1, r0
	lsrs r1, 24
	ldr r0, _082E5848
	ldr r3, [r0]
	adds r3, 0x98
	movs r0, 0x1A
	str r0, [sp]
	movs r0, 0x40
	bl rfu_STC_setSendData_org
	lsls r0, 16
	lsrs r0, 16
	add sp, 0x4
	pop {r1}
	bx r1
	.align 2, 0
_082E5848: .4byte gUnknown_03007890
	thumb_func_end rfu_NI_CHILD_setSendGameName

	thumb_func_start rfu_STC_setSendData_org
rfu_STC_setSendData_org: @ 82E584C
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	str r3, [sp]
	lsls r0, 24
	lsrs r6, r0, 24
	lsls r1, 24
	lsrs r3, r1, 24
	lsls r2, 24
	lsrs r2, 24
	mov r8, r2
	ldr r0, _082E5878
	ldr r2, [r0]
	ldrb r1, [r2]
	mov r10, r0
	cmp r1, 0xFF
	bne _082E5880
	ldr r0, _082E587C
	b _082E5A36
	.align 2, 0
_082E5878: .4byte gUnknown_03007890
_082E587C: .4byte 0x00000301
_082E5880:
	movs r0, 0xF
	ands r0, r3
	cmp r0, 0
	bne _082E588E
	movs r0, 0x80
	lsls r0, 3
	b _082E5A36
_082E588E:
	ldrb r0, [r2, 0x2]
	ldrb r1, [r2, 0x3]
	orrs r0, r1
	ands r0, r3
	cmp r0, r3
	beq _082E58A4
	ldr r0, _082E58A0
	b _082E5A36
	.align 2, 0
_082E58A0: .4byte 0x00000401
_082E58A4:
	movs r0, 0x10
	ands r0, r6
	cmp r0, 0
	beq _082E58B0
	ldrb r0, [r2, 0x6]
	b _082E58B2
_082E58B0:
	ldrb r0, [r2, 0x4]
_082E58B2:
	ands r0, r3
	cmp r0, 0
	beq _082E58C0
	ldr r0, _082E58BC
	b _082E5A36
	.align 2, 0
_082E58BC: .4byte 0x00000402
_082E58C0:
	movs r2, 0
	movs r0, 0x1
	ands r0, r3
	ldr r4, _082E58F0
	cmp r0, 0
	bne _082E58E2
	movs r1, 0x1
_082E58CE:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bhi _082E58E2
	adds r0, r3, 0
	asrs r0, r2
	ands r0, r1
	cmp r0, 0
	beq _082E58CE
_082E58E2:
	mov r0, r10
	ldr r1, [r0]
	ldrb r0, [r1]
	cmp r0, 0x1
	bne _082E58F4
	adds r1, 0xF
	b _082E58FE
	.align 2, 0
_082E58F0: .4byte gUnknown_089A3220
_082E58F4:
	cmp r0, 0
	bne _082E5900
	adds r0, r2, 0
	adds r0, 0x10
	adds r1, r0
_082E58FE:
	mov r9, r1
_082E5900:
	mov r1, r10
	ldr r0, [r1]
	ldrb r0, [r0]
	lsls r0, 4
	adds r0, r4
	ldrb r4, [r0]
	mov r0, r9
	ldrb r0, [r0]
	cmp r8, r0
	bhi _082E5918
	cmp r8, r4
	bhi _082E591E
_082E5918:
	movs r0, 0xA0
	lsls r0, 3
	b _082E5A36
_082E591E:
	ldr r1, _082E596C
	ldrh r0, [r1]
	str r0, [sp, 0x4]
	movs r7, 0
	strh r7, [r1]
	movs r0, 0x20
	ands r0, r6
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0
	bne _082E5938
	cmp r6, 0x40
	bne _082E59F4
_082E5938:
	ldr r1, _082E5970
	lsls r0, r2, 2
	adds r0, r1
	ldr r0, [r0]
	mov r12, r0
	movs r1, 0
	strh r1, [r0, 0x18]
	mov r1, r12
	adds r1, 0x2D
	mov r2, r12
	str r1, [r2, 0x4]
	movs r0, 0x7
	str r0, [r2, 0x14]
	mov r0, r12
	adds r0, 0x2C
	strb r3, [r0]
	strb r3, [r2, 0x1A]
	mov r2, r8
	subs r0, r2, r4
	mov r2, r12
	strh r0, [r2, 0x2E]
	cmp r5, 0
	beq _082E5974
	strb r7, [r1]
	b _082E5978
	.align 2, 0
_082E596C: .4byte 0x04000208
_082E5970: .4byte gUnknown_03007880
_082E5974:
	movs r0, 0x1
	strb r0, [r1]
_082E5978:
	ldr r0, [sp, 0x28]
	mov r1, r12
	str r0, [r1, 0x30]
	ldr r2, [sp]
	str r2, [r1, 0x28]
	movs r1, 0
	mov r0, r12
	strb r1, [r0, 0x1F]
	adds r0, 0x20
	strb r1, [r0]
	mov r4, r12
	adds r4, 0x1B
	movs r6, 0
	mov r2, r12
	adds r2, 0x21
	movs r5, 0x1
_082E5998:
	adds r0, r4, r1
	strb r6, [r0]
	adds r0, r2, r1
	strb r5, [r0]
	adds r0, r1, 0x1
	lsls r0, 24
	lsrs r1, r0, 24
	cmp r1, 0x3
	bls _082E5998
	movs r2, 0
	movs r5, 0x1
	ldr r4, _082E59EC
	movs r1, 0
_082E59B2:
	adds r0, r3, 0
	asrs r0, r2
	ands r0, r5
	cmp r0, 0
	beq _082E59C4
	lsls r0, r2, 2
	adds r0, r4
	ldr r0, [r0]
	strh r1, [r0, 0x2]
_082E59C4:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _082E59B2
	mov r1, r10
	ldr r2, [r1]
	ldrb r1, [r2, 0x4]
	adds r0, r3, 0
	orrs r0, r1
	strb r0, [r2, 0x4]
	mov r2, r9
	ldrb r0, [r2]
	mov r1, r8
	subs r0, r1
	strb r0, [r2]
	ldr r0, _082E59F0
	mov r2, r12
	strh r0, [r2]
	b _082E5A2C
	.align 2, 0
_082E59EC: .4byte gUnknown_03007880
_082E59F0: .4byte 0x00008021
_082E59F4:
	movs r0, 0x10
	ands r0, r6
	cmp r0, 0
	beq _082E5A2C
	ldr r1, _082E5A48
	lsls r0, r2, 2
	adds r0, r1
	ldr r1, [r0]
	strb r3, [r1, 0x3]
	ldr r0, [sp]
	str r0, [r1, 0x8]
	mov r2, r8
	subs r0, r2, r4
	strh r0, [r1, 0x4]
	mov r2, r9
	ldrb r0, [r2]
	mov r2, r8
	subs r0, r2
	mov r2, r9
	strb r0, [r2]
	ldr r0, _082E5A4C
	strh r0, [r1]
	mov r0, r10
	ldr r2, [r0]
	ldrb r1, [r2, 0x6]
	adds r0, r3, 0
	orrs r0, r1
	strb r0, [r2, 0x6]
_082E5A2C:
	ldr r0, _082E5A50
	mov r1, sp
	ldrh r1, [r1, 0x4]
	strh r1, [r0]
	movs r0, 0
_082E5A36:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_082E5A48: .4byte gUnknown_03007870
_082E5A4C: .4byte 0x00008024
_082E5A50: .4byte 0x04000208
	thumb_func_end rfu_STC_setSendData_org

	thumb_func_start rfu_changeSendTarget
rfu_changeSendTarget: @ 82E5A54
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	adds r3, r0, 0
	lsls r1, 24
	lsrs r7, r1, 24
	lsls r2, 24
	lsrs r6, r2, 24
	cmp r7, 0x3
	bls _082E5A78
	movs r0, 0x80
	lsls r0, 3
	b _082E5BAC
_082E5A78:
	cmp r0, 0x20
	bne _082E5B18
	ldr r0, _082E5B08
	mov r12, r0
	lsls r0, r7, 2
	add r0, r12
	ldr r5, [r0]
	ldrh r2, [r5]
	ldr r1, _082E5B0C
	adds r0, r1, 0
	ands r0, r2
	cmp r0, r1
	bne _082E5B2E
	ldrb r0, [r5, 0x1A]
	adds r3, r6, 0
	eors r3, r0
	adds r2, r3, 0
	ands r2, r6
	cmp r2, 0
	bne _082E5B66
	cmp r3, 0
	bne _082E5AA6
	b _082E5BAA
_082E5AA6:
	ldr r1, _082E5B10
	ldrh r0, [r1]
	mov r8, r0
	strh r2, [r1]
	movs r2, 0
	mvns r1, r3
	str r1, [sp]
	lsls r4, r6, 24
	mov r10, r4
	movs r0, 0x1
	mov r9, r0
	movs r1, 0
_082E5ABE:
	adds r0, r3, 0
	asrs r0, r2
	mov r4, r9
	ands r0, r4
	cmp r0, 0
	beq _082E5AD2
	lsls r0, r2, 2
	add r0, r12
	ldr r0, [r0]
	strh r1, [r0, 0x2]
_082E5AD2:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _082E5ABE
	ldr r0, _082E5B14
	ldr r1, [r0]
	ldrb r0, [r1, 0x4]
	ldr r2, [sp]
	ands r2, r0
	strb r2, [r1, 0x4]
	strb r6, [r5, 0x1A]
	mov r0, r10
	cmp r0, 0
	bne _082E5AFE
	adds r0, r7, 0
	movs r1, 0
	adds r2, r5, 0
	bl rfu_STC_releaseFrame
	movs r0, 0x27
	strh r0, [r5]
_082E5AFE:
	ldr r0, _082E5B10
	mov r1, r8
	strh r1, [r0]
	b _082E5BAA
	.align 2, 0
_082E5B08: .4byte gUnknown_03007880
_082E5B0C: .4byte 0x00008020
_082E5B10: .4byte 0x04000208
_082E5B14: .4byte gUnknown_03007890
_082E5B18:
	cmp r3, 0x10
	bne _082E5BA4
	ldr r3, _082E5B34
	lsls r1, r7, 2
	adds r0, r1, r3
	ldr r0, [r0]
	ldrh r2, [r0]
	ldr r0, _082E5B38
	adds r5, r3, 0
	cmp r2, r0
	beq _082E5B40
_082E5B2E:
	ldr r0, _082E5B3C
	b _082E5BAC
	.align 2, 0
_082E5B34: .4byte gUnknown_03007870
_082E5B38: .4byte 0x00008024
_082E5B3C: .4byte 0x00000403
_082E5B40:
	movs r3, 0
	movs r2, 0
	adds r4, r5, 0
_082E5B46:
	cmp r2, r7
	beq _082E5B54
	lsls r0, r2, 2
	adds r0, r4
	ldr r0, [r0]
	ldrb r0, [r0, 0x3]
	orrs r3, r0
_082E5B54:
	adds r0, r2, 0x1
	lsls r0, 24
	lsrs r2, r0, 24
	cmp r2, 0x3
	bls _082E5B46
	adds r2, r6, 0
	ands r2, r3
	cmp r2, 0
	beq _082E5B70
_082E5B66:
	ldr r0, _082E5B6C
	b _082E5BAC
	.align 2, 0
_082E5B6C: .4byte 0x00000404
_082E5B70:
	ldr r3, _082E5B9C
	ldrh r0, [r3]
	mov r8, r0
	strh r2, [r3]
	ldr r4, _082E5BA0
	ldr r2, [r4]
	adds r5, r1, r5
	ldr r0, [r5]
	ldrb r1, [r0, 0x3]
	ldrb r0, [r2, 0x6]
	bics r0, r1
	strb r0, [r2, 0x6]
	ldr r2, [r4]
	ldrb r1, [r2, 0x6]
	adds r0, r6, 0
	orrs r0, r1
	strb r0, [r2, 0x6]
	ldr r0, [r5]
	strb r6, [r0, 0x3]
	mov r2, r8
	strh r2, [r3]
	b _082E5BAA
	.align 2, 0
_082E5B9C: .4byte 0x04000208
_082E5BA0: .4byte gUnknown_03007890
_082E5BA4:
	movs r0, 0xC0
	lsls r0, 3
	b _082E5BAC
_082E5BAA:
	movs r0, 0
_082E5BAC:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end rfu_changeSendTarget

	thumb_func_start rfu_NI_stopReceivingData
rfu_NI_stopReceivingData: @ 82E5BBC
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _082E5BCC
	movs r0, 0x80
	lsls r0, 3
	b _082E5C26
_082E5BCC:
	ldr r1, _082E5BF8
	lsls r0, r3, 2
	adds r0, r1
	ldr r2, [r0]
	adds r5, r2, 0
	adds r5, 0x34
	ldr r1, _082E5BFC
	ldrh r0, [r1]
	adds r4, r0, 0
	movs r0, 0
	strh r0, [r1]
	ldrh r1, [r2, 0x34]
	movs r0, 0x80
	lsls r0, 8
	ands r0, r1
	cmp r0, 0
	beq _082E5C20
	ldr r0, _082E5C00
	cmp r1, r0
	bne _082E5C04
	movs r0, 0x48
	b _082E5C06
	.align 2, 0
_082E5BF8: .4byte gUnknown_03007880
_082E5BFC: .4byte 0x04000208
_082E5C00: .4byte 0x00008043
_082E5C04:
	movs r0, 0x47
_082E5C06:
	strh r0, [r2, 0x34]
	ldr r0, _082E5C2C
	ldr r2, [r0]
	movs r1, 0x1
	lsls r1, r3
	ldrb r0, [r2, 0x5]
	bics r0, r1
	strb r0, [r2, 0x5]
	adds r0, r3, 0
	movs r1, 0x1
	adds r2, r5, 0
	bl rfu_STC_releaseFrame
_082E5C20:
	ldr r0, _082E5C30
	strh r4, [r0]
	movs r0, 0
_082E5C26:
	pop {r4,r5}
	pop {r1}
	bx r1
	.align 2, 0
_082E5C2C: .4byte gUnknown_03007890
_082E5C30: .4byte 0x04000208
	thumb_func_end rfu_NI_stopReceivingData

	thumb_func_start rfu_UNI_changeAndReadySendData
rfu_UNI_changeAndReadySendData: @ 82E5C34
	push {r4-r7,lr}
	adds r7, r1, 0
	lsls r0, 24
	lsrs r0, 24
	adds r3, r0, 0
	lsls r2, 24
	lsrs r5, r2, 24
	cmp r0, 0x3
	bls _082E5C4C
	movs r0, 0x80
	lsls r0, 3
	b _082E5CC0
_082E5C4C:
	ldr r1, _082E5C60
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	ldrh r1, [r4]
	ldr r0, _082E5C64
	cmp r1, r0
	beq _082E5C6C
	ldr r0, _082E5C68
	b _082E5CC0
	.align 2, 0
_082E5C60: .4byte gUnknown_03007870
_082E5C64: .4byte 0x00008024
_082E5C68: .4byte 0x00000403
_082E5C6C:
	ldr r0, _082E5C80
	ldr r1, [r0]
	ldrb r0, [r1]
	cmp r0, 0x1
	bne _082E5C84
	adds r6, r1, 0
	adds r6, 0xF
	ldrb r0, [r4, 0x4]
	ldrb r1, [r1, 0xF]
	b _082E5C92
	.align 2, 0
_082E5C80: .4byte gUnknown_03007890
_082E5C84:
	adds r0, r3, 0
	adds r0, 0x10
	adds r6, r1, r0
	adds r1, 0x10
	adds r1, r3
	ldrb r0, [r4, 0x4]
	ldrb r1, [r1]
_082E5C92:
	adds r0, r1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, r5
	bcc _082E5CBC
	ldr r2, _082E5CB8
	ldrh r1, [r2]
	movs r0, 0
	strh r0, [r2]
	str r7, [r4, 0x8]
	subs r0, r3, r5
	strb r0, [r6]
	strh r5, [r4, 0x4]
	movs r0, 0x1
	strb r0, [r4, 0x2]
	strh r1, [r2]
	movs r0, 0
	b _082E5CC0
	.align 2, 0
_082E5CB8: .4byte 0x04000208
_082E5CBC:
	movs r0, 0xA0
	lsls r0, 3
_082E5CC0:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end rfu_UNI_changeAndReadySendData

	thumb_func_start rfu_UNI_readySendData
rfu_UNI_readySendData: @ 82E5CC8
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	bhi _082E5CE6
	ldr r1, _082E5CEC
	lsls r0, 2
	adds r0, r1
	ldr r2, [r0]
	ldrh r1, [r2]
	ldr r0, _082E5CF0
	cmp r1, r0
	bne _082E5CE6
	movs r0, 0x1
	strb r0, [r2, 0x2]
_082E5CE6:
	pop {r0}
	bx r0
	.align 2, 0
_082E5CEC: .4byte gUnknown_03007870
_082E5CF0: .4byte 0x00008024
	thumb_func_end rfu_UNI_readySendData

	thumb_func_start rfu_UNI_clearRecvNewDataFlag
rfu_UNI_clearRecvNewDataFlag: @ 82E5CF4
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x3
	bhi _082E5D0A
	ldr r1, _082E5D10
	lsls r0, 2
	adds r0, r1
	ldr r1, [r0]
	movs r0, 0
	strb r0, [r1, 0x12]
_082E5D0A:
	pop {r0}
	bx r0
	.align 2, 0
_082E5D10: .4byte gUnknown_03007870
	thumb_func_end rfu_UNI_clearRecvNewDataFlag

	thumb_func_start rfu_REQ_sendData
rfu_REQ_sendData: @ 82E5D14
	push {r4,r5,lr}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _082E5D60
	ldr r2, [r0]
	ldrb r1, [r2]
	adds r4, r0, 0
	cmp r1, 0xFF
	bne _082E5D28
	b _082E5E4E
_082E5D28:
	cmp r1, 0x1
	bne _082E5DB8
	ldrb r0, [r2, 0x4]
	ldrb r1, [r2, 0x5]
	adds r3, r0, 0
	orrs r3, r1
	ldrb r0, [r2, 0x6]
	orrs r3, r0
	cmp r3, 0
	bne _082E5DB8
	ldr r0, _082E5D64
	ldr r2, [r0]
	ldrb r1, [r2, 0x3]
	adds r4, r0, 0
	cmp r1, 0
	beq _082E5D50
	movs r0, 0x10
	strb r0, [r2, 0x8]
	ldr r0, [r4]
	strb r3, [r0, 0x7]
_082E5D50:
	ldr r1, [r4]
	ldrb r0, [r1, 0x8]
	cmp r0, 0
	beq _082E5D68
	subs r0, 0x1
	strb r0, [r1, 0x8]
	b _082E5D6E
	.align 2, 0
_082E5D60: .4byte gUnknown_03007890
_082E5D64: .4byte gUnknown_03007894
_082E5D68:
	ldrb r0, [r1, 0x7]
	adds r0, 0x1
	strb r0, [r1, 0x7]
_082E5D6E:
	ldr r1, [r4]
	ldrb r0, [r1, 0x8]
	cmp r0, 0
	bne _082E5D80
	ldrb r1, [r1, 0x7]
	movs r0, 0xF
	ands r0, r1
	cmp r0, 0
	bne _082E5E12
_082E5D80:
	ldr r4, _082E5DA4
	ldr r1, [r4]
	movs r0, 0x1
	str r0, [r1, 0x68]
	movs r0, 0xFF
	str r0, [r1, 0x78]
	ldr r0, _082E5DA8
	bl STWI_set_Callback_M
	cmp r5, 0
	bne _082E5DAC
	ldr r0, [r4]
	adds r0, 0x68
	movs r1, 0x1
	bl STWI_send_DataTxREQ
	b _082E5E4E
	.align 2, 0
_082E5DA4: .4byte gUnknown_03007898
_082E5DA8: .4byte sub_82E5F00
_082E5DAC:
	ldr r0, [r4]
	adds r0, 0x68
	movs r1, 0x1
	bl STWI_send_DataTxAndChangeREQ
	b _082E5E4E
_082E5DB8:
	ldr r0, [r4]
	ldrb r0, [r0, 0xE]
	cmp r0, 0
	bne _082E5DC4
	bl rfu_constructSendLLFrame
_082E5DC4:
	ldr r0, [r4]
	ldrb r0, [r0, 0xE]
	cmp r0, 0
	beq _082E5E12
	ldr r0, _082E5DF0
	bl STWI_set_Callback_M
	cmp r5, 0
	beq _082E5DFC
	ldr r0, _082E5DF4
	ldr r0, [r0]
	adds r0, 0x68
	ldr r1, _082E5DF8
	ldr r1, [r1]
	ldr r1, [r1, 0x24]
	adds r1, 0x4
	lsls r1, 24
	lsrs r1, 24
	bl STWI_send_DataTxAndChangeREQ
	b _082E5E4E
	.align 2, 0
_082E5DF0: .4byte rfu_CB_sendData
_082E5DF4: .4byte gUnknown_03007898
_082E5DF8: .4byte gUnknown_03007894
_082E5DFC:
	ldr r0, _082E5E34
	ldr r0, [r0]
	adds r0, 0x68
	ldr r1, _082E5E38
	ldr r1, [r1]
	ldr r1, [r1, 0x24]
	adds r1, 0x4
	lsls r1, 24
	lsrs r1, 24
	bl STWI_send_DataTxREQ
_082E5E12:
	cmp r5, 0
	beq _082E5E4E
	ldr r0, _082E5E3C
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E5E44
	ldr r0, _082E5E40
	ldr r0, [r0]
	ldr r1, [r0, 0x1C]
	cmp r1, 0
	beq _082E5E4E
	movs r0, 0x27
	bl _call_via_r1
	b _082E5E4E
	.align 2, 0
_082E5E34: .4byte gUnknown_03007898
_082E5E38: .4byte gUnknown_03007894
_082E5E3C: .4byte gUnknown_03007890
_082E5E40: .4byte gRfuState
_082E5E44:
	ldr r0, _082E5E54
	bl STWI_set_Callback_M
	bl STWI_send_MS_ChangeREQ
_082E5E4E:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E5E54: .4byte rfu_CB_sendData2
	thumb_func_end rfu_REQ_sendData

	thumb_func_start rfu_CB_sendData
rfu_CB_sendData: @ 82E5E58
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r1, 16
	lsrs r7, r1, 16
	cmp r7, 0
	bne _082E5EC2
	movs r6, 0
	ldr r0, _082E5EE0
	mov r8, r0
_082E5E6C:
	ldr r0, _082E5EE4
	lsls r2, r6, 2
	adds r0, r2, r0
	ldr r1, [r0]
	ldrb r0, [r1, 0x2]
	cmp r0, 0
	beq _082E5E7E
	movs r0, 0
	strb r0, [r1, 0x2]
_082E5E7E:
	ldr r0, _082E5EE8
	adds r0, r2, r0
	ldr r4, [r0]
	ldrh r0, [r4]
	cmp r0, r8
	bne _082E5EB8
	adds r0, r6, 0
	movs r1, 0
	adds r2, r4, 0
	bl rfu_STC_releaseFrame
	ldr r5, _082E5EEC
	ldr r2, [r5]
	ldrb r1, [r4, 0x1A]
	ldrb r0, [r2, 0x4]
	bics r0, r1
	strb r0, [r2, 0x4]
	adds r0, r4, 0
	adds r0, 0x2D
	ldrb r3, [r0]
	cmp r3, 0x1
	bne _082E5EB4
	ldr r1, [r5]
	lsls r3, r6
	ldrb r0, [r1, 0x7]
	orrs r3, r0
	strb r3, [r1, 0x7]
_082E5EB4:
	movs r0, 0x26
	strh r0, [r4]
_082E5EB8:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _082E5E6C
_082E5EC2:
	ldr r0, _082E5EEC
	ldr r1, [r0]
	ldrb r0, [r1, 0xE]
	movs r0, 0
	strb r0, [r1, 0xE]
	movs r0, 0x24
	adds r1, r7, 0
	bl rfu_STC_REQ_callback
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E5EE0: .4byte 0x00008020
_082E5EE4: .4byte gUnknown_03007870
_082E5EE8: .4byte gUnknown_03007880
_082E5EEC: .4byte gUnknown_03007890
	thumb_func_end rfu_CB_sendData

	thumb_func_start rfu_CB_sendData2
rfu_CB_sendData2: @ 82E5EF0
	push {lr}
	lsls r1, 16
	lsrs r1, 16
	movs r0, 0x24
	bl rfu_STC_REQ_callback
	pop {r0}
	bx r0
	thumb_func_end rfu_CB_sendData2

	thumb_func_start sub_82E5F00
sub_82E5F00: @ 82E5F00
	push {lr}
	lsls r0, 24
	lsrs r0, 24
	lsls r1, 16
	lsrs r1, 16
	cmp r1, 0
	beq _082E5F16
	movs r0, 0x24
	bl rfu_STC_REQ_callback
	b _082E5F22
_082E5F16:
	cmp r0, 0xFF
	bne _082E5F22
	movs r0, 0xFF
	movs r1, 0
	bl rfu_STC_REQ_callback
_082E5F22:
	pop {r0}
	bx r0
	thumb_func_end sub_82E5F00

	thumb_func_start rfu_constructSendLLFrame
rfu_constructSendLLFrame: @ 82E5F28
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	ldr r0, _082E5FD4
	ldr r2, [r0]
	ldrb r0, [r2]
	cmp r0, 0xFF
	bne _082E5F40
	b _082E6044
_082E5F40:
	ldrb r0, [r2, 0x4]
	ldrb r1, [r2, 0x5]
	orrs r0, r1
	ldrb r1, [r2, 0x6]
	orrs r0, r1
	cmp r0, 0
	beq _082E6044
	ldrb r0, [r2, 0xE]
	movs r0, 0
	strb r0, [r2, 0xE]
	mov r8, r0
	ldr r0, _082E5FD8
	ldr r0, [r0]
	adds r0, 0x6C
	str r0, [sp]
	movs r6, 0
	movs r0, 0x80
	lsls r0, 8
	mov r9, r0
	ldr r1, _082E5FDC
	mov r10, r1
_082E5F6A:
	movs r5, 0
	ldr r0, _082E5FE0
	lsls r7, r6, 2
	adds r4, r7, r0
	ldr r2, [r4]
	ldrh r1, [r2]
	mov r0, r9
	ands r0, r1
	cmp r0, 0
	beq _082E5F8A
	adds r0, r6, 0
	mov r1, sp
	bl rfu_STC_NI_constructLLSF
	lsls r0, 16
	lsrs r5, r0, 16
_082E5F8A:
	ldr r2, [r4]
	ldrh r1, [r2, 0x34]
	mov r0, r9
	ands r0, r1
	cmp r0, 0
	beq _082E5FA6
	adds r2, 0x34
	adds r0, r6, 0
	mov r1, sp
	bl rfu_STC_NI_constructLLSF
	lsls r0, 16
	lsrs r0, 16
	adds r5, r0
_082E5FA6:
	ldr r0, _082E5FE4
	adds r0, r7, r0
	ldr r0, [r0]
	ldrh r0, [r0]
	cmp r0, r10
	bne _082E5FC0
	adds r0, r6, 0
	mov r1, sp
	bl rfu_STC_UNI_constructLLSF
	lsls r0, 16
	lsrs r0, 16
	adds r5, r0
_082E5FC0:
	cmp r5, 0
	beq _082E5FF4
	ldr r0, _082E5FD4
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E5FE8
	add r8, r5
	b _082E5FF4
	.align 2, 0
_082E5FD4: .4byte gUnknown_03007890
_082E5FD8: .4byte gUnknown_03007898
_082E5FDC: .4byte 0x00008024
_082E5FE0: .4byte gUnknown_03007880
_082E5FE4: .4byte gUnknown_03007870
_082E5FE8:
	adds r0, r7, r6
	adds r0, 0x8
	lsls r5, r0
	mov r2, r8
	orrs r2, r5
	mov r8, r2
_082E5FF4:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _082E5F6A
	ldr r6, _082E6054
	mov r0, r8
	cmp r0, 0
	beq _082E603E
	ldr r2, [sp]
	movs r0, 0x3
	ands r0, r2
	ldr r5, _082E6058
	ldr r1, _082E605C
	cmp r0, 0
	beq _082E6026
	movs r4, 0
	movs r3, 0x3
_082E6018:
	strb r4, [r2]
	adds r0, r2, 0x1
	str r0, [sp]
	adds r2, r0, 0
	ands r0, r3
	cmp r0, 0
	bne _082E6018
_082E6026:
	ldr r0, [r1]
	mov r2, r8
	str r2, [r0, 0x68]
	ldr r0, [r5]
	ldrb r0, [r0]
	cmp r0, 0
	bne _082E603E
	ldr r0, [sp]
	subs r0, 0x6C
	ldr r1, [r1]
	subs r0, r1
	mov r8, r0
_082E603E:
	ldr r0, [r6]
	mov r1, r8
	str r1, [r0, 0x24]
_082E6044:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6054: .4byte gUnknown_03007894
_082E6058: .4byte gUnknown_03007890
_082E605C: .4byte gUnknown_03007898
	thumb_func_end rfu_constructSendLLFrame

	thumb_func_start rfu_STC_NI_constructLLSF
rfu_STC_NI_constructLLSF: @ 82E6060
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	mov r12, r1
	adds r4, r2, 0
	lsls r0, 24
	lsrs r0, 24
	mov r10, r0
	ldr r2, _082E60DC
	ldr r0, [r2]
	ldrb r0, [r0]
	lsls r0, 4
	ldr r1, _082E60E0
	adds r0, r1
	mov r8, r0
	ldrh r1, [r4]
	ldr r0, _082E60E4
	cmp r1, r0
	bne _082E60CA
	adds r3, r4, 0
	adds r3, 0x20
	ldrb r1, [r3]
	lsls r1, 2
	adds r5, r4, 0x4
	adds r1, r5, r1
	ldr r2, [r4, 0x28]
	ldr r0, [r4, 0x30]
	adds r2, r0
	ldr r0, [r1]
	adds r6, r3, 0
	cmp r0, r2
	bcc _082E60CA
	movs r7, 0
_082E60A8:
	ldrb r0, [r3]
	adds r0, 0x1
	strb r0, [r3]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _082E60B8
	strb r7, [r6]
_082E60B8:
	ldrb r1, [r3]
	lsls r1, 2
	adds r1, r5, r1
	ldr r2, [r4, 0x28]
	ldr r0, [r4, 0x30]
	adds r2, r0
	ldr r0, [r1]
	cmp r0, r2
	bcs _082E60A8
_082E60CA:
	ldrh r1, [r4]
	movs r0, 0x40
	ands r0, r1
	mov r9, r1
	cmp r0, 0
	beq _082E60E8
	movs r5, 0
	b _082E612C
	.align 2, 0
_082E60DC: .4byte gUnknown_03007890
_082E60E0: .4byte gUnknown_089A3220
_082E60E4: .4byte 0x00008022
_082E60E8:
	ldr r0, _082E6114
	cmp r9, r0
	bne _082E611C
	adds r3, r4, 0
	adds r3, 0x20
	ldrb r0, [r3]
	lsls r0, 2
	adds r1, r4, 0x4
	adds r1, r0
	ldrh r7, [r4, 0x2E]
	ldr r5, [r1]
	adds r2, r5, r7
	ldr r1, [r4, 0x28]
	ldr r0, [r4, 0x30]
	adds r0, r1, r0
	adds r6, r3, 0
	cmp r2, r0
	bls _082E6118
	subs r0, r5
	lsls r0, 16
	lsrs r5, r0, 16
	b _082E6130
	.align 2, 0
_082E6114: .4byte 0x00008022
_082E6118:
	adds r5, r7, 0
	b _082E6130
_082E611C:
	ldrh r2, [r4, 0x2E]
	ldr r0, [r4, 0x14]
	cmp r0, r2
	bcc _082E6128
	adds r5, r2, 0
	b _082E612C
_082E6128:
	lsls r0, 16
	lsrs r5, r0, 16
_082E612C:
	adds r6, r4, 0
	adds r6, 0x20
_082E6130:
	movs r3, 0xF
	mov r0, r9
	ands r3, r0
	mov r1, r8
	ldrb r1, [r1, 0x3]
	lsls r3, r1
	ldrb r0, [r4, 0x1F]
	mov r2, r8
	ldrb r2, [r2, 0x4]
	lsls r0, r2
	orrs r3, r0
	ldrb r1, [r6]
	adds r0, r1, 0
	mov r7, r8
	ldrb r7, [r7, 0x5]
	lsls r0, r7
	orrs r3, r0
	adds r0, r4, 0
	adds r0, 0x21
	adds r0, r1
	ldrb r0, [r0]
	mov r1, r8
	ldrb r1, [r1, 0x6]
	lsls r0, r1
	orrs r3, r0
	orrs r3, r5
	str r3, [sp]
	ldr r2, _082E61EC
	ldr r0, [r2]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E6178
	ldrb r0, [r4, 0x1A]
	lsls r0, 18
	orrs r3, r0
	str r3, [sp]
_082E6178:
	mov r2, sp
	movs r3, 0
	mov r7, r8
	ldrb r7, [r7]
	cmp r3, r7
	bcs _082E61A2
_082E6184:
	mov r0, r12
	ldr r1, [r0]
	ldrb r0, [r2]
	strb r0, [r1]
	adds r2, 0x1
	adds r1, 0x1
	mov r7, r12
	str r1, [r7]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	mov r0, r8
	ldrb r0, [r0]
	cmp r3, r0
	bcc _082E6184
_082E61A2:
	cmp r5, 0
	beq _082E61C2
	ldrb r1, [r6]
	lsls r1, 2
	adds r0, r4, 0x4
	adds r0, r1
	ldr r0, [r0]
	str r0, [sp, 0x4]
	ldr r0, _082E61F0
	ldr r1, [r0]
	add r0, sp, 0x4
	ldr r3, [r1, 0x4]
	mov r1, r12
	adds r2, r5, 0
	bl _call_via_r3
_082E61C2:
	ldrh r1, [r4]
	ldr r0, _082E61F4
	cmp r1, r0
	bne _082E61DC
	ldrb r0, [r6]
	adds r0, 0x1
	strb r0, [r6]
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _082E61DC
	movs r0, 0
	strb r0, [r6]
_082E61DC:
	ldr r0, _082E61EC
	ldr r2, [r0]
	ldrb r1, [r2]
	cmp r1, 0x1
	bne _082E61F8
	ldrb r0, [r2, 0xE]
	strb r1, [r2, 0xE]
	b _082E6206
	.align 2, 0
_082E61EC: .4byte gUnknown_03007890
_082E61F0: .4byte gUnknown_03007898
_082E61F4: .4byte 0x00008022
_082E61F8:
	movs r0, 0x1
	mov r1, r10
	lsls r0, r1
	ldrb r1, [r2, 0xE]
	orrs r0, r1
	ldrb r1, [r2, 0xE]
	strb r0, [r2, 0xE]
_082E6206:
	mov r2, r8
	ldrb r0, [r2]
	adds r0, r5, r0
	lsls r0, 16
	lsrs r0, 16
	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 rfu_STC_NI_constructLLSF

	thumb_func_start rfu_STC_UNI_constructLLSF
rfu_STC_UNI_constructLLSF: @ 82E6220
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	sub sp, 0x8
	adds r6, r1, 0
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	ldr r1, _082E6248
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	ldrb r0, [r4, 0x2]
	cmp r0, 0
	beq _082E6244
	ldrb r0, [r4, 0x3]
	cmp r0, 0
	bne _082E624C
_082E6244:
	movs r0, 0
	b _082E62E8
	.align 2, 0
_082E6248: .4byte gUnknown_03007870
_082E624C:
	ldr r0, _082E62C4
	ldr r2, [r0]
	ldrb r0, [r2]
	lsls r0, 4
	ldr r1, _082E62C8
	adds r5, r0, r1
	ldrh r0, [r4]
	movs r1, 0xF
	ands r1, r0
	ldrb r0, [r5, 0x3]
	lsls r1, r0
	ldrh r0, [r4, 0x4]
	orrs r1, r0
	str r1, [sp]
	ldrb r0, [r2]
	cmp r0, 0x1
	bne _082E6276
	ldrb r0, [r4, 0x3]
	lsls r0, 18
	orrs r1, r0
	str r1, [sp]
_082E6276:
	mov r2, sp
	movs r3, 0
	ldr r1, _082E62CC
	mov r12, r1
	add r7, sp, 0x4
	ldrb r0, [r5]
	cmp r3, r0
	bcs _082E629E
_082E6286:
	ldr r1, [r6]
	ldrb r0, [r2]
	strb r0, [r1]
	adds r2, 0x1
	adds r1, 0x1
	str r1, [r6]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	ldrb r1, [r5]
	cmp r3, r1
	bcc _082E6286
_082E629E:
	ldr r0, [r4, 0x8]
	str r0, [sp, 0x4]
	mov r2, r12
	ldr r0, [r2]
	ldrh r2, [r4, 0x4]
	ldr r3, [r0, 0x4]
	adds r0, r7, 0
	adds r1, r6, 0
	bl _call_via_r3
	ldr r0, _082E62C4
	ldr r2, [r0]
	ldrb r0, [r2]
	cmp r0, 0x1
	bne _082E62D0
	ldrb r0, [r2, 0xE]
	movs r0, 0x10
	b _082E62DC
	.align 2, 0
_082E62C4: .4byte gUnknown_03007890
_082E62C8: .4byte gUnknown_089A3220
_082E62CC: .4byte gUnknown_03007898
_082E62D0:
	movs r0, 0x10
	mov r1, r8
	lsls r0, r1
	ldrb r1, [r2, 0xE]
	orrs r0, r1
	ldrb r1, [r2, 0xE]
_082E62DC:
	strb r0, [r2, 0xE]
	ldrh r0, [r4, 0x4]
	ldrb r5, [r5]
	adds r0, r5
	lsls r0, 16
	lsrs r0, 16
_082E62E8:
	add sp, 0x8
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end rfu_STC_UNI_constructLLSF

	thumb_func_start rfu_REQ_recvData
rfu_REQ_recvData: @ 82E62F4
	push {r4,lr}
	ldr r0, _082E6328
	ldr r4, [r0]
	ldrb r0, [r4]
	cmp r0, 0xFF
	beq _082E6320
	ldr r2, _082E632C
	ldr r3, [r2]
	ldrb r0, [r4, 0x4]
	ldrb r1, [r4, 0x5]
	orrs r0, r1
	ldrb r1, [r4, 0x6]
	orrs r0, r1
	movs r1, 0
	strb r0, [r3, 0x3]
	ldr r0, [r2]
	strb r1, [r0, 0x4]
	ldr r0, _082E6330
	bl STWI_set_Callback_M
	bl STWI_send_DataRxREQ
_082E6320:
	pop {r4}
	pop {r0}
	bx r0
	.align 2, 0
_082E6328: .4byte gUnknown_03007890
_082E632C: .4byte gUnknown_03007894
_082E6330: .4byte rfu_CB_recvData
	thumb_func_end rfu_REQ_recvData

	thumb_func_start rfu_CB_recvData
rfu_CB_recvData: @ 82E6334
	push {r4-r7,lr}
	mov r7, r9
	mov r6, r8
	push {r6,r7}
	sub sp, 0x4
	lsls r0, 24
	lsrs r0, 24
	mov r9, r0
	lsls r1, 16
	lsrs r7, r1, 16
	cmp r7, 0
	bne _082E63F8
	ldr r0, _082E6370
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r0, [r0]
	ldrb r0, [r0, 0x1]
	cmp r0, 0
	beq _082E63F8
	ldr r0, _082E6374
	ldr r0, [r0]
	strb r7, [r0, 0x1]
	ldr r0, _082E6378
	ldr r0, [r0]
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E637C
	bl rfu_STC_PARENT_analyzeRecvPacket
	b _082E6380
	.align 2, 0
_082E6370: .4byte gUnknown_03007898
_082E6374: .4byte gUnknown_03007894
_082E6378: .4byte gUnknown_03007890
_082E637C:
	bl rfu_STC_CHILD_analyzeRecvPacket
_082E6380:
	movs r6, 0
	ldr r0, _082E6410
	mov r8, r0
	ldr r3, _082E6414
_082E6388:
	ldr r0, _082E6418
	lsls r1, r6, 2
	adds r1, r0
	ldr r4, [r1]
	ldrh r0, [r4, 0x34]
	cmp r0, r8
	bne _082E63DA
	ldr r0, _082E641C
	ldr r0, [r0]
	ldrb r0, [r0, 0x1]
	asrs r0, r6
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	bne _082E63DA
	adds r5, r4, 0
	adds r5, 0x34
	adds r0, r4, 0
	adds r0, 0x61
	ldrb r2, [r0]
	cmp r2, 0x1
	bne _082E63BE
	ldr r1, [r3]
	lsls r2, r6
	ldrb r0, [r1, 0x7]
	orrs r2, r0
	strb r2, [r1, 0x7]
_082E63BE:
	adds r0, r6, 0
	movs r1, 0x1
	adds r2, r5, 0
	str r3, [sp]
	bl rfu_STC_releaseFrame
	ldr r3, [sp]
	ldr r2, [r3]
	ldrb r1, [r5, 0x1A]
	ldrb r0, [r2, 0x5]
	bics r0, r1
	strb r0, [r2, 0x5]
	movs r0, 0x46
	strh r0, [r4, 0x34]
_082E63DA:
	adds r0, r6, 0x1
	lsls r0, 24
	lsrs r6, r0, 24
	cmp r6, 0x3
	bls _082E6388
	ldr r0, _082E641C
	ldr r1, [r0]
	ldrb r0, [r1, 0x4]
	cmp r0, 0
	beq _082E63F8
	adds r7, r0, 0
	movs r1, 0xE0
	lsls r1, 3
	adds r0, r1, 0
	orrs r7, r0
_082E63F8:
	mov r0, r9
	adds r1, r7, 0
	bl rfu_STC_REQ_callback
	add sp, 0x4
	pop {r3,r4}
	mov r8, r3
	mov r9, r4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6410: .4byte 0x00008043
_082E6414: .4byte gUnknown_03007890
_082E6418: .4byte gUnknown_03007880
_082E641C: .4byte gUnknown_03007894
	thumb_func_end rfu_CB_recvData

	thumb_func_start rfu_STC_PARENT_analyzeRecvPacket
rfu_STC_PARENT_analyzeRecvPacket: @ 82E6420
	push {r4-r7,lr}
	sub sp, 0x4
	ldr r1, _082E64B0
	ldr r0, [r1]
	adds r0, 0xDC
	ldr r0, [r0]
	ldr r0, [r0, 0x4]
	lsrs r3, r0, 8
	movs r5, 0
	mov r12, r1
	movs r7, 0x1F
	ldr r4, _082E64B4
	movs r6, 0x1
_082E643A:
	mov r0, sp
	adds r1, r0, r5
	adds r0, r3, 0
	ands r0, r7
	strb r0, [r1]
	lsrs r3, 5
	cmp r0, 0
	bne _082E6456
	ldr r0, [r4]
	adds r1, r6, 0
	lsls r1, r5
	ldrb r2, [r0, 0x1]
	orrs r1, r2
	strb r1, [r0, 0x1]
_082E6456:
	adds r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _082E643A
	mov r1, r12
	ldr r0, [r1]
	adds r0, 0xDC
	ldr r0, [r0]
	adds r6, r0, 0
	adds r6, 0x8
	movs r5, 0
_082E646E:
	mov r0, sp
	adds r1, r0, r5
	ldrb r0, [r1]
	adds r7, r5, 0x1
	cmp r0, 0
	beq _082E64A0
	adds r4, r1, 0
_082E647C:
	ldrb r2, [r4]
	adds r0, r5, 0
	adds r1, r6, 0
	bl rfu_STC_analyzeLLSF
	lsls r0, 24
	lsrs r0, 24
	adds r6, r0
	ldrb r1, [r4]
	subs r1, r0
	strb r1, [r4]
	movs r0, 0x80
	ands r0, r1
	cmp r0, 0
	bne _082E64A0
	lsls r0, r1, 24
	cmp r0, 0
	bne _082E647C
_082E64A0:
	lsls r0, r7, 24
	lsrs r5, r0, 24
	cmp r5, 0x3
	bls _082E646E
	add sp, 0x4
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E64B0: .4byte gUnknown_03007898
_082E64B4: .4byte gUnknown_03007894
	thumb_func_end rfu_STC_PARENT_analyzeRecvPacket

	thumb_func_start rfu_STC_CHILD_analyzeRecvPacket
rfu_STC_CHILD_analyzeRecvPacket: @ 82E64B8
	push {r4-r6,lr}
	ldr r0, _082E6508
	ldr r0, [r0]
	adds r0, 0xDC
	ldr r1, [r0]
	ldrh r0, [r1, 0x4]
	movs r4, 0x7F
	ands r4, r0
	adds r5, r1, 0
	adds r5, 0x8
	cmp r4, 0
	bne _082E64D8
	ldr r0, _082E650C
	ldr r1, [r0]
	movs r0, 0xF
	strb r0, [r1, 0x1]
_082E64D8:
	movs r0, 0x80
	lsls r0, 8
	adds r6, r0, 0
_082E64DE:
	cmp r4, 0
	beq _082E6500
	movs r0, 0
	adds r1, r5, 0
	adds r2, r4, 0
	bl rfu_STC_analyzeLLSF
	lsls r0, 16
	lsrs r0, 16
	adds r5, r0
	subs r0, r4, r0
	lsls r0, 16
	lsrs r4, r0, 16
	adds r0, r4, 0
	ands r0, r6
	cmp r0, 0
	beq _082E64DE
_082E6500:
	pop {r4-r6}
	pop {r0}
	bx r0
	.align 2, 0
_082E6508: .4byte gUnknown_03007898
_082E650C: .4byte gUnknown_03007894
	thumb_func_end rfu_STC_CHILD_analyzeRecvPacket

	thumb_func_start rfu_STC_analyzeLLSF
rfu_STC_analyzeLLSF: @ 82E6510
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x8
	adds r7, r1, 0
	lsls r0, 24
	lsrs r0, 24
	mov r12, r0
	lsls r2, 16
	lsrs r3, r2, 16
	ldr r2, _082E6544
	ldr r0, [r2]
	ldrb r0, [r0]
	mvns r0, r0
	movs r1, 0x1
	ands r0, r1
	lsls r0, 4
	ldr r1, _082E6548
	adds r6, r0, r1
	ldrb r0, [r6]
	cmp r3, r0
	bcs _082E654C
	adds r0, r3, 0
	b _082E673E
	.align 2, 0
_082E6544: .4byte gUnknown_03007890
_082E6548: .4byte gUnknown_089A3220
_082E654C:
	movs r5, 0
	movs r4, 0
	ldrb r3, [r6, 0x1]
	ldrb r1, [r6, 0x7]
	mov r8, r1
	ldr r2, [sp]
	mov r9, r2
	cmp r4, r0
	bcs _082E6574
	adds r2, r0, 0
_082E6560:
	ldrb r0, [r7]
	lsls r1, r4, 3
	lsls r0, r1
	orrs r5, r0
	adds r7, 0x1
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, r2
	bcc _082E6560
_082E6574:
	adds r0, r5, 0
	lsrs r0, r3
	mov r3, r8
	ands r0, r3
	ldr r1, _082E664C
	mov r10, r1
	mov r3, r10
	mov r2, r9
	ands r3, r2
	orrs r3, r0
	str r3, [sp]
	adds r0, r5, 0
	ldrb r1, [r6, 0x2]
	lsrs r0, r1
	ldrb r1, [r6, 0x8]
	ands r0, r1
	lsls r0, 8
	ldr r4, _082E6650
	adds r2, r4, 0
	ands r2, r3
	orrs r2, r0
	str r2, [sp]
	adds r0, r5, 0
	ldrb r3, [r6, 0x3]
	lsrs r0, r3
	ldrb r1, [r6, 0x9]
	ands r0, r1
	lsls r0, 16
	ldr r3, _082E6654
	ands r3, r2
	orrs r3, r0
	str r3, [sp]
	adds r0, r5, 0
	ldrb r1, [r6, 0x4]
	lsrs r0, r1
	ldrb r1, [r6, 0xA]
	ands r0, r1
	lsls r0, 24
	ldr r2, _082E6658
	mov r8, r2
	mov r1, r8
	ands r1, r3
	orrs r1, r0
	mov r8, r1
	str r1, [sp]
	adds r1, r5, 0
	ldrb r2, [r6, 0x5]
	lsrs r1, r2
	ldrb r0, [r6, 0xB]
	ands r1, r0
	mov r9, sp
	ldr r2, [sp, 0x4]
	mov r3, r10
	ands r2, r3
	orrs r2, r1
	str r2, [sp, 0x4]
	adds r0, r5, 0
	ldrb r1, [r6, 0x6]
	lsrs r0, r1
	ldrb r1, [r6, 0xC]
	ands r0, r1
	lsls r0, 8
	ands r4, r2
	orrs r4, r0
	str r4, [sp, 0x4]
	ldrh r0, [r6, 0xE]
	ands r5, r0
	lsls r1, r5, 16
	ldr r0, _082E665C
	ands r0, r4
	orrs r0, r1
	str r0, [sp, 0x4]
	lsrs r0, 16
	ldrb r6, [r6]
	adds r0, r6
	lsls r0, 16
	lsrs r0, 16
	mov r10, r0
	mov r0, sp
	ldrb r0, [r0]
	cmp r0, 0
	beq _082E661A
	b _082E673C
_082E661A:
	ldr r2, _082E6660
	ldr r3, [r2]
	ldrb r2, [r3]
	cmp r2, 0x1
	bne _082E66D8
	ldrb r0, [r3, 0x2]
	mov r5, r12
	asrs r0, r5
	ands r0, r2
	cmp r0, 0
	bne _082E6632
	b _082E673C
_082E6632:
	mov r1, r8
	lsrs r0, r1, 16
	lsls r0, 24
	lsrs r0, 24
	cmp r0, 0x4
	bne _082E6664
	mov r0, r12
	mov r1, sp
	adds r2, r7, 0
	bl rfu_STC_UNI_receive
	b _082E673C
	.align 2, 0
_082E664C: .4byte 0xffffff00
_082E6650: .4byte 0xffff00ff
_082E6654: .4byte 0xff00ffff
_082E6658: .4byte 0x00ffffff
_082E665C: .4byte 0x0000ffff
_082E6660: .4byte gUnknown_03007890
_082E6664:
	mov r5, r9
	ldrb r0, [r5, 0x3]
	cmp r0, 0
	bne _082E6678
	mov r0, r12
	mov r1, sp
	adds r2, r7, 0
	bl rfu_STC_NI_receive_Receiver
	b _082E673C
_082E6678:
	movs r4, 0
	ldr r1, _082E6690
	ldr r0, [r1]
	ldrb r0, [r0, 0x1A]
	mov r5, r12
	asrs r0, r5
	ands r0, r2
	cmp r0, 0
	beq _082E6694
	ldrb r0, [r3, 0x4]
	b _082E66BA
	.align 2, 0
_082E6690: .4byte gUnknown_03007880
_082E6694:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bhi _082E673C
	lsls r0, r4, 2
	adds r0, r1
	ldr r0, [r0]
	ldrb r0, [r0, 0x1A]
	mov r2, r12
	asrs r0, r2
	movs r2, 0x1
	ands r0, r2
	cmp r0, 0
	beq _082E6694
	ldr r3, _082E66D4
	ldr r0, [r3]
	ldrb r0, [r0, 0x4]
	mov r5, r12
_082E66BA:
	asrs r0, r5
	ands r0, r2
	cmp r0, 0
	beq _082E6694
	cmp r4, 0x3
	bhi _082E673C
	adds r0, r4, 0
	mov r1, r12
	mov r2, sp
	adds r3, r7, 0
	bl rfu_STC_NI_receive_Sender
	b _082E673C
	.align 2, 0
_082E66D4: .4byte gUnknown_03007890
_082E66D8:
	ldrb r1, [r3, 0x2]
	mov r2, r9
	ldrb r0, [r2, 0x1]
	adds r5, r1, 0
	ands r5, r0
	cmp r5, 0
	beq _082E673C
	movs r4, 0
	movs r6, 0x1
_082E66EA:
	adds r0, r5, 0
	asrs r0, r4
	ands r0, r6
	cmp r0, 0
	beq _082E6732
	mov r1, sp
	ldrb r0, [r1, 0x2]
	cmp r0, 0x4
	bne _082E6706
	adds r0, r4, 0
	adds r2, r7, 0
	bl rfu_STC_UNI_receive
	b _082E6732
_082E6706:
	ldrb r0, [r1, 0x3]
	cmp r0, 0
	bne _082E6718
	adds r0, r4, 0
	mov r1, sp
	adds r2, r7, 0
	bl rfu_STC_NI_receive_Receiver
	b _082E6732
_082E6718:
	ldr r0, _082E6750
	ldr r0, [r0]
	ldrb r0, [r0, 0x4]
	asrs r0, r4
	ands r0, r6
	cmp r0, 0
	beq _082E6732
	adds r0, r4, 0
	adds r1, r4, 0
	mov r2, sp
	adds r3, r7, 0
	bl rfu_STC_NI_receive_Sender
_082E6732:
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E66EA
_082E673C:
	mov r0, r10
_082E673E:
	add sp, 0x8
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_082E6750: .4byte gUnknown_03007890
	thumb_func_end rfu_STC_analyzeLLSF

	thumb_func_start rfu_STC_UNI_receive
rfu_STC_UNI_receive: @ 82E6754
	push {r4-r7,lr}
	sub sp, 0x8
	adds r6, r1, 0
	str r2, [sp]
	lsls r0, 24
	lsrs r7, r0, 24
	ldr r2, _082E6788
	lsls r1, r7, 2
	adds r1, r2
	ldr r3, [r1]
	adds r5, r3, 0
	adds r5, 0xC
	movs r4, 0
	movs r0, 0
	strh r0, [r5, 0x2]
	ldr r0, [r1]
	ldr r0, [r0, 0x18]
	adds r1, r2, 0
	ldrh r2, [r6, 0x6]
	cmp r0, r2
	bcs _082E6790
	movs r0, 0x49
	strh r0, [r3, 0xC]
	ldr r0, _082E678C
	strh r0, [r5, 0x2]
	b _082E67DE
	.align 2, 0
_082E6788: .4byte gUnknown_03007870
_082E678C: .4byte 0x00000701
_082E6790:
	ldrb r0, [r5, 0x7]
	cmp r0, 0
	beq _082E67A8
	ldrb r0, [r5, 0x6]
	cmp r0, 0
	beq _082E67B4
	ldr r0, _082E67A4
	strh r0, [r5, 0x2]
	b _082E67DE
	.align 2, 0
_082E67A4: .4byte 0x00000709
_082E67A8:
	ldrb r0, [r5, 0x6]
	cmp r0, 0
	beq _082E67B4
	movs r0, 0xE1
	lsls r0, 3
	strh r0, [r5, 0x2]
_082E67B4:
	movs r4, 0
	ldr r0, _082E67FC
	strh r0, [r5]
	ldrh r0, [r6, 0x6]
	strh r0, [r5, 0x4]
	ldrh r2, [r6, 0x6]
	lsls r0, r7, 2
	adds r0, r1
	ldr r0, [r0]
	ldr r0, [r0, 0x14]
	str r0, [sp, 0x4]
	ldr r0, _082E6800
	ldr r0, [r0]
	add r1, sp, 0x4
	ldr r3, [r0, 0x4]
	mov r0, sp
	bl _call_via_r3
	movs r0, 0x1
	strb r0, [r5, 0x6]
	strh r4, [r5]
_082E67DE:
	ldrh r0, [r5, 0x2]
	cmp r0, 0
	beq _082E67F2
	ldr r0, _082E6804
	ldr r2, [r0]
	movs r0, 0x10
	lsls r0, r7
	ldrb r1, [r2, 0x4]
	orrs r0, r1
	strb r0, [r2, 0x4]
_082E67F2:
	add sp, 0x8
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E67FC: .4byte 0x00008042
_082E6800: .4byte gUnknown_03007898
_082E6804: .4byte gUnknown_03007894
	thumb_func_end rfu_STC_UNI_receive

	thumb_func_start rfu_STC_NI_receive_Sender
rfu_STC_NI_receive_Sender: @ 82E6808
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r2, 0
	lsls r0, 24
	lsls r1, 24
	lsrs r1, 24
	mov r10, r1
	ldr r1, _082E68D4
	lsrs r0, 22
	adds r0, r1
	ldr r0, [r0]
	mov r12, r0
	ldrh r0, [r0]
	mov r9, r0
	mov r0, r12
	adds r0, 0x21
	ldrb r2, [r6, 0x4]
	adds r0, r2
	ldrb r0, [r0]
	str r0, [sp]
	ldrb r2, [r6, 0x2]
	cmp r2, 0x2
	bne _082E6844
	ldr r0, _082E68D8
	cmp r9, r0
	beq _082E685E
_082E6844:
	cmp r2, 0x1
	bne _082E684E
	ldr r0, _082E68DC
	cmp r9, r0
	beq _082E685E
_082E684E:
	movs r3, 0x1B
	add r3, r12
	mov r8, r3
	cmp r2, 0x3
	bne _082E6882
	ldr r0, _082E68E0
	cmp r9, r0
	bne _082E6882
_082E685E:
	ldrb r1, [r6, 0x4]
	mov r0, r12
	adds r0, 0x21
	adds r0, r1
	ldrb r0, [r0]
	movs r7, 0x1B
	add r7, r12
	mov r8, r7
	ldrb r2, [r6, 0x5]
	cmp r0, r2
	bne _082E6882
	adds r0, r7, r1
	movs r1, 0x1
	mov r3, r10
	lsls r1, r3
	ldrb r2, [r0]
	orrs r1, r2
	strb r1, [r0]
_082E6882:
	ldrb r2, [r6, 0x4]
	mov r7, r8
	adds r0, r7, r2
	ldrb r0, [r0]
	mov r3, r12
	ldrb r1, [r3, 0x1A]
	ands r0, r1
	cmp r0, r1
	bne _082E697E
	adds r3, 0x21
	adds r2, r3, r2
	ldrb r0, [r2]
	adds r0, 0x1
	movs r1, 0x3
	ands r0, r1
	movs r1, 0
	strb r0, [r2]
	ldrb r0, [r6, 0x4]
	add r0, r8
	strb r1, [r0]
	mov r7, r12
	ldrh r1, [r7]
	ldr r2, _082E68E4
	adds r0, r1, r2
	lsls r0, 16
	lsrs r0, 16
	adds r5, r3, 0
	cmp r0, 0x1
	bhi _082E6970
	ldr r0, _082E68DC
	cmp r1, r0
	bne _082E68E8
	ldrb r1, [r6, 0x4]
	lsls r1, 2
	subs r3, 0x1D
	adds r1, r3, r1
	ldrh r2, [r7, 0x2E]
	ldr r0, [r1]
	adds r0, r2
	str r0, [r1]
	b _082E68FE
	.align 2, 0
_082E68D4: .4byte gUnknown_03007880
_082E68D8: .4byte 0x00008022
_082E68DC: .4byte 0x00008021
_082E68E0: .4byte 0x00008023
_082E68E4: .4byte 0x00007fdf
_082E68E8:
	ldrb r2, [r6, 0x4]
	lsls r2, 2
	mov r3, r12
	adds r3, 0x4
	adds r2, r3, r2
	mov r7, r12
	ldrh r1, [r7, 0x2E]
	lsls r1, 2
	ldr r0, [r2]
	adds r0, r1
	str r0, [r2]
_082E68FE:
	mov r0, r12
	ldrh r1, [r0, 0x2E]
	ldr r0, [r0, 0x14]
	subs r0, r1
	mov r1, r12
	str r0, [r1, 0x14]
	cmp r0, 0
	beq _082E6912
	cmp r0, 0
	bge _082E697E
_082E6912:
	mov r0, r12
	adds r0, 0x20
	movs r2, 0
	strb r2, [r0]
	mov r7, r12
	ldrh r1, [r7]
	ldr r0, _082E6954
	cmp r1, r0
	bne _082E695C
	movs r4, 0
_082E6926:
	adds r0, r5, r4
	movs r1, 0x1
	strb r1, [r0]
	lsls r1, r4, 2
	adds r1, r3, r1
	mov r2, r12
	ldrh r0, [r2, 0x2E]
	adds r2, r0, 0
	muls r2, r4
	mov r7, r12
	ldr r0, [r7, 0x28]
	adds r0, r2
	str r0, [r1]
	adds r0, r4, 0x1
	lsls r0, 24
	lsrs r4, r0, 24
	cmp r4, 0x3
	bls _082E6926
	ldr r0, [r7, 0x30]
	str r0, [r7, 0x14]
	ldr r0, _082E6958
	strh r0, [r7]
	b _082E697E
	.align 2, 0
_082E6954: .4byte 0x00008021
_082E6958: .4byte 0x00008022
_082E695C:
	strb r2, [r5]
	mov r0, r12
	str r2, [r0, 0x14]
	ldr r0, _082E696C
	mov r1, r12
	strh r0, [r1]
	b _082E697E
	.align 2, 0
_082E696C: .4byte 0x00008023
_082E6970:
	lsls r1, 16
	ldr r0, _082E69E0
	cmp r1, r0
	bne _082E697E
	ldr r0, _082E69E4
	mov r2, r12
	strh r0, [r2]
_082E697E:
	mov r3, r12
	ldrh r0, [r3]
	cmp r0, r9
	bne _082E69A8
	ldrb r2, [r6, 0x4]
	mov r0, r12
	adds r0, 0x21
	adds r0, r2
	ldrb r0, [r0]
	ldr r7, [sp]
	cmp r0, r7
	bne _082E69A8
	mov r1, r8
	adds r0, r1, r2
	ldrb r0, [r0]
	mov r2, r10
	asrs r0, r2
	movs r1, 0x1
	ands r0, r1
	cmp r0, 0
	beq _082E69CE
_082E69A8:
	ldr r4, _082E69E8
	ldrh r2, [r4]
	movs r0, 0
	strh r0, [r4]
	ldr r0, _082E69EC
	ldr r3, [r0]
	movs r0, 0x10
	mov r7, r10
	lsls r0, r7
	ldrb r1, [r3, 0x2]
	orrs r0, r1
	movs r1, 0
	strb r0, [r3, 0x2]
	lsls r0, r7, 2
	ldr r3, _082E69F0
	adds r0, r3
	ldr r0, [r0]
	strh r1, [r0, 0x2]
	strh r2, [r4]
_082E69CE:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E69E0: .4byte 0x80230000
_082E69E4: .4byte 0x00008020
_082E69E8: .4byte 0x04000208
_082E69EC: .4byte gUnknown_03007894
_082E69F0: .4byte gUnknown_03007880
	thumb_func_end rfu_STC_NI_receive_Sender

	thumb_func_start rfu_STC_NI_receive_Receiver
rfu_STC_NI_receive_Receiver: @ 82E69F4
	push {r4-r7,lr}
	mov r7, r10
	mov r6, r9
	mov r5, r8
	push {r5-r7}
	sub sp, 0x4
	adds r6, r1, 0
	str r2, [sp]
	lsls r0, 24
	lsrs r0, 24
	mov r8, r0
	movs r7, 0
	ldr r1, _082E6A54
	lsls r0, 2
	adds r0, r1
	ldr r4, [r0]
	adds r5, r4, 0
	adds r5, 0x34
	ldrh r0, [r4, 0x34]
	mov r9, r0
	ldrb r0, [r6, 0x4]
	adds r3, r4, 0
	adds r3, 0x55
	adds r0, r3, r0
	ldrb r0, [r0]
	mov r10, r0
	ldrb r0, [r6, 0x2]
	cmp r0, 0x3
	bne _082E6A64
	ldr r0, _082E6A58
	ldr r2, [r0]
	movs r0, 0x1
	mov r1, r8
	lsls r0, r1
	ldrb r1, [r2, 0x1]
	orrs r0, r1
	strb r0, [r2, 0x1]
	ldrh r1, [r4, 0x34]
	ldr r0, _082E6A5C
	cmp r1, r0
	bne _082E6AAA
	adds r0, r4, 0
	adds r0, 0x54
	strb r7, [r0]
	strb r7, [r3]
	ldr r0, _082E6A60
	strh r0, [r4, 0x34]
	b _082E6AAA
	.align 2, 0
_082E6A54: .4byte gUnknown_03007880
_082E6A58: .4byte gUnknown_03007894
_082E6A5C: .4byte 0x00008042
_082E6A60: .4byte 0x00008043
_082E6A64:
	cmp r0, 0x2
	bne _082E6A90
	ldr r0, _082E6A88
	cmp r9, r0
	bne _082E6A7C
	ldr r0, [r5, 0x14]
	cmp r0, 0
	bne _082E6A7C
	mov r0, r8
	adds r1, r5, 0
	bl rfu_STC_NI_initSlot_asRecvDataEntity
_082E6A7C:
	ldrh r1, [r5]
	ldr r0, _082E6A8C
	cmp r1, r0
	bne _082E6AAA
	b _082E6AAE
	.align 2, 0
_082E6A88: .4byte 0x00008041
_082E6A8C: .4byte 0x00008042
_082E6A90:
	cmp r0, 0x1
	bne _082E6AAA
	ldr r7, _082E6B5C
	cmp r9, r7
	beq _082E6AAE
	mov r0, r8
	adds r1, r5, 0
	bl rfu_STC_NI_initSlot_asRecvControllData
	ldrh r0, [r4, 0x34]
	cmp r0, r7
	bne _082E6B4A
	movs r7, 0x1
_082E6AAA:
	cmp r7, 0
	beq _082E6B04
_082E6AAE:
	ldrb r2, [r6, 0x5]
	ldrb r3, [r6, 0x4]
	adds r4, r5, 0
	adds r4, 0x21
	adds r0, r4, r3
	ldrb r0, [r0]
	adds r0, 0x1
	movs r1, 0x3
	ands r0, r1
	cmp r2, r0
	bne _082E6B04
	ldr r0, _082E6B60
	ldr r0, [r0]
	lsls r1, r3, 2
	adds r1, 0x4
	adds r1, r5, r1
	ldrh r2, [r6, 0x6]
	ldr r3, [r0, 0x4]
	mov r0, sp
	bl _call_via_r3
	ldrh r1, [r5]
	ldr r0, _082E6B64
	cmp r1, r0
	bne _082E6AF4
	ldrb r0, [r6, 0x4]
	lsls r0, 2
	adds r2, r5, 0x4
	adds r2, r0
	ldrh r0, [r5, 0x2E]
	lsls r1, r0, 1
	adds r1, r0
	ldr r0, [r2]
	adds r0, r1
	str r0, [r2]
_082E6AF4:
	ldrh r1, [r6, 0x6]
	ldr r0, [r5, 0x14]
	subs r0, r1
	str r0, [r5, 0x14]
	ldrb r0, [r6, 0x4]
	adds r0, r4, r0
	ldrb r1, [r6, 0x5]
	strb r1, [r0]
_082E6B04:
	ldrh r0, [r5, 0x18]
	cmp r0, 0
	bne _082E6B4A
	ldrb r0, [r6, 0x4]
	adds r1, r5, 0
	adds r1, 0x20
	strb r0, [r1]
	ldrh r0, [r5]
	cmp r0, r9
	bne _082E6B2C
	adds r0, r5, 0
	adds r0, 0x21
	ldrb r2, [r6, 0x4]
	adds r0, r2
	ldrb r0, [r0]
	cmp r0, r10
	bne _082E6B2C
	ldrb r6, [r6, 0x5]
	cmp r0, r6
	bne _082E6B4A
_082E6B2C:
	ldr r3, _082E6B68
	ldrh r2, [r3]
	movs r0, 0
	strh r0, [r3]
	ldr r0, _082E6B6C
	ldr r4, [r0]
	movs r0, 0x1
	mov r1, r8
	lsls r0, r1
	ldrb r1, [r4, 0x2]
	orrs r0, r1
	movs r1, 0
	strb r0, [r4, 0x2]
	strh r1, [r5, 0x2]
	strh r2, [r3]
_082E6B4A:
	add sp, 0x4
	pop {r3-r5}
	mov r8, r3
	mov r9, r4
	mov r10, r5
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6B5C: .4byte 0x00008041
_082E6B60: .4byte gUnknown_03007898
_082E6B64: .4byte 0x00008042
_082E6B68: .4byte 0x04000208
_082E6B6C: .4byte gUnknown_03007894
	thumb_func_end rfu_STC_NI_receive_Receiver

	thumb_func_start rfu_STC_NI_initSlot_asRecvControllData
rfu_STC_NI_initSlot_asRecvControllData: @ 82E6B70
	push {r4-r7,lr}
	adds r2, r1, 0
	lsls r0, 24
	lsrs r4, r0, 24
	ldr r0, _082E6B8C
	ldr r3, [r0]
	ldrb r1, [r3]
	mov r12, r0
	cmp r1, 0x1
	bne _082E6B90
	movs r5, 0x3
	adds r1, r3, 0
	adds r1, 0xF
	b _082E6B98
	.align 2, 0
_082E6B8C: .4byte gUnknown_03007890
_082E6B90:
	movs r5, 0x2
	adds r0, r4, 0
	adds r0, 0x10
	adds r1, r3, r0
_082E6B98:
	movs r7, 0x1
	adds r0, r7, 0
	lsls r0, r4
	lsls r0, 24
	lsrs r6, r0, 24
	adds r4, r6, 0
	ldrh r3, [r2]
	cmp r3, 0
	bne _082E6BF6
	ldrb r0, [r1]
	cmp r0, r5
	bcs _082E6BD0
	movs r0, 0x49
	strh r0, [r2]
	ldr r0, _082E6BC8
	strh r0, [r2, 0x18]
	ldr r0, _082E6BCC
	ldr r2, [r0]
	ldrb r1, [r2, 0x4]
	adds r0, r6, 0
	orrs r0, r1
	strb r0, [r2, 0x4]
	b _082E6BF6
	.align 2, 0
_082E6BC8: .4byte 0x00000702
_082E6BCC: .4byte gUnknown_03007894
_082E6BD0:
	strh r3, [r2, 0x18]
	ldrb r0, [r1]
	subs r0, r5
	strb r0, [r1]
	adds r0, r2, 0
	adds r0, 0x2D
	str r0, [r2, 0x4]
	movs r0, 0x7
	str r0, [r2, 0x14]
	strb r7, [r2, 0x1F]
	strh r3, [r2, 0x2E]
	strb r4, [r2, 0x1A]
	ldr r0, _082E6BFC
	strh r0, [r2]
	mov r0, r12
	ldr r1, [r0]
	ldrb r0, [r1, 0x5]
	orrs r4, r0
	strb r4, [r1, 0x5]
_082E6BF6:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6BFC: .4byte 0x00008041
	thumb_func_end rfu_STC_NI_initSlot_asRecvControllData

	thumb_func_start rfu_STC_NI_initSlot_asRecvDataEntity
rfu_STC_NI_initSlot_asRecvDataEntity: @ 82E6C00
	push {r4-r7,lr}
	adds r4, r1, 0
	lsls r0, 24
	lsrs r5, r0, 24
	adds r0, r4, 0
	adds r0, 0x2D
	ldrb r0, [r0]
	cmp r0, 0x1
	bne _082E6C24
	ldr r0, _082E6C20
	lsls r1, r5, 5
	adds r1, 0x14
	ldr r0, [r0]
	adds r0, r1
	adds r0, 0x4
	b _082E6C7A
	.align 2, 0
_082E6C20: .4byte gUnknown_03007890
_082E6C24:
	ldr r1, _082E6C68
	lsls r0, r5, 2
	adds r0, r1
	ldr r2, [r0]
	ldr r1, [r4, 0x30]
	ldr r0, [r2, 0x6C]
	cmp r1, r0
	bls _082E6C78
	movs r1, 0x80
	lsls r1, 17
	lsls r1, r5
	lsrs r1, 24
	ldr r0, _082E6C6C
	ldr r3, [r0]
	ldrb r2, [r3, 0x4]
	adds r0, r1, 0
	orrs r0, r2
	strb r0, [r3, 0x4]
	ldr r0, _082E6C70
	ldr r2, [r0]
	ldrb r0, [r2, 0x5]
	bics r0, r1
	strb r0, [r2, 0x5]
	ldr r0, _082E6C74
	strh r0, [r4, 0x18]
	movs r0, 0x47
	strh r0, [r4]
	adds r0, r5, 0
	movs r1, 0x1
	adds r2, r4, 0
	bl rfu_STC_releaseFrame
	b _082E6CAC
	.align 2, 0
_082E6C68: .4byte gUnknown_03007880
_082E6C6C: .4byte gUnknown_03007894
_082E6C70: .4byte gUnknown_03007890
_082E6C74: .4byte 0x00000701
_082E6C78:
	ldr r0, [r2, 0x68]
_082E6C7A:
	str r0, [r4, 0x4]
	movs r3, 0
	adds r6, r4, 0
	adds r6, 0x21
	movs r7, 0
	adds r5, r4, 0x4
_082E6C86:
	adds r0, r6, r3
	strb r7, [r0]
	lsls r1, r3, 2
	adds r1, r5, r1
	ldrh r0, [r4, 0x2E]
	adds r2, r0, 0
	muls r2, r3
	ldr r0, [r4, 0x4]
	adds r0, r2
	str r0, [r1]
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _082E6C86
	ldr r0, [r4, 0x30]
	str r0, [r4, 0x14]
	ldr r0, _082E6CB4
	strh r0, [r4]
_082E6CAC:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6CB4: .4byte 0x00008042
	thumb_func_end rfu_STC_NI_initSlot_asRecvDataEntity

	thumb_func_start rfu_NI_checkCommFailCounter
rfu_NI_checkCommFailCounter: @ 82E6CB8
	push {r4-r7,lr}
	ldr r2, _082E6D44
	ldr r0, [r2]
	ldrb r1, [r0, 0x4]
	ldrb r0, [r0, 0x5]
	orrs r0, r1
	cmp r0, 0
	beq _082E6D3E
	ldr r1, _082E6D48
	ldrh r0, [r1]
	mov r12, r0
	movs r0, 0
	strh r0, [r1]
	ldr r1, _082E6D4C
	ldr r0, [r1]
	ldrb r0, [r0, 0x2]
	lsrs r7, r0, 4
	movs r3, 0
	adds r6, r1, 0
	adds r5, r2, 0
	ldr r4, _082E6D50
_082E6CE2:
	movs r0, 0x80
	lsls r0, 17
	lsls r0, r3
	lsrs r2, r0, 24
	ldr r0, [r5]
	ldrb r0, [r0, 0x4]
	ands r0, r2
	cmp r0, 0
	beq _082E6D0A
	ldr r0, [r6]
	ldrb r0, [r0, 0x2]
	ands r0, r2
	cmp r0, 0
	bne _082E6D0A
	lsls r0, r3, 2
	adds r0, r4
	ldr r1, [r0]
	ldrh r0, [r1, 0x2]
	adds r0, 0x1
	strh r0, [r1, 0x2]
_082E6D0A:
	ldr r0, [r5]
	ldrb r0, [r0, 0x5]
	ands r0, r2
	cmp r0, 0
	beq _082E6D28
	adds r0, r7, 0
	ands r0, r2
	cmp r0, 0
	bne _082E6D28
	lsls r0, r3, 2
	adds r0, r4
	ldr r1, [r0]
	ldrh r0, [r1, 0x36]
	adds r0, 0x1
	strh r0, [r1, 0x36]
_082E6D28:
	adds r0, r3, 0x1
	lsls r0, 24
	lsrs r3, r0, 24
	cmp r3, 0x3
	bls _082E6CE2
	ldr r0, [r6]
	movs r1, 0
	strb r1, [r0, 0x2]
	ldr r0, _082E6D48
	mov r1, r12
	strh r1, [r0]
_082E6D3E:
	pop {r4-r7}
	pop {r0}
	bx r0
	.align 2, 0
_082E6D44: .4byte gUnknown_03007890
_082E6D48: .4byte 0x04000208
_082E6D4C: .4byte gUnknown_03007894
_082E6D50: .4byte gUnknown_03007880
	thumb_func_end rfu_NI_checkCommFailCounter

	thumb_func_start rfu_REQ_noise
rfu_REQ_noise: @ 82E6D54
	push {lr}
	ldr r0, _082E6D68
	bl STWI_set_Callback_M
	movs r0, 0x1
	movs r1, 0
	bl STWI_send_TestModeREQ
	pop {r0}
	bx r0
	.align 2, 0
_082E6D68: .4byte rfu_STC_REQ_callback
	thumb_func_end rfu_REQ_noise

	thumb_func_start sub_82E6D6C
sub_82E6D6C: @ 82E6D6C
	push {r4-r7,lr}
	mov r7, r8
	push {r7}
	lsls r0, 24
	lsrs r5, r0, 24
	ldr r0, _082E6D84
	ldrh r0, [r0]
	cmp r0, 0
	bne _082E6D88
	movs r0, 0x1
	negs r0, r0
	b _082E6E08
	.align 2, 0
_082E6D84: .4byte 0x04000208
_082E6D88:
	ldr r0, _082E6DB4
	ldrh r0, [r0]
	mov r8, r0
	ldr r4, _082E6DB8
	ldr r1, [r4]
	movs r0, 0xA
	str r0, [r1]
	ldr r0, _082E6DBC
	bl STWI_set_Callback_ID
	bl sub_82E6E20
	ldr r0, [r4]
	ldrb r0, [r0, 0xA]
	lsls r0, 2
	ldr r1, _082E6DC0
	adds r4, r0, r1
	lsls r0, r5, 27
	lsrs r5, r0, 24
	movs r7, 0
	b _082E6DD6
	.align 2, 0
_082E6DB4: .4byte 0x04000200
_082E6DB8: .4byte gRfuState
_082E6DBC: .4byte sub_82E6F88
_082E6DC0: .4byte 0x04000100
_082E6DC4:
	strh r6, [r4, 0x2]
	strh r6, [r4]
	movs r0, 0x83
	strh r0, [r4, 0x2]
_082E6DCC:
	ldrh r0, [r4]
	cmp r0, 0x1F
	bls _082E6DCC
	strh r7, [r4, 0x2]
	strh r7, [r4]
_082E6DD6:
	subs r0, r5, 0x1
	lsls r0, 24
	lsrs r5, r0, 24
	cmp r5, 0xFF
	beq _082E6DEA
	bl sub_82E6E94
	adds r6, r0, 0
	cmp r6, 0
	beq _082E6DC4
_082E6DEA:
	ldr r1, _082E6E14
	movs r0, 0
	strh r0, [r1]
	ldr r0, _082E6E18
	mov r2, r8
	strh r2, [r0]
	movs r0, 0x1
	strh r0, [r1]
	ldr r0, _082E6E1C
	ldr r1, [r0]
	movs r0, 0
	str r0, [r1]
	bl STWI_set_Callback_ID
	adds r0, r6, 0
_082E6E08:
	pop {r3}
	mov r8, r3
	pop {r4-r7}
	pop {r1}
	bx r1
	.align 2, 0
_082E6E14: .4byte 0x04000208
_082E6E18: .4byte 0x04000200
_082E6E1C: .4byte gRfuState
	thumb_func_end sub_82E6D6C

	thumb_func_start sub_82E6E20
sub_82E6E20: @ 82E6E20
	push {r4,r5,lr}
	sub sp, 0x4
	ldr r3, _082E6E78
	movs r4, 0
	strh r4, [r3]
	ldr r2, _082E6E7C
	ldr r0, _082E6E80
	ldr r0, [r0]
	movs r1, 0x8
	ldrb r0, [r0, 0xA]
	lsls r1, r0
	movs r5, 0x80
	orrs r1, r5
	ldrh r0, [r2]
	bics r0, r1
	strh r0, [r2]
	movs r0, 0x1
	strh r0, [r3]
	ldr r0, _082E6E84
	strh r4, [r0]
	subs r2, 0xD8
	movs r1, 0x80
	lsls r1, 5
	adds r0, r1, 0
	strh r0, [r2]
	ldrh r0, [r2]
	movs r3, 0x81
	lsls r3, 7
	adds r1, r3, 0
	orrs r0, r1
	strh r0, [r2]
	movs r0, 0
	str r0, [sp]
	ldr r1, _082E6E88
	ldr r2, _082E6E8C
	mov r0, sp
	bl CpuSet
	ldr r0, _082E6E90
	strh r5, [r0]
	add sp, 0x4
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E6E78: .4byte 0x04000208
_082E6E7C: .4byte 0x04000200
_082E6E80: .4byte gRfuState
_082E6E84: .4byte 0x04000134
_082E6E88: .4byte gUnknown_030078A0
_082E6E8C: .4byte 0x05000003
_082E6E90: .4byte 0x04000202
	thumb_func_end sub_82E6E20

	thumb_func_start sub_82E6E94
sub_82E6E94: @ 82E6E94
	push {r4-r7,lr}
	ldr r0, _082E6EA8
	ldrb r1, [r0, 0x1]
	mov r12, r1
	adds r7, r0, 0
	cmp r1, 0
	beq _082E6EAC
	cmp r1, 0x1
	beq _082E6EE4
	b _082E6F7C
	.align 2, 0
_082E6EA8: .4byte gUnknown_030078A0
_082E6EAC:
	movs r6, 0x1
	strb r6, [r7]
	ldr r3, _082E6ED8
	ldrh r0, [r3]
	movs r5, 0x1
	orrs r0, r5
	strh r0, [r3]
	ldr r4, _082E6EDC
	mov r0, r12
	strh r0, [r4]
	ldr r2, _082E6EE0
	ldrh r0, [r2]
	movs r1, 0x80
	orrs r0, r1
	strh r0, [r2]
	strh r6, [r4]
	strb r5, [r7, 0x1]
	ldrb r0, [r3]
	orrs r0, r1
	strb r0, [r3]
	b _082E6F80
	.align 2, 0
_082E6ED8: .4byte 0x04000128
_082E6EDC: .4byte 0x04000208
_082E6EE0: .4byte 0x04000200
_082E6EE4:
	ldrh r0, [r7, 0xA]
	cmp r0, 0
	bne _082E6F78
	ldrb r0, [r7]
	cmp r0, 0x1
	bne _082E6F14
	ldrh r0, [r7, 0x2]
	cmp r0, 0
	bne _082E6F80
	ldr r3, _082E6F0C
	strh r0, [r3]
	ldr r2, _082E6F10
	ldrh r0, [r2]
	movs r1, 0x80
	orrs r0, r1
	strh r0, [r2]
	mov r1, r12
	strh r1, [r3]
	b _082E6F80
	.align 2, 0
_082E6F0C: .4byte 0x04000208
_082E6F10: .4byte 0x04000128
_082E6F14:
	ldrh r1, [r7, 0x4]
	ldr r0, _082E6F60
	cmp r1, r0
	beq _082E6F80
	ldrh r6, [r7, 0x2]
	cmp r6, 0
	bne _082E6F80
	ldr r4, _082E6F64
	strh r6, [r4]
	ldr r3, _082E6F68
	ldrh r1, [r3]
	ldr r0, _082E6F6C
	ands r0, r1
	strh r0, [r3]
	mov r7, r12
	strh r7, [r4]
	ldr r2, _082E6F70
	strh r6, [r2]
	movs r1, 0x80
	lsls r1, 5
	adds r0, r1, 0
	strh r0, [r2]
	ldr r0, _082E6F74
	movs r5, 0x80
	strh r5, [r0]
	ldrh r0, [r2]
	movs r7, 0x81
	lsls r7, 7
	adds r1, r7, 0
	orrs r0, r1
	strh r0, [r2]
	strh r6, [r4]
	ldrh r0, [r3]
	orrs r0, r5
	strh r0, [r3]
	mov r0, r12
	strh r0, [r4]
	b _082E6F80
	.align 2, 0
_082E6F60: .4byte 0x00008001
_082E6F64: .4byte 0x04000208
_082E6F68: .4byte 0x04000200
_082E6F6C: .4byte 0x0000ff7f
_082E6F70: .4byte 0x04000128
_082E6F74: .4byte 0x04000202
_082E6F78:
	movs r0, 0x2
	strb r0, [r7, 0x1]
_082E6F7C:
	ldrh r0, [r7, 0xA]
	b _082E6F82
_082E6F80:
	movs r0, 0
_082E6F82:
	pop {r4-r7}
	pop {r1}
	bx r1
	thumb_func_end sub_82E6E94

	thumb_func_start sub_82E6F88
sub_82E6F88: @ 82E6F88
	push {r4,r5,lr}
	ldr r0, _082E6FD0
	ldr r5, [r0]
	ldr r0, _082E6FD4
	ldrb r1, [r0]
	adds r4, r0, 0
	cmp r1, 0x1
	beq sub_82E6FA2
	ldr r0, _082E6FD8
	ldrh r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strh r1, [r0]
	thumb_func_end sub_82E6F88

	non_word_aligned_thumb_func_start sub_82E6FA2
sub_82E6FA2: @ 82E6FA2
	ldrb r2, [r4]
	lsls r1, r2, 4
	adds r0, r5, 0
	lsls r0, r1
	lsrs r1, r0, 16
	movs r0, 0x1
	subs r0, r2
	lsls r0, 4
	lsls r5, r0
	adds r0, r5, 0
	lsrs r5, r0, 16
	ldrh r0, [r4, 0xA]
	cmp r0, 0
	bne _082E6FF6
	ldrh r2, [r4, 0x6]
	cmp r1, r2
	bne _082E6FF4
	ldrh r3, [r4, 0x2]
	cmp r3, 0x3
	bls _082E6FDC
	strh r5, [r4, 0xA]
	b _082E6FF6
	.align 2, 0
_082E6FD0: .4byte 0x04000120
_082E6FD4: .4byte gUnknown_030078A0
_082E6FD8: .4byte 0x04000128
_082E6FDC:
	ldrh r0, [r4, 0x4]
	mvns r0, r0
	lsls r0, 16
	lsrs r0, 16
	cmp r1, r0
	bne _082E6FF6
	mvns r0, r2
	lsls r0, 16
	lsrs r0, 16
	cmp r5, r0
	bne _082E6FF6
	adds r0, r3, 0x1
_082E6FF4:
	strh r0, [r4, 0x2]
_082E6FF6:
	ldrh r0, [r4, 0x2]
	cmp r0, 0x3
	bhi _082E700C
	lsls r0, 1
	ldr r1, _082E7008
	adds r0, r1
	ldrh r0, [r0]
	b _082E700E
	.align 2, 0
_082E7008: .4byte gUnknown_089A3258
_082E700C:
	ldr r0, _082E7064
_082E700E:
	strh r0, [r4, 0x4]
	mvns r0, r5
	strh r0, [r4, 0x6]
	ldr r3, _082E7068
	ldrh r2, [r4, 0x4]
	ldrb r1, [r4]
	movs r0, 0x1
	subs r0, r1
	lsls r0, 4
	lsls r2, r0
	ldrh r0, [r4, 0x6]
	lsls r1, 4
	lsls r0, r1
	adds r2, r0
	str r2, [r3]
	ldrb r0, [r4]
	cmp r0, 0x1
	bne _082E705C
	ldrh r0, [r4, 0x2]
	cmp r0, 0
	bne _082E703E
	ldr r0, _082E706C
	cmp r5, r0
	bne _082E705C
_082E703E:
	movs r0, 0
	ldr r1, _082E7070
_082E7042:
	adds r0, 0x1
	lsls r0, 16
	lsrs r0, 16
	cmp r0, r1
	bls _082E7042
	ldrh r0, [r4, 0xA]
	cmp r0, 0
	bne _082E705C
	ldr r0, _082E7074
	ldrh r1, [r0]
	movs r2, 0x80
	orrs r1, r2
	strh r1, [r0]
_082E705C:
	pop {r4,r5}
	pop {r0}
	bx r0
	.align 2, 0
_082E7064: .4byte 0x00008001
_082E7068: .4byte 0x04000120
_082E706C: .4byte 0x0000494e
_082E7070: .4byte 0x00000257
_082E7074: .4byte 0x04000128
	thumb_func_end sub_82E6FA2

	.align 2, 0 @ Don't pad with nop.