Function at 0x404620
Capabilities:
Check if file exists
Check mutex on windows
Create process on windows
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, 0x1d98
call fcn.00430900
mov eax, dword [0x44200c]
xor eax, esp
mov dword [esp + 0x1d94], eax
push esi
mov esi, dword [ebp + 0x10]
lea eax, [esp + 0x984]
push edi
push 0x208
push 0
push eax
mov dword [esp + 0x1c], esi
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0x780]
push 0x208
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0x578]
push 0x208
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0x370]
push 0x208
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0x1598]
push 0x800
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0xb90]
push 0x208
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea ecx, [esp + 0xb8]
call fcn.004042f0
lea ecx, [esp + 0x1f8]
call fcn.004042f0
push 7
push 0x43f88c
lea ecx, [esp + 0xf8]
call fcn.004030a0
push 0x26
push str.3B8FD512_B5E6_4C22_A386_5033FAC563E7
lea ecx, [esp + 0xc0]
call fcn.004030a0
push 0xd
push 0x43f8f0
lea ecx, [esp + 0x15c]
call fcn.004030a0
push str.DriverInstall
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov dword [0x443ba8], eax
test eax, eax
je 0x404c64
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x404766
push dword [0x443ba8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x443ba8], 0
jmp 0x404c64
push str._UnZip:
push esi
call fcn.0040aa30
mov esi, eax
add esp, 8
test esi, esi
je 0x404793
lea ecx, [esi + 0xe]
push ecx
lea eax, [esp + 0xb94]
push 0x104
push eax
call fcn.00415520
add esp, 0xc
lea eax, [esp + 0x988]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x404c54
push str.DDUtility.dll
lea eax, [esp + 0x98c]
push eax
push 0x43f6d4
lea eax, [esp + 0x78c]
push 0x104
push eax
call fcn.00401040
add esp, 0x14
lea eax, [esp + 0x780]
mov edx, 0x6a
push eax
push ecx
call fcn.00401460
add esp, 8
test eax, eax
je 0x404c54
lea eax, [esp + 0x780]
push eax
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov edi, eax
test edi, edi
je 0x404c46
push 2
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [esp + 0xc], eax
test eax, eax
je 0x404c3f
push str.DriverAssistant.zip
lea eax, [esp + 0x98c]
push eax
push str._s_s
lea eax, [esp + 0x584]
push 0x104
push eax
call fcn.00401040
add esp, 0x14
lea eax, [esp + 0x578]
mov edx, 6
push eax
push ecx
call fcn.00401460
add esp, 8
test eax, eax
je 0x404c3f
test esi, esi
je 0x4048a0
lea ecx, [esp + 0xb90]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x404873
sub ecx, edx
sar ecx, 1
je 0x4048a0
lea eax, [esp + 0xb90]
push eax
lea eax, [esp + 0x374]
push 0x104
push eax
call fcn.00415520
jmp 0x4048c7
push ecx
lea edx, [esp + 0x374]
call fcn.00401530
add esp, 4
lea eax, [esp + 0x370]
push 0x43f96c
push 0x104
push eax
call fcn.00415960
add esp, 0xc
lea eax, [esp + 0x370]
push 0
push eax
lea eax, [esp + 0x580]
push eax
call dword [esp + 0x18]
add esp, 0xc
test eax, eax
je 0x404c31
lea eax, [esp + 0x370]
push eax
lea ecx, [esp + 0x12c]
call fcn.004025e0
push str.DriverAssistant.exe
lea eax, [esp + 0x374]
push 0x104
push eax
call fcn.00415960
add esp, 0xc
lea eax, [esp + 0x370]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x404c31
push str.uninstall.exe
push 0x43f728
lea ecx, [esp + 0x54]
call fcn.00402840
push eax
lea edx, [esp + 0x130]
lea ecx, [esp + 0x38]
call fcn.00404f00
add esp, 4
lea ecx, [esp + 0x18]
mov edx, eax
call fcn.00405020
add esp, 4
lea ecx, [esp + 0x170]
push eax
call fcn.00402720
lea ecx, [esp + 0x14]
call fcn.00402640
lea ecx, [esp + 0x30]
call fcn.00402640
lea ecx, [esp + 0x4c]
call fcn.00402640
push str.3B8FD512_B5E6_4C22_A386_5033FAC563E7
lea ecx, [esp + 0x88]
call fcn.00402840
push eax
push str._SoftGuid:
lea ecx, [esp + 0x70]
call fcn.00402840
push eax
push str.__t__t
lea ecx, [esp + 0x20]
call fcn.00402840
mov edx, eax
lea ecx, [esp + 0x38]
call fcn.00404fc0
add esp, 4
lea ecx, [esp + 0x50]
mov edx, eax
call fcn.00404fc0
add esp, 4
lea ecx, [esp + 0x170]
push 0xffffffffffffffff
push 0
push eax
call fcn.004041e0
lea ecx, [esp + 0x4c]
call fcn.00402640
lea ecx, [esp + 0x30]
call fcn.00402640
lea ecx, [esp + 0x14]
call fcn.00402640
lea ecx, [esp + 0x68]
call fcn.00402640
lea ecx, [esp + 0x84]
call fcn.00402640
push 0x80
lea eax, [esp + 0x2f4]
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0x370]
lea ecx, [esp + 0xd4]
push eax
call fcn.004025e0
push ecx
lea edx, [esp + 0x2f4]
lea ecx, [esp + 0x374]
call fcn.00401ab0
add esp, 4
lea eax, [esp + 0x2f0]
lea ecx, [esp + 0x10c]
push eax
call fcn.004025e0
sub esp, 8
lea ecx, [esp + 0x378]
call fcn.00401390
add esp, 8
test eax, eax
je 0x404ae1
push str.__t__t
lea ecx, [esp + 0x174]
call fcn.00404d40
push 0x800
lea eax, [esp + 0xd9c]
push 0
push eax
call fcn.0040b440
add esp, 0xc
lea eax, [esp + 0xd98]
push str.DriverAssistant
push 1
push str._Link:_d__s
push 0x400
push eax
call fcn.00401040
add esp, 0x14
lea eax, [esp + 0xd98]
lea ecx, [esp + 0x170]
push eax
call fcn.00404d40
cmp dword [esp + 0xe8], 0
je 0x404b8b
cmp dword [esp + 0x104], 0
je 0x404b8b
cmp dword [esp + 0x120], 0
je 0x404b8b
cmp dword [esp + 0x13c], 0
je 0x404b8b
cmp dword [esp + 0x168], 0
je 0x404b8b
cmp dword [esp + 0xcc], 0
je 0x404b8b
cmp dword [esp + 0x184], 0
je 0x404b8b
sub esp, 0x1c
mov ecx, esp
push str.3B8FD512_B5E6_4C22_A386_5033FAC563E7
call fcn.00402840
lea ecx, [esp + 0x214]
call fcn.00405f50
add esp, 0x1c
cmp dword [esp + 0x228], 0
je 0x404b73
lea eax, [esp + 0xd4]
push eax
lea ecx, [esp + 0x218]
call fcn.00405120
test eax, eax
jne 0x404b8b
lea ecx, [esp + 0xb8]
call fcn.00405300
lea ecx, [esp + 0xb8]
call fcn.00405970
test esi, esi
jne 0x404c31
push dword [esp + 0x10]
lea eax, [esp + 0x374]
push eax
push str.__s___s
lea eax, [esp + 0x15a4]
push 0x400
push eax
call fcn.00401040
add esp, 0x14
lea eax, [esp + 0x1b0]
push 0x44
push esi
push eax
call fcn.0040b440
add esp, 0xc
mov dword [esp + 0x1b0], 0x44
lea eax, [esp + 0x1b0]
xorps xmm0, xmm0
movaps xmmword [esp + 0xa0], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoW]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x1b4]
push eax
push esi
push esi
push esi
push esi
push esi
push esi
lea eax, [esp + 0x15b8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x404c31
push dword [esp + 0xa4]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [esp + 0xa0]
call esi
lea eax, [esp + 0x578]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea eax, [esp + 0x780]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [0x443ba8]
test eax, eax
je 0x404c64
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
lea ecx, [esp + 0x2d4]
call fcn.00402640
lea ecx, [esp + 0x2b0]
call fcn.00402640
lea ecx, [esp + 0x294]
call fcn.00402640
lea ecx, [esp + 0x268]
call fcn.00402640
lea ecx, [esp + 0x24c]
call fcn.00402640
lea ecx, [esp + 0x230]
call fcn.00402640
lea ecx, [esp + 0x214]
call fcn.00402640
lea ecx, [esp + 0x1f8]
call fcn.00402640
lea ecx, [esp + 0x194]
call fcn.00402640
lea ecx, [esp + 0x170]
call fcn.00402640
lea ecx, [esp + 0x154]
call fcn.00402640
lea ecx, [esp + 0x128]
call fcn.00402640
lea ecx, [esp + 0x10c]
call fcn.00402640
lea ecx, [esp + 0xf0]
call fcn.00402640
lea ecx, [esp + 0xd4]
call fcn.00402640
lea ecx, [esp + 0xb8]
call fcn.00402640
mov ecx, dword [esp + 0x1d9c]
xor eax, eax
pop edi
pop esi
xor ecx, esp
call fcn.004078a0
mov esp, ebp
pop ebp
ret 0x10