use 5.20.0;

my %reg;

while(<>) {
    s/^(\w+)/\$reg{$1}/;
    s/(?<=if )(\w+)/\$reg{$1}/;
    s/dec/-=/;
    s/inc/+=/;
    eval;
}

use List::UtilsBy qw/ max_by /;
use List::AllUtils qw/ max /;

say max values %reg;