Function at 0x140073a90
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2f8
movaps xmmword [rsp + 0x2e0], xmm6
mov rdi, r8
mov rsi, rdx
mov rbx, rcx
mov rax, qword [0x140139028]
xor rax, rsp
mov qword [rsp + 0x2d8], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0xd]
and eax, 0x7f
mov r13b, 1
cmp eax, 1
jne 0x1400749f1
mov rax, qword [rbx + 0x10]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x140074d72
mov qword [rsp + 0x38], rsi
movabs rbp, 0xfffffffc00000000
movaps xmm6, xmmword [0x140118af0]
movaps xmmword [rsp + 0x250], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x2d0], rax
movaps xmmword [rsp + 0x2c0], xmm6
movaps xmmword [rsp + 0x2b0], xmm6
movaps xmmword [rsp + 0x2a0], xmm6
movaps xmmword [rsp + 0x290], xmm6
movaps xmmword [rsp + 0x280], xmm6
movaps xmmword [rsp + 0x270], xmm6
movaps xmmword [rsp + 0x260], xmm6
mov byte [rsp + 0x250], 0
mov byte [rsp + 0x2d0], 0
mov dword [rsp + 0x58], 0x102
mov byte [rsp + 0x5c], 0
mov r14, qword [rdi]
mov rax, r14
and rax, rbp
cmp rax, qword [0x14013b508]
jne 0x140073b91
mov rcx, r14
call fcn.14005e8f0
mov qword [rsp + 0x60], r14
add r14, 0x18
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140074c17
test r13b, r13b
mov dword [rsp + 0x28], r13d
je 0x140074e6c
mov r14, qword [rdi]
mov rax, qword [r14]
mov rax, qword [rax + 0x40]
lea rcx, [0x14009d230]
cmp rax, rcx
jne 0x1400749d6
lea r15, [r14 + 0x18]
mov rsi, r15
and rsi, rbp
cmp rsi, qword [0x14013b508]
jne 0x140073bee
mov rcx, r15
call fcn.14005e8f0
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x160], xmm6
movaps xmmword [rsp + 0x150], xmm6
movaps xmmword [rsp + 0x140], xmm6
mov rax, qword [r14 + 0x58]
lea r13, [r14 + 0x68]
cmp rax, qword [r14 + 0x60]
je 0x140074e1c
lea r12, [r14 + 0x48]
mov rcx, qword [r14 + 0x70]
cmp rcx, qword [r14 + 0x78]
jne 0x140074dce
cmp qword [r14 + 0x50], rax
jb 0x140074d46
mov rcx, qword [r14 + 0x48]
shl rax, 7
movups xmm0, xmmword [rcx + rax]
movups xmm1, xmmword [rcx + rax + 0x10]
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rcx + rax + 0x20]
movups xmm1, xmmword [rcx + rax + 0x30]
movups xmm2, xmmword [rcx + rax + 0x40]
movups xmm3, xmmword [rcx + rax + 0x50]
movaps xmmword [rsp + 0x160], xmm0
movaps xmmword [rsp + 0x170], xmm1
movaps xmmword [rsp + 0x180], xmm2
movaps xmmword [rsp + 0x190], xmm3
movups xmm0, xmmword [rcx + rax + 0x60]
movaps xmmword [rsp + 0x1a0], xmm0
mov rdx, qword [rcx + rax + 0x6d]
mov qword [rsp + 0x1ad], rdx
mov rdx, qword [rcx + rax + 0x78]
mov qword [rsp + 0x1b8], rdx
mov qword [rcx + rax + 0x78], 0
mov rcx, qword [r14 + 0x50]
mov rax, qword [r14 + 0x58]
lea rdx, [rax + 1]
cmp rcx, rdx
mov r13d, dword [rsp + 0x28]
jb 0x140074d49
cmp rcx, rax
jb 0x140074d4c
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140074d4f
mov rdx, qword [r12]
shl rax, 7
mov rcx, qword [rdx + rax + 0x78]
mov qword [rdx + rax + 0x78], 0
test rcx, rcx
jne 0x140074abf
mov rax, qword [r14 + 0x50]
mov rcx, qword [r14 + 0x58]
inc rcx
xor edx, edx
cmp rcx, rax
cmovne rdx, rcx
mov qword [r14 + 0x58], rdx
cmp rax, 5
jae 0x140074b05
mov rax, qword [r14 + 0x58]
cmp rax, qword [r14 + 0x60]
jne 0x14007499a
mov rcx, qword [r14 + 0x70]
cmp rcx, qword [r14 + 0x78]
jne 0x140074ea3
cmp rsi, qword [0x14013b508]
jne 0x140073d85
mov rcx, r15
call fcn.14005ea50
movaps xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmm2, xmmword [rsp + 0x160]
movaps xmm3, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x1d0], xmm1
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1e0], xmm2
movaps xmmword [rsp + 0x1f0], xmm3
movaps xmm0, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0x200], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x210], xmm0
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x220], xmm0
mov rax, qword [rsp + 0x1ad]
mov qword [rsp + 0x22d], rax
mov rax, qword [rsp + 0x1b8]
mov qword [rsp + 0x238], rax
mov qword [rsp + 0x1b8], 0
mov byte [rsp + 0x240], 1
mov al, 1
movzx ecx, byte [rsp + 0x2d0]
cmp cl, al
je 0x140074d82
test cl, cl
jne 0x140074db1
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmm1, xmmword [rsp + 0x1d0]
movaps xmm2, xmmword [rsp + 0x1e0]
movaps xmm3, xmmword [rsp + 0x1f0]
movaps xmmword [rsp + 0x260], xmm1
movaps xmmword [rsp + 0x250], xmm0
movaps xmmword [rsp + 0x270], xmm2
movaps xmmword [rsp + 0x280], xmm3
movaps xmm0, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0x290], xmm0
movaps xmm0, xmmword [rsp + 0x210]
movaps xmmword [rsp + 0x2a0], xmm0
movaps xmm0, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x2b0], xmm0
mov rax, qword [rsp + 0x22d]
mov qword [rsp + 0x2bd], rax
mov rax, qword [rsp + 0x238]
mov qword [rsp + 0x2c8], rax
mov qword [rsp + 0x238], 0
mov byte [rsp + 0x2d0], 1
cmp byte [rsp + 0x240], 0
je 0x140073f0e
mov rcx, qword [rsp + 0x238]
mov qword [rsp + 0x238], 0
test rcx, rcx
jne 0x140074a4f
test r13b, r13b
je 0x140073f30
mov rcx, qword [rsp + 0x1b8]
mov qword [rsp + 0x1b8], 0
test rcx, rcx
jne 0x140074a87
mov rcx, qword [rsp + 0x60]
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x58], eax
movzx eax, byte [rcx + 0x10]
mov byte [rsp + 0x5c], al
test rcx, rcx
jne 0x140074316
cmp byte [rsp + 0x2d0], 0
je 0x140074614
cmp qword [rsp + 0x278], 0
jne 0x140074c25
mov r14, qword [rdi]
movaps xmm0, xmmword [rsp + 0x250]
movaps xmm1, xmmword [rsp + 0x260]
movaps xmm2, xmmword [rsp + 0x270]
movaps xmm3, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0xd0], xmm1
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xf0], xmm3
movaps xmm0, xmmword [rsp + 0x290]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rsp + 0x2a0]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [rsp + 0x2b0]
movaps xmmword [rsp + 0x120], xmm0
mov rax, qword [rsp + 0x2bd]
mov qword [rsp + 0x12d], rax
mov rax, qword [rsp + 0x2c8]
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x2c8], 0
mov rax, qword [rbx]
mov rax, qword [rax + 8]
lea rcx, [0x140100fd0]
cmp rax, rcx
jne 0x140074e4e
movaps xmmword [rsp + 0xb0], xmm6
movaps xmmword [rsp + 0xa0], xmm6
mov rax, qword [r14]
mov rax, qword [rax]
lea rcx, [0x14009d850]
cmp rax, rcx
jne 0x1400742e2
lea r12, [r14 + 0xa0]
mov rax, r12
and rax, rbp
cmp dword [r14 + 0x30], 2
mov ecx, dword [r14 + 0x38]
mov r15, qword [r14 + 0x40]
mov dword [rsp + 0xa0], ecx
mov rcx, qword [0x14013b508]
je 0x140074a13
cmp rax, rcx
jne 0x140074081
mov rcx, r12
call fcn.14005e8f0
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0xb0], 0
mov rax, r15
and rax, rbp
cmp rax, qword [0x14013b508]
jne 0x1400740ac
mov rcx, r15
call fcn.14005e8f0
mov qword [rsp + 0xb8], r15
mov qword [rsp + 0x30], rbx
movzx r15d, byte [rsp + 0x59]
test r15b, 0x7f
je 0x1400742f8
mov ecx, dword [r14 + 0x30]
mov eax, dword [rsp + 0xa0]
mov edx, dword [0x140147910]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea r12, [rdx + 0x198]
mov r8d, dword [rdx + 0x198]
mov dword [rsp + 0x44], r8d
lea rsi, [rdx + 0x194]
mov ebx, dword [rdx + 0x194]
cmp ebx, 0xffffffff
je 0x140074c75
mov edx, dword [0x140147910]
mov r8, qword gs:[0x58]
mov r13, qword [r8 + rdx*8]
movzx edx, byte [r13 + 0x19c]
mov byte [rsp + 0x2f], dl
mov edx, 1
lock xadd dword [0x140150a94], edx
cmp ecx, 2
mov dword [r12], edx
mov dword [rsi], eax
sete byte [r13 + 0x19c]
movzx eax, byte [rsp + 0x58]
movzx ecx, byte [r13 + 0x180]
mov byte [rsp + 0x2e], cl
mov byte [r13 + 0x180], al
movaps xmmword [rsp + 0x80], xmm6
movaps xmmword [rsp + 0x90], xmm6
mov byte [rsp + 0x80], 0
mov byte [rsp + 0x98], 0
mov rax, qword [rsp + 0xa8]
test rax, rax
jne 0x1400741ac
xorps xmm0, xmm0
lea rax, [rsp + 0x80]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov byte [rax + 0x18], 1
mov ecx, dword [0x140147910]
mov rdx, qword gs:[0x58]
mov rbp, qword [rdx + rcx*8]
mov rcx, qword [rbp + 0x178]
mov qword [rsp + 0x48], rcx
mov qword [rbp + 0x178], rax
movaps xmmword [rsp + 0x60], xmm6
movaps xmmword [rsp + 0x70], xmm6
mov byte [rsp + 0x60], 0
mov byte [rsp + 0x78], 0
movaps xmmword [rsp + 0x1c0], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1f0], rax
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1d0], xmm6
mov byte [rsp + 0x1c0], 0
mov byte [rsp + 0x1f0], 0
mov rax, qword [rsp + 0xb8]
test rax, rax
jne 0x14007444c
mov rax, qword [rsp + 0xb0]
test rax, rax
je 0x14007449b
mov ecx, 1
mov edx, 1
lock xadd dword [rax + 8], edx
cmp edx, 0x7fffffff
je 0x140074e93
mov edx, dword [0x140147910]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x130]
lea r8, [rsp + 0x1c0]
mov qword [r8], rdx
mov r9, qword [rdx]
mov qword [rdx], r8
mov qword [r8 + 8], r9
mov qword [r8 + 0x10], rax
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x140074e96
lea rcx, [rsp + 0x1f0]
lea rdx, [rsp + 0x1d8]
mov r8d, dword [0x140147910]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
lea r8, [r8 + 0x148]
mov qword [rdx], r8
mov r9, qword [r8]
mov qword [r8], rdx
mov qword [rdx + 8], r9
mov qword [rdx + 0x10], rax
jmp 0x140074498
lea rdx, [rsp + 0xa0]
mov rcx, r14
call qword [0x14012df48]
jmp 0x1400740b4
mov eax, dword [0x140147910]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
inc dword [rax + 0x190]
jmp 0x1400740c9
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x60]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x14013b508]
jne 0x140073f4d
call fcn.14005ea50
jmp 0x140073f4d
mov rcx, qword [rsp + 0x1e8]
test rcx, rcx
je 0x140074359
lock dec dword [rcx + 8]
je 0x140074e99
mov rax, qword [rsp + 0x1d8]
test rax, rax
je 0x140074371
mov rcx, qword [rsp + 0x1e0]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x1d0]
test rcx, rcx
je 0x140074388
lock dec dword [rcx + 8]
je 0x140074c0d
mov rax, qword [rsp + 0x1c0]
test rax, rax
je 0x1400744fe
mov rcx, qword [rsp + 0x1c8]
mov qword [rax], rcx
jmp 0x1400744fe
test eax, eax
jne 0x1400744d3
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xc0]
lea r8, [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
mov r9, r14
call fcn.140075b80
jmp 0x1400744d3
cmp eax, 2
jne 0x1400743a9
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xc0]
lea r8, [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
mov r9, r14
call fcn.1400758c0
jmp 0x1400744d3
mov eax, dword [0x140147910]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
dec dword [rax + 0x190]
jmp 0x140074582
call fcn.14005ea50
jmp 0x1400745cf
mov r14, qword [rsp + 0x80]
test r14, r14
je 0x140074552
jmp 0x140074b57
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x140074da4
lea rcx, [rsp + 0x78]
mov edx, dword [0x140147910]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x148]
mov qword [rcx - 0x18], rdx
mov r8, qword [rdx]
lea r9, [rsp + 0x60]
mov qword [rdx], r9
mov qword [r9 + 8], r8
mov qword [r9 + 0x10], rax
mov byte [rcx], 1
movzx eax, byte [rsp + 0x59]
and eax, 0x7f
cmp eax, 1
jne 0x1400743dd
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xc0]
lea r8, [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
mov r9, r14
call fcn.140075090
mov r14, qword [rsp + 0x138]
mov qword [rsp + 0x138], 0
test r14, r14
jne 0x140074bb6
cmp byte [rsp + 0x1f0], 0
jne 0x140074342
lea r14, [rbp + 0x178]
cmp byte [rsp + 0x78], 0
movabs rbp, 0xfffffffc00000000
je 0x14007453c
mov rcx, qword [rsp + 0x70]
test rcx, rcx
je 0x14007452a
lock dec dword [rcx + 8]
je 0x140074da7
mov rax, qword [rsp + 0x60]
test rax, rax
je 0x14007453c
mov rcx, qword [rsp + 0x68]
mov qword [rax], rcx
mov rax, qword [rsp + 0x48]
mov qword [r14], rax
cmp byte [rsp + 0x98], 0
jne 0x140074436
lea rax, [r13 + 0x19c]
lea rcx, [r13 + 0x180]
movzx edx, byte [rsp + 0x2e]
mov byte [rcx], dl
mov ecx, dword [rsp + 0x44]
mov dword [r12], ecx
mov dword [rsi], ebx
movzx ecx, byte [rsp + 0x2f]
mov byte [rax], cl
test r15b, 0x7f
je 0x14007440e
mov rcx, qword [rsp + 0xb8]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x14013b508]
mov rbx, qword [rsp + 0x30]
mov r13d, dword [rsp + 0x28]
jne 0x1400745a8
call fcn.14005ea50
mov qword [rsp + 0xb8], 0
mov rcx, qword [rsp + 0xb0]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x14013b508]
je 0x14007442c
mov qword [rsp + 0xb0], 0
mov rcx, qword [rsp + 0xa8]
mov rax, rcx
and rax, rbp
cmp rax, qword [0x14013b508]
jne 0x1400745f7
call fcn.14005ea50
mov rcx, qword [rsp + 0x138]
mov qword [rsp + 0x138], 0
test rcx, rcx
jne 0x140074872
test r13b, r13b
je 0x14007463c
mov rax, qword [rdi]
movzx eax, byte [rax + 0xd]
and al, 0x7f
cmp al, 1
jne 0x14007463c
mov rax, qword [rbx + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x140074d05
mov r14, qword [rdi]
mov rax, qword [r14]
mov rax, qword [rax + 0x48]
lea rcx, [0x14009d640]
cmp rax, rcx
jne 0x1400747cf
lea rbx, [r14 + 0x18]
mov rsi, rbx
and rsi, rbp
cmp rsi, qword [0x14013b508]
je 0x1400747b9
test rbx, rbx
je 0x140074683
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140074c89
cmp rsi, qword [0x14013b508]
jne 0x140074694
mov rcx, rbx
call fcn.14005e8f0
mov byte [r14 + 0x98], 0
mov rax, qword [r14 + 0x58]
mov bpl, 1
cmp rax, qword [r14 + 0x60]
jne 0x1400746d0
mov rax, qword [r14 + 0x70]
cmp rax, qword [r14 + 0x78]
jne 0x1400746d0
mov byte [r14 + 0x99], 0
mov rcx, qword [r14 + 0x40]
test rcx, rcx
je 0x1400746ce
lock dec dword [rcx + 8]
je 0x1400748aa
xor ebp, ebp
cmp rsi, qword [0x14013b508]
jne 0x1400746e1
mov rcx, rbx
call fcn.14005ea50
test rbx, rbx
mov r14, qword [rsp + 0x38]
je 0x1400746f4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rsi, qword [0x14013b508]
jne 0x140074705
mov rcx, rbx
call fcn.14005ea50
test bpl, bpl
movabs rbp, 0xfffffffc00000000
jne 0x1400747e7
xorps xmm0, xmm0
movups xmmword [r14], xmm0
cmp byte [rsp + 0x2d0], 0
je 0x140074746
mov rcx, qword [rsp + 0x2c8]
mov qword [rsp + 0x2c8], 0
test rcx, rcx
jne 0x140074803
mov rbx, qword [rdi]
test rbx, rbx
jne 0x14007483b
mov qword [rdi], 0
test rbx, rbx
jne 0x140074863
mov rcx, qword [rdi + 8]
and rbp, rcx
cmp rbp, qword [0x14013b508]
je 0x140074d3c
mov qword [rdi + 8], 0
mov rcx, qword [rdi]
test rcx, rcx
jne 0x140074d52
mov rcx, qword [rsp + 0x2d8]
xor rcx, rsp
call fcn.1400a19c0
mov rax, r14
movaps xmm6, xmmword [rsp + 0x2e0]
add rsp, 0x2f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.14005e8f0
test rbx, rbx
je 0x140074683
jmp 0x140074672
mov rcx, r14
xor edx, edx
call qword [0x14012df48]
test al, al
mov r14, qword [rsp + 0x38]
je 0x140074718
mov rax, qword [rdi]
mov qword [r14], rax
xor eax, eax
mov qword [rdi], rax
mov rcx, qword [rdi + 8]
mov qword [r14 + 8], rcx
mov qword [rdi + 8], rax
jmp 0x14007471f
lock dec dword [rcx]
jne 0x140074812
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
mov rcx, qword [rsp + 0x2c8]
test rcx, rcx
je 0x140074746
lock dec dword [rcx]
jne 0x140074746
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140074746
mov r13, qword [rdi + 8]
test r13, r13
je 0x140074752
mov qword [rdi], 0
mov al, byte [rbx + 0xd]
and al, 0x7f
cmp al, 2
je 0x140074c97
lock dec dword [r13 + 0x18]
je 0x1400748b4
lock dec dword [rbx + 8]
jne 0x140074762
jmp 0x140074c63
lock dec dword [rcx]
jne 0x140074881
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
mov rcx, qword [rsp + 0x138]
test rcx, rcx
je 0x140074614
lock dec dword [rcx]
jne 0x140074614
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140074614
call fcn.140075370
jmp 0x1400746ce
lea r15, [r13 + 0x20]
mov rax, rbp
mov rbp, r15
and rbp, rax
cmp rbp, qword [0x14013b508]
jne 0x1400748d2
mov rcx, r15
call fcn.140058e70
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140074ce9
mov rcx, qword [r13 + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [0x14013b508]
cmp rbp, rax
jne 0x140074911
mov rcx, r15
call fcn.140058fd0
mov rax, qword [0x14013b508]
cmp rbp, rax
jne 0x14007491e
mov rcx, r15
call fcn.140058e70
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140074cf7
mov r14, qword [r13 + 0x30]
mov rax, qword [r13 + 0x38]
mov qword [rsp + 0x30], rax
xorps xmm0, xmm0
movups xmmword [r13 + 0x30], xmm0
mov r12, qword [r13 + 0x40]
mov rsi, qword [r13 + 0x48]
movups xmmword [r13 + 0x40], xmm0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rbp, qword [0x14013b508]
jne 0x14007496b
mov rcx, r15
call fcn.140058fd0
cmp r12, rsi
movabs rbp, 0xfffffffc00000000
jne 0x140074f50
lea rcx, fcn.140063060
mov rdx, r14
xor r8d, r8d
call fcn.140061980
mov r14, qword [rsp + 0x38]
jmp 0x140074759
mov rcx, qword [r14 + 0x70]
cmp rcx, qword [r14 + 0x78]
jne 0x140074efb
cmp qword [r14 + 0x50], rax
jb 0x140074e90
mov rcx, qword [r14 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
mov qword [r14 + 0x88], rax
mov qword [r14 + 0x90], 0
jmp 0x140073d74
lea rdx, [rsp + 0x140]
lea r8, [rsp + 0x60]
mov rcx, r14
call qword [0x14012df48]
jmp 0x140073d85
cmp eax, 2
je 0x140073af2
test eax, eax
jne 0x140074d6b
mov rax, qword [rbx + 0x10]
mov eax, dword [rax]
test al, 1
sete r13b
jmp 0x140073af2
cmp rax, rcx
jne 0x140074a20
mov rcx, r12
call fcn.14005e8f0
mov qword [rsp + 0xa8], r12
mov rax, r15
and rax, rbp
cmp rax, qword [0x14013b508]
jne 0x140074a3f
mov rcx, r15
call fcn.14005e8f0
mov qword [rsp + 0xb0], r15
xor r15d, r15d
jmp 0x1400740ac
lock dec dword [rcx]
jne 0x140074a5e
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
mov rcx, qword [rsp + 0x238]
test rcx, rcx
je 0x140073f0e
lock dec dword [rcx]
jne 0x140073f0e
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140073f0e
lock dec dword [rcx]
jne 0x140074a96
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
mov rcx, qword [rsp + 0x1b8]
test rcx, rcx
je 0x140073f30
lock dec dword [rcx]
jne 0x140073f30
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140073f30
mov r13, rbx
lea rbx, [rdx + rax]
add rbx, 0x78
lock dec dword [rcx]
jne 0x140074ad9
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
mov rcx, qword [rbx]
test rcx, rcx
mov rbx, r13
mov r13d, dword [rsp + 0x28]
je 0x140073d36
lock dec dword [rcx]
jne 0x140073d36
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140073d36
mov r8, qword [r14 + 0x60]
xor ecx, ecx
cmp rdx, r8
cmova rcx, rax
sub rcx, rdx
add rcx, r8
dec rax
mov rdx, rax
sub rdx, rcx
cmp rdx, rcx
jb 0x140073d58
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x140073d58
mov rcx, r12
call fcn.140006710
jmp 0x140073d58
mov rcx, qword [rsp + 0x88]
mov rax, r14
cmp rcx, r14
je 0x140074ba1
mov rbp, rcx
add rbp, 0xffffffffffffffe8
je 0x140074f4d
mov rax, qword [rcx - 8]
test rax, rax
je 0x140074b87
add rcx, 0xfffffffffffffff0
call qword [0x14012df48]
mov rcx, rbp
cmp rbp, r14
jne 0x140074b6a
mov rax, qword [rsp + 0x80]
movabs rbp, 0xfffffffc00000000
mov qword [rsp + 0x88], r14
mov rcx, rax
call fcn.14009f888
jmp 0x140074552
lock dec dword [r14]
jne 0x1400744f0
mov rax, qword [r14 + 0x10]
lea rcx, [0x1400f3460]
cmp rax, rcx
je 0x140074bde
mov rcx, r14
call qword [0x14012df48]
jmp 0x1400744f0
mov rcx, qword [r14 + 0x28]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14013b508]
jne 0x140074c00
call fcn.140058fd0
mov rcx, r14
call fcn.14009f888
jmp 0x1400744f0
call fcn.140075370
jmp 0x140074388
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140073bab
mov rax, qword [rbx + 0x10]
mov eax, dword [rax]
test al, 1
je 0x140073f6a
lea r14, [rsp + 0x2c8]
mov rax, qword [r14]
mov qword [r14], 0
lea rdx, [rsp + 0x50]
mov qword [rdx], rax
mov rcx, r14
call fcn.1400d3110
cmp byte [r14 + 8], 0
jne 0x140073f6a
int3
mov rcx, rbx
mov edx, 1
call fcn.140070c50
jmp 0x140074762
mov ebx, 1
lock xadd dword [0x140150a90], ebx
mov dword [rsi], ebx
jmp 0x140074110
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140074683
mov rax, qword [r13 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x14007485c
lea r14, [rsp + 0x250]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r14], rax
lea rdx, [r13 + 0x50]
mov rcx, r14
call fcn.14005c800
mov rcx, qword [r13 + 0x58]
call fcn.14007e8b0
mov rcx, r14
mov r14, qword [rsp + 0x38]
call fcn.14005c7b0
jmp 0x14007485c
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400748e3
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007492f
lea r14, [rsp + 0x1c0]
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [r14], rax
lea rdx, [rbx + 0x50]
mov rcx, r14
call fcn.14005c800
mov rcx, qword [rbx + 0x58]
call fcn.14007e8b0
mov rcx, r14
call fcn.14005c7b0
jmp 0x14007463c
call fcn.14005ea50
jmp 0x140074776
int3
int3
int3
int3
lock dec dword [rcx + 8]
jne 0x14007478a
mov edx, 1
call fcn.140070c50
jmp 0x14007478a
call fcn.1400d3d30
jmp 0x140074d7a
mov rcx, rbx
call fcn.1401014b0
xor r13d, r13d
jmp 0x140073af2
test cl, cl
je 0x140073f0e
lea rcx, [rsp + 0x250]
lea rdx, [rsp + 0x1c0]
call fcn.14009d180
jmp 0x140073ee7
int3
call fcn.140075370
jmp 0x14007452a
lea r14, [rsp + 0x250]
mov rcx, r14
call fcn.14009f5e0
mov byte [r14 + 0x80], 0
jmp 0x140073ee7
lea rdx, [rsp + 0x1c0]
call fcn.14009f690
mov rax, qword [r14 + 0x58]
cmp qword [r14 + 0x50], rax
jb 0x140074ff3
mov rcx, qword [r12]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
cmp rax, qword [rsp + 0x1c0]
jg 0x140074e39
lea rdx, [rsp + 0x140]
mov rcx, r14
call fcn.1401017b0
movabs rbp, 0xfffffffc00000000
jmp 0x140074e2f
lea rdx, [rsp + 0x140]
mov rcx, r13
xor r8d, r8d
call fcn.1401027a0
mov r13d, dword [rsp + 0x28]
jmp 0x140073d58
lea rdx, [rsp + 0x140]
mov rcx, r13
xor r8d, r8d
call fcn.1401027a0
jmp 0x140074e10
lea rdx, [rsp + 0xc0]
lea r9, [rsp + 0x58]
mov rcx, rbx
mov r8, r14
call qword [0x14012df48]
jmp 0x140074614
lea r14, [rsp + 0x1c0]
lea r8, [rsp + 0x60]
mov rcx, rdi
mov rdx, r14
call fcn.140102980
mov al, byte [r14 + 0x80]
jmp 0x140073e2b
int3
int3
int3
call fcn.140075370
jmp 0x140074359
lea r12, [rsp + 0x1c0]
mov rdx, r12
call fcn.14009f690
mov rax, qword [r12]
mov qword [r14 + 0x88], rax
mov rcx, qword [r14 + 0x70]
cmp rcx, qword [r14 + 0x78]
je 0x140074ff6
lea r12, [rsp + 0xa0]
mov rdx, r12
call fcn.14009f630
mov rax, qword [r12]
mov qword [r14 + 0x90], rax
movabs rbp, 0xfffffffc00000000
mov r13d, dword [rsp + 0x28]
jmp 0x140073d74
lea rdx, [rsp + 0x80]
call fcn.14009f690
mov rax, qword [r14 + 0x58]
cmp qword [r14 + 0x50], rax
jb 0x140074ff9
mov rcx, qword [r14 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
mov rcx, qword [rsp + 0x80]
cmp rcx, rax
cmovl rax, rcx
mov qword [r14 + 0x88], rax
movabs rbp, 0xfffffffc00000000
mov r13d, dword [rsp + 0x28]
jmp 0x1400749c6
int3
xor r13d, r13d
mov rbp, r12
cmp qword [rsp + 0x30], rbp
jb 0x140074ffc
mov r15, qword [r14 + rbp*8]
test r15, r15
je 0x140074fff
mov qword [r14 + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x14012df48]
lock dec dword [r15]
jne 0x140074f96
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x14012df48]
inc rbp
cmp rbp, qword [rsp + 0x30]
cmove rbp, r13
cmp rbp, rsi
jne 0x140074f56
cmp rsi, r12
jbe 0x140075011
cmp qword [rsp + 0x30], rsi
jb 0x140075002
cmp r12, rsi
jg 0x140075005
shl rsi, 3
shl r12, 3
movabs rbp, 0xfffffffc00000000
mov rcx, qword [r14 + r12]
test rcx, rcx
jne 0x140074fe2
add r12, 8
cmp rsi, r12
je 0x14007497e
jmp 0x140074fca
lock dec dword [rcx]
jne 0x140074fd3
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
jmp 0x140074fd3
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp qword [rsp + 0x30], r12
jb 0x140075008
jl 0x14007500b
je 0x140075049
shl qword [rsp + 0x30], 3
shl r12, 3
mov rcx, qword [r14 + r12]
test rcx, rcx
je 0x14007503e
lock dec dword [rcx]
jne 0x14007503e
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
add r12, 8
cmp qword [rsp + 0x30], r12
jne 0x140075026
test rsi, rsi
js 0x14007500e
movabs rbp, 0xfffffffc00000000
je 0x14007497e
shl rsi, 3
xor r15d, r15d
mov rcx, qword [r14 + r15]
test rcx, rcx
je 0x14007507d
lock dec dword [rcx]
jne 0x14007507d
mov rax, qword [rcx + 0x10]
call qword [0x14012df48]
add r15, 8
cmp rsi, r15
jne 0x140075065
jmp 0x14007497e