Function at 0x140069a10
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1b8
movdqa xmmword [rsp + 0x1a0], xmm8
movdqa xmmword [rsp + 0x190], xmm7
movdqa xmmword [rsp + 0x180], xmm6
mov qword [rsp + 0x170], r9
mov r14, r8
mov qword [rsp + 0x40], rdx
mov r9, rcx
cmp byte [r8 + 0x10], 2
mov qword [rsp + 0x30], rcx
jne 0x140069b6b
cmp qword [r9 + 0x58], 0
je 0x140069b6b
mov rcx, qword [r9 + 0x60]
mov rdx, qword [r9 + 0x68]
mov rsi, qword [rsp + 0x40]
mov r8, rsi
mov rdi, r9
call fcn.14008f560
mov r15, rax
mov rcx, qword [rdi + 0x40]
mov rbx, qword [rdi + 0x48]
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea rbp, [rcx - 0x48]
lea r12, [rsi + 0x10]
xor edi, edi
pcmpeqd xmm7, xmm7
mov qword [rsp + 0x90], rcx
and r15, rbx
movdqu xmm8, xmmword [rcx + r15]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb esi, xmm0
nop word cs:[rax + rax]
test si, si
je 0x140069b40
mov eax, esi
lea esi, [rax - 1]
and esi, eax
tzcnt eax, eax
add rax, r15
and rax, rbx
neg rax
lea rax, [rax + rax*8]
lea r13, [rax*8]
add r13, rbp
mov rcx, qword [rsp + 0x40]
mov rdx, r13
call fcn.14002e350
test al, al
je 0x140069ae0
add r13, 0x10
mov rcx, r12
mov rdx, r13
call fcn.14002b870
test al, al
je 0x140069ae0
jmp 0x14006a1a4
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
mov r9, qword [rsp + 0x30]
jne 0x140069b6b
add r15, rdi
add r15, 0x10
add rdi, 0x10
mov rcx, qword [rsp + 0x90]
jmp 0x140069abc
mov rax, qword [r14 + 0x30]
mov qword [rsp + 0x110], rax
movdqu xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movaps xmmword [rsp + 0x100], xmm2
movaps xmmword [rsp + 0xf0], xmm1
movdqa xmmword [rsp + 0xe0], xmm0
lea rcx, [r9 + 0x70]
mov qword [rsp + 0x178], rcx
mov rdx, qword [rsp + 0x40]
call fcn.140059f10
test rax, rax
je 0x14006a216
mov r15, rax
xor ebp, ebp
jmp 0x140069bdd
lea rcx, [rsp + 0x130]
call fcn.140093c70
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x14006a1c6
mov rcx, qword [r15 + 0x10]
lea rdx, [rcx + 1]
mov r8, qword [r15]
mov r9, qword [r15 + 8]
cmp rdx, r8
cmovb r8, rbp
neg r8
lea rdx, [rcx + r8]
inc rdx
mov qword [r15 + 0x10], rdx
dec rax
mov qword [r15 + 0x18], rax
mov rax, qword [r9 + rcx*8]
mov qword [rsp + 0x130], rax
movzx eax, byte [rax + 0x80]
test al, al
je 0x140069c90
mov rsi, qword [rsp + 0x130]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x140069c65
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x140069c65
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x140069d20
mov rax, qword [rsp + 0x130]
lock dec qword [rax]
jne 0x140069bdd
jmp 0x140069bd0
mov qword [rsp + 0x118], r12
movzx edi, byte [rsp + 0x111]
mov byte [rsp + 0x111], 2
cmp dil, 2
je 0x14006b0be
mov r12, r14
mov r14d, ebx
mov rbx, r13
mov rbp, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xe8]
movzx ecx, byte [rsp + 0xf0]
mov rax, qword [rsp + 0xf8]
mov rdx, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x108]
movzx r8d, byte [rsp + 0x110]
mov byte [rsp + 0x90], r8b
cmp cl, 2
jne 0x140069d54
test rax, rax
je 0x140069dae
mov rcx, rax
call qword [rdx + 0x18]
lock inc qword [rsi]
jg 0x140069dba
jmp 0x14006b0be
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x140069d38
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0x130]
lock dec qword [rax]
jne 0x140069bdd
jmp 0x140069bd0
lea r11, [rsp + 0x112]
movzx r8d, word [r11 + 4]
mov word [rsp + 0xa4], r8w
mov r9d, dword [r11]
mov dword [rsp + 0xa0], r9d
mov r10d, dword [r11 - 0x21]
mov r11d, dword [r11 - 0x1e]
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x53], r11d
mov r10d, dword [rsp + 0x50]
mov r11d, dword [rsp + 0x53]
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x4b], r11d
mov dword [rsp + 0xd8], r9d
mov word [rsp + 0xdc], r8w
jmp 0x140069e09
xor eax, eax
lock inc qword [rsi]
jle 0x14006b0be
lock inc qword [rbp]
jle 0x14006b0be
lock inc qword [r13 + 0x1d0]
lock inc qword [r13]
jle 0x14006b0be
lea r8, [rsp + 0x112]
movzx ecx, word [r8 + 4]
mov word [rsp + 0xa4], cx
mov ecx, dword [r8]
mov dword [rsp + 0xa0], ecx
mov byte [rsp + 0xf0], 2
mov byte [rsp + 0x111], dil
mov cl, 2
mov r9, qword [rsp + 0x130]
mov r8d, dword [rsp + 0x48]
mov r10d, dword [rsp + 0x4b]
mov dword [rsp + 0xa0], r8d
mov dword [rsp + 0xa3], r10d
mov r8d, dword [rsp + 0xd8]
mov dword [rsp + 0x20], r8d
movzx r8d, word [rsp + 0xdc]
mov word [rsp + 0x24], r8w
mov qword [rsp + 0x50], r9
movzx r8d, byte [r9 + 0x80]
test r8b, r8b
je 0x140069ea3
mov r8d, dword [rsp + 0xa0]
mov r9d, dword [rsp + 0xa3]
mov dword [rsp + 0x2b], r9d
mov dword [rsp + 0x28], r8d
mov r8d, dword [rsp + 0x20]
mov dword [rsp + 0x38], r8d
movzx r8d, word [rsp + 0x24]
mov word [rsp + 0x3c], r8w
mov qword [rsp + 0x120], rbp
mov ebx, ecx
mov r14, rax
mov r12, rdx
mov qword [rsp + 0x98], rsi
jmp 0x140069f19
mov qword [rsp + 0x128], rsi
lea r8, [r9 + 0x10]
mov r11b, 1
xchg byte [r9 + 0x48], r11b
mov r10d, 0
test r11b, r11b
cmove r10, r8
je 0x14006a07f
mov r8d, dword [rsp + 0xa0]
mov r9d, dword [rsp + 0xa3]
mov dword [rsp + 0x2b], r9d
mov dword [rsp + 0x28], r8d
mov r8d, dword [rsp + 0x20]
mov dword [rsp + 0x38], r8d
movzx r8d, word [rsp + 0x24]
mov word [rsp + 0x3c], r8w
mov qword [rsp + 0x120], rbp
mov ebx, ecx
mov r14, rax
mov r12, rdx
mov rax, qword [rsp + 0x128]
mov qword [rsp + 0x98], rax
movzx eax, byte [rsp + 0x90]
mov byte [rsp + 0xd0], al
xor ebp, ebp
mov rsi, qword [rsp + 0x50]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x140069f60
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x140069f60
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x14006a029
mov rax, qword [rsp + 0x50]
lock dec qword [rax]
jne 0x14006a060
lea rcx, [rsp + 0x50]
call fcn.140093c70
movzx eax, byte [rsp + 0x111]
cmp dil, 2
je 0x14006a072
cmp al, 2
je 0x140069fa9
lea rcx, [rsp + 0xe0]
call fcn.1400696c0
mov rax, qword [rsp + 0x120]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], r13
mov byte [rsp + 0xf0], bl
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
lea rdx, [rsp + 0x112]
mov dword [rdx - 0x1e], ecx
mov dword [rdx - 0x21], eax
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0x100], r12
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x108], rax
movzx eax, byte [rsp + 0xd0]
mov byte [rsp + 0x110], al
mov byte [rsp + 0x111], dil
movzx eax, word [rsp + 0x3c]
mov word [rdx + 4], ax
mov eax, dword [rsp + 0x38]
mov dword [rdx], eax
jmp 0x140069bdd
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x14006a041
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0x50]
lock dec qword [rax]
je 0x140069f7c
nop word cs:[rax + rax]
movzx eax, byte [rsp + 0x111]
cmp dil, 2
jne 0x140069f98
cmp al, 2
jne 0x140069bdd
jmp 0x14006a1bf
cmp byte [r10 + 0x31], 2
jne 0x14006b0be
mov qword [r10], rbp
mov qword [r10 + 8], r13
mov byte [r10 + 0x10], cl
mov ecx, dword [rsp + 0xa0]
mov r11d, dword [rsp + 0xa3]
mov dword [r10 + 0x11], ecx
mov dword [r10 + 0x14], r11d
mov qword [r10 + 0x18], rax
mov qword [r10 + 0x20], rdx
mov rax, qword [rsp + 0x128]
mov qword [r10 + 0x28], rax
movzx eax, byte [rsp + 0x90]
mov byte [r10 + 0x30], al
mov byte [r10 + 0x31], dil
mov eax, dword [rsp + 0x20]
mov dword [r10 + 0x32], eax
movzx eax, word [rsp + 0x24]
mov word [r10 + 0x36], ax
xor eax, eax
xchg byte [r10 + 0x38], al
movzx eax, byte [r9 + 0x80]
mov dil, 2
test al, al
je 0x14006a12b
mov al, 1
xchg byte [r9 + 0x48], al
test al, al
mov ebp, 0
cmovne r8, rbp
mov r13, rbx
jne 0x14006a130
movzx edi, byte [r8 + 0x31]
mov byte [r8 + 0x31], 2
cmp dil, 2
jne 0x14006a143
mov ebx, r14d
xor eax, eax
xchg byte [r8 + 0x38], al
mov dil, 2
jmp 0x14006a133
xor ebp, ebp
mov r13, rbx
mov ebx, r14d
mov r14, r12
mov r12, qword [rsp + 0x118]
jmp 0x140069f2a
mov rax, qword [r8]
mov qword [rsp + 0x120], rax
mov r13, qword [r8 + 8]
movzx ebx, byte [r8 + 0x10]
mov eax, dword [r8 + 0x14]
mov dword [rsp + 0x2b], eax
mov eax, dword [r8 + 0x11]
mov dword [rsp + 0x28], eax
mov r14, qword [r8 + 0x18]
mov r12, qword [r8 + 0x20]
mov rax, qword [r8 + 0x28]
mov qword [rsp + 0x98], rax
movzx eax, byte [r8 + 0x30]
mov byte [rsp + 0xd0], al
movzx eax, word [r8 + 0x36]
mov word [rsp + 0x3c], ax
mov eax, dword [r8 + 0x32]
mov dword [rsp + 0x38], eax
xor eax, eax
xchg byte [r8 + 0x38], al
jmp 0x140069f2a
mov rcx, r14
call fcn.1400696c0
mov rbx, qword [rsp + 0x40]
cmp byte [rbx], 2
jae 0x14006a685
jmp 0x14006a6ac
cmp qword [r15 + 0x18], 0
jne 0x14006a216
lea rcx, [rsp + 0x50]
mov rdx, qword [rsp + 0x178]
mov r8, qword [rsp + 0x40]
call fcn.140059a10
mov rsi, qword [rsp + 0x50]
movabs rax, 0x7fffffffffffffff
inc rax
cmp rsi, rax
je 0x14006a216
lea rcx, [rsp + 0x50]
call fcn.140090e80
test rsi, rsi
je 0x14006a216
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x140205100]
xor edx, edx
call sub.kernel32.dll_HeapFree
cmp byte [rsp + 0x111], 2
je 0x14006a67b
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x160], rax
movdqa xmm0, xmmword [rsp + 0xe0]
movaps xmm1, xmmword [rsp + 0xf0]
movaps xmm2, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x150], xmm2
movaps xmmword [rsp + 0x140], xmm1
movdqa xmmword [rsp + 0x130], xmm0
mov rdi, qword [rsp + 0x40]
movzx eax, byte [rdi]
test rax, rax
je 0x14006a283
cmp eax, 1
jne 0x14006a287
movzx ecx, byte [rdi + 1]
mov al, 1
jmp 0x14006a305
xor eax, eax
jmp 0x14006a305
mov rsi, qword [rdi + 8]
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006a2b6
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x20
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
mov r14, rax
lea rdx, [rsi + 0x18]
mov rax, qword [rsi]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
lea rcx, [rsp + 0xa0]
call qword [rax]
movdqu xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0xb0]
movups xmmword [r14 + 0x10], xmm1
movdqu xmmword [r14], xmm0
mov al, 2
mov byte [rsp + 0x50], al
mov byte [rsp + 0x51], cl
mov qword [rsp + 0x58], r14
lea r12, [rsp + 0x60]
lea rdx, [rdi + 0x28]
mov rax, qword [rdi + 0x10]
mov r8, qword [rdi + 0x18]
mov r9, qword [rdi + 0x20]
mov rcx, r12
call qword [rax]
mov rdi, qword [rsp + 0x30]
lea rax, [rdi + 0x40]
mov qword [rsp + 0x98], rax
mov rcx, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x68]
lea r13, [rsp + 0x50]
mov r8, r13
call fcn.14008f560
mov rsi, rax
mov rbp, qword [rdi + 0x40]
mov r15, qword [rdi + 0x48]
shr rax, 0x39
mov qword [rsp + 0xd0], rax
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
xor eax, eax
mov qword [rsp + 0x90], rax
pcmpeqd xmm7, xmm7
mov r14, rsi
and r14, r15
movdqu xmm8, xmmword [rbp + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x14006a3ec
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x14006a6ec
mov rax, qword [rsp + 0x90]
add r14, rax
add r14, 0x10
add rax, 0x10
mov qword [rsp + 0x90], rax
jmp 0x14006a38c
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
je 0x14006a3a7
tzcnt eax, ebx
add rax, r14
and rax, r15
neg rax
lea rdi, [rax + rax*8]
lea rcx, [rdi*8 - 0x48]
add rcx, rbp
mov rdx, r13
call fcn.14002e350
test al, al
je 0x14006a3e0
lea rdi, [rdi*8]
add rdi, rbp
lea rcx, [rdi - 0x38]
mov rdx, r12
call fcn.14002b870
test al, al
je 0x14006a3e0
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x80], rdi
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x88], rax
movzx eax, byte [rsp + 0x50]
cmp al, 3
mov rbx, qword [rsp + 0x40]
mov r10, qword [rsp + 0x30]
je 0x14006a4d8
cmp al, 2
jb 0x14006a4bc
mov r14, qword [rsp + 0x58]
lea rcx, [r14 + 0x18]
mov rax, qword [r14]
mov rdx, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x140205100]
xor edx, edx
mov r8, r14
call sub.kernel32.dll_HeapFree
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x10]
mov r10, qword [rsp + 0x30]
mov rax, qword [r10 + 0xa0]
cmp rax, qword [rdi - 8]
jbe 0x14006a811
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x80], rax
movdqa xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movaps xmm2, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x14006b0b4
mov r14, qword [rsp + 0xa0]
mov rcx, qword [0x1402050d8]
test rcx, rcx
jne 0x14006a590
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14006b0b4
mov rcx, qword [rsp + 0xa0]
mov qword [0x1402050d8], rcx
test rcx, rcx
je 0x14006b0be
mov rax, r14
or rax, rcx
shr rax, 0x20
je 0x14006a5a6
mov rax, r14
xor edx, edx
div rcx
jmp 0x14006a5ad
mov eax, r14d
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x14006a5d1
xor edx, edx
div rcx
mov r14, rax
jmp 0x14006a5d8
xor edx, edx
div ecx
mov r14d, eax
add r14, r8
mov rax, r14
shr rax, 9
movabs r12, 0x44b82fa09b5a53
mul r12
mov r15, rdx
shr r15, 0xb
imul eax, r15d, 0x3b9aca00
sub r14d, eax
mov rdx, qword [rdi - 8]
cmp rdx, qword [rdi - 0x18]
jne 0x14006a617
lea rcx, [rdi - 0x18]
call fcn.140036aa0
mov rdx, qword [rdi - 8]
mov r8, qword [rsp + 0x30]
mov rax, qword [rdi - 0x10]
lea rcx, [rdx + rdx*8]
mov rdx, qword [rsp + 0x80]
mov qword [rax + rcx*8 + 0x30], rdx
movdqa xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rax + rcx*8 + 0x20], xmm2
movups xmmword [rax + rcx*8 + 0x10], xmm1
movdqu xmmword [rax + rcx*8], xmm0
mov qword [rax + rcx*8 + 0x38], r15
mov dword [rax + rcx*8 + 0x40], r14d
inc qword [rdi - 8]
cmp qword [r8 + 0xa8], 0
jne 0x14006a67b
mov edi, dword [r8 + 0xb8]
cmp edi, 0x3b9aca00
jne 0x14006a82c
mov rbx, qword [rsp + 0x40]
cmp byte [rbx], 2
jb 0x14006a6ac
mov rdi, qword [rbx + 8]
lea rcx, [rdi + 0x18]
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x140205100]
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
lea rcx, [rbx + 0x28]
mov rax, qword [rbx + 0x10]
mov rdx, qword [rbx + 0x18]
mov r8, qword [rbx + 0x20]
call qword [rax + 0x10]
movaps xmm6, xmmword [rsp + 0x180]
movaps xmm7, xmmword [rsp + 0x190]
movaps xmm8, xmmword [rsp + 0x1a0]
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r10, qword [rsp + 0x30]
cmp qword [r10 + 0x50], 0
je 0x14006aff4
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
mov rax, qword [r10 + 0x40]
mov rcx, qword [r10 + 0x48]
and rsi, rcx
movdqu xmm0, xmmword [rax + rsi]
pmovmskb edx, xmm0
test edx, edx
mov rbx, qword [rsp + 0x40]
jne 0x14006a767
mov r8d, 0x10
nop word cs:[rax + rax]
add rsi, r8
and rsi, rcx
movdqu xmm0, xmmword [rax + rsi]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x14006a750
tzcnt edx, edx
add rdx, rsi
and rdx, rcx
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x14006a78c
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx r8d, byte [rax + rdx]
lea r9, [rdx - 0x10]
and r9, rcx
mov rcx, qword [rsp + 0xd0]
mov byte [rax + rdx], cl
mov byte [r9 + rax + 0x10], cl
neg rdx
lea rcx, [rdx + rdx*8]
lea rdi, [rax + rcx*8]
and r8b, 1
movzx edx, r8b
sub qword [r10 + 0x50], rdx
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movaps xmm2, xmmword [rsp + 0xc0]
movups xmmword [rax + rcx*8 - 0x28], xmm2
movups xmmword [rax + rcx*8 - 0x38], xmm1
movups xmmword [rax + rcx*8 - 0x48], xmm0
mov qword [rax + rcx*8 - 0x18], 0
mov qword [rax + rcx*8 - 0x10], 8
mov qword [rax + rcx*8 - 8], 0
inc qword [r10 + 0x58]
mov rax, qword [r10 + 0xa0]
cmp rax, qword [rdi - 8]
ja 0x14006a4e9
lea rcx, [rsp + 0x130]
call fcn.1400696c0
cmp byte [rbx], 2
jae 0x14006a685
jmp 0x14006a6ac
mov rbx, qword [r8 + 0xb0]
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006a85e
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x48
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
mov r14, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 0
mov byte [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov byte [rax + 0x38], 0
mov word [rax + 0x40], 0
lock inc qword [rax]
jle 0x14006b0be
mov rax, qword [rsp + 0x30]
mov qword [rax + 0xa8], r14
test rbx, rbx
jne 0x14006a8c7
test edi, edi
je 0x14006b0be
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call sub.kernel32.dll_QueryPerformanceCounter
test eax, eax
je 0x14006b0b4
mov r15, qword [rsp + 0x50]
mov rcx, qword [0x1402050d8]
test rcx, rcx
jne 0x14006a923
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call sub.kernel32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14006b0b4
mov rcx, qword [rsp + 0x50]
mov qword [0x1402050d8], rcx
test rcx, rcx
je 0x14006b0be
mov rax, r15
or rax, rcx
shr rax, 0x20
je 0x14006a939
mov rax, r15
xor edx, edx
div rcx
jmp 0x14006a940
mov eax, r15d
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x14006a964
xor edx, edx
div rcx
mov r15, rax
jmp 0x14006a96b
xor edx, edx
div ecx
mov r15d, eax
add r15, r8
mov rax, r15
shr rax, 9
mul r12
mov r12, rdx
xor ecx, ecx
call fcn.140101510
test rax, rax
je 0x14006b0be
movabs rdx, 0x7fffffffffffffff
mov rcx, qword [rax]
cmp rcx, rdx
jae 0x14006b0be
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rdx, qword [rax + 8]
cmp rdx, 2
je 0x14006b0bb
mov rbp, qword [rax + 0x10]
mov ecx, 1
mov r8d, 1
lock xadd qword [rbp], r8
test rdx, rdx
je 0x14006a9da
test r8, r8
jns 0x14006a9e5
jmp 0x14006b0be
test r8, r8
js 0x14006b0be
xor ecx, ecx
dec qword [rax]
lea rax, [rbp + 0x120]
lea r8, [rbp + 0xb8]
test rdx, rdx
mov qword [rsp + 0xa0], rcx
mov qword [rsp + 0xa8], rbp
cmove rax, r8
cmp dword [rax + 0xc8], 0x3b9aca00
je 0x14006b0be
lea rcx, [rsp + 0xa8]
mov eax, 1
lock xadd qword [rbp], rax
test rdx, rdx
je 0x14006aa61
test rax, rax
js 0x14006b0be
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x64], xmm0
movdqu xmmword [rsp + 0x54], xmm0
lock dec qword [rbp]
mov esi, 1
jne 0x14006aa88
call fcn.1400fead0
jmp 0x14006aa88
test rax, rax
js 0x14006b0be
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x64], xmm0
movdqu xmmword [rsp + 0x54], xmm0
lock dec qword [rbp]
jne 0x14006aa86
call fcn.1400fe3f0
xor esi, esi
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006aab3
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x70
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
mov r13, rax
shr r12, 0xb
imul eax, r12d, 0x3b9aca00
sub r15d, eax
mov qword [r13], rsi
mov qword [r13 + 8], rbp
mov qword [r13 + 0x10], r12
mov dword [r13 + 0x18], r15d
movdqu xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movdqu xmmword [r13 + 0x1c], xmm0
movups xmmword [r13 + 0x2c], xmm1
mov eax, dword [rsp + 0x70]
mov dword [r13 + 0x3c], eax
mov qword [r13 + 0x40], 0xffffffffffffffff
pxor xmm0, xmm0
movdqu xmmword [r13 + 0x48], xmm0
movdqu xmmword [r13 + 0x51], xmm0
mov eax, dword [rsp + 0xa0]
mov ecx, dword [rsp + 0xa3]
mov dword [r13 + 0x61], eax
mov dword [r13 + 0x64], ecx
mov byte [r13 + 0x68], 0
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [r13 + 0x69], eax
mov dword [r13 + 0x6c], ecx
mov rax, qword [rsp + 0x170]
mov r15, qword [rax]
mov rdx, qword [rsp + 0x30]
jmp 0x14006ab5f
pause
mov rax, qword [r15 + 8]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x14006ab5d
test rax, rax
js 0x14006b0be
lea rcx, [rax + 1]
lock cmpxchg qword [r15 + 8], rcx
jne 0x14006ab70
mov r12, qword [rdx]
test r12, r12
je 0x14006ac35
mov rsi, qword [rdx + 8]
mov rbp, qword [rsi + 0x10]
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006abca
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x30
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
dec rbp
and rbp, 0xfffffffffffffff0
lea rcx, [r12 + rbp]
add rcx, 0x10
mov qword [rax], rbx
mov dword [rax + 8], edi
mov qword [rax + 0x10], r13
mov byte [rax + 0x18], 0
mov edx, dword [rsp + 0x48]
mov r8d, dword [rsp + 0x4b]
mov dword [rax + 0x19], edx
mov dword [rax + 0x1c], r8d
mov qword [rax + 0x20], r14
mov qword [rax + 0x28], r15
lea r8, [0x1401c9828]
mov rdx, rax
call qword [rsi + 0x18]
mov rbx, qword [rsp + 0x40]
cmp byte [rbx], 2
jae 0x14006a685
jmp 0x14006a6ac
mov eax, 1
lock xadd qword [0x140194100], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x58], edi
mov qword [rsp + 0x60], r13
mov byte [rsp + 0x68], 0
mov eax, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x4b]
mov dword [rsp + 0x69], eax
mov dword [rsp + 0x6c], ecx
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r15
lea rax, [rsp + 0x28]
mov qword [rsp + 0x80], rax
call fcn.14008a550
test rax, rax
je 0x14006b0c0
mov rdi, rax
mov rax, qword [rax]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
jae 0x14006b0be
inc rax
mov qword [rdi], rax
mov rax, qword [rdi + 8]
cmp rax, 2
je 0x14006b0cc
mov r12, qword [rsp + 0x28]
mov r14, rdi
add r14, 0x10
test rax, rax
je 0x14006adf6
mov r15, qword [r14]
lock inc qword [r15]
jle 0x14006b0be
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006ad0a
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x100
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
mov rcx, rax
and rcx, 0xffffffffffffff80
lea rbx, [rcx + 0x80]
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], 0xcc
mov qword [rcx + 0x88], 0
lea rax, [0x1401ca288]
mov qword [rcx + 0x90], rax
mov qword [rcx + 0x98], 0
mov qword [rcx + 0xa0], r15
mov qword [rcx + 0xa8], r12
movdqu xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movdqu xmmword [rcx + 0xb0], xmm0
movups xmmword [rcx + 0xc0], xmm1
movups xmmword [rcx + 0xd0], xmm2
pxor xmm0, xmm0
movdqa xmmword [rcx + 0xe0], xmm0
mov qword [rcx + 0xf0], 0
mov rax, qword [r15 + 0x90]
mov qword [rcx + 0x98], rax
mov rsi, qword [r15 + 0x70]
mov r13, qword [r15 + 0x88]
and r13, r12
shl r13, 5
lea r14, [rsi + r13]
mov rcx, r14
call sub.kernel32.dll_AcquireSRWLockExclusive
movzx eax, byte [rsi + r13 + 8]
movzx eax, byte [r15 + 0x98]
test al, al
je 0x14006af54
mov rcx, r14
jmp 0x14006af12
mov r13, qword [r14]
lock inc qword [r13]
jle 0x14006b0be
movzx eax, byte [0x140205110]
mov rcx, qword [0x140205100]
test rcx, rcx
jne 0x14006ae2f
call sub.kernel32.dll_GetProcessHeap
test rax, rax
je 0x14006b0be
mov rcx, rax
mov qword [0x140205100], rax
mov r8d, 0x100
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x14006b0be
mov rcx, rax
and rcx, 0xffffffffffffff80
lea rbx, [rcx + 0x80]
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], 0xcc
mov qword [rcx + 0x88], 0
lea rax, [0x1401ca238]
mov qword [rcx + 0x90], rax
mov qword [rcx + 0x98], 0
mov qword [rcx + 0xa0], r13
mov qword [rcx + 0xa8], r12
movdqu xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movdqu xmmword [rcx + 0xb0], xmm0
movups xmmword [rcx + 0xc0], xmm1
movups xmmword [rcx + 0xd0], xmm2
pxor xmm0, xmm0
movdqa xmmword [rcx + 0xe0], xmm0
mov qword [rcx + 0xf0], 0
mov rax, qword [r13 + 0x80]
mov qword [rcx + 0x98], rax
mov rsi, qword [r13 + 0x60]
mov rbp, qword [r13 + 0x78]
and rbp, r12
shl rbp, 5
lea r15, [rsi + rbp]
mov rcx, r15
call sub.kernel32.dll_AcquireSRWLockExclusive
movzx eax, byte [rsi + rbp + 8]
movzx eax, byte [r13 + 0x88]
test al, al
je 0x14006b00f
mov rcx, r15
call fcn.1401152a4
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x30]
mov rax, 0xffffffffffffffc0
lock xadd qword [rbx], rax
cmp rax, 0x3f
jbe 0x14006b0be
and rax, 0xffffffffffffffc0
cmp rax, 0x40
jne 0x14006b07f
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x10]
jmp 0x14006b07f
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 0x48]
cmp qword [rbx + rax], r12
jne 0x14006b0be
mov rax, qword [r14 + 0x10]
cmp rax, rbx
je 0x14006b0be
mov rcx, qword [rcx + 0x38]
mov qword [rbx + rcx + 8], rax
mov rcx, qword [rbx + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rbx + rcx], 0
test rax, rax
je 0x14006af9d
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rax + rcx], rbx
lea rsi, [r15 + 0x10]
mov qword [r14 + 0x10], rbx
cmp qword [r14 + 0x18], 0
jne 0x14006afb0
mov qword [r14 + 0x18], rbx
lock inc qword [r15 + 0x80]
mov rcx, r14
call fcn.1401152a4
mov byte [rsp + 0x20], 0
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], rbx
lea rax, [rsp + 0x20]
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0xa0]
call fcn.1400f9600
jmp 0x14006b07f
lea rdx, [r10 + 0x60]
mov rcx, qword [rsp + 0x98]
call fcn.140058150
mov r10, qword [rsp + 0x30]
jmp 0x14006a6fc
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx + 0x48]
cmp qword [rbx + rax], r12
jne 0x14006b0be
mov rax, qword [r15 + 0x10]
cmp rax, rbx
je 0x14006b0be
mov rcx, qword [rcx + 0x38]
mov qword [rbx + rcx + 8], rax
mov rcx, qword [rbx + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rbx + rcx], 0
test rax, rax
je 0x14006b058
mov rcx, qword [rax + 0x10]
mov rcx, qword [rcx + 0x38]
mov qword [rax + rcx], rbx
mov qword [r15 + 0x10], rbx
cmp qword [r15 + 0x18], 0
jne 0x14006b067
mov qword [r15 + 0x18], rbx
lock inc qword [r13 + 0x70]
mov rcx, r15
call fcn.1401152a4
mov rcx, r14
mov rdx, rbx
call fcn.1400fef20
dec qword [rdi]
mov ecx, 0x84
mov eax, 0xcc
lock cmpxchg qword [rbx], rcx
je 0x14006a67b
mov rax, qword [rbx + 0x10]
mov rcx, rbx
call qword [rax + 0x20]
mov rbx, qword [rsp + 0x40]
cmp byte [rbx], 2
jae 0x14006a685
jmp 0x14006a6ac
call sub.kernel32.dll_GetLastError
ud2
mov qword [rax], rcx
ud2
lea rcx, [rsp + 0x50]
call fcn.1400973e0
ud2
lea rcx, [rsp + 0x50]
call fcn.1400973e0
dec qword [rdi]
ud2