Function at 0x40cf93
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov eax, 0x44c384
call fcn.0042c4cc
sub esp, 0x11c
push ebx
push esi
push edi
push str.ModifyInfrastructureFileAccordingToCommandLineParams_n
mov esi, 0x46abb8
push 2
mov ebx, ecx
push esi
call fcn.0040121a
mov al, byte [ebx + 0x48c]
lea edi, [ebx + 0x48c]
add esp, 0xc
lea ecx, [ebp - 0x24]
mov byte [ebp - 0x24], al
push 0
call fcn.004151e3
push dword [0x44f390]
lea ecx, [ebp - 0x24]
push 0
push edi
call fcn.004015d2
push dword [0x44f390]
xor edi, edi
lea eax, [ebx + 0x4c4]
lea ecx, [ebp - 0x24]
push edi
push eax
mov dword [ebp - 4], edi
call fcn.00404adc
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], 0x44f48c
cmp eax, edi
je 0x40d013
mov dword [ebp - 0x14], eax
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x40d052
sub esp, 0x10
lea esi, [ebp - 0x24]
mov edi, esp
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push str.Dat_file__s_doesn_t_exists_n
push 8
push 0x46abb8
movsd dword es:[edi], dword [esi]
call fcn.0040121a
add esp, 0x1c
mov dword [ebx + 0xc0], 2
xor esi, esi
jmp 0x40d301
cmp dword [ebx + 0x10c], edi
mov dword [ebx + 0xc0], 5
je 0x40d09b
mov ax, word [ebx + 0x104]
push eax
push 0x45f62c
push str.SilentInstall
push str.Version
push dword [ebp - 0x14]
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
jne 0x40d09b
push str.Cannot_make_infrastructure_file_silent
jmp 0x40d2d4
cmp dword [ebx + 0x4a4], 0
mov edi, str.INSTALLDIR
je 0x40d0e7
mov eax, dword [ebx + 0x4a0]
test eax, eax
jne 0x40d0b8
mov eax, 0x44f48c
mov cx, word [ebx + 0x104]
push ecx
push eax
push edi
push 0x45f598
push dword [ebp - 0x14]
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
jne 0x40d0e7
push str.Cannot_make_write_preinstall_path
jmp 0x40d2d4
cmp dword [ebx + 0x110], 0
je 0x40d19c
mov eax, dword [ebx + 0x118]
test eax, eax
jne 0x40d103
mov eax, 0x44f48c
mov cx, word [ebx + 0x104]
push ecx
push eax
push edi
push str.Version
push dword [ebp - 0x14]
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
je 0x40d0dd
mov eax, dword [ebx + 0x118]
test eax, eax
jne 0x40d137
mov eax, 0x44f48c
mov cx, word [ebx + 0x104]
push ecx
push eax
push str.Pre_Install
push str.Version
push dword [ebp - 0x14]
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
je 0x40d0dd
mov eax, dword [ebx + 0x118]
test eax, eax
jne 0x40d173
mov eax, 0x44f48c
mov cx, word [ebx + 0x104]
push ecx
push eax
push edi
push 0x45f598
push dword [ebp - 0x14]
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
je 0x40d0dd
cmp dword [ebx + 0x468], 0
je 0x40d23d
mov al, byte [0x46a9b4]
push 0x40
mov byte [ebp - 0x128], al
pop ecx
xor eax, eax
lea edi, [ebp - 0x127]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x128]
push eax
call fcn.0041ffd1
mov eax, dword [ebx + 0x470]
pop ecx
test eax, eax
jne 0x40d1e0
mov eax, 0x44f48c
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x40d1ec
mov ecx, 0x44f48c
mov dx, word [ebx + 0x104]
push edx
push eax
lea eax, [ebp - 0x127]
push eax
push str.Version
push ecx
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
jne 0x40d23d
push str.Cannot_make_force_reboot
push str._s_failed_n
push esi
call fcn.00414d1c
or dword [ebp - 4], 0xffffffff
add esp, 0xc
lea ecx, [ebp - 0x24]
push 1
call fcn.004151e3
xor eax, eax
jmp 0x40d311
cmp dword [ebx + 0x454], 0
je 0x40d28f
mov eax, dword [ebx + 0x45c]
test eax, eax
jne 0x40d255
mov eax, 0x44f48c
mov ecx, dword [ebp - 0x20]
test ecx, ecx
jne 0x40d261
mov ecx, 0x44f48c
mov dx, word [ebx + 0x104]
push edx
push eax
push str.UI_250
push str.Version
push ecx
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
jne 0x40d28f
push str.Cannot_write_network_address
jmp 0x40d2d4
cmp dword [ebx + 0x47c], 0
je 0x40d2e7
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x40d2a4
mov eax, 0x44f48c
mov cx, word [ebx + 0x104]
push ecx
push 0x45f62c
push str.Overide
push str.SystemRequirements
push eax
call fcn.004203f5
add esp, 0x14
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x10], eax
jne 0x40d2e7
push str.Cannot_make_override_system_checkt
push str._s_failed_n
push esi
call fcn.00414d1c
add esp, 0xc
jmp 0x40d04b
and dword [ebx + 0xc0], 0
push str.ModifyInfrastructureFileAccordingToCommandLineParams_n
push 4
push esi
call fcn.0040121a
add esp, 0xc
push 1
pop esi
or dword [ebp - 4], 0xffffffff
push 1
lea ecx, [ebp - 0x24]
call fcn.004151e3
mov eax, esi
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret