Function at 0x1800bf3b0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
mov r13, rcx
mov rax, qword [0x1803b6038]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rcx, qword [rdx]
mov ebp, 3
cmp rcx, 0x10
jb 0x1800bf407
mov rdi, qword [rdx + 8]
mov r14d, dword [rdi]
cmp r14, 0x10
jb 0x1800bf407
mov rax, rcx
sub rax, r14
jb 0x1800bf407
mov ebx, dword [rdi + 8]
shr rax, 3
cmp rax, rbx
jae 0x1800bf42d
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.1801e6610
mov eax, ebp
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rax, [r14 + rbx*8]
sub rcx, rax
mov qword [rsp + 0x40], rcx
jb 0x1800bf900
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x48], r9
mov al, byte [rdi + 0xc]
mov byte [rsp + 0x3f], al
movaps xmm0, xmmword [0x1803467d0]
lea rcx, [rsp + 0x138]
movups xmmword [rcx + 0x18], xmm0
movups xmmword [rcx + 8], xmm0
mov qword [rcx], 0
mov r8, rbx
call fcn.1800e2aa0
test rbx, rbx
mov qword [rsp + 0x70], rdi
je 0x1800bf4b0
add r14, rdi
lea rcx, [r13 + 0x20]
lea r15, [rsp + 0x140]
lea rsi, [rsp + 0x118]
xor r12d, r12d
xor edi, edi
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x50], r14
jmp 0x1800bf781
mov r10, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
mov rax, r10
shr rax, 1
mov r8d, r10d
and r8d, 1
test r8, r8
lea rcx, [rsp + 0x140]
cmovne rcx, rdx
mov r11, qword [rsp + 0x70]
mov edx, dword [r11 + 4]
mov ebp, 0xc
cmp rdx, 5
ja case.0x1800bf507.2
add r11, qword [rsp + 0x68]
lea r8, [0x18035418c]
movsxd rdx, dword [r8 + rdx*4]
add rdx, r8
jmp rdx
lea r8, [rsp + 0xa8]
mov qword [r8], rax
mov qword [r8 + 8], rcx
lea rdx, [rsp + 0x98]
mov rax, qword [rsp + 0x40]
mov qword [rdx], rax
mov qword [rdx + 8], r11
lea rdi, [rsp + 0x118]
mov rcx, rdi
call fcn.180234060
jmp 0x1800bf56e
lea r8, [rsp + 0x88]
mov qword [r8], rax
mov qword [r8 + 8], rcx
lea rdx, [rsp + 0x78]
mov rax, qword [rsp + 0x40]
mov qword [rdx], rax
mov qword [rdx + 8], r11
lea rdi, [rsp + 0x118]
mov rcx, rdi
call fcn.1802314f0
mov rax, qword [rdi]
mov qword [rdi], 0
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsi]
mov qword [rsi], rax
test rcx, rcx
je 0x1800bf5c5
lock dec dword [rcx + 8]
jne 0x1800bf5a0
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
mov edx, 1
call qword [0x1803f5008]
mov rcx, qword [rsp + 0x118]
test rcx, rcx
je 0x1800bf5c5
lock dec dword [rcx + 8]
jne 0x1800bf5c5
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
mov edx, 1
call qword [0x1803f5008]
xor eax, eax
cmp qword [rsi], 0
sete al
lea ebp, [rax + rax*2]
mov r10, qword [rsp + 0x138]
test r10, r10
je 0x1800bf407
lea rcx, [rsp + 0x138]
call fcn.1800e2a00
jmp 0x1800bf407
lea r8, [rsp + 0xc8]
mov qword [r8], rax
mov qword [r8 + 8], rcx
lea rdx, [rsp + 0xb8]
mov rax, qword [rsp + 0x40]
mov qword [rdx], rax
mov qword [rdx + 8], r11
lea rdi, [rsp + 0x118]
mov rcx, rdi
call fcn.180294c30
jmp 0x1800bf56e
lea r8, [rsp + 0xe8]
mov qword [r8], rax
mov qword [r8 + 8], rcx
lea rdx, [rsp + 0xd8]
mov rax, qword [rsp + 0x40]
mov qword [rdx], rax
mov qword [rdx + 8], r11
lea rdi, [rsp + 0x118]
mov rcx, rdi
call fcn.180151160
jmp 0x1800bf56e
mov ebp, 3
jmp case.0x1800bf507.2
cmp dword [r13 + 0x1c], 0
je 0x1800bf694
cmp byte [r13 + 0x41], 0
jne 0x1800bf694
mov rcx, qword [rsp + 0x60]
call fcn.1801743e0
test al, al
jne 0x1800bf694
mov rcx, rsi
call fcn.18010ef60
jmp 0x1800bf6f4
mov qword [rsp + 0x130], 0
test rbp, rbp
je 0x1800bf6e4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
mov rax, qword [rsp + 0x130]
inc rax
cmp rax, 2
jae 0x1800bf878
cmp rbp, 0xffffffffffffffff
je 0x1800bf6d6
mov qword [rsp + 0x130], rbp
call fcn.18010a990
mov ecx, r13d
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov r13, qword [rsp + 0x58]
mov rcx, rsi
lea rdx, [rsp + 0x130]
call fcn.18010f082
mov rax, qword [rsp + 0x138]
mov rcx, rax
shr rcx, 1
cmp rcx, rdi
jbe 0x1800bf876
mov rcx, r15
test al, 1
je 0x1800bf71a
mov rcx, qword [rsp + 0x140]
add rcx, r12
mov rdx, rsi
call fcn.18010effa
mov rcx, rsi
call fcn.18010f130
mov r10, qword [rsp + 0x138]
mov rax, r10
shr rax, 1
cmp rax, rdi
jbe 0x1800bf876
mov r8, r10
and r8, 1
mov rdx, qword [rsp + 0x140]
mov r9, rdx
cmove r9, r15
mov r9, qword [r9 + r12 + 8]
inc r9
cmp r9, 2
jb 0x1800bf664
inc rdi
add r12, 0x10
cmp rbx, rdi
mov rcx, qword [rsp + 0x60]
je 0x1800bf4cd
mov rbp, qword [r14 + rdi*8]
cmp byte [rsp + 0x3f], 1
je 0x1800bf66e
mov r14, rbx
mov rbx, r15
mov r15, rcx
call fcn.1800fddf0
test al, al
jne 0x1800bf7ba
mov rcx, rsi
call fcn.18010ef60
mov r15, rbx
mov rbx, r14
mov r14, qword [rsp + 0x50]
jmp 0x1800bf6f4
mov qword [rsp + 0x130], 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r13, rax
mov rcx, r15
call fcn.1801743f0
xor ecx, ecx
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
mov dword [rsp + 0x30], 3
mov rcx, rax
mov rdx, rbp
mov r8, r13
lea r9, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov r13, qword [rsp + 0x130]
mov qword [rsp + 0x128], 0
test r13, r13
mov r15, rbx
mov rbx, r14
mov r14, qword [rsp + 0x50]
je 0x1800bf85c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsp + 0x128]
inc rax
cmp rax, 2
jae 0x1800bf89b
lea rax, [r13 + 1]
cmp rax, 2
jb 0x1800bf854
mov qword [rsp + 0x128], r13
call fcn.18010a990
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, rsi
lea rdx, [rsp + 0x128]
call fcn.18010f082
mov r13, qword [rsp + 0x58]
jmp 0x1800bf6f4
ud2
call fcn.18010a990
mov rcx, qword [rsp + 0x130]
call fcn.1800fd300
mov qword [rsp + 0x130], 0
jmp 0x1800bf6c3
call fcn.18010a990
mov rcx, qword [rsp + 0x128]
call fcn.1800fd300
mov qword [rsp + 0x128], 0
jmp 0x1800bf83d
lea r9, [rsp + 0x108]
mov qword [r9], rax
mov qword [r9 + 8], rcx
lea r8, [rsp + 0xf8]
mov rax, qword [rsp + 0x40]
mov qword [r8], rax
mov qword [r8 + 8], r11
lea rbx, [rsp + 0x118]
mov rcx, rbx
mov rdx, r13
call fcn.180233a50
mov rax, qword [rbx]
mov qword [rbx], 0
jmp 0x1800bf578
int3