Function at 0x42f76d
Capabilities:
Create a process with modified i/o handles and window
Create pipe
Create process on windows
Read .ini file
Read file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeac
push ebx
push 0x45cc16
push 0
push str.DontAsk
push str.Accept
call sub.kernel32.dll_GetPrivateProfileIntA
or eax, eax
jne 0x42f7ba
mov dword [0x4aadbe], 1
push dword [ebp + 8]
push 0x4aa50e
call fcn.0042f5cb
mov dword [0x4aadbe], 0
or eax, eax
je 0x42fa3b
push 0x4aa50e
push 0
push 0xc2
push dword [0x453920]
call sub.user32.dll_SendMessageA
push 0x44ee71
push 0
push 0xc2
push dword [0x453920]
call sub.user32.dll_SendMessageA
push 0
push 0
push 0xb7
push dword [0x453920]
call sub.user32.dll_SendMessageA
mov eax, dword [ebp + 8]
or eax, eax
jne 0x42f9d6
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 8], 0
mov dword [ebp - 4], 1
push 0
lea eax, [ebp - 0xc]
push eax
push 0x4aad16
push 0x4aad12
call sub.kernel32.dll_CreatePipe
or eax, eax
jne 0x42f83f
mov eax, 0xa
jmp 0x42fa3b
mov dword [ebp - 0x50], 0x44
lea eax, [ebp - 0x50]
push eax
call sub.kernel32.dll_GetStartupInfoA
mov eax, dword [0x4aad16]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x10], eax
cmp dword [0x4aad2e], 0
je 0x42f893
mov dword [ebp - 0x24], 1
mov word [ebp - 0x20], 1
push 0x4aad1a
lea eax, [ebp - 0x50]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x4aa50e
push 0
call sub.kernel32.dll_CreateProcessA
jmp 0x42f8c1
mov dword [ebp - 0x24], 0x101
mov word [ebp - 0x20], 0
push 0x4aad1a
lea eax, [ebp - 0x50]
push eax
push 0
push 0
push 0
push 1
push 0
push 0
push 0x4aa50e
push 0
call sub.kernel32.dll_CreateProcessA
or eax, eax
jne 0x42f8e5
push dword [0x4aad12]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad16]
call sub.kernel32.dll_CloseHandle
mov eax, 0xb
jmp 0x42f9d4
cmp dword [0x4aad2e], 0
je 0x42f93c
push 0xffffffffffffffff
push dword [0x4aad1a]
call sub.kernel32.dll_WaitForSingleObject
push 0x4aad2a
push dword [0x4aad1a]
call sub.kernel32.dll_GetExitCodeProcess
push dword [0x4aad16]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad12]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad1e]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad1a]
call sub.kernel32.dll_CloseHandle
jmp 0x42f9cf
push dword [0x4aad16]
call sub.kernel32.dll_CloseHandle
push 0x800
push 0x4aa50e
call sub.kernel32.dll_RtlZeroMemory
xor ebx, ebx
push 0
lea eax, [ebp - 0x54]
push eax
push 1
lea eax, [ebx + 0x4aa50e]
push eax
push dword [0x4aad12]
call sub.kernel32.dll_ReadFile
or eax, eax
jne 0x42f983
or ebx, ebx
je 0x42f97f
call fcn.0042fa40
jmp 0x42f99e
cmp byte [ebx + 0x4aa50e], 0xa
je 0x42f994
cmp ebx, 0x1ff
jne 0x42f99b
call fcn.0042fa40
jmp 0x42f99c
inc ebx
jmp 0x42f958
push 0x4aad2a
push dword [0x4aad1a]
call sub.kernel32.dll_GetExitCodeProcess
push dword [0x4aad12]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad1e]
call sub.kernel32.dll_CloseHandle
push dword [0x4aad1a]
call sub.kernel32.dll_CloseHandle
mov eax, dword [0x4aad2a]
jmp 0x42fa3b
cmp eax, 1
je 0x42f9e0
cmp eax, 2
jne 0x42fa3b
dec eax
push eax
mov edx, 0x4aa50e
xor ebx, ebx
jmp 0x42fa08
cmp byte [edx], 0x22
jne 0x42f9fb
inc edx
jmp 0x42f9f4
inc edx
cmp byte [edx], 0x22
jne 0x42f9f3
jmp 0x42fa07
cmp byte [edx], 0x20
jne 0x42fa07
lea ebx, [edx + 1]
mov byte [edx], 0
dec edx
inc edx
cmp byte [edx], 0
jne 0x42f9eb
pop eax
push 0xa
push 0
push ebx
lea eax, [eax + 0x4aa50e]
push eax
push 0
push dword [0x4538b0]
call sub.shell32.dll_ShellExecuteA
cmp eax, 0x20
ja 0x42fa34
push eax
call fcn.004305c2
jmp 0x42fa36
xor eax, eax
mov dword [0x4aad2a], eax
pop ebx
leave
ret 4