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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
cmp edx, 0x18
ja 0x1c8eab0
cmp edx, 0xc
ja 0x1c8eccd
cmp edx, 4
ja 0x1c8edb3
test edx, edx
je 0x1c8ee3b
movsx edi, byte [eax]
mov esi, edi
xor esi, 9
cmp edx, 1
je 0x1c8ee42
movsx ecx, byte [eax + 1]
imul edi, edi, 0xcc9e2d51
add edi, ecx
xor esi, edi
cmp edx, 2
je 0x1c8ee42
movsx ecx, byte [eax + 2]
imul edi, edi, 0xcc9e2d51
add edi, ecx
xor esi, edi
cmp edx, 3
je 0x1c8ee42
movsx ecx, byte [eax + 3]
imul edi, edi, 0xcc9e2d51
add edi, ecx
xor esi, edi
jmp 0x1c8ee42
mov ecx, dword [eax + edx - 4]
imul esi, ecx, 0xcc9e2d51
shr esi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, esi
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + edx - 8]
imul edi, ecx, 0xcc9e2d51
shr edi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, edi
mov dword [ebp - 0x14], ecx
mov ecx, dword [eax + edx - 0x10]
imul edi, ecx, 0xcc9e2d51
shr edi, 0x11
imul esi, ecx, 0x16a88000
or esi, edi
mov ebx, dword [eax + edx - 0xc]
imul edi, ebx, 0xcc9e2d51
shr edi, 0x11
imul ebx, ebx, 0x16a88000
or ebx, edi
mov edi, dword [eax + edx - 0x14]
mov ecx, eax
imul eax, edi, 0xcc9e2d51
shr eax, 0x11
imul edi, edi, 0x16a88000
or edi, eax
mov dword [ebp - 0x1c], edi
imul eax, dword [ebp - 0x10], 0x1b873593
xor eax, edx
rol eax, 0xd
imul edi, esi, 0x1b873593
lea esi, [eax + eax*4]
add esi, 0xe6546b64
xor esi, edi
imul eax, dword [ebp - 0x14], 0x1b873593
imul edi, edx, 0xcc9e2d51
mov dword [ebp - 0x10], edi
xor eax, edi
rol eax, 0xd
imul edi, ebx, 0x1b873593
lea ebx, [eax + eax*4]
add ebx, 0xe6546b64
xor ebx, edi
dec edx
mov edi, 0xcccccccd
mov eax, edx
mul edi
mov dword [ebp - 0x18], edx
imul edx, dword [ebp - 0x1c], 0x1b873593
add edx, dword [ebp - 0x10]
rol esi, 0xd
lea eax, [esi + esi*4]
add eax, 0xe6546b64
rol ebx, 0xd
lea edi, [ebx + ebx*4]
add edi, 0xe6546b64
rol edx, 0xd
lea esi, [edx + edx*4]
add esi, 0xe6546b64
shr dword [ebp - 0x18], 4
nop word cs:[eax + eax]
mov ebx, ecx
mov ecx, dword [ecx]
imul edx, ecx, 0xcc9e2d51
shr edx, 0x11
imul ecx, ecx, 0x16a88000
or ecx, edx
mov dword [ebp - 0x10], ecx
mov ecx, dword [ebx + 8]
imul edx, ecx, 0xcc9e2d51
shr edx, 0x11
imul ecx, ecx, 0x16a88000
or ecx, edx
imul ecx, ecx, 0x1b873593
add ecx, edi
mov edx, dword [ebx + 0xc]
imul edi, edx, 0xcc9e2d51
shr edi, 0x11
imul edx, edx, 0x16a88000
or edx, edi
imul edi, edx, 0x1b873593
mov edx, dword [ebx + 4]
mov dword [ebp - 0x14], ebx
add esi, edx
add edi, edx
imul edx, dword [ebp - 0x10], 0x1b873593
xor eax, edx
rol eax, 0xe
lea eax, [eax + eax*4]
add eax, 0xe6546b64
rol ecx, 0xe
xor edi, eax
mov eax, dword [ebx + 0x10]
lea ebx, [ecx + ecx*4]
add ebx, 0xe6546b64
rol edi, 0xd
xor ebx, eax
add edi, eax
rol esi, 0xd
imul eax, esi, 0xcc9e2d51
bswap ebx
add eax, edx
lea esi, [ebx + ebx*4]
lea edi, [edi + edi*4]
add edi, 0xe6546b64
bswap edi
mov ecx, dword [ebp - 0x14]
add ecx, 0x14
dec dword [ebp - 0x18]
jne 0x1c8ebb0
rol edi, 0x15
imul ecx, edi, 0xcc9e2d51
shr ecx, 0x11
imul edx, edi, 0x16a88000
or edx, ecx
imul ecx, edx, 0xcc9e2d51
shr esi, 0xb
shl ebx, 0x15
lea edx, [ebx + ebx*4]
or edx, esi
imul esi, edx, 0xcc9e2d51
shr esi, 0x11
imul edx, edx, 0x16a88000
or edx, esi
add ecx, eax
rol ecx, 0xd
lea eax, [ecx + ecx*4]
add eax, 0xe6546b64
rol eax, 0xf
add eax, edx
imul ecx, eax, 0xcc9e2d51
shr ecx, 0x13
imul eax, eax, 0xc5aa2000
or eax, ecx
lea eax, [eax + eax*4]
add eax, 0xe6546b64
rol eax, 0xf
imul eax, eax, 0xcc9e2d51
jmp 0x1c8eeab
mov ebx, eax
mov eax, edx
shr eax, 1
mov ecx, dword [ebx + eax - 4]
imul esi, ecx, 0xcc9e2d51
shr esi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, esi
mov esi, dword [ebx + 4]
imul edi, esi, 0xcc9e2d51
shr edi, 0x11
imul esi, esi, 0x16a88000
or esi, edi
imul ecx, ecx, 0x1b873593
xor ecx, edx
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
imul esi, esi, 0x1b873593
xor esi, ecx
mov ecx, dword [ebx + edx - 8]
imul edi, ecx, 0xcc9e2d51
shr edi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, edi
rol esi, 0xd
mov eax, dword [ebx + eax]
lea esi, [esi + esi*4]
add esi, 0xe6546b64
imul ecx, ecx, 0x1b873593
xor ecx, esi
imul esi, eax, 0xcc9e2d51
shr esi, 0x11
imul eax, eax, 0x16a88000
or eax, esi
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
imul edi, eax, 0x1b873593
xor edi, ecx
mov ecx, dword [ebx]
rol edi, 0xd
mov eax, dword [ebx + edx - 4]
imul esi, ecx, 0xcc9e2d51
shr esi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, esi
lea edx, [edi + edi*4]
add edx, 0xe6546b64
imul ecx, ecx, 0x1b873593
xor ecx, edx
imul edx, eax, 0xcc9e2d51
shr edx, 0x11
imul eax, eax, 0x16a88000
or eax, edx
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
jmp 0x1c8ee26
lea ebx, [edx + edx*4]
mov esi, dword [eax]
add esi, edx
mov ecx, dword [eax + edx - 4]
add ecx, ebx
shr edx, 1
and edx, 4
mov eax, dword [eax + edx]
imul edi, esi, 0xcc9e2d51
shr edi, 0x11
imul esi, esi, 0x16a88000
or esi, edi
imul esi, esi, 0x1b873593
xor esi, ebx
rol esi, 0xd
add eax, 9
lea edx, [esi + esi*4]
add edx, 0xe6546b64
imul esi, ecx, 0xcc9e2d51
shr esi, 0x11
imul ecx, ecx, 0x16a88000
or ecx, esi
imul ecx, ecx, 0x1b873593
xor ecx, edx
rol ecx, 0xd
lea ecx, [ecx + ecx*4]
add ecx, 0xe6546b64
imul edx, eax, 0xcc9e2d51
shr edx, 0x11
imul eax, eax, 0x16a88000
or eax, edx
imul eax, eax, 0x1b873593
xor eax, ecx
rol eax, 0xd
lea eax, [eax + eax*4]
add eax, 0xe6546b64
jmp 0x1c8ee8a
xor edi, edi
mov esi, 9
imul ecx, edx, 0xcc9e2d51
shr ecx, 0x11
imul eax, edx, 0x16a88000
or eax, ecx
imul eax, eax, 0x1b873593
xor eax, esi
rol eax, 0xd
lea eax, [eax + eax*4]
add eax, 0xe6546b64
imul ecx, edi, 0xcc9e2d51
shr ecx, 0x11
imul edx, edi, 0x16a88000
or edx, ecx
imul ecx, edx, 0x1b873593
xor ecx, eax
rol ecx, 0xd
lea eax, [ecx + ecx*4]
add eax, 0xe6546b64
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
imul eax, ecx, 0x85ebca6b
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul ecx, ecx, 0xc2b2ae35
mov eax, ecx
shr eax, 0x10
xor eax, ecx
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret