Function at 0x401000
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xac8
mov eax, dword [0x42b034]
xor eax, esp
mov dword [esp + 0xac4], eax
push esi
push edi
call fcn.00401320
mov ecx, eax
mov dword [esp + 0xc], ecx
test ecx, ecx
je 0x401303
cmp word [0x42c4a0], 0
jne 0x4011ce
push 0x4222ac
push str.bf1942_path.txt
call fcn.0040a787
mov edi, eax
add esp, 8
test edi, edi
je 0x4010d2
push edi
push 0x400
push 0x42c4a0
call fcn.0040a4e7
push edi
mov esi, eax
call fcn.0040cb41
add esp, 0x10
test esi, esi
je 0x401120
mov ecx, esi
lea edx, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x401080
sub ecx, edx
sar ecx, 1
je 0x4010b2
lea eax, [esi + ecx*2]
movzx eax, word [eax - 2]
cmp eax, 0xa
je 0x4010a2
cmp eax, 0xd
jne 0x4010b2
sub ecx, 1
mov edx, 0
lea eax, [esi + ecx*2]
mov word [eax], dx
jne 0x401094
push 0x4222c0
push esi
call fcn.0040a770
add esp, 8
test eax, eax
je 0x401120
push eax
call fcn.0040cb41
add esp, 4
jmp 0x4011bc
push 0x4222c8
push 0x4222cc
call fcn.0040a787
add esp, 8
test eax, eax
je 0x401120
push eax
call fcn.0040cb41
movups xmm0, xmmword [str..BF1942.exe]
mov ax, word [0x4222f0]
add esp, 4
mov word [0x42c4b8], ax
movups xmmword [0x42c4a0], xmm0
movq xmm0, qword [0x4222e8]
movq qword [0x42c4b0], xmm0
jmp 0x4011bc
push 0x58
lea eax, [esp + 0x74]
push 0
push eax
call fcn.004096e0
xor eax, eax
mov dword [esp + 0x7c], 0x58
mov word [0x42c4a0], ax
add esp, 0xc
mov eax, dword [0x42b8e0]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x70]
mov dword [esp + 0x8c], 0x42c4a0
push eax
mov dword [esp + 0x94], 0x800
mov dword [esp + 0xa4], str.Select_BF1942.exe_in_your_game_folder
mov dword [esp + 0x80], 0x422344
mov dword [esp + 0xa8], 0x1808
call dword [sym.imp.COMDLG32.dll_GetOpenFileNameW]
test eax, eax
je 0x4011bc
push 0x422374
push str.bf1942_path.txt
call fcn.0040a787
mov esi, eax
add esp, 8
test esi, esi
je 0x4011bc
push esi
push 0x42c4a0
call fcn.0040a5b1
push esi
call fcn.0040cb41
add esp, 0xc
cmp word [0x42c4a0], 0
je 0x401303
mov ecx, dword [esp + 0xc]
lea eax, [ecx + 0xe4]
push eax
movzx eax, word [ecx + 0x104]
push eax
push dword [ecx + 0x120]
call dword [sym.imp.WS2_32.dll_inet_ntoa]
push eax
push str.BF1942.exe_restart_1_joinServer__hs:_d_game__ls
lea eax, [esp + 0xd8]
push pe_nt_image_headers32
push eax
call fcn.00402ec0
push 0x800
lea eax, [esp + 0x2e4]
push 0
push eax
call fcn.004096e0
push 0x5c
push 0x42c4a0
call fcn.004090b1
mov edi, eax
add esp, 0x2c
test edi, edi
je 0x40125b
xor ecx, ecx
cmp edi, 0x42c4a0
je 0x40125b
mov edx, 0x42c4a0
xor esi, esi
nop dword [eax + eax]
mov ax, word [edx]
lea ecx, [ecx + 1]
mov word [esp + esi + 0x2c8], ax
lea esi, [ecx + ecx]
lea edx, [esi + 0x42c4a0]
cmp edx, edi
jne 0x401240
lea eax, [esp + 0x10]
mov dword [esp + 0x28], 0x44
push eax
lea eax, [esp + 0x2c]
xorps xmm0, xmm0
push eax
lea eax, [esp + 0x2d0]
movlpd qword [esp + 0x34], xmm0
push eax
push 0
push 0x200
push 0
push 0
push 0
lea eax, [esp + 0xe8]
movlpd qword [esp + 0x54], xmm0
push eax
push 0x42c4a0
movlpd qword [esp + 0x64], xmm0
movlpd qword [esp + 0x6c], xmm0
movlpd qword [esp + 0x74], xmm0
movlpd qword [esp + 0x7c], xmm0
movlpd qword [esp + 0x84], xmm0
movlpd qword [esp + 0x8c], xmm0
movaps xmmword [esp + 0x38], xmm0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
jne 0x4012f1
call dword [sym.imp.KERNEL32.dll_GetLastError]
pop edi
pop esi
mov ecx, dword [esp + 0xac4]
xor ecx, esp
call fcn.00408284
mov esp, ebp
pop ebp
ret
push dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_CloseHandle]
call esi
push dword [esp + 0x14]
call esi
mov ecx, dword [esp + 0xacc]
pop edi
pop esi
xor ecx, esp
call fcn.00408284
mov esp, ebp
pop ebp
ret