// File: /workspace/github_c_makefile_star2_O0/bhk[P]tooltree/lua/../opensource/lua-5.2.3/src/llex.c
// Function: read_long_string
static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) {
  save_and_next(ls);  /* skip 2nd `[' */
  if (currIsNewline(ls))  /* string starts with a newline? */
    inclinenumber(ls);  /* skip it */
  for (;;) {
    switch (ls->current) {
      case EOZ:
        lexerror(ls, (seminfo) ? "unfinished long string" :
                                 "unfinished long comment", TK_EOS);
        break;  /* to avoid warnings */
      case ']': {
        if (skip_sep(ls) == sep) {
          save_and_next(ls);  /* skip 2nd `]' */
          goto endloop;
        }
        break;
      }
      case '\n': case '\r': {
        save(ls, '\n');
        inclinenumber(ls);
        if (!seminfo) luaZ_resetbuffer(ls->buff);  /* avoid wasting space */
        break;
      }
      default: {
        if (seminfo) save_and_next(ls);
        else next(ls);
      }
    }
  } endloop:
  if (seminfo)
    seminfo->ts = luaX_newstring(ls, luaZ_buffer(ls->buff) + (2 + sep),
                                     luaZ_bufflen(ls->buff) - 2*(2 + sep));
}

// Assembly:
subq $0x28, %rsp
movq %rdi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movl %edx, 0x14(%rsp)
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %esi
callq 0x33180
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x33540
movq 0x20(%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 0x33552
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x2c3a0
movl %eax, 0x10(%rsp)
movl 0x10(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x20(%rsp), %rax
cmpl $0xa, (%rax)
je 0x33571
movq 0x20(%rsp), %rax
cmpl $0xd, (%rax)
jne 0x3357b
movq 0x20(%rsp), %rdi
callq 0x33280
jmp 0x3357d
movq 0x20(%rsp), %rax
movl (%rax), %eax
movl %eax, 0xc(%rsp)
subl $-0x1, %eax
je 0x335bb
jmp 0x3358f
movl 0xc(%rsp), %eax
subl $0xa, %eax
je 0x3366a
jmp 0x3359e
movl 0xc(%rsp), %eax
subl $0xd, %eax
je 0x3366a
jmp 0x335ad
movl 0xc(%rsp), %eax
subl $0x5d, %eax
je 0x335e5
jmp 0x336a1
movq 0x20(%rsp), %rdi
movq 0x18(%rsp), %rcx
leaq 0x48e8(%rip), %rsi      # 0x37eb4
leaq 0x48ca(%rip), %rax      # 0x37e9d
cmpq $0x0, %rcx
cmovneq %rax, %rsi
movl $0x11e, %edx            # imm = 0x11E
callq 0x32330
movq 0x20(%rsp), %rdi
callq 0x333a0
cmpl 0x14(%rsp), %eax
jne 0x33665
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %esi
callq 0x33180
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x33643
movq 0x20(%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 0x33655
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x2c3a0
movl %eax, 0x8(%rsp)
movl 0x8(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
jmp 0x33774
jmp 0x3376f
movq 0x20(%rsp), %rdi
movl $0xa, %esi
callq 0x33180
movq 0x20(%rsp), %rdi
callq 0x33280
cmpq $0x0, 0x18(%rsp)
jne 0x3369c
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rax
movq $0x0, 0x8(%rax)
jmp 0x3376f
cmpq $0x0, 0x18(%rsp)
je 0x33716
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movl (%rax), %esi
callq 0x33180
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x336f7
movq 0x20(%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 0x33709
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x2c3a0
movl %eax, 0x4(%rsp)
movl 0x4(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
jmp 0x3376d
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x33752
movq 0x20(%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 0x33763
movq 0x20(%rsp), %rax
movq 0x40(%rax), %rdi
callq 0x2c3a0
movl %eax, (%rsp)
movl (%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
jmp 0x3376f
jmp 0x3357d
cmpq $0x0, 0x18(%rsp)
je 0x337c4
movq 0x20(%rsp), %rdi
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rsi
movl 0x14(%rsp), %eax
addl $0x2, %eax
cltq
addq %rax, %rsi
movq 0x20(%rsp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rdx
movl 0x14(%rsp), %eax
addl $0x2, %eax
shll %eax
cltq
subq %rax, %rdx
callq 0x323f0
movq %rax, %rcx
movq 0x18(%rsp), %rax
movq %rcx, (%rax)
addq $0x28, %rsp
retq
nopl (%rax)