Function at 0x18021e940
Capabilities:
Check if file exists

Disassembly:
mov rcx, qword [rcx + 8]
jmp 0x18028c8e0
push rbp
push rbx
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 8]
sub rsp, 0x108
mov rdi, rcx
xor esi, esi
mov dword [rbp + 0x40], esi
cmp byte [rcx + 0x188], sil
je 0x18028c95a
mov rax, qword [rcx + 0x180]
mov rcx, qword [rax + 0xe8]
mov eax, dword [rcx + 0x138]
shr eax, 1
test al, 1
je 0x18028c95a
xor r8d, r8d
lea rdx, [rbp + 0x40]
call fcn.180290770
mov esi, 1
mov rcx, qword [rax]
cmp byte [rcx], 0
je 0x18028c95a
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.180017f90
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
nop
cmp eax, 0xffffffff
je 0x18028c95a
movzx r14d, sil
jmp 0x18028c95d
xor r14b, r14b
mov ebx, 0xffffffff
lea r15, [0x180660020]
test sil, 1
je 0x18028c98d
mov rcx, qword [rbp + 0x40]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028c98d
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, ebx
jne 0x18028c98d
call fcn.18011d9c0
test r14b, r14b
je 0x18028cd0f
lea rdx, [0x1803b3a74]
lea rcx, [rbp + 0x48]
call fcn.18001d070
nop
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x58]
call fcn.18017e980
nop
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028c9d6
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028c9d6
call fcn.18011d9c0
nop
lea rdx, str.Overwrite
lea rcx, [rbp + 0x48]
call fcn.18001d070
nop
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x50]
call fcn.18017e980
nop
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028ca16
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028ca16
call fcn.18011d9c0
nop
lea rdx, str.Are_you_sure_you_want_to_overwrite_it_
lea rcx, [rbp + 0x48]
call fcn.18001d070
nop
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x48]
call fcn.18017e980
nop
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028ca56
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028ca56
call fcn.18011d9c0
nop
lea rdx, str.Theres_already_a_file_called:_FLNM
lea rcx, [rbp + 0x48]
call fcn.18001d070
nop
lea rdx, [rbp + 0x48]
lea rcx, [rsp + 0x40]
call fcn.18017e980
nop
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028ca96
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028ca96
call fcn.18011d9c0
nop
mov rax, qword [rdi + 0x180]
xor r8d, r8d
lea rdx, [rsp + 0x68]
mov rcx, qword [rax + 0xe8]
call fcn.180290770
nop
mov r9, qword [rax]
lea r8, str.FLNM
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.18017bc30
mov rsi, rax
mov qword [rbp + 0x48], rax
lea r8, [0x1803b3a3a]
lea rdx, [0x1803b3a38]
mov rcx, rax
call fcn.18017cea0
mov rcx, qword [rsi]
mov qword [rbp + 0x40], rcx
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cafb
lock inc dword [rcx]
mov rcx, qword [rsi]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cb19
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cb19
call fcn.18011d9c0
lea rax, [rbp + 0x40]
mov qword [rbp + 0x48], rax
lea rdx, [rsp + 0x48]
lea rcx, [rbp + 0x40]
call fcn.1801936e0
mov rcx, qword [rax]
mov qword [rbp + 0x58], rcx
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cb42
lock inc dword [rcx]
mov rcx, qword [rbp + 0x40]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cb62
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cb62
call fcn.18011d9c0
nop
lea rdx, str.File_already_exists
lea rcx, [rbp + 0x48]
call fcn.18001d070
nop
lea rdx, [rbp + 0x48]
lea rcx, [rbp + 0x50]
call fcn.18017e980
nop
mov rcx, qword [rbp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cba1
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cba1
call fcn.18011d9c0
nop
mov qword [rsp + 0x30], rdi
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x58]
lea r8, [rbp + 0x50]
mov edx, 2
lea rcx, [rbp - 0x40]
call fcn.1802ba1b0
nop
mov rcx, qword [rbp + 0x50]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cbf1
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cbf1
call fcn.18011d9c0
nop
mov rcx, qword [rbp + 0x58]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cc11
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cc11
call fcn.18011d9c0
nop
mov rcx, qword [rsp + 0x68]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cc32
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cc32
call fcn.18011d9c0
nop
mov rcx, qword [rsp + 0x40]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cc53
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cc53
call fcn.18011d9c0
nop
mov rcx, qword [rsp + 0x48]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cc74
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cc74
call fcn.18011d9c0
nop
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028cc95
mov eax, ebx
lock xadd dword [rcx], eax
dec eax
cmp eax, 0xffffffff
jne 0x18028cc95
call fcn.18011d9c0
nop
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff0
cmp rcx, r15
je 0x18028ccb3
lock xadd dword [rcx], ebx
dec ebx
cmp ebx, 0xffffffff
jne 0x18028ccb3
call fcn.18011d9c0
lea rax, vtable.std::_Func_impl_no_alloc_class__lambda_fe4189efb5105c91b7efe0066063f119___void__int_.0
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rdi
lea rax, [rbp - 0x80]
mov qword [rbp - 0x48], rax
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x40]
lea rcx, [rsp + 0x70]
call fcn.1802b83f0
lea rcx, [rdi + 0x190]
mov rdx, rax
call fcn.1802bcec0
lea rcx, [rsp + 0x70]
call fcn.1802bcf50
nop
lea rcx, [rbp - 0x40]
call fcn.180060ac0
add rsp, 0x108
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov edx, 1
mov rcx, rdi
add rsp, 0x108
pop r15
pop r14
pop rdi
pop rsi
pop rbx
pop rbp
jmp fcn.1802d2860