Function at 0x404580
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4263b0
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x43e01c]
xor eax, esp
mov dword [esp + 0x1c8], eax
push ebx
push esi
push edi
mov eax, dword [0x43e01c]
xor eax, esp
push eax
lea eax, [esp + 0x1e0]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x18]
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x30]
mov edi, ecx
mov ecx, dword [ebp + 0x1c]
mov dword [esp + 0x1a0], ecx
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x19c], eax
mov eax, dword [ebp + 0x24]
mov dword [esp + 0xa4], ecx
mov ecx, dword [ebp + 0x38]
mov dword [esp + 0x1a4], edx
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x1a8], eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x44]
mov dword [esp + 0xa8], edx
mov edx, dword [ebp + 0x3c]
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 0x40]
mov dword [esp + 0x70], ecx
xor ebx, ebx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1c], edi
mov dword [esp + 0xac], esi
mov dword [esp + 0x68], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], ebx
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMJsonReader::constructor_void_]
lea ecx, [esp + 0x14]
mov dword [esp + 0x1e8], ebx
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMJsonValue::constructor_void_]
push esi
lea ecx, [esp + 0xe4]
mov byte [esp + 0x1ec], 1
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea edx, [esp + 0xe0]
push edx
lea eax, [esp + 0x14c]
push eax
mov byte [esp + 0x1f0], 2
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::GMStringWToGMString_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push eax
lea ecx, [esp + 0x1c8]
push ecx
mov byte [esp + 0x1f8], 3
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_GameMgr::GMStringConvert::GMStringToGMStringA_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 0x10
lea ecx, [esp + 0x148]
mov byte [esp + 0x1e8], 5
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0xe0]
mov byte [esp + 0x1e8], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov esi, dword [ebp + 0x10]
cmp esi, 0xa
je 0x4046f4
push 1
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x1c4]
push eax
lea ecx, [esp + 0x68]
call dword [sym.imp.K8Common.dll_public_virtual:_bool___thiscall_GameMgr::GMJsonReader::Parse_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___class_GameMgr::GMJsonValue___bool_]
test al, al
je 0x405223
lea ecx, [esp + 0x14]
call dword [sym.imp.K8Common.dll_public_virtual:_bool___thiscall_GameMgr::GMJsonValue::IsObject_void_const]
test al, al
je 0x405223
cmp esi, 0xa
je 0x40474e
cmp dword [edi + 0x56c], 0
je 0x40474e
mov esi, dword [sym.imp.K8Common.dll_public:_class_GameMgr::GMJsonValueRetRef___thiscall_GameMgr::GMJsonValue::operator___char_const__]
push str.from
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 7
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x20]
mov ebx, 1
mov dword [esp + 0x20], ebx
call eax
test al, al
je 0x404754
mov byte [esp + 0x12], bl
jmp 0x404759
mov esi, dword [sym.imp.K8Common.dll_public:_class_GameMgr::GMJsonValueRetRef___thiscall_GameMgr::GMJsonValue::operator___char_const__]
mov byte [esp + 0x12], 0
mov dword [esp + 0x1e8], 6
test bl, 1
mov ebx, dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValueRetRef::destructor_void_]
je 0x404775
lea ecx, [esp + 0x40]
call ebx
cmp byte [esp + 0x12], 0
je 0x404843
push str.from
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 8
mov edx, dword [eax]
mov edx, dword [edx + 0x10]
lea ecx, [esp + 0x180]
push ecx
mov ecx, eax
call edx
lea ecx, [esp + 0x40]
mov byte [esp + 0x1e8], 0xa
call ebx
mov eax, dword [esp + 0x198]
cmp eax, 0x10
mov esi, dword [esp + 0x184]
jae 0x4047d1
lea esi, [esp + 0x184]
mov edi, str.recommend
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4047e5
push 0x41
jmp 0x40480a
cmp eax, 0x10
mov esi, dword [esp + 0x184]
jae 0x4047f8
lea esi, [esp + 0x184]
mov edi, str.relevant
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x404826
push 0x40
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x56c]
mov ecx, dword [eax + 0x310]
push ecx
mov ecx, dword [eax + 0x390]
call fcn.0041b690
lea ecx, [esp + 0x180]
mov byte [esp + 0x1e8], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
mov esi, dword [sym.imp.K8Common.dll_public:_class_GameMgr::GMJsonValueRetRef___thiscall_GameMgr::GMJsonValue::operator___char_const__]
jmp 0x404863
cmp dword [ebp + 0x10], 0xa
jne 0x404863
mov eax, dword [edi + 0x56c]
mov ecx, dword [eax + 0x310]
push 0x42
push ecx
mov ecx, dword [eax + 0x390]
call fcn.0041b690
push 0x428214
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
cmp dword [ebp + 0x10], 1
mov byte [esp + 0x1e8], 0xb
jne 0x404d30
push str.gtid
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 0xc
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x40]
mov edi, eax
mov byte [esp + 0x1e8], 0xb
call ebx
push 0x428654
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 0xd
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x40]
mov dword [esp + 0x20], eax
mov byte [esp + 0x1e8], 0xb
call ebx
push str.newtab
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 0xe
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ecx, [esp + 0x40]
mov byte [esp + 0x13], al
mov byte [esp + 0x1e8], 0xb
call ebx
push 0x428660
lea ecx, [esp + 0x18]
call dword [sym.imp.K8Common.dll_public_virtual:_bool___thiscall_GameMgr::GMJsonValue::IsMember_char_const__const]
test al, al
je 0x4049b9
push 0x428660
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x1c]
call esi
mov byte [esp + 0x1e8], 0xf
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 8]
call eax
lea ecx, [esp + 0x40]
mov esi, eax
mov byte [esp + 0x1e8], 0xb
call ebx
mov eax, 0x51eb851f
mul esi
shr edx, 5
cmp edx, 3
setne al
test al, al
mov byte [esp + 0x12], al
jne 0x404d30
cmp byte [esp + 0x13], 0
mov esi, dword [esp + 0x1a4]
jne 0x4049e2
push esi
call fcn.0040fe80
add esp, 4
test eax, eax
jne 0x4049e2
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov eax, dword [edx + 0x56c]
push ecx
push edi
push esi
push eax
call fcn.0040e4d0
jmp 0x40520e
cmp dword [esp + 0x1a4], 0xc350
jb 0x404d30
cmp dword [esp + 0x1a4], 0x11170
jae 0x404d30
mov byte [esp + 0x12], 0
jmp 0x404982
push esi
call fcn.0040fe80
add esp, 4
test eax, eax
je 0x4049fd
push esi
call fcn.0040ff50
add esp, 4
jmp 0x404d0d
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x56c]
call fcn.0040da80
test al, al
je 0x404a1a
mov byte [esp + 0x12], 1
jmp 0x404d0d
lea ecx, [esp + 0x24]
call fcn.00411870
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x10
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [esp + 0x178], 0
je 0x404d0d
push esi
lea esi, [esp + 0x184]
call fcn.0040e1b0
mov bl, 0x11
mov byte [esp + 0x1e8], bl
cmp dword [esp + 0x194], 0
je 0x404ad5
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._config
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov edx, esi
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMFileName::GetQuotedFilePath_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x12
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._id
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov ecx, dword [esp + 0x1a4]
mov esi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringUtils::ConvertUInt32ToString_unsigned_int_]
push ecx
lea edx, [esp + 0x28]
push edx
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x13
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._gtid
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea eax, [esp + 0x24]
push edi
push eax
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x14
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._tid
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea ecx, [esp + 0x24]
push edi
push ecx
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x15
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._embedded
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str.false
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._name
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push 0x428348
lea ecx, [esp + 0x44]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea edx, [esp + 0x40]
mov byte [esp + 0x1e8], 0x16
push edx
lea eax, [esp + 0x28]
push eax
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMFileName::GetQuotedFilePath_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x17
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], 0x16
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x40]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._starttype
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea ecx, [esp + 0x24]
push 0x20
push ecx
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x18
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x180]
mov byte [esp + 0x1e8], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx + 0x56c]
cmp byte [ecx + 0x2dd], 0
je 0x404d25
call fcn.004086e0
cmp byte [esp + 0x12], 0
je 0x405187
lea ecx, [esp + 0x24]
call fcn.004115d0
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x19
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], 0xb
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
cmp dword [esp + 0x178], 0
je 0x40520e
lea ecx, [esp + 0x40]
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMBase64::constructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x1a
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._action
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov eax, dword [ebp + 0x10]
mov esi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringUtils::ConvertInt32ToString_int_]
push eax
lea ecx, [esp + 0x28]
push ecx
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x1b
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], 0x1a
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._target
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
cmp word [esp + 0x19c], 3
jne 0x404e5b
mov edx, dword [esp + 0x1a4]
push edx
lea eax, [esp + 0x28]
push eax
call esi
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x1c
call dword [0x427be8]
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], 0x1a
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov edi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_GameMgr::GMStringConvert::GMStringToGMStringA_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov esi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::GMStringWToGMString_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
jmp 0x404f4e
mov ecx, dword [esp + 0x1a4]
push ecx
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea edx, [esp + 0x24]
push edx
lea eax, [esp + 0x8c]
mov byte [esp + 0x1ec], 0x1d
mov esi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::GMStringWToGMString_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push eax
call esi
push eax
lea ecx, [esp + 0x1a8]
mov byte [esp + 0x1f4], 0x1e
mov edi, dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char_____cdecl_GameMgr::GMStringConvert::GMStringToGMStringA_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
push ecx
call edi
add esp, 0x10
lea ecx, [esp + 0x88]
mov byte [esp + 0x1e8], 0x20
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov bl, 0x21
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esp + 0x1b0]
test eax, eax
je 0x404f39
cmp dword [esp + 0x1b4], 0x10
mov ecx, dword [esp + 0x1a0]
jae 0x404ef1
lea ecx, [esp + 0x1a0]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [sym.imp.K8Common.dll_public:_char____thiscall_GameMgr::GMBase64::Encrypt_char_const___int_]
push eax
lea edx, [esp + 0xc8]
push edx
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::CharToGMString_char_const__]
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x22
call dword [0x427be8]
lea ecx, [esp + 0xc4]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x19c]
mov byte [esp + 0x1e8], 0x1a
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._extend
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov eax, dword [esp + 0xac]
push eax
lea ecx, [esp + 0x28]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0xc8]
push edx
mov byte [esp + 0x1f0], 0x23
call esi
push eax
lea eax, [esp + 0x18c]
push eax
mov byte [esp + 0x1f8], 0x24
call edi
add esp, 0x10
lea ecx, [esp + 0xc4]
mov byte [esp + 0x1e8], 0x26
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov bl, 0x27
lea ecx, [esp + 0x24]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esp + 0x194]
test eax, eax
je 0x405044
cmp dword [esp + 0x198], 0x10
mov ecx, dword [esp + 0x184]
jae 0x404ffc
lea ecx, [esp + 0x184]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [sym.imp.K8Common.dll_public:_char____thiscall_GameMgr::GMBase64::Encrypt_char_const___int_]
push eax
lea ecx, [esp + 0x8c]
push ecx
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::CharToGMString_char_const__]
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x28
call dword [0x427be8]
lea ecx, [esp + 0x88]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push 0x428348
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
push str._referpage
lea ecx, [esp + 0x168]
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
mov edx, dword [esp + 0x6c]
push edx
lea ecx, [esp + 0x68]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov byte [esp + 0x1f0], 0x29
call esi
push eax
lea edx, [esp + 0x94]
push edx
mov byte [esp + 0x1f8], 0x2a
call edi
add esp, 0x10
push eax
lea ecx, [esp + 0x184]
mov byte [esp + 0x1ec], 0x2b
call dword [sym.imp.MSVCP80.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const__]
lea ecx, [esp + 0x88]
mov byte [esp + 0x1e8], 0x2a
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 + 0xa4]
mov byte [esp + 0x1e8], 0x29
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x64]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov eax, dword [esp + 0x194]
test eax, eax
je 0x405160
cmp dword [esp + 0x198], 0x10
mov ecx, dword [esp + 0x184]
jae 0x405118
lea ecx, [esp + 0x184]
push eax
push ecx
lea ecx, [esp + 0x48]
call dword [sym.imp.K8Common.dll_public:_char____thiscall_GameMgr::GMBase64::Encrypt_char_const___int_]
push eax
lea eax, [esp + 0x8c]
push eax
call dword [sym.imp.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringConvert::CharToGMString_char_const__]
add esp, 8
push eax
lea ecx, [esp + 0x168]
mov byte [esp + 0x1ec], 0x2c
call dword [0x427be8]
lea ecx, [esp + 0x88]
mov byte [esp + 0x1e8], bl
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x180]
mov byte [esp + 0x1e8], 0x1a
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 + 0x40]
mov byte [esp + 0x1e8], 0xb
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMBase64::destructor_void_]
cmp dword [esp + 0x178], 0
je 0x40520e
push 0x44
lea ecx, [esp + 0x100]
push 0
push ecx
call sub.MSVCR80.dll_memset
or dword [esp + 0x134], 1
xor eax, eax
add esp, 0xc
cmp dword [esp + 0x17c], 8
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x168]
mov dword [esp + 0xfc], 0x44
mov word [esp + 0x12c], 5
jae 0x4051ec
lea eax, [esp + 0x168]
lea edx, [esp + 0x40]
push edx
lea ecx, [esp + 0x100]
push ecx
push 0
push 0
push 0
push 0
push 0
push 0
push eax
push 0
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
lea ecx, [esp + 0x164]
mov byte [esp + 0x1e8], 6
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [esp + 0x1bc]
mov byte [esp + 0x1e8], 1
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 + 0x14]
mov byte [esp + 0x1e8], 0
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1e8], 0xffffffff
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonReader::destructor_void_]
mov ecx, dword [esp + 0x1e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1c8]
xor ecx, esp
call fcn.004212c2
mov esp, ebp
pop ebp
ret 0x40