Function at 0x46f18b
Capabilities:
Hash data using sha256

Disassembly:
push ebp
xor eax, eax
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0xdc
mov dword [ebp - 0x98], eax
mov esi, dword [ebp + 8]
mov dword [ebp - 0xe0], eax
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 0xdc], eax
mov dword [ebp - 0xd8], 0xf3bcc908
mov dword [ebp - 0xd4], 0x6a09e667
mov dword [ebp - 0xd0], 0x84caa73b
mov dword [ebp - 0xcc], 0xbb67ae85
mov dword [ebp - 0xc8], 0xfe94f82b
mov dword [ebp - 0xc4], 0x3c6ef372
mov dword [ebp - 0xc0], 0x5f1d36f1
mov dword [ebp - 0xbc], 0xa54ff53a
mov dword [ebp - 0xb8], 0xade682d1
mov dword [ebp - 0xb4], 0x510e527f
mov dword [ebp - 0xb0], 0x2b3e6c1f
mov dword [ebp - 0xac], 0x9b05688c
mov dword [ebp - 0xa8], 0xfb41bd6b
mov dword [ebp - 0xa4], 0x1f83d9ab
mov dword [ebp - 0xa0], 0x137e2179
mov dword [ebp - 0x9c], 0x5be0cd19
mov edi, dword [ebp - 0x98]
test ebx, ebx
je 0x46f302
test edi, edi
jne 0x46f28e
cmp ebx, 0x7f
jbe 0x46f28e
mov edx, esi
lea eax, [ebp - 0xe0]
call fcn.0046e0dc
add dword [ebp - 0xe0], 0x400
adc dword [ebp - 0xdc], 0
sub esi, 0xffffff80
add ebx, 0xffffff80
jmp 0x46f251
mov eax, pe_nt_image_headers32
sub eax, edi
cmp eax, ebx
cmova eax, ebx
mov dword [ebp - 0xe4], eax
lea eax, [ebp - 0x94]
mov ecx, dword [ebp - 0xe4]
add eax, edi
mov edi, eax
mov eax, dword [ebp - 0xe4]
rep movsb byte es:[edi], byte [esi]
add eax, dword [ebp - 0x98]
mov dword [ebp - 0x98], eax
cmp eax, 0x80
jne 0x46f2f5
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xe0]
call fcn.0046e0dc
add dword [ebp - 0xe0], 0x400
adc dword [ebp - 0xdc], 0
xor edi, edi
mov dword [ebp - 0x98], edi
mov eax, dword [ebp - 0xe4]
sub ebx, eax
jmp 0x46f251
xor edx, edx
mov eax, edi
mov byte [ebp + edi - 0x94], pe_nt_image_headers32
shld edx, edi, 3
shl eax, 3
add eax, dword [ebp - 0xe0]
adc edx, dword [ebp - 0xdc]
mov dword [ebp - 0xe0], eax
mov ebx, eax
lea eax, [edi + 1]
mov esi, edx
mov dword [ebp - 0xdc], edx
mov dword [ebp - 0x98], eax
cmp eax, 0x70
jbe 0x46f38b
mov edx, eax
xor ecx, ecx
cmp edx, 0x7f
ja 0x46f355
mov byte [ebp + edx - 0x94], 0
mov cl, 1
inc edx
jmp 0x46f343
test cl, cl
je 0x46f372
mov edx, 0x7f
xor ecx, ecx
sub edx, edi
cmp eax, 0x80
cmova edx, ecx
add edx, eax
mov dword [ebp - 0x98], edx
lea edx, [ebp - 0x94]
lea eax, [ebp - 0xe0]
call fcn.0046e0dc
xor ecx, ecx
mov dword [ebp - 0x98], ecx
mov eax, dword [ebp - 0x98]
xor ecx, ecx
mov edx, eax
cmp edx, 0x77
ja 0x46f3a7
mov byte [ebp + edx - 0x94], 0
mov cl, 1
inc edx
jmp 0x46f395
test cl, cl
je 0x46f3c2
mov edx, 0x78
xor ecx, ecx
sub edx, eax
cmp eax, 0x78
cmova edx, ecx
add eax, edx
mov dword [ebp - 0x98], eax
mov eax, esi
lea edx, [ebp - 0x94]
bswap ebx
mov dword [ebp - 0x18], ebx
shr eax, 0x18
mov byte [ebp - 0x1c], al
mov eax, esi
shr eax, 0x10
mov byte [ebp - 0x1b], al
mov eax, esi
xor esi, esi
mov byte [ebp - 0x1a], ah
mov byte [ebp - 0x19], al
lea eax, [ebp - 0xe0]
call fcn.0046e0dc
mov edx, dword [ebp + esi*8 - 0xd4]
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + esi*8 - 0xd8]
mov ecx, edx
mov ebx, edx
mov byte [edi + esi*8 + 2], dh
shr ecx, 0x18
mov byte [edi + esi*8 + 3], dl
mov byte [edi + esi*8], cl
mov ecx, edx
shr ecx, 0x10
mov byte [edi + esi*8 + 6], ah
mov byte [edi + esi*8 + 1], cl
mov ecx, eax
shrd ecx, ebx, 0x18
mov byte [edi + esi*8 + 7], al
mov byte [edi + esi*8 + 4], cl
mov ecx, eax
shrd ecx, edx, 0x10
mov byte [edi + esi*8 + 5], cl
inc esi
cmp esi, 8
jne 0x46f3f2
add esp, 0xdc
pop ebx
pop esi
pop edi
pop ebp
ret