// File: /workspace/github_c_makefile_star2_O1/sisshiki1969[P]monocc/src/tokenize.c
// Function: read_token
Token *read_token(TokContext *ctx) {
  char *p = ctx->p;
  FileInfo *fi = ctx->file_info;
  Token *cur = ctx->cur;
  skip_whitespace(&p);
  if (strncmp(p, "//", 2) == 0) {
    p += 2;
    char *next = strchr(p, '\n');
    p = next + 1;
  } else if (strncmp(p, "/*", 2) == 0) {
    p += 2;
    char *next = strstr(p, "*/");
    if (!next) {
      error_at_char(fi, p - 2, "Comment unclosed at end of file.");
    }
    p = next + 2;
  } else if (strncmp(p, "__LINE__", 8) == 0) {
    cur = new_token(TK_MACRO, cur, p, 8);
    p += 8;
  } else if (isdigit(*p)) {
    bool signed_int = true;
    bool long_int = false;
    long num = *p - '0';
    int len = 1;
    while (isdigit(p[len])) {
      num *= 10;
      num += p[len] - '0';
      len++;
    }
    if (p[len] == 'u' || p[len] == 'U') {
      signed_int = false;
      len++;
    }
    if (p[len] == 'l' || p[len] == 'L') {
      len++;
      long_int = true;
      if (p[len] == 'l' || p[len] == 'L') len++;
    }
    cur = new_token(TK_NUM, cur, p, len);
    p += len;
    if (signed_int) {
      if (long_int) {
        cur->num_ty = new_type_long();
      } else {
        cur->num_ty = new_type_int();
      }
    } else {
      if (long_int) {
        cur->num_ty = new_type_ulong();
      } else {
        cur->num_ty = new_type_uint();
      }
    }
    cur->num_val = num;
  } else if (isalpha(*p) || *p == '_') {
    int len = 1;
    while (is_ident_char(p[len])) len++;

    if (is_reserved(p, len, "return")) {
      cur = new_token(TK_RETURN, cur, p, len);
    } else if (is_reserved(p, len, "if")) {
      cur = new_token(TK_IF, cur, p, len);
    } else if (is_reserved(p, len, "else")) {
      cur = new_token(TK_ELSE, cur, p, len);
    } else if (is_reserved(p, len, "while")) {
      cur = new_token(TK_WHILE, cur, p, len);
    } else if (is_reserved(p, len, "for")) {
      cur = new_token(TK_FOR, cur, p, len);
    } else if (is_reserved(p, len, "switch")) {
      cur = new_token(TK_SWITCH, cur, p, len);
    } else if (is_reserved(p, len, "case")) {
      cur = new_token(TK_CASE, cur, p, len);
    } else if (is_reserved(p, len, "default")) {
      cur = new_token(TK_DEFAULT, cur, p, len);
    } else if (is_reserved(p, len, "break")) {
      cur = new_token(TK_BREAK, cur, p, len);
    } else if (is_reserved(p, len, "continue")) {
      cur = new_token(TK_CONTINUE, cur, p, len);
    } else if (is_reserved(p, len, "int")) {
      cur = new_token(TK_INT, cur, p, len);
    } else if (is_reserved(p, len, "char")) {
      cur = new_token(TK_CHAR, cur, p, len);
    } else if (is_reserved(p, len, "bool")) {
      cur = new_token(TK_BOOL, cur, p, len);
    } else if (is_reserved(p, len, "void")) {
      cur = new_token(TK_VOID, cur, p, len);
    } else if (is_reserved(p, len, "short")) {
      cur = new_token(TK_SHORT, cur, p, len);
    } else if (is_reserved(p, len, "long")) {
      cur = new_token(TK_LONG, cur, p, len);
    } else if (is_reserved(p, len, "signed")) {
      cur = new_token(TK_SIGNED, cur, p, len);
    } else if (is_reserved(p, len, "unsigned")) {
      cur = new_token(TK_UNSIGNED, cur, p, len);
    } else if (is_reserved(p, len, "sizeof")) {
      cur = new_token(TK_SIZEOF, cur, p, len);
    } else if (is_reserved(p, len, "struct")) {
      cur = new_token(TK_STRUCT, cur, p, len);
    } else if (is_reserved(p, len, "enum")) {
      cur = new_token(TK_ENUM, cur, p, len);
    } else if (is_reserved(p, len, "union")) {
      cur = new_token(TK_UNION, cur, p, len);
    } else if (is_reserved(p, len, "typedef")) {
      cur = new_token(TK_TYPEDEF, cur, p, len);
    } else if (is_reserved(p, len, "extern")) {
      cur = new_token(TK_EXTERN, cur, p, len);
    } else {
      cur = new_token(TK_IDENT, cur, p, len);
    }
    p += len;
  } else if (*p == '+') {
    if (*(p + 1) == '=') {
      cur = new_token(TK_ASSIGN_ADD, cur, p, 2);
      p += 2;
    } else if (*(p + 1) == '+') {
      cur = new_token(TK_INC, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_ADD, cur, p++, 1);
  } else if (*p == '-') {
    if (*(p + 1) == '=') {
      cur = new_token(TK_ASSIGN_SUB, cur, p, 2);
      p += 2;
    } else if (*(p + 1) == '-') {
      cur = new_token(TK_DEC, cur, p, 2);
      p += 2;
    } else if (*(p + 1) == '>') {
      cur = new_token(TK_ARROW, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_SUB, cur, p++, 1);
  } else if (*p == '*') {
    if (*(p + 1) == '=') {
      cur = new_token(TK_ASSIGN_MUL, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_MUL, cur, p++, 1);
  } else if (*p == '/') {
    if (*(p + 1) == '=') {
      cur = new_token(TK_ASSIGN_DIV, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_DIV, cur, p++, 1);
  } else if (*p == ',') {
    cur = new_token(TK_COMMA, cur, p++, 1);
  } else if (*p == '~') {
    cur = new_token(TK_TILDA, cur, p++, 1);
  } else if (*p == '=') {
    p++;
    if (*p == '=') {
      cur = new_token(TK_EQ, cur, p - 1, 2);
      p++;
    } else {
      cur = new_token(TK_ASSIGN, cur, p - 1, 1);
    }
  } else if (*p == '>') {
    p++;
    if (*p == '=') {
      cur = new_token(TK_GE, cur, p - 1, 2);
      p++;
    } else if (*p == '>') {
      cur = new_token(TK_SHR, cur, p - 1, 2);
      p++;
    } else {
      cur = new_token(TK_GT, cur, p - 1, 1);
    }
  } else if (*p == '<') {
    p++;
    if (*p == '=') {
      cur = new_token(TK_LE, cur, p - 1, 2);
      p++;
    } else if (*p == '<') {
      cur = new_token(TK_SHL, cur, p - 1, 2);
      p++;
    } else {
      cur = new_token(TK_LT, cur, p - 1, 1);
    }
  } else if (*p == '!') {
    p++;
    if (*p == '=') {
      cur = new_token(TK_NEQ, cur, p - 1, 2);
      p++;
    } else {
      cur = new_token(TK_NOT, cur, p - 1, 1);
    }
  } else if (*p == ';') {
    cur = new_token(TK_SEMI, cur, p++, 1);
  } else if (*p == ':') {
    cur = new_token(TK_COLON, cur, p++, 1);
  } else if (*p == '(') {
    cur = new_token(TK_OP_PAREN, cur, p++, 1);
  } else if (*p == ')') {
    cur = new_token(TK_CL_PAREN, cur, p++, 1);
  } else if (*p == '{') {
    cur = new_token(TK_OP_BRACE, cur, p++, 1);
  } else if (*p == '}') {
    cur = new_token(TK_CL_BRACE, cur, p++, 1);
  } else if (*p == '[') {
    cur = new_token(TK_OP_BRACKET, cur, p++, 1);
  } else if (*p == ']') {
    cur = new_token(TK_CL_BRACKET, cur, p++, 1);
  } else if (*p == '^') {
    cur = new_token(TK_XOR, cur, p++, 1);
  } else if (*p == '&') {
    if (*(p + 1) == '&') {
      cur = new_token(TK_LAND, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_AND, cur, p++, 1);
  } else if (*p == '|') {
    if (*(p + 1) == '|') {
      cur = new_token(TK_LOR, cur, p, 2);
      p += 2;
    } else
      cur = new_token(TK_OR, cur, p++, 1);
  } else if (*p == '.') {
    if (*(p + 1) == '.' && *(p + 2) == '.') {
      cur = new_token(TK_ELLIPSIS, cur, p, 3);
      p += 3;
    } else
      cur = new_token(TK_DOT, cur, p++, 1);
  } else if (*p == '"') {
    p++;
    char *src = p;
    while (*src && *src != '"') {
      if (*src != '\\') {
        src++;
      } else {
        src++;
        switch (*src) {
          case '0':
          case 'a':
          case 'b':
          case 'f':
          case 'n':
          case 'r':
          case 't':
          case '\\':
          case '\'':
          case '\"':
            src++;
            break;
          default:
            error_at_char(fi, src - 1, "Unsupported escape sequence.");
        }
      }
    }
    if (!*src) error_at_char(fi, src - 1, "Missing closing quote.");
    cur = new_token(TK_STR, cur, p, (int)(src - p));
    p = src + 1;
  } else if (*p == '\'') {
    char *org_p = p;
    p++;
    char ch;
    if (*p != '\\') {
      ch = *p;
    } else {
      p++;
      switch (*p) {
        case '0':
          ch = '\0';
          break;
        case 'a':
          ch = '\a';
          break;
        case 'b':
          ch = '\b';
          break;
        case 'f':
          ch = '\f';
          break;
        case 'n':
          ch = '\n';
          break;
        case 'r':
          ch = '\r';
          break;
        case 't':
          ch = '\t';
          break;
        case '\\':
          ch = '\\';
          break;
        case '\'':
          ch = '\'';
          break;
        case '\"':
          ch = '\"';
          break;
        default:
          error_at_token(token, "Unsupported escape sequence.");
      }
    }

    p++;
    if (*p++ != '\'')
      error_at_char(fi, p - 1, "Unexpected token. Expected \"'\".");
    cur = new_token(TK_NUM, cur, org_p, p - org_p);
    cur->num_ty = new_type_char();
    cur->num_val = ch;
  }

  if (ctx->p == p) error_at_char(fi, p, "Illegal character.");

  skip_whitespace(&p);

  ctx->p = p;
  ctx->cur = cur;
  return cur;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %r12
movq 0x10(%rdi), %r15
movq (%rdi), %rbx
movq 0x8(%rdi), %rbp
xorl %r14d, %r14d
movzbl (%r15,%r14), %eax
cmpl $0x20, %eax
je 0x9ce4
cmpl $0x9, %eax
jne 0x9ce9
incq %r14
jmp 0x9cd5
leaq (%r15,%r14), %r13
leaq 0x3c53(%rip), %rsi      # 0xd947
movl $0x2, %edx
movq %r13, %rdi
callq 0x1050
testl %eax, %eax
je 0x9dd9
leaq 0x3c3a(%rip), %rsi      # 0xd94a
movl $0x2, %edx
movq %r13, %rdi
callq 0x1050
testl %eax, %eax
je 0x9df3
leaq 0x36c4(%rip), %rsi      # 0xd3f0
movl $0x8, %edx
movq %r13, %rdi
callq 0x1050
testl %eax, %eax
je 0x9e74
movq %rbp, 0x8(%rsp)
callq 0x11c0
movq (%rax), %rax
movsbq (%r13), %rbp
movzwl (%rax,%rbp,2), %ecx
btl $0xb, %ecx
jb 0x9ea7
cmpb $0x5f, %bpl
je 0x9f07
andl $0x400, %ecx            # imm = 0x400
jne 0x9f07
movzbl %bpl, %eax
cmpl $0x5c, %eax
jg 0xa07a
leal -0x21(%rax), %ecx
cmpl $0x1d, %ecx
movq 0x8(%rsp), %rbp
ja 0xa19e
leaq 0x3b04(%rip), %rax      # 0xd8a0
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r13, %rbp
movq %rbx, (%rsp)
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x3d, %bl
jne 0xa728
movl $0x8, (%r13)
jmp 0xa869
leaq (%r15,%r14), %rdi
addq $0x2, %rdi
movl $0xa, %esi
callq 0x10a0
movq %rax, %r15
incq %r15
jmp 0x9e27
leaq (%r15,%r14), %rdi
addq $0x2, %rdi
leaq 0x3b4b(%rip), %rsi      # 0xd94d
callq 0x11b0
movq %rax, %r15
testq %rax, %rax
jne 0x9e23
leaq 0x3b3a(%rip), %rdx      # 0xd950
movq %rbx, %rdi
movq %r13, %rsi
xorl %eax, %eax
callq 0x5230
addq $0x2, %r15
movq %rbp, %r13
cmpq %r15, 0x10(%r12)
jne 0x9e4a
leaq 0x3bfb(%rip), %rdx      # 0xda33
movq %rbx, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x5230
jmp 0x9e4a
incq %r15
movzbl (%r15), %eax
cmpl $0x20, %eax
je 0x9e47
cmpl $0x9, %eax
je 0x9e47
movq %r15, 0x10(%r12)
movq %r13, 0x8(%r12)
movq %r13, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x42, (%rax)
movq %rcx, 0x20(%rax)
movl $0x8, 0x28(%rax)
movq %rax, 0x8(%rbp)
addq %r14, %r15
addq $0x8, %r15
jmp 0x9e2a
movq %r12, 0x10(%rsp)
addq $-0x30, %rbp
movb 0x1(%r15,%r14), %cl
movsbq %cl, %rdx
movl $0x1, %r12d
testb $0x8, 0x1(%rax,%rdx,2)
je 0x9ef5
movl $0x2, %r12d
leaq (,%rbp,4), %rcx
addq %rbp, %rcx
leaq -0x30(%rdx,%rcx,2), %rbp
leaq (%r15,%r12), %rcx
movb (%r14,%rcx), %cl
movsbq %cl, %rdx
incq %r12
testb $0x8, 0x1(%rax,%rdx,2)
jne 0x9ecc
decl %r12d
movzbl %cl, %eax
orl $0x20, %eax
cmpl $0x75, %eax
jne 0x9f60
incl %r12d
xorl %edx, %edx
jmp 0x9f62
xorl %ebp, %ebp
leaq (%r15,%rbp), %rcx
movsbq 0x1(%r14,%rcx), %rcx
incq %rbp
cmpq $0x5f, %rcx
je 0x9f09
movzwl (%rax,%rcx,2), %ecx
andl $0x8, %ecx
jne 0x9f09
movq %r13, %r15
addq %rbp, %r15
leaq 0x3a3f(%rip), %rdx      # 0xd971
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0x9fae
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x32, (%rax)
jmp 0xa942
movb $0x1, %dl
movq %rbx, (%rsp)
movslq %r12d, %rax
leaq (%r15,%rax), %rcx
movzbl (%r14,%rcx), %ecx
orl $0x20, %ecx
cmpl $0x6c, %ecx
movl %edx, 0x18(%rsp)
jne 0x9fa1
leaq (%r15,%rax), %rcx
incq %rcx
movzbl (%r14,%rcx), %ecx
orl $0x20, %ecx
cmpl $0x6c, %ecx
jne 0x9fe7
movb $0x1, %al
movl %eax, 0x24(%rsp)
movq %r13, %rbx
addl $0x2, %r12d
jmp 0x9ff6
movq %r13, %rbx
movl $0x0, 0x24(%rsp)
jmp 0x9ff6
leaq 0x39c3(%rip), %rdx      # 0xd978
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa0c3
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x29, (%rax)
jmp 0xa942
movb $0x1, %cl
movl %ecx, 0x24(%rsp)
movq %r13, %rbx
incq %rax
movl %eax, %r12d
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x1, (%rax)
movq %rbx, 0x20(%rax)
movl %r12d, 0x28(%rax)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
movslq %r12d, %rax
addq %rax, %r15
cmpb $0x0, 0x18(%rsp)
je 0xa041
cmpb $0x0, 0x24(%rsp)
movq 0x10(%rsp), %r12
je 0xa056
xorl %eax, %eax
callq 0xad90
jmp 0xa066
cmpb $0x0, 0x24(%rsp)
movq 0x10(%rsp), %r12
je 0xa05f
xorl %eax, %eax
callq 0xad98
jmp 0xa066
xorl %eax, %eax
callq 0xad70
jmp 0xa066
xorl %eax, %eax
callq 0xad78
movq (%rsp), %rbx
addq %r14, %r15
movq %rax, 0x18(%r13)
movq %rbp, 0x10(%r13)
jmp 0x9e2a
leal -0x7b(%rax), %ecx
cmpl $0x3, %ecx
movq 0x8(%rsp), %rbp
ja 0xa12d
movq %r13, 0x10(%rsp)
leaq 0x3881(%rip), %rax      # 0xd918
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x1f, (%rax)
jmp 0xa6ba
leaq 0x38b1(%rip), %rdx      # 0xd97b
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa0f8
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2a, (%rax)
jmp 0xa942
leaq 0x3881(%rip), %rdx      # 0xd980
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa165
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2b, (%rax)
jmp 0xa942
cmpl $0x5d, %eax
je 0xa264
cmpl $0x5e, %eax
jne 0xa28a
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x18, (%rax)
jmp 0xa64f
leaq 0x381a(%rip), %rdx      # 0xd986
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa663
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2c, (%rax)
jmp 0xa942
cmpl $0x5b, %eax
jne 0xa28a
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x21, (%rax)
jmp 0xa64f
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x20, (%rax)
jmp 0xa6ba
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x27, (%rax)
jmp 0xa6ba
movq %rbx, %rbp
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x7c, %bl
jne 0xa6d4
movl $0x15, (%r13)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r13)
movl $0x2, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
addq %r14, %r15
addq $0x2, %r15
jmp 0xa6fc
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x22, (%rax)
jmp 0xa64f
movq %r13, %r15
jmp 0x9e27
movq %r13, %rbp
movq %rbx, (%rsp)
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x3d, %bl
jne 0xa704
movl $0x7, (%r13)
jmp 0xa869
movq %r13, %rbp
movq %rbx, (%rsp)
movzbl 0x1(%r15,%r14), %ebx
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpl $0x2d, %ebx
je 0xa861
cmpl $0x3e, %ebx
je 0xa857
cmpl $0x3d, %ebx
jne 0xa88a
movl $0xf, (%r13)
jmp 0xa869
movsbq 0x1(%r15,%r14), %rax
cmpq $0x5c, %rax
jne 0xa717
leaq (%r15,%r14), %rbp
addq $0x2, %rbp
movzbl (%rbp), %eax
cmpl $0x61, %eax
jg 0xa8b2
cmpl $0x2f, %eax
jle 0xa957
cmpl $0x30, %eax
je 0xa9c9
cmpl $0x5c, %eax
je 0xa9db
cmpl $0x61, %eax
jne 0xaa6b
movl $0x7, %eax
jmp 0xa9e7
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x23, (%rax)
jmp 0xa64f
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x1e, (%rax)
jmp 0xa64f
movq %r12, 0x10(%rsp)
leaq (%r15,%r14), %r12
incq %r12
movabsq $0x400000000004021, %rdx # imm = 0x400000000004021
movl $0xa2023, %ebp          # imm = 0xA2023
movq %r12, (%rsp)
movzbl (%r12), %eax
cmpl $0x5c, %eax
je 0xa3eb
testl %eax, %eax
je 0xa73b
cmpl $0x22, %eax
je 0xa751
incq %r12
jmp 0xa3cb
movzbl 0x1(%r12), %eax
leal -0x61(%rax), %ecx
cmpl $0x13, %ecx
ja 0xa3fe
btl %ecx, %ebp
jb 0xa40c
addl $-0x22, %eax
cmpl $0x3a, %eax
ja 0xa412
btq %rax, %rdx
jae 0xa412
addq $0x2, %r12
jmp 0xa3cb
leaq 0x1(%r12), %r13
movq %rbx, %rdi
movq %r12, %rsi
movq %rdx, %r12
leaq 0x2e71(%rip), %rdx      # 0xd298
xorl %eax, %eax
callq 0x5230
movq %r12, %rdx
movq %r13, %r12
jmp 0xa3cb
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x1d, (%rax)
jmp 0xa64f
movq %r13, %rbp
movq %rbx, (%rsp)
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x26, %bl
jne 0xa797
movl $0x14, (%r13)
jmp 0xa869
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x1c, (%rax)
jmp 0xa64f
movq %r13, %rbp
movq %rbx, (%rsp)
movzbl 0x1(%r15,%r14), %ebx
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpl $0x3c, %ebx
je 0xa809
cmpl $0x3d, %ebx
jne 0xa827
movl $0xc, (%r13)
jmp 0xa869
movq %r13, 0x10(%rsp)
cmpb $0x2e, 0x1(%r15,%r14)
jne 0xa69c
cmpb $0x2e, 0x2(%r15,%r14)
jne 0xa69c
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x28, (%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r13)
movl $0x3, 0x28(%r13)
movq %r13, 0x8(%rbp)
addq %r14, %r15
addq $0x3, %r15
jmp 0x9e2a
movq %r13, %rbp
movq %rbx, (%rsp)
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x3d, %bl
jne 0xa7aa
movl $0x10, (%r13)
jmp 0xa869
movq %r13, %rbp
movq %rbx, (%rsp)
movzbl 0x1(%r15,%r14), %ebx
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpl $0x2b, %ebx
je 0xa813
cmpl $0x3d, %ebx
jne 0xa837
movl $0xe, (%r13)
jmp 0xa869
movq %r13, %rbp
movq %rbx, (%rsp)
movzbl 0x1(%r15,%r14), %ebx
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpl $0x3e, %ebx
je 0xa81d
cmpl $0x3d, %ebx
jne 0xa847
movl $0xa, (%r13)
jmp 0xa869
movq %r13, %rbp
movq %rbx, (%rsp)
movb 0x1(%r15,%r14), %bl
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
cmpb $0x3d, %bl
jne 0xa7bd
movl $0x11, (%r13)
jmp 0xa869
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x24, (%rax)
movq %rcx, 0x20(%rax)
movl $0x1, 0x28(%rax)
movq %rax, 0x8(%rbp)
jmp 0x9e2a
leaq 0x3320(%rip), %rdx      # 0xd98a
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa7d0
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2d, (%rax)
jmp 0xa942
addq %r14, %r15
incq %r15
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x25, (%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r13)
movl $0x1, 0x28(%r13)
movq %r13, 0x8(%rbp)
jmp 0x9e2a
addq %r14, %r15
incq %r15
movl $0x17, (%r13)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r13)
movl $0x1, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
movq %rbp, %rbx
jmp 0x9e2a
addq %r14, %r15
incq %r15
movl $0xd, (%r13)
jmp 0xa898
movq %rax, 0x18(%rsp)
leaq (%r15,%r14), %rbp
incq %rbp
jmp 0xa9ec
addq %r14, %r15
incq %r15
movl $0x19, (%r13)
jmp 0xa898
leaq -0x1(%r12), %rsi
leaq 0x32b5(%rip), %rdx      # 0xd9fc
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5230
notl %r15d
addl %r12d, %r15d
subl %r14d, %r15d
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x2, (%rax)
movq (%rsp), %rax
movq %rax, 0x20(%r13)
movl %r15d, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
incq %r12
movq %r12, %r15
movq 0x10(%rsp), %r12
jmp 0x9e2a
addq %r14, %r15
incq %r15
movl $0x16, (%r13)
jmp 0xa898
addq %r14, %r15
incq %r15
movl $0x5, (%r13)
jmp 0xa898
addq %r14, %r15
incq %r15
movl $0x6, (%r13)
jmp 0xa898
leaq 0x31ba(%rip), %rdx      # 0xd991
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa8e0
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2e, (%rax)
jmp 0xa942
movl $0x1b, (%r13)
jmp 0xa869
movl $0x12, (%r13)
jmp 0xa869
movl $0x1a, (%r13)
jmp 0xa869
addq %r14, %r15
incq %r15
movl $0xb, (%r13)
jmp 0xa898
addq %r14, %r15
incq %r15
movl $0x3, (%r13)
jmp 0xa898
addq %r14, %r15
incq %r15
movl $0x9, (%r13)
jmp 0xa898
movl $0x26, (%r13)
jmp 0xa869
movl $0x13, (%r13)
movq %rbp, 0x20(%r13)
movl $0x2, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
addq %r14, %r15
addq $0x2, %r15
jmp 0xaa62
addq %r14, %r15
incq %r15
movl $0x4, (%r13)
movq %rbp, 0x20(%r13)
movl $0x1, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
jmp 0xaa62
cmpl $0x6d, %eax
jle 0xa96c
cmpl $0x6e, %eax
je 0xa9d4
cmpl $0x72, %eax
je 0xa9e2
cmpl $0x74, %eax
jne 0xaa6b
movl $0x9, %eax
jmp 0xa9e7
leaq 0x30af(%rip), %rdx      # 0xd996
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa912
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x2f, (%rax)
jmp 0xa942
leaq 0x3085(%rip), %rdx      # 0xd99e
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xa981
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %r13, %rcx
movq %rax, %r13
movl $0x30, (%rax)
movq %rcx, 0x20(%rax)
movl %ebp, 0x28(%rax)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
jmp 0x9e2a
cmpl $0x22, %eax
je 0xa9bb
cmpl $0x27, %eax
jne 0xaa6b
movl $0x27, %eax
jmp 0xa9e7
cmpl $0x62, %eax
je 0xa9c2
cmpl $0x66, %eax
jne 0xaa6b
movl $0xc, %eax
jmp 0xa9e7
leaq 0x301c(%rip), %rdx      # 0xd9a4
movq %r13, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
movq %r13, %r14
je 0xaa91
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x31, (%rax)
movq %r14, 0x20(%rax)
jmp 0xa946
movl $0x22, %eax
jmp 0xa9e7
movl $0x8, %eax
jmp 0xa9e7
movq $0x0, 0x18(%rsp)
jmp 0xa9ec
movl $0xa, %eax
jmp 0xa9e7
movl $0x5c, %eax
jmp 0xa9e7
movl $0xd, %eax
movq %rax, 0x18(%rsp)
movq %r13, 0x10(%rsp)
cmpb $0x27, 0x1(%rbp)
je 0xaa0c
leaq 0x1(%rbp), %rsi
leaq 0x3011(%rip), %rdx      # 0xda13
movq %rbx, %rdi
xorl %eax, %eax
callq 0x5230
movq %rbx, (%rsp)
leaq 0x2(%rbp), %rbx
subl %r15d, %ebp
subl %r14d, %ebp
addl $0x2, %ebp
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x1, (%rax)
movq 0x10(%rsp), %rax
movq %rax, 0x20(%r13)
movl %ebp, 0x28(%r13)
movq 0x8(%rsp), %rax
movq %r13, 0x8(%rax)
xorl %eax, %eax
callq 0xada0
movq %rax, 0x18(%r13)
movq 0x18(%rsp), %rax
movq %rax, 0x10(%r13)
movq %rbx, %r15
movq (%rsp), %rbx
jmp 0x9e2a
leaq 0x87b6(%rip), %rax      # 0x13228
movq (%rax), %rdi
leaq 0x281c(%rip), %rsi      # 0xd298
movq $0x0, 0x18(%rsp)
xorl %eax, %eax
callq 0x52f9
jmp 0xa9ec
movq %rbx, (%rsp)
leaq 0x2f11(%rip), %rdx      # 0xd9ad
movq %r14, %rbx
movq %r14, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xaaca
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x34, (%rax)
jmp 0xad17
leaq 0x2ee0(%rip), %rdx      # 0xd9b1
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xaafc
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x35, (%rax)
jmp 0xad17
leaq 0x2eb3(%rip), %rdx      # 0xd9b6
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xab2e
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x36, (%rax)
jmp 0xad17
leaq 0x2e86(%rip), %rdx      # 0xd9bb
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xab60
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x37, (%rax)
jmp 0xad17
leaq 0x2e59(%rip), %rdx      # 0xd9c0
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xab92
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x38, (%rax)
jmp 0xad17
leaq 0x2e2d(%rip), %rdx      # 0xd9c6
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xabc4
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x39, (%rax)
jmp 0xad17
leaq 0x2e02(%rip), %rdx      # 0xd9cd
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xabf6
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x3d, (%rax)
jmp 0xad17
leaq 0x2dce(%rip), %rdx      # 0xd9cb
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xac28
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x3e, (%rax)
jmp 0xad17
leaq 0x2da5(%rip), %rdx      # 0xd9d4
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xac5a
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x33, (%rax)
jmp 0xad17
leaq 0x2d7a(%rip), %rdx      # 0xd9db
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xac8c
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x3a, (%rax)
jmp 0xad17
leaq 0x2d4f(%rip), %rdx      # 0xd9e2
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xacbb
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x3b, (%rax)
jmp 0xad17
leaq 0x2d25(%rip), %rdx      # 0xd9e7
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xacea
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x3c, (%rax)
jmp 0xad17
leaq 0x2cfc(%rip), %rdx      # 0xd9ed
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
testb %al, %al
je 0xad23
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
movl $0x40, (%rax)
movq %rbx, 0x20(%rax)
movl %ebp, 0x28(%rax)
jmp 0xa8a4
leaq 0x2ccb(%rip), %rdx      # 0xd9f5
movq %rbx, %rdi
movl %ebp, %esi
callq 0x9588
movl %eax, %r14d
movl $0x1, %edi
movl $0x30, %esi
callq 0x10d0
movq %rax, %r13
testb %r14b, %r14b
je 0xad58
movl $0x3f, (%r13)
jmp 0xad60
movl $0x0, (%r13)
movq %rbx, 0x20(%r13)
movl %ebp, 0x28(%r13)
jmp 0xa8a4
nopl (%rax)