Function at 0x5011d0
Capabilities:
Encode data using xor
Hash data using murmur3

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x58
mov eax, dword [esp + 0x74]
test eax, eax
je 0x5016c7
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
mov edx, dword [esp + 0x6c]
mov esi, dword [edx + 0xc]
mov edi, dword [edx + 8]
mov ebx, dword [edx]
mov ecx, dword [edx + 4]
nop dword [eax]
mov dword [esp + 0xc], ebx
mov ebp, ecx
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
mov dword [esp + 0x50], esi
mov dword [esp + 0x54], eax
mov ecx, dword [esp]
mov ebx, dword [ecx]
mov dword [esp + 0x38], ebx
mov edx, esi
mov dword [esp], ecx
mov eax, dword [ecx + 4]
mov dword [esp + 0x48], eax
xor edx, edi
and edx, ebp
xor edx, esi
add edx, dword [esp + 0xc]
add edx, ebx
mov ebx, dword [ecx + 8]
mov dword [esp + 0x3c], ebx
rol edx, 3
mov edi, dword [esp + 8]
xor edi, ebp
and edi, edx
xor edi, dword [esp + 8]
add eax, esi
add edi, eax
rol edi, 7
mov ebp, edx
xor ebp, dword [esp + 4]
and ebp, edi
xor ebp, dword [esp + 4]
mov eax, dword [esp + 8]
add ebp, ebx
add ebp, eax
rol ebp, 0xb
mov ebx, edi
xor ebx, edx
and ebx, ebp
xor ebx, edx
mov eax, dword [esp]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x4c], ecx
mov eax, dword [esp + 4]
add ebx, ecx
add ebx, eax
mov esi, ebp
xor esi, edi
rol ebx, 0x13
and esi, ebx
mov ecx, dword [esp]
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x2c], eax
add edx, eax
xor esi, edi
add edx, esi
rol edx, 3
mov esi, ebx
xor esi, ebp
and esi, edx
xor esi, ebp
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x40], eax
add edi, eax
add edi, esi
rol edi, 7
mov esi, edx
xor esi, ebx
and esi, edi
xor esi, ebx
mov eax, dword [ecx + 0x18]
mov dword [esp + 0x34], eax
add ebp, eax
add ebp, esi
mov esi, edi
xor esi, edx
rol ebp, 0xb
and esi, ebp
mov eax, dword [ecx + 0x1c]
mov dword [esp + 0x44], eax
add ebx, eax
xor esi, edx
add ebx, esi
rol ebx, 0x13
mov esi, ebp
xor esi, edi
and esi, ebx
xor esi, edi
mov eax, dword [ecx + 0x20]
mov dword [esp + 0x18], eax
add edx, eax
add edx, esi
rol edx, 3
mov esi, ebx
xor esi, ebp
and esi, edx
xor esi, ebp
mov eax, dword [ecx + 0x24]
mov dword [esp + 0x28], eax
add edi, eax
add edi, esi
mov esi, edx
xor esi, ebx
rol edi, 7
and esi, edi
mov eax, dword [ecx + 0x28]
mov dword [esp + 0x1c], eax
add ebp, eax
xor esi, ebx
add ebp, esi
rol ebp, 0xb
mov esi, edi
xor esi, edx
and esi, ebp
xor esi, edx
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x30], eax
add ebx, eax
add ebx, esi
rol ebx, 0x13
mov esi, ebp
xor esi, edi
and esi, ebx
xor esi, edi
mov eax, dword [ecx + 0x30]
mov dword [esp + 0x10], eax
add edx, eax
add edx, esi
mov esi, ebx
xor esi, ebp
rol edx, 3
and esi, edx
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x20], eax
add edi, eax
xor esi, ebp
add edi, esi
rol edi, 7
mov esi, edx
xor esi, ebx
and esi, edi
xor esi, ebx
mov eax, dword [ecx + 0x38]
mov dword [esp + 0x14], eax
add ebp, eax
add ebp, esi
rol ebp, 0xb
mov esi, edi
xor esi, edx
and esi, ebp
xor esi, edx
mov eax, dword [ecx + 0x3c]
mov dword [esp + 0x24], eax
add ebx, eax
add ebx, esi
rol ebx, 0x13
mov esi, ebp
or esi, edi
and esi, ebx
mov eax, ebp
and eax, edi
or eax, esi
add edx, dword [esp + 0x38]
add edx, eax
add edx, 0x5a827999
rol edx, 3
mov eax, ebx
or eax, ebp
mov esi, ebx
and esi, ebp
and eax, edx
or eax, esi
add edi, dword [esp + 0x2c]
add edi, eax
add edi, 0x5a827999
mov eax, edx
and eax, ebx
rol edi, 5
mov esi, edx
or esi, ebx
and esi, edi
or esi, eax
add ebp, dword [esp + 0x18]
lea eax, [esi + ebp]
add eax, 0x5a827999
rol eax, 9
mov esi, edi
or esi, edx
mov ebp, edi
and ebp, edx
and esi, eax
or esi, ebp
add ebx, dword [esp + 0x10]
add ebx, esi
add ebx, 0x5a827999
mov esi, eax
and esi, edi
rol ebx, 0xd
mov ebp, eax
or ebp, edi
and ebp, ebx
or ebp, esi
add edx, dword [esp + 0x48]
add edx, ebp
add edx, 0x5a827999
rol edx, 3
mov esi, ebx
or esi, eax
mov ebp, ebx
and ebp, eax
and esi, edx
or esi, ebp
add edi, dword [esp + 0x40]
add edi, esi
add edi, 0x5a827999
mov esi, edx
and esi, ebx
rol edi, 5
mov ebp, edx
or ebp, ebx
and ebp, edi
or ebp, esi
add eax, dword [esp + 0x28]
add eax, ebp
add eax, 0x5a827999
rol eax, 9
mov esi, edi
or esi, edx
mov ebp, edi
and ebp, edx
and esi, eax
or esi, ebp
add ebx, dword [esp + 0x20]
add ebx, esi
add ebx, 0x5a827999
mov esi, eax
and esi, edi
rol ebx, 0xd
mov ebp, eax
or ebp, edi
and ebp, ebx
or ebp, esi
add edx, dword [esp + 0x3c]
add edx, ebp
add edx, 0x5a827999
rol edx, 3
mov esi, ebx
or esi, eax
mov ebp, ebx
and ebp, eax
and esi, edx
or esi, ebp
add edi, dword [esp + 0x34]
add edi, esi
add edi, 0x5a827999
mov esi, edx
and esi, ebx
rol edi, 5
mov ebp, edx
or ebp, ebx
and ebp, edi
or ebp, esi
add eax, dword [esp + 0x1c]
add eax, ebp
add eax, 0x5a827999
rol eax, 9
mov esi, edi
or esi, edx
mov ebp, edi
and ebp, edx
and esi, eax
or esi, ebp
add ebx, dword [esp + 0x14]
add ebx, esi
add ebx, 0x5a827999
mov esi, eax
and esi, edi
rol ebx, 0xd
mov ebp, eax
or ebp, edi
and ebp, ebx
or ebp, esi
add edx, dword [esp + 0x4c]
add edx, ebp
add edx, 0x5a827999
rol edx, 3
mov esi, ebx
or esi, eax
mov ebp, ebx
and ebp, eax
and esi, edx
or esi, ebp
add edi, dword [esp + 0x44]
add edi, esi
add edi, 0x5a827999
mov esi, edx
and esi, ebx
rol edi, 5
mov ebp, edx
or ebp, ebx
and ebp, edi
or ebp, esi
add eax, dword [esp + 0x30]
add eax, ebp
add eax, 0x5a827999
rol eax, 9
mov esi, edi
or esi, edx
mov ebp, edi
and ebp, edx
and esi, eax
or esi, ebp
add ebx, dword [esp + 0x24]
add esi, ebx
add esi, 0x5a827999
add edx, dword [esp + 0x38]
rol esi, 0xd
mov ebp, esi
xor ebp, eax
mov ebx, ebp
xor ebx, edi
add ebx, edx
add ebx, 0x6ed9eba1
add edi, dword [esp + 0x18]
rol ebx, 3
xor ebp, ebx
lea edx, [edi + ebp]
add edx, 0x6ed9eba1
mov ecx, dword [esp + 4]
add eax, dword [esp + 0x2c]
rol edx, 9
mov edi, ebx
xor edi, esi
xor edi, edx
add eax, edi
add eax, 0x6ed9eba1
add esi, dword [esp + 0x10]
rol eax, 0xb
mov edi, edx
xor edi, ebx
xor edi, eax
add edi, esi
add edi, 0x6ed9eba1
add ebx, dword [esp + 0x3c]
rol edi, 0xf
mov esi, eax
xor esi, edx
xor esi, edi
add ebx, esi
add ebx, 0x6ed9eba1
rol ebx, 3
add edx, dword [esp + 0x1c]
mov esi, edi
xor esi, eax
xor esi, ebx
add edx, esi
add edx, 0x6ed9eba1
add eax, dword [esp + 0x34]
rol edx, 9
mov esi, ebx
xor esi, edi
xor esi, edx
add eax, esi
add eax, 0x6ed9eba1
add edi, dword [esp + 0x14]
rol eax, 0xb
mov esi, edx
xor esi, ebx
xor esi, eax
add edi, esi
add edi, 0x6ed9eba1
add ebx, dword [esp + 0x48]
rol edi, 0xf
mov esi, eax
xor esi, edx
xor esi, edi
add ebx, esi
add ebx, 0x6ed9eba1
rol ebx, 3
add edx, dword [esp + 0x28]
mov esi, edi
xor esi, eax
xor esi, ebx
add esi, edx
add esi, 0x6ed9eba1
add eax, dword [esp + 0x40]
rol esi, 9
mov edx, ebx
xor edx, edi
xor edx, esi
add eax, edx
add eax, 0x6ed9eba1
add edi, dword [esp + 0x20]
rol eax, 0xb
mov edx, esi
xor edx, ebx
xor edx, eax
add edx, edi
add edx, 0x6ed9eba1
add ebx, dword [esp + 0x4c]
rol edx, 0xf
mov edi, eax
xor edi, esi
xor edi, edx
add edi, ebx
add edi, 0x6ed9eba1
rol edi, 3
add esi, dword [esp + 0x30]
mov ebx, edx
xor ebx, eax
xor ebx, edi
add esi, ebx
add esi, 0x6ed9eba1
rol esi, 9
add eax, dword [esp + 0x44]
mov ebx, esi
add dword [esp + 0xc], edi
xor ebx, edi
xor edi, edx
xor edi, esi
add eax, edi
add eax, 0x6ed9eba1
mov edi, dword [esp + 8]
add edx, dword [esp + 0x24]
rol eax, 0xb
xor ebx, eax
add edx, ebx
add edx, 0x6ed9eba1
mov ebp, dword [esp + 0xc]
rol edx, 0xf
add ecx, edx
add edi, eax
mov eax, dword [esp + 0x54]
add dword [esp + 0x50], esi
mov esi, dword [esp + 0x50]
add dword [esp], 0x40
mov edx, dword [esp + 0x6c]
mov ebx, ebp
mov dword [edx], ebp
mov ebp, ecx
mov dword [edx + 4], ecx
mov dword [edx + 8], edi
mov dword [edx + 0xc], esi
dec eax
jne 0x501200
add esp, 0x58
pop esi
pop edi
pop ebx
pop ebp
ret