Function at 0x14007acc0
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x318
movaps xmmword [rsp + 0x300], xmm6
mov r14, r8
mov qword [rsp + 0x48], rdx
mov r15, rcx
mov rax, qword [0x140140040]
xor rax, rsp
mov qword [rsp + 0x2f8], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0xd]
and eax, 0x7f
mov bpl, 1
cmp eax, 1
mov qword [rsp + 0x30], rcx
jne 0x14007bdac
mov rax, qword [r15 + 0x10]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x14007c1b1
movabs rbx, 0xfffffffc00000000
movaps xmm6, xmmword [0x14011ea30]
movaps xmmword [rsp + 0x270], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x2f0], rax
movaps xmmword [rsp + 0x2e0], xmm6
movaps xmmword [rsp + 0x2d0], xmm6
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
mov byte [rsp + 0x270], 0
mov byte [rsp + 0x2f0], 0
mov dword [rsp + 0x78], 0x102
mov byte [rsp + 0x7c], 0
mov rsi, qword [r14]
mov rax, rsi
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007adc3
mov rcx, rsi
call fcn.14005d330
mov qword [rsp + 0x80], rsi
add rsi, 0x18
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c054
test bpl, bpl
mov dword [rsp + 0x40], ebp
je 0x14007c1cf
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x40]
lea rcx, [0x14009da30]
cmp rax, rcx
jne 0x14007bcf5
lea r13, [r12 + 0x18]
mov r15, r13
and r15, rbx
cmp r15, qword [0x140142588]
jne 0x14007ae24
mov rcx, r13
call fcn.14005d1c0
movaps xmmword [rsp + 0x1d0], xmm6
movaps xmmword [rsp + 0x1c0], xmm6
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
mov rax, qword [r12 + 0x58]
lea rsi, [r12 + 0x68]
cmp rax, qword [r12 + 0x60]
je 0x14007c355
lea rbp, [r12 + 0x48]
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x14007c36d
cmp qword [r12 + 0x50], rax
jb 0x14007c28b
mov rcx, qword [r12 + 0x48]
shl rax, 7
add rax, rcx
add rax, 0x20
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
lea rdx, [rsp + 0x180]
movaps xmmword [rdx - 0x10], xmm1
movaps xmmword [rdx - 0x20], xmm0
mov ecx, 0xa
mov rdi, rdx
mov rsi, rax
rep movsq qword [rdi], qword [rsi]
mov cl, byte [rax + 0x54]
mov byte [rdx + 0x54], cl
mov ecx, dword [rax + 0x50]
mov dword [rdx + 0x50], ecx
mov rcx, qword [rax + 0x58]
mov qword [rdx + 0x58], rcx
mov qword [rax + 0x58], 0
mov rcx, qword [r12 + 0x50]
mov rax, qword [r12 + 0x58]
lea rdx, [rax + 1]
cmp rcx, rdx
jb 0x14007c28e
cmp rcx, rax
jb 0x14007c291
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x14007c294
mov rcx, qword [rbp]
shl rax, 7
mov rcx, qword [rcx + rax + 0x78]
test rcx, rcx
jne 0x14007be09
mov rax, qword [r12 + 0x50]
mov rcx, qword [r12 + 0x58]
inc rcx
xor edx, edx
cmp rcx, rax
cmovne rdx, rcx
mov qword [r12 + 0x58], rdx
cmp rax, 5
jae 0x14007bf5a
mov rax, qword [r12 + 0x58]
cmp rax, qword [r12 + 0x60]
jne 0x14007bc80
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
mov ebp, dword [rsp + 0x40]
jne 0x14007c455
cmp r15, qword [0x140142588]
mov r15, qword [rsp + 0x30]
jne 0x14007af93
mov rcx, r13
call fcn.14005d490
movaps xmm0, xmmword [rsp + 0x160]
movaps xmm1, xmmword [rsp + 0x170]
movaps xmm2, xmmword [rsp + 0x180]
movaps xmm3, xmmword [rsp + 0x190]
movaps xmmword [rsp + 0x1f0], xmm1
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x200], xmm2
movaps xmmword [rsp + 0x210], xmm3
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmmword [rsp + 0x220], xmm0
movaps xmm0, xmmword [rsp + 0x1b0]
movaps xmmword [rsp + 0x230], xmm0
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmmword [rsp + 0x240], xmm0
mov rax, qword [rsp + 0x1cd]
mov qword [rsp + 0x24d], rax
mov rax, qword [rsp + 0x1d8]
mov qword [rsp + 0x258], rax
mov qword [rsp + 0x1d8], 0
mov byte [rsp + 0x260], 1
mov al, 1
movzx ecx, byte [rsp + 0x2f0]
cmp cl, al
je 0x14007c297
test cl, cl
jne 0x14007c2f8
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmm1, xmmword [rsp + 0x1f0]
movaps xmm2, xmmword [rsp + 0x200]
movaps xmm3, xmmword [rsp + 0x210]
movaps xmmword [rsp + 0x280], xmm1
movaps xmmword [rsp + 0x270], xmm0
movaps xmmword [rsp + 0x290], xmm2
movaps xmmword [rsp + 0x2a0], xmm3
movaps xmm0, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0x2b0], xmm0
movaps xmm0, xmmword [rsp + 0x230]
movaps xmmword [rsp + 0x2c0], xmm0
movaps xmm0, xmmword [rsp + 0x240]
movaps xmmword [rsp + 0x2d0], xmm0
mov rax, qword [rsp + 0x24d]
mov qword [rsp + 0x2dd], rax
mov rax, qword [rsp + 0x258]
mov qword [rsp + 0x2e8], rax
mov qword [rsp + 0x258], 0
mov byte [rsp + 0x2f0], 1
cmp byte [rsp + 0x260], 0
je 0x14007b110
mov rcx, qword [rsp + 0x258]
test rcx, rcx
jne 0x14007bd7c
test bpl, bpl
je 0x14007b126
mov rcx, qword [rsp + 0x1d8]
test rcx, rcx
jne 0x14007bd94
mov rcx, qword [rsp + 0x80]
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x78], eax
movzx eax, byte [rcx + 0x10]
mov byte [rsp + 0x7c], al
test rcx, rcx
jne 0x14007bcc6
cmp byte [rsp + 0x2f0], 0
je 0x14007b899
cmp qword [rsp + 0x298], 0
jne 0x14007c062
mov rsi, qword [r14]
movaps xmm0, xmmword [rsp + 0x270]
movaps xmm1, xmmword [rsp + 0x280]
movaps xmm2, xmmword [rsp + 0x290]
movaps xmm3, xmmword [rsp + 0x2a0]
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0x100], xmm2
movaps xmmword [rsp + 0x110], xmm3
movaps xmm0, xmmword [rsp + 0x2b0]
movaps xmmword [rsp + 0x120], xmm0
movaps xmm0, xmmword [rsp + 0x2c0]
movaps xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rsp + 0x2d0]
movaps xmmword [rsp + 0x140], xmm0
mov rax, qword [rsp + 0x2dd]
mov qword [rsp + 0x14d], rax
mov rax, qword [rsp + 0x2e8]
mov qword [rsp + 0x158], rax
mov qword [rsp + 0x2e8], 0
mov rax, qword [r15]
mov rax, qword [rax + 8]
lea rcx, [0x140107ae0]
cmp rax, rcx
jne 0x14007c337
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov rax, qword [rsi]
mov rax, qword [rax]
lea rcx, [0x14009e080]
cmp rax, rcx
jne 0x14007b572
lea r12, [rsi + 0xa0]
mov rax, r12
and rax, rbx
cmp dword [rsi + 0x30], 2
mov ecx, dword [rsi + 0x38]
mov rdi, qword [rsi + 0x40]
mov dword [rsp + 0xc0], ecx
mov rcx, qword [0x140142588]
je 0x14007bdce
cmp rax, rcx
jne 0x14007b278
mov rcx, r12
call fcn.14005d1c0
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xd0], 0
mov rax, rdi
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007b2a3
mov rcx, rdi
call fcn.14005d1c0
mov qword [rsp + 0xd8], rdi
movzx edi, byte [rsp + 0x79]
test dil, 0x7f
je 0x14007be21
mov ecx, dword [rsi + 0x30]
mov eax, dword [rsp + 0xc0]
mov edx, dword [0x14014e950]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea r13, [rdx + 0x198]
mov r8d, dword [rdx + 0x198]
mov dword [rsp + 0x54], r8d
lea r9, [rdx + 0x194]
mov edx, dword [rdx + 0x194]
cmp edx, 0xffffffff
je 0x14007c0bd
mov dword [rsp + 0x50], edx
mov edx, dword [0x14014e950]
mov r8, qword gs:[0x58]
mov rbp, qword [r8 + rdx*8]
movzx edx, byte [rbp + 0x19c]
mov byte [rsp + 0x3f], dl
movzx edx, byte [rbp + 0x19d]
mov byte [rsp + 0x3e], dl
mov edx, 1
lock xadd dword [0x140157ad4], edx
cmp ecx, 2
mov dword [r13], edx
mov dword [r9], eax
sete byte [rbp + 0x19c]
mov byte [rbp + 0x19d], 0
movzx eax, byte [rsp + 0x78]
movzx ecx, byte [rbp + 0x180]
mov byte [rsp + 0x3d], cl
mov byte [rbp + 0x180], al
movaps xmmword [rsp + 0xa0], xmm6
movaps xmmword [rsp + 0xb0], xmm6
mov byte [rsp + 0xa0], 0
mov byte [rsp + 0xb8], 0
mov rax, qword [rsp + 0xc8]
test rax, rax
jne 0x14007b3af
xorps xmm0, xmm0
lea rax, [rsp + 0xa0]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov byte [rax + 0x18], 1
mov qword [rsp + 0x68], r9
mov ecx, dword [0x14014e950]
mov rdx, qword gs:[0x58]
mov r12, qword [rdx + rcx*8]
mov rcx, qword [r12 + 0x178]
mov qword [rsp + 0x60], rcx
mov qword [r12 + 0x178], rax
movaps xmmword [rsp + 0x80], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x90], rax
mov byte [rsp + 0x80], 0
mov byte [rsp + 0x90], 0
movaps xmmword [rsp + 0x1e0], xmm6
mov qword [rsp + 0x200], rax
movaps xmmword [rsp + 0x1f0], xmm6
mov byte [rsp + 0x1e0], 0
mov byte [rsp + 0x200], 0
mov rax, qword [rsp + 0xd8]
test rax, rax
jne 0x14007b646
mov rax, qword [rsp + 0xd0]
test rax, rax
movabs rbx, 0xfffffffc00000000
je 0x14007b6e0
mov byte [rsp + 0x2f], dil
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x14007c435
mov qword [rsp + 0x1e0], rax
mov ecx, dword [0x14014e950]
mov rdx, qword gs:[0x58]
mov r15, qword [rdx + rcx*8]
mov rdi, qword [r15 + 0x130]
mov rcx, rdi
and rcx, rbx
cmp rcx, qword [0x140142588]
je 0x14007b4c5
mov qword [rsp + 0x1e8], rdi
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
jne 0x14007b4e4
jmp 0x14007c50d
mov rcx, rdi
call fcn.14005d1c0
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x1e8], rdi
test rax, rax
jne 0x14007b4ae
xor eax, eax
lea rdx, [r15 + 0x130]
lea r8, [rsp + 0x1f0]
mov qword [r8], rax
mov eax, dword [0x14014e950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x148]
mov rdi, qword [r15]
mov rax, rdi
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007b53c
mov rcx, rdi
mov qword [rsp + 0x58], rdx
call fcn.14005d1c0
lea r8, [rsp + 0x1f0]
mov rdx, qword [rsp + 0x58]
lea rax, [rsp + 0x200]
mov qword [rax - 8], rdi
mov qword [r15], r8
lea rcx, [rsp + 0x1e0]
mov qword [rdx], rcx
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14007c510
mov r15, qword [rsp + 0x30]
mov dil, byte [rsp + 0x2f]
jmp 0x14007b6dd
lea rcx, [0x1400a2a00]
cmp rax, rcx
jne 0x14007c3e5
lea rax, [rsp + 0xc8]
mov ecx, 1
lock xadd dword [0x140157ad0], ecx
mov dword [rax - 8], ecx
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
jmp 0x14007b2ab
test eax, eax
jne 0x14007b716
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x78]
mov rcx, r15
mov r9, rsi
call fcn.14007cb80
jmp 0x14007b716
cmp eax, 2
jne 0x14007b5ad
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x78]
mov rcx, r15
mov r9, rsi
call fcn.14007c970
jmp 0x14007b716
cmp qword [rcx], 0
mov r15, qword [rsp + 0x30]
mov edi, r13d
mov r13, rbx
movabs rbx, 0xfffffffc00000000
je 0x14007b6dd
jmp 0x14007c40e
call fcn.14005d490
jmp 0x14007b788
call fcn.14005d490
jmp 0x14007b860
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x14007c2b9
mov rbx, r13
mov r13d, edi
mov qword [rsp + 0x80], rax
mov eax, dword [0x14014e950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x148]
mov rdi, qword [r15]
mov rax, rdi
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x140142588]
je 0x14007c32a
lea rax, [rsp + 0x90]
mov qword [rax - 8], rdi
lea rcx, [rsp + 0x80]
mov qword [r15], rcx
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x14007b60e
mov r15, qword [rsp + 0x30]
mov edi, r13d
mov r13, rbx
movabs rbx, 0xfffffffc00000000
mov byte [rax], 1
movzx eax, byte [rsp + 0x79]
and eax, 0x7f
cmp eax, 1
jne 0x14007b5df
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xe0]
lea r8, [rsp + 0x78]
mov rcx, r15
mov r9, rsi
call fcn.14007c740
mov rsi, qword [rsp + 0x158]
mov qword [rsp + 0x158], 0
test rsi, rsi
jne 0x14007c008
cmp byte [rsp + 0x200], 0
jne 0x14007be46
lea rsi, [r12 + 0x178]
cmp byte [rsp + 0x90], 0
je 0x14007b7ab
mov rcx, qword [rsp + 0x88]
mov eax, dword [0x14014e950]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov qword [rax + 0x148], rcx
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
je 0x14007b632
mov qword [rsp + 0x88], 0
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x14007b7ab
lock dec dword [rcx + 8]
je 0x14007c2dd
mov rax, qword [rsp + 0x60]
mov qword [rsi], rax
cmp byte [rsp + 0xb8], 0
je 0x14007b7ce
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
jne 0x14007bfad
lea rax, [rbp + 0x19c]
lea rcx, [rbp + 0x19d]
lea rdx, [rbp + 0x180]
movzx r8d, byte [rsp + 0x3d]
mov byte [rdx], r8b
mov edx, dword [rsp + 0x54]
mov dword [r13], edx
mov rdx, qword [rsp + 0x68]
mov r8d, dword [rsp + 0x50]
mov dword [rdx], r8d
movzx edx, byte [rsp + 0x3f]
mov byte [rax], dl
movzx eax, byte [rsp + 0x3e]
mov byte [rcx], al
test dil, 0x7f
je 0x14007bb69
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
mov ebp, dword [rsp + 0x40]
jne 0x14007b839
call fcn.14005d490
mov qword [rsp + 0xd8], 0
mov rcx, qword [rsp + 0xd0]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
je 0x14007b63c
mov qword [rsp + 0xd0], 0
mov rcx, qword [rsp + 0xc8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007b888
call fcn.14005d490
mov rcx, qword [rsp + 0x158]
test rcx, rcx
jne 0x14007ba29
test bpl, bpl
je 0x14007b8c1
mov rax, qword [r14]
movzx eax, byte [rax + 0xd]
and al, 0x7f
cmp al, 1
jne 0x14007b8c1
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x14007c207
mov rdi, qword [r14]
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
lea rcx, [0x14009ddf0]
cmp rax, rcx
jne 0x14007ba59
lea rsi, [rdi + 0x18]
mov r12, rsi
and r12, rbx
cmp r12, qword [0x140142588]
jne 0x14007b8f6
mov rcx, rsi
call fcn.14005d1c0
test rsi, rsi
je 0x14007b90c
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c0af
cmp r12, qword [0x140142588]
jne 0x14007b91d
mov rcx, rsi
call fcn.14005d1c0
mov byte [rdi + 0x98], 0
mov rax, qword [rdi + 0x58]
mov bpl, 1
cmp rax, qword [rdi + 0x60]
jne 0x14007b957
mov rax, qword [rdi + 0x70]
cmp rax, qword [rdi + 0x78]
jne 0x14007b957
mov byte [rdi + 0x99], 0
mov rdi, qword [rdi + 0x40]
test rdi, rdi
je 0x14007b955
lock dec dword [rdi + 8]
je 0x14007bc1b
xor ebp, ebp
cmp r12, qword [0x140142588]
jne 0x14007b968
mov rcx, rsi
call fcn.14005d490
test rsi, rsi
mov rdi, qword [rsp + 0x48]
je 0x14007b97b
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r12, qword [0x140142588]
jne 0x14007b98c
mov rcx, rsi
call fcn.14005d490
test bpl, bpl
jne 0x14007bb17
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
cmp byte [rsp + 0x2f0], 0
je 0x14007b9b6
mov rcx, qword [rsp + 0x2e8]
test rcx, rcx
jne 0x14007ba41
mov rsi, qword [r14]
test rsi, rsi
jne 0x14007bb33
mov qword [r14], 0
test rsi, rsi
jne 0x14007bb5a
mov rcx, qword [r14 + 8]
and rbx, rcx
cmp rbx, qword [0x140142588]
je 0x14007c281
mov qword [r14 + 8], 0
mov rcx, qword [r14]
test rcx, rcx
jne 0x14007c2bc
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.1400a4d90
mov rax, rdi
movaps xmm6, xmmword [rsp + 0x300]
add rsp, 0x318
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lock dec dword [rcx]
jne 0x14007b899
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007b899
lock dec dword [rcx]
jne 0x14007b9b6
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007b9b6
lea rcx, [0x1400a2c20]
cmp rax, rcx
jne 0x14007c438
lea rsi, [rdi + 0x38]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c0a1
mov ebp, 0xfffffffe
lock xadd dword [rdi + 0x40], ebp
xor eax, eax
xchg dword [rdi + 0x44], eax
test eax, eax
jne 0x14007bb87
test bpl, 1
jne 0x14007c3fb
mov r15, qword [rdi + 0x58]
test r15, r15
je 0x14007c321
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x14007c324
cmp eax, 0x7fffffff
je 0x14007c327
shr ebp, 1
movzx r12d, bpl
lea rdx, [r12 - 1]
mov rax, qword [rdi + 0x58]
mov rax, qword [rax + 8]
mov rcx, r15
call qword [0x140134870]
mov rdi, rax
lock dec dword [r15]
je 0x14007c3d8
cmp rdi, 0x20
mov r15d, 0x20
cmovb r15, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r15, r12
mov rdi, qword [rsp + 0x48]
jb 0x14007b995
mov rax, qword [r14]
mov qword [rdi], rax
xor eax, eax
mov qword [r14], rax
mov rcx, qword [r14 + 8]
mov qword [rdi + 8], rcx
mov qword [r14 + 8], rax
jmp 0x14007b99b
mov rbp, qword [r14 + 8]
test rbp, rbp
je 0x14007b9c2
mov qword [r14], 0
mov al, byte [rsi + 0xd]
and al, 0x7f
cmp al, 2
je 0x14007c0ec
lock dec dword [rbp + 0x18]
je 0x14007bb96
lock dec dword [rsi + 8]
jne 0x14007b9d2
jmp 0x14007c0d2
mov eax, dword [0x14014e950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
dec dword [rax + 0x190]
jmp 0x14007b819
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
jmp 0x14007ba95
lea r15, [rbp + 0x20]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c53a
mov rcx, qword [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_WakeAllConditionVariable]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c548
mov r12, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x38]
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov rax, qword [rbp + 0x40]
mov r13, qword [rbp + 0x48]
movups xmmword [rbp + 0x40], xmm0
mov rbp, rax
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp rbp, r13
jne 0x14007c556
lea rcx, fcn.140061ab0
mov rdx, r12
xor r8d, r8d
call fcn.140060910
mov rdi, qword [rsp + 0x48]
jmp 0x14007b9c9
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x1400f2d80]
cmp qword [rcx + 0x10], rdx
jne 0x14007bc3b
lea rcx, [0x140100660]
cmp rax, rcx
je 0x14007bc4e
mov rcx, rdi
mov edx, 1
call qword [0x140134870]
jmp 0x14007b955
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14007bc60
lock dec dword [rcx]
je 0x14007c172
mov r15, qword [rdi + 0x10]
test r15, r15
je 0x14007bc73
lock dec dword [r15]
je 0x14007c13d
mov rcx, rdi
call fcn.1400a2cfc
jmp 0x14007b955
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
mov ebp, dword [rsp + 0x40]
jne 0x14007c4b8
cmp qword [r12 + 0x50], rax
jb 0x14007c3d5
mov rcx, qword [r12 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
mov qword [r12 + 0x88], rax
mov qword [r12 + 0x90], 0
jmp 0x14007af7d
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x80]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007b146
call fcn.14005d840
jmp 0x14007b146
lea rcx, [0x1400a2bb0]
cmp rax, rcx
jne 0x14007c411
mov rdx, qword [r12 + 0x68]
test rdx, rdx
je 0x14007bd2b
mov eax, 1
lock xadd dword [rdx], eax
test eax, eax
jle 0x14007c432
cmp eax, 0x7fffffff
je 0x14007c42f
movups xmm0, xmmword [r12 + 0x70]
movups xmm1, xmmword [r12 + 0x80]
lea rax, [rsp + 0x180]
movaps xmmword [rax - 0x10], xmm1
movaps xmmword [rax - 0x20], xmm0
lea rsi, [r12 + 0x90]
mov ecx, 0xa
mov rdi, rax
rep movsq qword [rdi], qword [rsi]
mov ecx, dword [r12 + 0xe0]
mov dword [rax + 0x50], ecx
mov cl, byte [r12 + 0xe4]
mov byte [rax + 0x54], cl
mov qword [rax + 0x58], rdx
jmp 0x14007af93
lock dec dword [rcx]
jne 0x14007b110
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007b110
lock dec dword [rcx]
jne 0x14007b126
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007b126
cmp eax, 2
je 0x14007ad29
test eax, eax
jne 0x14007c27a
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
sete bpl
jmp 0x14007ad29
cmp rax, rcx
jne 0x14007bddb
mov rcx, r12
call fcn.14005d1c0
mov qword [rsp + 0xc8], r12
mov rax, rdi
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007bdfa
mov rcx, rdi
call fcn.14005d1c0
mov qword [rsp + 0xd0], rdi
xor edi, edi
jmp 0x14007b2a3
lock dec dword [rcx]
jne 0x14007af34
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007af34
mov eax, dword [0x14014e950]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
inc dword [rax + 0x190]
jmp 0x14007b2ba
call fcn.14005d490
jmp 0x14007be86
mov rax, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0x1f8]
mov edx, dword [0x14014e950]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov qword [rdx + 0x130], rax
mov qword [rdx + 0x148], rcx
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
je 0x14007be3f
mov qword [rsp + 0x1f8], 0
mov rcx, qword [rsp + 0x1f0]
test rcx, rcx
je 0x14007bea9
lock dec dword [rcx + 8]
je 0x14007c4ae
mov rcx, qword [rsp + 0x1e8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007bec5
call fcn.14005d490
mov qword [rsp + 0x1e8], 0
mov rsi, qword [rsp + 0x1e0]
test rsi, rsi
je 0x14007b741
lock dec dword [rsi + 8]
jne 0x14007b741
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x1400f2d80]
cmp qword [rcx + 0x10], rdx
jne 0x14007bf0c
lea rcx, [0x140100660]
cmp rax, rcx
je 0x14007bf1f
mov rcx, rsi
mov edx, 1
call qword [0x140134870]
jmp 0x14007b741
mov byte [rsp + 0x2f], dil
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x14007bf36
lock dec dword [rcx]
je 0x14007c1fd
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x14007bf48
lock dec dword [rdi]
je 0x14007c17c
mov rcx, rsi
call fcn.1400a2cfc
mov dil, byte [rsp + 0x2f]
jmp 0x14007b741
mov r8, qword [r12 + 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 0x14007af59
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x14007af59
mov rcx, rbp
call fcn.140073850
jmp 0x14007af59
mov rcx, qword [rsp + 0xa8]
mov rax, rsi
cmp rcx, rsi
je 0x14007bff3
mov r12d, edi
mov rdi, rcx
add rdi, 0xffffffffffffffe8
je 0x14007c527
mov rax, qword [rcx - 8]
test rax, rax
je 0x14007bfe0
add rcx, 0xfffffffffffffff0
call qword [0x140134870]
mov rcx, rdi
cmp rdi, rsi
jne 0x14007bfc3
mov rax, qword [rsp + 0xa0]
mov edi, r12d
mov qword [rsp + 0xa8], rsi
mov rcx, rax
call fcn.1400a2cfc
jmp 0x14007b7ce
lock dec dword [rsi]
jne 0x14007b733
mov rax, qword [rsi + 0x10]
lea rcx, [0x1400f90b0]
cmp rax, rcx
je 0x14007c02f
mov rcx, rsi
call qword [0x140134870]
jmp 0x14007b733
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
jne 0x14007c047
call fcn.14005d840
mov rcx, rsi
call fcn.1400a2cfc
jmp 0x14007b733
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007ade0
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
je 0x14007b163
lea rsi, [rsp + 0x2e8]
mov rax, qword [rsi]
mov qword [rsi], 0
lea rdx, [rsp + 0x70]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140107a30
cmp byte [rsi + 8], 0
jne 0x14007b163
call fcn.1400d6ae0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007ba7e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007b90c
mov edx, 1
lock xadd dword [0x140157ad0], edx
mov dword [r9], edx
jmp 0x14007b300
mov rax, qword [rsi]
mov rax, qword [rax + 0x30]
mov rcx, rsi
mov edx, 1
call qword [0x140134870]
jmp 0x14007b9d2
mov rax, qword [rbp + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x14007bb54
lea rdi, [rbp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c716
mov rcx, qword [rbp + 0x58]
call fcn.14006f0b0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsp + 0x48]
movabs rbx, 0xfffffffc00000000
jmp 0x14007bb54
mov rcx, qword [r15 + 0x20]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
je 0x14007c635
mov qword [r15 + 0x20], 0
lea rcx, [r15 + 8]
call fcn.140006bb0
mov rcx, r15
call fcn.1400a2cfc
jmp 0x14007bc73
call fcn.1400a2cfc
jmp 0x14007bc60
mov rcx, qword [rdi + 0x20]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140142588]
je 0x14007c652
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.140006bb0
mov rcx, rdi
call fcn.1400a2cfc
jmp 0x14007bf48
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x14007c242
xor ebp, ebp
mov r15, qword [rsp + 0x30]
jmp 0x14007ad29
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x58]
lea rsi, [rsp + 0x1e0]
lea r8, [rsp + 0x80]
mov rdx, rsi
call qword [0x140134870]
mov al, byte [rsi + 0x80]
jmp 0x14007b039
call fcn.1400a2cfc
jmp 0x14007bf36
lea rsi, [r15 + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c65c
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x58]
call fcn.14006f0b0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movabs rbx, 0xfffffffc00000000
jmp 0x14007b8c1
mov rax, qword [rsp + 0x30]
lea rsi, [rax + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007c724
mov r15, qword [rsp + 0x30]
mov rcx, qword [r15 + 0x58]
call fcn.14006f0b0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor ebp, ebp
jmp 0x14007ad29
call fcn.1400d78d0
jmp 0x14007c273
call fcn.14005d840
jmp 0x14007b9e6
int3
int3
int3
int3
test cl, cl
je 0x14007b110
lea rcx, [rsp + 0x270]
lea rdx, [rsp + 0x1e0]
call fcn.14009d980
jmp 0x14007b0f5
int3
lock dec dword [rcx + 8]
jne 0x14007b9fa
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 1
call qword [0x140134870]
jmp 0x14007b9fa
call fcn.14006f200
jmp 0x14007b7ab
lock dec dword [rcx]
jne 0x14007c305
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007c305
mov rcx, qword [rsp + 0x2e8]
test rcx, rcx
jne 0x14007c2e7
mov byte [rsp + 0x2f0], 0
mov r15, qword [rsp + 0x30]
movabs rbx, 0xfffffffc00000000
jmp 0x14007b0f5
int3
int3
int3
mov rcx, rdi
call fcn.14005d1c0
jmp 0x14007b6a4
lea rdx, [rsp + 0xe0]
lea r9, [rsp + 0x78]
mov rcx, r15
mov r8, rsi
call qword [0x140134870]
jmp 0x14007b899
lea rdx, [rsp + 0x160]
mov rcx, rsi
xor r8d, r8d
call fcn.140108c20
jmp 0x14007af59
lea rdx, [rsp + 0x1e0]
call fcn.1400a27c0
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x14007c66a
mov rcx, qword [rbp]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
cmp rax, qword [rsp + 0x1e0]
jg 0x14007c3c0
lea rdx, [rsp + 0x160]
mov rcx, r12
call fcn.140108220
movabs rbx, 0xfffffffc00000000
jmp 0x14007af59
lea rdx, [rsp + 0x160]
mov rcx, rsi
xor r8d, r8d
call fcn.140108c20
jmp 0x14007c3b1
int3
mov rcx, r15
call fcn.1400a1e20
jmp 0x14007baf2
lea rdx, [rsp + 0xc0]
mov rcx, rsi
call qword [0x140134870]
jmp 0x14007b2ab
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsp + 0x48]
jmp 0x14007b995
int3
lea rdx, [rsp + 0x160]
lea r8, [rsp + 0x80]
mov rcx, r12
call qword [0x140134870]
jmp 0x14007af93
int3
int3
int3
mov rcx, rdi
xor edx, edx
call qword [0x140134870]
test al, al
mov rdi, qword [rsp + 0x48]
je 0x14007b995
jmp 0x14007bb17
lea rsi, [rsp + 0x1e0]
mov rdx, rsi
call fcn.1400a27c0
mov rax, qword [rsi]
mov qword [r12 + 0x88], rax
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
je 0x14007c63f
lea rsi, [rsp + 0xc0]
mov rdx, rsi
call fcn.1400a2760
mov rax, qword [rsi]
mov qword [r12 + 0x90], rax
mov ebp, dword [rsp + 0x40]
movabs rbx, 0xfffffffc00000000
jmp 0x14007af7d
call fcn.14006f200
jmp 0x14007bea9
lea rdx, [rsp + 0xa0]
call fcn.1400a27c0
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x14007c66d
mov rcx, qword [r12 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
mov rcx, qword [rsp + 0xa0]
cmp rcx, rax
cmovl rax, rcx
mov qword [r12 + 0x88], rax
mov ebp, dword [rsp + 0x40]
movabs rbx, 0xfffffffc00000000
jmp 0x14007bcb5
int3
cmp qword [rcx], 0
mov r15, qword [rsp + 0x30]
mov dil, byte [rsp + 0x2f]
je 0x14007b6dd
int3
lea rcx, [0x140121d8c]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.1400d6ae0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007bbab
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007bbcf
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x30], r12
mov rbx, rdi
xor edi, edi
mov r12, rbp
cmp rbx, rbp
jb 0x14007c670
mov rax, qword [rsp + 0x30]
mov r15, qword [rax + rbp*8]
test r15, r15
je 0x14007c673
mov rax, qword [rsp + 0x30]
mov qword [rax + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x140134870]
lock dec dword [r15]
jne 0x14007c5b0
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x140134870]
inc rbp
cmp rbp, rbx
cmove rbp, rdi
cmp rbp, qword [rsp + 0x40]
jne 0x14007c568
cmp qword [rsp + 0x40], r12
jbe 0x14007c685
cmp rbx, qword [rsp + 0x40]
jb 0x14007c676
cmp r12, qword [rsp + 0x40]
jg 0x14007c679
mov rdi, qword [rsp + 0x40]
shl rdi, 3
mov rax, r12
shl rax, 3
mov r12, qword [rsp + 0x30]
mov rbx, rax
mov rcx, qword [r12 + rax]
test rcx, rcx
jne 0x14007c624
mov rax, rbx
add rax, 8
cmp rdi, rax
movabs rbx, 0xfffffffc00000000
mov r12, qword [rsp + 0x30]
je 0x14007bbff
jmp 0x14007c5f7
lock dec dword [rcx]
jne 0x14007c603
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
jmp 0x14007c603
call fcn.14005d490
jmp 0x14007c154
lea rcx, [0x140121d8c]
lea rdx, str....._third_partylibc_srcinclude_vector:618:_assertion__empty___failed:_front___called_on_an_empty_vector_n
call fcn.1400d6ae0
call fcn.14005d490
jmp 0x14007c193
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007c21c
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp rbx, r12
jb 0x14007c67c
jl 0x14007c67f
je 0x14007c6c2
shl rbx, 3
shl r12, 3
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + r12]
test rcx, rcx
je 0x14007c6b3
lock dec dword [rcx]
jne 0x14007c6b3
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
mov rax, r12
add rax, 8
mov r12, rax
cmp rbx, rax
jne 0x14007c696
cmp qword [rsp + 0x40], 0
js 0x14007c682
movabs rbx, 0xfffffffc00000000
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
je 0x14007bbff
shl rdi, 3
xor r15d, r15d
mov rcx, qword [r12 + r15]
test rcx, rcx
je 0x14007c703
lock dec dword [rcx]
jne 0x14007c703
mov rax, qword [rcx + 0x10]
call qword [0x140134870]
add r15, 8
cmp rdi, r15
mov r12, qword [rsp + 0x30]
jne 0x14007c6eb
jmp 0x14007bbff
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007c117
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14007c25c