Function at 0x18018fd80
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x138
movaps xmmword [rsp + 0x120], xmm6
lea rbp, [rsp + 0x170]
xorps xmm4, xmm4
movaps xmmword [rbp - 0x80], xmm4
movaps xmmword [rbp - 0x70], xmm4
mov qword [rbp + 0x10], rcx
mov rbx, rcx
mov esi, edx
mov edi, r8d
test edi, edi
jne 0x18018fdde
call fcn.18018f880
mov edi, eax
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0xf8], eax
test al, 3
je 0x18018fdf6
test esi, esi
jne 0x18018fe11
xor eax, eax
jmp 0x1801908bc
cmp dword [rbx + 0x10], edi
jne 0x18018fdd2
mov eax, dword [rbx + 0x18]
inc eax
je 0x1801908d8
mov dword [rbx + 0x18], eax
jmp 0x180190278
lea ecx, [rax + 1]
lea r14, [rbx + 0x14]
lock cmpxchg dword [r14], ecx
mov ecx, dword [rbp - 0xf8]
cmp eax, ecx
jne 0x18018fdd2
jmp 0x180190275
mov r14d, dword [0x1804f8b40]
cmp r14d, 1
je 0x18018febc
cmp r14d, 3
jne 0x18018feaf
cmp word [rbx + 0x1c], 0x8000
jne 0x18018fe44
lea rax, [0x1804f8b40]
movsx rax, word [rax + 6]
mov word [rbx + 0x1c], ax
lea rax, [0x1804f8b40]
movsx r15, word [rax + 6]
test r15d, r15d
je 0x18018fe7b
lea rax, [0x1804f8b40]
movsx r13, word [rax + 8]
movsx r12, word [rbx + 0x1c]
test r12d, r12d
jge 0x18018ff5b
inc r12d
mov word [rbx + 0x1c], r12w
mov rbx, qword [rbp + 0x10]
lea rax, [0x1802c34c0]
cmp qword [rax - 8], 0
jne 0x180190917
mov r12, qword [0x1804f6a20]
mov rcx, qword [r12 + 8]
movzx edx, byte [rcx + 0x9d]
test edx, edx
jne 0x1801901bf
xor edx, edx
jmp 0x1801901f8
call fcn.18018f9e0
test eax, eax
jne 0x18018fe2c
mov r12d, 1
xor ecx, ecx
mov dword [rbp - 0x134], ecx
lea rcx, [rbp - 0xf0]
call fcn.180007330
mov ecx, dword [rbp - 0x134]
call sub.KERNEL32.dll_Sleep
lea rcx, [rbp - 0xf0]
call fcn.180007380
mov r14d, dword [0x1804f8b40]
cmp r14d, 3
mov rbx, qword [rbp + 0x10]
je 0x18018fe2c
test r14d, r14d
je 0x18018feaf
mov eax, dword [rbx + 0x14]
mov dword [rbp - 0xfc], eax
test al, 3
je 0x18018ff3c
test r12d, r12d
sete r12b
movzx r12d, r12b
test r12d, r12d
jne 0x18018fec2
mov ecx, 1
call fcn.180004850
cmp dword [0x180501648], 0
je 0x18018feed
jmp 0x180190903
lea ecx, [rax + 1]
mov rbx, qword [rbp + 0x10]
lea r14, [rbx + 0x14]
lock cmpxchg dword [r14], ecx
mov ecx, dword [rbp - 0xfc]
cmp eax, ecx
jne 0x18018ff14
jmp 0x180190275
xor r14d, r14d
mov eax, dword [rbx + 0x14]
jmp 0x18018ff6c
mov r11d, eax
mov eax, r11d
mov rbx, r10
mov dword [rbp - 0x100], eax
mov dword [rbp - 0x98], eax
mov dword [rbp - 0x9c], 1
cmp dword [rbp - 0x98], 0x80
jb 0x18018ffe8
test byte [rbp - 0x98], 2
je 0x18018ffa1
mov edx, 2
jmp 0x180190050
movzx r8d, word [rbx + 0x1e]
mov dword [rbp - 0xa0], r8d
test r8d, r8d
je 0x18018ffe8
cmp dword [0x180501648], 0
jne 0x18019090d
call sub.KERNEL32.dll_GetTickCount64
sub eax, dword [rbp - 0xa0]
movzx eax, ax
cmp eax, 0x64
jl 0x18018ffe8
mov eax, dword [rbp - 0x98]
add eax, 2
mov dword [rbp - 0x98], eax
mov ebx, 2
jmp 0x18019000d
mov rbx, qword [rbp + 0x10]
test byte [rbp - 0x98], 1
jne 0x1801900a4
mov ecx, dword [rbp - 0x98]
inc ecx
mov dword [rbp - 0x98], ecx
xor ecx, ecx
xor edx, edx
mov ebx, edx
mov ecx, dword [rbp - 0x98]
mov r10, qword [rbp + 0x10]
lea rdx, [r10 + 0x14]
mov r9, rdx
mov eax, dword [rbp - 0x100]
lock cmpxchg dword [r9], ecx
mov r11d, dword [rbp - 0x100]
cmp eax, r11d
jne 0x18018ff63
cmp ebx, 1
jne 0x18019004b
mov ecx, 1
test r11b, 0x1c
cmove r14d, ecx
mov edx, ebx
mov rbx, r10
cmp edx, 1
jne 0x1801901b1
test r14d, r14d
cmovne r12d, r15d
xor eax, eax
mov dword [rbp - 0x54], eax
mov ecx, eax
mov edx, 0xa
xor r8d, r8d
call fcn.180193d00
mov ecx, dword [rbp - 0x54]
inc ecx
movsx rcx, cx
mov eax, ecx
mov dword [rbp - 0x54], eax
cmp eax, r12d
jge 0x180190137
mov edx, dword [rbx + 0x14]
jmp 0x180190092
mov edx, eax
test dl, 3
je 0x1801900d5
test dl, 2
jne 0x1801900f0
mov r8d, 1
jmp 0x1801900f6
test byte [rbp - 0x98], 0x1c
je 0x1801900b6
test r12d, r12d
je 0x18018ff97
lea rcx, [rbp - 0x98]
call fcn.1801fbf80
test eax, eax
je 0x18018ff97
mov ebx, dword [rbp - 0x9c]
jmp 0x18019000d
lea r9d, [rdx - 3]
lea r8, [rbx + 0x14]
mov r10, r8
mov eax, edx
lock cmpxchg dword [r10], r9d
cmp eax, edx
jne 0x180190090
xor r8d, r8d
jmp 0x1801900f6
mov r8d, 2
cmp r8d, 1
mov eax, dword [rbp - 0x54]
je 0x180190062
test r8d, r8d
jne 0x180190137
test r14d, r14d
je 0x180190275
test r13d, r13d
jg 0x180190275
movsx r12, word [rbx + 0x1c]
cmp r12d, r15d
jge 0x180190275
lea r10d, [r12 + 1]
mov word [rbx + 0x1c], r10w
jmp 0x180190275
lea r10, [rbx + 0x14]
mov r12, r10
mov eax, 0xfffffffc
lock xadd dword [r12], eax
add eax, 0xfffffffc
jmp 0x180190152
mov edx, eax
mov eax, edx
test al, 1
je 0x18019015d
mov edx, 2
jmp 0x180190178
lea edx, [rax + 1]
mov dword [rbp - 0x104], eax
lock cmpxchg dword [r12], edx
mov edx, dword [rbp - 0x104]
cmp eax, edx
jne 0x18019014e
xor edx, edx
test r14d, r14d
je 0x1801901b1
test r13d, r13d
jg 0x1801901b1
movsx r12, word [rbx + 0x1c]
test edx, edx
jne 0x18019019c
cmp r12d, r15d
jge 0x1801901b1
lea r9d, [r12 + 1]
mov word [rbx + 0x1c], r9w
jmp 0x1801901b1
lea r9d, [r12 - 1]
movsx r9, r9w
test r12d, r12d
cmovle r9d, r13d
mov word [rbx + 0x1c], r9w
cmp edx, 2
je 0x18018fe7b
jmp 0x180190275
mov dword [rsp + 0x20], 4
mov qword [rsp + 0x28], 0x4000
xor r9d, r9d
mov dword [rsp + 0x30], r9d
mov r9, qword [rcx + 0x80]
mov r8d, dword [rcx + 0x98]
call fcn.1801d93f0
test eax, eax
je 0x18018fea8
mov edx, 1
mov r14d, edx
mov r13, qword [rbx + 8]
test r13, r13
jne 0x18019020f
mov rcx, rbx
call fcn.1801909d0
mov r13, rax
mov edx, dword [rbx + 0x14]
xor r8d, r8d
mov dword [rbp - 0xa4], r8d
jmp 0x180190220
mov edx, eax
mov dword [rbp - 0xb0], edx
test byte [rbp - 0xb0], 3
jne 0x18019027f
mov eax, dword [rbp - 0xb0]
inc eax
mov dword [rbp - 0xb0], eax
mov ecx, dword [rbp - 0xb0]
lea rax, [rbx + 0x14]
mov r10, rax
mov eax, edx
lock cmpxchg dword [r10], ecx
cmp eax, edx
jne 0x18019021e
mov dword [rbp - 0x108], edx
test dl, 3
mov qword [rbp - 0x130], r10
mov qword [rbp - 0x120], r13
mov qword [rbp - 0x128], r12
jne 0x1801902d6
mov dword [rbx + 0x10], edi
mov eax, edi
jmp 0x1801908bc
mov dword [rbp - 0x108], edx
lea rcx, [rbp - 0xb0]
call fcn.1801fbfa0
test eax, eax
je 0x180190921
mov edx, dword [rbp - 0x108]
cmp edx, 0x80
jae 0x18019023d
mov r8d, dword [rbp - 0xa4]
test r8d, r8d
mov dword [rbp - 0xa4], r8d
jne 0x18019023d
mov r8d, 1
mov word [rbx + 0x1e], 0
mov dword [rbp - 0xa4], r8d
mov rbx, qword [rbp + 0x10]
jmp 0x18019023d
mov edx, dword [rbp - 0x108]
mov r8d, dword [rbp - 0xa4]
cmp edx, 0x80
setb cl
movzx ecx, cl
or ecx, r8d
je 0x18019030a
call sub.KERNEL32.dll_GetTickCount64
movzx ebx, ax
cmp dword [0x180501648], 0
je 0x180190313
jmp 0x180190927
mov r13, qword [rbp - 0x120]
jmp 0x180190331
lea ecx, [rbx - 1]
movzx ecx, cx
test ebx, ebx
cmove ebx, ecx
mov r13, qword [rbp + 0x10]
mov word [r13 + 0x1e], bx
mov rbx, r13
mov r13, qword [rbp - 0x120]
lea rcx, [0x1804f8b40]
add rcx, 0x10
lock inc qword [rcx]
xor r8d, r8d
test r14d, r14d
je 0x180190398
mov qword [rbp - 0x120], r13
mov r12, qword [rbp - 0x128]
mov rcx, qword [r12 + 8]
mov rdx, rbx
cmp dword [rcx], ecx
call fcn.1801e34b0
lea rcx, [rbp - 0xb8]
call sub.KERNEL32.dll_QueryPerformanceCounter
mov r8, qword [rbp - 0xb8]
mov qword [rbp - 0x60], r8
cmp dword [0x180501648], 0
mov rbx, qword [rbp + 0x10]
mov r13, qword [rbp - 0x120]
jne 0x18019086e
mov r8, qword [rbp - 0x60]
xorps xmm0, xmm0
movups xmmword [rbp - 0x78], xmm0
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x80], rbx
lea rcx, [rbp - 0x80]
mov qword [rbp - 0x78], rcx
mov dword [rbp - 0x70], 2
mov dword [rbp - 0x6c], esi
mov rcx, qword gs:[0x58]
mov edx, dword [0x18050bef8]
mov r10d, 0x10
add r10, qword [rcx + rdx*8]
mov rcx, r10
mov rdx, qword [rcx]
test rdx, rdx
je 0x18019087c
mov rcx, rdx
mov rdx, qword [rcx + 0x48]
mov qword [rbp - 0x68], rdx
lea rdx, [rbp - 0x78]
mov qword [rcx + 0x48], rdx
xor r12d, r12d
test esi, esi
jl 0x18019041f
mov qword [rbp - 0x120], r13
mov qword [rbp - 0x60], r8
call sub.KERNEL32.dll_GetTickCount64
mov ebx, eax
cmp dword [0x180501648], 0
mov r13, qword [rbp - 0x120]
je 0x18019042e
jmp 0x180190429
xor ecx, ecx
mov qword [rbp - 0x60], r8
mov ebx, ecx
jmp 0x18019042e
call fcn.180006480
mov eax, esi
jmp 0x180190445
mov r8d, esi
sub r8d, r13d
mov r13d, r8d
mov eax, r13d
mov r13, qword [rbp - 0x120]
mov r10, qword [rbp + 0x10]
mov r8d, dword [r10 + 0x14]
xor ecx, ecx
mov dword [rsp + 0x20], ecx
test r8b, 0x40
setne r8b
movzx r8d, r8b
mov qword [rbp - 0x120], r13
mov rcx, r13
mov dword [rbp - 0x84], eax
mov edx, eax
xor r9d, r9d
cmp dword [rcx], ecx
call fcn.180194dd0
test eax, eax
je 0x1801907b8
xor eax, eax
test r15d, r15d
jle 0x1801904d4
xor r10d, r10d
mov r9, qword [rbp + 0x10]
mov r11d, dword [r9 + 0x14]
jmp 0x1801904a7
mov r11d, eax
mov qword [rbp - 0x130], rdx
mov eax, dword [rbp - 0x88]
test r11b, 1
je 0x18019054b
mov dword [rbp - 0x88], eax
mov ecx, eax
mov edx, 0xa
xor r8d, r8d
call fcn.180193d00
mov eax, dword [rbp - 0x88]
inc eax
cwde
cmp eax, r15d
jl 0x18019048a
test r12d, r12d
jne 0x1801907b8
mov eax, 0xffffffe0
mov rcx, qword [rbp - 0x130]
lock xadd dword [rcx], eax
add eax, 0xffffffe0
xor edx, edx
jmp 0x180190501
mov r10d, eax
mov qword [rbp - 0x130], rcx
mov eax, r10d
test al, 1
je 0x1801906d8
mov r8d, dword [rbp - 0x84]
test r8d, r8d
mov eax, r8d
jl 0x180190531
call sub.KERNEL32.dll_GetTickCount64
mov r13d, eax
sub r13d, ebx
cmp dword [0x180501648], 0
je 0x18019053d
jmp 0x1801907eb
mov r13, qword [rbp - 0x120]
jmp 0x180190445
cmp r13d, esi
jae 0x1801907b8
jmp 0x180190432
mov dword [rbp - 0x10c], r11d
lea ecx, [r11 - 0x9f]
test cl, 2
mov r11d, dword [rbp - 0x10c]
je 0x1801905bf
add ecx, 0xfffffffe
mov dword [rbp - 0x110], ecx
cmp ecx, 0x80
jb 0x1801905b1
test r10d, r10d
mov dword [rbp - 0x88], eax
jne 0x1801905a9
mov dword [rbp - 0x10c], r11d
mov dword [rbp - 0xbc], 1
call sub.KERNEL32.dll_GetTickCount64
movzx r13d, ax
cmp dword [0x180501648], 0
je 0x1801905c7
jmp 0x1801907c6
mov ecx, dword [rbp - 0x110]
jmp 0x1801905f0
mov dword [rbp - 0x88], eax
mov ecx, dword [rbp - 0x110]
jmp 0x1801905f0
mov dword [rbp - 0x88], eax
jmp 0x1801905f0
test r13d, r13d
jne 0x1801905d3
dec r13d
movzx r13d, r13w
mov rcx, qword [rbp + 0x10]
mov word [rcx + 0x1e], r13w
mov ecx, dword [rbp - 0x110]
mov r10d, dword [rbp - 0xbc]
mov r11d, dword [rbp - 0x10c]
mov rdx, qword [rbp - 0x130]
mov eax, r11d
lock cmpxchg dword [rdx], ecx
cmp eax, r11d
jne 0x180190497
cmp ecx, 0x80
jb 0x18019063a
test r10d, r10d
jne 0x18019063a
call sub.KERNEL32.dll_GetTickCount64
movzx ebx, ax
cmp dword [0x180501648], 0
jne 0x1801907d0
test ebx, ebx
jne 0x180190632
dec ebx
movzx ebx, bx
mov rsi, qword [rbp + 0x10]
mov word [rsi + 0x1e], bx
mov r9, qword [rbp + 0x10]
mov dword [r9 + 0x10], edi
test r14d, r14d
je 0x1801906cd
lea rcx, [rbp - 0xc8]
call sub.KERNEL32.dll_QueryPerformanceCounter
mov rcx, qword [rbp - 0xc8]
sub rcx, qword [rbp - 0x60]
xorps xmm6, xmm6
cvtsi2sd xmm6, rcx
mulsd xmm6, qword [case.0x1801892d5.121]
cmp dword [0x180501648], 0
jne 0x1801907f5
lea rsi, [0x1802c3470]
cmp qword [rsi - 8], 0
jne 0x1801907ff
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsi]
divsd xmm6, xmm1
movaps xmm1, xmm6
movsd qword [rbp - 0x90], xmm1
lea rcx, [0x1802c34c0]
cmp qword [rcx - 8], 0
jne 0x180190809
mov r12, qword [0x1804f6a20]
mov rcx, qword [r12 + 8]
cmp dword [rcx], ecx
call fcn.1801e35b0
mov dword [rbp - 0xf4], edi
jmp 0x180190860
mov dword [rbp - 0x114], eax
lea r8d, [rax - 0x7f]
test r8b, 2
je 0x180190755
add r8d, 0xfffffffe
mov dword [rbp - 0x118], r8d
cmp r8d, 0x80
jb 0x18019072a
test edx, edx
jne 0x180190721
mov dword [rbp - 0xc0], 1
call sub.KERNEL32.dll_GetTickCount64
movzx r13d, ax
cmp dword [0x180501648], 0
je 0x180190733
jmp 0x1801907da
mov r8d, dword [rbp - 0x118]
jmp 0x180190755
mov r8d, dword [rbp - 0x118]
jmp 0x180190755
test r13d, r13d
jne 0x18019073f
dec r13d
movzx r13d, r13w
mov rcx, qword [rbp + 0x10]
mov word [rcx + 0x1e], r13w
mov edx, dword [rbp - 0xc0]
mov r8d, dword [rbp - 0x118]
mov rcx, qword [rbp - 0x130]
mov eax, dword [rbp - 0x114]
lock cmpxchg dword [rcx], r8d
mov r10d, dword [rbp - 0x114]
cmp eax, r10d
jne 0x1801904f4
cmp r8d, 0x80
jb 0x18019063a
test edx, edx
jne 0x18019063a
call sub.KERNEL32.dll_GetTickCount64
movzx r12d, ax
cmp dword [0x180501648], 0
jne 0x1801907e4
test r12d, r12d
jne 0x1801907aa
dec r12d
movzx r12d, r12w
mov rbx, qword [rbp + 0x10]
mov word [rbx + 0x1e], r12w
jmp 0x18019063a
mov rbx, qword [rbp + 0x10]
test r12d, r12d
je 0x18019081b
jmp 0x18019063a
call fcn.180006480
jmp 0x1801905c7
call fcn.180006480
jmp 0x180190629
call fcn.180006480
jmp 0x180190733
call fcn.180006480
jmp 0x18019079e
call fcn.180006480
jmp 0x18019053d
call fcn.180006480
jmp 0x18019067f
call fcn.180001227
jmp 0x180190691
call fcn.18000196f
movsd xmm1, qword [rbp - 0x90]
jmp 0x1801906ba
mov r9, rbx
cmp qword [rbp - 0x80], 0
je 0x1801908aa
mov rcx, qword gs:[0x58]
mov eax, dword [0x18050bef8]
mov edx, 0x10
add rdx, qword [rcx + rax*8]
mov rbx, qword [rdx]
test rbx, rbx
je 0x180190895
mov rcx, rbx
mov rax, qword [rbp - 0x68]
mov qword [rcx + 0x48], rax
xor ecx, ecx
mov qword [rbp - 0x78], rcx
mov qword [rbp - 0x80], rcx
jmp 0x1801908aa
mov r9, qword [rbp + 0x10]
mov rcx, rsp
call fcn.180190931
jmp 0x1801908b6
call fcn.180006480
mov r8, qword [rbp - 0x60]
jmp 0x180190398
mov qword [rbp - 0x60], r8
lea rdx, [0x1801f0910]
call rdx
mov rdx, rax
mov r8, qword [rbp - 0x60]
jmp 0x1801903e1
mov rcx, rdx
lea rax, [0x1801f0910]
call rax
mov rbx, rax
mov r9, qword [rbp + 0x10]
jmp 0x180190849
mov rcx, r9
call fcn.1801fbfc0
xor eax, eax
jmp 0x1801908bc
mov eax, dword [rbp - 0xf4]
movaps xmm6, xmmword [rsp + 0x120]
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, [0x1802ce1d8]
call fcn.180005620
mov rsi, rax
mov rcx, rsi
call fcn.18015c180
lea rcx, [0x1802b2720]
mov qword [rsi + 8], rcx
mov rcx, rsi
call fcn.180005b90
int3
call fcn.180006480
jmp 0x18018feed
call fcn.180006480
jmp 0x18018ffbf
call fcn.18000196f
jmp 0x18018fe8d
call fcn.180179190
int3
call fcn.180006480
jmp 0x180190313