// File: /workspace/github_c_makefile_star2_O3/ryvnf[P]czc/lex.c
// Function: esc_char
int esc_char(int quote, FILE *fp)
{
    int c;
    while ((c = lex_getc()) != EOF) {
        if (c == '\n') {
            fatal(loc_new(lex_filepath, linenr), "missing terminating %c",
                    quote);
            return EOF;
        }
        if (c == quote) {
            return EOF;
        }

        if (c == '\\') {
            c = lex_getc();
            if (c == 'x') {
                int res = 0;
                if (hexdigit(&res, c = lex_getc()) < 0) {
                    lex_ungetc(c);
                    fatal(loc_new(lex_filepath, linenr),
                            "missing hex digit after \\x");
                    return 0;
                }
                if (hexdigit(&res, c = lex_getc()) < 0) {
                    lex_ungetc(c);
                }
                return res;
            }

            if (c >= '0' && c <= '7') {
                int res = 0;
                octdigit(&res, c);
                for (int i = 0; i < 2; i++) {
                    if (octdigit(&res, c = lex_getc()) < 0) {
                        lex_ungetc(c);
                        break;
                    }
                }
                return res;
            }

            switch (c) {
                case 'a': return '\n';
                case 'b': return '\b';
                case 'f': return '\f';
                case 'n': return '\n';
                case 't': return '\t';
                case 'v': return '\v';
                case '\\':
                case '"':
                case '\'':
                          return c;
            }

            fprintf(stderr, "unknown escape \\%c\n", c);
            return c;
        }

        return c;
    }
    return EOF;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebp
movq 0xbc78(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $-0x1, %eax
je 0x81b5
cmpl $0xa, %eax
je 0x82ff
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl %ebp, %eax
je 0x81b7
movl %eax, %ebx
cmpl $0x5c, %eax
jne 0x81b7
movq 0xbc4e(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $0x78, %eax
je 0x81be
movl %eax, %ebp
cmpl $0xa, %eax
je 0x82c5
movl %ebp, %eax
andl $-0x8, %eax
cmpl $0x30, %eax
jne 0x81e8
addl $-0x30, %ebp
movb $0x1, %r14b
movl %ebp, %ebx
movq 0xbc20(%rip), %rdi      # 0x13da8
callq 0x2240
movl %eax, %ecx
andl $-0x8, %ecx
cmpl $0x30, %ecx
jne 0x823f
leal (%rax,%rbx,8), %ebx
addl $-0x30, %ebx
js 0x823f
testb $0x1, %r14b
movl $0x0, %r14d
jne 0x8181
jmp 0x81b7
movl %eax, %ebx
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq
movq 0xbbe3(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $0xa, %eax
je 0x832c
leal -0x30(%rax), %ebx
cmpl $0xa, %ebx
jb 0x822e
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0x821d
addl $-0x57, %eax
jmp 0x822c
movl $0xa, %ebx
cmpl $0x61, %ebp
jle 0x827b
cmpl $0x6d, %ebp
jle 0x82b1
cmpl $0x6e, %ebp
je 0x81b7
cmpl $0x74, %ebp
je 0x82f5
cmpl $0x76, %ebp
jne 0x82ca
movl $0xb, %ebx
jmp 0x81b7
leal -0x41(%rax), %ecx
cmpl $0x5, %ecx
ja 0x8332
addl $-0x37, %eax
movl %eax, %ebx
movq 0xbb73(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $0xa, %eax
jne 0x8252
movq 0xbb62(%rip), %rsi      # 0x13da8
movl %eax, %edi
callq 0x2170
jmp 0x81b7
leal -0x30(%rax), %ecx
cmpl $0x9, %ecx
ja 0x8266
shll $0x4, %ebx
orl %ebx, %ecx
movl %ecx, %ebx
jmp 0x81b7
leal -0x61(%rax), %ecx
cmpl $0x5, %ecx
ja 0x828c
shll $0x4, %ebx
addl %eax, %ebx
addl $-0x57, %ebx
jmp 0x81b7
cmpl $0x5b, %ebp
jg 0x82a1
cmpl $0x22, %ebp
je 0x82e4
cmpl $0x27, %ebp
je 0x82e4
jmp 0x82ca
leal -0x41(%rax), %ecx
cmpl $0x5, %ecx
ja 0x823f
shll $0x4, %ebx
addl %eax, %ebx
addl $-0x37, %ebx
jmp 0x81b7
cmpl $0x5c, %ebp
je 0x82e4
cmpl $0x61, %ebp
je 0x81b7
jmp 0x82ca
cmpl $0x62, %ebp
je 0x82eb
cmpl $0x66, %ebp
jne 0x82ca
movl $0xc, %ebx
jmp 0x81b7
callq 0x229b
movq 0xad27(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x61cf(%rip), %rsi      # 0xe4aa
movl %ebp, %edx
xorl %eax, %eax
callq 0x2130
movl %ebp, %ebx
jmp 0x81b7
movl $0x8, %ebx
jmp 0x81b7
movl $0x9, %ebx
jmp 0x81b7
movl 0xba9b(%rip), %esi      # 0x13da0
incl %esi
movl %esi, 0xba93(%rip)      # 0x13da0
movq 0xba9c(%rip), %rdi      # 0x13db0
callq 0x8c38
leaq 0x6158(%rip), %rsi      # 0xe478
movq %rax, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x4fa1
incl 0xba6e(%rip)            # 0x13da0
movl %eax, %edi
callq 0x810c
movq 0xba70(%rip), %rdi      # 0x13db0
movl 0xba5a(%rip), %esi      # 0x13da0
callq 0x8c38
leaq 0x613d(%rip), %rsi      # 0xe48f
movq %rax, %rdi
xorl %eax, %eax
callq 0x4fa1