Function at 0x478f75
Capabilities:
Get file version info

Disassembly:
mov eax, 0x533360
call fcn.004ea774
sub esp, 0x5c
push ebx
push esi
xor ebx, ebx
push edi
cmp dword [ebp + 8], ebx
mov dword [ebp - 0x10], esp
je 0x478fa1
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebx
jg 0x478fa8
xor eax, eax
jmp 0x4792c4
push esi
call fcn.00505819
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 0x478fd5
lea eax, [ebp - 0x24]
push 0x55daa0
push eax
mov dword [ebp - 0x24], ebx
call fcn.004eb884
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 0x478fff
lea eax, [ebp - 0x28]
push 0x55daa0
push eax
mov dword [ebp - 0x28], ebx
call fcn.004eb884
mov eax, dword [ebp + 8]
mov ecx, dword [0x58c61c]
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.00501ac9
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 0x479053
push dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xLegalCopyRight
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x47908e
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 4]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductName
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x4790c9
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x14]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductVersion
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x479104
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x18]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileDescription
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x47913f
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 8]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileVersion
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x47917a
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0xc]
call fcn.00505c61
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xInternalName
push eax
mov dword [ebp + 8], ebx
call fcn.00501ac9
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 0x4791b7
mov esi, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [esi + 0x10]
call fcn.00505c61
jmp 0x4791ba
mov esi, dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
cmp ax, 0x404
je 0x4791f7
push 0x582b34
mov ecx, esi
call fcn.00501743
cmp eax, ebx
jge 0x4791f7
push str.HEXIN
mov ecx, esi
call fcn.00501743
cmp eax, ebx
jge 0x4791f7
lea eax, [ebp - 0x30]
push 0x55daa0
push eax
mov dword [ebp - 0x30], ebx
call fcn.004eb884
lea eax, [ebp - 0x20]
push 3
push eax
lea ecx, [esi + 0x10]
call fcn.005016a9
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 2
cmp dword [eax - 8], ebx
lea ebx, [esi + 0x1c]
jne 0x479223
push 0x582b30
push ebx
call fcn.00501ac9
pop ecx
pop ecx
jmp 0x479232
push eax
push str.__3s
push ebx
call fcn.00501ac9
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push 0x57e33c
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x47925a
push 0x582b24
lea ecx, [ebp - 0x20]
call fcn.00505c61
jmp 0x479288
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.00501ac9
add esp, 0x14
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.00505ef0
lea ecx, [ebp - 0x20]
mov dword [ebp + 0xc], 1
mov byte [ebp - 4], 1
call fcn.00505ad8
and byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00505ad8
cmp dword [ebp - 0x18], 0
je 0x4792c1
push dword [ebp - 0x18]
call fcn.00505842
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