pokeemerald/asm/librfu.s
2017-10-21 20:11:31 -05:00

6679 lines
107 KiB
ArmAsm

.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.