Function at 0x100828e2
Capabilities:
Create a process with modified i/o handles and window
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x998
mov dword [ebp - 0x998], 0
mov dword [ebp - 0x5c], 0
mov eax, dword [ebp + 8]
movsx ecx, byte [eax]
cmp ecx, 0x22
jne 0x1008295b
mov edx, dword [ebp + 8]
add edx, 1
push edx
lea eax, [ebp - 0x170]
push eax
call sub.MSVCR70D.dll_strcpy
add esp, 8
lea ecx, [ebp - 0x170]
mov dword [ebp - 0x64], ecx
jmp 0x10082931
mov edx, dword [ebp - 0x64]
add edx, 1
mov dword [ebp - 0x64], edx
mov eax, dword [ebp - 0x64]
movsx ecx, byte [eax]
test ecx, ecx
je 0x10082959
mov edx, dword [ebp - 0x64]
movsx eax, byte [edx]
cmp eax, 0x22
jne 0x10082957
mov ecx, dword [ebp - 0x64]
movsx edx, byte [ecx + 1]
test edx, edx
jne 0x10082957
mov eax, dword [ebp - 0x64]
mov byte [eax], 0
jmp 0x10082928
jmp 0x1008296e
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x170]
push edx
call sub.MSVCR70D.dll_strcpy
add esp, 8
push 0x81e
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x990]
push ecx
call sub.MSVCR70D.dll_strncpy
add esp, 0xc
lea edx, [ebp - 0x990]
push edx
call sub.MSVCR70D.dll_strlen
add esp, 4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx + eax*4]
mov dword [ebp - 0x60], edx
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0x5c]
add ecx, 1
mov dword [ebp - 0x5c], ecx
test eax, eax
je 0x10082a0e
mov edx, dword [ebp - 4]
mov byte [ebp + edx - 0x990], 0x20
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x60]
movsx edx, byte [ecx]
test edx, edx
je 0x10082a01
cmp dword [ebp - 4], 0x81e
ja 0x10082a01
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0x60]
mov dl, byte [ecx]
mov byte [ebp + eax - 0x990], dl
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 0x60]
add ecx, 1
mov dword [ebp - 0x60], ecx
jmp 0x100829cb
mov edx, dword [ebp - 4]
mov byte [ebp + edx - 0x990], 0
jmp 0x1008299b
call fcn.100816a9
mov dword [ebp - 0x48], 0x44
mov dword [ebp - 0x44], 0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x3c], 0
mov word [ebp - 0x16], 0
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x1c], 0x101
mov word [ebp - 0x18], 0
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0x10], eax
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 0xc], eax
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov dword [ebp - 8], eax
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x48]
push ecx
push 0
push 0
push 8
push 0
push 0
push 0
lea edx, [ebp - 0x990]
push edx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x10082ae6
push 0xffffffffffffffff
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea ecx, [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x58]
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp - 0x54]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [ebp - 0x68], 0
je 0x10082ae4
push str.pro_spawn_for_version_check___:
call sub.MSVCR70D.dll_perror
add esp, 4
push str.SPAWNED_PROCESS_DID_NOT_EXIT_NORMALLY_n
push 0x1015b4a0
call fcn.100bb0cb
add esp, 8
jmp 0x10082afd
mov dword [ebp - 0x998], 0xffffffff
push str.pro_spawn_for_version_check___:_SPAWN_FAILED
call sub.MSVCR70D.dll_perror
add esp, 4
call fcn.100816ca
mov eax, dword [ebp - 0x998]
mov esp, ebp
pop ebp
ret