Function at 0x1400c2e50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
mov cl, 1
xor eax, eax
lock cmpxchg byte [0x1401c8600], cl
jne 0x1400c3254
mov esi, edx
mov rax, qword [0x1401c85f8]
mov rax, qword [rax + 8]
lock inc qword [rax + 0x10]
xor r15d, r15d
xchg qword [rax], r15
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3263
lea rcx, [0x1401dc680]
mov edx, 0xd0
xor r8d, r8d
call fcn.1400260d0
mov rdi, rax
mov dword [rax], 0
mov rax, qword [0x1401c85d8]
dec rax
mov qword [rdi + 8], rax
lea rbx, [rdi + 0x10]
mov eax, dword [0x1401d8298]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c333e
lea rdx, [0x1401d81c8]
mov rcx, rbx
call fcn.1401046d0
lea r14, [rdi + 0x18]
mov eax, dword [0x1401d8298]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3374
mov rcx, qword [0x1401d8270]
xorps xmm0, xmm0
movups xmmword [r14 + 0x10], xmm0
movups xmmword [r14], xmm0
mov qword [r14 + 0x20], 0
mov dword [rdi + 0x40], 0x3f800000
movups xmmword [rdi + 0x48], xmm0
movups xmmword [rdi + 0x58], xmm0
mov qword [rdi + 0x68], 0
mov dword [rdi + 0x70], 0x3f800000
movups xmmword [rdi + 0x78], xmm0
mov qword [rdi + 0x88], 0
mov qword [rdi + 0x90], rcx
mov qword [rdi + 0x98], r15
movaps xmmword [rdi + 0xa0], xmm0
movaps xmmword [rdi + 0xb0], xmm0
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c33b2
movzx eax, byte [0x1401d8268]
mov byte [rdi + 0xc0], al
lea rax, [0x1401c85c8]
mov qword [rdi + 0xc8], rax
test rdi, rdi
je 0x1400c2fde
lock inc dword [rdi]
mov eax, dword [0x1401d8298]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c33e8
test rdi, rdi
je 0x1400c300b
lock inc dword [rdi]
lea rcx, [0x1401d81d0]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov r15, qword [0x1401d81c8]
mov qword [0x1401d81c8], rdi
test r15, r15
je 0x1400c30c3
lock dec dword [r15]
jne 0x1400c30c3
lea rcx, [r15 + 0x18]
call fcn.1401068d0
mov r12, qword [r15 + 0x10]
mov qword [r15 + 0x10], 0
test r12, r12
je 0x1400c308f
mov rcx, r12
call fcn.140104cd0
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3603
lea rcx, [0x1401dc680]
mov rdx, r12
call fcn.1400b3a30
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c344d
lea rcx, [0x1401dc680]
mov rdx, r15
call fcn.1400b3a30
lea rcx, [0x1401d81d0]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp esi, 1
jne 0x1400c31e8
mov eax, dword [0x1401dada0]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c341e
lea rcx, [0x1401dad80]
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov rsi, qword [0x1401dad90]
mov qword [0x1401dad90], rdi
test rsi, rsi
je 0x1400c31b5
lock dec dword [rsi]
jne 0x1400c31b5
lea rcx, [rsi + 0x18]
call fcn.1401068d0
mov rdi, qword [rsi + 0x10]
mov qword [rsi + 0x10], 0
test rdi, rdi
je 0x1400c3181
mov rcx, rdi
call fcn.140104cd0
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c36de
lea rcx, [0x1401dc680]
mov rdx, rdi
call fcn.1400b3a30
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400c3528
lea rcx, [0x1401dc680]
mov rdx, rsi
call fcn.1400b3a30
mov qword [0x1401dad98], 0
lea rcx, [0x1401dad80]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
lea rcx, [0x1401dad88]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_WakeConditionVariable]
cmp esi, 3
jne 0x1400c3206
mov byte [0x1401c8600], 2
cmp byte [0x1401c8602], 0
je 0x1400c320e
mov byte [0x1401c8601], 1
jmp 0x1400c320e
mov rcx, rdi
call fcn.1400c1de0
test rdi, rdi
je 0x1400c3254
lock dec dword [rdi]
jne 0x1400c3254
mov rcx, r14
call fcn.1401068d0
mov rsi, qword [rbx]
mov qword [rbx], 0
test rsi, rsi
je 0x1400c323f
mov rcx, rsi
call fcn.140104cd0
mov rcx, rsi
call 0x1400e4c30
mov rcx, rdi
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
jmp 0x1400e4c30
nop
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400c2eac
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x2c], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x5f], 0xaa
mov word [rsp + 0x5d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x25]
mov qword [rsp + 0x45], rax
movzx eax, word [rsp + 0x2d]
mov word [rsp + 0x4d], ax
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x2c]
mov qword [rsp + 0x4c], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x58], al
movzx eax, word [rsp + 0x39]
mov word [rsp + 0x59], ax
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x40]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400c2eac
lea rcx, [0x1401d8298]
call fcn.140150ec0
cmp dword [0x1401d8298], 0xffffffff
jne 0x1400c2f00
lea rcx, [0x1401d81c8]
call fcn.1400c2d40
lea rcx, [0x1401d8298]
call fcn.140150f58
jmp 0x1400c2f00
lea rcx, [0x1401d8298]
call fcn.140150ec0
mov eax, dword [0x1401d8298]
cmp eax, 0xffffffff
jne 0x1400c2f38
lea rcx, [0x1401d81c8]
call fcn.1400c2d40
lea rcx, [0x1401d8298]
call fcn.140150f58
mov eax, dword [0x1401d8298]
jmp 0x1400c2f38
lea rcx, [0x1401d8298]
call fcn.140150ec0
cmp dword [0x1401d8298], 0xffffffff
jne 0x1400c2fbb
lea rcx, [0x1401d81c8]
call fcn.1400c2d40
lea rcx, [0x1401d8298]
call fcn.140150f58
jmp 0x1400c2fbb
lea rcx, [0x1401d8298]
call fcn.140150ec0
cmp dword [0x1401d8298], 0xffffffff
jne 0x1400c3003
lea rcx, [0x1401d81c8]
call fcn.1400c2d40
lea rcx, [0x1401d8298]
call fcn.140150f58
jmp 0x1400c3003
lea rcx, [0x1401dada0]
call fcn.140150ec0
cmp dword [0x1401dada0], 0xffffffff
jne 0x1400c30fe
call fcn.1400c3ca0
lea rcx, [0x1401dada0]
call fcn.140150f58
jmp 0x1400c30fe
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400c30b4
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x2c], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x5f], 0xaa
mov word [rsp + 0x5d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x25]
mov qword [rsp + 0x45], rax
movzx eax, word [rsp + 0x2d]
mov word [rsp + 0x4d], ax
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x2c]
mov qword [rsp + 0x4c], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x58], al
movzx eax, word [rsp + 0x39]
mov word [rsp + 0x59], ax
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x40]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400c30b4
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400c31a6
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x2c], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x5f], 0xaa
mov word [rsp + 0x5d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x25]
mov qword [rsp + 0x45], rax
movzx eax, word [rsp + 0x2d]
mov word [rsp + 0x4d], ax
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x2c]
mov qword [rsp + 0x4c], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x58], al
movzx eax, word [rsp + 0x39]
mov word [rsp + 0x59], ax
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x40]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400c31a6
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400c3080
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x2c], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x5f], 0xaa
mov word [rsp + 0x5d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x25]
mov qword [rsp + 0x45], rax
movzx eax, word [rsp + 0x2d]
mov word [rsp + 0x4d], ax
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x2c]
mov qword [rsp + 0x4c], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x58], al
movzx eax, word [rsp + 0x39]
mov word [rsp + 0x59], ax
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x40]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400c3080
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400c3172
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x2c], xmm0
movaps xmmword [rsp + 0x20], xmm0
mov byte [rsp + 0x5f], 0xaa
mov word [rsp + 0x5d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x28], xmm0
mov byte [rsp + 0x38], 0
mov dword [rsp + 0x20], 0
mov byte [rsp + 0x24], 0
mov eax, dword [rsp + 0x20]
mov dword [rsp + 0x40], eax
movzx eax, byte [rsp + 0x24]
mov byte [rsp + 0x44], al
mov rax, qword [rsp + 0x25]
mov qword [rsp + 0x45], rax
movzx eax, word [rsp + 0x2d]
mov word [rsp + 0x4d], ax
movzx eax, byte [rsp + 0x2f]
mov byte [rsp + 0x4f], al
mov rax, qword [rsp + 0x2c]
mov qword [rsp + 0x4c], rax
mov eax, dword [rsp + 0x34]
mov dword [rsp + 0x54], eax
movzx eax, byte [rsp + 0x38]
mov byte [rsp + 0x58], al
movzx eax, word [rsp + 0x39]
mov word [rsp + 0x59], ax
movzx eax, byte [rsp + 0x3b]
mov byte [rsp + 0x5b], al
mov byte [rsp + 0x5c], 0
mov dword [rsp + 0x60], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x40]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400c3172
push rsi
sub rsp, 0x80
mov rsi, rcx
mov rax, qword [0x1401c6028]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov eax, dword [0x1401de080]
mov ecx, dword [0x1401d52c8]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x1400e4c91
lea rcx, [0x1401dc680]
mov rdx, rsi
call fcn.1400b3a30
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140152280
nop
add rsp, 0x80
pop rsi
ret
lea rcx, [0x1401de080]
call fcn.140150ec0
cmp dword [0x1401de080], 0xffffffff
jne 0x1400e4c6b
movaps xmm0, xmmword [0x1401990c0]
movups xmmword [rsp + 0x5c], xmm0
movaps xmmword [rsp + 0x50], xmm0
mov byte [rsp + 0x3f], 0xaa
mov word [rsp + 0x3d], 0xaaaa
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov byte [rsp + 0x68], 0
mov dword [rsp + 0x50], 0
mov byte [rsp + 0x54], 0
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
movzx eax, byte [rsp + 0x54]
mov byte [rsp + 0x24], al
mov rax, qword [rsp + 0x55]
mov qword [rsp + 0x25], rax
movzx eax, word [rsp + 0x5d]
mov word [rsp + 0x2d], ax
movzx eax, byte [rsp + 0x5f]
mov byte [rsp + 0x2f], al
mov rax, qword [rsp + 0x5c]
mov qword [rsp + 0x2c], rax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x34], eax
movzx eax, byte [rsp + 0x68]
mov byte [rsp + 0x38], al
movzx eax, word [rsp + 0x69]
mov word [rsp + 0x39], ax
movzx eax, byte [rsp + 0x6b]
mov byte [rsp + 0x3b], al
mov byte [rsp + 0x3c], 0
mov dword [rsp + 0x40], 0
lea rcx, [0x1401dc680]
lea rdx, [rsp + 0x20]
call fcn.1400b2640
lea rcx, [0x1401de080]
call fcn.140150f58
jmp 0x1400e4c6b