Function at 0x14000c428
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 [0x140055910]
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 0x14000c506
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 0x14000c54f
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 0x14000c54f
mov ecx, edi
jmp 0x14000c7b0
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 0x14000c53d
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 0x14000c4ff
lea rcx, [rbp - 0x80]
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathRemoveFileSpecW]
nop dword [rax + rax]
jmp 0x14000c4e0
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.14000d5fc
lea rdx, [0x140035e20]
lea rcx, [rsp + 0x58]
call fcn.14000b908
lea rdx, str.Logs
lea rcx, [rsp + 0x58]
call fcn.14000b908
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 0x14000c5af
shr ebx, 4
and ebx, 1
jmp 0x14000c5b2
mov ebx, r15d
xor ecx, ecx
call fcn.14000b770
xor ecx, ecx
call fcn.14000b770
test ebx, ebx
jne 0x14000c5e4
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call fcn.14000d01c
mov edi, eax
test eax, eax
js 0x14000c7ae
mov esi, r15d
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14000c621
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.14000b770
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 0x14000c7ae
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x38]
call fcn.14000b5f8
mov edi, eax
test eax, eax
js 0x14000c7ae
cmp esi, 0xc8
jb 0x14000c5e7
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 0x14000c6a8
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000c6ab
mov ebx, r15d
xor ecx, ecx
call fcn.14000b770
xor ecx, ecx
call fcn.14000b770
test ebx, ebx
je 0x14000c6fe
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 0x14000c6fe
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
test eax, eax
jne 0x14000c6ee
mov edi, 0x80004005
jmp 0x14000c4ff
movzx edi, ax
or edi, r12d
test eax, eax
cmovle edi, eax
jmp 0x14000c4ff
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 0x14000c724
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000c727
mov ebx, r15d
xor ecx, ecx
call fcn.14000b770
xor ecx, ecx
call fcn.14000b770
test ebx, ebx
je 0x14000c752
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 0x14000c6d4
sub rdi, 8
cmp rdi, 0xfffffffffffffff8
jne 0x14000c703
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 0x14000c77c
shr ebx, 4
not ebx
and ebx, 1
jmp 0x14000c77f
mov ebx, r15d
xor ecx, ecx
call fcn.14000b770
xor ecx, ecx
call fcn.14000b770
mov edi, r15d
test ebx, ebx
je 0x14000c7a3
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 0x14000c7b5
mov ecx, eax
call fcn.14000b750
mov ecx, edi
call fcn.14000b770
nop
lea rcx, [rsp + 0x58]
call fcn.14000b9a0
nop
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14000c7fe
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.14000b770
nop
xor edx, edx
lea rcx, [rsp + 0x38]
call fcn.14000d434
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x14000c834
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.14002fd10
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