Function at 0x180007731
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, 0xc8
mov rax, qword [0x18003e280]
xor rax, rsp
mov qword [rsp + 0xc0], rax
xor r15d, r15d
lea r14, [0x18003f258]
mov r13, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rbp, qword [sym.imp.KERNEL32.dll_GetTickCount]
lea rsi, [0x18002e4e0]
mov rcx, r14
call r13
call rbp
mov edi, eax
rdtsc
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, ebx
rol ecx, 0xd
mov edx, edi
rol edx, 0xf
imul r8d, eax, 0x7fed5213
mov r9d, r15d
and r9d, 7
mov r9d, dword [rsi + r9*4]
imul r10d, r9d, 0x7ed55d16
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor r10d, edi
xor r10d, ebx
xor r10d, eax
xor r10d, edx
or r9d, 1
imul r9d, r10d
mov dword [rsp + r15*4 + 0x30], r9d
inc r15
cmp r15, 0x1c
jne 0x180007775
lea rdi, [0x18003f258]
lea rbx, [0x18002eeec]
xor eax, eax
xor r15d, r15d
mov dword [rsp + 0x24], r15d
mov qword [rsp + 0x28], rax
mov eax, dword [rsi + rax*4]
mov dword [rsp + 0x20], eax
xor r12d, r12d
mov rcx, rdi
call r13
call rbp
mov r14d, eax
rdtsc
mov r15, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, r15d
rol ecx, 0xd
mov edx, r14d
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor r14d, r15d
xor r14d, eax
xor r14d, edx
xor edx, edx
mov ecx, dword [rsi + rdx*4]
mov r8d, r14d
rol r8d, cl
mov eax, dword [rsi + rdx*4 + 8]
mov r14d, dword [rsp + rdx*4 + 0x30]
shr ecx, 8
ror r14d, cl
xor r14d, r8d
mov r8d, eax
or r8d, 1
imul r8d, r14d
mov ecx, eax
rol r8d, cl
xor dword [rsp + rdx*4 + 0x34], r8d
inc rdx
cmp rdx, 5
jne 0x18000784c
mov eax, dword [rsi + r12*4]
imul ecx, eax, 0x7ed55d16
xor ecx, r14d
or eax, 1
imul eax, ecx
mov dword [rsp + r12*4 + 0xa0], eax
inc r12
cmp r12, 8
jne case.default.0x1800078ea
mov ecx, dword [rsp + 0x20]
rol dword [rsp + 0x24], cl
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.18000c97e
mov rcx, r14
call fcn.18000ca46
mov r14d, eax
xor eax, eax
mov eax, dword [rsi + rax*4]
mov ecx, eax
shr ecx, 0x18
and ecx, 7
movsxd rcx, dword [rbx + rcx*4]
add rcx, rbx
xor r12d, r12d
xor r15d, r15d
xor r13d, r13d
in eax, dx
jmp rcx
add r15, 3
add r13, 7
mov eax, dword [rsi + r12*4]
mov ecx, eax
shr ecx, 0x18
and ecx, 7
movsxd rcx, dword [rbx + rcx*4]
add rcx, rbx
jmp rcx
mov edx, dword [rsp + r12*4 + 0xa0]
mov ecx, eax
rol edx, cl
xor edx, r14d
mov r14d, dword [rsp + r12*4 + 0x30]
shr eax, 8
mov ecx, eax
ror r14d, cl
xor r14d, edx
jmp 0x1800079fc
mov eax, dword [rsp + r12*4 + 0xa4]
add eax, r14d
mov ecx, dword [rsi + r12*4 + 8]
mov r14d, ecx
or r14d, 1
imul r14d, eax
rol r14d, cl
jmp 0x1800079fc
add byte [rax], al
invalid
or eax, 1
imul eax, r14d
mov edx, 0x42e128ec
mov ecx, r15d
shr edx, cl
mov ecx, edx
rol eax, cl
mov r14d, eax
jmp 0x1800079fc
add byte [rax], al
invalid
lea eax, [r12 + 4]
and eax, 7
mov ecx, dword [rsi + rax*4]
rol r14d, cl
mov eax, dword [rsp + r12*4 + 0xac]
shr ecx, 8
ror eax, cl
jmp 0x18000799d
mov ecx, dword [rsp + r15*4 + 0x30]
imul edx, eax, 0x7ed55d16
xor edx, ecx
or eax, 1
imul eax, edx
xor r14d, eax
jmp 0x1800079fc
lea ecx, [r13 - 0x1c]
cmp r12, 4
cmovb rcx, r13
mov ecx, ecx
mov edx, dword [rsp + rcx*4 + 0x30]
add edx, r14d
shr eax, 0x10
mov ecx, eax
ror edx, cl
jmp 0x1800079f9
mov eax, dword [rsp + r12*4 + 0xa0]
or eax, 1
lea ecx, [r12 + 5]
and ecx, 7
xor eax, dword [rsi + rcx*4]
imul r14d, eax
jmp 0x1800079fc
mov edx, dword [rsp + r12*4 + 0xa8]
xor edx, eax
or edx, 1
imul edx, r14d
mov ecx, dword [rsp + r12*4 + 0xa8]
xor ecx, eax
rol edx, cl
mov r14d, edx
test r12b, 1
jne 0x180007a54
inc r12
cmp r12, 5
jne 0x1800078ec
mov ecx, dword [rsp + 0x20]
shr ecx, 8
ror r14d, cl
lea r15, [rsp + 0x30]
mov rcx, r15
call fcn.18000c97e
mov rcx, r15
call fcn.18000ca46
mov r15d, dword [rsp + 0x24]
xor r15d, eax
xor r15d, r14d
mov rax, qword [rsp + 0x28]
inc rax
cmp rax, 3
mov r13, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jne 0x1800077f3
jmp 0x180007a60
lea rcx, [rsp + 0x30]
call fcn.18000c97e
jmp 0x180007a02
xor r15d, 0x42e128ec
mov rcx, qword [rsp + 0xc0]
xor rcx, rsp
call fcn.18000f5a0
mov eax, r15d
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
add r13, 7
add rsi, 4
lea r8, [r12 - 4]
mov eax, dword [rsi]
mov ecx, eax
shr ecx, 0x18
and ecx, 7
movsxd rcx, dword [r14 + rcx*4]
add rcx, r14
jmp rcx