Function at 0x14009dcc0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov ebp, r9d
mov rbx, r8
mov r15, rdx
mov r12, rcx
mov rdi, qword [rsp + 0xb0]
mov rax, qword [0x140327038]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov ecx, 0x118
call fcn.14013a6b4
mov r14, rax
test rdi, rdi
je 0x14009dd1a
mov eax, 1
lock xadd dword [rdi + 8], eax
cmp eax, 0x7fffffff
je 0x14009e136
mov sil, byte [rbx + 1]
mov dword [rbx + 8], 0
mov r13, qword [rbx + 0x10]
mov qword [rbx + 0x10], 0
test r13, r13
je 0x14009deee
mov rdi, r12
cmp r13, 0xffffffffffffffff
je 0x14009e145
call fcn.1400a6030
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
call fcn.1400a6030
mov ecx, r12d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r12, rdi
mov rdi, qword [rsp + 0xb0]
mov rcx, r14
mov rdx, r15
mov r8d, ebp
xor r9d, r9d
call fcn.14009e180
lea rax, [0x1402e31c8]
mov qword [r14 + 0x50], rax
lea rdx, str.ChannelWin
lea r8, str.....mojocorechannel_win.cc
lea r15, [rsp + 0x20]
mov rcx, r15
mov r9d, 0x42
call fcn.1400b5b90
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [r14 + 0x70], xmm1
movups xmmword [r14 + 0x60], xmm0
lea rax, [0x1402e4308]
mov qword [r14], rax
lea rax, [0x1402e31b8]
mov qword [r14 + 0x50], rax
lea rax, [0x1402e3320]
mov qword [r14 + 0x58], rax
mov byte [r14 + 0x80], sil
mov qword [r14 + 0x88], r14
test r14, r14
je 0x14009de07
mov eax, 1
lock xadd dword [r14 + 8], eax
cmp eax, 0x7fffffff
je 0x14009e13c
mov qword [r14 + 0x90], 0
mov qword [r14 + 0x98], rdi
test rdi, rdi
je 0x14009de33
mov eax, 1
lock xadd dword [rdi + 8], eax
cmp eax, 0x7fffffff
je 0x14009e139
xorps xmm0, xmm0
movups xmmword [r14 + 0xb0], xmm0
movups xmmword [r14 + 0xa0], xmm0
mov byte [r14 + 0xc0], 0
movups xmmword [r14 + 0xc8], xmm0
movups xmmword [r14 + 0xd8], xmm0
movups xmmword [r14 + 0xe8], xmm0
movups xmmword [r14 + 0xf8], xmm0
mov qword [r14 + 0x108], 0
mov dword [r14 + 0x110], 1
test r13, r13
je 0x14009def6
cmp r13, 0xffffffffffffffff
je 0x14009e156
call fcn.1400a6030
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
call fcn.1400a6030
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test r13, r13
je 0x14009defb
cmp r13, 0xffffffffffffffff
je 0x14009e166
call fcn.1400a6030
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
call fcn.1400a6030
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test r13, r13
je 0x14009df00
cmp r13, 0xffffffffffffffff
jne 0x14009df05
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
jmp 0x14009df17
xor r13d, r13d
jmp 0x14009dd6e
xor r13d, r13d
jmp 0x14009dead
xor r13d, r13d
jmp 0x14009ded6
xor r13d, r13d
jmp 0x14009df1f
call fcn.1400a6030
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
call fcn.1400a6030
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rsi, [r13 + 1]
cmp rsi, 2
jb 0x14009df2e
call fcn.1400a6030
cmp qword [r14 + 0x90], r13
je 0x14009df74
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [r14 + 0x90]
inc rax
cmp rax, 2
jae 0x14009e0af
cmp rsi, 2
jb 0x14009df65
mov qword [r14 + 0x90], r13
call fcn.1400a6030
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r13, qword [r14 + 0x90]
inc r13
cmp r13, 1
jbe 0x14009e142
test rdi, rdi
je 0x14009dfbe
lock dec dword [rdi + 8]
jne 0x14009dfbe
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14009dfb0
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14009e048
mov rcx, rdi
mov edx, 1
call qword [case.0x14017aab5.0]
mov qword [r12], r14
test r14, r14
je 0x14009dfdd
mov eax, 1
lock xadd dword [r14 + 8], eax
cmp eax, 0x7fffffff
je 0x14009e13f
mov rax, qword [rbx + 0x10]
inc rax
cmp rax, 2
jae 0x14009e0f4
test rdi, rdi
je 0x14009e027
lock dec dword [rdi + 8]
jne 0x14009e027
mov rcx, qword [rdi]
mov rax, qword [rcx + 8]
lea rdx, [0x1401f9500]
cmp qword [rcx + 0x10], rdx
jne 0x14009e019
lea rcx, [0x1402382c0]
cmp rax, rcx
je 0x14009e076
mov rcx, rdi
mov edx, 1
call qword [case.0x14017aab5.0]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14013d520
mov rax, r12
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14009e05b
lock dec dword [rcx]
jne 0x14009e05b
call fcn.14013a6ac
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14009e069
lock dec dword [rcx]
je 0x14009e0a1
mov rcx, rdi
call fcn.14013a6ac
jmp 0x14009dfbe
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x14009e089
lock dec dword [rcx]
jne 0x14009e089
call fcn.14013a6ac
mov rcx, qword [rdi + 0x10]
test rcx, rcx
je 0x14009e097
lock dec dword [rcx]
je 0x14009e0a8
mov rcx, rdi
call fcn.14013a6ac
jmp 0x14009e027
call fcn.1400e5440
jmp 0x14009e069
call fcn.1400e5440
jmp 0x14009e097
call fcn.1400a6030
mov r15, qword [r14 + 0x90]
mov rcx, qword [0x14033c3e8]
test rcx, rcx
je 0x14009e0e6
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r15
call qword [case.0x14017aab5.0]
mov qword [r14 + 0x90], 0
jmp 0x14009df53
call fcn.1400515d0
mov rcx, qword [0x14033c3e8]
jmp 0x14009e0c7
call fcn.1400a6030
mov rsi, rbx
mov r14, qword [rbx + 0x10]
mov rcx, qword [0x14033c3e8]
test rcx, rcx
je 0x14009e128
mov rax, qword [rcx]
mov rax, qword [rax]
mov rdx, r14
call qword [case.0x14017aab5.0]
mov qword [rsi + 0x10], 0
jmp 0x14009dfee
call fcn.1400515d0
mov rcx, qword [0x14033c3e8]
jmp 0x14009e10c
int3
int3
int3
int3
int3
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
jmp 0x14009dd5a
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
jmp 0x14009dea5
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
jmp 0x14009dece