It's not a string but a byte array:
lvSortAsc db MbMaxLvCols dup(0) ; max columns
There is often no real difference, but in this case it is an array of flags:
.if [ecx.NMHDR.code]==LVN_COLUMNCLICK
mov eax, [ecx.NM_LISTVIEW.iSubItem]
not lvSortAsc[eax] ; invert the flag
invoke SendMessage, hList, LVM_SORTITEMS, eax, LvSbc
...
cmp lvSortAsc[edx], 0
.if Zero?
neg eax ; reverse direction
.endif