Function at 0x4010a0
Capabilities:
Check if file exists
Create a process with modified i/o handles and window
Create process on windows
Delete file
Download url
Get common file path
Get disk size
Get file attributes
Receive data

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x3ac
mov eax, dword [0x412004]
xor eax, esp
mov dword [esp + 0x3a8], eax
push esi
call section..text
test eax, eax
je 0x4010db
xor eax, eax
pop esi
mov ecx, dword [esp + 0x3a8]
xor ecx, esp
call fcn.0040136e
mov esp, ebp
pop ebp
ret 0x10
lea eax, [esp + 8]
mov dword [esp + 8], 0
push eax
push 0x101
push 0
push str.SOFTWAREMicrosoftWindowsCurrentVersionWindowsUpdateAuto_UpdateRebootRequired
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x40111e
push dword [esp + 8]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x30
push str.Reboot_Pending
push str.A_Windows_Update_reboot_is_pending._Please_reboot_and_retry_TouchPoint_Setup.
jmp 0x401340
lea eax, [esp + 0xc]
push eax
push 0
push 0
push 0x40c190
call dword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jne 0x40117b
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x18]
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x401354
cmp dword [esp + 0x34], 1
ja 0x40117b
jb 0x40116a
cmp dword [esp + 0x30], 0x40000000
jae 0x40117b
push 0x30
push str.Not_Enough_Space_on_Disk
push str.There_is_not_enough_free_space_to_install_.NET_4.5.2._n_nPlease_free_up_at_least_5GB_of_disk_space__or_manually_ninstall_the_above_.NET_version__then_retry_TouchPoint_setup.
jmp 0x401340
lea eax, [esp + 0x2a0]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea eax, [esp + 0x2a0]
push eax
lea eax, [esp + 0x94]
push 0x104
push eax
call fcn.004027f7
push str.TPDotNETInstaller.exe
lea eax, [esp + 0xa0]
push 0x104
push eax
call fcn.00402851
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [esp + 0xa8]
add esp, 0x18
push eax
call esi
cmp eax, 0xffffffff
je 0x4011f1
test al, 0x10
jne 0x4011f1
lea eax, [esp + 0x90]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
je 0x401334
push 0
push 0
lea eax, [esp + 0x98]
push eax
push str.http:__go.microsoft.com_fwlink__LinkId397708
push 0
call dword [sym.imp.urlmon.dll_URLDownloadToFileA]
test eax, eax
jne 0x401334
lea eax, [esp + 0x90]
push eax
call esi
cmp eax, 0xffffffff
je 0x401334
test al, 0x10
jne 0x401334
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x19c]
push 0x104
push eax
call fcn.004027f7
push str.__q__norestart__ChainingPackage__TouchPoint_Setup___log__
lea eax, [esp + 0x1a8]
push 0x104
push eax
call fcn.00402851
lea eax, [esp + 0x2b8]
push eax
lea eax, [esp + 0x1b4]
push 0x104
push eax
call fcn.00402851
push str.DotNETInstall.log_
lea eax, [esp + 0x1c0]
push 0x104
push eax
call fcn.00402851
push 0x44
lea eax, [esp + 0x7c]
push 0
push eax
call fcn.00402060
add esp, 0x3c
mov dword [esp + 0x48], 0x44
lea eax, [esp + 0x10]
xorps xmm0, xmm0
movaps xmmword [esp + 0x10], xmm0
push eax
lea eax, [esp + 0x4c]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
lea eax, [esp + 0x1b8]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x401334
push 0xffffffffffffffff
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea eax, [esp + 0x2c]
push eax
push dword [esp + 0x14]
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
push dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [esp + 0x14]
call esi
call section..text
test eax, eax
jne 0x4010c4
mov eax, dword [esp + 0x2c]
cmp eax, 0x669
je 0x401326
cmp eax, 0xbc2
jne 0x401334
push 0x30
push str.Reboot_Required
push str.Your_computer_must_be_restarted_before_the_installer_can_continue._Please_exit_then_rerun_TouchPoint_Setup_after_rebooting.
jmp 0x401340
push 0x30
push str.Failed_to_download_.NET
push str.Failed_to_download_or_apply_installer_for_.NET_4.5.2._n_nPlease_install_the_above_.NET_version_manually__then_retry_TouchPoint_setup.
push str.TouchPoint_Setup
push 0
call dword [sym.imp.USER32.dll_FindWindowA]
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
mov ecx, dword [esp + 0x3ac]
mov eax, 1
pop esi
xor ecx, esp
call fcn.0040136e
mov esp, ebp
pop ebp
ret 0x10