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

Disassembly:
push rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x180146030]
xor rax, rsp
mov qword [rsp + 0x88], rax
mov r12, qword [rsp + 0x108]
mov r15, r9
mov r14d, r8d
mov rbp, rdx
mov rsi, rcx
mov rax, qword [0x180146040]
lea r13, [0x180146040]
cmp rax, r13
je 0x1800225b1
test byte [rax + 0x44], 1
je 0x1800225b1
cmp byte [rax + 0x41], 4
jb 0x1800225b1
xor eax, eax
lea rcx, [rsp + 0x70]
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov r9, qword [rsp + 0x70]
mov edx, 0xf
mov rcx, qword [rcx + 0x38]
call fcn.180018fe0
mov rax, qword [0x180146040]
cmp byte [0x1801527f4], 0
mov qword [rsp + 0xa0], rbx
mov qword [rsp + 0x98], rdi
jne 0x1800225d1
xor edi, edi
jmp 0x18002271d
mov edx, dword [0x18015732c]
lea r9, [rsp + 0x40]
mov r8d, 1
lea rcx, [0x180152a20]
call fcn.18008b080
mov ebx, eax
test eax, eax
jns 0x180022635
mov rax, qword [0x180146040]
nop dword [rax + rax]
cmp rax, r13
je 0x180022683
test byte [rax + 0x1c], 4
je 0x180022683
cmp byte [rax + 0x19], 1
jb 0x180022683
lfence
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov edx, 0xb
mov r9d, ebx
mov rcx, qword [rcx + 0x10]
call fcn.180012460
jmp 0x180022683
lea rdx, [0x180022460]
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_AddVectoredExceptionHandler]
mov rdi, rax
test rax, rax
jne 0x180022716
mov rcx, qword [0x180146040]
cmp rcx, r13
je 0x18002267e
test byte [rcx + 0x1c], 4
je 0x18002267e
cmp byte [rcx + 0x19], 1
jb 0x18002267e
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0xc]
lea r8, [0x180132528]
call fcn.180011520
mov ebx, 0xc0000008
lfence
mov rax, qword [0x180146040]
cmp rax, r13
je 0x1800229d7
test byte [rax + 0x1c], 4
je 0x1800226c1
cmp byte [rax + 0x19], 1
jb 0x1800226c1
mov rcx, qword [rax + 0x10]
lea r8, [0x180132528]
mov edx, 0x10
mov r9d, ebx
call fcn.180012460
mov rax, qword [0x180146040]
cmp rax, r13
je 0x1800229d7
test byte [rax + 0x44], 1
je 0x1800229d7
cmp byte [rax + 0x41], 4
jb 0x1800229d7
xor eax, eax
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x78], rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov r9, qword [rsp + 0x78]
mov edx, 0x11
mov rcx, qword [rcx + 0x38]
call fcn.180018fe0
jmp 0x1800229d7
mov rax, qword [0x180146040]
nop dword [rax]
cmp rax, r13
je 0x180022750
test byte [rax + 0x1c], 4
je 0x180022750
cmp byte [rax + 0x19], 5
jb 0x180022750
mov rcx, qword [rax + 0x10]
lea r8, [0x180132528]
mov edx, 0x12
mov r9, rbp
call fcn.180013700
mov rax, qword [0x180146040]
cmp qword [rsi], 0xffffffffffffffff
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
jne 0x18002276d
mov ebx, 0xe8040002
jmp 0x18002284d
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x18002279b
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0xe80f0000
jmp 0x180022846
mov rcx, qword [rsi]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov r9d, r14d
mov eax, dword [rsp + 0x100]
mov r8, rbp
mov qword [rsp + 0x30], r12
mov edx, 0x2222c0
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r15
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
jne 0x180022839
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x180022828
mov rcx, qword [rsp + 0x68]
mov edx, 0x1388
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebx, 0x102
cmp eax, ebx
je 0x18002283b
mov ebx, 0x80
cmp eax, ebx
je 0x18002283b
cmp eax, 0xffffffff
jne 0x180022839
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword ds:[rsi]
movzx ebx, ax
or ebx, 0xe80f0000
call qword [sym.imp.KERNEL32.dll_CancelIo]
jmp 0x18002283b
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ebx, ax
or ebx, 0xe80f0000
jmp 0x18002283b
xor ebx, ebx
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [0x180146040]
cmp byte [0x1801527f4], 0
je 0x18002294c
nop word [rax + rax]
test rdi, rdi
je 0x180022914
mov edx, dword [0x18015732c]
lea r9, ds:[rsp + 0x48]
xor r8d, r8d
lea rcx, [0x180152a20]
call fcn.18008b080
mov r9d, eax
test eax, eax
jns 0x1800228c9
mov rax, qword [0x180146040]
cmp rax, r13
je 0x1800229a0
test byte [rax + 0x1c], 4
je 0x180022914
cmp byte [rax + 0x19], 1
jb 0x180022914
lfence
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov edx, 0xd
mov rcx, qword [rcx + 0x10]
call fcn.180012460
jmp 0x18002290d
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_RemoveVectoredExceptionHandler]
test eax, eax
jne 0x180022945
mov rax, qword [0x180146040]
nop dword [rax]
cmp rax, r13
je 0x1800229a0
test byte [rax + 0x1c], 4
je 0x180022914
cmp byte [rax + 0x19], 1
jb 0x180022914
mov rcx, qword [rax + 0x10]
lea r8, [0x180132528]
mov edx, 0xe
mov r9d, edi
call fcn.180011560
mov rax, qword [0x180146040]
cmp rax, r13
je 0x1800229a0
test byte [rax + 0x1c], 4
je 0x18002294c
cmp byte [rax + 0x19], 1
jb 0x18002294c
mov rcx, qword ds:[rax + 0x10]
lea r8, [0x180132528]
mov edx, 0x13
mov r9d, ebx
call fcn.180012460
mov rax, qword [0x180146040]
cmp rax, r13
je 0x1800229a0
test byte [rax + 0x44], 1
je 0x1800229a0
cmp byte [rax + 0x41], 4
jb 0x1800229a0
xor eax, eax
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x80], rax
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov r9, qword [rsp + 0x80]
mov edx, 0x14
mov rcx, qword [rcx + 0x38]
call fcn.180018fe0
mov rax, qword [0x180146040]
test ebx, ebx
jns 0x1800229d7
cmp rax, r13
je 0x1800229d7
test byte [rax + 0x1c], 4
je 0x1800229d7
cmp byte [rax + 0x19], 2
jb 0x1800229d7
lfence
mov rcx, qword [0x180146040]
lea r8, [0x180132528]
mov edx, 0x15
mov r9d, ebx
mov rcx, qword [rcx + 0x10]
call fcn.180012460
mov rdi, qword [rsp + 0x98]
mov eax, ebx
mov rbx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x88]
xor rcx, rsp
call fcn.18008e6f0
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
ret