Function at 0x405edd
Capabilities:
Get common file path
Get disk information
Get file attributes

Disassembly:
mov eax, 0x4316f8
call fcn.004203b8
sub esp, 0x108
push ebx
push esi
mov esi, ecx
xor ebx, ebx
push edi
cmp dword [esi + 0x24], ebx
jne 0x406169
lea edi, [esi + 0x14]
mov ecx, edi
call fcn.0040b220
push eax
push str.RunSetup:___s_
call fcn.0041df5d
pop ecx
pop ecx
mov ecx, edi
call fcn.0040b220
push eax
call fcn.0040d800
test eax, eax
pop ecx
je 0x406159
push ebx
push str.AskBeforeExeLaunch
mov dword [ebp - 0x10], 1
call fcn.0040a1e6
pop ecx
test eax, eax
pop ecx
je 0x405f9c
push str.Would_you_like_to_launch_n
lea ecx, [ebp - 0x14]
call fcn.0040af60
mov ecx, edi
mov dword [ebp - 4], ebx
call fcn.0040b220
push eax
lea ecx, [ebp - 0x14]
call fcn.0040b840
push 0x24
lea ecx, [ebp - 0x14]
call fcn.0040b220
push eax
call fcn.0040ad74
pop ecx
cmp eax, 7
pop ecx
jne 0x405f87
push str.TEST_OVERRIDE__SilentSetup_not_launched_
mov dword [ebp - 0x10], ebx
call fcn.0041df5d
pop ecx
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.0040af80
cmp dword [ebp - 0x10], ebx
je 0x40613e
push ebx
call fcn.004113a0
push eax
call fcn.004113d0
pop ecx
pop ecx
push eax
lea ecx, [ebp - 0x10]
call fcn.0040af60
lea eax, [esi + 0x24]
mov ecx, edi
push eax
lea eax, [ebp - 0x20]
push eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x20], ebx
call fcn.0040b220
push eax
call fcn.004116f0
add esp, 0xc
test eax, eax
je 0x406011
mov ecx, edi
call fcn.0040b220
push eax
push 0x439564
push 0x43930c
lea ecx, [ebp - 0x10]
call fcn.0040b220
push eax
push str.RunSetup
call fcn.00403943
add esp, 0x14
push str.RunSetup:_Started_OK
call fcn.0041df5d
pop ecx
jmp 0x40612d
lea ecx, [ebp - 0x14]
call fcn.0040af50
push dword [ebp - 0x20]
lea eax, [ebp - 0x14]
mov byte [ebp - 4], 2
push str.Failed__errcode___08lX
push eax
call fcn.0040c040
add esp, 0xc
push dword [ebp - 0x14]
push str.RunSetup:__s
call fcn.0041df5d
pop ecx
pop ecx
lea ecx, [ebp - 0x18]
call fcn.0040af50
push dword [ebp - 0x20]
lea eax, [ebp - 0x18]
mov byte [ebp - 4], 3
push 0x4399b4
push eax
call fcn.0040c040
add esp, 0xc
mov ecx, edi
push 4
call fcn.0040b220
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp - 0x114]
push eax
push 0xeb
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [ebp - 0x1c]
call fcn.0040af50
lea eax, [ebp - 0x114]
mov ecx, edi
push eax
mov byte [ebp - 4], 4
call fcn.0040b220
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
push eax
lea eax, [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeA]
push eax
lea eax, [ebp - 0x1c]
push str.type_d_att_08x_cwd_s
push eax
call fcn.0040c040
add esp, 0x14
mov ecx, edi
call fcn.0040b220
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040b220
push eax
lea ecx, [ebp - 0x18]
call fcn.0040b220
push eax
lea ecx, [ebp - 0x10]
call fcn.0040b220
push eax
push str.RunSetup
call fcn.00403943
add esp, 0x14
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.0040af80
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 2
call fcn.0040af80
lea ecx, [ebp - 0x14]
call fcn.0040b220
push eax
push 0x33b
mov ecx, esi
call fcn.004065c4
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.0040af80
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x10]
call fcn.0040af80
jmp 0x40625f
push str._tSetup_NOT_launched_per_user_request
call fcn.0041df5d
mov dword [esp], str.NOSTART
push 0x33d
jmp 0x406258
push str.RunSetup_ERROR:_Cant_find_EXE
call fcn.0041df5d
pop ecx
jmp 0x40625f
mov edi, dword [sym.imp.KERNEL32.dll_SetLastError]
push ebx
call edi
or dword [ebp - 0x18], 0xffffffff
lea eax, [ebp - 0x18]
push eax
push dword [esi + 0x24]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
test eax, eax
jne 0x4061ae
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.RunSetup_ERROR:_Tracking_failed__errcode___08lX
call fcn.0041df5d
pop ecx
pop ecx
push ebx
call edi
push str.NOTRACK
push 0x33d
mov ecx, esi
call fcn.004065c4
cmp dword [ebp - 0x18], 0x103
je 0x40625f
mov eax, dword [esi + 0x38]
cmp eax, ebx
jge 0x4061d7
push 0x1e
pop eax
push eax
push str.RunSetup:_SilentSetup_completes__allowing_GMT__d_seconds_to_start...
mov dword [esi + 0x38], eax
call fcn.0041df5d
pop ecx
pop ecx
jmp 0x4061dd
jle 0x4061dd
dec eax
mov dword [esi + 0x38], eax
push 0x43a590
call fcn.00411d40
cmp eax, ebx
pop ecx
mov dword [ebp - 0x1c], eax
je 0x4061ff
push str.Found_GMT_
mov dword [esi + 0x38], ebx
call fcn.0041df5d
pop ecx
jmp 0x406205
cmp dword [esi + 0x38], 1
jge 0x40625f
push str.SetupStartedMessageSent
push str.softwareGator.com
push reloc.WSOCK32.dll_bind
call fcn.0040cf30
add esp, 0xc
cmp dword [ebp - 0x1c], ebx
mov dword [ebp - 0x10], 0x33c
mov edi, 0x353
je 0x406244
mov eax, dword [esi + 0x48]
mov dword [ebp - 0x10], 0x33d
neg eax
sbb eax, eax
add eax, edi
push eax
call fcn.00403b9d
pop ecx
mov eax, dword [esi + 0x48]
neg eax
sbb eax, eax
add eax, edi
push eax
call fcn.00409b7c
pop ecx
push eax
push dword [ebp - 0x10]
mov ecx, esi
call fcn.004065c4
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret