I thought this one was worth the effort, its an algo that only removes the leading and trailing double quote. You could probably get it a bit faster but I doubt its worth the effort.
; «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
include \masm64\include64\masm64rt.inc
.data
cln db 34," How D, I am quoted text. ",34,0
pcl dq cln
.code
; «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
entry_point proc
USING r12
SaveRegs
conout pcl,lf ; before
rcall unquote,pcl ; strip the leading and trailing quotes
rcall szMono,pcl ; monospace the string
conout pcl,lf ; after
waitkey
RestoreRegs
.exit
entry_point endp
; «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
NOSTACKFRAME
unquote proc
; -------------------------------------------------------
; remove single leading and single trailing double quotes
; -------------------------------------------------------
mov r10, rcx ; source and dest are same address
mov r11, rcx
sub r10, 1
@@:
add r10, 1
cmp BYTE PTR [r10], 34 ; strip the leading quote
je @B
@@:
add r10, 1
movzx rax, BYTE PTR [r10] ; read byte from 1st address
test rax, rax ; safety margin for text with no quotes
jz @F ; exit on ASCII zero
mov BYTE PTR [r11], al ; copy byte to 2nd address
add r11, 1
cmp rax, 34 ; test if its a quote
jne @B
mov BYTE PTR [r11-1], 0 ; terminate and overwrite trailing quote
@@:
ret
unquote endp
STACKFRAME
; «»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»«»
end