Function at 0x4c0890
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x253c
call fcn.004d9280
mov eax, dword [0x4f72bc]
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], 0x4f2a68
mov dword [ebp - 0x2534], 0x4f2a74
mov dword [ebp - 0x2530], 0x4f2a84
mov dword [ebp - 0x252c], 0x4f2a90
mov dword [ebp - 0x2528], 0x4f2aa0
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 [0x506e0c], 0
je 0x4c09bd
cmp dword [0x506e0c], 0
lea edx, [ebp - 0x2510]
mov dword [ebp - 0x2508], edx
je 0x4c09bd
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x4c09bd
push str.Wow64DisableWow64FsRedirection
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4c09b2
lea ecx, [ebp - 0x2508]
push ecx
call eax
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FreeLibrary]
call ebx
jmp 0x4c09c3
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 0x4c0aa1
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.00402ee0
push str.MyError:__GetVersionInfoEx_GetFileVersionInfoSize
lea esi, [ebp - 0x504]
call fcn.0047da70
mov ecx, dword [ebp - 0x250c]
add esp, 0x18
push ecx
call dword [sym.imp.KERNEL32.dll_LocalFree]
cmp dword [0x506e0c], 0
lea edx, [ebp - 0x2510]
mov dword [ebp - 0x2508], edx
je 0x4c0a8e
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4c0a8e
push str.Wow64RevertWow64FsRedirection
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4c0a8b
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.004cf2b6
mov esp, ebp
pop ebp
ret
test eax, eax
je 0x4c0a4c
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 0x4c0a8e
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 0x4c0b29
lea ecx, [ebp - 0x2510]
mov dword [ebp - 0x250c], ecx
cmp dword [0x506e0c], eax
je 0x4c0a8e
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov esi, eax
test esi, esi
je 0x4c0a8e
push str.Wow64RevertWow64FsRedirection
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4c0a8b
lea edx, [ebp - 0x250c]
push edx
jmp 0x4c0a89
mov eax, dword [ebp - 0x2508]
xor ecx, ecx
shr eax, 2
mov dword [ebp - 0x2514], ecx
test eax, eax
jle 0x4c0c04
xor edi, edi
lea ebx, [ebp - 0x284]
jmp 0x4c0b66
mov ecx, dword [ebp - 0x2514]
xor edi, edi
lea ebx, [ebp - 0x284]
jmp 0x4c0b66
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 0x4c0bcf
cmp dword [ebp - 0x251c], 0x80
jae 0x4c0bcf
mov eax, dword [ebp - 0x2520]
push eax
jmp 0x4c0bd4
push 0x4e27f8
push ebx
call esi
inc edi
sub ebx, 0xffffff80
cmp edi, 5
jl 0x4c0b60
mov eax, dword [ebp - 0x2514]
mov ecx, dword [ebp - 0x2508]
inc eax
shr ecx, 2
mov dword [ebp - 0x2514], eax
cmp eax, ecx
jl 0x4c0b50
mov edi, dword [ebp - 0x2518]
cmp dword [0x506e0c], 0
je 0x4c0c53
cmp dword [0x506e0c], 0
lea edx, [ebp - 0x2510]
mov dword [ebp - 0x2518], edx
je 0x4c0c53
push str.KERNEL32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov ebx, eax
test ebx, ebx
je 0x4c0c53
push str.Wow64RevertWow64FsRedirection
push ebx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x4c0c4c
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.0047bb80
test eax, eax
je 0x4c0cbb
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 0x4c0cef
mov ecx, dword [ebp - 0x250c]
lea eax, [ebp - 0x304]
push eax
call fcn.004837b0
add esp, 4
test eax, eax
jle 0x4c0cef
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.004cf2b6
mov esp, ebp
pop ebp
ret