Function at 0x42d280
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x4024
call fcn.00463860
mov eax, dword [0x4ba920]
xor eax, ebp
mov dword [ebp - 4], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
push ebx
push esi
mov esi, dword [ebp + 8]
push 0x1ffe
mov dword [ebp - 0x401c], ecx
xor ebx, ebx
mov dword [ebp - 0x4018], eax
lea ecx, [ebp - 0x2002]
xor eax, eax
push ebx
push ecx
mov dword [ebp - 0x4020], edx
mov word [ebp - 0x2004], ax
call fcn.00461130
add esp, 0xc
lea edx, [ebp - 0x4024]
push edx
push esi
mov dword [ebp - 0x4024], ebx
call sub.VERSION.dll_GetFileVersionInfoSizeW
cmp eax, ebx
jne 0x42d300
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0046111a
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x2004]
push ecx
push eax
push ebx
push esi
call sub.VERSION.dll_GetFileVersionInfoW
push 0x1ffe
lea eax, [ebp - 0x4002]
xor edx, edx
push ebx
push eax
mov word [ebp - 0x4004], dx
call fcn.00461130
add esp, 0xc
lea ecx, [ebp - 0x4014]
push ecx
lea edx, [ebp - 0x4008]
push edx
push 0x49996c
lea eax, [ebp - 0x2004]
push eax
call sub.VERSION.dll_VerQueryValueW
xor esi, esi
test dword [ebp - 0x4014], 0xfffffffc
jbe 0x42d517
mov eax, dword [ebp - 0x4008]
push edi
mov edi, dword [sym.imp.USER32.dll_wsprintfW]
jmp 0x42d370
cmp dword [ebp - 0x401c], 0
mov dword [ebp - 0x400c], 0
je 0x42d3f2
movzx ecx, word [eax + esi*4 + 2]
movzx edx, word [eax + esi*4]
push ecx
push edx
lea eax, [ebp - 0x4004]
push str.StringFileInfo_04x_04xProductName
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0x4010]
push ecx
lea edx, [ebp - 0x400c]
push edx
lea eax, [ebp - 0x4004]
push eax
lea ecx, [ebp - 0x2004]
push ecx
mov dword [ebp - 0x400c], 0
call sub.VERSION.dll_VerQueryValueW
mov eax, dword [ebp - 0x400c]
test eax, eax
je 0x42d52c
mov edx, dword [ebp + 0x18]
push edx
push eax
mov eax, dword [ebp - 0x401c]
push eax
call fcn.00464642
add esp, 0xc
mov eax, dword [ebp - 0x4008]
cmp dword [ebp - 0x4020], 0
je 0x42d466
movzx ecx, word [eax + esi*4 + 2]
movzx edx, word [eax + esi*4]
push ecx
push edx
lea eax, [ebp - 0x4004]
push str.StringFileInfo_04x_04xProductVersion
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0x4010]
push ecx
lea edx, [ebp - 0x400c]
push edx
lea eax, [ebp - 0x4004]
push eax
lea ecx, [ebp - 0x2004]
push ecx
mov dword [ebp - 0x400c], 0
call sub.VERSION.dll_VerQueryValueW
mov eax, dword [ebp - 0x400c]
test eax, eax
je 0x42d460
mov edx, dword [ebp + 0x18]
push edx
push eax
mov eax, dword [ebp - 0x4020]
push eax
call fcn.00464642
add esp, 0xc
mov eax, dword [ebp - 0x4008]
cmp dword [ebp - 0x4018], 0
je 0x42d4da
movzx ecx, word [eax + esi*4 + 2]
movzx edx, word [eax + esi*4]
push ecx
push edx
lea eax, [ebp - 0x4004]
push 0x499880
push eax
call edi
add esp, 0x10
lea ecx, [ebp - 0x4010]
push ecx
lea edx, [ebp - 0x400c]
push edx
lea eax, [ebp - 0x4004]
push eax
lea ecx, [ebp - 0x2004]
push ecx
mov dword [ebp - 0x400c], 0
call sub.VERSION.dll_VerQueryValueW
mov eax, dword [ebp - 0x400c]
test eax, eax
je 0x42d4d4
mov edx, dword [ebp + 0x18]
push edx
push eax
mov eax, dword [ebp - 0x4018]
push eax
call fcn.00464642
add esp, 0xc
mov eax, dword [ebp - 0x4008]
cmp ebx, 1
jne 0x42d504
mov ecx, 0x409
mov word [eax + esi*4], cx
mov eax, dword [ebp - 0x4008]
mov edx, 0x4b0
mov word [eax + esi*4 + 2], dx
mov eax, dword [ebp - 0x4008]
mov ebx, 3
dec esi
mov ecx, dword [ebp - 0x4014]
inc esi
shr ecx, 2
cmp esi, ecx
jb 0x42d370
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.0046111a
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x715
jne 0x42d3ec
cmp ebx, 3
je 0x42d3ec
mov eax, dword [ebp - 0x4008]
mov ecx, 0x409
cmp cx, word [eax + esi*4]
jne 0x42d567
mov edx, 0x4b0
cmp dx, word [eax + esi*4 + 2]
je 0x42d3f2
mov ebx, 1
jmp 0x42d3f2