Function at 0x47a952
Capabilities:
Get file version info

Disassembly:
mov eax, 0x537a64
call fcn.004eec88
sub esp, 0x5c
push ebx
push esi
xor ebx, ebx
push edi
cmp dword [ebp + 8], ebx
mov dword [ebp - 0x10], esp
je 0x47a97e
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebx
jg 0x47a985
xor eax, eax
jmp 0x47aca1
push esi
call fcn.00509cd1
pop ecx
mov dword [ebp - 0x18], eax
push eax
push esi
push ebx
mov dword [ebp - 4], ebx
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoA
test eax, eax
jne 0x47a9b2
lea eax, [ebp - 0x24]
push 0x563008
push eax
mov dword [ebp - 0x24], ebx
call fcn.004efcd4
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push str.VarFileInfoTranslation
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x47a9dc
lea eax, [ebp - 0x28]
push 0x563008
push eax
mov dword [ebp - 0x28], ebx
call fcn.004efcd4
mov eax, dword [ebp + 8]
mov ecx, dword [0x5927d4]
mov eax, dword [eax]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x2c], eax
movzx esi, word [ebp - 0x2a]
movzx edi, ax
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xCompanyName
push eax
mov byte [ebp - 4], 1
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47aa30
push dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xLegalCopyRight
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47aa6b
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 4]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductName
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47aaa6
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x14]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductVersion
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47aae1
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x18]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileDescription
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47ab1c
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 8]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileVersion
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47ab57
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0xc]
call fcn.0050a119
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xInternalName
push eax
mov dword [ebp + 8], ebx
call fcn.00505f09
add esp, 0x10
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x14]
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
je 0x47ab94
mov esi, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [esi + 0x10]
call fcn.0050a119
jmp 0x47ab97
mov esi, dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.DLL_GetSystemDefaultLangID]
cmp ax, 0x404
je 0x47abd4
push 0x588c4c
mov ecx, esi
call fcn.00505b83
cmp eax, ebx
jge 0x47abd4
push str.HEXIN
mov ecx, esi
call fcn.00505b83
cmp eax, ebx
jge 0x47abd4
lea eax, [ebp - 0x30]
push 0x563008
push eax
mov dword [ebp - 0x30], ebx
call fcn.004efcd4
lea eax, [ebp - 0x20]
push 3
push eax
lea ecx, [esi + 0x10]
call fcn.00505ae9
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 2
cmp dword [eax - 8], ebx
lea ebx, [esi + 0x1c]
jne 0x47ac00
push 0x588c48
push ebx
call fcn.00505f09
pop ecx
pop ecx
jmp 0x47ac0f
push eax
push str.__3s
push ebx
call fcn.00505f09
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push 0x58435c
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x47ac37
push 0x588c3c
lea ecx, [ebp - 0x20]
call fcn.0050a119
jmp 0x47ac65
mov esi, dword [ebp + 8]
push 0xd
pop ecx
lea edi, [ebp - 0x68]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x54]
shr eax, 0x10
push eax
mov eax, dword [ebp - 0x58]
movzx ecx, ax
shr eax, 0x10
push ecx
push eax
lea eax, [ebp - 0x20]
push str._d._02d._02d
push eax
call fcn.00505f09
add esp, 0x14
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.0050a3a8
lea ecx, [ebp - 0x20]
mov dword [ebp + 0xc], 1
mov byte [ebp - 4], 1
call fcn.00509f90
and byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00509f90
cmp dword [ebp - 0x18], 0
je 0x47ac9e
push dword [ebp - 0x18]
call fcn.00509cfa
pop ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
leave
ret