Не могу понять алгоритм вычисления
movsx eax,byte ptr ds:[r9+2]
movsx ecx,byte ptr ds:[r9+3]
add r11d,1
add ecx,eax
movsx eax,byte ptr ds:[r9+1]
add rbx,4
add ecx,eax
movsx eax,byte ptr ds:[r9]
add r9,5
lea ecx,qword ptr ds:[rcx+rax-C0]
mov dword ptr ds:[rbx-4],ecx
add r10d,ecx
берется код 4 и 3 символа блока, складывается, потом добавляется код 2 символа, первого и всё это помещается в ecx командой lea ecx,qword ptr ds:[rcx+rax-C0], только вот операция происходит не арифметическая а какая-то сдвиговая что ли, т.е. 30+30 - 5 (например) не равно 55.
Уже прочитал все что связанно с lea на coderoad, но так и не понял
можно ли по полкам разложить lea ecx,qword ptr ds:[rcx+rax-C0]?