Function at 0x40561e
Capabilities:
Encode data using xor
Hash data using sha256
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xd0
mov eax, dword [0x448780]
xor eax, esp
mov dword [esp + 0xcc], eax
mov edx, dword [esp + 0xd4]
push ebx
push ebp
push esi
mov eax, dword [edx + 0xf8]
mov esi, dword [esp + 0xe4]
push edi
push 0x10
mov ebx, dword [eax]
lea edi, [esp + 0xa0]
mov ebp, dword [eax + 4]
xor ebx, 0x510e527f
mov eax, dword [edx + 0xfc]
xor ebp, 0x9b05688c
pop ecx
rep movsd dword es:[edi], dword [esi]
mov esi, dword [edx + 0xf4]
lea edi, [esp + 0x5c]
push 8
pop ecx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [eax]
mov esi, 0x6a09e667
mov eax, dword [eax + 4]
xor ecx, 0x1f83d9ab
xor eax, 0x5be0cd19
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x6c]
xor edi, edi
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x58], edx
mov dword [esp + 0x24], 0xbb67ae85
mov dword [esp + 0x34], 0x3c6ef372
mov dword [esp + 0x38], 0xa54ff53a
mov dword [esp + 0x10], edi
mov dword [esp + 0x28], eax
mov dword [esp + 0x18], ecx
movzx eax, byte [edi + 0x43b780]
mov edx, dword [esp + eax*4 + 0x9c]
add edx, ecx
add edx, dword [esp + 0x5c]
mov edi, edx
mov eax, edx
xor eax, ebx
xor edi, ebx
shl eax, 0x10
mov ebx, dword [esp + 0x10]
shr edi, 0x10
or edi, eax
lea ecx, [edi + esi]
mov esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x18]
xor esi, dword [esp + 0x18]
shl eax, 0x14
shr esi, 0xc
or esi, eax
movzx eax, byte [ebx + 0x43b781]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, edx
mov edx, edi
add eax, esi
xor edx, eax
mov dword [esp + 0x18], eax
xor edi, eax
shl edx, 0x18
shr edi, 8
or edx, edi
mov dword [esp + 0x3c], edx
lea eax, [ecx + edx]
mov ecx, eax
mov dword [esp + 0x2c], eax
xor eax, esi
xor ecx, esi
shr eax, 7
shl ecx, 0x19
or ecx, eax
movzx eax, byte [ebx + 0x43b782]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + eax*4 + 0x9c]
add edx, dword [esp + 0x28]
add edx, dword [esp + 0x60]
mov edi, edx
mov eax, edx
xor eax, ebp
xor edi, ebp
shl eax, 0x10
shr edi, 0x10
or edi, eax
add ecx, edi
mov esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x28]
xor esi, dword [esp + 0x28]
shl eax, 0x14
shr esi, 0xc
or esi, eax
movzx eax, byte [ebx + 0x43b783]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, edx
mov edx, edi
add eax, esi
xor edx, eax
mov dword [esp + 0x24], eax
xor edi, eax
shl edx, 0x18
shr edi, 8
or edx, edi
mov dword [esp + 0x44], edx
lea eax, [ecx + edx]
mov ebp, eax
mov dword [esp + 0x54], eax
xor ebp, esi
xor eax, esi
shl ebp, 0x19
shr eax, 7
or ebp, eax
movzx eax, byte [ebx + 0x43b784]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + eax*4 + 0x9c]
add edx, dword [esp + 0x1c]
add edx, dword [esp + 0x64]
mov edi, edx
mov eax, edx
xor eax, dword [esp + 0x20]
xor edi, dword [esp + 0x20]
shl eax, 0x10
shr edi, 0x10
or edi, eax
add ecx, edi
mov esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x1c]
xor esi, dword [esp + 0x1c]
shl eax, 0x14
shr esi, 0xc
or esi, eax
movzx eax, byte [ebx + 0x43b785]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, edx
mov edx, edi
add eax, esi
xor edx, eax
mov dword [esp + 0x40], eax
xor edi, eax
shl edx, 0x18
shr edi, 8
or edx, edi
mov dword [esp + 0x50], edx
lea ebx, [ecx + edx]
mov ecx, ebx
mov eax, ebx
xor eax, esi
xor ecx, esi
mov esi, dword [esp + 0x14]
shr eax, 7
shl ecx, 0x19
or ecx, eax
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x38]
movzx eax, byte [eax + 0x43b786]
mov edx, dword [esp + eax*4 + 0x9c]
add edx, esi
add edx, dword [esp + 0x68]
mov edi, edx
mov eax, edx
xor eax, dword [esp + 0x30]
xor edi, dword [esp + 0x30]
shl eax, 0x10
shr edi, 0x10
or edi, eax
add ecx, edi
xor esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x14]
shl eax, 0x14
shr esi, 0xc
or esi, eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x43b787]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, edx
mov edx, edi
add eax, esi
xor edx, eax
mov dword [esp + 0x48], eax
xor edi, eax
shl edx, 0x18
shr edi, 8
mov eax, esi
or edx, edi
lea edi, [ecx + edx]
xor eax, edi
xor esi, edi
shl eax, 0x19
shr esi, 7
or eax, esi
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
movzx eax, byte [eax + 0x43b788]
mov ecx, dword [esp + eax*4 + 0x9c]
add ecx, ebp
add ecx, dword [esp + 0x18]
mov esi, ecx
mov eax, ecx
xor eax, edx
xor esi, edx
shl eax, 0x10
shr esi, 0x10
or esi, eax
lea edx, [ebx + esi]
mov ebx, edx
mov eax, edx
xor eax, ebp
xor ebx, ebp
mov ebp, dword [esp + 0x10]
shr eax, 0xc
shl ebx, 0x14
or ebx, eax
movzx eax, byte [ebp + 0x43b789]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, ecx
add eax, ebx
mov ecx, eax
mov dword [esp + 0x5c], eax
xor eax, esi
xor ecx, esi
shr eax, 8
shl ecx, 0x18
or ecx, eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0x98], ecx
lea eax, [ecx + edx]
xor ebx, eax
mov dword [esp + 0x34], eax
mov dword [esp + 0x84], eax
movzx eax, byte [ebp + 0x43b78a]
ror ebx, 7
mov dword [esp + 0x28], ebx
mov dword [esp + 0x70], ebx
mov ecx, dword [esp + eax*4 + 0x9c]
add ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
add ecx, ebx
mov esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x3c]
xor esi, dword [esp + 0x3c]
shl eax, 0x10
shr esi, 0x10
or esi, eax
movzx eax, byte [ebp + 0x43b78b]
mov eax, dword [esp + eax*4 + 0x9c]
lea edx, [esi + edi]
mov edi, ebx
add eax, ecx
xor ebx, edx
xor edi, edx
shr ebx, 0xc
shl edi, 0x14
or edi, ebx
mov ebx, esi
add eax, edi
xor ebx, eax
mov dword [esp + 0x60], eax
xor esi, eax
shl ebx, 0x18
shr esi, 8
or ebx, esi
mov dword [esp + 0x8c], ebx
lea eax, [ebx + edx]
xor edi, eax
mov dword [esp + 0x38], eax
ror edi, 7
mov dword [esp + 0x88], eax
movzx eax, byte [ebp + 0x43b78c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x74], edi
mov ecx, dword [esp + eax*4 + 0x9c]
add ecx, dword [esp + 0x40]
mov edi, dword [esp + 0x14]
add ecx, edi
mov edx, dword [esp + 0x2c]
mov esi, ecx
xor esi, dword [esp + 0x44]
mov eax, ecx
xor eax, dword [esp + 0x44]
shl eax, 0x10
shr esi, 0x10
or esi, eax
mov eax, edi
add edx, esi
xor eax, edx
xor edi, edx
shl eax, 0x14
shr edi, 0xc
or eax, edi
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x14], eax
movzx eax, byte [ebp + 0x43b78d]
mov ebp, esi
mov eax, dword [esp + eax*4 + 0x9c]
add eax, ecx
mov ecx, dword [esp + 0x14]
add eax, ecx
xor esi, eax
mov dword [esp + 0x64], eax
xor ebp, eax
shr esi, 8
shl ebp, 0x18
or ebp, esi
mov dword [esp + 0x90], ebp
lea eax, [edx + ebp]
mov edx, dword [esp + 0x54]
xor ecx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x10]
ror ecx, 7
mov dword [esp + 0x14], ecx
mov dword [esp + 0x78], ecx
movzx eax, byte [eax + 0x43b78e]
mov ecx, dword [esp + eax*4 + 0x9c]
add ecx, dword [esp + 0x48]
add ecx, edi
mov esi, ecx
mov eax, ecx
xor eax, dword [esp + 0x50]
xor esi, dword [esp + 0x50]
shl eax, 0x10
shr esi, 0x10
or esi, eax
mov eax, edi
add edx, esi
xor eax, edx
xor edi, edx
shl eax, 0x14
shr edi, 0xc
or eax, edi
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], eax
movzx eax, byte [edi + 0x43b78f]
mov eax, dword [esp + eax*4 + 0x9c]
add eax, ecx
mov ecx, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x68], eax
mov eax, esi
xor eax, dword [esp + 0x68]
xor esi, dword [esp + 0x68]
shl eax, 0x18
shr esi, 8
or eax, esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x94], eax
add eax, edx
mov dword [esp + 0x24], eax
xor ecx, eax
mov dword [esp + 0x80], eax
mov esi, dword [esp + 0x2c]
add edi, 0x10
ror ecx, 7
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x10], edi
cmp edi, 0x90
jbe 0x4056db
mov esi, dword [esp + 0x58]
xor edx, edx
mov ecx, dword [esi + 0xf4]
mov eax, dword [esp + edx + 0x7c]
xor eax, dword [esp + edx + 0x5c]
xor dword [ecx + edx], eax
add edx, 4
cmp edx, 0x20
jb 0x405b2f
mov ecx, dword [esp + 0xdc]
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.004253a4
add esp, 0xd0
ret 8