Function at 0x140060ae0
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, 0x258
movaps xmmword [rsp + 0x240], xmm10
movaps xmmword [rsp + 0x230], xmm9
movaps xmmword [rsp + 0x220], xmm8
movaps xmmword [rsp + 0x210], xmm7
movaps xmmword [rsp + 0x200], xmm6
mov rsi, rcx
mov rax, qword [0x140131028]
xor rax, rsp
mov qword [rsp + 0x1f8], rax
test byte [0x14013f080], 0x19
jne 0x140061dae
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x1400625fa
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.140004600
mov eax, dword [0x140149660]
test eax, eax
je 0x140060c52
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
jne 0x140060b7f
cmp dword [rsi + 0x68], 0
je 0x140060c52
mov rcx, qword [0x140149658]
test rcx, rcx
je 0x140060c52
lea rdi, [rsp + 0x170]
mov rdx, rdi
mov r8d, 2
call fcn.140015490
mov rax, qword [rdi]
mov qword [rsp + 0x78], rax
test byte [0x14013f080], 0x19
jne 0x140061f5e
mov rcx, qword [rsi + 0x48]
lea rbx, [rsi + 0x30]
mov rdx, rbx
call fcn.140004780
test byte [0x14013f080], 0x19
jne 0x14006200f
movabs r14, 0x7fffffffffffffff
mov eax, dword [0x140140950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, [rax + 0x170]
mov qword [rsp + 0x98], rcx
lea rcx, [rax + 0x178]
mov qword [rsp + 0x80], rcx
lea rax, [rax + 0x190]
mov qword [rsp + 0x90], rax
movaps xmm6, xmmword [0x140115d80]
xorps xmm7, xmm7
movsd xmm8, qword [0x140120e88]
movsd xmm9, qword [0x14011f3c0]
movsd xmm10, qword [0x14011f3c8]
xor edi, edi
mov qword [rsp + 0x58], rbx
jmp 0x140060fb7
xor eax, eax
jmp 0x140060ba8
mov rax, qword [0x1401405c8]
lea rcx, [0x140094050]
cmp rax, rcx
jne 0x140062205
mov qword [rsp + 0x170], 0
lea rcx, [rsp + 0x170]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x170]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14006257e
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
mov qword [rsp + 0x170], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0x170]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
movups xmmword [rsp + 0x20], xmm7
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
mov cl, 0x45
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_active
xor r9d, r9d
call fcn.14005e860
jmp 0x1400610a8
lea r13, [r15 + 0x20]
mov rcx, r13
mov rbx, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
call rbx
test al, al
je 0x140062218
mov rcx, qword [r15 + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r13
mov rax, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
call rax
mov rcx, r13
call rbx
test al, al
je 0x140062499
mov rax, qword [r15 + 0x30]
mov qword [rsp + 0x70], rax
mov rax, qword [r15 + 0x38]
mov qword [rsp + 0x68], rax
movups xmmword [r15 + 0x30], xmm7
mov rax, qword [r15 + 0x40]
mov qword [rsp + 0x88], rax
mov rbx, qword [r15 + 0x48]
movups xmmword [r15 + 0x40], xmm7
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x88]
mov rax, rbx
mov r15, rcx
cmp rcx, rbx
jne 0x1400624bd
lea rcx, fcn.140066790
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.140068d10
mov rbx, qword [rsp + 0x58]
jmp 0x140060f94
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x140060e1f
jmp 0x140062231
mov rax, qword [rcx + 0x30]
cvtsi2sd xmm0, qword [rax + 0x90]
mulsd xmm0, xmm8
ucomisd xmm9, xmm0
jb 0x1400625e4
maxsd xmm0, xmm10
cvttsd2si rdi, xmm0
jmp 0x1400610cd
mov ebp, 3
jmp 0x140061013
mov r15, qword [rsp + 0xc8]
test r15, r15
je 0x140060f88
mov qword [rsp + 0xc0], 0
mov al, byte [rbp + 0xd]
and al, 0x7f
cmp al, 2
je 0x140060dac
lock dec dword [r15 + 0x18]
je 0x140060d07
lock dec dword [rbp + 8]
jne 0x140060f9d
mov rcx, rbp
mov edx, 1
call fcn.140075420
jmp 0x140060f9d
mov rcx, qword [rsi + 0x48]
call fcn.140004490
jmp 0x14006109b
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0xf0]
call fcn.14005ae20
mov rcx, qword [rsi + 0x50]
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm7
lea rdx, [rsp + 0x170]
lea r8, [rsp + 0xb0]
call fcn.1400627d0
mov r8, qword [rsp + 0xc0]
test r8, r8
jne 0x140062307
mov qword [rsp + 0x118], r8
mov qword [rsp + 0xc0], 0
test r8, r8
jne 0x14006227c
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x170], 0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], rax
test rcx, rcx
jne 0x140062299
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x170], rax
lea rcx, [rsp + 0x170]
call fcn.14005ae20
mov rcx, qword [rsi + 0x48]
movapd xmm0, xmmword [rsp + 0xc0]
movupd xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xc0], xmm7
lea rdx, [rsp + 0xa0]
call fcn.140092260
cmp qword [rsp + 0xc0], 0
jne 0x140062259
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov dil, 1
xor r12d, r12d
mov rbp, qword [rsp + 0xc0]
test rbp, rbp
jne 0x140060df9
mov qword [rsp + 0xc0], 0
test rbp, rbp
jne 0x140060e2a
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
jne 0x14006225c
test r12b, r12b
jne 0x140061b75
movzx eax, byte [rsi + 0x40]
test al, al
jne 0x140061b75
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x140061b75
mov r15, qword [rsi + 0x50]
lea r13, [r15 + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140061cdc
mov rax, qword [r15 + 0x58]
test rax, rax
jne 0x140061cea
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
jne 0x140060def
mov ebp, dword [rsi + 0x68]
cmp dword [rsi + 0x6c], ebp
jne 0x1400621b2
movaps xmmword [rsp + 0xc0], xmm6
mov rcx, qword [rsi + 0x48]
lea rdx, [rsp + 0xc0]
mov r8, rsi
call fcn.1400719a0
mov rax, qword [rsp + 0xc0]
test rax, rax
jne 0x140060e60
mov al, byte [rsi + 0x40]
mov r12b, 1
test al, al
jne 0x140060f77
mov al, byte [rsi + 0x70]
test al, al
jne 0x140060f77
mov r15, qword [rsi + 0x50]
lea r13, [r15 + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140061d49
mov rax, qword [r15 + 0x58]
test rax, rax
jne 0x140061d57
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test dil, 1
je 0x140060e46
test byte [0x14013f080], 0x19
jne 0x140060c59
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
lea rdx, [fcn.140004780]
cmp qword [rax + 0x30], rdx
jne 0x140061a98
cmp byte [rcx + 0x40], 0
mov rdi, r14
jne 0x140060dc3
mov eax, 0xf4240
cmp rdi, rax
mov r12d, 0xf4240
cmovl r12, rdi
mov eax, dword [0x14014b3c4]
mov ecx, dword [0x140140950]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140061d0d
cmp byte [0x14014b3c0], 0
je 0x140061251
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x170], rax
mov rax, qword [fcn.14005e6e0]
lea rcx, [rsp + 0x170]
call qword [0x140154008]
mov eax, dword [0x14014b3d0]
mov ecx, dword [0x140140950]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140061ca3
mov rax, qword [0x14014b3c8]
mov ecx, 0x3938700
add rax, rcx
cmovo rax, r14
mov r8, qword [rsp + 0x170]
cmp r8, rax
cmovle r12, rcx
lea rax, [r14 + r12]
add rax, 2
cmp rax, 2
jb 0x14006233d
lea rax, [r8 + r12]
sar rax, 0x3f
btc rax, 0x3f
add r12, r8
cmovo r12, rax
mov r9, r12
xor eax, eax
mov rcx, r9
neg rcx
setns al
add rax, r14
mov rcx, r9
neg rcx
cmovo rcx, rax
lea rax, [r14 + rcx]
add rax, 2
mov rdx, r14
cmp rax, 2
jb 0x140061202
mov rax, rcx
movabs rdx, 0x431bde82d7b634db
imul rdx
mov rax, rdx
shr rax, 0x3f
sar rdx, 0x12
add rdx, rax
imul rax, rdx, 0xf4240
sub rcx, rax
mov rdx, rcx
je 0x140062275
mov rax, rdx
add rax, 0xf4240
cmovo rax, r14
test r9, r9
cmovle rax, rdx
lea rcx, [r14 + rax]
add rcx, 2
cmp rcx, 2
jb 0x14006236a
lea rcx, [r9 + rax]
sar rcx, 0x3f
btc rcx, 0x3f
add r9, rax
cmovo r9, rcx
mov r12, r9
xor eax, eax
cmp r12, r8
setns al
add rax, r14
sub r12, r8
cmovo r12, rax
test r12, r12
jle 0x1400619fe
movaps xmmword [rsp + 0x170], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1c0], rax
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
mov byte [rsp + 0x170], 0
lea rax, [rsp + 0x178]
movups xmmword [rax + 0x30], xmm7
movups xmmword [rax + 0x20], xmm7
movups xmmword [rax + 0x10], xmm7
movups xmmword [rax], xmm7
mov qword [rax + 0x40], 0
cmp byte [rsi + 0x38], 0
je 0x140061605
cmp r12, r14
je 0x140061546
mov rax, qword [0x1401405c8]
lea rcx, [0x140094050]
cmp rax, rcx
jne 0x14006217f
mov qword [rsp + 0x118], 0
lea rcx, [rsp + 0x118]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x118]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14006238e
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
mov rbp, rax
lea rax, [r12 + rbp]
sar rax, 0x3f
btc rax, 0x3f
add rbp, r12
cmovo rbp, rax
mov rcx, r12
cmp rcx, r14
je 0x14006153c
mov rax, rcx
shr rax, 3
movabs rdx, 0x20c49ba5e353f7cf
mul rdx
mov rax, rdx
shr rax, 4
imul rdx, rax, 0x3e8
cmp rdx, rcx
adc rax, 0
mov rcx, rax
shr rcx, 0x20
neg rcx
mov edx, 0
sbb edx, edx
or edx, eax
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140061572
mov r13b, 1
cmp byte [rsi + 0x38], 0
je 0x14006154e
cmp byte [rsp + 0x170], 0
jne 0x140061560
test r13b, r13b
je 0x140061a11
xor r12d, r12d
test byte [0x14013f080], 0x19
mov edi, 0
je 0x140060f77
mov rdi, qword [0x140147900]
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
movups xmmword [rsp + 0x20], xmm7
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0xf0]
mov dl, 0x42
lea r8, [0x14013f080]
lea r9, str.WorkerThread_active
call fcn.1400626c0
mov rbp, qword [rsp + 0xf0]
test rbp, rbp
je 0x140061518
mov al, byte [rsp + 0x108]
mov rcx, qword [rsp + 0xf8]
xor edx, edx
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x120], rbp
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x130], rdx
mov byte [rsp + 0x138], al
cmp qword [rbp + 0x10], rdx
jne 0x1400623b8
xor rdi, rsi
lea rax, [rsp + 0x1da]
mov byte [rax + 4], 0xaa
mov dword [rax], 0xaaaaaaaa
mov word [rsp + 0x1d0], 0x381
mov qword [rsp + 0x1d2], rdi
mov rcx, qword [rbp]
mov rax, qword [rcx + 0x18]
lea rdx, [rax + 0xa]
cmp rdx, qword [rcx + 0x10]
ja 0x14006195e
movzx r8d, word [rsp + 0x1d8]
mov word [rax + 8], r8w
mov r8, qword [rsp + 0x1d0]
mov qword [rax], r8
mov qword [rcx + 0x18], rdx
add dword [rbp + 0x20], 0xa
mov rax, qword [rsp + 0x118]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x118], 0
lea rax, [rsp + 0x120]
movupd xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 9]
lea rax, [rsp + 0x178]
movups xmmword [rax + 9], xmm1
movupd xmmword [rax], xmm0
lea rcx, [rsp + 0x170]
call fcn.1400626d0
lea rcx, [rsp + 0x118]
call fcn.1400626d0
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x140061532
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
xor r12d, r12d
xor edi, edi
jmp 0x140060f77
mov edx, 0xffffffff
jmp 0x140061389
mov rbp, r14
jmp 0x140061341
test byte [0x14013f980], 0x19
je 0x1400613a7
jmp 0x1400623c5
lea rcx, [rsp + 0x178]
call fcn.14005bd20
jmp 0x1400613b5
mov rax, qword [0x1401405c8]
lea rcx, [0x140094050]
cmp rax, rcx
jne 0x140061976
mov qword [rsp + 0x118], 0
lea rcx, [rsp + 0x118]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x118]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x1400625a5
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
xor edx, edx
cmp rbp, rax
setns dl
add rdx, r14
mov rcx, rbp
sub rcx, rax
cmovo rcx, rdx
jg 0x140061344
xor r13d, r13d
jmp 0x1400613a7
mov rcx, r13
call fcn.14005ae30
movabs rcx, 0xfffffffc00000000
jmp 0x14006164a
lea rcx, [rsp + 0xd0]
lea rdx, str.TimedWait
lea r8, str....._base_synchronizationwaitable_event.cc
mov r9d, 0x24
call fcn.140078ba0
mov rax, qword [rsp + 0x98]
mov r13, qword [rax]
mov rax, r13
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x140131e48]
je 0x1400615f1
mov qword [rsp + 0x178], r13
mov rdx, qword [rsp + 0x80]
mov r13, qword [rdx]
mov rax, r13
and rax, rcx
cmp rax, qword [0x140131e48]
je 0x140061990
mov qword [rsp + 0x180], r13
mov qword [rsp + 0x188], rdx
mov rax, qword [rdx]
lea rcx, [rsp + 0x178]
mov qword [rdx], rcx
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x180]
test rax, rax
jne 0x1400616ff
xor ecx, ecx
mov byte [rsp + 0x198], cl
mov byte [rsp + 0x1a0], 0
mov rcx, qword [rsp + 0x90]
cmp byte [rcx], 0
je 0x140061704
test rax, rax
jne 0x1400618f9
mov rcx, qword [rsp + 0x178]
test rcx, rcx
je 0x1400616e9
cmp qword [rsp + 0x180], 0
jne 0x1400616e9
xor edx, edx
call fcn.14006a480
test byte [0x14013f080], 0x19
jne 0x140061737
mov byte [rsp + 0x170], 1
jmp 0x1400612c5
mov cl, byte [rax + 0x20]
jmp 0x1400616a5
mov eax, dword [0x14014b2cc]
mov ecx, dword [0x140140950]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140061908
cmp byte [0x14014b2c8], 0
jne 0x1400616ca
jmp 0x140061951
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1d0], xmm6
movups xmmword [rsp + 0x20], xmm7
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0x1d0]
mov dl, 0x42
lea r8, [0x14013f080]
lea r9, str.ScopedBlockingCallWithBaseSyncPrimitives
call fcn.1400626c0
mov rax, qword [rsp + 0x1d0]
test rax, rax
je 0x1400619a5
mov cl, byte [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1d8]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rdx
xor eax, eax
mov qword [rsp + 0x108], rax
mov byte [rsp + 0x110], cl
mov qword [rsp + 0x118], rax
mov qword [rsp + 0xf0], rax
lea rax, [rsp + 0xf8]
movupd xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 9]
lea rax, [rsp + 0x120]
movups xmmword [rax + 9], xmm1
movupd xmmword [rax], xmm0
mov rcx, qword [rsp + 0x120]
mov edx, 0x21
call fcn.14006d500
mov rbp, rax
mov rdx, qword [rsp + 0xd8]
lea r15, [rsp + 0x158]
mov rcx, r15
call fcn.1400c8790
movzx r9d, byte [rsp + 0x16f]
test r9b, r9b
js 0x140061823
and r9d, 0x7f
mov r8, r15
jmp 0x140061833
mov r9, qword [rsp + 0x160]
mov r8, qword [rsp + 0x158]
mov rcx, rbp
mov edx, 2
call fcn.14006d900
cmp byte [rsp + 0x16f], 0
jns 0x140061857
mov rcx, qword [rsp + 0x158]
call fcn.140094ae4
mov rdx, qword [rsp + 0xd0]
lea r15, [rsp + 0x140]
mov rcx, r15
call fcn.1400c8790
movzx r9d, byte [rsp + 0x157]
test r9b, r9b
js 0x140061886
and r9d, 0x7f
mov r8, r15
jmp 0x140061896
mov r9, qword [rsp + 0x148]
mov r8, qword [rsp + 0x140]
mov rcx, rbp
mov edx, 3
call fcn.14006d900
cmp byte [rsp + 0x157], 0
js 0x1400618ea
lea rcx, [rsp + 0x118]
call fcn.1400626d0
lea rcx, [rsp + 0xf0]
call fcn.1400626d0
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x1400616f2
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
jmp 0x1400616f2
mov rcx, qword [rsp + 0x140]
call fcn.140094ae4
jmp 0x1400618ad
cmp byte [rax + 0x28], 0
je 0x1400616ca
jmp 0x1400619c9
lea rcx, [0x14014b2cc]
call fcn.140094c5c
cmp dword [0x14014b2cc], 0xffffffff
jne 0x140061729
mov rcx, qword [0x1401494f0]
test rcx, rcx
je 0x140061939
lea rdx, str.enable_background_thread_pool
call fcn.14008b930
mov byte [0x14014b2c8], 1
lea rcx, [0x14014b2cc]
call fcn.140094bfc
jmp 0x140061729
mov rax, qword [rsp + 0x180]
jmp 0x1400616c1
mov r8d, 0xa
lea rdx, [rsp + 0x1d0]
call fcn.14006dac0
jmp 0x1400614be
lea r13, [rsp + 0x118]
mov rcx, r13
call qword [0x140154008]
mov rax, qword [r13]
jmp 0x1400615ce
mov rcx, r13
call fcn.14005ae30
mov rdx, qword [rsp + 0x80]
jmp 0x140061670
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x1400619bf
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
mov rbx, qword [rsp + 0x58]
jmp 0x1400616f2
mov r13, qword [rax + 0x38]
mov qword [rax + 0x38], 0
test r13, r13
je 0x1400616ca
lock dec dword [r13]
jne 0x1400616ca
mov rcx, r13
call fcn.14000ca20
mov rcx, r13
call fcn.140094ae4
jmp 0x1400616ca
mov rcx, qword [rbx]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1400613be
mov eax, dword [0x140140950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov r13, qword [rax + 0x120]
cmp r13, 2
jb 0x140061a58
mov byte [r13 + 4], 0
mov r15d, pe_nt_image_headers64
lea rdx, [r15 + r13]
mov rcx, r13
xor r8d, r8d
call fcn.1400655c0
add r15, 0x10
cmp r15, 0x4f8
jne 0x140061a3c
cmp rdi, r12
jle 0x1400613be
setns al
movzx eax, al
add rax, r14
mov rdx, rdi
sub rdx, r12
cmovo rdx, rax
lea rax, [r14 + r12]
add rax, 2
cmp rax, 2
cmovb rdx, r14
cmp rdi, r14
cmove rdx, r14
mov rcx, rbx
call fcn.14005af80
jmp 0x1400613be
mov rdx, rbx
call fcn.140004780
jmp 0x1400613be
lea rdi, [rsp + 0x170]
mov rcx, rdi
call fcn.14005e6e0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
xorps xmm6, xmm6
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14005e860
test byte [0x14013f080], 0x19
je 0x140061c08
lea rdi, [rsp + 0x170]
mov rcx, rdi
call fcn.14005e6e0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_dead
mov cl, 0x49
xor r9d, r9d
call fcn.14005e860
jmp 0x140061c08
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140154008]
jmp 0x140061be1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140061bb0
call sub.KERNEL32.dll_WakeConditionVariable
jmp 0x140061bcb
mov rbx, qword [rsi + 0x48]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x18], 0
test rcx, rcx
je 0x140061b9b
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x140154008]
mov rdi, qword [rbx + 0x30]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140061b63
mov rax, qword [rbx + 0x30]
inc qword [rax + 0x170]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x178]
test rcx, rcx
jne 0x140061b6e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140061b54
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
jne 0x140061c84
test byte [0x14013f080], 0x19
mov rsi, qword [rsp + 0x78]
jne 0x140061aa5
test rsi, rsi
je 0x140061c35
mov rax, qword [rsi + 8]
test rax, rax
je 0x1400625f7
mov rcx, rsi
call qword [0x140154008]
lock dec dword [rsi]
jne 0x140061c35
mov rax, qword [rsi + 0x10]
mov rcx, rsi
call qword [0x140154008]
mov rcx, qword [rsp + 0x1f8]
xor rcx, rsp
call fcn.140096c60
movaps xmm6, xmmword [rsp + 0x200]
movaps xmm7, xmmword [rsp + 0x210]
movaps xmm8, xmmword [rsp + 0x220]
movaps xmm9, xmmword [rsp + 0x230]
movaps xmm10, xmmword [rsp + 0x240]
add rsp, 0x258
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec dword [rdi + 8]
jne 0x140061bf6
mov rcx, rdi
call fcn.1400c7c10
mov rcx, rdi
call fcn.140094ae4
jmp 0x140061bf6
lea rcx, [0x14014b3d0]
call fcn.140094c5c
cmp dword [0x14014b3d0], 0xffffffff
jne 0x14006115d
mov rax, qword [rsp + 0x170]
mov qword [0x14014b3c8], rax
lea rcx, [0x14014b3d0]
call fcn.140094bfc
jmp 0x14006115d
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140060fe8
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebp, eax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebp, ebp
jne 0x140060ffe
jmp 0x140061b75
lea rcx, [0x14014b3c4]
call fcn.140094c5c
cmp dword [0x14014b3c4], 0xffffffff
jne 0x140061104
lea rcx, str.DelayFirstWorkerWake
call fcn.140065310
mov byte [0x14014b3c0], al
lea rcx, [0x14014b3c4]
call fcn.140094bfc
jmp 0x140061104
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14006107b
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebp, eax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebp, ebp
jne 0x140061091
jmp 0x140060f77
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140061dfb
lea rcx, [rsp + 0x170]
call qword [0x140154008]
jmp 0x140061e03
mov rax, qword [0x1401405c8]
lea rbx, [0x140094050]
cmp rax, rbx
jne 0x140061d9e
lea rdi, [rsp + 0x170]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140061d7a
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
mov qword [rsp + 0x170], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea r14, [rsp + 0x170]
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_born
mov cl, 0x49
xor r9d, r9d
call fcn.14005e860
test byte [0x14013f080], 0x19
je 0x140060b40
mov rax, qword [0x1401405c8]
cmp rax, rbx
jne 0x140061ef3
lea rdi, [rsp + 0x170]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140061f03
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
mov qword [rsp + 0x170], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov qword [rsp + 0x38], r14
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14005e860
jmp 0x140060b40
lea rcx, [rsp + 0x170]
call qword [0x140154008]
jmp 0x140061eac
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140061ea4
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140061fab
lea rcx, [rsp + 0x170]
call qword [0x140154008]
jmp 0x140061fb3
mov rax, qword [0x1401405c8]
lea rcx, [0x140094050]
cmp rax, rcx
jne 0x140061f4e
lea rdi, [rsp + 0x170]
mov qword [rdi], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rdi]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140061f2a
imul rax, rax, 0xf4240
cqo
idiv qword [0x140149418]
mov qword [rsp + 0x170], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0x170]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], eax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14013f080]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14005e860
jmp 0x140060bba
mov rcx, rdi
call fcn.14008ba70
jmp 0x1400620a7
mov r14, qword [0x140147900]
movapd xmm0, xmmword [0x140115d80]
lea rdi, [rsp + 0xf0]
movapd xmmword [rdi + 0x10], xmm0
movapd xmmword [rdi], xmm0
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x14013f080]
lea r9, str.WorkerThread_active
mov rcx, rdi
mov dl, 0x42
call fcn.1400626c0
mov rdi, qword [rdi]
test rdi, rdi
je 0x140062147
xor r14, rsi
mov al, byte [rsp + 0x108]
mov rcx, qword [rsp + 0xf8]
xor edx, edx
mov qword [rsp + 0x118], rdx
mov qword [rsp + 0x120], rdi
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x130], rdx
mov byte [rsp + 0x138], al
cmp qword [rdi + 0x10], rdx
jne 0x140062002
lea r15, [rsp + 0x120]
mov byte [rsp + 0x17e], 0xaa
mov dword [rsp + 0x17a], 0xaaaaaaaa
mov word [rsp + 0x170], 0x381
mov qword [rsp + 0x172], r14
mov rcx, qword [rdi]
mov rax, qword [rcx + 0x18]
lea rdx, [rax + 0xa]
cmp rdx, qword [rcx + 0x10]
ja 0x14006216a
movzx r8d, word [rsp + 0x178]
mov word [rax + 8], r8w
mov r8, qword [rsp + 0x170]
mov qword [rax], r8
mov qword [rcx + 0x18], rdx
add dword [rdi + 0x20], 0xa
lea rdi, [rsp + 0x118]
mov rax, qword [rdi]
lea rcx, [rsp + 0x170]
mov qword [rcx], rax
mov qword [rdi], 0
movupd xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 9]
movupd xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x11], xmm1
call fcn.1400626d0
mov rcx, rdi
call fcn.1400626d0
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x140060bd7
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
jmp 0x140060bd7
lea rdx, [rsp + 0x170]
mov r8d, 0xa
call fcn.14006dac0
jmp 0x140062106
lea r13, [rsp + 0xf0]
mov rcx, r13
call qword [0x140154008]
mov rbp, qword [r13]
jmp 0x14006132d
mov edx, 3
jmp 0x1400621d3
mov eax, dword [rax + 0x38]
cmp eax, 3
je 0x140062199
xor edx, edx
cmp eax, 1
sete dl
jmp 0x1400621d3
mov eax, dword [0x140140950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x168]
xor edx, edx
test rax, rax
jne 0x1400621a0
cmp ebp, 7
jge 0x1400625cc
mov eax, dword [0x140140950]
mov rcx, qword gs:[0x58]
mov r15, qword [rcx + rax*8]
mov ecx, ebp
call fcn.140004b80
mov dword [r15 + 0x15c], ebp
mov dword [rsi + 0x6c], ebp
jmp 0x14006101c
lea rcx, [rsp + 0x170]
call qword [0x140154008]
jmp 0x140060cbd
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140060d1f
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140062242
lea r13, [r15 + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140062226
mov rcx, qword [r15 + 0x58]
call fcn.140076580
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140060e1f
int3
lock dec dword [rcx + 8]
jne 0x140060fae
mov edx, 1
call fcn.140075420
jmp 0x140060fae
xor eax, eax
jmp 0x140061228
lock dec dword [r8 + 8]
jne 0x140060ed4
mov rcx, r8
mov edx, 1
call fcn.140075420
jmp 0x140060ed4
lock dec dword [rcx + 8]
jne 0x1400622a9
mov edx, 1
call fcn.140075420
mov rcx, qword [rsp + 0x170]
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0xc8], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x170], xmm0
test rcx, rcx
mov rbx, qword [rsp + 0x58]
je 0x140060f11
lock dec dword [rcx + 8]
je 0x1400622fb
mov rcx, qword [rsp + 0x170]
test rcx, rcx
mov rbx, qword [rsp + 0x58]
je 0x140060f11
jmp 0x14006269b
mov edx, 1
call fcn.140075420
jmp 0x1400622e0
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x140060eb7
mov qword [rsp + 0xc0], 0
lea r13, [rsp + 0x118]
mov rdx, r13
call fcn.140010aa0
mov r8, qword [r13]
jmp 0x140060ecb
lea rax, [r14 + r8]
add rax, 2
lea r9, [r14 + 1]
cmp rax, 1
jbe 0x140062359
mov rbx, qword [rsp + 0x58]
jmp 0x1400611a8
cmp r8, r12
mov rbx, qword [rsp + 0x58]
je 0x1400611a8
int3
lea rcx, [r14 + r9]
add rcx, 2
mov r12, r14
cmp rcx, 1
ja 0x14006123f
mov r12, r14
cmp r9, rax
je 0x14006123f
int3
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbp, rax
add rbp, r8
jmp 0x14006132d
mov rcx, rbp
call fcn.14008ba70
jmp 0x140061464
mov rbx, qword [0x140147900]
lea rbp, [rsp + 0x1d0]
movaps xmmword [rbp + 0x10], xmm6
movaps xmmword [rbp], xmm6
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x14013f980]
lea r9, str.WaitableEvent::Wait_Complete
mov rcx, rbp
mov dl, 0x49
call fcn.1400626c0
mov rcx, qword [rbp]
test rcx, rcx
je 0x140062475
xor rbx, qword [rsp + 0x58]
mov al, byte [rsp + 0x1e8]
mov rdx, qword [rsp + 0x1d8]
lea rbp, [rsp + 0xf0]
mov qword [rbp + 8], rcx
mov qword [rbp + 0x10], rdx
xor r15d, r15d
mov qword [rbp + 0x18], r15
mov byte [rbp + 0x20], al
mov edx, 0x30
mov r8, rbx
call fcn.14008ff80
lea rcx, [rsp + 0x118]
mov qword [rcx], r15
mov qword [rbp], r15
movupd xmm0, xmmword [rbp + 8]
movups xmm1, xmmword [rbp + 0x11]
movupd xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x11], xmm1
call fcn.1400626d0
mov rcx, rbp
call fcn.1400626d0
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x14006248f
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
mov rbx, qword [rsp + 0x58]
jmp 0x1400613a7
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140060d42
lock dec dword [r13]
jne 0x1400624fc
mov rax, qword [r13 + 0x10]
mov rcx, r13
call qword [0x140154008]
jmp 0x1400624fc
mov qword [rsp + 0x60], rax
cmp qword [rsp + 0x68], r15
jb 0x1400625cf
mov rax, qword [rsp + 0x70]
mov r13, qword [rax + r15*8]
mov qword [rax + r15*8], 0
mov rax, qword [r13 + 8]
test rax, rax
je 0x1400625d2
mov rbx, rcx
mov rcx, r13
call qword [0x140154008]
test r13, r13
jne 0x1400624a7
inc r15
xor eax, eax
cmp r15, qword [rsp + 0x68]
cmove r15, rax
mov rax, qword [rsp + 0x60]
cmp r15, rax
mov rcx, rbx
jne 0x1400624bd
cmp rax, rcx
jbe 0x140062654
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x60]
jb 0x1400625d5
cmp rbx, qword [rsp + 0x60]
jg 0x1400625d8
mov r15, qword [rsp + 0x60]
shl r15, 3
mov rax, rbx
shl rax, 3
mov rbx, rax
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x14006256d
mov rax, rbx
add rax, 8
cmp r15, rax
jne 0x14006254b
jmp 0x140060d8e
lock dec dword [rcx]
jne 0x14006255c
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x14006255c
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140060cb5
mov rcx, qword [0x140149418]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1400615ce
int3
int3
int3
int3
int3
int3
int3
int3
xor edi, edi
ucomisd xmm0, qword [0x14011f3c8]
cmovae rdi, r14
jmp 0x1400610cd
int3
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140154008]
jmp 0x140060b4d
cmp qword [rsp + 0x60], 0
js 0x1400625e1
mov r13, qword [rsp + 0x60]
je 0x140060d8e
shl r13, 3
xor r15d, r15d
jmp 0x14006263f
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
add r15, 8
cmp r13, r15
je 0x140060d8e
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + r15]
test rcx, rcx
je 0x140062632
lock dec dword [rcx]
je 0x140062628
jmp 0x140062632
cmp qword [rsp + 0x68], rbx
jb 0x1400625db
jl 0x1400625de
je 0x14006260c
shl qword [rsp + 0x68], 3
shl rbx, 3
jmp 0x140062686
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
mov rax, rbx
add rax, 8
mov rbx, rax
cmp qword [rsp + 0x68], rax
je 0x14006260c
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + rbx]
test rcx, rcx
je 0x140062675
lock dec dword [rcx]
je 0x14006266b
jmp 0x140062675
lock dec dword [rcx + 8]
jne 0x140060f11
mov edx, 1
call fcn.140075420
jmp 0x140060f11