Function at 0x414aa0
Capabilities:
Create process on windows
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x4b2397
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x150
push ebx
mov ebx, dword [esp + 0x164]
push ebp
push esi
mov ebp, ecx
push edi
mov edi, ebx
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x104
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 + 0x60]
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::CString_5
lea ecx, [esp + 0x18]
mov dword [esp + 0x168], 0
call sub.MFC42.DLL_CString::CString_5
lea edx, [esp + 0x5c]
lea eax, [esp + 0x18]
push edx
push str._sGLSetup.exe
push eax
mov byte [esp + 0x174], 1
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
cmp word [ebp + 0x288], 0x3a8
je 0x414b5d
mov ecx, dword [ebp + 0x288]
lea edx, [esp + 0x1c]
push ecx
push ebx
push 0x4d696c
push edx
call dword [sym.imp.MSVCRT.dll_sprintf]
add esp, 0x10
mov ecx, dword [esp + 0x174]
test ecx, ecx
je 0x414bb5
mov edx, ecx
mov eax, ecx
and edx, 0xff
push edx
xor edx, edx
mov dl, ch
and edx, 0xff
shr eax, 0x10
push edx
xor edx, edx
mov ecx, eax
mov dl, ah
mov eax, dword [ebp + 0x288]
and ecx, 0xff
and edx, 0xff
push ecx
push edx
lea ecx, [esp + 0x2c]
push eax
push ecx
lea edx, [esp + 0x2c]
push str._Group:__s___Language:_d__Version:__d._d._d._d_
push edx
call sub.MFC42.DLL_CString::Format_1
add esp, 0x20
jmp 0x414bd3
mov eax, dword [ebp + 0x288]
lea ecx, [esp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x1c]
push str._Group:__s___Language:_d
push edx
call sub.MFC42.DLL_CString::Format_1
add esp, 0x10
mov eax, dword [esp + 0x178]
test eax, eax
je 0x414bec
push str.__Resume:_No_
lea ecx, [esp + 0x18]
call fcn.0045518c
mov eax, dword [esp + 0x17c]
test eax, eax
je 0x414c05
push str.__Background
lea ecx, [esp + 0x18]
call fcn.0045518c
mov esi, dword [esp + 0x180]
test esi, esi
je 0x414c53
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_5
push esi
lea eax, [esp + 0x14]
push str.__Fullname:__s_
push eax
mov byte [esp + 0x174], 2
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
lea ecx, [esp + 0x10]
push ecx
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 1
call sub.MFC42.DLL_CString::CString
mov esi, dword [esp + 0x184]
test esi, esi
je 0x414ca1
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_5
push esi
lea edx, [esp + 0x14]
push str.__ServerList:__s_
push edx
mov byte [esp + 0x174], 3
call sub.MFC42.DLL_CString::Format_1
add esp, 0xc
lea eax, [esp + 0x10]
lea ecx, [esp + 0x14]
push eax
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 1
call sub.MFC42.DLL_CString::CString
mov edi, dword [esp + 0x188]
test edi, edi
je 0x414cfb
mov esi, dword [esp + 0x18c]
test esi, esi
je 0x414cfb
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString_5
push esi
push edi
lea ecx, [esp + 0x18]
push str.__HWND:__d___MSG:__d_
push ecx
mov byte [esp + 0x178], 4
call sub.MFC42.DLL_CString::Format_1
add esp, 0x10
lea edx, [esp + 0x10]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::operator_2
lea ecx, [esp + 0x10]
mov byte [esp + 0x168], 1
call sub.MFC42.DLL_CString::CString
xor esi, esi
call sub.MFC42.DLL_AfxGetThread
test eax, eax
je 0x414d14
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x7c]
test eax, eax
je 0x414d14
mov esi, dword [eax + 0x20]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
push 0xa
push 0
push eax
push ecx
push 0
push esi
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
pop edi
pop esi
pop ebp
cmp eax, 0x1f
pop ebx
jg 0x414d80
push 0xffffffffffffffff
push 0x30
push 0xe01e
call sub.MFC42.DLL_AfxMessageBox
lea ecx, [esp + 8]
mov byte [esp + 0x158], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 4]
mov dword [esp + 0x158], 0xffffffff
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x150]
mov dword fs:[0], ecx
add esp, 0x15c
ret 0x20
lea ecx, [esp + 8]
mov byte [esp + 0x158], 0
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 4]
mov dword [esp + 0x158], 0xffffffff
call sub.MFC42.DLL_CString::CString
mov ecx, dword [esp + 0x150]
mov eax, 1
mov dword fs:[0], ecx
add esp, 0x15c
ret 0x20