Function at 0x47e204
Capabilities:
Get file version info

Disassembly:
mov eax, 0x5416c4
call fcn.004f8378
sub esp, 0x5c
push ebx
push esi
xor ebx, ebx
push edi
cmp dword [ebp + 8], ebx
mov dword [ebp - 0x10], esp
je 0x47e230
lea eax, [ebp - 0x34]
push eax
push dword [ebp + 8]
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov esi, eax
cmp esi, ebx
jg 0x47e237
xor eax, eax
jmp 0x47e553
push esi
call fcn.00513471
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 0x47e264
lea eax, [ebp - 0x24]
push 0x56e680
push eax
mov dword [ebp - 0x24], ebx
call fcn.004f9484
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 0x47e28e
lea eax, [ebp - 0x28]
push 0x56e680
push eax
mov dword [ebp - 0x28], ebx
call fcn.004f9484
mov eax, dword [ebp + 8]
mov ecx, dword [0x59fe84]
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.0050f689
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 0x47e2e2
push dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xLegalCopyRight
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e31d
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 4]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductName
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e358
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x14]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xProductVersion
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e393
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0x18]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileDescription
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e3ce
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 8]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xFileVersion
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e409
mov eax, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [eax + 0xc]
call fcn.005138b9
push esi
push edi
lea eax, [ebp - 0x14]
push str.StringFileInfo_04x_04xInternalName
push eax
mov dword [ebp + 8], ebx
call fcn.0050f689
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 0x47e446
mov esi, dword [ebp + 0xc]
push dword [ebp + 8]
lea ecx, [esi + 0x10]
call fcn.005138b9
jmp 0x47e449
mov esi, dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
cmp ax, 0x404
je 0x47e486
push 0x596124
mov ecx, esi
call fcn.0050f303
cmp eax, ebx
jge 0x47e486
push str.HEXIN
mov ecx, esi
call fcn.0050f303
cmp eax, ebx
jge 0x47e486
lea eax, [ebp - 0x30]
push 0x56e680
push eax
mov dword [ebp - 0x30], ebx
call fcn.004f9484
lea eax, [ebp - 0x20]
push 3
push eax
lea ecx, [esi + 0x10]
call fcn.0050f269
mov eax, dword [ebp - 0x20]
mov byte [ebp - 4], 2
cmp dword [eax - 8], ebx
lea ebx, [esi + 0x1c]
jne 0x47e4b2
push 0x596120
push ebx
call fcn.0050f689
pop ecx
pop ecx
jmp 0x47e4c1
push eax
push str.__3s
push ebx
call fcn.0050f689
add esp, 0xc
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp + 8]
push eax
push 0x591374
push dword [ebp - 0x18]
call sub.VERSION.dll_VerQueryValueA
test eax, eax
jne 0x47e4e9
push 0x596114
lea ecx, [ebp - 0x20]
call fcn.005138b9
jmp 0x47e517
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.0050f689
add esp, 0x14
lea eax, [ebp - 0x20]
mov ecx, ebx
push eax
call fcn.00513b48
lea ecx, [ebp - 0x20]
mov dword [ebp + 0xc], 1
mov byte [ebp - 4], 1
call fcn.00513730
and byte [ebp - 4], 0
lea ecx, [ebp - 0x14]
call fcn.00513730
cmp dword [ebp - 0x18], 0
je 0x47e550
push dword [ebp - 0x18]
call fcn.0051349a
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