Function at 0x402440
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x40f16e
mov eax, dword fs:[0]
push eax
sub esp, 0x134
mov eax, dword [0x41901c]
xor eax, esp
mov dword [esp + 0x130], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x41901c]
xor eax, esp
push eax
lea eax, [esp + 0x148]
mov dword fs:[0], eax
xor ebx, ebx
lea ecx, [esp + 0x30]
xor ebp, ebp
mov dword [esp + 0x1c], ebx
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMRegFile::constructor_void_
mov dword [esp + 0x38], 0x2001f
mov byte [esp + 0x3c], bl
lea edi, [esp + 0xa8]
lea ecx, [esp + 0x30]
mov dword [esp + 0x150], ebp
call fcn.00409020
mov byte [esp + 0x150], 1
cmp dword [esp + 0xbc], ebp
mov dword [esp + 0x28], ebp
mov dword [esp + 0x2c], ebp
je 0x402507
push str.00000000000000
lea ecx, [esp + 0x90]
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 + 0x8c]
push eax
mov ecx, edi
mov byte [esp + 0x154], 2
mov ebx, 1
push ecx
mov dword [esp + 0x24], ebx
call sub.K8Common.dll_public:_static_int___cdecl_GameMgr::GMStringUtils::CompareNoCase_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__
add esp, 8
test eax, eax
mov byte [esp + 0x1b], 0
jne 0x40250c
mov byte [esp + 0x1b], 1
test bl, 1
mov dword [esp + 0x150], 1
je 0x402529
lea ecx, [esp + 0x8c]
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 byte [esp + 0x1b], 0
je 0x40266d
lea ecx, [esp + 0xfc]
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMFileInfo::constructor_void_
lea edx, [esp + 0xc4]
push ebp
push edx
mov byte [esp + 0x158], 3
call sub.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMSharedLibrary::GetModuleFullName_struct_HINSTANCE____
lea ecx, [esp + 0x104]
push ecx
push eax
mov byte [esp + 0x160], 4
call sub.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMFindFile::FindFile_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const___class_GameMgr::GMFileInfo__
add esp, 0x10
lea ecx, [esp + 0xc4]
mov byte [esp + 0x150], 3
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 + 0xfc]
call sub.K8Common.dll_public:_struct__FILETIME_const____thiscall_GameMgr::GMFileInfo::GetCreateTime_void_const
mov esi, dword [eax]
push 2
push 0x540be400
mov dword [esp + 0x30], esi
mov eax, dword [eax + 4]
push ebp
push eax
mov dword [esp + 0x3c], eax
call fcn.0040ea20
xor ecx, ecx
add eax, esi
adc edx, ecx
push edx
push eax
lea edx, [esp + 0x78]
push edx
call sub.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringUtils::ConvertUInt64ToString_unsigned_long_long_unsigned___int64__
add esp, 0xc
mov bl, 5
mov edi, 0x14
mov byte [esp + 0x150], bl
cmp dword [esp + 0x84], edi
jae 0x402627
mov esi, dword [sym.imp.MSVCP80.dll_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_std::operator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___wchar_t_const___class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea ecx, [ecx]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xc8]
push 0x4117f4
push ecx
call esi
add esp, 0xc
push eax
lea ecx, [esp + 0x74]
mov byte [esp + 0x154], 6
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 + 0xc4]
mov byte [esp + 0x150], 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_]
cmp dword [esp + 0x84], edi
jb 0x4025e0
sub esp, 0x1c
lea edx, [esp + 0x8c]
mov ecx, esp
mov dword [esp + 0x38], esp
push edx
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_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea esi, [esp + 0x4c]
call fcn.00409230
lea ecx, [esp + 0x70]
mov byte [esp + 0x150], 3
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 + 0xfc]
mov byte [esp + 0x150], 1
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMFileInfo::destructor_void_
lea ecx, [esp + 0x40]
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMRegFile::constructor_void_
mov dword [esp + 0x48], 0x2001f
mov byte [esp + 0x4c], 0
lea edi, [esp + 0xe0]
lea esi, [esp + 0x40]
mov byte [esp + 0x150], 7
call fcn.00409450
mov byte [esp + 0x150], 8
cmp dword [esp + 0xf4], ebp
jne 0x402871
lea ecx, [esp + 0x70]
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_void_]
lea eax, [esp + 0x8c]
push eax
mov byte [esp + 0x154], 9
call sub.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMSystemInfo::GetSystemInstallTime_void_
add esp, 4
mov byte [esp + 0x150], 0xa
mov eax, dword [esp + 0x90]
mov esi, 8
cmp dword [esp + 0xa4], esi
jae 0x4026f6
lea eax, [esp + 0x90]
push ebp
push eax
call sub.K8Common.dll_public:_static_unsigned_long_long_unsigned___int64____cdecl_GameMgr::GMStringUtils::ConvertStringToUInt64_wchar_t_const___wchar_t_const___
add esp, 8
cmp dword [esp + 0x28], ebp
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], edx
je 0x402780
cmp dword [esp + 0x2c], ebp
je 0x402780
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x2c]
push edx
call dword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x40284a
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x64]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_SystemTimeToTzSpecificLocalTime]
test eax, eax
je 0x40284a
movzx edx, word [esp + 0x5c]
movzx eax, word [esp + 0x5a]
movzx ecx, word [esp + 0x58]
push edx
movzx edx, word [esp + 0x5a]
push eax
movzx eax, word [esp + 0x5a]
push ecx
movzx ecx, word [esp + 0x5c]
push edx
push eax
push ecx
lea edx, [esp + 0x88]
push 0x4117f8
push edx
call sub.K8Common.dll_public:_static_void___cdecl_GameMgr::GMStringUtils::Format_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____wchar_t_const__
add esp, 0x20
jmp 0x402792
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x74]
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__]
cmp dword [esp + 0x88], esi
mov eax, dword [esp + 0x74]
jae 0x4027a3
lea eax, [esp + 0x74]
push ebp
push eax
call sub.K8Common.dll_public:_static_unsigned_long_long_unsigned___int64____cdecl_GameMgr::GMStringUtils::ConvertStringToUInt64_wchar_t_const___wchar_t_const___
push ebp
mov esi, eax
mov edi, edx
call dword [sym.imp.MSVCR80.dll__time64]
add esp, 0xc
push eax
call dword [sym.imp.MSVCR80.dll_srand]
add esp, 4
call dword [sym.imp.MSVCR80.dll_rand]
mov ecx, eax
mov eax, 0x83340521
imul ecx
add edx, ecx
sar edx, 9
mov ecx, edx
shr ecx, 0x1f
add esi, dword [esp + 0x1c]
push 0
adc edi, dword [esp + 0x24]
push 0x3e8
lea eax, [edx + ecx + 1]
cdq
push edi
push esi
mov ebp, eax
mov ebx, edx
call fcn.0040ea20
add ebp, eax
adc ebx, edx
push ebx
lea edx, [esp + 0xc8]
push ebp
push edx
call sub.K8Common.dll_public:_static_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____cdecl_GameMgr::GMStringUtils::ConvertUInt64ToString_unsigned_long_long_unsigned___int64__
sub esp, 0x10
mov byte [esp + 0x16c], 0xb
lea eax, [esp + 0xe0]
mov ecx, esp
mov dword [esp + 0x38], esp
push eax
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_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
lea esi, [esp + 0x5c]
call fcn.00409530
lea ecx, [esp + 0xc4]
mov byte [esp + 0x150], 0xa
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 + 0x8c]
mov byte [esp + 0x150], 9
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 + 0x70]
mov byte [esp + 0x150], 8
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 + 0x150], 7
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 + 0x150], 1
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMRegFile::destructor_void_
lea ecx, [esp + 0xa8]
mov byte [esp + 0x150], 0
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 + 0x30]
mov dword [esp + 0x150], 0xffffffff
call sub.K8Common.dll_public:_void___thiscall_GameMgr::GMRegFile::destructor_void_
mov ecx, dword [esp + 0x148]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x130]
xor ecx, esp
call fcn.0040e0e6
add esp, 0x140
ret