Function at 0x404271
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x444e50
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x1b8
mov dword [ebp - 0x1c4], ecx
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x14], 0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x138]
call fcn.00404520
push str.Unavailable
lea ecx, [ebp - 0x20]
call fcn.00431366
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x138]
push ecx
mov edx, dword [ebp - 0x10]
push edx
call fcn.00431df1
test eax, eax
je 0x4044a9
mov dword [ebp - 0x1b0], 0
mov eax, dword [ebp - 0x1b0]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0
jne 0x404334
lea edx, [ebp - 0x20]
push edx
mov ecx, dword [ebp + 8]
call fcn.0043106d
mov eax, dword [ebp - 0x1c0]
or al, 1
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004312f8
mov eax, dword [ebp + 8]
jmp 0x4044d3
mov ecx, dword [ebp - 0x18]
push ecx
call fcn.0042d3ef
add esp, 4
mov dword [ebp - 0x1b4], eax
mov edx, dword [ebp - 0x1b4]
mov dword [ebp - 0x14], edx
mov eax, dword [ebp - 0x14]
push eax
mov ecx, dword [ebp - 0x18]
push ecx
push 0
mov edx, dword [ebp - 0x10]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
je 0x4043e8
lea eax, [ebp - 0x13c]
push eax
lea ecx, [ebp - 0x1c]
push ecx
push str.VarFileInfoTranslation
mov edx, dword [ebp - 0x14]
push edx
call sub.VERSION.dll_VerQueryValueA
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
je 0x4043a2
cmp dword [ebp - 0x13c], 0
jne 0x4043e8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1b8], eax
mov ecx, dword [ebp - 0x1b8]
push ecx
call fcn.0042d418
add esp, 4
lea edx, [ebp - 0x20]
push edx
mov ecx, dword [ebp + 8]
call fcn.0043106d
mov eax, dword [ebp - 0x1c0]
or al, 1
mov dword [ebp - 0x1c0], eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004312f8
mov eax, dword [ebp + 8]
jmp 0x4044d3
mov dword [ebp - 0x148], 0
jmp 0x404403
mov ecx, dword [ebp - 0x148]
add ecx, 1
mov dword [ebp - 0x148], ecx
mov edx, dword [ebp - 0x13c]
shr edx, 2
cmp dword [ebp - 0x148], edx
jae 0x404491
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov ax, word [edx + ecx*4 + 2]
push eax
mov ecx, dword [ebp - 0x148]
mov edx, dword [ebp - 0x1c]
xor eax, eax
mov ax, word [edx + ecx*4]
push eax
push str.StringFileInfo_04x_04x_s
lea ecx, [ebp - 0x1ac]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
lea edx, [ebp - 0x13c]
push edx
lea eax, [ebp - 0x144]
push eax
lea ecx, [ebp - 0x1ac]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call sub.VERSION.dll_VerQueryValueA
mov dword [ebp - 0x140], eax
cmp dword [ebp - 0x140], 0
jne 0x40447d
jmp 0x404491
mov eax, dword [ebp - 0x144]
push eax
lea ecx, [ebp - 0x20]
call fcn.00431481
jmp 0x4043f4
mov ecx, dword [ebp - 0x14]
mov dword [ebp - 0x1bc], ecx
mov edx, dword [ebp - 0x1bc]
push edx
call fcn.0042d418
add esp, 4
lea eax, [ebp - 0x20]
push eax
mov ecx, dword [ebp + 8]
call fcn.0043106d
mov ecx, dword [ebp - 0x1c0]
or ecx, 1
mov dword [ebp - 0x1c0], ecx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.004312f8
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc