Function at 0x4305f0
Capabilities:
Delete file

Disassembly:
sub rsp, 0x4d8
mov qword [rsp + 0x4d0], rbx
mov qword [rsp + 0x4c8], rbp
mov qword [rsp + 0x4c0], rsi
mov qword [rsp + 0x4b8], rdi
mov qword [rsp + 0x4b0], r12
mov qword [rsp + 0x4a8], r13
mov rsi, r9
mov r12, r8
mov rbp, rdx
mov rbx, rcx
mov qword [rsp + 0x78], 0xfffffffffffffffe
call fcn.004545a0
test eax, eax
je 0x4306c1
xor r8d, r8d
lea rdx, str.CINIFile::GetDeviceSpecificInstallInfo_n
lea rcx, [rsp + 0x80]
call fcn.00486850
movabs rdx, 0x203a5952544e45
mov qword [rsp + 0x2a0], rdx
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x80]
xor ecx, ecx
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x430690
call fcn.004546e0
mov rcx, rax
call fcn.004545b0
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x2a0]
call fcn.004548a0
call fcn.004545a0
test eax, eax
je 0x4306fb
mov r9, qword [r12]
mov r8, qword [rbp]
lea rdx, str.csINIFileName___s__csDeviceID___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
xor r13d, r13d
mov rax, qword [0x004dfd00]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x30], rax
mov edi, r13d
mov qword [rbx + 0x1bc8], rsi
lea rdx, [rbx + 0x1abc]
lea rcx, [rsp + 0x50]
call fcn.0049b290
nop
mov dl, 0x5c
lea rcx, [rsp + 0x50]
call fcn.00499914
mov r8d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.00499e24
nop
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
mov r9d, edi
lea r8, str.DEVICE
lea rdx, str._s_d
lea rcx, [rsp + 0x48]
call fcn.0049a324
inc edi
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.DEVICEID
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x431009
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x30]
call fcn.0049b398
mov rdx, qword [rsp + 0x30]
cmp dword [rdx - 8], 0
je 0x430770
mov rdx, qword [r12]
lea rcx, [rsp + 0x30]
call fcn.0049a400
cmp eax, 0xffffffff
jne 0x430800
mov rdx, qword [rsp + 0x30]
mov rcx, r12
call fcn.0049a400
cmp eax, 0xffffffff
je 0x430770
mov rsi, qword [rsp + 0x500]
lea rcx, [rsi + 8]
mov rdx, r12
call fcn.0049b31c
mov r13d, 1
lea r9, [rsp + 0x70]
lea r8, [0x004af230]
lea rdx, str.DRIVER
mov rcx, rbx
call fcn.0042ff90
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.INSTALL_PATH
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430871
lea rcx, [rsi + 0x38]
lea rdx, [rsp + 0x190]
call fcn.0049b398
jmp 0x4308e2
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.INSTALL_PATH
mov r8, qword [rsp + 0x70]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x4308e2
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x38]
call fcn.0049b290
nop
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.0049b804
nop
lea rcx, [rsi + 0x38]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x430918
mov r8, qword [rsi + 0x38]
lea rdx, str.pDeviceINIInstallData__csDeviceInstallPath___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.NW_SETUP
mov r8, qword [rsp + 0x70]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430989
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x40]
call fcn.0049b290
nop
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.0049b804
nop
lea rcx, [rsi + 0x40]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x4309bf
mov r8, qword [rsi + 0x40]
lea rdx, str.pDeviceINIInstallData__csNWInstallSetupExe___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.OCP_SETUP
mov r8, qword [rsp + 0x70]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430a30
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x40]
call fcn.0049b290
nop
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x38]
call fcn.0049b804
nop
lea rcx, [rsi + 0x48]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x430a66
mov r8, qword [rsi + 0x48]
lea rdx, str.pDeviceINIInstallData__csOCPInstallSetupExe___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.FRIENDLY_NAME
mov r8, qword [rsp + 0x70]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430ab9
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x38]
call fcn.0049b290
nop
lea rcx, [rsi + 0x10]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x430aef
mov r8, qword [rsi + 0x10]
lea rdx, str.pDeviceINIInstallData__csInstallFriendlyName___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea r9, [rsp + 0x68]
lea r8, [0x004a9cd4]
lea rdx, str.CABFILE
mov rcx, rbx
call fcn.0042ff90
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
jne 0x430b5e
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.CABFILE
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430d4c
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x30]
call fcn.0049b398
lea rdx, [0x004af0fc]
lea rcx, [rsp + 0x30]
call fcn.0049a400
mov r12d, eax
cmp eax, 0xffffffff
je 0x430d4c
mov r8d, eax
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x30]
call fcn.00499e24
nop
mov rdx, rax
lea rcx, [rsi + 0x18]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
lea rcx, [rsi + 0x18]
call fcn.0049a3a4
lea rcx, [rsi + 0x18]
call fcn.0049a348
lea rdx, [0x004a9dfc]
lea rcx, [rsp + 0x58]
call fcn.0049b290
nop
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
call fcn.0049b804
nop
lea r8, [rsi + 0x18]
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.0049b804
nop
mov rdx, rax
lea rcx, [rsi + 0x18]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x58]
call fcn.0049b1dc
mov r8, 0xffffffff80000002
lea rdx, str.SoftwareMicrosoftWindowsCurrentVersion
lea rcx, [rsp + 0x2a0]
call fcn.00465d20
mov dword [rsp + 0x40], 0x104
lea rax, [rsp + 0x40]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x80]
lea r8, str.ProgramFilesDir
lea rdx, [rsp + reloc.SHELL32.dll_IsUserAnAdmin]
lea rcx, [rsp + 0x2a0]
call fcn.004651d0
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rdx - 8]
sub r8d, r12d
dec r8d
lea rdx, [rsp + 0x58]
lea rcx, [rsp + 0x30]
call fcn.00499d4c
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x58]
call fcn.0049b1dc
lea rcx, [rsp + 0x30]
call fcn.0049a3a4
lea rcx, [rsp + 0x30]
call fcn.0049a348
lea rdx, [0x004a9dfc]
lea rcx, [rsp + 0x60]
call fcn.0049b290
mov rdi, rax
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x40]
call fcn.0049b290
nop
lea r8, [rsp + 0x30]
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.0049b804
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.0049b804
nop
lea rcx, [rsi + 0x20]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x58]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x38]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x40]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x60]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x430d82
mov r8, qword [rsi + 0x18]
lea rdx, str.pDeviceINIInstallData__csCabFileName___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
call fcn.004545a0
test eax, eax
je 0x430db8
mov r8, qword [rsi + 0x20]
lea rdx, str.pDeviceINIInstallData__csCabFileDestPath___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea r9, [rsp + 0x68]
lea r8, [0x004a9cd4]
lea rdx, str.HOMOLFILE
mov rcx, rbx
call fcn.0042ff90
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
jne 0x430e27
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
lea r9, str.HOMOLFILE
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430efd
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x30]
call fcn.0049b398
lea rdx, [0x004af0fc]
lea rcx, [rsp + 0x30]
call fcn.0049a400
mov r12d, eax
cmp eax, 0xffffffff
je 0x430eec
mov r8d, eax
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.00499e24
nop
mov rdx, rax
lea rcx, [rsi + 0x28]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x60]
call fcn.0049b1dc
lea rcx, [rsi + 0x28]
call fcn.0049a3a4
lea rcx, [rsi + 0x28]
call fcn.0049a348
mov rdx, qword [rsp + 0x30]
mov r8d, dword [rdx - 8]
sub r8d, r12d
dec r8d
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.00499d4c
nop
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.0049b31c
nop
lea rcx, [rsp + 0x60]
call fcn.0049b1dc
lea rcx, [rsp + 0x30]
call fcn.0049a3a4
lea rcx, [rsp + 0x30]
call fcn.0049a348
mov rcx, qword [rsp + 0x30]
call fcn.004879a0
mov dword [rsi + 0x30], eax
jmp 0x430efd
lea rcx, [rsi + 0x28]
lea rdx, [rsp + 0x190]
call fcn.0049b398
call fcn.004545a0
test eax, eax
je 0x430f33
mov r8, qword [rsi + 0x28]
lea rdx, str.pDeviceINIInstallData__csHomolFileName___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
lea r9, [rsp + 0x68]
lea r8, [0x004af230]
lea rdx, str.INSTALL_PATH
mov rcx, rbx
call fcn.0042ff90
lea rax, [rsp + 0x190]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x68]
mov r8, qword [rsp + 0x48]
mov rdx, qword [rbp]
mov rcx, rbx
call fcn.0044c5a0
test eax, eax
je 0x430fbd
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x58]
call fcn.0049b290
nop
mov r8, rax
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x60]
call fcn.0049b804
nop
lea rcx, [rsi + 0x38]
mov rdx, rax
call fcn.0049b31c
nop
lea rcx, [rsp + 0x60]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x58]
call fcn.0049b1dc
call fcn.004545a0
test eax, eax
je 0x430ff3
mov r8, qword [rsi + 0x38]
lea rdx, str.pDeviceINIInstallData__csDeviceInstallPath___s_n
lea rcx, [rsp + 0x80]
call fcn.00486850
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x80]
call fcn.004548a0
mov rdx, rsi
mov rcx, rbx
call fcn.0042ed40
mov rdx, rsi
mov rcx, rbx
call fcn.0042f490
mov rcx, qword [rbp]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
call fcn.004545a0
test eax, eax
je 0x431094
mov r8d, r13d
lea rdx, str.CINIFile::GetDeviceSpecificInstallInfo_:_bRetVal___d_n
lea rcx, [rsp + 0x80]
call fcn.00486850
movabs rdx, 0x20203a54495845
mov qword [rsp + 0x2a0], rdx
lea rdi, [rsp + 0x2a0]
xor eax, eax
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x80]
xor ecx, ecx
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
inc rcx
test al, al
jne 0x431062
call fcn.004546e0
mov rcx, rax
lea rdx, [rsp + 0x2a0]
call fcn.004548a0
call fcn.004546e0
mov rcx, rax
call fcn.004545c0
nop
lea rcx, [rsp + 0x50]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x30]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x68]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x70]
call fcn.0049b1dc
nop
lea rcx, [rsp + 0x48]
call fcn.0049b1dc
mov eax, r13d
mov rbx, qword [rsp + 0x4d0]
mov rbp, qword [rsp + 0x4c8]
mov rsi, qword [rsp + 0x4c0]
mov rdi, qword [rsp + 0x4b8]
mov r12, qword [rsp + 0x4b0]
mov r13, qword [rsp + 0x4a8]
add rsp, 0x4d8
ret