Function at 0x466b30
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xac
test ecx, ecx
lea edi, [ecx - 1]
mov dword [esp + 0x68], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x64], edi
je 0x467d20
mov edi, dword [eax]
mov dword [esp + 0x20], 0
mov dword [esp + 0x44], edi
mov edi, dword [eax + 4]
mov dword [esp + 0x48], edi
mov edi, dword [eax + 8]
mov dword [esp + 0x54], edi
mov edi, dword [eax + 0xc]
mov dword [esp + 0x5c], edi
mov edi, dword [eax + 0x10]
mov dword [esp + 0x4c], edi
mov edi, dword [eax + 0x14]
mov dword [esp + 0x50], edi
mov edi, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp + 0x58], edi
mov dword [esp + 0x60], eax
mov edi, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
mov ebp, dword [esp + 0x4c]
mov ecx, dword [esp + 0x60]
movzx eax, byte [edi + esi]
mov edx, ebp
ror edx, 6
mov dword [esp + 0x28], eax
movzx eax, byte [edi + esi + 1]
shl dword [esp + 0x28], 0x18
shl eax, 0x10
or dword [esp + 0x28], eax
movzx eax, byte [edi + esi + 3]
or dword [esp + 0x28], eax
movzx eax, byte [edi + esi + 2]
shl eax, 8
or dword [esp + 0x28], eax
mov eax, ebp
ror eax, 0xb
mov ebx, dword [esp + 0x28]
xor eax, edx
mov edx, ebp
ror edx, 0x19
xor eax, edx
mov edx, dword [esp + 0x50]
lea ecx, [ecx + eax + 0x428a2f98]
mov eax, ebp
not eax
and eax, dword [esp + 0x58]
and edx, ebp
mov dword [esp + 0x6c], ebx
xor eax, edx
add ecx, eax
mov eax, dword [esp + 0x48]
add ecx, ebx
mov ebx, dword [esp + 0x44]
mov dword [esp], ecx
mov ecx, dword [esp + 0x54]
mov edx, ecx
and ecx, eax
xor edx, eax
mov eax, ebx
and edx, ebx
xor edx, ecx
mov ecx, ebx
ror eax, 0xd
ror ebx, 2
xor eax, ebx
mov ebx, ecx
ror ebx, 0x16
xor eax, ebx
mov ebx, dword [esp]
add edx, eax
mov eax, dword [esp + 0x5c]
add eax, ebx
add ebx, edx
movzx edx, byte [edi + esi + 4]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x2c], edx
movzx edx, byte [edi + esi + 5]
shl dword [esp + 0x2c], 0x18
shl edx, 0x10
or dword [esp + 0x2c], edx
movzx edx, byte [edi + esi + 7]
or dword [esp + 0x2c], edx
movzx edx, byte [edi + esi + 6]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x44]
shl edx, 8
or dword [esp + 0x2c], edx
and ebp, eax
mov edx, dword [esp + 0x2c]
lea ebx, [edx + esi + 0x71374491]
mov esi, eax
mov dword [esp + 0x70], edx
mov edx, eax
ror esi, 6
ror edx, 0xb
xor edx, esi
mov esi, eax
ror esi, 0x19
xor edx, esi
mov esi, dword [esp + 0xc]
add ebx, edx
mov edx, eax
not edx
and edx, dword [esp + 0x50]
xor edx, ebp
add ebx, edx
mov edx, esi
and edx, edi
mov ebp, edx
mov edx, dword [esp + 0x48]
and edx, esi
mov ecx, edx
mov edx, dword [esp + 0x48]
xor ecx, ebp
and edx, edi
mov edi, esi
xor ecx, edx
mov edx, esi
ror edx, 0xd
ror esi, 2
xor edx, esi
mov esi, edi
ror esi, 0x16
xor edx, esi
mov esi, dword [esp + 0x54]
add edx, ecx
add edx, ebx
mov dword [esp], edx
lea edi, [ebx + esi]
mov ebx, dword [esp + 0x24]
mov esi, dword [esp + 0x20]
movzx edx, byte [ebx + esi + 8]
movzx ecx, byte [ebx + esi + 9]
shl edx, 0x18
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [ebx + esi + 0xb]
or edx, ecx
movzx ecx, byte [ebx + esi + 0xa]
mov esi, dword [esp]
shl ecx, 8
or edx, ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x74], edx
lea ebx, [edx + ecx - 0x4a3f0431]
mov edx, edi
mov ecx, edi
ror ecx, 6
ror edx, 0xb
xor edx, ecx
mov ecx, edi
ror ecx, 0x19
xor edx, ecx
mov ecx, edi
add ebx, edx
mov edx, edi
not edx
and ecx, eax
and edx, dword [esp + 0x4c]
xor edx, ecx
add ebx, edx
mov edx, dword [esp + 0xc]
and edx, esi
mov dword [esp + 8], edx
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 8]
and edx, esi
xor ecx, edx
mov edx, esi
xor ecx, ebp
mov ebp, esi
ror ebp, 2
ror edx, 0xd
xor edx, ebp
mov ebp, dword [esp]
ror ebp, 0x16
xor edx, ebp
mov ebp, dword [esp + 0x48]
add edx, ecx
add edx, ebx
mov dword [esp + 4], edx
mov esi, dword [esp + 0x20]
add ebp, ebx
mov ebx, dword [esp + 0x24]
movzx edx, byte [ebx + esi + 0xc]
movzx ecx, byte [ebx + esi + 0xd]
shl edx, 0x18
shl ecx, 0x10
or edx, ecx
movzx ecx, byte [ebx + esi + 0xf]
or edx, ecx
movzx ecx, byte [ebx + esi + 0xe]
mov esi, dword [esp + 0x4c]
shl ecx, 8
or edx, ecx
mov ecx, ebp
lea ebx, [edx + esi - 0x164a245b]
mov esi, ebp
ror esi, 0xb
ror ecx, 6
mov dword [esp + 0x78], edx
mov edx, esi
mov esi, ebp
xor edx, ecx
mov ecx, ebp
ror ecx, 0x19
not esi
xor edx, ecx
mov ecx, ebp
add ebx, edx
mov edx, esi
mov esi, dword [esp + 4]
and ecx, edi
and edx, eax
xor edx, ecx
add ebx, edx
mov edx, dword [esp]
and edx, esi
mov dword [esp + 0x10], edx
mov ecx, dword [esp + 0x10]
mov edx, esi
and esi, dword [esp + 0xc]
xor ecx, esi
mov esi, edx
ror esi, 2
ror edx, 0xd
xor edx, esi
mov esi, dword [esp + 4]
xor ecx, dword [esp + 8]
ror esi, 0x16
xor edx, esi
add edx, ecx
mov ecx, dword [esp + 0x44]
add edx, ebx
mov dword [esp + 8], edx
lea esi, [ebx + ecx]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
movzx edx, byte [ebx + ecx + 0x10]
movzx ecx, byte [ebx + ecx + 0x11]
shl edx, 0x18
shl ecx, 0x10
or edx, ecx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ebx + ecx + 0x13]
or edx, ecx
mov ecx, dword [esp + 0x20]
movzx ecx, byte [ebx + ecx + 0x12]
mov ebx, esi
ror ebx, 6
shl ecx, 8
or edx, ecx
lea ecx, [eax + edx + 0x3956c25b]
mov eax, esi
ror eax, 0xb
xor eax, ebx
mov ebx, esi
ror ebx, 0x19
xor eax, ebx
mov ebx, esi
add ecx, eax
mov eax, esi
not eax
and ebx, ebp
and eax, edi
xor eax, ebx
mov ebx, dword [esp + 8]
add ecx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x7c], edx
and eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
and eax, ebx
xor edx, eax
mov eax, ebx
xor edx, dword [esp + 0x10]
ror eax, 0xd
ror ebx, 2
xor eax, ebx
mov ebx, dword [esp + 8]
ror ebx, 0x16
xor eax, ebx
add eax, edx
mov edx, dword [esp + 0xc]
add eax, ecx
add edx, ecx
mov dword [esp + 0x10], edx
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xc], eax
movzx edx, byte [ebx + ecx + 0x15]
movzx eax, byte [ebx + ecx + 0x14]
shl edx, 0x10
shl eax, 0x18
or eax, edx
movzx edx, byte [ebx + ecx + 0x17]
or eax, edx
movzx edx, byte [ebx + ecx + 0x16]
mov ebx, dword [esp + 0x10]
shl edx, 8
or eax, edx
lea ecx, [edi + eax + 0x59f111f1]
mov edi, ebx
mov dword [esp + 0x80], eax
mov eax, ebx
ror edi, 6
ror eax, 0xb
xor eax, edi
mov edi, ebx
ror edi, 0x19
xor eax, edi
mov edi, ebx
add ecx, eax
mov eax, ebx
not eax
and edi, esi
and eax, ebp
xor eax, edi
mov edi, dword [esp + 0xc]
add ecx, eax
mov eax, dword [esp + 8]
and eax, edi
mov ebx, eax
mov eax, dword [esp + 4]
mov dword [esp + 0x18], ebx
and eax, edi
mov edx, eax
mov eax, edi
ror eax, 0xd
xor edx, ebx
mov ebx, dword [esp + 0x24]
ror edi, 2
xor eax, edi
mov edi, dword [esp + 0xc]
xor edx, dword [esp + 0x14]
ror edi, 0x16
xor eax, edi
mov edi, dword [esp]
add eax, edx
add edi, ecx
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
movzx edx, byte [ebx + ecx + 0x19]
movzx eax, byte [ebx + ecx + 0x18]
shl edx, 0x10
shl eax, 0x18
or eax, edx
movzx edx, byte [ebx + ecx + 0x1b]
or eax, edx
movzx edx, byte [ebx + ecx + 0x1a]
shl edx, 8
or eax, edx
lea ecx, [ebp + eax - 0x6dc07d5c]
mov ebp, edi
ror ebp, 0xb
mov dword [esp + 0x84], eax
mov eax, ebp
mov ebp, edi
ror ebp, 6
xor eax, ebp
mov ebp, edi
ror ebp, 0x19
xor eax, ebp
mov ebp, edi
not ebp
add ecx, eax
mov eax, ebp
mov ebp, dword [esp + 0x10]
and eax, esi
and ebp, edi
xor eax, ebp
mov ebp, dword [esp]
add ecx, eax
mov eax, dword [esp + 0xc]
and eax, ebp
mov ebx, eax
mov eax, ebp
and ebp, dword [esp + 8]
mov dword [esp + 0x14], ebx
mov edx, ebp
mov ebp, eax
ror ebp, 2
xor edx, ebx
mov ebx, dword [esp + 0x24]
ror eax, 0xd
xor eax, ebp
mov ebp, dword [esp]
xor edx, dword [esp + 0x18]
ror ebp, 0x16
xor eax, ebp
mov ebp, dword [esp + 4]
add eax, edx
add eax, ecx
mov dword [esp + 4], eax
add ebp, ecx
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + ecx + 0x1c]
movzx edx, byte [ebx + ecx + 0x1d]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x1f]
or eax, edx
movzx edx, byte [ebx + ecx + 0x1e]
shl edx, 8
or eax, edx
mov dword [esp + 0x88], eax
lea ecx, [esi + eax - 0x54e3a12b]
mov eax, ebp
mov esi, ebp
ror esi, 6
ror eax, 0xb
xor eax, esi
mov esi, ebp
ror esi, 0x19
xor eax, esi
mov esi, ebp
add ecx, eax
mov eax, ebp
not eax
and esi, edi
and eax, dword [esp + 0x10]
xor eax, esi
mov esi, dword [esp + 4]
add ecx, eax
mov eax, dword [esp]
and eax, esi
mov ebx, eax
mov eax, esi
and esi, dword [esp + 0xc]
mov dword [esp + 0x18], ebx
mov edx, esi
mov esi, eax
ror esi, 2
xor edx, ebx
mov ebx, dword [esp + 0x24]
ror eax, 0xd
xor eax, esi
mov esi, dword [esp + 4]
xor edx, dword [esp + 0x14]
ror esi, 0x16
xor eax, esi
mov esi, dword [esp + 8]
add eax, edx
add eax, ecx
mov dword [esp + 8], eax
add esi, ecx
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + ecx + 0x20]
movzx edx, byte [ebx + ecx + 0x21]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x23]
or eax, edx
movzx edx, byte [ebx + ecx + 0x22]
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 8]
shl edx, 8
or eax, edx
mov edx, esi
mov dword [esp + 0x8c], eax
lea ecx, [ecx + eax - 0x27f85568]
mov eax, esi
ror edx, 6
ror eax, 0xb
xor eax, edx
mov edx, esi
ror edx, 0x19
xor eax, edx
mov edx, esi
add ecx, eax
mov eax, esi
not eax
and edx, ebp
and eax, edi
xor eax, edx
add ecx, eax
mov eax, dword [esp + 4]
and eax, ebx
mov dword [esp + 0x14], eax
mov eax, dword [esp]
mov edx, dword [esp + 0x14]
and eax, ebx
xor edx, eax
mov eax, ebx
ror eax, 0xd
ror ebx, 2
xor eax, ebx
mov ebx, dword [esp + 8]
xor edx, dword [esp + 0x18]
ror ebx, 0x16
xor eax, ebx
mov ebx, dword [esp + 0x24]
add eax, edx
mov edx, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
add edx, ecx
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x20]
movzx ecx, byte [ebx + edx + 0x24]
movzx eax, byte [ebx + edx + 0x25]
mov dword [esp + 0x30], ecx
shl eax, 0x10
shl dword [esp + 0x30], 0x18
or dword [esp + 0x30], eax
movzx eax, byte [ebx + edx + 0x27]
or dword [esp + 0x30], eax
movzx eax, byte [ebx + edx + 0x26]
mov ebx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
shl eax, 8
or dword [esp + 0x30], eax
mov eax, ebx
mov ecx, dword [esp + 0x30]
ror eax, 0xb
mov dword [esp + 0x90], ecx
lea ecx, [edi + ecx + 0x12835b01]
mov edi, ebx
ror edi, 6
xor eax, edi
mov edi, ebx
ror edi, 0x19
xor eax, edi
mov edi, ebx
add ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0x24]
not eax
and eax, ebp
and edi, esi
xor eax, edi
add ecx, eax
mov eax, dword [esp + 8]
and eax, edx
mov edi, eax
mov eax, edx
and edx, dword [esp + 4]
mov dword [esp + 0x1c], edi
xor edx, edi
mov edi, eax
ror edi, 2
ror eax, 0xd
xor eax, edi
mov edi, dword [esp + 0xc]
xor edx, dword [esp + 0x14]
ror edi, 0x16
xor eax, edi
mov edi, dword [esp]
add eax, edx
add eax, ecx
mov dword [esp + 0x18], eax
add edi, ecx
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + ecx + 0x28]
movzx edx, byte [ebx + ecx + 0x29]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x2b]
or eax, edx
movzx edx, byte [ebx + ecx + 0x2a]
shl edx, 8
or eax, edx
lea edx, [ebp + eax + 0x243185be]
mov ebp, edi
mov dword [esp + 0x94], eax
mov eax, edi
ror ebp, 6
ror eax, 0xb
xor eax, ebp
mov ebp, edi
ror ebp, 0x19
xor eax, ebp
mov ebp, edi
not ebp
add eax, edx
mov edx, ebp
mov ebp, dword [esp + 0x10]
and edx, esi
and ebp, edi
xor edx, ebp
mov ebp, dword [esp + 0xc]
add eax, edx
mov edx, dword [esp + 0x18]
and ebp, edx
mov ebx, ebp
mov ebp, dword [esp + 8]
mov dword [esp + 0x14], ebx
and ebp, edx
mov ecx, ebp
mov ebp, edx
xor ecx, ebx
mov ebx, ebp
xor ecx, dword [esp + 0x1c]
ror ebx, 2
ror edx, 0xd
xor edx, ebx
mov ebx, dword [esp + 0x24]
ror ebp, 0x16
xor edx, ebp
mov ebp, dword [esp + 4]
add edx, ecx
mov ecx, dword [esp + 0x20]
add ebp, eax
add eax, edx
mov dword [esp], eax
movzx edx, byte [ebx + ecx + 0x2d]
movzx eax, byte [ebx + ecx + 0x2c]
shl edx, 0x10
shl eax, 0x18
or eax, edx
movzx edx, byte [ebx + ecx + 0x2f]
or eax, edx
movzx edx, byte [ebx + ecx + 0x2e]
shl edx, 8
or eax, edx
mov dword [esp + 0x98], eax
lea ecx, [esi + eax + 0x550c7dc3]
mov eax, ebp
mov esi, ebp
ror esi, 6
ror eax, 0xb
xor eax, esi
mov esi, ebp
ror esi, 0x19
xor eax, esi
mov esi, ebp
add ecx, eax
mov eax, ebp
not eax
and esi, edi
and eax, dword [esp + 0x10]
xor eax, esi
mov esi, dword [esp]
add ecx, eax
mov eax, dword [esp + 0x18]
and eax, esi
mov ebx, eax
mov eax, esi
and esi, dword [esp + 0xc]
mov dword [esp + 0x1c], ebx
mov edx, esi
mov esi, eax
ror esi, 2
xor edx, ebx
mov ebx, dword [esp + 0x24]
ror eax, 0xd
xor eax, esi
mov esi, dword [esp]
xor edx, dword [esp + 0x14]
ror esi, 0x16
xor eax, esi
mov esi, dword [esp + 8]
add eax, edx
add eax, ecx
mov dword [esp + 4], eax
add esi, ecx
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + ecx + 0x30]
movzx edx, byte [ebx + ecx + 0x31]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x33]
or eax, edx
movzx edx, byte [ebx + ecx + 0x32]
mov ebx, dword [esp + 0x10]
shl edx, 8
or eax, edx
mov edx, esi
lea ecx, [ebx + eax + 0x72be5d74]
mov ebx, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov eax, esi
ror edx, 6
ror eax, 0xb
xor eax, edx
mov edx, esi
ror edx, 0x19
xor eax, edx
mov edx, esi
add ecx, eax
mov eax, esi
not eax
and edx, ebp
and eax, edi
xor eax, edx
add ecx, eax
mov eax, dword [esp]
and eax, ebx
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 8]
and eax, ebx
xor edx, eax
mov eax, ebx
ror eax, 0xd
ror ebx, 2
xor eax, ebx
mov ebx, dword [esp + 4]
xor edx, dword [esp + 0x1c]
ror ebx, 0x16
xor eax, ebx
mov ebx, dword [esp + 0xc]
add eax, edx
add eax, ecx
mov dword [esp + 0x10], eax
lea edx, [ecx + ebx]
mov ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], edx
movzx eax, byte [ebx + ecx + 0x34]
movzx edx, byte [ebx + ecx + 0x35]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x37]
or eax, edx
movzx edx, byte [ebx + ecx + 0x36]
shl edx, 8
or eax, edx
mov dword [esp + 0xa0], eax
mov ebx, dword [esp + 0x14]
lea ecx, [edi + eax - 0x7f214e02]
mov edi, ebx
ror edi, 0xb
mov eax, edi
mov edi, ebx
ror edi, 6
xor eax, edi
mov edi, ebx
ror edi, 0x19
xor eax, edi
mov edi, ebx
not edi
add ecx, eax
mov eax, edi
mov edi, ebx
mov ebx, dword [esp + 0x10]
and edi, esi
and eax, ebp
xor eax, edi
mov edi, dword [esp + 4]
add ecx, eax
and edi, ebx
mov eax, edi
mov edi, dword [esp]
mov dword [esp + 0xc], eax
and edi, ebx
mov edx, edi
mov edi, ebx
ror edi, 0xd
xor edx, eax
mov eax, edi
mov edi, ebx
mov ebx, dword [esp + 0x18]
ror edi, 2
xor eax, edi
mov edi, dword [esp + 0x10]
xor edx, dword [esp + 8]
add ebx, ecx
mov dword [esp + 0x18], ebx
ror edi, 0x16
xor eax, edi
add eax, edx
mov edx, dword [esp + 0x24]
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], eax
movzx edi, byte [edx + ecx + 0x38]
movzx eax, byte [edx + ecx + 0x39]
shl edi, 0x18
shl eax, 0x10
or edi, eax
movzx eax, byte [edx + ecx + 0x3b]
or edi, eax
movzx eax, byte [edx + ecx + 0x3a]
mov ecx, dword [esp + 4]
shl eax, 8
or edi, eax
lea edx, [ebp + edi - 0x6423f959]
mov ebp, ebx
ror ebp, 0xb
mov eax, ebp
mov ebp, ebx
ror ebp, 6
xor eax, ebp
mov ebp, ebx
ror ebp, 0x19
xor eax, ebp
mov ebp, ebx
not ebp
add edx, eax
mov eax, ebp
mov ebp, dword [esp + 0x14]
and eax, esi
mov dword [esp + 0xa4], edi
and ebp, ebx
mov ebx, dword [esp + 8]
xor eax, ebp
mov ebp, dword [esp + 0x10]
add edx, eax
mov eax, ebx
and ecx, ebx
and ebp, ebx
ror eax, 0xd
xor ecx, ebp
ror ebx, 2
xor eax, ebx
mov ebx, dword [esp + 8]
xor ecx, dword [esp + 0xc]
ror ebx, 0x16
xor eax, ebx
mov ebx, dword [esp]
add eax, ecx
add eax, edx
mov dword [esp], eax
lea ecx, [edx + ebx]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x20]
movzx eax, byte [ebx + ecx + 0x3c]
movzx edx, byte [ebx + ecx + 0x3d]
shl eax, 0x18
shl edx, 0x10
or eax, edx
movzx edx, byte [ebx + ecx + 0x3f]
or eax, edx
movzx edx, byte [ebx + ecx + 0x3e]
shl edx, 8
or eax, edx
lea edx, [esi + eax - 0x3e640e8c]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xa8], eax
mov ecx, esi
mov eax, esi
ror ecx, 6
ror eax, 0xb
xor eax, ecx
mov ecx, esi
ror ecx, 0x19
xor eax, ecx
mov ecx, dword [esp + 0x18]
add eax, edx
mov edx, esi
not edx
and edx, dword [esp + 0x14]
and ecx, esi
mov esi, dword [esp + 0x10]
xor esi, dword [esp + 8]
xor edx, ecx
add eax, edx
mov edx, dword [esp]
and esi, edx
xor esi, ebp
mov ebp, edx
ror ebp, 0xd
mov ebx, ebp
mov ebp, edx
ror edx, 2
xor ebx, edx
mov edx, ebp
ror edx, 0x16
xor ebx, edx
mov edx, dword [esp + 4]
add ebx, esi
lea ebp, [eax + edx]
add eax, ebx
mov dword [esp + 0xc], ebp
mov ebx, dword [esp + 0x30]
mov ebp, 0x11
mov dword [esp + 4], eax
mov esi, dword [esp + 0x28]
mov eax, 0x10
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x38], 0x1d
mov dword [esp + 0x40], 0x1e
jmp 0x4675fa
lea ebp, [eax + 1]
mov esi, dword [esp + esi*4 + 0x6c]
mov edx, ebp
lea edi, [eax + 0xe]
and edx, 0xf
mov ecx, dword [esp + edx*4 + 0x6c]
mov edx, edi
and edx, 0xf
mov dword [esp + 0x40], edi
mov edi, dword [esp + edx*4 + 0x6c]
lea edx, [eax + 9]
and edx, 0xf
mov ebx, dword [esp + edx*4 + 0x6c]
mov edx, eax
and ebp, 0xf
and edx, 0xf
mov dword [esp + 0x30], ebp
mov ebp, edi
mov dword [esp + 0x28], edx
mov edx, edi
ror edx, 0x11
ror ebp, 0x13
xor ebp, edx
shr edi, 0xa
xor ebp, edi
mov edi, ecx
ror edi, 0x12
mov edx, edi
mov edi, ecx
ror edi, 7
xor edx, edi
shr ecx, 3
xor edx, ecx
add edx, ebp
mov ebp, dword [esp + 0x10]
add edx, esi
mov esi, dword [esp + 0xc]
add ebx, edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov edi, esi
mov ecx, esi
mov dword [esp + edx*4 + 0x6c], ebx
mov edx, esi
not ecx
ror edx, 6
ror edi, 0xb
xor edi, edx
mov edx, esi
ror edx, 0x19
xor edi, edx
mov edx, dword [esp + 0x1c]
and ecx, dword [esp + 0x18]
and edx, esi
mov esi, dword [esp + 4]
xor ecx, edx
mov edx, dword [esp + 8]
add ecx, edi
mov edi, dword [esp]
add ecx, dword [eax*4 + 0x4d1760]
add ebx, ecx
mov ecx, edx
xor ecx, edi
and edx, edi
and ecx, esi
mov edi, esi
xor ecx, edx
mov edx, esi
ror edx, 0xd
ror esi, 2
add ebx, dword [esp + 0x14]
xor edx, esi
mov esi, edi
ror esi, 0x16
xor edx, esi
add ebp, ebx
add edx, ecx
mov dword [esp + 0x10], ebp
lea ebp, [edx + ebx]
mov dword [esp + 0x14], ebp
lea ebp, [eax + 2]
and ebp, 0xf
mov edi, dword [esp + ebp*4 + 0x6c]
mov ecx, edi
mov ebx, edi
ror ebx, 7
ror ecx, 0x12
xor ecx, ebx
lea ebx, [eax + 0xf]
mov dword [esp + 0x2c], ebx
shr edi, 3
and dword [esp + 0x2c], 0xf
xor ecx, edi
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + ebx*4 + 0x6c]
mov ebx, esi
ror ebx, 0x13
mov edx, ebx
mov ebx, esi
ror ebx, 0x11
xor edx, ebx
lea ebx, [eax + 0xa]
mov eax, dword [esp + 0x30]
and ebx, 0xf
mov ebx, dword [esp + ebx*4 + 0x6c]
shr esi, 0xa
xor edx, esi
add ebx, dword [esp + eax*4 + 0x6c]
add ecx, ebx
mov ebx, dword [esp + 0x18]
add ecx, edx
mov dword [esp + eax*4 + 0x6c], ecx
mov eax, dword [esp + 0x34]
add ebx, dword [eax*4 + 0x4d1764]
mov edx, ebx
mov ebx, edi
ror ebx, 0xb
add edx, ecx
mov esi, ebx
mov ebx, edi
ror ebx, 6
mov ecx, edi
xor esi, ebx
mov ebx, edi
ror ecx, 0x19
not ebx
xor esi, ecx
add edx, esi
mov esi, dword [esp + 0x1c]
and esi, ebx
mov ebx, dword [esp + 0xc]
and ebx, edi
mov edi, dword [esp + 0x14]
xor esi, ebx
add edx, esi
mov esi, dword [esp + 4]
mov ebx, edi
and ebx, esi
mov dword [esp + 0x30], ebx
mov ecx, dword [esp]
mov ebx, edi
and ebx, ecx
and ecx, esi
xor ebx, dword [esp + 0x30]
mov esi, edi
ror edi, 0xd
xor ebx, ecx
mov ecx, edi
mov edi, esi
ror esi, 2
xor ecx, esi
mov esi, edi
mov edi, dword [esp + 8]
ror esi, 0x16
xor ecx, esi
add ecx, ebx
add edi, edx
add edx, ecx
mov dword [esp + 8], edi
lea edi, [eax + 3]
and edi, 0xf
mov ebx, dword [esp + edi*4 + 0x6c]
mov dword [esp + 0x18], edx
mov ecx, ebx
mov edx, ebx
ror ecx, 7
ror edx, 0x12
xor edx, ecx
mov ecx, ebx
shr ecx, 3
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
xor edx, dword [esp + 0x34]
mov esi, dword [esp + ecx*4 + 0x6c]
mov ecx, esi
mov ebx, esi
shr esi, 0xa
ror ebx, 0x11
mov dword [esp + 0x3c], esi
ror ecx, 0x13
lea esi, [eax + 0xb]
xor ecx, ebx
mov ebx, dword [esp + ebp*4 + 0x6c]
and esi, 0xf
add ebx, dword [esp + esi*4 + 0x6c]
xor ecx, dword [esp + 0x3c]
add ecx, ebx
mov ebx, dword [esp + 8]
add ecx, edx
mov edx, dword [esp + 0x1c]
mov dword [esp + ebp*4 + 0x6c], ecx
add edx, dword [eax*4 + 0x4d1768]
mov ebp, ebx
ror ebp, 0xb
mov esi, ebp
mov ebp, ebx
ror ebp, 6
add edx, ecx
mov ecx, dword [esp + 0x18]
xor esi, ebp
mov ebp, ebx
ror ebp, 0x19
xor esi, ebp
mov ebp, ebx
add edx, esi
mov esi, dword [esp + 0xc]
not ebp
and esi, ebp
mov ebp, dword [esp + 0x10]
and ebp, ebx
xor esi, ebp
mov ebp, dword [esp + 0x14]
add edx, esi
and ebp, ecx
mov esi, ebp
mov ebp, ecx
and ecx, dword [esp + 4]
mov dword [esp + 0x34], esi
mov ebx, ecx
mov ecx, ebp
xor ebx, esi
mov esi, ebp
ror esi, 2
ror ecx, 0xd
xor ebx, dword [esp + 0x30]
xor ecx, esi
mov esi, ebp
ror esi, 0x16
xor ecx, esi
add ecx, ebx
mov ebx, dword [esp]
lea ebp, [eax + 4]
add ecx, edx
and ebp, 0xf
mov dword [esp], ecx
add ebx, edx
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + ebp*4 + 0x6c]
mov ecx, ebx
mov edx, ebx
ror edx, 7
ror ecx, 0x12
xor ecx, edx
mov edx, ebx
shr edx, 3
mov dword [esp + 0x30], edx
lea edx, [eax + 0x11]
and edx, 0xf
mov esi, dword [esp + edx*4 + 0x6c]
xor ecx, dword [esp + 0x30]
mov edx, esi
mov ebx, esi
ror ebx, 0x11
ror edx, 0x13
xor edx, ebx
lea ebx, [eax + 0xc]
and ebx, 0xf
mov ebx, dword [esp + ebx*4 + 0x6c]
shr esi, 0xa
add ebx, dword [esp + edi*4 + 0x6c]
add ecx, ebx
xor edx, esi
add ecx, edx
mov dword [esp + edi*4 + 0x6c], ecx
mov ebx, dword [esp + 0x1c]
mov edx, dword [esp + 0xc]
add edx, dword [eax*4 + 0x4d176c]
mov edi, ebx
add edx, ecx
mov ecx, ebx
ror edi, 0xb
ror ecx, 6
mov esi, edi
mov edi, dword [esp + 0x18]
xor esi, ecx
mov ecx, ebx
ror ecx, 0x19
xor esi, ecx
mov ecx, ebx
add edx, esi
mov esi, dword [esp + 0x10]
not ebx
and ecx, dword [esp + 8]
and esi, ebx
mov ebx, dword [esp]
xor esi, ecx
add edx, esi
mov esi, dword [esp + 4]
and edi, ebx
mov ecx, edi
mov edi, ebx
and ebx, dword [esp + 0x14]
add esi, edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc], esi
xor ebx, ecx
mov ecx, edi
ror ecx, 0xd
ror edi, 2
xor ecx, edi
mov edi, dword [esp]
xor ebx, dword [esp + 0x34]
mov dword [esp + 0x34], eax
ror edi, 0x16
xor ecx, edi
lea edi, [eax + 5]
add ecx, ebx
and edi, 0xf
add edx, ecx
mov esi, dword [esp + edi*4 + 0x6c]
mov dword [esp + 4], edx
mov edx, esi
ror edx, 0x12
mov ecx, edx
mov edx, esi
ror edx, 7
xor ecx, edx
lea edx, [eax + 0x12]
and edx, 0xf
mov ebx, dword [esp + edx*4 + 0x6c]
shr esi, 3
mov edx, ebx
mov eax, ebx
ror edx, 0x13
ror eax, 0x11
xor ecx, esi
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x38]
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x34]
and ebx, 0xf
mov ebx, dword [esp + ebx*4 + 0x6c]
add ebx, dword [esp + ebp*4 + 0x6c]
add ecx, ebx
mov ebx, dword [esp + 0xc]
add ecx, edx
mov edx, dword [esp + 0x10]
add edx, dword [eax*4 + 0x4d1770]
mov dword [esp + ebp*4 + 0x6c], ecx
mov ebp, dword [esp + 4]
mov esi, ebx
add edx, ecx
mov ecx, ebx
ror ecx, 6
ror esi, 0xb
xor esi, ecx
mov ecx, ebx
ror ecx, 0x19
xor esi, ecx
mov ecx, dword [esp + 0x1c]
add edx, esi
mov esi, ebx
not esi
and esi, dword [esp + 8]
and ecx, ebx
mov ebx, dword [esp]
xor esi, ecx
add edx, esi
and ebx, ebp
mov ecx, ebx
mov ebx, ebp
and ebp, dword [esp + 0x18]
mov dword [esp + 0x34], ecx
mov esi, ebp
mov ebp, ebx
ror ebp, 2
xor esi, ecx
ror ebx, 0xd
xor ebx, ebp
mov ebp, dword [esp + 4]
xor esi, dword [esp + 0x30]
ror ebp, 0x16
xor ebx, ebp
add ebx, esi
mov esi, dword [esp + 0x14]
lea ebp, [eax + 6]
add esi, edx
add edx, ebx
and ebp, 0xf
mov dword [esp + 0x14], esi
mov esi, dword [esp + ebp*4 + 0x6c]
mov dword [esp + 0x10], edx
mov dword [esp + 0x30], eax
mov edx, esi
ror edx, 0x12
mov ecx, edx
mov edx, esi
ror edx, 7
xor ecx, edx
lea edx, [eax + 0x13]
and edx, 0xf
mov ebx, dword [esp + edx*4 + 0x6c]
shr esi, 3
xor ecx, esi
mov edx, ebx
mov eax, ebx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x40]
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x30]
and ebx, 0xf
mov ebx, dword [esp + ebx*4 + 0x6c]
add ebx, dword [esp + edi*4 + 0x6c]
add ecx, ebx
add ecx, edx
mov dword [esp + edi*4 + 0x6c], ecx
mov edi, dword [esp + 8]
add ecx, dword [eax*4 + 0x4d1774]
lea ebx, [ecx + edi]
mov ecx, dword [esp + 0x14]
mov edi, ecx
mov edx, ecx
ror edi, 0xb
ror edx, 6
mov esi, edi
mov edi, ecx
xor esi, edx
mov edx, dword [esp + 0xc]
ror edi, 0x19
xor esi, edi
mov edi, dword [esp + 4]
add ebx, esi
mov esi, ecx
not esi
and edx, ecx
and esi, dword [esp + 0x1c]
xor esi, edx
mov edx, dword [esp + 0x10]
add ebx, esi
mov esi, dword [esp]
and edi, edx
and esi, edx
mov ecx, esi
xor ecx, edi
mov dword [esp + 0x30], edi
mov edi, edx
mov esi, edi
ror esi, 2
ror edx, 0xd
xor ecx, dword [esp + 0x34]
xor edx, esi
mov esi, edi
ror esi, 0x16
xor edx, esi
mov esi, dword [esp + 0x18]
lea edi, [eax + 7]
add edx, ecx
and edi, 0xf
mov dword [esp + 0x34], eax
lea ecx, [ebx + esi]
mov esi, dword [esp + edi*4 + 0x6c]
add ebx, edx
mov dword [esp + 0x18], ecx
mov dword [esp + 8], ebx
mov edx, esi
ror edx, 0x12
mov ecx, edx
mov edx, esi
ror edx, 7
xor ecx, edx
lea edx, [eax + 0x14]
and edx, 0xf
mov ebx, dword [esp + edx*4 + 0x6c]
shr esi, 3
xor ecx, esi
mov edx, ebx
mov eax, ebx
ror eax, 0x11
ror edx, 0x13
xor edx, eax
mov eax, ebx
mov ebx, dword [esp + 0x2c]
shr eax, 0xa
xor edx, eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + ebx*4 + 0x6c]
add ebx, dword [esp + ebp*4 + 0x6c]
add ecx, ebx
mov ebx, dword [esp + 0x1c]
add ecx, edx
mov dword [esp + ebp*4 + 0x6c], ecx
mov ebp, dword [esp + 0x10]
add ecx, dword [eax*4 + 0x4d1778]
add ebx, ecx
mov ecx, dword [esp + 0x18]
mov edx, ecx
ror edx, 0xb
mov esi, edx
mov edx, ecx
ror edx, 6
xor esi, edx
mov edx, ecx
ror edx, 0x19
xor esi, edx
mov edx, ecx
add ebx, esi
mov esi, dword [esp + 0xc]
not ecx
and edx, dword [esp + 0x14]
and esi, ecx
mov ecx, dword [esp + 4]
xor esi, edx
add ebx, esi
mov esi, dword [esp + 8]
and ebp, esi
and ecx, esi
mov dword [esp + 0x2c], ebp
xor ecx, ebp
mov ebp, esi
ror esi, 0xd
add eax, 8
mov edx, esi
mov esi, ebp
ror esi, 2
xor edx, esi
mov esi, ebp
ror esi, 0x16
xor ecx, dword [esp + 0x30]
xor edx, esi
mov esi, dword [esp]
add edx, ecx
lea ecx, [ebx + esi]
add ebx, edx
mov dword [esp], ebx
mov ebx, eax
and ebx, 0xf
mov esi, ebx
mov ebx, dword [esp + ebx*4 + 0x6c]
mov dword [esp + 0x1c], ecx
mov edx, ebx
mov ebp, ebx
shr ebx, 3
mov dword [esp + 0x30], ebx
lea ebx, [eax + 0xd]
mov dword [esp + 0x38], ebx
and ebx, 0xf
mov ebx, dword [esp + ebx*4 + 0x6c]
ror ebp, 7
ror edx, 0x12
xor edx, ebp
xor edx, dword [esp + 0x30]
mov ecx, ebx
mov ebp, ebx
ror ebp, 0x11
ror ecx, 0x13
xor ecx, ebp
mov ebp, dword [esp + 0x28]
add edx, dword [esp + edi*4 + 0x6c]
shr ebx, 0xa
xor ecx, ebx
add edx, dword [esp + ebp*4 + 0x6c]
mov ebp, dword [esp + 0x1c]
add edx, ecx
mov dword [esp + edi*4 + 0x6c], edx
mov ebx, ebp
mov edi, ebp
ror edi, 6
mov ecx, ebp
add edx, dword [eax*4 + 0x4d175c]
ror ebx, 0xb
add edx, dword [esp + 0xc]
xor ebx, edi
ror ecx, 0x19
mov edi, ebp
xor ebx, ecx
mov ecx, dword [esp + 0x10]
add edx, ebx
mov ebx, ebp
mov ebp, dword [esp]
and edi, dword [esp + 0x18]
not ebx
and ebx, dword [esp + 0x14]
xor ecx, dword [esp + 8]
xor ebx, edi
mov edi, ebp
add ebx, edx
mov edx, ebp
ror edi, 2
and ecx, ebp
ror edx, 0xd
xor edx, edi
mov edi, ebp
mov ebp, dword [esp + 4]
xor ecx, dword [esp + 0x2c]
ror edi, 0x16
xor edx, edi
add edx, ecx
cmp eax, 0x40
lea edi, [ebx + ebp]
mov dword [esp + 0xc], edi
lea edi, [edx + ebx]
mov dword [esp + 4], edi
jne 0x4675d0
mov eax, dword [esp + 4]
add eax, dword [esp + 0x44]
mov esi, dword [esp + 0x10]
add esi, dword [esp + 0x5c]
mov edi, eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], edi
mov edx, dword [esp]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0xc]
mov dword [eax], edi
mov edi, esi
mov dword [eax + 0xc], esi
mov esi, dword [esp + 0x1c]
add esi, dword [esp + 0x50]
sub dword [esp + 0x64], 1
add edx, dword [esp + 0x48]
mov ecx, esi
mov dword [esp + 0x50], esi
mov esi, dword [esp + 0x14]
mov dword [eax + 0x14], ecx
mov ecx, dword [esp + 0x18]
add ebx, dword [esp + 0x54]
add ebp, dword [esp + 0x4c]
add ecx, dword [esp + 0x58]
add esi, dword [esp + 0x60]
add dword [esp + 0x20], 0x40
cmp dword [esp + 0x64], 0xffffffff
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0x10], ebp
mov dword [eax + 0x18], ecx
mov dword [eax + 0x1c], esi
je 0x467d20
mov dword [esp + 0x5c], edi
mov edi, dword [esp + 4]
mov dword [esp + 0x60], esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x54], ebx
mov dword [esp + 0x48], edx
mov dword [esp + 0x44], edi
jmp 0x466b90
add esp, 0xac
pop ebx
pop esi
pop edi
pop ebp
ret