Function at 0x404440
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x421790
mov eax, dword fs:[0]
push eax
sub esp, 0x1d0
mov eax, dword [0x43701c]
xor eax, esp
mov dword [esp + 0x1c8], eax
push ebx
push esi
push edi
mov eax, dword [0x43701c]
xor eax, esp
push eax
lea eax, [esp + 0x1e0]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0x20]
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 0x34]
mov dword [esp + 0x19c], ecx
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x28]
mov dword [esp + 0xa4], ecx
mov ecx, dword [ebp + 0x3c]
mov dword [esp + 0x1a0], edx
mov edx, dword [ebp + 0x30]
mov dword [esp + 0x1a8], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x64], ecx
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0xa8], edx
mov edx, dword [ebp + 0x40]
mov dword [esp + 0xb0], eax
mov eax, dword [ebp + 0x44]
mov dword [esp + 0x70], ecx
xor ebx, ebx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x1a4], esi
mov dword [esp + 0xac], edi
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 + 0x18]
mov dword [esp + 0x1e8], ebx
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMJsonValue::constructor_void_]
push edi
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 edi, dword [ebp + 0x14]
cmp edi, 0xa
je 0x4045b5
push 1
lea edx, [esp + 0x1c]
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 0x4050f2
lea ecx, [esp + 0x18]
call dword [sym.imp.K8Common.dll_public_virtual:_bool___thiscall_GameMgr::GMJsonValue::IsObject_void_const]
test al, al
je 0x4050f2
cmp edi, 0xa
mov ebx, dword [sym.imp.K8Common.dll_public:_class_GameMgr::GMJsonValue___thiscall_GameMgr::GMJsonValue::operator___char_const__]
je 0x404611
mov ecx, dword [esp + 0x14]
cmp dword [ecx + 0x550], 0
je 0x404611
push str.from
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x20]
call ebx
mov byte [esp + 0x1e8], 7
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x20]
mov dword [esp + 0x20], 1
call eax
test al, al
mov byte [esp + 0x12], 1
jne 0x404616
mov byte [esp + 0x12], 0
mov dword [esp + 0x1e8], 6
test byte [esp + 0x20], 1
je 0x404632
lea ecx, [esp + 0x40]
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
cmp byte [esp + 0x12], 0
je 0x404705
push str.from
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x20]
call ebx
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 dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
mov eax, dword [esp + 0x198]
cmp eax, 0x10
mov esi, dword [esp + 0x184]
jae 0x404692
lea esi, [esp + 0x184]
mov edi, str.recommend
mov ecx, 0xa
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4046a6
push 0x41
jmp 0x4046cb
cmp eax, 0x10
mov esi, dword [esp + 0x184]
jae 0x4046b9
lea esi, [esp + 0x184]
mov edi, str.relevant
mov ecx, 9
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
jne 0x4046e7
push 0x40
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x550]
mov ecx, dword [eax + 0x2e4]
push ecx
mov ecx, dword [eax + 0x368]
call fcn.00417430
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 [esp + 0x1a4]
jmp 0x404728
cmp edi, 0xa
jne 0x404728
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x550]
mov ecx, dword [eax + 0x2e4]
push 0x42
push ecx
mov ecx, dword [eax + 0x368]
call fcn.00417430
push 0x423134
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 + 0x14], 1
mov byte [esp + 0x1e8], 0xb
jne 0x404bff
push str.gtid
lea edx, [esp + 0x44]
push edx
lea ecx, [esp + 0x20]
call ebx
mov byte [esp + 0x1e8], 0xc
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 dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
push 0x423554
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x20]
call ebx
mov byte [esp + 0x1e8], 0xd
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 dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
push str.newtab
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x20]
call ebx
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 dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
push 0x423560
lea ecx, [esp + 0x1c]
call dword [sym.imp.K8Common.dll_public_virtual:_bool___thiscall_GameMgr::GMJsonValue::IsMember_char_const__const]
test al, al
je 0x40488e
push 0x423560
lea ecx, [esp + 0x44]
push ecx
lea ecx, [esp + 0x20]
call ebx
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 dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMJsonValue::destructor_void_]
mov eax, 0x51eb851f
mul esi
shr edx, 5
cmp edx, 3
setne al
test al, al
mov byte [esp + 0x12], al
jne 0x404bff
mov esi, dword [esp + 0x1a4]
cmp byte [esp + 0x13], 0
jne 0x4048ad
push esi
call fcn.0040fcb0
add esp, 4
test eax, eax
jne 0x4048ad
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [edx + 0x550]
push edi
push ecx
push esi
push eax
call fcn.0040e3b0
jmp 0x4050dd
cmp esi, 0xc350
jb 0x404bff
cmp esi, 0x11170
jae 0x404bff
mov byte [esp + 0x12], 0
jmp 0x40485e
push esi
call fcn.0040fcb0
add esp, 4
test eax, eax
je 0x4048c8
push esi
call fcn.0040fd80
add esp, 4
jmp 0x404bdc
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + 0x550]
call fcn.0040d830
test al, al
je 0x4048e5
mov byte [esp + 0x12], 1
jmp 0x404bdc
lea ecx, [esp + 0x24]
call fcn.00412030
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 0x404bdc
push esi
lea edi, [esp + 0x184]
call fcn.0040e090
mov bl, 0x11
mov byte [esp + 0x1e8], bl
cmp dword [esp + 0x194], 0
je 0x4049a0
push 0x423248
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, edi
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 [0x422adc]
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 0x423248
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 [0x422adc]
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 0x423248
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__]
mov edi, dword [esp + 0x20]
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 [0x422adc]
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 0x423248
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 [0x422adc]
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 0x423248
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 0x423248
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 0x423248
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__]
mov byte [esp + 0x1e8], 0x16
lea edx, [esp + 0x40]
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 [0x422adc]
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 0x423248
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 [0x422adc]
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 + 0x14]
mov ecx, dword [edx + 0x550]
cmp byte [ecx + 0x2b1], 0
je 0x404bf4
call fcn.004085a0
cmp byte [esp + 0x12], 0
je 0x405056
lea ecx, [esp + 0x24]
call fcn.00411e20
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 0x4050dd
lea ecx, [esp + 0x40]
call dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMBase64::constructor_void_]
push 0x423248
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 + 0x14]
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 [0x422adc]
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 0x423248
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 0x404d2a
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 [0x422adc]
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 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__]
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__]
jmp 0x404e1d
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 0x404e08
cmp dword [esp + 0x1b4], 0x10
mov ecx, dword [esp + 0x1a0]
jae 0x404dc0
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 [0x422adc]
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 0x423248
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 0x404f13
cmp dword [esp + 0x198], 0x10
mov ecx, dword [esp + 0x184]
jae 0x404ecb
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 [0x422adc]
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 0x423248
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 0x40502f
cmp dword [esp + 0x198], 0x10
mov ecx, dword [esp + 0x184]
jae 0x404fe7
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 [0x422adc]
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 0x4050dd
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 0x4050bb
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 + 0x18]
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.0041cf41
mov esp, ebp
pop ebp
ret 0x44