Function at 0x488320
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 + 0x78], ecx
mov ecx, dword [esp + 0xd0]
test ecx, ecx
je 0x4891a3
mov eax, dword [esp + 0x78]
movdqu xmm3, xmmword [eax]
movdqu xmm0, xmmword [eax + 0x10]
nop word [eax + eax]
movd ebp, xmm0
mov eax, dword [edx]
mov dword [esp + 0x24], edx
mov dword [esp + 0x7c], ecx
pshufd xmm2, xmm0, 0xe5
movdqu xmmword [esp + 0x90], xmm0
movdqu xmmword [esp + 0xa0], xmm3
mov edx, ebp
mov edi, ebp
mov ecx, ebp
mov ebx, ebp
mov dword [esp + 0x18], ebp
rol edx, 0x15
rol edi, 7
rol ecx, 0x1a
not ebx
xor edi, edx
mov edx, ebp
xor edi, ecx
movd ecx, xmm2
pshufd xmm2, xmm0, 0x4e
bswap eax
movd esi, xmm2
pshufd xmm2, xmm0, 0xe7
mov dword [esp], ecx
and ecx, ebp
mov dword [esp + 0x38], eax
movd ebp, xmm2
and ebx, esi
pshufd xmm2, xmm3, 0xe7
add ebp, edi
or ebx, ecx
movd edi, xmm3
add ebp, ebx
mov ebx, edi
mov dword [esp + 0x14], edi
lea ecx, [ebp + eax]
lea eax, [eax + ebp + 0x428a2f98]
rol ebx, 0xa
mov dword [esp + 8], eax
mov eax, edi
rol eax, 0x13
xor ebx, eax
mov eax, edi
rol eax, 0x1e
xor ebx, eax
movd eax, xmm2
pshufd xmm2, xmm3, 0xe5
lea edi, [eax + ecx + 0x428a2f98]
mov dword [esp + 4], ebx
mov eax, edi
mov ecx, edi
mov ebp, edi
mov dword [esp + 0x28], edi
rol eax, 0x15
rol ecx, 7
and ebp, edx
movd edx, xmm2
pshufd xmm2, xmm3, 0x4e
xor ecx, eax
mov eax, edi
mov dword [esp + 0x20], edx
movd ebx, xmm2
rol eax, 0x1a
xor ecx, eax
mov eax, edi
mov edi, ebx
not eax
and eax, dword [esp]
or eax, ebp
mov ebp, dword [esp + 0x14]
add eax, esi
mov esi, edx
mov edx, dword [esp + 0x24]
and esi, ebp
mov edx, dword [edx + 4]
mov dword [esp + 0xc], esi
bswap edx
add eax, edx
mov dword [esp + 0x3c], edx
lea esi, [eax + ecx]
lea eax, [ecx + eax + 0x71374491]
lea esi, [ebx + esi + 0x71374491]
and ebx, ebp
mov dword [esp + 0x10], esi
mov esi, ebp
mov ebp, dword [esp + 0x20]
and edi, ebp
xor edi, dword [esp + 0xc]
xor edi, ebx
mov ebx, dword [esp + 0xc]
add edi, dword [esp + 4]
mov dword [esp + 4], eax
add edi, dword [esp + 8]
mov ecx, edi
mov edx, edi
mov dword [esp + 8], edi
rol ecx, 0x13
rol edx, 0xa
xor edx, ecx
mov ecx, edi
rol ecx, 0x1e
xor edx, ecx
mov ecx, edi
and edi, ebp
and ecx, esi
mov esi, dword [esp + 0x28]
xor ebx, ecx
xor ebx, edi
mov edi, dword [esp + 0x10]
add ebx, edx
add ebx, dword [esp + 4]
mov eax, edi
mov edx, edi
rol eax, 0x15
rol edx, 7
xor edx, eax
mov eax, edi
mov dword [esp + 0xc], ebx
rol eax, 0x1a
xor edx, eax
mov eax, edi
not edi
and edi, dword [esp + 0x18]
and eax, esi
or edi, eax
mov eax, dword [esp + 0x24]
mov eax, dword [eax + 8]
bswap eax
mov dword [esp + 0x40], eax
add eax, dword [esp]
add eax, edi
lea edi, [eax + edx]
mov dword [esp], edi
lea edi, [edx + eax - 0x4a3f0431]
mov edx, ebx
mov eax, ebx
rol ebx, 0xa
rol edx, 0x13
xor ebx, edx
mov edx, eax
rol edx, 0x1e
xor ebx, edx
mov edx, eax
and eax, dword [esp + 0x14]
and edx, dword [esp + 8]
xor ecx, edx
xor ecx, eax
mov eax, dword [esp]
add ecx, ebx
add ecx, edi
mov dword [esp + 0x1c], ecx
lea ebx, [ebp + eax - 0x4a3f0431]
mov ebp, ecx
mov eax, ebx
mov edi, ebx
mov dword [esp + 4], ebx
rol ebp, 0xa
rol eax, 0x15
rol edi, 7
xor edi, eax
mov eax, ebx
rol eax, 0x1a
xor edi, eax
mov eax, ebx
not ebx
and eax, dword [esp + 0x10]
and ebx, esi
mov esi, ecx
and esi, dword [esp + 0xc]
or ebx, eax
mov eax, dword [esp + 0x24]
xor edx, esi
mov dword [esp], esi
mov eax, dword [eax + 0xc]
bswap eax
mov dword [esp + 0x44], eax
add eax, dword [esp + 0x18]
add eax, ebx
lea ebx, [eax + edi]
lea edi, [edi + eax - 0x164a245b]
mov eax, ecx
rol eax, 0x13
xor ebp, eax
mov eax, ecx
and ecx, dword [esp + 8]
rol eax, 0x1e
xor ebp, eax
mov eax, dword [esp + 0x14]
xor edx, ecx
add edx, ebp
lea ebx, [eax + ebx - 0x164a245b]
add edx, edi
mov eax, dword [esp + 0x24]
mov ecx, ebx
mov edi, ebx
mov dword [esp + 0x18], ebx
mov ebp, edx
mov dword [esp + 0x20], edx
rol ecx, 0x15
rol edi, 7
rol ebp, 0xa
xor edi, ecx
mov ecx, ebx
rol ecx, 0x1a
mov esi, eax
xor edi, ecx
mov ecx, ebx
not ebx
and ecx, dword [esp + 4]
and ebx, dword [esp + 0x10]
or ebx, ecx
mov ecx, dword [eax + 0x10]
mov eax, edx
bswap ecx
mov dword [esp + 0x48], ecx
add ecx, dword [esp + 0x28]
add ecx, ebx
lea ecx, [edi + ecx + 0x3956c25b]
mov edi, edx
rol edi, 0x13
xor ebp, edi
mov edi, edx
and edx, dword [esp + 0x1c]
rol edi, 0x1e
xor ebp, edi
mov edi, eax
mov eax, dword [esp]
and edi, dword [esp + 0xc]
mov dword [esp + 0x14], edx
xor eax, edx
mov edx, esi
xor eax, edi
add eax, ebp
mov ebp, dword [esp + 8]
add eax, ecx
mov dword [esp], eax
mov ebx, eax
add ebp, ecx
mov ecx, ebp
mov edi, ebp
mov dword [esp + 8], ebp
rol ecx, 0x15
rol edi, 7
xor edi, ecx
mov ecx, ebp
rol ecx, 0x1a
xor edi, ecx
mov ecx, ebp
not ebp
and ecx, dword [esp + 0x18]
and ebp, dword [esp + 4]
or ebp, ecx
mov ecx, dword [esi + 0x14]
mov esi, dword [esp + 0x20]
bswap ecx
and ebx, esi
mov dword [esp + 0x4c], ecx
add ecx, dword [esp + 0x10]
mov dword [esp + 0x10], ebx
add ecx, ebp
mov ebp, eax
lea ecx, [edi + ecx + 0x59f111f1]
mov edi, eax
rol ebp, 0xa
rol edi, 0x13
xor ebp, edi
mov edi, eax
rol edi, 0x1e
xor ebp, edi
mov edi, eax
mov eax, dword [esp + 0x14]
and edi, dword [esp + 0x1c]
xor eax, ebx
mov ebx, eax
xor ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0xc]
add ebx, ecx
mov dword [esp + 0x14], ebx
add ebp, ecx
mov ecx, ebp
mov edi, ebp
mov dword [esp + 0xc], ebp
rol ecx, 0x15
rol edi, 7
xor edi, ecx
mov ecx, ebp
rol ecx, 0x1a
xor edi, ecx
mov ecx, ebp
not ebp
and ecx, dword [esp + 8]
and ebp, dword [esp + 0x18]
or ebp, ecx
mov ecx, dword [edx + 0x18]
mov edx, ebx
and edx, dword [esp]
bswap ecx
mov dword [esp + 0x50], ecx
add ecx, dword [esp + 4]
add ecx, ebp
mov ebp, ebx
lea ecx, [edi + ecx - 0x6dc07d5c]
mov edi, ebx
rol ebp, 0xa
rol edi, 0x13
xor ebp, edi
mov edi, ebx
rol edi, 0x1e
xor ebp, edi
mov edi, ebx
mov ebx, dword [esp + 0x10]
and edi, esi
mov esi, dword [esp + 0x24]
xor ebx, edx
xor ebx, edi
add ebx, ebp
mov ebp, dword [esp + 0x1c]
add ebx, ecx
mov eax, ebx
mov dword [esp + 0x10], ebx
and eax, dword [esp + 0x14]
add ebp, ecx
mov ecx, ebp
mov edi, ebp
mov dword [esp + 0x1c], ebp
rol ecx, 0x15
rol edi, 7
xor edi, ecx
mov ecx, ebp
xor edx, eax
mov dword [esp + 4], eax
rol ecx, 0x1a
xor edi, ecx
mov ecx, ebp
not ebp
and ecx, dword [esp + 0xc]
and ebp, dword [esp + 8]
or ebp, ecx
mov ecx, dword [esi + 0x1c]
bswap ecx
mov dword [esp + 0x54], ecx
add ecx, dword [esp + 0x18]
add ecx, ebp
mov ebp, ebx
lea ecx, [edi + ecx - 0x54e3a12b]
mov edi, ebx
rol ebp, 0xa
rol edi, 0x13
xor ebp, edi
mov edi, ebx
rol edi, 0x1e
xor ebp, edi
mov edi, ebx
and edi, dword [esp]
xor edx, edi
add edx, ebp
mov ebp, dword [esp + 0x20]
add edx, ecx
mov dword [esp + 0x18], edx
add ebp, ecx
mov ecx, ebp
mov edi, ebp
mov eax, ebp
mov dword [esp + 0x20], ebp
rol ecx, 0x15
rol edi, 7
xor edi, ecx
mov ecx, ebp
rol ecx, 0x1a
xor edi, ecx
mov ecx, ebp
not ebp
and ecx, dword [esp + 0x1c]
and ebp, dword [esp + 0xc]
or ebp, ecx
mov ecx, dword [esi + 0x20]
mov esi, edx
rol esi, 0x13
bswap ecx
mov dword [esp + 0x58], ecx
add ecx, dword [esp + 8]
add ecx, ebp
mov ebp, edx
lea ecx, [edi + ecx - 0x27f85568]
mov edi, edx
and ebp, ebx
rol edi, 0xa
xor edi, esi
mov esi, edx
rol esi, 0x1e
xor edi, esi
mov esi, edx
mov edx, dword [esp + 4]
and esi, dword [esp + 0x14]
xor edx, ebp
xor edx, esi
add edx, edi
mov edi, dword [esp]
add edx, ecx
mov ebx, edx
mov dword [esp + 4], edx
and ebx, dword [esp + 0x18]
add edi, ecx
mov ecx, edi
mov esi, edi
mov dword [esp], edi
rol ecx, 0x15
rol esi, 7
xor esi, ecx
mov ecx, edi
xor ebp, ebx
rol ecx, 0x1a
xor esi, ecx
mov ecx, edi
not edi
and ecx, eax
and edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x24]
or edi, ecx
mov ecx, dword [eax + 0x24]
bswap ecx
mov dword [esp + 0x5c], ecx
add ecx, dword [esp + 0xc]
add ecx, edi
mov edi, edx
lea ecx, [esi + ecx + 0x12835b01]
mov esi, edx
rol edi, 0xa
rol esi, 0x13
xor edi, esi
mov esi, edx
rol esi, 0x1e
xor edi, esi
mov esi, edx
mov edx, dword [esp + 0x14]
and esi, dword [esp + 0x10]
add edx, ecx
xor ebp, esi
mov esi, edx
mov dword [esp + 0x14], edx
add ebp, edi
rol esi, 7
mov edi, edx
add ebp, ecx
mov ecx, edx
not edi
rol ecx, 0x15
and edi, dword [esp + 0x20]
mov dword [esp + 8], ebp
xor esi, ecx
mov ecx, edx
rol ecx, 0x1a
xor esi, ecx
mov ecx, edx
and ecx, dword [esp]
or edi, ecx
mov ecx, dword [eax + 0x28]
mov eax, ebp
and eax, dword [esp + 4]
bswap ecx
mov dword [esp + 0x60], ecx
add ecx, dword [esp + 0x1c]
xor ebx, eax
add ecx, edi
mov edi, ebp
lea ecx, [esi + ecx + 0x243185be]
mov esi, ebp
rol edi, 0xa
rol esi, 0x13
xor edi, esi
mov esi, ebp
and ebp, dword [esp + 0x18]
rol esi, 0x1e
xor edi, esi
xor ebx, ebp
add ebx, edi
mov edi, dword [esp + 0x10]
add ebx, ecx
mov ebp, ebx
mov dword [esp + 0x1c], ebx
and ebp, dword [esp + 8]
add edi, ecx
mov ecx, edi
mov esi, edi
mov dword [esp + 0x10], edi
rol ecx, 0x15
rol esi, 7
xor esi, ecx
mov ecx, edi
xor eax, ebp
rol ecx, 0x1a
xor esi, ecx
mov ecx, edi
not edi
and edi, dword [esp]
and ecx, edx
mov edx, ebx
rol edx, 0x13
or edi, ecx
mov ecx, dword [esp + 0x24]
mov ecx, dword [ecx + 0x2c]
bswap ecx
mov dword [esp + 0x64], ecx
add ecx, dword [esp + 0x20]
add ecx, edi
mov edi, dword [esp + 0x18]
lea ecx, [esi + ecx + 0x550c7dc3]
mov esi, ebx
rol esi, 0xa
xor esi, edx
mov edx, ebx
and ebx, dword [esp + 4]
rol edx, 0x1e
add edi, ecx
xor esi, edx
mov dword [esp + 0x18], edi
xor eax, ebx
add eax, esi
mov esi, edi
add eax, ecx
mov ecx, edi
rol esi, 7
rol ecx, 0x15
mov edx, eax
mov eax, dword [esp + 0x24]
xor esi, ecx
mov ecx, edi
mov ebx, edx
mov dword [esp + 0xc], edx
rol ecx, 0x1a
and ebx, dword [esp + 0x1c]
xor esi, ecx
mov ecx, edi
not edi
and ecx, dword [esp + 0x10]
and edi, dword [esp + 0x14]
xor ebp, ebx
or edi, ecx
mov ecx, dword [eax + 0x30]
bswap ecx
mov dword [esp + 0x68], ecx
add ecx, dword [esp]
add ecx, edi
lea eax, [esi + ecx + 0x72be5d74]
mov ecx, edx
mov esi, edx
rol ecx, 0x13
rol esi, 0xa
xor esi, ecx
mov ecx, edx
rol ecx, 0x1e
xor esi, ecx
mov ecx, edx
mov edx, dword [esp + 4]
and ecx, dword [esp + 8]
add edx, eax
xor ebp, ecx
mov ecx, edx
mov dword [esp + 4], edx
add ebp, esi
rol ecx, 7
mov esi, edx
add ebp, eax
mov eax, edx
not esi
rol eax, 0x15
mov edi, ebp
and esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
xor ecx, eax
mov eax, edx
mov dword [esp], edi
rol eax, 0x1a
xor ecx, eax
mov eax, edx
mov edx, edi
and eax, dword [esp + 0x18]
and edx, dword [esp + 0xc]
or esi, eax
mov eax, dword [ebp + 0x34]
xor ebx, edx
bswap eax
mov dword [esp + 0x6c], eax
add eax, dword [esp + 0x14]
add eax, esi
mov esi, edi
lea eax, [ecx + eax - 0x7f214e02]
mov ecx, edi
rol esi, 0xa
rol ecx, 0x13
xor esi, ecx
mov ecx, edi
rol ecx, 0x1e
xor esi, ecx
mov ecx, edi
mov edi, dword [esp]
and ecx, dword [esp + 0x1c]
xor ebx, ecx
add ebx, esi
mov esi, dword [esp + 8]
add ebx, eax
mov dword [esp + 0x14], ebx
add esi, eax
mov eax, esi
mov ecx, esi
mov dword [esp + 8], esi
rol eax, 0x15
rol ecx, 7
xor ecx, eax
mov eax, esi
rol eax, 0x1a
xor ecx, eax
mov eax, esi
not esi
and eax, dword [esp + 4]
and esi, dword [esp + 0x18]
or esi, eax
mov eax, dword [ebp + 0x38]
mov ebp, ebx
and ebp, dword [esp + 0xc]
bswap eax
mov dword [esp + 0x70], eax
add eax, dword [esp + 0x10]
add eax, esi
mov esi, ebx
lea ecx, [ecx + eax - 0x6423f959]
mov eax, ebx
rol esi, 0xa
rol eax, 0x13
xor esi, eax
mov eax, ebx
rol eax, 0x1e
xor esi, eax
mov eax, ebx
and eax, edi
xor edx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x24]
xor edx, ebp
mov ebp, dword [esp + 0x1c]
add edx, esi
add edx, ecx
mov dword [esp + 0x10], edx
add ebp, ecx
mov ecx, ebp
mov esi, ebp
mov dword [esp + 0x1c], ebp
rol ecx, 0x15
rol esi, 7
xor esi, ecx
mov ecx, ebp
rol ecx, 0x1a
xor esi, ecx
mov ecx, ebp
not ebp
and ecx, dword [esp + 8]
and ebp, dword [esp + 4]
or ebp, ecx
mov ecx, dword [eax + 0x3c]
mov eax, edx
rol eax, 0xa
bswap ecx
mov dword [esp + 0x74], ecx
add ecx, dword [esp + 0x18]
add ecx, ebp
mov ebp, ebx
mov ebx, 0x12
xor ebp, edi
lea ecx, [esi + ecx - 0x3e640e8c]
mov esi, edx
and ebp, edx
rol esi, 0x13
add dword [esp + 0xc], ecx
xor ebp, dword [esp + 0x20]
xor eax, esi
mov esi, edx
rol esi, 0x1e
xor eax, esi
mov esi, edi
add ebp, eax
add ebp, ecx
nop word cs:[eax + eax]
lea ecx, [ebx - 1]
mov dword [esp + 0x18], ebp
and ecx, 9
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + ecx*4 + 0x38]
mov eax, ecx
mov esi, ecx
mov dword [esp + 0x34], ecx
rol eax, 0x19
shr esi, 3
xor esi, eax
mov eax, ecx
mov ecx, ebx
rol eax, 0xe
xor esi, eax
lea eax, [ebx + 0xc]
and eax, 0xe
mov edx, dword [esp + eax*4 + 0x38]
mov dword [esp + 0x88], eax
mov eax, edx
mov edi, edx
shr edx, 0xa
rol eax, 0xf
rol edi, 0xd
xor edx, eax
lea eax, [ebx - 2]
xor edx, edi
lea edi, [ebx + 7]
mov ebx, eax
and ebx, 8
and edi, 9
mov eax, dword [esp + ebx*4 + 0x38]
mov dword [esp + 0x28], ebx
add eax, dword [esp + edi*4 + 0x38]
add eax, esi
mov esi, dword [esp + 0xc]
add eax, edx
mov dword [esp + ebx*4 + 0x38], eax
mov ebx, dword [esp + 0x10]
mov edx, esi
mov edi, esi
mov dword [esp + 0xc], esi
rol edx, 0x15
rol edi, 7
xor edi, edx
mov edx, esi
rol edx, 0x1a
xor edi, edx
mov edx, dword [esp + 0x1c]
add edi, dword [esp + 4]
and edx, esi
not esi
and esi, dword [esp + 8]
or esi, edx
mov edx, ebp
add esi, edi
rol edx, 0xa
add esi, dword [ecx*4 + 0x525e74]
add esi, eax
mov eax, ebp
rol eax, 0x13
add dword [esp], esi
xor edx, eax
mov eax, ebp
rol eax, 0x1e
xor edx, eax
mov eax, ebp
xor ebp, ebx
and ebp, dword [esp + 0x14]
and eax, ebx
mov ebx, ecx
and ecx, 0xa
mov dword [esp + 0x30], ecx
mov dword [esp + 0x20], ebx
xor ebp, eax
add ebp, edx
mov edx, dword [esp + ecx*4 + 0x38]
mov ecx, ebx
add ebp, esi
mov dword [esp + 4], ebp
mov esi, edx
mov edi, edx
shr edx, 3
rol esi, 0x19
rol edi, 0xe
xor edx, esi
lea esi, [ebx + 0xd]
and esi, 0xf
xor edx, edi
mov dword [esp + 0x84], esi
mov esi, dword [esp + esi*4 + 0x38]
mov edi, esi
mov ebx, esi
shr esi, 0xa
rol edi, 0xf
rol ebx, 0xd
xor esi, edi
lea edi, [ecx + 8]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x8c], edi
and edi, 0xa
xor esi, ebx
mov ebx, dword [esp + 8]
add ecx, dword [esp + edi*4 + 0x38]
mov edi, dword [esp]
add ecx, edx
mov edx, edi
add ecx, esi
mov esi, edi
rol edx, 0x15
rol esi, 7
xor esi, edx
mov edx, edi
rol edx, 0x1a
xor esi, edx
mov edx, edi
not edi
and edx, dword [esp + 0xc]
and edi, dword [esp + 0x1c]
or edi, edx
mov edx, dword [esp + 0x20]
add ebx, dword [edx*4 + 0x525e78]
mov edx, dword [esp + 0x2c]
add ebx, edi
mov dword [esp + edx*4 + 0x38], ecx
mov edx, ebp
add ebx, esi
rol edx, 0xa
add ebx, ecx
mov ecx, ebp
rol ecx, 0x13
add dword [esp + 0x14], ebx
xor edx, ecx
mov ecx, ebp
rol ecx, 0x1e
xor edx, ecx
mov ecx, ebp
and ebp, dword [esp + 0x10]
and ecx, dword [esp + 0x18]
xor eax, ecx
xor eax, ebp
mov ebp, dword [esp + 0x30]
add eax, edx
add ebx, eax
mov eax, dword [esp + 0x28]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + eax*4 + 0x44]
mov edx, eax
mov esi, eax
shr eax, 3
rol edx, 0x19
rol esi, 0xe
xor eax, edx
lea edx, [ebx + 0xe]
and edx, 8
xor eax, esi
mov dword [esp + 0x34], edx
mov edx, dword [esp + edx*4 + 0x38]
mov esi, edx
mov edi, edx
shr edx, 0xa
rol esi, 0xf
rol edi, 0xd
xor edx, esi
lea esi, [ebx + 9]
xor edx, edi
mov edi, dword [esp + ebp*4 + 0x38]
and esi, 0xb
add edi, dword [esp + esi*4 + 0x38]
mov esi, dword [esp + 0x14]
add edi, eax
mov eax, esi
add edi, edx
mov edx, esi
rol eax, 0x15
rol edx, 7
mov dword [esp + ebp*4 + 0x38], edi
mov ebp, dword [esp + 0x1c]
xor edx, eax
mov eax, esi
rol eax, 0x1a
xor edx, eax
mov eax, esi
not esi
add ebp, dword [ebx*4 + 0x525e7c]
and eax, dword [esp]
and esi, dword [esp + 0xc]
or esi, eax
add ebp, edi
add ebp, esi
mov esi, dword [esp + 8]
add ebp, edx
add dword [esp + 0x10], ebp
mov eax, esi
mov edx, esi
rol eax, 0x13
rol edx, 0xa
xor edx, eax
mov eax, esi
rol eax, 0x1e
xor edx, eax
mov eax, esi
and esi, dword [esp + 0x18]
and eax, dword [esp + 4]
xor ecx, eax
mov dword [esp + 0x80], eax
mov eax, ebx
xor ecx, esi
add ecx, edx
add ebp, ecx
lea ecx, [ebx + 2]
and ecx, 0xc
mov dword [esp + 0x1c], ebp
mov edx, dword [esp + ecx*4 + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, eax
mov esi, edx
mov edi, edx
shr edx, 3
rol esi, 0x19
rol edi, 0xe
xor edx, esi
mov esi, dword [esp + 0x2c]
xor edx, edi
mov esi, dword [esp + esi*4 + 0x38]
mov edi, esi
mov ebx, esi
shr esi, 0xa
rol edi, 0xf
rol ebx, 0xd
xor esi, edi
lea edi, [eax + 0xa]
xor esi, ebx
lea ebx, [eax + 1]
and edi, 0xc
and ebx, 0xb
mov eax, dword [esp + ebx*4 + 0x38]
add eax, dword [esp + edi*4 + 0x38]
mov edi, dword [esp + 0x10]
add eax, edx
mov edx, edi
add eax, esi
mov esi, edi
rol edx, 0x15
rol esi, 7
mov dword [esp + ebx*4 + 0x38], eax
mov ebx, ecx
xor esi, edx
mov edx, edi
rol edx, 0x1a
xor esi, edx
mov edx, edi
not edi
and edx, dword [esp + 0x14]
and edi, dword [esp]
or edi, edx
mov edx, dword [esp + 0xc]
add edx, dword [ecx*4 + 0x525e80]
add edx, eax
mov eax, ebp
add edx, edi
rol eax, 0x13
mov edi, dword [esp + 0x80]
add edx, esi
mov esi, ebp
mov ecx, edx
mov edx, ebp
and esi, dword [esp + 8]
rol edx, 0xa
xor edx, eax
mov eax, ebp
and ebp, dword [esp + 4]
rol eax, 0x1e
xor edx, eax
mov eax, dword [esp + 0x28]
xor edi, esi
xor edi, ebp
mov ebp, dword [esp + 0x18]
add edi, edx
mov eax, dword [esp + eax*4 + 0x4c]
add ebp, ecx
add ecx, edi
mov dword [esp + 0xc], ecx
mov ecx, ebx
mov dword [esp + 0x18], ebp
mov edx, eax
mov edi, eax
shr eax, 3
rol edx, 0x19
rol edi, 0xe
xor eax, edx
lea edx, [ebx + 0x10]
and edx, 0xa
xor eax, edi
mov edx, dword [esp + edx*4 + 0x38]
mov edi, edx
mov ebx, edx
shr edx, 0xa
rol edi, 0xf
rol ebx, 0xd
xor edx, edi
lea edi, [ecx + 0xb]
mov ecx, dword [esp + 0x30]
xor edx, ebx
and edi, 0xd
mov ebx, dword [esp + ecx*4 + 0x38]
add ebx, dword [esp + edi*4 + 0x38]
mov edi, dword [esp + 0xc]
add ebx, eax
mov eax, ebp
add ebx, edx
rol eax, 0x15
mov edx, ebp
mov dword [esp + ecx*4 + 0x38], ebx
mov ecx, ebp
not edx
rol ecx, 7
and edx, dword [esp + 0x14]
xor ecx, eax
mov eax, ebp
rol eax, 0x1a
xor ecx, eax
mov eax, ebp
mov ebp, dword [esp + 0x20]
and eax, dword [esp + 0x10]
or edx, eax
mov eax, dword [esp]
add eax, dword [ebp*4 + 0x525e84]
add eax, ebx
mov ebx, ebp
add eax, edx
mov edx, eax
mov eax, edi
add edx, ecx
mov ecx, edi
rol eax, 0x13
rol ecx, 0xa
add dword [esp + 4], edx
xor ecx, eax
mov eax, edi
rol eax, 0x1e
xor ecx, eax
mov eax, edi
and edi, dword [esp + 8]
and eax, dword [esp + 0x1c]
xor esi, eax
xor esi, edi
add esi, ecx
lea ecx, [ebp + 4]
and ecx, 0xe
add esi, edx
mov edx, dword [esp + ecx*4 + 0x38]
mov dword [esp], esi
mov dword [esp + 0x2c], ecx
mov ecx, ebp
mov esi, edx
mov edi, edx
shr edx, 3
rol esi, 0x19
rol edi, 0xe
xor edx, esi
lea esi, [ebp + 0x11]
and esi, 0xb
xor edx, edi
mov esi, dword [esp + esi*4 + 0x38]
mov edi, esi
mov ebx, esi
shr esi, 0xa
rol edi, 0xf
rol ebx, 0xd
xor esi, edi
lea edi, [ebp + 3]
mov ebp, dword [esp + 0x88]
and edi, 0xd
xor esi, ebx
mov ebx, dword [esp + edi*4 + 0x38]
add ebx, dword [esp + ebp*4 + 0x38]
mov ebp, dword [esp + 8]
add ebx, edx
add ebx, esi
mov dword [esp + edi*4 + 0x38], ebx
mov edi, dword [esp + 4]
mov edx, edi
mov esi, edi
rol edx, 0x15
rol esi, 7
xor esi, edx
mov edx, edi
rol edx, 0x1a
xor esi, edx
mov edx, edi
not edi
and edx, dword [esp + 0x18]
and edi, dword [esp + 0x10]
or edi, edx
mov edx, dword [esp + 0x14]
add edx, dword [ecx*4 + 0x525e88]
add edx, ebx
mov ebx, dword [esp]
add edx, edi
add edx, esi
add ebp, edx
mov esi, ebx
mov edi, ebx
mov dword [esp + 8], ebp
rol esi, 0x13
rol edi, 0xa
xor edi, esi
mov esi, ebx
rol esi, 0x1e
xor edi, esi
mov esi, ebx
and ebx, dword [esp + 0x1c]
and esi, dword [esp + 0xc]
xor eax, esi
xor eax, ebx
add eax, edi
add eax, edx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x28]
mov eax, dword [esp + eax*4 + 0x54]
mov edx, eax
mov edi, eax
shr eax, 3
rol edx, 0x19
rol edi, 0xe
xor eax, edx
lea edx, [ecx + 0x12]
mov ecx, dword [esp + 0x2c]
and edx, 0xc
xor eax, edi
mov edx, dword [esp + edx*4 + 0x38]
mov edi, edx
mov ebx, edx
shr edx, 0xa
rol edi, 0xf
rol ebx, 0xd
xor edx, edi
mov edi, dword [esp + ecx*4 + 0x38]
xor edx, ebx
mov ebx, dword [esp + 0x84]
add edi, dword [esp + ebx*4 + 0x38]
mov ebx, dword [esp + 0x20]
add edi, eax
mov eax, ebp
add edi, edx
rol eax, 0x15
mov dword [esp + ecx*4 + 0x38], edi
mov ecx, ebp
rol ecx, 7
xor ecx, eax
mov eax, ebp
rol eax, 0x1a
xor ecx, eax
mov eax, ebp
not ebp
and eax, dword [esp + 4]
and ebp, dword [esp + 0x18]
or ebp, eax
mov eax, dword [esp + 0x10]
add eax, dword [ebx*4 + 0x525e8c]
add eax, edi
add eax, ebp
mov ebp, dword [esp + 0x14]
mov edx, eax
add edx, ecx
add dword [esp + 0x1c], edx
mov eax, ebp
mov ecx, ebp
mov edi, ebp
rol eax, 0x13
rol ecx, 0xa
and edi, dword [esp + 0xc]
xor ecx, eax
mov eax, ebp
rol eax, 0x1e
xor ecx, eax
mov eax, ebp
mov ebp, dword [esp + 0x34]
and eax, dword [esp]
xor esi, eax
mov dword [esp + 0x28], eax
xor esi, edi
add esi, ecx
mov ecx, ebx
mov eax, esi
add eax, edx
lea edx, [ebx + 6]
mov dword [esp + 0x2c], edx
and edx, 8
mov dword [esp + 0x10], eax
mov edx, dword [esp + edx*4 + 0x38]
mov esi, edx
mov edi, edx
shr edx, 3
rol esi, 0x19
rol edi, 0xe
xor edx, esi
lea esi, [ebx + 0x13]
and esi, 0xd
xor edx, edi
mov esi, dword [esp + esi*4 + 0x38]
mov edi, esi
mov ebx, esi
shr esi, 0xa
rol edi, 0xf
rol ebx, 0xd
xor esi, edi
lea edi, [ecx + 5]
and edi, 0xf
xor esi, ebx
mov ebx, dword [esp + edi*4 + 0x38]
add ebx, dword [esp + ebp*4 + 0x38]
mov ebp, dword [esp + 0x14]
add ebx, edx
xor ebp, dword [esp]
add ebx, esi
mov dword [esp + edi*4 + 0x38], ebx
mov edi, dword [esp + 0x1c]
and ebp, eax
xor ebp, dword [esp + 0x28]
mov edx, edi
mov esi, edi
rol edx, 0x15
rol esi, 7
xor esi, edx
mov edx, edi
rol edx, 0x1a
xor esi, edx
mov edx, edi
not edi
and edx, dword [esp + 8]
and edi, dword [esp + 4]
or edi, edx
mov edx, dword [esp + 0x18]
add edx, dword [ecx*4 + 0x525e90]
mov ecx, eax
rol ecx, 0x1e
add edx, ebx
mov ebx, eax
add edx, edi
mov edi, eax
rol ebx, 0x13
rol edi, 0xa
add edx, esi
xor edi, ebx
add dword [esp + 0xc], edx
mov ebx, dword [esp + 0x8c]
xor edi, ecx
add ebp, edi
add ebp, edx
cmp dword [esp + 0x2c], 0x40
jb 0x488af0
movd xmm2, dword [esp]
movd xmm3, dword [esp + 0x14]
movd xmm4, dword [esp + 0x10]
movd xmm0, dword [esp + 0x1c]
movd xmm1, dword [esp + 0xc]
movd xmm5, ebp
movd xmm6, dword [esp + 4]
movd xmm7, dword [esp + 8]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x7c]
mov eax, dword [esp + 0x78]
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 0x488350
add esp, 0xbc
pop esi
pop edi
pop ebx
pop ebp
ret