Function at 0x1800064fa
Capabilities:
Check for time delay via queryperformancecounter
Encode data using xor
Execute anti-debugging instructions
Hash data using murmur3

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rax, qword [0x18003e280]
xor rax, rsp
mov qword [rsp + 0xa0], rax
xor r14d, r14d
lea rsi, [0x18003f258]
mov r12, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r13, qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rdi, [0x18002e440]
mov rcx, rsi
call r12
call r13
mov ebp, eax
rdtsc
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, ebx
rol ecx, 0xd
mov edx, ebp
rol edx, 0xf
imul r8d, eax, 0x7fed5213
mov r9d, r14d
and r9d, 7
mov r9d, dword [rdi + r9*4]
imul r10d, r9d, 0x7ed55d16
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor r10d, ebp
xor r10d, ebx
xor r10d, eax
xor r10d, edx
or r9d, 1
imul r9d, r10d
mov dword [rsp + r14*4 + 0x34], r9d
inc r14
cmp r14, 0x13
jne 0x18000653e
lea rbp, [rsp + 0x34]
mov rcx, rbp
call fcn.18000c3a6
mov esi, eax
xor eax, eax
lea rbx, [0x18002ee4c]
mov dword [rsp + 0x24], esi
mov qword [rsp + 0x28], rax
mov esi, dword [rdi + rax*4]
imul r15d, esi, 0x7ed55d16
xor r14d, r14d
mov rcx, rbp
call fcn.18000c3a6
mov ecx, dword [r14 + rdi]
imul edx, ecx, 0x7ed55d16
xor edx, eax
or ecx, 1
imul ecx, edx
mov dword [rsp + r14 + 0x80], ecx
add r14, 4
cmp r14, 0x20
jne 0x1800065d8
or esi, 1
mov rcx, rbp
call fcn.18000c444
lea rcx, [0x18003f258]
call r12
call r13
mov ebp, eax
rdtsc
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, r14d
rol ecx, 0xd
mov edx, ebp
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor ebp, r14d
xor ebp, eax
xor ebp, edx
xor edx, edx
mov eax, edx
and eax, 7
mov eax, dword [rdi + rax*4]
mov ecx, eax
rol ebp, cl
mov ecx, eax
shr ecx, 8
ror eax, cl
xor eax, ebp
lea r8, [rdx + 1]
mov ecx, r8d
and ecx, 7
mov ecx, dword [rdi + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
xor dword [rsp + rdx*4 + 0x34], ebp
mov rdx, r8
cmp r8, 0xd
jne case.default.0x1800066d7
mov eax, dword [rsp + 0x24]
xor eax, r15d
imul eax, esi
mov dword [rsp + 0x24], eax
xor eax, eax
movabs rcx, 0xd79435e50d79435f
mul rcx
shr rdx, 4
imul rcx, rdx, 0x4c
xor eax, eax
sub rax, rcx
mov ecx, dword [rdi]
mov edx, ecx
shr edx, 0x18
and edx, 7
movsxd rdx, dword [rbx + rdx*4]
add rdx, rbx
xor esi, esi
xor r14d, r14d
xor r12d, r12d
xor r15d, r15d
mov r13, rdi
jmp rdx
add r14, 3
add r12, 0x1c
add r15, 7
mov rax, r15
movabs rcx, 0xd79435e50d79435f
mul rcx
add r13, 4
shr rdx, 4
add al, 0x48
imul ecx, edx, 0x4c
mov rax, r12
sub rax, rcx
mov ecx, dword [r13]
mov edx, ecx
shr edx, 0x18
and edx, 7
movsxd rdx, dword [rbx + rdx*4]
add rdx, rbx
jmp rdx
mov eax, esi
and eax, 7
loopne 0x180006728
mov edx, dword [rsp + rax*4 + 0x80]
mov ecx, dword [rdi + rax*4]
rol edx, cl
mov eax, dword [rsp + rsi*4 + 0x34]
shr ecx, 8
ror eax, cl
xor eax, ebp
xor eax, edx
jmp 0x1800067e0
lea eax, [rsi + 1]
and eax, 7
mov eax, dword [rsp + rax*4 + 0x80]
test byte [rax + rax*4 + 0x1000000], al
call 0x10302b5df
loope 0x18000675b
mov ecx, dword [rdi + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
jmp 0x18000682e
mov eax, esi
and eax, 7
mov edx, dword [rdi + rax*4]
or edx, 1
imul edx, ebp
mov eax, 0xc5dbb83
mov ecx, r14d
shr eax, cl
mov ecx, eax
jmp 0x18000682a
lea eax, [rsi + 4]
and eax, 7
mov ecx, dword [rdi + rax*4]
rol ebp, cl
lea eax, [rsi + 3]
and eax, 7
mov eax, dword [rsp + rax*4 + 0x80]
shr ecx, 8
ror eax, cl
xor ebp, eax
jmp 0x18000682e
lea eax, [r14 - 0x13]
cmp rsi, 7
cmovb rax, r14
mov eax, eax
mov eax, dword [rsp + rax*4 + 0x34]
mov ecx, esi
and ecx, 7
mov ecx, dword [rdi + rcx*4]
imul edx, ecx, 0x7ed55d16
xor edx, eax
or ecx, 1
imul ecx, edx
xor ebp, ecx
jmp 0x18000682e
mov eax, dword [rsp + rax + 0x34]
add eax, ebp
shr ecx, 0x10
ror eax, cl
mov ebp, eax
jmp 0x18000682e
mov eax, esi
and eax, 7
mov eax, dword [rsp + rax*4 + 0x80]
or eax, 1
lea ecx, [rsi + 5]
and ecx, 7
xor eax, dword [rdi + rcx*4]
imul ebp, eax
jmp 0x18000682e
lea eax, [rsi + 2]
and eax, 7
mov edx, dword [rsp + rax*4 + 0x80]
mov ecx, esi
and ecx, 7
mov r8d, dword [rdi + rcx*4]
xor edx, r8d
or edx, 1
imul edx, ebp
mov ecx, dword [rsp + rax*4 + 0x80]
xor ecx, r8d
rol edx, cl
mov ebp, edx
test sil, 1
jne 0x18000686e
inc rsi
cmp rsi, 9
jne 0x1800066d9
mov esi, dword [rsp + 0x24]
xor esi, ebp
mov rax, qword [rsp + 0x28]
inc rax
cmp rax, 6
mov r12, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r13, qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rbp, [rsp + 0x34]
jne 0x1800065c2
jmp 0x18000687a
lea rcx, [rsp + 0x34]
call fcn.18000c444
jmp 0x180006834
xor esi, 0xc5dbb83
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.18000f5a0
mov eax, esi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov dword [rsp + 0x24], esi
mov qword [rsp + 0x28], rax
mov esi, dword [rdi + rax*4]
imul ebx, esi, 0x7ed55d16
xor r14d, r14d
mov rcx, rbp
call fcn.18000c50c
mov ecx, dword [r14 + rdi]
imul edx, ecx, 0x7ed55d16
xor edx, eax
or ecx, 1
imul ecx, edx
mov dword [rsp + r14 + 0x80], ecx
add r14, 4
cmp r14, 0x20
jne 0x180006983
or esi, 1
mov rcx, rbp
call fcn.18000c5aa
lea rcx, [0x18003f258]
call r15
call r12
mov ebp, eax
rdtsc
mov r14, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, r14d
rol ecx, 0xd
mov edx, ebp
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor ebp, r14d
xor ebp, eax
xor ebp, edx
mov edx, 1
mov r8, rdi
mov eax, dword [r8]
mov ecx, eax
rol ebp, cl
mov ecx, eax
shr ecx, 8
ror eax, cl
xor eax, ebp
mov ecx, edx
and ecx, 7
mov ecx, dword [rdi + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
xor dword [rsp + rdx*4 + 0x30], ebp
inc rdx
add r8, 4
cmp rdx, 9
jne 0x180006a06
mov eax, dword [rsp + 0x24]
xor eax, ebx
imul eax, esi
mov dword [rsp + 0x24], eax
xor eax, eax
movabs rcx, 0xd79435e50d79435f
mul rcx
mov rbx, 0xffffffffffffffeb
shr rdx, 4
imul rax, rdx, 0x4c
xor ecx, ecx
sub rcx, rax
mov eax, dword [rdi]
mov edx, eax
shr edx, 0x18
and edx, 7
movsxd rdx, dword [r13 + rdx*4]
add rdx, r13
xor esi, esi
xor r12d, r12d
xor r14d, r14d
mov r15, rdi
jmp rdx
add rbx, 3
add r12, 0x1c
add r14, 7
mov rax, r14
movabs rcx, 0xd79435e50d79435f
mul rcx
add r15, 4
shr rdx, 4
add al, 0x48
imul eax, edx, 0x4c
add al, 0x48
imul eax, edx, 0x4c
mov rcx, r12
sub rcx, rax
mov eax, dword [r15]
mov edx, eax
shr edx, 0x18
and edx, 7
movsxd rdx, dword [r13 + rdx*4]
add rdx, r13
jmp rdx
add byte [rcx + 0x44c2d3c1], cl
mov eax, dword [rsp + rsi*4 + 0x34]
shr eax, 8
mov ecx, eax
ror r8d, cl
xor r8d, ebp
xor r8d, edx
mov ebp, r8d
jmp 0x180006bae
test byte [rsp + rax*4 + 0x1000000], dh
call 0x10302b98b
loope 0x180006b07
mov ecx, dword [rdi + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
add dword [rdi], ecx
scasd eax, dword [rdi]
call 0x11cea30e2
jmp 0x180006bae
or eax, 1
imul eax, ebp
jmp 0x180006bae
add byte [rbp - 0x1f7cfbba], cl
invalid
shr ecx, 8
ror eax, cl
jmp 0x180006b61
xor ebp, eax
jmp 0x180006bae
test sil, 1
jne 0x180006bee
inc rsi
cmp rsi, 7
jne 0x180006a88
mov esi, dword [rsp + 0x24]
xor esi, ebp
mov rax, qword [rsp + 0x28]
inc rax
cmp rax, 4
mov r15, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r12, qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rbp, [rsp + 0x34]
jne 0x18000696e
jmp 0x180006bfa
lea rcx, [rsp + 0x34]
call fcn.18000c5aa
jmp 0x180006bb4
xor esi, 0x2e88cd23
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.18000f5a0
mov eax, esi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret