Function at 0x100374f0
Capabilities:
Hash data using sha256

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x140
mov eax, dword [ebp + 0xc]
lea ecx, [esp + 0x80]
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x8c], 0
mov dword [esp + 0x88], 0
mov dword [esp + 0x94], 0
mov dword [esp + 0x90], 0
mov dword [esp + 0x9c], 0
mov dword [esp + 0x98], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xac], 0
mov dword [esp + 0xa8], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xb8], 0
mov byte [esp + 0xc0], 0
mov dword [esp + 0x58], 0x6a09e667
mov dword [esp + 0x5c], 0xbb67ae85
mov dword [esp + 0x60], 0x3c6ef372
mov dword [esp + 0x64], 0xa54ff53a
mov dword [esp + 0x68], 0x510e527f
mov dword [esp + 0x6c], 0x9b05688c
mov dword [esp + 0x70], 0x1f83d9ab
mov dword [esp + 0x74], 0x5be0cd19
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov ebx, dword [eax + 8]
mov esi, dword [eax]
mov edi, dword [eax + 4]
cmp ebx, 0x40
jae 0x10037623
push ebx
push esi
push ecx
jmp 0x10037657
mov eax, ebx
mov dword [esp + 0x7c], 0
shr eax, 6
mov dword [esp + 0x78], eax
lea ecx, [esp + 0x58]
push eax
push esi
push ecx
call fcn.10131eb0
add esp, 0xc
mov eax, ebx
and ebx, 0x3f
and eax, 0xffffffc0
add eax, esi
push ebx
push eax
lea eax, [esp + 0x88]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test edi, edi
mov byte [esp + 0xc0], bl
je 0x10037679
mov eax, dword [0x1044eff8]
push esi
push 0
push dword [eax]
call sub.KERNEL32.dll_HeapFree
lea edx, [esp + 0xc8]
lea esi, [esp + 0x58]
mov ecx, 0x1c
mov edi, edx
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0xf0]
movzx ebx, byte [esp + 0x130]
mov eax, dword [esp + 0xe8]
mov esi, dword [esp + 0xec]
shld esi, eax, 9
shl eax, 9
lea edi, [ebx*8]
mov byte [esp + ebx + 0xf0], pe_nt_image_headers32
or edi, eax
mov eax, ebx
xor eax, 0x3f
je 0x100376ee
lea ecx, [esp + 0xf0]
lea ecx, [ebx + ecx + 1]
push eax
push 0
push ecx
call sub.msvcrt.dll_memset
lea ecx, [esp + 0xfc]
lea edx, [esp + 0xd4]
add esp, 0xc
xor ebx, 0x38
bswap edi
bswap esi
cmp ebx, 8
jae 0x10037740
push 1
push ecx
push edx
mov ebx, edx
call fcn.10131eb0
add esp, 0xc
pxor xmm0, xmm0
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
movdqa xmmword [esp + 0x30], xmm0
movdqa xmmword [esp + 0x20], xmm0
movdqa xmmword [esp + 0x10], xmm0
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], esi
lea eax, [esp + 0x10]
push 1
push eax
push ebx
jmp 0x10037752
mov dword [esp + 0x128], esi
mov dword [esp + 0x12c], edi
push 1
push ecx
push edx
call fcn.10131eb0
add esp, 0xc
movdqu xmm2, xmmword [esp + 0xc8]
pxor xmm0, xmm0
movdqu xmm1, xmmword [esp + 0xd8]
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
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 [esp + 0xc8], xmm2
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm0, xmm0, 0x1b
pshufhw xmm3, xmm3, 0x1b
packuswb xmm0, xmm3
movdqu xmmword [esp + 0xd8], xmm0
xor edx, edx
lea ecx, [esp + 0x10]
mov dword [esp + 0xc], 0
push 0x40
call fcn.10030430
add esp, 4
mov ebx, 0x110000
cmp ebx, 0x110000
je 0x1003786f
jmp 0x10037835
mov eax, dword [esp + 0x10]
add eax, ebx
push esi
lea ecx, [esp + 0xc]
push ecx
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
add ebx, esi
mov dword [esp + 0x18], ebx
mov ebx, edi
cmp ebx, 0x110000
je 0x1003786f
mov edi, 0x110000
cmp ebx, 0x80
jae 0x100378a7
mov edx, dword [esp + 0x18]
cmp edx, dword [esp + 0x14]
jne 0x10037859
lea ecx, [esp + 0x10]
call fcn.100303a0
mov edx, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
mov byte [eax + edx], bl
inc edx
mov ebx, edi
mov dword [esp + 0x18], edx
cmp ebx, 0x110000
jne 0x10037835
mov ecx, dword [esp + 0xc]
cmp ecx, 0x20
je 0x1003796c
movzx eax, byte [esp + ecx + 0xc8]
inc ecx
mov dword [esp + 0xc], ecx
mov ecx, eax
shr eax, 4
and ecx, 0xf
movzx ebx, byte [eax + 0x102cb4da]
movzx edi, byte [ecx + 0x102cb4da]
cmp ebx, 0x80
jb 0x10037842
mov eax, ebx
cmp ebx, 0x800
mov dword [esp + 8], 0
jae 0x100378e0
shr eax, 6
and bl, 0x3f
mov esi, 2
or al, 0xc0
or bl, 0x80
mov byte [esp + 8], al
mov byte [esp + 9], bl
jmp 0x10037942
cmp ebx, 0x10000
jae 0x10037910
shr eax, 0xc
mov esi, 3
or al, 0xe0
mov byte [esp + 8], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [esp + 9], al
mov byte [esp + 0xa], bl
jmp 0x10037942
shr eax, 0x12
mov esi, 4
or al, 0xf0
mov byte [esp + 8], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [esp + 9], al
mov eax, ebx
and bl, 0x3f
shr eax, 6
or bl, 0x80
and al, 0x3f
or al, 0x80
mov byte [esp + 0xa], al
mov byte [esp + 0xb], bl
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
sub eax, ebx
cmp eax, esi
jae 0x10037810
mov edx, ebx
lea ecx, [esp + 0x10]
push esi
call fcn.10030430
add esp, 4
mov ebx, dword [esp + 0x18]
jmp 0x10037810
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 8]
movsd xmm0, qword [esp + 0x10]
mov dword [eax + 8], ecx
movsd qword [eax], xmm0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret