// File: /workspace/github_cpp_makefile_star2_O3/Eronana[P]strawberry/src/lexer.cpp
// Function: Lexer::next()
Token Lexer::next()
{
    if (!fp) return createToken(TOKEN_ERROR, 0, "No source file.");
    Token comment_error, t;
    if (!skipComment(comment_error)) return comment_error;
    skipWhiteSpace();
    int c, i;
    if ((c = lookHead()) == CHAR_EOF) return createToken(TOKEN_EOF, 0);
    switch (c)
    {
    case '+':
        switch (lookHead(1))
        {
        case '+':
            return createToken(TOKEN_INCREMENT, 2);
        case '=':
            return createToken(TOKEN_ADD_ASSIGN, 2);
        default:
            return createToken(TOKEN_ADD);
        }
    case '-':
        switch (lookHead(1))
        {
        case '-':
            return createToken(TOKEN_DECREMENT, 2);
        case '=':
            return createToken(TOKEN_SUB_ASSIGN, 2);
        default:
            return createToken(TOKEN_SUB);
        }
    case '*':
        if (lookHead(1) == '=') return createToken(TOKEN_MUL_ASSIGN, 2);
        return createToken(TOKEN_MUL);
    case '/':
        if (lookHead(1) == '=') return createToken(TOKEN_DIV_ASSIGN, 2);
        return createToken(TOKEN_DIV);
    case '%':
        if (lookHead(1) == '=') return createToken(TOKEN_MOD_ASSIGN, 2);
        return createToken(TOKEN_MOD);
    case '(':
        return createToken(TOKEN_LEFT_PAREN);
    case ')':
        return createToken(TOKEN_RIGHT_PAREN);
    case '[':
        return createToken(TOKEN_LEFT_SQUARE_BARCKET);
    case ']':
        return createToken(TOKEN_RIGHT_SQUARE_BARCKET);
    case '{':
        return createToken(TOKEN_LEFT_BARCKET);
    case '}':
        return createToken(TOKEN_RIGHT_BARCKET);
    case '|':
        switch (lookHead(1))
        {
        case '|':
            return createToken(TOKEN_LOGIC_OR, 2);
        case '=':
            return createToken(TOKEN_BITWISE_OR_ASSIGN, 2);
        default:
            return createToken(TOKEN_BITWISE_OR);
        }
    case '&':
        switch (lookHead(1))
        {
        case '&':
            return createToken(TOKEN_LOGIC_AND, 2);
        case '=':
            return createToken(TOKEN_BITWISE_AND_ASSIGN, 2);
        default:
            return createToken(TOKEN_BITWISE_AND);
        }
    case '~':
        return createToken(TOKEN_BITWISE_NOT);
    case '^':
        if (lookHead(1) == '=') return createToken(TOKEN_BITWISE_XOR_ASSIGN, 2);
        return createToken(TOKEN_BITWISE_XOR);
    case '!':
        if (lookHead(1) == '=') return createToken(TOKEN_INEQUAL, 2);
        return createToken(TOKEN_NEGATION);
    case '=':
        if (lookHead(1) == '=') return createToken(TOKEN_EQUAL, 2);
        return createToken(TOKEN_ASSIGN);
    case '>':
        if (lookHead(1) == '>')
        {
            if (lookHead(2) == '=') return createToken(TOKEN_RIGHT_SHIFT_ASSIGN, 3);
            return createToken(TOKEN_RIGHT_SHIFT, 2);
        }
        else if (lookHead(1) == '=') return createToken(TOKEN_GREATER_EQUAL, 2);
        return createToken(TOKEN_GREATER);
    case '<':
        if (lookHead(1) == '<')
        {
            if (lookHead(2) == '=') return createToken(TOKEN_LEFT_SHIFT_ASSIGN, 3);
            return createToken(TOKEN_LEFT_SHIFT, 2);
        }
        else if (lookHead(1) == '=') return createToken(TOKEN_LESS_EQUAL, 2);
        return createToken(TOKEN_LESS);
    case ';':
        return createToken(TOKEN_SEMICOLON);
    case ',':
        return createToken(TOKEN_COMMA);
    case ':':
        return createToken(TOKEN_COLON);
    case '?':
        return createToken(TOKEN_QUESTIONMARK);
    case '\'':
    case '"':
        for (i = 1; (lookHead(i) != c || lookHead(i - 1) == '\\') && lookHead(i) != '\n' && lookHead(i) != CHAR_EOF; i++);
        if (lookHead(i) == '\n') return createToken(TOKEN_ERROR, i, "Unterminated string literal in new line");
        if (lookHead(i) == CHAR_EOF) return createToken(TOKEN_ERROR, i, "Unterminated string literal in EOF");
        return createToken(TOKEN_STRING_LITERAL, i + 1);
    default:
        if (isIdentifierHead(c))
        {
            for (i = 1; isIdentifier(lookHead(i)); i++);
            t = createToken(TOKEN_IDENTIFIER, i);
            if (t.raw == "true" || t.raw == "false") t.type = TOKEN_BOOL_LITERAL;
            if (t.raw == "null") t.type = TOKEN_NULL_LITERAL;
            return t;
        }
        if (c == '0')
            switch (lookHead(1))
            {
            case 'b':
            case 'B':
                for (i = 2; isBin(lookHead(i)); i++);
                return createToken(TOKEN_BIN_INTEGER_LITERAL, i);
            case 'x':
            case 'X':
                for (i = 2; isHex(lookHead(i)); i++);
                return createToken(TOKEN_HEX_INTEGER_LITERAL, i);
            case '.':
                break;
            default:
                for (i = 1; isOct(lookHead(i)); i++);
                return createToken(TOKEN_OCT_INTEGER_LITERAL, i);
            }
        if (c == '.')
        {
            if (isNumber(lookHead(1)))
            {
                for (i = 1; isNumber(lookHead(i)); i++);
                if (lookHead(i) == 'F' || lookHead(i) == 'f') return createToken(TOKEN_FLOAT_LITERAL, i + 1);
                return createToken(TOKEN_FLOAT_LITERAL, i);
            }
            else
                return createToken(TOKEN_DOT);
        }
        if (isNumber(c))
        {
            for (i = 1; isNumber(lookHead(i)); i++);
            if (lookHead(i) != '.')
            {
                if (lookHead(i) == 'F' || lookHead(i) == 'f') return createToken(TOKEN_FLOAT_LITERAL, i + 1);
                return createToken(TOKEN_DEC_INTEGER_LITERAL, i);
            }
            for (i++; isNumber(lookHead(i)); i++);
            if (lookHead(i) == 'F' || lookHead(i) == 'f') i++;
            return createToken(TOKEN_FLOAT_LITERAL, i);
        }
        return createToken(TOKEN_ERROR, 1, "Unexcepted symbol");
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpq $0x0, (%rsi)
je 0x1befa
leaq 0x28(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x48(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rax, -0x8(%r13)
movb %al, (%r13)
leaq 0x78(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x98(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1ba2e
testb %al, %al
je 0x1bf47
movq %r14, %rdi
callq 0x1b9aa
movq %r14, %rdi
xorl %esi, %esi
callq 0x1b732
movl %eax, %ebp
movzbl %al, %eax
movl $0x1, %r15d
cmpl $0x5c, %eax
jg 0x1bfe8
leal -0x21(%rax), %ecx
cmpl $0x1e, %ecx
ja 0x1c0b0
leaq 0x5290(%rip), %rdx      # 0x21128
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movl $0x2, %r15d
leal -0x1(%r15), %r12d
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
cmpb %bpl, %al
jne 0x1becf
leal -0x2(%r15), %esi
movq %r14, %rdi
callq 0x1b732
cmpb $0x5c, %al
jne 0x1c045
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
cmpb $0xa, %al
je 0x1c045
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
cmpb $-0x1, %al
je 0x1c045
incl %r15d
jmp 0x1bea7
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x553f(%rip), %rsi      # 0x21449
leaq 0x5547(%rip), %rdx      # 0x21458
leaq 0x8(%rsp), %rdi
callq 0xb1b4
leaq 0x8(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
xorl %ecx, %ecx
callq 0x1b970
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c594
movq 0x18(%rsp), %rsi
jmp 0x1c58c
movl 0x10(%rsp), %eax
movl %eax, 0x8(%rbx)
movq 0x8(%rsp), %rax
movq %rax, (%rbx)
leaq 0x20(%rbx), %rax
movq %rax, 0x10(%rbx)
movq 0x18(%rsp), %rcx
leaq 0x28(%rsp), %rdx
cmpq %rdx, %rcx
je 0x1bf7c
movq %rcx, 0x10(%rbx)
movq 0x28(%rsp), %rax
movq %rax, 0x20(%rbx)
jmp 0x1bf82
movups (%rdx), %xmm0
movups %xmm0, (%rax)
movq 0x20(%rsp), %rax
movq %rax, 0x18(%rbx)
movq %rdx, 0x18(%rsp)
movq $0x0, 0x20(%rsp)
movb $0x0, 0x28(%rsp)
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq 0x38(%rsp), %rcx
cmpq %r13, %rcx
je 0x1bfbf
movq %rcx, 0x30(%rbx)
movq 0x48(%rsp), %rax
movq %rax, 0x40(%rbx)
jmp 0x1bfc7
movups (%r13), %xmm0
movups %xmm0, (%rax)
movq 0x40(%rsp), %rax
movq %rax, 0x38(%rbx)
movq %r13, 0x38(%rsp)
movq $0x0, 0x40(%rsp)
movb $0x0, 0x48(%rsp)
jmp 0x1c520
cmpl $0x7a, %eax
jle 0x1c013
leal -0x7b(%rax), %ecx
cmpl $0x3, %ecx
ja 0x1c09c
leaq 0x51a4(%rip), %rax      # 0x211a4
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x12, %edx
jmp 0x1c512
cmpl $0x5d, %eax
je 0x1c104
cmpl $0x5e, %eax
jne 0x1c10e
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl $0x1c, %edx
jmp 0x1c270
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
cmpb $0xa, %al
jne 0x1c390
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x53ee(%rip), %rsi      # 0x21459
leaq 0x540e(%rip), %rdx      # 0x21480
leaq 0xa8(%rsp), %rdi
callq 0xb1b4
leaq 0xa8(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r12d, %ecx
callq 0x1b970
jmp 0x1c71a
cmpl $0xff, %eax
jne 0x1c10e
xorl %r15d, %r15d
movl $0x1, %edx
jmp 0x1c512
cmpl $0x5b, %eax
jne 0x1c10e
movl $0x10, %edx
jmp 0x1c512
movl $0x13, %edx
jmp 0x1c512
movl $0x1a, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
movl $0x2, %r15d
cmpb $0x7c, %al
je 0x1c5a9
movzbl %al, %eax
cmpl $0x3d, %eax
jne 0x1c5b3
movl $0x15, %edx
jmp 0x1c512
movl $0x11, %edx
jmp 0x1c512
cmpb $0x5f, %bpl
je 0x1c3ec
movl %ebp, %ecx
andb $-0x21, %cl
addb $-0x41, %cl
cmpb $0x19, %cl
jbe 0x1c3ec
cmpb $0x2e, %bpl
je 0x1c68d
cmpl $0x30, %eax
jne 0x1c6cb
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
movzbl %al, %eax
cmpl $0x57, %eax
jle 0x1c774
cmpl $0x58, %eax
je 0x1c16c
cmpl $0x62, %eax
je 0x1c782
cmpl $0x78, %eax
jne 0x1c850
movl $0x2, %r15d
movabsq $0x3f0000003f, %r12     # imm = 0x3F0000003F
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
leal -0x30(%rax), %ecx
cmpb $0xa, %cl
jb 0x1c1a8
movzbl %al, %eax
addl $-0x41, %eax
cmpl $0x25, %eax
ja 0x1c846
btq %rax, %r12
jae 0x1c846
incl %r15d
jmp 0x1c17c
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
cmpb $0x3e, %al
jne 0x1c4d9
movq %r14, %rdi
movl $0x2, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl $0x22, %edx
jmp 0x1c2ed
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl $0x20, %edx
jmp 0x1c270
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl %r15d, %edx
xorl $0xb, %edx
jmp 0x1c50f
movl $0xf, %edx
jmp 0x1c512
movl $0x2a, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl %r15d, %edx
xorl $0x9, %edx
jmp 0x1c50f
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl $0x1e, %edx
subl %r15d, %edx
jmp 0x1c50f
movl $0x2c, %edx
jmp 0x1c512
movl $0x2d, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
movl $0x2, %r15d
cmpb $0x2d, %al
je 0x1c5c3
movzbl %al, %eax
cmpl $0x3d, %eax
jne 0x1c5e1
movl $0x6, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
cmpb $0x3c, %al
jne 0x1c4f5
movq %r14, %rdi
movl $0x2, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl $0x26, %edx
subl %r15d, %edx
orl $0x2, %r15d
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
movl $0x2, %r15d
cmpb $0x2b, %al
je 0x1c5cd
movzbl %al, %eax
cmpl $0x3d, %eax
jne 0x1c5f1
movl $0x3, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
movl %r15d, %edx
xorl $0xd, %edx
jmp 0x1c50f
movl $0xe, %edx
jmp 0x1c512
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
movl $0x2, %r15d
cmpb $0x26, %al
je 0x1c5d7
movzbl %al, %eax
cmpl $0x3d, %eax
jne 0x1c601
movl $0x18, %edx
jmp 0x1c512
movl $0x29, %edx
jmp 0x1c512
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
movl $0x2f, %edx
cmpb $-0x1, %al
jne 0x1c512
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x50c6(%rip), %rsi      # 0x21481
leaq 0x50e1(%rip), %rdx      # 0x214a3
leaq 0xa8(%rsp), %rdi
callq 0xb1b4
leaq 0xa8(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl %r12d, %ecx
callq 0x1b970
jmp 0x1c71a
leaq 0x68(%rsp), %r15
movl $0x1, %ebp
movq %r14, %rdi
movl %ebp, %esi
callq 0x1b732
leal -0x30(%rax), %ecx
cmpb $0xa, %cl
jb 0x1c414
cmpb $0x5f, %al
je 0x1c414
andb $-0x21, %al
addb $-0x41, %al
cmpb $0x19, %al
ja 0x1c418
incl %ebp
jmp 0x1c3f6
leaq 0xa8(%rsp), %rdi
movq %r14, %rsi
movl $0x2e, %edx
movl %ebp, %ecx
callq 0x1b898
leaq 0x58(%rsp), %rdi
leaq 0xa8(%rsp), %r14
movq %r14, %rsi
callq 0x1c8f6
movq %r14, %rdi
callq 0x7cac
leaq 0x3f50(%rip), %rsi      # 0x203a3
movq %r15, %rdi
callq 0x60d0
testl %eax, %eax
je 0x1c472
leaq 0x3f42(%rip), %rsi      # 0x203a8
movq %r15, %rdi
callq 0x60d0
testl %eax, %eax
jne 0x1c47a
movl $0x34, 0x58(%rsp)
leaq 0x3f5b(%rip), %rsi      # 0x203dc
movq %r15, %rdi
callq 0x60d0
testl %eax, %eax
jne 0x1c495
movl $0x35, 0x58(%rsp)
movl 0x60(%rsp), %eax
movl %eax, 0x8(%rbx)
movq 0x58(%rsp), %rax
movq %rax, (%rbx)
leaq 0x20(%rbx), %rax
movq %rax, 0x10(%rbx)
movq 0x68(%rsp), %rcx
leaq 0x78(%rsp), %rdx
cmpq %rdx, %rcx
leaq 0x98(%rsp), %rsi
je 0x1c611
movq %rcx, 0x10(%rbx)
movq 0x78(%rsp), %rax
movq %rax, 0x20(%rbx)
jmp 0x1c617
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
leal 0x23(%r15), %edx
jmp 0x1c50f
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
xorl %r15d, %r15d
cmpb $0x3d, %al
sete %r15b
leal 0x27(%r15), %edx
incl %r15d
movq %rbx, %rdi
movq %r14, %rsi
movl %r15d, %ecx
callq 0x1b898
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x1c545
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x6230
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x1c561
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x6230
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x1c578
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x6230
movq 0x18(%rsp), %rdi
leaq 0x28(%rsp), %rax
cmpq %rax, %rdi
je 0x1c594
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6230
movq %rbx, %rax
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x14, %edx
jmp 0x1c512
movl $0x1, %r15d
movl $0x16, %edx
jmp 0x1c512
movl $0x5, %edx
jmp 0x1c512
movl $0x2, %edx
jmp 0x1c512
movl $0x17, %edx
jmp 0x1c512
movl $0x1, %r15d
movl $0x7, %edx
jmp 0x1c512
movl $0x1, %r15d
movl $0x4, %edx
jmp 0x1c512
movl $0x1, %r15d
movl $0x19, %edx
jmp 0x1c512
movups (%rdx), %xmm0
movups %xmm0, (%rax)
movq 0x70(%rsp), %rax
movq %rax, 0x18(%rbx)
movq %rdx, 0x68(%rsp)
movq $0x0, 0x70(%rsp)
movb $0x0, 0x78(%rsp)
leaq 0x40(%rbx), %rax
movq %rax, 0x30(%rbx)
movq 0x88(%rsp), %rcx
cmpq %rsi, %rcx
je 0x1c65a
movq %rcx, 0x30(%rbx)
movq 0x98(%rsp), %rax
movq %rax, 0x40(%rbx)
jmp 0x1c660
movups (%rsi), %xmm0
movups %xmm0, (%rax)
movq 0x90(%rsp), %rax
movq %rax, 0x38(%rbx)
movq %rsi, 0x88(%rsp)
movq $0x0, 0x90(%rsp)
movb $0x0, 0x98(%rsp)
jmp 0x1c520
movl $0x1, %r15d
movq %r14, %rdi
movl $0x1, %esi
callq 0x1b732
addb $-0x30, %al
movl $0x2b, %edx
cmpb $0x9, %al
ja 0x1c512
movl $0x1, %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
addb $-0x30, %al
cmpb $0x9, %al
ja 0x1c740
incl %r15d
jmp 0x1c6b5
addb $-0x30, %bpl
cmpb $0x9, %bpl
jbe 0x1c79e
leaq 0xb8(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x4db8(%rip), %rsi      # 0x214a4
leaq 0x4dc2(%rip), %rdx      # 0x214b5
leaq 0xa8(%rsp), %rdi
callq 0xb1b4
leaq 0xa8(%rsp), %r8
movq %rbx, %rdi
movq %r14, %rsi
xorl %edx, %edx
movl $0x1, %ecx
callq 0x1b970
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c520
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1c520
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
cmpb $0x46, %al
je 0x1c767
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
movl $0x36, %edx
cmpb $0x66, %al
jne 0x1c512
incl %r15d
movl $0x36, %edx
jmp 0x1c512
cmpl $0x2e, %eax
je 0x1c79e
cmpl $0x42, %eax
jne 0x1c850
movl $0x2, %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
andb $-0x2, %al
cmpb $0x30, %al
jne 0x1c808
incl %r15d
jmp 0x1c788
movl $0x2, %r12d
leal -0x1(%r12), %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
addb $-0x30, %al
cmpb $0x9, %al
ja 0x1c7bf
incl %r12d
jmp 0x1c7a4
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
cmpb $0x2e, %al
jne 0x1c812
movq %r14, %rdi
movl %r12d, %esi
callq 0x1b732
addb $-0x30, %al
incl %r12d
cmpb $0xa, %al
jb 0x1c7ce
leal -0x1(%r12), %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
cmpb $0x46, %al
je 0x1c839
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
movl $0x36, %edx
jmp 0x1c831
movl $0x30, %edx
jmp 0x1c512
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
cmpb $0x46, %al
je 0x1c839
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
movl $0x32, %edx
cmpb $0x66, %al
jne 0x1c512
movl $0x36, %edx
movl %r12d, %r15d
jmp 0x1c512
movl $0x33, %edx
jmp 0x1c512
movl $0x1, %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x1b732
andb $-0x8, %al
cmpb $0x30, %al
jne 0x1c86c
incl %r15d
jmp 0x1c856
movl $0x31, %edx
jmp 0x1c512
jmp 0x1c880
jmp 0x1c8d7
jmp 0x1c880
jmp 0x1c8d7
jmp 0x1c8d7
movq %rax, %rbx
movq 0xa8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c8da
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1c8da
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x1c8ee
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x1c8ee
movq %rax, %rbx
jmp 0x1c8ee
jmp 0x1c8d7
jmp 0x1c8d7
jmp 0x1c8d7
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x7cac
leaq 0x8(%rsp), %rdi
callq 0x7cac
movq %rbx, %rdi
callq 0x6450