Disassembled binary SDK output, direct from xtobjdis with a couple of tweaks

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.
This commit is contained in:
Angus Gratton 2015-10-02 09:51:31 +10:00
parent 419f252d80
commit a9e3928c8d
77 changed files with 73774 additions and 0 deletions

View file

@ -0,0 +1,587 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.Lfunc001: movi a5, .Ldata001 # 4: 51ffff
l8ui a2, a5, 0 /* [.Ldata001] */ # 7: 220500
addi a3, a5, 32 /* .bss+0x20 */ # a: 32c520
addi a2, a2, 1 /* [.Ldata001]+0x1 */ # d: 1b22
extui a2, a2, 0, 8 # f: 202074
bltui a2, 5, .Lbr001 # 12: b65208
addi a3, a2, -1 # 15: 0b32
s8i a3, a5, 0 /* a3 -> [.Ldata001] */ # 17: 324500
movi a2, 0 /* 0x00000000 */ # 1a: 0c02
ret /* 0x00000000 */ # 1c: 0df0
.Lbr001: s8i a2, a5, 0 /* a2 -> [.Ldata001] */ # 1e: 224500
l8ui a2, a5, 1 /* [.Ldata002] */ # 21: 220501
addi a4, a2, 1 /* [.Ldata002]+0x1 */ # 24: 1b42
addx8 a2, a2, a3 # 26: 3022b0
extui a4, a4, 0, 8 # 29: 404074
bltui a4, 4, .Lbr002 # 2c: b64401
movi a4, 0 /* 0x00000000 */ # 2f: 0c04
.Lbr002: s8i a4, a5, 1 /* a4 -> [.Ldata002] */ # 31: 424501
ret # 34: 0df0
.literal_position # 38: 24000000
# 3c: 00000000
# 40: 30000000
# 44: 00000000
# 48: 00000000
# 4c: 00000000
# 50: 00000000
# Function @ .text+0x54
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 57: 0921
call0 .Lfunc001 # 59: 85faff
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 5c: 2901
bnez a2, .Lbr003 # 5e: cca2
movi a2, .Lstr004 # 60: 21f6ff
call0 printf # 63: 01f8ffc0
# 67: 0000
j .Lbr005 # 69: 060b00
.Lbr003: mov a3, sp /* (local0) */ # 6c: 3d01
addi a4, sp, 4 /* (local1) */ # 6e: 4b41
movi a5, 0 /* 0x00000000 */ # 70: 0c05
s32i a5, a2, 0 # 72: 5902
movi a2, .Ldata001 # 74: 21f2ff
s32i a5, sp, 4 /* 0x00000000 -> [(local1)] */ # 77: 5911
l32i a2, a2, 16 /* [.Ldata004] */ # 79: 2842
call0 xQueueGenericSendFromISR # 7b: 01f3ffc0
# 7f: 0000
mov a3, a2 # 81: 3d02
beqi a2, 1, .Lbr004 # 83: 261208
movi a2, .Lstr005 # 86: 21eeff
call0 printf # 89: 01f0ffc0
# 8d: 0000
.Lbr004: l32i a3, sp, 4 /* [(local1)] */ # 8f: 3811
beqz a3, .Lbr005 # 91: 8c43
call0 vTaskSwitchContext # 93: 01efffc0
# 97: 0000
.Lbr005: l32i a0, sp, 8 /* [(local2)] */ # 99: 0821
addi sp, sp, 16 /* (top of frame) */ # 9b: 12c110
ret # 9e: 0df0
.section .bss, "aw", @nobits
.Ldata001: .byte 0x00
.Ldata002: .byte 0x00
.byte 0x00, 0x00
.Ldata003: .word 0x00000000 # 4: 00000000
.global sdk_debug_timer
.type sdk_debug_timer, @object
sdk_debug_timer:
.word 0x00000000 # 8: 00000000
.global sdk_debug_timerfn
.type sdk_debug_timerfn, @object
sdk_debug_timerfn:
.word 0x00000000 # c: 00000000
.Ldata004: .word 0x00000000 # 10: 00000000
.space 44
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc003: addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901
call0 vPortEnterCritical # 11: 01fcffc0
# 15: 0000
movi a2, .Ldata001 # 17: 21faff
l8ui a0, a2, 0 /* [.Ldata001] */ # 1a: 020200
addi a0, a0, -1 /* [.Ldata001]-0x1 */ # 1d: 0b00
s8i a0, a2, 0 /* [.Ldata001]-0x1 -> [.Ldata001] */ # 1f: 024200
call0 vPortExitCritical # 22: 01f9ffc0
# 26: 0000
l32i a0, sp, 0 /* [(local0)] */ # 28: 0801
addi sp, sp, 16 /* (top of frame) */ # 2a: 12c110
ret # 2d: 0df0
.literal_position # 30: 00060060
# Function @ .irom0.text+0x34
.Lfunc004: movi a3, 0x60000600 # 34: 31ffff
memw # 37: c02000
s32i a2, a3, 48 /* arg0 -> [0x60000630] */ # 3a: 29c3
ret /* arg0 */ # 3c: 0df0
.literal_position # 40: 00060060
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc005: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 47: 0901
movi a4, 0x60000600 # 49: 41fdff
memw # 4c: c02000
l32i a4, a4, 36 /* [0x60000624] */ # 4f: 4894
sub a0, a2, a4 # 51: 4002c0
addi a3, a0, -40 # 54: 32c0d8
bgei a3, 1, .Lbr007 # 57: e61314
bgei a0, 1, .Lbr006 # 5a: e61008
addi a2, a4, 40 /* [0x60000624]+0x28 */ # 5d: 22c428
call0 .Lfunc004 # 60: 05fdff
j .Lbr008 # 63: c60200
.Lbr006: addi a2, a2, 44 /* arg0+0x2c */ # 66: 22c22c
call0 .Lfunc004 # 69: 85fcff
j .Lbr008 # 6c: 860000
.Lbr007: call0 .Lfunc004 # 6f: 45fcff
.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 72: 0801
addi sp, sp, 16 /* (top of frame) */ # 74: 12c110
ret # 77: 0df0
.balign 4
# Function @ .irom0.text+0x7c
.global sdk_ets_timer_setfn
.type sdk_ets_timer_setfn, @function
sdk_ets_timer_setfn:
s32i a3, a2, 16 /* arg1 -> [arg0+0x10] */ # 7c: 3942
s32i a4, a2, 24 /* arg2 -> [arg0+0x18] */ # 7e: 4962
movi a5, -1 /* 0xffffffff */ # 80: 7cf5
movi a6, 0 /* 0x00000000 */ # 82: 0c06
s32i a6, a2, 8 /* 0x00000000 -> [arg0+0x8] */ # 84: 6922
s32i a6, a2, 12 /* 0x00000000 -> [arg0+0xc] */ # 86: 6932
s32i a5, a2, 0 /* 0xffffffff -> [arg0] */ # 88: 5902
ret /* arg0 */ # 8a: 0df0
.literal_position # 8c: 00000000
# 90: 00000000
# 94: 08000000
# 98: 00000000
# Function @ .irom0.text+0x9c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc006: addi sp, sp, -16 /* (local0) */ # 9c: 12c1f0
movi a6, .Ldata001 # 9f: 61fbff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # a2: 0911
l32i a0, a6, 4 /* [.Ldata003] */ # a4: 0816
movi a5, 0 /* 0x00000000 */ # a6: 0c05
beqz a0, .Lbr010 # a8: 9c00
.Lbr009: l32i a4, a0, 8 # aa: 4820
sub a4, a2, a4 # ac: 4042c0
blti a4, 1, .Lbr011 # af: a6140b
mov a5, a0 # b2: 5d00
l32i a0, a0, 0 # b4: 0800
bnez a0, .Lbr009 # b6: 5600ff
j .Lbr011 # b9: 460000
.Lbr010: movi a5, 0 /* 0x00000000 */ # bc: 0c05
.Lbr011: s32i a3, sp, 0 /* arg1 -> [(local0)] */ # be: 3901
s32i a0, a3, 0 /* a0 -> [arg1] */ # c0: 0903
s32i a2, a3, 8 /* arg0 -> [arg1+0x8] */ # c2: 2923
beqz a5, .Lbr012 # c4: 8c35
s32i a3, a5, 0 # c6: 3905
j .Lbr013 # c8: 060200
.Lbr012: l32i a5, sp, 0 /* [(local0)] */ # cb: 5801
s32i a5, a6, 4 /* [(local0)] -> [.Ldata003] */ # cd: 5916
call0 .Lfunc005 # cf: 45f7ff
l32i a3, sp, 0 /* [(local0)] */ # d2: 3801
.Lbr013: l32i a6, a3, 0 # d4: 6803
l32i a0, sp, 4 /* [(local1)] */ # d6: 0811
bne a6, a3, .Lbr015 # d8: 379611
movi a2, .Lstr001 # db: 21edff
movi a3, .Lstr002 # de: 31edff
movi a4, 209 /* 0x000000d1 */ # e1: 42a0d1
call0 ets_printf # e4: 01edffc0
# e8: 0000
.Lbr014: j .Lbr014 /* (halt) */ # ea: 06ffff
.Lbr015: addi sp, sp, 16 /* (top of frame) */ # ed: 12c110
ret # f0: 0df0
.literal_position # f4: 14000000
# f8: 404b4c00
# fc: 40420f00
# 100: 00060060
# 104: 00000000
# 108: 00000000
# 10c: 00000000
# 110: 00000000
# Function @ .irom0.text+0x114
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_ets_timer_arm_ms_us
.type sdk_ets_timer_arm_ms_us, @function
sdk_ets_timer_arm_ms_us:
addi sp, sp, -16 /* (local0) */ # 114: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 117: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 119: d921
mov a12, a2 /* arg0 */ # 11b: cd02
mov a2, a3 /* arg1 */ # 11d: 2d03
mov a3, a4 /* arg2 */ # 11f: 3d04
l32i a4, a12, 0 /* [arg0] */ # 121: 480c
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 123: 0901
beqi a4, -1, .Lbr017 # 125: 26040d
movi a2, .Lstr003 # 128: 21f3ff
mov a3, a12 /* arg0 */ # 12b: 3d0c
call0 printf # 12d: 01f5ffc0
# 131: 0000
.Lbr016: j .Lbr016 /* (halt) */ # 133: 06ffff
.Lbr017: bnei a5, 1, .Lbr018 # 136: 661505
movi a0, 1000 /* 0x000003e8 */ # 139: 02a3e8
mull a2, a2, a0 # 13c: 002282
.Lbr018: beqz a2, .Lbr020 # 13f: ace2
s32i a3, sp, 12 /* arg2 -> [(local3)] */ # 141: 3931
movi a4, 858 /* 0x0000035a */ # 143: 42a35a
bgeu a4, a2, .Lbr019 # 146: 27b411
srli a13, a2, 2 # 149: 20d241
extui a0, a2, 0, 2 # 14c: 200014
addx4 a0, a0, a0 # 14f: 0000a0
addx4 a13, a13, a13 # 152: d0dda0
addx4 a13, a13, a0 # 155: 00dda0
j .Lbr021 # 158: c60500
.Lbr019: movi a4, 0x004c4b40 # 15b: 41e7ff
movi a3, 0x000f4240 # 15e: 31e7ff
mull a2, a2, a4 # 161: 402282
call0 __udivsi3 # 164: 01e9ffc0
# 168: 0000
mov a13, a2 # 16a: dd02
l32i a3, sp, 12 /* [(local3)] */ # 16c: 3831
j .Lbr021 # 16e: 460000
.Lbr020: movi a13, 0 /* 0x00000000 */ # 171: 0c0d
.Lbr021: beqz a3, .Lbr022 # 173: 8c03
s32i a13, a12, 12 /* a13 -> [arg0+0xc] */ # 175: d93c
.Lbr022: call0 vPortEnterCritical # 177: 01e5ffc0
# 17b: 0000
mov a3, a12 /* arg0 */ # 17d: 3d0c
movi a2, 0x60000600 # 17f: 21e0ff
memw # 182: c02000
l32i a2, a2, 36 /* [0x60000624] */ # 185: 2892
add a2, a13, a2 # 187: 2a2d
call0 .Lfunc006 # 189: 05f1ff
call0 vPortExitCritical # 18c: 01e1ffc0
# 190: 0000
l32i a12, sp, 4 /* [(local1)] */ # 192: c811
l32i a13, sp, 8 /* [(local2)] */ # 194: d821
l32i a0, sp, 0 /* [(local0)] */ # 196: 0801
addi sp, sp, 16 /* (top of frame) */ # 198: 12c110
ret # 19b: 0df0
.balign 4
# Function @ .irom0.text+0x1a0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_arm_us
.type sdk_ets_timer_arm_us, @function
sdk_ets_timer_arm_us:
movi a5, 0 /* 0x00000000 */ # 1a0: 0c05
addi sp, sp, -16 /* (local0) */ # 1a2: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1a5: 0901
call0 sdk_ets_timer_arm_ms_us # 1a7: 050000
l32i a0, sp, 0 /* [(local0)] */ # 1aa: 0801
addi sp, sp, 16 /* (top of frame) */ # 1ac: 12c110
ret # 1af: 0df0
.balign 4
# Function @ .irom0.text+0x1b4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_arm
.type sdk_ets_timer_arm, @function
sdk_ets_timer_arm:
movi a5, 1 /* 0x00000001 */ # 1b4: 0c15
addi sp, sp, -16 /* (local0) */ # 1b6: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b9: 0901
call0 sdk_ets_timer_arm_ms_us # 1bb: 050000
l32i a0, sp, 0 /* [(local0)] */ # 1be: 0801
addi sp, sp, 16 /* (top of frame) */ # 1c0: 12c110
ret # 1c3: 0df0
.literal_position # 1c8: 00000000
# 1cc: 00000000
# 1d0: 00000000
# Function @ .irom0.text+0x1d4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ets_timer_disarm
.type sdk_ets_timer_disarm, @function
sdk_ets_timer_disarm:
addi sp, sp, -16 /* (local0) */ # 1d4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d9: 0901
mov a12, a2 /* arg0 */ # 1db: cd02
call0 vPortEnterCritical # 1dd: 01fbffc0
# 1e1: 0000
movi a5, .Ldata001 # 1e3: 51f9ff
l32i a0, a5, 4 /* [.Ldata003] */ # 1e6: 0815
movi a2, 0 /* 0x00000000 */ # 1e8: 0c02
beqz a0, .Lbr024 # 1ea: 8cb0
.Lbr023: beq a12, a0, .Lbr025 # 1ec: 071c0b
mov a2, a0 # 1ef: 2d00
l32i a0, a0, 0 # 1f1: 0800
bnez a0, .Lbr023 # 1f3: 5650ff
j .Lbr027 # 1f6: 860300
.Lbr024: movi a2, 0 /* 0x00000000 */ # 1f9: 0c02
.Lbr025: beqz a0, .Lbr027 # 1fb: 8c90
l32i a0, a0, 0 # 1fd: 0800
bnez a2, .Lbr026 # 1ff: cc32
s32i a0, a5, 4 /* a0 -> [.Ldata003] */ # 201: 0915
j .Lbr027 # 203: 460000
.Lbr026: s32i a0, a2, 0 # 206: 0902
.Lbr027: call0 vPortExitCritical # 208: 01f2ffc0
# 20c: 0000
movi a0, 0 /* 0x00000000 */ # 20e: 0c00
movi a2, -1 /* 0xffffffff */ # 210: 7cf2
s32i a2, a12, 0 /* 0xffffffff -> [arg0] */ # 212: 290c
s32i a0, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 214: 093c
l32i a12, sp, 4 /* [(local1)] */ # 216: c811
l32i a0, sp, 0 /* [(local0)] */ # 218: 0801
addi sp, sp, 16 /* (top of frame) */ # 21a: 12c110
ret /* 0xffffffff */ # 21d: 0df0
.literal_position # 220: 00000000
# 224: 08000000
# 228: 00000000
# Function @ .irom0.text+0x22c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ets_timer_done
.type sdk_ets_timer_done, @function
sdk_ets_timer_done:
addi sp, sp, -16 /* (local0) */ # 22c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 22f: 0901
l32i a0, a2, 0 /* [arg0] */ # 231: 0802
beqi a0, -1, .Lbr029 # 233: 260011
movi a2, .Lstr001 # 236: 21faff
movi a3, .Lstr002 # 239: 31faff
movi a4, 288 /* 0x00000120 */ # 23c: 42a120
call0 ets_printf # 23f: 01faffc0
# 243: 0000
.Lbr028: j .Lbr028 /* (halt) */ # 245: 06ffff
.Lbr029: movi a3, 0 /* 0x00000000 */ # 248: 0c03
movi a4, 0 /* 0x00000000 */ # 24a: 0c04
call0 sdk_ets_timer_setfn # 24c: 050000
l32i a0, sp, 0 /* [(local0)] */ # 24f: 0801
addi sp, sp, 16 /* (top of frame) */ # 251: 12c110
ret # 254: 0df0
.literal_position # 258: 00060060
# 25c: 00000000
# 260: 00000000
# 264: 00000000
# 268: 00060060
# 26c: 00000000
# 270: 00000000
# 274: 00000000
# 278: 00000000
# Function @ .irom0.text+0x27c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ets_timer_handler_isr
.type sdk_ets_timer_handler_isr, @function
sdk_ets_timer_handler_isr:
addi sp, sp, -16 /* (local0) */ # 27c: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 27f: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 281: 0901
call0 vPortEnterCritical # 283: 01faffc0
# 287: 0000
movi a3, 0x60000600 # 289: 31f3ff
memw # 28c: c02000
movi a0, .Ldata001 # 28f: 01f3ff
l32i a5, a3, 36 /* [0x60000624] */ # 292: 5893
.Lbr030: l32i a12, a0, 4 /* [.Ldata003] */ # 294: c810
beqz a12, .Lbr033 # 296: 162c05
l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 299: 282c
sub a4, a2, a5 # 29b: 5042c0
bgei a4, 1, .Lbr032 # 29e: e61445
movi a5, -1 /* 0xffffffff */ # 2a1: 7cf5
movi a7, .Ldata001 # 2a3: 71efff
l32i a8, a12, 16 /* [[.Ldata003]+0x10] */ # 2a6: 884c
s32i a8, a7, 12 /* [[.Ldata003]+0x10] -> [sdk_debug_timerfn] */ # 2a8: 8937
s32i a12, a7, 8 /* [.Ldata003] -> [sdk_debug_timer] */ # 2aa: c927
l32i a6, a12, 0 /* [[.Ldata003]] */ # 2ac: 680c
s32i a6, a7, 4 /* [[.Ldata003]] -> [.Ldata003] */ # 2ae: 6917
s32i a5, a12, 0 /* 0xffffffff -> [[.Ldata003]] */ # 2b0: 590c
call0 vPortExitCritical # 2b2: 01efffc0
# 2b6: 0000
l32i a0, a12, 16 /* [[.Ldata003]+0x10] */ # 2b8: 084c
l32i a2, a12, 24 /* [[.Ldata003]+0x18] */ # 2ba: 286c
callx0 a0 /* [[.Ldata003]+0x10] */ # 2bc: c00000
call0 vPortEnterCritical # 2bf: 01edffc0
# 2c3: 0000
l32i a2, a12, 0 /* [[.Ldata003]] */ # 2c5: 280c
l32i a0, a12, 12 /* [[.Ldata003]+0xc] */ # 2c7: 083c
bnei a2, -1, .Lbr031 # 2c9: 66020c
beqz a0, .Lbr031 # 2cc: 8c90
l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 2ce: 282c
mov a3, a12 /* [.Ldata003] */ # 2d0: 3d0c
add a2, a2, a0 # 2d2: 0a22
s32i a2, a12, 8 /* a2 -> [[.Ldata003]+0x8] */ # 2d4: 292c
call0 .Lfunc006 # 2d6: 45dcff
.Lbr031: movi a0, .Ldata001 # 2d9: 01e2ff
memw # 2dc: c02000
movi a3, 0x60000600 # 2df: 31e2ff
l32i a5, a3, 36 /* [0x60000624] */ # 2e2: 5893
j .Lbr030 # 2e4: 06ebff
.Lbr032: beqz a12, .Lbr033 # 2e7: 8c1c
call0 .Lfunc005 # 2e9: 85d5ff
.Lbr033: call0 vPortExitCritical # 2ec: 01e3ffc0
# 2f0: 0000
l32i a12, sp, 4 /* [(local1)] */ # 2f2: c811
l32i a0, sp, 0 /* [(local0)] */ # 2f4: 0801
addi sp, sp, 16 /* (top of frame) */ # 2f6: 12c110
ret # 2f9: 0df0
.literal_position # 2fc: 00000000
# 300: 00000000
# Function @ .irom0.text+0x304
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc007: addi sp, sp, -16 /* (local0) */ # 304: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 307: c921
movi a12, .Ldata001 # 309: c1fcff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 30c: 0911
.Lbr034: l32i a2, a12, 16 /* [.Ldata004] */ # 30e: 284c
mov a3, sp /* (local0) */ # 310: 3d01
movi a4, -1 /* 0xffffffff */ # 312: 7cf4
movi a5, 0 /* 0x00000000 */ # 314: 0c05
call0 xQueueGenericReceive # 316: 01faffc0
# 31a: 0000
bnei a2, 1, .Lbr034 # 31c: 6612ee
l32i a0, sp, 0 /* [(local0)] */ # 31f: 0801
l32i a0, a0, 0 /* [[(local0)]] */ # 321: 0800
bnez a0, .Lbr035 # 323: cc30
movi a2, 0 /* 0x00000000 */ # 325: 0c02
call0 sdk_ets_timer_handler_isr # 327: 050000
.Lbr035: call0 .Lfunc003 # 32a: 05ceff
j .Lbr034 # 32d: 46f7ff
.literal_position # 330: 00000000
# 334: 54000000
# 338: 00000000
# 33c: 40000000
# 340: 04030000
# 344: 50000000
# 348: 00feef3f
# 34c: 00060060
# 350: 00000000
# 354: 00000000
# 358: 00000000
# 35c: 00000000
# 360: 00000000
# Function @ .irom0.text+0x364
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word[3] @ -0x1c
# (local2): word @ -0x10
# (local3): word[3] @ -0xc
.global sdk_ets_timer_init
.type sdk_ets_timer_init, @function
sdk_ets_timer_init:
movi a3, .Lfunc002 # 364: 31f4ff
addi sp, sp, -32 /* (local0) */ # 367: 12c1e0
movi a2, .Ldata001 # 36a: 21f1ff
s32i a0, sp, 20 /* a0 -> [(local3)] */ # 36d: 0951
movi a0, 0 /* 0x00000000 */ # 36f: 0c00
s32i a0, a2, 4 /* 0x00000000 -> [.Ldata003] */ # 371: 0912
movi a2, 10 /* 0x0000000a */ # 373: 0ca2
call0 _xt_isr_attach # 375: 01f6ffc0
# 379: 0000
movi a2, 4 /* 0x00000004 */ # 37b: 0c42
movi a3, 4 /* 0x00000004 */ # 37d: 0c43
movi a4, 0 /* 0x00000000 */ # 37f: 0c04
call0 xQueueGenericCreate # 381: 01f4ffc0
# 385: 0000
movi a5, 0 /* 0x00000000 */ # 387: 0c05
movi a6, 12 /* 0x0000000c */ # 389: 0cc6
addi a7, sp, 16 /* (local2) */ # 38b: 72c110
movi a4, .Ldata001 # 38e: 41eaff
movi a3, 0 /* 0x00000000 */ # 391: 0c03
s32i a2, a4, 16 /* a2 -> [.Ldata004] */ # 393: 2944
movi a4, 200 /* 0x000000c8 */ # 395: 42a0c8
s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 398: 3901
s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 39a: 3911
movi a2, .Lfunc007 # 39c: 21e9ff
movi a3, .Lstr006 # 39f: 31e7ff
call0 xTaskGenericCreate # 3a2: 01edffc0
# 3a6: 0000
movi a2, .Lstr007 # 3a8: 21e7ff
l32i a3, sp, 16 /* [(local2)] */ # 3ab: 3841
movi a4, 12 /* 0x0000000c */ # 3ad: 0cc4
movi a5, 200 /* 0x000000c8 */ # 3af: 52a0c8
call0 printf # 3b2: 01eaffc0
# 3b6: 0000
movi a6, 0x3feffe00 # 3b8: 61e4ff
movi a9, 0x60000600 # 3bb: 91e4ff
memw # 3be: c02000
movi a8, 0 /* 0x00000000 */ # 3c1: 0c08
s32i a8, a9, 48 /* 0x00000000 -> [0x60000630] */ # 3c3: 89c9
movi a10, 132 /* 0x00000084 */ # 3c5: a2a084
memw # 3c8: c02000
s32i a10, a9, 40 /* 0x00000084 -> [0x60000628] */ # 3cb: a9a9
memw # 3cd: c02000
s32i a8, a9, 32 /* 0x00000000 -> [0x60000620] */ # 3d0: 8989
movi a7, 4 /* 0x00000004 */ # 3d2: 0c47
memw # 3d4: c02000
l32i a5, a6, 0x204 /* [0x3ff00004] */ # 3d7: 522681
or a5, a5, a7 # 3da: 705520
memw # 3dd: c02000
s32i a5, a6, 0x204 /* a5 -> [0x3ff00004] */ # 3e0: 526681
movi a2, 1024 /* 0x00000400 */ # 3e3: 22a400
call0 sdk__xt_isr_unmask # 3e6: 01deffc0
# 3ea: 0000
l32i a0, sp, 20 /* [(local3)] */ # 3ec: 0851
addi sp, sp, 32 /* (top of frame) */ # 3ee: 12c120
ret # 3f1: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "%s %s \n" # 0: 25732025
# 4: 73200a00
.Lstr002: .asciz "ets_timer.c" # 8: 6574735f
# c: 74696d65
# 10: 722e6300
.Lstr003: .asciz "arm new %x %x\n" # 14: 61726d20
# 18: 6e657720
# 1c: 25782025
# 20: 780a00
.balign 4
.Lstr004: .asciz "TIMQ_NUL\n" # 24: 54494d51
# 28: 5f4e554c
# 2c: 0a00
.balign 4
.Lstr005: .asciz "TIMQ_FL:%d!!" # 30: 54494d51
# 34: 5f464c3a
# 38: 25642121
# 3c: 00
.balign 4
.Lstr006: .asciz "rtc_timer_task" # 40: 7274635f
# 44: 74696d65
# 48: 725f7461
# 4c: 736b00
.balign 4
.Lstr007: .asciz "frc2_timer_task_hdl:%x, prio:%d, stack:%d\n" # 50: 66726332
# 54: 5f74696d
# 58: 65725f74
# 5c: 61736b5f
# 60: 68646c3a
# 64: 25782c20
# 68: 7072696f
# 6c: 3a25642c
# 70: 20737461
# 74: 636b3a25
# 78: 640a00

150
binary_sdk/libmain/misc.S Normal file
View file

@ -0,0 +1,150 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.global sdk_os_get_cpu_frequency
.type sdk_os_get_cpu_frequency, @function
sdk_os_get_cpu_frequency:
movi a2, .Ldata001 # 4: 21ffff
l32i a2, a2, 0 /* [.Ldata001] */ # 7: 2802
ret /* [.Ldata001] */ # 9: 0df0
.section .data, "aw", @progbits
.Ldata001: .word 0x00000050 # 0: 50000000
.section .bss, "aw", @nobits
.global sdk__putc1
.type sdk__putc1, @object
sdk__putc1: .word 0x00000000 # 0: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_ets_delay_us
.type sdk_ets_delay_us, @function
sdk_ets_delay_us:
.global sdk_os_delay_us
.type sdk_os_delay_us, @function
sdk_os_delay_us:
addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # f: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13: 0901
mov a12, a2 /* arg0 */ # 15: cd02
call0 xthal_get_ccount # 17: 01fbffc0
# 1b: 0000
movi a0, .Ldata001 # 1d: 01f8ff
l32i a0, a0, 0 /* [.Ldata001] */ # 20: 0800
mov a13, a2 # 22: dd02
mull a12, a0, a12 # 24: c0c082
.Lbr001: call0 xthal_get_ccount # 27: 01f8ffc0
# 2b: 0000
sub a3, a2, a13 # 2d: d032c0
bltu a3, a12, .Lbr001 # 30: c733f3
l32i a12, sp, 4 /* [(local1)] */ # 33: c811
l32i a13, sp, 8 /* [(local2)] */ # 35: d821
l32i a0, sp, 0 /* [(local0)] */ # 37: 0801
addi sp, sp, 16 /* (top of frame) */ # 39: 12c110
ret # 3c: 0df0
.literal_position # 40: 00000000
# Function @ .irom0.text+0x44
.global sdk_ets_update_cpu_frequency
.type sdk_ets_update_cpu_frequency, @function
sdk_ets_update_cpu_frequency:
.global sdk_os_update_cpu_frequency
.type sdk_os_update_cpu_frequency, @function
sdk_os_update_cpu_frequency:
movi a3, .Ldata001 # 44: 31ffff
s32i a2, a3, 0 /* arg0 -> [.Ldata001] */ # 47: 2903
ret /* arg0 */ # 49: 0df0
.literal_position # 4c: 00000000
# Function @ .irom0.text+0x50
.global sdk_os_install_putc1
.type sdk_os_install_putc1, @function
sdk_os_install_putc1:
movi a3, sdk__putc1 # 50: 31ffff
s32i a2, a3, 0 /* arg0 -> [sdk__putc1] */ # 53: 2903
ret /* arg0 */ # 55: 0df0
.literal_position # 58: 00000000
# Function @ .irom0.text+0x5c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_os_putc
.type sdk_os_putc, @function
sdk_os_putc:
addi sp, sp, -16 /* (local0) */ # 5c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5f: 0901
movi a0, sdk__putc1 # 61: 01fdff
l32i a0, a0, 0 /* [sdk__putc1] */ # 64: 0800
callx0 a0 /* [sdk__putc1] */ # 66: c00000
l32i a0, sp, 0 /* [(local0)] */ # 69: 0801
addi sp, sp, 16 /* (top of frame) */ # 6b: 12c110
ret # 6e: 0df0
.literal_position # 70: 00020060
# Function @ .irom0.text+0x74
.global sdk_gpio_output_set
.type sdk_gpio_output_set, @function
sdk_gpio_output_set:
movi a6, 0x60000200 # 74: 61ffff
memw # 77: c02000
s32i a2, a6, 0x104 /* arg0 -> [0x60000304] */ # 7a: 226641
memw # 7d: c02000
s32i a3, a6, 0x108 /* arg1 -> [0x60000308] */ # 80: 326642
memw # 83: c02000
s32i a4, a6, 0x110 /* arg2 -> [0x60000310] */ # 86: 426644
memw # 89: c02000
s32i a5, a6, 0x114 /* arg3 -> [0x60000314] */ # 8c: 526645
ret /* arg0 */ # 8f: 0df0
.literal_position # 94: 00060060
# 98: ffffdfff
# Function @ .irom0.text+0x9c
.global sdk_rtc_get_reset_reason
.type sdk_rtc_get_reset_reason, @function
sdk_rtc_get_reset_reason:
movi a4, 0x60000600 # 9c: 41feff
memw # 9f: c02000
l32i a2, a4, 0x114 /* [0x60000714] */ # a2: 222445
extui a2, a2, 0, 4 # a5: 202034
bnei a2, 5, .Lbr003 # a8: 665224
memw # ab: c02000
l32i a3, a4, 0x118 /* [0x60000718] */ # ae: 322446
extui a3, a3, 8, 6 # b1: 303854
bnei a3, 1, .Lbr002 # b4: 661304
movi a2, 6 /* 0x00000006 */ # b7: 0c62
j .Lbr003 # b9: c60400
.Lbr002: memw # bc: c02000
l32i a6, a4, 0x118 /* [0x60000718] */ # bf: 622446
movi a5, 0 /* 0x00000000 */ # c2: 0c05
extui a6, a6, 8, 6 # c4: 606854
addi a6, a6, -8 # c7: 62c6f8
movnez a2, a5, a6 # ca: 602593
extui a2, a2, 0, 8 # cd: 202074
.Lbr003: movi a8, 0xffdfffff # d0: 81f2ff
memw # d3: c02000
l32i a7, a4, 0x108 /* [0x60000708] */ # d6: 722442
and a7, a7, a8 # d9: 807710
memw # dc: c02000
s32i a7, a4, 0x108 /* a7 -> [0x60000708] */ # df: 726442
ret # e2: 0df0

View file

@ -0,0 +1,217 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# Function @ .text+0x14
# Local variables/stack:
# (local0): word @ -0x50
# (local1): word @ -0x4c
# (local2): word @ -0x48
# (local3): word @ -0x44
# (local4): word[16] @ -0x40
.global vPortYield
.type vPortYield, @function
vPortYield: wsr a0, excsave1 # 14: 00d113
addi sp, sp, -80 /* (local0) */ # 17: 12c1b0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a: 0911
addi a0, sp, 80 /* (top of frame) */ # 1c: 02c150
s32i a0, sp, 16 /* (top of frame) -> [(local4)] */ # 1f: 0941
rsr a0, ps # 21: 00e603
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 24: 0921
rsr a0, excsave1 # 26: 00d103
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 29: 0931
movi a0, _xt_user_exit # 2b: 01f5ff
s32i a0, sp, 0 /* _xt_user_exit -> [(local0)] */ # 2e: 0901
call0 sdk__xt_int_enter # 30: 050000
call0 vPortEnterCritical # 33: 01f4ffc0
# 37: 0000
call0 vTaskSwitchContext # 39: 01f3ffc0
# 3d: 0000
call0 vPortExitCritical # 3f: 01f3ffc0
# 43: 0000
call0 sdk__xt_int_exit # 45: 01f2ffc0
# 49: 0000
ret # 4b: 0df0
.literal_position # 50: 00000000
# 54: 00000000
# 58: 00000000
# 5c: 00000000
# 60: 00000000
# 64: 00350c00
# 68: 00000000
# 6c: 00000000
# 70: 00350c00
# Function @ .text+0x74
.global sdk__xt_int_enter
.type sdk__xt_int_enter, @function
sdk__xt_int_enter:
s32i a12, sp, 60 /* a12 -> [(FP)+0x3c] */ # 74: c9f1
s32i a13, sp, 64 /* a13 -> [(FP)+0x40] */ # 76: d26110
mov a12, a0 # 79: cd00
call0 sdk__xt_context_save # 7b: 01f5ffc0
# 7f: 0000
movi a0, pxCurrentTCB # 81: 01f4ff
l32i a0, a0, 0 /* [pxCurrentTCB] */ # 84: 0800
s32i sp, a0, 0 /* (top of frame) -> [[pxCurrentTCB]] */ # 86: 1900
mov a0, a12 # 88: 0d0c
ret # 8a: 0df0
# Function @ .text+0x8c
.global sdk__xt_int_exit
.type sdk__xt_int_exit, @function
sdk__xt_int_exit:
s32i a14, sp, 68 /* a14 -> [(FP)+0x44] */ # 8c: e26111
s32i a15, sp, 72 /* a15 -> [(FP)+0x48] */ # 8f: f26112
movi sp, pxCurrentTCB # 92: 11f1ff
l32i sp, sp, 0 /* [pxCurrentTCB] */ # 95: 1801
l32i sp, sp, 0 /* [[pxCurrentTCB]] */ # 97: 1801
movi a14, pxCurrentTCB # 99: e1f0ff
l32i a14, a14, 0 /* [pxCurrentTCB] */ # 9c: e80e
addi a15, sp, 80 /* [[pxCurrentTCB]]+0x50 */ # 9e: f2c150
s32i a15, a14, 0 /* [[pxCurrentTCB]]+0x50 -> [[pxCurrentTCB]] */ # a1: f90e
call0 sdk__xt_context_restore # a3: 01efffc0
# a7: 0000
l32i a14, sp, 68 /* [[[pxCurrentTCB]]+0x44] */ # a9: e22111
l32i a15, sp, 72 /* [[[pxCurrentTCB]]+0x48] */ # ac: f22112
l32i a0, sp, 0 /* [[[pxCurrentTCB]]] */ # af: 0801
ret # b1: 0df0
.balign 4
# Function @ .text+0xb4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk__xt_timer_int
.type sdk__xt_timer_int, @function
sdk__xt_timer_int:
addi sp, sp, -16 /* (local0) */ # b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901
.Lbr001: movi a2, 0x000c3500 # b9: 21eaff
rsr a3, ccompare0 # bc: 30f003
add a4, a3, a2 # bf: 2a43
wsr a4, ccompare0 # c1: 40f013
esync # c4: 202000
s32i a2, sp, 4 /* 0x000c3500 -> [(local1)] */ # c7: 2911
s32i a3, sp, 8 /* a3 -> [(local2)] */ # c9: 3921
call0 xPortSysTickHandle # cb: 01e7ffc0
# cf: 0000
l32i a2, sp, 4 /* [(local1)] */ # d1: 2811
l32i a3, sp, 8 /* [(local2)] */ # d3: 3821
esync # d5: 202000
rsr a4, ccount # d8: 40ea03
sub a4, a4, a3 # db: 3044c0
blt a2, a4, .Lbr001 # de: 4722d7
l32i a0, sp, 0 /* [(local0)] */ # e1: 0801
addi sp, sp, 16 /* (top of frame) */ # e3: 12c110
ret /* [(local1)] */ # e6: 0df0
# Function @ .text+0xe8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk__xt_timer_int1
.type sdk__xt_timer_int1, @function
sdk__xt_timer_int1:
addi sp, sp, -16 /* (local0) */ # e8: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # eb: 0901
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # ed: 2911
s32i a3, sp, 8 /* arg1 -> [(local2)] */ # ef: 3921
call0 vTaskSwitchContext # f1: 01deffc0
# f5: 0000
l32i a2, sp, 4 /* [(local1)] */ # f7: 2811
l32i a3, sp, 8 /* [(local2)] */ # f9: 3821
l32i a0, sp, 0 /* [(local0)] */ # fb: 0801
addi sp, sp, 16 /* (top of frame) */ # fd: 12c110
ret /* [(local1)] */ # 100: 0df0
.balign 4
# Function @ .text+0x104
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_tick_timer_init
.type sdk__xt_tick_timer_init, @function
sdk__xt_tick_timer_init:
addi sp, sp, -16 /* (local0) */ # 104: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 107: 0901
movi a3, 0x000c3500 # 109: 31d9ff
rsr a2, ccount # 10c: 20ea03
add a2, a2, a3 # 10f: 3a22
wsr a2, ccompare0 # 111: 20f013
movi a2, 0 /* 0x00000000 */ # 114: 0c02
xsr a2, intenable # 116: 20e461
movi a3, 64 /* 0x00000040 */ # 119: 4c03
or a2, a2, a3 # 11b: 302220
wsr a2, intenable # 11e: 20e413
l32i a0, sp, 0 /* [(local0)] */ # 121: 0801
addi sp, sp, 16 /* (top of frame) */ # 123: 12c110
ret # 126: 0df0
# Function @ .text+0x128
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_isr_unmask
.type sdk__xt_isr_unmask, @function
sdk__xt_isr_unmask:
addi sp, sp, -16 /* (local0) */ # 128: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901
movi a3, 0 /* 0x00000000 */ # 12d: 0c03
xsr a3, intenable # 12f: 30e461
or a3, a2, a3 # 132: 303220
wsr a3, intenable # 135: 30e413
l32i a0, sp, 0 /* [(local0)] */ # 138: 0801
addi sp, sp, 16 /* (top of frame) */ # 13a: 12c110
ret /* arg0 */ # 13d: 0df0
.balign 4
# Function @ .text+0x140
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_isr_mask
.type sdk__xt_isr_mask, @function
sdk__xt_isr_mask:
addi sp, sp, -16 /* (local0) */ # 140: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 143: 0901
movi a3, 0 /* 0x00000000 */ # 145: 0c03
xsr a3, intenable # 147: 30e461
and a3, a2, a3 # 14a: 303210
wsr a3, intenable # 14d: 30e413
l32i a0, sp, 0 /* [(local0)] */ # 150: 0801
addi sp, sp, 16 /* (top of frame) */ # 152: 12c110
ret /* arg0 */ # 155: 0df0
.balign 4
# Function @ .text+0x158
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_read_ints
.type sdk__xt_read_ints, @function
sdk__xt_read_ints:
addi sp, sp, -16 /* (local0) */ # 158: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15b: 0901
rsr a2, interrupt # 15d: 20e203
l32i a0, sp, 0 /* [(local0)] */ # 160: 0801
addi sp, sp, 16 /* (top of frame) */ # 162: 12c110
ret # 165: 0df0
.balign 4
# Function @ .text+0x168
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk__xt_clear_ints
.type sdk__xt_clear_ints, @function
sdk__xt_clear_ints:
addi sp, sp, -16 /* (local0) */ # 168: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 16b: 0901
wsr a2, intclear # 16d: 20e313
l32i a0, sp, 0 /* [(local0)] */ # 170: 0801
addi sp, sp, 16 /* (top of frame) */ # 172: 12c110
ret # 175: 0df0

View file

@ -0,0 +1,538 @@
.section .text, "ax", @progbits
.literal_position # 0: ff9f6ffe
# 4: 00020060
# 8: 00200000
# c: 00000000
# 10: 00020060
# 14: 00200001
# 18: 00201000
# 1c: 00208000
# 20: 00600000
# 24: 00000000
# 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIReadModeCnfig
.type sdk_SPIReadModeCnfig, @function
sdk_SPIReadModeCnfig:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 31: c911
movi a4, 0xfe6f9fff # 33: 41f3ff
movi a3, 0x60000200 # 36: 31f3ff
memw # 39: c02000
l32i a0, a3, 8 /* [0x60000208] */ # 3c: 0823
and a0, a0, a4 # 3e: 400010
memw # 41: c02000
s32i a0, a3, 8 /* a0 -> [0x60000208] */ # 44: 0923
movi a0, sdk_flashchip # 46: 01f1ff
beqz a2, .Lbr004 # 49: 166204
beqi a2, 1, .Lbr005 # 4c: 261249
beqi a2, 2, .Lbr006 # 4f: 26224c
beqi a2, 3, .Lbr007 # 52: 26324f
addi a6, a2, -4 /* arg0-0x4 */ # 55: 62c2fc
movi a5, 0x00002000 # 58: 51ecff
movi a12, 0 /* 0x00000000 */ # 5b: 0c0c
moveqz a12, a5, a6 # 5d: 60c583
.Lbr001: beqz a2, .Lbr003 # 60: ac42
beqi a2, 1, .Lbr003 # 62: 261222
mov a2, a0 /* sdk_flashchip */ # 65: 2d00
call0 Disable_QMode # 67: 01efffc0
# 6b: 0000
.Lbr002: memw # 6d: c02000
movi a8, 0x60000200 # 70: 81e8ff
l32i a7, a8, 8 /* [0x60000208] */ # 73: 7828
or a7, a7, a12 # 75: c07720
memw # 78: c02000
s32i a7, a8, 8 /* a7 -> [0x60000208] */ # 7b: 7928
movi a2, 0 /* 0x00000000 */ # 7d: 0c02
l32i a12, sp, 4 /* [(local1)] */ # 7f: c811
l32i a0, sp, 0 /* [(local0)] */ # 81: 0801
addi sp, sp, 16 /* (top of frame) */ # 83: 12c110
ret /* 0x00000000 */ # 86: 0df0
.Lbr003: mov a2, a0 /* sdk_flashchip */ # 88: 2d00
call0 Enable_QMode # 8a: 01e7ffc0
# 8e: 0000
j .Lbr002 # 90: 46f6ff
.Lbr004: movi a12, 0x01002000 # 93: c1e0ff
j .Lbr001 # 96: 86f1ff
.Lbr005: movi a12, 0x00102000 # 99: c1dfff
j .Lbr001 # 9c: 06f0ff
.Lbr006: movi a12, 0x00802000 # 9f: c1dfff
j .Lbr001 # a2: 86eeff
.Lbr007: movi a12, 0x00006000 # a5: c1deff
j .Lbr001 # a8: 06edff
.literal_position # ac: 00000000
# b0: 00000000
# b4: 00000000
# b8: 00000000
# bc: 00000000
# c0: 00000000
# c4: 00000000
# c8: 00000000
# cc: 00000000
# d0: 00000000
# d4: 00000000
# Function @ .text+0xd8
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word @ -0x10
# (local9): word[3] @ -0xc
.global sdk_SPIWrite
.type sdk_SPIWrite, @function
sdk_SPIWrite:
mov a5, a4 /* arg2 */ # d8: 5d04
addi sp, sp, -48 /* (local0) */ # da: 12c1d0
s32i a12, sp, 16 /* a12 -> [(local4)] */ # dd: c941
s32i a14, sp, 24 /* a14 -> [(local6)] */ # df: e961
s32i a3, sp, 36 /* arg1 -> [(local9)] */ # e1: 3991
s32i a0, sp, 12 /* a0 -> [(local3)] */ # e3: 0931
movi a4, sdk_flashchip # e5: 41f1ff
s32i a15, sp, 28 /* a15 -> [(local7)] */ # e8: f971
s32i a13, sp, 20 /* a13 -> [(local5)] */ # ea: d951
mov a15, a3 /* arg1 */ # ec: fd03
mov a13, a2 /* arg0 */ # ee: dd02
l32i a0, a4, 4 /* [.Ldata001] */ # f0: 0814
add a2, a5, a2 # f2: 2a25
bltu a0, a2, .Lbr008 # f4: 273002
j .Lbr014 # f7: 462000
.Lbr008: movi a2, 1 /* 0x00000001 */ # fa: 0c12
j .Lbr013 # fc: 461b00
.Lbr009: movi a2, sdk_flashchip # ff: 21ecff
mov a3, a13 /* arg0 */ # 102: 3d0d
mov a4, a15 /* arg1 */ # 104: 4d0f
mov a5, a12 # 106: 5d0c
call0 SPI_page_program # 108: 01eeffc0
# 10c: 0000
bnez a2, .Lbr008 # 10e: 5682fe
l32i a2, sp, 8 /* [(local2)] */ # 111: 2821
mov a3, a14 /* [.Ldata003] */ # 113: 3d0e
sub a2, a2, a12 # 115: c022c0
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 118: 2901
call0 __udivsi3 # 11a: 01eaffc0
# 11e: 0000
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 120: 2911
beqz a2, .Lbr011 # 122: acf2
movi a3, 0 /* 0x00000000 */ # 124: 0c03
s32i a3, sp, 32 /* 0x00000000 -> [(local8)] */ # 126: 3981
.Lbr010: movi a2, sdk_flashchip # 128: 21e3ff
add a3, a13, a12 # 12b: ca3d
mov a5, a14 /* [.Ldata003] */ # 12d: 5d0e
srli a4, a12, 2 # 12f: c04241
addx4 a4, a4, a15 # 132: f044a0
call0 SPI_page_program # 135: 01e4ffc0
# 139: 0000
bnez a2, .Lbr008 # 13b: 56b2fb
add a12, a14, a12 # 13e: cace
l32i a6, sp, 32 /* [(local8)] */ # 140: 6881
l32i a5, sp, 4 /* [(local1)] */ # 142: 5811
addi a7, a6, 1 /* [(local8)]+0x1 */ # 144: 1b76
extui a6, a7, 0, 8 # 146: 706074
s32i a6, sp, 32 /* a6 -> [(local8)] */ # 149: 6981
bne a5, a6, .Lbr010 # 14b: 6795d9
l32i a8, sp, 8 /* [(local2)] */ # 14e: 8821
sub a8, a8, a12 # 150: c088c0
s32i a8, sp, 0 /* a8 -> [(local0)] */ # 153: 8901
.Lbr011: add a3, a13, a12 # 155: ca3d
movi a2, sdk_flashchip # 157: 21d8ff
l32i a5, sp, 0 /* [(local0)] */ # 15a: 5801
srli a4, a12, 2 # 15c: c04241
addx4 a4, a4, a15 # 15f: f044a0
call0 SPI_page_program # 162: 01daffc0
# 166: 0000
bnez a2, .Lbr008 # 168: 56e2f8
.Lbr012: movi a2, 0 /* 0x00000000 */ # 16b: 0c02
.Lbr013: l32i a12, sp, 16 /* [(local4)] */ # 16d: c841
l32i a13, sp, 20 /* [(local5)] */ # 16f: d851
l32i a14, sp, 24 /* [(local6)] */ # 171: e861
l32i a15, sp, 28 /* [(local7)] */ # 173: f871
l32i a0, sp, 12 /* [(local3)] */ # 175: 0831
addi sp, sp, 48 /* (top of frame) */ # 177: 12c130
ret # 17a: 0df0
.Lbr014: mov a2, a13 /* arg0 */ # 17c: 2d0d
l32i a14, a4, 16 /* [.Ldata003] */ # 17e: e844
s32i a5, sp, 8 /* arg2 -> [(local2)] */ # 180: 5921
mov a3, a14 /* [.Ldata003] */ # 182: 3d0e
call0 __umodsi3 # 184: 01d3ffc0
# 188: 0000
l32i a5, sp, 8 /* [(local2)] */ # 18a: 5821
sub a12, a14, a2 # 18c: 20cec0
bltu a5, a12, .Lbr015 # 18f: c73502
j .Lbr009 # 192: 46daff
.Lbr015: mov a4, a15 /* arg1 */ # 195: 4d0f
mov a3, a13 /* arg0 */ # 197: 3d0d
movi a2, sdk_flashchip # 199: 21c8ff
call0 SPI_page_program # 19c: 01ceffc0
# 1a0: 0000
bnez a2, .Lbr008 # 1a2: 5642f5
j .Lbr012 # 1a5: 86f0ff
.literal_position # 1a8: 00000000
# 1ac: 00000000
# Function @ .text+0x1b0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_SPIRead
.type sdk_SPIRead, @function
sdk_SPIRead:
mov a5, a4 /* arg2 */ # 1b0: 5d04
mov a7, a3 /* arg1 */ # 1b2: 7d03
addi sp, sp, -16 /* (local0) */ # 1b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b7: 0901
mov a3, a2 /* arg0 */ # 1b9: 3d02
mov a4, a7 /* arg1 */ # 1bb: 4d07
movi a2, sdk_flashchip # 1bd: 21faff
call0 SPI_read_data # 1c0: 01fbffc0
# 1c4: 0000
movi a4, 0 /* 0x00000000 */ # 1c6: 0c04
l32i a3, sp, 0 /* [(local0)] */ # 1c8: 3801
movi a0, 1 /* 0x00000001 */ # 1ca: 0c10
addi sp, sp, 16 /* (top of frame) */ # 1cc: 12c110
moveqz a0, a4, a2 # 1cf: 200483
mov a2, a0 # 1d2: 2d00
mov a0, a3 /* [(local0)] */ # 1d4: 0d03
ret # 1d6: 0df0
.literal_position # 1d8: 00000000
# 1dc: 00000000
# 1e0: 00000000
# 1e4: 00000000
# 1e8: 00000000
# 1ec: 00000000
# Function @ .text+0x1f0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_SPIEraseSector
.type sdk_SPIEraseSector, @function
sdk_SPIEraseSector:
addi sp, sp, -16 /* (local0) */ # 1f0: 12c1f0
movi a3, sdk_flashchip # 1f3: 31f9ff
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f6: c911
mov a12, a2 /* arg0 */ # 1f8: cd02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1fa: 0901
l32i a2, a3, 4 /* [.Ldata001] */ # 1fc: 2813
l32i a3, a3, 12 /* [.Ldata002] */ # 1fe: 3833
call0 __udivsi3 # 200: 01f9ffc0
# 204: 0000
bgeu a12, a2, .Lbr016 # 206: 27bc1f
movi a2, sdk_flashchip # 209: 21f4ff
call0 SPI_write_enable # 20c: 01f7ffc0
# 210: 0000
bnez a2, .Lbr016 # 212: dc32
movi a2, sdk_flashchip # 214: 21f3ff
l32i a3, a2, 12 /* [.Ldata002] */ # 217: 3832
mull a3, a3, a12 # 219: c03382
call0 SPI_sector_erase # 21c: 01f4ffc0
# 220: 0000
bnez a2, .Lbr016 # 222: cc32
movi a2, 0 /* 0x00000000 */ # 224: 0c02
j .Lbr017 # 226: 460000
.Lbr016: movi a2, 1 /* 0x00000001 */ # 229: 0c12
.Lbr017: l32i a12, sp, 4 /* [(local1)] */ # 22b: c811
l32i a0, sp, 0 /* [(local0)] */ # 22d: 0801
addi sp, sp, 16 /* (top of frame) */ # 22f: 12c110
ret # 232: 0df0
.literal_position # 234: 00000000
# 238: 00020060
# 23c: 00000010
# 240: ffffff00
# 244: 00000000
# 248: 00000000
# 24c: 00000000
# 250: 00000000
# 254: 00000000
# Function @ .text+0x258
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_spi_flash_get_id
.type sdk_spi_flash_get_id, @function
sdk_spi_flash_get_id:
addi sp, sp, -16 /* (local0) */ # 258: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 25b: 0911
call0 vPortEnterCritical # 25d: 01f9ffc0
# 261: 0000
call0 Cache_Read_Disable # 263: 01f9ffc0
# 267: 0000
movi a2, sdk_flashchip # 269: 21f2ff
call0 Wait_SPI_Idle # 26c: 01f8ffc0
# 270: 0000
movi a4, 0 /* 0x00000000 */ # 272: 0c04
movi a0, 0x60000200 # 274: 01f1ff
memw # 277: c02000
s32i a4, a0, 64 /* 0x00000000 -> [0x60000240] */ # 27a: 426010
movi a3, 0x10000000 # 27d: 31efff
memw # 280: c02000
s32i a3, a0, 0 /* 0x10000000 -> [0x60000200] */ # 283: 3900
memw # 285: c02000
l32i a2, a0, 0 /* [0x60000200] */ # 288: 2800
beqz a2, .Lbr019 # 28a: 8c62
.Lbr018: memw # 28c: c02000
l32i a5, a0, 0 /* [0x60000200] */ # 28f: 5800
bnez a5, .Lbr018 # 291: 5675ff
.Lbr019: movi a7, 0x00ffffff # 294: 71ebff
memw # 297: c02000
movi a2, 0 /* 0x00000000 */ # 29a: 0c02
movi a3, 0 /* 0x00000000 */ # 29c: 0c03
l32i a6, a0, 64 /* [0x60000240] */ # 29e: 622010
movi a4, 1 /* 0x00000001 */ # 2a1: 0c14
and a6, a6, a7 # 2a3: 706610
s32i a6, sp, 0 /* a6 -> [(local0)] */ # 2a6: 6901
call0 Cache_Read_Enable # 2a8: 01eaffc0
# 2ac: 0000
call0 vPortExitCritical # 2ae: 01e9ffc0
# 2b2: 0000
l32i a8, sp, 4 /* [(local1)] */ # 2b4: 8811
l32i a2, sp, 0 /* [(local0)] */ # 2b6: 2801
mov a0, a8 /* [(local1)] */ # 2b8: 0d08
addi sp, sp, 16 /* (top of frame) */ # 2ba: 12c110
ret /* [(local0)] */ # 2bd: 0df0
.literal_position # 2c0: 00000000
# 2c4: 00000000
# 2c8: 00000000
# 2cc: 00000000
# 2d0: 00000000
# 2d4: 00000000
# Function @ .text+0x2d8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_read_status
.type sdk_spi_flash_read_status, @function
sdk_spi_flash_read_status:
addi sp, sp, -16 /* (local0) */ # 2d8: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 2db: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 2dd: 0921
call0 vPortEnterCritical # 2df: 01f9ffc0
# 2e3: 0000
call0 Cache_Read_Disable # 2e5: 01f8ffc0
# 2e9: 0000
movi a2, sdk_flashchip # 2eb: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 2ee: 3801
call0 SPI_read_status # 2f0: 01f7ffc0
# 2f4: 0000
movi a3, 0 /* 0x00000000 */ # 2f6: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 2f8: 2911
movi a4, 1 /* 0x00000001 */ # 2fa: 0c14
movi a2, 0 /* 0x00000000 */ # 2fc: 0c02
call0 Cache_Read_Enable # 2fe: 01f4ffc0
# 302: 0000
call0 vPortExitCritical # 304: 01f4ffc0
# 308: 0000
l32i a3, sp, 8 /* [(local2)] */ # 30a: 3821
l32i a2, sp, 4 /* [(local1)] */ # 30c: 2811
mov a0, a3 /* [(local2)] */ # 30e: 0d03
addi sp, sp, 16 /* (top of frame) */ # 310: 12c110
ret /* [(local1)] */ # 313: 0df0
.literal_position # 318: 00000000
# 31c: 00000000
# 320: 00000000
# 324: 00000000
# 328: 00000000
# 32c: 00000000
# Function @ .text+0x330
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_write_status
.type sdk_spi_flash_write_status, @function
sdk_spi_flash_write_status:
addi sp, sp, -16 /* (local0) */ # 330: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 333: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 335: 0921
call0 vPortEnterCritical # 337: 01f9ffc0
# 33b: 0000
call0 Cache_Read_Disable # 33d: 01f8ffc0
# 341: 0000
movi a2, sdk_flashchip # 343: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 346: 3801
call0 SPI_write_status # 348: 01f7ffc0
# 34c: 0000
movi a3, 0 /* 0x00000000 */ # 34e: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 350: 2911
movi a4, 1 /* 0x00000001 */ # 352: 0c14
movi a2, 0 /* 0x00000000 */ # 354: 0c02
call0 Cache_Read_Enable # 356: 01f4ffc0
# 35a: 0000
call0 vPortExitCritical # 35c: 01f4ffc0
# 360: 0000
l32i a3, sp, 8 /* [(local2)] */ # 362: 3821
l32i a2, sp, 4 /* [(local1)] */ # 364: 2811
mov a0, a3 /* [(local2)] */ # 366: 0d03
addi sp, sp, 16 /* (top of frame) */ # 368: 12c110
ret /* [(local1)] */ # 36b: 0df0
.literal_position # 370: 00000000
# 374: 00000000
# 378: 00000000
# 37c: 00000000
# Function @ .text+0x380
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_spi_flash_erase_sector
.type sdk_spi_flash_erase_sector, @function
sdk_spi_flash_erase_sector:
addi sp, sp, -16 /* (local0) */ # 380: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 383: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 385: 0921
call0 vPortEnterCritical # 387: 01faffc0
# 38b: 0000
call0 Cache_Read_Disable # 38d: 01f9ffc0
# 391: 0000
l32i a2, sp, 0 /* [(local0)] */ # 393: 2801
call0 sdk_SPIEraseSector # 395: 050000
movi a3, 0 /* 0x00000000 */ # 398: 0c03
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 39a: 2911
movi a4, 1 /* 0x00000001 */ # 39c: 0c14
movi a2, 0 /* 0x00000000 */ # 39e: 0c02
call0 Cache_Read_Enable # 3a0: 01f6ffc0
# 3a4: 0000
call0 vPortExitCritical # 3a6: 01f5ffc0
# 3aa: 0000
l32i a3, sp, 8 /* [(local2)] */ # 3ac: 3821
l32i a2, sp, 4 /* [(local1)] */ # 3ae: 2811
mov a0, a3 /* [(local2)] */ # 3b0: 0d03
addi sp, sp, 16 /* (top of frame) */ # 3b2: 12c110
ret /* [(local1)] */ # 3b5: 0df0
.literal_position # 3b8: 00000000
# 3bc: 00000000
# 3c0: 00000000
# 3c4: 00000000
# Function @ .text+0x3c8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_write
.type sdk_spi_flash_write, @function
sdk_spi_flash_write:
addi sp, sp, -16 /* (local0) */ # 3c8: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3cb: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3cd: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3cf: c921
mov a13, a3 /* arg1 */ # 3d1: dd03
mov a12, a4 /* arg2 */ # 3d3: cd04
bnez a3, .Lbr020 # 3d5: cc33
movi a2, 1 /* 0x00000001 */ # 3d7: 0c12
j .Lbr022 # 3d9: 460e00
.Lbr020: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 3dc: 2901
movi a0, 3 /* 0x00000003 */ # 3de: 0c30
bnone a0, a4, .Lbr021 # 3e0: 470007
movi a0, 4 /* 0x00000004 */ # 3e3: 0c40
srli a12, a4, 2 # 3e5: 40c241
addx4 a12, a12, a0 # 3e8: 00cca0
.Lbr021: call0 vPortEnterCritical # 3eb: 01f3ffc0
# 3ef: 0000
call0 Cache_Read_Disable # 3f1: 01f2ffc0
# 3f5: 0000
mov a4, a12 # 3f7: 4d0c
mov a3, a13 /* arg1 */ # 3f9: 3d0d
l32i a2, sp, 0 /* [(local0)] */ # 3fb: 2801
call0 sdk_SPIWrite # 3fd: 050000
movi a3, 0 /* 0x00000000 */ # 400: 0c03
mov a12, a2 # 402: cd02
movi a4, 1 /* 0x00000001 */ # 404: 0c14
movi a2, 0 /* 0x00000000 */ # 406: 0c02
call0 Cache_Read_Enable # 408: 01eeffc0
# 40c: 0000
call0 vPortExitCritical # 40e: 01edffc0
# 412: 0000
mov a2, a12 # 414: 2d0c
.Lbr022: l32i a12, sp, 8 /* [(local2)] */ # 416: c821
l32i a13, sp, 12 /* [(local3)] */ # 418: d831
l32i a0, sp, 4 /* [(local1)] */ # 41a: 0811
addi sp, sp, 16 /* (top of frame) */ # 41c: 12c110
ret # 41f: 0df0
.literal_position # 424: 00000000
# 428: 00000000
# 42c: 00000000
# 430: 00000000
# Function @ .text+0x434
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_spi_flash_read
.type sdk_spi_flash_read, @function
sdk_spi_flash_read:
addi sp, sp, -16 /* (local0) */ # 434: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 437: 0921
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 439: 4901
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 43b: c931
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 43d: 2911
mov a12, a3 /* arg1 */ # 43f: cd03
bnez a3, .Lbr023 # 441: cc33
movi a2, 1 /* 0x00000001 */ # 443: 0c12
j .Lbr024 # 445: 860a00
.Lbr023: call0 vPortEnterCritical # 448: 01f7ffc0
# 44c: 0000
call0 Cache_Read_Disable # 44e: 01f6ffc0
# 452: 0000
mov a3, a12 /* arg1 */ # 454: 3d0c
l32i a2, sp, 4 /* [(local1)] */ # 456: 2811
l32i a4, sp, 0 /* [(local0)] */ # 458: 4801
call0 sdk_SPIRead # 45a: 050000
movi a3, 0 /* 0x00000000 */ # 45d: 0c03
mov a12, a2 # 45f: cd02
movi a4, 1 /* 0x00000001 */ # 461: 0c14
movi a2, 0 /* 0x00000000 */ # 463: 0c02
call0 Cache_Read_Enable # 465: 01f1ffc0
# 469: 0000
call0 vPortExitCritical # 46b: 01f1ffc0
# 46f: 0000
mov a2, a12 # 471: 2d0c
.Lbr024: l32i a12, sp, 12 /* [(local3)] */ # 473: c831
l32i a0, sp, 8 /* [(local2)] */ # 475: 0821
addi sp, sp, 16 /* (top of frame) */ # 477: 12c110
ret # 47a: 0df0
.section .data, "aw", @progbits
.global sdk_flashchip
.type sdk_flashchip, @object
sdk_flashchip:
.word 0x001640ef # 0: ef401600
.Ldata001: .word 0x00400000 # 4: 00004000
# NOTE: The following is apparently unreferenced code/data
.word 0x00010000 # 8: 00000100
.Ldata002: .word 0x00001000 # c: 00100000
.Ldata003: .word 0x00000100 # 10: 00010000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000ffff # 14: ffff0000

229
binary_sdk/libmain/timers.S Normal file
View file

@ -0,0 +1,229 @@
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# Function @ .irom0.text+0x14
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_os_timer_setfn
.type sdk_os_timer_setfn, @function
sdk_os_timer_setfn:
addi sp, sp, -32 /* (local0) */ # 14: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 19: e931
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d: c911
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1f: f941
movi a15, .Ldata001 # 21: f1f7ff
mov a12, a2 /* arg0 */ # 24: cd02
l32i a13, a15, 0 /* [.Ldata001] */ # 26: d80f
mov a14, a4 /* arg2 */ # 28: ed04
beqz a13, .Lbr006 # 2a: 16fd04
.Lbr001: l32i a0, a13, 4 # 2d: 081d
bne a0, a12, .Lbr005 # 2f: c79041
l32i a2, a12, 24 /* [arg0+0x18] */ # 32: 286c
l32i a4, a12, 16 /* [arg0+0x10] */ # 34: 484c
bne a2, a14, .Lbr002 # 36: e79202
beq a4, a3, .Lbr007 # 39: 37145f
.Lbr002: l32i a2, a12, 4 /* [arg0+0x4] */ # 3c: 281c
s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 3e: 3951
beqz a2, .Lbr004 # 40: ac32
movi a3, 3 /* 0x00000003 */ # 42: 0c33
movi a4, 0 /* 0x00000000 */ # 44: 0c04
movi a5, 0 /* 0x00000000 */ # 46: 0c05
movi a6, 50 /* 0x00000032 */ # 48: 3c26
call0 xTimerGenericCommand # 4a: 01efffc0
# 4e: 0000
l32i a3, sp, 20 /* [(local5)] */ # 50: 3851
bnez a2, .Lbr003 # 52: cc92
movi a2, .Lstr001 # 54: 21ecff
call0 printf # 57: 01edffc0
# 5b: 0000
l32i a3, sp, 20 /* [(local5)] */ # 5d: 3851
.Lbr003: l8ui a5, a15, 4 /* [.Ldata002] */ # 5f: 520f04
addi a5, a5, -1 /* [.Ldata002]-0x1 */ # 62: 0b55
s8i a5, a15, 4 /* [.Ldata002]-0x1 -> [.Ldata002] */ # 64: 524f04
.Lbr004: s32i a3, a12, 16 /* a3 -> [arg0+0x10] */ # 67: 394c
s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 69: e96c
movi a6, 0 /* 0x00000000 */ # 6b: 0c06
s32i a6, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 6d: 691c
s32i a6, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 6f: 693c
j .Lbr007 # 71: c60900
.Lbr005: l32i a0, a13, 0 # 74: 080d
beqz a0, .Lbr006 # 76: 8c30
mov a13, a0 # 78: dd00
bnez a0, .Lbr001 # 7a: 56f0fa
.Lbr006: s32i a3, a12, 16 /* arg1 -> [arg0+0x10] */ # 7d: 394c
s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 7f: e96c
movi a2, 8 /* 0x00000008 */ # 81: 0c82
movi a7, 0 /* 0x00000000 */ # 83: 0c07
s32i a7, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 85: 791c
s32i a7, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 87: 793c
call0 pvPortMalloc # 89: 01e1ffc0
# 8d: 0000
s32i a12, a2, 4 # 8f: c912
movi a9, 0 /* 0x00000000 */ # 91: 0c09
l32i a8, a15, 0 /* [.Ldata001] */ # 93: 880f
s32i a9, a2, 0 # 95: 9902
movnez a15, a13, a8 # 97: 80fd93
s32i a2, a15, 0 # 9a: 290f
.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # 9c: c811
l32i a13, sp, 8 /* [(local2)] */ # 9e: d821
l32i a14, sp, 12 /* [(local3)] */ # a0: e831
l32i a15, sp, 16 /* [(local4)] */ # a2: f841
l32i a0, sp, 0 /* [(local0)] */ # a4: 0801
addi sp, sp, 32 /* (top of frame) */ # a6: 12c120
ret # a9: 0df0
.literal_position # ac: 00000000
# b0: 18000000
# b4: 00000000
# b8: 00000000
# bc: 00000000
# c0: 00000000
# c4: 00000000
# c8: 00000000
# cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_os_timer_arm
.type sdk_os_timer_arm, @function
sdk_os_timer_arm:
addi sp, sp, -32 /* (local0) */ # d0: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # d5: d921
s32i a15, sp, 16 /* a15 -> [(local4)] */ # d7: f941
s32i a12, sp, 4 /* a12 -> [(local1)] */ # d9: c911
s32i a14, sp, 12 /* a14 -> [(local3)] */ # db: e931
mov a12, a2 /* arg0 */ # dd: cd02
mov a14, a3 /* arg1 */ # df: ed03
l32i a15, a2, 4 /* [arg0+0x4] */ # e1: f812
mov a13, a4 /* arg2 */ # e3: dd04
bnez a15, .Lbr008 # e5: ecff
s8i a4, a2, 20 /* arg2 -> [arg0+0x14] */ # e7: 424214
s32i a3, a2, 12 /* arg1 -> [arg0+0xc] */ # ea: 3932
mov a2, a3 /* arg1 */ # ec: 2d03
movi a3, 10 /* 0x0000000a */ # ee: 0ca3
call0 __udivsi3 # f0: 01f1ffc0
# f4: 0000
mov a4, a13 /* arg2 */ # f6: 4d0d
l32i a5, a12, 24 /* [arg0+0x18] */ # f8: 586c
mov a3, a2 # fa: 3d02
l32i a6, a12, 16 /* [arg0+0x10] */ # fc: 684c
movi a2, 0 /* 0x00000000 */ # fe: 0c02
call0 xTimerCreate # 100: 01eeffc0
# 104: 0000
movi a3, .Ldata001 # 106: 31e9ff
mov a15, a2 # 109: fd02
l8ui a0, a3, 4 /* [.Ldata002] */ # 10b: 020304
s32i a2, a12, 4 /* a2 -> [arg0+0x4] */ # 10e: 291c
addi a0, a0, 1 /* [.Ldata002]+0x1 */ # 110: 1b00
s8i a0, a3, 4 /* [.Ldata002]+0x1 -> [.Ldata002] */ # 112: 024304
beqz a2, .Lbr011 # 115: 16c204
.Lbr008: l8ui a3, a12, 20 /* [arg0+0x14] */ # 118: 320c14
beq a3, a13, .Lbr009 # 11b: d71304
s8i a13, a12, 20 /* arg2 -> [arg0+0x14] */ # 11e: d24c14
s32i a13, a15, 28 # 121: d97f
.Lbr009: l32i a4, a12, 12 /* [arg0+0xc] */ # 123: 483c
beq a4, a14, .Lbr010 # 125: e7141b
mov a2, a14 /* arg1 */ # 128: 2d0e
s32i a14, a12, 12 /* arg1 -> [arg0+0xc] */ # 12a: e93c
movi a3, 10 /* 0x0000000a */ # 12c: 0ca3
call0 __udivsi3 # 12e: 01e3ffc0
# 132: 0000
movi a3, 2 /* 0x00000002 */ # 134: 0c23
movi a5, 0 /* 0x00000000 */ # 136: 0c05
mov a4, a2 # 138: 4d02
movi a6, 10 /* 0x0000000a */ # 13a: 0ca6
mov a2, a15 # 13c: 2d0f
call0 xTimerGenericCommand # 13e: 01e0ffc0
# 142: 0000
.Lbr010: call0 xTaskGetTickCount # 144: 01e0ffc0
# 148: 0000
movi a3, 0 /* 0x00000000 */ # 14a: 0c03
movi a5, 0 /* 0x00000000 */ # 14c: 0c05
mov a4, a2 # 14e: 4d02
movi a6, 50 /* 0x00000032 */ # 150: 3c26
l32i a2, a12, 4 /* [arg0+0x4] */ # 152: 281c
call0 xTimerGenericCommand # 154: 01ddffc0
# 158: 0000
bnez a2, .Lbr011 # 15a: cc72
movi a2, .Lstr002 # 15c: 21d5ff
call0 printf # 15f: 01dbffc0
# 163: 0000
.Lbr011: l32i a12, sp, 4 /* [(local1)] */ # 165: c811
l32i a13, sp, 8 /* [(local2)] */ # 167: d821
l32i a14, sp, 12 /* [(local3)] */ # 169: e831
l32i a15, sp, 16 /* [(local4)] */ # 16b: f841
l32i a0, sp, 0 /* [(local0)] */ # 16d: 0801
addi sp, sp, 32 /* (top of frame) */ # 16f: 12c120
ret # 172: 0df0
.literal_position # 174: 2c000000
# 178: 00000000
# 17c: 00000000
# Function @ .irom0.text+0x180
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_os_timer_disarm
.type sdk_os_timer_disarm, @function
sdk_os_timer_disarm:
addi sp, sp, -16 /* (local0) */ # 180: 12c1f0
l32i a2, a2, 4 /* [arg0+0x4] */ # 183: 2812
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 185: 0901
beqz a2, .Lbr012 # 187: 9c72
movi a3, 1 /* 0x00000001 */ # 189: 0c13
movi a4, 0 /* 0x00000000 */ # 18b: 0c04
movi a5, 0 /* 0x00000000 */ # 18d: 0c05
movi a6, 50 /* 0x00000032 */ # 18f: 3c26
call0 xTimerGenericCommand # 191: 01f9ffc0
# 195: 0000
bnez a2, .Lbr012 # 197: cc72
movi a2, .Lstr003 # 199: 21f6ff
call0 printf # 19c: 01f8ffc0
# 1a0: 0000
.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 1a2: 0801
addi sp, sp, 16 /* (top of frame) */ # 1a4: 12c110
ret # 1a7: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "Timer Delete Failed\n" # 0: 54696d65
# 4: 72204465
# 8: 6c657465
# c: 20466169
# 10: 6c65640a
# 14: 00
.balign 4
.Lstr002: .asciz "Timer Start Failed\n" # 18: 54696d65
# 1c: 72205374
# 20: 61727420
# 24: 4661696c
# 28: 65640a00
.Lstr003: .asciz "Timer Stop Failed\n" # 2c: 54696d65
# 30: 72205374
# 34: 6f702046
# 38: 61696c65
# 3c: 640a00

44
binary_sdk/libmain/uart.S Normal file
View file

@ -0,0 +1,44 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_uart_buff_switch
.type sdk_uart_buff_switch, @function
sdk_uart_buff_switch:
ret /* arg0 */ # 0: 0df0
.literal_position # 4: 000f0000
# 8: 00feff5f
# c: 00000600
# 10: fffff9ff
# Function @ .irom0.text+0x14
.global sdk_uart_div_modify
.type sdk_uart_div_modify, @function
sdk_uart_div_modify:
movi a5, 0x00000f00 # 14: 51fcff
movi a6, 0x5ffffe00 # 17: 61fcff
mul16s a5, a5, a2 # 1a: 2055d1
add a5, a5, a6 # 1d: 6a55
memw # 1f: c02000
s32i a3, a5, 0x214 # 22: 326585
movi a8, 0x00060000 # 25: 81f9ff
memw # 28: c02000
l32i a7, a5, 0x220 # 2b: 722588
or a7, a7, a8 # 2e: 807720
memw # 31: c02000
s32i a7, a5, 0x220 # 34: 726588
movi a6, 0xfff9ffff # 37: 61f6ff
memw # 3a: c02000
l32i a4, a5, 0x220 # 3d: 422588
and a4, a4, a6 # 40: 604410
memw # 43: c02000
s32i a4, a5, 0x220 # 46: 426588
ret /* arg0 */ # 49: 0df0
.balign 4
# Function @ .irom0.text+0x4c
.global sdk_Uart_Init
.type sdk_Uart_Init, @function
sdk_Uart_Init:
ret /* arg0 */ # 4c: 0df0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,40 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.global sdk__xt_context_save
.type sdk__xt_context_save, @function
sdk__xt_context_save:
s32i a2, sp, 20 /* arg0 -> [(FP)+0x14] */ # 0: 2951
s32i a3, sp, 24 /* arg1 -> [(FP)+0x18] */ # 2: 3961
s32i a4, sp, 28 /* arg2 -> [(FP)+0x1c] */ # 4: 4971
s32i a5, sp, 32 /* arg3 -> [(FP)+0x20] */ # 6: 5981
s32i a6, sp, 36 /* arg4 -> [(FP)+0x24] */ # 8: 6991
s32i a7, sp, 40 /* arg5 -> [(FP)+0x28] */ # a: 79a1
s32i a8, sp, 44 /* a8 -> [(FP)+0x2c] */ # c: 89b1
s32i a9, sp, 48 /* a9 -> [(FP)+0x30] */ # e: 99c1
s32i a10, sp, 52 /* a10 -> [(FP)+0x34] */ # 10: a9d1
s32i a11, sp, 56 /* a11 -> [(FP)+0x38] */ # 12: b9e1
rsr a3, sar # 14: 300303
s32i a3, sp, 76 /* a3 -> [(FP)+0x4c] */ # 17: 326113
ret /* arg0 */ # 1a: 0df0
# Function @ .text+0x1c
.global sdk__xt_context_restore
.type sdk__xt_context_restore, @function
sdk__xt_context_restore:
l32i a3, sp, 76 /* [(FP)+0x4c] */ # 1c: 322113
l32i a2, sp, 20 /* [(FP)+0x14] */ # 1f: 2851
wsr a3, sar # 21: 300313
l32i a3, sp, 24 /* [(FP)+0x18] */ # 24: 3861
l32i a4, sp, 28 /* [(FP)+0x1c] */ # 26: 4871
l32i a5, sp, 32 /* [(FP)+0x20] */ # 28: 5881
l32i a6, sp, 36 /* [(FP)+0x24] */ # 2a: 6891
l32i a7, sp, 40 /* [(FP)+0x28] */ # 2c: 78a1
l32i a8, sp, 44 /* [(FP)+0x2c] */ # 2e: 88b1
l32i a9, sp, 48 /* [(FP)+0x30] */ # 30: 98c1
l32i a10, sp, 52 /* [(FP)+0x34] */ # 32: a8d1
l32i a11, sp, 56 /* [(FP)+0x38] */ # 34: b8e1
l32i a12, sp, 60 /* [(FP)+0x3c] */ # 36: c8f1
l32i a13, sp, 64 /* [(FP)+0x40] */ # 38: d22110
ret /* [(FP)+0x14] */ # 3b: 0df0

View file

View file

@ -0,0 +1,435 @@
.section .bss, "aw", @nobits
.global sdk_g_ic
.type sdk_g_ic, @object
sdk_g_ic: .space 16
.Ldata001: .word 0x00000000 # 10: 00000000
.Ldata002: .word 0x00000000 # 14: 00000000
# NOTE: 1328 non-alignment zero bytes skipped.
.skip 1328
.global sdk_xieee80211Queue
.type sdk_xieee80211Queue, @object
sdk_xieee80211Queue:
.word 0x00000000 # 548: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 6c090000
# 4: b4090000
# 8: b4090000
# c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.Lfunc001: movi a5, 131 /* 0x00000083 */ # 10: 52a083
movi a6, 0x000009b4 # 13: 61fcff
addi sp, sp, -32 /* (local0) */ # 16: 12c1e0
s32i a2, sp, 24 /* arg0 -> [(local6)] */ # 19: 2961
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1b: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 21: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 23: e931
movi a13, 0x0000096c # 25: d1f6ff
movi a14, 0 /* 0x00000000 */ # 28: 0c0e
mov a12, a2 /* arg0 */ # 2a: cd02
movi a0, 156 /* 0x0000009c */ # 2c: 02a09c
mov a15, a2 /* arg0 */ # 2f: fd02
add a0, a15, a0 /* arg0+0x9c */ # 31: 0a0f
movi a2, 14 /* 0x0000000e */ # 33: 0ce2
s32i a2, a15, 128 /* 0x0000000e -> [arg0+0x80] */ # 35: 226f20
.Lbr001: s32i a5, a12, 132 # 38: 526c21
l8ui a3, a12, 138 # 3b: 320c8a
s32i a0, sp, 20 /* a0 -> [(local5)] */ # 3e: 0951
bltu a0, a12, .Lbr002 # 40: c73008
s16i a13, a12, 136 # 43: d25c44
bne a12, a0, .Lbr002 # 46: 079c02
s16i a6, a12, 136 # 49: 625c44
.Lbr002: bnez a3, .Lbr003 # 4c: dc23
l16ui a2, a12, 136 # 4e: 221c44
movi a3, 131 /* 0x00000083 */ # 51: 32a083
call0 sdk_ieee80211_mhz2ieee # 54: 050000
l32i a0, sp, 20 /* [(local5)] */ # 57: 0851
movi a5, 131 /* 0x00000083 */ # 59: 52a083
movi a6, 0x000009b4 # 5c: 61ebff
s8i a2, a12, 138 # 5f: 224c8a
.Lbr003: addi a13, a13, 5 # 62: 5bdd
l8ui a4, a12, 139 # 64: 420c8b
addi a14, a14, 1 # 67: 1bee
bnez a4, .Lbr004 # 69: ccd4
l8ui a7, a12, 141 # 6b: 720c8d
slli a7, a7, 24 # 6e: 807701
srai a7, a7, 24 # 71: 707831
slli a7, a7, 1 # 74: f07711
s8i a7, a12, 139 # 77: 724c8b
.Lbr004: l32i a8, a15, 128 /* [arg0+0x80] */ # 7a: 822f20
addi a12, a12, 12 # 7d: cbcc
blt a14, a8, .Lbr001 # 7f: 872eb5
movi a2, 132 /* 0x00000084 */ # 82: 22a084
add a2, a15, a2 /* arg0+0x84 */ # 85: 2a2f
call0 sdk_ieee80211_get_ratetable # 87: 01e1ffc0
# 8b: 0000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
l32i a12, sp, 4 /* [(local1)] */ # 8f: c811
l32i a13, sp, 8 /* [(local2)] */ # 91: d821
s32i a2, a15, 0x150 /* a2 -> [arg0+0x150] */ # 93: 226f54
l32i a14, sp, 12 /* [(local3)] */ # 96: e831
l32i a15, sp, 16 /* [(local4)] */ # 98: f841
addi sp, sp, 32 /* (top of frame) */ # 9a: 12c120
ret # 9d: 0df0
.literal_position # a0: 00000000
# a4: 00000000
# a8: 00000000
# ac: 00000000
# b0: 00000000
# b4: 00000000
# Function @ .irom0.text+0xb8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ieee80211_ifattach
.type sdk_ieee80211_ifattach, @function
sdk_ieee80211_ifattach:
addi sp, sp, -16 /* (local0) */ # b8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # bb: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # bd: 0901
mov a12, a2 /* arg0 */ # bf: cd02
call0 .Lfunc001 # c1: c5f4ff
mov a2, a12 /* arg0 */ # c4: 2d0c
movi a0, 100 /* 0x00000064 */ # c6: 02a064
s16i a0, a12, 40 /* 0x0064 -> [arg0+0x28] */ # c9: 025c14
call0 sdk_ieee80211_crypto_attach # cc: 01f6ffc0
# d0: 0000
mov a2, a12 /* arg0 */ # d2: 2d0c
call0 sdk_ieee80211_proto_attach # d4: 01f5ffc0
# d8: 0000
movi a3, 0 /* 0x00000000 */ # da: 0c03
addmi a4, a12, 1280 /* arg0+0x500 */ # dc: 42dc05
l32i a2, a4, 28 /* [arg0+0x51c] */ # df: 2874
s32i a3, a4, 12 /* 0x00000000 -> [arg0+0x50c] */ # e1: 3934
bnei a2, 3, .Lbr005 # e3: 663207
mov a2, a12 /* arg0 */ # e6: 2d0c
call0 sdk_ieee80211_ht_attach # e8: 01f1ffc0
# ec: 0000
.Lbr005: movi a2, sdk_g_ic # ee: 21ecff
call0 sdk_chm_init # f1: 01efffc0
# f5: 0000
mov a2, a12 /* arg0 */ # f7: 2d0c
call0 sdk_ieee80211_scan_attach # f9: 01eeffc0
# fd: 0000
l32i a12, sp, 4 /* [(local1)] */ # ff: c811
l32i a0, sp, 0 /* [(local0)] */ # 101: 0801
addi sp, sp, 16 /* (top of frame) */ # 103: 12c110
ret # 106: 0df0
.literal_position # 108: b4090000
# 10c: b3090000
# 110: 99f6ffff
# 114: 30f6ffff
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_mhz2ieee
.type sdk_ieee80211_mhz2ieee, @function
sdk_ieee80211_mhz2ieee:
movi a6, 0x000009b3 # 124: 61faff
movi a7, 0xfffff699 # 127: 71faff
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901
movi a0, 0x000009b4 # 12f: 01f6ff
bbci a3, 7, .Lbr006 # 132: 776312
beq a2, a0, .Lbr010 # 135: 07123d
bltu a6, a2, .Lbr009 # 138: 273628
add a2, a2, a7 /* arg0+0xfffff699 */ # 13b: 7a22
movi a3, 5 /* 0x00000005 */ # 13d: 0c53
call0 __divsi3 # 13f: 01f6ffc0
# 143: 0000
j .Lbr008 # 145: 060500
.Lbr006: beq a2, a0, .Lbr010 # 148: 07122a
bltu a6, a2, .Lbr007 # 14b: 27360c
add a2, a2, a7 /* arg0+0xfffff699 */ # 14e: 7a22
movi a3, 5 /* 0x00000005 */ # 150: 0c53
call0 __divsi3 # 152: 01f2ffc0
# 156: 0000
j .Lbr008 # 158: 460000
.Lbr007: movi a2, -1 /* 0xffffffff */ # 15b: 7cf2
.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 15d: 0801
addi sp, sp, 16 /* (top of frame) */ # 15f: 12c110
ret # 162: 0df0
.Lbr009: movi a0, 0xfffff630 # 164: 01ecff
movi a3, 20 /* 0x00000014 */ # 167: 1c43
add a2, a2, a0 /* arg0+0xfffff630 */ # 169: 0a22
call0 __udivsi3 # 16b: 01edffc0
# 16f: 0000
addi a2, a2, 15 # 171: fb22
j .Lbr008 # 173: 86f9ff
.Lbr010: movi a2, 14 /* 0x0000000e */ # 176: 0ce2
j .Lbr008 # 178: 46f8ff
.literal_position # 17c: ffff0000
# Function @ .irom0.text+0x180
.global sdk_ieee80211_chan2ieee
.type sdk_ieee80211_chan2ieee, @function
sdk_ieee80211_chan2ieee:
bnez a2, .Lbr011 # 180: cc22
movi a2, 0 /* 0x00000000 */ # 182: 0c02
ret /* 0x00000000 */ # 184: 0df0
.Lbr011: movi a5, 0x0000ffff # 186: 51fdff
beq a2, a5, .Lbr012 # 189: 571204
l8ui a2, a2, 6 /* [arg0+0x6] */ # 18c: 220206
ret /* [arg0+0x6] */ # 18f: 0df0
.Lbr012: mov a2, a5 /* 0x0000ffff */ # 191: 2d05
ret /* 0x0000ffff */ # 193: 0df0
.literal_position # 198: 67090000
# 19c: a4080000
# 1a0: 88130000
# 1a4: b4090000
# Function @ .irom0.text+0x1a8
.global sdk_ieee80211_ieee2mhz
.type sdk_ieee80211_ieee2mhz, @function
sdk_ieee80211_ieee2mhz:
movi a7, 14 /* 0x0000000e */ # 1a8: 0ce7
movi a8, 13 /* 0x0000000d */ # 1aa: 0cd8
movi a6, 0x00000967 # 1ac: 61fbff
movi a9, 0x000008a4 # 1af: 91fbff
bbci a3, 7, .Lbr014 # 1b2: 77630d
beq a2, a7, .Lbr016 # 1b5: 77121f
bgeu a8, a2, .Lbr015 # 1b8: 27b815
.Lbr013: addx4 a2, a2, a2 # 1bb: 2022a0
addx4 a2, a2, a9 # 1be: 9022a0
ret # 1c1: 0df0
.Lbr014: beq a2, a7, .Lbr016 # 1c3: 771211
bgeu a8, a2, .Lbr015 # 1c6: 27b807
movi a3, 26 /* 0x0000001a */ # 1c9: 1ca3
bgeu a3, a2, .Lbr013 # 1cb: 27b3ec
movi a6, 0x00001388 # 1ce: 61f4ff
.Lbr015: addx4 a2, a2, a2 # 1d1: 2022a0
add a2, a2, a6 # 1d4: 6a22
ret # 1d6: 0df0
.Lbr016: movi a2, 0x000009b4 # 1d8: 21f3ff
ret /* 0x000009b4 */ # 1db: 0df0
.balign 4
# Function @ .irom0.text+0x1e0
.global sdk_ieee80211_find_channel
.type sdk_ieee80211_find_channel, @function
sdk_ieee80211_find_channel:
l32i a6, a2, 128 /* [arg0+0x80] */ # 1e0: 622220
blti a6, 1, .Lbr019 # 1e3: a6161d
addx2 a7, a6, a6 # 1e6: 607690
addx4 a7, a7, a2 # 1e9: 2077a0
.Lbr017: l16ui a8, a2, 136 # 1ec: 821244
l32i a9, a2, 132 # 1ef: 922221
bne a3, a8, .Lbr018 # 1f2: 879309
bnone a9, a4, .Lbr018 # 1f5: 470906
movi a10, 132 /* 0x00000084 */ # 1f8: a2a084
add a2, a2, a10 # 1fb: aa22
ret # 1fd: 0df0
.Lbr018: addi a2, a2, 12 # 1ff: cb22
bne a2, a7, .Lbr017 # 201: 7792e7
.Lbr019: movi a2, 0 /* 0x00000000 */ # 204: 0c02
ret /* 0x00000000 */ # 206: 0df0
# Function @ .irom0.text+0x208
.global sdk_ieee80211_find_channel_byieee
.type sdk_ieee80211_find_channel_byieee, @function
sdk_ieee80211_find_channel_byieee:
l32i a6, a2, 128 /* [arg0+0x80] */ # 208: 622220
blti a6, 1, .Lbr022 # 20b: a6161d
addx2 a7, a6, a6 # 20e: 607690
addx4 a7, a7, a2 # 211: 2077a0
.Lbr020: l8ui a8, a2, 138 # 214: 82028a
l32i a9, a2, 132 # 217: 922221
bne a3, a8, .Lbr021 # 21a: 879309
bnone a9, a4, .Lbr021 # 21d: 470906
movi a10, 132 /* 0x00000084 */ # 220: a2a084
add a2, a2, a10 # 223: aa22
ret # 225: 0df0
.Lbr021: addi a2, a2, 12 # 227: cb22
bne a2, a7, .Lbr020 # 229: 7792e7
.Lbr022: movi a2, 0 /* 0x00000000 */ # 22c: 0c02
ret /* 0x00000000 */ # 22e: 0df0
.literal_position # 230: 00000000
# 234: 10000000
# 238: 00000000
# 23c: 14000000
# 240: 00000000
# 244: 00000000
# 248: 00000000
# 24c: 34000000
# 250: 3c000000
# 254: 00000000
# 258: 40000000
# 25c: 00000000
# 260: 14000000
# 264: 34000000
# 268: 08000000
# 26c: 48000000
# 270: 00000000
# 274: 00000000
# 278: 00000000
# 27c: 00000000
# 280: 00000000
# 284: 00000000
# 288: 00000000
# 28c: 00000000
# 290: 00000000
# 294: 00000000
# 298: 00000000
# 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word[4] @ -0x20
# (local1): word @ -0x10
# (local2): word[3] @ -0xc
.global sdk_wifi_mode_set
.type sdk_wifi_mode_set, @function
sdk_wifi_mode_set:
addi sp, sp, -32 /* (local0) */ # 2a8: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local2)] */ # 2ab: c951
s32i a0, sp, 16 /* a0 -> [(local1)] */ # 2ad: 0941
mov a12, a2 /* arg0 */ # 2af: cd02
movi a2, .Lstr001 # 2b1: 21dfff
call0 printf # 2b4: 01efffc0
# 2b8: 0000
beqz a12, .Lbr026 # 2ba: 164c0d
beqi a12, 1, .Lbr023 # 2bd: 261c08
beqi a12, 2, .Lbr025 # 2c0: 262c72
addi a0, a12, -3 /* arg0-0x3 */ # 2c3: 02ccfd
bnez a0, .Lbr027 # 2c6: 56100d
.Lbr023: movi a2, .Label001 # 2c9: 21daff
call0 printf # 2cc: 01eaffc0
# 2d0: 0000
movi a2, sdk_info # 2d2: 21d9ff
l8ui a7, a2, 34 /* [sdk_info+0x22] */ # 2d5: 720222
l8ui a6, a2, 33 /* [sdk_info+0x21] */ # 2d8: 620221
l8ui a5, a2, 32 /* [sdk_info+0x20] */ # 2db: 520220
l8ui a4, a2, 31 /* [sdk_info+0x1f] */ # 2de: 42021f
l8ui a3, a2, 30 /* [sdk_info+0x1e] */ # 2e1: 32021e
l8ui a2, a2, 35 /* [sdk_info+0x23] */ # 2e4: 220223
s32i a2, sp, 0 /* [sdk_info+0x23] -> [(local0)] */ # 2e7: 2901
movi a2, .Lstr003 # 2e9: 21d4ff
call0 printf # 2ec: 01e3ffc0
# 2f0: 0000
movi a3, sdk_g_ic # 2f2: 31d3ff
l32i a3, a3, 16 /* [.Ldata001] */ # 2f5: 3843
bnez a3, .Lbr024 # 2f7: ecf3
movi a2, 648 /* 0x00000288 */ # 2f9: 22a288
call0 zalloc # 2fc: 01e0ffc0
# 300: 0000
movi a5, sdk_g_ic # 302: 51d0ff
movi a4, 0 /* 0x00000000 */ # 305: 0c04
s32i a2, a5, 16 /* a2 -> [.Ldata001] */ # 307: 2945
s32i a4, a2, 176 # 309: 42622c
s32i a4, a2, 60 # 30c: 49f2
movi a2, 272 /* 0x00000110 */ # 30e: 22a110
call0 zalloc # 311: 01dbffc0
# 315: 0000
movi a6, sdk_g_ic # 317: 61ccff
movi a3, .Label002 # 31a: 31ccff
l32i a6, a6, 16 /* [.Ldata001] */ # 31d: 6846
movi a4, 6 /* 0x00000006 */ # 31f: 0c64
s32i a2, a6, 140 /* a2 -> [[.Ldata001]+0x8c] */ # 321: 226623
call0 memcpy # 324: 01d8ffc0
# 328: 0000
.Lbr024: beqi a12, 1, .Lbr027 # 32a: 261c6d
movi a2, .Label003 # 32d: 21c8ff
call0 printf # 330: 01d6ffc0
# 334: 0000
.Lbr025: movi a12, sdk_g_ic # 336: c1c7ff
movi a2, .Lstr004 # 339: 21c7ff
call0 printf # 33c: 01d4ffc0
# 340: 0000
movi a8, sdk_info # 342: 81c6ff
movi a2, .Lstr003 # 345: 21c6ff
l8ui a7, a8, 28 /* [sdk_info+0x1c] */ # 348: 72081c
l8ui a6, a8, 27 /* [sdk_info+0x1b] */ # 34b: 62081b
l8ui a5, a8, 26 /* [sdk_info+0x1a] */ # 34e: 52081a
l8ui a4, a8, 25 /* [sdk_info+0x19] */ # 351: 420819
l8ui a3, a8, 24 /* [sdk_info+0x18] */ # 354: 320818
l8ui a8, a8, 29 /* [sdk_info+0x1d] */ # 357: 82081d
s32i a8, sp, 0 /* [sdk_info+0x1d] -> [(local0)] */ # 35a: 8901
call0 printf # 35c: 01cdffc0
# 360: 0000
l32i a9, a12, 20 /* [.Ldata002] */ # 362: 985c
bnez a9, .Lbr027 # 364: fc39
movi a2, 648 /* 0x00000288 */ # 366: 22a288
call0 zalloc # 369: 01caffc0
# 36d: 0000
s32i a2, a12, 20 /* a2 -> [.Ldata002] */ # 36f: 295c
movi a10, 1 /* 0x00000001 */ # 371: 0c1a
s32i a10, a2, 176 # 373: a2622c
movi a2, 272 /* 0x00000110 */ # 376: 22a110
call0 zalloc # 379: 01c7ffc0
# 37d: 0000
movi a3, .Label002 # 37f: 31b9ff
l32i a11, a12, 20 /* [.Ldata002] */ # 382: b85c
movi a4, 6 /* 0x00000006 */ # 384: 0c64
s32i a2, a11, 144 /* a2 -> [[.Ldata002]+0x90] */ # 386: 226b24
call0 memcpy # 389: 01c4ffc0
# 38d: 0000
j .Lbr027 # 38f: 060200
.Lbr026: movi a2, .Lstr002 # 392: 21b5ff
call0 printf # 395: 01c2ffc0
# 399: 0000
.Lbr027: movi a2, .Label004 # 39b: 21b4ff
call0 printf # 39e: 01c1ffc0
# 3a2: 0000
movi a2, 1 /* 0x00000001 */ # 3a4: 0c12
l32i a12, sp, 20 /* [(local2)] */ # 3a6: c851
l32i a0, sp, 16 /* [(local1)] */ # 3a8: 0841
addi sp, sp, 32 /* (top of frame) */ # 3aa: 12c120
ret /* 0x00000001 */ # 3ad: 0df0
.section .rodata, "a", @progbits
.global sdk_ieee80211_opcap
.type sdk_ieee80211_opcap, @object
sdk_ieee80211_opcap:
.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "mode : " # 0: 6d6f6465
# 4: 203a2000
.Lstr002: .asciz "null" # 8: 6e756c6c
# c: 00
.balign 4
.Label001: .word 0x00617473 # 10: 73746100
.Lstr003: .asciz "(%02x:%02x:%02x:%02x:%02x:%02x)" # 14: 28253032
# 18: 783a2530
# 1c: 32783a25
# 20: 3032783a
# 24: 25303278
# 28: 3a253032
# 2c: 783a2530
# 30: 32782900
.Label002: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
.Label003: .word 0x00202b20 # 3c: 202b2000
.Lstr004: .asciz "softAP" # 40: 736f6674
# 44: 415000
.balign 4
.Label004: .byte 0x0a, 0x00

View file

@ -0,0 +1,197 @@
.section .data, "aw", @progbits
.Lrel001: .word .irom0.text # 0: 00000000
.Lrel002: .word .irom0.text # 4: 00000000
.Lrel003: .word .irom0.text # 8: 00000000
.Lrel004: .word .irom0.text # c: 00000000
.Lrel005: .word .Lfunc002 # 10: bc000000
.Lrel006: .word .Lfunc002 # 14: bc000000
.Lrel007: .word .Lfunc002 # 18: bc000000
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.Lfunc001: movi a2, -1 /* 0xffffffff */ # 0: 7cf2
ret /* 0xffffffff */ # 2: 0df0
.literal_position # 4: 0c000000
# 8: 00000000
# c: 08000000
# Function @ .irom0.text+0x10
.global sdk_ieee80211_send_action_register
.type sdk_ieee80211_send_action_register, @function
sdk_ieee80211_send_action_register:
beqi a2, 3, .Lbr003 # 10: 26321a
beqi a2, 7, .Lbr004 # 13: 267220
movi a5, 127 /* 0x0000007f */ # 16: 52a07f
bne a2, a5, .Lbr002 # 19: 57920d
bnez a3, .Lbr002 # 1c: cca3
movi a2, .Lrel004 # 1e: 21f9ff
.Lbr001: addx4 a6, a3, a2 # 21: 2063a0
s32i a4, a6, 0 # 24: 4906
movi a2, 0 /* 0x00000000 */ # 26: 0c02
ret /* 0x00000000 */ # 28: 0df0
.Lbr002: movi a2, -1 /* 0xffffffff */ # 2a: 7cf2
ret /* 0xffffffff */ # 2c: 0df0
.Lbr003: bgeui a3, 2, .Lbr002 # 2e: f623f8
movi a2, .Lrel001 # 31: 21f5ff
j .Lbr001 # 34: 46faff
.Lbr004: bnez a3, .Lbr002 # 37: 56f3fe
movi a2, .Lrel003 # 3a: 21f4ff
j .Lbr001 # 3d: 06f8ff
.literal_position # 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_send_action_unregister
.type sdk_ieee80211_send_action_unregister, @function
sdk_ieee80211_send_action_unregister:
movi a4, .Lfunc001 # 44: 41ffff
addi sp, sp, -16 /* (local0) */ # 47: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4a: 0901
call0 sdk_ieee80211_send_action_register # 4c: 050000
l32i a0, sp, 0 /* [(local0)] */ # 4f: 0801
addi sp, sp, 16 /* (top of frame) */ # 51: 12c110
ret # 54: 0df0
.literal_position # 58: 00000000
# 5c: 0c000000
# 60: 08000000
# 64: 00000000
# Function @ .irom0.text+0x68
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_send_action
.type sdk_ieee80211_send_action, @function
sdk_ieee80211_send_action:
addi sp, sp, -16 /* (local0) */ # 68: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6b: 0901
movi a0, .Lfunc001 # 6d: 01faff
beqi a3, 3, .Lbr005 # 70: 263315
beqi a3, 7, .Lbr009 # 73: 267326
movi a6, 127 /* 0x0000007f */ # 76: 62a07f
bne a3, a6, .Lbr006 # 79: 67930f
bnez a4, .Lbr008 # 7c: dc84
movi a7, .Lrel004 # 7e: 71f7ff
addx4 a7, a4, a7 # 81: 7074a0
l32i a7, a7, 0 # 84: 7807
j .Lbr007 # 86: 060100
.Lbr005: bltui a4, 2, .Lbr011 # 89: b62422
.Lbr006: mov a7, a0 /* .Lfunc001 */ # 8c: 7d00
.Lbr007: callx0 a7 # 8e: c00700
l32i a0, sp, 0 /* [(local0)] */ # 91: 0801
addi sp, sp, 16 /* (top of frame) */ # 93: 12c110
ret # 96: 0df0
.Lbr008: mov a7, a0 /* .Lfunc001 */ # 98: 7d00
j .Lbr007 # 9a: 06fcff
.Lbr009: bnez a4, .Lbr010 # 9d: cc94
movi a7, .Lrel003 # 9f: 71f0ff
addx4 a7, a4, a7 # a2: 7074a0
l32i a7, a7, 0 # a5: 7807
j .Lbr007 # a7: c6f8ff
.Lbr010: mov a7, a0 /* .Lfunc001 */ # aa: 7d00
j .Lbr007 # ac: 86f7ff
.Lbr011: movi a7, .Lrel001 # af: 71edff
addx4 a7, a4, a7 # b2: 7074a0
l32i a7, a7, 0 # b5: 7807
j .Lbr007 # b7: c6f4ff
.balign 4
# Function @ .irom0.text+0xbc
.Lfunc002: movi a2, -1 /* 0xffffffff */ # bc: 7cf2
ret /* 0xffffffff */ # be: 0df0
.literal_position # c0: 18000000
# c4: 10000000
# c8: 14000000
# Function @ .irom0.text+0xcc
.global sdk_ieee80211_recv_action_register
.type sdk_ieee80211_recv_action_register, @function
sdk_ieee80211_recv_action_register:
beqi a2, 3, .Lbr014 # cc: 26321a
beqi a2, 7, .Lbr015 # cf: 267220
movi a5, 127 /* 0x0000007f */ # d2: 52a07f
bne a2, a5, .Lbr013 # d5: 57920d
bnez a3, .Lbr013 # d8: cca3
movi a2, .Lrel007 # da: 21f9ff
.Lbr012: addx4 a6, a3, a2 # dd: 2063a0
s32i a4, a6, 0 # e0: 4906
movi a2, 0 /* 0x00000000 */ # e2: 0c02
ret /* 0x00000000 */ # e4: 0df0
.Lbr013: movi a2, -1 /* 0xffffffff */ # e6: 7cf2
ret /* 0xffffffff */ # e8: 0df0
.Lbr014: bnez a3, .Lbr013 # ea: 5683ff
movi a2, .Lrel005 # ed: 21f5ff
j .Lbr012 # f0: 46faff
.Lbr015: bnez a3, .Lbr013 # f3: 56f3fe
movi a2, .Lrel006 # f6: 21f4ff
j .Lbr012 # f9: 06f8ff
.literal_position # fc: bc000000
# Function @ .irom0.text+0x100
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_recv_action_unregister
.type sdk_ieee80211_recv_action_unregister, @function
sdk_ieee80211_recv_action_unregister:
movi a4, .Lfunc002 # 100: 41ffff
addi sp, sp, -16 /* (local0) */ # 103: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 106: 0901
call0 sdk_ieee80211_recv_action_register # 108: 050000
l32i a0, sp, 0 /* [(local0)] */ # 10b: 0801
addi sp, sp, 16 /* (top of frame) */ # 10d: 12c110
ret # 110: 0df0
.literal_position # 114: bc000000
# 118: 18000000
# 11c: 14000000
# 120: 10000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_recv_action
.type sdk_ieee80211_recv_action, @function
sdk_ieee80211_recv_action:
addi sp, sp, -16 /* (local0) */ # 124: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
l8ui a0, a4, 0 /* [arg2] */ # 129: 020400
movi a8, .Lfunc002 # 12c: 81faff
beqi a0, 3, .Lbr016 # 12f: 26301a
beqi a0, 7, .Lbr020 # 132: 26702b
movi a6, 127 /* 0x0000007f */ # 135: 62a07f
bne a0, a6, .Lbr017 # 138: 679016
l8ui a0, a4, 1 /* [arg2+0x1] */ # 13b: 020401
mov a7, a8 /* .Lfunc002 */ # 13e: 7d08
bnez a0, .Lbr019 # 140: dca0
movi a7, .Lrel007 # 142: 71f5ff
addx4 a7, a0, a7 # 145: 7070a0
l32i a7, a7, 0 # 148: 7807
j .Lbr018 # 14a: 860100
.Lbr016: l8ui a0, a4, 1 /* [arg2+0x1] */ # 14d: 020401
beqz a0, .Lbr022 # 150: ac20
.Lbr017: mov a7, a8 /* .Lfunc002 */ # 152: 7d08
.Lbr018: callx0 a7 # 154: c00700
l32i a0, sp, 0 /* [(local0)] */ # 157: 0801
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr019: j .Lbr018 # 15e: 86fcff
.Lbr020: l8ui a0, a4, 1 /* [arg2+0x1] */ # 161: 020401
mov a7, a8 /* .Lfunc002 */ # 164: 7d08
bnez a0, .Lbr021 # 166: cc90
movi a7, .Lrel006 # 168: 71edff
addx4 a7, a0, a7 # 16b: 7070a0
l32i a7, a7, 0 # 16e: 7807
j .Lbr018 # 170: 06f8ff
.Lbr021: j .Lbr018 # 173: 46f7ff
.Lbr022: movi a7, .Lrel005 # 176: 71eaff
addx4 a7, a0, a7 # 179: 7070a0
l32i a7, a7, 0 # 17c: 7807
j .Lbr018 # 17e: 86f4ff

View file

@ -0,0 +1,109 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_ieee80211_crypto_attach
.type sdk_ieee80211_crypto_attach, @function
sdk_ieee80211_crypto_attach:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.global sdk_ieee80211_crypto_available
.type sdk_ieee80211_crypto_available, @function
sdk_ieee80211_crypto_available:
movi a2, 0 /* 0x00000000 */ # 4: 0c02
ret /* 0x00000000 */ # 6: 0df0
# Function @ .irom0.text+0x8
.global sdk_ieee80211_crypto_setkey
.type sdk_ieee80211_crypto_setkey, @function
sdk_ieee80211_crypto_setkey:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ieee80211_crypto_encap
.type sdk_ieee80211_crypto_encap, @function
sdk_ieee80211_crypto_encap:
addi sp, sp, -16 /* (local0) */ # 10: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 13: 0911
l32i a4, a3, 32 /* [arg1+0x20] */ # 15: 4883
l32i a0, a2, 136 /* [arg0+0x88] */ # 17: 022222
l32i a4, a4, 0 /* [[arg1+0x20]] */ # 1a: 4804
movi a2, sdk_g_ic # 1c: 21fcff
bbci a4, 7, .Lbr003 # 1f: 776434
l8ui a0, a0, 233 /* [[arg0+0x88]+0xe9] */ # 22: 0200e9
bltui a0, 2, .Lbr001 # 25: b62004
addi a6, a0, -1 /* [[arg0+0x88]+0xe9]-0x1 */ # 28: 0b60
j .Lbr002 # 2a: 460000
.Lbr001: mov a6, a0 /* [[arg0+0x88]+0xe9] */ # 2d: 6d00
.Lbr002: addx4 a2, a0, a2 # 2f: 2020a0
l32i a2, a2, 0x190 # 32: 222264
slli a4, a6, 6 # 35: a04611
l32i a0, a2, 152 # 38: 022226
extui a4, a4, 0, 8 # 3b: 404074
l32i a0, a0, 16 # 3e: 0840
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 40: 2901
callx0 a0 # 42: c00000
l32i a4, sp, 0 /* [(local0)] */ # 45: 4801
l32i a3, sp, 4 /* [(local1)] */ # 47: 3811
movi a0, 0 /* 0x00000000 */ # 49: 0c00
addi sp, sp, 16 /* (top of frame) */ # 4b: 12c110
movnez a0, a4, a2 # 4e: 200493
mov a2, a0 # 51: 2d00
mov a0, a3 /* [(local1)] */ # 53: 0d03
ret # 55: 0df0
.Lbr003: movi a6, 0 /* 0x00000000 */ # 57: 0c06
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # 59: 0200e8
j .Lbr002 # 5c: c6f3ff
.literal_position # 60: 00000000
# Function @ .irom0.text+0x64
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ieee80211_crypto_decap
.type sdk_ieee80211_crypto_decap, @function
sdk_ieee80211_crypto_decap:
addi sp, sp, -16 /* (local0) */ # 64: 12c1f0
l16ui a5, a3, 22 /* [arg1+0x16] */ # 67: 52130b
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6a: 0911
l16ui a0, a3, 20 /* [arg1+0x14] */ # 6c: 02130a
movi a6, sdk_g_ic # 6f: 61fcff
add a0, a0, a5 # 72: 5a00
bltui a0, 32, .Lbr005 # 74: b6c020
l32i a0, a3, 4 /* [arg1+0x4] */ # 77: 0813
l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # 79: 0810
l8ui a7, a0, 4 /* [[[arg1+0x4]+0x4]+0x4] */ # 7b: 720004
add a0, a4, a0 # 7e: 0a04
bbci a7, 0, .Lbr008 # 80: 076731
l8ui a0, a0, 3 # 83: 020003
extui a0, a0, 6, 2 # 86: 000614
addi a0, a0, -1 # 89: 0b00
extui a0, a0, 0, 8 # 8b: 000074
.Lbr004: addx4 a2, a0, a6 # 8e: 6020a0
l32i a2, a2, 0x190 # 91: 222264
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 94: 2901
bnez a2, .Lbr006 # 96: cc32
.Lbr005: movi a2, 0 /* 0x00000000 */ # 98: 0c02
j .Lbr007 # 9a: 060400
.Lbr006: l32i a0, a2, 152 # 9d: 022226
l32i a0, a0, 20 # a0: 0850
callx0 a0 # a2: c00000
mov a4, a2 # a5: 4d02
l32i a3, sp, 0 /* [(local0)] */ # a7: 3801
movi a2, 0 /* 0x00000000 */ # a9: 0c02
movnez a2, a3, a4 # ab: 402393
.Lbr007: l32i a0, sp, 4 /* [(local1)] */ # ae: 0811
addi sp, sp, 16 /* (top of frame) */ # b0: 12c110
ret # b3: 0df0
.Lbr008: l32i a0, a2, 136 /* [arg0+0x88] */ # b5: 022222
l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # b8: 0200e8
j .Lbr004 # bb: c6f3ff

View file

@ -0,0 +1,140 @@
.section .data, "aw", @progbits
.global sdk_ccmp
.type sdk_ccmp, @object
sdk_ccmp: .word 0x00000003 # 0: 03000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000008 # 8: 08000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 80000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.Lfunc001: ssai 8 # 4: 004840
l32i a5, a2, 144 /* [arg0+0x90] */ # 7: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # a: 62130b
movi a7, sdk_ccmp # d: 71fcff
l32i a9, a3, 4 /* [arg1+0x4] */ # 10: 9813
l32i a10, a7, 4 /* [.Ldata001] */ # 12: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 14: 7817
l32i a8, a9, 4 /* [[arg1+0x4]+0x4] */ # 16: 8819
add a6, a6, a7 # 18: 7a66
sub a8, a8, a10 # 1a: a088c0
addi a7, a5, 1 /* [arg0+0x90]+0x1 */ # 1d: 1b75
s32i a8, a9, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 1f: 8919
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 21: 62530b
movi a9, 32 /* 0x00000020 */ # 24: 2c09
or a11, a4, a9 # 26: 90b420
s32i a7, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 29: 726224
l32i a3, a2, 148 /* [arg0+0x94] */ # 2c: 322225
bgeu a7, a5, .Lbr001 # 2f: 57b701
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 32: 1b33
.Lbr001: movi a5, 0 /* 0x00000000 */ # 34: 0c05
s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 36: 326225
s8i a7, a8, 0 # 39: 724800
l32i a6, a2, 148 /* [arg0+0x94] */ # 3c: 622225
l32i a10, a2, 144 /* [arg0+0x90] */ # 3f: a22224
s8i a5, a8, 2 # 42: 524802
s8i a11, a8, 3 # 45: b24803
src a6, a6, a10 # 48: a06681
s8i a6, a8, 1 # 4b: 624801
l32i a11, a2, 144 /* [arg0+0x90] */ # 4e: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 51: a22225
ssai 16 # 54: 104040
src a10, a10, a11 # 57: b0aa81
s8i a10, a8, 4 # 5a: a24804
l32i a6, a2, 144 /* [arg0+0x90] */ # 5d: 622224
l32i a5, a2, 148 /* [arg0+0x94] */ # 60: 522225
ssai 24 # 63: 104840
src a5, a5, a6 # 66: 605581
s8i a5, a8, 5 # 69: 524805
l32i a11, a2, 148 /* [arg0+0x94] */ # 6c: b22225
s8i a11, a8, 6 # 6f: b24806
l32i a10, a2, 148 /* [arg0+0x94] */ # 72: a22225
movi a2, 1 /* 0x00000001 */ # 75: 0c12
srli a10, a10, 8 # 77: a0a841
s8i a10, a8, 7 # 7a: a24807
ret /* 0x00000001 */ # 7d: 0df0
.balign 4
# Function @ .irom0.text+0x80
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 80: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # 83: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 85: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # 87: 0818
add a7, a4, a0 # 89: 0a74
l8ui a5, a7, 3 # 8b: 520703
movi a9, 140 /* 0x0000008c */ # 8e: 92a08c
extui a5, a5, 5, 1 # 91: 505504
beqz a5, .Lbr006 # 94: 169508
l8ui a5, a7, 6 # 97: 520706
l8ui a11, a7, 7 # 9a: b20707
l8ui a6, a0, 0 /* [[[arg1+0x4]+0x4]] */ # 9d: 620000
slli a11, a11, 8 # a0: 80bb11
and a6, a6, a9 # a3: 906610
or a11, a11, a5 # a6: 50bb20
l8ui a5, a7, 4 # a9: 520704
movi a9, 136 /* 0x00000088 */ # ac: 92a088
slli a5, a5, 16 # af: 005511
bne a6, a9, .Lbr002 # b2: 979611
l8ui a10, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # b5: a20001
extui a10, a10, 0, 2 # b8: a0a014
addi a10, a10, -3 # bb: a2cafd
bnez a10, .Lbr008 # be: 56aa06
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # c1: 02001e
j .Lbr009 # c4: c61900
.Lbr002: movi a0, 16 /* 0x00000010 */ # c7: 1c00
.Lbr003: l8ui a9, a7, 0 # c9: 920700
l8ui a10, a7, 5 # cc: a20705
l8ui a6, a7, 1 # cf: 620701
slli a10, a10, 24 # d2: 80aa01
slli a6, a6, 8 # d5: 806611
or a6, a6, a9 # d8: 906620
extui a7, a11, 0, 16 # db: b070f4
addx8 a9, a0, a2 # de: 2090b0
or a5, a5, a6 # e1: 605520
movi a0, 0 /* 0x00000000 */ # e4: 0c00
s32i a9, sp, 0 /* a9 -> [(local0)] */ # e6: 9901
l32i a11, a9, 8 # e8: b829
l32i a9, a9, 12 # ea: 9839
or a10, a10, a5 # ec: 50aa20
bltu a9, a7, .Lbr005 # ef: 773907
bne a9, a7, .Lbr004 # f2: 779902
bltu a11, a10, .Lbr005 # f5: a73b01
.Lbr004: movi a0, 1 /* 0x00000001 */ # f8: 0c10
.Lbr005: bnez a0, .Lbr006 # fa: ec30
l32i a11, sp, 0 /* [(local0)] */ # fc: b801
l16ui a9, a3, 22 /* [arg1+0x16] */ # fe: 92130b
s32i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 101: a92b
s32i a7, a11, 12 /* a7 -> [[(local0)]+0xc] */ # 103: 793b
l32i a11, a2, 152 /* [arg0+0x98] */ # 105: b22226
l32i a5, a8, 4 /* [[arg1+0x4]+0x4] */ # 108: 5818
l32i a0, a11, 4 /* [[arg0+0x98]+0x4] */ # 10a: 081b
l32i a11, a11, 8 /* [[arg0+0x98]+0x8] */ # 10c: b82b
add a6, a4, a0 # 10e: 0a64
add a11, a11, a0 # 110: 0abb
add a5, a5, a6 # 112: 6a55
movi a0, 1 /* 0x00000001 */ # 114: 0c10
s32i a5, a8, 4 /* a5 -> [[arg1+0x4]+0x4] */ # 116: 5918
sub a9, a9, a11 # 118: b099c0
s16i a9, a3, 22 /* a9 -> [arg1+0x16] */ # 11b: 92530b
j .Lbr007 # 11e: 460000
.Lbr006: movi a0, 0 /* 0x00000000 */ # 121: 0c00
.Lbr007: mov a2, a0 # 123: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 125: 0811
addi sp, sp, 16 /* (top of frame) */ # 127: 12c110
ret # 12a: 0df0
.Lbr008: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 12c: 020018
.Lbr009: extui a0, a0, 0, 4 # 12f: 000034
j .Lbr003 # 132: c6e4ff

View file

@ -0,0 +1,163 @@
.section .data, "aw", @progbits
.global sdk_tkip
.type sdk_tkip, @object
sdk_tkip: .word 0x00000002 # 0: 02000000
.Ldata001: .word 0x00000008 # 4: 08000000
# NOTE: The following is apparently unreferenced code/data
.word 0x0000000c # 8: 0c000000
.word 0x00000008 # c: 08000000
.Lrel001: .word .Lfunc001 # 10: 08000000
.Lrel002: .word .Lfunc002 # 14: a0000000
.section .bss, "aw", @nobits
.Ldata002: .word 0x00000000 # 0: 00000000
.Ldata003: .word 0x00000000 # 4: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
.Lfunc001: movi a5, sdk_g_ic # 8: 51feff
ssai 8 # b: 004840
l32i a5, a5, 28 /* [sdk_g_ic+0x1c] */ # e: 5875
movi a11, sdk_tkip # 10: b1fdff
bbci a5, 26, .Lbr001 # 13: a77503
movi a2, 0 /* 0x00000000 */ # 16: 0c02
ret /* 0x00000000 */ # 18: 0df0
.Lbr001: l32i a7, a2, 148 /* [arg0+0x94] */ # 1a: 722225
l16ui a10, a3, 22 /* [arg1+0x16] */ # 1d: a2130b
l32i a5, a3, 4 /* [arg1+0x4] */ # 20: 5813
l32i a9, a11, 4 /* [.Ldata001] */ # 22: 981b
l32i a8, a5, 4 /* [[arg1+0x4]+0x4] */ # 24: 8815
l32i a11, a11, 4 /* [.Ldata001] */ # 26: b81b
sub a8, a8, a9 # 28: 9088c0
l32i a9, a2, 144 /* [arg0+0x90] */ # 2b: 922224
add a10, a10, a11 # 2e: baaa
src a7, a7, a9 # 30: 907781
movi a9, 95 /* 0x0000005f */ # 33: 5cf9
s32i a8, a5, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 35: 8915
s16i a10, a3, 22 /* a10 -> [arg1+0x16] */ # 37: a2530b
and a9, a7, a9 # 3a: 909710
movi a10, 32 /* 0x00000020 */ # 3d: 2c0a
or a6, a4, a10 # 3f: a06420
s8i a7, a8, 0 # 42: 724800
or a9, a9, a10 # 45: a09920
s8i a9, a8, 1 # 48: 924801
l32i a5, a2, 144 /* [arg0+0x90] */ # 4b: 522224
s8i a6, a8, 3 # 4e: 624803
s8i a5, a8, 2 # 51: 524802
l32i a4, a2, 144 /* [arg0+0x90] */ # 54: 422224
l32i a3, a2, 148 /* [arg0+0x94] */ # 57: 322225
ssai 16 # 5a: 104040
src a3, a3, a4 # 5d: 403381
s8i a3, a8, 4 # 60: 324804
l32i a11, a2, 144 /* [arg0+0x90] */ # 63: b22224
l32i a10, a2, 148 /* [arg0+0x94] */ # 66: a22225
ssai 24 # 69: 104840
src a10, a10, a11 # 6c: b0aa81
s8i a10, a8, 5 # 6f: a24805
l32i a9, a2, 148 /* [arg0+0x94] */ # 72: 922225
s8i a9, a8, 6 # 75: 924806
l32i a7, a2, 148 /* [arg0+0x94] */ # 78: 722225
srli a7, a7, 8 # 7b: 707841
s8i a7, a8, 7 # 7e: 724807
l32i a6, a2, 144 /* [arg0+0x90] */ # 81: 622224
l32i a3, a2, 148 /* [arg0+0x94] */ # 84: 322225
addi a4, a6, 1 /* [arg0+0x90]+0x1 */ # 87: 1b46
bgeu a4, a6, .Lbr002 # 89: 67b401
addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 8c: 1b33
.Lbr002: s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 8e: 326225
s32i a4, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 91: 426224
movi a2, 1 /* 0x00000001 */ # 94: 0c12
ret /* 0x00000001 */ # 96: 0df0
.literal_position # 98: 00000000
# 9c: 00000000
# Function @ .irom0.text+0xa0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0
l32i a8, a3, 4 /* [arg1+0x4] */ # a3: 8813
s32i a0, sp, 4 /* a0 -> [(local1)] */ # a5: 0911
l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # a7: 0818
movi a6, sdk_g_ic # a9: 61fbff
add a7, a4, a0 # ac: 0a74
l8ui a5, a7, 3 # ae: 520703
l32i a6, a6, 28 /* [sdk_g_ic+0x1c] */ # b1: 6876
extui a5, a5, 5, 1 # b3: 505504
beqz a5, .Lbr007 # b6: 169509
extui a6, a6, 26, 1 # b9: 606a05
bnez a6, .Lbr007 # bc: 563609
l8ui a6, a7, 6 # bf: 620706
l8ui a5, a7, 7 # c2: 520707
l8ui a9, a0, 0 /* [[[arg1+0x4]+0x4]] */ # c5: 920000
movi a10, 140 /* 0x0000008c */ # c8: a2a08c
and a9, a9, a10 # cb: a09910
slli a5, a5, 8 # ce: 805511
or a5, a5, a6 # d1: 605520
movi a10, 136 /* 0x00000088 */ # d4: a2a088
l8ui a6, a7, 0 # d7: 620700
bne a9, a10, .Lbr003 # da: a79911
l8ui a11, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # dd: b20001
extui a11, a11, 0, 2 # e0: b0b014
addi a11, a11, -3 # e3: b2cbfd
bnez a11, .Lbr009 # e6: 564b07
l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # e9: 02001e
j .Lbr010 # ec: 461c00
.Lbr003: movi a0, 16 /* 0x00000010 */ # ef: 1c00
.Lbr004: slli a6, a6, 8 # f1: 806611
l8ui a9, a7, 2 # f4: 920702
l8ui a10, a7, 5 # f7: a20705
l8ui a11, a7, 4 # fa: b20704
slli a10, a10, 24 # fd: 80aa01
slli a11, a11, 16 # 100: 00bb11
extui a7, a5, 0, 16 # 103: 5070f4
or a6, a6, a9 # 106: 906620
or a11, a11, a6 # 109: 60bb20
addx8 a9, a0, a2 # 10c: 2090b0
or a10, a10, a11 # 10f: b0aa20
movi a11, .Ldata002 # 112: b1e2ff
s32i a9, sp, 0 /* a9 -> [(local0)] */ # 115: 9901
s32i a7, a11, 4 /* a7 -> [.Ldata003] */ # 117: 791b
s32i a10, a11, 0 /* a10 -> [.Ldata002] */ # 119: a90b
l32i a11, a9, 8 # 11b: b829
l32i a9, a9, 12 # 11d: 9839
movi a0, 0 /* 0x00000000 */ # 11f: 0c00
bltu a9, a7, .Lbr006 # 121: 773907
bne a9, a7, .Lbr005 # 124: 779902
bltu a11, a10, .Lbr006 # 127: a73b01
.Lbr005: movi a0, 1 /* 0x00000001 */ # 12a: 0c10
.Lbr006: bnez a0, .Lbr007 # 12c: ec30
l32i a0, sp, 0 /* [(local0)] */ # 12e: 0801
l16ui a11, a3, 22 /* [arg1+0x16] */ # 130: b2130b
s32i a10, a0, 8 /* a10 -> [[(local0)]+0x8] */ # 133: a920
s32i a7, a0, 12 /* a7 -> [[(local0)]+0xc] */ # 135: 7930
l32i a0, a2, 152 /* [arg0+0x98] */ # 137: 022226
l32i a6, a8, 4 /* [[arg1+0x4]+0x4] */ # 13a: 6818
l32i a5, a0, 4 /* [[arg0+0x98]+0x4] */ # 13c: 5810
l32i a0, a0, 8 /* [[arg0+0x98]+0x8] */ # 13e: 0820
add a9, a4, a5 # 140: 5a94
add a6, a6, a9 # 142: 9a66
add a0, a0, a5 # 144: 5a00
sub a11, a11, a0 # 146: 00bbc0
s32i a6, a8, 4 /* a6 -> [[arg1+0x4]+0x4] */ # 149: 6918
movi a0, 1 /* 0x00000001 */ # 14b: 0c10
s16i a11, a3, 22 /* a11 -> [arg1+0x16] */ # 14d: b2530b
j .Lbr008 # 150: 460000
.Lbr007: movi a0, 0 /* 0x00000000 */ # 153: 0c00
.Lbr008: mov a2, a0 # 155: 2d00
l32i a0, sp, 4 /* [(local1)] */ # 157: 0811
addi sp, sp, 16 /* (top of frame) */ # 159: 12c110
ret # 15c: 0df0
.Lbr009: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 15e: 020018
.Lbr010: extui a0, a0, 0, 4 # 161: 000034
j .Lbr004 # 164: 46e2ff

View file

@ -0,0 +1,71 @@
.section .data, "aw", @progbits
.global sdk_wep
.type sdk_wep, @object
sdk_wep: .word 0x00000001 # 0: 01000000
.Ldata001: .word 0x00000004 # 4: 04000000
# NOTE: The following is apparently unreferenced code/data
.word 0x00000004 # 8: 04000000
.word 0x00000000 # c: 00000000
.Lrel001: .word .Lfunc001 # 10: 04000000
.Lrel002: .word .Lfunc002 # 14: 60000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
.Lfunc001: bnez a3, .Lbr001 # 4: cc33
movi a3, 0 /* 0x00000000 */ # 6: 0c03
j .Lbr003 # 8: 461300
.Lbr001: l32i a5, a2, 144 /* [arg0+0x90] */ # b: 522224
l16ui a6, a3, 22 /* [arg1+0x16] */ # e: 62130b
movi a7, sdk_wep # 11: 71fbff
l32i a8, a3, 4 /* [arg1+0x4] */ # 14: 8813
l32i a10, a7, 4 /* [.Ldata001] */ # 16: a817
l32i a7, a7, 4 /* [.Ldata001] */ # 18: 7817
l32i a9, a8, 4 /* [[arg1+0x4]+0x4] */ # 1a: 9818
add a6, a6, a7 # 1c: 7a66
sub a9, a9, a10 # 1e: a099c0
l32i a7, a2, 148 /* [arg0+0x94] */ # 21: 722225
s32i a9, a8, 4 /* a9 -> [[arg1+0x4]+0x4] */ # 24: 9918
s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 26: 62530b
addi a8, a5, 1 /* [arg0+0x90]+0x1 */ # 29: 1b85
bgeu a8, a5, .Lbr002 # 2b: 57b801
addi a7, a7, 1 /* [arg0+0x94]+0x1 */ # 2e: 1b77
.Lbr002: movi a3, 1 /* 0x00000001 */ # 30: 0c13
s32i a7, a2, 148 /* a7 -> [arg0+0x94] */ # 32: 726225
s32i a8, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 35: 826224
ssai 16 # 38: 104040
src a6, a7, a8 # 3b: 806781
s8i a6, a9, 2 # 3e: 624902
l32i a5, a2, 144 /* [arg0+0x90] */ # 41: 522224
l32i a11, a2, 148 /* [arg0+0x94] */ # 44: b22225
ssai 8 # 47: 004840
src a11, a11, a5 # 4a: 50bb81
s8i a11, a9, 1 # 4d: b24901
l32i a10, a2, 144 /* [arg0+0x90] */ # 50: a22224
s8i a10, a9, 0 # 53: a24900
s8i a4, a9, 3 # 56: 424903
.Lbr003: mov a2, a3 # 59: 2d03
ret # 5b: 0df0
.balign 4
# Function @ .irom0.text+0x60
.Lfunc002: l32i a5, a2, 152 /* [arg0+0x98] */ # 60: 522226
l32i a8, a3, 4 /* [arg1+0x4] */ # 63: 8813
l16ui a2, a3, 22 /* [arg1+0x16] */ # 65: 22130b
l32i a7, a8, 4 /* [[arg1+0x4]+0x4] */ # 68: 7818
l32i a6, a5, 4 /* [[arg0+0x98]+0x4] */ # 6a: 6815
l32i a5, a5, 8 /* [[arg0+0x98]+0x8] */ # 6c: 5825
add a9, a4, a6 # 6e: 6a94
add a7, a7, a9 # 70: 9a77
add a5, a5, a6 # 72: 6a55
sub a2, a2, a5 # 74: 5022c0
s32i a7, a8, 4 /* a7 -> [[arg1+0x4]+0x4] */ # 77: 7918
s16i a2, a3, 22 /* a2 -> [arg1+0x16] */ # 79: 22530b
movi a2, 1 /* 0x00000001 */ # 7c: 0c12
ret /* 0x00000001 */ # 7e: 0df0

View file

@ -0,0 +1,43 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_ieee80211_getmgtframe
.type sdk_ieee80211_getmgtframe, @function
sdk_ieee80211_getmgtframe:
movi a5, -4 /* 0xfffffffc */ # 4: 7cc5
addi sp, sp, -16 /* (local0) */ # 6: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 9: 0911
s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921
movi a0, 256 /* 0x00000100 */ # d: 02a100
mov a12, a3 /* arg1 */ # 10: cd03
add a3, a3, a4 # 12: 4a33
addi a3, a3, 3 # 14: 3b33
and a4, a3, a5 # 16: 504310
bgeu a0, a4, .Lbr001 # 19: 47b004
movi a2, 0 /* 0x00000000 */ # 1c: 0c02
j .Lbr003 # 1e: 860700
.Lbr001: movi a3, 4 /* 0x00000004 */ # 21: 0c43
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 23: 2901
movi a5, 65 /* 0x00000041 */ # 25: 4c15
bgeu a4, a5, .Lbr002 # 27: 57b401
movi a3, 5 /* 0x00000005 */ # 2a: 0c53
.Lbr002: movi a2, 0 /* 0x00000000 */ # 2c: 0c02
call0 sdk_esf_buf_alloc # 2e: 01f4ffc0
# 32: 0000
beqz a2, .Lbr003 # 34: 8c82
l32i a6, a2, 4 # 36: 6812
l32i a6, a6, 4 # 38: 6816
l32i a7, sp, 0 /* [(local0)] */ # 3a: 7801
add a6, a12, a6 # 3c: 6a6c
s32i a6, a7, 0 /* a6 -> [[(local0)]] */ # 3e: 6907
.Lbr003: l32i a12, sp, 8 /* [(local2)] */ # 40: c821
l32i a0, sp, 4 /* [(local1)] */ # 42: 0811
addi sp, sp, 16 /* (top of frame) */ # 44: 12c110
ret # 47: 0df0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

View file

@ -0,0 +1,993 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_ieee80211_deliver_data
.type sdk_ieee80211_deliver_data, @function
sdk_ieee80211_deliver_data:
addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # f: 0921
l32i a0, a2, 0 /* [arg0] */ # 11: 0802
s32i a0, sp, 0 /* [arg0] -> [(local0)] */ # 13: 0901
l8ui a0, a0, 47 /* [[arg0]+0x2f] */ # 15: 02002f
s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 18: 3911
bbsi a0, 4, .Lbr001 # 1a: 47e00e
s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 1d: 3911
beqz a3, .Lbr002 # 1f: acc3
mov a2, a3 /* arg1 */ # 21: 2d03
call0 sdk_ppRecycleRxPkt # 23: 01f7ffc0
# 27: 0000
j .Lbr002 # 29: 860800
.Lbr001: movi a2, 3 /* 0x00000003 */ # 2c: 0c32
l16ui a3, a3, 22 /* [arg1+0x16] */ # 2e: 32130b
movi a4, 2 /* 0x00000002 */ # 31: 0c24
call0 pbuf_alloc # 33: 01f4ffc0
# 37: 0000
l32i a4, sp, 4 /* [(local1)] */ # 39: 4811
l32i a5, a4, 4 /* [[(local1)]+0x4] */ # 3b: 5814
mov a3, a2 # 3d: 3d02
l32i a5, a5, 4 /* [[[(local1)]+0x4]+0x4] */ # 3f: 5815
s32i a5, a2, 4 # 41: 5912
s32i a2, a4, 0 /* a2 -> [[(local1)]] */ # 43: 2904
s32i a4, a2, 16 # 45: 4942
l32i a2, sp, 0 /* [(local0)] */ # 47: 2801
call0 ethernetif_input # 49: 01efffc0
# 4d: 0000
.Lbr002: l32i a0, sp, 8 /* [(local2)] */ # 4f: 0821
addi sp, sp, 16 /* (top of frame) */ # 51: 12c110
ret # 54: 0df0
.literal_position # 58: 80f30000
# 5c: 81370000
# 60: f8ff0000
# 64: 00000000
# 68: 00000000
# 6c: 00000000
# 70: 00000000
# 74: 00000000
# 78: 00000000
# 7c: 00000000
# 80: 00000000
# Function @ .irom0.text+0x84
# Local variables/stack:
# (local0): byte[31] @ -0x2f
# (local1): word @ -0x10
# (local2): word @ -0xc
# (local3): word[2] @ -0x8
.global sdk_ieee80211_decap
.type sdk_ieee80211_decap, @function
sdk_ieee80211_decap:
addi sp, sp, -48 /* (FP)-0x30 */ # 84: 12c1d0
s32i a12, sp, 40 /* a12 -> [(local3)] */ # 87: c9a1
s32i a0, sp, 36 /* a0 -> [(local2)] */ # 89: 0991
mov a12, a2 /* arg0 */ # 8b: cd02
addi a0, a5, 14 /* arg3+0xe */ # 8d: eb05
bgeu a4, a0, .Lbr003 # 8f: 07b40a
call0 sdk_ppRecycleRxPkt # 92: 01f4ffc0
# 96: 0000
movi a12, 0 /* 0x00000000 */ # 98: 0c0c
j .Lbr008 # 9a: 063100
.Lbr003: mov a4, a5 /* arg3 */ # 9d: 4d05
mov a2, sp /* (FP)-0x30 */ # 9f: 2d01
call0 memcpy # a1: 01f1ffc0
# a5: 0000
l32i a3, a12, 4 /* [arg0+0x4] */ # a7: 381c
l32i a0, a3, 4 /* [[arg0+0x4]+0x4] */ # a9: 0813
movi a2, 170 /* 0x000000aa */ # ab: 22a0aa
l8ui a4, a0, 0 /* [[[arg0+0x4]+0x4]] */ # ae: 420000
l8ui a5, a0, 1 /* [[[arg0+0x4]+0x4]+0x1] */ # b1: 520001
bne a4, a2, .Lbr004 # b4: 27942f
bne a5, a2, .Lbr004 # b7: 27952c
l8ui a6, a0, 2 /* [[[arg0+0x4]+0x4]+0x2] */ # ba: 620002
bnei a6, 3, .Lbr004 # bd: 663626
l8ui a7, a0, 3 /* [[[arg0+0x4]+0x4]+0x3] */ # c0: 720003
bnez a7, .Lbr004 # c3: ec07
l8ui a8, a0, 4 /* [[[arg0+0x4]+0x4]+0x4] */ # c5: 820004
bnez a8, .Lbr004 # c8: dcb8
l8ui a9, a0, 5 /* [[[arg0+0x4]+0x4]+0x5] */ # ca: 920005
bnez a9, .Lbr004 # cd: dc69
movi a10, 0x0000f380 # cf: a1e2ff
l8ui a4, a0, 7 /* [[[arg0+0x4]+0x4]+0x7] */ # d2: 420007
l8ui a5, a0, 6 /* [[[arg0+0x4]+0x4]+0x6] */ # d5: 520006
slli a4, a4, 8 # d8: 804411
or a4, a4, a5 # db: 504420
beq a4, a10, .Lbr004 # de: a71405
movi a5, 0x00003781 # e1: 51deff
bne a4, a5, .Lbr005 # e4: 579413
.Lbr004: l16ui a6, a12, 22 /* [arg0+0x16] */ # e7: 621c0b
l32i a7, a3, 4 /* [[arg0+0x4]+0x4] */ # ea: 7813
s32i a7, sp, 32 /* [[arg0+0x4]+0x4] -> [(local1)] */ # ec: 7981
addi a6, a6, 14 /* [arg0+0x16]+0xe */ # ee: eb66
addi a7, a7, -14 /* [[arg0+0x4]+0x4]-0xe */ # f0: 72c7f2
s32i a7, a3, 4 /* [[arg0+0x4]+0x4]-0xe -> [[arg0+0x4]+0x4] */ # f3: 7913
s16i a6, a12, 22 /* [arg0+0x16]+0xe -> [arg0+0x16] */ # f5: 625c0b
j .Lbr006 # f8: 060800
.Lbr005: srli a8, a4, 8 # fb: 408841
movi a10, 0x0000fff8 # fe: a1d8ff
l16ui a9, a12, 22 /* [arg0+0x16] */ # 101: 921c0b
addi a2, a0, 8 /* [[arg0+0x4]+0x4]+0x8 */ # 104: 8b20
addi a11, a0, -6 /* [[arg0+0x4]+0x4]-0x6 */ # 106: b2c0fa
s32i a11, sp, 32 /* [[arg0+0x4]+0x4]-0x6 -> [(local1)] */ # 109: b981
s32i a2, a3, 4 /* [[arg0+0x4]+0x4]+0x8 -> [[arg0+0x4]+0x4] */ # 10b: 2913
s32i a11, a3, 4 /* [[arg0+0x4]+0x4]-0x6 -> [[arg0+0x4]+0x4] */ # 10d: b913
add a9, a9, a10 /* [arg0+0x16]+0xfff8 */ # 10f: aa99
addi a9, a9, 14 /* [arg0+0x16]+0x10006 */ # 111: eb99
s16i a9, a12, 22 /* [arg0+0x16]+0x10006 -> [arg0+0x16] */ # 113: 925c0b
s8i a4, a0, 6 /* a4 -> [[[arg0+0x4]+0x4]+0x6] */ # 116: 424006
s8i a8, a0, 7 /* a8 -> [[[arg0+0x4]+0x4]+0x7] */ # 119: 824007
.Lbr006: l8ui a0, sp, 1 /* [(local0)] */ # 11c: 020101
extui a0, a0, 0, 2 # 11f: 000014
beqz a0, .Lbr007 # 122: ac20
beqi a0, 1, .Lbr009 # 124: 261045
bnei a0, 2, .Lbr008 # 127: 662037
l32i a2, sp, 32 /* [(local1)] */ # 12a: 2881
addi a3, sp, 4 /* (FP)-0x2c */ # 12c: 4b31
movi a4, 6 /* 0x00000006 */ # 12e: 0c64
call0 memcpy # 130: 01cfffc0
# 134: 0000
addi a3, sp, 16 /* (FP)-0x20 */ # 136: 32c110
l32i a2, sp, 32 /* [(local1)] */ # 139: 2881
movi a4, 6 /* 0x00000006 */ # 13b: 0c64
addi a2, a2, 6 /* [(local1)]+0x6 */ # 13d: 6b22
call0 memcpy # 13f: 01ccffc0
# 143: 0000
j .Lbr008 # 145: 460600
.Lbr007: l32i a2, sp, 32 /* [(local1)] */ # 148: 2881
addi a3, sp, 4 /* (FP)-0x2c */ # 14a: 4b31
movi a4, 6 /* 0x00000006 */ # 14c: 0c64
call0 memcpy # 14e: 01c9ffc0
# 152: 0000
addi a3, sp, 10 /* (FP)-0x26 */ # 154: ab31
l32i a2, sp, 32 /* [(local1)] */ # 156: 2881
movi a4, 6 /* 0x00000006 */ # 158: 0c64
addi a2, a2, 6 /* [(local1)]+0x6 */ # 15a: 6b22
call0 memcpy # 15c: 01c7ffc0
# 160: 0000
.Lbr008: mov a2, a12 # 162: 2d0c
l32i a0, sp, 36 /* [(local2)] */ # 164: 0891
l32i a12, sp, 40 /* [(local3)] */ # 166: c8a1
addi sp, sp, 48 /* (top of frame) */ # 168: 12c130
ret # 16b: 0df0
.Lbr009: l32i a2, sp, 32 /* [(local1)] */ # 16d: 2881
addi a3, sp, 16 /* (FP)-0x20 */ # 16f: 32c110
movi a4, 6 /* 0x00000006 */ # 172: 0c64
call0 memcpy # 174: 01c2ffc0
# 178: 0000
addi a3, sp, 10 /* (FP)-0x26 */ # 17a: ab31
l32i a2, sp, 32 /* [(local1)] */ # 17c: 2881
movi a4, 6 /* 0x00000006 */ # 17e: 0c64
addi a2, a2, 6 /* [(local1)]+0x6 */ # 180: 6b22
call0 memcpy # 182: 01bfffc0
# 186: 0000
j .Lbr008 # 188: 86f5ff
.literal_position # 18c: 00000000
# 190: 00000000
# 194: 00000000
# Function @ .irom0.text+0x198
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_ieee80211_setup_rates
.type sdk_ieee80211_setup_rates, @function
sdk_ieee80211_setup_rates:
addi sp, sp, -16 /* (local0) */ # 198: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 19b: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 19d: e931
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 19f: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1a1: c911
mov a13, a4 /* arg2 */ # 1a3: dd04
mov a12, a2 /* arg0 */ # 1a5: cd02
mov a14, a3 /* arg1 */ # 1a7: ed03
addi a2, a2, 71 /* arg0+0x47 */ # 1a9: 22c247
movi a3, 0 /* 0x00000000 */ # 1ac: 0c03
movi a4, 16 /* 0x00000010 */ # 1ae: 1c04
call0 memset # 1b0: 01f7ffc0
# 1b4: 0000
addi a3, a14, 2 /* arg1+0x2 */ # 1b6: 2b3e
addi a2, a12, 72 /* arg0+0x48 */ # 1b8: 22cc48
l8ui a4, a14, 1 /* [arg1+0x1] */ # 1bb: 420e01
s8i a4, a12, 71 /* [arg1+0x1] -> [arg0+0x47] */ # 1be: 424c47
call0 memcpy # 1c1: 01f3ffc0
# 1c5: 0000
beqz a13, .Lbr011 # 1c7: ac8d
l8ui a0, a12, 71 /* [arg0+0x47] */ # 1c9: 020c47
l8ui a14, a13, 1 /* [arg2+0x1] */ # 1cc: e20d01
add a2, a14, a0 # 1cf: 0a2e
blti a2, 16, .Lbr010 # 1d1: a6b207
movi a14, 15 /* 0x0000000f */ # 1d4: 0cfe
sub a14, a14, a0 # 1d6: 00eec0
extui a14, a14, 0, 8 # 1d9: e0e074
.Lbr010: addi a3, a13, 2 /* arg2+0x2 */ # 1dc: 2b3d
mov a4, a14 # 1de: 4d0e
add a2, a0, a12 # 1e0: ca20
addi a2, a2, 72 # 1e2: 22c248
call0 memcpy # 1e5: 01ebffc0
# 1e9: 0000
l8ui a3, a12, 71 /* [arg0+0x47] */ # 1eb: 320c47
add a3, a3, a14 # 1ee: ea33
s8i a3, a12, 71 /* a3 -> [arg0+0x47] */ # 1f0: 324c47
.Lbr011: movi a2, 0 /* 0x00000000 */ # 1f3: 0c02
l32i a12, sp, 4 /* [(local1)] */ # 1f5: c811
l32i a13, sp, 8 /* [(local2)] */ # 1f7: d821
l32i a14, sp, 12 /* [(local3)] */ # 1f9: e831
l32i a0, sp, 0 /* [(local0)] */ # 1fb: 0801
addi sp, sp, 16 /* (top of frame) */ # 1fd: 12c110
ret /* 0x00000000 */ # 200: 0df0
.literal_position # 204: 00000000
# Function @ .irom0.text+0x208
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ieee80211_alloc_challenge
.type sdk_ieee80211_alloc_challenge, @function
sdk_ieee80211_alloc_challenge:
addi sp, sp, -16 /* (local0) */ # 208: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 20b: 2901
l32i a2, a2, 84 /* [arg0+0x54] */ # 20d: 222215
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 210: 0911
bnez a2, .Lbr012 # 212: ccc2
movi a2, 128 /* 0x00000080 */ # 214: 22a080
call0 malloc # 217: 01fbffc0
# 21b: 0000
l32i a0, sp, 0 /* [(local0)] */ # 21d: 0801
s32i a2, a0, 84 /* a2 -> [[(local0)]+0x54] */ # 21f: 226015
.Lbr012: l32i a0, sp, 4 /* [(local1)] */ # 222: 0811
movi a3, 1 /* 0x00000001 */ # 224: 0c13
movnez a2, a3, a2 # 226: 202393
addi sp, sp, 16 /* (top of frame) */ # 229: 12c110
ret # 22c: 0df0
.literal_position # 230: 00000000
# 234: 0050f202
# 238: 0050f201
# 23c: 00904c33
# 240: 00904c34
# 244: 00000000
# 248: 00000000
# Function @ .irom0.text+0x24c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_ieee80211_parse_beacon
.type sdk_ieee80211_parse_beacon, @function
sdk_ieee80211_parse_beacon:
addi sp, sp, -32 /* (local0) */ # 24c: 12c1e0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 24f: 0911
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 251: c921
s32i a15, sp, 20 /* a15 -> [(local5)] */ # 253: f951
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 255: e941
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 257: d931
mov a14, a2 /* arg0 */ # 259: ed02
l32i a13, a2, 4 /* [arg0+0x4] */ # 25b: d812
l16ui a15, a2, 22 /* [arg0+0x16] */ # 25d: f2120b
l32i a13, a13, 4 /* [[arg0+0x4]+0x4] */ # 260: d81d
mov a12, a3 /* arg1 */ # 262: cd03
add a15, a15, a13 # 264: daff
addi a15, a15, 24 # 266: f2cf18
sub a5, a15, a13 # 269: d05fc0
addi a0, a5, -24 # 26c: 02c5e8
bgei a0, 12, .Lbr013 # 26f: e6a002
j .Lbr044 # 272: 068d00
.Lbr013: mov a2, a3 /* arg1 */ # 275: 2d03
s32i a5, sp, 0 /* a5 -> [(local0)] */ # 277: 5901
movi a3, 72 /* 0x00000048 */ # 279: 4c83
call0 bzero # 27b: 01f2ffc0
# 27f: 0000
addi a5, a13, 24 /* [[arg0+0x4]+0x4]+0x18 */ # 281: 52cd18
l16ui a4, a13, 32 /* [[[arg0+0x4]+0x4]+0x20] */ # 284: 421d10
s16i a4, a12, 6 /* [[[arg0+0x4]+0x4]+0x20] -> [arg1+0x6] */ # 287: 425c03
l16ui a3, a13, 34 /* [[[arg0+0x4]+0x4]+0x22] */ # 28a: 321d11
s32i a5, a12, 24 /* [[arg0+0x4]+0x4]+0x18 -> [arg1+0x18] */ # 28d: 596c
addi a13, a13, 36 /* [[arg0+0x4]+0x4]+0x24 */ # 28f: d2cd24
l32i a2, a14, 32 /* [arg0+0x20] */ # 292: 288e
s16i a3, a12, 2 /* [[[arg0+0x4]+0x4]+0x22] -> [arg1+0x2] */ # 294: 325c01
l32i a2, a2, 8 /* [[arg0+0x20]+0x8] */ # 297: 2822
call0 sdk_ieee80211_chan2ieee # 299: 01ebffc0
# 29d: 0000
s32i a13, a12, 12 /* [[arg0+0x4]+0x4]+0x24 -> [arg1+0xc] */ # 29f: d93c
movi a6, 221 /* 0x000000dd */ # 2a1: 62a0dd
s8i a2, a12, 1 /* a2 -> [arg1+0x1] */ # 2a4: 224c01
l32i a7, sp, 0 /* [(local0)] */ # 2a7: 7801
extui a3, a2, 0, 8 # 2a9: 203074
s8i a3, a12, 0 /* a3 -> [arg1] */ # 2ac: 324c00
addi a7, a7, -36 /* [(local0)]-0x24 */ # 2af: 72c7dc
s32i a7, a12, 16 /* [(local0)]-0x24 -> [arg1+0x10] */ # 2b2: 794c
bgei a7, 2, .Lbr014 # 2b4: e62702
j .Lbr045 # 2b7: 067d00
.Lbr014: movi a8, 0x02f25000 # 2ba: 81deff
movi a10, 50 /* 0x00000032 */ # 2bd: 3c2a
movi a11, 45 /* 0x0000002d */ # 2bf: 2cdb
movi a9, sdk_g_ic+0x1d8 # 2c1: 91dbff
sub a2, a15, a13 # 2c4: d02fc0
.Lbr015: l8ui a0, a13, 1 # 2c7: 020d01
mov a7, a13 # 2ca: 7d0d
addi a4, a0, 2 # 2cc: 2b40
bge a2, a4, .Lbr016 # 2ce: 47a202
j .Lbr044 # 2d1: 467500
.Lbr016: l8ui a2, a13, 0 # 2d4: 220d00
movi a5, 32 /* 0x00000020 */ # 2d7: 2c05
bgei a2, 32, .Lbr017 # 2d9: e6c202
j .Lbr037 # 2dc: 065e00
.Lbr017: bge a5, a2, .Lbr020 # 2df: 27a50d
bge a2, a10, .Lbr018 # 2e2: a7a202
j .Lbr034 # 2e5: c64f00
.Lbr018: blt a10, a2, .Lbr021 # 2e8: 272a11
s32i a13, a12, 40 /* a13 -> [arg1+0x28] */ # 2eb: d9ac
.Lbr019: l8ui a0, a7, 1 # 2ed: 020701
.Lbr020: add a13, a0, a7 # 2f0: 7ad0
addi a13, a13, 2 # 2f2: 2bdd
sub a2, a15, a13 # 2f4: d02fc0
bgei a2, 2, .Lbr015 # 2f7: e622cc
j .Lbr045 # 2fa: 466c00
.Lbr021: bge a2, a6, .Lbr022 # 2fd: 67a202
j .Lbr033 # 300: 064600
.Lbr022: blt a6, a2, .Lbr020 # 303: 2726e9
movi a2, 0 /* 0x00000000 */ # 306: 0c02
bltui a0, 4, .Lbr023 # 308: b64025
l8ui a5, a13, 3 # 30b: 520d03
l8ui a4, a13, 2 # 30e: 420d02
slli a5, a5, 8 # 311: 805511
l8ui a13, a13, 5 # 314: d20d05
or a4, a4, a5 # 317: 504420
l8ui a5, a7, 4 # 31a: 520704
slli a13, a13, 24 # 31d: 80dd01
slli a5, a5, 16 # 320: 005511
or a5, a5, a13 # 323: d05520
or a4, a4, a5 # 326: 504420
movi a5, 0x01f25000 # 329: 51c3ff
bne a4, a5, .Lbr023 # 32c: 579401
movi a2, 1 /* 0x00000001 */ # 32f: 0c12
.Lbr023: beqz a2, .Lbr025 # 331: 8c62
s32i a7, a12, 48 /* a7 -> [arg1+0x30] */ # 333: 79cc
.Lbr024: l8ui a0, a7, 1 # 335: 020701
j .Lbr020 # 338: 06edff
.Lbr025: movi a2, 0 /* 0x00000000 */ # 33b: 0c02
bltui a0, 6, .Lbr026 # 33d: b66028
l8ui a5, a7, 5 # 340: 520705
l8ui a4, a7, 3 # 343: 420703
l8ui a13, a7, 2 # 346: d20702
slli a4, a4, 8 # 349: 804411
or a13, a13, a4 # 34c: 40dd20
l8ui a4, a7, 4 # 34f: 420704
slli a5, a5, 24 # 352: 805501
slli a4, a4, 16 # 355: 004411
or a4, a4, a5 # 358: 504420
or a13, a13, a4 # 35b: 40dd20
bne a13, a8, .Lbr026 # 35e: 879d07
l8ui a5, a7, 6 # 361: 520706
bnei a5, 1, .Lbr026 # 364: 661501
movi a2, 1 /* 0x00000001 */ # 367: 0c12
.Lbr026: bnez a2, .Lbr028 # 369: ece2
movi a2, 0 /* 0x00000000 */ # 36b: 0c02
bltui a0, 6, .Lbr027 # 36d: b66028
l8ui a5, a7, 5 # 370: 520705
l8ui a4, a7, 3 # 373: 420703
l8ui a13, a7, 2 # 376: d20702
slli a4, a4, 8 # 379: 804411
or a13, a13, a4 # 37c: 40dd20
l8ui a4, a7, 4 # 37f: 420704
slli a5, a5, 24 # 382: 805501
slli a4, a4, 16 # 385: 004411
or a4, a4, a5 # 388: 504420
or a13, a13, a4 # 38b: 40dd20
bne a13, a8, .Lbr027 # 38e: 879d07
l8ui a13, a7, 6 # 391: d20706
movi a5, 1 /* 0x00000001 */ # 394: 0c15
moveqz a2, a5, a13 # 396: d02583
.Lbr027: beqz a2, .Lbr029 # 399: 8c32
.Lbr028: s32i a7, a12, 56 /* a7 -> [arg1+0x38] */ # 39b: 79ec
j .Lbr024 # 39d: 06e5ff
.Lbr029: l32i a2, a9, 0x334 /* [sdk_g_ic+0x50c] */ # 3a0: 2229cd
extui a2, a2, 28, 1 # 3a3: 202c05
beqz a2, .Lbr020 # 3a6: 1662f4
movi a2, 0 /* 0x00000000 */ # 3a9: 0c02
bltui a0, 4, .Lbr030 # 3ab: b64025
l8ui a13, a7, 5 # 3ae: d20705
l8ui a5, a7, 3 # 3b1: 520703
l8ui a4, a7, 2 # 3b4: 420702
slli a5, a5, 8 # 3b7: 805511
or a4, a4, a5 # 3ba: 504420
l8ui a5, a7, 4 # 3bd: 520704
slli a13, a13, 24 # 3c0: 80dd01
slli a5, a5, 16 # 3c3: 005511
or a5, a5, a13 # 3c6: d05520
or a4, a4, a5 # 3c9: 504420
movi a5, 0x334c9000 # 3cc: 519cff
bne a4, a5, .Lbr030 # 3cf: 579401
movi a2, 1 /* 0x00000001 */ # 3d2: 0c12
.Lbr030: beqz a2, .Lbr031 # 3d4: 8cb2
l32i a13, a12, 60 /* [arg1+0x3c] */ # 3d6: d8fc
bnez a13, .Lbr020 # 3d8: 564df1
s32i a7, a12, 60 /* a7 -> [arg1+0x3c] */ # 3db: 79fc
l8ui a0, a7, 1 # 3dd: 020701
j .Lbr020 # 3e0: 06c3ff
.Lbr031: movi a2, 0 /* 0x00000000 */ # 3e3: 0c02
bltui a0, 4, .Lbr032 # 3e5: b64025
l8ui a13, a7, 5 # 3e8: d20705
l8ui a5, a7, 3 # 3eb: 520703
l8ui a4, a7, 2 # 3ee: 420702
slli a5, a5, 8 # 3f1: 805511
or a4, a4, a5 # 3f4: 504420
l8ui a5, a7, 4 # 3f7: 520704
slli a13, a13, 24 # 3fa: 80dd01
slli a5, a5, 16 # 3fd: 005511
or a5, a5, a13 # 400: d05520
or a4, a4, a5 # 403: 504420
movi a5, 0x344c9000 # 406: 518eff
bne a4, a5, .Lbr032 # 409: 579401
movi a2, 1 /* 0x00000001 */ # 40c: 0c12
.Lbr032: beqz a2, .Lbr020 # 40e: 16e2ed
l32i a13, a12, 64 /* [arg1+0x40] */ # 411: d22c10
bnez a13, .Lbr020 # 414: 568ded
s32i a7, a12, 60 /* a7 -> [arg1+0x3c] */ # 417: 79fc
j .Lbr024 # 419: 06c6ff
.Lbr033: addi a4, a2, -61 # 41c: 42c2c3
bnez a4, .Lbr020 # 41f: 56d4ec
s32i a13, a12, 64 /* a13 -> [arg1+0x40] */ # 422: d26c10
j .Lbr019 # 425: 06b1ff
.Lbr034: blt a2, a11, .Lbr036 # 428: b72212
blt a11, a2, .Lbr035 # 42b: 272b04
s32i a13, a12, 60 /* a13 -> [arg1+0x3c] */ # 42e: d9fc
j .Lbr019 # 430: 46aeff
.Lbr035: addi a5, a2, -48 # 433: 52c2d0
bnez a5, .Lbr020 # 436: 5665eb
s32i a13, a12, 52 /* a13 -> [arg1+0x34] */ # 439: d9dc
j .Lbr019 # 43b: 86abff
.Lbr036: addi a13, a2, -42 # 43e: d2c2d6
bnez a13, .Lbr020 # 441: 56bdea
addi a2, a0, -1 # 444: 0b20
bnez a2, .Lbr020 # 446: 5662ea
l8ui a4, a7, 2 # 449: 420702
movi a5, 256 /* 0x00000100 */ # 44c: 52a100
or a4, a4, a5 # 44f: 504420
s16i a4, a12, 4 /* a4 -> [arg1+0x4] */ # 452: 425c02
j .Lbr019 # 455: 06a5ff
.Lbr037: blti a2, 4, .Lbr041 # 458: a6422c
bgei a2, 5, .Lbr038 # 45b: e65202
j .Lbr020 # 45e: 86a3ff
.Lbr038: blti a2, 6, .Lbr040 # 461: a66210
bgei a2, 7, .Lbr039 # 464: e67202
j .Lbr020 # 467: 46a1ff
.Lbr039: addi a13, a2, -7 # 46a: d2c2f9
bnez a13, .Lbr020 # 46d: 56fde7
s32i a7, a12, 28 /* a7 -> [arg1+0x1c] */ # 470: 797c
j .Lbr019 # 472: c69dff
.Lbr040: addi a4, a2, -5 # 475: 42c2fb
bnez a4, .Lbr020 # 478: 5644e7
s32i a13, a12, 20 /* a13 -> [arg1+0x14] */ # 47b: d95c
l32i a5, a14, 16 /* [arg0+0x10] */ # 47d: 584e
sub a5, a13, a5 # 47f: 505dc0
s8i a5, a12, 8 /* a5 -> [arg1+0x8] */ # 482: 524c08
j .Lbr019 # 485: 0699ff
.Lbr041: blti a2, 1, .Lbr043 # 488: a61216
bgei a2, 2, .Lbr042 # 48b: e62204
s32i a13, a12, 36 /* a13 -> [arg1+0x24] */ # 48e: d99c
j .Lbr019 # 490: 4696ff
.Lbr042: addi a13, a2, -3 # 493: d2c2fd
bnez a13, .Lbr020 # 496: 566de5
l8ui a3, a7, 2 # 499: 320702
s8i a3, a12, 0 /* a3 -> [arg1] */ # 49c: 324c00
j .Lbr019 # 49f: 8692ff
.Lbr043: bnez a2, .Lbr020 # 4a2: 56a2e4
s32i a13, a12, 32 /* a13 -> [arg1+0x20] */ # 4a5: d98c
j .Lbr019 # 4a7: 8690ff
.Lbr044: movi a2, 1 /* 0x00000001 */ # 4aa: 0c12
j .Lbr054 # 4ac: 862100
.Lbr045: l32i a0, a12, 36 /* [arg1+0x24] */ # 4af: 089c
l32i a7, a12, 40 /* [arg1+0x28] */ # 4b1: 78ac
beqz a0, .Lbr055 # 4b3: 16e008
l8ui a14, a0, 1 /* [[arg1+0x24]+0x1] */ # 4b6: e20001
bltui a14, 16, .Lbr046 # 4b9: b6be02
j .Lbr055 # 4bc: 462100
.Lbr046: movi a2, 0 /* 0x00000000 */ # 4bf: 0c02
.Lbr047: beqz a0, .Lbr048 # 4c1: 9c30
beqz a7, .Lbr048 # 4c3: 9c17
l8ui a4, a7, 1 /* [[arg1+0x28]+0x1] */ # 4c5: 420701
l8ui a5, a0, 1 /* [[arg1+0x24]+0x1] */ # 4c8: 520001
movi a15, 15 /* 0x0000000f */ # 4cb: 0cff
sub a15, a15, a5 # 4cd: 50ffc0
bge a15, a4, .Lbr048 # 4d0: 47af04
movi a7, 4 /* 0x00000004 */ # 4d3: 0c47
or a2, a2, a7 # 4d5: 702220
.Lbr048: movi a7, 8 /* 0x00000008 */ # 4d8: 0c87
l32i a0, a12, 32 /* [arg1+0x20] */ # 4da: 088c
l8ui a10, a12, 1 /* [arg1+0x1] */ # 4dc: a20c01
beqz a0, .Lbr049 # 4df: 8c60
l8ui a9, a0, 1 /* [[arg1+0x20]+0x1] */ # 4e1: 920001
movi a8, 32 /* 0x00000020 */ # 4e4: 2c08
bgeu a8, a9, .Lbr050 # 4e6: 97b802
.Lbr049: or a2, a2, a7 # 4e9: 702220
.Lbr050: l32i a0, a12, 28 /* [arg1+0x1c] */ # 4ec: 087c
beq a10, a3, .Lbr051 # 4ee: 371a04
movi a11, 32 /* 0x00000020 */ # 4f1: 2c0b
or a2, a2, a11 # 4f3: b02220
.Lbr051: movi a3, 0 /* 0x00000000 */ # 4f6: 0c03
beqz a0, .Lbr052 # 4f8: 8c60
l8ui a13, a0, 1 /* [[arg1+0x1c]+0x1] */ # 4fa: d20001
bgeui a13, 3, .Lbr052 # 4fd: f63d01
s32i a3, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # 500: 397c
.Lbr052: l32i a0, a12, 60 /* [arg1+0x3c] */ # 502: 08fc
movi a8, 26 /* 0x0000001a */ # 504: 1ca8
beqz a0, .Lbr053 # 506: 9c30
l8ui a14, a0, 1 /* [[arg1+0x3c]+0x1] */ # 508: e20001
movi a4, 30 /* 0x0000001e */ # 50b: 1ce4
l8ui a5, a0, 0 /* [[arg1+0x3c]] */ # 50d: 520000
mov a15, a8 /* 0x0000001a */ # 510: fd08
sub a5, a5, a6 /* [[arg1+0x3c]]-0xdd */ # 512: 6055c0
moveqz a15, a4, a5 # 515: 50f483
bgeu a14, a15, .Lbr053 # 518: f7be01
s32i a3, a12, 60 /* 0x00000000 -> [arg1+0x3c] */ # 51b: 39fc
.Lbr053: l32i a0, a12, 64 /* [arg1+0x40] */ # 51d: 022c10
movi a9, 22 /* 0x00000016 */ # 520: 1c69
beqz a0, .Lbr054 # 522: 9c00
l8ui a10, a0, 0 /* [[arg1+0x40]] */ # 524: a20000
l8ui a7, a0, 1 /* [[arg1+0x40]+0x1] */ # 527: 720001
sub a10, a10, a6 /* [[arg1+0x40]]-0xdd */ # 52a: 60aac0
moveqz a9, a8, a10 # 52d: a09883
bgeu a7, a9, .Lbr054 # 530: 97b702
s32i a3, a12, 64 /* 0x00000000 -> [arg1+0x40] */ # 533: 326c10
.Lbr054: l32i a12, sp, 8 /* [(local2)] */ # 536: c821
l32i a13, sp, 12 /* [(local3)] */ # 538: d831
l32i a14, sp, 16 /* [(local4)] */ # 53a: e841
l32i a15, sp, 20 /* [(local5)] */ # 53c: f851
l32i a0, sp, 4 /* [(local1)] */ # 53e: 0811
addi sp, sp, 32 /* (top of frame) */ # 540: 12c120
ret # 543: 0df0
.Lbr055: movi a2, 2 /* 0x00000002 */ # 545: 0c22
j .Lbr047 # 547: 86ddff
.literal_position # 54c: 0050f200
# 550: 0050f201
# 554: 0050f202
# 558: 0050f204
# 55c: 0050f205
# Function @ .irom0.text+0x560
.Lfunc001: movi a4, 0x00f25000 # 560: 41fbff
l8ui a7, a2, 3 /* [arg0+0x3] */ # 563: 720203
l8ui a6, a2, 1 /* [arg0+0x1] */ # 566: 620201
l8ui a5, a2, 0 /* [arg0] */ # 569: 520200
slli a6, a6, 8 # 56c: 806611
or a5, a5, a6 # 56f: 605520
l8ui a6, a2, 2 /* [arg0+0x2] */ # 572: 620202
slli a7, a7, 24 # 575: 807701
slli a6, a6, 16 # 578: 006611
or a6, a6, a7 # 57b: 706620
or a2, a5, a6 # 57e: 602520
beq a2, a4, .Lbr059 # 581: 471231
movi a7, 0x01f25000 # 584: 71f3ff
movi a8, 0x02f25000 # 587: 81f3ff
beq a2, a7, .Lbr058 # 58a: 77121d
beq a2, a8, .Lbr060 # 58d: 871229
movi a9, 0x04f25000 # 590: 91f2ff
movi a10, 0x05f25000 # 593: a1f2ff
beq a2, a9, .Lbr061 # 596: 971224
beq a2, a10, .Lbr056 # 599: a71203
movi a2, 32 /* 0x00000020 */ # 59c: 2c02
ret /* 0x00000020 */ # 59e: 0df0
.Lbr056: beqz a3, .Lbr057 # 5a0: 8c33
movi a11, 13 /* 0x0000000d */ # 5a2: 0cdb
s8i a11, a3, 0 /* 0x0d -> [arg1] */ # 5a4: b24300
.Lbr057: movi a2, 6 /* 0x00000006 */ # 5a7: 0c62
ret /* 0x00000006 */ # 5a9: 0df0
.Lbr058: beqz a3, .Lbr057 # 5ab: 1683ff
movi a2, 5 /* 0x00000005 */ # 5ae: 0c52
s8i a2, a3, 0 /* 0x05 -> [arg1] */ # 5b0: 224300
j .Lbr057 # 5b3: 06fcff
.Lbr059: movi a2, 0 /* 0x00000000 */ # 5b6: 0c02
ret /* 0x00000000 */ # 5b8: 0df0
.Lbr060: movi a2, 1 /* 0x00000001 */ # 5ba: 0c12
ret /* 0x00000001 */ # 5bc: 0df0
.Lbr061: movi a2, 3 /* 0x00000003 */ # 5be: 0c32
ret /* 0x00000003 */ # 5c0: 0df0
.literal_position # 5c4: 0050f200
# 5c8: 0050f201
# 5cc: 0050f202
# Function @ .irom0.text+0x5d0
.Lfunc002: movi a3, 0x00f25000 # 5d0: 31fdff
l8ui a6, a2, 3 /* [arg0+0x3] */ # 5d3: 620203
l8ui a5, a2, 1 /* [arg0+0x1] */ # 5d6: 520201
l8ui a4, a2, 0 /* [arg0] */ # 5d9: 420200
slli a5, a5, 8 # 5dc: 805511
or a4, a4, a5 # 5df: 504420
l8ui a5, a2, 2 /* [arg0+0x2] */ # 5e2: 520202
slli a6, a6, 24 # 5e5: 806601
slli a5, a5, 16 # 5e8: 005511
or a5, a5, a6 # 5eb: 605520
or a2, a4, a5 # 5ee: 502420
beq a2, a3, .Lbr062 # 5f1: 37120b
movi a6, 0x01f25000 # 5f4: 61f5ff
movi a7, 0x02f25000 # 5f7: 71f5ff
beq a2, a6, .Lbr064 # 5fa: 67120a
beq a2, a7, .Lbr063 # 5fd: 771203
.Lbr062: movi a2, 0 /* 0x00000000 */ # 600: 0c02
ret /* 0x00000000 */ # 602: 0df0
.Lbr063: movi a2, 2 /* 0x00000002 */ # 604: 0c22
ret /* 0x00000002 */ # 606: 0df0
.Lbr064: movi a2, 1 /* 0x00000001 */ # 608: 0c12
ret /* 0x00000001 */ # 60a: 0df0
.literal_position # 60c: 000fac00
# 610: 000fac01
# 614: 000fac02
# 618: 000fac03
# 61c: 000fac04
# 620: 000fac05
# Function @ .irom0.text+0x624
.Lfunc003: movi a4, 0x00ac0f00 # 624: 41faff
l8ui a7, a2, 3 /* [arg0+0x3] */ # 627: 720203
l8ui a6, a2, 1 /* [arg0+0x1] */ # 62a: 620201
l8ui a5, a2, 0 /* [arg0] */ # 62d: 520200
slli a6, a6, 8 # 630: 806611
or a5, a5, a6 # 633: 605520
l8ui a6, a2, 2 /* [arg0+0x2] */ # 636: 620202
slli a7, a7, 24 # 639: 807701
slli a6, a6, 16 # 63c: 006611
or a6, a6, a7 # 63f: 706620
or a2, a5, a6 # 642: 602520
beq a2, a4, .Lbr068 # 645: 471237
movi a7, 0x01ac0f00 # 648: 71f2ff
movi a8, 0x02ac0f00 # 64b: 81f2ff
beq a2, a7, .Lbr067 # 64e: 771223
beq a2, a8, .Lbr069 # 651: 87122f
movi a9, 0x03ac0f00 # 654: 91f1ff
movi a10, 0x04ac0f00 # 657: a1f1ff
beq a2, a9, .Lbr070 # 65a: 97122a
beq a2, a10, .Lbr071 # 65d: a7122b
movi a11, 0x05ac0f00 # 660: b1f0ff
beq a2, a11, .Lbr065 # 663: b71203
movi a2, 32 /* 0x00000020 */ # 666: 2c02
ret /* 0x00000020 */ # 668: 0df0
.Lbr065: beqz a3, .Lbr066 # 66a: 8c33
movi a2, 13 /* 0x0000000d */ # 66c: 0cd2
s8i a2, a3, 0 /* 0x0d -> [arg1] */ # 66e: 224300
.Lbr066: movi a2, 6 /* 0x00000006 */ # 671: 0c62
ret /* 0x00000006 */ # 673: 0df0
.Lbr067: beqz a3, .Lbr066 # 675: 1683ff
movi a4, 5 /* 0x00000005 */ # 678: 0c54
s8i a4, a3, 0 /* 0x05 -> [arg1] */ # 67a: 424300
j .Lbr066 # 67d: 06fcff
.Lbr068: movi a2, 0 /* 0x00000000 */ # 680: 0c02
ret /* 0x00000000 */ # 682: 0df0
.Lbr069: movi a2, 1 /* 0x00000001 */ # 684: 0c12
ret /* 0x00000001 */ # 686: 0df0
.Lbr070: movi a2, 2 /* 0x00000002 */ # 688: 0c22
ret /* 0x00000002 */ # 68a: 0df0
.Lbr071: movi a2, 3 /* 0x00000003 */ # 68c: 0c32
ret /* 0x00000003 */ # 68e: 0df0
.literal_position # 690: 000fac00
# 694: 000fac01
# 698: 000fac02
# Function @ .irom0.text+0x69c
.Lfunc004: movi a3, 0x00ac0f00 # 69c: 31fdff
l8ui a6, a2, 3 /* [arg0+0x3] */ # 69f: 620203
l8ui a5, a2, 1 /* [arg0+0x1] */ # 6a2: 520201
l8ui a4, a2, 0 /* [arg0] */ # 6a5: 420200
slli a5, a5, 8 # 6a8: 805511
or a4, a4, a5 # 6ab: 504420
l8ui a5, a2, 2 /* [arg0+0x2] */ # 6ae: 520202
slli a6, a6, 24 # 6b1: 806601
slli a5, a5, 16 # 6b4: 005511
or a5, a5, a6 # 6b7: 605520
or a2, a4, a5 # 6ba: 502420
beq a2, a3, .Lbr072 # 6bd: 37120b
movi a6, 0x01ac0f00 # 6c0: 61f5ff
movi a7, 0x02ac0f00 # 6c3: 71f5ff
beq a2, a6, .Lbr074 # 6c6: 67120a
beq a2, a7, .Lbr073 # 6c9: 771203
.Lbr072: movi a2, 0 /* 0x00000000 */ # 6cc: 0c02
ret /* 0x00000000 */ # 6ce: 0df0
.Lbr073: movi a2, 2 /* 0x00000002 */ # 6d0: 0c22
ret /* 0x00000002 */ # 6d2: 0df0
.Lbr074: movi a2, 1 /* 0x00000001 */ # 6d4: 0c12
ret /* 0x00000001 */ # 6d6: 0df0
.literal_position # 6d8: 00000000
# Function @ .irom0.text+0x6dc
# Local variables/stack:
# (local0): byte[4] @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word @ -0x8
# (local7): word @ -0x4
.global sdk_ieee80211_parse_wpa
.type sdk_ieee80211_parse_wpa, @function
sdk_ieee80211_parse_wpa:
movi a5, 0 /* 0x00000000 */ # 6dc: 0c05
addi sp, sp, -32 /* (local0) */ # 6de: 12c1e0
s32i a0, sp, 24 /* a0 -> [(local6)] */ # 6e1: 0961
s8i a5, sp, 0 /* 0x00 -> [(local0)] */ # 6e3: 524100
l32i a0, a2, 48 /* [arg0+0x30] */ # 6e6: 08c2
beqz a0, .Lbr075 # 6e8: 9c50
s32i a0, sp, 16 /* [arg0+0x30] -> [(local4)] */ # 6ea: 0941
l8ui a3, a0, 7 /* [[arg0+0x30]+0x7] */ # 6ec: 320007
l8ui a2, a0, 6 /* [[arg0+0x30]+0x6] */ # 6ef: 220006
slli a3, a3, 8 # 6f2: 803311
or a2, a2, a3 # 6f5: 302220
slli a2, a2, 16 # 6f8: 002211
srai a2, a2, 16 # 6fb: 202031
beqi a2, 1, .Lbr078 # 6fe: 261210
.Lbr075: mov a2, a5 /* 0x00000000 */ # 701: 2d05
j .Lbr077 # 703: 060100
.Lbr076: bltz a0, .Lbr087 # 706: 96300e
movi a2, 1 /* 0x00000001 */ # 709: 0c12
.Lbr077: l32i a0, sp, 24 /* [(local6)] */ # 70b: 0861
addi sp, sp, 32 /* (top of frame) */ # 70d: 12c120
ret # 710: 0df0
.Lbr078: mov a3, sp /* (local0) */ # 712: 3d01
addi a2, a0, 8 /* [arg0+0x30]+0x8 */ # 714: 8b20
movi a4, 3 /* 0x00000003 */ # 716: 0c34
l8ui a6, a0, 1 /* [[arg0+0x30]+0x1] */ # 718: 620001
movi a5, sdk_g_ic+0x188 # 71b: 51efff
s32i a5, sp, 20 /* sdk_g_ic+0x188 -> [(local5)] */ # 71e: 5951
addi a6, a6, -6 /* [[arg0+0x30]+0x1]-0x6 */ # 720: 62c6fa
s32i a6, sp, 4 /* [[arg0+0x30]+0x1]-0x6 -> [(local1)] */ # 723: 6911
s8i a4, a5, 128 /* 0x03 -> [sdk_g_ic+0x208] */ # 725: 424580
call0 .Lfunc001 # 728: 45e3ff
movi a5, 0 /* 0x00000000 */ # 72b: 0c05
l32i a6, sp, 16 /* [(local4)] */ # 72d: 6841
l32i a0, sp, 4 /* [(local1)] */ # 72f: 0811
l32i a7, sp, 20 /* [(local5)] */ # 731: 7851
addi a0, a0, -6 /* [(local1)]-0x6 */ # 733: 02c0fa
s8i a2, a7, 132 /* a2 -> [[(local5)]+0x84] */ # 736: 224784
l8ui a7, a6, 13 /* [[(local4)]+0xd] */ # 739: 72060d
l8ui a6, a6, 12 /* [[(local4)]+0xc] */ # 73c: 62060c
slli a7, a7, 8 # 73f: 807711
or a6, a6, a7 # 742: 706620
extui a6, a6, 0, 16 # 745: 6060f4
.Lbr079: beqz a0, .Lbr082 # 748: bc80
s32i a5, sp, 12 /* a5 -> [(local3)] */ # 74a: 5931
s32i a6, sp, 28 /* a6 -> [(local7)] */ # 74c: 6971
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 74e: 0911
extui a8, a5, 0, 16 # 750: 5080f4
bgeu a8, a6, .Lbr082 # 753: 67b82d
l32i a3, sp, 16 /* [(local4)] */ # 756: 3841
l32i a2, sp, 12 /* [(local3)] */ # 758: 2831
addx4 a2, a2, a3 # 75a: 3022a0
addi a2, a2, 14 # 75d: eb22
mov a3, sp /* (local0) */ # 75f: 3d01
call0 .Lfunc001 # 761: c5dfff
l32i a0, sp, 20 /* [(local5)] */ # 764: 0851
l32i a6, sp, 28 /* [(local7)] */ # 766: 6871
l8ui a0, a0, 130 /* [[(local5)]+0x82] */ # 768: 020082
l32i a5, sp, 12 /* [(local3)] */ # 76b: 5831
beqz a0, .Lbr080 # 76d: 8c10
bnei a0, 1, .Lbr081 # 76f: 661004
.Lbr080: l32i a3, sp, 20 /* [(local5)] */ # 772: 3851
s8i a2, a3, 130 /* a2 -> [[(local5)]+0x82] */ # 774: 224382
.Lbr081: l32i a0, sp, 4 /* [(local1)] */ # 777: 0811
addi a4, a5, 1 /* [(local3)]+0x1 */ # 779: 1b45
extui a5, a4, 0, 8 # 77b: 405074
addi a0, a0, -4 /* [(local1)]-0x4 */ # 77e: 02c0fc
j .Lbr079 # 781: c6f0ff
.Lbr082: blti a0, 1, .Lbr087 # 784: a61065
movi a5, 0 /* 0x00000000 */ # 787: 0c05
l32i a7, sp, 16 /* [(local4)] */ # 789: 7841
addi a0, a0, -2 # 78b: 02c0fe
addx4 a6, a6, a7 # 78e: 7066a0
addi a2, a6, 16 # 791: 22c610
l8ui a7, a6, 15 # 794: 72060f
l8ui a6, a6, 14 # 797: 62060e
slli a7, a7, 8 # 79a: 807711
or a6, a6, a7 # 79d: 706620
extui a6, a6, 0, 16 # 7a0: 6060f4
.Lbr083: beqz a0, .Lbr076 # 7a3: 16f0f5
s32i a6, sp, 28 /* a6 -> [(local7)] */ # 7a6: 6971
s32i a5, sp, 12 /* a5 -> [(local3)] */ # 7a8: 5931
s32i a2, sp, 8 /* a2 -> [(local2)] */ # 7aa: 2921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 7ac: 0911
extui a9, a5, 0, 16 # 7ae: 5090f4
bltu a9, a6, .Lbr084 # 7b1: 673902
j .Lbr076 # 7b4: 86d3ff
.Lbr084: l32i a2, sp, 8 /* [(local2)] */ # 7b7: 2821
call0 .Lfunc002 # 7b9: 45e1ff
bnei a2, 1, .Lbr085 # 7bc: 661209
l32i a11, sp, 20 /* [(local5)] */ # 7bf: b851
movi a10, 2 /* 0x00000002 */ # 7c1: 0c2a
s8i a10, a11, 129 /* 0x02 -> [[(local5)]+0x81] */ # 7c3: a24b81
j .Lbr086 # 7c6: 860300
.Lbr085: l32i a2, sp, 8 /* [(local2)] */ # 7c9: 2821
call0 .Lfunc002 # 7cb: 45e0ff
bnei a2, 2, .Lbr086 # 7ce: 662206
l32i a2, sp, 20 /* [(local5)] */ # 7d1: 2851
movi a0, 3 /* 0x00000003 */ # 7d3: 0c30
s8i a0, a2, 129 /* 0x03 -> [[(local5)]+0x81] */ # 7d5: 024281
.Lbr086: l32i a6, sp, 28 /* [(local7)] */ # 7d8: 6871
l32i a5, sp, 12 /* [(local3)] */ # 7da: 5831
l32i a2, sp, 8 /* [(local2)] */ # 7dc: 2821
l32i a0, sp, 4 /* [(local1)] */ # 7de: 0811
addi a2, a2, 4 /* [(local2)]+0x4 */ # 7e0: 4b22
addi a0, a0, -4 /* [(local1)]-0x4 */ # 7e2: 02c0fc
addi a3, a5, 1 /* [(local3)]+0x1 */ # 7e5: 1b35
extui a5, a3, 0, 8 # 7e7: 305074
j .Lbr083 # 7ea: 46edff
.Lbr087: movi a2, 0 /* 0x00000000 */ # 7ed: 0c02
j .Lbr077 # 7ef: 06c6ff
.literal_position # 7f4: 00000000
# Function @ .irom0.text+0x7f8
# Local variables/stack:
# (local0): byte[4] @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word @ -0x8
# (local7): word @ -0x4
.global sdk_ieee80211_parse_rsn
.type sdk_ieee80211_parse_rsn, @function
sdk_ieee80211_parse_rsn:
movi a4, 0 /* 0x00000000 */ # 7f8: 0c04
addi sp, sp, -32 /* (local0) */ # 7fa: 12c1e0
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 7fd: d941
s32i a14, sp, 20 /* a14 -> [(local5)] */ # 7ff: e951
s32i a15, sp, 24 /* a15 -> [(local6)] */ # 801: f961
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 803: c931
s8i a4, sp, 0 /* 0x00 -> [(local0)] */ # 805: 424100
l32i a12, a2, 52 /* [arg0+0x34] */ # 808: c8d2
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 80a: 0921
beqz a12, .Lbr088 # 80c: 9c9c
l8ui a5, a12, 1 /* [[arg0+0x34]+0x1] */ # 80e: 520c01
l8ui a2, a12, 3 /* [[arg0+0x34]+0x3] */ # 811: 220c03
blti a5, 10, .Lbr088 # 814: a69511
l8ui a0, a12, 2 /* [[arg0+0x34]+0x2] */ # 817: 020c02
slli a2, a2, 8 # 81a: 802211
or a0, a0, a2 # 81d: 200020
slli a0, a0, 16 # 820: 000011
srai a0, a0, 16 # 823: 000031
beqi a0, 1, .Lbr092 # 826: 26101b
.Lbr088: mov a2, a4 /* 0x00000000 */ # 829: 2d04
j .Lbr091 # 82b: c60100
.Lbr089: bgei a13, 2, .Lbr090 # 82e: e62d02
j .Lbr101 # 831: 862e00
.Lbr090: movi a2, 1 /* 0x00000001 */ # 834: 0c12
.Lbr091: l32i a12, sp, 12 /* [(local3)] */ # 836: c831
l32i a13, sp, 16 /* [(local4)] */ # 838: d841
l32i a14, sp, 20 /* [(local5)] */ # 83a: e851
l32i a15, sp, 24 /* [(local6)] */ # 83c: f861
l32i a0, sp, 8 /* [(local2)] */ # 83e: 0821
addi sp, sp, 32 /* (top of frame) */ # 840: 12c120
ret # 843: 0df0
.Lbr092: addi a2, a12, 4 /* [arg0+0x34]+0x4 */ # 845: 4b2c
movi a15, sdk_g_ic+0x188 # 847: f1ebff
movi a3, 3 /* 0x00000003 */ # 84a: 0c33
s32i a5, sp, 28 /* [[arg0+0x34]+0x1] -> [(local7)] */ # 84c: 5971
s8i a3, a15, 128 /* 0x03 -> [sdk_g_ic+0x208] */ # 84e: 324f80
mov a3, sp /* (local0) */ # 851: 3d01
call0 .Lfunc003 # 853: 05ddff
movi a14, 0 /* 0x00000000 */ # 856: 0c0e
l32i a13, sp, 28 /* [(local7)] */ # 858: d871
s8i a2, a15, 132 /* a2 -> [sdk_g_ic+0x20c] */ # 85a: 224f84
l8ui a4, a12, 8 /* [[arg0+0x34]+0x8] */ # 85d: 420c08
l8ui a5, a12, 9 /* [[arg0+0x34]+0x9] */ # 860: 520c09
addi a13, a13, -8 /* [(local7)]-0x8 */ # 863: d2cdf8
addi a12, a12, 10 /* [arg0+0x34]+0xa */ # 866: abcc
slli a5, a5, 8 # 868: 805511
or a4, a4, a5 # 86b: 504420
extui a4, a4, 0, 16 # 86e: 4040f4
s32i a4, sp, 4 /* a4 -> [(local1)] */ # 871: 4911
.Lbr093: l32i a2, sp, 4 /* [(local1)] */ # 873: 2811
extui a0, a14, 0, 16 # 875: e000f4
bgeu a0, a2, .Lbr096 # 878: 27b020
beqz a13, .Lbr096 # 87b: 9cdd
mov a2, a12 # 87d: 2d0c
mov a3, sp /* (local0) */ # 87f: 3d01
call0 .Lfunc003 # 881: 05daff
addi a13, a13, -4 # 884: d2cdfc
l8ui a0, a15, 130 /* [sdk_g_ic+0x20a] */ # 887: 020f82
addi a12, a12, 4 # 88a: 4bcc
beqz a0, .Lbr094 # 88c: 8c10
bnei a0, 1, .Lbr095 # 88e: 661002
.Lbr094: s8i a2, a15, 130 /* a2 -> [sdk_g_ic+0x20a] */ # 891: 224f82
.Lbr095: addi a14, a14, 1 # 894: 1bee
extui a14, a14, 0, 8 # 896: e0e074
j .Lbr093 # 899: 86f5ff
.Lbr096: blti a13, 1, .Lbr101 # 89c: a61d4f
movi a14, 0 /* 0x00000000 */ # 89f: 0c0e
addi a13, a13, -2 # 8a1: d2cdfe
l8ui a0, a12, 0 # 8a4: 020c00
l8ui a2, a12, 1 # 8a7: 220c01
addi a12, a12, 2 # 8aa: 2bcc
slli a2, a2, 8 # 8ac: 802211
or a0, a0, a2 # 8af: 200020
extui a0, a0, 0, 16 # 8b2: 0000f4
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 8b5: 0911
.Lbr097: beqz a13, .Lbr089 # 8b7: 163df7
l32i a6, sp, 4 /* [(local1)] */ # 8ba: 6811
extui a5, a14, 0, 16 # 8bc: e050f4
bltu a5, a6, .Lbr098 # 8bf: 673502
j .Lbr089 # 8c2: 06daff
.Lbr098: mov a2, a12 # 8c5: 2d0c
call0 .Lfunc004 # 8c7: 45ddff
bnei a2, 1, .Lbr099 # 8ca: 661207
movi a7, 4 /* 0x00000004 */ # 8cd: 0c47
s8i a7, a15, 129 /* 0x04 -> [sdk_g_ic+0x209] */ # 8cf: 724f81
j .Lbr100 # 8d2: 060300
.Lbr099: mov a2, a12 # 8d5: 2d0c
call0 .Lfunc004 # 8d7: 45dcff
bnei a2, 2, .Lbr100 # 8da: 662204
movi a8, 5 /* 0x00000005 */ # 8dd: 0c58
s8i a8, a15, 129 /* 0x05 -> [sdk_g_ic+0x209] */ # 8df: 824f81
.Lbr100: addi a12, a12, 4 # 8e2: 4bcc
addi a13, a13, -4 # 8e4: d2cdfc
addi a14, a14, 1 # 8e7: 1bee
extui a14, a14, 0, 8 # 8e9: e0e074
j .Lbr097 # 8ec: c6f1ff
.Lbr101: movi a2, 0 /* 0x00000000 */ # 8ef: 0c02
j .Lbr091 # 8f1: 46d0ff
# Function @ .irom0.text+0x8f4
.global sdk_ieee80211_parse_action
.type sdk_ieee80211_parse_action, @function
sdk_ieee80211_parse_action:
l32i a4, a3, 4 /* [arg1+0x4] */ # 8f4: 4813
l16ui a2, a3, 22 /* [arg1+0x16] */ # 8f6: 22130b
l32i a3, a4, 4 /* [[arg1+0x4]+0x4] */ # 8f9: 3814
add a2, a2, a3 # 8fb: 3a22
addi a2, a2, 24 # 8fd: 22c218
sub a2, a2, a3 # 900: 3022c0
addi a2, a2, -24 # 903: 22c2e8
bltui a2, 2, .Lbr104 # 906: b6221c
l8ui a5, a3, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 909: 520318
beqi a5, 3, .Lbr105 # 90c: 26351a
bnei a5, 7, .Lbr102 # 90f: 66750a
l8ui a3, a3, 25 /* [[[arg1+0x4]+0x4]+0x19] */ # 912: 320319
beqz a3, .Lbr106 # 915: ac33
bnei a3, 1, .Lbr102 # 917: 661302
bltui a2, 3, .Lbr104 # 91a: b63208
.Lbr102: movi a2, 0 /* 0x00000000 */ # 91d: 0c02
ret /* 0x00000000 */ # 91f: 0df0
.Lbr103: movi a5, 8 /* 0x00000008 */ # 921: 0c85
bltu a5, a2, .Lbr102 # 923: 2735f6
.Lbr104: movi a2, -1 /* 0xffffffff */ # 926: 7cf2
ret /* 0xffffffff */ # 928: 0df0
.Lbr105: l8ui a3, a3, 25 /* [[[arg1+0x4]+0x4]+0x19] */ # 92a: 320319
beqz a3, .Lbr103 # 92d: 1603ff
beqi a3, 1, .Lbr107 # 930: 26130e
bnei a3, 2, .Lbr102 # 933: 6623e6
bltui a2, 6, .Lbr104 # 936: b662ec
j .Lbr102 # 939: 06f8ff
.Lbr106: bltui a2, 3, .Lbr104 # 93c: b632e6
j .Lbr102 # 93f: 86f6ff
.Lbr107: movi a6, 8 /* 0x00000008 */ # 942: 0c86
bgeu a6, a2, .Lbr104 # 944: 27b6de
j .Lbr102 # 947: 86f4ff
.balign 4
# Function @ .irom0.text+0x94c
.global sdk_ieee80211_setup_rateset
.type sdk_ieee80211_setup_rateset, @function
sdk_ieee80211_setup_rateset:
movi a2, 0 /* 0x00000000 */ # 94c: 0c02
ret /* 0x00000000 */ # 94e: 0df0

View file

View file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,241 @@
.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
.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
.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
.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
.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
.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
.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
.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

View file

@ -0,0 +1,189 @@
.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

View file

@ -0,0 +1,227 @@
.section .data, "aw", @progbits
.global sdk_ieee80211_addr_bcast
.type sdk_ieee80211_addr_bcast, @object
sdk_ieee80211_addr_bcast:
.byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000400
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_proto_attach
.type sdk_ieee80211_proto_attach, @function
sdk_ieee80211_proto_attach:
movi a3, 2 /* 0x00000002 */ # c: 0c23
movi a4, 0x00040000 # e: 41fdff
movi a6, 1 /* 0x00000001 */ # 11: 0c16
mov a5, a2 /* arg0 */ # 13: 5d02
addi sp, sp, -16 /* (local0) */ # 15: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18: 0901
movi a2, sdk_ieee80211_tx_mgt_cb # 1a: 21f9ff
l32i a0, a5, 28 /* [arg0+0x1c] */ # 1d: 0875
s32i a6, a5, 12 /* 0x00000001 -> [arg0+0xc] */ # 1f: 6935
or a0, a0, a4 # 21: 400020
s32i a0, a5, 28 /* a0 -> [arg0+0x1c] */ # 24: 0975
call0 sdk_ppRegisterTxCallback # 26: 01f8ffc0
# 2a: 0000
l32i a0, sp, 0 /* [(local0)] */ # 2c: 0801
addi sp, sp, 16 /* (top of frame) */ # 2e: 12c110
ret # 31: 0df0
.balign 4
# Function @ .irom0.text+0x34
.global sdk_ieee80211_set_shortslottime
.type sdk_ieee80211_set_shortslottime, @function
sdk_ieee80211_set_shortslottime:
movi a6, 1024 /* 0x00000400 */ # 34: 62a400
l32i a5, a2, 28 /* [arg0+0x1c] */ # 37: 5872
movi a4, -1025 /* 0xfffffbff */ # 39: 42abff
and a4, a5, a4 # 3c: 404510
or a5, a5, a6 # 3f: 605520
moveqz a5, a4, a3 # 42: 305483
s32i a5, a2, 28 /* a5 -> [arg0+0x1c] */ # 45: 5972
ret /* arg0 */ # 47: 0df0
.literal_position # 4c: 00000000
# Function @ .irom0.text+0x50
.global sdk_ieee80211_iserp_rateset
.type sdk_ieee80211_iserp_rateset, @function
sdk_ieee80211_iserp_rateset:
l8ui a8, a2, 0 /* [arg0] */ # 50: 820200
bltui a8, 7, .Lbr003 # 53: b6781e
movi a9, .Ldata001 # 56: 91fdff
movi a10, 0 /* 0x00000000 */ # 59: 0c0a
.Lbr001: blti a8, 1, .Lbr003 # 5b: a61816
movi a5, 0 /* 0x00000000 */ # 5e: 0c05
l32i a6, a9, 0 # 60: 6809
.Lbr002: add a7, a5, a2 # 62: 2a75
l8ui a7, a7, 1 # 64: 720701
extui a7, a7, 0, 7 # 67: 707064
beq a6, a7, .Lbr004 # 6a: 77160b
blt a6, a7, .Lbr003 # 6d: 772604
addi a5, a5, 1 # 70: 1b55
bne a5, a8, .Lbr002 # 72: 8795ec
.Lbr003: movi a2, 0 /* 0x00000000 */ # 75: 0c02
ret /* 0x00000000 */ # 77: 0df0
.Lbr004: addi a9, a9, 4 # 79: 4b99
addi a10, a10, 1 # 7b: 1baa
bnei a10, 7, .Lbr001 # 7d: 667ada
movi a2, 1 /* 0x00000001 */ # 80: 0c12
ret /* 0x00000001 */ # 82: 0df0
.literal_position # 84: 20000000
# Function @ .irom0.text+0x88
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 88: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901
l8ui a0, a2, 0 /* [arg0] */ # 8d: 020200
beqz a0, .Lbr009 # 90: bcf0
movi a9, 0 /* 0x00000000 */ # 92: 0c09
movi a11, 128 /* 0x00000080 */ # 94: b2a080
movi a8, .Ldata002 # 97: 81fbff
slli a10, a3, 4 # 9a: c0a311
add a8, a8, a10 # 9d: aa88
l8ui a7, a8, 0 # 9f: 720800
.Lbr005: bnez a4, .Lbr006 # a2: cc94
add a3, a2, a9 # a4: 9a32
l8ui a0, a3, 1 # a6: 020301
extui a0, a0, 0, 7 # a9: 000064
s8i a0, a3, 1 # ac: 024301
.Lbr006: beqz a7, .Lbr008 # af: 9c57
movi a0, 0 /* 0x00000000 */ # b1: 0c00
add a10, a2, a9 # b3: 9aa2
l8ui a3, a10, 1 # b5: 320a01
.Lbr007: add a5, a8, a0 # b8: 0a58
l8ui a5, a5, 1 # ba: 520501
addi a0, a0, 1 # bd: 1b00
bne a5, a3, .Lbr010 # bf: 379517
or a6, a3, a11 # c2: b06320
s8i a6, a10, 1 # c5: 624a01
.Lbr008: l8ui a10, a2, 0 /* [arg0] */ # c8: a20200
addi a9, a9, 1 # cb: 1b99
extui a9, a9, 0, 8 # cd: 909074
bltu a9, a10, .Lbr005 # d0: a739ce
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 16 /* (top of frame) */ # d5: 12c110
ret /* arg0 */ # d8: 0df0
.Lbr010: extui a0, a0, 0, 8 # da: 000074
bne a7, a0, .Lbr007 # dd: 0797d7
j .Lbr008 # e0: 06f9ff
.balign 4
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_setbasicrates
.type sdk_ieee80211_setbasicrates, @function
sdk_ieee80211_setbasicrates:
movi a4, 0 /* 0x00000000 */ # e4: 0c04
addi sp, sp, -16 /* (local0) */ # e6: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
call0 .Lfunc001 # eb: c5f9ff
l32i a0, sp, 0 /* [(local0)] */ # ee: 0801
addi sp, sp, 16 /* (top of frame) */ # f0: 12c110
ret # f3: 0df0
.balign 4
# Function @ .irom0.text+0xf8
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ieee80211_addbasicrates
.type sdk_ieee80211_addbasicrates, @function
sdk_ieee80211_addbasicrates:
movi a4, 1 /* 0x00000001 */ # f8: 0c14
addi sp, sp, -16 /* (local0) */ # fa: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # fd: 0901
call0 .Lfunc001 # ff: 85f8ff
l32i a0, sp, 0 /* [(local0)] */ # 102: 0801
addi sp, sp, 16 /* (top of frame) */ # 104: 12c110
ret # 107: 0df0
.balign 4
# Function @ .irom0.text+0x10c
.global sdk_ieee80211_wme_initparams
.type sdk_ieee80211_wme_initparams, @function
sdk_ieee80211_wme_initparams:
ret /* arg0 */ # 10c: 0df0
.balign 4
# Function @ .irom0.text+0x110
.global sdk_ieee80211_wme_updateparams
.type sdk_ieee80211_wme_updateparams, @function
sdk_ieee80211_wme_updateparams:
ret /* arg0 */ # 110: 0df0
.literal_position # 114: 00000000
# 118: 00000000
# 11c: 00000000
# 120: 00000000
# 124: 00000000
# Function @ .irom0.text+0x128
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_ieee80211_mlme_connect_bss
.type sdk_ieee80211_mlme_connect_bss, @function
sdk_ieee80211_mlme_connect_bss:
mov a3, a2 /* arg0 */ # 128: 3d02
addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 12d: 5911
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12f: 0921
movi a2, sdk_g_ic # 131: 21f8ff
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 134: 4901
l32i a2, a2, 16 /* [sdk_g_ic+0x10] */ # 136: 2842
movi a4, 6 /* 0x00000006 */ # 138: 0c64
s32i a3, a2, 136 /* arg0 -> [[sdk_g_ic+0x10]+0x88] */ # 13a: 326222
addi a2, a2, 64 /* [sdk_g_ic+0x10]+0x40 */ # 13d: 22c240
call0 memcpy # 140: 01f7ffc0
# 144: 0000
l32i a3, sp, 4 /* [(local1)] */ # 146: 3811
movi a0, sdk_g_ic # 148: 01f4ff
beqz a3, .Lbr011 # 14b: 8ce3
movi a3, 2 /* 0x00000002 */ # 14d: 0c23
movi a4, 176 /* 0x000000b0 */ # 14f: 42a0b0
mov a2, a0 /* sdk_g_ic */ # 152: 2d00
call0 sdk_ieee80211_sta_new_state # 154: 01f3ffc0
# 158: 0000
j .Lbr012 # 15a: 860400
.Lbr011: movi a3, 3 /* 0x00000003 */ # 15d: 0c33
mov a2, a0 /* sdk_g_ic */ # 15f: 2d00
l32i a6, sp, 0 /* [(local0)] */ # 161: 6801
movi a5, 32 /* 0x00000020 */ # 163: 2c05
movi a4, 0 /* 0x00000000 */ # 165: 0c04
movnez a4, a5, a6 # 167: 604593
call0 sdk_ieee80211_sta_new_state # 16a: 01eeffc0
# 16e: 0000
.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 170: 0821
addi sp, sp, 16 /* (top of frame) */ # 172: 12c110
ret # 175: 0df0
.section .rodata, "a", @progbits
.Ldata001: .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00
.byte 0x0b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00
.byte 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00
.byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.Ldata002: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x04, 0x02, 0x04, 0x0b, 0x16, 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

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

View file

@ -0,0 +1,486 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .text+0x4
.global sdk_chm_get_current_channel
.type sdk_chm_get_current_channel, @function
sdk_chm_get_current_channel:
movi a2, .Ldata001 # 4: 21ffff
l32i a2, a2, 60 /* [.Ldata009] */ # 7: 28f2
ret /* [.Ldata009] */ # 9: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .word 0x00000000 # 4: 00000000
.Ldata003: .word 0x00000000 # 8: 00000000
.Ldata004: .word 0x00000000 # c: 00000000
.Ldata005: .word 0x00000000 # 10: 00000000
.Ldata006: .word 0x00000000 # 14: 00000000
.Ldata007: .word 0x00000000 # 18: 00000000
.Ldata008: .word 0x00000000 # 1c: 00000000
.Label001: .space 28
.Ldata009: .word 0x00000000 # 3c: 00000000
.Ldata010: .byte 0x00
.Ldata011: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00feef3f
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 20000000
# 18: 48020000
# 1c: 00000000
# 20: 00000000
# 24: 00000000
# 28: 00000000
# Function @ .irom0.text+0x2c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_chm_init
.type sdk_chm_init, @function
sdk_chm_init:
movi a4, -32 /* 0xffffffe0 */ # 2c: 6c04
movi a5, sdk_NMIIrqIsOn # 2e: 51f7ff
movi a3, sdk_g_ic+0x180 # 31: 31f4ff
movi a6, .Ldata001 # 34: 61f5ff
addi sp, sp, -32 /* (local0) */ # 37: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3a: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 3c: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3e: 0901
movi a13, 0x3feffe00 # 40: d1f0ff
movi a0, 0 /* 0x00000000 */ # 43: 0c00
s32i a2, a6, 0 /* arg0 -> [.Ldata001] */ # 45: 2906
mov a12, a2 /* arg0 */ # 47: cd02
l8ui a6, a3, 96 /* [sdk_g_ic+0x1e0] */ # 49: 620360
l8ui a2, a5, 0 /* [sdk_NMIIrqIsOn] */ # 4c: 220500
addmi a3, a3, 256 /* sdk_g_ic+0x280 */ # 4f: 32d301
l8ui a3, a3, 141 /* [sdk_g_ic+0x30d] */ # 52: 32038d
addi a6, a6, -1 /* [sdk_g_ic+0x1e0]-0x1 */ # 55: 0b66
addi a3, a3, -1 /* [sdk_g_ic+0x30d]-0x1 */ # 57: 0b33
extui a3, a3, 0, 8 # 59: 303074
movnez a0, a3, a6 # 5c: 600393
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 5f: 0941
bnez a2, .Lbr002 # 61: ec32
call0 vPortEnterCritical # 63: 01eeffc0
# 67: 0000
movi a4, -32 /* 0xffffffe0 */ # 69: 6c04
.Lbr001: memw # 6b: c02000
l32i a9, a13, 0x200 /* [0x3ff00000] */ # 6e: 922d80
and a9, a9, a4 # 71: 409910
memw # 74: c02000
s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 77: 926d80
memw # 7a: c02000
l32i a8, a13, 0x200 /* [0x3ff00000] */ # 7d: 822d80
bbsi a8, 0, .Lbr001 # 80: 07e8e7
l32i a0, sp, 16 /* [(local4)] */ # 83: 0841
movi a5, sdk_NMIIrqIsOn # 85: 51e2ff
.Lbr002: movi a2, 132 /* 0x00000084 */ # 88: 22a084
addx2 a0, a0, a0 # 8b: 000090
addx4 a0, a0, a12 # 8e: c000a0
add a0, a0, a2 # 91: 2a00
s32i a0, a12, 0x14c /* a0 -> [arg0+0x14c] */ # 93: 026c53
l8ui a10, a5, 0 /* [sdk_NMIIrqIsOn] */ # 96: a20500
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 99: 0931
bnez a10, .Lbr003 # 9b: dcaa
memw # 9d: c02000
l32i a2, a13, 0x200 /* [0x3ff00000] */ # a0: 222d80
movi a3, 1 /* 0x00000001 */ # a3: 0c13
and a2, a2, a4 # a5: 402210
or a2, a2, a3 # a8: 302220
memw # ab: c02000
s32i a2, a13, 0x200 /* a2 -> [0x3ff00000] */ # ae: 226d80
call0 vPortExitCritical # b1: 01dbffc0
# b5: 0000
l32i a0, sp, 12 /* [(local3)] */ # b7: 0831
.Lbr003: mov a2, a0 # b9: 2d00
call0 sdk_chm_set_current_channel # bb: 01daffc0
# bf: 0000
movi a2, .Label001 # c1: 21d4ff
movi a3, .Lfunc002 # c4: 31d5ff
movi a4, 0 /* 0x00000000 */ # c7: 0c04
call0 sdk_os_timer_setfn # c9: 01d7ffc0
# cd: 0000
l32i a12, sp, 4 /* [(local1)] */ # cf: c811
l32i a13, sp, 8 /* [(local2)] */ # d1: d821
l32i a0, sp, 0 /* [(local0)] */ # d3: 0801
addi sp, sp, 32 /* (top of frame) */ # d5: 12c120
ret # d8: 0df0
.literal_position # dc: 00000000
# e0: 00000000
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_chm_acquire_lock
.type sdk_chm_acquire_lock, @function
sdk_chm_acquire_lock:
addi sp, sp, -16 /* (local0) */ # e4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901
mov a12, a2 /* arg0 */ # eb: cd02
movi a0, .Ldata001 # ed: 01fbff
mov a2, a4 /* arg2 */ # f0: 2d04
l8ui a4, a0, 64 /* [.Ldata010] */ # f2: 420040
l8ui a5, a0, 65 /* [.Ldata011] */ # f5: 520041
beqz a4, .Lbr005 # f8: 9c44
s32i a2, sp, 12 /* arg2 -> [(local3)] */ # fa: 2931
s32i a3, sp, 8 /* arg1 -> [(local2)] */ # fc: 3921
bgeu a5, a12, .Lbr004 # fe: c7b504
movi a2, 3 /* 0x00000003 */ # 101: 0c32
j .Lbr006 # 103: c60500
.Lbr004: call0 sdk_chm_cancel_op # 106: 050000
l32i a2, sp, 12 /* [(local3)] */ # 109: 2831
movi a0, .Ldata001 # 10b: 01f5ff
l32i a3, sp, 8 /* [(local2)] */ # 10e: 3821
.Lbr005: s8i a12, a0, 65 /* arg0 -> [.Ldata011] */ # 110: c24041
s32i a3, a0, 24 /* a3 -> [.Ldata007] */ # 113: 3960
s32i a2, a0, 28 /* a2 -> [.Ldata008] */ # 115: 2970
movi a6, 1 /* 0x00000001 */ # 117: 0c16
movi a2, 0 /* 0x00000000 */ # 119: 0c02
s8i a6, a0, 64 /* 0x01 -> [.Ldata010] */ # 11b: 624040
.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 11e: c811
l32i a0, sp, 0 /* [(local0)] */ # 120: 0801
addi sp, sp, 16 /* (top of frame) */ # 122: 12c110
ret # 125: 0df0
.literal_position # 128: 00000000
# Function @ .irom0.text+0x12c
.global sdk_chm_release_lock
.type sdk_chm_release_lock, @function
sdk_chm_release_lock:
movi a3, .Ldata001 # 12c: 31ffff
movi a2, 0 /* 0x00000000 */ # 12f: 0c02
s32i a2, a3, 28 /* 0x00000000 -> [.Ldata008] */ # 131: 2973
s32i a2, a3, 24 /* 0x00000000 -> [.Ldata007] */ # 133: 2963
s8i a2, a3, 64 /* 0x00 -> [.Ldata010] */ # 135: 224340
s8i a2, a3, 65 /* 0x00 -> [.Ldata011] */ # 138: 224341
ret /* 0x00000000 */ # 13b: 0df0
.literal_position # 140: 00000000
# 144: 00000000
# Function @ .irom0.text+0x148
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_chm_start_op
.type sdk_chm_start_op, @function
sdk_chm_start_op:
addi sp, sp, -16 /* (local0) */ # 148: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14b: 0901
movi a0, .Ldata001 # 14d: 01fcff
l32i a7, a0, 4 /* [.Ldata002] */ # 150: 7810
beqz a7, .Lbr010 # 152: 8cf7
movi a2, 3 /* 0x00000003 */ # 154: 0c32
j .Lbr009 # 156: 060100
.Lbr007: call0 .Lfunc001 # 159: 450400
.Lbr008: movi a2, 0 /* 0x00000000 */ # 15c: 0c02
.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # 15e: 0801
addi sp, sp, 16 /* (top of frame) */ # 160: 12c110
ret # 163: 0df0
.Lbr010: s32i a2, a0, 4 /* arg0 -> [.Ldata002] */ # 165: 2910
s32i a4, a0, 16 /* arg2 -> [.Ldata005] */ # 167: 4940
movi a8, sdk_g_ic # 169: 81f6ff
s32i a5, a0, 20 /* arg3 -> [.Ldata006] */ # 16c: 5950
l32i a8, a8, 0 /* [sdk_g_ic] */ # 16e: 8808
s32i a3, a0, 8 /* arg1 -> [.Ldata003] */ # 170: 3920
l32i a8, a8, 0 /* [[sdk_g_ic]] */ # 172: 8808
s32i a6, a0, 12 /* arg4 -> [.Ldata004] */ # 174: 6930
bbci a8, 1, .Lbr007 # 176: 1768df
call0 .Lfunc001 # 179: 450200
j .Lbr008 # 17c: 06f7ff
.literal_position # 180: 00000000
# 184: 04000000
# 188: 20000000
# 18c: 00000000
# 190: 00000000
# 194: 00000000
# 198: 00000000
# 19c: 00000000
# Function @ .irom0.text+0x1a0
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 1a0: 12c1f0
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a3: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a5: c921
movi a13, .Ldata001 # 1a7: d1f6ff
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1aa: 0911
l32i a12, a13, 16 /* [.Ldata005] */ # 1ac: c84d
l32i a0, a13, 12 /* [.Ldata004] */ # 1ae: 083d
s32i a0, sp, 0 /* [.Ldata004] -> [(local0)] */ # 1b0: 0901
call0 sdk_chm_get_current_channel # 1b2: 01f6ffc0
# 1b6: 0000
mov a3, a2 # 1b8: 3d02
l32i a2, a13, 4 /* [.Ldata002] */ # 1ba: 281d
l16ui a3, a3, 4 # 1bc: 321302
l16ui a4, a2, 4 /* [[.Ldata002]+0x4] */ # 1bf: 421202
beq a3, a4, .Lbr011 # 1c2: 471305
call0 sdk_chm_set_current_channel # 1c5: 01f2ffc0
# 1c9: 0000
.Lbr011: beqz a12, .Lbr012 # 1cb: 8c5c
l32i a2, sp, 0 /* [(local0)] */ # 1cd: 2801
movi a3, 0 /* 0x00000000 */ # 1cf: 0c03
callx0 a12 /* [.Ldata005] */ # 1d1: c00c00
.Lbr012: l32i a4, a13, 8 /* [.Ldata003] */ # 1d4: 482d
bnez a4, .Lbr013 # 1d6: ccc4
movi a2, .Ldata002 # 1d8: 21ebff
movi a3, 20 /* 0x00000014 */ # 1db: 1c43
call0 bzero # 1dd: 01edffc0
# 1e1: 0000
j .Lbr014 # 1e3: 860500
.Lbr013: movi a12, .Label001 # 1e6: c1e8ff
mov a2, a12 /* .Label001 */ # 1e9: 2d0c
call0 sdk_os_timer_disarm # 1eb: 01ebffc0
# 1ef: 0000
mov a2, a12 /* .Label001 */ # 1f1: 2d0c
l32i a3, a13, 8 /* [.Ldata003] */ # 1f3: 382d
movi a4, 0 /* 0x00000000 */ # 1f5: 0c04
call0 sdk_os_timer_arm # 1f7: 01e9ffc0
# 1fb: 0000
.Lbr014: l32i a12, sp, 8 /* [(local2)] */ # 1fd: c821
l32i a13, sp, 12 /* [(local3)] */ # 1ff: d831
l32i a0, sp, 4 /* [(local1)] */ # 201: 0811
addi sp, sp, 16 /* (top of frame) */ # 203: 12c110
ret # 206: 0df0
.literal_position # 208: 00000000
# 20c: 00000000
# 210: 00000000
# Function @ .irom0.text+0x214
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_chm_end_op
.type sdk_chm_end_op, @function
sdk_chm_end_op:
movi a3, -4 /* 0xfffffffc */ # 214: 7cc3
addi sp, sp, -16 /* (local0) */ # 216: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 219: 0911
movi a0, .Ldata001 # 21b: 01fbff
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 21e: 2901
beq a0, a3, .Lbr015 # 220: 37101d
mov a2, a0 /* .Ldata001 */ # 223: 2d00
l32i a3, a2, 20 /* [.Ldata006] */ # 225: 3852
s32i a3, sp, 8 /* [.Ldata006] -> [(local2)] */ # 227: 3921
addi a2, a2, 4 /* .Ldata002 */ # 229: 4b22
movi a3, 20 /* 0x00000014 */ # 22b: 1c43
call0 bzero # 22d: 01f8ffc0
# 231: 0000
l32i a5, sp, 8 /* [(local2)] */ # 233: 5821
beqz a5, .Lbr015 # 235: 8c85
movi a2, .Ldata001 # 237: 21f5ff
l32i a3, sp, 0 /* [(local0)] */ # 23a: 3801
l32i a2, a2, 12 /* [.Ldata004] */ # 23c: 2832
callx0 a5 /* [(local2)] */ # 23e: c00500
.Lbr015: l32i a0, sp, 4 /* [(local1)] */ # 241: 0811
addi sp, sp, 16 /* (top of frame) */ # 243: 12c110
ret # 246: 0df0
# Function @ .irom0.text+0x248
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc002: movi a2, 0 /* 0x00000000 */ # 248: 0c02
addi sp, sp, -16 /* (local0) */ # 24a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 24d: 0901
call0 sdk_chm_end_op # 24f: 050000
l32i a0, sp, 0 /* [(local0)] */ # 252: 0801
addi sp, sp, 16 /* (top of frame) */ # 254: 12c110
ret # 257: 0df0
.literal_position # 25c: 00000000
# 260: 00000000
# 264: 00000000
# Function @ .irom0.text+0x268
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_chm_cancel_op
.type sdk_chm_cancel_op, @function
sdk_chm_cancel_op:
addi sp, sp, -16 /* (local0) */ # 268: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 26b: 0901
movi a0, .Ldata001 # 26d: 01fbff
l32i a2, a0, 4 /* [.Ldata002] */ # 270: 2810
beqz a2, .Lbr016 # 272: 9c12
mov a2, a0 /* .Ldata001 */ # 274: 2d00
addi a2, a2, 32 /* .Label001 */ # 276: 22c220
call0 sdk_os_timer_disarm # 279: 01faffc0
# 27d: 0000
movi a2, 4 /* 0x00000004 */ # 27f: 0c42
call0 sdk_chm_end_op # 281: 050000
movi a0, .Ldata001 # 284: 01f7ff
.Lbr016: l32i a5, a0, 24 /* [.Ldata007] */ # 287: 5860
beqz a5, .Lbr017 # 289: 8c55
movi a3, 4 /* 0x00000004 */ # 28b: 0c43
l32i a2, a0, 28 /* [.Ldata008] */ # 28d: 2870
callx0 a5 /* [.Ldata007] */ # 28f: c00500
.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 292: 0801
addi sp, sp, 16 /* (top of frame) */ # 294: 12c110
ret # 297: 0df0
.literal_position # 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# Function @ .irom0.text+0x2a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_chm_return_home_channel
.type sdk_chm_return_home_channel, @function
sdk_chm_return_home_channel:
addi sp, sp, -16 /* (local0) */ # 2a8: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ab: c911
movi a12, sdk_g_ic # 2ad: c1fbff
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b0: 0901
l32i a12, a12, 0x14c /* [sdk_g_ic+0x14c] */ # 2b2: c22c53
call0 sdk_chm_get_current_channel # 2b5: 01faffc0
# 2b9: 0000
l16ui a0, a2, 4 # 2bb: 021202
l16ui a2, a12, 4 /* [[sdk_g_ic+0x14c]+0x4] */ # 2be: 221c02
beq a0, a2, .Lbr018 # 2c1: 271007
mov a2, a12 /* [sdk_g_ic+0x14c] */ # 2c4: 2d0c
call0 sdk_chm_set_current_channel # 2c6: 01f7ffc0
# 2ca: 0000
.Lbr018: l32i a12, sp, 4 /* [(local1)] */ # 2cc: c811
l32i a0, sp, 0 /* [(local0)] */ # 2ce: 0801
addi sp, sp, 16 /* (top of frame) */ # 2d0: 12c110
ret # 2d3: 0df0
.literal_position # 2d8: 00000000
# 2dc: 00feef3f
# 2e0: 00000000
# 2e4: 00000000
# 2e8: 00000000
# 2ec: 00000000
# 2f0: 00000000
# Function @ .irom0.text+0x2f4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_chm_set_current_channel
.type sdk_chm_set_current_channel, @function
sdk_chm_set_current_channel:
movi a3, 1 /* 0x00000001 */ # 2f4: 0c13
movi a4, 0 /* 0x00000000 */ # 2f6: 0c04
addi sp, sp, -16 /* (local0) */ # 2f8: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2fb: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2fd: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2ff: 0901
mov a12, a2 /* arg0 */ # 301: cd02
l16ui a2, a2, 4 /* [arg0+0x4] */ # 303: 221202
call0 sdk_phy_change_channel # 306: 01f8ffc0
# 30a: 0000
movi a2, sdk_NMIIrqIsOn # 30c: 21f3ff
movi a0, -32 /* 0xffffffe0 */ # 30f: 6c00
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 311: 220200
movi a13, 0x3feffe00 # 314: d1f2ff
bnez a2, .Lbr020 # 317: ec42
call0 vPortEnterCritical # 319: 01f4ffc0
# 31d: 0000
movi a0, -32 /* 0xffffffe0 */ # 31f: 6c00
.Lbr019: memw # 321: c02000
l32i a5, a13, 0x200 /* [0x3ff00000] */ # 324: 522d80
and a5, a5, a0 # 327: 005510
memw # 32a: c02000
s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 32d: 526d80
memw # 330: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 333: 422d80
bbsi a4, 0, .Lbr019 # 336: 07e4e7
movi a2, sdk_NMIIrqIsOn # 339: 21e9ff
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 33c: 220200
.Lbr020: movi a3, .Ldata001 # 33f: 31e9ff
s32i a12, a3, 60 /* arg0 -> [.Ldata009] */ # 342: c9f3
bnez a2, .Lbr021 # 344: dc82
memw # 346: c02000
l32i a4, a13, 0x200 /* [0x3ff00000] */ # 349: 422d80
movi a5, 1 /* 0x00000001 */ # 34c: 0c15
and a4, a4, a0 # 34e: 004410
or a4, a4, a5 # 351: 504420
memw # 354: c02000
s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 357: 426d80
call0 vPortExitCritical # 35a: 01e5ffc0
# 35e: 0000
.Lbr021: l32i a12, sp, 4 /* [(local1)] */ # 360: c811
l32i a13, sp, 8 /* [(local2)] */ # 362: d821
l32i a0, sp, 0 /* [(local0)] */ # 364: 0801
addi sp, sp, 16 /* (top of frame) */ # 366: 12c110
ret # 369: 0df0
.literal_position # 36c: 00000000
# Function @ .irom0.text+0x370
.global sdk_chm_freq2index
.type sdk_chm_freq2index, @function
sdk_chm_freq2index:
movi a5, 0 /* 0x00000000 */ # 370: 0c05
movi a6, .Ldata001 # 372: 61feff
movi a7, 14 /* 0x0000000e */ # 375: 0ce7
l32i a6, a6, 0 /* [.Ldata001] */ # 377: 6806
.Lbr022: addx2 a8, a5, a5 # 379: 508590
addx4 a8, a8, a6 # 37c: 6088a0
l16ui a8, a8, 136 # 37f: 821844
bne a8, a2, .Lbr023 # 382: 279803
mov a2, a5 # 385: 2d05
ret # 387: 0df0
.Lbr023: addi a5, a5, 1 # 389: 1b55
extui a5, a5, 0, 8 # 38b: 505074
bne a5, a7, .Lbr022 # 38e: 7795e7
movi a2, 255 /* 0x000000ff */ # 391: 22a0ff
ret /* 0x000000ff */ # 394: 0df0
.literal_position # 398: 00000000
# 39c: 00000000
# 3a0: 00000000
# 3a4: 00000000
# Function @ .irom0.text+0x3a8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_chm_check_same_channel
.type sdk_chm_check_same_channel, @function
sdk_chm_check_same_channel:
movi a2, sdk_g_ic # 3a8: 21fcff
addi sp, sp, -16 /* (local0) */ # 3ab: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3ae: 0911
l32i a2, a2, 0x14c /* [sdk_g_ic+0x14c] */ # 3b0: 222253
call0 sdk_ieee80211_chan2ieee # 3b3: 01faffc0
# 3b7: 0000
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 3b9: 2901
call0 sdk_chm_get_current_channel # 3bb: 01f9ffc0
# 3bf: 0000
call0 sdk_ieee80211_chan2ieee # 3c1: 01f8ffc0
# 3c5: 0000
movi a3, 0 /* 0x00000000 */ # 3c7: 0c03
l32i a4, sp, 0 /* [(local0)] */ # 3c9: 4801
l32i a0, sp, 4 /* [(local1)] */ # 3cb: 0811
sub a4, a4, a2 # 3cd: 2044c0
addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110
movi a2, 1 /* 0x00000001 */ # 3d3: 0c12
movnez a2, a3, a4 # 3d5: 402393
ret # 3d8: 0df0

File diff suppressed because it is too large Load diff

View file

239
binary_sdk/libphy/phy.S Normal file
View file

@ -0,0 +1,239 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_register_phy_ops
.type sdk_register_phy_ops, @function
sdk_register_phy_ops:
movi a3, 0 /* 0x00000000 */ # 8: 0c03
addi sp, sp, -16 /* (local0) */ # a: 12c1f0
mov a5, a2 /* arg0 */ # d: 5d02
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901
movi a0, .Ldata001 # 11: 01fbff
movi a2, 1 /* 0x00000001 */ # 14: 0c12
s32i a5, a0, 0 /* arg0 -> [.Ldata001] */ # 16: 5900
call0 sdk_phy_init # 18: 01fbffc0
# 1c: 0000
l32i a0, sp, 0 /* [(local0)] */ # 1e: 0801
addi sp, sp, 16 /* (top of frame) */ # 20: 12c110
ret # 23: 0df0
.literal_position # 28: 00000000
# Function @ .text+0x2c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_change_channel
.type sdk_phy_change_channel, @function
sdk_phy_change_channel:
addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901
movi a0, .Ldata001 # 31: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 34: 0800
l32i a0, a0, 4 /* [[.Ldata001]+0x4] */ # 36: 0810
callx0 a0 /* [[.Ldata001]+0x4] */ # 38: c00000
movi a2, 0 /* 0x00000000 */ # 3b: 0c02
l32i a0, sp, 0 /* [(local0)] */ # 3d: 0801
addi sp, sp, 16 /* (top of frame) */ # 3f: 12c110
ret /* 0x00000000 */ # 42: 0df0
.literal_position # 44: 000af23f
# Function @ .text+0x48
.global sdk_phy_get_mactime
.type sdk_phy_get_mactime, @function
sdk_phy_get_mactime:
movi a2, 0x3ff20a00 # 48: 21ffff
memw # 4b: c02000
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 4e: 222280
ret /* [0x3ff20c00] */ # 51: 0df0
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# Function @ .irom0.text+0x4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_rf_init
.type sdk_rf_init, @function
sdk_rf_init:
addi sp, sp, -16 /* (local0) */ # 4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901
movi a0, .Ldata001 # 9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # c: 0800
slli a4, a2, 24 # e: 804201
l32i a0, a0, 0 /* [[.Ldata001]] */ # 11: 0800
srai a2, a4, 24 # 13: 402831
callx0 a0 /* [[.Ldata001]] */ # 16: c00000
l32i a0, sp, 0 /* [(local0)] */ # 19: 0801
addi sp, sp, 16 /* (top of frame) */ # 1b: 12c110
ret # 1e: 0df0
.literal_position # 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_bb_init
.type sdk_bb_init, @function
sdk_bb_init:
addi sp, sp, -16 /* (local0) */ # 24: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901
movi a0, .Ldata001 # 29: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 2c: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 2e: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # 30: c00000
l32i a0, sp, 0 /* [(local0)] */ # 33: 0801
addi sp, sp, 16 /* (top of frame) */ # 35: 12c110
ret # 38: 0df0
.literal_position # 3c: 00000000
# 40: 00000000
# Function @ .irom0.text+0x44
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_phy_init
.type sdk_phy_init, @function
sdk_phy_init:
addi sp, sp, -16 /* (local0) */ # 44: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 47: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 49: 0901
mov a12, a3 /* arg1 */ # 4b: cd03
movi a0, .Ldata001 # 4d: 01fbff
slli a3, a2, 24 # 50: 803201
l32i a0, a0, 0 /* [.Ldata001] */ # 53: 0800
srai a2, a3, 24 # 55: 302831
l32i a0, a0, 0 /* [[.Ldata001]] */ # 58: 0800
mov a3, a12 /* arg1 */ # 5a: 3d0c
callx0 a0 /* [[.Ldata001]] */ # 5c: c00000
movi a0, .Ldata001 # 5f: 01f8ff
l32i a0, a0, 0 /* [.Ldata001] */ # 62: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 64: 0860
mov a2, a12 /* arg1 */ # 66: 2d0c
callx0 a0 /* [[.Ldata001]+0x18] */ # 68: c00000
l32i a12, sp, 4 /* [(local1)] */ # 6b: c811
l32i a0, sp, 0 /* [(local0)] */ # 6d: 0801
addi sp, sp, 16 /* (top of frame) */ # 6f: 12c110
ret # 72: 0df0
.literal_position # 74: 00000000
# Function @ .irom0.text+0x78
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_RFChannelSel
.type sdk_RFChannelSel, @function
sdk_RFChannelSel:
addi sp, sp, -16 /* (local0) */ # 78: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7b: 0901
movi a0, .Ldata001 # 7d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 80: 0800
slli a3, a2, 24 # 82: 803201
l32i a0, a0, 8 /* [[.Ldata001]+0x8] */ # 85: 0820
srai a2, a3, 24 # 87: 302831
callx0 a0 /* [[.Ldata001]+0x8] */ # 8a: c00000
l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801
addi sp, sp, 16 /* (top of frame) */ # 8f: 12c110
ret # 92: 0df0
.literal_position # 94: 00000000
# Function @ .irom0.text+0x98
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_delete_channel
.type sdk_phy_delete_channel, @function
sdk_phy_delete_channel:
addi sp, sp, -16 /* (local0) */ # 98: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9b: 0901
movi a0, .Ldata001 # 9d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # a0: 0800
l32i a0, a0, 12 /* [[.Ldata001]+0xc] */ # a2: 0830
callx0 a0 /* [[.Ldata001]+0xc] */ # a4: c00000
l32i a0, sp, 0 /* [(local0)] */ # a7: 0801
addi sp, sp, 16 /* (top of frame) */ # a9: 12c110
ret # ac: 0df0
.literal_position # b0: 00000000
# Function @ .irom0.text+0xb4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_enable_agc
.type sdk_phy_enable_agc, @function
sdk_phy_enable_agc:
addi sp, sp, -16 /* (local0) */ # b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901
movi a0, .Ldata001 # b9: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # bc: 0800
l32i a0, a0, 16 /* [[.Ldata001]+0x10] */ # be: 0840
callx0 a0 /* [[.Ldata001]+0x10] */ # c0: c00000
l32i a0, sp, 0 /* [(local0)] */ # c3: 0801
addi sp, sp, 16 /* (top of frame) */ # c5: 12c110
ret # c8: 0df0
.literal_position # cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_disable_agc
.type sdk_phy_disable_agc, @function
sdk_phy_disable_agc:
addi sp, sp, -16 /* (local0) */ # d0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901
movi a0, .Ldata001 # d5: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # d8: 0800
l32i a0, a0, 20 /* [[.Ldata001]+0x14] */ # da: 0850
callx0 a0 /* [[.Ldata001]+0x14] */ # dc: c00000
l32i a0, sp, 0 /* [(local0)] */ # df: 0801
addi sp, sp, 16 /* (top of frame) */ # e1: 12c110
ret # e4: 0df0
.literal_position # e8: 00000000
# Function @ .irom0.text+0xec
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_initialize_bb
.type sdk_phy_initialize_bb, @function
sdk_phy_initialize_bb:
addi sp, sp, -16 /* (local0) */ # ec: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # ef: 0901
movi a0, .Ldata001 # f1: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # f4: 0800
l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # f6: 0860
callx0 a0 /* [[.Ldata001]+0x18] */ # f8: c00000
l32i a0, sp, 0 /* [(local0)] */ # fb: 0801
addi sp, sp, 16 /* (top of frame) */ # fd: 12c110
ret # 100: 0df0
.literal_position # 104: 00000000
# Function @ .irom0.text+0x108
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_phy_set_sense
.type sdk_phy_set_sense, @function
sdk_phy_set_sense:
addi sp, sp, -16 /* (local0) */ # 108: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10b: 0901
movi a0, .Ldata001 # 10d: 01fdff
l32i a0, a0, 0 /* [.Ldata001] */ # 110: 0800
l32i a0, a0, 28 /* [[.Ldata001]+0x1c] */ # 112: 0870
callx0 a0 /* [[.Ldata001]+0x1c] */ # 114: c00000
l32i a0, sp, 0 /* [(local0)] */ # 117: 0801
addi sp, sp, 16 /* (top of frame) */ # 119: 12c110
ret # 11c: 0df0

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

Binary file not shown.

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,352 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_chip_v6_set_sense
.type sdk_chip_v6_set_sense, @function
sdk_chip_v6_set_sense:
ret /* arg0 */ # 0: 0df0
.balign 4
# Function @ .irom0.text+0x4
.global sdk_chip_v6_get_sense
.type sdk_chip_v6_get_sense, @function
sdk_chip_v6_get_sense:
ret /* arg0 */ # 4: 0df0
.balign 4
# Function @ .irom0.text+0x8
.global sdk_chip_v6_unset_chanfreq
.type sdk_chip_v6_unset_chanfreq, @function
sdk_chip_v6_unset_chanfreq:
movi a2, 0 /* 0x00000000 */ # 8: 0c02
ret /* 0x00000000 */ # a: 0df0
.literal_position # c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 000e0060
# 20: 00000000
# 24: 00000000
# 28: 00000000
# 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_data_collect
.type sdk_data_collect, @function
sdk_data_collect:
movi a2, .Label001 # 30: 21f7ff
addi sp, sp, -32 /* (local0) */ # 33: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local5)] */ # 36: c951
s32i a13, sp, 24 /* a13 -> [(local6)] */ # 38: d961
s32i a0, sp, 16 /* a0 -> [(local4)] */ # 3a: 0941
call0 ets_printf # 3c: 01f9ffc0
# 40: 0000
movi a2, sdk_chip6_sleep_params # 42: 21f3ff
movi a3, sdk_chip6_sleep_params+0x168 # 45: 31f3ff
movi a4, 0 /* 0x00000000 */ # 48: 0c04
call0 sdk_rtc_mem_backup # 4a: 01f6ffc0
# 4e: 0000
movi a3, 1 /* 0x00000001 */ # 50: 0c13
movi a4, 5 /* 0x00000005 */ # 52: 0c54
movi a5, 7 /* 0x00000007 */ # 54: 0c75
movi a13, sdk_g_phyFuns # 56: d1f0ff
movi a6, 0 /* 0x00000000 */ # 59: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 5b: 080d
mov a12, a2 # 5d: cd02
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 5f: 022025
movi a2, 98 /* 0x00000062 */ # 62: 22a062
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 65: c00000
movi a3, 1 /* 0x00000001 */ # 68: 0c13
movi a4, 6 /* 0x00000006 */ # 6a: 0c64
movi a5, 4 /* 0x00000004 */ # 6c: 0c45
movi a6, 0 /* 0x00000000 */ # 6e: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 70: 080d
s32i a2, sp, 8 /* a2 -> [(local2)] */ # 72: 2921
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 74: 022025
movi a2, 98 /* 0x00000062 */ # 77: 22a062
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 7a: c00000
movi a3, 4 /* 0x00000004 */ # 7d: 0c43
movi a4, 3 /* 0x00000003 */ # 7f: 0c34
movi a5, 4 /* 0x00000004 */ # 81: 0c45
movi a6, 0 /* 0x00000000 */ # 83: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 85: 080d
s32i a2, sp, 12 /* a2 -> [(local3)] */ # 87: 2931
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 89: 022025
movi a2, 103 /* 0x00000067 */ # 8c: 22a067
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # 8f: c00000
movi a3, 1 /* 0x00000001 */ # 92: 0c13
movi a4, 2 /* 0x00000002 */ # 94: 0c24
movi a5, 4 /* 0x00000004 */ # 96: 0c45
movi a6, 0 /* 0x00000000 */ # 98: 0c06
l32i a0, a13, 0 /* [sdk_g_phyFuns] */ # 9a: 080d
mov a13, a2 # 9c: dd02
l32i a0, a0, 148 /* [[sdk_g_phyFuns]+0x94] */ # 9e: 022025
movi a2, 97 /* 0x00000061 */ # a1: 22a061
callx0 a0 /* [[sdk_g_phyFuns]+0x94] */ # a4: c00000
slli a4, a2, 24 # a7: 804201
slli a3, a13, 16 # aa: 003d11
l32i a2, sp, 8 /* [(local2)] */ # ad: 2821
or a3, a3, a4 # af: 403320
l32i a4, sp, 12 /* [(local3)] */ # b2: 4831
extui a2, a2, 0, 8 # b4: 202074
extui a4, a4, 0, 8 # b7: 404074
slli a4, a4, 8 # ba: 804411
or a2, a2, a4 # bd: 402220
mov a4, a12 # c0: 4d0c
or a2, a2, a3 # c2: 302220
s32i a2, sp, 0 /* a2 -> [(local0)] */ # c5: 2901
mov a3, sp /* (local0) */ # c7: 3d01
mov a2, sp /* (local0) */ # c9: 2d01
call0 sdk_rtc_mem_backup # cb: 01d7ffc0
# cf: 0000
movi a5, 0x60000e00 # d1: 51d2ff
memw # d4: c02000
addi a3, sp, 4 /* (local1) */ # d7: 4b31
add a12, a12, a2 # d9: 2acc
l32i a5, a5, 0x3fc /* [0x600011fc] */ # db: 5225ff
s32i a5, sp, 4 /* [0x600011fc] -> [(local1)] */ # de: 5911
addi a2, sp, 4 /* (local1) */ # e0: 4b21
mov a4, a12 # e2: 4d0c
call0 sdk_rtc_mem_backup # e4: 01d2ffc0
# e8: 0000
l32i a0, sp, 16 /* [(local4)] */ # ea: 0841
add a2, a2, a12 # ec: ca22
l32i a13, sp, 24 /* [(local6)] */ # ee: d861
l32i a12, sp, 20 /* [(local5)] */ # f0: c851
addi sp, sp, 32 /* (top of frame) */ # f2: 12c120
ret # f5: 0df0
.literal_position # f8: 000af23f
# fc: aa5555aa
# 100: 890f0000
# 104: ac540000
# 108: 20110000
# 10c: 6c0d0000
# 110: 00000000
# 114: 00000000
# 118: 00000000
# 11c: 00000000
# Function @ .irom0.text+0x120
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_operation_test
.type sdk_operation_test, @function
sdk_operation_test:
addi sp, sp, -16 /* (local0) */ # 120: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 123: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901
movi a2, 0x3ff20a00 # 129: 21f3ff
memw # 12c: c02000
movi a3, 0x00000f89 # 12f: 31f4ff
movi a4, 1234 /* 0x000004d2 */ # 132: 42a4d2
l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 135: 222280
movi a5, 0xaa5555aa # 138: 51f1ff
add a4, a2, a4 /* [0x3ff20c00]+0x4d2 */ # 13b: 4a42
xor a4, a4, a5 # 13d: 504430
mull a2, a2, a4 # 140: 402282
mull a2, a2, a3 # 143: 302282
movi a3, 0x000054ac # 146: 31efff
call0 __udivsi3 # 149: 01f1ffc0
# 14d: 0000
movi a3, 0x00001120 # 14f: 31eeff
mull a2, a2, a3 # 152: 302282
movi a3, 0x00000d6c # 155: 31edff
call0 __udivsi3 # 158: 01efffc0
# 15c: 0000
movi a12, 0 /* 0x00000000 */ # 15e: 0c0c
movi a13, 1000 /* 0x000003e8 */ # 160: d2a3e8
.Lbr001: movi a3, 999 /* 0x000003e7 */ # 163: 32a3e7
call0 __udivsi3 # 166: 01ecffc0
# 16a: 0000
addi a12, a12, 1 # 16c: 1bcc
movi a4, 1120 /* 0x00000460 */ # 16e: 42a460
mull a2, a2, a4 # 171: 402282
bne a12, a13, .Lbr001 # 174: d79ceb
movi a12, 0 /* 0x00000000 */ # 177: 0c0c
.Lbr002: movi a3, 985 /* 0x000003d9 */ # 179: 32a3d9
movi a5, 860 /* 0x0000035c */ # 17c: 52a35c
mull a2, a2, a5 # 17f: 502282
call0 __udivsi3 # 182: 01e6ffc0
# 186: 0000
addi a12, a12, 1 # 188: 1bcc
bne a12, a13, .Lbr002 # 18a: d79ceb
l32i a12, sp, 4 /* [(local1)] */ # 18d: c811
l32i a13, sp, 8 /* [(local2)] */ # 18f: d821
l32i a0, sp, 0 /* [(local0)] */ # 191: 0801
addi sp, sp, 16 /* (top of frame) */ # 193: 12c110
ret # 196: 0df0
.literal_position # 198: 00060060
# Function @ .irom0.text+0x19c
.global sdk_slop_wdt_feed
.type sdk_slop_wdt_feed, @function
sdk_slop_wdt_feed:
movi a2, 115 /* 0x00000073 */ # 19c: 22a073
movi a3, 0x60000600 # 19f: 31feff
memw # 1a2: c02000
s32i a2, a3, 0x314 /* 0x00000073 -> [0x60000914] */ # 1a5: 2263c5
ret /* 0x00000073 */ # 1a8: 0df0
.literal_position # 1ac: 04000000
# 1b0: 00feef3f
# 1b4: 00000000
# 1b8: 000af23f
# 1bc: 00060060
# 1c0: 00000000
# 1c4: 00000000
# 1c8: 00000000
# 1cc: 00000000
# 1d0: 00000000
# 1d4: 00000000
# 1d8: 00000000
# 1dc: 00000000
# Function @ .irom0.text+0x1e0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_slop_test
.type sdk_slop_test, @function
sdk_slop_test:
movi a2, .Lstr001 # 1e0: 21f3ff
addi sp, sp, -32 /* (local0) */ # 1e3: 12c1e0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1e6: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1e8: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1ea: e931
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1ec: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ee: 0901
call0 ets_printf # 1f0: 01f4ffc0
# 1f4: 0000
movi a10, 1 /* 0x00000001 */ # 1f6: 0c1a
movi a9, 0x3feffe00 # 1f8: 91eeff
memw # 1fb: c02000
l32i a8, a9, 0x214 /* [0x3ff00014] */ # 1fe: 822985
or a8, a8, a10 # 201: a08820
memw # 204: c02000
movi a2, 106 /* 0x0000006a */ # 207: 22a06a
movi a3, 2 /* 0x00000002 */ # 20a: 0c23
movi a4, 8 /* 0x00000008 */ # 20c: 0c84
movi a5, 4 /* 0x00000004 */ # 20e: 0c45
movi a0, sdk_g_phyFuns # 210: 01e9ff
movi a6, 0 /* 0x00000000 */ # 213: 0c06
l32i a0, a0, 0 /* [sdk_g_phyFuns] */ # 215: 0800
movi a7, 0 /* 0x00000000 */ # 217: 0c07
l32i a0, a0, 156 /* [[sdk_g_phyFuns]+0x9c] */ # 219: 022027
s32i a8, a9, 0x214 /* a8 -> [0x3ff00014] */ # 21c: 826985
callx0 a0 /* [[sdk_g_phyFuns]+0x9c] */ # 21f: c00000
movi a12, 0x3ff20a00 # 222: c1e5ff
memw # 225: c02000
l32i a11, a12, 0x200 /* [0x3ff20c00] */ # 228: b22c80
movi a2, 14 /* 0x0000000e */ # 22b: 0ce2
call0 sdk_RFChannelSel # 22d: 01e5ffc0
# 231: 0000
movi a13, 0 /* 0x00000000 */ # 233: 0c0d
movi a14, 0x60000600 # 235: e1e1ff
movi a15, 200 /* 0x000000c8 */ # 238: f2a0c8
.Lbr003: call0 sdk_slop_wdt_feed # 23b: 050000
call0 sdk_operation_test # 23e: 050000
memw # 241: c02000
s32i a2, a14, 0x138 /* a2 -> [0x60000738] */ # 244: 226e4e
movi a2, 2 /* 0x00000002 */ # 247: 0c22
call0 sdk_pm_set_sleep_mode # 249: 01dfffc0
# 24d: 0000
movi a2, 8 /* 0x00000008 */ # 24f: 0c82
movi a3, 0 /* 0x00000000 */ # 251: 0c03
call0 sdk_pm_wakeup_opt # 253: 01deffc0
# 257: 0000
movi a2, 170 /* 0x000000aa */ # 259: 22a0aa
call0 sdk_pm_set_sleep_cycles # 25c: 01ddffc0
# 260: 0000
memw # 262: c02000
movi a2, 2 /* 0x00000002 */ # 265: 0c22
l32i a0, a12, 0x200 /* [0x3ff20c00] */ # 267: 022c80
call0 sdk_pm_goto_sleep # 26a: 01daffc0
# 26e: 0000
movi a2, 2 /* 0x00000002 */ # 270: 0c22
call0 sdk_pm_wait4wakeup # 272: 01d9ffc0
# 276: 0000
movi a2, 2 /* 0x00000002 */ # 278: 0c22
movi a3, 0 /* 0x00000000 */ # 27a: 0c03
call0 sdk_pm_wakeup_init # 27c: 01d8ffc0
# 280: 0000
memw # 282: c02000
l32i a3, a12, 0x200 /* [0x3ff20c00] */ # 285: 322c80
addi a13, a13, 1 # 288: 1bdd
bne a13, a15, .Lbr003 # 28a: f79dad
l32i a12, sp, 4 /* [(local1)] */ # 28d: c811
l32i a13, sp, 8 /* [(local2)] */ # 28f: d821
l32i a14, sp, 12 /* [(local3)] */ # 291: e831
l32i a15, sp, 16 /* [(local4)] */ # 293: f841
l32i a0, sp, 0 /* [(local0)] */ # 295: 0801
addi sp, sp, 32 /* (top of frame) */ # 297: 12c120
ret # 29a: 0df0
.literal_position # 29c: 000e0060
# 2a0: 10000000
# 2a4: 10000000
# 2a8: 00000000
# 2ac: 00000000
# 2b0: 00000000
# Function @ .irom0.text+0x2b4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wd_reset_cnt
.type sdk_wd_reset_cnt, @function
sdk_wd_reset_cnt:
addi sp, sp, -16 /* (local0) */ # 2b4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b7: 0901
call0 sdk_rtc_get_reset_reason # 2b9: 01fbffc0
# 2bd: 0000
movi a0, 0x60000e00 # 2bf: 01f7ff
bnei a2, 4, .Lbr004 # 2c2: 664219
memw # 2c5: c02000
l32i a3, a0, 0x3fc /* [0x600011fc] */ # 2c8: 3220ff
addi a3, a3, 1 /* [0x600011fc]+0x1 */ # 2cb: 1b33
memw # 2cd: c02000
movi a2, .Lstr002 # 2d0: 21f4ff
s32i a3, a0, 0x3fc /* [0x600011fc]+0x1 -> [0x600011fc] */ # 2d3: 3260ff
call0 ets_printf # 2d6: 01f5ffc0
# 2da: 0000
j .Lbr006 # 2dc: 860500
.Lbr004: beqi a2, 2, .Lbr005 # 2df: 262202
bnei a2, 1, .Lbr006 # 2e2: 661210
.Lbr005: movi a3, 0 /* 0x00000000 */ # 2e5: 0c03
memw # 2e7: c02000
movi a2, .Lstr002 # 2ea: 21eeff
s32i a3, a0, 0x3fc /* 0x00000000 -> [0x600011fc] */ # 2ed: 3260ff
call0 ets_printf # 2f0: 01f0ffc0
# 2f4: 0000
.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # 2f6: 0801
addi sp, sp, 16 /* (top of frame) */ # 2f8: 12c110
ret # 2fb: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Label001: .word 0x000a6364 # 0: 64630a00
.Lstr001: .asciz "slop_test\n" # 4: 736c6f70
# 8: 5f746573
# c: 740a00
.balign 4
.Lstr002: .asciz "wd_reset %d\n" # 10: 77645f72
# 14: 65736574
# 18: 2025640a
# 1c: 00

File diff suppressed because it is too large Load diff

751
binary_sdk/libpp/esf_buf.S Normal file
View file

@ -0,0 +1,751 @@
.section .text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00feef3f
# c: 00000000
# 10: 00000000
# 14: 00feef3f
# 18: 00000000
# 1c: 00000000
# 20: 00000000
# Function @ .text+0x24
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_esf_rx_buf_alloc
.type sdk_esf_rx_buf_alloc, @function
sdk_esf_rx_buf_alloc:
addi sp, sp, -16 /* (local0) */ # 24: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901
bnei a2, 7, .Lbr001 # 29: 667211
movi a5, .Ldata001 # 2c: 51f5ff
movi a0, sdk_NMIIrqIsOn # 2f: 01f5ff
l32i a2, a5, 16 /* [.Ldata005] */ # 32: 2845
l8ui a3, a0, 0 /* [sdk_NMIIrqIsOn] */ # 34: 320000
bnez a2, .Lbr004 # 37: cce2
movi a2, 0 /* 0x00000000 */ # 39: 0c02
j .Lbr003 # 3b: c60000
.Lbr001: movi a0, 0 /* 0x00000000 */ # 3e: 0c00
.Lbr002: mov a2, a0 # 40: 2d00
.Lbr003: l32i a0, sp, 0 /* [(local0)] */ # 42: 0801
addi sp, sp, 16 /* (top of frame) */ # 44: 12c110
ret # 47: 0df0
.Lbr004: bnez a3, .Lbr006 # 49: ec93
call0 vPortEnterCritical # 4b: 01f4ffc0
# 4f: 0000
movi a4, 0x3feffe00 # 51: 41edff
movi a5, .Ldata001 # 54: 51eeff
movi a6, -32 /* 0xffffffe0 */ # 57: 6c06
.Lbr005: memw # 59: c02000
l32i a8, a4, 0x200 /* [0x3ff00000] */ # 5c: 822480
and a8, a8, a6 # 5f: 608810
memw # 62: c02000
s32i a8, a4, 0x200 /* a8 -> [0x3ff00000] */ # 65: 826480
memw # 68: c02000
l32i a7, a4, 0x200 /* [0x3ff00000] */ # 6b: 722480
bbsi a7, 0, .Lbr005 # 6e: 07e7e7
movi a0, sdk_NMIIrqIsOn # 71: 01e7ff
l32i a2, a5, 16 /* [.Ldata005] */ # 74: 2845
.Lbr006: s32i a2, sp, 4 /* [.Ldata005] -> [(local1)] */ # 76: 2911
movi a10, 0 /* 0x00000000 */ # 78: 0c0a
l32i a11, a2, 28 /* [[.Ldata005]+0x1c] */ # 7a: b872
s32i a11, a5, 16 /* [[.Ldata005]+0x1c] -> [.Ldata005] */ # 7c: b945
s32i a10, a2, 28 /* 0x00000000 -> [[.Ldata005]+0x1c] */ # 7e: a972
l8ui a9, a0, 0 /* [sdk_NMIIrqIsOn] */ # 80: 920000
mov a0, a2 /* [.Ldata005] */ # 83: 0d02
bnez a9, .Lbr007 # 85: ec29
memw # 87: c02000
movi a2, 0x3feffe00 # 8a: 21e2ff
l32i a0, a2, 0x200 /* [0x3ff00000] */ # 8d: 022280
movi a3, -32 /* 0xffffffe0 */ # 90: 6c03
and a0, a0, a3 # 92: 300010
movi a3, 1 /* 0x00000001 */ # 95: 0c13
or a0, a0, a3 # 97: 300020
memw # 9a: c02000
s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 9d: 026280
call0 vPortExitCritical # a0: 01e0ffc0
# a4: 0000
movi a5, .Ldata001 # a6: 51dcff
l32i a0, sp, 4 /* [(local1)] */ # a9: 0811
.Lbr007: l32i a4, a5, 20 /* [.Ldata006] */ # ab: 4855
addi a4, a4, -1 /* [.Ldata006]-0x1 */ # ad: 0b44
s32i a4, a5, 20 /* [.Ldata006]-0x1 -> [.Ldata006] */ # af: 4955
j .Lbr002 # b1: c6e2ff
.section .bss, "aw", @nobits
.Ldata001: .word 0x00000000 # 0: 00000000
.Ldata002: .word 0x00000000 # 4: 00000000
.Ldata003: .word 0x00000000 # 8: 00000000
.Ldata004: .word 0x00000000 # c: 00000000
.Ldata005: .word 0x00000000 # 10: 00000000
.Ldata006: .word 0x00000000 # 14: 00000000
.space 8
.Ldata007: .space 1116
.word 0x00000000 # 47c: 00000000
.Ldata008: .space 2144
.Ldata009: .space 608
.Ldata010: .space 600
.space 8
.Label001: .space 72
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00feef3f
# c: 00000000
# 10: 00000000
# 14: 00feef3f
# 18: 00400000
# 1c: 00feef3f
# 20: 00000000
# 24: 00000000
# 28: 00feef3f
# 2c: 00800000
# 30: 00feef3f
# 34: 00000000
# 38: 00000000
# 3c: 00feef3f
# 40: 00002000
# 44: 00feef3f
# 48: 00000000
# 4c: 00000000
# 50: 00feef3f
# 54: 00200000
# 58: 00000000
# 5c: 00000000
# 60: 00000000
# 64: 00000000
# 68: 00000000
# 6c: 00000000
# 70: 00000000
# 74: 00000000
# 78: 00000000
# Function @ .irom0.text+0x7c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_esf_buf_alloc
.type sdk_esf_buf_alloc, @function
sdk_esf_buf_alloc:
movi a10, 0 /* 0x00000000 */ # 7c: 0c0a
movi a7, sdk_NMIIrqIsOn # 7e: 71e0ff
movi a6, .Ldata001 # 81: 61e0ff
addi sp, sp, -32 /* (local0) */ # 84: 12c1e0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 87: c921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 89: 0911
bnei a3, 1, .Lbr008 # 8b: 66130e
beqz a2, .Lbr008 # 8e: 8cb2
l32i a12, a6, 0 /* [.Ldata001] */ # 90: c806
l8ui a9, a7, 0 /* [sdk_NMIIrqIsOn] */ # 92: 920700
bnez a12, .Lbr022 # 95: 56fc17
mov a12, a10 /* 0x00000000 */ # 98: cd0a
j .Lbr021 # 9a: c65b00
.Lbr008: bnei a3, 4, .Lbr012 # 9d: 664376
l32i a12, a6, 4 /* [.Ldata002] */ # a0: c816
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # a2: 220700
beqz a12, .Lbr027 # a5: 160c20
bnez a2, .Lbr010 # a8: ecb2
call0 vPortEnterCritical # aa: 01ebffc0
# ae: 0000
movi a0, 0x3feffe00 # b0: 01d6ff
movi a6, .Ldata001 # b3: 61d6ff
movi a7, sdk_NMIIrqIsOn # b6: 71d6ff
movi a8, -32 /* 0xffffffe0 */ # b9: 6c08
movi a10, 0 /* 0x00000000 */ # bb: 0c0a
.Lbr009: memw # bd: c02000
l32i a4, a0, 0x200 /* [0x3ff00000] */ # c0: 422080
and a4, a4, a8 # c3: 804410
memw # c6: c02000
s32i a4, a0, 0x200 /* a4 -> [0x3ff00000] */ # c9: 426080
memw # cc: c02000
l32i a3, a0, 0x200 /* [0x3ff00000] */ # cf: 322080
bbsi a3, 0, .Lbr009 # d2: 07e3e7
l32i a12, a6, 4 /* [.Ldata002] */ # d5: c816
.Lbr010: s32i a12, sp, 20 /* [.Ldata002] -> [(local5)] */ # d7: c951
mov a2, a12 /* [.Ldata002] */ # d9: 2d0c
l32i a9, a12, 28 /* [[.Ldata002]+0x1c] */ # db: 987c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata002]+0x1c] */ # dd: a97c
l8ui a5, a7, 0 /* [sdk_NMIIrqIsOn] */ # df: 520700
s32i a9, a6, 4 /* [[.Ldata002]+0x1c] -> [.Ldata002] */ # e2: 9916
bnez a5, .Lbr011 # e4: dcf5
memw # e6: c02000
movi a11, 0x3feffe00 # e9: b1caff
l32i a10, a11, 0x200 /* [0x3ff00000] */ # ec: a22b80
movi a0, -32 /* 0xffffffe0 */ # ef: 6c00
and a10, a10, a0 # f1: 00aa10
movi a0, 1 /* 0x00000001 */ # f4: 0c10
or a10, a10, a0 # f6: 00aa20
memw # f9: c02000
s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # fc: a26b80
call0 vPortExitCritical # ff: 01d7ffc0
# 103: 0000
l32i a2, sp, 20 /* [(local5)] */ # 105: 2851
.Lbr011: l32i a4, a2, 4 # 107: 4812
l32i a3, a2, 16 # 109: 3842
s32i a3, a4, 4 # 10b: 3914
l32i a2, a2, 32 # 10d: 2882
movi a3, 0x00004000 # 10f: 31c2ff
l32i a0, a2, 0 # 112: 0802
j .Lbr026 # 114: 465f00
.Lbr012: bnei a3, 5, .Lbr016 # 117: 66537c
l32i a12, a6, 8 /* [.Ldata003] */ # 11a: c826
l8ui a5, a7, 0 /* [sdk_NMIIrqIsOn] */ # 11c: 520700
beqz a12, .Lbr027 # 11f: 166c18
bnez a5, .Lbr014 # 122: ecb5
call0 vPortEnterCritical # 124: 01cfffc0
# 128: 0000
movi a0, 0x3feffe00 # 12a: 01bcff
movi a6, .Ldata001 # 12d: 61bcff
movi a7, sdk_NMIIrqIsOn # 130: 71bdff
movi a8, -32 /* 0xffffffe0 */ # 133: 6c08
movi a10, 0 /* 0x00000000 */ # 135: 0c0a
.Lbr013: memw # 137: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 13a: b22080
and a11, a11, a8 # 13d: 80bb10
memw # 140: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 143: b26080
memw # 146: c02000
l32i a9, a0, 0x200 /* [0x3ff00000] */ # 149: 922080
bbsi a9, 0, .Lbr013 # 14c: 07e9e7
l32i a12, a6, 8 /* [.Ldata003] */ # 14f: c826
.Lbr014: l32i a3, a12, 28 /* [[.Ldata003]+0x1c] */ # 151: 387c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata003]+0x1c] */ # 153: a97c
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # 155: 220700
s32i a3, a6, 8 /* [[.Ldata003]+0x1c] -> [.Ldata003] */ # 158: 3926
bnez a2, .Lbr015 # 15a: dcd2
memw # 15c: c02000
movi a5, 0x3feffe00 # 15f: 51b2ff
l32i a4, a5, 0x200 /* [0x3ff00000] */ # 162: 422580
movi a6, -32 /* 0xffffffe0 */ # 165: 6c06
and a4, a4, a6 # 167: 604410
movi a6, 1 /* 0x00000001 */ # 16a: 0c16
or a4, a4, a6 # 16c: 604420
memw # 16f: c02000
s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 172: 426580
call0 vPortExitCritical # 175: 01bbffc0
# 179: 0000
.Lbr015: l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 17b: 288c
movi a3, 0 /* 0x00000000 */ # 17d: 0c03
movi a4, 24 /* 0x00000018 */ # 17f: 1c84
call0 memset # 181: 01b9ffc0
# 185: 0000
l32i a8, a12, 4 /* [[.Ldata003]+0x4] */ # 187: 881c
l32i a7, a12, 16 /* [[.Ldata003]+0x10] */ # 189: 784c
s32i a7, a8, 4 /* [[.Ldata003]+0x10] -> [[[.Ldata003]+0x4]+0x4] */ # 18b: 7918
l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 18d: 288c
movi a3, 0x00008000 # 18f: 31a7ff
l32i a0, a2, 0 /* [[[.Ldata003]+0x20]] */ # 192: 0802
j .Lbr026 # 194: 463f00
.Lbr016: bnei a3, 6, .Lbr020 # 197: 666370
l32i a12, a6, 12 /* [.Ldata004] */ # 19a: c836
l8ui a9, a7, 0 /* [sdk_NMIIrqIsOn] */ # 19c: 920700
beqz a12, .Lbr027 # 19f: 166c10
bnez a9, .Lbr018 # 1a2: ecb9
call0 vPortEnterCritical # 1a4: 01b2ffc0
# 1a8: 0000
movi a0, 0x3feffe00 # 1aa: 01a1ff
movi a6, .Ldata001 # 1ad: 61a1ff
movi a7, sdk_NMIIrqIsOn # 1b0: 71a2ff
movi a8, -32 /* 0xffffffe0 */ # 1b3: 6c08
movi a10, 0 /* 0x00000000 */ # 1b5: 0c0a
.Lbr017: memw # 1b7: c02000
l32i a12, a0, 0x200 /* [0x3ff00000] */ # 1ba: c22080
and a12, a12, a8 # 1bd: 80cc10
memw # 1c0: c02000
s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 1c3: c26080
memw # 1c6: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 1c9: b22080
bbsi a11, 0, .Lbr017 # 1cc: 07ebe7
l32i a12, a6, 12 /* [.Ldata004] */ # 1cf: c836
.Lbr018: s32i a12, sp, 16 /* [.Ldata004] -> [(local4)] */ # 1d1: c941
mov a2, a12 /* [.Ldata004] */ # 1d3: 2d0c
l32i a4, a12, 28 /* [[.Ldata004]+0x1c] */ # 1d5: 487c
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata004]+0x1c] */ # 1d7: a97c
l8ui a3, a7, 0 /* [sdk_NMIIrqIsOn] */ # 1d9: 320700
s32i a4, a6, 12 /* [[.Ldata004]+0x1c] -> [.Ldata004] */ # 1dc: 4936
bnez a3, .Lbr019 # 1de: dcf3
memw # 1e0: c02000
movi a6, 0x3feffe00 # 1e3: 6196ff
l32i a5, a6, 0x200 /* [0x3ff00000] */ # 1e6: 522680
movi a7, -32 /* 0xffffffe0 */ # 1e9: 6c07
and a5, a5, a7 # 1eb: 705510
movi a7, 1 /* 0x00000001 */ # 1ee: 0c17
or a5, a5, a7 # 1f0: 705520
memw # 1f3: c02000
s32i a5, a6, 0x200 /* a5 -> [0x3ff00000] */ # 1f6: 526680
call0 vPortExitCritical # 1f9: 019dffc0
# 1fd: 0000
l32i a2, sp, 16 /* [(local4)] */ # 1ff: 2841
.Lbr019: l32i a2, a2, 32 # 201: 2882
movi a3, 0x00200000 # 203: 318fff
l32i a0, a2, 0 # 206: 0802
j .Lbr026 # 208: 462200
.Lbr020: movi a12, 0 /* 0x00000000 */ # 20b: 0c0c
.Lbr021: mov a2, a12 # 20d: 2d0c
l32i a0, sp, 4 /* [(local1)] */ # 20f: 0811
l32i a12, sp, 8 /* [(local2)] */ # 211: c821
addi sp, sp, 32 /* (top of frame) */ # 213: 12c120
ret # 216: 0df0
.Lbr022: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 218: 2901
bnez a9, .Lbr024 # 21a: ecb9
call0 vPortEnterCritical # 21c: 0196ffc0
# 220: 0000
movi a0, 0x3feffe00 # 222: 0188ff
movi a8, -32 /* 0xffffffe0 */ # 225: 6c08
movi a10, 0 /* 0x00000000 */ # 227: 0c0a
.Lbr023: memw # 229: c02000
l32i a12, a0, 0x200 /* [0x3ff00000] */ # 22c: c22080
and a12, a12, a8 # 22f: 80cc10
memw # 232: c02000
s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 235: c26080
memw # 238: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 23b: b22080
bbsi a11, 0, .Lbr023 # 23e: 07ebe7
movi a6, .Ldata001 # 241: 6182ff
movi a7, sdk_NMIIrqIsOn # 244: 7181ff
l32i a12, a6, 0 /* [.Ldata001] */ # 247: c806
.Lbr024: s32i a12, sp, 12 /* [.Ldata001] -> [(local3)] */ # 249: c931
l32i a3, a12, 28 /* [[.Ldata001]+0x1c] */ # 24b: 387c
s32i a3, a6, 0 /* [[.Ldata001]+0x1c] -> [.Ldata001] */ # 24d: 3906
s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata001]+0x1c] */ # 24f: a97c
l8ui a2, a7, 0 /* [sdk_NMIIrqIsOn] */ # 251: 220700
mov a3, a12 /* [.Ldata001] */ # 254: 3d0c
bnez a2, .Lbr025 # 256: dcf2
memw # 258: c02000
movi a5, 0x3feffe00 # 25b: 517dff
l32i a4, a5, 0x200 /* [0x3ff00000] */ # 25e: 422580
movi a6, -32 /* 0xffffffe0 */ # 261: 6c06
and a4, a4, a6 # 263: 604410
movi a6, 1 /* 0x00000001 */ # 266: 0c16
or a4, a4, a6 # 268: 604420
memw # 26b: c02000
s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 26e: 426580
call0 vPortExitCritical # 271: 0181ffc0
# 275: 0000
l32i a3, sp, 12 /* [(local3)] */ # 277: 3831
.Lbr025: l32i a7, sp, 0 /* [(local0)] */ # 279: 7801
l32i a9, a3, 4 # 27b: 9813
s32i a7, a3, 0 # 27d: 7903
l16ui a8, a7, 10 /* [[(local0)]+0xa] */ # 27f: 821705
l32i a7, a7, 4 /* [[(local0)]+0x4] */ # 282: 7817
s32i a7, a9, 4 # 284: 7919
s16i a8, a3, 22 # 286: 82530b
addi a7, a7, -36 /* [[(local0)]+0x4]-0x24 */ # 289: 72c7dc
l32i a2, a3, 32 # 28c: 2883
s32i a7, a3, 16 # 28e: 7943
l32i a0, a2, 0 # 290: 0802
movi a3, 0x00002000 # 292: 3170ff
.Lbr026: extui a8, a0, 0, 6 # 295: 008054
srli a9, a0, 6 # 298: 009641
or a9, a9, a3 # 29b: 309920
slli a9, a9, 6 # 29e: a09911
or a8, a8, a9 # 2a1: 908820
s32i a8, a2, 0 # 2a4: 8902
j .Lbr021 # 2a6: c6d8ff
.Lbr027: movi a12, 0 /* 0x00000000 */ # 2a9: 0c0c
j .Lbr021 # 2ab: 86d7ff
.literal_position # 2b0: 00000000
# 2b4: 00feef3f
# 2b8: 00000000
# 2bc: 00000000
# 2c0: 00feef3f
# 2c4: 00000000
# 2c8: 00feef3f
# 2cc: 00000000
# 2d0: 00000000
# 2d4: 00feef3f
# 2d8: 00000000
# 2dc: 00feef3f
# 2e0: 00000000
# 2e4: 00000000
# 2e8: 00feef3f
# 2ec: 00000000
# 2f0: 00feef3f
# 2f4: 00000000
# 2f8: 00000000
# 2fc: 00feef3f
# 300: 00feef3f
# 304: 00000000
# 308: 00feef3f
# 30c: 00000000
# 310: 00000000
# 314: 00000000
# 318: 00000000
# 31c: 00000000
# 320: 00000000
# 324: 00000000
# 328: 00000000
# 32c: 00000000
# 330: 00000000
# 334: 00000000
# 338: 00000000
# 33c: 00000000
# 340: 00000000
# 344: 00000000
# 348: 00000000
# 34c: 00000000
# Function @ .irom0.text+0x350
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_esf_buf_recycle
.type sdk_esf_buf_recycle, @function
sdk_esf_buf_recycle:
addi a4, a3, -1 /* arg1-0x1 */ # 350: 0b43
addi sp, sp, -16 /* (local0) */ # 352: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 355: 0911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 357: 2901
beqz a4, .Lbr039 # 359: 16841c
addi a9, a3, -2 /* arg1-0x2 */ # 35c: 92c3fe
beqz a9, .Lbr039 # 35f: 16291c
bnei a3, 4, .Lbr030 # 362: 66436c
l32i a2, a2, 32 /* [arg0+0x20] */ # 365: 2882
movi a3, 0 /* 0x00000000 */ # 367: 0c03
movi a4, 24 /* 0x00000018 */ # 369: 1c84
call0 memset # 36b: 01eaffc0
# 36f: 0000
movi a5, sdk_NMIIrqIsOn # 371: 51cfff
l8ui a3, a5, 0 /* [sdk_NMIIrqIsOn] */ # 374: 320500
bnez a3, .Lbr029 # 377: ec43
call0 vPortEnterCritical # 379: 01e7ffc0
# 37d: 0000
.Lbr028: memw # 37f: c02000
movi a3, 0x3feffe00 # 382: 31ccff
l32i a5, a3, 0x200 /* [0x3ff00000] */ # 385: 522380
movi a0, -32 /* 0xffffffe0 */ # 388: 6c00
and a5, a5, a0 # 38a: 005510
memw # 38d: c02000
s32i a5, a3, 0x200 /* a5 -> [0x3ff00000] */ # 390: 526380
memw # 393: c02000
l32i a4, a3, 0x200 /* [0x3ff00000] */ # 396: 422380
bbsi a4, 0, .Lbr028 # 399: 07e4e2
movi a5, sdk_NMIIrqIsOn # 39c: 51c7ff
.Lbr029: movi a8, .Ldata001 # 39f: 81c7ff
l32i a7, sp, 0 /* [(local0)] */ # 3a2: 7801
l32i a9, a8, 4 /* [.Ldata002] */ # 3a4: 9818
s32i a9, a7, 28 /* [.Ldata002] -> [[(local0)]+0x1c] */ # 3a6: 9977
l8ui a6, a5, 0 /* [sdk_NMIIrqIsOn] */ # 3a8: 620500
s32i a7, a8, 4 /* [(local0)] -> [.Ldata002] */ # 3ab: 7918
bnez a6, .Lbr042 # 3ad: 56f61d
memw # 3b0: c02000
movi a11, 0x3feffe00 # 3b3: b1c3ff
l32i a10, a11, 0x200 /* [0x3ff00000] */ # 3b6: a22b80
movi a0, -32 /* 0xffffffe0 */ # 3b9: 6c00
and a10, a10, a0 # 3bb: 00aa10
movi a0, 1 /* 0x00000001 */ # 3be: 0c10
or a10, a10, a0 # 3c0: 00aa20
memw # 3c3: c02000
s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # 3c6: a26b80
call0 vPortExitCritical # 3c9: 01d4ffc0
# 3cd: 0000
j .Lbr042 # 3cf: 466f00
.Lbr030: bnei a3, 5, .Lbr033 # 3d2: 66536c
l32i a2, a2, 32 /* [arg0+0x20] */ # 3d5: 2882
movi a3, 0 /* 0x00000000 */ # 3d7: 0c03
movi a4, 24 /* 0x00000018 */ # 3d9: 1c84
call0 memset # 3db: 01d1ffc0
# 3df: 0000
movi a3, sdk_NMIIrqIsOn # 3e1: 31b8ff
l8ui a3, a3, 0 /* [sdk_NMIIrqIsOn] */ # 3e4: 320300
bnez a3, .Lbr032 # 3e7: ec13
call0 vPortEnterCritical # 3e9: 01ceffc0
# 3ed: 0000
.Lbr031: memw # 3ef: c02000
movi a4, 0x3feffe00 # 3f2: 41b5ff
l32i a5, a4, 0x200 /* [0x3ff00000] */ # 3f5: 522480
movi a6, -32 /* 0xffffffe0 */ # 3f8: 6c06
and a5, a5, a6 # 3fa: 605510
memw # 3fd: c02000
s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 400: 526480
memw # 403: c02000
l32i a4, a4, 0x200 /* [0x3ff00000] */ # 406: 422480
bbsi a4, 0, .Lbr031 # 409: 07e4e2
.Lbr032: movi a7, sdk_NMIIrqIsOn # 40c: 71b1ff
movi a9, .Ldata001 # 40f: 91afff
l32i a8, sp, 0 /* [(local0)] */ # 412: 8801
l32i a10, a9, 8 /* [.Ldata003] */ # 414: a829
s32i a10, a8, 28 /* [.Ldata003] -> [[(local0)]+0x1c] */ # 416: a978
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 418: 720700
s32i a8, a9, 8 /* [(local0)] -> [.Ldata003] */ # 41b: 8929
bnez a7, .Lbr042 # 41d: 56f716
memw # 420: c02000
movi a0, 0x3feffe00 # 423: 01acff
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 426: b22080
movi a2, -32 /* 0xffffffe0 */ # 429: 6c02
and a11, a11, a2 # 42b: 20bb10
movi a2, 1 /* 0x00000001 */ # 42e: 0c12
or a11, a11, a2 # 430: 20bb20
memw # 433: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 436: b26080
call0 vPortExitCritical # 439: 01bbffc0
# 43d: 0000
j .Lbr042 # 43f: 465300
.Lbr033: bnei a3, 6, .Lbr036 # 442: 66636c
l32i a2, a2, 32 /* [arg0+0x20] */ # 445: 2882
movi a3, 0 /* 0x00000000 */ # 447: 0c03
movi a4, 24 /* 0x00000018 */ # 449: 1c84
call0 memset # 44b: 01b8ffc0
# 44f: 0000
movi a3, sdk_NMIIrqIsOn # 451: 31a1ff
l8ui a3, a3, 0 /* [sdk_NMIIrqIsOn] */ # 454: 320300
bnez a3, .Lbr035 # 457: ec13
call0 vPortEnterCritical # 459: 01b5ffc0
# 45d: 0000
.Lbr034: memw # 45f: c02000
movi a4, 0x3feffe00 # 462: 419eff
l32i a5, a4, 0x200 /* [0x3ff00000] */ # 465: 522480
movi a6, -32 /* 0xffffffe0 */ # 468: 6c06
and a5, a5, a6 # 46a: 605510
memw # 46d: c02000
s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 470: 526480
memw # 473: c02000
l32i a4, a4, 0x200 /* [0x3ff00000] */ # 476: 422480
bbsi a4, 0, .Lbr034 # 479: 07e4e2
.Lbr035: movi a7, sdk_NMIIrqIsOn # 47c: 719aff
movi a9, .Ldata001 # 47f: 9198ff
l32i a8, sp, 0 /* [(local0)] */ # 482: 8801
l32i a10, a9, 12 /* [.Ldata004] */ # 484: a839
s32i a10, a8, 28 /* [.Ldata004] -> [[(local0)]+0x1c] */ # 486: a978
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 488: 720700
s32i a8, a9, 12 /* [(local0)] -> [.Ldata004] */ # 48b: 8939
bnez a7, .Lbr042 # 48d: 56f70f
memw # 490: c02000
movi a0, 0x3feffe00 # 493: 0195ff
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 496: b22080
movi a2, -32 /* 0xffffffe0 */ # 499: 6c02
and a11, a11, a2 # 49b: 20bb10
movi a2, 1 /* 0x00000001 */ # 49e: 0c12
or a11, a11, a2 # 4a0: 20bb20
memw # 4a3: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 4a6: b26080
call0 vPortExitCritical # 4a9: 01a2ffc0
# 4ad: 0000
j .Lbr042 # 4af: 463700
.Lbr036: addi a4, a3, -7 /* arg1-0x7 */ # 4b2: 42c3f9
bnez a4, .Lbr042 # 4b5: 56740d
l32i a2, a2, 32 /* [arg0+0x20] */ # 4b8: 2882
movi a3, 0 /* 0x00000000 */ # 4ba: 0c03
movi a4, 12 /* 0x0000000c */ # 4bc: 0cc4
call0 memset # 4be: 019effc0
# 4c2: 0000
movi a3, sdk_NMIIrqIsOn # 4c4: 318aff
l8ui a4, a3, 0 /* [sdk_NMIIrqIsOn] */ # 4c7: 420300
bnez a4, .Lbr038 # 4ca: ec44
call0 vPortEnterCritical # 4cc: 019cffc0
# 4d0: 0000
.Lbr037: memw # 4d2: c02000
movi a0, 0x3feffe00 # 4d5: 0186ff
l32i a7, a0, 0x200 /* [0x3ff00000] */ # 4d8: 722080
movi a5, -32 /* 0xffffffe0 */ # 4db: 6c05
and a7, a7, a5 # 4dd: 507710
memw # 4e0: c02000
s32i a7, a0, 0x200 /* a7 -> [0x3ff00000] */ # 4e3: 726080
memw # 4e6: c02000
l32i a6, a0, 0x200 /* [0x3ff00000] */ # 4e9: 622080
bbsi a6, 0, .Lbr037 # 4ec: 07e6e2
movi a3, sdk_NMIIrqIsOn # 4ef: 3181ff
.Lbr038: movi a10, .Ldata001 # 4f2: a181ff
l32i a9, sp, 0 /* [(local0)] */ # 4f5: 9801
l32i a11, a10, 16 /* [.Ldata005] */ # 4f7: b84a
s32i a11, a9, 28 /* [.Ldata005] -> [[(local0)]+0x1c] */ # 4f9: b979
l8ui a8, a3, 0 /* [sdk_NMIIrqIsOn] */ # 4fb: 820300
s32i a9, a10, 16 /* [(local0)] -> [.Ldata005] */ # 4fe: 994a
bnez a8, .Lbr042 # 500: 56c808
memw # 503: c02000
movi a2, 0x3feffe00 # 506: 217dff
l32i a0, a2, 0x200 /* [0x3ff00000] */ # 509: 022280
movi a3, -32 /* 0xffffffe0 */ # 50c: 6c03
and a0, a0, a3 # 50e: 300010
movi a3, 1 /* 0x00000001 */ # 511: 0c13
or a0, a0, a3 # 513: 300020
memw # 516: c02000
s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 519: 026280
call0 vPortExitCritical # 51c: 0189ffc0
# 520: 0000
j .Lbr042 # 522: 861a00
.Lbr039: movi a3, 0 /* 0x00000000 */ # 525: 0c03
l32i a2, sp, 0 /* [(local0)] */ # 527: 2801
movi a4, 24 /* 0x00000018 */ # 529: 1c84
l32i a2, a2, 32 /* [[(local0)]+0x20] */ # 52b: 2882
call0 memset # 52d: 0185ffc0
# 531: 0000
movi a5, sdk_NMIIrqIsOn # 533: 5174ff
movi a0, 0x3feffe00 # 536: 0172ff
l8ui a4, a5, 0 /* [sdk_NMIIrqIsOn] */ # 539: 420500
movi a3, -32 /* 0xffffffe0 */ # 53c: 6c03
bnez a4, .Lbr041 # 53e: ec44
call0 vPortEnterCritical # 540: 0182ffc0
# 544: 0000
movi a0, 0x3feffe00 # 546: 0170ff
movi a3, -32 /* 0xffffffe0 */ # 549: 6c03
.Lbr040: memw # 54b: c02000
l32i a6, a0, 0x200 /* [0x3ff00000] */ # 54e: 622080
and a6, a6, a3 # 551: 306610
memw # 554: c02000
s32i a6, a0, 0x200 /* a6 -> [0x3ff00000] */ # 557: 626080
memw # 55a: c02000
l32i a5, a0, 0x200 /* [0x3ff00000] */ # 55d: 522080
bbsi a5, 0, .Lbr040 # 560: 07e5e7
movi a5, sdk_NMIIrqIsOn # 563: 516aff
.Lbr041: movi a9, .Ldata001 # 566: 916aff
l32i a8, sp, 0 /* [(local0)] */ # 569: 8801
l32i a10, a9, 0 /* [.Ldata001] */ # 56b: a809
s32i a10, a8, 28 /* [.Ldata001] -> [[(local0)]+0x1c] */ # 56d: a978
l8ui a7, a5, 0 /* [sdk_NMIIrqIsOn] */ # 56f: 720500
s32i a8, a9, 0 /* [(local0)] -> [.Ldata001] */ # 572: 8909
bnez a7, .Lbr042 # 574: dc87
memw # 576: c02000
l32i a11, a0, 0x200 /* [0x3ff00000] */ # 579: b22080
movi a2, 1 /* 0x00000001 */ # 57c: 0c12
and a11, a11, a3 # 57e: 30bb10
or a11, a11, a2 # 581: 20bb20
memw # 584: c02000
s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 587: b26080
call0 vPortExitCritical # 58a: 0170ffc0
# 58e: 0000
.Lbr042: l32i a0, sp, 4 /* [(local1)] */ # 590: 0811
addi sp, sp, 16 /* (top of frame) */ # 592: 12c110
ret # 595: 0df0
.literal_position # 598: 400f0000
# 59c: 20000000
# 5a0: 00000000
# 5a4: 80040000
# 5a8: 00f00000
# 5ac: e00c0000
# 5b0: a0110000
# Function @ .irom0.text+0x5b4
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_esf_buf_setup
.type sdk_esf_buf_setup, @function
sdk_esf_buf_setup:
addi sp, sp, -32 /* (local0) */ # 5b4: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5b7: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 5b9: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 5bb: c911
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 5bd: f941
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 5bf: d921
movi a15, 60 /* 0x0000003c */ # 5c1: 3ccf
movi a13, .Ldata010 # 5c3: d1f5ff
movi a12, .Ldata007 # 5c6: c1f5ff
movi a14, 1 /* 0x00000001 */ # 5c9: 0c1e
.Lbr043: movi a4, sdk_wDevCtrl # 5cb: 41f5ff
mov a2, a12 # 5ce: 2d0c
l32i a4, a4, 40 /* [sdk_wDevCtrl+0x28] */ # 5d0: 48a4
movi a3, 1 /* 0x00000001 */ # 5d2: 0c13
add a5, a15, a4 # 5d4: 4a5f
s32i a5, a12, 4 # 5d6: 591c
s32i a5, a12, 8 # 5d8: 592c
l32i a4, a4, 4 /* [[sdk_wDevCtrl+0x28]+0x4] */ # 5da: 4814
s32i a4, a12, 16 # 5dc: 494c
s16i a14, a12, 12 # 5de: e25c06
s32i a13, a12, 32 # 5e1: d98c
call0 sdk_esf_buf_recycle # 5e3: 050000
addi a12, a12, 36 # 5e6: c2cc24
addi a13, a13, 24 # 5e9: d2cd18
addi a15, a15, -12 # 5ec: f2cff4
bgei a15, 1, .Lbr043 # 5ef: e61fd8
movi a14, 8 /* 0x00000008 */ # 5f2: 0c8e
movi a15, 0x0000f000 # 5f4: f1edff
movi a7, .Ldata008 # 5f7: 71ebff
s32i a7, sp, 20 /* .Ldata008 -> [(local5)] */ # 5fa: 7951
.Lbr044: memw # 5fc: c02000
l32i a8, sp, 20 /* [(local5)] */ # 5ff: 8851
l16ui a10, a8, 0 /* [[(local5)]] */ # 601: a21800
movi a11, 256 /* 0x00000100 */ # 604: b2a100
and a10, a10, a15 # 607: f0aa10
or a10, a10, a11 # 60a: b0aa20
memw # 60d: c02000
s32i a13, a12, 32 # 610: d98c
mov a2, a12 # 612: 2d0c
movi a3, 4 /* 0x00000004 */ # 614: 0c43
s16i a10, a8, 0 /* a10 -> [[(local5)]] */ # 616: a25800
s32i a8, a12, 4 # 619: 891c
s32i a8, a12, 8 # 61b: 892c
movi a9, 1 /* 0x00000001 */ # 61d: 0c19
s16i a9, a12, 12 # 61f: 925c06
addi a8, a8, 12 /* [(local5)]+0xc */ # 622: cb88
s32i a8, a12, 16 # 624: 894c
call0 sdk_esf_buf_recycle # 626: 050000
addi a12, a12, 36 # 629: c2cc24
addi a13, a13, 24 # 62c: d2cd18
addi a14, a14, -1 # 62f: 0bee
l32i a11, sp, 20 /* [(local5)] */ # 631: b851
movi a0, 268 /* 0x0000010c */ # 633: 02a10c
add a11, a11, a0 /* [(local5)]+0x10c */ # 636: 0abb
s32i a11, sp, 20 /* [(local5)]+0x10c -> [(local5)] */ # 638: b951
bgei a14, 1, .Lbr044 # 63a: e61ebe
movi a14, 8 /* 0x00000008 */ # 63d: 0c8e
movi a3, .Ldata009 # 63f: 31dbff
s32i a3, sp, 24 /* .Ldata009 -> [(local6)] */ # 642: 3961
.Lbr045: memw # 644: c02000
l32i a4, sp, 24 /* [(local6)] */ # 647: 4861
l16ui a6, a4, 0 /* [[(local6)]] */ # 649: 621400
movi a7, 64 /* 0x00000040 */ # 64c: 4c07
and a6, a6, a15 # 64e: f06610
or a6, a6, a7 # 651: 706620
memw # 654: c02000
s32i a13, a12, 32 # 657: d98c
mov a2, a12 # 659: 2d0c
movi a3, 5 /* 0x00000005 */ # 65b: 0c53
s16i a6, a4, 0 /* a6 -> [[(local6)]] */ # 65d: 625400
s32i a4, a12, 4 # 660: 491c
s32i a4, a12, 8 # 662: 492c
movi a5, 1 /* 0x00000001 */ # 664: 0c15
s16i a5, a12, 12 # 666: 525c06
addi a4, a4, 12 /* [(local6)]+0xc */ # 669: cb44
s32i a4, a12, 16 # 66b: 494c
call0 sdk_esf_buf_recycle # 66d: 050000
addi a12, a12, 36 # 670: c2cc24
addi a13, a13, 24 # 673: d2cd18
l32i a7, sp, 24 /* [(local6)] */ # 676: 7861
addi a14, a14, -1 # 678: 0bee
addi a7, a7, 76 /* [(local6)]+0x4c */ # 67a: 72c74c
s32i a7, sp, 24 /* [(local6)]+0x4c -> [(local6)] */ # 67d: 7961
bgei a14, 1, .Lbr045 # 67f: e61ec1
movi a14, 4 /* 0x00000004 */ # 682: 0c4e
.Lbr046: s32i a13, a12, 32 # 684: d98c
mov a2, a12 # 686: 2d0c
movi a3, 6 /* 0x00000006 */ # 688: 0c63
call0 sdk_esf_buf_recycle # 68a: 050000
addi a12, a12, 36 # 68d: c2cc24
addi a13, a13, 24 # 690: d2cd18
addi a14, a14, -1 # 693: 0bee
bgei a14, 1, .Lbr046 # 695: e61eeb
movi a14, 6 /* 0x00000006 */ # 698: 0c6e
movi a13, .Label001 # 69a: d1c5ff
.Lbr047: s32i a13, a12, 32 # 69d: d98c
mov a2, a12 # 69f: 2d0c
movi a3, 7 /* 0x00000007 */ # 6a1: 0c73
call0 sdk_esf_buf_recycle # 6a3: 050000
addi a12, a12, 36 # 6a6: c2cc24
addi a13, a13, 12 # 6a9: cbdd
addi a14, a14, -1 # 6ab: 0bee
bgei a14, 1, .Lbr047 # 6ad: e61eec
l32i a12, sp, 4 /* [(local1)] */ # 6b0: c811
l32i a13, sp, 8 /* [(local2)] */ # 6b2: d821
l32i a14, sp, 12 /* [(local3)] */ # 6b4: e831
l32i a15, sp, 16 /* [(local4)] */ # 6b6: f841
l32i a0, sp, 0 /* [(local0)] */ # 6b8: 0801
addi sp, sp, 32 /* (top of frame) */ # 6ba: 12c120
ret # 6bd: 0df0

View file

@ -0,0 +1,582 @@
.section .bss, "aw", @nobits
.global sdk_interface_mask
.type sdk_interface_mask, @object
sdk_interface_mask:
.byte 0x00
.space 15
.global sdk_if_ctrl
.type sdk_if_ctrl, @object
sdk_if_ctrl:
.space 32
.section .irom0.text, "ax", @progbits
.literal_position # 0: 10000000
# Function @ .irom0.text+0x4
.global sdk_ic_get_addr
.type sdk_ic_get_addr, @function
sdk_ic_get_addr:
movi a3, sdk_if_ctrl # 4: 31ffff
slli a2, a2, 4 # 7: c02211
add a2, a3, a2 # a: 2a23
ret # c: 0df0
.literal_position # 10: 10000000
# Function @ .irom0.text+0x14
.global sdk_ic_set_opmode
.type sdk_ic_set_opmode, @function
sdk_ic_set_opmode:
movi a5, sdk_if_ctrl # 14: 51ffff
slli a6, a2, 4 # 17: c06211
add a5, a5, a6 # 1a: 6a55
s32i a3, a5, 8 # 1c: 3925
s8i a4, a5, 12 # 1e: 42450c
ret /* arg0 */ # 21: 0df0
.literal_position # 24: 10000000
# 28: 00000000
# 2c: 00000000
# 30: 00000000
# Function @ .irom0.text+0x34
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_ic_enable_interface
.type sdk_ic_enable_interface, @function
sdk_ic_enable_interface:
addi sp, sp, -16 /* (local0) */ # 34: 12c1f0
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 37: 5911
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 39: 0921
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 3b: c931
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 3d: 4901
mov a12, a2 /* arg0 */ # 3f: cd02
movi a2, sdk_if_ctrl # 41: 21f8ff
slli a4, a12, 4 # 44: c04c11
add a2, a2, a4 # 47: 4a22
movi a4, 6 /* 0x00000006 */ # 49: 0c64
call0 memcpy # 4b: 01f8ffc0
# 4f: 0000
mov a2, a12 /* arg0 */ # 51: 2d0c
l32i a3, sp, 0 /* [(local0)] */ # 53: 3801
l32i a4, sp, 4 /* [(local1)] */ # 55: 4811
call0 sdk_ic_set_opmode # 57: 050000
ssl a12 # 5a: 001c40
movi a5, sdk_interface_mask # 5d: 51f2ff
movi a3, 1 /* 0x00000001 */ # 60: 0c13
l8ui a2, a5, 0 /* [sdk_interface_mask] */ # 62: 220500
sll a3, a3 # 65: 0033a1
or a2, a2, a3 # 68: 302220
extui a2, a2, 0, 8 # 6b: 202074
s8i a2, a5, 0 /* a2 -> [sdk_interface_mask] */ # 6e: 224500
call0 __popcountsi2 # 71: 01efffc0
# 75: 0000
extui a2, a2, 0, 8 # 77: 202074
l32i a12, sp, 12 /* [(local3)] */ # 7a: c831
l32i a0, sp, 8 /* [(local2)] */ # 7c: 0821
addi sp, sp, 16 /* (top of frame) */ # 7e: 12c110
ret # 81: 0df0
.literal_position # 84: 00000000
# Function @ .irom0.text+0x88
.global sdk_ic_interface_enabled
.type sdk_ic_interface_enabled, @function
sdk_ic_interface_enabled:
movi a3, sdk_interface_mask # 88: 31ffff
l8ui a3, a3, 0 /* [sdk_interface_mask] */ # 8b: 320300
ssr a2 # 8e: 000240
srl a2, a3 # 91: 302091
extui a2, a2, 0, 1 # 94: 202004
ret # 97: 0df0
.literal_position # 9c: 00000000
# a0: 00000000
# a4: 00000000
# a8: 00000000
# ac: 00000000
# Function @ .irom0.text+0xb0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ic_disable_interface
.type sdk_ic_disable_interface, @function
sdk_ic_disable_interface:
addi sp, sp, -16 /* (local0) */ # b0: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b3: 0901
movi a0, sdk_interface_mask # b5: 01f9ff
movi a4, 1 /* 0x00000001 */ # b8: 0c14
l8ui a0, a0, 0 /* [sdk_interface_mask] */ # ba: 020000
ssr a2 # bd: 000240
srl a3, a0 # c0: 003091
bbci a3, 0, .Lbr001 # c3: 07631f
ssl a2 # c6: 001240
sll a3, a4 # c9: 0034a1
movi a4, -1 /* 0xffffffff */ # cc: 7cf4
xor a3, a3, a4 # ce: 403330
movi a4, sdk_interface_mask # d1: 41f3ff
and a3, a0, a3 # d4: 303010
s8i a3, a4, 0 /* a3 -> [sdk_interface_mask] */ # d7: 324400
call0 sdk_rc_disable_trc_by_interface # da: 01f3ffc0
# de: 0000
movi a0, sdk_interface_mask # e0: 01f1ff
l8ui a0, a0, 0 /* [sdk_interface_mask] */ # e3: 020000
.Lbr001: mov a2, a0 /* [sdk_interface_mask] */ # e6: 2d00
call0 __popcountsi2 # e8: 01f1ffc0
# ec: 0000
extui a2, a2, 0, 8 # ee: 202074
l32i a0, sp, 0 /* [(local0)] */ # f1: 0801
addi sp, sp, 16 /* (top of frame) */ # f3: 12c110
ret # f6: 0df0
.literal_position # f8: 10000000
# Function @ .irom0.text+0xfc
.global sdk_ic_is_pure_sta
.type sdk_ic_is_pure_sta, @function
sdk_ic_is_pure_sta:
movi a4, sdk_if_ctrl # fc: 41ffff
slli a5, a2, 4 # ff: c05211
add a4, a4, a5 # 102: 5a44
l32i a3, a4, 8 # 104: 3824
movi a2, 0 /* 0x00000000 */ # 106: 0c02
beqi a3, 1, .Lbr002 # 108: 261307
l8ui a7, a4, 12 # 10b: 72040c
movi a6, 1 /* 0x00000001 */ # 10e: 0c16
moveqz a2, a6, a7 # 110: 702683
.Lbr002: extui a2, a2, 0, 8 # 113: 202074
ret # 116: 0df0
.literal_position # 118: 10000000
# Function @ .irom0.text+0x11c
.global sdk_ic_get_ptk_alg
.type sdk_ic_get_ptk_alg, @function
sdk_ic_get_ptk_alg:
movi a3, sdk_if_ctrl # 11c: 31ffff
slli a2, a2, 4 # 11f: c02211
add a2, a3, a2 # 122: 2a23
l8ui a2, a2, 13 # 124: 22020d
ret # 127: 0df0
.literal_position # 12c: 10000000
# Function @ .irom0.text+0x130
.global sdk_ic_get_gtk_alg
.type sdk_ic_get_gtk_alg, @function
sdk_ic_get_gtk_alg:
movi a3, sdk_if_ctrl # 130: 31ffff
slli a2, a2, 4 # 133: c02211
add a2, a3, a2 # 136: 2a23
l8ui a2, a2, 14 # 138: 22020e
ret # 13b: 0df0
.literal_position # 140: 10000000
# Function @ .irom0.text+0x144
.global sdk_ic_set_ptk_alg
.type sdk_ic_set_ptk_alg, @function
sdk_ic_set_ptk_alg:
movi a4, sdk_if_ctrl # 144: 41ffff
slli a5, a2, 4 # 147: c05211
add a4, a4, a5 # 14a: 5a44
s8i a3, a4, 13 # 14c: 32440d
ret /* arg0 */ # 14f: 0df0
.literal_position # 154: 10000000
# Function @ .irom0.text+0x158
.global sdk_ic_set_gtk_alg
.type sdk_ic_set_gtk_alg, @function
sdk_ic_set_gtk_alg:
movi a4, sdk_if_ctrl # 158: 41ffff
slli a5, a2, 4 # 15b: c05211
add a4, a4, a5 # 15e: 5a44
s8i a3, a4, 14 # 160: 32440e
ret /* arg0 */ # 163: 0df0
.literal_position # 168: 10000000
# Function @ .irom0.text+0x16c
.global sdk_ic_interface_is_p2p
.type sdk_ic_interface_is_p2p, @function
sdk_ic_interface_is_p2p:
movi a3, sdk_if_ctrl # 16c: 31ffff
slli a2, a2, 4 # 16f: c02211
add a2, a3, a2 # 172: 2a23
l8ui a2, a2, 12 # 174: 22020c
ret # 177: 0df0
.literal_position # 17c: 00000000
# 180: 00000000
# Function @ .irom0.text+0x184
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc001: movi a3, 0 /* 0x00000000 */ # 184: 0c03
addi sp, sp, -16 /* (local0) */ # 186: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 189: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18b: 0901
mov a12, a2 /* arg0 */ # 18d: cd02
call0 sdk_ic_set_ptk_alg # 18f: 050000
mov a2, a12 /* arg0 */ # 192: 2d0c
movi a3, 0 /* 0x00000000 */ # 194: 0c03
call0 sdk_ic_set_gtk_alg # 196: 050000
mov a2, a12 /* arg0 */ # 199: 2d0c
call0 sdk_wDev_Crypto_Disable # 19b: 01f8ffc0
# 19f: 0000
mov a3, a12 /* arg0 */ # 1a1: 3d0c
movi a2, 1 /* 0x00000001 */ # 1a3: 0c12
movi a4, 0 /* 0x00000000 */ # 1a5: 0c04
call0 sdk_wDev_SetRxPolicy # 1a7: 01f6ffc0
# 1ab: 0000
l32i a12, sp, 4 /* [(local1)] */ # 1ad: c811
l32i a0, sp, 0 /* [(local0)] */ # 1af: 0801
addi sp, sp, 16 /* (top of frame) */ # 1b1: 12c110
ret # 1b4: 0df0
.literal_position # 1b8: 00000000
# 1bc: 00000000
# 1c0: 00000000
# 1c4: 00000000
# 1c8: 00000000
# Function @ .irom0.text+0x1cc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 1cc: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1cf: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d1: 0901
mov a12, a2 /* arg0 */ # 1d3: cd02
movi a2, .Lstr001 # 1d5: 21f8ff
mov a3, a12 /* arg0 */ # 1d8: 3d0c
call0 printf # 1da: 01f8ffc0
# 1de: 0000
movi a2, 0 /* 0x00000000 */ # 1e0: 0c02
mov a3, a12 /* arg0 */ # 1e2: 3d0c
movi a4, 0 /* 0x00000000 */ # 1e4: 0c04
call0 sdk_wDev_SetRxPolicy # 1e6: 01f6ffc0
# 1ea: 0000
mov a2, a12 /* arg0 */ # 1ec: 2d0c
call0 sdk_ic_disable_interface # 1ee: 050000
bnez a2, .Lbr003 # 1f1: cca2
call0 sdk_wDevDisableRx # 1f3: 01f4ffc0
# 1f7: 0000
call0 sdk_pm_force_scan_unlock # 1f9: 01f3ffc0
# 1fd: 0000
.Lbr003: l32i a12, sp, 4 /* [(local1)] */ # 1ff: c811
l32i a0, sp, 0 /* [(local0)] */ # 201: 0801
addi sp, sp, 16 /* (top of frame) */ # 203: 12c110
ret # 206: 0df0
.literal_position # 208: 0c000000
# 20c: 18000000
# 210: 00000000
# 214: 00000000
# 218: 00000000
# 21c: 00000000
# Function @ .irom0.text+0x220
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_ic_set_vif
.type sdk_ic_set_vif, @function
sdk_ic_set_vif:
addi sp, sp, -32 /* (local0) */ # 220: 12c1e0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 223: 0921
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 225: 5911
s32i a6, sp, 0 /* arg4 -> [(local0)] */ # 227: 6901
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 229: c931
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 22b: d941
mov a12, a2 /* arg0 */ # 22d: cd02
mov a13, a4 /* arg2 */ # 22f: dd04
bnei a3, 2, .Lbr004 # 231: 662316
movi a2, .Lstr002 # 234: 21f5ff
mov a3, a12 /* arg0 */ # 237: 3d0c
call0 printf # 239: 01f5ffc0
# 23d: 0000
mov a2, a12 /* arg0 */ # 23f: 2d0c
l32i a3, sp, 4 /* [(local1)] */ # 241: 3811
l32i a4, sp, 0 /* [(local0)] */ # 243: 4801
call0 sdk_ic_set_opmode # 245: 050000
j .Lbr007 # 248: 860d00
.Lbr004: bnei a3, 1, .Lbr006 # 24b: 661330
movi a2, .Lstr003 # 24e: 21efff
mov a3, a12 /* arg0 */ # 251: 3d0c
call0 printf # 253: 01f0ffc0
# 257: 0000
mov a2, a12 /* arg0 */ # 259: 2d0c
mov a3, a13 /* arg2 */ # 25b: 3d0d
call0 sdk_wDev_SetMacAddress # 25d: 01eeffc0
# 261: 0000
mov a3, a13 /* arg2 */ # 263: 3d0d
mov a2, a12 /* arg0 */ # 265: 2d0c
l32i a4, sp, 4 /* [(local1)] */ # 267: 4811
l32i a5, sp, 0 /* [(local0)] */ # 269: 5801
call0 sdk_ic_enable_interface # 26b: 050000
bnei a2, 1, .Lbr005 # 26e: 661205
call0 sdk_wDevEnableRx # 271: 01eaffc0
# 275: 0000
.Lbr005: mov a2, a12 /* arg0 */ # 277: 2d0c
call0 .Lfunc001 # 279: 85f0ff
j .Lbr007 # 27c: 860000
.Lbr006: call0 .Lfunc002 # 27f: c5f4ff
.Lbr007: l32i a12, sp, 12 /* [(local3)] */ # 282: c831
l32i a13, sp, 16 /* [(local4)] */ # 284: d841
l32i a0, sp, 8 /* [(local2)] */ # 286: 0821
addi sp, sp, 32 /* (top of frame) */ # 288: 12c120
ret # 28b: 0df0
.literal_position # 290: 24000000
# 294: 00000000
# 298: 00feef3f
# 29c: 00000000
# 2a0: 00000000
# 2a4: 00000000
# 2a8: 00000000
# 2ac: 00000000
# 2b0: 00000000
# 2b4: 00000000
# Function @ .irom0.text+0x2b8
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_ic_set_sta
.type sdk_ic_set_sta, @function
sdk_ic_set_sta:
addi sp, sp, -32 /* (local0) */ # 2b8: 12c1e0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2bb: c921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2bd: 0911
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 2bf: e941
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2c1: d931
mov a14, a6 /* arg4 */ # 2c3: ed06
mov a13, a2 /* arg0 */ # 2c5: dd02
beqz a3, .Lbr010 # 2c7: 169308
mov a3, a4 /* arg2 */ # 2ca: 3d04
s32i a7, sp, 0 /* arg5 -> [(local0)] */ # 2cc: 7901
mov a4, a5 /* arg3 */ # 2ce: 4d05
mov a5, a6 /* arg4 */ # 2d0: 5d06
call0 sdk_rc_enable_trc # 2d2: 01f3ffc0
# 2d6: 0000
mov a12, a2 # 2d8: cd02
mov a3, a14 /* arg4 */ # 2da: 3d0e
movi a2, .Lstr004 # 2dc: 21edff
call0 printf # 2df: 01f1ffc0
# 2e3: 0000
beqz a12, .Lbr011 # 2e5: 165c07
mov a2, a13 /* arg0 */ # 2e8: 2d0d
call0 sdk_ic_interface_is_p2p # 2ea: 050000
movi a14, -32 /* 0xffffffe0 */ # 2ed: 6c0e
l32i a4, sp, 0 /* [(local0)] */ # 2ef: 4801
mov a0, a2 # 2f1: 0d02
s32i a2, sp, 20 /* a2 -> [(local5)] */ # 2f3: 2951
movi a2, sdk_NMIIrqIsOn # 2f5: 21e7ff
s32i a4, a12, 92 # 2f8: 426c17
l8ui a2, a2, 0 /* [sdk_NMIIrqIsOn] */ # 2fb: 220200
movi a13, 0x3feffe00 # 2fe: d1e6ff
bnez a2, .Lbr009 # 301: dce2
call0 vPortEnterCritical # 303: 01e9ffc0
# 307: 0000
.Lbr008: memw # 309: c02000
l32i a6, a13, 0x200 /* [0x3ff00000] */ # 30c: 622d80
and a6, a6, a14 # 30f: e06610
memw # 312: c02000
s32i a6, a13, 0x200 /* a6 -> [0x3ff00000] */ # 315: 626d80
memw # 318: c02000
l32i a5, a13, 0x200 /* [0x3ff00000] */ # 31b: 522d80
bbsi a5, 0, .Lbr008 # 31e: 07e5e7
l32i a0, sp, 20 /* [(local5)] */ # 321: 0851
.Lbr009: mov a2, a12 # 323: 2d0c
movi a3, 0 /* 0x00000000 */ # 325: 0c03
mov a4, a0 # 327: 4d00
call0 sdk_rcUpdatePhyMode # 329: 01e0ffc0
# 32d: 0000
movi a7, sdk_NMIIrqIsOn # 32f: 71dbff
l8ui a7, a7, 0 /* [sdk_NMIIrqIsOn] */ # 332: 720700
bnez a7, .Lbr011 # 335: ec57
memw # 337: c02000
l32i a8, a13, 0x200 /* [0x3ff00000] */ # 33a: 822d80
movi a9, 1 /* 0x00000001 */ # 33d: 0c19
and a8, a8, a14 # 33f: e08810
or a8, a8, a9 # 342: 908820
memw # 345: c02000
s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 348: 826d80
call0 vPortExitCritical # 34b: 01d9ffc0
# 34f: 0000
j .Lbr011 # 351: 460200
.Lbr010: mov a3, a4 /* arg2 */ # 354: 3d04
mov a4, a5 /* arg3 */ # 356: 4d05
call0 sdk_rc_disable_trc # 358: 01d7ffc0
# 35c: 0000
.Lbr011: l32i a12, sp, 8 /* [(local2)] */ # 35e: c821
l32i a13, sp, 12 /* [(local3)] */ # 360: d831
l32i a14, sp, 16 /* [(local4)] */ # 362: e841
l32i a0, sp, 4 /* [(local1)] */ # 364: 0811
addi sp, sp, 32 /* (top of frame) */ # 366: 12c120
ret # 369: 0df0
.literal_position # 36c: 34000000
# 370: 3c000000
# 374: 2c000000
# 378: 00000000
# 37c: 00000000
# 380: 00000000
# 384: 00000000
# 388: 00000000
# Function @ .irom0.text+0x38c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_ic_bss_info_update
.type sdk_ic_bss_info_update, @function
sdk_ic_bss_info_update:
addi sp, sp, -16 /* (local0) */ # 38c: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 38f: 0911
bnei a4, 2, .Lbr012 # 391: 662412
s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 394: 5901
beqz a5, .Lbr015 # 396: bcb5
mov a4, a3 /* arg1 */ # 398: 4d03
mov a3, a2 /* arg0 */ # 39a: 3d02
movi a2, 2 /* 0x00000002 */ # 39c: 0c22
call0 sdk_wDev_SetRxPolicy # 39e: 01f6ffc0
# 3a2: 0000
j .Lbr016 # 3a4: 060c00
.Lbr012: bnei a4, 1, .Lbr013 # 3a7: 661417
mov a4, a3 /* arg1 */ # 3aa: 4d03
mov a3, a2 /* arg0 */ # 3ac: 3d02
movi a2, 2 /* 0x00000002 */ # 3ae: 0c22
call0 sdk_wDev_SetRxPolicy # 3b0: 01f3ffc0
# 3b4: 0000
movi a2, .Lstr006 # 3b6: 21edff
call0 printf # 3b9: 01f1ffc0
# 3bd: 0000
j .Lbr014 # 3bf: c60200
.Lbr013: call0 .Lfunc001 # 3c2: 05dcff
movi a2, .Lstr007 # 3c5: 21eaff
call0 printf # 3c8: 01efffc0
# 3cc: 0000
.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 3ce: 0811
addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110
ret # 3d3: 0df0
.Lbr015: call0 .Lfunc001 # 3d5: c5daff
.Lbr016: movi a2, .Lstr005 # 3d8: 21e7ff
l32i a3, sp, 0 /* [(local0)] */ # 3db: 3801
call0 printf # 3dd: 01eaffc0
# 3e1: 0000
j .Lbr014 # 3e3: c6f9ff
.literal_position # 3e8: 00000000
# 3ec: 00000000
# Function @ .irom0.text+0x3f0
# Local variables/stack:
# (local0): word[4] @ -0x30
# (local1): word @ -0x20
# (local2): word @ -0x1c
# (local3): word @ -0x18
# (local4): word @ -0x14
# (local5): word @ -0x10
# (local6): word @ -0xc
# (local7): word[2] @ -0x8
.global sdk_ic_set_key
.type sdk_ic_set_key, @function
sdk_ic_set_key:
addi sp, sp, -48 /* (local0) */ # 3f0: 12c1d0
s32i a0, sp, 28 /* a0 -> [(local4)] */ # 3f3: 0971
s32i a4, sp, 16 /* arg2 -> [(local1)] */ # 3f5: 4941
s32i a5, sp, 20 /* arg3 -> [(local2)] */ # 3f7: 5951
s32i a7, sp, 24 /* arg5 -> [(local3)] */ # 3f9: 7961
s32i a14, sp, 40 /* a14 -> [(local7)] */ # 3fb: e9a1
s32i a13, sp, 36 /* a13 -> [(local6)] */ # 3fd: d991
s32i a12, sp, 32 /* a12 -> [(local5)] */ # 3ff: c981
mov a13, a2 /* arg0 */ # 401: dd02
mov a12, a3 /* arg1 */ # 403: cd03
mov a14, a6 /* arg4 */ # 405: ed06
bltui a6, 6, .Lbr017 # 407: b66605
call0 sdk_ic_set_ptk_alg # 40a: 050000
j .Lbr019 # 40d: 460400
.Lbr017: bnez a3, .Lbr018 # 410: ccb3
call0 sdk_ic_set_ptk_alg # 412: 050000
mov a2, a13 /* arg0 */ # 415: 2d0d
mov a3, a12 /* arg1 */ # 417: 3d0c
call0 sdk_ic_set_gtk_alg # 419: 050000
j .Lbr019 # 41c: 860000
.Lbr018: call0 sdk_ic_set_gtk_alg # 41f: 050000
.Lbr019: mov a6, a14 /* arg4 */ # 422: 6d0e
l32i a4, sp, 16 /* [(local1)] */ # 424: 4841
l32i a5, sp, 20 /* [(local2)] */ # 426: 5851
l32i a7, sp, 24 /* [(local3)] */ # 428: 7861
mov a2, a12 /* arg1 */ # 42a: 2d0c
mov a3, a13 /* arg0 */ # 42c: 3d0d
l8ui a0, sp, 48 /* [(local8)] */ # 42e: 020130
s32i a0, sp, 0 /* [(local8)] -> [(local0)] */ # 431: 0901
call0 sdk_wDev_Insert_KeyEntry # 433: 01edffc0
# 437: 0000
mov a3, a12 /* arg1 */ # 439: 3d0c
mov a2, a13 /* arg0 */ # 43b: 2d0d
call0 sdk_wDev_Crypto_Conf # 43d: 01ebffc0
# 441: 0000
l32i a12, sp, 32 /* [(local5)] */ # 443: c881
l32i a13, sp, 36 /* [(local6)] */ # 445: d891
l32i a14, sp, 40 /* [(local7)] */ # 447: e8a1
l32i a0, sp, 28 /* [(local4)] */ # 449: 0871
addi sp, sp, 48 /* (local8) */ # 44b: 12c130
ret # 44e: 0df0
.literal_position # 450: 00000000
# Function @ .irom0.text+0x454
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_ic_remove_key
.type sdk_ic_remove_key, @function
sdk_ic_remove_key:
addi sp, sp, -16 /* (local0) */ # 454: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 457: 0901
call0 sdk_wDev_remove_KeyEntry # 459: 01fdffc0
# 45d: 0000
l32i a0, sp, 0 /* [(local0)] */ # 45f: 0801
addi sp, sp, 16 /* (top of frame) */ # 461: 12c110
ret # 464: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "del if%d\n" # 0: 64656c20
# 4: 69662564
# 8: 0a00
.balign 4
.Lstr002: .asciz "chg if%d\n" # c: 63686720
# 10: 69662564
# 14: 0a00
.balign 4
.Lstr003: .asciz "add if%d\n" # 18: 61646420
# 1c: 69662564
# 20: 0a00
.balign 4
.Lstr004: .asciz "aid %d\n" # 24: 61696420
# 28: 25640a00
.Lstr005: .asciz "bcn %d\n" # 2c: 62636e20
# 30: 25640a00
.Lstr006: .asciz "cnt \n" # 34: 636e7420
# 38: 0a00
.balign 4
.Lstr007: .asciz "uncnt \n" # 3c: 756e636e
# 40: 74200a00

2683
binary_sdk/libpp/lmac.S Normal file

File diff suppressed because it is too large Load diff

View file

3123
binary_sdk/libpp/pm.S Normal file

File diff suppressed because it is too large Load diff

3980
binary_sdk/libpp/pp.S Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,557 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.Lfunc001: bltui a2, 5, .Lbr003 # 0: b65213
bltui a2, 8, .Lbr001 # 3: b68209
movi a4, 36 /* 0x00000024 */ # 6: 2c44
bgeui a2, 16, .Lbr002 # 8: f6b207
movi a4, 20 /* 0x00000014 */ # b: 1c44
j .Lbr002 # d: 860000
.Lbr001: movi a4, 96 /* 0x00000060 */ # 10: 42a060
.Lbr002: mov a2, a4 # 13: 2d04
ret # 15: 0df0
.Lbr003: movi a2, 192 /* 0x000000c0 */ # 17: 22a0c0
ret /* 0x000000c0 */ # 1a: 0df0
.literal_position # 1c: 00000000
# Function @ .text+0x20
.global sdk_RC_GetAckRate
.type sdk_RC_GetAckRate, @function
sdk_RC_GetAckRate:
movi a3, .Ldata002 # 20: 31ffff
addx8 a2, a2, a3 # 23: 3022b0
l8ui a2, a2, 5 # 26: 220205
ret # 29: 0df0
.literal_position # 2c: 00000000
# Function @ .text+0x30
.global sdk_RC_GetRtsRate
.type sdk_RC_GetRtsRate, @function
sdk_RC_GetRtsRate:
movi a3, .Ldata002 # 30: 31ffff
addx8 a2, a2, a3 # 33: 3022b0
l8ui a2, a2, 4 # 36: 220204
ret # 39: 0df0
.literal_position # 3c: 00000000
# 40: 00000000
# Function @ .text+0x44
.global sdk_RC_GetAckTime
.type sdk_RC_GetAckTime, @function
sdk_RC_GetAckTime:
movi a3, .Ldata002 # 44: 31feff
addx8 a2, a2, a3 # 47: 3022b0
movi a3, .Ldata001 # 4a: 31fdff
l8ui a2, a2, 5 # 4d: 220205
addx2 a2, a2, a3 # 50: 302290
l16ui a2, a2, 0 # 53: 221200
ret # 56: 0df0
# Function @ .text+0x58
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_RC_GetCtsTime
.type sdk_RC_GetCtsTime, @function
sdk_RC_GetCtsTime:
addi sp, sp, -32 /* (local0) */ # 58: 12c1e0
s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 5b: 3901
s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 5d: 4911
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 5f: c931
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 61: 0921
mov a12, a2 /* arg0 */ # 63: cd02
call0 .Lfunc001 # 65: 85f9ff
s32i a2, sp, 16 /* a2 -> [(local4)] */ # 68: 2941
l32i a3, sp, 0 /* [(local0)] */ # 6a: 3801
mov a2, a12 /* arg0 */ # 6c: 2d0c
call0 .Lfunc002 # 6e: 850600
l32i a0, sp, 16 /* [(local4)] */ # 71: 0841
l32i a3, sp, 4 /* [(local1)] */ # 73: 3811
movi a4, 10 /* 0x0000000a */ # 75: 0ca4
add a2, a3, a2 # 77: 2a23
bltui a12, 8, .Lbr004 # 79: b68c01
movi a4, 16 /* 0x00000010 */ # 7c: 1c04
.Lbr004: l32i a12, sp, 12 /* [(local3)] */ # 7e: c831
add a5, a0, a4 # 80: 4a50
add a2, a2, a5 # 82: 5a22
l32i a0, sp, 8 /* [(local2)] */ # 84: 0821
addi sp, sp, 32 /* (top of frame) */ # 86: 12c120
extui a2, a2, 0, 16 # 89: 2020f4
ret # 8c: 0df0
.literal_position # 90: 00000000
# Function @ .text+0x94
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_RC_GetBlockAckTime
.type sdk_RC_GetBlockAckTime, @function
sdk_RC_GetBlockAckTime:
addi sp, sp, -16 /* (local0) */ # 94: 12c1f0
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 97: c931
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 99: 0921
movi a0, .Ldata002 # 9b: 01fdff
movi a12, 10 /* 0x0000000a */ # 9e: 0cac
addx8 a0, a2, a0 # a0: 0002b0
l8ui a2, a0, 5 # a3: 220005
s32i a0, sp, 0 /* a0 -> [(local0)] */ # a6: 0901
bltui a2, 8, .Lbr005 # a8: b68201
movi a12, 16 /* 0x00000010 */ # ab: 1c0c
.Lbr005: call0 .Lfunc001 # ad: 05f5ff
s32i a2, sp, 4 /* a2 -> [(local1)] */ # b0: 2911
l32i a2, sp, 0 /* [(local0)] */ # b2: 2801
movi a3, 32 /* 0x00000020 */ # b4: 2c03
l8ui a2, a2, 5 /* [[(local0)]+0x5] */ # b6: 220205
call0 .Lfunc002 # b9: c50100
l32i a3, sp, 4 /* [(local1)] */ # bc: 3811
l32i a0, sp, 8 /* [(local2)] */ # be: 0821
add a3, a12, a3 # c0: 3a3c
l32i a12, sp, 12 /* [(local3)] */ # c2: c831
add a2, a2, a3 # c4: 3a22
extui a2, a2, 0, 16 # c6: 2020f4
addi sp, sp, 16 /* (top of frame) */ # c9: 12c110
ret # cc: 0df0
.literal_position # d0: 00000000
# d4: ffff0300
# Function @ .text+0xd8
.Lfunc002: slli a4, a3, 3 # d8: d04311
movi a5, .Ldata002 # db: 51fdff
extui a3, a4, 0, 16 # de: 4030f4
movi a4, 0x0003ffff # e1: 41fcff
addx8 a5, a2, a5 # e4: 5052b0
l32i a5, a5, 0 # e7: 5805
bltui a2, 8, .Lbr006 # e9: b68205
addi a3, a3, 22 # ec: 32c316
extui a3, a3, 0, 16 # ef: 3030f4
.Lbr006: mull a3, a5, a3 # f2: 303582
add a3, a3, a4 # f5: 4a33
extui a3, a3, 18, 14 # f7: 3032d5
bltui a2, 8, .Lbr007 # fa: b68206
movi a4, -4 /* 0xfffffffc */ # fd: 7cc4
addi a3, a3, 3 # ff: 3b33
and a3, a3, a4 # 101: 403310
.Lbr007: extui a2, a3, 0, 16 # 104: 3020f4
ret # 107: 0df0
.section .data, "aw", @progbits
.Ldata001: .byte 0x3a, 0x01, 0x02, 0x01, 0xdf, 0x00, 0xd5, 0x00
.byte 0x3a, 0x01, 0xa2, 0x00, 0x7f, 0x00, 0x75, 0x00
.byte 0x2c, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x3c, 0x00
.byte 0x2c, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x3c, 0x00
.byte 0x3c, 0x00, 0x30, 0x00, 0x30, 0x00, 0x2c, 0x00
.byte 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00
.byte 0x3c, 0x00, 0x30, 0x00, 0x30, 0x00, 0x2c, 0x00
.byte 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00
.section .bss, "aw", @nobits
.Ldata002: .word 0x00000000 # 0: 00000000
.Ldata003: .byte 0x00
.Ldata004: .byte 0x00
.Ldata005: .byte 0x00
.balign 4
.Ldata006: .word 0x00000000 # 8: 00000000
.Ldata007: .byte 0x00
.Ldata008: .byte 0x00
.Ldata009: .byte 0x00
.balign 4
.Ldata010: .word 0x00000000 # 10: 00000000
.Ldata011: .byte 0x00
.Ldata012: .byte 0x00
.Ldata013: .byte 0x00
.balign 4
.Ldata014: .word 0x00000000 # 18: 00000000
.Ldata015: .byte 0x00
.Ldata016: .byte 0x00
.Ldata017: .byte 0x00
.balign 4
.Ldata018: .word 0x00000000 # 20: 00000000
.Ldata019: .byte 0x00
.Ldata020: .byte 0x00
.Ldata021: .byte 0x00
.balign 4
.Ldata022: .word 0x00000000 # 28: 00000000
.Ldata023: .byte 0x00
.Ldata024: .byte 0x00
.Ldata025: .byte 0x00
.balign 4
.Ldata026: .word 0x00000000 # 30: 00000000
.Ldata027: .byte 0x00
.Ldata028: .byte 0x00
.Ldata029: .byte 0x00
.balign 4
.Ldata030: .word 0x00000000 # 38: 00000000
.Ldata031: .byte 0x00
.Ldata032: .byte 0x00
.Ldata033: .byte 0x00
.balign 4
.Ldata034: .word 0x00000000 # 40: 00000000
.Ldata035: .byte 0x00
.Ldata036: .byte 0x00
.Ldata037: .byte 0x00
.balign 4
.Ldata038: .word 0x00000000 # 48: 00000000
.Ldata039: .byte 0x00
.Ldata040: .byte 0x00
.Ldata041: .byte 0x00
.balign 4
.Ldata042: .word 0x00000000 # 50: 00000000
.Ldata043: .byte 0x00
.Ldata044: .byte 0x00
.Ldata045: .byte 0x00
.balign 4
.Ldata046: .word 0x00000000 # 58: 00000000
.Ldata047: .byte 0x00
.Ldata048: .byte 0x00
.Ldata049: .byte 0x00
.balign 4
.Ldata050: .word 0x00000000 # 60: 00000000
.Ldata051: .byte 0x00
.Ldata052: .byte 0x00
.Ldata053: .byte 0x00
.balign 4
.Ldata054: .word 0x00000000 # 68: 00000000
.Ldata055: .byte 0x00
.Ldata056: .byte 0x00
.Ldata057: .byte 0x00
.balign 4
.Ldata058: .word 0x00000000 # 70: 00000000
.Ldata059: .byte 0x00
.Ldata060: .byte 0x00
.Ldata061: .byte 0x00
.balign 4
.Ldata062: .word 0x00000000 # 78: 00000000
.Ldata063: .byte 0x00
.Ldata064: .byte 0x00
.Ldata065: .byte 0x00
.balign 4
.Ldata066: .word 0x00000000 # 80: 00000000
.Ldata067: .byte 0x00
.Ldata068: .byte 0x00
.Ldata069: .byte 0x00
.balign 4
.Ldata070: .word 0x00000000 # 88: 00000000
.Ldata071: .byte 0x00
.Ldata072: .byte 0x00
.Ldata073: .byte 0x00
.balign 4
.Ldata074: .word 0x00000000 # 90: 00000000
.Ldata075: .byte 0x00
.Ldata076: .byte 0x00
.Ldata077: .byte 0x00
.balign 4
.Ldata078: .word 0x00000000 # 98: 00000000
.Ldata079: .byte 0x00
.Ldata080: .byte 0x00
.Ldata081: .byte 0x00
.balign 4
.Ldata082: .word 0x00000000 # a0: 00000000
.Ldata083: .byte 0x00
.Ldata084: .byte 0x00
.Ldata085: .byte 0x00
.balign 4
.Ldata086: .word 0x00000000 # a8: 00000000
.Ldata087: .byte 0x00
.Ldata088: .byte 0x00
.Ldata089: .byte 0x00
.balign 4
.Ldata090: .word 0x00000000 # b0: 00000000
.Ldata091: .byte 0x00
.Ldata092: .byte 0x00
.Ldata093: .byte 0x00
.balign 4
.Ldata094: .word 0x00000000 # b8: 00000000
.Ldata095: .byte 0x00
.Ldata096: .byte 0x00
.Ldata097: .byte 0x00
.balign 4
.Ldata098: .word 0x00000000 # c0: 00000000
.Ldata099: .byte 0x00
.Ldata100: .byte 0x00
.Ldata101: .byte 0x00
.balign 4
.Ldata102: .word 0x00000000 # c8: 00000000
.Ldata103: .byte 0x00
.Ldata104: .byte 0x00
.Ldata105: .byte 0x00
.balign 4
.Ldata106: .word 0x00000000 # d0: 00000000
.Ldata107: .byte 0x00
.Ldata108: .byte 0x00
.Ldata109: .byte 0x00
.balign 4
.Ldata110: .word 0x00000000 # d8: 00000000
.Ldata111: .byte 0x00
.Ldata112: .byte 0x00
.Ldata113: .byte 0x00
.balign 4
.Ldata114: .word 0x00000000 # e0: 00000000
.Ldata115: .byte 0x00
.Ldata116: .byte 0x00
.Ldata117: .byte 0x00
.balign 4
.Ldata118: .word 0x00000000 # e8: 00000000
.Ldata119: .byte 0x00
.Ldata120: .byte 0x00
.Ldata121: .byte 0x00
.balign 4
.Ldata122: .word 0x00000000 # f0: 00000000
.Ldata123: .byte 0x00
.Ldata124: .byte 0x00
.Ldata125: .byte 0x00
.balign 4
.Ldata126: .word 0x00000000 # f8: 00000000
.Ldata127: .byte 0x00
.Ldata128: .byte 0x00
.Ldata129: .byte 0x00
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000400
# 8: 00000200
# c: 2eba0000
# 10: 175d0000
# 14: c00f0000
# 18: aaaa0000
# 1c: c7710000
# 20: 55550000
# 24: e3380000
# 28: aa2a0000
# 2c: 711c0000
# 30: 55150000
# 34: f6120000
# 38: 899d0000
# 3c: c44e0000
# 40: 83340000
# 44: 62270000
# 48: 411a0000
# 4c: b1130000
# 50: 81110000
# 54: c88d0000
# 58: e4460000
# 5c: 422f0000
# 60: 72230000
# 64: a1170000
# 68: b9110000
# 6c: 2d0e0000
# Function @ .irom0.text+0x70
.Lfunc003: movi a9, 0x0000ba2e # 70: 91e7ff
movi a4, 0x00040000 # 73: 41e4ff
movi a11, 0x00020000 # 76: b1e4ff
movi a7, 0x00005d17 # 79: 71e5ff
movi a5, 7 /* 0x00000007 */ # 7c: 0c75
movi a6, 3 /* 0x00000003 */ # 7e: 0c36
movi a2, 0 /* 0x00000000 */ # 80: 0c02
movi a10, 1 /* 0x00000001 */ # 82: 0c1a
movi a3, .Ldata002 # 84: 31dfff
movi a8, 2 /* 0x00000002 */ # 87: 0c28
s8i a8, a3, 54 /* 0x02 -> [.Ldata029] */ # 89: 824336
s8i a8, a3, 20 /* 0x02 -> [.Ldata011] */ # 8c: 824314
s8i a8, a3, 21 /* 0x02 -> [.Ldata012] */ # 8f: 824315
s8i a8, a3, 22 /* 0x02 -> [.Ldata013] */ # 92: 824316
s8i a10, a3, 46 /* 0x01 -> [.Ldata025] */ # 95: a2432e
s8i a10, a3, 12 /* 0x01 -> [.Ldata007] */ # 98: a2430c
s8i a10, a3, 13 /* 0x01 -> [.Ldata008] */ # 9b: a2430d
s8i a10, a3, 14 /* 0x01 -> [.Ldata009] */ # 9e: a2430e
s8i a2, a3, 4 /* 0x00 -> [.Ldata003] */ # a1: 224304
s8i a2, a3, 5 /* 0x00 -> [.Ldata004] */ # a4: 224305
s8i a2, a3, 6 /* 0x00 -> [.Ldata005] */ # a7: 224306
s8i a2, a3, 38 /* 0x00 -> [.Ldata021] */ # aa: 224326
s8i a6, a3, 62 /* 0x03 -> [.Ldata033] */ # ad: 62433e
s8i a6, a3, 28 /* 0x03 -> [.Ldata015] */ # b0: 62431c
s8i a6, a3, 29 /* 0x03 -> [.Ldata016] */ # b3: 62431d
s8i a6, a3, 30 /* 0x03 -> [.Ldata017] */ # b6: 62431e
s8i a5, a3, 60 /* 0x07 -> [.Ldata031] */ # b9: 52433c
s8i a5, a3, 61 /* 0x07 -> [.Ldata032] */ # bc: 52433d
s8i a5, a3, 70 /* 0x07 -> [.Ldata037] */ # bf: 524346
s8i a5, a3, 102 /* 0x07 -> [.Ldata053] */ # c2: 524366
s32i a7, a3, 56 /* 0x00005d17 -> [.Ldata030] */ # c5: 79e3
s32i a7, a3, 24 /* 0x00005d17 -> [.Ldata014] */ # c7: 7963
s32i a11, a3, 40 /* 0x00020000 -> [.Ldata022] */ # c9: b9a3
s32i a11, a3, 8 /* 0x00020000 -> [.Ldata006] */ # cb: b923
s32i a4, a3, 0 /* 0x00040000 -> [.Ldata002] */ # cd: 4903
s32i a9, a3, 48 /* 0x0000ba2e -> [.Ldata026] */ # cf: 99c3
s32i a9, a3, 16 /* 0x0000ba2e -> [.Ldata010] */ # d1: 9943
s32i a4, a3, 32 /* 0x00040000 -> [.Ldata018] */ # d3: 4983
movi a9, 0x00000fc0 # d5: 91cfff
movi a4, 11 /* 0x0000000b */ # d8: 0cb4
movi a11, 10 /* 0x0000000a */ # da: 0cab
movi a7, 6 /* 0x00000006 */ # dc: 0c67
s8i a7, a3, 52 /* 0x06 -> [.Ldata027] */ # de: 724334
s8i a7, a3, 53 /* 0x06 -> [.Ldata028] */ # e1: 724335
s8i a7, a3, 78 /* 0x06 -> [.Ldata041] */ # e4: 72434e
s8i a7, a3, 110 /* 0x06 -> [.Ldata057] */ # e7: 72436e
s8i a7, a3, 158 /* 0x06 -> [.Ldata081] */ # ea: 72439e
s8i a7, a3, 166 /* 0x06 -> [.Ldata085] */ # ed: 7243a6
s8i a7, a3, 174 /* 0x06 -> [.Ldata089] */ # f0: 7243ae
s8i a7, a3, 182 /* 0x06 -> [.Ldata093] */ # f3: 7243b6
s8i a7, a3, 190 /* 0x06 -> [.Ldata097] */ # f6: 7243be
s8i a7, a3, 222 /* 0x06 -> [.Ldata113] */ # f9: 7243de
s8i a7, a3, 230 /* 0x06 -> [.Ldata117] */ # fc: 7243e6
s8i a7, a3, 238 /* 0x06 -> [.Ldata121] */ # ff: 7243ee
s8i a7, a3, 246 /* 0x06 -> [.Ldata125] */ # 102: 7243f6
s8i a7, a3, 254 /* 0x06 -> [.Ldata129] */ # 105: 7243fe
s8i a11, a3, 84 /* 0x0a -> [.Ldata043] */ # 108: b24354
s8i a11, a3, 85 /* 0x0a -> [.Ldata044] */ # 10b: b24355
s8i a11, a3, 116 /* 0x0a -> [.Ldata059] */ # 10e: b24374
s8i a11, a3, 117 /* 0x0a -> [.Ldata060] */ # 111: b24375
s8i a11, a3, 140 /* 0x0a -> [.Ldata071] */ # 114: b2438c
s8i a11, a3, 141 /* 0x0a -> [.Ldata072] */ # 117: b2438d
s8i a11, a3, 148 /* 0x0a -> [.Ldata075] */ # 11a: b24394
s8i a11, a3, 149 /* 0x0a -> [.Ldata076] */ # 11d: b24395
s8i a11, a3, 204 /* 0x0a -> [.Ldata103] */ # 120: b243cc
s8i a11, a3, 205 /* 0x0a -> [.Ldata104] */ # 123: b243cd
s8i a11, a3, 212 /* 0x0a -> [.Ldata107] */ # 126: b243d4
s8i a11, a3, 213 /* 0x0a -> [.Ldata108] */ # 129: b243d5
s8i a4, a3, 92 /* 0x0b -> [.Ldata047] */ # 12c: 42435c
s8i a4, a3, 93 /* 0x0b -> [.Ldata048] */ # 12f: 42435d
s8i a4, a3, 124 /* 0x0b -> [.Ldata063] */ # 132: 42437c
s8i a4, a3, 125 /* 0x0b -> [.Ldata064] */ # 135: 42437d
s8i a4, a3, 132 /* 0x0b -> [.Ldata067] */ # 138: 424384
s8i a4, a3, 133 /* 0x0b -> [.Ldata068] */ # 13b: 424385
s8i a4, a3, 196 /* 0x0b -> [.Ldata099] */ # 13e: 4243c4
s8i a4, a3, 197 /* 0x0b -> [.Ldata100] */ # 141: 4243c5
s32i a9, a3, 184 /* 0x00000fc0 -> [.Ldata094] */ # 144: 92632e
s32i a9, a3, 240 /* 0x00000fc0 -> [.Ldata122] */ # 147: 92633c
movi a5, 0x000071c7 # 14a: 51b4ff
movi a6, 0x0000aaaa # 14d: 61b2ff
movi a2, 4 /* 0x00000004 */ # 150: 0c42
movi a10, 5 /* 0x00000005 */ # 152: 0c5a
movi a8, 9 /* 0x00000009 */ # 154: 0c98
s8i a8, a3, 76 /* 0x09 -> [.Ldata039] */ # 156: 82434c
s8i a8, a3, 77 /* 0x09 -> [.Ldata040] */ # 159: 82434d
s8i a8, a3, 108 /* 0x09 -> [.Ldata055] */ # 15c: 82436c
s8i a8, a3, 109 /* 0x09 -> [.Ldata056] */ # 15f: 82436d
s8i a8, a3, 68 /* 0x09 -> [.Ldata035] */ # 162: 824344
s8i a8, a3, 69 /* 0x09 -> [.Ldata036] */ # 165: 824345
s8i a8, a3, 100 /* 0x09 -> [.Ldata051] */ # 168: 824364
s8i a8, a3, 101 /* 0x09 -> [.Ldata052] */ # 16b: 824365
s8i a8, a3, 156 /* 0x09 -> [.Ldata079] */ # 16e: 82439c
s8i a8, a3, 157 /* 0x09 -> [.Ldata080] */ # 171: 82439d
s8i a8, a3, 164 /* 0x09 -> [.Ldata083] */ # 174: 8243a4
s8i a8, a3, 165 /* 0x09 -> [.Ldata084] */ # 177: 8243a5
s8i a8, a3, 172 /* 0x09 -> [.Ldata087] */ # 17a: 8243ac
s8i a8, a3, 173 /* 0x09 -> [.Ldata088] */ # 17d: 8243ad
s8i a8, a3, 180 /* 0x09 -> [.Ldata091] */ # 180: 8243b4
s8i a8, a3, 181 /* 0x09 -> [.Ldata092] */ # 183: 8243b5
s8i a8, a3, 188 /* 0x09 -> [.Ldata095] */ # 186: 8243bc
s8i a8, a3, 189 /* 0x09 -> [.Ldata096] */ # 189: 8243bd
s8i a8, a3, 220 /* 0x09 -> [.Ldata111] */ # 18c: 8243dc
s8i a8, a3, 221 /* 0x09 -> [.Ldata112] */ # 18f: 8243dd
s8i a8, a3, 228 /* 0x09 -> [.Ldata115] */ # 192: 8243e4
s8i a8, a3, 229 /* 0x09 -> [.Ldata116] */ # 195: 8243e5
s8i a8, a3, 236 /* 0x09 -> [.Ldata119] */ # 198: 8243ec
s8i a8, a3, 237 /* 0x09 -> [.Ldata120] */ # 19b: 8243ed
s8i a8, a3, 244 /* 0x09 -> [.Ldata123] */ # 19e: 8243f4
s8i a8, a3, 245 /* 0x09 -> [.Ldata124] */ # 1a1: 8243f5
s8i a8, a3, 252 /* 0x09 -> [.Ldata127] */ # 1a4: 8243fc
s8i a8, a3, 253 /* 0x09 -> [.Ldata128] */ # 1a7: 8243fd
s8i a10, a3, 44 /* 0x05 -> [.Ldata023] */ # 1aa: a2432c
s8i a10, a3, 45 /* 0x05 -> [.Ldata024] */ # 1ad: a2432d
s8i a10, a3, 86 /* 0x05 -> [.Ldata045] */ # 1b0: a24356
s8i a10, a3, 118 /* 0x05 -> [.Ldata061] */ # 1b3: a24376
s8i a10, a3, 142 /* 0x05 -> [.Ldata073] */ # 1b6: a2438e
s8i a10, a3, 150 /* 0x05 -> [.Ldata077] */ # 1b9: a24396
s8i a10, a3, 206 /* 0x05 -> [.Ldata105] */ # 1bc: a243ce
s8i a10, a3, 214 /* 0x05 -> [.Ldata109] */ # 1bf: a243d6
s8i a2, a3, 36 /* 0x04 -> [.Ldata019] */ # 1c2: 224324
s8i a2, a3, 37 /* 0x04 -> [.Ldata020] */ # 1c5: 224325
s8i a2, a3, 94 /* 0x04 -> [.Ldata049] */ # 1c8: 22435e
s8i a2, a3, 126 /* 0x04 -> [.Ldata065] */ # 1cb: 22437e
s8i a2, a3, 134 /* 0x04 -> [.Ldata069] */ # 1ce: 224386
s8i a2, a3, 198 /* 0x04 -> [.Ldata101] */ # 1d1: 2243c6
s32i a6, a3, 88 /* 0x0000aaaa -> [.Ldata046] */ # 1d4: 626316
s32i a5, a3, 120 /* 0x000071c7 -> [.Ldata062] */ # 1d7: 52631e
movi a9, 0x00001555 # 1da: 9195ff
s32i a9, a3, 64 /* 0x00001555 -> [.Ldata034] */ # 1dd: 926310
movi a5, 0x00003483 # 1e0: 5198ff
movi a6, 0x00004ec4 # 1e3: 6196ff
s32i a6, a3, 136 /* 0x00004ec4 -> [.Ldata070] */ # 1e6: 626322
s32i a5, a3, 144 /* 0x00003483 -> [.Ldata074] */ # 1e9: 526324
movi a9, 0x00008dc8 # 1ec: 919aff
s32i a9, a3, 192 /* 0x00008dc8 -> [.Ldata098] */ # 1ef: 926330
movi a5, 0x000017a1 # 1f2: 519cff
movi a6, 0x00002372 # 1f5: 619aff
s32i a6, a3, 216 /* 0x00002372 -> [.Ldata110] */ # 1f8: 626336
s32i a5, a3, 224 /* 0x000017a1 -> [.Ldata114] */ # 1fb: 526338
movi a2, 0x000038e3 # 1fe: 2189ff
movi a4, 0x00005555 # 201: 4187ff
s32i a4, a3, 80 /* 0x00005555 -> [.Ldata042] */ # 204: 426314
s32i a2, a3, 112 /* 0x000038e3 -> [.Ldata058] */ # 207: 22631c
movi a4, 0x00002762 # 20a: 418eff
movi a2, 0x00001a41 # 20d: 218eff
movi a10, 0x00001c71 # 210: a187ff
s32i a10, a3, 104 /* 0x00001c71 -> [.Ldata054] */ # 213: a2631a
s32i a2, a3, 160 /* 0x00001a41 -> [.Ldata082] */ # 216: 226328
s32i a4, a3, 152 /* 0x00002762 -> [.Ldata078] */ # 219: 426326
movi a2, 0x00000e2d # 21c: 2194ff
movi a11, 0x00002aaa # 21f: b182ff
movi a4, 0x000011b9 # 222: 4191ff
movi a10, 0x00001181 # 225: a18aff
s32i a10, a3, 176 /* 0x00001181 -> [.Ldata090] */ # 228: a2632c
s32i a4, a3, 232 /* 0x000011b9 -> [.Ldata118] */ # 22b: 42633a
s32i a11, a3, 72 /* 0x00002aaa -> [.Ldata038] */ # 22e: b26312
s32i a2, a3, 248 /* 0x00000e2d -> [.Ldata126] */ # 231: 22633e
movi a11, 0x000013b1 # 234: b186ff
movi a7, 0x00009d89 # 237: 7180ff
s32i a7, a3, 128 /* 0x00009d89 -> [.Ldata066] */ # 23a: 726320
s32i a11, a3, 168 /* 0x000013b1 -> [.Ldata086] */ # 23d: b2632a
movi a7, 0x00002f42 # 240: 7187ff
s32i a7, a3, 208 /* 0x00002f42 -> [.Ldata106] */ # 243: 726334
movi a8, 0x000012f6 # 246: 817bff
s32i a8, a3, 96 /* 0x000012f6 -> [.Ldata050] */ # 249: 826318
movi a8, 0x000046e4 # 24c: 8183ff
s32i a8, a3, 200 /* 0x000046e4 -> [.Ldata102] */ # 24f: 826332
ret /* 0x00000e2d */ # 252: 0df0
.literal_position # 254: 00000000
# Function @ .irom0.text+0x258
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_RC_SetBasicRate
.type sdk_RC_SetBasicRate, @function
sdk_RC_SetBasicRate:
addi sp, sp, -16 /* (local0) */ # 258: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 25b: 0901
movi a0, 351 /* 0x0000015f */ # 25d: 02a15f
bnall a2, a0, .Lbr008 # 260: 07c205
call0 .Lfunc003 # 263: c5e0ff
j .Lbr009 # 266: c60b00
.Lbr008: movi a4, .Ldata002 # 269: 41faff
movi a8, 5 /* 0x00000005 */ # 26c: 0c58
movi a5, 7 /* 0x00000007 */ # 26e: 0c75
movi a2, 3 /* 0x00000003 */ # 270: 0c32
addi a9, a3, -1 /* arg1-0x1 */ # 272: 0b93
movi a7, 1 /* 0x00000001 */ # 274: 0c17
movi a6, 0 /* 0x00000000 */ # 276: 0c06
moveqz a6, a7, a9 # 278: 906783
movnez a2, a5, a6 # 27b: 602593
movnez a7, a8, a6 # 27e: 607893
s8i a7, a4, 92 /* a7 -> [.Ldata047] */ # 281: 72445c
s8i a7, a4, 124 /* a7 -> [.Ldata063] */ # 284: 72447c
s8i a7, a4, 84 /* a7 -> [.Ldata043] */ # 287: 724454
s8i a2, a4, 116 /* a2 -> [.Ldata059] */ # 28a: 224474
s8i a2, a4, 76 /* a2 -> [.Ldata039] */ # 28d: 22444c
s8i a2, a4, 108 /* a2 -> [.Ldata055] */ # 290: 22446c
s8i a2, a4, 68 /* a2 -> [.Ldata035] */ # 293: 224444
s8i a2, a4, 100 /* a2 -> [.Ldata051] */ # 296: 224464
.Lbr009: movi a2, 0 /* 0x00000000 */ # 299: 0c02
l32i a0, sp, 0 /* [(local0)] */ # 29b: 0801
addi sp, sp, 16 /* (top of frame) */ # 29d: 12c110
ret /* 0x00000000 */ # 2a0: 0df0

1471
binary_sdk/libpp/trc.S Normal file

File diff suppressed because it is too large Load diff

3274
binary_sdk/libpp/wdev.S Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,566 @@
.section .bss, "aw", @nobits
.Ldata001: .space 176
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# Function @ .irom0.text+0xc
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_rijndaelKeySetupDec
.type sdk_rijndaelKeySetupDec, @function
sdk_rijndaelKeySetupDec:
addi sp, sp, -16 /* (local0) */ # c: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # f: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11: 0901
mov a12, a2 /* arg0 */ # 13: cd02
call0 sdk_rijndaelKeySetupEnc # 15: 01fcffc0
# 19: 0000
mov a6, a12 /* arg0 */ # 1b: 6d0c
movi a3, 40 /* 0x00000028 */ # 1d: 2c83
movi a2, 0 /* 0x00000000 */ # 1f: 0c02
movi a0, 160 /* 0x000000a0 */ # 21: 02a0a0
add a0, a12, a0 /* arg0+0xa0 */ # 24: 0a0c
.Lbr001: addi a3, a3, -4 # 26: 32c3fc
addi a2, a2, 4 # 29: 4b22
l32i a11, a6, 0 # 2b: b806
l32i a4, a0, 0 # 2d: 4800
addi a0, a0, -16 # 2f: 02c0f0
s32i a4, a6, 0 # 32: 4906
l32i a10, a0, 20 # 34: a850
s32i a11, a0, 16 # 36: b940
l32i a9, a6, 4 # 38: 9816
s32i a10, a6, 4 # 3a: a916
l32i a8, a0, 24 # 3c: 8860
s32i a9, a0, 20 # 3e: 9950
l32i a7, a6, 8 # 40: 7826
s32i a8, a6, 8 # 42: 8926
l32i a5, a0, 28 # 44: 5870
s32i a7, a0, 24 # 46: 7960
l32i a4, a6, 12 # 48: 4836
s32i a5, a6, 12 # 4a: 5936
s32i a4, a0, 28 # 4c: 4970
addi a6, a6, 16 # 4e: 62c610
blt a2, a3, .Lbr001 # 51: 3722d1
movi a2, 1 /* 0x00000001 */ # 54: 0c12
movi a9, sdk_Te0 # 56: 91eaff
movi a8, sdk_Td0 # 59: 81eaff
addi a12, a12, 16 /* arg0+0x10 */ # 5c: c2cc10
mov a0, a12 /* arg0+0x10 */ # 5f: 0d0c
.Lbr002: addi a2, a2, 1 # 61: 1b22
addi a6, a12, 16 # 63: 62cc10
addi a12, a12, 16 # 66: c2cc10
.Lbr003: l32i a10, a0, 0 # 69: a800
ssai 24 # 6b: 104840
extui a11, a10, 0, 8 # 6e: a0b074
extui a7, a10, 8, 8 # 71: a07874
extui a5, a10, 24, 8 # 74: a05875
addx4 a5, a5, a9 # 77: 9055a0
addx4 a7, a7, a9 # 7a: 9077a0
addx4 a11, a11, a9 # 7d: 90bba0
l32i a11, a11, 0 # 80: b80b
l32i a7, a7, 0 # 82: 7807
l32i a5, a5, 0 # 84: 5805
extui a10, a10, 16, 8 # 86: a0a075
extui a5, a5, 8, 8 # 89: 505874
extui a7, a7, 8, 8 # 8c: 707874
extui a11, a11, 8, 8 # 8f: b0b874
addx4 a10, a10, a9 # 92: 90aaa0
l32i a10, a10, 0 # 95: a80a
addx4 a11, a11, a8 # 97: 80bba0
addx4 a7, a7, a8 # 9a: 8077a0
addx4 a5, a5, a8 # 9d: 8055a0
l32i a5, a5, 0 # a0: 5805
l32i a7, a7, 0 # a2: 7807
l32i a11, a11, 0 # a4: b80b
extui a10, a10, 8, 8 # a6: a0a874
src a11, a11, a11 # a9: b0bb81
addx4 a10, a10, a8 # ac: 80aaa0
l32i a10, a10, 0 # af: a80a
ssai 16 # b1: 104040
src a7, a7, a7 # b4: 707781
xor a7, a7, a11 # b7: b07730
ssai 8 # ba: 004840
src a10, a10, a10 # bd: a0aa81
xor a5, a5, a10 # c0: a05530
xor a5, a5, a7 # c3: 705530
s32i a5, a0, 0 # c6: 5900
addi a0, a0, 4 # c8: 4b00
bne a0, a6, .Lbr003 # ca: 67909b
mov a0, a12 # cd: 0d0c
bnei a2, 10, .Lbr002 # cf: 66928e
l32i a12, sp, 4 /* [(local1)] */ # d2: c811
l32i a0, sp, 0 /* [(local0)] */ # d4: 0801
addi sp, sp, 16 /* (top of frame) */ # d6: 12c110
ret # d9: 0df0
.literal_position # dc: 00000000
# e0: 00000000
# Function @ .irom0.text+0xe4
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_aes_decrypt_init
.type sdk_aes_decrypt_init, @function
sdk_aes_decrypt_init:
addi sp, sp, -16 /* (local0) */ # e4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e7: 0901
beqi a3, 16, .Lbr004 # e9: 26b304
movi a2, 0 /* 0x00000000 */ # ec: 0c02
j .Lbr005 # ee: 860200
.Lbr004: mov a3, a2 /* arg0 */ # f1: 3d02
movi a2, .Ldata001 # f3: 21faff
call0 sdk_rijndaelKeySetupDec # f6: 050000
movi a2, .Ldata001 # f9: 21f9ff
.Lbr005: l32i a0, sp, 0 /* [(local0)] */ # fc: 0801
addi sp, sp, 16 /* (top of frame) */ # fe: 12c110
ret # 101: 0df0
.literal_position # 104: 00000000
# 108: 00000000
# 10c: 00000000
# 110: 00000000
# 114: 00000000
# Function @ .irom0.text+0x118
# Local variables/stack:
# (local0): word @ -0x40
# (local1): word @ -0x3c
# (local2): word @ -0x38
# (local3): word @ -0x34
# (local4): word @ -0x30
# (local5): word @ -0x2c
# (local6): word @ -0x28
# (local7): word @ -0x24
# (local8): word @ -0x20
# (local9): word @ -0x1c
# (local10): word[4] @ -0x18
# (local11): word[2] @ -0x8
.Lfunc001: movi a11, sdk_Td0 # 118: b1fbff
mov a5, a12 # 11b: 5d0c
addi sp, sp, -64 /* (local0) */ # 11d: 12c1c0
mov a12, a2 /* arg0 */ # 120: cd02
l8ui a6, a3, 1 /* [arg1+0x1] */ # 122: 620301
l8ui a7, a3, 9 /* [arg1+0x9] */ # 125: 720309
l8ui a8, a3, 14 /* [arg1+0xe] */ # 128: 82030e
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12b: 0921
s32i a15, sp, 24 /* a15 -> [(local6)] */ # 12d: f961
s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 12f: 4911
s32i a14, sp, 20 /* a14 -> [(local5)] */ # 131: e951
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 133: d941
s32i a5, sp, 12 /* a5 -> [(local3)] */ # 135: 5931
l8ui a13, a3, 3 /* [arg1+0x3] */ # 137: d20303
l8ui a14, a3, 11 /* [arg1+0xb] */ # 13a: e2030b
l8ui a4, a3, 0 /* [arg1] */ # 13d: 420300
l32i a15, a2, 8 /* [arg0+0x8] */ # 140: f822
l32i a0, a2, 0 /* [arg0] */ # 142: 0802
slli a8, a8, 8 # 144: 808811
slli a7, a7, 16 # 147: 007711
slli a6, a6, 16 # 14a: 006611
l32i a2, a2, 4 /* [arg0+0x4] */ # 14d: 2812
slli a4, a4, 24 # 14f: 804401
xor a14, a14, a15 # 152: f0ee30
xor a4, a4, a6 # 155: 604430
xor a13, a13, a0 # 158: 00dd30
l8ui a6, a3, 8 /* [arg1+0x8] */ # 15b: 620308
l8ui a0, a3, 4 /* [arg1+0x4] */ # 15e: 020304
l8ui a15, a3, 7 /* [arg1+0x7] */ # 161: f20307
slli a0, a0, 24 # 164: 800001
xor a15, a15, a2 # 167: 20ff30
slli a6, a6, 24 # 16a: 806601
xor a6, a6, a7 # 16d: 706630
l8ui a2, a3, 5 /* [arg1+0x5] */ # 170: 220305
l8ui a7, a3, 13 /* [arg1+0xd] */ # 173: 72030d
slli a2, a2, 16 # 176: 002211
xor a0, a0, a2 # 179: 200030
l8ui a2, a3, 12 /* [arg1+0xc] */ # 17c: 22030c
slli a7, a7, 16 # 17f: 007711
slli a2, a2, 24 # 182: 802201
xor a2, a2, a7 # 185: 702230
xor a2, a2, a8 # 188: 802230
l8ui a7, a3, 10 /* [arg1+0xa] */ # 18b: 72030a
l8ui a8, a3, 6 /* [arg1+0x6] */ # 18e: 820306
slli a7, a7, 8 # 191: 807711
xor a6, a6, a7 # 194: 706630
slli a8, a8, 8 # 197: 808811
l8ui a7, a3, 2 /* [arg1+0x2] */ # 19a: 720302
xor a0, a0, a8 # 19d: 800030
xor a15, a15, a0 # 1a0: 00ff30
slli a7, a7, 8 # 1a3: 807711
l8ui a0, a3, 15 /* [arg1+0xf] */ # 1a6: 02030f
xor a4, a4, a7 # 1a9: 704430
xor a13, a13, a4 # 1ac: 40dd30
l32i a4, a12, 12 /* [arg0+0xc] */ # 1af: 483c
xor a14, a14, a6 # 1b1: 60ee30
xor a0, a0, a4 # 1b4: 400030
xor a0, a0, a2 # 1b7: 200030
movi a2, 5 /* 0x00000005 */ # 1ba: 0c52
.Lbr006: addi a2, a2, -1 # 1bc: 0b22
ssai 8 # 1be: 004840
extui a5, a14, 24, 8 # 1c1: e05875
extui a7, a15, 16, 8 # 1c4: f07075
extui a8, a14, 0, 8 # 1c7: e08074
extui a6, a0, 8, 8 # 1ca: 006874
extui a10, a13, 16, 8 # 1cd: d0a075
extui a3, a15, 0, 8 # 1d0: f03074
extui a9, a0, 16, 8 # 1d3: 009075
extui a4, a14, 8, 8 # 1d6: e04874
addx4 a4, a4, a11 # 1d9: b044a0
addx4 a9, a9, a11 # 1dc: b099a0
addx4 a3, a3, a11 # 1df: b033a0
addx4 a10, a10, a11 # 1e2: b0aaa0
addx4 a6, a6, a11 # 1e5: b066a0
addx4 a8, a8, a11 # 1e8: b088a0
addx4 a7, a7, a11 # 1eb: b077a0
addx4 a5, a5, a11 # 1ee: b055a0
l32i a5, a5, 0 # 1f1: 5805
l32i a7, a7, 0 # 1f3: 7807
l32i a8, a8, 0 # 1f5: 8808
l32i a6, a6, 0 # 1f7: 6806
l32i a10, a10, 0 # 1f9: a80a
l32i a3, a3, 0 # 1fb: 3803
l32i a9, a9, 0 # 1fd: 9809
l32i a4, a4, 0 # 1ff: 4804
src a9, a9, a9 # 201: 909981
ssai 16 # 204: 104040
src a4, a4, a4 # 207: 404481
s32i a4, sp, 32 /* a4 -> [(local8)] */ # 20a: 4981
ssai 24 # 20c: 104840
extui a4, a13, 8, 8 # 20f: d04874
src a3, a3, a3 # 212: 303381
s32i a3, sp, 36 /* a3 -> [(local9)] */ # 215: 3991
ssai 8 # 217: 004840
addx4 a4, a4, a11 # 21a: b044a0
l32i a4, a4, 0 # 21d: 4804
src a10, a10, a10 # 21f: a0aa81
extui a3, a15, 8, 8 # 222: f03874
addx4 a3, a3, a11 # 225: b033a0
ssai 16 # 228: 104040
src a6, a6, a6 # 22b: 606681
l32i a3, a3, 0 # 22e: 3803
ssai 24 # 230: 104840
src a8, a8, a8 # 233: 808881
s32i a8, sp, 40 /* a8 -> [(local10)] */ # 236: 89a1
ssai 8 # 238: 004840
extui a8, a14, 16, 8 # 23b: e08075
src a7, a7, a7 # 23e: 707781
l32i a14, a12, 24 # 241: e86c
xor a5, a5, a7 # 243: 705530
ssai 16 # 246: 104040
addx4 a8, a8, a11 # 249: b088a0
l32i a8, a8, 0 # 24c: 8808
src a4, a4, a4 # 24e: 404481
extui a7, a0, 24, 8 # 251: 007875
ssai 24 # 254: 104840
xor a4, a4, a5 # 257: 504430
addx4 a7, a7, a11 # 25a: b077a0
l32i a7, a7, 0 # 25d: 7807
extui a5, a0, 0, 8 # 25f: 005074
addx4 a5, a5, a11 # 262: b055a0
l32i a5, a5, 0 # 265: 5805
l32i a0, a12, 16 # 267: 084c
src a5, a5, a5 # 269: 505581
xor a14, a14, a5 # 26c: 50ee30
ssai 8 # 26f: 004840
src a8, a8, a8 # 272: 808881
xor a14, a14, a4 # 275: 40ee30
ssai 16 # 278: 104040
xor a7, a7, a8 # 27b: 807730
extui a4, a13, 0, 8 # 27e: d04074
addx4 a4, a4, a11 # 281: b044a0
extui a8, a15, 24, 8 # 284: f08875
src a3, a3, a3 # 287: 303381
l32i a15, a12, 20 # 28a: f85c
ssai 24 # 28c: 104840
l32i a4, a4, 0 # 28f: 4804
xor a3, a3, a7 # 291: 703330
addx4 a8, a8, a11 # 294: b088a0
l32i a8, a8, 0 # 297: 8808
l32i a7, sp, 32 /* [(local8)] */ # 299: 7881
xor a8, a8, a10 # 29b: a08830
src a4, a4, a4 # 29e: 404481
xor a6, a6, a8 # 2a1: 806630
extui a8, a13, 24, 8 # 2a4: d08875
l32i a13, a12, 28 # 2a7: d87c
addx4 a8, a8, a11 # 2a9: b088a0
addi a12, a12, 32 # 2ac: c2cc20
l32i a8, a8, 0 # 2af: 8808
xor a13, a13, a4 # 2b1: 40dd30
xor a8, a8, a9 # 2b4: 908830
xor a7, a7, a8 # 2b7: 807730
l32i a8, sp, 36 /* [(local9)] */ # 2ba: 8891
xor a13, a13, a3 # 2bc: 30dd30
xor a0, a0, a8 # 2bf: 800030
xor a0, a0, a7 # 2c2: 700030
l32i a7, sp, 40 /* [(local10)] */ # 2c5: 78a1
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2c7: 0901
xor a15, a15, a7 # 2c9: 70ff30
xor a15, a15, a6 # 2cc: 60ff30
beqz a2, .Lbr007 # 2cf: 162210
ssai 8 # 2d2: 004840
extui a5, a14, 24, 8 # 2d5: e05875
extui a4, a15, 16, 8 # 2d8: f04075
extui a7, a14, 0, 8 # 2db: e07074
extui a6, a13, 8, 8 # 2de: d06874
extui a3, a0, 16, 8 # 2e1: 003075
extui a8, a15, 0, 8 # 2e4: f08074
extui a9, a14, 8, 8 # 2e7: e09874
extui a10, a13, 16, 8 # 2ea: d0a075
addx4 a10, a10, a11 # 2ed: b0aaa0
addx4 a9, a9, a11 # 2f0: b099a0
addx4 a8, a8, a11 # 2f3: b088a0
addx4 a3, a3, a11 # 2f6: b033a0
addx4 a6, a6, a11 # 2f9: b066a0
addx4 a7, a7, a11 # 2fc: b077a0
addx4 a4, a4, a11 # 2ff: b044a0
addx4 a5, a5, a11 # 302: b055a0
l32i a5, a5, 0 # 305: 5805
l32i a4, a4, 0 # 307: 4804
l32i a7, a7, 0 # 309: 7807
l32i a6, a6, 0 # 30b: 6806
l32i a3, a3, 0 # 30d: 3803
l32i a8, a8, 0 # 30f: 8808
l32i a9, a9, 0 # 311: 9809
l32i a10, a10, 0 # 313: a80a
extui a14, a14, 16, 8 # 315: e0e075
src a10, a10, a10 # 318: a0aa81
addx4 a14, a14, a11 # 31b: b0eea0
ssai 16 # 31e: 104040
src a9, a9, a9 # 321: 909981
ssai 24 # 324: 104840
src a8, a8, a8 # 327: 808881
l32i a14, a14, 0 # 32a: e80e
ssai 8 # 32c: 004840
src a3, a3, a3 # 32f: 303381
ssai 16 # 332: 104040
src a6, a6, a6 # 335: 606681
ssai 24 # 338: 104840
src a7, a7, a7 # 33b: 707781
ssai 8 # 33e: 004840
src a4, a4, a4 # 341: 404481
xor a5, a5, a4 # 344: 405530
extui a4, a0, 8, 8 # 347: 004874
addx4 a4, a4, a11 # 34a: b044a0
l32i a4, a4, 0 # 34d: 4804
ssai 16 # 34f: 104040
src a4, a4, a4 # 352: 404481
xor a4, a4, a5 # 355: 504430
ssai 24 # 358: 104840
extui a5, a13, 0, 8 # 35b: d05074
extui a13, a13, 24, 8 # 35e: d0d875
addx4 a5, a5, a11 # 361: b055a0
l32i a5, a5, 0 # 364: 5805
addx4 a13, a13, a11 # 366: b0dda0
src a5, a5, a5 # 369: 505581
l32i a13, a13, 0 # 36c: d80d
ssai 8 # 36e: 004840
src a14, a14, a14 # 371: e0ee81
xor a13, a13, a14 # 374: e0dd30
extui a14, a15, 24, 8 # 377: f0e875
addx4 a14, a14, a11 # 37a: b0eea0
l32i a14, a14, 0 # 37d: e80e
ssai 16 # 37f: 104040
xor a14, a14, a3 # 382: 30ee30
extui a3, a15, 8, 8 # 385: f03874
xor a6, a6, a14 # 388: e06630
l32i a15, a12, 4 # 38b: f81c
extui a14, a0, 24, 8 # 38d: 00e875
addx4 a3, a3, a11 # 390: b033a0
l32i a3, a3, 0 # 393: 3803
addx4 a14, a14, a11 # 395: b0eea0
l32i a14, a14, 0 # 398: e80e
xor a15, a15, a7 # 39a: 70ff30
xor a15, a15, a6 # 39d: 60ff30
src a3, a3, a3 # 3a0: 303381
xor a3, a3, a13 # 3a3: d03330
xor a14, a14, a10 # 3a6: a0ee30
l32i a13, a12, 0 # 3a9: d80c
xor a14, a9, a14 # 3ab: e0e930
xor a13, a13, a8 # 3ae: 80dd30
xor a13, a13, a14 # 3b1: e0dd30
l32i a14, a12, 8 # 3b4: e82c
ssai 24 # 3b6: 104840
xor a14, a14, a5 # 3b9: 50ee30
xor a14, a14, a4 # 3bc: 40ee30
extui a4, a0, 0, 8 # 3bf: 004074
addx4 a4, a4, a11 # 3c2: b044a0
l32i a4, a4, 0 # 3c5: 4804
l32i a0, a12, 12 # 3c7: 083c
src a4, a4, a4 # 3c9: 404481
xor a0, a0, a4 # 3cc: 400030
xor a0, a0, a3 # 3cf: 300030
j .Lbr006 # 3d2: 8679ff
.Lbr007: movi a2, 256 /* 0x00000100 */ # 3d5: 22a100
call0 malloc # 3d8: 014dffc0
# 3dc: 0000
s32i a2, sp, 28 /* a2 -> [(local7)] */ # 3de: 2971
movi a3, sdk_Td4s_rom # 3e0: 314aff
movi a4, 256 /* 0x00000100 */ # 3e3: 42a100
call0 memcpy # 3e6: 014affc0
# 3ea: 0000
extui a6, a13, 24, 8 # 3ec: d06875
extui a0, a14, 24, 8 # 3ef: e00875
extui a4, a13, 0, 8 # 3f2: d04074
extui a3, a15, 16, 8 # 3f5: f03075
extui a11, a15, 8, 8 # 3f8: f0b874
extui a10, a14, 16, 8 # 3fb: e0a075
l32i a9, sp, 0 /* [(local0)] */ # 3fe: 9801
l32i a2, sp, 28 /* [(local7)] */ # 400: 2871
extui a5, a9, 24, 8 # 402: 905875
extui a7, a9, 16, 8 # 405: 907075
extui a8, a9, 8, 8 # 408: 908874
add a10, a2, a10 # 40b: aaa2
add a11, a2, a11 # 40d: bab2
add a3, a2, a3 # 40f: 3a32
add a4, a2, a4 # 411: 4a42
add a0, a2, a0 # 413: 0a02
add a8, a2, a8 # 415: 8a82
add a7, a2, a7 # 417: 7a72
add a6, a2, a6 # 419: 6a62
add a5, a2, a5 # 41b: 5a52
l8ui a5, a5, 0 # 41d: 520500
s32i a6, sp, 32 /* a6 -> [(local8)] */ # 420: 6981
s32i a7, sp, 56 /* a7 -> [(local11)] */ # 422: 79e1
s32i a8, sp, 36 /* a8 -> [(local9)] */ # 424: 8991
extui a9, a9, 0, 8 # 426: 909074
extui a8, a13, 16, 8 # 429: d08075
extui a7, a13, 8, 8 # 42c: d07874
extui a6, a14, 0, 8 # 42f: e06074
add a6, a2, a6 # 432: 6a62
add a7, a2, a7 # 434: 7a72
slli a5, a5, 24 # 436: 805501
add a8, a2, a8 # 439: 8a82
add a9, a2, a9 # 43b: 9a92
s32i a9, sp, 40 /* a9 -> [(local10)] */ # 43d: 99a1
extui a13, a15, 0, 8 # 43f: f0d074
extui a9, a15, 24, 8 # 442: f09875
add a13, a2, a13 # 445: dad2
extui a15, a14, 8, 8 # 447: e0f874
add a9, a2, a9 # 44a: 9a92
l8ui a14, a13, 0 # 44c: e20d00
add a15, a2, a15 # 44f: faf2
l8ui a15, a15, 0 # 451: f20f00
l32i a13, a12, 0 # 454: d80c
slli a15, a15, 8 # 456: 80ff11
xor a14, a14, a15 # 459: f0ee30
l8ui a15, a8, 0 # 45c: f20800
l32i a8, sp, 4 /* [(local1)] */ # 45f: 8811
slli a15, a15, 16 # 461: 00ff11
xor a15, a15, a5 # 464: 50ff30
xor a14, a14, a15 # 467: f0ee30
xor a13, a13, a14 # 46a: e0dd30
s8i a13, a8, 3 /* a13 -> [[(local1)]+0x3] */ # 46d: d24803
extui a14, a13, 16, 16 # 470: d0e0f5
extui a15, a13, 24, 8 # 473: d0f875
s8i a15, a8, 0 /* a15 -> [[(local1)]] */ # 476: f24800
s8i a14, a8, 1 /* a14 -> [[(local1)]+0x1] */ # 479: e24801
l32i a15, sp, 36 /* [(local9)] */ # 47c: f891
srli a13, a13, 8 # 47e: d0d841
s8i a13, a8, 2 /* a13 -> [[(local1)]+0x2] */ # 481: d24802
l32i a5, a12, 4 # 484: 581c
l8ui a7, a7, 0 # 486: 720700
l8ui a6, a6, 0 # 489: 620600
slli a7, a7, 8 # 48c: 807711
xor a6, a6, a7 # 48f: 706630
l32i a7, sp, 56 /* [(local11)] */ # 492: 78e1
l8ui a9, a9, 0 # 494: 920900
l8ui a7, a7, 0 /* [[(local11)]] */ # 497: 720700
slli a9, a9, 24 # 49a: 809901
slli a7, a7, 16 # 49d: 007711
xor a7, a7, a9 # 4a0: 907730
l32i a9, sp, 40 /* [(local10)] */ # 4a3: 98a1
xor a6, a6, a7 # 4a5: 706630
xor a5, a5, a6 # 4a8: 605530
s8i a5, a8, 7 /* a5 -> [[(local1)]+0x7] */ # 4ab: 524807
extui a6, a5, 16, 16 # 4ae: 5060f5
extui a7, a5, 24, 8 # 4b1: 507875
s8i a7, a8, 4 /* a7 -> [[(local1)]+0x4] */ # 4b4: 724804
s8i a6, a8, 5 /* a6 -> [[(local1)]+0x5] */ # 4b7: 624805
srli a5, a5, 8 # 4ba: 505841
s8i a5, a8, 6 /* a5 -> [[(local1)]+0x6] */ # 4bd: 524806
l32i a13, a12, 8 # 4c0: d82c
l8ui a0, a0, 0 # 4c2: 020000
l8ui a15, a15, 0 /* [[(local9)]] */ # 4c5: f20f00
l8ui a14, a4, 0 # 4c8: e20400
slli a15, a15, 8 # 4cb: 80ff11
xor a14, a14, a15 # 4ce: f0ee30
l8ui a15, a3, 0 # 4d1: f20300
slli a0, a0, 24 # 4d4: 800001
slli a15, a15, 16 # 4d7: 00ff11
xor a15, a15, a0 # 4da: 00ff30
xor a14, a14, a15 # 4dd: f0ee30
xor a13, a13, a14 # 4e0: e0dd30
s8i a13, a8, 11 /* a13 -> [[(local1)]+0xb] */ # 4e3: d2480b
extui a14, a13, 16, 16 # 4e6: d0e0f5
extui a15, a13, 24, 8 # 4e9: d0f875
s8i a15, a8, 8 /* a15 -> [[(local1)]+0x8] */ # 4ec: f24808
s8i a14, a8, 9 /* a14 -> [[(local1)]+0x9] */ # 4ef: e24809
srli a13, a13, 8 # 4f2: d0d841
s8i a13, a8, 10 /* a13 -> [[(local1)]+0xa] */ # 4f5: d2480a
l32i a7, a12, 12 # 4f8: 783c
l8ui a11, a11, 0 # 4fa: b20b00
l8ui a9, a9, 0 /* [[(local10)]] */ # 4fd: 920900
slli a11, a11, 8 # 500: 80bb11
xor a9, a9, a11 # 503: b09930
l32i a11, sp, 32 /* [(local8)] */ # 506: b881
l8ui a10, a10, 0 # 508: a20a00
l8ui a11, a11, 0 /* [[(local8)]] */ # 50b: b20b00
slli a10, a10, 16 # 50e: 00aa11
slli a11, a11, 24 # 511: 80bb01
xor a10, a10, a11 # 514: b0aa30
xor a9, a9, a10 # 517: a09930
xor a7, a7, a9 # 51a: 907730
s8i a7, a8, 15 /* a7 -> [[(local1)]+0xf] */ # 51d: 72480f
extui a9, a7, 16, 16 # 520: 7090f5
extui a10, a7, 24, 8 # 523: 70a875
s8i a10, a8, 12 /* a10 -> [[(local1)]+0xc] */ # 526: a2480c
s8i a9, a8, 13 /* a9 -> [[(local1)]+0xd] */ # 529: 92480d
srli a7, a7, 8 # 52c: 707841
s8i a7, a8, 14 /* a7 -> [[(local1)]+0xe] */ # 52f: 72480e
call0 free # 532: 01f8fec0
# 536: 0000
l32i a12, sp, 12 /* [(local3)] */ # 538: c831
l32i a13, sp, 16 /* [(local4)] */ # 53a: d841
l32i a14, sp, 20 /* [(local5)] */ # 53c: e851
l32i a15, sp, 24 /* [(local6)] */ # 53e: f861
l32i a0, sp, 8 /* [(local2)] */ # 540: 0821
addi sp, sp, 64 /* (top of frame) */ # 542: 12c140
ret # 545: 0df0
.balign 4
# Function @ .irom0.text+0x548
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_aes_decrypt
.type sdk_aes_decrypt, @function
sdk_aes_decrypt:
addi sp, sp, -16 /* (local0) */ # 548: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 54b: 0901
call0 .Lfunc001 # 54d: 85bcff
l32i a0, sp, 0 /* [(local0)] */ # 550: 0801
addi sp, sp, 16 /* (top of frame) */ # 552: 12c110
ret # 555: 0df0
.literal_position # 558: 00000000
# Function @ .irom0.text+0x55c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_aes_decrypt_deinit
.type sdk_aes_decrypt_deinit, @function
sdk_aes_decrypt_deinit:
movi a3, 0 /* 0x00000000 */ # 55c: 0c03
movi a4, 176 /* 0x000000b0 */ # 55e: 42a0b0
addi sp, sp, -16 /* (local0) */ # 561: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 564: 0901
call0 memset # 566: 01fcffc0
# 56a: 0000
l32i a0, sp, 0 /* [(local0)] */ # 56c: 0801
addi sp, sp, 16 /* (top of frame) */ # 56e: 12c110
ret # 571: 0df0

View file

@ -0,0 +1,468 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 0000ff00
# 8: 000000ff
# c: 00ff0000
# Function @ .irom0.text+0x10
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word @ -0x8
# (local7): word @ -0x4
.global sdk_rijndaelEncrypt
.type sdk_rijndaelEncrypt, @function
sdk_rijndaelEncrypt:
mov a6, a4 /* arg2 */ # 10: 6d04
addi sp, sp, -32 /* (local0) */ # 12: 12c1e0
s32i a15, sp, 20 /* a15 -> [(local5)] */ # 15: f951
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 17: c921
l32i a5, a2, 8 /* [arg0+0x8] */ # 19: 5822
l32i a9, a2, 0 /* [arg0] */ # 1b: 9802
l8ui a8, a3, 3 /* [arg1+0x3] */ # 1d: 820303
l32i a10, a2, 4 /* [arg0+0x4] */ # 20: a812
l8ui a7, a3, 7 /* [arg1+0x7] */ # 22: 720307
l8ui a11, a3, 0 /* [arg1] */ # 25: b20300
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 28: e941
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2a: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2c: d931
movi a0, 5 /* 0x00000005 */ # 2e: 0c50
l8ui a4, a3, 11 /* [arg1+0xb] */ # 30: 42030b
l8ui a13, a3, 1 /* [arg1+0x1] */ # 33: d20301
l8ui a14, a3, 13 /* [arg1+0xd] */ # 36: e2030d
s32i a6, sp, 0 /* arg2 -> [(local0)] */ # 39: 6901
slli a11, a11, 24 # 3b: 80bb01
l8ui a6, a3, 9 /* [arg1+0x9] */ # 3e: 620309
slli a14, a14, 16 # 41: 00ee11
xor a7, a7, a10 # 44: a07730
slli a13, a13, 16 # 47: 00dd11
xor a8, a8, a9 # 4a: 908830
xor a4, a4, a5 # 4d: 504430
slli a6, a6, 16 # 50: 006611
l8ui a5, a3, 8 /* [arg1+0x8] */ # 53: 520308
l8ui a9, a3, 4 /* [arg1+0x4] */ # 56: 920304
xor a11, a11, a13 # 59: d0bb30
l8ui a10, a3, 5 /* [arg1+0x5] */ # 5c: a20305
l8ui a13, a3, 14 /* [arg1+0xe] */ # 5f: d2030e
slli a10, a10, 16 # 62: 00aa11
slli a9, a9, 24 # 65: 809901
slli a5, a5, 24 # 68: 805501
slli a13, a13, 8 # 6b: 80dd11
xor a5, a5, a6 # 6e: 605530
xor a9, a9, a10 # 71: a09930
l8ui a6, a3, 10 /* [arg1+0xa] */ # 74: 62030a
l8ui a10, a3, 12 /* [arg1+0xc] */ # 77: a2030c
slli a6, a6, 8 # 7a: 806611
xor a5, a5, a6 # 7d: 605530
slli a10, a10, 24 # 80: 80aa01
xor a10, a10, a14 # 83: e0aa30
xor a10, a10, a13 # 86: d0aa30
l8ui a14, a3, 6 /* [arg1+0x6] */ # 89: e20306
l8ui a13, a3, 2 /* [arg1+0x2] */ # 8c: d20302
slli a14, a14, 8 # 8f: 80ee11
slli a13, a13, 8 # 92: 80dd11
xor a9, a9, a14 # 95: e09930
xor a7, a7, a9 # 98: 907730
xor a11, a11, a13 # 9b: d0bb30
xor a8, a8, a11 # 9e: b08830
l8ui a9, a3, 15 /* [arg1+0xf] */ # a1: 92030f
l32i a11, a2, 12 /* [arg0+0xc] */ # a4: b832
xor a4, a4, a5 # a6: 504430
xor a9, a9, a11 # a9: b09930
xor a3, a9, a10 # ac: a03930
movi a9, sdk_Te0 # af: 91d4ff
.Lbr001: addi a0, a0, -1 # b2: 0b00
ssai 8 # b4: 004840
extui a11, a7, 0, 8 # b7: 70b074
extui a13, a3, 16, 8 # ba: 30d075
extui a12, a8, 0, 8 # bd: 80c074
extui a14, a3, 8, 8 # c0: 30e874
extui a15, a3, 0, 8 # c3: 30f074
extui a5, a4, 8, 8 # c6: 405874
extui a10, a7, 16, 8 # c9: 70a075
extui a6, a8, 24, 8 # cc: 806875
addx4 a6, a6, a9 # cf: 9066a0
addx4 a10, a10, a9 # d2: 90aaa0
addx4 a5, a5, a9 # d5: 9055a0
addx4 a15, a15, a9 # d8: 90ffa0
addx4 a14, a14, a9 # db: 90eea0
addx4 a12, a12, a9 # de: 90cca0
addx4 a13, a13, a9 # e1: 90dda0
addx4 a11, a11, a9 # e4: 90bba0
l32i a11, a11, 0 # e7: b80b
l32i a13, a13, 0 # e9: d80d
l32i a12, a12, 0 # eb: c80c
l32i a14, a14, 0 # ed: e80e
l32i a15, a15, 0 # ef: f80f
l32i a5, a5, 0 # f1: 5805
l32i a10, a10, 0 # f3: a80a
l32i a6, a6, 0 # f5: 6806
src a10, a10, a10 # f7: a0aa81
xor a6, a6, a10 # fa: a06630
ssai 16 # fd: 104040
extui a10, a8, 8, 8 # 100: 80a874
src a5, a5, a5 # 103: 505581
extui a8, a8, 16, 8 # 106: 808075
ssai 24 # 109: 104840
xor a5, a5, a6 # 10c: 605530
addx4 a10, a10, a9 # 10f: 90aaa0
l32i a10, a10, 0 # 112: a80a
extui a6, a3, 24, 8 # 114: 306875
s32i a5, sp, 24 /* a5 -> [(local6)] */ # 117: 5961
src a15, a15, a15 # 119: f0ff81
addx4 a8, a8, a9 # 11c: 9088a0
l32i a8, a8, 0 # 11f: 8808
ssai 8 # 121: 004840
extui a5, a4, 16, 8 # 124: 405075
extui a3, a7, 24, 8 # 127: 703875
addx4 a6, a6, a9 # 12a: 9066a0
l32i a6, a6, 0 # 12d: 6806
addx4 a3, a3, a9 # 12f: 9033a0
addx4 a5, a5, a9 # 132: 9055a0
l32i a5, a5, 0 # 135: 5805
l32i a3, a3, 0 # 137: 3803
src a5, a5, a5 # 139: 505581
xor a3, a3, a5 # 13c: 503330
ssai 16 # 13f: 104040
extui a5, a7, 8, 8 # 142: 705874
src a14, a14, a14 # 145: e0ee81
l32i a7, a2, 20 # 148: 7852
addx4 a5, a5, a9 # 14a: 9055a0
xor a14, a14, a3 # 14d: 30ee30
ssai 24 # 150: 104840
l32i a3, a2, 28 # 153: 3872
src a12, a12, a12 # 155: c0cc81
l32i a5, a5, 0 # 158: 5805
ssai 8 # 15a: 004840
xor a7, a7, a12 # 15d: c07730
xor a7, a7, a14 # 160: e07730
src a13, a13, a13 # 163: d0dd81
extui a12, a4, 24, 8 # 166: 40c875
addx4 a12, a12, a9 # 169: 90cca0
ssai 16 # 16c: 104040
src a10, a10, a10 # 16f: a0aa81
l32i a12, a12, 0 # 172: c80c
ssai 24 # 174: 104840
src a11, a11, a11 # 177: b0bb81
xor a12, a12, a13 # 17a: d0cc30
xor a10, a10, a12 # 17d: c0aa30
ssai 8 # 180: 004840
src a8, a8, a8 # 183: 808881
xor a6, a6, a8 # 186: 806630
ssai 16 # 189: 104040
l32i a8, a2, 16 # 18c: 8842
src a5, a5, a5 # 18e: 505581
xor a5, a5, a6 # 191: 605530
ssai 24 # 194: 104840
l32i a6, a2, 24 # 197: 6862
xor a8, a8, a15 # 199: f08830
addi a2, a2, 32 # 19c: 22c220
l32i a15, sp, 24 /* [(local6)] */ # 19f: f861
xor a6, a6, a11 # 1a1: b06630
xor a6, a6, a10 # 1a4: a06630
extui a10, a4, 0, 8 # 1a7: 40a074
addx4 a10, a10, a9 # 1aa: 90aaa0
l32i a10, a10, 0 # 1ad: a80a
xor a8, a8, a15 # 1af: f08830
src a10, a10, a10 # 1b2: a0aa81
xor a3, a3, a10 # 1b5: a03330
xor a3, a3, a5 # 1b8: 503330
beqz a0, .Lbr002 # 1bb: 166010
ssai 8 # 1be: 004840
extui a11, a7, 0, 8 # 1c1: 70b074
extui a10, a8, 8, 8 # 1c4: 80a874
extui a13, a3, 16, 8 # 1c7: 30d075
extui a12, a8, 0, 8 # 1ca: 80c074
extui a14, a3, 8, 8 # 1cd: 30e874
extui a5, a6, 16, 8 # 1d0: 605075
extui a15, a6, 8, 8 # 1d3: 60f874
s32i a0, sp, 28 /* a0 -> [(local7)] */ # 1d6: 0971
extui a4, a7, 16, 8 # 1d8: 704075
extui a0, a8, 24, 8 # 1db: 800875
addx4 a4, a4, a9 # 1de: 9044a0
addx4 a15, a15, a9 # 1e1: 90ffa0
addx4 a5, a5, a9 # 1e4: 9055a0
addx4 a14, a14, a9 # 1e7: 90eea0
addx4 a12, a12, a9 # 1ea: 90cca0
addx4 a13, a13, a9 # 1ed: 90dda0
addx4 a10, a10, a9 # 1f0: 90aaa0
addx4 a11, a11, a9 # 1f3: 90bba0
l32i a11, a11, 0 # 1f6: b80b
l32i a10, a10, 0 # 1f8: a80a
l32i a13, a13, 0 # 1fa: d80d
l32i a12, a12, 0 # 1fc: c80c
l32i a14, a14, 0 # 1fe: e80e
l32i a5, a5, 0 # 200: 5805
l32i a15, a15, 0 # 202: f80f
l32i a4, a4, 0 # 204: 4804
addx4 a0, a0, a9 # 206: 9000a0
l32i a0, a0, 0 # 209: 0800
src a4, a4, a4 # 20b: 404481
xor a0, a0, a4 # 20e: 400030
ssai 16 # 211: 104040
extui a4, a8, 16, 8 # 214: 804075
src a15, a15, a15 # 217: f0ff81
l32i a8, a2, 0 # 21a: 8802
ssai 24 # 21c: 104840
xor a15, a15, a0 # 21f: 00ff30
addx4 a4, a4, a9 # 222: 9044a0
extui a0, a3, 0, 8 # 225: 300074
l32i a4, a4, 0 # 228: 4804
extui a3, a3, 24, 8 # 22a: 303875
addx4 a0, a0, a9 # 22d: 9000a0
l32i a0, a0, 0 # 230: 0800
addx4 a3, a3, a9 # 232: 9033a0
l32i a3, a3, 0 # 235: 3803
src a0, a0, a0 # 237: 000081
xor a8, a8, a0 # 23a: 008830
ssai 8 # 23d: 004840
src a5, a5, a5 # 240: 505581
xor a8, a8, a15 # 243: f08830
ssai 16 # 246: 104040
src a14, a14, a14 # 249: e0ee81
ssai 24 # 24c: 104840
src a12, a12, a12 # 24f: c0cc81
l32i a0, sp, 28 /* [(local7)] */ # 252: 0871
ssai 8 # 254: 004840
src a13, a13, a13 # 257: d0dd81
ssai 16 # 25a: 104040
src a10, a10, a10 # 25d: a0aa81
ssai 24 # 260: 104840
src a11, a11, a11 # 263: b0bb81
ssai 8 # 266: 004840
src a4, a4, a4 # 269: 404481
xor a3, a3, a4 # 26c: 403330
extui a4, a7, 24, 8 # 26f: 704875
addx4 a4, a4, a9 # 272: 9044a0
l32i a4, a4, 0 # 275: 4804
ssai 16 # 277: 104040
xor a4, a4, a5 # 27a: 504430
extui a5, a7, 8, 8 # 27d: 705874
xor a14, a14, a4 # 280: 40ee30
l32i a7, a2, 4 # 283: 7812
l32i a4, a2, 8 # 285: 4822
addx4 a5, a5, a9 # 287: 9055a0
l32i a5, a5, 0 # 28a: 5805
xor a4, a4, a11 # 28c: b04430
xor a7, a7, a12 # 28f: c07730
xor a7, a7, a14 # 292: e07730
src a5, a5, a5 # 295: 505581
extui a12, a6, 24, 8 # 298: 60c875
ssai 24 # 29b: 104840
addx4 a12, a12, a9 # 29e: 90cca0
l32i a12, a12, 0 # 2a1: c80c
xor a5, a5, a3 # 2a3: 305530
xor a12, a12, a13 # 2a6: d0cc30
xor a10, a10, a12 # 2a9: c0aa30
xor a4, a4, a10 # 2ac: a04430
extui a10, a6, 0, 8 # 2af: 60a074
addx4 a10, a10, a9 # 2b2: 90aaa0
l32i a10, a10, 0 # 2b5: a80a
l32i a3, a2, 12 # 2b7: 3832
src a10, a10, a10 # 2b9: a0aa81
xor a3, a3, a10 # 2bc: a03330
xor a3, a3, a5 # 2bf: 503330
j .Lbr001 # 2c2: 067bff
.Lbr002: l32i a11, sp, 0 /* [(local0)] */ # 2c5: b801
movi a15, 0xff000000 # 2c7: f150ff
l32i a13, a2, 0 # 2ca: d802
movi a0, 0x0000ff00 # 2cc: 0150ff
extui a5, a7, 16, 8 # 2cf: 705075
extui a10, a8, 24, 8 # 2d2: 80a875
extui a4, a6, 8, 8 # 2d5: 604874
extui a14, a3, 0, 8 # 2d8: 30e074
extui a12, a8, 0, 8 # 2db: 80c074
addx4 a12, a12, a9 # 2de: 90cca0
addx4 a14, a14, a9 # 2e1: 90eea0
addx4 a4, a4, a9 # 2e4: 9044a0
addx4 a10, a10, a9 # 2e7: 90aaa0
addx4 a5, a5, a9 # 2ea: 9055a0
l32i a5, a5, 0 # 2ed: 5805
l32i a10, a10, 0 # 2ef: a80a
l32i a4, a4, 0 # 2f1: 4804
l32i a14, a14, 0 # 2f3: e80e
and a4, a4, a0 # 2f5: 004410
extui a14, a14, 8, 8 # 2f8: e0e874
slli a10, a10, 8 # 2fb: 80aa11
xor a13, a13, a14 # 2fe: e0dd30
movi a14, 0x00ff0000 # 301: e140ff
and a10, a10, a15 # 304: f0aa10
and a5, a5, a14 # 307: e05510
xor a5, a5, a10 # 30a: a05530
xor a4, a4, a5 # 30d: 504430
xor a13, a13, a4 # 310: 40dd30
s8i a13, a11, 3 /* a13 -> [[(local0)]+0x3] */ # 313: d24b03
extui a5, a13, 24, 8 # 316: d05875
extui a4, a13, 16, 16 # 319: d040f5
s8i a4, a11, 1 /* a4 -> [[(local0)]+0x1] */ # 31c: 424b01
s8i a5, a11, 0 /* a5 -> [[(local0)]] */ # 31f: 524b00
extui a4, a7, 24, 8 # 322: 704875
extui a5, a7, 0, 8 # 325: 705074
addx4 a5, a5, a9 # 328: 9055a0
addx4 a4, a4, a9 # 32b: 9044a0
srli a13, a13, 8 # 32e: d0d841
s8i a13, a11, 2 /* a13 -> [[(local0)]+0x2] */ # 331: d24b02
l32i a10, a2, 4 # 334: a812
l32i a4, a4, 0 # 336: 4804
l32i a12, a12, 0 # 338: c80c
extui a13, a6, 16, 8 # 33a: 60d075
addx4 a13, a13, a9 # 33d: 90dda0
l32i a13, a13, 0 # 340: d80d
extui a12, a12, 8, 8 # 342: c0c874
slli a4, a4, 8 # 345: 804411
and a4, a4, a15 # 348: f04410
xor a10, a10, a12 # 34b: c0aa30
and a13, a13, a14 # 34e: e0dd10
extui a12, a3, 8, 8 # 351: 30c874
addx4 a12, a12, a9 # 354: 90cca0
l32i a12, a12, 0 # 357: c80c
xor a13, a13, a4 # 359: 40dd30
and a12, a12, a0 # 35c: 00cc10
xor a12, a12, a13 # 35f: d0cc30
xor a10, a10, a12 # 362: c0aa30
s8i a10, a11, 7 /* a10 -> [[(local0)]+0x7] */ # 365: a24b07
extui a13, a10, 24, 8 # 368: a0d875
extui a12, a10, 16, 16 # 36b: a0c0f5
s8i a12, a11, 5 /* a12 -> [[(local0)]+0x5] */ # 36e: c24b05
s8i a13, a11, 4 /* a13 -> [[(local0)]+0x4] */ # 371: d24b04
extui a12, a6, 24, 8 # 374: 60c875
extui a13, a8, 16, 8 # 377: 80d075
addx4 a13, a13, a9 # 37a: 90dda0
addx4 a12, a12, a9 # 37d: 90cca0
srli a10, a10, 8 # 380: a0a841
s8i a10, a11, 6 /* a10 -> [[(local0)]+0x6] */ # 383: a24b06
l32i a4, a2, 8 # 386: 4822
l32i a5, a5, 0 # 388: 5805
l32i a12, a12, 0 # 38a: c80c
extui a10, a3, 16, 8 # 38c: 30a075
addx4 a10, a10, a9 # 38f: 90aaa0
l32i a10, a10, 0 # 392: a80a
slli a12, a12, 8 # 394: 80cc11
extui a5, a5, 8, 8 # 397: 505874
xor a4, a4, a5 # 39a: 504430
and a12, a12, a15 # 39d: f0cc10
extui a5, a8, 8, 8 # 3a0: 805874
and a10, a10, a14 # 3a3: e0aa10
xor a10, a10, a12 # 3a6: c0aa30
addx4 a5, a5, a9 # 3a9: 9055a0
l32i a5, a5, 0 # 3ac: 5805
extui a12, a7, 8, 8 # 3ae: 70c874
addx4 a12, a12, a9 # 3b1: 90cca0
and a5, a5, a0 # 3b4: 005510
xor a5, a5, a10 # 3b7: a05530
xor a4, a4, a5 # 3ba: 504430
s8i a4, a11, 11 /* a4 -> [[(local0)]+0xb] */ # 3bd: 424b0b
extui a10, a4, 24, 8 # 3c0: 40a875
extui a5, a4, 16, 16 # 3c3: 4050f5
s8i a5, a11, 9 /* a5 -> [[(local0)]+0x9] */ # 3c6: 524b09
s8i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 3c9: a24b08
srli a4, a4, 8 # 3cc: 404841
s8i a4, a11, 10 /* a4 -> [[(local0)]+0xa] */ # 3cf: 424b0a
l32i a10, a2, 12 # 3d2: a832
l32i a13, a13, 0 # 3d4: d80d
l32i a12, a12, 0 # 3d6: c80c
and a13, a13, a14 # 3d8: e0dd10
and a12, a12, a0 # 3db: 00cc10
extui a14, a3, 24, 8 # 3de: 30e875
extui a0, a6, 0, 8 # 3e1: 600074
addx4 a0, a0, a9 # 3e4: 9000a0
addx4 a14, a14, a9 # 3e7: 90eea0
l32i a14, a14, 0 # 3ea: e80e
l32i a0, a0, 0 # 3ec: 0800
slli a14, a14, 8 # 3ee: 80ee11
extui a0, a0, 8, 8 # 3f1: 000874
xor a10, a10, a0 # 3f4: 00aa30
and a14, a14, a15 # 3f7: f0ee10
l32i a0, sp, 4 /* [(local1)] */ # 3fa: 0811
xor a13, a13, a14 # 3fc: e0dd30
l32i a15, sp, 20 /* [(local5)] */ # 3ff: f851
l32i a14, sp, 16 /* [(local4)] */ # 401: e841
xor a12, a12, a13 # 403: d0cc30
xor a10, a10, a12 # 406: c0aa30
s8i a10, a11, 15 /* a10 -> [[(local0)]+0xf] */ # 409: a24b0f
extui a13, a10, 24, 8 # 40c: a0d875
extui a12, a10, 16, 16 # 40f: a0c0f5
s8i a12, a11, 13 /* a12 -> [[(local0)]+0xd] */ # 412: c24b0d
s8i a13, a11, 12 /* a13 -> [[(local0)]+0xc] */ # 415: d24b0c
l32i a12, sp, 8 /* [(local2)] */ # 418: c821
l32i a13, sp, 12 /* [(local3)] */ # 41a: d831
srli a10, a10, 8 # 41c: a0a841
s8i a10, a11, 14 /* a10 -> [[(local0)]+0xe] */ # 41f: a24b0e
addi sp, sp, 32 /* (top of frame) */ # 422: 12c120
ret # 425: 0df0
.literal_position # 428: 00000000
# 42c: 00000000
# Function @ .irom0.text+0x430
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_aes_encrypt_init
.type sdk_aes_encrypt_init, @function
sdk_aes_encrypt_init:
addi sp, sp, -16 /* (local0) */ # 430: 12c1f0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 433: 0921
s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 435: 2911
bnei a3, 16, .Lbr003 # 437: 66b30c
movi a2, 176 /* 0x000000b0 */ # 43a: 22a0b0
call0 malloc # 43d: 01faffc0
# 441: 0000
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 443: 2901
bnez a2, .Lbr004 # 445: cc32
.Lbr003: movi a2, 0 /* 0x00000000 */ # 447: 0c02
j .Lbr005 # 449: 460200
.Lbr004: l32i a3, sp, 4 /* [(local1)] */ # 44c: 3811
call0 sdk_rijndaelKeySetupEnc # 44e: 01f7ffc0
# 452: 0000
l32i a2, sp, 0 /* [(local0)] */ # 454: 2801
.Lbr005: l32i a0, sp, 8 /* [(local2)] */ # 456: 0821
addi sp, sp, 16 /* (top of frame) */ # 458: 12c110
ret # 45b: 0df0
.balign 4
# Function @ .irom0.text+0x460
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_aes_encrypt
.type sdk_aes_encrypt, @function
sdk_aes_encrypt:
addi sp, sp, -16 /* (local0) */ # 460: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 463: 0901
call0 sdk_rijndaelEncrypt # 465: 050000
l32i a0, sp, 0 /* [(local0)] */ # 468: 0801
addi sp, sp, 16 /* (top of frame) */ # 46a: 12c110
ret # 46d: 0df0
.literal_position # 470: 00000000
# 474: 00000000
# Function @ .irom0.text+0x478
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_aes_encrypt_deinit
.type sdk_aes_encrypt_deinit, @function
sdk_aes_encrypt_deinit:
movi a3, 0 /* 0x00000000 */ # 478: 0c03
movi a4, 176 /* 0x000000b0 */ # 47a: 42a0b0
addi sp, sp, -16 /* (local0) */ # 47d: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 480: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 482: 0901
mov a12, a2 /* arg0 */ # 484: cd02
call0 memset # 486: 01faffc0
# 48a: 0000
mov a2, a12 /* arg0 */ # 48c: 2d0c
call0 free # 48e: 01f9ffc0
# 492: 0000
l32i a12, sp, 4 /* [(local1)] */ # 494: c811
l32i a0, sp, 0 /* [(local0)] */ # 496: 0801
addi sp, sp, 16 /* (top of frame) */ # 498: 12c110
ret # 49b: 0df0

View file

@ -0,0 +1,450 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 0000ff00
# 4: 00ff0000
# 8: 000000ff
# c: 00000000
# 10: 00000000
# Function @ .irom0.text+0x14
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_rijndaelKeySetupEnc
.type sdk_rijndaelKeySetupEnc, @function
sdk_rijndaelKeySetupEnc:
movi a8, 0x00ff0000 # 14: 81fbff
movi a7, 0x0000ff00 # 17: 71fbff
movi a6, 0xff000000 # 1a: 61fbff
addi sp, sp, -16 /* (local0) */ # 1d: 12c1f0
movi a11, sdk_Te0 # 20: b1fbff
l8ui a5, a3, 3 /* [arg1+0x3] */ # 23: 520303
l8ui a4, a3, 2 /* [arg1+0x2] */ # 26: 420302
l8ui a9, a3, 0 /* [arg1] */ # 29: 920300
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2c: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2e: 0901
l8ui a12, a3, 1 /* [arg1+0x1] */ # 30: c20301
movi a0, sdk_rcons # 33: 01f7ff
slli a9, a9, 24 # 36: 809901
slli a4, a4, 8 # 39: 804411
addi a10, a0, 10 /* .rodata+0xa */ # 3c: aba0
xor a5, a5, a4 # 3e: 405530
slli a12, a12, 16 # 41: 00cc11
xor a9, a9, a12 # 44: c09930
xor a5, a5, a9 # 47: 905530
s32i a5, a2, 0 /* a5 -> [arg0] */ # 4a: 5902
l8ui a9, a3, 7 /* [arg1+0x7] */ # 4c: 920307
l8ui a5, a3, 6 /* [arg1+0x6] */ # 4f: 520306
l8ui a4, a3, 5 /* [arg1+0x5] */ # 52: 420305
l8ui a12, a3, 4 /* [arg1+0x4] */ # 55: c20304
slli a4, a4, 16 # 58: 004411
slli a12, a12, 24 # 5b: 80cc01
slli a5, a5, 8 # 5e: 805511
xor a9, a9, a5 # 61: 509930
xor a12, a12, a4 # 64: 40cc30
xor a9, a9, a12 # 67: c09930
s32i a9, a2, 4 /* a9 -> [arg0+0x4] */ # 6a: 9912
l8ui a12, a3, 11 /* [arg1+0xb] */ # 6c: c2030b
l8ui a9, a3, 10 /* [arg1+0xa] */ # 6f: 92030a
l8ui a5, a3, 9 /* [arg1+0x9] */ # 72: 520309
l8ui a4, a3, 8 /* [arg1+0x8] */ # 75: 420308
slli a5, a5, 16 # 78: 005511
slli a4, a4, 24 # 7b: 804401
slli a9, a9, 8 # 7e: 809911
xor a12, a12, a9 # 81: 90cc30
xor a4, a4, a5 # 84: 504430
xor a12, a12, a4 # 87: 40cc30
s32i a12, a2, 8 /* a12 -> [arg0+0x8] */ # 8a: c922
l8ui a4, a3, 15 /* [arg1+0xf] */ # 8c: 42030f
l8ui a12, a3, 14 /* [arg1+0xe] */ # 8f: c2030e
l8ui a9, a3, 13 /* [arg1+0xd] */ # 92: 92030d
l8ui a5, a3, 12 /* [arg1+0xc] */ # 95: 52030c
slli a9, a9, 16 # 98: 009911
slli a5, a5, 24 # 9b: 805501
slli a12, a12, 8 # 9e: 80cc11
xor a4, a4, a12 # a1: c04430
xor a5, a5, a9 # a4: 905530
xor a4, a4, a5 # a7: 504430
s32i a4, a2, 12 /* a4 -> [arg0+0xc] */ # aa: 4932
.Lbr001: l32i a4, a2, 12 # ac: 4832
l8ui a9, a0, 0 # ae: 920000
addi a0, a0, 1 # b1: 1b00
slli a9, a9, 24 # b3: 809901
extui a3, a4, 0, 8 # b6: 403074
extui a12, a4, 24, 8 # b9: 40c875
extui a5, a4, 16, 8 # bc: 405075
addx4 a5, a5, a11 # bf: b055a0
addx4 a12, a12, a11 # c2: b0cca0
addx4 a3, a3, a11 # c5: b033a0
l32i a3, a3, 0 # c8: 3803
l32i a12, a12, 0 # ca: c80c
l32i a5, a5, 0 # cc: 5805
extui a12, a12, 8, 8 # ce: c0c874
slli a5, a5, 8 # d1: 805511
xor a9, a9, a12 # d4: c09930
extui a12, a4, 8, 8 # d7: 40c874
addx4 a12, a12, a11 # da: b0cca0
l32i a12, a12, 0 # dd: c80c
and a3, a3, a7 # df: 703310
and a12, a12, a8 # e2: 80cc10
xor a3, a3, a12 # e5: c03330
l32i a12, a2, 0 # e8: c802
and a5, a5, a6 # ea: 605510
xor a12, a12, a5 # ed: 50cc30
xor a12, a12, a3 # f0: 30cc30
l32i a5, a2, 4 # f3: 5812
l32i a3, a2, 8 # f5: 3822
xor a9, a9, a12 # f7: c09930
s32i a9, a2, 16 # fa: 9942
xor a5, a5, a9 # fc: 905530
xor a3, a3, a5 # ff: 503330
s32i a5, a2, 20 # 102: 5952
s32i a3, a2, 24 # 104: 3962
xor a3, a3, a4 # 106: 403330
s32i a3, a2, 28 # 109: 3972
addi a2, a2, 16 # 10b: 22c210
bne a0, a10, .Lbr001 # 10e: a7909a
l32i a12, sp, 4 /* [(local1)] */ # 111: c811
l32i a0, sp, 0 /* [(local0)] */ # 113: 0801
addi sp, sp, 16 /* (top of frame) */ # 115: 12c110
ret # 118: 0df0
.section .rodata, "a", @progbits
.global sdk_rcons
.type sdk_rcons, @object
sdk_rcons: .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80
.byte 0x1b, 0x36
.section .irom.text, "ax", @progbits
.global sdk_Te0
.type sdk_Te0, @object
sdk_Te0: .byte 0xa5, 0x63, 0x63, 0xc6, 0x84, 0x7c, 0x7c, 0xf8
.byte 0x99, 0x77, 0x77, 0xee, 0x8d, 0x7b, 0x7b, 0xf6
.byte 0x0d, 0xf2, 0xf2, 0xff, 0xbd, 0x6b, 0x6b, 0xd6
.byte 0xb1, 0x6f, 0x6f, 0xde, 0x54, 0xc5, 0xc5, 0x91
.byte 0x50, 0x30, 0x30, 0x60, 0x03, 0x01, 0x01, 0x02
.byte 0xa9, 0x67, 0x67, 0xce, 0x7d, 0x2b, 0x2b, 0x56
.byte 0x19, 0xfe, 0xfe, 0xe7, 0x62, 0xd7, 0xd7, 0xb5
.byte 0xe6, 0xab, 0xab, 0x4d, 0x9a, 0x76, 0x76, 0xec
.byte 0x45, 0xca, 0xca, 0x8f, 0x9d, 0x82, 0x82, 0x1f
.byte 0x40, 0xc9, 0xc9, 0x89, 0x87, 0x7d, 0x7d, 0xfa
.byte 0x15, 0xfa, 0xfa, 0xef, 0xeb, 0x59, 0x59, 0xb2
.byte 0xc9, 0x47, 0x47, 0x8e, 0x0b, 0xf0, 0xf0, 0xfb
.byte 0xec, 0xad, 0xad, 0x41, 0x67, 0xd4, 0xd4, 0xb3
.byte 0xfd, 0xa2, 0xa2, 0x5f, 0xea, 0xaf, 0xaf, 0x45
.byte 0xbf, 0x9c, 0x9c, 0x23, 0xf7, 0xa4, 0xa4, 0x53
.byte 0x96, 0x72, 0x72, 0xe4, 0x5b, 0xc0, 0xc0, 0x9b
.byte 0xc2, 0xb7, 0xb7, 0x75, 0x1c, 0xfd, 0xfd, 0xe1
.byte 0xae, 0x93, 0x93, 0x3d, 0x6a, 0x26, 0x26, 0x4c
.byte 0x5a, 0x36, 0x36, 0x6c, 0x41, 0x3f, 0x3f, 0x7e
.byte 0x02, 0xf7, 0xf7, 0xf5, 0x4f, 0xcc, 0xcc, 0x83
.byte 0x5c, 0x34, 0x34, 0x68, 0xf4, 0xa5, 0xa5, 0x51
.byte 0x34, 0xe5, 0xe5, 0xd1, 0x08, 0xf1, 0xf1, 0xf9
.byte 0x93, 0x71, 0x71, 0xe2, 0x73, 0xd8, 0xd8, 0xab
.byte 0x53, 0x31, 0x31, 0x62, 0x3f, 0x15, 0x15, 0x2a
.byte 0x0c, 0x04, 0x04, 0x08, 0x52, 0xc7, 0xc7, 0x95
.byte 0x65, 0x23, 0x23, 0x46, 0x5e, 0xc3, 0xc3, 0x9d
.byte 0x28, 0x18, 0x18, 0x30, 0xa1, 0x96, 0x96, 0x37
.byte 0x0f, 0x05, 0x05, 0x0a, 0xb5, 0x9a, 0x9a, 0x2f
.byte 0x09, 0x07, 0x07, 0x0e, 0x36, 0x12, 0x12, 0x24
.byte 0x9b, 0x80, 0x80, 0x1b, 0x3d, 0xe2, 0xe2, 0xdf
.byte 0x26, 0xeb, 0xeb, 0xcd, 0x69, 0x27, 0x27, 0x4e
.byte 0xcd, 0xb2, 0xb2, 0x7f, 0x9f, 0x75, 0x75, 0xea
.byte 0x1b, 0x09, 0x09, 0x12, 0x9e, 0x83, 0x83, 0x1d
.byte 0x74, 0x2c, 0x2c, 0x58, 0x2e, 0x1a, 0x1a, 0x34
.byte 0x2d, 0x1b, 0x1b, 0x36, 0xb2, 0x6e, 0x6e, 0xdc
.byte 0xee, 0x5a, 0x5a, 0xb4, 0xfb, 0xa0, 0xa0, 0x5b
.byte 0xf6, 0x52, 0x52, 0xa4, 0x4d, 0x3b, 0x3b, 0x76
.byte 0x61, 0xd6, 0xd6, 0xb7, 0xce, 0xb3, 0xb3, 0x7d
.byte 0x7b, 0x29, 0x29, 0x52, 0x3e, 0xe3, 0xe3, 0xdd
.byte 0x71, 0x2f, 0x2f, 0x5e, 0x97, 0x84, 0x84, 0x13
.byte 0xf5, 0x53, 0x53, 0xa6, 0x68, 0xd1, 0xd1, 0xb9
.byte 0x00, 0x00, 0x00, 0x00, 0x2c, 0xed, 0xed, 0xc1
.byte 0x60, 0x20, 0x20, 0x40, 0x1f, 0xfc, 0xfc, 0xe3
.byte 0xc8, 0xb1, 0xb1, 0x79, 0xed, 0x5b, 0x5b, 0xb6
.byte 0xbe, 0x6a, 0x6a, 0xd4, 0x46, 0xcb, 0xcb, 0x8d
.byte 0xd9, 0xbe, 0xbe, 0x67, 0x4b, 0x39, 0x39, 0x72
.byte 0xde, 0x4a, 0x4a, 0x94, 0xd4, 0x4c, 0x4c, 0x98
.byte 0xe8, 0x58, 0x58, 0xb0, 0x4a, 0xcf, 0xcf, 0x85
.byte 0x6b, 0xd0, 0xd0, 0xbb, 0x2a, 0xef, 0xef, 0xc5
.byte 0xe5, 0xaa, 0xaa, 0x4f, 0x16, 0xfb, 0xfb, 0xed
.byte 0xc5, 0x43, 0x43, 0x86, 0xd7, 0x4d, 0x4d, 0x9a
.byte 0x55, 0x33, 0x33, 0x66, 0x94, 0x85, 0x85, 0x11
.byte 0xcf, 0x45, 0x45, 0x8a, 0x10, 0xf9, 0xf9, 0xe9
.byte 0x06, 0x02, 0x02, 0x04, 0x81, 0x7f, 0x7f, 0xfe
.byte 0xf0, 0x50, 0x50, 0xa0, 0x44, 0x3c, 0x3c, 0x78
.byte 0xba, 0x9f, 0x9f, 0x25, 0xe3, 0xa8, 0xa8, 0x4b
.byte 0xf3, 0x51, 0x51, 0xa2, 0xfe, 0xa3, 0xa3, 0x5d
.byte 0xc0, 0x40, 0x40, 0x80, 0x8a, 0x8f, 0x8f, 0x05
.byte 0xad, 0x92, 0x92, 0x3f, 0xbc, 0x9d, 0x9d, 0x21
.byte 0x48, 0x38, 0x38, 0x70, 0x04, 0xf5, 0xf5, 0xf1
.byte 0xdf, 0xbc, 0xbc, 0x63, 0xc1, 0xb6, 0xb6, 0x77
.byte 0x75, 0xda, 0xda, 0xaf, 0x63, 0x21, 0x21, 0x42
.byte 0x30, 0x10, 0x10, 0x20, 0x1a, 0xff, 0xff, 0xe5
.byte 0x0e, 0xf3, 0xf3, 0xfd, 0x6d, 0xd2, 0xd2, 0xbf
.byte 0x4c, 0xcd, 0xcd, 0x81, 0x14, 0x0c, 0x0c, 0x18
.byte 0x35, 0x13, 0x13, 0x26, 0x2f, 0xec, 0xec, 0xc3
.byte 0xe1, 0x5f, 0x5f, 0xbe, 0xa2, 0x97, 0x97, 0x35
.byte 0xcc, 0x44, 0x44, 0x88, 0x39, 0x17, 0x17, 0x2e
.byte 0x57, 0xc4, 0xc4, 0x93, 0xf2, 0xa7, 0xa7, 0x55
.byte 0x82, 0x7e, 0x7e, 0xfc, 0x47, 0x3d, 0x3d, 0x7a
.byte 0xac, 0x64, 0x64, 0xc8, 0xe7, 0x5d, 0x5d, 0xba
.byte 0x2b, 0x19, 0x19, 0x32, 0x95, 0x73, 0x73, 0xe6
.byte 0xa0, 0x60, 0x60, 0xc0, 0x98, 0x81, 0x81, 0x19
.byte 0xd1, 0x4f, 0x4f, 0x9e, 0x7f, 0xdc, 0xdc, 0xa3
.byte 0x66, 0x22, 0x22, 0x44, 0x7e, 0x2a, 0x2a, 0x54
.byte 0xab, 0x90, 0x90, 0x3b, 0x83, 0x88, 0x88, 0x0b
.byte 0xca, 0x46, 0x46, 0x8c, 0x29, 0xee, 0xee, 0xc7
.byte 0xd3, 0xb8, 0xb8, 0x6b, 0x3c, 0x14, 0x14, 0x28
.byte 0x79, 0xde, 0xde, 0xa7, 0xe2, 0x5e, 0x5e, 0xbc
.byte 0x1d, 0x0b, 0x0b, 0x16, 0x76, 0xdb, 0xdb, 0xad
.byte 0x3b, 0xe0, 0xe0, 0xdb, 0x56, 0x32, 0x32, 0x64
.byte 0x4e, 0x3a, 0x3a, 0x74, 0x1e, 0x0a, 0x0a, 0x14
.byte 0xdb, 0x49, 0x49, 0x92, 0x0a, 0x06, 0x06, 0x0c
.byte 0x6c, 0x24, 0x24, 0x48, 0xe4, 0x5c, 0x5c, 0xb8
.byte 0x5d, 0xc2, 0xc2, 0x9f, 0x6e, 0xd3, 0xd3, 0xbd
.byte 0xef, 0xac, 0xac, 0x43, 0xa6, 0x62, 0x62, 0xc4
.byte 0xa8, 0x91, 0x91, 0x39, 0xa4, 0x95, 0x95, 0x31
.byte 0x37, 0xe4, 0xe4, 0xd3, 0x8b, 0x79, 0x79, 0xf2
.byte 0x32, 0xe7, 0xe7, 0xd5, 0x43, 0xc8, 0xc8, 0x8b
.byte 0x59, 0x37, 0x37, 0x6e, 0xb7, 0x6d, 0x6d, 0xda
.byte 0x8c, 0x8d, 0x8d, 0x01, 0x64, 0xd5, 0xd5, 0xb1
.byte 0xd2, 0x4e, 0x4e, 0x9c, 0xe0, 0xa9, 0xa9, 0x49
.byte 0xb4, 0x6c, 0x6c, 0xd8, 0xfa, 0x56, 0x56, 0xac
.byte 0x07, 0xf4, 0xf4, 0xf3, 0x25, 0xea, 0xea, 0xcf
.byte 0xaf, 0x65, 0x65, 0xca, 0x8e, 0x7a, 0x7a, 0xf4
.byte 0xe9, 0xae, 0xae, 0x47, 0x18, 0x08, 0x08, 0x10
.byte 0xd5, 0xba, 0xba, 0x6f, 0x88, 0x78, 0x78, 0xf0
.byte 0x6f, 0x25, 0x25, 0x4a, 0x72, 0x2e, 0x2e, 0x5c
.byte 0x24, 0x1c, 0x1c, 0x38, 0xf1, 0xa6, 0xa6, 0x57
.byte 0xc7, 0xb4, 0xb4, 0x73, 0x51, 0xc6, 0xc6, 0x97
.byte 0x23, 0xe8, 0xe8, 0xcb, 0x7c, 0xdd, 0xdd, 0xa1
.byte 0x9c, 0x74, 0x74, 0xe8, 0x21, 0x1f, 0x1f, 0x3e
.byte 0xdd, 0x4b, 0x4b, 0x96, 0xdc, 0xbd, 0xbd, 0x61
.byte 0x86, 0x8b, 0x8b, 0x0d, 0x85, 0x8a, 0x8a, 0x0f
.byte 0x90, 0x70, 0x70, 0xe0, 0x42, 0x3e, 0x3e, 0x7c
.byte 0xc4, 0xb5, 0xb5, 0x71, 0xaa, 0x66, 0x66, 0xcc
.byte 0xd8, 0x48, 0x48, 0x90, 0x05, 0x03, 0x03, 0x06
.byte 0x01, 0xf6, 0xf6, 0xf7, 0x12, 0x0e, 0x0e, 0x1c
.byte 0xa3, 0x61, 0x61, 0xc2, 0x5f, 0x35, 0x35, 0x6a
.byte 0xf9, 0x57, 0x57, 0xae, 0xd0, 0xb9, 0xb9, 0x69
.byte 0x91, 0x86, 0x86, 0x17, 0x58, 0xc1, 0xc1, 0x99
.byte 0x27, 0x1d, 0x1d, 0x3a, 0xb9, 0x9e, 0x9e, 0x27
.byte 0x38, 0xe1, 0xe1, 0xd9, 0x13, 0xf8, 0xf8, 0xeb
.byte 0xb3, 0x98, 0x98, 0x2b, 0x33, 0x11, 0x11, 0x22
.byte 0xbb, 0x69, 0x69, 0xd2, 0x70, 0xd9, 0xd9, 0xa9
.byte 0x89, 0x8e, 0x8e, 0x07, 0xa7, 0x94, 0x94, 0x33
.byte 0xb6, 0x9b, 0x9b, 0x2d, 0x22, 0x1e, 0x1e, 0x3c
.byte 0x92, 0x87, 0x87, 0x15, 0x20, 0xe9, 0xe9, 0xc9
.byte 0x49, 0xce, 0xce, 0x87, 0xff, 0x55, 0x55, 0xaa
.byte 0x78, 0x28, 0x28, 0x50, 0x7a, 0xdf, 0xdf, 0xa5
.byte 0x8f, 0x8c, 0x8c, 0x03, 0xf8, 0xa1, 0xa1, 0x59
.byte 0x80, 0x89, 0x89, 0x09, 0x17, 0x0d, 0x0d, 0x1a
.byte 0xda, 0xbf, 0xbf, 0x65, 0x31, 0xe6, 0xe6, 0xd7
.byte 0xc6, 0x42, 0x42, 0x84, 0xb8, 0x68, 0x68, 0xd0
.byte 0xc3, 0x41, 0x41, 0x82, 0xb0, 0x99, 0x99, 0x29
.byte 0x77, 0x2d, 0x2d, 0x5a, 0x11, 0x0f, 0x0f, 0x1e
.byte 0xcb, 0xb0, 0xb0, 0x7b, 0xfc, 0x54, 0x54, 0xa8
.byte 0xd6, 0xbb, 0xbb, 0x6d, 0x3a, 0x16, 0x16, 0x2c
.global sdk_Td0
.type sdk_Td0, @object
sdk_Td0: .byte 0x50, 0xa7, 0xf4, 0x51, 0x53, 0x65, 0x41, 0x7e
.byte 0xc3, 0xa4, 0x17, 0x1a, 0x96, 0x5e, 0x27, 0x3a
.byte 0xcb, 0x6b, 0xab, 0x3b, 0xf1, 0x45, 0x9d, 0x1f
.byte 0xab, 0x58, 0xfa, 0xac, 0x93, 0x03, 0xe3, 0x4b
.byte 0x55, 0xfa, 0x30, 0x20, 0xf6, 0x6d, 0x76, 0xad
.byte 0x91, 0x76, 0xcc, 0x88, 0x25, 0x4c, 0x02, 0xf5
.byte 0xfc, 0xd7, 0xe5, 0x4f, 0xd7, 0xcb, 0x2a, 0xc5
.byte 0x80, 0x44, 0x35, 0x26, 0x8f, 0xa3, 0x62, 0xb5
.byte 0x49, 0x5a, 0xb1, 0xde, 0x67, 0x1b, 0xba, 0x25
.byte 0x98, 0x0e, 0xea, 0x45, 0xe1, 0xc0, 0xfe, 0x5d
.byte 0x02, 0x75, 0x2f, 0xc3, 0x12, 0xf0, 0x4c, 0x81
.byte 0xa3, 0x97, 0x46, 0x8d, 0xc6, 0xf9, 0xd3, 0x6b
.byte 0xe7, 0x5f, 0x8f, 0x03, 0x95, 0x9c, 0x92, 0x15
.byte 0xeb, 0x7a, 0x6d, 0xbf, 0xda, 0x59, 0x52, 0x95
.byte 0x2d, 0x83, 0xbe, 0xd4, 0xd3, 0x21, 0x74, 0x58
.byte 0x29, 0x69, 0xe0, 0x49, 0x44, 0xc8, 0xc9, 0x8e
.byte 0x6a, 0x89, 0xc2, 0x75, 0x78, 0x79, 0x8e, 0xf4
.byte 0x6b, 0x3e, 0x58, 0x99, 0xdd, 0x71, 0xb9, 0x27
.byte 0xb6, 0x4f, 0xe1, 0xbe, 0x17, 0xad, 0x88, 0xf0
.byte 0x66, 0xac, 0x20, 0xc9, 0xb4, 0x3a, 0xce, 0x7d
.byte 0x18, 0x4a, 0xdf, 0x63, 0x82, 0x31, 0x1a, 0xe5
.byte 0x60, 0x33, 0x51, 0x97, 0x45, 0x7f, 0x53, 0x62
.byte 0xe0, 0x77, 0x64, 0xb1, 0x84, 0xae, 0x6b, 0xbb
.byte 0x1c, 0xa0, 0x81, 0xfe, 0x94, 0x2b, 0x08, 0xf9
.byte 0x58, 0x68, 0x48, 0x70, 0x19, 0xfd, 0x45, 0x8f
.byte 0x87, 0x6c, 0xde, 0x94, 0xb7, 0xf8, 0x7b, 0x52
.byte 0x23, 0xd3, 0x73, 0xab, 0xe2, 0x02, 0x4b, 0x72
.byte 0x57, 0x8f, 0x1f, 0xe3, 0x2a, 0xab, 0x55, 0x66
.byte 0x07, 0x28, 0xeb, 0xb2, 0x03, 0xc2, 0xb5, 0x2f
.byte 0x9a, 0x7b, 0xc5, 0x86, 0xa5, 0x08, 0x37, 0xd3
.byte 0xf2, 0x87, 0x28, 0x30, 0xb2, 0xa5, 0xbf, 0x23
.byte 0xba, 0x6a, 0x03, 0x02, 0x5c, 0x82, 0x16, 0xed
.byte 0x2b, 0x1c, 0xcf, 0x8a, 0x92, 0xb4, 0x79, 0xa7
.byte 0xf0, 0xf2, 0x07, 0xf3, 0xa1, 0xe2, 0x69, 0x4e
.byte 0xcd, 0xf4, 0xda, 0x65, 0xd5, 0xbe, 0x05, 0x06
.byte 0x1f, 0x62, 0x34, 0xd1, 0x8a, 0xfe, 0xa6, 0xc4
.byte 0x9d, 0x53, 0x2e, 0x34, 0xa0, 0x55, 0xf3, 0xa2
.byte 0x32, 0xe1, 0x8a, 0x05, 0x75, 0xeb, 0xf6, 0xa4
.byte 0x39, 0xec, 0x83, 0x0b, 0xaa, 0xef, 0x60, 0x40
.byte 0x06, 0x9f, 0x71, 0x5e, 0x51, 0x10, 0x6e, 0xbd
.byte 0xf9, 0x8a, 0x21, 0x3e, 0x3d, 0x06, 0xdd, 0x96
.byte 0xae, 0x05, 0x3e, 0xdd, 0x46, 0xbd, 0xe6, 0x4d
.byte 0xb5, 0x8d, 0x54, 0x91, 0x05, 0x5d, 0xc4, 0x71
.byte 0x6f, 0xd4, 0x06, 0x04, 0xff, 0x15, 0x50, 0x60
.byte 0x24, 0xfb, 0x98, 0x19, 0x97, 0xe9, 0xbd, 0xd6
.byte 0xcc, 0x43, 0x40, 0x89, 0x77, 0x9e, 0xd9, 0x67
.byte 0xbd, 0x42, 0xe8, 0xb0, 0x88, 0x8b, 0x89, 0x07
.byte 0x38, 0x5b, 0x19, 0xe7, 0xdb, 0xee, 0xc8, 0x79
.byte 0x47, 0x0a, 0x7c, 0xa1, 0xe9, 0x0f, 0x42, 0x7c
.byte 0xc9, 0x1e, 0x84, 0xf8, 0x00, 0x00, 0x00, 0x00
.byte 0x83, 0x86, 0x80, 0x09, 0x48, 0xed, 0x2b, 0x32
.byte 0xac, 0x70, 0x11, 0x1e, 0x4e, 0x72, 0x5a, 0x6c
.byte 0xfb, 0xff, 0x0e, 0xfd, 0x56, 0x38, 0x85, 0x0f
.byte 0x1e, 0xd5, 0xae, 0x3d, 0x27, 0x39, 0x2d, 0x36
.byte 0x64, 0xd9, 0x0f, 0x0a, 0x21, 0xa6, 0x5c, 0x68
.byte 0xd1, 0x54, 0x5b, 0x9b, 0x3a, 0x2e, 0x36, 0x24
.byte 0xb1, 0x67, 0x0a, 0x0c, 0x0f, 0xe7, 0x57, 0x93
.byte 0xd2, 0x96, 0xee, 0xb4, 0x9e, 0x91, 0x9b, 0x1b
.byte 0x4f, 0xc5, 0xc0, 0x80, 0xa2, 0x20, 0xdc, 0x61
.byte 0x69, 0x4b, 0x77, 0x5a, 0x16, 0x1a, 0x12, 0x1c
.byte 0x0a, 0xba, 0x93, 0xe2, 0xe5, 0x2a, 0xa0, 0xc0
.byte 0x43, 0xe0, 0x22, 0x3c, 0x1d, 0x17, 0x1b, 0x12
.byte 0x0b, 0x0d, 0x09, 0x0e, 0xad, 0xc7, 0x8b, 0xf2
.byte 0xb9, 0xa8, 0xb6, 0x2d, 0xc8, 0xa9, 0x1e, 0x14
.byte 0x85, 0x19, 0xf1, 0x57, 0x4c, 0x07, 0x75, 0xaf
.byte 0xbb, 0xdd, 0x99, 0xee, 0xfd, 0x60, 0x7f, 0xa3
.byte 0x9f, 0x26, 0x01, 0xf7, 0xbc, 0xf5, 0x72, 0x5c
.byte 0xc5, 0x3b, 0x66, 0x44, 0x34, 0x7e, 0xfb, 0x5b
.byte 0x76, 0x29, 0x43, 0x8b, 0xdc, 0xc6, 0x23, 0xcb
.byte 0x68, 0xfc, 0xed, 0xb6, 0x63, 0xf1, 0xe4, 0xb8
.byte 0xca, 0xdc, 0x31, 0xd7, 0x10, 0x85, 0x63, 0x42
.byte 0x40, 0x22, 0x97, 0x13, 0x20, 0x11, 0xc6, 0x84
.byte 0x7d, 0x24, 0x4a, 0x85, 0xf8, 0x3d, 0xbb, 0xd2
.byte 0x11, 0x32, 0xf9, 0xae, 0x6d, 0xa1, 0x29, 0xc7
.byte 0x4b, 0x2f, 0x9e, 0x1d, 0xf3, 0x30, 0xb2, 0xdc
.byte 0xec, 0x52, 0x86, 0x0d, 0xd0, 0xe3, 0xc1, 0x77
.byte 0x6c, 0x16, 0xb3, 0x2b, 0x99, 0xb9, 0x70, 0xa9
.byte 0xfa, 0x48, 0x94, 0x11, 0x22, 0x64, 0xe9, 0x47
.byte 0xc4, 0x8c, 0xfc, 0xa8, 0x1a, 0x3f, 0xf0, 0xa0
.byte 0xd8, 0x2c, 0x7d, 0x56, 0xef, 0x90, 0x33, 0x22
.byte 0xc7, 0x4e, 0x49, 0x87, 0xc1, 0xd1, 0x38, 0xd9
.byte 0xfe, 0xa2, 0xca, 0x8c, 0x36, 0x0b, 0xd4, 0x98
.byte 0xcf, 0x81, 0xf5, 0xa6, 0x28, 0xde, 0x7a, 0xa5
.byte 0x26, 0x8e, 0xb7, 0xda, 0xa4, 0xbf, 0xad, 0x3f
.byte 0xe4, 0x9d, 0x3a, 0x2c, 0x0d, 0x92, 0x78, 0x50
.byte 0x9b, 0xcc, 0x5f, 0x6a, 0x62, 0x46, 0x7e, 0x54
.byte 0xc2, 0x13, 0x8d, 0xf6, 0xe8, 0xb8, 0xd8, 0x90
.byte 0x5e, 0xf7, 0x39, 0x2e, 0xf5, 0xaf, 0xc3, 0x82
.byte 0xbe, 0x80, 0x5d, 0x9f, 0x7c, 0x93, 0xd0, 0x69
.byte 0xa9, 0x2d, 0xd5, 0x6f, 0xb3, 0x12, 0x25, 0xcf
.byte 0x3b, 0x99, 0xac, 0xc8, 0xa7, 0x7d, 0x18, 0x10
.byte 0x6e, 0x63, 0x9c, 0xe8, 0x7b, 0xbb, 0x3b, 0xdb
.byte 0x09, 0x78, 0x26, 0xcd, 0xf4, 0x18, 0x59, 0x6e
.byte 0x01, 0xb7, 0x9a, 0xec, 0xa8, 0x9a, 0x4f, 0x83
.byte 0x65, 0x6e, 0x95, 0xe6, 0x7e, 0xe6, 0xff, 0xaa
.byte 0x08, 0xcf, 0xbc, 0x21, 0xe6, 0xe8, 0x15, 0xef
.byte 0xd9, 0x9b, 0xe7, 0xba, 0xce, 0x36, 0x6f, 0x4a
.byte 0xd4, 0x09, 0x9f, 0xea, 0xd6, 0x7c, 0xb0, 0x29
.byte 0xaf, 0xb2, 0xa4, 0x31, 0x31, 0x23, 0x3f, 0x2a
.byte 0x30, 0x94, 0xa5, 0xc6, 0xc0, 0x66, 0xa2, 0x35
.byte 0x37, 0xbc, 0x4e, 0x74, 0xa6, 0xca, 0x82, 0xfc
.byte 0xb0, 0xd0, 0x90, 0xe0, 0x15, 0xd8, 0xa7, 0x33
.byte 0x4a, 0x98, 0x04, 0xf1, 0xf7, 0xda, 0xec, 0x41
.byte 0x0e, 0x50, 0xcd, 0x7f, 0x2f, 0xf6, 0x91, 0x17
.byte 0x8d, 0xd6, 0x4d, 0x76, 0x4d, 0xb0, 0xef, 0x43
.byte 0x54, 0x4d, 0xaa, 0xcc, 0xdf, 0x04, 0x96, 0xe4
.byte 0xe3, 0xb5, 0xd1, 0x9e, 0x1b, 0x88, 0x6a, 0x4c
.byte 0xb8, 0x1f, 0x2c, 0xc1, 0x7f, 0x51, 0x65, 0x46
.byte 0x04, 0xea, 0x5e, 0x9d, 0x5d, 0x35, 0x8c, 0x01
.byte 0x73, 0x74, 0x87, 0xfa, 0x2e, 0x41, 0x0b, 0xfb
.byte 0x5a, 0x1d, 0x67, 0xb3, 0x52, 0xd2, 0xdb, 0x92
.byte 0x33, 0x56, 0x10, 0xe9, 0x13, 0x47, 0xd6, 0x6d
.byte 0x8c, 0x61, 0xd7, 0x9a, 0x7a, 0x0c, 0xa1, 0x37
.byte 0x8e, 0x14, 0xf8, 0x59, 0x89, 0x3c, 0x13, 0xeb
.byte 0xee, 0x27, 0xa9, 0xce, 0x35, 0xc9, 0x61, 0xb7
.byte 0xed, 0xe5, 0x1c, 0xe1, 0x3c, 0xb1, 0x47, 0x7a
.byte 0x59, 0xdf, 0xd2, 0x9c, 0x3f, 0x73, 0xf2, 0x55
.byte 0x79, 0xce, 0x14, 0x18, 0xbf, 0x37, 0xc7, 0x73
.byte 0xea, 0xcd, 0xf7, 0x53, 0x5b, 0xaa, 0xfd, 0x5f
.byte 0x14, 0x6f, 0x3d, 0xdf, 0x86, 0xdb, 0x44, 0x78
.byte 0x81, 0xf3, 0xaf, 0xca, 0x3e, 0xc4, 0x68, 0xb9
.byte 0x2c, 0x34, 0x24, 0x38, 0x5f, 0x40, 0xa3, 0xc2
.byte 0x72, 0xc3, 0x1d, 0x16, 0x0c, 0x25, 0xe2, 0xbc
.byte 0x8b, 0x49, 0x3c, 0x28, 0x41, 0x95, 0x0d, 0xff
.byte 0x71, 0x01, 0xa8, 0x39, 0xde, 0xb3, 0x0c, 0x08
.byte 0x9c, 0xe4, 0xb4, 0xd8, 0x90, 0xc1, 0x56, 0x64
.byte 0x61, 0x84, 0xcb, 0x7b, 0x70, 0xb6, 0x32, 0xd5
.byte 0x74, 0x5c, 0x6c, 0x48, 0x42, 0x57, 0xb8, 0xd0
# NOTE: The following is apparently unreferenced code/data
.global sdk_Td4s_rom
.type sdk_Td4s_rom, @object
sdk_Td4s_rom:
.word 0xd56a0952 # 800: 52096ad5
.word 0x38a53630 # 804: 3036a538
.word 0x9ea340bf # 808: bf40a39e
.word 0xfbd7f381 # 80c: 81f3d7fb
.word 0x8239e37c # 810: 7ce33982
.word 0x87ff2f9b # 814: 9b2fff87
.word 0x44438e34 # 818: 348e4344
.word 0xcbe9dec4 # 81c: c4dee9cb
.word 0x32947b54 # 820: 547b9432
.word 0x3d23c2a6 # 824: a6c2233d
.word 0x0b954cee # 828: ee4c950b
.word 0x4ec3fa42 # 82c: 42fac34e
.word 0x66a12e08 # 830: 082ea166
.word 0xb224d928 # 834: 28d924b2
.word 0x49a25b76 # 838: 765ba249
.word 0x25d18b6d # 83c: 6d8bd125
.word 0x64f6f872 # 840: 72f8f664
.word 0x16986886 # 844: 86689816
.word 0xcc5ca4d4 # 848: d4a45ccc
.word 0x92b6655d # 84c: 5d65b692
.word 0x5048706c # 850: 6c704850
.word 0xdab9edfd # 854: fdedb9da
.word 0x5746155e # 858: 5e154657
.word 0x849d8da7 # 85c: a78d9d84
.word 0x00abd890 # 860: 90d8ab00
.word 0x0ad3bc8c # 864: 8cbcd30a
.word 0x0558e4f7 # 868: f7e45805
.word 0x0645b3b8 # 86c: b8b34506
.word 0x8f1e2cd0 # 870: d02c1e8f
.word 0x020f3fca # 874: ca3f0f02
.word 0x03bdafc1 # 878: c1afbd03
.word 0x6b8a1301 # 87c: 01138a6b
.word 0x4111913a # 880: 3a911141
.word 0xeadc674f # 884: 4f67dcea
.word 0xcecff297 # 888: 97f2cfce
.word 0x73e6b4f0 # 88c: f0b4e673
.word 0x2274ac96 # 890: 96ac7422
.word 0x8535ade7 # 894: e7ad3585
.word 0xe837f9e2 # 898: e2f937e8
.word 0x6edf751c # 89c: 1c75df6e
.word 0x711af147 # 8a0: 47f11a71
.word 0x89c5291d # 8a4: 1d29c589
.word 0x0e62b76f # 8a8: 6fb7620e
.word 0x1bbe18aa # 8ac: aa18be1b
.word 0x4b3e56fc # 8b0: fc563e4b
.word 0x2079d2c6 # 8b4: c6d27920
.word 0xfec0db9a # 8b8: 9adbc0fe
.word 0xf45acd78 # 8bc: 78cd5af4
.word 0x33a8dd1f # 8c0: 1fdda833
.word 0x31c70788 # 8c4: 8807c731
.word 0x591012b1 # 8c8: b1121059
.word 0x5fec8027 # 8cc: 2780ec5f
.word 0xa97f5160 # 8d0: 60517fa9
.word 0x0d4ab519 # 8d4: 19b54a0d
.word 0x9f7ae52d # 8d8: 2de57a9f
.word 0xef9cc993 # 8dc: 93c99cef
.word 0x4d3be0a0 # 8e0: a0e03b4d
.word 0xb0f52aae # 8e4: ae2af5b0
.word 0x3cbbebc8 # 8e8: c8ebbb3c
.word 0x61995383 # 8ec: 83539961
.word 0x7e042b17 # 8f0: 172b047e
.word 0x26d677ba # 8f4: ba77d626
.word 0x631469e1 # 8f8: e1691463
.word 0x7d0c2155 # 8fc: 55210c7d

View file

@ -0,0 +1,126 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 00000000
# 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): byte[9] @ -0x39
# (local1): word @ -0x30
# (local2): word @ -0x2c
# (local3): word @ -0x28
# (local4): word @ -0x24
# (local5): word @ -0x20
# (local6): word @ -0x1c
# (local7): word @ -0x18
# (local8): word @ -0x14
# (local9): word[4] @ -0x10
.global sdk_aes_unwrap
.type sdk_aes_unwrap, @function
sdk_aes_unwrap:
addi sp, sp, -80 /* (FP)-0x50 */ # 24: 12c1b0
s32i a15, sp, 48 /* a15 -> [(local5)] */ # 27: f9c1
s32i a0, sp, 32 /* a0 -> [(local1)] */ # 29: 0981
s32i a12, sp, 36 /* a12 -> [(local2)] */ # 2b: c991
s32i a14, sp, 44 /* a14 -> [(local4)] */ # 2d: e9b1
s32i a13, sp, 40 /* a13 -> [(local3)] */ # 2f: d9a1
s32i a3, sp, 60 /* arg1 -> [(local8)] */ # 31: 39f1
mov a13, a5 /* arg3 */ # 33: dd05
mov a3, a4 /* arg2 */ # 35: 3d04
mov a14, a2 /* arg0 */ # 37: ed02
mov a12, a4 /* arg2 */ # 39: cd04
mov a2, sp /* (FP)-0x50 */ # 3b: 2d01
movi a4, 8 /* 0x00000008 */ # 3d: 0c84
call0 memcpy # 3f: 01f0ffc0
# 43: 0000
addi a3, a12, 8 /* arg2+0x8 */ # 45: 8b3c
l32i a12, sp, 60 /* [(local8)] */ # 47: c8f1
mov a2, a13 /* arg3 */ # 49: 2d0d
slli a12, a12, 3 # 4b: d0cc11
mov a4, a12 # 4e: 4d0c
call0 memcpy # 50: 01edffc0
# 54: 0000
mov a2, a14 /* arg0 */ # 56: 2d0e
movi a3, 16 /* 0x00000010 */ # 58: 1c03
call0 sdk_aes_decrypt_init # 5a: 01ebffc0
# 5e: 0000
mov a0, a2 # 60: 0d02
beqz a2, .Lbr006 # 62: 16920a
addi a14, sp, 24 /* (FP)-0x38 */ # 65: e2c118
s32i a0, sp, 64 /* a0 -> [(local9)] */ # 68: 026110
l32i a15, sp, 60 /* [(local8)] */ # 6b: f8f1
add a2, a12, a13 # 6d: da2c
movi a3, 5 /* 0x00000005 */ # 6f: 0c53
s32i a3, sp, 56 /* 0x00000005 -> [(local7)] */ # 71: 39e1
addi a2, a2, -8 # 73: 22c2f8
addx4 a15, a15, a15 # 76: f0ffa0
s32i a2, sp, 52 /* a2 -> [(local6)] */ # 79: 29d1
.Lbr001: l32i a0, sp, 60 /* [(local8)] */ # 7b: 08f1
l32i a12, sp, 52 /* [(local6)] */ # 7d: c8d1
blti a0, 1, .Lbr003 # 7f: a61052
add a13, a15, a0 # 82: 0adf
.Lbr002: addi a2, sp, 16 /* (FP)-0x40 */ # 84: 22c110
mov a3, sp /* (FP)-0x50 */ # 87: 3d01
movi a4, 8 /* 0x00000008 */ # 89: 0c84
call0 memcpy # 8b: 01e0ffc0
# 8f: 0000
mov a2, a14 /* (FP)-0x38 */ # 91: 2d0e
mov a3, a12 # 93: 3d0c
l8ui a0, sp, 23 /* [(local0)] */ # 95: 020117
movi a4, 8 /* 0x00000008 */ # 98: 0c84
xor a0, a13, a0 # 9a: 000d30
s8i a0, sp, 23 /* a0 -> [(local0)] */ # 9d: 024117
call0 memcpy # a0: 01dcffc0
# a4: 0000
l32i a2, sp, 64 /* [(local9)] */ # a6: 222110
addi a3, sp, 16 /* (FP)-0x40 */ # a9: 32c110
mov a4, a3 /* (FP)-0x40 */ # ac: 4d03
call0 sdk_aes_decrypt # ae: 01d9ffc0
# b2: 0000
mov a2, sp /* (FP)-0x50 */ # b4: 2d01
addi a3, sp, 16 /* (FP)-0x40 */ # b6: 32c110
movi a4, 8 /* 0x00000008 */ # b9: 0c84
call0 memcpy # bb: 01d7ffc0
# bf: 0000
mov a2, a12 # c1: 2d0c
mov a3, a14 /* (FP)-0x38 */ # c3: 3d0e
movi a4, 8 /* 0x00000008 */ # c5: 0c84
call0 memcpy # c7: 01d5ffc0
# cb: 0000
addi a12, a12, -8 # cd: c2ccf8
addi a13, a13, -1 # d0: 0bdd
bne a15, a13, .Lbr002 # d2: d79fae
.Lbr003: l32i a3, sp, 60 /* [(local8)] */ # d5: 38f1
l32i a2, sp, 56 /* [(local7)] */ # d7: 28e1
sub a15, a15, a3 # d9: 30ffc0
addi a2, a2, -1 /* [(local7)]-0x1 */ # dc: 0b22
s32i a2, sp, 56 /* [(local7)]-0x1 -> [(local7)] */ # de: 29e1
bnei a2, -1, .Lbr001 # e0: 660297
l32i a2, sp, 64 /* [(local9)] */ # e3: 222110
call0 sdk_aes_decrypt_deinit # e6: 01ceffc0
# ea: 0000
mov a0, sp /* (FP)-0x50 */ # ec: 0d01
addi a2, sp, 8 /* (FP)-0x48 */ # ee: 8b21
movi a3, 166 /* 0x000000a6 */ # f0: 32a0a6
.Lbr004: l8ui a4, a0, 0 # f3: 420000
addi a0, a0, 1 # f6: 1b00
bne a4, a3, .Lbr006 # f8: 379413
bne a0, a2, .Lbr004 # fb: 2790f4
movi a2, 0 /* 0x00000000 */ # fe: 0c02
.Lbr005: l32i a12, sp, 36 /* [(local2)] */ # 100: c891
l32i a13, sp, 40 /* [(local3)] */ # 102: d8a1
l32i a14, sp, 44 /* [(local4)] */ # 104: e8b1
l32i a15, sp, 48 /* [(local5)] */ # 106: f8c1
l32i a0, sp, 32 /* [(local1)] */ # 108: 0881
addi sp, sp, 80 /* (top of frame) */ # 10a: 12c150
ret # 10d: 0df0
.Lbr006: movi a2, -1 /* 0xffffffff */ # 10f: 7cf2
j .Lbr005 # 111: c6faff

View file

@ -0,0 +1,127 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 00000000
# 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word @ -0x10
# (local9): word @ -0xc
# (local10): word @ -0x8
# (local11): word @ -0x4
.global sdk_aes_wrap
.type sdk_aes_wrap, @function
sdk_aes_wrap:
addi sp, sp, -64 /* (FP)-0x40 */ # 24: 12c1c0
s32i a15, sp, 32 /* a15 -> [(local4)] */ # 27: f981
s32i a0, sp, 16 /* a0 -> [(local0)] */ # 29: 0941
s32i a12, sp, 20 /* a12 -> [(local1)] */ # 2b: c951
s32i a13, sp, 24 /* a13 -> [(local2)] */ # 2d: d961
s32i a14, sp, 28 /* a14 -> [(local3)] */ # 2f: e971
s32i a3, sp, 48 /* arg1 -> [(local8)] */ # 31: 39c1
mov a14, a5 /* arg3 */ # 33: ed05
movi a3, 166 /* 0x000000a6 */ # 35: 32a0a6
mov a13, a2 /* arg0 */ # 38: dd02
mov a12, a4 /* arg2 */ # 3a: cd04
mov a2, a5 /* arg3 */ # 3c: 2d05
movi a4, 8 /* 0x00000008 */ # 3e: 0c84
call0 memset # 40: 01f0ffc0
# 44: 0000
mov a3, a12 /* arg2 */ # 46: 3d0c
l32i a4, sp, 48 /* [(local8)] */ # 48: 48c1
addi a2, a14, 8 /* arg3+0x8 */ # 4a: 8b2e
s32i a2, sp, 40 /* arg3+0x8 -> [(local6)] */ # 4c: 29a1
slli a4, a4, 3 # 4e: d04411
call0 memcpy # 51: 01ecffc0
# 55: 0000
mov a2, a13 /* arg0 */ # 57: 2d0d
movi a3, 16 /* 0x00000010 */ # 59: 1c03
call0 sdk_aes_encrypt_init # 5b: 01ebffc0
# 5f: 0000
bnez a2, .Lbr001 # 61: cc32
movi a2, -1 /* 0xffffffff */ # 63: 7cf2
j .Lbr005 # 65: c62200
.Lbr001: addi a15, sp, 8 /* (FP)-0x38 */ # 68: 8bf1
s32i a2, sp, 56 /* a2 -> [(local10)] */ # 6a: 29e1
l32i a6, sp, 48 /* [(local8)] */ # 6c: 68c1
movi a5, 0 /* 0x00000000 */ # 6e: 0c05
movi a7, 0 /* 0x00000000 */ # 70: 0c07
s32i a7, sp, 52 /* 0x00000000 -> [(local9)] */ # 72: 79d1
s32i a5, sp, 44 /* 0x00000000 -> [(local7)] */ # 74: 59b1
addi a6, a6, 1 /* [(local8)]+0x1 */ # 76: 1b66
s32i a6, sp, 36 /* [(local8)]+0x1 -> [(local5)] */ # 78: 6991
.Lbr002: l32i a8, sp, 48 /* [(local8)] */ # 7a: 88c1
l32i a12, sp, 40 /* [(local6)] */ # 7c: c8a1
blti a8, 1, .Lbr004 # 7e: a61857
l32i a9, sp, 52 /* [(local9)] */ # 81: 98d1
l32i a10, sp, 36 /* [(local5)] */ # 83: a891
addi a13, a9, 1 /* [(local9)]+0x1 */ # 85: 1bd9
add a9, a9, a10 # 87: aa99
s32i a9, sp, 60 /* a9 -> [(local11)] */ # 89: 99f1
.Lbr003: mov a2, sp /* (FP)-0x40 */ # 8b: 2d01
mov a3, a14 /* arg3 */ # 8d: 3d0e
movi a4, 8 /* 0x00000008 */ # 8f: 0c84
call0 memcpy # 91: 01deffc0
# 95: 0000
mov a2, a15 /* (FP)-0x38 */ # 97: 2d0f
mov a3, a12 # 99: 3d0c
movi a4, 8 /* 0x00000008 */ # 9b: 0c84
call0 memcpy # 9d: 01dcffc0
# a1: 0000
l32i a2, sp, 56 /* [(local10)] */ # a3: 28e1
mov a3, sp /* (FP)-0x40 */ # a5: 3d01
mov a4, sp /* (FP)-0x40 */ # a7: 4d01
call0 sdk_aes_encrypt # a9: 01daffc0
# ad: 0000
mov a2, a14 /* arg3 */ # af: 2d0e
mov a3, sp /* (FP)-0x40 */ # b1: 3d01
movi a4, 8 /* 0x00000008 */ # b3: 0c84
call0 memcpy # b5: 01d8ffc0
# b9: 0000
mov a2, a12 # bb: 2d0c
mov a3, a15 /* (FP)-0x38 */ # bd: 3d0f
l8ui a11, a14, 7 /* [arg3+0x7] */ # bf: b20e07
movi a4, 8 /* 0x00000008 */ # c2: 0c84
xor a11, a13, a11 # c4: b0bd30
s8i a11, a14, 7 /* a11 -> [arg3+0x7] */ # c7: b24e07
call0 memcpy # ca: 01d4ffc0
# ce: 0000
addi a12, a12, 8 # d0: 8bcc
l32i a0, sp, 60 /* [(local11)] */ # d2: 08f1
addi a13, a13, 1 # d4: 1bdd
bne a13, a0, .Lbr003 # d6: 079db1
.Lbr004: l32i a4, sp, 48 /* [(local8)] */ # d9: 48c1
l32i a2, sp, 44 /* [(local7)] */ # db: 28b1
l32i a3, sp, 52 /* [(local9)] */ # dd: 38d1
addi a2, a2, 1 /* [(local7)]+0x1 */ # df: 1b22
s32i a2, sp, 44 /* [(local7)]+0x1 -> [(local7)] */ # e1: 29b1
add a3, a3, a4 # e3: 4a33
s32i a3, sp, 52 /* a3 -> [(local9)] */ # e5: 39d1
bnei a2, 6, .Lbr002 # e7: 66628f
l32i a2, sp, 56 /* [(local10)] */ # ea: 28e1
call0 sdk_aes_encrypt_deinit # ec: 01cdffc0
# f0: 0000
movi a2, 0 /* 0x00000000 */ # f2: 0c02
.Lbr005: l32i a12, sp, 20 /* [(local1)] */ # f4: c851
l32i a13, sp, 24 /* [(local2)] */ # f6: d861
l32i a14, sp, 28 /* [(local3)] */ # f8: e871
l32i a15, sp, 32 /* [(local4)] */ # fa: f881
l32i a0, sp, 16 /* [(local0)] */ # fc: 0841
addi sp, sp, 64 /* (top of frame) */ # fe: 12c140
ret # 101: 0df0

View file

@ -0,0 +1,376 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 80510100
# 4: ffff0000
# Function @ .irom0.text+0x8
.global sdk_hostapd_config_defaults_bss
.type sdk_hostapd_config_defaults_bss, @function
sdk_hostapd_config_defaults_bss:
movi a4, 0x0000ffff # 8: 41ffff
movi a3, 300 /* 0x0000012c */ # b: 32a12c
movi a5, 4 /* 0x00000004 */ # e: 0c45
movi a6, 0 /* 0x00000000 */ # 10: 0c06
movi a7, 0x00015180 # 12: 71fbff
movi a8, 600 /* 0x00000258 */ # 15: 82a258
movi a9, 1 /* 0x00000001 */ # 18: 0c19
movi a10, 3 /* 0x00000003 */ # 1a: 0c3a
movi a11, 2 /* 0x00000002 */ # 1c: 0c2b
s32i a11, a2, 116 /* 0x00000002 -> [arg0+0x74] */ # 1e: b2621d
s32i a11, a2, 132 /* 0x00000002 -> [arg0+0x84] */ # 21: b26221
s32i a11, a2, 140 /* 0x00000002 -> [arg0+0x8c] */ # 24: b26223
s32i a11, a2, 144 /* 0x00000002 -> [arg0+0x90] */ # 27: b26224
s32i a11, a2, 4 /* 0x00000002 -> [arg0+0x4] */ # 2a: b912
s32i a11, a2, 12 /* 0x00000002 -> [arg0+0xc] */ # 2c: b932
s32i a10, a2, 124 /* 0x00000003 -> [arg0+0x7c] */ # 2e: a2621f
s32i a9, a2, 112 /* 0x00000001 -> [arg0+0x70] */ # 31: 92621c
s32i a8, a2, 148 /* 0x00000258 -> [arg0+0x94] */ # 34: 826225
s32i a7, a2, 156 /* 0x00015180 -> [arg0+0x9c] */ # 37: 726227
s32i a6, a2, 164 /* 0x00000000 -> [arg0+0xa4] */ # 3a: 626229
s32i a5, a2, 0 /* 0x00000004 -> [arg0] */ # 3d: 5902
s32i a3, a2, 108 /* 0x0000012c -> [arg0+0x6c] */ # 3f: 32621b
s32i a3, a2, 180 /* 0x0000012c -> [arg0+0xb4] */ # 42: 32622d
s16i a4, a2, 202 /* 0xffff -> [arg0+0xca] */ # 45: 425265
movi a3, -1 /* 0xffffffff */ # 48: 7cf3
s32i a3, a2, 188 /* 0xffffffff -> [arg0+0xbc] */ # 4a: 32622f
ret /* arg0 */ # 4d: 0df0
.literal_position # 50: 00000000
# 54: 00000000
# 58: 00000000
# 5c: 00000000
# Function @ .irom0.text+0x60
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_hostapd_config_defaults
.type sdk_hostapd_config_defaults, @function
sdk_hostapd_config_defaults:
movi a2, 100 /* 0x00000064 */ # 60: 22a064
addi sp, sp, -16 /* (local0) */ # 63: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 66: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 68: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6a: 0901
call0 zalloc # 6c: 01f9ffc0
# 70: 0000
mov a13, a2 # 72: dd02
movi a2, 204 /* 0x000000cc */ # 74: 22a0cc
call0 zalloc # 77: 01f7ffc0
# 7b: 0000
mov a12, a2 # 7d: cd02
beqz a13, .Lbr002 # 7f: bc3d
beqz a2, .Lbr002 # 81: bc12
call0 sdk_hostapd_config_defaults_bss # 83: 050000
s32i a12, a13, 0 # 86: c90d
movi a0, 60 /* 0x0000003c */ # 88: 3cc0
movi a2, 255 /* 0x000000ff */ # 8a: 22a0ff
movi a3, 12 /* 0x0000000c */ # 8d: 0cc3
movi a4, 100 /* 0x00000064 */ # 8f: 42a064
movi a5, 1 /* 0x00000001 */ # 92: 0c15
movi a6, -1 /* 0xffffffff */ # 94: 7cf6
s32i a6, a13, 16 # 96: 694d
s32i a6, a13, 20 # 98: 695d
s32i a5, a13, 8 # 9a: 592d
s8i a5, a13, 24 # 9c: 524d18
s16i a4, a13, 12 # 9f: 425d06
s16i a3, a13, 68 # a2: 325d22
s32i a2, a13, 48 # a5: 29cd
s32i a0, a13, 52 # a7: 09dd
.Lbr001: l32i a0, sp, 0 /* [(local0)] */ # a9: 0801
mov a2, a13 # ab: 2d0d
l32i a12, sp, 4 /* [(local1)] */ # ad: c811
l32i a13, sp, 8 /* [(local2)] */ # af: d821
addi sp, sp, 16 /* (top of frame) */ # b1: 12c110
ret # b4: 0df0
.Lbr002: mov a2, a13 # b6: 2d0d
call0 free # b8: 01e8ffc0
# bc: 0000
mov a2, a12 # be: 2d0c
call0 free # c0: 01e7ffc0
# c4: 0000
movi a13, 0 /* 0x00000000 */ # c6: 0c0d
j .Lbr001 # c8: 46f7ff
.literal_position # cc: 00000000
# Function @ .irom0.text+0xd0
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_hostapd_mac_comp
.type sdk_hostapd_mac_comp, @function
sdk_hostapd_mac_comp:
movi a4, 6 /* 0x00000006 */ # d0: 0c64
addi sp, sp, -16 /* (local0) */ # d2: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # d5: 0901
call0 memcmp # d7: 01fdffc0
# db: 0000
l32i a0, sp, 0 /* [(local0)] */ # dd: 0801
addi sp, sp, 16 /* (top of frame) */ # df: 12c110
ret # e2: 0df0
.literal_position # e4: 00000000
# e8: 00000000
# ec: 00000000
# Function @ .irom0.text+0xf0
# Local variables/stack:
# (local0): word @ -0x8
# (local1): word @ -0x4
.global sdk_hostapd_mac_comp_empty
.type sdk_hostapd_mac_comp_empty, @function
sdk_hostapd_mac_comp_empty:
movi a3, .Ldata001 # f0: 31fdff
movi a4, 6 /* 0x00000006 */ # f3: 0c64
addi sp, sp, -16 /* (FP)-0x10 */ # f5: 12c1f0
s32i a2, sp, 8 /* arg0 -> [(local0)] */ # f8: 2921
s32i a0, sp, 12 /* a0 -> [(local1)] */ # fa: 0931
mov a2, sp /* (FP)-0x10 */ # fc: 2d01
call0 memcpy # fe: 01faffc0
# 102: 0000
l32i a2, sp, 8 /* [(local0)] */ # 104: 2821
mov a3, sp /* (FP)-0x10 */ # 106: 3d01
movi a4, 6 /* 0x00000006 */ # 108: 0c64
call0 memcmp # 10a: 01f8ffc0
# 10e: 0000
l32i a0, sp, 12 /* [(local1)] */ # 110: 0831
addi sp, sp, 16 /* (top of frame) */ # 112: 12c110
ret # 115: 0df0
.literal_position # 118: 00000000
# 11c: 00000000
# 120: 00000000
# Function @ .irom0.text+0x124
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 124: 12c1f0
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 127: 2901
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 129: 0911
movi a2, 48 /* 0x00000030 */ # 12b: 3c02
call0 zalloc # 12d: 01fbffc0
# 131: 0000
l32i a0, sp, 0 /* [(local0)] */ # 133: 0801
s32i a2, a0, 40 /* a2 -> [[(local0)]+0x28] */ # 135: 29a0
bnez a2, .Lbr003 # 137: cc32
movi a2, -1 /* 0xffffffff */ # 139: 7cf2
j .Lbr004 # 13b: 860300
.Lbr003: addi a2, a2, 8 # 13e: 8b22
movi a3, sdk_g_ic+0x2ed # 140: 31f6ff
movi a4, 32 /* 0x00000020 */ # 143: 2c04
call0 memcpy # 145: 01f6ffc0
# 149: 0000
movi a2, 0 /* 0x00000000 */ # 14b: 0c02
.Lbr004: l32i a0, sp, 4 /* [(local1)] */ # 14d: 0811
addi sp, sp, 16 /* (top of frame) */ # 14f: 12c110
ret # 152: 0df0
# Function @ .irom0.text+0x154
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_hostapd_setup_wpa_psk
.type sdk_hostapd_setup_wpa_psk, @function
sdk_hostapd_setup_wpa_psk:
addi sp, sp, -16 /* (local0) */ # 154: 12c1f0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 157: 0911
l32i a0, a2, 60 /* [arg0+0x3c] */ # 159: 08f2
beqz a0, .Lbr007 # 15b: 9ca0
l32i a0, a2, 56 /* [arg0+0x38] */ # 15d: 08e2
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 15f: 2901
bnez a0, .Lbr006 # 161: dc00
addi a2, a2, 16 /* arg0+0x10 */ # 163: 22c210
call0 .Lfunc001 # 166: c5fbff
bgez a2, .Lbr005 # 169: d64200
movi a2, -1 /* 0xffffffff */ # 16c: 7cf2
j .Lbr008 # 16e: 460200
.Lbr005: l32i a0, sp, 0 /* [(local0)] */ # 171: 0801
l32i a0, a0, 56 /* [[(local0)]+0x38] */ # 173: 08e0
.Lbr006: movi a2, 1 /* 0x00000001 */ # 175: 0c12
s32i a2, a0, 4 # 177: 2910
.Lbr007: movi a2, 0 /* 0x00000000 */ # 179: 0c02
.Lbr008: l32i a0, sp, 4 /* [(local1)] */ # 17b: 0811
addi sp, sp, 16 /* (top of frame) */ # 17d: 12c110
ret # 180: 0df0
.literal_position # 184: 00000000
# Function @ .irom0.text+0x188
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_hostapd_wep_key_cmp
.type sdk_hostapd_wep_key_cmp, @function
sdk_hostapd_wep_key_cmp:
addi sp, sp, -16 /* (local0) */ # 188: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 18b: c921
l8ui a4, a3, 0 /* [arg1] */ # 18d: 420300
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 190: 0911
l8ui a0, a2, 0 /* [arg0] */ # 192: 020200
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 195: d931
bne a0, a4, .Lbr011 # 197: 479038
l32i a6, a3, 40 /* [arg1+0x28] */ # 19a: 68a3
l32i a5, a2, 40 /* [arg0+0x28] */ # 19c: 58a2
mov a12, a3 /* arg1 */ # 19e: cd03
bne a5, a6, .Lbr011 # 1a0: 67952f
mov a13, a2 /* arg0 */ # 1a3: dd02
addi a7, a2, 16 /* arg0+0x10 */ # 1a5: 72c210
s32i a7, sp, 0 /* arg0+0x10 -> [(local0)] */ # 1a8: 7901
.Lbr009: l32i a4, a13, 20 # 1aa: 485d
l32i a8, a12, 20 # 1ac: 885c
bne a8, a4, .Lbr011 # 1ae: 479821
l32i a2, a13, 4 # 1b1: 281d
l32i a3, a12, 4 # 1b3: 381c
call0 memcmp # 1b5: 01f3ffc0
# 1b9: 0000
bnez a2, .Lbr011 # 1bb: dc42
addi a12, a12, 4 # 1bd: 4bcc
l32i a9, sp, 0 /* [(local0)] */ # 1bf: 9801
addi a13, a13, 4 # 1c1: 4bdd
bne a13, a9, .Lbr009 # 1c3: 979de3
movi a2, 0 /* 0x00000000 */ # 1c6: 0c02
.Lbr010: l32i a12, sp, 8 /* [(local2)] */ # 1c8: c821
l32i a13, sp, 12 /* [(local3)] */ # 1ca: d831
l32i a0, sp, 4 /* [(local1)] */ # 1cc: 0811
addi sp, sp, 16 /* (top of frame) */ # 1ce: 12c110
ret # 1d1: 0df0
.Lbr011: movi a2, 1 /* 0x00000001 */ # 1d3: 0c12
j .Lbr010 # 1d5: c6fbff
.literal_position # 1d8: 00000000
# Function @ .irom0.text+0x1dc
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word[4] @ -0x10
.global sdk_hostapd_maclist_found
.type sdk_hostapd_maclist_found, @function
sdk_hostapd_maclist_found:
addi sp, sp, -48 /* (local0) */ # 1dc: 12c1d0
s32i a14, sp, 20 /* a14 -> [(local5)] */ # 1df: e951
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 1e1: 0921
s32i a4, sp, 32 /* arg2 -> [(local8)] */ # 1e3: 4981
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 1e5: d941
s32i a15, sp, 24 /* a15 -> [(local6)] */ # 1e7: f961
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 1e9: c931
mov a15, a4 /* arg2 */ # 1eb: fd04
addi a12, a3, -1 /* arg1-0x1 */ # 1ed: 0bc3
bltz a12, .Lbr017 # 1ef: 961c04
movi a13, 0 /* 0x00000000 */ # 1f2: 0c0d
s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 1f4: 5911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1f6: 2901
.Lbr012: movi a4, 6 /* 0x00000006 */ # 1f8: 0c64
add a0, a12, a13 # 1fa: da0c
l32i a3, sp, 0 /* [(local0)] */ # 1fc: 3801
addi a14, a0, 1 # 1fe: 1be0
movgez a14, a0, a0 # 200: 00e0b3
srai a14, a14, 1 # 203: e0e121
addx2 a2, a14, a14 # 206: e02e90
addx4 a2, a2, a3 # 209: 3022a0
mov a3, a15 /* arg2 */ # 20c: 3d0f
s32i a2, sp, 28 /* a2 -> [(local7)] */ # 20e: 2971
call0 memcmp # 210: 01f2ffc0
# 214: 0000
bnez a2, .Lbr014 # 216: ccd2
l32i a2, sp, 4 /* [(local1)] */ # 218: 2811
l32i a3, sp, 28 /* [(local7)] */ # 21a: 3871
beqz a2, .Lbr013 # 21c: 8c22
l32i a3, a3, 8 /* [[(local7)]+0x8] */ # 21e: 3823
s32i a3, a2, 0 /* [[(local7)]+0x8] -> [[(local1)]] */ # 220: 3902
.Lbr013: movi a2, 1 /* 0x00000001 */ # 222: 0c12
j .Lbr018 # 224: 860300
.Lbr014: bgez a2, .Lbr015 # 227: d64200
addi a13, a14, 1 # 22a: 1bde
j .Lbr016 # 22c: 460000
.Lbr015: addi a12, a14, -1 # 22f: 0bce
.Lbr016: bge a12, a13, .Lbr012 # 231: d7acc3
.Lbr017: movi a2, 0 /* 0x00000000 */ # 234: 0c02
.Lbr018: l32i a12, sp, 12 /* [(local3)] */ # 236: c831
l32i a13, sp, 16 /* [(local4)] */ # 238: d841
l32i a14, sp, 20 /* [(local5)] */ # 23a: e851
l32i a15, sp, 24 /* [(local6)] */ # 23c: f861
l32i a0, sp, 8 /* [(local2)] */ # 23e: 0821
addi sp, sp, 48 /* (top of frame) */ # 240: 12c130
ret # 243: 0df0
.balign 4
# Function @ .irom0.text+0x248
.global sdk_hostapd_rate_found
.type sdk_hostapd_rate_found, @function
sdk_hostapd_rate_found:
beqz a2, .Lbr021 # 248: 9c12
l32i a6, a2, 0 /* [arg0] */ # 24a: 6802
bltz a6, .Lbr021 # 24c: 96d600
.Lbr019: bne a6, a3, .Lbr020 # 24f: 379603
movi a2, 1 /* 0x00000001 */ # 252: 0c12
ret /* 0x00000001 */ # 254: 0df0
.Lbr020: l32i a6, a2, 4 # 256: 6812
addi a2, a2, 4 # 258: 4b22
bgez a6, .Lbr019 # 25a: d616ff
.Lbr021: movi a2, 0 /* 0x00000000 */ # 25d: 0c02
ret /* 0x00000000 */ # 25f: 0df0
.literal_position # 264: 00000000
# Function @ .irom0.text+0x268
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_hostapd_get_psk
.type sdk_hostapd_get_psk, @function
sdk_hostapd_get_psk:
addi sp, sp, -32 /* (local0) */ # 268: 12c1e0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 26b: c921
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 26d: d931
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 26f: e941
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 271: 0911
mov a14, a4 /* arg2 */ # 273: ed04
movi a0, 1 /* 0x00000001 */ # 275: 0c10
movi a13, 0 /* 0x00000000 */ # 277: 0c0d
l32i a12, a2, 56 /* [arg0+0x38] */ # 279: c8e2
moveqz a13, a0, a4 # 27b: 40d083
beqz a12, .Lbr025 # 27e: ac9c
s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 280: 3901
.Lbr022: beqz a13, .Lbr024 # 282: 9c8d
l32i a2, a12, 4 # 284: 281c
bnez a2, .Lbr023 # 286: ccf2
addi a2, a12, 40 # 288: 22cc28
l32i a3, sp, 0 /* [(local0)] */ # 28b: 3801
movi a4, 6 /* 0x00000006 */ # 28d: 0c64
call0 memcmp # 28f: 01f5ffc0
# 293: 0000
movi a0, 1 /* 0x00000001 */ # 295: 0c10
bnez a2, .Lbr024 # 297: cc32
.Lbr023: addi a2, a12, 8 # 299: 8b2c
j .Lbr026 # 29b: 860300
.Lbr024: addi a3, a12, 8 # 29e: 8b3c
sub a3, a14, a3 # 2a0: 303ec0
l32i a12, a12, 0 # 2a3: c80c
moveqz a13, a0, a3 # 2a5: 30d083
bnez a12, .Lbr022 # 2a8: 566cfd
.Lbr025: movi a2, 0 /* 0x00000000 */ # 2ab: 0c02
.Lbr026: l32i a12, sp, 8 /* [(local2)] */ # 2ad: c821
l32i a13, sp, 12 /* [(local3)] */ # 2af: d831
l32i a14, sp, 16 /* [(local4)] */ # 2b1: e841
l32i a0, sp, 4 /* [(local1)] */ # 2b3: 0811
addi sp, sp, 32 /* (top of frame) */ # 2b5: 12c120
ret # 2b8: 0df0
.section .rodata, "a", @progbits
.Ldata001: .space 6

308
binary_sdk/libwpa/common.S Normal file
View file

@ -0,0 +1,308 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_inc_byte_array
.type sdk_inc_byte_array, @function
sdk_inc_byte_array:
addi a3, a3, -1 /* arg1-0x1 */ # 0: 0b33
bltz a3, .Lbr002 # 2: 965301
add a3, a3, a2 # 5: 2a33
addi a2, a2, -1 /* arg0-0x1 */ # 7: 0b22
.Lbr001: l8ui a4, a3, 0 # 9: 420300
addi a4, a4, 1 # c: 1b44
extui a4, a4, 0, 8 # e: 404074
s8i a4, a3, 0 # 11: 424300
bnez a4, .Lbr002 # 14: cc34
addi a3, a3, -1 # 16: 0b33
bne a3, a2, .Lbr001 # 18: 2793ed
.Lbr002: ret # 1b: 0df0
.balign 4
# Function @ .irom0.text+0x20
.Lfunc001: movi a3, 47 /* 0x0000002f */ # 20: 2cf3
bgeu a3, a2, .Lbr003 # 22: 27b309
movi a4, 57 /* 0x00000039 */ # 25: 3c94
bltu a4, a2, .Lbr003 # 27: 273404
addi a2, a2, -48 /* arg0-0x30 */ # 2a: 22c2d0
ret /* arg0-0x30 */ # 2d: 0df0
.Lbr003: movi a5, 96 /* 0x00000060 */ # 2f: 52a060
bgeu a5, a2, .Lbr004 # 32: 27b50a
movi a6, 102 /* 0x00000066 */ # 35: 62a066
bltu a6, a2, .Lbr004 # 38: 273604
addi a2, a2, -87 /* arg0-0x57 */ # 3b: 22c2a9
ret /* arg0-0x57 */ # 3e: 0df0
.Lbr004: movi a7, 64 /* 0x00000040 */ # 40: 4c07
bgeu a7, a2, .Lbr005 # 42: 27b709
movi a8, 70 /* 0x00000046 */ # 45: 4c68
bltu a8, a2, .Lbr005 # 47: 273804
addi a2, a2, -55 /* arg0-0x37 */ # 4a: 22c2c9
ret /* arg0-0x37 */ # 4d: 0df0
.Lbr005: movi a2, -1 /* 0xffffffff */ # 4f: 7cf2
ret /* 0xffffffff */ # 51: 0df0
.balign 4
# Function @ .irom0.text+0x54
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_hex2byte
.type sdk_hex2byte, @function
.literal_position
sdk_hex2byte:
addi sp, sp, -16 /* (local0) */ # 54: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 57: c921
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 59: 0911
mov a12, a2 /* arg0 */ # 5b: cd02
l8ui a2, a2, 0 /* [arg0] */ # 5d: 220200
call0 .Lfunc001 # 60: c5fbff
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 63: 2901
bltz a2, .Lbr007 # 65: 969201
l8ui a2, a12, 1 /* [arg0+0x1] */ # 68: 220c01
call0 .Lfunc001 # 6b: 45fbff
bltz a2, .Lbr007 # 6e: 960201
l32i a0, sp, 0 /* [(local0)] */ # 71: 0801
slli a0, a0, 4 # 73: c00011
or a2, a2, a0 # 76: 002220
.Lbr006: l32i a12, sp, 8 /* [(local2)] */ # 79: c821
l32i a0, sp, 4 /* [(local1)] */ # 7b: 0811
addi sp, sp, 16 /* (top of frame) */ # 7d: 12c110
ret # 80: 0df0
.Lbr007: movi a2, -1 /* 0xffffffff */ # 82: 7cf2
j .Lbr006 # 84: 46fcff
.balign 4
# Function @ .irom0.text+0x88
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_hexstr2bin
.type sdk_hexstr2bin, @function
sdk_hexstr2bin:
addi sp, sp, -32 /* (local0) */ # 88: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901
s32i a4, sp, 20 /* arg2 -> [(local5)] */ # 8d: 4951
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 8f: e931
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 91: f941
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 93: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 95: d921
mov a12, a2 /* arg0 */ # 97: cd02
mov a13, a3 /* arg1 */ # 99: dd03
mov a15, a4 /* arg2 */ # 9b: fd04
beqz a4, .Lbr010 # 9d: 9c94
movi a14, 0 /* 0x00000000 */ # 9f: 0c0e
.Lbr008: mov a2, a12 # a1: 2d0c
call0 sdk_hex2byte # a3: 050000
bgez a2, .Lbr009 # a6: d64200
movi a2, -1 /* 0xffffffff */ # a9: 7cf2
j .Lbr011 # ab: 460300
.Lbr009: addi a12, a12, 2 # ae: 2bcc
s8i a2, a13, 0 # b0: 224d00
addi a14, a14, 1 # b3: 1bee
addi a13, a13, 1 # b5: 1bdd
bne a15, a14, .Lbr008 # b7: e79fe6
.Lbr010: movi a2, 0 /* 0x00000000 */ # ba: 0c02
.Lbr011: l32i a12, sp, 4 /* [(local1)] */ # bc: c811
l32i a13, sp, 8 /* [(local2)] */ # be: d821
l32i a14, sp, 12 /* [(local3)] */ # c0: e831
l32i a15, sp, 16 /* [(local4)] */ # c2: f841
l32i a0, sp, 0 /* [(local0)] */ # c4: 0801
addi sp, sp, 32 /* (top of frame) */ # c6: 12c120
ret # c9: 0df0
.literal_position # cc: 00ff0000
# d0: 807eaa83
# d4: c7100000
# d8: 00ff0000
# dc: 00000000
# e0: 00000000
# e4: 00000000
# Function @ .irom0.text+0xe8
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_wpa_get_ntp_timestamp
.type sdk_wpa_get_ntp_timestamp, @function
sdk_wpa_get_ntp_timestamp:
addi sp, sp, -32 /* (local0) */ # e8: 12c1e0
s32i a12, sp, 20 /* a12 -> [(local5)] */ # eb: c951
s32i a0, sp, 16 /* a0 -> [(local4)] */ # ed: 0941
mov a12, a2 /* arg0 */ # ef: cd02
mov a2, sp /* (local0) */ # f1: 2d01
call0 sdk_os_get_time # f3: 01faffc0
# f7: 0000
mov a2, a12 /* arg0 */ # f9: 2d0c
addi a3, sp, 8 /* (local2) */ # fb: 8b31
movi a4, 4 /* 0x00000004 */ # fd: 0c44
movi a8, 0x0000ff00 # ff: 81f3ff
movi a6, 0x000010c7 # 102: 61f4ff
movi a5, 0x83aa7e80 # 105: 51f2ff
l32i a9, sp, 4 /* [(local1)] */ # 108: 9811
l32i a0, sp, 0 /* [(local0)] */ # 10a: 0801
srli a10, a9, 9 # 10c: 90a941
srli a11, a9, 5 # 10f: 90b541
add a0, a0, a5 /* [(local0)]+0x83aa7e80 */ # 112: 5a00
slli a5, a0, 24 # 114: 805001
mull a9, a9, a6 # 117: 609982
and a7, a0, a8 # 11a: 807010
extui a6, a0, 24, 8 # 11d: 006875
sub a9, a9, a11 # 120: b099c0
slli a7, a7, 8 # 123: 807711
or a5, a5, a7 # 126: 705520
sub a9, a9, a10 # 129: a099c0
s32i a9, sp, 12 /* a9 -> [(local3)] */ # 12c: 9931
srli a0, a0, 8 # 12e: 000841
and a0, a0, a8 # 131: 800010
or a0, a0, a6 # 134: 600020
or a0, a0, a5 # 137: 500020
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 13a: 0921
call0 memcpy # 13c: 01e9ffc0
# 140: 0000
addi a2, a12, 4 /* arg0+0x4 */ # 142: 4b2c
addi a3, sp, 8 /* (local2) */ # 144: 8b31
movi a4, 4 /* 0x00000004 */ # 146: 0c44
l32i a9, sp, 12 /* [(local3)] */ # 148: 9831
movi a8, 0x0000ff00 # 14a: 81e3ff
srli a7, a9, 8 # 14d: 907841
and a7, a7, a8 # 150: 807710
and a10, a9, a8 # 153: 80a910
slli a10, a10, 8 # 156: 80aa11
slli a8, a9, 24 # 159: 808901
or a8, a8, a10 # 15c: a08820
extui a9, a9, 24, 8 # 15f: 909875
or a7, a7, a9 # 162: 907720
or a7, a7, a8 # 165: 807720
s32i a7, sp, 8 /* a7 -> [(local2)] */ # 168: 7921
call0 memcpy # 16a: 01deffc0
# 16e: 0000
l32i a12, sp, 20 /* [(local5)] */ # 170: c851
l32i a0, sp, 16 /* [(local4)] */ # 172: 0841
addi sp, sp, 32 /* (top of frame) */ # 174: 12c120
ret # 177: 0df0
.literal_position # 17c: 00000000
# 180: 00000000
# 184: 00000000
# 188: 00000000
# 18c: 00000000
# 190: 00000000
# 194: 00000000
# 198: 00000000
# 19c: 00000000
# 1a0: 00000000
# Function @ .irom0.text+0x1a4
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_wpa_config_parse_string
.type sdk_wpa_config_parse_string, @function
sdk_wpa_config_parse_string:
addi sp, sp, -32 /* (local0) */ # 1a4: 12c1e0
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 1a7: e941
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a9: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1ab: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1ad: c921
mov a13, a3 /* arg1 */ # 1af: dd03
mov a12, a2 /* arg0 */ # 1b1: cd02
l8ui a0, a2, 0 /* [arg0] */ # 1b3: 020200
movi a2, 34 /* 0x00000022 */ # 1b6: 2c22
bne a0, a2, .Lbr012 # 1b8: 27901a
mov a2, a12 /* arg0 */ # 1bb: 2d0c
call0 strlen # 1bd: 01efffc0
# 1c1: 0000
addi a3, a2, -7 # 1c3: 32c2f9
beqz a3, .Lbr018 # 1c6: 169308
mov a2, a12 /* arg0 */ # 1c9: 2d0c
call0 strlen # 1cb: 01edffc0
# 1cf: 0000
movi a4, 15 /* 0x0000000f */ # 1d1: 0cf4
beq a2, a4, .Lbr018 # 1d3: 47127c
.Lbr012: mov a2, a12 /* arg0 */ # 1d6: 2d0c
call0 strlen # 1d8: 01ebffc0
# 1dc: 0000
beqi a2, 5, .Lbr017 # 1de: 26524f
movi a5, 13 /* 0x0000000d */ # 1e1: 0cd5
beq a2, a5, .Lbr017 # 1e3: 57124a
beqi a2, 10, .Lbr013 # 1e6: 269204
movi a6, 26 /* 0x0000001a */ # 1e9: 1ca6
bne a2, a6, .Lbr014 # 1eb: 679223
.Lbr013: srli a2, a2, 1 # 1ee: 202141
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1f1: 2901
addi a2, a2, 1 # 1f3: 1b22
call0 malloc # 1f5: 01e4ffc0
# 1f9: 0000
mov a14, a2 # 1fb: ed02
beqz a2, .Lbr014 # 1fd: 9c12
mov a2, a12 /* arg0 */ # 1ff: 2d0c
mov a3, a14 # 201: 3d0e
l32i a4, sp, 0 /* [(local0)] */ # 203: 4801
call0 sdk_hexstr2bin # 205: 050000
beqz a2, .Lbr015 # 208: 8cb2
mov a2, a14 # 20a: 2d0e
call0 free # 20c: 01e0ffc0
# 210: 0000
.Lbr014: movi a14, 0 /* 0x00000000 */ # 212: 0c0e
j .Lbr016 # 214: 860200
.Lbr015: l32i a3, sp, 0 /* [(local0)] */ # 217: 3801
movi a4, 0 /* 0x00000000 */ # 219: 0c04
add a5, a3, a14 # 21b: ea53
s8i a4, a5, 0 # 21d: 424500
s32i a3, a13, 0 /* [(local0)] -> [arg1] */ # 220: 390d
.Lbr016: l32i a0, sp, 4 /* [(local1)] */ # 222: 0811
l32i a12, sp, 8 /* [(local2)] */ # 224: c821
mov a2, a14 # 226: 2d0e
l32i a13, sp, 12 /* [(local3)] */ # 228: d831
l32i a14, sp, 16 /* [(local4)] */ # 22a: e841
addi sp, sp, 32 /* (top of frame) */ # 22c: 12c120
ret # 22f: 0df0
.Lbr017: s32i a2, a13, 0 /* a2 -> [arg1] */ # 231: 290d
addi a2, a2, 1 # 233: 1b22
call0 malloc # 235: 01d6ffc0
# 239: 0000
mov a3, a12 /* arg0 */ # 23b: 3d0c
mov a14, a2 # 23d: ed02
l32i a4, a13, 0 /* [arg1] */ # 23f: 480d
call0 memcpy # 241: 01d4ffc0
# 245: 0000
l32i a7, a13, 0 /* [arg1] */ # 247: 780d
movi a6, 0 /* 0x00000000 */ # 249: 0c06
add a7, a7, a14 # 24b: ea77
s8i a6, a7, 0 # 24d: 624700
j .Lbr016 # 250: 86f3ff
.Lbr018: movi a3, 34 /* 0x00000022 */ # 253: 2c23
addi a14, a12, 1 /* arg0+0x1 */ # 255: 1bec
mov a2, a14 /* arg0+0x1 */ # 257: 2d0e
call0 strrchr # 259: 01cfffc0
# 25d: 0000
beqz a2, .Lbr014 # 25f: 16f2fa
sub a2, a2, a12 # 262: c022c0
addi a8, a2, -1 # 265: 0b82
s32i a8, a13, 0 /* a8 -> [arg1] */ # 267: 890d
call0 malloc # 269: 01ccffc0
# 26d: 0000
mov a12, a2 # 26f: cd02
beqz a2, .Lbr014 # 271: 16d2f9
mov a3, a14 /* arg0+0x1 */ # 274: 3d0e
l32i a4, a13, 0 /* [arg1] */ # 276: 480d
call0 memcpy # 278: 01caffc0
# 27c: 0000
mov a14, a12 # 27e: ed0c
l32i a10, a13, 0 /* [arg1] */ # 280: a80d
movi a9, 0 /* 0x00000000 */ # 282: 0c09
add a10, a10, a12 # 284: caaa
s8i a9, a10, 0 # 286: 924a00
j .Lbr016 # 289: 46e5ff

View file

@ -0,0 +1,62 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_ieee802_1x_receive
.type sdk_ieee802_1x_receive, @function
sdk_ieee802_1x_receive:
addi sp, sp, -16 /* (local0) */ # 8: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # d: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # f: c911
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 11: e931
mov a12, a4 /* arg2 */ # 13: cd04
mov a14, a5 /* arg3 */ # 15: ed05
mov a13, a2 /* arg0 */ # 17: dd02
call0 ap_get_sta # 19: 01f9ffc0
# 1d: 0000
mov a0, a2 # 1f: 0d02
beqz a2, .Lbr002 # 21: 161205
l32i a2, a2, 16 # 24: 2842
movi a3, 258 /* 0x00000102 */ # 26: 32a102
bnone a2, a3, .Lbr002 # 29: 370249
bltui a14, 4, .Lbr002 # 2c: b64e46
addi a4, a14, -4 /* arg3-0x4 */ # 2f: 42cefc
l8ui a6, a12, 3 /* [arg2+0x3] */ # 32: 620c03
l8ui a7, a12, 2 /* [arg2+0x2] */ # 35: 720c02
slli a6, a6, 8 # 38: 806611
or a6, a6, a7 # 3b: 706620
extui a5, a6, 8, 8 # 3e: 605874
extui a6, a6, 0, 8 # 41: 606074
slli a6, a6, 8 # 44: 806611
or a5, a5, a6 # 47: 605520
extui a5, a5, 0, 16 # 4a: 5050f4
bltu a4, a5, .Lbr002 # 4d: 573425
movi a7, 43 /* 0x0000002b */ # 50: 2cb7
bgeu a7, a5, .Lbr002 # 52: 57b720
l8ui a8, a12, 1 /* [arg2+0x1] */ # 55: 820c01
l8ui a2, a12, 4 /* [arg2+0x4] */ # 58: 220c04
bnei a8, 3, .Lbr002 # 5b: 663817
movi a9, 254 /* 0x000000fe */ # 5e: 92a0fe
beq a2, a9, .Lbr001 # 61: 971202
bnei a2, 2, .Lbr002 # 64: 66220e
.Lbr001: mov a4, a12 /* arg2 */ # 67: 4d0c
l32i a2, a13, 24 /* [arg0+0x18] */ # 69: 286d
addi a5, a5, 4 # 6b: 4b55
l32i a3, a0, 68 # 6d: 322011
call0 sdk_wpa_receive # 70: 01e5ffc0
# 74: 0000
.Lbr002: l32i a12, sp, 4 /* [(local1)] */ # 76: c811
l32i a13, sp, 8 /* [(local2)] */ # 78: d821
l32i a14, sp, 12 /* [(local3)] */ # 7a: e831
l32i a0, sp, 0 /* [(local0)] */ # 7c: 0801
addi sp, sp, 16 /* (top of frame) */ # 7e: 12c110
ret # 81: 0df0

File diff suppressed because it is too large Load diff

164
binary_sdk/libwpa/md5.S Normal file
View file

@ -0,0 +1,164 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# Function @ .irom0.text+0x1c
# Local variables/stack:
# (local0): word @ -0x80
# (local1): word[7] @ -0x7c
# (local2): word @ -0x60
# (local3): word[7] @ -0x5c
# (local4): word @ -0x40
# (local5): word @ -0x3c
# (local6): word @ -0x38
# (local7): word @ -0x34
# (local8): word @ -0x30
# (local9): word[3] @ -0x2c
# (local10): word @ -0x20
# (local11): word[7] @ -0x1c
.global sdk_hmac_md5_vector
.type sdk_hmac_md5_vector, @function
sdk_hmac_md5_vector:
movi a8, 208 /* 0x000000d0 */ # 1c: 82a0d0
sub sp, sp, a8 /* (FP)-0xd0 */ # 1f: 8011c0
s32i a3, sp, 180 /* arg1 -> [(local11)] */ # 22: 32612d
s32i a2, sp, 176 /* arg0 -> [(local10)] */ # 25: 22612c
s32i a0, sp, 148 /* a0 -> [(local5)] */ # 28: 026125
s32i a13, sp, 156 /* a13 -> [(local7)] */ # 2b: d26127
s32i a12, sp, 152 /* a12 -> [(local6)] */ # 2e: c26126
s32i a14, sp, 160 /* a14 -> [(local8)] */ # 31: e26128
mov a12, a5 /* arg3 */ # 34: cd05
mov a14, a4 /* arg2 */ # 36: ed04
mov a13, a6 /* arg4 */ # 38: dd06
movi a0, 180 /* 0x000000b4 */ # 3a: 02a0b4
add a0, sp, a0 /* (local11) */ # 3d: 0a01
movi a6, 176 /* 0x000000b0 */ # 3f: 62a0b0
add a6, sp, a6 /* (local10) */ # 42: 6a61
bltui a4, 6, .Lbr001 # 44: b66402
j .Lbr006 # 47: 062500
.Lbr001: s32i a7, sp, 144 /* arg5 -> [(local4)] */ # 4a: 726124
movi a2, 64 /* 0x00000040 */ # 4d: 4c02
bgeu a2, a3, .Lbr002 # 4f: 37b218
mov a3, a6 /* (local10) */ # 52: 3d06
movi a2, 1 /* 0x00000001 */ # 54: 0c12
mov a5, sp /* (FP)-0xd0 */ # 56: 5d01
mov a4, a0 /* (local11) */ # 58: 4d00
call0 sdk_md5_vector # 5a: 01e9ffc0
# 5e: 0000
bnez a2, .Lbr006 # 60: 56b207
s32i sp, sp, 176 /* (FP)-0xd0 -> [(local10)] */ # 63: 12612c
movi a6, 16 /* 0x00000010 */ # 66: 1c06
s32i a6, sp, 180 /* 0x00000010 -> [(local11)] */ # 68: 62612d
.Lbr002: addi a2, sp, 16 /* (FP)-0xc0 */ # 6b: 22c110
movi a3, 0 /* 0x00000000 */ # 6e: 0c03
movi a4, 64 /* 0x00000040 */ # 70: 4c04
call0 memset # 72: 01e4ffc0
# 76: 0000
l32i a3, sp, 176 /* [(local10)] */ # 78: 32212c
l32i a4, sp, 180 /* [(local11)] */ # 7b: 42212d
addi a2, sp, 16 /* (FP)-0xc0 */ # 7e: 22c110
s32i a14, sp, 164 /* arg2 -> [(local9)] */ # 81: e26129
call0 memcpy # 84: 01e1ffc0
# 88: 0000
l32i a4, sp, 164 /* [(local9)] */ # 8a: 422129
addi a0, sp, 16 /* (FP)-0xc0 */ # 8d: 02c110
addi a14, sp, 80 /* (local0) */ # 90: e2c150
movi a2, 54 /* 0x00000036 */ # 93: 3c62
movi a6, 64 /* 0x00000040 */ # 95: 4c06
s32i a6, sp, 112 /* 0x00000040 -> [(local2)] */ # 97: 62611c
addi a6, sp, 16 /* (FP)-0xc0 */ # 9a: 62c110
s32i a6, sp, 80 /* (FP)-0xc0 -> [(local0)] */ # 9d: 626114
.Lbr003: l8ui a5, a0, 0 # a0: 520000
xor a5, a5, a2 # a3: 205530
s8i a5, a0, 0 # a6: 524000
addi a0, a0, 1 # a9: 1b00
bne a0, a14, .Lbr003 # ab: e790f1
beqz a4, .Lbr005 # ae: 9ca4
addi a0, sp, 112 /* (local2) */ # b0: 02c170
addi a2, sp, 80 /* (local0) */ # b3: 22c150
addx4 a3, a4, a12 # b6: c034a0
.Lbr004: l32i a7, a13, 0 # b9: 780d
l32i a8, a12, 0 # bb: 880c
addi a13, a13, 4 # bd: 4bdd
addi a12, a12, 4 # bf: 4bcc
s32i a8, a2, 4 # c1: 8912
s32i a7, a0, 4 # c3: 7910
addi a2, a2, 4 # c5: 4b22
addi a0, a0, 4 # c7: 4b00
bne a12, a3, .Lbr004 # c9: 379cec
.Lbr005: addi a3, sp, 80 /* (local0) */ # cc: 32c150
addi a2, a4, 1 /* [(local9)]+0x1 */ # cf: 1b24
l32i a5, sp, 144 /* [(local4)] */ # d1: 522124
addi a4, sp, 112 /* (local2) */ # d4: 42c170
call0 sdk_md5_vector # d7: 01cdffc0
# db: 0000
beqz a2, .Lbr007 # dd: 8c32
.Lbr006: movi a2, -1 /* 0xffffffff */ # df: 7cf2
j .Lbr009 # e1: 861400
.Lbr007: addi a2, sp, 16 /* (FP)-0xc0 */ # e4: 22c110
movi a3, 0 /* 0x00000000 */ # e7: 0c03
movi a4, 64 /* 0x00000040 */ # e9: 4c04
call0 memset # eb: 01c9ffc0
# ef: 0000
l32i a3, sp, 176 /* [(local10)] */ # f1: 32212c
l32i a4, sp, 180 /* [(local11)] */ # f4: 42212d
addi a2, sp, 16 /* (FP)-0xc0 */ # f7: 22c110
call0 memcpy # fa: 01c6ffc0
# fe: 0000
addi a0, sp, 16 /* (FP)-0xc0 */ # 100: 02c110
movi a2, 92 /* 0x0000005c */ # 103: 5cc2
.Lbr008: l8ui a5, a0, 0 # 105: 520000
xor a5, a5, a2 # 108: 205530
s8i a5, a0, 0 # 10b: 524000
addi a0, a0, 1 # 10e: 1b00
bne a0, a14, .Lbr008 # 110: e790f1
movi a2, 2 /* 0x00000002 */ # 113: 0c22
addi a3, sp, 80 /* (local0) */ # 115: 32c150
addi a4, sp, 112 /* (local2) */ # 118: 42c170
movi a6, 16 /* 0x00000010 */ # 11b: 1c06
l32i a5, sp, 144 /* [(local4)] */ # 11d: 522124
movi a7, 64 /* 0x00000040 */ # 120: 4c07
addi a8, sp, 16 /* (FP)-0xc0 */ # 122: 82c110
s32i a8, sp, 80 /* (FP)-0xc0 -> [(local0)] */ # 125: 826114
s32i a7, sp, 112 /* 0x00000040 -> [(local2)] */ # 128: 72611c
s32i a5, sp, 84 /* [(local4)] -> [(local1)] */ # 12b: 526115
s32i a6, sp, 116 /* 0x00000010 -> [(local3)] */ # 12e: 62611d
call0 sdk_md5_vector # 131: 01b9ffc0
# 135: 0000
.Lbr009: l32i a12, sp, 152 /* [(local6)] */ # 137: c22126
l32i a13, sp, 156 /* [(local7)] */ # 13a: d22127
l32i a14, sp, 160 /* [(local8)] */ # 13d: e22128
movi a3, 208 /* 0x000000d0 */ # 140: 32a0d0
l32i a0, sp, 148 /* [(local5)] */ # 143: 022125
add sp, sp, a3 /* (top of frame) */ # 146: 3a11
ret # 148: 0df0
.balign 4
# Function @ .irom0.text+0x14c
# Local variables/stack:
# (local0): word[6] @ -0x30
# (local1): word @ -0x18
# (local2): word[5] @ -0x14
.global sdk_hmac_md5
.type sdk_hmac_md5, @function
sdk_hmac_md5:
mov a7, a6 /* arg4 */ # 14c: 7d06
mov a9, a5 /* arg3 */ # 14e: 9d05
addi sp, sp, -48 /* (local0) */ # 150: 12c1d0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 153: 0901
s32i a4, sp, 24 /* arg2 -> [(local1)] */ # 155: 4961
addi a5, sp, 24 /* (local1) */ # 157: 52c118
addi a6, sp, 28 /* (local2) */ # 15a: 62c11c
s32i a9, sp, 28 /* arg3 -> [(local2)] */ # 15d: 9971
movi a4, 1 /* 0x00000001 */ # 15f: 0c14
call0 sdk_hmac_md5_vector # 161: 050000
l32i a0, sp, 0 /* [(local0)] */ # 164: 0801
addi sp, sp, 48 /* (top of frame) */ # 166: 12c130
ret # 169: 0df0

View file

@ -0,0 +1,65 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_os_get_time
.type sdk_os_get_time, @function
sdk_os_get_time:
movi a2, 0 /* 0x00000000 */ # 0: 0c02
ret /* 0x00000000 */ # 2: 0df0
.literal_position # 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.global os_random
.type os_random, @function
os_random: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901
call0 rand # d: 01fdffc0
# 11: 0000
l32i a0, sp, 0 /* [(local0)] */ # 13: 0801
addi sp, sp, 16 /* (top of frame) */ # 15: 12c110
ret # 18: 0df0
.literal_position # 1c: 00000000
# 20: 00000000
# Function @ .irom0.text+0x24
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global os_get_random
.type os_get_random, @function
os_get_random:
addi sp, sp, -32 /* (local0) */ # 24: 12c1e0
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 27: 0911
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 29: d931
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2b: c921
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 2d: e941
mov a12, a2 /* arg0 */ # 2f: cd02
srli a14, a3, 2 # 31: 30e241
blti a14, 1, .Lbr002 # 34: a61e1c
movi a13, 0 /* 0x00000000 */ # 37: 0c0d
.Lbr001: call0 rand # 39: 01f8ffc0
# 3d: 0000
mov a3, sp /* (local0) */ # 3f: 3d01
s32i a2, sp, 0 /* a2 -> [(local0)] */ # 41: 2901
movi a4, 4 /* 0x00000004 */ # 43: 0c44
mov a2, a12 # 45: 2d0c
call0 memcpy # 47: 01f6ffc0
# 4b: 0000
addi a12, a12, 4 # 4d: 4bcc
addi a13, a13, 1 # 4f: 1bdd
bne a13, a14, .Lbr001 # 51: e79de4
.Lbr002: movi a2, 0 /* 0x00000000 */ # 54: 0c02
l32i a12, sp, 8 /* [(local2)] */ # 56: c821
l32i a13, sp, 12 /* [(local3)] */ # 58: d831
l32i a14, sp, 16 /* [(local4)] */ # 5a: e841
l32i a0, sp, 4 /* [(local1)] */ # 5c: 0811
addi sp, sp, 32 /* (top of frame) */ # 5e: 12c120
ret /* 0x00000000 */ # 61: 0df0

100
binary_sdk/libwpa/rc4.S Normal file
View file

@ -0,0 +1,100 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_rc4_skip
.type sdk_rc4_skip, @function
sdk_rc4_skip:
movi a10, 0 /* 0x00000000 */ # 0: 0c0a
movi a9, 0 /* 0x00000000 */ # 2: 0c09
movi a7, 288 /* 0x00000120 */ # 4: 72a120
sub sp, sp, a7 /* (FP)-0x120 */ # 7: 7011c0
s32i a12, sp, 0x108 /* a12 -> [(local2)] */ # a: c26142
s32i a14, sp, 0x110 /* a14 -> [(local4)] */ # d: e26144
s32i a13, sp, 0x10c /* a13 -> [(local3)] */ # 10: d26143
s32i a5, sp, 0x100 /* arg3 -> [(local0)] */ # 13: 526140
s32i a0, sp, 0x104 /* a0 -> [(local1)] */ # 16: 026141
mov a0, sp /* (FP)-0x120 */ # 19: 0d01
.Lbr001: s8i a10, a0, 0 # 1b: a24000
addi a0, a0, 1 # 1e: 1b00
addi a10, a10, 1 # 20: 1baa
bnei a10, 0x100, .Lbr001 # 22: 66faf5
movi a5, 0 /* 0x00000000 */ # 25: 0c05
mov a13, sp /* (FP)-0x120 */ # 27: dd01
addmi a14, sp, 256 /* (local0) */ # 29: e2d101
mov a0, sp /* (FP)-0x120 */ # 2c: 0d01
movi a10, 0 /* 0x00000000 */ # 2e: 0c0a
add a12, a2, a10 /* arg0 */ # 30: aac2
.Lbr002: l8ui a11, a0, 0 # 32: b20000
l8ui a12, a12, 0 # 35: c20c00
add a9, a11, a9 # 38: 9a9b
add a9, a12, a9 # 3a: 9a9c
addi a12, a10, 1 # 3c: 1bca
extui a9, a9, 0, 8 # 3e: 909074
mov a10, a5 /* 0x00000000 */ # 41: ad05
add a7, a9, a13 # 43: da79
l8ui a8, a7, 0 # 45: 820700
s8i a8, a0, 0 # 48: 824000
s8i a11, a7, 0 # 4b: b24700
addi a0, a0, 1 # 4e: 1b00
bgeu a12, a3, .Lbr003 # 50: 37bc01
mov a10, a12 # 53: ad0c
.Lbr003: add a12, a2, a10 # 55: aac2
bne a0, a14, .Lbr002 # 57: e790d7
l32i a5, sp, 0x100 /* [(local0)] */ # 5a: 522140
beqz a4, .Lbr005 # 5d: ac64
movi a10, 0 /* 0x00000000 */ # 5f: 0c0a
movi a9, 0 /* 0x00000000 */ # 61: 0c09
movi a0, 0 /* 0x00000000 */ # 63: 0c00
.Lbr004: addi a10, a10, 1 # 65: 1baa
extui a10, a10, 0, 8 # 67: a0a074
add a2, a10, a13 # 6a: da2a
l8ui a11, a2, 0 # 6c: b20200
addi a0, a0, 1 # 6f: 1b00
add a9, a11, a9 # 71: 9a9b
extui a9, a9, 0, 8 # 73: 909074
add a12, a9, a13 # 76: dac9
l8ui a14, a12, 0 # 78: e20c00
s8i a14, a2, 0 # 7b: e24200
s8i a11, a12, 0 # 7e: b24c00
bne a4, a0, .Lbr004 # 81: 0794e0
j .Lbr006 # 84: c60000
.Lbr005: movi a9, 0 /* 0x00000000 */ # 87: 0c09
movi a10, 0 /* 0x00000000 */ # 89: 0c0a
.Lbr006: beqz a6, .Lbr008 # 8b: bc76
movi a0, 0 /* 0x00000000 */ # 8d: 0c00
.Lbr007: addi a10, a10, 1 # 8f: 1baa
extui a10, a10, 0, 8 # 91: a0a074
add a12, a10, a13 # 94: daca
l8ui a14, a12, 0 # 96: e20c00
add a9, a14, a9 # 99: 9a9e
extui a9, a9, 0, 8 # 9b: 909074
add a2, a9, a13 # 9e: da29
l8ui a3, a2, 0 # a0: 320200
s8i a3, a12, 0 # a3: 324c00
s8i a14, a2, 0 # a6: e24200
l8ui a12, a12, 0 # a9: c20c00
l8ui a11, a5, 0 # ac: b20500
add a12, a12, a14 # af: eacc
extui a12, a12, 0, 8 # b1: c0c074
add a12, a13, a12 # b4: cacd
l8ui a12, a12, 0 # b6: c20c00
addi a0, a0, 1 # b9: 1b00
xor a11, a11, a12 # bb: c0bb30
s8i a11, a5, 0 # be: b24500
addi a5, a5, 1 # c1: 1b55
bne a6, a0, .Lbr007 # c3: 0796c8
.Lbr008: movi a2, 0 /* 0x00000000 */ # c6: 0c02
l32i a12, sp, 0x108 /* [(local2)] */ # c8: c22142
l32i a13, sp, 0x10c /* [(local3)] */ # cb: d22143
l32i a14, sp, 0x110 /* [(local4)] */ # ce: e22144
movi a3, 288 /* 0x00000120 */ # d1: 32a120
l32i a0, sp, 0x104 /* [(local1)] */ # d4: 022141
add sp, sp, a3 /* (top of frame) */ # d7: 3a11
ret /* 0x00000000 */ # d9: 0df0

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,176 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# Function @ .irom0.text+0x14
# Local variables/stack:
# (local0): word @ -0x90
# (local1): word @ -0x8c
# (local2): word @ -0x88
# (local3): word @ -0x84
# (local4): byte @ -0x80
# (local5): byte @ -0x7f
# (local6): byte @ -0x7e
# (local7): byte[77] @ -0x7d
# (local8): word @ -0x30
# (local9): word @ -0x2c
# (local10): word @ -0x28
# (local11): word @ -0x24
# (local12): word @ -0x20
# (local13): word @ -0x1c
# (local14): word @ -0x18
# (local15): word @ -0x14
# (local16): word[4] @ -0x10
.Lfunc001: movi a8, 144 /* 0x00000090 */ # 14: 82a090
sub sp, sp, a8 /* (local0) */ # 17: 8011c0
s32i a5, sp, 124 /* arg3 -> [(local15)] */ # 1a: 52611f
s32i a7, sp, 96 /* arg5 -> [(local8)] */ # 1d: 726118
s32i a0, sp, 100 /* a0 -> [(local9)] */ # 20: 026119
s32i a3, sp, 128 /* arg1 -> [(local16)] */ # 23: 326120
s32i a15, sp, 116 /* a15 -> [(local13)] */ # 26: f2611d
s32i a14, sp, 112 /* a14 -> [(local12)] */ # 29: e2611c
s32i a12, sp, 104 /* a12 -> [(local10)] */ # 2c: c2611a
s32i a13, sp, 108 /* a13 -> [(local11)] */ # 2f: d2611b
mov a12, a6 /* arg4 */ # 32: cd06
mov a13, a4 /* arg2 */ # 34: dd04
mov a14, a2 /* arg0 */ # 36: ed02
l32i a15, sp, 128 /* [(local16)] */ # 38: f22120
call0 strlen # 3b: 01f1ffc0
# 3f: 0000
s32i a15, sp, 0 /* [(local16)] -> [(local0)] */ # 41: f901
s32i a13, sp, 8 /* arg2 -> [(local2)] */ # 43: d921
addi a6, sp, 8 /* (local2) */ # 45: 8b61
addi a7, sp, 32 /* (FP)-0x70 */ # 47: 72c120
s8i a12, sp, 19 /* arg4 -> [(local7)] */ # 4a: c24113
extui a5, a12, 24, 8 # 4d: c05875
extui a4, a12, 16, 16 # 50: c040f5
srli a3, a12, 8 # 53: c03841
movi a0, 4 /* 0x00000004 */ # 56: 0c40
s32i a0, sp, 12 /* 0x00000004 -> [(local3)] */ # 58: 0931
s8i a3, sp, 18 /* a3 -> [(local6)] */ # 5a: 324112
s8i a4, sp, 17 /* a4 -> [(local5)] */ # 5d: 424111
s8i a5, sp, 16 /* a5 -> [(local4)] */ # 60: 524110
movi a4, 2 /* 0x00000002 */ # 63: 0c24
mov a5, sp /* (local0) */ # 65: 5d01
mov a12, a2 # 67: cd02
addi a2, sp, 16 /* (local4) */ # 69: 22c110
mov a3, a12 # 6c: 3d0c
s32i a2, sp, 4 /* (local4) -> [(local1)] */ # 6e: 2911
mov a2, a14 /* arg0 */ # 70: 2d0e
call0 sdk_hmac_sha1_vector # 72: 01e4ffc0
# 76: 0000
bnez a2, .Lbr005 # 78: 569207
addi a3, sp, 32 /* (FP)-0x70 */ # 7b: 32c120
movi a4, 20 /* 0x00000014 */ # 7e: 1c44
l32i a15, sp, 96 /* [(local8)] */ # 80: f22118
s32i a12, sp, 120 /* a12 -> [(local14)] */ # 83: c2611e
mov a2, a15 /* [(local8)] */ # 86: 2d0f
call0 memcpy # 88: 01e0ffc0
# 8c: 0000
l32i a6, sp, 124 /* [(local15)] */ # 8e: 62211f
blti a6, 2, .Lbr003 # 91: a62648
addi a12, a15, 20 /* [(local8)]+0x14 */ # 94: c2cf14
movi a13, 1 /* 0x00000001 */ # 97: 0c1d
.Lbr001: mov a2, a14 /* arg0 */ # 99: 2d0e
l32i a3, sp, 120 /* [(local14)] */ # 9b: 32211e
addi a4, sp, 32 /* (FP)-0x70 */ # 9e: 42c120
movi a5, 20 /* 0x00000014 */ # a1: 1c45
addi a6, sp, 64 /* (FP)-0x50 */ # a3: 62c140
call0 sdk_hmac_sha1 # a6: 01d9ffc0
# aa: 0000
bnez a2, .Lbr005 # ac: 565204
addi a2, sp, 32 /* (FP)-0x70 */ # af: 22c120
addi a3, sp, 64 /* (FP)-0x50 */ # b2: 32c140
movi a4, 20 /* 0x00000014 */ # b5: 1c44
call0 memcpy # b7: 01d6ffc0
# bb: 0000
mov a2, a15 /* [(local8)] */ # bd: 2d0f
addi a0, sp, 64 /* (FP)-0x50 */ # bf: 02c140
l32i a9, sp, 124 /* [(local15)] */ # c2: 92211f
addi a13, a13, 1 # c5: 1bdd
.Lbr002: l8ui a7, a2, 0 # c7: 720200
l8ui a8, a0, 0 # ca: 820000
addi a0, a0, 1 # cd: 1b00
xor a7, a7, a8 # cf: 807730
s8i a7, a2, 0 # d2: 724200
addi a2, a2, 1 # d5: 1b22
bne a2, a12, .Lbr002 # d7: c792ec
bne a9, a13, .Lbr001 # da: d799bb
.Lbr003: movi a2, 0 /* 0x00000000 */ # dd: 0c02
.Lbr004: l32i a12, sp, 104 /* [(local10)] */ # df: c2211a
l32i a13, sp, 108 /* [(local11)] */ # e2: d2211b
l32i a14, sp, 112 /* [(local12)] */ # e5: e2211c
l32i a15, sp, 116 /* [(local13)] */ # e8: f2211d
movi a3, 144 /* 0x00000090 */ # eb: 32a090
l32i a0, sp, 100 /* [(local9)] */ # ee: 022119
add sp, sp, a3 /* (top of frame) */ # f1: 3a11
ret # f3: 0df0
.Lbr005: movi a2, -1 /* 0xffffffff */ # f5: 7cf2
j .Lbr004 # f7: 06f9ff
.literal_position # fc: 00000000
# Function @ .irom0.text+0x100
# Local variables/stack:
# (local0): word @ -0x30
# (local1): word @ -0x2c
# (local2): word @ -0x28
# (local3): word @ -0x24
# (local4): word @ -0x20
# (local5): word @ -0x1c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word[4] @ -0x10
.global sdk_pbkdf2_sha1
.type sdk_pbkdf2_sha1, @function
sdk_pbkdf2_sha1:
addi sp, sp, -80 /* (FP)-0x50 */ # 100: 12c1b0
s32i a14, sp, 44 /* a14 -> [(local3)] */ # 103: e9b1
s32i a0, sp, 32 /* a0 -> [(local0)] */ # 105: 0981
s32i a2, sp, 52 /* arg0 -> [(local5)] */ # 107: 29d1
s32i a3, sp, 56 /* arg1 -> [(local6)] */ # 109: 39e1
s32i a4, sp, 60 /* arg2 -> [(local7)] */ # 10b: 49f1
s32i a5, sp, 64 /* arg3 -> [(local8)] */ # 10d: 526110
s32i a15, sp, 48 /* a15 -> [(local4)] */ # 110: f9c1
s32i a13, sp, 40 /* a13 -> [(local2)] */ # 112: d9a1
s32i a12, sp, 36 /* a12 -> [(local1)] */ # 114: c991
mov a13, a6 /* arg4 */ # 116: dd06
mov a12, a7 /* arg5 */ # 118: cd07
beqz a7, .Lbr009 # 11a: bc67
movi a15, 0 /* 0x00000000 */ # 11c: 0c0f
.Lbr006: l32i a2, sp, 52 /* [(local5)] */ # 11e: 28d1
l32i a3, sp, 56 /* [(local6)] */ # 120: 38e1
l32i a4, sp, 60 /* [(local7)] */ # 122: 48f1
l32i a5, sp, 64 /* [(local8)] */ # 124: 522110
mov a7, sp /* (FP)-0x50 */ # 127: 7d01
addi a15, a15, 1 # 129: 1bff
mov a6, a15 # 12b: 6d0f
call0 .Lfunc001 # 12d: 45eeff
beqz a2, .Lbr007 # 130: 8c32
movi a2, -1 /* 0xffffffff */ # 132: 7cf2
j .Lbr010 # 134: 860700
.Lbr007: movi a2, 20 /* 0x00000014 */ # 137: 1c42
mov a14, a2 /* 0x00000014 */ # 139: ed02
bltu a2, a12, .Lbr008 # 13b: c73201
mov a14, a12 # 13e: ed0c
.Lbr008: mov a2, a13 # 140: 2d0d
mov a3, sp /* (FP)-0x50 */ # 142: 3d01
mov a4, a14 # 144: 4d0e
call0 memcpy # 146: 01edffc0
# 14a: 0000
add a13, a13, a14 # 14c: eadd
sub a12, a12, a14 # 14e: e0ccc0
bnez a12, .Lbr006 # 151: 569cfc
.Lbr009: movi a2, 0 /* 0x00000000 */ # 154: 0c02
.Lbr010: l32i a12, sp, 36 /* [(local1)] */ # 156: c891
l32i a13, sp, 40 /* [(local2)] */ # 158: d8a1
l32i a14, sp, 44 /* [(local3)] */ # 15a: e8b1
l32i a15, sp, 48 /* [(local4)] */ # 15c: f8c1
l32i a0, sp, 32 /* [(local0)] */ # 15e: 0881
addi sp, sp, 80 /* (top of frame) */ # 160: 12c150
ret # 163: 0df0

266
binary_sdk/libwpa/sha1.S Normal file
View file

@ -0,0 +1,266 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# Function @ .irom0.text+0x1c
# Local variables/stack:
# (local0): word @ -0x80
# (local1): word[7] @ -0x7c
# (local2): word @ -0x60
# (local3): word[7] @ -0x5c
# (local4): word @ -0x40
# (local5): word @ -0x3c
# (local6): word @ -0x38
# (local7): word @ -0x34
# (local8): word @ -0x30
# (local9): word[3] @ -0x2c
# (local10): word @ -0x20
# (local11): word[7] @ -0x1c
.global sdk_hmac_sha1_vector
.type sdk_hmac_sha1_vector, @function
sdk_hmac_sha1_vector:
movi a8, 224 /* 0x000000e0 */ # 1c: 82a0e0
sub sp, sp, a8 /* (FP)-0xe0 */ # 1f: 8011c0
s32i a3, sp, 196 /* arg1 -> [(local11)] */ # 22: 326131
s32i a2, sp, 192 /* arg0 -> [(local10)] */ # 25: 226130
s32i a0, sp, 164 /* a0 -> [(local5)] */ # 28: 026129
s32i a13, sp, 172 /* a13 -> [(local7)] */ # 2b: d2612b
s32i a12, sp, 168 /* a12 -> [(local6)] */ # 2e: c2612a
s32i a14, sp, 176 /* a14 -> [(local8)] */ # 31: e2612c
mov a12, a5 /* arg3 */ # 34: cd05
mov a14, a4 /* arg2 */ # 36: ed04
mov a13, a6 /* arg4 */ # 38: dd06
movi a0, 196 /* 0x000000c4 */ # 3a: 02a0c4
add a0, sp, a0 /* (local11) */ # 3d: 0a01
movi a6, 192 /* 0x000000c0 */ # 3f: 62a0c0
add a6, sp, a6 /* (local10) */ # 42: 6a61
bltui a4, 6, .Lbr001 # 44: b66402
j .Lbr006 # 47: 062600
.Lbr001: s32i a7, sp, 160 /* arg5 -> [(local4)] */ # 4a: 726128
movi a2, 64 /* 0x00000040 */ # 4d: 4c02
bgeu a2, a3, .Lbr002 # 4f: 37b218
mov a3, a6 /* (local10) */ # 52: 3d06
movi a2, 1 /* 0x00000001 */ # 54: 0c12
mov a5, sp /* (FP)-0xe0 */ # 56: 5d01
mov a4, a0 /* (local11) */ # 58: 4d00
call0 sdk_sha1_vector # 5a: 01e9ffc0
# 5e: 0000
bnez a2, .Lbr006 # 60: 56f207
s32i sp, sp, 192 /* (FP)-0xe0 -> [(local10)] */ # 63: 126130
movi a6, 20 /* 0x00000014 */ # 66: 1c46
s32i a6, sp, 196 /* 0x00000014 -> [(local11)] */ # 68: 626131
.Lbr002: addi a2, sp, 32 /* (FP)-0xc0 */ # 6b: 22c120
movi a3, 0 /* 0x00000000 */ # 6e: 0c03
movi a4, 64 /* 0x00000040 */ # 70: 4c04
call0 memset # 72: 01e4ffc0
# 76: 0000
l32i a3, sp, 192 /* [(local10)] */ # 78: 322130
l32i a4, sp, 196 /* [(local11)] */ # 7b: 422131
addi a2, sp, 32 /* (FP)-0xc0 */ # 7e: 22c120
s32i a14, sp, 180 /* arg2 -> [(local9)] */ # 81: e2612d
call0 memcpy # 84: 01e1ffc0
# 88: 0000
l32i a4, sp, 180 /* [(local9)] */ # 8a: 42212d
addi a0, sp, 32 /* (FP)-0xc0 */ # 8d: 02c120
addi a14, sp, 96 /* (local0) */ # 90: e2c160
movi a2, 54 /* 0x00000036 */ # 93: 3c62
movi a6, 64 /* 0x00000040 */ # 95: 4c06
s32i a6, sp, 128 /* 0x00000040 -> [(local2)] */ # 97: 626120
addi a6, sp, 32 /* (FP)-0xc0 */ # 9a: 62c120
s32i a6, sp, 96 /* (FP)-0xc0 -> [(local0)] */ # 9d: 626118
.Lbr003: l8ui a5, a0, 0 # a0: 520000
xor a5, a5, a2 # a3: 205530
s8i a5, a0, 0 # a6: 524000
addi a0, a0, 1 # a9: 1b00
bne a0, a14, .Lbr003 # ab: e790f1
beqz a4, .Lbr005 # ae: 9cc4
addi a2, sp, 96 /* (local0) */ # b0: 22c160
addx4 a3, a4, a12 # b3: c034a0
addi a0, sp, 127 /* (FP)-0x61 */ # b6: 02c17f
addi a0, a0, 1 /* (local2) */ # b9: 1b00
.Lbr004: l32i a5, a13, 0 # bb: 580d
l32i a6, a12, 0 # bd: 680c
addi a13, a13, 4 # bf: 4bdd
addi a12, a12, 4 # c1: 4bcc
s32i a6, a2, 4 # c3: 6912
s32i a5, a0, 4 # c5: 5910
addi a2, a2, 4 # c7: 4b22
addi a0, a0, 4 # c9: 4b00
bne a12, a3, .Lbr004 # cb: 379cec
.Lbr005: addi a3, sp, 96 /* (local0) */ # ce: 32c160
addi a2, a4, 1 /* [(local9)]+0x1 */ # d1: 1b24
l32i a5, sp, 160 /* [(local4)] */ # d3: 522128
addi a4, sp, 127 /* (FP)-0x61 */ # d6: 42c17f
addi a4, a4, 1 /* (local2) */ # d9: 1b44
call0 sdk_sha1_vector # db: 01ccffc0
# df: 0000
beqz a2, .Lbr007 # e1: 8c32
.Lbr006: movi a2, -1 /* 0xffffffff */ # e3: 7cf2
j .Lbr009 # e5: 061500
.Lbr007: addi a2, sp, 32 /* (FP)-0xc0 */ # e8: 22c120
movi a3, 0 /* 0x00000000 */ # eb: 0c03
movi a4, 64 /* 0x00000040 */ # ed: 4c04
call0 memset # ef: 01c8ffc0
# f3: 0000
l32i a3, sp, 192 /* [(local10)] */ # f5: 322130
l32i a4, sp, 196 /* [(local11)] */ # f8: 422131
addi a2, sp, 32 /* (FP)-0xc0 */ # fb: 22c120
call0 memcpy # fe: 01c5ffc0
# 102: 0000
addi a0, sp, 32 /* (FP)-0xc0 */ # 104: 02c120
movi a2, 92 /* 0x0000005c */ # 107: 5cc2
.Lbr008: l8ui a5, a0, 0 # 109: 520000
xor a5, a5, a2 # 10c: 205530
s8i a5, a0, 0 # 10f: 524000
addi a0, a0, 1 # 112: 1b00
bne a0, a14, .Lbr008 # 114: e790f1
movi a2, 2 /* 0x00000002 */ # 117: 0c22
addi a3, sp, 96 /* (local0) */ # 119: 32c160
addi a4, sp, 127 /* (FP)-0x61 */ # 11c: 42c17f
movi a6, 20 /* 0x00000014 */ # 11f: 1c46
l32i a5, sp, 160 /* [(local4)] */ # 121: 522128
movi a7, 64 /* 0x00000040 */ # 124: 4c07
addi a8, sp, 32 /* (FP)-0xc0 */ # 126: 82c120
s32i a8, sp, 96 /* (FP)-0xc0 -> [(local0)] */ # 129: 826118
s32i a7, sp, 128 /* 0x00000040 -> [(local2)] */ # 12c: 726120
s32i a5, sp, 100 /* [(local4)] -> [(local1)] */ # 12f: 526119
s32i a6, sp, 132 /* 0x00000014 -> [(local3)] */ # 132: 626121
addi a4, a4, 1 /* (local2) */ # 135: 1b44
call0 sdk_sha1_vector # 137: 01b8ffc0
# 13b: 0000
.Lbr009: l32i a12, sp, 168 /* [(local6)] */ # 13d: c2212a
l32i a13, sp, 172 /* [(local7)] */ # 140: d2212b
l32i a14, sp, 176 /* [(local8)] */ # 143: e2212c
movi a3, 224 /* 0x000000e0 */ # 146: 32a0e0
l32i a0, sp, 164 /* [(local5)] */ # 149: 022129
add sp, sp, a3 /* (top of frame) */ # 14c: 3a11
ret # 14e: 0df0
# Function @ .irom0.text+0x150
# Local variables/stack:
# (local0): word[6] @ -0x30
# (local1): word @ -0x18
# (local2): word[5] @ -0x14
.global sdk_hmac_sha1
.type sdk_hmac_sha1, @function
sdk_hmac_sha1:
mov a7, a6 /* arg4 */ # 150: 7d06
mov a9, a5 /* arg3 */ # 152: 9d05
addi sp, sp, -48 /* (local0) */ # 154: 12c1d0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901
s32i a4, sp, 24 /* arg2 -> [(local1)] */ # 159: 4961
addi a5, sp, 24 /* (local1) */ # 15b: 52c118
addi a6, sp, 28 /* (local2) */ # 15e: 62c11c
s32i a9, sp, 28 /* arg3 -> [(local2)] */ # 161: 9971
movi a4, 1 /* 0x00000001 */ # 163: 0c14
call0 sdk_hmac_sha1_vector # 165: 050000
l32i a0, sp, 0 /* [(local0)] */ # 168: 0801
addi sp, sp, 48 /* (top of frame) */ # 16a: 12c130
ret # 16d: 0df0
.literal_position # 170: 00000000
# 174: 00000000
# Function @ .irom0.text+0x178
# Local variables/stack:
# (local0): byte[16] @ -0x80
# (local1): word @ -0x70
# (local2): word @ -0x6c
# (local3): word[2] @ -0x68
# (local4): word @ -0x60
# (local5): word @ -0x5c
# (local6): word[10] @ -0x58
# (local7): word @ -0x30
# (local8): word @ -0x2c
# (local9): word @ -0x28
# (local10): word @ -0x24
# (local11): word @ -0x20
# (local12): word @ -0x1c
# (local13): word @ -0x18
# (local14): word @ -0x14
# (local15): word[4] @ -0x10
.global sdk_sha1_prf
.type sdk_sha1_prf, @function
sdk_sha1_prf:
addi sp, sp, -128 /* (local0) */ # 178: 12c180
s32i a5, sp, 88 /* arg3 -> [(local9)] */ # 17b: 526116
s32i a7, sp, 84 /* arg5 -> [(local8)] */ # 17e: 726115
s32i a15, sp, 108 /* a15 -> [(local14)] */ # 181: f2611b
s32i a0, sp, 92 /* a0 -> [(local10)] */ # 184: 026117
s32i a12, sp, 96 /* a12 -> [(local11)] */ # 187: c26118
s32i a2, sp, 112 /* arg0 -> [(local15)] */ # 18a: 22611c
s32i a13, sp, 100 /* a13 -> [(local12)] */ # 18d: d26119
s32i a14, sp, 104 /* a14 -> [(local13)] */ # 190: e2611a
mov a13, a6 /* arg4 */ # 193: dd06
mov a14, a3 /* arg1 */ # 195: ed03
mov a2, a4 /* arg2 */ # 197: 2d04
mov a12, a4 /* arg2 */ # 199: cd04
movi a0, 0 /* 0x00000000 */ # 19b: 0c00
l32i a15, sp, 112 /* [(local15)] */ # 19d: f2211c
s8i a0, sp, 0 /* 0x00 -> [(local0)] */ # 1a0: 024100
call0 strlen # 1a3: 01f3ffc0
# 1a7: 0000
s32i sp, sp, 24 /* (local0) -> [(local3)] */ # 1a9: 1961
s32i a12, sp, 16 /* arg2 -> [(local1)] */ # 1ab: c941
s32i a13, sp, 36 /* arg4 -> [(local5)] */ # 1ad: d991
addi a2, a2, 1 # 1af: 1b22
l32i a3, sp, 88 /* [(local9)] */ # 1b1: 322116
s32i a3, sp, 20 /* [(local9)] -> [(local2)] */ # 1b4: 3951
s32i a2, sp, 32 /* a2 -> [(local4)] */ # 1b6: 2981
l32i a13, sp, 128 /* [(local16)] */ # 1b8: d22120
movi a2, 1 /* 0x00000001 */ # 1bb: 0c12
s32i a2, sp, 40 /* 0x00000001 -> [(local6)] */ # 1bd: 29a1
beqz a13, .Lbr014 # 1bf: 16fd05
movi a0, 19 /* 0x00000013 */ # 1c2: 1c30
movi a12, 0 /* 0x00000000 */ # 1c4: 0c0c
.Lbr010: sub a4, a13, a12 # 1c6: c04dc0
s32i a4, sp, 80 /* a4 -> [(local7)] */ # 1c9: 426114
bgeu a0, a4, .Lbr011 # 1cc: 47b028
mov a2, a15 /* [(local15)] */ # 1cf: 2d0f
mov a3, a14 /* arg1 */ # 1d1: 3d0e
movi a4, 3 /* 0x00000003 */ # 1d3: 0c34
addi a5, sp, 16 /* (local1) */ # 1d5: 52c110
l32i a7, sp, 84 /* [(local8)] */ # 1d8: 722115
addi a6, sp, 32 /* (local4) */ # 1db: 62c120
add a7, a7, a12 # 1de: ca77
call0 sdk_hmac_sha1_vector # 1e0: 050000
bnez a2, .Lbr012 # 1e3: ec52
movi a0, 19 /* 0x00000013 */ # 1e5: 1c30
l8ui a8, sp, 0 /* [(local0)] */ # 1e7: 820100
addi a12, a12, 20 # 1ea: c2cc14
addi a8, a8, 1 /* [(local0)]+0x1 */ # 1ed: 1b88
s8i a8, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # 1ef: 824100
bltu a12, a13, .Lbr010 # 1f2: d73cd0
j .Lbr014 # 1f5: 460a00
.Lbr011: mov a3, a14 /* arg1 */ # 1f8: 3d0e
mov a2, a15 /* [(local15)] */ # 1fa: 2d0f
movi a4, 3 /* 0x00000003 */ # 1fc: 0c34
addi a5, sp, 16 /* (local1) */ # 1fe: 52c110
addi a6, sp, 32 /* (local4) */ # 201: 62c120
addi a7, sp, 48 /* (FP)-0x50 */ # 204: 72c130
call0 sdk_hmac_sha1_vector # 207: 050000
beqz a2, .Lbr013 # 20a: 8c32
.Lbr012: movi a2, -1 /* 0xffffffff */ # 20c: 7cf2
j .Lbr015 # 20e: 860400
.Lbr013: addi a3, sp, 48 /* (FP)-0x50 */ # 211: 32c130
l32i a2, sp, 84 /* [(local8)] */ # 214: 222115
l32i a4, sp, 80 /* [(local7)] */ # 217: 422114
add a2, a2, a12 # 21a: ca22
call0 memcpy # 21c: 01d6ffc0
# 220: 0000
.Lbr014: movi a2, 0 /* 0x00000000 */ # 222: 0c02
.Lbr015: l32i a12, sp, 96 /* [(local11)] */ # 224: c22118
l32i a13, sp, 100 /* [(local12)] */ # 227: d22119
l32i a14, sp, 104 /* [(local13)] */ # 22a: e2211a
l32i a15, sp, 108 /* [(local14)] */ # 22d: f2211b
movi a3, 128 /* 0x00000080 */ # 230: 32a080
l32i a0, sp, 92 /* [(local10)] */ # 233: 022117
add sp, sp, a3 /* (local16) */ # 236: 3a11
ret # 238: 0df0

View file

2653
binary_sdk/libwpa/wpa.S Normal file

File diff suppressed because it is too large Load diff

3524
binary_sdk/libwpa/wpa_auth.S Normal file

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -0,0 +1,658 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc001: movi a4, -35 /* 0xffffffdd */ # 8: 42afdd
movi a5, 0 /* 0x00000000 */ # b: 0c05
addi sp, sp, -16 /* (local0) */ # d: 12c1f0
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 10: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 14: c911
movi a0, 80 /* 0x00000050 */ # 16: 5c00
mov a12, a3 /* arg1 */ # 18: cd03
s8i a5, a3, 7 /* 0x00 -> [arg1+0x7] */ # 1a: 524307
s8i a5, a3, 2 /* 0x00 -> [arg1+0x2] */ # 1d: 524302
mov a13, a2 /* arg0 */ # 20: dd02
s8i a4, a3, 0 /* 0xdd -> [arg1] */ # 22: 424300
movi a2, 1 /* 0x00000001 */ # 25: 0c12
s8i a2, a3, 6 /* 0x01 -> [arg1+0x6] */ # 27: 224306
s8i a2, a3, 5 /* 0x01 -> [arg1+0x5] */ # 2a: 224305
movi a3, -14 /* 0xfffffff2 */ # 2d: 7c23
s8i a0, a12, 3 /* 0x50 -> [arg1+0x3] */ # 2f: 024c03
s8i a3, a12, 4 /* 0xf2 -> [arg1+0x4] */ # 32: 324c04
l32i a3, a13, 12 /* [arg0+0xc] */ # 35: 383d
call0 sdk_wpa_cipher_to_suite # 37: 01f2ffc0
# 3b: 0000
beqz a2, .Lbr005 # 3d: 169208
s8i a2, a12, 11 /* a2 -> [arg1+0xb] */ # 40: 224c0b
extui a6, a2, 24, 8 # 43: 206875
extui a7, a2, 16, 16 # 46: 2070f5
srli a8, a2, 8 # 49: 208841
s8i a8, a12, 10 /* a8 -> [arg1+0xa] */ # 4c: 824c0a
s8i a7, a12, 9 /* a7 -> [arg1+0x9] */ # 4f: 724c09
s8i a6, a12, 8 /* a6 -> [arg1+0x8] */ # 52: 624c08
addi a2, a12, 14 /* arg1+0xe */ # 55: eb2c
l32i a3, a13, 8 /* [arg0+0x8] */ # 57: 382d
call0 sdk_wpa_cipher_put_suites # 59: 01eaffc0
# 5d: 0000
movi a0, 80 /* 0x00000050 */ # 5f: 5c00
movi a3, -14 /* 0xfffffff2 */ # 61: 7c23
movi a5, 0 /* 0x00000000 */ # 63: 0c05
beqz a2, .Lbr005 # 65: 161206
s8i a2, a12, 12 /* a2 -> [arg1+0xc] */ # 68: 224c0c
srli a9, a2, 8 # 6b: 209841
addx4 a8, a2, a12 # 6e: c082a0
addi a6, a8, 16 # 71: 62c810
s8i a9, a12, 13 /* a9 -> [arg1+0xd] */ # 74: 924c0d
l32i a7, a13, 4 /* [arg0+0x4] */ # 77: 781d
movi a9, 2 /* 0x00000002 */ # 79: 0c29
bbci a7, 0, .Lbr001 # 7b: 076717
movi a2, 1 /* 0x00000001 */ # 7e: 0c12
addi a6, a8, 20 # 80: 62c814
s8i a3, a8, 18 # 83: 324812
s8i a0, a8, 17 # 86: 024811
s8i a5, a8, 16 # 89: 524810
movi a10, 1 /* 0x00000001 */ # 8c: 0c1a
s8i a10, a8, 19 # 8e: a24813
l32i a7, a13, 4 /* [arg0+0x4] */ # 91: 781d
j .Lbr002 # 93: 460000
.Lbr001: movi a2, 0 /* 0x00000000 */ # 96: 0c02
.Lbr002: bbci a7, 1, .Lbr003 # 98: 17670f
addi a2, a2, 1 # 9b: 1b22
s8i a5, a6, 0 # 9d: 524600
s8i a0, a6, 1 # a0: 024601
s8i a3, a6, 2 # a3: 324602
s8i a9, a6, 3 # a6: 924603
addi a6, a6, 4 # a9: 4b66
.Lbr003: beqz a2, .Lbr005 # ab: 9cb2
s8i a2, a8, 14 # ad: 22480e
srli a13, a2, 8 # b0: 20d841
s8i a13, a8, 15 # b3: d2480f
sub a2, a6, a12 # b6: c026c0
addi a11, a2, -2 # b9: b2c2fe
s8i a11, a12, 1 /* a11 -> [arg1+0x1] */ # bc: b24c01
.Lbr004: l32i a12, sp, 4 /* [(local1)] */ # bf: c811
l32i a13, sp, 8 /* [(local2)] */ # c1: d821
l32i a0, sp, 0 /* [(local0)] */ # c3: 0801
addi sp, sp, 16 /* (top of frame) */ # c5: 12c110
ret # c8: 0df0
.Lbr005: movi a2, -1 /* 0xffffffff */ # ca: 7cf2
j .Lbr004 # cc: c6fbff
.literal_position # d0: 00000000
# d4: 00000000
# d8: 00000000
# Function @ .irom0.text+0xdc
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_wpa_write_rsn_ie
.type sdk_wpa_write_rsn_ie, @function
sdk_wpa_write_rsn_ie:
addi sp, sp, -32 /* (local0) */ # dc: 12c1e0
s32i a4, sp, 0 /* arg2 -> [(local0)] */ # df: 4901
s32i a12, sp, 8 /* a12 -> [(local2)] */ # e1: c921
s32i a13, sp, 12 /* a13 -> [(local3)] */ # e3: d931
s32i a14, sp, 16 /* a14 -> [(local4)] */ # e5: e941
s32i a0, sp, 4 /* a0 -> [(local1)] */ # e7: 0911
mov a14, a5 /* arg3 */ # e9: ed05
movi a0, 0 /* 0x00000000 */ # eb: 0c00
mov a13, a3 /* arg1 */ # ed: dd03
mov a12, a2 /* arg0 */ # ef: cd02
movi a3, 48 /* 0x00000030 */ # f1: 3c03
movi a2, 1 /* 0x00000001 */ # f3: 0c12
s8i a0, a13, 3 /* 0x00 -> [arg1+0x3] */ # f5: 024d03
s8i a2, a13, 2 /* 0x01 -> [arg1+0x2] */ # f8: 224d02
s8i a3, a13, 0 /* 0x30 -> [arg1] */ # fb: 324d00
movi a2, 2 /* 0x00000002 */ # fe: 0c22
l32i a3, a12, 12 /* [arg0+0xc] */ # 100: 383c
call0 sdk_wpa_cipher_to_suite # 102: 01f3ffc0
# 106: 0000
beqz a2, .Lbr011 # 108: 16520d
s8i a2, a13, 7 /* a2 -> [arg1+0x7] */ # 10b: 224d07
extui a4, a2, 24, 8 # 10e: 204875
extui a5, a2, 16, 16 # 111: 2050f5
srli a6, a2, 8 # 114: 206841
s8i a6, a13, 6 /* a6 -> [arg1+0x6] */ # 117: 624d06
s8i a5, a13, 5 /* a5 -> [arg1+0x5] */ # 11a: 524d05
s8i a4, a13, 4 /* a4 -> [arg1+0x4] */ # 11d: 424d04
addi a2, a13, 10 /* arg1+0xa */ # 120: ab2d
l32i a3, a12, 32 /* [arg0+0x20] */ # 122: 388c
call0 sdk_rsn_cipher_put_suites # 124: 01ecffc0
# 128: 0000
movi a0, 0 /* 0x00000000 */ # 12a: 0c00
movi a10, 1 /* 0x00000001 */ # 12c: 0c1a
beqz a2, .Lbr011 # 12e: 16f20a
movi a8, -84 /* 0xffffffac */ # 131: 82afac
movi a9, 15 /* 0x0000000f */ # 134: 0cf9
movi a11, 2 /* 0x00000002 */ # 136: 0c2b
addx4 a5, a2, a13 # 138: d052a0
s8i a2, a13, 8 /* a2 -> [arg1+0x8] */ # 13b: 224d08
srli a7, a2, 8 # 13e: 207841
s8i a7, a13, 9 /* a7 -> [arg1+0x9] */ # 141: 724d09
l32i a7, a12, 4 /* [arg0+0x4] */ # 144: 781c
addi a2, a5, 12 # 146: cb25
bbci a7, 0, .Lbr006 # 148: 076715
movi a3, 1 /* 0x00000001 */ # 14b: 0c13
addi a2, a5, 16 # 14d: 22c510
s8i a0, a5, 12 # 150: 02450c
s8i a9, a5, 13 # 153: 92450d
s8i a8, a5, 14 # 156: 82450e
s8i a10, a5, 15 # 159: a2450f
l32i a7, a12, 4 /* [arg0+0x4] */ # 15c: 781c
j .Lbr007 # 15e: 460000
.Lbr006: movi a3, 0 /* 0x00000000 */ # 161: 0c03
.Lbr007: bbci a7, 1, .Lbr008 # 163: 17670f
addi a3, a3, 1 # 166: 1b33
s8i a9, a2, 1 # 168: 924201
s8i a8, a2, 2 # 16b: 824202
s8i a11, a2, 3 # 16e: b24203
s8i a0, a2, 0 # 171: 024200
addi a2, a2, 4 # 174: 4b22
.Lbr008: beqz a3, .Lbr011 # 176: 167306
movi a9, 12 /* 0x0000000c */ # 179: 0cc9
movi a4, 0 /* 0x00000000 */ # 17b: 0c04
movi a8, 1 /* 0x00000001 */ # 17d: 0c18
s8i a3, a5, 10 # 17f: 32450a
srli a7, a3, 8 # 182: 307841
s8i a7, a5, 11 # 185: 72450b
l32i a6, a12, 36 /* [arg0+0x24] */ # 188: 689c
movi a11, 512 /* 0x00000200 */ # 18a: b2a200
moveqz a8, a4, a6 # 18d: 608483
l32i a4, a12, 44 /* [arg0+0x2c] */ # 190: 48bc
or a11, a8, a11 # 192: b0b820
movnez a8, a11, a4 # 195: 408b93
l32i a11, a12, 48 /* [arg0+0x30] */ # 198: b8cc
or a9, a8, a9 # 19a: 909820
movnez a8, a9, a11 # 19d: b08993
s8i a8, a2, 0 # 1a0: 824200
srli a8, a8, 8 # 1a3: 808841
s8i a8, a2, 1 # 1a6: 824201
addi a2, a2, 2 # 1a9: 2b22
beqz a14, .Lbr009 # 1ab: 9cce
l32i a8, sp, 0 /* [(local0)] */ # 1ad: 8801
addi a12, a2, 18 # 1af: c2c212
add a8, a13, a8 # 1b2: 8a8d
bltu a8, a12, .Lbr011 # 1b4: c73829
mov a3, a14 /* arg3 */ # 1b7: 3d0e
s8i a0, a2, 1 # 1b9: 024201
s8i a10, a2, 0 # 1bc: a24200
movi a4, 16 /* 0x00000010 */ # 1bf: 1c04
addi a2, a2, 2 # 1c1: 2b22
call0 memcpy # 1c3: 01c5ffc0
# 1c7: 0000
mov a2, a12 # 1c9: 2d0c
.Lbr009: sub a2, a2, a13 # 1cb: d022c0
addi a9, a2, -2 # 1ce: 92c2fe
s8i a9, a13, 1 /* a9 -> [arg1+0x1] */ # 1d1: 924d01
.Lbr010: l32i a12, sp, 8 /* [(local2)] */ # 1d4: c821
l32i a13, sp, 12 /* [(local3)] */ # 1d6: d831
l32i a14, sp, 16 /* [(local4)] */ # 1d8: e841
l32i a0, sp, 4 /* [(local1)] */ # 1da: 0811
addi sp, sp, 32 /* (top of frame) */ # 1dc: 12c120
ret # 1df: 0df0
.Lbr011: movi a2, -1 /* 0xffffffff */ # 1e1: 7cf2
j .Lbr010 # 1e3: 46fbff
.literal_position # 1e8: 00000000
# 1ec: 00000000
# 1f0: 00000000
# Function @ .irom0.text+0x1f4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_wpa_auth_gen_wpa_ie
.type sdk_wpa_auth_gen_wpa_ie, @function
sdk_wpa_auth_gen_wpa_ie:
movi a3, 144 /* 0x00000090 */ # 1f4: 32a090
sub sp, sp, a3 /* (FP)-0x90 */ # 1f7: 3011c0
s32i a12, sp, 132 /* a12 -> [(local1)] */ # 1fa: c26121
s32i a0, sp, 128 /* a0 -> [(local0)] */ # 1fd: 026120
mov a12, a2 /* arg0 */ # 200: cd02
l32i a2, a2, 4 /* [arg0+0x4] */ # 202: 2812
s32i a13, sp, 136 /* a13 -> [(local2)] */ # 204: d26122
bbci a2, 1, .Lbr012 # 207: 176215
addi a2, a12, 4 /* arg0+0x4 */ # 20a: 4b2c
mov a3, sp /* (FP)-0x90 */ # 20c: 3d01
movi a4, 128 /* 0x00000080 */ # 20e: 42a080
movi a5, 0 /* 0x00000000 */ # 211: 0c05
call0 sdk_wpa_write_rsn_ie # 213: 050000
bltz a2, .Lbr016 # 216: 96c204
add a13, a2, sp # 219: 1ad2
l32i a2, a12, 4 /* [arg0+0x4] */ # 21b: 281c
j .Lbr013 # 21d: 460000
.Lbr012: mov a13, sp /* (FP)-0x90 */ # 220: dd01
.Lbr013: bbci a2, 0, .Lbr014 # 222: 076213
addi a2, a12, 4 /* arg0+0x4 */ # 225: 4b2c
mov a3, a13 # 227: 3d0d
movi a5, 128 /* 0x00000080 */ # 229: 52a080
sub a4, sp, a13 # 22c: d041c0
add a4, a4, a5 # 22f: 5a44
call0 .Lfunc001 # 231: 45ddff
bltz a2, .Lbr016 # 234: 96e202
add a13, a2, a13 # 237: dad2
.Lbr014: l32i a2, a12, 80 /* [arg0+0x50] */ # 239: 222c14
call0 free # 23c: 01ebffc0
# 240: 0000
sub a13, a13, sp # 242: 10ddc0
mov a2, a13 # 245: 2d0d
call0 malloc # 247: 01e9ffc0
# 24b: 0000
s32i a2, a12, 80 /* a2 -> [arg0+0x50] */ # 24d: 226c14
bnez a2, .Lbr015 # 250: cc32
movi a2, -1 /* 0xffffffff */ # 252: 7cf2
j .Lbr016 # 254: 860300
.Lbr015: mov a3, sp /* (FP)-0x90 */ # 257: 3d01
mov a4, a13 # 259: 4d0d
call0 memcpy # 25b: 01e5ffc0
# 25f: 0000
s32i a13, a12, 84 /* a13 -> [arg0+0x54] */ # 261: d26c15
movi a2, 0 /* 0x00000000 */ # 264: 0c02
.Lbr016: l32i a12, sp, 132 /* [(local1)] */ # 266: c22121
l32i a13, sp, 136 /* [(local2)] */ # 269: d22122
movi a3, 144 /* 0x00000090 */ # 26c: 32a090
l32i a0, sp, 128 /* [(local0)] */ # 26f: 022120
add sp, sp, a3 /* (top of frame) */ # 272: 3a11
ret # 274: 0df0
.literal_position # 278: 00000000
# 27c: 00000000
# Function @ .irom0.text+0x280
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_wpa_add_kde
.type sdk_wpa_add_kde, @function
sdk_wpa_add_kde:
addi sp, sp, -32 /* (local0) */ # 280: 12c1e0
s32i a6, sp, 20 /* arg4 -> [(local5)] */ # 283: 6951
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 285: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 287: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 289: c911
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 28b: f941
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 28d: e931
mov a15, a6 /* arg4 */ # 28f: fd06
mov a14, a5 /* arg3 */ # 291: ed05
mov a12, a2 /* arg0 */ # 293: cd02
mov a13, a7 /* arg5 */ # 295: dd07
mov a2, a3 /* arg1 */ # 297: 2d03
movi a7, -35 /* 0xffffffdd */ # 299: 72afdd
s8i a7, a12, 0 /* 0xdd -> [arg0] */ # 29c: 724c00
s8i a2, a12, 5 /* arg1 -> [arg0+0x5] */ # 29f: 224c05
mov a3, a4 /* arg2 */ # 2a2: 3d04
add a0, a14, a13 # 2a4: da0e
extui a5, a2, 16, 16 # 2a6: 2050f5
extui a6, a2, 24, 8 # 2a9: 206875
s8i a6, a12, 2 /* a6 -> [arg0+0x2] */ # 2ac: 624c02
s8i a5, a12, 3 /* a5 -> [arg0+0x3] */ # 2af: 524c03
addi a0, a0, 4 # 2b2: 4b00
srli a4, a2, 8 # 2b4: 204841
s8i a4, a12, 4 /* a4 -> [arg0+0x4] */ # 2b7: 424c04
s8i a0, a12, 1 /* a0 -> [arg0+0x1] */ # 2ba: 024c01
mov a4, a14 /* arg3 */ # 2bd: 4d0e
addi a2, a12, 6 /* arg0+0x6 */ # 2bf: 6b2c
call0 memcpy # 2c1: 01edffc0
# 2c5: 0000
add a12, a12, a14 # 2c7: eacc
addi a12, a12, 6 # 2c9: 6bcc
beqz a15, .Lbr017 # 2cb: 8ccf
mov a3, a15 /* arg4 */ # 2cd: 3d0f
mov a2, a12 # 2cf: 2d0c
mov a4, a13 /* arg5 */ # 2d1: 4d0d
call0 memcpy # 2d3: 01eaffc0
# 2d7: 0000
add a12, a12, a13 # 2d9: dacc
.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 2db: 0801
l32i a13, sp, 8 /* [(local2)] */ # 2dd: d821
l32i a14, sp, 12 /* [(local3)] */ # 2df: e831
mov a2, a12 # 2e1: 2d0c
l32i a15, sp, 16 /* [(local4)] */ # 2e3: f841
l32i a12, sp, 4 /* [(local1)] */ # 2e5: c811
addi sp, sp, 32 /* (top of frame) */ # 2e7: 12c120
ret # 2ea: 0df0
.literal_position # 2ec: 00000000
# 2f0: 00000000
# 2f4: 00000000
# 2f8: 00000000
# 2fc: 00000000
# 300: 00000000
# 304: 00000000
# 308: 00000000
# 30c: 00000000
# Function @ .irom0.text+0x310
# Local variables/stack:
# (local0): word @ -0x3c
# (local1): word @ -0x38
# (local2): word[5] @ -0x34
# (local3): word @ -0x20
# (local4): word @ -0x1c
# (local5): word @ -0x18
# (local6): word @ -0x14
# (local7): word @ -0x10
# (local8): word @ -0xc
# (local9): word @ -0x8
# (local10): word @ -0x4
.global sdk_wpa_validate_wpa_ie
.type sdk_wpa_validate_wpa_ie, @function
sdk_wpa_validate_wpa_ie:
addi sp, sp, -64 /* (FP)-0x40 */ # 310: 12c1c0
s32i a15, sp, 60 /* a15 -> [(local10)] */ # 313: f9f1
s32i a0, sp, 44 /* a0 -> [(local6)] */ # 315: 09b1
s32i a13, sp, 52 /* a13 -> [(local8)] */ # 317: d9d1
s32i a12, sp, 48 /* a12 -> [(local7)] */ # 319: c9c1
s32i a14, sp, 56 /* a14 -> [(local9)] */ # 31b: e9e1
mov a12, a3 /* arg1 */ # 31d: cd03
mov a14, a4 /* arg2 */ # 31f: ed04
mov a13, a2 /* arg0 */ # 321: dd02
mov a2, a5 /* arg3 */ # 323: 2d05
beqz a13, .Lbr018 # 325: 9cdd
beqz a3, .Lbr018 # 327: 9cb3
beqz a4, .Lbr019 # 329: 9ce4
beqz a5, .Lbr019 # 32b: 9cc5
l32i a5, a13, 4 /* [arg0+0x4] */ # 32d: 581d
movi a15, 2 /* 0x00000002 */ # 32f: 0c2f
l8ui a6, a4, 0 /* [arg2] */ # 331: 620400
movi a3, 1 /* 0x00000001 */ # 334: 0c13
addi a6, a6, -48 /* [arg2]-0x30 */ # 336: 62c6d0
moveqz a3, a15, a6 # 339: 603f83
mov a0, a3 # 33c: 0d03
bany a5, a3, .Lbr021 # 33e: 37851a
movi a2, 10 /* 0x0000000a */ # 341: 0ca2
j .Lbr020 # 343: 860100
.Lbr018: movi a2, 5 /* 0x00000005 */ # 346: 0c52
j .Lbr020 # 348: 460000
.Lbr019: movi a2, 1 /* 0x00000001 */ # 34b: 0c12
.Lbr020: l32i a12, sp, 48 /* [(local7)] */ # 34d: c8c1
l32i a13, sp, 52 /* [(local8)] */ # 34f: d8d1
l32i a14, sp, 56 /* [(local9)] */ # 351: e8e1
l32i a15, sp, 60 /* [(local10)] */ # 353: f8f1
l32i a0, sp, 44 /* [(local6)] */ # 355: 08b1
addi sp, sp, 64 /* (top of frame) */ # 357: 12c140
ret # 35a: 0df0
.Lbr021: s32i a0, sp, 32 /* a0 -> [(local3)] */ # 35c: 0981
s32i a2, sp, 40 /* arg3 -> [(local5)] */ # 35e: 29a1
bnei a3, 2, .Lbr022 # 360: 662324
mov a2, a4 /* arg2 */ # 363: 2d04
l32i a3, sp, 40 /* [(local5)] */ # 365: 38a1
mov a4, sp /* (FP)-0x40 */ # 367: 4d01
call0 sdk_wpa_parse_wpa_ie_rsn # 369: 01e0ffc0
# 36d: 0000
s32i a2, sp, 36 /* a2 -> [(local4)] */ # 36f: 2991
l32i a3, sp, 4 /* [(local0)] */ # 371: 3811
movi a2, 2 /* 0x00000002 */ # 373: 0c22
call0 sdk_wpa_cipher_to_suite # 375: 01deffc0
# 379: 0000
movi a2, 2 /* 0x00000002 */ # 37b: 0c22
l32i a3, sp, 8 /* [(local1)] */ # 37d: 3821
call0 sdk_wpa_cipher_to_suite # 37f: 01ddffc0
# 383: 0000
j .Lbr023 # 385: 460800
.Lbr022: mov a2, a4 /* arg2 */ # 388: 2d04
l32i a3, sp, 40 /* [(local5)] */ # 38a: 38a1
mov a4, sp /* (FP)-0x40 */ # 38c: 4d01
call0 sdk_wpa_parse_wpa_ie_wpa # 38e: 01daffc0
# 392: 0000
s32i a2, sp, 36 /* a2 -> [(local4)] */ # 394: 2991
l32i a3, sp, 4 /* [(local0)] */ # 396: 3811
movi a2, 1 /* 0x00000001 */ # 398: 0c12
call0 sdk_wpa_cipher_to_suite # 39a: 01d8ffc0
# 39e: 0000
movi a2, 1 /* 0x00000001 */ # 3a0: 0c12
l32i a3, sp, 8 /* [(local1)] */ # 3a2: 3821
call0 sdk_wpa_cipher_to_suite # 3a4: 01d7ffc0
# 3a8: 0000
.Lbr023: l32i a7, sp, 36 /* [(local4)] */ # 3aa: 7891
l32i a9, sp, 8 /* [(local1)] */ # 3ac: 9821
bnez a7, .Lbr019 # 3ae: 5697f9
l32i a8, a13, 16 /* [arg0+0x10] */ # 3b1: 884d
l32i a11, sp, 12 /* [(local2)] */ # 3b3: b831
beq a8, a9, .Lbr024 # 3b5: 971804
movi a2, 2 /* 0x00000002 */ # 3b8: 0c22
j .Lbr020 # 3ba: c6e3ff
.Lbr024: l32i a10, a13, 8 /* [arg0+0x8] */ # 3bd: a82d
and a0, a10, a11 # 3bf: b00a10
bany a10, a11, .Lbr025 # 3c2: b78a04
movi a2, 4 /* 0x00000004 */ # 3c5: 0c42
j .Lbr020 # 3c7: 86e0ff
.Lbr025: l32i a2, sp, 32 /* [(local3)] */ # 3ca: 2881
bbci a0, 0, .Lbr026 # 3cc: 076007
movi a0, 1 /* 0x00000001 */ # 3cf: 0c10
s32i a0, a12, 0x194 /* 0x00000001 -> [arg1+0x194] */ # 3d1: 026c65
j .Lbr027 # 3d4: 860000
.Lbr026: s32i a15, a12, 0x194 /* 0x00000002 -> [arg1+0x194] */ # 3d7: f26c65
.Lbr027: l32i a0, sp, 4 /* [(local0)] */ # 3da: 0811
bnei a2, 2, .Lbr032 # 3dc: 662248
l32i a9, a13, 36 /* [arg0+0x24] */ # 3df: 989d
.Lbr028: and a8, a9, a0 # 3e1: 008910
bnone a9, a0, .Lbr034 # 3e4: 070959
movi a0, 8 /* 0x00000008 */ # 3e7: 0c80
bbsi a8, 3, .Lbr029 # 3e9: 37e806
movi a0, 64 /* 0x00000040 */ # 3ec: 4c00
bbsi a8, 6, .Lbr029 # 3ee: 67e801
mov a0, a15 /* 0x00000002 */ # 3f1: 0d0f
.Lbr029: s32i a0, a12, 0x190 /* a0 -> [arg1+0x190] */ # 3f3: 026c64
l8ui a3, a14, 0 /* [arg2] */ # 3f6: 320e00
movi a4, 48 /* 0x00000030 */ # 3f9: 3c04
beq a3, a4, .Lbr030 # 3fb: 471301
movi a15, 1 /* 0x00000001 */ # 3fe: 0c1f
.Lbr030: l32i a2, a12, 0x184 /* [arg1+0x184] */ # 400: 222c61
s32i a15, a12, 0x18c /* a15 -> [arg1+0x18c] */ # 403: f26c63
beqz a2, .Lbr031 # 406: 8c62
l32i a6, sp, 40 /* [(local5)] */ # 408: 68a1
l32i a5, a12, 0x188 /* [arg1+0x188] */ # 40a: 522c62
bgeu a5, a6, .Lbr033 # 40d: 67b51c
.Lbr031: call0 free # 410: 01bdffc0
# 414: 0000
l32i a2, sp, 40 /* [(local5)] */ # 416: 28a1
call0 malloc # 418: 01bcffc0
# 41c: 0000
s32i a2, a12, 0x184 /* a2 -> [arg1+0x184] */ # 41e: 226c61
bnez a2, .Lbr033 # 421: cc82
movi a2, 6 /* 0x00000006 */ # 423: 0c62
j .Lbr020 # 425: 06c9ff
.Lbr032: l32i a9, a13, 12 /* [arg0+0xc] */ # 428: 983d
j .Lbr028 # 42a: c6ecff
.Lbr033: mov a3, a14 /* arg2 */ # 42d: 3d0e
l32i a4, sp, 40 /* [(local5)] */ # 42f: 48a1
call0 memcpy # 431: 01b6ffc0
# 435: 0000
movi a2, 0 /* 0x00000000 */ # 437: 0c02
l32i a7, sp, 40 /* [(local5)] */ # 439: 78a1
s32i a7, a12, 0x188 /* [(local5)] -> [arg1+0x188] */ # 43b: 726c62
j .Lbr020 # 43e: c6c2ff
.Lbr034: movi a2, 3 /* 0x00000003 */ # 441: 0c32
j .Lbr020 # 443: 86c1ff
.literal_position # 448: 01f25000
# 44c: 04ac0f00
# 450: 01ac0f00
# 454: 03ac0f00
# Function @ .irom0.text+0x458
.Lfunc002: l8ui a7, a2, 1 /* [arg0+0x1] */ # 458: 720201
l8ui a5, a2, 5 /* [arg0+0x5] */ # 45b: 520205
bnez a7, .Lbr035 # 45e: cc27
movi a2, 1 /* 0x00000001 */ # 460: 0c12
ret /* 0x00000001 */ # 462: 0df0
.Lbr035: bltui a7, 6, .Lbr036 # 464: b66737
l8ui a8, a2, 2 /* [arg0+0x2] */ # 467: 820202
l8ui a9, a2, 3 /* [arg0+0x3] */ # 46a: 920203
l8ui a6, a2, 4 /* [arg0+0x4] */ # 46d: 620204
slli a9, a9, 16 # 470: 009911
slli a6, a6, 8 # 473: 806611
slli a8, a8, 24 # 476: 808801
or a5, a5, a6 # 479: 605520
movi a6, 0x0050f201 # 47c: 61f3ff
or a8, a8, a9 # 47f: 908820
or a5, a5, a8 # 482: 805520
bne a5, a6, .Lbr036 # 485: 679516
l8ui a8, a2, 6 /* [arg0+0x6] */ # 488: 820206
bnei a8, 1, .Lbr036 # 48b: 661810
l8ui a9, a2, 7 /* [arg0+0x7] */ # 48e: 920207
bnez a9, .Lbr036 # 491: cca9
s32i a2, a4, 0 /* arg0 -> [arg2] */ # 493: 2904
l8ui a10, a2, 1 /* [arg0+0x1] */ # 495: a20201
addi a10, a10, 2 /* [arg0+0x1]+0x2 */ # 498: 2baa
s32i a10, a4, 4 /* [arg0+0x1]+0x2 -> [arg2+0x4] */ # 49a: a914
j .Lbr039 # 49c: c61f00
.Lbr036: addi a11, a2, 5 /* arg0+0x5 */ # 49f: 5bb2
bgeu a11, a3, .Lbr037 # 4a1: 37bb2f
movi a3, 19 /* 0x00000013 */ # 4a4: 1c33
bgeu a3, a7, .Lbr037 # 4a6: 77b32a
l8ui a5, a2, 5 /* [arg0+0x5] */ # 4a9: 520205
l8ui a8, a2, 2 /* [arg0+0x2] */ # 4ac: 820202
l8ui a9, a2, 3 /* [arg0+0x3] */ # 4af: 920203
l8ui a6, a2, 4 /* [arg0+0x4] */ # 4b2: 620204
slli a9, a9, 16 # 4b5: 009911
slli a6, a6, 8 # 4b8: 806611
slli a8, a8, 24 # 4bb: 808801
or a5, a5, a6 # 4be: 605520
movi a6, 0x000fac04 # 4c1: 61e2ff
or a8, a8, a9 # 4c4: 908820
or a5, a5, a8 # 4c7: 805520
bne a5, a6, .Lbr037 # 4ca: 679506
addi a7, a2, 6 /* arg0+0x6 */ # 4cd: 6b72
s32i a7, a4, 16 /* arg0+0x6 -> [arg2+0x10] */ # 4cf: 7944
j .Lbr039 # 4d1: 861200
.Lbr037: bltui a7, 7, .Lbr039 # 4d4: b67747
movi a8, 0x000fac01 # 4d7: 81deff
l8ui a6, a2, 3 /* [arg0+0x3] */ # 4da: 620203
l8ui a5, a2, 4 /* [arg0+0x4] */ # 4dd: 520204
l8ui a3, a2, 5 /* [arg0+0x5] */ # 4e0: 320205
slli a5, a5, 8 # 4e3: 805511
or a3, a3, a5 # 4e6: 503320
l8ui a5, a2, 2 /* [arg0+0x2] */ # 4e9: 520202
slli a6, a6, 16 # 4ec: 006611
slli a5, a5, 24 # 4ef: 805501
or a5, a5, a6 # 4f2: 605520
or a3, a3, a5 # 4f5: 503320
bne a3, a8, .Lbr038 # 4f8: 87930e
addi a7, a2, 6 /* arg0+0x6 */ # 4fb: 6b72
s32i a7, a4, 20 /* arg0+0x6 -> [arg2+0x14] */ # 4fd: 7954
l8ui a6, a2, 1 /* [arg0+0x1] */ # 4ff: 620201
addi a6, a6, -4 /* [arg0+0x1]-0x4 */ # 502: 62c6fc
s32i a6, a4, 24 /* [arg0+0x1]-0x4 -> [arg2+0x18] */ # 505: 6964
j .Lbr039 # 507: 060500
.Lbr038: bltui a7, 7, .Lbr039 # 50a: b67711
movi a8, 0x000fac03 # 50d: 81d1ff
bne a3, a8, .Lbr039 # 510: 87930b
addi a10, a2, 6 /* arg0+0x6 */ # 513: 6ba2
s32i a10, a4, 28 /* arg0+0x6 -> [arg2+0x1c] */ # 515: a974
l8ui a9, a2, 1 /* [arg0+0x1] */ # 517: 920201
addi a9, a9, -4 /* [arg0+0x1]-0x4 */ # 51a: 92c9fc
s32i a9, a4, 32 /* [arg0+0x1]-0x4 -> [arg2+0x20] */ # 51d: 9984
.Lbr039: movi a2, 0 /* 0x00000000 */ # 51f: 0c02
ret /* 0x00000000 */ # 521: 0df0
.literal_position # 524: 00000000
# Function @ .irom0.text+0x528
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_wpa_parse_kde_ies
.type sdk_wpa_parse_kde_ies, @function
sdk_wpa_parse_kde_ies:
addi sp, sp, -32 /* (local0) */ # 528: 12c1e0
s32i a15, sp, 24 /* a15 -> [(local6)] */ # 52b: f961
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 52d: 0921
s32i a14, sp, 20 /* a14 -> [(local5)] */ # 52f: e951
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 531: d941
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 533: c931
mov a13, a4 /* arg2 */ # 535: dd04
mov a12, a2 /* arg0 */ # 537: cd02
mov a14, a3 /* arg1 */ # 539: ed03
mov a2, a4 /* arg2 */ # 53b: 2d04
movi a3, 0 /* 0x00000000 */ # 53d: 0c03
movi a4, 36 /* 0x00000024 */ # 53f: 2c44
call0 memset # 541: 01f8ffc0
# 545: 0000
s32i a13, sp, 4 /* arg2 -> [(local1)] */ # 547: d911
blti a14, 2, .Lbr047 # 549: a62e70
movi a15, 48 /* 0x00000030 */ # 54c: 3c0f
movi a2, 0 /* 0x00000000 */ # 54e: 0c02
add a13, a12, a14 # 550: eadc
movi a14, 221 /* 0x000000dd */ # 552: e2a0dd
addi a0, a13, -1 # 555: 0b0d
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 557: 0901
.Lbr040: l8ui a0, a12, 0 # 559: 020c00
l8ui a3, a12, 1 # 55c: 320c01
bne a0, a14, .Lbr041 # 55f: e7900c
l32i a3, sp, 0 /* [(local0)] */ # 562: 3801
beq a3, a12, .Lbr046 # 564: c71346
l8ui a3, a12, 1 # 567: 320c01
bnez a3, .Lbr041 # 56a: cc13
j .Lbr046 # 56c: 860f00
.Lbr041: add a3, a3, a12 # 56f: ca33
addi a3, a3, 2 # 571: 2b33
bltu a13, a3, .Lbr045 # 573: 373d35
bne a0, a15, .Lbr044 # 576: f7901b
l32i a5, sp, 4 /* [(local1)] */ # 579: 5811
s32i a12, a5, 8 /* a12 -> [[(local1)]+0x8] */ # 57b: c925
l8ui a4, a12, 1 # 57d: 420c01
addi a4, a4, 2 # 580: 2b44
s32i a4, a5, 12 /* a4 -> [[(local1)]+0xc] */ # 582: 4935
.Lbr042: l8ui a3, a12, 1 # 584: 320c01
add a3, a3, a12 # 587: ca33
addi a3, a3, 2 # 589: 2b33
.Lbr043: mov a12, a3 # 58b: cd03
addi a4, a3, 1 # 58d: 1b43
bltu a4, a13, .Lbr040 # 58f: d734c6
j .Lbr046 # 592: 060600
.Lbr044: bne a0, a14, .Lbr043 # 595: e790f2
mov a2, a12 # 598: 2d0c
mov a3, a13 # 59a: 3d0d
l32i a4, sp, 4 /* [(local1)] */ # 59c: 4811
call0 .Lfunc002 # 59e: 85ebff
bltz a2, .Lbr046 # 5a1: 969200
blti a2, 1, .Lbr042 # 5a4: a612dc
movi a2, 0 /* 0x00000000 */ # 5a7: 0c02
j .Lbr046 # 5a9: 460000
.Lbr045: movi a2, -1 /* 0xffffffff */ # 5ac: 7cf2
.Lbr046: l32i a12, sp, 12 /* [(local3)] */ # 5ae: c831
l32i a13, sp, 16 /* [(local4)] */ # 5b0: d841
l32i a14, sp, 20 /* [(local5)] */ # 5b2: e851
l32i a15, sp, 24 /* [(local6)] */ # 5b4: f861
l32i a0, sp, 8 /* [(local2)] */ # 5b6: 0821
addi sp, sp, 32 /* (top of frame) */ # 5b8: 12c120
ret # 5bb: 0df0
.Lbr047: movi a2, 0 /* 0x00000000 */ # 5bd: 0c02
j .Lbr046 # 5bf: c6faff
.balign 4
# Function @ .irom0.text+0x5c4
.global sdk_wpa_auth_uses_mfp
.type sdk_wpa_auth_uses_mfp, @function
sdk_wpa_auth_uses_mfp:
beqz a2, .Lbr048 # 5c4: 8c92
addmi a2, a2, 256 /* arg0+0x100 */ # 5c6: 22d201
l8ui a2, a2, 116 /* [arg0+0x174] */ # 5c9: 220274
extui a2, a2, 4, 1 # 5cc: 202404
ret # 5cf: 0df0
.Lbr048: movi a2, 0 /* 0x00000000 */ # 5d1: 0c02
ret /* 0x00000000 */ # 5d3: 0df0

View file

@ -0,0 +1,864 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00ac0f00
# 4: 01ac0f00
# 8: 02ac0f00
# c: 04ac0f00
# 10: 05ac0f00
# Function @ .irom0.text+0x14
.Lfunc001: movi a3, 0x000fac00 # 14: 31fbff
l8ui a7, a2, 1 /* [arg0+0x1] */ # 17: 720201
l8ui a6, a2, 2 /* [arg0+0x2] */ # 1a: 620202
l8ui a5, a2, 3 /* [arg0+0x3] */ # 1d: 520203
slli a6, a6, 8 # 20: 806611
or a5, a5, a6 # 23: 605520
l8ui a6, a2, 0 /* [arg0] */ # 26: 620200
slli a7, a7, 16 # 29: 007711
slli a6, a6, 24 # 2c: 806601
or a6, a6, a7 # 2f: 706620
or a5, a5, a6 # 32: 605520
bne a5, a3, .Lbr001 # 35: 379503
movi a2, 1 /* 0x00000001 */ # 38: 0c12
ret /* 0x00000001 */ # 3a: 0df0
.Lbr001: movi a7, 0x000fac01 # 3c: 71f2ff
movi a8, 0x000fac02 # 3f: 81f2ff
bne a5, a7, .Lbr002 # 42: 779504
movi a2, 128 /* 0x00000080 */ # 45: 22a080
ret /* 0x00000080 */ # 48: 0df0
.Lbr002: bne a5, a8, .Lbr003 # 4a: 879503
movi a2, 2 /* 0x00000002 */ # 4d: 0c22
ret /* 0x00000002 */ # 4f: 0df0
.Lbr003: movi a9, 0x000fac04 # 51: 91eeff
movi a10, 0 /* 0x00000000 */ # 54: 0c0a
beq a5, a9, .Lbr004 # 56: 97150d
movi a11, 0x000fac05 # 59: b1edff
movi a2, 256 /* 0x00000100 */ # 5c: 22a100
sub a11, a5, a11 # 5f: b0b5c0
movnez a2, a10, a11 # 62: b02a93
ret # 65: 0df0
.Lbr004: movi a2, 8 /* 0x00000008 */ # 67: 0c82
ret /* 0x00000008 */ # 69: 0df0
.literal_position # 6c: 01ac0f00
# 70: 02ac0f00
# Function @ .irom0.text+0x74
.Lfunc002: movi a3, 0x000fac01 # 74: 31feff
l8ui a7, a2, 1 /* [arg0+0x1] */ # 77: 720201
l8ui a6, a2, 2 /* [arg0+0x2] */ # 7a: 620202
l8ui a5, a2, 3 /* [arg0+0x3] */ # 7d: 520203
slli a6, a6, 8 # 80: 806611
or a5, a5, a6 # 83: 605520
l8ui a6, a2, 0 /* [arg0] */ # 86: 620200
slli a7, a7, 16 # 89: 007711
slli a6, a6, 24 # 8c: 806601
or a6, a6, a7 # 8f: 706620
or a5, a5, a6 # 92: 605520
beq a5, a3, .Lbr005 # 95: 37150e
movi a7, 0 /* 0x00000000 */ # 98: 0c07
movi a8, 0x000fac02 # 9a: 81f5ff
movi a2, 2 /* 0x00000002 */ # 9d: 0c22
sub a8, a5, a8 # 9f: 8085c0
movnez a2, a7, a8 # a2: 802793
ret # a5: 0df0
.Lbr005: movi a2, 1 /* 0x00000001 */ # a7: 0c12
ret /* 0x00000001 */ # a9: 0df0
.literal_position # ac: 00f25000
# b0: 01f25000
# b4: 02f25000
# b8: 04f25000
# bc: 05f25000
# Function @ .irom0.text+0xc0
.Lfunc003: movi a3, 0x0050f200 # c0: 31fbff
l8ui a7, a2, 1 /* [arg0+0x1] */ # c3: 720201
l8ui a6, a2, 2 /* [arg0+0x2] */ # c6: 620202
l8ui a5, a2, 3 /* [arg0+0x3] */ # c9: 520203
slli a6, a6, 8 # cc: 806611
or a5, a5, a6 # cf: 605520
l8ui a6, a2, 0 /* [arg0] */ # d2: 620200
slli a7, a7, 16 # d5: 007711
slli a6, a6, 24 # d8: 806601
or a6, a6, a7 # db: 706620
or a5, a5, a6 # de: 605520
bne a5, a3, .Lbr006 # e1: 379503
movi a2, 1 /* 0x00000001 */ # e4: 0c12
ret /* 0x00000001 */ # e6: 0df0
.Lbr006: movi a7, 0x0050f201 # e8: 71f2ff
movi a8, 0x0050f202 # eb: 81f2ff
bne a5, a7, .Lbr007 # ee: 779504
movi a2, 128 /* 0x00000080 */ # f1: 22a080
ret /* 0x00000080 */ # f4: 0df0
.Lbr007: bne a5, a8, .Lbr008 # f6: 879503
movi a2, 2 /* 0x00000002 */ # f9: 0c22
ret /* 0x00000002 */ # fb: 0df0
.Lbr008: movi a9, 0x0050f204 # fd: 91eeff
movi a10, 0 /* 0x00000000 */ # 100: 0c0a
beq a5, a9, .Lbr009 # 102: 97150d
movi a11, 0x0050f205 # 105: b1edff
movi a2, 256 /* 0x00000100 */ # 108: 22a100
sub a11, a5, a11 # 10b: b0b5c0
movnez a2, a10, a11 # 10e: b02a93
ret # 111: 0df0
.Lbr009: movi a2, 8 /* 0x00000008 */ # 113: 0c82
ret /* 0x00000008 */ # 115: 0df0
.literal_position # 118: 01f25000
# 11c: 02f25000
# 120: 00f25000
# Function @ .irom0.text+0x124
.Lfunc004: movi a3, 0x0050f201 # 124: 31fdff
l8ui a7, a2, 1 /* [arg0+0x1] */ # 127: 720201
l8ui a6, a2, 2 /* [arg0+0x2] */ # 12a: 620202
l8ui a5, a2, 3 /* [arg0+0x3] */ # 12d: 520203
slli a6, a6, 8 # 130: 806611
or a5, a5, a6 # 133: 605520
l8ui a6, a2, 0 /* [arg0] */ # 136: 620200
slli a7, a7, 16 # 139: 007711
slli a6, a6, 24 # 13c: 806601
or a6, a6, a7 # 13f: 706620
or a5, a5, a6 # 142: 605520
bne a5, a3, .Lbr010 # 145: 379503
movi a2, 1 /* 0x00000001 */ # 148: 0c12
ret /* 0x00000001 */ # 14a: 0df0
.Lbr010: movi a7, 0x0050f202 # 14c: 71f4ff
movi a8, 0 /* 0x00000000 */ # 14f: 0c08
beq a5, a7, .Lbr011 # 151: 77150c
movi a9, 0x0050f200 # 154: 91f3ff
movi a2, 16 /* 0x00000010 */ # 157: 1c02
sub a9, a5, a9 # 159: 9095c0
movnez a2, a8, a9 # 15c: 902893
ret # 15f: 0df0
.Lbr011: movi a2, 2 /* 0x00000002 */ # 161: 0c22
ret /* 0x00000002 */ # 163: 0df0
.literal_position # 168: 00000000
# Function @ .irom0.text+0x16c
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_wpa_parse_wpa_ie_rsn
.type sdk_wpa_parse_wpa_ie_rsn, @function
sdk_wpa_parse_wpa_ie_rsn:
addi sp, sp, -32 /* (local0) */ # 16c: 12c1e0
s32i a15, sp, 20 /* a15 -> [(local5)] */ # 16f: f951
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 171: 0911
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 173: c921
s32i a14, sp, 16 /* a14 -> [(local4)] */ # 175: e941
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 177: d931
mov a14, a4 /* arg2 */ # 179: ed04
mov a13, a2 /* arg0 */ # 17b: dd02
mov a12, a3 /* arg1 */ # 17d: cd03
mov a2, a4 /* arg2 */ # 17f: 2d04
movi a3, 0 /* 0x00000000 */ # 181: 0c03
movi a4, 32 /* 0x00000020 */ # 183: 2c04
call0 memset # 185: 01f8ffc0
# 189: 0000
movi a15, 0 /* 0x00000000 */ # 18b: 0c0f
movi a0, 1 /* 0x00000001 */ # 18d: 0c10
movi a2, 2 /* 0x00000002 */ # 18f: 0c22
movi a3, 8 /* 0x00000008 */ # 191: 0c83
s32i a3, a14, 4 /* 0x00000008 -> [arg2+0x4] */ # 193: 391e
s32i a3, a14, 8 /* 0x00000008 -> [arg2+0x8] */ # 195: 392e
s32i a2, a14, 0 /* 0x00000002 -> [arg2] */ # 197: 290e
s32i a0, a14, 12 /* 0x00000001 -> [arg2+0xc] */ # 199: 093e
s32i a15, a14, 16 /* 0x00000000 -> [arg2+0x10] */ # 19b: f94e
s32i a15, a14, 24 /* 0x00000000 -> [arg2+0x18] */ # 19d: f96e
s32i a15, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 19f: f95e
s32i a15, a14, 28 /* 0x00000000 -> [arg2+0x1c] */ # 1a1: f97e
beqz a12, .Lbr014 # 1a3: bc8c
bltui a12, 4, .Lbr014 # 1a5: b64c36
l8ui a4, a13, 0 /* [arg0] */ # 1a8: 420d00
movi a5, 48 /* 0x00000030 */ # 1ab: 3c05
bne a4, a5, .Lbr012 # 1ad: 57941d
l8ui a6, a13, 1 /* [arg0+0x1] */ # 1b0: 620d01
addi a7, a12, -2 /* arg1-0x2 */ # 1b3: 72ccfe
bne a6, a7, .Lbr012 # 1b6: 779614
l8ui a9, a13, 3 /* [arg0+0x3] */ # 1b9: 920d03
l8ui a8, a13, 2 /* [arg0+0x2] */ # 1bc: 820d02
slli a9, a9, 8 # 1bf: 809911
or a8, a8, a9 # 1c2: 908820
slli a8, a8, 16 # 1c5: 008811
srai a8, a8, 16 # 1c8: 808031
beqi a8, 1, .Lbr015 # 1cb: 261815
.Lbr012: movi a2, -2 /* 0xfffffffe */ # 1ce: 7ce2
.Lbr013: l32i a12, sp, 8 /* [(local2)] */ # 1d0: c821
l32i a13, sp, 12 /* [(local3)] */ # 1d2: d831
l32i a14, sp, 16 /* [(local4)] */ # 1d4: e841
l32i a15, sp, 20 /* [(local5)] */ # 1d6: f851
l32i a0, sp, 4 /* [(local1)] */ # 1d8: 0811
addi sp, sp, 32 /* (top of frame) */ # 1da: 12c120
ret # 1dd: 0df0
.Lbr014: movi a2, -1 /* 0xffffffff */ # 1df: 7cf2
j .Lbr013 # 1e1: c6faff
.Lbr015: addi a13, a13, 4 /* arg0+0x4 */ # 1e4: 4bdd
addi a10, a12, -4 /* arg1-0x4 */ # 1e6: a2ccfc
s32i a10, sp, 0 /* arg1-0x4 -> [(local0)] */ # 1e9: a901
mov a12, a10 /* arg1-0x4 */ # 1eb: cd0a
bgei a10, 4, .Lbr016 # 1ed: e64a02
j .Lbr026 # 1f0: 063700
.Lbr016: mov a2, a13 /* arg0+0x4 */ # 1f3: 2d0d
call0 .Lfunc001 # 1f5: c5e1ff
addi a13, a13, 4 /* arg0+0x8 */ # 1f8: 4bdd
l32i a12, sp, 0 /* [(local0)] */ # 1fa: c801
s32i a2, a14, 8 /* a2 -> [arg2+0x8] */ # 1fc: 292e
addi a12, a12, -4 /* [(local0)]-0x4 */ # 1fe: c2ccfc
.Lbr017: bgei a12, 2, .Lbr018 # 201: e62c02
j .Lbr030 # 204: 063700
.Lbr018: addi a12, a12, -2 # 207: c2ccfe
s32i a15, a14, 4 /* 0x00000000 -> [arg2+0x4] */ # 20a: f91e
l8ui a0, a13, 0 # 20c: 020d00
l8ui a2, a13, 1 # 20f: 220d01
addi a13, a13, 2 # 212: 2bdd
slli a2, a2, 8 # 214: 802211
or a0, a0, a2 # 217: 200020
extui a0, a0, 0, 16 # 21a: 0000f4
s32i a0, sp, 24 /* a0 -> [(local6)] */ # 21d: 0961
beqz a0, .Lbr032 # 21f: 16300d
slli a3, a0, 2 # 222: e03011
bge a12, a3, .Lbr019 # 225: 37ac02
j .Lbr032 # 228: 863200
.Lbr019: blti a0, 1, .Lbr021 # 22b: a61019
movi a15, 0 /* 0x00000000 */ # 22e: 0c0f
.Lbr020: mov a2, a13 # 230: 2d0d
call0 .Lfunc001 # 232: 05deff
addi a13, a13, 4 # 235: 4bdd
addi a12, a12, -4 # 237: c2ccfc
addi a15, a15, 1 # 23a: 1bff
l32i a6, a14, 4 /* [arg2+0x4] */ # 23c: 681e
l32i a5, sp, 24 /* [(local6)] */ # 23e: 5861
or a6, a6, a2 # 240: 206620
s32i a6, a14, 4 /* a6 -> [arg2+0x4] */ # 243: 691e
bne a5, a15, .Lbr020 # 245: f795e7
.Lbr021: movi a15, 0 /* 0x00000000 */ # 248: 0c0f
bgei a12, 2, .Lbr022 # 24a: e62c02
j .Lbr031 # 24d: 462700
.Lbr022: addi a12, a12, -2 # 250: c2ccfe
s32i a15, a14, 12 /* 0x00000000 -> [arg2+0xc] */ # 253: f93e
l8ui a7, a13, 0 # 255: 720d00
l8ui a8, a13, 1 # 258: 820d01
addi a13, a13, 2 # 25b: 2bdd
slli a8, a8, 8 # 25d: 808811
or a7, a7, a8 # 260: 807720
extui a7, a7, 0, 16 # 263: 7070f4
s32i a7, sp, 24 /* a7 -> [(local6)] */ # 266: 7961
beqz a7, .Lbr033 # 268: 16f708
slli a9, a7, 2 # 26b: e09711
bge a12, a9, .Lbr023 # 26e: 97ac02
j .Lbr033 # 271: 862100
.Lbr023: blti a7, 1, .Lbr025 # 274: a61719
movi a15, 0 /* 0x00000000 */ # 277: 0c0f
.Lbr024: mov a2, a13 # 279: 2d0d
call0 .Lfunc002 # 27b: 85dfff
addi a13, a13, 4 # 27e: 4bdd
addi a12, a12, -4 # 280: c2ccfc
addi a15, a15, 1 # 283: 1bff
l32i a0, a14, 12 /* [arg2+0xc] */ # 285: 083e
l32i a11, sp, 24 /* [(local6)] */ # 287: b861
or a0, a0, a2 # 289: 200020
s32i a0, a14, 12 /* a0 -> [arg2+0xc] */ # 28c: 093e
bne a11, a15, .Lbr024 # 28e: f79be7
.Lbr025: movi a15, 0 /* 0x00000000 */ # 291: 0c0f
blti a12, 2, .Lbr029 # 293: a62c48
addi a12, a12, -2 # 296: c2ccfe
l8ui a2, a13, 0 # 299: 220d00
l8ui a3, a13, 1 # 29c: 320d01
addi a13, a13, 2 # 29f: 2bdd
slli a3, a3, 8 # 2a1: 803311
or a2, a2, a3 # 2a4: 302220
extui a2, a2, 0, 16 # 2a7: 2020f4
s32i a2, a14, 16 /* a2 -> [arg2+0x10] */ # 2aa: 294e
blti a12, 2, .Lbr029 # 2ac: a62c2f
addi a4, a12, -2 # 2af: 42ccfe
l8ui a6, a13, 1 # 2b2: 620d01
l8ui a5, a13, 0 # 2b5: 520d00
slli a6, a6, 8 # 2b8: 806611
or a5, a5, a6 # 2bb: 605520
extui a5, a5, 0, 16 # 2be: 5050f4
s32i a5, a14, 20 /* a5 -> [arg2+0x14] */ # 2c1: 595e
slli a5, a5, 4 # 2c3: c05511
bge a4, a5, .Lbr028 # 2c6: 57a411
s32i a15, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 2c9: f95e
movi a2, -9 /* 0xfffffff7 */ # 2cb: 7c72
j .Lbr013 # 2cd: c6bfff
.Lbr026: bgei a10, 1, .Lbr027 # 2d0: e61a02
j .Lbr017 # 2d3: 86caff
.Lbr027: movi a2, -3 /* 0xfffffffd */ # 2d6: 7cd2
j .Lbr013 # 2d8: 06bdff
.Lbr028: addi a7, a13, 2 # 2db: 2b7d
s32i a7, a14, 24 /* a7 -> [arg2+0x18] */ # 2dd: 796e
.Lbr029: movi a2, 0 /* 0x00000000 */ # 2df: 0c02
j .Lbr013 # 2e1: c6baff
.Lbr030: addi a8, a12, -1 # 2e4: 0b8c
bnez a8, .Lbr021 # 2e6: 56e8f5
movi a2, -5 /* 0xfffffffb */ # 2e9: 7cb2
j .Lbr013 # 2eb: 46b8ff
.Lbr031: bnei a12, 1, .Lbr025 # 2ee: 661c9f
movi a2, -7 /* 0xfffffff9 */ # 2f1: 7c92
j .Lbr013 # 2f3: 46b6ff
.Lbr032: movi a2, -4 /* 0xfffffffc */ # 2f6: 7cc2
j .Lbr013 # 2f8: 06b5ff
.Lbr033: movi a2, -6 /* 0xfffffffa */ # 2fb: 7ca2
j .Lbr013 # 2fd: c6b3ff
.literal_position # 300: 01f25000
# 304: 00000000
# Function @ .irom0.text+0x308
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word[3] @ -0xc
.global sdk_wpa_parse_wpa_ie_wpa
.type sdk_wpa_parse_wpa_ie_wpa, @function
sdk_wpa_parse_wpa_ie_wpa:
addi sp, sp, -32 /* (local0) */ # 308: 12c1e0
s32i a15, sp, 16 /* a15 -> [(local4)] */ # 30b: f941
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 30d: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 30f: c911
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 311: e931
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 313: d921
mov a14, a4 /* arg2 */ # 315: ed04
mov a13, a2 /* arg0 */ # 317: dd02
mov a12, a3 /* arg1 */ # 319: cd03
mov a2, a4 /* arg2 */ # 31b: 2d04
movi a3, 0 /* 0x00000000 */ # 31d: 0c03
movi a4, 32 /* 0x00000020 */ # 31f: 2c04
call0 memset # 321: 01f8ffc0
# 325: 0000
movi a0, 1 /* 0x00000001 */ # 327: 0c10
movi a2, 2 /* 0x00000002 */ # 329: 0c22
s32i a2, a14, 4 /* 0x00000002 -> [arg2+0x4] */ # 32b: 291e
s32i a0, a14, 0 /* 0x00000001 -> [arg2] */ # 32d: 090e
s32i a0, a14, 12 /* 0x00000001 -> [arg2+0xc] */ # 32f: 093e
s32i a2, a14, 8 /* 0x00000002 -> [arg2+0x8] */ # 331: 292e
movi a0, 0 /* 0x00000000 */ # 333: 0c00
s32i a0, a14, 16 /* 0x00000000 -> [arg2+0x10] */ # 335: 094e
s32i a0, a14, 24 /* 0x00000000 -> [arg2+0x18] */ # 337: 096e
s32i a0, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 339: 095e
s32i a0, a14, 28 /* 0x00000000 -> [arg2+0x1c] */ # 33b: 097e
beqz a12, .Lbr036 # 33d: 16ec05
bltui a12, 8, .Lbr036 # 340: b68c5b
l8ui a3, a13, 0 /* [arg0] */ # 343: 320d00
movi a4, 221 /* 0x000000dd */ # 346: 42a0dd
bne a3, a4, .Lbr034 # 349: 479341
l8ui a5, a13, 1 /* [arg0+0x1] */ # 34c: 520d01
addi a6, a12, -2 /* arg1-0x2 */ # 34f: 62ccfe
bne a5, a6, .Lbr034 # 352: 679538
l8ui a7, a13, 5 /* [arg0+0x5] */ # 355: 720d05
l8ui a9, a13, 2 /* [arg0+0x2] */ # 358: 920d02
l8ui a10, a13, 3 /* [arg0+0x3] */ # 35b: a20d03
l8ui a8, a13, 4 /* [arg0+0x4] */ # 35e: 820d04
slli a10, a10, 16 # 361: 00aa11
slli a8, a8, 8 # 364: 808811
slli a9, a9, 24 # 367: 809901
or a7, a7, a8 # 36a: 807720
movi a8, 0x0050f201 # 36d: 81e4ff
or a9, a9, a10 # 370: a09920
or a7, a7, a9 # 373: 907720
bne a7, a8, .Lbr034 # 376: 879714
l8ui a10, a13, 7 /* [arg0+0x7] */ # 379: a20d07
l8ui a9, a13, 6 /* [arg0+0x6] */ # 37c: 920d06
slli a10, a10, 8 # 37f: 80aa11
or a9, a9, a10 # 382: a09920
slli a9, a9, 16 # 385: 009911
srai a9, a9, 16 # 388: 909031
beqi a9, 1, .Lbr037 # 38b: 261915
.Lbr034: movi a2, -2 /* 0xfffffffe */ # 38e: 7ce2
.Lbr035: l32i a12, sp, 4 /* [(local1)] */ # 390: c811
l32i a13, sp, 8 /* [(local2)] */ # 392: d821
l32i a14, sp, 12 /* [(local3)] */ # 394: e831
l32i a15, sp, 16 /* [(local4)] */ # 396: f841
l32i a0, sp, 0 /* [(local0)] */ # 398: 0801
addi sp, sp, 32 /* (top of frame) */ # 39a: 12c120
ret # 39d: 0df0
.Lbr036: movi a2, -1 /* 0xffffffff */ # 39f: 7cf2
j .Lbr035 # 3a1: c6faff
.Lbr037: addi a13, a13, 8 /* arg0+0x8 */ # 3a4: 8bdd
addi a15, a12, -8 /* arg1-0x8 */ # 3a6: f2ccf8
mov a12, a15 /* arg1-0x8 */ # 3a9: cd0f
bgei a15, 4, .Lbr038 # 3ab: e64f02
j .Lbr047 # 3ae: 062d00
.Lbr038: mov a2, a13 /* arg0+0x8 */ # 3b1: 2d0d
call0 .Lfunc003 # 3b3: c5d0ff
movi a0, 0 /* 0x00000000 */ # 3b6: 0c00
addi a13, a13, 4 /* arg0+0xc */ # 3b8: 4bdd
addi a12, a15, -4 /* arg1-0xc */ # 3ba: c2cffc
s32i a2, a14, 8 /* a2 -> [arg2+0x8] */ # 3bd: 292e
.Lbr039: bgei a12, 2, .Lbr040 # 3bf: e62c02
j .Lbr049 # 3c2: c62a00
.Lbr040: addi a12, a12, -2 # 3c5: c2ccfe
s32i a0, a14, 4 /* 0x00000000 -> [arg2+0x4] */ # 3c8: 091e
l8ui a15, a13, 0 # 3ca: f20d00
l8ui a2, a13, 1 # 3cd: 220d01
addi a13, a13, 2 # 3d0: 2bdd
slli a2, a2, 8 # 3d2: 802211
or a15, a15, a2 # 3d5: 20ff20
extui a15, a15, 0, 16 # 3d8: f0f0f4
beqz a15, .Lbr051 # 3db: 162f0a
slli a3, a15, 2 # 3de: e03f11
bge a12, a3, .Lbr041 # 3e1: 37ac02
j .Lbr051 # 3e4: 462600
.Lbr041: blti a15, 1, .Lbr043 # 3e7: a61f1f
movi a4, 0 /* 0x00000000 */ # 3ea: 0c04
s32i a4, sp, 20 /* 0x00000000 -> [(local5)] */ # 3ec: 4951
.Lbr042: mov a2, a13 # 3ee: 2d0d
call0 .Lfunc003 # 3f0: c5ccff
addi a13, a13, 4 # 3f3: 4bdd
addi a12, a12, -4 # 3f5: c2ccfc
l32i a5, sp, 20 /* [(local5)] */ # 3f8: 5851
l32i a6, a14, 4 /* [arg2+0x4] */ # 3fa: 681e
addi a5, a5, 1 /* [(local5)]+0x1 */ # 3fc: 1b55
or a6, a6, a2 # 3fe: 206620
s32i a6, a14, 4 /* a6 -> [arg2+0x4] */ # 401: 691e
s32i a5, sp, 20 /* [(local5)]+0x1 -> [(local5)] */ # 403: 5951
bne a15, a5, .Lbr042 # 405: 579fe5
movi a0, 0 /* 0x00000000 */ # 408: 0c00
.Lbr043: blti a12, 2, .Lbr050 # 40a: a62c6b
addi a12, a12, -2 # 40d: c2ccfe
s32i a0, a14, 12 /* 0x00000000 -> [arg2+0xc] */ # 410: 093e
l8ui a15, a13, 0 # 412: f20d00
l8ui a2, a13, 1 # 415: 220d01
addi a13, a13, 2 # 418: 2bdd
slli a2, a2, 8 # 41a: 802211
or a15, a15, a2 # 41d: 20ff20
extui a15, a15, 0, 16 # 420: f0f0f4
beqz a15, .Lbr052 # 423: 16ff05
slli a3, a15, 2 # 426: e03f11
blt a12, a3, .Lbr052 # 429: 372c59
blti a15, 1, .Lbr045 # 42c: a61f1d
movi a4, 0 /* 0x00000000 */ # 42f: 0c04
s32i a4, sp, 20 /* 0x00000000 -> [(local5)] */ # 431: 4951
.Lbr044: mov a2, a13 # 433: 2d0d
call0 .Lfunc004 # 435: c5ceff
addi a13, a13, 4 # 438: 4bdd
addi a12, a12, -4 # 43a: c2ccfc
l32i a5, sp, 20 /* [(local5)] */ # 43d: 5851
l32i a6, a14, 12 /* [arg2+0xc] */ # 43f: 683e
addi a5, a5, 1 /* [(local5)]+0x1 */ # 441: 1b55
or a6, a6, a2 # 443: 206620
s32i a6, a14, 12 /* a6 -> [arg2+0xc] */ # 446: 693e
s32i a5, sp, 20 /* [(local5)]+0x1 -> [(local5)] */ # 448: 5951
bne a15, a5, .Lbr044 # 44a: 579fe5
.Lbr045: blti a12, 2, .Lbr046 # 44d: a62c10
l8ui a8, a13, 1 # 450: 820d01
l8ui a7, a13, 0 # 453: 720d00
slli a8, a8, 8 # 456: 808811
or a7, a7, a8 # 459: 807720
extui a7, a7, 0, 16 # 45c: 7070f4
s32i a7, a14, 16 /* a7 -> [arg2+0x10] */ # 45f: 794e
.Lbr046: movi a2, 0 /* 0x00000000 */ # 461: 0c02
j .Lbr035 # 463: 46caff
.Lbr047: bgei a15, 1, .Lbr048 # 466: e61f02
j .Lbr039 # 469: 86d4ff
.Lbr048: movi a2, -3 /* 0xfffffffd */ # 46c: 7cd2
j .Lbr035 # 46e: 86c7ff
.Lbr049: bnei a12, 1, .Lbr043 # 471: 661c95
movi a2, -5 /* 0xfffffffb */ # 474: 7cb2
j .Lbr035 # 476: 86c5ff
.Lbr050: bnei a12, 1, .Lbr045 # 479: 661cd0
movi a2, -7 /* 0xfffffff9 */ # 47c: 7c92
j .Lbr035 # 47e: 86c3ff
.Lbr051: movi a2, -4 /* 0xfffffffc */ # 481: 7cc2
j .Lbr035 # 483: 46c2ff
.Lbr052: movi a2, -6 /* 0xfffffffa */ # 486: 7ca2
j .Lbr035 # 488: 06c1ff
.literal_position # 48c: 00000000
# 490: 00000000
# 494: 00000000
# Function @ .irom0.text+0x498
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_wpa_eapol_key_mic
.type sdk_wpa_eapol_key_mic, @function
sdk_wpa_eapol_key_mic:
addi sp, sp, -48 /* (FP)-0x30 */ # 498: 12c1d0
s32i a0, sp, 36 /* a0 -> [(local1)] */ # 49b: 0991
beqi a3, 1, .Lbr054 # 49d: 261309
s32i a6, sp, 32 /* arg4 -> [(local0)] */ # 4a0: 6981
beqi a3, 2, .Lbr056 # 4a2: 262313
.Lbr053: movi a2, -1 /* 0xffffffff */ # 4a5: 7cf2
j .Lbr055 # 4a7: c60100
.Lbr054: movi a3, 16 /* 0x00000010 */ # 4aa: 1c03
call0 sdk_hmac_md5 # 4ac: 01f8ffc0
# 4b0: 0000
.Lbr055: l32i a0, sp, 36 /* [(local1)] */ # 4b2: 0891
addi sp, sp, 48 /* (top of frame) */ # 4b4: 12c130
ret # 4b7: 0df0
.Lbr056: movi a3, 16 /* 0x00000010 */ # 4b9: 1c03
mov a6, sp /* (FP)-0x30 */ # 4bb: 6d01
call0 sdk_hmac_sha1 # 4bd: 01f4ffc0
# 4c1: 0000
bnez a2, .Lbr053 # 4c3: 56e2fd
l32i a2, sp, 32 /* [(local0)] */ # 4c6: 2881
mov a3, sp /* (FP)-0x30 */ # 4c8: 3d01
movi a4, 16 /* 0x00000010 */ # 4ca: 1c04
call0 memcpy # 4cc: 01f2ffc0
# 4d0: 0000
movi a2, 0 /* 0x00000000 */ # 4d2: 0c02
j .Lbr055 # 4d4: 86f6ff
.literal_position # 4d8: 00000000
# Function @ .irom0.text+0x4dc
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_compare_rsn_ie
.type sdk_wpa_compare_rsn_ie, @function
sdk_wpa_compare_rsn_ie:
addi sp, sp, -16 /* (local0) */ # 4dc: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4df: 0901
beqz a3, .Lbr057 # 4e1: 9c43
beqz a5, .Lbr057 # 4e3: 9c25
bne a4, a6, .Lbr057 # 4e5: 679410
mov a2, a3 /* arg1 */ # 4e8: 2d03
mov a3, a5 /* arg3 */ # 4ea: 3d05
call0 memcmp # 4ec: 01fbffc0
# 4f0: 0000
bnez a2, .Lbr057 # 4f2: cc32
movi a2, 0 /* 0x00000000 */ # 4f4: 0c02
j .Lbr058 # 4f6: 460000
.Lbr057: movi a2, -1 /* 0xffffffff */ # 4f9: 7cf2
.Lbr058: l32i a0, sp, 0 /* [(local0)] */ # 4fb: 0801
addi sp, sp, 16 /* (top of frame) */ # 4fd: 12c110
ret # 500: 0df0
.literal_position # 504: 00000000
# 508: 00000000
# 50c: 00000000
# 510: 00000000
# 514: 00000000
# 518: 00000000
# 51c: 00000000
# 520: 00000000
# 524: 00000000
# 528: 00000000
# 52c: 00000000
# Function @ .irom0.text+0x530
# Local variables/stack:
# (local0): word[24] @ -0x80
# (local1): word @ -0x20
# (local2): word @ -0x1c
# (local3): word @ -0x18
# (local4): word @ -0x14
# (local5): word @ -0x10
# (local6): word @ -0xc
# (local7): word @ -0x8
# (local8): word @ -0x4
.global sdk_wpa_pmk_to_ptk
.type sdk_wpa_pmk_to_ptk, @function
sdk_wpa_pmk_to_ptk:
addi sp, sp, -128 /* (local0) */ # 530: 12c180
s32i a15, sp, 124 /* a15 -> [(local8)] */ # 533: f2611f
s32i a0, sp, 108 /* a0 -> [(local4)] */ # 536: 02611b
s32i a4, sp, 104 /* arg2 -> [(local3)] */ # 539: 42611a
s32i a13, sp, 116 /* a13 -> [(local6)] */ # 53c: d2611d
s32i a14, sp, 120 /* a14 -> [(local7)] */ # 53f: e2611e
s32i a3, sp, 100 /* arg1 -> [(local2)] */ # 542: 326119
s32i a12, sp, 112 /* a12 -> [(local5)] */ # 545: c2611c
s32i a2, sp, 96 /* arg0 -> [(local1)] */ # 548: 226118
mov a12, a7 /* arg5 */ # 54b: cd07
mov a2, a5 /* arg3 */ # 54d: 2d05
mov a3, a6 /* arg4 */ # 54f: 3d06
mov a14, a5 /* arg3 */ # 551: ed05
mov a13, a6 /* arg4 */ # 553: dd06
movi a4, 6 /* 0x00000006 */ # 555: 0c64
call0 memcmp # 557: 01ebffc0
# 55b: 0000
addi a15, sp, 22 /* (FP)-0x6a */ # 55d: f2c116
bgez a2, .Lbr059 # 560: d6b201
mov a3, a14 /* arg3 */ # 563: 3d0e
addi a2, sp, 16 /* (FP)-0x70 */ # 565: 22c110
movi a4, 6 /* 0x00000006 */ # 568: 0c64
call0 memcpy # 56a: 01e7ffc0
# 56e: 0000
mov a3, a13 /* arg4 */ # 570: 3d0d
mov a2, a15 /* (FP)-0x6a */ # 572: 2d0f
movi a4, 6 /* 0x00000006 */ # 574: 0c64
call0 memcpy # 576: 01e5ffc0
# 57a: 0000
j .Lbr060 # 57c: 060600
.Lbr059: mov a3, a13 /* arg4 */ # 57f: 3d0d
addi a2, sp, 16 /* (FP)-0x70 */ # 581: 22c110
movi a4, 6 /* 0x00000006 */ # 584: 0c64
call0 memcpy # 586: 01e2ffc0
# 58a: 0000
mov a3, a14 /* arg3 */ # 58c: 3d0e
mov a2, a15 /* (FP)-0x6a */ # 58e: 2d0f
movi a4, 6 /* 0x00000006 */ # 590: 0c64
call0 memcpy # 592: 01e0ffc0
# 596: 0000
.Lbr060: mov a2, a12 /* arg5 */ # 598: 2d0c
l32i a14, sp, 128 /* [(local9)] */ # 59a: e22120
movi a4, 32 /* 0x00000020 */ # 59d: 2c04
mov a3, a14 /* [(local9)] */ # 59f: 3d0e
call0 memcmp # 5a1: 01ddffc0
# 5a5: 0000
addi a13, sp, 60 /* (FP)-0x44 */ # 5a7: d2c13c
mov a15, a2 # 5aa: fd02
addi a2, sp, 28 /* (FP)-0x64 */ # 5ac: 22c11c
bgez a15, .Lbr061 # 5af: d68f01
mov a3, a12 /* arg5 */ # 5b2: 3d0c
movi a4, 32 /* 0x00000020 */ # 5b4: 2c04
call0 memcpy # 5b6: 01d9ffc0
# 5ba: 0000
mov a3, a14 /* [(local9)] */ # 5bc: 3d0e
mov a2, a13 /* (FP)-0x44 */ # 5be: 2d0d
movi a4, 32 /* 0x00000020 */ # 5c0: 2c04
call0 memcpy # 5c2: 01d7ffc0
# 5c6: 0000
j .Lbr062 # 5c8: 460500
.Lbr061: mov a3, a14 /* [(local9)] */ # 5cb: 3d0e
movi a4, 32 /* 0x00000020 */ # 5cd: 2c04
call0 memcpy # 5cf: 01d5ffc0
# 5d3: 0000
mov a3, a12 /* arg5 */ # 5d5: 3d0c
mov a2, a13 /* (FP)-0x44 */ # 5d7: 2d0d
movi a4, 32 /* 0x00000020 */ # 5d9: 2c04
call0 memcpy # 5db: 01d3ffc0
# 5df: 0000
.Lbr062: l32i a2, sp, 96 /* [(local1)] */ # 5e1: 222118
l32i a3, sp, 100 /* [(local2)] */ # 5e4: 322119
l32i a4, sp, 104 /* [(local3)] */ # 5e7: 42211a
l32i a7, sp, 132 /* [(FP)+0x4] */ # 5ea: 722121
addi a5, sp, 16 /* (FP)-0x70 */ # 5ed: 52c110
movi a6, 76 /* 0x0000004c */ # 5f0: 4cc6
l32i a0, sp, 136 /* [(FP)+0x8] */ # 5f2: 022122
s32i a0, sp, 0 /* [(FP)+0x8] -> [(local0)] */ # 5f5: 0901
call0 sdk_sha1_prf # 5f7: 01cdffc0
# 5fb: 0000
l32i a12, sp, 112 /* [(local5)] */ # 5fd: c2211c
l32i a13, sp, 116 /* [(local6)] */ # 600: d2211d
l32i a14, sp, 120 /* [(local7)] */ # 603: e2211e
l32i a15, sp, 124 /* [(local8)] */ # 606: f2211f
movi a2, 128 /* 0x00000080 */ # 609: 22a080
l32i a0, sp, 108 /* [(local4)] */ # 60c: 02211b
add sp, sp, a2 /* (local9) */ # 60f: 2a11
ret /* 0x00000080 */ # 611: 0df0
.literal_position # 614: 00000000
# 618: 00000000
# 61c: 00000000
# 620: 00000000
# Function @ .irom0.text+0x624
# Local variables/stack:
# (local0): word @ -0x40
# (local1): word @ -0x3c
# (local2): word[10] @ -0x38
# (local3): word @ -0x10
# (local4): word[3] @ -0xc
.global sdk_rsn_pmkid
.type sdk_rsn_pmkid, @function
sdk_rsn_pmkid:
addi sp, sp, -64 /* (local0) */ # 624: 12c1c0
addi a7, sp, 16 /* (FP)-0x30 */ # 627: 72c110
s32i a0, sp, 52 /* a0 -> [(local4)] */ # 62a: 09d1
s32i a6, sp, 48 /* arg4 -> [(local3)] */ # 62c: 69c1
s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 62e: 4911
s32i a5, sp, 8 /* arg3 -> [(local2)] */ # 630: 5921
movi a4, 3 /* 0x00000003 */ # 632: 0c34
mov a5, sp /* (local0) */ # 634: 5d01
movi a6, .Ldata001 # 636: 61f8ff
movi a0, .Lstr001 # 639: 01f6ff
s32i a0, sp, 0 /* .Lstr001 -> [(local0)] */ # 63c: 0901
call0 sdk_hmac_sha1_vector # 63e: 01f7ffc0
# 642: 0000
l32i a2, sp, 48 /* [(local3)] */ # 644: 28c1
addi a3, sp, 16 /* (FP)-0x30 */ # 646: 32c110
movi a4, 16 /* 0x00000010 */ # 649: 1c04
call0 memcpy # 64b: 01f5ffc0
# 64f: 0000
l32i a0, sp, 52 /* [(local4)] */ # 651: 08d1
addi sp, sp, 64 /* (top of frame) */ # 653: 12c140
ret # 656: 0df0
# Function @ .irom0.text+0x658
.global sdk_wpa_cipher_key_len
.type sdk_wpa_cipher_key_len, @function
sdk_wpa_cipher_key_len:
beqi a2, 2, .Lbr063 # 658: 262214
beqi a2, 8, .Lbr064 # 65b: 268215
beqi a2, 64, .Lbr064 # 65e: 26d212
beqi a2, 128, .Lbr065 # 661: 26e213
addmi a4, a2, -256 /* arg0-0x100 */ # 664: 42d2ff
movi a3, 13 /* 0x0000000d */ # 667: 0cd3
movi a2, 0 /* 0x00000000 */ # 669: 0c02
moveqz a2, a3, a4 # 66b: 402383
ret # 66e: 0df0
.Lbr063: movi a2, 32 /* 0x00000020 */ # 670: 2c02
ret /* 0x00000020 */ # 672: 0df0
.Lbr064: movi a2, 16 /* 0x00000010 */ # 674: 1c02
ret /* 0x00000010 */ # 676: 0df0
.Lbr065: movi a2, 5 /* 0x00000005 */ # 678: 0c52
ret /* 0x00000005 */ # 67a: 0df0
# Function @ .irom0.text+0x67c
.global sdk_wpa_cipher_to_alg
.type sdk_wpa_cipher_to_alg, @function
sdk_wpa_cipher_to_alg:
beqi a2, 2, .Lbr066 # 67c: 26220f
beqi a2, 8, .Lbr068 # 67f: 268214
beqi a2, 64, .Lbr069 # 682: 26d215
beqi a2, 128, .Lbr067 # 685: 26e20a
beqi a2, 0x100, .Lbr067 # 688: 26f207
movi a2, 0 /* 0x00000000 */ # 68b: 0c02
ret /* 0x00000000 */ # 68d: 0df0
.Lbr066: movi a2, 2 /* 0x00000002 */ # 68f: 0c22
ret /* 0x00000002 */ # 691: 0df0
.Lbr067: movi a2, 6 /* 0x00000006 */ # 693: 0c62
ret /* 0x00000006 */ # 695: 0df0
.Lbr068: movi a2, 3 /* 0x00000003 */ # 697: 0c32
ret /* 0x00000003 */ # 699: 0df0
.Lbr069: movi a2, 9 /* 0x00000009 */ # 69b: 0c92
ret /* 0x00000009 */ # 69d: 0df0
.literal_position # 6a0: 04f25000
# 6a4: 04ac0f00
# 6a8: 08ac0f00
# 6ac: 02f25000
# 6b0: 02ac0f00
# 6b4: 05f25000
# 6b8: 05ac0f00
# 6bc: 01f25000
# 6c0: 01ac0f00
# 6c4: 00f25000
# 6c8: 00ac0f00
# Function @ .irom0.text+0x6cc
.global sdk_wpa_cipher_to_suite
.type sdk_wpa_cipher_to_suite, @function
sdk_wpa_cipher_to_suite:
bbci a3, 3, .Lbr073 # 6cc: 376314
movi a5, 0x000fac04 # 6cf: 51f5ff
movi a3, 0x0050f204 # 6d2: 31f3ff
.Lbr070: addi a4, a2, -2 /* arg0-0x2 */ # 6d5: 42c2fe
moveqz a3, a5, a4 # 6d8: 403583
j .Lbr072 # 6db: 460000
.Lbr071: movi a3, 0 /* 0x00000000 */ # 6de: 0c03
.Lbr072: mov a2, a3 # 6e0: 2d03
ret # 6e2: 0df0
.Lbr073: bbci a3, 6, .Lbr074 # 6e4: 676305
movi a3, 0x000fac08 # 6e7: 31f0ff
j .Lbr072 # 6ea: 86fcff
.Lbr074: bbci a3, 1, .Lbr075 # 6ed: 176308
movi a5, 0x000fac02 # 6f0: 51f0ff
movi a3, 0x0050f202 # 6f3: 31eeff
j .Lbr070 # 6f6: c6f6ff
.Lbr075: bbci a3, 8, .Lbr076 # 6f9: 876308
movi a5, 0x000fac05 # 6fc: 51efff
movi a3, 0x0050f205 # 6ff: 31edff
j .Lbr070 # 702: c6f3ff
.Lbr076: bbci a3, 7, .Lbr077 # 705: 776308
movi a5, 0x000fac01 # 708: 51eeff
movi a3, 0x0050f201 # 70b: 31ecff
j .Lbr070 # 70e: c6f0ff
.Lbr077: bbci a3, 0, .Lbr071 # 711: 0763c9
movi a5, 0x000fac00 # 714: 51edff
movi a3, 0x0050f200 # 717: 31ebff
j .Lbr070 # 71a: c6edff
.balign 4
# Function @ .irom0.text+0x720
.global sdk_rsn_cipher_put_suites
.type sdk_rsn_cipher_put_suites, @function
sdk_rsn_cipher_put_suites:
movi a8, 15 /* 0x0000000f */ # 720: 0cf8
movi a9, 8 /* 0x00000008 */ # 722: 0c89
movi a7, -84 /* 0xffffffac */ # 724: 72afac
movi a6, 0 /* 0x00000000 */ # 727: 0c06
bbci a3, 3, .Lbr078 # 729: 376314
movi a5, 1 /* 0x00000001 */ # 72c: 0c15
s8i a6, a2, 0 /* 0x00 -> [arg0] */ # 72e: 624200
s8i a8, a2, 1 /* 0x0f -> [arg0+0x1] */ # 731: 824201
movi a4, 4 /* 0x00000004 */ # 734: 0c44
s8i a7, a2, 2 /* 0xac -> [arg0+0x2] */ # 736: 724202
s8i a4, a2, 3 /* 0x04 -> [arg0+0x3] */ # 739: 424203
addi a2, a2, 4 /* arg0+0x4 */ # 73c: 4b22
j .Lbr079 # 73e: 460000
.Lbr078: mov a5, a6 /* 0x00000000 */ # 741: 5d06
.Lbr079: bbci a3, 6, .Lbr080 # 743: 67630f
addi a5, a5, 1 # 746: 1b55
s8i a9, a2, 3 # 748: 924203
s8i a6, a2, 0 # 74b: 624200
s8i a8, a2, 1 # 74e: 824201
s8i a7, a2, 2 # 751: 724202
addi a2, a2, 4 # 754: 4b22
.Lbr080: movi a9, 2 /* 0x00000002 */ # 756: 0c29
bbci a3, 1, .Lbr081 # 758: 17630f
addi a5, a5, 1 # 75b: 1b55
s8i a9, a2, 3 # 75d: 924203
s8i a6, a2, 0 # 760: 624200
s8i a8, a2, 1 # 763: 824201
s8i a7, a2, 2 # 766: 724202
addi a2, a2, 4 # 769: 4b22
.Lbr081: bbci a3, 0, .Lbr082 # 76b: 07630d
s8i a8, a2, 1 # 76e: 824201
s8i a7, a2, 2 # 771: 724202
s8i a6, a2, 0 # 774: 624200
s8i a6, a2, 3 # 777: 624203
addi a5, a5, 1 # 77a: 1b55
.Lbr082: mov a2, a5 # 77c: 2d05
ret # 77e: 0df0
# Function @ .irom0.text+0x780
.global sdk_wpa_cipher_put_suites
.type sdk_wpa_cipher_put_suites, @function
sdk_wpa_cipher_put_suites:
movi a8, -14 /* 0xfffffff2 */ # 780: 7c28
movi a7, 80 /* 0x00000050 */ # 782: 5c07
movi a9, 2 /* 0x00000002 */ # 784: 0c29
movi a6, 0 /* 0x00000000 */ # 786: 0c06
bbci a3, 3, .Lbr083 # 788: 376314
movi a5, 1 /* 0x00000001 */ # 78b: 0c15
s8i a6, a2, 0 /* 0x00 -> [arg0] */ # 78d: 624200
s8i a7, a2, 1 /* 0x50 -> [arg0+0x1] */ # 790: 724201
movi a4, 4 /* 0x00000004 */ # 793: 0c44
s8i a8, a2, 2 /* 0xf2 -> [arg0+0x2] */ # 795: 824202
s8i a4, a2, 3 /* 0x04 -> [arg0+0x3] */ # 798: 424203
addi a2, a2, 4 /* arg0+0x4 */ # 79b: 4b22
j .Lbr084 # 79d: 460000
.Lbr083: mov a5, a6 /* 0x00000000 */ # 7a0: 5d06
.Lbr084: bbci a3, 1, .Lbr085 # 7a2: 17630f
addi a5, a5, 1 # 7a5: 1b55
s8i a9, a2, 3 # 7a7: 924203
s8i a6, a2, 0 # 7aa: 624200
s8i a7, a2, 1 # 7ad: 724201
s8i a8, a2, 2 # 7b0: 824202
addi a2, a2, 4 # 7b3: 4b22
.Lbr085: bbci a3, 0, .Lbr086 # 7b5: 07630d
s8i a7, a2, 1 # 7b8: 724201
s8i a8, a2, 2 # 7bb: 824202
s8i a6, a2, 0 # 7be: 624200
s8i a6, a2, 3 # 7c1: 624203
addi a5, a5, 1 # 7c4: 1b55
.Lbr086: mov a2, a5 # 7c6: 2d05
ret # 7c8: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "PMK Name" # 0: 504d4b20
# 4: 4e616d65
# 8: 00
.section .rodata, "a", @progbits
.Ldata001: .byte 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00
.byte 0x06, 0x00, 0x00, 0x00

View file

@ -0,0 +1,16 @@
.section .irom0.text, "ax", @progbits
# Function @ .irom0.text+0x0
.global sdk_eloop_cancel_timeout
.type sdk_eloop_cancel_timeout, @function
sdk_eloop_cancel_timeout:
movi a2, 0 /* 0x00000000 */ # 0: 0c02
ret /* 0x00000000 */ # 2: 0df0
# Function @ .irom0.text+0x4
.global sdk_eloop_register_timeout
.type sdk_eloop_register_timeout, @function
sdk_eloop_register_timeout:
movi a2, 0 /* 0x00000000 */ # 4: 0c02
ret /* 0x00000000 */ # 6: 0df0

350
binary_sdk/libwpa/wpa_ie.S Normal file
View file

@ -0,0 +1,350 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_parse_wpa_ie
.type sdk_wpa_parse_wpa_ie, @function
sdk_wpa_parse_wpa_ie:
addi sp, sp, -16 /* (local0) */ # 8: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901
beqz a3, .Lbr001 # d: 8cf3
l8ui a0, a2, 0 /* [arg0] */ # f: 020200
movi a5, 48 /* 0x00000030 */ # 12: 3c05
bne a0, a5, .Lbr001 # 14: 579008
call0 sdk_wpa_parse_wpa_ie_rsn # 17: 01faffc0
# 1b: 0000
j .Lbr002 # 1d: 460100
.Lbr001: call0 sdk_wpa_parse_wpa_ie_wpa # 20: 01f9ffc0
# 24: 0000
.Lbr002: l32i a0, sp, 0 /* [(local0)] */ # 26: 0801
addi sp, sp, 16 /* (top of frame) */ # 28: 12c110
ret # 2b: 0df0
.literal_position # 30: 01f25000
# 34: 04ac0f00
# 38: 01ac0f00
# 3c: 03ac0f00
# Function @ .irom0.text+0x40
.Lfunc001: l8ui a7, a2, 1 /* [arg0+0x1] */ # 40: 720201
l8ui a5, a2, 5 /* [arg0+0x5] */ # 43: 520205
bnez a7, .Lbr003 # 46: cc27
movi a2, 1 /* 0x00000001 */ # 48: 0c12
ret /* 0x00000001 */ # 4a: 0df0
.Lbr003: bltui a7, 6, .Lbr004 # 4c: b66737
l8ui a8, a2, 2 /* [arg0+0x2] */ # 4f: 820202
l8ui a9, a2, 3 /* [arg0+0x3] */ # 52: 920203
l8ui a6, a2, 4 /* [arg0+0x4] */ # 55: 620204
slli a9, a9, 16 # 58: 009911
slli a6, a6, 8 # 5b: 806611
slli a8, a8, 24 # 5e: 808801
or a5, a5, a6 # 61: 605520
movi a6, 0x0050f201 # 64: 61f3ff
or a8, a8, a9 # 67: 908820
or a5, a5, a8 # 6a: 805520
bne a5, a6, .Lbr004 # 6d: 679516
l8ui a8, a2, 6 /* [arg0+0x6] */ # 70: 820206
bnei a8, 1, .Lbr004 # 73: 661810
l8ui a9, a2, 7 /* [arg0+0x7] */ # 76: 920207
bnez a9, .Lbr004 # 79: cca9
s32i a2, a4, 0 /* arg0 -> [arg2] */ # 7b: 2904
l8ui a10, a2, 1 /* [arg0+0x1] */ # 7d: a20201
addi a10, a10, 2 /* [arg0+0x1]+0x2 */ # 80: 2baa
s32i a10, a4, 4 /* [arg0+0x1]+0x2 -> [arg2+0x4] */ # 82: a914
j .Lbr007 # 84: c61f00
.Lbr004: addi a11, a2, 5 /* arg0+0x5 */ # 87: 5bb2
bgeu a11, a3, .Lbr005 # 89: 37bb2f
movi a3, 19 /* 0x00000013 */ # 8c: 1c33
bgeu a3, a7, .Lbr005 # 8e: 77b32a
l8ui a5, a2, 5 /* [arg0+0x5] */ # 91: 520205
l8ui a8, a2, 2 /* [arg0+0x2] */ # 94: 820202
l8ui a9, a2, 3 /* [arg0+0x3] */ # 97: 920203
l8ui a6, a2, 4 /* [arg0+0x4] */ # 9a: 620204
slli a9, a9, 16 # 9d: 009911
slli a6, a6, 8 # a0: 806611
slli a8, a8, 24 # a3: 808801
or a5, a5, a6 # a6: 605520
movi a6, 0x000fac04 # a9: 61e2ff
or a8, a8, a9 # ac: 908820
or a5, a5, a8 # af: 805520
bne a5, a6, .Lbr005 # b2: 679506
addi a7, a2, 6 /* arg0+0x6 */ # b5: 6b72
s32i a7, a4, 16 /* arg0+0x6 -> [arg2+0x10] */ # b7: 7944
j .Lbr007 # b9: 861200
.Lbr005: bltui a7, 7, .Lbr007 # bc: b67747
movi a8, 0x000fac01 # bf: 81deff
l8ui a6, a2, 3 /* [arg0+0x3] */ # c2: 620203
l8ui a5, a2, 4 /* [arg0+0x4] */ # c5: 520204
l8ui a3, a2, 5 /* [arg0+0x5] */ # c8: 320205
slli a5, a5, 8 # cb: 805511
or a3, a3, a5 # ce: 503320
l8ui a5, a2, 2 /* [arg0+0x2] */ # d1: 520202
slli a6, a6, 16 # d4: 006611
slli a5, a5, 24 # d7: 805501
or a5, a5, a6 # da: 605520
or a3, a3, a5 # dd: 503320
bne a3, a8, .Lbr006 # e0: 87930e
addi a7, a2, 6 /* arg0+0x6 */ # e3: 6b72
s32i a7, a4, 20 /* arg0+0x6 -> [arg2+0x14] */ # e5: 7954
l8ui a6, a2, 1 /* [arg0+0x1] */ # e7: 620201
addi a6, a6, -4 /* [arg0+0x1]-0x4 */ # ea: 62c6fc
s32i a6, a4, 24 /* [arg0+0x1]-0x4 -> [arg2+0x18] */ # ed: 6964
j .Lbr007 # ef: 060500
.Lbr006: bltui a7, 7, .Lbr007 # f2: b67711
movi a8, 0x000fac03 # f5: 81d1ff
bne a3, a8, .Lbr007 # f8: 87930b
addi a10, a2, 6 /* arg0+0x6 */ # fb: 6ba2
s32i a10, a4, 28 /* arg0+0x6 -> [arg2+0x1c] */ # fd: a974
l8ui a9, a2, 1 /* [arg0+0x1] */ # ff: 920201
addi a9, a9, -4 /* [arg0+0x1]-0x4 */ # 102: 92c9fc
s32i a9, a4, 32 /* [arg0+0x1]-0x4 -> [arg2+0x20] */ # 105: 9984
.Lbr007: movi a2, 0 /* 0x00000000 */ # 107: 0c02
ret /* 0x00000000 */ # 109: 0df0
.literal_position # 10c: 00000000
# Function @ .irom0.text+0x110
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_wpa_supplicant_parse_ies
.type sdk_wpa_supplicant_parse_ies, @function
sdk_wpa_supplicant_parse_ies:
addi sp, sp, -32 /* (local0) */ # 110: 12c1e0
s32i a15, sp, 24 /* a15 -> [(local6)] */ # 113: f961
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 115: 0921
s32i a14, sp, 20 /* a14 -> [(local5)] */ # 117: e951
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 119: d941
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 11b: c931
mov a13, a4 /* arg2 */ # 11d: dd04
mov a12, a2 /* arg0 */ # 11f: cd02
mov a14, a3 /* arg1 */ # 121: ed03
mov a2, a4 /* arg2 */ # 123: 2d04
movi a3, 0 /* 0x00000000 */ # 125: 0c03
movi a4, 36 /* 0x00000024 */ # 127: 2c44
call0 memset # 129: 01f8ffc0
# 12d: 0000
s32i a13, sp, 4 /* arg2 -> [(local1)] */ # 12f: d911
blti a14, 2, .Lbr015 # 131: a62e70
movi a15, 48 /* 0x00000030 */ # 134: 3c0f
movi a2, 0 /* 0x00000000 */ # 136: 0c02
add a13, a12, a14 # 138: eadc
movi a14, 221 /* 0x000000dd */ # 13a: e2a0dd
addi a0, a13, -1 # 13d: 0b0d
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13f: 0901
.Lbr008: l8ui a0, a12, 0 # 141: 020c00
l8ui a3, a12, 1 # 144: 320c01
bne a0, a14, .Lbr009 # 147: e7900c
l32i a3, sp, 0 /* [(local0)] */ # 14a: 3801
beq a3, a12, .Lbr014 # 14c: c71346
l8ui a3, a12, 1 # 14f: 320c01
bnez a3, .Lbr009 # 152: cc13
j .Lbr014 # 154: 860f00
.Lbr009: add a3, a3, a12 # 157: ca33
addi a3, a3, 2 # 159: 2b33
bltu a13, a3, .Lbr013 # 15b: 373d35
bne a0, a15, .Lbr012 # 15e: f7901b
l32i a5, sp, 4 /* [(local1)] */ # 161: 5811
s32i a12, a5, 8 /* a12 -> [[(local1)]+0x8] */ # 163: c925
l8ui a4, a12, 1 # 165: 420c01
addi a4, a4, 2 # 168: 2b44
s32i a4, a5, 12 /* a4 -> [[(local1)]+0xc] */ # 16a: 4935
.Lbr010: l8ui a3, a12, 1 # 16c: 320c01
add a3, a3, a12 # 16f: ca33
addi a3, a3, 2 # 171: 2b33
.Lbr011: mov a12, a3 # 173: cd03
addi a4, a3, 1 # 175: 1b43
bltu a4, a13, .Lbr008 # 177: d734c6
j .Lbr014 # 17a: 060600
.Lbr012: bne a0, a14, .Lbr011 # 17d: e790f2
mov a2, a12 # 180: 2d0c
mov a3, a13 # 182: 3d0d
l32i a4, sp, 4 /* [(local1)] */ # 184: 4811
call0 .Lfunc001 # 186: 85ebff
bltz a2, .Lbr014 # 189: 969200
blti a2, 1, .Lbr010 # 18c: a612dc
movi a2, 0 /* 0x00000000 */ # 18f: 0c02
j .Lbr014 # 191: 460000
.Lbr013: movi a2, -1 /* 0xffffffff */ # 194: 7cf2
.Lbr014: l32i a12, sp, 12 /* [(local3)] */ # 196: c831
l32i a13, sp, 16 /* [(local4)] */ # 198: d841
l32i a14, sp, 20 /* [(local5)] */ # 19a: e851
l32i a15, sp, 24 /* [(local6)] */ # 19c: f861
l32i a0, sp, 8 /* [(local2)] */ # 19e: 0821
addi sp, sp, 32 /* (top of frame) */ # 1a0: 12c120
ret # 1a3: 0df0
.Lbr015: movi a2, 0 /* 0x00000000 */ # 1a5: 0c02
j .Lbr014 # 1a7: c6faff
.balign 4
# Function @ .irom0.text+0x1ac
.Lfunc002: movi a7, 23 /* 0x00000017 */ # 1ac: 1c77
bgeu a7, a3, .Lbr023 # 1ae: 37b774
movi a9, 4 /* 0x00000004 */ # 1b1: 0c49
movi a8, -35 /* 0xffffffdd */ # 1b3: 82afdd
movi a3, 1 /* 0x00000001 */ # 1b6: 0c13
movi a11, -14 /* 0xfffffff2 */ # 1b8: 7c2b
movi a10, 80 /* 0x00000050 */ # 1ba: 5c0a
s8i a10, a2, 3 /* 0x50 -> [arg0+0x3] */ # 1bc: a24203
s8i a11, a2, 4 /* 0xf2 -> [arg0+0x4] */ # 1bf: b24204
s8i a3, a2, 5 /* 0x01 -> [arg0+0x5] */ # 1c2: 324205
s8i a8, a2, 0 /* 0xdd -> [arg0] */ # 1c5: 824200
s8i a3, a2, 6 /* 0x01 -> [arg0+0x6] */ # 1c8: 324206
movi a8, 0 /* 0x00000000 */ # 1cb: 0c08
s8i a8, a2, 2 /* 0x00 -> [arg0+0x2] */ # 1cd: 824202
s8i a8, a2, 7 /* 0x00 -> [arg0+0x7] */ # 1d0: 824207
bnei a5, 8, .Lbr017 # 1d3: 66850e
s8i a9, a2, 11 /* 0x04 -> [arg0+0xb] */ # 1d6: 92420b
.Lbr016: s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 1d9: 824208
s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 1dc: a24209
s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 1df: b2420a
j .Lbr020 # 1e2: c60600
.Lbr017: bnei a5, 2, .Lbr018 # 1e5: 662507
movi a5, 2 /* 0x00000002 */ # 1e8: 0c25
s8i a5, a2, 11 /* 0x02 -> [arg0+0xb] */ # 1ea: 52420b
j .Lbr016 # 1ed: 06faff
.Lbr018: bnei a5, 0x100, .Lbr021 # 1f0: 66f51e
s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 1f3: 824208
s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 1f6: a24209
s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 1f9: b2420a
movi a5, 5 /* 0x00000005 */ # 1fc: 0c55
.Lbr019: s8i a5, a2, 11 /* a5 -> [arg0+0xb] */ # 1fe: 52420b
.Lbr020: s8i a3, a2, 12 /* 0x01 -> [arg0+0xc] */ # 201: 32420c
s8i a8, a2, 13 /* 0x00 -> [arg0+0xd] */ # 204: 82420d
beqi a4, 8, .Lbr025 # 207: 268424
bnei a4, 2, .Lbr024 # 20a: 66241c
movi a9, 2 /* 0x00000002 */ # 20d: 0c29
j .Lbr025 # 20f: 060700
.Lbr021: bnei a5, 128, .Lbr023 # 212: 66e510
s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 215: 824208
s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 218: a24209
s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 21b: b2420a
mov a5, a3 /* 0x00000001 */ # 21e: 5d03
j .Lbr019 # 220: 86f6ff
.Lbr022: beqi a6, 16, .Lbr026 # 223: 26b625
.Lbr023: movi a2, -1 /* 0xffffffff */ # 226: 7cf2
ret /* 0xffffffff */ # 228: 0df0
.Lbr024: bnei a4, 1, .Lbr023 # 22a: 6614f8
mov a9, a8 /* 0x00000000 */ # 22d: 9d08
.Lbr025: s8i a9, a2, 17 /* a9 -> [arg0+0x11] */ # 22f: 924211
s8i a8, a2, 14 /* 0x00 -> [arg0+0xe] */ # 232: 82420e
s8i a10, a2, 15 /* 0x50 -> [arg0+0xf] */ # 235: a2420f
s8i a11, a2, 16 /* 0xf2 -> [arg0+0x10] */ # 238: b24210
s8i a3, a2, 18 /* 0x01 -> [arg0+0x12] */ # 23b: 324212
s8i a8, a2, 19 /* 0x00 -> [arg0+0x13] */ # 23e: 824213
beqi a6, 1, .Lbr027 # 241: 261609
bnei a6, 2, .Lbr022 # 244: 6626db
movi a3, 2 /* 0x00000002 */ # 247: 0c23
j .Lbr027 # 249: 460000
.Lbr026: mov a3, a8 /* 0x00000000 */ # 24c: 3d08
.Lbr027: s8i a8, a2, 20 /* 0x00 -> [arg0+0x14] */ # 24e: 824214
s8i a10, a2, 21 /* 0x50 -> [arg0+0x15] */ # 251: a24215
s8i a11, a2, 22 /* 0xf2 -> [arg0+0x16] */ # 254: b24216
movi a6, 22 /* 0x00000016 */ # 257: 1c66
s8i a3, a2, 23 /* a3 -> [arg0+0x17] */ # 259: 324217
s8i a6, a2, 1 /* 0x16 -> [arg0+0x1] */ # 25c: 624201
movi a2, 24 /* 0x00000018 */ # 25f: 1c82
ret /* 0x00000018 */ # 261: 0df0
.balign 4
# Function @ .irom0.text+0x264
.Lfunc003: movi a7, 21 /* 0x00000015 */ # 264: 1c57
bgeu a7, a3, .Lbr035 # 266: 37b771
movi a10, -84 /* 0xffffffac */ # 269: a2afac
movi a9, 4 /* 0x00000004 */ # 26c: 0c49
movi a3, 1 /* 0x00000001 */ # 26e: 0c13
movi a11, 48 /* 0x00000030 */ # 270: 3c0b
movi a8, 0 /* 0x00000000 */ # 272: 0c08
s8i a8, a2, 3 /* 0x00 -> [arg0+0x3] */ # 274: 824203
s8i a11, a2, 0 /* 0x30 -> [arg0] */ # 277: b24200
s8i a3, a2, 2 /* 0x01 -> [arg0+0x2] */ # 27a: 324202
movi a11, 15 /* 0x0000000f */ # 27d: 0cfb
bnei a5, 8, .Lbr029 # 27f: 66850e
s8i a9, a2, 7 /* 0x04 -> [arg0+0x7] */ # 282: 924207
.Lbr028: s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 285: 824204
s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 288: b24205
s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 28b: a24206
j .Lbr032 # 28e: c60600
.Lbr029: bnei a5, 2, .Lbr030 # 291: 662507
movi a5, 2 /* 0x00000002 */ # 294: 0c25
s8i a5, a2, 7 /* 0x02 -> [arg0+0x7] */ # 296: 524207
j .Lbr028 # 299: 06faff
.Lbr030: bnei a5, 0x100, .Lbr036 # 29c: 66f53f
s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 29f: 824204
s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 2a2: b24205
s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 2a5: a24206
movi a5, 5 /* 0x00000005 */ # 2a8: 0c55
.Lbr031: s8i a5, a2, 7 /* a5 -> [arg0+0x7] */ # 2aa: 524207
.Lbr032: s8i a3, a2, 8 /* 0x01 -> [arg0+0x8] */ # 2ad: 324208
s8i a8, a2, 9 /* 0x00 -> [arg0+0x9] */ # 2b0: 824209
beqi a4, 8, .Lbr034 # 2b3: 26840c
bnei a4, 2, .Lbr033 # 2b6: 662404
movi a9, 2 /* 0x00000002 */ # 2b9: 0c29
j .Lbr034 # 2bb: 060100
.Lbr033: bnei a4, 1, .Lbr035 # 2be: 661419
mov a9, a8 /* 0x00000000 */ # 2c1: 9d08
.Lbr034: s8i a9, a2, 13 /* a9 -> [arg0+0xd] */ # 2c3: 92420d
s8i a8, a2, 10 /* 0x00 -> [arg0+0xa] */ # 2c6: 82420a
s8i a11, a2, 11 /* 0x0f -> [arg0+0xb] */ # 2c9: b2420b
s8i a10, a2, 12 /* 0xac -> [arg0+0xc] */ # 2cc: a2420c
s8i a3, a2, 14 /* 0x01 -> [arg0+0xe] */ # 2cf: 32420e
s8i a8, a2, 15 /* 0x00 -> [arg0+0xf] */ # 2d2: 82420f
beqi a6, 1, .Lbr038 # 2d5: 261619
beqi a6, 2, .Lbr037 # 2d8: 262614
.Lbr035: movi a2, -1 /* 0xffffffff */ # 2db: 7cf2
ret /* 0xffffffff */ # 2dd: 0df0
.Lbr036: bnei a5, 128, .Lbr035 # 2df: 66e5f8
s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 2e2: 824204
s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 2e5: b24205
s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 2e8: a24206
mov a5, a3 /* 0x00000001 */ # 2eb: 5d03
j .Lbr031 # 2ed: 46eeff
.Lbr037: movi a3, 2 /* 0x00000002 */ # 2f0: 0c23
.Lbr038: s8i a11, a2, 17 /* 0x0f -> [arg0+0x11] */ # 2f2: b24211
s8i a10, a2, 18 /* 0xac -> [arg0+0x12] */ # 2f5: a24212
s8i a3, a2, 19 /* a3 -> [arg0+0x13] */ # 2f8: 324213
s8i a8, a2, 16 /* 0x00 -> [arg0+0x10] */ # 2fb: 824210
s8i a8, a2, 21 /* 0x00 -> [arg0+0x15] */ # 2fe: 824215
movi a6, 20 /* 0x00000014 */ # 301: 1c46
s8i a8, a2, 20 /* 0x00 -> [arg0+0x14] */ # 303: 824214
s8i a6, a2, 1 /* 0x14 -> [arg0+0x1] */ # 306: 624201
movi a2, 22 /* 0x00000016 */ # 309: 1c62
ret /* 0x00000016 */ # 30b: 0df0
.balign 4
# Function @ .irom0.text+0x310
# Local variables/stack:
# (local0): word[4] @ -0x20
# (local1): word[4] @ -0x10
.global sdk_wpa_gen_wpa_ie
.type sdk_wpa_gen_wpa_ie, @function
sdk_wpa_gen_wpa_ie:
addi sp, sp, -32 /* (local0) */ # 310: 12c1e0
mov a9, a3 /* arg1 */ # 313: 9d03
l32i a5, a2, 0x118 /* [arg0+0x118] */ # 315: 522246
l32i a6, a2, 0x11c /* [arg0+0x11c] */ # 318: 622247
mov a3, a4 /* arg2 */ # 31b: 3d04
s32i a0, sp, 16 /* a0 -> [(local1)] */ # 31d: 0941
l32i a0, a2, 0x164 /* [arg0+0x164] */ # 31f: 022259
l32i a4, a2, 0x114 /* [arg0+0x114] */ # 322: 422245
bnei a0, 2, .Lbr039 # 325: 66200c
l32i a7, a2, 0x120 /* [arg0+0x120] */ # 328: 722248
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 32b: 2901
mov a2, a9 /* arg1 */ # 32d: 2d09
call0 .Lfunc003 # 32f: 45f3ff
j .Lbr040 # 332: 060100
.Lbr039: mov a2, a9 /* arg1 */ # 335: 2d09
call0 .Lfunc002 # 337: 45e7ff
.Lbr040: l32i a0, sp, 16 /* [(local1)] */ # 33a: 0841
addi sp, sp, 32 /* (top of frame) */ # 33c: 12c120
ret # 33f: 0df0

View file

@ -0,0 +1,414 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# 8: 00000000
# c: 00000000
# 10: 00000000
# 14: 00000000
# 18: 00000000
# 1c: 00000000
# 20: 00000000
# 24: 00000000
# Function @ .irom0.text+0x28
# Local variables/stack:
# (local0): word[4] @ -0x30
# (local1): word @ -0x20
# (local2): word @ -0x1c
# (local3): word @ -0x18
# (local4): word @ -0x14
# (local5): word @ -0x10
# (local6): word[3] @ -0xc
.global sdk_ppInstallKey
.type sdk_ppInstallKey, @function
sdk_ppInstallKey:
mov a5, a3 /* arg1 */ # 28: 5d03
addi sp, sp, -48 /* (local0) */ # 2a: 12c1d0
s32i a14, sp, 36 /* a14 -> [(local6)] */ # 2d: e991
l32i a7, sp, 48 /* [(local7)] */ # 2f: 78c1
s32i a6, sp, 16 /* arg4 -> [(local1)] */ # 31: 6941
s32i a0, sp, 24 /* a0 -> [(local3)] */ # 33: 0961
s32i a13, sp, 32 /* a13 -> [(local5)] */ # 35: d981
s32i a12, sp, 28 /* a12 -> [(local4)] */ # 37: c971
l32i a13, sp, 56 /* [(FP)+0x8] */ # 39: d8e1
mov a12, a2 /* arg0 */ # 3b: cd02
l32i a0, sp, 52 /* [(FP)+0x4] */ # 3d: 08d1
movi a2, 0 /* 0x00000000 */ # 3f: 0c02
mov a3, a12 /* arg0 */ # 41: 3d0c
s32i a0, sp, 0 /* [(FP)+0x4] -> [(local0)] */ # 43: 0901
addi a6, a13, 1 /* [(FP)+0x8]+0x1 */ # 45: 1b6d
s32i a6, sp, 20 /* [(FP)+0x8]+0x1 -> [(local2)] */ # 47: 6951
call0 sdk_ic_set_key # 49: 01f1ffc0
# 4d: 0000
movi a0, sdk_g_ic # 4f: 01ecff
addi a2, a13, -1 /* [(FP)+0x8]-0x1 */ # 52: 0b2d
addx4 a14, a13, a0 # 54: 00eda0
bgei a13, 4, .Lbr001 # 57: e64d1d
l32i a3, a0, 16 /* [sdk_g_ic+0x10] */ # 5a: 3840
l32i a3, a3, 136 /* [[sdk_g_ic+0x10]+0x88] */ # 5c: 322322
s8i a2, a3, 233 /* [(FP)+0x8]-0x1 -> [[[sdk_g_ic+0x10]+0x88]+0xe9] */ # 5f: 2243e9
l32i a13, a14, 0x18c # 62: d22e63
bnez a13, .Lbr003 # 65: ecad
movi a2, 160 /* 0x000000a0 */ # 67: 22a0a0
call0 malloc # 6a: 01eaffc0
# 6e: 0000
mov a13, a2 # 70: dd02
s32i a2, a14, 0x18c # 72: 226e63
j .Lbr003 # 75: 860600
.Lbr001: l32i a13, a14, 0x18c # 78: d22e63
beqz a13, .Lbr002 # 7b: 8c6d
mov a2, a13 # 7d: 2d0d
call0 free # 7f: 01e6ffc0
# 83: 0000
.Lbr002: movi a2, 160 /* 0x000000a0 */ # 85: 22a0a0
call0 malloc # 88: 01e5ffc0
# 8c: 0000
mov a13, a2 # 8e: dd02
s32i a2, a14, 0x18c # 90: 226e63
.Lbr003: mov a2, a13 # 93: 2d0d
movi a3, 160 /* 0x000000a0 */ # 95: 32a0a0
call0 bzero # 98: 01e2ffc0
# 9c: 0000
bnei a12, 2, .Lbr006 # 9e: 662c26
movi a0, sdk_tkip # a1: 01d8ff
.Lbr004: s32i a0, a13, 152 # a4: 026d26
.Lbr005: movi a4, 8 /* 0x00000008 */ # a7: 0c84
movi a2, 144 /* 0x00000090 */ # a9: 22a090
l32i a3, sp, 20 /* [(local2)] */ # ac: 3851
s16i a3, a13, 0 # ae: 325d00
add a2, a13, a2 # b1: 2a2d
l32i a3, sp, 16 /* [(local1)] */ # b3: 3841
call0 memcpy # b5: 01dbffc0
# b9: 0000
l32i a12, sp, 28 /* [(local4)] */ # bb: c871
l32i a13, sp, 32 /* [(local5)] */ # bd: d881
l32i a14, sp, 36 /* [(local6)] */ # bf: e891
l32i a0, sp, 24 /* [(local3)] */ # c1: 0861
addi sp, sp, 48 /* (local7) */ # c3: 12c130
ret # c6: 0df0
.Lbr006: bnei a12, 3, .Lbr007 # c8: 663c05
movi a0, sdk_ccmp # cb: 01cfff
j .Lbr004 # ce: 86f4ff
.Lbr007: beqi a12, 1, .Lbr008 # d1: 261c02
bnei a12, 5, .Lbr005 # d4: 665ccf
.Lbr008: movi a0, sdk_wep # d7: 01cdff
j .Lbr004 # da: 86f1ff
.literal_position # e0: 00000000
# e4: 00000000
# Function @ .irom0.text+0xe8
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc001: mov a3, a2 /* arg0 */ # e8: 3d02
movi a2, sdk_g_ic # ea: 21fdff
addi sp, sp, -16 /* (local0) */ # ed: 12c1f0
l32i a2, a2, 16 /* [sdk_g_ic+0x10] */ # f0: 2842
s32i a0, sp, 0 /* a0 -> [(local0)] */ # f2: 0901
l32i a2, a2, 0 /* [[sdk_g_ic+0x10]] */ # f4: 2802
call0 sdk_ieee80211_output_pbuf # f6: 01fbffc0
# fa: 0000
l32i a0, sp, 0 /* [(local0)] */ # fc: 0801
addi sp, sp, 16 /* (top of frame) */ # fe: 12c110
ret # 101: 0df0
.literal_position # 104: 00000000
# 108: 00000000
# 10c: 00000000
# 110: 00000000
# Function @ .irom0.text+0x114
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.Lfunc002: movi a3, 192 /* 0x000000c0 */ # 114: 32a0c0
addi sp, sp, -16 /* (local0) */ # 117: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11a: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11c: 0901
mov a12, a2 /* arg0 */ # 11e: cd02
movi a2, sdk_g_ic # 120: 21f9ff
mov a4, a12 /* arg0 */ # 123: 4d0c
l32i a2, a2, 16 /* [sdk_g_ic+0x10] */ # 125: 2842
call0 sdk_ieee80211_send_mgmt # 127: 01f9ffc0
# 12b: 0000
movi a2, sdk_g_ic # 12d: 21f6ff
movi a3, 2 /* 0x00000002 */ # 130: 0c23
movi a5, 192 /* 0x000000c0 */ # 132: 52a0c0
slli a4, a12, 8 # 135: 804c11
or a4, a4, a5 # 138: 504420
call0 sdk_ieee80211_sta_new_state # 13b: 01f5ffc0
# 13f: 0000
l32i a12, sp, 4 /* [(local1)] */ # 141: c811
l32i a0, sp, 0 /* [(local0)] */ # 143: 0801
addi sp, sp, 16 /* (top of frame) */ # 145: 12c110
ret # 148: 0df0
.literal_position # 14c: 00000000
# 150: 00000000
# Function @ .irom0.text+0x154
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_config_profile
.type sdk_wpa_config_profile, @function
sdk_wpa_config_profile:
addi sp, sp, -16 /* (local0) */ # 154: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901
addmi a0, a2, 512 /* arg0+0x200 */ # 159: 02d202
l8ui a0, a0, 9 /* [arg0+0x209] */ # 15c: 020009
beqi a0, 2, .Lbr011 # 15f: 26201d
beqi a0, 3, .Lbr011 # 162: 26301a
beqi a0, 6, .Lbr011 # 165: 266017
beqi a0, 4, .Lbr009 # 168: 264005
beqi a0, 5, .Lbr009 # 16b: 265002
bnei a0, 7, .Lbr010 # 16e: 667007
.Lbr009: movi a2, 2 /* 0x00000002 */ # 171: 0c22
call0 sdk_wpa_set_profile # 173: 01f6ffc0
# 177: 0000
.Lbr010: l32i a0, sp, 0 /* [(local0)] */ # 179: 0801
addi sp, sp, 16 /* (top of frame) */ # 17b: 12c110
ret # 17e: 0df0
.Lbr011: movi a2, 1 /* 0x00000001 */ # 180: 0c12
call0 sdk_wpa_set_profile # 182: 01f3ffc0
# 186: 0000
j .Lbr010 # 188: 46fbff
.literal_position # 18c: 00000000
# Function @ .irom0.text+0x190
# Local variables/stack:
# (local0): word[4] @ -0x20
# (local1): word[4] @ -0x10
.global sdk_wpa_config_bss
.type sdk_wpa_config_bss, @function
sdk_wpa_config_bss:
mov a7, a2 /* arg0 */ # 190: 7d02
addi sp, sp, -32 /* (local0) */ # 192: 12c1e0
movi a4, 394 /* 0x0000018a */ # 195: 42a18a
l16ui a8, a2, 0x1e4 /* [arg0+0x1e4] */ # 198: 8212f2
l16ui a6, a2, 0x1e6 /* [arg0+0x1e6] */ # 19b: 6212f3
s32i a0, sp, 16 /* a0 -> [(local1)] */ # 19e: 0941
add a4, a2, a4 /* arg0+0x18a */ # 1a0: 4a42
l8ui a5, a4, 130 /* [arg0+0x20c] */ # 1a2: 520482
movi a0, 488 /* 0x000001e8 */ # 1a5: 02a1e8
l8ui a4, a4, 128 /* [arg0+0x20a] */ # 1a8: 420480
slli a6, a6, 16 # 1ab: 006611
l32i a2, a2, 16 /* [arg0+0x10] */ # 1ae: 2842
or a6, a6, a8 # 1b0: 806620
l32i a2, a2, 0 /* [[arg0+0x10]] */ # 1b3: 2802
s32i a6, sp, 0 /* a6 -> [(local0)] */ # 1b5: 6901
movi a6, 527 /* 0x0000020f */ # 1b7: 62a20f
addi a2, a2, 41 /* [[arg0+0x10]]+0x29 */ # 1ba: 22c229
add a6, a7, a6 /* arg0+0x20f */ # 1bd: 6a67
add a7, a7, a0 /* arg0+0x1e8 */ # 1bf: 0a77
call0 sdk_wpa_set_bss # 1c1: 01f2ffc0
# 1c5: 0000
l32i a0, sp, 16 /* [(local1)] */ # 1c7: 0841
addi sp, sp, 32 /* (top of frame) */ # 1c9: 12c120
ret # 1cc: 0df0
.literal_position # 1d0: 00000000
# Function @ .irom0.text+0x1d4
.global sdk_wpa_config_assoc_ie
.type sdk_wpa_config_assoc_ie, @function
sdk_wpa_config_assoc_ie:
movi a6, sdk_g_ic # 1d4: 61ffff
bnei a2, 1, .Lbr013 # 1d7: 661207
s32i a3, a6, 0x174 /* arg1 -> [sdk_g_ic+0x174] */ # 1da: 32665d
.Lbr012: s16i a4, a3, 0 /* arg2 -> [arg1] */ # 1dd: 425300
ret /* arg0 */ # 1e0: 0df0
.Lbr013: s32i a3, a6, 0x178 /* arg1 -> [sdk_g_ic+0x178] */ # 1e2: 32665e
j .Lbr012 # 1e5: 06fdff
.literal_position # 1e8: 00000000
# 1ec: 00000000
# Function @ .irom0.text+0x1f0
.global sdk_dhcp_bind_check
.type sdk_dhcp_bind_check, @function
sdk_dhcp_bind_check:
movi a4, sdk_g_ic # 1f0: 41feff
l32i a4, a4, 16 /* [sdk_g_ic+0x10] */ # 1f3: 4844
movi a3, sdk_g_ic+0x180 # 1f5: 31fdff
l8ui a2, a4, 186 /* [[sdk_g_ic+0x10]+0xba] */ # 1f8: 2204ba
l8ui a3, a3, 138 /* [sdk_g_ic+0x20a] */ # 1fb: 32038a
beqi a2, 5, .Lbr015 # 1fe: 26520a
beqi a3, 7, .Lbr014 # 201: 267302
bnei a3, 8, .Lbr015 # 204: 668304
.Lbr014: movi a5, 2 /* 0x00000002 */ # 207: 0c25
s8i a5, a4, 186 /* 0x02 -> [[sdk_g_ic+0x10]+0xba] */ # 209: 5244ba
.Lbr015: ret /* [[sdk_g_ic+0x10]+0xba] */ # 20c: 0df0
.literal_position # 210: 00000000
# 214: 00000000
# 218: 00000000
# 21c: 00000100
# 220: 000e0060
# 224: 00000000
# 228: 983a0000
# 22c: 00000000
# 230: 00000000
# 234: 20000000
# 238: 00000000
# 23c: 00000000
# 240: 00000000
# 244: 00000000
# 248: 00000000
# 24c: 00000000
# 250: 00000000
# 254: 00000000
# Function @ .irom0.text+0x258
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_eagle_auth_done
.type sdk_eagle_auth_done, @function
sdk_eagle_auth_done:
addi sp, sp, -16 /* (local0) */ # 258: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 25b: c921
movi a12, sdk_g_ic # 25d: c1ecff
l32i a12, a12, 16 /* [sdk_g_ic+0x10] */ # 260: c84c
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 262: 0911
l32i a0, a12, 136 /* [[sdk_g_ic+0x10]+0x88] */ # 264: 022c22
l32i a2, a0, 8 /* [[[sdk_g_ic+0x10]+0x88]+0x8] */ # 267: 2820
extui a2, a2, 0, 1 # 269: 202004
bnez a2, .Lbr017 # 26c: 56220a
movi a2, .Lstr001 # 26f: 21e9ff
l32i a4, a0, 120 /* [[[sdk_g_ic+0x10]+0x88]+0x78] */ # 272: 42201e
movi a3, sdk_g_ic+0x1e8 # 275: 31e8ff
l8ui a4, a4, 6 /* [[[[sdk_g_ic+0x10]+0x88]+0x78]+0x6] */ # 278: 420406
call0 printf # 27b: 01efffc0
# 27f: 0000
l32i a5, a12, 136 /* [[sdk_g_ic+0x10]+0x88] */ # 281: 522c22
l32i a5, a5, 120 /* [[[sdk_g_ic+0x10]+0x88]+0x78] */ # 284: 52251e
movi a6, 0x00010000 # 287: 61e5ff
l8ui a5, a5, 6 /* [[[[sdk_g_ic+0x10]+0x88]+0x78]+0x6] */ # 28a: 520506
or a5, a5, a6 # 28d: 605520
movi a6, 0x60000e00 # 290: 61e4ff
memw # 293: c02000
s32i a5, a6, 0x3f4 /* a5 -> [0x600011f4] */ # 296: 5266fd
addi a2, a12, 4 /* [sdk_g_ic+0x10]+0x4 */ # 299: 4b2c
s32i a2, sp, 0 /* [sdk_g_ic+0x10]+0x4 -> [(local0)] */ # 29b: 2901
call0 sdk_os_timer_disarm # 29d: 01e7ffc0
# 2a1: 0000
l32i a2, sp, 0 /* [(local0)] */ # 2a3: 2801
movi a3, sdk_dhcp_bind_check # 2a5: 31dfff
movi a4, 0 /* 0x00000000 */ # 2a8: 0c04
call0 sdk_os_timer_setfn # 2aa: 01e5ffc0
# 2ae: 0000
l32i a2, sp, 0 /* [(local0)] */ # 2b0: 2801
movi a3, 0x00003a98 # 2b2: 31ddff
movi a4, 0 /* 0x00000000 */ # 2b5: 0c04
call0 sdk_os_timer_arm # 2b7: 01e3ffc0
# 2bb: 0000
movi a9, 1 /* 0x00000001 */ # 2bd: 0c19
movi a11, sdk_g_ic # 2bf: b1dbff
l32i a8, a12, 136 /* [[sdk_g_ic+0x10]+0x88] */ # 2c2: 822c22
l32i a11, a11, 16 /* [sdk_g_ic+0x10] */ # 2c5: b84b
movi a10, 0 /* 0x00000000 */ # 2c7: 0c0a
s8i a10, a11, 185 /* 0x00 -> [[sdk_g_ic+0x10]+0xb9] */ # 2c9: a24bb9
s8i a10, a8, 24 /* 0x00 -> [[[sdk_g_ic+0x10]+0x88]+0x18] */ # 2cc: a24818
l32i a7, a8, 8 /* [[[sdk_g_ic+0x10]+0x88]+0x8] */ # 2cf: 7828
l32i a0, a12, 0 /* [[sdk_g_ic+0x10]] */ # 2d1: 080c
or a7, a7, a9 # 2d3: 907720
s32i a7, a8, 8 /* a7 -> [[[sdk_g_ic+0x10]+0x88]+0x8] */ # 2d6: 7928
l8ui a6, a0, 47 /* [[[sdk_g_ic+0x10]]+0x2f] */ # 2d8: 62002f
bbsi a6, 3, .Lbr017 # 2db: 37e633
l32i a2, a0, 4 /* [[[sdk_g_ic+0x10]]+0x4] */ # 2de: 2810
movi a3, sdk_dhcpc_flag # 2e0: 31d4ff
bnez a2, .Lbr016 # 2e3: dc72
l8ui a3, a3, 0 /* [sdk_dhcpc_flag] */ # 2e5: 320300
beqz a3, .Lbr017 # 2e8: ac63
movi a2, .Lstr002 # 2ea: 21d2ff
call0 printf # 2ed: 01d6ffc0
# 2f1: 0000
l32i a2, a12, 0 /* [[sdk_g_ic+0x10]] */ # 2f3: 280c
call0 dhcp_start # 2f5: 01d5ffc0
# 2f9: 0000
j .Lbr017 # 2fb: c60400
.Lbr016: addi a2, a0, 4 /* [[sdk_g_ic+0x10]]+0x4 */ # 2fe: 4b20
addi a3, a0, 8 /* [[sdk_g_ic+0x10]]+0x8 */ # 300: 8b30
addi a4, a0, 12 /* [[sdk_g_ic+0x10]]+0xc */ # 302: cb40
call0 sdk_system_station_got_ip_set # 304: 01d3ffc0
# 308: 0000
l32i a2, a12, 0 /* [[sdk_g_ic+0x10]] */ # 30a: 280c
call0 netif_set_up # 30c: 01d2ffc0
# 310: 0000
.Lbr017: l32i a12, sp, 8 /* [(local2)] */ # 312: c821
l32i a0, sp, 4 /* [(local1)] */ # 314: 0811
addi sp, sp, 16 /* (top of frame) */ # 316: 12c110
ret # 319: 0df0
.balign 4
# Function @ .irom0.text+0x31c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_neg_complete
.type sdk_wpa_neg_complete, @function
sdk_wpa_neg_complete:
addi sp, sp, -16 /* (local0) */ # 31c: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 31f: 0901
call0 sdk_eagle_auth_done # 321: 050000
l32i a0, sp, 0 /* [(local0)] */ # 324: 0801
addi sp, sp, 16 /* (top of frame) */ # 326: 12c110
ret # 329: 0df0
.literal_position # 32c: e8000000
# 330: 00000000
# 334: 00000000
# 338: 14010000
# 33c: 00000000
# 340: 00000000
# 344: 00000000
# 348: 00000000
# Function @ .irom0.text+0x34c
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_attach
.type sdk_wpa_attach, @function
sdk_wpa_attach:
movi a3, .Lfunc001 # 34c: 31f8ff
movi a5, sdk_ppInstallKey # 34f: 51f9ff
movi a6, .Lfunc002 # 352: 61f9ff
movi a7, sdk_wpa_neg_complete # 355: 71f9ff
mov a4, a2 /* arg0 */ # 358: 4d02
addi sp, sp, -16 /* (local0) */ # 35a: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35d: 0901
movi a2, 0 /* 0x00000000 */ # 35f: 0c02
movi a0, 384 /* 0x00000180 */ # 361: 02a180
add a0, a4, a0 /* arg0+0x180 */ # 364: 0a04
s32i a2, a4, 0x180 /* 0x00000000 -> [arg0+0x180] */ # 366: 226460
s32i a0, a4, 0x184 /* arg0+0x180 -> [arg0+0x184] */ # 369: 026461
movi a4, sdk_wpa_config_assoc_ie # 36c: 41f1ff
call0 sdk_wpa_register # 36f: 01f5ffc0
# 373: 0000
movi a2, sdk_eapol_txcb # 375: 21f2ff
movi a3, 3 /* 0x00000003 */ # 378: 0c33
call0 sdk_ppRegisterTxCallback # 37a: 01f3ffc0
# 37e: 0000
l32i a0, sp, 0 /* [(local0)] */ # 380: 0801
addi sp, sp, 16 /* (top of frame) */ # 382: 12c110
ret # 385: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "\nconnected with %s, channel %d\n" # 0: 0a636f6e
# 4: 6e656374
# 8: 65642077
# c: 69746820
# 10: 25732c20
# 14: 6368616e
# 18: 6e656c20
# 1c: 25640a00
.Lstr002: .asciz "dhcp client start...\n" # 20: 64686370
# 24: 20636c69
# 28: 656e7420
# 2c: 73746172
# 30: 742e2e2e
# 34: 0a00

503
binary_sdk/libwpa/wpabuf.S Normal file
View file

@ -0,0 +1,503 @@
.section .text, "ax", @progbits
# Function @ .text+0x0
.Lfunc001: l32i a4, a2, 8 /* [arg0+0x8] */ # 0: 4822
addi a3, a2, 12 /* arg0+0xc */ # 2: cb32
moveqz a4, a3, a4 # 4: 404383
mov a2, a4 # 7: 2d04
ret # 9: 0df0
.literal_position # c: 00000000
# 10: 00000000
# Function @ .text+0x14
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.Lfunc002: addi sp, sp, -16 /* (local0) */ # 14: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 19: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b: d921
mov a12, a3 /* arg1 */ # 1d: cd03
mov a13, a4 /* arg2 */ # 1f: dd04
beqz a3, .Lbr001 # 21: 9c03
mov a3, a4 /* arg2 */ # 23: 3d04
call0 sdk_wpabuf_put # 25: 01f9ffc0
# 29: 0000
mov a4, a13 /* arg2 */ # 2b: 4d0d
mov a3, a12 /* arg1 */ # 2d: 3d0c
call0 memcpy # 2f: 01f8ffc0
# 33: 0000
.Lbr001: l32i a12, sp, 4 /* [(local1)] */ # 35: c811
l32i a13, sp, 8 /* [(local2)] */ # 37: d821
l32i a0, sp, 0 /* [(local0)] */ # 39: 0801
addi sp, sp, 16 /* (top of frame) */ # 3b: 12c110
ret # 3e: 0df0
# Function @ .text+0x40
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc003: mov a6, a3 /* arg1 */ # 40: 6d03
addi sp, sp, -16 /* (local0) */ # 42: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 45: 0901
l32i a4, a6, 4 /* [arg1+0x4] */ # 47: 4816
l32i a3, a3, 8 /* [arg1+0x8] */ # 49: 3823
addi a0, a6, 12 /* arg1+0xc */ # 4b: cb06
moveqz a3, a0, a3 # 4d: 303083
call0 .Lfunc002 # 50: 05fcff
l32i a0, sp, 0 /* [(local0)] */ # 53: 0801
addi sp, sp, 16 /* (top of frame) */ # 55: 12c110
ret # 58: 0df0
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word[4] @ -0x10
.Lfunc004: movi a2, .Lstr001 # 8: 21feff
addi sp, sp, -16 /* (local0) */ # b: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # e: 0901
call0 ets_printf # 10: 01fdffc0
# 14: 0000
l32i a0, sp, 0 /* [(local0)] */ # 16: 0801
addi sp, sp, 16 /* (top of frame) */ # 18: 12c110
ret # 1b: 0df0
.literal_position # 20: 00000000
# 24: 00000000
# 28: 00000000
# 2c: 00000000
# Function @ .irom0.text+0x30
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_wpabuf_resize
.type sdk_wpabuf_resize, @function
sdk_wpabuf_resize:
addi sp, sp, -16 /* (local0) */ # 30: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 33: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 35: d921
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 37: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 39: c911
mov a14, a2 /* arg0 */ # 3b: ed02
l32i a12, a2, 0 /* [arg0] */ # 3d: c802
mov a13, a3 /* arg1 */ # 3f: dd03
bnez a12, .Lbr002 # 41: dc1c
mov a2, a3 /* arg1 */ # 43: 2d03
call0 sdk_wpabuf_alloc # 45: 050000
mov a3, a2 # 48: 3d02
s32i a2, a14, 0 /* a2 -> [arg0] */ # 4a: 290e
movi a0, -1 /* 0xffffffff */ # 4c: 7cf0
movi a2, 0 /* 0x00000000 */ # 4e: 0c02
moveqz a2, a0, a3 # 50: 302083
j .Lbr006 # 53: 461100
.Lbr002: l32i a3, a12, 4 /* [[arg0]+0x4] */ # 56: 381c
l32i a4, a12, 0 /* [[arg0]] */ # 58: 480c
add a3, a3, a13 # 5a: da33
bgeu a4, a3, .Lbr005 # 5c: 37b43a
l32i a2, a12, 8 /* [[arg0]+0x8] */ # 5f: 282c
beqz a2, .Lbr007 # 61: 164204
call0 realloc # 64: 01efffc0
# 68: 0000
mov a14, a2 # 6a: ed02
beqz a2, .Lbr008 # 6c: 168204
movi a3, 0 /* 0x00000000 */ # 6f: 0c03
l32i a2, a12, 4 /* [[arg0]+0x4] */ # 71: 281c
mov a4, a13 /* arg1 */ # 73: 4d0d
add a2, a2, a14 # 75: ea22
call0 memset # 77: 01ebffc0
# 7b: 0000
s32i a14, a12, 8 /* a14 -> [[arg0]+0x8] */ # 7d: e92c
j .Lbr004 # 7f: 460400
.Lbr003: movi a3, 0 /* 0x00000000 */ # 82: 0c03
l32i a2, a2, 4 # 84: 2812
mov a4, a13 /* arg1 */ # 86: 4d0d
add a2, a2, a12 # 88: ca22
addi a2, a2, 12 # 8a: cb22
call0 memset # 8c: 01e7ffc0
# 90: 0000
s32i a12, a14, 0 /* a12 -> [arg0] */ # 92: c90e
.Lbr004: l32i a3, a12, 4 # 94: 381c
add a3, a3, a13 # 96: da33
s32i a3, a12, 0 # 98: 390c
.Lbr005: movi a2, 0 /* 0x00000000 */ # 9a: 0c02
.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 9c: c811
l32i a13, sp, 8 /* [(local2)] */ # 9e: d821
l32i a14, sp, 12 /* [(local3)] */ # a0: e831
l32i a0, sp, 0 /* [(local0)] */ # a2: 0801
addi sp, sp, 16 /* (top of frame) */ # a4: 12c110
ret # a7: 0df0
.Lbr007: mov a2, a12 /* [arg0] */ # a9: 2d0c
addi a3, a3, 12 # ab: cb33
call0 realloc # ad: 01dfffc0
# b1: 0000
mov a12, a2 # b3: cd02
bnez a2, .Lbr003 # b5: 5692fc
.Lbr008: movi a2, -1 /* 0xffffffff */ # b8: 7cf2
j .Lbr006 # ba: 86f7ff
.literal_position # c0: 00000000
# Function @ .irom0.text+0xc4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_wpabuf_alloc
.type sdk_wpabuf_alloc, @function
sdk_wpabuf_alloc:
addi sp, sp, -16 /* (local0) */ # c4: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # c7: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # c9: 0901
mov a12, a2 /* arg0 */ # cb: cd02
addi a2, a2, 12 /* arg0+0xc */ # cd: cb22
call0 zalloc # cf: 01fcffc0
# d3: 0000
l32i a0, sp, 0 /* [(local0)] */ # d5: 0801
bnez a2, .Lbr009 # d7: cc32
movi a2, 0 /* 0x00000000 */ # d9: 0c02
j .Lbr010 # db: 460000
.Lbr009: s32i a12, a2, 0 # de: c902
.Lbr010: l32i a12, sp, 4 /* [(local1)] */ # e0: c811
addi sp, sp, 16 /* (top of frame) */ # e2: 12c110
ret # e5: 0df0
.literal_position # e8: 00000000
# Function @ .irom0.text+0xec
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_wpabuf_alloc_ext_data
.type sdk_wpabuf_alloc_ext_data, @function
sdk_wpabuf_alloc_ext_data:
addi sp, sp, -16 /* (local0) */ # ec: 12c1f0
s32i a3, sp, 4 /* arg1 -> [(local1)] */ # ef: 3911
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # f1: 2901
s32i a0, sp, 8 /* a0 -> [(local2)] */ # f3: 0921
movi a2, 12 /* 0x0000000c */ # f5: 0cc2
call0 zalloc # f7: 01fcffc0
# fb: 0000
bnez a2, .Lbr011 # fd: cc32
movi a2, 0 /* 0x00000000 */ # ff: 0c02
j .Lbr012 # 101: 460200
.Lbr011: l32i a0, sp, 0 /* [(local0)] */ # 104: 0801
l32i a3, sp, 4 /* [(local1)] */ # 106: 3811
s32i a3, a2, 0 # 108: 3902
s32i a3, a2, 4 # 10a: 3912
s32i a0, a2, 8 # 10c: 0922
.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 10e: 0821
addi sp, sp, 16 /* (top of frame) */ # 110: 12c110
ret # 113: 0df0
.literal_position # 118: 14000000
# Function @ .irom0.text+0x11c
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_wpabuf_alloc_copy
.type sdk_wpabuf_alloc_copy, @function
sdk_wpabuf_alloc_copy:
mov a9, a2 /* arg0 */ # 11c: 9d02
addi sp, sp, -16 /* (local0) */ # 11e: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # 121: c921
mov a2, a3 /* arg1 */ # 123: 2d03
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 125: d931
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 127: 0911
mov a13, a3 /* arg1 */ # 129: dd03
s32i a9, sp, 0 /* arg0 -> [(local0)] */ # 12b: 9901
call0 sdk_wpabuf_alloc # 12d: 050000
mov a12, a2 # 130: cd02
beqz a2, .Lbr013 # 132: 8c82
mov a4, a13 /* arg1 */ # 134: 4d0d
l32i a3, sp, 0 /* [(local0)] */ # 136: 3801
call0 .Lfunc002 # 138: 01f8ffc0
# 13c: 0000
.Lbr013: l32i a0, sp, 4 /* [(local1)] */ # 13e: 0811
mov a2, a12 # 140: 2d0c
l32i a13, sp, 12 /* [(local3)] */ # 142: d831
l32i a12, sp, 8 /* [(local2)] */ # 144: c821
addi sp, sp, 16 /* (top of frame) */ # 146: 12c110
ret # 149: 0df0
.literal_position # 14c: 14000000
# Function @ .irom0.text+0x150
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word[2] @ -0x8
.global sdk_wpabuf_dup
.type sdk_wpabuf_dup, @function
sdk_wpabuf_dup:
addi sp, sp, -16 /* (local0) */ # 150: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 153: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 155: d921
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901
mov a13, a2 /* arg0 */ # 159: dd02
l32i a2, a2, 4 /* [arg0+0x4] */ # 15b: 2812
call0 sdk_wpabuf_alloc # 15d: 050000
mov a12, a2 # 160: cd02
beqz a2, .Lbr014 # 162: 8cd2
l32i a4, a13, 4 /* [arg0+0x4] */ # 164: 481d
l32i a3, a13, 8 /* [arg0+0x8] */ # 166: 382d
addi a0, a13, 12 /* arg0+0xc */ # 168: cb0d
moveqz a3, a0, a3 # 16a: 303083
call0 .Lfunc002 # 16d: 01f7ffc0
# 171: 0000
.Lbr014: l32i a0, sp, 0 /* [(local0)] */ # 173: 0801
mov a2, a12 # 175: 2d0c
l32i a13, sp, 8 /* [(local2)] */ # 177: d821
l32i a12, sp, 4 /* [(local1)] */ # 179: c811
addi sp, sp, 16 /* (top of frame) */ # 17b: 12c110
ret # 17e: 0df0
.literal_position # 180: 00000000
# 184: 00000000
# Function @ .irom0.text+0x188
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word[3] @ -0xc
.global sdk_wpabuf_free
.type sdk_wpabuf_free, @function
sdk_wpabuf_free:
addi sp, sp, -16 /* (local0) */ # 188: 12c1f0
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 18b: c911
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18d: 0901
mov a12, a2 /* arg0 */ # 18f: cd02
beqz a2, .Lbr015 # 191: 8ce2
l32i a2, a2, 8 /* [arg0+0x8] */ # 193: 2822
call0 free # 195: 01faffc0
# 199: 0000
mov a2, a12 /* arg0 */ # 19b: 2d0c
call0 free # 19d: 01f9ffc0
# 1a1: 0000
.Lbr015: l32i a12, sp, 4 /* [(local1)] */ # 1a3: c811
l32i a0, sp, 0 /* [(local0)] */ # 1a5: 0801
addi sp, sp, 16 /* (top of frame) */ # 1a7: 12c110
ret # 1aa: 0df0
.literal_position # 1ac: 00000000
# Function @ .irom0.text+0x1b0
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_wpabuf_put
.type sdk_wpabuf_put, @function
sdk_wpabuf_put:
addi sp, sp, -32 /* (local0) */ # 1b0: 12c1e0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b3: 0901
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b5: d921
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1b7: c911
mov a13, a3 /* arg1 */ # 1b9: dd03
mov a12, a2 /* arg0 */ # 1bb: cd02
call0 .Lfunc001 # 1bd: 01fbffc0
# 1c1: 0000
s32i a2, sp, 12 /* a2 -> [(local3)] */ # 1c3: 2931
l32i a3, a12, 0 /* [arg0] */ # 1c5: 380c
l32i a0, a12, 4 /* [arg0+0x4] */ # 1c7: 081c
s32i a0, sp, 16 /* [arg0+0x4] -> [(local4)] */ # 1c9: 0941
add a4, a0, a13 # 1cb: da40
s32i a4, a12, 4 /* a4 -> [arg0+0x4] */ # 1cd: 491c
bgeu a3, a4, .Lbr016 # 1cf: 47b30a
mov a3, a13 /* arg1 */ # 1d2: 3d0d
mov a2, a12 /* arg0 */ # 1d4: 2d0c
call0 .Lfunc004 # 1d6: 05e3ff
l32i a0, sp, 16 /* [(local4)] */ # 1d9: 0841
l32i a2, sp, 12 /* [(local3)] */ # 1db: 2831
.Lbr016: l32i a12, sp, 4 /* [(local1)] */ # 1dd: c811
l32i a13, sp, 8 /* [(local2)] */ # 1df: d821
add a2, a2, a0 # 1e1: 0a22
l32i a0, sp, 0 /* [(local0)] */ # 1e3: 0801
addi sp, sp, 32 /* (top of frame) */ # 1e5: 12c120
ret # 1e8: 0df0
.literal_position # 1ec: 40000000
# 1f0: 40000000
# Function @ .irom0.text+0x1f4
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.global sdk_wpabuf_concat
.type sdk_wpabuf_concat, @function
sdk_wpabuf_concat:
addi sp, sp, -16 /* (local0) */ # 1f4: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1f7: 0901
s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1f9: e931
s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1fb: c911
s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1fd: d921
mov a12, a2 /* arg0 */ # 1ff: cd02
mov a13, a3 /* arg1 */ # 201: dd03
bnez a3, .Lbr017 # 203: cc33
mov a14, a2 /* arg0 */ # 205: ed02
j .Lbr022 # 207: 460c00
.Lbr017: bnez a2, .Lbr018 # 20a: cc32
movi a0, 0 /* 0x00000000 */ # 20c: 0c00
j .Lbr019 # 20e: 460000
.Lbr018: l32i a0, a2, 4 /* [arg0+0x4] */ # 211: 0812
.Lbr019: l32i a2, a13, 4 /* [arg1+0x4] */ # 213: 281d
add a2, a2, a0 # 215: 0a22
call0 sdk_wpabuf_alloc # 217: 050000
mov a14, a2 # 21a: ed02
beqz a2, .Lbr021 # 21c: 9c22
beqz a12, .Lbr020 # 21e: 8c6c
mov a3, a12 /* arg0 */ # 220: 3d0c
call0 .Lfunc003 # 222: 01f2ffc0
# 226: 0000
.Lbr020: mov a2, a14 # 228: 2d0e
mov a3, a13 /* arg1 */ # 22a: 3d0d
call0 .Lfunc003 # 22c: 01f1ffc0
# 230: 0000
.Lbr021: mov a2, a12 /* arg0 */ # 232: 2d0c
call0 sdk_wpabuf_free # 234: 050000
mov a2, a13 /* arg1 */ # 237: 2d0d
call0 sdk_wpabuf_free # 239: 050000
.Lbr022: l32i a0, sp, 0 /* [(local0)] */ # 23c: 0801
l32i a12, sp, 4 /* [(local1)] */ # 23e: c811
mov a2, a14 # 240: 2d0e
l32i a13, sp, 8 /* [(local2)] */ # 242: d821
l32i a14, sp, 12 /* [(local3)] */ # 244: e831
addi sp, sp, 16 /* (top of frame) */ # 246: 12c110
ret # 249: 0df0
.literal_position # 24c: 00000000
# 250: 40000000
# Function @ .irom0.text+0x254
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word[4] @ -0x10
.global sdk_wpabuf_zeropad
.type sdk_wpabuf_zeropad, @function
sdk_wpabuf_zeropad:
addi sp, sp, -32 /* (local0) */ # 254: 12c1e0
s32i a0, sp, 8 /* a0 -> [(local2)] */ # 257: 0921
s32i a12, sp, 12 /* a12 -> [(local3)] */ # 259: c931
s32i a13, sp, 16 /* a13 -> [(local4)] */ # 25b: d941
mov a12, a2 /* arg0 */ # 25d: cd02
mov a13, a3 /* arg1 */ # 25f: dd03
bnez a2, .Lbr023 # 261: cc32
movi a12, 0 /* 0x00000000 */ # 263: 0c0c
j .Lbr025 # 265: 060e00
.Lbr023: l32i a0, a2, 4 /* [arg0+0x4] */ # 268: 0812
s32i a0, sp, 0 /* [arg0+0x4] -> [(local0)] */ # 26a: 0901
bgeu a0, a3, .Lbr025 # 26c: 37b031
mov a2, a3 /* arg1 */ # 26f: 2d03
call0 sdk_wpabuf_alloc # 271: 050000
s32i a2, sp, 4 /* a2 -> [(local1)] */ # 274: 2911
beqz a2, .Lbr024 # 276: 9ce2
l32i a2, sp, 0 /* [(local0)] */ # 278: 2801
sub a13, a13, a2 # 27a: 20ddc0
l32i a2, sp, 4 /* [(local1)] */ # 27d: 2811
mov a3, a13 # 27f: 3d0d
call0 sdk_wpabuf_put # 281: 050000
mov a4, a13 # 284: 4d0d
movi a3, 0 /* 0x00000000 */ # 286: 0c03
call0 memset # 288: 01f1ffc0
# 28c: 0000
l32i a2, sp, 4 /* [(local1)] */ # 28e: 2811
mov a3, a12 /* arg0 */ # 290: 3d0c
call0 .Lfunc003 # 292: 01efffc0
# 296: 0000
.Lbr024: mov a2, a12 /* arg0 */ # 298: 2d0c
l32i a13, sp, 4 /* [(local1)] */ # 29a: d811
call0 sdk_wpabuf_free # 29c: 050000
mov a12, a13 /* [(local1)] */ # 29f: cd0d
.Lbr025: l32i a0, sp, 8 /* [(local2)] */ # 2a1: 0821
mov a2, a12 # 2a3: 2d0c
l32i a13, sp, 16 /* [(local4)] */ # 2a5: d841
l32i a12, sp, 12 /* [(local3)] */ # 2a7: c831
addi sp, sp, 32 /* (top of frame) */ # 2a9: 12c120
ret # 2ac: 0df0
.literal_position # 2b0: 00000000
# 2b4: 00000000
# Function @ .irom0.text+0x2b8
# Local variables/stack:
# (local0): word @ -0x40
# (local1): word @ -0x3c
# (local2): word @ -0x38
# (local3): word @ -0x34
# (local4): word @ -0x30
# (local5): word[5] @ -0x2c
# (local6): word @ -0x18
# (local7): word @ -0x14
# (local8): word @ -0x10
# (local9): word[3] @ -0xc
.global wpabuf_printf
.type wpabuf_printf, @function
wpabuf_printf:
addi sp, sp, -64 /* (local0) */ # 2b8: 12c1c0
s32i a4, sp, 40 /* arg2 -> [(local6)] */ # 2bb: 49a1
s32i a5, sp, 44 /* arg3 -> [(local7)] */ # 2bd: 59b1
s32i a6, sp, 48 /* arg4 -> [(local8)] */ # 2bf: 69c1
s32i a7, sp, 52 /* arg5 -> [(local9)] */ # 2c1: 79d1
s32i a0, sp, 12 /* a0 -> [(local3)] */ # 2c3: 0931
s32i a12, sp, 16 /* a12 -> [(local4)] */ # 2c5: c941
s32i a13, sp, 20 /* a13 -> [(local5)] */ # 2c7: d951
mov a12, a2 /* arg0 */ # 2c9: cd02
mov a13, a3 /* arg1 */ # 2cb: dd03
call0 .Lfunc001 # 2cd: 01f8ffc0
# 2d1: 0000
mov a4, a13 /* arg1 */ # 2d3: 4d0d
l32i a3, a12, 0 /* [arg0] */ # 2d5: 380c
l32i a5, a12, 4 /* [arg0+0x4] */ # 2d7: 581c
movi a6, 8 /* 0x00000008 */ # 2d9: 0c86
addi a9, sp, 32 /* (FP)-0x20 */ # 2db: 92c120
s32i a9, sp, 4 /* (FP)-0x20 -> [(local1)] */ # 2de: 9911
s32i a9, sp, 0 /* (FP)-0x20 -> [(local0)] */ # 2e0: 9901
s32i a6, sp, 8 /* 0x00000008 -> [(local2)] */ # 2e2: 6921
add a2, a2, a5 # 2e4: 5a22
sub a3, a3, a5 # 2e6: 5033c0
mov a6, a9 /* (FP)-0x20 */ # 2e9: 6d09
mov a5, a9 /* (FP)-0x20 */ # 2eb: 5d09
l32i a7, sp, 8 /* [(local2)] */ # 2ed: 7821
call0 ets_vsnprintf # 2ef: 01f1ffc0
# 2f3: 0000
mov a13, a2 # 2f5: dd02
bltz a2, .Lbr026 # 2f7: 969200
l32i a0, a12, 4 /* [arg0+0x4] */ # 2fa: 081c
l32i a7, a12, 0 /* [arg0] */ # 2fc: 780c
sub a7, a7, a0 # 2fe: 0077c0
bltu a2, a7, .Lbr027 # 301: 773208
.Lbr026: mov a2, a12 /* arg0 */ # 304: 2d0c
mov a3, a13 # 306: 3d0d
call0 .Lfunc004 # 308: c5cfff
l32i a0, a12, 4 /* [arg0+0x4] */ # 30b: 081c
.Lbr027: add a8, a13, a0 # 30d: 0a8d
s32i a8, a12, 4 /* a8 -> [arg0+0x4] */ # 30f: 891c
l32i a13, sp, 20 /* [(local5)] */ # 311: d851
l32i a12, sp, 16 /* [(local4)] */ # 313: c841
l32i a0, sp, 12 /* [(local3)] */ # 315: 0831
addi sp, sp, 64 /* (top of frame) */ # 317: 12c140
ret # 31a: 0df0
.section .rodata.str1.4, "MSa", @progbits, 1
.Lstr001: .asciz "wpabuf overflow" # 0: 77706162
# 4: 7566206f
# 8: 76657266
# c: 6c6f7700

View file

@ -0,0 +1,138 @@
.section .irom0.text, "ax", @progbits
.literal_position # 0: 00000000
# 4: 00000000
# Function @ .irom0.text+0x8
# Local variables/stack:
# (local0): word @ -0x10
# (local1): word @ -0xc
# (local2): word @ -0x8
# (local3): word @ -0x4
.Lfunc001: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0
s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921
l32i a8, a2, 0x210 /* [arg0+0x210] */ # d: 822284
s32i a13, sp, 12 /* a13 -> [(local3)] */ # 10: d931
s32i a0, sp, 4 /* a0 -> [(local1)] */ # 12: 0911
mov a13, a7 /* arg5 */ # 14: dd07
addi a0, a5, 4 /* arg3+0x4 */ # 16: 4b05
movi a7, 208 /* 0x000000d0 */ # 18: 72a0d0
add a7, a2, a7 /* arg0+0xd0 */ # 1b: 7a72
l32i a2, a8, 4 /* [[arg0+0x210]+0x4] */ # 1d: 2818
s32i a0, a6, 0 /* arg3+0x4 -> [arg4] */ # 1f: 0906
addi a0, a2, 14 /* [[arg0+0x210]+0x4]+0xe */ # 21: eb02
bnez a0, .Lbr001 # 23: cc30
movi a2, 0 /* 0x00000000 */ # 25: 0c02
j .Lbr005 # 27: 461100
.Lbr001: addi a12, a2, 18 /* [[arg0+0x210]+0x4]+0x12 */ # 2a: c2c212
s32i a0, sp, 0 /* [[arg0+0x210]+0x4]+0xe -> [(local0)] */ # 2d: 0901
extui a8, a5, 8, 8 # 2f: 508874
extui a9, a5, 0, 8 # 32: 509074
l8ui a10, a7, 128 /* [arg0+0x150] */ # 35: a20780
s8i a10, a2, 14 /* [arg0+0x150] -> [[[arg0+0x210]+0x4]+0xe] */ # 38: a2420e
slli a9, a9, 8 # 3b: 809911
s8i a3, a2, 15 /* arg1 -> [[[arg0+0x210]+0x4]+0xf] */ # 3e: 32420f
or a8, a8, a9 # 41: 908820
s8i a8, a2, 16 /* a8 -> [[[arg0+0x210]+0x4]+0x10] */ # 44: 824210
srli a8, a8, 8 # 47: 808841
s8i a8, a2, 17 /* a8 -> [[[arg0+0x210]+0x4]+0x11] */ # 4a: 824211
beqz a4, .Lbr002 # 4d: 8cd4
mov a3, a4 /* arg2 */ # 4f: 3d04
mov a2, a12 /* [[arg0+0x210]+0x4]+0x12 */ # 51: 2d0c
mov a4, a5 /* arg3 */ # 53: 4d05
call0 memcpy # 55: 01eaffc0
# 59: 0000
j .Lbr003 # 5b: c60200
.Lbr002: mov a4, a5 /* arg3 */ # 5e: 4d05
mov a2, a12 /* [[arg0+0x210]+0x4]+0x12 */ # 60: 2d0c
movi a3, 0 /* 0x00000000 */ # 62: 0c03
call0 memset # 64: 01e8ffc0
# 68: 0000
.Lbr003: beqz a13, .Lbr004 # 6a: 8c0d
s32i a12, a13, 0 /* [[arg0+0x210]+0x4]+0x12 -> [arg5] */ # 6c: c90d
.Lbr004: l32i a2, sp, 0 /* [(local0)] */ # 6e: 2801
.Lbr005: l32i a12, sp, 8 /* [(local2)] */ # 70: c821
l32i a13, sp, 12 /* [(local3)] */ # 72: d831
l32i a0, sp, 4 /* [(local1)] */ # 74: 0811
addi sp, sp, 16 /* (top of frame) */ # 76: 12c110
ret # 79: 0df0
.literal_position # 7c: 00000000
# Function @ .irom0.text+0x80
# Local variables/stack:
# (local0): word @ -0x20
# (local1): word @ -0x1c
# (local2): word @ -0x18
# (local3): word @ -0x14
# (local4): word @ -0x10
# (local5): word @ -0xc
# (local6): word[2] @ -0x8
.global sdk_wpa_sm_alloc_eapol
.type sdk_wpa_sm_alloc_eapol, @function
sdk_wpa_sm_alloc_eapol:
addi sp, sp, -32 /* (local0) */ # 80: 12c1e0
s32i a5, sp, 12 /* arg3 -> [(local3)] */ # 83: 5931
s32i a6, sp, 16 /* arg4 -> [(local4)] */ # 85: 6941
s32i a7, sp, 20 /* arg5 -> [(local5)] */ # 87: 7951
s32i a0, sp, 24 /* a0 -> [(local6)] */ # 89: 0961
s32i a4, sp, 8 /* arg2 -> [(local2)] */ # 8b: 4921
s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 8d: 2901
s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 8f: 3911
movi a2, 3 /* 0x00000003 */ # 91: 0c32
movi a3, 256 /* 0x00000100 */ # 93: 32a100
movi a4, 0 /* 0x00000000 */ # 96: 0c04
call0 pbuf_alloc # 98: 01f9ffc0
# 9c: 0000
l32i a3, sp, 4 /* [(local1)] */ # 9e: 3811
l32i a4, sp, 8 /* [(local2)] */ # a0: 4821
l32i a5, sp, 12 /* [(local3)] */ # a2: 5831
mov a0, a2 # a4: 0d02
l32i a6, sp, 16 /* [(local4)] */ # a6: 6841
l32i a2, sp, 0 /* [(local0)] */ # a8: 2801
l32i a7, sp, 20 /* [(local5)] */ # aa: 7851
s32i a0, a2, 0x210 /* a0 -> [[(local0)]+0x210] */ # ac: 026284
call0 .Lfunc001 # af: 85f5ff
l32i a0, sp, 24 /* [(local6)] */ # b2: 0861
addi sp, sp, 32 /* (top of frame) */ # b4: 12c120
ret # b7: 0df0
.balign 4
# Function @ .irom0.text+0xbc
# Local variables/stack:
# (local0): word[4] @ -0x10
.global sdk_wpa_sm_deauthenticate
.type sdk_wpa_sm_deauthenticate, @function
sdk_wpa_sm_deauthenticate:
addi sp, sp, -16 /* (local0) */ # bc: 12c1f0
s32i a0, sp, 0 /* a0 -> [(local0)] */ # bf: 0901
l32i a0, a2, 0x168 /* [arg0+0x168] */ # c1: 02225a
bltui a0, 5, .Lbr006 # c4: b65007
l32i a0, a2, 0x220 /* [arg0+0x220] */ # c7: 022288
mov a2, a3 /* arg1 */ # ca: 2d03
callx0 a0 /* [arg0+0x220] */ # cc: c00000
.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # cf: 0801
addi sp, sp, 16 /* (top of frame) */ # d1: 12c110
ret # d4: 0df0
.balign 4
# Function @ .irom0.text+0xd8
.global sdk_wpa_sm_mlme_setprotection
.type sdk_wpa_sm_mlme_setprotection, @function
sdk_wpa_sm_mlme_setprotection:
movi a2, 0 /* 0x00000000 */ # d8: 0c02
ret /* 0x00000000 */ # da: 0df0
# Function @ .irom0.text+0xdc
.global sdk_wpa_sm_get_beacon_ie
.type sdk_wpa_sm_get_beacon_ie, @function
sdk_wpa_sm_get_beacon_ie:
movi a2, 0 /* 0x00000000 */ # dc: 0c02
ret /* 0x00000000 */ # de: 0df0
# Function @ .irom0.text+0xe0
.global sdk_wpa_sm_disassociate
.type sdk_wpa_sm_disassociate, @function
sdk_wpa_sm_disassociate:
ret /* arg0 */ # e0: 0df0