Function at 0x180003c41
Capabilities:
Check for time delay via queryperformancecounter
Encode data using xor
Encrypt data using speck
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, 0xb8
mov rax, qword [0x18003e280]
xor rax, rsp
mov qword [rsp + 0xb0], rax
xor r14d, r14d
lea rsi, [0x18003f258]
mov rbp, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r12, qword [sym.imp.KERNEL32.dll_GetTickCount]
lea r15, [0x18002e2a0]
mov rcx, rsi
call rbp
call r12
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, r14d
and r9d, 7
mov r9d, dword [r15 + 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 + r14*4 + 0x28], r9d
inc r14
cmp r14, 0x1a
jne 0x180003c85
xor edi, edi
lea r14, [0x18003f258]
xor esi, esi
mov rcx, r14
call rbp
call r12
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
xor edx, dword [0x18003f258]
xor edx, r8d
xor edx, ecx
xor edx, dword [0x18003f25c]
xor ebp, ebx
xor ebp, eax
xor ebp, edx
xor edx, edx
mov eax, edx
and eax, 7
mov eax, dword [r15 + 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 [r15 + rcx*4]
mov ebp, ecx
or ebp, 1
imul ebp, eax
rol ebp, cl
xor dword [rsp + rdx*4 + 0x28], ebp
mov rdx, r8
cmp r8, 0xe
jne 0x180003d3a
mov r12d, dword [r15 + rdi*4]
mov ebx, r12d
or ebx, 1
imul ebx, ebp
mov r13, r14
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
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
rol ebp, 0xa
xor edx, edx
mov eax, edx
and eax, 7
mov eax, dword [r15 + rax*4]
mov ecx, eax
rol ecx, 0x18
xor ecx, ebp
xor dword [rsp + rdx*4 + 0x28], ecx
mov r9d, dword [rsp + rdx*4 + 0x28]
lea r8, [rdx + 1]
mov ecx, r8d
and ecx, 7
mov ecx, dword [r15 + rcx*4]
mov r10d, ecx
or r10d, 1
imul r10d, r9d
rol r10d, cl
mov dword [rsp + rdx*4 + 0x28], r10d
mov r9d, dword [rsp + rdx*4 + 0x28]
test dl, 1
jne 0x180003e1e
shr eax, 0x18
mov ecx, eax
ror r9d, cl
jmp 0x180003e26
shr eax, 0x10
mov ecx, eax
rol r9d, cl
mov dword [rsp + rdx*4 + 0x28], r9d
mov rdx, r8
cmp r8, 0x1a
jne 0x180003dd0
mov ecx, r12d
rol ebx, cl
xor esi, ebx
inc rdi
cmp rdi, 4
mov rbp, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov r12, qword [sym.imp.KERNEL32.dll_GetTickCount]
mov r14, r13
jne 0x180003cfb
xor esi, 0x64de088a
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.18000f5a0
mov eax, esi
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret