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

Disassembly:
mov eax, dword [esp + 8]
push ebx
cdq
and edx, 0xf
push ebp
push esi
mov esi, dword [esp + 0x18]
mov ebx, esi
push edi
lea edi, [edx + eax]
mov dword [esp + 0x1c], esi
sar edi, 4
mov ebp, esi
mov edx, edi
shl edx, 4
add edx, dword [esp + 0x14]
mov dword [esp + 0x14], edx
test edi, edi
je 0x489525
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, ebp
lea ebx, [ecx*4 + 0xbcaa747]
add ebx, ecx
imul ecx, dword [eax - 0x10], 0x38b34ae5
ror ecx, 0xf
imul ecx, ecx, 0xa1e38b93
xor ecx, ebp
rol ecx, 0xf
add ecx, 0xeaf5d271
add ecx, edx
lea ebp, [ecx + ecx*4]
imul ecx, dword [eax - 0xc], 0xa1e38b93
ror ecx, 0xe
imul ecx, ecx, 0x239b961b
xor ecx, edx
rol ecx, 0xd
add ecx, esi
lea edx, [ecx*4 + 0x32ac3b17]
add edx, ecx
sub edi, 1
jne 0x489491
mov dword [esp + 0x1c], edx
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
xor ecx, ecx
and eax, 0xf
xor edi, edi
dec eax
cmp eax, 0xe
ja case.default.0x48953a
jmp dword [eax*4 + 0x489700]
movzx ecx, byte [edx + 0xe]
movzx eax, byte [edx + 0xd]
shl ecx, 0x10
shl eax, 8
xor ecx, eax
jmp 0x489562
movzx eax, byte [edx + 0xd]
xor ecx, ecx
shl eax, 8
xor ecx, eax
jmp 0x489562
xor ecx, ecx
movzx eax, byte [edx + 0xc]
xor eax, ecx
imul eax, eax, 0xa1e38b93
ror eax, 0xe
imul eax, eax, 0x239b961b
xor dword [esp + 0x1c], eax
movzx ecx, byte [edx + 0xb]
movzx eax, byte [edx + 0xa]
shl eax, 0x10
shl ecx, 0x18
xor ecx, eax
movzx eax, byte [edx + 9]
shl eax, 8
xor ecx, eax
jmp 0x4895bb
movzx eax, byte [edx + 0xa]
xor ecx, ecx
shl eax, 0x10
xor ecx, eax
movzx eax, byte [edx + 9]
shl eax, 8
xor ecx, eax
jmp 0x4895bb
movzx eax, byte [edx + 9]
xor ecx, ecx
shl eax, 8
xor ecx, eax
jmp 0x4895bb
xor ecx, ecx
movzx eax, byte [edx + 8]
xor eax, ecx
imul eax, eax, 0x38b34ae5
ror eax, 0xf
imul eax, eax, 0xa1e38b93
xor ebp, eax
movzx edi, byte [edx + 7]
shl edi, 0x18
movzx eax, byte [edx + 6]
shl eax, 0x10
xor edi, eax
movzx eax, byte [edx + 5]
shl eax, 8
xor edi, eax
movzx eax, byte [edx + 4]
xor eax, edi
imul eax, eax, 0xab0e9789
rol eax, 0x10
imul eax, eax, 0x38b34ae5
xor ebx, eax
movzx ecx, byte [edx + 3]
shl ecx, 0x18
movzx eax, byte [edx + 2]
shl eax, 0x10
xor ecx, eax
movzx eax, byte [edx + 1]
shl eax, 8
xor ecx, eax
movzx eax, byte [edx]
xor eax, ecx
imul eax, eax, 0x239b961b
rol eax, 0xf
imul eax, eax, 0xab0e9789
xor esi, eax
mov eax, dword [esp + 0x18]
xor ebx, eax
xor esi, eax
mov edx, dword [esp + 0x1c]
xor edx, eax
xor ebp, eax
add esi, edx
mov dword [esp + 0x18], ebp
add esi, ebp
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 ebp, eax, 0xc2b2ae35
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 [esp + 0x18]
imul eax, eax, 0xc2b2ae35
add ecx, esi
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
lea ecx, [edx + esi]
imul eax, eax, 0xc2b2ae35
mov edx, ebp
shr edx, 0x10
xor edx, ebp
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 [esp + 0x20]
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
pop ebp
mov dword [ecx + 0xc], eax
pop ebx
ret