a9e3928c8d
Tweaks to xtobjdis are hg-git sha 6da80c11f Everything works except for wpa_auth.o & phy_chip_v6_ana.o disassemble with some functions not correctly detected.
189 lines
12 KiB
ArmAsm
189 lines
12 KiB
ArmAsm
|
|
.section .irom0.text, "ax", @progbits
|
|
|
|
# Function @ .irom0.text+0x0
|
|
.global sdk_ieee80211_psq_init
|
|
.type sdk_ieee80211_psq_init, @function
|
|
sdk_ieee80211_psq_init:
|
|
movi a6, 0 /* 0x00000000 */ # 0: 0c06
|
|
movi a5, 0 /* 0x00000000 */ # 2: 0c05
|
|
movi a4, 1 /* 0x00000001 */ # 4: 0c14
|
|
.Lbr001: addi a4, a4, -1 # 6: 0b44
|
|
add a3, a5, a2 # 8: 2a35
|
|
s32i a6, a3, 0 # a: 6903
|
|
addi a5, a5, 4 # c: 4b55
|
|
bgei a4, 1, .Lbr001 # e: e614f4
|
|
movi a4, 10 /* 0x0000000a */ # 11: 0ca4
|
|
s32i a4, a2, 4 /* 0x0000000a -> [arg0+0x4] */ # 13: 4912
|
|
ret /* arg0 */ # 15: 0df0
|
|
|
|
.balign 4
|
|
# Function @ .irom0.text+0x18
|
|
.global sdk_ieee80211_psq_cleanup
|
|
.type sdk_ieee80211_psq_cleanup, @function
|
|
sdk_ieee80211_psq_cleanup:
|
|
ret /* arg0 */ # 18: 0df0
|
|
|
|
.literal_position # 1c: 00000000
|
|
|
|
# Function @ .irom0.text+0x20
|
|
.global sdk_ieee80211_set_tim
|
|
.type sdk_ieee80211_set_tim, @function
|
|
sdk_ieee80211_set_tim:
|
|
movi a10, 1 /* 0x00000001 */ # 20: 0c1a
|
|
l16ui a6, a2, 26 /* [arg0+0x1a] */ # 22: 62120d
|
|
movi a8, sdk_g_ic+0x152 # 25: 81fdff
|
|
extui a7, a6, 0, 3 # 28: 607024
|
|
extui a6, a6, 3, 11 # 2b: 6063a4
|
|
add a6, a6, a8 # 2e: 8a66
|
|
l8ui a5, a6, 128 # 30: 520680
|
|
ssr a7 # 33: 000740
|
|
sra a4, a5 # 36: 5040b1
|
|
extui a4, a4, 0, 1 # 39: 404004
|
|
sub a2, a3, a4 # 3c: 4023c0
|
|
movnez a2, a10, a2 # 3f: 202a93
|
|
beqz a2, .Lbr002 # 42: 9c52
|
|
movi a11, -1 /* 0xffffffff */ # 44: 7cfb
|
|
ssl a7 # 46: 001740
|
|
sll a9, a10 # 49: 009aa1
|
|
or a8, a9, a5 # 4c: 508920
|
|
xor a9, a9, a11 # 4f: b09930
|
|
and a9, a5, a9 # 52: 909510
|
|
moveqz a8, a9, a3 # 55: 308983
|
|
s8i a8, a6, 128 # 58: 824680
|
|
.Lbr002: ret # 5b: 0df0
|
|
|
|
.literal_position # 60: 00000000
|
|
# 64: 00000000
|
|
|
|
# Function @ .irom0.text+0x68
|
|
# Local variables/stack:
|
|
# (local0): word @ -0x10
|
|
# (local1): word[3] @ -0xc
|
|
.global sdk_ieee80211_pwrsave
|
|
.type sdk_ieee80211_pwrsave, @function
|
|
sdk_ieee80211_pwrsave:
|
|
mov a6, a2 /* arg0 */ # 68: 6d02
|
|
addi sp, sp, -16 /* (local0) */ # 6a: 12c1f0
|
|
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6d: c911
|
|
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6f: 0901
|
|
l32i a2, a2, 196 /* [arg0+0xc4] */ # 71: 222231
|
|
l32i a0, a6, 192 /* [arg0+0xc0] */ # 74: 022630
|
|
mov a12, a3 /* arg1 */ # 77: cd03
|
|
blt a0, a2, .Lbr003 # 79: 27201e
|
|
l32i a3, a6, 200 /* [arg0+0xc8] */ # 7c: 322632
|
|
l32i a2, a12, 0 /* [arg1] */ # 7f: 280c
|
|
addi a3, a3, 1 /* [arg0+0xc8]+0x1 */ # 81: 1b33
|
|
s32i a3, a6, 200 /* [arg0+0xc8]+0x1 -> [arg0+0xc8] */ # 83: 326632
|
|
call0 pbuf_free # 86: 01f6ffc0
|
|
# 8a: 0000
|
|
mov a2, a12 /* arg1 */ # 8c: 2d0c
|
|
movi a3, 1 /* 0x00000001 */ # 8e: 0c13
|
|
call0 sdk_esf_buf_recycle # 90: 01f5ffc0
|
|
# 94: 0000
|
|
movi a2, 1 /* 0x00000001 */ # 96: 0c12
|
|
j .Lbr007 # 98: 060b00
|
|
.Lbr003: addi a4, a0, 1 /* [arg0+0xc0]+0x1 */ # 9b: 1b40
|
|
movi a7, 0 /* 0x00000000 */ # 9d: 0c07
|
|
l32i a5, a6, 212 /* [arg0+0xd4] */ # 9f: 522635
|
|
l32i a2, a6, 208 /* [arg0+0xd0] */ # a2: 222634
|
|
addi a5, a5, 1 /* [arg0+0xd4]+0x1 */ # a5: 1b55
|
|
bnez a2, .Lbr004 # a7: cc42
|
|
s32i a3, a6, 204 /* arg1 -> [arg0+0xcc] */ # a9: 326633
|
|
j .Lbr005 # ac: 460000
|
|
.Lbr004: s32i a3, a2, 28 /* arg1 -> [[arg0+0xd0]+0x1c] */ # af: 3972
|
|
.Lbr005: s32i a7, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # b1: 797c
|
|
s32i a12, a6, 208 /* arg1 -> [arg0+0xd0] */ # b3: c26634
|
|
s32i a4, a6, 192 /* [arg0+0xc0]+0x1 -> [arg0+0xc0] */ # b6: 426630
|
|
s32i a5, a6, 212 /* [arg0+0xd4]+0x1 -> [arg0+0xd4] */ # b9: 526635
|
|
bnei a4, 1, .Lbr006 # bc: 661406
|
|
mov a2, a6 /* arg0 */ # bf: 2d06
|
|
movi a3, 1 /* 0x00000001 */ # c1: 0c13
|
|
call0 sdk_ieee80211_set_tim # c3: 050000
|
|
.Lbr006: movi a2, 0 /* 0x00000000 */ # c6: 0c02
|
|
.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # c8: c811
|
|
l32i a0, sp, 0 /* [(local0)] */ # ca: 0801
|
|
addi sp, sp, 16 /* (top of frame) */ # cc: 12c110
|
|
ret # cf: 0df0
|
|
|
|
.literal_position # d4: 00000000
|
|
# d8: 00000000
|
|
# dc: 00000000
|
|
|
|
# Function @ .irom0.text+0xe0
|
|
# Local variables/stack:
|
|
# (local0): word @ -0x10
|
|
# (local1): word @ -0xc
|
|
# (local2): word @ -0x8
|
|
# (local3): word @ -0x4
|
|
.Lfunc001: addi sp, sp, -16 /* (local0) */ # e0: 12c1f0
|
|
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e3: 0901
|
|
s32i a14, sp, 12 /* a14 -> [(local3)] */ # e5: e931
|
|
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
|
|
s32i a13, sp, 8 /* a13 -> [(local2)] */ # e9: d921
|
|
mov a12, a2 /* arg0 */ # eb: cd02
|
|
l32i a13, a2, 204 /* [arg0+0xcc] */ # ed: d22233
|
|
movi a14, 0 /* 0x00000000 */ # f0: 0c0e
|
|
bnez a13, .Lbr008 # f2: cc1d
|
|
j .Lbr012 # f4: 061000
|
|
.Lbr008: l32i a2, a13, 28 /* [[arg0+0xcc]+0x1c] */ # f7: 287d
|
|
s32i a2, a12, 204 /* [[arg0+0xcc]+0x1c] -> [arg0+0xcc] */ # f9: 226c33
|
|
call0 sdk_chm_check_same_channel # fc: 01f7ffc0
|
|
# 100: 0000
|
|
beqz a2, .Lbr009 # 102: 8c92
|
|
mov a2, a13 /* [arg0+0xcc] */ # 104: 2d0d
|
|
call0 sdk_ppTxPkt # 106: 01f5ffc0
|
|
# 10a: 0000
|
|
j .Lbr010 # 10c: c60300
|
|
.Lbr009: movi a5, sdk_g_ic # 10f: 51f1ff
|
|
addi a4, a13, 28 /* [arg0+0xcc]+0x1c */ # 112: 42cd1c
|
|
l32i a6, a5, 0x1c4 /* [sdk_g_ic+0x1c4] */ # 115: 622571
|
|
s32i a14, a13, 28 /* 0x00000000 -> [[arg0+0xcc]+0x1c] */ # 118: e97d
|
|
s32i a13, a6, 0 /* [arg0+0xcc] -> [[sdk_g_ic+0x1c4]] */ # 11a: d906
|
|
s32i a4, a5, 0x1c4 /* [arg0+0xcc]+0x1c -> [sdk_g_ic+0x1c4] */ # 11c: 426571
|
|
.Lbr010: l32i a7, a12, 192 /* [arg0+0xc0] */ # 11f: 722c30
|
|
l32i a13, a12, 204 /* [arg0+0xcc] */ # 122: d22c33
|
|
addi a7, a7, -1 /* [arg0+0xc0]-0x1 */ # 125: 0b77
|
|
s32i a7, a12, 192 /* [arg0+0xc0]-0x1 -> [arg0+0xc0] */ # 127: 726c30
|
|
beqz a13, .Lbr011 # 12a: 8c1d
|
|
j .Lbr008 # 12c: c6f1ff
|
|
.Lbr011: s32i a14, a12, 208 /* 0x00000000 -> [arg0+0xd0] */ # 12f: e26c34
|
|
s32i a14, a12, 204 /* 0x00000000 -> [arg0+0xcc] */ # 132: e26c33
|
|
s32i a14, a12, 212 /* 0x00000000 -> [arg0+0xd4] */ # 135: e26c35
|
|
.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 138: 0801
|
|
s32i a14, a12, 192 /* 0x00000000 -> [arg0+0xc0] */ # 13a: e26c30
|
|
l32i a13, sp, 8 /* [(local2)] */ # 13d: d821
|
|
l32i a12, sp, 4 /* [(local1)] */ # 13f: c811
|
|
l32i a14, sp, 12 /* [(local3)] */ # 141: e831
|
|
addi sp, sp, 16 /* (top of frame) */ # 143: 12c110
|
|
ret # 146: 0df0
|
|
|
|
# Function @ .irom0.text+0x148
|
|
# Local variables/stack:
|
|
# (local0): word @ -0x10
|
|
# (local1): word[3] @ -0xc
|
|
.global sdk_ieee80211_node_pwrsave
|
|
.type sdk_ieee80211_node_pwrsave, @function
|
|
sdk_ieee80211_node_pwrsave:
|
|
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
|
|
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 14b: 0911
|
|
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 14d: 2901
|
|
l32i a0, a2, 8 /* [arg0+0x8] */ # 14f: 0822
|
|
beqz a3, .Lbr013 # 151: 8c83
|
|
movi a3, 16 /* 0x00000010 */ # 153: 1c03
|
|
or a3, a0, a3 # 155: 303020
|
|
s32i a3, a2, 8 /* a3 -> [arg0+0x8] */ # 158: 3922
|
|
j .Lbr014 # 15a: c60500
|
|
.Lbr013: movi a3, 0 /* 0x00000000 */ # 15d: 0c03
|
|
movi a4, -17 /* 0xffffffef */ # 15f: 6cf4
|
|
and a4, a0, a4 # 161: 404010
|
|
s32i a4, a2, 8 /* a4 -> [arg0+0x8] */ # 164: 4922
|
|
call0 sdk_ieee80211_set_tim # 166: 050000
|
|
l32i a0, sp, 0 /* [(local0)] */ # 169: 0801
|
|
l32i a5, a0, 192 /* [[(local0)]+0xc0] */ # 16b: 522030
|
|
beqz a5, .Lbr014 # 16e: 8c35
|
|
mov a2, a0 /* [(local0)] */ # 170: 2d00
|
|
call0 .Lfunc001 # 172: c5f6ff
|
|
.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 175: 0811
|
|
addi sp, sp, 16 /* (top of frame) */ # 177: 12c110
|
|
ret # 17a: 0df0
|