Function at 0x405980
Capabilities:
Check if file exists

Disassembly:
push 0xffffffffffffffff
push 0x472442
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x492bec]
xor eax, esp
push eax
lea eax, [esp + 0x44]
mov dword fs:[0], eax
push 0x47ee18
lea ecx, [esp + 0x20]
call dword [sym.imp.mfc90.dll_Ordinal_310]
lea ecx, [esp + 0x18]
mov dword [esp + 0x4c], 0
call dword [sym.imp.mfc90.dll_Ordinal_316]
lea eax, [esp + 0x20]
push eax
mov byte [esp + 0x50], 1
call sub.HZDKernel.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______cdecl_HZD::Kernel::Helper::CBaseHelper::BinPath_void_
push eax
lea ecx, [esp + 0x1c]
push ecx
mov edi, 0x480b54
mov byte [esp + 0x58], 2
call fcn.00407810
add esp, 0xc
mov bl, 4
lea ecx, [esp + 0x20]
mov byte [esp + 0x4c], bl
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 0x48068c
mov ecx, 0x494058
call dword [sym.imp.mfc90.dll_Ordinal_820]
mov edx, dword [esp + 0x14]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsA]
push edx
call esi
test eax, eax
je 0x405a98
push ecx
lea eax, [esp + 0x18]
mov ecx, esp
mov dword [esp + 0x30], esp
push eax
call dword [sym.imp.mfc90.dll_Ordinal_300]
lea ecx, [esp + 0x28]
push ecx
mov ecx, 0x49403c
call sub.HZDKernel.dll_public:_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______thiscall_HZD::Kernel::OS::CBaseOS::GetVersion_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char____
push eax
mov ecx, 0x494058
mov byte [esp + 0x50], 5
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], bl
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 0x480b64
push 0x480b68
mov ecx, 0x494058
call dword [sym.imp.mfc90.dll_Ordinal_5924]
push 0x47ee18
mov ecx, 0x494058
call dword [sym.imp.mfc90.dll_Ordinal_1603]
test eax, eax
jne 0x405a98
push 0x48068c
mov ecx, 0x494058
call dword [sym.imp.mfc90.dll_Ordinal_820]
lea edx, [esp + 0x28]
push edx
call sub.HZDKernel.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______cdecl_HZD::Kernel::Helper::CBaseHelper::BinPath_void_
push eax
lea eax, [esp + 0x2c]
push eax
mov edi, str.Config_ver
mov byte [esp + 0x58], 6
call fcn.00407810
mov eax, dword [eax]
add esp, 0xc
push eax
call esi
lea ecx, [esp + 0x24]
mov esi, eax
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x28]
mov byte [esp + 0x4c], bl
call dword [sym.imp.mfc90.dll_Ordinal_601]
test esi, esi
je 0x405bc3
lea ecx, [esp + 0x24]
push ecx
call sub.HZDKernel.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______cdecl_HZD::Kernel::Helper::CBaseHelper::BinPath_void_
push eax
lea edx, [esp + 0x30]
push edx
mov byte [esp + 0x58], 7
call fcn.00407810
add esp, 0xc
mov byte [esp + 0x4c], 8
mov eax, dword [eax]
push 0
push eax
lea ecx, [esp + 0x38]
call sub.mfc90.dll_Ordinal_403
lea ecx, [esp + 0x28]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x24]
mov byte [esp + 0x4c], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x30]
call sub.mfc90.dll_Ordinal_3179
mov esi, eax
lea eax, [esi + 1]
push eax
call sub.mfc90.dll_Ordinal_265
add esp, 4
mov edi, eax
push esi
push edi
lea ecx, [esp + 0x38]
call sub.mfc90.dll_Ordinal_5753
lea ecx, [esp + 0x30]
mov byte [edi + esi], 0
call sub.mfc90.dll_Ordinal_1555
push edi
lea ecx, [esp + 0x30]
call dword [sym.imp.mfc90.dll_Ordinal_310]
push eax
lea ecx, [esp + 0x20]
mov byte [esp + 0x50], 0xc
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x2c]
mov byte [esp + 0x4c], 0xb
call dword [sym.imp.mfc90.dll_Ordinal_601]
push 0x7d
push 1
lea ecx, [esp + 0x24]
push ecx
lea edx, [esp + 0x38]
push edx
call sub.HZDKernel.dll_public:_static_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______cdecl_HZD::Kernel::Helper::CBaseHelper::GetSubStr_class_ATL::CStringT_char__class_StrTraitMFC_DLL_char__class_ATL::ChTraitsCRT_char______int__char_
add esp, 0x10
push eax
mov ecx, 0x49405c
mov byte [esp + 0x50], 0xd
call dword [sym.imp.mfc90.dll_Ordinal_817]
lea ecx, [esp + 0x2c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x30]
mov byte [esp + 0x4c], bl
call sub.mfc90.dll_Ordinal_663
mov eax, dword [0x494058]
push eax
lea ecx, [esp + 0x1c]
push 0x480b78
push ecx
call dword [sym.imp.mfc90.dll_Ordinal_2539]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
add esp, 0xc
push edx
add ecx, 0x258
call sub.mfc90.dll_Ordinal_6559
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90.dll_Ordinal_601]
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90.dll_Ordinal_601]
mov ecx, dword [esp + 0x44]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
add esp, 0x40
ret 4