// File: /workspace/github_c_makefile_star2_O1/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
subq $0x10, %rsp
movl %edi, %ebp
movq 0xbc1d(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $-0x1, %eax
je 0x8226
cmpl $0xa, %eax
je 0x8367
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
cmpl %ebp, %eax
je 0x8228
movl %eax, %ebx
cmpl $0x5c, %eax
jne 0x8228
movq 0xbbef(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $0x78, %eax
je 0x8233
movl %eax, %ebp
cmpl $0xa, %eax
jne 0x81d0
incl 0xbbd0(%rip)            # 0x13da0
movl %ebp, %eax
andl $-0x8, %eax
cmpl $0x30, %eax
jne 0x82b3
addl $-0x30, %ebp
movl $0x1, %r14d
movl %ebp, %ebx
movq 0xbbb8(%rip), %rdi      # 0x13da8
callq 0x2240
cmpl $0xa, %eax
jne 0x8200
incl 0xbba0(%rip)            # 0x13da0
movl %eax, %edx
andl $-0x8, %edx
leal (%rax,%rbx,8), %ecx
addl $-0x30, %ecx
cmpl $0x30, %edx
cmovel %ecx, %ebx
jne 0x82df
testl %ecx, %ecx
js 0x82df
decl %r14d
je 0x81e9
jmp 0x8228
movl %eax, %ebx
movl %ebx, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %rbp
retq
movl $0x0, 0xc(%rsp)
movq 0xbb66(%rip), %rdi      # 0x13da8
callq 0x2240
movl %eax, %ebx
cmpl $0xa, %eax
jne 0x8254
incl 0xbb4c(%rip)            # 0x13da0
leaq 0xc(%rsp), %rdi
movl %ebx, %esi
callq 0x80ed
testl %eax, %eax
js 0x8394
movq 0xbb39(%rip), %rdi      # 0x13da8
callq 0x2240
movl %eax, %ebx
cmpl $0xa, %eax
jne 0x8281
incl 0xbb1f(%rip)            # 0x13da0
leaq 0xc(%rsp), %rdi
movl %ebx, %esi
callq 0x80ed
testl %eax, %eax
jns 0x82aa
cmpl $0xa, %ebx
jne 0x829c
decl 0xbb04(%rip)            # 0x13da0
movq 0xbb05(%rip), %rsi      # 0x13da8
movl %ebx, %edi
callq 0x2170
movl 0xc(%rsp), %ebx
jmp 0x8228
movl $0xa, %ebx
cmpl $0x61, %ebp
jle 0x82fd
cmpl $0x6d, %ebp
jle 0x831e
cmpl $0x6e, %ebp
je 0x8228
cmpl $0x74, %ebp
je 0x833c
cmpl $0x76, %ebp
jne 0x8346
movl $0xb, %ebx
jmp 0x8228
cmpl $0xa, %eax
jne 0x82ea
decl 0xbab6(%rip)            # 0x13da0
movq 0xbab7(%rip), %rsi      # 0x13da8
movl %eax, %edi
callq 0x2170
jmp 0x8228
cmpl $0x5b, %ebp
jg 0x830e
cmpl $0x22, %ebp
je 0x8360
cmpl $0x27, %ebp
je 0x8360
jmp 0x8346
cmpl $0x5c, %ebp
je 0x8360
cmpl $0x61, %ebp
je 0x8228
jmp 0x8346
cmpl $0x62, %ebp
je 0x8332
cmpl $0x66, %ebp
jne 0x8346
movl $0xc, %ebx
jmp 0x8228
movl $0x8, %ebx
jmp 0x8228
movl $0x9, %ebx
jmp 0x8228
movq 0xacab(%rip), %rax      # 0x12ff8
movq (%rax), %rdi
leaq 0x6153(%rip), %rsi      # 0xe4aa
movl %ebp, %edx
xorl %eax, %eax
callq 0x2130
movl %ebp, %ebx
jmp 0x8228
movl 0xba33(%rip), %esi      # 0x13da0
incl %esi
movl %esi, 0xba2b(%rip)      # 0x13da0
movq 0xba34(%rip), %rdi      # 0x13db0
callq 0x8db4
leaq 0x60f0(%rip), %rsi      # 0xe478
movq %rax, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x5011
movl %ebx, %edi
callq 0x8163
movq 0xba0e(%rip), %rdi      # 0x13db0
movl 0xb9f8(%rip), %esi      # 0x13da0
callq 0x8db4
leaq 0x60db(%rip), %rsi      # 0xe48f
movq %rax, %rdi
xorl %eax, %eax
callq 0x5011