Function at 0x401df0
Capabilities:
Accept command line arguments
Create process on windows
Create process suspended
Create thread
Get number of processors
Query or enumerate registry value
Read .ini file
Resume thread
Terminate process

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x403668
mov eax, dword fs:[0]
push eax
sub esp, 0xca0
mov eax, dword [0x407018]
xor eax, esp
mov dword [esp + 0xc98], eax
push ebx
push esi
push edi
mov eax, dword [0x407018]
xor eax, esp
push eax
lea eax, [esp + 0xcb0]
mov dword fs:[0], eax
call sub.mfc90.dll_Ordinal_4993
push 0
push 0
push 0
push 0x401970
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetCommandLineW]
push eax
call dword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov edi, dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [esp + 0x14]
push ecx
push 0x20019
push 0
push str.SoftwareMicrosoftWindows_NTCurrentVersionWindows_ntdll
push 0x80000001
mov dword [esp + 0x30], eax
mov dword [esp + 0x2c], 0x104
call edi
mov ecx, dword [esp + 0x14]
mov ebx, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x258]
push eax
push 0
push 0
push str.ACC_AUDITION_PA
push ecx
call ebx
lea eax, [esp + 0x254]
xor ecx, ecx
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401eb5
sub eax, esi
test eax, eax
jle 0x401eed
mov dl, byte [esp + ecx + 0x254]
not dl
xor dl, cl
lea eax, [esp + 0x254]
mov byte [esp + ecx + 0x254], dl
inc ecx
lea esi, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x401ee0
sub eax, esi
cmp ecx, eax
jl 0x401ec2
lea ecx, [esp + 0x254]
call fcn.00401ce0
push 0x104
lea eax, [esp + 0xa98]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
lea ecx, [esp + 0x780]
push 0
push ecx
call sub.MSVCR90.dll_memset
xor eax, eax
add esp, 0xc
push 0x104
push eax
lea edx, [esp + 0x364]
push edx
mov dword [esp + 0x134], eax
mov dword [esp + 0x138], eax
mov word [esp + 0x13c], ax
mov dword [esp + 0x140], eax
mov dword [esp + 0x144], eax
mov word [esp + 0x148], ax
call sub.MSVCR90.dll_memset
add esp, 0xc
push 0x104
lea eax, [esp + 0x678]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
push 0x20019
push 0
push str.SoftwareVTCLauncher
push 0x80000001
mov dword [esp + 0x28], 0x104
call edi
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x360]
push eax
push 0
push 0
push str.path
push ecx
call ebx
mov ebx, dword [sym.imp.MSVCR90.dll_sprintf]
lea edx, [esp + 0x35c]
push edx
lea eax, [esp + 0xa98]
push str._sAudition.exe
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x35c]
push ecx
lea edx, [esp + 0x780]
push str._sVTCGame.exe
push edx
call ebx
add esp, 0xc
lea eax, [esp + 0x35c]
push eax
lea ecx, [esp + 0x678]
push str._s_version.xml
push ecx
call ebx
add esp, 0xc
push 1
push 0x40
push 1
lea edx, [esp + 0x680]
push edx
lea ecx, [esp + 0x8c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_ifstream_char__struct_std::char_traits_char__::constructor_char_const___int__int_]
push 0xa
push 0xc8
lea ecx, [esp + 0x84]
mov dword [esp + 0xcc0], 0
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_int__int_]
push 0xa
push 0x64
lea ecx, [esp + 0x84]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_istream_char__struct_std::char_traits_char______thiscall_std::basic_istream_char__struct_std::char_traits_char__::ignore_int__int_]
lea ecx, [esp + 0x10c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_void_]
lea eax, [esp + 0x10c]
push eax
lea ecx, [esp + 0x80]
push ecx
mov byte [esp + 0xcc0], 1
call dword [sym.imp.MSVCP90.dll_class_std::basic_istream_char__struct_std::char_traits_char______cdecl_std::operator___char__struct_std::char_traits_char___class_std::allocator_char___class_std::basic_istream_char__struct_std::char_traits_char_____class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char____]
mov eax, dword [esp + 0x118]
add esp, 8
cmp dword [esp + 0x124], 0x10
jae 0x4020a4
lea eax, [esp + 0x110]
add eax, 9
push eax
lea edx, [esp + 0x138]
push str._.4s
push edx
call ebx
add esp, 0xc
lea eax, [esp + 0x14]
push eax
push 0xa
lea ecx, [esp + 0x130]
push ecx
push str._version_LoadVersion.php_g_ver1
call fcn.00401c30
mov edx, dword [esp + 0x24]
movzx eax, al
add esp, 0x10
mov byte [esp + edx + 0x128], 0
test eax, eax
je 0x40241c
lea ecx, [esp + 0x128]
lea eax, [esp + 0x134]
jmp 0x402100
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x402120
test dl, dl
je 0x40211c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x402120
add eax, 2
add ecx, 2
test dl, dl
jne 0x402100
xor eax, eax
jmp 0x402125
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40215a
push 0
push 0
push str.Da_co_phien_ban_cap_nhat_Audition_moi__nVui_long_CAI_DAT_UPDATE_AUDITION_MOI
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 5
push 0
push 0
push str.https:__au.vtc.vn_taigame
push str.open
push 0
call dword [sym.imp.SHELL32.dll_ShellExecuteA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0x44
lea eax, [esp + 0x38]
push 0
push eax
call sub.MSVCR90.dll_memset
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
push 0x20019
push 0
push str.SoftwareVTCLauncher
push 0x80000001
mov dword [esp + 0x48], 0x44
mov dword [esp + 0x28], 0x104
call edi
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x14]
push edx
lea eax, [esp + 0x468]
push eax
push 0
push 0
push str.Path
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
test eax, eax
je 0x402152
cmp dword [ecx + 8], 0
je 0x402152
cmp dword [ecx + 0xc], 0
je 0x402152
push 3
lea edx, [esp + 0x154]
push eax
lea eax, [esp + 0x154]
mov dword [esp + 0x154], edx
call fcn.00402660
sub esp, 0x84
mov edi, esp
lea eax, [esp + 0x5f0]
push 0x40498c
mov ecx, 0x21
lea esi, [esp + 0x1d4]
push eax
rep movsd dword es:[edi], dword [esi]
call ebx
mov eax, dword [esp + 0x1d8]
lea ecx, [esp + 0x1dc]
add esp, 0x8c
cmp eax, ecx
je 0x40222f
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 8]
push 3
lea edx, [esp + 0x154]
push ecx
lea eax, [esp + 0x154]
mov dword [esp + 0x154], edx
call fcn.00402660
sub esp, 0x84
mov edi, esp
lea edx, [esp + 0xa10]
push 0x40498c
mov ecx, 0x21
lea esi, [esp + 0x1d4]
push edx
rep movsd dword es:[edi], dword [esi]
call ebx
mov eax, dword [esp + 0x1d8]
lea ecx, [esp + 0x1dc]
add esp, 0x8c
cmp eax, ecx
je 0x40229a
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0xc]
push 3
lea edx, [esp + 0x154]
push ecx
lea eax, [esp + 0x154]
mov dword [esp + 0x154], edx
call fcn.00402660
sub esp, 0x84
mov edi, esp
lea edx, [esp + 0x908]
push 0x40498c
mov ecx, 0x21
lea esi, [esp + 0x1d4]
push edx
rep movsd dword es:[edi], dword [esi]
call ebx
mov eax, dword [esp + 0x1d8]
lea ecx, [esp + 0x1dc]
add esp, 0x8c
cmp eax, ecx
je 0x402305
push eax
call dword [sym.imp.MSVCR90.dll_free]
add esp, 4
mov esi, str._T3ENTER
lea eax, [esp + 0x56c]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x402331
test cl, cl
je 0x40232d
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x402331
add eax, 2
add esi, 2
test cl, cl
jne 0x402311
xor eax, eax
jmp 0x402336
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x402152
push str..config.ini
push 0xa
lea edx, [esp + 0x148]
push edx
push 0x4049ac
push str.WINMODE
push str.CONFIG
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
call dword [sym.imp.KERNEL32.dll_FreeConsole]
lea eax, [esp + 0x464]
push eax
lea ecx, [esp + 0x150]
push str._sconfig.ini
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x884]
push edx
lea eax, [esp + 0x990]
push eax
lea ecx, [esp + 0x574]
push ecx
lea edx, [esp + 0x470]
push edx
lea eax, [esp + 0xbac]
push str._sAudition.exe__s__s__s
push eax
call ebx
add esp, 0x18
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x46c]
push eax
push 0
push 4
push 0
push 0
push 0
lea ecx, [esp + 0xbbc]
push ecx
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
lea edx, [esp + 0x14c]
push edx
lea eax, [esp + 0x144]
push eax
push str.WINMODE
push str.CONFIG
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov esi, dword [esp + 0x24]
call fcn.00401120
mov ecx, dword [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]
push 0
push 0
push str.Cant_connect_to_SERVER__please_try_again
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
push 0
call dword [sym.imp.KERNEL32.dll_ExitProcess]