Function at 0x45f470
Capabilities:
Accept command line arguments
Check if file exists
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x33c
mov eax, dword [0x67d070]
xor eax, esp
mov dword [esp + 0x338], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0x10]
lea ecx, [esp + 0xb0]
call fcn.0049ab30
cmp dword [esp + 0xb0], 6
jne 0x45f5a7
cmp dword [esp + 0xb4], 1
jne 0x45f5a7
xor eax, eax
mov dword [esp + 0x104], 7
lea ecx, [esp + 0xf0]
mov dword [esp + 0x100], 0
mov word [esp + 0xf0], ax
call fcn.0049bda0
lea ecx, [esp + 0xf0]
call fcn.0049c780
push str.dxgidebug.dll
lea ecx, [esp + 0x124]
call fcn.00406e60
push ecx
lea edx, [esp + 0x124]
lea ecx, [esp + 0xf4]
call fcn.0049c840
add esp, 4
lea eax, [esp + 0xf0]
cmp dword [esp + 0x104], 8
cmovae eax, dword [esp + 0xf0]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x45f58f
push str.The_Adobe_installer_is_incompatible_with_another_file__DXGIDebug.dll__in_the_same_folder_as_the_installer._Please_move_the_installer_to_a_different_location_and_try_again.
call fcn.0042c700
add esp, 4
push 0
push str.Adobe_Installer
push 0x631478
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x120]
call fcn.00406e20
lea ecx, [esp + 0xf0]
call fcn.00406e20
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x338]
xor ecx, esp
call fcn.00599c70
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [esp + 0x120]
call fcn.00406e20
lea ecx, [esp + 0xf0]
call fcn.00406e20
push 0x104
lea eax, [esp + 0x13c]
push eax
call dword [sym.imp.KERNEL32.DLL_GetSystemDirectoryW]
test eax, eax
jne 0x45f5c6
mov word [esp + 0x138], ax
push 0x622628
call dword [sym.imp.KERNEL32.DLL_SetDllDirectoryW]
xor eax, eax
mov dword [esp + 0x11c], 7
mov dword [esp + 0x118], 0
mov word [esp + 0x108], ax
cmp word [esp + 0x138], ax
jne 0x45f5ff
xor ecx, ecx
jmp 0x45f61f
lea ecx, [esp + 0x138]
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45f610
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [esp + 0x13c]
push eax
lea ecx, [esp + 0x110]
call fcn.00407060
push str.KERNEL32.dll
lea eax, [esp + 0x10c]
push eax
lea eax, [esp + 0xe0]
push eax
call fcn.0041fed0
add esp, 0xc
lea eax, [esp + 0xd8]
cmp dword [esp + 0xec], 8
cmovae eax, dword [esp + 0xd8]
push eax
call dword [sym.imp.KERNEL32.DLL_LoadLibraryW]
mov ebx, dword [sym.imp.KERNEL32.DLL_GetProcAddress]
mov esi, eax
test esi, esi
je 0x45f68a
push str.SetDefaultDllDirectories
push esi
call ebx
mov dword [0x68993c], eax
jmp 0x45f68f
mov eax, dword [0x68993c]
test eax, eax
je 0x45f69a
push 0x800
call eax
test esi, esi
je 0x45f710
push str.AttachConsole
push esi
call ebx
test eax, eax
je 0x45f710
push 0xffffffffffffffff
call eax
test eax, eax
je 0x45f710
push 0x4000
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.DLL_GetStdHandle]
push eax
call fcn.005cbb51
add esp, 8
cmp eax, 0xffffffff
jne 0x45f6d5
call dword [sym.imp.KERNEL32.DLL_FreeConsole]
jmp 0x45f710
push 0x6227ec
push eax
call fcn.005cb718
mov esi, eax
add esp, 8
test esi, esi
je 0x45f6f7
push 1
call fcn.005c8a02
mov ecx, dword [esi]
add esp, 4
mov dword [eax], ecx
push 0
push 4
push 0
push 1
call fcn.005c8a02
add esp, 4
push eax
call fcn.005caaf6
add esp, 0x10
push 0
call dword [sym.imp.ole32.dll_OleInitialize]
push 0xb
xor eax, eax
mov dword [esp + 0xd8], 7
push str.Set_up.exe
lea ecx, [esp + 0xc8]
mov dword [esp + 0xd8], 0
mov word [esp + 0xc8], ax
call fcn.00407060
cmp word [edi], 0
jne 0x45f755
xor ecx, ecx
jmp 0x45f76f
mov ecx, edi
lea edx, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x45f760
sub ecx, edx
sar ecx, 1
push ecx
push edi
lea ecx, [esp + 0xc8]
call fcn.004097c0
cmp dword [esp + 0xd4], 8
lea ecx, [esp + 0xbc]
lea eax, [esp + 0xc0]
mov dword [esp + 0xbc], 0
cmovae eax, dword [esp + 0xc0]
push ecx
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov ebx, eax
mov eax, dword [0x689928]
test eax, eax
jne 0x45f7e4
push 0x3d8
call fcn.00599c81
add esp, 4
mov esi, eax
push 0x3d8
push 0
push esi
call fcn.005b3770
add esp, 0xc
mov ecx, esi
call fcn.0042ca50
mov dword [0x689928], eax
push ebx
push dword [esp + 0xc0]
mov ecx, eax
call fcn.0042d6c0
test al, al
jne 0x45fb62
push str.lbs_init_failure
lea ecx, [esp + 0x18]
call fcn.00406e60
mov eax, dword [0x689934]
test eax, eax
jne 0x45f83d
push 0xe0
call fcn.00599c81
add esp, 4
mov esi, eax
push 0xe0
push 0
push esi
call fcn.005b3770
add esp, 0xc
mov ecx, esi
call fcn.00454480
mov dword [0x689934], eax
lea ecx, [esp + 0x14]
push ecx
mov ecx, eax
call fcn.00457b00
mov eax, dword [esp + 0x28]
cmp eax, 8
jb 0x45f861
inc eax
lea ecx, [esp + 0x14]
push eax
push dword [esp + 0x18]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0x28], 7
push str.preinitialize_failed
lea ecx, [esp + 0x90]
mov dword [esp + 0x28], 0
mov word [esp + 0x18], ax
call fcn.00406e60
push 0x630924
lea ecx, [esp + 0x78]
call fcn.00406e60
push str.binary
lea ecx, [esp + 0x60]
call fcn.00406e60
push str.Boot_Strap
lea ecx, [esp + 0x48]
call fcn.00406e60
push str.lbs_init_failure
lea ecx, [esp + 0x30]
call fcn.00406e60
lea ecx, [esp + 0xc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call fcn.00435b20
mov dword [esp + 0xc], eax
mov eax, dword [0x689938]
test eax, eax
jne 0x45f912
push 0xdc
call fcn.00599c81
add esp, 4
mov esi, eax
push 0xdc
push 0
push esi
call fcn.005b3770
add esp, 0xc
mov ecx, esi
call fcn.00459730
mov dword [0x689938], eax
lea ecx, [esp + 0xc]
push ecx
push 0
lea ecx, [esp + 0x94]
push ecx
lea ecx, [esp + 0x80]
push ecx
push 0
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x5c]
push ecx
lea ecx, [esp + 0x48]
push ecx
mov ecx, eax
call fcn.0045bfb0
mov ecx, dword [esp + 0xc]
push ecx
mov dword [esp + 0xa8], ecx
mov eax, dword [ecx]
lea ecx, [esp + 0x10]
push eax
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xb4]
push eax
call fcn.004309e0
push dword [esp + 0xc]
call fcn.00505e00
mov eax, dword [esp + 0x44]
add esp, 4
cmp eax, 8
jb 0x45f98c
inc eax
lea ecx, [esp + 0x2c]
push eax
push dword [esp + 0x30]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0x40], 7
mov word [esp + 0x2c], ax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3c], 0
cmp eax, 8
jb 0x45f9bb
inc eax
lea ecx, [esp + 0x44]
push eax
push dword [esp + 0x48]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0x58], 7
mov word [esp + 0x44], ax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x54], 0
cmp eax, 8
jb 0x45f9ea
inc eax
lea ecx, [esp + 0x5c]
push eax
push dword [esp + 0x60]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0x70], 7
mov word [esp + 0x5c], ax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x6c], 0
cmp eax, 8
jb 0x45fa1c
inc eax
lea ecx, [esp + 0x74]
push eax
push dword [esp + 0x78]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0x88], 7
mov word [esp + 0x74], ax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x84], 0
cmp eax, 8
jb 0x45fa5a
inc eax
lea ecx, [esp + 0x8c]
push eax
push dword [esp + 0x90]
call fcn.00407b40
mov esi, dword [0x689928]
xor eax, eax
mov dword [esp + 0xa0], 7
mov dword [esp + 0x9c], 0
mov word [esp + 0x8c], ax
test esi, esi
je 0x45faa6
mov ecx, esi
mov byte [esi], 1
call fcn.0042ced0
push 0x3d8
push esi
call fcn.0059a537
add esp, 8
mov dword [0x689928], 0
mov eax, dword [esp + 0xd4]
cmp eax, 8
jb 0x45fac7
inc eax
lea ecx, [esp + 0xc0]
push eax
push dword [esp + 0xc4]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0xd4], 7
mov word [esp + 0xc0], ax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xd0], 0
cmp eax, 8
jb 0x45fb08
inc eax
lea ecx, [esp + 0xd8]
push eax
push dword [esp + 0xdc]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0xec], 7
mov word [esp + 0xd8], ax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xe8], 0
cmp eax, 8
jb 0x45fb49
inc eax
lea ecx, [esp + 0x108]
push eax
push dword [esp + 0x10c]
call fcn.00407b40
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x338]
xor ecx, esp
call fcn.00599c70
mov esp, ebp
pop ebp
ret 0x10
call fcn.0045de70
mov esi, eax
xor edi, edi
mov ecx, esi
call fcn.0045e2e0
test al, al
jne 0x45fb9a
mov ecx, esi
call fcn.0045def0
test al, al
jne 0x45fb9a
call fcn.0045e560
test al, al
jne 0x45fb9a
mov ecx, dword [esp + 0xbc]
mov edx, ebx
call fcn.0045e600
mov edi, eax
mov esi, dword [0x689928]
test esi, esi
je 0x45fbc6
mov ecx, esi
mov byte [esi], 1
call fcn.0042ced0
push 0x3d8
push esi
call fcn.0059a537
add esp, 8
mov dword [0x689928], 0
mov eax, dword [esp + 0xd4]
cmp eax, 8
jb 0x45fbe7
inc eax
lea ecx, [esp + 0xc0]
push eax
push dword [esp + 0xc4]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0xd4], 7
mov word [esp + 0xc0], ax
mov eax, dword [esp + 0xec]
mov dword [esp + 0xd0], 0
cmp eax, 8
jb 0x45fc28
inc eax
lea ecx, [esp + 0xd8]
push eax
push dword [esp + 0xdc]
call fcn.00407b40
xor eax, eax
mov dword [esp + 0xec], 7
mov word [esp + 0xd8], ax
mov eax, dword [esp + 0x11c]
mov dword [esp + 0xe8], 0
cmp eax, 8
jb 0x45fc69
inc eax
lea ecx, [esp + 0x108]
push eax
push dword [esp + 0x10c]
call fcn.00407b40
mov ecx, dword [esp + 0x344]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00599c70
mov esp, ebp
pop ebp
ret 0x10