Function at 0x14006ffd0
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, 0x128
movdqa xmmword [rsp + 0x110], xmm6
mov rbx, rdx
mov r15, qword [rcx + 0x20]
lea rax, [r15 + 0x10]
mov qword [rsp + 0xd0], rax
mov rax, qword [rdx]
mov qword [rsp + 0xc8], rax
mov r8, qword [rcx + 0x10]
mov rax, qword [rcx]
mov r9d, dword [rcx + 8]
mov edx, 0x3b9aca00
mov qword [rsp + 0x58], rax
mul rdx
movzx r10d, byte [rcx + 0x18]
mov dword [rsp + 0x94], r10d
mov qword [rsp + 0x50], r9
add rax, r9
mov qword [rsp + 0xc0], rax
adc rdx, 0
mov qword [rsp + 0xb8], rdx
mov r13, qword [rcx + 0x28]
lea rax, [r13 + 0x10]
mov qword [rsp + 0x80], rax
pcmpeqd xmm6, xmm6
mov qword [rsp + 0x88], r8
movzx eax, byte [r15 + 0x40]
test al, al
jne 0x140070d7a
mov rcx, qword [rsp + 0xc8]
mov rax, qword [rcx]
mov rcx, qword [rcx + 8]
call qword [rax]
mov r12, rax
mov rbp, rdx
mov al, 1
xchg byte [r15 + 0x20], al
mov esi, 0
test al, al
cmove rsi, qword [rsp + 0xd0]
jne 0x140070d72
mov rax, qword [rsi]
test rax, rax
je 0x1400700b6
mov rcx, qword [rsi + 8]
call qword [rax + 0x18]
mov qword [rsi], r12
mov qword [rsi + 8], rbp
xor eax, eax
xchg byte [rsi + 0x10], al
movzx eax, byte [r15 + 0x40]
test al, al
mov rsi, qword [rsp + 0x88]
jne 0x140070d7a
mov rcx, rsi
mov rdx, rbx
call fcn.1401018c0
mov ebp, eax
test al, al
jne 0x140070db0
mov rax, rsi
mov rsi, qword [rsi + 0x10]
mov edi, dword [rax + 0x18]
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x140070dce
mov r12, qword [rsp + 0x28]
mov r8, qword [0x140206100]
test r8, r8
jne 0x140070152
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140070dce
mov r8, qword [rsp + 0x28]
mov qword [0x140206100], r8
test r8, r8
je 0x140070d8e
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x140070170
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x14007017a
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1400701a0
xor edx, edx
div r8
jmp 0x1400701a5
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
cmp edi, 0x3b4e7ec0
jb 0x1400701e0
mov r8, rsi
inc r8
je 0x140070d8e
lea eax, [rdi - 0x3b4e7ec0]
jmp 0x1400701e9
lea eax, [rdi + 0x4c4b40]
mov r8, rsi
shr rdx, 0xb
imul r9d, edx, 0x3b9aca00
sub ecx, r9d
cmp rdx, r8
jb 0x140070250
jne 0x140070202
cmp eax, ecx
jae 0x140070250
mov eax, dword [rsp + 0x94]
test eax, eax
je 0x140070250
cmp eax, 1
jne 0x140070c1b
add rdx, qword [rsp + 0x58]
jb 0x140070d8e
add ecx, dword [rsp + 0x50]
cmp ecx, 0x3b9aca00
jb 0x140070d6a
inc rdx
je 0x140070d8e
add ecx, 0xc4653600
mov rsi, rdx
jmp 0x140070278
add rsi, qword [rsp + 0x58]
jb 0x140070d8e
add edi, dword [rsp + 0x50]
cmp edi, 0x3b9aca00
jb 0x140070276
inc rsi
je 0x140070d8e
add edi, 0xc4653600
mov ecx, edi
mov rax, qword [rsp + 0x88]
mov qword [rax + 0x10], rsi
mov dword [rax + 0x18], ecx
mov byte [rax + 0x68], 0
mov rdx, qword [rax + 8]
cmp qword [rax], 0
mov r8d, 0x120
mov eax, 0xb8
cmove r8, rax
mov eax, dword [rdx + r8 + 0xc8]
cmp eax, 0x3b9aca00
je 0x140070d8e
cmp ecx, 0x3b8b87c1
jb 0x1400702e0
inc rsi
je 0x140070d8e
add ecx, 0xc474783f
cmp ecx, 0x3b9aca00
jne 0x1400702e6
jmp 0x140070d8e
add ecx, 0xf423f
add rdx, r8
add rdx, 0x10
mov rdx, qword [rdx + 0xb0]
mov qword [rsp + 0x70], rsi
mov dword [rsp + 0x78], ecx
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x30], eax
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x28]
call fcn.1400eadc0
mov ecx, edx
imul rcx, rcx, 0x431bde83
shr rcx, 0x32
cmp edx, 0x3b9aca00
mov edx, 0
cmove rax, rdx
cmove ecx, edx
mov edx, 0x3e8
mul rdx
add rcx, rax
adc rdx, 0
mov rax, 0xfffffffffffffffd
cmovne rcx, rax
mov r8, qword [rsp + 0x88]
mov rax, qword [r8 + 0x40]
cmp rcx, 0xfffffffffffffffd
mov rdx, 0xfffffffffffffffd
cmovb rdx, rcx
nop dword [rax]
cmp rax, rdx
ja 0x14007037d
lock cmpxchg qword [r8 + 0x40], rcx
jne 0x140070370
lea rax, [r13 + 1]
cmp rax, 2
jb 0x140070db0
mov rax, qword [r13]
xor ebp, ebp
nop word cs:[rax + rax]
test rax, rax
je 0x140070dae
js 0x140070d8e
lea rcx, [rax + 1]
lock cmpxchg qword [r13], rcx
jne 0x1400703a0
mov qword [rsp + 0x70], r13
mov rcx, qword [rsp + 0x80]
call sub.kernel32.dll_AcquireSRWLockExclusive
movzx eax, byte [r13 + 0x18]
test al, al
jne 0x140070d90
mov eax, dword [r13 + 0xd8]
mov dword [rsp + 0x4c], eax
cmp eax, 0x3b9aca00
je 0x140070d8e
mov rax, qword [r13 + 0xd0]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x140070dce
mov r12, qword [rsp + 0x28]
mov r8, qword [0x140206100]
test r8, r8
jne 0x140070458
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140070dce
mov r8, qword [rsp + 0x28]
mov qword [0x140206100], r8
test r8, r8
je 0x140070d8e
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x140070471
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x14007047b
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x140070495
xor edx, edx
div r8
jmp 0x14007049a
xor edx, edx
div r8d
imul r11, rcx, 0x3b9aca00
add r11, rax
mov rax, r11
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
mov rax, qword [r13 + 0x78]
mov rsi, r13
test rax, rax
je 0x140070bf5
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], r15
shr rdx, 0xb
mov qword [rsp + 0x68], rdx
mov rcx, rax
imul eax, edx, 0x3b9aca00
sub r11d, eax
mov rbx, qword [r13 + 0x60]
lea r15, [rbx + 0x10]
movdqa xmm0, xmmword [rbx]
pmovmskb eax, xmm0
not eax
lea edx, [r11 + 0x3b9aca00]
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x98], rcx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0x40], r11
mov qword [rsp + 0xa0], r13
jmp 0x140070556
mov r13, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xe0]
lea eax, [rcx - 1]
and eax, ecx
mov rcx, qword [rsp + 0xe8]
dec rcx
je 0x140070be0
test ax, ax
jne 0x14007057d
nop dword [rax + rax]
movdqa xmm0, xmmword [r15]
pmovmskb eax, xmm0
add rbx, 0xfffffffffffffb80
add r15, 0x10
cmp eax, 0xffff
je 0x140070560
not eax
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xe0], rax
tzcnt eax, eax
neg rax
lea rax, [rax + rax*8]
lea rcx, [rbx + rax*8]
mov r13, qword [rbx + rax*8 - 8]
test r13, r13
mov qword [rsp + 0x38], rcx
je 0x140070810
mov r12, qword [rcx - 0x10]
xor edi, edi
jmp 0x1400705d0
inc rdi
add r12, 0x48
cmp r13, rdi
je 0x140070a7d
mov rax, qword [r12 + 0x28]
movzx eax, byte [rax + 0x10]
test al, al
jne 0x1400707f0
cmp byte [r12 + 0x10], 2
jne 0x140070600
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 3
jne 0x140070612
jmp 0x1400707f0
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x1400707f0
mov r14, qword [r12 + 0x38]
mov esi, dword [r12 + 0x40]
mov r8, qword [0x140206100]
test r8, r8
jne 0x14007065d
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140070dce
mov r8, qword [rsp + 0x28]
mov qword [0x140206100], r8
test r8, r8
mov r11, qword [rsp + 0x40]
je 0x140070d8e
cmp r8, 0x3b9aca00
ja 0x140070680
mov eax, 0x3b9aca00
xor edx, edx
div r8d
jmp 0x140070682
xor eax, eax
mov ecx, 0xc4653600
add ecx, eax
xor edx, edx
cmp r8, 2
setb r8b
cmovae ecx, eax
mov eax, ecx
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub ecx, eax
mov rax, r14
sub rax, qword [rsp + 0x68]
jb 0x1400706bf
jne 0x140070710
cmp esi, r11d
ja 0x140070710
mov rax, qword [rsp + 0x68]
mov ecx, 0x3b9aca00
sub rax, r14
jae 0x1400706f0
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x60]
jb 0x1400705c0
jmp 0x140070765
cmp esi, r11d
jbe 0x14007072a
test rax, rax
je 0x140070750
dec rax
mov ecx, dword [rsp + 0x48]
jmp 0x14007072d
cmp esi, r11d
jae 0x140070786
test rax, rax
je 0x140070d8e
dec rax
lea r9d, [rsi + 0x3b9aca00]
jmp 0x140070789
mov ecx, r11d
sub ecx, esi
mov edx, ecx
shr edx, 9
imul rdx, rdx, 0x44b83
shr rdx, 0x27
add rax, rdx
jb 0x140070d8e
imul edx, edx, 0x3b9aca00
sub ecx, edx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x60]
jb 0x1400705c0
cmp ecx, 0x3b9aca00
setne dl
cmp ecx, dword [rsp + 0x4c]
seta cl
cmp rax, qword [rsp + 0x60]
jne 0x1400707f0
and dl, cl
je 0x1400705c0
jmp 0x1400707f0
mov r9d, esi
sub r9d, r11d
mov r10d, r9d
shr r10d, 9
imul r10, r10, 0x44b83
shr r10, 0x27
add rax, r10
jb 0x140070d8e
mov dl, r8b
cmp rax, rdx
jb 0x1400707c8
jne 0x1400706bf
imul eax, r10d, 0x3b9aca00
sub r9d, eax
cmp r9d, ecx
ja 0x1400706bf
xor eax, eax
xor ecx, ecx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x60]
jb 0x1400705c0
jmp 0x140070765
inc rdi
mov rcx, r12
call fcn.14006cc30
mov r14d, 1
mov rsi, r13
sub rsi, rdi
jne 0x140070821
jmp 0x140070a80
xor edi, edi
xor r14d, r14d
mov rsi, r13
sub rsi, rdi
je 0x140070a80
lea r12, [rdi + rdi*8]
shl r12, 3
mov rax, qword [rsp + 0x38]
add r12, qword [rax - 0x10]
jmp 0x140070858
inc r14
mov rcx, r12
call fcn.14006cc30
add r12, 0x48
dec rsi
je 0x140070a80
mov rax, qword [r12 + 0x28]
movzx eax, byte [rax + 0x10]
test al, al
jne 0x140070840
cmp byte [r12 + 0x10], 2
jne 0x14007087d
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 3
je 0x140070840
jmp 0x14007088b
mov rax, qword [r12]
mov rax, qword [rax + 0x10]
cmp rax, 1
jne 0x140070840
mov rbp, qword [r12 + 0x38]
mov edi, dword [r12 + 0x40]
mov r8, qword [0x140206100]
test r8, r8
jne 0x1400708d1
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0x28]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x140070dce
mov r8, qword [rsp + 0x28]
mov qword [0x140206100], r8
test r8, r8
je 0x140070d8e
cmp r8, 0x3b9aca00
mov r11, qword [rsp + 0x40]
ja 0x1400708eb
mov eax, 0x3b9aca00
xor edx, edx
div r8d
jmp 0x1400708ed
xor eax, eax
mov ecx, 0xc4653600
add ecx, eax
xor edx, edx
cmp r8, 2
setb r8b
cmovae ecx, eax
mov eax, ecx
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub ecx, eax
mov rax, rbp
sub rax, qword [rsp + 0x68]
jb 0x14007092a
jne 0x140070956
cmp edi, r11d
ja 0x140070956
mov rax, qword [rsp + 0x68]
mov ecx, 0x3b9aca00
sub rax, rbp
jae 0x14007093e
jmp 0x1400709ef
cmp edi, r11d
mov ebp, 0
jbe 0x140070970
test rax, rax
je 0x140070996
dec rax
mov ecx, dword [rsp + 0x48]
jmp 0x140070973
cmp edi, r11d
jae 0x1400709a9
test rax, rax
je 0x140070d8e
dec rax
lea r9d, [rdi + 0x3b9aca00]
jmp 0x1400709ac
mov ecx, r11d
sub ecx, edi
mov edx, ecx
shr edx, 9
imul rdx, rdx, 0x44b83
shr rdx, 0x27
add rax, rdx
jb 0x140070d8e
imul edx, edx, 0x3b9aca00
sub ecx, edx
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x60]
jae 0x140070a02
jmp 0x140070a25
mov r9d, edi
sub r9d, r11d
mov r10d, r9d
shr r10d, 9
imul r10, r10, 0x44b83
shr r10, 0x27
add rax, r10
jb 0x140070d8e
mov dl, r8b
cmp rax, rdx
jb 0x1400709eb
jne 0x14007092a
imul eax, r10d, 0x3b9aca00
sub r9d, eax
cmp r9d, ecx
ja 0x14007092a
xor eax, eax
xor ecx, ecx
xor ebp, ebp
cmp ecx, 0x3b9aca00
cmove rax, rbp
cmp rax, qword [rsp + 0x60]
jb 0x140070a25
cmp ecx, 0x3b9aca00
setne dl
cmp ecx, dword [rsp + 0x4c]
seta cl
cmp rax, qword [rsp + 0x60]
jne 0x140070840
and dl, cl
jne 0x140070840
lea rax, [r14*8]
lea rax, [rax + rax*8]
mov rcx, r12
sub rcx, rax
mov rdx, qword [r12 + 0x40]
neg rax
mov qword [r12 + rax + 0x40], rdx
movdqu xmm0, xmmword [r12]
movdqu xmm1, xmmword [r12 + 0x10]
movups xmm2, xmmword [r12 + 0x20]
movups xmm3, xmmword [r12 + 0x30]
movups xmmword [rcx + 0x30], xmm3
movups xmmword [rcx + 0x20], xmm2
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmmword [rcx], xmm0
add r12, 0x48
dec rsi
jne 0x140070858
jmp 0x140070a80
xor r14d, r14d
sub r13, r14
mov rsi, qword [rsp + 0x38]
mov qword [rsi - 8], r13
mov r11, qword [rsp + 0x40]
jne 0x140070530
mov r9, qword [rsp + 0xd8]
mov rax, r9
sub rax, rsi
sar rax, 3
movabs rcx, 0x8e38e38e38e38e39
imul rax, rcx
lea rcx, [rax - 0x10]
mov r13, qword [rsp + 0xa0]
and rcx, qword [r13 + 0x68]
movdqu xmm0, xmmword [r9 + rcx]
pcmpeqb xmm0, xmm6
psllw xmm0, 7
pmovmskb edx, xmm0
test edx, edx
je 0x140070ae7
bsr dx, dx
xor edx, 0xf
jmp 0x140070aeb
mov dx, 0x10
movdqu xmm0, xmmword [r9 + rax]
pcmpeqb xmm0, xmm6
pmovmskb r8d, xmm0
or r8d, 0x10000
tzcnt r8d, r8d
add edx, r8d
mov r8b, pe_nt_image_headers64
cmp dx, 0xf
ja 0x140070b19
inc qword [r13 + 0x70]
mov r8b, 0xff
mov byte [r9 + rax], r8b
mov byte [rcx + r9 + 0x10], r8b
mov rax, qword [rsp + 0x98]
dec rax
mov qword [rsp + 0x98], rax
mov qword [r13 + 0x78], rax
cmp byte [rsi - 0x48], 2
jb 0x140070b74
mov rax, qword [rsp + 0x38]
mov r12, qword [rax - 0x40]
lea rcx, [r12 + 0x18]
mov rax, qword [r12]
mov rdx, qword [r12 + 8]
mov r8, qword [r12 + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x140206128]
xor edx, edx
mov r8, r12
mov rsi, qword [rsp + 0x38]
call sub.kernel32.dll_HeapFree
lea rcx, [rsi - 0x20]
mov rax, qword [rsi - 0x38]
mov rdx, qword [rsi - 0x30]
mov r8, qword [rsi - 0x28]
call qword [rax + 0x10]
mov rsi, qword [rsi - 8]
test rsi, rsi
je 0x140070bb1
mov rax, qword [rsp + 0x38]
mov r12, qword [rax - 0x10]
nop dword [rax]
mov rcx, r12
call fcn.14006cc30
add r12, 0x48
dec rsi
jne 0x140070ba0
mov rax, qword [rsp + 0x38]
cmp qword [rax - 0x18], 0
je 0x140070bcf
mov r8, qword [rax - 0x10]
mov rcx, qword [0x140206128]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov r11, qword [rsp + 0x40]
jmp 0x140070538
mov rsi, qword [rsp + 0x70]
mov r15, qword [rsp + 0xb0]
mov rbx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x80]
call fcn.1401168fc
lock dec qword [rsi]
jne 0x140070067
lea rcx, [rsp + 0x70]
call fcn.1400a16e0
jmp 0x140070067
mov r12, rbx
mov rbx, rdx
add rbx, qword [rsp + 0x58]
jb 0x140070d8e
mov rax, qword [rsp + 0x50]
lea r14d, [rax + rcx]
cmp r14d, 0x3b9aca00
jb 0x140070c4e
inc rbx
je 0x140070d8e
add r14d, 0xc4653600
mov qword [rsp + 0x70], rdx
mov dword [rsp + 0x78], ecx
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x30], edi
lea rcx, [rsp + 0x70]
lea rdx, [rsp + 0x28]
call fcn.1400eadc0
mov ecx, edx
mov r8, qword [rsp + 0xc0]
mov rdx, r8
mov r9, qword [rsp + 0xb8]
or rdx, r9
je 0x140070d8e
mov edx, 0x3b9aca00
mul rdx
cmp ecx, 0x3b9aca00
mov r10d, 0
cmove ecx, r10d
cmove rdx, r10
cmove rax, r10
add rcx, rax
adc rdx, 0
mov qword [rsp + 0xf0], r8
mov qword [rsp + 0xf8], r9
mov qword [rsp + 0x100], rcx
mov qword [rsp + 0x108], rdx
lea rcx, [rsp + 0x100]
lea rdx, [rsp + 0xf0]
call fcn.14000db70
pshufd xmm1, xmm0, 0xee
movq rax, xmm1
test rax, rax
jne 0x140070d8e
movq rcx, xmm0
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
sub rbx, rdx
jb 0x140070d8e
imul eax, edx, 0x3b9aca00
sub ecx, eax
cmp r14d, ecx
jae 0x140070d3a
test rbx, rbx
je 0x140070d8e
dec rbx
add r14d, 0x3b9aca00
sub r14d, ecx
mov eax, r14d
shr eax, 9
imul rax, rax, 0x44b83
shr rax, 0x27
add rbx, rax
jb 0x140070d8e
imul eax, eax, 0x3b9aca00
sub r14d, eax
mov rsi, rbx
mov ecx, r14d
mov rbx, r12
jmp 0x140070278
mov rsi, rdx
jmp 0x140070278
mov rcx, rbp
call qword [r12 + 0x18]
mov al, 1
xchg byte [r15 + 0x41], al
xor ebp, ebp
test al, al
jne 0x140070db0
xor eax, eax
xchg byte [r15 + 0x41], al
jmp 0x140070db0
ud2
mov rcx, qword [rsp + 0x80]
call fcn.1401168fc
lock dec qword [r13]
jne 0x140070dae
lea rcx, [rsp + 0x70]
call fcn.1400a16e0
xor ebp, ebp
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x110]
add rsp, 0x128
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.kernel32.dll_GetLastError
ud2