Function at 0x40c860
Capabilities:
Accept command line arguments
Contain obfuscated stackstrings
Create process on windows
Create process suspended
Terminate process

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
lea eax, [ebp - 0x2a0]
push ebx
sub esp, 0x2c0
mov ebx, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_IsWow64Process]
sub esp, 8
test eax, eax
je 0x40c89b
mov edi, dword [ebp - 0x2a0]
test edi, edi
jne 0x40cc50
mov dword [esp], ebx
call sym._initialize
mov esi, eax
test eax, eax
jne 0x40d128
mov eax, dword [ebp + 0x10]
movzx eax, word [eax]
mov word [ebp - 0x2a4], ax
and eax, 0xfffffffd
cmp ax, 0x2d
je 0x40cdb0
call dword [sym.imp.comctl32.dll_InitCommonControls]
mov dword [esp + 4], 2
mov dword [esp], 0
call dword [sym.imp.ole32.dll_CoInitializeEx]
mov dword [ebp - 0x1fc], ebx
mov dword [ebp - 0x204], 0x38
sub esp, 8
mov dword [esp], 2
mov dword [ebp - 0x200], 8
mov dword [ebp - 0x1f8], 0x6c
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1ec], sym._AppDlgProc_16
call sym._load_string
mov dword [esp], 3
mov dword [ebp - 0x1f0], eax
mov dword [ebp - 0x1e8], 0
mov dword [ebp - 0x1cc], 0x38
mov dword [ebp - 0x1c8], 8
mov dword [ebp - 0x1c4], ebx
mov dword [ebp - 0x1c0], 0x6f
mov dword [ebp - 0x1bc], 0
mov dword [ebp - 0x1b4], sym._LibrariesDlgProc_16
call sym._load_string
mov dword [esp], 9
mov dword [ebp - 0x1b8], eax
mov dword [ebp - 0x1b0], 0
mov dword [ebp - 0x194], 0x38
mov dword [ebp - 0x190], 8
mov dword [ebp - 0x18c], ebx
mov dword [ebp - 0x188], 0x6e
mov dword [ebp - 0x184], 0
mov dword [ebp - 0x17c], sym._GraphDlgProc_16
call sym._load_string
mov dword [esp], 0xa
mov dword [ebp - 0x180], eax
mov dword [ebp - 0x178], 0
mov dword [ebp - 0x15c], 0x38
mov dword [ebp - 0x158], 8
mov dword [ebp - 0x154], ebx
mov dword [ebp - 0x150], 0x73
mov dword [ebp - 0x14c], 0
mov dword [ebp - 0x144], sym._ThemeDlgProc_16
call sym._load_string
mov dword [esp], 4
mov dword [ebp - 0x148], eax
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x124], 0x38
mov dword [ebp - 0x120], 8
mov dword [ebp - 0x11c], ebx
mov dword [ebp - 0x118], 0x70
mov dword [ebp - 0x114], 0
mov dword [ebp - 0x10c], sym._DriveDlgProc_16
call sym._load_string
mov dword [esp], 0xb
mov dword [ebp - 0x110], eax
mov dword [ebp - 0x108], 0
mov dword [ebp - 0xec], 0x38
mov dword [ebp - 0xe8], 8
mov dword [ebp - 0xe4], ebx
mov dword [ebp - 0xe0], 0x6d
mov dword [ebp - 0xdc], 0
mov dword [ebp - 0xd4], sym._AudioDlgProc_16
call sym._load_string
mov dword [esp], 0x13
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], 0
mov dword [ebp - 0xb4], 0x38
mov dword [ebp - 0xb0], 8
mov dword [ebp - 0xac], ebx
mov dword [ebp - 0xa8], 0x74
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0x9c], sym._StagingDlgProc_16
call sym._load_string
mov dword [esp], 0x14
mov dword [ebp - 0xa0], eax
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x7c], 0x38
mov dword [ebp - 0x78], 8
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x70], 0x75
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x64], sym._InputDlgProc_16
call sym._load_string
mov dword [esp], 0xc
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x44], 0x38
mov dword [ebp - 0x40], 8
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], 0x6b
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x2c], sym._AboutDlgProc_16
call sym._load_string
mov dword [esp], 0xd
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x248], 0x34
mov dword [ebp - 0x244], 0x10c
mov dword [ebp - 0x240], 0
mov dword [ebp - 0x23c], ebx
mov dword [ebp - 0x238], 0x64
call sym._load_string
mov dword [ebp - 0x230], 9
mov dword [ebp - 0x234], eax
lea eax, [ebp - 0x204]
mov dword [ebp - 0x228], eax
lea eax, [ebp - 0x248]
mov dword [ebp - 0x224], sym._PropSheetCallback_12
mov dword [ebp - 0x22c], 0
mov dword [esp], eax
call dword [sym.imp.comctl32.dll_PropertySheetW]
sub esp, 4
test eax, eax
jle 0x40cf9a
test byte [0x417300], 8
jne 0x40d142
call dword [sym.imp.ole32.dll_CoUninitialize]
mov dword [esp], 0
call dword [sym.imp.kernel32.dll_ExitProcess]
lea edx, [ebp - 0x244]
xor eax, eax
mov ecx, 0x10
mov dword [ebp - 0x288], 0x3a0043
mov edi, edx
lea esi, [ebp - 0x248]
mov dword [ebp - 0x284], 0x77005c
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x29c]
mov dword [ebp - 0x280], 0x6e0069
lea edi, [ebp - 0x288]
mov dword [ebp - 0x27c], 0x6f0064
mov dword [ebp - 0x278], 0x730077
mov dword [ebp - 0x274], 0x73005c
mov dword [ebp - 0x270], 0x730079
mov dword [ebp - 0x26c], 0x650074
mov dword [ebp - 0x268], 0x33006d
mov dword [ebp - 0x264], 0x5c0032
mov dword [ebp - 0x260], 0x690077
mov dword [ebp - 0x25c], 0x65006e
mov dword [ebp - 0x258], 0x660063
mov dword [ebp - 0x254], 0x2e0067
mov dword [ebp - 0x250], 0x780065
mov dword [ebp - 0x24c], 0x65
mov dword [ebp - 0x248], 0x44
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_Wow64DisableWow64FsRedirection]
sub esp, 4
call dword [sym.imp.kernel32.dll_GetCommandLineW]
lea edx, [ebp - 0x298]
mov dword [esp], edi
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], esi
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_CreateProcessW]
sub esp, 0x28
test eax, eax
jne 0x40d16b
test byte [0x417300], 2
jne 0x40ce70
mov eax, dword [ebp - 0x29c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_Wow64RevertWow64FsRedirection]
sub esp, 4
jmp 0x40c89b
mov dword [esp + 4], str.en_US
mov dword [esp], 0
call dword [sym.imp.ucrtbase.dll_setlocale]
mov eax, dword [ebp + 0x10]
movzx eax, word [eax + 2]
mov edx, eax
and edx, 0xffffffdf
cmp dx, 0x56
je 0x40cf60
cmp ax, 0x3f
jne 0x40ce50
mov dword [esp], str.Usage:_winecfg__options__n_n
call sym._wine_dbg_printf_1
mov dword [esp], str.Options:_n
call sym._wine_dbg_printf_1
mov dword [esp], str.___no_option__Launch_the_graphical_version_of_this_program._n
call sym._wine_dbg_printf_1
mov dword [esp], str.___v__________Display_the_current_global_Windows_version._n
call sym._wine_dbg_printf_1
mov dword [esp], str.___v_version__Set_global_Windows_version_to_version._n
call sym._wine_dbg_printf_1
mov dword [esp], str.______________Display_this_information_and_exit._n_n
call sym._wine_dbg_printf_1
mov dword [esp], str.Valid_versions_for_version:_n_n
call sym._wine_dbg_printf_1
call sym._print_windows_versions
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
mov eax, dword [ebp + 0x10]
mov dword [esp], str.Unsupported_option__ls_n
mov dword [esp + 4], eax
call sym._wine_dbg_printf_1
jmp 0x40cde1
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [ebp - 0x2a4], eax
mov eax, edi
shr eax, 0x10
je 0x40cfd0
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, 0x41b1e6
sub esp, 8
test eax, eax
jne 0x40cfe5
cmp word [ebp - 0x288], 0
je 0x40d10a
lea esi, [esi]
mov edx, eax
lea eax, [eax + 1]
cmp word [edi + edx*2 + 2], 0
jne 0x40cec0
mov ecx, 0x224c
mov dword [ebp + 8], ebx
mov word [ebp - 0x204], cx
lea ecx, [ebp - 0x202]
jmp 0x40cf2b
cmp ax, 9
je 0x40d038
cmp ax, 0xa
jne 0x40d056
mov eax, 0x6e5c
add ecx, 2
mov word [ecx - 2], ax
nop
lea esi, [esi]
lea eax, [edx - 1]
test edx, edx
jle 0x40d0c8
lea esi, [ebp - 0xe2]
cmp ecx, esi
ja 0x40d0c8
mov edx, eax
movzx eax, word [edi]
add edi, 2
cmp ax, 0xd
je 0x40d020
jbe 0x40cee8
cmp ax, 0x22
je 0x40d0b0
cmp ax, 0x5c
jne 0x40d049
mov eax, 0x5c5c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x40cf10
mov eax, dword [ebp + 0x10]
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_wcslen]
cmp eax, 4
jbe 0x40cf90
mov eax, dword [ebp + 0x10]
add eax, 6
mov dword [esp], eax
call sym._set_winver_from_string
test eax, eax
sete al
movzx eax, al
mov esi, eax
jmp 0x40ce3a
call sym._print_current_winver
jmp 0x40ce3a
test byte [0x417300], 8
je 0x40cc3a
mov dword [esp + 0xc], str.Cancel_n
mov dword [esp + 8], 0x41b3b4
mov dword [esp + 4], 0x417300
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_6
jmp 0x40cc3a
movzx edi, di
mov dword [esp], 0x41b1e0
mov dword [esp + 4], edi
call sym._wine_dbg_sprintf.constprop.0_5
mov edx, eax
mov eax, dword [ebp - 0x2a4]
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.failed_to_restart_64_bit__s__err__ld_n
mov dword [esp + 0x14], eax
mov dword [esp + 8], 0x41b3b4
mov dword [esp + 4], 0x417300
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_6
jmp 0x40cd92
mov eax, 0x725c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x40cf10
mov eax, 0x745c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x40cf10
lea esi, [eax - 0x20]
cmp si, 0x5e
jbe 0x40d100
mov esi, eax
mov byte [ecx], 0x5c
add ecx, 5
shr si, 0xc
movzx esi, si
movzx ebx, byte [esi + str.0123456789abcdefwWinMain]
mov esi, eax
shr si, 8
and esi, 0xf
mov byte [ecx - 4], bl
movzx ebx, byte [esi + str.0123456789abcdefwWinMain]
mov esi, eax
and eax, 0xf
shr si, 4
movzx eax, byte [eax + str.0123456789abcdefwWinMain]
and esi, 0xf
mov byte [ecx - 3], bl
movzx ebx, byte [esi + str.0123456789abcdefwWinMain]
mov byte [ecx - 1], al
mov byte [ecx - 2], bl
jmp 0x40cf10
mov eax, 0x225c
add ecx, 2
mov word [ecx - 2], ax
jmp 0x40cf10
mov byte [ecx], 0x22
mov ebx, dword [ebp + 8]
test eax, eax
jle 0x40d123
mov esi, 0x2e2e
mov byte [ecx + 3], 0x2e
lea eax, [ecx + 4]
mov word [ecx + 1], si
mov byte [eax], 0
lea eax, [ebp - 0x204]
mov dword [esp], eax
call sym.___wine_dbg_strdup
mov edx, eax
jmp 0x40cfe5
mov byte [ecx], al
add ecx, 1
jmp 0x40cf10
mov eax, 0x224c
mov byte [ebp - 0x202], 0x22
lea ecx, [ebp - 0x202]
mov word [ebp - 0x204], ax
lea eax, [ecx + 1]
jmp 0x40d0e2
test byte [0x417300], 2
jne 0x40d1b7
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], 0x41b398
mov dword [esp + 8], 0x41b3b4
mov dword [esp + 4], 0x417300
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_6
jmp 0x40cc3a
lea ebx, [ebp - 0x204]
test byte [0x417300], 8
jne 0x40d1e0
mov eax, dword [ebp - 0x298]
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WaitForSingleObject]
mov eax, dword [ebp - 0x298]
push edx
push edx
mov dword [esp + 4], ebx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetExitCodeProcess]
mov eax, dword [ebp - 0x204]
push ecx
push ecx
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ExitProcess]
mov dword [esp + 0xc], str.initialization_failed__aborting_n
mov dword [esp + 8], 0x41b3b4
mov dword [esp + 4], 0x417300
mov dword [esp], 1
call sym._wine_dbg_log.constprop.0_6
jmp 0x40d135
mov eax, edi
shr eax, 0x10
je 0x40d26d
mov dword [esp + 4], 0xffffffff
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_IsBadStringPtrW]
mov edx, eax
push esi
push esi
test eax, eax
je 0x40d20c
jmp 0x40d2d0
add edx, 1
cmp word [edi + edx*2], 0
jne 0x40d209
mov word [ebp - 0x204], 0x224c
lea eax, [ebp - 0x202]
lea esi, [ebp - 0xe2]
lea ebx, [edx - 1]
cmp eax, esi
ja 0x40d2e6
test edx, edx
jle 0x40d2e6
movzx edx, word [edi]
add edi, 2
cmp dx, 0xd
je 0x40d2d7
ja 0x40d2ad
cmp dx, 9
je 0x40d366
cmp dx, 0xa
jne 0x40d313
mov word [eax], 0x6e5c
mov edx, ebx
add eax, 2
jmp 0x40d228
movzx edi, di
mov dword [esp], 0x41b1e0
mov dword [esp + 4], edi
call sym._wine_dbg_sprintf.constprop.0_5
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.restarting__s_n
mov dword [esp + 8], 0x41b3b4
mov dword [esp + 4], 0x417300
mov dword [esp], 3
call sym._wine_dbg_log.constprop.0_6
jmp 0x40d17a
cmp dx, 0x22
je 0x40d38a
cmp dx, 0x5c
jne 0x40d375
mov word [eax], 0x5c5c
mov edx, ebx
add eax, 2
jmp 0x40d228
mov eax, 0x41b1e6
jmp 0x40d280
mov word [eax], 0x725c
mov edx, ebx
add eax, 2
jmp 0x40d228
mov byte [eax], 0x22
lea edx, [eax + 1]
test ebx, ebx
jle 0x40d2fd
mov word [eax + 1], 0x2e2e
lea edx, [eax + 4]
mov byte [eax + 3], 0x2e
lea ebx, [ebp - 0x204]
mov byte [edx], 0
mov dword [esp], ebx
call sym.___wine_dbg_strdup
jmp 0x40d280
mov ecx, edx
mov byte [eax], 0x5c
add eax, 5
shr cx, 0xc
movzx ecx, cx
movzx ecx, byte [ecx + str.0123456789abcdefwWinMain]
mov byte [eax - 4], cl
mov ecx, edx
shr cx, 8
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefwWinMain]
mov byte [eax - 3], cl
mov ecx, edx
and edx, 0xf
shr cx, 4
movzx edx, byte [edx + str.0123456789abcdefwWinMain]
and ecx, 0xf
movzx ecx, byte [ecx + str.0123456789abcdefwWinMain]
mov byte [eax - 1], dl
mov edx, ebx
mov byte [eax - 2], cl
jmp 0x40d228
mov word [eax], 0x745c
mov edx, ebx
add eax, 2
jmp 0x40d228
lea ecx, [edx - 0x20]
cmp cx, 0x5e
ja 0x40d313
mov byte [eax], dl
add eax, 1
mov edx, ebx
jmp 0x40d228
mov word [eax], 0x225c
mov edx, ebx
add eax, 2
jmp 0x40d228