Function at 0x402b20
Capabilities:
Access peb ldr_data
Check os version
Inspect section memory permissions

Disassembly:
push 0xffffffffffffffff
push 0x42cc09
mov eax, dword fs:[0]
push eax
sub esp, 0xb44
mov eax, dword [0x44901c]
xor eax, esp
mov dword [esp + 0xb40], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x44901c]
xor eax, esp
push eax
lea eax, [esp + 0xb58]
mov dword fs:[0], eax
mov esi, ecx
lea edi, [esi + 4]
xor ebx, ebx
mov dword [esi], vtable.GameMgr::GMSoftwareDetectList.0
mov dword [esp + 0x60], esi
mov dword [edi + 4], ebx
mov dword [edi + 8], ebx
mov dword [edi + 0xc], ebx
lea ebp, [esi + 0x14]
mov dword [esp + 0xb60], ebx
mov dword [ebp + 4], ebx
mov dword [ebp + 8], ebx
mov dword [ebp + 0xc], ebx
mov dword [esp + 0x50], vtable.GameMgr::GMBuffer_unsigned_char_.0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], ebx
sub esp, 0x1c
mov byte [esp + 0xb7c], 2
mov ecx, esp
mov dword [esp + 0x30], esp
push 0x431030
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 + 0x6c]
push eax
push 0x82
mov byte [esp + 0xb84], 3
call dword [sym.imp.K8UIRender.dll_public:_static_class_GameMgr::GMLoadResource____cdecl_GameMgr::GMResourceSingleton::Instance_void_]
mov ecx, eax
mov byte [esp + 0xb84], 2
call dword [sym.imp.K8UIRender.dll_public:_bool___thiscall_GameMgr::GMLoadResource::LoadBuffer_unsigned_int__class_GameMgr::GMBuffer_unsigned_char____class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___]
test al, al
je 0x402c1a
lea ecx, [esp + 0x50]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.00416ae0
lea ecx, [esp + 0x64]
mov byte [esp + 0xb60], 4
call fcn.00417930
test al, al
jne 0x402c25
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0xb64], 2
call fcn.00416b80
mov eax, dword [esp + 0x58]
cmp eax, ebx
jmp 0x404527
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 8
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.DirectX_9.0_and_10.0
push str.DIRECTX
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 5
call fcn.004174c0
test al, al
mov ebx, dword [sym.imp.K8Common.dll_public:_void___thiscall_GameMgr::GMSoftwareDetect::constructor_struct_GameMgr::GMDependSoftLib::GMLibs__unsigned_int__unsigned_int__wchar_t_const___bool____cdecl___void__]
je 0x402cd3
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x402c81
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DIRECTX_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25c
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 6
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 5
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x400
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Microsoft_Visual_C_2008_Service_Pack_1_Redistributable_Package
push str.VC2008
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 7
call fcn.004174c0
test al, al
je 0x402d92
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x402d40
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2008_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x267
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 8
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 7
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 4
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.OpenAL
push str.OPENAL
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0xb
call fcn.004174c0
test al, al
je 0x402e4f
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x402dfd
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_OPENAL_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x265
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0xc
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0xb
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x80
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Microsoft_Visual_C_2005_Service_Pack_1_Redistributable_Package
push str.VC2005
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0xd
call fcn.004174c0
test al, al
je 0x402f0e
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x402ebc
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2005_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x266
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0xe
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0xd
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x2000
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Microsoft_Visual_C_2010_Service_Pack_1_Redistributable_Package
push str.VC2010
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x11
call fcn.004174c0
test al, al
je 0x402fcd
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x402f7b
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2010_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x268
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x12
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x11
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x400000
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str..NET_Framework_3.5_SP1
push str.DOTNET_35_SP1
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x15
call fcn.004174c0
test al, al
je 0x40308c
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x40303a
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_35_SP1_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25e
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x16
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x15
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x20
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Nvidia_PhysX_System
push str.PHYSX
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x17
call fcn.004174c0
test al, al
je 0x403149
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4030f7
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_PHYSX_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x26a
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x18
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x17
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x800000
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str..NET_Framework_4.0
push str.DOTNET_40
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x19
call fcn.004174c0
test al, al
je 0x403208
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4031b6
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_40_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25e
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x1a
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x19
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 2
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.XNA_Framework_Redist_4.0
push str.XNA_40
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x1b
call fcn.004174c0
test al, al
je 0x4032c5
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403273
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_XNA_40_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x261
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x1c
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x1b
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 1
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.XNA_Framework_Redist_3.1
push str.XNA_31
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x1d
call fcn.004174c0
test al, al
je 0x403382
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403330
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_XNA_31_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x263
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x1e
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x1d
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x10
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Games_For_Windows_Live
push str.XLIVE
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x1f
call fcn.004174c0
test al, al
je 0x40343f
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4033ed
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_XLIVE_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25d
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x20
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x1f
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x40
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str.Java
push str.JAVA
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x21
call fcn.004174c0
test al, al
je 0x4034fc
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4034aa
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_JAVA_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x26b
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x22
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x21
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x100000
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str..NET_Framework_1.0
push str.DOTNET_10
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x23
call fcn.004174c0
test al, al
je 0x4035bb
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403569
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_10_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25e
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x24
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x23
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
lea ecx, [esp + 0x10c]
or eax, 0x200000
push ecx
mov dword [esp + 0x18], eax
call fcn.00402a20
push str..NET_Framework_1.1_SP1
push str.DOTNET_11_SP1
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x25
call fcn.004174c0
test al, al
je 0x40367a
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403628
lea eax, [esp + 0x130]
mov edx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_11_SP1_void_]
mov ecx, dword [esp + 0x14]
push edx
push eax
mov eax, dword [esp + 0x130]
push 0x25e
push eax
push esi
push ecx
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x26
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x25
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea edx, [esp + 0x10c]
push edx
mov esi, ebp
call fcn.0040a8d0
lea eax, [esp + 0x10c]
push eax
mov byte [esp + 0xb64], 4
call fcn.00404590
push 0x114
lea ecx, [esp + 0xa40]
push 0
push ecx
call sub.MSVCR80.dll_memset
add esp, 0xc
lea edx, [esp + 0xa3c]
push edx
mov dword [esp + 0xa40], 0x114
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [esp + 0xa40], 5
jne 0x40378c
xor esi, esi
mov eax, esi
or eax, 0x40000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push 0x43147c
push str.Microsoft_AppLocale
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x27
call fcn.004174c0
test al, al
je 0x403777
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403725
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_Microsoft_AppLocale_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x25f
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x28
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x27
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x80000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str.DirectX_9.0_and_10.0
push str.Microsoft_Silverlight
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x29
call fcn.004174c0
test al, al
je 0x403836
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4037e4
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_Microsoft_Silverlight_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x260
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x2a
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x29
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x10000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2012_Redistributable_Package__x86___11.0.51106
push str.VC2012
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x2b
call fcn.004174c0
test al, al
je 0x4038f5
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4038a3
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2012_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x269
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x2c
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x2b
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 2
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2013_Redistributable__x86____12.0.30501
push str.VC2013
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x2d
call fcn.004174c0
test al, al
je 0x4039b2
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403960
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2013_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0x269
push edx
push eax
push esi
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x2e
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x2d
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x4000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push 0x43161c
push str.MSXML_3_0
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x2f
call fcn.004174c0
test al, al
je 0x403a71
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403a1f
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_MSXML_3_0_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x264
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x30
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x2f
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x8000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.MSXML_4.0_SP3_Parser
push str.MSXML_4_0_SP3
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x31
call fcn.004174c0
test al, al
je 0x403b30
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403ade
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_MSXML_4_0_SP3_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x264
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x32
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x31
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
cmp dword [esp + 0xa40], 5
jbe 0x403c10
xor esi, esi
mov eax, esi
or eax, 8
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str..NET_Framework_4.5
push str.DOTNET_45
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x33
call fcn.004174c0
test al, al
je 0x403bfb
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403ba9
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_45_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0x25e
push edx
push eax
push esi
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x34
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x33
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x10
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2015_Redistributable__x86____14.0.23026
push str.VC2015
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x35
call fcn.004174c0
test al, al
je 0x403cb8
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403c66
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2015_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0x269
push edx
push eax
push esi
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x36
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x35
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
call dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsWow64_void_]
xor esi, esi
test al, al
mov eax, esi
je 0x404444
or eax, 0x2000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str..NET_Framework_3.5_SP1
push str.DOTNET_35_SP1_X64
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x37
call fcn.004174c0
test al, al
je 0x403d85
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403d33
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_35_SP1_X64_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x25e
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x38
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x37
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x1000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str..NET_Framework_4.0
push str.DOTNET_40_X64
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x39
call fcn.004174c0
test al, al
je 0x403e44
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403df2
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_DOTNET_40_X64_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x25e
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x3a
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x39
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x100
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2005_Service_Pack_1_Redistributable_Package
push str.VC2005_X64
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x3b
call fcn.004174c0
test al, al
je 0x403f03
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x403eb1
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2005_X64_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x266
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x3c
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x3b
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x800
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2008_Service_Pack_1_Redistributable_Package
push str.VC2008_X64
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x3d
call fcn.004174c0
test al, al
je 0x403fc2
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x403f70
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2008_X64_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x267
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x3e
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x3d
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x4000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2010_Service_Pack_1_Redistributable_Package
push str.VC2010_X64
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x3f
call fcn.004174c0
test al, al
je 0x404081
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x40402f
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2010_X64_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x268
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x40
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x3f
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x20000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2012_Redistributable_Package__x64___11.0.51106
push str.VC2012_X64
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x41
call fcn.004174c0
test al, al
je 0x404140
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4040ee
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2012_X64_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x269
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x42
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x41
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 4
mov dword [esp + 0x18], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2013_Redistributable__x64____12.0.30501
push str.VC2013_X64
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x43
call fcn.004174c0
test al, al
je 0x4041fd
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x4041ab
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2013_X64_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0x269
push edx
push eax
push esi
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x44
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x43
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x20
mov dword [esp + 0x18], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push str.Microsoft_Visual_C_2015_Redistributable__x64____14.0.23026
push str.VC2015_X64
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x45
call fcn.004174c0
test al, al
je 0x4042ba
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x404268
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_VC2015_X64_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x20]
push 0x269
push edx
push eax
push esi
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x46
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x45
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x20000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.Microsoft_XML
push str.MSXML_3_0_X64
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x47
call fcn.004174c0
test al, al
je 0x404379
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x404327
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_MSXML_3_0_X64_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x264
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x48
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x47
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
xor esi, esi
mov eax, esi
or eax, 0x40000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x10c]
push eax
call fcn.00402a20
push 0x431a10
push str.MSXML_6_0_X64
lea ecx, [esp + 0x114]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x49
call fcn.004174c0
test al, al
je 0x404438
cmp dword [esp + 0x144], 8
mov eax, dword [esp + 0x130]
jae 0x4043e6
lea eax, [esp + 0x130]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_MSXML_6_0_X64_void_]
mov edx, dword [esp + 0x128]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x262
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x4a
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x49
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x10c]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x10c]
jmp 0x4044f1
or eax, 0x10000000
mov dword [esp + 0x14], eax
lea eax, [esp + 0x5a4]
push eax
call fcn.00402a20
push str.MSXML_6.0
push str.MSXML_6_0
lea ecx, [esp + 0x5ac]
lea edx, [esp + 0x6c]
mov byte [esp + 0xb68], 0x4b
call fcn.004174c0
test al, al
je 0x4044ea
cmp dword [esp + 0x5dc], 8
mov eax, dword [esp + 0x5c8]
jae 0x404498
lea eax, [esp + 0x5c8]
mov ecx, dword [sym.imp.K8Common.dll_public:_static_bool___cdecl_GameMgr::GMSoftwareDetect::IsInstalled_MSXML_6_0_void_]
mov edx, dword [esp + 0x5c0]
push ecx
push eax
mov eax, dword [esp + 0x1c]
push 0x262
push edx
push esi
push eax
lea ecx, [esp + 0x34]
call ebx
push eax
mov esi, edi
mov byte [esp + 0xb64], 0x4c
call fcn.0040a9b0
lea ecx, [esp + 0x1c]
mov byte [esp + 0xb60], 0x4b
call dword [sym.imp.K8Common.dll_public_virtual:_void___thiscall_GameMgr::GMSoftwareDetect::destructor_void_]
lea ecx, [esp + 0x5a4]
push ecx
mov esi, ebp
call fcn.0040a8d0
lea edx, [esp + 0x5a4]
push edx
mov byte [esp + 0xb64], 4
call fcn.00404590
lea esi, [esp + 0x64]
call fcn.00416c20
mov esi, dword [esp + 0x60]
mov dword [esi + 0x24], eax
lea eax, [esp + 0x64]
push eax
mov byte [esp + 0xb64], 2
call fcn.00416b80
mov eax, dword [esp + 0x58]
test eax, eax
mov dword [esp + 0x50], vtable.GameMgr::GMBuffer_unsigned_char_.0
je 0x40453a
push eax
call sub.MSVCR80.dll_void___cdecl_operator_delete___void__
add esp, 4
mov eax, esi
mov ecx, dword [esp + 0xb58]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb40]
xor ecx, esp
call fcn.00429602
add esp, 0xb50
ret