Function at 0x401570
Capabilities:
Execute command

Disassembly:
sub esp, 0x190
mov eax, dword [0x6397d4]
xor eax, esp
mov dword [esp + 0x18c], eax
push ebp
mov ebp, dword [esp + 0x198]
push esi
call fcn.004010e0
test eax, eax
je 0x4015e6
mov eax, dword [0x63982c]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
push 4
push str.error_
push str.Virtual_machine_environment
push eax
call esi
cmp eax, 7
push 0
push str.error_
jne 0x4015d1
mov ecx, dword [0x63982c]
push 0x562794
push ecx
call esi
xor eax, eax
jmp 0x40193b
mov edx, dword [0x63982c]
push str.Please_run_this_program_on_a_physical_machine_TQ
push edx
call esi
xor eax, eax
jmp 0x40193b
mov esi, dword [sym.imp.MSVCR80.dll_fopen]
push ebx
push edi
push 0x56275c
push str._USELARGEPAKFILE
call esi
mov edi, dword [sym.imp.MSVCR80.dll_fclose]
xor ebx, ebx
add esp, 8
cmp eax, ebx
je 0x401619
push eax
mov dword [0x63a698], 1
call edi
add esp, 4
test byte [0x639d84], 1
jne 0x401638
or dword [0x639d84], 1
mov ecx, 0x6396fc
call fcn.00482880
mov dword [0x639d80], eax
cmp dword [0x639d80], ebx
jne 0x40168f
push 0xff
lea eax, [esp + 0xa1]
push ebx
push eax
mov byte [esp + 0xa8], bl
call sub.MSVCR80.dll_memset
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
lea ecx, [esp + 0xa0]
push str.taskkill__F__PID__d
push ecx
call dword [sym.imp.MSVCR80.dll_sprintf]
lea edx, [esp + 0xa8]
push edx
call dword [sym.imp.MSVCR80.dll_system]
add esp, 0x10
xor eax, eax
jmp 0x401939
mov ecx, 0x650a08
call fcn.0050c760
call dword [sym.imp.KERNEL32.dll_GetACP]
cmp eax, 0x3a8
jne 0x4016c6
push 0x80
push 0x66a65e
call fcn.004f8f70
add esp, 4
push eax
push 0x66a65e
call fcn.005099f0
add esp, 0xc
mov ecx, 0x64fdc0
call fcn.00500d80
push 0x562730
lea ecx, [esp + 0x14]
mov dword [0x639d7c], ebx
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push 0x56275c
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x34]
push ecx
mov ecx, 0x6396fc
call fcn.0054dbf0
mov ecx, eax
call dword [sym.imp.MSVCP80.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
call esi
add esp, 8
lea ecx, [esp + 0x2c]
mov esi, eax
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x10]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp esi, ebx
je 0x401736
push esi
mov dword [0x639d7c], 1
call edi
add esp, 4
push 0x562724
lea ecx, [esp + 0x30]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
push 0x56271c
lea ecx, [esp + 0x14]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x84]
push eax
mov ecx, 0x6396fc
call fcn.0054dbf0
mov ecx, eax
call dword [sym.imp.MSVCP80.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x6c]
push edx
mov ecx, 0x6396fc
call fcn.0054dbf0
mov ecx, eax
call dword [sym.imp.MSVCP80.dll_public:_char_const____thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::c_str_void_const]
push eax
push str._s_s
push str.MOSIANG2021
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [esp + 0x64]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x80]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x10]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
lea ecx, [esp + 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
cmp dword [0x639d7c], ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
je 0x401813
call esi
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
push eax
push str.MOSIANG2021
push 0x66a65e
push str._s__s__JPID__d_
push 0x639840
call edi
add esp, 0x14
call esi
push eax
push str.MOSIANG2021
push 0x66a65e
push str._s__s__JPID__d_
jmp 0x401847
call esi
mov edi, dword [sym.imp.MSVCR80.dll_sprintf]
push eax
push str.MOSIANG2021
push 0x66a65e
push str._s__s__PID__d_
push 0x639840
call edi
add esp, 0x14
call esi
push eax
push str.MOSIANG2021
push 0x66a65e
push str._s__s__PID__d_
push 0x639a58
call edi
add esp, 0x14
push ebp
call fcn.00401500
add esp, 4
mov ecx, 0x650a08
call fcn.0050bf90
push str.._Resource_QuestScript_QuestString.bin
mov ecx, 0x64e340
call fcn.004da050
push str.._Resource_QuestScript_QuestScript.bin
mov ecx, 0x64e340
call fcn.004dac40
push str.._Resource_QuestScript_NewbieGuide.bin
mov ecx, 0x64e340
call fcn.004d8e50
push str.._Resource_QuestScript_QuestNpcList.bin
mov ecx, 0x64e340
call fcn.004da210
mov ecx, 0x648290
call fcn.00425d20
mov eax, dword [esp + 0x1b0]
push eax
push ebp
call fcn.00401000
add esp, 8
test eax, eax
jne 0x4018d9
mov eax, dword [0x639d58]
cmp eax, ebx
je 0x4018d5
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x639d58], ebx
xor eax, eax
jmp 0x401939
mov esi, dword [sym.imp.USER32.dll_PeekMessageA]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebp, dword [sym.imp.USER32.dll_DispatchMessageA]
jmp 0x4018f0
push 1
push ebx
push ebx
push ebx
lea ecx, [esp + 0x58]
push ecx
call esi
test eax, eax
je 0x401910
lea edx, [esp + 0x48]
push edx
call edi
lea eax, [esp + 0x48]
push eax
call ebp
jmp 0x4018f0
mov ecx, 0x58d05c
call fcn.00402410
cmp eax, 0xffffffff
jne 0x4018f0
mov eax, dword [0x639d58]
cmp eax, ebx
je 0x401935
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x639d58], ebx
mov eax, dword [esp + 0x50]
pop edi
pop ebx
mov ecx, dword [esp + 0x194]
pop esi
pop ebp
xor ecx, esp
call fcn.0055160d
add esp, 0x190
ret 0x10