pokefirered/asm/librfu.s
2018-12-04 09:21:18 -05:00

8943 lines
153 KiB
ArmAsm

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