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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov eax, dword [ebp + 0xc]
cdq
and edx, 0xf
lea ecx, [edx + eax]
sar ecx, 4
push ebx
mov edx, ecx
shl edx, 4
add edx, dword [ebp + 8]
push esi
xor ebx, ebx
xor eax, eax
xor esi, esi
neg ecx
push edi
mov dword [ebp - 4], ebx
je 0xb6c0c2
mov edi, ecx
add edi, edi
lea edi, [edx + edi*8 + 8]
neg ecx
mov dword [ebp + 8], edi
mov dword [ebp - 8], ecx
mov ecx, dword [edi - 8]
imul ecx, ecx, 0x239b961b
rol ecx, 0xf
imul ecx, ecx, 0xab0e9789
xor eax, ecx
mov ecx, dword [edi - 4]
imul ecx, ecx, 0xab0e9789
rol eax, 0x13
add eax, esi
imul eax, eax, 5
add eax, 0x561ccd1b
rol ecx, 0x10
imul ecx, ecx, 0x38b34ae5
xor esi, ecx
mov ecx, dword [edi]
imul ecx, ecx, 0x38b34ae5
rol esi, 0x11
add esi, ebx
imul esi, esi, 5
add esi, 0xbcaa747
rol ecx, 0x11
imul ecx, ecx, 0xa1e38b93
xor ebx, ecx
mov ecx, dword [edi + 4]
rol ebx, 0xf
imul ecx, ecx, 0xa1e38b93
add ebx, dword [ebp - 4]
mov edi, dword [ebp + 8]
imul ebx, ebx, 5
add ebx, 0x96cd1c35
rol ecx, 0x12
imul ecx, ecx, 0x239b961b
xor ecx, dword [ebp - 4]
add edi, 0x10
rol ecx, 0xd
add ecx, eax
imul ecx, ecx, 5
add ecx, 0x32ac3b17
dec dword [ebp - 8]
mov dword [ebp - 4], ecx
mov dword [ebp + 8], edi
jne 0xb6c025
mov ecx, dword [ebp + 0xc]
xor edi, edi
and dword [ebp - 8], edi
and dword [ebp + 8], edi
and dword [ebp - 0xc], edi
and ecx, 0xf
dec ecx
cmp ecx, 0xe
ja case.default.0xb6c0dd
jmp dword [ecx*4 + 0xb6c286]
movzx ecx, byte [edx + 0xe]
shl ecx, 0x10
jmp 0xb6c0f0
mov ecx, dword [ebp - 0xc]
movzx edi, byte [edx + 0xd]
shl edi, 8
xor ecx, edi
jmp 0xb6c0fe
mov ecx, dword [ebp - 0xc]
movzx edi, byte [edx + 0xc]
xor edi, ecx
imul edi, edi, 0xa1e38b93
rol edi, 0x12
imul edi, edi, 0x239b961b
xor dword [ebp - 4], edi
movzx ecx, byte [edx + 0xb]
shl ecx, 0x18
jmp 0xb6c122
mov ecx, dword [ebp + 8]
movzx edi, byte [edx + 0xa]
shl edi, 0x10
xor ecx, edi
jmp 0xb6c130
mov ecx, dword [ebp + 8]
movzx edi, byte [edx + 9]
shl edi, 8
xor ecx, edi
jmp 0xb6c13e
mov ecx, dword [ebp + 8]
movzx edi, byte [edx + 8]
xor edi, ecx
imul edi, edi, 0x38b34ae5
rol edi, 0x11
imul edi, edi, 0xa1e38b93
xor ebx, edi
movzx ecx, byte [edx + 7]
shl ecx, 0x18
jmp 0xb6c161
mov ecx, dword [ebp - 8]
movzx edi, byte [edx + 6]
shl edi, 0x10
xor ecx, edi
jmp 0xb6c16f
mov ecx, dword [ebp - 8]
movzx edi, byte [edx + 5]
shl edi, 8
xor ecx, edi
jmp 0xb6c17d
mov ecx, dword [ebp - 8]
movzx edi, byte [edx + 4]
xor edi, ecx
imul edi, edi, 0xab0e9789
rol edi, 0x10
imul edi, edi, 0x38b34ae5
xor esi, edi
movzx edi, byte [edx + 3]
shl edi, 0x18
movzx ecx, byte [edx + 2]
shl ecx, 0x10
xor edi, ecx
movzx ecx, byte [edx + 1]
shl ecx, 8
xor edi, ecx
movzx ecx, byte [edx]
xor ecx, edi
imul ecx, ecx, 0x239b961b
rol ecx, 0xf
imul ecx, ecx, 0xab0e9789
xor eax, ecx
mov ecx, dword [ebp + 0xc]
xor dword [ebp - 4], ecx
xor eax, ecx
add eax, dword [ebp - 4]
xor esi, ecx
xor ebx, ecx
add eax, ebx
add eax, esi
mov ecx, eax
shr ecx, 0x10
xor ecx, eax
imul ecx, ecx, 0x85ebca6b
lea edx, [esi + eax]
mov edi, ecx
shr edi, 0xd
xor edi, ecx
mov ecx, edx
imul edi, edi, 0xc2b2ae35
shr ecx, 0x10
xor ecx, edx
imul ecx, ecx, 0x85ebca6b
mov edx, ecx
shr edx, 0xd
xor edx, ecx
imul edx, edx, 0xc2b2ae35
lea esi, [ebx + eax]
mov ecx, edx
shr ecx, 0x10
xor ecx, edx
mov edx, esi
shr edx, 0x10
xor edx, esi
imul edx, edx, 0x85ebca6b
mov esi, edx
shr esi, 0xd
xor esi, edx
imul esi, esi, 0xc2b2ae35
mov edx, esi
shr edx, 0x10
xor edx, esi
mov esi, dword [ebp - 4]
add esi, eax
mov eax, esi
shr eax, 0x10
xor eax, esi
imul eax, eax, 0x85ebca6b
mov ebx, eax
shr ebx, 0xd
xor ebx, eax
imul ebx, ebx, 0xc2b2ae35
mov eax, edi
shr eax, 0x10
mov esi, ebx
xor eax, edi
mov edi, dword [ebp + 0x10]
shr esi, 0x10
xor esi, ebx
add eax, esi
add eax, edx
add eax, ecx
mov dword [edi], eax
add ecx, eax
add edx, eax
add eax, esi
mov dword [edi + 4], ecx
mov dword [edi + 8], edx
mov dword [edi + 0xc], eax
pop edi
pop esi
pop ebx
leave
ret