1) if ( *originalName ) при каких условиях оно срабатывает\не срабатывает.
Срабатывает, когда значение под указателем отличается от
0, не срабатывает - в противном случае.
2) while ( v6 ) как оно считает что пора бы и закончить?
Когда значение v6 становится равно
0.
3) v6 = (originalName++)[1] я так понимаю что тут берется первый элемент из originalName?
Второй элемент, относительно текущей позиции указателя
originalName (до инкремента).
4) unsigned __int16 есть ли аналог этому типу в jav'е?
Прямых аналогов нет (беззнаковых типов в принципе), но
long вместит все его значения.