Rating:

parser.py
```
import sys

values = []
for line in sys.stdin:
op, dummy, val = line.split(',')

if val.find('ffffffffffffff') != -1:
val = (256 - int(val.replace('ffffffffffffff', ''), 16)) * -1
else:
val = int(val, 16)

if op == 'cmp':
result = val
for value in values:
result = result + value
sys.stdout.write(chr(result))

values = []
else:
if op == 'add':
val = val * -1

values = values + [val]
```

`for file in $(ls);do answer=$(objdump -M intel -d $file | grep -P "[add|sub|cmp]\s+rdi,0x" | cut -c33-80 | sed 's/ /,/' | python parser.py);echo "'$file': '$answer',";done`

Original writeup (https://github.com/sinfocol/ctfs/tree/master/writeups/2017/defcon-qualifiers/crackme-2000).