Function at 0x48e9d0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x253c
call fcn.004a9b70
mov eax, dword [0x4c32cc]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push edi
mov edi, ecx
lea ecx, [ebp - 0x284]
push ecx
push edi
mov dword [ebp - 0x250c], eax
mov dword [ebp - 0x2518], edi
mov dword [ebp - 0x2510], 0
mov dword [ebp - 0x2538], 0x4be424
mov dword [ebp - 0x2534], 0x4be430
mov dword [ebp - 0x2530], 0x4be440
mov dword [ebp - 0x252c], 0x4be44c
mov dword [ebp - 0x2528], 0x4be45c
mov byte [ebp - 0x284], 0
mov byte [ebp - 0x204], 0
mov byte [ebp - 0x184], 0
mov byte [ebp - 0x104], 0
mov byte [ebp - 0x84], 0
call esi
lea edx, [ebp - 0x204]
lea eax, [edi + 0x400]
push edx
push eax
call esi
lea ecx, [ebp - 0x184]
lea eax, [edi + 0x800]
push ecx
push eax
call esi
lea edx, [ebp - 0x104]
lea eax, [edi + 0xc00]
push edx
push eax
call esi
lea ecx, [ebp - 0x84]
lea eax, [edi + 0x1000]
push ecx
push eax
call esi
cmp dword [0x4d2afc], 0
je 0x48eaf4
lea edx, [ebp - 0x2510]
push str.KERNEL32.DLL
mov dword [ebp - 0x2508], edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x48eaf4
push str.Wow64DisableWow64FsRedirection
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x48eae9
lea ecx, [ebp - 0x2508]
push ecx
call eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call ebx
jmp 0x48eafa
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebp - 0x250c]
lea edx, [ebp - 0x253c]
push edx
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeA]
mov dword [ebp - 0x251c], eax
cmp eax, 0x1fff
jbe 0x48ebd8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0
push 0
lea ecx, [ebp - 0x250c]
push ecx
push 0x400
mov esi, eax
push esi
push 0
push 0x1100
call dword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, dword [ebp - 0x250c]
push edx
push esi
push str._d___s
lea eax, [ebp - 0x504]
push 0x200
push eax
call fcn.00402830
push str.MyError:__GetVersionInfoEx_GetFileVersionInfoSize
lea esi, [ebp - 0x504]
call fcn.0047fb10
mov ecx, dword [ebp - 0x250c]
add esp, 0x18
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [0x4d2afc], 0
lea edx, [ebp - 0x2510]
mov dword [ebp - 0x2508], edx
je 0x48ebc5
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x48ebc5
push str.Wow64RevertWow64FsRedirection
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x48ebc2
lea ecx, [ebp - 0x2508]
push ecx
call eax
push esi
call ebx
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004a01d6
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x48eb83
lea edx, [ebp - 0x2504]
push edx
push eax
mov eax, dword [ebp - 0x250c]
push 0
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoA]
test eax, eax
je 0x48ebc5
lea ecx, [ebp - 0x2508]
push ecx
lea edx, [ebp - 0x2524]
push edx
push str.VarFileInfoTranslation
lea eax, [ebp - 0x2504]
push eax
call dword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
jne 0x48ec60
lea ecx, [ebp - 0x2510]
mov dword [ebp - 0x250c], ecx
cmp dword [0x4d2afc], eax
je 0x48ebc5
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x48ebc5
push str.Wow64RevertWow64FsRedirection
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x48ebc2
lea edx, [ebp - 0x250c]
push edx
jmp 0x48ebc0
mov eax, dword [ebp - 0x2508]
xor ecx, ecx
shr eax, 2
mov dword [ebp - 0x2514], ecx
test eax, eax
jle 0x48ed44
xor edi, edi
lea ebx, [ebp - 0x284]
jmp 0x48eca6
mov ecx, dword [ebp - 0x2514]
xor edi, edi
lea ebx, [ebp - 0x284]
jmp 0x48eca6
mov ecx, dword [ebp - 0x2514]
mov edx, dword [ebp + edi*4 - 0x2538]
mov eax, dword [ebp - 0x2524]
push edx
movzx edx, word [eax + ecx*4 + 2]
movzx eax, word [eax + ecx*4]
push edx
push eax
lea ecx, [ebp - 0x504]
push str.StringFileInfo_04x_04x_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea edx, [ebp - 0x251c]
push edx
lea eax, [ebp - 0x2520]
push eax
lea ecx, [ebp - 0x504]
push ecx
lea edx, [ebp - 0x2504]
push edx
call dword [sym.imp.VERSION.dll_VerQueryValueA]
test eax, eax
je 0x48ed0f
cmp dword [ebp - 0x251c], 0x80
jae 0x48ed0f
mov eax, dword [ebp - 0x2520]
push eax
jmp 0x48ed14
push 0x4b17de
push ebx
call esi
inc edi
sub ebx, 0xffffff80
cmp edi, 5
jl 0x48eca0
mov eax, dword [ebp - 0x2514]
mov ecx, dword [ebp - 0x2508]
inc eax
shr ecx, 2
mov dword [ebp - 0x2514], eax
cmp eax, ecx
jl 0x48ec90
mov edi, dword [ebp - 0x2518]
cmp dword [0x4d2afc], 0
je 0x48ed8a
lea edx, [ebp - 0x2510]
push str.KERNEL32.DLL
mov dword [ebp - 0x2518], edx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x48ed8a
push str.Wow64RevertWow64FsRedirection
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x48ed83
lea ecx, [ebp - 0x2518]
push ecx
call eax
push ebx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea edx, [ebp - 0x284]
push edx
push edi
call esi
lea eax, [ebp - 0x204]
push eax
lea eax, [edi + 0x400]
push eax
call esi
lea ecx, [ebp - 0x184]
push ecx
lea ebx, [edi + 0x800]
push ebx
call esi
lea edx, [ebp - 0x104]
push edx
lea eax, [edi + 0xc00]
push eax
call esi
lea eax, [ebp - 0x84]
push eax
lea eax, [edi + 0x1000]
push eax
call esi
mov edx, str.Operating_System
lea ecx, [ebp - 0x284]
call fcn.0047dee0
test eax, eax
je 0x48edf2
lea ecx, [ebp - 0x104]
push ecx
push edi
call esi
lea edx, [ebp - 0x184]
push edx
call dword [sym.imp.KERNEL32.dll_lstrlenA]
test eax, eax
jne 0x48ee26
mov ecx, dword [ebp - 0x250c]
lea eax, [ebp - 0x304]
push eax
call fcn.00483c70
add esp, 4
test eax, eax
jle 0x48ee26
lea ecx, [ebp - 0x304]
push ecx
push ebx
call esi
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ecx, dword [ebp - 4]
neg eax
pop edi
sbb eax, eax
pop esi
xor ecx, ebp
neg eax
pop ebx
call fcn.004a01d6
mov esp, ebp
pop ebp
ret