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

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xf
push ebx
push esi
mov esi, dword [ebp + 0x10]
mov ebx, esi
push edi
lea edi, [edx + eax]
mov dword [ebp - 4], esi
sar edi, 4
mov edx, edi
mov dword [ebp + 0x10], esi
shl edx, 4
add edx, dword [ebp + 8]
mov dword [ebp + 8], edx
test edi, edi
je 0x1015c0f9
mov ecx, edi
mov eax, edx
shl ecx, 4
mov edx, ebx
sub eax, ecx
add eax, 8
imul ecx, dword [eax - 8], 0x239b961b
lea eax, [eax + 0x10]
rol ecx, 0xf
imul ecx, ecx, 0xab0e9789
xor ecx, esi
ror ecx, 0xd
add ecx, ebx
lea esi, [ecx*4 + 0x561ccd1b]
add esi, ecx
imul ecx, dword [eax - 0x14], 0xab0e9789
rol ecx, 0x10
imul ecx, ecx, 0x38b34ae5
xor ecx, ebx
ror ecx, 0xf
add ecx, edx
lea ebx, [ecx*4 + 0xbcaa747]
add ebx, ecx
imul ecx, dword [eax - 0x10], 0x38b34ae5
ror ecx, 0xf
imul ecx, ecx, 0xa1e38b93
xor ecx, edx
rol ecx, 0xf
add ecx, 0xeaf5d271
add ecx, dword [ebp + 0x10]
lea edx, [ecx + ecx*4]
imul ecx, dword [eax - 0xc], 0xa1e38b93
ror ecx, 0xe
imul ecx, ecx, 0x239b961b
xor ecx, dword [ebp + 0x10]
rol ecx, 0xd
add ecx, esi
lea ecx, [ecx + ecx*4]
add ecx, 0x32ac3b17
mov dword [ebp + 0x10], ecx
sub edi, 1
jne 0x1015c060
mov dword [ebp - 4], edx
mov edx, dword [ebp + 8]
jmp 0x1015c0fb
mov ecx, ebx
mov eax, dword [ebp + 0xc]
xor edi, edi
and eax, 0xf
dec eax
cmp eax, 0xe
ja case.default.0x1015c10d
jmp dword [eax*4 + 0x1015c2f8]
movzx edi, byte [edx + 0xe]
movzx eax, byte [edx + 0xd]
shl edi, 0x10
shl eax, 8
xor edi, eax
jmp 0x1015c135
movzx eax, byte [edx + 0xd]
xor edi, edi
shl eax, 8
xor edi, eax
jmp 0x1015c135
xor edi, edi
movzx eax, byte [edx + 0xc]
xor eax, edi
imul eax, eax, 0xa1e38b93
ror eax, 0xe
imul eax, eax, 0x239b961b
xor ecx, eax
movzx edi, byte [edx + 0xb]
movzx eax, byte [edx + 0xa]
shl eax, 0x10
shl edi, 0x18
xor edi, eax
movzx eax, byte [edx + 9]
shl eax, 8
xor edi, eax
jmp 0x1015c18c
movzx eax, byte [edx + 0xa]
xor edi, edi
shl eax, 0x10
xor edi, eax
movzx eax, byte [edx + 9]
shl eax, 8
xor edi, eax
jmp 0x1015c18c
movzx eax, byte [edx + 9]
xor edi, edi
shl eax, 8
xor edi, eax
jmp 0x1015c18c
xor edi, edi
movzx eax, byte [edx + 8]
xor eax, edi
imul eax, eax, 0x38b34ae5
ror eax, 0xf
imul eax, eax, 0xa1e38b93
xor dword [ebp - 4], eax
movzx edi, byte [edx + 7]
movzx eax, byte [edx + 6]
shl eax, 0x10
shl edi, 0x18
xor edi, eax
movzx eax, byte [edx + 5]
shl eax, 8
xor edi, eax
jmp 0x1015c1e4
movzx eax, byte [edx + 6]
xor edi, edi
shl eax, 0x10
xor edi, eax
movzx eax, byte [edx + 5]
shl eax, 8
xor edi, eax
jmp 0x1015c1e4
movzx eax, byte [edx + 5]
xor edi, edi
shl eax, 8
xor edi, eax
jmp 0x1015c1e4
xor edi, edi
movzx eax, byte [edx + 4]
xor eax, edi
imul eax, eax, 0xab0e9789
rol eax, 0x10
imul eax, eax, 0x38b34ae5
xor ebx, eax
movzx edi, byte [edx + 3]
shl edi, 0x18
movzx eax, byte [edx + 2]
shl eax, 0x10
xor edi, eax
movzx eax, byte [edx + 1]
shl eax, 8
xor edi, eax
movzx eax, byte [edx]
xor eax, edi
imul eax, eax, 0x239b961b
rol eax, 0xf
imul eax, eax, 0xab0e9789
xor esi, eax
mov eax, dword [ebp + 0xc]
xor ebx, eax
xor ecx, eax
mov edi, dword [ebp - 4]
xor esi, eax
mov dword [ebp + 0x10], ecx
xor edi, eax
add esi, ecx
add esi, edi
add esi, ebx
mov eax, esi
shr eax, 0x10
xor eax, esi
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
lea ecx, [ebx + esi]
imul edx, eax, 0xc2b2ae35
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov dword [ebp + 0xc], edx
shr edx, 0x10
xor edx, dword [ebp + 0xc]
mov eax, ecx
shr eax, 0xd
xor eax, ecx
lea ecx, [edi + esi]
imul eax, eax, 0xc2b2ae35
mov ebx, eax
shr ebx, 0x10
xor ebx, eax
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
mov ecx, dword [ebp + 0x10]
imul eax, eax, 0xc2b2ae35
add ecx, esi
mov edi, eax
shr edi, 0x10
xor edi, eax
mov eax, ecx
shr eax, 0x10
xor eax, ecx
imul ecx, eax, 0x85ebca6b
mov eax, ecx
shr eax, 0xd
xor eax, ecx
mov ecx, dword [ebp + 0x14]
imul eax, eax, 0xc2b2ae35
mov esi, eax
shr esi, 0x10
xor esi, eax
add edx, esi
add edx, edi
add edx, ebx
mov dword [ecx], edx
lea eax, [ebx + edx]
mov dword [ecx + 4], eax
lea eax, [edi + edx]
pop edi
mov dword [ecx + 8], eax
lea eax, [esi + edx]
pop esi
mov dword [ecx + 0xc], eax
pop ebx
mov esp, ebp
pop ebp
ret