Function at 0x401050
Capabilities:
Create process on windows

Disassembly:
mov eax, 0x12c0
call fcn.004016f0
push ebx
push ebp
mov ebp, dword [esp + 0x12d0]
push esi
push edi
or ecx, 0xffffffff
mov edi, dword [ebp]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0xd90]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xd90]
push ecx
call section..text
mov dl, byte [0x4079e0]
push str.winbootdir
mov byte [esp + 0x18], dl
call fcn.00401669
add esp, 8
xor ebx, ebx
test eax, eax
je 0x4010e3
mov eax, dword [str.i486_win95]
mov ecx, dword [0x40714c]
mov dx, word [0x407150]
mov dword [esp + 0x10], eax
mov al, byte [0x407152]
mov dword [esp + 0x14], ecx
mov word [esp + 0x18], dx
mov byte [esp + 0x1a], al
jmp 0x401308
push str.PROCESSOR
call fcn.00401669
add esp, 4
cmp eax, ebx
je 0x40111a
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x110]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str.PROCESSOR_ARCHITECTURE
call fcn.00401669
add esp, 4
cmp eax, ebx
je 0x401151
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x110]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.INTEL_486
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401181
cmp cl, bl
je 0x40117d
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401181
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40115d
xor eax, eax
jmp 0x401186
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4012f5
mov esi, 0x407114
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4011be
cmp cl, bl
je 0x4011ba
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4011be
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40119a
xor eax, eax
jmp 0x4011c3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4012f5
mov esi, str.MIPS_R4000
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4011fb
cmp cl, bl
je 0x4011f7
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4011fb
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4011d7
xor eax, eax
jmp 0x401200
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4012d6
mov esi, str.MIPS
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401238
cmp cl, bl
je 0x401234
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401238
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401214
xor eax, eax
jmp 0x40123d
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4012d6
mov esi, str.ALPHA_AXP
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401275
cmp cl, bl
je 0x401271
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401275
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401251
xor eax, eax
jmp 0x40127a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
je 0x4012b7
mov esi, str.ALPHA
lea eax, [esp + 0x110]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4012ae
cmp cl, bl
je 0x4012aa
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4012ae
add eax, 2
add esi, 2
cmp cl, bl
jne 0x40128a
xor eax, eax
jmp 0x4012b3
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401308
mov eax, dword [str.alpha_nt]
mov ecx, dword [0x4070e4]
mov dl, byte [0x4070e8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov byte [esp + 0x18], dl
jmp 0x401308
mov eax, dword [str.r4000_nt]
mov ecx, dword [0x4070d8]
mov dl, byte [0x4070dc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov byte [esp + 0x18], dl
jmp 0x401308
mov eax, dword [str.i486_nt]
mov ecx, dword [0x4070d0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov esi, 0x4079e0
lea eax, [esp + 0x10]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x401335
cmp cl, bl
je 0x401331
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x401335
add eax, 2
add esi, 2
cmp cl, bl
jne 0x401311
xor eax, eax
jmp 0x40133a
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x401351
mov eax, dword [str.i486_nt]
mov ecx, dword [0x4070d0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
push str.LANG
mov byte [esp + 0x314], bl
call fcn.00401669
add esp, 4
cmp eax, ebx
je 0x40137f
push eax
lea edx, [esp + 0x314]
push str._lang__s
push edx
call fcn.00401617
add esp, 0xc
push str.DPS_DEBUG
mov byte [esp + 0x214], bl
call fcn.00401669
add esp, 4
cmp eax, ebx
je 0x4013ad
push eax
lea eax, [esp + 0x214]
push str._dps_debug__s
push eax
call fcn.00401617
add esp, 0xc
push str.DPS_DEBUG_FILE
mov byte [esp + 0x414], bl
call fcn.00401669
add esp, 4
cmp eax, ebx
je 0x4013db
push eax
lea ecx, [esp + 0x214]
push str._dps_debug_file__s
push ecx
call fcn.00401617
add esp, 0xc
lea edx, [esp + 0x310]
lea eax, [esp + 0x410]
push edx
lea ecx, [esp + 0x214]
push eax
lea edx, [esp + 0x18]
push ecx
lea eax, [esp + 0xd9c]
push edx
push eax
lea ecx, [esp + 0x924]
push str._sdsrc_sobjps_start.exe__s__s__s
push ecx
call fcn.00401617
lea edx, [esp + 0xdac]
lea eax, [esp + 0x52c]
push edx
push str._s_1.txt
push eax
call fcn.00401617
add esp, 0x28
lea ecx, [esp + 0x1190]
lea edx, [esp + 0x510]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
jne 0x401458
mov al, byte [0x4079e0]
mov byte [esp + 0x510], al
jmp 0x401487
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [str.__multicd]
mov edx, dword [0x40703c]
mov ax, word [0x407040]
mov dword [esp + 0x510], ecx
mov dword [esp + 0x514], edx
mov word [esp + 0x518], ax
mov ebx, dword [esp + 0x12d4]
cmp ebx, 1
jle 0x4014fb
lea edx, [ebp + 4]
dec ebx
mov edi, 0x407034
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x910]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
add edx, 4
mov esi, edi
mov edi, ebp
mov ebp, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea ebp, [esp + 0x910]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [edx - 4]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebp
mov ebp, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
dec ebx
rep movsb byte es:[edi], byte [esi]
jne 0x401497
lea edi, [esp + 0x510]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x910]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 5
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x914]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_WinExec]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x12c0
ret