Function at 0x40ea82
Capabilities:
Check if file exists
Get file version info

Disassembly:
mov eax, 0x414825
call fcn.00413240
sub esp, 0x150
mov eax, dword [0x4241a4]
xor eax, ebp
push ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 8]
push esi
xor ebx, ebx
push edi
mov dword [ebp - 0x138], eax
mov dword [ebp - 0x13c], ebx
xor esi, esi
inc esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x134], ebx
mov dword [ebp - 0x134], ebp
push esi
push dword [ebp - 0x134]
push str.class_std::basic_string_wchar_t_struct_std::char_traits_wchar_t__class_std::allocator_wchar_t______cdecl_XMP::GetFileVersionString_class_std::basic_string_wchar_t_struct_std::char_traits_wchar_t__class_std::allocator_wchar_t____
call fcn.00407881
mov edi, eax
add esp, 0xc
cmp edi, ebx
mov eax, 0x41ad50
jne 0x40eae3
mov edi, eax
push ebx
push ebx
push ebx
push ebx
push eax
push 0x41ad18
push edi
lea ecx, [ebp - 0x15c]
call fcn.00409792
mov byte [ebp - 4], 2
cmp edi, ebx
jne 0x40eb03
push ebp
pop ebp
lea ecx, [ebp + 0xc]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
push str.0.0.0.0
jne 0x40eb33
mov ecx, dword [ebp - 0x138]
call dword [sym.imp.MSVCP71.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 dword [ebp - 0x13c], esi
jmp 0x40ec43
lea ecx, [ebp - 0x12c]
call dword [sym.imp.MSVCP71.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 [ebp - 4], 3
lea eax, [ebp - 0x130]
push eax
lea ecx, [ebp + 0xc]
mov word [ebp - 0x110], bx
mov dword [ebp - 0x130], ebx
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov edi, eax
cmp edi, ebx
jbe 0x40ec1a
lea eax, [edi + edi + 2]
push eax
call fcn.00412eee
cmp eax, ebx
pop ecx
mov dword [ebp - 0x134], eax
je 0x40ec1a
push eax
push edi
push dword [ebp - 0x130]
lea ecx, [ebp + 0xc]
call dword [sym.imp.MSVCP71.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x40ec0e
lea eax, [ebp - 0x140]
push eax
lea eax, [ebp - 0x144]
push eax
push 0x415818
push dword [ebp - 0x134]
mov dword [ebp - 0x140], ebx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x40ec0e
mov eax, dword [ebp - 0x144]
movzx ecx, word [eax + 0xc]
push ecx
movzx ecx, word [eax + 0xe]
push ecx
movzx ecx, word [eax + 8]
movzx eax, word [eax + 0xa]
push ecx
push eax
lea eax, [ebp - 0x110]
push str._d._d._d._d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x18
lea eax, [ebp - 0x110]
push eax
lea ecx, [ebp - 0x12c]
call dword [sym.imp.MSVCP71.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 dword [ebp - 0x134]
call sub.MSVCR71.dll_void___cdecl_operator_delete_void__
pop ecx
mov ecx, dword [ebp - 0x138]
lea eax, [ebp - 0x12c]
push eax
call dword [sym.imp.MSVCP71.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__]
mov dword [ebp - 0x13c], esi
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x12c]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x15c]
call fcn.00409a0c
mov byte [ebp - 4], bl
lea ecx, [ebp + 0xc]
call dword [sym.imp.MSVCP71.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x138]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00413159
leave
ret