// File: /workspace/github_c_makefile_star2_O0/gplessis[P]dotdeb-redis/deps/lua/src/llex.c
// Function: read_long_string
static void read_long_string (LexState *ls, SemInfo *seminfo, int sep) {
  int cont = 0;
  (void)(cont);  /* avoid warnings when `cont' is not used */
  save_and_next(ls);  /* skip 2nd `[' */
  if (currIsNewline(ls))  /* string starts with a newline? */
    inclinenumber(ls);  /* skip it */
  for (;;) {
    switch (ls->current) {
      case EOZ:
        luaX_lexerror(ls, (seminfo) ? "unfinished long string" :
                                   "unfinished long comment", TK_EOS);
        break;  /* to avoid warnings */
#if defined(LUA_COMPAT_LSTR)
      case '[': {
        if (skip_sep(ls) == sep) {
          save_and_next(ls);  /* skip 2nd `[' */
          cont++;
#if LUA_COMPAT_LSTR == 1
          if (sep == 0)
            luaX_lexerror(ls, "nesting of [[...]] is deprecated", '[');
#endif
        }
        break;
      }
#endif
      case ']': {
        if (skip_sep(ls) == sep) {
          save_and_next(ls);  /* skip 2nd `]' */
#if defined(LUA_COMPAT_LSTR) && LUA_COMPAT_LSTR == 2
          cont--;
          if (sep == 0 && cont >= 0) break;
#endif
          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:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl (%rax), %esi
callq 0x1f200
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x1f593
movq -0x8(%rbp), %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(%rbp)
jmp 0x1f5a3
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1a4e0
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movq -0x8(%rbp), %rax
cmpl $0xa, (%rax)
je 0x1f5be
movq -0x8(%rbp), %rax
cmpl $0xd, (%rax)
jne 0x1f5c7
movq -0x8(%rbp), %rdi
callq 0x1f300
jmp 0x1f5c9
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x20(%rbp)
subl $-0x1, %eax
je 0x1f610
jmp 0x1f5d9
movl -0x20(%rbp), %eax
subl $0xa, %eax
je 0x1f756
jmp 0x1f5e7
movl -0x20(%rbp), %eax
subl $0xd, %eax
je 0x1f756
jmp 0x1f5f5
movl -0x20(%rbp), %eax
subl $0x5b, %eax
je 0x1f63d
jmp 0x1f5ff
movl -0x20(%rbp), %eax
subl $0x5d, %eax
je 0x1f6dc
jmp 0x1f789
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rcx
leaq 0xcc9f(%rip), %rsi      # 0x2c2be
leaq 0xcc81(%rip), %rax      # 0x2c2a7
cmpq $0x0, %rcx
cmovneq %rax, %rsi
movl $0x11f, %edx            # imm = 0x11F
callq 0x1e500
jmp 0x1f849
movq -0x8(%rbp), %rdi
callq 0x1f410
cmpl -0x14(%rbp), %eax
jne 0x1f6d7
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl (%rax), %esi
callq 0x1f200
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x1f698
movq -0x8(%rbp), %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(%rbp)
jmp 0x1f6a8
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1a4e0
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x1f6d5
movq -0x8(%rbp), %rdi
leaq 0xcc0b(%rip), %rsi      # 0x2c2d6
movl $0x5b, %edx
callq 0x1e500
jmp 0x1f6d7
jmp 0x1f849
movq -0x8(%rbp), %rdi
callq 0x1f410
cmpl -0x14(%rbp), %eax
jne 0x1f751
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl (%rax), %esi
callq 0x1f200
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x1f733
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, -0x28(%rbp)
jmp 0x1f743
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1a4e0
movl %eax, -0x28(%rbp)
movl -0x28(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
jmp 0x1f84e
jmp 0x1f849
movq -0x8(%rbp), %rdi
movl $0xa, %esi
callq 0x1f200
movq -0x8(%rbp), %rdi
callq 0x1f300
cmpq $0x0, -0x10(%rbp)
jne 0x1f784
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq $0x0, 0x8(%rax)
jmp 0x1f849
cmpq $0x0, -0x10(%rbp)
je 0x1f7f4
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movl (%rax), %esi
callq 0x1f200
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x1f7d9
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, -0x2c(%rbp)
jmp 0x1f7e9
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1a4e0
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
jmp 0x1f847
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq (%rcx), %rax
movq %rax, %rdx
addq $-0x1, %rdx
movq %rdx, (%rcx)
cmpq $0x0, %rax
jbe 0x1f82e
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rcx
movq 0x8(%rcx), %rax
movq %rax, %rdx
addq $0x1, %rdx
movq %rdx, 0x8(%rcx)
movzbl (%rax), %eax
movl %eax, -0x30(%rbp)
jmp 0x1f83e
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x1a4e0
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %ecx
movq -0x8(%rbp), %rax
movl %ecx, (%rax)
jmp 0x1f849
jmp 0x1f5c9
cmpq $0x0, -0x10(%rbp)
je 0x1f897
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq (%rax), %rsi
movl -0x14(%rbp), %eax
addl $0x2, %eax
cltq
addq %rax, %rsi
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rax
movq 0x8(%rax), %rdx
movl -0x14(%rbp), %eax
addl $0x2, %eax
shll %eax
cltq
subq %rax, %rdx
callq 0x1e650
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)