Function at 0x4023b0
Capabilities:
Hash data using sha256
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x190
mov esi, esp
mov dword [esi + 0x178], ebp
mov dword [esi + 0x17c], esp
mov dword [esi + 0x188], 0xffffffff
mov dword [esi + 0x184], 0x4041c0
mov edi, ecx
lea eax, [esi + 0x180]
mov ecx, dword fs:[0]
mov dword [esi + 0x180], ecx
lea ecx, [esi + 0xc0]
mov dword fs:[0], eax
call fcn.00401c80
mov ecx, dword [esi + 0xc0]
mov eax, ecx
neg eax
jno 0x40241e
mov dword [edi], 0x80000000
jmp 0x402816
mov ebx, dword [esi + 0xc8]
mov edx, dword [esi + 0xc4]
pxor xmm0, xmm0
lea eax, [esi + 0x78]
mov dword [esi + 0x14], ecx
mov byte [esi + 0xb8], 0
mov dword [esi + 0x2c], edi
movq qword [esi + 0xb0], xmm0
movq qword [esi + 0xa8], xmm0
movq qword [esi + 0xa0], xmm0
movq qword [esi + 0x98], xmm0
movq qword [esi + 0x90], xmm0
movq qword [esi + 0x88], xmm0
movq qword [esi + 0x80], xmm0
movq qword [esi + 0x78], xmm0
mov dword [esi + 0x50], 0x6a09e667
mov dword [esi + 0x54], 0xbb67ae85
mov dword [esi + 0x58], 0x3c6ef372
mov dword [esi + 0x5c], 0xa54ff53a
mov dword [esi + 0x60], 0x510e527f
mov dword [esi + 0x64], 0x9b05688c
mov dword [esi + 0x68], 0x1f83d9ab
mov dword [esi + 0x6c], 0x5be0cd19
mov dword [esi + 0x74], 0
mov dword [esi + 0x70], 0
cmp ebx, 0x40
mov dword [esi + 0x18], edx
jae 0x4024cd
push ebx
push edx
jmp 0x40250a
mov eax, ebx
mov dword [esi + 4], ebx
mov dword [esi + 0x74], 0
mov dword [esi + 0x188], 0
lea ecx, [esi + 0x50]
shr eax, 6
mov dword [esi + 0x70], eax
push eax
push edx
push ecx
call fcn.00409330
add esp, 0xc
mov ebx, dword [esi + 4]
mov eax, ebx
and ebx, 0x3f
and eax, 0xffffffc0
add eax, dword [esi + 0x18]
push ebx
push eax
lea eax, [esi + 0x78]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov byte [esi + 0xb8], bl
lea eax, [esi + 0x50]
push 0x70
push eax
lea eax, [esi + 0xc0]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
movzx ebx, byte [esi + 0x128]
mov eax, dword [esi + 0xe0]
mov ecx, dword [esi + 0xe4]
lea edi, [esi + 0xe8]
shld ecx, eax, 9
shl eax, 9
lea edx, [ebx*8]
mov byte [esi + ebx + 0xe8], pe_nt_image_headers32
or edx, eax
cmp ebx, 0x3f
bswap ecx
bswap edx
mov dword [esi + 4], ecx
mov dword [esi + 0x10], edx
je 0x402599
mov ecx, ebx
lea eax, [esi + ebx + 0xe8]
xor ecx, 0x3f
inc eax
push ecx
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
xor ebx, 0x38
mov dword [esi + 0x188], 0
cmp ebx, 7
ja 0x402609
mov dword [esi + 0x188], 0
push 1
push edi
lea eax, [esi + 0xc0]
push eax
call fcn.00409330
add esp, 0xc
mov eax, dword [esi + 4]
pxor xmm0, xmm0
movq qword [esi + 0x160], xmm0
pxor xmm0, xmm0
movdqa xmmword [esi + 0x150], xmm0
movdqa xmmword [esi + 0x140], xmm0
movdqa xmmword [esi + 0x130], xmm0
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x16c], eax
lea eax, [esi + 0x130]
push 1
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.00409330
add esp, 0xc
jmp 0x40262d
mov eax, dword [esi + 4]
mov dword [esi + 0x120], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x124], eax
push 1
push edi
lea eax, [esi + 0xc0]
push eax
call fcn.00409330
add esp, 0xc
movdqu xmm2, xmmword [esi + 0xc0]
pxor xmm0, xmm0
movdqu xmm1, xmmword [esi + 0xd0]
mov edx, 1
xor ecx, ecx
xor ebx, ebx
xor eax, eax
movdqa xmm3, xmm2
punpcklbw xmm2, xmm0
punpckhbw xmm3, xmm0
pshuflw xmm2, xmm2, 0x1b
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm2, xmm2, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm2, xmm3
movdqa xmm3, xmm1
punpcklbw xmm1, xmm0
punpckhbw xmm3, xmm0
pshuflw xmm0, xmm1, 0x1b
movdqu xmmword [esi + 0x130], xmm2
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm0, xmm0, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm0, xmm3
movdqu xmmword [esi + 0x140], xmm0
jmp 0x4026c3
mov eax, dword [esi + 0x30]
add ebx, dword [esi + 0x10]
mov edx, dword [esi + 4]
inc eax
cmp eax, 0x20
je 0x4027f5
mov dword [esi + 0x30], eax
lea eax, [esi + eax + 0x130]
movdqa xmm0, xmmword [0x428220]
mov dword [esi + 0x50], 0x428300
mov dword [esi + 0x54], 1
mov dword [esi + 0x1c], ecx
mov dword [esi + 0x20], edx
mov dword [esi + 0xc0], 2
mov dword [esi + 0xc], ecx
mov dword [esi + 0x34], ebx
mov dword [esi + 4], edx
mov dword [esi + 0x24], ebx
mov dword [esi + 0x28], ecx
mov byte [esi + 0xb], 0
mov dword [esi + 0x188], 1
mov dword [esi + 0x38], eax
lea eax, [esi + 0x38]
mov dword [esi + 0x3c], eax
lea eax, [esi + 0xc0]
mov dword [esi + 0x40], 0x4084f0
mov dword [esi + 0x60], eax
lea eax, [esi + 0x3c]
mov dword [esi + 0x64], 1
mov dword [esi + 0x58], eax
lea eax, [esi + 0x50]
movdqu xmmword [esi + 0xc8], xmm0
mov dword [esi + 0xd8], 8
mov byte [esi + 0xdc], 3
mov dword [esi + 0x5c], 1
push eax
lea eax, [esi + 0x44]
push eax
call fcn.00420b00
add esp, 8
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x4c]
mov edi, dword [esi + 0x44]
sub ecx, eax
mov ebx, eax
mov dword [esi + 0x10], edx
cmp ecx, edx
mov ecx, dword [esi + 0x48]
mov dword [esi + 0xc], ecx
jae 0x4027c0
mov dword [esi + 4], edi
mov dword [esi + 0x188], 2
push 1
push 1
push edx
push ebx
lea eax, [esi + 0x1c]
push eax
call fcn.00426220
add esp, 0x14
mov eax, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 0x10]
jmp 0x4027c3
mov eax, dword [esi + 4]
mov dword [esi + 4], eax
add eax, ebx
push edx
push ecx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, dword [esi + 0x1c]
test edi, edi
je 0x4026b0
push 1
push edi
push dword [esi + 0xc]
mov edi, ecx
call fcn.00408ca0
mov ecx, edi
add esp, 0xc
jmp 0x4026b0
mov eax, dword [esi + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov eax, dword [esi + 0x14]
mov ecx, dword [esi + 0x18]
test eax, eax
je 0x402816
push 1
push eax
push ecx
call fcn.00408ca0
add esp, 0xc
mov eax, dword [esi + 0x180]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret