Function at 0x14004a2b0
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 [0x14022a038]
xor rax, rsp
mov qword [rsp + 0x138], rax
cmp r8, 0x38
jne 0x14004a5cb
cmp qword [rsp + 0x1c0], 1
jne 0x14004a5cb
cmp qword [rsp + 0x1d0], 1
jne 0x14004a5cb
mov rdi, rdx
mov eax, dword [rdx + 0xc]
test eax, eax
je 0x14004a5cb
mov ecx, dword [rdi + 8]
test ecx, ecx
je 0x14004a5cb
cmp eax, ecx
jb 0x14004a5cb
cmp dword [rdi + 0x18], eax
jae 0x14004a5cb
cmp dword [rdi + 0x1c], eax
ja 0x14004a5cb
mov r14, r9
call fcn.1400ed5f0
mov rcx, rax
call fcn.1400ecd90
mov rbx, rax
movabs rsi, 0xaaaaaaaaaaaaaaaa
lea r15, [rsp + 0x70]
mov qword [r15 + 0x10], rsi
movaps xmm6, xmmword [0x140206780]
movaps xmmword [r15], xmm6
mov rcx, r15
call fcn.1400fb5f0
mov rcx, qword [rbx + 0x20]
mov rdx, r14
mov r8, r15
call fcn.1401132d0
test eax, eax
jne 0x14004a629
mov r14, qword [rsp + 0x1c8]
lea r12, [rsp + 0x68]
mov qword [r12], rsi
lea r15, [rsp + 0x58]
mov rcx, r15
call fcn.1401123f0
lea r13, [rsp + 0x48]
mov rcx, r13
mov rdx, r14
call fcn.140112410
mov rcx, r12
mov rdx, r13
mov r8, r15
call fcn.140051d80
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.1400fac90
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 0x14004a41c
test r13, r13
je 0x14004a440
call fcn.1400fc5f0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
lea rax, [r13 + 1]
cmp rax, 2
jb 0x14004a438
mov qword [rsp + 0x40], r13
call fcn.1400fc5f0
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.1400aed20
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.1400fe4b0
mov rcx, r14
mov rdx, r12
call fcn.1400998b0
mov rcx, r14
call fcn.1400ff350
test al, al
je 0x14004a63f
mov ecx, 0xf8
call fcn.140148440
mov r14, rax
mov rsi, qword [rdi + 0x10]
lea r15, [rsp + 0x90]
lea rdx, [rsp + 0xe0]
mov rcx, r15
call fcn.1400ff340
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.140049620
test r14, r14
je 0x14004a4f6
lock inc dword [r14 + 8]
lea rbx, [r14 + 0x48]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14004a669
mov eax, dword [rdi + 0x18]
mov dword [r14 + 0xf0], eax
mov eax, dword [rdi + 0x1c]
mov dword [r14 + 0xf4], eax
mov al, byte [rdi + 0x20]
and al, 1
mov byte [r14 + 0xea], al
mov rcx, r14
call fcn.140049700
test al, al
je 0x14004a5de
mov eax, dword [rdi + 0xc]
cmp qword [r14 + 0xb8], rax
jb 0x14004a5de
mov rcx, r14
call fcn.14004a680
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.1400ff330
lea rcx, [rsp + 0x110]
call fcn.1400fe540
mov rax, qword [rsp + 0x68]
inc rax
cmp rax, 2
jae 0x14004a655
lea rcx, [rsp + 0x70]
call fcn.14011ddc0
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.140148f60
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 0x14004a59a
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 0x14004a564
lock dec dword [r14 + 8]
jne 0x14004a564
mov rax, qword [r14]
mov rax, qword [rax + 0xe0]
mov rcx, r14
mov edx, 1
call qword [case.0x1401b1830.0]
jmp 0x14004a564
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
jmp 0x14004a590
call fcn.140039860
mov rax, qword [rsp + 0x38]
mov qword [rax], 0
jmp 0x14004a564
call fcn.1400fc5f0
mov rcx, qword [rsp + 0x68]
call fcn.14010ef00
jmp 0x14004a590
mov rcx, rbx
call fcn.14010ec20
jmp 0x14004a50b