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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xbc
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x47d2a4
mov eax, dword [esp + 0x7c]
movdqu xmm3, xmmword [eax]
movdqu xmm0, xmmword [eax + 0x10]
nop word [eax + eax]
mov dword [esp + 0x80], ecx
mov ecx, dword [edx]
mov dword [esp + 0x24], edx
movd edx, xmm0
pshufd xmm2, xmm0, 0xe5
movdqu xmmword [esp + 0xa0], xmm3
movdqu xmmword [esp + 0x90], xmm0
mov esi, edx
mov edi, edx
mov eax, edx
mov ebx, edx
mov dword [esp + 0x10], edx
rol esi, 0x15
rol edi, 7
rol eax, 0x1a
not ebx
xor edi, esi
mov esi, edx
xor edi, eax
movd eax, xmm2
pshufd xmm2, xmm0, 0x4e
bswap ecx
mov dword [esp + 4], eax
and eax, edx
movd edx, xmm2
pshufd xmm2, xmm0, 0xe7
mov dword [esp + 0x3c], ecx
and ebx, edx
mov dword [esp + 8], edx
xor ebx, eax
movd eax, xmm2
pshufd xmm2, xmm3, 0xe7
add eax, edi
add eax, ebx
lea edx, [eax + ecx]
lea eax, [ecx + eax + 0x428a2f98]
mov dword [esp + 0xc], eax
movd eax, xmm3
mov ecx, eax
mov ebp, eax
mov dword [esp + 0x14], eax
rol ecx, 0x13
rol ebp, 0xa
xor ebp, ecx
mov ecx, eax
mov eax, dword [esp + 0x24]
rol ecx, 0x1e
xor ebp, ecx
movd ecx, xmm2
pshufd xmm2, xmm3, 0xe5
pshufd xmm3, xmm3, 0x4e
lea edx, [ecx + edx + 0x428a2f98]
mov ecx, edx
mov edi, edx
mov dword [esp + 0x1c], edx
mov eax, dword [eax + 4]
rol ecx, 0x15
rol edi, 7
xor edi, ecx
mov ecx, edx
rol ecx, 0x1a
xor edi, ecx
mov ecx, edx
not edx
bswap eax
and edx, dword [esp + 4]
and ecx, esi
mov dword [esp + 0x40], eax
xor edx, ecx
movd ecx, xmm3
add edx, dword [esp + 8]
mov ebx, ecx
add edx, eax
lea esi, [edx + edi]
lea eax, [edi + edx + 0x71374491]
lea esi, [ecx + esi + 0x71374491]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], esi
movd esi, xmm2
xor ecx, esi
and ebx, esi
and ecx, dword [esp + 0x14]
xor ebx, ecx
add ebx, ebp
add ebx, dword [esp + 0xc]
mov eax, ebx
mov ecx, ebx
rol ebx, 0xa
rol eax, 0x13
mov edx, ecx
xor ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xc], edx
rol eax, 0x1e
xor ebx, eax
mov eax, ecx
mov edi, ecx
mov ebp, ecx
rol eax, 0x15
rol edi, 7
not ebp
xor edi, eax
mov eax, ecx
and ebp, dword [esp + 0x10]
rol eax, 0x1a
xor edi, eax
mov eax, ecx
mov ecx, edx
and eax, dword [esp + 0x1c]
and ecx, esi
xor ebp, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
bswap eax
mov dword [esp + 0x44], eax
add eax, dword [esp + 4]
mov dword [esp + 4], ecx
add eax, ebp
mov ebp, edx
mov edx, dword [esp + 0x14]
lea ecx, [eax + edi]
lea eax, [edi + eax - 0x4a3f0431]
mov edi, dword [esp + 0xc]
lea ecx, [esi + ecx - 0x4a3f0431]
mov dword [esp + 8], ecx
mov ecx, ebp
and esi, edx
and ecx, edx
mov ebp, edx
xor ecx, esi
mov esi, dword [esp + 4]
xor esi, ecx
add esi, ebx
add esi, dword [esp + 0x20]
mov ecx, esi
mov edx, esi
mov ebx, esi
mov dword [esp + 4], esi
rol ecx, 0x13
rol edx, 0xa
xor ebx, edi
xor edx, ecx
mov ecx, esi
and ebx, ebp
rol ecx, 0x1e
xor edx, ecx
mov ecx, esi
and ecx, edi
xor ebx, ecx
add ebx, edx
mov edx, dword [esp + 8]
add ebx, eax
mov ebp, ebx
mov ebx, dword [esp + 0x18]
mov edi, ebp
mov esi, ebp
mov eax, edx
mov ecx, edx
rol edi, 0xa
rol eax, 0x15
rol ecx, 7
xor ecx, eax
mov eax, edx
rol eax, 0x1a
xor ecx, eax
mov eax, edx
not edx
and edx, dword [esp + 0x1c]
and eax, ebx
xor edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0xc]
bswap eax
mov dword [esp + 0x48], eax
add eax, dword [esp + 0x10]
add eax, edx
lea edx, [eax + ecx]
mov dword [esp + 0x20], edx
lea edx, [ecx + eax - 0x164a245b]
mov ecx, ebp
mov eax, dword [esp + 4]
rol ecx, 0x13
xor edi, ecx
mov ecx, ebp
rol ecx, 0x1e
xor edi, ecx
mov ecx, ebp
and esi, eax
xor ecx, eax
mov eax, dword [esp + 0x14]
and ecx, dword [esp + 0xc]
xor ecx, esi
add ecx, edi
add ecx, edx
mov edx, dword [esp + 0x20]
mov edi, ecx
and edi, ebp
lea esi, [eax + edx - 0x164a245b]
mov eax, esi
mov edx, esi
mov dword [esp + 0x20], esi
rol eax, 0x15
rol edx, 7
xor edx, eax
mov eax, esi
rol eax, 0x1a
xor edx, eax
mov eax, esi
not esi
and eax, dword [esp + 8]
and esi, ebx
mov ebx, ecx
mov dword [esp + 0x10], ebx
xor esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x10]
bswap eax
mov dword [esp + 0x4c], eax
add eax, dword [esp + 0x1c]
add eax, esi
mov esi, ecx
lea edx, [edx + eax + 0x3956c25b]
mov eax, ecx
rol esi, 0xa
rol eax, 0x13
xor esi, eax
mov eax, ecx
rol eax, 0x1e
xor esi, eax
mov eax, ecx
mov ecx, dword [esp + 0xc]
xor eax, ebp
and eax, dword [esp + 4]
add ecx, edx
mov dword [esp + 0xc], ecx
xor eax, edi
mov edi, ecx
add eax, esi
mov esi, ecx
not edi
add eax, edx
mov edx, ecx
rol esi, 7
and edi, dword [esp + 8]
rol edx, 0x15
mov dword [esp + 0x14], eax
mov eax, ecx
mov eax, dword [esp + 0x24]
xor esi, edx
mov edx, ecx
rol edx, 0x1a
xor esi, edx
mov edx, ecx
and edx, dword [esp + 0x20]
xor edi, edx
mov edx, dword [eax + 0x14]
mov eax, dword [esp + 0x14]
bswap edx
mov ecx, eax
mov dword [esp + 0x50], edx
add edx, dword [esp + 0x18]
and ecx, ebx
add edx, edi
mov edi, eax
lea esi, [esi + edx + 0x59f111f1]
mov edx, eax
rol edi, 0xa
rol edx, 0x13
xor edi, edx
mov edx, eax
xor eax, ebx
and eax, ebp
rol edx, 0x1e
xor edi, edx
xor eax, ecx
add eax, edi
mov edi, dword [esp + 4]
add eax, esi
mov edx, eax
add edi, esi
mov eax, edi
mov esi, edi
mov dword [esp + 4], edi
rol eax, 0x15
rol esi, 7
xor esi, eax
mov eax, edi
rol eax, 0x1a
xor esi, eax
mov eax, edi
not edi
and eax, dword [esp + 0xc]
and edi, dword [esp + 0x20]
xor edi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x18]
bswap eax
mov dword [esp + 0x54], eax
add eax, dword [esp + 8]
add eax, edi
mov edi, edx
lea ebx, [esi + eax - 0x6dc07d5c]
mov esi, edx
mov eax, dword [esp + 0x14]
rol edx, 0xa
mov ecx, edi
rol esi, 0x13
add ebp, ebx
mov dword [esp + 0x1c], ecx
xor edx, esi
mov esi, edi
rol esi, 0x1e
xor edx, esi
mov esi, edi
xor edi, eax
and edi, dword [esp + 0x10]
and esi, eax
mov eax, ebp
rol eax, 0x15
xor edi, esi
mov esi, ebp
add edi, edx
mov edx, ebp
not esi
add edi, ebx
rol edx, 7
mov ebx, dword [esp + 4]
and esi, dword [esp + 0xc]
xor edx, eax
mov eax, ebp
mov dword [esp + 0x18], edi
rol eax, 0x1a
xor edx, eax
mov eax, ebp
and eax, ebx
xor esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x1c]
bswap eax
mov dword [esp + 0x58], eax
add eax, dword [esp + 0x20]
add eax, esi
mov esi, edi
lea eax, [edx + eax - 0x54e3a12b]
mov edx, edi
rol esi, 0xa
rol edx, 0x13
mov dword [esp + 8], eax
xor esi, edx
mov edx, edi
rol edx, 0x1e
xor esi, edx
mov edx, edi
xor edi, ecx
and edi, dword [esp + 0x14]
and edx, ecx
mov ecx, dword [esp + 0x10]
xor edi, edx
mov edx, dword [esp + 8]
add edi, esi
add ecx, edx
add edi, edx
mov eax, ecx
mov edx, ecx
mov esi, ecx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x28], edi
rol eax, 0x15
rol edx, 7
not esi
xor edx, eax
mov eax, ecx
and esi, ebx
mov ebx, dword [esp + 0x18]
rol eax, 0x1a
xor edx, eax
mov eax, ecx
mov ecx, edi
and eax, ebp
xor esi, eax
mov eax, dword [esp + 0x24]
xor ecx, ebx
and ecx, dword [esp + 0x1c]
mov eax, dword [eax + 0x20]
bswap eax
mov dword [esp + 0x5c], eax
add eax, dword [esp + 0xc]
add eax, esi
mov esi, edi
lea eax, [edx + eax - 0x27f85568]
mov edx, edi
rol esi, 0xa
rol edx, 0x13
xor esi, edx
mov edx, edi
rol edx, 0x1e
xor esi, edx
mov edx, edi
and edx, ebx
xor ecx, edx
add ecx, esi
mov esi, dword [esp + 0x14]
add ecx, eax
mov dword [esp + 8], ecx
add esi, eax
mov eax, esi
mov edx, esi
mov dword [esp + 0x14], esi
rol eax, 0x15
rol edx, 7
xor edx, eax
mov eax, esi
rol eax, 0x1a
xor edx, eax
mov eax, esi
not esi
and eax, dword [esp + 0x10]
and esi, ebp
xor esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x24]
bswap eax
mov dword [esp + 0x60], eax
add eax, dword [esp + 4]
add eax, esi
mov esi, ecx
lea eax, [edx + eax + 0x12835b01]
mov edx, ecx
rol esi, 0xa
rol edx, 0x13
xor esi, edx
mov edx, ecx
rol edx, 0x1e
xor esi, edx
mov edx, ecx
xor ecx, edi
and ecx, dword [esp + 0x18]
and edx, edi
mov edi, dword [esp + 0x14]
xor ecx, edx
add ecx, esi
mov esi, dword [esp + 0x1c]
add ecx, eax
mov ebx, ecx
mov dword [esp + 4], ebx
add esi, eax
mov eax, esi
mov edx, esi
mov dword [esp + 0x1c], esi
rol eax, 0x15
rol edx, 7
xor edx, eax
mov eax, esi
rol eax, 0x1a
xor edx, eax
mov eax, esi
not esi
and esi, dword [esp + 0x10]
and eax, edi
xor esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x28]
bswap eax
mov dword [esp + 0x64], eax
add eax, ebp
mov ebp, dword [esp + 8]
add eax, esi
mov esi, ecx
lea eax, [edx + eax + 0x243185be]
mov edx, ecx
rol esi, 0xa
rol edx, 0x13
xor esi, edx
mov edx, ecx
rol edx, 0x1e
xor esi, edx
mov edx, ecx
xor ecx, ebp
and ecx, dword [esp + 0x28]
and edx, ebp
xor ecx, edx
add ecx, esi
mov esi, dword [esp + 0x18]
add ecx, eax
add esi, eax
mov eax, esi
mov edx, esi
mov dword [esp + 0x18], esi
rol eax, 0x15
rol edx, 7
xor edx, eax
mov eax, esi
rol eax, 0x1a
xor edx, eax
mov eax, esi
not esi
and eax, dword [esp + 0x1c]
and esi, edi
xor esi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x2c]
bswap eax
mov dword [esp + 0x68], eax
add eax, dword [esp + 0x10]
add eax, esi
mov esi, ecx
rol ecx, 0x13
lea ebp, [edx + eax + 0x550c7dc3]
mov edx, esi
mov eax, ebx
mov edi, esi
rol edx, 0xa
mov dword [esp + 0xc], edi
xor edx, ecx
mov ecx, esi
rol ecx, 0x1e
xor edx, ecx
mov ecx, esi
and ecx, ebx
mov ebx, esi
xor ebx, eax
and ebx, dword [esp + 8]
xor ebx, ecx
add ebx, edx
mov edx, dword [esp + 0x28]
add ebx, ebp
mov esi, ebx
mov dword [esp + 0x10], ebx
and esi, edi
add edx, ebp
mov ebp, dword [esp + 0x18]
mov eax, edx
mov ecx, edx
mov dword [esp + 0x28], edx
rol eax, 0x15
rol ecx, 7
xor ecx, eax
mov eax, edx
rol eax, 0x1a
xor ecx, eax
mov eax, edx
not edx
and edx, dword [esp + 0x1c]
and eax, ebp
xor edx, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 0x30]
bswap eax
mov dword [esp + 0x6c], eax
add eax, dword [esp + 0x14]
add eax, edx
mov edx, ebx
lea ecx, [ecx + eax + 0x72be5d74]
mov eax, ebx
rol edx, 0xa
rol eax, 0x13
xor edx, eax
mov eax, ebx
rol eax, 0x1e
xor edx, eax
mov eax, ebx
xor eax, edi
mov edi, dword [esp + 8]
and eax, dword [esp + 4]
add edi, ecx
xor eax, esi
mov esi, edi
mov dword [esp + 8], edi
add eax, edx
mov edx, edi
not esi
add eax, ecx
mov ecx, edi
rol edx, 7
and esi, ebp
rol ecx, 0x15
mov dword [esp + 0x20], eax
xor edx, ecx
mov ecx, edi
rol ecx, 0x1a
xor edx, ecx
mov ecx, edi
mov edi, eax
and ecx, dword [esp + 0x28]
xor esi, ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x34]
bswap ecx
mov dword [esp + 0x70], ecx
add ecx, dword [esp + 0x1c]
add ecx, esi
mov esi, eax
lea ebx, [edx + ecx - 0x7f214e02]
mov ecx, dword [esp + 0x10]
mov edx, eax
rol esi, 0xa
rol edx, 0x13
xor esi, edx
mov edx, eax
rol edx, 0x1e
xor edi, ecx
xor esi, edx
mov edx, eax
and edi, dword [esp + 0xc]
and edx, ecx
xor edi, edx
add edi, esi
mov esi, dword [esp + 4]
add edi, ebx
mov ebp, edi
and ebp, eax
add esi, ebx
mov ebx, edi
mov ecx, esi
mov edx, esi
mov dword [esp + 4], esi
rol ebx, 0xa
rol ecx, 0x15
rol edx, 7
xor edx, ecx
mov ecx, esi
rol ecx, 0x1a
xor edx, ecx
mov ecx, esi
not esi
and ecx, dword [esp + 8]
and esi, dword [esp + 0x28]
xor esi, ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x38]
bswap ecx
mov dword [esp + 0x74], ecx
add ecx, dword [esp + 0x18]
mov dword [esp + 0x18], edi
add ecx, esi
lea ecx, [edx + ecx - 0x6423f959]
mov edx, edi
rol edx, 0x13
xor ebx, edx
mov edx, edi
xor edi, eax
mov eax, dword [esp + 0xc]
rol edx, 0x1e
xor ebx, edx
mov edx, edi
and edx, dword [esp + 0x10]
add eax, ecx
mov esi, eax
mov dword [esp + 0xc], eax
and esi, dword [esp + 4]
xor edx, ebp
add edx, ebx
mov ebx, eax
add edx, ecx
mov ecx, eax
rol ebx, 7
rol ecx, 0x15
mov dword [esp + 0x14], edx
xor ebx, ecx
mov ecx, eax
rol ecx, 0x1a
xor ebx, ecx
mov ecx, eax
mov eax, dword [esp + 0x24]
not ecx
and ecx, dword [esp + 8]
xor ecx, esi
mov esi, dword [eax + 0x3c]
mov eax, edx
rol eax, 0xa
bswap esi
mov dword [esp + 0x78], esi
add esi, dword [esp + 0x28]
add esi, ecx
lea ecx, [ebx + esi - 0x3e640e8c]
mov esi, edx
rol esi, 0x13
add dword [esp + 0x10], ecx
xor eax, esi
mov esi, edx
rol esi, 0x1e
xor eax, esi
mov esi, edi
mov edi, 0x12
and esi, edx
xor esi, ebp
add esi, eax
add esi, ecx
nop word cs:[eax + eax]
nop dword [eax]
lea ecx, [edi - 1]
mov ebp, esi
and ecx, 9
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + ecx*4 + 0x3c]
mov dword [esp + 0x34], ecx
mov ecx, edx
mov esi, edx
mov dword [esp + 0x2c], edx
rol ecx, 0x19
shr esi, 3
xor esi, ecx
mov ecx, edx
lea edx, [edi - 2]
rol ecx, 0xe
and edx, 8
xor esi, ecx
lea ecx, [edi + 0xc]
mov dword [esp + 0x30], edx
and ecx, 0xe
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov ebx, ecx
mov eax, ecx
shr ecx, 0xa
rol ebx, 0xf
rol eax, 0xd
xor ecx, ebx
mov ebx, dword [esp + edx*4 + 0x3c]
xor ecx, eax
lea eax, [edi + 7]
and eax, 9
add ebx, dword [esp + eax*4 + 0x3c]
add ebx, esi
add ebx, ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + edx*4 + 0x3c], ebx
mov edx, ebp
mov eax, ecx
mov esi, ecx
rol eax, 0x15
rol esi, 7
xor esi, eax
mov eax, ecx
rol eax, 0x1a
xor esi, eax
mov eax, dword [esp + 0xc]
add esi, dword [esp + 8]
and eax, ecx
not ecx
and ecx, dword [esp + 4]
xor ecx, eax
mov eax, ebp
add ecx, esi
mov esi, ebp
rol eax, 0x13
add ecx, dword [edi*4 + 0x581858]
rol esi, 0xa
xor esi, eax
mov eax, ebp
rol eax, 0x1e
xor esi, eax
mov eax, ebp
mov ebp, dword [esp + 0x20]
add ecx, ebx
mov ebx, dword [esp + 0x14]
add ebp, ecx
xor edx, ebx
and eax, ebx
mov dword [esp + 0x20], ebp
and edx, dword [esp + 0x18]
xor edx, eax
mov eax, edi
and eax, 0xa
add edx, esi
mov dword [esp + 0x38], eax
mov eax, dword [esp + eax*4 + 0x3c]
add edx, ecx
mov dword [esp + 8], edx
mov ecx, eax
mov esi, eax
shr eax, 3
rol ecx, 0x19
rol esi, 0xe
xor eax, ecx
lea ecx, [edi + 0xd]
and ecx, 0xf
xor eax, esi
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov esi, ecx
mov ebx, ecx
shr ecx, 0xa
rol esi, 0xf
rol ebx, 0xd
xor ecx, esi
lea esi, [edi + 8]
xor ecx, ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x8c], esi
and esi, 0xa
add ebx, dword [esp + esi*4 + 0x3c]
add ebx, eax
mov eax, ebp
add ebx, ecx
mov ecx, ebp
rol eax, 0x15
rol ecx, 7
mov dword [esp + 0x2c], ebx
mov ebx, dword [esp + 4]
xor ecx, eax
mov eax, ebp
rol eax, 0x1a
xor ecx, eax
mov eax, ebp
not ebp
and eax, dword [esp + 0x10]
and ebp, dword [esp + 0xc]
add ebx, dword [edi*4 + 0x58185c]
xor ebp, eax
mov eax, dword [esp + 0x34]
add ebx, ebp
mov ebp, edi
add ebx, ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x28], ebp
add ebx, ecx
mov dword [esp + eax*4 + 0x3c], ecx
mov eax, edx
mov ecx, edx
mov esi, ebx
mov ebx, dword [esp + 0x1c]
rol eax, 0x13
rol ecx, 0xa
xor ecx, eax
mov eax, edx
rol eax, 0x1e
xor ecx, eax
mov eax, edx
xor edx, ebx
and eax, ebx
mov ebx, dword [esp + 0x18]
and edx, dword [esp + 0x14]
add ebx, esi
xor edx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
add edx, ecx
add esi, edx
mov dword [esp + 4], esi
mov eax, dword [esp + eax*4 + 0x48]
mov ecx, eax
mov edx, eax
shr eax, 3
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
lea ecx, [edi + 0xe]
and ecx, 8
xor eax, edx
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov esi, ecx
shr ecx, 0xa
rol edx, 0xf
rol esi, 0xd
xor ecx, edx
lea edx, [edi + 9]
mov edi, dword [esp + 0x38]
xor ecx, esi
and edx, 0xb
mov esi, dword [esp + edi*4 + 0x3c]
add esi, dword [esp + edx*4 + 0x3c]
mov edx, dword [esp + 4]
add esi, eax
mov eax, ebx
add esi, ecx
mov ecx, ebx
rol eax, 0x15
rol ecx, 7
mov dword [esp + edi*4 + 0x3c], esi
mov edi, dword [esp + 8]
xor ecx, eax
mov eax, ebx
rol eax, 0x1a
xor ecx, eax
mov eax, ebx
not ebx
and eax, dword [esp + 0x20]
and ebx, dword [esp + 0x10]
xor ebx, eax
mov eax, dword [esp + 0xc]
add eax, dword [ebp*4 + 0x581860]
add eax, esi
mov esi, dword [esp + 0x14]
add eax, ebx
add eax, ecx
mov ecx, edx
mov ebx, eax
mov eax, edx
rol ecx, 0xa
rol eax, 0x13
add esi, ebx
xor ecx, eax
mov eax, edx
mov dword [esp + 0x14], esi
rol eax, 0x1e
xor ecx, eax
mov eax, edx
xor edx, edi
and edx, dword [esp + 0x1c]
and eax, edi
xor edx, eax
lea eax, [ebp + 2]
and eax, 0xc
add edx, ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + eax*4 + 0x3c]
add ebx, edx
mov dword [esp + 0xc], ebx
mov ecx, eax
mov edx, eax
shr eax, 3
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
mov ecx, dword [esp + 0x34]
xor eax, edx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov ebx, ecx
shr ecx, 0xa
rol edx, 0xf
rol ebx, 0xd
xor ecx, edx
lea edx, [ebp + 0xa]
xor ecx, ebx
lea ebx, [ebp + 1]
and edx, 0xc
and ebx, 0xb
mov edi, dword [esp + ebx*4 + 0x3c]
add edi, dword [esp + edx*4 + 0x3c]
mov edx, esi
not edx
and edx, dword [esp + 0x20]
add edi, eax
mov eax, esi
add edi, ecx
mov ecx, esi
rol eax, 0x15
rol ecx, 7
mov dword [esp + ebx*4 + 0x3c], edi
mov ebx, dword [esp + 0x1c]
xor ecx, eax
mov eax, esi
rol eax, 0x1a
xor ecx, eax
mov eax, esi
and eax, dword [esp + 0x18]
xor edx, eax
mov eax, dword [esp + 0x10]
add eax, dword [ebp*4 + 0x581864]
add eax, edi
add eax, edx
mov edx, dword [esp + 0xc]
add eax, ecx
mov ebp, eax
add ebx, ebp
mov eax, edx
mov ecx, edx
mov esi, edx
mov dword [esp + 0x1c], ebx
rol eax, 0x13
rol ecx, 0xa
xor ecx, eax
mov eax, edx
rol eax, 0x1e
xor ecx, eax
mov eax, dword [esp + 4]
xor edx, eax
and esi, eax
mov eax, dword [esp + 0x30]
and edx, dword [esp + 8]
mov eax, dword [esp + eax*4 + 0x50]
xor edx, esi
mov esi, dword [esp + 0x28]
add edx, ecx
add ebp, edx
mov ecx, eax
mov edx, eax
shr eax, 3
mov dword [esp + 0x10], ebp
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
lea ecx, [esi + 0x10]
and ecx, 0xa
xor eax, edx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov edi, ecx
shr ecx, 0xa
rol edx, 0xf
rol edi, 0xd
xor ecx, edx
lea edx, [esi + 0xb]
mov esi, dword [esp + 0x38]
xor ecx, edi
and edx, 0xd
mov edi, dword [esp + esi*4 + 0x3c]
add edi, dword [esp + edx*4 + 0x3c]
mov edx, ebx
not edx
and edx, dword [esp + 0x18]
add edi, eax
mov eax, ebx
add edi, ecx
mov ecx, ebx
rol eax, 0x15
rol ecx, 7
mov dword [esp + esi*4 + 0x3c], edi
xor ecx, eax
mov eax, ebx
rol eax, 0x1a
xor ecx, eax
mov eax, ebx
mov ebx, dword [esp + 0x28]
and eax, dword [esp + 0x14]
mov esi, ebx
mov esi, dword [esp + 0x88]
xor edx, eax
mov eax, dword [esp + 0x20]
add eax, dword [ebx*4 + 0x581868]
add eax, edi
mov edi, dword [esp + 0xc]
add eax, edx
mov edx, ebp
add eax, ecx
mov ecx, ebp
rol edx, 0xa
rol ecx, 0x13
add dword [esp + 8], eax
xor edx, ecx
mov ecx, ebp
rol ecx, 0x1e
xor edx, ecx
mov ecx, ebp
xor ebp, edi
and ebp, dword [esp + 4]
and ecx, edi
mov edi, ebx
xor ebp, ecx
add ebp, edx
add ebp, eax
lea eax, [ebx + 4]
and eax, 0xe
mov dword [esp + 0x20], eax
mov eax, dword [esp + eax*4 + 0x3c]
mov ecx, eax
mov edx, eax
shr eax, 3
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
lea ecx, [ebx + 0x11]
and ecx, 0xb
xor eax, edx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov edi, ecx
shr ecx, 0xa
rol edx, 0xf
rol edi, 0xd
xor ecx, edx
lea edx, [ebx + 3]
and edx, 0xd
xor ecx, edi
mov edi, dword [esp + edx*4 + 0x3c]
add edi, dword [esp + esi*4 + 0x3c]
mov esi, dword [esp + 0x10]
add edi, eax
add edi, ecx
mov dword [esp + edx*4 + 0x3c], edi
mov edx, dword [esp + 8]
mov eax, edx
mov ecx, edx
rol eax, 0x15
rol ecx, 7
xor ecx, eax
mov eax, edx
rol eax, 0x1a
xor ecx, eax
mov eax, edx
not edx
and eax, dword [esp + 0x1c]
and edx, dword [esp + 0x14]
xor edx, eax
mov eax, dword [esp + 0x18]
add eax, dword [ebx*4 + 0x58186c]
mov ebx, ebp
xor ebx, esi
and ebx, dword [esp + 0xc]
add eax, edi
add eax, edx
mov edx, ebp
add eax, ecx
mov ecx, ebp
rol edx, 0xa
rol ecx, 0x13
add dword [esp + 4], eax
xor edx, ecx
mov ecx, ebp
rol ecx, 0x1e
xor edx, ecx
mov ecx, ebp
and ecx, esi
mov esi, dword [esp + 0x84]
xor ebx, ecx
add ebx, edx
add ebx, eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x18], ebx
mov eax, dword [esp + eax*4 + 0x58]
mov ecx, eax
mov edx, eax
shr eax, 3
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
mov ecx, dword [esp + 0x28]
xor eax, edx
lea ecx, [ecx + 0x12]
and ecx, 0xc
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov edi, ecx
shr ecx, 0xa
rol edx, 0xf
rol edi, 0xd
xor ecx, edx
xor ecx, edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x20], ebp
mov edx, dword [esp + edi*4 + 0x3c]
add edx, dword [esp + esi*4 + 0x3c]
mov esi, dword [esp + 4]
add edx, eax
mov eax, esi
add edx, ecx
mov ecx, esi
rol eax, 0x15
rol ecx, 7
mov dword [esp + edi*4 + 0x3c], edx
mov edi, dword [esp + 0x28]
xor ecx, eax
mov eax, esi
rol eax, 0x1a
xor ecx, eax
mov eax, esi
not esi
and eax, dword [esp + 8]
and esi, dword [esp + 0x1c]
xor esi, eax
mov eax, dword [esp + 0x14]
add eax, dword [edi*4 + 0x581870]
add eax, edx
mov edx, ebx
add eax, esi
rol edx, 0xa
mov esi, ebx
add eax, ecx
mov ecx, ebx
xor esi, ebp
rol ecx, 0x13
add dword [esp + 0xc], eax
xor edx, ecx
mov ecx, ebx
rol ecx, 0x1e
xor edx, ecx
mov ecx, ebx
mov ebx, esi
and ebx, dword [esp + 0x10]
and ecx, ebp
mov ebp, edi
mov dword [esp + 0x30], ecx
xor ebx, ecx
add ebx, edx
add ebx, eax
lea eax, [edi + 6]
mov dword [esp + 0x34], eax
and eax, 8
and esi, ebx
mov dword [esp + 0x14], ebx
mov eax, dword [esp + eax*4 + 0x3c]
xor esi, dword [esp + 0x30]
mov ecx, eax
mov edx, eax
shr eax, 3
rol ecx, 0x19
rol edx, 0xe
xor eax, ecx
lea ecx, [edi + 0x13]
and ecx, 0xd
xor eax, edx
mov ecx, dword [esp + ecx*4 + 0x3c]
mov edx, ecx
mov edi, ecx
shr ecx, 0xa
rol edx, 0xf
rol edi, 0xd
xor ecx, edx
mov edx, ebp
lea edx, [ebp + 5]
mov ebp, dword [esp + 0x2c]
and edx, 0xf
xor ecx, edi
mov edi, dword [esp + edx*4 + 0x3c]
add edi, dword [esp + ebp*4 + 0x3c]
mov ebp, dword [esp + 0x28]
add edi, eax
add edi, ecx
mov dword [esp + edx*4 + 0x3c], edi
mov edx, dword [esp + 0xc]
mov eax, edx
mov ecx, edx
rol eax, 0x15
rol ecx, 7
xor ecx, eax
mov eax, edx
rol eax, 0x1a
xor ecx, eax
mov eax, edx
not edx
and eax, dword [esp + 4]
and edx, dword [esp + 8]
xor edx, eax
mov eax, dword [esp + 0x1c]
add eax, dword [ebp*4 + 0x581874]
mov ebp, ebx
rol ebp, 0x13
add eax, edi
mov edi, ebx
add eax, edx
mov edx, ebx
rol edi, 0x1e
rol edx, 0xa
add eax, ecx
xor edx, ebp
add dword [esp + 0x10], eax
xor edx, edi
mov edi, dword [esp + 0x8c]
add esi, edx
add esi, eax
cmp dword [esp + 0x34], 0x40
jb 0x47cbf0
movd xmm2, dword [esp + 0x20]
movd xmm3, dword [esp + 0x18]
movd xmm4, dword [esp + 0x14]
movd xmm0, dword [esp + 0xc]
movd xmm1, dword [esp + 0x10]
movd xmm5, esi
movd xmm6, dword [esp + 8]
movd xmm7, dword [esp + 4]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x80]
mov eax, dword [esp + 0x7c]
punpckldq xmm3, xmm2
punpckldq xmm5, xmm4
punpckldq xmm1, xmm0
movdqu xmm0, xmmword [esp + 0x90]
punpckldq xmm7, xmm6
add edx, 0x40
dec ecx
punpcklqdq xmm5, xmm3
movdqu xmm3, xmmword [esp + 0xa0]
punpcklqdq xmm1, xmm7
paddd xmm0, xmm1
paddd xmm3, xmm5
movdqu xmmword [eax], xmm3
movdqu xmmword [eax + 0x10], xmm0
jne 0x47c450
add esp, 0xbc
pop esi
pop edi
pop ebx
pop ebp
ret