.include "constants/gba_constants.inc" .include "asm/macros.inc" .syntax unified .text thumb_func_start STWI_init_all STWI_init_all: @ 81DF114 push {r4,lr} adds r3, r0, 0 lsls r2, 24 lsrs r2, 24 cmp r2, 0x1 bne _081DF150 adds r2, r3, 0 adds r2, 0xE8 str r2, [r1] ldr r1, _081DF13C @ =0x040000d4 ldr r0, _081DF140 @ =IntrSIO32 str r0, [r1] str r2, [r1, 0x4] ldr r0, _081DF144 @ =0x800004b0 str r0, [r1, 0x8] ldr r0, [r1, 0x8] ldr r1, _081DF148 @ =gRfuState ldr r2, _081DF14C @ =0x00000a48 adds r0, r3, r2 b _081DF15A .align 2, 0 _081DF13C: .4byte 0x040000d4 _081DF140: .4byte IntrSIO32 _081DF144: .4byte 0x800004b0 _081DF148: .4byte gRfuState _081DF14C: .4byte 0x00000a48 _081DF150: ldr r0, _081DF1D4 @ =IntrSIO32 str r0, [r1] ldr r1, _081DF1D8 @ =gRfuState adds r0, r3, 0 adds r0, 0xE8 _081DF15A: str r0, [r1] adds r2, r1, 0 ldr r1, [r2] str r3, [r1, 0x28] adds r0, r3, 0 adds r0, 0x74 str r0, [r1, 0x24] ldrb r0, [r1, 0x14] movs r4, 0 movs r0, 0x1 strb r0, [r1, 0x14] ldr r0, [r2] str r4, [r0] strb r4, [r0, 0x4] ldr r0, [r2] strb r4, [r0, 0x5] ldr r0, [r2] strb r4, [r0, 0x7] ldr r0, [r2] strb r4, [r0, 0x8] ldr r0, [r2] strb r4, [r0, 0x9] ldr r0, [r2] str r4, [r0, 0xC] ldrb r1, [r0, 0x10] strb r4, [r0, 0x10] ldr r0, [r2] ldrh r1, [r0, 0x12] movs r1, 0 strh r4, [r0, 0x12] strb r1, [r0, 0x15] ldr r0, [r2] adds r0, 0x2C ldrb r2, [r0] strb r1, [r0] ldr r1, _081DF1DC @ =0x04000134 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC ldr r2, _081DF1E0 @ =0x00005003 adds r0, r2, 0 strh r0, [r1] bl STWI_init_Callback_M bl STWI_init_Callback_S ldr r3, _081DF1E4 @ =0x04000208 ldrh r2, [r3] strh r4, [r3] ldr r4, _081DF1E8 @ =0x04000200 ldrh r0, [r4] movs r1, 0x80 orrs r0, r1 strh r0, [r4] strh r2, [r3] pop {r4} pop {r0} bx r0 .align 2, 0 _081DF1D4: .4byte IntrSIO32 _081DF1D8: .4byte gRfuState _081DF1DC: .4byte 0x04000134 _081DF1E0: .4byte 0x00005003 _081DF1E4: .4byte 0x04000208 _081DF1E8: .4byte 0x04000200 thumb_func_end STWI_init_all thumb_func_start STWI_init_timer STWI_init_timer: @ 81DF1EC push {r4,r5,lr} ldr r2, _081DF218 @ =STWI_intr_timer str r2, [r0] ldr r5, _081DF21C @ =gRfuState ldr r0, [r5] movs r4, 0 strb r1, [r0, 0xA] ldr r3, _081DF220 @ =0x04000208 ldrh r2, [r3] strh r4, [r3] ldr r4, _081DF224 @ =0x04000200 ldr r1, [r5] movs r0, 0x8 ldrb r1, [r1, 0xA] lsls r0, r1 ldrh r1, [r4] orrs r0, r1 strh r0, [r4] strh r2, [r3] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF218: .4byte STWI_intr_timer _081DF21C: .4byte gRfuState _081DF220: .4byte 0x04000208 _081DF224: .4byte 0x04000200 thumb_func_end STWI_init_timer thumb_func_start AgbRFU_SoftReset AgbRFU_SoftReset: @ 81DF228 push {r4,r5,lr} ldr r5, _081DF2C0 @ =0x04000134 movs r1, 0x80 lsls r1, 8 adds r0, r1, 0 strh r0, [r5] ldr r2, _081DF2C4 @ =0x000080a0 adds r0, r2, 0 strh r0, [r5] ldr r1, _081DF2C8 @ =gRfuState ldr r0, [r1] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r3, _081DF2CC @ =0x04000100 adds r2, r0, r3 ldr r4, _081DF2D0 @ =0x04000102 adds r3, r0, r4 movs r0, 0 strh r0, [r3] strh r0, [r2] movs r0, 0x83 strh r0, [r3] ldrh r0, [r2] adds r4, r1, 0 cmp r0, 0x11 bhi _081DF268 ldr r0, _081DF2D4 @ =0x000080a2 adds r1, r0, 0 _081DF260: strh r1, [r5] ldrh r0, [r2] cmp r0, 0x11 bls _081DF260 _081DF268: movs r0, 0x3 strh r0, [r3] ldr r1, _081DF2C0 @ =0x04000134 ldr r2, _081DF2C4 @ =0x000080a0 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC ldr r3, _081DF2D8 @ =0x00005003 adds r0, r3, 0 strh r0, [r1] ldr r0, [r4] movs r2, 0 str r2, [r0] strb r2, [r0, 0x4] ldr r0, [r4] strb r2, [r0, 0x5] ldr r0, [r4] strb r2, [r0, 0x6] ldr r0, [r4] strb r2, [r0, 0x7] ldr r0, [r4] strb r2, [r0, 0x8] ldr r0, [r4] strb r2, [r0, 0x9] ldr r0, [r4] str r2, [r0, 0xC] ldrb r1, [r0, 0x10] strb r2, [r0, 0x10] ldr r1, [r4] ldrh r0, [r1, 0x12] movs r3, 0 strh r2, [r1, 0x12] ldrb r0, [r1, 0x14] movs r0, 0x1 strb r0, [r1, 0x14] ldr r0, [r4] strb r3, [r0, 0x15] ldr r0, [r4] adds r0, 0x2C ldrb r1, [r0] strb r3, [r0] pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF2C0: .4byte 0x04000134 _081DF2C4: .4byte 0x000080a0 _081DF2C8: .4byte gRfuState _081DF2CC: .4byte 0x04000100 _081DF2D0: .4byte 0x04000102 _081DF2D4: .4byte 0x000080a2 _081DF2D8: .4byte 0x00005003 thumb_func_end AgbRFU_SoftReset thumb_func_start STWI_set_MS_mode STWI_set_MS_mode: @ 81DF2DC lsls r0, 24 lsrs r0, 24 ldr r1, _081DF2EC @ =gRfuState ldr r1, [r1] ldrb r2, [r1, 0x14] strb r0, [r1, 0x14] bx lr .align 2, 0 _081DF2EC: .4byte gRfuState thumb_func_end STWI_set_MS_mode thumb_func_start STWI_read_status STWI_read_status: @ 81DF2F0 push {lr} lsls r0, 24 lsrs r0, 24 adds r1, r0, 0 cmp r0, 0x1 beq _081DF31C cmp r0, 0x1 bgt _081DF306 cmp r0, 0 beq _081DF310 b _081DF344 _081DF306: cmp r1, 0x2 beq _081DF328 cmp r1, 0x3 beq _081DF338 b _081DF344 _081DF310: ldr r0, _081DF318 @ =gRfuState ldr r0, [r0] ldrh r0, [r0, 0x12] b _081DF346 .align 2, 0 _081DF318: .4byte gRfuState _081DF31C: ldr r0, _081DF324 @ =gRfuState ldr r0, [r0] ldrb r0, [r0, 0x14] b _081DF346 .align 2, 0 _081DF324: .4byte gRfuState _081DF328: ldr r0, _081DF334 @ =gRfuState ldr r0, [r0] ldr r0, [r0] lsls r0, 16 lsrs r0, 16 b _081DF346 .align 2, 0 _081DF334: .4byte gRfuState _081DF338: ldr r0, _081DF340 @ =gRfuState ldr r0, [r0] ldrb r0, [r0, 0x6] b _081DF346 .align 2, 0 _081DF340: .4byte gRfuState _081DF344: ldr r0, _081DF34C @ =0x0000ffff _081DF346: pop {r1} bx r1 .align 2, 0 _081DF34C: .4byte 0x0000ffff thumb_func_end STWI_read_status thumb_func_start STWI_init_Callback_M STWI_init_Callback_M: @ 81DF350 push {lr} movs r0, 0 bl STWI_set_Callback_M pop {r0} bx r0 thumb_func_end STWI_init_Callback_M thumb_func_start STWI_init_Callback_S STWI_init_Callback_S: @ 81DF35C push {lr} movs r0, 0 bl STWI_set_Callback_S pop {r0} bx r0 thumb_func_end STWI_init_Callback_S thumb_func_start STWI_set_Callback_M STWI_set_Callback_M: @ 81DF368 ldr r1, _081DF370 @ =gRfuState ldr r1, [r1] str r0, [r1, 0x18] bx lr .align 2, 0 _081DF370: .4byte gRfuState thumb_func_end STWI_set_Callback_M thumb_func_start STWI_set_Callback_S STWI_set_Callback_S: @ 81DF374 ldr r1, _081DF37C @ =gRfuState ldr r1, [r1] str r0, [r1, 0x1C] bx lr .align 2, 0 _081DF37C: .4byte gRfuState thumb_func_end STWI_set_Callback_S thumb_func_start STWI_set_Callback_ID STWI_set_Callback_ID: @ 81DF380 ldr r1, _081DF388 @ =gRfuState ldr r1, [r1] str r0, [r1, 0x20] bx lr .align 2, 0 _081DF388: .4byte gRfuState thumb_func_end STWI_set_Callback_ID thumb_func_start STWI_poll_CommandEnd STWI_poll_CommandEnd: @ 81DF38C push {lr} ldr r0, _081DF3B0 @ =gRfuState ldr r1, [r0] adds r2, r1, 0 adds r2, 0x2C ldrb r1, [r2] adds r3, r0, 0 cmp r1, 0x1 bne _081DF3A6 adds r1, r2, 0 _081DF3A0: ldrb r0, [r1] cmp r0, 0x1 beq _081DF3A0 _081DF3A6: ldr r0, [r3] ldrh r0, [r0, 0x12] pop {r1} bx r1 .align 2, 0 _081DF3B0: .4byte gRfuState thumb_func_end STWI_poll_CommandEnd thumb_func_start STWI_send_ResetREQ STWI_send_ResetREQ: @ 81DF3B4 push {lr} movs r0, 0x10 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF3CE ldr r0, _081DF3D4 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF3CE: pop {r0} bx r0 .align 2, 0 _081DF3D4: .4byte gRfuState thumb_func_end STWI_send_ResetREQ thumb_func_start STWI_send_LinkStatusREQ STWI_send_LinkStatusREQ: @ 81DF3D8 push {lr} movs r0, 0x11 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF3F2 ldr r0, _081DF3F8 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF3F2: pop {r0} bx r0 .align 2, 0 _081DF3F8: .4byte gRfuState thumb_func_end STWI_send_LinkStatusREQ thumb_func_start STWI_send_VersionStatusREQ STWI_send_VersionStatusREQ: @ 81DF3FC push {lr} movs r0, 0x12 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF416 ldr r0, _081DF41C @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF416: pop {r0} bx r0 .align 2, 0 _081DF41C: .4byte gRfuState thumb_func_end STWI_send_VersionStatusREQ thumb_func_start STWI_send_SystemStatusREQ STWI_send_SystemStatusREQ: @ 81DF420 push {lr} movs r0, 0x13 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF43A ldr r0, _081DF440 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF43A: pop {r0} bx r0 .align 2, 0 _081DF440: .4byte gRfuState thumb_func_end STWI_send_SystemStatusREQ thumb_func_start STWI_send_SlotStatusREQ STWI_send_SlotStatusREQ: @ 81DF444 push {lr} movs r0, 0x14 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF45E ldr r0, _081DF464 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF45E: pop {r0} bx r0 .align 2, 0 _081DF464: .4byte gRfuState thumb_func_end STWI_send_SlotStatusREQ thumb_func_start STWI_send_ConfigStatusREQ STWI_send_ConfigStatusREQ: @ 81DF468 push {lr} movs r0, 0x15 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF482 ldr r0, _081DF488 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF482: pop {r0} bx r0 .align 2, 0 _081DF488: .4byte gRfuState thumb_func_end STWI_send_ConfigStatusREQ thumb_func_start STWI_send_GameConfigREQ STWI_send_GameConfigREQ: @ 81DF48C push {r4,r5,lr} adds r4, r0, 0 adds r5, r1, 0 movs r0, 0x16 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF4D8 ldr r2, _081DF4E0 @ =gRfuState ldr r1, [r2] movs r0, 0x6 strb r0, [r1, 0x4] ldr r0, [r2] ldr r1, [r0, 0x24] adds r1, 0x4 ldrh r0, [r4] strh r0, [r1] adds r1, 0x2 adds r4, 0x2 movs r2, 0xD _081DF4B6: ldrb r0, [r4] strb r0, [r1] adds r1, 0x1 adds r4, 0x1 subs r2, 0x1 cmp r2, 0 bge _081DF4B6 movs r2, 0x7 _081DF4C6: ldrb r0, [r5] strb r0, [r1] adds r1, 0x1 adds r5, 0x1 subs r2, 0x1 cmp r2, 0 bge _081DF4C6 bl STWI_start_Command _081DF4D8: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF4E0: .4byte gRfuState thumb_func_end STWI_send_GameConfigREQ thumb_func_start STWI_send_SystemConfigREQ STWI_send_SystemConfigREQ: @ 81DF4E4 push {r4-r6,lr} lsls r0, 16 lsrs r6, r0, 16 lsls r1, 24 lsrs r5, r1, 24 lsls r2, 24 lsrs r4, r2, 24 movs r0, 0x17 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF51A ldr r2, _081DF520 @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r0, [r0, 0x24] adds r0, 0x4 strb r4, [r0] adds r0, 0x1 strb r5, [r0] adds r0, 0x1 strh r6, [r0] bl STWI_start_Command _081DF51A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DF520: .4byte gRfuState thumb_func_end STWI_send_SystemConfigREQ thumb_func_start STWI_send_SC_StartREQ STWI_send_SC_StartREQ: @ 81DF524 push {lr} movs r0, 0x19 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF53E ldr r0, _081DF544 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF53E: pop {r0} bx r0 .align 2, 0 _081DF544: .4byte gRfuState thumb_func_end STWI_send_SC_StartREQ thumb_func_start STWI_send_SC_PollingREQ STWI_send_SC_PollingREQ: @ 81DF548 push {lr} movs r0, 0x1A bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF562 ldr r0, _081DF568 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF562: pop {r0} bx r0 .align 2, 0 _081DF568: .4byte gRfuState thumb_func_end STWI_send_SC_PollingREQ thumb_func_start STWI_send_SC_EndREQ STWI_send_SC_EndREQ: @ 81DF56C push {lr} movs r0, 0x1B bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF586 ldr r0, _081DF58C @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF586: pop {r0} bx r0 .align 2, 0 _081DF58C: .4byte gRfuState thumb_func_end STWI_send_SC_EndREQ thumb_func_start STWI_send_SP_StartREQ STWI_send_SP_StartREQ: @ 81DF590 push {lr} movs r0, 0x1C bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF5AA ldr r0, _081DF5B0 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF5AA: pop {r0} bx r0 .align 2, 0 _081DF5B0: .4byte gRfuState thumb_func_end STWI_send_SP_StartREQ thumb_func_start STWI_send_SP_PollingREQ STWI_send_SP_PollingREQ: @ 81DF5B4 push {lr} movs r0, 0x1D bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF5CE ldr r0, _081DF5D4 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF5CE: pop {r0} bx r0 .align 2, 0 _081DF5D4: .4byte gRfuState thumb_func_end STWI_send_SP_PollingREQ thumb_func_start STWI_send_SP_EndREQ STWI_send_SP_EndREQ: @ 81DF5D8 push {lr} movs r0, 0x1E bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF5F2 ldr r0, _081DF5F8 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF5F2: pop {r0} bx r0 .align 2, 0 _081DF5F8: .4byte gRfuState thumb_func_end STWI_send_SP_EndREQ thumb_func_start STWI_send_CP_StartREQ STWI_send_CP_StartREQ: @ 81DF5FC push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 movs r0, 0x1F bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF620 ldr r2, _081DF628 @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r0, [r0, 0x24] str r4, [r0, 0x4] bl STWI_start_Command _081DF620: pop {r4} pop {r0} bx r0 .align 2, 0 _081DF628: .4byte gRfuState thumb_func_end STWI_send_CP_StartREQ thumb_func_start STWI_send_CP_PollingREQ STWI_send_CP_PollingREQ: @ 81DF62C push {lr} movs r0, 0x20 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF646 ldr r0, _081DF64C @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF646: pop {r0} bx r0 .align 2, 0 _081DF64C: .4byte gRfuState thumb_func_end STWI_send_CP_PollingREQ thumb_func_start STWI_send_CP_EndREQ STWI_send_CP_EndREQ: @ 81DF650 push {lr} movs r0, 0x21 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF66A ldr r0, _081DF670 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF66A: pop {r0} bx r0 .align 2, 0 _081DF670: .4byte gRfuState thumb_func_end STWI_send_CP_EndREQ thumb_func_start STWI_send_DataTxREQ STWI_send_DataTxREQ: @ 81DF674 push {r4-r6,lr} adds r6, r0, 0 lsls r4, r1, 24 lsrs r5, r4, 24 movs r0, 0x24 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF6B2 lsrs r2, r4, 26 movs r0, 0x3 ands r0, r5 cmp r0, 0 beq _081DF694 adds r2, 0x1 _081DF694: ldr r1, _081DF6B8 @ =gRfuState ldr r0, [r1] strb r2, [r0, 0x4] ldr r0, [r1] ldr r1, [r0, 0x24] adds r1, 0x4 ldrb r2, [r0, 0x4] movs r0, 0x80 lsls r0, 19 orrs r2, r0 adds r0, r6, 0 bl CpuSet bl STWI_start_Command _081DF6B2: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DF6B8: .4byte gRfuState thumb_func_end STWI_send_DataTxREQ thumb_func_start STWI_send_DataTxAndChangeREQ STWI_send_DataTxAndChangeREQ: @ 81DF6BC push {r4-r6,lr} adds r6, r0, 0 lsls r4, r1, 24 lsrs r5, r4, 24 movs r0, 0x25 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF6FA lsrs r2, r4, 26 movs r0, 0x3 ands r0, r5 cmp r0, 0 beq _081DF6DC adds r2, 0x1 _081DF6DC: ldr r1, _081DF700 @ =gRfuState ldr r0, [r1] strb r2, [r0, 0x4] ldr r0, [r1] ldr r1, [r0, 0x24] adds r1, 0x4 ldrb r2, [r0, 0x4] movs r0, 0x80 lsls r0, 19 orrs r2, r0 adds r0, r6, 0 bl CpuSet bl STWI_start_Command _081DF6FA: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DF700: .4byte gRfuState thumb_func_end STWI_send_DataTxAndChangeREQ thumb_func_start STWI_send_DataRxREQ STWI_send_DataRxREQ: @ 81DF704 push {lr} movs r0, 0x26 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF71E ldr r0, _081DF724 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF71E: pop {r0} bx r0 .align 2, 0 _081DF724: .4byte gRfuState thumb_func_end STWI_send_DataRxREQ thumb_func_start STWI_send_MS_ChangeREQ STWI_send_MS_ChangeREQ: @ 81DF728 push {lr} movs r0, 0x27 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF742 ldr r0, _081DF748 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF742: pop {r0} bx r0 .align 2, 0 _081DF748: .4byte gRfuState thumb_func_end STWI_send_MS_ChangeREQ thumb_func_start STWI_send_DataReadyAndChangeREQ STWI_send_DataReadyAndChangeREQ: @ 81DF74C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 movs r0, 0x28 bl STWI_init lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _081DF792 cmp r4, 0 bne _081DF774 ldr r0, _081DF770 @ =gRfuState ldr r0, [r0] strb r3, [r0, 0x4] b _081DF78E .align 2, 0 _081DF770: .4byte gRfuState _081DF774: ldr r2, _081DF798 @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r0, [r0, 0x24] adds r0, 0x4 strb r5, [r0] adds r0, 0x1 strb r3, [r0] adds r0, 0x1 strb r3, [r0] strb r3, [r0, 0x1] _081DF78E: bl STWI_start_Command _081DF792: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF798: .4byte gRfuState thumb_func_end STWI_send_DataReadyAndChangeREQ thumb_func_start STWI_send_DisconnectedAndChangeREQ STWI_send_DisconnectedAndChangeREQ: @ 81DF79C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 24 lsrs r5, r1, 24 movs r0, 0x29 bl STWI_init lsls r0, 16 lsrs r3, r0, 16 cmp r3, 0 bne _081DF7D2 ldr r2, _081DF7D8 @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r0, [r0, 0x24] adds r0, 0x4 strb r4, [r0] adds r0, 0x1 strb r5, [r0] adds r0, 0x1 strb r3, [r0] strb r3, [r0, 0x1] bl STWI_start_Command _081DF7D2: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF7D8: .4byte gRfuState thumb_func_end STWI_send_DisconnectedAndChangeREQ thumb_func_start STWI_send_ResumeRetransmitAndChangeREQ STWI_send_ResumeRetransmitAndChangeREQ: @ 81DF7DC push {lr} movs r0, 0x37 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF7F6 ldr r0, _081DF7FC @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF7F6: pop {r0} bx r0 .align 2, 0 _081DF7FC: .4byte gRfuState thumb_func_end STWI_send_ResumeRetransmitAndChangeREQ thumb_func_start STWI_send_DisconnectREQ STWI_send_DisconnectREQ: @ 81DF800 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0x30 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF824 ldr r2, _081DF82C @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r0, [r0, 0x24] str r4, [r0, 0x4] bl STWI_start_Command _081DF824: pop {r4} pop {r0} bx r0 .align 2, 0 _081DF82C: .4byte gRfuState thumb_func_end STWI_send_DisconnectREQ thumb_func_start STWI_send_TestModeREQ STWI_send_TestModeREQ: @ 81DF830 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 24 lsrs r4, r1, 24 movs r0, 0x31 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF85C ldr r2, _081DF864 @ =gRfuState ldr r1, [r2] movs r0, 0x1 strb r0, [r1, 0x4] ldr r0, [r2] ldr r1, [r0, 0x24] lsls r0, r4, 8 orrs r0, r5 str r0, [r1, 0x4] bl STWI_start_Command _081DF85C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081DF864: .4byte gRfuState thumb_func_end STWI_send_TestModeREQ thumb_func_start STWI_send_CPR_StartREQ STWI_send_CPR_StartREQ: @ 81DF868 push {r4-r6,lr} lsls r0, 16 lsrs r5, r0, 16 lsls r1, 16 lsrs r4, r1, 16 lsls r2, 24 lsrs r6, r2, 24 movs r0, 0x32 bl STWI_init lsls r0, 16 cmp r0, 0 bne _081DF89A ldr r2, _081DF8A0 @ =gRfuState ldr r1, [r2] movs r0, 0x2 strb r0, [r1, 0x4] lsls r0, r5, 16 orrs r0, r4 ldr r1, [r2] ldr r1, [r1, 0x24] str r0, [r1, 0x4] str r6, [r1, 0x8] bl STWI_start_Command _081DF89A: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081DF8A0: .4byte gRfuState thumb_func_end STWI_send_CPR_StartREQ thumb_func_start STWI_send_CPR_PollingREQ STWI_send_CPR_PollingREQ: @ 81DF8A4 push {lr} movs r0, 0x33 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF8BE ldr r0, _081DF8C4 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF8BE: pop {r0} bx r0 .align 2, 0 _081DF8C4: .4byte gRfuState thumb_func_end STWI_send_CPR_PollingREQ thumb_func_start STWI_send_CPR_EndREQ STWI_send_CPR_EndREQ: @ 81DF8C8 push {lr} movs r0, 0x34 bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF8E2 ldr r0, _081DF8E8 @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF8E2: pop {r0} bx r0 .align 2, 0 _081DF8E8: .4byte gRfuState thumb_func_end STWI_send_CPR_EndREQ thumb_func_start STWI_send_StopModeREQ STWI_send_StopModeREQ: @ 81DF8EC push {lr} movs r0, 0x3D bl STWI_init lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081DF906 ldr r0, _081DF90C @ =gRfuState ldr r0, [r0] strb r1, [r0, 0x4] bl STWI_start_Command _081DF906: pop {r0} bx r0 .align 2, 0 _081DF90C: .4byte gRfuState thumb_func_end STWI_send_StopModeREQ thumb_func_start STWI_intr_timer STWI_intr_timer: @ 81DF910 push {r4,lr} ldr r4, _081DF928 @ =gRfuState ldr r1, [r4] ldr r0, [r1, 0xC] cmp r0, 0x2 beq _081DF936 cmp r0, 0x2 bhi _081DF92C cmp r0, 0x1 beq _081DF944 b _081DF96C .align 2, 0 _081DF928: .4byte gRfuState _081DF92C: cmp r0, 0x3 beq _081DF94E cmp r0, 0x4 beq _081DF944 b _081DF96C _081DF936: ldrb r0, [r1, 0x10] movs r0, 0x1 strb r0, [r1, 0x10] movs r0, 0x32 bl STWI_set_timer b _081DF96C _081DF944: bl STWI_stop_timer bl STWI_restart_Command b _081DF96C _081DF94E: ldrb r0, [r1, 0x10] movs r0, 0x1 strb r0, [r1, 0x10] bl STWI_stop_timer bl STWI_reset_ClockCounter ldr r0, [r4] ldr r2, [r0, 0x18] cmp r2, 0 beq _081DF96C movs r0, 0xFF movs r1, 0 bl _call_via_r2 _081DF96C: pop {r4} pop {r0} bx r0 thumb_func_end STWI_intr_timer thumb_func_start STWI_set_timer STWI_set_timer: @ 81DF974 push {r4-r7,lr} lsls r0, 24 lsrs r3, r0, 24 adds r5, r3, 0 ldr r2, _081DF9A4 @ =gRfuState ldr r0, [r2] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r1, _081DF9A8 @ =0x04000100 adds r4, r0, r1 adds r1, 0x2 adds r7, r0, r1 ldr r1, _081DF9AC @ =0x04000208 movs r0, 0 strh r0, [r1] adds r6, r2, 0 cmp r3, 0x50 beq _081DF9CC cmp r3, 0x50 bgt _081DF9B0 cmp r3, 0x32 beq _081DF9BA b _081DF9F8 .align 2, 0 _081DF9A4: .4byte gRfuState _081DF9A8: .4byte 0x04000100 _081DF9AC: .4byte 0x04000208 _081DF9B0: cmp r5, 0x64 beq _081DF9DC cmp r5, 0x82 beq _081DF9EC b _081DF9F8 _081DF9BA: ldr r1, _081DF9C8 @ =0x0000fccb adds r0, r1, 0 strh r0, [r4] ldr r1, [r6] movs r0, 0x1 b _081DF9F6 .align 2, 0 _081DF9C8: .4byte 0x0000fccb _081DF9CC: ldr r1, _081DF9D8 @ =0x0000fae0 adds r0, r1, 0 strh r0, [r4] ldr r1, [r6] movs r0, 0x2 b _081DF9F6 .align 2, 0 _081DF9D8: .4byte 0x0000fae0 _081DF9DC: ldr r1, _081DF9E8 @ =0x0000f996 adds r0, r1, 0 strh r0, [r4] ldr r1, [r6] movs r0, 0x3 b _081DF9F6 .align 2, 0 _081DF9E8: .4byte 0x0000f996 _081DF9EC: ldr r1, _081DFA14 @ =0x0000f7ad adds r0, r1, 0 strh r0, [r4] ldr r1, [r6] movs r0, 0x4 _081DF9F6: str r0, [r1, 0xC] _081DF9F8: movs r0, 0xC3 strh r0, [r7] ldr r2, _081DFA18 @ =0x04000202 ldr r1, [r6] movs r0, 0x8 ldrb r1, [r1, 0xA] lsls r0, r1 strh r0, [r2] ldr r1, _081DFA1C @ =0x04000208 movs r0, 0x1 strh r0, [r1] pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081DFA14: .4byte 0x0000f7ad _081DFA18: .4byte 0x04000202 _081DFA1C: .4byte 0x04000208 thumb_func_end STWI_set_timer thumb_func_start STWI_stop_timer STWI_stop_timer: @ 81DFA20 ldr r2, _081DFA40 @ =gRfuState ldr r0, [r2] movs r1, 0 str r1, [r0, 0xC] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r3, _081DFA44 @ =0x04000100 adds r0, r3 strh r1, [r0] ldr r0, [r2] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r2, _081DFA48 @ =0x04000102 adds r0, r2 strh r1, [r0] bx lr .align 2, 0 _081DFA40: .4byte gRfuState _081DFA44: .4byte 0x04000100 _081DFA48: .4byte 0x04000102 thumb_func_end STWI_stop_timer thumb_func_start STWI_init STWI_init: @ 81DFA4C push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r0, _081DFA78 @ =0x04000208 ldrh r0, [r0] cmp r0, 0 bne _081DFA80 ldr r0, _081DFA7C @ =gRfuState ldr r1, [r0] ldrh r0, [r1, 0x12] movs r0, 0x6 strh r0, [r1, 0x12] ldr r2, [r1, 0x18] cmp r2, 0 beq _081DFACA ldrh r1, [r1, 0x12] adds r0, r5, 0 bl _call_via_r2 b _081DFACA .align 2, 0 _081DFA78: .4byte 0x04000208 _081DFA7C: .4byte gRfuState _081DFA80: ldr r4, _081DFAAC @ =gRfuState ldr r2, [r4] adds r3, r2, 0 adds r3, 0x2C ldrb r0, [r3] cmp r0, 0x1 bne _081DFAB0 ldrh r0, [r2, 0x12] movs r1, 0 movs r0, 0x2 strh r0, [r2, 0x12] ldrb r0, [r3] strb r1, [r3] ldr r0, [r4] ldr r2, [r0, 0x18] cmp r2, 0 beq _081DFACA ldrh r1, [r0, 0x12] adds r0, r5, 0 bl _call_via_r2 b _081DFACA .align 2, 0 _081DFAAC: .4byte gRfuState _081DFAB0: ldrb r0, [r2, 0x14] cmp r0, 0 bne _081DFACE ldrh r0, [r2, 0x12] movs r0, 0x4 strh r0, [r2, 0x12] ldr r3, [r2, 0x18] cmp r3, 0 beq _081DFACA ldrh r1, [r2, 0x12] adds r0, r5, 0 bl _call_via_r3 _081DFACA: movs r0, 0x1 b _081DFB16 _081DFACE: ldrb r0, [r3] movs r1, 0 movs r0, 0x1 strb r0, [r3] ldr r0, [r4] strb r6, [r0, 0x6] ldr r0, [r4] str r1, [r0] strb r1, [r0, 0x4] ldr r0, [r4] strb r1, [r0, 0x5] ldr r0, [r4] strb r1, [r0, 0x7] ldr r0, [r4] strb r1, [r0, 0x8] ldr r0, [r4] strb r1, [r0, 0x9] ldr r0, [r4] str r1, [r0, 0xC] ldrb r2, [r0, 0x10] strb r1, [r0, 0x10] ldr r0, [r4] ldrh r2, [r0, 0x12] movs r2, 0 strh r1, [r0, 0x12] strb r2, [r0, 0x15] ldr r1, _081DFB1C @ =0x04000134 movs r2, 0x80 lsls r2, 1 adds r0, r2, 0 strh r0, [r1] subs r1, 0xC ldr r2, _081DFB20 @ =0x00005003 adds r0, r2, 0 strh r0, [r1] movs r0, 0 _081DFB16: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081DFB1C: .4byte 0x04000134 _081DFB20: .4byte 0x00005003 thumb_func_end STWI_init thumb_func_start STWI_start_Command STWI_start_Command: @ 81DFB24 push {r4,r5,lr} ldr r5, _081DFB7C @ =gRfuState ldr r0, [r5] ldr r3, [r0, 0x24] ldrb r1, [r0, 0x4] lsls r1, 8 ldrb r0, [r0, 0x6] ldr r2, _081DFB80 @ =0x99660000 orrs r0, r2 orrs r1, r0 str r1, [r3] ldr r2, _081DFB84 @ =0x04000120 ldr r1, [r5] ldr r0, [r1, 0x24] ldr r0, [r0] str r0, [r2] movs r2, 0 str r2, [r1] movs r0, 0x1 strb r0, [r1, 0x5] ldr r4, _081DFB88 @ =0x04000208 ldrh r3, [r4] strh r2, [r4] ldr r2, _081DFB8C @ =0x04000200 ldr r1, [r5] movs r0, 0x8 ldrb r1, [r1, 0xA] lsls r0, r1 ldrh r1, [r2] orrs r0, r1 strh r0, [r2] ldrh r0, [r2] movs r1, 0x80 orrs r0, r1 strh r0, [r2] strh r3, [r4] ldr r1, _081DFB90 @ =0x04000128 ldr r2, _081DFB94 @ =0x00005083 adds r0, r2, 0 strh r0, [r1] movs r0, 0 pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081DFB7C: .4byte gRfuState _081DFB80: .4byte 0x99660000 _081DFB84: .4byte 0x04000120 _081DFB88: .4byte 0x04000208 _081DFB8C: .4byte 0x04000200 _081DFB90: .4byte 0x04000128 _081DFB94: .4byte 0x00005083 thumb_func_end STWI_start_Command thumb_func_start STWI_restart_Command STWI_restart_Command: @ 81DFB98 push {r4,lr} ldr r4, _081DFBB0 @ =gRfuState ldr r2, [r4] ldrb r0, [r2, 0x15] adds r3, r4, 0 cmp r0, 0x1 bhi _081DFBB4 adds r0, 0x1 strb r0, [r2, 0x15] bl STWI_start_Command b _081DFC0E .align 2, 0 _081DFBB0: .4byte gRfuState _081DFBB4: ldrb r0, [r2, 0x6] cmp r0, 0x27 beq _081DFBC6 cmp r0, 0x25 beq _081DFBC6 cmp r0, 0x35 beq _081DFBC6 cmp r0, 0x37 bne _081DFBE8 _081DFBC6: ldr r0, [r3] ldrh r1, [r0, 0x12] movs r2, 0 movs r1, 0x1 strh r1, [r0, 0x12] adds r0, 0x2C ldrb r1, [r0] strb r2, [r0] ldr r1, [r3] ldr r2, [r1, 0x18] cmp r2, 0 beq _081DFC0E ldrb r0, [r1, 0x6] ldrh r1, [r1, 0x12] bl _call_via_r2 b _081DFC0E _081DFBE8: ldrh r0, [r2, 0x12] movs r1, 0 movs r0, 0x1 strh r0, [r2, 0x12] adds r0, r2, 0 adds r0, 0x2C ldrb r2, [r0] strb r1, [r0] ldr r1, [r4] ldr r2, [r1, 0x18] cmp r2, 0 beq _081DFC08 ldrb r0, [r1, 0x6] ldrh r1, [r1, 0x12] bl _call_via_r2 _081DFC08: ldr r1, [r4] movs r0, 0x4 str r0, [r1] _081DFC0E: movs r0, 0 pop {r4} pop {r1} bx r1 thumb_func_end STWI_restart_Command thumb_func_start STWI_reset_ClockCounter STWI_reset_ClockCounter: @ 81DFC18 ldr r3, _081DFC44 @ =gRfuState ldr r1, [r3] movs r0, 0x5 str r0, [r1] movs r2, 0 strb r2, [r1, 0x4] ldr r0, [r3] strb r2, [r0, 0x5] ldr r1, _081DFC48 @ =0x04000120 movs r0, 0x80 lsls r0, 24 str r0, [r1] adds r1, 0x8 strh r2, [r1] ldr r2, _081DFC4C @ =0x00005003 adds r0, r2, 0 strh r0, [r1] adds r2, 0x7F adds r0, r2, 0 strh r0, [r1] movs r0, 0 bx lr .align 2, 0 _081DFC44: .4byte gRfuState _081DFC48: .4byte 0x04000120 _081DFC4C: .4byte 0x00005003 thumb_func_end STWI_reset_ClockCounter arm_func_start IntrSIO32 IntrSIO32: @ 81DFC50 mov r12, sp stmdb sp!, {r11,r12,lr,pc} ldr r3, _081DFCB0 @ =gRfuState ldr r0, [r3] ldr r2, [r0] sub r11, r12, 0x4 cmp r2, 0xA bne _081DFC8C ldr r0, [r0, 0x20] cmp r0, 0 ldmdbeq r11, {r11,sp,lr} bxeq lr bl sub_81E05AC ldmdb r11, {r11,sp,lr} bx lr _081DFC8C: ldrb r3, [r0, 0x14] cmp r3, 0x1 bne _081DFCA4 bl sio32intr_clock_master ldmdb r11, {r11,sp,lr} bx lr _081DFCA4: bl sio32intr_clock_slave ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 _081DFCB0: .4byte gRfuState arm_func_end IntrSIO32 arm_func_start sio32intr_clock_master sio32intr_clock_master: @ 81DFCB4 mov r12, sp stmdb sp!, {r4-r6,r11,r12,lr,pc} mov r0, 0x50 sub r11, r12, 0x4 bl STWI_set_timer_in_RAM mov r4, 0x120 ldr r2, _081DFF28 @ =gRfuState add r4, r4, 0x4000000 ldr lr, [r4] ldr r12, [r2] ldr r3, [r12] mov r6, r2 cmp r3, 0 bne _081DFD34 cmp lr, 0x80000000 bne _081DFDB4 ldrb r2, [r12, 0x5] ldrb r3, [r12, 0x4] cmp r2, r3 bhi _081DFD24 ldr r3, [r12, 0x24] mov r1, r2 ldr r2, [r3, r1, lsl 2] str r2, [r4] ldrb r3, [r12, 0x5] add r3, r3, 0x1 strb r3, [r12, 0x5] b _081DFE10 _081DFD24: mov r3, 0x1 str r3, [r12] str lr, [r4] b _081DFE10 _081DFD34: ldr r3, [r12] cmp r3, 0x1 bne _081DFDC4 mov r3, 0x99000000 add r3, r3, 0x660000 mov r5, 0x80000000 and r2, lr, r5, asr 15 cmp r2, r3 bne _081DFDB4 mov r3, 0 strb r3, [r12, 0x8] ldr r1, [r6] ldrb r0, [r1, 0x8] ldr r2, [r1, 0x28] str lr, [r2, r0, lsl 2] ldrb r3, [r1, 0x8] add r3, r3, 0x1 strb r3, [r1, 0x8] ldr r2, [r6] strb lr, [r2, 0x9] ldr r3, [r6] mov r2, lr, lsr 8 strb r2, [r3, 0x7] ldr r1, [r6] ldrb r2, [r1, 0x7] ldrb r3, [r1, 0x8] cmp r2, r3 bcc _081DFDFC mov r3, 0x2 str r3, [r1] str r5, [r4] b _081DFE10 _081DFDB4: bl STWI_stop_timer_in_RAM mov r0, 0x82 bl STWI_set_timer_in_RAM b _081DFF3C _081DFDC4: ldr r3, [r12] cmp r3, 0x2 bne _081DFE10 ldrb r1, [r12, 0x8] ldr r2, [r12, 0x28] str lr, [r2, r1, lsl 2] ldrb r3, [r12, 0x8] add r3, r3, 0x1 strb r3, [r12, 0x8] ldr r1, [r6] ldrb r2, [r1, 0x7] ldrb r3, [r1, 0x8] cmp r2, r3 bcs _081DFE08 _081DFDFC: mov r3, 0x3 str r3, [r1] b _081DFE10 _081DFE08: mov r3, 0x80000000 str r3, [r4] _081DFE10: mov r0, 0x1 bl handshake_wait mov r0, r0, lsl 16 cmp r0, 0x10000 beq _081DFF3C mov r4, 0x128 add r4, r4, 0x4000000 mov r5, 0x5000 add r3, r5, 0xB strh r3, [r4] mov r0, 0 bl handshake_wait mov r0, r0, lsl 16 cmp r0, 0x10000 beq _081DFF3C bl STWI_stop_timer_in_RAM ldr r1, [r6] ldr r0, [r1] cmp r0, 0x3 bne _081DFF2C ldrb r3, [r1, 0x9] cmp r3, 0xA5 cmpne r3, 0xA7 beq _081DFE84 and r3, r3, 0xFF cmp r3, 0xB5 beq _081DFE84 cmp r3, 0xB7 bne _081DFECC _081DFE84: mov r1, 0x120 add r1, r1, 0x4000000 mov r12, 0x128 add r12, r12, 0x4000000 ldr r0, [r6] mov r3, 0 strb r3, [r0, 0x14] mov r2, 0x80000000 str r2, [r1] add r3, r3, 0x5000 add r2, r3, 0x2 strh r2, [r12] add r3, r3, 0x82 strh r3, [r12] ldr r2, [r6] mov r3, 0x5 str r3, [r2] b _081DFEFC _081DFECC: cmp r3, 0xEE bne _081DFEEC add r3, r5, 0x3 strh r3, [r4] mov r2, 0x4 str r2, [r1] strh r0, [r1, 0x12] b _081DFEFC _081DFEEC: add r3, r5, 0x3 strh r3, [r4] mov r2, 0x4 str r2, [r1] _081DFEFC: ldr r2, [r6] mov r3, 0 strb r3, [r2, 0x2C] ldr r0, [r6] ldr r2, [r0, 0x18] cmp r2, r3 beq _081DFF3C ldrh r1, [r0, 0x12] ldrb r0, [r0, 0x6] bl sub_81E05A4 b _081DFF3C .align 2, 0 _081DFF28: .4byte gRfuState _081DFF2C: add r3, r5, 0x3 strh r3, [r4] add r2, r5, 0x83 strh r2, [r4] _081DFF3C: ldmdb r11, {r4-r6,r11,sp,lr} bx lr arm_func_end sio32intr_clock_master arm_func_start sio32intr_clock_slave sio32intr_clock_slave: @ 81DFF44 mov r12, sp stmdb sp!, {r4-r6,r11,r12,lr,pc} ldr r4, _081E02F0 @ =gRfuState mov r0, 0x64 ldr r3, [r4] mov r6, 0 strb r6, [r3, 0x10] sub r11, r12, 0x4 bl STWI_set_timer_in_RAM mov r0, r6 bl handshake_wait mov r0, r0, lsl 16 cmp r0, 0x10000 mov r5, r4 beq _081E0348 mov r3, 0x128 add r3, r3, 0x4000000 mov r2, 0x5000 add r2, r2, 0xA strh r2, [r3] mov lr, 0x120 ldr r0, [r5] add lr, lr, 0x4000000 ldr r12, [lr] ldr r3, [r0] cmp r3, 0x5 bne _081E0074 ldr r3, [r0, 0x28] mov r4, 0x1 mov r0, 0x99000000 str r12, [r3] add r0, r0, 0x660000 ldr r2, [r5] mov r3, r0, lsr 16 strb r4, [r2, 0x5] cmp r3, r12, lsr 16 bne _081E01C0 ldr r3, [r5] mov r2, r12, lsr 8 strb r2, [r3, 0x4] ldr r2, [r5] strb r12, [r2, 0x6] ldr r1, [r5] ldrb r3, [r1, 0x4] cmp r3, r6 bne _081E0058 ldrb r2, [r1, 0x6] sub r3, r2, 0x27 cmp r2, 0x36 cmpne r3, 0x2 bhi _081E002C add r3, r2, 0x80 strb r3, [r1, 0x9] ldr r2, [r5] ldrb r3, [r2, 0x9] ldr r1, [r2, 0x24] add r3, r3, r0 b _081E00DC _081E002C: ldr r2, [r1, 0x24] ldr r3, _081E02F4 @ =0x996601ee str r3, [r2] ldr r2, [r5] ldrb r3, [r2, 0x6] sub r3, r3, 0x10 cmp r3, 0x2D bhi _081E0114 ldr r3, [r2, 0x24] str r4, [r3, 0x4] b _081E0120 _081E0058: mov r3, 0x80000000 str r3, [lr] strb r4, [r1, 0x5] ldr r2, [r5] add r3, r3, 0x80000006 str r3, [r2] b _081E01D0 _081E0074: ldr r3, [r0] cmp r3, 0x6 bne _081E0174 ldrb r1, [r0, 0x5] ldr r2, [r0, 0x28] str r12, [r2, r1, lsl 2] ldrb r3, [r0, 0x5] add r3, r3, 0x1 strb r3, [r0, 0x5] ldr r1, [r5] ldrb r2, [r1, 0x4] ldrb r3, [r1, 0x5] cmp r2, r3 bcs _081E0168 ldrb r2, [r1, 0x6] sub r3, r2, 0x28 cmp r2, 0x36 cmpne r3, 0x1 bhi _081E00EC add r3, r2, 0x80 strb r3, [r1, 0x9] ldr r2, [r5] ldrb r3, [r2, 0x9] ldr r1, [r2, 0x24] orr r3, r3, 0x99000000 orr r3, r3, 0x660000 _081E00DC: str r3, [r1] ldr r2, [r5] strb r6, [r2, 0x7] b _081E0138 _081E00EC: ldr r2, [r1, 0x24] ldr r3, _081E02F4 @ =0x996601ee str r3, [r2] ldr r2, [r5] ldrb r3, [r2, 0x6] sub r3, r3, 0x10 cmp r3, 0x2D ldrls r2, [r2, 0x24] movls r3, 0x1 bls _081E011C _081E0114: ldr r2, [r2, 0x24] mov r3, 0x2 _081E011C: str r3, [r2, 0x4] _081E0120: ldr r2, [r5] mov r3, 0x1 strb r3, [r2, 0x7] ldr r1, [r5] add r3, r3, 0x2 strh r3, [r1, 0x12] _081E0138: ldr r0, [r5] ldr r2, [r0, 0x24] mov r3, 0x120 ldr r1, [r2] add r3, r3, 0x4000000 str r1, [r3] mov r2, 0x1 strb r2, [r0, 0x8] ldr r1, [r5] mov r3, 0x7 str r3, [r1] b _081E01D0 _081E0168: mov r3, 0x80000000 str r3, [lr] b _081E01D0 _081E0174: ldr r3, [r0] cmp r3, 0x7 bne _081E01D0 cmp r12, 0x80000000 bne _081E01C0 ldrb r2, [r0, 0x7] ldrb r3, [r0, 0x8] cmp r2, r3 movcc r3, 0x8 strcc r3, [r0] bcc _081E01D0 ldrb r1, [r0, 0x8] ldr r3, [r0, 0x24] ldr r2, [r3, r1, lsl 2] str r2, [lr] ldrb r3, [r0, 0x8] add r3, r3, 0x1 strb r3, [r0, 0x8] b _081E01D0 _081E01C0: bl STWI_stop_timer_in_RAM mov r0, 0x64 bl STWI_set_timer_in_RAM b _081E0348 _081E01D0: mov r0, 0x1 bl handshake_wait mov r0, r0, lsl 16 cmp r0, 0x10000 beq _081E0348 mov r6, r5 ldr r3, [r6] ldr r2, [r3] cmp r2, 0x8 bne _081E0298 mov r4, 0x128 add r4, r4, 0x4000000 mov r3, 0x5000 add r3, r3, 0x2 strh r3, [r4] bl STWI_stop_timer_in_RAM ldr r0, [r6] ldrh r3, [r0, 0x12] cmp r3, 0x3 bne _081E0244 bl STWI_init_slave ldr r3, [r6] ldr r1, [r3, 0x1C] cmp r1, 0 beq _081E0348 mov r0, 0x1EC add r0, r0, 0x2 bl sub_81E05A8 b _081E0348 _081E0244: mov r3, 0x120 add r3, r3, 0x4000000 mov r1, 0 str r1, [r3] mov r2, 0x5000 strh r1, [r4] add r2, r2, 0x3 strh r2, [r4] mov r3, 0x1 strb r3, [r0, 0x14] ldr r0, [r5] ldr r2, [r0, 0x1C] str r1, [r0] cmp r2, r1 beq _081E0348 ldrb r3, [r0, 0x4] ldrb r0, [r0, 0x6] mov r1, r2 orr r0, r0, r3, lsl 8 bl sub_81E05A8 b _081E0348 _081E0298: mov r3, 0x208 add r3, r3, 0x4000000 mov r2, 0 strh r2, [r3] mov r1, 0x100 add r2, r1, 0x4000002 ldrh r3, [r2] tst r3, 0x80 beq _081E031C ldrh r3, [r2] tst r3, 0x3 bne _081E02F8 mov r2, 0xFF00 add r1, r1, 0x4000000 ldrh r3, [r1] add r2, r2, 0x9B cmp r3, r2 bls _081E031C _081E02E0: ldrh r3, [r1] cmp r3, r2 bhi _081E02E0 b _081E031C .align 2, 0 _081E02F0: .4byte gRfuState _081E02F4: .4byte 0x996601ee _081E02F8: mov r2, 0xFF00 add r1, r1, 0x4000000 ldrh r3, [r1] add r2, r2, 0xFE cmp r3, r2 bls _081E031C _081E0310: ldrh r3, [r1] cmp r3, r2 bhi _081E0310 _081E031C: mov r1, 0x128 add r1, r1, 0x4000000 mov r0, 0x208 add r0, r0, 0x4000000 mov r3, 0x5000 add r2, r3, 0x2 strh r2, [r1] add r3, r3, 0x82 strh r3, [r1] mov r2, 0x1 strh r2, [r0] _081E0348: ldmdb r11, {r4-r6,r11,sp,lr} bx lr arm_func_end sio32intr_clock_slave arm_func_start handshake_wait handshake_wait: @ 81E0350 mov r12, sp stmdb sp!, {r11,r12,lr,pc} mov r1, 0x128 add r1, r1, 0x4000000 mov r0, r0, lsl 16 ldr r2, _081E03B4 @ =gRfuState sub r11, r12, 0x4 mov lr, r0, lsr 14 ldr r12, [r2] _081E0374: ldrb r3, [r12, 0x10] and r0, r3, 0xFF cmp r0, 0x1 beq _081E03A0 ldrh r3, [r1] and r3, r3, 0x4 cmp r3, lr bne _081E0374 mov r0, 0 ldmdb r11, {r11,sp,lr} bx lr _081E03A0: ldr r2, [r2] mov r3, 0 strb r3, [r2, 0x10] ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 _081E03B4: .4byte gRfuState arm_func_end handshake_wait arm_func_start STWI_set_timer_in_RAM STWI_set_timer_in_RAM: @ 81E03B8 mov r12, sp stmdb sp!, {r4,r5,r11,r12,lr,pc} mov r1, 0x208 add r1, r1, 0x4000000 mov r3, 0 sub r11, r12, 0x4 ldr r12, _081E0470 @ =gRfuState and lr, r0, 0xFF ldr r2, [r12] cmp lr, 0x50 ldrb r0, [r2, 0xA] mov r4, r12 mov r2, lr strh r3, [r1] mov r0, r0, lsl 2 add r3, r3, 0x100 add r1, r3, 0x4000000 add r3, r3, 0x4000002 add r5, r0, r3 beq _081E0440 bgt _081E0418 cmp lr, 0x32 beq _081E042C b _081E048C _081E0418: cmp r2, 0x64 beq _081E0458 cmp r2, 0x82 beq _081E0474 b _081E048C _081E042C: mvn r3, 0x334 strh r3, [r0, r1] ldr r2, [r4] mov r3, 0x1 b _081E0488 _081E0440: mov r3, 0xAE000000 mov r3, r3, asr 20 strh r3, [r0, r1] ldr r2, [r4] mov r3, 0x2 b _081E0488 _081E0458: mvn r3, 0x660 sub r3, r3, 0x9 strh r3, [r0, r1] ldr r2, [r4] mov r3, 0x3 b _081E0488 .align 2, 0 _081E0470: .4byte gRfuState _081E0474: mvn r3, 0x850 sub r3, r3, 0x2 strh r3, [r0, r1] ldr r2, [r4] mov r3, 0x4 _081E0488: str r3, [r2, 0xC] _081E048C: mov r12, 0x200 add r12, r12, 0x4000002 mov r3, 0xC3 strh r3, [r5] mov r1, 0x208 ldr r2, [r4] add r1, r1, 0x4000000 ldrb r0, [r2, 0xA] sub r3, r3, 0xBB mov r3, r3, lsl r0 strh r3, [r12] mov r2, 0x1 strh r2, [r1] ldmdb r11, {r4,r5,r11,sp,lr} bx lr arm_func_end STWI_set_timer_in_RAM arm_func_start STWI_stop_timer_in_RAM STWI_stop_timer_in_RAM: @ 81E04C8 mov r12, sp stmdb sp!, {r11,r12,lr,pc} mov r1, 0x100 ldr lr, _081E0514 @ =gRfuState add r0, r1, 0x4000000 ldr r2, [lr] sub r11, r12, 0x4 ldrb r3, [r2, 0xA] mov r12, 0 str r12, [r2, 0xC] mov r3, r3, lsl 2 strh r12, [r3, r0] ldr r2, [lr] ldrb r3, [r2, 0xA] add r1, r1, 0x4000002 mov r3, r3, lsl 2 strh r12, [r3, r1] ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 _081E0514: .4byte gRfuState arm_func_end STWI_stop_timer_in_RAM arm_func_start STWI_init_slave STWI_init_slave: @ 81E0518 mov r12, sp stmdb sp!, {r11,r12,lr,pc} ldr r0, _081E05A0 @ =gRfuState ldr r2, [r0] mov r3, 0x5 str r3, [r2] mov r1, 0 strb r1, [r2, 0x14] ldr r3, [r0] strb r1, [r3, 0x4] ldr r2, [r0] strb r1, [r2, 0x5] ldr r3, [r0] strb r1, [r3, 0x6] ldr r2, [r0] strb r1, [r2, 0x7] ldr r3, [r0] strb r1, [r3, 0x8] ldr r2, [r0] strb r1, [r2, 0x9] ldr r3, [r0] str r1, [r3, 0xC] sub r11, r12, 0x4 strb r1, [r3, 0x10] mov r2, 0x128 ldr r12, [r0] add r2, r2, 0x4000000 strh r1, [r12, 0x12] mov r3, 0x5000 strb r1, [r12, 0x15] add r3, r3, 0x82 strh r3, [r2] ldmdb r11, {r11,sp,lr} bx lr .align 2, 0 _081E05A0: .4byte gRfuState arm_func_end STWI_init_slave arm_func_start sub_81E05A4 sub_81E05A4: @ 81E05A4 bx r2 arm_func_end sub_81E05A4 arm_func_start sub_81E05A8 sub_81E05A8: @ 81E05A8 bx r1 arm_func_end sub_81E05A8 arm_func_start sub_81E05AC sub_81E05AC: @ 81E05AC bx r0 arm_func_end sub_81E05AC thumb_func_start sub_81E05B0 sub_81E05B0: @ 81E05B0 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 _081E05D0 cmp r7, 0 bne _081E05D8 _081E05D0: movs r0, 0x3 ands r0, r4 cmp r0, 0 beq _081E05DC _081E05D8: movs r0, 0x2 b _081E06C6 _081E05DC: cmp r7, 0 beq _081E05E8 ldr r3, _081E05E4 @ =0x00000e64 b _081E05EA .align 2, 0 _081E05E4: .4byte 0x00000e64 _081E05E8: ldr r3, _081E05F4 @ =0x00000504 _081E05EA: cmp r2, r3 bcs _081E05F8 movs r0, 0x1 b _081E06C6 .align 2, 0 _081E05F4: .4byte 0x00000504 _081E05F8: ldr r0, _081E06CC @ =gUnknown_3007460 str r4, [r0] ldr r1, _081E06D0 @ =gUnknown_3007464 adds r0, r4, 0 adds r0, 0xB4 str r0, [r1] ldr r1, _081E06D4 @ =gUnknown_3007468 adds r0, 0x28 str r0, [r1] ldr r2, _081E06D8 @ =gUnknown_3007450 movs r1, 0xDE lsls r1, 1 adds r0, r4, r1 str r0, [r2] ldr r1, _081E06DC @ =gUnknown_3007440 movs r3, 0xDF lsls r3, 2 adds r0, r4, r3 str r0, [r1] movs r5, 0x1 adds r6, r2, 0 adds r4, r1, 0 _081E0624: 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 _081E0624 ldr r0, _081E06D4 @ =gUnknown_3007468 ldr r1, [r0] adds r1, 0xDC ldr r4, _081E06DC @ =gUnknown_3007440 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, _081E06D8 @ =gUnknown_3007450 movs r2, 0 _081E0668: 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 _081E0668 ldr r1, _081E06E0 @ =0x081E1B25 movs r5, 0x2 negs r5, r5 ands r5, r1 ldr r2, _081E06D4 @ =gUnknown_3007468 ldr r0, [r2] adds r4, r0, 0 adds r4, 0x8 ldr r0, _081E06E4 @ =0x081E1B55 subs r0, r1 lsls r0, 15 lsrs r3, r0, 16 subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 ldr r0, _081E06E8 @ =0x0000ffff cmp r3, r0 beq _081E06BC adds r6, r0, 0 _081E06AA: ldrh r0, [r5] strh r0, [r4] adds r5, 0x2 adds r4, 0x2 subs r0, r3, 0x1 lsls r0, 16 lsrs r3, r0, 16 cmp r3, r6 bne _081E06AA _081E06BC: ldr r1, [r2] adds r0, r1, 0 adds r0, 0x9 str r0, [r1, 0x4] movs r0, 0 _081E06C6: pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081E06CC: .4byte gUnknown_3007460 _081E06D0: .4byte gUnknown_3007464 _081E06D4: .4byte gUnknown_3007468 _081E06D8: .4byte gUnknown_3007450 _081E06DC: .4byte gUnknown_3007440 _081E06E0: .4byte 0x081E1B25 _081E06E4: .4byte 0x081E1B55 _081E06E8: .4byte 0x0000ffff thumb_func_end sub_81E05B0 thumb_func_start rfu_STC_clearAPIVariables rfu_STC_clearAPIVariables: @ 81E06EC push {r4-r7,lr} sub sp, 0x4 ldr r1, _081E0760 @ =0x04000208 ldrh r0, [r1] adds r7, r0, 0 movs r6, 0 strh r6, [r1] ldr r5, _081E0764 @ =gUnknown_3007464 ldr r1, [r5] ldrb r4, [r1] mov r0, sp strh r6, [r0] ldr r2, _081E0768 @ =0x01000014 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, _081E076C @ =gUnknown_3007460 ldr r1, [r4] ldr r2, _081E0770 @ =0x0100005a 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 _081E0740: 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 _081E0740 ldr r0, _081E0760 @ =0x04000208 strh r7, [r0] add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E0760: .4byte 0x04000208 _081E0764: .4byte gUnknown_3007464 _081E0768: .4byte 0x01000014 _081E076C: .4byte gUnknown_3007460 _081E0770: .4byte 0x0100005a thumb_func_end rfu_STC_clearAPIVariables thumb_func_start rfu_REQ_PARENT_resumeRetransmitAndChange rfu_REQ_PARENT_resumeRetransmitAndChange: @ 81E0774 push {lr} ldr r0, _081E0784 @ =rfu_STC_REQ_callback bl STWI_set_Callback_M bl STWI_send_ResumeRetransmitAndChangeREQ pop {r0} bx r0 .align 2, 0 _081E0784: .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: @ 81E0788 push {r4,r5,lr} adds r4, r0, 0 movs r0, 0 strb r0, [r4] ldr r5, _081E07A0 @ =gUnknown_3007460 ldr r0, [r5] ldrb r0, [r0] cmp r0, 0x1 beq _081E07A4 movs r0, 0xC0 lsls r0, 2 b _081E07CA .align 2, 0 _081E07A0: .4byte gUnknown_3007460 _081E07A4: bl rfu_getSTWIRecvBuffer adds r1, r0, 0 ldrb r0, [r1] cmp r0, 0x28 beq _081E07B4 cmp r0, 0x36 bne _081E07C8 _081E07B4: ldrb r0, [r1, 0x1] cmp r0, 0 bne _081E07C0 ldr r0, [r5] ldrb r0, [r0, 0x2] b _081E07C2 _081E07C0: ldrb r0, [r1, 0x4] _081E07C2: strb r0, [r4] movs r0, 0 b _081E07CA _081E07C8: movs r0, 0x10 _081E07CA: pop {r4,r5} pop {r1} bx r1 thumb_func_end rfu_UNI_PARENT_getDRAC_ACK thumb_func_start rfu_setTimerInterrupt rfu_setTimerInterrupt: @ 81E07D0 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: @ 81E07E4 ldr r0, _081E07F0 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] bx lr .align 2, 0 _081E07F0: .4byte gUnknown_3007468 thumb_func_end rfu_getSTWIRecvBuffer thumb_func_start rfu_setMSCCallback rfu_setMSCCallback: @ 81E07F4 push {lr} bl STWI_set_Callback_S pop {r0} bx r0 thumb_func_end rfu_setMSCCallback thumb_func_start rfu_setREQCallback rfu_setREQCallback: @ 81E0800 push {lr} adds r1, r0, 0 ldr r0, _081E0818 @ =gUnknown_3007468 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 _081E0818: .4byte gUnknown_3007468 thumb_func_end rfu_setREQCallback thumb_func_start rfu_enableREQCallback rfu_enableREQCallback: @ 81E081C push {lr} lsls r0, 24 cmp r0, 0 beq _081E0834 ldr r0, _081E0830 @ =gUnknown_3007464 ldr r2, [r0] ldrb r1, [r2] movs r0, 0x8 orrs r0, r1 b _081E083E .align 2, 0 _081E0830: .4byte gUnknown_3007464 _081E0834: ldr r0, _081E0844 @ =gUnknown_3007464 ldr r2, [r0] ldrb r1, [r2] movs r0, 0xF7 ands r0, r1 _081E083E: strb r0, [r2] pop {r0} bx r0 .align 2, 0 _081E0844: .4byte gUnknown_3007464 thumb_func_end rfu_enableREQCallback thumb_func_start rfu_STC_REQ_callback rfu_STC_REQ_callback: @ 81E0848 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 lsls r1, 16 lsrs r4, r1, 16 ldr r0, _081E087C @ =rfu_CB_defaultCallback bl STWI_set_Callback_M ldr r0, _081E0880 @ =gUnknown_3007464 ldr r0, [r0] strh r4, [r0, 0x1C] ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081E0876 ldr r0, _081E0884 @ =gUnknown_3007468 ldr r0, [r0] ldr r2, [r0] adds r0, r5, 0 adds r1, r4, 0 bl _call_via_r2 _081E0876: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081E087C: .4byte rfu_CB_defaultCallback _081E0880: .4byte gUnknown_3007464 _081E0884: .4byte gUnknown_3007468 thumb_func_end rfu_STC_REQ_callback thumb_func_start rfu_CB_defaultCallback rfu_CB_defaultCallback: @ 81E0888 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r3, r1, 16 cmp r0, 0xFF bne _081E08E4 ldr r0, _081E08EC @ =gUnknown_3007464 ldr r0, [r0] ldrb r1, [r0] movs r0, 0x8 ands r0, r1 cmp r0, 0 beq _081E08B2 ldr r0, _081E08F0 @ =gUnknown_3007468 ldr r0, [r0] ldr r2, [r0] movs r0, 0xFF adds r1, r3, 0 bl _call_via_r2 _081E08B2: ldr r0, _081E08F4 @ =gUnknown_3007460 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] adds r5, r0, 0 orrs r5, r1 movs r4, 0 _081E08C0: adds r0, r5, 0 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081E08D2 adds r0, r4, 0 bl rfu_STC_removeLinkData _081E08D2: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081E08C0 ldr r0, _081E08F4 @ =gUnknown_3007460 ldr r1, [r0] movs r0, 0xFF strb r0, [r1] _081E08E4: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081E08EC: .4byte gUnknown_3007464 _081E08F0: .4byte gUnknown_3007468 _081E08F4: .4byte gUnknown_3007460 thumb_func_end rfu_CB_defaultCallback thumb_func_start rfu_waitREQComplete rfu_waitREQComplete: @ 81E08F8 push {lr} bl STWI_poll_CommandEnd ldr r0, _081E0908 @ =gUnknown_3007464 ldr r0, [r0] ldrh r0, [r0, 0x1C] pop {r1} bx r1 .align 2, 0 _081E0908: .4byte gUnknown_3007464 thumb_func_end rfu_waitREQComplete thumb_func_start rfu_REQ_RFUStatus rfu_REQ_RFUStatus: @ 81E090C push {lr} ldr r0, _081E091C @ =rfu_STC_REQ_callback bl STWI_set_Callback_M bl STWI_send_SystemStatusREQ pop {r0} bx r0 .align 2, 0 _081E091C: .4byte rfu_STC_REQ_callback thumb_func_end rfu_REQ_RFUStatus thumb_func_start rfu_getRFUStatus rfu_getRFUStatus: @ 81E0920 push {r4,r5,lr} adds r4, r0, 0 ldr r5, _081E0938 @ =gUnknown_3007468 ldr r0, [r5] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x93 beq _081E093C movs r0, 0x10 b _081E0956 .align 2, 0 _081E0938: .4byte gUnknown_3007468 _081E093C: bl STWI_poll_CommandEnd lsls r0, 16 cmp r0, 0 bne _081E0950 ldr r0, [r5] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x7] b _081E0952 _081E0950: movs r0, 0xFF _081E0952: strb r0, [r4] movs r0, 0 _081E0956: pop {r4,r5} pop {r1} bx r1 thumb_func_end rfu_getRFUStatus thumb_func_start sub_81E095C sub_81E095C: @ 81E095C push {lr} ldr r2, _081E0964 @ =_Str_RFU_MBOOT ldr r3, _081E0968 @ =0x30000F0 b _081E0976 .align 2, 0 _081E0964: .4byte _Str_RFU_MBOOT _081E0968: .4byte 0x30000F0 _081E096C: ldrb r0, [r3] adds r3, 0x1 adds r2, 0x1 cmp r1, r0 bne _081E09CC _081E0976: ldrb r1, [r2] cmp r1, 0 bne _081E096C movs r2, 0xC0 lsls r2, 18 movs r3, 0 movs r1, 0 _081E0984: 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 _081E0984 ldr r0, _081E09C0 @ =0x30000FA ldrh r0, [r0] cmp r3, r0 bne _081E09CC movs r0, 0xC0 lsls r0, 18 ldr r1, _081E09C4 @ =gUnknown_3007460 ldr r1, [r1] movs r2, 0x5A bl CpuSet ldr r0, _081E09C8 @ =gUnknown_3007464 ldr r2, [r0] ldrb r1, [r2] movs r0, 0x80 orrs r0, r1 strb r0, [r2] movs r0, 0 b _081E09CE .align 2, 0 _081E09C0: .4byte 0x30000FA _081E09C4: .4byte gUnknown_3007460 _081E09C8: .4byte gUnknown_3007464 _081E09CC: movs r0, 0x1 _081E09CE: pop {r1} bx r1 thumb_func_end sub_81E095C thumb_func_start rfu_REQ_stopMode rfu_REQ_stopMode: @ 81E09D4 push {lr} ldr r0, _081E09F4 @ =0x04000208 ldrh r0, [r0] cmp r0, 0 bne _081E09FC movs r0, 0x3D movs r1, 0x6 bl rfu_STC_REQ_callback ldr r0, _081E09F8 @ =gRfuState ldr r1, [r0] ldrh r0, [r1, 0x12] movs r0, 0x6 strh r0, [r1, 0x12] b _081E0A72 .align 2, 0 _081E09F4: .4byte 0x04000208 _081E09F8: .4byte gRfuState _081E09FC: bl AgbRFU_SoftReset bl rfu_STC_clearAPIVariables movs r0, 0x8 bl sub_81E349C ldr r1, _081E0A4C @ =0x00008001 cmp r0, r1 bne _081E0A60 ldr r0, _081E0A50 @ =gRfuState ldr r0, [r0] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r2, _081E0A54 @ =0x04000100 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, _081E0A58 @ =0x0105ffff ldr r3, _081E0A5C @ =rfu_CB_stopMode cmp r0, r2 bhi _081E0A3A _081E0A32: ldr r0, [r1] lsls r0, 16 cmp r0, r2 bls _081E0A32 _081E0A3A: movs r0, 0 str r0, [r1] adds r0, r3, 0 bl STWI_set_Callback_M bl STWI_send_StopModeREQ b _081E0A72 .align 2, 0 _081E0A4C: .4byte 0x00008001 _081E0A50: .4byte gRfuState _081E0A54: .4byte 0x04000100 _081E0A58: .4byte 0x0105ffff _081E0A5C: .4byte rfu_CB_stopMode _081E0A60: ldr r1, _081E0A78 @ =0x04000128 movs r2, 0x80 lsls r2, 6 adds r0, r2, 0 strh r0, [r1] movs r0, 0x3D movs r1, 0 bl rfu_STC_REQ_callback _081E0A72: pop {r0} bx r0 .align 2, 0 _081E0A78: .4byte 0x04000128 thumb_func_end rfu_REQ_stopMode thumb_func_start rfu_CB_stopMode rfu_CB_stopMode: @ 81E0A7C push {r4,lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r1, 16 adds r2, r1, 0 cmp r2, 0 bne _081E0A96 ldr r1, _081E0AA4 @ =0x04000128 movs r4, 0x80 lsls r4, 6 adds r0, r4, 0 strh r0, [r1] _081E0A96: adds r0, r3, 0 adds r1, r2, 0 bl rfu_STC_REQ_callback pop {r4} pop {r0} bx r0 .align 2, 0 _081E0AA4: .4byte 0x04000128 thumb_func_end rfu_CB_stopMode thumb_func_start rfu_REQBN_softReset_and_checkID rfu_REQBN_softReset_and_checkID: @ 81E0AA8 push {lr} ldr r0, _081E0AB8 @ =0x04000208 ldrh r0, [r0] cmp r0, 0 bne _081E0ABC movs r0, 0x1 negs r0, r0 b _081E0ADC .align 2, 0 _081E0AB8: .4byte 0x04000208 _081E0ABC: bl AgbRFU_SoftReset bl rfu_STC_clearAPIVariables movs r0, 0x1E bl sub_81E349C adds r2, r0, 0 cmp r2, 0 bne _081E0ADA ldr r1, _081E0AE0 @ =0x04000128 movs r3, 0x80 lsls r3, 6 adds r0, r3, 0 strh r0, [r1] _081E0ADA: adds r0, r2, 0 _081E0ADC: pop {r1} bx r1 .align 2, 0 _081E0AE0: .4byte 0x04000128 thumb_func_end rfu_REQBN_softReset_and_checkID thumb_func_start rfu_REQ_reset rfu_REQ_reset: @ 81E0AE4 push {lr} ldr r0, _081E0AF4 @ =rfu_CB_reset bl STWI_set_Callback_M bl STWI_send_ResetREQ pop {r0} bx r0 .align 2, 0 _081E0AF4: .4byte rfu_CB_reset thumb_func_end rfu_REQ_reset thumb_func_start rfu_CB_reset rfu_CB_reset: @ 81E0AF8 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 _081E0B0C bl rfu_STC_clearAPIVariables _081E0B0C: 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: @ 81E0B1C 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, _081E0B54 @ =rfu_STC_REQ_callback 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 _081E0B5C ldr r0, _081E0B58 @ =gUnknown_3007464 ldr r1, [r0] movs r0, 0x1 strh r0, [r1, 0x1A] b _081E0B76 .align 2, 0 _081E0B54: .4byte rfu_STC_REQ_callback _081E0B58: .4byte gUnknown_3007464 _081E0B5C: ldr r5, _081E0B7C @ =0x04000208 ldrh r4, [r5] movs r0, 0 strh r0, [r5] movs r0, 0x96 lsls r0, 2 adds r1, r6, 0 bl Div ldr r1, _081E0B80 @ =gUnknown_3007464 ldr r1, [r1] strh r0, [r1, 0x1A] strh r4, [r5] _081E0B76: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081E0B7C: .4byte 0x04000208 _081E0B80: .4byte gUnknown_3007464 thumb_func_end rfu_REQ_configSystem thumb_func_start rfu_REQ_configGameData rfu_REQ_configGameData: @ 81E0B84 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 _081E0BAA movs r1, 0x80 orrs r2, r1 movs r1, 0 orrs r2, r1 strb r2, [r0, 0x1] _081E0BAA: movs r2, 0x2 ldr r0, _081E0C0C @ =rfu_CB_configGameData mov r12, r0 _081E0BB0: 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 _081E0BB0 movs r3, 0 adds r1, r7, 0 movs r2, 0 _081E0BCA: 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 _081E0BCA mov r1, sp mvns r0, r3 strb r0, [r1, 0xF] cmp r6, 0 beq _081E0BF6 movs r0, 0 strb r0, [r1, 0xE] _081E0BF6: 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 _081E0C0C: .4byte rfu_CB_configGameData thumb_func_end rfu_REQ_configGameData thumb_func_start rfu_CB_configGameData rfu_CB_configGameData: @ 81E0C10 push {r4-r7,lr} lsls r0, 24 lsrs r0, 24 mov r12, r0 lsls r1, 16 lsrs r7, r1, 16 cmp r7, 0 bne _081E0C9A ldr r0, _081E0C54 @ =gRfuState ldr r0, [r0] ldr r1, [r0, 0x24] ldr r0, _081E0C58 @ =gUnknown_3007460 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 _081E0C5C eors r3, r1 strh r3, [r5] adds r1, r6, 0 adds r1, 0x97 movs r0, 0x1 b _081E0C62 .align 2, 0 _081E0C54: .4byte gRfuState _081E0C58: .4byte gUnknown_3007460 _081E0C5C: adds r1, r6, 0 adds r1, 0x97 movs r0, 0 _081E0C62: strb r0, [r1] movs r2, 0 ldr r3, _081E0CA8 @ =gUnknown_3007460 _081E0C68: 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 _081E0C68 adds r4, 0x1 movs r2, 0 ldr r3, _081E0CA8 @ =gUnknown_3007460 _081E0C84: 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 _081E0C84 _081E0C9A: mov r0, r12 adds r1, r7, 0 bl rfu_STC_REQ_callback pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E0CA8: .4byte gUnknown_3007460 thumb_func_end rfu_CB_configGameData thumb_func_start sub_81E0CAC sub_81E0CAC: @ 81E0CAC push {lr} ldr r0, _081E0CDC @ =rfu_CB_defaultCallback bl STWI_set_Callback_M bl STWI_send_SystemStatusREQ bl STWI_poll_CommandEnd lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0 bne _081E0CE4 ldr r0, _081E0CE0 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x7] cmp r0, 0 bne _081E0CEA movs r0, 0x1 bl rfu_STC_clearLinkStatus b _081E0CEA .align 2, 0 _081E0CDC: .4byte rfu_CB_defaultCallback _081E0CE0: .4byte gUnknown_3007468 _081E0CE4: movs r0, 0x19 bl rfu_STC_REQ_callback _081E0CEA: ldr r0, _081E0CF8 @ =rfu_CB_startSearchChild bl STWI_set_Callback_M bl STWI_send_SC_StartREQ pop {r0} bx r0 .align 2, 0 _081E0CF8: .4byte rfu_CB_startSearchChild thumb_func_end sub_81E0CAC thumb_func_start rfu_CB_startSearchChild rfu_CB_startSearchChild: @ 81E0CFC push {lr} lsls r0, 24 lsrs r3, r0, 24 lsls r1, 16 lsrs r1, 16 adds r2, r1, 0 cmp r2, 0 bne _081E0D14 ldr r0, _081E0D20 @ =gUnknown_3007464 ldr r1, [r0] movs r0, 0x1 strb r0, [r1, 0x9] _081E0D14: adds r0, r3, 0 adds r1, r2, 0 bl rfu_STC_REQ_callback pop {r0} bx r0 .align 2, 0 _081E0D20: .4byte gUnknown_3007464 thumb_func_end rfu_CB_startSearchChild thumb_func_start rfu_STC_clearLinkStatus rfu_STC_clearLinkStatus: @ 81E0D24 push {r4,r5,lr} sub sp, 0x4 adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl rfu_clearAllSlot cmp r4, 0 beq _081E0D4C mov r0, sp movs r5, 0 strh r5, [r0] ldr r4, _081E0D80 @ =gUnknown_3007460 ldr r1, [r4] adds r1, 0x14 ldr r2, _081E0D84 @ =0x01000040 bl CpuSet ldr r0, [r4] strb r5, [r0, 0x8] _081E0D4C: movs r1, 0 ldr r2, _081E0D80 @ =gUnknown_3007460 adds r4, r2, 0 movs r3, 0 _081E0D54: 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 _081E0D54 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 _081E0D80: .4byte gUnknown_3007460 _081E0D84: .4byte 0x01000040 thumb_func_end rfu_STC_clearLinkStatus thumb_func_start rfu_REQ_pollSearchChild rfu_REQ_pollSearchChild: @ 81E0D88 push {lr} ldr r0, _081E0D98 @ =rfu_CB_pollAndEndSearchChild bl STWI_set_Callback_M bl STWI_send_SC_PollingREQ pop {r0} bx r0 .align 2, 0 _081E0D98: .4byte rfu_CB_pollAndEndSearchChild thumb_func_end rfu_REQ_pollSearchChild thumb_func_start rfu_REQ_endSearchChild rfu_REQ_endSearchChild: @ 81E0D9C push {lr} ldr r0, _081E0DAC @ =rfu_CB_pollAndEndSearchChild bl STWI_set_Callback_M bl STWI_send_SC_EndREQ pop {r0} bx r0 .align 2, 0 _081E0DAC: .4byte rfu_CB_pollAndEndSearchChild thumb_func_end rfu_REQ_endSearchChild thumb_func_start rfu_CB_pollAndEndSearchChild rfu_CB_pollAndEndSearchChild: @ 81E0DB0 push {r4-r6,lr} lsls r0, 24 lsrs r4, r0, 24 lsls r1, 16 lsrs r6, r1, 16 cmp r6, 0 bne _081E0DC2 bl sub_81E0E38 _081E0DC2: cmp r4, 0x1A bne _081E0E04 ldr r5, _081E0DF8 @ =gUnknown_3007460 ldr r0, [r5] adds r0, 0x94 ldrh r0, [r0] cmp r0, 0 bne _081E0E20 ldr r0, _081E0DFC @ =rfu_CB_defaultCallback bl STWI_set_Callback_M bl STWI_send_SystemStatusREQ bl STWI_poll_CommandEnd lsls r0, 16 cmp r0, 0 bne _081E0E20 ldr r1, [r5] ldr r0, _081E0E00 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrh r0, [r0, 0x4] adds r1, 0x94 strh r0, [r1] b _081E0E20 .align 2, 0 _081E0DF8: .4byte gUnknown_3007460 _081E0DFC: .4byte rfu_CB_defaultCallback _081E0E00: .4byte gUnknown_3007468 _081E0E04: cmp r4, 0x1B bne _081E0E20 ldr r0, _081E0E30 @ =gUnknown_3007460 ldr r1, [r0] ldrb r0, [r1] cmp r0, 0xFF bne _081E0E18 adds r1, 0x94 movs r0, 0 strh r0, [r1] _081E0E18: ldr r0, _081E0E34 @ =gUnknown_3007464 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x9] _081E0E20: adds r0, r4, 0 adds r1, r6, 0 bl rfu_STC_REQ_callback pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081E0E30: .4byte gUnknown_3007460 _081E0E34: .4byte gUnknown_3007464 thumb_func_end rfu_CB_pollAndEndSearchChild thumb_func_start sub_81E0E38 sub_81E0E38: @ 81E0E38 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r1, _081E0F64 @ =gUnknown_3007468 ldr r0, [r1] adds r0, 0xDC ldr r0, [r0] ldrb r2, [r0, 0x1] mov r8, r2 adds r4, r1, 0 cmp r2, 0 beq _081E0E96 ldr r5, [r0, 0x4] ldr r0, _081E0F68 @ =rfu_CB_defaultCallback bl STWI_set_Callback_M bl STWI_send_LinkStatusREQ bl STWI_poll_CommandEnd lsls r0, 16 cmp r0, 0 bne _081E0E8A ldr r0, [r4] adds r0, 0xDC ldr r0, [r0] adds r4, r0, 0x4 movs r2, 0 _081E0E76: mov r0, sp adds r1, r0, r2 ldrb r0, [r4] strb r0, [r1] adds r4, 0x1 adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081E0E76 _081E0E8A: ldr r0, _081E0F64 @ =gUnknown_3007468 ldr r1, [r0] adds r1, 0xDC ldr r1, [r1] str r5, [r1, 0x4] adds r4, r0, 0 _081E0E96: ldr r0, [r4] adds r0, 0xDC ldr r0, [r0] adds r4, r0, 0x4 mov r1, r8 cmp r1, 0 beq _081E0F52 ldr r2, _081E0F6C @ =gUnknown_3007464 mov r9, r2 ldr r7, _081E0F70 @ =gUnknown_3007460 mov r10, r9 _081E0EAC: ldrb r2, [r4, 0x2] adds r5, r2, 0 cmp r2, 0x3 bhi _081E0F42 ldr r1, [r7] ldrb r0, [r1, 0x2] asrs r0, r2 movs r6, 0x1 ands r0, r6 cmp r0, 0 bne _081E0F42 ldrb r3, [r1, 0x3] asrs r3, r2 ands r3, r6 cmp r3, 0 bne _081E0F42 mov r1, sp adds r0, r1, r2 ldrb r0, [r0] mov r12, r10 cmp r0, 0 beq _081E0EE6 mov r0, r9 ldr r1, [r0] adds r1, 0xE adds r1, r2 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] _081E0EE6: mov r1, r9 ldr r0, [r1] adds r0, 0xE adds r1, r0, r5 ldrb r0, [r1] cmp r0, 0x3 bls _081E0F42 strb r3, [r1] ldr r0, [r7] adds r0, 0xA adds r0, r5 movs r1, 0xFF strb r1, [r0] ldr r2, [r7] adds r0, r6, 0 lsls r0, r5 ldrb r1, [r2, 0x2] orrs r0, r1 strb r0, [r2, 0x2] ldr r1, [r7] ldrb r0, [r1, 0x1] adds r0, 0x1 strb r0, [r1, 0x1] ldr r1, [r7] lsls r3, r5, 5 adds r1, r3 ldrh r0, [r4] strh r0, [r1, 0x14] strb r5, [r1, 0x16] ldr r0, [r7] strb r6, [r0] mov r0, r12 ldr r2, [r0] ldrb r1, [r2] movs r0, 0x7F ands r0, r1 strb r0, [r2] mov r2, r12 ldr r1, [r2] lsls r0, r5, 1 adds r1, 0x12 adds r1, r0 ldr r0, [r7] adds r0, r3 ldrh r0, [r0, 0x14] strh r0, [r1] _081E0F42: mov r0, r8 subs r0, 0x1 lsls r0, 24 lsrs r0, 24 mov r8, r0 adds r4, 0x4 cmp r0, 0 bne _081E0EAC _081E0F52: 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 _081E0F64: .4byte gUnknown_3007468 _081E0F68: .4byte rfu_CB_defaultCallback _081E0F6C: .4byte gUnknown_3007464 _081E0F70: .4byte gUnknown_3007460 thumb_func_end sub_81E0E38 thumb_func_start rfu_REQ_startSearchParent rfu_REQ_startSearchParent: @ 81E0F74 push {lr} ldr r0, _081E0F84 @ =rfu_CB_startSearchParent bl STWI_set_Callback_M bl STWI_send_SP_StartREQ pop {r0} bx r0 .align 2, 0 _081E0F84: .4byte rfu_CB_startSearchParent thumb_func_end rfu_REQ_startSearchParent thumb_func_start rfu_CB_startSearchParent rfu_CB_startSearchParent: @ 81E0F88 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 _081E0F9E movs r0, 0 bl rfu_STC_clearLinkStatus _081E0F9E: 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: @ 81E0FAC push {lr} ldr r0, _081E0FBC @ =sub_81E0FC0 bl STWI_set_Callback_M bl STWI_send_SP_PollingREQ pop {r0} bx r0 .align 2, 0 _081E0FBC: .4byte sub_81E0FC0 thumb_func_end rfu_REQ_pollSearchParent thumb_func_start sub_81E0FC0 sub_81E0FC0: @ 81E0FC0 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 _081E0FD4 bl rfu_STC_readParentCandidateList _081E0FD4: adds r0, r5, 0 adds r1, r4, 0 bl rfu_STC_REQ_callback pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_81E0FC0 thumb_func_start rfu_REQ_endSearchParent rfu_REQ_endSearchParent: @ 81E0FE4 push {lr} ldr r0, _081E0FF4 @ =rfu_STC_REQ_callback bl STWI_set_Callback_M bl STWI_send_SP_EndREQ pop {r0} bx r0 .align 2, 0 _081E0FF4: .4byte rfu_STC_REQ_callback thumb_func_end rfu_REQ_endSearchParent thumb_func_start rfu_STC_readParentCandidateList rfu_STC_readParentCandidateList: @ 81E0FF8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 mov r0, sp movs r4, 0 strh r4, [r0] ldr r5, _081E10A0 @ =gUnknown_3007460 ldr r1, [r5] adds r1, 0x14 ldr r2, _081E10A4 @ =0x01000040 bl CpuSet ldr r0, _081E10A8 @ =gUnknown_3007468 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 _081E10FC mov r12, r5 ldr r0, _081E10AC @ =0x00007fff mov r8, r0 _081E102E: 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 _081E1048: 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 _081E1048 cmp r4, r5 bne _081E10F0 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 _081E10B0 movs r0, 0x1 strb r0, [r4, 0x3] b _081E10B2 .align 2, 0 _081E10A0: .4byte gUnknown_3007460 _081E10A4: .4byte 0x01000040 _081E10A8: .4byte gUnknown_3007468 _081E10AC: .4byte 0x00007fff _081E10B0: strb r3, [r4, 0x3] _081E10B2: adds r2, 0x2 movs r3, 0 adds r5, r4, 0 adds r5, 0x15 adds r4, 0x6 _081E10BC: 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 _081E10BC adds r2, 0x1 movs r3, 0 adds r4, r5, 0 _081E10D4: 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 _081E10D4 mov r4, r12 ldr r1, [r4] ldrb r0, [r1, 0x8] adds r0, 0x1 strb r0, [r1, 0x8] _081E10F0: lsls r0, r6, 24 lsrs r6, r0, 24 cmp r6, 0x3 bhi _081E10FC cmp r7, 0 bne _081E102E _081E10FC: 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: @ 81E1108 push {r4,r5,lr} lsls r0, 16 lsrs r4, r0, 16 movs r3, 0 movs r2, 0 ldr r1, _081E1154 @ =gUnknown_3007460 ldr r0, [r1] ldrh r0, [r0, 0x14] cmp r0, r4 beq _081E1134 adds r5, r1, 0 _081E111E: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bhi _081E1134 ldr r0, [r5] lsls r1, r2, 5 adds r0, r1 ldrh r0, [r0, 0x14] cmp r0, r4 bne _081E111E _081E1134: cmp r2, 0x4 bne _081E113C movs r3, 0x80 lsls r3, 1 _081E113C: cmp r3, 0 bne _081E1160 ldr r0, _081E1158 @ =gUnknown_3007464 ldr r0, [r0] strh r4, [r0, 0x1E] ldr r0, _081E115C @ =rfu_STC_REQ_callback bl STWI_set_Callback_M adds r0, r4, 0 bl STWI_send_CP_StartREQ b _081E1168 .align 2, 0 _081E1154: .4byte gUnknown_3007460 _081E1158: .4byte gUnknown_3007464 _081E115C: .4byte rfu_STC_REQ_callback _081E1160: movs r0, 0x1F adds r1, r3, 0 bl rfu_STC_REQ_callback _081E1168: pop {r4,r5} pop {r0} bx r0 thumb_func_end rfu_REQ_startConnectParent thumb_func_start rfu_REQ_pollConnectParent rfu_REQ_pollConnectParent: @ 81E1170 push {lr} ldr r0, _081E1180 @ =rfu_CB_pollConnectParent bl STWI_set_Callback_M bl STWI_send_CP_PollingREQ pop {r0} bx r0 .align 2, 0 _081E1180: .4byte rfu_CB_pollConnectParent thumb_func_end rfu_REQ_pollConnectParent thumb_func_start rfu_CB_pollConnectParent rfu_CB_pollConnectParent: @ 81E1184 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 _081E1286 ldr r0, _081E1240 @ =gUnknown_3007468 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 _081E1286 movs r0, 0x80 lsls r0, 17 lsls r0, r1 lsrs r2, r0, 24 ldr r4, _081E1244 @ =gUnknown_3007460 ldr r3, [r4] ldrb r1, [r3, 0x2] adds r0, r2, 0 ands r0, r1 cmp r0, 0 bne _081E1286 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, _081E1248 @ =gUnknown_3007464 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 _081E1202: 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 _081E125A ldrb r0, [r2, 0x8] cmp r0, 0 beq _081E1250 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, _081E124C @ =0x01000040 bl CpuSet ldr r0, [r7] mov r1, r8 strb r1, [r0, 0x8] b _081E1264 .align 2, 0 _081E1240: .4byte gUnknown_3007468 _081E1244: .4byte gUnknown_3007460 _081E1248: .4byte gUnknown_3007464 _081E124C: .4byte 0x01000040 _081E1250: adds r0, r4, 0 adds r0, 0x14 adds r2, r0 mov r9, r2 b _081E1264 _081E125A: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081E1202 _081E1264: cmp r5, 0x3 bhi _081E1286 ldr r4, _081E12A0 @ =gUnknown_3007460 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] _081E1286: 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 _081E12A0: .4byte gUnknown_3007460 thumb_func_end rfu_CB_pollConnectParent thumb_func_start rfu_getConnectParentStatus rfu_getConnectParentStatus: @ 81E12A4 push {lr} adds r3, r0, 0 movs r0, 0xFF strb r0, [r3] ldr r0, _081E12C4 @ =gUnknown_3007468 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 _081E12C8 movs r0, 0x10 b _081E12D4 .align 2, 0 _081E12C4: .4byte gUnknown_3007468 _081E12C8: adds r2, 0x6 ldrb r0, [r2] strb r0, [r1] ldrb r0, [r2, 0x1] strb r0, [r3] movs r0, 0 _081E12D4: pop {r1} bx r1 thumb_func_end rfu_getConnectParentStatus thumb_func_start rfu_REQ_endConnectParent rfu_REQ_endConnectParent: @ 81E12D8 push {lr} ldr r0, _081E1304 @ =rfu_CB_pollConnectParent bl STWI_set_Callback_M bl STWI_send_CP_EndREQ ldr r0, _081E1308 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r1, [r0] ldrb r0, [r1, 0x6] cmp r0, 0x3 bhi _081E1300 ldr r0, _081E130C @ =gUnknown_3007464 ldr r0, [r0] adds r0, 0xA ldrb r1, [r1, 0x6] adds r0, r1 movs r1, 0 strb r1, [r0] _081E1300: pop {r0} bx r0 .align 2, 0 _081E1304: .4byte rfu_CB_pollConnectParent _081E1308: .4byte gUnknown_3007468 _081E130C: .4byte gUnknown_3007464 thumb_func_end rfu_REQ_endConnectParent thumb_func_start rfu_syncVBlank rfu_syncVBlank: @ 81E1310 push {r4,r5,lr} bl rfu_NI_checkCommFailCounter ldr r0, _081E1358 @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0xFF beq _081E13E8 ldr r4, _081E135C @ =gUnknown_3007464 ldr r1, [r4] ldrb r0, [r1, 0x6] cmp r0, 0 beq _081E132E subs r0, 0x1 strb r0, [r1, 0x6] _081E132E: 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 _081E1360 cmp r3, 0 bne _081E136E movs r0, 0x4 orrs r0, r1 strb r0, [r2] ldr r1, [r4] movs r0, 0xB4 lsls r0, 1 strh r0, [r1, 0x20] b _081E136A .align 2, 0 _081E1358: .4byte gUnknown_3007460 _081E135C: .4byte gUnknown_3007464 _081E1360: cmp r3, 0 beq _081E1380 movs r0, 0xFB ands r0, r1 strb r0, [r2] _081E136A: cmp r3, 0 beq _081E1380 _081E136E: ldr r3, _081E137C @ =gUnknown_3007464 ldr r2, [r3] ldrb r1, [r2] movs r0, 0xFD ands r0, r1 b _081E138A .align 2, 0 _081E137C: .4byte gUnknown_3007464 _081E1380: ldr r3, _081E13DC @ =gUnknown_3007464 ldr r2, [r3] ldrb r1, [r2] movs r0, 0x2 orrs r0, r1 _081E138A: strb r0, [r2] ldr r3, [r3] ldrb r1, [r3] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081E13E8 ldrh r0, [r3, 0x20] cmp r0, 0 bne _081E13E4 movs r0, 0xFB ands r0, r1 strb r0, [r3] ldr r0, _081E13E0 @ =gUnknown_3007460 ldr r0, [r0] ldrb r1, [r0, 0x2] ldrb r0, [r0, 0x3] adds r5, r0, 0 orrs r5, r1 movs r4, 0 _081E13B2: adds r0, r5, 0 asrs r0, r4 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081E13C4 adds r0, r4, 0 bl rfu_STC_removeLinkData _081E13C4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081E13B2 ldr r0, _081E13E0 @ =gUnknown_3007460 ldr r1, [r0] movs r0, 0xFF strb r0, [r1] movs r0, 0x1 b _081E13EA .align 2, 0 _081E13DC: .4byte gUnknown_3007464 _081E13E0: .4byte gUnknown_3007460 _081E13E4: subs r0, 0x1 strh r0, [r3, 0x20] _081E13E8: movs r0, 0 _081E13EA: pop {r4,r5} pop {r1} bx r1 thumb_func_end rfu_syncVBlank thumb_func_start sub_81E13F0 sub_81E13F0: @ 81E13F0 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 r5, 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 r4, _081E1490 @ =gUnknown_3007460 ldr r0, [r4] ldrb r0, [r0] cmp r0, 0xFF bne _081E142E b _081E178E _081E142E: ldr r0, _081E1494 @ =gRfuState ldr r0, [r0] ldrb r0, [r0, 0x14] cmp r0, 0 bne _081E143A b _081E178E _081E143A: ldr r3, _081E1498 @ =gUnknown_3007464 ldr r2, [r3] ldrb r1, [r2] movs r0, 0x4 ands r0, r1 cmp r0, 0 beq _081E144E movs r0, 0xB4 lsls r0, 1 strh r0, [r2, 0x20] _081E144E: ldr r1, [r3] ldrb r0, [r1, 0x6] cmp r0, 0 bne _081E1460 ldr r0, [r4] ldrb r0, [r0, 0x9] strb r0, [r1, 0x6] movs r1, 0x1 str r1, [sp, 0x8] _081E1460: lsls r0, r5, 24 lsrs r0, 24 cmp r0, 0x29 bne _081E14A0 ldr r0, _081E149C @ =gUnknown_3007468 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 _081E148A ldr r0, [r4] ldrb r0, [r0, 0x2] strb r0, [r2] _081E148A: movs r2, 0x2 str r2, [sp, 0x8] b _081E14F8 .align 2, 0 _081E1490: .4byte gUnknown_3007460 _081E1494: .4byte gRfuState _081E1498: .4byte gUnknown_3007464 _081E149C: .4byte gUnknown_3007468 _081E14A0: movs r0, 0x9B lsls r0, 1 cmp r5, r0 bne _081E14F0 ldr r0, _081E154C @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r6, [r0, 0x5] ldr r0, [r4] 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 _081E14C6: mov r2, r8 ldrb r0, [r2] asrs r0, r5 movs r1, 0x1 ands r0, r1 cmp r0, 0 beq _081E14E6 ldr r0, _081E1550 @ =gUnknown_3007460 ldr r0, [r0] adds r0, 0xA adds r0, r5 movs r1, 0 strb r1, [r0] adds r0, r5, 0 bl rfu_STC_removeLinkData _081E14E6: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081E14C6 _081E14F0: ldr r0, [sp, 0x8] cmp r0, 0 bne _081E14F8 b _081E178E _081E14F8: ldr r4, _081E154C @ =gUnknown_3007468 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, _081E1554 @ =rfu_CB_defaultCallback 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 _081E1558 ldr r0, [r4] adds r0, 0xDC ldr r0, [r0] adds r2, r0, 0x4 movs r5, 0 ldr r3, _081E1550 @ =gUnknown_3007460 _081E152C: 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 _081E152C movs r2, 0 mov r9, r2 movs r5, 0 b _081E1564 .align 2, 0 _081E154C: .4byte gUnknown_3007468 _081E1550: .4byte gUnknown_3007460 _081E1554: .4byte rfu_CB_defaultCallback _081E1558: movs r0, 0x11 ldr r1, [sp, 0xC] bl rfu_STC_REQ_callback ldr r0, [sp, 0xC] b _081E1790 _081E1564: 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 _081E1578 b _081E1742 _081E1578: ldr r2, [sp, 0x8] cmp r2, 0x1 bne _081E164E ldr r4, _081E15B8 @ =gUnknown_3007460 ldr r1, [r4] ldrb r0, [r1, 0x2] ands r0, r6 cmp r0, 0 beq _081E164E adds r0, r1, 0 adds r0, 0xA adds r0, r5 ldrb r0, [r0] cmp r0, 0 bne _081E1640 ldrb r0, [r1] cmp r0, 0x1 bne _081E15C0 ldr r2, _081E15BC @ =gUnknown_3007464 ldr r1, [r2] adds r1, 0xA adds r1, r5 ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] ldr r0, [r2] adds r0, 0xA adds r0, r5 ldrb r0, [r0] cmp r0, 0x3 bls _081E164E b _081E1626 .align 2, 0 _081E15B8: .4byte gUnknown_3007460 _081E15BC: .4byte gUnknown_3007464 _081E15C0: bl STWI_send_SystemStatusREQ bl STWI_poll_CommandEnd lsls r0, 16 cmp r0, 0 bne _081E164E ldr r0, _081E15F0 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x7] cmp r0, 0 bne _081E15F4 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 _081E164C .align 2, 0 _081E15F0: .4byte gUnknown_3007468 _081E15F4: ldr r2, _081E163C @ =gUnknown_3007464 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 _081E164E 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 _081E1626: 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 _081E164E .align 2, 0 _081E163C: .4byte gUnknown_3007464 _081E1640: ldr r0, _081E16B0 @ =gUnknown_3007464 ldr r0, [r0] adds r0, 0xA adds r0, r5 mov r1, sp ldrb r1, [r1, 0xC] _081E164C: strb r1, [r0] _081E164E: ldr r2, _081E16B4 @ =gUnknown_3007460 mov r12, r2 ldr r1, [r2] ldrb r7, [r1] adds r0, r5, 0x1 mov r10, r0 cmp r7, 0x1 bne _081E1742 adds r0, r1, 0 adds r0, 0xA adds r4, r0, r5 ldrb r3, [r4] cmp r3, 0 beq _081E1742 ldrb r2, [r1, 0x3] adds r0, r6, 0 ands r0, r2 cmp r0, 0 beq _081E16BE cmp r3, 0xA bls _081E16B8 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, _081E16B0 @ =gUnknown_3007464 ldr r0, [r0] adds r0, 0xA adds r0, r5 strb r3, [r0] b _081E1742 .align 2, 0 _081E16B0: .4byte gUnknown_3007464 _081E16B4: .4byte gUnknown_3007460 _081E16B8: movs r0, 0 strb r0, [r4] b _081E1742 _081E16BE: ldrb r0, [r1, 0x2] orrs r0, r2 ands r0, r6 cmp r0, 0 bne _081E1742 bl STWI_send_SlotStatusREQ bl STWI_poll_CommandEnd ldr r0, _081E1708 @ =gUnknown_3007468 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 _081E1742 ldrh r4, [r2] ldrb r0, [r2, 0x2] cmp r0, r5 bne _081E1710 ldr r0, _081E170C @ =gUnknown_3007464 ldr r0, [r0] lsls r1, r5, 1 adds r0, 0x12 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _081E1710 lsls r7, r5 mov r0, r9 orrs r0, r7 lsls r0, 24 b _081E173E .align 2, 0 _081E1708: .4byte gUnknown_3007468 _081E170C: .4byte gUnknown_3007464 _081E1710: adds r2, 0x4 subs r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0 beq _081E1742 ldrh r4, [r2] ldrb r0, [r2, 0x2] cmp r0, r5 bne _081E1710 ldr r0, _081E17A0 @ =gUnknown_3007464 ldr r0, [r0] lsls r1, r5, 1 adds r0, 0x12 adds r0, r1 ldrh r0, [r0] cmp r4, r0 bne _081E1710 movs r0, 0x1 lsls r0, r5 mov r1, r9 orrs r1, r0 lsls r0, r1, 24 _081E173E: lsrs r0, 24 mov r9, r0 _081E1742: ldr r0, _081E17A4 @ =gUnknown_3007460 ldr r0, [r0] ldrb r1, [r0, 0x2] mov r2, r8 ldrb r0, [r2] ands r0, r1 ands r6, r0 cmp r6, 0 beq _081E175C adds r0, r5, 0 movs r1, 0 bl rfu_STC_removeLinkData _081E175C: mov r1, r10 lsls r0, r1, 24 lsrs r5, r0, 24 cmp r5, 0x3 bhi _081E1768 b _081E1564 _081E1768: mov r2, r9 cmp r2, 0 beq _081E1778 mov r0, r9 bl STWI_send_DisconnectREQ bl STWI_poll_CommandEnd _081E1778: ldr r1, _081E17A8 @ =gUnknown_3007468 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] _081E178E: movs r0, 0 _081E1790: 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 _081E17A0: .4byte gUnknown_3007464 _081E17A4: .4byte gUnknown_3007460 _081E17A8: .4byte gUnknown_3007468 thumb_func_end sub_81E13F0 thumb_func_start rfu_STC_removeLinkData rfu_STC_removeLinkData: @ 81E17AC 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 r5, r0, 24 ldr r1, _081E1850 @ =gUnknown_3007460 ldr r4, [r1] ldrb r0, [r4, 0x2] ands r0, r5 mov r8, r1 cmp r0, 0 beq _081E17DE ldrb r0, [r4, 0x1] cmp r0, 0 beq _081E17DE subs r0, 0x1 strb r0, [r4, 0x1] _081E17DE: mov r3, r8 ldr r2, [r3] mvns r6, r5 ldrb r1, [r2, 0x2] adds r0, r6, 0 ands r0, r1 strb r0, [r2, 0x2] ldr r2, [r3] ldrb r1, [r2, 0x3] adds r0, r5, 0 orrs r0, r1 strb r0, [r2, 0x3] ldr r3, [r3] ldr r0, [r3] ldr r1, _081E1854 @ =0x00ff00ff ands r0, r1 cmp r0, 0 bne _081E1806 movs r0, 0xFF strb r0, [r3] _081E1806: mov r0, r12 cmp r0, 0 beq _081E1844 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, _081E1858 @ =0x01000010 mov r0, sp bl CpuSet mov r0, r8 ldr r2, [r0] ldrb r1, [r2, 0x3] adds r0, r6, 0 ands r0, r1 strb r0, [r2, 0x3] mov r2, r8 ldr r1, [r2] ldrb r0, [r1, 0x7] ands r6, r0 strb r6, [r1, 0x7] ldr r0, [r2] adds r0, 0xA adds r0, r7 strb r4, [r0] _081E1844: add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E1850: .4byte gUnknown_3007460 _081E1854: .4byte 0x00ff00ff _081E1858: .4byte 0x01000010 thumb_func_end rfu_STC_removeLinkData thumb_func_start rfu_REQ_disconnect rfu_REQ_disconnect: @ 81E185C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r2, _081E18A0 @ =gUnknown_3007460 ldr r1, [r2] ldrb r0, [r1, 0x2] ldrb r1, [r1, 0x3] orrs r0, r1 ands r0, r4 cmp r0, 0 beq _081E18E0 ldr r0, _081E18A4 @ =gUnknown_3007464 ldr r1, [r0] strb r4, [r1, 0x5] ldr r2, [r2] ldrb r1, [r2] adds r3, r0, 0 cmp r1, 0xFF bne _081E18A8 ldr r0, [r3] ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 beq _081E18A8 ldrb r0, [r2, 0x3] ands r0, r4 cmp r0, 0 beq _081E18E0 movs r0, 0x30 movs r1, 0 bl rfu_CB_disconnect b _081E18E0 .align 2, 0 _081E18A0: .4byte gUnknown_3007460 _081E18A4: .4byte gUnknown_3007464 _081E18A8: ldr r0, [r3] ldrb r0, [r0, 0x9] cmp r0, 0 beq _081E18D4 ldr r0, _081E18D0 @ =rfu_CB_defaultCallback 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 _081E18D4 movs r0, 0x1B bl rfu_STC_REQ_callback b _081E18E0 .align 2, 0 _081E18D0: .4byte rfu_CB_defaultCallback _081E18D4: ldr r0, _081E18E8 @ =rfu_CB_disconnect bl STWI_set_Callback_M adds r0, r4, 0 bl STWI_send_DisconnectREQ _081E18E0: pop {r4} pop {r0} bx r0 .align 2, 0 _081E18E8: .4byte rfu_CB_disconnect thumb_func_end rfu_REQ_disconnect thumb_func_start rfu_CB_disconnect rfu_CB_disconnect: @ 81E18EC push {r4-r6,lr} lsls r0, 24 lsrs r6, r0, 24 lsls r1, 16 lsrs r5, r1, 16 cmp r5, 0x3 bne _081E1928 ldr r0, _081E19BC @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0 bne _081E1928 ldr r0, _081E19C0 @ =rfu_CB_defaultCallback bl STWI_set_Callback_M bl STWI_send_SystemStatusREQ bl STWI_poll_CommandEnd lsls r0, 16 cmp r0, 0 bne _081E1928 ldr r0, _081E19C4 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x7] cmp r0, 0 bne _081E1928 movs r5, 0 _081E1928: ldr r3, _081E19C8 @ =gUnknown_3007464 ldr r2, [r3] ldr r0, _081E19BC @ =gUnknown_3007460 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, _081E19C4 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r1, [r0] ldr r0, [r3] ldrb r0, [r0, 0x5] strb r0, [r1, 0x8] cmp r5, 0 bne _081E1976 movs r4, 0 _081E1950: movs r0, 0x80 lsls r0, 17 lsls r0, r4 lsrs r0, 24 ldr r1, _081E19C8 @ =gUnknown_3007464 ldr r1, [r1] ldrb r1, [r1, 0x5] ands r0, r1 cmp r0, 0 beq _081E196C adds r0, r4, 0 movs r1, 0x1 bl rfu_STC_removeLinkData _081E196C: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081E1950 _081E1976: ldr r0, _081E19BC @ =gUnknown_3007460 ldr r2, [r0] ldrb r1, [r2, 0x2] ldrb r0, [r2, 0x3] orrs r0, r1 cmp r0, 0 bne _081E1988 movs r0, 0xFF strb r0, [r2] _081E1988: adds r0, r6, 0 adds r1, r5, 0 bl rfu_STC_REQ_callback ldr r0, _081E19C8 @ =gUnknown_3007464 ldr r0, [r0] ldrb r0, [r0, 0x9] cmp r0, 0 beq _081E19B6 ldr r0, _081E19C0 @ =rfu_CB_defaultCallback bl STWI_set_Callback_M bl STWI_send_SC_StartREQ bl STWI_poll_CommandEnd adds r5, r0, 0 cmp r5, 0 beq _081E19B6 movs r0, 0x19 adds r1, r5, 0 bl rfu_STC_REQ_callback _081E19B6: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081E19BC: .4byte gUnknown_3007460 _081E19C0: .4byte rfu_CB_defaultCallback _081E19C4: .4byte gUnknown_3007468 _081E19C8: .4byte gUnknown_3007464 thumb_func_end rfu_CB_disconnect thumb_func_start rfu_REQ_CHILD_startConnectRecovery rfu_REQ_CHILD_startConnectRecovery: @ 81E19CC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081E1A1C @ =gUnknown_3007464 ldr r0, [r0] strb r5, [r0, 0x5] movs r4, 0 movs r0, 0x1 ands r0, r5 ldr r2, _081E1A20 @ =rfu_STC_REQ_callback cmp r0, 0 bne _081E19FA movs r1, 0x1 _081E19E6: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bhi _081E19FA adds r0, r5, 0 asrs r0, r4 ands r0, r1 cmp r0, 0 beq _081E19E6 _081E19FA: adds r0, r2, 0 bl STWI_set_Callback_M ldr r0, _081E1A24 @ =gUnknown_3007460 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 _081E1A1C: .4byte gUnknown_3007464 _081E1A20: .4byte rfu_STC_REQ_callback _081E1A24: .4byte gUnknown_3007460 thumb_func_end rfu_REQ_CHILD_startConnectRecovery thumb_func_start rfu_REQ_CHILD_pollConnectRecovery rfu_REQ_CHILD_pollConnectRecovery: @ 81E1A28 push {lr} ldr r0, _081E1A38 @ =rfu_CB_CHILD_pollConnectRecovery bl STWI_set_Callback_M bl STWI_send_CPR_PollingREQ pop {r0} bx r0 .align 2, 0 _081E1A38: .4byte rfu_CB_CHILD_pollConnectRecovery thumb_func_end rfu_REQ_CHILD_pollConnectRecovery thumb_func_start rfu_CB_CHILD_pollConnectRecovery rfu_CB_CHILD_pollConnectRecovery: @ 81E1A3C 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 _081E1AC0 ldr r0, _081E1AD4 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x4] cmp r0, 0 bne _081E1AC0 ldr r0, _081E1AD8 @ =gUnknown_3007464 ldr r1, [r0] ldrb r1, [r1, 0x5] adds r6, r0, 0 cmp r1, 0 beq _081E1AC0 ldr r1, _081E1ADC @ =gUnknown_3007460 ldr r0, [r1] strb r7, [r0] movs r4, 0 adds r5, r1, 0 mov r12, r4 _081E1A76: 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 _081E1AB0 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] _081E1AB0: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081E1A76 ldr r1, [r6] movs r0, 0 strb r0, [r1, 0x5] _081E1AC0: 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 _081E1AD4: .4byte gUnknown_3007468 _081E1AD8: .4byte gUnknown_3007464 _081E1ADC: .4byte gUnknown_3007460 thumb_func_end rfu_CB_CHILD_pollConnectRecovery thumb_func_start rfu_CHILD_getConnectRecoveryStatus rfu_CHILD_getConnectRecoveryStatus: @ 81E1AE0 push {lr} adds r2, r0, 0 movs r0, 0xFF strb r0, [r2] ldr r0, _081E1B00 @ =gUnknown_3007468 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 _081E1B04 movs r0, 0x10 b _081E1B0A .align 2, 0 _081E1B00: .4byte gUnknown_3007468 _081E1B04: ldrb r0, [r1, 0x4] strb r0, [r2] movs r0, 0 _081E1B0A: pop {r1} bx r1 thumb_func_end rfu_CHILD_getConnectRecoveryStatus thumb_func_start rfu_REQ_CHILD_endConnectRecovery rfu_REQ_CHILD_endConnectRecovery: @ 81E1B10 push {lr} ldr r0, _081E1B20 @ =rfu_CB_CHILD_pollConnectRecovery bl STWI_set_Callback_M bl STWI_send_CPR_EndREQ pop {r0} bx r0 .align 2, 0 _081E1B20: .4byte rfu_CB_CHILD_pollConnectRecovery thumb_func_end rfu_REQ_CHILD_endConnectRecovery thumb_func_start sub_81E1B24 sub_81E1B24: @ 81E1B24 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 _081E1B48 adds r4, r0, 0 _081E1B3A: ldrb r0, [r3] strb r0, [r1] adds r3, 0x1 adds r1, 0x1 subs r2, 0x1 cmp r2, r4 bne _081E1B3A _081E1B48: str r3, [r5] str r1, [r6] pop {r4-r6} pop {r0} bx r0 thumb_func_end sub_81E1B24 thumb_func_start rfu_REQ_changeMasterSlave rfu_REQ_changeMasterSlave: @ 81E1B54 push {lr} movs r0, 0x1 bl STWI_read_status lsls r0, 16 lsrs r0, 16 cmp r0, 0x1 bne _081E1B74 ldr r0, _081E1B70 @ =rfu_STC_REQ_callback bl STWI_set_Callback_M bl STWI_send_MS_ChangeREQ b _081E1B7C .align 2, 0 _081E1B70: .4byte rfu_STC_REQ_callback _081E1B74: movs r0, 0x27 movs r1, 0 bl rfu_STC_REQ_callback _081E1B7C: pop {r0} bx r0 thumb_func_end rfu_REQ_changeMasterSlave thumb_func_start rfu_getMasterSlave rfu_getMasterSlave: @ 81E1B80 push {lr} movs r0, 0x1 bl STWI_read_status lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x1 bne _081E1BAE ldr r0, _081E1BB4 @ =gRfuState ldr r1, [r0] adds r0, r1, 0 adds r0, 0x2C ldrb r0, [r0] cmp r0, 0 beq _081E1BAE ldrb r0, [r1, 0x6] cmp r0, 0x27 beq _081E1BAC cmp r0, 0x25 beq _081E1BAC cmp r0, 0x37 bne _081E1BAE _081E1BAC: movs r2, 0 _081E1BAE: adds r0, r2, 0 pop {r1} bx r1 .align 2, 0 _081E1BB4: .4byte gRfuState thumb_func_end rfu_getMasterSlave thumb_func_start rfu_clearAllSlot rfu_clearAllSlot: @ 81E1BB8 push {r4-r7,lr} mov r7, r8 push {r7} sub sp, 0x4 ldr r1, _081E1C3C @ =0x04000208 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 _081E1BD4: mov r0, sp strh r7, [r0] ldr r0, _081E1C40 @ =gUnknown_3007450 lsls r4, r5, 2 adds r0, r4, r0 ldr r1, [r0] mov r0, sp ldr r2, _081E1C44 @ =0x01000034 bl CpuSet strh r7, [r6] ldr r0, _081E1C48 @ =gUnknown_3007440 adds r4, r0 ldr r1, [r4] adds r0, r6, 0 ldr r2, _081E1C4C @ =0x0100000a bl CpuSet ldr r3, _081E1C50 @ =gUnknown_3007460 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 _081E1BD4 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, _081E1C54 @ =gUnknown_3007464 ldr r0, [r0] strb r1, [r0, 0x2] ldr r0, _081E1C3C @ =0x04000208 mov r1, r8 strh r1, [r0] add sp, 0x4 pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E1C3C: .4byte 0x04000208 _081E1C40: .4byte gUnknown_3007450 _081E1C44: .4byte 0x01000034 _081E1C48: .4byte gUnknown_3007440 _081E1C4C: .4byte 0x0100000a _081E1C50: .4byte gUnknown_3007460 _081E1C54: .4byte gUnknown_3007464 thumb_func_end rfu_clearAllSlot thumb_func_start rfu_STC_releaseFrame rfu_STC_releaseFrame: @ 81E1C58 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, _081E1C90 @ =gUnknown_3007464 ldr r0, [r0] ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081E1C98 ldr r6, _081E1C94 @ =gUnknown_3007460 cmp r3, 0 bne _081E1C84 ldr r1, [r6] ldrb r0, [r1, 0xF] ldrh r4, [r4, 0x2E] adds r0, r4 strb r0, [r1, 0xF] _081E1C84: ldr r1, [r6] ldrb r0, [r1, 0xF] adds r0, 0x3 strb r0, [r1, 0xF] b _081E1CB8 .align 2, 0 _081E1C90: .4byte gUnknown_3007464 _081E1C94: .4byte gUnknown_3007460 _081E1C98: ldr r6, _081E1CC0 @ =gUnknown_3007460 cmp r3, 0 bne _081E1CAC ldr r1, [r6] adds r1, 0x10 adds r1, r2 ldrb r0, [r1] ldrh r4, [r4, 0x2E] adds r0, r4 strb r0, [r1] _081E1CAC: ldr r1, [r6] adds r1, 0x10 adds r1, r5 ldrb r0, [r1] adds r0, 0x2 strb r0, [r1] _081E1CB8: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081E1CC0: .4byte gUnknown_3007460 thumb_func_end rfu_STC_releaseFrame thumb_func_start rfu_clearSlot rfu_clearSlot: @ 81E1CC4 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 _081E1CE4 movs r0, 0x80 lsls r0, 3 b _081E1E5C _081E1CE4: movs r0, 0xF mov r1, r8 ands r0, r1 cmp r0, 0 bne _081E1CF4 movs r0, 0xC0 lsls r0, 3 b _081E1E5C _081E1CF4: ldr r1, _081E1D38 @ =0x04000208 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 _081E1DBC movs r3, 0 ldr r1, _081E1D3C @ =gUnknown_3007450 lsls r0, r7, 2 adds r0, r1 mov r9, r0 _081E1D12: movs r4, 0 cmp r3, 0 bne _081E1D44 movs r0, 0x4 mov r1, r8 ands r0, r1 cmp r0, 0 beq _081E1D64 mov r2, r9 ldr r4, [r2] ldr r0, _081E1D40 @ =gUnknown_3007460 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 _081E1D64 .align 2, 0 _081E1D38: .4byte 0x04000208 _081E1D3C: .4byte gUnknown_3007450 _081E1D40: .4byte gUnknown_3007460 _081E1D44: movs r0, 0x8 mov r1, r8 ands r0, r1 cmp r0, 0 beq _081E1D64 mov r2, r9 ldr r0, [r2] adds r4, r0, 0 adds r4, 0x34 ldr r0, _081E1DF8 @ =gUnknown_3007460 ldr r2, [r0] movs r1, 0x1 lsls r1, r7 ldrb r0, [r2, 0x5] bics r0, r1 strb r0, [r2, 0x5] _081E1D64: adds r6, r3, 0x1 cmp r4, 0 beq _081E1DB4 ldrh r0, [r4] movs r2, 0x80 lsls r2, 8 adds r1, r2, 0 ands r0, r1 cmp r0, 0 beq _081E1DA4 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 _081E1D8E: ldrb r0, [r2] asrs r0, r1 ands r0, r5 cmp r0, 0 beq _081E1D9A strh r3, [r4, 0x2] _081E1D9A: adds r0, r1, 0x1 lsls r0, 16 lsrs r1, r0, 16 cmp r1, 0x3 bls _081E1D8E _081E1DA4: mov r1, sp movs r0, 0 strh r0, [r1] mov r0, sp adds r1, r4, 0 ldr r2, _081E1DFC @ =0x0100001a bl CpuSet _081E1DB4: lsls r0, r6, 16 lsrs r3, r0, 16 cmp r3, 0x1 bls _081E1D12 _081E1DBC: movs r0, 0x1 mov r4, r8 ands r0, r4 cmp r0, 0 beq _081E1E32 ldr r1, _081E1E00 @ =gUnknown_3007440 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 _081E1E24 ldr r0, _081E1E04 @ =gUnknown_3007464 ldr r0, [r0] ldrb r1, [r0] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _081E1E08 ldr r2, _081E1DF8 @ =gUnknown_3007460 ldr r1, [r2] ldrb r0, [r1, 0xF] adds r0, 0x3 ldrb r4, [r3, 0x4] adds r0, r4 strb r0, [r1, 0xF] b _081E1E1A .align 2, 0 _081E1DF8: .4byte gUnknown_3007460 _081E1DFC: .4byte 0x0100001a _081E1E00: .4byte gUnknown_3007440 _081E1E04: .4byte gUnknown_3007464 _081E1E08: ldr r2, _081E1E6C @ =gUnknown_3007460 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] _081E1E1A: ldr r2, [r2] ldrb r1, [r3, 0x3] ldrb r0, [r2, 0x6] bics r0, r1 strb r0, [r2, 0x6] _081E1E24: mov r0, sp movs r1, 0 strh r1, [r0] ldr r2, _081E1E70 @ =0x01000006 adds r1, r3, 0 bl CpuSet _081E1E32: movs r0, 0x2 mov r1, r8 ands r0, r1 cmp r0, 0 beq _081E1E54 mov r1, sp movs r0, 0 strh r0, [r1] ldr r1, _081E1E74 @ =gUnknown_3007440 lsls r0, r7, 2 adds r0, r1 ldr r1, [r0] adds r1, 0xC ldr r2, _081E1E78 @ =0x01000004 mov r0, sp bl CpuSet _081E1E54: ldr r0, _081E1E7C @ =0x04000208 mov r2, r10 strh r2, [r0] movs r0, 0 _081E1E5C: 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 _081E1E6C: .4byte gUnknown_3007460 _081E1E70: .4byte 0x01000006 _081E1E74: .4byte gUnknown_3007440 _081E1E78: .4byte 0x01000004 _081E1E7C: .4byte 0x04000208 thumb_func_end rfu_clearSlot thumb_func_start rfu_setRecvBuffer rfu_setRecvBuffer: @ 81E1E80 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 _081E1E9C movs r0, 0x80 lsls r0, 3 b _081E1ED4 _081E1E9C: movs r0, 0x20 ands r0, r3 cmp r0, 0 beq _081E1EB8 ldr r0, _081E1EB4 @ =gUnknown_3007450 lsls r1, 2 adds r1, r0 ldr r0, [r1] str r5, [r0, 0x68] str r6, [r0, 0x6C] b _081E1ED2 .align 2, 0 _081E1EB4: .4byte gUnknown_3007450 _081E1EB8: movs r0, 0x10 ands r2, r0 cmp r2, 0 bne _081E1EC6 movs r0, 0xC0 lsls r0, 3 b _081E1ED4 _081E1EC6: ldr r0, _081E1EDC @ =gUnknown_3007440 lsls r1, r4, 2 adds r1, r0 ldr r0, [r1] str r5, [r0, 0x14] str r6, [r0, 0x18] _081E1ED2: movs r0, 0 _081E1ED4: pop {r4-r6} pop {r1} bx r1 .align 2, 0 _081E1EDC: .4byte gUnknown_3007440 thumb_func_end rfu_setRecvBuffer thumb_func_start rfu_NI_setSendData rfu_NI_setSendData: @ 81E1EE0 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: @ 81E1F0C push {lr} sub sp, 0x4 adds r3, r1, 0 lsls r0, 24 lsrs r1, r0, 24 lsls r2, 24 lsrs r2, 24 ldr r0, _081E1F28 @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _081E1F2C adds r0, r2, 0x3 b _081E1F2E .align 2, 0 _081E1F28: .4byte gUnknown_3007460 _081E1F2C: adds r0, r2, 0x2 _081E1F2E: 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: @ 81E1F48 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, _081E1F78 @ =gUnknown_3007460 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 _081E1F78: .4byte gUnknown_3007460 thumb_func_end rfu_NI_CHILD_setSendGameName thumb_func_start rfu_STC_setSendData_org rfu_STC_setSendData_org: @ 81E1F7C 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, _081E1FA8 @ =gUnknown_3007460 ldr r2, [r0] ldrb r1, [r2] mov r10, r0 cmp r1, 0xFF bne _081E1FB0 ldr r0, _081E1FAC @ =0x00000301 b _081E2166 .align 2, 0 _081E1FA8: .4byte gUnknown_3007460 _081E1FAC: .4byte 0x00000301 _081E1FB0: movs r0, 0xF ands r0, r3 cmp r0, 0 bne _081E1FBE movs r0, 0x80 lsls r0, 3 b _081E2166 _081E1FBE: ldrb r0, [r2, 0x2] ldrb r1, [r2, 0x3] orrs r0, r1 ands r0, r3 cmp r0, r3 beq _081E1FD4 ldr r0, _081E1FD0 @ =0x00000401 b _081E2166 .align 2, 0 _081E1FD0: .4byte 0x00000401 _081E1FD4: movs r0, 0x10 ands r0, r6 cmp r0, 0 beq _081E1FE0 ldrb r0, [r2, 0x6] b _081E1FE2 _081E1FE0: ldrb r0, [r2, 0x4] _081E1FE2: ands r0, r3 cmp r0, 0 beq _081E1FF0 ldr r0, _081E1FEC @ =0x00000402 b _081E2166 .align 2, 0 _081E1FEC: .4byte 0x00000402 _081E1FF0: movs r2, 0 movs r0, 0x1 ands r0, r3 ldr r4, _081E2020 @ =_Str_RfuHeader cmp r0, 0 bne _081E2012 movs r1, 0x1 _081E1FFE: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bhi _081E2012 adds r0, r3, 0 asrs r0, r2 ands r0, r1 cmp r0, 0 beq _081E1FFE _081E2012: mov r0, r10 ldr r1, [r0] ldrb r0, [r1] cmp r0, 0x1 bne _081E2024 adds r1, 0xF b _081E202E .align 2, 0 _081E2020: .4byte _Str_RfuHeader _081E2024: cmp r0, 0 bne _081E2030 adds r0, r2, 0 adds r0, 0x10 adds r1, r0 _081E202E: mov r9, r1 _081E2030: 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 _081E2048 cmp r8, r4 bhi _081E204E _081E2048: movs r0, 0xA0 lsls r0, 3 b _081E2166 _081E204E: ldr r1, _081E209C @ =0x04000208 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 _081E2068 cmp r6, 0x40 bne _081E2124 _081E2068: ldr r1, _081E20A0 @ =gUnknown_3007450 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 _081E20A4 strb r7, [r1] b _081E20A8 .align 2, 0 _081E209C: .4byte 0x04000208 _081E20A0: .4byte gUnknown_3007450 _081E20A4: movs r0, 0x1 strb r0, [r1] _081E20A8: 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 _081E20C8: 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 _081E20C8 movs r2, 0 movs r5, 0x1 ldr r4, _081E211C @ =gUnknown_3007450 movs r1, 0 _081E20E2: adds r0, r3, 0 asrs r0, r2 ands r0, r5 cmp r0, 0 beq _081E20F4 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] strh r1, [r0, 0x2] _081E20F4: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081E20E2 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, _081E2120 @ =0x00008021 mov r2, r12 strh r0, [r2] b _081E215C .align 2, 0 _081E211C: .4byte gUnknown_3007450 _081E2120: .4byte 0x00008021 _081E2124: movs r0, 0x10 ands r0, r6 cmp r0, 0 beq _081E215C ldr r1, _081E2178 @ =gUnknown_3007440 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, _081E217C @ =0x00008024 strh r0, [r1] mov r0, r10 ldr r2, [r0] ldrb r1, [r2, 0x6] adds r0, r3, 0 orrs r0, r1 strb r0, [r2, 0x6] _081E215C: ldr r0, _081E2180 @ =0x04000208 mov r1, sp ldrh r1, [r1, 0x4] strh r1, [r0] movs r0, 0 _081E2166: 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 _081E2178: .4byte gUnknown_3007440 _081E217C: .4byte 0x00008024 _081E2180: .4byte 0x04000208 thumb_func_end rfu_STC_setSendData_org thumb_func_start rfu_changeSendTarget rfu_changeSendTarget: @ 81E2184 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 _081E21A8 movs r0, 0x80 lsls r0, 3 b _081E22DC _081E21A8: cmp r0, 0x20 bne _081E2248 ldr r0, _081E2238 @ =gUnknown_3007450 mov r12, r0 lsls r0, r7, 2 add r0, r12 ldr r5, [r0] ldrh r2, [r5] ldr r1, _081E223C @ =0x00008020 adds r0, r1, 0 ands r0, r2 cmp r0, r1 bne _081E225E ldrb r0, [r5, 0x1A] adds r3, r6, 0 eors r3, r0 adds r2, r3, 0 ands r2, r6 cmp r2, 0 bne _081E2296 cmp r3, 0 bne _081E21D6 b _081E22DA _081E21D6: ldr r1, _081E2240 @ =0x04000208 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 _081E21EE: adds r0, r3, 0 asrs r0, r2 mov r4, r9 ands r0, r4 cmp r0, 0 beq _081E2202 lsls r0, r2, 2 add r0, r12 ldr r0, [r0] strh r1, [r0, 0x2] _081E2202: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081E21EE ldr r0, _081E2244 @ =gUnknown_3007460 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 _081E222E adds r0, r7, 0 movs r1, 0 adds r2, r5, 0 bl rfu_STC_releaseFrame movs r0, 0x27 strh r0, [r5] _081E222E: ldr r0, _081E2240 @ =0x04000208 mov r1, r8 strh r1, [r0] b _081E22DA .align 2, 0 _081E2238: .4byte gUnknown_3007450 _081E223C: .4byte 0x00008020 _081E2240: .4byte 0x04000208 _081E2244: .4byte gUnknown_3007460 _081E2248: cmp r3, 0x10 bne _081E22D4 ldr r3, _081E2264 @ =gUnknown_3007440 lsls r1, r7, 2 adds r0, r1, r3 ldr r0, [r0] ldrh r2, [r0] ldr r0, _081E2268 @ =0x00008024 adds r5, r3, 0 cmp r2, r0 beq _081E2270 _081E225E: ldr r0, _081E226C @ =0x00000403 b _081E22DC .align 2, 0 _081E2264: .4byte gUnknown_3007440 _081E2268: .4byte 0x00008024 _081E226C: .4byte 0x00000403 _081E2270: movs r3, 0 movs r2, 0 adds r4, r5, 0 _081E2276: cmp r2, r7 beq _081E2284 lsls r0, r2, 2 adds r0, r4 ldr r0, [r0] ldrb r0, [r0, 0x3] orrs r3, r0 _081E2284: adds r0, r2, 0x1 lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x3 bls _081E2276 adds r2, r6, 0 ands r2, r3 cmp r2, 0 beq _081E22A0 _081E2296: ldr r0, _081E229C @ =0x00000404 b _081E22DC .align 2, 0 _081E229C: .4byte 0x00000404 _081E22A0: ldr r3, _081E22CC @ =0x04000208 ldrh r0, [r3] mov r8, r0 strh r2, [r3] ldr r4, _081E22D0 @ =gUnknown_3007460 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 _081E22DA .align 2, 0 _081E22CC: .4byte 0x04000208 _081E22D0: .4byte gUnknown_3007460 _081E22D4: movs r0, 0xC0 lsls r0, 3 b _081E22DC _081E22DA: movs r0, 0 _081E22DC: 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: @ 81E22EC push {r4,r5,lr} lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _081E22FC movs r0, 0x80 lsls r0, 3 b _081E2356 _081E22FC: ldr r1, _081E2328 @ =gUnknown_3007450 lsls r0, r3, 2 adds r0, r1 ldr r2, [r0] adds r5, r2, 0 adds r5, 0x34 ldr r1, _081E232C @ =0x04000208 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 _081E2350 ldr r0, _081E2330 @ =0x00008043 cmp r1, r0 bne _081E2334 movs r0, 0x48 b _081E2336 .align 2, 0 _081E2328: .4byte gUnknown_3007450 _081E232C: .4byte 0x04000208 _081E2330: .4byte 0x00008043 _081E2334: movs r0, 0x47 _081E2336: strh r0, [r2, 0x34] ldr r0, _081E235C @ =gUnknown_3007460 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 _081E2350: ldr r0, _081E2360 @ =0x04000208 strh r4, [r0] movs r0, 0 _081E2356: pop {r4,r5} pop {r1} bx r1 .align 2, 0 _081E235C: .4byte gUnknown_3007460 _081E2360: .4byte 0x04000208 thumb_func_end rfu_NI_stopReceivingData thumb_func_start rfu_UNI_changeAndReadySendData rfu_UNI_changeAndReadySendData: @ 81E2364 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 _081E237C movs r0, 0x80 lsls r0, 3 b _081E23F0 _081E237C: ldr r1, _081E2390 @ =gUnknown_3007440 lsls r0, 2 adds r0, r1 ldr r4, [r0] ldrh r1, [r4] ldr r0, _081E2394 @ =0x00008024 cmp r1, r0 beq _081E239C ldr r0, _081E2398 @ =0x00000403 b _081E23F0 .align 2, 0 _081E2390: .4byte gUnknown_3007440 _081E2394: .4byte 0x00008024 _081E2398: .4byte 0x00000403 _081E239C: ldr r0, _081E23B0 @ =gUnknown_3007460 ldr r1, [r0] ldrb r0, [r1] cmp r0, 0x1 bne _081E23B4 adds r6, r1, 0 adds r6, 0xF ldrb r0, [r4, 0x4] ldrb r1, [r1, 0xF] b _081E23C2 .align 2, 0 _081E23B0: .4byte gUnknown_3007460 _081E23B4: adds r0, r3, 0 adds r0, 0x10 adds r6, r1, r0 adds r1, 0x10 adds r1, r3 ldrb r0, [r4, 0x4] ldrb r1, [r1] _081E23C2: adds r0, r1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, r5 bcc _081E23EC ldr r2, _081E23E8 @ =0x04000208 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 _081E23F0 .align 2, 0 _081E23E8: .4byte 0x04000208 _081E23EC: movs r0, 0xA0 lsls r0, 3 _081E23F0: pop {r4-r7} pop {r1} bx r1 thumb_func_end rfu_UNI_changeAndReadySendData thumb_func_start rfu_UNI_readySendData rfu_UNI_readySendData: @ 81E23F8 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _081E2416 ldr r1, _081E241C @ =gUnknown_3007440 lsls r0, 2 adds r0, r1 ldr r2, [r0] ldrh r1, [r2] ldr r0, _081E2420 @ =0x00008024 cmp r1, r0 bne _081E2416 movs r0, 0x1 strb r0, [r2, 0x2] _081E2416: pop {r0} bx r0 .align 2, 0 _081E241C: .4byte gUnknown_3007440 _081E2420: .4byte 0x00008024 thumb_func_end rfu_UNI_readySendData thumb_func_start rfu_UNI_clearRecvNewDataFlag rfu_UNI_clearRecvNewDataFlag: @ 81E2424 push {lr} lsls r0, 24 lsrs r0, 24 cmp r0, 0x3 bhi _081E243A ldr r1, _081E2440 @ =gUnknown_3007440 lsls r0, 2 adds r0, r1 ldr r1, [r0] movs r0, 0 strb r0, [r1, 0x12] _081E243A: pop {r0} bx r0 .align 2, 0 _081E2440: .4byte gUnknown_3007440 thumb_func_end rfu_UNI_clearRecvNewDataFlag thumb_func_start rfu_REQ_sendData rfu_REQ_sendData: @ 81E2444 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081E2490 @ =gUnknown_3007460 ldr r2, [r0] ldrb r1, [r2] adds r4, r0, 0 cmp r1, 0xFF bne _081E2458 b _081E257E _081E2458: cmp r1, 0x1 bne _081E24E8 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 _081E24E8 ldr r0, _081E2494 @ =gUnknown_3007464 ldr r2, [r0] ldrb r1, [r2, 0x3] adds r4, r0, 0 cmp r1, 0 beq _081E2480 movs r0, 0x10 strb r0, [r2, 0x8] ldr r0, [r4] strb r3, [r0, 0x7] _081E2480: ldr r1, [r4] ldrb r0, [r1, 0x8] cmp r0, 0 beq _081E2498 subs r0, 0x1 strb r0, [r1, 0x8] b _081E249E .align 2, 0 _081E2490: .4byte gUnknown_3007460 _081E2494: .4byte gUnknown_3007464 _081E2498: ldrb r0, [r1, 0x7] adds r0, 0x1 strb r0, [r1, 0x7] _081E249E: ldr r1, [r4] ldrb r0, [r1, 0x8] cmp r0, 0 bne _081E24B0 ldrb r1, [r1, 0x7] movs r0, 0xF ands r0, r1 cmp r0, 0 bne _081E2542 _081E24B0: ldr r4, _081E24D4 @ =gUnknown_3007468 ldr r1, [r4] movs r0, 0x1 str r0, [r1, 0x68] movs r0, 0xFF str r0, [r1, 0x78] ldr r0, _081E24D8 @ =sub_81E2630 bl STWI_set_Callback_M cmp r5, 0 bne _081E24DC ldr r0, [r4] adds r0, 0x68 movs r1, 0x1 bl STWI_send_DataTxREQ b _081E257E .align 2, 0 _081E24D4: .4byte gUnknown_3007468 _081E24D8: .4byte sub_81E2630 _081E24DC: ldr r0, [r4] adds r0, 0x68 movs r1, 0x1 bl STWI_send_DataTxAndChangeREQ b _081E257E _081E24E8: ldr r0, [r4] ldrb r0, [r0, 0xE] cmp r0, 0 bne _081E24F4 bl rfu_constructSendLLFrame _081E24F4: ldr r0, [r4] ldrb r0, [r0, 0xE] cmp r0, 0 beq _081E2542 ldr r0, _081E2520 @ =rfu_CB_sendData bl STWI_set_Callback_M cmp r5, 0 beq _081E252C ldr r0, _081E2524 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0x68 ldr r1, _081E2528 @ =gUnknown_3007464 ldr r1, [r1] ldr r1, [r1, 0x24] adds r1, 0x4 lsls r1, 24 lsrs r1, 24 bl STWI_send_DataTxAndChangeREQ b _081E257E .align 2, 0 _081E2520: .4byte rfu_CB_sendData _081E2524: .4byte gUnknown_3007468 _081E2528: .4byte gUnknown_3007464 _081E252C: ldr r0, _081E2564 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0x68 ldr r1, _081E2568 @ =gUnknown_3007464 ldr r1, [r1] ldr r1, [r1, 0x24] adds r1, 0x4 lsls r1, 24 lsrs r1, 24 bl STWI_send_DataTxREQ _081E2542: cmp r5, 0 beq _081E257E ldr r0, _081E256C @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _081E2574 ldr r0, _081E2570 @ =gRfuState ldr r0, [r0] ldr r1, [r0, 0x1C] cmp r1, 0 beq _081E257E movs r0, 0x27 bl _call_via_r1 b _081E257E .align 2, 0 _081E2564: .4byte gUnknown_3007468 _081E2568: .4byte gUnknown_3007464 _081E256C: .4byte gUnknown_3007460 _081E2570: .4byte gRfuState _081E2574: ldr r0, _081E2584 @ =rfu_CB_sendData2 bl STWI_set_Callback_M bl STWI_send_MS_ChangeREQ _081E257E: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081E2584: .4byte rfu_CB_sendData2 thumb_func_end rfu_REQ_sendData thumb_func_start rfu_CB_sendData rfu_CB_sendData: @ 81E2588 push {r4-r7,lr} mov r7, r8 push {r7} lsls r1, 16 lsrs r7, r1, 16 cmp r7, 0 bne _081E25F2 movs r6, 0 ldr r0, _081E2610 @ =0x00008020 mov r8, r0 _081E259C: ldr r0, _081E2614 @ =gUnknown_3007440 lsls r2, r6, 2 adds r0, r2, r0 ldr r1, [r0] ldrb r0, [r1, 0x2] cmp r0, 0 beq _081E25AE movs r0, 0 strb r0, [r1, 0x2] _081E25AE: ldr r0, _081E2618 @ =gUnknown_3007450 adds r0, r2, r0 ldr r4, [r0] ldrh r0, [r4] cmp r0, r8 bne _081E25E8 adds r0, r6, 0 movs r1, 0 adds r2, r4, 0 bl rfu_STC_releaseFrame ldr r5, _081E261C @ =gUnknown_3007460 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 _081E25E4 ldr r1, [r5] lsls r3, r6 ldrb r0, [r1, 0x7] orrs r3, r0 strb r3, [r1, 0x7] _081E25E4: movs r0, 0x26 strh r0, [r4] _081E25E8: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _081E259C _081E25F2: ldr r0, _081E261C @ =gUnknown_3007460 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 _081E2610: .4byte 0x00008020 _081E2614: .4byte gUnknown_3007440 _081E2618: .4byte gUnknown_3007450 _081E261C: .4byte gUnknown_3007460 thumb_func_end rfu_CB_sendData thumb_func_start rfu_CB_sendData2 rfu_CB_sendData2: @ 81E2620 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_81E2630 sub_81E2630: @ 81E2630 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r1, 16 cmp r1, 0 beq _081E2646 movs r0, 0x24 bl rfu_STC_REQ_callback b _081E2652 _081E2646: cmp r0, 0xFF bne _081E2652 movs r0, 0xFF movs r1, 0 bl rfu_STC_REQ_callback _081E2652: pop {r0} bx r0 thumb_func_end sub_81E2630 thumb_func_start rfu_constructSendLLFrame rfu_constructSendLLFrame: @ 81E2658 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x4 ldr r0, _081E2704 @ =gUnknown_3007460 ldr r2, [r0] ldrb r0, [r2] cmp r0, 0xFF bne _081E2670 b _081E2774 _081E2670: ldrb r0, [r2, 0x4] ldrb r1, [r2, 0x5] orrs r0, r1 ldrb r1, [r2, 0x6] orrs r0, r1 cmp r0, 0 beq _081E2774 ldrb r0, [r2, 0xE] movs r0, 0 strb r0, [r2, 0xE] mov r8, r0 ldr r0, _081E2708 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0x6C str r0, [sp] movs r6, 0 movs r0, 0x80 lsls r0, 8 mov r9, r0 ldr r1, _081E270C @ =0x00008024 mov r10, r1 _081E269A: movs r5, 0 ldr r0, _081E2710 @ =gUnknown_3007450 lsls r7, r6, 2 adds r4, r7, r0 ldr r2, [r4] ldrh r1, [r2] mov r0, r9 ands r0, r1 cmp r0, 0 beq _081E26BA adds r0, r6, 0 mov r1, sp bl rfu_STC_NI_constructLLSF lsls r0, 16 lsrs r5, r0, 16 _081E26BA: ldr r2, [r4] ldrh r1, [r2, 0x34] mov r0, r9 ands r0, r1 cmp r0, 0 beq _081E26D6 adds r2, 0x34 adds r0, r6, 0 mov r1, sp bl rfu_STC_NI_constructLLSF lsls r0, 16 lsrs r0, 16 adds r5, r0 _081E26D6: ldr r0, _081E2714 @ =gUnknown_3007440 adds r0, r7, r0 ldr r0, [r0] ldrh r0, [r0] cmp r0, r10 bne _081E26F0 adds r0, r6, 0 mov r1, sp bl rfu_STC_UNI_constructLLSF lsls r0, 16 lsrs r0, 16 adds r5, r0 _081E26F0: cmp r5, 0 beq _081E2724 ldr r0, _081E2704 @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _081E2718 add r8, r5 b _081E2724 .align 2, 0 _081E2704: .4byte gUnknown_3007460 _081E2708: .4byte gUnknown_3007468 _081E270C: .4byte 0x00008024 _081E2710: .4byte gUnknown_3007450 _081E2714: .4byte gUnknown_3007440 _081E2718: adds r0, r7, r6 adds r0, 0x8 lsls r5, r0 mov r2, r8 orrs r2, r5 mov r8, r2 _081E2724: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _081E269A ldr r6, _081E2784 @ =gUnknown_3007464 mov r0, r8 cmp r0, 0 beq _081E276E ldr r2, [sp] movs r0, 0x3 ands r0, r2 ldr r5, _081E2788 @ =gUnknown_3007460 ldr r1, _081E278C @ =gUnknown_3007468 cmp r0, 0 beq _081E2756 movs r4, 0 movs r3, 0x3 _081E2748: strb r4, [r2] adds r0, r2, 0x1 str r0, [sp] adds r2, r0, 0 ands r0, r3 cmp r0, 0 bne _081E2748 _081E2756: ldr r0, [r1] mov r2, r8 str r2, [r0, 0x68] ldr r0, [r5] ldrb r0, [r0] cmp r0, 0 bne _081E276E ldr r0, [sp] subs r0, 0x6C ldr r1, [r1] subs r0, r1 mov r8, r0 _081E276E: ldr r0, [r6] mov r1, r8 str r1, [r0, 0x24] _081E2774: 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 _081E2784: .4byte gUnknown_3007464 _081E2788: .4byte gUnknown_3007460 _081E278C: .4byte gUnknown_3007468 thumb_func_end rfu_constructSendLLFrame thumb_func_start rfu_STC_NI_constructLLSF rfu_STC_NI_constructLLSF: @ 81E2790 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, _081E280C @ =gUnknown_3007460 ldr r0, [r2] ldrb r0, [r0] lsls r0, 4 ldr r1, _081E2810 @ =_Str_RfuHeader adds r0, r1 mov r8, r0 ldrh r1, [r4] ldr r0, _081E2814 @ =0x00008022 cmp r1, r0 bne _081E27FA 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 _081E27FA movs r7, 0 _081E27D8: ldrb r0, [r3] adds r0, 0x1 strb r0, [r3] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _081E27E8 strb r7, [r6] _081E27E8: 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 _081E27D8 _081E27FA: ldrh r1, [r4] movs r0, 0x40 ands r0, r1 mov r9, r1 cmp r0, 0 beq _081E2818 movs r5, 0 b _081E285C .align 2, 0 _081E280C: .4byte gUnknown_3007460 _081E2810: .4byte _Str_RfuHeader _081E2814: .4byte 0x00008022 _081E2818: ldr r0, _081E2844 @ =0x00008022 cmp r9, r0 bne _081E284C 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 _081E2848 subs r0, r5 lsls r0, 16 lsrs r5, r0, 16 b _081E2860 .align 2, 0 _081E2844: .4byte 0x00008022 _081E2848: adds r5, r7, 0 b _081E2860 _081E284C: ldrh r2, [r4, 0x2E] ldr r0, [r4, 0x14] cmp r0, r2 bcc _081E2858 adds r5, r2, 0 b _081E285C _081E2858: lsls r0, 16 lsrs r5, r0, 16 _081E285C: adds r6, r4, 0 adds r6, 0x20 _081E2860: 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, _081E291C @ =gUnknown_3007460 ldr r0, [r2] ldrb r0, [r0] cmp r0, 0x1 bne _081E28A8 ldrb r0, [r4, 0x1A] lsls r0, 18 orrs r3, r0 str r3, [sp] _081E28A8: mov r2, sp movs r3, 0 mov r7, r8 ldrb r7, [r7] cmp r3, r7 bcs _081E28D2 _081E28B4: 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 _081E28B4 _081E28D2: cmp r5, 0 beq _081E28F2 ldrb r1, [r6] lsls r1, 2 adds r0, r4, 0x4 adds r0, r1 ldr r0, [r0] str r0, [sp, 0x4] ldr r0, _081E2920 @ =gUnknown_3007468 ldr r1, [r0] add r0, sp, 0x4 ldr r3, [r1, 0x4] mov r1, r12 adds r2, r5, 0 bl _call_via_r3 _081E28F2: ldrh r1, [r4] ldr r0, _081E2924 @ =0x00008022 cmp r1, r0 bne _081E290C ldrb r0, [r6] adds r0, 0x1 strb r0, [r6] lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _081E290C movs r0, 0 strb r0, [r6] _081E290C: ldr r0, _081E291C @ =gUnknown_3007460 ldr r2, [r0] ldrb r1, [r2] cmp r1, 0x1 bne _081E2928 ldrb r0, [r2, 0xE] strb r1, [r2, 0xE] b _081E2936 .align 2, 0 _081E291C: .4byte gUnknown_3007460 _081E2920: .4byte gUnknown_3007468 _081E2924: .4byte 0x00008022 _081E2928: movs r0, 0x1 mov r1, r10 lsls r0, r1 ldrb r1, [r2, 0xE] orrs r0, r1 ldrb r1, [r2, 0xE] strb r0, [r2, 0xE] _081E2936: 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: @ 81E2950 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, _081E2978 @ =gUnknown_3007440 lsls r0, 2 adds r0, r1 ldr r4, [r0] ldrb r0, [r4, 0x2] cmp r0, 0 beq _081E2974 ldrb r0, [r4, 0x3] cmp r0, 0 bne _081E297C _081E2974: movs r0, 0 b _081E2A18 .align 2, 0 _081E2978: .4byte gUnknown_3007440 _081E297C: ldr r0, _081E29F4 @ =gUnknown_3007460 ldr r2, [r0] ldrb r0, [r2] lsls r0, 4 ldr r1, _081E29F8 @ =_Str_RfuHeader 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 _081E29A6 ldrb r0, [r4, 0x3] lsls r0, 18 orrs r1, r0 str r1, [sp] _081E29A6: mov r2, sp movs r3, 0 ldr r1, _081E29FC @ =gUnknown_3007468 mov r12, r1 add r7, sp, 0x4 ldrb r0, [r5] cmp r3, r0 bcs _081E29CE _081E29B6: 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 _081E29B6 _081E29CE: 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, _081E29F4 @ =gUnknown_3007460 ldr r2, [r0] ldrb r0, [r2] cmp r0, 0x1 bne _081E2A00 ldrb r0, [r2, 0xE] movs r0, 0x10 b _081E2A0C .align 2, 0 _081E29F4: .4byte gUnknown_3007460 _081E29F8: .4byte _Str_RfuHeader _081E29FC: .4byte gUnknown_3007468 _081E2A00: movs r0, 0x10 mov r1, r8 lsls r0, r1 ldrb r1, [r2, 0xE] orrs r0, r1 ldrb r1, [r2, 0xE] _081E2A0C: strb r0, [r2, 0xE] ldrh r0, [r4, 0x4] ldrb r5, [r5] adds r0, r5 lsls r0, 16 lsrs r0, 16 _081E2A18: 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: @ 81E2A24 push {r4,lr} ldr r0, _081E2A58 @ =gUnknown_3007460 ldr r4, [r0] ldrb r0, [r4] cmp r0, 0xFF beq _081E2A50 ldr r2, _081E2A5C @ =gUnknown_3007464 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, _081E2A60 @ =rfu_CB_recvData bl STWI_set_Callback_M bl STWI_send_DataRxREQ _081E2A50: pop {r4} pop {r0} bx r0 .align 2, 0 _081E2A58: .4byte gUnknown_3007460 _081E2A5C: .4byte gUnknown_3007464 _081E2A60: .4byte rfu_CB_recvData thumb_func_end rfu_REQ_recvData thumb_func_start rfu_CB_recvData rfu_CB_recvData: @ 81E2A64 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 _081E2B28 ldr r0, _081E2AA0 @ =gUnknown_3007468 ldr r0, [r0] adds r0, 0xDC ldr r0, [r0] ldrb r0, [r0, 0x1] cmp r0, 0 beq _081E2B28 ldr r0, _081E2AA4 @ =gUnknown_3007464 ldr r0, [r0] strb r7, [r0, 0x1] ldr r0, _081E2AA8 @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0] cmp r0, 0x1 bne _081E2AAC bl rfu_STC_PARENT_analyzeRecvPacket b _081E2AB0 .align 2, 0 _081E2AA0: .4byte gUnknown_3007468 _081E2AA4: .4byte gUnknown_3007464 _081E2AA8: .4byte gUnknown_3007460 _081E2AAC: bl rfu_STC_CHILD_analyzeRecvPacket _081E2AB0: movs r6, 0 ldr r0, _081E2B40 @ =0x00008043 mov r8, r0 ldr r3, _081E2B44 @ =gUnknown_3007460 _081E2AB8: ldr r0, _081E2B48 @ =gUnknown_3007450 lsls r1, r6, 2 adds r1, r0 ldr r4, [r1] ldrh r0, [r4, 0x34] cmp r0, r8 bne _081E2B0A ldr r0, _081E2B4C @ =gUnknown_3007464 ldr r0, [r0] ldrb r0, [r0, 0x1] asrs r0, r6 movs r1, 0x1 ands r0, r1 cmp r0, 0 bne _081E2B0A adds r5, r4, 0 adds r5, 0x34 adds r0, r4, 0 adds r0, 0x61 ldrb r2, [r0] cmp r2, 0x1 bne _081E2AEE ldr r1, [r3] lsls r2, r6 ldrb r0, [r1, 0x7] orrs r2, r0 strb r2, [r1, 0x7] _081E2AEE: 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] _081E2B0A: adds r0, r6, 0x1 lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0x3 bls _081E2AB8 ldr r0, _081E2B4C @ =gUnknown_3007464 ldr r1, [r0] ldrb r0, [r1, 0x4] cmp r0, 0 beq _081E2B28 adds r7, r0, 0 movs r1, 0xE0 lsls r1, 3 adds r0, r1, 0 orrs r7, r0 _081E2B28: 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 _081E2B40: .4byte 0x00008043 _081E2B44: .4byte gUnknown_3007460 _081E2B48: .4byte gUnknown_3007450 _081E2B4C: .4byte gUnknown_3007464 thumb_func_end rfu_CB_recvData thumb_func_start rfu_STC_PARENT_analyzeRecvPacket rfu_STC_PARENT_analyzeRecvPacket: @ 81E2B50 push {r4-r7,lr} sub sp, 0x4 ldr r1, _081E2BE0 @ =gUnknown_3007468 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, _081E2BE4 @ =gUnknown_3007464 movs r6, 0x1 _081E2B6A: mov r0, sp adds r1, r0, r5 adds r0, r3, 0 ands r0, r7 strb r0, [r1] lsrs r3, 5 cmp r0, 0 bne _081E2B86 ldr r0, [r4] adds r1, r6, 0 lsls r1, r5 ldrb r2, [r0, 0x1] orrs r1, r2 strb r1, [r0, 0x1] _081E2B86: adds r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081E2B6A mov r1, r12 ldr r0, [r1] adds r0, 0xDC ldr r0, [r0] adds r6, r0, 0 adds r6, 0x8 movs r5, 0 _081E2B9E: mov r0, sp adds r1, r0, r5 ldrb r0, [r1] adds r7, r5, 0x1 cmp r0, 0 beq _081E2BD0 adds r4, r1, 0 _081E2BAC: 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 _081E2BD0 lsls r0, r1, 24 cmp r0, 0 bne _081E2BAC _081E2BD0: lsls r0, r7, 24 lsrs r5, r0, 24 cmp r5, 0x3 bls _081E2B9E add sp, 0x4 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E2BE0: .4byte gUnknown_3007468 _081E2BE4: .4byte gUnknown_3007464 thumb_func_end rfu_STC_PARENT_analyzeRecvPacket thumb_func_start rfu_STC_CHILD_analyzeRecvPacket rfu_STC_CHILD_analyzeRecvPacket: @ 81E2BE8 push {r4-r6,lr} ldr r0, _081E2C38 @ =gUnknown_3007468 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 _081E2C08 ldr r0, _081E2C3C @ =gUnknown_3007464 ldr r1, [r0] movs r0, 0xF strb r0, [r1, 0x1] _081E2C08: movs r0, 0x80 lsls r0, 8 adds r6, r0, 0 _081E2C0E: cmp r4, 0 beq _081E2C30 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 _081E2C0E _081E2C30: pop {r4-r6} pop {r0} bx r0 .align 2, 0 _081E2C38: .4byte gUnknown_3007468 _081E2C3C: .4byte gUnknown_3007464 thumb_func_end rfu_STC_CHILD_analyzeRecvPacket thumb_func_start rfu_STC_analyzeLLSF rfu_STC_analyzeLLSF: @ 81E2C40 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, _081E2C74 @ =gUnknown_3007460 ldr r0, [r2] ldrb r0, [r0] mvns r0, r0 movs r1, 0x1 ands r0, r1 lsls r0, 4 ldr r1, _081E2C78 @ =_Str_RfuHeader adds r6, r0, r1 ldrb r0, [r6] cmp r3, r0 bcs _081E2C7C adds r0, r3, 0 b _081E2E6E .align 2, 0 _081E2C74: .4byte gUnknown_3007460 _081E2C78: .4byte _Str_RfuHeader _081E2C7C: 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 _081E2CA4 adds r2, r0, 0 _081E2C90: 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 _081E2C90 _081E2CA4: adds r0, r5, 0 lsrs r0, r3 mov r3, r8 ands r0, r3 ldr r1, _081E2D7C @ =0xffffff00 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, _081E2D80 @ =0xffff00ff 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, _081E2D84 @ =0xff00ffff 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, _081E2D88 @ =0x00ffffff 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, _081E2D8C @ =0x0000ffff 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 _081E2D4A b _081E2E6C _081E2D4A: ldr r2, _081E2D90 @ =gUnknown_3007460 ldr r3, [r2] ldrb r2, [r3] cmp r2, 0x1 bne _081E2E08 ldrb r0, [r3, 0x2] mov r5, r12 asrs r0, r5 ands r0, r2 cmp r0, 0 bne _081E2D62 b _081E2E6C _081E2D62: mov r1, r8 lsrs r0, r1, 16 lsls r0, 24 lsrs r0, 24 cmp r0, 0x4 bne _081E2D94 mov r0, r12 mov r1, sp adds r2, r7, 0 bl rfu_STC_UNI_receive b _081E2E6C .align 2, 0 _081E2D7C: .4byte 0xffffff00 _081E2D80: .4byte 0xffff00ff _081E2D84: .4byte 0xff00ffff _081E2D88: .4byte 0x00ffffff _081E2D8C: .4byte 0x0000ffff _081E2D90: .4byte gUnknown_3007460 _081E2D94: mov r5, r9 ldrb r0, [r5, 0x3] cmp r0, 0 bne _081E2DA8 mov r0, r12 mov r1, sp adds r2, r7, 0 bl rfu_STC_NI_receive_Receiver b _081E2E6C _081E2DA8: movs r4, 0 ldr r1, _081E2DC0 @ =gUnknown_3007450 ldr r0, [r1] ldrb r0, [r0, 0x1A] mov r5, r12 asrs r0, r5 ands r0, r2 cmp r0, 0 beq _081E2DC4 ldrb r0, [r3, 0x4] b _081E2DEA .align 2, 0 _081E2DC0: .4byte gUnknown_3007450 _081E2DC4: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bhi _081E2E6C 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 _081E2DC4 ldr r3, _081E2E04 @ =gUnknown_3007460 ldr r0, [r3] ldrb r0, [r0, 0x4] mov r5, r12 _081E2DEA: asrs r0, r5 ands r0, r2 cmp r0, 0 beq _081E2DC4 cmp r4, 0x3 bhi _081E2E6C adds r0, r4, 0 mov r1, r12 mov r2, sp adds r3, r7, 0 bl rfu_STC_NI_receive_Sender b _081E2E6C .align 2, 0 _081E2E04: .4byte gUnknown_3007460 _081E2E08: ldrb r1, [r3, 0x2] mov r2, r9 ldrb r0, [r2, 0x1] adds r5, r1, 0 ands r5, r0 cmp r5, 0 beq _081E2E6C movs r4, 0 movs r6, 0x1 _081E2E1A: adds r0, r5, 0 asrs r0, r4 ands r0, r6 cmp r0, 0 beq _081E2E62 mov r1, sp ldrb r0, [r1, 0x2] cmp r0, 0x4 bne _081E2E36 adds r0, r4, 0 adds r2, r7, 0 bl rfu_STC_UNI_receive b _081E2E62 _081E2E36: ldrb r0, [r1, 0x3] cmp r0, 0 bne _081E2E48 adds r0, r4, 0 mov r1, sp adds r2, r7, 0 bl rfu_STC_NI_receive_Receiver b _081E2E62 _081E2E48: ldr r0, _081E2E80 @ =gUnknown_3007460 ldr r0, [r0] ldrb r0, [r0, 0x4] asrs r0, r4 ands r0, r6 cmp r0, 0 beq _081E2E62 adds r0, r4, 0 adds r1, r4, 0 mov r2, sp adds r3, r7, 0 bl rfu_STC_NI_receive_Sender _081E2E62: adds r0, r4, 0x1 lsls r0, 24 lsrs r4, r0, 24 cmp r4, 0x3 bls _081E2E1A _081E2E6C: mov r0, r10 _081E2E6E: 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 _081E2E80: .4byte gUnknown_3007460 thumb_func_end rfu_STC_analyzeLLSF thumb_func_start rfu_STC_UNI_receive rfu_STC_UNI_receive: @ 81E2E84 push {r4-r7,lr} sub sp, 0x8 adds r6, r1, 0 str r2, [sp] lsls r0, 24 lsrs r7, r0, 24 ldr r2, _081E2EB8 @ =gUnknown_3007440 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 _081E2EC0 movs r0, 0x49 strh r0, [r3, 0xC] ldr r0, _081E2EBC @ =0x00000701 strh r0, [r5, 0x2] b _081E2F0E .align 2, 0 _081E2EB8: .4byte gUnknown_3007440 _081E2EBC: .4byte 0x00000701 _081E2EC0: ldrb r0, [r5, 0x7] cmp r0, 0 beq _081E2ED8 ldrb r0, [r5, 0x6] cmp r0, 0 beq _081E2EE4 ldr r0, _081E2ED4 @ =0x00000709 strh r0, [r5, 0x2] b _081E2F0E .align 2, 0 _081E2ED4: .4byte 0x00000709 _081E2ED8: ldrb r0, [r5, 0x6] cmp r0, 0 beq _081E2EE4 movs r0, 0xE1 lsls r0, 3 strh r0, [r5, 0x2] _081E2EE4: movs r4, 0 ldr r0, _081E2F2C @ =0x00008042 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, _081E2F30 @ =gUnknown_3007468 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] _081E2F0E: ldrh r0, [r5, 0x2] cmp r0, 0 beq _081E2F22 ldr r0, _081E2F34 @ =gUnknown_3007464 ldr r2, [r0] movs r0, 0x10 lsls r0, r7 ldrb r1, [r2, 0x4] orrs r0, r1 strb r0, [r2, 0x4] _081E2F22: add sp, 0x8 pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E2F2C: .4byte 0x00008042 _081E2F30: .4byte gUnknown_3007468 _081E2F34: .4byte gUnknown_3007464 thumb_func_end rfu_STC_UNI_receive thumb_func_start rfu_STC_NI_receive_Sender rfu_STC_NI_receive_Sender: @ 81E2F38 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, _081E3004 @ =gUnknown_3007450 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 _081E2F74 ldr r0, _081E3008 @ =0x00008022 cmp r9, r0 beq _081E2F8E _081E2F74: cmp r2, 0x1 bne _081E2F7E ldr r0, _081E300C @ =0x00008021 cmp r9, r0 beq _081E2F8E _081E2F7E: movs r3, 0x1B add r3, r12 mov r8, r3 cmp r2, 0x3 bne _081E2FB2 ldr r0, _081E3010 @ =0x00008023 cmp r9, r0 bne _081E2FB2 _081E2F8E: 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 _081E2FB2 adds r0, r7, r1 movs r1, 0x1 mov r3, r10 lsls r1, r3 ldrb r2, [r0] orrs r1, r2 strb r1, [r0] _081E2FB2: 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 _081E30AE 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, _081E3014 @ =0x00007fdf adds r0, r1, r2 lsls r0, 16 lsrs r0, 16 adds r5, r3, 0 cmp r0, 0x1 bhi _081E30A0 ldr r0, _081E300C @ =0x00008021 cmp r1, r0 bne _081E3018 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 _081E302E .align 2, 0 _081E3004: .4byte gUnknown_3007450 _081E3008: .4byte 0x00008022 _081E300C: .4byte 0x00008021 _081E3010: .4byte 0x00008023 _081E3014: .4byte 0x00007fdf _081E3018: 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] _081E302E: 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 _081E3042 cmp r0, 0 bge _081E30AE _081E3042: mov r0, r12 adds r0, 0x20 movs r2, 0 strb r2, [r0] mov r7, r12 ldrh r1, [r7] ldr r0, _081E3084 @ =0x00008021 cmp r1, r0 bne _081E308C movs r4, 0 _081E3056: 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 _081E3056 ldr r0, [r7, 0x30] str r0, [r7, 0x14] ldr r0, _081E3088 @ =0x00008022 strh r0, [r7] b _081E30AE .align 2, 0 _081E3084: .4byte 0x00008021 _081E3088: .4byte 0x00008022 _081E308C: strb r2, [r5] mov r0, r12 str r2, [r0, 0x14] ldr r0, _081E309C @ =0x00008023 mov r1, r12 strh r0, [r1] b _081E30AE .align 2, 0 _081E309C: .4byte 0x00008023 _081E30A0: lsls r1, 16 ldr r0, _081E3110 @ =0x80230000 cmp r1, r0 bne _081E30AE ldr r0, _081E3114 @ =0x00008020 mov r2, r12 strh r0, [r2] _081E30AE: mov r3, r12 ldrh r0, [r3] cmp r0, r9 bne _081E30D8 ldrb r2, [r6, 0x4] mov r0, r12 adds r0, 0x21 adds r0, r2 ldrb r0, [r0] ldr r7, [sp] cmp r0, r7 bne _081E30D8 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 _081E30FE _081E30D8: ldr r4, _081E3118 @ =0x04000208 ldrh r2, [r4] movs r0, 0 strh r0, [r4] ldr r0, _081E311C @ =gUnknown_3007464 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, _081E3120 @ =gUnknown_3007450 adds r0, r3 ldr r0, [r0] strh r1, [r0, 0x2] strh r2, [r4] _081E30FE: 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 _081E3110: .4byte 0x80230000 _081E3114: .4byte 0x00008020 _081E3118: .4byte 0x04000208 _081E311C: .4byte gUnknown_3007464 _081E3120: .4byte gUnknown_3007450 thumb_func_end rfu_STC_NI_receive_Sender thumb_func_start rfu_STC_NI_receive_Receiver rfu_STC_NI_receive_Receiver: @ 81E3124 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, _081E3184 @ =gUnknown_3007450 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 _081E3194 ldr r0, _081E3188 @ =gUnknown_3007464 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, _081E318C @ =0x00008042 cmp r1, r0 bne _081E31DA adds r0, r4, 0 adds r0, 0x54 strb r7, [r0] strb r7, [r3] ldr r0, _081E3190 @ =0x00008043 strh r0, [r4, 0x34] b _081E31DA .align 2, 0 _081E3184: .4byte gUnknown_3007450 _081E3188: .4byte gUnknown_3007464 _081E318C: .4byte 0x00008042 _081E3190: .4byte 0x00008043 _081E3194: cmp r0, 0x2 bne _081E31C0 ldr r0, _081E31B8 @ =0x00008041 cmp r9, r0 bne _081E31AC ldr r0, [r5, 0x14] cmp r0, 0 bne _081E31AC mov r0, r8 adds r1, r5, 0 bl rfu_STC_NI_initSlot_asRecvDataEntity _081E31AC: ldrh r1, [r5] ldr r0, _081E31BC @ =0x00008042 cmp r1, r0 bne _081E31DA b _081E31DE .align 2, 0 _081E31B8: .4byte 0x00008041 _081E31BC: .4byte 0x00008042 _081E31C0: cmp r0, 0x1 bne _081E31DA ldr r7, _081E328C @ =0x00008041 cmp r9, r7 beq _081E31DE mov r0, r8 adds r1, r5, 0 bl rfu_STC_NI_initSlot_asRecvControllData ldrh r0, [r4, 0x34] cmp r0, r7 bne _081E327A movs r7, 0x1 _081E31DA: cmp r7, 0 beq _081E3234 _081E31DE: 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 _081E3234 ldr r0, _081E3290 @ =gUnknown_3007468 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, _081E3294 @ =0x00008042 cmp r1, r0 bne _081E3224 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] _081E3224: 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] _081E3234: ldrh r0, [r5, 0x18] cmp r0, 0 bne _081E327A ldrb r0, [r6, 0x4] adds r1, r5, 0 adds r1, 0x20 strb r0, [r1] ldrh r0, [r5] cmp r0, r9 bne _081E325C adds r0, r5, 0 adds r0, 0x21 ldrb r2, [r6, 0x4] adds r0, r2 ldrb r0, [r0] cmp r0, r10 bne _081E325C ldrb r6, [r6, 0x5] cmp r0, r6 bne _081E327A _081E325C: ldr r3, _081E3298 @ =0x04000208 ldrh r2, [r3] movs r0, 0 strh r0, [r3] ldr r0, _081E329C @ =gUnknown_3007464 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] _081E327A: 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 _081E328C: .4byte 0x00008041 _081E3290: .4byte gUnknown_3007468 _081E3294: .4byte 0x00008042 _081E3298: .4byte 0x04000208 _081E329C: .4byte gUnknown_3007464 thumb_func_end rfu_STC_NI_receive_Receiver thumb_func_start rfu_STC_NI_initSlot_asRecvControllData rfu_STC_NI_initSlot_asRecvControllData: @ 81E32A0 push {r4-r7,lr} adds r2, r1, 0 lsls r0, 24 lsrs r4, r0, 24 ldr r0, _081E32BC @ =gUnknown_3007460 ldr r3, [r0] ldrb r1, [r3] mov r12, r0 cmp r1, 0x1 bne _081E32C0 movs r5, 0x3 adds r1, r3, 0 adds r1, 0xF b _081E32C8 .align 2, 0 _081E32BC: .4byte gUnknown_3007460 _081E32C0: movs r5, 0x2 adds r0, r4, 0 adds r0, 0x10 adds r1, r3, r0 _081E32C8: 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 _081E3326 ldrb r0, [r1] cmp r0, r5 bcs _081E3300 movs r0, 0x49 strh r0, [r2] ldr r0, _081E32F8 @ =0x00000702 strh r0, [r2, 0x18] ldr r0, _081E32FC @ =gUnknown_3007464 ldr r2, [r0] ldrb r1, [r2, 0x4] adds r0, r6, 0 orrs r0, r1 strb r0, [r2, 0x4] b _081E3326 .align 2, 0 _081E32F8: .4byte 0x00000702 _081E32FC: .4byte gUnknown_3007464 _081E3300: 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, _081E332C @ =0x00008041 strh r0, [r2] mov r0, r12 ldr r1, [r0] ldrb r0, [r1, 0x5] orrs r4, r0 strb r4, [r1, 0x5] _081E3326: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E332C: .4byte 0x00008041 thumb_func_end rfu_STC_NI_initSlot_asRecvControllData thumb_func_start rfu_STC_NI_initSlot_asRecvDataEntity rfu_STC_NI_initSlot_asRecvDataEntity: @ 81E3330 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 _081E3354 ldr r0, _081E3350 @ =gUnknown_3007460 lsls r1, r5, 5 adds r1, 0x14 ldr r0, [r0] adds r0, r1 adds r0, 0x4 b _081E33AA .align 2, 0 _081E3350: .4byte gUnknown_3007460 _081E3354: ldr r1, _081E3398 @ =gUnknown_3007450 lsls r0, r5, 2 adds r0, r1 ldr r2, [r0] ldr r1, [r4, 0x30] ldr r0, [r2, 0x6C] cmp r1, r0 bls _081E33A8 movs r1, 0x80 lsls r1, 17 lsls r1, r5 lsrs r1, 24 ldr r0, _081E339C @ =gUnknown_3007464 ldr r3, [r0] ldrb r2, [r3, 0x4] adds r0, r1, 0 orrs r0, r2 strb r0, [r3, 0x4] ldr r0, _081E33A0 @ =gUnknown_3007460 ldr r2, [r0] ldrb r0, [r2, 0x5] bics r0, r1 strb r0, [r2, 0x5] ldr r0, _081E33A4 @ =0x00000701 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 _081E33DC .align 2, 0 _081E3398: .4byte gUnknown_3007450 _081E339C: .4byte gUnknown_3007464 _081E33A0: .4byte gUnknown_3007460 _081E33A4: .4byte 0x00000701 _081E33A8: ldr r0, [r2, 0x68] _081E33AA: str r0, [r4, 0x4] movs r3, 0 adds r6, r4, 0 adds r6, 0x21 movs r7, 0 adds r5, r4, 0x4 _081E33B6: 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 _081E33B6 ldr r0, [r4, 0x30] str r0, [r4, 0x14] ldr r0, _081E33E4 @ =0x00008042 strh r0, [r4] _081E33DC: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E33E4: .4byte 0x00008042 thumb_func_end rfu_STC_NI_initSlot_asRecvDataEntity thumb_func_start rfu_NI_checkCommFailCounter rfu_NI_checkCommFailCounter: @ 81E33E8 push {r4-r7,lr} ldr r2, _081E3474 @ =gUnknown_3007460 ldr r0, [r2] ldrb r1, [r0, 0x4] ldrb r0, [r0, 0x5] orrs r0, r1 cmp r0, 0 beq _081E346E ldr r1, _081E3478 @ =0x04000208 ldrh r0, [r1] mov r12, r0 movs r0, 0 strh r0, [r1] ldr r1, _081E347C @ =gUnknown_3007464 ldr r0, [r1] ldrb r0, [r0, 0x2] lsrs r7, r0, 4 movs r3, 0 adds r6, r1, 0 adds r5, r2, 0 ldr r4, _081E3480 @ =gUnknown_3007450 _081E3412: 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 _081E343A ldr r0, [r6] ldrb r0, [r0, 0x2] ands r0, r2 cmp r0, 0 bne _081E343A lsls r0, r3, 2 adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x2] adds r0, 0x1 strh r0, [r1, 0x2] _081E343A: ldr r0, [r5] ldrb r0, [r0, 0x5] ands r0, r2 cmp r0, 0 beq _081E3458 adds r0, r7, 0 ands r0, r2 cmp r0, 0 bne _081E3458 lsls r0, r3, 2 adds r0, r4 ldr r1, [r0] ldrh r0, [r1, 0x36] adds r0, 0x1 strh r0, [r1, 0x36] _081E3458: adds r0, r3, 0x1 lsls r0, 24 lsrs r3, r0, 24 cmp r3, 0x3 bls _081E3412 ldr r0, [r6] movs r1, 0 strb r1, [r0, 0x2] ldr r0, _081E3478 @ =0x04000208 mov r1, r12 strh r1, [r0] _081E346E: pop {r4-r7} pop {r0} bx r0 .align 2, 0 _081E3474: .4byte gUnknown_3007460 _081E3478: .4byte 0x04000208 _081E347C: .4byte gUnknown_3007464 _081E3480: .4byte gUnknown_3007450 thumb_func_end rfu_NI_checkCommFailCounter thumb_func_start rfu_REQ_noise rfu_REQ_noise: @ 81E3484 push {lr} ldr r0, _081E3498 @ =rfu_STC_REQ_callback bl STWI_set_Callback_M movs r0, 0x1 movs r1, 0 bl STWI_send_TestModeREQ pop {r0} bx r0 .align 2, 0 _081E3498: .4byte rfu_STC_REQ_callback thumb_func_end rfu_REQ_noise thumb_func_start sub_81E349C sub_81E349C: @ 81E349C push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 ldr r0, _081E34B4 @ =0x04000208 ldrh r0, [r0] cmp r0, 0 bne _081E34B8 movs r0, 0x1 negs r0, r0 b _081E3538 .align 2, 0 _081E34B4: .4byte 0x04000208 _081E34B8: ldr r0, _081E34E4 @ =0x04000200 ldrh r0, [r0] mov r8, r0 ldr r4, _081E34E8 @ =gRfuState ldr r1, [r4] movs r0, 0xA str r0, [r1] ldr r0, _081E34EC @ =sub_81E36B8 bl STWI_set_Callback_ID bl sub_81E3550 ldr r0, [r4] ldrb r0, [r0, 0xA] lsls r0, 2 ldr r1, _081E34F0 @ =0x04000100 adds r4, r0, r1 lsls r0, r5, 27 lsrs r5, r0, 24 movs r7, 0 b _081E3506 .align 2, 0 _081E34E4: .4byte 0x04000200 _081E34E8: .4byte gRfuState _081E34EC: .4byte sub_81E36B8 _081E34F0: .4byte 0x04000100 _081E34F4: strh r6, [r4, 0x2] strh r6, [r4] movs r0, 0x83 strh r0, [r4, 0x2] _081E34FC: ldrh r0, [r4] cmp r0, 0x1F bls _081E34FC strh r7, [r4, 0x2] strh r7, [r4] _081E3506: subs r0, r5, 0x1 lsls r0, 24 lsrs r5, r0, 24 cmp r5, 0xFF beq _081E351A bl sub_81E35C4 adds r6, r0, 0 cmp r6, 0 beq _081E34F4 _081E351A: ldr r1, _081E3544 @ =0x04000208 movs r0, 0 strh r0, [r1] ldr r0, _081E3548 @ =0x04000200 mov r2, r8 strh r2, [r0] movs r0, 0x1 strh r0, [r1] ldr r0, _081E354C @ =gRfuState ldr r1, [r0] movs r0, 0 str r0, [r1] bl STWI_set_Callback_ID adds r0, r6, 0 _081E3538: pop {r3} mov r8, r3 pop {r4-r7} pop {r1} bx r1 .align 2, 0 _081E3544: .4byte 0x04000208 _081E3548: .4byte 0x04000200 _081E354C: .4byte gRfuState thumb_func_end sub_81E349C thumb_func_start sub_81E3550 sub_81E3550: @ 81E3550 push {r4,r5,lr} sub sp, 0x4 ldr r3, _081E35A8 @ =0x04000208 movs r4, 0 strh r4, [r3] ldr r2, _081E35AC @ =0x04000200 ldr r0, _081E35B0 @ =gRfuState 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, _081E35B4 @ =0x04000134 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, _081E35B8 @ =gUnknown_3007470 ldr r2, _081E35BC @ =0x05000003 mov r0, sp bl CpuSet ldr r0, _081E35C0 @ =0x04000202 strh r5, [r0] add sp, 0x4 pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081E35A8: .4byte 0x04000208 _081E35AC: .4byte 0x04000200 _081E35B0: .4byte gRfuState _081E35B4: .4byte 0x04000134 _081E35B8: .4byte gUnknown_3007470 _081E35BC: .4byte 0x05000003 _081E35C0: .4byte 0x04000202 thumb_func_end sub_81E3550 thumb_func_start sub_81E35C4 sub_81E35C4: @ 81E35C4 push {r4-r7,lr} ldr r0, _081E35D8 @ =gUnknown_3007470 ldrb r1, [r0, 0x1] mov r12, r1 adds r7, r0, 0 cmp r1, 0 beq _081E35DC cmp r1, 0x1 beq _081E3614 b _081E36AC .align 2, 0 _081E35D8: .4byte gUnknown_3007470 _081E35DC: movs r6, 0x1 strb r6, [r7] ldr r3, _081E3608 @ =0x04000128 ldrh r0, [r3] movs r5, 0x1 orrs r0, r5 strh r0, [r3] ldr r4, _081E360C @ =0x04000208 mov r0, r12 strh r0, [r4] ldr r2, _081E3610 @ =0x04000200 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 _081E36B0 .align 2, 0 _081E3608: .4byte 0x04000128 _081E360C: .4byte 0x04000208 _081E3610: .4byte 0x04000200 _081E3614: ldrh r0, [r7, 0xA] cmp r0, 0 bne _081E36A8 ldrb r0, [r7] cmp r0, 0x1 bne _081E3644 ldrh r0, [r7, 0x2] cmp r0, 0 bne _081E36B0 ldr r3, _081E363C @ =0x04000208 strh r0, [r3] ldr r2, _081E3640 @ =0x04000128 ldrh r0, [r2] movs r1, 0x80 orrs r0, r1 strh r0, [r2] mov r1, r12 strh r1, [r3] b _081E36B0 .align 2, 0 _081E363C: .4byte 0x04000208 _081E3640: .4byte 0x04000128 _081E3644: ldrh r1, [r7, 0x4] ldr r0, _081E3690 @ =0x00008001 cmp r1, r0 beq _081E36B0 ldrh r6, [r7, 0x2] cmp r6, 0 bne _081E36B0 ldr r4, _081E3694 @ =0x04000208 strh r6, [r4] ldr r3, _081E3698 @ =0x04000200 ldrh r1, [r3] ldr r0, _081E369C @ =0x0000ff7f ands r0, r1 strh r0, [r3] mov r7, r12 strh r7, [r4] ldr r2, _081E36A0 @ =0x04000128 strh r6, [r2] movs r1, 0x80 lsls r1, 5 adds r0, r1, 0 strh r0, [r2] ldr r0, _081E36A4 @ =0x04000202 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 _081E36B0 .align 2, 0 _081E3690: .4byte 0x00008001 _081E3694: .4byte 0x04000208 _081E3698: .4byte 0x04000200 _081E369C: .4byte 0x0000ff7f _081E36A0: .4byte 0x04000128 _081E36A4: .4byte 0x04000202 _081E36A8: movs r0, 0x2 strb r0, [r7, 0x1] _081E36AC: ldrh r0, [r7, 0xA] b _081E36B2 _081E36B0: movs r0, 0 _081E36B2: pop {r4-r7} pop {r1} bx r1 thumb_func_end sub_81E35C4 thumb_func_start sub_81E36B8 sub_81E36B8: @ 81E36B8 push {r4,r5,lr} ldr r0, _081E3700 @ =0x04000120 ldr r5, [r0] ldr r0, _081E3704 @ =gUnknown_3007470 ldrb r1, [r0] adds r4, r0, 0 cmp r1, 0x1 beq _081E36D2 ldr r0, _081E3708 @ =0x04000128 ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] _081E36D2: 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 _081E3726 ldrh r2, [r4, 0x6] cmp r1, r2 bne _081E3724 ldrh r3, [r4, 0x2] cmp r3, 0x3 bls _081E370C strh r5, [r4, 0xA] b _081E3726 .align 2, 0 _081E3700: .4byte 0x04000120 _081E3704: .4byte gUnknown_3007470 _081E3708: .4byte 0x04000128 _081E370C: ldrh r0, [r4, 0x4] mvns r0, r0 lsls r0, 16 lsrs r0, 16 cmp r1, r0 bne _081E3726 mvns r0, r2 lsls r0, 16 lsrs r0, 16 cmp r5, r0 bne _081E3726 adds r0, r3, 0x1 _081E3724: strh r0, [r4, 0x2] _081E3726: ldrh r0, [r4, 0x2] cmp r0, 0x3 bhi _081E373C lsls r0, 1 ldr r1, _081E3738 @ =_Str_Sio32ID adds r0, r1 ldrh r0, [r0] b _081E373E .align 2, 0 _081E3738: .4byte _Str_Sio32ID _081E373C: ldr r0, _081E3794 @ =0x00008001 _081E373E: strh r0, [r4, 0x4] mvns r0, r5 strh r0, [r4, 0x6] ldr r3, _081E3798 @ =0x04000120 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 _081E378C ldrh r0, [r4, 0x2] cmp r0, 0 bne _081E376E ldr r0, _081E379C @ =0x0000494e cmp r5, r0 bne _081E378C _081E376E: movs r0, 0 ldr r1, _081E37A0 @ =0x00000257 _081E3772: adds r0, 0x1 lsls r0, 16 lsrs r0, 16 cmp r0, r1 bls _081E3772 ldrh r0, [r4, 0xA] cmp r0, 0 bne _081E378C ldr r0, _081E37A4 @ =0x04000128 ldrh r1, [r0] movs r2, 0x80 orrs r1, r2 strh r1, [r0] _081E378C: pop {r4,r5} pop {r0} bx r0 .align 2, 0 _081E3794: .4byte 0x00008001 _081E3798: .4byte 0x04000120 _081E379C: .4byte 0x0000494e _081E37A0: .4byte 0x00000257 _081E37A4: .4byte 0x04000128 thumb_func_end sub_81E36B8 .align 2, 0 @ Don't pad with nop.