Function at 0x14004a3f0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm6
mov qword [rsp + 0x38], rcx
mov rax, qword [0x14022f038]
xor rax, rsp
mov qword [rsp + 0x138], rax
cmp r8, 0x38
jne 0x14004a728
cmp qword [rsp + 0x1c0], 1
jne 0x14004a728
cmp qword [rsp + 0x1d0], 1
jne 0x14004a728
mov rdi, rdx
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x14004a728
mov ecx, dword [rdi + 8]
test ecx, ecx
je 0x14004a728
cmp eax, ecx
jb 0x14004a728
cmp dword [rdi + 0x18], eax
jae 0x14004a728
cmp dword [rdi + 0x1c], eax
ja 0x14004a728
mov r14, r9
call fcn.1400f1430
mov rcx, rax
call fcn.1400f0bd0
mov rbx, rax
movabs rsi, 0xaaaaaaaaaaaaaaaa
lea r15, [rsp + 0x70]
mov qword [r15 + 0x10], rsi
movaps xmm6, xmmword [0x14020b860]
movaps xmmword [r15], xmm6
mov rcx, r15
call fcn.1400ff430
mov rcx, qword [rbx + 0x20]
mov rdx, r14
mov r8, r15
call fcn.140117240
test eax, eax
jne 0x14004a715
mov r14, qword [rsp + 0x1c8]
lea r12, [rsp + 0x68]
mov qword [r12], rsi
lea r15, [rsp + 0x58]
mov rcx, r15
call fcn.140116360
lea r13, [rsp + 0x48]
mov rcx, r13
mov rdx, r14
call fcn.140116380
mov rcx, r12
mov rdx, r13
mov r8, r15
call fcn.140053120
mov qword [rsp + 0x130], rsi
movaps xmmword [rsp + 0x120], xmm6
movaps xmmword [rsp + 0x110], xmm6
mov rdx, qword [rdi + 0x21]
mov r8, qword [rdi + 0x29]
lea r15, [rsp + 0xe0]
mov rcx, r15
call fcn.1400fead0
mov r14d, dword [rdi + 0xc]
xor eax, eax
mov qword [rsp + 0x40], rax
mov r13, qword [r12]
mov qword [r12], rax
cmp r13, 0xffffffffffffffff
je 0x14004a55c
test r13, r13
je 0x14004a580
call fcn.140100430
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
lea rax, [r13 + 1]
cmp rax, 2
jb 0x14004a578
mov qword [rsp + 0x40], r13
call fcn.140100430
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov qword [rsp + 0x20], r15
lea r15, [rsp + 0x110]
lea rdx, [rsp + 0x40]
mov rcx, r15
mov r8d, 2
mov r9, r14
call fcn.1400b2bc0
lea r14, [rsp + 0xe0]
mov qword [r14 + 0x20], rsi
movaps xmmword [r14 + 0x10], xmm6
movaps xmmword [r14], xmm6
lea r12, [rsp + 0xb8]
mov rcx, r12
mov rdx, r15
call fcn.1401022f0
mov rcx, r14
mov rdx, r12
call fcn.14009d3f0
mov rcx, r14
call fcn.140103190
test al, al
je 0x14004a786
mov ecx, 0x108
call fcn.14014c3b0
mov r14, rax
mov rsi, qword [rdi + 0x10]
lea r15, [rsp + 0x90]
lea rdx, [rsp + 0xe0]
mov rcx, r15
call fcn.140103180
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rdi
lea r8, [rsp + 0x70]
mov rcx, r14
mov rdx, rbx
mov r9, r15
call fcn.140049290
test r14, r14
je 0x14004a636
lock inc dword [r14 + 8]
lea rbx, [r14 + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004a7b0
mov eax, dword [rdi + 0x18]
mov dword [r14 + 0xf8], eax
mov eax, dword [rdi + 0x1c]
mov dword [r14 + 0xfc], eax
test eax, eax
setne byte [r14 + 0x100]
mov al, byte [rdi + 0x20]
and al, 1
mov byte [r14 + 0xf2], al
mov rcx, r14
call fcn.140049370
test al, al
je 0x14004a73b
mov eax, dword [rdi + 0xc]
cmp qword [r14 + 0xb8], rax
jb 0x14004a73b
mov rcx, r14
call fcn.1400f0e80
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rax, qword [rsp + 0x38]
mov qword [rax], r14
lea rcx, [rsp + 0xe0]
call fcn.140103170
lea rcx, [rsp + 0x110]
call fcn.140102380
mov rax, qword [rsp + 0x68]
inc rax
cmp rax, 2
jae 0x14004a79c
lea rcx, [rsp + 0x70]
call fcn.140121d30
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.14014ced0
mov rax, qword [rsp + 0x38]
movaps xmm6, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
jmp 0x14004a6da
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
jmp 0x14004a6e4
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test r14, r14
je 0x14004a6ae
lock dec dword [r14 + 8]
jne 0x14004a6ae
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
mov rcx, r14
mov edx, 1
call qword [case.0x1401b58f0.0]
jmp 0x14004a6ae
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
jmp 0x14004a6ae
call fcn.140100430
mov rcx, qword [rsp + 0x68]
call fcn.140112e70
jmp 0x14004a6da
mov rcx, rbx
call fcn.140112b90
jmp 0x14004a64b