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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
movabs rsi, 0x8000000000000001
lea rcx, [rsp + 0xe8]
call fcn.140085b70
lea rax, [0x1401bd644]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0x3d1b489583c71c48
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140094c20
mov rcx, qword [rax]
mov rcx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov ecx, dword [rax + 0x20]
movzx eax, byte [rax + 0x24]
lea r14, [rsi - 1]
cmp qword [rsp + 0xe8], r14
jne 0x140001ee4
ud2
mov rbx, qword [rsp + 0xf0]
mov rsi, qword [rsp + 0xf8]
movzx ebp, byte [rsp + 0x100]
mov edi, 1
test rsi, rsi
jne 0x14000267c
mov qword [rsp + 0xd0], r14
mov rcx, rdi
mov rdx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0x1f8], rsi
mov qword [rsp + 0x200], rdi
mov qword [rsp + 0x208], rsi
mov byte [rsp + 0x210], bpl
lea rax, [0x1401b89ac]
mov qword [rsp + 0xe8], rax
lea rax, [rsp + 0xe8]
mov rcx, qword [rsp + 0xe8]
movabs rax, 0xc5d3a60e0ea73b69
mov qword [rsp + 0xe8], rax
lea rax, [rsp + 0xe8]
mov rdx, qword [rsp + 0xe8]
call fcn.1400959f0
movabs rcx, 0xe1b7cec7c8f42c94
xor rcx, qword [rax]
mov edx, 0x158b7cf0
xor edx, dword [rax + 8]
movzx eax, word [rax + 0xc]
mov r8d, eax
xor r8b, 0xba
shr eax, 8
xor al, 0x7e
movzx r8d, r8b
movzx eax, al
shl eax, 8
or eax, r8d
mov qword [rsp + 0xe8], rcx
mov dword [rsp + 0xf0], edx
mov word [rsp + 0xf4], ax
mov rcx, rdi
mov rdx, rsi
call fcn.140085650
test rax, rax
je 0x140001ffc
mov rcx, rdi
mov rdx, rsi
call fcn.140084fd0
test rax, rax
je 0x140001ffc
cmp rsi, rdx
jb 0x140001ffc
mov qword [rsp + 0x208], rdx
lea rcx, [rsp + 0x1f8]
lea rdx, [rsp + 0xe8]
mov r8d, 0xe
call fcn.140084390
xor esi, esi
mov r12d, 0xf
lea r14, [rsp + 0x30]
lea rdi, [rsp + 0x98]
mov ebx, 0xffffffff
jmp 0x140002066
cmp qword [rsp + 0x178], 0
je 0x140002061
mov r8, qword [rsp + 0x180]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
inc esi
add r12, r12
lea rax, [0x1401b4b8d]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x72614dbbd20cdbb9
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.1400959c0
mov rcx, qword [rax]
movabs rdx, 0xca6e1ffc9e9d4b8a
xor rcx, rdx
mov rdx, qword [rax + 8]
movabs r8, 0xe69db87e3ba2fdb4
xor rdx, r8
mov r8, qword [rax + 0x10]
movabs r9, 0x940e81e63d84657
xor r8, r9
mov r9, qword [rax + 0x18]
movabs r10, 0x630b0fb19c2765df
xor r9, r10
mov r10d, dword [rax + 0x20]
mov r11d, 0x5d58f72f
xor r10d, r11d
movzx r11d, byte [rax + 0x26]
movzx eax, word [rax + 0x24]
mov ebp, eax
shr ebp, 8
xor al, 0xd1
xor bpl, 0xe8
movzx eax, al
movzx ebp, bpl
shl ebp, 8
or ebp, eax
xor r11b, 0x1b
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], r8
mov qword [rsp + 0xb0], r9
mov dword [rsp + 0xb8], r10d
mov word [rsp + 0xbc], bp
mov byte [rsp + 0xbe], r11b
mov r8d, 0x27
mov rcx, r14
mov rdx, rdi
call fcn.1400d5660
lea rcx, [rsp + 0xe8]
mov rdx, r14
call fcn.1400beca0
mov r13, qword [rsp + 0xe8]
movabs rax, 0x8000000000000001
cmp r13, rax
je 0x1400026a4
cmp esi, 4
je 0x140002821
lea rax, [0x1401bb868]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x30]
movabs rax, 0x709e77e5991a1a74
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x30]
call fcn.140094af0
mov rcx, qword [rax]
movabs rdx, 0x93a6bf5b508f88f3
xor rcx, rdx
mov rdx, qword [rax + 8]
movabs r8, 0x729f9029cdf252dd
xor rdx, r8
mov eax, dword [rax + 0x10]
mov r8d, 0x93c4fce4
xor eax, r8d
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], eax
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], 0x14
lea rax, [rsp + 0xc0]
mov qword [rsp + 0xd8], rax
lea rax, [0x1400c33b0]
mov qword [rsp + 0xe0], rax
lea rax, [0x1401dbbf8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
mov rcx, r14
call fcn.140081090
xor ecx, ecx
xor edx, edx
mov r8d, 2
mov r9d, 0x1f0003
call sub.KERNEL32.dll_CreateWaitableTimerExW
test rax, rax
je 0x1400023a8
mov r15, rax
test r12, r12
js 0x1400023a0
imul rax, r12, 0xffffffffff676980
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov rcx, r15
mov rdx, r14
xor r8d, r8d
xor r9d, r9d
call sub.KERNEL32.dll_SetWaitableTimer
test eax, eax
je 0x1400023a0
mov rcx, r15
mov edx, 0xffffffff
call sub.KERNEL32.dll_WaitForSingleObject
mov ebp, eax
mov rcx, r15
call sub.KERNEL32.dll_CloseHandle
cmp ebp, 0xffffffff
je 0x1400023a8
nop
movabs rax, 0x8000000000000000
cmp r13, rax
je 0x1400023ce
movabs rax, 0x8000000000000001
cmp r13, rax
jne 0x140002520
cmp qword [rsp + 0xf0], 0
je 0x140002327
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x148], 0
je 0x140002348
mov r8, qword [rsp + 0x150]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x170]
test r15, r15
je 0x140002470
mov r13, qword [rsp + 0x168]
add r13, 8
jmp 0x14000237d
add r13, 0x20
dec r15
je 0x140002470
cmp qword [r13 - 8], 0
je 0x140002370
mov r8, qword [r13]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140002370
mov rcx, r15
call sub.KERNEL32.dll_CloseHandle
imul rcx, r12, 0x3e8
cmp rcx, rbx
cmovae rcx, rbx
call sub.KERNEL32.dll_Sleep
movabs rax, 0x8000000000000000
cmp r13, rax
jne 0x1400022f3
mov rax, qword [rsp + 0xf0]
mov r15, qword [rsp + 0xd0]
cmp rax, r15
je 0x1400023fe
test rax, rax
je 0x1400023fe
mov r8, qword [rsp + 0xf8]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rsp + 0x108]
cmp rax, r15
je 0x140002426
test rax, rax
je 0x140002426
mov r8, qword [rsp + 0x110]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x160]
test r15, r15
je 0x140002061
mov r13, qword [rsp + 0x168]
mov rcx, r15
call qword [r13]
cmp qword [r13 + 8], 0
je 0x140002061
cmp qword [r13 + 0x10], 0x11
jb 0x14000245c
mov r15, qword [r15 - 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r15
jmp 0x14000205c
cmp qword [rsp + 0x160], 0
je 0x140002491
mov r8, qword [rsp + 0x168]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x1d0]
mov r13, qword [rsp + 0x1d8]
mov rcx, r15
call qword [r13]
cmp qword [r13 + 8], 0
je 0x1400024cb
cmp qword [r13 + 0x10], 0x11
jb 0x1400024ba
mov r15, qword [r15 - 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x188]
test r15, r15
je 0x140002040
mov r13, qword [rsp + 0x180]
add r13, 8
jmp 0x1400024fd
add r13, 0x58
dec r15
je 0x140002040
cmp qword [r13 - 8], 0
je 0x1400024f0
mov r8, qword [r13]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x1400024f0
test r13, r13
je 0x14000253b
mov r8, qword [rsp + 0xf0]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
cmp qword [rsp + 0x140], 0
je 0x14000255c
mov r8, qword [rsp + 0x148]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x168]
test r15, r15
je 0x1400025b0
mov r13, qword [rsp + 0x160]
add r13, 8
jmp 0x140002589
add r13, 0x20
dec r15
je 0x1400025b0
cmp qword [r13 - 8], 0
je 0x140002580
mov r8, qword [r13]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140002580
cmp qword [rsp + 0x158], 0
je 0x1400025d1
mov r8, qword [rsp + 0x160]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x1c8]
mov r13, qword [rsp + 0x1d0]
mov rcx, r15
call qword [r13]
cmp qword [r13 + 8], 0
je 0x14000260b
cmp qword [r13 + 0x10], 0x11
jb 0x1400025fa
mov r15, qword [r15 - 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, r15
call sub.KERNEL32.dll_HeapFree
mov r15, qword [rsp + 0x180]
test r15, r15
je 0x140002660
mov r13, qword [rsp + 0x178]
add r13, 8
jmp 0x140002639
add r13, 0x58
dec r15
je 0x140002660
cmp qword [r13 - 8], 0
je 0x140002630
mov r8, qword [r13]
mov rcx, qword [0x1402590e0]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
jmp 0x140002630
cmp qword [rsp + 0x170], 0
je 0x140002061
mov r8, qword [rsp + 0x178]
jmp 0x140002053
js 0x140001ee2
movzx eax, byte [0x140259141]
xor ecx, ecx
mov rdx, rsi
call fcn.14008b700
mov rdi, rax
test rax, rax
je 0x140001ee2
jmp 0x140001f0a
mov dword [rsp + 0x30], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x38], xmm0
mov dword [rsp + 0x48], 7
mov qword [rsp + 0x4c], 0
mov word [rsp + 0x54], 0
mov byte [rsp + 0x51], 1
mov byte [rsp + 0x54], 1
mov byte [rsp + 0x53], 1
mov rcx, qword [rsp + 0x200]
mov rdx, qword [rsp + 0x208]
lea r8, [rsp + 0x30]
call fcn.140092af0
mov rbx, rax
mov rdi, rdx
lea rax, [0x1401aece3]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0x4619afca1fec2554
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.1400949f0
mov rcx, qword [rax]
mov rcx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
movzx eax, byte [rax + 0x18]
test rbx, rbx
jne 0x140001ee2
mov qword [rsp + 0xc0], rdi
lea rcx, [rsp + 0xf0]
call fcn.1400b6a90
mov rsi, rax
mov rdi, rdx
lea rcx, [rsp + 0x30]
lea r9, [rsp + 0xc0]
mov rdx, rax
mov r8, rdi
call fcn.14009dca0
lea rax, [0x1401bb7fa]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x98]
mov rcx, qword [rsp + 0x98]
movabs rax, 0xe58f0c8a5004b16f
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x98]
mov rdx, qword [rsp + 0x98]
call fcn.140094bf0
mov rcx, qword [rax]
mov rcx, qword [rax + 8]
mov rcx, qword [rax + 0x10]
movzx ecx, byte [rax + 0x1a]
movzx eax, word [rax + 0x18]
cmp qword [rsp + 0x30], 0
jne 0x140001ee2
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
mov r14, qword [rsp + 0xd0]
je 0x14000280f
cmp qword [rdi + 0x10], 0x11
jb 0x1400027fe
mov rsi, qword [rsi - 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [rsp + 0xc0]
call sub.KERNEL32.dll_CloseHandle
jmp 0x140002955
lea rax, [0x1401b074b]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x30]
movabs rax, 0xfdb38aa40b610d07
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x30]
mov rdx, qword [rsp + 0x30]
call fcn.140095190
movabs rcx, 0x40d0abc88547224f
xor rcx, qword [rax]
movabs rdx, 0x4d8357d9e099a29c
xor rdx, qword [rax + 8]
movabs r8, 0xf8e02c13c874e8c5
xor r8, qword [rax + 0x10]
movzx r9d, byte [rax + 0x1a]
movzx eax, word [rax + 0x18]
mov r10d, eax
shr r10d, 8
xor al, 0xe2
xor r10b, 0x66
movzx eax, al
movzx r10d, r10b
shl r10d, 8
or r10d, eax
xor r9b, 0x24
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xa0], rdx
mov qword [rsp + 0xa8], r8
mov word [rsp + 0xb0], r10w
mov byte [rsp + 0xb2], r9b
mov qword [rsp + 0xc0], rdi
mov qword [rsp + 0xc8], 0x1b
lea rax, [rsp + 0xc0]
mov qword [rsp + 0xd8], rax
lea rax, [0x1400c33b0]
mov qword [rsp + 0xe0], rax
lea rax, [0x1401dbbf8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 2
mov qword [rsp + 0x50], 0
lea rax, [rsp + 0xd8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 1
lea rcx, [rsp + 0x30]
call fcn.140081090
lea rcx, [rsp + 0xe8]
call fcn.140001d70
mov r14, qword [rsp + 0xd0]
mov rdi, qword [rsp + 0x200]
mov rsi, qword [rsp + 0x208]
mov ebx, 1
test rsi, rsi
je 0x140002992
js 0x140001ee2
movzx eax, byte [0x140259141]
xor ecx, ecx
mov rdx, rsi
call fcn.14008b700
mov rbx, rax
test rax, rax
je 0x140001ee2
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], rsi
mov byte [rsp + 0x100], 0
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x110], 8
mov qword [rsp + 0x118], 0
mov qword [rsp + 0x120], r14
mov dword [rsp + 0x140], 6
mov dword [rsp + 0x150], 6
mov dword [rsp + 0x160], 6
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
movups xmmword [rsp + 0x17a], xmm0
movups xmmword [rsp + 0x190], xmm0
movups xmmword [rsp + 0x19e], xmm0
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xe8]
call fcn.14008fc50
mov rdi, qword [rsp + 0x30]
cmp rdi, 2
jne 0x140002ab5
mov rax, qword [rsp + 0x38]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x140002af3
test rcx, rcx
je 0x140002af3
lea rsi, [rax - 1]
mov rdi, qword [rax - 1]
mov rbx, qword [rax + 7]
mov rcx, rdi
call qword [rbx]
cmp qword [rbx + 8], 0
je 0x140002aa2
cmp qword [rbx + 0x10], 0x11
jb 0x140002a91
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1402590e0]
xor edx, edx
mov r8, rsi
call sub.KERNEL32.dll_HeapFree
jmp 0x140002af3
mov rcx, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
call sub.KERNEL32.dll_CloseHandle
mov rcx, rsi
call sub.KERNEL32.dll_CloseHandle
test rdi, rdi
jne 0x140002b82
cmp qword [rsp + 0x40], 0
jne 0x140002b98
cmp qword [rsp + 0x50], 0
je 0x140002af3
mov rcx, qword [rsp + 0x58]
call sub.KERNEL32.dll_CloseHandle
lea rcx, [rsp + 0xe8]
call fcn.140001450
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0xe8]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x140002c28
mov rsi, qword [rsp + 0xe8]
mov rcx, qword [0x140259130]
test rcx, rcx
jne 0x140002b6e
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0xe8]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140002c28
mov rcx, qword [rsp + 0xe8]
mov qword [0x140259130], rcx
test rcx, rcx
je 0x140001ee2
mov rax, rsi
or rax, rcx
shr rax, 0x20
jne 0x140002bb3
mov eax, esi
xor edx, edx
div ecx
jmp 0x140002bbb
mov rcx, qword [rsp + 0x38]
call sub.KERNEL32.dll_CloseHandle
cmp qword [rsp + 0x40], 0
je 0x140002ae1
mov rcx, qword [rsp + 0x48]
call sub.KERNEL32.dll_CloseHandle
cmp qword [rsp + 0x50], 0
jne 0x140002ae9
jmp 0x140002af3
mov rax, rsi
xor edx, edx
div rcx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
jne 0x140002bdd
xor edx, edx
div ecx
mov esi, eax
jmp 0x140002be5
xor edx, edx
div rcx
mov rsi, rax
add rsi, r8
mov rax, rsi
shr rax, 9
movabs r14, 0x44b82fa09b5a53
mul r14
mov rdi, rdx
mov ecx, 0x23
xor edx, edx
call fcn.140089e40
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0xe8]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
jne 0x140002c2f
call sub.KERNEL32.dll_GetLastError
ud2
mov rbx, qword [rsp + 0xe8]
mov rcx, qword [0x140259130]
test rcx, rcx
jne 0x140002c78
mov qword [rsp + 0xe8], 0
lea rcx, [rsp + 0xe8]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140002c28
mov rcx, qword [rsp + 0xe8]
mov qword [0x140259130], rcx
test rcx, rcx
je 0x140001ee2
shr rdi, 0xb
imul r8d, edi, 0x3b9aca00
mov rax, rbx
or rax, rcx
shr rax, 0x20
jne 0x140002c97
mov eax, ebx
xor edx, edx
div ecx
jmp 0x140002c9f
mov rax, rbx
xor edx, edx
div rcx
sub esi, r8d
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
jne 0x140002cc4
xor edx, edx
div ecx
mov ecx, eax
jmp 0x140002ccc
xor edx, edx
div rcx
mov rcx, rax
add rcx, r8
mov rax, rcx
shr rax, 9
mul r14
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x38], ecx
mov qword [rsp + 0xe8], rdi
mov dword [rsp + 0xf0], esi
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0xe8]
call fcn.140093890
cmp edx, 0x3b9aca00
je 0x140002d47
cmp rax, 0x19
jb 0x140002d47
lea rcx, [rsp + 0xe8]
call fcn.1400ec6e0
cmp byte [rsp + 0xe8], 0x12
jne 0x140001ee2
call fcn.140095bb0
call fcn.14009b6e0
call fcn.140002d50
call fcn.140092960
int3