248 lines
16 KiB
ArmAsm
248 lines
16 KiB
ArmAsm
|
|
.section .data, "aw", @progbits
|
|
|
|
.Ldata001: .byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
.word 0x00000000 # 14: 00000000
|
|
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
|
|
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
|
|
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x02
|
|
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x03
|
|
.byte 0xd5, 0x00, 0x75, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x70, 0x17, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x04
|
|
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x28, 0x23, 0x00, 0x00, 0x00, 0x0f, 0x12, 0x04
|
|
.byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xe0, 0x2e, 0x00, 0x00, 0x00, 0x0a, 0x18, 0x06
|
|
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x50, 0x46, 0x00, 0x00, 0x00, 0x0e, 0x24, 0x06
|
|
.byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x09, 0x30, 0x08
|
|
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xa0, 0x8c, 0x00, 0x00, 0x00, 0x0d, 0x48, 0x08
|
|
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0x80, 0xbb, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08
|
|
.byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00
|
|
.byte 0xf0, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x6c, 0x08
|
|
.byte 0x2c, 0x00, 0x2c, 0x00
|
|
.Label001: .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00
|
|
.byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01
|
|
.byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x01
|
|
.byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x01
|
|
.byte 0xd5, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
|
|
.byte 0x00, 0x00, 0x00, 0x00
|
|
|
|
.section .irom0.text, "ax", @progbits
|
|
|
|
.literal_position # 0: 00000000
|
|
|
|
# Function @ .irom0.text+0x4
|
|
.balign 4
|
|
.global sdk_ieee80211_get_11g_ratetable
|
|
.type sdk_ieee80211_get_11g_ratetable, @function
|
|
sdk_ieee80211_get_11g_ratetable:
|
|
movi a2, .Ldata001 # 4: 21ffff
|
|
ret /* .Ldata001 */ # 7: 0df0
|
|
|
|
.literal_position # c: d4000000
|
|
# 10: 00000000
|
|
|
|
# Function @ .irom0.text+0x14
|
|
.balign 4
|
|
.global sdk_ieee80211_get_ratetable
|
|
.type sdk_ieee80211_get_ratetable, @function
|
|
sdk_ieee80211_get_ratetable:
|
|
l32i a2, a2, 0 /* [arg0] */ # 14: 2802
|
|
movi a3, 192 /* 0x000000c0 */ # 16: 32a0c0
|
|
ball a2, a3, .Lbr001 # 19: 37420a
|
|
movi a4, 1152 /* 0x00000480 */ # 1c: 42a480
|
|
ball a2, a4, .Lbr001 # 1f: 474204
|
|
movi a2, .Label001 # 22: 21faff
|
|
ret /* .Label001 */ # 25: 0df0
|
|
.Lbr001: movi a2, .Ldata001 # 27: 21faff
|
|
ret /* .Ldata001 */ # 2a: 0df0
|
|
|
|
.literal_position # 2c: 00000000
|
|
|
|
# Function @ .irom0.text+0x30
|
|
# Local variables/stack:
|
|
# (local0): word @ -0x10
|
|
# (local1): word[3] @ -0xc
|
|
.balign 4
|
|
.global sdk_ieee80211_phy_init
|
|
.type sdk_ieee80211_phy_init, @function
|
|
sdk_ieee80211_phy_init:
|
|
addi sp, sp, -16 /* (local0) */ # 30: 12c1f0
|
|
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 33: c911
|
|
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35: 0901
|
|
mov a12, a2 /* arg0 */ # 37: cd02
|
|
call0 sdk_ieee80211_setup_ratetable # 39: 050000
|
|
movi a3, 12 /* 0x0000000c */ # 3c: 0cc3
|
|
movi a0, 3 /* 0x00000003 */ # 3e: 0c30
|
|
movi a5, 4 /* 0x00000004 */ # 40: 0c45
|
|
movi a2, sdk_g_ic # 42: 21faff
|
|
addi a4, a12, -1 /* arg0-0x1 */ # 45: 0b4c
|
|
movi a6, 0 /* 0x00000000 */ # 47: 0c06
|
|
l32i a12, sp, 4 /* [(local1)] */ # 49: c811
|
|
s8i a6, a2, 125 /* 0x00 -> [sdk_g_ic+0x7d] */ # 4b: 62427d
|
|
s8i a6, a2, 126 /* 0x00 -> [sdk_g_ic+0x7e] */ # 4e: 62427e
|
|
s8i a5, a2, 127 /* 0x04 -> [sdk_g_ic+0x7f] */ # 51: 52427f
|
|
movnez a0, a3, a4 # 54: 400393
|
|
s8i a0, a2, 124 /* a0 -> [sdk_g_ic+0x7c] */ # 57: 02427c
|
|
l32i a0, sp, 0 /* [(local0)] */ # 5a: 0801
|
|
addi sp, sp, 16 /* (top of frame) */ # 5c: 12c110
|
|
ret /* sdk_g_ic */ # 5f: 0df0
|
|
|
|
.literal_position # 64: 00000000
|
|
|
|
# Function @ .irom0.text+0x68
|
|
.balign 4
|
|
.global sdk_ieee80211_phy_type_get
|
|
.type sdk_ieee80211_phy_type_get, @function
|
|
sdk_ieee80211_phy_type_get:
|
|
movi a2, sdk_g_ic+0x200 # 68: 21ffff
|
|
l32i a2, a2, 0x31c /* [sdk_g_ic+0x51c] */ # 6b: 2222c7
|
|
movi a3, 1 /* 0x00000001 */ # 6e: 0c13
|
|
addi a2, a2, -1 /* [sdk_g_ic+0x51c]-0x1 */ # 70: 0b22
|
|
movnez a2, a3, a2 # 72: 202393
|
|
ret # 75: 0df0
|
|
|
|
.literal_position # 78: 00000000
|
|
# 7c: d4000000
|
|
# 80: 00000000
|
|
|
|
# Function @ .irom0.text+0x84
|
|
.balign 4
|
|
.global sdk_ieee80211_setup_ratetable
|
|
.type sdk_ieee80211_setup_ratetable, @function
|
|
sdk_ieee80211_setup_ratetable:
|
|
movi a4, .Ldata001 # 84: 41fdff
|
|
movi a5, .Label001 # 87: 51fdff
|
|
addi a6, a2, -1 /* arg0-0x1 */ # 8a: 0b62
|
|
movnez a5, a4, a6 # 8c: 605493
|
|
movi a6, sdk_g_ic # 8f: 61fcff
|
|
l8ui a3, a5, 0 # 92: 320500
|
|
s8i a3, a6, 44 /* a3 -> [sdk_g_ic+0x2c] */ # 95: 32462c
|
|
beqz a3, .Lbr003 # 98: 9c83
|
|
movi a2, 0 /* 0x00000000 */ # 9a: 0c02
|
|
.Lbr002: add a4, a2, a6 # 9c: 6a42
|
|
slli a3, a2, 4 # 9e: c03211
|
|
add a3, a5, a3 # a1: 3a35
|
|
addi a2, a2, 1 # a3: 1b22
|
|
l8ui a3, a3, 30 # a5: 32031e
|
|
s8i a3, a4, 45 # a8: 32442d
|
|
l8ui a7, a6, 44 /* [sdk_g_ic+0x2c] */ # ab: 72062c
|
|
extui a2, a2, 0, 8 # ae: 202074
|
|
bltu a2, a7, .Lbr002 # b1: 7732e7
|
|
.Lbr003: ret # b4: 0df0
|
|
|
|
.literal_position # b8: 00000000
|
|
# bc: 00000000
|
|
# c0: 00000000
|
|
|
|
# Function @ .irom0.text+0xc4
|
|
# Local variables/stack:
|
|
# (local0): word @ -0x10
|
|
# (local1): word @ -0xc
|
|
# (local2): word[2] @ -0x8
|
|
.balign 4
|
|
.global sdk_ieee80211_compute_duration
|
|
.type sdk_ieee80211_compute_duration, @function
|
|
sdk_ieee80211_compute_duration:
|
|
addi sp, sp, -16 /* (local0) */ # c4: 12c1f0
|
|
s32i a0, sp, 8 /* a0 -> [(local2)] */ # c7: 0921
|
|
add a0, a4, a2 # c9: 2a04
|
|
l8ui a0, a0, 4 # cb: 020004
|
|
mov a7, a3 /* arg1 */ # ce: 7d03
|
|
slli a0, a0, 4 # d0: c00011
|
|
add a0, a2, a0 # d3: 0a02
|
|
l32i a3, a0, 24 # d5: 3860
|
|
l8ui a2, a0, 20 # d7: 220014
|
|
bnez a3, .Lbr004 # da: cc33
|
|
movi a2, 0 /* 0x00000000 */ # dc: 0c02
|
|
j .Lbr008 # de: 061400
|
|
.Lbr004: s32i a7, sp, 4 /* arg1 -> [(local1)] */ # e1: 7911
|
|
beqz a2, .Lbr005 # e3: ac52
|
|
bnei a2, 1, .Lbr007 # e5: 661246
|
|
slli a2, a3, 2 # e8: e02311
|
|
movi a3, 1000 /* 0x000003e8 */ # eb: 32a3e8
|
|
call0 __udivsi3 # ee: 01f2ffc0
|
|
# f2: 0000
|
|
mov a3, a2 # f4: 3d02
|
|
l32i a2, sp, 4 /* [(local1)] */ # f6: 2811
|
|
addx8 a2, a2, a3 # f8: 3022b0
|
|
addi a2, a2, 21 # fb: 22c215
|
|
call0 __udivsi3 # fe: 01efffc0
|
|
# 102: 0000
|
|
movi a0, 36 /* 0x00000024 */ # 104: 2c40
|
|
addx4 a0, a2, a0 # 106: 0002a0
|
|
j .Lbr007 # 109: 860800
|
|
.Lbr005: beqz a5, .Lbr009 # 10c: ac95
|
|
l8ui a2, a0, 28 # 10e: 22001c
|
|
movi a4, 96 /* 0x00000060 */ # 111: 42a060
|
|
beqz a2, .Lbr009 # 114: ac12
|
|
s32i a4, sp, 0 /* 0x00000060 -> [(local0)] */ # 116: 4901
|
|
.Lbr006: l32i a2, sp, 4 /* [(local1)] */ # 118: 2811
|
|
movi a4, 1000 /* 0x000003e8 */ # 11a: 42a3e8
|
|
slli a2, a2, 3 # 11d: d02211
|
|
mull a2, a2, a4 # 120: 402282
|
|
call0 __udivsi3 # 123: 01e7ffc0
|
|
# 127: 0000
|
|
l32i a0, sp, 0 /* [(local0)] */ # 129: 0801
|
|
add a0, a0, a2 # 12b: 2a00
|
|
addi a0, a0, 10 # 12d: ab00
|
|
.Lbr007: extui a2, a0, 0, 16 # 12f: 0020f4
|
|
.Lbr008: l32i a0, sp, 8 /* [(local2)] */ # 132: 0821
|
|
addi sp, sp, 16 /* (top of frame) */ # 134: 12c110
|
|
ret # 137: 0df0
|
|
.Lbr009: movi a2, 192 /* 0x000000c0 */ # 139: 22a0c0
|
|
s32i a2, sp, 0 /* 0x000000c0 -> [(local0)] */ # 13c: 2901
|
|
j .Lbr006 # 13e: 86f5ff
|
|
|
|
.literal_position # 144: 00000000
|
|
|
|
# Function @ .irom0.text+0x148
|
|
.balign 4
|
|
.global sdk_ieee80211_dot11Rate_rix
|
|
.type sdk_ieee80211_dot11Rate_rix, @function
|
|
sdk_ieee80211_dot11Rate_rix:
|
|
movi a6, 0 /* 0x00000000 */ # 148: 0c06
|
|
movi a8, .Ldata001 # 14a: 81feff
|
|
.Lbr010: slli a7, a6, 4 # 14d: c07611
|
|
add a7, a8, a7 # 150: 7a78
|
|
l8ui a4, a7, 30 # 152: 42071e
|
|
bne a4, a2, .Lbr011 # 155: 279409
|
|
mov a2, a6 # 158: 2d06
|
|
l8ui a8, a7, 29 # 15a: 82071d
|
|
s8i a8, a3, 0 /* a8 -> [arg1] */ # 15d: 824300
|
|
ret # 160: 0df0
|
|
.Lbr011: addi a6, a6, 1 # 162: 1b66
|
|
extui a6, a6, 0, 8 # 164: 606074
|
|
bnei a6, 12, .Lbr010 # 167: 66a6e2
|
|
movi a2, 255 /* 0x000000ff */ # 16a: 22a0ff
|
|
ret /* 0x000000ff */ # 16d: 0df0
|