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

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