Function at 0x140136490
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 [0x14029b028]
xor rax, rsp
mov qword [rsp + 0x1f8], rax
test byte [0x1402a99c0], 0x19
jne 0x1401376f3
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x140137f74
mov rcx, qword [rsi + 0x48]
mov rdx, rsi
call fcn.140014ef0
mov eax, dword [0x1402b6798]
test eax, eax
je 0x140136607
mov rax, qword [rsi + 0x50]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
jne 0x14013652f
cmp dword [rsi + 0x68], 0
je 0x140136607
mov rcx, qword [0x1402b6790]
test rcx, rcx
je 0x140136607
lea rdi, [rsp + 0x170]
mov rdx, rdi
mov r8d, 2
call fcn.140030c20
mov rax, qword [rdi]
mov qword [rsp + 0x78], rax
test byte [0x1402a99c0], 0x19
jne 0x1401378a3
mov rcx, qword [rsi + 0x48]
lea rdx, [rsi + 0x30]
mov qword [rsp + 0x68], rdx
call fcn.140015060
test byte [0x1402a99c0], 0x19
jne 0x140137954
movabs r14, 0x7fffffffffffffff
lea r15, [rsp + 0x178]
mov eax, dword [0x1402ab5e0]
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 [0x14026cc70]
xorps xmm7, xmm7
movsd xmm8, qword [0x1402854f0]
movsd xmm9, qword [0x14027b990]
movsd xmm10, qword [0x140260040]
xor edi, edi
jmp 0x14013696c
xor eax, eax
jmp 0x140136558
mov rax, qword [0x1402aaf18]
lea rcx, [0x140181ca0]
cmp rax, rcx
jne 0x140137b46
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 0x140137f01
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
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, [0x1402a99c0]
lea r8, str.WorkerThread_active
xor r9d, r9d
call fcn.14013ac20
jmp 0x140136a5f
lea r13, [rbx + 0x20]
mov rcx, r13
mov r15, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
call r15
test al, al
je 0x140137e17
mov rcx, qword [rbx + 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 r15
test al, al
je 0x140137e25
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 r15, qword [rbx + 0x48]
movups xmmword [rbx + 0x40], xmm7
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x88]
mov rax, r15
mov rbx, rcx
cmp rcx, r15
jne 0x140137e49
lea rcx, fcn.1400f1570
mov rdx, qword [rsp + 0x70]
xor r8d, r8d
call fcn.1400edf60
lea r15, [rsp + 0x178]
jmp 0x140136949
mov rax, qword [rbx + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1401367cd
jmp 0x140137b64
mov rax, qword [rcx + 0x30]
cvtsi2sd xmm0, qword [rax + 0x90]
mulsd xmm0, xmm8
ucomisd xmm9, xmm0
jb 0x140137f61
maxsd xmm0, xmm10
cvttsd2si rdi, xmm0
jmp 0x140136a84
mov rbx, qword [rsp + 0xc8]
test rbx, rbx
je 0x14013693d
mov qword [rsp + 0xc0], 0
mov al, byte [rbp + 0xd]
and al, 0x7f
cmp al, 2
je 0x140136764
lock dec dword [rbx + 0x18]
je 0x1401366bc
lock dec dword [rbp + 8]
jne 0x140136952
mov rcx, rbp
mov edx, 1
call fcn.140132f10
jmp 0x140136952
mov rcx, qword [rsi + 0x48]
call fcn.140139a80
jmp 0x140136a52
mov qword [rsp + 0xf0], rax
lea rcx, [rsp + 0xf0]
call fcn.1400dc900
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.140138180
mov r8, qword [rsp + 0xc0]
test r8, r8
jne 0x140137c41
mov qword [rsp + 0x118], r8
mov qword [rsp + 0xc0], 0
test r8, r8
jne 0x140137bb0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x170], 0
mov rcx, qword [rsp + 0xc0]
mov qword [rsp + 0xc0], rax
test rcx, rcx
jne 0x140137bcd
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.1400dc900
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.14017c440
cmp qword [rsp + 0xc0], 0
jne 0x140137bad
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov dil, 1
xor r12d, r12d
mov rbp, qword [rsp + 0xc0]
test rbp, rbp
jne 0x1401367a7
mov qword [rsp + 0xc0], 0
test rbp, rbp
jne 0x1401367d7
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
jne 0x140137b94
test r12b, r12b
jne 0x140137502
movzx eax, byte [rsi + 0x40]
test al, al
jne 0x140137502
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x140137502
mov rbx, qword [rsi + 0x50]
lea r13, [rbx + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140137627
mov rax, qword [rbx + 0x58]
test rax, rax
jne 0x140137ac4
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 0x140137428
mov ebp, dword [rsi + 0x68]
cmp dword [rsi + 0x6c], ebp
jne 0x140137b37
movaps xmmword [rsp + 0xc0], xmm6
mov rcx, qword [rsi + 0x48]
lea rdx, [rsp + 0xc0]
mov r8, rsi
call fcn.14013d2f0
mov rax, qword [rsp + 0xc0]
test rax, rax
jne 0x140136810
movzx eax, byte [rsi + 0x40]
mov r12b, 1
test al, al
jne 0x14013692c
movzx eax, byte [rsi + 0x70]
test al, al
jne 0x14013692c
mov rbx, qword [rsi + 0x50]
lea r13, [rbx + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401376aa
mov rax, qword [rbx + 0x58]
test rax, rax
jne 0x140137ae7
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test dil, 1
je 0x1401367f3
test byte [0x1402a99c0], 0x19
jne 0x14013660e
mov rcx, qword [rsi + 0x48]
mov rax, qword [rcx]
lea rdx, [fcn.140015060]
cmp qword [rax + 0x30], rdx
jne 0x140137419
cmp byte [rcx + 0x40], 0
mov rdi, r14
jne 0x14013677b
cmp rdi, 0xf4240
mov r12d, 0xf4240
cmovl r12, rdi
mov eax, dword [0x1402b9200]
mov ecx, dword [0x1402ab5e0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14013766e
cmp byte [0x1402b91fc], 0
je 0x140136c61
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x118], rax
mov rax, qword [fcn.140106270]
lea rcx, [0x140181ca0]
cmp rax, rcx
jne 0x140137b24
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 0x140137cce
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
mov qword [rsp + 0x118], rax
mov eax, dword [0x1402b9210]
mov ecx, dword [0x1402ab5e0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140137635
mov rax, qword [0x1402b9208]
mov ecx, 0x3938700
add rax, rcx
cmovo rax, r14
mov r8, qword [rsp + 0x118]
cmp r8, rax
cmovle r12, rcx
lea rax, [r14 + r12]
add rax, 2
cmp rax, 2
jb 0x140137c77
lea rax, [r8 + r12]
sar rax, 0x3f
movabs rcx, 0x8000000000000000
xor rax, rcx
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 rdx, [r14 + rcx]
add rdx, 2
mov rax, r14
cmp rdx, 2
jb 0x140136c0f
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 0x1401376b8
test r9, r9
jle 0x140136c1e
add rax, 0xf4240
cmovo rax, r14
lea rcx, [r14 + rax]
add rcx, 2
cmp rcx, 2
jb 0x140137caa
lea rcx, [r9 + rax]
sar rcx, 0x3f
movabs rdx, 0x8000000000000000
xor rcx, rdx
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 0x1401373d5
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
movups xmmword [r15 + 0x30], xmm7
movups xmmword [r15 + 0x20], xmm7
movups xmmword [r15 + 0x10], xmm7
movups xmmword [r15], xmm7
mov qword [r15 + 0x40], 0
cmp byte [rsi + 0x38], 0
je 0x14013700b
cmp r12, r14
je 0x140136f51
mov rax, qword [0x1402aaf18]
lea rcx, [0x140181ca0]
cmp rax, rcx
jne 0x140137b0a
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 0x140137cf5
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
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 0x140136f47
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 + 0x68]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
jne 0x140136f78
mov r13b, 1
cmp byte [rsi + 0x38], 0
je 0x140136f59
cmp byte [rsp + 0x170], 0
jne 0x140136f6b
test r13b, r13b
je 0x140137306
xor r12d, r12d
test byte [0x1402a99c0], 0x19
mov edi, 0
je 0x14013692c
mov rdi, qword [0x1402b4900]
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, [0x1402a99c0]
lea r9, str.WorkerThread_active
call fcn.140138070
mov rbp, qword [rsp + 0xf0]
test rbp, rbp
je 0x140136f23
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 0x140137d34
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 0x1401373a3
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]
movups xmmword [r15 + 9], xmm1
movupd xmmword [r15], xmm0
lea rcx, [rsp + 0x170]
call fcn.140138080
lea rcx, [rsp + 0x118]
call fcn.140138080
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x140136f3d
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
xor r12d, r12d
xor edi, edi
jmp 0x14013692c
mov edx, 0xffffffff
jmp 0x140136d95
mov rbp, r14
jmp 0x140136d4d
test byte [0x1402aa2c0], 0x19
je 0x140136db8
jmp 0x140137d41
mov rcx, r15
call fcn.140115ba0
jmp 0x140136dc6
mov rax, qword [0x1402aaf18]
lea rcx, [0x140181ca0]
cmp rax, rcx
jne 0x1401373bb
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 0x140137f28
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
xor edx, edx
cmp rbp, rax
setns dl
add rdx, r14
mov rcx, rbp
sub rcx, rax
cmovo rcx, rdx
jg 0x140136d50
xor r13d, r13d
jmp 0x140136db8
mov rcx, r13
call fcn.1400dc910
movabs rcx, 0xfffffffc00000000
jmp 0x140137050
lea rcx, [rsp + 0xd0]
lea rdx, str.TimedWait
lea r8, str....._base_synchronizationwaitable_event.cc
mov r9d, 0x24
call fcn.1400ed1b0
mov rax, qword [rsp + 0x98]
mov r13, qword [rax]
mov rax, r13
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x14029be48]
je 0x140136ff7
mov qword [rsp + 0x178], r13
mov rdx, qword [rsp + 0x80]
mov r13, qword [rdx]
mov rax, r13
and rax, rcx
cmp rax, qword [0x14029be48]
je 0x140137d1f
mov qword [rsp + 0x180], r13
mov qword [rsp + 0x188], rdx
mov rax, qword [rdx]
mov qword [rdx], r15
mov qword [rsp + 0x190], rax
mov rax, qword [rsp + 0x180]
test rax, rax
jne 0x1401370fd
xor ecx, ecx
mov byte [rsp + 0x198], cl
mov byte [rsp + 0x1a0], 0
mov rcx, qword [rsp + 0x90]
cmp byte [rcx], 0
je 0x140137102
test rax, rax
jne 0x1401372f7
mov rcx, qword [rsp + 0x178]
test rcx, rcx
je 0x1401370e7
cmp qword [rsp + 0x180], 0
jne 0x1401370e7
xor edx, edx
call fcn.14017d940
test byte [0x1402a99c0], 0x19
jne 0x140137135
mov byte [rsp + 0x170], 1
jmp 0x140136cd1
mov cl, byte [rax + 0x20]
jmp 0x1401370a3
mov eax, dword [0x1402b6b58]
mov ecx, dword [0x1402ab5e0]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14013734d
cmp byte [0x1402b6b54], 0
jne 0x1401370c8
jmp 0x140137396
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, [0x1402a99c0]
lea r9, str.ScopedBlockingCallWithBaseSyncPrimitives
call fcn.140138070
mov rax, qword [rsp + 0x1d0]
test rax, rax
je 0x1401373f2
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.140109f30
mov rbp, rax
mov rdx, qword [rsp + 0xd8]
lea rbx, [rsp + 0x158]
mov rcx, rbx
call fcn.1401c3730
movzx r9d, byte [rsp + 0x16f]
test r9b, r9b
jns 0x14013722a
mov r9, qword [rsp + 0x160]
mov r8, qword [rsp + 0x158]
jmp 0x140137231
and r9d, 0x7f
mov r8, rbx
mov rcx, rbp
mov edx, 2
call fcn.14010a330
cmp byte [rsp + 0x16f], 0
jns 0x140137255
mov rcx, qword [rsp + 0x158]
call fcn.1401833ec
mov rdx, qword [rsp + 0xd0]
lea rbx, [rsp + 0x140]
mov rcx, rbx
call fcn.1401c3730
movzx r9d, byte [rsp + 0x157]
test r9b, r9b
jns 0x14013728d
mov r9, qword [rsp + 0x148]
mov r8, qword [rsp + 0x140]
jmp 0x140137294
and r9d, 0x7f
mov r8, rbx
mov rcx, rbp
mov edx, 3
call fcn.14010a330
cmp byte [rsp + 0x157], 0
js 0x1401372e8
lea rcx, [rsp + 0x118]
call fcn.140138080
lea rcx, [rsp + 0xf0]
call fcn.140138080
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x1401370f0
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
jmp 0x1401370f0
mov rcx, qword [rsp + 0x140]
call fcn.1401833ec
jmp 0x1401372ab
cmp byte [rax + 0x28], 0
je 0x1401370c8
jmp 0x140137f86
call fcn.14013c6d0
cmp rdi, r12
jle 0x140136dcf
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, qword [rsp + 0x68]
call fcn.1400dce10
jmp 0x140136dcf
lea rcx, [0x1402b6b58]
call fcn.140183590
cmp dword [0x1402b6b58], 0xffffffff
jne 0x140137127
mov rcx, qword [0x1402b6668]
test rcx, rcx
je 0x14013737e
lea rdx, str.enable_background_thread_pool
call fcn.140167240
mov byte [0x1402b6b54], 1
lea rcx, [0x1402b6b58]
call fcn.1401835f8
jmp 0x140137127
mov rax, qword [rsp + 0x180]
jmp 0x1401370bf
mov r8d, 0xa
lea rdx, [rsp + 0x1d0]
call fcn.14010a4f0
jmp 0x140136ecf
lea r13, [rsp + 0x118]
mov rcx, r13
call qword [0x1402c9008]
mov rax, qword [r13]
jmp 0x140136fd4
mov rax, qword [rsp + 0x68]
mov rcx, qword [rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x140136dcf
jmp 0x140137306
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x14013740c
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
lea r15, [rsp + 0x178]
jmp 0x1401370f0
mov rdx, qword [rsp + 0x68]
call fcn.140015060
jmp 0x140136dcf
mov ebp, 3
jmp 0x1401369c8
lea rdi, [rsp + 0x170]
mov rcx, rdi
call fcn.140106270
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, [0x1402a99c0]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14013ac20
test byte [0x1402a99c0], 0x19
je 0x140137595
lea rdi, [rsp + 0x170]
mov rcx, rdi
call fcn.140106270
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, [0x1402a99c0]
lea r8, str.WorkerThread_dead
mov cl, 0x49
xor r9d, r9d
call fcn.14013ac20
jmp 0x140137595
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x1402c9008]
jmp 0x14013756e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14013753d
call sub.KERNEL32.dll_WakeConditionVariable
jmp 0x140137558
mov rbx, qword [rsi + 0x48]
mov rcx, qword [rbx + 0x18]
mov qword [rbx + 0x18], 0
test rcx, rcx
je 0x140137528
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [0x1402c9008]
mov rdi, qword [rbx + 0x30]
add rdi, 0x28
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401374f0
mov rax, qword [rbx + 0x30]
inc qword [rax + 0x170]
mov rax, qword [rbx + 0x30]
mov rcx, qword [rax + 0x178]
test rcx, rcx
jne 0x1401374fb
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsi + 0x60]
test rcx, rcx
jne 0x1401374e1
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
jne 0x140137608
test byte [0x1402a99c0], 0x19
mov rsi, qword [rsp + 0x78]
jne 0x140137432
test rsi, rsi
je 0x1401375b9
mov rax, qword [rsi + 8]
mov rcx, rsi
call qword [0x1402c9008]
lock dec dword [rsi]
jne 0x1401375b9
mov rax, qword [rsi + 0x10]
mov rcx, rsi
call qword [0x1402c9008]
mov rcx, qword [rsp + 0x1f8]
xor rcx, rsp
call fcn.140186020
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 0x140137583
mov rcx, rdi
call fcn.1401c2fc0
mov rcx, rdi
call fcn.1401833ec
jmp 0x140137583
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14013699d
lea rcx, [0x1402b9210]
call fcn.140183590
cmp dword [0x1402b9210], 0xffffffff
jne 0x140136b62
mov rax, qword [rsp + 0x118]
mov qword [0x1402b9208], rax
lea rcx, [0x1402b9210]
call fcn.1401835f8
jmp 0x140136b62
lea rcx, [0x1402b9200]
call fcn.140183590
cmp dword [0x1402b9200], 0xffffffff
jne 0x140136aba
lea rcx, str.2T__
call fcn.14013c8d0
mov byte [0x1402b91fc], al
lea rcx, [0x1402b9200]
call fcn.1401835f8
jmp 0x140136aba
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140136a32
xor eax, eax
jmp 0x140136c30
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140137740
lea rcx, [rsp + 0x170]
call qword [0x1402c9008]
jmp 0x140137748
mov rax, qword [0x1402aaf18]
lea rbx, [0x140181ca0]
cmp rax, rbx
jne 0x1401376e3
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 0x1401376bf
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
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, [0x1402a99c0]
lea r8, str.WorkerThread_born
mov cl, 0x49
xor r9d, r9d
call fcn.14013ac20
test byte [0x1402a99c0], 0x19
je 0x1401364f0
mov rax, qword [0x1402aaf18]
cmp rax, rbx
jne 0x140137838
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 0x140137848
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
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, [0x1402a99c0]
lea r8, str.WorkerThread_active
mov cl, 0x42
xor r9d, r9d
call fcn.14013ac20
jmp 0x1401364f0
lea rcx, [rsp + 0x170]
call qword [0x1402c9008]
jmp 0x1401377f1
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1401377e9
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x1401378f0
lea rcx, [rsp + 0x170]
call qword [0x1402c9008]
jmp 0x1401378f8
mov rax, qword [0x1402aaf18]
lea rcx, [0x140181ca0]
cmp rax, rcx
jne 0x140137893
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 0x14013786f
imul rax, rax, 0xf4240
cqo
idiv qword [0x1402b6458]
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, [0x1402a99c0]
lea r8, str.WorkerThread_active
mov cl, 0x45
xor r9d, r9d
call fcn.14013ac20
jmp 0x14013656a
mov rcx, rdi
call fcn.140167080
jmp 0x1401379ec
mov rbx, qword [0x1402b4900]
movapd xmm0, xmmword [0x14026cc70]
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, [0x1402a99c0]
lea r9, str.WorkerThread_active
mov rcx, rdi
mov dl, 0x42
call fcn.140138070
mov rdi, qword [rdi]
test rdi, rdi
je 0x140137a8c
xor rbx, 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 0x140137947
lea r14, [rsp + 0x120]
mov byte [rsp + 0x17e], 0xaa
mov dword [rsp + 0x17a], 0xaaaaaaaa
mov word [rsp + 0x170], 0x381
mov qword [rsp + 0x172], rbx
mov rcx, qword [rdi]
mov rax, qword [rcx + 0x18]
lea rdx, [rax + 0xa]
cmp rdx, qword [rcx + 0x10]
ja 0x140137aaf
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 [r14]
movups xmm1, xmmword [r14 + 9]
movupd xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x11], xmm1
call fcn.140138080
mov rcx, rdi
call fcn.140138080
mov rcx, qword [rsp + 0x100]
test rcx, rcx
je 0x140136589
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
jmp 0x140136589
lea rdx, [rsp + 0x170]
mov r8d, 0xa
call fcn.14010a4f0
jmp 0x140137a4b
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 0x1401369b3
jmp 0x140137502
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 0x140136a48
jmp 0x14013692c
lea r13, [rsp + 0xf0]
mov rcx, r13
call qword [0x1402c9008]
mov rbp, qword [r13]
jmp 0x140136d39
lea rcx, [rsp + 0x118]
call qword [0x1402c9008]
jmp 0x140136b3d
mov ecx, ebp
call fcn.1400154b0
mov dword [rsi + 0x6c], ebp
jmp 0x1401369d1
lea rcx, [rsp + 0x170]
call qword [0x1402c9008]
jmp 0x140136672
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140137b75
lea r13, [rbx + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140137b59
mov rcx, qword [rbx + 0x58]
call fcn.140124ea0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea r15, [rsp + 0x178]
jmp 0x1401367cd
lock dec dword [rcx + 8]
jne 0x140136963
mov edx, 1
call fcn.140132f10
jmp 0x140136963
int3
lock dec dword [r8 + 8]
jne 0x140136884
mov rcx, r8
mov edx, 1
call fcn.140132f10
jmp 0x140136884
lock dec dword [rcx + 8]
jne 0x140137bdd
mov edx, 1
call fcn.140132f10
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
lea r15, [rsp + 0x178]
je 0x1401368c1
lock dec dword [rcx + 8]
je 0x140137c35
mov rcx, qword [rsp + 0x170]
test rcx, rcx
lea r15, [rsp + 0x178]
je 0x1401368c1
jmp 0x140138055
mov edx, 1
call fcn.140132f10
jmp 0x140137c17
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x140136867
mov qword [rsp + 0xc0], 0
lea r13, [rsp + 0x118]
mov rdx, r13
call fcn.140014220
mov r8, qword [r13]
jmp 0x14013687b
lea rax, [r14 + r8]
add rax, 2
lea r9, [r14 + 1]
cmp rax, 1
jbe 0x140137c96
lea r15, [rsp + 0x178]
jmp 0x140136bb5
cmp r8, r12
lea r15, [rsp + 0x178]
je 0x140136bb5
int3
lea rcx, [r14 + r9]
add rcx, 2
mov r12, r14
cmp rcx, 1
ja 0x140136c4f
mov r12, r14
cmp r9, rax
je 0x140136c4f
int3
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140136b35
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
mov rbp, rax
add rbp, r8
jmp 0x140136d39
mov rcx, r13
call fcn.1400dc910
mov rdx, qword [rsp + 0x80]
jmp 0x140137076
mov rcx, rbp
call fcn.140167080
jmp 0x140136e75
mov r15, qword [0x1402b4900]
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, [0x1402aa2c0]
lea r9, str.WaitableEvent::Wait_Complete
mov rcx, rbp
mov dl, 0x49
call fcn.140138070
mov rcx, qword [rbp]
test rcx, rcx
je 0x140137df0
xor r15, qword [rsp + 0x68]
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 ebx, ebx
mov qword [rbp + 0x18], rbx
mov byte [rbp + 0x20], al
mov edx, 0x30
mov r8, r15
call fcn.140170590
lea rcx, [rsp + 0x118]
mov qword [rcx], rbx
mov qword [rbp], rbx
movupd xmm0, xmmword [rbp + 8]
movups xmm1, xmmword [rbp + 0x11]
movupd xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x11], xmm1
call fcn.140138080
mov rcx, rbp
call fcn.140138080
mov rcx, qword [rsp + 0x1e0]
test rcx, rcx
je 0x140137e0a
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
lea r15, [rsp + 0x178]
jmp 0x140136db8
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401366d5
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1401366f9
lock dec dword [r13]
jne 0x140137e7f
mov rax, qword [r13 + 0x10]
mov rcx, r13
call qword [0x1402c9008]
jmp 0x140137e7f
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x60], rbx
jb 0x140137f4f
mov r15, rcx
mov rax, qword [rsp + 0x70]
mov r13, qword [rax + rbx*8]
mov qword [rax + rbx*8], 0
mov rax, qword [r13 + 8]
mov rcx, r13
call qword [0x1402c9008]
test r13, r13
jne 0x140137e33
inc rbx
xor eax, eax
cmp rbx, qword [rsp + 0x60]
cmove rbx, rax
mov rax, qword [rsp + 0x58]
cmp rbx, rax
mov rcx, r15
jne 0x140137e49
cmp rax, rcx
jbe 0x140138002
mov rax, qword [rsp + 0x60]
cmp rax, qword [rsp + 0x58]
jb 0x140137f52
cmp r15, qword [rsp + 0x58]
jg 0x140137f55
mov rbx, qword [rsp + 0x58]
shl rbx, 3
mov rax, r15
shl rax, 3
mov r15, rax
mov rcx, qword [rsp + 0x70]
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x140137ef0
mov rax, r15
add rax, 8
cmp rbx, rax
jne 0x140137ece
jmp 0x140136743
lock dec dword [rcx]
jne 0x140137edf
mov rax, qword [rcx + 0x10]
call qword [0x1402c9008]
jmp 0x140137edf
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x14013666a
mov rcx, qword [0x1402b6458]
cqo
idiv rcx
imul r8, rax, 0xf4240
imul rax, rdx, 0xf4240
cqo
idiv rcx
add rax, r8
jmp 0x140136fd4
int3
int3
int3
int3
int3
int3
xor edi, edi
ucomisd xmm0, qword [0x140260040]
cmovae rdi, r14
jmp 0x140136a84
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [0x1402c9008]
jmp 0x1401364fd
mov r13, qword [rax + 0x38]
mov qword [rax + 0x38], 0
test r13, r13
je 0x1401370c8
lock dec dword [r13]
jne 0x1401370c8
mov rcx, r13
call fcn.14000d0d0
mov rcx, r13
call fcn.1401833ec
jmp 0x1401370c8
cmp qword [rsp + 0x58], 0
js 0x140137f5e
mov r13, qword [rsp + 0x58]
je 0x140136743
shl r13, 3
xor ebx, ebx
jmp 0x140137fed
mov rax, qword [rcx + 0x10]
call qword [0x1402c9008]
add rbx, 8
cmp r13, rbx
je 0x140136743
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + rbx]
test rcx, rcx
je 0x140137fe0
lock dec dword [rcx]
je 0x140137fd6
jmp 0x140137fe0
cmp qword [rsp + 0x60], r15
jb 0x140137f58
jl 0x140137f5b
je 0x140137fbb
shl qword [rsp + 0x60], 3
shl r15, 3
jmp 0x140138040
mov rax, qword [rcx + 0x10]
call qword [0x1402c9008]
mov rax, r15
add rax, 8
mov r15, rax
cmp qword [rsp + 0x60], rax
je 0x140137fbb
mov rax, qword [rsp + 0x70]
mov rcx, qword [rax + r15]
test rcx, rcx
je 0x14013802b
lock dec dword [rcx]
je 0x140138021
jmp 0x14013802b
lock dec dword [rcx + 8]
jne 0x1401368c1
mov edx, 1
call fcn.140132f10
jmp 0x1401368c1