Function at 0x4d3c30
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x19c
push esi
mov byte [ebp - 0x129], 0x73
movsx eax, byte [ebp - 0x129]
cmp eax, 0x67
jl 0x4d3c97
movsx ecx, word [ebp + 8]
cmp ecx, 0x687
jg 0x4d3c8b
mov edx, 0xa4f
mov word [ebp - 0x150], dx
mov ax, word [ebp + 8]
mov word [ebp - 0x16c], ax
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x70], ecx
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x124], edx
lea eax, [ebp - 0x150]
mov dword [ebp - 0x158], eax
mov cl, byte [ebp - 0x129]
mov byte [ebp - 0x165], cl
mov edx, dword [ebp + 0x10]
add edx, 0x1698
cmp edx, dword [ebp - 0x70]
je 0x4d3cf0
mov al, byte [0x4dd248]
mov byte [ebp - 0x65], al
mov ecx, dword [ebp - 0x70]
mov dword [ebp - 0x128], ecx
movzx edx, byte [ebp - 0x65]
sub edx, 0x31
movzx eax, byte [0x4dd248]
cmp edx, eax
jle 0x4d3cf0
mov ecx, dword [ebp + 0xc]
push ecx
movzx edx, byte [ebp - 0x65]
push edx
mov eax, dword [ebp - 0x124]
push eax
movzx ecx, word [ebp - 0x16c]
push ecx
movzx edx, word [ebp - 0x16c]
push edx
call fcn.004d3a90
add esp, 0x14
mov eax, dword [ebp - 0x124]
mov dword [ebp - 0x154], eax
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x134], ecx
lea edx, [ebp - 0x65]
mov dword [ebp - 0x14], edx
mov ax, word [ebp - 0x16c]
mov word [ebp - 0x120], ax
mov cl, byte [ebp - 0x165]
mov byte [ebp - 0x135], cl
movsx edx, byte [ebp - 0x129]
movsx eax, byte [ebp - 0x135]
and edx, eax
movsx ecx, byte [ebp - 0x165]
cmp edx, ecx
jg 0x4d42d4
movsx edx, word [ebp - 0x16c]
movsx ecx, word [ebp - 0x120]
sar edx, cl
movsx eax, word [ebp + 8]
cmp edx, eax
je 0x4d3d6b
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.00402350
add esp, 4
mov edx, dword [ebp - 0x70]
xor edx, dword [ebp - 0x128]
cmp edx, dword [ebp + 0x10]
je 0x4d3e4c
mov eax, dword [ebp - 0x124]
mov dword [ebp + 0xc], eax
lea ecx, [ebp - 0x124]
push ecx
push 0x70
push 0x58
mov edx, dword [ebp - 0x178]
push edx
call sub.VERSION.dll_GetFileVersionInfoA
mov dword [ebp - 0x170], eax
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x17c], eax
cmp dword [ebp - 0x17c], 0xd0e
je 0x4d3dc9
cmp dword [ebp - 0x17c], 0x4af6
je 0x4d3de6
jmp 0x4d3e4c
mov ecx, dword [ebp - 0x134]
movzx edx, word [ecx]
movzx eax, word [ebp - 0x150]
or edx, eax
mov ecx, dword [ebp - 0x158]
mov word [ecx], dx
jmp 0x4d3e4c
mov edx, dword [ebp - 0x134]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x150]
add eax, ecx
mov edx, dword [ebp - 0x158]
movzx ecx, word [edx]
cmp eax, ecx
jge 0x4d3e46
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
movzx ecx, byte [ebp - 0x65]
and eax, ecx
mov edx, dword [ebp - 0x14]
mov byte [edx], al
mov eax, dword [ebp - 0x128]
sub eax, dword [ebp + 0x10]
mov dword [ebp - 0x70], eax
lea ecx, [ebp - 0x60]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x13c], eax
movzx edx, byte [ebp - 0x65]
movzx eax, byte [0x4dd248]
add edx, eax
mov ecx, dword [ebp - 0x14]
mov byte [ecx], dl
jmp 0x4d3e4c
mov edx, dword [ebp - 0x70]
mov dword [ebp + 0x10], edx
lea eax, [ebp - 0x65]
mov dword [ebp - 0x164], eax
mov ecx, dword [ebp - 0x128]
mov dword [ebp - 0x180], ecx
cmp dword [ebp - 0x180], 0
je 0x4d3e7f
cmp dword [ebp - 0x180], 0x2407
je 0x4d3fe1
jmp 0x4d3ff9
mov dl, byte [ebp - 0x135]
mov byte [ebp - 0x184], dl
cmp byte [ebp - 0x184], 0x4f
je 0x4d3ea2
cmp byte [ebp - 0x184], 0x73
je 0x4d3f1a
jmp 0x4d3fdf
mov eax, dword [ebp - 0x134]
movzx ecx, word [eax]
mov edx, dword [ebp - 0x158]
movzx eax, word [edx]
add ecx, eax
mov word [ebp - 0x150], cx
mov ecx, dword [ebp - 0x124]
sub ecx, dword [ebp + 0xc]
mov dword [ebp - 0x154], ecx
lea edx, [ebp - 0x150]
push edx
mov eax, dword [ebp - 0x10]
push eax
mov ecx, dword [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x174]
push eax
mov ecx, dword [ebp - 0x140]
push ecx
mov edx, dword [ebp - 0x10]
push edx
push 0x10
call sub.VERSION.dll_VerInstallFileA
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x164]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x65]
shl edx, cl
mov eax, dword [ebp - 0x164]
mov byte [eax], dl
jmp 0x4d3fdf
movsx ecx, word [ebp - 0x120]
mov dword [ebp - 0x188], ecx
cmp dword [ebp - 0x188], 0
je 0x4d3f35
jmp 0x4d3fcd
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0x18c], edx
cmp dword [ebp - 0x18c], 0xf0b
je 0x4d3f5b
cmp dword [ebp - 0x18c], 0x3e1d
je 0x4d3fb0
jmp 0x4d3fcb
mov eax, dword [ebp - 0x128]
push eax
mov ecx, dword [ebp - 0x124]
push ecx
movzx edx, word [ebp + 8]
push edx
call fcn.004d3c30
add esp, 0xc
movzx eax, byte [ebp - 0x65]
movzx ecx, byte [0x4dd248]
sar eax, cl
mov ecx, dword [ebp - 0x14]
mov byte [ecx], al
movsx edx, byte [ebp - 0x165]
movsx eax, byte [ebp - 0x135]
or edx, eax
mov byte [ebp - 0x129], dl
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.COMDLG32.dll_PrintDlgA]
mov dword [ebp - 0x64], eax
jmp 0x4d3fcb
mov edx, dword [ebp - 0x158]
movzx eax, word [edx]
movzx ecx, word [ebp - 0x150]
xor eax, ecx
mov edx, dword [ebp - 0x134]
mov word [edx], ax
jmp 0x4d3fdf
mov eax, dword [ebp - 0x14]
movzx ecx, byte [eax]
movzx edx, byte [0x4dd248]
and ecx, edx
mov byte [ebp - 0x65], cl
jmp 0x4d3ff9
mov eax, dword [ebp + 0xc]
push eax
call fcn.004d3a60
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0x154]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp - 0x128]
cmp edx, dword [ebp - 0x70]
jge 0x4d406b
mov al, byte [ebp - 0x135]
mov byte [ebp - 0x190], al
cmp byte [ebp - 0x190], 0x51
je 0x4d401e
jmp 0x4d405f
lea ecx, [ebp - 0x60]
push ecx
lea edx, [ebp - 0x150]
push edx
mov eax, dword [ebp - 0x15c]
push eax
lea ecx, [ebp - 0x65]
push ecx
call sub.VERSION.dll_VerQueryValueA
mov dword [ebp - 0x170], eax
movzx edx, byte [ebp - 0x65]
movzx eax, byte [0x4dd248]
add edx, eax
mov ecx, dword [ebp - 0x14]
mov byte [ecx], dl
mov edx, dword [ebp + 0x10]
sub edx, dword [ebp - 0x70]
mov dword [ebp - 0x128], edx
jmp 0x4d406b
mov eax, dword [ebp - 0x70]
push eax
call fcn.00402350
add esp, 4
lea ecx, [ebp + 0xc]
mov dword [ebp - 0x78], ecx
lea edx, [ebp - 0x128]
mov dword [ebp - 0x11c], edx
mov al, byte [ebp - 0x65]
mov byte [ebp - 0x145], al
lea ecx, [ebp - 0x150]
mov dword [ebp - 0x160], ecx
mov edx, dword [ebp - 0x128]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x78]
mov ecx, dword [eax]
and ecx, dword [ebp - 0x154]
mov dword [ebp - 0x124], ecx
mov edx, dword [ebp - 0x78]
mov eax, dword [edx]
add eax, dword [ebp - 0x124]
mov ecx, dword [ebp + 0xc]
sub ecx, dword [ebp - 4]
cmp eax, ecx
jb 0x4d42a4
lea edx, [ebp - 0x70]
mov dword [ebp - 0x144], edx
movzx ecx, word [ebp - 0x150]
mov edx, dword [ebp - 0x160]
movzx eax, word [edx]
sub ecx, eax
mov edx, dword [ebp - 0x134]
movzx eax, word [edx]
mov edx, dword [ebp - 0x158]
movzx esi, word [edx]
cdq
idiv esi
cmp ecx, eax
je 0x4d4292
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
mov dword [ebp - 0x194], ecx
cmp dword [ebp - 0x194], 0
je 0x4d41b0
cmp dword [ebp - 0x194], 0x303f
je 0x4d4129
jmp 0x4d4292
mov dl, byte [ebp - 0x65]
mov byte [ebp - 0x198], dl
cmp byte [ebp - 0x198], 0x1f
je 0x4d4146
cmp byte [ebp - 0x198], 0xc4
je 0x4d4182
jmp 0x4d41ab
mov eax, dword [ebp - 0x14]
movzx edx, byte [eax]
movzx ecx, byte [ebp - 0x145]
sar edx, cl
mov byte [ebp - 0x65], dl
mov eax, dword [ebp - 0x158]
movzx edx, word [eax]
mov eax, dword [ebp - 0x160]
movzx ecx, word [eax]
shl edx, cl
mov word [ebp - 0x150], dx
mov ecx, dword [ebp - 0x78]
mov edx, dword [ecx]
or edx, dword [ebp - 4]
mov eax, dword [ebp - 0x78]
mov dword [eax], edx
jmp 0x4d41ab
mov ecx, dword [ebp - 0x70]
push ecx
mov edx, dword [ebp - 0x11c]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x144]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x70]
push eax
mov ecx, dword [ebp - 0x128]
push ecx
call fcn.00402d00
add esp, 0x14
jmp 0x4d4292
mov edx, dword [ebp - 0x144]
mov eax, dword [ebp - 0x70]
xor eax, dword [edx]
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x128]
and edx, dword [ecx]
cmp eax, edx
jne 0x4d4292
mov eax, dword [ebp - 0x164]
movzx ecx, byte [eax]
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
imul ecx, eax
movzx edx, byte [ebp - 0x145]
movzx eax, byte [ebp - 0x65]
add edx, eax
cmp ecx, edx
jle 0x4d4292
mov cl, byte [ebp - 0x165]
mov byte [ebp - 5], cl
lea edx, [ebp - 4]
mov dword [ebp - 0x74], edx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [ebp - 0x144]
mov edx, dword [eax]
sub edx, dword [ecx]
mov dword [ebp - 0x128], edx
movzx eax, word [ebp - 0x150]
mov dword [ebp - 0x19c], eax
cmp dword [ebp - 0x19c], 0x567
je 0x4d4238
jmp 0x4d4292
lea ecx, [ebp - 0xd0]
push ecx
call dword [sym.imp.COMDLG32.dll_GetSaveFileNameA]
mov dword [ebp - 0x170], eax
mov edx, dword [ebp - 0x14]
movzx eax, byte [edx]
mov ecx, dword [ebp - 0x164]
movzx edx, byte [ecx]
add eax, edx
mov ecx, dword [ebp - 0x14]
mov byte [ecx], al
mov edx, dword [ebp - 0x134]
movzx eax, word [edx]
mov ecx, dword [ebp - 0x158]
movzx edx, word [ecx]
sub eax, edx
mov word [ebp - 0x150], ax
movzx eax, byte [ebp - 5]
push eax
mov edx, dword [ebp - 0x130]
mov ecx, dword [ebp - 0x128]
call fcn.00403500
lea ecx, [ebp - 0x154]
mov dword [ebp - 0x6c], ecx
mov edx, dword [ebp - 0xc]
mov dword [ebp - 0x14c], edx
mov eax, dword [ebp - 0x11c]
mov ecx, dword [eax]
add ecx, dword [ebp - 0xc]
mov edx, dword [ebp - 0x11c]
mov dword [edx], ecx
push 0x4a
mov eax, dword [ebp - 0x140]
push eax
mov ecx, dword [ebp - 0x15c]
push ecx
call dword [sym.imp.COMDLG32.dll_GetFileTitleA]
mov word [ebp - 0x130], ax
mov edx, dword [ebp - 0x70]
mov ecx, dword [ebp + 0x10]
shl edx, cl
mov dword [ebp - 0x128], edx
mov eax, 0x96
pop esi
mov esp, ebp
pop ebp
ret