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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x38
mov rsi, rcx
xor r12d, r12d
lea rdi, [0x18003f258]
mov rbp, qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13, qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea r15, [0x18002e180]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call rbp
mov ebx, eax
rdtsc
mov r14, rax
call r13
mov ecx, r14d
rol ecx, 0xd
mov edx, ebx
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor ebx, r14d
xor ebx, eax
xor ebx, edx
xor edx, edx
mov ecx, dword [r15 + rdx*4]
mov r8d, ebx
rol r8d, cl
mov eax, dword [r15 + rdx*4 + 8]
mov ebx, dword [rsi + rdx*4]
shr ecx, 8
ror ebx, cl
xor ebx, r8d
mov r8d, eax
or r8d, 1
imul r8d, ebx
mov ecx, eax
rol r8d, cl
xor dword [rsi + rdx*4 + 4], r8d
inc rdx
cmp rdx, 3
jne 0x18000a635
mov eax, dword [r15 + r12*4]
imul ecx, eax, 0x7ed55d16
xor ecx, ebx
or eax, 1
imul eax, ecx
mov dword [rsi + r12*4 + 0x5c], eax
inc r12
cmp r12, 8
jne case.default.0x18000a6ec
mov rcx, rsi
call fcn.18000a89e
mov rcx, rsi
call fcn.18000a520
mov ebp, eax
xor r14d, r14d
movabs r9, 0x642c8590b21642c9
xor eax, eax
mul r9
xor eax, eax
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0xffffffffffffffa4
mov ecx, dword [r15]
mov edx, ecx
shr edx, 0x18
and edx, 7
lea r10, [0x18002efec]
movsxd rdx, dword [r10 + rdx*4]
add rdx, r10
xor r13d, r13d
mov rdi, rsi
xor ebx, ebx
mov r12, r15
jmp rdx
add r13, 3
add rdi, 0x1c
add rbx, 7
add r12, 4
mov rax, rbx
mul r9
mov rax, rbx
sub rax, rdx
shr rax, 1
mov eax, r14d
and eax, 7
mov edx, dword [rsi + rax*4 + 0x5c]
mov ecx, dword [r15 + rax*4]
rol edx, cl
xor edx, ebp
mov ebp, dword [rsi + r14*4]
shr ecx, 8
ror ebp, cl
xor ebp, edx
jmp 0x18000a83c
lea eax, [r14 + 1]
and eax, 7
mov eax, dword [rsi + rax*4 + 0x5c]
add eax, ebp
lea ecx, [r14 + 2]
and ecx, 7
mov ecx, dword [r15 + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
jmp 0x18000a83c
mov eax, r14d
and eax, 7
mov edx, dword [r15 + rax*4]
or edx, 1
imul edx, ebp
mov eax, 0x35e8c477
mov ecx, r13d
shr eax, cl
mov ecx, eax
jmp 0x18000a838
lea eax, [r14 + 4]
and eax, 7
mov ecx, dword [r15 + rax*4]
rol ebp, cl
lea eax, [r14 + 3]
and eax, 7
mov eax, dword [rsi + rax*4 + 0x5c]
shr ecx, 8
ror eax, cl
xor ebp, eax
jmp 0x18000a83c
lea eax, [r13 - 0x17]
cmp r14, 8
cmovb rax, r13
mov eax, eax
mov eax, dword [rsi + rax*4]
mov ecx, r14d
and ecx, 7
mov ecx, dword [r15 + rcx*4]
imul edx, ecx, 0x7ed55d16
xor edx, eax
or ecx, 1
imul ecx, edx
xor ebp, ecx
jmp 0x18000a83c
mov eax, dword [rdi + rax]
add eax, ebp
shr ecx, 0x10
ror eax, cl
mov ebp, eax
jmp 0x18000a83c
mov eax, r14d
and eax, 7
mov eax, dword [rsi + rax*4 + 0x5c]
or eax, 1
lea ecx, [r14 + 5]
and ecx, 7
xor eax, dword [r15 + rcx*4]
imul ebp, eax
jmp 0x18000a83c
lea eax, [r14 + 2]
and eax, 7
mov edx, dword [rsi + rax*4 + 0x5c]
mov ecx, r14d
and ecx, 7
mov r8d, dword [r15 + rcx*4]
xor edx, r8d
or edx, 1
imul edx, ebp
mov ecx, dword [rsi + rax*4 + 0x5c]
xor ecx, r8d
rol edx, cl
mov ebp, edx
test r14b, 1
jne 0x18000a862
inc r14
cmp r14, 9
jne 0x18000a6ee
mov eax, ebp
add rsp, 0x38
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rsi
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rbx
mov rbx, r12
mov r12, r9
mov r14d, ebp
mov rbp, rdi
mov rdi, r10
call fcn.18000a89e
mov r10, rdi
mov rdi, rbp
mov ebp, r14d
mov r9, r12
mov r12, rbx
mov rbx, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
jmp 0x18000a842
add rdi, 3
add r13, 7
add rbp, 4
mov eax, dword [rbp]
mov ecx, eax
shr ecx, 0x18
and ecx, 7
movsxd rcx, dword [r12 + rcx*4]
add rcx, r12
jmp rcx