Function at 0x1400d9020
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 [0x140231040]
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 0x1400da10c
mov rax, qword [r15 + 0x10]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x1400da511
movabs rbx, 0xfffffffc00000000
movaps xmm6, xmmword [0x1401fd000]
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 [0x1402336c8]
jne 0x1400d9123
mov rcx, rsi
call fcn.14009b840
mov qword [rsp + 0x80], rsi
add rsi, 0x18
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400da3b4
test bpl, bpl
mov dword [rsp + 0x40], ebp
je 0x1400da52f
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x40]
lea rcx, [0x1401237f0]
cmp rax, rcx
jne 0x1400da055
lea r13, [r12 + 0x18]
mov r15, r13
and r15, rbx
cmp r15, qword [0x1402336c8]
jne 0x1400d9184
mov rcx, r13
call fcn.1400a3490
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 0x1400da6b5
lea rbp, [r12 + 0x48]
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x1400da6cd
cmp qword [r12 + 0x50], rax
jb 0x1400da5eb
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 0x1400da5ee
cmp rcx, rax
jb 0x1400da5f1
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x1400da5f4
mov rcx, qword [rbp]
shl rax, 7
mov rcx, qword [rcx + rax + 0x78]
test rcx, rcx
jne 0x1400da169
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 0x1400da2ba
mov rax, qword [r12 + 0x58]
cmp rax, qword [r12 + 0x60]
jne 0x1400d9fe0
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
mov ebp, dword [rsp + 0x40]
jne 0x1400da7b5
cmp r15, qword [0x1402336c8]
mov r15, qword [rsp + 0x30]
jne 0x1400d92f3
mov rcx, r13
call fcn.1400a3600
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 0x1400da5f7
test cl, cl
jne 0x1400da658
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 0x1400d9470
mov rcx, qword [rsp + 0x258]
test rcx, rcx
jne 0x1400da0dc
test bpl, bpl
je 0x1400d9486
mov rcx, qword [rsp + 0x1d8]
test rcx, rcx
jne 0x1400da0f4
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 0x1400da026
cmp byte [rsp + 0x2f0], 0
je 0x1400d9bf9
cmp qword [rsp + 0x298], 0
jne 0x1400da3c2
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, [0x14019e880]
cmp rax, rcx
jne 0x1400da697
movaps xmmword [rsp + 0xd0], xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov rax, qword [rsi]
mov rax, qword [rax]
lea rcx, [0x140123e40]
cmp rax, rcx
jne 0x1400d98d2
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 [0x1402336c8]
je 0x1400da12e
cmp rax, rcx
jne 0x1400d95d8
mov rcx, r12
call fcn.1400a3490
mov qword [rsp + 0xc8], r12
mov qword [rsp + 0xd0], 0
mov rax, rdi
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400d9603
mov rcx, rdi
call fcn.1400a3490
mov qword [rsp + 0xd8], rdi
movzx edi, byte [rsp + 0x79]
test dil, 0x7f
je 0x1400da181
mov ecx, dword [rsi + 0x30]
mov eax, dword [rsp + 0xc0]
mov edx, dword [0x1402403d8]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea r13, [rdx + 0x204]
mov r8d, dword [rdx + 0x204]
mov dword [rsp + 0x54], r8d
lea r9, [rdx + 0x200]
mov edx, dword [rdx + 0x200]
cmp edx, 0xffffffff
je 0x1400da41d
mov dword [rsp + 0x50], edx
mov edx, dword [0x1402403d8]
mov r8, qword gs:[0x58]
mov rbp, qword [r8 + rdx*8]
movzx edx, byte [rbp + 0x208]
mov byte [rsp + 0x3f], dl
movzx edx, byte [rbp + 0x209]
mov byte [rsp + 0x3e], dl
mov edx, 1
lock xadd dword [0x140249a4c], edx
cmp ecx, 2
mov dword [r13], edx
mov dword [r9], eax
sete byte [rbp + 0x208]
mov byte [rbp + 0x209], 0
movzx eax, byte [rsp + 0x78]
movzx ecx, byte [rbp + 0x198]
mov byte [rsp + 0x3d], cl
mov byte [rbp + 0x198], 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 0x1400d970f
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 [0x1402403d8]
mov rdx, qword gs:[0x58]
mov r12, qword [rdx + rcx*8]
mov rcx, qword [r12 + 0x190]
mov qword [rsp + 0x60], rcx
mov qword [r12 + 0x190], 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 0x1400d99a6
mov rax, qword [rsp + 0xd0]
test rax, rax
movabs rbx, 0xfffffffc00000000
je 0x1400d9a40
mov byte [rsp + 0x2f], dil
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x1400da795
mov qword [rsp + 0x1e0], rax
mov ecx, dword [0x1402403d8]
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 [0x1402336c8]
je 0x1400d9825
mov qword [rsp + 0x1e8], rdi
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
jne 0x1400d9844
jmp 0x1400da86d
mov rcx, rdi
call fcn.1400a3490
mov rax, qword [rsp + 0x1e0]
mov qword [rsp + 0x1e8], rdi
test rax, rax
jne 0x1400d980e
xor eax, eax
lea rdx, [r15 + 0x130]
lea r8, [rsp + 0x1f0]
mov qword [r8], rax
mov eax, dword [0x1402403d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x138]
mov rdi, qword [r15]
mov rax, rdi
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400d989c
mov rcx, rdi
mov qword [rsp + 0x58], rdx
call fcn.1400a3490
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 0x1400da870
mov r15, qword [rsp + 0x30]
mov dil, byte [rsp + 0x2f]
jmp 0x1400d9a3d
lea rcx, [0x14012a700]
cmp rax, rcx
jne 0x1400da745
lea rax, [rsp + 0xc8]
mov ecx, 1
lock xadd dword [0x140249a48], ecx
mov dword [rax - 8], ecx
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
jmp 0x1400d960b
test eax, eax
jne 0x1400d9a76
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.1400db030
jmp 0x1400d9a76
cmp eax, 2
jne 0x1400d990d
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.1400daf20
jmp 0x1400d9a76
cmp qword [rcx], 0
mov r15, qword [rsp + 0x30]
mov edi, r13d
mov r13, rbx
movabs rbx, 0xfffffffc00000000
je 0x1400d9a3d
jmp 0x1400da76e
call fcn.1400a3600
jmp 0x1400d9ae8
call fcn.1400a3600
jmp 0x1400d9bc0
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x1400da619
mov rbx, r13
mov r13d, edi
mov qword [rsp + 0x80], rax
mov eax, dword [0x1402403d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r15, [rax + 0x138]
mov rdi, qword [r15]
mov rax, rdi
movabs rcx, 0xfffffffc00000000
and rax, rcx
cmp rax, qword [0x1402336c8]
je 0x1400da68a
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 0x1400d996e
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 0x1400d993f
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.1400daaa0
mov rsi, qword [rsp + 0x158]
mov qword [rsp + 0x158], 0
test rsi, rsi
jne 0x1400da368
cmp byte [rsp + 0x200], 0
jne 0x1400da1a6
lea rsi, [r12 + 0x190]
cmp byte [rsp + 0x90], 0
je 0x1400d9b0b
mov rcx, qword [rsp + 0x88]
mov eax, dword [0x1402403d8]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov qword [rax + 0x138], rcx
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
je 0x1400d9992
mov qword [rsp + 0x88], 0
mov rcx, qword [rsp + 0x80]
test rcx, rcx
je 0x1400d9b0b
lock dec dword [rcx + 8]
je 0x1400da63d
mov rax, qword [rsp + 0x60]
mov qword [rsi], rax
cmp byte [rsp + 0xb8], 0
je 0x1400d9b2e
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
jne 0x1400da30d
lea rax, [rbp + 0x208]
lea rcx, [rbp + 0x209]
lea rdx, [rbp + 0x198]
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 0x1400d9ec9
mov rcx, qword [rsp + 0xd8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
mov ebp, dword [rsp + 0x40]
jne 0x1400d9b99
call fcn.1400a3600
mov qword [rsp + 0xd8], 0
mov rcx, qword [rsp + 0xd0]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
je 0x1400d999c
mov qword [rsp + 0xd0], 0
mov rcx, qword [rsp + 0xc8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400d9be8
call fcn.1400a3600
mov rcx, qword [rsp + 0x158]
test rcx, rcx
jne 0x1400d9d89
test bpl, bpl
je 0x1400d9c21
mov rax, qword [r14]
movzx eax, byte [rax + 0xd]
and al, 0x7f
cmp al, 1
jne 0x1400d9c21
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x1400da567
mov rdi, qword [r14]
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
lea rcx, [0x140123bb0]
cmp rax, rcx
jne 0x1400d9db9
lea rsi, [rdi + 0x18]
mov r12, rsi
and r12, rbx
cmp r12, qword [0x1402336c8]
jne 0x1400d9c56
mov rcx, rsi
call fcn.1400a3490
test rsi, rsi
je 0x1400d9c6c
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400da40f
cmp r12, qword [0x1402336c8]
jne 0x1400d9c7d
mov rcx, rsi
call fcn.1400a3490
mov byte [rdi + 0x98], 0
mov rax, qword [rdi + 0x58]
mov bpl, 1
cmp rax, qword [rdi + 0x60]
jne 0x1400d9cb7
mov rax, qword [rdi + 0x70]
cmp rax, qword [rdi + 0x78]
jne 0x1400d9cb7
mov byte [rdi + 0x99], 0
mov rdi, qword [rdi + 0x40]
test rdi, rdi
je 0x1400d9cb5
lock dec dword [rdi + 8]
je 0x1400d9f7b
xor ebp, ebp
cmp r12, qword [0x1402336c8]
jne 0x1400d9cc8
mov rcx, rsi
call fcn.1400a3600
test rsi, rsi
mov rdi, qword [rsp + 0x48]
je 0x1400d9cdb
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r12, qword [0x1402336c8]
jne 0x1400d9cec
mov rcx, rsi
call fcn.1400a3600
test bpl, bpl
jne 0x1400d9e77
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
cmp byte [rsp + 0x2f0], 0
je 0x1400d9d16
mov rcx, qword [rsp + 0x2e8]
test rcx, rcx
jne 0x1400d9da1
mov rsi, qword [r14]
test rsi, rsi
jne 0x1400d9e93
mov qword [r14], 0
test rsi, rsi
jne 0x1400d9eba
mov rcx, qword [r14 + 8]
and rbx, rcx
cmp rbx, qword [0x1402336c8]
je 0x1400da5e1
mov qword [r14 + 8], 0
mov rcx, qword [r14]
test rcx, rcx
jne 0x1400da61c
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14012d2c0
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 0x1400d9bf9
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400d9bf9
lock dec dword [rcx]
jne 0x1400d9d16
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400d9d16
lea rcx, [0x14012a920]
cmp rax, rcx
jne 0x1400da798
lea rsi, [rdi + 0x38]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400da401
mov ebp, 0xfffffffe
lock xadd dword [rdi + 0x40], ebp
xor eax, eax
xchg dword [rdi + 0x44], eax
test eax, eax
jne 0x1400d9ee7
test bpl, 1
jne 0x1400da75b
mov r15, qword [rdi + 0x58]
test r15, r15
je 0x1400da681
mov eax, 1
lock xadd dword [r15], eax
test eax, eax
jle 0x1400da684
cmp eax, 0x7fffffff
je 0x1400da687
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 [0x1402233e0]
mov rdi, rax
lock dec dword [r15]
je 0x1400da738
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 0x1400d9cf5
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 0x1400d9cfb
mov rbp, qword [r14 + 8]
test rbp, rbp
je 0x1400d9d22
mov qword [r14], 0
mov al, byte [rsi + 0xd]
and al, 0x7f
cmp al, 2
je 0x1400da44c
lock dec dword [rbp + 0x18]
je 0x1400d9ef6
lock dec dword [rsi + 8]
jne 0x1400d9d32
jmp 0x1400da432
mov eax, dword [0x1402403d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
dec dword [rax + 0x1a8]
jmp 0x1400d9b79
mov rcx, qword [rdi + 0x48]
call qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
jmp 0x1400d9df5
lea r15, [rbp + 0x20]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400da89a
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 0x1400da8a8
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 0x1400da8b6
lea rcx, str.PM_v_
mov rdx, r12
xor r8d, r8d
call fcn.1400ce810
mov rdi, qword [rsp + 0x48]
jmp 0x1400d9d29
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x140184a10]
cmp qword [rcx + 0x10], rdx
jne 0x1400d9f9b
lea rcx, [0x14019cdb0]
cmp rax, rcx
je 0x1400d9fae
mov rcx, rdi
mov edx, 1
call qword [0x1402233e0]
jmp 0x1400d9cb5
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x1400d9fc0
lock dec dword [rcx]
je 0x1400da4d2
mov r15, qword [rdi + 0x10]
test r15, r15
je 0x1400d9fd3
lock dec dword [r15]
je 0x1400da49d
mov rcx, rdi
call fcn.14012aa6c
jmp 0x1400d9cb5
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
mov ebp, dword [rsp + 0x40]
jne 0x1400da818
cmp qword [r12 + 0x50], rax
jb 0x1400da735
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 0x1400d92dd
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, qword [rsp + 0x80]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400d94a6
call fcn.14009b9a0
jmp 0x1400d94a6
lea rcx, [0x14012a8b0]
cmp rax, rcx
jne 0x1400da771
mov rdx, qword [r12 + 0x68]
test rdx, rdx
je 0x1400da08b
mov eax, 1
lock xadd dword [rdx], eax
test eax, eax
jle 0x1400da792
cmp eax, 0x7fffffff
je 0x1400da78f
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 0x1400d92f3
lock dec dword [rcx]
jne 0x1400d9470
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400d9470
lock dec dword [rcx]
jne 0x1400d9486
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400d9486
cmp eax, 2
je 0x1400d9089
test eax, eax
jne 0x1400da5da
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
sete bpl
jmp 0x1400d9089
cmp rax, rcx
jne 0x1400da13b
mov rcx, r12
call fcn.1400a3490
mov qword [rsp + 0xc8], r12
mov rax, rdi
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400da15a
mov rcx, rdi
call fcn.1400a3490
mov qword [rsp + 0xd0], rdi
xor edi, edi
jmp 0x1400d9603
lock dec dword [rcx]
jne 0x1400d9294
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400d9294
mov eax, dword [0x1402403d8]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
inc dword [rax + 0x1a8]
jmp 0x1400d961a
call fcn.1400a3600
jmp 0x1400da1e6
mov rax, qword [rsp + 0x1e8]
mov rcx, qword [rsp + 0x1f8]
mov edx, dword [0x1402403d8]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
mov qword [rdx + 0x130], rax
mov qword [rdx + 0x138], rcx
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
je 0x1400da19f
mov qword [rsp + 0x1f8], 0
mov rcx, qword [rsp + 0x1f0]
test rcx, rcx
je 0x1400da209
lock dec dword [rcx + 8]
je 0x1400da80e
mov rcx, qword [rsp + 0x1e8]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400da225
call fcn.1400a3600
mov qword [rsp + 0x1e8], 0
mov rsi, qword [rsp + 0x1e0]
test rsi, rsi
je 0x1400d9aa1
lock dec dword [rsi + 8]
jne 0x1400d9aa1
mov rcx, qword [rsi]
mov rax, qword [rcx + 8]
lea rdx, [0x140184a10]
cmp qword [rcx + 0x10], rdx
jne 0x1400da26c
lea rcx, [0x14019cdb0]
cmp rax, rcx
je 0x1400da27f
mov rcx, rsi
mov edx, 1
call qword [0x1402233e0]
jmp 0x1400d9aa1
mov byte [rsp + 0x2f], dil
mov rcx, qword [rsi + 0x18]
test rcx, rcx
je 0x1400da296
lock dec dword [rcx]
je 0x1400da55d
mov rdi, qword [rsi + 0x10]
test rdi, rdi
je 0x1400da2a8
lock dec dword [rdi]
je 0x1400da4dc
mov rcx, rsi
call fcn.14012aa6c
mov dil, byte [rsp + 0x2f]
jmp 0x1400d9aa1
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 0x1400d92b9
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x1400d92b9
mov rcx, rbp
call fcn.1400eb870
jmp 0x1400d92b9
mov rcx, qword [rsp + 0xa8]
mov rax, rsi
cmp rcx, rsi
je 0x1400da353
mov r12d, edi
mov rdi, rcx
add rdi, 0xffffffffffffffe8
je 0x1400da887
mov rax, qword [rcx - 8]
test rax, rax
je 0x1400da340
add rcx, 0xfffffffffffffff0
call qword [0x1402233e0]
mov rcx, rdi
cmp rdi, rsi
jne 0x1400da323
mov rax, qword [rsp + 0xa0]
mov edi, r12d
mov qword [rsp + 0xa8], rsi
mov rcx, rax
call fcn.14012aa6c
jmp 0x1400d9b2e
lock dec dword [rsi]
jne 0x1400d9a93
mov rax, qword [rsi + 0x10]
lea rcx, [0x140185820]
cmp rax, rcx
je 0x1400da38f
mov rcx, rsi
call qword [0x1402233e0]
jmp 0x1400d9a93
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
jne 0x1400da3a7
call fcn.14009b9a0
mov rcx, rsi
call fcn.14012aa6c
jmp 0x1400d9a93
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d9140
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
je 0x1400d94c3
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.14019e7d0
cmp byte [rsi + 8], 0
jne 0x1400d94c3
call fcn.140164a90
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d9dde
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d9c6c
mov edx, 1
lock xadd dword [0x140249a48], edx
mov dword [r9], edx
jmp 0x1400d9660
mov rax, qword [rsi]
mov rax, qword [rax + 0x30]
mov rcx, rsi
mov edx, 1
call qword [0x1402233e0]
jmp 0x1400d9d32
mov rax, qword [rbp + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1400d9eb4
lea rdi, [rbp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400daa76
mov rcx, qword [rbp + 0x58]
call fcn.1400bab60
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsp + 0x48]
movabs rbx, 0xfffffffc00000000
jmp 0x1400d9eb4
mov rcx, qword [r15 + 0x20]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
je 0x1400da995
mov qword [r15 + 0x20], 0
lea rcx, [r15 + 8]
call fcn.14000fcb0
mov rcx, r15
call fcn.14012aa6c
jmp 0x1400d9fd3
call fcn.14012aa6c
jmp 0x1400d9fc0
mov rcx, qword [rdi + 0x20]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x1402336c8]
je 0x1400da9b2
mov qword [rdi + 0x20], 0
lea rcx, [rdi + 8]
call fcn.14000fcb0
mov rcx, rdi
call fcn.14012aa6c
jmp 0x1400da2a8
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x1400da5a2
xor ebp, ebp
mov r15, qword [rsp + 0x30]
jmp 0x1400d9089
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 [0x1402233e0]
mov al, byte [rsi + 0x80]
jmp 0x1400d9399
call fcn.14012aa6c
jmp 0x1400da296
lea rsi, [r15 + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400da9bc
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x58]
call fcn.1400bab60
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movabs rbx, 0xfffffffc00000000
jmp 0x1400d9c21
mov rax, qword [rsp + 0x30]
lea rsi, [rax + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400daa84
mov r15, qword [rsp + 0x30]
mov rcx, qword [r15 + 0x58]
call fcn.1400bab60
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
xor ebp, ebp
jmp 0x1400d9089
call fcn.140165a30
jmp 0x1400da5d3
call fcn.14009b9a0
jmp 0x1400d9d46
int3
int3
int3
int3
test cl, cl
je 0x1400d9470
lea rcx, [rsp + 0x270]
lea rdx, [rsp + 0x1e0]
call fcn.140123740
jmp 0x1400d9455
int3
lock dec dword [rcx + 8]
jne 0x1400d9d5a
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
mov edx, 1
call qword [0x1402233e0]
jmp 0x1400d9d5a
call fcn.1400e4ba0
jmp 0x1400d9b0b
lock dec dword [rcx]
jne 0x1400da665
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400da665
mov rcx, qword [rsp + 0x2e8]
test rcx, rcx
jne 0x1400da647
mov byte [rsp + 0x2f0], 0
mov r15, qword [rsp + 0x30]
movabs rbx, 0xfffffffc00000000
jmp 0x1400d9455
int3
int3
int3
mov rcx, rdi
call fcn.1400a3490
jmp 0x1400d9a04
lea rdx, [rsp + 0xe0]
lea r9, [rsp + 0x78]
mov rcx, r15
mov r8, rsi
call qword [0x1402233e0]
jmp 0x1400d9bf9
lea rdx, [rsp + 0x160]
mov rcx, rsi
xor r8d, r8d
call fcn.14019f9c0
jmp 0x1400d92b9
lea rdx, [rsp + 0x1e0]
call fcn.14012a3e0
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x1400da9ca
mov rcx, qword [rbp]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
cmp rax, qword [rsp + 0x1e0]
jg 0x1400da720
lea rdx, [rsp + 0x160]
mov rcx, r12
call fcn.14019efc0
movabs rbx, 0xfffffffc00000000
jmp 0x1400d92b9
lea rdx, [rsp + 0x160]
mov rcx, rsi
xor r8d, r8d
call fcn.14019f9c0
jmp 0x1400da711
int3
mov rcx, r15
call fcn.140119860
jmp 0x1400d9e52
lea rdx, [rsp + 0xc0]
mov rcx, rsi
call qword [0x1402233e0]
jmp 0x1400d960b
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsp + 0x48]
jmp 0x1400d9cf5
int3
lea rdx, [rsp + 0x160]
lea r8, [rsp + 0x80]
mov rcx, r12
call qword [0x1402233e0]
jmp 0x1400d92f3
int3
int3
int3
mov rcx, rdi
xor edx, edx
call qword [0x1402233e0]
test al, al
mov rdi, qword [rsp + 0x48]
je 0x1400d9cf5
jmp 0x1400d9e77
lea rsi, [rsp + 0x1e0]
mov rdx, rsi
call fcn.14012a3e0
mov rax, qword [rsi]
mov qword [r12 + 0x88], rax
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
je 0x1400da99f
lea rsi, [rsp + 0xc0]
mov rdx, rsi
call fcn.14012a380
mov rax, qword [rsi]
mov qword [r12 + 0x90], rax
mov ebp, dword [rsp + 0x40]
movabs rbx, 0xfffffffc00000000
jmp 0x1400d92dd
call fcn.1400e4ba0
jmp 0x1400da209
lea rdx, [rsp + 0xa0]
call fcn.14012a3e0
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x1400da9cd
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 0x1400da015
int3
cmp qword [rcx], 0
mov r15, qword [rsp + 0x30]
mov dil, byte [rsp + 0x2f]
je 0x1400d9a3d
int3
lea rcx, [0x14020310b]
lea rdx, str....._third_partylibc_srcinclude__memoryconstruct_at.h:66:_assertion___loc___nullptr_failed:_null_pointer_given_to_destroy_at_n
call fcn.140164a90
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d9f0b
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400d9f2f
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x30], r12
mov rbx, rdi
xor edi, edi
mov r12, rbp
cmp rbx, rbp
jb 0x1400da9d0
mov rax, qword [rsp + 0x30]
mov r15, qword [rax + rbp*8]
test r15, r15
je 0x1400da9d3
mov rax, qword [rsp + 0x30]
mov qword [rax + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x1402233e0]
lock dec dword [r15]
jne 0x1400da910
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x1402233e0]
inc rbp
cmp rbp, rbx
cmove rbp, rdi
cmp rbp, qword [rsp + 0x40]
jne 0x1400da8c8
cmp qword [rsp + 0x40], r12
jbe 0x1400da9e5
cmp rbx, qword [rsp + 0x40]
jb 0x1400da9d6
cmp r12, qword [rsp + 0x40]
jg 0x1400da9d9
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 0x1400da984
mov rax, rbx
add rax, 8
cmp rdi, rax
movabs rbx, 0xfffffffc00000000
mov r12, qword [rsp + 0x30]
je 0x1400d9f5f
jmp 0x1400da957
lock dec dword [rcx]
jne 0x1400da963
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
jmp 0x1400da963
call fcn.1400a3600
jmp 0x1400da4b4
lea rcx, [0x14020310b]
lea rdx, str....._third_partylibc_srcinclude_vector:618:_assertion__empty___failed:_front___called_on_an_empty_vector_n
call fcn.140164a90
call fcn.1400a3600
jmp 0x1400da4f3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400da57c
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp rbx, r12
jb 0x1400da9dc
jl 0x1400da9df
je 0x1400daa22
shl rbx, 3
shl r12, 3
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + r12]
test rcx, rcx
je 0x1400daa13
lock dec dword [rcx]
jne 0x1400daa13
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
mov rax, r12
add rax, 8
mov r12, rax
cmp rbx, rax
jne 0x1400da9f6
cmp qword [rsp + 0x40], 0
js 0x1400da9e2
movabs rbx, 0xfffffffc00000000
mov r12, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
je 0x1400d9f5f
shl rdi, 3
xor r15d, r15d
mov rcx, qword [r12 + r15]
test rcx, rcx
je 0x1400daa63
lock dec dword [rcx]
jne 0x1400daa63
mov rax, qword [rcx + 0x10]
call qword [0x1402233e0]
add r15, 8
cmp rdi, r15
mov r12, qword [rsp + 0x30]
jne 0x1400daa4b
jmp 0x1400d9f5f
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400da477
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400da5bc