Function at 0x404210
Capabilities:
Check mutex on windows
Check os version
Create thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4726da
mov eax, dword fs:[0]
push eax
push ecx
mov eax, 0x2f54
call sub.ntdll.dll__chkstk
mov eax, dword [0x4f8028]
xor eax, esp
mov dword [esp + 0x2f50], eax
push ebx
push esi
push edi
mov eax, dword [0x4f8028]
xor eax, esp
push eax
lea eax, [esp + 0x2f68]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x10]
mov dword [esp + 0x18], esi
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
xor ebx, ebx
mov dword [esp + 0x2f70], ebx
test byte [0x504e60], 1
jne 0x404290
or dword [0x504e60], 1
call fcn.0042a470
push 0x473340
call fcn.0046d920
add esp, 4
call sub.UpgradeShow.dll_PAGetGlobalDataObject
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x54]
call eax
test al, al
jne 0x4042f4
test byte [0x504e60], 1
jne 0x4042c4
or dword [0x504e60], 1
call fcn.0042a470
push 0x473340
call fcn.0046d920
add esp, 4
mov edx, dword [0x50350c]
mov eax, dword [edx]
push str.1697
mov ecx, 0x50350c
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x10]
push ebx
push ebx
push ecx
call sub.MFC80U.DLL_Ordinal_1118
jmp 0x404b5d
test byte [0x503544], 1
mov edi, vtable.CLogFile.0
jne 0x404326
or dword [0x503544], 1
push 0x4732e0
mov dword [0x503520], edi
mov dword [0x503524], 0xffffffff
call fcn.0046d920
add esp, 4
mov edx, dword [0x503520]
mov eax, dword [edx]
mov ecx, 0x503520
call eax
test byte [0x503544], 1
jne 0x404362
or dword [0x503544], 1
push 0x4732e0
mov dword [0x503520], edi
mov dword [0x503524], 0xffffffff
call fcn.0046d920
add esp, 4
mov ecx, dword [0x503520]
mov edx, dword [ecx + 8]
push str._Program_Start_
push 0x503520
call edx
add esp, 8
push ebx
call dword [sym.imp.ole32.dll_CoInitialize]
cmp eax, ebx
je 0x4043ae
call fcn.004205a0
mov ebx, eax
mov edi, dword [ebx]
push 0x95
add edi, 8
call fcn.00403dd0
add esp, 4
push eax
mov eax, dword [edi]
push str._s:_CoInitialize___to_fail.
push ebx
call eax
add esp, 0xc
xor ebx, ebx
lea ecx, [esp + 0x1c]
push ecx
mov dword [esp + 0x20], 8
mov dword [esp + 0x24], 0xff
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
mov ecx, esi
call sub.MFC80U.DLL_Ordinal_3824
push ebx
call sub.MFC80U.DLL_Ordinal_1049
add esp, 4
call sub.MFC80U.DLL_Ordinal_1096
lea ecx, [esp + 0x24]
call sub.MFC80U.DLL_Ordinal_334
lea edx, [esp + 0x24]
push edx
mov ecx, esi
mov byte [esp + 0x2f74], 1
call sub.MFC80U.DLL_Ordinal_5113
push ebx
push str.runfromPA
lea ecx, [esp + 0x40]
mov dword [esi + 0xa8], ebx
call dword [sym.imp.MFC80U.DLL_Ordinal_2261]
test eax, eax
jl 0x40441f
mov dword [esi + 0xa8], 1
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jb 0x40447d
test byte [0x504e60], 1
jne 0x40444e
or dword [0x504e60], 1
call fcn.0042a470
push 0x473340
call fcn.0046d920
add esp, 4
mov eax, dword [0x50350c]
mov edx, dword [eax]
push str.3079
mov ecx, 0x50350c
call edx
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov eax, dword [esp + 0x10]
push ebx
push ebx
push eax
call sub.MFC80U.DLL_Ordinal_1118
jmp 0x404b4c
call fcn.00412d40
cmp eax, 0x42
je 0x4044d7
cmp eax, 5
je 0x4044d7
cmp eax, 6
je 0x4044d7
cmp eax, 7
je 0x4044d7
cmp eax, 1
je 0x4044d7
cmp eax, 3
je 0x4044d7
call fcn.00412210
test eax, eax
je 0x4044d7
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3024
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x10]
push ebx
push ebx
push ecx
call sub.MFC80U.DLL_Ordinal_1118
jmp 0x404b4c
push str.DYNAMIC_DISK_CONVERTER_POWERFUL_TOOL
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexW]
mov edi, eax
cmp edi, ebx
je 0x4044fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
jne 0x4044fd
or eax, 0xffffffff
jmp 0x4044ff
mov eax, edi
cmp eax, 0xffffffff
mov dword [esi + 0xa4], eax
jne 0x404573
call fcn.004206b0
push str.3080
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
call fcn.00412ed0
cmp eax, 0x42
jne 0x40446c
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3078
call eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push ebx
push ecx
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
jmp 0x404b4c
call fcn.004123b0
test eax, eax
je 0x404594
push 0x43
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x404594
call fcn.004206b0
push str.3069
jmp 0x404514
call fcn.00412080
test eax, eax
jne 0x4045ac
call fcn.004206b0
push str.3081
jmp 0x404514
call fcn.004123b0
test eax, eax
je 0x40467c
cmp dword [esi + 0xa8], ebx
jne 0x40467c
call fcn.00420630
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
call eax
test eax, eax
jne 0x40467c
call fcn.004205a0
mov edi, eax
mov esi, dword [edi]
push pe_nt_image_headers32
add esi, 8
call fcn.00403dd0
mov ecx, dword [esi]
add esp, 4
push eax
push str._s:_Load_drive_failed.
push edi
call ecx
add esp, 0xc
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3021
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
call fcn.00412ed0
cmp eax, 0x42
jne 0x404669
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3078
call eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 0
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
jmp 0x404b4c
mov eax, dword [esp + 0x10]
push 0
push 0
push eax
call sub.MFC80U.DLL_Ordinal_1118
jmp 0x404b4c
call fcn.00412410
test eax, eax
jne 0x40473f
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3020
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3078
call eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_283]
mov byte [esp + 0x2f70], 2
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
push 4
push ecx
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxW]
cmp eax, 6
jne 0x404728
call fcn.004122b0
cmp eax, ebx
jne 0x404564
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3019
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x10]
push ebx
push ebx
push ecx
call sub.MFC80U.DLL_Ordinal_1118
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
jmp 0x404b4c
call fcn.00403fd0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2f70], 1
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
call fcn.00412750
lea edx, [esp + 0x64]
push edx
call fcn.00411470
push ebx
push 0x8e
lea ecx, [esp + 0x6c]
mov byte [esp + 0x2f78], 3
call sub.MFC80U.DLL_Ordinal_1542
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3078
call eax
push eax
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x10]
push ecx
lea ecx, [esp + 0x68]
call sub.MFC80U.DLL_Ordinal_6063
push 5
lea ecx, [esp + 0x68]
call sub.MFC80U.DLL_Ordinal_6086
mov edx, dword [esp + 0x84]
push edx
call dword [sym.imp.USER32.dll_UpdateWindow]
push ebx
push ebx
push ebx
push 0x403ea0
push ebx
push ebx
mov dword [0x4fc2b4], ebx
call dword [sym.imp.MSVCR80.dll__beginthreadex]
mov edi, dword [sym.imp.USER32.dll_PeekMessageW]
mov ebx, dword [sym.imp.USER32.dll_TranslateMessage]
mov esi, dword [sym.imp.USER32.dll_DispatchMessageW]
add esp, 0x18
push 1
push 0
push 0
push 0
lea eax, [esp + 0x58]
push eax
call edi
test eax, eax
je 0x4047f5
lea ecx, [esp + 0x48]
push ecx
call ebx
lea edx, [esp + 0x48]
push edx
call esi
cmp dword [0x4fc2b4], 0
je 0x4047d4
lea ecx, [esp + 0x64]
call sub.MFC80U.DLL_Ordinal_1955
call fcn.00412710
test eax, eax
je 0x40485f
lea ecx, [esp + 0x14]
call dword [sym.imp.MFC80U.DLL_Ordinal_293]
mov byte [esp + 0x2f70], 4
call fcn.004206b0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx]
push str.3031
call eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC80U.DLL_Ordinal_776]
mov ecx, dword [esp + 0x14]
push 0
push 0
push ecx
call sub.MFC80U.DLL_Ordinal_1118
lea ecx, [esp + 0x14]
mov byte [esp + 0x2f70], 3
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
lea edx, [esp + 0xe4]
push edx
call fcn.00405320
lea eax, [esp + 0xa44]
push eax
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2f74], 5
call fcn.00413550
lea ecx, [esp + 0x138c]
push ecx
lea ecx, [esp + 0xe8]
mov byte [esp + 0x2f74], 6
call fcn.0040d4d0
lea edx, [esp + 0x28e4]
push edx
lea ebx, [esp + 0xe8]
mov byte [esp + 0x2f74], 7
call fcn.00405ab0
lea eax, [esp + 0x183c]
push eax
mov ecx, ebx
mov byte [esp + 0x2f74], 8
call fcn.00402a80
lea ecx, [esp + 0x2284]
push ecx
mov ecx, ebx
mov byte [esp + 0x2f74], 9
call fcn.0040f060
lea edx, [esp + 0xa44]
push edx
lea ecx, [esp + 0x15c]
mov byte [esp + 0x2f74], 0xa
call sub.MFC80U.DLL_Ordinal_998
lea eax, [esp + 0x2284]
push eax
lea ecx, [esp + 0x15c]
mov dword [esp + 0xadc], 0x65
call sub.MFC80U.DLL_Ordinal_998
lea ecx, [esp + 0x138c]
push ecx
lea ecx, [esp + 0x15c]
mov dword [esp + 0x231c], 0x95
call sub.MFC80U.DLL_Ordinal_998
lea edx, [esp + 0x28e4]
push edx
lea ecx, [esp + 0x15c]
mov dword [esp + 0x1424], 0x67
call sub.MFC80U.DLL_Ordinal_998
lea eax, [esp + 0x183c]
push eax
lea ecx, [esp + 0x15c]
mov dword [esp + 0x297c], 0x68
call sub.MFC80U.DLL_Ordinal_998
lea ecx, [esp + 0x714]
push ecx
mov edi, ebx
mov dword [esp + 0x18d4], 0x8d
call fcn.0040fa20
lea edx, [esp + 0xf54]
push edx
mov byte [esp + 0x2f74], 0xb
call fcn.0040af80
lea eax, [esp + 0x474]
push eax
mov ecx, ebx
mov byte [esp + 0x2f74], 0xc
call fcn.004072e0
lea ecx, [esp + 0x1ce4]
mov bl, 0xd
push ecx
mov byte [esp + 0x2f74], bl
mov ecx, edi
call fcn.00409270
lea edx, [esp + 0x714]
push edx
lea ecx, [esp + 0x15c]
mov byte [esp + 0x2f74], 0xe
call sub.MFC80U.DLL_Ordinal_998
lea eax, [esp + 0xf54]
push eax
lea ecx, [esp + 0x15c]
mov dword [esp + 0x7ac], 0x96
call sub.MFC80U.DLL_Ordinal_998
lea ecx, [esp + 0x474]
push ecx
lea ecx, [esp + 0x15c]
mov dword [esp + 0xfec], 0x97
call sub.MFC80U.DLL_Ordinal_998
lea edx, [esp + 0x1ce4]
push edx
lea ecx, [esp + 0x15c]
mov dword [esp + 0x50c], 0x98
call sub.MFC80U.DLL_Ordinal_998
mov ecx, dword [esp + 0x18]
mov eax, edi
mov dword [ecx + 0x20], eax
mov ecx, edi
mov dword [esp + 0x1d78], 0x99
call sub.MFC80U.DLL_Ordinal_2011
lea ecx, [esp + 0x1ce4]
mov byte [esp + 0x2f70], bl
call fcn.00409450
lea ecx, [esp + 0x474]
mov byte [esp + 0x2f70], 0xc
call fcn.004073d0
lea ecx, [esp + 0xf54]
mov byte [esp + 0x2f70], 0xb
call fcn.0040b070
lea ecx, [esp + 0x714]
mov byte [esp + 0x2f70], 0xa
call fcn.0040fb00
lea ecx, [esp + 0x2284]
mov byte [esp + 0x2f70], 9
call fcn.0040f180
lea ecx, [esp + 0x183c]
mov byte [esp + 0x2f70], 8
call fcn.00402b90
lea ecx, [esp + 0x28e4]
mov byte [esp + 0x2f70], 7
call fcn.00405c30
lea ecx, [esp + 0x138c]
mov byte [esp + 0x2f70], 6
call fcn.0040d600
lea ecx, [esp + 0xa44]
mov byte [esp + 0x2f70], 5
call fcn.00413650
mov edx, edi
push edx
mov byte [esp + 0x2f74], 3
call fcn.00404b90
lea ecx, [esp + 0x64]
mov byte [esp + 0x2f70], 1
call fcn.00411520
lea ecx, [esp + 0x24]
mov byte [esp + 0x2f70], 0
call sub.MFC80U.DLL_Ordinal_593
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC80U.DLL_Ordinal_577]
xor eax, eax
mov ecx, dword [esp + 0x2f68]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2f50]
xor ecx, esp
call fcn.0046d6fd
mov esp, ebp
pop ebp
ret