Function at 0x4294a0
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
mov al, byte [ebp + 0x10]
mov byte [ebp - 0xd9], al
lea ecx, [ebp - 0xd9]
mov dword [ebp - 0xf8], ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0xd9]
sub eax, ecx
movzx edx, byte [ebp + 0x10]
cmp eax, edx
jge 0x42950d
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
push ecx
movzx edx, byte [ebp - 0xd9]
push edx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
push ecx
mov edx, dword [ebp - 0xf8]
movzx eax, byte [edx]
push eax
mov ecx, dword [ebp - 0xf8]
movzx edx, byte [ecx]
push edx
call fcn.004f37e0
mov byte [ebp - 0x105], 0x41
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
movzx edx, byte [ebp + 0x10]
add ecx, edx
movzx eax, byte [ebp - 0xd9]
cmp ecx, eax
jne 0x429a04
mov cl, byte [ebp - 0x105]
mov byte [ebp - 0xf1], cl
mov dword [ebp - 0x10c], 0x541e
mov dx, word [ebp + 0xc]
mov word [ebp - 0x70], dx
mov ax, word [ebp - 0x70]
mov word [ebp - 0xe4], ax
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 0xfc], ecx
mov edx, dword [ebp - 0x10c]
mov dword [ebp - 0x11c], edx
cmp dword [ebp - 0x11c], 0x541e
je 0x429591
cmp dword [ebp - 0x11c], 0x6fcf
je 0x429967
jmp 0x4299e6
lea eax, [ebp - 0xe0]
mov dword [ebp - 0x7c], eax
mov ecx, 0x172
mov word [ebp - 0xe8], cx
mov dx, word [ebp - 0xe8]
mov word [ebp - 0x110], dx
mov al, byte [ebp - 0xd9]
mov byte [ebp - 0x120], al
cmp byte [ebp - 0x120], 0x5c
je 0x4295d7
cmp byte [ebp - 0x120], 0xfe
je 0x42964f
jmp 0x4296cd
mov cl, byte [ebp - 0xd9]
mov byte [ebp + 0x10], cl
lea edx, [ebp - 0x74]
push edx
mov eax, dword [ebp - 0xf0]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0x104]
push edx
mov eax, dword [ebp - 0x104]
push eax
mov ecx, dword [ebp - 0x64]
push ecx
mov edx, dword [ebp - 0xf0]
push edx
push 0xfd
call sub.VERSION.dll_VerInstallFileA
mov dword [ebp - 0x118], eax
movzx eax, word [ebp - 0xe4]
push eax
mov ecx, dword [ebp - 0x7c]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
push ecx
movzx edx, word [ebp - 0x70]
push edx
mov eax, dword [ebp - 0x7c]
mov ecx, dword [eax]
push ecx
call fcn.004294a0
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx]
add eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x7c]
mov dword [ecx], eax
jmp 0x4296cd
mov edx, dword [ebp - 0x10c]
and edx, 0xe6d
mov dword [ebp - 0x10c], edx
movzx eax, word [ebp - 0x70]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
movzx edx, byte [ebp - 0xd9]
push edx
movzx eax, word [ebp - 0x70]
push eax
mov ecx, dword [ebp + 8]
push ecx
call fcn.004294a0
mov edx, dword [ebp - 0xfc]
mov dword [ebp - 0xe0], edx
mov eax, dword [ebp - 0xf8]
mov cl, byte [eax]
mov byte [ebp + 0x10], cl
movzx edx, word [ebp - 0xe8]
add edx, 0xa6c
mov word [ebp - 0x110], dx
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
movzx edx, byte [ebp + 0x10]
sub ecx, edx
mov byte [ebp - 0xd9], cl
lea eax, [ebp - 0x60]
push eax
call dword [sym.imp.COMDLG32.dll_PageSetupDlgA]
mov dword [ebp - 4], eax
movsx ecx, byte [ebp - 0xf1]
sub ecx, 0x6a
movsx edx, byte [ebp - 0x105]
cmp ecx, edx
jl 0x42973a
mov eax, dword [ebp - 0xfc]
add eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x118]
xor ecx, dword [ebp - 0xe0]
cmp eax, ecx
ja 0x42973a
mov edx, dword [ebp - 0xe0]
mov ecx, dword [ebp - 0xfc]
shl edx, cl
mov eax, dword [ebp - 0x7c]
mov dword [eax], edx
movzx edx, byte [ebp - 0xd9]
movzx ecx, byte [ebp + 0x10]
sar edx, cl
mov eax, dword [ebp - 0xf8]
mov byte [eax], dl
mov ecx, dword [ebp - 0xf8]
mov dl, byte [ecx]
mov byte [ebp + 0x10], dl
call dword [sym.imp.COMDLG32.dll_CommDlgExtendedError]
mov dword [ebp - 0x118], eax
movzx eax, word [ebp - 0x110]
or eax, 0xe0a
movzx ecx, word [ebp - 0xe8]
cmp eax, ecx
jl 0x4298b6
movsx edx, word [ebp - 0xe4]
movsx eax, word [ebp - 0x70]
add edx, eax
movsx ecx, word [ebp + 0xc]
movsx eax, word [ebp + 0x18]
and ecx, eax
cmp edx, ecx
jg 0x429836
mov ecx, dword [ebp - 0x10c]
mov dword [ebp - 0x78], ecx
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx]
mov ecx, dword [ebp + 8]
shl eax, cl
mov dword [ebp - 0xfc], eax
movsx ecx, word [ebp - 0x70]
mov dword [ebp - 0x124], ecx
cmp dword [ebp - 0x124], 0x2cd
je 0x429821
cmp dword [ebp - 0x124], 0x492
je 0x4297b4
jmp 0x429836
mov edx, dword [ebp - 0x10c]
xor edx, 0x4431
mov dword [ebp - 0x78], edx
movsx eax, word [ebp - 0xe4]
mov dword [ebp - 0x128], eax
cmp dword [ebp - 0x128], 0x152
je 0x4297ff
cmp dword [ebp - 0x128], 0x448
je 0x4297ea
jmp 0x42981f
movzx ecx, word [ebp - 0xe8]
push ecx
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x78]
call fcn.004291c0
jmp 0x42981f
lea edx, [ebp - 0xf1]
push edx
push 0xc6
push 0x33
mov eax, dword [ebp - 0x100]
push eax
call sub.VERSION.dll_GetFileVersionInfoA
mov dword [ebp - 0xec], eax
jmp 0x429836
movzx edx, byte [ebp - 0xd9]
movzx ecx, byte [ebp + 0x10]
sar edx, cl
mov eax, dword [ebp - 0xf8]
mov byte [eax], dl
mov ecx, dword [ebp - 0x10c]
sub ecx, 0x30a3
mov dword [ebp - 0x10c], ecx
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx]
add eax, dword [ebp + 0x14]
mov ecx, dword [ebp - 0x7c]
mov dword [ecx], eax
mov edx, dword [ebp - 0xfc]
mov dword [ebp + 0x14], edx
lea eax, [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0x68]
push ecx
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x68]
push eax
mov ecx, dword [ebp - 0xf0]
push ecx
mov edx, dword [ebp - 0x64]
push edx
mov eax, dword [ebp - 0x64]
push eax
push 0xd7
call sub.VERSION.dll_VerInstallFileA
mov dword [ebp - 0xfc], eax
movzx ecx, word [ebp - 0x110]
sub ecx, 0x86d
mov word [ebp - 0xe8], cx
movzx edx, byte [ebp - 0xd9]
movzx eax, byte [ebp + 0x10]
add edx, eax
mov ecx, dword [ebp - 0xf8]
mov byte [ecx], dl
movzx edx, byte [ebp - 0xd9]
movzx eax, byte [ebp + 0x10]
and edx, eax
mov ecx, dword [ebp - 0xf8]
mov byte [ecx], dl
movzx edx, byte [ebp + 0x10]
mov eax, dword [ebp - 0xf8]
movzx ecx, byte [eax]
sub edx, ecx
mov byte [ebp - 0xd9], dl
movzx edx, word [ebp - 0x110]
add edx, 0x35a
mov word [ebp - 0xe8], dx
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0x12c], eax
cmp dword [ebp - 0x12c], 0x25b3
je 0x42990e
jmp 0x42995d
lea ecx, [ebp - 0xd8]
push ecx
lea edx, [ebp - 0xd9]
push edx
mov eax, dword [ebp - 0x114]
push eax
lea ecx, [ebp - 0x7c]
push ecx
call sub.VERSION.dll_VerQueryValueA
mov dword [ebp - 0xec], eax
mov edx, dword [ebp - 0x7c]
mov eax, dword [edx]
sub eax, dword [ebp - 0xfc]
mov ecx, dword [ebp - 0x7c]
mov dword [ecx], eax
movzx edx, word [ebp - 0x110]
push edx
mov edx, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x10c]
call fcn.004291c0
jmp 0x429965
mov ax, word [ebp + 0xc]
mov word [ebp + 0x18], ax
jmp 0x4299e6
movsx ecx, word [ebp - 0x70]
movsx edx, word [ebp + 0x18]
or ecx, edx
mov word [ebp - 0xe4], cx
movzx eax, word [ebp + 0x18]
push eax
mov ecx, dword [ebp - 0xfc]
push ecx
movzx edx, byte [ebp - 0xd9]
push edx
movzx eax, word [ebp + 0x18]
push eax
mov ecx, dword [ebp - 0xfc]
push ecx
call fcn.004294a0
lea edx, [ebp - 0xfc]
push edx
mov eax, dword [ebp - 0x6c]
push eax
call sub.VERSION.dll_GetFileVersionInfoSizeA
mov dword [ebp - 0xe0], eax
movzx edx, byte [ebp - 0xd9]
movzx ecx, byte [ebp + 0x10]
sar edx, cl
mov eax, dword [ebp - 0xf8]
mov byte [eax], dl
movzx ecx, byte [ebp - 0xd9]
movzx edx, byte [ebp + 0x10]
sub ecx, edx
mov eax, dword [ebp - 0xf8]
mov byte [eax], cl
mov ecx, dword [ebp + 8]
mov dword [ebp - 0xe0], ecx
mov dl, byte [ebp - 0xd9]
mov byte [ebp + 0x10], dl
movzx eax, byte [ebp + 0x10]
mov ecx, dword [ebp - 0xf8]
movzx ecx, byte [ecx]
shl eax, cl
mov byte [ebp - 0xd9], al
lea edx, [ebp - 0xd8]
push edx
call dword [sym.imp.COMDLG32.dll_PageSetupDlgA]
mov dword [ebp - 0x74], eax
movsx eax, byte [ebp - 0x105]
and eax, 0x35
mov byte [ebp - 0x105], al
movzx ecx, byte [ebp - 0xd9]
movzx edx, byte [ebp + 0x10]
xor ecx, edx
mov eax, dword [ebp - 0xf8]
mov byte [eax], cl
mov ecx, dword [ebp + 0x14]
push ecx
movzx edx, word [ebp + 0x18]
push edx
mov eax, dword [ebp + 0x14]
push eax
push 0xcd
call fcn.00428a30
mov eax, 0x9f
mov esp, ebp
pop ebp
ret 0x14