Function at 0x4eb0a0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x104
mov eax, dword [0x596c60]
xor eax, esp
mov dword [esp + 0x100], eax
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
cmp dword [ebx + 0x14], 8
jb 0x4eb0cb
mov eax, dword [ebx]
jmp 0x4eb0cd
mov eax, ebx
lea ecx, [esp + 0x24]
push ecx
push eax
call dword [sym.imp.VERSION.dll_GetFileVersionInfoSizeW]
mov esi, eax
test esi, esi
je 0x4eb35d
push esi
call fcn.004eac70
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
je 0x4eb2e4
cmp dword [ebx + 0x14], 8
jb 0x4eb102
mov ecx, dword [ebx]
jmp 0x4eb104
mov ecx, ebx
push eax
push esi
push 0
push ecx
call dword [sym.imp.VERSION.dll_GetFileVersionInfoW]
test eax, eax
je 0x4eb2e4
mov esi, dword [sym.imp.VERSION.dll_VerQueryValueW]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x20]
push eax
push str.VarFileInfoTranslation
push dword [esp + 0x20]
call esi
mov ecx, dword [esp + 0x1c]
movzx eax, word [ecx + 2]
push eax
movzx eax, word [ecx]
push eax
push str.StringFileInfo_04X_04XFileVersion
lea eax, [esp + 0x4c]
push 0x64
push eax
call fcn.004eb3d0
add esp, 0x14
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x20]
call esi
push dword [esp + 0x18]
mov ecx, edi
call fcn.0047c5b0
mov esi, dword [0x597f88]
cmp esi, 0x597f88
je 0x4eb1c5
test byte [esi + 0x1c], 1
je 0x4eb1c5
cmp byte [esi + 0x19], 2
jb 0x4eb1c5
cmp dword [edi + 0x14], 8
jb 0x4eb197
mov ecx, dword [edi]
jmp 0x4eb199
mov ecx, edi
cmp dword [ebx + 0x14], 8
jb 0x4eb1a3
mov eax, dword [ebx]
jmp 0x4eb1a5
mov eax, ebx
push ecx
push eax
push dword [esi + 0x14]
mov edx, 0x570840
mov ecx, 0xa
push dword [esi + 0x10]
call fcn.004eaef0
mov esi, dword [0x597f88]
add esp, 0x10
push 0xffffffffffffffff
mov eax, 0x309
mov ecx, edi
push 0x56cc08
mov dword [esp + 0x18], eax
call fcn.00485770
cmp eax, 0xffffffff
je 0x4eb2f4
cmp dword [edi + 0x14], 8
lea edx, [eax - 1]
mov dword [esp + 0xc], edx
jb 0x4eb1f6
mov ecx, dword [edi]
jmp 0x4eb1f8
mov ecx, edi
xor esi, esi
push edx
mov word [ecx + eax*2], si
mov ecx, edi
push 0x56cc08
call fcn.00485770
mov esi, eax
cmp esi, 0xffffffff
je 0x4eb2ee
mov edx, dword [esp + 0xc]
lea ecx, [esi + 1]
push edi
call fcn.004eb370
add esp, 4
test al, al
je 0x4eb2ee
lea eax, [esi - 1]
mov ecx, edi
push eax
push 0x56cc08
mov dword [esp + 0x14], eax
call fcn.00485770
mov esi, eax
cmp esi, 0xffffffff
je 0x4eb2ee
mov edx, dword [esp + 0xc]
lea ecx, [esi + 1]
push edi
call fcn.004eb370
add esp, 4
test al, al
je 0x4eb2ee
lea eax, [esi - 1]
mov ecx, edi
push eax
push 0x56cc08
mov dword [esp + 0x14], eax
call fcn.00485770
mov esi, eax
cmp esi, 0xffffffff
je 0x4eb2ee
mov edx, dword [esp + 0xc]
lea ecx, [esi + 1]
push edi
call fcn.004eb370
add esp, 4
test al, al
je 0x4eb2ee
dec esi
mov ecx, edi
push esi
push 0x56cc08
call fcn.00485770
cmp eax, 0xffffffff
je 0x4eb2ee
inc eax
mov edx, esi
push edi
mov ecx, eax
mov dword [esp + 0x10], eax
call fcn.004eb370
add esp, 4
test al, al
je 0x4eb2ee
push 0xffffffffffffffff
push dword [esp + 0x10]
lea eax, [esp + 0x30]
mov ecx, edi
push eax
call fcn.0047b0d0
push eax
mov ecx, edi
call fcn.0047b050
lea ecx, [esp + 0x28]
call fcn.0047b0a0
xor eax, eax
jmp 0x4eb2ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [esp + 0x10], eax
mov esi, dword [0x597f88]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x4eb30b
push eax
call fcn.00507b54
mov esi, dword [0x597f88]
add esp, 4
mov eax, dword [esp + 0x10]
cmp esi, 0x597f88
je 0x4eb348
test byte [esi + 0x1c], 1
je 0x4eb348
cmp byte [esi + 0x19], 2
jb 0x4eb348
cmp dword [edi + 0x14], 8
jb 0x4eb32b
mov edi, dword [edi]
cmp dword [ebx + 0x14], 8
jb 0x4eb333
mov ebx, dword [ebx]
push eax
push edi
push ebx
push dword [esi + 0x14]
push dword [esi + 0x10]
call fcn.004eafd0
mov eax, dword [esp + 0x24]
add esp, 0x14
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005072fd
mov esp, ebp
pop ebp
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, dword [0x597f88]
mov dword [esp + 0x10], eax
jmp 0x4eb30f