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

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
mov esi, dword [esp + 0x1c]
push edi
cmp esi, 0x18
ja 0x58f97f
cmp esi, 0xc
ja 0x58f89a
cmp esi, 4
ja 0x58f7fe
xor edi, edi
xor edx, edx
lea ebx, [edi + 9]
test esi, esi
je 0x58f79a
movsx ecx, byte [edx + ebp]
inc edx
imul eax, edi, 0x3361d2af
sub ecx, eax
mov edi, ecx
xor ebx, edi
cmp edx, esi
jb 0x58f785
imul eax, esi, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, ebx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, edi, 0xcc9e2d51
pop edi
pop esi
pop ebp
pop ebx
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
ror ecx, 0x13
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor edx, eax
mov eax, edx
add esp, 8
ret
mov eax, dword [ebp]
lea edx, [esi + esi*4]
add eax, esi
imul eax, eax, 0xcc9e2d51
pop edi
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, edx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
mov eax, dword [esi + ebp - 4]
add eax, edx
shr esi, 1
imul eax, eax, 0xcc9e2d51
and esi, 4
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
imul eax, dword [esi + ebp], 0x3361d2af
ror ecx, 0x13
add ecx, 0xfaddaf14
pop esi
pop ebp
pop ebx
lea edx, [ecx + ecx*4]
mov ecx, 0x318f97d9
sub ecx, eax
ror ecx, 0x11
imul eax, ecx, 0x1b873593
xor edx, eax
ror edx, 0x13
add edx, 0xfaddaf14
lea ecx, [edx + edx*4]
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul eax, eax, 0xc2b2ae35
mov edx, eax
shr edx, 0x10
xor edx, eax
mov eax, edx
add esp, 8
ret
mov edx, esi
shr edx, 1
pop edi
imul eax, dword [edx + ebp - 4], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, esi
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [ebp + 4], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
imul eax, dword [esi + ebp - 8], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [edx + ebp], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [ebp], 0xcc9e2d51
ror ecx, 0x13
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
imul eax, dword [esi + ebp - 4], 0xcc9e2d51
ror ecx, 0x13
pop esi
pop ebp
pop ebx
ror eax, 0x11
lea ecx, [ecx + ecx*4]
imul eax, eax, 0x1b873593
add ecx, 0xe6546b64
xor ecx, eax
ror ecx, 0x13
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
imul ecx, eax, 0xc2b2ae35
mov edx, ecx
shr edx, 0x10
xor edx, ecx
mov eax, edx
add esp, 8
ret
imul eax, dword [esi + ebp - 4], 0xcc9e2d51
imul edx, esi, 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor eax, esi
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [esi + ebp - 0x10], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
imul eax, dword [esi + ebp - 8], 0xcc9e2d51
ror ecx, 0x13
add ecx, 0xfaddaf14
ror eax, 0x11
imul eax, eax, 0x1b873593
lea ebx, [ecx + ecx*4]
xor eax, edx
ror eax, 0x13
add eax, 0xfaddaf14
lea ecx, [eax + eax*4]
imul eax, dword [esi + ebp - 0xc], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
xor ecx, eax
ror ecx, 0x13
add ecx, 0xfaddaf14
lea eax, [ecx + ecx*4]
mov dword [esp + 0x10], eax
lea ecx, [esi - 1]
imul eax, dword [esi + ebp - 0x14], 0xcc9e2d51
ror eax, 0x11
imul eax, eax, 0x1b873593
add eax, edx
ror eax, 0x13
lea eax, [eax + eax*4]
add eax, 0xe6546b64
mov dword [esp + 0x20], eax
mov eax, 0xcccccccd
mul ecx
shr edx, 4
add ebp, 0x10
mov dword [esp + 0x14], edx
nop dword [eax]
imul eax, dword [ebp - 0x10], 0xcc9e2d51
lea ebp, [ebp + 0x14]
ror eax, 0x11
imul esi, eax, 0x1b873593
imul eax, dword [ebp - 0x18], 0xcc9e2d51
ror eax, 0x11
imul ecx, eax, 0x1b873593
mov eax, esi
xor eax, ebx
mov ebx, esi
ror eax, 0x12
add ecx, dword [ebp - 0x20]
lea eax, [eax + eax*4]
add eax, 0xe6546b64
xor ecx, eax
mov eax, dword [esp + 0x20]
add eax, dword [ebp - 0x20]
ror eax, 0x13
imul eax, eax, 0x3361d2af
ror ecx, 0x13
add ecx, dword [ebp - 0x14]
sub ebx, eax
imul eax, dword [ebp - 0x1c], 0xcc9e2d51
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
ror eax, 0x11
imul eax, eax, 0x1b873593
add eax, dword [esp + 0x10]
ror eax, 0x12
lea eax, [eax + eax*4]
add eax, 0xe6546b64
xor eax, dword [ebp - 0x14]
sub dword [esp + 0x14], 1
bswap eax
lea edx, [eax + eax*4]
mov eax, ecx
bswap eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x10], eax
jne 0x58fa40
ror eax, 0xb
imul eax, eax, 0xcc9e2d51
ror edx, 0xb
pop edi
pop esi
pop ebp
ror eax, 0x11
imul eax, eax, 0x3361d2af
sub ebx, eax
imul eax, edx, 0xcc9e2d51
ror ebx, 0x13
ror eax, 0x11
lea ecx, [ebx - 0x52250ec]
lea ecx, [ecx + ecx*4]
ror ecx, 0x11
add ecx, eax
imul eax, ecx, 0xcc9e2d51
pop ebx
ror eax, 0x13
lea eax, [eax + eax*4]
add eax, 0xe6546b64
ror eax, 0x11
imul eax, eax, 0xcc9e2d51
add esp, 8
ret