Function at 0x14000c620
Capabilities:
Check if file exists
Delete file
Get common file path
Get file attributes

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x1a8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x120], 0xfffffffffffffffe
lea rax, [rbp - 0x50]
mov qword [rsp + 0x20], rax
xor ecx, ecx
mov edx, Ordinal_32
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
js 0x14000cab5
xorps xmm0, xmm0
movups xmmword [rbp + 0x110], xmm0
movups xmmword [rbp + 0x100], xmm0
lea rcx, [rbp - 0x50]
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
test rax, rax
js 0x14000cacf
mov rsi, rax
mov rdi, rax
cmp rax, 0xf
ja 0x14000c6c6
mov qword [rbp + 0x110], rdi
mov qword [rbp + 0x118], reloc.WS2_32.dll_ntohs
lea rcx, [rbp + 0x100]
lea rdx, [rbp - 0x50]
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
lea rax, [rsi + rbp]
add rax, 0x100
jmp 0x14000c73f
mov rax, rsi
or rax, 0xf
cmp rax, 0x17
mov r14d, reloc.WLDAP32.dll_Ordinal_22
cmovae r14, rax
cmp rax, 0xfff
jb 0x14000c709
lea rcx, [r14 + 0x28]
call fcn.14004f794
test rax, rax
je 0x14000cac9
mov rcx, rax
mov rbx, rax
add rbx, 0x27
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x14000c715
lea rcx, [r14 + 1]
call fcn.14004f794
mov rbx, rax
mov qword [rbp + 0x100], rbx
mov qword [rbp + 0x110], rdi
mov qword [rbp + 0x118], r14
lea rdx, [rbp - 0x50]
mov rcx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
add rsi, rbx
mov rax, rsi
mov byte [rax], 0
mov rsi, qword [rbp + 0x110]
mov rax, qword [rbp + 0x118]
mov rcx, rax
sub rcx, rsi
cmp rcx, 0xb
jae 0x14000c796
lea rsi, [0x1400f3da0]
lea rdx, [0x1400a2a5a]
mov rcx, rsi
call fcn.14000f010
nop
mov qword [rsp + 0x20], select
lea rcx, [rbp + 0x100]
mov edx, ntohl
mov r9, rsi
call fcn.14000d6d0
nop
mov rdi, rax
jmp 0x14000c7e8
lea rcx, [rsi + 0xb]
mov qword [rbp + 0x110], rcx
lea rdi, [rbp + 0x100]
mov rcx, rdi
cmp rax, 0x10
jb 0x14000c7b8
mov rcx, qword [rbp + 0x100]
mov rbx, rcx
lea rcx, [0x1400f3da0]
lea rdx, [0x1400a2a5a]
call fcn.14000f010
mov rax, qword [0x1400f3da0]
mov qword [rbx + rsi], rax
mov eax, dword [0x1400f3da7]
mov dword [rbx + rsi + 7], eax
mov byte [rbx + rsi + 0xb], 0
movups xmm0, xmmword [rdi]
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rbp + 0xd0], xmm1
movups xmmword [rbp + 0xc0], xmm0
mov qword [rdi + 0x10], 0
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
mov rax, qword [rbp + 0x118]
cmp rax, 0x10
jb 0x14000c85a
mov rdx, qword [rbp + 0x100]
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x14000c84c
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x14000cac9
add rax, 0x28
jmp 0x14000c852
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.14004f7d8
mov qword [rbp + 0x110], 0
mov qword [rbp + 0x118], reloc.WS2_32.dll_ntohs
mov byte [rbp + 0x100], 0
mov rsi, qword [rbp + 0xd0]
movabs rax, 0x7fffffffffffffed
cmp rsi, rax
jge 0x14000cad4
mov rbx, qword [rbp + 0xc0]
mov r15, qword [rbp + 0xd8]
xorps xmm0, xmm0
movups xmmword [rbp + 0xe0], xmm0
lea r14, [rsi + 0x13]
cmp r14, 0x10
jb 0x14000c8c5
cmp rsi, 0xffffffffffffffed
jge 0x14000c8d3
movabs rdi, 0x7fffffffffffffff
jmp 0x14000c8ef
lea rdi, [rbp + 0xe0]
mov eax, reloc.WS2_32.dll_ntohs
jmp 0x14000c92f
mov rax, r14
or rax, 0xf
cmp rax, 0x17
mov edi, reloc.WLDAP32.dll_Ordinal_22
cmovae rdi, rax
cmp rax, 0xfff
jb 0x14000c914
lea rcx, [rdi + 0x28]
nop
call fcn.14004f794
nop
test rax, rax
je 0x14000cac9
mov rcx, rax
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x14000c91f
lea rcx, [rdi + 1]
nop
call fcn.14004f794
nop
mov rcx, rax
mov qword [rbp + 0xe0], rax
mov rax, rdi
mov rdi, rcx
cmp r15, 0x10
lea r15, [rbp + 0xc0]
mov rdx, rbx
cmovb rdx, r15
mov qword [rbp + 0xf0], r14
mov qword [rbp + 0xf8], rax
mov rcx, rdi
mov r8, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [0x1400f3db0]
lea rdx, [0x1400a2a99]
call fcn.14000f090
movups xmm0, xmmword [0x1400f3db0]
movups xmmword [rdi + rsi], xmm0
mov eax, dword [0x1400f3dbf]
mov dword [rdi + rsi + 0xf], eax
mov byte [rdi + rsi + 0x13], 0
cmp qword [rbp + 0xd8], 0x10
mov rcx, r15
jb 0x14000c99b
mov rcx, qword [rbp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14000c9be
and eax, 0x10
je 0x14000c9be
cmp qword [rbp + 0xf8], 0x10
jb 0x14000c9c2
mov rcx, qword [rbp + 0xe0]
jmp 0x14000c9c9
mov al, 1
jmp 0x14000ca00
lea rcx, [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
mov ecx, eax
mov al, 1
test cl, 0x10
jne 0x14000ca00
cmp qword [rbp + 0xf8], 0x10
jb 0x14000c9eb
mov rcx, qword [rbp + 0xe0]
jmp 0x14000c9f2
lea rcx, [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
setne sil
xor eax, eax
mov ebx, eax
mov rax, qword [rbp + 0xf8]
cmp rax, 0x10
jb 0x14000ca4c
mov rdx, qword [rbp + 0xe0]
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x14000ca3e
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x14000cac9
add rax, 0x28
jmp 0x14000ca44
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.14004f7d8
mov qword [rbp + 0xf0], 0
mov qword [rbp + reloc.WS2_32.dll_ntohs8], 0xf
mov byte [rbp + 0xe0], 0
mov rax, qword [rbp + 0xd8]
cmp rax, 0x10
jb 0x14000caaf
mov rdx, qword [rbp + 0xc0]
lea rcx, [rax + 1]
cmp rcx, 0x1000
jb 0x14000caa1
mov rcx, qword [rdx - 8]
add rdx, 0xfffffffffffffff8
sub rdx, rcx
cmp rdx, 0x20
jae 0x14000cac9
add rax, 0x28
jmp 0x14000caa7
mov rax, rcx
mov rcx, rdx
mov rdx, rax
call fcn.14004f7d8
mov eax, esi
test bl, bl
je 0x14000cab7
xor eax, eax
and al, 1
add rsp, 0x1a8
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
call fcn.140001e60
nop
call fcn.140001e60
nop
int3