Function at 0x180003490
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 ebp, ebp
lea rsi, [0x18003f258]
mov r15, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r12, qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r13, qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea r14, [0x18002e260]
mov rcx, rsi
call r15
call r12
mov edi, eax
rdtsc
mov rbx, rax
call r13
mov ecx, ebx
rol ecx, 0xd
mov edx, edi
rol edx, 0xf
imul r8d, eax, 0x7fed5213
mov r9d, ebp
and r9d, 7
mov r9d, dword [r14 + 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 + rbp*4 + 0x2c], r9d
inc rbp
cmp rbp, 0x15
jne 0x1800034da
xor ebp, ebp
lea rsi, [0x18003f258]
mov rcx, rsi
call r15
call r12
mov edi, eax
rdtsc
mov rbx, rax
call r13
mov ecx, ebx
rol ecx, 0xd
mov edx, edi
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor edi, ebx
xor edi, eax
xor edi, edx
xor edx, edx
mov ecx, dword [r14 + rdx*4]
mov r8d, edi
rol r8d, cl
mov eax, dword [r14 + rdx*4 + 8]
mov edi, dword [rsp + rdx*4 + 0x2c]
shr ecx, 8
ror edi, cl
xor edi, r8d
mov r8d, eax
or r8d, 1
imul r8d, edi
mov ecx, eax
rol r8d, cl
xor dword [rsp + rdx*4 + 0x30], r8d
inc rdx
cmp rdx, 6
jne 0x180003589
mov eax, dword [r14 + rbp*4]
imul ecx, eax, 0x7ed55d16
xor ecx, edi
or eax, 1
imul eax, ecx
mov dword [rsp + rbp*4 + 0x80], eax
inc rbp
cmp rbp, 8
jne 0x18000354c
lea rcx, [rsp + 0x2c]
call fcn.18000b164
lea rcx, [0x18003f258]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
rdtsc
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ecx, edi
rol ecx, 0xd
mov edx, esi
rol edx, 0xf
imul r8d, eax, 0x7fed5213
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor esi, edi
xor esi, eax
xor esi, edx
xor edx, edx
mov eax, edx
and eax, 7
mov eax, dword [r14 + rax*4]
mov ecx, eax
rol esi, cl
mov ecx, eax
shr ecx, 8
ror eax, cl
xor eax, esi
lea r8, [rdx + 1]
mov ecx, r8d
and ecx, 7
mov ecx, dword [r14 + rcx*4]
mov esi, ecx
or esi, 1
imul esi, eax
rol esi, cl
xor dword [rsp + rdx*4 + 0x2c], esi
mov rdx, r8
cmp r8, 0xb
jne case.default.0x1800036c8
mov rbp, 0xffffffffffffffeb
movabs r13, 0x8618618618618619
xor eax, eax
mul r13
xor r12d, r12d
xor eax, eax
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0x54
xor ecx, ecx
sub rcx, rax
mov eax, dword [r14]
mov edx, eax
shr edx, 0x18
and edx, 7
lea r10, [0x18002ed0c]
movsxd rdx, dword [r10 + rdx*4]
add rdx, r10
xor ebx, ebx
xor edi, edi
mov r15, r14
jmp rdx
mov edx, dword [rsp + r12*4 + 0x80]
mov ecx, eax
rol edx, cl
mov r8d, dword [rsp + r12*4 + 0x2c]
mov eax, dword [rsp + r12*4 + 0x84]
add eax, esi
lea ecx, [r12 + 2]
and ecx, 7
mov ecx, dword [r14 + rcx*4]
mov esi, ecx
or esi, 1
imul esi, eax
rol esi, cl
or eax, 1
imul eax, esi
lea ecx, [rbp + 0x15]
mov edx, 0x9bb4e95
shr edx, cl
mov ecx, edx
rol eax, cl
mov esi, eax
jmp 0x180003801
lea eax, [r12 + 4]
and eax, 7
mov ecx, dword [rsp + rbp*4 + 0x80]
imul edx, eax, 0x7ed55d16
xor edx, ecx
or eax, 1
imul eax, edx
mov edx, dword [rsp + rcx + 0x2c]
add edx, esi
shr eax, 0x10
mov ecx, eax
ror edx, cl
jmp 0x1800037ff
mov eax, dword [rsp + r12*4 + 0x80]
or eax, 1
lea ecx, [r12 + 5]
and ecx, 7
xor eax, dword [r14 + rcx*4]
imul esi, eax
jmp 0x180003801
lea ecx, [r12 + 2]
and ecx, 7
mov edx, dword [rsp + rcx*4 + 0x80]
xor edx, eax
or edx, 1
imul edx, esi
mov ecx, dword [rsp + rcx*4 + 0x80]
xor ecx, eax
rol edx, cl
mov esi, edx
add byte [rcx + 0x46c2d3c1], cl
mov eax, dword [rsp + rsi*4 + 0x2c]
movabs al, byte [0x4e8d41f801000000]
add al, byte [rbx - 0x74bef81f]
or al, 0x8f