Function at 0x4010e1
Capabilities:
Delete file
Get common file path
Read .ini file

Disassembly:
jmp 0x402b00
sub esp, 0x174
mov eax, dword [0x43b10c]
xor eax, esp
mov dword [esp + 0x170], eax
push esi
mov esi, dword [esp + 0x17c]
push str.Enter_DelInstallFiles
push 0x43cf88
call fcn.00401041
push esi
push str.Inf_file_Path___s
push 0x43cf88
call fcn.00401041
add esp, 0x14
push 0
push 2
push 0
push esi
call dword [sym.imp.SETUPAPI.dll_SetupOpenInfFileA]
cmp eax, 0xffffffff
mov dword [esp + 4], eax
jne 0x402b7e
push str.SetupOpenInfFile_fail__
push 0x43cf88
call fcn.00401041
add esp, 8
xor eax, eax
pop esi
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.00407adf
add esp, 0x174
ret
push ebp
push edi
push 0x43ce80
push 0x14
push str.DEL_SECTION_COUNT
push str.DrvUninstall
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push str.ulSection_Count___d
push 0x43cf88
call fcn.00401041
add esp, 0xc
call dword [sym.imp.SETUPAPI.dll_SetupOpenFileQueue]
mov esi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov edi, dword [sym.imp.SETUPAPI.dll_SetupQueueDeleteSectionA]
mov dword [esp + 0x10], eax
xor ebp, ebp
mov eax, dword [esp + 0x188]
cmp dword [eax + 4], 5
jne 0x402f99
cmp dword [eax + 8], 2
jne 0x402f99
cmp ebp, 0x13
ja case.default.0x402fa2
jmp dword [ebp*4 + 0x4034fc]
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push str.USBCamera.Files.Drv.NTamd64
push str.DelSectionX64_0
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_0___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push str.USBCamera.Files.Rsf
push str.DelSectionX64_1
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_1___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push str.USBCamera.Ctrl.Files.NTamd64
push str.DelSectionX64_2
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_2___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push str.USBCamera.TWAIN.Files
push str.DelSectionX64_3
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_3___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_4
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_4___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSectionX64_5
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_5___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSectionX64_6
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_6___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_7
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_7___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSectionX64_8
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_8___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSectionX64_9
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_9___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_10
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_10___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSectionX64_11
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_11___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSectionX64_12
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_12___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_13
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_13___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSectionX64_14
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_14___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSectionX64_15
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_15___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_16
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_16___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSectionX64_17
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSectionX64_17___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSectionX64_18
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSectionX64_18___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSectionX64_19
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSectionX64_19___s
jmp 0x40334a
cmp ebp, 0x13
ja case.default.0x402fa2
jmp dword [ebp*4 + 0x40354c]
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push str.USBCamera.Files.Drv
push str.DelSection_0
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_0___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push str.USBCamera.Files.Rsf
push str.DelSection_1
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_1___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push str.USBCamera.Ctrl.Files
push str.DelSection_2
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_2___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push str.USBCamera.TWAIN.Files
push str.DelSection_3
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_3___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_4
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_4___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSection_5
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_5___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSection_6
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_6___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_7
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_7___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSection_8
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_8___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSection_9
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_9___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_10
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_10___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSection_11
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_11___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSection_12
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_12___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_13
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_13___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSection_14
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_14___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSection_15
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_15___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_16
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection_16___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea edx, [esp + 0x1c]
push edx
push 0x435a1f
push str.DelSection_17
push str.DrvUninstall
call esi
lea eax, [esp + 0x14]
push eax
push str.DelSection_17___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea ecx, [esp + 0x1c]
push ecx
push 0x435a1f
push str.DelSection_18
push str.DrvUninstall
call esi
lea edx, [esp + 0x14]
push edx
push str.DelSection_18___s
jmp 0x40334a
push 0x43ce80
push 0x104
lea eax, [esp + 0x1c]
push eax
push 0x435a1f
push str.DelSection_19
push str.DrvUninstall
call esi
lea ecx, [esp + 0x14]
push ecx
push str.DelSection19___s
push 0x43cf88
call fcn.00401041
add esp, 0xc
lea edx, [esp + 0x14]
push edx
push str.SetupQueueDeleteSection_Section___s
push 0x43cf88
call fcn.00401041
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
add esp, 0xc
lea eax, [esp + 0x14]
push eax
push 0
push ecx
push edx
call edi
test eax, eax
jne 0x403397
push str.SetupQueueDeleteSection_fail__
push 0x43cf88
call fcn.00401041
add esp, 8
add ebp, 1
cmp ebp, 0x14
jl 0x402bc2
push 0
call dword [sym.imp.SETUPAPI.dll_SetupInitDefaultQueueCallback]
mov edi, dword [esp + 0x10]
mov esi, eax
mov eax, dword [sym.imp.SETUPAPI.dll_SetupDefaultQueueCallbackA]
push esi
push eax
push edi
push 0
call dword [sym.imp.SETUPAPI.dll_SetupCommitFileQueueA]
test eax, eax
jne 0x4033f1
push str.SetupCommitFileQueue_fail__
push 0x43cf88
call fcn.00401041
add esp, 8
pop edi
pop ebp
xor eax, eax
pop esi
mov ecx, dword [esp + 0x170]
xor ecx, esp
call fcn.00407adf
add esp, 0x174
ret
push esi
call dword [sym.imp.SETUPAPI.dll_SetupTermDefaultQueueCallback]
push edi
call dword [sym.imp.SETUPAPI.dll_SetupCloseFileQueue]
mov ecx, dword [esp + 0xc]
push ecx
call dword [sym.imp.SETUPAPI.dll_SetupCloseInfFile]
mov eax, dword [esp + 0x188]
cmp dword [eax + 4], 5
jne 0x4034df
cmp dword [eax + 8], 2
jne 0x4034df
push str.Delete_vm331.sys__
push 0x43cf88
call fcn.00401041
add esp, 8
push 0x104
lea edx, [esp + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
test eax, eax
jl 0x4034cd
mov eax, 0x43ca88
mov edx, eax
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x403456
lea edi, [esp + 0x78]
sub eax, edx
add edi, 0xffffffff
mov cl, byte [edi + 1]
add edi, 1
test cl, cl
jne 0x403468
mov ecx, eax
shr ecx, 2
mov esi, edx
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x78]
push eax
and ecx, 3
push str.Driver_path___s
push 0x43cf88
rep movsb byte es:[edi], byte [esi]
call fcn.00401041
add esp, 0xc
lea ecx, [esp + 0x78]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x4034af
push str.Delete_vm331.sys_success_
jmp 0x4034d2
push str.Delete_vm331.sys_failed_
push 0x43cf88
call fcn.00401041
add esp, 8
mov ecx, 0x43cf88
call fcn.00401037
jmp 0x4034df
push str.Delete_vm331.sys_failed_
push 0x43cf88
call fcn.00401041
add esp, 8
mov ecx, dword [esp + 0x17c]
pop edi
pop ebp
pop esi
xor ecx, esp
mov eax, 1
call fcn.00407adf
add esp, 0x174
ret