Function at 0x516853
Capabilities:
Get file version info

Disassembly:
push 0x7c
mov eax, 0x6748e7
call fcn.005b47af
mov edi, dword [ebp + 8]
xor ebx, ebx
mov esi, dword [ebp + 0xc]
mov ecx, edi
mov dword [ebp - 0x68], edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x84], ebx
call fcn.00516815
cmp dword [esi + 0x14], 8
mov dword [ebp - 4], ebx
mov dword [ebp - 0x84], 1
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x60], ebx
jb 0x51689a
mov eax, dword [esi]
jmp 0x51689c
mov eax, esi
lea ecx, [ebp - 0x6c]
push ecx
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov ebx, eax
test ebx, ebx
je 0x516dde
push ebx
call fcn.005b485c
cmp dword [esi + 0x14], 8
pop ecx
mov dword [ebp - 0x64], eax
jb 0x5168c2
mov esi, dword [esi]
push eax
push ebx
push dword [ebp - 0x6c]
push esi
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
je 0x516dd5
xor ebx, ebx
mov dword [ebp - 0x80], ebx
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
xor eax, eax
mov dword [ebp - 4], 1
mov esi, 0x6a68f4
mov dword [ebp - 0x2c], 7
push esi
mov dword [ebp - 0x30], ebx
mov word [ebp - 0x40], ax
call fcn.005ff18e
pop ecx
push eax
push esi
lea ecx, [ebp - 0x40]
call fcn.0040a315
lea eax, [ebp - 0x40]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x80]
call fcn.0042630c
push ebx
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
lea eax, [ebp - 0x70]
mov dword [ebp - 0x74], ebx
push eax
lea eax, [ebp - 0x74]
mov dword [ebp - 0x70], ebx
push eax
push str.VarFileInfoTranslation
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x5169d4
mov esi, dword [ebp - 0x70]
test esi, esi
je 0x5169d4
shr esi, 2
mov edi, ebx
test esi, esi
je 0x5169d4
mov ecx, dword [ebp - 0x74]
movzx eax, word [ecx + edi*4 + 2]
push eax
movzx eax, word [ecx + edi*4]
push eax
lea eax, [ebp - 0x3c]
push str._04x_04x
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
xor eax, eax
mov dword [ebp - 0x14], 7
add esp, 0x10
mov dword [ebp - 0x18], ebx
mov word [ebp - 0x28], ax
cmp word [ebp - 0x3c], ax
jne 0x516999
mov eax, ebx
jmp 0x5169a3
lea eax, [ebp - 0x3c]
push eax
call fcn.005ff18e
pop ecx
push eax
lea eax, [ebp - 0x3c]
push eax
lea ecx, [ebp - 0x28]
call fcn.0040a315
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 3
push eax
lea ecx, [ebp - 0x80]
call fcn.0042630c
push ebx
push 1
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.00409de7
inc edi
cmp edi, esi
jl 0x51695f
mov esi, dword [ebp - 0x80]
mov edi, esi
mov ebx, dword [ebp - 0x7c]
cmp esi, ebx
je 0x516aa3
push edi
lea ecx, [ebp - 0x40]
call fcn.0040bd70
and dword [ebp - 0x5c], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 4
push str.StringFileInfo_
push eax
call fcn.0042ab6c
push str.CompanyName
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 5
push eax
call fcn.0040bca5
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 7
call fcn.00409de7
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x516a53
cmp dword [ebp - 0x5c], 0
jne 0x516a7c
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
add edi, 0x18
cmp edi, ebx
jne 0x5169e4
jmp 0x516aa3
push dword [ebp - 0x60]
mov ecx, dword [ebp - 0x68]
call fcn.0040a2ee
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
mov edi, esi
cmp esi, ebx
je 0x516b6f
push edi
lea ecx, [ebp - 0x40]
call fcn.0040bd70
and dword [ebp - 0x5c], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 8
push str.StringFileInfo_
push eax
call fcn.0042ab6c
push 0x6a6990
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 9
push eax
call fcn.0040bca5
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xb
call fcn.00409de7
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x516b1c
cmp dword [ebp - 0x5c], 0
jne 0x516b45
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
add edi, 0x18
cmp edi, ebx
jne 0x516aad
jmp 0x516b6f
mov ecx, dword [ebp - 0x68]
push dword [ebp - 0x60]
lea ecx, [ecx + 0x18]
call fcn.0040a2ee
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
mov edi, esi
cmp esi, ebx
je 0x516c3b
push edi
lea ecx, [ebp - 0x40]
call fcn.0040bd70
and dword [ebp - 0x5c], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0xc
push str.StringFileInfo_
push eax
call fcn.0042ab6c
push 0x6a69b4
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0xd
push eax
call fcn.0040bca5
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xf
call fcn.00409de7
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x516be8
cmp dword [ebp - 0x5c], 0
jne 0x516c11
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
add edi, 0x18
cmp edi, ebx
jne 0x516b79
jmp 0x516c3b
mov ecx, dword [ebp - 0x68]
push dword [ebp - 0x60]
lea ecx, [ecx + 0x30]
call fcn.0040a2ee
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
mov edi, esi
cmp esi, ebx
je 0x516cdb
push edi
lea ecx, [ebp - 0x40]
call fcn.0040bd70
and dword [ebp - 0x5c], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x10
push str.StringFileInfo_
push eax
call fcn.0042ab6c
push 0x6a69d0
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x11
push eax
call fcn.0040bca5
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x13
call fcn.00409de7
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x516cb4
cmp dword [ebp - 0x5c], 0
jne 0x516ce3
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
add edi, 0x18
cmp edi, ebx
jne 0x516c45
mov edi, dword [ebp - 0x68]
jmp 0x516da0
mov edi, dword [ebp - 0x68]
push dword [ebp - 0x60]
lea ecx, [edi + 0x48]
call fcn.0040a2ee
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
jmp 0x516da0
push esi
lea ecx, [ebp - 0x40]
call fcn.0040bd70
and dword [ebp - 0x5c], 0
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x58]
mov byte [ebp - 4], 0x14
push str.StringFileInfo_
push eax
call fcn.0042ab6c
push 0x6a69f4
push eax
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 0x15
push eax
call fcn.0040bca5
add esp, 0x18
push 0
push 1
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0x17
call fcn.00409de7
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x5c]
push ecx
lea ecx, [ebp - 0x60]
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
push dword [ebp - 0x64]
call sub.VERSION.dll_VerQueryValueW
test eax, eax
je 0x516d81
cmp dword [ebp - 0x5c], 0
jne 0x516daa
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 1
call fcn.00409de7
add esi, 0x18
cmp esi, ebx
jne 0x516d12
jmp 0x516dcd
push dword [ebp - 0x60]
lea ecx, [edi + 0x60]
call fcn.0040a2ee
push 0
push 1
lea ecx, [ebp - 0x28]
call fcn.00409de7
push 0
push 1
lea ecx, [ebp - 0x40]
call fcn.00409de7
lea ecx, [ebp - 0x80]
call fcn.00409ec4
push dword [ebp - 0x64]
call fcn.005b4857
pop ecx
mov eax, edi
call fcn.005b4759
ret