Function at 0x14012de60
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, 0x268
movaps xmmword [rsp + 0x250], xmm10
movaps xmmword [rsp + 0x240], xmm9
movaps xmmword [rsp + 0x230], xmm8
movaps xmmword [rsp + 0x220], xmm7
movaps xmmword [rsp + 0x210], xmm6
mov rsi, rcx
mov rax, qword [0x140297028]
xor rax, rsp
mov qword [rsp + 0x208], rax
test byte [0x140299870], 0x19
jne 0x14012f0d0
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x14012f9b6
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.140013a30
mov eax, dword [0x1402b01c8]
test eax, eax
je 0x14012dfd8
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
jne 0x14012deff
cmp dword [rsi + 0x68], 0
je 0x14012dfd8
mov rcx, qword [0x1402b01c0]
test rcx, rcx
je 0x14012dfd8
lea rdi, [rsp + 0x180]
mov rdx, rdi
mov r8d, 2
call fcn.140031680
mov rax, qword [rdi]
mov qword [rsp + 0x78], rax
test byte [0x140299870], 0x19
jne 0x14012f280
mov rcx, qword [rsi + 0x48]
lea rdx, [rsi + 0x30]
mov qword [rsp + 0x68], rdx
call fcn.140013ba0
test byte [0x140299870], 0x19
jne 0x14012f324
movabs r13, 0x7fffffffffffffff
lea r12, [rsp + 0x188]
mov eax, dword [0x1402a76e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea rcx, [rax + 0x1a0]
mov qword [rsp + 0x98], rcx
lea rcx, [rax + 0x1a8]
mov qword [rsp + 0x80], rcx
lea rax, [rax + 0x200]
mov qword [rsp + 0x90], rax
movaps xmm6, xmmword [0x140268c70]
xorps xmm7, xmm7
movsd xmm8, qword [0x140280f48]
movsd xmm9, qword [0x1402771b8]
movsd xmm10, qword [0x14025c040]
xor r14d, r14d
jmp 0x14012e30c
xor eax, eax
jmp 0x14012df28
mov rax, qword [0x14029adc8]
lea rcx, [0x14017e8a0]
cmp rax, rcx
jne 0x14012f532
mov qword [rsp + 0x180], 0
lea rcx, [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x180]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14012f968
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov qword [rsp + 0x180], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0x180]
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, [0x140299870]
lea r8, str.WorkerThread_active
xor r9d, r9d
call fcn.140131640
jmp 0x14012e3fd
lea rdi, [rbx + 0x20]
mov rcx, rdi
mov r12, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
call r12
test al, al
je 0x14012f545
mov rcx, qword [rbx + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, rdi
mov rax, qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
call rax
mov rcx, rdi
call r12
test al, al
je 0x14012f880
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0x70], rax
mov rax, qword [rbx + 0x38]
mov qword [rsp + 0x60], rax
movups xmmword [rbx + 0x30], xmm7
mov rax, qword [rbx + 0x40]
mov qword [rsp + 0x88], rax
mov r12, qword [rbx + 0x48]
movups xmmword [rbx + 0x40], xmm7
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x88]
mov rax, r12
mov rbx, rcx
cmp rcx, r12
jne 0x14012f8b7
lea rcx, fcn.1400edfe0
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.1400e9510
lea r12, [rsp + 0x188]
jmp 0x14012e2e9
mov rax, qword [rbx + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x14012e172
jmp 0x14012f55e
mov rbx, qword [rsp + 0xc8]
test rbx, rbx
je 0x14012e2dd
mov qword [rsp + 0xc0], 0
mov al, byte [rbp + 0xd]
and al, 0x7f
cmp al, 2
je 0x14012e135
lock dec dword [rbx + 0x18]
je 0x14012e08d
lock dec dword [rbp + 8]
jne 0x14012e2f2
mov rcx, rbp
call fcn.140008010
mov rcx, rbp
call fcn.14018039c
jmp 0x14012e2f2
mov rcx, qword [rsi + 0x48]
call fcn.1400138c0
jmp 0x14012e3f0
mov qword [rsp + 0x1e0], rax
lea rcx, [rsp + 0x1e0]
call fcn.1400d8260
mov rcx, qword [rsi + 0x50]
movaps xmm0, xmmword [rsp + 0xc0]
movups xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm7
lea rdx, [rsp + 0x180]
lea r8, [rsp + 0xb0]
call fcn.14012fc80
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
jne 0x14012f656
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0xc0], 0
test rdi, rdi
jne 0x14012f5b7
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x180], 0
mov rdi, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], rax
test rdi, rdi
jne 0x14012f5d6
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x180], rax
lea rcx, [rsp + 0x180]
call fcn.1400d8260
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.14017a300
cmp qword [rsp + 0xc0], 0
jne 0x14012f58e
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov r14b, 1
xor r15d, r15d
mov rbp, qword [rsp + 0xc0]
test rbp, rbp
jne 0x14012e14c
mov qword [rsp + 0xc0], 0
test rbp, rbp
jne 0x14012e17c
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
jne 0x14012f591
test r15b, r15b
jne 0x14012eec3
movzx eax, byte [rsi + 0x40]
test al, al
jne 0x14012eec3
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x14012eec3
mov rbx, qword [rsi + 0x50]
lea rdi, [rbx + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14012eff2
mov rax, qword [rbx + 0x58]
test rax, rax
jne 0x14012f455
mov rcx, rdi
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 0x14012efe8
mov ebp, dword [rsi + 0x68]
cmp dword [rsi + 0x6c], ebp
jne 0x14012f4e0
movaps xmmword [rsp + 0xc0], xmm6
mov rcx, qword [rsi + 0x48]
lea rdx, [rsp + 0xc0]
mov r8, rsi
call fcn.14011a800
mov rax, qword [rsp + 0xc0]
test rax, rax
jne 0x14012e1b0
mov al, byte [rsi + 0x40]
mov r15b, 1
test al, al
jne 0x14012e2cc
mov al, byte [rsi + 0x70]
test al, al
jne 0x14012e2cc
mov rbx, qword [rsi + 0x50]
lea rdi, [rbx + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14012f03c
mov rax, qword [rbx + 0x58]
test rax, rax
jne 0x14012f491
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r14b, 1
je 0x14012e19b
test byte [0x140299870], 0x19
jne 0x14012dfdf
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
lea rdx, [fcn.140013ba0]
cmp qword [rax + 0x30], rdx
jne 0x14012edb8
cmp byte [rcx + 0x40], 0
mov r15, r13
jne 0x14012edc7
mov eax, 0xf4240
cmp r15, rax
mov r14d, 0xf4240
cmovl r14, r15
mov eax, dword [0x1402b5200]
mov ecx, dword [0x1402a76e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14012f000
cmp byte [0x1402b51fc], 0
je 0x14012e60c
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xf8], rax
mov rax, qword [fcn.1401038f0]
lea rcx, [0x14017e8a0]
cmp rax, rcx
jne 0x14012f4b4
mov qword [rsp + 0x180], 0
lea rcx, [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0x180]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14012f6e6
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov qword [rsp + 0xf8], rax
mov eax, dword [0x1402b5210]
mov ecx, dword [0x1402a76e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14012f04a
mov r8, qword [rsp + 0xf8]
lea rax, [r14 + r13]
add rax, 2
cmp rax, 2
jb 0x14012f68f
lea rax, [r8 + r14]
sar rax, 0x3f
btc rax, 0x3f
add r14, r8
cmovo r14, rax
mov r9, r14
xor eax, eax
mov rcx, r9
neg rcx
setns al
add rax, r13
mov rcx, r9
neg rcx
cmovo rcx, rax
lea rdx, [rcx + r13]
add rdx, 2
mov rax, r13
cmp rdx, 2
jb 0x14012e58c
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 0x14012f44e
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 + r13]
add rax, 2
cmp rax, 2
jb 0x14012f6c2
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, r13
sub rax, r8
cmovo rax, rcx
mov r14, qword [0x1402b5208]
xor ecx, ecx
cmp r14, r8
setns cl
add rcx, r13
sub r14, r8
cmovo r14, rcx
cmp rax, r14
cmovg r14, rax
test r14, r14
jle 0x14012ed74
movaps xmmword [rsp + 0x180], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1d0], rax
movaps xmmword [rsp + 0x1c0], xmm6
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
mov byte [rsp + 0x180], 0
movups xmmword [r12 + 0x30], xmm7
movups xmmword [r12 + 0x20], xmm7
movups xmmword [r12 + 0x10], xmm7
movups xmmword [r12], xmm7
mov qword [r12 + 0x40], 0
cmp byte [rsi + 0x38], 0
je 0x14012e9c3
cmp r14, r13
je 0x14012e90a
mov rax, qword [0x14029adc8]
lea rcx, [0x14017e8a0]
cmp rax, rcx
jne 0x14012f478
mov qword [rsp + 0xf8], 0
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0xf8]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14012f70d
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov rbp, rax
lea rax, [r14 + rbp]
sar rax, 0x3f
btc rax, 0x3f
add rbp, r14
cmovo rbp, rax
mov rcx, r14
cmp rcx, r13
je 0x14012e900
lea rax, [rcx + r13]
add rax, 2
cmp rax, 2
jb 0x14012f5b0
mov rax, rcx
movabs rdx, 0x20c49ba5e353f7cf
imul rdx
mov rax, rdx
shr rdx, 0x3f
sar rax, 7
add rax, rdx
imul r8, rax, 0x3e8
xor edx, edx
cmp rcx, r8
setg dl
xor ecx, ecx
add rdx, rax
setns cl
neg ecx
mov rax, rdx
shr rax, 0x20
cmovne edx, ecx
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x14012e931
mov bpl, 1
cmp byte [rsi + 0x38], 0
je 0x14012e912
cmp byte [rsp + 0x180], 0
jne 0x14012e924
test bpl, bpl
je 0x14012ecbe
xor r15d, r15d
test byte [0x140299870], 0x19
mov r14d, 0
je 0x14012e2cc
mov rax, qword [0x1402aae60]
xor rax, rsi
lea rcx, [fcn.14012fbe0]
mov qword [rsp + 0x1f8], rcx
lea rcx, [0x14027dc08]
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x1e8], rax
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movups xmmword [rsp + 0x20], xmm7
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0x150]
mov dl, 0x42
lea r8, [0x140299870]
lea r9, str.WorkerThread_active
call fcn.14012fad0
mov rax, qword [rsp + 0x150]
test rax, rax
je 0x14012e8c6
mov cl, byte [rsp + 0x168]
mov rdx, qword [rsp + 0x158]
xor edi, edi
mov qword [rsp + 0xf8], rdi
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rdx
mov qword [rsp + 0x110], rdi
mov byte [rsp + 0x118], cl
mov rax, qword [rsp + 0x1f8]
lea rcx, [rsp + 0x1e8]
lea rbx, [rsp + 0xf8]
mov rdx, rbx
call qword [case.0x1401e9be0.0]
mov rax, qword [rsp + 0xf8]
mov qword [rsp + 0x180], rax
mov qword [rsp + 0xf8], rdi
lea rax, [rsp + 0x100]
movupd xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 9]
movups xmmword [r12 + 9], xmm1
movupd xmmword [r12], xmm0
lea rcx, [rsp + 0x180]
call fcn.14012fae0
mov rcx, rbx
call fcn.14012fae0
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x14012e8e0
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
mov rax, qword [rsp + 0x200]
mov rax, qword [rax + 8]
test rax, rax
jne 0x14012f74c
xor r15d, r15d
xor r14d, r14d
jmp 0x14012e2cc
mov edx, 0xffffffff
jmp 0x14012e75c
mov rbp, r13
jmp 0x14012e6fd
test byte [0x14029a160], 0x19
je 0x14012e77f
jmp 0x14012f75f
mov rcx, r12
call fcn.14011f330
jmp 0x14012e78d
mov rax, qword [0x14029adc8]
lea rcx, [0x14017e8a0]
cmp rax, rcx
jne 0x14012ed5b
mov qword [rsp + 0xf8], 0
lea rcx, [rsp + 0xf8]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rax, qword [rsp + 0xf8]
movabs rcx, 0x8637bd05af7
cmp rax, rcx
jge 0x14012f98f
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
xor edx, edx
cmp rbp, rax
setns dl
add rdx, r13
mov rcx, rbp
sub rcx, rax
cmovo rcx, rdx
jg 0x14012e700
xor ebp, ebp
jmp 0x14012e77f
mov rcx, rdi
call fcn.1400d8270
movabs rcx, 0xfffffffc00000000
jmp 0x14012ea08
lea rcx, [rsp + 0xd0]
lea rdx, str.TimedWait
lea r8, str....._base_synchronizationwaitable_event.cc
mov r9d, 0x24
call fcn.1400e92c0
mov rax, qword [rsp + 0x98]
mov rdi, qword [rax]
mov rax, rdi
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x1402a6e88]
je 0x14012e9af
mov qword [rsp + 0x188], rdi
mov rdx, qword [rsp + 0x80]
mov rdi, qword [rdx]
mov rax, rdi
and rax, rcx
cmp rax, qword [0x1402a6e88]
je 0x14012f737
mov qword [rsp + 0x190], rdi
mov qword [rsp + 0x198], rdx
mov rax, qword [rdx]
mov qword [rdx], r12
mov qword [rsp + 0x1a0], rax
mov rax, qword [rsp + 0x190]
test rax, rax
jne 0x14012eab5
xor ecx, ecx
mov byte [rsp + 0x1a8], cl
mov byte [rsp + 0x1b0], 0
mov rcx, qword [rsp + 0x90]
cmp byte [rcx], 0
je 0x14012eaba
test rax, rax
jne 0x14012ecaf
mov rcx, qword [rsp + 0x188]
test rcx, rcx
je 0x14012ea9f
cmp qword [rsp + 0x190], 0
jne 0x14012ea9f
xor edx, edx
call fcn.140152c80
test byte [0x140299870], 0x19
jne 0x14012eaed
mov byte [rsp + 0x180], 1
jmp 0x14012e681
mov cl, byte [rax + 0x20]
jmp 0x14012ea5b
mov eax, dword [0x1402b2b28]
mov ecx, dword [0x1402a76e4]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14012ed05
cmp byte [0x1402b2b24], 0
jne 0x14012ea80
jmp 0x14012ed4e
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movups xmmword [rsp + 0x20], xmm7
mov byte [rsp + 0x30], 0
lea rcx, [rsp + 0x150]
mov dl, 0x42
lea r8, [0x140299870]
lea r9, str.ScopedBlockingCallWithBaseSyncPrimitives
call fcn.14012fad0
mov rax, qword [rsp + 0x150]
test rax, rax
je 0x14012ed91
mov cl, byte [rsp + 0x168]
mov rdx, qword [rsp + 0x158]
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x1f0], rdx
xor eax, eax
mov qword [rsp + 0x1f8], rax
mov byte [rsp + 0x200], cl
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x1e0], rax
lea rax, [rsp + 0x1e8]
movupd xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 9]
lea rax, [rsp + 0x100]
movups xmmword [rax + 9], xmm1
movupd xmmword [rax], xmm0
mov rcx, qword [rsp + 0x100]
mov edx, 0x21
call fcn.1401076d0
mov rbp, rax
mov rdx, qword [rsp + 0xd8]
lea rdi, [rsp + 0x138]
mov rcx, rdi
call fcn.1401beb80
movzx r9d, byte [rsp + 0x14f]
test r9b, r9b
js 0x14012ebd9
and r9d, 0x7f
mov r8, rdi
jmp 0x14012ebe9
mov r9, qword [rsp + 0x140]
mov r8, qword [rsp + 0x138]
mov rcx, rbp
mov edx, 2
call fcn.140107ad0
cmp byte [rsp + 0x14f], 0
jns 0x14012ec0d
mov rcx, qword [rsp + 0x138]
call fcn.14018039c
mov rdx, qword [rsp + 0xd0]
lea rdi, [rsp + 0x120]
mov rcx, rdi
call fcn.1401beb80
movzx r9d, byte [rsp + 0x137]
test r9b, r9b
js 0x14012ec3c
and r9d, 0x7f
mov r8, rdi
jmp 0x14012ec4c
mov r9, qword [rsp + 0x128]
mov r8, qword [rsp + 0x120]
mov rcx, rbp
mov edx, 3
call fcn.140107ad0
cmp byte [rsp + 0x137], 0
js 0x14012eca0
lea rcx, [rsp + 0xf8]
call fcn.14012fae0
lea rcx, [rsp + 0x1e0]
call fcn.14012fae0
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x14012eaa8
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
jmp 0x14012eaa8
mov rcx, qword [rsp + 0x120]
call fcn.14018039c
jmp 0x14012ec63
cmp byte [rax + 0x28], 0
je 0x14012ea80
jmp 0x14012f9dc
call fcn.140133040
cmp r15, r14
jle 0x14012e796
setns al
movzx eax, al
add rax, r13
mov rdx, r15
sub rdx, r14
cmovo rdx, rax
lea rax, [r14 + r13]
add rax, 2
cmp rax, 2
cmovb rdx, r13
cmp r15, r13
cmove rdx, r13
mov rcx, qword [rsp + 0x68]
call fcn.1400d8730
jmp 0x14012e796
lea rcx, [0x1402b2b28]
call fcn.1401805cc
cmp dword [0x1402b2b28], 0xffffffff
jne 0x14012eadf
mov rcx, qword [0x1402acbd0]
test rcx, rcx
je 0x14012ed36
lea rdx, str.enable_background_thread_pool
call fcn.1400e7a70
mov byte [0x1402b2b24], 1
lea rcx, [0x1402b2b28]
call fcn.140180634
jmp 0x14012eadf
mov rax, qword [rsp + 0x190]
jmp 0x14012ea77
lea rdi, [rsp + 0xf8]
mov rcx, rdi
call qword [case.0x1401e9be0.0]
mov rax, qword [rdi]
jmp 0x14012e98d
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x14012e796
jmp 0x14012ecbe
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x14012edab
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
lea r12, [rsp + 0x188]
jmp 0x14012eaa8
mov rdx, qword [rsp + 0x68]
call fcn.140013ba0
jmp 0x14012e796
mov rax, qword [rcx + 0x30]
cvtsi2sd xmm0, qword [rax + 0x90]
mulsd xmm0, xmm8
ucomisd xmm9, xmm0
jb 0x14012f9c8
maxsd xmm0, xmm10
cvttsd2si r15, xmm0
jmp 0x14012e422
lea rdi, [rsp + 0x180]
mov rcx, rdi
call fcn.1401038f0
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, [0x140299870]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.140131640
test byte [0x140299870], 0x19
je 0x14012ef56
lea rdi, [rsp + 0x180]
mov rcx, rdi
call fcn.1401038f0
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, [0x140299870]
lea r8, str.WorkerThread_dead
mov cl, 0x49
xor r9d, r9d
call fcn.140131640
jmp 0x14012ef56
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [case.0x1401e9be0.0]
jmp 0x14012ef2f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012eefe
call sub.KERNEL32.dll_WakeConditionVariable
jmp 0x14012ef19
mov rbx, qword [rsi + 0x48]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x18], 0
test rcx, rcx
je 0x14012eee9
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x1401e9be0.0]
mov rdi, qword [rbx + 0x30]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14012eeb1
mov rax, qword [rbx + 0x30]
inc qword [rax + 0x170]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x178]
test rcx, rcx
jne 0x14012eebc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x14012eea2
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
jne 0x14012efc9
test byte [0x140299870], 0x19
mov rsi, qword [rsp + 0x78]
jne 0x14012edf3
test rsi, rsi
je 0x14012ef7a
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [case.0x1401e9be0.0]
lock dec dword [rsi]
jne 0x14012ef7a
mov rax, qword [rsi + 0x10]
mov rcx, rsi
call qword [case.0x1401e9be0.0]
mov rcx, qword [rsp + 0x208]
xor rcx, rsp
call fcn.1401830b0
movaps xmm6, xmmword [rsp + 0x210]
movaps xmm7, xmmword [rsp + 0x220]
movaps xmm8, xmmword [rsp + 0x230]
movaps xmm9, xmmword [rsp + 0x240]
movaps xmm10, xmmword [rsp + 0x250]
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec dword [rdi + 8]
jne 0x14012ef44
mov rcx, rdi
call fcn.140014020
mov rcx, rdi
call fcn.14018039c
jmp 0x14012ef44
mov ebp, 3
jmp 0x14012e368
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012e33d
lea rcx, [0x1402b5200]
call fcn.1401805cc
cmp dword [0x1402b5200], 0xffffffff
jne 0x14012e459
lea rcx, str.DelayFirstWorkerWake
call fcn.140133240
mov byte [0x1402b51fc], al
lea rcx, [0x1402b5200]
call fcn.140180634
jmp 0x14012e459
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012e3d0
lea rcx, [0x1402b5210]
call fcn.1401805cc
cmp dword [0x1402b5210], 0xffffffff
jne 0x14012e501
mov rax, qword [rsp + 0xf8]
mov edx, 0x3938700
lea rcx, [rdx + rax]
sar rcx, 0x3f
btc rcx, 0x3f
add rax, rdx
cmovo rax, rcx
mov qword [0x1402b5208], rax
lea rcx, [0x1402b5210]
call fcn.140180634
jmp 0x14012e501
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012f11d
lea rcx, [rsp + 0x180]
call qword [case.0x1401e9be0.0]
jmp 0x14012f125
mov rax, qword [0x14029adc8]
lea rbx, [0x14017e8a0]
cmp rax, rbx
jne 0x14012f0c0
lea rdi, [rsp + 0x180]
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 0x14012f09c
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov qword [rsp + 0x180], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea r14, [rsp + 0x180]
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, [0x140299870]
lea r8, str.WorkerThread_born
mov cl, 0x49
xor r9d, r9d
call fcn.140131640
test byte [0x140299870], 0x19
je 0x14012dec0
mov rax, qword [0x14029adc8]
cmp rax, rbx
jne 0x14012f215
lea rdi, [rsp + 0x180]
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 0x14012f225
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov qword [rsp + 0x180], 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, [0x140299870]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.140131640
jmp 0x14012dec0
lea rcx, [rsp + 0x180]
call qword [case.0x1401e9be0.0]
jmp 0x14012f1ce
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012f1c6
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012f2cd
lea rcx, [rsp + 0x180]
call qword [case.0x1401e9be0.0]
jmp 0x14012f2d5
mov rax, qword [0x14029adc8]
lea rcx, [0x14017e8a0]
cmp rax, rcx
jne 0x14012f270
lea rdi, [rsp + 0x180]
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 0x14012f24c
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402ac9c8]
mov qword [rsp + 0x180], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rcx, [rsp + 0x180]
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, [0x140299870]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.140131640
jmp 0x14012df3a
mov rax, qword [0x1402aae60]
xor rax, rsi
lea rcx, [fcn.14012fbe0]
mov qword [rsp + 0x1f8], rcx
lea rcx, [0x14027dc08]
mov qword [rsp + 0x200], rcx
mov qword [rsp + 0x1e8], rax
movapd xmm0, xmmword [0x140268c70]
lea rdi, [rsp + 0x150]
movapd xmmword [rdi + 0x10], xmm0
movapd xmmword [rdi], xmm0
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x140299870]
lea r9, str.WorkerThread_active
mov rcx, rdi
mov dl, 0x42
call fcn.14012fad0
mov rax, qword [rdi]
test rax, rax
je 0x14012f40c
lea rcx, [rsp + 0x1e8]
mov dl, byte [rsp + 0x168]
mov r8, qword [rsp + 0x158]
xor ebx, ebx
lea rdi, [rsp + 0xf8]
mov qword [rdi], rbx
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], r8
mov qword [rdi + 0x18], rbx
mov byte [rdi + 0x20], dl
mov rax, qword [rcx + 0x10]
mov rdx, rdi
call qword [case.0x1401e9be0.0]
mov rax, qword [rdi]
lea rcx, [rsp + 0x180]
mov qword [rcx], rax
mov qword [rdi], rbx
movups xmm0, xmmword [rdi + 8]
movups xmmword [rcx + 8], xmm0
movupd xmm0, xmmword [rdi + 0x11]
movupd xmmword [rcx + 0x11], xmm0
call fcn.14012fae0
mov rcx, rdi
call fcn.14012fae0
mov rcx, qword [rsp + 0x160]
test rcx, rcx
je 0x14012f426
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
mov rax, qword [rsp + 0x200]
mov rax, qword [rax + 8]
test rax, rax
je 0x14012df59
mov rcx, qword [rsp + 0x1e8]
call qword [case.0x1401e9be0.0]
jmp 0x14012df59
xor ecx, ecx
jmp 0x14012e5c3
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebp, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebp, ebp
jne 0x14012e353
jmp 0x14012eec3
lea rdi, [rsp + 0x1e0]
mov rcx, rdi
call qword [case.0x1401e9be0.0]
mov rbp, qword [rdi]
jmp 0x14012e6e9
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ebp, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebp, ebp
jne 0x14012e3e6
jmp 0x14012e2cc
lea rcx, [rsp + 0xf8]
call qword [case.0x1401e9be0.0]
jmp 0x14012e4dc
mov edx, 3
jmp 0x14012f501
mov eax, dword [rax + 0x38]
cmp eax, 3
je 0x14012f4c7
xor edx, edx
cmp eax, 1
sete dl
jmp 0x14012f501
mov eax, dword [0x1402a76e4]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + 0x198]
xor edx, edx
test rax, rax
jne 0x14012f4ce
cmp ebp, 7
jge 0x14012f88e
mov eax, dword [0x1402a76e4]
mov rcx, qword gs:[0x58]
mov rdi, qword [rcx + rax*8]
mov ecx, ebp
call fcn.14001edc0
mov dword [rdi + 0x18c], ebp
mov dword [rsi + 0x6c], ebp
jmp 0x14012e371
lea rcx, [rsp + 0x180]
call qword [case.0x1401e9be0.0]
jmp 0x14012e043
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012e0a6
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012f56f
lea rdi, [rbx + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14012f553
mov rcx, qword [rbx + 0x58]
call fcn.140122de0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea r12, [rsp + 0x188]
jmp 0x14012e172
int3
lock dec dword [rdi + 8]
jne 0x14012e303
mov rcx, rdi
call fcn.140008010
mov rcx, rdi
call fcn.14018039c
jmp 0x14012e303
xor edx, edx
jmp 0x14012e75c
lock dec dword [rdi + 8]
jne 0x14012e224
mov rcx, rdi
call fcn.140008010
mov rcx, rdi
call fcn.14018039c
jmp 0x14012e224
lock dec dword [rdi + 8]
jne 0x14012f5ec
mov rcx, rdi
call fcn.140008010
mov rcx, rdi
call fcn.14018039c
mov rdi, qword [rsp + 0x180]
mov rax, qword [rsp + 0x188]
mov qword [rsp + 0xc8], rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x180], xmm0
test rdi, rdi
lea r12, [rsp + 0x188]
je 0x14012e261
lock dec dword [rdi + 8]
je 0x14012f644
mov rdi, qword [rsp + 0x180]
test rdi, rdi
lea r12, [rsp + 0x188]
je 0x14012e261
jmp 0x14012faad
mov rcx, rdi
call fcn.140008010
mov rcx, rdi
call fcn.14018039c
jmp 0x14012f626
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x14012e207
mov qword [rsp + 0xc0], 0
lea rbp, [rsp + 0xf8]
mov rdx, rbp
mov r8, rdi
call fcn.14001f4d0
mov rdi, qword [rbp]
jmp 0x14012e21b
lea r9, [r13 + 1]
cmp r8, r14
jne 0x14012f6a5
lea r12, [rsp + 0x188]
jmp 0x14012e532
lea rax, [r8 + r13]
add rax, 2
cmp rax, 1
lea r12, [rsp + 0x188]
ja 0x14012e532
int3
lea rdx, [r9 + r13]
add rdx, 2
mov rax, r13
cmp rdx, 1
ja 0x14012e5da
mov rax, r13
cmp r9, rcx
je 0x14012e5da
int3
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012e4d4
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbp, rax
add rbp, r8
jmp 0x14012e6e9
mov rcx, rdi
call fcn.1400d8270
mov rdx, qword [rsp + 0x80]
jmp 0x14012ea2e
mov rcx, qword [rsp + 0x1e8]
call qword [case.0x1401e9be0.0]
jmp 0x14012e8f5
mov rax, qword [0x1402aae60]
xor rax, qword [rsp + 0x68]
lea rcx, [fcn.14012fbe0]
mov qword [rsp + 0x168], rcx
lea rcx, [0x14027dc08]
mov qword [rsp + 0x170], rcx
mov qword [rsp + 0x158], rax
lea rdi, [rsp + 0xd0]
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
xorpd xmm0, xmm0
movupd xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x30], 0
lea r8, [0x14029a160]
lea r9, str.WaitableEvent::Wait_Complete
mov rcx, rdi
mov dl, 0x49
call fcn.14012fad0
mov rax, qword [rdi]
test rax, rax
je 0x14012f83a
lea rcx, [rsp + 0x158]
mov dl, byte [rsp + 0xe8]
mov r8, qword [rsp + 0xd8]
xor ebx, ebx
lea rdi, [rsp + 0x1e0]
mov qword [rdi], rbx
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], r8
mov qword [rdi + 0x18], rbx
mov byte [rdi + 0x20], dl
mov rdx, rdi
call fcn.14012fbe0
mov rax, qword [rdi]
lea rcx, [rsp + 0xf8]
mov qword [rcx], rax
mov qword [rdi], rbx
movups xmm0, xmmword [rdi + 8]
movups xmmword [rcx + 8], xmm0
movupd xmm0, xmmword [rdi + 0x11]
movupd xmmword [rcx + 0x11], xmm0
call fcn.14012fae0
mov rcx, rdi
call fcn.14012fae0
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
je 0x14012f854
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
mov rax, qword [rsp + 0x170]
mov rax, qword [rax + 8]
test rax, rax
je 0x14012f873
mov rcx, qword [rsp + 0x158]
call qword [case.0x1401e9be0.0]
lea r12, [rsp + 0x188]
jmp 0x14012e77f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14012e0ca
int3
int3
int3
int3
int3
int3
int3
lock dec dword [rdi]
jne 0x14012f8e9
mov rax, qword [rdi + 0x10]
mov rcx, rdi
call qword [case.0x1401e9be0.0]
jmp 0x14012f8e9
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x60], rbx
jb 0x14012f8a0
mov r12, rcx
mov rax, qword [rsp + 0x70]
mov rdi, qword [rax + rbx*8]
mov qword [rax + rbx*8], 0
mov rax, qword [rdi + 8]
mov rcx, rdi
call qword [case.0x1401e9be0.0]
test rdi, rdi
jne 0x14012f8a3
inc rbx
xor eax, eax
cmp rbx, qword [rsp + 0x60]
cmove rbx, rax
mov rax, qword [rsp + 0x58]
cmp rbx, rax
mov rcx, r12
jne 0x14012f8b7
cmp rax, rcx
jbe 0x14012fa5a
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0x58]
jb 0x14012f891
cmp r12, qword [rsp + 0x58]
jg 0x14012f894
mov rdi, qword [rsp + 0x58]
shl rdi, 3
shl r12, 3
mov rbx, r12
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + r12]
test rcx, rcx
jne 0x14012f957
mov r12, rbx
add r12, 8
cmp rdi, r12
jne 0x14012f935
jmp 0x14012e114
lock dec dword [rcx]
jne 0x14012f946
mov rax, qword [rcx + 0x10]
call qword [case.0x1401e9be0.0]
jmp 0x14012f946
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012e03b
mov rcx, qword [0x1402ac9c8]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14012e98d
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1401e9be0.0]
jmp 0x14012decd
xor r15d, r15d
ucomisd xmm0, qword [0x14025c040]
cmovae r15, r13
jmp 0x14012e422
mov rdi, qword [rax + 0x38]
mov qword [rax + 0x38], 0
test rdi, rdi
je 0x14012ea80
lock dec dword [rdi]
jne 0x14012ea80
mov rcx, rdi
call fcn.14000f240
mov rcx, rdi
call fcn.14018039c
jmp 0x14012ea80
cmp qword [rsp + 0x58], 0
js 0x14012f89d
mov rbx, qword [rsp + 0x58]
je 0x14012e114
shl rbx, 3
xor edi, edi
jmp 0x14012fa45
mov rax, qword [rcx + 0x10]
call qword [case.0x1401e9be0.0]
add rdi, 8
cmp rbx, rdi
je 0x14012e114
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + rdi]
test rcx, rcx
je 0x14012fa38
lock dec dword [rcx]
je 0x14012fa2e
jmp 0x14012fa38
cmp qword [rsp + 0x60], r12
jb 0x14012f897
jl 0x14012f89a
je 0x14012fa0f
shl qword [rsp + 0x60], 3
shl r12, 3
jmp 0x14012fa98
mov rax, qword [rcx + 0x10]
call qword [case.0x1401e9be0.0]
mov rax, r12
add rax, 8
mov r12, rax
cmp qword [rsp + 0x60], rax
je 0x14012fa0f
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + r12]
test rcx, rcx
je 0x14012fa83
lock dec dword [rcx]
je 0x14012fa79
jmp 0x14012fa83
lock dec dword [rdi + 8]
jne 0x14012e261
mov rcx, rdi
call fcn.140008010
mov rcx, rdi
call fcn.14018039c
jmp 0x14012e261