mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-08 19:56:30 -05:00
29609 lines
547 KiB
ArmAsm
29609 lines
547 KiB
ArmAsm
.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
|