177 lines
12 KiB
ArmAsm
177 lines
12 KiB
ArmAsm
|
|
||
|
.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
|