Function at 0x4012d0
Capabilities:
Accept command line arguments
Get common file path
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x774
mov eax, dword [0x44b024]
xor eax, ebp
mov dword [ebp - 4], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
mov dword [ebp - 0x768], eax
push 0xfde9
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x744], eax
push 0x28
push 0
push 0x44b958
call fcn.00404520
add esp, 0xc
mov dword [ebp - 0x760], 0
push str.AGENTGWLIST
mov eax, dword [ebp - 0x744]
push eax
call fcn.00401810
add esp, 8
test eax, eax
je 0x401343
mov dword [ebp - 0x760], 1
mov dword [ebp - 0x740], 0
call fcn.00402040
mov dword [ebp - 0x76c], eax
mov dword [ebp - 0x754], 0
mov dword [ebp - 0x750], 0
mov dword [ebp - 0x764], 0
mov dword [ebp - 0x73c], 0
call fcn.00401180
push 0x9c
push 0
lea ecx, [ebp - 0x72c]
push ecx
call fcn.00404520
add esp, 0xc
mov dword [ebp - 0x72c], 0x9c
lea edx, [ebp - 0x72c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x401424
cmp dword [ebp - 0x71c], 2
jne 0x4013eb
push 0xc
push 0
push str.Platform_check_passed
push 0x1d4d6
call section..text
add esp, 0x10
push 0x438212
push 0
push 0x438214
call fcn.00401220
add esp, 0xc
jmp 0x401422
push 0xc
push 0
push 0x43821c
push 0x1d4d5
call section..text
add esp, 0x10
push 0x438213
push 0xbc1
push 0x438254
call fcn.00401220
add esp, 0xc
mov dword [ebp - 0x740], 1
jmp 0x40145b
push 0xc
push 0
push str.This_machine_is_not_running_NT_Service_Pack_6_or_higher
push 0x1d4d5
call section..text
add esp, 0x10
push 0x43821b
push 0xbc1
push str.SetEnv
call fcn.00401220
add esp, 0xc
mov dword [ebp - 0x740], 1
mov byte [ebp - 0x734], 0
mov byte [ebp - 0x733], 0
mov byte [ebp - 0x732], 0
mov byte [ebp - 0x731], 0
push 0x43829c
mov eax, dword [ebp - 0x744]
push eax
call fcn.00401810
add esp, 8
mov dword [ebp - 0x738], eax
cmp dword [ebp - 0x738], 0
je 0x4014fb
push str._DRIVE
call fcn.004082f0
add esp, 4
add eax, dword [ebp - 0x738]
mov dword [ebp - 0x738], eax
mov ecx, 1
imul edx, ecx, 0
mov eax, dword [ebp - 0x738]
mov cl, byte [eax]
mov byte [ebp + edx - 0x734], cl
mov edx, 1
shl edx, 0
mov eax, dword [ebp - 0x738]
mov cl, byte [eax + 1]
mov byte [ebp + edx - 0x734], cl
mov edx, 1
shl edx, 1
mov eax, dword [ebp - 0x738]
mov cl, byte [eax + 2]
mov byte [ebp + edx - 0x734], cl
jmp 0x401539
push 0x400
push 0
lea edx, [ebp - 0x684]
push edx
call fcn.00404520
add esp, 0xc
push 0x400
lea eax, [ebp - 0x684]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 3
lea ecx, [ebp - 0x684]
push ecx
lea edx, [ebp - 0x734]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov dword [ebp - 0x730], 0
mov dword [ebp - 0x74c], 0
mov eax, dword [ebp - 0x744]
push eax
call fcn.004175e0
add esp, 4
mov dword [ebp - 0x74c], eax
push 0x4382ac
mov ecx, dword [ebp - 0x74c]
push ecx
call fcn.00408380
add esp, 8
mov dword [ebp - 0x748], eax
cmp dword [ebp - 0x748], 0
je 0x4015ba
cmp dword [ebp - 0x730], 0
jne 0x4015ba
mov edx, dword [ebp - 0x748]
push edx
call fcn.00409640
add esp, 4
mov dword [ebp - 0x730], eax
push 0x4382b0
push 0
call fcn.00408380
add esp, 8
mov dword [ebp - 0x748], eax
jmp 0x40157c
mov eax, dword [ebp - 0x730]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [ebp - 0x730], eax
cmp dword [ebp - 0x730], 0
jne 0x4015e5
mov dword [ebp - 0x730], 0x64
mov eax, dword [ebp - 0x74c]
push eax
call fcn.004083a0
add esp, 4
lea ecx, [ebp - 0x754]
push ecx
lea edx, [ebp - 0x75c]
push edx
lea eax, [ebp - 0x774]
push eax
lea ecx, [ebp - 0x734]
push ecx
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
push 0
push 0x400
mov edx, dword [ebp - 0x758]
push edx
mov eax, dword [ebp - 0x75c]
push eax
call fcn.004030e0
push 0
push 0x400
push edx
push eax
call fcn.004030e0
mov dword [ebp - 0x75c], eax
mov dword [ebp - 0x758], edx
mov ecx, dword [ebp - 0x75c]
mov dword [ebp - 0x764], ecx
push 0
push 0x400
mov edx, dword [ebp - 0x750]
push edx
mov eax, dword [ebp - 0x754]
push eax
call fcn.004030e0
push 0
push 0x400
push edx
push eax
call fcn.004030e0
mov dword [ebp - 0x754], eax
mov dword [ebp - 0x750], edx
mov ecx, dword [ebp - 0x754]
mov dword [ebp - 0x73c], ecx
mov edx, dword [ebp - 0x73c]
cmp edx, dword [ebp - 0x730]
jae 0x4017b1
push 0x200
push 0
lea eax, [ebp - 0x284]
push eax
call fcn.00404520
add esp, 0xc
push 0x40
push 0
lea ecx, [ebp - 0x44]
push ecx
call fcn.00404520
add esp, 0xc
push 0x40
push 0
lea edx, [ebp - 0x84]
push edx
call fcn.00404520
add esp, 0xc
mov eax, dword [ebp - 0x730]
push eax
push 0x4382b4
lea ecx, [ebp - 0x44]
push ecx
call fcn.00401920
add esp, 0xc
mov edx, dword [ebp - 0x73c]
push edx
push 0x4382b8
lea eax, [ebp - 0x84]
push eax
call fcn.00401920
add esp, 0xc
mov ecx, dword [ebp - 0x73c]
push ecx
mov edx, dword [ebp - 0x730]
push edx
push str.There_is_not_enough_disk_space_to_complete_the_n_installation.__uMB_is_required__and_only__uMB_is_available.
lea eax, [ebp - 0x284]
push eax
call fcn.00401920
add esp, 0x10
mov ecx, 4
imul edx, ecx, 0
lea eax, [ebp - 0x44]
mov dword [ebp + edx - 0x690], eax
mov ecx, 4
shl ecx, 0
lea edx, [ebp - 0x84]
mov dword [ebp + ecx - 0x690], edx
mov eax, 4
shl eax, 1
mov dword [ebp + eax - 0x690], 0
push 0xd
lea ecx, [ebp - 0x690]
push ecx
lea edx, [ebp - 0x284]
push edx
push 0x1d4d8
call section..text
add esp, 0x10
lea eax, [ebp - 0x284]
push eax
push 0x3e80
push 0x4382bc
call fcn.00401220
add esp, 0xc
mov dword [ebp - 0x740], 1
jmp 0x4017db
push 0xd
push 0
push str.Disk_space_check_passed
push 0x1d4d4
call section..text
add esp, 0x10
push 0x43825b
push 0
push str.DiskSpace
call fcn.00401220
add esp, 0xc
call fcn.00402080
mov ecx, dword [ebp - 0x768]
push ecx
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
cmp dword [ebp - 0x740], 0
je 0x4017fb
or eax, 0xffffffff
jmp 0x4017fd
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004030d0
mov esp, ebp
pop ebp
ret