Function at 0x1400a3720
Capabilities:
Check if file exists
Delete file
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd8
mov rax, qword [0x1401c3e50]
mov eax, dword [rax]
test eax, eax
je 0x1400a3758
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rcx]
lea rax, [rsp + 0x60]
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x28], rax
lea r15, [rsp + 0xa0]
movsxd rbx, dword [rcx + 8]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x80]
mov byte [rsp + 0x60], 0
test rsi, rsi
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], 0
mov byte [rsp + 0x80], 0
mov qword [rsp + 0x90], r15
jne 0x1400a37bd
test rbx, rbx
jne 0x1400a3ca9
cmp rbx, 0xf
mov qword [rsp + 0xb0], rbx
ja 0x1400a3b70
cmp rbx, 1
jne 0x1400a3b50
movzx eax, byte [rsi]
mov byte [rsp + 0xa0], al
lea rdi, [rsp + 0x90]
mov rax, r15
mov qword [rsp + 0x38], rdi
mov rcx, qword [rsp + 0x38]
mov qword [rsp + 0x98], rbx
lea r13, [rsp + 0x70]
mov byte [rax + rbx], 0
lea r12, [rsp + 0x50]
call fcn.14009ff70
lea rdi, [rsp + 0xc0]
test rax, rax
mov rsi, rax
lea rbp, [rsp + 0xb0]
mov qword [rsp + 0xb0], rdi
je 0x1400a3c9d
mov rcx, rax
call sub.msvcrt.dll_strlen
cmp rax, 0xf
mov rbx, rax
mov qword [rsp + 0x48], rax
ja 0x1400a3bd0
cmp rax, 1
je 0x1400a3b38
test rax, rax
jne 0x1400a3c78
mov rdx, rdi
lea r13, [rsp + 0x70]
mov qword [rsp + 0xb8], rax
mov rcx, rbp
lea r12, [rsp + 0x50]
mov byte [rdx + rax], 0
mov r8, r13
mov rdx, r12
call fcn.14009ffb0
mov rcx, qword [rsp + 0xb0]
cmp rcx, rdi
je 0x1400a38a9
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
call fcn.140173aa0
mov rcx, qword [rsp + 0x90]
call fcn.1400a0450
test rax, rax
mov rbx, rax
je 0x1400a3b10
cmp byte [rax], 0
je 0x1400a3b10
mov rcx, rax
mov qword [rsp + 0xb0], rdi
call sub.msvcrt.dll_strlen
cmp rax, 0xf
mov rsi, rax
mov qword [rsp + 0x48], rax
ja 0x1400a3c30
cmp rax, 1
je 0x1400a3c20
test rax, rax
jne 0x1400a3c7d
mov rdx, rdi
mov qword [rsp + 0xb8], rax
mov r8, rbp
mov rcx, r13
mov byte [rdx + rax], 0
mov rdx, r12
call fcn.1400a0380
mov rcx, qword [rsp + 0xb0]
cmp rcx, rdi
je 0x1400a393b
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
call fcn.140173aa0
mov rcx, qword [rsp + 0x70]
mov r14, qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
call r14
cmp eax, 0xffffffff
je 0x1400a3b28
test al, 0x10
jne 0x1400a3b28
cmp byte [rbx], 0
je 0x1400a3b10
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
nop
mov rcx, qword [rsp + 0x70]
call r14
cmp eax, 0xffffffff
je 0x1400a3993
test al, 0x10
jne 0x1400a3993
mov rcx, qword [rsp + 0x70]
call sub.msvcrt.dll_remove
test eax, eax
jne 0x1400a3ae8
xor ecx, ecx
call fcn.1400a0450
test rax, rax
mov rsi, rax
mov qword [rsp + 0xb0], rdi
je 0x1400a3c91
mov rcx, rax
call sub.msvcrt.dll_strlen
cmp rax, 0xf
mov rbx, rax
mov qword [rsp + 0x48], rax
ja 0x1400a3aa0
cmp rax, 1
je 0x1400a3a88
test rax, rax
jne 0x1400a3b20
mov rdx, rdi
mov qword [rsp + 0xb8], rax
mov r8, rbp
mov rcx, r13
mov byte [rdx + rax], 0
mov rdx, r12
call fcn.1400a0380
mov rcx, qword [rsp + 0xb0]
cmp rcx, rdi
je 0x1400a3a16
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
call fcn.140173aa0
cmp byte [rsi], 0
jne 0x1400a3970
mov rcx, qword [rsp + 0x90]
cmp rcx, r15
je 0x1400a3a3d
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + 1]
call fcn.140173aa0
mov rcx, qword [rsp + 0x70]
mov rax, qword [rsp + 0x30]
cmp rcx, rax
je 0x1400a3a5d
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 1]
call fcn.140173aa0
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x28]
cmp rcx, rax
je 0x1400a3740
mov rax, qword [rsp + 0x60]
lea rdx, [rax + 1]
call fcn.140173aa0
jmp 0x1400a3740
movzx edx, byte [rsi]
mov byte [rsp + 0xc0], dl
jmp 0x1400a39db
mov rdx, qword [rsp + 0x20]
xor r8d, r8d
mov rcx, rbp
call fcn.1401607c0
mov rcx, rax
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xc0], rax
mov rdx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xb0]
jmp 0x1400a39de
call qword [sym.imp.msvcrt.dll__errno]
mov eax, dword [rax]
cmp eax, 2
je 0x1400a3b10
cmp eax, 0xd
je 0x1400a3c82
mov ecx, 0x40
call fcn.140041d20
jmp 0x1400a3993
mov ecx, 0x35
call fcn.140041d20
jmp 0x1400a3a1f
mov rcx, rdi
jmp 0x1400a3ac8
xor ecx, ecx
call fcn.1400a0450
jmp 0x1400a38b6
movzx edx, byte [rsi]
mov byte [rsp + 0xc0], dl
jmp 0x1400a3864
test rbx, rbx
je 0x1400a37e3
lea rax, [rsp + 0x90]
mov rcx, r15
mov qword [rsp + 0x38], rax
jmp 0x1400a3bab
lea rax, [rsp + 0x90]
xor r8d, r8d
lea rdx, [rsp + 0xb0]
mov rcx, rax
mov qword [rsp + 0x38], rax
call fcn.1401607c0
mov rcx, rax
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xa0], rax
mov r8, rbx
mov rdx, rsi
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0x90]
jmp 0x1400a37f3
lea rdx, [rsp + 0x48]
xor r8d, r8d
mov rcx, rbp
lea r13, [rsp + 0x70]
lea r12, [rsp + 0x50]
call fcn.1401607c0
mov rcx, rax
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xc0], rax
mov rdx, rsi
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xb0]
jmp 0x1400a3867
movzx edx, byte [rbx]
mov byte [rsp + 0xc0], dl
jmp 0x1400a3900
lea rdx, [rsp + 0x48]
xor r8d, r8d
mov rcx, rbp
call fcn.1401607c0
mov rcx, rax
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xc0], rax
mov rdx, rbx
mov r8, rsi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xb0]
jmp 0x1400a3903
mov rcx, rdi
jmp 0x1400a3c02
mov rcx, rdi
jmp 0x1400a3c58
mov ecx, 0x4b
call fcn.140041d20
jmp 0x1400a3a1f
lea rcx, [0x1401a51a0]
call fcn.140174aa0
lea rcx, [0x1401a51a0]
call fcn.140174aa0
lea rcx, [0x1401a51a0]
call fcn.140174aa0
lea r13, [rsp + 0x70]
mov rbx, rax
lea r12, [rsp + 0x50]
mov rcx, r13
call fcn.14015dd60
mov rcx, r12
call fcn.14015dd60
mov rcx, rbx
call fcn.1400c3f90
mov rcx, rbp
mov rbx, rax
call fcn.14015dd60
mov rcx, qword [rsp + 0x38]
call fcn.14015dd60
jmp 0x1400a3cc2