// File: /workspace/github_c_makefile_star2_O3/gplessis[P]dotdeb-redis/deps/lua/src/llex.c
// Function: llex
static int llex (LexState *ls, SemInfo *seminfo) {
  luaZ_resetbuffer(ls->buff);
  for (;;) {
    switch (ls->current) {
      case '\n':
      case '\r': {
        inclinenumber(ls);
        continue;
      }
      case '-': {
        next(ls);
        if (ls->current != '-') return '-';
        /* else is a comment */
        next(ls);
        if (ls->current == '[') {
          int sep = skip_sep(ls);
          luaZ_resetbuffer(ls->buff);  /* `skip_sep' may dirty the buffer */
          if (sep >= 0) {
            read_long_string(ls, NULL, sep);  /* long comment */
            luaZ_resetbuffer(ls->buff);
            continue;
          }
        }
        /* else short comment */
        while (!currIsNewline(ls) && ls->current != EOZ)
          next(ls);
        continue;
      }
      case '[': {
        int sep = skip_sep(ls);
        if (sep >= 0) {
          read_long_string(ls, seminfo, sep);
          return TK_STRING;
        }
        else if (sep == -1) return '[';
        else luaX_lexerror(ls, "invalid long string delimiter", TK_STRING);
      }
      case '=': {
        next(ls);
        if (ls->current != '=') return '=';
        else { next(ls); return TK_EQ; }
      }
      case '<': {
        next(ls);
        if (ls->current != '=') return '<';
        else { next(ls); return TK_LE; }
      }
      case '>': {
        next(ls);
        if (ls->current != '=') return '>';
        else { next(ls); return TK_GE; }
      }
      case '~': {
        next(ls);
        if (ls->current != '=') return '~';
        else { next(ls); return TK_NE; }
      }
      case '"':
      case '\'': {
        read_string(ls, ls->current, seminfo);
        return TK_STRING;
      }
      case '.': {
        save_and_next(ls);
        if (check_next(ls, ".")) {
          if (check_next(ls, "."))
            return TK_DOTS;   /* ... */
          else return TK_CONCAT;   /* .. */
        }
        else if (!isdigit(ls->current)) return '.';
        else {
          read_numeral(ls, seminfo);
          return TK_NUMBER;
        }
      }
      case EOZ: {
        return TK_EOS;
      }
      default: {
        if (isspace(ls->current)) {
          lua_assert(!currIsNewline(ls));
          next(ls);
          continue;
        }
        else if (isdigit(ls->current)) {
          read_numeral(ls, seminfo);
          return TK_NUMBER;
        }
        else if (isalpha(ls->current) || ls->current == '_') {
          /* identifier or reserved word */
          TString *ts;
          do {
            save_and_next(ls);
          } while (isalnum(ls->current) || ls->current == '_');
          ts = luaX_newstring(ls, luaZ_buffer(ls->buff),
                                  luaZ_bufflen(ls->buff));
          if (ts->tsv.reserved > 0)  /* reserved word? */
            return ts->tsv.reserved - 1 + FIRST_RESERVED;
          else {
            seminfo->ts = ts;
            return TK_NAME;
          }
        }
        else {
          int c = ls->current;
          next(ls);
          return c;  /* single-char tokens (+ - / ...) */
        }
      }
    }
  }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r12
movq %rdi, %rbx
movq 0x48(%rdi), %rax
movq $0x0, 0x8(%rax)
movl $0x4801, %r14d          # imm = 0x4801
movl (%rbx), %ebp
cmpl $0x2d, %ebp
jg 0x131e6
cmpl $0x21, %ebp
jg 0x13207
cmpl $-0x1, %ebp
je 0x13656
cmpl $0xa, %ebp
je 0x13280
cmpl $0xd, %ebp
jne 0x1323b
jmp 0x13280
cmpl $0x3d, %ebp
jg 0x13220
cmpl $0x2e, %ebp
je 0x13381
cmpl $0x3c, %ebp
je 0x13660
cmpl $0x3d, %ebp
jne 0x1323b
jmp 0x1388a
cmpl $0x22, %ebp
je 0x1334c
cmpl $0x27, %ebp
je 0x1334c
cmpl $0x2d, %ebp
jne 0x1323b
jmp 0x1328d
cmpl $0x3e, %ebp
je 0x13369
cmpl $0x5b, %ebp
je 0x13690
cmpl $0x7e, %ebp
je 0x13678
callq 0x4580
movq %rax, %r15
movq (%rax), %rax
movslq %ebp, %rcx
movzwl (%rax,%rcx,2), %eax
btl $0xd, %eax
jae 0x136b7
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1326a
callq 0x106d8
movl %eax, %ebp
jmp 0x13279
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %ebp
movl %ebp, (%rbx)
jmp 0x131c0
movq %rbx, %rdi
callq 0x13a0e
jmp 0x131be
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1329e
callq 0x106d8
jmp 0x132ad
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
cmpl $0x2d, %eax
jne 0x13950
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x132c9
callq 0x106d8
jmp 0x132d8
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
cmpl $0x5b, %eax
jne 0x1333a
movq %rbx, %rdi
callq 0x13a97
movq 0x48(%rbx), %rcx
movq $0x0, 0x8(%rcx)
testl %eax, %eax
js 0x13314
movq %rbx, %rdi
xorl %esi, %esi
movl %eax, %edx
callq 0x13b1c
movq 0x48(%rbx), %rax
movq $0x0, 0x8(%rax)
jmp 0x131be
movl (%rbx), %eax
jmp 0x1333a
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13329
callq 0x106d8
jmp 0x13338
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
incl %eax
cmpl $0xe, %eax
ja 0x13318
btl %eax, %r14d
jae 0x13318
jmp 0x131be
movq %rbx, %rdi
movl %ebp, %esi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x133a6
callq 0x106d8
movl %eax, %esi
jmp 0x133b5
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13751
callq 0x106d8
jmp 0x13760
movq %rbx, %rdi
movl $0x2e, %esi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13788
callq 0x106d8
jmp 0x13797
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %esi
movl %esi, (%rbx)
cmpl %ebp, %esi
jne 0x133dd
movq %rbx, %rdi
movl %ebp, %esi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13625
callq 0x106d8
jmp 0x13634
leaq 0x8f3e(%rip), %r15      # 0x1c322
leaq 0x8df1(%rip), %r14      # 0x1c1dc
cmpl $0xc, %esi
jg 0x133fc
cmpl $-0x1, %esi
je 0x13442
cmpl $0xa, %esi
je 0x1341a
jmp 0x13427
cmpl $0xd, %esi
je 0x1341a
cmpl $0x5c, %esi
jne 0x13427
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13470
callq 0x106d8
movl %eax, %r13d
jmp 0x13480
movq %rbx, %rdi
movq %r15, %rsi
movl $0x11e, %edx            # imm = 0x11E
jmp 0x1344d
movq %rbx, %rdi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1345d
callq 0x106d8
movl %eax, %esi
jmp 0x1346c
movq %rbx, %rdi
movq %r15, %rsi
movl $0x11f, %edx            # imm = 0x11F
callq 0x12fda
movl (%rbx), %esi
cmpl %ebp, %esi
jne 0x133eb
jmp 0x133bb
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %esi
movl %esi, (%rbx)
jmp 0x13454
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %r13d
movl %r13d, (%rbx)
cmpl $0x61, %r13d
jg 0x1349d
cmpl $0xc, %r13d
jg 0x134b9
cmpl $-0x1, %r13d
je 0x13452
cmpl $0xa, %r13d
je 0x134d0
jmp 0x134fd
leal -0x6e(%r13), %eax
cmpl $0x8, %eax
ja 0x134ea
movslq (%r14,%rax,4), %rax
addq %r14, %rax
jmpq *%rax
movl $0xa, %esi
jmp 0x1354f
cmpl $0xd, %r13d
je 0x134d0
movl $0x7, %esi
cmpl $0x61, %r13d
je 0x1354f
jmp 0x134fd
movq %rbx, %rdi
movl $0xa, %esi
callq 0x13978
movq %rbx, %rdi
callq 0x13a0e
jmp 0x13452
cmpl $0x66, %r13d
je 0x1354a
cmpl $0x62, %r13d
jne 0x134fd
movl $0x8, %esi
jmp 0x1354f
callq 0x4580
movq %rax, %r14
movq (%rax), %rax
movslq %r13d, %rcx
testb $0x8, 0x1(%rax,%rcx,2)
jne 0x1357e
movq %rbx, %rdi
movl %r13d, %esi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1360a
callq 0x106d8
jmp 0x13619
movl $0x9, %esi
jmp 0x1354f
movl $0xd, %esi
jmp 0x1354f
movl $0xb, %esi
jmp 0x1354f
movl $0xc, %esi
movq %rbx, %rdi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13568
callq 0x106d8
jmp 0x13577
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
jmp 0x13452
movq %r12, (%rsp)
xorl %r12d, %r12d
movl $0x3, %r15d
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1359c
callq 0x106d8
jmp 0x135ab
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
leal (%r12,%r12,4), %ecx
leal -0x30(%r13,%rcx,2), %r12d
movl %eax, (%rbx)
decl %r15d
je 0x135cb
movq (%r14), %rcx
movslq %eax, %rdx
testb $0x8, 0x1(%rcx,%rdx,2)
movl %eax, %r13d
jne 0x1358b
cmpl $0x100, %r12d           # imm = 0x100
jl 0x135e8
movq %rbx, %rdi
leaq 0x8d56(%rip), %rsi      # 0x1c334
movl $0x11e, %edx            # imm = 0x11E
callq 0x12fda
movq %rbx, %rdi
movl %r12d, %esi
callq 0x13978
movq (%rsp), %r12
leaq 0x8d24(%rip), %r15      # 0x1c322
leaq 0x8bd7(%rip), %r14      # 0x1c1dc
jmp 0x13452
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
leaq 0x8bbc(%rip), %r14      # 0x1c1dc
jmp 0x13577
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movq 0x48(%rbx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
incq %rsi
addq $-0x2, %rdx
movq %rbx, %rdi
callq 0x1308d
movq %rax, (%r12)
jmp 0x136ad
movl $0x11f, %ebp            # imm = 0x11F
jmp 0x13955
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x137cf
callq 0x106d8
jmp 0x137de
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13806
callq 0x106d8
jmp 0x13815
movq %rbx, %rdi
callq 0x13a97
testl %eax, %eax
js 0x1386d
movq %rbx, %rdi
movq %r12, %rsi
movl %eax, %edx
callq 0x13b1c
movl $0x11e, %ebp            # imm = 0x11E
jmp 0x13955
btl $0xb, %eax
jb 0x13858
cmpl $0x5f, %ebp
je 0x136e5
andl $0x400, %eax            # imm = 0x400
jne 0x136e5
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13932
callq 0x106d8
jmp 0x13941
movq %rbx, %rdi
movl %ebp, %esi
callq 0x13978
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13702
callq 0x106d8
movl %eax, %ebp
jmp 0x13711
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %ebp
movl %ebp, (%rbx)
cmpl $0x5f, %ebp
je 0x136e5
movq (%r15), %rax
movslq %ebp, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x8, %eax
jne 0x136e5
movq 0x48(%rbx), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %rbx, %rdi
callq 0x1308d
movzbl 0xa(%rax), %ebp
testl %ebp, %ebp
je 0x13945
orl $0x100, %ebp            # imm = 0x100
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x3e, %ebp
cmpl $0x3d, %eax
jne 0x13955
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x138e3
callq 0x106d8
jmp 0x138f2
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
leaq 0x90a5(%rip), %rsi      # 0x1c845
movq %rbx, %rdi
callq 0x13cf0
testl %eax, %eax
je 0x1383d
leaq 0x908e(%rip), %rsi      # 0x1c845
movq %rbx, %rdi
callq 0x13cf0
cmpl $0x1, %eax
movl $0x117, %ebp            # imm = 0x117
sbbl $0x0, %ebp
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x3c, %ebp
cmpl $0x3d, %eax
jne 0x13955
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x138fb
callq 0x106d8
jmp 0x1390a
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x7e, %ebp
cmpl $0x3d, %eax
jne 0x13955
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x13913
callq 0x106d8
jmp 0x13922
callq 0x4580
movq (%rax), %rax
movslq (%rbx), %rcx
movl $0x2e, %ebp
testb $0x8, 0x1(%rax,%rcx,2)
je 0x13955
movq %rbx, %rdi
movq %r12, %rsi
callq 0x13d43
movl $0x11c, %ebp            # imm = 0x11C
jmp 0x13955
cmpl $-0x1, %eax
je 0x1392b
leaq 0x8a1e(%rip), %rsi      # 0x1c29b
movq %rbx, %rdi
movl $0x11e, %edx            # imm = 0x11E
callq 0x12fda
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x1389b
callq 0x106d8
jmp 0x138aa
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x3d, %ebp
cmpl $0x3d, %eax
jne 0x13955
movq 0x40(%rbx), %rdi
subq $0x1, (%rdi)
jae 0x138cb
callq 0x106d8
jmp 0x138da
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x118, %ebp            # imm = 0x118
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x119, %ebp            # imm = 0x119
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x11a, %ebp            # imm = 0x11A
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
movl $0x11b, %ebp            # imm = 0x11B
jmp 0x13955
movl $0x5b, %ebp
jmp 0x13955
movq 0x8(%rdi), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x8(%rdi)
movzbl (%rax), %eax
movl %eax, (%rbx)
jmp 0x13955
movq %rax, (%r12)
movl $0x11d, %ebp            # imm = 0x11D
jmp 0x13955
movl $0x2d, %ebp
movl %ebp, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq