Function at 0x14000c8a8
Capabilities:
Get common file path
Get file attributes

Disassembly:
mov rax, rsp
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1c8]
sub rsp, 0x2a0
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140056920]
xor rax, rsp
mov qword [rbp + 0x190], rax
mov r14, rcx
xor r15d, r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x30], r15
mov qword [rsp + 0x50], r15
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], 7
mov word [rsp + 0x58], r15w
xor edx, edx
mov r8d, 0x20a
lea rcx, [rbp - 0x80]
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rdx, str.Logswaasmediccapsule
lea rcx, str.Logs
call qword [sym.imp.api_ms_win_core_string_obsolete_l1_1_0.dll_lstrcmpiW]
nop dword [rax + rax]
mov r12d, 0x80070000
test eax, eax
jne 0x14000c986
mov edx, 0x104
lea rcx, [rbp - 0x80]
call qword [sym.imp.api_ms_win_core_sysinfo_l1_1_0.dll_GetWindowsDirectoryW]
nop dword [rax + rax]
test eax, eax
jne 0x14000c9cf
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
movzx edi, ax
or edi, r12d
test eax, eax
cmovle edi, eax
test edi, edi
jns 0x14000c9cf
mov ecx, edi
jmp 0x14000cc30
mov r8d, 0x104
lea rdx, [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.api_ms_win_core_libraryloader_l1_2_0.dll_GetModuleFileNameW]
nop dword [rax + rax]
test eax, eax
jne 0x14000c9bd
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
movzx edi, ax
or edi, r12d
test eax, eax
cmovle edi, eax
test edi, edi
js 0x14000c97f
lea rcx, [rbp - 0x80]
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathRemoveFileSpecW]
nop dword [rax + rax]
jmp 0x14000c960
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.14000da7c
lea rdx, [0x140036e20]
lea rcx, [rsp + 0x58]
call fcn.14000bd88
lea rdx, str.Logs
lea rcx, [rsp + 0x58]
call fcn.14000bd88
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
mov ebx, eax
or r13d, 0xffffffff
cmp eax, r13d
je 0x14000ca2f
shr ebx, 4
and ebx, 1
jmp 0x14000ca32
mov ebx, r15d
xor ecx, ecx
call fcn.14000bbf0
xor ecx, ecx
call fcn.14000bbf0
test ebx, ebx
jne 0x14000ca64
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call fcn.14000d49c
mov edi, eax
test eax, eax
js 0x14000cc2e
mov esi, r15d
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14000caa1
lea rbx, [rax - 4]
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.14000bbf0
mov qword [rsp + 0x30], r15
lea r8, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae r8, qword [rsp + 0x58]
inc esi
mov dword [rsp + 0x20], esi
lea r9, str.UpdateHealthTools
lea rdx, str._s_s._03d.etl
lea rcx, [rsp + 0x30]
call fcn.140006fd0
mov edi, eax
test eax, eax
js 0x14000cc2e
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.14000ba78
mov edi, eax
test eax, eax
js 0x14000cc2e
cmp esi, 0xc8
jb 0x14000ca67
mov rsi, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x638]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
mov ebx, eax
cmp eax, r13d
je 0x14000cb28
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000cb2b
mov ebx, r15d
xor ecx, ecx
call fcn.14000bbf0
xor ecx, ecx
call fcn.14000bbf0
test ebx, ebx
je 0x14000cb7e
mov rcx, qword [rsi + 0x638]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_DeleteFileW]
nop dword [rax + rax]
test eax, eax
jne 0x14000cb7e
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
test eax, eax
jne 0x14000cb6e
mov edi, 0x80004005
jmp 0x14000c97f
movzx edi, ax
or edi, r12d
test eax, eax
cmovle edi, eax
jmp 0x14000c97f
mov edi, 0x630
mov rcx, qword [rsi + rdi]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
mov ebx, eax
cmp eax, r13d
je 0x14000cba4
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000cba7
mov ebx, r15d
xor ecx, ecx
call fcn.14000bbf0
xor ecx, ecx
call fcn.14000bbf0
test ebx, ebx
je 0x14000cbd2
mov rdx, qword [rsi + rdi + 8]
mov rcx, qword [rsi + rdi]
call qword [sym.imp.api_ms_win_core_kernel32_legacy_l1_1_0.dll_MoveFileW]
nop dword [rax + rax]
test eax, eax
je 0x14000cb54
sub rdi, 8
cmp rdi, 0xfffffffffffffff8
jne 0x14000cb83
mov rcx, qword [rsi]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_GetFileAttributesW]
nop dword [rax + rax]
mov ebx, eax
cmp eax, r13d
je 0x14000cbfc
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000cbff
mov ebx, r15d
xor ecx, ecx
call fcn.14000bbf0
xor ecx, ecx
call fcn.14000bbf0
mov edi, r15d
test ebx, ebx
je 0x14000cc23
mov rcx, qword [rsi]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_DeleteFileW]
nop dword [rax + rax]
mov rax, qword [rsi]
mov qword [rsi], r15
mov qword [r14], rax
jmp 0x14000cc35
mov ecx, eax
call fcn.14000bbd0
mov ecx, edi
call fcn.14000bbf0
nop
lea rcx, [rsp + 0x58]
call fcn.14000be20
nop
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14000cc7e
lea rbx, [rax - 4]
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
nop dword [rax + rax]
xor ecx, ecx
call fcn.14000bbf0
nop
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.14000d8b4
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14000ccb4
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_GetProcessHeap]
nop dword [rax + rax]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.api_ms_win_core_heap_l1_1_0.dll_HeapFree]
nop dword [rax + rax]
mov eax, edi
mov rcx, qword [rbp + 0x190]
xor rcx, rsp
call fcn.1400301c0
lea r11, [rsp + 0x2a0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret