Function at 0x140007058
Capabilities:
Check if file exists
Delete file

Disassembly:
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x68
mov rsi, rcx
lea rdx, str._Driver__DownloadAndExtractCab_Method_called
xor ecx, ecx
xor edi, edi
call fcn.140007efc
mov al, byte [rsi + 0x41]
mov r8, qword [rsi + 0x38]
neg al
mov rdx, qword [rsi + 0x28]
mov rcx, qword [rsi + 0x18]
sbb r9d, r9d
and r9d, 0xff800000
add r9d, 0xc00000
call fcn.14000cad0
mov ebx, eax
test eax, eax
jns 0x1400070d1
mov edi, 2
cmp eax, 0x800700b7
jne 0x1400070be
lea rdx, str._Driver__DownloadAndExtractCab_Method:_DTU_cab_of_identical_hash_already_downloaded
mov ecx, eax
jmp 0x14000716d
lea rdx, str._Driver__DownloadAndExtractCab_Method:_Download_of_latest_DTU_cab_failed
mov ecx, eax
call fcn.140007db4
jmp 0x140007172
lea rdx, str._Driver__DownloadAndExtractCab_Method:_Succesfully_downloaded_latest_DTU_cab
mov ecx, eax
call fcn.140007efc
xor ebx, ebx
cmp byte [rsi + 0x40], bl
jne 0x1400070f1
mov rcx, qword [rsi + 0x18]
call fcn.14000c2a4
mov ebx, eax
mov ecx, ebx
test ebx, ebx
jns 0x140007105
mov edi, 3
lea rdx, str._Driver__DownloadAndExtractCab_Method:_DTU_cab_not_signed
jmp 0x1400070c7
lea rdx, str._Driver__DownloadAndExtractCab_Method:_Succesfully_validated_DTU_cab_signature
call fcn.140007efc
mov r9, qword [rsi + 0x20]
lea r8, [0x14000c870]
mov rcx, qword [rsi + 0x18]
xor edx, edx
call qword [sym.imp.setupapi.dll_SetupIterateCabinetW]
nop dword [rax + rax]
test eax, eax
jne 0x140007164
lea edi, [rax + 4]
call qword [sym.imp.api_ms_win_core_errorhandling_l1_1_0.dll_GetLastError]
nop dword [rax + rax]
movzx ebx, ax
lea rdx, str._Driver__DownloadAndExtractCab_Method:_Unpacking_of_DTU_cab_failed
or ebx, 0x80070000
test eax, eax
cmovle ebx, eax
mov ecx, ebx
call fcn.140007db4
call fcn.14000737c
jmp 0x140007172
lea rdx, str._Driver__DownloadAndExtractCab_Method:_Succesfully_unpacked_DTU_cab
mov ecx, ebx
call fcn.140007efc
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.api_ms_win_core_shlwapi_legacy_l1_1_0.dll_PathFileExistsW]
nop dword [rax + rax]
test eax, eax
je 0x140007196
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.api_ms_win_core_file_l1_1_0.dll_DeleteFileW]
nop dword [rax + rax]
call fcn.140008044
mov r8, rax
test ebx, ebx
js 0x1400071d9
cmp dword [rax], 1
jbe 0x140007369
movabs rdx, 0x800000000001
test qword [rax + 0x10], rdx
je 0x140007369
mov rcx, qword [rax + 0x18]
and rcx, rdx
cmp rcx, qword [rax + 0x18]
jne 0x140007369
lea rdx, [0x1400165ad]
jmp 0x14000721a
cmp ebx, 0x800700b7
jne 0x140007277
cmp dword [rax], 1
jbe 0x140007369
movabs rdx, 0x800000000001
test qword [rax + 0x10], rdx
je 0x140007369
mov rcx, qword [rax + 0x18]
and rcx, rdx
cmp rcx, qword [rax + 0x18]
jne 0x140007369
lea rdx, [0x14001653e]
mov rax, qword [0x14001a9c8]
mov rcx, r8
mov qword [rbp + 0x28], rax
mov rax, qword [0x14001a9d0]
mov qword [rbp + 0x30], rax
mov rax, qword [0x14001a9d8]
mov qword [rbp + 0x38], rax
mov rax, qword [0x14001a9e0]
mov qword [rbp + 0x40], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0x38]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x20], rax
call fcn.140001008
jmp 0x140007369
cmp dword [rax], 1
jbe 0x140007369
movabs rdx, 0x800000000001
test qword [rax + 0x10], rdx
je 0x140007369
mov rcx, qword [rax + 0x18]
and rcx, rdx
cmp rcx, qword [rax + 0x18]
jne 0x140007369
test edi, edi
je 0x1400072ea
sub edi, 1
je 0x1400072e1
sub edi, 1
je 0x1400072d8
sub edi, 1
je 0x1400072cf
cmp edi, 1
je 0x1400072c6
lea rax, str.Invalid
jmp 0x1400072f1
lea rax, str.UnpackCabFailed
jmp 0x1400072f1
lea rax, str.CheckCabSignatureFailed
jmp 0x1400072f1
lea rax, str.DownloadCabFailed
jmp 0x1400072f1
lea rax, str.FreeCoordinatorFailed
jmp 0x1400072f1
lea rax, str.DownloadAndExtractCabSuccess
mov qword [rbp + 0x30], rax
lea rdx, [0x1400164a3]
mov rax, qword [0x14001a9c8]
mov rcx, r8
mov qword [rbp + 0x38], rax
mov rax, qword [0x14001a9d0]
mov qword [rbp + 0x40], rax
mov rax, qword [0x14001a9d8]
mov qword [rbp - 0x18], rax
mov rax, qword [0x14001a9e0]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x30]
mov qword [rsp + 0x48], rax
lea rax, [rbp + 0x28]
mov qword [rsp + 0x40], rax
lea rax, [rbp + 0x38]
mov qword [rsp + 0x38], rax
lea rax, [rbp + 0x40]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x18]
mov qword [rsp + 0x28], rax
lea rax, [rbp - 0x10]
mov qword [rsp + 0x20], rax
mov dword [rbp + 0x28], ebx
call fcn.140001434
mov eax, ebx
add rsp, 0x68
pop rdi
pop rsi
pop rbx
pop rbp
ret