Function at 0x421680
Capabilities:
Hash data using sha256

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push esi
push edi
push 0xb0
lea eax, [ebx + 0x40]
push 0
push eax
call fcn.0045fc00
mov edi, dword [esp + 0x20]
add esp, 0xc
mov dword [ebx], 0xf3bcc908
mov dword [ebx + 4], 0x6a09e667
mov dword [ebx + 8], 0x84caa73b
mov dword [ebx + 0xc], 0xbb67ae85
mov dword [ebx + 0x10], 0xfe94f82b
mov dword [ebx + 0x14], 0x3c6ef372
mov dword [ebx + 0x18], 0x5f1d36f1
mov dword [ebx + 0x1c], 0xa54ff53a
mov dword [ebx + 0x20], 0xade682d1
mov dword [ebx + 0x24], 0x510e527f
mov dword [ebx + 0x28], 0x2b3e6c1f
mov dword [ebx + 0x2c], 0x9b05688c
mov dword [ebx + 0x30], 0xfb41bd6b
mov dword [ebx + 0x34], 0x1f83d9ab
mov dword [ebx + 0x38], 0x137e2179
mov dword [ebx + 0x3c], 0x5be0cd19
movzx eax, byte [edi + 7]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 6]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 5]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 4]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 3]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 2]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 1]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor ecx, 0xf3bcc908
xor esi, 0x6a09e667
mov dword [ebx], ecx
mov dword [ebx + 4], esi
movzx eax, byte [edi + 0xf]
cdq
mov ecx, eax
mov esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xe]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xd]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xc]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xb]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0xa]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
movzx eax, byte [edi + 9]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 8]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor esi, 0xbb67ae85
xor ecx, 0x84caa73b
mov dword [ebx + 0xc], esi
mov dword [ebx + 8], ecx
movzx eax, byte [edi + 0x17]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0x16]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x15]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x14]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x13]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x12]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
shld esi, ecx, 8
movzx eax, byte [edi + 0x11]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x10]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
xor ecx, 0xfe94f82b
xor esi, 0x3c6ef372
mov dword [ebx + 0x10], ecx
mov dword [ebx + 0x14], esi
movzx eax, byte [edi + 0x1f]
cdq
mov ecx, eax
mov esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x1e]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x1d]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
movzx eax, byte [edi + 0x1c]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1b]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x1a]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x19]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x18]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor esi, 0xa54ff53a
xor ecx, 0x5f1d36f1
mov dword [ebx + 0x1c], esi
mov dword [ebx + 0x18], ecx
movzx eax, byte [edi + 0x27]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0x26]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x25]
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x24]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x23]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x22]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x21]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x20]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
xor ecx, 0xade682d1
xor esi, 0x510e527f
mov dword [ebx + 0x20], ecx
mov dword [ebx + 0x24], esi
movzx eax, byte [edi + 0x2f]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0x2e]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x2d]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x2c]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x2b]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x2a]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x29]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x28]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor ecx, 0x2b3e6c1f
mov dword [ebx + 0x28], ecx
xor esi, 0x9b05688c
mov dword [ebx + 0x2c], esi
movzx eax, byte [edi + 0x37]
cdq
mov ecx, eax
mov esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x36]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x35]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x34]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
shld esi, ecx, 8
movzx eax, byte [edi + 0x33]
shl ecx, 8
cdq
or ecx, eax
or esi, edx
movzx eax, byte [edi + 0x32]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x31]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x30]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor esi, 0x1f83d9ab
xor ecx, 0xfb41bd6b
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x30], ecx
movzx eax, byte [edi + 0x3f]
cdq
mov ecx, eax
mov esi, edx
movzx eax, byte [edi + 0x3e]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x3d]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x3c]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x3b]
shld esi, ecx, 8
cdq
shl ecx, 8
or ecx, eax
or esi, edx
movzx eax, byte [edi + 0x3a]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x39]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
movzx eax, byte [edi + 0x38]
shld esi, ecx, 8
cdq
shl ecx, 8
or esi, edx
or ecx, eax
xor esi, 0x5be0cd19
mov dword [ebx + 0x3c], esi
xor ecx, 0x137e2179
mov dword [ebx + 0x38], ecx
movzx eax, byte [edi]
pop edi
mov dword [ebx + 0xe4], eax
xor eax, eax
pop esi
pop ebx
ret