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

Disassembly:
push ebp
push edi
mov ebp, ecx
push esi
push ebx
mov esi, eax
xor eax, eax
mov ecx, 0x10
sub esp, 0xcc
cmp dword [esp + 0xe8], 0x1f
lea ebx, [esp + 0x6c]
mov dword [esp + 0x50], 0xbb67ae85
mov dword [esp + 0x54], 0x3c6ef372
mov dword [esp + 0x58], 0xa54ff53a
mov edi, ebx
mov dword [esp + 0x5c], 0x510e527f
mov dword [esp + 0x60], 0x9b05688c
mov dword [esp + 0x64], 0x1f83d9ab
mov dword [esp + 0x68], 0x5be0cd19
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0x6a09e667
rep stosd dword es:[edi], eax
jle 0x42a730
mov edi, ebp
add edi, dword [esp + 0xe0]
mov eax, dword [esp + 0xe4]
lea ebx, [esp + 0x44]
mov dword [esp + 0xc], esi
mov dword [esp + 0x18], ebp
mov dword [esp + 4], edx
mov dword [esp], 1
add esi, edx
mov dword [esp + 8], eax
xor eax, eax
mov dword [esp + 0x14], edi
lea esi, [esi]
lea edi, [edi]
mov ebp, dword [esp + 4]
test ebp, ebp
jle 0x42a35d
mov edi, dword [esp + 0xc]
mov ebp, eax
jmp 0x42a313
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp esi, edi
mov ecx, dword [esp + 0x44]
je 0x42a347
mov eax, ecx
shr eax, 5
and eax, 0xf
mov ebp, dword [esp + eax*4 + 0x6c]
movzx eax, byte [edi]
mov edx, ecx
shl ebp, 8
shr edx, 5
add ecx, 8
and edx, 0xf
mov dword [esp + 0x44], ecx
xor eax, 0x36
movzx eax, al
or eax, ebp
test ecx, ecx
mov dword [esp + edx*4 + 0x6c], eax
je 0x42a2f0
test ecx, 0x1ff
je 0x42a2f5
add edi, 1
cmp esi, edi
jne 0x42a307
mov edx, ecx
shr edx, 5
and edx, 0xf
add edx, 8
cmp dword [esp + 4], 0x3f
mov eax, dword [esp + edx*4 + 0x4c]
jg 0x42a3c3
mov edi, dword [esp + 4]
jmp 0x42a387
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp edi, 0x40
mov ecx, dword [esp + 0x44]
je 0x42a3b4
mov eax, ecx
shr eax, 5
and eax, 0xf
mov eax, dword [esp + eax*4 + 0x6c]
mov edx, ecx
shl eax, 8
add ecx, 8
shr edx, 5
or eax, 0x36
mov dword [esp + 0x44], ecx
and edx, 0xf
test ecx, ecx
mov dword [esp + edx*4 + 0x6c], eax
je 0x42a363
test ecx, 0x1ff
je 0x42a368
add edi, 1
cmp edi, 0x40
jne 0x42a37b
mov edx, ecx
shr edx, 5
and edx, 0xf
add edx, 8
mov eax, dword [esp + edx*4 + 0x4c]
mov edi, dword [esp + 0xe0]
test edi, edi
jle 0x42a444
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x42a403
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp edi, esi
mov ecx, dword [esp + 0x44]
je 0x42a431
mov eax, ecx
shr eax, 5
and eax, 0xf
mov eax, dword [esp + eax*4 + 0x6c]
movzx ebp, byte [edi]
mov edx, ecx
shl eax, 8
shr edx, 5
add ecx, 8
and edx, 0xf
mov dword [esp + 0x44], ecx
or ebp, eax
test ecx, ecx
mov dword [esp + edx*4 + 0x6c], ebp
je 0x42a3e0
test ecx, 0x1ff
je 0x42a3e5
add edi, 1
cmp edi, esi
jne 0x42a3f7
mov edx, ecx
mov esi, dword [esp + 0x10]
shr edx, 5
and edx, 0xf
add edx, 8
mov eax, dword [esp + edx*4 + 0x4c]
mov edi, dword [esp]
shl eax, 8
shr edi, 0x18
or eax, edi
mov dword [esp + edx*4 + 0x4c], eax
lea eax, [ecx + 8]
test eax, eax
mov dword [esp + 0x44], eax
jne 0x42a720
add dword [esp + 0x48], 1
mov ecx, ebx
call fcn.004276e0
mov eax, dword [esp + 0x44]
mov edx, eax
mov edi, dword [esp]
add eax, 8
shr edx, 5
mov dword [esp + 0x44], eax
and edx, 0xf
add edx, 8
sar edi, 0x10
mov ecx, dword [esp + edx*4 + 0x4c]
shl ecx, 8
mov ebp, ecx
mov ecx, edi
movzx edi, cl
mov ecx, ebp
or ecx, edi
test eax, eax
mov dword [esp + edx*4 + 0x4c], ecx
jne 0x42a710
add dword [esp + 0x48], 1
mov ecx, ebx
call fcn.004276e0
mov eax, dword [esp + 0x44]
mov edx, eax
add eax, 8
shr edx, 5
mov dword [esp + 0x44], eax
and edx, 0xf
add edx, 8
mov ecx, dword [esp + edx*4 + 0x4c]
shl ecx, 8
mov ebp, ecx
mov ecx, dword [esp]
movzx edi, ch
mov ecx, ebp
or ecx, edi
test eax, eax
mov dword [esp + edx*4 + 0x4c], ecx
jne 0x42a700
add dword [esp + 0x48], 1
mov ecx, ebx
call fcn.004276e0
mov eax, dword [esp + 0x44]
mov edx, eax
movzx edi, byte [esp]
add eax, 8
shr edx, 5
mov dword [esp + 0x44], eax
and edx, 0xf
add edx, 8
mov ecx, dword [esp + edx*4 + 0x4c]
shl ecx, 8
or ecx, edi
test eax, eax
mov dword [esp + edx*4 + 0x4c], ecx
jne 0x42a6f0
add dword [esp + 0x48], 1
mov ecx, ebx
call fcn.004276e0
mov ecx, ebx
call fcn.00429e10
mov edx, dword [eax]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov edx, dword [eax + 8]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0x34], edx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x3c], edx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 4]
test eax, eax
jle 0x42a73b
mov eax, dword [esp + 0x44]
mov edi, dword [esp + 0xc]
jmp 0x42a59b
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp esi, edi
mov eax, dword [esp + 0x44]
je 0x42a5d5
mov ecx, eax
movzx edx, byte [edi]
add eax, 8
shr ecx, 5
mov dword [esp + 0x44], eax
and ecx, 0xf
add ecx, 8
mov ebp, dword [esp + ecx*4 + 0x4c]
xor edx, 0x5c
movzx edx, dl
shl ebp, 8
or edx, ebp
test eax, eax
mov dword [esp + ecx*4 + 0x4c], edx
je 0x42a584
test eax, 0x1ff
je 0x42a589
add edi, 1
cmp esi, edi
jne 0x42a59b
cmp dword [esp + 4], 0x3f
jg 0x42a62d
mov edi, dword [esp + 4]
jmp 0x42a5fa
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp edi, 0x40
mov eax, dword [esp + 0x44]
je 0x42a62d
mov edx, eax
add eax, 8
shr edx, 5
mov dword [esp + 0x44], eax
and edx, 0xf
add edx, 8
mov ecx, dword [esp + edx*4 + 0x4c]
shl ecx, 8
or ecx, 0x5c
test eax, eax
mov dword [esp + edx*4 + 0x4c], ecx
je 0x42a5e2
test eax, 0x1ff
je 0x42a5e7
add edi, 1
cmp edi, 0x40
jne 0x42a5fa
lea edi, [esp + 0x24]
jmp 0x42a64a
add dword [esp + 0x48], 1
mov ecx, ebx
add edi, 1
call fcn.004276e0
cmp edi, ebx
je 0x42a67e
mov eax, dword [esp + 0x44]
mov edx, eax
movzx ebp, byte [edi]
add eax, 8
shr edx, 5
mov dword [esp + 0x44], eax
and edx, 0xf
add edx, 8
mov ecx, dword [esp + edx*4 + 0x4c]
shl ecx, 8
or ecx, ebp
test eax, eax
mov dword [esp + edx*4 + 0x4c], ecx
je 0x42a633
test eax, 0x1ff
je 0x42a638
add edi, 1
cmp edi, ebx
jne 0x42a646
mov ecx, ebx
call fcn.00429e10
mov edi, dword [esp + 8]
mov edx, dword [eax]
add dword [esp], 1
mov dword [edi], edx
mov edx, dword [eax + 4]
add edi, 0x20
mov dword [edi - 0x1c], edx
mov edx, dword [eax + 8]
mov dword [edi - 0x18], edx
mov edx, dword [eax + 0xc]
mov dword [edi - 0x14], edx
mov edx, dword [eax + 0x10]
mov dword [edi - 0x10], edx
mov edx, dword [eax + 0x14]
mov dword [edi - 0xc], edx
mov edx, dword [eax + 0x18]
mov dword [edi - 8], edx
mov eax, dword [eax + 0x1c]
mov dword [edi - 4], eax
mov eax, dword [esp]
mov dword [esp + 8], edi
shl eax, 5
cmp dword [esp + 0xe8], eax
jl 0x42a730
mov ecx, dword [esp + 0x44]
mov eax, ecx
shr eax, 5
and eax, 0xf
mov eax, dword [esp + eax*4 + 0x6c]
jmp 0x42a2e0
test eax, 0x1ff
jne 0x42a530
jmp 0x42a529
test eax, 0x1ff
jne 0x42a4f9
jmp 0x42a4ee
test eax, 0x1ff
jne 0x42a4b8
jmp 0x42a4ad
test eax, 0x1ff
jne 0x42a472
jmp 0x42a467
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x44]
jmp 0x42a5dc