.include "asm/macros.inc" .include "global.inc" .section .text .balign 4, 0 arm_func_start WMSP_SetChildSize WMSP_SetChildSize: ; 0x06000000 ldr r1, _0600002C ; =_0601A960 ldr r2, [r1, #1360] ; 0x550 strh r0, [r2, #50] ; 0x32 add r1, r2, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 addeq r0, r0, #2 streqh r0, [r2, #58] ; 0x3a addne r0, r0, #2 strneh r0, [r2, #56] ; 0x38 bx lr _0600002C: .word _0601A960 arm_func_start WMSP_SetParentSize WMSP_SetParentSize: ; 0x06000030 ldr r1, _0600005C ; =_0601A960 ldr r2, [r1, #1360] ; 0x550 strh r0, [r2, #48] ; 0x30 add r1, r2, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 addeq r0, r0, #4 streqh r0, [r2, #56] ; 0x38 addne r0, r0, #4 strneh r0, [r2, #58] ; 0x3a bx lr _0600005C: .word _0601A960 arm_func_start WMSP_SetChildMaxSize WMSP_SetChildMaxSize: ; 0x06000060 ldr r1, _060000AC ; =_0601A960 ldr r2, [r1, #1360] ; 0x550 strh r0, [r2, #54] ; 0x36 strh r0, [r2, #50] ; 0x32 add r1, r2, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 addne r0, r0, #2 movne r0, r0, lsl #16 movne r0, r0, lsr #16 strneh r0, [r2, #60] ; 0x3c strneh r0, [r2, #56] ; 0x38 bxne lr add r0, r0, #2 mov r0, r0, lsl #16 mov r0, r0, lsr #16 strh r0, [r2, #62] ; 0x3e strh r0, [r2, #58] ; 0x3a bx lr _060000AC: .word _0601A960 arm_func_start WMSP_SetParentMaxSize WMSP_SetParentMaxSize: ; 0x060000B0 ldr r1, _060000FC ; =_0601A960 ldr r2, [r1, #1360] ; 0x550 strh r0, [r2, #48] ; 0x30 strh r0, [r2, #52] ; 0x34 add r1, r2, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 addne r0, r0, #4 movne r0, r0, lsl #16 movne r0, r0, lsr #16 strneh r0, [r2, #62] ; 0x3e strneh r0, [r2, #58] ; 0x3a bxne lr add r0, r0, #4 mov r0, r0, lsl #16 mov r0, r0, lsr #16 strh r0, [r2, #60] ; 0x3c strh r0, [r2, #56] ; 0x38 bx lr _060000FC: .word _0601A960 arm_func_start WMSP_ResetSizeVars WMSP_ResetSizeVars: ; 0x06000100 ldr r0, _06000130 ; =_0601A960 ldr r1, [r0, #1360] ; 0x550 mov r0, #0 strh r0, [r1, #56] ; 0x38 strh r0, [r1, #58] ; 0x3a strh r0, [r1, #48] ; 0x30 strh r0, [r1, #50] ; 0x32 strh r0, [r1, #60] ; 0x3c strh r0, [r1, #62] ; 0x3e strh r0, [r1, #52] ; 0x34 strh r0, [r1, #54] ; 0x36 bx lr _06000130: .word _0601A960 arm_func_start WMSP_GetInternalRequestBuf WMSP_GetInternalRequestBuf: ; 0x06000134 stmdb sp!, {r4, lr} mov r4, #0 bl FUN_060001A4 ldr r1, _060001A0 ; =_0601A960 ldr r2, [r1, #1356] ; 0x54c cmp r2, #0 beq _06000190 mov ip, r4 b _06000188 _06000158: mov r3, ip, lsl #4 add r1, r2, ip, lsl #4 ldr r1, [r1, #208] ; 0xd0 ands r1, r1, #32768 ; 0x8000 beq _06000184 add r2, r2, #208 ; 0xd0 add r4, r2, r3 ldr r1, [r2, r3] bic r1, r1, #32768 ; 0x8000 str r1, [r2, r3] b _06000190 _06000184: add ip, ip, #1 _06000188: cmp ip, #32 blt _06000158 _06000190: bl FUN_060001AC mov r0, r4 ldmia sp!, {r4, lr} bx lr _060001A0: .word _0601A960 arm_func_start FUN_060001A4 FUN_060001A4: ; 0x060001A4 ldr pc, _060001A8 ; =OS_DisableInterrupts _060001A8: .word OS_DisableInterrupts arm_func_start FUN_060001AC FUN_060001AC: ; 0x060001AC ldr pc, _060001B0 ; =OS_RestoreInterrupts _060001B0: .word OS_RestoreInterrupts arm_func_start FUN_060001B4 FUN_060001B4: ; 0x060001B4 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 bl FUN_060001E8 strh r6, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start FUN_060001E8 FUN_060001E8: ; 0x060001E8 ldr pc, _060001EC ; =WMSP_GetBuffer4Callback2Wm9 _060001EC: .word WMSP_GetBuffer4Callback2Wm9 arm_func_start FUN_060001F0 FUN_060001F0: ; 0x060001F0 ldr pc, _060001F4 ; =WMSP_ReturnResult2Wm9 _060001F4: .word WMSP_ReturnResult2Wm9 arm_func_start WMSP_GetIndicateThread WMSP_GetIndicateThread: ; 0x060001F8 ldr r0, _06000200 ; =_0380B808 bx lr _06000200: .word _0380B808 arm_func_start WMSP_GetRequestThread WMSP_GetRequestThread: ; 0x06000204 ldr r0, _0600020C ; =_0380B764 bx lr _0600020C: .word _0380B764 arm_func_start WMSP_SetThreadPriorityHigh WMSP_SetThreadPriorityHigh: ; 0x06000210 stmdb sp!, {r4, lr} bl FUN_060001A4 mov r4, r0 bl FUN_06000270 ldr r0, _06000264 ; =_0380B808 ldr r1, _06000268 ; =_0601A960 ldr r1, [r1, #1400] ; 0x578 bl FUN_06000278 bl WL_GetThreadStruct ldr r1, _06000268 ; =_0601A960 ldr r1, [r1, #1404] ; 0x57c bl FUN_06000278 ldr r0, _0600026C ; =_0380B764 ldr r1, _06000268 ; =_0601A960 ldr r1, [r1, #1408] ; 0x580 bl FUN_06000278 bl FUN_06000280 mov r0, r4 bl FUN_060001AC ldmia sp!, {r4, lr} bx lr _06000264: .word _0380B808 _06000268: .word _0601A960 _0600026C: .word _0380B764 arm_func_start FUN_06000270 FUN_06000270: ; 0x06000270 ldr pc, _06000274 ; =OS_DisableScheduler _06000274: .word OS_DisableScheduler arm_func_start FUN_06000278 FUN_06000278: ; 0x06000278 ldr pc, _0600027C ; =OS_SetThreadPriority _0600027C: .word OS_SetThreadPriority arm_func_start FUN_06000280 FUN_06000280: ; 0x06000280 ldr pc, _06000284 ; =OS_EnableScheduler _06000284: .word OS_EnableScheduler arm_func_start WMSP_SetThreadPriorityLow WMSP_SetThreadPriorityLow: ; 0x06000288 stmdb sp!, {r4, lr} bl FUN_060001A4 mov r4, r0 bl FUN_06000270 ldr r0, _060002DC ; =_0380B764 ldr r1, _060002E0 ; =_0601A960 ldr r1, [r1, #1420] ; 0x58c bl FUN_06000278 bl WL_GetThreadStruct ldr r1, _060002E0 ; =_0601A960 ldr r1, [r1, #1416] ; 0x588 bl FUN_06000278 ldr r0, _060002E4 ; =_0380B808 ldr r1, _060002E0 ; =_0601A960 ldr r1, [r1, #1412] ; 0x584 bl FUN_06000278 bl FUN_06000280 mov r0, r4 bl FUN_060001AC ldmia sp!, {r4, lr} bx lr _060002DC: .word _0380B764 _060002E0: .word _0601A960 _060002E4: .word _0380B808 arm_func_start WMSP_GetLinkLevel WMSP_GetLinkLevel: ; 0x060002E8 ldr r1, _0600034C ; =_0601A960 ldr r1, [r1, #1356] ; 0x54c ldrb r1, [r1, #83] ; 0x53 cmp r1, #8 bne _06000324 cmp r0, #22 movcc r0, #0 bxcc lr cmp r0, #28 movcc r0, #1 bxcc lr cmp r0, #34 ; 0x22 movcc r0, #2 movcs r0, #3 bx lr _06000324: cmp r0, #8 movcc r0, #0 bxcc lr cmp r0, #14 movcc r0, #1 bxcc lr cmp r0, #20 movcc r0, #2 movcs r0, #3 bx lr _0600034C: .word _0601A960 arm_func_start WMSP_GetAverageLinkLevel WMSP_GetAverageLinkLevel: ; 0x06000350 mov r2, #0 mov r3, r2 ldr r1, _06000384 ; =wmspW _0600035C: add r0, r1, r3 add r0, r0, #4096 ; 0x1000 ldrb r0, [r0, #1364] ; 0x554 add r2, r2, r0 add r3, r3, #1 cmp r3, #32 blt _0600035C mov r0, r2, lsr #5 ldr ip, _06000388 ; =WMSP_GetLinkLevel bx ip _06000384: .word wmspW _06000388: .word WMSP_GetLinkLevel arm_func_start WMSP_FillRssiIntoList WMSP_FillRssiIntoList: ; 0x0600038C mov r3, #0 ldr r2, _060003BC ; =wmspW _06000394: add r1, r2, r3 add r1, r1, #4096 ; 0x1000 strb r0, [r1, #1364] ; 0x554 add r3, r3, #1 cmp r3, #32 blt _06000394 mov r1, #0 ldr r0, _060003C0 ; =_0601A960 str r1, [r0, #1396] ; 0x574 bx lr _060003BC: .word wmspW _060003C0: .word _0601A960 arm_func_start WMSP_AddRssiToList WMSP_AddRssiToList: ; 0x060003C4 ldr r1, _060003FC ; =_0601A960 ldr r3, [r1, #1396] ; 0x574 ldr r2, _06000400 ; =_0601AEB4 strb r0, [r2, r3] ldr r2, [r1, #1396] ; 0x574 add r2, r2, #1 and r2, r2, #31 str r2, [r1, #1396] ; 0x574 ldr r2, _06000404 ; =0x027FFF98 ldrh r1, [r2] eor r0, r0, r1, lsl #1 eor r0, r0, r0, lsr #16 strh r0, [r2] bx lr _060003FC: .word _0601A960 _06000400: .word _0601AEB4 _06000404: .word 0x027FFF98 arm_func_start WMSP_SetAllParams WMSP_SetAllParams: ; 0x06000408 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0600054C ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r0, r4, #224 ; 0xe0 add r1, r5, #16 mov r2, #6 bl FUN_06000554 mov r0, #7 strh r0, [r5, #22] add r0, r4, #256 ; 0x100 ldrh r1, [r0, #244] ; 0xf4 strh r1, [r5, #24] ldrh r1, [r0, #236] ; 0xec strh r1, [r5, #30] ldrh r1, [r4, #230] ; 0xe6 strh r1, [r5, #28] ldr r1, [r4, #408] ; 0x198 cmp r1, #0 bne _06000480 mov r0, #0 strh r0, [r5, #32] strh r0, [r5, #34] ; 0x22 add r1, r5, #36 ; 0x24 mov r2, #80 ; 0x50 bl FUN_0600055C mov r0, #0 strh r0, [r5, #158] ; 0x9e b _060004A8 _06000480: ldrh r0, [r0, #150] ; 0x96 strh r0, [r5, #32] ldrh r0, [r4, #196] ; 0xc4 strh r0, [r5, #34] ; 0x22 add r0, r4, #412 ; 0x19c add r1, r5, #36 ; 0x24 mov r2, #80 ; 0x50 bl FUN_06000554 mov r0, #1 strh r0, [r5, #158] ; 0x9e _060004A8: mov r0, #1 strh r0, [r5, #116] ; 0x74 strh r0, [r5, #118] ; 0x76 ldrh r0, [r4, #230] ; 0xe6 cmp r0, #1 moveq r0, #0 streqh r0, [r5, #120] ; 0x78 movne r0, #16 strneh r0, [r5, #120] ; 0x78 mov r0, #10 strh r0, [r5, #122] ; 0x7a cmp r6, #38 ; 0x26 bne _060004F0 mov r0, #0 add r1, r5, #124 ; 0x7c mov r2, #32 bl FUN_0600055C b _06000510 _060004F0: mov r0, #0 add r1, r5, #124 ; 0x7c mov r2, #8 bl FUN_0600055C ldr r0, _06000550 ; =0x0000FFFF add r1, r5, #132 ; 0x84 mov r2, #24 bl FUN_0600055C _06000510: add r0, r4, #256 ; 0x100 ldrh r0, [r0, #238] ; 0xee strh r0, [r5, #156] ; 0x9c mov r0, r5 bl WMSP_WL_ParamSetAll ldrh r2, [r0, #4] cmp r2, #0 moveq r0, #1 beq _06000544 mov r0, r6 mov r1, #512 ; 0x200 bl FUN_060001B4 mov r0, #0 _06000544: ldmia sp!, {r4, r5, r6, lr} bx lr _0600054C: .word _0601A960 _06000550: .word 0x0000FFFF arm_func_start FUN_06000554 FUN_06000554: ; 0x06000554 ldr pc, _06000558 ; =MI_CpuCopy8 _06000558: .word MI_CpuCopy8 arm_func_start FUN_0600055C FUN_0600055C: ; 0x0600055C ldr pc, _06000560 ; =MIi_CpuClear16 _06000560: .word MIi_CpuClear16 arm_func_start WMSP_CopyParentParam WMSP_CopyParentParam: ; 0x06000564 stmfd sp!, {lr} sub sp, sp, #4 mov r2, r0 ldr r0, [r1, #8] str r0, [r2, #4] ldrh r0, [r1, #12] strh r0, [r2, #8] ldrh r0, [r1, #18] cmp r0, #0 movne r3, #2 moveq r3, #0 ldrh r0, [r1, #14] cmp r0, #0 movne ip, #1 moveq ip, #0 ldrh r0, [r1, #20] cmp r0, #0 movne lr, #4 moveq lr, #0 orr r0, ip, r3 orr r0, lr, r0 strb r0, [r2, #11] ldrh r0, [r1, #4] strb r0, [r2, #10] mov r0, #1 strh r0, [r2] strb r0, [r2, #2] mov r0, #0 strb r0, [r2, #3] ldrh r0, [r1, #52] ; 0x34 strh r0, [r2, #12] ldrh r0, [r1, #54] ; 0x36 strh r0, [r2, #14] ldrb r3, [r2, #10] cmp r3, #0 beq _06000608 ldr r0, [r1] add r1, r2, #16 add r2, r3, #1 bic r2, r2, #1 bl FUN_06000554 _06000608: add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start WMSP_CheckMacAddress WMSP_CheckMacAddress: ; 0x06000614 ldr r1, _0600068C ; =_0601A960 ldr r1, [r1, #1360] ; 0x550 add r3, r1, #224 ; 0xe0 ldrb r2, [r0] ldrb r1, [r1, #224] ; 0xe0 cmp r2, r1 bne _06000684 ldrb r2, [r0, #1] ldrb r1, [r3, #1] cmp r2, r1 bne _06000684 ldrb r2, [r0, #2] ldrb r1, [r3, #2] cmp r2, r1 bne _06000684 ldrb r2, [r0, #3] ldrb r1, [r3, #3] cmp r2, r1 bne _06000684 ldrb r2, [r0, #4] ldrb r1, [r3, #4] cmp r2, r1 bne _06000684 ldrb r1, [r0, #5] ldrb r0, [r3, #5] cmp r1, r0 moveq r0, #1 bxeq lr _06000684: mov r0, #0 bx lr _0600068C: .word _0601A960 arm_func_start FUN_06000690 FUN_06000690: ; 0x06000690 stmdb sp!, {r4, lr} mov r4, r1 cmp r2, #0 bne _060006E8 ldr r0, _060006F0 ; =_060199E8 mov r2, #0 bl FUN_060006F8 cmp r0, #0 bne _060006E8 ldr r0, _060006F4 ; =_0601A960 ldr r0, [r0, #1356] ; 0x54c cmp r0, #0 beq _060006E8 bl FUN_060001E8 ldrh r1, [r4] strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #4] strh r1, [r0, #6] bl FUN_060001F0 _060006E8: ldmia sp!, {r4, lr} bx lr _060006F0: .word _060199E8 _060006F4: .word _0601A960 arm_func_start FUN_060006F8 FUN_060006F8: ; 0x060006F8 ldr pc, _060006FC ; =OS_SendMessage _060006FC: .word OS_SendMessage arm_func_start WMSP_WlRequest WMSP_WlRequest: ; 0x06000700 stmfd sp!, {lr} sub sp, sp, #4 mov r1, r0 ldr r0, _06000778 ; =wmspW mov r2, #1 bl FUN_060006F8 ldr r0, _0600077C ; =_060199B8 add r1, sp, #0 mov r2, #1 bl FUN_06000780 ldr r1, [sp] ldrh r0, [r1, #14] add r0, r1, r0, lsl #1 ldrh r0, [r0, #20] cmp r0, #14 bne _06000768 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #19 strh r1, [r0, #2] mov r1, #24 strh r1, [r0, #4] bl FUN_060001F0 bl FUN_06000788 bl FUN_06000790 _06000768: ldr r0, [sp] add sp, sp, #4 ldmfd sp!, {lr} bx lr _06000778: .word wmspW _0600077C: .word _060199B8 arm_func_start FUN_06000780 FUN_06000780: ; 0x06000780 ldr pc, _06000784 ; =OS_ReceiveMessage _06000784: .word OS_ReceiveMessage arm_func_start FUN_06000788 FUN_06000788: ; 0x06000788 ldr pc, _0600078C ; =SND_BeginSleep _0600078C: .word SND_BeginSleep arm_func_start FUN_06000790 FUN_06000790: ; 0x06000790 ldr pc, _06000794 ; =OS_Terminate _06000794: .word OS_Terminate arm_func_start WM_sp_init WM_sp_init: ; 0x06000798 stmdb sp!, {r4, r5, lr} sub sp, sp, #12 mov r5, r0 mov r4, r1 ldr r1, [r4] ldr r0, _06000924 ; =_0601A960 str r1, [r0, #1344] ; 0x540 ldr r1, [r5, #36] ; 0x24 str r1, [r0, #1348] ; 0x544 ldr r1, [r5, #40] ; 0x28 str r1, [r0, #1352] ; 0x548 mov r1, #0 str r1, [r0, #1356] ; 0x54c str r1, [r0, #1360] ; 0x550 ldr r0, _06000928 ; =wmspW ldr r1, _0600092C ; =_06019980 mov r2, #2 bl FUN_06000964 ldr r0, _06000930 ; =_06019988 ldr r1, _06000934 ; =_060199A8 mov r2, #4 bl FUN_06000964 ldr r0, _06000938 ; =_060199B8 ldr r1, _0600093C ; =_060199D8 mov r2, #4 bl FUN_06000964 ldr r0, _06000940 ; =_060199E8 ldr r1, _06000944 ; =_06019A08 mov r2, #32 bl FUN_06000964 ldr r0, _06000928 ; =wmspW str r0, [r5, #16] ldr r0, _06000930 ; =_06019988 str r0, [r5, #20] ldr r1, [r4, #8] ldr r0, _06000924 ; =_0601A960 str r1, [r0, #1400] ; 0x578 ldr r1, [r4, #24] str r1, [r0, #1404] ; 0x57c ldr r1, [r4, #16] str r1, [r0, #1408] ; 0x580 ldr r1, [r4, #4] str r1, [r0, #1412] ; 0x584 ldr r1, [r4, #20] str r1, [r0, #1416] ; 0x588 ldr r1, [r4, #12] str r1, [r0, #1420] ; 0x58c ldr r0, _06000948 ; =_0601AE88 bl FUN_0600096C mov r0, #1024 ; 0x400 str r0, [sp] ldr r0, [r4, #4] str r0, [sp, #4] ldr r0, _0600094C ; =_0380B808 ldr r1, _06000950 ; =WMSP_IndicateThread mov r2, #0 ldr r3, _06000948 ; =_0601AE88 bl FUN_06000974 ldr r0, _0600094C ; =_0380B808 bl FUN_0600097C mov r0, #4096 ; 0x1000 str r0, [sp] ldr r0, [r4, #12] str r0, [sp, #4] ldr r0, _06000954 ; =_0380B764 ldr r1, _06000958 ; =WMSP_RequestThread mov r2, #0 ldr r3, _0600095C ; =_0601AA88 bl FUN_06000974 ldr r0, _06000954 ; =_0380B764 bl FUN_0600097C mov r3, #0 mov r2, r3 ldr r1, _06000928 ; =wmspW _060008C0: add r0, r1, r3 add r0, r0, #4096 ; 0x1000 strb r2, [r0, #1364] ; 0x554 add r3, r3, #1 cmp r3, #32 blt _060008C0 ldr r0, _06000924 ; =_0601A960 str r2, [r0, #1396] ; 0x574 bl FUN_06000984 cmp r0, #0 bne _060008F0 bl FUN_0600098C _060008F0: bl FUN_06000994 mov r0, #10 ldr r1, _06000960 ; =FUN_06000690 bl FUN_0600099C mov r0, #2 str r0, [r5, #24] ldr r0, [r4, #20] str r0, [r5, #12] mov r0, r5 bl WL_InitDriver add sp, sp, #12 ldmia sp!, {r4, r5, lr} bx lr _06000924: .word _0601A960 _06000928: .word wmspW _0600092C: .word _06019980 _06000930: .word _06019988 _06000934: .word _060199A8 _06000938: .word _060199B8 _0600093C: .word _060199D8 _06000940: .word _060199E8 _06000944: .word _06019A08 _06000948: .word _0601AE88 _0600094C: .word _0380B808 _06000950: .word WMSP_IndicateThread _06000954: .word _0380B764 _06000958: .word WMSP_RequestThread _0600095C: .word _0601AA88 _06000960: .word FUN_06000690 arm_func_start FUN_06000964 FUN_06000964: ; 0x06000964 ldr pc, _06000968 ; =OS_InitMessageQueue _06000968: .word OS_InitMessageQueue arm_func_start FUN_0600096C FUN_0600096C: ; 0x0600096C ldr pc, _06000970 ; =OS_InitMutex _06000970: .word OS_InitMutex arm_func_start FUN_06000974 FUN_06000974: ; 0x06000974 ldr pc, _06000978 ; =OS_CreateThread _06000978: .word OS_CreateThread arm_func_start FUN_0600097C FUN_0600097C: ; 0x0600097C ldr pc, _06000980 ; =OS_WakeupThreadDirect _06000980: .word OS_WakeupThreadDirect arm_func_start FUN_06000984 FUN_06000984: ; 0x06000984 ldr pc, _06000988 ; =OS_IsVAlarmAvailable _06000988: .word OS_IsVAlarmAvailable arm_func_start FUN_0600098C FUN_0600098C: ; 0x0600098C ldr pc, _06000990 ; =OS_InitVAlarm _06000990: .word OS_InitVAlarm arm_func_start FUN_06000994 FUN_06000994: ; 0x06000994 ldr pc, _06000998 ; =PXI_Init _06000998: .word PXI_Init arm_func_start FUN_0600099C FUN_0600099C: ; 0x0600099C ldr pc, _060009A0 ; =PXI_SetFifoRecvCallback _060009A0: .word PXI_SetFifoRecvCallback arm_func_start WMSP_CancelAllAlarms WMSP_CancelAllAlarms: ; 0x060009A4 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _060009C8 ; =_0380B8D8 bl FUN_060009D0 ldr r0, _060009CC ; =_0380B8AC bl FUN_060009D0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _060009C8: .word _0380B8D8 _060009CC: .word _0380B8AC arm_func_start FUN_060009D0 FUN_060009D0: ; 0x060009D0 ldr pc, _060009D4 ; =OS_CancelAlarm _060009D4: .word OS_CancelAlarm arm_func_start WMSP_InitAlarm WMSP_InitAlarm: ; 0x060009D8 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _060009FC ; =_0380B8D8 bl FUN_06000A04 ldr r0, _06000A00 ; =_0380B8AC bl FUN_06000A04 add sp, sp, #4 ldmfd sp!, {lr} bx lr _060009FC: .word _0380B8D8 _06000A00: .word _0380B8AC arm_func_start FUN_06000A04 FUN_06000A04: ; 0x06000A04 ldr pc, _06000A08 ; =OS_CreateAlarm _06000A08: .word OS_CreateAlarm arm_func_start FUN_06000A0C FUN_06000A0C: ; 0x06000A0C stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #19 strh r1, [r0, #4] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start FUN_06000A40 FUN_06000A40: ; 0x06000A40 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 mov r8, r0 ldr r0, _06000D00 ; =_0601A960 ldr r6, [r0, #1360] ; 0x550 ldrh r0, [r6] cmp r0, #7 beq _06000A68 cmp r0, #9 bne _06000BF4 _06000A68: add r0, r8, #16 add r1, sp, #0 mov r2, #6 bl FUN_06000554 mov r5, #0 mov r7, r5 mov r4, #1 mov r9, #6 b _06000B6C _06000A8C: bl FUN_060001A4 mov fp, r0 add ip, r6, #256 ; 0x100 ldrh r3, [ip, #130] ; 0x82 add r1, r7, #1 mov r0, r4, lsl r1 ands r0, r3, r0 beq _06000B60 mul r2, r7, r9 add r0, r6, r2 ldrb lr, [sp] ldrb sl, [r0, #296] ; 0x128 cmp lr, sl bne _06000B60 ldrb lr, [sp, #1] ldrb sl, [r0, #297] ; 0x129 cmp lr, sl bne _06000B60 ldrb lr, [sp, #2] ldrb sl, [r0, #298] ; 0x12a cmp lr, sl bne _06000B60 ldrb lr, [sp, #3] ldrb sl, [r0, #299] ; 0x12b cmp lr, sl bne _06000B60 ldrb sl, [sp, #4] ldrb lr, [r0, #300] ; 0x12c cmp sl, lr bne _06000B60 ldrb sl, [sp, #5] ldrb r0, [r0, #301] ; 0x12d cmp sl, r0 bne _06000B60 mov r0, r1, lsl #16 mov r5, r0, lsr #16 mvn r1, r4, lsl r5 and r0, r3, r1 strh r0, [ip, #130] ; 0x82 ldrh r0, [r6, #134] ; 0x86 and r0, r0, r1 strh r0, [r6, #134] ; 0x86 mov r1, #0 add r0, r6, r5, lsl #3 str r1, [r0, #1848] ; 0x738 str r1, [r0, #1852] ; 0x73c add r0, r6, #296 ; 0x128 add r0, r0, r2 mov r2, #6 bl FUN_06000D08 mov r0, fp bl FUN_060001AC b _06000B74 _06000B60: mov r0, fp bl FUN_060001AC add r7, r7, #1 _06000B6C: cmp r7, #15 blt _06000A8C _06000B74: cmp r5, #0 beq _06000CF4 bl FUN_060001E8 mov r4, r0 mov r0, #8 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] mov r0, #9 strh r0, [r4, #8] ldrh r0, [r8, #22] strh r0, [r4, #18] strh r5, [r4, #16] add r0, r8, #16 add r1, r4, #10 mov r2, #6 bl FUN_06000554 ldrh r0, [r6, #48] ; 0x30 strh r0, [r4, #44] ; 0x2c ldrh r0, [r6, #50] ; 0x32 strh r0, [r4, #46] ; 0x2e mov r0, r4 bl FUN_060001F0 ldr r0, [r6, #12] cmp r0, #1 bne _06000CF4 mov r0, #1 mov r0, r0, lsl r5 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_CleanSendQueue b _06000CF4 _06000BF4: mov r5, #0 bl FUN_060001A4 mov r4, r0 add r1, r6, #256 ; 0x100 ldrh r1, [r1, #130] ; 0x82 cmp r1, #0 bne _06000C18 bl FUN_060001AC b _06000CF4 _06000C18: ldr r0, [r6, #12] cmp r0, #1 bne _06000C38 mov r0, r5 str r0, [r6, #12] mov r5, #1 bl WMSP_CancelVAlarm bl WMSP_SetThreadPriorityLow _06000C38: mov r1, #0 add r0, r6, #256 ; 0x100 strh r1, [r0, #130] ; 0x82 strh r1, [r6, #134] ; 0x86 str r1, [r6, #20] str r1, [r6, #16] str r1, [r6, #28] str r1, [r6, #408] ; 0x198 strh r1, [r0, #150] ; 0x96 add r0, r6, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000D08 bl WMSP_ResetSizeVars mov r0, #0 strh r0, [r6, #194] ; 0xc2 mov r0, #3 strh r0, [r6] mov r0, r4 bl FUN_060001AC bl FUN_060001E8 mov r4, r0 mov r0, #12 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] mov r0, #9 strh r0, [r4, #8] ldrh r0, [r8, #22] strh r0, [r4, #12] add r0, r6, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 strh r0, [r4, #10] ldr r0, _06000D04 ; =0x0000018A add r0, r6, r0 add r1, r4, #16 mov r2, #6 bl FUN_06000554 ldrh r0, [r6, #48] ; 0x30 strh r0, [r4, #22] ldrh r0, [r6, #50] ; 0x32 strh r0, [r4, #24] mov r0, r4 bl FUN_060001F0 cmp r5, #0 beq _06000CF4 mov r0, #1 bl WMSP_CleanSendQueue _06000CF4: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06000D00: .word _0601A960 _06000D04: .word 0x0000018A arm_func_start FUN_06000D08 FUN_06000D08: ; 0x06000D08 ldr pc, _06000D0C ; =MI_CpuFill8 _06000D0C: .word MI_CpuFill8 arm_func_start FUN_06000D10 FUN_06000D10: ; 0x06000D10 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _06000E90 ; =_0601A960 ldr r5, [r0, #1360] ; 0x550 ldrh r6, [r7, #22] cmp r6, #0 beq _06000E84 cmp r6, #16 bcs _06000E84 ldrh r0, [r5, #246] ; 0xf6 cmp r0, #0 bne _06000DB0 bl WMSP_GetInternalRequestBuf movs r4, r0 moveq r0, #0 beq _06000D7C mov r0, #34 ; 0x22 str r0, [r4] add r0, r7, #16 add r1, r4, #4 mov r2, #6 bl FUN_06000554 ldr r0, _06000E94 ; =_060199E8 mov r1, r4 mov r2, #0 bl FUN_060006F8 _06000D7C: cmp r0, #0 bne _06000E84 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #34 ; 0x22 strh r1, [r0, #6] bl FUN_060001F0 b _06000E84 _06000DB0: bl FUN_060001A4 mov r4, r0 mov r2, #1 add r0, r5, #256 ; 0x100 ldrh r1, [r0, #130] ; 0x82 orr r1, r1, r2, lsl r6 strh r1, [r0, #130] ; 0x82 ldrh r1, [r5, #134] ; 0x86 mvn r0, r2, lsl r6 and r0, r1, r0 strh r0, [r5, #134] ; 0x86 bl FUN_06000E98 orr r1, r1, #0 orr r2, r0, #1 add r0, r5, r6, lsl #3 str r2, [r0, #1848] ; 0x738 str r1, [r0, #1852] ; 0x73c add r0, r7, #16 add r1, r5, #296 ; 0x128 sub r3, r6, #1 mov r2, #6 mla r1, r3, r2, r1 bl FUN_06000554 mov r0, r4 bl FUN_060001AC mov r0, #1 add r1, r5, #504 ; 0x1f8 add r1, r1, r6, lsl #4 mov r2, #16 bl FUN_0600055C bl FUN_060001E8 mov r4, r0 mov r0, #8 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] mov r0, #7 strh r0, [r4, #8] add r0, r7, #16 add r1, r4, #10 mov r2, #6 bl FUN_06000554 strh r6, [r4, #16] add r0, r7, #34 ; 0x22 add r1, r4, #20 mov r2, #24 bl FUN_06000EA0 ldrh r0, [r5, #48] ; 0x30 strh r0, [r4, #44] ; 0x2c ldrh r0, [r5, #50] ; 0x32 strh r0, [r4, #46] ; 0x2e mov r0, r4 bl FUN_060001F0 _06000E84: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06000E90: .word _0601A960 _06000E94: .word _060199E8 arm_func_start FUN_06000E98 FUN_06000E98: ; 0x06000E98 ldr pc, _06000E9C ; =OS_GetTick _06000E9C: .word OS_GetTick arm_func_start FUN_06000EA0 FUN_06000EA0: ; 0x06000EA0 ldr pc, _06000EA4 ; =MIi_CpuCopy16 _06000EA4: .word MIi_CpuCopy16 arm_func_start FUN_06000EA8 FUN_06000EA8: ; 0x06000EA8 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #18 strh r1, [r0, #4] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start FUN_06000EDC FUN_06000EDC: ; 0x06000EDC stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #17 strh r1, [r0, #4] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start FUN_06000F10 FUN_06000F10: ; 0x06000F10 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _06001034 ; =_0601A960 ldr r5, [r1, #1360] ; 0x550 ldrh r1, [r5, #154] ; 0x9a cmp r1, #1 bne _06000F94 ldrh r0, [r0, #16] cmp r0, #32 bne _06000F94 bl FUN_060001A4 mov r4, r0 ldr r0, _06001038 ; =_0380B8AC bl FUN_060009D0 mov r0, #0 strh r0, [r5, #132] ; 0x84 mov r0, r4 bl FUN_060001AC mov r1, #0 strh r1, [r5, #138] ; 0x8a mov r0, #1 bl WMSP_FlushSendQueue bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #23 strh r1, [r0, #4] mov r1, #1 strh r1, [r0, #6] bl FUN_060001F0 b _06001028 _06000F94: bl WMSP_GetInternalRequestBuf movs r1, r0 moveq r0, #0 beq _06000FF8 mov r0, #37 ; 0x25 str r0, [r1] ldr r0, _0600103C ; =0x00008003 str r0, [r1, #8] ldrh r0, [r5] cmp r0, #9 beq _06000FC8 cmp r0, #7 bne _06000FD4 _06000FC8: ldr r0, _06001040 ; =0x00007FFE str r0, [r1, #4] b _06000FEC _06000FD4: cmp r0, #10 beq _06000FE4 cmp r0, #8 bne _06000FEC _06000FE4: mov r0, #1 str r0, [r1, #4] _06000FEC: ldr r0, _06001044 ; =_060199E8 mov r2, #0 bl FUN_060006F8 _06000FF8: cmp r0, #0 bne _06001028 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #37 ; 0x25 strh r1, [r0, #6] bl FUN_060001F0 _06001028: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06001034: .word _0601A960 _06001038: .word _0380B8AC _0600103C: .word 0x00008003 _06001040: .word 0x00007FFE _06001044: .word _060199E8 arm_func_start FUN_06001048 FUN_06001048: ; 0x06001048 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _06001138 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, [r4, #16] cmp r0, #0 beq _0600112C ldrb r1, [r5, #31] ands r0, r1, #2 movne r0, r1, asr #2 andne r0, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq r0, r0, #255 ; 0xff bl WMSP_AddRssiToList bl WMSP_GetAverageLinkLevel strh r0, [r4, #188] ; 0xbc add r5, r5, #16 add r0, r5, #30 bl WMSP_CheckMacAddress cmp r0, #1 beq _0600112C ldrh r1, [r5, #6] ldr r0, _0600113C ; =0x000005E4 cmp r1, r0 bhi _0600112C ldrh r0, [r4, #174] ; 0xae eor r0, r0, #1 strh r0, [r4, #174] ; 0xae ldrh r0, [r4, #174] ; 0xae add r0, r4, r0, lsl #2 ldr r4, [r0, #176] ; 0xb0 mov r0, r5 mov r1, r4 ldrh r2, [r5, #6] add r2, r2, #44 ; 0x2c add r2, r2, #1 bic r2, r2, #1 bl FUN_06000554 add r0, r5, #24 add r1, r4, #24 mov r2, #6 bl FUN_06000554 add r0, r5, #30 add r1, r4, #30 mov r2, #6 bl FUN_06000554 bl FUN_060001E8 mov r1, #17 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #15 strh r1, [r0, #4] str r4, [r0, #8] bl FUN_060001F0 _0600112C: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06001138: .word _0601A960 _0600113C: .word 0x000005E4 arm_func_start FUN_06001140 FUN_06001140: ; 0x06001140 stmdb sp!, {r4, lr} bl WMSP_GetInternalRequestBuf movs r1, r0 ldr r4, _060011C8 ; =wmspW ldr r0, _060011CC ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 mov r2, #0 strh r2, [r0, #94] ; 0x5e strh r2, [r0, #96] ; 0x60 strh r2, [r0, #136] ; 0x88 beq _06001180 mov r0, #44 ; 0x2c str r0, [r1] add r0, r4, #136 ; 0x88 bl FUN_060006F8 mov r2, r0 _06001180: cmp r2, #0 bne _060011C0 add r0, r4, #4096 ; 0x1000 ldr r0, [r0, #1356] ; 0x54c cmp r0, #0 beq _060011C0 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #44 ; 0x2c strh r1, [r0, #6] bl FUN_060001F0 _060011C0: ldmia sp!, {r4, lr} bx lr _060011C8: .word wmspW _060011CC: .word _0601A960 arm_func_start FUN_060011D0 FUN_060011D0: ; 0x060011D0 ldr ip, _060011D8 ; =FUN_06001140 bx ip _060011D8: .word FUN_06001140 arm_func_start FUN_060011DC FUN_060011DC: ; 0x060011DC stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 add r9, r0, #16 ldr r1, _06001434 ; =_0601A960 ldr r5, [r1, #1360] ; 0x550 mov r7, #0 ldr r1, [r5, #12] cmp r1, #0 beq _06001428 ldrh r0, [r0, #14] cmp r0, #0 bne _06001258 mov r8, #1 ldr r2, _06001438 ; =0x048080F8 ldrh r1, [r2] ldr r0, _0600143C ; =0x048080FA ldrh r3, [r0] ldrh r2, [r2] cmp r1, r2 ldrhih r3, [r0] mov r0, r3, lsl #12 orr r0, r0, r2, asr #4 mov r0, r0, lsl #16 mov r1, r0, lsr #16 ldrh r0, [r5, #130] ; 0x82 sub r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, asr #16 cmp r0, #0 bgt _0600125C b _06001428 _06001258: mov r8, r7 _0600125C: bl FUN_060001A4 mov r4, r0 ldrh r1, [r5, #132] ; 0x84 cmp r1, #0 bne _06001278 bl FUN_060001AC b _06001428 _06001278: mov r0, #0 strh r0, [r5, #132] ; 0x84 ldrh r6, [r5, #144] ; 0x90 ldr r0, _06001440 ; =_0380B8AC bl FUN_060009D0 mov r0, r4 bl FUN_060001AC mov r0, #1 ldrh r3, [r5, #140] ; 0x8c cmp r3, #0 beq _060012C8 cmp r8, #0 bne _060012C4 ldrh r2, [r9, #46] ; 0x2e add r1, r5, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 mov r1, r0, lsl r1 ands r1, r2, r1 bne _060012C8 _060012C4: mov r0, #0 _060012C8: cmp r3, #0 movne r1, #0 strneh r1, [r5, #140] ; 0x8c ldrh r1, [r5, #142] ; 0x8e cmp r1, #0 beq _06001304 mov r1, #0 strh r1, [r5, #142] ; 0x8e cmp r0, #0 movne r1, #1 mov r0, r8 mov r1, r1, lsl #16 mov r1, r1, lsr #16 bl WMSP_FlushSendQueue mov r7, r0 _06001304: cmp r6, #0 beq _06001428 bl FUN_060001E8 mov r4, r0 mov r0, #14 strh r0, [r4] cmp r8, #0 movne r0, #9 strneh r0, [r4, #2] bne _06001354 ldrh r2, [r9, #46] ; 0x2e mov r1, #1 add r0, r5, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 mov r0, r1, lsl r0 ands r0, r2, r0 movne r0, #15 strneh r0, [r4, #2] moveq r0, #0 streqh r0, [r4, #2] _06001354: mov r0, #13 strh r0, [r4, #4] mov r0, #0 str r0, [r4, #8] cmp r8, #0 bne _060013B4 ldrh r0, [r9, #12] strh r0, [r4, #12] ldrh r0, [r9, #14] strh r0, [r4, #14] add r0, r9, #24 add r1, r4, #16 mov r2, #6 bl FUN_06000554 add r0, r9, #30 add r1, r4, #22 mov r2, #6 bl FUN_06000554 ldrh r0, [r9, #42] ; 0x2a strh r0, [r4, #28] ldrh r0, [r9, #44] ; 0x2c strh r0, [r4, #30] ldrh r0, [r9, #46] ; 0x2e strh r0, [r4, #32] _060013B4: mov r0, r4 bl FUN_060001F0 cmp r6, #0 beq _06001428 cmp r7, #1 beq _060013D8 ldrh r0, [r5, #94] ; 0x5e cmp r0, #0 bne _06001414 _060013D8: ldrh r0, [r5, #70] ; 0x46 cmp r0, #0 beq _0600140C ldr r0, _06001444 ; =_0380B8D8 bl FUN_060009D0 mov r0, #0 str r0, [sp] ldr r0, _06001444 ; =_0380B8D8 ldr r1, [r5, #80] ; 0x50 ldr r2, [r5, #84] ; 0x54 ldr r3, _06001448 ; =FUN_060011D0 bl FUN_0600144C b _06001428 _0600140C: bl FUN_06001140 b _06001428 _06001414: mov r1, #0 strh r1, [r5, #94] ; 0x5e mov r0, #1 strh r0, [r5, #96] ; 0x60 strh r1, [r5, #136] ; 0x88 _06001428: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06001434: .word _0601A960 _06001438: .word 0x048080F8 _0600143C: .word 0x048080FA _06001440: .word _0380B8AC _06001444: .word _0380B8D8 _06001448: .word FUN_060011D0 arm_func_start FUN_0600144C FUN_0600144C: ; 0x0600144C ldr pc, _06001450 ; =OS_SetAlarm _06001450: .word OS_SetAlarm arm_func_start FUN_06001454 FUN_06001454: ; 0x06001454 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r5, _060014E4 ; =wmspW ldr r1, _060014E8 ; =_0601A960 ldr r0, [r1, #1348] ; 0x544 ldr r1, [r1, #1352] ; 0x548 mov r2, #64 ; 0x40 bl FUN_060014F4 mov r4, r0 ldr r0, _060014EC ; =0x00000185 strh r0, [r4, #12] mov r2, #0 strh r2, [r4, #14] ldr r0, _060014F0 ; =_06019988 mov r1, r4 bl FUN_060006F8 cmp r0, #0 bne _060014D8 mov r0, r4 bl FUN_06001F4C add r0, r5, #4096 ; 0x1000 ldr r0, [r0, #1356] ; 0x54c cmp r0, #0 beq _060014D8 bl FUN_060001E8 mov r2, #128 ; 0x80 strh r2, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] strh r2, [r0, #6] bl FUN_060001F0 _060014D8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060014E4: .word wmspW _060014E8: .word _0601A960 _060014EC: .word 0x00000185 _060014F0: .word _06019988 arm_func_start FUN_060014F4 FUN_060014F4: ; 0x060014F4 ldr pc, _060014F8 ; =OS_AllocFromHeap _060014F8: .word OS_AllocFromHeap arm_func_start FUN_060014FC FUN_060014FC: ; 0x060014FC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 ldr r0, _06001830 ; =_0601A960 ldr r5, [r0, #1360] ; 0x550 ldrb r1, [sl, #31] ands r0, r1, #2 movne r0, r1, asr #2 andne r1, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq r1, r0, #255 ; 0xff ldrh r0, [r5, #190] ; 0xbe cmp r0, r1 strhih r1, [r5, #190] ; 0xbe ldr r0, [r5, #12] cmp r0, #0 beq _06001824 ldrh r0, [r5, #96] ; 0x60 cmp r0, #1 moveq r0, #0 streqh r0, [r5, #96] ; 0x60 ldrh r6, [r5, #142] ; 0x8e ldrh r0, [r5, #112] ; 0x70 eor r0, r0, #1 strh r0, [r5, #112] ; 0x70 ldrh r0, [r5, #112] ; 0x70 add r0, r5, r0, lsl #2 ldr r8, [r0, #116] ; 0x74 ldrh r0, [sl, #22] add r2, r0, #48 ; 0x30 ldrh r0, [r5, #114] ; 0x72 cmp r0, r2 movcc r2, r0 add r0, sl, #16 mov r1, r8 bl FUN_06000554 bl FUN_060001A4 mov fp, r0 mov r7, #0 ldrh r0, [r5, #132] ; 0x84 cmp r0, #1 bne _060015B4 mov r7, #1 ldr r0, _06001834 ; =_0380B8AC bl FUN_060009D0 _060015B4: mov r9, #1 strh r9, [r5, #132] ; 0x84 ldrh r0, [r8, #10] strh r0, [r5, #130] ; 0x82 ldrh r4, [sl, #24] ands r0, r4, #8192 ; 0x2000 moveq r9, #0 strh r9, [r5, #144] ; 0x90 mov lr, #0 str lr, [sp] ldr r0, _06001834 ; =_0380B8AC ldrh r2, [r8, #10] ldrh r1, [r8, #12] sub r1, r2, r1 mov r1, r1, lsl #16 mov r1, r1, lsr #16 add r1, r1, #128 ; 0x80 mov r2, r1, lsl #4 mov r1, r2, asr #31 ldr r3, _06001838 ; =0x000082EA umull ip, r3, r2, r3 mla r3, r2, lr, r3 ldr r2, _06001838 ; =0x000082EA mla r3, r1, r2, r3 mov lr, r3, lsr #6 mov r1, ip, lsr #6 orr r1, r1, r3, lsl #26 mov r2, lr, lsr #10 mov r1, r1, lsr #10 orr r1, r1, lr, lsl #22 ldr r3, _0600183C ; =FUN_06001454 bl FUN_0600144C and r0, r4, #10240 ; 0x2800 cmp r0, #10240 ; 0x2800 moveq r1, #1 movne r1, #0 and r0, r4, #24576 ; 0x6000 cmp r0, #24576 ; 0x6000 moveq r2, #1 movne r2, #0 cmp r2, #0 movne r0, #0 strneh r0, [r5, #138] ; 0x8a cmp r1, #0 movne r0, #1 moveq r0, #0 strh r0, [r5, #142] ; 0x8e cmp r2, #0 movne r0, #1 moveq r0, #0 strh r0, [r5, #140] ; 0x8c cmp r9, #0 beq _060016C4 ldrh r0, [r8, #44] ; 0x2c sub r0, r0, #102 ; 0x66 mov r1, #4 bl FUN_06001840 subs r1, r0, #32 bmi _060016C4 ldrh r0, [r5, #54] ; 0x36 cmp r1, r0 movgt r1, r0 ldrh r0, [r5, #50] ; 0x32 cmp r1, r0 beq _060016C4 mov r0, r1, lsl #16 mov r0, r0, lsr #16 bl WMSP_SetChildSize _060016C4: mov r0, fp bl FUN_060001AC cmp r7, #0 beq _06001710 cmp r6, #1 bne _060016E8 mov r0, r7 mov r1, #0 bl WMSP_FlushSendQueue _060016E8: bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #9 strh r1, [r0, #2] mov r1, #13 strh r1, [r0, #4] mov r1, #0 str r1, [r0, #8] bl FUN_060001F0 _06001710: cmp r9, #0 bne _0600173C ldrh r0, [r8, #6] cmp r0, #2 bcc _06001824 ldrh r0, [r8, #48] ; 0x30 ands r0, r0, #32768 ; 0x8000 movne r0, #1 moveq r0, #0 strh r0, [r5, #94] ; 0x5e b _06001824 _0600173C: add r0, sl, #40 ; 0x28 add r1, r8, #24 mov r2, #6 bl FUN_06000554 add r0, sl, #46 ; 0x2e add r1, r8, #30 mov r2, #6 bl FUN_06000554 ldrh r0, [r8, #6] cmp r0, #2 bcc _060017CC sub r0, r0, #2 strh r0, [r8, #6] ldrh r0, [r8, #48] ; 0x30 ands r0, r0, #32768 ; 0x8000 movne r0, #1 moveq r0, #0 strh r0, [r5, #94] ; 0x5e bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #12 strh r1, [r0, #4] str r8, [r0, #8] bl FUN_060001F0 ldrh r3, [r8, #6] cmp r3, #0 beq _060017F8 str r8, [sp] mov r0, #0 ldrh r1, [r8, #48] ; 0x30 add r2, r8, #50 ; 0x32 bl WMSP_ParsePortPacket b _060017F8 _060017CC: mov r0, #0 strh r0, [r8, #6] strh r0, [r5, #94] ; 0x5e bl FUN_060001E8 mov r1, #14 strh r1, [r0] strh r1, [r0, #2] mov r1, #12 strh r1, [r0, #4] str r8, [r0, #8] bl FUN_060001F0 _060017F8: ldr r2, [r5, #1976] ; 0x7b8 ldr r1, [r5, #1980] ; 0x7bc mov r0, #0 cmp r1, r0 cmpeq r2, r0 beq _06001824 bl FUN_06000E98 orr r1, r1, #0 orr r0, r0, #1 str r0, [r5, #1848] ; 0x738 str r1, [r5, #1852] ; 0x73c _06001824: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06001830: .word _0601A960 _06001834: .word _0380B8AC _06001838: .word 0x000082EA _0600183C: .word FUN_06001454 arm_func_start FUN_06001840 FUN_06001840: ; 0x06001840 ldr pc, _06001844 ; =_s32_div_f _06001844: .word _s32_div_f arm_func_start FUN_06001848 FUN_06001848: ; 0x06001848 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _060018C4 ; =_0601A960 ldr lr, [r2, #1360] ; 0x550 ldrh r4, [lr, #190] ; 0xbe cmp r1, #0 bne _060018B8 ldrh r3, [r0, #20] cmp r3, #1 bcc _060018B8 mov r5, #0 add ip, r0, #26 b _060018AC _0600187C: ldrh r2, [r0, #22] mla r1, r2, r5, ip ldrb r2, [r1, #3] ands r1, r2, #2 movne r1, r2, asr #2 andne r1, r1, #255 ; 0xff moveq r1, r2, asr #2 addeq r1, r1, #25 andeq r1, r1, #255 ; 0xff cmp r1, r4 movcc r4, r1 add r5, r5, #1 _060018AC: cmp r5, r3 blt _0600187C strh r4, [lr, #190] ; 0xbe _060018B8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060018C4: .word _0601A960 arm_func_start FUN_060018C8 FUN_060018C8: ; 0x060018C8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl WMSP_GetInternalRequestBuf movs r1, r0 ldr r4, _0600194C ; =wmspW moveq r0, #0 beq _06001900 mov r0, #43 ; 0x2b str r0, [r1] str r5, [r1, #4] add r0, r4, #136 ; 0x88 mov r2, #0 bl FUN_060006F8 _06001900: cmp r0, #0 bne _06001940 add r0, r4, #4096 ; 0x1000 ldr r0, [r0, #1356] ; 0x54c cmp r0, #0 beq _06001940 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #43 ; 0x2b strh r1, [r0, #6] bl FUN_060001F0 _06001940: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600194C: .word wmspW arm_func_start FUN_06001950 FUN_06001950: ; 0x06001950 mov r0, r0, lsl #16 mov r0, r0, lsr #16 ldr ip, _06001960 ; =FUN_060018C8 bx ip _06001960: .word FUN_060018C8 arm_func_start WMSP_RequestResumeMP WMSP_RequestResumeMP: ; 0x06001964 stmdb sp!, {r4, lr} ldr r0, _060019DC ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl WMSP_GetInternalRequestBuf movs r1, r0 moveq r0, #0 beq _0600199C mov r0, #45 ; 0x2d str r0, [r1] ldrh r0, [r4, #104] ; 0x68 str r0, [r1, #4] ldr r0, _060019E0 ; =_060199E8 mov r2, #0 bl FUN_060006F8 _0600199C: cmp r0, #0 movne r0, #1 strneh r0, [r4, #102] ; 0x66 bne _060019D4 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #45 ; 0x2d strh r1, [r0, #6] bl FUN_060001F0 _060019D4: ldmia sp!, {r4, lr} bx lr _060019DC: .word _0601A960 _060019E0: .word _060199E8 arm_func_start FUN_060019E4 FUN_060019E4: ; 0x060019E4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #44 ; 0x2c mov sl, r0 ldr r0, _06001D34 ; =_0601A960 ldr r8, [r0, #1360] ; 0x550 mov r5, #0 ldr r0, [r8, #12] cmp r0, #0 beq _06001D28 ldrh r0, [sl, #18] cmp r0, #0 bne _06001A2C ldrh r1, [r8, #102] ; 0x66 cmp r1, #1 bne _06001A34 ldrh r0, [sl, #16] cmp r0, #0 beq _06001A34 _06001A2C: bl WMSP_RequestResumeMP b _06001D28 _06001A34: cmp r1, #0 movne r0, #0 strneh r0, [r8, #102] ; 0x66 ldrh r0, [r8, #112] ; 0x70 add r0, r8, r0, lsl #2 ldr r7, [r0, #116] ; 0x74 ldrh r1, [sl, #22] ldrh r0, [sl, #20] mul r0, r1, r0 add r2, r0, #10 ldrh r0, [r8, #114] ; 0x72 cmp r0, r2 movcc r2, r0 add r0, sl, #16 mov r1, r7 bl FUN_06000554 mov r0, sl ldrh r1, [r7] ldrh r2, [r8, #146] ; 0x92 bl FUN_06001848 bl FUN_06000E98 mov r9, #0 mov r2, #1 str r2, [sp, #16] orr r1, r1, #0 str r1, [sp, #8] orr r0, r0, #1 str r0, [sp, #4] add r6, r7, #10 ldrh fp, [r7] str r9, [sp, #20] mov r0, #37 ; 0x25 str r0, [sp, #24] mov r0, #128 ; 0x80 str r0, [sp, #28] mov r0, #8 str r0, [sp, #32] mov r0, #22 str r0, [sp, #36] ; 0x24 b _06001C3C _06001AD4: ldrh r4, [r6, #4] ldrh r1, [r6] cmp r4, #1 bcc _06001C28 cmp r4, #15 bhi _06001C28 cmp r1, #2 bcc _06001B50 ldr r0, _06001D38 ; =0x0000FFFF cmp r1, r0 beq _06001B50 sub r0, r1, #2 strh r0, [r6] ldrh r2, [r8, #134] ; 0x86 ldr r1, [sp, #16] orr r1, r2, r1, lsl r4 strh r1, [r8, #134] ; 0x86 add r2, r8, r4, lsl #3 ldr r1, [sp, #4] str r1, [r2, #1848] ; 0x738 ldr r1, [sp, #8] str r1, [r2, #1852] ; 0x73c mov r0, r0, lsl #16 movs r3, r0, lsr #16 beq _06001C28 str r7, [sp] mov r0, r4 ldrh r1, [r6, #8] add r2, r6, #10 bl WMSP_ParsePortPacket b _06001C28 _06001B50: cmp r1, #0 bne _06001C28 add r1, r8, r4, lsl #3 ldr r0, [r1, #1848] ; 0x738 ldr r3, [r1, #1852] ; 0x73c ldr r1, [sp, #16] mov r1, r1, lsl r4 str r1, [sp, #12] ldr r1, [sp, #16] orr fp, fp, r1, lsl r4 ldr r2, [r8, #1976] ; 0x7b8 ldr r1, [r8, #1980] ; 0x7bc mov ip, #0 cmp r1, ip cmpeq r2, ip beq _06001C28 cmp r3, ip cmpeq r0, ip beq _06001C28 ldr ip, [sp, #4] subs r0, ip, r0 ldr ip, [sp, #8] sbc r3, ip, r3 cmp r3, r1 cmpeq r0, r2 bls _06001C28 bl WMSP_GetInternalRequestBuf movs r1, r0 add r2, r8, r4, lsl #3 ldr r0, [sp, #20] str r0, [r2, #1848] ; 0x738 str r0, [r2, #1852] ; 0x73c beq _06001BF8 ldr r0, [sp, #24] str r0, [r1] ldr r0, [sp, #12] str r0, [r1, #4] ldr r0, _06001D3C ; =0x00008001 str r0, [r1, #8] ldr r0, _06001D40 ; =_060199E8 ldr r2, [sp, #20] bl FUN_060006F8 _06001BF8: cmp r0, #0 bne _06001C28 bl FUN_060001E8 ldr r1, [sp, #28] strh r1, [r0] ldr r1, [sp, #32] strh r1, [r0, #2] ldr r1, [sp, #36] ; 0x24 strh r1, [r0, #4] ldr r1, [sp, #24] strh r1, [r0, #6] bl FUN_060001F0 _06001C28: add r0, r9, #1 mov r0, r0, lsl #16 mov r9, r0, lsr #16 ldrh r0, [r7, #6] add r6, r6, r0 _06001C3C: ldrh r0, [r7, #4] cmp r9, r0 bcc _06001AD4 mov r0, #0 mov r1, fp, lsl #16 mov r1, r1, lsr #16 bl WMSP_FlushSendQueue ldrh r0, [r7] cmp r0, #0 movne r5, #1 bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #11 strh r1, [r0, #4] str r7, [r0, #8] bl FUN_060001F0 ldrh r0, [r8, #112] ; 0x70 eor r0, r0, #1 strh r0, [r8, #112] ; 0x70 bl FUN_060001A4 cmp r5, #0 ldreqsh r1, [r8, #98] ; 0x62 subeq r1, r1, #1 streqh r1, [r8, #98] ; 0x62 ldrsh r1, [r8, #100] ; 0x64 cmp r1, #0 subgt r1, r1, #1 strgth r1, [r8, #100] ; 0x64 ldrsh r1, [r8, #98] ; 0x62 cmp r1, #0 ble _06001CD4 ldrsh r1, [r8, #100] ; 0x64 cmp r1, #0 movgt r4, #1 bgt _06001CD8 _06001CD4: mov r4, #0 _06001CD8: bl FUN_060001AC cmp r4, #0 beq _06001D28 cmp r5, #1 ldreqh r4, [sl, #16] ldrne r4, _06001D38 ; =0x0000FFFF ldrh r0, [r8, #68] ; 0x44 cmp r0, #0 beq _06001D20 ldr r0, _06001D44 ; =_0380B8D8 bl FUN_060009D0 str r4, [sp] ldr r0, _06001D44 ; =_0380B8D8 ldr r1, [r8, #72] ; 0x48 ldr r2, [r8, #76] ; 0x4c ldr r3, _06001D48 ; =FUN_06001950 bl FUN_0600144C b _06001D28 _06001D20: mov r0, r4 bl FUN_060018C8 _06001D28: add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06001D34: .word _0601A960 _06001D38: .word 0x0000FFFF _06001D3C: .word 0x00008001 _06001D40: .word _060199E8 _06001D44: .word _0380B8D8 _06001D48: .word FUN_06001950 arm_func_start FUN_06001D4C FUN_06001D4C: ; 0x06001D4C stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06001D94 ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldrh r0, [r0, #194] ; 0xc2 cmp r0, #0 beq _06001D88 bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #8 strh r1, [r0, #8] bl FUN_060001F0 _06001D88: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06001D94: .word _0601A960 arm_func_start FUN_06001D98 FUN_06001D98: ; 0x06001D98 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _06001EEC ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r6, r7, #60 ; 0x3c ldrb r1, [r7, #31] ands r0, r1, #2 movne r0, r1, asr #2 andne r2, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq r2, r0, #255 ; 0xff ldr r1, _06001EF0 ; =0x027FFF98 ldrh r0, [r1] eor r0, r2, r0, lsl #1 eor r0, r0, r0, lsr #16 strh r0, [r1] ldrh r0, [r4] cmp r0, #8 beq _06001DF4 cmp r0, #10 bne _06001EE0 _06001DF4: ldrh r1, [r4, #186] ; 0xba ldrh r0, [r6, #8] cmp r1, r0 beq _06001E6C bl WMSP_GetInternalRequestBuf movs r1, r0 moveq r0, #0 beq _06001E38 mov r0, #37 ; 0x25 str r0, [r1] mov r0, #1 str r0, [r1, #4] ldr r0, _06001EF4 ; =0x00008002 str r0, [r1, #8] ldr r0, _06001EF8 ; =_060199E8 mov r2, #0 bl FUN_060006F8 _06001E38: cmp r0, #0 bne _06001EE0 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #37 ; 0x25 strh r1, [r0, #6] bl FUN_060001F0 b _06001EE0 _06001E6C: ldr r0, _06001EEC ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldrh r0, [r0, #194] ; 0xc2 cmp r0, #0 beq _06001EE0 bl FUN_060001E8 mov r5, r0 mov r0, #128 ; 0x80 strh r0, [r5] mov r0, #0 strh r0, [r5, #2] mov r0, #16 strh r0, [r5, #4] ldrh r0, [r6, #8] strh r0, [r5, #6] ldrh r0, [r4] strh r0, [r5, #8] ldrh r0, [r7, #22] strh r0, [r5, #10] ldrh r2, [r5, #10] cmp r2, #128 ; 0x80 bhi _06001ED8 mov r0, r6 add r1, r5, #12 add r2, r2, #1 bic r2, r2, #1 bl FUN_06000EA0 _06001ED8: mov r0, r5 bl FUN_060001F0 _06001EE0: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06001EEC: .word _0601A960 _06001EF0: .word 0x027FFF98 _06001EF4: .word 0x00008002 _06001EF8: .word _060199E8 arm_func_start FUN_06001EFC FUN_06001EFC: ; 0x06001EFC stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06001F44 ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldrh r0, [r0, #194] ; 0xc2 cmp r0, #0 beq _06001F38 bl FUN_060001E8 mov r1, #8 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #2 strh r1, [r0, #8] bl FUN_060001F0 _06001F38: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06001F44: .word _0601A960 arm_func_start FUN_06001F48 FUN_06001F48: ; 0x06001F48 bx lr arm_func_start FUN_06001F4C FUN_06001F4C: ; 0x06001F4C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 bl FUN_060001A4 mov r4, r0 ldr r1, _06001F88 ; =_0601A960 ldr r0, [r1, #1348] ; 0x544 ldr r1, [r1, #1352] ; 0x548 mov r2, r5 bl FUN_06001F8C mov r0, r4 bl FUN_060001AC add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06001F88: .word _0601A960 arm_func_start FUN_06001F8C FUN_06001F8C: ; 0x06001F8C ldr pc, _06001F90 ; =OS_FreeToHeap _06001F90: .word OS_FreeToHeap arm_func_start FUN_06001F94 FUN_06001F94: ; 0x06001F94 stmdb sp!, {r4, lr} mov r4, r0 ldr r1, _060020D0 ; =_0601A960 ldr r2, [r1, #1356] ; 0x54c cmp r2, #0 beq _060020C8 ldr r1, [r1, #1360] ; 0x550 ldrh r1, [r1] cmp r1, #1 beq _060020C8 ldrh r2, [r4, #12] ldr r1, _060020D4 ; =0x00000182 cmp r2, r1 bgt _0600201C cmp r2, r1 bge _06002098 cmp r2, #141 ; 0x8d bgt _06002010 subs r1, r2, #132 ; 0x84 addpl pc, pc, r1, lsl #2 b _060020B8 b _0600204C b _06002054 b _0600205C b _06002064 b _0600206C b _060020B8 b _060020B8 b _06002074 b _0600207C b _06002084 _06002010: cmp r2, #384 ; 0x180 beq _0600208C b _060020B8 _0600201C: ldr r1, _060020D8 ; =0x00000185 cmp r2, r1 bgt _0600203C cmp r2, r1 bge _060020A8 cmp r2, #388 ; 0x184 beq _060020A0 b _060020B8 _0600203C: ldr r1, _060020DC ; =0x00000186 cmp r2, r1 beq _060020B0 b _060020B8 _0600204C: bl FUN_06000A0C b _060020C0 _06002054: bl FUN_06000A40 b _060020C0 _0600205C: bl FUN_06000D10 b _060020C0 _06002064: bl FUN_06000EA8 b _060020C0 _0600206C: bl FUN_06000EDC b _060020C0 _06002074: bl FUN_06001D4C b _060020C0 _0600207C: bl FUN_06001EFC b _060020C0 _06002084: bl FUN_06001D98 b _060020C0 _0600208C: mov r0, r4 bl FUN_06001048 b _060020C0 _06002098: bl FUN_060014FC b _060020C0 _060020A0: bl FUN_060019E4 b _060020C0 _060020A8: bl FUN_060011DC b _060020C0 _060020B0: bl FUN_06000F10 b _060020C0 _060020B8: mov r0, r4 bl FUN_06001F48 _060020C0: mov r0, r4 bl FUN_06001F4C _060020C8: ldmia sp!, {r4, lr} bx lr _060020D0: .word _0601A960 _060020D4: .word 0x00000182 _060020D8: .word 0x00000185 _060020DC: .word 0x00000186 arm_func_start WMSP_IndicateThread WMSP_IndicateThread: ; 0x060020E0 stmdb sp!, {r4, r5, r6, r7, lr} arm_func_start FUN_060020E4 FUN_060020E4: ; 0x060020E4 sub sp, sp, #4 ldr r0, _06002178 ; =wmspW add r7, r0, #88 ; 0x58 mov r4, #1 add r6, r0, #40 ; 0x28 add r5, sp, #0 _060020FC: mov r0, r6 mov r1, r5 mov r2, r4 bl FUN_06000780 ldr r1, [sp] cmp r1, #0 bne _06002120 bl FUN_0600217C b _0600216C _06002120: ldrh r2, [r1, #12] and r0, r2, #255 ; 0xff mov r0, r0, lsl #16 mov r3, r0, lsr #16 and r0, r2, #65280 ; 0xff00 mov r0, r0, lsl #16 movs r0, r0, lsr #16 beq _06002148 cmp r0, #256 ; 0x100 bne _0600215C _06002148: ands r0, r3, #128 ; 0x80 beq _0600215C mov r0, r1 bl FUN_06001F94 b _060020FC _0600215C: mov r0, r7 mov r2, r4 bl FUN_060006F8 b _060020FC _0600216C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06002178: .word wmspW arm_func_start FUN_0600217C FUN_0600217C: ; 0x0600217C ldr pc, _06002180 ; =OS_ExitThread _06002180: .word OS_ExitThread arm_func_start FUN_06002184 FUN_06002184: ; 0x06002184 bx lr arm_func_start WMSP_RequestThread WMSP_RequestThread: ; 0x06002188 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} sub sp, sp, #8 ldr r1, _06002228 ; =wmspW ldr r0, _0600222C ; =_0601A960 ldr sl, [r0, #1360] ; 0x550 mov r6, #1 ldr r5, _06002230 ; =_06019268 mov r4, #0 add r8, r1, #136 ; 0x88 add r7, sp, #0 _060021B0: mov r0, r8 mov r1, r7 mov r2, r6 bl FUN_06000780 ldr r0, [sp] cmp r0, #0 bne _060021D4 bl FUN_0600217C b _0600221C _060021D4: ldrh r9, [r0] ands r0, r9, #32768 ; 0x8000 bicne r0, r9, #32768 ; 0x8000 movne r0, r0, lsl #16 movne r9, r0, lsr #16 cmp r9, #46 ; 0x2e bcs _0600220C str r6, [sl, #4] strh r9, [sl, #2] ldr r0, [sp] ldr r1, [r5, r9, lsl #2] mov lr, pc bx r1 str r4, [sl, #4] _0600220C: orr r1, r9, #32768 ; 0x8000 ldr r0, [sp] strh r1, [r0] b _060021B0 _0600221C: add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _06002228: .word wmspW _0600222C: .word _0601A960 _06002230: .word _06019268 arm_func_start FUN_06002234 FUN_06002234: ; 0x06002234 stmdb sp!, {r4, lr} mov r3, #0 strh r3, [r0] strh r3, [r0, #2] strh r3, [r0, #4] strh r3, [r0, #6] strh r3, [r0, #8] strh r3, [r0, #10] strh r1, [r0, #12] strh r3, [r0, #14] ldrh r1, [r0, #14] add r3, r0, r1, lsl #1 add r4, r3, #16 ldrh r1, [r0, #12] strh r1, [r3, #16] strh r2, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_WL_DevTestSignal WMSP_WL_DevTestSignal: ; 0x06002284 stmdb sp!, {r4, lr} mov ip, #0 strh ip, [r0] strh ip, [r0, #2] strh ip, [r0, #4] strh ip, [r0, #6] strh ip, [r0, #8] strh ip, [r0, #10] ldr ip, _060022F4 ; =0x00000309 strh ip, [r0, #12] mov ip, #4 strh ip, [r0, #14] strh r1, [r0, #16] strh r2, [r0, #18] strh r3, [r0, #20] ldrh r1, [sp, #8] strh r1, [r0, #22] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] mov r1, #1 strh r1, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060022F4: .word 0x00000309 arm_func_start WMSP_WL_DevGetStationState WMSP_WL_DevGetStationState: ; 0x060022F8 mov r1, #776 ; 0x308 mov r2, #2 ldr ip, _06002308 ; =FUN_06002234 bx ip _06002308: .word FUN_06002234 arm_func_start WMSP_WL_DevGetWirelessCounter WMSP_WL_DevGetWirelessCounter: ; 0x0600230C ldr r1, _0600231C ; =0x00000307 mov r2, #92 ; 0x5c ldr ip, _06002320 ; =FUN_06002234 bx ip _0600231C: .word 0x00000307 _06002320: .word FUN_06002234 arm_func_start WMSP_WL_DevGetVersion WMSP_WL_DevGetVersion: ; 0x06002324 ldr r1, _06002334 ; =0x00000306 mov r2, #9 ldr ip, _06002338 ; =FUN_06002234 bx ip _06002334: .word 0x00000306 _06002338: .word FUN_06002234 arm_func_start WMSP_WL_DevSetInitializeWirelessCounter WMSP_WL_DevSetInitializeWirelessCounter: ; 0x0600233C ldr r1, _0600234C ; =0x00000305 mov r2, #1 ldr ip, _06002350 ; =FUN_06002234 bx ip _0600234C: .word 0x00000305 _06002350: .word FUN_06002234 arm_func_start WMSP_WL_DevRestart WMSP_WL_DevRestart: ; 0x06002354 mov r1, #772 ; 0x304 mov r2, #1 ldr ip, _06002364 ; =FUN_06002234 bx ip _06002364: .word FUN_06002234 arm_func_start WMSP_WL_DevClass1 WMSP_WL_DevClass1: ; 0x06002368 ldr r1, _06002378 ; =0x00000303 mov r2, #1 ldr ip, _0600237C ; =FUN_06002234 bx ip _06002378: .word 0x00000303 _0600237C: .word FUN_06002234 arm_func_start WMSP_WL_DevIdle WMSP_WL_DevIdle: ; 0x06002380 ldr r1, _06002390 ; =0x00000302 mov r2, #1 ldr ip, _06002394 ; =FUN_06002234 bx ip _06002390: .word 0x00000302 _06002394: .word FUN_06002234 arm_func_start WMSP_WL_DevShutdown WMSP_WL_DevShutdown: ; 0x06002398 ldr r1, _060023A8 ; =0x00000301 mov r2, #1 ldr ip, _060023AC ; =FUN_06002234 bx ip _060023A8: .word 0x00000301 _060023AC: .word FUN_06002234 arm_func_start WMSP_WL_ParamGetMode WMSP_WL_ParamGetMode: ; 0x060023B0 mov r1, #644 ; 0x284 mov r2, #2 ldr ip, _060023C0 ; =FUN_06002234 bx ip _060023C0: .word FUN_06002234 arm_func_start WMSP_WL_ParamGetEnableChannel WMSP_WL_ParamGetEnableChannel: ; 0x060023C4 ldr r1, _060023D4 ; =0x00000283 mov r2, #3 ldr ip, _060023D8 ; =FUN_06002234 bx ip _060023D4: .word 0x00000283 _060023D8: .word FUN_06002234 arm_func_start WMSP_WL_ParamGetMacAddress WMSP_WL_ParamGetMacAddress: ; 0x060023DC ldr r1, _060023EC ; =0x00000281 mov r2, #4 ldr ip, _060023F0 ; =FUN_06002234 bx ip _060023EC: .word 0x00000281 _060023F0: .word FUN_06002234 arm_func_start WMSP_WL_ParamSetGameInfo WMSP_WL_ParamSetGameInfo: ; 0x060023F4 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 mov r6, r1 mov r5, r2 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] ldr r0, _06002480 ; =0x00000245 strh r0, [r4, #12] add r0, r6, #1 mov r1, #2 bl FUN_06001840 add r0, r0, #1 strh r0, [r4, #14] strh r6, [r4, #16] mov r0, r5 add r1, r4, #18 mov r2, r6 bl FUN_06000EA0 ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #1 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 ldmia sp!, {r4, r5, r6, lr} bx lr _06002480: .word 0x00000245 arm_func_start WMSP_WL_ParamSetBeaconPeriod WMSP_WL_ParamSetBeaconPeriod: ; 0x06002484 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _060024E0 ; =0x00000242 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060024E0: .word 0x00000242 arm_func_start WMSP_WL_ParamSetNullKeyResponseMode WMSP_WL_ParamSetNullKeyResponseMode: ; 0x060024E4 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _06002540 ; =0x00000216 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _06002540: .word 0x00000216 arm_func_start WMSP_WL_ParamSetBeaconSendRecvInd WMSP_WL_ParamSetBeaconSendRecvInd: ; 0x06002544 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _060025A0 ; =0x00000215 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060025A0: .word 0x00000215 arm_func_start WMSP_WL_ParamSetMaxConnectableChild WMSP_WL_ParamSetMaxConnectableChild: ; 0x060025A4 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _06002600 ; =0x00000212 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _06002600: .word 0x00000212 arm_func_start WMSP_WL_ParamSetLifeTime WMSP_WL_ParamSetLifeTime: ; 0x06002604 stmdb sp!, {r4, lr} mov ip, #0 strh ip, [r0] strh ip, [r0, #2] strh ip, [r0, #4] strh ip, [r0, #6] strh ip, [r0, #8] strh ip, [r0, #10] ldr ip, _0600266C ; =0x00000211 strh ip, [r0, #12] mov ip, #3 strh ip, [r0, #14] strh r1, [r0, #16] strh r2, [r0, #18] strh r3, [r0, #20] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] mov r1, #1 strh r1, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _0600266C: .word 0x00000211 arm_func_start WMSP_WL_ParamSetPreambleType WMSP_WL_ParamSetPreambleType: ; 0x06002670 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _060026CC ; =0x0000020E strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060026CC: .word 0x0000020E arm_func_start WMSP_WL_ParamSetSsidMask WMSP_WL_ParamSetSsidMask: ; 0x060026D0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] ldr r0, _0600274C ; =0x0000020D strh r0, [r4, #12] mov r0, #16 strh r0, [r4, #14] mov r0, r1 add r1, r4, #16 mov r2, #32 bl FUN_06000EA0 ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #1 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600274C: .word 0x0000020D arm_func_start WMSP_WL_ParamSetBeaconLostThreshold WMSP_WL_ParamSetBeaconLostThreshold: ; 0x06002750 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _060027AC ; =0x0000020B strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060027AC: .word 0x0000020B arm_func_start WMSP_WL_ParamSetWepKeyId WMSP_WL_ParamSetWepKeyId: ; 0x060027B0 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] ldr r2, _0600280C ; =0x00000207 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _0600280C: .word 0x00000207 arm_func_start WMSP_WL_ParamSetAll WMSP_WL_ParamSetAll: ; 0x06002810 stmdb sp!, {r4, lr} mov r1, #0 strh r1, [r0] strh r1, [r0, #2] strh r1, [r0, #4] strh r1, [r0, #6] strh r1, [r0, #8] strh r1, [r0, #10] mov r1, #512 ; 0x200 strh r1, [r0, #12] mov r1, #72 ; 0x48 strh r1, [r0, #14] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] mov r1, #1 strh r1, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_WL_MaClearData WMSP_WL_MaClearData: ; 0x0600286C stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] mov r2, #260 ; 0x104 strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_WL_MaMp WMSP_WL_MaMp: ; 0x060028C8 stmdb sp!, {r4, lr} mov ip, #0 strh ip, [r0] strh ip, [r0, #2] strh ip, [r0, #4] strh ip, [r0, #6] strh ip, [r0, #8] strh ip, [r0, #10] ldr ip, _06002960 ; =0x00000102 strh ip, [r0, #12] mov ip, #10 strh ip, [r0, #14] strh r1, [r0, #16] strh r2, [r0, #18] strh r3, [r0, #20] ldrh r1, [sp, #8] strh r1, [r0, #22] ldrh r1, [sp, #12] strh r1, [r0, #24] ldrh r1, [sp, #16] strh r1, [r0, #26] ldrh r1, [sp, #20] strh r1, [r0, #28] ldrh r1, [sp, #24] strh r1, [r0, #30] ldr r1, [sp, #28] str r1, [r0, #32] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] mov r1, #1 strh r1, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _06002960: .word 0x00000102 arm_func_start WMSP_WL_MaKeyData WMSP_WL_MaKeyData: ; 0x06002964 stmdb sp!, {r4, lr} mov ip, #0 strh ip, [r0] strh ip, [r0, #2] strh ip, [r0, #4] strh ip, [r0, #6] strh ip, [r0, #8] strh ip, [r0, #10] ldr ip, _060029CC ; =0x00000101 strh ip, [r0, #12] mov ip, #4 strh ip, [r0, #14] strh r1, [r0, #16] strh r2, [r0, #18] str r3, [r0, #20] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] mov r1, #1 strh r1, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr _060029CC: .word 0x00000101 arm_func_start WMSP_WL_MaData WMSP_WL_MaData: ; 0x060029D0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r1 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] mov r0, #256 ; 0x100 strh r0, [r4, #12] mov r0, #24 strh r0, [r4, #14] mov r0, r5 add r1, r4, #16 mov r2, #48 ; 0x30 bl FUN_06000EA0 mov r0, #0 strh r0, [r5, #2] strh r0, [r5, #4] strh r0, [r5, #8] strh r0, [r5, #10] strh r0, [r5, #12] strh r0, [r5, #16] strh r0, [r5, #18] strh r0, [r5, #20] strh r0, [r5, #22] strh r0, [r5, #36] ; 0x24 strh r0, [r5, #38] ; 0x26 strh r0, [r5, #40] ; 0x28 strh r0, [r5, #42] ; 0x2a ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #2 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_WL_MlmeMeasureChannel WMSP_WL_MlmeMeasureChannel: ; 0x06002A88 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov ip, #0 strh ip, [r4] strh ip, [r4, #2] strh ip, [r4, #4] strh ip, [r4, #6] strh ip, [r4, #8] strh ip, [r4, #10] mov r0, #10 strh r0, [r4, #12] mov r0, #12 strh r0, [r4, #14] strh ip, [r4, #16] strh r1, [r4, #18] strh r2, [r4, #20] strh r3, [r4, #22] ldr r0, [sp, #16] add r1, r4, #24 mov r2, #16 bl FUN_06000EA0 ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #18 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_WL_MlmeStart WMSP_WL_MlmeStart: ; 0x06002B14 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 mov r0, #0 strh r0, [r7] strh r0, [r7, #2] strh r0, [r7, #4] strh r0, [r7, #6] strh r0, [r7, #8] strh r0, [r7, #10] mov r0, #9 strh r0, [r7, #12] ldrh r0, [sp, #40] ; 0x28 add r0, r0, #1 mov r1, #2 bl FUN_06001840 add r0, r0, #23 strh r0, [r7, #14] strh r6, [r7, #16] mov r0, r5 add r1, r7, #18 mov r2, #32 bl FUN_06000EA0 strh r4, [r7, #50] ; 0x32 ldrh r0, [sp, #24] strh r0, [r7, #52] ; 0x34 ldrh r0, [sp, #28] strh r0, [r7, #54] ; 0x36 ldrh r0, [sp, #32] strh r0, [r7, #56] ; 0x38 ldrh r0, [sp, #36] ; 0x24 strh r0, [r7, #58] ; 0x3a ldrh r2, [sp, #40] ; 0x28 strh r2, [r7, #60] ; 0x3c ldr r0, [sp, #44] ; 0x2c add r1, r7, #62 ; 0x3e bl FUN_06000EA0 ldrh r0, [r7, #14] add r1, r7, r0, lsl #1 add r4, r1, #16 ldrh r0, [r7, #12] strh r0, [r1, #16] mov r0, #1 strh r0, [r4, #2] mov r0, r7 bl WMSP_WlRequest mov r0, r4 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start WMSP_WL_MlmeAssociate WMSP_WL_MlmeAssociate: ; 0x06002BE8 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 mov r6, r2 mov r5, r3 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] mov r2, #6 strh r2, [r4, #12] mov r0, #5 strh r0, [r4, #14] mov r0, r1 add r1, r4, #16 bl FUN_06000EA0 strh r6, [r4, #22] strh r5, [r4, #24] ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #3 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start WMSP_WL_MlmeDeAuthenticate WMSP_WL_MlmeDeAuthenticate: ; 0x06002C68 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r5, r2 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] mov r0, #5 strh r0, [r4, #12] mov r0, #4 strh r0, [r4, #14] mov r0, r1 add r1, r4, #16 mov r2, #6 bl FUN_06000EA0 strh r5, [r4, #22] ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #4 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_WL_MlmeAuthenticate WMSP_WL_MlmeAuthenticate: ; 0x06002CEC stmdb sp!, {r4, r5, r6, lr} mov r4, r0 mov r6, r2 mov r5, r3 mov r0, #0 strh r0, [r4] strh r0, [r4, #2] strh r0, [r4, #4] strh r0, [r4, #6] strh r0, [r4, #8] strh r0, [r4, #10] mov r0, #4 strh r0, [r4, #12] mov r0, #5 strh r0, [r4, #14] mov r0, r1 add r1, r4, #16 mov r2, #6 bl FUN_06000EA0 strh r6, [r4, #22] strh r5, [r4, #24] ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #6 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start WMSP_WL_MlmeJoin WMSP_WL_MlmeJoin: ; 0x06002D70 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r3, #0 strh r3, [r4] strh r3, [r4, #2] strh r3, [r4, #4] strh r3, [r4, #6] strh r3, [r4, #8] strh r3, [r4, #10] mov r0, #3 strh r0, [r4, #12] mov r0, #34 ; 0x22 strh r0, [r4, #14] strh r1, [r4, #16] strh r3, [r4, #18] mov r0, r2 add r1, r4, #20 mov r2, #68 ; 0x44 bl FUN_06000EA0 ldrh r0, [r4, #14] add r1, r4, r0, lsl #1 add r5, r1, #16 ldrh r0, [r4, #12] strh r0, [r1, #16] mov r0, #5 strh r0, [r5, #2] mov r0, r4 bl WMSP_WlRequest mov r0, r5 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_WL_MlmeScan WMSP_WL_MlmeScan: ; 0x06002DF4 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r4, r1 mov r6, r3 mov r0, #0 strh r0, [r5] strh r0, [r5, #2] strh r0, [r5, #4] strh r0, [r5, #6] strh r0, [r5, #8] strh r0, [r5, #10] mov r0, #2 strh r0, [r5, #12] mov r0, #31 strh r0, [r5, #14] mov r0, r2 add r1, r5, #16 mov r2, #6 bl FUN_06000EA0 strh r6, [r5, #22] ldr r0, [sp, #16] add r1, r5, #24 mov r2, #32 bl FUN_06000EA0 ldrh r0, [sp, #20] strh r0, [r5, #56] ; 0x38 ldr r0, [sp, #24] add r1, r5, #58 ; 0x3a mov r2, #16 bl FUN_06000EA0 ldrh r0, [sp, #28] strh r0, [r5, #74] ; 0x4a mov r0, #0 strh r0, [r5, #76] ; 0x4c ldrh r0, [r5, #14] add r1, r5, r0, lsl #1 add r6, r1, #16 ldrh r0, [r5, #12] strh r0, [r1, #16] mov r0, r4, lsr #1 sub r0, r0, #44 ; 0x2c strh r0, [r6, #2] mov r0, r5 bl WMSP_WlRequest mov r0, r6 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start WMSP_WL_MlmePowerManagement WMSP_WL_MlmePowerManagement: ; 0x06002EB0 stmdb sp!, {r4, lr} mov ip, #0 strh ip, [r0] strh ip, [r0, #2] strh ip, [r0, #4] strh ip, [r0, #6] strh ip, [r0, #8] strh ip, [r0, #10] mov lr, #1 strh lr, [r0, #12] mov ip, #3 strh ip, [r0, #14] strh r1, [r0, #16] strh r2, [r0, #18] strh r3, [r0, #20] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh lr, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_WL_MlmeReset WMSP_WL_MlmeReset: ; 0x06002F14 stmdb sp!, {r4, lr} mov r2, #0 strh r2, [r0] strh r2, [r0, #2] strh r2, [r0, #4] strh r2, [r0, #6] strh r2, [r0, #8] strh r2, [r0, #10] strh r2, [r0, #12] mov r3, #1 strh r3, [r0, #14] strh r1, [r0, #16] ldrh r1, [r0, #14] add r2, r0, r1, lsl #1 add r4, r2, #16 ldrh r1, [r0, #12] strh r1, [r2, #16] strh r3, [r4, #2] bl WMSP_WlRequest mov r0, r4 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_Initialize WMSP_Initialize: ; 0x06002F6C stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r4, [r0, #4] ldr r1, _06003018 ; =_0601A960 str r4, [r1, #1356] ; 0x54c ldr r2, [r0, #8] str r2, [r1, #1360] ; 0x550 str r2, [r4] ldr r0, [r0, #12] str r0, [r4, #8] bl WMSPi_CommonInit mov r0, #15 bl FUN_0600301C mov r1, #1 ldr r0, [r4] strh r1, [r0] add r0, sp, #0 add r1, sp, #2 bl WMSPi_CommonWlIdle cmp r0, #0 bne _06002FEC bl FUN_060001E8 mov r1, #0 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] ldrh r1, [sp] strh r1, [r0, #4] ldrh r1, [sp, #2] strh r1, [r0, #6] bl FUN_060001F0 b _0600300C _06002FEC: mov r1, #2 ldr r0, [r4] strh r1, [r0] bl FUN_060001E8 mov r1, #0 strh r1, [r0] strh r1, [r0, #2] bl FUN_060001F0 _0600300C: add sp, sp, #8 ldmia sp!, {r4, lr} bx lr _06003018: .word _0601A960 arm_func_start FUN_0600301C FUN_0600301C: ; 0x0600301C ldr pc, _06003020 ; =PM_SetLEDPattern _06003020: .word PM_SetLEDPattern arm_func_start FUN_06003024 FUN_06003024: ; 0x06003024 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #1 strh r1, [r0] strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_Reset WMSP_Reset: ; 0x0600305C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #532 ; 0x214 ldr r0, _06003448 ; =_0601A960 ldr r7, [r0, #1360] ; 0x550 mov r5, #0 bl FUN_060001A4 mov r4, r0 ldr r0, [r7, #12] cmp r0, #1 bne _060030B8 mov r0, r5 str r0, [r7, #12] mov r5, #1 bl WMSP_CancelVAlarm bl WMSP_SetThreadPriorityLow ldrh r0, [r7] cmp r0, #10 moveq r0, #8 streqh r0, [r7] beq _060030B8 cmp r0, #9 moveq r0, #7 streqh r0, [r7] _060030B8: ldrh r1, [r7] ldr r0, _0600344C ; =0x0000FFF9 add r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #1 bhi _060030EC add r0, r7, #256 ; 0x100 ldrh r9, [r0, #130] ; 0x82 cmp r1, #7 moveq sl, #1 movne sl, #0 b _060030F0 _060030EC: mov r9, #0 _060030F0: mov r1, #0 add r0, r7, #256 ; 0x100 strh r1, [r0, #130] ; 0x82 strh r1, [r7, #134] ; 0x86 str r1, [r7, #20] str r1, [r7, #16] str r1, [r7, #28] strh r1, [r7, #194] ; 0xc2 mov r0, r4 bl FUN_060001AC cmp r5, #0 beq _06003128 ldr r0, _06003450 ; =0x0000FFFF bl WMSP_CleanSendQueue _06003128: cmp sl, #0 movne r0, #0 strneh r0, [r7, #246] ; 0xf6 cmp r9, #0 beq _0600318C mov r8, #0 add r5, r7, #296 ; 0x128 ldr r0, _06003454 ; =0x0000018A add fp, r7, r0 mov r6, #1 mov r4, #6 _06003154: mov r0, r6, lsl r8 ands r0, r9, r0 beq _06003180 cmp r8, #0 moveq r2, fp subne r0, r8, #1 mlane r2, r0, r4, r5 mov r0, sl mov r1, r8, lsl #16 mov r1, r1, lsr #16 bl WMSP_IndicateDisconnectionFromMyself _06003180: add r8, r8, #1 cmp r8, #16 blt _06003154 _0600318C: add r0, r7, #296 ; 0x128 mov r1, #0 mov r2, #90 ; 0x5a bl FUN_06000D08 add r0, sp, #16 bl WMSP_WL_DevGetStationState ldrh r1, [r0, #4] cmp r1, #0 beq _060031BC mov r0, #776 ; 0x308 bl FUN_06003024 b _0600343C _060031BC: ldrh r4, [r0, #6] add r0, sp, #16 bl WMSP_WL_ParamGetMode ldrh r1, [r0, #4] cmp r1, #0 beq _060031E0 mov r0, #644 ; 0x284 bl FUN_06003024 b _0600343C _060031E0: ldrh r1, [r0, #6] cmp r4, #32 bgt _06003234 cmp r4, #32 bge _06003310 cmp r4, #0 bgt _06003208 cmp r4, #0 beq _06003334 b _06003414 _06003208: cmp r4, #18 bgt _06003414 cmp r4, #16 blt _06003414 cmp r4, #16 beq _06003354 cmp r4, #17 beq _060033AC cmp r4, #18 beq _060033AC b _06003414 _06003234: cmp r4, #48 ; 0x30 bgt _06003248 cmp r4, #48 ; 0x30 beq _06003250 b _06003414 _06003248: cmp r4, #64 ; 0x40 bne _06003414 _06003250: ldr r0, _06003458 ; =0x0000FFFE add r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #1 bhi _060032D8 ldr r0, _06003454 ; =0x0000018A add r0, r7, r0 add r1, sp, #4 mov r2, #6 bl FUN_06000554 mov r6, #0 add r5, sp, #4 mov r4, #3 b _060032CC _0600328C: add r0, sp, #16 mov r1, r5 mov r2, r4 bl WMSP_WL_MlmeDeAuthenticate ldrh r0, [r0, #4] cmp r0, #0 beq _060032BC cmp r0, #7 beq _060032C8 cmp r0, #12 beq _060032C8 b _06003310 _060032BC: mov r0, #3 strh r0, [r7] b _06003310 _060032C8: add r6, r6, #1 _060032CC: cmp r6, #2 blt _0600328C b _06003310 _060032D8: cmp r1, #1 bne _06003310 add r0, sp, #10 mov r1, #255 ; 0xff mov r2, #6 bl FUN_06000D08 add r0, sp, #16 add r1, sp, #10 mov r2, #3 bl WMSP_WL_MlmeDeAuthenticate ldrh r0, [r0, #4] cmp r0, #0 moveq r0, #3 streqh r0, [r7] _06003310: add r0, sp, #16 mov r1, #1 bl WMSP_WL_MlmeReset ldrh r1, [r0, #4] cmp r1, #0 beq _06003334 mov r0, #0 bl FUN_06003024 b _0600343C _06003334: add r0, sp, #16 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _06003354 ldr r0, _0600345C ; =0x00000302 bl FUN_06003024 b _0600343C _06003354: add r0, r7, #256 ; 0x100 ldrh r0, [r0, #238] ; 0xee cmp r0, #0 bne _06003394 add r0, sp, #16 mov r1, #1 bl WMSP_WL_ParamSetPreambleType ldrh r1, [r0, #4] cmp r1, #0 beq _06003388 ldr r0, _06003460 ; =0x0000020E bl FUN_06003024 b _0600343C _06003388: mov r1, #1 add r0, r7, #256 ; 0x100 strh r1, [r0, #238] ; 0xee _06003394: mov r0, #2 strh r0, [r7] mov r0, #0 str r0, [r7, #408] ; 0x198 bl WMSP_ResetSizeVars b _06003424 _060033AC: cmp r1, #0 bne _060033E8 mov r0, #1 str r0, [sp] add r0, sp, #16 mov r1, #0 mov r2, r1 mov r3, #20 bl WMSP_WL_DevTestSignal ldrh r1, [r0, #4] cmp r1, #0 beq _060033E8 ldr r0, _06003464 ; =0x00000309 bl FUN_06003024 b _0600343C _060033E8: add r0, sp, #16 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _06003408 ldr r0, _0600345C ; =0x00000302 bl FUN_06003024 b _0600343C _06003408: mov r0, #2 strh r0, [r7] b _06003424 _06003414: mov r0, #776 ; 0x308 mov r1, #0 bl FUN_06003024 b _0600343C _06003424: bl FUN_060001E8 mov r1, #1 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _0600343C: add sp, sp, #532 ; 0x214 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06003448: .word _0601A960 _0600344C: .word 0x0000FFF9 _06003450: .word 0x0000FFFF _06003454: .word 0x0000018A _06003458: .word 0x0000FFFE _0600345C: .word 0x00000302 _06003460: .word 0x0000020E _06003464: .word 0x00000309 arm_func_start FUN_06003468 FUN_06003468: ; 0x06003468 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #2 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_End WMSP_End: ; 0x060034A4 stmdb sp!, {r4, lr} sub sp, sp, #512 ; 0x200 ldr r0, _06003534 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4] cmp r0, #2 beq _060034DC bl FUN_060001E8 mov r1, #2 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06003528 _060034DC: add r0, sp, #0 bl WMSP_WL_DevShutdown ldrh r1, [r0, #4] cmp r1, #0 beq _060034FC ldr r0, _06003538 ; =0x00000301 bl FUN_06003468 b _06003528 _060034FC: mov r0, #1 strh r0, [r4] bl FUN_0600301C mov r0, #0 strh r0, [r4] bl FUN_060001E8 mov r1, #2 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06003528: add sp, sp, #512 ; 0x200 ldmia sp!, {r4, lr} bx lr _06003534: .word _0601A960 _06003538: .word 0x00000301 arm_func_start FUN_0600353C FUN_0600353C: ; 0x0600353C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #7 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_SetParentParam WMSP_SetParentParam: ; 0x06003578 stmdb sp!, {r4, lr} sub sp, sp, #512 ; 0x200 ldr r1, _06003618 ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 ldr r0, [r0, #4] add r1, r4, #232 ; 0xe8 mov r2, #64 ; 0x40 bl FUN_06000554 mov r2, #1 add r0, r4, #256 ; 0x100 ldrh r1, [r0, #26] mov r1, r2, lsl r1 ldrh r0, [r0, #244] ; 0xf4 ands r0, r1, r0 bne _060035D0 bl FUN_060001E8 mov r1, #7 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] bl FUN_060001F0 b _0600360C _060035D0: add r0, sp, #0 ldrh r1, [r4, #248] ; 0xf8 bl WMSP_WL_ParamSetMaxConnectableChild ldrh r1, [r0, #4] cmp r1, #0 beq _060035F4 ldr r0, _0600361C ; =0x00000212 bl FUN_0600353C b _0600360C _060035F4: bl FUN_060001E8 mov r1, #7 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _0600360C: add sp, sp, #512 ; 0x200 ldmia sp!, {r4, lr} bx lr _06003618: .word _0601A960 _0600361C: .word 0x00000212 arm_func_start FUN_06003620 FUN_06003620: ; 0x06003620 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #8 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #8] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_StartParent WMSP_StartParent: ; 0x06003664 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #696 ; 0x2b8 ldr r1, _060038E0 ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 add r6, sp, #56 ; 0x38 ldrh r1, [r4] cmp r1, #2 beq _060036A8 bl FUN_060001E8 mov r1, #8 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #8] bl FUN_060001F0 b _060038D4 _060036A8: ldr r5, [r0, #4] add r0, r4, #256 ; 0x100 ldrh r3, [r0, #246] ; 0xf6 mov r2, #1 ldrh r1, [r0, #26] mov r1, r2, lsl r1 mov r1, r1, asr #1 ands r1, r3, r1 bne _060036F0 bl FUN_060001E8 mov r1, #8 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #8] bl FUN_060001F0 b _060038D4 _060036F0: strh r2, [r4, #230] ; 0xe6 mov r1, #0 strh r1, [r0, #136] ; 0x88 bl FUN_060001A4 mov r2, #0 add r1, r4, #256 ; 0x100 strh r2, [r1, #130] ; 0x82 strh r2, [r4, #134] ; 0x86 bl FUN_060001AC mov r1, #1 add r0, r4, #256 ; 0x100 strh r1, [r0, #238] ; 0xee mov r0, #8 mov r1, r6 bl WMSP_SetAllParams cmp r0, #0 beq _060038D4 mov r0, r6 bl WMSP_WL_DevClass1 ldrh r1, [r0, #4] cmp r1, #0 beq _06003754 ldr r0, _060038E4 ; =0x00000303 bl FUN_06003620 b _060038D4 _06003754: cmp r5, #0 movne r0, #1 moveq r0, #0 mov r0, r0, lsl #16 mov r5, r0, lsr #16 mov r0, r6 mov r1, r5 mov r2, #0 mov r3, #1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _06003794 mov r0, #1 bl FUN_06003620 b _060038D4 _06003794: strh r5, [r4, #198] ; 0xc6 add r5, r4, #232 ; 0xe8 mov r0, #0 add r1, sp, #568 ; 0x238 mov r2, #128 ; 0x80 bl FUN_0600055C add r0, sp, #568 ; 0x238 mov r1, r5 bl WMSP_CopyParentParam mov r0, #0 add r1, sp, #24 mov r2, #32 bl FUN_0600055C ldr r0, [r5, #8] strh r0, [sp, #24] ldr r0, [r5, #8] mov r0, r0, lsr #16 strh r0, [sp, #26] ldrh r0, [r5, #12] strh r0, [sp, #28] mov r0, #0 strh r0, [sp, #30] mov r0, #2 str r0, [sp] ldrh r0, [r5, #50] ; 0x32 str r0, [sp, #4] mov r0, #3 str r0, [sp, #8] str r0, [sp, #12] ldrh r0, [r5, #4] add r0, r0, #16 mov r0, r0, lsl #16 mov r0, r0, lsr #16 str r0, [sp, #16] add r0, sp, #568 ; 0x238 str r0, [sp, #20] mov r0, r6 mov r1, #32 add r2, sp, #24 ldrh r3, [r5, #24] bl WMSP_WL_MlmeStart ldrh r1, [r0, #4] cmp r1, #0 beq _06003850 mov r0, #9 bl FUN_06003620 b _060038D4 _06003850: ldrh r0, [r5, #20] cmp r0, #0 movne r1, #42 ; 0x2a moveq r1, #0 ldrh r0, [r5, #52] ; 0x34 add r0, r0, r1 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_SetParentMaxSize ldrh r0, [r5, #20] cmp r0, #0 movne r1, #6 moveq r1, #0 ldrh r0, [r5, #54] ; 0x36 add r0, r0, r1 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_SetChildMaxSize bl FUN_060001E8 mov r1, #7 strh r1, [r4] mov r1, #8 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] strh r1, [r0, #8] ldrh r1, [r4, #48] ; 0x30 strh r1, [r0, #44] ; 0x2c ldrh r1, [r4, #50] ; 0x32 strh r1, [r0, #46] ; 0x2e bl FUN_060001F0 mov r0, #1 strh r0, [r4, #194] ; 0xc2 _060038D4: add sp, sp, #696 ; 0x2b8 ldmia sp!, {r4, r5, r6, lr} bx lr _060038E0: .word _0601A960 _060038E4: .word 0x00000303 arm_func_start FUN_060038E8 FUN_060038E8: ; 0x060038E8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #9 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_EndParent WMSP_EndParent: ; 0x06003924 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #532 ; 0x214 ldr r0, _06003AF0 ; =_0601A960 ldr r8, [r0, #1360] ; 0x550 ldrh r0, [r8] cmp r0, #7 beq _0600395C bl FUN_060001E8 mov r1, #9 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06003AE4 _0600395C: mov r6, #0 strh r6, [r8, #246] ; 0xf6 mov sl, #1 add r4, r8, #296 ; 0x128 mov fp, #6 mov r0, #3 str r0, [sp] str sl, [sp, #4] mov r5, sl _06003980: mov r7, r5, lsl sl add r0, r8, #256 ; 0x100 ldrh r0, [r0, #130] ; 0x82 ands r0, r0, r7 beq _06003A44 sub r1, sl, #1 mov r0, #6 mla r0, r1, r0, r4 add r1, sp, #8 mov r2, fp bl FUN_06000554 mov r9, r6 b _060039E4 _060039B4: add r0, sp, #16 add r1, sp, #8 ldr r2, [sp] bl WMSP_WL_MlmeDeAuthenticate ldrh r0, [r0, #4] cmp r0, #0 beq _060039EC cmp r0, #7 beq _060039E0 cmp r0, #12 bne _060039EC _060039E0: add r9, r9, #1 _060039E4: cmp r9, #2 blt _060039B4 _060039EC: bl FUN_060001A4 add r1, r8, #256 ; 0x100 ldrh r2, [r1, #130] ; 0x82 ands r3, r2, r7 beq _06003A40 mvn r3, r7 and r2, r2, r3 strh r2, [r1, #130] ; 0x82 ldrh r1, [r8, #134] ; 0x86 and r1, r1, r3 strh r1, [r8, #134] ; 0x86 add r1, r8, sl, lsl #3 str r6, [r1, #1848] ; 0x738 str r6, [r1, #1852] ; 0x73c bl FUN_060001AC ldr r0, [sp, #4] mov r1, sl, lsl #16 mov r1, r1, lsr #16 add r2, sp, #8 bl WMSP_IndicateDisconnectionFromMyself b _06003A44 _06003A40: bl FUN_060001AC _06003A44: add sl, sl, #1 cmp sl, #16 blt _06003980 add r0, sp, #16 mov r1, #1 bl WMSP_WL_MlmeReset ldrh r1, [r0, #4] cmp r1, #0 beq _06003A74 mov r0, #0 bl FUN_060038E8 b _06003AE4 _06003A74: mov r0, #0 strh r0, [r8, #194] ; 0xc2 mov r0, #3 strh r0, [r8] add r0, sp, #16 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _06003AA4 ldr r0, _06003AF4 ; =0x00000302 bl FUN_060038E8 b _06003AE4 _06003AA4: mov r0, #2 strh r0, [r8] mov r1, #0 str r1, [r8, #408] ; 0x198 add r0, r8, #256 ; 0x100 strh r1, [r0, #150] ; 0x96 add r0, r8, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000D08 bl WMSP_ResetSizeVars bl FUN_060001E8 mov r1, #9 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06003AE4: add sp, sp, #532 ; 0x214 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06003AF0: .word _0601A960 _06003AF4: .word 0x00000302 arm_func_start FUN_06003AF8 FUN_06003AF8: ; 0x06003AF8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 bl FUN_060001E8 cmp r4, #0 movne r1, #38 ; 0x26 strneh r1, [r0] moveq r1, #10 streqh r1, [r0] mov r1, #1 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] strh r6, [r0, #4] strh r5, [r0, #6] bl FUN_060001F0 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start FUN_06003B44 FUN_06003B44: ; 0x06003B44 stmdb sp!, {r4, lr} mov r4, r0 sub r0, r4, #64 ; 0x40 mov r1, #66 ; 0x42 bl FUN_06003B68 sub r0, r4, r0, lsl #1 add r0, r0, #94 ; 0x5e ldmia sp!, {r4, lr} bx lr arm_func_start FUN_06003B68 FUN_06003B68: ; 0x06003B68 ldr pc, _06003B6C ; =_u32_div_f _06003B6C: .word _u32_div_f arm_func_start FUN_06003B70 FUN_06003B70: ; 0x06003B70 ldrh r2, [r0, #10] cmp r2, #0 moveq r0, #0 bxeq lr cmp r2, #32 movhi r0, #0 bxhi lr mov r3, #0 b _06003BAC _06003B94: add r1, r0, r3 ldrb r1, [r1, #12] cmp r1, #0 movne r0, #1 bxne lr add r3, r3, #1 _06003BAC: cmp r3, r2 blt _06003B94 mov r0, #0 bx lr arm_func_start WMSP_StartScanEx WMSP_StartScanEx: ; 0x06003BBC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} ldr ip, _060040D8 ; =0x000004CC sub sp, sp, ip mov r8, r0 ldr r0, _060040DC ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4] cmp r0, #2 beq _06003C14 cmp r0, #3 beq _06003C14 cmp r0, #5 beq _06003C14 bl FUN_060001E8 mov r1, #38 ; 0x26 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _060040C8 _06003C14: ldr r0, [r8, #4] str r0, [r4, #388] ; 0x184 ldrh sl, [r8, #2] add r0, r4, #256 ; 0x100 strh sl, [r0, #144] ; 0x90 ldrh fp, [r8, #10] add r0, r8, #12 add r1, sp, #28 mov r2, #6 bl FUN_06000554 ldrh r6, [r8, #54] ; 0x36 ldrh r7, [r8, #18] cmp r7, #2 beq _06003C58 cmp r7, #3 beq _06003C64 b _06003C70 _06003C58: mov r5, #1 mov r7, #0 b _06003C74 _06003C64: mov r5, #1 mov r7, r5 b _06003C74 _06003C70: mov r5, #0 _06003C74: ldrh r9, [r8, #20] add r0, r8, #22 add r1, sp, #34 ; 0x22 mov r2, #32 bl FUN_06000554 ldrh r0, [r8, #8] str r0, [sp, #16] ldrh r1, [sp, #28] ldr r0, _060040E0 ; =0x0000FFFF cmp r1, r0 beq _06003CAC ands r0, r1, #1 bicne r0, r1, #1 strneh r0, [sp, #28] _06003CAC: mov r0, sl, lsl #17 mov r1, r0, lsr #16 add r0, r4, #256 ; 0x100 ldrh r0, [r0, #244] ; 0xf4 ands sl, r1, r0 bne _06003CE8 bl FUN_060001E8 mov r1, #38 ; 0x26 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _060040C8 _06003CE8: ldr r0, [r8, #4] cmp r0, #0 beq _06003D08 ands r0, r0, #3 bne _06003D08 ldrh r0, [r8, #8] cmp r0, #64 ; 0x40 bcs _06003D2C _06003D08: bl FUN_060001E8 mov r1, #38 ; 0x26 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _060040C8 _06003D2C: mov r0, #2 strh r0, [r4, #230] ; 0xe6 add r0, sp, #116 ; 0x74 bl WMSP_WL_DevGetStationState ldrh r1, [r0, #4] cmp r1, #0 beq _06003D58 mov r0, #776 ; 0x308 mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003D58: ldrh r0, [r0, #6] cmp r0, #16 bne _06003DDC mov r0, #38 ; 0x26 add r1, sp, #116 ; 0x74 bl WMSP_SetAllParams cmp r0, #0 beq _060040C8 add r0, sp, #116 ; 0x74 bl WMSP_WL_DevClass1 ldrh r1, [r0, #4] cmp r1, #0 beq _06003D9C ldr r0, _060040E4 ; =0x00000303 mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003D9C: mov r0, #3 strh r0, [r4] add r0, sp, #116 ; 0x74 mov r1, #1 mov r2, #0 mov r3, r1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _06003DD4 mov r0, #1 mov r2, r0 bl FUN_06003AF8 b _060040C8 _06003DD4: mov r0, #1 strh r0, [r4, #198] ; 0xc6 _06003DDC: cmp r7, #0 bne _06003E2C add r0, r4, #256 ; 0x100 ldrh r0, [r0, #238] ; 0xee cmp r0, #1 bne _06003E70 add r0, sp, #116 ; 0x74 mov r1, #0 bl WMSP_WL_ParamSetPreambleType ldrh r1, [r0, #4] cmp r1, #0 beq _06003E1C ldr r0, _060040E8 ; =0x0000020E mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003E1C: mov r1, #0 add r0, r4, #256 ; 0x100 strh r1, [r0, #238] ; 0xee b _06003E70 _06003E2C: add r0, r4, #256 ; 0x100 ldrh r0, [r0, #238] ; 0xee cmp r0, #0 bne _06003E70 add r0, sp, #116 ; 0x74 mov r1, #1 bl WMSP_WL_ParamSetPreambleType ldrh r1, [r0, #4] cmp r1, #0 beq _06003E64 ldr r0, _060040E8 ; =0x0000020E mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003E64: mov r1, #1 add r0, r4, #256 ; 0x100 strh r1, [r0, #238] ; 0xee _06003E70: cmp r5, #1 bne _06003EC8 add r0, sp, #66 ; 0x42 mov r1, #255 ; 0xff mov r2, #32 bl FUN_06000D08 cmp r6, #32 bhi _06003EA0 add r0, sp, #66 ; 0x42 mov r1, #0 mov r2, r6 bl FUN_06000D08 _06003EA0: add r0, sp, #116 ; 0x74 add r1, sp, #66 ; 0x42 bl WMSP_WL_ParamSetSsidMask ldrh r1, [r0, #4] cmp r1, #0 beq _06003EC8 ldr r0, _060040EC ; =0x0000020D mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003EC8: mov r0, #5 strh r0, [r4] mov r5, #0 add r0, sp, #98 ; 0x62 mov r1, r5 mov r2, #16 bl FUN_06000D08 mov r3, #1 add r1, sp, #98 ; 0x62 mov r2, r3 _06003EF0: mov r0, r2, lsl r3 ands r0, sl, r0 strneb r3, [r1, r5] addne r0, r5, #1 movne r0, r0, lsl #16 movne r5, r0, lsr #16 add r0, r3, #1 mov r0, r0, lsl #16 mov r3, r0, lsr #16 cmp r3, #15 bcc _06003EF0 ldr r0, [sp, #16] bl FUN_06003B44 mov r1, r0 add r0, sp, #34 ; 0x22 str r0, [sp] str r7, [sp, #4] add r0, sp, #98 ; 0x62 str r0, [sp, #8] str fp, [sp, #12] add r0, sp, #116 ; 0x74 add r2, sp, #28 mov r3, r9 bl WMSP_WL_MlmeScan mov r8, r0 ldrh r1, [r8, #4] cmp r1, #0 beq _06003F70 mov r0, #2 mov r2, #1 bl FUN_06003AF8 b _060040C8 _06003F70: bl FUN_060001E8 mov r7, r0 ldrh r0, [r8, #8] cmp r0, #0 bne _06003FAC mov r0, #38 ; 0x26 strh r0, [r7] mov r1, #0 strh r1, [r7, #2] mov r0, #4 strh r0, [r7, #8] strh r1, [r7, #14] mov r0, sl, asr #1 strh r0, [r7, #10] b _060040C0 _06003FAC: add r5, r8, #10 ldr r4, [r4, #388] ; 0x184 mov r0, #0 mov r1, r4 ldr r2, [sp, #16] bl FUN_0600055C mov r6, #0 mov r0, #32 str r0, [sp, #24] b _0600408C _06003FD4: ldrh r0, [r5] mov r0, r0, lsl #17 mov r0, r0, lsr #16 str r0, [sp, #20] mov r0, r5 mov r1, r4 ldr r2, [sp, #20] bl FUN_06000554 cmp r9, #0 beq _06004020 mov r0, r4 bl FUN_06003B70 cmp r0, #0 bne _06004020 strh r9, [r4, #10] add r0, sp, #34 ; 0x22 add r1, r4, #12 ldr r2, [sp, #24] bl FUN_06000554 _06004020: add r0, r7, r6, lsl #2 str r4, [r0, #16] ldrh r0, [r5, #2] and r1, r0, #255 ; 0xff ands r0, r1, #2 movne r0, r1, asr #2 andne fp, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq fp, r0, #255 ; 0xff mov r0, fp bl WMSP_GetLinkLevel add r1, r7, r6, lsl #1 strh r0, [r1, #80] ; 0x50 ldr r0, _060040F0 ; =0x027FFF98 ldrh r0, [r0] eor r0, fp, r0, lsl #1 eor r1, r0, r0, lsr #16 ldr r0, _060040F0 ; =0x027FFF98 strh r1, [r0] ldr r0, [sp, #20] add r5, r5, r0 add r4, r4, r0 ands r0, r4, #2 addne r0, r4, #2 bicne r4, r0, #3 add r6, r6, #1 _0600408C: ldrh r0, [r8, #8] cmp r6, r0 blt _06003FD4 mov r0, #38 ; 0x26 strh r0, [r7] mov r0, #0 strh r0, [r7, #2] mov r0, #5 strh r0, [r7, #8] ldrh r0, [r8, #8] strh r0, [r7, #14] mov r0, sl, asr #1 strh r0, [r7, #10] _060040C0: mov r0, r7 bl FUN_060001F0 _060040C8: ldr ip, _060040D8 ; =0x000004CC add sp, sp, ip ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _060040D8: .word 0x000004CC _060040DC: .word _0601A960 _060040E0: .word 0x0000FFFF _060040E4: .word 0x00000303 _060040E8: .word 0x0000020E _060040EC: .word 0x0000020D _060040F0: .word 0x027FFF98 arm_func_start WMSP_StartScan WMSP_StartScan: ; 0x060040F4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #588 ; 0x24c add r6, sp, #72 ; 0x48 ldr r1, _0600447C ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 ldrh r1, [r4] cmp r1, #2 beq _06004148 cmp r1, #3 beq _06004148 cmp r1, #5 beq _06004148 bl FUN_060001E8 mov r1, #10 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _06004470 _06004148: ldr r1, [r0, #4] str r1, [r4, #388] ; 0x184 ldrh r7, [r0, #2] add r1, r4, #256 ; 0x100 strh r7, [r1, #144] ; 0x90 ldrh r5, [r0, #8] add r0, r0, #10 add r1, sp, #16 mov r2, #6 bl FUN_06000554 ldrh r1, [sp, #16] ldr r0, _06004480 ; =0x0000FFFF cmp r1, r0 beq _0600418C ands r0, r1, #1 bicne r0, r1, #1 strneh r0, [sp, #16] _0600418C: cmp r7, #0 bne _060041B8 bl FUN_060001E8 mov r1, #10 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _06004470 _060041B8: mov r0, #1 mov r1, r0, lsl r7 add r0, r4, #256 ; 0x100 ldrh r0, [r0, #244] ; 0xf4 ands r0, r1, r0 bne _060041F4 bl FUN_060001E8 mov r1, #10 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] mov r1, #4 strh r1, [r0, #8] bl FUN_060001F0 b _06004470 _060041F4: mov r0, #2 strh r0, [r4, #230] ; 0xe6 mov r0, r6 bl WMSP_WL_DevGetStationState ldrh r1, [r0, #4] cmp r1, #0 beq _06004220 mov r0, #776 ; 0x308 mov r2, #0 bl FUN_06003AF8 b _06004470 _06004220: ldrh r0, [r0, #6] cmp r0, #16 bne _060042A4 mov r0, #10 mov r1, r6 bl WMSP_SetAllParams cmp r0, #0 beq _06004470 mov r0, r6 bl WMSP_WL_DevClass1 ldrh r1, [r0, #4] cmp r1, #0 beq _06004264 ldr r0, _06004484 ; =0x00000303 mov r2, #0 bl FUN_06003AF8 b _06004470 _06004264: mov r0, #3 strh r0, [r4] mov r0, r6 mov r1, #1 mov r2, #0 mov r3, r1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _0600429C mov r0, #1 mov r2, #0 bl FUN_06003AF8 b _06004470 _0600429C: mov r0, #1 strh r0, [r4, #198] ; 0xc6 _060042A4: mov r0, #5 strh r0, [r4] ldr r0, _06004480 ; =0x0000FFFF add r1, sp, #22 mov r2, #32 bl FUN_0600055C strb r7, [sp, #54] ; 0x36 add r0, sp, #55 ; 0x37 mov r1, #0 mov r2, #15 bl FUN_06000D08 add r0, sp, #22 str r0, [sp] mov r0, #1 str r0, [sp, #4] add r0, sp, #54 ; 0x36 str r0, [sp, #8] str r5, [sp, #12] mov r0, r6 ldr r1, _06004488 ; =0x0000011E add r2, sp, #16 mov r3, #0 bl WMSP_WL_MlmeScan mov r6, r0 ldrh r1, [r6, #4] cmp r1, #0 beq _06004320 mov r0, #2 mov r2, #0 bl FUN_06003AF8 b _06004470 _06004320: bl FUN_060001E8 mov r5, r0 ldrh r0, [r6, #8] cmp r0, #0 bne _06004358 mov r0, #10 strh r0, [r5] mov r1, #0 strh r1, [r5, #2] mov r0, #4 strh r0, [r5, #8] strh r7, [r5, #16] strh r1, [r5, #18] b _06004468 _06004358: mov r0, #0 ldr r1, [r4, #388] ; 0x184 add r1, r1, #64 ; 0x40 mov r2, #128 ; 0x80 bl FUN_0600055C add r0, r6, #10 ldr r1, [r4, #388] ; 0x184 ldrh r2, [r6, #10] mov r2, r2, lsl #1 bl FUN_06000554 mov r0, #10 strh r0, [r5] mov r0, #0 strh r0, [r5, #2] mov r0, #5 strh r0, [r5, #8] ldrh r0, [r6, #64] ; 0x40 strh r0, [r5, #16] ldrh r0, [r6, #12] and r1, r0, #255 ; 0xff ands r0, r1, #2 movne r0, r1, asr #2 andne r4, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq r4, r0, #255 ; 0xff mov r0, r4 bl WMSP_GetLinkLevel strh r0, [r5, #18] ldr r1, _0600448C ; =0x027FFF98 ldrh r0, [r1] eor r0, r4, r0, lsl #1 eor r0, r0, r0, lsr #16 strh r0, [r1] ldrh r0, [r6, #20] strh r0, [r5, #20] add r0, r6, #14 add r1, r5, #10 mov r2, #6 bl FUN_06000554 add r0, r6, #22 add r1, r5, #22 mov r2, #32 bl FUN_06000EA0 ldrh r0, [r6, #70] ; 0x46 strh r0, [r5, #54] ; 0x36 ldrh r0, [r5, #54] ; 0x36 cmp r0, #128 ; 0x80 bls _06004440 mov r0, #10 strh r0, [r5] mov r1, #0 strh r1, [r5, #2] mov r0, #4 strh r0, [r5, #8] strh r7, [r5, #16] strh r1, [r5, #18] b _06004468 _06004440: mov r0, #0 add r1, r5, #56 ; 0x38 mov r2, #128 ; 0x80 bl FUN_0600055C add r0, r6, #74 ; 0x4a add r1, r5, #56 ; 0x38 ldrh r2, [r5, #54] ; 0x36 add r2, r2, #1 bic r2, r2, #1 bl FUN_06000EA0 _06004468: mov r0, r5 bl FUN_060001F0 _06004470: add sp, sp, #588 ; 0x24c ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600447C: .word _0601A960 _06004480: .word 0x0000FFFF _06004484: .word 0x00000303 _06004488: .word 0x0000011E _0600448C: .word 0x027FFF98 arm_func_start FUN_06004490 FUN_06004490: ; 0x06004490 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #11 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_EndScan WMSP_EndScan: ; 0x060044CC stmdb sp!, {r4, r5, lr} sub sp, sp, #516 ; 0x204 add r5, sp, #0 ldr r0, _06004594 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4] cmp r0, #5 beq _06004508 bl FUN_060001E8 mov r1, #11 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06004588 _06004508: mov r0, r5 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _06004528 ldr r0, _06004598 ; =0x00000302 bl FUN_06004490 b _06004588 _06004528: mov r0, #2 strh r0, [r4] add r0, r4, #256 ; 0x100 ldrh r0, [r0, #238] ; 0xee cmp r0, #0 bne _06004570 mov r0, r5 mov r1, #1 bl WMSP_WL_ParamSetPreambleType ldrh r1, [r0, #4] cmp r1, #0 beq _06004564 ldr r0, _0600459C ; =0x0000020E bl FUN_06004490 b _06004588 _06004564: mov r1, #1 add r0, r4, #256 ; 0x100 strh r1, [r0, #238] ; 0xee _06004570: bl FUN_060001E8 mov r1, #11 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06004588: add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, lr} bx lr _06004594: .word _0601A960 _06004598: .word 0x00000302 _0600459C: .word 0x0000020E arm_func_start FUN_060045A0 FUN_060045A0: ; 0x060045A0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r2 bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r6, [r0, #4] strh r5, [r0, #6] strh r4, [r0, #14] bl FUN_060001F0 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start WMSP_StartConnectEx WMSP_StartConnectEx: ; 0x060045DC stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #592 ; 0x250 mov r6, r0 add r4, sp, #12 ldr r0, _06004BA8 ; =_0601A960 ldr r7, [r0, #1356] ; 0x54c ldr r5, [r0, #1360] ; 0x550 ldrh r0, [r5] cmp r0, #2 beq _06004628 bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #6 strh r1, [r0, #8] bl FUN_060001F0 b _06004B9C _06004628: ldr r0, [r6, #4] add r1, r7, #16 mov r2, #192 ; 0xc0 bl FUN_06000554 ldrh r0, [r7, #76] ; 0x4c cmp r0, #16 bcc _06004674 ldrb r0, [r7, #91] ; 0x5b ands r0, r0, #1 bne _06004674 bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #11 strh r1, [r0, #2] mov r1, #6 strh r1, [r0, #8] bl FUN_060001F0 b _06004B9C _06004674: mov r1, #1 ldrh r0, [r7, #70] ; 0x46 mov r1, r1, lsl r0 add r0, r5, #256 ; 0x100 ldrh r0, [r0, #244] ; 0xf4 ands r0, r1, r0 beq _060046A0 mov r1, r1, asr #1 ldr r0, _06004BAC ; =0x00001FFF ands r0, r1, r0 bne _060046C0 _060046A0: bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #6 strh r1, [r0, #2] strh r1, [r0, #8] bl FUN_060001F0 b _06004B9C _060046C0: bl FUN_060001E8 mov r1, #12 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #6 strh r1, [r0, #8] bl FUN_060001F0 add r0, r5, #256 ; 0x100 ldrh r1, [r0, #236] ; 0xec cmp r1, #1 bne _0600470C ldrh r1, [r7, #62] ; 0x3e ands r1, r1, #1 movne r1, #1 strneh r1, [r0, #236] ; 0xec moveq r1, #2 streqh r1, [r0, #236] ; 0xec b _06004724 _0600470C: ldrh r1, [r7, #62] ; 0x3e ands r1, r1, #2 movne r1, #2 strneh r1, [r0, #236] ; 0xec moveq r1, #1 streqh r1, [r0, #236] ; 0xec _06004724: ldrh r0, [r7, #60] ; 0x3c ands r0, r0, #32 movne r1, #1 addne r0, r5, #256 ; 0x100 strneh r1, [r0, #238] ; 0xee moveq r1, #0 addeq r0, r5, #256 ; 0x100 streqh r1, [r0, #238] ; 0xee ldrh r0, [r7, #76] ; 0x4c cmp r0, #0 moveq r0, #3 streqh r0, [r5, #230] ; 0xe6 movne r0, #2 strneh r0, [r5, #230] ; 0xe6 mov r0, #12 mov r1, r4 bl WMSP_SetAllParams cmp r0, #0 beq _06004B9C mov r0, r4 mov r1, #0 bl WMSP_WL_ParamSetNullKeyResponseMode ldrh r1, [r0, #4] cmp r1, #0 beq _06004798 ldr r0, _06004BB0 ; =0x00000216 mov r2, #0 bl FUN_060045A0 b _06004B9C _06004798: ldrh r0, [r7, #76] ; 0x4c cmp r0, #16 bcs _060047F4 ldrh r1, [r7, #66] ; 0x42 cmp r1, #0 moveq r0, #1 beq _060047C0 ldr r0, _06004BB4 ; =0x00002710 bl FUN_06001840 add r0, r0, #1 _060047C0: mov r0, r0, lsl #16 mov r1, r0, lsr #16 cmp r1, #255 ; 0xff movhi r1, #255 ; 0xff mov r0, r4 bl WMSP_WL_ParamSetBeaconLostThreshold ldrh r1, [r0, #4] cmp r1, #0 beq _060047F4 ldr r0, _06004BB8 ; =0x0000020B mov r2, #0 bl FUN_060045A0 b _06004B9C _060047F4: mov r0, r4 bl WMSP_WL_DevClass1 ldrh r1, [r0, #4] cmp r1, #0 beq _06004818 ldr r0, _06004BBC ; =0x00000303 mov r2, #0 bl FUN_060045A0 b _06004B9C _06004818: mov r0, #3 strh r0, [r5] ldr r0, [r6, #32] cmp r0, #0 movne r0, #1 moveq r0, #0 mov r0, r0, lsl #16 mov r8, r0, lsr #16 mov r0, r4 mov r1, r8 mov r2, #0 mov r3, #1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _06004868 mov r0, #1 mov r2, #0 bl FUN_060045A0 b _06004B9C _06004868: strh r8, [r5, #198] ; 0xc6 add r0, r7, #16 add r1, sp, #524 ; 0x20c mov r2, #64 ; 0x40 bl FUN_06000554 ldrh r0, [r5, #230] ; 0xe6 cmp r0, #2 bne _060048C8 mov r1, #32 add r0, sp, #512 ; 0x200 strh r1, [r0, #22] ldr r1, [r7, #84] ; 0x54 strh r1, [r0, #24] ldr r1, [r7, #84] ; 0x54 mov r1, r1, lsr #16 strh r1, [r0, #26] ldrh r1, [r7, #88] ; 0x58 strh r1, [r0, #28] mov r1, #0 strh r1, [r0, #30] add r0, r6, #8 add r1, sp, #544 ; 0x220 mov r2, #24 bl FUN_06000554 _060048C8: mov r0, r4 mov r1, #2000 ; 0x7d0 add r2, sp, #524 ; 0x20c bl WMSP_WL_MlmeJoin mov r2, r0 ldrh r1, [r2, #4] cmp r1, #0 bne _060048F4 ldrh r0, [r2, #6] cmp r0, #0 beq _06004904 _060048F4: mov r0, #3 ldrh r2, [r2, #6] bl FUN_060045A0 b _06004B9C _06004904: add r0, r2, #8 ldr r1, _06004BC0 ; =0x0000018A add r1, r5, r1 mov r2, #6 bl FUN_06000554 ldr r0, _06004BC0 ; =0x0000018A add r0, r5, r0 add r1, sp, #0 mov r2, #6 bl FUN_06000554 mov r0, r4 add r1, sp, #0 ldrh r2, [r6, #38] ; 0x26 mov r3, #2000 ; 0x7d0 bl WMSP_WL_MlmeAuthenticate mov r2, r0 ldrh r1, [r2, #4] cmp r1, #12 bne _0600497C ldrh r0, [r2, #6] cmp r0, #19 bne _0600497C bl FUN_060001E8 mov r1, #12 strh r1, [r0] strh r1, [r0, #2] mov r1, #6 strh r1, [r0, #8] bl FUN_060001F0 b _06004B9C _0600497C: cmp r1, #0 bne _06004990 ldrh r0, [r2, #6] cmp r0, #0 beq _060049A0 _06004990: mov r0, #4 ldrh r2, [r2, #6] bl FUN_060045A0 b _06004B9C _060049A0: ldr r0, _06004BC0 ; =0x0000018A add r0, r5, r0 add r1, sp, #6 mov r2, #6 bl FUN_06000554 mov r0, r4 add r1, sp, #6 mov r2, #1 mov r3, #2000 ; 0x7d0 bl WMSP_WL_MlmeAssociate mov r4, r0 bl FUN_060001A4 mov r6, r0 ldrh r2, [r4, #4] cmp r2, #12 bne _06004A10 ldrh r1, [r4, #6] cmp r1, #19 bne _06004A10 bl FUN_060001AC bl FUN_060001E8 mov r1, #12 strh r1, [r0] strh r1, [r0, #2] mov r1, #6 strh r1, [r0, #8] bl FUN_060001F0 b _06004B9C _06004A10: cmp r2, #0 bne _06004A24 ldrh r0, [r4, #6] cmp r0, #0 beq _06004A40 _06004A24: mov r0, r6 bl FUN_060001AC mov r0, #6 ldrh r1, [r4, #4] ldrh r2, [r4, #6] bl FUN_060045A0 b _06004B9C _06004A40: ldrh r1, [r4, #8] add r0, r5, #256 ; 0x100 strh r1, [r0, #136] ; 0x88 ldrh r0, [r7, #88] ; 0x58 strh r0, [r5, #186] ; 0xba mov r0, #1 add r1, r5, #504 ; 0x1f8 mov r2, #16 bl FUN_0600055C ldrh r0, [r7, #18] and r1, r0, #255 ; 0xff ands r0, r1, #2 movne r0, r1, asr #2 andne r4, r0, #255 ; 0xff moveq r0, r1, asr #2 addeq r0, r0, #25 andeq r4, r0, #255 ; 0xff mov r0, r4 bl WMSP_GetLinkLevel strh r0, [r5, #188] ; 0xbc mov r0, r4 bl WMSP_FillRssiIntoList bl FUN_060001A4 mov r4, r0 mov r1, #1 add r0, r5, #256 ; 0x100 strh r1, [r0, #130] ; 0x82 strh r1, [r5, #134] ; 0x86 ldr r2, [r5, #1976] ; 0x7b8 ldr r1, [r5, #1980] ; 0x7bc mov r0, #0 cmp r1, r0 cmpeq r2, r0 beq _06004ADC bl FUN_06000E98 orr r1, r1, #0 orr r0, r0, #1 str r0, [r5, #1848] ; 0x738 str r1, [r5, #1852] ; 0x73c _06004ADC: mov r0, #8 strh r0, [r5] ldrb r0, [r7, #91] ; 0x5b ands r0, r0, #4 movne r1, #42 ; 0x2a moveq r1, #0 ldrh r0, [r7, #92] ; 0x5c add r0, r0, r1 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_SetParentMaxSize ldrb r0, [r7, #91] ; 0x5b ands r0, r0, #4 movne r1, #6 moveq r1, #0 ldrh r0, [r7, #94] ; 0x5e add r0, r0, r1 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_SetChildMaxSize mov r0, r4 bl FUN_060001AC mov r0, #1 strh r0, [r5, #194] ; 0xc2 bl FUN_060001E8 mov r4, r0 mov r0, #12 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] mov r0, #7 strh r0, [r4, #8] add r0, r5, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 strh r0, [r4, #10] ldr r0, _06004BC0 ; =0x0000018A add r0, r5, r0 add r1, r4, #16 mov r2, #6 bl FUN_06000554 ldrh r0, [r5, #48] ; 0x30 strh r0, [r4, #22] ldrh r0, [r5, #50] ; 0x32 strh r0, [r4, #24] mov r0, r4 bl FUN_060001F0 mov r0, r6 bl FUN_060001AC _06004B9C: add sp, sp, #592 ; 0x250 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06004BA8: .word _0601A960 _06004BAC: .word 0x00001FFF _06004BB0: .word 0x00000216 _06004BB4: .word 0x00002710 _06004BB8: .word 0x0000020B _06004BBC: .word 0x00000303 _06004BC0: .word 0x0000018A arm_func_start FUN_06004BC4 FUN_06004BC4: ; 0x06004BC4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 bl FUN_060001E8 mov r1, #37 ; 0x25 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r7, [r0, #4] strh r6, [r0, #6] strh r5, [r0, #8] strh r4, [r0, #10] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start FUN_06004C10 FUN_06004C10: ; 0x06004C10 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 mov r4, r3 bl FUN_060001E8 mov r1, #13 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r7, [r0, #4] strh r6, [r0, #6] strh r5, [r0, #8] strh r4, [r0, #10] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start WMSP_IndicateDisconnectionFromMyself WMSP_IndicateDisconnectionFromMyself: ; 0x06004C5C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 mov r7, r1 mov r6, r2 ldr r0, _06004D20 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060001E8 mov r5, r0 mov r0, #0 strh r0, [r5, #2] cmp r8, #0 beq _06004CCC mov r0, #8 strh r0, [r5] mov r0, #26 strh r0, [r5, #8] ldr r0, _06004D24 ; =0x0000F001 strh r0, [r5, #18] strh r7, [r5, #16] mov r0, r6 add r1, r5, #10 mov r2, #6 bl FUN_06000554 ldrh r0, [r4, #48] ; 0x30 strh r0, [r5, #44] ; 0x2c ldrh r0, [r4, #50] ; 0x32 strh r0, [r5, #46] ; 0x2e b _06004D10 _06004CCC: mov r0, #12 strh r0, [r5] mov r0, #26 strh r0, [r5, #8] ldr r0, _06004D24 ; =0x0000F001 strh r0, [r5, #12] add r0, r4, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 strh r0, [r5, #10] mov r0, r6 add r1, r5, #16 mov r2, #6 bl FUN_06000554 ldrh r0, [r4, #48] ; 0x30 strh r0, [r5, #22] ldrh r0, [r4, #50] ; 0x32 strh r0, [r5, #24] _06004D10: mov r0, r5 bl FUN_060001F0 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06004D20: .word _0601A960 _06004D24: .word 0x0000F001 arm_func_start WMSP_DisconnectCore WMSP_DisconnectCore: ; 0x06004D28 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #580 ; 0x244 movs sl, r1 str r2, [sp] ldr r1, _0600531C ; =_0601A960 ldr r5, [r1, #1360] ; 0x550 ldr r1, [r0, #4] mov r1, r1, lsl #16 mov r9, r1, lsr #16 ldrne r0, [r0, #8] moveq r0, #0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 str r0, [sp, #4] mov r8, #0 mov r7, r8 ldrh r0, [r5] cmp r0, #9 beq _06004D7C cmp r0, #7 bne _06004D8C _06004D7C: ldr r0, [r5, #12] cmp r0, #1 moveq r7, #1 b _06004E88 _06004D8C: cmp r0, #10 beq _06004D9C cmp r0, #8 bne _06004E4C _06004D9C: bl FUN_060001A4 mov r4, r0 add r1, r5, #256 ; 0x100 ldrh r1, [r1, #130] ; 0x82 cmp r1, #0 bne _06004DF4 bl FUN_060001AC cmp sl, #0 bne _06004DEC bl FUN_060001E8 mov r1, #13 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #0 strh r1, [r0, #4] strh r1, [r0, #6] strh r9, [r0, #8] strh r1, [r0, #10] bl FUN_060001F0 _06004DEC: mov r0, #0 b _06005310 _06004DF4: ldr r0, [r5, #12] cmp r0, #1 bne _06004E24 mov r0, #0 str r0, [r5, #12] mov r7, #1 bl WMSP_CancelVAlarm bl WMSP_SetThreadPriorityLow ldrh r0, [r5] cmp r0, #10 moveq r0, #8 streqh r0, [r5] _06004E24: mov r1, #0 add r0, r5, #256 ; 0x100 strh r1, [r0, #130] ; 0x82 strh r1, [r5, #134] ; 0x86 str r1, [r5, #20] str r1, [r5, #16] str r1, [r5, #28] mov r0, r4 bl FUN_060001AC b _06004E88 _06004E4C: cmp sl, #0 bne _06004E80 bl FUN_060001E8 mov r1, #13 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, r8 strh r1, [r0, #4] strh r1, [r0, #6] strh r9, [r0, #8] strh r1, [r0, #10] bl FUN_060001F0 _06004E80: mov r0, #0 b _06005310 _06004E88: ldrh r0, [r5] cmp r0, #10 beq _06004E9C cmp r0, #8 bne _060050E0 _06004E9C: ldr r0, _06005320 ; =0x0000018A add r0, r5, r0 add r1, sp, #56 ; 0x38 mov r2, #6 bl FUN_06000554 mov r8, #0 add r6, sp, #56 ; 0x38 mov r4, #3 b _06004F5C _06004EC0: add r0, sp, #68 ; 0x44 mov r1, r6 mov r2, r4 bl WMSP_WL_MlmeDeAuthenticate ldrh r1, [r0, #4] cmp r1, #7 bgt _06004F08 cmp r1, #7 bge _06004F10 cmp r1, #1 bgt _06004F18 cmp r1, #0 blt _06004F18 cmp r1, #0 beq _06004F64 cmp r1, #1 beq _06004F64 b _06004F18 _06004F08: cmp r1, #12 bne _06004F18 _06004F10: add r8, r8, #1 b _06004F5C _06004F18: cmp sl, #0 beq _06004F34 mov r0, #5 mov r2, r9 mov r3, #0 bl FUN_06004BC4 b _06004F44 _06004F34: mov r0, #5 mov r2, r9 mov r3, #0 bl FUN_06004C10 _06004F44: cmp r7, #0 beq _06004F54 mov r0, #1 bl WMSP_CleanSendQueue _06004F54: mov r0, #0 b _06005310 _06004F5C: cmp r8, #2 blt _06004EC0 _06004F64: mov r8, #1 mov r0, #0 strh r0, [r5, #194] ; 0xc2 mov r0, #3 strh r0, [r5] add r0, sp, #68 ; 0x44 mov r1, r8 bl WMSP_WL_MlmeReset ldrh r1, [r0, #4] cmp r1, #0 beq _06004FD4 cmp sl, #0 beq _06004FAC mov r0, #0 mov r2, r9 mov r3, r8 bl FUN_06004BC4 b _06004FBC _06004FAC: mov r0, #0 mov r2, r9 mov r3, r8 bl FUN_06004C10 _06004FBC: cmp r7, #0 beq _06004FCC mov r0, #1 bl WMSP_CleanSendQueue _06004FCC: mov r0, #0 b _06005310 _06004FD4: add r0, sp, #68 ; 0x44 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _0600502C cmp sl, #0 beq _06005004 ldr r0, _06005324 ; =0x00000302 mov r2, r9 mov r3, r8 bl FUN_06004BC4 b _06005014 _06005004: ldr r0, _06005324 ; =0x00000302 mov r2, r9 mov r3, r8 bl FUN_06004C10 _06005014: cmp r7, #0 beq _06005024 mov r0, #1 bl WMSP_CleanSendQueue _06005024: mov r0, #0 b _06005310 _0600502C: mov r0, #2 strh r0, [r5] mov r1, #0 str r1, [r5, #408] ; 0x198 add r0, r5, #256 ; 0x100 strh r1, [r0, #150] ; 0x96 add r0, r5, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000D08 bl WMSP_ResetSizeVars cmp sl, #1 bne _060050BC bl FUN_060001E8 mov r4, r0 mov r0, #12 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] mov r0, #9 strh r0, [r4, #8] ldr r0, [sp, #4] strh r0, [r4, #12] add r0, r5, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 strh r0, [r4, #10] add r0, sp, #56 ; 0x38 add r1, r4, #16 mov r2, #6 bl FUN_06000554 ldrh r0, [r5, #48] ; 0x30 strh r0, [r4, #22] ldrh r0, [r5, #50] ; 0x32 strh r0, [r4, #24] mov r0, r4 bl FUN_060001F0 b _060050CC _060050BC: mov r0, #0 mov r1, r0 add r2, sp, #56 ; 0x38 bl WMSP_IndicateDisconnectionFromMyself _060050CC: cmp r7, #0 beq _06005300 mov r0, #1 bl WMSP_CleanSendQueue b _06005300 _060050E0: mov r6, #1 str r6, [sp, #36] ; 0x24 mov r0, #0 str r0, [sp, #24] mov r0, #6 str r0, [sp, #20] str r6, [sp, #52] ; 0x34 mov r0, #8 str r0, [sp, #44] ; 0x2c mov r0, #9 str r0, [sp, #48] ; 0x30 mov r0, #3 str r0, [sp, #28] str r6, [sp, #16] b _060052F8 _0600511C: ldr r0, [sp, #16] mov r4, r0, lsl r6 add r0, r5, #256 ; 0x100 ldrh r0, [r0, #130] ; 0x82 and r0, r0, r9 ands r0, r4, r0 beq _060052F4 mov r0, r6, lsl #16 mov fp, r0, lsr #16 add r2, r5, #296 ; 0x128 sub r1, r6, #1 mov r0, #6 mla r0, r1, r0, r2 str r0, [sp, #12] add r1, sp, #62 ; 0x3e ldr r2, [sp, #20] bl FUN_06000554 ldr r0, [sp, #24] str r0, [sp, #8] b _060051EC _0600516C: add r0, sp, #68 ; 0x44 add r1, sp, #62 ; 0x3e ldr r2, [sp, #28] bl WMSP_WL_MlmeDeAuthenticate ldrh r1, [r0, #4] cmp r1, #0 beq _060051F8 cmp r1, #7 beq _06005198 cmp r1, #12 bne _060051A8 _06005198: ldr r0, [sp, #8] add r0, r0, #1 str r0, [sp, #8] b _060051EC _060051A8: cmp sl, #0 beq _060051C4 mov r0, #5 mov r2, r9 mov r3, r8 bl FUN_06004BC4 b _060051D4 _060051C4: mov r0, #5 mov r2, r9 mov r3, r8 bl FUN_06004C10 _060051D4: cmp r7, #0 beq _060051E4 mov r0, #1 bl WMSP_CleanSendQueue _060051E4: mov r0, #0 b _06005310 _060051EC: ldr r0, [sp, #8] cmp r0, #2 blt _0600516C _060051F8: bl FUN_060001A4 str r0, [sp, #32] add r2, r5, #256 ; 0x100 ldrh r1, [r2, #130] ; 0x82 ands r3, r1, r4 beq _060052F0 ldr r0, [sp, #36] ; 0x24 orr r0, r8, r0, lsl fp mov r0, r0, lsl #16 mov r8, r0, lsr #16 mvn r3, r4 and r0, r1, r3 strh r0, [r2, #130] ; 0x82 ldrh r0, [r5, #134] ; 0x86 and r0, r0, r3 strh r0, [r5, #134] ; 0x86 add r1, r5, fp, lsl #3 ldr r0, [sp, #24] str r0, [r1, #1848] ; 0x738 str r0, [r1, #1852] ; 0x73c ldr r0, [sp, #12] ldr r1, [sp, #24] ldr r2, [sp, #20] bl FUN_06000D08 ldr r0, [sp, #32] bl FUN_060001AC cmp sl, #1 bne _060052C4 bl FUN_060001E8 str r0, [sp, #40] ; 0x28 ldr r1, [sp, #44] ; 0x2c strh r1, [r0] ldr r1, [sp, #24] strh r1, [r0, #2] ldr r1, [sp, #48] ; 0x30 strh r1, [r0, #8] ldr r1, [sp, #4] strh r1, [r0, #18] strh fp, [r0, #16] add r0, sp, #62 ; 0x3e ldr r1, [sp, #40] ; 0x28 add r1, r1, #10 ldr r2, [sp, #20] bl FUN_06000554 ldrh r1, [r5, #48] ; 0x30 ldr r0, [sp, #40] ; 0x28 strh r1, [r0, #44] ; 0x2c ldrh r1, [r5, #50] ; 0x32 strh r1, [r0, #46] ; 0x2e bl FUN_060001F0 b _060052D8 _060052C4: ldr r0, [sp, #52] ; 0x34 mov r1, r6, lsl #16 mov r1, r1, lsr #16 add r2, sp, #62 ; 0x3e bl WMSP_IndicateDisconnectionFromMyself _060052D8: cmp r7, #0 beq _060052F4 mov r0, r4, lsl #16 mov r0, r0, lsr #16 bl WMSP_CleanSendQueue b _060052F4 _060052F0: bl FUN_060001AC _060052F4: add r6, r6, #1 _060052F8: cmp r6, #16 blt _0600511C _06005300: ldr r0, [sp] cmp r0, #0 strneh r8, [r0] mov r0, #1 _06005310: add sp, sp, #580 ; 0x244 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600531C: .word _0601A960 _06005320: .word 0x0000018A _06005324: .word 0x00000302 arm_func_start WMSP_Disconnect WMSP_Disconnect: ; 0x06005328 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r1, [r0, #4] mov r1, r1, lsl #16 mov r4, r1, lsr #16 mov r1, #0 add r2, sp, #0 bl WMSP_DisconnectCore cmp r0, #1 bne _06005374 bl FUN_060001E8 mov r1, #13 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] strh r4, [r0, #8] ldrh r1, [sp] strh r1, [r0, #10] bl FUN_060001F0 _06005374: add sp, sp, #8 ldmia sp!, {r4, lr} bx lr arm_func_start WMSP_StartMP WMSP_StartMP: ; 0x06005380 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} sub sp, sp, #512 ; 0x200 ldr r1, _06005630 ; =wmspW ldr r2, _06005634 ; =_0601A960 ldr r4, [r2, #1360] ; 0x550 mov sl, #0 ldr r9, [r0, #4] ldr r8, [r0, #8] ldr r7, [r0, #12] ldr r6, [r0, #16] add r5, r0, #20 ldrh r0, [r4, #156] ; 0x9c cmp r0, #0 bne _06005408 ldrh r0, [r4, #60] ; 0x3c add r0, r0, #31 bic r0, r0, #31 cmp r6, r0 movcc sl, #6 add r0, r4, #256 ; 0x100 ldrh r0, [r0, #136] ; 0x88 cmp r0, #0 ldrneh r0, [r4, #62] ; 0x3e addne r0, r0, #81 ; 0x51 bicne r0, r0, #31 bne _06005400 ldrh r0, [r4, #62] ; 0x3e add r2, r0, #12 ldrh r0, [r4, #248] ; 0xf8 mul r0, r2, r0 add r0, r0, #41 ; 0x29 bic r0, r0, #31 _06005400: cmp r8, r0 movcc sl, #6 _06005408: ldrh r0, [r4, #230] ; 0xe6 cmp r0, #2 bne _0600543C add r0, r4, #256 ; 0x100 ldrh r0, [r0, #246] ; 0xf6 mov r2, #1 add r1, r1, #4096 ; 0x1000 ldr r1, [r1, #1356] ; 0x54c ldrh r1, [r1, #70] ; 0x46 mov r1, r2, lsl r1 mov r1, r1, asr #1 ands r0, r0, r1 moveq sl, #6 _0600543C: cmp sl, #0 beq _06005464 bl FUN_060001E8 mov r1, #14 strh r1, [r0] strh sl, [r0, #2] mov r1, #10 strh r1, [r0, #4] bl FUN_060001F0 b _06005624 _06005464: mov r1, #0 ldr r0, [r4, #12] cmp r0, #0 strne r1, [r4, #12] movne r1, #1 cmp r1, #0 beq _06005488 ldr r0, _06005638 ; =0x0000FFFF bl WMSP_CleanSendQueue _06005488: bl WMSP_InitSendQueue mov r0, r5 mov r1, #0 bl WMSP_SetMPParameterCore bl FUN_060001A4 mov r5, r0 ldrh r2, [r4] ldr r1, _0600563C ; =0x0000FFF9 add r1, r2, r1 mov r1, r1, lsl #16 mov r1, r1, lsr #16 cmp r1, #1 bhi _06005600 mov r2, #0 strh r2, [r4, #132] ; 0x84 strh r2, [r4, #94] ; 0x5e mov r1, #1 strh r1, [r4, #96] ; 0x60 strh r2, [r4, #136] ; 0x88 strh r2, [r4, #158] ; 0x9e mov r0, #60 ; 0x3c strh r0, [r4, #160] ; 0xa0 str r2, [r4, #1844] ; 0x734 strh r2, [r4, #138] ; 0x8a strh r2, [r4, #140] ; 0x8c strh r2, [r4, #142] ; 0x8e strh r2, [r4, #144] ; 0x90 strh r2, [r4, #102] ; 0x66 str r9, [r4, #116] ; 0x74 strh r8, [r4, #114] ; 0x72 add r0, r9, r8 str r0, [r4, #120] ; 0x78 strh r2, [r4, #112] ; 0x70 str r7, [r4, #124] ; 0x7c strh r6, [r4, #128] ; 0x80 strh r2, [r4, #98] ; 0x62 strh r2, [r4, #100] ; 0x64 strh r2, [r4, #104] ; 0x68 strh r2, [r4, #106] ; 0x6a ldr r0, _06005638 ; =0x0000FFFF strh r0, [r4, #190] ; 0xbe strh r1, [r4, #192] ; 0xc0 bl FUN_06000E98 mov r2, #0 orr r1, r1, #0 orr r3, r0, #1 _06005540: add r0, r4, r2, lsl #3 str r3, [r0, #1848] ; 0x738 str r1, [r0, #1852] ; 0x73c add r2, r2, #1 cmp r2, #16 blt _06005540 bl WMSP_SetThreadPriorityHigh mov r0, #0 strh r0, [r4, #206] ; 0xce bl WMSP_SetVAlarm ldrh r0, [r4] cmp r0, #8 moveq r0, #10 streqh r0, [r4] beq _06005588 cmp r0, #7 moveq r0, #9 streqh r0, [r4] _06005588: bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #10 strh r1, [r0, #4] bl FUN_060001F0 mov r0, #1 str r0, [r4, #12] mov r0, r5 bl FUN_060001AC add r0, sp, #0 mov r1, #1 bl WMSP_WL_ParamSetNullKeyResponseMode mov r4, r0 ldrh r0, [r4, #4] cmp r0, #0 beq _06005624 bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] ldr r1, _06005640 ; =0x00000216 strh r1, [r0, #4] ldrh r1, [r4, #4] strh r1, [r0, #6] bl FUN_060001F0 b _06005624 _06005600: bl FUN_060001AC bl FUN_060001E8 mov r1, #14 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] mov r1, #10 strh r1, [r0, #4] bl FUN_060001F0 _06005624: add sp, sp, #512 ; 0x200 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _06005630: .word wmspW _06005634: .word _0601A960 _06005638: .word 0x0000FFFF _0600563C: .word 0x0000FFF9 _06005640: .word 0x00000216 arm_func_start WMSP_SetMPData WMSP_SetMPData: ; 0x06005644 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #20 ldr r1, _06005784 ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 add r2, r4, #256 ; 0x100 ldrh r5, [r2, #130] ; 0x82 ldr sl, [r0, #4] ldr r1, [r0, #8] mov r1, r1, lsl #16 mov r9, r1, lsr #16 ldr r8, [r0, #12] ldr r1, [r0, #16] mov r1, r1, lsl #16 mov r1, r1, lsr #16 str r1, [sp, #16] ldr r1, [r0, #20] mov r1, r1, lsl #16 mov r1, r1, lsr #16 ldr r7, [r0, #24] ldr fp, [r0, #28] ldrh r0, [r2, #136] ; 0x88 cmp r0, #0 movne r8, #1 ldr r0, [r4, #12] cmp r0, #0 moveq r6, #3 beq _060056E0 ands r0, r8, r5 moveq r6, #0 beq _060056E0 str sl, [sp] str r9, [sp, #4] str r7, [sp, #8] str fp, [sp, #12] mov r0, r5 ldr r2, [sp, #16] mov r3, r8 bl WMSP_PutSendQueue mov r6, r0 _060056E0: cmp r6, #2 beq _06005778 bl FUN_060001E8 mov r1, #129 ; 0x81 strh r1, [r0] strh r6, [r0, #2] mov r1, #20 strh r1, [r0, #8] ldr r1, [sp, #16] strh r1, [r0, #10] strh r8, [r0, #12] cmp r6, #10 andeq r1, r8, r5 streqh r1, [r0, #14] movne r1, #0 strneh r1, [r0, #14] mov r1, #0 strh r1, [r0, #16] strh r9, [r0, #24] str sl, [r0, #20] str r7, [r0, #28] str fp, [r0, #32] ldr r1, _06005788 ; =0x0000FFFF strh r1, [r0, #26] ldrh r2, [r4, #48] ; 0x30 ldrh r3, [r4, #50] ; 0x32 add r1, r4, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 moveq r1, r2 movne r1, r3 strh r1, [r0, #36] ; 0x24 add r1, r4, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 movne r3, r2 strh r3, [r0, #38] ; 0x26 bl FUN_060001F0 _06005778: add sp, sp, #20 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06005784: .word _0601A960 _06005788: .word 0x0000FFFF arm_func_start FUN_0600578C FUN_0600578C: ; 0x0600578C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #16 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_EndMP WMSP_EndMP: ; 0x060057C8 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #512 ; 0x200 ldr r0, _060058DC ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 mov r6, #0 ldrh r0, [r4] cmp r0, #9 beq _0600580C cmp r0, #10 beq _0600580C bl FUN_060001E8 mov r1, #16 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _060058D0 _0600580C: bl FUN_060001A4 mov r5, r0 ldr r0, [r4, #12] cmp r0, #1 moveq r6, #1 mov r0, #0 str r0, [r4, #12] bl WMSP_CancelVAlarm bl WMSP_SetThreadPriorityLow ldrh r0, [r4] cmp r0, #10 moveq r0, #8 streqh r0, [r4] beq _06005850 cmp r0, #9 moveq r0, #7 streqh r0, [r4] _06005850: mov r0, r5 bl FUN_060001AC add r0, sp, #0 mov r1, #0 bl WMSP_WL_ParamSetNullKeyResponseMode ldrh r1, [r0, #4] cmp r1, #0 beq _0600587C ldr r0, _060058E0 ; =0x00000216 bl FUN_0600578C b _060058D0 _0600587C: add r0, sp, #0 mov r1, #7 bl WMSP_WL_MaClearData ldrh r1, [r0, #4] cmp r1, #0 beq _060058A0 mov r0, #260 ; 0x104 bl FUN_0600578C b _060058D0 _060058A0: mov r0, #0 strh r0, [r4, #138] ; 0x8a cmp r6, #0 beq _060058B8 ldr r0, _060058E4 ; =0x0000FFFF bl WMSP_CleanSendQueue _060058B8: bl FUN_060001E8 mov r1, #16 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _060058D0: add sp, sp, #512 ; 0x200 ldmia sp!, {r4, r5, r6, lr} bx lr _060058DC: .word _0601A960 _060058E0: .word 0x00000216 _060058E4: .word 0x0000FFFF arm_func_start WMSP_StartDCF WMSP_StartDCF: ; 0x060058E8 stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr r1, _06005970 ; =_0601A960 ldr r5, [r1, #1360] ; 0x550 ldr r8, [r0, #4] ldr r0, [r0, #8] mov r6, r0, lsl #16 mov r7, r6, lsr #16 bl FUN_060001A4 mov r4, r0 str r8, [r5, #176] ; 0xb0 strh r7, [r5, #184] ; 0xb8 add r0, r8, r6, lsr #16 str r0, [r5, #180] ; 0xb4 mov r0, #0 strh r0, [r5, #174] ; 0xae str r0, [r5, #168] ; 0xa8 strh r0, [r5, #172] ; 0xac str r0, [r5, #24] mov r0, #11 strh r0, [r5] bl FUN_060001E8 mov r1, #17 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] mov r1, #14 strh r1, [r0, #4] bl FUN_060001F0 mov r0, #1 str r0, [r5, #16] mov r0, r4 bl FUN_060001AC ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06005970: .word _0601A960 arm_func_start WMSP_SetDCFData WMSP_SetDCFData: ; 0x06005974 stmdb sp!, {r4, r5, lr} sub sp, sp, #564 ; 0x234 mov r5, r0 ldr r0, _06005A68 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r0, r5, #4 add r1, r4, #162 ; 0xa2 mov r2, #6 bl FUN_06000554 ldr r0, [r5, #12] str r0, [r4, #168] ; 0xa8 ldr r0, [r5, #16] strh r0, [r4, #172] ; 0xac mov r0, #1 str r0, [r4, #24] mov r0, #0 add r1, sp, #0 mov r2, #48 ; 0x30 bl FUN_0600055C mov r0, #0 strh r0, [sp] ldr r0, [r5, #16] strh r0, [sp, #6] add r0, r4, #256 ; 0x100 ldrh r0, [r0, #236] ; 0xec cmp r0, #2 moveq r0, #20 movne r0, #10 strb r0, [sp, #14] add r0, r5, #4 add r1, sp, #24 mov r2, #6 bl FUN_06000554 add r0, r4, #224 ; 0xe0 add r1, sp, #30 mov r2, #6 bl FUN_06000554 ldr r0, [r5, #12] str r0, [sp, #44] ; 0x2c add r0, sp, #48 ; 0x30 add r1, sp, #0 bl WMSP_WL_MaData mov r4, r0 bl FUN_060001E8 mov r1, #18 strh r1, [r0] ldrh r1, [r4, #4] cmp r1, #0 moveq r1, #0 movne r1, #1 strh r1, [r0, #2] ldrh r1, [r4, #4] cmp r1, #0 movne r1, #256 ; 0x100 strneh r1, [r0, #4] ldrneh r1, [r4, #4] strneh r1, [r0, #6] bl FUN_060001F0 add sp, sp, #564 ; 0x234 ldmia sp!, {r4, r5, lr} bx lr _06005A68: .word _0601A960 arm_func_start FUN_06005A6C FUN_06005A6C: ; 0x06005A6C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #19 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_EndDCF WMSP_EndDCF: ; 0x06005AA8 stmdb sp!, {r4, lr} sub sp, sp, #512 ; 0x200 ldr r0, _06005B44 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060001A4 ldrh r1, [r4] cmp r1, #11 beq _06005AE8 bl FUN_060001AC bl FUN_060001E8 mov r1, #19 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06005B38 _06005AE8: mov r1, #0 str r1, [r4, #16] mov r1, #8 strh r1, [r4] bl FUN_060001AC add r0, sp, #0 mov r1, #7 bl WMSP_WL_MaClearData ldrh r1, [r0, #4] cmp r1, #0 beq _06005B20 mov r0, #260 ; 0x104 bl FUN_06005A6C b _06005B38 _06005B20: bl FUN_060001E8 mov r1, #19 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06005B38: add sp, sp, #512 ; 0x200 ldmia sp!, {r4, lr} bx lr _06005B44: .word _0601A960 arm_func_start FUN_06005B48 FUN_06005B48: ; 0x06005B48 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #20 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_SetWEPKeyEx WMSP_SetWEPKeyEx: ; 0x06005B84 stmdb sp!, {r4, r5, lr} sub sp, sp, #516 ; 0x204 mov r5, r0 ldr r0, _06005C60 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r1, [r5, #4] add r0, r4, #256 ; 0x100 strh r1, [r0, #150] ; 0x96 ldrh r0, [r0, #150] ; 0x96 cmp r0, #3 addls pc, pc, r0, lsl #2 b _06005BDC b _06005BC4 b _06005BD0 b _06005BD0 b _06005BD0 _06005BC4: mov r0, #0 str r0, [r4, #408] ; 0x198 b _06005BE4 _06005BD0: mov r0, #1 str r0, [r4, #408] ; 0x198 b _06005BE4 _06005BDC: mov r0, #0 str r0, [r4, #408] ; 0x198 _06005BE4: ldr r0, [r4, #408] ; 0x198 cmp r0, #1 bne _06005C04 ldr r0, [r5, #8] add r1, r4, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000554 b _06005C14 _06005C04: add r0, r4, #412 ; 0x19c mov r1, #0 mov r2, #80 ; 0x50 bl FUN_06000D08 _06005C14: ldr r0, [r5, #12] strh r0, [r4, #196] ; 0xc4 add r0, sp, #0 ldrh r1, [r4, #196] ; 0xc4 bl WMSP_WL_ParamSetWepKeyId ldrh r1, [r0, #4] cmp r1, #0 beq _06005C3C ldr r0, _06005C64 ; =0x00000207 bl FUN_06005B48 _06005C3C: bl FUN_060001E8 mov r1, #39 ; 0x27 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, lr} bx lr _06005C60: .word _0601A960 _06005C64: .word 0x00000207 arm_func_start WMSP_SetWEPKey WMSP_SetWEPKey: ; 0x06005C68 stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _06005D18 ; =_0601A960 ldr r3, [r1, #1360] ; 0x550 ldr r2, [r0, #4] add r1, r3, #256 ; 0x100 strh r2, [r1, #150] ; 0x96 ldrh r1, [r1, #150] ; 0x96 cmp r1, #3 addls pc, pc, r1, lsl #2 b _06005CBC b _06005CA4 b _06005CB0 b _06005CB0 b _06005CB0 _06005CA4: mov r1, #0 str r1, [r3, #408] ; 0x198 b _06005CC4 _06005CB0: mov r1, #1 str r1, [r3, #408] ; 0x198 b _06005CC4 _06005CBC: mov r1, #0 str r1, [r3, #408] ; 0x198 _06005CC4: ldr r1, [r3, #408] ; 0x198 cmp r1, #1 bne _06005CE4 ldr r0, [r0, #8] add r1, r3, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000554 b _06005CF4 _06005CE4: add r0, r3, #412 ; 0x19c mov r1, #0 mov r2, #80 ; 0x50 bl FUN_06000D08 _06005CF4: bl FUN_060001E8 mov r1, #20 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06005D18: .word _0601A960 arm_func_start WMSP_SetGameInfo WMSP_SetGameInfo: ; 0x06005D1C stmdb sp!, {r4, lr} sub sp, sp, #640 ; 0x280 ldr r1, _06005E08 ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 ldr r1, [r0, #4] str r1, [r4, #232] ; 0xe8 ldr r1, [r0, #8] strh r1, [r4, #236] ; 0xec ldr r1, [r0, #12] str r1, [r4, #240] ; 0xf0 ldr r1, [r0, #16] strh r1, [r4, #244] ; 0xf4 ldr r0, [r0, #20] and r1, r0, #255 ; 0xff ands r0, r1, #1 movne r0, #1 moveq r0, #0 strh r0, [r4, #246] ; 0xf6 ands r0, r1, #2 movne r0, #1 moveq r0, #0 strh r0, [r4, #250] ; 0xfa ands r0, r1, #4 movne r0, #1 moveq r0, #0 strh r0, [r4, #252] ; 0xfc ands r0, r1, #8 movne r0, #1 moveq r0, #0 strh r0, [r4, #254] ; 0xfe add r0, sp, #512 ; 0x200 add r1, r4, #232 ; 0xe8 bl WMSP_CopyParentParam add r0, sp, #0 ldrh r1, [r4, #236] ; 0xec add r1, r1, #16 mov r1, r1, lsl #16 mov r1, r1, lsr #16 add r2, sp, #512 ; 0x200 bl WMSP_WL_ParamSetGameInfo mov r4, r0 bl FUN_060001E8 mov r1, #24 strh r1, [r0] ldrh r1, [r4, #4] cmp r1, #0 moveq r1, #0 movne r1, #1 strh r1, [r0, #2] ldrh r1, [r4, #4] cmp r1, #0 ldrne r1, _06005E0C ; =0x00000245 strneh r1, [r0, #4] ldrneh r1, [r4, #4] strneh r1, [r0, #6] bl FUN_060001F0 add sp, sp, #640 ; 0x280 ldmia sp!, {r4, lr} bx lr _06005E08: .word _0601A960 _06005E0C: .word 0x00000245 arm_func_start FUN_06005E10 FUN_06005E10: ; 0x06005E10 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #25 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_SetBeaconTxRxInd WMSP_SetBeaconTxRxInd: ; 0x06005E4C stmfd sp!, {lr} sub sp, sp, #516 ; 0x204 mov r1, r0 add r0, sp, #0 ldr r1, [r1, #4] mov r1, r1, lsl #16 mov r1, r1, lsr #16 bl WMSP_WL_ParamSetBeaconSendRecvInd ldrh r1, [r0, #4] cmp r1, #0 beq _06005E84 ldr r0, _06005EA8 ; =0x00000215 bl FUN_06005E10 b _06005E9C _06005E84: bl FUN_060001E8 mov r1, #25 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06005E9C: add sp, sp, #516 ; 0x204 ldmfd sp!, {lr} bx lr _06005EA8: .word 0x00000215 arm_func_start WMSP_StartTestMode WMSP_StartTestMode: ; 0x06005EAC stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #26 strh r1, [r0] mov r1, #4 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start WMSP_StopTestMode WMSP_StopTestMode: ; 0x06005ED8 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #27 strh r1, [r0] mov r1, #4 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start FUN_06005F04 FUN_06005F04: ; 0x06005F04 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #29 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_SetLifeTime WMSP_SetLifeTime: ; 0x06005F40 stmdb sp!, {r4, r5, lr} sub sp, sp, #516 ; 0x204 mov r3, r0 ldr r0, _06006050 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, [r3, #16] mov r0, r0, lsl #16 mov r5, r0, lsr #16 add r0, sp, #0 ldr r1, [r3, #4] mov r1, r1, lsl #16 mov r1, r1, lsr #16 ldr r2, [r3, #8] mov r2, r2, lsl #16 mov r2, r2, lsr #16 ldr r3, [r3, #12] mov r3, r3, lsl #16 mov r3, r3, lsr #16 bl WMSP_WL_ParamSetLifeTime ldrh r1, [r0, #4] cmp r1, #0 beq _06005FA4 ldr r0, _06006054 ; =0x00000211 bl FUN_06005F04 b _06006044 _06005FA4: ldr r0, _06006058 ; =0x0000FFFF cmp r5, r0 beq _06005FF8 cmp r5, #0 moveq r1, #1 moveq r0, #0 beq _06005FEC mov r0, #100 ; 0x64 mul r3, r5, r0 mov r2, r3, asr #31 mov r1, #0 ldr r0, _0600605C ; =0x000082EA umull ip, r5, r3, r0 mla r5, r3, r1, r5 mla r5, r2, r0, r5 mov r0, r5, lsr #6 mov r1, ip, lsr #6 orr r1, r1, r5, lsl #26 _06005FEC: str r1, [r4, #1976] ; 0x7b8 str r0, [r4, #1980] ; 0x7bc b _06006004 _06005FF8: mov r0, #0 str r0, [r4, #1976] ; 0x7b8 str r0, [r4, #1980] ; 0x7bc _06006004: bl FUN_06000E98 mov r2, #0 orr r1, r1, #0 orr r3, r0, #1 _06006014: add r0, r4, r2, lsl #3 str r3, [r0, #1848] ; 0x738 str r1, [r0, #1852] ; 0x73c add r2, r2, #1 cmp r2, #16 blt _06006014 bl FUN_060001E8 mov r1, #29 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06006044: add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, lr} bx lr _06006050: .word _0601A960 _06006054: .word 0x00000211 _06006058: .word 0x0000FFFF _0600605C: .word 0x000082EA arm_func_start FUN_06006060 FUN_06006060: ; 0x06006060 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #30 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_MeasureChannel WMSP_MeasureChannel: ; 0x0600609C stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #532 ; 0x214 mov r8, r0 ldr r0, _06006244 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r7, sp, #20 ldrh r0, [r4] cmp r0, #2 beq _060060DC bl FUN_060001E8 mov r1, #30 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06006238 _060060DC: mov r0, r7 bl WMSP_WL_DevGetStationState ldrh r1, [r0, #4] cmp r1, #0 beq _060060FC mov r0, #776 ; 0x308 bl FUN_06006060 b _06006238 _060060FC: ldrh r1, [r0, #6] mov r0, #2 strh r0, [r4, #230] ; 0xe6 cmp r1, #16 bne _06006180 mov r0, #10 mov r1, r7 bl WMSP_SetAllParams cmp r0, #0 beq _06006238 mov r0, r7 bl WMSP_WL_DevClass1 ldrh r1, [r0, #4] cmp r1, #0 beq _06006144 ldr r0, _06006248 ; =0x00000303 bl FUN_06006060 b _06006238 _06006144: mov r0, #3 strh r0, [r4] mov r0, r7 mov r1, #1 mov r2, #0 mov r3, r1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _06006178 mov r0, #1 bl FUN_06006060 b _06006238 _06006178: mov r0, #1 strh r0, [r4, #198] ; 0xc6 _06006180: ldrh r6, [r8, #2] ldrh r5, [r8, #4] ldrh r9, [r8, #6] ldrh r8, [r8, #8] add r0, sp, #4 mov r1, #0 mov r2, #16 bl FUN_06000D08 strb r9, [sp, #4] add r0, sp, #4 str r0, [sp] mov r0, r7 mov r1, r6 mov r2, r5 mov r3, r8 bl WMSP_WL_MlmeMeasureChannel ldrh r1, [r0, #4] cmp r1, #0 beq _060061D8 mov r0, #10 bl FUN_06006060 b _06006238 _060061D8: ldrh r1, [r0, #8] and r0, r1, #255 ; 0xff mov r0, r0, lsl #16 mov r5, r0, lsr #16 mov r0, r1, lsl #8 mov r6, r0, lsr #16 mov r0, r7 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _06006210 ldr r0, _0600624C ; =0x00000302 bl FUN_06006060 b _06006238 _06006210: mov r0, #2 strh r0, [r4] bl FUN_060001E8 mov r1, #30 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] strh r5, [r0, #8] strh r6, [r0, #10] bl FUN_060001F0 _06006238: add sp, sp, #532 ; 0x214 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06006244: .word _0601A960 _06006248: .word 0x00000303 _0600624C: .word 0x00000302 arm_func_start FUN_06006250 FUN_06006250: ; 0x06006250 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #31 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_InitWirelessCounter WMSP_InitWirelessCounter: ; 0x0600628C stmfd sp!, {lr} sub sp, sp, #516 ; 0x204 add r0, sp, #0 bl WMSP_WL_DevSetInitializeWirelessCounter ldrh r1, [r0, #4] cmp r1, #0 beq _060062B4 ldr r0, _060062D8 ; =0x00000305 bl FUN_06006250 b _060062CC _060062B4: bl FUN_060001E8 mov r1, #31 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _060062CC: add sp, sp, #516 ; 0x204 ldmfd sp!, {lr} bx lr _060062D8: .word 0x00000305 arm_func_start FUN_060062DC FUN_060062DC: ; 0x060062DC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #32 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_GetWirelessCounter WMSP_GetWirelessCounter: ; 0x06006318 stmdb sp!, {r4, r5, lr} sub sp, sp, #516 ; 0x204 add r0, sp, #0 bl WMSP_WL_DevGetWirelessCounter mov r5, r0 ldrh r1, [r5, #4] cmp r1, #0 beq _06006344 ldr r0, _06006380 ; =0x00000307 bl FUN_060062DC b _06006374 _06006344: bl FUN_060001E8 mov r4, r0 mov r0, #32 strh r0, [r4] mov r0, #0 strh r0, [r4, #2] add r0, r5, #8 add r1, r4, #8 mov r2, #180 ; 0xb4 bl FUN_06000EA0 mov r0, r4 bl FUN_060001F0 _06006374: add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, lr} bx lr _06006380: .word 0x00000307 arm_func_start FUN_06006384 FUN_06006384: ; 0x06006384 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r5, _06006434 ; =wmspW ldr r0, _06006438 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060001A4 ldrh r1, [r4, #206] ; 0xce cmp r1, #1 bne _060063B0 bl FUN_060001AC b _06006428 _060063B0: mov r1, #1 strh r1, [r4, #206] ; 0xce bl FUN_060001AC bl WMSP_GetInternalRequestBuf movs r1, r0 moveq r0, #0 beq _060063E0 mov r0, #28 str r0, [r1] add r0, r5, #136 ; 0x88 mov r2, #0 bl FUN_060006F8 _060063E0: cmp r0, #0 bne _06006428 mov r0, #0 strh r0, [r4, #206] ; 0xce add r0, r5, #4096 ; 0x1000 ldr r0, [r0, #1356] ; 0x54c cmp r0, #0 beq _06006428 bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #28 strh r1, [r0, #6] bl FUN_060001F0 _06006428: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06006434: .word wmspW _06006438: .word _0601A960 arm_func_start FUN_0600643C FUN_0600643C: ; 0x0600643C stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06006478 ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldr r0, [r0, #12] cmp r0, #1 bne _0600646C mov r0, #209 ; 0xd1 ldr r1, _0600647C ; =FUN_06006480 mov r2, #3 bl FUN_060068A0 bl FUN_06006384 _0600646C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06006478: .word _0601A960 _0600647C: .word FUN_06006480 arm_func_start FUN_06006480 FUN_06006480: ; 0x06006480 stmdb sp!, {r4, lr} arm_func_start FUN_06006484 FUN_06006484: ; 0x06006484 ldr r0, _060064E0 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4, #220] ; 0xdc cmp r0, #60 ; 0x3c bcc _060064BC ldr r1, _060064E4 ; =0x04000006 ldrh r0, [r1] cmp r0, #209 ; 0xd1 blt _060064C4 cmp r0, #212 ; 0xd4 strlth r0, [r1] movlt r0, #0 strlth r0, [r4, #220] ; 0xdc b _060064C4 _060064BC: add r0, r0, #1 strh r0, [r4, #220] ; 0xdc _060064C4: bl FUN_06006848 ldrsh r0, [r4, #64] ; 0x40 ldr r1, _060064E8 ; =FUN_0600643C mov r2, #5 bl FUN_060068A0 ldmia sp!, {r4, lr} bx lr _060064E0: .word _0601A960 _060064E4: .word 0x04000006 _060064E8: .word FUN_0600643C arm_func_start FUN_060064EC FUN_060064EC: ; 0x060064EC stmdb sp!, {r4, lr} ldr r0, _060065E4 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, [r4, #12] cmp r0, #1 bne _060065DC mov r0, #200 ; 0xc8 ldr r1, _060065E8 ; =FUN_06006634 mov r2, #1 bl FUN_060068A0 ldr r2, [r4, #1976] ; 0x7b8 ldr r1, [r4, #1980] ; 0x7bc mov r0, #0 cmp r1, r0 cmpeq r2, r0 beq _060065D8 bl FUN_06000E98 mov r2, #0 orr r3, r1, #0 orr ip, r0, #1 ldr r1, [r4, #1848] ; 0x738 ldr r0, [r4, #1852] ; 0x73c cmp r0, r2 cmpeq r1, r2 beq _060065D8 subs ip, ip, r1 sbc r3, r3, r0 ldr r1, [r4, #1976] ; 0x7b8 ldr r0, [r4, #1980] ; 0x7bc cmp r3, r0 cmpeq ip, r1 bls _060065D8 str r2, [r4, #1848] ; 0x738 str r2, [r4, #1852] ; 0x73c bl WMSP_GetInternalRequestBuf movs r1, r0 moveq r0, #0 beq _060065A4 mov r0, #37 ; 0x25 str r0, [r1] mov r2, #0 str r2, [r1, #4] ldr r0, _060065EC ; =0x00008001 str r0, [r1, #8] ldr r0, _060065F0 ; =_060199E8 bl FUN_060006F8 _060065A4: cmp r0, #0 bne _060065DC bl FUN_060001E8 mov r1, #128 ; 0x80 strh r1, [r0] mov r1, #8 strh r1, [r0, #2] mov r1, #22 strh r1, [r0, #4] mov r1, #37 ; 0x25 strh r1, [r0, #6] bl FUN_060001F0 b _060065DC _060065D8: bl FUN_06006384 _060065DC: ldmia sp!, {r4, lr} bx lr _060065E4: .word _0601A960 _060065E8: .word FUN_06006634 _060065EC: .word 0x00008001 _060065F0: .word _060199E8 arm_func_start FUN_060065F4 FUN_060065F4: ; 0x060065F4 stmdb sp!, {r4, lr} ldr r0, _0600662C ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060066B4 ldr r0, [r4, #216] ; 0xd8 cmp r0, #127 ; 0x7f movcs r0, #0 strcs r0, [r4, #28] ldrsh r0, [r4, #66] ; 0x42 ldr r1, _06006630 ; =FUN_060064EC mov r2, #4 bl FUN_060068A0 ldmia sp!, {r4, lr} bx lr _0600662C: .word _0601A960 _06006630: .word FUN_060064EC arm_func_start FUN_06006634 FUN_06006634: ; 0x06006634 stmdb sp!, {r4, lr} arm_func_start FUN_06006638 FUN_06006638: ; 0x06006638 ldr r0, _060066A4 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, _060066A8 ; =0x0380FFF0 ldrh r0, [r0] str r0, [r4, #208] ; 0xd0 ldr r1, [r4, #208] ; 0xd0 ldr r0, [r4, #212] ; 0xd4 cmp r0, r1 beq _06006664 str r1, [r4, #212] ; 0xd4 bl FUN_06006748 _06006664: ldr r0, [r4, #216] ; 0xd8 cmp r0, #127 ; 0x7f bls _06006684 mov r0, #208 ; 0xd0 ldr r1, _060066AC ; =FUN_060065F4 mov r2, #2 bl FUN_060068A0 b _0600669C _06006684: mov r0, #1 str r0, [r4, #28] ldrsh r0, [r4, #66] ; 0x42 ldr r1, _060066B0 ; =FUN_060064EC mov r2, #4 bl FUN_060068A0 _0600669C: ldmia sp!, {r4, lr} bx lr _060066A4: .word _0601A960 _060066A8: .word 0x0380FFF0 _060066AC: .word FUN_060065F4 _060066B0: .word FUN_060064EC arm_func_start FUN_060066B4 FUN_060066B4: ; 0x060066B4 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06006740 ; =_0601A960 ldr ip, [r0, #1360] ; 0x550 ldr r0, _06006744 ; =0x04000006 ldrh r3, [r0] cmp r3, #208 ; 0xd0 blt _06006734 cmp r3, #212 ; 0xd4 bge _06006734 ldr r2, [ip, #216] ; 0xd8 cmp r2, #127 ; 0x7f bcc _06006734 mov lr, #1 mov r0, #63 ; 0x3f b _06006708 _060066F4: mul r1, lr, r0 add r1, r1, #127 ; 0x7f cmp r2, r1 bcc _06006710 add lr, lr, #1 _06006708: cmp lr, #7 blt _060066F4 _06006710: rsb r0, lr, #1 add r1, r3, r0 ldr r0, _06006744 ; =0x04000006 strh r1, [r0] ldr r1, [ip, #216] ; 0xd8 mov r0, #63 ; 0x3f mul r0, lr, r0 sub r0, r1, r0 str r0, [ip, #216] ; 0xd8 _06006734: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06006740: .word _0601A960 _06006744: .word 0x04000006 arm_func_start FUN_06006748 FUN_06006748: ; 0x06006748 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06006828 ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldr r1, [r0, #208] ; 0xd0 mov r1, r1, lsl #6 str r1, [r0, #208] ; 0xd0 ldr r3, _0600682C ; =0x048080F8 ldrh r2, [r3] ldr r1, _06006830 ; =0x048080FA ldrh ip, [r1] ldrh r3, [r3] cmp r2, r3 ldrhih ip, [r1] orr ip, r3, ip, lsl #16 ldr r1, _06006834 ; =0x04000006 ldrh r3, [r1] ldr r2, _06006838 ; =0x003FFFC0 and ip, ip, r2 ldr r1, _0600683C ; =0x00000107 sub r3, r1, r3 mov r1, #127 ; 0x7f mul r1, r3, r1 add r1, r1, ip, lsl #1 and ip, r2, r1, lsr #1 ldr r1, [r0, #208] ; 0xd0 cmp r1, ip movhi r1, #0 strhi r1, [r0, #216] ; 0xd8 bhi _0600681C mov lr, #1 add r3, r0, #208 ; 0xd0 ldr r1, _06006840 ; =0x0000414B b _0600680C _060067D0: ldr r2, [r3] add r2, r2, r1 str r2, [r3] ldr r2, [r0, #208] ; 0xd0 cmp r2, ip bls _06006808 sub r1, r2, ip str r1, [r0, #216] ; 0xd8 ldr r2, [r0, #216] ; 0xd8 ldr r1, _06006844 ; =0x0000400E cmp r2, r1 movhi r1, #0 strhi r1, [r0, #216] ; 0xd8 b _0600681C _06006808: add lr, lr, #1 _0600680C: cmp lr, #30 blt _060067D0 mov r1, #0 str r1, [r0, #216] ; 0xd8 _0600681C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06006828: .word _0601A960 _0600682C: .word 0x048080F8 _06006830: .word 0x048080FA _06006834: .word 0x04000006 _06006838: .word 0x003FFFC0 _0600683C: .word 0x00000107 _06006840: .word 0x0000414B _06006844: .word 0x0000400E arm_func_start FUN_06006848 FUN_06006848: ; 0x06006848 ldr r0, _06006890 ; =0x04000006 ldrh ip, [r0] ldr r2, _06006894 ; =0x048080F8 ldrh r1, [r2] ldr r0, _06006898 ; =0x048080FA ldrh r3, [r0] ldrh r2, [r2] cmp r1, r2 ldrhih r3, [r0] orr r0, r2, r3, lsl #16 mov r1, r0, lsl #1 mov r0, #127 ; 0x7f mul r0, ip, r0 sub r0, r1, r0 mov r1, r0, lsr #7 ldr r0, _0600689C ; =0x0380FFF0 strh r1, [r0] bx lr _06006890: .word 0x04000006 _06006894: .word 0x048080F8 _06006898: .word 0x048080FA _0600689C: .word 0x0380FFF0 arm_func_start FUN_060068A0 FUN_060068A0: ; 0x060068A0 stmfd sp!, {lr} sub sp, sp, #4 mov ip, r0 mov r3, r1 str r2, [sp] ldr r0, _060068D0 ; =_0380B904 mov r1, ip ldr r2, _060068D4 ; =0x00000107 bl FUN_060068D8 add sp, sp, #4 ldmfd sp!, {lr} bx lr _060068D0: .word _0380B904 _060068D4: .word 0x00000107 arm_func_start FUN_060068D8 FUN_060068D8: ; 0x060068D8 ldr pc, _060068DC ; =OS_SetVAlarm _060068DC: .word OS_SetVAlarm arm_func_start WMSP_SetVAlarm WMSP_SetVAlarm: ; 0x060068E0 stmdb sp!, {r4, lr} ldr r0, _06006960 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, _06006964 ; =_0380B904 ldrh r1, [r4, #230] ; 0xe6 cmp r1, #1 bne _06006920 ldr r1, [r0] cmp r1, #0 beq _0600690C bl FUN_06006970 _0600690C: mov r0, #209 ; 0xd1 ldr r1, _06006968 ; =FUN_06006480 mov r2, #3 bl FUN_060068A0 b _06006958 _06006920: cmp r1, #2 bne _06006958 mov r1, #0 str r1, [r4, #28] ldr r1, [r0] cmp r1, #0 beq _06006940 bl FUN_06006970 _06006940: mov r0, #200 ; 0xc8 ldr r1, _0600696C ; =FUN_06006634 mov r2, #1 bl FUN_060068A0 mov r0, #0 str r0, [r4, #216] ; 0xd8 _06006958: ldmia sp!, {r4, lr} bx lr _06006960: .word _0601A960 _06006964: .word _0380B904 _06006968: .word FUN_06006480 _0600696C: .word FUN_06006634 arm_func_start FUN_06006970 FUN_06006970: ; 0x06006970 ldr pc, _06006974 ; =OS_CancelVAlarm _06006974: .word OS_CancelVAlarm arm_func_start WMSP_CancelVAlarm WMSP_CancelVAlarm: ; 0x06006978 ldr r0, _06006984 ; =_0380B904 ldr ip, _06006988 ; =OS_CancelVAlarm bx ip _06006984: .word _0380B904 _06006988: .word OS_CancelVAlarm arm_func_start WMSP_InitVAlarm WMSP_InitVAlarm: ; 0x0600698C ldr r0, _06006998 ; =_0380B904 ldr ip, _0600699C ; =OS_CreateVAlarm bx ip _06006998: .word _0380B904 _0600699C: .word OS_CreateVAlarm arm_func_start WMSP_KickNextMP_Resume WMSP_KickNextMP_Resume: ; 0x060069A0 stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _060069D8 ; =_0601A960 ldr r1, [r1, #1360] ; 0x550 ldrh r1, [r1] cmp r1, #9 bne _060069CC ldr r0, [r0, #4] mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_ResumeMaMP _060069CC: add sp, sp, #4 ldmfd sp!, {lr} bx lr _060069D8: .word _0601A960 arm_func_start WMSP_KickNextMP_Child WMSP_KickNextMP_Child: ; 0x060069DC stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06006A08 ; =_0601A960 ldr r0, [r0, #1360] ; 0x550 ldrh r0, [r0] cmp r0, #10 bne _060069FC bl WMSP_SendMaKeyData _060069FC: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06006A08: .word _0601A960 arm_func_start WMSP_KickNextMP_Parent WMSP_KickNextMP_Parent: ; 0x06006A0C stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _06006A44 ; =_0601A960 ldr r1, [r1, #1360] ; 0x550 ldrh r1, [r1] cmp r1, #9 bne _06006A38 ldr r0, [r0, #4] mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WMSP_SendMaMP _06006A38: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06006A44: .word _0601A960 arm_func_start WMSP_VAlarmSetMPData WMSP_VAlarmSetMPData: ; 0x06006A48 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06006BE8 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 mov r0, #0 strh r0, [r4, #206] ; 0xce mov r0, #1 strh r0, [r4, #136] ; 0x88 ldrh r0, [r4, #192] ; 0xc0 sub r0, r0, #1 strh r0, [r4, #192] ; 0xc0 ldrh r0, [r4, #192] ; 0xc0 cmp r0, #0 bne _06006AB8 ldrh r1, [r4, #190] ; 0xbe ldr r0, _06006BEC ; =0x0000FFFF cmp r1, r0 moveq r0, #4 streqh r0, [r4, #190] ; 0xbe ldrh r0, [r4, #190] ; 0xbe and r0, r0, #255 ; 0xff bl WMSP_AddRssiToList bl WMSP_GetAverageLinkLevel strh r0, [r4, #188] ; 0xbc ldr r0, _06006BEC ; =0x0000FFFF strh r0, [r4, #190] ; 0xbe mov r0, #1 strh r0, [r4, #192] ; 0xc0 _06006AB8: ldrh r0, [r4] cmp r0, #9 bne _06006BA8 bl FUN_060001A4 add r1, r4, #256 ; 0x100 ldrh r1, [r1, #130] ; 0x82 cmp r1, #0 bne _06006AE8 mov r1, #0 strh r1, [r4, #98] ; 0x62 bl FUN_060001AC b _06006BDC _06006AE8: mov r3, #1 ldrsh r2, [r4, #98] ; 0x62 cmp r2, #0 ble _06006B04 ldrsh r1, [r4, #100] ; 0x64 cmp r1, #0 movgt r3, #0 _06006B04: cmp r2, #0 movlt r1, #0 strlth r1, [r4, #98] ; 0x62 ldrsh r2, [r4, #98] ; 0x62 ldrsh r1, [r4, #90] ; 0x5a add r1, r2, r1 strh r1, [r4, #98] ; 0x62 ldrsh r1, [r4, #98] ; 0x62 cmp r1, #256 ; 0x100 movgt r1, #256 ; 0x100 strgth r1, [r4, #98] ; 0x62 ldrh r1, [r4, #92] ; 0x5c strh r1, [r4, #100] ; 0x64 cmp r3, #0 beq _06006B5C ldrsh r1, [r4, #98] ; 0x62 cmp r1, #0 ble _06006B5C ldrsh r1, [r4, #100] ; 0x64 cmp r1, #0 movgt r5, #1 bgt _06006B60 _06006B5C: mov r5, #0 _06006B60: bl FUN_060001AC cmp r5, #0 beq _06006B74 ldr r0, _06006BEC ; =0x0000FFFF bl WMSP_SendMaMP _06006B74: ldrh r0, [r4, #146] ; 0x92 cmp r0, #1 bne _06006BDC ldrh r0, [r4, #160] ; 0xa0 sub r0, r0, #1 strh r0, [r4, #160] ; 0xa0 ldrh r0, [r4, #160] ; 0xa0 cmp r0, #0 moveq r0, #1 streqh r0, [r4, #158] ; 0x9e moveq r0, #60 ; 0x3c streqh r0, [r4, #160] ; 0xa0 b _06006BDC _06006BA8: cmp r0, #10 bne _06006BDC mov r5, #0 bl FUN_060001A4 ldr r1, [r4, #1844] ; 0x734 cmp r1, #1 movne r5, #1 movne r1, #0 strneh r1, [r4, #96] ; 0x60 bl FUN_060001AC cmp r5, #1 bne _06006BDC bl WMSP_SendMaKeyData _06006BDC: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06006BE8: .word _0601A960 _06006BEC: .word 0x0000FFFF arm_func_start FUN_06006BF0 FUN_06006BF0: ; 0x06006BF0 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r4, r3 ands r0, r5, #32768 ; 0x8000 ldrne r0, _06006C94 ; =0x00007FFF andne r5, r5, r0 addeq r0, r5, #28 moveq r0, r0, lsl #2 addeq r5, r0, #102 ; 0x66 mov r0, r2 bl FUN_06006CA4 add r1, r6, #34 ; 0x22 mov r1, r1, lsl #2 add r1, r1, #96 ; 0x60 mul r0, r5, r0 add r0, r0, #904 ; 0x388 add r3, r1, r0 ldr r0, _06006C98 ; =0x04000006 ldrh r1, [r0] sub r0, r4, #2 subs r4, r0, r1 bpl _06006C58 ldr r0, _06006C9C ; =0x00000107 _06006C50: adds r4, r4, r0 bmi _06006C50 _06006C58: mov r0, #127 ; 0x7f mul r2, r4, r0 ldr r1, _06006CA0 ; =0x66666667 smull r0, r4, r1, r2 mov r4, r4, asr #3 mov r0, r2, lsr #31 add r4, r0, r4 mov r0, #10 mul r0, r4, r0 cmp r0, r3 movcc r4, #0 mov r0, r4, lsl #16 mov r0, r0, lsr #16 ldmia sp!, {r4, r5, r6, lr} bx lr _06006C94: .word 0x00007FFF _06006C98: .word 0x04000006 _06006C9C: .word 0x00000107 _06006CA0: .word 0x66666667 arm_func_start FUN_06006CA4 FUN_06006CA4: ; 0x06006CA4 ldr pc, _06006CA8 ; =MATH_CountPopulation _06006CA8: .word MATH_CountPopulation arm_func_start WMSP_ParsePortPacket WMSP_ParsePortPacket: ; 0x06006CAC stmdb sp!, {r0, r1, r2, r3} arm_func_start FUN_06006CB0 FUN_06006CB0: ; 0x06006CB0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #44 ; 0x2c str r0, [sp] mov sl, r2 movs r9, r3 ldr r0, [sp, #96] ; 0x60 str r0, [sp, #96] ; 0x60 ldr r0, _06006F40 ; =_0601A960 ldr r8, [r0, #1360] ; 0x550 addeq sp, sp, #44 ; 0x2c ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addeq sp, sp, #16 bxeq lr ldrh r0, [r8, #62] ; 0x3e cmp r9, r0 addhi sp, sp, #44 ; 0x2c ldmhiia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addhi sp, sp, #16 bxhi lr add r0, r8, #256 ; 0x100 ldrh r1, [r0, #136] ; 0x88 ldr r0, [sp] cmp r0, r1 addeq sp, sp, #44 ; 0x2c ldmeqia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addeq sp, sp, #16 bxeq lr cmp r0, #16 addcs sp, sp, #44 ; 0x2c ldmcsia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addcs sp, sp, #16 bxcs lr ands r0, r9, #1 addne sp, sp, #44 ; 0x2c ldmneia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addne sp, sp, #16 bxne lr mov r0, #1 str r0, [sp, #4] cmp r9, #0 addle sp, sp, #44 ; 0x2c ldmleia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addle sp, sp, #16 bxle lr add r1, r8, #504 ; 0x1f8 ldr r0, [sp] add fp, r1, r0, lsl #4 mov r4, #0 mov r0, #512 ; 0x200 str r0, [sp, #12] ldr r0, [sp, #4] str r0, [sp, #16] str r0, [sp, #20] mov r0, #2 str r0, [sp, #24] mov r0, #130 ; 0x82 str r0, [sp, #32] mov r0, #21 str r0, [sp, #36] ; 0x24 ldr r0, [sp, #4] str r0, [sp, #28] _06006DA4: ldr r5, _06006F44 ; =0x0000FFFF ldr r0, [sp, #4] cmp r0, #1 streq r4, [sp, #4] addeq r0, sp, #84 ; 0x54 movne r0, sl addne sl, sl, #2 subne r9, r9, #2 ldrh r1, [r0] and r0, r1, #255 ; 0xff movs r7, r0, lsl #1 ldreq r7, [sp, #12] ands r0, r1, #4096 ; 0x1000 ldrne r2, [sp, #16] moveq r2, r4 ands r0, r1, #2048 ; 0x800 ldrne r3, [sp, #20] moveq r3, r4 cmp r2, #0 ldrne r6, [sp, #24] moveq r6, r4 cmp r3, #0 ldrne r0, [sp, #24] moveq r0, r4 add r0, r7, r0 add r0, r0, r6 subs r9, r9, r0 addmi sp, sp, #44 ; 0x2c ldmmiia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} addmi sp, sp, #16 bxmi lr and r1, r1, #3840 ; 0xf00 mov r1, r1, lsl #8 mov r6, r1, lsr #16 str sl, [sp, #8] add r1, sl, r7 add sl, sl, r0 cmp r3, #1 bne _06006E80 and r0, r6, #7 mov r3, r0, lsl #1 add r0, fp, r0, lsl #1 ldrh ip, [fp, r3] ldrh r5, [r1], #2 ands r3, ip, #1 movne r3, r5, lsl #1 strneh r3, [r0] bne _06006E80 mov r5, r5, lsl #1 sub r3, ip, r5 mov r3, r3, lsl #16 mov r3, r3, lsr #16 cmp r3, #256 ; 0x100 bcc _06006F28 strh r5, [r0] _06006E80: cmp r2, #1 bne _06006EA4 ldrh r2, [r1] add r0, r8, #256 ; 0x100 ldrh r1, [r0, #136] ; 0x88 ldr r0, [sp, #28] mov r0, r0, lsl r1 ands r0, r2, r0 beq _06006F28 _06006EA4: cmp r7, #0 ble _06006F28 bl FUN_060001E8 ldr r1, [sp, #32] strh r1, [r0] strh r4, [r0, #2] ldr r1, [sp, #36] ; 0x24 strh r1, [r0, #4] strh r6, [r0, #6] ldr r1, [sp, #96] ; 0x60 str r1, [r0, #8] ldr r1, [sp, #8] str r1, [r0, #12] strh r7, [r0, #16] ldr r1, [sp] strh r1, [r0, #18] add r1, r8, #256 ; 0x100 ldrh r2, [r1, #136] ; 0x88 strh r2, [r0, #32] strh r5, [r0, #26] ldrh r2, [r8, #48] ; 0x30 ldrh r3, [r8, #50] ; 0x32 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 moveq r1, r2 movne r1, r3 strh r1, [r0, #64] ; 0x40 add r1, r8, #256 ; 0x100 ldrh r1, [r1, #136] ; 0x88 cmp r1, #0 movne r3, r2 strh r3, [r0, #66] ; 0x42 bl FUN_060001F0 _06006F28: cmp r9, #0 bgt _06006DA4 add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} add sp, sp, #16 bx lr _06006F40: .word _0601A960 _06006F44: .word 0x0000FFFF arm_func_start WMSP_CleanSendQueue WMSP_CleanSendQueue: ; 0x06006F48 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #36 ; 0x24 ldr r1, _06007148 ; =_0601A960 ldr r6, [r1, #1360] ; 0x550 add r9, r6, #760 ; 0x2f8 mvn r1, r0 add r0, r6, #256 ; 0x100 ldrh r0, [r0, #130] ; 0x82 and r0, r1, r0 str r0, [sp, #8] ldr r0, _0600714C ; =0x0000071C add r0, r6, r0 bl FUN_06007158 mov r0, #0 str r0, [sp] ldr r0, _06007150 ; =0x0000070C add r0, r6, r0 str r0, [sp, #12] mov r0, #129 ; 0x81 str r0, [sp, #20] ldr r0, [sp] str r0, [sp, #24] mov r0, #20 str r0, [sp, #28] ldr r4, _06007154 ; =0x0000FFFF ldr r0, [sp] str r0, [sp, #16] _06006FB4: ldr r0, [sp, #16] str r0, [sp, #4] ldr r5, [sp, #12] _06006FC0: mov fp, r5 mov r8, r4 ldrh sl, [r5] cmp sl, r4 beq _06007104 _06006FD4: add r7, r9, sl, lsl #5 ldrh r1, [r7, #6] ldr r0, [sp, #8] and r0, r1, r0 strh r0, [r7, #6] ldrh r1, [r7, #10] ldr r0, [sp, #8] and r0, r1, r0 strh r0, [r7, #10] ldrh r0, [r7, #6] cmp r0, #0 bne _060070DC bl FUN_060001E8 ldr r1, [sp, #20] strh r1, [r0] ldr r1, [sp, #24] strh r1, [r0, #2] ldr r1, [sp, #28] strh r1, [r0, #8] ldrh r1, [r7, #2] strh r1, [r0, #10] ldrh r1, [r7, #4] strh r1, [r0, #12] ldrh r1, [r7, #6] strh r1, [r0, #14] ldrh r1, [r7, #8] strh r1, [r0, #16] ldrh r1, [r7, #14] strh r1, [r0, #24] ldr r1, [r7, #20] str r1, [r0, #20] ldr r1, [r7, #24] str r1, [r0, #28] ldr r1, [r7, #28] str r1, [r0, #32] ldrh r1, [r7, #16] strh r1, [r0, #26] ldrh r1, [r6, #48] ; 0x30 ldrh r2, [r6, #50] ; 0x32 add r3, r6, #256 ; 0x100 ldrh r3, [r3, #136] ; 0x88 cmp r3, #0 moveq r3, r1 movne r3, r2 strh r3, [r0, #36] ; 0x24 add r3, r6, #256 ; 0x100 ldrh r3, [r3, #136] ; 0x88 cmp r3, #0 movne r2, r1 strh r2, [r0, #38] ; 0x26 bl FUN_060001F0 ldrh r0, [r7] cmp r0, r4 streqh r8, [r5, #2] ldrh r0, [r7] strh r0, [fp] strh r4, [r7] add r0, r6, #1536 ; 0x600 ldrh r1, [r0, #250] ; 0xfa cmp r1, r4 streqh sl, [r0, #248] ; 0xf8 movne r0, r1, lsl #5 strneh sl, [r9, r0] add r0, r6, #1536 ; 0x600 strh sl, [r0, #250] ; 0xfa mov sl, r8 _060070DC: cmp sl, r4 addne fp, r9, sl, lsl #5 moveq fp, r5 mov r8, sl cmp sl, r4 movne r0, sl, lsl #5 ldrneh sl, [r9, r0] ldreqh sl, [r5] cmp sl, r4 bne _06006FD4 _06007104: add r5, r5, #4 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blt _06006FC0 ldr r0, [sp] add r0, r0, #1 str r0, [sp] cmp r0, #2 blt _06006FB4 ldr r0, _0600714C ; =0x0000071C add r0, r6, r0 bl FUN_06007160 add sp, sp, #36 ; 0x24 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06007148: .word _0601A960 _0600714C: .word 0x0000071C _06007150: .word 0x0000070C _06007154: .word 0x0000FFFF arm_func_start FUN_06007158 FUN_06007158: ; 0x06007158 ldr pc, _0600715C ; =OS_LockMutex _0600715C: .word OS_LockMutex arm_func_start FUN_06007160 FUN_06007160: ; 0x06007160 ldr pc, _06007164 ; =OS_UnlockMutex _06007164: .word OS_UnlockMutex arm_func_start WMSP_FlushSendQueue WMSP_FlushSendQueue: ; 0x06007168 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #44 ; 0x2c str r0, [sp] mov r4, r1 ldr r0, _0600749C ; =_0601A960 ldr r6, [r0, #1360] ; 0x550 add sl, r6, #760 ; 0x2f8 mov r0, #0 str r0, [sp, #8] ldrh r0, [r6] cmp r0, #9 moveq r5, #1 beq _060071B8 cmp r0, #10 ldreq r5, [sp, #8] beq _060071B8 ldr r0, [sp, #8] add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _060071B8: ldr r0, _060074A0 ; =0x0000071C add r0, r6, r0 bl FUN_06007158 ldr r0, [r6, #1844] ; 0x734 cmp r0, #0 bne _060071EC ldr r0, _060074A0 ; =0x0000071C add r0, r6, r0 bl FUN_06007160 mov r0, #0 add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _060071EC: cmp r5, #0 moveq fp, #1 beq _06007208 bl FUN_060001A4 add r1, r6, #256 ; 0x100 ldrh fp, [r1, #130] ; 0x82 bl FUN_060001AC _06007208: mov r0, #0 str r0, [sp, #4] ldr r0, _060074A4 ; =0x000006FC add r8, r6, r0 mvn r0, r4 str r0, [sp, #16] mov r0, #1 str r0, [sp, #24] ldr r4, _060074A8 ; =0x0000FFFF ldr r0, [sp, #4] str r0, [sp, #20] mov r0, #129 ; 0x81 str r0, [sp, #28] mov r0, #15 str r0, [sp, #36] ; 0x24 ldr r0, [sp, #4] str r0, [sp, #32] mov r0, #20 str r0, [sp, #40] ; 0x28 _06007254: mov r5, r4 str r4, [sp, #12] ldrh r9, [r8] cmp r9, r4 beq _06007420 _06007268: add r7, sl, r9, lsl #5 ldr r0, [sp] cmp r0, #0 bne _060072A4 ldrh r2, [r7, #8] ldrh r1, [r7, #10] ldr r0, [sp, #16] and r0, r1, r0 orr r0, r2, r0 strh r0, [r7, #8] ldrh r1, [r7, #6] ldrh r0, [r7, #8] mvn r0, r0 and r0, r1, r0 strh r0, [r7, #6] _060072A4: ldrh r0, [r7, #6] and r0, r0, fp strh r0, [r7, #6] ldr r0, [sp, #20] strh r0, [r7, #10] ldrh r0, [r7, #6] cmp r0, #0 beq _06007330 ldrh r0, [r7, #2] ands r0, r0, #8 bne _060072DC ldrh r0, [r7, #18] cmp r0, #0 beq _06007330 _060072DC: ldr r0, [sp, #24] str r0, [sp, #8] ldrh r0, [r7, #18] cmp r0, #0 subne r0, r0, #1 strneh r0, [r7, #18] ldrh r0, [r7] cmp r0, r4 streqh r4, [r8, #2] ldrh r0, [r7] strh r0, [r8] strh r4, [r7] cmp r5, r4 moveq r0, r9, lsl #16 moveq r0, r0, lsr #16 streq r0, [sp, #12] movne r0, r5, lsl #5 strneh r9, [sl, r0] mov r0, r9, lsl #16 mov r5, r0, lsr #16 b _06007414 _06007330: bl FUN_060001E8 ldr r1, [sp, #28] strh r1, [r0] ldrh r1, [r7, #6] cmp r1, #0 ldreq r1, [sp, #32] streqh r1, [r0, #2] ldrne r1, [sp, #36] ; 0x24 strneh r1, [r0, #2] ldr r1, [sp, #40] ; 0x28 strh r1, [r0, #8] ldrh r1, [r7, #2] strh r1, [r0, #10] ldrh r1, [r7, #4] strh r1, [r0, #12] ldrh r1, [r7, #6] strh r1, [r0, #14] ldrh r1, [r7, #8] strh r1, [r0, #16] ldrh r1, [r7, #14] strh r1, [r0, #24] ldr r1, [r7, #20] str r1, [r0, #20] ldr r1, [r7, #24] str r1, [r0, #28] ldr r1, [r7, #28] str r1, [r0, #32] ldrh r1, [r7, #16] strh r1, [r0, #26] ldrh r1, [r6, #48] ; 0x30 ldrh r2, [r6, #50] ; 0x32 add r3, r6, #256 ; 0x100 ldrh r3, [r3, #136] ; 0x88 cmp r3, #0 moveq r3, r1 movne r3, r2 strh r3, [r0, #36] ; 0x24 add r3, r6, #256 ; 0x100 ldrh r3, [r3, #136] ; 0x88 cmp r3, #0 movne r2, r1 strh r2, [r0, #38] ; 0x26 bl FUN_060001F0 ldrh r0, [r7] cmp r0, r4 streqh r4, [r8, #2] ldrh r0, [r7] strh r0, [r8] strh r4, [r7] add r0, r6, #1536 ; 0x600 ldrh r1, [r0, #250] ; 0xfa cmp r1, r4 streqh r9, [r0, #248] ; 0xf8 movne r0, r1, lsl #5 strneh r9, [sl, r0] add r0, r6, #1536 ; 0x600 strh r9, [r0, #250] ; 0xfa _06007414: ldrh r9, [r8] cmp r9, r4 bne _06007268 _06007420: cmp r5, r4 beq _06007460 ldr r0, [sp, #4] add r0, r6, r0, lsl #2 add r0, r0, #1792 ; 0x700 ldrh r2, [r0, #12] mov r1, r5, lsl #5 strh r2, [sl, r1] ldrh r1, [r0, #14] cmp r1, r4 streqh r5, [r0, #14] ldr r0, [sp, #4] add r0, r6, r0, lsl #2 add r1, r0, #1792 ; 0x700 ldr r0, [sp, #12] strh r0, [r1, #12] _06007460: add r8, r8, #4 ldr r0, [sp, #4] add r0, r0, #1 str r0, [sp, #4] cmp r0, #4 blt _06007254 mov r0, #0 str r0, [r6, #1844] ; 0x734 ldr r0, _060074A0 ; =0x0000071C add r0, r6, r0 bl FUN_06007160 ldr r0, [sp, #8] add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600749C: .word _0601A960 _060074A0: .word 0x0000071C _060074A4: .word 0x000006FC _060074A8: .word 0x0000FFFF arm_func_start WMSP_PutSendQueue WMSP_PutSendQueue: ; 0x060074AC stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 mov r7, r2 mov r6, r3 ldr r0, _060075F8 ; =_0601A960 ldr r9, [r0, #1360] ; 0x550 add r5, r9, #760 ; 0x2f8 ldr r0, _060075FC ; =0x0000070C add r0, r9, r0 add r4, r0, r1, lsl #2 ldrh r0, [sp, #36] ; 0x24 cmp r0, #0 moveq r0, #6 addeq sp, sp, #4 ldmeqia sp!, {r4, r5, r6, r7, r8, r9, lr} bxeq lr ands r0, r7, #8 movne r1, #2 moveq r1, #0 ldrh r0, [sp, #36] ; 0x24 add r1, r0, r1 ldrh r0, [r9, #60] ; 0x3c cmp r1, r0 movgt r0, #6 addgt sp, sp, #4 ldmgtia sp!, {r4, r5, r6, r7, r8, r9, lr} bxgt lr ldr r0, _06007600 ; =0x0000071C add r0, r9, r0 bl FUN_06007158 add r2, r9, #1536 ; 0x600 ldrh r0, [r2, #248] ; 0xf8 ldr r3, _06007604 ; =0x0000FFFF cmp r0, r3 bne _06007558 ldr r0, _06007600 ; =0x0000071C add r0, r9, r0 bl FUN_06007160 mov r0, #10 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06007558: mov ip, r0, lsl #5 add r1, r5, r0, lsl #5 ldrh ip, [r5, ip] strh ip, [r2, #248] ; 0xf8 ldrh ip, [r2, #250] ; 0xfa cmp ip, r0 streqh r3, [r2, #250] ; 0xfa strh r7, [r1, #2] strh r6, [r1, #4] and r2, r6, r8 strh r2, [r1, #6] mov r2, #0 strh r2, [r1, #8] strh r2, [r1, #10] ldr r2, [sp, #32] str r2, [r1, #20] ldrh r2, [sp, #36] ; 0x24 strh r2, [r1, #14] ldr r2, [sp, #40] ; 0x28 str r2, [r1, #24] ldr r2, [sp, #44] ; 0x2c str r2, [r1, #28] ldr r3, _06007604 ; =0x0000FFFF strh r3, [r1] strh r3, [r1, #16] ldrh r2, [r9, #152] ; 0x98 strh r2, [r1, #18] ldrh r1, [r4, #2] cmp r1, r3 streqh r0, [r4] movne r1, r1, lsl #5 strneh r0, [r5, r1] strh r0, [r4, #2] ldr r0, _06007600 ; =0x0000071C add r0, r9, r0 bl FUN_06007160 mov r0, #2 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _060075F8: .word _0601A960 _060075FC: .word 0x0000070C _06007600: .word 0x0000071C _06007604: .word 0x0000FFFF arm_func_start FUN_06007608 FUN_06007608: ; 0x06007608 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #100 ; 0x64 mov sl, r3 ldr r3, [sp, #136] ; 0x88 str r3, [sp, #136] ; 0x88 ldr r3, [sp, #140] ; 0x8c str r3, [sp, #140] ; 0x8c ldr r3, _06007B2C ; =_0601A960 ldr r3, [r3, #1360] ; 0x550 str r3, [sp, #56] ; 0x38 ldrh r8, [r3, #56] ; 0x38 ldr r7, [r3, #124] ; 0x7c ldrh r4, [r3, #128] ; 0x80 add r3, r8, #31 bic r3, r3, #31 cmp r4, r3 movlt r0, #1 addlt sp, sp, #100 ; 0x64 ldmltia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bxlt lr ldr r3, [sp, #56] ; 0x38 add r3, r3, #256 ; 0x100 ldrh r3, [r3, #136] ; 0x88 cmp r3, #16 movcs r0, #1 addcs sp, sp, #100 ; 0x64 ldmcsia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bxcs lr ldr r3, [sp, #56] ; 0x38 ldrh r3, [r3] cmp r3, #9 moveq r3, #1 streq r3, [sp, #16] beq _060076B0 cmp r3, #10 moveq r3, #0 streq r3, [sp, #16] beq _060076B0 mov r0, #1 add sp, sp, #100 ; 0x64 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _060076B0: mov r3, #0 str r3, [sp, #20] strh r3, [sl] mov r4, r3 ldr r3, [sp, #136] ; 0x88 str r4, [r3] ldr r4, [sp, #20] ldr r3, [sp, #140] ; 0x8c str r4, [r3] mov r6, r4 cmp r8, #0 movlt r0, #1 addlt sp, sp, #100 ; 0x64 ldmltia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bxlt lr str r2, [sp, #28] mov r3, #1 str r3, [sp, #24] ldr r3, [sp, #16] cmp r3, #0 beq _06007720 ldr r3, [sp, #56] ; 0x38 ldrh r3, [r3, #146] ; 0x92 cmp r3, #0 strne r1, [sp, #28] movne r1, r4 strne r1, [sp, #24] b _06007728 _06007720: mov r1, r4 str r1, [sp, #24] _06007728: and r4, r2, r0 mov r0, #0 str r0, [sp, #8] mov r0, #1 str r0, [sp, #12] ldr r1, _06007B30 ; =0x0000071C ldr r0, [sp, #56] ; 0x38 add r0, r0, r1 bl FUN_06007158 ldr r0, [sp, #56] ; 0x38 ldr r0, [r0, #1844] ; 0x734 cmp r0, #1 bne _0600777C ldr r1, _06007B30 ; =0x0000071C ldr r0, [sp, #56] ; 0x38 add r0, r0, r1 bl FUN_06007160 mov r0, #1 add sp, sp, #100 ; 0x64 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600777C: mov r1, #1 str r1, [sp, #64] ; 0x40 ldr r0, [sp, #56] ; 0x38 str r1, [r0, #1844] ; 0x734 add r0, r0, #760 ; 0x2f8 str r0, [sp, #32] mov r0, #0 str r0, [sp, #36] ; 0x24 ldr r1, _06007B34 ; =0x0000070C ldr r0, [sp, #56] ; 0x38 add fp, r0, r1 ldr r1, _06007B38 ; =0x000006FC add r0, r0, r1 str r0, [sp, #40] ; 0x28 mvn r0, r4 str r0, [sp, #60] ; 0x3c ldr r0, [sp, #36] ; 0x24 str r0, [sp, #68] ; 0x44 str r0, [sp, #72] ; 0x48 str r0, [sp, #80] ; 0x50 mov r0, #2 str r0, [sp, #76] ; 0x4c ldr r0, [sp, #36] ; 0x24 str r0, [sp, #84] ; 0x54 str r0, [sp, #88] ; 0x58 str r0, [sp, #92] ; 0x5c str r0, [sp, #96] ; 0x60 b _06007AE4 _060077EC: str fp, [sp, #44] ; 0x2c ldr r0, _06007B3C ; =0x0000FFFF str r0, [sp, #48] ; 0x30 ldrh r9, [fp] b _06007AB4 _06007800: ldr r0, [sp, #32] add r5, r0, r9, lsl #5 ldrh r0, [r5, #2] ldr r1, [sp, #64] ; 0x40 mov r1, r1, lsl r0 str r1, [sp, #52] ; 0x34 ldr r2, [sp, #8] ands r1, r2, r1 bne _06007A80 ldr r1, [sp, #52] ; 0x34 orr r1, r2, r1 str r1, [sp, #8] ldrh r2, [r5, #6] ldr r1, [sp, #28] and r4, r2, r1 ldr r1, [sp, #24] cmp r1, #0 beq _06007854 ldr r1, [sp, #60] ; 0x3c ands r1, r4, r1 bne _06007A80 _06007854: ands r0, r0, #8 ldrne r0, [sp, #64] ; 0x40 strne r0, [sp, #4] ldreq r0, [sp, #68] ; 0x44 streq r0, [sp, #4] ldr r0, [sp, #16] cmp r0, #0 beq _0600788C orr r1, r4, #1 ldr r0, _06007B3C ; =0x0000FFFF cmp r1, r0 ldrne r0, [sp, #64] ; 0x40 strne r0, [sp] bne _06007894 _0600788C: ldr r0, [sp, #72] ; 0x48 str r0, [sp] _06007894: ldrh r0, [r5, #14] and r1, r0, #1 cmp r1, #1 addeq r0, r0, #1 streqh r0, [r5, #14] ldr r0, [sp, #4] cmp r0, #0 ldrne r0, [sp, #76] ; 0x4c ldreq r0, [sp, #80] ; 0x50 ldr r1, [sp, #12] cmp r1, #0 ldrne r3, [sp, #84] ; 0x54 ldreq r3, [sp, #76] ; 0x4c ldr r1, [sp] cmp r1, #0 ldrne r1, [sp, #76] ; 0x4c ldreq r1, [sp, #88] ; 0x58 ldrh r2, [r5, #14] add r2, r2, r3 add r0, r2, r0 add r0, r1, r0 cmp r0, r8 bgt _06007A80 ldr r0, [sp, #12] cmp r0, #0 moveq sl, r7 ldreq r0, [sp, #92] ; 0x5c streqh r0, [r7], #2 addeq r6, r6, #2 subeq r8, r8, #2 ldrh r0, [sl] ldrh r1, [r5, #2] mov r1, r1, lsl #8 and r2, r1, #3840 ; 0xf00 ldrh r1, [r5, #14] mov r1, r1, lsr #1 and r1, r1, #255 ; 0xff orr r1, r2, r1 orr r0, r0, r1 strh r0, [sl] ldr r0, [r5, #20] mov r1, r7 ldrh r2, [r5, #14] bl FUN_06000EA0 ldrh r1, [r5, #14] bic r0, r1, #1 add r7, r7, r0 add r6, r6, r1 sub r8, r8, r1 ldr r0, [sp, #4] cmp r0, #1 bne _060079C0 ldrh r1, [r5, #16] ands r0, r1, #1 moveq r2, r1, asr #1 beq _060079AC ldr r0, [sp, #56] ; 0x38 add r0, r0, #256 ; 0x100 ldrh r2, [r0, #136] ; 0x88 ldrh r0, [r5, #2] and r1, r0, #7 ldr r0, [sp, #56] ; 0x38 add r0, r0, r2, lsl #4 add r0, r0, r1, lsl #1 add r0, r0, #256 ; 0x100 ldrh r2, [r0, #248] ; 0xf8 add r1, r2, #1 strh r1, [r0, #248] ; 0xf8 mov r0, r2, lsl #1 strh r0, [r5, #16] _060079AC: ldr r0, _06007B40 ; =0x00007FFF and r0, r2, r0 strh r0, [r7], #2 add r6, r6, #2 sub r8, r8, #2 _060079C0: ldr r0, [sp] cmp r0, #1 bne _060079E4 ldrh r0, [sl] orr r0, r0, #4096 ; 0x1000 strh r0, [sl] strh r4, [r7], #2 add r6, r6, #2 sub r8, r8, #2 _060079E4: ldr r0, [sp, #12] cmp r0, #1 ldreq r0, [sp, #96] ; 0x60 streq r0, [sp, #12] ldrh r0, [fp, #2] cmp r0, r9 ldreq r0, [sp, #48] ; 0x30 streqh r0, [fp, #2] ldrh r1, [r5] ldr r0, [sp, #44] ; 0x2c strh r1, [r0] ldr r0, _06007B3C ; =0x0000FFFF strh r0, [r5] ldr r0, [sp, #40] ; 0x28 ldrh r1, [r0, #2] ldr r0, _06007B3C ; =0x0000FFFF cmp r1, r0 ldreq r0, [sp, #40] ; 0x28 streqh r9, [r0] movne r1, r1, lsl #5 ldrne r0, [sp, #32] strneh r9, [r0, r1] ldr r0, [sp, #40] ; 0x28 strh r9, [r0, #2] strh r4, [r5, #10] ldr r0, [sp, #52] ; 0x34 mvn r1, r0 ldr r0, [sp, #8] and r0, r0, r1 str r0, [sp, #8] ldrh r1, [r5, #4] ldr r0, [sp, #20] orr r0, r0, r1 str r0, [sp, #20] ldr r9, [sp, #48] ; 0x30 ldr r0, [sp, #56] ; 0x38 ldrh r0, [r0, #148] ; 0x94 cmp r0, #1 beq _06007AF8 _06007A80: ldr r0, _06007B3C ; =0x0000FFFF cmp r9, r0 ldrne r0, [sp, #32] addne r0, r0, r9, lsl #5 strne r0, [sp, #44] ; 0x2c streq fp, [sp, #44] ; 0x2c str r9, [sp, #48] ; 0x30 ldr r0, _06007B3C ; =0x0000FFFF cmp r9, r0 movne r1, r9, lsl #5 ldrne r0, [sp, #32] ldrneh r9, [r0, r1] ldreqh r9, [fp] _06007AB4: ldr r0, _06007B3C ; =0x0000FFFF cmp r9, r0 beq _06007AC8 cmp r8, #2 bgt _06007800 _06007AC8: add fp, fp, #4 ldr r0, [sp, #40] ; 0x28 add r0, r0, #4 str r0, [sp, #40] ; 0x28 ldr r0, [sp, #36] ; 0x24 add r0, r0, #1 str r0, [sp, #36] ; 0x24 _06007AE4: ldr r0, [sp, #36] ; 0x24 cmp r0, #4 bcs _06007AF8 cmp r8, #2 bgt _060077EC _06007AF8: ldr r1, [sp, #20] ldr r0, [sp, #136] ; 0x88 str r1, [r0] ldr r0, [sp, #140] ; 0x8c str r6, [r0] ldr r1, _06007B30 ; =0x0000071C ldr r0, [sp, #56] ; 0x38 add r0, r0, r1 bl FUN_06007160 mov r0, #0 add sp, sp, #100 ; 0x64 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06007B2C: .word _0601A960 _06007B30: .word 0x0000071C _06007B34: .word 0x0000070C _06007B38: .word 0x000006FC _06007B3C: .word 0x0000FFFF _06007B40: .word 0x00007FFF arm_func_start WMSP_ResumeMaMP WMSP_ResumeMaMP: ; 0x06007B44 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #536 ; 0x218 mov r7, r0 ldr r0, _06007C3C ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060001A4 bl FUN_060001AC ldr r0, _06007C40 ; =0x048080F8 ldrh r6, [r0] ldrh r5, [r4, #106] ; 0x6a add r0, r4, #256 ; 0x100 ldrh r0, [r0, #130] ; 0x82 and r7, r7, r0 ldrh r8, [r4, #58] ; 0x3a mov r0, r7 bl FUN_06006CA4 ldrh r2, [r4, #114] ; 0x72 add r1, r8, #12 mul r0, r1, r0 add r0, r0, #41 ; 0x29 bic r0, r0, #31 cmp r2, r0 bge _06007BB8 mov r0, #2 bl FUN_06007C48 bl WMSP_RequestResumeMP add sp, sp, #536 ; 0x218 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06007BB8: ldrsh r0, [r4, #98] ; 0x62 cmp r0, #1 beq _06007BD0 ldrsh r0, [r4, #100] ; 0x64 cmp r0, #1 bne _06007BEC _06007BD0: ldrh r0, [r4, #110] ; 0x6e ldrh r1, [r4, #108] ; 0x6c mov r2, r7 ldrh r3, [r4, #64] ; 0x40 bl FUN_06006BF0 orr r5, r5, #32768 ; 0x8000 b _06007BF4 _06007BEC: mov r0, #0 bic r5, r5, #32768 ; 0x8000 _06007BF4: mov r1, r7, lsl #16 mov r1, r1, lsr #16 str r1, [sp] str r0, [sp, #4] str r6, [sp, #8] mov r2, #0 str r2, [sp, #12] mov r0, r5, lsl #16 mov r0, r0, lsr #16 str r0, [sp, #16] str r2, [sp, #20] add r0, sp, #24 ldr r1, _06007C44 ; =0x0000800C mov r3, r2 bl WMSP_WL_MaMp add sp, sp, #536 ; 0x218 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06007C3C: .word _0601A960 _06007C40: .word 0x048080F8 _06007C44: .word 0x0000800C arm_func_start FUN_06007C48 FUN_06007C48: ; 0x06007C48 ldr pc, _06007C4C ; =OS_Sleep _06007C4C: .word OS_Sleep arm_func_start WMSP_SendMaMP WMSP_SendMaMP: ; 0x06007C50 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #552 ; 0x228 mov r8, r0 ldr r0, _06007E40 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 bl FUN_060001A4 add r1, r4, #256 ; 0x100 ldrh r7, [r1, #130] ; 0x82 ldrh r6, [r4, #134] ; 0x86 bl FUN_060001AC mov r1, #0 strh r1, [sp, #24] ldrh r0, [r4, #136] ; 0x88 cmp r0, #1 ldreq r8, _06007E44 ; =0x0000FFFF streqh r1, [r4, #136] ; 0x88 ldrh r0, [r4, #158] ; 0x9e cmp r0, #0 bne _06007D88 ldrh r5, [r4, #58] ; 0x3a add r0, sp, #28 str r0, [sp] add r0, sp, #32 str r0, [sp, #4] mov r0, r8 mov r1, r7 mov r2, r6 add r3, sp, #24 bl FUN_06007608 cmp r0, #1 moveq r0, #0 streqh r0, [r4, #98] ; 0x62 streqh r0, [r4, #100] ; 0x64 addeq sp, sp, #552 ; 0x228 ldmeqia sp!, {r4, r5, r6, r7, r8, lr} bxeq lr add r6, r5, #2 ldrh r0, [r4, #146] ; 0x92 cmp r0, #1 ldreq r8, [sp, #28] and r8, r8, r7 mov r0, r8 bl FUN_06006CA4 ldrh r2, [r4, #114] ; 0x72 add r1, r5, #12 mul r0, r1, r0 add r0, r0, #41 ; 0x29 bic r0, r0, #31 cmp r2, r0 bge _06007D40 mov r0, #0 mov r1, r8, lsl #16 mov r1, r1, lsr #16 bl WMSP_FlushSendQueue mov r0, #0 strh r0, [r4, #98] ; 0x62 strh r0, [r4, #100] ; 0x64 add sp, sp, #552 ; 0x228 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06007D40: ldrsh r0, [r4, #98] ; 0x62 cmp r0, #1 beq _06007D58 ldrsh r0, [r4, #100] ; 0x64 cmp r0, #1 bne _06007D80 _06007D58: ldr r0, [sp, #32] mov r1, r6 mov r2, r8 ldrh r3, [r4, #64] ; 0x40 bl FUN_06006BF0 mov r5, r0 ldrh r0, [sp, #24] orr r0, r0, #32768 ; 0x8000 strh r0, [sp, #24] b _06007DC8 _06007D80: mov r5, #0 b _06007DC8 _06007D88: mov r5, #0 strh r5, [r4, #158] ; 0x9e mov r8, r7 ldr r6, _06007E48 ; =0x000080D6 str r5, [sp, #32] ldrh r0, [sp, #24] bic r0, r0, #32768 ; 0x8000 strh r0, [sp, #24] bl FUN_060001A4 ldrsh r1, [r4, #98] ; 0x62 add r1, r1, #1 strh r1, [r4, #98] ; 0x62 ldrsh r1, [r4, #100] ; 0x64 add r1, r1, #1 strh r1, [r4, #100] ; 0x64 bl FUN_060001AC _06007DC8: mov r0, r8, lsl #16 mov r0, r0, lsr #16 str r0, [sp] str r5, [sp, #4] ldr r0, _06007E4C ; =0x048080F8 ldrh r0, [r0] str r0, [sp, #8] ldr r0, [sp, #32] mov r0, r0, lsl #16 mov r0, r0, lsr #16 str r0, [sp, #12] ldrh r0, [sp, #24] str r0, [sp, #16] ldr r0, [r4, #124] ; 0x7c str r0, [sp, #20] add r0, sp, #36 ; 0x24 mov r1, #0 mov r2, r1 mov r3, r6, lsl #16 mov r3, r3, lsr #16 bl WMSP_WL_MaMp strh r8, [r4, #104] ; 0x68 ldrh r0, [sp, #24] strh r0, [r4, #106] ; 0x6a strh r6, [r4, #108] ; 0x6c ldr r0, [sp, #32] strh r0, [r4, #110] ; 0x6e add sp, sp, #552 ; 0x228 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06007E40: .word _0601A960 _06007E44: .word 0x0000FFFF _06007E48: .word 0x000080D6 _06007E4C: .word 0x048080F8 arm_func_start WMSP_SendMaKeyData WMSP_SendMaKeyData: ; 0x06007E50 stmdb sp!, {r4, lr} sub sp, sp, #536 ; 0x218 ldr r0, _06007F1C ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r0, r4, #256 ; 0x100 ldrh r0, [r0, #130] ; 0x82 cmp r0, #0 addeq sp, sp, #536 ; 0x218 ldmeqia sp!, {r4, lr} bxeq lr mov r0, #1 strh r0, [r4, #138] ; 0x8a mov r1, #0 strh r1, [sp, #8] add r1, sp, #12 str r1, [sp] add r1, sp, #16 str r1, [sp, #4] mov r1, r0 mov r2, r0 add r3, sp, #8 bl FUN_06007608 cmp r0, #1 moveq r0, #0 streqh r0, [r4, #138] ; 0x8a addeq sp, sp, #536 ; 0x218 ldmeqia sp!, {r4, lr} bxeq lr ldr r0, [r4, #28] cmp r0, #1 ldreqh r0, [sp, #8] orreq r0, r0, #32768 ; 0x8000 streqh r0, [sp, #8] add r0, sp, #20 ldr r1, [sp, #16] mov r1, r1, lsl #16 mov r1, r1, lsr #16 ldrh r2, [sp, #8] ldr r3, [r4, #124] ; 0x7c bl WMSP_WL_MaKeyData ldrh r0, [r0, #4] cmp r0, #0 addeq sp, sp, #536 ; 0x218 ldmeqia sp!, {r4, lr} bxeq lr cmp r0, #8 movne r0, #0 strneh r0, [r4, #138] ; 0x8a add sp, sp, #536 ; 0x218 ldmia sp!, {r4, lr} bx lr _06007F1C: .word _0601A960 arm_func_start WMSP_InitSendQueue WMSP_InitSendQueue: ; 0x06007F20 stmdb sp!, {r4, lr} ldr r0, _06007FD4 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, _06007FD8 ; =0x0000071C add r0, r4, r0 bl FUN_06007158 mov r0, #0 add r1, r4, #760 ; 0x2f8 mov r2, #1024 ; 0x400 bl FUN_0600055C mov r2, #0 _06007F4C: add r0, r2, #1 mov r0, r0, lsl #16 mov r1, r0, lsr #16 add r0, r4, r2, lsl #5 add r0, r0, #512 ; 0x200 strh r1, [r0, #248] ; 0xf8 mov r2, r1 cmp r1, #31 bcc _06007F4C ldr r2, _06007FDC ; =0x0000FFFF add r0, r4, r1, lsl #5 add r0, r0, #512 ; 0x200 strh r2, [r0, #248] ; 0xf8 mov r3, #0 add r0, r4, #1536 ; 0x600 strh r3, [r0, #248] ; 0xf8 strh r1, [r0, #250] ; 0xfa _06007F90: add r1, r4, r3, lsl #2 add r0, r1, #1792 ; 0x700 strh r2, [r0, #12] strh r2, [r0, #14] add r0, r1, #1536 ; 0x600 strh r2, [r0, #252] ; 0xfc strh r2, [r0, #254] ; 0xfe add r0, r3, #1 mov r0, r0, lsl #16 mov r3, r0, lsr #16 cmp r3, #4 bcc _06007F90 ldr r0, _06007FD8 ; =0x0000071C add r0, r4, r0 bl FUN_06007160 ldmia sp!, {r4, lr} bx lr _06007FD4: .word _0601A960 _06007FD8: .word 0x0000071C _06007FDC: .word 0x0000FFFF arm_func_start WMSP_SetEntry WMSP_SetEntry: ; 0x06007FE0 stmdb sp!, {r4, lr} sub sp, sp, #640 ; 0x280 ldr r1, _0600806C ; =_0601A960 ldr r4, [r1, #1360] ; 0x550 ldr r0, [r0, #4] strh r0, [r4, #246] ; 0xf6 add r0, sp, #512 ; 0x200 add r1, r4, #232 ; 0xe8 bl WMSP_CopyParentParam add r0, sp, #0 ldrh r1, [r4, #236] ; 0xec add r1, r1, #16 mov r1, r1, lsl #16 mov r1, r1, lsr #16 add r2, sp, #512 ; 0x200 bl WMSP_WL_ParamSetGameInfo mov r4, r0 bl FUN_060001E8 mov r1, #33 ; 0x21 strh r1, [r0] ldrh r1, [r4, #4] cmp r1, #0 moveq r1, #0 streqh r1, [r0, #2] beq _0600805C mov r1, #1 strh r1, [r0, #2] ldr r1, _06008070 ; =0x00000245 strh r1, [r0, #4] ldrh r1, [r4, #4] strh r1, [r0, #6] _0600805C: bl FUN_060001F0 add sp, sp, #640 ; 0x280 ldmia sp!, {r4, lr} bx lr _0600806C: .word _0601A960 _06008070: .word 0x00000245 arm_func_start WMSP_AutoDeAuth WMSP_AutoDeAuth: ; 0x06008074 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #520 ; 0x208 add r0, r0, #4 add r1, sp, #0 mov r2, #6 bl FUN_06000554 mov r8, #0 add r7, sp, #8 add r6, sp, #0 mov r5, #19 b _060080D4 _060080A0: mov r0, r7 mov r1, r6 mov r2, r5 bl WMSP_WL_MlmeDeAuthenticate mov r4, r0 ldrh r0, [r4, #4] cmp r0, #0 beq _060080DC cmp r0, #7 beq _060080D0 cmp r0, #12 bne _060080DC _060080D0: add r8, r8, #1 _060080D4: cmp r8, #2 blt _060080A0 _060080DC: bl FUN_060001E8 mov r1, #34 ; 0x22 strh r1, [r0] ldrh r1, [r4, #4] cmp r1, #0 moveq r1, #0 streqh r1, [r0, #2] beq _06008114 mov r1, #1 strh r1, [r0, #2] mov r1, #5 strh r1, [r0, #4] ldrh r1, [r4, #4] strh r1, [r0, #6] _06008114: bl FUN_060001F0 add sp, sp, #520 ; 0x208 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr arm_func_start WMSPi_CommonInit WMSPi_CommonInit: ; 0x06008124 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r0, _06008270 ; =_0601A960 ldr r7, [r0, #1356] ; 0x54c ldr r4, [r0, #1360] ; 0x550 mov r6, #0 bl FUN_060001A4 mov r5, r0 ldr r0, [r4, #12] cmp r0, #1 bne _06008164 mov r0, r6 str r0, [r4, #12] mov r6, #1 bl WMSP_CancelVAlarm bl WMSP_SetThreadPriorityLow _06008164: mov r1, #0 add r0, r4, #256 ; 0x100 strh r1, [r0, #130] ; 0x82 strh r1, [r4, #134] ; 0x86 str r1, [r4, #20] str r1, [r4, #16] str r1, [r4, #28] strh r1, [r4, #206] ; 0xce strh r1, [r4, #194] ; 0xc2 mov r2, #1 strh r2, [r4, #88] ; 0x58 strh r2, [r4, #90] ; 0x5a mov r2, #6 strh r2, [r4, #92] ; 0x5c strh r1, [r4, #152] ; 0x98 strh r1, [r4, #146] ; 0x92 strh r1, [r4, #148] ; 0x94 strh r1, [r4, #154] ; 0x9a strh r1, [r4, #156] ; 0x9c str r1, [r4, #408] ; 0x198 strh r1, [r0, #150] ; 0x96 add r0, r4, #412 ; 0x19c mov r2, #80 ; 0x50 bl FUN_06000D08 bl WMSP_ResetSizeVars mov r0, #260 ; 0x104 strh r0, [r4, #64] ; 0x40 mov r0, #240 ; 0xf0 strh r0, [r4, #66] ; 0x42 mov r0, #1000 ; 0x3e8 strh r0, [r4, #68] ; 0x44 mov r1, #0 strh r1, [r4, #70] ; 0x46 ldr r0, _06008274 ; =0x0000020B str r0, [r4, #72] ; 0x48 str r1, [r4, #76] ; 0x4c str r1, [r4, #80] ; 0x50 str r1, [r4, #84] ; 0x54 strh r1, [r4, #198] ; 0xc6 mov r1, #1 add r0, r4, #256 ; 0x100 strh r1, [r0, #238] ; 0xee mov r0, r5 bl FUN_060001AC cmp r6, #0 beq _06008224 ldr r0, _06008278 ; =0x0000FFFF bl WMSP_CleanSendQueue _06008224: mov r2, #0 mov r1, #32768 ; 0x8000 _0600822C: add r0, r7, r2, lsl #4 str r1, [r0, #208] ; 0xd0 add r2, r2, #1 cmp r2, #32 blt _0600822C mov r0, #1 add r1, r4, #504 ; 0x1f8 mov r2, #256 ; 0x100 bl FUN_0600055C bl WMSP_InitAlarm ldr r0, _0600827C ; =0x0000071C add r0, r4, r0 bl FUN_0600096C bl WMSP_InitVAlarm add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06008270: .word _0601A960 _06008274: .word 0x0000020B _06008278: .word 0x0000FFFF _0600827C: .word 0x0000071C arm_func_start WMSP_Enable WMSP_Enable: ; 0x06008280 stmdb sp!, {r4, lr} ldr r4, [r0, #4] ldr r1, _060082DC ; =_0601A960 str r4, [r1, #1356] ; 0x54c ldr r2, [r0, #8] str r2, [r1, #1360] ; 0x550 str r2, [r4] ldr r0, [r0, #12] str r0, [r4, #8] bl WMSPi_CommonInit mov r0, #15 bl FUN_0600301C mov r1, #1 ldr r0, [r4] strh r1, [r0] bl FUN_060001E8 mov r1, #3 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 ldmia sp!, {r4, lr} bx lr _060082DC: .word _0601A960 arm_func_start WMSP_Disable WMSP_Disable: ; 0x060082E0 stmdb sp!, {r4, lr} ldr r0, _06008344 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4] cmp r0, #1 beq _06008314 bl FUN_060001E8 mov r1, #4 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _0600833C _06008314: mov r0, #1 bl FUN_0600301C mov r0, #0 strh r0, [r4] bl FUN_060001E8 mov r1, #4 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _0600833C: ldmia sp!, {r4, lr} bx lr _06008344: .word _0601A960 arm_func_start FUN_06008348 FUN_06008348: ; 0x06008348 mov r1, #200 ; 0xc8 ldr r0, _06008370 ; =0x04808124 strh r1, [r0] mov r1, #2000 ; 0x7d0 ldr r0, _06008374 ; =0x04808128 strh r1, [r0] ldr r1, _06008378 ; =0x00000202 ldr r0, _0600837C ; =0x04808150 strh r1, [r0] bx lr _06008370: .word 0x04808124 _06008374: .word 0x04808128 _06008378: .word 0x00000202 _0600837C: .word 0x04808150 arm_func_start WMSPi_CommonWlIdle WMSPi_CommonWlIdle: ; 0x06008380 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #516 ; 0x204 mov r7, r0 mov r6, r1 ldr r0, _06008550 ; =_0601A960 ldr r5, [r0, #1360] ; 0x550 add r0, sp, #0 bl WMSP_WL_DevRestart ldrh r1, [r0, #4] cmp r1, #0 beq _060083C4 mov r1, #772 ; 0x304 strh r1, [r7] ldrh r0, [r0, #4] strh r0, [r6] mov r0, #0 b _06008544 _060083C4: add r0, sp, #0 bl WMSP_WL_DevIdle ldrh r1, [r0, #4] cmp r1, #0 beq _060083F0 ldr r1, _06008554 ; =0x00000302 strh r1, [r7] ldrh r0, [r0, #4] strh r0, [r6] mov r0, #0 b _06008544 _060083F0: bl FUN_06008348 add r0, sp, #0 bl WMSP_WL_ParamGetEnableChannel ldrh r1, [r0, #4] cmp r1, #0 beq _06008420 ldr r1, _06008558 ; =0x00000283 strh r1, [r7] ldrh r0, [r0, #4] strh r0, [r6] mov r0, #0 b _06008544 _06008420: ldrh r1, [r0, #6] add r0, r5, #256 ; 0x100 strh r1, [r0, #244] ; 0xf4 mov r0, r1, lsl #15 mov r0, r0, lsr #16 bl FUN_06008570 add r1, r5, #256 ; 0x100 strh r0, [r1, #246] ; 0xf6 add r0, sp, #0 ldr r1, _0600855C ; =0x0000FFFF mov r2, #40 ; 0x28 mov r3, #5 bl WMSP_WL_ParamSetLifeTime ldr r1, _06008560 ; =0x001FF621 mov r0, #0 str r1, [r5, #1976] ; 0x7b8 str r0, [r5, #1980] ; 0x7bc mov r1, #2 add r0, r5, #256 ; 0x100 strh r1, [r0, #236] ; 0xec mov r1, #1 strh r1, [r0, #238] ; 0xee add r0, sp, #0 bl WMSP_WL_DevGetVersion mov r4, r0 ldrh r0, [r4, #4] cmp r0, #0 beq _060084A8 ldr r0, _06008564 ; =0x00000306 strh r0, [r7] ldrh r0, [r4, #4] strh r0, [r6] mov r0, #0 b _06008544 _060084A8: add r0, r4, #6 add r1, r5, #32 mov r2, #8 bl FUN_06000EA0 ldrh r0, [r4, #14] strh r0, [r5, #40] ; 0x28 ldrh r0, [r4, #16] strh r0, [r5, #44] ; 0x2c ldrh r0, [r4, #18] strh r0, [r5, #46] ; 0x2e ldrh r0, [r4, #20] strh r0, [r5, #42] ; 0x2a add r0, sp, #0 bl WMSP_WL_ParamGetMacAddress ldrh r1, [r0, #4] cmp r1, #0 beq _06008504 ldr r1, _06008568 ; =0x00000281 strh r1, [r7] ldrh r0, [r0, #4] strh r0, [r6] mov r0, #0 b _06008544 _06008504: add r0, r0, #6 add r1, r5, #224 ; 0xe0 mov r2, #6 bl FUN_06000554 add r0, sp, #0 mov r1, #1 bl WMSP_WL_ParamSetBeaconSendRecvInd ldrh r1, [r0, #4] cmp r1, #0 moveq r0, #1 beq _06008544 ldr r1, _0600856C ; =0x00000215 strh r1, [r7] ldrh r0, [r0, #4] strh r0, [r6] mov r0, #0 _06008544: add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06008550: .word _0601A960 _06008554: .word 0x00000302 _06008558: .word 0x00000283 _0600855C: .word 0x0000FFFF _06008560: .word 0x001FF621 _06008564: .word 0x00000306 _06008568: .word 0x00000281 _0600856C: .word 0x00000215 arm_func_start FUN_06008570 FUN_06008570: ; 0x06008570 ldr pc, _06008574 ; =WMSP_GetAllowedChannel _06008574: .word WMSP_GetAllowedChannel arm_func_start WMSP_PowerOn WMSP_PowerOn: ; 0x06008578 stmdb sp!, {r4, lr} sub sp, sp, #8 ldr r0, _0600861C ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldrh r0, [r4] cmp r0, #1 beq _060085B0 bl FUN_060001E8 mov r1, #5 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _06008610 _060085B0: add r0, sp, #0 add r1, sp, #2 bl WMSPi_CommonWlIdle cmp r0, #0 bne _060085F0 bl FUN_060001E8 mov r1, #5 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] ldrh r1, [sp] strh r1, [r0, #4] ldrh r1, [sp, #2] strh r1, [r0, #6] bl FUN_060001F0 b _06008610 _060085F0: mov r0, #2 strh r0, [r4] bl FUN_060001E8 mov r1, #5 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06008610: add sp, sp, #8 ldmia sp!, {r4, lr} bx lr _0600861C: .word _0601A960 arm_func_start WMSP_PowerOff WMSP_PowerOff: ; 0x06008620 stmdb sp!, {r4, r5, lr} sub sp, sp, #516 ; 0x204 ldr r0, _060086C8 ; =_0601A960 ldr r5, [r0, #1360] ; 0x550 ldrh r0, [r5] cmp r0, #2 beq _06008658 bl FUN_060001E8 mov r1, #6 strh r1, [r0] mov r1, #3 strh r1, [r0, #2] bl FUN_060001F0 b _060086BC _06008658: add r0, sp, #0 bl WMSP_WL_DevShutdown mov r4, r0 ldrh r0, [r4, #4] cmp r0, #0 beq _0600869C bl FUN_060001E8 mov r1, #6 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] ldr r1, _060086CC ; =0x00000301 strh r1, [r0, #4] ldrh r1, [r4, #4] strh r1, [r0, #6] bl FUN_060001F0 b _060086BC _0600869C: mov r0, #1 strh r0, [r5] bl FUN_060001E8 mov r1, #6 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _060086BC: add sp, sp, #516 ; 0x204 ldmia sp!, {r4, r5, lr} bx lr _060086C8: .word _0601A960 _060086CC: .word 0x00000301 arm_func_start WMSP_SetMPParameterCore WMSP_SetMPParameterCore: ; 0x060086D0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 mov r8, r1 ldr r0, _060089C4 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 mov r6, #0 ldr r5, [r9] ldrh r1, [r4] ldr r0, _060089C8 ; =0x0000FFF7 add r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #1 bhi _06008718 ands r0, r5, #11264 ; 0x2c00 movne r6, #3 bicne r5, r5, #11264 ; 0x2c00 _06008718: bl FUN_060001A4 mov r7, r0 cmp r8, #0 beq _060087A0 ldr r0, _060089CC ; =0x00003FFF str r0, [r8] ldrh r0, [r4, #90] ; 0x5a strh r0, [r8, #4] ldrh r0, [r4, #90] ; 0x5a strh r0, [r8, #6] ldrh r0, [r4, #90] ; 0x5a strh r0, [r8, #8] ldrh r0, [r4, #48] ; 0x30 strh r0, [r8, #10] ldrh r0, [r4, #50] ; 0x32 strh r0, [r8, #12] ldrh r0, [r4, #68] ; 0x44 strh r0, [r8, #14] ldrh r0, [r4, #70] ; 0x46 strh r0, [r8, #16] ldrh r0, [r4, #64] ; 0x40 strh r0, [r8, #18] ldrh r0, [r4, #66] ; 0x42 strh r0, [r8, #20] ldrh r0, [r4, #152] ; 0x98 strh r0, [r8, #22] ldrh r0, [r4, #146] ; 0x92 strb r0, [r8, #24] ldrh r0, [r4, #148] ; 0x94 strb r0, [r8, #25] ldrh r0, [r4, #154] ; 0x9a strb r0, [r8, #26] ldrh r0, [r4, #156] ; 0x9c strb r0, [r8, #27] _060087A0: ands r0, r5, #1 beq _060087B8 ldrh r0, [r9, #4] cmp r0, #0 moveq r0, #16 strh r0, [r4, #88] ; 0x58 _060087B8: ands r0, r5, #2 beq _060087DC ldrh r1, [r9, #6] cmp r1, #0 moveq r1, #16 strh r1, [r4, #90] ; 0x5a ldrsh r0, [r4, #98] ; 0x62 cmp r0, r1 strgth r1, [r4, #98] ; 0x62 _060087DC: ands r0, r5, #4 beq _06008800 ldrh r1, [r9, #8] cmp r1, #0 moveq r1, #16 strh r1, [r4, #92] ; 0x5c ldrsh r0, [r4, #98] ; 0x62 cmp r0, r1 strgth r1, [r4, #98] ; 0x62 _06008800: ands r0, r5, #8 beq _06008830 ldrh r0, [r9, #10] add r1, r0, #1 bic r1, r1, #1 mov r1, r1, lsl #16 mov r2, r1, lsr #16 ldrh r1, [r4, #52] ; 0x34 cmp r2, r1 movhi r6, #6 bhi _06008830 bl WMSP_SetParentSize _06008830: ands r0, r5, #16 beq _06008860 ldrh r0, [r9, #12] add r1, r0, #1 bic r1, r1, #1 mov r1, r1, lsl #16 mov r2, r1, lsr #16 ldrh r1, [r4, #54] ; 0x36 cmp r2, r1 movhi r6, #6 bhi _06008860 bl WMSP_SetChildSize _06008860: ands r0, r5, #32 beq _060088B4 ldrh r8, [r9, #14] ldr r0, _060089D0 ; =0x00002710 cmp r8, r0 movhi r6, #6 bhi _060088B4 strh r8, [r4, #68] ; 0x44 mov r1, #0 ldr r0, _060089D4 ; =0x000082EA umull r3, r2, r8, r0 mla r2, r8, r1, r2 mla r2, r1, r0, r2 mov r0, r2, lsr #6 mov r1, r3, lsr #6 orr r1, r1, r2, lsl #26 mov r2, r0, lsr #10 mov r1, r1, lsr #10 orr r1, r1, r0, lsl #22 str r1, [r4, #72] ; 0x48 str r2, [r4, #76] ; 0x4c _060088B4: ands r0, r5, #64 ; 0x40 beq _06008908 ldrh r8, [r9, #16] ldr r0, _060089D0 ; =0x00002710 cmp r8, r0 movhi r6, #6 bhi _06008908 strh r8, [r4, #70] ; 0x46 mov r1, #0 ldr r0, _060089D4 ; =0x000082EA umull r3, r2, r8, r0 mla r2, r8, r1, r2 mla r2, r1, r0, r2 mov r0, r2, lsr #6 mov r1, r3, lsr #6 orr r1, r1, r2, lsl #26 mov r2, r0, lsr #10 mov r1, r1, lsr #10 orr r1, r1, r0, lsl #22 str r1, [r4, #80] ; 0x50 str r2, [r4, #84] ; 0x54 _06008908: ands r0, r5, #128 ; 0x80 beq _0600893C ldrh r1, [r9, #18] cmp r1, #190 ; 0xbe bls _06008930 cmp r1, #220 ; 0xdc bcc _06008938 ldr r0, _060089D8 ; =0x00000106 cmp r1, r0 bhi _06008938 _06008930: strh r1, [r4, #64] ; 0x40 b _0600893C _06008938: mov r6, #6 _0600893C: ands r0, r5, #256 ; 0x100 beq _06008970 ldrh r1, [r9, #20] cmp r1, #190 ; 0xbe bls _06008964 cmp r1, #220 ; 0xdc bcc _0600896C ldr r0, _060089D8 ; =0x00000106 cmp r1, r0 bhi _0600896C _06008964: strh r1, [r4, #66] ; 0x42 b _06008970 _0600896C: mov r6, #6 _06008970: ands r0, r5, #512 ; 0x200 ldrneh r0, [r9, #22] strneh r0, [r4, #152] ; 0x98 ands r0, r5, #1024 ; 0x400 ldrneb r0, [r9, #24] strneh r0, [r4, #146] ; 0x92 ands r0, r5, #2048 ; 0x800 ldrneb r0, [r9, #25] strneh r0, [r4, #148] ; 0x94 ands r0, r5, #4096 ; 0x1000 ldrneb r0, [r9, #26] strneh r0, [r4, #154] ; 0x9a ands r0, r5, #8192 ; 0x2000 ldrneb r0, [r9, #27] strneh r0, [r4, #156] ; 0x9c mov r0, r7 bl FUN_060001AC mov r0, r6 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _060089C4: .word _0601A960 _060089C8: .word 0x0000FFF7 _060089CC: .word 0x00003FFF _060089D0: .word 0x00002710 _060089D4: .word 0x000082EA _060089D8: .word 0x00000106 arm_func_start WMSP_SetMPParameter WMSP_SetMPParameter: ; 0x060089DC stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #32 mov r6, r0 add r0, r6, #4 add r1, sp, #0 bl WMSP_SetMPParameterCore mov r5, r0 bl FUN_060001E8 mov r4, r0 mov r0, #35 ; 0x23 strh r0, [r4] strh r5, [r4, #2] ldr r0, [r6, #4] str r0, [r4, #4] add r0, sp, #0 add r1, r4, #8 mov r2, #28 bl FUN_06000554 mov r0, r4 bl FUN_060001F0 add sp, sp, #32 ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start FUN_06008A38 FUN_06008A38: ; 0x06008A38 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 bl FUN_060001E8 mov r1, #36 ; 0x24 strh r1, [r0] mov r1, #1 strh r1, [r0, #2] strh r5, [r0, #4] strh r4, [r0, #6] bl FUN_060001F0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr arm_func_start WMSP_SetBeaconPeriod WMSP_SetBeaconPeriod: ; 0x06008A74 stmfd sp!, {lr} sub sp, sp, #516 ; 0x204 mov r1, r0 add r0, sp, #0 ldr r1, [r1, #4] mov r1, r1, lsl #16 mov r1, r1, lsr #16 bl WMSP_WL_ParamSetBeaconPeriod ldrh r1, [r0, #4] cmp r1, #0 beq _06008AAC ldr r0, _06008AD0 ; =0x00000242 bl FUN_06008A38 b _06008AC4 _06008AAC: bl FUN_060001E8 mov r1, #36 ; 0x24 strh r1, [r0] mov r1, #0 strh r1, [r0, #2] bl FUN_060001F0 _06008AC4: add sp, sp, #516 ; 0x204 ldmfd sp!, {lr} bx lr _06008AD0: .word 0x00000242 arm_func_start WMSP_AutoDisconnect WMSP_AutoDisconnect: ; 0x06008AD4 mov r1, #1 mov r2, #0 ldr ip, _06008AE4 ; =WMSP_DisconnectCore bx ip _06008AE4: .word WMSP_DisconnectCore arm_func_start WMSP_SetPowerSaveMode WMSP_SetPowerSaveMode: ; 0x06008AE8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #564 ; 0x234 mov r7, r0 ldr r0, _06008C64 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 add r6, sp, #48 ; 0x30 bl FUN_060001E8 mov r5, r0 mov r1, #40 ; 0x28 strh r1, [r5] ldrh r1, [r4] cmp r1, #11 beq _06008B2C mov r1, #3 strh r1, [r5, #2] bl FUN_060001F0 b _06008C58 _06008B2C: ldr r0, [r7, #4] cmp r0, #1 moveq r1, #1 movne r1, #0 mov r0, r6 mov r1, r1, lsl #16 mov r1, r1, lsr #16 mov r2, #0 mov r3, #1 bl WMSP_WL_MlmePowerManagement ldrh r1, [r0, #4] cmp r1, #0 beq _06008B80 mov r1, #1 strh r1, [r5, #2] strh r1, [r5, #4] ldrh r0, [r0, #4] strh r0, [r5, #6] mov r0, r5 bl FUN_060001F0 b _06008C58 _06008B80: ldr r0, _06008C64 ; =_0601A960 ldr r4, [r0, #1360] ; 0x550 ldr r0, _06008C68 ; =0x0000018A add r0, r4, r0 add r1, r4, #162 ; 0xa2 mov r2, #6 bl FUN_06000554 add r0, sp, #48 ; 0x30 str r0, [r4, #168] ; 0xa8 mov r0, #0 strh r0, [r4, #172] ; 0xac mov r1, #1 str r1, [r4, #24] add r1, sp, #0 mov r2, #48 ; 0x30 bl FUN_0600055C mov r0, #0 strh r0, [sp] strh r0, [sp, #6] add r0, r4, #256 ; 0x100 ldrh r0, [r0, #236] ; 0xec cmp r0, #2 moveq r0, #20 movne r0, #10 strb r0, [sp, #14] ldr r0, _06008C68 ; =0x0000018A add r0, r4, r0 add r1, sp, #24 mov r2, #6 bl FUN_06000554 add r0, r4, #224 ; 0xe0 add r1, sp, #30 mov r2, #6 bl FUN_06000554 add r0, sp, #48 ; 0x30 str r0, [sp, #44] ; 0x2c add r1, sp, #0 bl WMSP_WL_MaData ldrh r1, [r0, #4] cmp r1, #0 beq _06008C48 mov r1, #1 strh r1, [r5, #2] mov r1, #256 ; 0x100 strh r1, [r5, #4] ldrh r0, [r0, #4] strh r0, [r5, #6] mov r0, r5 bl FUN_060001F0 b _06008C58 _06008C48: mov r0, #0 strh r0, [r5, #2] mov r0, r5 bl FUN_060001F0 _06008C58: add sp, sp, #564 ; 0x234 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06008C64: .word _0601A960 _06008C68: .word 0x0000018A arm_func_start WMSP_StartTestRxMode WMSP_StartTestRxMode: ; 0x06008C6C stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #41 ; 0x29 strh r1, [r0] mov r1, #4 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start WMSP_StopTestRxMode WMSP_StopTestRxMode: ; 0x06008C98 stmfd sp!, {lr} sub sp, sp, #4 bl FUN_060001E8 mov r1, #42 ; 0x2a strh r1, [r0] mov r1, #4 strh r1, [r0, #2] bl FUN_060001F0 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start WL_Terminate WL_Terminate: ; 0x06008CC4 stmdb sp!, {r4, lr} bl WL_GetThreadStruct mov r4, r0 bl FUN_06008D08 cmp r0, #1 beq _06008D00 mov r0, #2 mov r1, #22 bl AddTask mov r0, r4 bl FUN_06008D10 _06008CF0: mov r0, r4 bl FUN_06008D08 cmp r0, #0 beq _06008CF0 _06008D00: ldmia sp!, {r4, lr} bx lr arm_func_start FUN_06008D08 FUN_06008D08: ; 0x06008D08 ldr pc, _06008D0C ; =OS_IsThreadTerminated _06008D0C: .word OS_IsThreadTerminated arm_func_start FUN_06008D10 FUN_06008D10: ; 0x06008D10 ldr pc, _06008D14 ; =OS_JoinThread _06008D14: .word OS_JoinThread arm_func_start WL_GetThreadStruct WL_GetThreadStruct: ; 0x06008D18 ldr r0, _06008D28 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #24 bx lr _06008D28: .word 0x0380FFF4 arm_func_start WL_InitDriver WL_InitDriver: ; 0x06008D2C stmdb sp!, {r4, lr} sub sp, sp, #16 mov r4, r0 ldr r1, [r4] ldr r0, _06008EF0 ; =0x0380FFF4 str r1, [r0] mov r0, #0 ldr r2, _06008EF4 ; =0x00000694 bl FUN_06008F08 bl FUN_06008F10 ldr r2, _06008EF0 ; =0x0380FFF4 ldr r1, [r2] str r0, [r1, #788] ; 0x314 ldr r1, [r4, #24] ldr r0, [r2] str r1, [r0, #780] ; 0x30c ldr r0, [r4, #28] mov r1, r0, lsr #1 ldr r0, [r2] str r1, [r0, #784] ; 0x310 ldr r1, [r2] ldr r0, [r1, #784] ; 0x310 cmp r0, #0 mvneq r0, #0 streq r0, [r1, #784] ; 0x310 add r0, r4, #32 bl InitializeHeapBuf bl FLASH_MakeImage ldr r1, _06008EF8 ; =0x04000304 ldrh r0, [r1] orr r0, r0, #2 strh r0, [r1] mov r1, #48 ; 0x30 ldr r0, _06008EFC ; =0x04000206 strh r1, [r0] mov r1, #3 ldr r2, _06008EF0 ; =0x0380FFF4 ldr r0, [r2] str r1, [r0, #1676] ; 0x68c mov r0, #60 ; 0x3c mov r1, #2 ldr r3, [r2] ldr r2, _06008F00 ; =0x00000692 add r2, r3, r2 bl FLASH_Read mov r0, #62 ; 0x3e mov r1, #2 ldr r2, _06008EF0 ; =0x0380FFF4 ldr r2, [r2] add r2, r2, #1680 ; 0x690 bl FLASH_Read ldr r1, [r4, #16] ldr r2, _06008EF0 ; =0x0380FFF4 ldr r0, [r2] str r1, [r0, #776] ; 0x308 ldr r1, [r4, #20] ldr r0, [r2] str r1, [r0, #772] ; 0x304 ldr r0, [r4, #48] ; 0x30 mov r1, #28 bl FUN_06003B68 mov r1, r0 ldr r0, [r4, #44] ; 0x2c bl InitializeParam bl InitializeTask bl InitializeCmdIf bl InitializeMLME bl InitializeCAM bl InitializeAlarm add r0, sp, #8 bl FLASH_VerifyCheckSum cmp r0, #0 beq _06008E6C ldr r0, _06008EF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #62] ; 0x3e orr r1, r1, #128 ; 0x80 strh r1, [r0, #62] ; 0x3e b _06008E94 _06008E6C: bl WConfigDevice bl DiagMacRegister bl WWakeUp bl InitMac bl InitRF bl DiagMacMemory bl DiagBaseBand bl InitBaseBand bl WSetDefaultParameters bl WShutdown _06008E94: ldr r0, [r4, #8] str r0, [sp] ldr r0, [r4, #12] str r0, [sp, #4] ldr r0, _06008EF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #24 ldr r1, _06008F04 ; =MainTaskRoutine mov r2, #0 ldr r3, [r4, #4] bl FUN_06000974 ldr r0, _06008EF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #24 bl FUN_0600097C bl InitializeIntr ldr r0, _06008EF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #62] ; 0x3e add sp, sp, #16 ldmia sp!, {r4, lr} bx lr _06008EF0: .word 0x0380FFF4 _06008EF4: .word 0x00000694 _06008EF8: .word 0x04000304 _06008EFC: .word 0x04000206 _06008F00: .word 0x00000692 _06008F04: .word MainTaskRoutine arm_func_start FUN_06008F08 FUN_06008F08: ; 0x06008F08 ldr pc, _06008F0C ; =MIi_CpuClearFast _06008F0C: .word MIi_CpuClearFast arm_func_start FUN_06008F10 FUN_06008F10: ; 0x06008F10 ldr pc, _06008F14 ; =OS_GetLockID _06008F14: .word OS_GetLockID arm_func_start WlessLibReboot WlessLibReboot: ; 0x06008F18 stmfd sp!, {lr} sub sp, sp, #4 bl ClearTimeOut bl WShutdown bl InitMac bl ReleaseAllWlHeapBuf bl InitializeTask ldr r0, _06008F68 ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #796] ; 0x31c add r1, r1, #768 ; 0x300 ldrh r1, [r1, #32] bl InitializeParam bl InitializeCmdIf bl InitializeMLME bl InitializeCAM bl WSetDefaultParameters add sp, sp, #4 ldmfd sp!, {lr} bx lr _06008F68: .word 0x0380FFF4 arm_func_start ExecuteMessage ExecuteMessage: ; 0x06008F6C stmfd sp!, {lr} sub sp, sp, #4 ldr r1, [r0] cmp r1, #0 beq _06008F9C ldr r0, _06008FA8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #512 ; 0x200 bl NewHeapBuf mov r0, #2 mov r1, #11 bl AddTask _06008F9C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06008FA8: .word 0x0380FFF4 arm_func_start LowestIdleTask LowestIdleTask: ; 0x06008FAC stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06008FEC ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #776] ; 0x308 add r1, sp, #0 mov r2, #1 bl FUN_06000780 add r0, sp, #0 bl ExecuteMessage mov r0, #3 mov r1, #12 bl AddTask add sp, sp, #4 ldmfd sp!, {lr} bx lr _06008FEC: .word 0x0380FFF4 arm_func_start DeleteTask DeleteTask: ; 0x06008FF0 stmdb sp!, {r4, r5, r6, lr} mov r4, r0 ldr r0, _0600905C ; =0x0380FFF4 ldr r5, [r0] ldr r0, _06009060 ; =0x01000010 bl FUN_06009068 mov r6, r4, lsl #1 ldrh r4, [r5, r6] ldr r2, _06009064 ; =0x0000FFFF cmp r4, r2 beq _0600904C add lr, r5, #188 ; 0xbc mov ip, #0 mov r3, r4, lsl #3 add r1, lr, r4, lsl #3 strh ip, [r1, #2] ldrh r1, [lr, r3] cmp r1, r2 streqh r2, [r5, r6] addeq r1, r5, r6 streqh r2, [r1, #8] strneh r1, [r5, r6] strneh r2, [lr, r3] _0600904C: bl FUN_06009070 mov r0, r4 ldmia sp!, {r4, r5, r6, lr} bx lr _0600905C: .word 0x0380FFF4 _06009060: .word 0x01000010 _06009064: .word 0x0000FFFF arm_func_start FUN_06009068 FUN_06009068: ; 0x06009068 ldr pc, _0600906C ; =OS_DisableIrqMask _0600906C: .word OS_DisableIrqMask arm_func_start FUN_06009070 FUN_06009070: ; 0x06009070 ldr pc, _06009074 ; =OS_EnableIrqMask _06009074: .word OS_EnableIrqMask arm_func_start AddTask AddTask: ; 0x06009078 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r0, _0600912C ; =0x0380FFF4 ldr r5, [r0] add r4, r5, #188 ; 0xbc ldr r0, _06009130 ; =0x01000010 bl FUN_06009068 mov ip, r6, lsl #3 add r2, r4, r6, lsl #3 ldrh r1, [r2, #2] cmp r1, #0 bne _060090F0 mov r1, #1 strh r1, [r2, #2] ldr r3, _06009134 ; =0x0000FFFF strh r3, [r4, ip] mov r2, r7, lsl #1 add r1, r5, r7, lsl #1 ldrh r1, [r1, #8] cmp r1, r3 streqh r6, [r5, r2] addne r1, r5, r1, lsl #3 strneh r6, [r1, #188] ; 0xbc add r1, r5, r7, lsl #1 strh r6, [r1, #8] ldrh r1, [r5, #16] cmp r7, r1 strlth r7, [r5, #16] _060090F0: bl FUN_06009070 cmp r7, #3 beq _06009120 ldrh r0, [r5, #18] cmp r0, #3 bne _06009120 ldr r0, _0600912C ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #776] ; 0x308 mov r1, #0 mov r2, r1 bl FUN_060006F8 _06009120: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600912C: .word 0x0380FFF4 _06009130: .word 0x01000010 _06009134: .word 0x0000FFFF arm_func_start MainTaskRoutine MainTaskRoutine: ; 0x06009138 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} arm_func_start FUN_0600913C FUN_0600913C: ; 0x0600913C sub sp, sp, #8 ldr r8, _060091EC ; =0x0380FFF4 ldr r9, [r8] mov r7, #0 strh r7, [r9, #16] strh r7, [r9, #20] add r6, sp, #0 ldr r5, _060091F0 ; =0x01000010 add r4, r9, #16 ldr sl, _060091F4 ; =0x0000FFFF _06009164: ldr r0, [r8] ldr r0, [r0, #776] ; 0x308 mov r1, r6 mov r2, r7 bl FUN_06000780 cmp r0, #0 beq _06009188 mov r0, r6 bl ExecuteMessage _06009188: mov r0, r5 bl FUN_06009068 ldrh r1, [r9, #16] strh r1, [r9, #18] ldrh r1, [r9, #18] mov r1, r1, lsl #1 ldrh r1, [r9, r1] cmp r1, sl bne _060091C0 ldrh r1, [r4] add r1, r1, #1 strh r1, [r4] bl FUN_06009070 b _06009164 _060091C0: bl FUN_06009070 ldrh r0, [r9, #18] bl DeleteTask strh r0, [r9, #20] ldrh r0, [r9, #20] add r0, r9, r0, lsl #3 ldr r0, [r0, #192] ; 0xc0 mov lr, pc bx r0 strh sl, [r9, #20] b _06009164 _060091EC: .word 0x0380FFF4 _060091F0: .word 0x01000010 _060091F4: .word 0x0000FFFF arm_func_start InitializeTask InitializeTask: ; 0x060091F8 stmdb sp!, {r4, lr} ldr r0, _06009278 ; =0x0380FFF4 ldr r4, [r0] mov r3, #0 strh r3, [r4, #16] strh r3, [r4, #18] ldr r2, _0600927C ; =0x0000FFFF _06009214: mov r1, r3, lsl #1 add r0, r4, r3, lsl #1 strh r2, [r0, #8] ldrh r0, [r0, #8] strh r0, [r4, r1] add r3, r3, #1 cmp r3, #4 bcc _06009214 mov lr, #0 ldr ip, _0600927C ; =0x0000FFFF mov r2, lr ldr r1, _06009280 ; =_06019320 _06009244: add r3, r4, lr, lsl #3 strh ip, [r3, #188] ; 0xbc strh r2, [r3, #190] ; 0xbe ldr r0, [r1, lr, lsl #2] str r0, [r3, #192] ; 0xc0 add lr, lr, #1 cmp lr, #24 bcc _06009244 mov r0, #3 mov r1, #12 bl AddTask ldmia sp!, {r4, lr} bx lr _06009278: .word 0x0380FFF4 _0600927C: .word 0x0000FFFF _06009280: .word _06019320 arm_func_start ReleaseAllHeapBuf ReleaseAllHeapBuf: ; 0x06009284 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r6, [r7] ldrh r0, [r7, #8] cmp r0, #0 beq _060092CC mvn r4, #0 b _060092C4 _060092A8: mov r0, r6 bl GetHeapBufNextAdrs mov r5, r0 mov r0, r7 mov r1, r6 bl ReleaseHeapBuf mov r6, r5 _060092C4: cmp r6, r4 bne _060092A8 _060092CC: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start ReleaseAllWlHeapBuf ReleaseAllWlHeapBuf: ; 0x060092D8 stmdb sp!, {r4, lr} ldr r0, _06009330 ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #380 ; 0x17c add r0, r4, #24 bl ReleaseAllHeapBuf add r0, r4, #36 ; 0x24 bl ReleaseAllHeapBuf add r0, r4, #48 ; 0x30 bl ReleaseAllHeapBuf add r0, r4, #60 ; 0x3c bl ReleaseAllHeapBuf add r0, r4, #72 ; 0x48 bl ReleaseAllHeapBuf add r0, r4, #84 ; 0x54 bl ReleaseAllHeapBuf add r0, r4, #96 ; 0x60 bl ReleaseAllHeapBuf add r0, r4, #108 ; 0x6c bl ReleaseAllHeapBuf ldmia sp!, {r4, lr} bx lr _06009330: .word 0x0380FFF4 arm_func_start InitializeHeapBuf InitializeHeapBuf: ; 0x06009334 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _06009414 ; =0x0380FFF4 ldr r2, [r1] add r5, r2, #380 ; 0x17c add r4, r2, #836 ; 0x344 ldr r1, [r0] str r1, [r2, #380] ; 0x17c ldr r1, [r0, #4] str r1, [r5, #4] ldr r0, [r0, #8] str r0, [r5, #8] add r0, r5, #12 mov r1, #2 bl InitHeapBufMan add r0, r5, #24 mov r1, #3 bl InitHeapBufMan add r0, r5, #36 ; 0x24 mov r1, #4 bl InitHeapBufMan add r0, r5, #48 ; 0x30 mov r1, #5 bl InitHeapBufMan add r0, r5, #60 ; 0x3c mov r1, #6 bl InitHeapBufMan add r0, r5, #72 ; 0x48 mov r1, #7 bl InitHeapBufMan add r0, r5, #84 ; 0x54 mov r1, #8 bl InitHeapBufMan add r0, r5, #96 ; 0x60 mov r1, #9 bl InitHeapBufMan add r0, r5, #108 ; 0x6c mov r1, #10 bl InitHeapBufMan add r0, r5, #120 ; 0x78 mov r1, #11 bl InitHeapBufMan add r0, r5, #132 ; 0x84 mov r1, #12 bl InitHeapBufMan add r0, r5, #12 mov r1, #129 ; 0x81 bl AllocateHeapBuf add r0, r0, #12 str r0, [r4, #156] ; 0x9c mov r0, #0 strh r0, [r4, #160] ; 0xa0 strh r0, [r4, #164] ; 0xa4 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009414: .word 0x0380FFF4 arm_func_start InitHeapBufMan InitHeapBufMan: ; 0x06009418 mvn r2, #0 str r2, [r0] str r2, [r0, #4] mov r2, #0 strh r2, [r0, #8] strh r1, [r0, #10] bx lr arm_func_start GetHeapBufNextAdrs GetHeapBufNextAdrs: ; 0x06009434 ldr r0, [r0, #4] bx lr arm_func_start DeleteHeapBuf DeleteHeapBuf: ; 0x0600943C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldrh r1, [r4, #10] ldr r0, _0600951C ; =0x0000BF1D cmp r1, r0 movne r0, #1 bne _06009510 ldrh r1, [r4, #8] ldrh r0, [r5, #10] cmp r1, r0 movne r0, #2 bne _06009510 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 ldrh r1, [r5, #8] sub r1, r1, #1 strh r1, [r5, #8] ldrh r1, [r5, #8] cmp r1, #0 mvneq r1, #0 streq r1, [r5] streq r1, [r5, #4] beq _06009500 ldr r1, [r5] cmp r4, r1 bne _060094C4 ldr r1, [r4, #4] str r1, [r5] mvn r2, #0 ldr r1, [r5] str r2, [r1] b _06009500 _060094C4: ldr r1, [r5, #4] cmp r4, r1 bne _060094E8 ldr r1, [r4] str r1, [r5, #4] mvn r2, #0 ldr r1, [r5, #4] str r2, [r1, #4] b _06009500 _060094E8: ldr r2, [r4] ldr r1, [r4, #4] str r2, [r1] ldr r2, [r4, #4] ldr r1, [r4] str r2, [r1, #4] _06009500: mov r1, #0 strh r1, [r4, #8] bl FUN_06009070 mov r0, #0 _06009510: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600951C: .word 0x0000BF1D arm_func_start AddHeapBuf AddHeapBuf: ; 0x06009520 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldrh r1, [r4, #10] ldr r0, _060095B0 ; =0x0000BF1D cmp r1, r0 movne r0, #1 bne _060095A4 ldrh r0, [r4, #8] cmp r0, #0 movne r0, #2 bne _060095A4 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 ldrh r1, [r5, #8] cmp r1, #0 mvneq r1, #0 streq r1, [r4] streq r4, [r5] ldrne r1, [r5, #4] strne r1, [r4] strne r4, [r1, #4] mvn r1, #0 str r1, [r4, #4] ldrh r1, [r5, #10] strh r1, [r4, #8] str r4, [r5, #4] ldrh r1, [r5, #8] add r1, r1, #1 strh r1, [r5, #8] bl FUN_06009070 mov r0, #0 _060095A4: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060095B0: .word 0x0000BF1D arm_func_start NewHeapBuf NewHeapBuf: ; 0x060095B4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 ldrh r1, [r5, #8] cmp r1, #0 mvneq r1, #0 streq r1, [r4] streq r4, [r5] ldrne r1, [r5, #4] strne r1, [r4] strne r4, [r1, #4] mvn r1, #0 str r1, [r4, #4] ldrh r1, [r5, #10] strh r1, [r4, #8] ldr r1, _06009628 ; =0x0000BF1D strh r1, [r4, #10] str r4, [r5, #4] ldrh r1, [r5, #8] add r1, r1, #1 strh r1, [r5, #8] bl FUN_06009070 mov r0, #0 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009628: .word 0x0000BF1D arm_func_start MoveHeapBuf MoveHeapBuf: ; 0x0600962C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 mov r7, r1 mov r6, r2 ldrh r1, [r6, #10] ldr r0, _0600969C ; =0x0000BF1D cmp r1, r0 movne r0, #1 bne _06009690 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 mov r0, r5 mov r1, r6 bl DeleteHeapBuf movs r5, r0 bne _06009684 mov r0, r7 mov r1, r6 bl AddHeapBuf mov r5, r0 _06009684: mov r0, r4 bl FUN_06009070 mov r0, r5 _06009690: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600969C: .word 0x0000BF1D arm_func_start ReleaseHeapBuf ReleaseHeapBuf: ; 0x060096A0 stmdb sp!, {r4, r5, r6, lr} mov r4, r1 ldr r2, _0600971C ; =0x0380FFF4 ldr r2, [r2] add r6, r2, #380 ; 0x17c ldrh r3, [r4, #10] ldr r2, _06009720 ; =0x0000BF1D cmp r3, r2 movne r0, #1 bne _06009714 bl DeleteHeapBuf movs r5, r0 bne _06009710 ldr r0, [r6] cmp r0, #0 beq _060096EC cmp r0, #1 beq _06009700 b _06009710 _060096EC: ldr r0, [r6, #4] ldr r1, [r6, #8] mov r2, r4 bl FUN_06001F8C b _06009710 _06009700: mov r0, r4 ldr r1, [r6, #8] mov lr, pc bx r1 _06009710: mov r0, r5 _06009714: ldmia sp!, {r4, r5, r6, lr} bx lr _0600971C: .word 0x0380FFF4 _06009720: .word 0x0000BF1D arm_func_start AllocateHeapBuf AllocateHeapBuf: ; 0x06009724 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _060097C4 ; =0x0380FFF4 ldr r0, [r0] add r3, r0, #380 ; 0x17c cmp r1, #0 moveq r0, #0 beq _060097B8 add r2, r1, #12 ldr r0, [r3] cmp r0, #0 beq _06009764 cmp r0, #1 beq _06009778 b _0600978C _06009764: ldr r0, [r3, #4] ldr r1, [r3, #8] bl FUN_060014F4 mov r4, r0 b _0600978C _06009778: mov r0, r2 ldr r1, [r3, #4] mov lr, pc bx r1 mov r4, r0 _0600978C: cmp r4, #0 moveq r0, #0 beq _060097B8 ldr r0, _060097C8 ; =0x0000BF1D strh r0, [r4, #10] mov r0, #0 strh r0, [r4, #8] mov r0, r5 mov r1, r4 bl AddHeapBuf mov r0, r4 _060097B8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060097C4: .word 0x0380FFF4 _060097C8: .word 0x0000BF1D arm_func_start ReleaseWlTask ReleaseWlTask: ; 0x060097CC stmdb sp!, {r4, lr} ldr r0, _0600981C ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #380 ; 0x17c bl ReleaseIntr add r0, r4, #12 ldr r1, _0600981C ; =0x0380FFF4 ldr r1, [r1] ldr r1, [r1, #792] ; 0x318 sub r1, r1, #12 bl ReleaseHeapBuf add r0, r4, #12 ldr r1, _0600981C ; =0x0380FFF4 ldr r1, [r1] ldr r1, [r1, #992] ; 0x3e0 sub r1, r1, #12 bl ReleaseHeapBuf bl FUN_0600217C ldmia sp!, {r4, lr} bx lr _0600981C: .word 0x0380FFF4 arm_func_start TerminateWlTask TerminateWlTask: ; 0x06009820 stmfd sp!, {lr} sub sp, sp, #4 ldr r2, _060098BC ; =0x0380FFF4 ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #62] ; 0x3e orr r1, r1, #32768 ; 0x8000 strh r1, [r0, #62] ; 0x3e ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #0 beq _06009890 bl WStop ldr r2, _060098BC ; =0x0380FFF4 ldr r0, [r2] add r0, r0, #1024 ; 0x400 ldrh r1, [r0, #4] cmp r1, #0 beq _0600988C mov r1, #0 strh r1, [r0, #4] mov r1, #6 ldr r0, [r2] ldr r0, [r0, #1056] ; 0x420 strh r1, [r0, #4] bl IssueMlmeConfirm _0600988C: bl WShutdown _06009890: mov r0, #3 bl DeleteTask ldr r1, _060098C0 ; =0x0000FFFF cmp r0, r1 bne _06009890 mov r0, #3 mov r1, #23 bl AddTask add sp, sp, #4 ldmfd sp!, {lr} bx lr _060098BC: .word 0x0380FFF4 _060098C0: .word 0x0000FFFF arm_func_start SendFatalErrMsgTask SendFatalErrMsgTask: ; 0x060098C4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06009944 ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 ldrh r0, [r5, #176] ; 0xb0 cmp r0, #0 beq _06009938 add r0, r1, #392 ; 0x188 mov r1, #18 bl AllocateHeapBuf movs r4, r0 beq _06009938 ldr r0, _06009948 ; =0x00000186 strh r0, [r4, #12] mov r0, #1 strh r0, [r4, #14] mov r0, #16777216 ; 0x1000000 bl FUN_06009068 ldrh r1, [r5, #176] ; 0xb0 strh r1, [r4, #16] mov r1, #0 strh r1, [r5, #176] ; 0xb0 bl FUN_06009070 ldr r0, _06009944 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect _06009938: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009944: .word 0x0380FFF4 _06009948: .word 0x00000186 arm_func_start SetFatalErr SetFatalErr: ; 0x0600994C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 ldr r1, _0600998C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #244] ; 0xf4 orr r2, r2, r4 strh r2, [r1, #244] ; 0xf4 bl FUN_06009070 mov r0, #2 mov r1, #21 bl AddTask ldmia sp!, {r4, lr} bx lr _0600998C: .word 0x0380FFF4 arm_func_start WCheckTxBuf WCheckTxBuf: ; 0x06009990 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06009A8C ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 ldr r0, _06009A90 ; =0x0000042C add r4, r1, r0 add r0, r1, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 beq _060099CC cmp r0, #2 beq _06009A00 cmp r0, #3 b _06009A3C _060099CC: add r0, r4, #120 ; 0x78 bl FUN_06009B28 cmp r0, #0 beq _060099E4 bl FUN_06009AE4 bl MakeBeaconFrame _060099E4: add r0, r4, #40 ; 0x28 bl FUN_06009B28 cmp r0, #0 beq _06009A3C add r0, r4, #40 ; 0x28 bl FUN_06009A98 b _06009A3C _06009A00: add r0, r4, #100 ; 0x64 bl FUN_06009B28 add r0, r4, #40 ; 0x28 bl FUN_06009B28 cmp r0, #0 beq _06009A3C ldrh r0, [r4, #40] ; 0x28 cmp r0, #0 beq _06009A28 bl FUN_06009AE4 _06009A28: ldrh r0, [r5, #106] ; 0x6a bl MakePsPollFrame ldrh r0, [r5, #184] ; 0xb8 add r0, r0, #1 strh r0, [r5, #184] ; 0xb8 _06009A3C: add r0, r4, #20 bl FUN_06009B28 cmp r0, #0 beq _06009A54 add r0, r4, #20 bl FUN_06009A98 _06009A54: mov r0, r4 bl FUN_06009B28 cmp r0, #0 beq _06009A6C mov r0, r4 bl FUN_06009A98 _06009A6C: ldr r1, _06009A94 ; =0x04808004 ldrh r0, [r1] cmp r0, #0 moveq r0, #1 streqh r0, [r1] add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009A8C: .word 0x0380FFF4 _06009A90: .word 0x0000042C _06009A94: .word 0x04808004 arm_func_start FUN_06009A98 FUN_06009A98: ; 0x06009A98 stmdb sp!, {r4, lr} mov r4, r0 ldrh r0, [r4] cmp r0, #0 beq _06009AD8 bl FUN_06009AE4 ldr r0, [r4, #8] ldr r1, [r4, #12] sub r1, r1, #16 bl CopyTxFrmToMacBuf ldr r0, _06009AE0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #252] ; 0xfc add r1, r1, #1 strh r1, [r0, #252] ; 0xfc _06009AD8: ldmia sp!, {r4, lr} bx lr _06009AE0: .word 0x0380FFF4 arm_func_start FUN_06009AE4 FUN_06009AE4: ; 0x06009AE4 mov r1, #0 ldr r0, _06009B20 ; =0x04808004 strh r1, [r0] mov r2, #16 ldr r1, _06009B24 ; =0x04808214 b _06009B14 _06009AFC: ldrh r0, [r1] cmp r0, #0 bxeq lr cmp r0, #9 bxeq lr sub r2, r2, #1 _06009B14: cmp r2, #0 bne _06009AFC bx lr _06009B20: .word 0x04808004 _06009B24: .word 0x04808214 arm_func_start FUN_06009B28 FUN_06009B28: ; 0x06009B28 stmfd sp!, {lr} sub sp, sp, #4 ldr r3, [r0, #8] sub lr, r3, #4 ldrh r2, [r3, #-4] ldr r1, _06009BB0 ; =0x0000B6B8 cmp r2, r1 bne _06009B58 ldrh r2, [lr, #2] ldr r1, _06009BB4 ; =0x00001D46 cmp r2, r1 beq _06009BA0 _06009B58: mov ip, #1 strh ip, [r3, #10] ldr r3, _06009BB0 ; =0x0000B6B8 strh r3, [lr] ldr r2, _06009BB4 ; =0x00001D46 strh r2, [lr, #2] ldr r0, [r0, #8] add r1, r0, #12 strh r3, [r0, #12] strh r2, [r1, #2] ldr r0, _06009BB8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #250] ; 0xfa add r1, r1, #1 strh r1, [r0, #250] ; 0xfa mov r0, ip b _06009BA4 _06009BA0: mov r0, #0 _06009BA4: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06009BB0: .word 0x0000B6B8 _06009BB4: .word 0x00001D46 _06009BB8: .word 0x0380FFF4 arm_func_start calc_NextCRC calc_NextCRC: ; 0x06009BBC and r2, r1, #15 mov r3, r2, lsl #1 ldr r2, _06009C2C ; =_060193E4 ldrh ip, [r2, r3] ldr r3, _06009C30 ; =0x00000FFF and r1, r3, r1, asr #4 mov r1, r1, lsl #16 eor ip, ip, r1, lsr #16 and r1, r0, #15 mov r1, r1, lsl #1 ldrh r1, [r2, r1] eor r1, ip, r1 mov r1, r1, lsl #16 mov ip, r1, lsr #16 and r1, r3, ip, asr #4 mov r1, r1, lsl #16 and r3, ip, #15 mov r3, r3, lsl #1 ldrh r3, [r2, r3] eor r1, r3, r1, lsr #16 mov r0, r0, asr #4 and r0, r0, #15 mov r0, r0, lsl #1 ldrh r0, [r2, r0] eor r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bx lr _06009C2C: .word _060193E4 _06009C30: .word 0x00000FFF arm_func_start RND_rand RND_rand: ; 0x06009C34 ldr r0, _06009C60 ; =0x0380FFF4 ldr r0, [r0] add r3, r0, #1520 ; 0x5f0 ldrh r2, [r3, #2] ldrh r1, [r3, #4] add r0, r0, #1280 ; 0x500 ldrh r0, [r0, #240] ; 0xf0 mla r0, r1, r0, r2 strh r0, [r3, #4] ldrh r0, [r3, #4] bx lr _06009C60: .word 0x0380FFF4 arm_func_start RND_seed RND_seed: ; 0x06009C64 ldr r1, _06009C78 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #1280 ; 0x500 strh r0, [r1, #244] ; 0xf4 bx lr _06009C78: .word 0x0380FFF4 arm_func_start RND_init RND_init: ; 0x06009C7C ldr r2, _06009CA8 ; =0x0380FFF4 ldr r3, [r2] add ip, r3, #1520 ; 0x5f0 ldr r2, _06009CAC ; =0x0000FFF8 and r0, r0, r2 add r2, r0, #5 add r0, r3, #1280 ; 0x500 strh r2, [r0, #240] ; 0xf0 orr r0, r1, #1 strh r0, [ip, #2] bx lr _06009CA8: .word 0x0380FFF4 _06009CAC: .word 0x0000FFF8 arm_func_start WL_ReadByte WL_ReadByte: ; 0x06009CB0 ands r1, r0, #1 ldrneh r0, [r0, #-1] movne r0, r0, asr #8 andne r0, r0, #255 ; 0xff ldreqh r0, [r0] andeq r0, r0, #255 ; 0xff and r0, r0, #255 ; 0xff bx lr arm_func_start WL_WriteByte WL_WriteByte: ; 0x06009CD0 ands r2, r0, #1 ldrneh r2, [r0, #-1] andne r2, r2, #255 ; 0xff orrne r1, r2, r1, lsl #8 strneh r1, [r0, #-1] ldreqh r2, [r0] andeq r2, r2, #65280 ; 0xff00 andeq r1, r1, #255 ; 0xff orreq r1, r2, r1 streqh r1, [r0] bx lr arm_func_start DMA_WepWriteHeaderData DMA_WepWriteHeaderData: ; 0x06009CFC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r2 mov r4, r3 mov r2, #18 bl DMA_WriteCore cmp r4, #0 beq _06009D30 add r0, r6, #40 ; 0x28 mov r1, r5 add r2, r4, #1 mov r2, r2, lsr #1 bl DMA_WriteCore _06009D30: ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start DMA_WriteHeaderData DMA_WriteHeaderData: ; 0x06009D38 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r2 mov r4, r3 mov r2, #18 bl DMA_WriteCore cmp r4, #0 beq _06009D6C add r0, r6, #36 ; 0x24 mov r1, r5 add r2, r4, #1 mov r2, r2, lsr #1 bl DMA_WriteCore _06009D6C: ldmia sp!, {r4, r5, r6, lr} bx lr arm_func_start DMA_Write DMA_Write: ; 0x06009D74 add r2, r2, #1 mov r2, r2, lsr #1 ldr ip, _06009D84 ; =DMA_WriteCore bx ip _06009D84: .word DMA_WriteCore arm_func_start DMA_WriteCore DMA_WriteCore: ; 0x06009D88 mov r3, r0 mov r0, r1 mov r1, r3 mov r2, r2, lsl #1 ldr ip, _06009DA0 ; =MIi_CpuCopy16 bx ip _06009DA0: .word MIi_CpuCopy16 arm_func_start DMA_Read DMA_Read: ; 0x06009DA4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 add r0, r2, #1 bic r2, r0, #1 add r1, r6, r2 ldr r0, _06009E20 ; =0x04805F60 cmp r1, r0 subhi r5, r0, r6 subhi r4, r2, r5 movls r5, r2 movls r4, #0 mov r0, r6 mov r1, r7 mov r2, r5 bl FUN_06000EA0 cmp r4, #0 beq _06009E14 add r1, r6, r5 ldr r0, _06009E24 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #222] ; 0xde sub r0, r1, r0 add r1, r7, r5 mov r2, r4 bl FUN_06000EA0 _06009E14: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06009E20: .word 0x04805F60 _06009E24: .word 0x0380FFF4 arm_func_start ClearTimeOut ClearTimeOut: ; 0x06009E28 ldr r0, _06009E40 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009E44 ; =0x00000634 add r0, r1, r0 ldr ip, _06009E48 ; =OS_CancelAlarm bx ip _06009E40: .word 0x0380FFF4 _06009E44: .word 0x00000634 _06009E48: .word OS_CancelAlarm arm_func_start SetupUsTimeOut SetupUsTimeOut: ; 0x06009E4C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldr r0, _06009ED0 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009ED4 ; =0x00000634 add r0, r1, r0 bl FUN_060009D0 mov r3, #0 ldr r0, _06009ED8 ; =0x000082EA umull ip, r2, r5, r0 mla r2, r5, r3, r2 mla r2, r3, r0, r2 mov r1, r2, lsr #6 mov r0, ip, lsr #6 orr r0, r0, r2, lsl #26 mov r2, #1000 ; 0x3e8 bl FUN_06009EDC mov r3, r0 mov r2, r1 mov r0, #0 str r0, [sp] ldr r0, _06009ED0 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009ED4 ; =0x00000634 add r0, r1, r0 mov r1, r3 mov r3, r4 bl FUN_0600144C add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009ED0: .word 0x0380FFF4 _06009ED4: .word 0x00000634 _06009ED8: .word 0x000082EA arm_func_start FUN_06009EDC FUN_06009EDC: ; 0x06009EDC ldr pc, _06009EE0 ; =_ll_udiv _06009EE0: .word _ll_udiv arm_func_start SetupTimeOut SetupTimeOut: ; 0x06009EE4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldr r0, _06009F50 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009F54 ; =0x00000634 add r0, r1, r0 bl FUN_060009D0 mov r2, #0 str r2, [sp] ldr r0, _06009F50 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009F54 ; =0x00000634 add r0, r1, r0 ldr r1, _06009F58 ; =0x000082EA umull ip, r3, r5, r1 mla r3, r5, r2, r3 mla r3, r2, r1, r3 mov r2, r3, lsr #6 mov r1, ip, lsr #6 orr r1, r1, r3, lsl #26 mov r3, r4 bl FUN_0600144C add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06009F50: .word 0x0380FFF4 _06009F54: .word 0x00000634 _06009F58: .word 0x000082EA arm_func_start WIntervalTimer WIntervalTimer: ; 0x06009F5C stmdb sp!, {r4, lr} ldr r0, _06009FD8 ; =0x0380FFF4 ldr r4, [r0] ldr r0, [r4, #1004] ; 0x3ec add r0, r0, #1 str r0, [r4, #1004] ; 0x3ec mov r0, #1 mov r1, #10 bl AddTask mov r0, #2 mov r1, #18 bl AddTask mov r0, #1 mov r1, #17 bl AddTask add r0, r4, #256 ; 0x100 ldrh r0, [r0, #252] ; 0xfc cmp r0, #0 beq _06009FB4 mov r0, #2 mov r1, #19 bl AddTask _06009FB4: add r0, r4, #768 ; 0x300 ldrh r0, [r0, #244] ; 0xf4 cmp r0, #0 beq _06009FD0 mov r0, #2 mov r1, #21 bl AddTask _06009FD0: ldmia sp!, {r4, lr} bx lr _06009FD8: .word 0x0380FFF4 arm_func_start ClearPeriodicTimeOut ClearPeriodicTimeOut: ; 0x06009FDC ldr r0, _06009FF4 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06009FF8 ; =0x00000608 add r0, r1, r0 ldr ip, _06009FFC ; =OS_CancelAlarm bx ip _06009FF4: .word 0x0380FFF4 _06009FF8: .word 0x00000608 _06009FFC: .word OS_CancelAlarm arm_func_start SetupPeriodicTimeOut SetupPeriodicTimeOut: ; 0x0600A000 stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #16 mov r5, r0 mov r4, r1 ldr r0, _0600A084 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600A088 ; =0x00000608 add r0, r1, r0 bl FUN_060009D0 mov r1, #0 ldr r0, _0600A08C ; =0x000082EA umull r3, r2, r5, r0 mla r2, r5, r1, r2 mla r2, r1, r0, r2 mov r6, r3, lsr #6 orr r6, r6, r2, lsl #26 bl FUN_06000E98 mov r5, #0 adds ip, r6, r0 adc r2, r1, #0 str r4, [sp, #4] str r5, [sp, #8] mov r3, r6 str r5, [sp] ldr r0, _0600A084 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600A088 ; =0x00000608 add r0, r1, r0 mov r1, ip bl FUN_0600A090 add sp, sp, #16 ldmia sp!, {r4, r5, r6, lr} bx lr _0600A084: .word 0x0380FFF4 _0600A088: .word 0x00000608 _0600A08C: .word 0x000082EA arm_func_start FUN_0600A090 FUN_0600A090: ; 0x0600A090 ldr pc, _0600A094 ; =OS_SetPeriodicAlarm _0600A094: .word OS_SetPeriodicAlarm arm_func_start WWaitus WWaitus: ; 0x0600A098 ldr r1, _0600A0A4 ; =_0600A0C4 ldr ip, _0600A0A8 ; =WaitLoop_Waitus bx ip _0600A0A4: .word _0600A0C4 _0600A0A8: .word WaitLoop_Waitus arm_func_start WWait WWait: ; 0x0600A0AC mov r1, #1000 ; 0x3e8 mul r1, r0, r1 mov r0, r1 ldr ip, _0600A0C0 ; =WWaitus bx ip _0600A0C0: .word WWaitus _0600A0C4: mov r1, #0 arm_func_start FUN_0600A0C8 FUN_0600A0C8: ; 0x0600A0C8 str r1, [r0] bx lr arm_func_start InitializeAlarm InitializeAlarm: ; 0x0600A0D0 stmdb sp!, {r4, lr} ldr r0, _0600A120 ; =0x0380FFF4 ldr r4, [r0] bl FUN_0600A12C cmp r0, #0 addeq r0, r4, #768 ; 0x300 ldreqh r1, [r0, #62] ; 0x3e orreq r1, r1, #64 ; 0x40 streqh r1, [r0, #62] ; 0x3e beq _0600A118 ldr r0, _0600A124 ; =0x00000608 add r0, r4, r0 bl FUN_06000A04 ldr r0, _0600A128 ; =0x00000634 add r0, r4, r0 bl FUN_06000A04 add r0, r4, #1632 ; 0x660 bl FUN_06000A04 _0600A118: ldmia sp!, {r4, lr} bx lr _0600A120: .word 0x0380FFF4 _0600A124: .word 0x00000608 _0600A128: .word 0x00000634 arm_func_start FUN_0600A12C FUN_0600A12C: ; 0x0600A12C ldr pc, _0600A130 ; =OS_IsAlarmAvailable _0600A130: .word OS_IsAlarmAvailable arm_func_start InitRF InitRF: ; 0x0600A134 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #12 ldr r0, _0600A2B4 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600A2B8 ; =0x000005F8 add r7, r1, r0 mov r8, #0 str r8, [sp, #4] mov r6, #2 add r5, sp, #4 ldr r4, _0600A2BC ; =_06019404 _0600A160: mov r0, r8, lsl #1 add r0, r0, #68 ; 0x44 mov r1, r6 mov r2, r5 bl FLASH_Read ldr r1, [sp, #4] mov r0, r8, lsl #1 ldrh r0, [r4, r0] add r0, r0, #75497472 ; 0x4800000 add r0, r0, #32768 ; 0x8000 strh r1, [r0] add r8, r8, #1 cmp r8, #16 bcc _0600A160 ldrh r0, [r7, #2] mov r1, r0, lsr #7 mov r0, r1, lsl #8 str r0, [sp] ldrh r0, [r7, #2] and r0, r0, #127 ; 0x7f orr r1, r0, r1, lsl #8 str r1, [sp] ldr r0, _0600A2C0 ; =0x04808184 strh r1, [r0] mov r5, #206 ; 0xce ldrh r0, [r7, #2] and r0, r0, #127 ; 0x7f add r0, r0, #7 mov r1, #8 bl FUN_06001840 mov r8, r0 ldrh r4, [r7, #4] ldrh r0, [r7] cmp r0, #3 bne _0600A250 add r0, r4, #206 ; 0xce mov r1, #1 add r2, r7, #8 bl FLASH_Read mov r9, #0 mov r8, r9 mov r7, #1 add r6, sp, #0 b _0600A244 _0600A210: str r8, [sp] mov r0, r5 mov r1, r7 mov r2, r6 bl FLASH_Read ldr r1, [sp] mov r0, r9, lsl #8 add r0, r0, #327680 ; 0x50000 orr r0, r1, r0 str r0, [sp] bl RF_Write add r9, r9, #1 add r5, r5, #1 _0600A244: cmp r9, r4 bcc _0600A210 b _0600A2A8 _0600A250: mov r0, #0 str r0, [sp] add r6, sp, #0 b _0600A2A0 _0600A260: mov r0, r5 mov r1, r8 mov r2, r6 bl FLASH_Read ldr r0, [sp] bl RF_Write ldrh r0, [r7] cmp r0, #2 bne _0600A298 ldr r1, [sp] mov r0, r1, lsr #18 cmp r0, #9 biceq r0, r1, #31744 ; 0x7c00 streq r0, [r7, #12] _0600A298: sub r4, r4, #1 add r5, r5, r8 _0600A2A0: cmp r4, #0 bne _0600A260 _0600A2A8: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _0600A2B4: .word 0x0380FFF4 _0600A2B8: .word 0x000005F8 _0600A2BC: .word _06019404 _0600A2C0: .word 0x04808184 arm_func_start InitBaseBand InitBaseBand: ; 0x0600A2C4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r1, #256 ; 0x100 ldr r0, _0600A330 ; =0x04808160 strh r1, [r0] mov r6, #100 ; 0x64 mov r7, #0 str r7, [sp] mov r5, #1 add r4, sp, #0 _0600A2EC: mov r0, r6 mov r1, r5 mov r2, r4 bl FLASH_Read mov r0, r7 ldr r1, [sp] bl BBP_Write add r6, r6, #1 add r7, r7, #1 cmp r7, #105 ; 0x69 bcc _0600A2EC mov r0, #90 ; 0x5a mov r1, #2 bl BBP_Write add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600A330: .word 0x04808160 arm_func_start InitMac InitMac: ; 0x0600A334 mov ip, #0 ldr r2, _0600A368 ; =_06019474 _0600A33C: mov r3, ip, lsl #2 add r0, r2, ip, lsl #2 ldrh r1, [r0, #2] ldrh r0, [r2, r3] add r0, r0, #75497472 ; 0x4800000 add r0, r0, #32768 ; 0x8000 strh r1, [r0] add ip, ip, #1 cmp ip, #25 bcc _0600A33C bx lr _0600A368: .word _06019474 arm_func_start WConfigDevice WConfigDevice: ; 0x0600A36C stmdb sp!, {r4, lr} ldr r0, _0600A3D8 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600A3DC ; =0x000005F8 add r4, r1, r0 mov r0, #0 mov r1, r4 mov r2, #16 bl FUN_0600055C mov r0, #64 ; 0x40 mov r1, #1 mov r2, r4 bl FLASH_Read mov r0, #65 ; 0x41 mov r1, #1 add r2, r4, #2 bl FLASH_Read mov r0, #66 ; 0x42 mov r1, #1 add r2, r4, #4 bl FLASH_Read mov r0, #67 ; 0x43 mov r1, #1 add r2, r4, #6 bl FLASH_Read ldmia sp!, {r4, lr} bx lr _0600A3D8: .word 0x0380FFF4 _0600A3DC: .word 0x000005F8 arm_func_start CalcBbpCRC CalcBbpCRC: ; 0x0600A3E0 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #8 mov r8, #100 ; 0x64 mov r6, #0 str r6, [sp] mov r7, r6 mov r5, #1 add r4, sp, #0 _0600A400: mov r0, r8 mov r1, r5 mov r2, r4 bl FLASH_Read cmp r7, #1 ldreq r0, [sp] andeq r0, r0, #128 ; 0x80 streq r0, [sp] ldr r0, [sp] and r0, r0, #255 ; 0xff mov r1, r6 bl calc_NextCRC mov r6, r0 add r8, r8, #1 add r7, r7, #1 cmp r7, #105 ; 0x69 bcc _0600A400 add sp, sp, #8 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr arm_func_start RF_Write RF_Write: ; 0x0600A450 ldr r1, _0600A46C ; =0x0480817E strh r0, [r1] mov r1, r0, lsr #16 ldr r0, _0600A470 ; =0x0480817C strh r1, [r0] ldr ip, _0600A474 ; =_0600F6B0 bx ip _0600A46C: .word 0x0480817E _0600A470: .word 0x0480817C _0600A474: .word _0600F6B0 arm_func_start BBP_Write BBP_Write: ; 0x0600A478 stmfd sp!, {lr} sub sp, sp, #4 ldr r2, _0600A4B0 ; =0x0480815A strh r1, [r2] orr r1, r0, #20480 ; 0x5000 ldr r0, _0600A4B4 ; =0x04808158 strh r1, [r0] bl WaitLoop_BbpAccess cmp r0, #0 mvnne r0, #0 moveq r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600A4B0: .word 0x0480815A _0600A4B4: .word 0x04808158 arm_func_start BBP_Read BBP_Read: ; 0x0600A4B8 stmfd sp!, {lr} sub sp, sp, #4 orr r1, r0, #24576 ; 0x6000 ldr r0, _0600A4E4 ; =0x04808158 strh r1, [r0] bl WaitLoop_BbpAccess ldr r0, _0600A4E8 ; =0x0480815C ldrh r0, [r0] add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600A4E4: .word 0x04808158 _0600A4E8: .word 0x0480815C arm_func_start WStop WStop: ; 0x0600A4EC stmdb sp!, {r4, lr} ldr r0, _0600A57C ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 bl ClearPeriodicTimeOut bl ClearTimeOut mov r0, #32 bl WSetStaState mov r1, #0 strh r1, [r4, #164] ; 0xa4 strh r1, [r4, #18] ldr r0, _0600A580 ; =0x04808012 strh r1, [r0] ldr r0, _0600A584 ; =0x04808004 strh r1, [r0] ldr r0, _0600A588 ; =0x048080EA strh r1, [r0] ldr r0, _0600A58C ; =0x048080E8 strh r1, [r0] ldr r0, _0600A590 ; =0x04808008 strh r1, [r0] ldr r0, _0600A594 ; =0x0480800A strh r1, [r0] ldrh r0, [r4, #12] cmp r0, #1 bne _0600A558 bl StopBeaconFrame _0600A558: ldr r1, _0600A598 ; =0x0000FFFF ldr r0, _0600A59C ; =0x048080AC strh r1, [r0] ldr r0, _0600A5A0 ; =0x048080B4 strh r1, [r0] bl DeleteAllTxFrames bl ReleaseAllWlHeapBuf ldmia sp!, {r4, lr} bx lr _0600A57C: .word 0x0380FFF4 _0600A580: .word 0x04808012 _0600A584: .word 0x04808004 _0600A588: .word 0x048080EA _0600A58C: .word 0x048080E8 _0600A590: .word 0x04808008 _0600A594: .word 0x0480800A _0600A598: .word 0x0000FFFF _0600A59C: .word 0x048080AC _0600A5A0: .word 0x048080B4 arm_func_start WStart WStart: ; 0x0600A5A4 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #12 ldr r0, _0600A9B8 ; =0x0380FFF4 ldr r0, [r0] add r7, r0, #836 ; 0x344 add r4, r0, #796 ; 0x31c bl WStop ldr r2, _0600A9BC ; =0x04808044 ldrh r1, [r2] ldrh r0, [r2] add r0, r1, r0, lsl #8 ldrh r1, [r2] bl RND_init mov r0, #1 strh r0, [r7, #124] ; 0x7c ldrh r0, [r4, #30] mov r0, r0, lsl #29 mov r0, r0, lsr #31 cmp r0, #1 ldreqh r0, [r7, #124] ; 0x7c orreq r0, r0, #32 streqh r0, [r7, #124] ; 0x7c ldrh r0, [r4, #24] cmp r0, #0 ldrneh r0, [r7, #124] ; 0x7c orrne r0, r0, #16 strneh r0, [r7, #124] ; 0x7c mov r2, #0 strh r2, [r7, #18] mov r1, #32768 ; 0x8000 ldr r0, _0600A9C0 ; =0x04808032 strh r1, [r0] ldr r1, _0600A9C4 ; =0x0000FFFF ldr r0, _0600A9C8 ; =0x04808134 strh r1, [r0] ldr r0, _0600A9CC ; =0x0480802A strh r2, [r0] ldr r0, _0600A9D0 ; =0x04808028 strh r2, [r0] mov r1, #15 ldr r0, _0600A9D4 ; =0x04808038 strh r1, [r0] bl InitCAM bl InitApList bl InitTxCtrl bl InitRxCtrl mov r1, #32768 ; 0x8000 ldr r0, _0600A9D8 ; =0x04808030 strh r1, [r0] ldr r1, _0600A9C4 ; =0x0000FFFF ldr r0, _0600A9DC ; =0x04808010 strh r1, [r0] ldr r1, _0600A9E0 ; =0x00001FFF ldr r0, _0600A9E4 ; =0x048081AE strh r1, [r0] ldr r0, _0600A9B8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 movne r1, #1024 ; 0x400 ldrne r0, _0600A9E8 ; =0x048081AA strneh r1, [r0] moveq r1, #0 ldreq r0, _0600A9E8 ; =0x048081AA streqh r1, [r0] mov r5, #0 ldr r0, _0600A9EC ; =0x04808008 strh r5, [r0] ldr r3, _0600A9F0 ; =0x0480800A strh r5, [r3] ldrh r1, [r7, #12] cmp r1, #4 addls pc, pc, r1, lsl #2 b _0600A97C b _0600A6E4 b _0600A728 b _0600A84C b _0600A8E0 b _0600A958 _0600A6E4: mov r2, #63 ; 0x3f ldr r1, _0600A9F4 ; =0x04808012 strh r2, [r1] ldr r2, _0600A9C4 ; =0x0000FFFF ldr r1, _0600A9F8 ; =0x048080D0 strh r2, [r1] mov r2, #8 ldr r1, _0600A9FC ; =0x048080E0 strh r2, [r1] strh r5, [r0] strh r5, [r3] ldr r0, _0600AA00 ; =0x048080E8 strh r5, [r0] mov r1, #1 ldr r0, _0600AA04 ; =0x04808004 strh r1, [r0] b _0600A97C _0600A728: ldr r2, _0600AA08 ; =0x0000703F ldr r1, _0600A9F4 ; =0x04808012 strh r2, [r1] ldr r2, _0600A9E0 ; =0x00001FFF ldr r1, _0600A9E4 ; =0x048081AE strh r2, [r1] ldr r2, _0600AA0C ; =0x00000301 ldr r1, _0600A9F8 ; =0x048080D0 strh r2, [r1] mov r2, #13 ldr r1, _0600A9FC ; =0x048080E0 strh r2, [r1] mov r1, #57344 ; 0xe000 strh r1, [r0] mov r1, #1 ldr r0, _0600AA04 ; =0x04808004 strh r1, [r0] add r6, sp, #0 ldr r0, _0600AA10 ; =0x048080F8 ldrh r0, [r0] strh r0, [r6] ldr r0, _0600AA14 ; =0x048080FA ldrh r0, [r0] strh r0, [r6, #2] ldr r0, _0600AA18 ; =0x048080FC ldrh r0, [r0] strh r0, [r6, #4] ldr r0, _0600AA1C ; =0x048080FE ldrh r0, [r0] strh r0, [r6, #6] ldrh r0, [r7, #110] ; 0x6e mov r4, r0, lsl #10 ldr r0, [sp] ldr r1, [sp, #4] mov r2, r4 mov r3, r5 bl FUN_06009EDC str r0, [sp] str r1, [sp, #4] mov r2, #1 adds ip, r0, r2 adc r3, r1, #0 str ip, [sp] str r3, [sp, #4] umull r1, r0, ip, r4 mla r0, ip, r5, r0 mla r0, r3, r4, r0 str r1, [sp] str r0, [sp, #4] ldrh r1, [r6, #6] ldr r0, _0600AA20 ; =0x048080F6 strh r1, [r0] ldrh r1, [r6, #4] ldr r0, _0600AA24 ; =0x048080F4 strh r1, [r0] ldrh r1, [r6, #2] ldr r0, _0600AA28 ; =0x048080F2 strh r1, [r0] ldrh r0, [r6] orr r1, r0, #1 ldr r0, _0600AA2C ; =0x048080F0 strh r1, [r0] ldr r0, _0600AA00 ; =0x048080E8 strh r2, [r0] ldr r0, _0600AA30 ; =0x048080EA strh r2, [r0] mov r0, #64 ; 0x40 bl WSetStaState bl StartBeaconFrame mov r1, #2 ldr r0, _0600AA34 ; =0x048080AE strh r1, [r0] b _0600A97C _0600A84C: ldr r0, _0600AA38 ; =0x0000E0BF ldr r1, _0600A9F4 ; =0x04808012 strh r0, [r1] ldr r0, _0600A9B8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #32 beq _0600A88C ldrh r0, [r1] orr r0, r0, #64 ; 0x40 strh r0, [r1] ldr r1, _0600A9E8 ; =0x048081AA ldrh r0, [r1] orr r0, r0, #104 ; 0x68 strh r0, [r1] _0600A88C: ldrh r0, [r7, #100] ; 0x64 ands r0, r0, #1 ldrne r1, _0600AA3C ; =0x00000581 ldrne r0, _0600A9F8 ; =0x048080D0 strneh r1, [r0] ldreq r1, _0600AA40 ; =0x00000181 ldreq r0, _0600A9F8 ; =0x048080D0 streqh r1, [r0] mov r1, #11 ldr r0, _0600A9FC ; =0x048080E0 strh r1, [r0] mov r1, #1 ldr r0, _0600AA04 ; =0x04808004 strh r1, [r0] ldr r0, _0600AA00 ; =0x048080E8 strh r1, [r0] ldr r0, _0600AA30 ; =0x048080EA strh r1, [r0] mov r0, #32 bl WSetStaState b _0600A97C _0600A8E0: ldr r1, _0600A9C4 ; =0x0000FFFF ldr r0, _0600A9DC ; =0x04808010 strh r1, [r0] ldr r1, _0600AA44 ; =0x0000C03F ldr r0, _0600A9F4 ; =0x04808012 strh r1, [r0] ldrh r0, [r7, #100] ; 0x64 ands r0, r0, #1 ldrne r1, _0600AA48 ; =0x00000401 ldrne r0, _0600A9F8 ; =0x048080D0 strneh r1, [r0] moveq r1, #1 ldreq r0, _0600A9F8 ; =0x048080D0 streqh r1, [r0] mov r1, #11 ldr r0, _0600A9FC ; =0x048080E0 strh r1, [r0] mov r1, #1 ldr r0, _0600AA04 ; =0x04808004 strh r1, [r0] ldr r0, _0600AA00 ; =0x048080E8 strh r1, [r0] ldr r0, _0600AA30 ; =0x048080EA strh r1, [r0] mov r1, #0 ldr r0, _0600AA4C ; =0x04808048 strh r1, [r0] mov r0, #32 bl WSetStaState b _0600A97C _0600A958: ldr r0, _0600A9F4 ; =0x04808012 strh r5, [r0] ldr r0, _0600A9E4 ; =0x048081AE strh r5, [r0] mov r1, #1 ldr r0, _0600AA04 ; =0x04808004 strh r1, [r0] mov r0, #32 bl WSetStaState _0600A97C: mov r1, #0 ldr r0, _0600AA4C ; =0x04808048 strh r1, [r0] bl WDisableTmpttPowerSave mov r0, #2 ldr r1, _0600AA34 ; =0x048080AE strh r0, [r1] ldrh r1, [r7, #14] cmp r1, #1 bne _0600A9A8 bl WSetPowerState _0600A9A8: bl WaitLoop_Rxpe add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600A9B8: .word 0x0380FFF4 _0600A9BC: .word 0x04808044 _0600A9C0: .word 0x04808032 _0600A9C4: .word 0x0000FFFF _0600A9C8: .word 0x04808134 _0600A9CC: .word 0x0480802A _0600A9D0: .word 0x04808028 _0600A9D4: .word 0x04808038 _0600A9D8: .word 0x04808030 _0600A9DC: .word 0x04808010 _0600A9E0: .word 0x00001FFF _0600A9E4: .word 0x048081AE _0600A9E8: .word 0x048081AA _0600A9EC: .word 0x04808008 _0600A9F0: .word 0x0480800A _0600A9F4: .word 0x04808012 _0600A9F8: .word 0x048080D0 _0600A9FC: .word 0x048080E0 _0600AA00: .word 0x048080E8 _0600AA04: .word 0x04808004 _0600AA08: .word 0x0000703F _0600AA0C: .word 0x00000301 _0600AA10: .word 0x048080F8 _0600AA14: .word 0x048080FA _0600AA18: .word 0x048080FC _0600AA1C: .word 0x048080FE _0600AA20: .word 0x048080F6 _0600AA24: .word 0x048080F4 _0600AA28: .word 0x048080F2 _0600AA2C: .word 0x048080F0 _0600AA30: .word 0x048080EA _0600AA34: .word 0x048080AE _0600AA38: .word 0x0000E0BF _0600AA3C: .word 0x00000581 _0600AA40: .word 0x00000181 _0600AA44: .word 0x0000C03F _0600AA48: .word 0x00000401 _0600AA4C: .word 0x04808048 arm_func_start WCalcManRate WCalcManRate: ; 0x0600AA50 ldr r0, _0600AA98 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #48] ; 0x30 cmp r1, #0 beq _0600AA74 cmp r1, #1 beq _0600AA88 b _0600AA90 _0600AA74: ldrh r0, [r0, #164] ; 0xa4 ands r0, r0, #1 beq _0600AA90 mov r0, #10 bx lr _0600AA88: mov r0, #10 bx lr _0600AA90: mov r0, #20 bx lr _0600AA98: .word 0x0380FFF4 arm_func_start WElement2RateSet WElement2RateSet: ; 0x0600AA9C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} mov r4, r0 mov sl, r1 mov r0, #0 strh r0, [sl] strh r0, [sl, #2] add r0, r4, #1 bl WL_ReadByte mov r8, r0 mov r9, #0 ldr r6, _0600AB54 ; =RateElement2Bit add r7, r4, #2 add r4, sl, #2 mov r5, #1 b _0600AB44 _0600AAD8: add r0, r7, r9 bl WL_ReadByte and r1, r0, #127 ; 0x7f sub r1, r1, #1 cmp r1, #120 ; 0x78 bcs _0600AB24 mov r1, r1, lsl #1 ldrh r3, [r6, r1] cmp r3, #255 ; 0xff beq _0600AB24 mov r2, r5, lsl r3 ldrh r1, [r4] orr r1, r1, r5, lsl r3 strh r1, [r4] ands r0, r0, #128 ; 0x80 ldrneh r0, [sl] orrne r0, r0, r2 strneh r0, [sl] b _0600AB40 _0600AB24: ldrh r1, [r4] orr r1, r1, #32768 ; 0x8000 strh r1, [r4] ands r0, r0, #128 ; 0x80 ldrneh r0, [sl] orrne r0, r0, #32768 ; 0x8000 strneh r0, [sl] _0600AB40: add r9, r9, #1 _0600AB44: cmp r9, r8 bcc _0600AAD8 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _0600AB54: .word RateElement2Bit arm_func_start CheckEnableChannel CheckEnableChannel: ; 0x0600AB58 mov r2, #1 ldr r1, _0600AB74 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #44] ; 0x2c and r0, r1, r2, lsl r0 bx lr _0600AB74: .word 0x0380FFF4 arm_func_start MatchMacAdrs MatchMacAdrs: ; 0x0600AB78 ldrh r3, [r0, #4] ldrh r2, [r1, #4] cmp r3, r2 bne _0600ABAC ldrh r3, [r0, #2] ldrh r2, [r1, #2] cmp r3, r2 bne _0600ABAC ldrh r2, [r0] ldrh r0, [r1] cmp r2, r0 moveq r0, #1 bxeq lr _0600ABAC: mov r0, #0 bx lr arm_func_start WCheckSSID WCheckSSID: ; 0x0600ABB4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} mov r9, r0 mov r8, r1 ldr r0, _0600AC80 ; =0x0380FFF4 ldr r0, [r0] add r2, r0, #836 ; 0x344 cmp r9, #32 movhi r0, #0 bhi _0600AC78 ldrh r1, [r2, #30] cmp r1, #0 moveq r0, #1 beq _0600AC78 add r0, r0, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #19 bne _0600AC0C cmp r9, r1 movcc r0, #0 bcc _0600AC78 mov r9, r1 b _0600AC18 _0600AC0C: cmp r9, r1 movne r0, #0 bne _0600AC78 _0600AC18: add r7, r2, #32 add r6, r2, #64 ; 0x40 mov r5, #0 b _0600AC6C _0600AC28: mov r0, r6 bl WL_ReadByte mov r4, r0 add r6, r6, #1 mov r0, r8 bl WL_ReadByte mov sl, r0 add r8, r8, #1 mov r0, r7 bl WL_ReadByte add r7, r7, #1 orr r1, sl, r4 orr r0, r0, r4 cmp r1, r0 movne r0, #0 bne _0600AC78 add r5, r5, #1 _0600AC6C: cmp r5, r9 bcc _0600AC28 mov r0, #1 _0600AC78: ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _0600AC80: .word 0x0380FFF4 arm_func_start WUpdateCounter WUpdateCounter: ; 0x0600AC84 ldr r0, _0600AE7C ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600AE80 ; =0x0000053C add r1, r1, r0 ldr r0, _0600AE84 ; =0x048081B0 ldrh r2, [r0] ldr r3, [r1, #80] ; 0x50 and r2, r2, #255 ; 0xff add r2, r3, r2 str r2, [r1, #80] ; 0x50 ldrh ip, [r0, #2] ldr r2, [r1, #76] ; 0x4c add r2, r2, ip, asr #8 str r2, [r1, #76] ; 0x4c ldr r3, [r1, #92] ; 0x5c and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #92] ; 0x5c ldrh ip, [r0, #4] ldr r2, [r1, #88] ; 0x58 add r2, r2, ip, asr #8 str r2, [r1, #88] ; 0x58 ldr r3, [r1, #84] ; 0x54 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #84] ; 0x54 ldrh ip, [r0, #6] ldr r2, [r1, #96] ; 0x60 add r2, r2, ip, asr #8 str r2, [r1, #96] ; 0x60 ldr r3, [r1, #56] ; 0x38 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #56] ; 0x38 ldrh r2, [r0, #8] ldr r3, [r1, #72] ; 0x48 and r2, r2, #255 ; 0xff add r2, r3, r2 str r2, [r1, #72] ; 0x48 ldrh r2, [r0, #10] ldr r3, [r1, #32] and r2, r2, #255 ; 0xff add r2, r3, r2 str r2, [r1, #32] ldrh ip, [r0, #12] ldr r2, [r1, #48] ; 0x30 add r2, r2, ip, asr #8 str r2, [r1, #48] ; 0x30 ldr r3, [r1, #68] ; 0x44 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #68] ; 0x44 ldrh ip, [r0, #14] ldr r3, [r1, #60] ; 0x3c and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #60] ; 0x3c ldr r2, [r1, #64] ; 0x40 add r2, r2, ip, asr #8 str r2, [r1, #64] ; 0x40 ldrh r2, [r0, #16] ldr r3, [r1, #12] and r2, r2, #255 ; 0xff add r2, r3, r2 str r2, [r1, #12] ldrh r3, [r0, #32] ldr r2, [r1, #120] ; 0x78 add r2, r2, r3, asr #8 str r2, [r1, #120] ; 0x78 ldrh ip, [r0, #34] ; 0x22 ldr r3, [r1, #124] ; 0x7c and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #124] ; 0x7c ldr r2, [r1, #128] ; 0x80 add r2, r2, ip, asr #8 str r2, [r1, #128] ; 0x80 ldrh ip, [r0, #36] ; 0x24 ldr r3, [r1, #132] ; 0x84 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #132] ; 0x84 ldr r2, [r1, #136] ; 0x88 add r2, r2, ip, asr #8 str r2, [r1, #136] ; 0x88 ldrh ip, [r0, #38] ; 0x26 ldr r3, [r1, #140] ; 0x8c and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #140] ; 0x8c ldr r2, [r1, #144] ; 0x90 add r2, r2, ip, asr #8 str r2, [r1, #144] ; 0x90 ldrh ip, [r0, #40] ; 0x28 ldr r3, [r1, #148] ; 0x94 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #148] ; 0x94 ldr r2, [r1, #152] ; 0x98 add r2, r2, ip, asr #8 str r2, [r1, #152] ; 0x98 ldrh ip, [r0, #42] ; 0x2a ldr r3, [r1, #156] ; 0x9c and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #156] ; 0x9c ldr r2, [r1, #160] ; 0xa0 add r2, r2, ip, asr #8 str r2, [r1, #160] ; 0xa0 ldrh ip, [r0, #44] ; 0x2c ldr r3, [r1, #164] ; 0xa4 and r2, ip, #255 ; 0xff add r2, r3, r2 str r2, [r1, #164] ; 0xa4 ldr r2, [r1, #168] ; 0xa8 add r2, r2, ip, asr #8 str r2, [r1, #168] ; 0xa8 ldrh r3, [r0, #46] ; 0x2e ldr r2, [r1, #172] ; 0xac and r0, r3, #255 ; 0xff add r0, r2, r0 str r0, [r1, #172] ; 0xac ldr r0, [r1, #176] ; 0xb0 add r0, r0, r3, asr #8 str r0, [r1, #176] ; 0xb0 bx lr _0600AE7C: .word 0x0380FFF4 _0600AE80: .word 0x0000053C _0600AE84: .word 0x048081B0 arm_func_start WInitCounter WInitCounter: ; 0x0600AE88 stmfd sp!, {lr} sub sp, sp, #4 bl WUpdateCounter mov r0, #0 ldr r1, _0600AEBC ; =0x0380FFF4 ldr r2, [r1] ldr r1, _0600AEC0 ; =0x0000053C add r1, r2, r1 mov r2, #180 ; 0xb4 bl FUN_0600AEC4 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600AEBC: .word 0x0380FFF4 _0600AEC0: .word 0x0000053C arm_func_start FUN_0600AEC4 FUN_0600AEC4: ; 0x0600AEC4 ldr pc, _0600AEC8 ; =MIi_CpuClear32 _0600AEC8: .word MIi_CpuClear32 arm_func_start WSetMacAdrs3 WSetMacAdrs3: ; 0x0600AECC ldrh ip, [r1] strh ip, [r0] ldrh ip, [r1, #2] strh ip, [r0, #2] ldrh r1, [r1, #4] strh r1, [r0, #4] ldrh r1, [r2] strh r1, [r0, #6] ldrh r1, [r2, #2] strh r1, [r0, #8] ldrh r1, [r2, #4] strh r1, [r0, #10] ldrh r1, [r3] strh r1, [r0, #12] ldrh r1, [r3, #2] strh r1, [r0, #14] ldrh r1, [r3, #4] strh r1, [r0, #16] bx lr _0600AF18: ldrh r3, [r1] strh r3, [r0] ldrh r3, [r1, #2] strh r3, [r0, #2] ldrh r1, [r1, #4] strh r1, [r0, #4] ldrh r1, [r2] strh r1, [r0, #6] ldrh r1, [r2, #2] strh r1, [r0, #8] ldrh r1, [r2, #4] strh r1, [r0, #10] bx lr arm_func_start WSetMacAdrs1 WSetMacAdrs1: ; 0x0600AF4C ldrh r2, [r1] strh r2, [r0] ldrh r2, [r1, #2] strh r2, [r0, #2] ldrh r1, [r1, #4] strh r1, [r0, #4] bx lr arm_func_start WSetStaState WSetStaState: ; 0x0600AF68 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _0600AFFC ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 ldrh r0, [r4, #8] cmp r0, r5 beq _0600AFF0 cmp r0, #64 ; 0x40 bne _0600AF98 bl ClearTimeOut _0600AF98: cmp r5, #0 beq _0600AFB4 cmp r5, #16 beq _0600AFBC cmp r5, #64 ; 0x40 beq _0600AFD0 b _0600AFEC _0600AFB4: bl WShutdown b _0600AFEC _0600AFBC: mov r0, #0 bl WSetForcePowerState bl WStop bl WWakeUp b _0600AFEC _0600AFD0: ldrh r0, [r4, #12] cmp r0, #2 bne _0600AFE0 bl WEnableTmpttPowerSave _0600AFE0: mov r0, #100 ; 0x64 ldr r1, _0600B000 ; =WIntervalTimer bl SetupPeriodicTimeOut _0600AFEC: strh r5, [r4, #8] _0600AFF0: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600AFFC: .word 0x0380FFF4 _0600B000: .word WIntervalTimer arm_func_start WClearKSID WClearKSID: ; 0x0600B004 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600B02C ; =0x04808094 ldrh r0, [r0] ands r0, r0, #32768 ; 0x8000 bne _0600B020 bl WaitLoop_ClrAid _0600B020: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600B02C: .word 0x04808094 arm_func_start WSetKSID WSetKSID: ; 0x0600B030 ldr r0, _0600B04C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #174] ; 0xae ldr r0, _0600B050 ; =0x04808028 strh r1, [r0] bx lr _0600B04C: .word 0x0380FFF4 _0600B050: .word 0x04808028 arm_func_start WClearAids WClearAids: ; 0x0600B054 stmdb sp!, {r4, lr} ldr r0, _0600B0A8 ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 mov r0, #0 strh r0, [r4, #106] ; 0x6a bl WaitLoop_ClrAid mov r1, #0 ldr r0, _0600B0AC ; =0x0480802A strh r1, [r0] ldrh r0, [r4, #136] ; 0x88 cmp r0, #0 beq _0600B0A0 bl DeleteTxFrames ldrh r0, [r4, #136] ; 0x88 mov r1, #32 bl CAM_SetStaState mov r0, #0 strh r0, [r4, #136] ; 0x88 _0600B0A0: ldmia sp!, {r4, lr} bx lr _0600B0A8: .word 0x0380FFF4 _0600B0AC: .word 0x0480802A arm_func_start WSetAids WSetAids: ; 0x0600B0B0 ldr r2, _0600B0E8 ; =0x0380FFF4 ldr r1, [r2] add r1, r1, #768 ; 0x300 strh r0, [r1, #174] ; 0xae ldr r1, _0600B0EC ; =0x0480802A strh r0, [r1] ldr r1, [r2] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #58] ; 0x3a mov r1, r1, lsl #24 movs r1, r1, lsr #31 ldrne r1, _0600B0F0 ; =0x04808028 strneh r0, [r1] bx lr _0600B0E8: .word 0x0380FFF4 _0600B0EC: .word 0x0480802A _0600B0F0: .word 0x04808028 arm_func_start WSetGameInfo WSetGameInfo: ; 0x0600B0F4 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 ldr r0, _0600B19C ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 cmp r6, #128 ; 0x80 movhi r0, #4 bhi _0600B194 cmp r6, #0 beq _0600B184 ldrh r0, [r4, #162] ; 0xa2 ands r0, r0, #1 beq _0600B174 ldr r8, [r4, #156] ; 0x9c mov r0, r8 mov r1, #255 ; 0xff bl WL_WriteByte add r8, r8, #1 mov r7, #0 b _0600B168 _0600B148: mov r0, r5 bl WL_ReadByte mov r1, r0 mov r0, r8 bl WL_WriteByte add r8, r8, #1 add r5, r5, #1 add r7, r7, #1 _0600B168: cmp r7, r6 bcc _0600B148 b _0600B184 _0600B174: mov r0, r5 ldr r1, [r4, #156] ; 0x9c add r2, r6, #1 bl FUN_06000EA0 _0600B184: strh r6, [r4, #160] ; 0xa0 mov r0, #1 strh r0, [r4, #164] ; 0xa4 mov r0, #0 _0600B194: ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _0600B19C: .word 0x0380FFF4 arm_func_start WInitGameInfo WInitGameInfo: ; 0x0600B1A0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _0600B1E8 ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 cmp r5, #128 ; 0x80 movhi r0, #4 bhi _0600B1DC mov r0, r1 ldr r1, [r4, #156] ; 0x9c add r2, r5, #1 bl FUN_06000EA0 strh r5, [r4, #160] ; 0xa0 mov r0, #0 _0600B1DC: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600B1E8: .word 0x0380FFF4 arm_func_start WEnableTmpttPowerSave WEnableTmpttPowerSave: ; 0x0600B1EC mov r1, #0 ldr r0, _0600B214 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 strh r1, [r0, #234] ; 0xea ldr r1, _0600B218 ; =0x04808038 ldrh r0, [r1] orr r0, r0, #2 strh r0, [r1] bx lr _0600B214: .word 0x0380FFF4 _0600B218: .word 0x04808038 arm_func_start WDisableTmpttPowerSave WDisableTmpttPowerSave: ; 0x0600B21C mov r2, #1 ldr r1, _0600B264 ; =0x0380FFF4 ldr r0, [r1] add r0, r0, #768 ; 0x300 strh r2, [r0, #234] ; 0xea ldr r0, [r1] add r0, r0, #1024 ; 0x400 ldrh r0, [r0, #104] ; 0x68 cmp r0, #0 bxne lr ldr r1, _0600B268 ; =0x04808038 ldrh r0, [r1] bic r0, r0, #2 strh r0, [r1] mov r1, #0 ldr r0, _0600B26C ; =0x04808048 strh r1, [r0] bx lr _0600B264: .word 0x0380FFF4 _0600B268: .word 0x04808038 _0600B26C: .word 0x04808048 arm_func_start WSetFrameLifeTime WSetFrameLifeTime: ; 0x0600B270 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _0600B2D0 ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 add r4, r0, #796 ; 0x31c ldr r0, _0600B2D4 ; =0x0000FFFF cmp r6, r0 moveq r1, #255 ; 0xff streqh r1, [r4, #28] streqh r0, [r5, #140] ; 0x8c beq _0600B2C4 ldrh r0, [r5, #110] ; 0x6e mul r0, r6, r0 mov r1, #100 ; 0x64 bl FUN_06003B68 cmp r0, #65536 ; 0x10000 movhi r0, #5 bhi _0600B2C8 strh r6, [r4, #28] strh r0, [r5, #140] ; 0x8c _0600B2C4: mov r0, #0 _0600B2C8: ldmia sp!, {r4, r5, r6, lr} bx lr _0600B2D0: .word 0x0380FFF4 _0600B2D4: .word 0x0000FFFF arm_func_start WWakeUp WWakeUp: ; 0x0600B2D8 stmdb sp!, {r4, lr} mov r1, #0 ldr r0, _0600B360 ; =0x04808036 strh r1, [r0] mov r0, #8 bl WWait mov r1, #0 ldr r0, _0600B364 ; =0x04808168 strh r1, [r0] ldr r0, _0600B368 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r0, [r0, #248] ; 0xf8 cmp r0, #2 beq _0600B320 cmp r0, #3 beq _0600B354 b _0600B358 _0600B320: mov r0, #1 bl BBP_Read mov r4, r0 mov r0, #1 and r1, r4, #127 ; 0x7f bl BBP_Write mov r0, #1 mov r1, r4 bl BBP_Write mov r0, #40 ; 0x28 bl WWait bl InitRF b _0600B358 _0600B354: bl InitRF _0600B358: ldmia sp!, {r4, lr} bx lr _0600B360: .word 0x04808036 _0600B364: .word 0x04808168 _0600B368: .word 0x0380FFF4 arm_func_start WShutdown WShutdown: ; 0x0600B36C stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600B3CC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r0, [r0, #248] ; 0xf8 cmp r0, #2 bne _0600B394 ldr r0, _0600B3D0 ; =0x0000C008 bl RF_Write _0600B394: mov r0, #30 bl BBP_Read orr r1, r0, #63 ; 0x3f mov r0, #30 bl BBP_Write ldr r1, _0600B3D4 ; =0x0000800D ldr r0, _0600B3D8 ; =0x04808168 strh r1, [r0] mov r1, #1 ldr r0, _0600B3DC ; =0x04808036 strh r1, [r0] add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600B3CC: .word 0x0380FFF4 _0600B3D0: .word 0x0000C008 _0600B3D4: .word 0x0000800D _0600B3D8: .word 0x04808168 _0600B3DC: .word 0x04808036 arm_func_start WSetForcePowerState WSetForcePowerState: ; 0x0600B3E0 ldr r1, _0600B3F0 ; =0x04808040 strh r0, [r1] mov r0, #0 bx lr _0600B3F0: .word 0x04808040 arm_func_start WSetPowerState WSetPowerState: ; 0x0600B3F4 mov r2, r0, lsr #1 ldr r1, _0600B418 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 strh r2, [r1, #84] ; 0x54 ldr r1, _0600B41C ; =0x0480803C strh r0, [r1] mov r0, #0 bx lr _0600B418: .word 0x0380FFF4 _0600B41C: .word 0x0480803C arm_func_start WSetPowerMgtMode WSetPowerMgtMode: ; 0x0600B420 stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _0600B48C ; =0x0380FFF4 ldr r1, [r1] add r2, r1, #796 ; 0x31c add r1, r1, #768 ; 0x300 strh r0, [r1, #82] ; 0x52 cmp r0, #0 beq _0600B460 ldrh r0, [r2, #18] cmp r0, #1 ldrne r1, _0600B490 ; =0x04808006 ldrneh r0, [r1] orrne r0, r0, #64 ; 0x40 strneh r0, [r1] bne _0600B47C _0600B460: ldr r1, _0600B490 ; =0x04808006 ldrh r0, [r1] bic r0, r0, #64 ; 0x40 strh r0, [r1] ldrh r0, [r2, #32] mov r1, #0 bl WSetActiveZoneTime _0600B47C: mov r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600B48C: .word 0x0380FFF4 _0600B490: .word 0x04808006 arm_func_start WSetTxTimeStampOffset WSetTxTimeStampOffset: ; 0x0600B494 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600B510 ; =0x0000E2E2 str r0, [sp] mov r0, #88 ; 0x58 mov r1, #2 add r2, sp, #0 bl FLASH_Read ldr r1, [sp] ldr r0, _0600B514 ; =0x00000202 add r0, r1, r0 str r0, [sp] bl WCalcManRate cmp r0, #20 bne _0600B4F8 ldr r1, [sp] ldr r0, _0600B518 ; =0x00006161 sub r1, r1, r0 str r1, [sp] ldr r0, _0600B51C ; =0x048080BC ldrh r0, [r0] ands r0, r0, #2 ldrne r0, _0600B520 ; =0x00006060 subne r0, r1, r0 strne r0, [sp] _0600B4F8: ldr r1, [sp] ldr r0, _0600B524 ; =0x04808140 strh r1, [r0] add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600B510: .word 0x0000E2E2 _0600B514: .word 0x00000202 _0600B518: .word 0x00006161 _0600B51C: .word 0x048080BC _0600B520: .word 0x00006060 _0600B524: .word 0x04808140 arm_func_start WSetRateSet WSetRateSet: ; 0x0600B528 stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _0600B56C ; =0x0380FFF4 ldr r1, [r1] add r3, r1, #932 ; 0x3a4 ldrh r2, [r0] add r1, r1, #768 ; 0x300 strh r2, [r1, #164] ; 0xa4 ldrh r1, [r0, #2] ldrh r0, [r0] orr r0, r1, r0 strh r0, [r3, #2] bl WSetTxTimeStampOffset mov r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600B56C: .word 0x0380FFF4 arm_func_start WSetChannel WSetChannel: ; 0x0600B570 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 mov sl, r0 cmp r1, #0 ldrne r9, _0600B7E8 ; =FLASH_DirectRead ldreq r9, _0600B7EC ; =FLASH_Read mov r0, sl bl CheckEnableChannel cmp r0, #0 moveq r0, #5 beq _0600B7DC ldr r1, _0600B7F0 ; =0x04808040 ldrh r8, [r1] ldr r0, _0600B7F4 ; =0x00008001 strh r0, [r1] ldr r2, _0600B7F8 ; =0x0480803C ldr r1, _0600B7FC ; =0x04808214 _0600B5B4: ldrh r0, [r2] mov r3, r0, asr #8 ldrh r0, [r1] cmp r3, #2 bne _0600B5B4 cmp r0, #0 beq _0600B5D8 cmp r0, #9 bne _0600B5B4 _0600B5D8: ldr fp, _0600B800 ; =0x0380FFF4 ldr r0, [fp] add r0, r0, #768 ; 0x300 strh sl, [r0, #190] ; 0xbe ldr r0, [fp] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #248] ; 0xf8 cmp r1, #2 beq _0600B60C cmp r1, #3 beq _0600B6DC cmp r1, #5 bne _0600B7C4 _0600B60C: mov r0, #0 str r0, [sp] sub r4, sl, #1 mov r0, #6 mul r5, r4, r0 add r0, r5, #242 ; 0xf2 mov r1, #3 add r2, sp, #0 mov lr, pc bx r9 ldr r0, [sp] bl RF_Write add r0, r5, #245 ; 0xf5 mov r1, #3 add r2, sp, #0 mov lr, pc bx r9 ldr r0, [sp] bl RF_Write mov r0, #0 str r0, [sp] ldr r0, _0600B800 ; =0x0380FFF4 ldr r0, [r0] ldr r1, [r0, #1540] ; 0x604 ands r0, r1, #65536 ; 0x10000 beq _0600B6B4 ands r0, r1, #32768 ; 0x8000 bne _0600B7C4 add r0, r4, #340 ; 0x154 mov r1, #1 add r2, sp, #0 mov lr, pc bx r9 ldr r0, _0600B800 ; =0x0380FFF4 ldr r0, [r0] ldr r1, [r0, #1540] ; 0x604 ldr r0, [sp] and r0, r0, #31 orr r0, r1, r0, lsl #10 str r0, [sp] bl RF_Write b _0600B7C4 _0600B6B4: ldr r0, _0600B804 ; =0x00000146 add r0, r4, r0 mov r1, #1 add r2, sp, #0 mov lr, pc bx r9 mov r0, #30 ldr r1, [sp] bl BBP_Write b _0600B7C4 _0600B6DC: ldrh r0, [r0, #252] ; 0xfc add r7, r0, #207 ; 0xcf mov r6, #0 mov r5, r6 mov r4, #1 b _0600B738 _0600B6F4: str r5, [sp] str r5, [sp, #4] mov r0, r7 mov r1, r4 add r2, sp, #4 mov lr, pc bx r9 add r0, r7, sl mov r1, r4 add r2, sp, #0 mov lr, pc bx r9 ldr r0, [sp, #4] ldr r1, [sp] bl BBP_Write add r7, r7, #15 add r6, r6, #1 _0600B738: ldr r0, [fp] add r0, r0, #1536 ; 0x600 ldrh r0, [r0] cmp r6, r0 bcc _0600B6F4 mov r6, #0 mov r5, r6 mov r4, #1 ldr fp, _0600B800 ; =0x0380FFF4 b _0600B7B0 _0600B760: str r5, [sp] mov r0, r7 mov r1, r4 add r2, sp, #0 mov lr, pc bx r9 ldr r0, [sp] mov r0, r0, lsl #8 str r0, [sp] add r0, r7, sl mov r1, r4 add r2, sp, #0 mov lr, pc bx r9 ldr r0, [sp] orr r0, r0, #327680 ; 0x50000 str r0, [sp] bl RF_Write add r7, r7, #15 add r6, r6, #1 _0600B7B0: ldr r0, [fp] add r0, r0, #1280 ; 0x500 ldrh r0, [r0, #254] ; 0xfe cmp r6, r0 bcc _0600B760 _0600B7C4: ldr r0, _0600B7F0 ; =0x04808040 strh r8, [r0] mov r1, #3 ldr r0, _0600B808 ; =0x04808048 strh r1, [r0] mov r0, #0 _0600B7DC: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600B7E8: .word FLASH_DirectRead _0600B7EC: .word FLASH_Read _0600B7F0: .word 0x04808040 _0600B7F4: .word 0x00008001 _0600B7F8: .word 0x0480803C _0600B7FC: .word 0x04808214 _0600B800: .word 0x0380FFF4 _0600B804: .word 0x00000146 _0600B808: .word 0x04808048 arm_func_start WSetDefaultParameters WSetDefaultParameters: ; 0x0600B80C stmfd sp!, {lr} sub sp, sp, #12 mov r0, #54 ; 0x36 mov r1, #6 add r2, sp, #2 bl FLASH_Read mov r0, #60 ; 0x3c mov r1, #2 add r2, sp, #0 bl FLASH_Read add r0, sp, #2 bl WSetMacAdrs mov r0, #7 bl WSetRetryLimit ldrh r1, [sp] ldr r0, _0600B940 ; =0x00007FFE and r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WSetEnableChannel mov r0, #2 bl WSetMode mov r0, #0 bl WSetRate mov r0, #0 bl WSetWepMode mov r0, #0 bl WSetWepKeyId ldr r0, _0600B944 ; =_06019424 bl WSetWepKey mov r0, #500 ; 0x1f4 bl WSetBeaconPeriod mov r0, #0 bl WSetBeaconType mov r0, #0 bl WSetBcSsidResponse mov r0, #16 bl WSetBeaconLostThreshold ldr r0, _0600B948 ; =0x0000FFFF mov r1, #0 bl WSetActiveZoneTime ldr r0, _0600B94C ; =_060193C4 bl WSetSsidMask mov r0, #1 bl WSetPreambleType mov r0, #0 bl WSetAuthAlgo ldr r0, _0600B950 ; =_06019380 bl WSetRateSet mov r0, #0 mov r1, #31 bl WSetCCA_ED mov r0, #5 bl WSetFrameLifeTime mov r0, #0 mov r1, r0 bl WSetDiversity mov r0, #0 bl WSetMainAntenna mov r0, #0 bl WSetBeaconSendRecvIndicate mov r0, #0 bl WSetNullKeyMode ldr r2, _0600B954 ; =0x04808044 ldrh r1, [r2] ldrh r0, [r2] add r0, r1, r0, lsl #8 ldrh r1, [r2] bl RND_init mov r1, #1 ldr r0, _0600B958 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 strh r1, [r0, #88] ; 0x58 add sp, sp, #12 ldmfd sp!, {lr} bx lr _0600B940: .word 0x00007FFE _0600B944: .word _06019424 _0600B948: .word 0x0000FFFF _0600B94C: .word _060193C4 _0600B950: .word _06019380 _0600B954: .word 0x04808044 _0600B958: .word 0x0380FFF4 arm_func_start WSetListenInterval WSetListenInterval: ; 0x0600B95C cmp r0, #1 bcc _0600B96C cmp r0, #255 ; 0xff bls _0600B974 _0600B96C: mov r0, #5 bx lr _0600B974: ldr r1, _0600B98C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 strh r0, [r1, #180] ; 0xb4 mov r0, #0 bx lr _0600B98C: .word 0x0380FFF4 arm_func_start WSetDTIMPeriod WSetDTIMPeriod: ; 0x0600B990 cmp r0, #1 bcc _0600B9A0 cmp r0, #255 ; 0xff bls _0600B9A8 _0600B9A0: mov r0, #5 bx lr _0600B9A8: ldr r1, _0600B9D0 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 strh r0, [r1, #184] ; 0xb8 ldr r1, _0600B9D4 ; =0x0480808E strh r0, [r1] mov r0, #0 ldr r1, _0600B9D8 ; =0x04808088 strh r0, [r1] bx lr _0600B9D0: .word 0x0380FFF4 _0600B9D4: .word 0x0480808E _0600B9D8: .word 0x04808088 arm_func_start WSetBeaconPeriod WSetBeaconPeriod: ; 0x0600B9DC stmfd sp!, {lr} sub sp, sp, #4 cmp r0, #10 bcc _0600B9F4 cmp r0, #1000 ; 0x3e8 bls _0600B9FC _0600B9F4: mov r0, #5 b _0600BA28 _0600B9FC: ldr r2, _0600BA34 ; =0x0380FFF4 ldr r1, [r2] add r1, r1, #768 ; 0x300 strh r0, [r1, #178] ; 0xb2 ldr r1, _0600BA38 ; =0x0480808C strh r0, [r1] ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #56] ; 0x38 bl WSetFrameLifeTime mov r0, #0 _0600BA28: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600BA34: .word 0x0380FFF4 _0600BA38: .word 0x0480808C arm_func_start WSetSsid WSetSsid: ; 0x0600BA3C stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 mov r7, r1 ldr r0, _0600BB54 ; =0x0380FFF4 ldr r1, [r0] add r6, r1, #836 ; 0x344 mov r4, #0 cmp r8, #32 movhi r0, #5 bhi _0600BB48 ldrh r0, [r6, #8] cmp r0, #64 ; 0x40 bne _0600BAA0 add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #1 bne _0600BAA0 ldrh r0, [r6, #30] cmp r0, r8 movne r0, #6 bne _0600BB48 ldrh r0, [r6, #146] ; 0x92 cmp r0, #0 movne r4, #1 _0600BAA0: mov r5, #0 add r9, r6, #32 b _0600BAC8 _0600BAAC: mov r0, r7 bl WL_ReadByte mov r1, r0 add r0, r9, r5 bl WL_WriteByte add r7, r7, #1 add r5, r5, #1 _0600BAC8: cmp r5, r8 bcc _0600BAAC add r9, r6, #32 mov r7, #0 b _0600BAEC _0600BADC: add r0, r9, r5 mov r1, r7 bl WL_WriteByte add r5, r5, #1 _0600BAEC: cmp r5, #32 bcc _0600BADC strh r8, [r6, #30] cmp r4, #0 beq _0600BB44 ldr r0, _0600BB54 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #1196] ; 0x4ac add r1, r0, #38 ; 0x26 ldrh r0, [r6, #146] ; 0x92 add r7, r1, r0 mov r5, #0 add r4, r6, #32 b _0600BB3C _0600BB24: add r0, r4, r5 bl WL_ReadByte mov r1, r0 add r0, r7, r5 bl WL_WriteByte add r5, r5, #1 _0600BB3C: cmp r5, r8 bcc _0600BB24 _0600BB44: mov r0, #0 _0600BB48: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _0600BB54: .word 0x0380FFF4 arm_func_start WSetBssid WSetBssid: ; 0x0600BB58 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, _0600BBB4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #936 ; 0x3a8 mov r1, r4 bl WSetMacAdrs1 ldr r0, _0600BBB8 ; =0x04808020 mov r1, r4 bl WSetMacAdrs1 ldrh r0, [r4] ands r0, r0, #1 ldrne r1, _0600BBBC ; =0x048080D0 ldrneh r0, [r1] bicne r0, r0, #1024 ; 0x400 strneh r0, [r1] ldreq r1, _0600BBBC ; =0x048080D0 ldreqh r0, [r1] orreq r0, r0, #1024 ; 0x400 streqh r0, [r1] mov r0, #0 ldmia sp!, {r4, lr} bx lr _0600BBB4: .word 0x0380FFF4 _0600BBB8: .word 0x04808020 _0600BBBC: .word 0x048080D0 arm_func_start WSetNullKeyMode WSetNullKeyMode: ; 0x0600BBC0 cmp r0, #1 movhi r0, #5 bxhi lr ldr r1, _0600BC10 ; =0x0380FFF4 ldr r1, [r1] add r2, r1, #768 ; 0x300 ldrh r1, [r2, #58] ; 0x3a bic r3, r1, #128 ; 0x80 mov r1, r0, lsl #16 mov r1, r1, lsr #16 and r1, r1, #1 orr r1, r3, r1, lsl #7 strh r1, [r2, #58] ; 0x3a cmp r0, #1 ldreq r0, _0600BC14 ; =0x0480802A ldreqh r1, [r0] ldreq r0, _0600BC18 ; =0x04808028 streqh r1, [r0] mov r0, #0 bx lr _0600BC10: .word 0x0380FFF4 _0600BC14: .word 0x0480802A _0600BC18: .word 0x04808028 arm_func_start WSetBeaconSendRecvIndicate WSetBeaconSendRecvIndicate: ; 0x0600BC1C cmp r0, #1 movhi r0, #5 bxhi lr ldr r1, _0600BC58 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #64 ; 0x40 mov r0, r0, lsl #16 mov r0, r0, lsr #16 and r0, r0, #1 orr r0, r2, r0, lsl #6 strh r0, [r1, #58] ; 0x3a mov r0, #0 bx lr _0600BC58: .word 0x0380FFF4 arm_func_start WSetDiversity WSetDiversity: ; 0x0600BC5C cmp r0, #1 bhi _0600BC6C cmp r1, #1 bls _0600BC74 _0600BC6C: mov r0, #5 bx lr _0600BC74: cmp r0, #0 beq _0600BC88 cmp r0, #1 beq _0600BCB4 b _0600BCDC _0600BC88: ldr r2, _0600BD30 ; =0x0380FFF4 ldr r2, [r2] add r2, r2, #768 ; 0x300 ldrh r3, [r2, #58] ; 0x3a bic r3, r3, #32 mov r1, r1, lsl #16 mov r1, r1, lsr #16 and r1, r1, #1 orr r1, r3, r1, lsl #5 strh r1, [r2, #58] ; 0x3a b _0600BCDC _0600BCB4: ldr r1, _0600BD30 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #46] ; 0x2e cmp r2, #1 movne r0, #11 bxne lr ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #32 strh r2, [r1, #58] ; 0x3a _0600BCDC: ldr r3, _0600BD30 ; =0x0380FFF4 ldr r1, [r3] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #16 mov r0, r0, lsl #16 mov r0, r0, lsr #16 and r0, r0, #1 orr r0, r2, r0, lsl #4 strh r0, [r1, #58] ; 0x3a ldr r0, [r3] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r1, r0, lsl #26 mov r1, r1, lsr #31 mov r0, r0, lsl #28 eor r1, r1, r0, lsr #31 ldr r0, _0600BD34 ; =0x04808290 strh r1, [r0] mov r0, #0 bx lr _0600BD30: .word 0x0380FFF4 _0600BD34: .word 0x04808290 arm_func_start WSetMainAntenna WSetMainAntenna: ; 0x0600BD38 cmp r0, #1 movhi r0, #5 bxhi lr ldr r3, _0600BD98 ; =0x0380FFF4 ldr r1, [r3] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #8 mov r0, r0, lsl #16 mov r0, r0, lsr #16 and r0, r0, #1 orr r0, r2, r0, lsl #3 strh r0, [r1, #58] ; 0x3a ldr r0, [r3] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r1, r0, lsl #26 mov r1, r1, lsr #31 mov r0, r0, lsl #28 eor r1, r1, r0, lsr #31 ldr r0, _0600BD9C ; =0x04808290 strh r1, [r0] mov r0, #0 bx lr _0600BD98: .word 0x0380FFF4 _0600BD9C: .word 0x04808290 arm_func_start WSetCCA_ED WSetCCA_ED: ; 0x0600BDA0 stmdb sp!, {r4, lr} mov r2, r0 mov r4, r1 cmp r2, #3 movhi r0, #5 bhi _0600BDE0 cmp r4, #63 ; 0x3f movhi r0, #5 bhi _0600BDE0 mov r0, #19 mov r1, r2 bl BBP_Write mov r0, #53 ; 0x35 mov r1, r4 bl BBP_Write mov r0, #0 _0600BDE0: ldmia sp!, {r4, lr} bx lr arm_func_start WSetAuthAlgo WSetAuthAlgo: ; 0x0600BDE8 cmp r0, #1 movhi r0, #5 ldrls r1, _0600BE08 ; =0x0380FFF4 ldrls r1, [r1] addls r1, r1, #768 ; 0x300 strlsh r0, [r1, #50] ; 0x32 movls r0, #0 bx lr _0600BE08: .word 0x0380FFF4 arm_func_start WSetPreambleType WSetPreambleType: ; 0x0600BE0C stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _0600BEC4 ; =0x0380FFF4 ldr r2, [r1] add r1, r2, #836 ; 0x344 cmp r0, #1 movhi r0, #5 bhi _0600BEB8 add r2, r2, #768 ; 0x300 ldrh r3, [r2, #58] ; 0x3a bic ip, r3, #4 and r3, r0, #1 orr r3, ip, r3, lsl #2 strh r3, [r2, #58] ; 0x3a cmp r0, #0 ldreqh r2, [r1, #124] ; 0x7c biceq r2, r2, #32 streqh r2, [r1, #124] ; 0x7c ldrneh r2, [r1, #124] ; 0x7c orrne r2, r2, #32 strneh r2, [r1, #124] ; 0x7c ldrh r2, [r1, #8] cmp r2, #64 ; 0x40 bne _0600BE8C ldr r2, _0600BEC4 ; =0x0380FFF4 ldr r3, [r2] add r2, r3, #768 ; 0x300 ldrh r2, [r2, #46] ; 0x2e cmp r2, #1 ldreqh r2, [r1, #124] ; 0x7c ldreq r1, [r3, #1196] ; 0x4ac streqh r2, [r1, #46] ; 0x2e _0600BE8C: cmp r0, #0 ldreq r1, _0600BEC8 ; =0x048080BC ldreqh r0, [r1] biceq r0, r0, #6 streqh r0, [r1] ldrne r1, _0600BEC8 ; =0x048080BC ldrneh r0, [r1] orrne r0, r0, #6 strneh r0, [r1] bl WSetTxTimeStampOffset mov r0, #0 _0600BEB8: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600BEC4: .word 0x0380FFF4 _0600BEC8: .word 0x048080BC arm_func_start WSetSsidMask WSetSsidMask: ; 0x0600BECC ldr r1, _0600BEF8 ; =0x0380FFF4 ldr r1, [r1] add r2, r1, #900 ; 0x384 mov r3, #0 _0600BEDC: ldrh r1, [r0], #2 strh r1, [r2], #2 add r3, r3, #1 cmp r3, #16 bcc _0600BEDC mov r0, #0 bx lr _0600BEF8: .word 0x0380FFF4 arm_func_start WSetActiveZoneTime WSetActiveZoneTime: ; 0x0600BEFC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 cmp r4, #10 movcc r0, #5 bcc _0600BFA8 ldr r0, _0600BFB4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 strh r4, [r0, #60] ; 0x3c cmp r1, #0 ldrne r0, _0600BFB8 ; =0x04808134 strneh r4, [r0] ldr r0, _0600BFB4 ; =0x0380FFF4 ldr r1, [r0] add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #164] ; 0xa4 cmp r0, #0 beq _0600BFA4 ldr r0, [r1, #1196] ; 0x4ac add r2, r0, #36 ; 0x24 add r0, r1, #768 ; 0x300 ldrh r1, [r0, #218] ; 0xda add r1, r2, r1 add r5, r1, #6 ldrh r0, [r0, #82] ; 0x52 cmp r0, #1 bne _0600BF8C mov r0, r5 and r1, r4, #255 ; 0xff bl WL_WriteByte add r0, r5, #1 mov r1, r4, asr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte b _0600BFA4 _0600BF8C: mov r0, r5 mov r1, #255 ; 0xff bl WL_WriteByte add r0, r5, #1 mov r1, #255 ; 0xff bl WL_WriteByte _0600BFA4: mov r0, #0 _0600BFA8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600BFB4: .word 0x0380FFF4 _0600BFB8: .word 0x04808134 arm_func_start WSetBeaconLostThreshold WSetBeaconLostThreshold: ; 0x0600BFBC cmp r0, #255 ; 0xff movhi r0, #5 bxhi lr mov r3, #0 ldr r2, _0600BFF0 ; =0x0380FFF4 ldr r1, [r2] add r1, r1, #768 ; 0x300 strh r3, [r1, #196] ; 0xc4 ldr r1, [r2] add r1, r1, #768 ; 0x300 strh r0, [r1, #194] ; 0xc2 mov r0, r3 bx lr _0600BFF0: .word 0x0380FFF4 arm_func_start WSetBcSsidResponse WSetBcSsidResponse: ; 0x0600BFF4 cmp r0, #1 movhi r0, #5 bxhi lr ldr r1, _0600C028 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #2 and r0, r0, #1 orr r0, r2, r0, lsl #1 strh r0, [r1, #58] ; 0x3a mov r0, #0 bx lr _0600C028: .word 0x0380FFF4 arm_func_start WSetBeaconType WSetBeaconType: ; 0x0600C02C cmp r0, #1 movhi r0, #5 bxhi lr ldr r1, _0600C060 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a bic r2, r2, #1 and r0, r0, #1 orr r0, r2, r0 strh r0, [r1, #58] ; 0x3a mov r0, #0 bx lr _0600C060: .word 0x0380FFF4 arm_func_start WSetWepKey WSetWepKey: ; 0x0600C064 stmdb sp!, {r4, lr} mov r4, r0 ldr r0, _0600C0B8 ; =0x04805F80 mov r1, r4 mov r2, #20 bl DMA_Write ldr r0, _0600C0BC ; =0x04805FA0 add r1, r4, #20 mov r2, #20 bl DMA_Write ldr r0, _0600C0C0 ; =0x04805FC0 add r1, r4, #40 ; 0x28 mov r2, #20 bl DMA_Write ldr r0, _0600C0C4 ; =0x04805FE0 add r1, r4, #60 ; 0x3c mov r2, #20 bl DMA_Write mov r0, #0 ldmia sp!, {r4, lr} bx lr _0600C0B8: .word 0x04805F80 _0600C0BC: .word 0x04805FA0 _0600C0C0: .word 0x04805FC0 _0600C0C4: .word 0x04805FE0 arm_func_start WSetWepKeyId WSetWepKeyId: ; 0x0600C0C8 cmp r0, #3 movhi r0, #5 ldrls r1, _0600C0E8 ; =0x0380FFF4 ldrls r1, [r1] addls r1, r1, #768 ; 0x300 strlsh r0, [r1, #54] ; 0x36 movls r0, #0 bx lr _0600C0E8: .word 0x0380FFF4 arm_func_start WSetWepMode WSetWepMode: ; 0x0600C0EC ldr r1, _0600C194 ; =0x0380FFF4 ldr r1, [r1] add r2, r1, #836 ; 0x344 cmp r0, #3 movhi r0, #5 bxhi lr add r1, r1, #768 ; 0x300 strh r0, [r1, #52] ; 0x34 cmp r0, #0 bne _0600C130 ldrh r1, [r2, #124] ; 0x7c bic r1, r1, #16 strh r1, [r2, #124] ; 0x7c ldrh r1, [r2, #138] ; 0x8a bic r1, r1, #16384 ; 0x4000 strh r1, [r2, #138] ; 0x8a b _0600C148 _0600C130: ldrh r1, [r2, #124] ; 0x7c orr r1, r1, #16 strh r1, [r2, #124] ; 0x7c ldrh r1, [r2, #138] ; 0x8a orr r1, r1, #16384 ; 0x4000 strh r1, [r2, #138] ; 0x8a _0600C148: ldrh r1, [r2, #8] cmp r1, #64 ; 0x40 bne _0600C16C cmp r0, #1 ldreqh r2, [r2, #124] ; 0x7c ldreq r1, _0600C194 ; =0x0380FFF4 ldreq r1, [r1] ldreq r1, [r1, #1196] ; 0x4ac streqh r2, [r1, #46] ; 0x2e _0600C16C: cmp r0, #0 moveq r0, #1 ldr r3, _0600C198 ; =0x04808006 ldrh r2, [r3] ldr r1, _0600C19C ; =0x0000FFC7 and r1, r2, r1 orr r0, r1, r0, lsl #3 strh r0, [r3] mov r0, #0 bx lr _0600C194: .word 0x0380FFF4 _0600C198: .word 0x04808006 _0600C19C: .word 0x0000FFC7 arm_func_start WSetRate WSetRate: ; 0x0600C1A0 stmfd sp!, {lr} sub sp, sp, #4 cmp r0, #2 movhi r0, #5 bhi _0600C1CC ldr r1, _0600C1D8 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 strh r0, [r1, #48] ; 0x30 bl WSetTxTimeStampOffset mov r0, #0 _0600C1CC: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600C1D8: .word 0x0380FFF4 arm_func_start WSetMode WSetMode: ; 0x0600C1DC stmfd sp!, {lr} sub sp, sp, #4 cmp r0, #3 movhi r0, #5 bhi _0600C24C ldr ip, _0600C258 ; =0x0380FFF4 ldr r1, [ip] add r1, r1, #768 ; 0x300 strh r0, [r1, #46] ; 0x2e ldr r1, [ip] add r1, r1, #768 ; 0x300 strh r0, [r1, #80] ; 0x50 ldr r3, _0600C25C ; =0x04808006 ldrh r2, [r3] ldr r1, _0600C260 ; =0x0000FFF8 and r1, r2, r1 orr r0, r1, r0 strh r0, [r3] ldr r0, [ip] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #82] ; 0x52 bl WSetPowerMgtMode ldr r0, _0600C258 ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #832] ; 0x340 orr r0, r0, #8 str r0, [r1, #832] ; 0x340 mov r0, #0 _0600C24C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600C258: .word 0x0380FFF4 _0600C25C: .word 0x04808006 _0600C260: .word 0x0000FFF8 arm_func_start WSetEnableChannel WSetEnableChannel: ; 0x0600C264 ldr r1, _0600C29C ; =0x00007FFE ands r1, r0, r1 moveq r0, #5 bxeq lr ldr r2, _0600C2A0 ; =0x0380FFF4 ldr r1, [r2] add r1, r1, #768 ; 0x300 strh r0, [r1, #44] ; 0x2c ldr r1, [r2] ldr r0, [r1, #832] ; 0x340 orr r0, r0, #4 str r0, [r1, #832] ; 0x340 mov r0, #0 bx lr _0600C29C: .word 0x00007FFE _0600C2A0: .word 0x0380FFF4 arm_func_start WSetRetryLimit WSetRetryLimit: ; 0x0600C2A4 cmp r0, #255 ; 0xff movhi r0, #5 bxhi lr ldr r1, _0600C2D0 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 strh r0, [r1, #42] ; 0x2a ldr r1, _0600C2D4 ; =0x0480802C strh r0, [r1] mov r0, #0 bx lr _0600C2D0: .word 0x0380FFF4 _0600C2D4: .word 0x0480802C arm_func_start WSetMacAdrs WSetMacAdrs: ; 0x0600C2D8 stmdb sp!, {r4, lr} mov r4, r0 ldrh r0, [r4] ands r0, r0, #1 movne r0, #5 bne _0600C328 ldr r0, _0600C330 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #804 ; 0x324 mov r1, r4 bl WSetMacAdrs1 ldr r0, _0600C334 ; =0x04808018 mov r1, r4 bl WSetMacAdrs1 ldr r0, _0600C330 ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #832] ; 0x340 orr r0, r0, #2 str r0, [r1, #832] ; 0x340 mov r0, #0 _0600C328: ldmia sp!, {r4, lr} bx lr _0600C330: .word 0x0380FFF4 _0600C334: .word 0x04808018 arm_func_start InitializeParam InitializeParam: ; 0x0600C338 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0600C3B4 ; =0x0380FFF4 ldr r1, [r0] ldr r4, [r1, #992] ; 0x3e0 mov r0, #0 add r1, r1, #796 ; 0x31c mov r2, #40 ; 0x28 bl FUN_0600055C mov r0, #0 ldr r1, _0600C3B4 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #836 ; 0x344 mov r2, #192 ; 0xc0 bl FUN_0600055C ldr r2, _0600C3B4 ; =0x0380FFF4 ldr r0, [r2] str r6, [r0, #796] ; 0x31c mov r0, r5, lsl #16 mov r1, r0, lsr #16 ldr r0, [r2] add r0, r0, #768 ; 0x300 strh r1, [r0, #32] ldr r0, [r2] add r0, r0, #768 ; 0x300 strh r1, [r0, #34] ; 0x22 ldr r0, [r2] str r4, [r0, #992] ; 0x3e0 ldmia sp!, {r4, r5, r6, lr} bx lr _0600C3B4: .word 0x0380FFF4 arm_func_start DiagBaseBand DiagBaseBand: ; 0x0600C3B8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov r9, #0 ldr r0, _0600C6A4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r0, [r0, #248] ; 0xf8 cmp r0, #5 ldreq sl, _0600C6A8 ; =_060195D0 ldrne sl, _0600C6AC ; =_06019604 mov r6, #0 mov r5, #255 ; 0xff mvn r4, #0 b _0600C40C _0600C3F0: mov r0, r6 mov r1, r5 bl BBP_Write cmp r0, r4 moveq r9, #1 beq _0600C678 add r6, r6, #1 _0600C40C: cmp r6, #105 ; 0x69 bcc _0600C3F0 mov r4, #0 mov r5, r4 b _0600C45C _0600C420: mov r0, r5, lsl #1 ldrh r0, [sl, r0] cmp r4, r0 addeq r5, r5, #1 beq _0600C458 mov r0, r4 bl BBP_Read mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #255 ; 0xff beq _0600C458 cmp r9, #32 add r9, r9, #1 bhi _0600C678 _0600C458: add r4, r4, #1 _0600C45C: cmp r4, #105 ; 0x69 bcc _0600C420 mov r5, #0 mov r4, r5 _0600C46C: mov r0, r5 mov r1, r4 bl BBP_Write add r5, r5, #1 cmp r5, #105 ; 0x69 bcc _0600C46C mov r5, #0 mov r4, r5 b _0600C4C8 _0600C490: mov r0, r4, lsl #1 ldrh r0, [sl, r0] cmp r5, r0 addeq r4, r4, #1 beq _0600C4C4 mov r0, r5 bl BBP_Read mov r0, r0, lsl #16 movs r0, r0, lsr #16 beq _0600C4C4 cmp r9, #32 add r9, r9, #1 bhi _0600C678 _0600C4C4: add r5, r5, #1 _0600C4C8: cmp r5, #105 ; 0x69 bcc _0600C490 mov r5, #85 ; 0x55 mov r4, #0 _0600C4D8: mov r0, r4 mov r1, r5 bl BBP_Write add r4, r4, #1 mvn r0, r5 mov r0, r0, lsl #16 mov r5, r0, lsr #16 cmp r4, #105 ; 0x69 bcc _0600C4D8 mov r5, #85 ; 0x55 mov r6, #0 mov r4, r6 b _0600C558 _0600C50C: mov r0, r4, lsl #1 ldrh r0, [sl, r0] cmp r6, r0 addeq r4, r4, #1 beq _0600C544 mov r0, r6 bl BBP_Read mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, r5 beq _0600C544 cmp r9, #32 add r9, r9, #1 bhi _0600C678 _0600C544: add r6, r6, #1 mvn r0, r5 and r0, r0, #255 ; 0xff mov r0, r0, lsl #16 mov r5, r0, lsr #16 _0600C558: cmp r6, #105 ; 0x69 bcc _0600C50C mov r4, #255 ; 0xff mov r5, #0 _0600C568: mov r0, r5 mov r1, r4 bl BBP_Write add r5, r5, #1 sub r0, r4, #1 mov r0, r0, lsl #16 mov r4, r0, lsr #16 cmp r5, #105 ; 0x69 bcc _0600C568 mov r5, #255 ; 0xff mov r6, #0 mov r4, r6 b _0600C5E4 _0600C59C: mov r0, r4, lsl #1 ldrh r0, [sl, r0] cmp r6, r0 addeq r4, r4, #1 beq _0600C5D4 mov r0, r6 bl BBP_Read mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, r5 beq _0600C5D4 cmp r9, #32 add r9, r9, #1 bhi _0600C678 _0600C5D4: add r6, r6, #1 sub r0, r5, #1 mov r0, r0, lsl #16 mov r5, r0, lsr #16 _0600C5E4: cmp r6, #105 ; 0x69 bcc _0600C59C mov r6, #0 mov r5, r6 mov r4, #1 mov fp, r6 b _0600C670 _0600C600: mov r0, r5, lsl #1 ldrh r0, [sl, r0] cmp r6, r0 addeq r5, r5, #1 beq _0600C66C mov r7, r4 mov r8, fp b _0600C664 _0600C620: mov r0, r6 mov r1, r7 bl BBP_Write mov r0, r6 bl BBP_Read mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, r7 beq _0600C650 cmp r9, #32 add r9, r9, #1 bhi _0600C678 _0600C650: mov r0, r7, lsl #1 and r0, r0, #255 ; 0xff mov r0, r0, lsl #16 mov r7, r0, lsr #16 add r8, r8, #1 _0600C664: cmp r8, #9 bcc _0600C620 _0600C66C: add r6, r6, #1 _0600C670: cmp r6, #105 ; 0x69 bcc _0600C600 _0600C678: cmp r9, #0 beq _0600C698 ldr r0, _0600C6A4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #62] ; 0x3e orr r1, r1, #8 strh r1, [r0, #62] ; 0x3e _0600C698: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600C6A4: .word 0x0380FFF4 _0600C6A8: .word _060195D0 _0600C6AC: .word _06019604 arm_func_start DiagMacMemory DiagMacMemory: ; 0x0600C6B0 mov r0, #0 ldr r3, _0600C820 ; =0x04804000 ldr r1, _0600C824 ; =0x0000FFFF mov ip, r0 _0600C6C0: mov r2, r1 sub r1, r1, #1 mov r1, r1, lsl #16 mov r1, r1, lsr #16 strh r2, [r3], #2 add ip, ip, #2 cmp ip, #8192 ; 0x2000 bcc _0600C6C0 ldr ip, _0600C820 ; =0x04804000 ldr r3, _0600C824 ; =0x0000FFFF mov r2, #0 b _0600C71C _0600C6F0: ldrh r1, [ip] cmp r1, r3 beq _0600C708 cmp r0, #32 add r0, r0, #1 bhi _0600C7FC _0600C708: add r2, r2, #2 add ip, ip, #2 sub r1, r3, #1 mov r1, r1, lsl #16 mov r3, r1, lsr #16 _0600C71C: cmp r2, #8192 ; 0x2000 bcc _0600C6F0 ldr r3, _0600C820 ; =0x04804000 ldr r1, _0600C828 ; =0x00005A5A mov r2, #0 _0600C730: strh r1, [r3], #2 add r2, r2, #2 mvn r1, r1 mov r1, r1, lsl #16 mov r1, r1, lsr #16 cmp r2, #8192 ; 0x2000 bcc _0600C730 ldr ip, _0600C820 ; =0x04804000 ldr r3, _0600C828 ; =0x00005A5A mov r2, #0 b _0600C788 _0600C75C: ldrh r1, [ip] cmp r1, r3 beq _0600C774 cmp r0, #32 add r0, r0, #1 bhi _0600C7FC _0600C774: add r2, r2, #2 add ip, ip, #2 mvn r1, r3 mov r1, r1, lsl #16 mov r3, r1, lsr #16 _0600C788: cmp r2, #8192 ; 0x2000 bcc _0600C75C ldr r3, _0600C820 ; =0x04804000 ldr r1, _0600C82C ; =0x0000A5A5 mov r2, #0 _0600C79C: strh r1, [r3], #2 add r2, r2, #2 mvn r1, r1 mov r1, r1, lsl #16 mov r1, r1, lsr #16 cmp r2, #8192 ; 0x2000 bcc _0600C79C ldr ip, _0600C820 ; =0x04804000 ldr r3, _0600C82C ; =0x0000A5A5 mov r2, #0 b _0600C7F4 _0600C7C8: ldrh r1, [ip] cmp r1, r3 beq _0600C7E0 cmp r0, #32 add r0, r0, #1 bhi _0600C7FC _0600C7E0: add r2, r2, #2 add ip, ip, #2 mvn r1, r3 mov r1, r1, lsl #16 mov r3, r1, lsr #16 _0600C7F4: cmp r2, #8192 ; 0x2000 bcc _0600C7C8 _0600C7FC: cmp r0, #0 bxeq lr ldr r0, _0600C830 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #62] ; 0x3e orr r1, r1, #2 strh r1, [r0, #62] ; 0x3e bx lr _0600C820: .word 0x04804000 _0600C824: .word 0x0000FFFF _0600C828: .word 0x00005A5A _0600C82C: .word 0x0000A5A5 _0600C830: .word 0x0380FFF4 arm_func_start DiagMacRegister DiagMacRegister: ; 0x0600C834 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r3, #0 mov r2, r3 mov r1, r3 ldr r0, _0600C9D0 ; =_0601963C ldr r5, _0600C9D4 ; =_060195C8 b _0600C8AC _0600C854: mov ip, r1 mov r6, r2, lsl #1 b _0600C8A0 _0600C860: mov r4, ip, lsl #2 ldrh r7, [r0, r4] ldrh r4, [r5, r6] add lr, r0, ip, lsl #2 ldrh lr, [lr, #2] and r4, r4, lr add lr, r7, #75497472 ; 0x4800000 add lr, lr, #32768 ; 0x8000 strh r4, [lr] ldrh lr, [lr] cmp lr, r4 beq _0600C89C cmp r3, #32 add r3, r3, #1 bhi _0600C9A4 _0600C89C: add ip, ip, #1 _0600C8A0: cmp ip, #27 bcc _0600C860 add r2, r2, #1 _0600C8AC: cmp r2, #3 bcc _0600C854 mov r4, #0 ldr r5, _0600C9D8 ; =0x00001234 ldr r2, _0600C9D0 ; =_0601963C mov r1, r5 _0600C8C4: mov ip, r4, lsl #2 add r0, r2, r4, lsl #2 ldrh r0, [r0, #2] and lr, r5, r0 ldrh r0, [r2, ip] add r0, r0, #75497472 ; 0x4800000 add r0, r0, #32768 ; 0x8000 strh lr, [r0] add r0, r5, r1 mov r0, r0, lsl #16 mov r5, r0, lsr #16 add r4, r4, #1 cmp r4, #27 bcc _0600C8C4 mov r0, #0 ldr r4, _0600C9D8 ; =0x00001234 ldr lr, _0600C9D0 ; =_0601963C mov r1, r4 b _0600C954 _0600C910: mov r2, r0, lsl #2 ldrh r2, [lr, r2] add r2, r2, #75497472 ; 0x4800000 add r2, r2, #32768 ; 0x8000 ldrh ip, [r2] add r2, lr, r0, lsl #2 ldrh r2, [r2, #2] and r2, r4, r2 cmp ip, r2 beq _0600C944 cmp r3, #32 add r3, r3, #1 bhi _0600C9A4 _0600C944: add r2, r4, r1 mov r2, r2, lsl #16 mov r4, r2, lsr #16 add r0, r0, #1 _0600C954: cmp r0, #27 bcc _0600C910 mov r4, #0 ldr r2, _0600C9D0 ; =_0601963C mov r1, r4 b _0600C99C _0600C96C: mov r0, r4, lsl #2 ldrh r0, [r2, r0] add r0, r0, #75497472 ; 0x4800000 add r0, r0, #32768 ; 0x8000 strh r1, [r0] ldrh r0, [r0] cmp r0, #0 beq _0600C998 cmp r3, #32 add r3, r3, #1 bhi _0600C9A4 _0600C998: add r4, r4, #1 _0600C99C: cmp r4, #27 bcc _0600C96C _0600C9A4: cmp r3, #0 beq _0600C9C4 ldr r0, _0600C9DC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #62] ; 0x3e orr r1, r1, #1 strh r1, [r0, #62] ; 0x3e _0600C9C4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600C9D0: .word _0601963C _0600C9D4: .word _060195C8 _0600C9D8: .word 0x00001234 _0600C9DC: .word 0x0380FFF4 arm_func_start ReleaseIntr ReleaseIntr: ; 0x0600C9E0 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r0, #16777216 ; 0x1000000 mov r1, #0 bl FUN_0600CA08 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start FUN_0600CA08 FUN_0600CA08: ; 0x0600CA08 ldr pc, _0600CA0C ; =OS_SetIrqFunction _0600CA0C: .word OS_SetIrqFunction arm_func_start InitializeIntr InitializeIntr: ; 0x0600CA10 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #16777216 ; 0x1000000 ldr r1, _0600CA38 ; =WlIntr bl FUN_0600CA08 mov r0, #16777216 ; 0x1000000 bl FUN_06009070 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600CA38: .word WlIntr arm_func_start FUN_0600CA3C FUN_0600CA3C: ; 0x0600CA3C stmfd sp!, {lr} sub sp, sp, #4 ldrh r1, [r0] cmp r1, #0 beq _0600CA8C ldr r2, [r0, #8] ldrh r1, [r2] ands r1, r1, #1 beq _0600CA8C ldr r1, _0600CA9C ; =0x00003FFF and r1, r2, r1 mov r1, r1, lsr #1 orr r2, r1, #32768 ; 0x8000 ldr r1, _0600CAA0 ; =0x04808098 ldrh r1, [r1] cmp r2, r1 beq _0600CA8C bl TxEndKeyData mov r0, #1 b _0600CA90 _0600CA8C: mov r0, #0 _0600CA90: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600CA9C: .word 0x00003FFF _0600CAA0: .word 0x04808098 arm_func_start FUN_0600CAA4 FUN_0600CAA4: ; 0x0600CAA4 stmdb sp!, {r4, lr} ldr r0, _0600CAE8 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600CAEC ; =0x0000042C add r4, r1, r0 add r0, r4, #80 ; 0x50 bl FUN_0600CA3C cmp r0, #0 movne r0, #1 bne _0600CAE0 add r0, r4, #100 ; 0x64 bl FUN_0600CA3C cmp r0, #0 movne r0, #1 moveq r0, #0 _0600CAE0: ldmia sp!, {r4, lr} bx lr _0600CAE8: .word 0x0380FFF4 _0600CAEC: .word 0x0000042C arm_func_start FUN_0600CAF0 FUN_0600CAF0: ; 0x0600CAF0 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600CB48 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600CB4C ; =0x0000042C add lr, r1, r0 ldrh r1, [lr, #164] ; 0xa4 ldr r0, _0600CB50 ; =0x0000FFFF cmp r1, r0 beq _0600CB3C ldr ip, _0600CB54 ; =0x04808094 ldrh r3, [ip] strh r1, [ip] ldr r2, _0600CB58 ; =0x04808030 ldrh r1, [r2] orr r1, r1, #128 ; 0x80 strh r1, [r2] strh r3, [ip] strh r0, [lr, #164] ; 0xa4 _0600CB3C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600CB48: .word 0x0380FFF4 _0600CB4C: .word 0x0000042C _0600CB50: .word 0x0000FFFF _0600CB54: .word 0x04808094 _0600CB58: .word 0x04808030 arm_func_start AdjustRingPointer AdjustRingPointer: ; 0x0600CB5C ldr r1, _0600CB7C ; =0x04805F60 cmp r0, r1 ldrcs r1, _0600CB80 ; =0x0380FFF4 ldrcs r1, [r1] addcs r1, r1, #768 ; 0x300 ldrcsh r1, [r1, #222] ; 0xde subcs r0, r0, r1 bx lr _0600CB7C: .word 0x04805F60 _0600CB80: .word 0x0380FFF4 arm_func_start MacBugTxMp MacBugTxMp: ; 0x0600CB84 stmdb sp!, {r4, lr} mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 ldr r2, _0600CBE8 ; =0x04808210 ldrh r3, [r2] mov r1, #4096 ; 0x1000 ldr r0, _0600CBEC ; =0x04808244 strh r1, [r0] mov r1, #100 ; 0x64 b _0600CBC0 _0600CBB0: ldrh r0, [r2] cmp r3, r0 bne _0600CBC8 sub r1, r1, #1 _0600CBC0: cmp r1, #0 bne _0600CBB0 _0600CBC8: mov r0, #0 ldr r1, _0600CBEC ; =0x04808244 strh r0, [r1] bl FUN_0600D070 mov r0, r4 bl FUN_06009070 ldmia sp!, {r4, lr} bx lr _0600CBE8: .word 0x04808210 _0600CBEC: .word 0x04808244 arm_func_start FUN_0600CBF0 FUN_0600CBF0: ; 0x0600CBF0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _0600CCBC ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600CCC0 ; =0x0000042C add r5, r1, r0 mov r4, #0 mov r0, #2 bl ResetTxqPri mov r0, #1 bl ResetTxqPri mov r0, r4 bl ResetTxqPri ldrh r0, [r5, #40] ; 0x28 cmp r0, #0 beq _0600CC48 ldr r0, [r5, #48] ; 0x30 ldrh r0, [r0] cmp r0, #0 movne r4, #1 moveq r0, r4 streqh r0, [r5, #40] ; 0x28 _0600CC48: ldrh r0, [r5, #20] cmp r0, #0 beq _0600CC6C ldr r0, [r5, #28] ldrh r0, [r0] cmp r0, #0 movne r4, #1 moveq r0, #0 streqh r0, [r5, #20] _0600CC6C: ldrh r0, [r5] cmp r0, #0 beq _0600CC90 ldr r0, [r5, #8] ldrh r0, [r0] cmp r0, #0 movne r4, #1 moveq r0, #0 streqh r0, [r5] _0600CC90: cmp r4, #0 beq _0600CCA4 mov r0, #0 mov r1, #14 bl AddTask _0600CCA4: mov r0, #0 mov r1, #20 bl AddTask add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600CCBC: .word 0x0380FFF4 _0600CCC0: .word 0x0000042C arm_func_start FUN_0600CCC4 FUN_0600CCC4: ; 0x0600CCC4 stmdb sp!, {r4, r5, r6, r7, r8, lr} ldr r2, _0600CEF4 ; =0x0380FFF4 ldr r1, [r2] add r5, r1, #836 ; 0x344 ldr r0, _0600CEF8 ; =0x0000042C add r4, r1, r0 mov r1, #64 ; 0x40 ldr r0, _0600CEFC ; =0x04808010 strh r1, [r0] ldr r0, [r2] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #32 beq _0600CEEC ldrh r1, [r4, #164] ; 0xa4 ldr r0, _0600CF00 ; =0x0000FFFF cmp r1, r0 bne _0600CEEC ldr r0, _0600CF04 ; =0x0480819C ldrh r0, [r0] and r0, r0, #3 cmp r0, #3 bne _0600CEEC ldr r0, _0600CF08 ; =0x04808268 ldrh r2, [r0] ldr r0, _0600CF0C ; =0x04808050 ldrh r1, [r0] ldr r0, _0600CF10 ; =0x00000FFF and r0, r0, r1, lsr #1 cmp r2, r0 blt _0600CEEC ldr r0, _0600CF14 ; =0x04808054 ldrh r6, [r0] ldr r0, _0600CF18 ; =0x04804000 add r0, r0, r6, lsl #1 add r0, r0, #8 bl AdjustRingPointer add r0, r0, #4 bl AdjustRingPointer ldrh r2, [r0] ldr r1, _0600CF1C ; =0x0000E7FF and r1, r2, r1 cmp r1, #552 ; 0x228 bne _0600CEEC add r0, r0, #2 bl AdjustRingPointer ldr r2, _0600CF20 ; =0x048080F8 ldrh r1, [r2] sub r7, r1, #65536 ; 0x10000 ldr r1, _0600CF08 ; =0x04808268 _0600CD8C: ldrh r3, [r1] sub r3, r3, r6 mov r3, r3, lsl #16 mov r8, r3, lsr #16 ands r3, r8, #32768 ; 0x8000 ldrneh r3, [r5, #154] ; 0x9a addne r3, r8, r3, lsr #1 movne r3, r3, lsl #16 movne r8, r3, lsr #16 cmp r8, #14 bhi _0600CDD4 ldrh r3, [r2] sub r3, r3, r7 mov r3, r3, lsl #16 mov r3, r3, lsr #16 cmp r3, #64 ; 0x40 bls _0600CD8C b _0600CEEC _0600CDD4: add r0, r0, #8 mov r8, #0 b _0600CE04 _0600CDE0: bl AdjustRingPointer mov r1, r0 add r0, r1, #2 ldrh r2, [r1] add r1, r5, r8, lsl #1 ldrh r1, [r1, #100] ; 0x64 cmp r2, r1 bne _0600CEEC add r8, r8, #1 _0600CE04: cmp r8, #3 bcc _0600CDE0 add r0, r0, #10 bl AdjustRingPointer ldr r3, _0600CF20 ; =0x048080F8 ldr r1, _0600CF08 ; =0x04808268 _0600CE1C: ldrh r2, [r1] sub r2, r2, r6 mov r2, r2, lsl #16 mov r8, r2, lsr #16 ands r2, r8, #32768 ; 0x8000 ldrneh r2, [r5, #154] ; 0x9a addne r2, r8, r2, lsr #1 movne r2, r2, lsl #16 movne r8, r2, lsr #16 cmp r8, #20 bhi _0600CE64 ldrh r2, [r3] sub r2, r2, r7 mov r2, r2, lsl #16 mov r2, r2, lsr #16 cmp r2, #112 ; 0x70 bls _0600CE1C b _0600CEEC _0600CE64: ldrh r2, [r0] mov r1, #1 ldr r0, _0600CF24 ; =0x04808028 ldrh r0, [r0] mov r0, r1, lsl r0 ands r0, r2, r0 bne _0600CEEC ldr r0, _0600CF28 ; =0x04808098 ldrh r0, [r0] strh r0, [r4, #164] ; 0xa4 mov r1, #64 ; 0x40 ldr r0, _0600CF2C ; =0x048080B4 strh r1, [r0] ldrh r0, [r5, #190] ; 0xbe add r0, r0, #1 strh r0, [r5, #190] ; 0xbe ldr r1, _0600CF04 ; =0x0480819C _0600CEA8: ldrh r0, [r1] and r0, r0, #3 cmp r0, #3 beq _0600CEA8 ldr r1, _0600CF30 ; =0x04808244 ldrh r0, [r1] orr r0, r0, #64 ; 0x40 strh r0, [r1] ldrh r0, [r1] bic r0, r0, #64 ; 0x40 strh r0, [r1] mov r0, #8 ldr r1, _0600CF34 ; =0x04808228 strh r0, [r1] mov r0, #0 strh r0, [r1] bl FUN_0600CAF0 _0600CEEC: ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _0600CEF4: .word 0x0380FFF4 _0600CEF8: .word 0x0000042C _0600CEFC: .word 0x04808010 _0600CF00: .word 0x0000FFFF _0600CF04: .word 0x0480819C _0600CF08: .word 0x04808268 _0600CF0C: .word 0x04808050 _0600CF10: .word 0x00000FFF _0600CF14: .word 0x04808054 _0600CF18: .word 0x04804000 _0600CF1C: .word 0x0000E7FF _0600CF20: .word 0x048080F8 _0600CF24: .word 0x04808028 _0600CF28: .word 0x04808098 _0600CF2C: .word 0x048080B4 _0600CF30: .word 0x04808244 _0600CF34: .word 0x04808228 arm_func_start FUN_0600CF38 FUN_0600CF38: ; 0x0600CF38 stmfd sp!, {lr} sub sp, sp, #4 ldr r3, _0600D048 ; =0x0380FFF4 ldr r1, [r3] ldr r0, _0600D04C ; =0x0000042C add r0, r1, r0 mov r2, #128 ; 0x80 ldr r1, _0600D050 ; =0x04808010 strh r2, [r1] ldr r1, [r3] add r1, r1, #1536 ; 0x600 ldrh r1, [r1, #144] ; 0x90 ands r1, r1, #32 beq _0600CFDC ldr r1, _0600D054 ; =0x04808214 ldrh r1, [r1] and r1, r1, #255 ; 0xff mov r1, r1, lsl #16 mov r2, r1, lsr #16 ldr r1, _0600D058 ; =0x04808268 ldrh r3, [r1] cmp r2, #3 bcc _0600CFDC cmp r2, #5 bhi _0600CFDC ldr r2, [r0, #88] ; 0x58 ldr r1, _0600D05C ; =0x00000FFF and r2, r1, r2, lsr #1 cmp r3, r2 bcc _0600CFDC ldr r0, [r0, #48] ; 0x30 and r0, r1, r0, lsr #1 cmp r3, r0 bhi _0600CFDC ldr r1, _0600D060 ; =0x04808244 ldrh r0, [r1] orr r0, r0, #128 ; 0x80 strh r0, [r1] ldrh r0, [r1] bic r0, r0, #128 ; 0x80 strh r0, [r1] _0600CFDC: ldr r0, _0600D064 ; =0x04808000 ldrh r0, [r0] cmp r0, #5184 ; 0x1440 beq _0600D03C ldr r0, _0600D068 ; =0x0480819C ldrh r0, [r0] and r0, r0, #66 ; 0x42 cmp r0, #66 ; 0x42 bne _0600D03C ldr r1, _0600D06C ; =0x048082B8 ldrh r2, [r1] cmp r2, #0 beq _0600D03C mov r3, #0 b _0600D030 _0600D018: cmp r3, #1000 ; 0x3e8 add r3, r3, #1 bls _0600D030 mov r0, #64 ; 0x40 bl SetFatalErr b _0600D03C _0600D030: ldrh r0, [r1] cmp r2, r0 beq _0600D018 _0600D03C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600D048: .word 0x0380FFF4 _0600D04C: .word 0x0000042C _0600D050: .word 0x04808010 _0600D054: .word 0x04808214 _0600D058: .word 0x04808268 _0600D05C: .word 0x00000FFF _0600D060: .word 0x04808244 _0600D064: .word 0x04808000 _0600D068: .word 0x0480819C _0600D06C: .word 0x048082B8 arm_func_start FUN_0600D070 FUN_0600D070: ; 0x0600D070 stmfd sp!, {lr} sub sp, sp, #4 ldr ip, _0600D168 ; =0x0380FFF4 ldr r2, [ip] ldr r1, _0600D16C ; =0x0000042C add r1, r2, r1 mov r3, #4096 ; 0x1000 ldr r2, _0600D170 ; =0x04808010 strh r3, [r2] ldrh r2, [r1, #60] ; 0x3c cmp r2, #0 beq _0600D15C ldr r2, [ip] add r2, r2, #1536 ; 0x600 ldrh r2, [r2, #144] ; 0x90 ands r2, r2, #16 beq _0600D150 cmp r0, #0 beq _0600D150 ldr r0, _0600D174 ; =0x048080B6 ldrh r2, [r0] ldr r0, _0600D178 ; =0x04808214 ldrh r0, [r0] cmp r0, #3 beq _0600D0DC cmp r0, #5 bne _0600D150 _0600D0DC: cmp r2, #0 bne _0600D150 ldr r2, [r1, #68] ; 0x44 ldrh r1, [r2, #2] mov r3, #0 b _0600D104 _0600D0F4: and r0, r1, #1 add r3, r3, r0 mov r0, r1, lsl #15 mov r1, r0, lsr #16 _0600D104: cmp r1, #0 bne _0600D0F4 ldrh r1, [r2, #10] ldrh r0, [r2, #36] ; 0x24 add r0, r0, #10 mul r0, r3, r0 add r0, r0, #192 ; 0xc0 add r0, r0, r1, lsl #2 mov r0, r0, lsl #16 mov r0, r0, lsr #16 ldr r1, _0600D17C ; =MacBugTxMp bl SetupUsTimeOut ldr r0, _0600D168 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 ldrh r1, [r0] add r1, r1, #1 strh r1, [r0] b _0600D15C _0600D150: mov r0, #0 mov r1, #16 bl AddTask _0600D15C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600D168: .word 0x0380FFF4 _0600D16C: .word 0x0000042C _0600D170: .word 0x04808010 _0600D174: .word 0x048080B6 _0600D178: .word 0x04808214 _0600D17C: .word MacBugTxMp arm_func_start FUN_0600D180 FUN_0600D180: ; 0x0600D180 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #28 ldr r0, _0600D5BC ; =0x0380FFF4 ldr r1, [r0] add sl, r1, #836 ; 0x344 ldr r0, _0600D5C0 ; =0x000004DC add r9, r1, r0 add r0, r1, #1536 ; 0x600 ldrh r2, [r0, #144] ; 0x90 mov r1, #1 ldr r0, _0600D5C4 ; =0x04808010 strh r1, [r0] ldrh r0, [sl, #12] cmp r0, #0 ldreq r0, _0600D5C8 ; =0x04808054 ldreqh r1, [r0] ldreq r0, _0600D5CC ; =0x0480805A streqh r1, [r0] and r5, r2, #1 mov r0, #1000 ; 0x3e8 str r0, [sp, #20] mov r0, #0 str r0, [sp, #24] _0600D1DC: ldrh r7, [r9, #4] ldr r0, _0600D5C8 ; =0x04808054 ldrh r6, [r0] cmp r7, r6 beq _0600D558 ldr r0, _0600D5D0 ; =0x048080F8 ldrh r4, [r0] ldr r0, _0600D5D4 ; =0x048080FA ldrh r3, [r0] ldr r0, _0600D5D0 ; =0x048080F8 ldrh r2, [r0] ldr r0, _0600D5D4 ; =0x048080FA ldrh r1, [r0] cmp r4, r2 movhi r0, r2, lsr #4 orrhi fp, r0, r1, lsl #12 movls r0, r4, lsr #4 orrls fp, r0, r3, lsl #12 ldr r0, _0600D5D8 ; =0x000008C6 cmp r7, r0 bcc _0600D240 ldr r0, _0600D5DC ; =0x000008EF cmp r7, r0 bhi _0600D240 bl WUpdateCounter _0600D240: mov r0, r7, lsl #1 str r0, [sp, #8] ldr r0, _0600D5E0 ; =0x04804000 add r8, r0, r7, lsl #1 add r0, r8, #2 bl AdjustRingPointer mov r4, r0 add r0, r4, #2 bl AdjustRingPointer str r0, [sp, #12] add r0, r0, #4 bl AdjustRingPointer str r0, [sp, #16] add r0, r8, #14 bl AdjustRingPointer str r0, [sp, #4] ldr r0, [sp, #8] add r0, r0, #75497472 ; 0x4800000 add r0, r0, #16384 ; 0x4000 ldrh r2, [r0] ldrh r1, [r4] mov r1, r1, lsl #1 and r1, r1, #1024 ; 0x400 orr r1, r2, r1 strh r1, [r0] ldr r0, [sp, #12] strh fp, [r0] ldr r0, [sp, #16] ldrh r2, [r0] add r0, r2, r7, lsl #1 add r0, r0, #15 mov r0, r0, lsr #2 mov r7, r0, lsl #1 cmp r7, #4016 ; 0xfb0 ldrcsh r0, [sl, #154] ; 0x9a subcs r7, r7, r0, lsr #1 ldr r0, _0600D5E4 ; =0x0000092C cmp r2, r0 bls _0600D2F8 ldr r0, _0600D5E8 ; =0x0000FFFF strh r0, [r8] mov r7, r6 ldrh r0, [sl, #180] ; 0xb4 add r0, r0, #1 strh r0, [sl, #180] ; 0xb4 b _0600D390 _0600D2F8: cmp r5, #0 beq _0600D390 cmp r7, r6 beq _0600D390 mov r1, r7, lsl #1 ldr r0, _0600D5E0 ; =0x04804000 add r0, r0, r7, lsl #1 add r1, r1, #75497472 ; 0x4800000 add r1, r1, #16384 ; 0x4000 ldrh r1, [r1] ldr r3, _0600D5EC ; =0x04805F5A cmp r0, r3 ldrcch r0, [r0, #6] andcc r0, r0, #255 ; 0xff movcc r0, r0, lsl #16 movcc r3, r0, lsr #16 ldrcsh r3, [sl, #154] ; 0x9a subcs r0, r0, r3 ldrcsh r3, [r0, #6] ands r0, r1, #31744 ; 0x7c00 bne _0600D368 cmp r3, #10 beq _0600D35C cmp r3, #20 bne _0600D368 _0600D35C: ldr r0, _0600D5F0 ; =0x00000FFF cmp r2, r0 bls _0600D390 _0600D368: ldrh r0, [sl, #180] ; 0xb4 add r0, r0, #1 strh r0, [sl, #180] ; 0xb4 ldr r0, _0600D5E8 ; =0x0000FFFF strh r0, [r8] mov r0, r6, lsl #16 mov r0, r0, lsr #16 strh r0, [r9, #4] strh r0, [r4] b _0600D558 _0600D390: ldrh r0, [r8] and r0, r0, #15 cmp r0, #12 bne _0600D4EC add r0, r8, #12 bl AdjustRingPointer ldrh fp, [r0] add r0, r8, #34 ; 0x22 bl AdjustRingPointer ldrh r6, [r0] ldrh r0, [r9] cmp r0, r6 bne _0600D3EC ands r0, fp, #2048 ; 0x800 beq _0600D3EC ldr r0, _0600D5BC ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #1404] ; 0x57c add r0, r0, #1 str r0, [r1, #1404] ; 0x57c ldr r0, _0600D5E8 ; =0x0000FFFF strh r0, [r8] b _0600D4C4 _0600D3EC: ldr r0, _0600D5BC ; =0x0380FFF4 ldr r0, [r0] add r1, r0, #768 ; 0x300 ldrh r2, [r1, #58] ; 0x3a mov r2, r2, lsl #24 movs r2, r2, lsr #31 bne _0600D4C4 ldrh r1, [r1, #76] ; 0x4c cmp r1, #64 ; 0x40 bne _0600D4C4 ldr r1, _0600D5F4 ; =0x04808028 ldrh r1, [r1] cmp r1, #0 beq _0600D49C ldr r1, _0600D5F8 ; =0x04808098 ldrh r1, [r1] ands r1, r1, #32768 ; 0x8000 beq _0600D49C add r0, r0, #1632 ; 0x660 bl FUN_060009D0 ldr r0, [sp, #4] ldrh r2, [r0] mov r1, #0 ldr r0, _0600D5FC ; =0x000082EA umull r8, r3, r2, r0 mla r3, r2, r1, r3 mla r3, r1, r0, r3 mov r1, r3, lsr #6 mov r0, r8, lsr #6 orr r0, r0, r3, lsl #26 ldr r2, [sp, #20] ldr r3, [sp, #24] bl FUN_06009EDC mov r3, r0 mov r2, r1 ldr r0, [sp, #24] str r0, [sp] ldr r0, _0600D5BC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1632 ; 0x660 mov r1, r3 ldr r3, _0600D600 ; =WClearKSID bl FUN_0600144C b _0600D4C4 _0600D49C: ldr r6, _0600D5E8 ; =0x0000FFFF mov r1, r6 ldr r0, _0600D604 ; =0x04805F7E strh r1, [r0] ldr r0, _0600D608 ; =0x0480824C strh r1, [r0] ldr r0, _0600D60C ; =0x0480824E strh r1, [r0] mov r0, r6 strh r0, [r8] _0600D4C4: strh r6, [r9] bl FUN_0600CAA4 cmp r0, #0 bne _0600D544 ldr r0, _0600D5BC ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #1448] ; 0x5a8 add r0, r0, #1 str r0, [r1, #1448] ; 0x5a8 b _0600D544 _0600D4EC: cmp r0, #13 bne _0600D544 ldr r0, _0600D5BC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #58] ; 0x3a mov r1, r1, lsl #24 movs r1, r1, lsr #31 bne _0600D544 ldrh r0, [r0, #76] ; 0x4c cmp r0, #64 ; 0x40 bne _0600D544 ldr r0, _0600D5F4 ; =0x04808028 ldrh r0, [r0] cmp r0, #0 beq _0600D53C ldr r0, _0600D5F8 ; =0x04808098 ldrh r0, [r0] ands r0, r0, #32768 ; 0x8000 bne _0600D544 _0600D53C: ldr r0, _0600D5E8 ; =0x0000FFFF strh r0, [r8] _0600D544: mov r0, r7, lsl #16 mov r0, r0, lsr #16 strh r0, [r9, #4] strh r0, [r4] b _0600D1DC _0600D558: cmp r5, #0 beq _0600D58C ldr r0, _0600D5C8 ; =0x04808054 ldrh r4, [r0] bl FUN_0600CAA4 cmp r0, #0 beq _0600D58C ldr r0, _0600D5C8 ; =0x04808054 ldrh r0, [r0] cmp r4, r0 bne _0600D58C mov r0, #32 bl SetFatalErr _0600D58C: ldr r0, _0600D5CC ; =0x0480805A ldrh r1, [r0] ldr r0, _0600D5C8 ; =0x04808054 ldrh r0, [r0] cmp r1, r0 beq _0600D5B0 mov r0, #0 mov r1, #15 bl AddTask _0600D5B0: add sp, sp, #28 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600D5BC: .word 0x0380FFF4 _0600D5C0: .word 0x000004DC _0600D5C4: .word 0x04808010 _0600D5C8: .word 0x04808054 _0600D5CC: .word 0x0480805A _0600D5D0: .word 0x048080F8 _0600D5D4: .word 0x048080FA _0600D5D8: .word 0x000008C6 _0600D5DC: .word 0x000008EF _0600D5E0: .word 0x04804000 _0600D5E4: .word 0x0000092C _0600D5E8: .word 0x0000FFFF _0600D5EC: .word 0x04805F5A _0600D5F0: .word 0x00000FFF _0600D5F4: .word 0x04808028 _0600D5F8: .word 0x04808098 _0600D5FC: .word 0x000082EA _0600D600: .word WClearKSID _0600D604: .word 0x04805F7E _0600D608: .word 0x0480824C _0600D60C: .word 0x0480824E arm_func_start FUN_0600D610 FUN_0600D610: ; 0x0600D610 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r2, _0600D87C ; =0x0380FFF4 ldr r1, [r2] ldr r0, _0600D880 ; =0x0000042C add r5, r1, r0 mov r0, #2 ldr r1, _0600D884 ; =0x04808010 strh r0, [r1] ldr r1, [r2] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #18 bne _0600D650 bl IntrCarrierSuppresionSignal b _0600D870 _0600D650: ldr r1, _0600D888 ; =0x048080B8 ldrh r1, [r1] and r4, r1, #3840 ; 0xf00 cmp r4, #768 ; 0x300 beq _0600D678 cmp r4, #2048 ; 0x800 beq _0600D6AC cmp r4, #2816 ; 0xb00 beq _0600D6EC b _0600D7F0 _0600D678: ldr r0, [r5, #140] ; 0x8c ands r0, r0, #2 beq _0600D688 bl FUN_0600CBF0 _0600D688: ldr r0, _0600D87C ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #1368] ; 0x558 add r0, r0, #1 str r0, [r1, #1368] ; 0x558 mov r0, #0 mov r1, #8 bl AddTask b _0600D7F0 _0600D6AC: ldrh r2, [r5, #158] ; 0x9e ldr r1, [r5, #68] ; 0x44 ldrh r1, [r1, #4] and r1, r1, #255 ; 0xff mov r1, r1, lsl #16 cmp r2, r1, lsr #16 ldrls r1, _0600D88C ; =0x048080AC strlsh r0, [r1] ldrlsh r0, [r5, #168] ; 0xa8 addls r0, r0, #1 strlsh r0, [r5, #168] ; 0xa8 ldr r1, [r5, #144] ; 0x90 ldrh r0, [r1, #24] add r0, r0, #1 strh r0, [r1, #24] b _0600D7F0 _0600D6EC: ldr r2, _0600D890 ; =0x0000FFFF ldr r0, _0600D894 ; =0x04805F70 strh r2, [r0] ldr r0, _0600D898 ; =0x04805F72 strh r2, [r0] ldr r0, _0600D89C ; =0x0480824C strh r2, [r0] ldr r0, _0600D8A0 ; =0x0480824E strh r2, [r0] ldrh r0, [r5, #60] ; 0x3c cmp r0, #0 beq _0600D748 ldr r1, [r5, #68] ; 0x44 ldrh r0, [r1, #34] ; 0x22 cmp r0, r2 bne _0600D748 ldrh r0, [r1, #4] cmp r0, #0 movne r0, #0 strneh r0, [r1, #4] ldrneh r1, [r5, #152] ; 0x98 ldrne r0, [r5, #68] ; 0x44 strneh r1, [r0, #2] _0600D748: ldrh r2, [r5, #152] ; 0x98 ldr r0, [r5, #68] ; 0x44 ldrh r1, [r0, #2] ldr r0, [r5, #144] ; 0x90 add r0, r0, #26 cmp r1, #1 bls _0600D79C ldr r3, _0600D87C ; =0x0380FFF4 ldr r3, [r3] add r3, r3, #768 ; 0x300 ldrh r3, [r3, #58] ; 0x3a mov r3, r3, lsl #27 movs r3, r3, lsr #31 beq _0600D79C ldr r3, _0600D8A4 ; =0x0480819C ldrh r3, [r3] ands r3, r3, #1 ldreq ip, _0600D8A8 ; =0x04808290 ldreqh r3, [ip] eoreq r3, r3, #1 streqh r3, [ip] _0600D79C: ldr r3, _0600D87C ; =0x0380FFF4 ldr r3, [r3] add r3, r3, #1536 ; 0x600 ldrh r3, [r3, #144] ; 0x90 ands r3, r3, #64 ; 0x40 beq _0600D7F0 b _0600D7E8 _0600D7B8: mov r1, r1, lsl #15 mov r1, r1, lsr #16 ands r3, r1, #1 ldrneh r3, [r0, #6] addne r3, r3, #1 strneh r3, [r0, #6] mov r2, r2, lsl #15 mov r2, r2, lsr #16 ands r3, r2, #1 ldrne r3, [r5, #144] ; 0x90 ldrneh r3, [r3, #22] addne r0, r0, r3 _0600D7E8: cmp r1, #1 bhi _0600D7B8 _0600D7F0: cmp r4, #2048 ; 0x800 beq _0600D864 ldr r0, _0600D8AC ; =0x048080B0 ldrh r0, [r0] ands r0, r0, #2 bne _0600D864 ldrh r0, [r5, #60] ; 0x3c cmp r0, #0 beq _0600D858 mov r0, #2 ldr r1, _0600D8B0 ; =0x048080B4 strh r0, [r1] mov r2, #0 ldr r1, _0600D8B4 ; =0x04808048 strh r2, [r1] ldr r1, _0600D884 ; =0x04808010 ldrh r1, [r1] ands r1, r1, #4096 ; 0x1000 ldrneh r0, [r5, #172] ; 0xac addne r0, r0, #1 strneh r0, [r5, #172] ; 0xac bne _0600D84C bl FUN_0600D070 _0600D84C: ldrh r0, [r5, #170] ; 0xaa add r0, r0, #1 strh r0, [r5, #170] ; 0xaa _0600D858: mov r1, #2 ldr r0, _0600D8B8 ; =0x048080AE strh r1, [r0] _0600D864: mov r0, #0 mov r1, #14 bl AddTask _0600D870: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600D87C: .word 0x0380FFF4 _0600D880: .word 0x0000042C _0600D884: .word 0x04808010 _0600D888: .word 0x048080B8 _0600D88C: .word 0x048080AC _0600D890: .word 0x0000FFFF _0600D894: .word 0x04805F70 _0600D898: .word 0x04805F72 _0600D89C: .word 0x0480824C _0600D8A0: .word 0x0480824E _0600D8A4: .word 0x0480819C _0600D8A8: .word 0x04808290 _0600D8AC: .word 0x048080B0 _0600D8B0: .word 0x048080B4 _0600D8B4: .word 0x04808048 _0600D8B8: .word 0x048080AE arm_func_start FUN_0600D8BC FUN_0600D8BC: ; 0x0600D8BC stmdb sp!, {r4, lr} ldr r4, _0600DA44 ; =0x0380FFF4 ldr r1, [r4] ldr r0, _0600DA48 ; =0x000004DC add r2, r1, r0 ldr r0, _0600DA4C ; =0x0000042C add r1, r1, r0 mov r3, #4 ldr r0, _0600DA50 ; =0x04808010 strh r3, [r0] ldr r0, _0600DA54 ; =0x048081A8 ldrh r0, [r0] ldr r3, [r4] add r3, r3, #1536 ; 0x600 ldrh r3, [r3, #144] ; 0x90 ands r3, r3, #8 beq _0600D9BC ands r3, r0, #1024 ; 0x400 beq _0600D9BC ldr r3, _0600DA58 ; =0x048080B0 ldrh r4, [r3] ands r3, r4, #1 beq _0600D924 ldrh r3, [r1] cmp r3, #0 bne _0600D978 _0600D924: ands r3, r4, #4 beq _0600D938 ldrh r3, [r1, #20] cmp r3, #0 bne _0600D978 _0600D938: ands r3, r4, #8 beq _0600D94C ldrh r1, [r1, #40] ; 0x28 cmp r1, #0 bne _0600D978 _0600D94C: ldr r1, _0600DA5C ; =0x0480819C ldrh r1, [r1] ands r1, r1, #1 bne _0600D978 mov r4, #0 ldr r3, _0600DA60 ; =0x04808032 strh r4, [r3] mov r1, #32768 ; 0x8000 strh r1, [r3] strh r4, [r2, #2] b _0600D9BC _0600D978: ldrh r3, [r2, #2] add r1, r3, #1 strh r1, [r2, #2] cmp r3, #12 bls _0600D9BC mov r1, #0 strh r1, [r2, #2] ldr r2, _0600DA60 ; =0x04808032 strh r1, [r2] mov r1, #32768 ; 0x8000 strh r1, [r2] ldr r1, _0600DA44 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #254] ; 0xfe add r2, r2, #1 strh r2, [r1, #254] ; 0xfe _0600D9BC: ldr r1, _0600DA44 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #1536 ; 0x600 ldrh r1, [r1, #144] ; 0x90 ands r1, r1, #1 beq _0600DA3C ands r0, r0, #96 ; 0x60 beq _0600DA3C ldr r0, _0600DA64 ; =0x04808054 ldrh r4, [r0] ldr r0, _0600DA68 ; =0x04808052 ldrh r0, [r0] sub r0, r0, #16384 ; 0x4000 mov r1, #2 bl FUN_06001840 cmp r4, r0 bge _0600DA1C ldr r0, _0600DA6C ; =0x04808050 ldrh r0, [r0] sub r0, r0, #16384 ; 0x4000 mov r1, #2 bl FUN_06001840 cmp r4, r0 bge _0600DA38 _0600DA1C: ldr r0, _0600DA70 ; =0x0480805A ldrh r1, [r0] ldr r0, _0600DA74 ; =0x04808056 strh r1, [r0] ldr r1, _0600DA78 ; =0x00008001 ldr r0, _0600DA7C ; =0x04808030 strh r1, [r0] _0600DA38: bl WCheckTxBuf _0600DA3C: ldmia sp!, {r4, lr} bx lr _0600DA44: .word 0x0380FFF4 _0600DA48: .word 0x000004DC _0600DA4C: .word 0x0000042C _0600DA50: .word 0x04808010 _0600DA54: .word 0x048081A8 _0600DA58: .word 0x048080B0 _0600DA5C: .word 0x0480819C _0600DA60: .word 0x04808032 _0600DA64: .word 0x04808054 _0600DA68: .word 0x04808052 _0600DA6C: .word 0x04808050 _0600DA70: .word 0x0480805A _0600DA74: .word 0x04808056 _0600DA78: .word 0x00008001 _0600DA7C: .word 0x04808030 arm_func_start FUN_0600DA80 FUN_0600DA80: ; 0x0600DA80 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r1, #8 ldr r0, _0600DB94 ; =0x04808010 strh r1, [r0] ldr r0, _0600DB98 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #27 movs r0, r0, lsr #31 beq _0600DACC ldr r0, _0600DB9C ; =0x0480819C ldrh r0, [r0] ands r0, r0, #1 ldreq r1, _0600DBA0 ; =0x04808290 ldreqh r0, [r1] eoreq r0, r0, #1 streqh r0, [r1] _0600DACC: ldr r0, _0600DB98 ; =0x0380FFF4 ldr r1, [r0] add r0, r1, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 beq _0600DB88 add r3, r1, #836 ; 0x344 ldr r0, _0600DBA4 ; =0x0000042C add r1, r1, r0 mov r2, #0 mov r5, r2 ldr r4, _0600DBA8 ; =0x04808032 mov lr, #32768 ; 0x8000 add ip, r3, #186 ; 0xba mov r3, #20 _0600DB08: mul r0, r2, r3 add r6, r1, r0 ldrh r0, [r1, r0] cmp r0, #0 beq _0600DB7C ldr r0, [r6, #8] ldrh r6, [r0, #12] ands r6, r6, #16384 ; 0x4000 beq _0600DB7C ldrh r6, [r0, #4] ands r6, r6, #255 ; 0xff beq _0600DB7C add r7, r0, #12 ldrh r6, [r0, #10] add r6, r7, r6 sub r6, r6, #7 bic r7, r6, #1 ldrh r6, [r7] cmp r6, #0 bne _0600DB7C ldrh r6, [r7, #2] cmp r6, #0 bne _0600DB7C strh r5, [r0, #4] strh r5, [r4] strh lr, [r4] ldrh r0, [ip] add r0, r0, #1 strh r0, [ip] _0600DB7C: add r2, r2, #1 cmp r2, #3 bcc _0600DB08 _0600DB88: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600DB94: .word 0x04808010 _0600DB98: .word 0x0380FFF4 _0600DB9C: .word 0x0480819C _0600DBA0: .word 0x04808290 _0600DBA4: .word 0x0000042C _0600DBA8: .word 0x04808032 arm_func_start FUN_0600DBAC FUN_0600DBAC: ; 0x0600DBAC stmfd sp!, {lr} sub sp, sp, #4 bl WUpdateCounter ldr r1, _0600DBDC ; =0x0000FFFF ldr r0, _0600DBE0 ; =0x048081AC strh r1, [r0] mov r1, #48 ; 0x30 ldr r0, _0600DBE4 ; =0x04808010 strh r1, [r0] add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600DBDC: .word 0x0000FFFF _0600DBE0: .word 0x048081AC _0600DBE4: .word 0x04808010 arm_func_start FUN_0600DBE8 FUN_0600DBE8: ; 0x0600DBE8 mov r1, #2048 ; 0x800 ldr r0, _0600DBF8 ; =0x04808010 strh r1, [r0] bx lr _0600DBF8: .word 0x04808010 arm_func_start FUN_0600DBFC FUN_0600DBFC: ; 0x0600DBFC ldr r0, _0600DC68 ; =0x0380FFF4 ldr r0, [r0] add r2, r0, #836 ; 0x344 mov r1, #8192 ; 0x2000 ldr r0, _0600DC6C ; =0x04808010 strh r1, [r0] mov r1, #13 ldr r0, _0600DC70 ; =0x048080AC strh r1, [r0] ldrh r0, [r2, #26] cmp r0, #1 moveq r0, #2 streqh r0, [r2, #26] bxeq lr cmp r0, #2 moveq r0, #0 streqh r0, [r2, #26] bxeq lr ldrh r0, [r2, #12] cmp r0, #2 bxne lr ldrh r0, [r2, #8] cmp r0, #64 ; 0x40 movne r1, #0 ldrne r0, _0600DC74 ; =0x04808048 strneh r1, [r0] bx lr _0600DC68: .word 0x0380FFF4 _0600DC6C: .word 0x04808010 _0600DC70: .word 0x048080AC _0600DC74: .word 0x04808048 arm_func_start FUN_0600DC78 FUN_0600DC78: ; 0x0600DC78 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 ldr r0, _0600DF48 ; =0x0380FFF4 ldr r1, [r0] add sl, r1, #836 ; 0x344 add r4, r1, #796 ; 0x31c ldr r0, _0600DF4C ; =0x0000042C add r9, r1, r0 mov r1, #16384 ; 0x4000 ldr r0, _0600DF50 ; =0x04808010 strh r1, [r0] ldrh r0, [sl, #12] cmp r0, #1 beq _0600DCC4 cmp r0, #2 beq _0600DD80 cmp r0, #3 beq _0600DDC4 b _0600DF3C _0600DCC4: ldr r0, [r9, #128] ; 0x80 add r1, r0, #36 ; 0x24 ldrh r0, [sl, #150] ; 0x96 add r0, r1, r0 add r6, r0, #8 ldr r0, _0600DF54 ; =0x0380FFF0 ldrh r5, [r0] mov r0, r6 and r1, r5, #255 ; 0xff bl WL_WriteByte add r0, r6, #1 mov r1, r5, lsr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte ldrh r0, [sl, #14] cmp r0, #1 bne _0600DD20 ldrh r2, [r4, #32] ldr r1, _0600DF58 ; =0x04808134 ldrh r0, [r1] add r0, r2, r0 add r0, r0, #1 strh r0, [r1] _0600DD20: ldr r0, _0600DF48 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #46] ; 0x2e mvn r2, r1 ldrh r1, [r0, #50] ; 0x32 orr r1, r2, r1 strh r1, [r0, #48] ; 0x30 ldr r0, _0600DF5C ; =0x048080B6 ldrh r1, [r0] ands r0, r1, #24 bne _0600DD5C and r0, r1, #6 cmp r0, #2 bne _0600DD70 _0600DD5C: ldr r0, [r9, #140] ; 0x8c bic r0, r0, #2 str r0, [r9, #140] ; 0x8c bl FUN_0600CBF0 b _0600DF3C _0600DD70: ldr r0, [r9, #140] ; 0x8c orr r0, r0, #2 str r0, [r9, #140] ; 0x8c b _0600DF3C _0600DD80: ldrh r0, [sl, #18] cmp r0, #0 ldreq r1, _0600DF60 ; =0x0000FFFF ldreq r0, _0600DF58 ; =0x04808134 streqh r1, [r0] beq _0600DDB0 ldrh r2, [r4, #32] ldr r1, _0600DF58 ; =0x04808134 ldrh r0, [r1] add r0, r2, r0 add r0, r0, #1 strh r0, [r1] _0600DDB0: ldrh r0, [sl, #26] cmp r0, #2 bne _0600DDC4 mov r0, #2 bl WSetPowerState _0600DDC4: ldrh r0, [sl, #8] cmp r0, #64 ; 0x40 movne r1, #1 bne _0600DE14 mov r1, #0 ldrh r0, [sl, #114] ; 0x72 cmp r0, #1 moveq r1, #1 ldrh r0, [sl, #20] cmp r0, #0 beq _0600DE14 ldrh r0, [sl, #118] ; 0x76 cmp r0, #1 beq _0600DE10 cmp r0, #0 bne _0600DE14 ldrh r0, [sl, #116] ; 0x74 cmp r0, #1 bne _0600DE14 _0600DE10: mov r1, #1 _0600DE14: cmp r1, #0 ldrne r1, _0600DF64 ; =0x04808038 ldrneh r0, [r1] orrne r0, r0, #1 strneh r0, [r1] ldreq r1, _0600DF64 ; =0x04808038 ldreqh r0, [r1] biceq r0, r0, #1 streqh r0, [r1] ldr r0, _0600DF68 ; =0x04808118 ldrh r0, [r0] cmp r0, #10 movhi r1, #0 ldrhi r0, _0600DF6C ; =0x04808048 strhih r1, [r0] ldrh r0, [sl, #114] ; 0x72 sub r0, r0, #1 strh r0, [sl, #114] ; 0x72 ldrh r0, [sl, #114] ; 0x72 cmp r0, #0 ldreqh r0, [sl, #112] ; 0x70 streqh r0, [sl, #114] ; 0x72 ldrh r1, [sl, #118] ; 0x76 sub r0, r1, #1 strh r0, [sl, #118] ; 0x76 cmp r1, #0 ldreqh r0, [sl, #116] ; 0x74 subeq r0, r0, #1 streqh r0, [sl, #118] ; 0x76 mov r8, #0 mov r6, #2 mov fp, r8 mov r5, #14 mov r4, #20 _0600DE9C: mul r0, r8, r4 add r7, r9, r0 ldrh r0, [r9, r0] cmp r0, #0 beq _0600DF24 ldr r2, [r7, #12] ldrh r0, [r2, #8] cmp r0, #0 bne _0600DF24 ldr r1, [sl, #168] ; 0xa8 ldrh r0, [r2, #4] sub r0, r1, r0 mov r0, r0, lsl #16 mov r1, r0, lsr #16 ldrh r0, [sl, #140] ; 0x8c cmp r1, r0 bls _0600DEF4 ldr r2, [r7, #8] ldrh r2, [r2, #12] mov r2, r2, lsl #28 movs r2, r2, lsr #30 bne _0600DEFC _0600DEF4: cmp r1, r0, lsl #3 bls _0600DF24 _0600DEFC: mov r0, r8 bl ResetTxqPri ldr r0, [r7, #8] strh r6, [r0] mov r0, fp mov r1, r5 bl AddTask ldrh r0, [r9, #174] ; 0xae add r0, r0, #1 strh r0, [r9, #174] ; 0xae _0600DF24: add r8, r8, #1 cmp r8, #2 bcc _0600DE9C mov r1, #13 ldr r0, _0600DF70 ; =0x048080AE strh r1, [r0] _0600DF3C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600DF48: .word 0x0380FFF4 _0600DF4C: .word 0x0000042C _0600DF50: .word 0x04808010 _0600DF54: .word 0x0380FFF0 _0600DF58: .word 0x04808134 _0600DF5C: .word 0x048080B6 _0600DF60: .word 0x0000FFFF _0600DF64: .word 0x04808038 _0600DF68: .word 0x04808118 _0600DF6C: .word 0x04808048 _0600DF70: .word 0x048080AE arm_func_start FUN_0600DF74 FUN_0600DF74: ; 0x0600DF74 stmdb sp!, {r4, lr} ldr r0, _0600DFF8 ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 mov r1, #32768 ; 0x8000 ldr r0, _0600DFFC ; =0x04808010 strh r1, [r0] ldrh r0, [r4, #8] cmp r0, #64 ; 0x40 bne _0600DFE8 ldrh r0, [r4, #126] ; 0x7e cmp r0, #0 beq _0600DFE8 ldrh r1, [r4, #114] ; 0x72 ldrh r0, [r4, #112] ; 0x70 cmp r1, r0 bne _0600DFE8 ldrh r0, [r4, #128] ; 0x80 add r0, r0, #1 strh r0, [r4, #128] ; 0x80 ldrh r1, [r4, #128] ; 0x80 ldrh r0, [r4, #126] ; 0x7e cmp r1, r0 bls _0600DFE8 mov r0, #0 strh r0, [r4, #128] ; 0x80 mov r0, #1 mov r1, #13 bl AddTask _0600DFE8: mov r0, #1 strh r0, [r4, #16] ldmia sp!, {r4, lr} bx lr _0600DFF8: .word 0x0380FFF4 _0600DFFC: .word 0x04808010 arm_func_start WlIntr WlIntr: ; 0x0600E000 stmdb sp!, {r4, r5, r6, r7, lr} arm_func_start FUN_0600E004 FUN_0600E004: ; 0x0600E004 sub sp, sp, #4 mov r7, #1 ldr r5, _0600E0D8 ; =0x04808010 ldr r4, _0600E0DC ; =0x04808012 _0600E014: ldrh r1, [r5] ldrh r0, [r4] ands r6, r1, r0 beq _0600E0BC ands r0, r6, #128 ; 0x80 beq _0600E030 bl FUN_0600CF38 _0600E030: ands r0, r6, #64 ; 0x40 beq _0600E03C bl FUN_0600CCC4 _0600E03C: ands r0, r6, #32768 ; 0x8000 beq _0600E048 bl FUN_0600DF74 _0600E048: ands r0, r6, #16384 ; 0x4000 beq _0600E054 bl FUN_0600DC78 _0600E054: ands r0, r6, #8192 ; 0x2000 beq _0600E060 bl FUN_0600DBFC _0600E060: ands r0, r6, #2048 ; 0x800 beq _0600E06C bl FUN_0600DBE8 _0600E06C: ands r0, r6, #8 beq _0600E078 bl FUN_0600DA80 _0600E078: ands r0, r6, #4 beq _0600E084 bl FUN_0600D8BC _0600E084: ands r0, r6, #1 beq _0600E090 bl FUN_0600D180 _0600E090: ands r0, r6, #48 ; 0x30 beq _0600E09C bl FUN_0600DBAC _0600E09C: ands r0, r6, #2 beq _0600E0A8 bl FUN_0600D610 _0600E0A8: ands r0, r6, #4096 ; 0x1000 beq _0600E014 mov r0, r7 bl FUN_0600D070 b _0600E014 _0600E0BC: ldr r1, _0600E0E0 ; =0x0380FFF8 ldr r0, [r1] orr r0, r0, #16777216 ; 0x1000000 str r0, [r1] add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600E0D8: .word 0x04808010 _0600E0DC: .word 0x04808012 _0600E0E0: .word 0x0380FFF8 arm_func_start FUN_0600E0E4 FUN_0600E0E4: ; 0x0600E0E4 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0600E154 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 add r1, r5, #34 ; 0x22 bl AllocateHeapBuf cmp r0, #0 moveq r0, #0 beq _0600E14C add r4, r0, #16 add r0, r4, #8 mov r1, r6 add r2, r5, #12 bl DMA_Read sub r0, r5, #24 strh r0, [r4, #6] ldrh r0, [r4, #14] and r1, r0, #255 ; 0xff ldrh r0, [r4, #18] and r0, r0, #255 ; 0xff mov r0, r0, lsl #16 orr r0, r1, r0, lsr #8 strh r0, [r4, #14] mov r0, r4 _0600E14C: ldmia sp!, {r4, r5, r6, lr} bx lr _0600E154: .word 0x0380FFF4 arm_func_start SetParentTbttTxqTask SetParentTbttTxqTask: ; 0x0600E158 stmdb sp!, {r4, lr} ldr r0, _0600E210 ; =0x0380FFF4 ldr r1, [r0] add r4, r1, #380 ; 0x17c ldr r0, _0600E214 ; =0x04808088 ldrh r0, [r0] cmp r0, #0 bne _0600E19C ldrh r0, [r4, #56] ; 0x38 cmp r0, #0 beq _0600E19C mov r1, #8 ldr r0, _0600E218 ; =0x048080AE strh r1, [r0] mov r0, #2 bl TxqPri b _0600E208 _0600E19C: add r0, r1, #1280 ; 0x500 ldrh r1, [r0, #46] ; 0x2e ldrh r0, [r0, #50] ; 0x32 mvn r0, r0 ands r0, r1, r0 bne _0600E1D4 mov r1, #8 ldr r0, _0600E218 ; =0x048080AE strh r1, [r0] ldrh r0, [r4, #56] ; 0x38 cmp r0, #0 beq _0600E1D4 mov r0, #2 bl TxqPri _0600E1D4: mov r1, #5 ldr r0, _0600E218 ; =0x048080AE strh r1, [r0] ldrh r0, [r4, #44] ; 0x2c cmp r0, #0 beq _0600E1F4 mov r0, #1 bl TxqPri _0600E1F4: ldrh r0, [r4, #32] cmp r0, #0 beq _0600E208 mov r0, #0 bl TxqPri _0600E208: ldmia sp!, {r4, lr} bx lr _0600E210: .word 0x0380FFF4 _0600E214: .word 0x04808088 _0600E218: .word 0x048080AE arm_func_start WlIntrMpEndTask WlIntrMpEndTask: ; 0x0600E21C stmdb sp!, {r4, lr} ldr r0, _0600E300 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600E304 ; =0x0000042C add r4, r1, r0 ldrh r0, [r4, #60] ; 0x3c cmp r0, #0 beq _0600E2F8 ldr r0, [r4, #144] ; 0x90 ldrh r1, [r0, #16] ldr r0, [r4, #68] ; 0x44 ldrh r0, [r0, #2] cmp r1, r0 beq _0600E258 bl WlIntrRxEndTask _0600E258: ldr r0, [r4, #68] ; 0x44 ldrh r0, [r0, #4] ands r2, r0, #255 ; 0xff ldreq r0, _0600E300 ; =0x0380FFF4 ldreq r1, [r0] ldreq r0, [r1, #1440] ; 0x5a0 addeq r0, r0, #1 streq r0, [r1, #1440] ; 0x5a0 beq _0600E290 ldr r0, _0600E300 ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #1440] ; 0x5a0 add r0, r0, r2 str r0, [r1, #1440] ; 0x5a0 _0600E290: ldrh r0, [r4, #64] ; 0x40 add r0, r0, #1 strh r0, [r4, #64] ; 0x40 ldr r2, [r4, #144] ; 0x90 ldrh r1, [r2, #16] ldr r0, [r4, #68] ; 0x44 ldrh r0, [r0, #2] eor r0, r1, r0 strh r0, [r2, #18] ldr r0, [r4, #144] ; 0x90 ldrh r0, [r0, #16] strh r0, [r4, #160] ; 0xa0 mov r0, #0 strh r0, [r4, #60] ; 0x3c ldr r0, _0600E300 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #234] ; 0xea cmp r0, #0 beq _0600E2E4 bl WDisableTmpttPowerSave _0600E2E4: ldr r0, _0600E300 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 ldr r1, [r4, #144] ; 0x90 bl SendMessageToWmDirect _0600E2F8: ldmia sp!, {r4, lr} bx lr _0600E300: .word 0x0380FFF4 _0600E304: .word 0x0000042C arm_func_start WlIntrRxEndTask WlIntrRxEndTask: ; 0x0600E308 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #52 ; 0x34 ldr sl, _0600E6B8 ; =0x0380FFF4 ldr r1, [sl] ldr r0, _0600E6BC ; =0x000004DC add r7, r1, r0 add r6, r1, #380 ; 0x17c mov r0, #0 str r0, [sp] str r0, [sp, #12] mov r8, #1 str r0, [sp, #40] ; 0x28 mov r0, #7 str r0, [sp, #36] ; 0x24 ldr r0, [sp] str r0, [sp, #32] str r0, [sp, #24] mov fp, #2 mov r0, #6 str r0, [sp, #28] ldr r0, [sp] str r0, [sp, #16] mov r0, #9 str r0, [sp, #20] ldr r0, [sp] str r0, [sp, #44] ; 0x2c mov r0, #8 str r0, [sp, #8] mov r0, #16 str r0, [sp, #4] _0600E380: ldr r0, _0600E6C0 ; =0x0480805A ldrh r5, [r0] ldrh r0, [r7, #4] cmp r5, r0 beq _0600E6AC ldr r0, _0600E6C4 ; =0x000008C6 cmp r5, r0 bcc _0600E3A4 bl WUpdateCounter _0600E3A4: mov r4, r5, lsl #1 ldr r0, _0600E6C8 ; =0x04804000 add r5, r0, r5, lsl #1 add r0, r5, #2 bl AdjustRingPointer ldrh r9, [r0] add r0, r4, #75497472 ; 0x4800000 add r0, r0, #16384 ; 0x4000 ldrh r1, [r0] ldr r0, _0600E6CC ; =0x0000FFFF cmp r1, r0 ldreq r0, _0600E6C0 ; =0x0480805A streqh r9, [r0] beq _0600E69C add r0, r5, #8 bl AdjustRingPointer ldrh r1, [r0] mov r0, r5 bl FUN_0600E0E4 movs r4, r0 ldr r0, _0600E6C0 ; =0x0480805A strh r9, [r0] bne _0600E428 ldrh r0, [r5] and r0, r0, #15 cmp r0, #12 bne _0600E41C ldr r0, [sp, #4] bl SetFatalErr b _0600E69C _0600E41C: ldr r0, [sp, #8] bl SetFatalErr b _0600E69C _0600E428: ldr r0, [sl] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 beq _0600E44C ldrh r0, [r4, #20] ands r0, r0, #16384 ; 0x4000 ldrne r0, [sp, #12] strneh r0, [r7, #2] _0600E44C: ldrh r1, [r4, #8] mov r9, r8 ands r0, r1, #512 ; 0x200 beq _0600E4A4 ldrh r0, [r4, #20] mov r0, r0, lsl #21 mov r0, r0, lsr #31 cmp r0, #1 beq _0600E480 ldrh r0, [r4, #42] ; 0x2a mov r0, r0, lsl #28 movs r0, r0, lsr #28 beq _0600E644 _0600E480: ldr r9, [sp, #16] add r0, r6, #12 add r1, r6, #108 ; 0x6c sub r2, r4, #16 bl MoveHeapBuf mov r0, fp ldr r1, [sp, #20] bl AddTask b _0600E644 _0600E4A4: and r0, r1, #15 cmp r0, #15 addls pc, pc, r0, lsl #2 b _0600E644 b _0600E540 b _0600E528 b _0600E644 b _0600E644 b _0600E644 b _0600E570 b _0600E644 b _0600E644 b _0600E4F4 b _0600E644 b _0600E644 b _0600E644 b _0600E5C8 b _0600E614 b _0600E5A8 b _0600E5A8 _0600E4F4: ldrh r0, [r4, #20] and r0, r0, #15 cmp r0, #8 bne _0600E644 ldr r9, [sp, #24] add r0, r6, #12 add r1, r6, #72 ; 0x48 sub r2, r4, #16 bl MoveHeapBuf mov r0, fp ldr r1, [sp, #28] bl AddTask b _0600E644 _0600E528: ldrh r0, [r4, #20] cmp r0, #128 ; 0x80 bne _0600E644 mov r0, r4 bl RxBeaconFrame b _0600E644 _0600E540: ldrh r0, [r4, #20] ands r0, r0, #15 bne _0600E644 ldr r9, [sp, #32] add r0, r6, #12 add r1, r6, #96 ; 0x60 sub r2, r4, #16 bl MoveHeapBuf mov r0, r8 ldr r1, [sp, #36] ; 0x24 bl AddTask b _0600E644 _0600E570: ldrh r1, [r4, #20] ldr r0, _0600E6D0 ; =0x0000E7FF and r0, r1, r0 cmp r0, #164 ; 0xa4 bne _0600E644 ldr r9, [sp, #40] ; 0x28 add r0, r6, #12 add r1, r6, #96 ; 0x60 sub r2, r4, #16 bl MoveHeapBuf mov r0, r8 ldr r1, [sp, #36] ; 0x24 bl AddTask b _0600E644 _0600E5A8: ldrh r1, [r4, #20] ldr r0, _0600E6D4 ; =0x0000E7BF and r0, r1, r0 cmp r0, #280 ; 0x118 bne _0600E644 mov r0, r4 bl RxKeyDataFrame b _0600E644 _0600E5C8: ldrh r1, [r4, #20] ldr r0, _0600E6D0 ; =0x0000E7FF and r0, r1, r0 cmp r0, #552 ; 0x228 bne _0600E644 ldr r0, [sl] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #84] ; 0x54 cmp r0, #0 ldreq r0, _0600E6D8 ; =0x0480803C streqh r8, [r0] ldr r1, [sl] ldr r0, [r1, #1452] ; 0x5ac add r0, r0, #1 str r0, [r1, #1452] ; 0x5ac mov r0, r4 bl RxMpFrame mov r9, r0 b _0600E644 _0600E614: ldrh r1, [r4, #20] ldr r0, _0600E6D0 ; =0x0000E7FF and r0, r1, r0 cmp r0, #536 ; 0x218 bne _0600E644 ldr r1, [sl] ldr r0, [r1, #1456] ; 0x5b0 add r0, r0, #1 str r0, [r1, #1456] ; 0x5b0 mov r0, r4 bl RxMpAckFrame mov r9, r0 _0600E644: cmp r9, #0 beq _0600E658 add r0, r6, #12 sub r1, r4, #16 bl ReleaseHeapBuf _0600E658: ldr r0, [sl] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #1 beq _0600E69C ldr r1, [sp, #44] ; 0x2c _0600E670: ldr r0, _0600E6DC ; =0x04805F60 cmp r5, r0 ldrcs r0, [sl] addcs r0, r0, #768 ; 0x300 ldrcsh r0, [r0, #222] ; 0xde subcs r5, r5, r0 ldr r0, _0600E6CC ; =0x0000FFFF strh r0, [r5], #2 add r1, r1, #1 cmp r1, #7 bcc _0600E670 _0600E69C: ldr r0, [sp] add r0, r0, #1 str r0, [sp] b _0600E380 _0600E6AC: add sp, sp, #52 ; 0x34 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600E6B8: .word 0x0380FFF4 _0600E6BC: .word 0x000004DC _0600E6C0: .word 0x0480805A _0600E6C4: .word 0x000008C6 _0600E6C8: .word 0x04804000 _0600E6CC: .word 0x0000FFFF _0600E6D0: .word 0x0000E7FF _0600E6D4: .word 0x0000E7BF _0600E6D8: .word 0x0480803C _0600E6DC: .word 0x04805F60 arm_func_start WlIntrTxEndTask WlIntrTxEndTask: ; 0x0600E6E0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 ldr r0, _0600E8D8 ; =0x0380FFF4 ldr r1, [r0] add sl, r1, #836 ; 0x344 ldr r0, _0600E8DC ; =0x0000042C add r9, r1, r0 mov r8, #2 mov r7, #0 mov r6, #32768 ; 0x8000 mov fp, #3 str r8, [sp] mov r5, r8 mov r4, #1 _0600E718: mov r0, #20 mla r2, r8, r0, r9 mov r3, r8, lsl #2 ldr r0, _0600E8E0 ; =0x048080A0 add r1, r0, r8, lsl #2 add r0, r3, #75497472 ; 0x4800000 add r0, r0, #32768 ; 0x8000 ldrh r0, [r0, #160] ; 0xa0 ands r0, r0, #32768 ; 0x8000 bne _0600E8C4 ldrh r0, [r2] cmp r0, #0 beq _0600E8C4 ldr r3, [r2, #12] cmp r3, #0 beq _0600E8A4 ldr r0, [r2, #8] ldrh r0, [r0] strh r0, [r3, #8] ldr r0, [r2, #8] ldrh r3, [r0, #12] ldr r0, [r2, #12] strh r3, [r0, #20] ldr r3, [r2, #8] ldrh r0, [r3, #12] ands r0, r0, #16384 ; 0x4000 beq _0600E870 ldr r0, _0600E8D8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 beq _0600E854 add ip, r3, #12 ldrh r0, [r3, #10] add r0, ip, r0 sub r0, r0, #7 bic ip, r0, #1 ldrh r0, [ip] cmp r0, #0 bne _0600E854 ldrh r0, [ip, #2] cmp r0, #0 bne _0600E854 ldr r3, [sl, #168] ; 0xa8 ldr r0, [r2, #12] ldrh r0, [r0, #4] sub r0, r3, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 ldr r3, _0600E8E4 ; =0x04808032 strh r7, [r3] strh r6, [r3] ldrh r3, [sl, #186] ; 0xba add r3, r3, #1 strh r3, [sl, #186] ; 0xba ldrh r3, [sl, #140] ; 0x8c cmp r0, r3 bls _0600E83C ldr r0, [r2, #12] strh r5, [r0, #8] ldrh r0, [r2, #4] add r0, r0, #1 strh r0, [r2, #4] ldrh r0, [r9, #174] ; 0xae add r0, r0, #1 strh r0, [r9, #174] ; 0xae ldr r0, [r2, #12] mov r1, r4 ldr r2, [r2, #16] mov lr, pc bx r2 b _0600E8C4 _0600E83C: ldr r0, [r2, #12] strh r7, [r0, #12] ldrh r0, [r1] orr r0, r0, #32768 ; 0x8000 strh r0, [r1] b _0600E8C4 _0600E854: ldr r1, [r2, #12] ldrh r0, [r1, #12] ldrh r3, [r3, #4] and r3, r3, #255 ; 0xff add r0, r0, r3 strh r0, [r1, #12] b _0600E880 _0600E870: ldrh r0, [r3, #4] and r1, r0, #255 ; 0xff ldr r0, [r2, #12] strh r1, [r0, #12] _0600E880: ldrh r0, [r2, #4] add r0, r0, #1 strh r0, [r2, #4] ldr r0, [r2, #12] ldr r1, [sp] ldr r2, [r2, #16] mov lr, pc bx r2 b _0600E8C4 _0600E8A4: ldrh r0, [r2, #4] add r0, r0, #1 strh r0, [r2, #4] ldr r0, [r2, #8] mov r1, fp ldr r2, [r2, #16] mov lr, pc bx r2 _0600E8C4: subs r8, r8, #1 bpl _0600E718 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600E8D8: .word 0x0380FFF4 _0600E8DC: .word 0x0000042C _0600E8E0: .word 0x048080A0 _0600E8E4: .word 0x04808032 arm_func_start WlIntrTxBeaconTask WlIntrTxBeaconTask: ; 0x0600E8E8 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600E938 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #232] ; 0xe8 cmp r0, #0 beq _0600E90C bl UpdateGameInfoElement _0600E90C: ldr r0, _0600E938 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #25 movs r0, r0, lsr #31 beq _0600E92C bl MLME_IssueBeaconSendIndication _0600E92C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600E938: .word 0x0380FFF4 arm_func_start FUN_0600E93C FUN_0600E93C: ; 0x0600E93C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0600EA08 ; =0x0380FFF4 ldr r2, [r0] ldr r1, [r2, #796] ; 0x31c mov r0, #28 mul r0, r6, r0 add r4, r1, r0 ldrh r0, [r1, r0] cmp r0, #0 addeq r0, r2, #1280 ; 0x500 ldreqh r1, [r0, #44] ; 0x2c addeq r1, r1, #1 streqh r1, [r0, #44] ; 0x2c mov r0, #0 mov r1, r4 mov r2, #26 bl FUN_0600055C ldr r0, _0600EA08 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r2, [r0, #52] ; 0x34 mov r1, #1 mvn r1, r1, lsl r6 and r1, r2, r1 strh r1, [r0, #52] ; 0x34 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #0 bl CAM_SetPowerMgtMode mov r0, r6 bl CAM_SetAwake add r0, r4, #4 mov r1, r5 bl WSetMacAdrs1 ldr r0, _0600EA0C ; =0x0000FFFF strh r0, [r4, #20] ldr r0, _0600EA08 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #166] ; 0xa6 strh r0, [r4, #16] ldrh r0, [r4, #26] strh r0, [r4, #24] mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState ldmia sp!, {r4, r5, r6, lr} bx lr _0600EA08: .word 0x0380FFF4 _0600EA0C: .word 0x0000FFFF arm_func_start InitCAM InitCAM: ; 0x0600EA10 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} ldr r0, _0600EA90 ; =0x0380FFF4 ldr r1, [r0] ldr r5, [r1, #796] ; 0x31c ldr r0, _0600EA94 ; =0x0000052C add r4, r1, r0 add r0, r1, #768 ; 0x300 ldrh r9, [r0, #34] ; 0x22 mov sl, #1 mov r8, #0 mov r7, #26 mov r6, #28 b _0600EA58 _0600EA44: mov r0, r8 mla r1, sl, r6, r5 mov r2, r7 bl FUN_0600055C add sl, sl, #1 _0600EA58: cmp sl, r9 bcc _0600EA44 mov r2, #1 strh r2, [r4] mov r1, #0 strh r1, [r4, #2] strh r2, [r4, #4] ldr r0, _0600EA98 ; =0x0000FFFE strh r0, [r4, #6] strh r1, [r4, #12] strh r1, [r4, #8] strh r2, [r4, #14] ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _0600EA90: .word 0x0380FFF4 _0600EA94: .word 0x0000052C _0600EA98: .word 0x0000FFFE arm_func_start InitializeCAM InitializeCAM: ; 0x0600EA9C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _0600EB34 ; =0x0380FFF4 ldr r0, [r0] ldr r5, [r0, #796] ; 0x31c add r0, r0, #768 ; 0x300 ldrh r4, [r0, #34] ; 0x22 mov r0, #0 mov r1, r5 mov r2, #28 mul r2, r4, r2 bl FUN_0600055C mov r0, #0 ldr r1, _0600EB34 ; =0x0380FFF4 ldr r2, [r1] ldr r1, _0600EB38 ; =0x0000052C add r1, r2, r1 mov r2, #16 bl FUN_0600055C ldr r2, _0600EB3C ; =0x0000FFFF strh r2, [r5, #26] mov r3, #1 mov r0, #28 b _0600EB08 _0600EAFC: mla r1, r3, r0, r5 strh r2, [r1, #26] add r3, r3, #1 _0600EB08: cmp r3, r4 bcc _0600EAFC mov r0, #0 ldr r1, _0600EB40 ; =BC_ADRS bl FUN_0600E93C mov r0, #0 mov r1, #64 ; 0x40 bl CAM_SetStaState add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600EB34: .word 0x0380FFF4 _0600EB38: .word 0x0000052C _0600EB3C: .word 0x0000FFFF _0600EB40: .word BC_ADRS arm_func_start CAM_Delete CAM_Delete: ; 0x0600EB44 stmdb sp!, {r4, lr} mov r4, r0 bl DeleteTxFrames mov r3, #0 ldr r2, _0600EB88 ; =0x0380FFF4 ldr r0, [r2] ldr r1, [r0, #796] ; 0x31c mov r0, #28 mul r0, r4, r0 strh r3, [r1, r0] ldr r0, [r2] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #44] ; 0x2c sub r1, r1, #1 strh r1, [r0, #44] ; 0x2c ldmia sp!, {r4, lr} bx lr _0600EB88: .word 0x0380FFF4 arm_func_start CAM_TimerTask CAM_TimerTask: ; 0x0600EB8C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #44 ; 0x2c ldr r0, _0600ED6C ; =0x0380FFF4 ldr sl, [r0] ldr r0, [sl, #796] ; 0x31c add r9, r0, #28 add r0, sl, #1280 ; 0x500 ldrh r6, [r0, #44] ; 0x2c mov r7, #0 mov r8, #1 mov fp, r8 str r7, [sp] str r8, [sp, #4] str r7, [sp, #8] mov r4, #32 str r8, [sp, #20] str r7, [sp, #24] str r8, [sp, #32] str r8, [sp, #16] str r7, [sp, #36] ; 0x24 str r8, [sp, #28] str r8, [sp, #12] b _0600ED50 _0600EBE8: ldrh r0, [r9] cmp r0, #0 beq _0600ED40 ldrh r1, [r9, #24] cmp r1, #0 beq _0600ED3C ldr r0, _0600ED70 ; =0x0000FFFF cmp r1, r0 beq _0600ED3C sub r0, r1, #1 strh r0, [r9, #24] ldrh r0, [r9, #24] cmp r0, #0 bne _0600ED3C ldrh r0, [r9] cmp r0, #32 bcc _0600ED24 mov r0, r8 bl CAM_GetStaState mov r5, r0 mov r0, r8, lsl #16 mov r0, r0, lsr #16 mov r1, r4 bl CAM_SetStaState mov r0, r8 bl DeleteTxFrames add r0, sl, #768 ; 0x300 ldrh r1, [r0, #80] ; 0x50 cmp r1, #1 bne _0600ECD4 cmp r5, #32 bls _0600ED24 ldr r0, _0600ED6C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #52] ; 0x34 orr r1, r1, fp, lsl r8 strh r1, [r0, #52] ; 0x34 mov r0, r8, lsl #16 mov r0, r0, lsr #16 ldr r1, [sp] bl CAM_SetPowerMgtMode mov r0, r8 bl CAM_SetAwake add r0, r9, #4 ldr r1, [sp, #4] ldr r2, [sp, #8] bl MakeDeAuthFrame cmp r0, #0 beq _0600ECC4 ldr r1, [sp, #12] strh r1, [r0] bl TxManCtrlFrame add r7, r7, #1 b _0600ED48 _0600ECC4: add r0, r9, #4 ldr r1, [sp, #16] bl MLME_IssueDeAuthIndication b _0600ED24 _0600ECD4: ldrh r0, [r0, #204] ; 0xcc cmp r8, r0 bne _0600ED24 add r0, r9, #4 ldr r1, [sp, #20] ldr r2, [sp, #24] bl MakeDeAuthFrame cmp r0, #0 beq _0600ED0C ldr r1, [sp, #28] strh r1, [r0] bl TxManCtrlFrame add r7, r7, #1 b _0600ED48 _0600ED0C: mov r0, r4 bl WSetStaState bl WClearAids add r0, r9, #4 ldr r1, [sp, #32] bl MLME_IssueDeAuthIndication _0600ED24: ldr r0, [sp, #36] ; 0x24 strh r0, [r9] add r0, sl, #1280 ; 0x500 ldrh r1, [r0, #44] ; 0x2c sub r1, r1, #1 strh r1, [r0, #44] ; 0x2c _0600ED3C: add r7, r7, #1 _0600ED40: cmp r7, r6 bcs _0600ED60 _0600ED48: add r8, r8, #1 add r9, r9, #28 _0600ED50: add r0, sl, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 cmp r8, r0 bcc _0600EBE8 _0600ED60: add sp, sp, #44 ; 0x2c ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0600ED6C: .word 0x0380FFF4 _0600ED70: .word 0x0000FFFF arm_func_start CAM_ClrTIMElementBitmap CAM_ClrTIMElementBitmap: ; 0x0600ED74 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _0600EE10 ldr r0, _0600EE18 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #216] ; 0xd8 ldr r0, _0600EE1C ; =0x0480425C add r6, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 cmp r5, #0 bne _0600EDD0 add r0, r6, #4 bl WL_ReadByte and r1, r0, #254 ; 0xfe add r0, r6, #4 and r1, r1, #255 ; 0xff bl WL_WriteByte b _0600EE08 _0600EDD0: mov r0, r5 bl CAM_GetAID mov r5, r0 add r0, r6, #5 add r6, r0, r5, lsr #3 mov r0, r6 bl WL_ReadByte mov r2, #1 and r1, r5, #7 mvn r1, r2, lsl r1 and r1, r1, r0 mov r0, r6 and r1, r1, #255 ; 0xff bl WL_WriteByte _0600EE08: mov r0, r4 bl FUN_06009070 _0600EE10: ldmia sp!, {r4, r5, r6, lr} bx lr _0600EE18: .word 0x0380FFF4 _0600EE1C: .word 0x0480425C arm_func_start CAM_SetTIMElementBitmap CAM_SetTIMElementBitmap: ; 0x0600EE20 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _0600EED0 ldr r0, _0600EED8 ; =0x0380FFF4 ldr r2, [r0] add r0, r2, #1280 ; 0x500 ldrh r1, [r0, #52] ; 0x34 mov r0, #1 mov r0, r0, lsl r5 ands r0, r1, r0 bne _0600EED0 add r0, r2, #768 ; 0x300 ldrh r1, [r0, #216] ; 0xd8 ldr r0, _0600EEDC ; =0x0480425C add r6, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 cmp r5, #0 bne _0600EE94 add r0, r6, #4 bl WL_ReadByte orr r1, r0, #1 add r0, r6, #4 and r1, r1, #255 ; 0xff bl WL_WriteByte b _0600EEC8 _0600EE94: mov r0, r5 bl CAM_GetAID mov r5, r0 add r0, r6, #5 add r6, r0, r5, lsr #3 mov r0, r6 bl WL_ReadByte mov r2, #1 and r1, r5, #7 orr r1, r0, r2, lsl r1 mov r0, r6 and r1, r1, #255 ; 0xff bl WL_WriteByte _0600EEC8: mov r0, r4 bl FUN_06009070 _0600EED0: ldmia sp!, {r4, r5, r6, lr} bx lr _0600EED8: .word 0x0380FFF4 _0600EEDC: .word 0x0480425C arm_func_start CAM_GetTbl CAM_GetTbl: ; 0x0600EEE0 ldr r1, _0600EEF8 ; =0x0380FFF4 ldr r1, [r1] ldr r2, [r1, #796] ; 0x31c mov r1, #28 mla r0, r1, r0, r2 bx lr _0600EEF8: .word 0x0380FFF4 arm_func_start CAM_GetFrameCount CAM_GetFrameCount: ; 0x0600EEFC stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0, #22] add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetAID CAM_GetAID: ; 0x0600EF18 stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0, #2] add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetTxRate CAM_GetTxRate: ; 0x0600EF34 stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0, #16] ands r0, r0, #2 movne r0, #20 moveq r0, #10 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetLastSeqCtrl CAM_GetLastSeqCtrl: ; 0x0600EF5C stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0, #20] add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetAuthSeed CAM_GetAuthSeed: ; 0x0600EF78 stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0, #14] add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetMacAdrs CAM_GetMacAdrs: ; 0x0600EF94 stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl add r0, r0, #4 add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_GetPowerMgtMode CAM_GetPowerMgtMode: ; 0x0600EFB0 ldr r1, _0600EFCC ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #1280 ; 0x500 ldrh r1, [r1, #46] ; 0x2e mov r0, r1, asr r0 and r0, r0, #1 bx lr _0600EFCC: .word 0x0380FFF4 arm_func_start CAM_IsActive CAM_IsActive: ; 0x0600EFD0 ldr r1, _0600EFEC ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #1280 ; 0x500 ldrh r1, [r1, #48] ; 0x30 mov r0, r1, asr r0 and r0, r0, #1 bx lr _0600EFEC: .word 0x0380FFF4 arm_func_start CAM_GetStaState CAM_GetStaState: ; 0x0600EFF0 stmfd sp!, {lr} sub sp, sp, #4 bl CAM_GetTbl ldrh r0, [r0] add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start CAM_ReleaseAID CAM_ReleaseAID: ; 0x0600F00C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r1, _0600F07C ; =0x0380FFF4 ldr r5, [r1] bl CAM_ClrTIMElementBitmap mov r0, r6 bl CAM_GetAID movs r4, r0 beq _0600F074 mov r0, r6 bl CAM_GetTbl mov r1, #0 strh r1, [r0, #2] add r0, r5, #1280 ; 0x500 ldrh r2, [r0, #58] ; 0x3a mov r1, #1 mvn r1, r1, lsl r4 and r1, r2, r1 strh r1, [r0, #58] ; 0x3a ldrh r1, [r0, #56] ; 0x38 sub r1, r1, #1 strh r1, [r0, #56] ; 0x38 ldrh r0, [r0, #56] ; 0x38 cmp r0, #0 bne _0600F074 bl WDisableTmpttPowerSave _0600F074: ldmia sp!, {r4, r5, r6, lr} bx lr _0600F07C: .word 0x0380FFF4 arm_func_start CAM_AllocateAID CAM_AllocateAID: ; 0x0600F080 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _0600F128 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600F12C ; =0x0000052C add r6, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 mov r5, #1 mov r2, #2 b _0600F108 _0600F0B4: ldrh r0, [r6, #14] ands r1, r0, r2 bne _0600F100 orr r0, r0, r2 strh r0, [r6, #14] ldrh r0, [r6, #12] add r0, r0, #1 strh r0, [r6, #12] ldrh r0, [r6, #12] cmp r0, #1 bne _0600F0E4 bl WEnableTmpttPowerSave _0600F0E4: mov r0, r7 bl CAM_GetTbl strh r5, [r0, #2] mov r0, r4 bl FUN_06009070 mov r0, r5 b _0600F11C _0600F100: add r5, r5, #1 mov r2, r2, lsl #1 _0600F108: cmp r5, #16 bcc _0600F0B4 mov r0, r4 bl FUN_06009070 mov r0, #0 _0600F11C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600F128: .word 0x0380FFF4 _0600F12C: .word 0x0000052C arm_func_start CAM_UpdateLifeTime CAM_UpdateLifeTime: ; 0x0600F130 mov r1, #28 ldr r2, _0600F150 ; =0x0380FFF4 ldr r2, [r2] ldr r2, [r2, #796] ; 0x31c mla r1, r0, r1, r2 ldrh r0, [r1, #26] strh r0, [r1, #24] bx lr _0600F150: .word 0x0380FFF4 arm_func_start CAM_SetAuthSeed CAM_SetAuthSeed: ; 0x0600F154 stmdb sp!, {r4, lr} mov r4, r1 bl CAM_GetTbl strh r4, [r0, #14] ldmia sp!, {r4, lr} bx lr arm_func_start CAM_SetLastSeqCtrl CAM_SetLastSeqCtrl: ; 0x0600F16C stmdb sp!, {r4, lr} mov r4, r1 bl CAM_GetTbl strh r4, [r0, #20] ldmia sp!, {r4, lr} bx lr arm_func_start CAM_SetSupRate CAM_SetSupRate: ; 0x0600F184 stmdb sp!, {r4, lr} mov r4, r1 bl CAM_GetTbl strh r4, [r0, #16] ldmia sp!, {r4, lr} bx lr arm_func_start CAM_SetCapaInfo CAM_SetCapaInfo: ; 0x0600F19C stmdb sp!, {r4, lr} mov r4, r1 bl CAM_GetTbl strh r4, [r0, #12] ldmia sp!, {r4, lr} bx lr arm_func_start CAM_SetAwake CAM_SetAwake: ; 0x0600F1B4 ldr r1, _0600F1D4 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #1280 ; 0x500 ldrh r3, [r1, #48] ; 0x30 mov r2, #1 orr r0, r3, r2, lsl r0 strh r0, [r1, #48] ; 0x30 bx lr _0600F1D4: .word 0x0380FFF4 arm_func_start CAM_SetDoze CAM_SetDoze: ; 0x0600F1D8 stmdb sp!, {r4, lr} mov r4, r0 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _0600F20C ldr r0, _0600F214 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r2, [r0, #48] ; 0x30 mov r1, #1 mvn r1, r1, lsl r4 and r1, r2, r1 strh r1, [r0, #48] ; 0x30 _0600F20C: ldmia sp!, {r4, lr} bx lr _0600F214: .word 0x0380FFF4 arm_func_start CAM_SetPowerMgtMode CAM_SetPowerMgtMode: ; 0x0600F218 ldr r2, _0600F26C ; =0x0380FFF4 ldr r3, [r2] ldr r2, _0600F270 ; =0x0000052C add ip, r3, r2 ldrh r3, [ip, #2] mov r2, #1 mvn r2, r2, lsl r0 and r2, r3, r2 orr r0, r2, r1, lsl r0 strh r0, [ip, #2] ldrh r1, [ip, #2] ldrh r0, [ip, #6] mvn r0, r0 ands r0, r1, r0 movne r1, #8 ldrne r0, _0600F274 ; =0x048080AC strneh r1, [r0] moveq r1, #8 ldreq r0, _0600F278 ; =0x048080AE streqh r1, [r0] bx lr _0600F26C: .word 0x0380FFF4 _0600F270: .word 0x0000052C _0600F274: .word 0x048080AC _0600F278: .word 0x048080AE arm_func_start CAM_SetRSSI CAM_SetRSSI: ; 0x0600F27C stmdb sp!, {r4, lr} mov r4, r1 bl CAM_GetTbl strh r4, [r0, #10] ldmia sp!, {r4, lr} bx lr arm_func_start CAM_SetStaState CAM_SetStaState: ; 0x0600F294 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 cmp r5, #64 ; 0x40 bcs _0600F308 mov r0, r6 bl CAM_SetAwake ldr r3, _0600F35C ; =0x0380FFF4 ldr r0, [r3] add r0, r0, #1280 ; 0x500 ldrh r2, [r0, #50] ; 0x32 mov r1, #1 orr r1, r2, r1, lsl r6 strh r1, [r0, #50] ; 0x32 ldr r0, [r3] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _0600F340 mov r0, r6 bl CAM_GetAID cmp r0, #0 beq _0600F340 mov r0, r6 bl CAM_ReleaseAID b _0600F340 _0600F308: ldr r0, _0600F35C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r2, [r0, #50] ; 0x32 mov r1, #1 mvn r1, r1, lsl r6 and r1, r2, r1 strh r1, [r0, #50] ; 0x32 mov r0, r6 bl CAM_GetPowerMgtMode cmp r0, #0 beq _0600F340 mov r0, r6 bl CAM_SetDoze _0600F340: mov r0, r6 bl CAM_GetTbl strh r5, [r0] mov r0, r4 bl FUN_06009070 ldmia sp!, {r4, r5, r6, lr} bx lr _0600F35C: .word 0x0380FFF4 arm_func_start CAM_DecFrameCount CAM_DecFrameCount: ; 0x0600F360 stmdb sp!, {r4, r5, r6, lr} ldrh r4, [r0, #2] mov r0, r4 bl CAM_GetTbl mov r6, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r5, r0 ldr r0, _0600F3C8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _0600F3AC ldrh r0, [r6, #22] cmp r0, #1 bne _0600F3AC mov r0, r4 bl CAM_ClrTIMElementBitmap _0600F3AC: ldrh r0, [r6, #22] sub r0, r0, #1 strh r0, [r6, #22] mov r0, r5 bl FUN_06009070 ldmia sp!, {r4, r5, r6, lr} bx lr _0600F3C8: .word 0x0380FFF4 arm_func_start CAM_IncFrameCount CAM_IncFrameCount: ; 0x0600F3CC stmdb sp!, {r4, r5, r6, lr} ldrh r4, [r0, #2] mov r0, r4 bl CAM_GetTbl mov r6, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r5, r0 ldr r0, _0600F458 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _0600F418 ldrh r0, [r6, #22] cmp r0, #0 bne _0600F418 mov r0, r4 bl CAM_SetTIMElementBitmap _0600F418: ldrh r0, [r6, #22] add r0, r0, #1 strh r0, [r6, #22] mov r0, r5 bl FUN_06009070 ldr r0, _0600F458 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #52] ; 0x34 mov r0, #1 mov r0, r0, lsl r4 ands r0, r1, r0 ldreqh r0, [r6, #26] streqh r0, [r6, #24] ldmia sp!, {r4, r5, r6, lr} bx lr _0600F458: .word 0x0380FFF4 arm_func_start CAM_AddBcFrame CAM_AddBcFrame: ; 0x0600F45C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r0, _0600F4BC ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #428 ; 0x1ac mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 ldrh r0, [r5, #8] cmp r0, #0 bne _0600F498 mov r0, #0 bl CAM_SetTIMElementBitmap _0600F498: mov r0, r7 mov r1, r5 mov r2, r6 bl MoveHeapBuf mov r0, r4 bl FUN_06009070 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600F4BC: .word 0x0380FFF4 arm_func_start CAM_SearchAdd CAM_SearchAdd: ; 0x0600F4C0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} mov r9, r0 ldr sl, _0600F604 ; =0x0380FFF4 ldr r0, [sl] add r8, r0, #796 ; 0x31c ldrh r1, [r9] ands r1, r1, #1 movne r0, #0 bne _0600F5FC add r1, r0, #1280 ; 0x500 ldrh r1, [r1, #44] ; 0x2c cmp r1, #1 bls _0600F574 ldr r1, [r8] add r7, r1, #28 mov r4, #0 mov r5, r4 mov r6, #1 b _0600F55C _0600F50C: ldrh r1, [r7] cmp r1, #0 beq _0600F54C add r0, r7, #4 mov r1, r9 bl MatchMacAdrs cmp r0, #0 movne r0, r6 bne _0600F5FC add r5, r5, #1 ldr r0, [sl] add r1, r0, #1280 ; 0x500 ldrh r1, [r1, #44] ; 0x2c cmp r5, r1 bcc _0600F554 b _0600F568 _0600F54C: cmp r4, #0 moveq r4, r6 _0600F554: add r6, r6, #1 add r7, r7, #28 _0600F55C: ldrh r1, [r8, #6] cmp r6, r1 bcc _0600F50C _0600F568: cmp r4, #0 movne r6, r4 b _0600F578 _0600F574: mov r6, #1 _0600F578: add r0, r0, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 cmp r6, r0 bcc _0600F5EC ldr r4, [r8] mov r7, #65536 ; 0x10000 mov r3, #1 mov r6, #0 ldrh r5, [r8, #6] mov r0, #28 b _0600F5D8 _0600F5A4: mul r1, r3, r0 add r2, r4, r1 ldrh r1, [r4, r1] cmp r1, #48 ; 0x30 bcs _0600F5D4 ldrh r1, [r2, #22] cmp r1, #0 bne _0600F5D4 ldrh r1, [r2, #24] cmp r7, r1 movhi r7, r1 movhi r6, r3 _0600F5D4: add r3, r3, #1 _0600F5D8: cmp r3, r5 bcc _0600F5A4 cmp r6, #0 moveq r0, #255 ; 0xff beq _0600F5FC _0600F5EC: mov r0, r6 mov r1, r9 bl FUN_0600E93C mov r0, r6 _0600F5FC: ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _0600F604: .word 0x0380FFF4 arm_func_start CAM_Search CAM_Search: ; 0x0600F608 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r8, r0 ldrh r0, [r8] ands r0, r0, #1 movne r0, #0 bne _0600F6A4 ldr r4, _0600F6AC ; =0x0380FFF4 ldr r0, [r4] add r1, r0, #1280 ; 0x500 ldrh r1, [r1, #44] ; 0x2c cmp r1, #1 bls _0600F6A0 ldr r1, [r0, #796] ; 0x31c add r7, r1, #28 mov r5, #0 mov r6, #1 b _0600F690 _0600F64C: ldrh r1, [r7] cmp r1, #0 beq _0600F688 add r0, r7, #4 mov r1, r8 bl MatchMacAdrs cmp r0, #0 movne r0, r6 bne _0600F6A4 add r5, r5, #1 ldr r0, [r4] add r1, r0, #1280 ; 0x500 ldrh r1, [r1, #44] ; 0x2c cmp r5, r1 bcs _0600F6A0 _0600F688: add r6, r6, #1 add r7, r7, #28 _0600F690: add r1, r0, #768 ; 0x300 ldrh r1, [r1, #34] ; 0x22 cmp r6, r1 bcc _0600F64C _0600F6A0: mov r0, #255 ; 0xff _0600F6A4: ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _0600F6AC: .word 0x0380FFF4 _0600F6B0: mov r2, #0 arm_func_start FUN_0600F6B4 FUN_0600F6B4: ; 0x0600F6B4 ldr r1, _0600F6E0 ; =0x04808180 b _0600F6D0 _0600F6BC: ldrh r0, [r1] ands r0, r0, #1 moveq r0, #0 bxeq lr add r2, r2, #1 _0600F6D0: cmp r2, #10240 ; 0x2800 bcc _0600F6BC mov r0, #1 bx lr _0600F6E0: .word 0x04808180 arm_func_start WaitLoop_BbpAccess WaitLoop_BbpAccess: ; 0x0600F6E4 mov r2, #0 ldr r1, _0600F714 ; =0x0480815E b _0600F704 _0600F6F0: ldrh r0, [r1] ands r0, r0, #1 moveq r0, #0 bxeq lr add r2, r2, #1 _0600F704: cmp r2, #10240 ; 0x2800 bcc _0600F6F0 mov r0, #1 bx lr _0600F714: .word 0x0480815E arm_func_start WaitLoop_ClrAid WaitLoop_ClrAid: ; 0x0600F718 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, #1 ldr r1, _0600F790 ; =0x04808028 ldr r2, _0600F794 ; =0x04808214 ldr lr, _0600F798 ; =0x04000208 mov ip, #0 ldr r3, _0600F79C ; =0x0480819C b _0600F77C _0600F73C: ldrh r5, [lr] strh ip, [lr] ldrh r0, [r3] and r0, r0, #3 cmp r0, #3 beq _0600F774 ldrh r0, [r2] cmp r0, #5 beq _0600F774 cmp r0, #7 beq _0600F774 cmp r0, #8 strneh ip, [r1] movne r4, ip _0600F774: ldrh r0, [lr] strh r5, [lr] _0600F77C: cmp r4, #0 bne _0600F73C add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600F790: .word 0x04808028 _0600F794: .word 0x04808214 _0600F798: .word 0x04000208 _0600F79C: .word 0x0480819C arm_func_start WaitLoop_Waitus WaitLoop_Waitus: ; 0x0600F7A0 stmdb sp!, {r4, lr} arm_func_start FUN_0600F7A4 FUN_0600F7A4: ; 0x0600F7A4 sub sp, sp, #8 mov r4, r1 mov r1, #1 str r1, [sp, #4] mov r3, #0 ldr r1, _0600F820 ; =0x000082EA umull ip, r2, r0, r1 mla r2, r0, r3, r2 mla r2, r3, r1, r2 mov r1, r2, lsr #6 mov r0, ip, lsr #6 orr r0, r0, r2, lsl #26 mov r2, #1000 ; 0x3e8 bl FUN_06009EDC mov r3, r0 mov r2, r1 add r0, sp, #4 str r0, [sp] ldr r0, _0600F824 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0600F828 ; =0x00000634 add r0, r1, r0 mov r1, r3 mov r3, r4 bl FUN_0600144C _0600F808: ldr r0, [sp, #4] cmp r0, #0 bne _0600F808 add sp, sp, #8 ldmia sp!, {r4, lr} bx lr _0600F820: .word 0x000082EA _0600F824: .word 0x0380FFF4 _0600F828: .word 0x00000634 arm_func_start WaitLoop_Rxpe WaitLoop_Rxpe: ; 0x0600F82C mov r2, #4000 ; 0xfa0 ldr r1, _0600F854 ; =0x0480819C b _0600F848 _0600F838: ldrh r0, [r1] ands r0, r0, #128 ; 0x80 bxne lr sub r2, r2, #1 _0600F848: cmp r2, #0 bne _0600F838 bx lr _0600F854: .word 0x0480819C arm_func_start InitializeCmdIf InitializeCmdIf: ; 0x0600F858 mov r1, #0 ldr r0, _0600F870 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r1, [r0, #40] ; 0x28 bx lr _0600F870: .word 0x0380FFF4 arm_func_start SendMessageToWmTask SendMessageToWmTask: ; 0x0600F874 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r6, _0600F8D8 ; =0x0380FFF4 ldr r0, [r6] ldr r7, [r0, #500] ; 0x1f4 mov r5, #0 mvn r4, #0 b _0600F8C4 _0600F894: ldr r0, [r0, #772] ; 0x304 mov r1, r7 mov r2, r5 bl FUN_060006F8 cmp r0, #0 beq _0600F8CC ldr r0, [r6] add r0, r0, #500 ; 0x1f4 mov r1, r7 bl DeleteHeapBuf ldr r0, [r6] ldr r7, [r0, #500] ; 0x1f4 _0600F8C4: cmp r7, r4 bne _0600F894 _0600F8CC: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600F8D8: .word 0x0380FFF4 arm_func_start SendMessageToWmDirect SendMessageToWmDirect: ; 0x0600F8DC stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldr r2, _0600F968 ; =0x0380FFF4 ldr r3, [r2] add r2, r3, #256 ; 0x100 ldrh r2, [r2, #252] ; 0xfc cmp r2, #0 beq _0600F920 add r1, r3, #500 ; 0x1f4 mov r2, r4 bl MoveHeapBuf mov r0, #2 mov r1, #19 bl AddTask b _0600F95C _0600F920: ldr r0, [r3, #772] ; 0x304 mov r2, #0 bl FUN_060006F8 cmp r0, #0 beq _0600F944 mov r0, r5 mov r1, r4 bl DeleteHeapBuf b _0600F95C _0600F944: mov r0, r5 ldr r1, _0600F968 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #500 ; 0x1f4 mov r2, r4 bl MoveHeapBuf _0600F95C: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600F968: .word 0x0380FFF4 arm_func_start CMD_ReservedReqCmd CMD_ReservedReqCmd: ; 0x0600F96C mov r0, #3 bx lr arm_func_start RequestCmdTask RequestCmdTask: ; 0x0600F974 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r1, _0600FC68 ; =0x0380FFF4 ldr r3, [r1] ldr r0, _0600FC6C ; =0x00000424 add r6, r3, r0 mov r2, #0 mov r4, r2 ldrh r0, [r6, #4] cmp r0, #0 bne _0600FC5C ldr r0, [r3, #512] ; 0x200 str r0, [r6] ldr r0, [r6] mvn r3, #0 cmp r0, r3 beq _0600FC5C ldrh r3, [r0, #14] add r3, r0, r3, lsl #1 add r5, r3, #16 ldr r1, [r1] add lr, r1, #768 ; 0x300 ldrh r1, [lr, #62] ; 0x3e cmp r1, #0 movne r0, #1 strneh r0, [r5, #2] movne r0, #6 strneh r0, [r5, #4] bne _0600FC14 ldrh r3, [r0, #12] ldrh r1, [r5] cmp r3, r1 movne r0, #13 strneh r0, [r5, #4] bne _0600FC14 and r1, r3, #65280 ; 0xff00 cmp r1, #256 ; 0x100 bgt _0600FA20 cmp r1, #256 ; 0x100 bge _0600FA78 cmp r1, #0 beq _0600FA40 b _0600FB74 _0600FA20: cmp r1, #512 ; 0x200 bgt _0600FA34 cmp r1, #512 ; 0x200 beq _0600FAA0 b _0600FB74 _0600FA34: cmp r1, #768 ; 0x300 beq _0600FB58 b _0600FB74 _0600FA40: mov r4, #1 ldr ip, _0600FC70 ; =_06019730 and r1, r3, #255 ; 0xff mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #11 ldrh r1, [r6, #4] ands r1, r1, #1 movne r2, #2 bne _0600FB7C ldrh r1, [lr, #76] ; 0x4c cmp r1, #32 movcc r2, r4 b _0600FB7C _0600FA78: mov r4, #2 ldr ip, _0600FC74 ; =_060196A8 and r1, r3, #255 ; 0xff mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #5 ldrh r1, [lr, #76] ; 0x4c cmp r1, #64 ; 0x40 movne r2, #1 b _0600FB7C _0600FAA0: and r1, r3, #255 ; 0xff mov r1, r1, lsl #16 mov r3, r1, lsr #16 cmp r3, #64 ; 0x40 bcs _0600FAD0 ldrh r1, [lr, #76] ; 0x4c cmp r1, #16 movcc r2, #1 mov r4, #4 ldr ip, _0600FC78 ; =_06019898 mov r7, #23 b _0600FB7C _0600FAD0: cmp r3, #128 ; 0x80 bcs _0600FB00 ldrh r1, [lr, #76] ; 0x4c cmp r1, #64 ; 0x40 movne r2, #1 mov r4, #8 ldr ip, _0600FC7C ; =_06019700 sub r1, r3, #64 ; 0x40 mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #6 b _0600FB7C _0600FB00: cmp r3, #192 ; 0xc0 bcs _0600FB30 ldrh r1, [lr, #76] ; 0x4c cmp r1, #16 movcc r2, #1 mov r4, #16 ldr ip, _0600FC80 ; =_060197E0 sub r1, r3, #128 ; 0x80 mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #23 b _0600FB7C _0600FB30: ldrh r1, [lr, #76] ; 0x4c cmp r1, #16 movcc r2, #1 mov r4, #32 ldr ip, _0600FC84 ; =_060196D0 sub r1, r3, #192 ; 0xc0 mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #6 b _0600FB7C _0600FB58: mov r4, #64 ; 0x40 ldr ip, _0600FC88 ; =_06019788 and r1, r3, #255 ; 0xff mov r1, r1, lsl #16 mov r3, r1, lsr #16 mov r7, #11 b _0600FB7C _0600FB74: mov r3, #1 mov r7, #0 _0600FB7C: cmp r3, r7 movhi r2, #3 bhi _0600FBB4 ldrh lr, [r0, #14] mov r7, r3, lsl #3 ldrh r1, [ip, r7] cmp lr, r1 bcc _0600FBB0 ldrh lr, [r5, #2] add r1, ip, r7 ldrh r1, [r1, #2] cmp lr, r1 bcs _0600FBB4 _0600FBB0: mov r2, #4 _0600FBB4: cmp r2, #0 movne r0, #1 strneh r0, [r5, #2] strneh r2, [r5, #4] bne _0600FC14 ldrh r1, [r6, #4] orr r1, r1, r4 strh r1, [r6, #4] mov r1, r5 add r2, ip, r3, lsl #3 ldr r2, [r2, #4] mov lr, pc bx r2 strh r0, [r5, #4] ldrh r0, [r5, #4] cmp r0, #128 ; 0x80 beq _0600FC5C cmp r0, #129 ; 0x81 bne _0600FC14 ldrh r1, [r6, #4] mvn r0, r4 and r0, r1, r0 strh r0, [r6, #4] b _0600FC38 _0600FC14: ldrh r1, [r6, #4] mvn r0, r4 and r0, r1, r0 strh r0, [r6, #4] ldr r0, _0600FC68 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #512 ; 0x200 ldr r1, [r6] bl SendMessageToWmDirect _0600FC38: ldr r0, _0600FC68 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #512 ; 0x200 ldrh r0, [r0, #8] cmp r0, #0 beq _0600FC5C mov r0, #2 mov r1, #11 bl AddTask _0600FC5C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600FC68: .word 0x0380FFF4 _0600FC6C: .word 0x00000424 _0600FC70: .word _06019730 _0600FC74: .word _060196A8 _0600FC78: .word _06019898 _0600FC7C: .word _06019700 _0600FC80: .word _060197E0 _0600FC84: .word _060196D0 _0600FC88: .word _06019788 arm_func_start InitializeMLME InitializeMLME: ; 0x0600FC8C mov r0, #0 ldr r1, _0600FCAC ; =0x0380FFF4 ldr r2, [r1] ldr r1, _0600FCB0 ; =0x00000404 add r1, r2, r1 mov r2, #32 ldr ip, _0600FCB4 ; =MIi_CpuClear16 bx ip _0600FCAC: .word 0x0380FFF4 _0600FCB0: .word 0x00000404 _0600FCB4: .word MIi_CpuClear16 arm_func_start MLME_IssueBeaconRecvIndication MLME_IssueBeaconRecvIndication: ; 0x0600FCB8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r6, r0 ldr r0, _0600FDE0 ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 add r0, r1, #392 ; 0x188 add r1, r1, #768 ; 0x300 ldrh r1, [r1, #228] ; 0xe4 add r1, r1, #62 ; 0x3e bl AllocateHeapBuf movs r4, r0 bne _0600FCFC mov r0, #1 bl SetFatalErr mov r0, #0 b _0600FDD4 _0600FCFC: mov r0, #141 ; 0x8d strh r0, [r4, #12] ldrh r0, [r5, #160] ; 0xa0 add r0, r0, #1 mov r1, #2 bl FUN_06001840 add r0, r0, #22 strh r0, [r4, #14] add r0, r4, #31 ldrh r1, [r6, #18] and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r4, #30 ldrh r1, [r6, #14] and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r4, #46 ; 0x2e add r1, r6, #30 bl WSetMacAdrs1 ldrh r0, [r5, #160] ; 0xa0 strh r0, [r4, #22] ldrh r2, [r4, #22] cmp r2, #0 beq _0600FDBC ldrh r0, [r5, #162] ; 0xa2 ands r0, r0, #1 beq _0600FDAC ldr r0, [r5, #156] ; 0x9c add r6, r0, #1 add r5, r4, #60 ; 0x3c mov r7, #0 b _0600FD9C _0600FD7C: mov r0, r6 bl WL_ReadByte mov r1, r0 mov r0, r5 bl WL_WriteByte add r6, r6, #1 add r5, r5, #1 add r7, r7, #1 _0600FD9C: ldrh r0, [r4, #22] cmp r7, r0 bcc _0600FD7C b _0600FDBC _0600FDAC: ldr r0, [r5, #156] ; 0x9c add r1, r4, #60 ; 0x3c add r2, r2, #1 bl FUN_06000EA0 _0600FDBC: ldr r0, _0600FDE0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _0600FDD4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0600FDE0: .word 0x0380FFF4 arm_func_start MLME_IssueBeaconSendIndication MLME_IssueBeaconSendIndication: ; 0x0600FDE4 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0600FE48 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #16 bl AllocateHeapBuf movs r1, r0 bne _0600FE18 mov r0, #1 bl SetFatalErr mov r0, #0 b _0600FE3C _0600FE18: mov r0, #140 ; 0x8c strh r0, [r1, #12] mov r0, #0 strh r0, [r1, #14] ldr r0, _0600FE48 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 bl SendMessageToWmDirect mov r0, #1 _0600FE3C: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0600FE48: .word 0x0380FFF4 arm_func_start MLME_IssueBeaconLostIndication MLME_IssueBeaconLostIndication: ; 0x0600FE4C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _0600FEC4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #22 bl AllocateHeapBuf movs r4, r0 bne _0600FE84 mov r0, #1 bl SetFatalErr mov r0, #0 b _0600FEB8 _0600FE84: mov r0, #139 ; 0x8b strh r0, [r4, #12] mov r0, #3 strh r0, [r4, #14] add r0, r4, #16 mov r1, r5 bl WSetMacAdrs1 ldr r0, _0600FEC4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _0600FEB8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0600FEC4: .word 0x0380FFF4 arm_func_start MLME_IssueDisAssIndication MLME_IssueDisAssIndication: ; 0x0600FEC8 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0600FF40 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #24 bl AllocateHeapBuf movs r4, r0 bne _0600FF00 mov r0, #1 bl SetFatalErr mov r0, #0 b _0600FF38 _0600FF00: mov r0, #136 ; 0x88 strh r0, [r4, #12] mov r0, #4 strh r0, [r4, #14] add r0, r4, #16 mov r1, r6 bl WSetMacAdrs1 strh r5, [r4, #22] ldr r0, _0600FF40 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _0600FF38: ldmia sp!, {r4, r5, r6, lr} bx lr _0600FF40: .word 0x0380FFF4 arm_func_start MLME_IssueReAssIndication MLME_IssueReAssIndication: ; 0x0600FF44 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 ldr r0, _06010030 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #58 ; 0x3a bl AllocateHeapBuf movs r4, r0 bne _0600FF84 mov r0, #1 bl SetFatalErr mov r0, #0 b _06010024 _0600FF84: mov r0, #135 ; 0x87 strh r0, [r4, #12] mov r0, #21 strh r0, [r4, #14] add r0, r4, #16 mov r1, r7 bl WSetMacAdrs1 strh r6, [r4, #22] add r0, r5, #1 bl WL_ReadByte strh r0, [r4, #24] mov r7, #0 add r6, r5, #2 add r5, r4, #26 b _0600FFE0 _0600FFC0: cmp r7, #32 bcs _06010004 add r0, r6, r7 bl WL_ReadByte mov r1, r0 add r0, r5, r7 bl WL_WriteByte add r7, r7, #1 _0600FFE0: ldrh r0, [r4, #24] cmp r7, r0 bcc _0600FFC0 b _06010004 _0600FFF0: add r0, r4, #26 add r0, r0, r7 mov r1, #0 bl WL_WriteByte add r7, r7, #1 _06010004: cmp r7, #32 bcc _0600FFF0 ldr r0, _06010030 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _06010024: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06010030: .word 0x0380FFF4 arm_func_start MLME_IssueAssIndication MLME_IssueAssIndication: ; 0x06010034 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 mov r5, r2 ldr r0, _06010128 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #58 ; 0x3a bl AllocateHeapBuf movs r4, r0 bne _06010074 mov r0, #1 bl SetFatalErr mov r0, #0 b _0601011C _06010074: mov r0, #134 ; 0x86 strh r0, [r4, #12] mov r0, #21 strh r0, [r4, #14] add r0, r4, #16 mov r1, r7 bl WSetMacAdrs1 ldr r0, _0601012C ; =0x00000FFF and r0, r6, r0 strh r0, [r4, #22] add r0, r5, #1 bl WL_ReadByte strh r0, [r4, #24] mov r7, #0 add r6, r5, #2 add r5, r4, #26 b _060100D8 _060100B8: cmp r7, #32 bcs _060100FC add r0, r6, r7 bl WL_ReadByte mov r1, r0 add r0, r5, r7 bl WL_WriteByte add r7, r7, #1 _060100D8: ldrh r0, [r4, #24] cmp r7, r0 bcc _060100B8 b _060100FC _060100E8: add r0, r4, #26 add r0, r0, r7 mov r1, #0 bl WL_WriteByte add r7, r7, #1 _060100FC: cmp r7, #32 bcc _060100E8 ldr r0, _06010128 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _0601011C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06010128: .word 0x0380FFF4 _0601012C: .word 0x00000FFF arm_func_start MLME_IssueDeAuthIndication MLME_IssueDeAuthIndication: ; 0x06010130 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _060101A8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #24 bl AllocateHeapBuf movs r4, r0 bne _06010168 mov r0, #1 bl SetFatalErr mov r0, #0 b _060101A0 _06010168: mov r0, #133 ; 0x85 strh r0, [r4, #12] mov r0, #4 strh r0, [r4, #14] add r0, r4, #16 mov r1, r6 bl WSetMacAdrs1 strh r5, [r4, #22] ldr r0, _060101A8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _060101A0: ldmia sp!, {r4, r5, r6, lr} bx lr _060101A8: .word 0x0380FFF4 arm_func_start MLME_IssueAuthIndication MLME_IssueAuthIndication: ; 0x060101AC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _06010224 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #24 bl AllocateHeapBuf movs r4, r0 bne _060101E4 mov r0, #1 bl SetFatalErr mov r0, #0 b _0601021C _060101E4: mov r0, #132 ; 0x84 strh r0, [r4, #12] mov r0, #4 strh r0, [r4, #14] add r0, r4, #16 mov r1, r6 bl WSetMacAdrs1 strh r5, [r4, #22] ldr r0, _06010224 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, r4 bl SendMessageToWmDirect mov r0, #1 _0601021C: ldmia sp!, {r4, r5, r6, lr} bx lr _06010224: .word 0x0380FFF4 arm_func_start IssueMlmeConfirm IssueMlmeConfirm: ; 0x06010228 stmdb sp!, {r4, lr} ldr r0, _06010278 ; =0x0380FFF4 ldr r2, [r0] add r4, r2, #380 ; 0x17c ldr r0, _0601027C ; =0x00000424 add r1, r2, r0 ldrh r0, [r1, #4] bic r0, r0, #1 strh r0, [r1, #4] add r0, r4, #132 ; 0x84 ldr r1, [r2, #1060] ; 0x424 bl SendMessageToWmDirect ldrh r0, [r4, #140] ; 0x8c cmp r0, #0 beq _06010270 mov r0, #2 mov r1, #11 bl AddTask _06010270: ldmia sp!, {r4, lr} bx lr _06010278: .word 0x0380FFF4 _0601027C: .word 0x00000424 arm_func_start MLME_BeaconLostTask MLME_BeaconLostTask: ; 0x06010280 ldr r0, _06010298 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0601029C ; =0x000003C6 add r0, r1, r0 ldr ip, _060102A0 ; =MLME_IssueBeaconLostIndication bx ip _06010298: .word 0x0380FFF4 _0601029C: .word 0x000003C6 _060102A0: .word MLME_IssueBeaconLostIndication arm_func_start FUN_060102A4 FUN_060102A4: ; 0x060102A4 mov r1, #131 ; 0x83 ldr r0, _060102C8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r1, [r0, #4] mov r0, #2 mov r1, #5 ldr ip, _060102CC ; =AddTask bx ip _060102C8: .word 0x0380FFF4 _060102CC: .word AddTask arm_func_start MLME_MeasChannelTask MLME_MeasChannelTask: ; 0x060102D0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06010544 ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 ldr r0, _06010548 ; =0x00000404 add r4, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] sub r0, r0, #128 ; 0x80 cmp r0, #4 addls pc, pc, r0, lsl #2 b _06010520 b _06010318 b _06010358 b _06010418 b _06010440 b _060104B0 _06010318: mov r0, #0 strh r0, [r4, #20] mov r0, #19 bl BBP_Read strh r0, [r4, #14] mov r0, #53 ; 0x35 bl BBP_Read strh r0, [r4, #16] ldr r1, [r4, #24] ldrh r0, [r1, #18] ldrh r1, [r1, #20] bl WSetCCA_ED mov r0, #4 strh r0, [r5, #12] mov r0, #0 strh r0, [r4, #22] _06010358: mov r0, #0 str r0, [r4, #4] str r0, [r4, #8] ldr r0, [r4, #24] add r1, r0, #24 ldrh r0, [r4, #20] add r0, r1, r0 bl WL_ReadByte movs r5, r0 beq _0601038C ldrh r0, [r4, #20] cmp r0, #16 bcc _06010398 _0601038C: mov r0, #132 ; 0x84 strh r0, [r4] b _06010520 _06010398: mov r0, #0 bl FLASH_VerifyCheckSum cmp r0, #0 movne r0, #14 strneh r0, [r4, #22] movne r0, #132 ; 0x84 strneh r0, [r4] bne _06010520 ldrh r0, [r4] cmp r0, #128 ; 0x80 bne _060103F0 mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, #0 bl WSetChannel bl WStart ldr r0, _0601054C ; =0x04808040 ldrh r0, [r0] strh r0, [r4, #12] mov r0, #32768 ; 0x8000 bl WSetForcePowerState b _06010400 _060103F0: mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, #0 bl WSetChannel _06010400: mov r0, #130 ; 0x82 strh r0, [r4] ldr r0, [r4, #24] ldrh r0, [r0, #22] ldr r1, _06010550 ; =FUN_060102A4 bl SetupTimeOut _06010418: ldr r0, [r4, #4] add r0, r0, #1 str r0, [r4, #4] ldr r0, _06010554 ; =0x0480819C ldrh r0, [r0] ands r0, r0, #1 ldrne r0, [r4, #8] addne r0, r0, #100 ; 0x64 strne r0, [r4, #8] b _06010520 _06010440: ldr r0, [r4, #24] add r1, r0, #24 ldrh r0, [r4, #20] add r0, r1, r0 bl WL_ReadByte mov r5, r0 mov r2, #0 ldr r1, [r4, #4] cmp r1, #0 beq _06010484 ldr r0, [r4, #8] cmp r0, #0 beq _06010484 bl FUN_06003B68 add r2, r0, #1 cmp r2, #100 ; 0x64 movhi r2, #100 ; 0x64 _06010484: orr r2, r5, r2, lsl #8 ldr r1, [r4, #28] ldrh r0, [r4, #20] add r0, r1, r0, lsl #1 strh r2, [r0, #8] ldrh r0, [r4, #20] add r0, r0, #1 strh r0, [r4, #20] mov r0, #129 ; 0x81 strh r0, [r4] b _06010520 _060104B0: bl WStop ldr r0, _06010544 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e strh r0, [r5, #12] mov r0, #19 ldrh r1, [r4, #14] bl BBP_Write mov r0, #53 ; 0x35 ldrh r1, [r4, #16] bl BBP_Write ldrh r0, [r4, #12] bl WSetForcePowerState ldrh r1, [r4, #22] ldr r0, [r4, #28] strh r1, [r0, #4] mov r1, #0 strh r1, [r4] ldrh r2, [r4, #20] b _06010514 _06010504: ldr r0, [r4, #28] add r0, r0, r2, lsl #1 strh r1, [r0, #8] add r2, r2, #1 _06010514: cmp r2, #16 bcc _06010504 bl IssueMlmeConfirm _06010520: ldrh r0, [r4] cmp r0, #0 beq _06010538 mov r0, #2 mov r1, #5 bl AddTask _06010538: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06010544: .word 0x0380FFF4 _06010548: .word 0x00000404 _0601054C: .word 0x04808040 _06010550: .word FUN_060102A4 _06010554: .word 0x0480819C arm_func_start FUN_06010558 FUN_06010558: ; 0x06010558 ldr r0, _06010590 ; =0x0380FFF4 ldr r2, [r0] ldr r0, _06010594 ; =0x00000404 add r0, r2, r0 mov r1, #7 ldr r0, [r0, #28] strh r1, [r0, #4] mov r1, #99 ; 0x63 add r0, r2, #1024 ; 0x400 strh r1, [r0, #4] mov r0, #2 mov r1, #4 ldr ip, _06010598 ; =AddTask bx ip _06010590: .word 0x0380FFF4 _06010594: .word 0x00000404 _06010598: .word AddTask arm_func_start MLME_ReAssTask MLME_ReAssTask: ; 0x0601059C stmdb sp!, {r4, lr} ldr r0, _0601064C ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06010650 ; =0x00000404 add r4, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #96 ; 0x60 beq _060105CC cmp r0, #99 ; 0x63 beq _06010624 b _06010644 _060105CC: ldr r0, [r4, #24] add r0, r0, #16 bl MakeReAssReqFrame cmp r0, #0 bne _06010604 mov r1, #8 ldr r0, [r4, #28] strh r1, [r0, #4] mov r0, #99 ; 0x63 strh r0, [r4] mov r0, #2 mov r1, #4 bl AddTask b _06010644 _06010604: mov r1, #97 ; 0x61 strh r1, [r4] bl TxManCtrlFrame ldr r0, [r4, #24] ldrh r0, [r0, #24] ldr r1, _06010654 ; =FUN_06010558 bl SetupTimeOut b _06010644 _06010624: mov r0, #1 bl ClearQueuedPri mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #0 strh r0, [r4] bl IssueMlmeConfirm _06010644: ldmia sp!, {r4, lr} bx lr _0601064C: .word 0x0380FFF4 _06010650: .word 0x00000404 _06010654: .word FUN_06010558 arm_func_start FUN_06010658 FUN_06010658: ; 0x06010658 ldr r0, _06010690 ; =0x0380FFF4 ldr r2, [r0] ldr r0, _06010694 ; =0x00000404 add r0, r2, r0 mov r1, #7 ldr r0, [r0, #28] strh r1, [r0, #4] mov r1, #83 ; 0x53 add r0, r2, #1024 ; 0x400 strh r1, [r0, #4] mov r0, #2 mov r1, #3 ldr ip, _06010698 ; =AddTask bx ip _06010690: .word 0x0380FFF4 _06010694: .word 0x00000404 _06010698: .word AddTask arm_func_start MLME_AssTask MLME_AssTask: ; 0x0601069C stmdb sp!, {r4, lr} ldr r0, _06010754 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06010758 ; =0x00000404 add r4, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #80 ; 0x50 beq _060106CC cmp r0, #83 ; 0x53 beq _06010724 b _0601074C _060106CC: ldr r0, [r4, #24] add r0, r0, #16 bl MakeAssReqFrame cmp r0, #0 bne _06010704 mov r1, #8 ldr r0, [r4, #28] strh r1, [r0, #4] mov r0, #83 ; 0x53 strh r0, [r4] mov r0, #2 mov r1, #3 bl AddTask b _0601074C _06010704: mov r1, #81 ; 0x51 strh r1, [r4] bl TxManCtrlFrame ldr r0, [r4, #24] ldrh r0, [r0, #24] ldr r1, _0601075C ; =FUN_06010658 bl SetupTimeOut b _0601074C _06010724: mov r0, #1 bl ResetTxqPri mov r0, #1 bl ClearQueuedPri mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #0 strh r0, [r4] bl IssueMlmeConfirm _0601074C: ldmia sp!, {r4, lr} bx lr _06010754: .word 0x0380FFF4 _06010758: .word 0x00000404 _0601075C: .word FUN_06010658 arm_func_start FUN_06010760 FUN_06010760: ; 0x06010760 ldr r0, _06010798 ; =0x0380FFF4 ldr r2, [r0] ldr r0, _0601079C ; =0x00000404 add r0, r2, r0 mov r1, #7 ldr r0, [r0, #28] strh r1, [r0, #4] mov r1, #53 ; 0x35 add r0, r2, #1024 ; 0x400 strh r1, [r0, #4] mov r0, #2 mov r1, r0 ldr ip, _060107A0 ; =AddTask bx ip _06010798: .word 0x0380FFF4 _0601079C: .word 0x00000404 _060107A0: .word AddTask arm_func_start MLME_AuthTask MLME_AuthTask: ; 0x060107A4 stmdb sp!, {r4, lr} ldr r0, _06010880 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06010884 ; =0x00000404 add r4, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #48 ; 0x30 beq _060107D4 cmp r0, #53 ; 0x35 beq _06010850 b _06010878 _060107D4: ldr r0, [r4, #24] add r0, r0, #16 mov r1, #0 mov r2, r1 bl MakeAuthFrame cmp r0, #0 bne _06010814 mov r1, #8 ldr r0, [r4, #28] strh r1, [r0, #4] mov r0, #53 ; 0x35 strh r0, [r4] mov r0, #2 mov r1, r0 bl AddTask b _06010878 _06010814: ldr r1, [r4, #24] ldrh r1, [r1, #22] strh r1, [r0, #44] ; 0x2c mov r1, #1 strh r1, [r0, #46] ; 0x2e mov r1, #0 strh r1, [r0, #48] ; 0x30 mov r1, #49 ; 0x31 strh r1, [r4] bl TxManCtrlFrame ldr r0, [r4, #24] ldrh r0, [r0, #24] ldr r1, _06010888 ; =FUN_06010760 bl SetupTimeOut b _06010878 _06010850: mov r0, #1 bl ResetTxqPri mov r0, #1 bl ClearQueuedPri mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #0 strh r0, [r4] bl IssueMlmeConfirm _06010878: ldmia sp!, {r4, lr} bx lr _06010880: .word 0x0380FFF4 _06010884: .word 0x00000404 _06010888: .word FUN_06010760 arm_func_start FUN_0601088C FUN_0601088C: ; 0x0601088C ldr r0, _060108C0 ; =0x0380FFF4 ldr r2, [r0] ldr r0, _060108C4 ; =0x00000404 add r1, r2, r0 mov r0, #7 strh r0, [r1, #4] mov r1, #37 ; 0x25 add r0, r2, #1024 ; 0x400 strh r1, [r0, #4] mov r0, #2 mov r1, #1 ldr ip, _060108C8 ; =AddTask bx ip _060108C0: .word 0x0380FFF4 _060108C4: .word 0x00000404 _060108C8: .word AddTask arm_func_start MLME_JoinTask MLME_JoinTask: ; 0x060108CC stmdb sp!, {r4, lr} ldr r0, _06010964 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06010968 ; =0x00000404 add r4, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #32 beq _060108FC cmp r0, #37 ; 0x25 beq _06010928 b _0601095C _060108FC: bl WStart mov r0, #0 strh r0, [r4, #4] strh r0, [r4, #6] mov r0, #33 ; 0x21 strh r0, [r4] ldr r0, [r4, #24] ldrh r0, [r0, #16] ldr r1, _0601096C ; =FUN_0601088C bl SetupTimeOut b _0601095C _06010928: ldrh r1, [r4, #4] ldr r0, [r4, #28] strh r1, [r0, #4] ldrh r1, [r4, #6] ldr r0, [r4, #28] strh r1, [r0, #6] ldrh r0, [r4, #4] cmp r0, #0 beq _06010950 bl WStop _06010950: mov r0, #0 strh r0, [r4] bl IssueMlmeConfirm _0601095C: ldmia sp!, {r4, lr} bx lr _06010964: .word 0x0380FFF4 _06010968: .word 0x00000404 _0601096C: .word FUN_0601088C arm_func_start FUN_06010970 FUN_06010970: ; 0x06010970 ldr r0, _060109CC ; =0x0380FFF4 ldr r1, [r0] ldr r0, _060109D0 ; =0x00000404 add r2, r1, r0 ldrh r1, [r2, #10] ldrh r0, [r2, #12] add r0, r1, r0 strh r0, [r2, #10] ldrh r1, [r2, #10] ldr r0, [r2, #24] ldrh r0, [r0, #74] ; 0x4a cmp r1, r0 bcc _060109BC ldrh r0, [r2, #6] cmp r0, #16 movcc r0, #17 strcch r0, [r2] movcs r0, #21 strcsh r0, [r2] _060109BC: mov r0, #2 mov r1, #0 ldr ip, _060109D4 ; =AddTask bx ip _060109CC: .word 0x0380FFF4 _060109D0: .word 0x00000404 _060109D4: .word AddTask arm_func_start MLME_ScanTask MLME_ScanTask: ; 0x060109D8 stmdb sp!, {r4, r5, r6, lr} ldr r0, _06010BC8 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06010BCC ; =0x00000404 add r6, r1, r0 add r5, r1, #836 ; 0x344 mov r4, #0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] sub r0, r0, #16 cmp r0, #5 addls pc, pc, r0, lsl #2 b _06010BAC b _06010A24 b _06010A9C b _06010B34 b _06010B34 b _06010BAC b _06010B8C _06010A24: mov r0, #32 bl WSetStaState mov r0, #2 strh r0, [r5, #12] mov r1, r4 ldr r0, [r6, #28] strh r1, [r0, #8] ldr r0, [r6, #28] strh r1, [r0, #6] strh r1, [r6, #6] strh r1, [r6, #8] ldr r1, [r6, #24] ldrh r0, [r1, #56] ; 0x38 cmp r0, #0 bne _06010A88 ldrh r0, [r1, #74] ; 0x4a add r0, r0, #3 mov r1, #4 bl FUN_06001840 strh r0, [r6, #12] ldrh r0, [r6, #12] cmp r0, #10 movcc r0, #10 strcch r0, [r6, #12] b _06010A90 _06010A88: ldrh r0, [r1, #74] ; 0x4a strh r0, [r6, #12] _06010A90: mov r1, #0 ldr r0, [r6, #28] strh r1, [r0, #4] _06010A9C: ldr r0, [r6, #24] add r1, r0, #58 ; 0x3a ldrh r0, [r6, #6] add r0, r1, r0 bl WL_ReadByte movs r5, r0 moveq r0, #21 streqh r0, [r6] moveq r4, #1 beq _06010BAC ldrh r0, [r6, #6] add r0, r0, #1 strh r0, [r6, #6] mov r0, #0 strh r0, [r6, #10] bl FLASH_VerifyCheckSum cmp r0, #0 beq _06010B00 mov r1, #14 ldr r0, [r6, #28] strh r1, [r0, #4] mov r0, #21 strh r0, [r6] mov r4, #1 b _06010BAC _06010B00: ldrh r0, [r6] cmp r0, #16 bne _06010B20 mov r0, r5 mov r1, #0 bl WSetChannel bl WStart b _06010B2C _06010B20: mov r0, r5 mov r1, #0 bl WSetChannel _06010B2C: mov r0, #18 strh r0, [r6] _06010B34: mov r0, #19 strh r0, [r6] ldr r1, [r6, #24] ldrh r0, [r1, #56] ; 0x38 cmp r0, #0 bne _06010B7C add r0, r1, #16 bl MakeProbeReqFrame cmp r0, #0 bne _06010B78 mov r1, #8 ldr r0, [r6, #28] strh r1, [r0, #4] mov r0, #21 strh r0, [r6] mov r4, #1 b _06010BAC _06010B78: bl TxManCtrlFrame _06010B7C: ldrh r0, [r6, #12] ldr r1, _06010BD0 ; =FUN_06010970 bl SetupTimeOut b _06010BAC _06010B8C: strh r4, [r6] bl WStop ldr r0, _06010BC8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e strh r0, [r5, #12] bl IssueMlmeConfirm _06010BAC: cmp r4, #0 beq _06010BC0 mov r0, #2 mov r1, #0 bl AddTask _06010BC0: ldmia sp!, {r4, r5, r6, lr} bx lr _06010BC8: .word 0x0380FFF4 _06010BCC: .word 0x00000404 _06010BD0: .word FUN_06010970 arm_func_start MLME_MeasChanReqCmd MLME_MeasChanReqCmd: ; 0x06010BD4 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 ldr r2, _06010CB4 ; =0x0380FFF4 ldr r1, [r2] ldr r0, _06010CB8 ; =0x00000404 add r4, r1, r0 mov r0, #18 strh r0, [r5, #2] ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #32 movne r0, #1 bne _06010CAC ldrh r0, [r6, #18] cmp r0, #3 movhi r0, #5 bhi _06010CAC ldrh r0, [r6, #20] cmp r0, #63 ; 0x3f movhi r0, #5 bhi _06010CAC ldrh r0, [r6, #22] cmp r0, #0 moveq r0, #5 beq _06010CAC cmp r0, #1000 ; 0x3e8 movhi r0, #5 bhi _06010CAC mov r8, #0 add r7, r6, #24 b _06010C7C _06010C58: add r0, r7, r8 bl WL_ReadByte cmp r0, #0 beq _06010C84 bl CheckEnableChannel cmp r0, #0 moveq r0, #5 beq _06010CAC add r8, r8, #1 _06010C7C: cmp r8, #16 bcc _06010C58 _06010C84: cmp r8, #0 moveq r0, #5 beq _06010CAC str r6, [r4, #24] str r5, [r4, #28] mov r0, #128 ; 0x80 strh r0, [r4] strh r0, [r5, #4] bl MLME_MeasChannelTask mov r0, #128 ; 0x80 _06010CAC: ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06010CB4: .word 0x0380FFF4 _06010CB8: .word 0x00000404 arm_func_start MLME_StartReqCmd MLME_StartReqCmd: ; 0x06010CBC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _06010E54 ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 add r4, r0, #796 ; 0x31c mov r0, #1 strh r0, [r1, #2] ldrh r0, [r4, #18] cmp r0, #1 beq _06010CF4 cmp r0, #0 movne r0, #11 bne _06010E4C _06010CF4: ldrh r0, [r5, #8] cmp r0, #32 movne r0, #1 bne _06010E4C ldrh r0, [r6, #16] cmp r0, #32 movhi r0, #5 bhi _06010E4C cmp r0, #0 moveq r0, #5 beq _06010E4C ldrh r0, [r6, #50] ; 0x32 cmp r0, #10 movcc r0, #5 bcc _06010E4C cmp r0, #1000 ; 0x3e8 movhi r0, #5 bhi _06010E4C ldrh r0, [r6, #52] ; 0x34 cmp r0, #0 moveq r0, #5 beq _06010E4C cmp r0, #255 ; 0xff movhi r0, #5 bhi _06010E4C ldrh r0, [r6, #54] ; 0x36 ldr r1, _06010E58 ; =0x0000FFF0 ands r1, r0, r1 movne r0, #5 bne _06010E4C bl CheckEnableChannel cmp r0, #0 moveq r0, #5 beq _06010E4C ldrh r1, [r6, #56] ; 0x38 cmp r1, #0 moveq r0, #5 beq _06010E4C mov r0, #4096 ; 0x1000 rsb r0, r0, #0 ands r1, r1, r0 movne r0, #5 bne _06010E4C ldrh r1, [r6, #58] ; 0x3a cmp r1, #0 moveq r0, #5 beq _06010E4C ands r0, r1, r0 movne r0, #5 bne _06010E4C ldrh r0, [r6, #60] ; 0x3c cmp r0, #128 ; 0x80 movhi r0, #5 bhi _06010E4C mov r0, #0 bl FLASH_VerifyCheckSum cmp r0, #0 movne r0, #14 bne _06010E4C ldrh r0, [r4, #18] cmp r0, #0 bne _06010DF8 ldr r0, _06010E5C ; =BC_ADRS bl WSetBssid b _06010E00 _06010DF8: add r0, r4, #8 bl WSetBssid _06010E00: ldrh r0, [r6, #16] add r1, r6, #18 bl WSetSsid ldrh r0, [r6, #50] ; 0x32 bl WSetBeaconPeriod ldrh r0, [r6, #52] ; 0x34 bl WSetDTIMPeriod ldrh r0, [r6, #54] ; 0x36 mov r1, #0 bl WSetChannel add r0, r6, #56 ; 0x38 bl WSetRateSet ldrh r0, [r6, #60] ; 0x3c add r1, r6, #62 ; 0x3e bl WInitGameInfo mov r0, #0 strh r0, [r5, #164] ; 0xa4 bl WStart mov r0, #0 _06010E4C: ldmia sp!, {r4, r5, r6, lr} bx lr _06010E54: .word 0x0380FFF4 _06010E58: .word 0x0000FFF0 _06010E5C: .word BC_ADRS arm_func_start MLME_DisAssReqCmd MLME_DisAssReqCmd: ; 0x06010E60 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r2, _06010F70 ; =0x0380FFF4 ldr r1, [r2] ldr r0, _06010F74 ; =0x00000404 add r5, r1, r0 mov r0, #1 strh r0, [r6, #2] ldr r1, [r2] add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #0 moveq r0, #11 beq _06010F64 cmp r0, #1 beq _06010EB8 ldrh r0, [r7, #16] ands r0, r0, #1 movne r0, #5 bne _06010F64 _06010EB8: add r0, r1, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #64 ; 0x40 movne r0, #1 bne _06010F64 add r0, r7, #16 ldrh r1, [r7, #22] bl MakeDisAssFrame movs r4, r0 moveq r0, #8 beq _06010F64 str r7, [r5, #24] str r6, [r5, #28] str r4, [r5, #4] mov r0, #113 ; 0x71 strh r0, [r5] ldrh r0, [r7, #16] ands r0, r0, #1 beq _06010F50 ldr r1, _06010F70 ; =0x0380FFF4 ldr r0, [r1] ldr r0, [r0, #1004] ; 0x3ec strh r0, [r4, #4] ldr r0, [r1] add r0, r0, #392 ; 0x188 sub r1, r4, #16 bl CAM_AddBcFrame ldr r0, _06010F70 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #46] ; 0x2e ldrh r0, [r0, #50] ; 0x32 mvn r0, r0 ands r0, r1, r0 bne _06010F60 mov r0, #2 bl TxqPri b _06010F60 _06010F50: add r0, r7, #16 bl DeleteTxFrameByAdrs mov r0, r4 bl TxManCtrlFrame _06010F60: mov r0, #128 ; 0x80 _06010F64: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06010F70: .word 0x0380FFF4 _06010F74: .word 0x00000404 arm_func_start MLME_ReAssReqCmd MLME_ReAssReqCmd: ; 0x06010F78 stmfd sp!, {lr} sub sp, sp, #4 ldr r2, _06011040 ; =0x0380FFF4 ldr lr, [r2] add r3, lr, #836 ; 0x344 ldr r2, _06011044 ; =0x00000404 add r2, lr, r2 mov ip, #3 strh ip, [r1, #2] add ip, lr, #768 ; 0x300 ldrh ip, [ip, #46] ; 0x2e cmp ip, #3 beq _06010FB8 cmp ip, #2 movne r0, #11 bne _06011034 _06010FB8: ldrh ip, [r3, #8] cmp ip, #48 ; 0x30 movcc r0, #1 bcc _06011034 ldrh ip, [r0, #16] ands ip, ip, #1 movne r0, #5 bne _06011034 ldrh lr, [r0, #22] cmp lr, #1 movcc r0, #5 bcc _06011034 cmp lr, #255 ; 0xff movhi r0, #5 bhi _06011034 ldrh ip, [r0, #24] cmp ip, #2000 ; 0x7d0 movhi r0, #5 bhi _06011034 cmp ip, #10 movcc r0, #5 bcc _06011034 strh lr, [r3, #112] ; 0x70 ldrh ip, [r0, #22] strh ip, [r3, #114] ; 0x72 str r0, [r2, #24] str r1, [r2, #28] mov r0, #96 ; 0x60 strh r0, [r2] bl MLME_ReAssTask mov r0, #128 ; 0x80 _06011034: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06011040: .word 0x0380FFF4 _06011044: .word 0x00000404 arm_func_start MLME_AssReqCmd MLME_AssReqCmd: ; 0x06011048 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r0, _06011128 ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 ldr r0, _0601112C ; =0x00000404 add r4, r1, r0 mov r0, #3 strh r0, [r6, #2] add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #3 beq _06011090 cmp r0, #2 movne r0, #11 bne _0601111C _06011090: ldrh r0, [r5, #8] cmp r0, #48 ; 0x30 movcc r0, #1 bcc _0601111C ldrh r0, [r7, #16] ands r0, r0, #1 movne r0, #5 bne _0601111C ldrh r0, [r7, #22] cmp r0, #0 moveq r0, #5 beq _0601111C cmp r0, #255 ; 0xff movhi r0, #5 bhi _0601111C ldrh r0, [r7, #24] cmp r0, #2000 ; 0x7d0 movhi r0, #5 bhi _0601111C cmp r0, #10 movcc r0, #5 bcc _0601111C mov r0, #48 ; 0x30 bl WSetStaState bl WClearAids ldrh r0, [r7, #22] strh r0, [r5, #112] ; 0x70 ldrh r0, [r7, #22] strh r0, [r5, #114] ; 0x72 str r7, [r4, #24] str r6, [r4, #28] mov r0, #80 ; 0x50 strh r0, [r4] bl MLME_AssTask mov r0, #128 ; 0x80 _0601111C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06011128: .word 0x0380FFF4 _0601112C: .word 0x00000404 arm_func_start MLME_DeAuthReqCmd MLME_DeAuthReqCmd: ; 0x06011130 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r2, _06011270 ; =0x0380FFF4 ldr r1, [r2] ldr r0, _06011274 ; =0x00000404 add r5, r1, r0 mov r0, #4 strh r0, [r6, #2] ldr r2, [r2] add r0, r2, #768 ; 0x300 ldrh r1, [r0, #46] ; 0x2e cmp r1, #3 beq _06011180 cmp r1, #2 beq _06011180 cmp r1, #1 movne r0, #11 bne _06011264 _06011180: add r0, r2, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #48 ; 0x30 movcc r0, #1 bcc _06011264 ldr r0, _06011278 ; =0x0000FFFE add r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #1 bhi _060111BC ldrh r0, [r7, #16] ands r0, r0, #1 movne r0, #5 bne _06011264 _060111BC: add r0, r6, #6 add r1, r7, #16 bl WSetMacAdrs1 add r0, r6, #6 ldrh r1, [r7, #22] mov r2, #0 bl MakeDeAuthFrame movs r4, r0 moveq r0, #8 beq _06011264 str r7, [r5, #24] str r6, [r5, #28] str r4, [r5, #4] mov r0, #65 ; 0x41 strh r0, [r5] ldrh r0, [r7, #16] ands r0, r0, #1 beq _06011250 ldr r1, _06011270 ; =0x0380FFF4 ldr r0, [r1] ldr r0, [r0, #1004] ; 0x3ec strh r0, [r4, #4] ldr r0, [r1] add r0, r0, #392 ; 0x188 sub r1, r4, #16 bl CAM_AddBcFrame ldr r0, _06011270 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #46] ; 0x2e ldrh r0, [r0, #50] ; 0x32 mvn r0, r0 ands r0, r1, r0 bne _06011260 mov r0, #2 bl TxqPri b _06011260 _06011250: add r0, r7, #16 bl DeleteTxFrameByAdrs mov r0, r4 bl TxManCtrlFrame _06011260: mov r0, #128 ; 0x80 _06011264: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06011270: .word 0x0380FFF4 _06011274: .word 0x00000404 _06011278: .word 0x0000FFFE arm_func_start MLME_AuthReqCmd MLME_AuthReqCmd: ; 0x0601127C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _06011350 ; =0x0380FFF4 ldr r1, [r0] add r2, r1, #836 ; 0x344 ldr r0, _06011354 ; =0x00000404 add r4, r1, r0 mov r0, #6 strh r0, [r5, #2] add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #3 beq _060112C0 cmp r0, #2 movne r0, #11 bne _06011348 _060112C0: ldrh r0, [r2, #8] cmp r0, #32 movcc r0, #1 bcc _06011348 ldrh r0, [r6, #16] ands r0, r0, #1 movne r0, #5 bne _06011348 ldrh r0, [r6, #22] cmp r0, #1 movhi r0, #5 bhi _06011348 ldrh r0, [r6, #24] cmp r0, #2000 ; 0x7d0 movhi r0, #5 bhi _06011348 cmp r0, #10 movcc r0, #5 bcc _06011348 mov r0, #32 bl WSetStaState str r6, [r4, #24] str r5, [r4, #28] mov r0, #48 ; 0x30 strh r0, [r4] ldr r0, [r4, #24] ldrh r0, [r0, #22] strh r0, [r5, #14] add r0, r5, #8 ldr r1, [r4, #24] add r1, r1, #16 bl WSetMacAdrs1 bl MLME_AuthTask mov r0, #128 ; 0x80 _06011348: ldmia sp!, {r4, r5, r6, lr} bx lr _06011350: .word 0x0380FFF4 _06011354: .word 0x00000404 arm_func_start MLME_JoinReqCmd MLME_JoinReqCmd: ; 0x06011358 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _0601150C ; =0x0380FFF4 ldr r1, [r0] add r2, r1, #836 ; 0x344 ldr r0, _06011510 ; =0x00000404 add r4, r1, r0 mov r0, #5 strh r0, [r5, #2] add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #3 beq _0601139C cmp r0, #2 movne r0, #11 bne _06011504 _0601139C: ldrh r0, [r2, #8] cmp r0, #32 movcc r0, #1 bcc _06011504 mov r0, #32 bl WSetStaState ldrh r0, [r6, #24] ands r0, r0, #1 movne r0, #5 bne _06011504 ldrh r0, [r6, #30] cmp r0, #0 moveq r0, #5 beq _06011504 cmp r0, #32 movhi r0, #5 bhi _06011504 ldrh r0, [r6, #70] ; 0x46 cmp r0, #10 movcc r0, #5 bcc _06011504 cmp r0, #1000 ; 0x3e8 movhi r0, #5 bhi _06011504 ldrh r0, [r6, #72] ; 0x48 cmp r0, #255 ; 0xff movhi r0, #5 bhi _06011504 ldrh r0, [r6, #74] ; 0x4a ldr r1, _06011514 ; =0x0000FFF0 ands r1, r0, r1 movne r0, #5 bne _06011504 bl CheckEnableChannel cmp r0, #0 moveq r0, #5 beq _06011504 ldrh r2, [r6, #66] ; 0x42 mov r0, #4096 ; 0x1000 rsb r0, r0, #0 ands r1, r2, r0 movne r0, #5 bne _06011504 ldrh r1, [r6, #68] ; 0x44 ands r0, r1, r0 movne r0, #5 bne _06011504 cmp r2, #0 moveq r0, #5 beq _06011504 orrs r0, r1, r2 moveq r0, #5 beq _06011504 ldrh r0, [r6, #16] cmp r0, #2000 ; 0x7d0 movhi r0, #5 bhi _06011504 mov r0, #0 bl FLASH_VerifyCheckSum cmp r0, #0 movne r0, #14 bne _06011504 ldrh r0, [r6, #64] ; 0x40 ands r0, r0, #32 beq _060114AC mov r0, #1 bl WSetPreambleType b _060114B4 _060114AC: mov r0, #0 bl WSetPreambleType _060114B4: add r0, r6, #24 bl WSetBssid ldrh r0, [r6, #30] add r1, r6, #32 bl WSetSsid ldrh r0, [r6, #70] ; 0x46 bl WSetBeaconPeriod ldrh r0, [r6, #74] ; 0x4a mov r1, #0 bl WSetChannel add r0, r6, #66 ; 0x42 bl WSetRateSet str r6, [r4, #24] str r5, [r4, #28] mov r0, #32 strh r0, [r4] mov r0, #2 mov r1, #1 bl AddTask mov r0, #128 ; 0x80 _06011504: ldmia sp!, {r4, r5, r6, lr} bx lr _0601150C: .word 0x0380FFF4 _06011510: .word 0x00000404 _06011514: .word 0x0000FFF0 arm_func_start MLME_ScanReqCmd MLME_ScanReqCmd: ; 0x06011518 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r6, r0 mov r5, r1 ldr r0, _0601165C ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06011660 ; =0x00000404 add r4, r1, r0 ldrh r0, [r5, #2] sub r0, r0, #3 strh r0, [r4, #4] mov r0, #3 strh r0, [r5, #2] add r0, r1, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #1 beq _0601156C cmp r0, #3 beq _0601156C cmp r0, #2 movne r0, #11 bne _06011654 _0601156C: ldr r0, _0601165C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #32 movcc r0, #1 bcc _06011654 ldrh r0, [r6, #22] cmp r0, #32 movhi r0, #5 bhi _06011654 ldrh r0, [r6, #56] ; 0x38 cmp r0, #1 movhi r0, #5 bhi _06011654 add r0, r6, #58 ; 0x3a bl WL_ReadByte cmp r0, #0 moveq r0, #5 beq _06011654 ldrh r0, [r6, #74] ; 0x4a cmp r0, #1000 ; 0x3e8 movhi r0, #5 bhi _06011654 cmp r0, #10 movcc r0, #5 bcc _06011654 ldrh r0, [r6, #76] ; 0x4c cmp r0, #16 movhi r0, #5 bhi _06011654 mov r8, #0 add r7, r6, #58 ; 0x3a b _06011618 _060115F4: add r0, r7, r8 bl WL_ReadByte cmp r0, #0 beq _06011620 bl CheckEnableChannel cmp r0, #0 moveq r0, #5 beq _06011654 add r8, r8, #1 _06011618: cmp r8, #16 bcc _060115F4 _06011620: add r0, r6, #16 bl WSetBssid ldrh r0, [r6, #22] add r1, r6, #24 bl WSetSsid str r6, [r4, #24] str r5, [r4, #28] mov r0, #16 strh r0, [r4] mov r0, #2 mov r1, #0 bl AddTask mov r0, #128 ; 0x80 _06011654: ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _0601165C: .word 0x0380FFF4 _06011660: .word 0x00000404 arm_func_start MLME_PwrMgtReqCmd MLME_PwrMgtReqCmd: ; 0x06011664 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #9 strh r0, [r1, #2] ldrh r0, [r4, #16] cmp r0, #1 movhi r0, #5 bhi _06011700 ldrh r1, [r4, #18] cmp r1, #1 movhi r0, #5 bhi _06011700 ldrh r1, [r4, #20] cmp r1, #1 movhi r0, #5 bhi _06011700 bl WSetPowerMgtMode ldrh r0, [r4, #16] cmp r0, #1 bne _060116EC ldrh r0, [r4, #18] cmp r0, #1 bne _060116CC ldr r0, _06011708 ; =0x00008001 bl WSetForcePowerState b _060116D4 _060116CC: mov r0, #0 bl WSetForcePowerState _060116D4: ldrh r1, [r4, #20] ldr r0, _0601170C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 strh r1, [r0, #88] ; 0x58 b _060116FC _060116EC: mov r0, #32768 ; 0x8000 bl WSetForcePowerState mov r0, #2 bl WSetPowerState _060116FC: mov r0, #0 _06011700: ldmia sp!, {r4, lr} bx lr _06011708: .word 0x00008001 _0601170C: .word 0x0380FFF4 arm_func_start MLME_ResetReqCmd MLME_ResetReqCmd: ; 0x06011710 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #1 strh r0, [r1, #2] ldrh r0, [r4, #16] cmp r0, #1 movhi r0, #5 bhi _06011748 bl WStop ldrh r0, [r4, #16] cmp r0, #1 bne _06011744 bl WInitCounter _06011744: mov r0, #0 _06011748: ldmia sp!, {r4, lr} bx lr arm_func_start PARAMGET_GameInfoReqCmd PARAMGET_GameInfoReqCmd: ; 0x06011750 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r1 ldrh r0, [r4, #2] cmp r0, #1 ldrhi r0, _06011830 ; =0x0380FFF4 ldrhi r0, [r0] addhi r0, r0, #768 ; 0x300 ldrhih r0, [r0, #228] ; 0xe4 strhih r0, [r4, #6] ldr r0, _06011830 ; =0x0380FFF4 ldr r3, [r0] add r0, r3, #768 ; 0x300 ldrh r2, [r0, #228] ; 0xe4 ldrh r1, [r4, #2] sub r1, r1, #2 cmp r2, r1, lsl #1 movgt r0, #4 bgt _06011824 ldrh r2, [r4, #6] cmp r2, #0 beq _06011808 ldrh r0, [r0, #230] ; 0xe6 ands r0, r0, #1 beq _060117F8 ldr r0, [r3, #992] ; 0x3e0 add r7, r0, #1 add r6, r4, #8 mov r5, #0 b _060117E8 _060117C8: mov r0, r7 bl WL_ReadByte mov r1, r0 mov r0, r6 bl WL_WriteByte add r6, r6, #1 add r7, r7, #1 add r5, r5, #1 _060117E8: ldrh r0, [r4, #6] cmp r5, r0 bcc _060117C8 b _06011808 _060117F8: ldr r0, [r3, #992] ; 0x3e0 add r1, r4, #8 add r2, r2, #1 bl FUN_06000EA0 _06011808: ldrh r0, [r4, #6] add r0, r0, #1 mov r1, #2 bl FUN_06001840 add r0, r0, #2 strh r0, [r4, #2] mov r0, #0 _06011824: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06011830: .word 0x0380FFF4 arm_func_start PARAMGET_ListenIntervalReqCmd PARAMGET_ListenIntervalReqCmd: ; 0x06011834 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011858 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #180] ; 0xb4 strh r0, [r1, #6] mov r0, #0 bx lr _06011858: .word 0x0380FFF4 arm_func_start PARAMGET_DTIMPeriodReqCmd PARAMGET_DTIMPeriodReqCmd: ; 0x0601185C mov r0, #2 strh r0, [r1, #2] ldr r0, _06011880 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #184] ; 0xb8 strh r0, [r1, #6] mov r0, #0 bx lr _06011880: .word 0x0380FFF4 arm_func_start PARAMGET_BeaconPeriodReqCmd PARAMGET_BeaconPeriodReqCmd: ; 0x06011884 mov r0, #2 strh r0, [r1, #2] ldr r0, _060118A8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #178] ; 0xb2 strh r0, [r1, #6] mov r0, #0 bx lr _060118A8: .word 0x0380FFF4 arm_func_start PARAMGET_SSIDReqCmd PARAMGET_SSIDReqCmd: ; 0x060118AC mov r0, #18 strh r0, [r1, #2] ldr r2, _060118F4 ; =0x0380FFF4 ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #98] ; 0x62 strh r0, [r1, #6] add r3, r1, #8 ldr r0, [r2] add r1, r0, #868 ; 0x364 mov r2, #0 _060118D8: ldrh r0, [r1], #2 strh r0, [r3], #2 add r2, r2, #2 cmp r2, #32 bcc _060118D8 mov r0, #0 bx lr _060118F4: .word 0x0380FFF4 arm_func_start PARAMGET_BSSIDReqCmd PARAMGET_BSSIDReqCmd: ; 0x060118F8 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #4 strh r0, [r1, #2] add r0, r1, #6 ldr r1, _0601192C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #936 ; 0x3a8 bl WSetMacAdrs1 mov r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0601192C: .word 0x0380FFF4 arm_func_start PARAMGET_NullKeyModeReqCmd PARAMGET_NullKeyModeReqCmd: ; 0x06011930 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011968 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r2, [r0, #76] ; 0x4c cmp r2, #16 movcc r0, #1 ldrcsh r0, [r0, #58] ; 0x3a movcs r0, r0, lsl #24 movcs r0, r0, lsr #31 strcsh r0, [r1, #6] movcs r0, #0 bx lr _06011968: .word 0x0380FFF4 arm_func_start PARAMGET_BcnSendRecvIndReqCmd PARAMGET_BcnSendRecvIndReqCmd: ; 0x0601196C mov r0, #2 strh r0, [r1, #2] ldr r0, _060119A4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r2, [r0, #76] ; 0x4c cmp r2, #16 movcc r0, #1 ldrcsh r0, [r0, #58] ; 0x3a movcs r0, r0, lsl #25 movcs r0, r0, lsr #31 strcsh r0, [r1, #6] movcs r0, #0 bx lr _060119A4: .word 0x0380FFF4 arm_func_start PARAMGET_DiversityReqCmd PARAMGET_DiversityReqCmd: ; 0x060119A8 mov r0, #3 strh r0, [r1, #2] ldr r3, _06011A04 ; =0x0380FFF4 ldr r0, [r3] add r0, r0, #768 ; 0x300 ldrh r2, [r0, #76] ; 0x4c cmp r2, #16 movcc r0, #1 bxcc lr ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #27 mov r0, r0, lsr #31 strh r0, [r1, #6] ldr r0, [r3] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r2, r0, lsl #26 mov r2, r2, lsr #31 mov r0, r0, lsl #28 eor r0, r2, r0, lsr #31 strh r0, [r1, #8] mov r0, #0 bx lr _06011A04: .word 0x0380FFF4 arm_func_start PARAMGET_MainAntennaReqCmd PARAMGET_MainAntennaReqCmd: ; 0x06011A08 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011A40 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r2, [r0, #76] ; 0x4c cmp r2, #16 movcc r0, #1 ldrcsh r0, [r0, #58] ; 0x3a movcs r0, r0, lsl #28 movcs r0, r0, lsr #31 strcsh r0, [r1, #6] movcs r0, #0 bx lr _06011A40: .word 0x0380FFF4 arm_func_start PARAMGET_MaxConnReqCmd PARAMGET_MaxConnReqCmd: ; 0x06011A44 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011A6C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 sub r0, r0, #1 strh r0, [r1, #6] mov r0, #0 bx lr _06011A6C: .word 0x0380FFF4 arm_func_start PARAMGET_CCAModeEDThReqCmd PARAMGET_CCAModeEDThReqCmd: ; 0x06011A70 stmdb sp!, {r4, lr} mov r4, r1 mov r0, #4 strh r0, [r4, #2] mov r0, #19 bl BBP_Read strh r0, [r4, #6] mov r0, #53 ; 0x35 bl BBP_Read strh r0, [r4, #8] mov r0, #46 ; 0x2e bl BBP_Read strh r0, [r4, #10] mov r0, #0 ldmia sp!, {r4, lr} bx lr mov r0, #2 strh r0, [r1, #2] ldr r0, _06011AD4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #50] ; 0x32 strh r0, [r1, #6] mov r0, #0 bx lr _06011AD4: .word 0x0380FFF4 arm_func_start PARAMGET_PreambleTypeReqCmd PARAMGET_PreambleTypeReqCmd: ; 0x06011AD8 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011B04 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #29 mov r0, r0, lsr #31 strh r0, [r1, #6] mov r0, #0 bx lr _06011B04: .word 0x0380FFF4 arm_func_start PARAMGET_SSIDMaskReqCmd PARAMGET_SSIDMaskReqCmd: ; 0x06011B08 mov r0, #17 strh r0, [r1, #2] add r2, r1, #6 ldr r0, _06011B40 ; =0x0380FFF4 ldr r0, [r0] add r1, r0, #900 ; 0x384 mov r3, #0 _06011B24: ldrh r0, [r1], #2 strh r0, [r2], #2 add r3, r3, #1 cmp r3, #16 bcc _06011B24 mov r0, #0 bx lr _06011B40: .word 0x0380FFF4 arm_func_start PARAMGET_ActiveZoneReqCmd PARAMGET_ActiveZoneReqCmd: ; 0x06011B44 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011B68 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #60] ; 0x3c strh r0, [r1, #6] mov r0, #0 bx lr _06011B68: .word 0x0380FFF4 arm_func_start PARAMGET_BeaconLostThReqCmd PARAMGET_BeaconLostThReqCmd: ; 0x06011B6C mov r0, #2 strh r0, [r1, #2] ldr r0, _06011B90 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #194] ; 0xc2 strh r0, [r1, #6] mov r0, #0 bx lr _06011B90: .word 0x0380FFF4 arm_func_start PARAMGET_ResBcSsidReqCmd PARAMGET_ResBcSsidReqCmd: ; 0x06011B94 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011BC0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #30 mov r0, r0, lsr #31 strh r0, [r1, #6] mov r0, #0 bx lr _06011BC0: .word 0x0380FFF4 arm_func_start PARAMGET_BeaconTypeReqCmd PARAMGET_BeaconTypeReqCmd: ; 0x06011BC4 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011BF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #31 mov r0, r0, lsr #31 strh r0, [r1, #6] mov r0, #0 bx lr _06011BF0: .word 0x0380FFF4 arm_func_start PARAMGET_WepKeyIdReqCmd PARAMGET_WepKeyIdReqCmd: ; 0x06011BF4 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011C18 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #54] ; 0x36 strh r0, [r1, #6] mov r0, #0 bx lr _06011C18: .word 0x0380FFF4 arm_func_start PARAMGET_WepModeReqCmd PARAMGET_WepModeReqCmd: ; 0x06011C1C mov r0, #2 strh r0, [r1, #2] ldr r0, _06011C40 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #52] ; 0x34 strh r0, [r1, #6] mov r0, #0 bx lr _06011C40: .word 0x0380FFF4 arm_func_start PARAMGET_RateReqCmd PARAMGET_RateReqCmd: ; 0x06011C44 mov r0, #2 strh r0, [r1, #2] ldr r0, _06011C68 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #48] ; 0x30 strh r0, [r1, #6] mov r0, #0 bx lr _06011C68: .word 0x0380FFF4 arm_func_start PARAMGET_ModeReqCmd PARAMGET_ModeReqCmd: ; 0x06011C6C mov r0, #2 strh r0, [r1, #2] ldr r0, _06011C90 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e strh r0, [r1, #6] mov r0, #0 bx lr _06011C90: .word 0x0380FFF4 arm_func_start PARAMGET_EnableChannelReqCmd PARAMGET_EnableChannelReqCmd: ; 0x06011C94 mov r0, #3 strh r0, [r1, #2] ldr r2, _06011CC8 ; =0x0380FFF4 ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #44] ; 0x2c strh r0, [r1, #6] ldr r0, [r2] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #190] ; 0xbe strh r0, [r1, #8] mov r0, #0 bx lr _06011CC8: .word 0x0380FFF4 arm_func_start PARAMGET_RetryReqCmd PARAMGET_RetryReqCmd: ; 0x06011CCC mov r0, #2 strh r0, [r1, #2] ldr r0, _06011CF0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #42] ; 0x2a strh r0, [r1, #6] mov r0, #0 bx lr _06011CF0: .word 0x0380FFF4 arm_func_start PARAMGET_MacAdrsReqCmd PARAMGET_MacAdrsReqCmd: ; 0x06011CF4 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #4 strh r0, [r1, #2] add r0, r1, #6 ldr r1, _06011D28 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #804 ; 0x324 bl WSetMacAdrs1 mov r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06011D28: .word 0x0380FFF4 arm_func_start PARAMGET_AllReqCmd PARAMGET_AllReqCmd: ; 0x06011D2C stmdb sp!, {r4, lr} mov r4, r1 mov r0, #33 ; 0x21 strh r0, [r4, #2] add r0, r4, #6 ldr r1, _06011E60 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #804 ; 0x324 bl WSetMacAdrs1 ldr r0, _06011E60 ; =0x0380FFF4 ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #42] ; 0x2a strh r1, [r4, #12] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #44] ; 0x2c strh r1, [r4, #14] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #190] ; 0xbe strh r1, [r4, #16] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #46] ; 0x2e strh r1, [r4, #18] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #48] ; 0x30 strh r1, [r4, #20] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #52] ; 0x34 strh r1, [r4, #22] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #54] ; 0x36 strh r1, [r4, #24] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #58] ; 0x3a mov r1, r1, lsl #31 mov r1, r1, lsr #31 strh r1, [r4, #26] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #58] ; 0x3a mov r1, r1, lsl #30 mov r1, r1, lsr #31 strh r1, [r4, #28] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #194] ; 0xc2 strh r1, [r4, #30] ldr r1, [r0] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #60] ; 0x3c strh r1, [r4, #32] ldr r0, [r0] add r0, r0, #900 ; 0x384 add r1, r4, #34 ; 0x22 mov r2, #32 bl FUN_06000EA0 ldr r1, _06011E60 ; =0x0380FFF4 ldr r0, [r1] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #29 mov r0, r0, lsr #31 strh r0, [r4, #66] ; 0x42 ldr r0, [r1] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #50] ; 0x32 strh r0, [r4, #68] ; 0x44 mov r0, #0 ldmia sp!, {r4, lr} bx lr _06011E60: .word 0x0380FFF4 arm_func_start PARAMSET_GameInfoReqCmd PARAMSET_GameInfoReqCmd: ; 0x06011E64 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 mov r0, #1 strh r0, [r1, #2] ldr r0, _06011ED0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #1 movne r0, #11 bne _06011EC4 ldrh r5, [r4, #16] add r0, r5, #1 mov r1, #2 bl FUN_06001840 ldrh r1, [r4, #14] add r0, r0, #1 cmp r1, r0 movlt r0, #4 blt _06011EC4 mov r0, r5 add r1, r4, #18 bl WSetGameInfo _06011EC4: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06011ED0: .word 0x0380FFF4 arm_func_start PARAMSET_ListenIntervalReqCmd PARAMSET_ListenIntervalReqCmd: ; 0x06011ED4 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06011F1C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #46] ; 0x2e cmp r1, #2 beq _06011F08 cmp r1, #3 movne r0, #11 bne _06011F10 _06011F08: ldrh r0, [r0, #16] bl WSetListenInterval _06011F10: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06011F1C: .word 0x0380FFF4 arm_func_start PARAMSET_DTIMPeriodReqCmd PARAMSET_DTIMPeriodReqCmd: ; 0x06011F20 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06011F60 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #46] ; 0x2e cmp r1, #1 movne r0, #11 bne _06011F54 ldrh r0, [r0, #16] bl WSetDTIMPeriod _06011F54: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06011F60: .word 0x0380FFF4 arm_func_start PARAMSET_BeaconPeriodReqCmd PARAMSET_BeaconPeriodReqCmd: ; 0x06011F64 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06011FA4 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #46] ; 0x2e cmp r1, #1 movne r0, #11 bne _06011F98 ldrh r0, [r0, #16] bl WSetBeaconPeriod _06011F98: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06011FA4: .word 0x0380FFF4 arm_func_start PARAMSET_SSIDReqCmd PARAMSET_SSIDReqCmd: ; 0x06011FA8 mov r2, r0 mov r0, #1 strh r0, [r1, #2] ldrh r0, [r2, #16] add r1, r2, #18 ldr ip, _06011FC4 ; =WSetSsid bx ip _06011FC4: .word WSetSsid arm_func_start PARAMSET_BSSIDReqCmd PARAMSET_BSSIDReqCmd: ; 0x06011FC8 mov r2, #1 strh r2, [r1, #2] add r0, r0, #16 ldr ip, _06011FDC ; =WSetBssid bx ip _06011FDC: .word WSetBssid arm_func_start PARAMSET_NullKeyModeReqCmd PARAMSET_NullKeyModeReqCmd: ; 0x06011FE0 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06012024 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bcc _06012014 ldrh r0, [r0, #16] bl WSetNullKeyMode mov r2, r0 _06012014: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012024: .word 0x0380FFF4 arm_func_start PARAMSET_BcnSendRecvIndReqCmd PARAMSET_BcnSendRecvIndReqCmd: ; 0x06012028 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _0601206C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bcc _0601205C ldrh r0, [r0, #16] bl WSetBeaconSendRecvIndicate mov r2, r0 _0601205C: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _0601206C: .word 0x0380FFF4 arm_func_start PARAMSET_DiversityReqCmd PARAMSET_DiversityReqCmd: ; 0x06012070 stmfd sp!, {lr} sub sp, sp, #4 mov r2, r0 mov r0, #1 strh r0, [r1, #2] ldr r1, _060120B4 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bcc _060120A8 ldrh r0, [r2, #16] ldrh r1, [r2, #18] bl WSetDiversity _060120A8: add sp, sp, #4 ldmfd sp!, {lr} bx lr _060120B4: .word 0x0380FFF4 arm_func_start PARAMSET_MainAntennaReqCmd PARAMSET_MainAntennaReqCmd: ; 0x060120B8 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _060120FC ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bcc _060120EC ldrh r0, [r0, #16] bl WSetMainAntenna mov r2, r0 _060120EC: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _060120FC: .word 0x0380FFF4 arm_func_start PARAMSET_MaxConnReqCmd PARAMSET_MaxConnReqCmd: ; 0x06012100 mov r3, #1 strh r3, [r1, #2] ldr r2, _06012154 ; =0x0380FFF4 ldr r1, [r2] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #32 movhi r0, r3 bxhi lr ldrh r1, [r0, #16] add r1, r1, #1 strh r1, [r0, #16] ldr r1, [r2] ldrh r2, [r0, #16] add r0, r1, #768 ; 0x300 ldrh r1, [r0, #32] cmp r2, r1 movhi r0, #5 strlsh r2, [r0, #34] ; 0x22 movls r0, #0 bx lr _06012154: .word 0x0380FFF4 arm_func_start PARAMSET_LifeTimeReqCmd PARAMSET_LifeTimeReqCmd: ; 0x06012158 stmdb sp!, {r4, lr} ldr ip, _0601225C ; =0x0380FFF4 ldr r2, [ip] ldr r2, [r2, #796] ; 0x31c mov r3, #1 strh r3, [r1, #2] ldrh r1, [r0, #16] ldr r3, [ip] add r3, r3, #768 ; 0x300 ldrh r3, [r3, #34] ; 0x22 cmp r1, r3 bcc _06012198 ldr r3, _06012260 ; =0x0000FFFF cmp r1, r3 movne r0, #5 bne _06012254 _06012198: ldrh ip, [r0, #20] cmp ip, #63 ; 0x3f bls _060121B4 ldr r3, _06012260 ; =0x0000FFFF cmp ip, r3 movne r0, #5 bne _06012254 _060121B4: ldr r3, _06012260 ; =0x0000FFFF cmp r1, r3 bne _06012208 mov r4, #1 ldr ip, _0601225C ; =0x0380FFF4 mov r3, #28 b _060121F0 _060121D0: mla lr, r4, r3, r2 ldrh r1, [r0, #18] strh r1, [lr, #26] ldrh r1, [lr, #24] cmp r1, #0 ldrneh r1, [r0, #18] strneh r1, [lr, #24] add r4, r4, #1 _060121F0: ldr r1, [ip] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #34] ; 0x22 cmp r4, r1 bcc _060121D0 b _06012240 _06012208: cmp r1, #0 beq _06012240 ldrh lr, [r0, #18] mov r3, #28 mla ip, r1, r3, r2 strh lr, [ip, #26] add ip, r2, #24 ldrh r1, [r0, #16] mul r2, r1, r3 add r3, ip, r2 ldrh r1, [ip, r2] cmp r1, #0 ldrneh r1, [r0, #18] strneh r1, [r3] _06012240: ldrh r0, [r0, #20] cmp r0, #0 beq _06012250 bl WSetFrameLifeTime _06012250: mov r0, #0 _06012254: ldmia sp!, {r4, lr} bx lr _0601225C: .word 0x0380FFF4 _06012260: .word 0x0000FFFF arm_func_start PARAMSET_CCAModeEDThReqCmd PARAMSET_CCAModeEDThReqCmd: ; 0x06012264 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #1 strh r0, [r1, #2] ldrh r0, [r5, #20] cmp r0, #63 ; 0x3f movhi r0, #5 bhi _060122AC ldrh r0, [r5, #16] ldrh r1, [r5, #18] bl WSetCCA_ED movs r4, r0 bne _060122A8 mov r0, #46 ; 0x2e ldrh r1, [r5, #20] bl BBP_Write _060122A8: mov r0, r4 _060122AC: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060122CC ; =WSetAuthAlgo bx ip _060122CC: .word WSetAuthAlgo arm_func_start PARAMSET_PreambleTypeReqCmd PARAMSET_PreambleTypeReqCmd: ; 0x060122D0 mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060122E4 ; =WSetPreambleType bx ip _060122E4: .word WSetPreambleType arm_func_start PARAMSET_SSIDMaskReqCmd PARAMSET_SSIDMaskReqCmd: ; 0x060122E8 mov r2, #1 strh r2, [r1, #2] add r0, r0, #16 ldr ip, _060122FC ; =WSetSsidMask bx ip _060122FC: .word WSetSsidMask arm_func_start PARAMSET_ActiveZoneReqCmd PARAMSET_ActiveZoneReqCmd: ; 0x06012300 mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] mov r1, #0 ldr ip, _06012318 ; =WSetActiveZoneTime bx ip _06012318: .word WSetActiveZoneTime arm_func_start PARAMSET_BeaconLostThReqCmd PARAMSET_BeaconLostThReqCmd: ; 0x0601231C mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _06012330 ; =WSetBeaconLostThreshold bx ip _06012330: .word WSetBeaconLostThreshold arm_func_start PARAMSET_ResBcSsidReqCmd PARAMSET_ResBcSsidReqCmd: ; 0x06012334 mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _06012348 ; =WSetBcSsidResponse bx ip _06012348: .word WSetBcSsidResponse arm_func_start PARAMSET_BeaconTypeReqCmd PARAMSET_BeaconTypeReqCmd: ; 0x0601234C stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06012390 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #32 bhi _06012380 ldrh r0, [r0, #16] bl WSetBeaconType mov r2, r0 _06012380: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012390: .word 0x0380FFF4 arm_func_start PARAMSET_WepKeyReqCmd PARAMSET_WepKeyReqCmd: ; 0x06012394 mov r2, #1 strh r2, [r1, #2] add r0, r0, #16 ldr ip, _060123A8 ; =WSetWepKey bx ip _060123A8: .word WSetWepKey arm_func_start PARAMSET_WepKeyIdReqCmd PARAMSET_WepKeyIdReqCmd: ; 0x060123AC mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060123C0 ; =WSetWepKeyId bx ip _060123C0: .word WSetWepKeyId arm_func_start PARAMSET_WepModeReqCmd PARAMSET_WepModeReqCmd: ; 0x060123C4 mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060123D8 ; =WSetWepMode bx ip _060123D8: .word WSetWepMode arm_func_start PARAMSET_RateReqCmd PARAMSET_RateReqCmd: ; 0x060123DC mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060123F0 ; =WSetRate bx ip _060123F0: .word WSetRate arm_func_start PARAMSET_ModeReqCmd PARAMSET_ModeReqCmd: ; 0x060123F4 stmfd sp!, {lr} sub sp, sp, #4 mov r3, #1 strh r3, [r1, #2] ldr r1, _0601244C ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #76] ; 0x4c cmp r2, #32 movhi r0, r3 bhi _06012440 cmp r2, #32 bne _06012438 ldrh r1, [r1, #86] ; 0x56 cmp r1, #0 movne r0, r3 bne _06012440 _06012438: ldrh r0, [r0, #16] bl WSetMode _06012440: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0601244C: .word 0x0380FFF4 arm_func_start PARAMSET_EnableChannelReqCmd PARAMSET_EnableChannelReqCmd: ; 0x06012450 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _06012494 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bne _06012484 ldrh r0, [r0, #16] bl WSetEnableChannel mov r2, r0 _06012484: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012494: .word 0x0380FFF4 arm_func_start PARAMSET_RetryReqCmd PARAMSET_RetryReqCmd: ; 0x06012498 mov r2, #1 strh r2, [r1, #2] ldrh r0, [r0, #16] ldr ip, _060124AC ; =WSetRetryLimit bx ip _060124AC: .word WSetRetryLimit arm_func_start PARAMSET_MacAdrsReqCmd PARAMSET_MacAdrsReqCmd: ; 0x060124B0 stmfd sp!, {lr} sub sp, sp, #4 mov r2, #1 strh r2, [r1, #2] ldr r1, _060124F4 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bne _060124E4 add r0, r0, #16 bl WSetMacAdrs mov r2, r0 _060124E4: mov r0, r2 add sp, sp, #4 ldmfd sp!, {lr} bx lr _060124F4: .word 0x0380FFF4 arm_func_start PARAMSET_AllReqCmd PARAMSET_AllReqCmd: ; 0x060124F8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r0, #1 strh r0, [r1, #2] ldr r1, _060125E8 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #16 bne _060125DC add r0, r5, #16 bl WSetMacAdrs mov r4, r0 ldrh r0, [r5, #22] bl WSetRetryLimit orr r4, r4, r0 ldrh r0, [r5, #24] bl WSetEnableChannel orr r4, r4, r0 ldrh r0, [r5, #28] bl WSetMode orr r4, r4, r0 ldrh r0, [r5, #30] bl WSetRate orr r4, r4, r0 ldrh r0, [r5, #32] bl WSetWepMode orr r4, r4, r0 ldrh r0, [r5, #34] ; 0x22 bl WSetWepKeyId orr r4, r4, r0 add r0, r5, #36 ; 0x24 bl WSetWepKey orr r4, r4, r0 ldrh r0, [r5, #116] ; 0x74 bl WSetBeaconType orr r4, r4, r0 ldrh r0, [r5, #118] ; 0x76 bl WSetBcSsidResponse orr r4, r4, r0 ldrh r0, [r5, #120] ; 0x78 bl WSetBeaconLostThreshold orr r4, r4, r0 ldrh r0, [r5, #122] ; 0x7a mov r1, #0 bl WSetActiveZoneTime orr r4, r4, r0 add r0, r5, #124 ; 0x7c bl WSetSsidMask orr r4, r4, r0 ldrh r0, [r5, #156] ; 0x9c bl WSetPreambleType orr r4, r4, r0 ldrh r0, [r5, #158] ; 0x9e bl WSetAuthAlgo orr r0, r4, r0 _060125DC: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060125E8: .word 0x0380FFF4 arm_func_start DEV_TestRxReqCmd DEV_TestRxReqCmd: ; 0x060125EC stmdb sp!, {r4, lr} ldr r2, _06012698 ; =0x0380FFF4 ldr r2, [r2] add r4, r2, #836 ; 0x344 mov r3, #1 strh r3, [r1, #2] ldrh r2, [r4, #8] and r1, r2, #240 ; 0xf0 cmp r1, #16 movne r0, r3 bne _06012690 ldrh r1, [r0, #16] cmp r1, #0 beq _06012664 cmp r1, #1 bne _0601268C cmp r2, #16 movne r0, r3 bne _06012690 ldrh r0, [r0, #18] mov r1, r3 bl WSetChannel mov r0, #0 strh r0, [r4, #12] bl WStart mov r0, #32768 ; 0x8000 bl WSetForcePowerState mov r0, #17 strh r0, [r4, #8] b _0601268C _06012664: cmp r2, #17 bne _0601267C mov r0, #0 bl WSetForcePowerState bl WStop b _06012684 _0601267C: mov r0, r3 b _06012690 _06012684: mov r0, #16 strh r0, [r4, #8] _0601268C: mov r0, #0 _06012690: ldmia sp!, {r4, lr} bx lr _06012698: .word 0x0380FFF4 arm_func_start IntrCarrierSuppresionSignal IntrCarrierSuppresionSignal: ; 0x0601269C ldr r0, _0601271C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #92] ; 0x5c cmp r0, #0 beq _060126D8 mov r1, #0 ldr r0, _06012720 ; =0x04804000 strh r1, [r0] strh r1, [r0, #4] ldr r1, _06012724 ; =0x048080A0 ldrh r0, [r1] orr r0, r0, #32768 ; 0x8000 strh r0, [r1] bx lr _060126D8: mov r1, #1 ldr r0, _06012728 ; =0x048080AC strh r1, [r0] mov r2, #0 ldr r0, _0601272C ; =0x04808004 strh r2, [r0] mov r1, #2 ldr r0, _06012730 ; =0x04808012 strh r1, [r0] ldr r1, _06012734 ; =0x0000FFFF ldr r0, _06012738 ; =0x04808010 strh r1, [r0] ldr r0, _0601273C ; =0x04808194 strh r2, [r0] ldr r0, _06012740 ; =0x04808040 strh r2, [r0] bx lr _0601271C: .word 0x0380FFF4 _06012720: .word 0x04804000 _06012724: .word 0x048080A0 _06012728: .word 0x048080AC _0601272C: .word 0x04808004 _06012730: .word 0x04808012 _06012734: .word 0x0000FFFF _06012738: .word 0x04808010 _0601273C: .word 0x04808194 _06012740: .word 0x04808040 arm_func_start FUN_06012744 FUN_06012744: ; 0x06012744 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _0601285C ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 bl WStart bl WStop mov r0, #6 bl BBP_Read strh r0, [r4, #172] ; 0xac ldrh r0, [r5, #18] cmp r0, #4 bne _06012788 mov r0, #6 mov r1, #0 bl BBP_Write _06012788: mov r0, #0 ldr r1, _06012860 ; =0x04804000 mov r2, #12 bl FUN_0600055C mov r0, #20 ldr r1, _06012860 ; =0x04804000 strh r0, [r1, #8] mov r0, #2000 ; 0x7d0 strh r0, [r1, #10] add r2, r1, #12 mov r3, #0 ldr r1, _06012864 ; =0x00005555 ldr r0, _06012868 ; =0x000007EC _060127BC: strh r1, [r2], #2 add r3, r3, #2 cmp r3, r0 bcc _060127BC mov r1, #8 ldr r0, _06012860 ; =0x04804000 strh r1, [r0, #12] mov r1, #6 ldr r0, _0601286C ; =0x04808194 strh r1, [r0] mov r0, #18 strh r0, [r4, #8] mov r1, #1 strh r1, [r4, #24] ldrh r0, [r5, #22] bl WSetChannel mov r1, #32768 ; 0x8000 ldr r0, _06012870 ; =0x04808040 strh r1, [r0] ldr r0, _06012874 ; =0x000005DC bl WWaitus mov r1, #2 ldr r0, _06012878 ; =0x04808012 strh r1, [r0] mov r1, #1 ldr r0, _0601287C ; =0x04808004 strh r1, [r0] ldr r0, _06012880 ; =0x048080AE strh r1, [r0] ldr r1, _06012860 ; =0x04804000 ldr r0, _06012884 ; =0x00003FFF and r0, r1, r0 mov r0, r0, lsl #15 mov r0, r0, lsr #16 orr r1, r0, #32768 ; 0x8000 ldr r0, _06012888 ; =0x048080A0 strh r1, [r0] add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0601285C: .word 0x0380FFF4 _06012860: .word 0x04804000 _06012864: .word 0x00005555 _06012868: .word 0x000007EC _0601286C: .word 0x04808194 _06012870: .word 0x04808040 _06012874: .word 0x000005DC _06012878: .word 0x04808012 _0601287C: .word 0x04808004 _06012880: .word 0x048080AE _06012884: .word 0x00003FFF _06012888: .word 0x048080A0 arm_func_start DEV_TestSignalReqCmd DEV_TestSignalReqCmd: ; 0x0601288C stmdb sp!, {r4, r5, r6, lr} sub sp, sp, #8 mov r5, r0 ldr r0, _06012ADC ; =0x0380FFF4 ldr r0, [r0] add r4, r0, #836 ; 0x344 mov r0, #1 strh r0, [r1, #2] ldrh r1, [r4, #8] and r1, r1, #240 ; 0xf0 cmp r1, #16 bne _06012AD0 ldrh r0, [r5, #16] cmp r0, #1 movhi r0, #5 bhi _06012AD0 ldrh r0, [r5, #20] cmp r0, #10 beq _060128E4 cmp r0, #20 movne r0, #5 bne _06012AD0 _060128E4: ldrh r0, [r5, #18] cmp r0, #4 movhi r0, #5 bhi _06012AD0 mov r0, #0 bl FLASH_VerifyCheckSum cmp r0, #0 movne r0, #14 bne _06012AD0 ldrh r0, [r5, #16] cmp r0, #0 beq _06012A3C cmp r0, #1 bne _06012ACC ldrh r0, [r4, #8] cmp r0, #16 movne r0, #1 bne _06012AD0 mov r0, #0 str r0, [sp] mov r0, #101 ; 0x65 mov r1, #1 add r2, sp, #0 bl FLASH_DirectRead ldr r6, [sp] mov r0, #1 bl BBP_Read cmp r6, r0 beq _0601296C mov r0, #1 mov r1, r6 bl BBP_Write ldr r0, _06012AE0 ; =0x00001388 bl WWaitus _0601296C: ldrh r0, [r5, #18] cmp r0, #4 addls pc, pc, r0, lsl #2 b _06012ACC b _06012990 b _06012990 b _06012990 b _06012A30 b _06012A30 _06012990: mov r0, #17 strh r0, [r4, #8] ldrh r0, [r5, #22] mov r1, #1 bl WSetChannel mov r1, #32768 ; 0x8000 ldr r0, _06012AE4 ; =0x04808040 strh r1, [r0] ldr r0, _06012AE8 ; =0x000005DC bl WWaitus ldrh r0, [r5, #20] strh r0, [r4, #22] mov r0, #2 bl BBP_Read str r0, [sp] ldrh r1, [r5, #18] cmp r1, #1 orrls r0, r0, #16 strls r0, [sp] ldrh r1, [r5, #20] ldr r0, _06012AEC ; =0x048081A4 strh r1, [r0] ldrh r1, [r5, #18] cmp r1, #1 ldrne r0, _06012AF0 ; =0x048081A2 strneh r1, [r0] bne _06012A14 ldr r0, [sp] orr r0, r0, #32 str r0, [sp] mov r1, #3 ldr r0, _06012AF0 ; =0x048081A2 strh r1, [r0] _06012A14: mov r0, #2 ldr r1, [sp] bl BBP_Write ldr r1, _06012AF4 ; =0x00000823 ldr r0, _06012AF8 ; =0x048081A0 strh r1, [r0] b _06012ACC _06012A30: mov r0, r5 bl FUN_06012744 b _06012ACC _06012A3C: ldrh r0, [r4, #8] cmp r0, #17 bne _06012A8C bl ClearPeriodicTimeOut mov r2, #0 ldr r0, _06012AF8 ; =0x048081A0 strh r2, [r0] mov r1, #1 ldr r0, _06012AF0 ; =0x048081A2 strh r1, [r0] ldr r0, _06012AE4 ; =0x04808040 strh r2, [r0] mov r0, #2 bl BBP_Read str r0, [sp] bic r1, r0, #48 ; 0x30 str r1, [sp] mov r0, #2 bl BBP_Write b _06012AC4 _06012A8C: cmp r0, #18 bne _06012ABC mov r0, #0 strh r0, [r4, #24] ldr r1, _06012AFC ; =0x04808004 _06012AA0: ldrh r0, [r1] cmp r0, #0 bne _06012AA0 mov r0, #6 ldrh r1, [r4, #172] ; 0xac bl BBP_Write b _06012AC4 _06012ABC: mov r0, #1 b _06012AD0 _06012AC4: mov r0, #16 strh r0, [r4, #8] _06012ACC: mov r0, #0 _06012AD0: add sp, sp, #8 ldmia sp!, {r4, r5, r6, lr} bx lr _06012ADC: .word 0x0380FFF4 _06012AE0: .word 0x00001388 _06012AE4: .word 0x04808040 _06012AE8: .word 0x000005DC _06012AEC: .word 0x048081A4 _06012AF0: .word 0x048081A2 _06012AF4: .word 0x00000823 _06012AF8: .word 0x048081A0 _06012AFC: .word 0x04808004 arm_func_start DEV_GetStateReqCmd DEV_GetStateReqCmd: ; 0x06012B00 mov r0, #2 strh r0, [r1, #2] ldr r0, _06012B24 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c strh r0, [r1, #6] mov r0, #0 bx lr _06012B24: .word 0x0380FFF4 arm_func_start DEV_GetWlInfoReqCmd DEV_GetWlInfoReqCmd: ; 0x06012B28 stmdb sp!, {r4, lr} mov r4, r1 ldr r0, _06012B80 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #0 moveq r0, #1 beq _06012B78 mov r0, #92 ; 0x5c strh r0, [r4, #2] bl WUpdateCounter ldr r0, _06012B80 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06012B84 ; =0x0000053C add r0, r1, r0 add r1, r4, #8 mov r2, #180 ; 0xb4 bl FUN_06012B88 mov r0, #0 _06012B78: ldmia sp!, {r4, lr} bx lr _06012B80: .word 0x0380FFF4 _06012B84: .word 0x0000053C arm_func_start FUN_06012B88 FUN_06012B88: ; 0x06012B88 ldr pc, _06012B8C ; =MIi_CpuCopy32 _06012B8C: .word MIi_CpuCopy32 arm_func_start DEV_GetVerInfoReqCmd DEV_GetVerInfoReqCmd: ; 0x06012B90 stmdb sp!, {r4, lr} mov r4, r1 mov r0, #9 strh r0, [r4, #2] ldr r0, _06012C2C ; =_06019950 add r1, r4, #6 mov r2, #8 bl FUN_06000EA0 ldr r0, _06012C30 ; =0x04808000 ldrh r0, [r0] strh r0, [r4, #14] ldr r0, _06012C34 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #32768 ; 0x8000 moveq r0, #109 ; 0x6d streqh r0, [r4, #16] ldreq r0, _06012C38 ; =0x0000933D streqh r0, [r4, #18] beq _06012BF8 mov r0, #0 bl BBP_Read strh r0, [r4, #16] bl CalcBbpCRC strh r0, [r4, #18] _06012BF8: ldr r0, _06012C34 ; =0x0380FFF4 ldr r1, [r0] add r0, r1, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #16384 ; 0x4000 addne r0, r1, #1280 ; 0x500 ldrneh r0, [r0, #248] ; 0xf8 strneh r0, [r4, #20] moveq r0, #2 streqh r0, [r4, #20] mov r0, #0 ldmia sp!, {r4, lr} bx lr _06012C2C: .word _06019950 _06012C30: .word 0x04808000 _06012C34: .word 0x0380FFF4 _06012C38: .word 0x0000933D arm_func_start DEV_ClearWlInfoReqCmd DEV_ClearWlInfoReqCmd: ; 0x06012C3C stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _06012C7C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #0 moveq r0, #1 beq _06012C70 mov r0, #1 strh r0, [r1, #2] bl WInitCounter mov r0, #0 _06012C70: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012C7C: .word 0x0380FFF4 arm_func_start DEV_RebootReqCmd DEV_RebootReqCmd: ; 0x06012C80 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #1 strh r0, [r1, #2] ldr r0, _06012CC0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #32 bcc _06012CAC bl WStop _06012CAC: bl WlessLibReboot mov r0, #0 add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012CC0: .word 0x0380FFF4 arm_func_start DEV_Class1ReqCmd DEV_Class1ReqCmd: ; 0x06012CC4 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #1 strh r0, [r1, #2] ldr r0, _06012D20 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r1, [r0, #76] ; 0x4c cmp r1, #16 beq _06012D00 cmp r1, #32 bne _06012D10 ldrh r0, [r0, #86] ; 0x56 cmp r0, #0 bne _06012D10 _06012D00: mov r0, #32 bl WSetStaState mov r0, #0 b _06012D14 _06012D10: mov r0, #1 _06012D14: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012D20: .word 0x0380FFF4 arm_func_start DEV_IdleReqCmd DEV_IdleReqCmd: ; 0x06012D24 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #1 strh r0, [r1, #2] ldr r1, _06012D84 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r2, [r1, #76] ; 0x4c cmp r2, #32 bhi _06012D78 ldrh r1, [r1, #86] ; 0x56 cmp r1, #0 bne _06012D78 mov r0, #0 bl FLASH_VerifyCheckSum cmp r0, #0 movne r0, #14 bne _06012D78 mov r0, #16 bl WSetStaState mov r0, #0 _06012D78: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012D84: .word 0x0380FFF4 arm_func_start DEV_ShutdownReqCmd DEV_ShutdownReqCmd: ; 0x06012D88 stmfd sp!, {lr} sub sp, sp, #4 mov r0, #1 strh r0, [r1, #2] ldr r1, _06012DD0 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #76] ; 0x4c cmp r1, #0 beq _06012DB8 cmp r1, #16 bne _06012DC4 _06012DB8: mov r0, #0 bl WSetStaState mov r0, #0 _06012DC4: add sp, sp, #4 ldmfd sp!, {lr} bx lr _06012DD0: .word 0x0380FFF4 arm_func_start IssueMaDataConfirm IssueMaDataConfirm: ; 0x06012DD4 ldrh r2, [r1, #14] add r2, r1, r2, lsl #1 add r3, r2, #16 ldrh r2, [r2, #16] strh r2, [r1, #12] mov r2, #2 strh r2, [r3, #2] mov r2, #0 strh r2, [r3, #4] ldrh r2, [r1, #24] strh r2, [r3, #6] ldr ip, _06012E08 ; =SendMessageToWmDirect bx ip _06012E08: .word SendMessageToWmDirect arm_func_start MA_ClrDataReqCmd MA_ClrDataReqCmd: ; 0x06012E0C stmdb sp!, {r4, lr} mov r4, r0 mov r0, #1 strh r0, [r1, #2] ldrh r0, [r4, #16] ands r0, r0, #1 beq _06012E2C bl ClearTxKeyData _06012E2C: ldrh r0, [r4, #16] ands r0, r0, #2 beq _06012E3C bl ClearTxMp _06012E3C: ldrh r0, [r4, #16] ands r0, r0, #4 beq _06012E4C bl ClearTxData _06012E4C: mov r0, #0 ldmia sp!, {r4, lr} bx lr arm_func_start MA_TestDataReqCmd MA_TestDataReqCmd: ; 0x06012E58 stmdb sp!, {r4, lr} mov r4, r0 mov r0, #1 strh r0, [r1, #2] ldr r0, _06012EB4 ; =0x0000FFFF strh r0, [r4, #12] add r0, r4, #16 mov r1, #0 strh r1, [r0, #2] ldrh r1, [r0, #6] strh r1, [r0, #18] bl CAM_IncFrameCount ldr r0, _06012EB8 ; =0x0380FFF4 ldr r1, [r0] add r0, r1, #512 ; 0x200 add r1, r1, #404 ; 0x194 mov r2, r4 bl MoveHeapBuf mov r0, #0 bl TxqPri mov r0, #0 ldmia sp!, {r4, lr} bx lr _06012EB4: .word 0x0000FFFF _06012EB8: .word 0x0380FFF4 arm_func_start MA_MpReqCmd MA_MpReqCmd: ; 0x06012EBC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 mov r5, r0 ldr r0, _06013378 ; =0x0380FFF4 ldr r2, [r0] add r0, r2, #836 ; 0x344 str r0, [sp] add r7, r2, #796 ; 0x31c add sl, r2, #380 ; 0x17c ldr r0, _0601337C ; =0x0000042C add r9, r2, r0 add r0, r2, #1536 ; 0x600 ldrh r8, [r0, #144] ; 0x90 mov r0, #1 str r0, [sp, #4] strh r0, [r1, #2] ldrh r0, [r7, #18] cmp r0, #1 movne r0, #11 bne _0601336C ldrh r0, [r9, #60] ; 0x3c cmp r0, #0 movne r0, #8 bne _0601336C ldr r4, [r9, #68] ; 0x44 ldrh r1, [r5, #16] ands r0, r1, #32768 ; 0x8000 beq _06012F70 ands r0, r1, #2 ldreqh r0, [r9, #148] ; 0x94 streqh r0, [r5, #20] ldrh r0, [r5, #16] ands r0, r0, #4 ldreqh r0, [r9, #160] ; 0xa0 streqh r0, [r5, #22] ldrh r0, [r5, #16] ands r0, r0, #8 ldreqh r0, [r9, #150] ; 0x96 streqh r0, [r5, #24] ldrh r0, [r5, #16] ands r0, r0, #16 ldreqh r0, [r9, #156] ; 0x9c streqh r0, [r5, #28] moveq r0, #0 streq r0, [sp, #4] _06012F70: ldrh r0, [r5, #28] cmp r0, #516 ; 0x204 movhi r0, #5 bhi _0601336C mov r1, #2 mov r6, #0 b _06012FA0 _06012F8C: ldrh r0, [r5, #22] ands r0, r0, r1 addne r6, r6, #1 mov r0, r1, lsl #17 mov r1, r0, lsr #16 _06012FA0: cmp r1, #0 bne _06012F8C ldrh r0, [r5, #20] strh r0, [r9, #148] ; 0x94 ldrh r2, [r5, #20] ands r0, r2, #32768 ; 0x8000 beq _06012FEC ldr r0, _06013380 ; =0x00007FFF and r0, r2, r0 strh r0, [r5, #20] ldrh r0, [r5, #20] sub r0, r0, #208 ; 0xd0 mov r2, r0, lsr #2 mov r0, #234 ; 0xea strh r0, [r4, #14] cmp r2, #65536 ; 0x10000 bls _06013038 mov r0, #5 b _0601336C _06012FEC: ands r0, r8, #2 movne fp, #1 movne r1, #2 movne r0, #6 moveq fp, #0 moveq r1, fp moveq r0, fp add r2, r2, fp ldr r3, _06013384 ; =0x00000206 add r3, fp, r3 cmp r2, r3 movhi r0, #5 bhi _0601336C mov r3, r2, lsl #2 add r3, r3, #208 ; 0xd0 add r1, r1, r3 strh r1, [r5, #20] add r0, r0, #234 ; 0xea strh r0, [r4, #14] _06013038: add r0, r2, #9 bic fp, r0, #1 mul r0, fp, r6 str r0, [sp, #8] add r0, sl, #12 ldr r1, [sp, #8] add r1, r1, #26 bl AllocateHeapBuf str r0, [r9, #144] ; 0x90 ldr r0, [r9, #144] ; 0x90 cmp r0, #0 moveq r0, #8 beq _0601336C mov r0, #1 strh r0, [r9, #60] ; 0x3c ldrh r0, [r9, #62] ; 0x3e add r0, r0, #1 strh r0, [r9, #62] ; 0x3e ldrh r0, [r5, #24] strh r0, [r9, #150] ; 0x96 ldrh r0, [r5, #22] strh r0, [r9, #152] ; 0x98 mov r1, #0 strh r1, [r9, #154] ; 0x9a ldrh r0, [r5, #28] strh r0, [r9, #156] ; 0x9c ldrh r0, [r5, #18] strh r0, [r9, #158] ; 0x9e strh r1, [r4] ldrh r0, [r5, #22] strh r0, [r4, #2] strh r1, [r4, #4] mov r0, #20 strh r0, [r4, #8] ldrh r0, [r5, #28] add r0, r0, #34 ; 0x22 strh r0, [r4, #10] mov r0, #552 ; 0x228 strh r0, [r4, #12] ldrh r1, [r4, #14] ldrh r0, [r5, #20] add r0, r0, #10 mla r1, r0, r6, r1 strh r1, [r4, #14] add r0, r4, #16 ldr r1, _06013388 ; =MP_ADRS ldr r2, [sp] add r2, r2, #100 ; 0x64 add r3, r7, #8 bl WSetMacAdrs3 ldrh r0, [r5, #16] ands r0, r0, #32768 ; 0x8000 beq _06013120 ldrh r1, [r4, #34] ; 0x22 ldr r0, _0601338C ; =0x0000FFFF cmp r1, r0 movne r7, #16384 ; 0x4000 bne _0601312C _06013120: mov r7, #0 ldr r0, _0601338C ; =0x0000FFFF strh r0, [r4, #34] ; 0x22 _0601312C: ldrh r0, [r5, #20] strh r0, [r4, #36] ; 0x24 ldrh r0, [r5, #22] strh r0, [r4, #38] ; 0x26 ldrh r0, [r5, #30] strh r0, [r4, #40] ; 0x28 ldr r0, [sp, #4] cmp r0, #0 beq _06013170 ldrh r0, [r5, #28] cmp r0, #0 beq _06013170 bl WUpdateCounter add r0, r4, #42 ; 0x2a ldr r1, [r5, #32] ldrh r2, [r5, #28] bl DMA_Write _06013170: ands r0, r8, #4 beq _060131A0 add r1, r4, #40 ; 0x28 ldrh r0, [r5, #28] add r0, r0, #2 add r0, r1, r0 add r0, r0, #3 bic r1, r0, #3 ldr r0, _06013390 ; =0x0000B6B8 strh r0, [r1] ldr r0, _06013394 ; =0x00001D46 strh r0, [r1, #2] _060131A0: mov r1, #388 ; 0x184 ldr r0, [r9, #144] ; 0x90 strh r1, [r0, #12] ldr r0, [sp, #8] add r0, r0, #11 mov r1, r0, lsr #1 ldr r0, [r9, #144] ; 0x90 strh r1, [r0, #14] ldrh r1, [r5, #22] ldr r0, [r9, #144] ; 0x90 strh r1, [r0, #16] ldr r0, [r9, #144] ; 0x90 strh r6, [r0, #20] ldr r0, [r9, #144] ; 0x90 strh fp, [r0, #22] mov r0, #0 ldr r1, [r9, #144] ; 0x90 strh r0, [r1, #24] ldr r1, [r9, #144] ; 0x90 add r3, r1, #26 mov r2, #1 mov r1, #2 ldr r8, _0601338C ; =0x0000FFFF b _06013228 _06013200: ldrh ip, [r5, #22] ands ip, ip, r1 strneh r8, [r3] strneh r0, [r3, #2] strneh r0, [r3, #6] strneh r2, [r3, #4] addne r3, r3, fp mov r1, r1, lsl #17 mov r1, r1, lsr #16 add r2, r2, #1 _06013228: cmp r1, #0 bne _06013200 ldrh r1, [r5, #20] ldr r0, _06013398 ; =0x048080C4 strh r1, [r0] ldrh r1, [r4, #14] ldr r0, _0601339C ; =0x048080C0 strh r1, [r0] ldrh r0, [r5, #26] rsb r8, r0, #65536 ; 0x10000 ldrh r0, [r5, #24] cmp r0, #0 bne _060132CC ldrh r0, [r5, #28] add r0, r0, #34 ; 0x22 mov r0, r0, lsl #2 add r2, r0, #96 ; 0x60 ldr r0, _060133A0 ; =0x04808000 ldrh r0, [r0] cmp r0, #5184 ; 0x1440 addne r2, r2, #1000 ; 0x3e8 ldrh r0, [r5, #20] mul r1, r0, r6 add r0, r1, #904 ; 0x388 add r0, r2, r0 add r0, r0, #50 ; 0x32 mov r1, #10 bl FUN_06003B68 mov r5, r0 bl FUN_060001A4 ldr r1, _060133A4 ; =0x04808118 strh r5, [r1] ldr r1, _060133A8 ; =0x00003FFF and r1, r4, r1 mov r1, r1, lsr #1 orr r1, r1, #32768 ; 0x8000 orr r2, r1, r7 ldr r1, _060133AC ; =0x04808090 strh r2, [r1] bl FUN_060001AC b _06013368 _060132CC: bl FUN_060001A4 mov r6, r0 ldr r0, _060133B0 ; =0x048080F8 ldrh r0, [r0] add r1, r8, r0 ldr r0, _0601338C ; =0x0000FFFF and r0, r1, r0 mov r1, #10 bl FUN_06003B68 ldrh r2, [r5, #24] add r1, r0, #3 cmp r1, r2 bcs _06013338 sub r0, r2, r0 sub r1, r0, #1 ldr r0, _060133A4 ; =0x04808118 strh r1, [r0] ldr r0, _060133A8 ; =0x00003FFF and r0, r4, r0 mov r0, r0, lsr #1 orr r0, r0, #32768 ; 0x8000 orr r1, r0, r7 ldr r0, _060133AC ; =0x04808090 strh r1, [r0] mov r0, r6 bl FUN_060001AC b _06013368 _06013338: mov r0, r6 bl FUN_060001AC add r0, sl, #12 ldr r1, [r9, #144] ; 0x90 bl ReleaseHeapBuf mov r0, #0 strh r0, [r9, #60] ; 0x3c ldrh r0, [r9, #62] ; 0x3e sub r0, r0, #1 strh r0, [r9, #62] ; 0x3e mov r0, #5 b _0601336C _06013368: mov r0, #0 _0601336C: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06013378: .word 0x0380FFF4 _0601337C: .word 0x0000042C _06013380: .word 0x00007FFF _06013384: .word 0x00000206 _06013388: .word MP_ADRS _0601338C: .word 0x0000FFFF _06013390: .word 0x0000B6B8 _06013394: .word 0x00001D46 _06013398: .word 0x048080C4 _0601339C: .word 0x048080C0 _060133A0: .word 0x04808000 _060133A4: .word 0x04808118 _060133A8: .word 0x00003FFF _060133AC: .word 0x04808090 _060133B0: .word 0x048080F8 arm_func_start MA_KeyDataReqCmd MA_KeyDataReqCmd: ; 0x060133B4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 ldr r0, _0601353C ; =0x0380FFF4 ldr r3, [r0] add r2, r3, #836 ; 0x344 add r8, r3, #796 ; 0x31c ldr r0, _06013540 ; =0x0000042C add r7, r3, r0 add r0, r3, #1536 ; 0x600 ldrh r6, [r0, #144] ; 0x90 mov r9, #1 strh r9, [r1, #2] ldrh r0, [r8, #18] cmp r0, #2 movne r0, #11 bne _06013530 ldrh r0, [sl, #16] cmp r0, #516 ; 0x204 movhi r0, #5 bhi _06013530 ldrh r0, [r7, #80] ; 0x50 cmp r0, #0 moveq r9, #0 mov r0, #20 mul r4, r9, r0 add r1, r7, #80 ; 0x50 add fp, r1, r4 ldrh r1, [r1, r4] cmp r1, #0 movne r0, #8 bne _06013530 ldr r1, _06013544 ; =0x04808094 ldrh r1, [r1] ands r1, r1, #32768 ; 0x8000 movne r0, #8 bne _06013530 add r1, r7, r4 ldr r5, [r1, #88] ; 0x58 mov r1, #0 strh r1, [r5] strh r1, [r5, #4] strh r0, [r5, #8] ldrh r0, [sl, #16] add r0, r0, #30 strh r0, [r5, #10] mov r0, #280 ; 0x118 strh r0, [r5, #12] add r0, r5, #16 add r1, r2, #100 ; 0x64 add r2, r8, #8 ldr r3, _06013548 ; =MPKEY_ADRS bl WSetMacAdrs3 ldrh r0, [sl, #18] strh r0, [r5, #36] ; 0x24 ldrh r0, [sl, #16] cmp r0, #0 beq _060134B8 cmp r9, #0 bne _060134A8 bl WUpdateCounter _060134A8: add r0, r5, #38 ; 0x26 ldr r1, [sl, #20] ldrh r2, [sl, #16] bl DMA_Write _060134B8: ands r0, r6, #4 beq _060134E8 add r1, r5, #36 ; 0x24 ldrh r0, [sl, #16] add r0, r0, #2 add r0, r1, r0 add r0, r0, #3 bic r1, r0, #3 ldr r0, _0601354C ; =0x0000B6B8 strh r0, [r1] ldr r0, _06013550 ; =0x00001D46 strh r0, [r1, #2] _060134E8: mov r0, #1 strh r0, [fp] add r1, r7, #82 ; 0x52 ldrh r0, [r1, r4] add r0, r0, #1 strh r0, [r1, r4] ldr r0, _06013554 ; =0x00003FFF and r0, r5, r0 mov r0, r0, lsr #1 orr r1, r0, #32768 ; 0x8000 ldr r0, _06013544 ; =0x04808094 strh r1, [r0] ldrh r0, [r8, #30] mov r0, r0, lsl #24 movs r0, r0, lsr #31 bne _0601352C bl WSetKSID _0601352C: mov r0, #0 _06013530: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0601353C: .word 0x0380FFF4 _06013540: .word 0x0000042C _06013544: .word 0x04808094 _06013548: .word MPKEY_ADRS _0601354C: .word 0x0000B6B8 _06013550: .word 0x00001D46 _06013554: .word 0x00003FFF arm_func_start MA_DataReqCmd MA_DataReqCmd: ; 0x06013558 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 ldr r0, _06013734 ; =0x0380FFF4 ldr r0, [r0] add r8, r0, #836 ; 0x344 add r7, r0, #796 ; 0x31c add r6, r0, #380 ; 0x17c add r5, r9, #16 ldrh r1, [r9, #22] ldr r0, _06013738 ; =0x000005E4 cmp r1, r0 movhi r0, #5 bhi _06013728 ldrh r0, [r7, #18] cmp r0, #1 bne _060135C4 add r0, r5, #24 bl CAM_Search mov r4, r0 cmp r4, #255 ; 0xff beq _060135BC bl CAM_GetStaState cmp r0, #64 ; 0x40 beq _060135C8 _060135BC: mov r0, #10 b _06013728 _060135C4: ldrh r4, [r8, #136] ; 0x88 _060135C8: strh r4, [r5, #2] ldr r0, _06013734 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #1004] ; 0x3ec strh r0, [r5, #4] ldrh r1, [r5, #14] ands r0, r1, #255 ; 0xff strneh r1, [r5, #16] movne r0, #0 strneh r0, [r5, #14] bne _06013600 mov r0, r4 bl CAM_GetTxRate strh r0, [r5, #16] _06013600: ldrh r0, [r5, #6] cmp r0, #0 bne _06013628 ldrh r0, [r8, #138] ; 0x8a orr r0, r0, #64 ; 0x40 bic r0, r0, #16384 ; 0x4000 strh r0, [r5, #20] mov r0, #28 strh r0, [r5, #18] b _06013650 _06013628: ldrh r0, [r8, #138] ; 0x8a strh r0, [r5, #20] ldrh r0, [r7, #24] cmp r0, #0 ldreqh r0, [r5, #6] addeq r0, r0, #28 streqh r0, [r5, #18] ldrneh r0, [r5, #6] addne r0, r0, #36 ; 0x24 strneh r0, [r5, #18] _06013650: ldrh r0, [r7, #18] cmp r0, #1 beq _06013670 cmp r0, #2 beq _060136EC cmp r0, #3 beq _060136EC b _06013724 _06013670: add r0, r5, #36 ; 0x24 add r1, r5, #30 bl WSetMacAdrs1 add r0, r5, #30 add r1, r8, #100 ; 0x64 bl WSetMacAdrs1 cmp r4, #0 bne _060136C8 add r0, r6, #132 ; 0x84 mov r1, r9 bl CAM_AddBcFrame ldr r0, _06013734 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r1, [r0, #46] ; 0x2e ldrh r0, [r0, #50] ; 0x32 mvn r0, r0 ands r0, r1, r0 bne _06013724 mov r0, #2 bl TxqPri b _06013724 _060136C8: mov r0, r5 bl CAM_IncFrameCount add r0, r6, #132 ; 0x84 add r1, r6, #24 mov r2, r9 bl MoveHeapBuf mov r0, #0 bl TxqPri b _06013724 _060136EC: add r0, r5, #36 ; 0x24 add r1, r5, #24 bl WSetMacAdrs1 add r0, r5, #24 add r1, r8, #100 ; 0x64 bl WSetMacAdrs1 mov r0, r5 bl CAM_IncFrameCount add r0, r6, #132 ; 0x84 add r1, r6, #24 mov r2, r9 bl MoveHeapBuf mov r0, #0 bl TxqPri _06013724: mov r0, #129 ; 0x81 _06013728: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06013734: .word 0x0380FFF4 _06013738: .word 0x000005E4 arm_func_start InitTxCtrl InitTxCtrl: ; 0x0601373C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r0, _06013A30 ; =0x0380FFF4 ldr r7, [r0] ldr r0, _06013A34 ; =0x0000042C add r6, r7, r0 add r5, r7, #836 ; 0x344 add r4, r7, #796 ; 0x31c mov r0, #0 mov r1, r6 mov r2, #176 ; 0xb0 bl FUN_0600AEC4 mov r1, #0 add r0, r7, #1024 ; 0x400 strh r1, [r0, #44] ; 0x2c str r1, [r6, #12] strh r1, [r6, #20] str r1, [r6, #32] strh r1, [r6, #40] ; 0x28 str r1, [r6, #52] ; 0x34 ldr r0, _06013A38 ; =0x0000FFFF strh r0, [r6, #162] ; 0xa2 strh r0, [r6, #164] ; 0xa4 ldrh r0, [r5, #12] cmp r0, #3 addls pc, pc, r0, lsl #2 b _06013A10 b _060137B8 b _06013838 b _060138E4 b _06013994 _060137B8: ldr r0, _06013A3C ; =0x04804170 str r0, [r6, #8] ldr r0, _06013A40 ; =0x04804028 str r0, [r6, #28] ldr r0, _06013A44 ; =0x04804000 str r0, [r6, #48] ; 0x30 ldr r0, _06013A48 ; =TxqEndData str r0, [r6, #16] ldr r0, _06013A4C ; =TxqEndManCtrl str r0, [r6, #36] ; 0x24 ldr r0, _06013A50 ; =_060153E4 str r0, [r6, #56] ; 0x38 ldr r2, _06013A54 ; =0x0000B6B8 ldr r0, _06013A58 ; =0x04804024 strh r2, [r0] ldr r1, _06013A5C ; =0x00001D46 ldr r0, _06013A60 ; =0x04804026 strh r1, [r0] ldr r0, _06013A64 ; =0x0480416C strh r2, [r0] ldr r0, _06013A68 ; =0x0480416E strh r1, [r0] ldr r0, _06013A6C ; =0x04804790 strh r2, [r0] ldr r0, _06013A70 ; =0x04804792 strh r1, [r0] mov r0, #8 strh r0, [r5, #138] ; 0x8a mov r1, #1 ldr r0, _06013A74 ; =0x048080AE strh r1, [r0] b _06013A10 _06013838: ldr r0, _06013A78 ; =0x04804AA0 str r0, [r6, #8] ldr r0, _06013A7C ; =0x04804958 str r0, [r6, #28] ldr r0, _06013A80 ; =0x04804334 str r0, [r6, #48] ; 0x30 ldr r0, _06013A48 ; =TxqEndData str r0, [r6, #16] ldr r0, _06013A4C ; =TxqEndManCtrl str r0, [r6, #36] ; 0x24 ldr r0, _06013A84 ; =TxqEndBroadCast str r0, [r6, #56] ; 0x38 ldr r2, _06013A88 ; =0x04804238 str r2, [r6, #128] ; 0x80 ldr r0, _06013A44 ; =0x04804000 str r0, [r6, #68] ; 0x44 ldr r1, _06013A54 ; =0x0000B6B8 ldr r0, _06013A8C ; =0x04804234 strh r1, [r0] ldr r0, _06013A5C ; =0x00001D46 ldr r3, _06013A90 ; =0x04804236 strh r0, [r3] ldr r3, _06013A94 ; =0x04804330 strh r1, [r3] ldr r3, _06013A98 ; =0x04804332 strh r0, [r3] ldr r3, _06013A9C ; =0x04804954 strh r1, [r3] ldr r3, _06013AA0 ; =0x04804956 strh r0, [r3] ldr r3, _06013AA4 ; =0x04804A9C strh r1, [r3] ldr r3, _06013AA8 ; =0x04804A9E strh r0, [r3] ldr r3, _06013AAC ; =0x048050C0 strh r1, [r3] ldr r1, _06013AB0 ; =0x048050C2 strh r0, [r1] mov r0, #520 ; 0x208 strh r0, [r5, #138] ; 0x8a str r2, [r6, #128] ; 0x80 bl MakeBeaconFrame b _06013A10 _060138E4: ldr r0, _06013AB4 ; =0x048045D8 str r0, [r6, #8] ldr r0, _06013AB8 ; =0x04804490 str r0, [r6, #28] ldr r0, _06013ABC ; =0x04804468 str r0, [r6, #48] ; 0x30 ldr r0, _06013A48 ; =TxqEndData str r0, [r6, #16] ldr r0, _06013A4C ; =TxqEndManCtrl str r0, [r6, #36] ; 0x24 ldr r0, _06013A50 ; =_060153E4 str r0, [r6, #56] ; 0x38 ldr r0, _06013A44 ; =0x04804000 str r0, [r6, #88] ; 0x58 ldr r0, _06013A8C ; =0x04804234 str r0, [r6, #108] ; 0x6c ldr r2, _06013A54 ; =0x0000B6B8 ldr r0, _06013AC0 ; =0x04804230 strh r2, [r0] ldr r1, _06013A5C ; =0x00001D46 ldr r0, _06013AC4 ; =0x04804232 strh r1, [r0] ldr r0, _06013AC8 ; =0x04804464 strh r2, [r0] ldr r0, _06013ACC ; =0x04804466 strh r1, [r0] ldr r0, _06013AD0 ; =0x0480448C strh r2, [r0] ldr r0, _06013AD4 ; =0x0480448E strh r1, [r0] ldr r0, _06013AD8 ; =0x048045D4 strh r2, [r0] ldr r0, _06013ADC ; =0x048045D6 strh r1, [r0] ldr r0, _06013AE0 ; =0x04804BF8 strh r2, [r0] ldr r0, _06013AE4 ; =0x04804BFA strh r1, [r0] mov r0, #264 ; 0x108 strh r0, [r5, #138] ; 0x8a mov r1, #13 ldr r0, _06013A74 ; =0x048080AE strh r1, [r0] b _06013A10 _06013994: ldr r0, _06013A3C ; =0x04804170 str r0, [r6, #8] ldr r0, _06013A40 ; =0x04804028 str r0, [r6, #28] ldr r0, _06013A44 ; =0x04804000 str r0, [r6, #48] ; 0x30 ldr r0, _06013A48 ; =TxqEndData str r0, [r6, #16] ldr r0, _06013A4C ; =TxqEndManCtrl str r0, [r6, #36] ; 0x24 ldr r0, _06013A50 ; =_060153E4 str r0, [r6, #56] ; 0x38 ldr r2, _06013A54 ; =0x0000B6B8 ldr r0, _06013A58 ; =0x04804024 strh r2, [r0] ldr r1, _06013A5C ; =0x00001D46 ldr r0, _06013A60 ; =0x04804026 strh r1, [r0] ldr r0, _06013A64 ; =0x0480416C strh r2, [r0] ldr r0, _06013A68 ; =0x0480416E strh r1, [r0] ldr r0, _06013A6C ; =0x04804790 strh r2, [r0] ldr r0, _06013A70 ; =0x04804792 strh r1, [r0] mov r0, #264 ; 0x108 strh r0, [r5, #138] ; 0x8a mov r1, #13 ldr r0, _06013A74 ; =0x048080AE strh r1, [r0] _06013A10: ldrh r0, [r4, #24] cmp r0, #0 ldrneh r0, [r5, #138] ; 0x8a orrne r0, r0, #16384 ; 0x4000 strneh r0, [r5, #138] ; 0x8a add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06013A30: .word 0x0380FFF4 _06013A34: .word 0x0000042C _06013A38: .word 0x0000FFFF _06013A3C: .word 0x04804170 _06013A40: .word 0x04804028 _06013A44: .word 0x04804000 _06013A48: .word TxqEndData _06013A4C: .word TxqEndManCtrl _06013A50: .word _060153E4 _06013A54: .word 0x0000B6B8 _06013A58: .word 0x04804024 _06013A5C: .word 0x00001D46 _06013A60: .word 0x04804026 _06013A64: .word 0x0480416C _06013A68: .word 0x0480416E _06013A6C: .word 0x04804790 _06013A70: .word 0x04804792 _06013A74: .word 0x048080AE _06013A78: .word 0x04804AA0 _06013A7C: .word 0x04804958 _06013A80: .word 0x04804334 _06013A84: .word TxqEndBroadCast _06013A88: .word 0x04804238 _06013A8C: .word 0x04804234 _06013A90: .word 0x04804236 _06013A94: .word 0x04804330 _06013A98: .word 0x04804332 _06013A9C: .word 0x04804954 _06013AA0: .word 0x04804956 _06013AA4: .word 0x04804A9C _06013AA8: .word 0x04804A9E _06013AAC: .word 0x048050C0 _06013AB0: .word 0x048050C2 _06013AB4: .word 0x048045D8 _06013AB8: .word 0x04804490 _06013ABC: .word 0x04804468 _06013AC0: .word 0x04804230 _06013AC4: .word 0x04804232 _06013AC8: .word 0x04804464 _06013ACC: .word 0x04804466 _06013AD0: .word 0x0480448C _06013AD4: .word 0x0480448E _06013AD8: .word 0x048045D4 _06013ADC: .word 0x048045D6 _06013AE0: .word 0x04804BF8 _06013AE4: .word 0x04804BFA arm_func_start FUN_06013AE8 FUN_06013AE8: ; 0x06013AE8 stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r7, r0 ldr r1, _06013C04 ; =0x0380FFF4 ldr r1, [r1] add r6, r1, #836 ; 0x344 add r5, r1, #796 ; 0x31c mov r4, #0 mov r1, #221 ; 0xdd bl WL_WriteByte add r0, r7, #1 ldr r1, _06013C04 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #228] ; 0xe4 add r1, r1, #8 and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r7, #2 mov r1, r4 bl WL_WriteByte add r0, r7, #3 mov r1, #9 bl WL_WriteByte add r0, r7, #4 mov r1, #191 ; 0xbf bl WL_WriteByte add r0, r7, #5 mov r1, r4 bl WL_WriteByte add r0, r7, #6 ldrh r1, [r5, #32] and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r7, #7 ldrh r1, [r5, #32] mov r1, r1, asr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte ldr r0, _06013C08 ; =0x0380FFF0 ldrh r5, [r0] add r0, r7, #8 and r1, r5, #255 ; 0xff bl WL_WriteByte add r0, r7, #9 mov r1, r5, lsr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte add r4, r4, #10 ldrh r0, [r6, #160] ; 0xa0 cmp r0, #0 beq _06013BF8 ldr r5, [r6, #156] ; 0x9c ldrh r0, [r6, #162] ; 0xa2 ands r0, r0, #1 addne r5, r5, #1 mov r8, #0 b _06013BEC _06013BCC: mov r0, r5 bl WL_ReadByte mov r1, r0 add r0, r7, r4 bl WL_WriteByte add r4, r4, #1 add r5, r5, #1 add r8, r8, #1 _06013BEC: ldrh r0, [r6, #160] ; 0xa0 cmp r8, r0 bcc _06013BCC _06013BF8: mov r0, r4 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06013C04: .word 0x0380FFF4 _06013C08: .word 0x0380FFF0 arm_func_start FUN_06013C0C FUN_06013C0C: ; 0x06013C0C stmdb sp!, {r4, lr} mov r4, r0 mov r1, #3 bl WL_WriteByte add r0, r4, #1 mov r1, #1 bl WL_WriteByte add r0, r4, #2 ldr r1, _06013C50 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #768 ; 0x300 ldrh r1, [r1, #190] ; 0xbe and r1, r1, #255 ; 0xff bl WL_WriteByte mov r0, #3 ldmia sp!, {r4, lr} bx lr _06013C50: .word 0x0380FFF4 arm_func_start FUN_06013C54 FUN_06013C54: ; 0x06013C54 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r9, r0 ldr r1, _06013D04 ; =0x0380FFF4 ldr r1, [r1] add r8, r1, #836 ; 0x344 mov r7, #0 mov r1, #1 bl WL_WriteByte add r7, r7, #2 mov r6, #0 ldr r4, _06013D08 ; =RateBit2Element mov r5, #1 _06013C88: mov r1, r5, lsl r6 ldrh r0, [r8, #98] ; 0x62 ands r0, r0, r1 beq _06013CD8 ldrh r0, [r8, #96] ; 0x60 ands r0, r0, r1 beq _06013CC0 add r0, r9, r7 mov r1, r6, lsl #1 ldrh r1, [r4, r1] orr r1, r1, #128 ; 0x80 and r1, r1, #255 ; 0xff bl WL_WriteByte b _06013CD4 _06013CC0: add r0, r9, r7 mov r1, r6, lsl #1 ldrh r1, [r4, r1] and r1, r1, #255 ; 0xff bl WL_WriteByte _06013CD4: add r7, r7, #1 _06013CD8: add r6, r6, #1 cmp r6, #16 bcc _06013C88 add r0, r9, #1 sub r1, r7, #2 and r1, r1, #255 ; 0xff bl WL_WriteByte mov r0, r7 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06013D04: .word 0x0380FFF4 _06013D08: .word RateBit2Element arm_func_start FUN_06013D0C FUN_06013D0C: ; 0x06013D0C stmdb sp!, {r4, r5, r6, r7, r8, lr} mov r4, r0 ldr r1, _06013D7C ; =0x0380FFF4 ldr r1, [r1] add r5, r1, #836 ; 0x344 mov r8, #0 ldrh r7, [r5, #30] mov r1, r8 bl WL_WriteByte add r0, r4, #1 and r1, r7, #255 ; 0xff bl WL_WriteByte add r8, r8, #2 mov r6, #0 add r5, r5, #32 b _06013D68 _06013D4C: add r0, r5, r6 bl WL_ReadByte mov r1, r0 add r0, r4, r8 bl WL_WriteByte add r8, r8, #1 add r6, r6, #1 _06013D68: cmp r6, r7 bcc _06013D4C mov r0, r8 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06013D7C: .word 0x0380FFF4 arm_func_start IsExistManFrame IsExistManFrame: ; 0x06013D80 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 ldr r0, _06013DF0 ; =0x0380FFF4 ldr r0, [r0] ldr r7, [r0, #416] ; 0x1a0 mvn r6, #0 b _06013DD8 _06013DA4: add r1, r7, #16 ldrh r0, [r1, #20] cmp r0, r4 bne _06013DCC add r0, r1, #24 mov r1, r5 bl MatchMacAdrs cmp r0, #0 movne r0, #1 bne _06013DE4 _06013DCC: mov r0, r7 bl GetHeapBufNextAdrs mov r7, r0 _06013DD8: cmp r7, r6 bne _06013DA4 mov r0, #0 _06013DE4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06013DF0: .word 0x0380FFF4 arm_func_start InitManHeader InitManHeader: ; 0x06013DF4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r5, r0 mov r4, r1 mov r0, #0 mov r1, r5 mov r2, #44 ; 0x2c bl FUN_0600055C bl WCalcManRate strh r0, [r5, #16] ldr r0, _06013E44 ; =0x0380FFF4 ldr r3, [r0] add r0, r5, #24 mov r1, r4 add r2, r3, #804 ; 0x324 add r3, r3, #936 ; 0x3a8 bl WSetMacAdrs3 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06013E44: .word 0x0380FFF4 arm_func_start MakePsPollFrame MakePsPollFrame: ; 0x06013E48 ldr r2, _06013E94 ; =0x0380FFF4 ldr r1, [r2] ldr r3, [r1, #1116] ; 0x45c mov r1, #0 strh r1, [r3] strh r1, [r3, #2] strh r1, [r3, #4] mov r1, #20 strh r1, [r3, #10] mov r1, #164 ; 0xa4 strh r1, [r3, #12] orr r0, r0, #49152 ; 0xc000 strh r0, [r3, #14] ldr r2, [r2] add r0, r3, #16 add r1, r2, #936 ; 0x3a8 add r2, r2, #804 ; 0x324 ldr ip, _06013E98 ; =_0600AF18 bx ip _06013E94: .word 0x0380FFF4 _06013E98: .word _0600AF18 arm_func_start MakeDeAuthFrame MakeDeAuthFrame: ; 0x06013E9C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 cmp r2, #0 bne _06013EC0 bl FUN_06014640 cmp r0, #0 moveq r0, #0 beq _06013F28 _06013EC0: ldr r0, _06013F30 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #54 ; 0x36 bl AllocateHeapBuf movs r4, r0 bne _06013EEC mov r0, #2 bl SetFatalErr mov r0, r4 b _06013F28 _06013EEC: ldr r0, _06013F34 ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader strh r5, [r4, #44] ; 0x2c mov r0, #2 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #192 ; 0xc0 strh r0, [r4, #20] mov r0, r4 _06013F28: ldmia sp!, {r4, r5, r6, lr} bx lr _06013F30: .word 0x0380FFF4 _06013F34: .word 0x0000FFFF arm_func_start MakeAuthFrame MakeAuthFrame: ; 0x06013F38 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 cmp r2, #0 beq _06013F5C bl FUN_06014640 cmp r0, #0 moveq r0, #0 beq _06013FEC _06013F5C: ldr r0, _06013FF4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 add r1, r5, #61 ; 0x3d bl AllocateHeapBuf movs r4, r0 bne _06013F88 mov r0, #2 bl SetFatalErr mov r0, r4 b _06013FEC _06013F88: ldr r0, _06013FF8 ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader cmp r5, #0 beq _06013FCC add r0, r4, #50 ; 0x32 mov r1, #16 bl WL_WriteByte add r0, r4, #51 ; 0x33 and r1, r5, #255 ; 0xff bl WL_WriteByte add r0, r5, #2 mov r0, r0, lsl #16 mov r5, r0, lsr #16 _06013FCC: add r0, r5, #6 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #176 ; 0xb0 strh r0, [r4, #20] mov r0, r4 _06013FEC: ldmia sp!, {r4, r5, r6, lr} bx lr _06013FF4: .word 0x0380FFF4 _06013FF8: .word 0x0000FFFF arm_func_start MakeProbeResFrame MakeProbeResFrame: ; 0x06013FFC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _060140DC ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 bl FUN_06014640 cmp r0, #0 moveq r0, #0 beq _060140D4 ldr r0, _060140DC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 ldrh r1, [r5, #160] ; 0xa0 add r1, r1, #120 ; 0x78 bl AllocateHeapBuf movs r4, r0 bne _06014050 mov r0, #2 bl SetFatalErr mov r0, r4 b _060140D4 _06014050: ldr r0, _060140E0 ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader ldrh r0, [r5, #110] ; 0x6e strh r0, [r4, #52] ; 0x34 ldrh r0, [r5, #124] ; 0x7c strh r0, [r4, #54] ; 0x36 add r0, r4, #56 ; 0x38 bl FUN_06013D0C mov r5, r0 add r0, r4, #56 ; 0x38 add r0, r0, r5 bl FUN_06013C54 add r5, r5, r0 add r0, r4, #56 ; 0x38 add r0, r0, r5 bl FUN_06013C0C add r5, r5, r0 add r0, r4, #56 ; 0x38 add r0, r0, r5 bl FUN_06013AE8 add r0, r5, r0 add r0, r0, #12 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #80 ; 0x50 strh r0, [r4, #20] mov r0, r4 _060140D4: ldmia sp!, {r4, r5, r6, lr} bx lr _060140DC: .word 0x0380FFF4 _060140E0: .word 0x0000FFFF arm_func_start MakeProbeReqFrame MakeProbeReqFrame: ; 0x060140E4 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _0601416C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #90 ; 0x5a bl AllocateHeapBuf movs r4, r0 bne _06014118 mov r0, #2 bl SetFatalErr mov r0, r4 b _06014164 _06014118: ldr r0, _06014170 ; =0x0000FFFF strh r0, [r4, #12] add r5, r4, #16 mov r0, r5 mov r1, r6 bl InitManHeader add r0, r5, #44 ; 0x2c bl FUN_06013D0C mov r4, r0 add r0, r5, #44 ; 0x2c add r0, r0, r4 bl FUN_06013C54 add r0, r4, r0 strh r0, [r5, #6] add r0, r0, #28 strh r0, [r5, #18] mov r0, #64 ; 0x40 strh r0, [r5, #20] mov r0, r5 _06014164: ldmia sp!, {r4, r5, r6, lr} bx lr _0601416C: .word 0x0380FFF4 _06014170: .word 0x0000FFFF arm_func_start MakeReAssResFrame MakeReAssResFrame: ; 0x06014174 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 mov r7, r1 mov r6, r2 ldr r0, _060142D8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #96 ; 0x60 bl AllocateHeapBuf movs r4, r0 bne _060141B4 mov r0, #2 bl SetFatalErr mov r0, r4 b _060142CC _060141B4: ldr r0, _060142DC ; =0x0000FFFF strh r0, [r4, #12] add r5, r4, #16 cmp r7, #0 bne _060141DC mov r0, r8 bl CAM_AllocateAID movs r4, r0 moveq r7, #19 b _060141E0 _060141DC: mov r4, #0 _060141E0: mov r0, r8 bl CAM_GetMacAdrs mov r1, r0 mov r0, r5 bl InitManHeader ldr r0, _060142D8 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #192] ; 0xc0 strh r0, [r5, #44] ; 0x2c strh r7, [r5, #46] ; 0x2e orr r0, r4, #49152 ; 0xc000 strh r0, [r5, #48] ; 0x30 add r0, r5, #50 ; 0x32 bl FUN_06013C54 add r0, r0, #6 strh r0, [r5, #6] ldrh r0, [r5, #6] add r0, r0, #28 strh r0, [r5, #18] mov r0, #48 ; 0x30 strh r0, [r5, #20] add r1, r5, #20 ldrh r0, [r5, #18] add r8, r1, r0 cmp r6, #0 beq _060142B0 add r0, r6, #1 bl WL_ReadByte mov r7, r0 mov r0, r6 bl WL_ReadByte mov r1, r0 mov r0, r8 bl WL_WriteByte add r0, r8, #1 and r1, r7, #255 ; 0xff bl WL_WriteByte add r8, r8, #2 mov r9, #0 add r4, r6, #2 b _060142A4 _06014288: add r0, r4, r9 bl WL_ReadByte mov r1, r0 mov r0, r8 bl WL_WriteByte add r8, r8, #1 add r9, r9, #1 _060142A4: cmp r9, r7 bcc _06014288 b _060142C8 _060142B0: mov r0, r8 mov r1, #0 bl WL_WriteByte add r0, r8, #1 mov r1, #0 bl WL_WriteByte _060142C8: mov r0, r5 _060142CC: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _060142D8: .word 0x0380FFF4 _060142DC: .word 0x0000FFFF arm_func_start MakeAssResFrame MakeAssResFrame: ; 0x060142E0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} sub sp, sp, #4 mov r8, r0 mov r7, r1 mov r6, r2 ldr r0, _06014450 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #96 ; 0x60 bl AllocateHeapBuf movs r4, r0 bne _06014320 mov r0, #2 bl SetFatalErr mov r0, r4 b _06014444 _06014320: ldr r0, _06014454 ; =0x0000FFFF strh r0, [r4, #12] add r5, r4, #16 cmp r7, #0 bne _06014348 mov r0, r8 bl CAM_AllocateAID movs r4, r0 moveq r7, #19 b _0601434C _06014348: mov r4, #0 _0601434C: mov r0, r8 bl CAM_GetMacAdrs mov r1, r0 mov r0, r5 bl InitManHeader ldr r0, _06014450 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #192] ; 0xc0 strh r0, [r5, #44] ; 0x2c strh r7, [r5, #46] ; 0x2e strh r4, [r5, #48] ; 0x30 cmp r4, #0 ldrneh r0, [r5, #48] ; 0x30 orrne r0, r0, #49152 ; 0xc000 strneh r0, [r5, #48] ; 0x30 add r0, r5, #50 ; 0x32 bl FUN_06013C54 add r0, r0, #6 strh r0, [r5, #6] ldrh r0, [r5, #6] add r0, r0, #28 strh r0, [r5, #18] mov r0, #16 strh r0, [r5, #20] add r1, r5, #20 ldrh r0, [r5, #18] add r8, r1, r0 cmp r6, #0 beq _06014428 add r0, r6, #1 bl WL_ReadByte mov r7, r0 mov r0, r6 bl WL_ReadByte mov r1, r0 mov r0, r8 bl WL_WriteByte add r0, r8, #1 add r8, r8, #2 and r1, r7, #255 ; 0xff bl WL_WriteByte mov r9, #0 add r4, r6, #2 b _0601441C _06014400: add r0, r4, r9 bl WL_ReadByte mov r1, r0 mov r0, r8 bl WL_WriteByte add r9, r9, #1 add r8, r8, #1 _0601441C: cmp r9, r7 bcc _06014400 b _06014440 _06014428: mov r0, r8 mov r1, #0 bl WL_WriteByte add r0, r8, #1 mov r1, #0 bl WL_WriteByte _06014440: mov r0, r5 _06014444: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06014450: .word 0x0380FFF4 _06014454: .word 0x0000FFFF arm_func_start MakeReAssReqFrame MakeReAssReqFrame: ; 0x06014458 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _06014508 ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 add r0, r0, #392 ; 0x188 mov r1, #100 ; 0x64 bl AllocateHeapBuf movs r4, r0 bne _06014490 mov r0, #2 bl SetFatalErr mov r0, r4 b _06014500 _06014490: ldr r0, _0601450C ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader ldrh r0, [r5, #124] ; 0x7c strh r0, [r4, #44] ; 0x2c ldrh r0, [r5, #112] ; 0x70 strh r0, [r4, #46] ; 0x2e add r0, r4, #48 ; 0x30 add r1, r5, #130 ; 0x82 bl WSetMacAdrs1 add r0, r4, #54 ; 0x36 bl FUN_06013D0C mov r5, r0 add r0, r4, #54 ; 0x36 add r0, r0, r5 bl FUN_06013C54 add r0, r5, r0 add r0, r0, #10 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #32 strh r0, [r4, #20] mov r0, r4 _06014500: ldmia sp!, {r4, r5, r6, lr} bx lr _06014508: .word 0x0380FFF4 _0601450C: .word 0x0000FFFF arm_func_start MakeAssReqFrame MakeAssReqFrame: ; 0x06014510 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _060145B4 ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 add r0, r0, #392 ; 0x188 mov r1, #94 ; 0x5e bl AllocateHeapBuf movs r4, r0 bne _06014548 mov r0, #2 bl SetFatalErr mov r0, r4 b _060145AC _06014548: ldr r0, _060145B8 ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader ldrh r0, [r5, #124] ; 0x7c strh r0, [r4, #44] ; 0x2c ldrh r0, [r5, #112] ; 0x70 strh r0, [r4, #46] ; 0x2e add r0, r4, #48 ; 0x30 bl FUN_06013D0C mov r5, r0 add r0, r4, #48 ; 0x30 add r0, r0, r5 bl FUN_06013C54 add r0, r5, r0 add r0, r0, #4 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #0 strh r0, [r4, #20] mov r0, r4 _060145AC: ldmia sp!, {r4, r5, r6, lr} bx lr _060145B4: .word 0x0380FFF4 _060145B8: .word 0x0000FFFF arm_func_start MakeDisAssFrame MakeDisAssFrame: ; 0x060145BC stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 ldr r0, _06014638 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 mov r1, #54 ; 0x36 bl AllocateHeapBuf movs r4, r0 bne _060145F4 mov r0, #2 bl SetFatalErr mov r0, r4 b _06014630 _060145F4: ldr r0, _0601463C ; =0x0000FFFF strh r0, [r4, #12] add r4, r4, #16 mov r0, r4 mov r1, r6 bl InitManHeader strh r5, [r4, #44] ; 0x2c mov r0, #2 strh r0, [r4, #6] ldrh r0, [r4, #6] add r0, r0, #28 strh r0, [r4, #18] mov r0, #160 ; 0xa0 strh r0, [r4, #20] mov r0, r4 _06014630: ldmia sp!, {r4, r5, r6, lr} bx lr _06014638: .word 0x0380FFF4 _0601463C: .word 0x0000FFFF arm_func_start FUN_06014640 FUN_06014640: ; 0x06014640 ldr r0, _0601466C ; =0x0380FFF4 ldr r2, [r0] add r0, r2, #256 ; 0x100 ldrh r1, [r0, #168] ; 0xa8 add r0, r2, #1280 ; 0x500 ldrh r0, [r0, #56] ; 0x38 rsb r0, r0, #24 cmp r1, r0 movlt r0, #1 movge r0, #0 bx lr _0601466C: .word 0x0380FFF4 arm_func_start UpdateGameInfoElement UpdateGameInfoElement: ; 0x06014670 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _0601476C ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 ldr r0, [r0, #1196] ; 0x4ac add r1, r0, #36 ; 0x24 ldrh r0, [r5, #150] ; 0x96 add r4, r1, r0 ldrh r2, [r5, #160] ; 0xa0 cmp r2, #0 beq _060146EC ldrh r0, [r5, #162] ; 0xa2 ands r0, r0, #1 beq _060146DC add r0, r4, #10 sub r0, r0, #1 ldr r1, [r5, #156] ; 0x9c add r2, r2, #2 bl DMA_Write add r0, r4, #9 ldr r1, _06014770 ; =0x0380FFF0 ldrh r1, [r1] mov r1, r1, asr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte b _060146EC _060146DC: add r0, r4, #10 ldr r1, [r5, #156] ; 0x9c add r2, r2, #1 bl DMA_Write _060146EC: ldrh r0, [r5, #150] ; 0x96 add r1, r0, #38 ; 0x26 ldrh r0, [r5, #160] ; 0xa0 add r1, r1, r0 ldr r0, _0601476C ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #1196] ; 0x4ac strh r1, [r0, #10] add r0, r4, #1 ldrh r1, [r5, #160] ; 0xa0 add r1, r1, #8 and r1, r1, #255 ; 0xff bl WL_WriteByte ldr r0, _0601476C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #4 beq _06014758 add r1, r4, #13 ldrh r0, [r5, #160] ; 0xa0 add r0, r1, r0 bic r1, r0, #3 ldr r0, _06014774 ; =0x0000B6B8 strh r0, [r1] ldr r0, _06014778 ; =0x00001D46 strh r0, [r1, #2] _06014758: mov r0, #0 strh r0, [r5, #164] ; 0xa4 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _0601476C: .word 0x0380FFF4 _06014770: .word 0x0380FFF0 _06014774: .word 0x0000B6B8 _06014778: .word 0x00001D46 arm_func_start MakeBeaconFrame MakeBeaconFrame: ; 0x0601477C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} ldr r0, _06014AD0 ; =0x0380FFF4 ldr r0, [r0] ldr sl, [r0, #1196] ; 0x4ac add r9, r0, #796 ; 0x31c add r8, r0, #836 ; 0x344 mov r0, #0 strh r0, [sl] strh r0, [sl, #2] strh r0, [sl, #4] strh r0, [sl, #6] bl WCalcManRate strh r0, [sl, #8] mov r0, #128 ; 0x80 strh r0, [sl, #12] mov r0, #0 strh r0, [sl, #14] add r0, sl, #16 ldr r1, _06014AD4 ; =BC_ADRS add r2, r9, #8 mov r3, r2 bl WSetMacAdrs3 mov r1, #0 strh r1, [sl, #34] ; 0x22 add r7, sl, #36 ; 0x24 str r1, [sl, #36] ; 0x24 str r1, [r7, #4] ldrh r0, [r8, #110] ; 0x6e strh r0, [r7, #8] ldrh r0, [r8, #124] ; 0x7c strh r0, [r7, #10] add r6, r7, #12 ldrh r0, [r9, #30] mov r0, r0, lsl #31 movs r0, r0, lsr #31 bne _0601487C sub r0, r6, r7 strh r0, [r8, #146] ; 0x92 mov r0, r6 bl WL_WriteByte add r0, r6, #1 add r6, r6, #2 ldrh r1, [r8, #30] and r1, r1, #255 ; 0xff bl WL_WriteByte mov r5, #0 add r4, r8, #32 b _06014858 _0601483C: add r0, r4, r5 bl WL_ReadByte mov r1, r0 mov r0, r6 bl WL_WriteByte add r6, r6, #1 add r5, r5, #1 _06014858: ldrh r0, [r8, #30] cmp r5, r0 bcc _0601483C mvn r0, #0 sub r0, r0, r5 add r0, r6, r0 and r1, r5, #255 ; 0xff bl WL_WriteByte b _06014880 _0601487C: strh r1, [r8, #146] ; 0x92 _06014880: mov r0, r6 bl FUN_06013C54 add r6, r6, r0 mov r0, r6 mov r1, #3 bl WL_WriteByte add r0, r6, #1 mov r1, #1 bl WL_WriteByte add r0, r6, #2 ldrh r1, [r8, #122] ; 0x7a and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r6, #3 sub r1, r0, r7 strh r1, [r8, #148] ; 0x94 ldrh r1, [r8, #148] ; 0x94 add r2, r1, #2 ldr r1, _06014AD8 ; =0x04808084 strh r2, [r1] mov r1, #5 bl WL_WriteByte add r0, r6, #4 mov r1, #5 bl WL_WriteByte add r0, r6, #5 mov r1, #0 bl WL_WriteByte add r0, r6, #6 ldrh r1, [r8, #116] ; 0x74 and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r6, #7 mov r1, #0 bl WL_WriteByte add r0, r6, #8 mov r1, #0 bl WL_WriteByte add r0, r6, #9 mov r1, #0 bl WL_WriteByte add r0, r6, #10 sub r1, r0, r7 strh r1, [r8, #150] ; 0x96 ldrh r1, [r8, #150] ; 0x96 and r1, r1, #1 strh r1, [r8, #162] ; 0xa2 mov r1, #221 ; 0xdd bl WL_WriteByte add r0, r6, #11 ldrh r1, [r8, #160] ; 0xa0 add r1, r1, #8 and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r6, #12 mov r1, #0 bl WL_WriteByte add r0, r6, #13 mov r1, #9 bl WL_WriteByte add r0, r6, #14 mov r1, #191 ; 0xbf bl WL_WriteByte add r0, r6, #15 mov r1, #0 bl WL_WriteByte ldrh r0, [r8, #14] cmp r0, #1 bne _060149C0 add r0, r6, #16 ldrh r1, [r9, #32] and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r6, #17 add r6, r6, #18 ldrh r1, [r9, #32] mov r1, r1, asr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte b _060149DC _060149C0: add r0, r6, #16 mov r1, #255 ; 0xff bl WL_WriteByte add r0, r6, #17 add r6, r6, #18 mov r1, #255 ; 0xff bl WL_WriteByte _060149DC: ldr r0, _06014ADC ; =0x0380FFF0 ldrh r4, [r0] mov r0, r6 and r1, r4, #255 ; 0xff bl WL_WriteByte add r0, r6, #1 add r6, r6, #2 mov r1, r4, lsr #8 and r1, r1, #255 ; 0xff bl WL_WriteByte ldr r5, [r8, #156] ; 0x9c mov r4, #0 b _06014A30 _06014A10: mov r0, r5 bl WL_ReadByte mov r1, r0 mov r0, r6 bl WL_WriteByte add r6, r6, #1 add r5, r5, #1 add r4, r4, #1 _06014A30: ldrh r1, [r8, #160] ; 0xa0 cmp r4, r1 bcc _06014A10 ldrh r0, [r8, #162] ; 0xa2 cmp r0, #0 beq _06014A84 ldr r0, [r8, #156] ; 0x9c add r0, r0, r1 sub r4, r0, #1 mov r5, #0 b _06014A78 _06014A5C: mov r0, r4 bl WL_ReadByte mov r1, r0 add r0, r4, #1 bl WL_WriteByte add r5, r5, #1 sub r4, r4, #1 _06014A78: ldrh r0, [r8, #160] ; 0xa0 cmp r5, r0 bcc _06014A5C _06014A84: ldr r0, _06014AD0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #4 beq _06014AB4 add r0, r6, #3 bic r1, r0, #3 ldr r0, _06014AE0 ; =0x0000B6B8 strh r0, [r1] ldr r0, _06014AE4 ; =0x00001D46 strh r0, [r1, #2] _06014AB4: mov r0, #0 strh r0, [r8, #164] ; 0xa4 add r0, r6, #28 sub r0, r0, r7 strh r0, [sl, #10] ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _06014AD0: .word 0x0380FFF4 _06014AD4: .word BC_ADRS _06014AD8: .word 0x04808084 _06014ADC: .word 0x0380FFF0 _06014AE0: .word 0x0000B6B8 _06014AE4: .word 0x00001D46 arm_func_start StopBeaconFrame StopBeaconFrame: ; 0x06014AE8 ldr r0, _06014B08 ; =0x0380FFF4 ldr r2, [r0] mov r1, #0 ldr r0, _06014B0C ; =0x04808080 strh r1, [r0] add r0, r2, #1024 ; 0x400 strh r1, [r0, #164] ; 0xa4 bx lr _06014B08: .word 0x0380FFF4 _06014B0C: .word 0x04808080 arm_func_start StartBeaconFrame StartBeaconFrame: ; 0x06014B10 ldr r0, _06014B4C ; =0x0380FFF4 ldr r2, [r0] ldr r0, _06014B50 ; =0x000004A4 add r3, r2, r0 mov r1, #1 add r0, r2, #1024 ; 0x400 strh r1, [r0, #164] ; 0xa4 ldr r1, [r3, #8] ldr r0, _06014B54 ; =0x00003FFF and r0, r1, r0 mov r0, r0, lsr #1 orr r1, r0, #32768 ; 0x8000 ldr r0, _06014B58 ; =0x04808080 strh r1, [r0] bx lr _06014B4C: .word 0x0380FFF4 _06014B50: .word 0x000004A4 _06014B54: .word 0x00003FFF _06014B58: .word 0x04808080 arm_func_start TxPsPollFrame TxPsPollFrame: ; 0x06014B5C stmdb sp!, {r4, lr} ldr r0, _06014BE8 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06014BEC ; =0x00000454 add r4, r1, r0 ldrh r0, [r4, #2] add r0, r0, #1 strh r0, [r4, #2] add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #84] ; 0x54 cmp r0, #0 movne r1, #0 ldrne r0, [r4, #8] strneh r1, [r0, #4] bne _06014BE0 mov r0, #1 strh r0, [r4] mov r1, #0 ldr r0, [r4, #8] strh r1, [r0] ldr r0, [r4, #8] strh r1, [r0, #4] bl WCalcManRate ldr r1, [r4, #8] strh r0, [r1, #8] ldr r1, [r4, #8] ldr r0, _06014BF0 ; =0x00003FFF and r0, r1, r0 mov r0, r0, lsl #15 mov r0, r0, lsr #16 orr r1, r0, #32768 ; 0x8000 ldr r0, _06014BF4 ; =0x048080A8 strh r1, [r0] _06014BE0: ldmia sp!, {r4, lr} bx lr _06014BE8: .word 0x0380FFF4 _06014BEC: .word 0x00000454 _06014BF0: .word 0x00003FFF _06014BF4: .word 0x048080A8 arm_func_start SetManCtrlFrame SetManCtrlFrame: ; 0x06014BF8 stmdb sp!, {r4, lr} mov r4, r0 add r0, r4, #24 bl CAM_Search strh r0, [r4, #2] ldrh r0, [r4, #2] cmp r0, #255 ; 0xff moveq r0, #0 streqh r0, [r4, #2] ldr r0, _06014C68 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #1004] ; 0x3ec strh r0, [r4, #4] ldrh r0, [r4, #20] ands r0, r0, #16384 ; 0x4000 ldrneh r0, [r4, #18] addne r0, r0, #8 strneh r0, [r4, #18] mov r0, r4 bl CAM_IncFrameCount ldr r0, _06014C68 ; =0x0380FFF4 ldr r1, [r0] add r0, r1, #392 ; 0x188 add r1, r1, #416 ; 0x1a0 sub r2, r4, #16 bl MoveHeapBuf ldmia sp!, {r4, lr} bx lr _06014C68: .word 0x0380FFF4 arm_func_start TxManCtrlFrame TxManCtrlFrame: ; 0x06014C6C stmfd sp!, {lr} sub sp, sp, #4 bl SetManCtrlFrame mov r0, #1 bl TxqPri add sp, sp, #4 ldmfd sp!, {lr} bx lr arm_func_start MessageDeleteTx MessageDeleteTx: ; 0x06014C8C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 mov r9, r1 mov r0, #12 mul r6, sl, r0 ldr r0, _06014D20 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, r6 ldr r8, [r0, #404] ; 0x194 mvn r4, #0 cmp r8, r4 beq _06014D14 mov r5, #2 _06014CC4: mov r0, r8 bl GetHeapBufNextAdrs mov fp, r0 add r7, r8, #16 cmp sl, #2 beq _06014CE4 mov r0, r7 bl CAM_DecFrameCount _06014CE4: strh r5, [r7, #8] cmp r9, #0 beq _06014D08 ldr r0, _06014D20 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #404 ; 0x194 add r0, r0, r6 mov r1, r8 bl IssueMaDataConfirm _06014D08: mov r8, fp cmp fp, r4 bne _06014CC4 _06014D14: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06014D20: .word 0x0380FFF4 arm_func_start DeleteAllTxFrames DeleteAllTxFrames: ; 0x06014D24 stmdb sp!, {r4, lr} ldr r0, _06014E0C ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06014E10 ; =0x0000042C add r4, r1, r0 add r0, r1, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 beq _06014D5C cmp r0, #2 beq _06014DB8 cmp r0, #3 beq _06014DB8 b _06014DE0 _06014D5C: mov r0, #0 mov r1, #1 bl MessageDeleteTx mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #2 mov r1, #1 bl MessageDeleteTx ldrh r0, [r4, #60] ; 0x3c cmp r0, #0 beq _06014E04 mov r0, #0 strh r0, [r4, #60] ; 0x3c ldrh r0, [r4, #62] ; 0x3e sub r0, r0, #1 strh r0, [r4, #62] ; 0x3e ldr r0, _06014E0C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 ldr r1, [r4, #144] ; 0x90 bl ReleaseHeapBuf b _06014E04 _06014DB8: mov r0, #0 mov r1, #1 bl MessageDeleteTx mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #2 mov r1, #0 bl MessageDeleteTx b _06014E04 _06014DE0: mov r0, #0 mov r1, r0 bl MessageDeleteTx mov r0, #1 mov r1, #0 bl MessageDeleteTx mov r0, #2 mov r1, #0 bl MessageDeleteTx _06014E04: ldmia sp!, {r4, lr} bx lr _06014E0C: .word 0x0380FFF4 _06014E10: .word 0x0000042C arm_func_start DeleteTxFrameByAdrs DeleteTxFrameByAdrs: ; 0x06014E14 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldrh r1, [r0] ands r1, r1, #1 beq _06014E58 mov r5, #1 ldr r4, _06014EB4 ; =0x0380FFF4 b _06014E40 _06014E34: mov r0, r5 bl DeleteTxFrames add r5, r5, #1 _06014E40: ldr r0, [r4] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 cmp r5, r0 bcc _06014E34 b _06014EA8 _06014E58: bl CAM_Search mov r4, r0 cmp r4, #255 ; 0xff beq _06014E6C bl DeleteTxFrames _06014E6C: ldr r0, _06014EB4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #46] ; 0x2e cmp r0, #1 bne _06014EA8 mov r0, r4 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06014EA8 mov r0, r4, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState bl ClearTxKeyData _06014EA8: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06014EB4: .word 0x0380FFF4 arm_func_start DeleteTxFrames DeleteTxFrames: ; 0x06014EB8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 mov fp, r0 mov r8, #0 bl CAM_GetFrameCount cmp r0, #0 beq _06014FB8 mov r7, r8 mov r0, #1 str r0, [sp, #8] mov r4, #2 str r7, [sp, #4] _06014EE8: mov r0, #12 mul r5, r7, r0 ldr r0, _06014FC4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, r5 ldr sl, [r0, #404] ; 0x194 mvn r0, #0 cmp sl, r0 beq _06014FAC mov r0, #20 mul r6, r7, r0 _06014F14: mov r0, sl bl GetHeapBufNextAdrs str r0, [sp] add r9, sl, #16 ldrh r0, [r9, #2] cmp r0, fp bne _06014F98 cmp r7, #1 beq _06014F50 ldr r0, _06014FC4 ; =0x0380FFF4 ldr r0, [r0] add r0, r6, r0 ldr r0, [r0, #1080] ; 0x438 cmp r9, r0 bne _06014F6C _06014F50: mov r0, r9 bl CAM_DecFrameCount ldr r0, [sp, #4] strh r0, [r9, #2] mov r0, r9 bl CAM_IncFrameCount b _06014F98 _06014F6C: strh r4, [r9, #8] mov r0, r9 bl CAM_DecFrameCount ldr r0, _06014FC4 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #404 ; 0x194 add r0, r0, r5 mov r1, sl bl IssueMaDataConfirm cmp r8, #0 ldreq r8, [sp, #8] _06014F98: ldr sl, [sp] mvn r1, #0 mov r0, sl cmp r0, r1 bne _06014F14 _06014FAC: add r7, r7, #1 cmp r7, #3 bcc _06014EE8 _06014FB8: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06014FC4: .word 0x0380FFF4 arm_func_start ResetTxqPri ResetTxqPri: ; 0x06014FC8 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _06015050 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06015054 ; =0x0000042C add r5, r1, r0 mov r0, #20 mul r4, r7, r0 add r6, r5, r4 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r2, r7, lsl #1 ldr r1, _06015058 ; =_06019958 ldrh r2, [r1, r2] ldr r1, _0601505C ; =0x048080B4 strh r2, [r1] ldrh r1, [r5, r4] cmp r1, #0 beq _06015040 ldr r2, [r6, #12] ldrh r1, [r2, #20] ands r1, r1, #16384 ; 0x4000 ldreq r1, [r6, #8] ldreqh r1, [r1, #4] streqh r1, [r2, #12] ldr r1, [r6, #8] ldrh r2, [r1, #34] ; 0x22 ldr r1, [r6, #12] strh r2, [r1, #42] ; 0x2a _06015040: bl FUN_06009070 add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06015050: .word 0x0380FFF4 _06015054: .word 0x0000042C _06015058: .word _06019958 _0601505C: .word 0x048080B4 arm_func_start ClearQueuedPri ClearQueuedPri: ; 0x06015060 stmfd sp!, {lr} sub sp, sp, #4 ldr r1, _060150D0 ; =0x0380FFF4 ldr r2, [r1] ldr r1, _060150D4 ; =0x0000042C add r2, r2, r1 mov r1, #20 mul r1, r0, r1 add r3, r2, r1 ldrh r0, [r2, r1] cmp r0, #0 beq _060150C4 ldr r0, [r3, #8] ldrh r1, [r0] cmp r1, #0 moveq r1, #2 ldreq r0, [r3, #12] streqh r1, [r0, #8] ldrne r0, [r3, #12] strneh r1, [r0, #8] ldr r0, [r3, #12] mov r1, #0 ldr r2, [r3, #16] mov lr, pc bx r2 _060150C4: add sp, sp, #4 ldmfd sp!, {lr} bx lr _060150D0: .word 0x0380FFF4 _060150D4: .word 0x0000042C arm_func_start ClearTxData ClearTxData: ; 0x060150D8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06015184 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06015188 ; =0x0000042C add r5, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 ldr r0, _06015184 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _06015144 mov r1, #9 ldr r0, _0601518C ; =0x048080B4 strh r1, [r0] ldrh r0, [r5, #40] ; 0x28 cmp r0, #0 beq _06015134 mov r0, #2 bl ClearQueuedPri _06015134: mov r0, #2 mov r1, #1 bl MessageDeleteTx b _06015150 _06015144: mov r1, #1 ldr r0, _0601518C ; =0x048080B4 strh r1, [r0] _06015150: ldrh r0, [r5] cmp r0, #0 beq _06015164 mov r0, #0 bl ClearQueuedPri _06015164: mov r0, #0 mov r1, #1 bl MessageDeleteTx mov r0, r4 bl FUN_06009070 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06015184: .word 0x0380FFF4 _06015188: .word 0x0000042C _0601518C: .word 0x048080B4 arm_func_start ClearTxMp ClearTxMp: ; 0x06015190 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _060151E4 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _060151E8 ; =0x0000042C add r5, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 mov r1, #2 ldr r0, _060151EC ; =0x048080B4 strh r1, [r0] ldrh r0, [r5, #60] ; 0x3c cmp r0, #0 beq _060151D0 bl WlIntrMpEndTask _060151D0: mov r0, r4 bl FUN_06009070 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _060151E4: .word 0x0380FFF4 _060151E8: .word 0x0000042C _060151EC: .word 0x048080B4 arm_func_start ClearTxKeyData ClearTxKeyData: ; 0x060151F0 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r0, _06015264 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06015268 ; =0x0000042C add r5, r1, r0 mov r0, #16777216 ; 0x1000000 bl FUN_06009068 mov r4, r0 ldr r0, _06015264 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #24 movs r0, r0, lsr #31 bne _06015238 mov r0, #0 bl WClearKSID _06015238: mov r1, #192 ; 0xc0 ldr r0, _0601526C ; =0x048080B4 strh r1, [r0] mov r0, #0 strh r0, [r5, #80] ; 0x50 strh r0, [r5, #100] ; 0x64 mov r0, r4 bl FUN_06009070 add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06015264: .word 0x0380FFF4 _06015268: .word 0x0000042C _0601526C: .word 0x048080B4 arm_func_start TxEndKeyData TxEndKeyData: ; 0x06015270 ldr r1, [r0, #8] ldrh r1, [r1, #4] ands r3, r1, #255 ; 0xff ldr r1, _060152BC ; =0x0380FFF4 ldr r2, [r1] ldr r1, _060152C0 ; =0x0000053C add r2, r2, r1 ldreq r1, [r2, #108] ; 0x6c addeq r1, r1, #1 streq r1, [r2, #108] ; 0x6c ldrne r1, [r2, #104] ; 0x68 addne r1, r1, r3 strne r1, [r2, #104] ; 0x68 ldrh r1, [r0, #4] add r1, r1, #1 strh r1, [r0, #4] mov r1, #0 strh r1, [r0] bx lr _060152BC: .word 0x0380FFF4 _060152C0: .word 0x0000053C arm_func_start TxqEndBroadCast TxqEndBroadCast: ; 0x060152C4 stmdb sp!, {r4, r5, r6, r7, lr} arm_func_start FUN_060152C8 FUN_060152C8: ; 0x060152C8 sub sp, sp, #4 mov r7, r0 mov r6, r1 ldr r1, _060153D8 ; =0x0380FFF4 ldr r2, [r1] add r5, r2, #380 ; 0x17c add r4, r5, #48 ; 0x30 ldr r1, [r2, #1360] ; 0x550 add r1, r1, #1 str r1, [r2, #1360] ; 0x550 ldrh r1, [r7, #20] mov r1, r1, lsl #28 movs r1, r1, lsr #30 bne _06015324 bl CAM_IncFrameCount mov r0, r4 add r1, r5, #36 ; 0x24 sub r2, r7, #16 bl MoveHeapBuf mov r0, r7 mov r1, #0 bl TxqEndManCtrl b _06015330 _06015324: mov r0, r4 sub r1, r7, #16 bl IssueMaDataConfirm _06015330: mov r2, #0 ldr r1, _060153D8 ; =0x0380FFF4 ldr r0, [r1] add r0, r0, #1024 ; 0x400 strh r2, [r0, #84] ; 0x54 ldr r0, [r1] ldr r0, [r0, #1116] ; 0x45c ldrh r0, [r0, #12] mov r0, r0, lsl #18 movs r0, r0, lsr #31 bne _060153A4 mov r1, #8 ldr r0, _060153DC ; =0x048080AC strh r1, [r0] mov r1, #5 ldr r0, _060153E0 ; =0x048080AE strh r1, [r0] cmp r6, #0 beq _060153A4 ldrh r0, [r5, #44] ; 0x2c cmp r0, #0 beq _06015390 mov r0, #1 bl TxqPri _06015390: ldrh r0, [r5, #32] cmp r0, #0 beq _060153A4 mov r0, #0 bl TxqPri _060153A4: ldrh r0, [r4, #8] cmp r0, #0 beq _060153C4 cmp r6, #0 beq _060153CC mov r0, #2 bl TxqPri b _060153CC _060153C4: mov r0, #0 bl CAM_ClrTIMElementBitmap _060153CC: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _060153D8: .word 0x0380FFF4 _060153DC: .word 0x048080AC _060153E0: .word 0x048080AE _060153E4: ldr r1, _06015450 ; =0x0380FFF4 arm_func_start FUN_060153E8 FUN_060153E8: ; 0x060153E8 ldr r2, [r1] ldr r1, _06015454 ; =0x0000053C add r3, r2, r1 ldr r2, [r3, #8] ldrh r1, [r0, #4] and r1, r1, #255 ; 0xff add r1, r2, r1 str r1, [r3, #8] ldrh r0, [r0] ands r0, r0, #2 ldrne r0, [r3, #4] addne r0, r0, #1 strne r0, [r3, #4] bne _06015438 ldr r0, [r3] add r0, r0, #1 str r0, [r3] ldr r0, [r3, #16] add r0, r0, #1 str r0, [r3, #16] _06015438: mov r1, #0 ldr r0, _06015450 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r1, [r0, #84] ; 0x54 bx lr _06015450: .word 0x0380FFF4 _06015454: .word 0x0000053C arm_func_start TxqEndManCtrl TxqEndManCtrl: ; 0x06015458 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} arm_func_start FUN_0601545C FUN_0601545C: ; 0x0601545C sub sp, sp, #4 mov sl, r0 mov r9, r1 ldr r0, _06015968 ; =0x0380FFF4 ldr r1, [r0] add r4, r1, #836 ; 0x344 ldr r0, _0601596C ; =0x00000404 add r8, r1, r0 ldr r0, _06015970 ; =0x0000053C add r5, r1, r0 add r7, r1, #416 ; 0x1a0 ldrh r6, [sl, #2] ldrh r0, [sl, #8] ands r0, r0, #2 bne _060154EC ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldrh r0, [sl, #24] ands r0, r0, #1 ldrne r0, [r5, #20] addne r0, r0, #1 strne r0, [r5, #20] ldreq r0, [r5, #16] addeq r0, r0, #1 streq r0, [r5, #16] mov r0, r6 bl CAM_GetPowerMgtMode cmp r0, #0 beq _060154F8 ldrh r0, [sl, #20] ands r0, r0, #8192 ; 0x2000 bne _060154F8 mov r0, r6 bl CAM_SetDoze b _060154F8 _060154EC: ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] _060154F8: ldrh r0, [sl, #20] mov r0, r0, lsl #17 movs r0, r0, lsr #31 ldrne r0, [r5, #24] addne r0, r0, #1 strne r0, [r5, #24] ldr r1, [r5, #8] ldrh r0, [sl, #12] and r0, r0, #255 ; 0xff add r0, r1, r0 str r0, [r5, #8] ldrh r0, [sl, #20] and r5, r0, #252 ; 0xfc cmp r5, #160 ; 0xa0 bhi _0601555C cmp r5, #160 ; 0xa0 bcs _060156D8 cmp r5, #16 bhi _06015550 cmp r5, #16 beq _06015614 b _06015918 _06015550: cmp r5, #48 ; 0x30 beq _06015614 b _06015918 _0601555C: cmp r5, #176 ; 0xb0 bhi _06015570 cmp r5, #176 ; 0xb0 beq _0601557C b _06015918 _06015570: cmp r5, #192 ; 0xc0 beq _060157C8 b _06015918 _0601557C: cmp r6, #0 beq _06015918 ldrh r0, [sl, #8] ands r0, r0, #2 bne _06015918 ldrh r1, [sl, #44] ; 0x2c cmp r1, #0 bne _060155D4 ldrh r0, [sl, #46] ; 0x2e cmp r0, #2 bne _060155D4 ldrh r0, [sl, #48] ; 0x30 cmp r0, #0 bne _060155D4 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #48 ; 0x30 bl CAM_SetStaState add r0, sl, #24 ldrh r1, [sl, #44] ; 0x2c bl MLME_IssueAuthIndication b _06015918 _060155D4: cmp r1, #1 bne _06015918 ldrh r0, [sl, #46] ; 0x2e cmp r0, #4 bne _06015918 ldrh r0, [sl, #48] ; 0x30 cmp r0, #0 bne _06015918 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #48 ; 0x30 bl CAM_SetStaState add r0, sl, #24 ldrh r1, [sl, #44] ; 0x2c bl MLME_IssueAuthIndication b _06015918 _06015614: cmp r6, #0 beq _06015918 ldrh r0, [sl, #8] ands r0, r0, #2 bne _06015694 ldrh r0, [sl, #46] ; 0x2e cmp r0, #0 bne _06015918 mov r0, r6 bl CAM_GetStaState cmp r0, #48 ; 0x30 bne _06015918 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #64 ; 0x40 bl CAM_SetStaState cmp r5, #16 bne _06015678 add r0, sl, #24 ldrh r1, [sl, #48] ; 0x30 add r3, sl, #20 ldrh r2, [sl, #18] add r2, r3, r2 bl MLME_IssueAssIndication b _06015918 _06015678: add r0, sl, #24 ldrh r1, [sl, #48] ; 0x30 add r3, sl, #20 ldrh r2, [sl, #18] add r2, r3, r2 bl MLME_IssueReAssIndication b _06015918 _06015694: mov r0, r6, lsl #16 mov r0, r0, lsr #16 bl CAM_ReleaseAID add r0, sl, #24 mov r1, #1 mov r2, #0 bl MakeDeAuthFrame cmp r0, #0 beq _06015918 mov r1, #2 strh r1, [r0] cmp r9, #0 beq _060156D0 bl TxManCtrlFrame b _06015918 _060156D0: bl SetManCtrlFrame b _06015918 _060156D8: ldrh r0, [r4, #12] cmp r0, #1 bne _06015768 cmp r6, #0 beq _06015710 mov r0, r6 bl CAM_GetStaState cmp r0, #48 ; 0x30 bls _06015780 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #48 ; 0x30 bl CAM_SetStaState b _06015780 _06015710: ldrh r0, [sl, #24] ands r0, r0, #1 beq _06015780 mov r6, #1 mov r5, #48 ; 0x30 ldr r4, _06015968 ; =0x0380FFF4 b _06015750 _0601572C: mov r0, r6 bl CAM_GetStaState cmp r0, #48 ; 0x30 bls _0601574C mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, r5 bl CAM_SetStaState _0601574C: add r6, r6, #1 _06015750: ldr r0, [r4] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 cmp r6, r0 bcc _0601572C b _06015780 _06015768: ldrh r0, [r4, #8] cmp r0, #48 ; 0x30 bls _06015780 mov r0, #48 ; 0x30 bl WSetStaState bl WClearAids _06015780: ldrh r0, [r8] cmp r0, #113 ; 0x71 bne _06015918 ldr r0, [r8, #4] cmp sl, r0 bne _06015918 ldrh r0, [sl, #8] ands r0, r0, #2 moveq r1, #0 ldreq r0, [r8, #28] streqh r1, [r0, #4] movne r1, #12 ldrne r0, [r8, #28] strneh r1, [r0, #4] mov r0, #0 strh r0, [r8] bl IssueMlmeConfirm b _06015918 _060157C8: ldrh r0, [r4, #12] cmp r0, #1 bne _06015858 cmp r6, #0 beq _06015800 mov r0, r6 bl CAM_GetStaState cmp r0, #32 bls _06015870 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState b _06015870 _06015800: ldrh r0, [sl, #24] ands r0, r0, #1 beq _06015870 mov r5, #1 mov r4, #32 ldr fp, _06015968 ; =0x0380FFF4 b _06015840 _0601581C: mov r0, r5 bl CAM_GetStaState cmp r0, #32 bls _0601583C mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, r4 bl CAM_SetStaState _0601583C: add r5, r5, #1 _06015840: ldr r0, [fp] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #34] ; 0x22 cmp r5, r0 bcc _0601581C b _06015870 _06015858: ldrh r0, [r4, #8] cmp r0, #32 bls _06015870 mov r0, #32 bl WSetStaState bl WClearAids _06015870: ldrh r0, [r8] cmp r0, #65 ; 0x41 bne _060158B4 ldr r0, [r8, #4] cmp sl, r0 bne _060158B4 ldrh r0, [sl, #8] ands r0, r0, #2 moveq r1, #0 ldreq r0, [r8, #28] streqh r1, [r0, #4] movne r1, #12 ldrne r0, [r8, #28] strneh r1, [r0, #4] mov r0, #0 strh r0, [r8] bl IssueMlmeConfirm _060158B4: ldrh r0, [sl] cmp r0, #1 bne _06015904 cmp r6, #0 beq _060158F4 ldr r0, _06015968 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1280 ; 0x500 ldrh r2, [r0, #52] ; 0x34 mov r1, #1 mvn r1, r1, lsl r6 and r1, r2, r1 strh r1, [r0, #52] ; 0x34 mov r0, r6, lsl #16 mov r0, r0, lsr #16 bl CAM_Delete _060158F4: add r0, sl, #24 mov r1, #1 bl MLME_IssueDeAuthIndication b _06015918 _06015904: cmp r0, #2 bne _06015918 add r0, sl, #24 ldrh r1, [sl, #44] ; 0x2c bl MLME_IssueDeAuthIndication _06015918: mov r0, sl bl CAM_DecFrameCount mov r0, r7 sub r1, sl, #16 bl ReleaseHeapBuf mov r1, #0 ldr r0, _06015968 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r1, [r0, #64] ; 0x40 cmp r9, #0 beq _0601595C ldrh r0, [r7, #8] cmp r0, #0 beq _0601595C mov r0, #1 bl TxqPri _0601595C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06015968: .word 0x0380FFF4 _0601596C: .word 0x00000404 _06015970: .word 0x0000053C arm_func_start TxqEndData TxqEndData: ; 0x06015974 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} arm_func_start FUN_06015978 FUN_06015978: ; 0x06015978 sub sp, sp, #4 mov r9, r0 mov r8, r1 ldr r1, _06015B00 ; =0x0380FFF4 ldr r2, [r1] add r7, r2, #404 ; 0x194 add r6, r2, #836 ; 0x344 ldr r1, _06015B04 ; =0x0000053C add r5, r2, r1 sub r4, r9, #16 bl CAM_DecFrameCount ldrh r0, [r9, #8] ands r0, r0, #2 bne _06015A14 ldr r0, [r5] add r0, r0, #1 str r0, [r5] ldrh r0, [r9, #20] mov r0, r0, lsl #23 movs r0, r0, lsr #31 beq _060159F0 ldrh r0, [r9, #36] ; 0x24 ands r0, r0, #1 ldrne r0, [r5, #20] addne r0, r0, #1 strne r0, [r5, #20] ldreq r0, [r5, #16] addeq r0, r0, #1 streq r0, [r5, #16] b _06015A20 _060159F0: ldrh r0, [r9, #24] ands r0, r0, #1 ldrne r0, [r5, #20] addne r0, r0, #1 strne r0, [r5, #20] ldreq r0, [r5, #16] addeq r0, r0, #1 streq r0, [r5, #16] b _06015A20 _06015A14: ldr r0, [r5, #4] add r0, r0, #1 str r0, [r5, #4] _06015A20: ldrh r0, [r9, #20] mov r0, r0, lsl #17 movs r0, r0, lsr #31 ldrne r0, [r5, #24] addne r0, r0, #1 strne r0, [r5, #24] mov r0, r7 mov r1, r4 bl IssueMaDataConfirm mov r1, #0 ldr r0, _06015B00 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r1, [r0, #44] ; 0x2c ldrh r0, [r9, #2] bl CAM_GetPowerMgtMode cmp r0, #0 beq _06015A7C ldrh r0, [r9, #20] ands r0, r0, #8192 ; 0x2000 bne _06015A7C ldrh r0, [r9, #2] bl CAM_SetDoze _06015A7C: cmp r8, #0 beq _06015AF4 ldrh r0, [r7, #8] cmp r0, #0 beq _06015A9C mov r0, #0 bl TxqPri b _06015AF4 _06015A9C: ldrh r1, [r6, #12] ldr r0, _06015B08 ; =0x0000FFFE add r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 cmp r0, #1 bhi _06015AF4 ldrh r0, [r6, #8] cmp r0, #64 ; 0x40 bne _06015AF4 ldrh r0, [r6, #14] cmp r0, #0 beq _06015AF4 ldrh r0, [r6, #136] ; 0x88 bl CAM_GetFrameCount cmp r0, #0 bne _06015AF4 ldrh r0, [r6, #142] ; 0x8e cmp r0, #0 bne _06015AF4 mov r0, #1 bl WSetPowerState _06015AF4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, lr} bx lr _06015B00: .word 0x0380FFF4 _06015B04: .word 0x0000053C _06015B08: .word 0x0000FFFE arm_func_start CopyTxFrmToMacBuf CopyTxFrmToMacBuf: ; 0x06015B0C stmdb sp!, {r4, r5, r6, lr} mov r6, r0 mov r5, r1 add r4, r5, #16 ldrh r1, [r4, #20] ands r1, r1, #16384 ; 0x4000 beq _06015BEC ldr r0, _06015C64 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #3 bne _06015B44 bl WUpdateCounter _06015B44: ldrh r1, [r5, #12] ldr r0, _06015C68 ; =0x0000FFFF cmp r1, r0 bne _06015B6C mov r0, r6 add r1, r4, #8 add r2, r4, #44 ; 0x2c ldrh r3, [r4, #6] bl DMA_WepWriteHeaderData b _06015B80 _06015B6C: mov r0, r6 add r1, r4, #8 ldr r2, [r4, #44] ; 0x2c ldrh r3, [r4, #6] bl DMA_WepWriteHeaderData _06015B80: ldr r2, _06015C6C ; =0x04808044 ldrh r1, [r2] ldrh r0, [r2] add r0, r1, r0, lsl #8 strh r0, [r6, #36] ; 0x24 ldrh r0, [r2] and r2, r0, #255 ; 0xff ldr r1, _06015C64 ; =0x0380FFF4 ldr r0, [r1] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #54] ; 0x36 orr r0, r2, r0, lsl #14 strh r0, [r6, #38] ; 0x26 ldr r0, [r1] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 beq _06015C20 add r1, r6, #12 ldrh r0, [r4, #18] add r0, r1, r0 sub r0, r0, #7 bic r1, r0, #1 mov r0, #0 strh r0, [r1] strh r0, [r1, #2] b _06015C20 _06015BEC: ldrh r2, [r5, #12] ldr r1, _06015C68 ; =0x0000FFFF cmp r2, r1 bne _06015C10 add r1, r4, #8 ldrh r2, [r4, #6] add r2, r2, #36 ; 0x24 bl DMA_Write b _06015C20 _06015C10: add r1, r4, #8 ldr r2, [r4, #44] ; 0x2c ldrh r3, [r4, #6] bl DMA_WriteHeaderData _06015C20: ldr r0, _06015C64 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #4 beq _06015C5C add r1, r6, #12 ldrh r0, [r4, #18] add r0, r1, r0 sub r0, r0, #1 bic r1, r0, #3 ldr r0, _06015C70 ; =0x0000B6B8 strh r0, [r1] ldr r0, _06015C74 ; =0x00001D46 strh r0, [r1, #2] _06015C5C: ldmia sp!, {r4, r5, r6, lr} bx lr _06015C64: .word 0x0380FFF4 _06015C68: .word 0x0000FFFF _06015C6C: .word 0x04808044 _06015C70: .word 0x0000B6B8 _06015C74: .word 0x00001D46 arm_func_start TxqPri TxqPri: ; 0x06015C78 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #20 mov sl, r0 ldr r0, _06015EB8 ; =0x0380FFF4 ldr r1, [r0] add r9, r1, #836 ; 0x344 ldr r0, _06015EBC ; =0x0000042C add r8, r1, r0 mov r0, #20 mla r7, sl, r0, r8 add r1, r1, #404 ; 0x194 mov r0, #12 mla fp, sl, r0, r1 ldrh r0, [fp, #8] cmp r0, #0 beq _06015EAC mov r0, #16777216 ; 0x1000000 bl FUN_06009068 str r0, [sp, #8] ldrh r1, [r7] cmp r1, #0 beq _06015CD8 bl FUN_06009070 b _06015EAC _06015CD8: ldr r0, [fp] str r0, [sp, #4] mov r4, #2 mov r0, #0 str r0, [sp, #12] _06015CEC: mvn r1, #0 ldr r0, [sp, #4] cmp r0, r1 bne _06015D08 ldr r0, [sp, #8] bl FUN_06009070 b _06015EAC _06015D08: str r0, [sp] bl GetHeapBufNextAdrs str r0, [sp, #4] ldr r0, [sp] add r6, r0, #16 ldrh r5, [r6, #2] ldr r1, [r9, #168] ; 0xa8 ldrh r0, [r6, #4] sub r0, r1, r0 mov r0, r0, lsl #16 mov r2, r0, lsr #16 ldrh r1, [r9, #140] ; 0x8c cmp r2, r1 bls _06015D50 ldrh r0, [r6, #20] mov r0, r0, lsl #28 movs r0, r0, lsr #30 bne _06015D58 _06015D50: cmp r2, r1, lsl #3 bls _06015D8C _06015D58: ldrh r0, [r8, #174] ; 0xae add r0, r0, #1 strh r0, [r8, #174] ; 0xae strh r4, [r6, #8] ldrh r0, [r7, #4] add r0, r0, #1 strh r0, [r7, #4] mov r0, r6 ldr r1, [sp, #12] ldr r2, [r7, #16] mov lr, pc bx r2 b _06015CEC _06015D8C: cmp sl, #0 beq _06015DAC cmp sl, #1 bne _06015DE8 mov r0, r5 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06015DE8 _06015DAC: mov r0, r5 bl CAM_IsActive cmp r0, #0 beq _06015CEC mov r0, r5 bl CAM_GetStaState cmp r0, #64 ; 0x40 beq _06015DE8 strh r4, [r6, #8] mov r0, fp sub r1, r6, #16 bl IssueMaDataConfirm mov r0, r6 bl CAM_DecFrameCount b _06015CEC _06015DE8: mov r0, #1 strh r0, [r7] ldrh r0, [r7, #2] add r0, r0, #1 strh r0, [r7, #2] str r6, [r7, #12] ldr r4, [r7, #8] ldrh r0, [r9, #16] cmp r0, #0 bne _06015E18 mov r0, #2 bl WSetPowerState _06015E18: mov r0, r4 ldr r1, [sp] bl CopyTxFrmToMacBuf ldrh r0, [r9, #12] cmp r0, #1 bne _06015E48 mov r0, r5 bl CAM_GetFrameCount cmp r0, #1 ldrhih r0, [r4, #12] orrhi r0, r0, #8192 ; 0x2000 strhih r0, [r4, #12] _06015E48: ldrh r3, [r6, #20] ldr r0, _06015EC0 ; =0x048080A0 add r0, r0, sl, lsl #2 ldr r1, _06015EC4 ; =0x00003FFF and r1, r4, r1 mov r2, r1, lsr #1 and r1, r3, #12 cmp r1, #4 moveq r1, r2, lsl #16 moveq r1, r1, lsr #16 orreq r1, r1, #40960 ; 0xa000 streqh r1, [r0] beq _06015EA4 and r1, r3, #252 ; 0xfc cmp r1, #80 ; 0x50 moveq r1, r2, lsl #16 moveq r1, r1, lsr #16 orreq r1, r1, #36864 ; 0x9000 streqh r1, [r0] movne r1, r2, lsl #16 movne r1, r1, lsr #16 orrne r1, r1, #32768 ; 0x8000 strneh r1, [r0] _06015EA4: ldr r0, [sp, #8] bl FUN_06009070 _06015EAC: add sp, sp, #20 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06015EB8: .word 0x0380FFF4 _06015EBC: .word 0x0000042C _06015EC0: .word 0x048080A0 _06015EC4: .word 0x00003FFF arm_func_start InitRxCtrl InitRxCtrl: ; 0x06015EC8 stmdb sp!, {r4, r5, r6, lr} ldr r0, _06015FE0 ; =0x0380FFF4 ldr r1, [r0] add r6, r1, #836 ; 0x344 ldr r0, _06015FE4 ; =0x000004DC add r5, r1, r0 mov r0, #0 mov r1, r5 mov r2, #80 ; 0x50 bl FUN_0600AEC4 mov r1, #32768 ; 0x8000 ldr r0, _06015FE8 ; =0x04808030 strh r1, [r0] ldr r0, _06015FE0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #3 addls pc, pc, r0, lsl #2 b _06015F44 b _06015F28 b _06015F30 b _06015F38 b _06015F40 _06015F28: ldr r4, _06015FEC ; =0x00000794 b _06015F44 _06015F30: ldr r4, _06015FF0 ; =0x000010C4 b _06015F44 _06015F38: ldr r4, _06015FF4 ; =0x00000BFC b _06015F44 _06015F40: ldr r4, _06015FEC ; =0x00000794 _06015F44: ldr r0, _06015FF8 ; =0x04804000 add r1, r4, r0 ldr r0, _06015FFC ; =0x04808050 strh r1, [r0] mov r0, r4, lsl #15 mov r2, r0, lsr #16 ldr r0, _06016000 ; =0x04808056 strh r2, [r0] ldr r1, _06016004 ; =0x00005F60 ldr r0, _06016008 ; =0x04808052 strh r1, [r0] ldr r0, _0601600C ; =0x0480805A strh r2, [r0] strh r2, [r5, #4] ldr r0, _06016010 ; =0x0000FFFF strh r0, [r5] ldr r1, _06016014 ; =0x00001F60 sub r1, r1, r4 strh r1, [r6, #154] ; 0x9a ldr r2, _06016018 ; =0x00005F5E ldr r1, _0601601C ; =0x04808062 strh r2, [r1] ldr r2, _06016020 ; =0x00008001 ldr r1, _06015FE8 ; =0x04808030 strh r2, [r1] ldr r1, _06016024 ; =0x0480824C strh r0, [r1] ldr r1, _06016028 ; =0x0480824E strh r0, [r1] ldr r1, _0601602C ; =0x04805F70 strh r0, [r1] ldr r1, _06016030 ; =0x04805F72 strh r0, [r1] ldr r1, _06016034 ; =0x04805F7E strh r0, [r1] ldr r1, _06016038 ; =0x04805F76 strh r0, [r1] ldmia sp!, {r4, r5, r6, lr} bx lr _06015FE0: .word 0x0380FFF4 _06015FE4: .word 0x000004DC _06015FE8: .word 0x04808030 _06015FEC: .word 0x00000794 _06015FF0: .word 0x000010C4 _06015FF4: .word 0x00000BFC _06015FF8: .word 0x04804000 _06015FFC: .word 0x04808050 _06016000: .word 0x04808056 _06016004: .word 0x00005F60 _06016008: .word 0x04808052 _0601600C: .word 0x0480805A _06016010: .word 0x0000FFFF _06016014: .word 0x00001F60 _06016018: .word 0x00005F5E _0601601C: .word 0x04808062 _06016020: .word 0x00008001 _06016024: .word 0x0480824C _06016028: .word 0x0480824E _0601602C: .word 0x04805F70 _06016030: .word 0x04805F72 _06016034: .word 0x04805F7E _06016038: .word 0x04805F76 arm_func_start DefragTimerTask DefragTimerTask: ; 0x0601603C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 ldr r4, _060160AC ; =0x0380FFF4 ldr r1, [r4] ldr r0, _060160B0 ; =0x000004E4 add r6, r1, r0 mov r5, #0 mov r7, #24 _0601605C: mul r0, r5, r7 add r1, r6, r0 ldrh r0, [r6, r0] cmp r0, #0 beq _06016094 sub r0, r0, #1 strh r0, [r1] ldrh r0, [r1] cmp r0, #0 bne _06016094 ldr r0, [r4] add r0, r0, #392 ; 0x188 ldr r1, [r1, #20] bl ReleaseHeapBuf _06016094: add r5, r5, #1 cmp r5, #3 bcc _0601605C add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _060160AC: .word 0x0380FFF4 _060160B0: .word 0x000004E4 arm_func_start FUN_060160B4 FUN_060160B4: ; 0x060160B4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 mov sl, r0 mov r9, r1 ldr r0, _060162E8 ; =0x0380FFF4 ldr r1, [r0] add r8, r1, #380 ; 0x17c ldr r0, _060162EC ; =0x000004E4 add r7, r1, r0 ldrh r0, [sl, #8] sub r0, r0, #24 strh r0, [sl, #8] mov r6, #0 b _0601618C _060160EC: mov r0, #24 mul r0, r6, r0 str r0, [sp, #4] add r4, r7, r0 ldrh r0, [r7, r0] cmp r0, #0 beq _06016188 add r0, r4, #4 mov r1, r9 bl MatchMacAdrs cmp r0, #0 beq _06016188 add r0, r4, #10 add r1, r9, #6 bl MatchMacAdrs cmp r0, #0 beq _06016188 ldrh r0, [r9, #12] mov r1, r0, lsl #16 mov r2, r1, lsr #20 ldrh r1, [r4, #16] mov r1, r1, lsl #16 cmp r2, r1, lsr #20 bne _06016188 ldr r1, [sp, #4] add r2, r7, r1 ldrh r1, [r2, #16] sub fp, r1, r0 ands r0, fp, #-2147483648 ; 0x80000000 bne _060162DC ldrh r0, [r2, #2] mul r0, fp, r0 str r0, [sp] ldrh r1, [sl, #8] subs r5, r1, r0 beq _060162DC ands r0, r5, #-2147483648 ; 0x80000000 beq _06016194 b _060162DC _06016188: add r6, r6, #1 _0601618C: cmp r6, #3 bcc _060160EC _06016194: cmp r6, #3 beq _060162DC mov r0, #24 mul r4, r6, r0 add r0, r7, r4 ldr r0, [r0, #20] add r6, r0, #16 ldrh r1, [r6, #16] add r9, r1, r5 ldr r0, _060162F0 ; =0x000005E4 cmp r9, r0 bls _060161DC add r0, r8, #12 sub r1, r6, #16 bl ReleaseHeapBuf mov r0, #0 strh r0, [r7, r4] b _060162DC _060161DC: add r2, sl, #36 ; 0x24 ldr r0, [sp] add r0, r2, r0 add r2, r6, #44 ; 0x2c add r1, r2, r1 add r2, r5, #1 bl FUN_06000EA0 strh r9, [r6, #16] ldrh r0, [sl] and r0, r0, #240 ; 0xf0 mov r1, #16 bl FUN_06001840 add r2, r7, r4 ldrh r3, [r2, #16] bic r1, r3, #15 mov r4, r3, lsl #28 sub r3, r0, fp add r3, r3, r4, lsr #28 mov r3, r3, lsl #16 mov r3, r3, lsr #16 and r3, r3, #15 orr r1, r1, r3 strh r1, [r2, #16] ldr r1, _060162E8 ; =0x0380FFF4 ldr r3, [r1] ldr r1, [r3, #1376] ; 0x560 add r0, r1, r0 str r0, [r3, #1376] ; 0x560 ldrh r0, [sl] ands r0, r0, #256 ; 0x100 bne _060162DC mov r0, #0 strh r0, [r2] ldrh r0, [r6, #8] bic r0, r0, #240 ; 0xf0 add r0, r0, #16 strh r0, [r6, #8] ldrh r0, [r6, #16] add r0, r0, #24 strh r0, [r6, #16] ldrh r0, [r6, #8] ands r0, r0, #15 beq _060162B0 cmp r0, #8 bne _060162D0 add r0, r8, #12 add r1, r8, #72 ; 0x48 sub r2, r6, #16 bl MoveHeapBuf mov r0, #2 mov r1, #6 bl AddTask b _060162DC _060162B0: add r0, r8, #12 add r1, r8, #96 ; 0x60 sub r2, r6, #16 bl MoveHeapBuf mov r0, #1 mov r1, #7 bl AddTask b _060162DC _060162D0: add r0, r8, #12 sub r1, r6, #16 bl ReleaseHeapBuf _060162DC: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _060162E8: .word 0x0380FFF4 _060162EC: .word 0x000004E4 _060162F0: .word 0x000005E4 arm_func_start FUN_060162F4 FUN_060162F4: ; 0x060162F4 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 mov r9, r1 ldr r0, _06016538 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _0601653C ; =0x000004E4 add r8, r1, r0 mvn r6, #0 mov r7, #0 add r0, r9, #6 str r0, [sp] mov fp, #24 b _0601643C _0601632C: mul r5, r7, fp add r4, r8, r5 ldrh r0, [r8, r5] cmp r0, #0 beq _06016434 add r0, r4, #4 mov r1, r9 bl MatchMacAdrs cmp r0, #0 beq _06016438 add r0, r4, #10 ldr r1, [sp] bl MatchMacAdrs cmp r0, #0 beq _06016438 ldrh r0, [r9, #12] mov r0, r0, lsl #16 mov r1, r0, lsr #20 ldrh r0, [r4, #16] mov r0, r0, lsl #16 cmp r1, r0, lsr #20 bne _06016438 ldrh r0, [sl] and r0, r0, #240 ; 0xf0 mov r1, #16 bl FUN_06001840 mov r6, r0 ldrh r0, [r4, #16] mov r0, r0, lsl #28 mov r0, r0, lsr #28 subs r0, r6, r0 beq _0601652C ands r0, r0, #-2147483648 ; 0x80000000 bne _0601652C mov r0, r4 ldr r0, [r0, #20] add r7, r0, #16 ldrh r2, [r7, #16] ldrh r0, [sl, #8] sub r0, r0, r2 subs r5, r0, #24 beq _0601652C ands r0, r5, #-2147483648 ; 0x80000000 bne _0601652C add r0, sl, #36 ; 0x24 add r0, r0, r2 add r1, r7, #44 ; 0x2c add r1, r1, r2 mov r2, r5 bl FUN_06000EA0 ldrh r0, [r7, #16] add r0, r0, r5 strh r0, [r7, #16] ldrh r0, [r4, #16] bic r1, r0, #15 mov r0, r6, lsl #16 mov r0, r0, lsr #16 and r0, r0, #15 orr r0, r1, r0 strh r0, [r4, #16] ldr r0, _06016538 ; =0x0380FFF4 ldr r1, [r0] ldr r0, [r1, #1376] ; 0x560 add r0, r0, r6 str r0, [r1, #1376] ; 0x560 b _0601652C _06016434: mov r6, r7 _06016438: add r7, r7, #1 _0601643C: cmp r7, #3 bcc _0601632C mvn r0, #0 cmp r6, r0 beq _0601652C ldr r0, _06016538 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 ldr r1, _06016540 ; =0x00000622 bl AllocateHeapBuf movs r5, r0 beq _06016524 mov r0, #24 mul r4, r6, r0 add r6, r8, r4 mov r0, r9 add r1, r6, #4 mov r2, #16 bl FUN_06000EA0 mov r0, #5 strh r0, [r8, r4] mov r0, r6 str r5, [r0, #20] add r5, r5, #16 mov r0, sl add r1, r5, #8 ldrh r2, [sl, #8] add r2, r2, #12 bl FUN_06000EA0 ldr r0, _06016538 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #780] ; 0x30c bl FUN_06016544 ldrh r0, [r5, #8] and r0, r0, #240 ; 0xf0 mov r1, #16 bl FUN_06001840 mov r1, r0 ldrh r0, [r6, #16] bic r2, r0, #15 mov r0, r1, lsl #16 mov r0, r0, lsr #16 and r0, r0, #15 orr r0, r2, r0 strh r0, [r6, #16] ldr r0, _06016538 ; =0x0380FFF4 ldr r2, [r0] ldr r0, [r2, #1376] ; 0x560 add r0, r0, r1 str r0, [r2, #1376] ; 0x560 ldrh r0, [sl, #8] sub r0, r0, #24 strh r0, [r5, #16] ldrh r0, [r5, #16] bl FUN_06003B68 mov r1, r6 strh r0, [r1, #2] b _0601652C _06016524: mov r0, #4 bl SetFatalErr _0601652C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06016538: .word 0x0380FFF4 _0601653C: .word 0x000004E4 _06016540: .word 0x00000622 arm_func_start FUN_06016544 FUN_06016544: ; 0x06016544 ldr pc, _06016548 ; =MI_WaitDma _06016548: .word MI_WaitDma arm_func_start DefragTask DefragTask: ; 0x0601654C stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #20 ldr r0, _06016660 ; =0x0380FFF4 ldr r1, [r0] add r7, r1, #380 ; 0x17c ldr r6, [r7, #108] ; 0x6c mvn r0, #0 cmp r6, r0 beq _06016654 add r5, r6, #16 add r0, r1, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #64 ; 0x40 bne _06016630 ldrh r1, [r5, #16] ldr r0, _06016664 ; =0x000005FC cmp r1, r0 bhi _06016630 ldrh r4, [r5, #20] ands r0, r4, #256 ; 0x100 beq _060165C4 add r0, sp, #0 add r1, r5, #36 ; 0x24 bl WSetMacAdrs1 ands r0, r4, #512 ; 0x200 bne _06016630 add r0, sp, #6 add r1, r5, #30 bl WSetMacAdrs1 b _060165F4 _060165C4: add r0, sp, #0 add r1, r5, #24 bl WSetMacAdrs1 ands r0, r4, #512 ; 0x200 beq _060165E8 add r0, sp, #6 add r1, r5, #36 ; 0x24 bl WSetMacAdrs1 b _060165F4 _060165E8: add r0, sp, #6 add r1, r5, #30 bl WSetMacAdrs1 _060165F4: ldrh r0, [r5, #42] ; 0x2a strh r0, [sp, #12] ands r0, r4, #1024 ; 0x400 beq _06016624 ldrh r0, [r5, #42] ; 0x2a mov r0, r0, lsl #28 movs r0, r0, lsr #28 bne _06016624 add r0, r5, #8 add r1, sp, #0 bl FUN_060162F4 b _06016630 _06016624: add r0, r5, #8 add r1, sp, #0 bl FUN_060160B4 _06016630: add r0, r7, #108 ; 0x6c mov r1, r6 bl ReleaseHeapBuf ldrh r0, [r7, #116] ; 0x74 cmp r0, #0 beq _06016654 mov r0, #2 mov r1, #9 bl AddTask _06016654: add sp, sp, #20 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06016660: .word 0x0380FFF4 _06016664: .word 0x000005FC arm_func_start FUN_06016668 FUN_06016668: ; 0x06016668 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r4, r0 ldrh r0, [r4, #2] bl CAM_GetAuthSeed bl RND_seed add r5, r4, #52 ; 0x34 add r0, r4, #51 ; 0x33 bl WL_ReadByte mov r6, r0 mov r7, #0 mov r4, r6, lsr #1 b _060166B4 _0601669C: bl RND_rand ldrh r1, [r5], #2 cmp r1, r0 movne r0, #0 bne _060166E4 add r7, r7, #1 _060166B4: cmp r7, r4 bcc _0601669C ands r0, r6, #1 beq _060166E0 bl RND_rand ldrh r1, [r5] and r1, r1, #255 ; 0xff and r0, r0, #255 ; 0xff cmp r1, r0 movne r0, #0 bne _060166E4 _060166E0: mov r0, #1 _060166E4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr arm_func_start FUN_060166F0 FUN_060166F0: ; 0x060166F0 stmdb sp!, {r4, r5, r6, lr} mov r5, r0 mov r4, r1 ldr r0, _06016760 ; =0x04808044 ldrh r1, [r0] ldrh r0, [r0] add r0, r1, r0, lsl #8 mov r0, r0, lsl #16 movs r6, r0, lsr #16 moveq r6, #1 mov r0, r6 bl RND_seed mov r0, r5 mov r1, r6 bl CAM_SetAuthSeed add r5, r4, #52 ; 0x34 add r0, r4, #51 ; 0x33 bl WL_ReadByte mov r4, r0 mov r6, #0 b _06016750 _06016744: bl RND_rand strh r0, [r5], #2 add r6, r6, #2 _06016750: cmp r6, r4 bcc _06016744 ldmia sp!, {r4, r5, r6, lr} bx lr _06016760: .word 0x04808044 arm_func_start RxManCtrlTask RxManCtrlTask: ; 0x06016764 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #12 ldr r0, _06016AA8 ; =0x0380FFF4 ldr r1, [r0] add r9, r1, #380 ; 0x17c ldr r0, _06016AAC ; =0x0000053C add r8, r1, r0 add r0, r1, #768 ; 0x300 ldrh r7, [r0, #80] ; 0x50 ldr r0, [r9, #96] ; 0x60 str r0, [sp] mvn r1, #0 cmp r0, r1 beq _06016A9C add r6, r0, #16 add sl, r6, #20 ldrh r0, [r6, #24] ands r0, r0, #1 ldrne r0, [r8, #44] ; 0x2c addne r0, r0, #1 strne r0, [r8, #44] ; 0x2c ldreq r0, [r8, #40] ; 0x28 addeq r0, r0, #1 streq r0, [r8, #40] ; 0x28 ldrh r0, [r6, #8] and r0, r0, #240 ; 0xf0 mov r1, #16 bl FUN_06001840 ldr r1, [r8, #36] ; 0x24 sub r0, r0, #1 add r0, r1, r0 str r0, [r8, #36] ; 0x24 ldrh r0, [sl] mov r1, r0, lsl #28 mov r5, r1, lsr #30 mov r0, r0, lsl #24 mov r4, r0, lsr #28 add r0, sl, #10 bl CAM_SearchAdd mov fp, r0 strh fp, [r6, #2] cmp fp, #255 ; 0xff bne _06016864 mov r0, #0 strh r0, [r6, #2] cmp r7, #1 bne _06016A78 cmp r5, #0 bne _06016A78 cmp r4, #0 beq _06016858 cmp r4, #4 beq _0601684C cmp r4, #11 bne _06016A78 mov r0, r6 bl FUN_06016F18 b _06016A78 _0601684C: mov r0, r6 bl FUN_0601784C b _06016A78 _06016858: mov r0, r6 bl FUN_06017D0C b _06016A78 _06016864: bl CAM_UpdateLifeTime mov r0, fp, lsl #16 mov r0, r0, lsr #16 ldrh r1, [r6, #18] and r1, r1, #255 ; 0xff mov r1, r1, lsl #16 mov r1, r1, lsr #16 bl CAM_SetRSSI cmp r5, #0 bne _060168BC ldrh r0, [r6, #42] ; 0x2a str r0, [sp, #4] mov r0, fp bl CAM_GetLastSeqCtrl ldr r1, [sp, #4] cmp r1, r0 ldreq r0, [r8, #60] ; 0x3c addeq r0, r0, #1 streq r0, [r8, #60] ; 0x3c beq _06016A78 mov r0, fp bl CAM_SetLastSeqCtrl _060168BC: cmp r7, #1 beq _060168D8 cmp r7, #2 beq _060169B8 cmp r7, #3 beq _060169B8 b _06016A78 _060168D8: mov r0, fp, lsl #16 mov r0, r0, lsr #16 ldrh r1, [sl] mov r1, r1, lsl #19 mov r1, r1, lsr #31 bl CAM_SetPowerMgtMode cmp r5, #0 bne _0601699C cmp r4, #12 addls pc, pc, r4, lsl #2 b _06016A78 b _06016944 b _06016A78 b _06016950 b _06016A78 b _0601695C b _06016968 b _06016A78 b _06016A78 b _06016938 b _06016A78 b _06016978 b _06016984 b _06016990 _06016938: mov r0, r6 bl RxBeaconFrame b _06016A78 _06016944: mov r0, r6 bl FUN_06017D0C b _06016A78 _06016950: mov r0, r6 bl FUN_06017A34 b _06016A78 _0601695C: mov r0, r6 bl FUN_0601784C b _06016A78 _06016968: mov r0, r6 mov r1, #0 bl FUN_0601745C b _06016A78 _06016978: mov r0, r6 bl FUN_06017EE8 b _06016A78 _06016984: mov r0, r6 bl FUN_06016F18 b _06016A78 _06016990: mov r0, r6 bl FUN_06016E5C b _06016A78 _0601699C: cmp r5, #1 bne _06016A78 cmp r4, #10 bne _06016A78 mov r0, r6 bl FUN_06016DF4 b _06016A78 _060169B8: cmp r5, #0 bne _06016A58 cmp r4, #12 addls pc, pc, r4, lsl #2 b _06016A78 b _06016A78 b _06016A0C b _06016A78 b _06016A18 b _06016A78 b _06016A24 b _06016A78 b _06016A78 b _06016A00 b _06016A78 b _06016A34 b _06016A40 b _06016A4C _06016A00: mov r0, r6 bl RxBeaconFrame b _06016A78 _06016A0C: mov r0, r6 bl FUN_06017BE0 b _06016A78 _06016A18: mov r0, r6 bl FUN_06017900 b _06016A78 _06016A24: mov r0, r6 mov r1, #0 bl FUN_0601745C b _06016A78 _06016A34: mov r0, r6 bl FUN_06017EE8 b _06016A78 _06016A40: mov r0, r6 bl FUN_06016F18 b _06016A78 _06016A4C: mov r0, r6 bl FUN_06016E5C b _06016A78 _06016A58: cmp r5, #1 bne _06016A78 cmp r4, #14 beq _06016A70 cmp r4, #15 bne _06016A78 _06016A70: mov r0, r6 bl FUN_06016DF0 _06016A78: add r0, r9, #96 ; 0x60 ldr r1, [sp] bl ReleaseHeapBuf ldrh r0, [r9, #104] ; 0x68 cmp r0, #0 beq _06016A9C mov r0, #1 mov r1, #7 bl AddTask _06016A9C: add sp, sp, #12 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06016AA8: .word 0x0380FFF4 _06016AAC: .word 0x0000053C arm_func_start FUN_06016AB0 FUN_06016AB0: ; 0x06016AB0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov r9, r0 ldr r0, _06016DEC ; =0x0380FFF4 ldr r0, [r0] add r8, r0, #836 ; 0x344 ldr r7, [r9] ldrh r0, [r8, #122] ; 0x7a strh r0, [r9, #18] ldrh r0, [r9, #12] ands r0, r0, #2048 ; 0x800 ldrneh r0, [r9, #10] orrne r0, r0, #1 strneh r0, [r9, #10] ldrh r6, [r9, #8] add r4, r9, #12 add fp, r9, #20 b _06016D5C _06016AF8: mov r0, r7 bl WL_ReadByte mov sl, r0 add r0, r7, #1 add r7, r7, #2 bl WL_ReadByte mov r5, r0 cmp sl, #6 addls pc, pc, sl, lsl #2 b _06016B3C b _06016B48 b _06016BB4 b _06016D50 b _06016C20 b _06016C94 b _06016C74 b _06016D50 _06016B3C: cmp sl, #221 ; 0xdd beq _06016CB4 b _06016D34 _06016B48: cmp r5, #32 bhi _06016D50 ldrh r0, [r4] orr r0, r0, #1 strh r0, [r4] sub r0, r7, #2 str r0, [r9, #28] cmp r5, #0 bne _06016B84 ldrh r0, [r9, #12] ands r0, r0, #2048 ; 0x800 ldrneh r0, [r9, #10] orrne r0, r0, #1 strneh r0, [r9, #10] bne _06016D50 _06016B84: ldrh r0, [r9, #10] bic r0, r0, #1 strh r0, [r9, #10] mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, r7 bl WCheckSSID cmp r0, #0 ldrneh r0, [r9, #10] orrne r0, r0, #1 strneh r0, [r9, #10] b _06016D50 _06016BB4: cmp r5, #1 bcc _06016D50 ldrh r0, [r4] orr r0, r0, #4 strh r0, [r4] sub r0, r7, #2 mov r1, fp bl WElement2RateSet ldrh r1, [r9, #20] ldrh r0, [r8, #96] ; 0x60 ldrh r2, [r8, #98] ; 0x62 orr r2, r0, r2 mvn r2, r2 ands r2, r1, r2 bne _06016C10 ldrh r2, [r9, #22] orr r1, r1, r2 and r1, r0, r1 cmp r0, r1 ldreqh r0, [r9, #10] orreq r0, r0, #4 streqh r0, [r9, #10] beq _06016D50 _06016C10: ldrh r0, [r9, #10] bic r0, r0, #4 strh r0, [r9, #10] b _06016D50 _06016C20: cmp r5, #1 bcc _06016D50 ldrh r0, [r4] orr r0, r0, #2 strh r0, [r4] mov r0, r7 bl WL_ReadByte strh r0, [r9, #18] ldrh r1, [r9, #18] ldr r0, _06016DEC ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #1052] ; 0x41c ldrh r0, [r0, #74] ; 0x4a cmp r1, r0 ldreqh r0, [r9, #10] orreq r0, r0, #2 streqh r0, [r9, #10] ldrneh r0, [r9, #10] bicne r0, r0, #2 strneh r0, [r9, #10] b _06016D50 _06016C74: cmp r5, #3 bcc _06016D50 ldrh r0, [r9, #12] orr r0, r0, #256 ; 0x100 strh r0, [r9, #12] sub r0, r7, #2 str r0, [r9, #36] ; 0x24 b _06016D50 _06016C94: cmp r5, #6 bcc _06016D50 ldrh r0, [r9, #12] orr r0, r0, #512 ; 0x200 strh r0, [r9, #12] sub r0, r7, #2 str r0, [r9, #32] b _06016D50 _06016CB4: cmp r5, #8 bcc _06016CFC mov r0, r7 bl WL_ReadByte cmp r0, #0 bne _06016CFC add r0, r7, #1 bl WL_ReadByte cmp r0, #9 bne _06016CFC add r0, r7, #2 bl WL_ReadByte cmp r0, #191 ; 0xbf bne _06016CFC add r0, r7, #3 bl WL_ReadByte cmp r0, #0 beq _06016D1C _06016CFC: ldrh r0, [r9, #24] add r0, r0, #1 strh r0, [r9, #24] ldrh r1, [r9, #26] add r0, r5, #2 add r0, r1, r0 strh r0, [r9, #26] b _06016D50 _06016D1C: ldrh r0, [r9, #12] orr r0, r0, #1024 ; 0x400 strh r0, [r9, #12] sub r0, r7, #2 str r0, [r9, #40] ; 0x28 b _06016D50 _06016D34: ldrh r0, [r9, #24] add r0, r0, #1 strh r0, [r9, #24] ldrh r1, [r9, #26] add r0, r5, #2 add r0, r1, r0 strh r0, [r9, #26] _06016D50: add r7, r7, r5 add r0, r5, #2 sub r6, r6, r0 _06016D5C: cmp r6, #0 bgt _06016AF8 ldrh r0, [r9, #12] ands r0, r0, #8 beq _06016D94 ldrh r0, [r8, #100] ; 0x64 ands r0, r0, #1 bne _06016D88 ldrh r0, [r9, #4] ands r0, r0, #32768 ; 0x8000 beq _06016D94 _06016D88: ldrh r0, [r9, #10] orr r0, r0, #8 strh r0, [r9, #10] _06016D94: ldrh r0, [r9, #12] ands r0, r0, #48 ; 0x30 beq _06016DE0 ldrh r0, [r9, #6] and r1, r0, #3 ldrh r0, [r8, #124] ; 0x7c and r0, r0, #3 cmp r1, r0 ldreqh r0, [r9, #10] orreq r0, r0, #16 streqh r0, [r9, #10] ldrh r0, [r9, #6] and r1, r0, #16 ldrh r0, [r8, #124] ; 0x7c and r0, r0, #16 cmp r1, r0 ldreqh r0, [r9, #10] orreq r0, r0, #32 streqh r0, [r9, #10] _06016DE0: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06016DEC: .word 0x0380FFF4 arm_func_start FUN_06016DF0 FUN_06016DF0: ; 0x06016DF0 bx lr arm_func_start FUN_06016DF4 FUN_06016DF4: ; 0x06016DF4 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 ldr r1, _06016E58 ; =0x0380FFF4 ldr r1, [r1] add r5, r1, #380 ; 0x17c ldrh r4, [r0, #2] mov r0, r4 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06016E4C mov r0, r4 bl CAM_SetAwake ldrh r0, [r5, #44] ; 0x2c cmp r0, #0 beq _06016E38 mov r0, #1 bl TxqPri _06016E38: ldrh r0, [r5, #32] cmp r0, #0 beq _06016E4C mov r0, #0 bl TxqPri _06016E4C: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06016E58: .word 0x0380FFF4 arm_func_start FUN_06016E5C FUN_06016E5C: ; 0x06016E5C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 ldr r0, _06016F14 ; =0x0380FFF4 ldr r0, [r0] add r1, r0, #836 ; 0x344 ldrh r5, [r4, #2] ldrh r0, [r1, #12] cmp r0, #1 beq _06016E98 cmp r0, #2 beq _06016ED0 cmp r0, #3 beq _06016ED0 b _06016F08 _06016E98: mov r0, r5 bl CAM_GetStaState cmp r0, #32 bls _06016F08 mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState add r0, r4, #30 ldrh r1, [r4, #44] ; 0x2c bl MLME_IssueDeAuthIndication mov r0, r5 bl DeleteTxFrames b _06016F08 _06016ED0: ldrh r0, [r1, #8] cmp r0, #32 bls _06016F08 add r0, r4, #30 add r1, r1, #130 ; 0x82 bl MatchMacAdrs cmp r0, #0 beq _06016F08 mov r0, #32 bl WSetStaState bl WClearAids add r0, r4, #30 ldrh r1, [r4, #44] ; 0x2c bl MLME_IssueDeAuthIndication _06016F08: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06016F14: .word 0x0380FFF4 arm_func_start FUN_06016F18 FUN_06016F18: ; 0x06016F18 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov sl, r0 ldr r0, _06017444 ; =0x0380FFF4 ldr r1, [r0] add r9, r1, #836 ; 0x344 ldr r0, _06017448 ; =0x00000404 add r8, r1, r0 add r7, sl, #44 ; 0x2c add r0, r1, #1536 ; 0x600 ldrh r0, [r0, #144] ; 0x90 ands r0, r0, #8 beq _06016FCC ldr r0, _0601744C ; =0x0000042C add r2, r1, r0 ldr r0, _06017450 ; =0x048080B0 ldrh r1, [r0] ands r0, r1, #1 beq _06016F70 ldrh r0, [r2] cmp r0, #0 bne _06016FCC _06016F70: ands r0, r1, #4 beq _06016F84 ldrh r0, [r2, #20] cmp r0, #0 bne _06016FCC _06016F84: ands r0, r1, #8 beq _06016F98 ldrh r0, [r2, #40] ; 0x28 cmp r0, #0 bne _06016FCC _06016F98: ldr r0, _06017454 ; =0x0480819C ldrh r0, [r0] ands r0, r0, #1 bne _06016FCC mov r2, #0 ldr r1, _06017458 ; =0x04808032 strh r2, [r1] mov r0, #32768 ; 0x8000 strh r0, [r1] ldr r0, _06017444 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 strh r2, [r0, #222] ; 0xde _06016FCC: add r0, sl, #30 mov r1, #176 ; 0xb0 bl IsExistManFrame cmp r0, #0 bne _06017438 mov r5, #0 ldrh r0, [r7, #2] add r0, r0, #1 mov r0, r0, lsl #16 mov fp, r0, lsr #16 ldrh r6, [sl, #2] cmp r6, #0 moveq r4, #19 moveq r5, #1 beq _060173FC ldrh r0, [r9, #12] cmp r0, #1 bne _0601707C mov r0, r6 bl CAM_GetStaState cmp r0, #32 bls _06017040 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState add r0, sl, #30 mov r1, #1 bl MLME_IssueDeAuthIndication _06017040: ldrh r0, [sl, #8] ands r0, r0, #1024 ; 0x400 beq _0601707C mov r0, r6 bl CAM_GetAuthSeed cmp r0, #0 beq _0601707C mov r5, #1 strh r5, [r7] mov r4, #15 mov fp, #4 mov r0, r6 mov r1, #0 bl CAM_SetAuthSeed b _060173FC _0601707C: ldrh r0, [r7] cmp r0, #0 beq _06017094 cmp r0, #1 beq _0601718C b _060173EC _06017094: ldrh r1, [r9, #12] cmp r1, #1 bne _060170C0 ldr r0, _06017444 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #50] ; 0x32 cmp r0, #1 moveq r4, #13 moveq r5, #1 beq _060173FC _060170C0: cmp r1, #1 bne _060170E8 ldrh r0, [r7, #2] cmp r0, #1 moveq r4, #0 moveq r5, #1 movne r4, #14 movne fp, #2 movne r5, #1 b _060173FC _060170E8: cmp r1, #1 beq _060173FC ldrh r0, [r7, #2] cmp r0, #2 bne _060173FC ldr r1, [r8, #24] ldrh r0, [r1, #22] cmp r0, #0 bne _060173FC add r0, r1, #16 add r1, sl, #30 bl MatchMacAdrs cmp r0, #0 beq _060173FC ldrh r0, [r8] cmp r0, #49 ; 0x31 bne _060173FC bl ClearTimeOut ldrh r0, [r7, #4] cmp r0, #0 bne _0601715C mov r0, #48 ; 0x30 bl WSetStaState mov r1, #0 ldr r0, [r8, #28] strh r1, [r0, #4] ldr r0, [r8, #28] strh r1, [r0, #6] b _06017174 _0601715C: mov r1, #12 ldr r0, [r8, #28] strh r1, [r0, #4] ldrh r1, [r7, #4] ldr r0, [r8, #28] strh r1, [r0, #6] _06017174: mov r0, #53 ; 0x35 strh r0, [r8] mov r0, #2 mov r1, r0 bl AddTask b _060173FC _0601718C: ldrh r0, [r9, #12] cmp r0, #1 bne _06017288 mov r0, r6, lsl #16 mov r0, r0, lsr #16 mov r1, #32 bl CAM_SetStaState ldrh r0, [r7, #2] cmp r0, #1 bne _060171F8 add r0, sl, #30 mov r1, #128 ; 0x80 mov r2, #1 bl MakeAuthFrame movs r8, r0 beq _060173FC ldrh r0, [r7] strh r0, [r8, #44] ; 0x2c strh fp, [r8, #46] ; 0x2e mov r0, #0 strh r0, [r8, #48] ; 0x30 mov r0, r6 mov r1, r8 bl FUN_060166F0 mov r0, r8 bl TxManCtrlFrame b _060173FC _060171F8: cmp r0, #3 bne _0601726C mov r0, r6 bl CAM_GetStaState cmp r0, #32 bne _06017220 mov r0, r6 bl CAM_GetAuthSeed cmp r0, #0 bne _0601722C _06017220: mov r4, #1 mov r5, r4 b _060173FC _0601722C: mov r0, sl bl FUN_06016668 cmp r0, #0 bne _06017254 mov r4, #15 mov r5, #1 mov r0, r6 mov r1, #0 bl CAM_SetAuthSeed b _060173FC _06017254: mov r0, r6 mov r1, #0 bl CAM_SetAuthSeed mov r4, #0 mov r5, #1 b _060173FC _0601726C: mov r0, r6 mov r1, #0 bl CAM_SetAuthSeed mov r4, #14 mov fp, #2 mov r5, #1 b _060173FC _06017288: ldr r1, [r8, #24] ldrh r0, [r1, #22] cmp r0, #1 bne _060173FC add r0, r1, #16 add r1, sl, #30 bl MatchMacAdrs cmp r0, #0 beq _060173FC ldrh r0, [r7, #2] cmp r0, #2 bne _06017378 ldrh r0, [r8] cmp r0, #49 ; 0x31 bne _060173FC ldrh r0, [r7, #4] cmp r0, #0 beq _0601730C bl ClearTimeOut mov r0, #53 ; 0x35 strh r0, [r8] mov r1, #12 ldr r0, [r8, #28] strh r1, [r0, #4] ldrh r1, [r7, #4] ldr r0, [r8, #28] strh r1, [r0, #6] mov r0, #2 mov r1, r0 bl AddTask mov r0, #32 bl WSetStaState b _060173FC _0601730C: mov r0, #51 ; 0x33 strh r0, [r8] add r0, sl, #51 ; 0x33 bl WL_ReadByte mov r1, r0 add r0, sl, #30 mov r2, #1 bl MakeAuthFrame movs r6, r0 beq _060173FC ldrh r0, [r6, #20] orr r0, r0, #16384 ; 0x4000 strh r0, [r6, #20] add r0, sl, #44 ; 0x2c add r1, r6, #44 ; 0x2c ldrh r2, [sl, #6] add r2, r2, #1 bl FUN_06000EA0 ldrh r0, [r7] strh r0, [r6, #44] ; 0x2c mov r0, #3 strh r0, [r6, #46] ; 0x2e mov r0, #0 strh r0, [r6, #48] ; 0x30 mov r0, r6 bl TxManCtrlFrame b _060173FC _06017378: cmp r0, #4 bne _060173FC ldrh r0, [r8] cmp r0, #51 ; 0x33 bne _060173FC bl ClearTimeOut ldrh r0, [r7, #4] cmp r0, #0 bne _060173BC mov r0, #48 ; 0x30 bl WSetStaState mov r1, #0 ldr r0, [r8, #28] strh r1, [r0, #4] ldr r0, [r8, #28] strh r1, [r0, #6] b _060173D4 _060173BC: mov r1, #12 ldr r0, [r8, #28] strh r1, [r0, #4] ldrh r1, [r7, #4] ldr r0, [r8, #28] strh r1, [r0, #6] _060173D4: mov r0, #53 ; 0x35 strh r0, [r8] mov r0, #2 mov r1, r0 bl AddTask b _060173FC _060173EC: ldrh r0, [r9, #12] cmp r0, #1 moveq r4, #13 moveq r5, #1 _060173FC: cmp r5, #0 beq _06017438 cmp r4, #0 movne r2, #1 moveq r2, #0 add r0, sl, #30 mov r1, #0 bl MakeAuthFrame cmp r0, #0 beq _06017438 ldrh r1, [r7] strh r1, [r0, #44] ; 0x2c strh fp, [r0, #46] ; 0x2e strh r4, [r0, #48] ; 0x30 bl TxManCtrlFrame _06017438: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06017444: .word 0x0380FFF4 _06017448: .word 0x00000404 _0601744C: .word 0x0000042C _06017450: .word 0x048080B0 _06017454: .word 0x0480819C _06017458: .word 0x04808032 arm_func_start FUN_0601745C FUN_0601745C: ; 0x0601745C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #52 ; 0x34 mov r5, r0 mov sl, r1 ldr r0, _06017840 ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06017844 ; =0x00000404 add r9, r1, r0 add r0, r1, #1024 ; 0x400 ldrh r0, [r0, #4] cmp r0, #19 bne _06017834 ldr r8, [r9, #28] add r4, r5, #44 ; 0x2c ldr r0, [r9, #24] add r6, r0, #78 ; 0x4e mov r7, #0 add fp, r5, #36 ; 0x24 b _060174D4 _060174A8: mov r0, r6 mov r1, fp bl MatchMacAdrs cmp r0, #0 ldrneh r1, [r8, #6] movne r0, #1 orrne r0, r1, r0, lsl r7 strneh r0, [r8, #6] bne _06017834 add r6, r6, #6 add r7, r7, #1 _060174D4: ldr r0, [r9, #24] ldrh r0, [r0, #76] ; 0x4c cmp r7, r0 bcc _060174A8 add r7, r8, #10 mov r6, #0 add fp, r5, #36 ; 0x24 b _06017514 _060174F4: mov r0, fp add r1, r7, #4 bl MatchMacAdrs cmp r0, #0 bne _06017834 ldrh r0, [r7] add r7, r7, r0, lsl #1 add r6, r6, #1 _06017514: ldrh r0, [r8, #8] cmp r6, r0 bcc _060174F4 mov r0, #0 mov r1, r7 mov r2, #64 ; 0x40 bl FUN_0600055C ldrh r6, [r5, #6] cmp r6, #12 bls _06017834 cmp sl, #0 bne _06017590 mov r0, #0 add r1, sp, #8 mov r2, #44 ; 0x2c bl FUN_0600AEC4 add r0, r4, #12 str r0, [sp, #8] sub r0, r6, #12 strh r0, [sp, #16] mov r0, #3 strh r0, [sp, #18] mov r0, #56 ; 0x38 strh r0, [sp, #20] ldrh r0, [r5, #8] strh r0, [sp, #12] ldrh r0, [r4, #10] strh r0, [sp, #14] add r0, sp, #8 bl FUN_06016AB0 add sl, sp, #8 _06017590: ldr r0, [sl, #40] ; 0x28 cmp r0, #0 ldreqh r0, [sl, #26] addeq r0, r0, #65 ; 0x41 moveq r0, r0, lsr #1 streqh r0, [r7] beq _060175CC add r0, r0, #1 bl WL_ReadByte sub r0, r0, #8 strh r0, [r7, #60] ; 0x3c ldrh r0, [r7, #60] ; 0x3c add r0, r0, #65 ; 0x41 mov r0, r0, lsr #1 strh r0, [r7] _060175CC: ldrh r0, [sl, #10] and r0, r0, #1 cmp r0, #1 bne _06017828 ldr r0, _06017840 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #1024 ; 0x400 ldrh r1, [r0, #8] ldrh r0, [r7] cmp r1, r0 bcc _06017828 ldrh r0, [r4, #10] strh r0, [r7, #44] ; 0x2c add r0, r7, #4 add r1, r5, #36 ; 0x24 bl WSetMacAdrs1 ldrh r0, [r4, #8] strh r0, [r7, #50] ; 0x32 ldrh r0, [r5, #18] and r0, r0, #255 ; 0xff strh r0, [r7, #2] ldr r0, [sl, #40] ; 0x28 cmp r0, #0 beq _06017668 mov r4, #0 add r5, r7, #64 ; 0x40 b _06017658 _06017638: ldr r0, [sl, #40] ; 0x28 add r0, r0, #10 add r0, r0, r4 bl WL_ReadByte mov r1, r0 add r0, r5, r4 bl WL_WriteByte add r4, r4, #1 _06017658: ldrh r0, [r7, #60] ; 0x3c cmp r4, r0 bcc _06017638 b _06017710 _06017668: ldrh r0, [sl, #24] strh r0, [r7, #62] ; 0x3e ldrh r0, [sl, #24] cmp r0, #0 beq _06017710 add r6, r4, #12 add fp, r7, #64 ; 0x40 mov r5, #0 str r5, [sp] b _06017704 _06017690: mov r0, r6 bl WL_ReadByte mov r4, r0 add r0, r6, #1 bl WL_ReadByte cmp r4, #6 bls _060176FC ldr r1, [sl, #40] ; 0x28 cmp r6, r1 beq _060176FC ldr r4, [sp] add r0, r0, #2 str r0, [sp, #4] b _060176E8 _060176C8: mov r0, r6 bl WL_ReadByte mov r1, r0 mov r0, fp bl WL_WriteByte add fp, fp, #1 add r6, r6, #1 add r4, r4, #1 _060176E8: ldr r0, [sp, #4] cmp r4, r0 bcc _060176C8 add r5, r5, #1 b _06017704 _060176FC: add r0, r0, #2 add r6, r6, r0 _06017704: ldrh r0, [sl, #24] cmp r5, r0 bcc _06017690 _06017710: ldr r0, [sl, #28] cmp r0, #0 beq _06017764 add r0, r0, #1 bl WL_ReadByte strh r0, [r7, #10] mov r4, #0 add r5, r7, #12 b _06017754 _06017734: ldr r0, [sl, #28] add r0, r0, #2 add r0, r0, r4 bl WL_ReadByte mov r1, r0 add r0, r5, r4 bl WL_WriteByte add r4, r4, #1 _06017754: ldrh r0, [r7, #10] cmp r4, r0 bcc _06017734 b _0601778C _06017764: mov r6, #0 strh r6, [r7, #10] add r5, r7, #12 mov r4, r6 _06017774: add r0, r5, r6 mov r1, r4 bl WL_WriteByte add r6, r6, #1 cmp r6, #32 bcc _06017774 _0601778C: ldrh r0, [sl, #20] strh r0, [r7, #46] ; 0x2e ldrh r0, [sl, #22] strh r0, [r7, #48] ; 0x30 ldrh r0, [sl, #18] strh r0, [r7, #54] ; 0x36 ldr r0, [sl, #32] cmp r0, #0 beq _060177BC add r0, r0, #3 bl WL_ReadByte strh r0, [r7, #56] ; 0x38 _060177BC: ldr r0, [sl, #36] ; 0x24 cmp r0, #0 beq _060177D4 add r0, r0, #3 bl WL_ReadByte strh r0, [r7, #52] ; 0x34 _060177D4: ldrh r1, [r8, #2] ldrh r0, [r7] add r0, r1, r0 strh r0, [r8, #2] ldrh r0, [r8, #8] add r0, r0, #1 strh r0, [r8, #8] ldrh r1, [r9, #4] ldrh r0, [r7] sub r0, r1, r0 strh r0, [r9, #4] ldrh r0, [r9, #4] cmp r0, #32 bcs _06017834 bl ClearTimeOut mov r0, #21 strh r0, [r9] mov r0, #2 mov r1, #0 bl AddTask b _06017834 _06017828: add r0, r7, #4 ldr r1, _06017848 ; =NULL_ADRS bl WSetMacAdrs1 _06017834: add sp, sp, #52 ; 0x34 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06017840: .word 0x0380FFF4 _06017844: .word 0x00000404 _06017848: .word NULL_ADRS arm_func_start FUN_0601784C FUN_0601784C: ; 0x0601784C stmdb sp!, {r4, lr} sub sp, sp, #48 ; 0x30 mov r4, r0 add r0, r4, #30 mov r1, #80 ; 0x50 bl IsExistManFrame cmp r0, #0 bne _060178F0 ldrh r0, [r4, #36] ; 0x24 ands r0, r0, #1 bne _06017884 ldrh r0, [r4, #8] ands r0, r0, #32768 ; 0x8000 beq _060178F0 _06017884: mov r0, #0 add r1, sp, #0 mov r2, #44 ; 0x2c bl FUN_0600AEC4 add r0, r4, #44 ; 0x2c str r0, [sp] ldrh r0, [r4, #6] strh r0, [sp, #8] ldr r0, _060178FC ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #768 ; 0x300 ldrh r0, [r0, #58] ; 0x3a mov r0, r0, lsl #30 movs r0, r0, lsr #31 moveq r0, #2048 ; 0x800 streqh r0, [sp, #12] add r0, sp, #0 bl FUN_06016AB0 ldrh r0, [sp, #10] and r0, r0, #1 cmp r0, #1 bne _060178F0 add r0, r4, #30 bl MakeProbeResFrame cmp r0, #0 beq _060178F0 bl TxManCtrlFrame _060178F0: add sp, sp, #48 ; 0x30 ldmia sp!, {r4, lr} bx lr _060178FC: .word 0x0380FFF4 arm_func_start FUN_06017900 FUN_06017900: ; 0x06017900 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _06017A28 ; =0x0380FFF4 ldr r1, [r0] add r6, r1, #836 ; 0x344 ldr r0, _06017A2C ; =0x00000404 add r5, r1, r0 add r4, r7, #44 ; 0x2c ldrh r0, [r6, #12] cmp r0, #2 beq _06017938 cmp r0, #3 bne _06017A1C _06017938: ldrh r0, [r5] cmp r0, #97 ; 0x61 bne _06017A1C ldr r0, [r5, #24] add r0, r0, #16 add r1, r7, #30 bl MatchMacAdrs cmp r0, #0 beq _06017A1C bl ClearTimeOut ldrh r0, [r4, #2] cmp r0, #0 bne _060179B8 ldrh r1, [r4, #4] ldr r0, _06017A30 ; =0x00000FFF and r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WSetAids ldrh r0, [r6, #106] ; 0x6a bl MakePsPollFrame add r0, r6, #130 ; 0x82 add r1, r7, #30 bl WSetMacAdrs1 add r0, r7, #30 bl CAM_Search strh r0, [r6, #136] ; 0x88 ldrh r0, [r6, #136] ; 0x88 mov r1, #64 ; 0x40 bl CAM_SetStaState mov r0, #64 ; 0x40 bl WSetStaState _060179B8: ldrh r0, [r4, #2] cmp r0, #0 bne _060179E4 mov r1, #0 ldr r0, [r5, #28] strh r1, [r0, #4] ldr r0, [r5, #28] strh r1, [r0, #6] mov r0, #64 ; 0x40 bl WSetStaState b _060179FC _060179E4: mov r1, #12 ldr r0, [r5, #28] strh r1, [r0, #4] ldrh r1, [r4, #2] ldr r0, [r5, #28] strh r1, [r0, #6] _060179FC: ldrh r1, [r6, #106] ; 0x6a ldr r0, [r5, #28] strh r1, [r0, #8] mov r0, #99 ; 0x63 strh r0, [r5] mov r0, #2 mov r1, #4 bl AddTask _06017A1C: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06017A28: .word 0x0380FFF4 _06017A2C: .word 0x00000404 _06017A30: .word 0x00000FFF arm_func_start FUN_06017A34 FUN_06017A34: ; 0x06017A34 stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #48 ; 0x30 mov r8, r0 ldr r0, _06017BD8 ; =0x0380FFF4 ldr r7, [r0] ldrh r5, [r8, #6] add r6, r8, #44 ; 0x2c cmp r5, #10 bls _06017BCC add r0, r7, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _06017BCC add r0, r8, #30 mov r1, #48 ; 0x30 bl IsExistManFrame cmp r0, #0 bne _06017BCC ldrh r4, [r8, #2] mov r0, r4 bl CAM_GetStaState cmp r0, #48 ; 0x30 bcs _06017AC4 add r0, r8, #30 mov r1, #192 ; 0xc0 bl IsExistManFrame cmp r0, #0 bne _06017BCC add r0, r8, #30 mov r1, #6 mov r2, #1 bl MakeDeAuthFrame cmp r0, #0 beq _06017BCC bl TxManCtrlFrame b _06017BCC _06017AC4: mov r0, r4 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06017AF0 mov r0, r4 mov r1, #48 ; 0x30 bl CAM_SetStaState add r0, r8, #30 mov r1, #1 bl MLME_IssueDisAssIndication b _06017B00 _06017AF0: mov r0, r4 bl CAM_GetAID cmp r0, #0 bne _06017BCC _06017B00: mov r0, #0 add r1, sp, #0 mov r2, #44 ; 0x2c bl FUN_0600AEC4 add r0, r6, #10 str r0, [sp] sub r0, r5, #10 strh r0, [sp, #8] mov r0, #2048 ; 0x800 strh r0, [sp, #12] add r0, sp, #0 bl FUN_06016AB0 ldrh r1, [r6] ldr r0, _06017BDC ; =0x0000FFC2 ands r0, r1, r0 bne _06017B78 add r0, r7, #768 ; 0x300 ldrh r2, [r0, #52] ; 0x34 cmp r2, #0 bne _06017B60 mov r0, r1, lsl #27 mov r0, r0, lsr #31 cmp r0, #1 beq _06017B78 _06017B60: cmp r2, #0 beq _06017B80 ldrh r0, [r6] mov r0, r0, lsl #27 movs r0, r0, lsr #31 bne _06017B80 _06017B78: mov r1, #10 b _06017BB4 _06017B80: mov r0, r4 bl CAM_SetCapaInfo ldrh r1, [sp, #10] ands r0, r1, #1 moveq r1, #1 beq _06017BB4 ands r0, r1, #4 moveq r1, #18 beq _06017BB4 mov r0, r4 ldrh r1, [sp, #22] bl CAM_SetSupRate mov r1, #0 _06017BB4: mov r0, r4 ldr r2, [sp, #28] bl MakeReAssResFrame cmp r0, #0 beq _06017BCC bl TxManCtrlFrame _06017BCC: add sp, sp, #48 ; 0x30 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06017BD8: .word 0x0380FFF4 _06017BDC: .word 0x0000FFC2 arm_func_start FUN_06017BE0 FUN_06017BE0: ; 0x06017BE0 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _06017D00 ; =0x0380FFF4 ldr r1, [r0] add r6, r1, #836 ; 0x344 ldr r0, _06017D04 ; =0x00000404 add r5, r1, r0 add r4, r7, #44 ; 0x2c ldrh r0, [r6, #12] cmp r0, #2 beq _06017C18 cmp r0, #3 bne _06017CF4 _06017C18: ldrh r0, [r5] cmp r0, #81 ; 0x51 bne _06017CF4 ldr r0, [r5, #24] add r0, r0, #16 add r1, r7, #30 bl MatchMacAdrs cmp r0, #0 beq _06017CF4 bl ClearTimeOut ldrh r0, [r4, #2] cmp r0, #0 bne _06017C90 ldrh r1, [r4, #4] ldr r0, _06017D08 ; =0x00000FFF and r0, r1, r0 mov r0, r0, lsl #16 mov r0, r0, lsr #16 bl WSetAids ldrh r0, [r6, #106] ; 0x6a bl MakePsPollFrame add r0, r6, #130 ; 0x82 add r1, r7, #30 bl WSetMacAdrs1 add r0, r7, #30 bl CAM_Search strh r0, [r6, #136] ; 0x88 ldrh r0, [r6, #136] ; 0x88 mov r1, #64 ; 0x40 bl CAM_SetStaState _06017C90: ldrh r0, [r4, #2] cmp r0, #0 bne _06017CBC mov r1, #0 ldr r0, [r5, #28] strh r1, [r0, #4] ldr r0, [r5, #28] strh r1, [r0, #6] mov r0, #64 ; 0x40 bl WSetStaState b _06017CD4 _06017CBC: mov r1, #12 ldr r0, [r5, #28] strh r1, [r0, #4] ldrh r1, [r4, #2] ldr r0, [r5, #28] strh r1, [r0, #6] _06017CD4: ldrh r1, [r6, #106] ; 0x6a ldr r0, [r5, #28] strh r1, [r0, #8] mov r0, #83 ; 0x53 strh r0, [r5] mov r0, #2 mov r1, #3 bl AddTask _06017CF4: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06017D00: .word 0x0380FFF4 _06017D04: .word 0x00000404 _06017D08: .word 0x00000FFF arm_func_start FUN_06017D0C FUN_06017D0C: ; 0x06017D0C stmdb sp!, {r4, r5, r6, r7, r8, lr} sub sp, sp, #48 ; 0x30 mov r8, r0 ldr r0, _06017EE0 ; =0x0380FFF4 ldr r0, [r0] add r7, r0, #796 ; 0x31c ldrh r5, [r8, #6] add r6, r8, #44 ; 0x2c cmp r5, #4 bls _06017ED4 add r0, r0, #768 ; 0x300 ldrh r0, [r0, #80] ; 0x50 cmp r0, #1 bne _06017ED4 add r0, r8, #30 mov r1, #16 bl IsExistManFrame cmp r0, #0 bne _06017ED4 ldrh r4, [r8, #2] cmp r4, #0 beq _06017D74 mov r0, r4 bl CAM_GetStaState cmp r0, #48 ; 0x30 bcs _06017DA8 _06017D74: add r0, r8, #30 mov r1, #192 ; 0xc0 bl IsExistManFrame cmp r0, #0 bne _06017ED4 add r0, r8, #30 mov r1, #6 mov r2, #1 bl MakeDeAuthFrame cmp r0, #0 beq _06017ED4 bl TxManCtrlFrame b _06017ED4 _06017DA8: mov r0, r4 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06017DD4 mov r0, r4 mov r1, #48 ; 0x30 bl CAM_SetStaState add r0, r8, #30 mov r1, #1 bl MLME_IssueDisAssIndication b _06017DE4 _06017DD4: mov r0, r4 bl CAM_GetAID cmp r0, #0 bne _06017ED4 _06017DE4: mov r0, #0 add r1, sp, #0 mov r2, #44 ; 0x2c bl FUN_0600AEC4 add r0, r6, #4 str r0, [sp] sub r0, r5, #4 strh r0, [sp, #8] add r0, sp, #0 bl FUN_06016AB0 ldrh r1, [r6] ldr r0, _06017EE4 ; =0x0000FFC2 ands r0, r1, r0 bne _06017E80 mov r0, r1, lsl #31 movs r0, r0, lsr #31 beq _06017E80 ldrh r2, [r7, #24] cmp r2, #0 bne _06017E44 mov r0, r1, lsl #27 mov r0, r0, lsr #31 cmp r0, #1 beq _06017E80 _06017E44: cmp r2, #0 beq _06017E5C ldrh r0, [r6] mov r0, r0, lsl #27 movs r0, r0, lsr #31 beq _06017E80 _06017E5C: ldrh r0, [r7, #30] mov r0, r0, lsl #29 mov r0, r0, lsr #31 cmp r0, #1 bne _06017E88 ldrh r0, [r6] mov r0, r0, lsl #26 movs r0, r0, lsr #31 bne _06017E88 _06017E80: mov r1, #10 b _06017EBC _06017E88: mov r0, r4 bl CAM_SetCapaInfo ldrh r1, [sp, #10] ands r0, r1, #1 moveq r1, #1 beq _06017EBC ands r0, r1, #4 moveq r1, #18 beq _06017EBC mov r0, r4 ldrh r1, [sp, #22] bl CAM_SetSupRate mov r1, #0 _06017EBC: mov r0, r4 ldr r2, [sp, #28] bl MakeAssResFrame cmp r0, #0 beq _06017ED4 bl TxManCtrlFrame _06017ED4: add sp, sp, #48 ; 0x30 ldmia sp!, {r4, r5, r6, r7, r8, lr} bx lr _06017EE0: .word 0x0380FFF4 _06017EE4: .word 0x0000FFC2 arm_func_start FUN_06017EE8 FUN_06017EE8: ; 0x06017EE8 stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 ldr r0, _06017FD8 ; =0x0380FFF4 ldr r0, [r0] add r1, r0, #836 ; 0x344 ldrh r5, [r4, #2] ldrh r0, [r1, #12] cmp r0, #1 beq _06017F24 cmp r0, #2 beq _06017F94 cmp r0, #3 beq _06017F94 b _06017FCC _06017F24: mov r0, r5 bl CAM_GetStaState cmp r0, #64 ; 0x40 bne _06017F5C mov r0, r5, lsl #16 mov r0, r0, lsr #16 mov r1, #48 ; 0x30 bl CAM_SetStaState add r0, r4, #30 ldrh r1, [r4, #44] ; 0x2c bl MLME_IssueDisAssIndication mov r0, r5 bl DeleteTxFrames b _06017FCC _06017F5C: cmp r0, #48 ; 0x30 bne _06017F74 add r0, r4, #30 mov r1, #7 bl MakeDisAssFrame b _06017F84 _06017F74: add r0, r4, #30 mov r1, #7 mov r2, #1 bl MakeDeAuthFrame _06017F84: cmp r0, #0 beq _06017FCC bl TxManCtrlFrame b _06017FCC _06017F94: ldrh r0, [r1, #8] cmp r0, #64 ; 0x40 bne _06017FCC add r0, r4, #30 add r1, r1, #130 ; 0x82 bl MatchMacAdrs cmp r0, #0 beq _06017FCC mov r0, #48 ; 0x30 bl WSetStaState bl WClearAids add r0, r4, #30 ldrh r1, [r4, #44] ; 0x2c bl MLME_IssueDisAssIndication _06017FCC: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06017FD8: .word 0x0380FFF4 arm_func_start RxBeaconFrame RxBeaconFrame: ; 0x06017FDC stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #68 ; 0x44 mov sl, r0 ldr r0, _0601865C ; =0x0380FFF4 ldr r1, [r0] add r8, r1, #836 ; 0x344 ldr r0, _06018660 ; =0x00000404 add r7, r1, r0 add r6, r1, #796 ; 0x31c add r5, r1, #380 ; 0x17c ldr r0, [r1, #1392] ; 0x570 add r0, r0, #1 str r0, [r1, #1392] ; 0x570 add r0, sl, #30 bl CAM_SearchAdd mov r4, r0 mov r0, r4, lsl #16 mov r0, r0, lsr #16 strh r0, [sl, #2] cmp r4, #255 ; 0xff beq _06018650 ldrh r1, [sl, #18] bl CAM_SetRSSI add r9, sl, #44 ; 0x2c ldrh fp, [sl, #6] cmp fp, #12 bls _06018650 mov r0, #0 add r1, sp, #24 mov r2, #44 ; 0x2c bl FUN_0600AEC4 add r0, r9, #12 str r0, [sp, #24] sub r0, fp, #12 strh r0, [sp, #32] mov r0, #2 strh r0, [sp, #34] ; 0x22 ldrh r0, [r8, #30] cmp r0, #0 ldreqh r0, [sp, #34] ; 0x22 orreq r0, r0, #1 streqh r0, [sp, #34] ; 0x22 mov r0, #56 ; 0x38 strh r0, [sp, #36] ; 0x24 ldrh r0, [sl, #8] strh r0, [sp, #28] ldrh r0, [r9, #10] strh r0, [sp, #30] add r0, sp, #24 bl FUN_06016AB0 ldr r9, [sp, #56] ; 0x38 cmp r9, #0 beq _060180DC ldrh r0, [sl, #22] ands r0, r0, #32768 ; 0x8000 beq _060180DC add r0, r9, #6 bl WL_ReadByte mov fp, r0 add r0, r9, #7 bl WL_ReadByte add r1, fp, r0, lsl #8 ldr r0, _06018664 ; =0x0480810C strh r1, [r0] _060180DC: ldrh r1, [r7] cmp r1, #19 bne _06018118 ldr r0, [r7, #24] ldrh r0, [r0, #56] ; 0x38 cmp r0, #1 bne _06018118 ldrh r0, [sp, #34] ; 0x22 and r0, r0, #9 cmp r0, #9 bne _06018638 mov r0, sl add r1, sp, #24 bl FUN_0601745C b _06018638 _06018118: ldrh r0, [sp, #34] ; 0x22 ands r0, r0, #8 beq _06018638 cmp r1, #33 ; 0x21 bne _060182A0 bl ClearTimeOut ldrh r0, [sp, #34] ; 0x22 and r0, r0, #48 ; 0x30 cmp r0, #48 ; 0x30 movne r0, #12 strneh r0, [r7, #4] movne r0, #10 strneh r0, [r7, #6] bne _0601827C ldrh r0, [sl, #52] ; 0x34 cmp r0, #1000 ; 0x3e8 movhi r0, #12 strhih r0, [r7, #4] movhi r0, #1 strhih r0, [r7, #6] bhi _0601827C mov r1, #0 strh r1, [r7, #4] ldrh r0, [sp, #36] ; 0x24 ands r0, r0, #2 beq _06018194 ldrh r0, [sp, #34] ; 0x22 ands r0, r0, #2 bne _06018194 ldrh r0, [sp, #42] ; 0x2a bl WSetChannel _06018194: mov r0, r4 ldrh r1, [sp, #46] ; 0x2e bl CAM_SetSupRate ldrh r0, [r8, #12] cmp r0, #2 bne _06018224 ldr r9, [sp, #64] ; 0x40 cmp r9, #0 beq _0601820C add r0, r9, #6 bl WL_ReadByte mov fp, r0 add r0, r9, #7 bl WL_ReadByte add r0, fp, r0, lsl #8 mov r0, r0, lsl #16 mov r0, r0, lsr #16 mov r1, #1 bl WSetActiveZoneTime ldr r0, [sp, #64] ; 0x40 add r0, r0, #8 bl WL_ReadByte mov r9, r0 ldr r0, [sp, #64] ; 0x40 add r0, r0, #9 bl WL_ReadByte add r1, r9, r0, lsl #8 ldr r0, _06018668 ; =0x0380FFF0 strh r1, [r0] b _06018224 _0601820C: ldr r0, _0601866C ; =0x0000FFFF mov r1, #1 bl WSetActiveZoneTime mov r1, #0 ldr r0, _06018668 ; =0x0380FFF0 strh r1, [r0] _06018224: ldr r0, [sp, #60] ; 0x3c add r0, r0, #3 bl WL_ReadByte bl WSetDTIMPeriod ldr r0, [sp, #60] ; 0x3c add r0, r0, #2 bl WL_ReadByte strh r0, [r8, #118] ; 0x76 ldrh r0, [sl, #52] ; 0x34 bl WSetBeaconPeriod mov r0, #1 strh r0, [r8, #18] strh r0, [r8, #26] ldrh r0, [r8, #12] cmp r0, #2 moveq r1, #3 ldreq r0, _06018670 ; =0x04808048 streqh r1, [r0] ldr r1, _06018674 ; =0x04808038 ldrh r0, [r1] orr r0, r0, #1 strh r0, [r1] _0601827C: ldr r0, [r7, #28] add r0, r0, #8 add r1, sl, #30 bl WSetMacAdrs1 mov r0, #37 ; 0x25 strh r0, [r7] mov r0, #2 mov r1, #1 bl AddTask _060182A0: ldrh r0, [r8, #12] cmp r0, #2 beq _060182B8 cmp r0, #3 beq _06018374 b _06018620 _060182B8: ldr r9, [sp, #64] ; 0x40 cmp r9, #0 beq _06018374 add r0, r9, #6 bl WL_ReadByte mov r7, r0 add r0, r9, #7 bl WL_ReadByte add r0, r7, r0, lsl #8 mov r0, r0, lsl #16 mov r0, r0, lsr #16 mov r1, #0 bl WSetActiveZoneTime ldr r0, [sp, #64] ; 0x40 add r0, r0, #8 bl WL_ReadByte mov r7, r0 ldr r0, [sp, #64] ; 0x40 add r0, r0, #9 bl WL_ReadByte add r1, r7, r0, lsl #8 ldr r0, _06018668 ; =0x0380FFF0 strh r1, [r0] ldr r0, [sp, #64] ; 0x40 add r0, r0, #1 bl WL_ReadByte sub r0, r0, #8 strh r0, [r8, #160] ; 0xa0 ldrh r2, [r8, #160] ; 0xa0 cmp r2, #0 beq _06018374 ldr r1, [sp, #64] ; 0x40 ands r0, r1, #1 beq _0601835C add r0, r1, #9 ldr r1, [r8, #156] ; 0x9c add r2, r2, #2 bl FUN_06000EA0 mov r0, #1 strh r0, [r8, #162] ; 0xa2 b _06018374 _0601835C: add r0, r1, #10 ldr r1, [r8, #156] ; 0x9c add r2, r2, #1 bl FUN_06000EA0 mov r0, #0 strh r0, [r8, #162] ; 0xa2 _06018374: mov r0, #0 strh r0, [r8, #128] ; 0x80 mov r0, r4 bl CAM_UpdateLifeTime add r0, sl, #44 ; 0x2c ldmia r0, {r2, r3} add r0, sp, #0 stmia r0, {r2, r3} ldrh r0, [r8, #110] ; 0x6e mov r7, r0, lsl #10 mov r4, #0 ldr r0, [sp] ldr r1, [sp, #4] mov r2, r7 mov r3, r4 bl FUN_06009EDC str r0, [sp] str r1, [sp, #4] mov r2, #1 adds r3, r0, r2 adc r2, r1, #0 str r3, [sp] str r2, [sp, #4] umull r1, r0, r3, r7 mla r0, r3, r4, r0 mla r0, r2, r7, r0 str r1, [sp] str r0, [sp, #4] add r2, sp, #0 ldrh r1, [r2, #6] ldr r0, _06018678 ; =0x048080F6 strh r1, [r0] ldrh r1, [r2, #4] ldr r0, _0601867C ; =0x048080F4 strh r1, [r0] ldrh r1, [r2, #2] ldr r0, _06018680 ; =0x048080F2 strh r1, [r0] ldrh r0, [r2] orr r1, r0, #1 ldr r0, _06018684 ; =0x048080F0 strh r1, [r0] ldrh r0, [r8, #12] cmp r0, #2 bne _06018518 ldrh r0, [r8, #26] cmp r0, #0 beq _06018518 ldr r1, [sp] ldr r0, [sp, #4] subs r1, r1, r7 sbc r0, r0, r4 str r1, [sp] str r0, [sp, #4] bl FUN_060001A4 ldr r7, _06018688 ; =0x048080F8 ldrh r1, [r7] strh r1, [sp, #8] ldr r4, _0601868C ; =0x048080FA ldrh r1, [r4] strh r1, [sp, #10] ldr r3, _06018690 ; =0x048080FC ldrh r1, [r3] strh r1, [sp, #12] ldr r2, _06018694 ; =0x048080FE ldrh r1, [r2] strh r1, [sp, #14] ldrh r1, [r7] strh r1, [sp, #16] ldrh r1, [r4] strh r1, [sp, #18] ldrh r1, [r3] strh r1, [sp, #20] ldrh r1, [r2] strh r1, [sp, #22] bl FUN_060001AC ldrh r1, [sp, #8] ldrh r0, [sp, #16] cmp r1, r0 bcs _060184D8 ldr r3, [sp, #8] ldr r2, [sp, #12] ldr r1, [sp] ldr r0, [sp, #4] subs r1, r3, r1 sbc r0, r2, r0 mov r1, r1, lsr #10 orr r1, r1, r0, lsl #22 b _060184F8 _060184D8: ldr r3, [sp, #16] ldr r2, [sp, #20] ldr r1, [sp] ldr r0, [sp, #4] subs r1, r3, r1 sbc r0, r2, r0 mov r1, r1, lsr #10 orr r1, r1, r0, lsl #22 _060184F8: ldrh r0, [r6, #32] cmp r1, r0 subcc r1, r0, r1 ldrcc r0, _06018698 ; =0x04808134 strcch r1, [r0] movcs r1, #0 ldrcs r0, _06018698 ; =0x04808134 strcsh r1, [r0] _06018518: ldrh r0, [r8, #8] cmp r0, #64 ; 0x40 bne _06018620 ldr r1, [sp, #60] ; 0x3c cmp r1, #0 beq _06018620 ldrh r0, [r8, #14] cmp r0, #1 bne _06018620 add r0, r1, #2 bl WL_ReadByte ldrh r1, [r8, #118] ; 0x76 cmp r1, r0 strneh r0, [r8, #118] ; 0x76 mov r1, #0 strh r1, [r8, #142] ; 0x8e cmp r0, #0 bne _0601857C ldr r0, [sp, #60] ; 0x3c add r0, r0, #4 bl WL_ReadByte ands r0, r0, #1 ldrneh r0, [r8, #142] ; 0x8e orrne r0, r0, #1 strneh r0, [r8, #142] ; 0x8e _0601857C: ldr r0, [sp, #60] ; 0x3c add r0, r0, #4 bl WL_ReadByte and r7, r0, #254 ; 0xfe mov r4, r7, lsl #3 ldr r0, [sp, #60] ; 0x3c add r0, r0, #1 bl WL_ReadByte add r0, r7, r0 sub r0, r0, #3 mov r1, r0, lsl #3 ldrh r0, [r8, #106] ; 0x6a cmp r4, r0 bhi _060185F4 cmp r0, r1 bhi _060185F4 sub r4, r0, r4 ldr r0, [sp, #60] ; 0x3c add r0, r0, #5 add r0, r0, r4, lsr #3 bl WL_ReadByte mov r2, #1 and r1, r4, #7 mov r1, r2, lsl r1 ands r0, r1, r0 beq _060185F4 ldrh r0, [r8, #142] ; 0x8e orr r0, r0, #2 strh r0, [r8, #142] ; 0x8e bl TxPsPollFrame _060185F4: ldrh r0, [r5, #32] cmp r0, #0 bne _06018620 ldrh r0, [r5, #44] ; 0x2c cmp r0, #0 bne _06018620 ldrh r0, [r8, #142] ; 0x8e cmp r0, #0 bne _06018620 mov r0, #1 bl WSetPowerState _06018620: ldrh r0, [r6, #30] mov r0, r0, lsl #25 movs r0, r0, lsr #31 beq _06018638 mov r0, sl bl MLME_IssueBeaconRecvIndication _06018638: ldr r2, [sp, #52] ; 0x34 cmp r2, #0 beq _06018650 ldrh r0, [sp, #42] ; 0x2a mov r1, sl bl UpdateApList _06018650: add sp, sp, #68 ; 0x44 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _0601865C: .word 0x0380FFF4 _06018660: .word 0x00000404 _06018664: .word 0x0480810C _06018668: .word 0x0380FFF0 _0601866C: .word 0x0000FFFF _06018670: .word 0x04808048 _06018674: .word 0x04808038 _06018678: .word 0x048080F6 _0601867C: .word 0x048080F4 _06018680: .word 0x048080F2 _06018684: .word 0x048080F0 _06018688: .word 0x048080F8 _0601868C: .word 0x048080FA _06018690: .word 0x048080FC _06018694: .word 0x048080FE _06018698: .word 0x04808134 arm_func_start RxMpAckFrame RxMpAckFrame: ; 0x0601869C stmdb sp!, {r4, r5, lr} sub sp, sp, #4 mov r4, r0 ldr r0, _06018770 ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #836 ; 0x344 add r0, r0, #768 ; 0x300 ldrh r0, [r0, #76] ; 0x4c cmp r0, #64 ; 0x40 movne r0, #1 bne _06018764 add r0, r4, #30 add r1, r5, #100 ; 0x64 bl MatchMacAdrs cmp r0, #0 beq _060186F0 add r0, r4, #36 ; 0x24 add r1, r5, #130 ; 0x82 bl MatchMacAdrs cmp r0, #0 bne _060186F8 _060186F0: mov r0, #1 b _06018764 _060186F8: ldrh r0, [r4, #16] sub r0, r0, #28 strh r0, [r4, #6] sub r1, r4, #16 ldr r0, _06018774 ; =0x00000185 strh r0, [r1, #12] mov r0, #24 strh r0, [r1, #14] ldrh r0, [r1, #24] ldr r2, _06018778 ; =0x04808094 ldrh r2, [r2] and ip, r2, #32768 ; 0x8000 ldr r4, _06018770 ; =0x0380FFF4 ldr r2, [r4] add r2, r2, #1024 ; 0x400 ldrh r3, [r2, #226] ; 0xe2 ldr r2, _0601877C ; =0x04808098 ldrh r2, [r2] and r2, r2, #32768 ; 0x8000 orr r2, r3, r2, asr #4 orr r2, r2, ip, asr #3 orr r0, r0, r2 strh r0, [r1, #24] ldr r0, [r4] add r0, r0, #392 ; 0x188 bl SendMessageToWmDirect mov r0, #0 _06018764: add sp, sp, #4 ldmia sp!, {r4, r5, lr} bx lr _06018770: .word 0x0380FFF4 _06018774: .word 0x00000185 _06018778: .word 0x04808094 _0601877C: .word 0x04808098 arm_func_start RxKeyDataFrame RxKeyDataFrame: ; 0x06018780 stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r7, r0 ldr r0, _0601893C ; =0x0380FFF4 ldr r1, [r0] ldr r0, _06018940 ; =0x0000042C add r6, r1, r0 ldr r0, [r6, #144] ; 0x90 add r5, r0, #16 ldrh r0, [r6, #60] ; 0x3c cmp r0, #0 beq _06018930 add r0, r7, #24 add r1, r1, #936 ; 0x3a8 bl MatchMacAdrs cmp r0, #0 beq _06018930 ldrh r0, [r7, #16] sub r1, r0, #24 ldrh r0, [r5, #6] sub r0, r0, #8 cmp r1, r0 bgt _06018930 add r0, r7, #30 bl CAM_Search mov r4, r0 cmp r4, #255 ; 0xff beq _06018804 cmp r4, #0 beq _06018840 bl CAM_GetStaState cmp r0, #64 ; 0x40 beq _06018840 _06018804: add r0, r7, #30 mov r1, #192 ; 0xc0 bl IsExistManFrame cmp r0, #0 bne _06018930 add r0, r7, #30 mov r1, #7 mov r2, #0 bl MakeDeAuthFrame cmp r0, #0 beq _06018930 mov r1, #2 strh r1, [r0] bl TxManCtrlFrame b _06018930 _06018840: cmp r4, #0 beq _06018930 mov r0, r4, lsl #16 mov r0, r0, lsr #16 ldrh r1, [r7, #20] mov r1, r1, lsl #19 mov r1, r1, lsr #31 bl CAM_SetPowerMgtMode mov r0, r4 bl CAM_UpdateLifeTime mov r0, r4 bl CAM_GetAID mov r1, #1 mov r0, r1, lsl r0 mov r0, r0, lsl #16 mov r2, r0, lsr #16 ldrh r1, [r6, #154] ; 0x9a ands r0, r2, r1 bne _06018930 ldrh r0, [r6, #152] ; 0x98 ands r0, r2, r0 beq _06018930 orr r0, r1, r2 strh r0, [r6, #154] ; 0x9a ldrh r1, [r5] mvn r0, r2 and r0, r1, r0 strh r0, [r5] add r4, r5, #10 mov r0, r2, lsl #15 mov r1, r0, lsr #16 b _060188D8 _060188C0: ldrh r0, [r6, #152] ; 0x98 ands r0, r1, r0 ldrneh r0, [r5, #6] addne r4, r4, r0 mov r0, r1, lsl #15 mov r1, r0, lsr #16 _060188D8: cmp r1, #1 bne _060188C0 ldrh r0, [r7, #16] sub r0, r0, #24 strh r0, [r4] add r0, r4, #3 ldrh r1, [r7, #18] and r1, r1, #255 ; 0xff and r1, r1, #255 ; 0xff bl WL_WriteByte add r0, r4, #2 ldrh r1, [r7, #14] and r1, r1, #255 ; 0xff and r1, r1, #255 ; 0xff bl WL_WriteByte ldrh r2, [r4] cmp r2, #0 beq _06018930 add r0, r7, #44 ; 0x2c add r1, r4, #8 add r2, r2, #1 bl FUN_06000EA0 _06018930: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _0601893C: .word 0x0380FFF4 _06018940: .word 0x0000042C arm_func_start RxMpFrame RxMpFrame: ; 0x06018944 stmdb sp!, {r4, r5, r6, lr} mov r6, r0 ldr r0, _06018AC0 ; =0x0380FFF4 ldr r1, [r0] add r5, r1, #836 ; 0x344 ldr r0, _06018AC4 ; =0x000004DC add r4, r1, r0 ldrh r0, [r5, #8] cmp r0, #64 ; 0x40 movne r0, #1 bne _06018AB8 add r0, r6, #30 add r1, r5, #100 ; 0x64 bl MatchMacAdrs cmp r0, #0 beq _06018998 add r0, r6, #36 ; 0x24 add r1, r5, #130 ; 0x82 bl MatchMacAdrs cmp r0, #0 bne _060189A0 _06018998: mov r0, #1 b _06018AB8 _060189A0: mov r1, #1 ldrh r0, [r5, #106] ; 0x6a mov r0, r1, lsl r0 mov r0, r0, lsl #16 mov r1, r0, lsr #16 ldrh r0, [r6, #46] ; 0x2e ands r0, r1, r0 moveq r0, #0 streqh r0, [r4, #6] movne r0, #8192 ; 0x2000 strneh r0, [r4, #6] ldr r0, _06018AC8 ; =0x04808098 ldrh r1, [r0] ands r0, r1, #32768 ; 0x8000 beq _06018A04 ldr r0, _06018ACC ; =0x00007FFF and r0, r1, r0 mov r0, r0, lsl #1 add r0, r0, #75497472 ; 0x4800000 add r0, r0, #16384 ; 0x4000 ldrh r0, [r0, #4] cmp r0, #0 ldrneh r0, [r4, #6] orrne r0, r0, #16384 ; 0x4000 strneh r0, [r4, #6] _06018A04: ldrh r0, [r5, #136] ; 0x88 bl CAM_UpdateLifeTime ldrh r0, [r6, #16] sub r0, r0, #28 strh r0, [r6, #6] sub r1, r6, #16 ldr r0, _06018AD0 ; =0x00000182 strh r0, [r1, #12] ldrh r0, [r6, #6] add r0, r0, #49 ; 0x31 mov r0, r0, lsr #1 strh r0, [r1, #14] ldrh r3, [r1, #62] ; 0x3e mov r0, #0 b _06018A50 _06018A40: ands r2, r3, #1 addne r0, r0, #1 mov r2, r3, lsl #15 mov r3, r2, lsr #16 _06018A50: cmp r3, #0 bne _06018A40 ldrh r6, [r1, #24] ldr r2, _06018AD4 ; =0x04808094 ldrh r2, [r2] and r5, r2, #32768 ; 0x8000 ldrh r3, [r4, #6] ldr r2, _06018AC8 ; =0x04808098 ldrh r2, [r2] and r2, r2, #32768 ; 0x8000 orr r2, r3, r2, asr #4 orr r2, r2, r5, asr #3 orr r2, r6, r2 strh r2, [r1, #24] ldrh r3, [r1, #28] ldrh r2, [r1, #60] ; 0x3c add r2, r2, #10 mul r2, r0, r2 add r0, r2, #252 ; 0xfc add r0, r3, r0, lsr #4 strh r0, [r1, #26] ldr r0, _06018AC0 ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 bl SendMessageToWmDirect mov r0, #0 _06018AB8: ldmia sp!, {r4, r5, r6, lr} bx lr _06018AC0: .word 0x0380FFF4 _06018AC4: .word 0x000004DC _06018AC8: .word 0x04808098 _06018ACC: .word 0x00007FFF _06018AD0: .word 0x00000182 _06018AD4: .word 0x04808094 arm_func_start RxDataFrameTask RxDataFrameTask: ; 0x06018AD8 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} ldr r0, _06018DE0 ; =0x0380FFF4 ldr r1, [r0] add r8, r1, #836 ; 0x344 add r7, r1, #380 ; 0x17c ldr r0, _06018DE4 ; =0x0000053C add r6, r1, r0 ldr sl, [r7, #72] ; 0x48 mvn r0, #0 cmp sl, r0 beq _06018DD8 ldrh r0, [r8, #8] cmp r0, #64 ; 0x40 beq _06018B20 add r0, r7, #72 ; 0x48 mov r1, sl bl ReleaseHeapBuf b _06018DD8 _06018B20: add r9, sl, #16 ldrh r0, [r9, #20] mov r0, r0, lsl #23 movs r0, r0, lsr #31 beq _06018B58 ldrh r0, [r9, #36] ; 0x24 ands r0, r0, #1 ldrne r0, [r6, #44] ; 0x2c addne r0, r0, #1 strne r0, [r6, #44] ; 0x2c ldreq r0, [r6, #40] ; 0x28 addeq r0, r0, #1 streq r0, [r6, #40] ; 0x28 b _06018B78 _06018B58: ldrh r0, [r9, #24] ands r0, r0, #1 ldrne r0, [r6, #44] ; 0x2c addne r0, r0, #1 strne r0, [r6, #44] ; 0x2c ldreq r0, [r6, #40] ; 0x28 addeq r0, r0, #1 streq r0, [r6, #40] ; 0x28 _06018B78: ldrh r0, [r9, #8] and r0, r0, #240 ; 0xf0 mov r1, #16 bl FUN_06001840 ldr r1, [r6, #36] ; 0x24 sub r0, r0, #1 add r0, r1, r0 str r0, [r6, #36] ; 0x24 mov r4, #1 ldrh r0, [r8, #12] cmp r0, #1 beq _06018BBC cmp r0, #2 beq _06018C9C cmp r0, #3 beq _06018C9C b _06018D44 _06018BBC: ldrh r0, [r9, #20] ands r0, r0, #1 bne _06018D44 add r0, r9, #30 bl CAM_Search mov r5, r0 cmp r5, #255 ; 0xff beq _06018BE8 bl CAM_GetStaState cmp r0, #64 ; 0x40 beq _06018C50 _06018BE8: mov r0, r5 bl CAM_GetStaState cmp r0, #48 ; 0x30 bne _06018C1C add r0, r9, #30 mov r1, #160 ; 0xa0 bl IsExistManFrame cmp r0, #0 bne _06018D44 add r0, r9, #30 mov r1, #7 bl MakeDisAssFrame b _06018C40 _06018C1C: add r0, r9, #30 mov r1, #192 ; 0xc0 bl IsExistManFrame cmp r0, #0 bne _06018D44 add r0, r9, #30 mov r1, #7 mov r2, #1 bl MakeDeAuthFrame _06018C40: cmp r0, #0 beq _06018D44 bl TxManCtrlFrame b _06018D44 _06018C50: mov r0, r5, lsl #16 mov r0, r0, lsr #16 ldrh r1, [r9, #20] mov r1, r1, lsl #19 mov r1, r1, lsr #31 bl CAM_SetPowerMgtMode mov r0, r5 bl CAM_GetLastSeqCtrl ldrh r1, [r9, #42] ; 0x2a cmp r1, r0 ldreq r0, [r6, #60] ; 0x3c addeq r0, r0, #1 streq r0, [r6, #60] ; 0x3c beq _06018D44 add r0, r9, #24 add r1, r9, #36 ; 0x24 bl WSetMacAdrs1 mov r4, #0 b _06018D44 _06018C9C: ldrh r2, [r9, #20] ands r1, r2, #1 bne _06018D44 ldrh r1, [r8, #14] cmp r1, #0 beq _06018D10 ands r1, r2, #8192 ; 0x2000 bne _06018D10 ldrh r1, [r9, #24] ands r1, r1, #1 ldrneh r0, [r8, #142] ; 0x8e bicne r0, r0, #1 strneh r0, [r8, #142] ; 0x8e bne _06018CE4 cmp r0, #3 ldrneh r0, [r8, #142] ; 0x8e bicne r0, r0, #2 strneh r0, [r8, #142] ; 0x8e _06018CE4: ldrh r0, [r8, #142] ; 0x8e cmp r0, #0 bne _06018D10 ldrh r0, [r7, #32] cmp r0, #0 bne _06018D10 ldrh r0, [r7, #44] ; 0x2c cmp r0, #0 bne _06018D10 mov r0, #1 bl WSetPowerState _06018D10: ldrh r5, [r8, #136] ; 0x88 mov r0, r5 bl CAM_GetLastSeqCtrl ldrh r1, [r9, #42] ; 0x2a cmp r1, r0 ldreq r0, [r6, #60] ; 0x3c addeq r0, r0, #1 streq r0, [r6, #60] ; 0x3c beq _06018D44 add r0, r9, #30 add r1, r9, #36 ; 0x24 bl WSetMacAdrs1 mov r4, #0 _06018D44: cmp r4, #0 bne _06018DB4 mov r0, r5, lsl #16 mov r0, r0, lsr #16 strh r0, [r9, #2] ldrh r1, [r9, #18] and r1, r1, #255 ; 0xff mov r1, r1, lsl #16 mov r1, r1, lsr #16 bl CAM_SetRSSI mov r0, r5 ldrh r1, [r9, #42] ; 0x2a bl CAM_SetLastSeqCtrl mov r0, r5 bl CAM_UpdateLifeTime ldrh r0, [r9, #16] sub r0, r0, #24 strh r0, [r9, #6] mov r0, #384 ; 0x180 strh r0, [sl, #12] ldrh r0, [r9, #6] add r0, r0, #45 ; 0x2d mov r0, r0, lsr #1 strh r0, [sl, #14] add r0, r7, #72 ; 0x48 mov r1, sl bl SendMessageToWmDirect b _06018DC0 _06018DB4: add r0, r7, #72 ; 0x48 mov r1, sl bl ReleaseHeapBuf _06018DC0: ldrh r0, [r7, #80] ; 0x50 cmp r0, #0 beq _06018DD8 mov r0, #2 mov r1, #6 bl AddTask _06018DD8: ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, lr} bx lr _06018DE0: .word 0x0380FFF4 _06018DE4: .word 0x0000053C arm_func_start UpdateApListTask UpdateApListTask: ; 0x06018DE8 ldr r0, _06018E34 ; =0x0380FFF4 ldr r0, [r0] add ip, r0, #572 ; 0x23c mov r3, #0 mov r0, r3 add r2, ip, #48 ; 0x30 _06018E00: ldrh r1, [ip, #48] ; 0x30 cmp r1, #0 beq _06018E24 ldrh r1, [r2] sub r1, r1, #1 strh r1, [r2] ldrh r1, [ip, #48] ; 0x30 cmp r1, #0 streqh r0, [ip] _06018E24: add r3, r3, #1 cmp r3, #4 bcc _06018E00 bx lr _06018E34: .word 0x0380FFF4 arm_func_start InitApList InitApList: ; 0x06018E38 mov r0, #0 ldr r1, _06018E54 ; =0x0380FFF4 ldr r1, [r1] add r1, r1, #572 ; 0x23c mov r2, #200 ; 0xc8 ldr ip, _06018E58 ; =MIi_CpuClear16 bx ip _06018E54: .word 0x0380FFF4 _06018E58: .word MIi_CpuClear16 arm_func_start UpdateApList UpdateApList: ; 0x06018E5C stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} sub sp, sp, #4 mov fp, r0 mov sl, r1 mov r9, r2 ldr r0, _06018FAC ; =0x0380FFF4 ldr r0, [r0] add r8, r0, #572 ; 0x23c add r0, r9, #1 bl WL_ReadByte cmp r0, #32 bhi _06018FA0 mov r6, #4 mov r5, r6 mov r4, #1024 ; 0x400 mov r7, #0 add r0, sl, #36 ; 0x24 str r0, [sp] b _06018EE8 _06018EA8: ldrh r0, [r8] cmp r0, #0 beq _06018EDC add r0, r8, #6 ldr r1, [sp] bl MatchMacAdrs cmp r0, #0 bne _06018F08 ldrh r0, [r8, #48] ; 0x30 cmp r0, r4 movcc r4, r0 movcc r5, r7 b _06018EE0 _06018EDC: mov r6, r7 _06018EE0: add r7, r7, #1 add r8, r8, #50 ; 0x32 _06018EE8: cmp r7, #4 bcc _06018EA8 cmp r6, #4 movne r7, r6 bne _06018F08 cmp r5, #4 movne r7, r5 beq _06018FA0 _06018F08: ldr r0, _06018FAC ; =0x0380FFF4 ldr r0, [r0] add r5, r0, #572 ; 0x23c mov r2, #50 ; 0x32 mul r4, r7, r2 add r6, r5, r4 mov r0, #0 mov r1, r6 bl FUN_0600055C mov r0, #1024 ; 0x400 strh r0, [r6, #48] ; 0x30 ldrh r0, [sl, #18] and r0, r0, #255 ; 0xff strh r0, [r5, r4] strh fp, [r6, #2] add r0, r6, #6 add r1, sl, #36 ; 0x24 bl WSetMacAdrs1 add r0, r9, #1 bl WL_ReadByte strh r0, [r6, #12] mov r7, #0 add r5, r9, #2 add r4, r6, #14 b _06018F84 _06018F6C: add r0, r5, r7 bl WL_ReadByte mov r1, r0 add r0, r4, r7 bl WL_WriteByte add r7, r7, #1 _06018F84: ldrh r0, [r6, #12] cmp r7, r0 bcc _06018F6C ldrh r0, [sl, #52] ; 0x34 strh r0, [r6, #46] ; 0x2e ldrh r0, [sl, #54] ; 0x36 strh r0, [r6, #4] _06018FA0: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} bx lr _06018FAC: .word 0x0380FFF4 arm_func_start FLASH_MakeImage FLASH_MakeImage: ; 0x06018FB0 stmfd sp!, {lr} sub sp, sp, #4 ldr r0, _0601909C ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #788] ; 0x314 bl FUN_060190A4 bl FLASH_Wait mov r0, #0 str r0, [sp] mov r0, #44 ; 0x2c mov r1, #2 add r2, sp, #0 bl FUN_060190AC ldr r0, _0601909C ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #788] ; 0x314 bl FUN_060190B4 ldr r1, [sp] cmp r1, #164 ; 0xa4 bcc _0601900C ldr r0, _060190A0 ; =0x000001D6 cmp r1, r0 bls _06019014 _0601900C: mov r0, #0 b _06019090 _06019014: add r1, r1, #2 str r1, [sp] ldr r0, _0601909C ; =0x0380FFF4 ldr r0, [r0] add r0, r0, #392 ; 0x188 bl AllocateHeapBuf ldr r2, _0601909C ; =0x0380FFF4 ldr r1, [r2] str r0, [r1, #792] ; 0x318 ldr r1, [r2] ldr r0, [r1, #792] ; 0x318 cmp r0, #0 moveq r0, #0 beq _06019090 add r0, r0, #12 str r0, [r1, #792] ; 0x318 ldr r0, [r2] ldr r0, [r0, #788] ; 0x314 bl FUN_060190A4 bl FLASH_Wait mov r0, #42 ; 0x2a ldr r1, [sp] ldr r2, _0601909C ; =0x0380FFF4 ldr r2, [r2] ldr r2, [r2, #792] ; 0x318 bl FUN_060190AC ldr r0, _0601909C ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #788] ; 0x314 bl FUN_060190B4 mov r0, #1 _06019090: add sp, sp, #4 ldmfd sp!, {lr} bx lr _0601909C: .word 0x0380FFF4 _060190A0: .word 0x000001D6 arm_func_start FUN_060190A4 FUN_060190A4: ; 0x060190A4 ldr pc, _060190A8 ; =SPI_Lock _060190A8: .word SPI_Lock arm_func_start FUN_060190AC FUN_060190AC: ; 0x060190AC ldr pc, _060190B0 ; =NVRAM_ReadDataBytes _060190B0: .word NVRAM_ReadDataBytes arm_func_start FUN_060190B4 FUN_060190B4: ; 0x060190B4 ldr pc, _060190B8 ; =SPI_Unlock _060190B8: .word SPI_Unlock arm_func_start FLASH_DirectRead FLASH_DirectRead: ; 0x060190BC stmdb sp!, {r4, r5, r6, lr} arm_func_start FUN_060190C0 FUN_060190C0: ; 0x060190C0 mov r6, r0 mov r5, r1 mov r4, r2 ldr r0, _06019108 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #788] ; 0x314 bl FUN_060190A4 bl FLASH_Wait mov r0, r6 mov r1, r5 mov r2, r4 bl FUN_060190AC ldr r0, _06019108 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #788] ; 0x314 bl FUN_060190B4 ldmia sp!, {r4, r5, r6, lr} bx lr _06019108: .word 0x0380FFF4 arm_func_start FLASH_Read FLASH_Read: ; 0x0601910C stmdb sp!, {r4, r5, r6, lr} mov r6, r1 mov r5, r2 ldr r1, _06019168 ; =0x0380FFF4 ldr r1, [r1] ldr r1, [r1, #792] ; 0x318 cmp r1, #0 beq _06019160 add r0, r1, r0 sub r4, r0, #42 ; 0x2a b _06019158 _06019138: mov r0, r4 bl WL_ReadByte add r4, r4, #1 mov r1, r0 mov r0, r5 bl WL_WriteByte add r5, r5, #1 sub r6, r6, #1 _06019158: cmp r6, #0 bne _06019138 _06019160: ldmia sp!, {r4, r5, r6, lr} bx lr _06019168: .word 0x0380FFF4 arm_func_start FLASH_Wait FLASH_Wait: ; 0x0601916C stmdb sp!, {r4, lr} sub sp, sp, #8 add r4, sp, #0 _06019178: mov r0, r4 bl FUN_060191AC ldr r0, [sp] ands r0, r0, #32 beq _06019194 bl FUN_060191B4 b _06019178 _06019194: ldr r0, [sp] ands r0, r0, #1 bne _06019178 add sp, sp, #8 ldmia sp!, {r4, lr} bx lr arm_func_start FUN_060191AC FUN_060191AC: ; 0x060191AC ldr pc, _060191B0 ; =NVRAM_ReadStatusRegister _060191B0: .word NVRAM_ReadStatusRegister arm_func_start FUN_060191B4 FUN_060191B4: ; 0x060191B4 ldr pc, _060191B8 ; =NVRAM_SoftwareReset _060191B8: .word NVRAM_SoftwareReset arm_func_start FLASH_VerifyCheckSum FLASH_VerifyCheckSum: ; 0x060191BC stmdb sp!, {r4, r5, r6, r7, lr} sub sp, sp, #4 mov r5, r0 ldr r0, _06019260 ; =0x0380FFF4 ldr r0, [r0] ldr r1, [r0, #792] ; 0x318 ldrh r6, [r1, #2] cmp r6, #164 ; 0xa4 bcc _060191EC ldr r0, _06019264 ; =0x000001D6 cmp r6, r0 bls _060191F4 _060191EC: mov r0, #2 b _06019254 _060191F4: add r7, r1, #2 mov r4, #0 b _06019224 _06019200: mov r0, r7 bl WL_ReadByte add r7, r7, #1 and r0, r0, #255 ; 0xff mov r1, r4, lsl #16 mov r1, r1, lsr #16 bl calc_NextCRC mov r4, r0 sub r6, r6, #1 _06019224: cmp r6, #0 bne _06019200 ldr r0, _06019260 ; =0x0380FFF4 ldr r0, [r0] ldr r0, [r0, #792] ; 0x318 ldrh r1, [r0] cmp r5, #0 orrne r0, r1, r4, lsl #16 strne r0, [r5] cmp r4, r1 movne r0, #1 moveq r0, #0 _06019254: add sp, sp, #4 ldmia sp!, {r4, r5, r6, r7, lr} bx lr _06019260: .word 0x0380FFF4 _06019264: .word 0x000001D6 _06019268: .word WMSP_Initialize _0601926C: ; 0x0601926C .word WMSP_Reset .word WMSP_End .word WMSP_Enable .word WMSP_Disable .word WMSP_PowerOn .word WMSP_PowerOff .word WMSP_SetParentParam .word WMSP_StartParent .word WMSP_EndParent .word WMSP_StartScan .word WMSP_EndScan .word WMSP_StartConnectEx .word WMSP_Disconnect .word WMSP_StartMP .word WMSP_SetMPData .word WMSP_EndMP .word WMSP_StartDCF .word WMSP_SetDCFData .word WMSP_EndDCF .word WMSP_SetWEPKey .word FUN_06002184 .word FUN_06002184 .word FUN_06002184 .word WMSP_SetGameInfo .word WMSP_SetBeaconTxRxInd .word WMSP_StartTestMode .word WMSP_StopTestMode .word WMSP_VAlarmSetMPData .word WMSP_SetLifeTime .word WMSP_MeasureChannel .word WMSP_InitWirelessCounter .word WMSP_GetWirelessCounter .word WMSP_SetEntry .word WMSP_AutoDeAuth .word WMSP_SetMPParameter .word WMSP_SetBeaconPeriod .word WMSP_AutoDisconnect .word WMSP_StartScanEx .word WMSP_SetWEPKeyEx .word WMSP_SetPowerSaveMode .word WMSP_StartTestRxMode .word WMSP_StopTestRxMode .word WMSP_KickNextMP_Parent .word WMSP_KickNextMP_Child .word WMSP_KickNextMP_Resume _06019320: .word MLME_ScanTask .word MLME_JoinTask .word MLME_AuthTask .word MLME_AssTask .word MLME_ReAssTask .word MLME_MeasChannelTask .word RxDataFrameTask .word RxManCtrlTask .word WlIntrTxBeaconTask .word DefragTask .word CAM_TimerTask .word RequestCmdTask .word LowestIdleTask .word MLME_BeaconLostTask .word WlIntrTxEndTask .word WlIntrRxEndTask .word WlIntrMpEndTask .word DefragTimerTask .word UpdateApListTask .word SendMessageToWmTask .word SetParentTbttTxqTask .word SendFatalErrMsgTask .word TerminateWlTask .word ReleaseWlTask _06019380: .word 0x00030003 BC_ADRS: .word 0xFFFFFFFF .word 0x0000FFFF MPKEY_ADRS: .word 0x00BF0903 .word 0x00001000 NULL_ADRS: .word 0x00000000 .word 0x00000000 MP_ADRS: .word 0x00BF0903 .word 0x00000000 RateBit2Element: .word 0x00040002 .word 0x000C000B .word 0x00160012 .word 0x00240018 .word 0x00480030 .word 0x006C0060 .word 0x00000000 .word 0x00000000 _060193C4: .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 _060193E4: .word 0xCC010000 .word 0x1400D801 .word 0x3C00F001 .word 0xE4012800 .word 0x6C00A001 .word 0xB4017800 .word 0x9C015000 .word 0x44008801 _06019404: .word 0x01480146 .word 0x014C014A .word 0x01220120 .word 0x01440154 .word 0x01320132 .word 0x01420140 .word 0x01240038 .word 0x01500128 _06019424: .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 .word 0x00000000 _06019474: .word 0x00000004 .word 0x00000008 .word 0x0000000A .word 0x00000012 .word 0xFFFF0010 .word 0x00000254 .word 0xFFFF00B4 .word 0x00000080 .word 0x0001008E .word 0x00000088 .word 0x0000002A .word 0x00000028 .word 0x000000E8 .word 0x000000EA .word 0x000100EE .word 0x3F0300EC .word 0x000101A2 .word 0x000001A0 .word 0x08000110 .word 0x000100BC .word 0x000300D4 .word 0x000400D8 .word 0x060200DA .word 0x00000076 .word 0x01460130 RateElement2Bit: .word 0x000000FF .word 0x000100FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00030002 .word 0x00FF00FF .word 0x00FF00FF .word 0x000400FF .word 0x00FF00FF .word 0x000500FF .word 0x000600FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x000700FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x000800FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x000900FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x000A00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x000B00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF .word 0x00FF00FF _060195C8: .word 0x5A5AFFFF .word 0x0000A5A5 _060195D0: .word 0x00040002 .word 0x00060005 .word 0x001C0007 .word 0x001E001D .word 0x0020001F .word 0x00260021 .word 0x002C0029 .word 0x002E002D .word 0x0030002F .word 0x00340033 .word 0x00360035 .word 0x00650037 .word 0x00000000 _06019604: .word 0x00090000 .word 0x000B000A .word 0x000D000C .word 0x000F000E .word 0x00110010 .word 0x00140012 .word 0x00160015 .word 0x00180017 .word 0x001A0019 .word 0x004D0027 .word 0x005E005D .word 0x0060005F .word 0x00640061 .word 0x00000066 _0601963C: .word 0x003F0006 .word 0xFFFF0018 .word 0xFFFF001A .word 0xFFFF001C .word 0xFFFF0020 .word 0xFFFF0022 .word 0xFFFF0024 .word 0x07FF002A .word 0xFFFF0050 .word 0xFFFF0052 .word 0x0FFE0056 .word 0x1FFE0058 .word 0x0FFE005A .word 0x0FFF005C .word 0x1FFE0062 .word 0x0FFF0064 .word 0x1FFE0068 .word 0x0FFF006C .word 0x1FFE0074 .word 0xFFFF0122 .word 0xFFFF0124 .word 0xFFFF0128 .word 0x0FFF0130 .word 0x8FFF0132 .word 0xFFFF0134 .word 0xFFFF0140 .word 0xFFFF0142 _060196A8: .word 0x00020018 .word MA_DataReqCmd .word 0x00010004 .word MA_KeyDataReqCmd .word 0x0001000A .word MA_MpReqCmd .word 0x0001000C .word MA_TestDataReqCmd .word 0x00010001 .word MA_ClrDataReqCmd _060196D0: .word 0x00040000 .word PARAMGET_BSSIDReqCmd .word 0x00120000 .word PARAMGET_SSIDReqCmd .word 0x00020000 .word PARAMGET_BeaconPeriodReqCmd .word 0x00020000 .word PARAMGET_DTIMPeriodReqCmd .word 0x00020000 .word PARAMGET_ListenIntervalReqCmd .word 0x00010000 .word PARAMGET_GameInfoReqCmd _06019700: .word 0x00010003 .word PARAMSET_BSSIDReqCmd .word 0x00010011 .word PARAMSET_SSIDReqCmd .word 0x00010001 .word PARAMSET_BeaconPeriodReqCmd .word 0x00010001 .word PARAMSET_DTIMPeriodReqCmd .word 0x00010001 .word PARAMSET_ListenIntervalReqCmd .word 0x00010000 .word PARAMSET_GameInfoReqCmd _06019730: .word 0x00010001 .word MLME_ResetReqCmd .word 0x00010003 .word MLME_PwrMgtReqCmd .word 0x0023001F .word MLME_ScanReqCmd .word 0x00050022 .word MLME_JoinReqCmd .word 0x00060005 .word MLME_AuthReqCmd .word 0x00040004 .word MLME_DeAuthReqCmd .word 0x00030005 .word MLME_AssReqCmd .word 0x00030005 .word MLME_ReAssReqCmd .word 0x00010004 .word MLME_DisAssReqCmd .word 0x00010017 .word MLME_StartReqCmd .word 0x0012000C .word MLME_MeasChanReqCmd _06019788: .word 0x00010000 .word CMD_ReservedReqCmd .word 0x00010000 .word DEV_ShutdownReqCmd .word 0x00010000 .word DEV_IdleReqCmd .word 0x00010000 .word DEV_Class1ReqCmd .word 0x00010000 .word DEV_RebootReqCmd .word 0x00010000 .word DEV_ClearWlInfoReqCmd .word 0x00090000 .word DEV_GetVerInfoReqCmd .word 0x005C0000 .word DEV_GetWlInfoReqCmd .word 0x00020000 .word DEV_GetStateReqCmd .word 0x00010004 .word DEV_TestSignalReqCmd .word 0x00010002 .word DEV_TestRxReqCmd _060197E0: .word 0x00210000 .word PARAMGET_AllReqCmd .word 0x00040000 .word PARAMGET_MacAdrsReqCmd .word 0x00020000 .word PARAMGET_RetryReqCmd .word 0x00030000 .word PARAMGET_EnableChannelReqCmd .word 0x00020000 .word PARAMGET_ModeReqCmd .word 0x00020000 .word PARAMGET_RateReqCmd .word 0x00020000 .word PARAMGET_WepModeReqCmd .word 0x00020000 .word PARAMGET_WepKeyIdReqCmd .word 0x00010000 .word CMD_ReservedReqCmd .word 0x00020000 .word PARAMGET_BeaconTypeReqCmd .word 0x00020000 .word PARAMGET_ResBcSsidReqCmd .word 0x00020000 .word PARAMGET_BeaconLostThReqCmd .word 0x00020000 .word PARAMGET_ActiveZoneReqCmd .word 0x00110000 .word PARAMGET_SSIDMaskReqCmd .word 0x00020000 .word PARAMGET_PreambleTypeReqCmd .word 0x00020000 .word 0x06011AB0 .word 0x00040000 .word PARAMGET_CCAModeEDThReqCmd .word 0x00010000 .word CMD_ReservedReqCmd .word 0x00020000 .word PARAMGET_MaxConnReqCmd .word 0x00020000 .word PARAMGET_MainAntennaReqCmd .word 0x00030000 .word PARAMGET_DiversityReqCmd .word 0x00020000 .word PARAMGET_BcnSendRecvIndReqCmd .word 0x00020000 .word PARAMGET_NullKeyModeReqCmd _06019898: .word 0x00010048 .word PARAMSET_AllReqCmd .word 0x00010003 .word PARAMSET_MacAdrsReqCmd .word 0x00010001 .word PARAMSET_RetryReqCmd .word 0x00010001 .word PARAMSET_EnableChannelReqCmd .word 0x00010001 .word PARAMSET_ModeReqCmd .word 0x00010001 .word PARAMSET_RateReqCmd .word 0x00010001 .word PARAMSET_WepModeReqCmd .word 0x00010001 .word PARAMSET_WepKeyIdReqCmd .word 0x00010028 .word PARAMSET_WepKeyReqCmd .word 0x00010001 .word PARAMSET_BeaconTypeReqCmd .word 0x00010001 .word PARAMSET_ResBcSsidReqCmd .word 0x00010001 .word PARAMSET_BeaconLostThReqCmd .word 0x00010001 .word PARAMSET_ActiveZoneReqCmd .word 0x00010010 .word PARAMSET_SSIDMaskReqCmd .word 0x00010001 .word PARAMSET_PreambleTypeReqCmd .word 0x00010001 .word 0x060122B8 .word 0x00010003 .word PARAMSET_CCAModeEDThReqCmd .word 0x00010003 .word PARAMSET_LifeTimeReqCmd .word 0x00010001 .word PARAMSET_MaxConnReqCmd .word 0x00010001 .word PARAMSET_MainAntennaReqCmd .word 0x00010002 .word PARAMSET_DiversityReqCmd .word 0x00010001 .word PARAMSET_BcnSendRecvIndReqCmd .word 0x00010001 .word PARAMSET_NullKeyModeReqCmd _06019950: .word 0x38372E32 .word 0x0030302E _06019958: .word 0x00040001 .word 0x00000008 .section .bss .balign 16, 0 .global wmspW wmspW: .space 32 _06019980: .space 8 _06019988: .space 32 _060199A8: .space 16 _060199B8: .space 32 _060199D8: .space 16 _060199E8: .space 32 _06019A08: .space 0xF58 .global _0601A960 _0601A960: .space 0x128 _0601AA88: .space 0x400 .global _0601AE88 _0601AE88: .space 0x2C _0601AEB4: .space 60