Function at 0x151e566
Capabilities:
Authenticate hmac
Encode data using base64
Encrypt data using speck

Disassembly:
rol edx, 1
xor edx, 0x6db5343d
imul ax, cx
push eax
btr ecx, eax
xor ebx, edx
add ax, 0xe137
call fcn.00d1fbc7
mov eax, 0x92244809
lea edx, [eax + eax*4 + 0x47a7c5ba]
btc edx, eax
mov ecx, dword [edx + ebp - 0x225d2feb]
sal dl, 0xe4
xor ecx, ebx
btc edx, 0xac
mul dl
ror edx, 0xcc
rol ecx, 3
not eax
not ecx
push edx
lea edx, [eax - 0x15de5d4c]
shl dl, 0x24
xor ecx, 0x160f3111
btc edx, 0x30
sar al, 0xc7
dec dx
lea ecx, [ecx + edx - 0x7f16beb5]
adc ax, ax
mul eax
xor ebx, ecx
shl al, 0x63
btr eax, 0x1d
mov dword [edx + esi - 0x2f250e36], ecx
movzx edx, word [eax + ebp - 0x40400006]
xor dx, bx
xor dx, 0xd217
push eax
sub dx, 0xffb2
cwde
cbw
xor dx, 0x399c
movzx ecx, ax
sub dx, 0x46b0
xor cx, 0x4d88
xor bx, dx
or ax, word [esp + eax*4]
not eax
btc ecx, eax
mov word [esi - 6], dx
jae 0x1359f9f
push edx
mov dword [esp], 0x1d5e0159
call fcn.01591387
inc ecx
mov ebp, dword [esi]
inc ecx
mov ebx, 0x85acb080
inc ecx
movzx ecx, bx
inc esp
movsx ebp, cl
inc ebp
mov edx, dword [esi + ecx - 0xb07c]
dec edi
lea ecx, [ebx + ebx*2 + 0xa21e0aa]
inc ecx
or ebp, edx
not ebp
inc ecx
ror ebp, 0x42
inc ecx
neg ebp
dec esi
lea edx, [ebp*2 - 0x20e9914b]
inc ecx
mov dword [esi + ecx*4 - 0x2c1fc], ebp
push ecx
xor dword [esp + ecx*2 - 0x160fd], 0x861a67b3
inc esp
movzx esp, word [esi + ecx*2 - 0x16102]
inc ecx
pop ecx
inc ecx
mov ebp, ebx
inc bp
xor esp, edi
inc ecx
dec edx
sar bp, 0xac
inc cx
not esp
dec eax
lea eax, [ecx - 0x716f0e67]
inc esp
movzx eax, cl
inc ecx
xchg dl, al
inc cx
adc esp, 0x8d4fee1a
mov word [eax], cs
push ds
push eax
daa
mov eax, dword [0xf4814166]
add al, 0xde
inc ecx
movsx edx, al
inc cx
rol esp, 1
dec esi
lea edx, [ecx*4 - 0x76f2e858]
jmp 0x147be77
inc ecx
dec eax
dec cx
inc cx
imul esp
push ebp
inc ecx
rol eax, 1
inc edi
lea eax, [eax + ebx - 0x3d7824e7]
xadd dx, ax
dec esp
mov dword [esp + ecx*2 - 0x2c21fc], edi
xadd edx, ecx
inc ebp
movzx edi, cl
dec esp
xadd ebp, edx
inc esp
xor dword [esp + eax - 0x2f4fffee], eax
dec eax
cwde
inc cx
shr ecx, 0xc7
inc ecx
pop edi
dec ebp
arpl ax, ax
inc cx
add edx, esp
div eax
cdq
dec ecx
add edi, eax
dec esp
xchg ebp, ebx
dec esp
bt edx, edx
dec ecx
shr esp, cl
dec eax
or edx, edi
jmp edx
dec ecx
inc ebp
inc ecx
rol eax, 1
inc ecx
or ebp, 0xf239a139
inc esp
xchg byte [esp + ebx - 0x4a28df95], ah
inc ecx
dec eax
neg dl
and al, cl
inc cx
add ebx, 0x81411bbc
invalid
sbb esi, 6
mov edx, 0x51a91f2b
mul byte [esp + edx - 0x51a91f25]
mov ecx, dword [edx + ebp - 0x51a91f35]
lea ebp, [ebp + edx - 0x51a91f35]
sar edx, 0x61
and dx, dx
xor ecx, ebx
rol word [esp + edx - 0x28d48f91], 0x4a
sal ax, 0xc9
rol dword [esp + edx*2 - 0x51a91f29], 0xca
lea ecx, [ecx + edx*4 + 0x3abae0d2]
dec dword [esp + edx*2 - 0x51a91f26]
rol ecx, 1
not ecx
xor ecx, 0xadb07eac
cdq
sub al, byte [esp]
xor ebx, ecx
idiv eax
add edi, ecx
shl dword [esp + eax*2 + 1], 0xdf
mul edx
cwd
pop eax
pop edx
jae fcn.013c73b8
lea esp, [esp + 4]
je 0x159dce4
mov eax, 0xe6b0b5ae
bts eax, eax
mov eax, dword [ebp + ebx*4]
call fcn.00b8e71a
mov dword [ebp - 0x48], esi
sbb esi, 0xbd989b85
bt si, sp
mov esi, dword [eax]
cmp ch, 0x19
mov dword [ecx], ebx
btr cx, ax
movsx ecx, sp
rcl cx, 5
mov ecx, dword [ebp + 0x14]
mov dword [ecx], ebx
bts ecx, edi
cmc
mov ecx, dword [eax + 4]
sbb ah, 0x97
or eax, eax
lea ecx, [ecx + esi]
mov eax, 0x300
stc
shl eax, cl
mov dword [ebp - 0x3c], esi
mov dword [ebp - 0x14], ebx
cmc
mov dword [ebp - 0x10], edi
jmp 0xce1103
dec esp
mov dword [ebp + edx*4], esp
inc esp
mov esp, edx
inc ecx
dec esp
dec eax
lea esi, [edx + esi - 4]
dec esp
mov dword [esp + edx*2 + 8], esp
dec eax
mov dword [esp + ebx - 0x4a28df97], edx
inc esp
mov eax, dword [esi + edx*4]
dec edx
rol dword [esp + ecx*2 - 0x5100e2a], 0x53
inc ebp
xor eax, edi
jmp 0xceaa48
inc ecx
movzx ebx, bl
inc cx
not esp
dec eax
cdq
dec ecx
dec ebx
cwde
inc cx
sub esp, 0x4466d29e
xor esp, edx
inc ecx
sar eax, 0xe1
inc cx
ror esp, 1
dec ecx
neg ebx
add dx, 0xac11
inc cx
not esp
dec eax
sbb edx, ebx
shl ecx, 0xa5
inc bp
xor edi, esp
ror dl, 0x26
sbb eax, 0xd0afea2d
inc bp
mov dword [esi + ecx - 0x160ffe], esp
or ebx, 0xe726130f
inc esp
bt ebp, edx
dec cl
dec ebp
lea esi, [esi + ecx - 0x1610fd]
dec ecx
ror ecx, 4
inc cx
sar ebx, 1
inc esp
mov eax, dword [esi + ecx*4 - 0x584402]
dec eax
lea esi, [ecx + esi - 0x161105]
sar dl, 0xe7
jnp 0x13edf43
ror bp, 0xc6
inc ebp
xor eax, edi
dec eax
neg edx
sub al, 0x95
inc ecx
dec eax
mul bx
dec esi
lea esp, [ebx*2 - 0x5ddf0878]
inc ecx
ror eax, 3
cbw
inc ecx
xadd bl, al
jl 0xcae4b6
push ebp
sub ebp, 0x27bc310e
mov ebp, esp
shl cl, cl
sal cl, cl
sub esp, 0x48
not edx
mov ecx, dword [eax + 8]
sub dx, bp
adc dl, cl
rcr dh, cl
mov edx, dword [eax + 0xc]
cmp esi, 0xe127aeb4
push ebx
stc
test edx, esi
cmp si, sp
push esi
push edi
shl si, 0xa7
shrd di, bx, 0x84
mov edi, 1
xadd esi, esi
btr esi, esi
sbb esi, 0x439a5088
mov esi, edi
test bx, dx
cmp bx, bp
shl esi, cl
and cl, al
or ecx, esp
rcr cl, cl
mov ecx, dword [eax + 4]
xor ebx, ebx
mov dword [ebp - 0x20], edx
sub esi, edi
cmp al, 0x39
stc
test esi, edx
mov dword [ebp - 0x44], esi
inc esi
mov esi, edi
shl esi, cl
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x18], ebx
cmc
mov byte [ebp - 1], bl
sub esi, edi
jmp 0x1375cf6
js 0x154fb16
mov edi, dword [edi*4 + 0x135af68]
push 0x7638a5a7
ror dword [esp], 0x7a
shr ecx, 8
and dword [esp], 0x68194a94
or word [esp + 1], 0x3390
xor dword [esp], 0x9307d200
xor ecx, edi
push 0x7fae7f91
inc edx
sar dword [esp + 4], 0x61
neg word [esp + 5]
jno 0x14ff545
jmp 0x1585e42
dec cx
lea ecx, [edx + ecx + 0x330c4891]
xor eax, 0xba83c08b
push edx
bswap eax
ror eax, 1
neg edx
xor ebx, eax
add ebp, eax
ror cx, cl
bts dx, 0xa6
movzx eax, byte [esp + edx - 0x5c67adca]
mov ax, word [eax + edi - 0x36]
xor edx, dword [esp + edx - 0x5c67adca]
bts cx, cx
mov dx, word [edi + 2]
mov cl, byte [edi + 4]
rol dword [esp], 0x4a
neg word [esp + 2]
adc edi, 3
ror word [esp + 1], 0xaa
neg dword [esp]
add dword [esp], 0xc5a3cba3
shld ax, dx, cl
add dword [esp], 0x75a0f787
mov ecx, dword [esp]
jae 0x150ff2a
not ax
not dx
add ecx, ecx
or ax, dx
movzx edx, cl
or ecx, 0xfb24192f
mov dword [esp + edx*4 + 4], 0x16a8d901
mov word [esi + edx*8], ax
lea eax, [edx + edx + 0x6db4b2ae]
push eax
setae cl
mov dword [esp + edx], edi
ret 8
jmp 0x135c45d
xor ecx, 0x6f25893b
shl word [esp + 6], 0x46
dec eax
call fcn.01568bcc
cbw
sbb eax, 0x1795b633
bswap edx
ror dword [esp + ecx*4 - 0x14a2c], cl
ror edx, 3
xchg cx, ax
lea ecx, [ecx + eax*4 + 0x3611291d]
xor ebx, edx
inc dword [esp + ecx - 0x67dabcd0]
add edi, edx
push eax
movzx cx, byte [esi + eax - 0xc72528b]
mov al, byte [eax + esi - 0xc725289]
mov edx, dword [esp + 3]
lea esi, [esi + edx - 0x4481000a]
and cl, al
not cl
lea eax, [edx + edx - 0x554c35c]
mov word [esi + edx - 0x4481000c], cx
xor byte [esp + edx - 0x44810005], al
lea ecx, [eax + eax + 0x7d0754ae]
mov dword [esp + edx - 0x4481000c], edi
ret 4
mov word [edi], ax
pop ecx
jmp ebp
push ebx
mov ebp, esi
movzx ebx, dx
rol bl, 0x22
mov ebx, eax
mov edx, ebx
sal edx, 2
mov eax, ebp
push 0xd12e1a8b
shr byte [esp + 2], 0xe4
not dword [esp]
add eax, edx
mov dword [ebp - 4], eax
sar word [esp + 2], 0xc1
test ebx, ebx
jmp 0x14e1720
adc al, dl
xor bl, al
dec edx
mov dword [esp], edx
mov dword [esp], edi
ror dl, 0x85
jb 0x1488fa6
push ebp
dec edx
movzx ebp, dx
jle 0x15146ee
rol edx, 0x78
mov word [ebp + edx*8 - 0x28000000], ax
lea edi, [edi + edx*2 - 0xa000004]
lea ecx, [edx*8 + 0x5a3079bc]
mov edx, dword [edi + edx*8 - 0x28000000]
adc cl, cl
lea eax, [ecx*2 + 0x58090d97]
rol eax, 0x5a
xor edx, ebx
rol ecx, 0x9a
xadd cx, ax
xor cl, 0x18
neg edx
bswap edx
bts eax, eax
jb 0xc506da
mov ecx, 0x583bd003
mov eax, dword [esi + ecx - 0x583bd003]
lea esi, [ecx + esi - 0x583bcfff]
lea ecx, [ecx + ecx*2 - 0x37e82c44]
sal ecx, cl
neg ecx
xor eax, ebx
xchg ch, cl
lea edx, [ecx - 0x42ff0e51]
not eax
jmp 0x14bec64
call fcn.00c62a8a