Function at 0x47ed4c
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov ecx, 7
push 0
push 0
dec ecx
jne 0x47ed54
push ebx
push esi
push edi
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0x47efbb
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x47ef8a
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x1c], eax
mov byte [ebp - 1], 0
lea eax, [ebp - 0x1c]
push eax
mov eax, ebx
call fcn.0040463c
mov edi, eax
push edi
call sub.version.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jbe 0x47ef80
mov eax, dword [ebp - 0xc]
call fcn.00402714
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x47ef79
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
push eax
push 0
push edi
call sub.version.dll_GetFileVersionInfoA
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
je 0x47ef63
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x47efcc
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47ee47
push 0x47eff0
lea ecx, [ebp - 0x20]
mov eax, dword [ebp - 0x14]
movzx eax, word [eax]
mov edx, 4
call fcn.00408a20
push dword [ebp - 0x20]
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
call fcn.004070fc
movzx eax, ax
lea ecx, [ebp - 0x24]
mov edx, 4
call fcn.00408a20
push dword [ebp - 0x24]
push 0x47f00c
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.004044fc
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
mov ecx, 0x47f018
mov edx, dword [ebp - 0x18]
call fcn.00404488
mov eax, dword [ebp - 0x28]
call fcn.0040463c
push eax
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47ee7f
mov eax, esi
mov edx, dword [ebp - 0x10]
call fcn.00404358
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x2c]
mov ecx, 0x47f02c
mov edx, dword [ebp - 0x18]
call fcn.00404488
mov eax, dword [ebp - 0x2c]
call fcn.0040463c
push eax
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47eeb8
lea eax, [esi + 4]
mov edx, dword [ebp - 0x10]
call fcn.00404358
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x30]
mov ecx, 0x47f044
mov edx, dword [ebp - 0x18]
call fcn.00404488
mov eax, dword [ebp - 0x30]
call fcn.0040463c
push eax
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47eef1
lea eax, [esi + 8]
mov edx, dword [ebp - 0x10]
call fcn.00404358
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x34]
mov ecx, 0x47f058
mov edx, dword [ebp - 0x18]
call fcn.00404488
mov eax, dword [ebp - 0x34]
call fcn.0040463c
push eax
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47ef2a
lea eax, [esi + 0x14]
mov edx, dword [ebp - 0x10]
call fcn.00404358
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x38]
mov ecx, 0x47f06c
mov edx, dword [ebp - 0x18]
call fcn.00404488
mov eax, dword [ebp - 0x38]
call fcn.0040463c
push eax
mov eax, dword [ebp - 8]
push eax
call sub.version.dll_VerQueryValueA
test eax, eax
je 0x47ef63
lea eax, [esi + 0x18]
mov edx, dword [ebp - 0x10]
call fcn.00404358
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47ef80
mov eax, dword [ebp - 8]
call fcn.00402734
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x47ef98
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x47efc2
lea eax, [ebp - 0x38]
mov edx, 7
call fcn.00404184
lea eax, [ebp - 0x18]
call fcn.00404160
ret