Function at 0x14017c500
Capabilities:
Allocate or change rwx memory
Check for time delay via queryperformancecounter
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x2a8]
sub rsp, 0x380
mov qword [rbp + 0x20], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
mov rax, qword [0x140495598]
xor rax, rsp
mov qword [rbp + 0x1e0], rax
mov rcx, qword [0x1404a4970]
test rcx, rcx
jne 0x14017c5a2
mov ecx, 0x110
call fcn.1403115c4
mov qword [rbp - 0x70], rax
mov rcx, rax
call fcn.14007fe20
mov rcx, rax
mov qword [0x1404a4970], rax
mov rax, qword [rcx]
call qword [rax + 0x88]
xor r14d, r14d
mov edi, r14d
mov r12d, 2
cmp rax, r12
cmova edi, r12d
mov dword [rbp - 0x80], edi
mov rcx, qword [0x1404a4970]
test rcx, rcx
jne 0x14017c5ed
mov ecx, 0x110
call fcn.1403115c4
mov qword [rbp - 0x70], rax
mov rcx, rax
call fcn.14007fe20
mov rcx, rax
mov qword [0x1404a4970], rax
mov rax, qword [rcx]
call qword [rax + 0xf0]
mov rsi, rax
mov rbx, r14
nop dword [rax]
mov edx, 3
mov rcx, rsi
call fcn.1402fcba0
lea ecx, [rax + 2]
cmp ecx, 1
jbe 0x14017c641
test rbx, rbx
jne 0x14017c62c
xor r8d, r8d
mov edx, eax
mov rcx, rsi
call fcn.1402fc9b0
mov rbx, rax
jmp 0x14017c635
cmp dword [rbx + 0x30], eax
jne 0x14017c641
mov rbx, qword [rbx + 0x38]
test rbx, rbx
je 0x14017c641
cmp dword [rbx + 0x10], edi
jne 0x14017c600
jmp 0x14017c644
mov rbx, r14
mov qword [rbp - 0x60], r14
mov r9d, 1
lea r8, [rbp - 0x60]
mov rdx, rbx
mov rcx, rsi
call fcn.1402fc850
mov rax, qword [rbp - 0x60]
test rax, rax
je 0x14017c681
mov ebx, dword [rax + 0x10]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x58], ebx
cmp ebx, edi
jae 0x14017c68b
mov eax, edi
mov dword [rbp - 0x18], eax
mov edi, ebx
mov dword [rbp - 0x80], ebx
jmp 0x14017c683
mov eax, edi
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x30], eax
mov ecx, edi
call fcn.140094d00
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
mov edx, 1
call qword [sym.imp.KERNEL32.dll_SetThreadPriority]
mov edx, 0x200000
xor ecx, ecx
call fcn.140137470
mov ecx, 0x28
call fcn.1403115c4
mov rsi, rax
mov qword [rbp - 0x70], rax
mov qword [rax], 0x1000000
mov dword [rax + 8], r14d
mov qword [rax + 0x10], 0x1000000
xor eax, eax
mov dword [rsi + 0x18], eax
mov qword [rsi + 0x20], r14
mov rcx, rsi
call fcn.140094f00
test al, al
jne 0x14017c6fc
mov edx, 0x40
mov rcx, qword [rsi]
call fcn.14033aa6c
mov qword [rsi + 0x20], rax
mov rbx, qword [0x1404a4970]
test rbx, rbx
jne 0x14017c729
mov ecx, 0x110
call fcn.1403115c4
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14007fe20
mov rbx, rax
mov qword [0x1404a4970], rax
mov rdi, rbx
test rbx, rbx
jne 0x14017c752
mov ecx, 0x110
call fcn.1403115c4
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14007fe20
mov rdi, rax
mov qword [0x1404a4970], rax
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0xb8]
mov rbx, rax
shr rbx, 0x16
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0xa8]
cmp rbx, rax
jbe 0x14017c781
mov r15d, 0x800000
jmp 0x14017c808
mov rbx, qword [0x1404a4970]
test rbx, rbx
jne 0x14017c7ae
mov ecx, 0x110
call fcn.1403115c4
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14007fe20
mov rbx, rax
mov qword [0x1404a4970], rax
mov rdi, rbx
test rbx, rbx
jne 0x14017c7d7
mov ecx, 0x110
call fcn.1403115c4
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14007fe20
mov rdi, rax
mov qword [0x1404a4970], rax
mov rdx, qword [rbx]
mov rcx, rbx
call qword [rdx + 0xb8]
mov rbx, rax
shr rbx, 0x16
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx + 0xa8]
mov ecx, 0x400000
mov r15d, 0x200000
cmp rbx, rax
cmovae r15d, ecx
mov qword [rsp + 0x40], r15
mov rsi, qword [rsi + 0x20]
mov rdi, r14
nop dword [rax]
nop dword [rax + rax]
mov edx, 0x1000
mov ecx, 0x1c0
call fcn.14033aa6c
mov rbx, rax
mov qword [rax + 0xe0], rsi
mov edx, 0x4000
xor ecx, ecx
lea r9d, [rcx + 0x40]
mov r8d, 0x3000
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rbx + 0x118], rax
mov dword [rbx + 0x120], r14d
mov qword [rbx + 0x128], 0xffffffffffffffff
mov qword [rbp + rdi*8 + 0x50], rbx
inc rdi
add rsi, 0x200000
cmp rdi, 8
jb 0x14017c820
mov rcx, qword [0x1404a4970]
test rcx, rcx
jne 0x14017c8ab
mov ecx, 0x110
call fcn.1403115c4
mov qword [rsp + 0x38], rax
mov rcx, rax
call fcn.14007fe20
mov rcx, rax
mov qword [0x1404a4970], rax
mov rax, qword [rcx]
call qword [rax + 0x20]
lea rcx, [0x140407908]
lea rdx, [0x1404078f0]
test al, al
cmovne rdx, rcx
mov qword [rsp + 0x70], rdx
lea rax, [0x140407920]
mov qword [rbp - 0x78], rax
mov rcx, rax
mov qword [rsp + 0x50], rax
lea rax, [0x1404078c0]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x48], rax
xor edi, edi
mov r8d, 6
mov qword [rbp - 0x68], r8
mov qword [rsp + 0x68], r8
movsd xmm13, qword [0x14044ee78]
movsd xmm8, qword [0x14044ee38]
movsd xmm14, qword [0x14044ee60]
movsd xmm10, qword [0x14044ee18]
mov dword [rbp + 0x38], 1
mov dword [rbp + 0x3c], r12d
mov dword [rbp + 0x40], 4
lea r13, [rbp + 0x38]
mov qword [rsp + 0x60], 3
movsxd r12, dword [r13]
mov r14, qword [rax]
imul r14, r12
cmp r14, r15
ja 0x14017cae8
mov eax, dword [rcx]
mov dword [rbp - 0x7c], eax
mov r8d, 1
mov edx, dword [rdx + r12*4]
lea rcx, [rbp - 0x7c]
call fcn.1400a00c0
mov r15, rax
lea rcx, [rbp - 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm7, xmm7
cvtsi2sd xmm7, qword [rbp - 0x10]
mulsd xmm7, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x58]
divsd xmm7, xmm0
movaps xmm9, xmm14
xor ebx, ebx
xor esi, esi
nop dword [rax + rax]
lea rcx, [rbp - 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rbp - 0x50]
mulsd xmm6, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x48]
divsd xmm6, xmm0
cmp ebx, 0xa
jb 0x14017c9f2
movaps xmm0, xmm6
subsd xmm0, xmm7
comisd xmm0, xmm10
jae 0x14017ca54
mov qword [rsp + 0x20], rsi
lea r9, [rbp + 0x50]
lea r8, [rbp + 0xe0]
mov edx, 0x50
lea rcx, [rbp + 0x90]
call r15
lea rcx, [rbp - 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbp - 0x40]
mulsd xmm1, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x38]
divsd xmm1, xmm0
subsd xmm1, xmm6
minsd xmm1, xmm9
movaps xmm9, xmm1
inc ebx
jmp 0x14017c9b0
xorps xmm0, xmm0
cvtsi2sd xmm0, r12
test r12d, r12d
jns 0x14017ca66
addsd xmm0, xmm13
mulsd xmm0, xmm8
divsd xmm0, xmm9
lea r8, [0x140000000]
comisd xmm0, xmmword [rdi + r8 + 0x496bf0]
jbe 0x14017caa1
movsd qword [rdi + r8 + 0x496bf0], xmm0
mov dword [rdi + r8 + 0x496bf8], r12d
mov dword [rdi + r8 + 0x496bfc], 1
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov r15, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x70]
cmp r14, 0x800000
jae 0x14017cae8
comisd xmm0, xmmword [rdi + r8 + 0x496c50]
jbe 0x14017cae8
movsd qword [rdi + r8 + 0x496c50], xmm0
mov dword [rdi + r8 + 0x496c58], r12d
mov dword [rdi + r8 + 0x496c5c], 1
add r13, 4
sub qword [rsp + 0x60], 1
jne 0x14017c942
add rax, 8
mov qword [rsp + 0x48], rax
add rcx, 4
mov qword [rsp + 0x50], rcx
add rdi, 0x10
sub qword [rsp + 0x68], 1
mov r12d, 2
jne 0x14017c923
call fcn.1402fe1a0
mov rbx, rax
mov edx, dword [rsp + 0x30]
mov rcx, rax
call fcn.1402ffa30
mov ecx, 0x290
call fcn.1403115c4
mov qword [rsp + 0x38], rax
xor r9d, r9d
lea r8d, [r12 + 1]
mov rdx, rbx
mov rcx, rax
call fcn.14017bfa0
mov rbx, rax
xor r12d, r12d
mov esi, r12d
movsd xmm10, qword [0x14044ee20]
movsd xmm11, qword [0x14044ee40]
movsd xmm12, qword [0x14044edf8]
mov r13, qword [rsp + 0x40]
lea rax, [0x1404078c0]
mov edx, 2
nop dword [rax + rax]
mov dword [rbp + 0x28], 1
mov dword [rbp + 0x2c], edx
mov dword [rbp + 0x30], 4
lea r15, [rbp + 0x28]
nop word [rax + rax]
movsxd rcx, dword [r15]
mov qword [rsp + 0x60], rcx
mov r14, qword [rax]
imul r14, rcx
add r14, r14
cmp r14, r13
ja 0x14017ce0a
mov rax, qword [rbp - 0x78]
mov eax, dword [rax]
mov dword [rsp + 0x30], eax
mov r8d, 1
mov rax, qword [rsp + 0x70]
mov edx, dword [rax + rcx*4]
lea rcx, [rsp + 0x30]
call fcn.1400a00c0
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm7, xmm7
cvtsi2sd xmm7, qword [rsp + 0x50]
mulsd xmm7, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x48]
divsd xmm7, xmm0
movaps xmm9, xmm14
mov edi, r12d
lea r13, vtable.bbees::ghostrider::HelperThread::Task_class__lambda_11d1d853ac9fe542689a78a7a1da5fe1__.0
lea rcx, [rbp - 0x28]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x30]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm6, xmm6
cvtsi2sd xmm6, qword [rbp - 0x30]
mulsd xmm6, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rbp - 0x28]
divsd xmm6, xmm0
cmp edi, 0xa
jb 0x14017cc79
movaps xmm0, xmm6
subsd xmm0, xmm7
comisd xmm0, xmm10
jae 0x14017cd81
lea rax, [rsp + 0x68]
mov qword [rbp - 8], rax
lea rax, [rbp + 0x90]
mov qword [rbp], rax
lea rax, [rbp + 0xe0]
mov qword [rbp + 8], rax
lea rax, [rbp + 0x50]
mov qword [rbp + 0x10], rax
lea rax, [rsp + 0x60]
mov qword [rbp + 0x18], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [rbx + 0x270]
shl rcx, 7
mov eax, dword [rbx + 0x270]
inc eax
mov dword [rbx + 0x270], eax
mov qword [rcx + rbx + 0x70], r13
movups xmm0, xmmword [rbp - 8]
movups xmmword [rcx + rbx + 0x78], xmm0
movups xmm1, xmmword [rbp + 8]
movups xmmword [rcx + rbx + 0x88], xmm1
movsd xmm0, qword [rbp + 0x18]
movsd qword [rcx + rbx + 0x98], xmm0
lea rcx, [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov qword [rsp + 0x20], r12
lea r9, [rbp + 0x50]
lea r8, [rbp + 0xe0]
mov edx, 0x50
lea rcx, [rbp + 0x90]
call qword [rsp + 0x68]
mov eax, dword [rbx + 0x270]
test eax, eax
je 0x14017cd3c
nop
pause
mov eax, dword [rbx + 0x270]
test eax, eax
jne 0x14017cd30
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
lea rcx, [rbp - 0x20]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rbp - 0x20]
mulsd xmm1, xmm8
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rsp + 0x38]
divsd xmm1, xmm0
subsd xmm1, xmm6
minsd xmm1, xmm9
movaps xmm9, xmm1
inc edi
jmp 0x14017cc33
mov rax, qword [rsp + 0x60]
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
test rax, rax
mov r13, qword [rsp + 0x40]
jns 0x14017cd9d
addsd xmm0, xmm13
mulsd xmm0, xmm11
divsd xmm0, xmm9
mulsd xmm0, xmm12
lea rcx, [0x140000000]
mov edx, 2
comisd xmm0, xmmword [rsi + rcx + 0x496bf0]
jbe 0x14017cdda
movsd qword [rsi + rcx + 0x496bf0], xmm0
mov dword [rsi + rcx + 0x496bf8], eax
mov dword [rsi + rcx + 0x496bfc], edx
cmp r14, 0x800000
jae 0x14017ce05
comisd xmm0, xmmword [rsi + rcx + 0x496c50]
jbe 0x14017ce05
movsd qword [rsi + rcx + 0x496c50], xmm0
mov dword [rsi + rcx + 0x496c58], eax
mov dword [rsi + rcx + 0x496c5c], edx
mov rax, qword [rsp + 0x78]
add r15, 4
lea rcx, [rbp + 0x34]
cmp r15, rcx
jne 0x14017cbb0
add rax, 8
mov qword [rsp + 0x78], rax
add qword [rbp - 0x78], 4
add rsi, 0x10
sub qword [rbp - 0x68], 1
jne 0x14017cb90
test rbx, rbx
je 0x14017ce45
mov rcx, rbx
call fcn.14017e1b0
cmp qword [rbp + 0x50], r12
je 0x14017ce63
nop dword [rax + rax]
mov rcx, qword [rbp + r12*8 + 0x50]
call fcn.14033aa50
inc r12
cmp r12, 8
jb 0x14017ce50
mov rcx, qword [rbp - 0x70]
call fcn.14007db40
mov rcx, qword [rbp + 0x1e0]
xor rcx, rsp
call fcn.1403115a0
lea r11, [rsp + 0x380]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret