Function at 0x5073a0
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 + 0x8c], ecx
mov ecx, dword [esp + 0xbc]
test ecx, ecx
je 0x50829b
mov ebp, edx
mov eax, dword [esp + 0x8c]
mov esi, dword [eax]
mov dword [esp + 0x30], esi
mov esi, dword [eax + 4]
mov dword [esp + 0x2c], esi
mov esi, dword [eax + 8]
mov dword [esp + 0x38], esi
mov esi, dword [eax + 0xc]
mov dword [esp + 0x44], esi
mov edi, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
mov dword [esp + 0x34], ebx
mov ebx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
nop word cs:[eax + eax]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x98], ecx
mov esi, edi
mov dword [esp + 0x40], edi
mov edi, eax
mov eax, dword [ebp]
bswap eax
mov ebp, esi
rol ebp, 0x1a
mov dword [esp + 0x4c], eax
mov edx, esi
rol edx, 0x15
xor edx, ebp
mov ebp, esi
rol ebp, 7
xor ebp, edx
mov edx, esi
and edx, dword [esp + 0x34]
not esi
and esi, ebx
mov dword [esp + 0x94], edi
add edx, edi
add edx, esi
add edx, ebp
mov edi, dword [esp + 0x30]
mov esi, edi
rol esi, 0x1e
lea ecx, [edx + eax]
mov ebx, edi
rol edi, 0x13
add eax, edx
add eax, 0x428a2f98
mov edx, ebx
rol edx, 0xa
xor edi, esi
xor edx, edi
mov esi, ebx
mov ebp, dword [esp + 0x2c]
and esi, ebp
mov dword [esp + 8], esi
mov edi, ebp
mov esi, dword [esp + 0x38]
xor edi, esi
and edi, ebx
mov dword [esp + 0x2c], ebp
and ebp, esi
xor ebp, edi
add ebp, edx
add ebp, eax
mov eax, dword [esp + 0x44]
lea ebx, [eax + ecx]
add ebx, 0x428a2f98
mov dword [esp + 0xc], ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
bswap eax
mov dword [esp + 0x50], eax
mov ecx, ebx
rol ecx, 0x1a
mov edi, ebx
rol edi, 0x15
xor edi, ecx
mov edx, ebx
rol edx, 7
xor edx, edi
mov ecx, ebx
and ecx, dword [esp + 0x40]
mov edi, ebx
not edi
and edi, dword [esp + 0x34]
add eax, dword [esp + 0x3c]
add eax, ecx
add eax, edi
lea edi, [eax + edx]
add edx, eax
add edx, 0x71374491
mov eax, ebp
rol eax, 0x1e
mov ecx, ebp
rol ecx, 0x13
xor ecx, eax
mov eax, ebp
mov dword [esp], ebp
rol eax, 0xa
xor eax, ecx
mov ecx, dword [esp + 0x30]
xor ecx, dword [esp + 0x2c]
and ecx, ebp
xor ecx, dword [esp + 8]
add ecx, eax
add ecx, edx
lea ebx, [esi + edi]
add ebx, 0x71374491
mov eax, dword [esp + 0x1c]
mov esi, dword [eax + 8]
bswap esi
mov eax, ebx
rol eax, 0x1a
mov dword [esp + 0x54], esi
mov edi, ebx
rol edi, 0x15
xor edi, eax
mov edx, ebx
rol edx, 7
xor edx, edi
mov eax, ebx
mov dword [esp + 8], ebx
and eax, dword [esp + 0xc]
add esi, dword [esp + 0x34]
add esi, eax
mov eax, ebx
not eax
and eax, dword [esp + 0x40]
add esi, eax
mov eax, ecx
rol eax, 0x1e
mov ebp, ecx
mov ebx, ecx
rol ebp, 0x13
lea edi, [esi + edx]
lea ecx, [edx + esi]
add ecx, 0xb5c0fbcf
mov dword [esp + 4], ecx
mov edx, ebx
rol edx, 0xa
xor ebp, eax
xor edx, ebp
mov ebp, dword [esp]
mov eax, ebp
mov esi, dword [esp + 0x30]
and eax, esi
xor ebp, esi
and ebp, ebx
mov esi, ebx
xor ebp, eax
mov eax, dword [esp + 0x2c]
lea ecx, [eax + edi]
add ecx, 0xb5c0fbcf
mov eax, ecx
rol eax, 0x1a
add ebp, edx
mov ebx, ecx
rol ebx, 0x15
add ebp, dword [esp + 4]
mov edx, ecx
rol edx, 7
xor ebx, eax
xor edx, ebx
mov eax, dword [esp + 0x1c]
mov edi, dword [eax + 0xc]
bswap edi
mov dword [esp + 0x58], edi
mov eax, ecx
mov dword [esp + 0x10], ecx
and eax, dword [esp + 8]
add edi, dword [esp + 0x40]
add edi, eax
mov eax, ecx
not eax
and eax, dword [esp + 0xc]
add edi, eax
mov ecx, ebp
mov eax, ebp
rol eax, 0x1e
rol ebp, 0x13
lea ebx, [edi + edx]
add edi, edx
add edi, 0xe9b5dba5
mov edx, ecx
mov dword [esp + 4], ecx
rol edx, 0xa
xor ebp, eax
xor edx, ebp
mov ebp, esi
mov dword [esp + 0x18], esi
mov eax, dword [esp]
and esi, eax
xor ebp, eax
and ebp, ecx
xor ebp, esi
mov ecx, ebp
mov eax, dword [esp + 0x30]
lea esi, [eax + ebx]
add esi, 0xe9b5dba5
mov dword [esp + 0x28], esi
mov eax, esi
rol eax, 0x1a
add ecx, edx
mov ebx, esi
rol ebx, 0x15
add ecx, edi
mov edx, esi
rol edx, 7
xor ebx, eax
xor edx, ebx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x10]
bswap eax
mov dword [esp + 0x5c], eax
add eax, dword [esp + 0xc]
mov edi, esi
and edi, dword [esp + 0x10]
add eax, edi
mov edi, esi
not edi
and edi, dword [esp + 8]
add eax, edi
mov ebx, ecx
rol ebx, 0x1e
lea edi, [edx + eax]
add edi, 0x3956c25b
mov eax, ecx
rol eax, 0x13
xor eax, ebx
mov edx, ecx
rol edx, 0xa
xor edx, eax
mov esi, dword [esp + 4]
mov eax, esi
mov ebp, dword [esp + 0x18]
and eax, ebp
mov ebx, esi
xor ebx, ebp
and ebx, ecx
xor ebx, eax
add ebx, edx
mov ebp, dword [esp]
add ebp, edi
mov dword [esp], ebp
mov eax, ebp
rol eax, 0x1a
add ebx, edi
mov edx, ebp
rol edx, 0x15
xor edx, eax
mov eax, ebp
rol eax, 7
xor eax, edx
mov edx, dword [esp + 0x1c]
mov edx, dword [edx + 0x14]
bswap edx
mov dword [esp + 0x60], edx
add edx, dword [esp + 8]
mov edi, ebp
and edi, dword [esp + 0x28]
add edx, edi
mov edi, ebp
not edi
and edi, dword [esp + 0x10]
add edx, edi
lea ebp, [eax + edx]
add ebp, 0x59f111f1
mov eax, ebx
rol eax, 0x1e
mov edx, ebx
rol edx, 0x13
xor edx, eax
mov eax, ebx
mov dword [esp + 0xc], ebx
rol eax, 0xa
xor eax, edx
mov dword [esp + 0x14], ecx
mov edx, ecx
and edx, esi
mov edi, ecx
xor edi, esi
and edi, ebx
xor edi, edx
add edi, eax
mov ecx, dword [esp + 0x18]
add ecx, ebp
add edi, ebp
mov esi, edi
mov eax, ecx
rol eax, 0x1a
mov edx, ecx
rol edx, 0x15
xor edx, eax
mov eax, ecx
mov ebp, ecx
mov dword [esp + 0x18], ecx
rol eax, 7
xor eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x18]
bswap edx
mov dword [esp + 0x64], edx
add edx, dword [esp + 0x10]
mov ebx, ebp
and ebx, dword [esp]
add edx, ebx
mov ebx, ebp
not ebx
and ebx, dword [esp + 0x28]
add edx, ebx
lea ebp, [eax + edx]
add ebp, 0x923f82a4
mov eax, edi
rol eax, 0x1e
mov edx, edi
rol edx, 0x13
xor edx, eax
mov eax, edi
rol eax, 0xa
xor eax, edx
mov edi, dword [esp + 0xc]
mov ebx, edi
mov ecx, dword [esp + 0x14]
and ebx, ecx
xor edi, ecx
and edi, esi
mov ecx, esi
xor edi, ebx
add edi, eax
mov eax, dword [esp + 4]
add eax, ebp
add edi, ebp
mov edx, eax
mov dword [esp + 4], eax
rol eax, 0x1a
mov esi, edx
rol esi, 0x15
xor esi, eax
mov ebx, edx
rol ebx, 7
xor ebx, esi
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [esp + 0x68], eax
add eax, dword [esp + 0x28]
mov esi, edx
and esi, dword [esp + 0x18]
add eax, esi
mov esi, edx
not esi
and esi, dword [esp]
mov edx, edi
rol edx, 0x1e
add eax, esi
mov esi, edi
rol esi, 0x13
add eax, ebx
add eax, 0xab1c5ed5
mov dword [esp + 8], eax
mov ebx, edi
rol ebx, 0xa
xor esi, edx
xor ebx, esi
mov edx, ecx
mov dword [esp + 0x20], ecx
mov eax, ecx
mov ecx, dword [esp + 0xc]
and eax, ecx
xor edx, ecx
and edx, edi
xor edx, eax
mov ecx, edx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 8]
add ebp, esi
mov dword [esp + 0x14], ebp
mov eax, ebp
rol eax, 0x1a
add ecx, ebx
mov edx, ebp
rol edx, 0x15
add ecx, esi
mov ebx, ebp
rol ebx, 7
xor edx, eax
xor ebx, edx
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
bswap eax
mov dword [esp + 0x6c], eax
add eax, dword [esp]
mov edx, ebp
and edx, dword [esp + 4]
add eax, edx
mov edx, ebp
not edx
and edx, dword [esp + 0x18]
add eax, edx
mov edx, ecx
rol edx, 0x1e
add ebx, eax
add ebx, 0xd807aa98
mov eax, ecx
rol eax, 0x13
xor eax, edx
mov edx, ecx
rol edx, 0xa
xor edx, eax
mov dword [esp + 0x10], edi
mov eax, edi
mov esi, dword [esp + 0x20]
and eax, esi
mov ebp, edi
xor ebp, esi
and ebp, ecx
mov edi, ecx
xor ebp, eax
add ebp, edx
mov esi, ebp
mov ebp, dword [esp + 0xc]
add ebp, ebx
mov eax, ebp
rol eax, 0x1a
add esi, ebx
mov edx, ebp
rol edx, 0x15
xor edx, eax
mov eax, ebp
mov dword [esp + 0xc], ebp
rol eax, 7
xor eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x24]
bswap edx
mov dword [esp + 0x70], edx
add edx, dword [esp + 0x18]
mov ecx, ebp
and ecx, dword [esp + 0x14]
add edx, ecx
mov ecx, ebp
not ecx
and ecx, dword [esp + 4]
add edx, ecx
add eax, edx
add eax, 0x12835b01
mov ecx, esi
rol ecx, 0x1e
mov edx, esi
rol edx, 0x13
xor edx, ecx
mov ecx, esi
rol ecx, 0xa
xor ecx, edx
mov ebp, edi
mov dword [esp + 0x24], edi
mov edx, edi
mov edi, dword [esp + 0x10]
and edx, edi
xor ebp, edi
and ebp, esi
xor ebp, edx
add ebp, ecx
mov edi, dword [esp + 0x20]
add edi, eax
add ebp, eax
mov eax, edi
rol eax, 0x1a
mov ecx, edi
rol ecx, 0x15
xor ecx, eax
mov eax, edi
mov dword [esp + 0x20], edi
rol eax, 7
xor eax, ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x28]
bswap ecx
mov dword [esp + 0x74], ecx
add ecx, dword [esp + 4]
mov edx, edi
and edx, dword [esp + 0xc]
add ecx, edx
mov edx, edi
not edx
and edx, dword [esp + 0x14]
add ecx, edx
lea edi, [eax + ecx]
add edi, 0x243185be
mov ecx, ebp
rol ecx, 0x1e
mov edx, ebp
rol edx, 0x13
xor edx, ecx
mov ecx, ebp
rol ecx, 0xa
xor ecx, edx
mov dword [esp + 8], esi
mov edx, esi
mov eax, dword [esp + 0x24]
and edx, eax
xor esi, eax
and esi, ebp
xor esi, edx
add esi, ecx
mov edx, dword [esp + 0x10]
add edx, edi
add esi, edi
mov ebx, esi
mov eax, edx
rol eax, 0x1a
mov ecx, edx
rol ecx, 0x15
xor ecx, eax
mov eax, edx
mov esi, edx
mov dword [esp + 0x10], edx
rol eax, 7
xor eax, ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x2c]
bswap ecx
mov dword [esp + 0x78], ecx
add ecx, dword [esp + 0x14]
and edx, dword [esp + 0x20]
add ecx, edx
mov edx, esi
not edx
and edx, dword [esp + 0xc]
mov esi, ebx
rol ebx, 0x1e
add ecx, edx
mov edx, esi
mov edi, esi
rol edx, 0x13
add eax, ecx
add eax, 0x550c7dc3
mov dword [esp], eax
mov eax, esi
mov dword [esp + 4], esi
rol esi, 0xa
xor edx, ebx
xor esi, edx
mov ecx, ebp
mov edi, dword [esp + 8]
and ecx, edi
mov edx, ebp
xor edx, edi
and edx, eax
xor edx, ecx
mov edi, edx
mov ebx, dword [esp + 0x24]
mov eax, dword [esp]
add ebx, eax
mov dword [esp + 0x24], ebx
mov ecx, ebx
rol ecx, 0x1a
add edi, esi
mov edx, ebx
rol edx, 0x15
add edi, eax
mov eax, ebx
rol eax, 7
xor edx, ecx
xor eax, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x30]
bswap ecx
mov dword [esp + 0x7c], ecx
add ecx, dword [esp + 0xc]
mov edx, ebx
and edx, dword [esp + 0x10]
add ecx, edx
mov edx, ebx
not edx
and edx, dword [esp + 0x20]
add ecx, edx
mov edx, edi
rol edx, 0x1e
add eax, ecx
add eax, 0x72be5d74
mov ecx, edi
rol ecx, 0x13
xor ecx, edx
mov edx, edi
mov dword [esp + 0x18], edi
rol edx, 0xa
xor edx, ecx
mov ebx, dword [esp + 4]
mov ecx, ebx
and ecx, ebp
xor ebx, ebp
and ebx, edi
xor ebx, ecx
add ebx, edx
mov esi, dword [esp + 8]
add esi, eax
mov dword [esp + 8], esi
mov ecx, esi
rol ecx, 0x1a
add ebx, eax
mov edx, esi
rol edx, 0x15
xor edx, ecx
mov eax, esi
rol eax, 7
xor eax, edx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x34]
bswap ecx
mov dword [esp + 0x80], ecx
add ecx, dword [esp + 0x20]
mov edx, esi
and edx, dword [esp + 0x24]
add ecx, edx
mov edx, esi
not edx
and edx, dword [esp + 0x10]
add ecx, edx
lea esi, [eax + ecx]
add esi, 0x80deb1fe
mov ecx, ebx
rol ecx, 0x1e
mov edx, ebx
rol edx, 0x13
xor edx, ecx
mov ecx, ebx
rol ecx, 0xa
xor ecx, edx
mov edi, dword [esp + 0x18]
mov edx, edi
mov eax, dword [esp + 4]
and edx, eax
xor edi, eax
and edi, ebx
xor edi, edx
add edi, ecx
add ebp, esi
mov dword [esp + 0x28], ebp
add edi, esi
mov eax, ebp
rol eax, 0x1a
mov ecx, ebp
rol ecx, 0x15
xor ecx, eax
mov eax, ebp
rol eax, 7
xor eax, ecx
mov ecx, dword [esp + 0x1c]
mov ecx, dword [ecx + 0x38]
bswap ecx
mov dword [esp + 0x84], ecx
add ecx, dword [esp + 0x10]
mov edx, ebp
and edx, dword [esp + 8]
add ecx, edx
not ebp
and ebp, dword [esp + 0x24]
add ecx, ebp
add eax, ecx
add eax, 0x9bdc06a7
mov ecx, edi
rol ecx, 0x1e
mov edx, edi
rol edx, 0x13
xor edx, ecx
mov esi, edi
rol esi, 0xa
xor esi, edx
mov dword [esp + 0x14], ebx
mov edx, ebx
mov ecx, dword [esp + 0x18]
and edx, ecx
mov ebp, ebx
xor ebp, ecx
and ebp, edi
xor ebp, edx
add ebp, esi
mov ebx, dword [esp + 4]
add ebx, eax
add ebp, eax
mov eax, ebx
rol eax, 0x1a
mov edx, ebx
rol edx, 0x15
xor edx, eax
mov eax, ebx
rol eax, 7
xor eax, edx
mov ecx, dword [esp + 0x1c]
mov edx, dword [ecx + 0x3c]
bswap edx
mov dword [esp + 0x88], edx
add edx, dword [esp + 0x24]
mov esi, ebx
and esi, dword [esp + 0x28]
add edx, esi
mov dword [esp + 4], ebx
mov esi, ebx
not esi
and esi, dword [esp + 8]
mov ebx, ebp
rol ebx, 0x1e
add edx, esi
mov esi, ebp
rol esi, 0x13
add eax, edx
add eax, 0xc19bf174
mov edx, ebp
rol edx, 0xa
xor esi, ebx
xor edx, esi
mov esi, edi
mov ecx, dword [esp + 0x14]
and esi, ecx
mov dword [esp + 0xc], edi
xor edi, ecx
mov dword [esp + 0x10], ebp
and edi, ebp
xor edi, esi
add edi, edx
mov ebp, dword [esp + 0x18]
add ebp, eax
add edi, eax
mov ecx, edi
mov eax, 0x1f
nop word [eax + eax]
mov dword [esp], eax
add eax, 0xfffffff2
and eax, 9
mov dword [esp + 0x9c], eax
mov edi, dword [esp + eax*4 + 0x4c]
mov eax, edi
rol eax, 0x19
mov edx, edi
mov dword [esp + 0x48], edi
rol edx, 0xe
xor edx, eax
mov eax, dword [esp]
dec eax
and eax, 0xe
shr edi, 3
mov ebx, dword [esp + eax*4 + 0x4c]
mov dword [esp + 0xa0], ebx
mov eax, ebx
rol eax, 0xf
xor edi, edx
mov esi, ebx
rol esi, 0xd
xor esi, eax
mov edx, ebx
shr edx, 0xa
xor edx, esi
mov eax, dword [esp]
add eax, 0xfffffffa
and eax, 9
add edi, dword [esp + eax*4 + 0x4c]
mov ebx, ebp
mov dword [esp + 0x18], ebp
mov eax, ebp
rol eax, 0x1a
mov esi, ebp
rol esi, 0x15
xor esi, eax
mov eax, ebp
rol eax, 7
xor eax, esi
and ebp, dword [esp + 4]
add ebp, dword [esp + 8]
mov esi, ebx
not esi
mov dword [esp + 0x20], ecx
mov ebx, ecx
rol ebx, 0x1e
and esi, dword [esp + 0x28]
add esi, ebp
mov ebp, ecx
rol ebp, 0x13
add esi, eax
mov eax, ecx
rol eax, 0xa
xor ebp, ebx
xor eax, ebp
mov ecx, dword [esp]
add ecx, 0xfffffff1
mov dword [esp + 0xa4], ecx
and ecx, 8
mov dword [esp + 0x24], ecx
add edi, dword [esp + ecx*4 + 0x4c]
add edi, edx
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov dword [esp + 0x10], ecx
mov ebx, dword [esp + 0xc]
xor edx, ebx
and edx, dword [esp + 0x20]
and ecx, ebx
xor ecx, edx
add ecx, eax
mov ebx, ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + ecx*4 + 0x4c], edi
mov ebp, edi
mov dword [esp + 0x90], edi
mov eax, dword [esp]
add eax, 0xfffffffb
and eax, 0xa
mov edi, dword [esp + 0x48]
add edi, dword [esp + eax*4 + 0x4c]
mov eax, dword [esp]
add esi, dword [eax*4 + 0x591530]
add esi, ebp
mov ebp, dword [esp + 0x14]
add ebp, esi
mov eax, dword [esp + ecx*4 + 0x54]
mov edx, eax
rol edx, 0x19
add ebx, esi
mov esi, eax
rol esi, 0xe
xor esi, edx
mov edx, dword [esp]
and edx, 0xf
shr eax, 3
mov ecx, dword [esp + edx*4 + 0x4c]
mov dword [esp + 0x48], ecx
mov edx, ecx
rol edx, 0xf
xor eax, esi
mov esi, ecx
rol esi, 0xd
xor esi, edx
mov edx, ecx
shr edx, 0xa
xor edx, esi
add edi, edx
mov dword [esp + 0x14], ebp
mov edx, ebp
rol edx, 0x1a
add edi, eax
mov eax, ebp
rol eax, 0x15
mov ecx, dword [esp + 0x9c]
mov dword [esp + ecx*4 + 0x4c], edi
mov esi, ebp
rol esi, 7
xor eax, edx
xor esi, eax
mov edx, ebp
and edx, dword [esp + 0x18]
add edx, dword [esp + 0x28]
mov eax, ebp
not eax
and eax, dword [esp + 4]
add edx, eax
mov ecx, ebx
mov dword [esp + 8], ebx
mov eax, ebx
rol eax, 0x1e
add esi, edi
rol ebx, 0x13
xor ebx, eax
mov eax, ecx
rol eax, 0xa
xor eax, ebx
mov ebx, dword [esp]
add edx, dword [ebx*4 + str.FFC_DH]
add esi, edx
mov ecx, dword [esp + 0x20]
mov edx, ecx
mov edi, dword [esp + 0x10]
and edx, edi
xor ecx, edi
mov edi, dword [esp + 0x90]
mov ebx, edi
rol ebx, 0xf
and ecx, dword [esp + 8]
xor ecx, edx
mov ebp, edi
rol ebp, 0xd
add ecx, eax
xor ebp, ebx
add dword [esp + 0xc], esi
add ecx, esi
mov eax, dword [esp + 0x24]
mov edx, dword [esp + eax*4 + 0x58]
mov eax, edx
rol eax, 0x19
mov esi, edx
rol esi, 0xe
xor esi, eax
mov eax, edi
shr eax, 0xa
xor eax, ebp
mov ebx, dword [esp]
add ebx, 0xfffffffc
and ebx, 0xb
add eax, dword [esp + ebx*4 + 0x4c]
mov ebx, dword [esp]
add ebx, 0xfffffff3
and ebx, 0xa
add eax, dword [esp + ebx*4 + 0x4c]
shr edx, 3
xor edx, esi
mov edi, dword [esp + 0xc]
mov esi, edi
rol esi, 0x1a
add eax, edx
mov ebp, edi
rol ebp, 0x15
mov dword [esp + ebx*4 + 0x4c], eax
mov edx, edi
mov ebx, edi
rol edx, 7
xor ebp, esi
xor edx, ebp
mov esi, dword [esp]
mov ebp, dword [esp + 4]
add ebp, dword [esi*4 + 0x591538]
add ebp, eax
mov eax, edi
and eax, dword [esp + 0x14]
add ebp, eax
mov eax, edi
not eax
and eax, dword [esp + 0x18]
add ebp, eax
mov eax, ecx
rol eax, 0x1e
mov esi, ecx
rol esi, 0x13
xor esi, eax
mov eax, ecx
mov dword [esp + 0x28], ecx
rol eax, 0xa
xor eax, esi
add ebp, edx
mov edx, dword [esp + 8]
mov esi, edx
mov edi, dword [esp + 0x20]
and esi, edi
xor edx, edi
and edx, ecx
xor edx, esi
add edx, eax
mov edi, dword [esp + 0x10]
add edi, ebp
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + ecx*4 + 0x5c]
mov esi, eax
rol esi, 0x19
add ebp, edx
mov dword [esp + 4], ebp
mov edx, eax
rol edx, 0xe
xor edx, esi
shr eax, 3
xor eax, edx
mov edx, dword [esp + ecx*4 + 0x50]
mov esi, edx
rol esi, 0xf
mov ebx, edx
rol ebx, 0xd
xor ebx, esi
mov esi, dword [esp]
add esi, 0xfffffffd
and esi, 0xc
add eax, dword [esp + esi*4 + 0x4c]
shr edx, 0xa
xor edx, ebx
mov esi, dword [esp]
add esi, 0xfffffff4
and esi, 0xb
mov ebx, edi
rol ebx, 0x1a
add eax, dword [esp + esi*4 + 0x4c]
add eax, edx
mov ebp, edi
rol ebp, 0x15
mov dword [esp + esi*4 + 0x4c], eax
mov edx, edi
rol edx, 7
xor ebp, ebx
xor edx, ebp
mov esi, dword [esp]
mov ebx, dword [esp + 0x18]
add ebx, dword [esi*4 + 0x59153c]
add ebx, eax
mov dword [esp + 0x10], edi
mov eax, edi
and eax, dword [esp + 0xc]
add ebx, eax
not edi
and edi, dword [esp + 0x14]
add ebx, edi
mov edi, ebx
mov ecx, dword [esp + 4]
mov eax, ecx
rol eax, 0x1e
mov esi, ecx
rol esi, 0x13
xor esi, eax
mov eax, ecx
mov ebx, ecx
rol eax, 0xa
xor eax, esi
add edi, edx
mov edx, dword [esp + 0x28]
mov esi, edx
mov ecx, dword [esp + 8]
and esi, ecx
xor edx, ecx
and edx, ebx
xor edx, esi
add edx, eax
mov ebp, dword [esp + 0x20]
add ebp, edi
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + ecx*4 + 0x60]
mov esi, eax
rol esi, 0x19
add edi, edx
mov dword [esp + 0x18], edi
mov edx, eax
rol edx, 0xe
xor edx, esi
shr eax, 3
xor eax, edx
mov edx, dword [esp + ecx*4 + 0x54]
mov esi, edx
rol esi, 0xf
mov ebx, edx
rol ebx, 0xd
xor ebx, esi
mov esi, dword [esp]
add esi, 0xfffffffe
and esi, 0xd
add eax, dword [esp + esi*4 + 0x4c]
shr edx, 0xa
xor edx, ebx
mov esi, dword [esp]
add esi, 0xfffffff5
and esi, 0xc
mov ecx, ebp
mov edi, ebp
rol edi, 0x1a
add eax, dword [esp + esi*4 + 0x4c]
add eax, edx
rol ebp, 0x15
mov dword [esp + esi*4 + 0x4c], eax
mov edx, ecx
rol edx, 7
xor ebp, edi
xor edx, ebp
mov esi, dword [esp]
mov ebx, dword [esp + 0x14]
add ebx, dword [esi*4 + 0x591540]
add ebx, eax
mov dword [esp + 0x20], ecx
mov eax, ecx
and eax, dword [esp + 0x10]
add ebx, eax
not ecx
and ecx, dword [esp + 0xc]
add ebx, ecx
mov edi, dword [esp + 0x18]
mov esi, edi
rol esi, 0x1e
add ebx, edx
mov ebp, ebx
mov dword [esp + 0x14], ebx
mov edx, edi
rol edx, 0x13
xor edx, esi
mov esi, edi
rol esi, 0xa
xor esi, edx
mov eax, dword [esp + 4]
mov edx, eax
mov ecx, dword [esp + 0x28]
and edx, ecx
mov ebx, eax
xor ebx, ecx
and ebx, edi
xor ebx, edx
add ebx, esi
mov esi, ebx
mov eax, dword [esp + 0x24]
mov edx, dword [esp + eax*4 + 0x64]
mov ebx, edx
rol ebx, 0x19
mov edi, dword [esp + 8]
add edi, ebp
mov ebp, edx
rol ebp, 0xe
mov eax, dword [esp + eax*4 + 0x58]
mov ecx, eax
rol ecx, 0xf
add esi, dword [esp + 0x14]
mov dword [esp + 0x14], esi
mov esi, eax
rol esi, 0xd
xor ebp, ebx
xor esi, ecx
shr edx, 3
xor edx, ebp
shr eax, 0xa
xor eax, esi
mov ecx, dword [esp]
add ecx, 0xfffffff6
and ecx, 0xd
mov ebx, dword [esp + 0xa0]
add ebx, dword [esp + ecx*4 + 0x4c]
add ebx, edx
add ebx, eax
mov eax, edi
rol eax, 0x1a
mov esi, edi
rol esi, 0x15
xor esi, eax
mov edx, edi
rol edx, 7
xor edx, esi
mov dword [esp + ecx*4 + 0x4c], ebx
mov eax, dword [esp]
mov ecx, dword [esp + 0xc]
add ecx, dword [eax*4 + 0x591544]
add ecx, ebx
mov dword [esp + 8], edi
mov eax, edi
and eax, dword [esp + 0x20]
add ecx, eax
mov eax, edi
not eax
and eax, dword [esp + 0x10]
add ecx, eax
mov eax, ecx
add eax, edx
mov esi, dword [esp + 0x14]
mov ecx, esi
rol ecx, 0x1e
mov edx, esi
rol edx, 0x13
xor edx, ecx
mov ecx, esi
mov ebp, esi
rol ecx, 0xa
xor ecx, edx
mov esi, dword [esp + 0x18]
mov edx, esi
mov edi, dword [esp + 4]
and edx, edi
xor esi, edi
and esi, ebp
xor esi, edx
add esi, ecx
mov ebp, dword [esp + 0x28]
add ebp, eax
mov dword [esp + 0x28], ebp
add esi, eax
mov dword [esp + 0xc], esi
mov edx, dword [esp + 0x24]
mov eax, dword [esp + edx*4 + 0x68]
mov ecx, eax
rol ecx, 0x19
mov esi, eax
rol esi, 0xe
xor esi, ecx
mov edx, dword [esp + edx*4 + 0x5c]
mov ecx, edx
rol ecx, 0xf
shr eax, 3
mov ebx, edx
rol ebx, 0xd
xor eax, esi
xor ebx, ecx
shr edx, 0xa
xor edx, ebx
mov ecx, dword [esp]
add ecx, 0xfffffff7
and ecx, 0xe
mov edi, dword [esp + 0x48]
add edi, dword [esp + ecx*4 + 0x4c]
add edi, eax
mov ebx, ebp
mov eax, ebp
rol eax, 0x1a
add edi, edx
mov esi, ebp
rol esi, 0x15
mov dword [esp + ecx*4 + 0x4c], edi
mov edx, ebp
rol edx, 7
xor esi, eax
xor edx, esi
mov eax, dword [esp]
mov ecx, dword [esp + 0x10]
add ecx, dword [eax*4 + 0x591548]
add ecx, edi
mov eax, ebp
and eax, dword [esp + 8]
add ecx, eax
mov eax, ebp
not eax
and eax, dword [esp + 0x20]
add ecx, eax
mov eax, ecx
mov ebp, dword [esp + 0xc]
mov ecx, ebp
rol ecx, 0x1e
add eax, edx
mov edx, ebp
rol edx, 0x13
xor edx, ecx
mov ecx, ebp
rol ecx, 0xa
xor ecx, edx
mov edi, dword [esp + 0x14]
mov edx, edi
mov esi, dword [esp + 0x18]
and edx, esi
xor edi, esi
and edi, ebp
xor edi, edx
add edi, ecx
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + ebx*4 + 0x60]
mov ecx, edx
rol ecx, 0xf
mov ebp, dword [esp + 4]
add ebp, eax
mov esi, edx
rol esi, 0xd
add edi, eax
xor esi, ecx
mov eax, ebx
xor eax, 8
mov eax, dword [esp + eax*4 + 0x4c]
mov ecx, eax
rol ecx, 0x19
mov ebx, eax
rol ebx, 0xe
xor ebx, ecx
shr edx, 0xa
xor edx, esi
shr eax, 3
xor eax, ebx
mov ecx, dword [esp]
add ecx, 0xfffffff8
and ecx, 0xf
mov esi, dword [esp + 0x90]
add esi, dword [esp + ecx*4 + 0x4c]
add edx, eax
mov ebx, ebp
rol ebx, 0x1a
mov eax, esi
add eax, edx
mov esi, ebp
mov edx, ebp
rol edx, 0x15
mov dword [esp + ecx*4 + 0x4c], eax
mov ebp, eax
mov eax, esi
rol eax, 7
xor edx, ebx
xor eax, edx
mov ecx, dword [esp]
mov ebx, dword [esp + 0x20]
add ebx, dword [ecx*4 + 0x59154c]
add ebx, ebp
mov edx, esi
mov ecx, esi
and ecx, dword [esp + 0x28]
add ebx, ecx
mov dword [esp + 4], esi
mov ecx, esi
not ecx
and ecx, dword [esp + 8]
add ebx, ecx
mov edx, ebx
mov ecx, edi
rol ecx, 0x1e
add edx, eax
mov eax, edi
rol eax, 0x13
xor eax, ecx
mov ecx, edi
rol ecx, 0xa
xor ecx, eax
mov esi, dword [esp + 0xc]
mov eax, esi
mov ebx, dword [esp + 0x14]
and eax, ebx
xor esi, ebx
mov dword [esp + 0x10], edi
and esi, edi
xor esi, eax
add esi, ecx
mov ebp, dword [esp + 0x18]
add ebp, edx
add esi, edx
mov ecx, esi
mov eax, dword [esp]
add eax, 8
cmp dword [esp + 0xa4], 0x38
jb 0x507ba0
add dword [esp + 0x30], ecx
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x10]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x38]
add ecx, dword [esp + 0xc]
mov dword [esp + 0x38], ecx
mov edx, dword [esp + 0x44]
add edx, dword [esp + 0x14]
mov edi, dword [esp + 0x40]
add edi, ebp
mov ebx, dword [esp + 0x34]
add ebx, dword [esp + 4]
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x28]
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x94]
add ecx, dword [esp + 8]
mov ebp, dword [esp + 0x1c]
add ebp, 0x40
mov eax, dword [esp + 0x8c]
mov esi, dword [esp + 0x30]
mov dword [eax], esi
mov esi, dword [esp + 0x2c]
mov dword [eax + 4], esi
mov esi, dword [esp + 0x38]
mov dword [eax + 8], esi
mov dword [esp + 0x44], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edi
mov dword [esp + 0x34], ebx
mov dword [eax + 0x14], ebx
mov ebx, dword [esp + 0x3c]
mov dword [eax + 0x18], ebx
mov dword [eax + 0x1c], ecx
mov eax, ecx
mov ecx, dword [esp + 0x98]
dec ecx
jne 0x507400
add esp, 0xa8
pop esi
pop edi
pop ebx
pop ebp
ret