Function at 0x100fb5c0
Capabilities:
Authenticate hmac
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x101e6040]
xor eax, esp
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 0x14]
push esi
push edi
push 0x40
mov dword [esp + 0x20], eax
lea eax, [esp + 0x6c]
push 0
push eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x50], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x54], 0x6a09e667
mov dword [esp + 0x58], 0xbb67ae85
mov dword [esp + 0x5c], 0x3c6ef372
mov dword [esp + 0x60], 0xa54ff53a
mov dword [esp + 0x64], 0x510e527f
mov dword [esp + 0x68], 0x9b05688c
mov dword [esp + 0x6c], 0x1f83d9ab
mov dword [esp + 0x70], 0x5be0cd19
call fcn.10152e30
add esp, 0xc
mov dword [esp + 0x10], 1
cmp dword [ebp + 0x18], 0x20
jl 0x100fb8eb
mov dword [esp + 0x18], 0x20
mov edi, dword [esp + 0x14]
xor esi, esi
nop dword [eax + eax]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea edx, [edx + eax*4]
movsx eax, byte [edi + esi]
xor eax, 0x36
movzx ecx, al
mov eax, dword [edx]
shl eax, 8
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb6a7
inc dword [esp + 0x44]
jmp 0x100fb6ae
test eax, 0x1ff
jne 0x100fb6b7
lea ecx, [esp + 0x40]
call fcn.100d4df0
inc esi
cmp esi, 0x20
jl 0x100fb670
mov edi, dword [ebp + 0xc]
mov esi, 0x20
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
shl eax, 8
or eax, 0x36
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb6f3
inc dword [esp + 0x44]
jmp 0x100fb6fa
test eax, 0x1ff
jne 0x100fb703
lea ecx, [esp + 0x40]
call fcn.100d4df0
sub esi, 1
jne 0x100fb6c5
test edi, edi
jle 0x100fb75c
nop dword [eax]
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea edx, [edx + eax*4]
mov eax, dword [ebp + 8]
movsx eax, byte [eax + esi]
movzx ecx, al
mov eax, dword [edx]
shl eax, 8
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb747
inc dword [esp + 0x44]
jmp 0x100fb74e
test eax, 0x1ff
jne 0x100fb757
lea ecx, [esp + 0x40]
call fcn.100d4df0
inc esi
cmp esi, edi
jl 0x100fb710
mov esi, 0x18
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x68]
shr eax, 5
mov ecx, esi
and eax, 0xf
lea edx, [edx + eax*4]
mov eax, dword [esp + 0x10]
sar eax, cl
movzx ecx, al
mov eax, dword [edx]
shl eax, 8
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb799
inc dword [esp + 0x44]
jmp 0x100fb7a0
test eax, 0x1ff
jne 0x100fb7a9
lea ecx, [esp + 0x40]
call fcn.100d4df0
sub esi, 8
jns 0x100fb761
lea ecx, [esp + 0x40]
call fcn.100d7270
mov edi, dword [esp + 0x14]
xor esi, esi
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x20], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0x30], xmm0
nop
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea edx, [edx + eax*4]
movsx eax, byte [edi + esi]
xor eax, 0x5c
movzx ecx, al
mov eax, dword [edx]
shl eax, 8
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb807
inc dword [esp + 0x44]
jmp 0x100fb80e
test eax, 0x1ff
jne 0x100fb817
lea ecx, [esp + 0x40]
call fcn.100d4df0
inc esi
cmp esi, 0x20
jl 0x100fb7d0
mov esi, 0x20
mov eax, dword [esp + 0x40]
lea ecx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea ecx, [ecx + eax*4]
mov eax, dword [ecx]
shl eax, 8
or eax, 0x5c
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb850
inc dword [esp + 0x44]
jmp 0x100fb857
test eax, 0x1ff
jne 0x100fb860
lea ecx, [esp + 0x40]
call fcn.100d4df0
sub esi, 1
jne 0x100fb822
mov eax, dword [esp + 0x40]
lea edx, [esp + 0x68]
shr eax, 5
and eax, 0xf
lea edx, [edx + eax*4]
movsx eax, byte [esp + esi + 0x20]
movzx ecx, al
mov eax, dword [edx]
shl eax, 8
or ecx, eax
mov dword [edx], ecx
mov eax, dword [esp + 0x40]
add eax, 8
mov dword [esp + 0x40], eax
jne 0x100fb89a
inc dword [esp + 0x44]
jmp 0x100fb8a1
test eax, 0x1ff
jne 0x100fb8aa
lea ecx, [esp + 0x40]
call fcn.100d4df0
inc esi
cmp esi, 0x20
jl 0x100fb865
lea ecx, [esp + 0x40]
call fcn.100d7270
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
movups xmm0, xmmword [eax]
movups xmmword [ecx + edx - 0x20], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, dword [esp + 0x10]
inc eax
mov dword [esp + 0x10], eax
shl eax, 5
movups xmmword [ecx + edx - 0x10], xmm0
mov dword [esp + 0x18], eax
cmp eax, dword [ebp + 0x18]
jle 0x100fb662
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
xor ecx, esp
call fcn.10151433
mov esp, ebp
pop ebp
ret