// File: /workspace/github_c_makefile_star2_O3/orangeduck[P]mpc/mpc.c
// Function: mpcf_re_escape
static mpc_val_t *mpcf_re_escape(mpc_val_t *x, void* data) {

  int mode = *((int*)data);
  char *s = x;
  mpc_parser_t *p;

  /* Any Character */
  if (s[0] == '.') {
    free(s);
    if (mode & MPC_RE_DOTALL) {
      return mpc_any();
    } else {
      return mpc_expect(mpc_noneof("\n"), "any character except a newline");
    }
  }

  /* Start of Input */
  if (s[0] == '^') {
    free(s);
    if (mode & MPC_RE_MULTILINE) {
      return mpc_and(2, mpcf_snd, mpc_or(2, mpc_soi(), mpc_boundary_newline()), mpc_lift(mpcf_ctor_str), free);
    } else {
      return mpc_and(2, mpcf_snd, mpc_soi(), mpc_lift(mpcf_ctor_str), free);
    }
  }

  /* End of Input */
  if (s[0] == '$') {
    free(s);
    if (mode & MPC_RE_MULTILINE) {
      return mpc_or(2,
        mpc_newline(),
        mpc_and(2, mpcf_snd, mpc_eoi(), mpc_lift(mpcf_ctor_str), free));
    } else {
      return mpc_or(2,
        mpc_and(2, mpcf_fst, mpc_newline(), mpc_eoi(), free),
        mpc_and(2, mpcf_snd, mpc_eoi(), mpc_lift(mpcf_ctor_str), free));
    }
  }

  /* Regex Escape */
  if (s[0] == '\\') {
    p = mpc_re_escape_char(s[1]);
    p = (p == NULL) ? mpc_char(s[1]) : p;
    free(s);
    return p;
  }

  /* Regex Standard */
  p = mpc_char(s[0]);
  free(s);
  return p;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl (%rsi), %ebp
movb (%rdi), %r14b
movzbl %r14b, %eax
cmpl $0x5b, %eax
jg 0x87a6
cmpl $0x24, %eax
je 0x8879
cmpl $0x2e, %eax
jne 0x884d
movq %rbx, %rdi
callq 0x4580
testb $0x2, %bpl
jne 0x8993
leaq 0x6085(%rip), %rdi      # 0xe81a
callq 0x4190
leaq 0x5fa1(%rip), %rsi      # 0xe742
jmp 0x89ad
cmpl $0x5c, %eax
je 0x893b
cmpl $0x5e, %eax
jne 0x884d
movq %rbx, %rdi
callq 0x4580
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x1b, 0x30(%rax)
leaq 0x5c23(%rip), %rsi      # 0xe3fd
movq %rax, %rdi
callq 0x4520
movq %rax, %rbx
testb $0x1, %bpl
je 0x8805
callq 0x4030
movl $0x2, %edi
movq %rbx, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x4500
movq %rax, %rbx
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x3, 0x30(%rax)
movq 0xa759(%rip), %rcx      # 0x12f78
movq %rcx, 0x8(%rax)
movq 0xa79e(%rip), %rsi      # 0x12fc8
movq 0xa6ef(%rip), %r8       # 0x12f20
movl $0x2, %edi
movq %rbx, %rdx
movq %rax, %rcx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x4140
movsbl %r14b, %ebp
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb %r14b, 0x8(%rax)
leaq 0x5b56(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl %ebp, %edx
jmp 0x8c5c
movq %rbx, %rdi
callq 0x4580
callq 0x44f0
movq %rax, %rbx
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x1c, 0x30(%rax)
leaq 0x5b69(%rip), %rsi      # 0xe40c
movq %rax, %rdi
callq 0x4520
movq %rax, %r15
testb $0x1, %bpl
jne 0x89bf
movq 0xa699(%rip), %rsi      # 0x12f58
movq 0xa65a(%rip), %r14      # 0x12f20
movl $0x2, %edi
movq %rbx, %rdx
movq %r15, %rcx
movq %r14, %r8
xorl %eax, %eax
callq 0x4140
movq %rax, %rbx
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x1c, 0x30(%rax)
leaq 0x5b14(%rip), %rsi      # 0xe40c
movq %rax, %rdi
callq 0x4520
movq %rax, %r15
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x3, 0x30(%rax)
movq 0xa65b(%rip), %rcx      # 0x12f78
movq %rcx, 0x8(%rax)
movq 0xa6a0(%rip), %rsi      # 0x12fc8
movl $0x2, %edi
movq %r15, %rdx
movq %rax, %rcx
movq %r14, %r8
jmp 0x89f6
movb 0x1(%rbx), %bpl
movzbl %bpl, %eax
cmpl $0x56, %eax
jle 0x8a19
leal -0x61(%rax), %ecx
cmpl $0x16, %ecx
ja 0x8a59
leaq 0x5831(%rip), %rax      # 0xe190
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb $0x7, 0x8(%rax)
leaq 0x5a3f(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0x7, %edx
jmp 0x8c24
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x8, 0x30(%rax)
leaq 0x59ef(%rip), %rsi      # 0xe39c
movq %rax, %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x4520
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x3, 0x30(%rax)
movq 0xa59f(%rip), %rcx      # 0x12f78
movq %rcx, 0x8(%rax)
movq 0xa5e4(%rip), %rsi      # 0x12fc8
movq 0xa535(%rip), %r8       # 0x12f20
movl $0x2, %edi
movq %r15, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x4140
movl $0x2, %edi
movq %rbx, %rsi
movq %rax, %rdx
xorl %eax, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0x4500
cmpl $0x43, %eax
jg 0x8a36
cmpl $0x41, %eax
je 0x8a87
cmpl $0x42, %eax
jne 0x8c37
callq 0x4160
jmp 0x8c81
cmpl $0x44, %eax
je 0x8aae
cmpl $0x53, %eax
jne 0x8c37
leaq 0x59ed(%rip), %rdi      # 0xe438
callq 0x4070
leaq 0x59e8(%rip), %rsi      # 0xe43f
jmp 0x8ac1
cmpl $0x57, %eax
je 0x8c7c
cmpl $0x5a, %eax
jne 0x8c37
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x1c, 0x30(%rax)
leaq 0x5987(%rip), %rsi      # 0xe40c
jmp 0x8aa1
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x1b, 0x30(%rax)
leaq 0x595c(%rip), %rsi      # 0xe3fd
movq %rax, %rdi
callq 0x4520
jmp 0x8b93
leaq 0x599c(%rip), %rdi      # 0xe451
callq 0x4070
leaq 0x59c9(%rip), %rsi      # 0xe48a
movq %rax, %rdi
callq 0x4520
jmp 0x8c81
callq 0x4460
jmp 0x8c2b
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, %cl
movb %cl, 0x30(%rax)
movb %cl, 0x8(%rax)
leaq 0x58cf(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0x9, %edx
jmp 0x8c24
leaq 0x592e(%rip), %rdi      # 0xe438
callq 0x4070
leaq 0x5929(%rip), %rsi      # 0xe43f
jmp 0x8b56
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb $0xd, 0x8(%rax)
leaq 0x588f(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0xd, %edx
jmp 0x8c24
leaq 0x5907(%rip), %rdi      # 0xe451
callq 0x4070
leaq 0x5934(%rip), %rsi      # 0xe48a
movq %rax, %rdi
callq 0x4520
jmp 0x8c2b
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb $0xb, 0x8(%rax)
leaq 0x5844(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0xb, %edx
jmp 0x8c24
callq 0x4160
movq %rax, %r14
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x3, 0x30(%rax)
movq 0xa3c8(%rip), %rcx      # 0x12f78
movq %rcx, 0x8(%rax)
movq 0xa40d(%rip), %rsi      # 0x12fc8
movq 0xa35e(%rip), %r8       # 0x12f20
movl $0x2, %edi
movq %r14, %rdx
movq %rax, %rcx
xorl %eax, %eax
callq 0x4140
jmp 0x8c2b
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb $0xc, 0x8(%rax)
leaq 0x57d1(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0xc, %edx
jmp 0x8c24
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb $0xa, 0x8(%rax)
leaq 0x57a9(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
movl $0xa, %edx
xorl %eax, %eax
callq 0x4290
movq %rax, %r14
testq %rax, %rax
jne 0x8c66
movb 0x1(%rbx), %bpl
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movb $0x9, 0x30(%rax)
movb %bpl, 0x8(%rax)
movsbl %bpl, %edx
leaq 0x576c(%rip), %rsi      # 0xe3c5
movq %rax, %rdi
xorl %eax, %eax
callq 0x4290
movq %rax, %r14
movq %rbx, %rdi
callq 0x4580
movq %r14, %rax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
callq 0x4460
movq %rax, %r15
movl $0x1, %edi
movl $0x38, %esi
callq 0x4280
movq %rax, %r14
movb $0x12, 0x30(%rax)
movq %r15, 0x8(%rax)
movq 0xa27b(%rip), %rax      # 0x12f20
movq %rax, 0x10(%r14)
movq 0xa2c8(%rip), %rax      # 0x12f78
movq %rax, 0x18(%r14)
jmp 0x8c66