Function at 0x45b598
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 [0x491234]
xor eax, esp
mov dword [esp + 0xf8], eax
cmp dword [ebp + 8], 0x40
mov eax, ecx
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x6c], edx
push ebx
mov edx, dword [eax]
mov ebx, dword [eax + 0x14]
mov dword [esp + 8], edx
mov dword [esp + 0xb8], edx
mov edx, dword [eax + 0xc]
push esi
mov esi, dword [eax + 8]
mov dword [esp + 0x3c], edx
mov dword [esp + 0xb0], edx
mov edx, dword [eax + 0x18]
push edi
mov edi, dword [eax + 0x10]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 0xa0], eax
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x4c], edx
mov dword [esp + 0xa8], edx
mov edx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0xb8], esi
mov dword [esp + 0x44], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x48], eax
mov dword [esp + 0xa4], eax
jb 0x45c99e
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x40]
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 + 0x4c]
shr ecx, 6
mov dword [esp + 0x7c], edx
mov dword [esp + 0x8c], edi
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, edi
bswap eax
mov dword [esp + 0x74], eax
mov eax, edi
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, esi
add ecx, dword [esp + 0x48]
xor eax, ebx
and eax, edi
mov ebx, dword [esp + 0x40]
xor eax, esi
mov esi, dword [esp + 0x74]
add eax, ecx
add esi, 0x428a2f98
add esi, eax
mov ecx, edx
ror ecx, 2
add ebx, esi
mov eax, ecx
mov dword [esp + 0x40], ebx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x38]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x3c]
add edx, esi
and eax, dword [esp + 0x3c]
and ecx, dword [esp + 0x10]
or ecx, eax
mov eax, dword [esp + 0x34]
add edx, ecx
mov ecx, ebx
ror ecx, 0x19
mov dword [esp + 0x1c], edx
mov eax, dword [eax - 4]
bswap eax
mov dword [esp + 0x60], eax
mov eax, ebx
mov esi, dword [esp + 0x60]
ror eax, 0xb
add esi, 0x71374491
xor ecx, eax
mov eax, ebx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x50]
add ecx, dword [esp + 0x4c]
xor eax, edi
mov edi, dword [esp + 0x38]
and eax, ebx
xor eax, dword [esp + 0x50]
add eax, ecx
mov ecx, edx
ror ecx, 2
add esi, eax
mov eax, ecx
add edi, esi
ror ecx, 0xb
mov edx, ecx
mov dword [esp + 0x38], edi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x3c]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x10]
add edx, esi
and ecx, dword [esp + 0x1c]
and eax, dword [esp + 0x10]
or ecx, eax
add edx, ecx
mov dword [esp + 0x20], edx
mov eax, dword [esp + 0x34]
mov ecx, edi
ror ecx, 0x19
mov esi, dword [eax]
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x44]
and eax, edi
mov ebx, dword [esp + 0x3c]
xor eax, dword [esp + 0x44]
bswap esi
add ecx, esi
mov dword [esp + 0x4c], esi
add eax, ecx
mov esi, dword [esp + 0x50]
mov ecx, edx
add esi, 0xb5c0fbcf
add esi, eax
ror ecx, 2
mov eax, ecx
add ebx, 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 + 0x10]
add edx, esi
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x20]
or eax, ecx
mov ecx, ebx
add eax, edx
ror ecx, 0x19
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x34]
mov esi, 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 + 0x40]
add ecx, dword [esp + 0x44]
xor eax, edi
mov edi, dword [esp + 0x10]
and eax, ebx
xor eax, dword [esp + 0x40]
add eax, ecx
mov ecx, dword [esp + 0x18]
bswap esi
ror ecx, 2
mov dword [esp + 0x50], esi
add esi, 0xe9b5dba5
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 + 0x1c]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x20]
add edx, esi
and eax, dword [esp + 0x20]
and ecx, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, edx
mov dword [esp + 0x10], ecx
mov esi, dword [eax + 8]
mov ecx, edi
mov eax, edi
ror ecx, 0x19
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x38]
and eax, edi
xor eax, dword [esp + 0x38]
bswap esi
mov dword [esp + 0x44], esi
add esi, ecx
mov ecx, dword [esp + 0x40]
add esi, eax
add ecx, 0x3956c25b
add esi, ecx
mov ecx, dword [esp + 0x10]
ror ecx, 2
mov eax, ecx
add dword [esp + 0x1c], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x10]
and eax, dword [esp + 0x18]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
mov esi, dword [esp + 0x1c]
add edx, ecx
mov ecx, esi
ror ecx, 0x19
mov eax, dword [eax + 0xc]
bswap eax
mov dword [esp + 0x54], eax
mov eax, esi
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x3c], edx
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, ebx
add ecx, dword [esp + 0x54]
xor eax, edi
and esi, eax
xor esi, ebx
add esi, ecx
mov ecx, dword [esp + 0x38]
add ecx, 0x59f111f1
add esi, ecx
mov ecx, edx
add dword [esp + 0x20], esi
ror ecx, 2
mov eax, ecx
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, dword [esp + 0x10]
and eax, dword [esp + 0x10]
and ecx, dword [esp + 0x3c]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
add edx, ecx
mov dword [esp + 0x38], edx
mov eax, dword [eax + 0x10]
bswap eax
mov dword [esp + 0x58], eax
mov esi, dword [esp + 0x20]
add ebx, 0x923f82a4
mov ecx, esi
mov eax, esi
ror ecx, 0x19
ror eax, 0xb
xor ecx, eax
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
add ecx, dword [esp + 0x58]
xor eax, edi
and esi, eax
xor esi, edi
add esi, ecx
mov ecx, edx
ror ecx, 2
add esi, ebx
mov ebx, dword [esp + 0x3c]
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
add dword [esp + 0x18], esi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, eax
or ecx, ebx
and eax, ebx
and ecx, dword [esp + 0x38]
or ecx, eax
mov eax, dword [esp + 0x34]
add ecx, esi
mov esi, dword [esp + 0x18]
add edx, ecx
mov ecx, esi
ror ecx, 0x19
mov eax, dword [eax + 0x14]
bswap eax
mov dword [esp + 0x5c], 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]
xor eax, dword [esp + 0x20]
add ecx, dword [esp + 0x5c]
and esi, eax
xor esi, dword [esp + 0x1c]
add esi, 0xab1c5ed5
add esi, ecx
mov ecx, edx
ror ecx, 2
add esi, edi
mov edi, dword [esp + 0x38]
mov eax, ecx
add dword [esp + 0x10], esi
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 + 0x10]
add edx, ecx
mov dword [esp + 0x14], edx
mov eax, dword [eax + 0x18]
bswap eax
mov dword [esp + 0x48], eax
mov ecx, esi
mov eax, esi
ror eax, 0xb
ror ecx, 0x19
xor ecx, eax
mov eax, esi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x18]
add ecx, dword [esp + 0x48]
and esi, eax
xor esi, dword [esp + 0x20]
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 + 0x14]
or eax, ecx
mov ecx, ebx
add eax, esi
ror ecx, 0x19
add eax, edx
mov dword [esp + 0x28], 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 + 0x18]
xor eax, dword [esp + 0x10]
and eax, ebx
xor eax, dword [esp + 0x18]
bswap esi
mov dword [esp + 0x64], esi
add esi, ecx
mov ecx, dword [esp + 0x20]
add esi, eax
add ecx, 0x12835b01
add esi, ecx
mov ecx, dword [esp + 0x28]
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 + 0x14]
or ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x28]
or eax, ecx
mov ecx, edi
add eax, esi
add eax, edx
ror ecx, 0x19
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x20]
mov eax, edi
bswap esi
mov dword [esp + 0x70], esi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x10]
add esi, ecx
xor eax, ebx
mov ecx, dword [esp + 0x18]
and eax, edi
xor eax, dword [esp + 0x10]
add ecx, 0x243185be
add esi, eax
add esi, ecx
mov ecx, dword [esp + 0x1c]
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 + 0x28]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x14]
or ecx, dword [esp + 0x14]
and ecx, dword [esp + 0x1c]
or eax, ecx
add eax, esi
add eax, edx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], 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
bswap esi
xor eax, ebx
mov dword [esp + 0x6c], esi
add esi, ecx
mov ecx, dword [esp + 0x10]
add esi, eax
add ecx, 0x550c7dc3
add esi, ecx
mov ecx, dword [esp + 0x18]
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 + 0x28]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x1c]
and eax, dword [esp + 0x1c]
and ecx, dword [esp + 0x18]
or eax, ecx
add eax, esi
add eax, edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x10], eax
mov ecx, edx
mov eax, dword [esp + 0x34]
ror ecx, 0x19
mov esi, dword [eax + 0x28]
mov eax, edx
bswap esi
mov dword [esp + 0x68], esi
ror eax, 0xb
xor ecx, eax
add ebx, 0x72be5d74
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x24]
add esi, ecx
mov ecx, dword [esp + 0x10]
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 + 0x28]
ror edx, 9
add ebx, esi
xor edx, eax
mov dword [esp + 0x28], ebx
mov eax, dword [esp + 0x1c]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x18]
or ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x10]
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 + 0x14]
and eax, dword [esp + 0x28]
bswap esi
mov dword [esp + 0x38], esi
xor eax, ebx
add esi, ecx
mov ecx, edx
ror ecx, 2
add esi, eax
mov eax, ecx
add esi, edi
mov edi, dword [esp + 0x1c]
ror ecx, 0xb
add edi, esi
mov edx, ecx
mov dword [esp + 0x1c], edi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x18]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x20]
and eax, dword [esp + 0x10]
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
bswap esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x40], esi
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x2c], 0x408844
mov eax, edi
add ebx, 0x9bdc06a7
mov edi, dword [esp + 0x14]
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x28]
add esi, ecx
xor eax, edi
and eax, dword [esp + 0x1c]
mov ecx, edx
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 + 0x18]
mov edx, ecx
ror edx, 9
add ebx, esi
xor edx, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, eax
and eax, dword [esp + 0x20]
or ecx, dword [esp + 0x20]
and ecx, dword [esp + 0x24]
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 + 0x30], edx
mov eax, ebx
mov ebx, dword [esp + 0x28]
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, dword [esp + 0x1c]
and eax, dword [esp + 0x18]
bswap esi
mov dword [esp + 0x3c], esi
xor eax, ebx
add esi, ecx
mov ecx, edx
add esi, eax
ror ecx, 2
mov eax, ecx
add esi, edi
add dword [esp + 0x10], esi
mov edi, dword [esp + 0x1c]
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x24]
and eax, dword [esp + 0x24]
and ecx, dword [esp + 0x30]
or eax, ecx
add eax, esi
mov esi, dword [esp + 0x10]
add eax, edx
mov dword [esp + 0x14], eax
jmp 0x45bdd0
mov ebx, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edx, ecx
mov eax, ecx
ror edx, 0x13
ror eax, 0x11
xor edx, eax
mov eax, ecx
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x60]
add edx, dword [esp + 0x74]
mov ecx, eax
ror eax, 7
ror ecx, 0x12
xor ecx, eax
mov eax, dword [esp + 0x60]
shr eax, 3
xor ecx, eax
mov eax, esi
add edx, ecx
ror eax, 0xb
add edx, dword [esp + 0x64]
mov ecx, esi
ror ecx, 0x19
xor ecx, eax
mov dword [esp + 0x74], edx
mov eax, esi
mov dword [esp + 0xc4], edx
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x18]
and esi, eax
mov eax, dword [esp + 0x2c]
xor esi, edi
add esi, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
add esi, dword [eax - 4]
mov eax, ecx
ror ecx, 0xb
add esi, ebx
mov ebx, dword [esp + 0x20]
add esi, edx
mov edx, ecx
add ebx, esi
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x24]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x30]
add edx, esi
and eax, dword [esp + 0x30]
and ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x4c]
or eax, ecx
mov ecx, dword [esp + 0x3c]
add eax, edx
mov dword [esp + 0x20], eax
mov edx, ecx
mov eax, ecx
ror edx, 0x13
ror eax, 0x11
xor edx, eax
mov eax, ecx
shr eax, 0xa
mov ecx, esi
xor edx, eax
ror ecx, 0x12
add edx, dword [esp + 0x70]
mov eax, esi
ror eax, 7
xor ecx, eax
shr esi, 3
xor esi, ecx
mov ecx, ebx
add esi, edx
add esi, dword [esp + 0x60]
mov dword [esp + 0x60], esi
mov dword [esp + 0xc8], esi
ror ecx, 0x19
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov eax, ebx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x18]
xor eax, dword [esp + 0x10]
add ecx, edi
and eax, ebx
mov edi, dword [esp + 0x24]
xor eax, dword [esp + 0x18]
add eax, ecx
mov ecx, dword [esp + 0x2c]
add eax, dword [ecx]
mov ecx, dword [esp + 0x20]
add esi, eax
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 + 0x30]
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 eax, ecx
mov esi, dword [esp + 0x50]
mov ecx, dword [esp + 0x74]
add eax, edx
mov dword [esp + 0x24], eax
mov edx, ecx
mov eax, ecx
ror edx, 0x13
ror eax, 0x11
xor edx, eax
mov eax, ecx
shr eax, 0xa
mov ecx, esi
xor edx, eax
ror ecx, 0x12
add edx, dword [esp + 0x6c]
mov eax, esi
ror eax, 7
xor ecx, eax
shr esi, 3
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 + 0x4c]
mov eax, edi
mov dword [esp + 0x4c], esi
ror eax, 6
xor ecx, eax
mov dword [esp + 0xcc], esi
mov eax, ebx
xor eax, dword [esp + 0x10]
and eax, edi
xor eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 4]
add ecx, dword [esp + 0x18]
add esi, ecx
mov ecx, dword [esp + 0x24]
add dword [esp + 0x30], esi
ror ecx, 2
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x14]
add edx, esi
and eax, dword [esp + 0x14]
and ecx, dword [esp + 0x24]
or ecx, eax
mov esi, dword [esp + 0x60]
add ecx, edx
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x44]
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
add edx, dword [esp + 0x68]
mov eax, esi
ror eax, 0x11
xor ecx, eax
shr esi, 0xa
xor esi, ecx
add esi, edx
mov edx, dword [esp + 0x30]
add esi, dword [esp + 0x50]
mov ecx, edx
ror ecx, 0x19
mov eax, edx
ror eax, 0xb
xor ecx, eax
mov dword [esp + 0x50], esi
mov eax, edx
mov dword [esp + 0xd0], esi
ror eax, 6
xor ecx, eax
mov eax, ebx
xor eax, edi
and eax, edx
xor eax, ebx
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 8]
mov eax, dword [esp + 0x10]
add ecx, esi
mov esi, dword [esp + 0x24]
add eax, ecx
add dword [esp + 0x14], eax
mov ecx, dword [esp + 0x1c]
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, dword [esp + 0x20]
or ecx, esi
and esi, dword [esp + 0x20]
and ecx, dword [esp + 0x1c]
or esi, ecx
mov ecx, dword [esp + 0x54]
add esi, dword [esp + 0x10]
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]
mov ecx, eax
add edx, dword [esp + 0x38]
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x4c]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [esp + 0x44]
mov ecx, edx
mov dword [esp + 0x44], 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, edi
xor eax, dword [esp + 0x30]
and eax, edx
xor eax, edi
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0xc]
add ecx, dword [esp + 0x44]
add ebx, ecx
mov ecx, esi
add dword [esp + 0x20], ebx
ror ecx, 2
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 + 0x1c]
or ecx, dword [esp + 0x1c]
and ecx, esi
or ecx, eax
add ebx, ecx
mov ecx, dword [esp + 0x58]
add ebx, 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 + 0x50]
add edx, dword [esp + 0x40]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x50]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x20]
add eax, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0x54], 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 + 0x30]
xor eax, dword [esp + 0x14]
and eax, edx
xor eax, dword [esp + 0x30]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x10]
add ecx, dword [esp + 0x54]
add edi, ecx
mov ecx, ebx
ror ecx, 2
mov eax, ecx
add dword [esp + 0x24], edi
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, esi
or ecx, esi
and ecx, ebx
or eax, ecx
mov ecx, dword [esp + 0x5c]
add eax, edi
mov edi, dword [esp + 0x44]
add eax, edx
mov edx, ecx
mov dword [esp + 0x10], eax
mov eax, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
mov ecx, edi
xor edx, eax
ror ecx, 0x13
add edx, dword [esp + 0x3c]
mov eax, edi
ror eax, 0x11
xor ecx, eax
mov eax, edi
mov edi, dword [esp + 0x24]
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 + 0xdc], eax
mov eax, edi
ror eax, 0xb
xor ecx, eax
mov eax, edi
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x20]
xor eax, dword [esp + 0x14]
and eax, edi
xor eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x14]
add ecx, dword [esp + 0x58]
mov eax, dword [esp + 0x30]
add eax, ecx
mov ecx, dword [esp + 0x10]
add dword [esp + 0x1c], eax
ror ecx, 2
mov dword [esp + 0x30], eax
mov eax, ecx
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, esi
xor edx, ecx
and eax, ebx
mov ecx, esi
or ecx, ebx
and ecx, dword [esp + 0x10]
or eax, ecx
add eax, dword [esp + 0x30]
add eax, edx
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x18], eax
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 + 0x54]
add edx, dword [esp + 0x74]
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 + 0x1c]
add eax, dword [esp + 0x5c]
mov ecx, edx
mov dword [esp + 0x5c], 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, edi
and eax, edx
xor eax, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x18]
add ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [esp + 0x18]
add esi, eax
mov dword [esp + 0x14], eax
ror ecx, 2
mov eax, ecx
mov dword [esp + 0x28], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, ebx
and eax, dword [esp + 0x10]
xor edx, ecx
mov ecx, ebx
or ecx, dword [esp + 0x10]
and ecx, dword [esp + 0x18]
or eax, ecx
mov ecx, dword [esp + 0x64]
add eax, dword [esp + 0x14]
add eax, edx
mov edx, ecx
mov dword [esp + 0x14], 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 + 0x58]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x58]
shr eax, 0xa
xor ecx, eax
add edx, dword [esp + 0x48]
mov eax, esi
add edx, ecx
ror eax, 0xb
add edx, dword [esp + 0x60]
mov ecx, esi
ror ecx, 0x19
xor ecx, eax
mov dword [esp + 0x48], edx
mov eax, esi
mov dword [esp + 0xe4], edx
ror eax, 6
xor ecx, eax
mov eax, edi
xor eax, dword [esp + 0x1c]
and eax, esi
mov esi, dword [esp + 0x20]
xor eax, edi
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x1c]
add ecx, edx
add esi, ecx
mov ecx, dword [esp + 0x14]
ror ecx, 2
add ebx, esi
mov eax, ecx
mov dword [esp + 0x24], ebx
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 + 0x18]
or ecx, dword [esp + 0x18]
and ecx, dword [esp + 0x14]
or ecx, eax
add esi, ecx
mov ecx, dword [esp + 0x70]
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 + 0x5c]
add edx, dword [esp + 0x64]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x5c]
shr eax, 0xa
xor eax, ecx
mov ecx, ebx
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x4c]
mov dword [esp + 0x64], eax
mov dword [esp + 0xe8], eax
mov eax, ebx
ror eax, 0xb
xor ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0x28]
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x1c]
xor eax, ebx
and eax, dword [esp + 0x24]
xor eax, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x20]
add ecx, dword [esp + 0x64]
add edi, ecx
add dword [esp + 0x10], edi
mov ecx, esi
ror ecx, 2
mov eax, ecx
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 + 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 + 0x48]
add edx, dword [esp + 0x70]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x48]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x10]
add eax, dword [esp + 0x50]
mov ecx, edx
mov dword [esp + 0x70], 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 + 0x24]
and eax, edx
xor eax, ebx
mov ebx, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x24]
add ecx, dword [esp + 0x70]
add ebx, ecx
mov ecx, edi
add dword [esp + 0x18], 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
mov ecx, dword [esp + 0x68]
add ebx, edx
mov eax, ecx
mov edx, ecx
ror eax, 7
ror edx, 0x12
xor edx, eax
mov eax, ecx
shr eax, 3
xor edx, eax
mov eax, dword [esp + 0x64]
mov ecx, eax
add edx, dword [esp + 0x6c]
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x64]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x18]
add eax, dword [esp + 0x44]
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 + 0x24]
xor eax, dword [esp + 0x10]
and eax, edx
xor eax, dword [esp + 0x24]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x28]
add ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x28]
add eax, ecx
mov ecx, ebx
add dword [esp + 0x14], eax
mov dword [esp + 0x28], 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 + 0x38]
add eax, dword [esp + 0x28]
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 + 0x70]
add edx, dword [esp + 0x68]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x70]
shr eax, 0xa
xor eax, ecx
add eax, edx
mov edx, dword [esp + 0x14]
add eax, dword [esp + 0x54]
mov ecx, edx
mov dword [esp + 0x68], eax
mov dword [esp + 0xf4], eax
mov eax, edx
ror ecx, 0x19
ror eax, 0xb
xor ecx, eax
mov eax, edx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x10]
xor eax, dword [esp + 0x18]
and eax, edx
xor eax, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x2c]
add ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x24]
add eax, ecx
mov dword [esp + 0x24], eax
add eax, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
mov dword [esp + 0x28], 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 + 0x24]
mov ecx, edi
or ecx, ebx
and ecx, esi
or eax, ecx
mov ecx, dword [esp + 0x40]
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 + 0x38]
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 + 0x28]
add eax, dword [esp + 0x58]
mov ecx, edx
mov dword [esp + 0x38], 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 + 0x18]
xor eax, dword [esp + 0x14]
and eax, edx
xor eax, dword [esp + 0x18]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x30]
add ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [esp + 0x20]
add edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], edi
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, esi
add edx, dword [esp + 0x10]
mov ecx, ebx
or ecx, esi
and ecx, dword [esp + 0x20]
or eax, ecx
mov ecx, dword [esp + 0x3c]
add eax, edx
mov edx, ecx
mov dword [esp + 0x24], 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 + 0x68]
add edx, dword [esp + 0x40]
mov ecx, eax
ror eax, 0x11
ror ecx, 0x13
xor ecx, eax
mov eax, dword [esp + 0x68]
shr eax, 0xa
xor eax, ecx
mov ecx, edi
add eax, edx
ror ecx, 0x19
add eax, dword [esp + 0x5c]
mov dword [esp + 0x40], 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 + 0x28]
xor eax, dword [esp + 0x14]
and eax, edi
mov edi, dword [esp + 0x18]
xor eax, dword [esp + 0x14]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x34]
add ecx, dword [esp + 0x40]
add edi, ecx
mov ecx, dword [esp + 0x24]
ror ecx, 2
add ebx, edi
mov eax, ecx
mov dword [esp + 0x18], 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 + 0x24]
or eax, ecx
mov ecx, dword [esp + 0x38]
add eax, edx
mov edx, ecx
mov dword [esp + 0x30], eax
mov eax, ecx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ecx
mov edi, dword [esp + 0x74]
mov ecx, edi
shr eax, 0xa
xor edx, eax
ror ecx, 0x12
add edx, dword [esp + 0x3c]
mov eax, edi
ror eax, 7
xor ecx, eax
mov eax, edi
shr eax, 3
xor eax, ecx
mov edi, dword [esp + 0x1c]
add eax, edx
mov ecx, ebx
add eax, dword [esp + 0x48]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x100], eax
mov eax, ebx
ror ecx, 0x19
ror eax, 0xb
xor ecx, eax
mov eax, ebx
ror eax, 6
xor ecx, eax
mov eax, dword [esp + 0x28]
xor eax, edi
and eax, ebx
mov ebx, dword [esp + 0x14]
xor eax, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 0x38]
add ecx, dword [esp + 0x3c]
add ebx, ecx
mov ecx, dword [esp + 0x30]
ror ecx, 2
add esi, ebx
mov eax, ecx
mov dword [esp + 0x10], esi
ror ecx, 0xb
mov edx, ecx
ror edx, 9
xor edx, eax
mov eax, dword [esp + 0x20]
xor edx, ecx
mov ecx, eax
or ecx, dword [esp + 0x24]
add edx, ebx
and eax, dword [esp + 0x24]
and ecx, dword [esp + 0x30]
or ecx, eax
mov eax, dword [esp + 0x2c]
add eax, 0x40
add ecx, edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x2c], eax
cmp eax, 0x408904
jl 0x45bdcc
mov eax, dword [esp + 0xa0]
mov edx, dword [esp + 0x7c]
mov edi, dword [esp + 0x8c]
add edx, ecx
mov ebx, dword [esp + 0x18]
mov ecx, edx
add ebx, dword [esp + 0x90]
add edi, esi
mov dword [eax], ecx
mov esi, dword [esp + 0x1c]
add esi, dword [esp + 0x94]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x80]
add ecx, dword [esp + 0x30]
mov dword [eax + 4], ecx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x84]
add ecx, dword [esp + 0x24]
mov dword [eax + 8], ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0xb8], ecx
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x20]
mov dword [eax + 0xc], ecx
mov dword [esp + 0x40], ecx
mov dword [esp + 0xb4], ecx
mov dword [esp + 0x88], ecx
mov ecx, edi
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 + 0x28]
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 + 0x10], edx
sub dword [esp + 0x78], 1
mov dword [esp + 0xc0], edx
mov dword [esp + 0x44], edi
mov dword [esp + 0xb0], edi
mov dword [esp + 0x50], ebx
mov dword [esp + 0xac], ebx
mov dword [esp + 0x4c], esi
mov dword [esp + 0xa8], esi
mov dword [esp + 0x34], eax
mov dword [ebp + 8], ecx
jne 0x45b69d
jmp 0x45c9a1
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.00489d20
pop edi
mov dword [esp + 0x98], esi
mov ecx, dword [esp + 0x100]
pop esi
pop ebx
xor ecx, esp
call fcn.0042427a
mov esp, ebp
pop ebp
ret 8