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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xa8
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x4f80dd
mov eax, dword [esp + 0x90]
mov esi, dword [eax]
mov dword [esp + 0x2c], esi
mov esi, dword [eax + 4]
mov dword [esp + 0x34], esi
mov esi, dword [eax + 8]
mov dword [esp + 0x44], esi
mov esi, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
mov ebp, dword [eax + 0x14]
mov dword [esp + 0x30], ebp
mov ebp, dword [eax + 0x18]
mov ebx, dword [eax + 0x1c]
nop
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x40], esi
mov dword [esp + 0x20], edx
mov dword [esp + 0x98], ecx
mov eax, dword [edx]
bswap eax
mov dword [esp + 0x50], eax
mov ecx, edi
rol ecx, 0x1a
mov edx, edi
rol edx, 0x15
mov esi, edi
rol esi, 7
xor edx, ecx
xor esi, edx
mov edx, dword [esp + 0x30]
and edx, edi
add edx, esi
mov ecx, edi
not ecx
and ecx, ebp
mov dword [esp + 0x94], ebx
add edx, ebx
add edx, ecx
lea ecx, [edx + eax]
mov dword [esp], ecx
add eax, edx
add eax, 0x428a2f98
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x2c]
mov esi, ecx
rol esi, 0x1e
mov ebp, edi
mov dword [esp + 0x48], edi
mov edi, ecx
rol edi, 0x13
mov edx, ecx
rol edx, 0xa
xor edi, esi
xor edx, edi
mov ebx, dword [esp + 0x34]
mov esi, ebx
and esi, ecx
mov dword [esp + 0xc], esi
mov eax, dword [esp + 0x44]
mov edi, eax
and edi, ecx
xor edi, esi
and eax, ebx
xor eax, edi
add eax, edx
add eax, dword [esp + 4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov ecx, dword [esp]
lea edi, [eax + ecx]
add edi, 0x428a2f98
mov dword [esp], edi
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 4]
bswap eax
mov ecx, edi
rol ecx, 0x1a
mov edx, edi
rol edx, 0x15
mov dword [esp + 0x54], eax
xor edx, ecx
mov ecx, edi
rol ecx, 7
xor ecx, edx
mov edx, edi
and edx, ebp
not edi
and edi, dword [esp + 0x30]
add eax, dword [esp + 0x3c]
add eax, edi
mov ebp, dword [esp + 4]
mov edi, ebp
rol edi, 0x1e
add eax, edx
mov edx, ebx
mov ebx, ebp
rol ebx, 0x13
lea esi, [eax + ecx]
mov dword [esp + 0x18], esi
add ecx, eax
add ecx, 0x71374491
xor ebx, edi
mov eax, ebp
rol eax, 0xa
xor eax, ebx
mov ebx, ebp
and ebx, edx
xor ebx, dword [esp + 0xc]
mov edi, ebp
and edi, dword [esp + 0x2c]
xor ebx, edi
add ebx, eax
add ebx, ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x18]
lea esi, [eax + ecx]
add esi, 0x71374491
mov dword [esp + 0x18], esi
mov eax, esi
rol eax, 0x1a
mov edx, esi
rol edx, 0x15
xor edx, eax
mov ecx, esi
rol ecx, 7
xor ecx, edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
bswap eax
mov dword [esp + 0x58], eax
mov edx, esi
not edx
and edx, dword [esp + 0x48]
add eax, dword [esp + 0x30]
add eax, edx
mov edx, esi
and edx, dword [esp]
add eax, edx
mov esi, ebx
rol esi, 0x1e
lea edx, [eax + ecx]
mov dword [esp + 8], edx
lea edx, [ecx + eax]
add edx, 0xb5c0fbcf
mov dword [esp + 0xc], ebx
mov eax, ebx
rol eax, 0x13
xor eax, esi
mov ebp, ebx
rol ebp, 0xa
xor ebp, eax
mov eax, ebx
and eax, dword [esp + 0x2c]
xor eax, edi
and ebx, dword [esp + 4]
mov dword [esp + 0x1c], ebx
xor eax, ebx
add eax, ebp
add eax, edx
mov ebx, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 8]
add ecx, eax
add ecx, 0xb5c0fbcf
mov dword [esp + 8], ecx
mov eax, ecx
rol eax, 0x1a
mov edi, ecx
rol edi, 0x15
mov edx, ecx
rol edx, 7
xor edi, eax
xor edx, edi
mov eax, dword [esp + 0x20]
mov edi, dword [eax + 0xc]
bswap edi
mov dword [esp + 0x5c], edi
mov eax, ecx
not eax
and eax, dword [esp]
add edi, dword [esp + 0x48]
add edi, eax
mov eax, ecx
and eax, dword [esp + 0x18]
mov esi, ebx
rol esi, 0x1e
add edi, eax
mov ecx, ebx
rol ecx, 0x13
lea eax, [edi + edx]
mov dword [esp + 0x10], eax
lea eax, [edx + edi]
add eax, 0xe9b5dba5
xor ecx, esi
mov esi, ebx
rol esi, 0xa
xor esi, ecx
mov dword [esp + 0x14], ebx
mov edi, ebx
and edi, dword [esp + 4]
xor edi, dword [esp + 0x1c]
mov edx, ebx
mov ebp, dword [esp + 0xc]
and edx, ebp
xor edi, edx
add edi, esi
add edi, eax
mov ecx, dword [esp + 0x2c]
mov eax, dword [esp + 0x10]
lea ebx, [ecx + eax]
add ebx, 0xe9b5dba5
mov dword [esp + 0x10], ebx
mov eax, ebx
rol eax, 0x1a
mov ecx, ebx
rol ecx, 0x15
xor ecx, eax
mov eax, ebx
rol eax, 7
xor eax, ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x10]
bswap ecx
mov dword [esp + 0x60], ecx
add ecx, dword [esp]
mov esi, ebx
not esi
and esi, dword [esp + 0x18]
add ecx, esi
mov esi, ebx
and esi, dword [esp + 8]
add ecx, esi
lea ebx, [eax + ecx]
add ebx, 0x3956c25b
mov eax, edi
rol eax, 0x1e
mov ecx, edi
rol ecx, 0x13
mov esi, edi
rol esi, 0xa
xor ecx, eax
xor esi, ecx
mov eax, edi
and eax, ebp
xor eax, edx
mov ebp, edi
and ebp, dword [esp + 0x14]
xor eax, ebp
add eax, esi
mov edx, eax
mov esi, dword [esp + 4]
add esi, ebx
mov dword [esp + 4], esi
mov eax, esi
rol eax, 0x1a
mov ecx, esi
rol ecx, 0x15
add edx, ebx
xor ecx, eax
mov ebx, esi
rol ebx, 7
xor ebx, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x14]
bswap eax
mov dword [esp + 0x64], eax
add eax, dword [esp + 0x18]
mov ecx, esi
not ecx
and ecx, dword [esp + 8]
add eax, ecx
mov ecx, esi
and ecx, dword [esp + 0x10]
add eax, ecx
mov dword [esp], edx
mov ecx, edx
rol ecx, 0x1e
add ebx, eax
add ebx, 0x59f111f1
mov eax, edx
rol eax, 0x13
xor eax, ecx
mov ecx, edx
rol ecx, 0xa
xor ecx, eax
mov eax, edx
and eax, dword [esp + 0x14]
xor eax, ebp
and edx, edi
xor eax, edx
add eax, ecx
mov ebp, dword [esp + 0xc]
add ebp, ebx
mov dword [esp + 0xc], ebp
add eax, ebx
mov ebx, eax
mov ecx, ebp
rol ecx, 0x1a
mov esi, ebp
rol esi, 0x15
mov eax, ebp
rol eax, 7
xor esi, ecx
xor eax, esi
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x18]
bswap ecx
mov dword [esp + 0x68], ecx
add ecx, dword [esp + 8]
mov esi, ebp
not esi
and esi, dword [esp + 0x10]
add ecx, esi
mov esi, ebp
and esi, dword [esp + 4]
add ecx, esi
lea ebp, [eax + ecx]
add ebp, 0x923f82a4
mov dword [esp + 0x1c], ebx
mov eax, ebx
rol eax, 0x1e
mov ecx, ebx
rol ecx, 0x13
xor ecx, eax
mov eax, ebx
rol eax, 0xa
xor eax, ecx
mov ecx, ebx
and ecx, edi
xor ecx, edx
mov edx, ebx
and edx, dword [esp]
xor ecx, edx
add ecx, eax
mov ebx, ecx
mov esi, dword [esp + 0x14]
add esi, ebp
mov dword [esp + 0x14], esi
mov eax, esi
rol eax, 0x1a
add ebx, ebp
mov ecx, esi
rol ecx, 0x15
xor ecx, eax
mov ebp, esi
rol ebp, 7
xor ebp, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [esp + 0x6c], eax
add eax, dword [esp + 0x10]
mov ecx, esi
not ecx
and ecx, dword [esp + 4]
add eax, ecx
mov ecx, esi
and ecx, dword [esp + 0xc]
add eax, ecx
mov ecx, ebx
rol ecx, 0x1e
mov esi, ebx
rol esi, 0x13
add ebp, eax
add ebp, 0xab1c5ed5
xor esi, ecx
mov eax, ebx
rol eax, 0xa
xor eax, esi
mov dword [esp + 8], ebx
mov ecx, ebx
and ecx, dword [esp]
xor ecx, edx
mov edx, ebx
and edx, dword [esp + 0x1c]
xor ecx, edx
add ecx, eax
add edi, ebp
add ecx, ebp
mov ebx, ecx
mov eax, edi
rol eax, 0x1a
mov ecx, edi
rol ecx, 0x15
xor ecx, eax
mov eax, edi
rol eax, 7
xor eax, ecx
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x20]
bswap ecx
mov dword [esp + 0x70], ecx
add ecx, dword [esp + 4]
mov esi, edi
not esi
and esi, dword [esp + 0xc]
add ecx, esi
mov esi, edi
and esi, dword [esp + 0x14]
add ecx, esi
lea ebp, [eax + ecx]
add ebp, 0xd807aa98
mov eax, ebx
rol eax, 0x1e
mov ecx, ebx
rol ecx, 0x13
mov esi, ebx
rol esi, 0xa
xor ecx, eax
xor esi, ecx
mov dword [esp + 0x10], ebx
mov eax, ebx
and eax, dword [esp + 0x1c]
xor eax, edx
and ebx, dword [esp + 8]
xor eax, ebx
add eax, esi
mov edx, eax
mov esi, dword [esp]
add esi, ebp
mov dword [esp], esi
mov eax, esi
rol eax, 0x1a
mov ecx, esi
rol ecx, 0x15
add edx, ebp
xor ecx, eax
mov ebp, esi
rol ebp, 7
xor ebp, ecx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x74], eax
add eax, dword [esp + 0xc]
mov ecx, esi
not ecx
and ecx, dword [esp + 0x14]
add eax, ecx
mov ecx, esi
and ecx, edi
add eax, ecx
mov ecx, edx
rol ecx, 0x1e
lea esi, [eax + ebp]
add esi, 0x12835b01
mov dword [esp + 0x18], edx
mov eax, edx
rol eax, 0x13
xor eax, ecx
mov ecx, edx
rol ecx, 0xa
xor ecx, eax
mov eax, edx
and eax, dword [esp + 8]
xor eax, ebx
and edx, dword [esp + 0x10]
mov dword [esp + 4], edx
xor eax, edx
add eax, ecx
mov ebx, dword [esp + 0x1c]
add ebx, esi
mov dword [esp + 0x1c], ebx
add eax, esi
mov ebp, eax
mov ecx, ebx
rol ecx, 0x1a
mov esi, ebx
rol esi, 0x15
mov edx, ebx
rol edx, 7
xor esi, ecx
xor edx, esi
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x28]
bswap ecx
mov dword [esp + 0x78], ecx
add ecx, dword [esp + 0x14]
mov esi, ebx
not esi
and esi, edi
add ecx, esi
mov esi, ebx
and esi, dword [esp]
add ecx, esi
add edx, ecx
add edx, 0x243185be
mov ecx, ebp
rol ecx, 0x1e
mov esi, ebp
rol esi, 0x13
xor esi, ecx
mov ecx, ebp
rol ecx, 0xa
xor ecx, esi
mov dword [esp + 0xc], ebp
mov ebx, ebp
and ebx, dword [esp + 0x10]
xor ebx, dword [esp + 4]
and ebp, dword [esp + 0x18]
mov dword [esp + 4], ebp
xor ebx, ebp
add ebx, ecx
mov ebp, dword [esp + 8]
add ebp, edx
mov ecx, ebp
rol ecx, 0x1a
add ebx, edx
mov esi, ebp
rol esi, 0x15
xor esi, ecx
mov edx, ebp
mov dword [esp + 8], ebp
rol edx, 7
xor edx, esi
mov esi, dword [eax + 0x2c]
bswap esi
mov dword [esp + 0x7c], esi
add esi, edi
mov ecx, ebp
not ecx
and ecx, dword [esp]
add esi, ecx
and ebp, dword [esp + 0x1c]
add esi, ebp
mov ecx, ebx
rol ecx, 0x1e
mov edi, ebx
rol edi, 0x13
add edx, esi
add edx, 0x550c7dc3
xor edi, ecx
mov ecx, ebx
rol ecx, 0xa
xor ecx, edi
mov esi, ebx
and esi, dword [esp + 0x18]
xor esi, dword [esp + 4]
mov eax, ebx
mov ebp, dword [esp + 0xc]
and eax, ebp
mov dword [esp + 0x14], eax
xor esi, eax
add esi, ecx
mov eax, dword [esp + 0x10]
add eax, edx
mov dword [esp + 0x10], eax
add esi, edx
mov edi, esi
mov ecx, eax
rol ecx, 0x1a
mov esi, eax
rol esi, 0x15
xor esi, ecx
mov edx, eax
rol edx, 7
xor edx, esi
mov ecx, dword [esp + 0x20]
mov ecx, dword [ecx + 0x30]
bswap ecx
mov dword [esp + 0x80], ecx
add ecx, dword [esp]
mov esi, eax
not esi
and esi, dword [esp + 0x1c]
add ecx, esi
mov esi, eax
and esi, dword [esp + 8]
add ecx, esi
add ecx, edx
add ecx, 0x72be5d74
mov eax, edi
mov dword [esp + 4], edi
mov edx, edi
rol edx, 0x1e
mov esi, edi
rol esi, 0x13
rol edi, 0xa
xor esi, edx
xor edi, esi
mov edx, eax
and edx, ebp
xor edx, dword [esp + 0x14]
and eax, ebx
mov dword [esp], eax
xor edx, eax
add edx, edi
mov ebp, edx
mov eax, dword [esp + 0x18]
add eax, ecx
mov dword [esp + 0x18], eax
mov edx, eax
rol edx, 0x1a
mov esi, eax
rol esi, 0x15
add ebp, ecx
xor esi, edx
mov ecx, eax
rol ecx, 7
xor ecx, esi
mov edi, dword [esp + 0x20]
mov edx, dword [edi + 0x34]
bswap edx
mov dword [esp + 0x84], edx
add edx, dword [esp + 0x1c]
mov esi, eax
not esi
and esi, dword [esp + 8]
add edx, esi
mov esi, eax
and esi, dword [esp + 0x10]
add edx, esi
mov eax, ebp
mov dword [esp + 0x14], ebp
mov esi, ebp
rol esi, 0x1e
add ecx, edx
add ecx, 0x80deb1fe
mov edx, ebp
rol edx, 0x13
xor edx, esi
mov esi, ebp
rol esi, 0xa
xor esi, edx
and ebp, ebx
xor ebp, dword [esp]
and eax, dword [esp + 4]
mov dword [esp], eax
xor ebp, eax
add ebp, esi
mov eax, dword [esp + 0xc]
add eax, ecx
mov dword [esp + 0xc], eax
add ebp, ecx
mov edx, eax
rol edx, 0x1a
mov esi, eax
rol esi, 0x15
mov ecx, eax
rol ecx, 7
xor esi, edx
xor ecx, esi
mov edx, dword [edi + 0x38]
bswap edx
mov dword [esp + 0x88], edx
add edx, dword [esp + 8]
mov esi, eax
not esi
and esi, dword [esp + 0x10]
add edx, esi
mov esi, eax
and esi, dword [esp + 0x18]
add edx, esi
add edx, ecx
add edx, 0x9bdc06a7
mov ecx, ebp
rol ecx, 0x1e
mov esi, ebp
rol esi, 0x13
xor esi, ecx
mov edi, ebp
rol edi, 0xa
xor edi, esi
mov eax, ebp
and eax, dword [esp + 4]
xor eax, dword [esp]
mov ecx, ebp
and ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
xor eax, ecx
add eax, edi
add ebx, edx
mov esi, ebx
rol esi, 0x1a
add eax, edx
mov edi, ebx
rol edi, 0x15
xor edi, esi
mov edx, ebx
rol edx, 7
xor edx, edi
mov ecx, dword [esp + 0x20]
mov esi, dword [ecx + 0x3c]
bswap esi
mov dword [esp + 0x8c], esi
add esi, dword [esp + 0x10]
mov edi, ebx
not edi
and edi, dword [esp + 0x18]
add esi, edi
mov dword [esp + 8], ebx
and ebx, dword [esp + 0xc]
add esi, ebx
mov edi, eax
rol edi, 0x1e
mov ebx, eax
rol ebx, 0x13
add edx, esi
add edx, 0xc19bf174
xor ebx, edi
mov esi, eax
rol esi, 0xa
xor esi, ebx
mov dword [esp], ebp
xor ebp, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
and ebp, eax
xor ebp, dword [esp + 0x28]
add ebp, esi
add dword [esp + 4], edx
add ebp, edx
mov eax, 0x10
nop word cs:[eax + eax]
nop
lea ecx, [eax + 1]
and ecx, 9
mov dword [esp + 0x24], ecx
mov edx, dword [esp + ecx*4 + 0x50]
mov dword [esp + 0xa0], edx
mov ecx, eax
mov eax, edx
rol eax, 0x19
mov esi, edx
rol esi, 0xe
xor esi, eax
mov eax, edx
shr eax, 3
xor eax, esi
mov edx, eax
lea eax, [ecx + 0xe]
and eax, 0xe
mov edi, dword [esp + eax*4 + 0x50]
mov ebx, edi
rol ebx, 0xf
mov eax, edi
mov dword [esp + 0x38], edi
rol eax, 0xd
xor eax, ebx
mov dword [esp + 0x10], ecx
lea esi, [ecx + 9]
and esi, 9
add edx, dword [esp + esi*4 + 0x50]
mov esi, edi
shr esi, 0xa
xor esi, eax
mov eax, ecx
and eax, 8
mov dword [esp + 0x28], eax
add edx, dword [esp + eax*4 + 0x50]
mov ebx, dword [esp + 4]
mov eax, ebx
rol eax, 0x1a
mov edi, ebx
rol edi, 0x15
add edx, esi
mov dword [esp + 0x4c], edx
xor edi, eax
mov eax, ebx
rol eax, 7
xor eax, edi
mov esi, dword [esp + 8]
and esi, ebx
add esi, eax
add esi, dword [esp + 0x18]
mov eax, ebx
not eax
and eax, dword [esp + 0xc]
mov edi, ebp
rol edi, 0x1e
add eax, esi
mov ebx, ebp
rol ebx, 0x13
xor ebx, edi
mov esi, ebp
rol esi, 0xa
xor esi, ebx
mov edx, dword [esp + 0x1c]
mov ecx, edx
mov dword [esp + 0x1c], edx
and ecx, ebp
mov dword [esp + 0x9c], ecx
mov ebx, dword [esp]
mov edi, ebx
mov dword [esp], ebx
and edi, ebp
xor edi, ecx
and ebx, edx
xor ebx, edi
add ebx, esi
mov ecx, dword [esp + 0x10]
add eax, dword [ecx*4 + 0x572560]
mov edx, dword [esp + 0x4c]
add eax, edx
add dword [esp + 0x14], eax
add ebx, eax
mov dword [esp + 0x18], ebx
mov eax, dword [esp + 0x28]
mov dword [esp + eax*4 + 0x50], edx
mov eax, dword [esp + eax*4 + 0x58]
mov esi, eax
rol esi, 0x19
mov edi, eax
rol edi, 0xe
xor edi, esi
shr eax, 3
xor eax, edi
lea esi, [ecx - 1]
mov edx, ecx
and esi, 0xf
mov ebx, dword [esp + esi*4 + 0x50]
mov esi, ebx
rol esi, 0xf
mov edi, ebx
mov dword [esp + 0xa4], ebx
rol edi, 0xd
xor edi, esi
lea esi, [ecx + 0xa]
and esi, 0xa
mov ecx, dword [esp + 0xa0]
add ecx, dword [esp + esi*4 + 0x50]
mov esi, ebx
shr esi, 0xa
xor esi, edi
add ecx, eax
add ecx, esi
mov eax, dword [esp + 0x24]
mov dword [esp + eax*4 + 0x50], ecx
mov ebx, dword [esp + 0x14]
mov eax, ebx
rol eax, 0x1a
mov edi, ebx
rol edi, 0x15
xor edi, eax
mov esi, ebx
rol esi, 7
xor esi, edi
mov eax, ebx
not eax
and eax, dword [esp + 8]
add eax, dword [esp + 0xc]
mov edi, ebx
and edi, dword [esp + 4]
add eax, edi
add eax, dword [edx*4 + 0x572564]
add eax, esi
mov ebx, dword [esp + 0x18]
mov esi, ebx
rol esi, 0x1e
mov edi, ebx
rol edi, 0x13
add eax, ecx
xor edi, esi
mov esi, ebx
rol esi, 0xa
xor esi, edi
mov edi, ebx
and edi, dword [esp + 0x1c]
xor edi, dword [esp + 0x9c]
and ebx, ebp
mov dword [esp + 0x24], ebx
xor edi, ebx
add edi, esi
mov edx, edi
mov ecx, dword [esp]
add ecx, eax
mov esi, dword [esp + 0x28]
mov esi, dword [esp + esi*4 + 0x5c]
mov edi, esi
rol edi, 0x19
mov ebx, esi
rol ebx, 0xe
add edx, eax
mov dword [esp + 0xc], edx
xor ebx, edi
shr esi, 3
xor esi, ebx
mov edx, dword [esp + 0x4c]
mov eax, edx
rol eax, 0xf
mov edi, edx
rol edi, 0xd
xor edi, eax
mov eax, edx
shr eax, 0xa
xor eax, edi
mov edx, dword [esp + 0x10]
lea edi, [edx + 0xb]
and edi, 0xb
add eax, dword [esp + edi*4 + 0x50]
lea edi, [edx + 2]
and edi, 0xa
add eax, dword [esp + edi*4 + 0x50]
add eax, esi
mov esi, ecx
rol esi, 0x1a
mov ebx, ecx
rol ebx, 0x15
mov dword [esp + edi*4 + 0x50], eax
xor ebx, esi
mov esi, ecx
mov edi, ecx
rol esi, 7
xor esi, ebx
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
add edx, dword [ecx*4 + 0x572568]
add edx, eax
mov dword [esp], edi
mov eax, edi
not eax
and eax, dword [esp + 4]
add edx, eax
mov eax, edi
and eax, dword [esp + 0x14]
add edx, eax
add edx, esi
mov ecx, edx
mov edx, dword [esp + 0xc]
mov eax, edx
rol eax, 0x1e
mov esi, edx
rol esi, 0x13
mov edi, edx
rol edi, 0xa
xor esi, eax
xor edi, esi
mov eax, edx
and eax, ebp
xor eax, dword [esp + 0x24]
and edx, dword [esp + 0x18]
mov dword [esp + 0x24], edx
xor eax, edx
add eax, edi
mov edx, dword [esp + 0x1c]
add edx, ecx
add ecx, eax
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + ecx*4 + 0x60]
mov esi, eax
rol esi, 0x19
mov edi, eax
rol edi, 0xe
xor edi, esi
shr eax, 3
xor eax, edi
mov esi, dword [esp + ecx*4 + 0x54]
mov ebx, esi
rol ebx, 0xf
mov edi, esi
rol edi, 0xd
xor edi, ebx
mov ecx, dword [esp + 0x10]
lea ebx, [ecx + 0xc]
and ebx, 0xc
add eax, dword [esp + ebx*4 + 0x50]
shr esi, 0xa
lea ebx, [ecx + 3]
and ebx, 0xb
add eax, dword [esp + ebx*4 + 0x50]
xor esi, edi
add eax, esi
mov esi, edx
rol esi, 0x1a
mov dword [esp + ebx*4 + 0x50], eax
mov edi, edx
rol edi, 0x15
xor edi, esi
mov esi, edx
mov ecx, edx
rol esi, 7
mov ebx, dword [esp + 4]
mov edx, dword [esp + 0x10]
add ebx, dword [edx*4 + 0x57256c]
xor esi, edi
add ebx, eax
mov dword [esp + 0x1c], ecx
mov eax, ecx
not eax
and eax, dword [esp + 0x14]
add ebx, eax
mov eax, ecx
and eax, dword [esp]
add ebx, eax
add ebx, esi
mov ecx, dword [esp + 8]
mov eax, ecx
rol eax, 0x1e
mov esi, ecx
rol esi, 0x13
xor esi, eax
mov eax, ecx
rol eax, 0xa
xor eax, esi
mov esi, ecx
and esi, dword [esp + 0x18]
xor esi, dword [esp + 0x24]
and ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
xor esi, ecx
add esi, eax
add ebp, ebx
add ebx, esi
mov dword [esp + 4], ebx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + ecx*4 + 0x64]
mov esi, eax
rol esi, 0x19
mov edi, eax
rol edi, 0xe
xor edi, esi
shr eax, 3
xor eax, edi
mov esi, dword [esp + ecx*4 + 0x58]
mov edi, esi
rol edi, 0xf
mov ebx, esi
rol ebx, 0xd
xor ebx, edi
shr esi, 0xa
xor esi, ebx
lea edi, [edx + 0xd]
and edi, 0xd
add eax, dword [esp + edi*4 + 0x50]
lea edi, [edx + 4]
and edi, 0xc
add eax, dword [esp + edi*4 + 0x50]
add eax, esi
mov esi, ebp
rol esi, 0x1a
mov ebx, ebp
rol ebx, 0x15
mov dword [esp + edi*4 + 0x50], eax
xor ebx, esi
mov esi, ebp
rol esi, 7
xor esi, ebx
mov ecx, dword [esp + 0x14]
add ecx, dword [edx*4 + 0x572570]
add ecx, eax
mov eax, ebp
not eax
and eax, dword [esp]
add ecx, eax
mov eax, ebp
and eax, dword [esp + 0x1c]
add ecx, eax
mov eax, ecx
add eax, esi
mov ecx, dword [esp + 4]
mov esi, ecx
rol esi, 0x1e
mov edi, ecx
rol edi, 0x13
mov ebx, ecx
rol ebx, 0xa
xor edi, esi
xor ebx, edi
mov edx, ecx
and edx, dword [esp + 0xc]
xor edx, dword [esp + 0x24]
and ecx, dword [esp + 8]
mov dword [esp + 0x24], ecx
xor edx, ecx
add edx, ebx
add dword [esp + 0x18], eax
add edx, eax
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + ecx*4 + 0x68]
mov esi, eax
rol esi, 0x19
mov edi, eax
rol edi, 0xe
xor edi, esi
shr eax, 3
xor eax, edi
mov esi, dword [esp + ecx*4 + 0x5c]
mov edi, esi
rol edi, 0xf
mov ebx, esi
rol ebx, 0xd
xor ebx, edi
shr esi, 0xa
mov ecx, dword [esp + 0x10]
lea edi, [ecx + 5]
and edi, 0xd
mov edx, dword [esp + 0x38]
add edx, dword [esp + edi*4 + 0x50]
xor esi, ebx
add edx, eax
add edx, esi
mov dword [esp + edi*4 + 0x50], edx
mov ebx, edx
mov edx, dword [esp + 0x18]
mov eax, edx
rol eax, 0x1a
mov edi, edx
rol edi, 0x15
xor edi, eax
mov esi, edx
mov eax, edx
rol esi, 7
xor esi, edi
mov edx, dword [esp]
add edx, dword [ecx*4 + 0x572574]
add edx, ebx
mov ecx, eax
not eax
and eax, dword [esp + 0x1c]
add edx, eax
mov eax, ecx
and eax, ebp
add edx, eax
mov eax, edx
mov ecx, dword [esp + 0x14]
mov edi, ecx
rol edi, 0x1e
mov ebx, ecx
rol ebx, 0x13
add eax, esi
xor ebx, edi
mov esi, ecx
rol esi, 0xa
xor esi, ebx
mov edx, ecx
and edx, dword [esp + 8]
xor edx, dword [esp + 0x24]
and ecx, dword [esp + 4]
mov dword [esp + 0x38], ecx
xor edx, ecx
add edx, esi
add dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + ecx*4 + 0x6c]
mov edi, esi
rol edi, 0x19
mov ebx, esi
rol ebx, 0xe
add edx, eax
mov dword [esp], edx
xor ebx, edi
shr esi, 3
mov edi, dword [esp + ecx*4 + 0x60]
mov ecx, edi
rol ecx, 0xf
mov eax, edi
rol eax, 0xd
xor esi, ebx
xor eax, ecx
shr edi, 0xa
xor edi, eax
mov ebx, dword [esp + 0x10]
lea eax, [ebx + 6]
and eax, 0xe
mov edx, dword [esp + 0xa4]
add edx, dword [esp + eax*4 + 0x50]
add edx, esi
add edx, edi
mov edi, dword [esp + 0xc]
mov ecx, edi
rol ecx, 0x1a
mov dword [esp + eax*4 + 0x50], edx
mov eax, edi
rol eax, 0x15
xor eax, ecx
mov esi, edi
rol esi, 7
mov ecx, dword [esp + 0x1c]
add ecx, dword [ebx*4 + 0x572578]
xor esi, eax
add ecx, edx
mov eax, edi
not eax
and eax, ebp
add ecx, eax
mov eax, edi
and eax, dword [esp + 0x18]
add ecx, eax
mov eax, ecx
add eax, esi
mov edi, dword [esp]
mov ecx, edi
rol ecx, 0x1e
mov esi, edi
rol esi, 0x13
xor esi, ecx
mov ecx, edi
rol ecx, 0xa
xor ecx, esi
mov edx, edi
and edx, dword [esp + 4]
xor edx, dword [esp + 0x38]
mov esi, edi
and esi, dword [esp + 0x14]
mov dword [esp + 0x38], esi
xor edx, esi
add edx, ecx
add dword [esp + 8], eax
mov ebx, dword [esp + 0x28]
mov ecx, ebx
xor ecx, 8
mov esi, dword [esp + ecx*4 + 0x50]
mov ecx, esi
rol ecx, 0x19
mov edi, esi
rol edi, 0xe
add edx, eax
xor edi, ecx
mov eax, dword [esp + ebx*4 + 0x64]
shr esi, 3
mov ecx, eax
rol ecx, 0xf
mov ebx, eax
rol ebx, 0xd
xor esi, edi
xor ebx, ecx
shr eax, 0xa
xor eax, ebx
mov ebx, dword [esp + 0x10]
lea ecx, [ebx + 7]
and ecx, 0xf
mov edi, dword [esp + 0x4c]
add edi, dword [esp + ecx*4 + 0x50]
add edi, esi
add edi, eax
mov eax, dword [esp + 8]
mov esi, eax
rol esi, 0x1a
mov dword [esp + ecx*4 + 0x50], edi
mov ecx, edi
mov edi, eax
rol eax, 0x15
xor eax, esi
mov esi, edi
rol esi, 7
add ebp, dword [ebx*4 + 0x57257c]
xor esi, eax
add ebp, ecx
mov eax, edi
not eax
and eax, dword [esp + 0x18]
add ebp, eax
mov eax, edi
and eax, dword [esp + 0xc]
add ebp, eax
mov eax, ebp
add eax, esi
mov ecx, edx
rol ecx, 0x1e
mov esi, edx
rol esi, 0x13
xor esi, ecx
mov ecx, edx
rol ecx, 0xa
xor ecx, esi
mov ebp, dword [esp]
xor ebp, dword [esp + 0x14]
mov dword [esp + 0x1c], edx
and ebp, edx
xor ebp, dword [esp + 0x38]
add ebp, ecx
add dword [esp + 4], eax
add ebp, eax
mov eax, ebx
cmp ebx, 0x38
lea eax, [ebx + 8]
jb 0x4f7a20
add dword [esp + 0x2c], ebp
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
mov ebp, dword [esp + 0x44]
add ebp, dword [esp]
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x14]
mov dword [esp + 0x40], eax
mov edi, dword [esp + 0x48]
add edi, dword [esp + 4]
mov ebx, dword [esp + 0x30]
add ebx, dword [esp + 8]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0xc]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
add edx, 0x40
mov eax, dword [esp + 0x90]
mov esi, dword [esp + 0x2c]
mov dword [eax], esi
mov esi, dword [esp + 0x34]
mov dword [eax + 4], esi
mov dword [esp + 0x44], ebp
mov dword [eax + 8], ebp
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov dword [eax + 0xc], esi
mov dword [eax + 0x10], edi
mov dword [esp + 0x30], ebx
mov dword [eax + 0x14], ebx
mov dword [eax + 0x18], ebp
mov dword [eax + 0x1c], ecx
mov ebx, ecx
mov ecx, dword [esp + 0x98]
add ecx, 0xffffffff
jne 0x4f7280
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret