// File: /workspace/github_c_makefile_star2_O0/zenkj[P]luajit-arm64/src/host/minilua.c
// Function: read_string
static void read_string(LexState*ls,int del,SemInfo*seminfo){
save_and_next(ls);
while(ls->current!=del){
switch(ls->current){
case(-1):
luaX_lexerror(ls,"unfinished string",TK_EOS);
continue;
case'\n':
case'\r':
luaX_lexerror(ls,"unfinished string",TK_STRING);
continue;
case'\\':{
int c;
next(ls);
switch(ls->current){
case'a':c='\a';break;
case'b':c='\b';break;
case'f':c='\f';break;
case'n':c='\n';break;
case'r':c='\r';break;
case't':c='\t';break;
case'v':c='\v';break;
case'\n':
case'\r':save(ls,'\n');inclinenumber(ls);continue;
case(-1):continue;
default:{
if(!isdigit(ls->current))
save_and_next(ls);
else{
int i=0;
c=0;
do{
c=10*c+(ls->current-'0');
next(ls);
}while(++i<3&&isdigit(ls->current));
if(c>UCHAR_MAX)
luaX_lexerror(ls,"escape sequence too large",TK_STRING);
save(ls,c);
}
continue;
}
}
save(ls,c);
next(ls);
continue;
}
default:
save_and_next(ls);
}
}
save_and_next(ls);
seminfo->ts=luaX_newstring(ls,luaZ_buffer(ls->buff)+1,
luaZ_bufflen(ls->buff)-2);
}

// Assembly:
subq $0x48, %rsp
movq %rdi, 0x40(%rsp)
movl %esi, 0x3c(%rsp)
movq %rdx, 0x30(%rsp)
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movl (%rax), %esi
callq 0x13ef0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x139f0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x24(%rsp)
jmp 0x13a02
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x24(%rsp)
movl 0x24(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
movq 0x40(%rsp), %rax
movl (%rax), %eax
cmpl 0x3c(%rsp), %eax
je 0x13e3f
movq 0x40(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x20(%rsp)
subl $-0x1, %eax
je 0x13a54
jmp 0x13a30
movl 0x20(%rsp), %eax
subl $0xa, %eax
je 0x13a6c
jmp 0x13a3b
movl 0x20(%rsp), %eax
subl $0xd, %eax
je 0x13a6c
jmp 0x13a46
movl 0x20(%rsp), %eax
subl $0x5c, %eax
je 0x13a84
jmp 0x13dcf
movq 0x40(%rsp), %rdi
leaq 0xf235(%rip), %rsi      # 0x22c95
movl $0x11f, %edx            # imm = 0x11F
callq 0x138d0
jmp 0x13a0d
movq 0x40(%rsp), %rdi
leaq 0xf21d(%rip), %rsi      # 0x22c95
movl $0x11e, %edx            # imm = 0x11E
callq 0x138d0
jmp 0x13a0d
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13ac1
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x1c(%rsp)
jmp 0x13ad3
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x1c(%rsp)
movl 0x1c(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
movq 0x40(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x18(%rsp)
subl $-0x1, %eax
je 0x13bd8
jmp 0x13af4
movl 0x18(%rsp), %eax
subl $0xa, %eax
je 0x13bba
jmp 0x13b03
movl 0x18(%rsp), %eax
subl $0xd, %eax
je 0x13bba
jmp 0x13b12
movl 0x18(%rsp), %eax
subl $0x61, %eax
je 0x13b5f
jmp 0x13b1d
movl 0x18(%rsp), %eax
subl $0x62, %eax
je 0x13b6c
jmp 0x13b28
movl 0x18(%rsp), %eax
subl $0x66, %eax
je 0x13b79
jmp 0x13b33
movl 0x18(%rsp), %eax
subl $0x6e, %eax
je 0x13b86
jmp 0x13b3e
movl 0x18(%rsp), %eax
subl $0x72, %eax
je 0x13b93
jmp 0x13b49
movl 0x18(%rsp), %eax
subl $0x74, %eax
je 0x13ba0
jmp 0x13b54
movl 0x18(%rsp), %eax
subl $0x76, %eax
je 0x13bad
jmp 0x13bdd
movl $0x7, 0x2c(%rsp)
jmp 0x13d62
movl $0x8, 0x2c(%rsp)
jmp 0x13d62
movl $0xc, 0x2c(%rsp)
jmp 0x13d62
movl $0xa, 0x2c(%rsp)
jmp 0x13d62
movl $0xd, 0x2c(%rsp)
jmp 0x13d62
movl $0x9, 0x2c(%rsp)
jmp 0x13d62
movl $0xb, 0x2c(%rsp)
jmp 0x13d62
movq 0x40(%rsp), %rdi
movl $0xa, %esi
callq 0x13ef0
movq 0x40(%rsp), %rdi
callq 0x13370
jmp 0x13a0d
jmp 0x13a0d
callq 0x32d0
movq (%rax), %rax
movq 0x40(%rsp), %rcx
movslq (%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
jne 0x13c6b
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movl (%rax), %esi
callq 0x13ef0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13c49
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x14(%rsp)
jmp 0x13c5b
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x14(%rsp)
movl 0x14(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
jmp 0x13d5d
movl $0x0, 0x28(%rsp)
movl $0x0, 0x2c(%rsp)
imull $0xa, 0x2c(%rsp), %eax
movq 0x40(%rsp), %rcx
movl (%rcx), %ecx
subl $0x30, %ecx
addl %ecx, %eax
movl %eax, 0x2c(%rsp)
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13ccd
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x10(%rsp)
jmp 0x13cdf
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
movl 0x28(%rsp), %ecx
addl $0x1, %ecx
movl %ecx, 0x28(%rsp)
xorl %eax, %eax
cmpl $0x3, %ecx
movb %al, 0xf(%rsp)
jge 0x13d23
callq 0x32d0
movq (%rax), %rax
movq 0x40(%rsp), %rcx
movslq (%rcx), %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
setne %al
movb %al, 0xf(%rsp)
movb 0xf(%rsp), %al
testb $0x1, %al
jne 0x13c7b
cmpl $0xff, 0x2c(%rsp)
jle 0x13d4f
movq 0x40(%rsp), %rdi
leaq 0xef62(%rip), %rsi      # 0x22ca7
movl $0x11e, %edx            # imm = 0x11E
callq 0x138d0
movq 0x40(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0x13ef0
jmp 0x13a0d
movq 0x40(%rsp), %rdi
movl 0x2c(%rsp), %esi
callq 0x13ef0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13dad
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x8(%rsp)
jmp 0x13dbf
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x8(%rsp)
movl 0x8(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
jmp 0x13a0d
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movl (%rax), %esi
callq 0x13ef0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13e1d
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, 0x4(%rsp)
jmp 0x13e2f
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
jmp 0x13a0d
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movl (%rax), %esi
callq 0x13ef0
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x13e8c
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, (%rsp)
jmp 0x13e9d
movq 0x40(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x12790
movl %eax, (%rsp)
movl (%rsp), %ecx
movq 0x40(%rsp), %rax
movl %ecx, (%rax)
movq 0x40(%rsp), %rdi
movq 0x40(%rsp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rsi
addq $0x1, %rsi
movq 0x40(%rsp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rdx
subq $0x2, %rdx
callq 0x142a0
movq %rax, %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
addq $0x48, %rsp
retq
nopw %cs:(%rax,%rax)