Function at 0x140066d90
Capabilities:
Check for time delay via queryperformancecounter
Get thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1b8
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x190], xmm6
mov rsi, rcx
mov rax, qword [0x14012c028]
xor rax, rsp
mov qword [rsp + 0x188], rax
test byte [0x14012e040], 0x19
jne 0x140066ebd
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140066f62
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.140004f60
mov eax, dword [0x1401447dc]
mov r15b, 1
test eax, eax
je 0x140066ea7
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x30]
mov eax, dword [rax]
test al, 1
jne 0x140066e17
cmp dword [rsi + 0x68], 0
je 0x140066ea7
mov rcx, qword [0x1401447c0]
test rcx, rcx
je 0x140067020
lea rdi, [rsp + 0xf0]
mov rdx, rdi
mov r8d, 2
call fcn.140018e60
mov rax, qword [rdi]
mov qword [rsp + 0x88], rax
mov al, 1
mov qword [rsp + 0x80], rax
xor r15d, r15d
test byte [0x14012e040], 0x19
jne 0x140066f74
mov rcx, qword [rsi + 0x48]
lea rdx, [rsi + 0x30]
mov qword [rsp + 0x78], rdx
call fcn.140004b80
test byte [0x14012e040], 0x19
jne 0x140066fca
movabs rbp, 0x7fffffffffffffff
lea r12, [rsp + 0xf8]
movaps xmm6, xmmword [0x140114940]
xorps xmm7, xmm7
mov dword [rsp + 0x54], r15d
jmp 0x140067039
xor eax, eax
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x80], rax
jmp 0x140066e55
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.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], 8
mov qword [rsp + 0x40], 0
lea rdx, [0x14012e040]
lea r8, str.WorkerThread_born
mov cl, 0x49
xor r9d, r9d
call fcn.14007f160
test byte [0x14012e040], 0x19
je 0x140066dd5
mov rcx, rdi
call fcn.14008cb20
call sub.KERNEL32.dll_GetCurrentThreadId
mov qword [rsp + 0x38], rdi
mov dword [rsp + 0x30], eax
movups xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x48], 0
mov qword [rsp + 0x40], 0
lea rdx, [0x14012e040]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14007f160
jmp 0x140066dd5
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x140150008]
jmp 0x140066de2
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.KERNEL32.dll_GetCurrentThreadId
mov qword [rsp + 0x38], rdi
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, [0x14012e040]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14007f160
jmp 0x140066e62
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.KERNEL32.dll_GetCurrentThreadId
mov qword [rsp + 0x38], rdi
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, [0x14012e040]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14007f160
jmp 0x140066e81
xor eax, eax
jmp 0x140066e40
test r14b, r14b
jne 0x140067bbc
movzx eax, byte [rsi + 0x40]
test al, al
jne 0x140067bbc
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x140067bbc
mov rbx, qword [rsi + 0x50]
lea rdi, [rbx + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140067a36
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x140067b97
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x30]
mov eax, dword [rax]
test al, 1
jne 0x140067aac
mov edi, dword [rsi + 0x68]
cmp dword [rsi + 0x6c], edi
jne 0x140067e12
movaps xmmword [rsp + 0xb0], xmm6
mov rcx, qword [rsi + 0x48]
lea rdx, [rsp + 0xb0]
mov r8, rsi
call fcn.140076e30
mov rax, qword [rsp + 0xb0]
test rax, rax
je 0x1400672a1
mov qword [rsp + 0xc8], rax
lea rcx, [rsp + 0xc8]
call fcn.140061fc0
mov rcx, qword [rsi + 0x50]
movapd xmm0, xmmword [rsp + 0xb0]
movupd xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm7
lea rdx, [rsp + 0xf0]
lea r8, [rsp + 0xa0]
call fcn.140068820
mov r8, qword [rsp + 0xb0]
test r8, r8
jne 0x140067e3d
mov qword [rsp + 0x160], r8
mov qword [rsp + 0xb0], 0
test r8, r8
jne 0x140067e72
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0xf0], 0
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb0], rax
test rcx, rcx
jne 0x140067e8f
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xb8], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0xf0]
call fcn.140061fc0
mov rcx, qword [rsi + 0x48]
movapd xmm0, xmmword [rsp + 0xb0]
movupd xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xb0], xmm7
lea rdx, [rsp + 0x90]
call fcn.140092320
cmp qword [rsp + 0xb0], 0
jne 0x140067e3a
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
xor r14d, r14d
mov r13, qword [rsp + 0x80]
mov rdi, qword [rsp + 0xb0]
test rdi, rdi
jne 0x140067761
mov qword [rsp + 0xb0], 0
test rdi, rdi
jne 0x140067795
mov rcx, qword [rsp + 0xb0]
test rcx, rcx
jne 0x140067e21
test r13b, r13b
je 0x140067030
mov eax, dword [0x1401447d8]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140067d27
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 3
cmp eax, 2
jne 0x140067030
lea rdi, [rsp + 0xf0]
mov rcx, rdi
lea rdx, [0x14011a2a2]
lea r8, str....._base_threading_thread_local_storage.cc
mov r9d, 0x1db
call fcn.140061ec0
mov edx, 0x11e1a300
mov rcx, rdi
call fcn.1400c7be0
jmp 0x140067030
mov al, byte [rsi + 0x40]
mov r14b, 1
test al, al
jne 0x1400671e6
mov al, byte [rsi + 0x70]
test al, al
jne 0x1400671e6
mov rbx, qword [rsi + 0x50]
lea rdi, [rbx + 0x70]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140067b44
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x140067ce2
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test byte [0x14012e040], 0x19
jne 0x140067f0b
test r15b, r15b
jne 0x140067365
mov eax, dword [0x1401447d8]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140067d75
mov ecx, dword [0x14013b660]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 3
cmp eax, 2
jne 0x140067365
lea rdi, [rsp + 0xf0]
mov rcx, rdi
lea rdx, [0x14011a2a2]
lea r8, str....._base_threading_thread_local_storage.cc
mov r9d, 0x1db
call fcn.140061ec0
mov edx, 0x11e1a300
mov rcx, rdi
call fcn.1400c7be0
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
lea rdx, [fcn.140004b80]
cmp qword [rax + 0x30], rdx
jne 0x140067a16
mov rax, qword [rcx + 0x30]
cmp byte [rax + 0x98], 0
mov r14, rbp
je 0x140067fda
mov eax, 0xf4240
cmp r14, rax
mov r13d, 0xf4240
cmovl r13, r14
mov eax, dword [0x1401464cc]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140067b08
cmp byte [0x1401464c8], 0
je 0x14006757e
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x160], rax
mov rax, qword [fcn.14008cb20]
lea rcx, [0x140095b10]
cmp rax, rcx
jne 0x140067d14
mov qword [rsp + 0xf0], 0
lea rcx, [rsp + 0xf0]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0xf0]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14006803b
imul rax, rax, 0xf4240
cqo
idiv qword [0x14013e7d0]
mov qword [rsp + 0x160], rax
mov eax, dword [0x1401464d8]
mov ecx, dword [0x14013ba7c]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140067ab6
mov r8, qword [rsp + 0x160]
lea rax, [r13 + 2]
add rax, rbp
cmp rax, 2
jb 0x140068014
lea rax, [r8 + r13]
sar rax, 0x3f
btc rax, 0x3f
add r13, r8
cmovo r13, rax
mov r9, r13
xor eax, eax
mov rcx, r9
neg rcx
setns al
add rax, rbp
mov rcx, r9
neg rcx
cmovo rcx, rax
lea rdx, [rcx + rbp]
add rdx, 2
mov rax, rbp
cmp rdx, 2
jb 0x1400674fe
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 rax, rcx
je 0x140067a25
lea rdx, [rax + 0xf4240]
sar rdx, 0x3f
btc rdx, 0x3f
mov rcx, rax
add rcx, 0xf4240
cmovo rcx, rdx
test r9, r9
cmovle rcx, rax
lea rax, [rcx + rbp]
add rax, 2
cmp rax, 2
jb 0x1400680ef
lea rax, [r9 + rcx]
sar rax, 0x3f
btc rax, 0x3f
add r9, rcx
cmovo r9, rax
mov rax, r9
xor ecx, ecx
cmp rax, r8
setns cl
add rcx, rbp
sub rax, r8
cmovo rax, rcx
mov r13, qword [0x1401464d0]
xor ecx, ecx
cmp r13, r8
setns cl
add rcx, rbp
sub r13, r8
cmovo r13, rcx
cmp rax, r13
cmovg r13, rax
test r13, r13
jle 0x140067fbd
movaps xmmword [rsp + 0x160], xmm6
movabs rdx, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x180], rdx
movaps xmmword [rsp + 0x170], xmm6
xor ecx, ecx
mov byte [rsp + 0x160], cl
lea rax, [rsp + 0x168]
mov qword [rax + 0x10], rcx
movups xmmword [rax], xmm7
movaps xmmword [rsp + 0xf0], xmm6
mov qword [rsp + 0x150], rdx
movaps xmmword [rsp + 0x140], xmm6
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
mov byte [rsp + 0xf0], cl
mov qword [r12 + 0x50], rcx
movups xmmword [r12 + 0x40], xmm7
movups xmmword [r12 + 0x30], xmm7
movups xmmword [r12 + 0x20], xmm7
movups xmmword [r12 + 0x10], xmm7
movups xmmword [r12], xmm7
cmp byte [rsi + 0x38], cl
jne 0x14006785e
cmp r13, rbp
je 0x140067759
mov rax, qword [0x14013b5d0]
lea rcx, [0x140095b10]
cmp rax, rcx
jne 0x140067cc9
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0xc8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0xc8]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140068113
imul rax, rax, 0xf4240
cqo
idiv qword [0x14013e7d0]
mov rdi, rax
lea rax, [rdi + r13]
sar rax, 0x3f
btc rax, 0x3f
add rdi, r13
cmovo rdi, rax
mov rcx, r13
cmp rcx, rbp
je 0x140067702
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 rax, qword [rsp + 0x78]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140067709
jmp 0x1400678d2
mov edx, 0xffffffff
jmp 0x1400676eb
mov dil, 1
test byte [0x14012e8f0], 0x19
jne 0x140068062
cmp byte [rsp + 0xf0], 0
jne 0x14006783f
cmp byte [rsp + 0x160], 0
jne 0x14006784c
test dil, dil
je 0x140067a43
xor r13d, r13d
test byte [0x14012e040], 0x19
mov r14d, 0
je 0x1400671ee
jmp 0x140067f61
mov rdi, rbp
jmp 0x1400676a7
mov rbx, qword [rsp + 0xb8]
test rbx, rbx
je 0x1400671ff
mov qword [rsp + 0xb0], 0
mov al, byte [rdi + 0x16]
and al, 0x7f
cmp al, 2
je 0x1400679fb
lock dec dword [rbx + 0x38]
je 0x140067953
lock dec dword [rdi + 8]
jne 0x140067214
lea rax, [0x140113f00]
mov qword [rdi], rax
mov rbx, qword [rdi + 0xa0]
test rbx, rbx
jne 0x140067b51
lea rax, [rdi + 0x78]
mov rbx, qword [rdi + 0x78]
mov r15, qword [rdi + 0x80]
mov rdx, rbx
cmp r15, rbx
jne 0x140068261
mov qword [rdi + 0x80], rbx
test rdx, rdx
jne 0x140068289
mov r15, qword [rdi + 0x60]
mov rax, qword [rdi + 0x68]
cmp rax, r15
jne 0x1400682a1
mov rdx, qword [rdi + 0x50]
lea rcx, fcn.140062590
xor r8d, r8d
call fcn.14006d070
lea rax, [0x140113f60]
mov qword [rdi], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x140067a2c
mov rcx, rdi
call fcn.140096334
mov r15d, dword [rsp + 0x54]
jmp 0x140067214
mov rcx, r12
call fcn.140084b30
jmp 0x140067727
lea rcx, [rsp + 0x168]
call fcn.140084c10
jmp 0x140067735
call fcn.140061fd0
lea rcx, [rsp + 0x168]
mov rdx, rax
mov r8, qword [rsp + 0x78]
call fcn.140084a90
mov byte [rsp + 0x160], 1
lea rdi, [rsp + 0xc8]
mov rcx, rdi
lea rdx, str.TimedWait
lea r8, str....._base_synchronizationwaitable_event.cc
mov r9d, 0x26
call fcn.140061ec0
mov rcx, r12
mov rdx, rdi
xor r8d, r8d
mov r9d, 1
call fcn.140070470
test byte [0x14012e040], 0x19
jne 0x1400681f5
mov byte [rsp + 0xf0], 1
jmp 0x14006762b
mov rax, qword [0x14013b5d0]
lea rcx, [0x140095b10]
cmp rax, rcx
jne 0x140067dc3
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0xc8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0xc8]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x140068219
imul rax, rax, 0xf4240
cqo
idiv qword [0x14013e7d0]
xor edx, edx
cmp rdi, rax
setns dl
add rdx, rbp
mov rcx, rdi
sub rcx, rax
cmovo rcx, rdx
test rcx, rcx
jg 0x1400676aa
xor edi, edi
jmp 0x140067719
lea r15, [rbx + 0x40]
mov rcx, r15
mov rax, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
call rax
test al, al
je 0x140068240
mov rcx, qword [rbx + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r15
mov rax, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
call rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006824d
mov rax, qword [rbx + 0x50]
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + 0x58]
mov qword [rsp + 0x70], rax
movups xmmword [rbx + 0x50], xmm7
mov rax, qword [rbx + 0x60]
mov qword [rsp + 0x68], rax
mov rax, qword [rbx + 0x68]
mov qword [rsp + 0x58], rax
movups xmmword [rbx + 0x60], xmm7
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov rbx, rcx
cmp rcx, rax
jne 0x1400684f7
lea rcx, fcn.140062590
mov rdx, qword [rsp + 0x60]
xor r8d, r8d
call fcn.14006d070
mov r15d, dword [rsp + 0x54]
jmp 0x14006720b
mov rax, qword [rbx + 0x30]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x14006778b
jmp 0x140067de1
mov rdx, qword [rsp + 0x78]
call fcn.140004b80
jmp 0x14006773e
xor ecx, ecx
jmp 0x140067535
call fcn.140064060
jmp 0x14006782d
mov rcx, rdi
call fcn.140062160
jmp 0x14006706a
mov eax, dword [0x14013ba7c]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x120]
cmp rdi, 2
jb 0x140067a88
mov byte [rdi + 4], 0
mov ebx, pe_nt_image_headers64
lea rdx, [rdi + rbx]
mov rcx, rdi
xor r8d, r8d
call fcn.14006cad0
add rbx, 0x10
cmp rbx, 0x4f8
jne 0x140067a6c
cmp r14, r13
jle 0x14006773e
mov rdx, rbp
cmp r14, rbp
jne 0x1400685de
mov rcx, qword [rsp + 0x78]
call fcn.140084690
jmp 0x14006773e
mov edi, 2
jmp 0x140067095
lea rcx, [0x1401464d8]
call fcn.140096578
cmp dword [0x1401464d8], 0xffffffff
jne 0x140067470
mov rax, qword [rsp + 0x160]
mov edx, 0x3938700
lea rcx, [rdx + rax]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, rdx
cmovo rax, rcx
mov qword [0x1401464d0], rax
lea rcx, [0x1401464d8]
call fcn.1400966f0
jmp 0x140067470
lea rcx, [0x1401464cc]
call fcn.140096578
cmp dword [0x1401464cc], 0xffffffff
jne 0x1400673c8
lea rcx, str.DelayFirstWorkerWake
call fcn.14006b6c0
mov byte [0x1401464c8], al
lea rcx, [0x1401464cc]
call fcn.1400966f0
jmp 0x1400673c8
mov rcx, rdi
call fcn.140062160
jmp 0x1400672d3
mov rax, qword [rdi + 0xa8]
mov rcx, rbx
cmp rax, rbx
je 0x140067b86
lea r15, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x140067b77
mov rax, qword [rax - 8]
call qword [0x140150008]
mov rax, r15
cmp r15, rbx
jne 0x140067b60
mov rcx, qword [rdi + 0xa0]
mov qword [rdi + 0xa8], rbx
call fcn.140096334
jmp 0x1400677b9
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r15d, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r15d, r15d
mov r15d, dword [rsp + 0x54]
jne 0x140067080
mov rbx, qword [rsi + 0x48]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x18], 0
test rcx, rcx
je 0x140067be2
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x140150008]
mov rdi, qword [rbx + 0x30]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140068312
mov rax, qword [rbx + 0x30]
inc qword [rax + 0x150]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x158]
test rcx, rcx
jne 0x14006831f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140068329
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
jne 0x140067cae
test byte [0x14012e040], 0x19
mov rsi, qword [rsp + 0x88]
jne 0x14006833b
test rsi, rsi
je 0x140067c7a
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [0x140150008]
lock dec dword [rsi]
jne 0x140067c7a
mov rax, qword [rsi + 0x10]
mov rcx, rsi
call qword [0x140150008]
mov rcx, qword [rsp + 0x188]
xor rcx, rsp
call fcn.1400985e0
movaps xmm6, xmmword [rsp + 0x190]
movaps xmm7, xmmword [rsp + 0x1a0]
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec dword [rdi + 8]
jne 0x140067c41
mov rcx, rdi
call fcn.1400057b0
mov rcx, rdi
call fcn.140096334
jmp 0x140067c41
lea rdi, [rsp + 0xc0]
mov rcx, rdi
call qword [0x140150008]
mov rdi, qword [rdi]
jmp 0x140067693
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov r15d, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r13, qword [rsp + 0x80]
test r15d, r15d
mov r15d, dword [rsp + 0x54]
jne 0x1400672e9
jmp 0x1400671ee
lea rcx, [rsp + 0x160]
call qword [0x140150008]
jmp 0x14006744b
lea rcx, [0x1401447d8]
call fcn.140096578
cmp dword [0x1401447d8], 0xffffffff
jne 0x140067253
mov qword [0x1401447d0], 0
lea rcx, [0x1401447c8]
mov qword [0x1401447c8], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x1401447d8]
call fcn.1400966f0
jmp 0x140067253
lea rcx, [0x1401447d8]
call fcn.140096578
cmp dword [0x1401447d8], 0xffffffff
jne 0x140067320
mov qword [0x1401447d0], 0
lea rcx, [0x1401447c8]
mov qword [0x1401447c8], 0xffffffffffffffff
xor edx, edx
call fcn.140005670
lea rcx, [0x1401447d8]
call fcn.1400966f0
jmp 0x140067320
lea r15, [rsp + 0xc8]
mov rcx, r15
call qword [0x140150008]
mov rax, qword [r15]
mov r15d, dword [rsp + 0x54]
jmp 0x14006792e
lea r15, [rbx + 0x70]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006861a
mov rcx, qword [rbx + 0x78]
call fcn.140096170
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15d, dword [rsp + 0x54]
jmp 0x14006778b
mov ecx, edi
call fcn.140008c00
mov dword [rsi + 0x6c], edi
jmp 0x14006709e
lock dec dword [rcx + 8]
jne 0x140067225
mov edx, 1
call fcn.1400877a0
jmp 0x140067225
int3
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140067124
mov qword [rsp + 0xb0], 0
lea rdi, [rsp + 0x160]
mov rdx, rdi
call fcn.140087540
mov r8, qword [rdi]
jmp 0x140067138
lock dec dword [r8 + 8]
jne 0x140067141
mov rcx, r8
mov edx, 1
call fcn.1400877a0
jmp 0x140067141
lock dec dword [rcx + 8]
jne 0x140067e9f
mov edx, 1
call fcn.1400877a0
mov rdi, qword [rsp + 0xf0]
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0xb8], rax
xorpd xmm0, xmm0
movupd xmmword [rsp + 0xf0], xmm0
test rdi, rdi
mov r15d, dword [rsp + 0x54]
je 0x14006717e
lock dec dword [rdi + 8]
je 0x14006815e
mov rcx, qword [rsp + 0xf0]
test rcx, rcx
mov r15d, dword [rsp + 0x54]
je 0x14006717e
lock dec dword [rcx + 8]
jne 0x14006717e
mov edx, 1
call fcn.1400877a0
jmp 0x14006717e
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.KERNEL32.dll_GetCurrentThreadId
mov qword [rsp + 0x38], rdi
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, [0x14012e040]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14007f160
jmp 0x1400672f6
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.KERNEL32.dll_GetCurrentThreadId
mov qword [rsp + 0x38], rdi
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, [0x14012e040]
lea r8, str.WorkerThread_active
xor r13d, r13d
mov cl, 0x42
xor r9d, r9d
call fcn.14007f160
xor r14d, r14d
jmp 0x1400671ee
mov rax, qword [rsp + 0x78]
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14006773e
jmp 0x140067a43
xorps xmm0, xmm0
cvtsi2sd xmm0, qword [rax + 0x90]
mulsd xmm0, qword [0x14011bb48]
movsd xmm1, qword [0x140119c08]
ucomisd xmm1, xmm0
jae 0x14006813d
xor r14d, r14d
ucomisd xmm0, qword [0x140119c10]
cmovae r14, rbp
jmp 0x14006814a
lea rax, [r8 + rbp]
add rax, 2
lea r9, [rbp + 1]
cmp rax, 1
ja 0x140068154
cmp r8, r13
mov r15d, dword [rsp + 0x54]
je 0x1400674a4
int3
mov rcx, qword [0x14013e7d0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140067443
mov rax, qword [0x14013ce70]
xor rax, qword [rsp + 0x78]
lea rcx, [0x1400181f0]
mov qword [rsp + 0xe0], rcx
lea rcx, [0x14011bc70]
mov qword [rsp + 0xe8], rcx
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0
lea rdx, [0x14012e8f0]
lea r8, str.WaitableEvent::Wait_Complete
lea r9, [0x140117ca8]
mov cl, 0x49
call fcn.140018080
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 8]
test rax, rax
je 0x1400680e5
mov rcx, qword [rsp + 0xd0]
call qword [0x140150008]
mov r15d, dword [rsp + 0x54]
jmp 0x140067719
lea rdx, [r9 + rbp]
add rdx, 2
mov rax, rbp
cmp rdx, 1
ja 0x14006754c
mov rax, rbp
cmp r9, rcx
je 0x14006754c
int3
mov rcx, qword [0x14013e7d0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rdi, rax
add rdi, r8
jmp 0x140067693
maxsd xmm0, qword [0x140119c10]
cvttsd2si r14, xmm0
mov r15d, dword [rsp + 0x54]
jmp 0x140067391
mov r15d, dword [rsp + 0x54]
jmp 0x1400674a4
lea rax, [0x140113f00]
mov qword [rdi], rax
mov rbx, qword [rdi + 0xa0]
test rbx, rbx
jne 0x14006849c
lea r15, [rdi + 0x78]
mov rbx, qword [rdi + 0x78]
mov r14, qword [rdi + 0x80]
mov rdx, rbx
cmp r14, rbx
jne 0x140068627
mov qword [rdi + 0x80], rbx
test rdx, rdx
jne 0x140068650
mov r15, qword [rdi + 0x60]
mov r14, qword [rdi + 0x68]
cmp r14, r15
jne 0x140068665
mov rdx, qword [rdi + 0x50]
lea rcx, fcn.140062590
xor r8d, r8d
call fcn.14006d070
lea rax, [0x140113f60]
mov qword [rdi], rax
mov rcx, qword [rdi + 0x38]
mov rax, qword [0x14012dfa0]
and rax, rcx
cmp rax, qword [0x14012df88]
je 0x14006825a
mov rcx, rdi
call fcn.140096334
jmp 0x140067edc
lea rdx, [rsp + 0xc0]
lea rax, [rsp + 0xc8]
mov qword [rdx], rax
lea rcx, str.ScopedBlockingCallWithBaseSyncPrimitives
call fcn.1400e4940
jmp 0x1400678c5
mov rcx, qword [0x14013e7d0]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14006792e
mov rcx, r15
call fcn.140062160
jmp 0x14006796b
mov rcx, r15
call fcn.140062160
jmp 0x140067992
call fcn.140064060
jmp 0x1400681e8
mov qword [rsp + 0x60], rax
mov rcx, qword [r15 - 0x80]
add r15, 0xffffffffffffff80
test rcx, rcx
jne 0x1400685c6
cmp r15, rbx
jne 0x140068266
mov rax, qword [rsp + 0x60]
mov rdx, qword [rax]
jmp 0x1400677d4
mov rbx, rax
mov rcx, rax
call fcn.1400faa70
mov rcx, qword [rbx]
call fcn.140096334
jmp 0x1400677e4
mov qword [rsp + 0x58], rax
mov rbx, qword [rdi + 0x58]
jbe 0x1400683f1
cmp rbx, qword [rsp + 0x58]
jb 0x1400683e8
cmp rbx, r15
jb 0x1400683eb
cmp r15, qword [rsp + 0x58]
jg 0x1400683ee
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x60], rax
mov rbx, qword [rsp + 0x58]
shl rbx, 7
shl r15, 7
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x140068301
sub r15, 0xffffffffffffff80
cmp rbx, r15
jne 0x1400682e5
jmp 0x1400677f5
lock dec dword [rcx]
jne 0x1400682f3
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x1400682f3
mov rcx, rdi
call fcn.140062160
jmp 0x140067bfb
call sub.KERNEL32.dll_WakeConditionVariable
jmp 0x140067c1a
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x140150008]
jmp 0x140067c30
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.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, [0x14012e040]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14007f160
test byte [0x14012e040], 0x19
je 0x140067c56
lea rdi, [rsp + 0xf0]
mov rcx, rdi
call fcn.14008cb20
call sub.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, [0x14012e040]
lea r8, str.WorkerThread_dead
mov cl, 0x49
xor r9d, r9d
call fcn.14007f160
jmp 0x140067c56
int3
int3
int3
cmp rbx, r15
jb 0x140068435
jl 0x140068438
je 0x14006843f
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x60], rax
shl rbx, 7
shl r15, 7
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x140068424
sub r15, 0xffffffffffffff80
cmp rbx, r15
jne 0x14006840b
jmp 0x14006843b
lock dec dword [rcx]
jne 0x140068419
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068419
int3
int3
mov r15, qword [rdi + 0x58]
cmp r15, qword [rsp + 0x58]
jb 0x140068496
cmp qword [rsp + 0x58], 0
js 0x140068499
mov rbx, qword [rsp + 0x58]
je 0x1400677f5
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x60], rax
shl rbx, 7
xor r15d, r15d
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + r15]
test rcx, rcx
jne 0x140068485
sub r15, 0xffffffffffffff80
cmp rbx, r15
jne 0x140068469
jmp 0x1400677f5
lock dec dword [rcx]
jne 0x140068477
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068477
int3
int3
mov rax, qword [rdi + 0xa8]
mov rcx, rbx
cmp rax, rbx
je 0x1400684d1
lea r14, [rax - 0x18]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x1400684c2
mov rax, qword [rax - 8]
call qword [0x140150008]
mov rax, r14
cmp r14, rbx
jne 0x1400684ab
mov rcx, qword [rdi + 0xa0]
mov qword [rdi + 0xa8], rbx
call fcn.140096334
jmp 0x140068178
lock dec dword [r15]
jne 0x140068528
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x140150008]
jmp 0x140068528
mov rax, qword [rsp + 0x70]
cmp rax, rbx
jb 0x1400685ba
mov rax, qword [rsp + 0x60]
mov r15, qword [rax + rbx*8]
mov qword [rax + rbx*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x140150008]
test r15, r15
jne 0x1400684e2
inc rbx
xor eax, eax
mov rcx, qword [rsp + 0x70]
cmp rbx, rcx
cmove rbx, rax
mov rax, qword [rsp + 0x58]
cmp rbx, rax
mov rcx, qword [rsp + 0x68]
jne 0x1400684f7
cmp rax, rcx
jbe 0x1400686bb
mov rax, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x58]
jb 0x1400685bd
mov rax, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x68]
jb 0x1400685c0
mov rax, qword [rsp + 0x68]
cmp rax, qword [rsp + 0x58]
jg 0x1400685c3
mov rbx, qword [rsp + 0x58]
shl rbx, 3
mov rax, qword [rsp + 0x68]
shl rax, 3
mov r15, rax
mov rcx, qword [rsp + 0x60]
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x1400685a9
mov rax, r15
add rax, 8
cmp rbx, rax
jne 0x140068587
jmp 0x1400679dd
lock dec dword [rcx]
jne 0x140068598
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068598
int3
int3
int3
int3
lock dec dword [rcx]
jne 0x140068277
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068277
lea rax, [r13 + 2]
add rax, rbp
mov rdx, rbp
cmp rax, 2
jb 0x140067a9d
xor eax, eax
cmp r14, r13
setns al
movabs rcx, 0x7fffffffffffffff
add rcx, rax
sub r14, r13
cmovo r14, rcx
mov rdx, r14
jmp 0x140067a9d
mov rcx, r15
call fcn.140062160
jmp 0x140067df6
mov rcx, qword [r14 - 0x80]
add r14, 0xffffffffffffff80
test rcx, rcx
je 0x140068643
lock dec dword [rcx]
jne 0x140068643
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
cmp r14, rbx
jne 0x140068627
mov rdx, qword [r15]
jmp 0x140068193
mov rcx, r15
call fcn.1400faa70
mov rcx, qword [r15]
call fcn.140096334
jmp 0x1400681a3
mov rbx, qword [rdi + 0x58]
jbe 0x14006872d
cmp rbx, r14
jb 0x1400686b2
cmp rbx, r15
jb 0x1400686b5
cmp r15, r14
jg 0x1400686b8
mov rbx, qword [rdi + 0x50]
shl r14, 7
shl r15, 7
mov rcx, qword [rbx + r15]
test rcx, rcx
jne 0x1400686a1
sub r15, 0xffffffffffffff80
cmp r14, r15
jne 0x14006868a
jmp 0x1400681b4
lock dec dword [rcx]
jne 0x140068693
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068693
int3
int3
int3
mov rax, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x68]
jb 0x140068721
jl 0x140068724
jne 0x140068772
mov rax, qword [rsp + 0x70]
cmp rax, qword [rsp + 0x58]
jb 0x140068727
cmp qword [rsp + 0x58], 0
js 0x14006872a
mov r15, qword [rsp + 0x58]
je 0x1400679dd
shl r15, 3
xor ebx, ebx
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + rbx]
test rcx, rcx
jne 0x140068710
add rbx, 8
cmp r15, rbx
jne 0x1400686f4
jmp 0x1400679dd
lock dec dword [rcx]
jne 0x140068702
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068702
int3
int3
int3
int3
cmp rbx, r15
jb 0x14006876c
jl 0x14006876f
je 0x1400687c8
mov r13, qword [rdi + 0x50]
shl rbx, 7
shl r15, 7
mov rcx, qword [r13 + r15]
test rcx, rcx
jne 0x14006875b
sub r15, 0xffffffffffffff80
cmp rbx, r15
jne 0x140068746
jmp 0x1400687c4
lock dec dword [rcx]
jne 0x140068750
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068750
int3
int3
mov rax, qword [rsp + 0x70]
lea rbx, [rax*8]
shl qword [rsp + 0x68], 3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rax + rcx]
test rcx, rcx
jne 0x1400687b3
mov rcx, qword [rsp + 0x68]
add rcx, 8
mov rax, rcx
mov qword [rsp + 0x68], rcx
cmp rbx, rcx
jne 0x140068785
jmp 0x1400686cf
lock dec dword [rcx]
jne 0x140068798
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x140068798
mov r15, qword [rdi + 0x58]
cmp r15, r14
jb 0x14006880b
test r14, r14
js 0x14006880e
je 0x1400681b4
mov rbx, qword [rdi + 0x50]
shl r14, 7
xor r15d, r15d
mov rcx, qword [rbx + r15]
test rcx, rcx
jne 0x1400687fa
sub r15, 0xffffffffffffff80
cmp r14, r15
jne 0x1400687e3
jmp 0x1400681b4
lock dec dword [rcx]
jne 0x1400687ec
mov rax, qword [rcx + 0x10]
call qword [0x140150008]
jmp 0x1400687ec
int3
int3