Function at 0x1400627d0
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x288
movaps xmmword [rsp + 0x270], xmm6
mov r14, r8
mov qword [rsp + 0x38], rdx
mov rax, qword [0x140131028]
xor rax, rsp
mov qword [rsp + 0x268], rax
mov rax, qword [r8]
movzx eax, byte [rax + 0xd]
and eax, 0x7f
mov dl, 1
mov dword [rsp + 0x2c], edx
cmp eax, 1
mov qword [rsp + 0x30], rcx
jne 0x1400635cf
mov rax, qword [rcx + 0x10]
mov ecx, 2
lock xadd dword [rax], ecx
test cl, 1
jne 0x1400636ab
movaps xmm6, xmmword [0x140115d80]
movaps xmmword [rsp + 0x170], xmm6
movaps xmmword [rsp + 0x180], xmm6
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x1b0], xmm6
movaps xmmword [rsp + 0x1c0], xmm6
movaps xmmword [rsp + 0x1d0], xmm6
movaps xmmword [rsp + 0x1e0], xmm6
movaps xmmword [rsp + 0x1f0], xmm6
mov byte [rsp + 0x170], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x178], xmm0
movups xmmword [rsp + 0x188], xmm0
movups xmmword [rsp + 0x198], xmm0
movups xmmword [rsp + 0x1a8], xmm0
movups xmmword [rsp + 0x1b8], xmm0
movups xmmword [rsp + 0x1c8], xmm0
movups xmmword [rsp + 0x1d8], xmm0
movups xmmword [rsp + 0x1e8], xmm0
mov word [rsp + 0x5b], 0xaaaa
mov word [rsp + 0x58], 0x102
mov byte [rsp + 0x5a], 0
mov rsi, qword [r14]
mov qword [rsp + 0x50], rsi
add rsi, 0x18
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140063696
movabs rbx, 0xfffffffc00000000
cmp byte [rsp + 0x2c], 0
je 0x14006359b
mov r12, qword [r14]
mov rax, qword [r12]
mov rax, qword [rax + 0x40]
lea rcx, [0x1400934f0]
cmp rax, rcx
jne 0x1400635b4
lea r15, [r12 + 0x18]
mov r13, r15
and r13, rbx
cmp r13, qword [0x140131e48]
jne 0x14006294f
mov rcx, r15
call fcn.14005ae30
test r15, r15
je 0x14006370c
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
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov rdi, qword [r12 + 0x58]
lea rsi, [r12 + 0x68]
cmp rdi, qword [r12 + 0x60]
je 0x1400637c0
lea rbp, [r12 + 0x48]
mov rax, qword [r12 + 0x50]
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x14006377f
cmp rax, rdi
jb 0x14006370f
mov rax, qword [r12 + 0x48]
shl rdi, 7
add rax, rdi
add rax, 0x28
mov rcx, qword [rax - 0x28]
lea rdx, [rsp + 0x118]
mov qword [rdx - 0x28], rcx
mov qword [rax - 0x28], 0
movups xmm0, xmmword [rax - 0x20]
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rdx - 0x10], xmm1
movups 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 eax, dword [rax + 0x50]
mov dword [rdx + 0x50], eax
mov rcx, qword [r12 + 0x50]
mov rax, qword [r12 + 0x58]
lea rdx, [rax + 1]
cmp rcx, rdx
jb 0x140063712
cmp rcx, rax
jb 0x140063715
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
je 0x140063718
mov rcx, qword [rbp]
shl rax, 7
mov rcx, qword [rcx + rax]
test rcx, rcx
jne 0x140062ee7
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 0x1400635f9
mov rax, qword [r12 + 0x58]
cmp rax, qword [r12 + 0x60]
jne 0x140062eff
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x1400637eb
cmp r13, qword [0x140131e48]
jne 0x140062ac0
mov rcx, r15
call fcn.14005b760
lea rsi, [rsp + 0x178]
cmp byte [rsp + 0x170], 0
jne 0x140063728
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x178], rax
mov qword [rsp + 0xf0], 0
movups xmm0, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0x180], xmm0
movups xmm0, xmmword [rsp + 0x108]
movaps xmmword [rsp + 0x190], xmm0
movups xmm0, xmmword [rsp + 0x118]
movaps xmmword [rsp + 0x1a0], xmm0
movups xmm0, xmmword [rsp + 0x128]
movaps xmmword [rsp + 0x1b0], xmm0
movups xmm0, xmmword [rsp + 0x138]
movaps xmmword [rsp + 0x1c0], xmm0
movups xmm0, xmmword [rsp + 0x148]
movaps xmmword [rsp + 0x1d0], xmm0
movups xmm0, xmmword [rsp + 0x158]
movaps xmmword [rsp + 0x1e0], xmm0
mov rax, qword [rsp + 0x165]
mov qword [rsp + 0x1ed], rax
mov byte [rsp + 0x170], 1
mov rcx, qword [rsp + 0x50]
mov eax, dword [rcx + 0xc]
mov dword [rsp + 0x58], eax
movzx eax, byte [rcx + 0x10]
mov byte [rsp + 0x5c], al
test rcx, rcx
je 0x140062b9d
add rcx, 0x18
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp byte [rsp + 0x170], 0
je 0x140063125
cmp qword [rsp + 0x1a8], 0
jne 0x14006364c
mov rsi, qword [r14]
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x178], 0
movaps xmm0, xmmword [rsp + 0x180]
movups xmmword [rsp + 0x78], xmm0
movaps xmm0, xmmword [rsp + 0x190]
movups xmmword [rsp + 0x88], xmm0
mov rax, qword [rsp + 0x1ed]
mov qword [rsp + 0xe5], rax
movaps xmm0, xmmword [rsp + 0x1e0]
movups xmmword [rsp + 0xd8], xmm0
movaps xmm0, xmmword [rsp + 0x1d0]
movups xmmword [rsp + 0xc8], xmm0
movaps xmm0, xmmword [rsp + 0x1c0]
movups xmmword [rsp + 0xb8], xmm0
movaps xmm0, xmmword [rsp + 0x1b0]
movups xmmword [rsp + 0xa8], xmm0
movaps xmm0, xmmword [rsp + 0x1a0]
movups xmmword [rsp + 0x98], xmm0
mov rax, qword [rsp + 0x30]
mov rax, qword [rax]
mov rax, qword [rax + 8]
lea rcx, [0x1400fc970]
cmp rax, rcx
jne 0x14006375f
movaps xmmword [rsp + 0x60], xmm6
mov rax, qword [rsi]
mov rax, qword [rax]
lea rcx, [0x140093a30]
cmp rax, rcx
jne 0x140062ed4
mov eax, dword [rsi + 0x40]
mov dword [rsp + 0x60], eax
lea rdi, [rsi + 0xa0]
mov rax, rdi
and rax, rbx
cmp rax, qword [0x140131e48]
jne 0x140062caf
mov rcx, rdi
call fcn.14005ae30
mov qword [rsp + 0x68], rdi
mov eax, dword [rsp + 0x60]
mov ecx, dword [0x140140950]
mov rdx, qword gs:[0x58]
mov r12, qword [rdx + rcx*8]
mov ecx, dword [r12 + 0x1a0]
mov dword [rsp + 0x44], ecx
mov dword [r12 + 0x1a0], eax
mov eax, 1
lock xadd dword [0x14014b3d8], eax
mov ebp, dword [r12 + 0x1a4]
mov dword [r12 + 0x1a4], eax
movzx eax, byte [rsp + 0x58]
movzx r13d, byte [r12 + 0x190]
mov byte [r12 + 0x190], al
movaps xmmword [rsp + 0x230], xmm6
movaps xmmword [rsp + 0x240], xmm6
movaps xmmword [rsp + 0x250], xmm6
mov byte [rsp + 0x230], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x238], xmm0
movups xmmword [rsp + 0x248], xmm0
mov rax, qword [rsp + 0x68]
test rax, rax
jne 0x140062d67
lea rax, [rsp + 0x238]
movaps xmmword [rax + 8], xmm0
mov qword [rax + 0x18], 0
mov byte [rax - 8], 1
mov ecx, dword [0x140140950]
mov rdx, qword gs:[0x58]
mov rdi, qword [rdx + rcx*8]
mov r15, qword [rdi + 0x180]
mov qword [rdi + 0x180], rax
movaps xmmword [rsp + 0x200], xmm6
movaps xmmword [rsp + 0x210], xmm6
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x220], rax
mov byte [rsp + 0x200], 0
movups xmmword [rsp + 0x208], xmm0
mov qword [rsp + 0x218], 0
movaps xmmword [rsp + 0xf0], xmm6
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0x110], xmm6
movaps xmmword [rsp + 0x120], xmm6
mov byte [rsp + 0xf0], 0
movups xmmword [rsp + 0xf8], xmm0
movups xmmword [rsp + 0x108], xmm0
movups xmmword [rsp + 0x118], xmm0
mov eax, dword [rsi + 0x38]
cmp eax, 1
je 0x140062feb
cmp eax, 2
jne 0x140063041
lea rcx, [rsp + 0xf8]
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x140063871
mov edx, 1
mov r8d, 1
lock xadd dword [rax + 8], r8d
cmp r8d, 0x7fffffff
je 0x1400637db
mov r8d, dword [0x140140950]
mov r9, qword gs:[0x58]
mov r8, qword [r9 + r8*8]
lea r8, [r8 + 0x140]
mov qword [rsp + 0xf8], r8
mov r9, qword [r8]
mov qword [r8], rcx
mov qword [rsp + 0x100], r9
mov qword [rsp + 0x108], rax
lock xadd dword [rax + 8], edx
cmp edx, 0x7fffffff
je 0x1400637e8
lea rcx, [rsp + 0x110]
mov edx, dword [0x140140950]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x148]
mov qword [rcx], rdx
mov r8, qword [rdx]
mov qword [rdx], rcx
mov qword [rcx + 8], r8
mov qword [rcx + 0x10], rax
mov byte [rcx - 0x20], 1
jmp 0x140063041
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [0x140154008]
jmp 0x140062cb4
lock dec dword [rcx]
jne 0x140062a6a
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x140062a6a
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
jne 0x140063835
cmp qword [r12 + 0x50], rax
jb 0x1400637d8
mov rcx, qword [r12 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
mov qword [r12 + 0x88], rax
mov qword [r12 + 0x90], 0
jmp 0x140062aaf
call fcn.140063b80
jmp 0x140062f8a
mov rcx, qword [rsp + 0x120]
test rcx, rcx
je 0x140062f5f
lock dec dword [rcx + 8]
je 0x1400637de
mov rax, qword [rsp + 0x110]
test rax, rax
je 0x140062f77
mov rcx, qword [rsp + 0x118]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x108]
test rcx, rcx
je 0x140062f8a
lock dec dword [rcx + 8]
je 0x140062f41
mov rax, qword [rsp + 0xf8]
test rax, rax
je 0x14006307d
mov rcx, qword [rsp + 0x100]
mov qword [rax], rcx
jmp 0x14006307d
test eax, eax
jne 0x140063058
lea rcx, [rsp + 0x70]
call fcn.140063ee0
jmp 0x140063058
lock dec dword [rcx]
jne 0x140063125
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x140063125
cmp eax, 2
jne 0x140062fab
lea rcx, [rsp + 0x70]
call fcn.140063cd0
jmp 0x140063058
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x14006300a
mov ecx, 1
lock xadd dword [rax + 8], ecx
cmp ecx, 0x7fffffff
je 0x14006371b
lea rcx, [rsp + 0x208]
mov edx, dword [0x140140950]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x148]
mov qword [rcx], rdx
mov r8, qword [rdx]
mov qword [rdx], rcx
mov qword [rcx + 8], r8
mov qword [rcx + 0x10], rax
mov byte [rcx - 8], 1
movzx eax, byte [rsp + 0x59]
and eax, 0x7f
cmp eax, 1
jne 0x140062fda
lea rcx, [rsp + 0x70]
call fcn.140063960
mov rsi, qword [rsp + 0x70]
mov qword [rsp + 0x70], 0
test rsi, rsi
jne 0x140063318
cmp byte [rsp + 0xf0], 0
jne 0x140062f48
lea rsi, [rdi + 0x180]
cmp byte [rsp + 0x200], 0
je 0x1400630bd
mov rcx, qword [rsp + 0x218]
test rcx, rcx
je 0x1400630a5
lock dec dword [rcx + 8]
je 0x14006371e
mov rax, qword [rsp + 0x208]
test rax, rax
je 0x1400630bd
mov rcx, qword [rsp + 0x210]
mov qword [rax], rcx
mov qword [rsi], r15
cmp byte [rsp + 0x230], 0
je 0x1400630db
mov rsi, qword [rsp + 0x240]
test rsi, rsi
jne 0x1400633e0
lea rax, [r12 + 0x1a0]
lea rcx, [r12 + 0x1a4]
lea rdx, [r12 + 0x190]
mov byte [rdx], r13b
mov dword [rcx], ebp
mov ecx, dword [rsp + 0x44]
mov dword [rax], ecx
mov rcx, qword [rsp + 0x68]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140131e48]
jne 0x140063117
call fcn.14005b760
mov rcx, qword [rsp + 0x70]
test rcx, rcx
jne 0x140062fc2
cmp byte [rsp + 0x2c], 0
je 0x140063154
mov rax, qword [r14]
movzx eax, byte [rax + 0xd]
and al, 0x7f
cmp al, 1
jne 0x140063154
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x140063462
mov rdi, qword [r14]
mov rax, qword [rdi]
mov rax, qword [rax + 0x48]
lea rcx, [0x1400938a0]
cmp rax, rcx
jne 0x140063281
mov rsi, rdi
add rsi, 0x18
je 0x140063188
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14006344a
and rbx, rsi
cmp rbx, qword [0x140131e48]
jne 0x14006319c
mov rcx, rsi
call fcn.14005ae30
test rsi, rsi
je 0x140063709
mov byte [rdi + 0x98], 0
mov rax, qword [rdi + 0x58]
mov bpl, 1
cmp rax, qword [rdi + 0x60]
jne 0x1400631df
mov rax, qword [rdi + 0x70]
cmp rax, qword [rdi + 0x78]
jne 0x1400631df
mov byte [rdi + 0x99], 0
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x1400631dd
lock dec dword [rcx + 8]
je 0x1400632cb
xor ebp, ebp
cmp rbx, qword [0x140131e48]
jne 0x1400631f0
mov rcx, rsi
call fcn.14005b760
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bpl, bpl
jne 0x140063294
xorps xmm0, xmm0
mov rax, qword [rsp + 0x38]
movups xmmword [rax], xmm0
cmp byte [rsp + 0x170], 0
je 0x140063228
mov rcx, qword [rsp + 0x178]
test rcx, rcx
jne 0x1400632b3
mov rsi, qword [r14]
test rsi, rsi
jne 0x1400632d5
mov qword [r14], 0
test rsi, rsi
jne 0x1400632fc
mov rcx, qword [r14]
test rcx, rcx
jne 0x1400634cd
mov rcx, qword [rsp + 0x268]
xor rcx, rsp
call fcn.140096c60
mov rax, qword [rsp + 0x38]
movaps xmm6, xmmword [rsp + 0x270]
add rsp, 0x288
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rdi
xor edx, edx
call qword [0x140154008]
test al, al
je 0x140063202
mov rax, qword [r14]
mov rcx, qword [rsp + 0x38]
mov qword [rcx], rax
xorps xmm0, xmm0
mov rax, qword [r14 + 8]
movups xmmword [r14], xmm0
mov qword [rcx + 8], rax
jmp 0x14006320d
lock dec dword [rcx]
jne 0x140063228
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x140063228
call fcn.140063b80
jmp 0x1400631dd
mov rbp, qword [r14 + 8]
test rbp, rbp
je 0x140063234
mov qword [r14], 0
mov al, byte [rsi + 0xd]
and al, 0x7f
cmp al, 2
je 0x140063432
lock dec dword [rbp + 0x18]
je 0x140063363
lock dec dword [rsi + 8]
jne 0x140063244
mov rcx, rsi
mov edx, 1
call fcn.140075420
jmp 0x140063244
lock dec dword [rsi]
jne 0x14006306f
mov rax, qword [rsi + 0x10]
lea rcx, [0x1400f5110]
cmp rax, rcx
je 0x14006333f
mov rcx, rsi
call qword [0x140154008]
jmp 0x14006306f
mov rcx, qword [rsi + 0x28]
mov rax, rcx
and rax, rbx
cmp rax, qword [0x140131e48]
je 0x140063458
mov rcx, rsi
call fcn.140094ae4
jmp 0x14006306f
lea r15, [rbp + 0x20]
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140063493
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 0x1400634e6
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 0x1400634f4
lea rcx, fcn.140066790
mov rdx, rdi
xor r8d, r8d
call fcn.140068d10
jmp 0x14006323b
mov rax, qword [rsp + 0x248]
mov rcx, rsi
cmp rax, rsi
je 0x140063420
mov rdi, rax
add rdi, 0xffffffffffffffe8
je 0x14006386e
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x140063410
mov rax, qword [rax - 8]
call qword [0x140154008]
mov rax, rdi
cmp rdi, rsi
jne 0x1400633f3
mov rcx, qword [rsp + 0x240]
mov qword [rsp + 0x248], rsi
call fcn.140094ae4
jmp 0x1400630db
mov rax, qword [rbp + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
jne 0x1400632f6
jmp 0x1400634a1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140063188
call fcn.140068460
jmp 0x140063356
mov rdi, qword [rsp + 0x30]
lea rsi, [rdi + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400638ae
mov rcx, qword [rdi + 0x58]
call fcn.140076580
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x140063154
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140063378
lea rdi, [rbp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400638bc
mov rcx, qword [rbp + 0x58]
call fcn.140076580
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400632f6
lock dec dword [rcx + 8]
jne 0x140063250
mov edx, 1
call fcn.140075420
jmp 0x140063250
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14006339c
mov rbp, r12
cmp r13, rbp
jb 0x140063942
mov r15, qword [rdi + rbp*8]
mov qword [rdi + rbp*8], 0
mov rax, qword [r15 + 8]
test rax, rax
je 0x14006394b
mov rcx, r15
call qword [0x140154008]
test r15, r15
jne 0x140063586
inc rbp
cmp rbp, r13
mov eax, 0
cmove rbp, rax
cmp rbp, rbx
jne 0x1400634f7
cmp rbx, r12
jbe 0x140063909
cmp r13, rbx
jb 0x140063945
cmp r12, rbx
jg 0x140063948
shl rbx, 3
shl r12, 3
mov rcx, qword [rdi + r12]
test rcx, rcx
jne 0x140063575
add r12, 8
cmp rbx, r12
jne 0x14006355e
jmp 0x1400633c9
lock dec dword [rcx]
jne 0x140063567
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x140063567
lock dec dword [r15]
jne 0x140063527
mov rax, qword [r15 + 0x10]
mov rcx, r15
call qword [0x140154008]
jmp 0x140063527
mov rcx, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x58]
lea rdx, [rsp + 0xf0]
lea r8, [rsp + 0x50]
jmp 0x1400635c4
lea rdx, [rsp + 0xf0]
lea r8, [rsp + 0x50]
mov rcx, r12
call qword [0x140154008]
jmp 0x140062ac0
cmp eax, 2
je 0x140062839
test eax, eax
jne 0x1400636a4
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
sete al
mov dword [rsp + 0x2c], eax
jmp 0x140062839
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 0x140062a8f
mov r8, rcx
shr r8, 2
add r8, rcx
cmp r8, 4
mov edx, 3
cmovae rdx, r8
cmp rdx, rax
jae 0x140062a8f
mov rcx, rbp
call fcn.140076960
jmp 0x140062a8f
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov eax, dword [rax]
test al, 1
je 0x140062bba
mov rax, qword [rsp + 0x178]
mov qword [rsp + 0x178], 0
lea rdx, [rsp + 0x48]
mov qword [rdx], rax
mov rcx, rsi
call fcn.1400c7b10
cmp byte [rsp + 0x170], 0
jne 0x140062bba
call fcn.1400ca1e0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x140062903
call fcn.1400c9050
jmp 0x1400636c2
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
mov ecx, 0xfffffffe
lock xadd dword [rax], ecx
cmp ecx, 3
je 0x1400636cf
mov dword [rsp + 0x2c], 0
jmp 0x140062839
mov rax, qword [rsp + 0x30]
lea rsi, [rax + 0x50]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1400636fe
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax + 0x58]
call fcn.140076580
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x1400636c2
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400636e5
int3
int3
int3
int3
int3
int3
int3
call fcn.140063b80
jmp 0x1400630a5
lea rdi, [rsp + 0xf0]
mov rcx, rsi
mov rdx, rdi
call fcn.140093440
mov rcx, qword [rdi]
test rcx, rcx
je 0x140062b7a
lock dec dword [rcx]
jne 0x140062b7a
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
jmp 0x140062b7a
lea rdx, [rsp + 0x70]
lea r9, [rsp + 0x58]
mov rcx, qword [rsp + 0x30]
mov r8, rsi
call qword [0x140154008]
jmp 0x140063125
int3
cmp rax, rdi
jb 0x14006377c
mov rbp, qword [rbp]
shl rdi, 7
lea rdx, [rsp + 0x230]
call fcn.140094a00
mov rax, qword [rbp + rdi + 0x28]
lea rcx, [rsp + 0x230]
cmp rax, qword [rcx]
jg 0x1400637c0
lea rdx, [rsp + 0xf0]
mov rcx, r12
call fcn.1400fce80
jmp 0x140062a8f
lea rdx, [rsp + 0xf0]
mov rcx, rsi
xor r8d, r8d
call fcn.1400fd720
jmp 0x140062a8f
int3
int3
call fcn.140063b80
jmp 0x140062f5f
int3
lea rsi, [rsp + 0x230]
mov rdx, rsi
call fcn.140094a00
mov rax, qword [rsi]
mov qword [r12 + 0x88], rax
mov rcx, qword [r12 + 0x70]
cmp rcx, qword [r12 + 0x78]
je 0x140063832
lea rsi, [rsp + 0x200]
mov rdx, rsi
call fcn.1400949a0
mov rax, qword [rsi]
mov qword [r12 + 0x90], rax
jmp 0x140062aaf
int3
lea rdx, [rsp + 0x60]
call fcn.140094a00
mov rax, qword [r12 + 0x58]
cmp qword [r12 + 0x50], rax
jb 0x14006393f
mov rcx, qword [r12 + 0x48]
shl rax, 7
mov rax, qword [rcx + rax + 0x28]
mov rcx, qword [rsp + 0x60]
cmp rcx, rax
cmovl rax, rcx
jmp 0x140062f28
int3
mov edx, dword [0x140140950]
mov r8, qword gs:[0x58]
mov rdx, qword [r8 + rdx*8]
lea rdx, [rdx + 0x140]
mov qword [rsp + 0xf8], rdx
mov r8, qword [rdx]
mov qword [rdx], rcx
mov qword [rsp + 0x100], r8
mov qword [rsp + 0x108], rax
jmp 0x140062e98
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x14006347c
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x1400634b6
test rbx, rbx
js 0x140063954
je 0x1400633c9
shl rbx, 3
xor r15d, r15d
jmp 0x1400638f9
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
add r15, 8
cmp rbx, r15
je 0x1400633c9
mov rcx, qword [rdi + r15]
test rcx, rcx
je 0x1400638ec
lock dec dword [rcx]
je 0x1400638e2
jmp 0x1400638ec
cmp r13, r12
jb 0x14006394e
jl 0x140063951
je 0x1400638ca
shl r13, 3
shl r12, 3
jmp 0x14006392f
mov rax, qword [rcx + 0x10]
call qword [0x140154008]
add r12, 8
cmp r13, r12
je 0x1400638ca
mov rcx, qword [rdi + r12]
test rcx, rcx
je 0x140063926
lock dec dword [rcx]
je 0x14006391c
jmp 0x140063926
int3
int3
int3
int3
int3
int3
int3
int3