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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8a4
mov eax, dword [0x411020]
xor eax, ebp
mov dword [ebp - 0x40], eax
push esi
call dword [sym.imp.KERNEL32.dll_GetCommandLineA]
mov dword [ebp - 0x20], eax
push 0x28
push 0
push 0x411e00
call fcn.00403640
add esp, 0xc
mov dword [ebp - 0x28], 0
push str.AGENTGWLIST
mov eax, dword [ebp - 0x20]
push eax
call fcn.00401de0
add esp, 8
test eax, eax
je 0x401051
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x1c], 0
call fcn.00402070
mov dword [ebp - 0xec], eax
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 8], 0
call fcn.00401d50
push 0x9c
push 0
lea ecx, [ebp - 0xe0]
push ecx
call fcn.00403640
add esp, 0xc
mov dword [ebp - 0xe0], 0x9c
lea edx, [ebp - 0xe0]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x401120
cmp dword [ebp - 0xd0], 2
jne 0x4010ea
push 0xc
push 0
push str.Platform_check_passed
push 0x1d4d6
call fcn.00401b20
add esp, 0x10
push 0x40e1ea
push 0
push 0x40e1ec
call fcn.00401ca0
add esp, 0xc
jmp 0x40111e
push 0xc
push 0
push 0x40e1f4
push 0x1d4d5
call fcn.00401b20
add esp, 0x10
push 0x40e1eb
push 0xbc1
push 0x40e22c
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401154
push 0xc
push 0
push str.This_machine_is_not_running_NT_Service_Pack_6_or_higher
push 0x1d4d5
call fcn.00401b20
add esp, 0x10
push 0x40e1f3
push 0xbc1
push str.SetEnv
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
mov byte [ebp - 0x10], 0
mov byte [ebp - 0xf], 0
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xd], 0
push 0x40e274
mov eax, dword [ebp - 0x20]
push eax
call fcn.00401de0
add esp, 8
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
je 0x4011ad
push str._DRIVE
call fcn.004035b0
add esp, 4
add eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov ecx, dword [ebp - 0x18]
mov dl, byte [ecx]
mov byte [ebp - 0x10], dl
mov eax, dword [ebp - 0x18]
mov cl, byte [eax + 1]
mov byte [ebp - 0xf], cl
mov edx, dword [ebp - 0x18]
mov al, byte [edx + 2]
mov byte [ebp - 0xe], al
jmp 0x4011e8
push 0x400
push 0
lea ecx, [ebp - 0x4f0]
push ecx
call fcn.00403640
add esp, 0xc
push 0x400
lea edx, [ebp - 0x4f0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
push 3
lea eax, [ebp - 0x4f0]
push eax
lea ecx, [ebp - 0x10]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov dword [ebp - 4], 0
mov dword [ebp - 0x3c], 0
mov edx, dword [ebp - 0x20]
push edx
call fcn.0040d104
add esp, 4
mov dword [ebp - 0x3c], eax
push 0x40e284
mov eax, dword [ebp - 0x3c]
push eax
call fcn.004034ee
add esp, 8
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0
je 0x401248
cmp dword [ebp - 4], 0
jne 0x401248
mov ecx, dword [ebp - 0x24]
push ecx
call fcn.004034d8
add esp, 4
mov dword [ebp - 4], eax
push 0x40e288
push 0
call fcn.004034ee
add esp, 8
mov dword [ebp - 0x24], eax
jmp 0x401219
mov eax, dword [ebp - 4]
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x401267
mov dword [ebp - 4], 0x64
mov edx, dword [ebp - 0x3c]
push edx
call fcn.0040349e
add esp, 4
lea eax, [ebp - 0x30]
push eax
lea ecx, [ebp - 0xe8]
push ecx
lea edx, [ebp - 0x38]
push edx
lea eax, [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExA]
push 0
push 0x400
mov ecx, dword [ebp - 0xe4]
push ecx
mov edx, dword [ebp - 0xe8]
push edx
call fcn.004036d0
push 0
push 0x400
push edx
push eax
call fcn.004036d0
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe4], edx
mov eax, dword [ebp - 0xe8]
mov dword [ebp - 0x14], eax
push 0
push 0x400
mov ecx, dword [ebp - 0x2c]
push ecx
mov edx, dword [ebp - 0x30]
push edx
call fcn.004036d0
push 0
push 0x400
push edx
push eax
call fcn.004036d0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
mov eax, dword [ebp - 0x30]
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
cmp ecx, dword [ebp - 4]
jae 0x4013ec
push 0x200
push 0
lea edx, [ebp - 0x6f0]
push edx
call fcn.00403640
add esp, 0xc
push 0x40
push 0
lea eax, [ebp - 0x780]
push eax
call fcn.00403640
add esp, 0xc
push 0x40
push 0
lea ecx, [ebp - 0x740]
push ecx
call fcn.00403640
add esp, 0xc
mov edx, dword [ebp - 4]
push edx
push 0x40e28c
lea eax, [ebp - 0x780]
push eax
call fcn.004033fc
add esp, 0xc
mov ecx, dword [ebp - 8]
push ecx
push 0x40e290
lea edx, [ebp - 0x740]
push edx
call fcn.004033fc
add esp, 0xc
mov eax, dword [ebp - 8]
push eax
mov ecx, dword [ebp - 4]
push ecx
push str.There_is_not_enough_disk_space_to_complete_the_n_installation.__uMB_is_required__and_only__uMB_is_available.
lea edx, [ebp - 0x6f0]
push edx
call fcn.004033fc
add esp, 0x10
lea eax, [ebp - 0x780]
mov dword [ebp - 0x6fc], eax
lea ecx, [ebp - 0x740]
mov dword [ebp - 0x6f8], ecx
mov dword [ebp - 0x6f4], 0
push 0xd
lea edx, [ebp - 0x6fc]
push edx
lea eax, [ebp - 0x6f0]
push eax
push 0x1d4d8
call fcn.00401b20
add esp, 0x10
lea ecx, [ebp - 0x6f0]
push ecx
push 0x3e80
push 0x40e294
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401416
push 0xd
push 0
push str.Disk_space_check_passed
push 0x1d4d4
call fcn.00401b20
add esp, 0x10
push 0x40e233
push 0
push str.DiskSpace
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x28], 0
jne 0x401883
cmp dword [ebp - 0xec], 0
je 0x4017f0
push 5
push 0x3ec
push str.spin
call fcn.00402140
add esp, 0xc
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x898], edx
cmp dword [ebp - 0x898], 1
je 0x401478
cmp dword [ebp - 0x898], 2
je 0x4014d1
cmp dword [ebp - 0x898], 3
je 0x401507
jmp 0x40153d
push 0xf
push 0
push str.Successful_name_resolution_for_the_Data_Access_Engine
push 0x1d4c2
call fcn.00401b20
add esp, 0x10
push 0x14
push 0
push str.Successfully_connected_to_the_Data_Access_Engine_on_port_1004
push 0x1d4c1
call fcn.00401b20
add esp, 0x10
push 0x40e273
push 0
push 0x40e3b0
call fcn.00401ca0
add esp, 0xc
push 0x40e286
push 0
push 0x40e3bc
call fcn.00401ca0
add esp, 0xc
jmp 0x401571
push 0x14
push 0
push str.Unable_to_connect_to_the_Data_Access_Engine_on_port_1004
push 0x1d4c0
call fcn.00401b20
add esp, 0x10
push 0x40e287
push 0x2eeb
push 0x40e404
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401571
push 0x14
push 0
push str.Unsuccessful_name_resolution_for_the_Data_Access_Engine
push 0x1d4c3
call fcn.00401b20
add esp, 0x10
push 0x40e28a
push 0x1b62
push str.SpinResolv
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401571
push 0x14
push 0
push 0x40e454
push 0x1d4c4
call fcn.00401b20
add esp, 0x10
push 0x40e28b
push 0x2eea
push 0x40e48c
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
push 5
push 0x3fa
push 0x40e498
call fcn.00402140
add esp, 0xc
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x89c], eax
cmp dword [ebp - 0x89c], 1
je 0x4015b5
cmp dword [ebp - 0x89c], 2
je 0x40160e
cmp dword [ebp - 0x89c], 3
je 0x401644
jmp 0x40167a
push 0x19
push 0
push str.Succesful_name_resolution_for_the_Command_Engine
push 0x1d4ce
call fcn.00401b20
add esp, 0x10
push 0x1e
push 0
push str.Successfully_connected_to_the_Command_Engine_on_port_1018
push 0x1d4cb
call fcn.00401b20
add esp, 0x10
push 0x40e28f
push 0
push 0x40e510
call fcn.00401ca0
add esp, 0xc
push 0x40e293
push 0
push 0x40e51c
call fcn.00401ca0
add esp, 0xc
jmp 0x4016ae
push 0x1e
push 0
push str.Unable_to_connect_to_the_Command_Engine_on_port_1018
push 0x1d4ca
call fcn.00401b20
add esp, 0x10
push 0x40e29e
push 0x32d3
push 0x40e55c
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x4016ae
push 0x1e
push 0
push str.Unsuccessful_name_resolution_for_the_Command_Engine
push 0x1d4cc
call fcn.00401b20
add esp, 0x10
push 0x40e29f
push 0x1f4a
push str.WayResolv
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x4016ae
push 0x1e
push 0
push 0x40e5a4
push 0x1d4cd
call fcn.00401b20
add esp, 0x10
push 0x40e32e
push 0x32d2
push 0x40e5d8
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
push 5
push 0x3eb
push str.theword
call fcn.00402140
add esp, 0xc
mov dword [ebp - 0xc], eax
mov ecx, dword [ebp - 0xc]
mov dword [ebp - 0x8a0], ecx
cmp dword [ebp - 0x8a0], 1
je 0x4016f2
cmp dword [ebp - 0x8a0], 2
je 0x40174b
cmp dword [ebp - 0x8a0], 3
je 0x401781
jmp 0x4017b7
push 0x23
push 0
push str.Successful_name_resolution_for_the_Software_Repository
push 0x1d4c9
call fcn.00401b20
add esp, 0x10
push 0x28
push 0
push str.Successfully_connected_to_the_Software_Repository_on_port_1003
push 0x1d4c6
call fcn.00401b20
add esp, 0x10
push 0x40e32f
push 0
push 0x40e664
call fcn.00401ca0
add esp, 0xc
push 0x40e336
push 0
push 0x40e670
call fcn.00401ca0
add esp, 0xc
jmp 0x4017eb
push 0x28
push 0
push str.Unable_to_connect_to_the_Software_Repository_on_port_1003
push 0x1d4c5
call fcn.00401b20
add esp, 0x10
push 0x40e337
push 0x36bb
push 0x40e6b8
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x4017eb
push 0x28
push 0
push str.Unsuccessful_name_resolution_for_the_Software_Repository
push 0x1d4c7
call fcn.00401b20
add esp, 0x10
push 0x40e36e
push 0x271a
push str.WordResolv
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x4017eb
push 0x28
push 0
push 0x40e70c
push 0x1d4c8
call fcn.00401b20
add esp, 0x10
push 0x40e36f
push 0x36ba
push 0x40e748
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x40187e
push 0x14
push 0
push str.Error_when_attempting_to_contact_the_Data_Access_Engine
push 0x1d4c4
call fcn.00401b20
add esp, 0x10
push 0x40e3ae
push 0x2eea
push str.SpinPort
call fcn.00401ca0
add esp, 0xc
push 0x1e
push 0
push str.Error_when_attempting_to_contact_the_Command_Engine
push 0x1d4cd
call fcn.00401b20
add esp, 0x10
push 0x40e3af
push 0x32d2
push str.WayPort
call fcn.00401ca0
add esp, 0xc
push 0x28
push 0
push str.Error_when_attempting_to_contact_the_Software_Repository
push 0x1d4c8
call fcn.00401b20
add esp, 0x10
push 0x40e3bb
push 0x36ba
push str.WordPort
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x4019eb
push 0x40e81c
mov edx, dword [ebp - 0x20]
push edx
call fcn.00401de0
add esp, 8
mov esi, eax
push str._AGENTGWLIST
call fcn.004035b0
add esp, 4
add esi, eax
mov dword [ebp - 0x78c], esi
push 0x40e83c
mov eax, dword [ebp - 0x78c]
push eax
call fcn.004034ee
add esp, 8
mov dword [ebp - 0x784], eax
mov byte [ebp - 0x890], 0
push 0xff
push 0
lea ecx, [ebp - 0x88f]
push ecx
call fcn.00403640
add esp, 0xc
mov dword [ebp - 0x790], 0
cmp dword [ebp - 0x784], 0
je 0x401982
push 0x100
push 0
lea edx, [ebp - 0x890]
push edx
call fcn.00403640
add esp, 0xc
lea eax, [ebp - 0x788]
push eax
push 0x100
lea ecx, [ebp - 0x890]
push ecx
mov edx, dword [ebp - 0x784]
push edx
call fcn.00401f00
add esp, 0x10
test eax, eax
je 0x401968
push 5
mov eax, dword [ebp - 0x788]
push eax
lea ecx, [ebp - 0x890]
push ecx
call fcn.00402140
add esp, 0xc
mov dword [ebp - 0x894], eax
cmp dword [ebp - 0x894], 1
jne 0x401968
mov dword [ebp - 0x790], 1
jmp 0x401982
push 0x40e840
push 0
call fcn.004034ee
add esp, 8
mov dword [ebp - 0x784], eax
jmp 0x4018ec
cmp dword [ebp - 0x790], 1
jne 0x4019b7
push 0x2d
push 0
push str.Gateway_reachability_check_passed
push 0x1d4d2
call fcn.00401b20
add esp, 0x10
push 0x40e3c5
push 0
push 0x40e868
call fcn.00401ca0
add esp, 0xc
jmp 0x4019eb
push 0x2d
push 0
push str.Gateway_reachability_check_failed
push 0x1d4d3
call fcn.00401b20
add esp, 0x10
push 0x40e3c6
push 0x4277
push str.GatewayCheck
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
cmp dword [ebp - 0xec], 0
je 0x401ac1
push 5
push 0x3ea
push 0
call fcn.00402140
add esp, 0xc
mov dword [ebp - 0xc], eax
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x8a4], edx
cmp dword [ebp - 0x8a4], 1
je 0x401a29
cmp dword [ebp - 0x8a4], 2
je 0x401a5f
jmp 0x401a8b
push 0x32
push 0
push str.Local_port_1002_is_currently_in_use
push 0x1d4d0
call fcn.00401b20
add esp, 0x10
push 0x40e3c7
push 0x2b02
push 0x40e8d0
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401abf
push 0x32
push 0
push str.Local_port_1002_is_available_for_the_agents_use
push 0x1d4cf
call fcn.00401b20
add esp, 0x10
push 0x40e401
push 0
push 0x40e910
call fcn.00401ca0
add esp, 0xc
jmp 0x401abf
push 0x32
push 0
push 0x40e91c
push 0x1d4d1
call fcn.00401b20
add esp, 0x10
push 0x40e402
push 0x2b03
push 0x40e950
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
jmp 0x401af5
push 0x32
push 0
push str.Unable_to_determine_if_local_port_1002_is_available
push 0x1d4d1
call fcn.00401b20
add esp, 0x10
push 0x40e403
push 0x2b03
push str.AgentPort
call fcn.00401ca0
add esp, 0xc
mov dword [ebp - 0x1c], 1
call fcn.00402130
cmp dword [ebp - 0x1c], 0
je 0x401b05
or eax, 0xffffffff
jmp 0x401b07
xor eax, eax
pop esi
mov ecx, dword [ebp - 0x40]
xor ecx, ebp
call fcn.004036ba
mov esp, ebp
pop ebp
ret