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

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x18]
cdq
and edx, 0xf
push ebx
add eax, edx
push ebp
sar eax, 4
push esi
mov edx, eax
push edi
mov edi, dword [esp + 0x24]
shl edx, 4
add edi, edx
neg eax
mov esi, ecx
mov ebx, ecx
mov ebp, ecx
mov dword [esp + 0x24], edi
je 0x1005884d
mov edx, eax
shl edx, 4
neg eax
lea edx, [edx + edi + 8]
mov dword [esp + 0x18], eax
mov eax, dword [edx - 8]
imul eax, eax, 0x239b961b
rol eax, 0xf
imul eax, eax, 0xab0e9789
xor eax, ecx
ror eax, 0xd
add eax, esi
lea ecx, [eax + eax*4 + 0x561ccd1b]
mov eax, dword [edx - 4]
imul eax, eax, 0xab0e9789
rol eax, 0x10
imul eax, eax, 0x38b34ae5
xor eax, esi
ror eax, 0xf
add eax, ebx
lea esi, [eax + eax*4 + 0xbcaa747]
mov eax, dword [edx]
imul eax, eax, 0x38b34ae5
ror eax, 0xf
imul eax, eax, 0xa1e38b93
xor eax, ebx
rol eax, 0xf
add eax, ebp
lea ebx, [eax + eax*4 - 0x6932e3cb]
mov eax, dword [edx + 4]
imul eax, eax, 0xa1e38b93
ror eax, 0xe
imul eax, eax, 0x239b961b
xor eax, ebp
rol eax, 0xd
add eax, ecx
add edx, 0x10
sub dword [esp + 0x18], 1
lea ebp, [eax + eax*4 + 0x32ac3b17]
jne 0x100587c0
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x28]
mov edx, eax
and edx, 0xf
dec edx
cmp edx, 0xe
ja case.default.0x10058872
jmp dword [edx*4 + 0x10058ad8]
movzx edx, byte [edi + 0xe]
movzx edi, byte [edi + 0xd]
shl edi, 8
shl edx, 0x10
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x100588a6
movzx edi, byte [edi + 0xd]
mov edx, dword [esp + 0x1c]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x100588a6
mov edx, dword [esp + 0x1c]
movzx edi, byte [edi + 0xc]
xor edi, edx
imul edi, edi, 0xa1e38b93
ror edi, 0xe
imul edi, edi, 0x239b961b
xor ebp, edi
mov edi, dword [esp + 0x24]
movzx edx, byte [edi + 0xb]
movzx edi, byte [edi + 0xa]
shl edi, 0x10
shl edx, 0x18
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 9]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x1005891b
movzx edi, byte [edi + 0xa]
mov edx, dword [esp + 0x10]
shl edi, 0x10
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 9]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x1005891b
movzx edi, byte [edi + 9]
mov edx, dword [esp + 0x10]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x1005891b
mov edx, dword [esp + 0x10]
movzx edi, byte [edi + 8]
xor edi, edx
imul edi, edi, 0x38b34ae5
ror edi, 0xf
imul edi, edi, 0xa1e38b93
xor ebx, edi
mov edi, dword [esp + 0x24]
movzx edx, byte [edi + 7]
movzx edi, byte [edi + 6]
shl edi, 0x10
shl edx, 0x18
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 5]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058990
movzx edi, byte [edi + 6]
mov edx, dword [esp + 0x14]
shl edi, 0x10
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 5]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058990
movzx edi, byte [edi + 5]
mov edx, dword [esp + 0x14]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058990
mov edx, dword [esp + 0x14]
movzx edi, byte [edi + 4]
xor edi, edx
imul edi, edi, 0xab0e9789
rol edi, 0x10
imul edi, edi, 0x38b34ae5
xor esi, edi
mov edi, dword [esp + 0x24]
movzx edx, byte [edi + 3]
movzx edi, byte [edi + 2]
shl edi, 0x10
shl edx, 0x18
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 1]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058a05
movzx edi, byte [edi + 2]
mov edx, dword [esp + 0x18]
shl edi, 0x10
xor edx, edi
mov edi, dword [esp + 0x24]
movzx edi, byte [edi + 1]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058a05
movzx edi, byte [edi + 1]
mov edx, dword [esp + 0x18]
shl edi, 8
xor edx, edi
mov edi, dword [esp + 0x24]
jmp 0x10058a05
mov edx, dword [esp + 0x18]
movzx edi, byte [edi]
xor edi, edx
imul edi, edi, 0x239b961b
rol edi, 0xf
imul edi, edi, 0xab0e9789
xor ecx, edi
xor esi, eax
xor ecx, eax
xor ebx, eax
xor ebp, eax
add ecx, ebp
add ecx, ebx
add ecx, esi
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul eax, eax, 0x85ebca6b
mov edx, eax
add esi, ecx
shr edx, 0xd
xor edx, eax
mov eax, esi
imul edx, edx, 0xc2b2ae35
shr eax, 0x10
xor eax, esi
imul eax, eax, 0x85ebca6b
mov esi, eax
add ebx, ecx
shr esi, 0xd
xor esi, eax
imul esi, esi, 0xc2b2ae35
mov eax, ebx
shr eax, 0x10
xor eax, ebx
imul eax, eax, 0x85ebca6b
mov edi, esi
shr edi, 0x10
xor edi, esi
mov esi, eax
add ecx, ebp
shr esi, 0xd
xor esi, eax
mov eax, ecx
imul esi, esi, 0xc2b2ae35
shr eax, 0x10
xor eax, ecx
imul eax, eax, 0x85ebca6b
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul ecx, ecx, 0xc2b2ae35
mov ebx, esi
shr ebx, 0x10
xor ebx, esi
mov esi, ecx
shr esi, 0x10
mov eax, edx
shr eax, 0x10
xor esi, ecx
mov ecx, dword [esp + 0x2c]
xor eax, edx
add eax, esi
add eax, ebx
add eax, edi
add edi, eax
add ebx, eax
add esi, eax
mov dword [ecx + 4], edi
pop edi
mov dword [ecx + 0xc], esi
pop esi
pop ebp
mov dword [ecx + 8], ebx
mov dword [ecx], eax
pop ebx
add esp, 0x10
ret