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