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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xfc
mov eax, dword [0x4c0548]
xor eax, esp
mov dword [esp + 0xf8], eax
cmp dword [ebp + 8], 0x40
mov eax, ecx
mov ecx, dword [ebp + 0xc]
push ebx
push esi
mov esi, dword [eax + 8]
mov ebx, dword [eax + 0x14]
push edi
mov edi, dword [eax]
mov dword [esp + 0x78], edx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x14], edi
mov dword [esp + 0xc0], edi
mov edi, dword [eax + 0x18]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0x50], edx
mov dword [esp + 0xb4], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xa0], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x38], edi
mov dword [esp + 0xa8], edi
mov edi, dword [esp + 0x14]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x40], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x44], edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0xa4], eax
jb 0x4797fd
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x88], ecx
add eax, 8
mov ecx, dword [ebp + 8]
mov dword [esp + 0x84], esi
mov esi, dword [esp + 0x38]
shr ecx, 6
mov dword [esp + 0x7c], edi
mov dword [esp + 0x8c], edx
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x78], ecx
mov eax, dword [eax - 8]
mov ecx, edx
bswap eax
mov dword [esp + 0x74], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, esi
add ecx, dword [esp + 0x48]
xor eax, ebx
and eax, edx
mov ebx, dword [esp + 0x50]
xor eax, esi
mov esi, dword [esp + 0x74]
add eax, ecx
add esi, 0x428a2f98
add esi, eax
mov ecx, edi
ror ecx, 2
add ebx, esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x40]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x10]
add edx, esi
or ecx, dword [esp + 0x10]
and ecx, edi
or ecx, eax
mov eax, dword [esp + 0x34]
add edx, ecx
mov ecx, ebx
ror ecx, 0x19
mov dword [esp + 0x1c], edx
mov edi, dword [eax - 4]
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov eax, ebx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x3c]
xor eax, dword [esp + 0x44]
add ecx, dword [esp + 0x38]
and eax, ebx
xor eax, dword [esp + 0x3c]
add eax, ecx
mov ecx, edx
bswap edi
ror ecx, 2
mov dword [esp + 0x50], edi
lea esi, [edi + 0x71374491]
mov edi, dword [esp + 0x40]
add esi, eax
mov eax, ecx
ror ecx, 0xb
add edi, esi
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x14]
add edx, esi
and eax, dword [esp + 0x14]
and ecx, dword [esp + 0x1c]
or ecx, eax
mov eax, dword [esp + 0x34]
add edx, ecx
mov dword [esp + 0x20], edx
mov eax, dword [eax]
bswap eax
mov dword [esp + 0x54], eax
mov ecx, edi
ror ecx, 0x19
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov esi, dword [esp + 0x3c]
mov eax, edi
add esi, 0xb5c0fbcf
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x44]
add ecx, dword [esp + 0x54]
and eax, edi
xor eax, dword [esp + 0x44]
add eax, ecx
mov ecx, edx
add esi, eax
ror ecx, 2
mov eax, ecx
add dword [esp + 0x10], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x1c]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x14]
add edx, esi
or ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x20]
or ecx, eax
mov esi, dword [esp + 0x10]
mov eax, dword [esp + 0x34]
add edx, ecx
mov ecx, esi
mov dword [esp + 0x28], edx
ror ecx, 0x19
mov eax, dword [eax + 4]
bswap eax
mov dword [esp + 0x60], eax
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, ebx
add ecx, dword [esp + 0x44]
xor eax, edi
and eax, esi
mov esi, dword [esp + 0x60]
xor eax, ebx
add esi, 0xe9b5dba5
add eax, ecx
mov ecx, edx
add esi, eax
ror ecx, 2
add dword [esp + 0x14], esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x1c]
or eax, dword [esp + 0x20]
xor edx, ecx
and eax, dword [esp + 0x28]
add edx, esi
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x1c]
and eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, edx
mov dword [esp + 0x18], ecx
mov esi, dword [eax + 8]
bswap esi
mov edx, dword [esp + 0x14]
mov ecx, edx
ror ecx, 0x19
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x38], esi
mov eax, edx
add esi, 0x3956c25b
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x10]
add esi, ecx
mov ecx, dword [esp + 0x18]
and eax, edx
xor eax, edi
ror ecx, 2
add esi, eax
mov eax, ecx
ror ecx, 0xb
add esi, ebx
mov ebx, dword [esp + 0x28]
mov edx, ecx
add dword [esp + 0x1c], esi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x34]
xor edx, ecx
mov ecx, dword [esp + 0x20]
or ecx, ebx
and ebx, dword [esp + 0x20]
and ecx, dword [esp + 0x18]
mov eax, dword [eax + 0xc]
or ebx, ecx
bswap eax
mov dword [esp + 0x68], eax
add ebx, esi
mov esi, dword [esp + 0x10]
add ebx, edx
mov edx, dword [esp + 0x1c]
mov ecx, edx
ror ecx, 0x19
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, esi
xor eax, dword [esp + 0x14]
add ecx, dword [esp + 0x68]
and eax, edx
xor esi, eax
add esi, 0x59f111f1
add esi, ecx
mov ecx, ebx
ror ecx, 2
add esi, edi
mov edi, dword [esp + 0x18]
mov eax, ecx
add dword [esp + 0x20], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x34]
xor edx, ecx
mov ecx, dword [esp + 0x28]
or ecx, edi
and edi, dword [esp + 0x28]
and ecx, ebx
mov eax, dword [eax + 0x10]
or edi, ecx
add edi, esi
add edi, edx
mov edx, dword [esp + 0x20]
bswap eax
mov ecx, edx
mov dword [esp + 0x70], eax
ror ecx, 0x19
mov esi, dword [esp + 0x14]
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [esp + 0x70]
xor eax, esi
and eax, edx
xor esi, eax
add esi, ecx
mov ecx, dword [esp + 0x10]
add ecx, 0x923f82a4
add esi, ecx
mov ecx, edi
ror ecx, 2
mov eax, ecx
add dword [esp + 0x28], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x18]
xor edx, ecx
mov ecx, eax
or ecx, ebx
and eax, ebx
and ecx, edi
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
mov esi, dword [esp + 0x28]
add edx, ecx
mov ecx, esi
ror ecx, 0x19
mov eax, dword [eax + 0x14]
bswap eax
mov dword [esp + 0x4c], eax
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x24], edx
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [esp + 0x4c]
xor eax, dword [esp + 0x20]
and esi, eax
xor esi, dword [esp + 0x1c]
add esi, ecx
mov ecx, dword [esp + 0x14]
add ecx, 0xab1c5ed5
add esi, ecx
mov ecx, edx
add dword [esp + 0x18], esi
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, ebx
xor edx, ecx
and eax, edi
mov ecx, ebx
or ecx, edi
and ecx, dword [esp + 0x24]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
mov esi, dword [esp + 0x18]
add edx, ecx
mov ecx, esi
mov dword [esp + 0x10], edx
mov eax, dword [eax + 0x18]
bswap eax
mov dword [esp + 0x5c], eax
ror ecx, 0x19
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov eax, esi
mov esi, dword [esp + 0x28]
xor esi, dword [esp + 0x20]
and esi, dword [esp + 0x18]
xor esi, dword [esp + 0x20]
ror eax, 6
xor ecx, eax
add ecx, dword [esp + 0x5c]
add esi, ecx
mov ecx, dword [esp + 0x1c]
add ecx, 0xd807aa98
add esi, ecx
mov ecx, edx
ror ecx, 2
add ebx, esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, edi
and eax, dword [esp + 0x24]
xor edx, ecx
mov ecx, edi
or ecx, dword [esp + 0x24]
and ecx, dword [esp + 0x10]
or eax, ecx
mov ecx, ebx
add eax, esi
ror ecx, 0x19
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x1c]
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov eax, ebx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x18]
and eax, ebx
xor eax, dword [esp + 0x28]
bswap esi
mov dword [esp + 0x58], esi
add esi, ecx
mov ecx, dword [esp + 0x20]
add esi, eax
add ecx, 0x12835b01
add esi, ecx
mov ecx, dword [esp + 0x2c]
ror ecx, 2
add edi, esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x24]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x10]
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x2c]
or eax, ecx
mov ecx, edi
add eax, esi
ror ecx, 0x19
add eax, edx
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x20]
mov eax, edi
bswap esi
ror eax, 0xb
mov dword [esp + 0x64], esi
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x18]
xor eax, ebx
add ecx, esi
mov esi, dword [esp + 0x28]
and eax, edi
xor eax, dword [esp + 0x18]
add esi, 0x243185be
add eax, ecx
mov ecx, dword [esp + 0x30]
add esi, eax
ror ecx, 2
mov eax, ecx
add dword [esp + 0x24], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x2c]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x10]
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x30]
or eax, ecx
add eax, esi
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
mov ecx, edx
mov eax, dword [esp + 0x34]
ror ecx, 0x19
mov esi, dword [eax + 0x24]
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, edi
and eax, edx
xor eax, ebx
bswap esi
mov dword [esp + 0x6c], esi
add esi, ecx
mov ecx, dword [esp + 0x18]
add esi, eax
add ecx, 0x550c7dc3
add esi, ecx
mov ecx, dword [esp + 0x1c]
ror ecx, 2
add dword [esp + 0x10], esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x2c]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x30]
or ecx, dword [esp + 0x30]
and ecx, dword [esp + 0x1c]
or eax, ecx
add eax, esi
add eax, edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x18], eax
mov ecx, edx
mov eax, dword [esp + 0x34]
ror ecx, 0x19
mov esi, dword [eax + 0x28]
mov eax, edx
ror eax, 0xb
bswap esi
xor ecx, eax
mov dword [esp + 0x48], esi
mov eax, edx
ror eax, 6
add ebx, 0x72be5d74
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x24]
add esi, ecx
mov ecx, dword [esp + 0x18]
and eax, edx
xor eax, edi
ror ecx, 2
add esi, eax
add edi, 0x80deb1fe
mov eax, ecx
add esi, ebx
ror ecx, 0xb
mov edx, ecx
mov ebx, dword [esp + 0x2c]
ror edx, 9
add ebx, esi
xor edx, eax
mov dword [esp + 0x2c], ebx
mov eax, dword [esp + 0x30]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x1c]
or ecx, dword [esp + 0x1c]
and ecx, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
add edx, ecx
mov ecx, ebx
ror ecx, 0x19
mov esi, dword [eax + 0x2c]
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x20], edx
mov eax, ebx
mov ebx, dword [esp + 0x24]
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x10]
and eax, dword [esp + 0x2c]
bswap esi
xor eax, ebx
mov dword [esp + 0x40], esi
add esi, ecx
mov ecx, edx
add esi, eax
ror ecx, 2
mov eax, ecx
add esi, edi
mov edi, dword [esp + 0x30]
ror ecx, 0xb
add edi, esi
mov edx, ecx
mov dword [esp + 0x30], edi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x1c]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x18]
and eax, dword [esp + 0x18]
and ecx, dword [esp + 0x20]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
add edx, ecx
mov ecx, edi
ror ecx, 0x19
mov esi, dword [eax + 0x30]
mov eax, edi
ror eax, 0xb
bswap esi
xor ecx, eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x3c], esi
mov eax, edi
mov edi, dword [esp + 0x10]
add ebx, 0x9bdc06a7
ror eax, 6
xor ecx, eax
mov dword [esp + 0x24], 0x4b7a44
mov eax, dword [esp + 0x2c]
add esi, ecx
xor eax, edi
mov ecx, edx
and eax, dword [esp + 0x30]
xor eax, edi
ror ecx, 2
add esi, eax
add edi, 0xc19bf174
mov eax, ecx
add esi, ebx
ror ecx, 0xb
mov ebx, dword [esp + 0x1c]
mov edx, ecx
ror edx, 9
add ebx, esi
xor edx, eax
mov dword [esp + 0x1c], ebx
mov eax, dword [esp + 0x18]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x20]
or ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x28]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
add edx, ecx
mov ecx, ebx
ror ecx, 0x19
mov esi, dword [eax + 0x34]
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x10], edx
mov eax, ebx
mov ebx, dword [esp + 0x2c]
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x30]
and eax, dword [esp + 0x1c]
bswap esi
xor eax, ebx
mov dword [esp + 0x44], esi
add esi, ecx
mov ecx, edx
add esi, eax
ror ecx, 2
mov eax, ecx
add esi, edi
mov edi, dword [esp + 0x18]
ror ecx, 0xb
add edi, esi
mov edx, ecx
mov dword [esp + 0x18], edi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x28]
and eax, dword [esp + 0x28]
and ecx, dword [esp + 0x10]
or eax, ecx
add eax, esi
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x478c20
mov ebx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x50]
mov edx, ecx
mov esi, dword [esp + 0x3c]
mov eax, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
mov ecx, esi
xor edx, eax
ror ecx, 0x13
add edx, dword [esp + 0x74]
mov eax, esi
ror eax, 0x11
xor ecx, eax
shr esi, 0xa
xor esi, ecx
mov eax, edi
ror eax, 0xb
mov ecx, edi
ror ecx, 0x19
add esi, edx
xor ecx, eax
add esi, dword [esp + 0x58]
mov eax, edi
mov dword [esp + 0x74], esi
ror eax, 6
xor ecx, eax
mov dword [esp + 0xc4], esi
mov eax, dword [esp + 0x30]
xor eax, dword [esp + 0x1c]
and eax, edi
mov edi, dword [esp + 0x20]
xor eax, dword [esp + 0x30]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax - 4]
add ecx, ebx
mov ebx, dword [esp + 0x10]
add esi, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
add edi, esi
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
xor edx, ecx
mov ecx, dword [esp + 0x28]
or ecx, ebx
add edx, esi
and ecx, dword [esp + 0x14]
and ebx, dword [esp + 0x28]
mov esi, dword [esp + 0x44]
or ebx, ecx
mov ecx, dword [esp + 0x54]
add ebx, edx
mov edx, ecx
mov dword [esp + 0x20], ebx
mov eax, ecx
ror edx, 0x12
ror eax, 7
xor edx, eax
mov eax, ecx
shr eax, 3
mov ecx, esi
xor edx, eax
ror ecx, 0x13
add edx, dword [esp + 0x50]
mov eax, esi
ror eax, 0x11
xor ecx, eax
shr esi, 0xa
xor esi, ecx
mov ecx, edi
add esi, edx
add esi, dword [esp + 0x64]
mov dword [esp + 0x50], esi
mov dword [esp + 0xc8], esi
ror ecx, 0x19
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
xor eax, dword [esp + 0x18]
add ecx, dword [esp + 0x30]
and eax, edi
xor eax, dword [esp + 0x1c]
add eax, ecx
mov ecx, dword [esp + 0x24]
add eax, dword [ecx]
mov ecx, ebx
add esi, eax
ror ecx, 2
mov eax, ecx
add dword [esp + 0x28], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x14]
add edx, esi
or ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x60]
and ebx, ecx
mov ecx, dword [esp + 0x74]
or ebx, eax
mov eax, ecx
add ebx, edx
ror eax, 0x11
mov edx, ecx
ror edx, 0x13
xor edx, eax
mov dword [esp + 0x30], ebx
mov eax, ecx
mov ecx, esi
shr eax, 0xa
xor edx, eax
ror ecx, 0x12
add edx, dword [esp + 0x54]
mov eax, esi
ror eax, 7
xor ecx, eax
mov eax, esi
mov esi, dword [esp + 0x28]
shr eax, 3
xor eax, ecx
mov ecx, esi
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x6c]
mov dword [esp + 0x54], eax
mov dword [esp + 0xcc], eax
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x18]
and eax, esi
mov esi, dword [esp + 0x54]
xor eax, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 4]
add ecx, dword [esp + 0x1c]
add esi, ecx
mov ecx, ebx
add dword [esp + 0x10], esi
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
xor edx, ecx
mov ecx, dword [esp + 0x20]
or ecx, dword [esp + 0x14]
add edx, esi
and ecx, ebx
mov esi, dword [esp + 0x50]
mov ebx, dword [esp + 0x20]
mov eax, ebx
and eax, dword [esp + 0x14]
or ecx, eax
add ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x38]
mov edx, ecx
mov eax, ecx
ror edx, 0x12
ror eax, 7
xor edx, eax
mov eax, ecx
shr eax, 3
mov ecx, esi
xor edx, eax
ror ecx, 0x13
mov eax, esi
ror eax, 0x11
xor ecx, eax
mov eax, esi
mov esi, dword [esp + 0x60]
shr eax, 0xa
add esi, edx
mov edx, dword [esp + 0x10]
xor ecx, eax
add esi, ecx
mov eax, edx
add esi, dword [esp + 0x48]
mov ecx, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov dword [esp + 0x60], esi
mov eax, edx
mov dword [esp + 0xd0], esi
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x28]
and eax, edx
xor eax, edi
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 8]
mov eax, dword [esp + 0x18]
add ecx, esi
mov esi, dword [esp + 0x30]
add eax, ecx
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
ror ecx, 2
mov dword [esp + 0x18], eax
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
xor edx, ecx
mov ecx, ebx
or ecx, esi
and ebx, esi
and ecx, dword [esp + 0x1c]
or ebx, ecx
mov ecx, dword [esp + 0x68]
add ebx, dword [esp + 0x18]
mov eax, ecx
add ebx, edx
ror eax, 7
mov edx, ecx
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x54]
add edx, dword [esp + 0x38]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x54]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [esp + 0x40]
mov ecx, edx
mov dword [esp + 0x38], eax
mov dword [esp + 0xd4], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x28]
xor eax, dword [esp + 0x10]
and eax, edx
xor eax, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0xc]
add ecx, dword [esp + 0x38]
add edi, ecx
mov ecx, ebx
add dword [esp + 0x20], edi
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, esi
and eax, dword [esp + 0x1c]
xor edx, ecx
mov ecx, esi
or ecx, dword [esp + 0x1c]
and ecx, ebx
or ecx, eax
add edi, ecx
mov ecx, dword [esp + 0x70]
add edi, edx
mov eax, ecx
ror eax, 7
mov edx, ecx
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x60]
add edx, dword [esp + 0x68]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x60]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x20]
add eax, dword [esp + 0x3c]
mov ecx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0xd8], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x14]
and eax, edx
xor eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x10]
add ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x28]
add eax, ecx
mov ecx, edi
add esi, eax
mov dword [esp + 0x28], eax
ror ecx, 2
mov eax, ecx
mov dword [esp + 0x30], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x1c]
xor edx, ecx
mov ecx, eax
and eax, ebx
or ecx, ebx
and ecx, edi
or eax, ecx
mov ecx, dword [esp + 0x38]
add eax, dword [esp + 0x28]
add eax, edx
mov edx, ecx
mov dword [esp + 0x18], eax
mov eax, ecx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ecx
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 0x70]
mov ecx, eax
ror eax, 7
ror ecx, 0x12
xor ecx, eax
mov eax, dword [esp + 0x4c]
shr eax, 3
xor eax, ecx
mov ecx, esi
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x44]
mov dword [esp + 0x70], eax
mov dword [esp + 0xdc], eax
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x14]
and eax, esi
xor eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x14]
add ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x18]
add dword [esp + 0x1c], eax
ror ecx, 2
mov dword [esp + 0x10], eax
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
xor edx, ecx
mov ecx, ebx
mov eax, ebx
and eax, edi
or ecx, edi
and ecx, dword [esp + 0x18]
or eax, ecx
mov ecx, dword [esp + 0x68]
add eax, dword [esp + 0x10]
add eax, edx
mov edx, ecx
mov dword [esp + 0x10], eax
mov eax, ecx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ecx
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x5c]
add edx, dword [esp + 0x74]
mov ecx, eax
ror eax, 7
ror ecx, 0x12
xor ecx, eax
mov eax, dword [esp + 0x5c]
shr eax, 3
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x1c]
add eax, dword [esp + 0x4c]
mov ecx, edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe0], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x20]
xor eax, esi
and eax, edx
xor eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x18]
add ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x10]
add ebx, eax
mov dword [esp + 0x14], eax
ror ecx, 2
mov eax, ecx
mov dword [esp + 0x2c], ebx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, edi
and eax, dword [esp + 0x18]
xor edx, ecx
mov ecx, edi
or ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x10]
or eax, ecx
mov ecx, dword [esp + 0x70]
add eax, dword [esp + 0x14]
add eax, edx
mov edx, ecx
mov dword [esp + 0x14], eax
mov eax, ecx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ecx
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x58]
mov ecx, eax
add edx, dword [esp + 0x50]
ror eax, 7
ror ecx, 0x12
xor ecx, eax
mov eax, dword [esp + 0x58]
shr eax, 3
xor ecx, eax
mov eax, ebx
add edx, ecx
ror eax, 0xb
add edx, dword [esp + 0x5c]
mov ecx, ebx
ror ecx, 0x19
xor ecx, eax
mov dword [esp + 0x5c], edx
mov eax, ebx
mov dword [esp + 0xe4], edx
ror eax, 6
xor ecx, eax
mov eax, esi
xor eax, dword [esp + 0x1c]
and eax, ebx
xor eax, esi
mov esi, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x1c]
add ecx, edx
add esi, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
add edi, esi
mov eax, ecx
mov dword [esp + 0x20], edi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x18]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x10]
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x14]
or ecx, eax
add esi, ecx
mov ecx, dword [esp + 0x64]
mov eax, ecx
add esi, edx
ror eax, 7
mov edx, ecx
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x4c]
add edx, dword [esp + 0x54]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x4c]
shr eax, 0xa
xor eax, ecx
mov ecx, edi
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x58]
mov dword [esp + 0x58], eax
mov dword [esp + 0xe8], eax
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
xor eax, ebx
and eax, edi
xor eax, dword [esp + 0x1c]
add ecx, eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x20]
add ecx, dword [esp + 0x58]
add edi, ecx
mov ecx, esi
ror ecx, 2
mov eax, ecx
add dword [esp + 0x18], edi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x14]
or ecx, dword [esp + 0x14]
and ecx, esi
or ecx, eax
add edi, ecx
mov ecx, dword [esp + 0x6c]
mov eax, ecx
add edi, edx
ror eax, 7
mov edx, ecx
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x5c]
add edx, dword [esp + 0x60]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x5c]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x18]
add eax, dword [esp + 0x64]
mov ecx, edx
mov dword [esp + 0x64], eax
mov dword [esp + 0xec], eax
mov eax, edx
ror ecx, 0x19
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x20]
and eax, edx
xor eax, ebx
mov ebx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x24]
add ecx, dword [esp + 0x64]
add ebx, ecx
mov ecx, edi
add dword [esp + 0x10], ebx
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, esi
and eax, dword [esp + 0x14]
xor edx, ecx
mov ecx, esi
or ecx, dword [esp + 0x14]
and ecx, edi
or ecx, eax
add ebx, ecx
add ebx, edx
mov ecx, dword [esp + 0x48]
mov edx, ecx
mov eax, ecx
ror edx, 0x12
ror eax, 7
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x58]
mov ecx, eax
add edx, dword [esp + 0x38]
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x58]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x10]
add eax, dword [esp + 0x6c]
mov ecx, edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0xf0], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x18]
and eax, edx
xor eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x28]
add ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x2c]
add eax, ecx
mov ecx, ebx
add dword [esp + 0x14], eax
mov dword [esp + 0x2c], eax
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, esi
xor edx, ecx
and eax, edi
mov ecx, esi
or ecx, edi
and ecx, ebx
or eax, ecx
mov ecx, dword [esp + 0x40]
add eax, dword [esp + 0x2c]
add eax, edx
mov edx, ecx
mov dword [esp + 0x1c], eax
mov eax, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x64]
add edx, dword [esp + 0x68]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x64]
shr eax, 0xa
xor eax, ecx
add eax, edx
add eax, dword [esp + 0x48]
mov dword [esp + 0x48], eax
mov dword [esp + 0xf4], eax
mov edx, dword [esp + 0x14]
mov ecx, edx
ror ecx, 0x19
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x10]
and eax, edx
xor eax, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x2c]
add ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
add eax, ecx
mov dword [esp + 0x20], eax
add eax, esi
mov esi, dword [esp + 0x1c]
mov ecx, esi
mov dword [esp + 0x2c], eax
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, edi
xor edx, ecx
and eax, ebx
add edx, dword [esp + 0x20]
mov ecx, edi
or ecx, ebx
and ecx, esi
or eax, ecx
mov ecx, dword [esp + 0x3c]
add eax, edx
mov edx, ecx
mov dword [esp + 0x20], eax
mov eax, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x6c]
add edx, dword [esp + 0x70]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x6c]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x2c]
add eax, dword [esp + 0x40]
mov ecx, edx
mov dword [esp + 0x40], eax
mov dword [esp + 0xf8], eax
mov eax, edx
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x14]
and eax, edx
xor eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x30]
add ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x20]
add edi, eax
mov dword [esp + 0x18], eax
ror ecx, 2
mov eax, ecx
mov dword [esp + 0x30], edi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, ebx
xor edx, ecx
and eax, esi
add edx, dword [esp + 0x18]
mov ecx, ebx
or ecx, esi
and ecx, dword [esp + 0x20]
or eax, ecx
mov ecx, dword [esp + 0x44]
add eax, edx
mov edx, ecx
mov dword [esp + 0x28], eax
mov eax, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x48]
add edx, dword [esp + 0x3c]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x48]
shr eax, 0xa
xor eax, ecx
mov ecx, edi
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x4c]
mov dword [esp + 0x3c], eax
mov dword [esp + 0xfc], eax
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x14]
and eax, edi
mov edi, dword [esp + 0x10]
xor eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x34]
add ecx, dword [esp + 0x3c]
add edi, ecx
mov ecx, dword [esp + 0x28]
ror ecx, 2
add ebx, edi
mov eax, ecx
mov dword [esp + 0x1c], ebx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, esi
and eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, esi
add edx, edi
or ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x28]
or eax, ecx
mov ecx, dword [esp + 0x74]
add eax, edx
mov dword [esp + 0x10], eax
mov edi, dword [esp + 0x40]
mov edx, ecx
mov eax, ecx
ror edx, 0x12
ror eax, 7
xor edx, eax
mov eax, ecx
shr eax, 3
mov ecx, edi
xor edx, eax
ror ecx, 0x13
add edx, dword [esp + 0x44]
mov eax, edi
ror eax, 0x11
xor ecx, eax
shr edi, 0xa
xor edi, ecx
mov eax, ebx
ror eax, 0xb
mov ecx, ebx
ror ecx, 0x19
add edi, edx
xor ecx, eax
add edi, dword [esp + 0x5c]
mov eax, ebx
mov dword [esp + 0x44], edi
ror eax, 6
xor ecx, eax
mov dword [esp + 0x100], edi
mov eax, dword [esp + 0x2c]
xor eax, dword [esp + 0x30]
and eax, ebx
mov ebx, dword [esp + 0x14]
xor eax, dword [esp + 0x2c]
add ecx, eax
mov eax, dword [esp + 0x24]
add ecx, dword [eax + 0x38]
add ecx, edi
add ebx, ecx
mov ecx, dword [esp + 0x10]
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
lea edi, [esi + ebx]
mov esi, dword [esp + 0x20]
xor edx, eax
xor edx, ecx
mov dword [esp + 0x18], edi
mov ecx, esi
mov eax, esi
or ecx, dword [esp + 0x28]
add edx, ebx
and eax, dword [esp + 0x28]
and ecx, dword [esp + 0x10]
or ecx, eax
mov eax, dword [esp + 0x24]
add eax, 0x40
add ecx, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], eax
cmp eax, 0x4b7b04
jl 0x478c1c
mov eax, dword [esp + 0xa0]
mov edi, dword [esp + 0x7c]
mov edx, dword [esp + 0x8c]
add edi, ecx
add edx, dword [esp + 0x18]
mov ecx, edi
mov ebx, dword [esp + 0x1c]
add ebx, dword [esp + 0x90]
mov dword [eax], ecx
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x10]
mov dword [eax + 4], ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x88]
add ecx, esi
mov dword [esp + 0x14], edi
mov esi, dword [esp + 0x94]
add esi, dword [esp + 0x30]
mov dword [eax + 0xc], ecx
mov dword [esp + 0x50], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x88], ecx
mov ecx, edx
mov dword [eax + 0x10], ecx
mov dword [esp + 0x8c], ecx
mov ecx, ebx
mov dword [eax + 0x14], ecx
mov dword [esp + 0x90], ecx
mov ecx, esi
mov dword [eax + 0x18], ecx
mov dword [esp + 0x94], ecx
mov ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x98]
mov dword [eax + 0x1c], ecx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x48], ecx
add eax, 0x40
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x98], ecx
mov ecx, dword [ebp + 8]
sub ecx, 0x40
mov dword [esp + 0xc0], edi
sub dword [esp + 0x78], 1
mov dword [esp + 0x44], edx
mov dword [esp + 0xb0], edx
mov dword [esp + 0x3c], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0x34], eax
mov dword [ebp + 8], ecx
jne 0x4784f7
jmp 0x479800
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x9c]
xor esi, esi
push 0x40
pop edx
mov dword [eax], ecx
lea ecx, [esp + 0xc4]
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
call fcn.004a6900
pop edi
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x100]
pop esi
pop ebx
xor ecx, esp
call fcn.004055b8
mov esp, ebp
pop ebp
ret 8