Function at 0x140075e20
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x2d8
movaps xmmword [rsp + 0x2c0], xmm6
mov r14, r8
mov qword [rsp + 0x30], rdx
mov r15, rcx
mov rax, qword [0x14013b028]
xor rax, rsp
mov qword [rsp + 0x2b8], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0xd]
and eax, 0x7f
mov r13b, 1
cmp eax, 1
jne 0x1400760f5
mov rax, qword [r15 + 0x10]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x140076d28
movaps xmm6, xmmword [0x14011bb10]
movaps xmmword [rsp + 0x230], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x2b0], rax
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
movaps xmmword [rsp + 0x250], xmm6
movaps xmmword [rsp + 0x240], xmm6
mov byte [rsp + 0x230], 0
mov byte [rsp + 0x2b0], 0
mov dword [rsp + 0x48], 0x102
mov byte [rsp + 0x4c], 0
mov rsi, qword [r14]
mov qword [rsp + 0x90], rsi
add rsi, 0x18
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140076d42
movabs rbp, 0xfffffffc00000000
test r13b, r13b
mov dword [rsp + 0x2c], r13d
je 0x140076e88
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x40]
lea rcx, [0x140091ef0]
cmp rax, rcx
jne 0x14007621d
lea rbx, [r12 + 0x18]
mov r13, rbx
and r13, rbp
cmp r13, qword [0x14013d508]
jne 0x140075f69
mov rcx, rbx
call fcn.14005a1e0
test rbx, rbx
je 0x140076e50
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
movaps xmmword [rsp + 0x130], xmm6
movaps xmmword [rsp + 0x120], xmm6
mov rax, qword [r12 + 0x58]
lea rsi, [r12 + 0x68]
cmp rax, qword [r12 + 0x60]
je 0x140076ef7
lea rbp, [r12 + 0x48]
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x140076eae
cmp qword [r12 + 0x50], rax
jb 0x140076e53
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 + 0x140]
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 0x140076e56
cmp rcx, rax
jb 0x140076e59
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140076e5c
mov rdx, qword [rbp]
shl rax, 7
mov rcx, qword [rdx + rax + 0x78]
mov qword [rdx + rax + 0x78], 0
test rcx, rcx
jne 0x140076caa
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 0x14007615a
mov rax, qword [r12 + 0x58]
cmp rax, qword [r12 + 0x60]
jne 0x14007610e
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
movabs rbp, 0xfffffffc00000000
jne 0x140076f22
cmp r13, qword [0x14013d508]
mov r13d, dword [rsp + 0x2c]
jne 0x140076236
mov rcx, rbx
call fcn.14005a320
jmp 0x140076236
test eax, eax
jne 0x140076d18
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
sete r13b
jmp 0x140075e84
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
movabs rbp, 0xfffffffc00000000
jne 0x140076f74
cmp qword [r12 + 0x50], rax
jb 0x140076f0f
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 0x1400760d6
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 0x1400760b0
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x1400760b0
mov rcx, rbp
call fcn.140018680
jmp 0x1400760b0
lock dec dword [rcx]
jne 0x1400761bc
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
mov rcx, qword [rsp + 0x198]
test rcx, rcx
je 0x1400763e1
lock dec dword [rcx]
jne 0x1400763e1
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x1400763e1
lock dec dword [rcx]
jne 0x1400761f4
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
mov rcx, qword [rsp + 0x218]
test rcx, rcx
je 0x1400763bf
lock dec dword [rcx]
jne 0x1400763bf
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x1400763bf
lea rdx, [rsp + 0x120]
lea r8, [rsp + 0x90]
mov rcx, r12
call qword [0x140163008]
movaps xmm0, xmmword [rsp + 0x120]
movaps xmm1, xmmword [rsp + 0x130]
movaps xmm2, xmmword [rsp + 0x140]
movaps xmm3, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x1b0], xmm1
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x1c0], xmm2
movaps xmmword [rsp + 0x1d0], xmm3
movaps xmm0, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmm0, xmmword [rsp + 0x170]
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmm0, xmmword [rsp + 0x180]
movaps xmmword [rsp + 0x200], xmm0
mov rax, qword [rsp + 0x18d]
mov qword [rsp + 0x20d], rax
mov rax, qword [rsp + 0x198]
mov qword [rsp + 0x218], rax
mov qword [rsp + 0x198], 0
mov byte [rsp + 0x220], 1
mov al, 1
movzx ecx, byte [rsp + 0x2b0]
cmp cl, al
je 0x140076e2b
test cl, cl
jne 0x140076e5f
movaps xmm0, xmmword [rsp + 0x1a0]
movaps xmm1, xmmword [rsp + 0x1b0]
movaps xmm2, xmmword [rsp + 0x1c0]
movaps xmm3, xmmword [rsp + 0x1d0]
movaps xmmword [rsp + 0x240], xmm1
movaps xmmword [rsp + 0x230], xmm0
movaps xmmword [rsp + 0x250], xmm2
movaps xmmword [rsp + 0x260], xmm3
movaps xmm0, xmmword [rsp + 0x1e0]
movaps xmmword [rsp + 0x270], xmm0
movaps xmm0, xmmword [rsp + 0x1f0]
movaps xmmword [rsp + 0x280], xmm0
movaps xmm0, xmmword [rsp + 0x200]
movaps xmmword [rsp + 0x290], xmm0
mov rax, qword [rsp + 0x20d]
mov qword [rsp + 0x29d], rax
mov rax, qword [rsp + 0x218]
mov qword [rsp + 0x2a8], rax
mov qword [rsp + 0x218], 0
mov byte [rsp + 0x2b0], 1
cmp byte [rsp + 0x220], 0
je 0x1400763bf
mov rcx, qword [rsp + 0x218]
mov qword [rsp + 0x218], 0
test rcx, rcx
jne 0x1400761e5
test r13b, r13b
je 0x1400763e1
mov rcx, qword [rsp + 0x198]
mov qword [rsp + 0x198], 0
test rcx, rcx
jne 0x1400761ad
mov rcx, qword [rsp + 0x90]
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x48], eax
movzx eax, byte [rcx + 0x10]
mov byte [rsp + 0x4c], al
test rcx, rcx
je 0x140076407
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rsp + 0x2b0], 0
je 0x140076938
cmp qword [rsp + 0x258], 0
jne 0x140076d50
mov rsi, qword [r14]
movaps xmm0, xmmword [rsp + 0x230]
movaps xmm1, xmmword [rsp + 0x240]
movaps xmm2, xmmword [rsp + 0x250]
movaps xmm3, xmmword [rsp + 0x260]
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm3
movaps xmm0, xmmword [rsp + 0x270]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rsp + 0x290]
movaps xmmword [rsp + 0x100], xmm0
mov rax, qword [rsp + 0x29d]
mov qword [rsp + 0x10d], rax
mov rax, qword [rsp + 0x2a8]
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x2a8], 0
mov rax, qword [r15]
mov rax, qword [rax + 8]
lea rcx, [0x14009e030]
cmp rax, rcx
jne 0x14007670e
movaps xmmword [rsp + 0x90], xmm6
mov rax, qword [rsi]
mov rax, qword [rax]
lea rcx, [0x14009e6c0]
cmp rax, rcx
je 0x1400766d9
lea rdx, [rsp + 0x90]
mov rcx, rsi
call qword [0x140163008]
mov eax, dword [rsp + 0x90]
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov r12, qword [rdx + rcx*8]
mov ecx, dword [r12 + 0x198]
mov dword [rsp + 0x3c], ecx
mov dword [r12 + 0x198], eax
mov eax, 1
lock xadd dword [0x14015a600], eax
mov ebp, dword [r12 + 0x19c]
mov dword [r12 + 0x19c], eax
movzx eax, byte [rsp + 0x48]
movzx r13d, byte [r12 + 0x180]
mov byte [r12 + 0x180], al
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x80], xmm6
mov byte [rsp + 0x70], 0
mov byte [rsp + 0x88], 0
mov rax, qword [rsp + 0x98]
test rax, rax
jne 0x1400765a8
xorps xmm0, xmm0
lea rax, [rsp + 0x70]
movaps xmmword [rax], xmm0
mov qword [rax + 0x10], 0
mov byte [rax + 0x18], 1
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rdi, qword [rdx + rcx*8]
mov rbx, qword [rdi + 0x178]
mov qword [rdi + 0x178], rax
movaps xmmword [rsp + 0x50], xmm6
movaps xmmword [rsp + 0x60], xmm6
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x68], 0
movaps xmmword [rsp + 0x1a0], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x1d0], rax
movaps xmmword [rsp + 0x1c0], xmm6
movaps xmmword [rsp + 0x1b0], xmm6
mov byte [rsp + 0x1a0], 0
mov byte [rsp + 0x1d0], 0
mov eax, dword [rsi + 0x38]
cmp eax, 1
je 0x1400767c5
cmp eax, 2
jne 0x14007681d
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x140076fc2
mov ecx, 1
mov edx, 1
lock xadd dword [rax + 8], edx
cmp edx, 0x7fffffff
je 0x140076f1c
mov edx, dword [0x140149910]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x130]
lea r8, [rsp + 0x1a0]
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 0x140076f1f
lea rcx, [rsp + 0x1d0]
lea rdx, [rsp + 0x1b8]
mov r8d, dword [0x140149910]
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 0x14007681a
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0x90], eax
lea rdi, [rsi + 0xa0]
mov rax, rdi
and rax, rbp
cmp rax, qword [0x14013d508]
jne 0x140076701
mov rcx, rdi
call fcn.14005a1e0
mov qword [rsp + 0x98], rdi
jmp 0x140076509
lea rdx, [rsp + 0xa0]
lea r9, [rsp + 0x48]
mov rcx, r15
mov r8, rsi
call qword [0x140163008]
jmp 0x140076938
mov rcx, qword [rsp + 0x1c8]
test rcx, rcx
je 0x140076743
lock dec dword [rcx + 8]
je 0x140076f12
mov rax, qword [rsp + 0x1b8]
test rax, rax
je 0x14007675b
mov rcx, qword [rsp + 0x1c0]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x1b0]
test rcx, rcx
je 0x140076772
lock dec dword [rcx + 8]
je 0x140076d38
mov rax, qword [rsp + 0x1a0]
test rax, rax
je 0x14007687e
mov rcx, qword [rsp + 0x1a8]
mov qword [rax], rcx
jmp 0x14007687e
test eax, eax
jne 0x140076ce5
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x48]
mov rcx, r15
mov r9, rsi
call fcn.140077430
jmp 0x140076853
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x1400767e4
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x140076e7b
lea rcx, [rsp + 0x68]
mov edx, dword [0x140149910]
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 + 0x50]
mov qword [rdx], r9
mov qword [r9 + 8], r8
mov qword [r9 + 0x10], rax
mov byte [rcx], 1
movzx eax, byte [rsp + 0x49]
and eax, 0x7f
cmp eax, 1
jne 0x140076793
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x48]
mov rcx, r15
mov r9, rsi
call fcn.140077150
mov rsi, qword [rsp + 0x118]
mov qword [rsp + 0x118], 0
test rsi, rsi
jne 0x140076c54
cmp byte [rsp + 0x1d0], 0
jne 0x14007672c
lea rsi, [rdi + 0x178]
cmp byte [rsp + 0x68], 0
je 0x1400768b2
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400768a0
lock dec dword [rcx + 8]
je 0x140076e7e
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x1400768b2
mov rcx, qword [rsp + 0x58]
mov qword [rax], rcx
mov qword [rsi], rbx
cmp byte [rsp + 0x88], 0
je 0x1400768cd
mov rsi, qword [rsp + 0x70]
test rsi, rsi
jne 0x140076c08
lea rax, [r12 + 0x198]
lea rcx, [r12 + 0x19c]
lea rdx, [r12 + 0x180]
mov byte [rdx], r13b
mov dword [rcx], ebp
mov ecx, dword [rsp + 0x3c]
mov dword [rax], ecx
mov rcx, qword [rsp + 0x98]
mov rax, rcx
movabs rbp, 0xfffffffc00000000
and rax, rbp
cmp rax, qword [0x14013d508]
jne 0x140076916
call fcn.14005a320
mov rcx, qword [rsp + 0x118]
mov qword [rsp + 0x118], 0
test rcx, rcx
mov r13d, dword [rsp + 0x2c]
jne 0x140076b00
test r13b, r13b
je 0x140076960
mov rax, qword [r14]
movzx eax, byte [rax + 0xd]
and al, 0x7f
cmp al, 1
jne 0x140076960
mov rax, qword [r15 + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x140076de6
mov rdi, qword [r14]
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
lea rcx, [0x14007a020]
cmp rax, rcx
je 0x140076a17
mov rcx, rdi
xor edx, edx
call qword [0x140163008]
test al, al
mov r15, qword [rsp + 0x30]
jne 0x140076aae
xorps xmm0, xmm0
movups xmmword [r15], xmm0
cmp byte [rsp + 0x2b0], 0
je 0x1400769c0
mov rcx, qword [rsp + 0x2a8]
mov qword [rsp + 0x2a8], 0
test rcx, rcx
jne 0x140076ac8
mov rsi, qword [r14]
test rsi, rsi
jne 0x140076b38
mov qword [r14], 0
test rsi, rsi
jne 0x140076b5f
mov rcx, qword [r14]
test rcx, rcx
jne 0x140076e12
mov rcx, qword [rsp + 0x2b8]
xor rcx, rsp
call fcn.1400a1ff0
mov rax, r15
movaps xmm6, xmmword [rsp + 0x2c0]
add rsp, 0x2d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rdi
add rsi, 0x18
mov r15, qword [rsp + 0x30]
je 0x140076a36
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140076bfa
and rbp, rsi
cmp rbp, qword [0x14013d508]
jne 0x140076a4a
mov rcx, rsi
call fcn.14005a1e0
test rsi, rsi
je 0x140076e4d
mov byte [rdi + 0x98], 0
mov rax, qword [rdi + 0x58]
mov bl, 1
cmp rax, qword [rdi + 0x60]
jne 0x140076a8c
mov rax, qword [rdi + 0x70]
cmp rax, qword [rdi + 0x78]
jne 0x140076a8c
mov byte [rdi + 0x99], 0
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x140076a8a
lock dec dword [rcx + 8]
je 0x140076b6e
xor ebx, ebx
cmp rbp, qword [0x14013d508]
jne 0x140076a9d
mov rcx, rsi
call fcn.14005a320
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bl, bl
je 0x140076992
mov rax, qword [r14]
mov qword [r15], rax
xorps xmm0, xmm0
mov rax, qword [r14 + 8]
movups xmmword [r14], xmm0
mov qword [r15 + 8], rax
jmp 0x140076999
lock dec dword [rcx]
jne 0x140076ad7
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
mov rcx, qword [rsp + 0x2a8]
test rcx, rcx
je 0x1400769c0
lock dec dword [rcx]
jne 0x1400769c0
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x1400769c0
lock dec dword [rcx]
jne 0x140076b0f
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x140076938
lock dec dword [rcx]
jne 0x140076938
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x140076938
mov rbp, qword [r14 + 8]
test rbp, rbp
je 0x1400769cc
mov qword [r14], 0
mov al, byte [rsi + 0xd]
and al, 0x7f
cmp al, 2
je 0x140076d9f
lock dec dword [rbp + 0x18]
je 0x140076b78
lock dec dword [rsi + 8]
jne 0x1400769dc
jmp 0x140076d8d
call fcn.14007a0f0
jmp 0x140076a8a
lea r15, [rbp + 0x20]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140076ffa
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 0x140077008
mov rdi, qword [rbp + 0x30]
mov r13, qword [rbp + 0x38]
xorps xmm0, xmm0
movups xmmword [rbp + 0x30], xmm0
mov r12, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x48]
movups xmmword [rbp + 0x40], xmm0
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp r12, rbx
jne 0x140077016
lea rcx, fcn.14005e720
mov rdx, rdi
xor r8d, r8d
call fcn.1400648c0
mov r15, qword [rsp + 0x30]
jmp 0x1400769d3
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140076a36
mov rcx, qword [rsp + 0x78]
mov rax, rsi
cmp rcx, rsi
je 0x140076c42
mov rdi, rcx
add rdi, 0xffffffffffffffe8
je 0x140076fbf
mov rax, qword [rcx - 8]
test rax, rax
je 0x140076c35
add rcx, 0xfffffffffffffff0
call qword [0x140163008]
mov rcx, rdi
cmp rdi, rsi
jne 0x140076c18
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x78], rsi
mov rcx, rax
call fcn.14009fde8
jmp 0x1400768cd
lock dec dword [rsi]
jne 0x140076870
mov rax, qword [rsi + 0x10]
lea rcx, [0x140039dd0]
cmp rax, rcx
je 0x140076c7b
mov rcx, rsi
call qword [0x140163008]
jmp 0x140076870
mov rcx, qword [rsi + 0x28]
mov rax, rcx
movabs rdx, 0xfffffffc00000000
and rax, rdx
cmp rax, qword [0x14013d508]
jne 0x140076c9d
call fcn.1400675c0
mov rcx, rsi
call fcn.14009fde8
jmp 0x140076870
lea rsi, [rdx + rax]
add rsi, 0x78
lock dec dword [rcx]
jne 0x140076cc1
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
mov rcx, qword [rsi]
test rcx, rcx
je 0x14007608b
lock dec dword [rcx]
jne 0x14007608b
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x14007608b
cmp eax, 2
jne 0x140076853
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0xa0]
lea r8, [rsp + 0x48]
mov rcx, r15
mov r9, rsi
call fcn.140008210
jmp 0x140076853
cmp eax, 2
je 0x140075e84
call fcn.1400d4280
jmp 0x140076d30
mov rcx, r15
call fcn.140105200
xor r13d, r13d
jmp 0x140075e84
call fcn.14007a0f0
jmp 0x140076772
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140075f1a
mov rax, qword [r15 + 0x10]
mov eax, dword [rax]
test al, 1
je 0x140076424
lea rsi, [rsp + 0x2a8]
mov rax, qword [rsi]
mov qword [rsi], 0
lea rdx, [rsp + 0x40]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140105150
cmp byte [rsi + 8], 0
jne 0x140076424
int3
mov rcx, rsi
mov edx, 1
call fcn.14007e0a0
jmp 0x1400769dc
mov rax, qword [rbp + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x140076b59
lea rdi, [rbp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140077141
mov rcx, qword [rbp + 0x58]
call fcn.14007ad50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov r15, qword [rsp + 0x30]
jmp 0x140076b59
lea rsi, [r15 + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400770ab
mov rcx, qword [r15 + 0x58]
call fcn.14007ad50
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140076960
lock dec dword [rcx + 8]
jne 0x1400769e8
mov edx, 1
call fcn.14007e0a0
jmp 0x1400769e8
test cl, cl
je 0x1400763bf
lea rcx, [rsp + 0x230]
lea rdx, [rsp + 0x1a0]
call fcn.14009df80
jmp 0x140076398
int3
int3
int3
int3
int3
int3
lea rsi, [rsp + 0x230]
mov rcx, rsi
call fcn.14009fb90
mov byte [rsi + 0x80], 0
jmp 0x140076398
int3
call fcn.14007a0f0
jmp 0x1400768a0
lea rsi, [rsp + 0x1a0]
lea r8, [rsp + 0x90]
mov rcx, r14
mov rdx, rsi
call fcn.140106820
mov al, byte [rsi + 0x80]
jmp 0x1400762dc
lea rdx, [rsp + 0x1a0]
call fcn.140095b80
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x1400770b9
mov rcx, qword [rbp]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
cmp rax, qword [rsp + 0x1a0]
jg 0x140076ef7
lea rdx, [rsp + 0x120]
mov rcx, r12
call fcn.140105530
jmp 0x1400760b0
lea rdx, [rsp + 0x120]
mov rcx, rsi
xor r8d, r8d
call fcn.140106670
jmp 0x1400760b0
int3
call fcn.14007a0f0
jmp 0x140076743
int3
int3
lea rsi, [rsp + 0x1a0]
mov rdx, rsi
call fcn.140095b80
mov rax, qword [rsi]
mov qword [r12 + 0x88], rax
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
je 0x1400770bc
lea rsi, [rsp + 0x70]
mov rdx, rsi
call fcn.14009fbe0
mov rax, qword [rsi]
mov qword [r12 + 0x90], rax
movabs rbp, 0xfffffffc00000000
jmp 0x1400760d6
lea rdx, [rsp + 0x50]
call fcn.140095b80
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x1400770bf
mov rcx, qword [r12 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x20]
mov rcx, qword [rsp + 0x50]
cmp rcx, rax
cmovl rax, rcx
mov qword [r12 + 0x88], rax
movabs rbp, 0xfffffffc00000000
jmp 0x140076149
int3
mov ecx, dword [0x140149910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
lea rcx, [rcx + 0x130]
lea rdx, [rsp + 0x1a0]
mov qword [rdx], rcx
mov r8, qword [rcx]
mov qword [rcx], rdx
mov qword [rdx + 8], r8
mov qword [rdx + 0x10], rax
jmp 0x140076698
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140076b8d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140076bb1
mov rbp, r12
cmp r13, rbp
jb 0x1400770c2
mov r15, qword [rdi + rbp*8]
test r15, r15
je 0x1400770c5
mov qword [rdi + rbp*8], 0
mov rax, qword [r15 + 8]
mov rcx, r15
call qword [0x140163008]
lock dec dword [r15]
jne 0x140077057
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x140163008]
inc rbp
cmp rbp, r13
mov eax, 0
cmove rbp, rax
cmp rbp, rbx
jne 0x140077019
cmp rbx, r12
jbe 0x1400770d7
cmp r13, rbx
jb 0x1400770c8
cmp r12, rbx
jg 0x1400770cb
shl rbx, 3
shl r12, 3
mov rcx, qword [rdi + r12]
test rcx, rcx
jne 0x14007709a
add r12, 8
cmp rbx, r12
je 0x140076bde
jmp 0x140077082
lock dec dword [rcx]
jne 0x14007708b
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
jmp 0x14007708b
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140076dfb
int3
int3
int3
int3
int3
int3
int3
int3
int3
int3
cmp r13, r12
jb 0x1400770ce
jl 0x1400770d1
je 0x140077109
shl r13, 3
shl r12, 3
mov rcx, qword [rdi + r12]
test rcx, rcx
je 0x140077100
lock dec dword [rcx]
jne 0x140077100
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
add r12, 8
cmp r13, r12
jne 0x1400770e8
test rbx, rbx
js 0x1400770d4
je 0x140076bde
shl rbx, 3
xor r15d, r15d
mov rcx, qword [rdi + r15]
test rcx, rcx
je 0x140077133
lock dec dword [rcx]
jne 0x140077133
mov rax, qword [rcx + 0x10]
call qword [0x140163008]
add r15, 8
cmp rbx, r15
jne 0x14007711b
jmp 0x140076bde
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140076dca