// File: /workspace/github_c_makefile_star2_O0/coyove[P]chann/./lib/unqlite/unqlite.c
// Function: VmJsonDequoteString
static void VmJsonDequoteString(const SyString *pStr, jx9_value *pWorker)
{
	const char *zIn = pStr->zString;
	const char *zEnd = &pStr->zString[pStr->nByte];
	const char *zCur;
	int c;
	/* Mark the value as a string */
	jx9_value_string(pWorker, "", 0); /* Empty string */
	for(;;){
		zCur = zIn;
		while( zIn < zEnd && zIn[0] != '\\' ){
			zIn++;
		}
		if( zIn > zCur ){
			/* Append chunk verbatim */
			jx9_value_string(pWorker, zCur, (int)(zIn-zCur));
		}
		zIn++;
		if( zIn >= zEnd ){
			/* End of the input reached */
			break;
		}
		c = zIn[0];
		/* Unescape the character */
		switch(c){
		case '"':  jx9_value_string(pWorker, (const char *)&c, (int)sizeof(char)); break;
		case '\\': jx9_value_string(pWorker, (const char *)&c, (int)sizeof(char)); break;
		case 'n':  jx9_value_string(pWorker, "\n", (int)sizeof(char)); break;
		case 'r':  jx9_value_string(pWorker, "\r", (int)sizeof(char)); break;
		case 't':  jx9_value_string(pWorker, "\t", (int)sizeof(char)); break;
		case 'f':  jx9_value_string(pWorker, "\f", (int)sizeof(char)); break;
		default:
			jx9_value_string(pWorker, (const char *)&c, (int)sizeof(char));
			break;
		}
		/* Advance the stream cursor */
		zIn++;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
addq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rdi
leaq 0x389a0(%rip), %rsi     # 0xc5b4b
xorl %edx, %edx
callq 0x56950
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rcx
xorl %eax, %eax
cmpq -0x20(%rbp), %rcx
movb %al, -0x2d(%rbp)
jae 0x8d1d9
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5c, %eax
setne %al
movb %al, -0x2d(%rbp)
movb -0x2d(%rbp), %al
testb $0x1, %al
jne 0x8d1e2
jmp 0x8d1f0
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x8d1ba
movq -0x18(%rbp), %rax
cmpq -0x28(%rbp), %rax
jbe 0x8d214
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
subq %rcx, %rax
movl %eax, %edx
callq 0x56950
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jb 0x8d22f
jmp 0x8d329
movq -0x18(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x34(%rbp)
subl $0x22, %eax
je 0x8d27f
jmp 0x8d246
movl -0x34(%rbp), %eax
subl $0x5c, %eax
je 0x8d296
jmp 0x8d250
movl -0x34(%rbp), %eax
subl $0x66, %eax
je 0x8d2ef
jmp 0x8d25e
movl -0x34(%rbp), %eax
subl $0x6e, %eax
je 0x8d2aa
jmp 0x8d268
movl -0x34(%rbp), %eax
subl $0x72, %eax
je 0x8d2c1
jmp 0x8d272
movl -0x34(%rbp), %eax
subl $0x74, %eax
je 0x8d2d8
jmp 0x8d306
movq -0x10(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq 0x39924(%rip), %rsi     # 0xc6bd9
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq 0x37099(%rip), %rsi     # 0xc4365
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq 0x320b9(%rip), %rsi     # 0xbf39c
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq 0x3816f(%rip), %rsi     # 0xc5469
movl $0x1, %edx
callq 0x56950
jmp 0x8d318
movq -0x10(%rbp), %rdi
leaq -0x2c(%rbp), %rsi
movl $0x1, %edx
callq 0x56950
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x8d1b2
addq $0x40, %rsp
popq %rbp
retq
nop