// File: /workspace/github_c_makefile_star2_O0/orangeduck[P]mpc/mpc.c
// Function: mpc_print_unretained
static void mpc_print_unretained(mpc_parser_t *p, int force) {

  /* TODO: Print Everything Escaped */

  int i;
  char *s, *e;
  char buff[2];

  if (p->retained && !force) {;
    if (p->name) { printf("<%s>", p->name); }
    else { printf("<anon>"); }
    return;
  }

  if (p->type == MPC_TYPE_UNDEFINED) { printf("<?>"); }
  if (p->type == MPC_TYPE_PASS)   { printf("<:>"); }
  if (p->type == MPC_TYPE_FAIL)   { printf("<!>"); }
  if (p->type == MPC_TYPE_LIFT)   { printf("<#>"); }
  if (p->type == MPC_TYPE_STATE)  { printf("<S>"); }
  if (p->type == MPC_TYPE_ANCHOR) { printf("<@>"); }
  if (p->type == MPC_TYPE_EXPECT) {
    printf("%s", p->data.expect.m);
    /*mpc_print_unretained(p->data.expect.x, 0);*/
  }

  if (p->type == MPC_TYPE_ANY) { printf("<.>"); }
  if (p->type == MPC_TYPE_SATISFY) { printf("<f>"); }

  if (p->type == MPC_TYPE_SINGLE) {
    buff[0] = p->data.single.x; buff[1] = '\0';
    s = mpcf_escape_new(
      buff,
      mpc_escape_input_c,
      mpc_escape_output_c);
    printf("'%s'", s);
    free(s);
  }

  if (p->type == MPC_TYPE_RANGE) {
    buff[0] = p->data.range.x; buff[1] = '\0';
    s = mpcf_escape_new(
      buff,
      mpc_escape_input_c,
      mpc_escape_output_c);
    buff[0] = p->data.range.y; buff[1] = '\0';
    e = mpcf_escape_new(
      buff,
      mpc_escape_input_c,
      mpc_escape_output_c);
    printf("[%s-%s]", s, e);
    free(s);
    free(e);
  }

  if (p->type == MPC_TYPE_ONEOF) {
    s = mpcf_escape_new(
      p->data.string.x,
      mpc_escape_input_c,
      mpc_escape_output_c);
    printf("[%s]", s);
    free(s);
  }

  if (p->type == MPC_TYPE_NONEOF) {
    s = mpcf_escape_new(
      p->data.string.x,
      mpc_escape_input_c,
      mpc_escape_output_c);
    printf("[^%s]", s);
    free(s);
  }

  if (p->type == MPC_TYPE_STRING) {
    s = mpcf_escape_new(
      p->data.string.x,
      mpc_escape_input_c,
      mpc_escape_output_c);
    printf("\"%s\"", s);
    free(s);
  }

  if (p->type == MPC_TYPE_APPLY)    { mpc_print_unretained(p->data.apply.x, 0); }
  if (p->type == MPC_TYPE_APPLY_TO) { mpc_print_unretained(p->data.apply_to.x, 0); }
  if (p->type == MPC_TYPE_PREDICT)  { mpc_print_unretained(p->data.predict.x, 0); }

  if (p->type == MPC_TYPE_NOT)   { mpc_print_unretained(p->data.not.x, 0); printf("!"); }
  if (p->type == MPC_TYPE_MAYBE) { mpc_print_unretained(p->data.not.x, 0); printf("?"); }

  if (p->type == MPC_TYPE_MANY)  { mpc_print_unretained(p->data.repeat.x, 0); printf("*"); }
  if (p->type == MPC_TYPE_MANY1) { mpc_print_unretained(p->data.repeat.x, 0); printf("+"); }
  if (p->type == MPC_TYPE_COUNT) { mpc_print_unretained(p->data.repeat.x, 0); printf("{%i}", p->data.repeat.n); }
  if (p->type == MPC_TYPE_SEPBY1) {
    mpc_print_unretained(p->data.sepby1.x, 0);
    printf(" (");
    mpc_print_unretained(p->data.sepby1.sep, 0);
    printf(" ");
    mpc_print_unretained(p->data.sepby1.x, 0);
    printf(")");
    printf("*");
  }

  if (p->type == MPC_TYPE_OR) {
    printf("(");
    for(i = 0; i < p->data.or.n-1; i++) {
      mpc_print_unretained(p->data.or.xs[i], 0);
      printf(" | ");
    }
    mpc_print_unretained(p->data.or.xs[p->data.or.n-1], 0);
    printf(")");
  }

  if (p->type == MPC_TYPE_AND) {
    printf("(");
    for(i = 0; i < p->data.and.n-1; i++) {
      mpc_print_unretained(p->data.and.xs[i], 0);
      printf(" ");
    }
    mpc_print_unretained(p->data.and.xs[p->data.and.n-1], 0);
    printf(")");
  }

  if (p->type == MPC_TYPE_CHECK) {
    mpc_print_unretained(p->data.check.x, 0);
    printf("->?");
  }
  if (p->type == MPC_TYPE_CHECK_WITH) {
    mpc_print_unretained(p->data.check_with.x, 0);
    printf("->?");
  }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq -0x8(%rbp), %rax
movsbl 0x31(%rax), %eax
cmpl $0x0, %eax
je 0xab96
cmpl $0x0, -0xc(%rbp)
jne 0xab96
movq -0x8(%rbp), %rax
cmpq $0x0, (%rax)
je 0xab83
movq -0x8(%rbp), %rax
movq (%rax), %rsi
leaq 0x7dc0(%rip), %rdi      # 0x1293a
movb $0x0, %al
callq 0x4230
jmp 0xab91
leaq 0x7db5(%rip), %rdi      # 0x1293f
movb $0x0, %al
callq 0x4230
jmp 0xb15b
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x0, %eax
jne 0xabb1
leaq 0x7d9c(%rip), %rdi      # 0x12946
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x1, %eax
jne 0xabcc
leaq 0x7d85(%rip), %rdi      # 0x1294a
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x2, %eax
jne 0xabe7
leaq 0x7d6e(%rip), %rdi      # 0x1294e
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x3, %eax
jne 0xac02
leaq 0x7d57(%rip), %rdi      # 0x12952
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x7, %eax
jne 0xac1d
leaq 0x7d40(%rip), %rdi      # 0x12956
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x6, %eax
jne 0xac38
leaq 0x7d29(%rip), %rdi      # 0x1295a
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x5, %eax
jne 0xac5b
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x7b45(%rip), %rdi      # 0x12799
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x8, %eax
jne 0xac76
leaq 0x7cef(%rip), %rdi      # 0x1295e
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xd, %eax
jne 0xac91
leaq 0x7cd8(%rip), %rdi      # 0x12962
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x9, %eax
jne 0xace2
movq -0x8(%rbp), %rax
movb 0x8(%rax), %al
movb %al, -0x22(%rbp)
movb $0x0, -0x21(%rbp)
leaq -0x22(%rbp), %rdi
leaq 0x77a9(%rip), %rsi      # 0x12460
leaq 0xc782(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x787e(%rip), %rdi      # 0x12550
movb $0x0, %al
callq 0x4230
movq -0x18(%rbp), %rdi
callq 0x4850
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xc, %eax
jne 0xad69
movq -0x8(%rbp), %rax
movb 0x8(%rax), %al
movb %al, -0x22(%rbp)
movb $0x0, -0x21(%rbp)
leaq -0x22(%rbp), %rdi
leaq 0x7758(%rip), %rsi      # 0x12460
leaq 0xc731(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movb 0x9(%rax), %al
movb %al, -0x22(%rbp)
movb $0x0, -0x21(%rbp)
leaq -0x22(%rbp), %rdi
leaq 0x772f(%rip), %rsi      # 0x12460
leaq 0xc708(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
leaq 0x7c16(%rip), %rdi      # 0x12966
movb $0x0, %al
callq 0x4230
movq -0x18(%rbp), %rdi
callq 0x4850
movq -0x20(%rbp), %rdi
callq 0x4850
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xa, %eax
jne 0xadb0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x76db(%rip), %rsi      # 0x12460
leaq 0xc6b4(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x7bce(%rip), %rdi      # 0x1296e
movb $0x0, %al
callq 0x4230
movq -0x18(%rbp), %rdi
callq 0x4850
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xb, %eax
jne 0xadf7
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x7694(%rip), %rsi      # 0x12460
leaq 0xc66d(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x7b8c(%rip), %rdi      # 0x12973
movb $0x0, %al
callq 0x4230
movq -0x18(%rbp), %rdi
callq 0x4850
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xe, %eax
jne 0xae3e
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
leaq 0x764d(%rip), %rsi      # 0x12460
leaq 0xc626(%rip), %rdx      # 0x17440
callq 0xa550
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rsi
leaq 0x7748(%rip), %rdi      # 0x12576
movb $0x0, %al
callq 0x4230
movq -0x18(%rbp), %rdi
callq 0x4850
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0xf, %eax
jne 0xae5a
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x10, %eax
jne 0xae76
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x11, %eax
jne 0xae92
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x12, %eax
jne 0xaebc
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7b3a(%rip), %rdi      # 0x129ef
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x13, %eax
jne 0xaee6
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7aa8(%rip), %rdi      # 0x12987
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x14, %eax
jne 0xaf10
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7861(%rip), %rdi      # 0x1276a
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x15, %eax
jne 0xaf3a
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7839(%rip), %rdi      # 0x1276c
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x16, %eax
jne 0xaf6b
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
callq 0xab40
movq -0x8(%rbp), %rax
movl 0x8(%rax), %esi
leaq 0x7a15(%rip), %rdi      # 0x12979
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x1d, %eax
jne 0xafdd
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x79f0(%rip), %rdi      # 0x1297e
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x79e5(%rip), %rdi      # 0x12990
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7730(%rip), %rdi      # 0x126f8
movb $0x0, %al
callq 0x4230
leaq 0x7794(%rip), %rdi      # 0x1276a
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x17, %eax
jne 0xb072
leaq 0x798a(%rip), %rdi      # 0x1297f
movb $0x0, %al
callq 0x4230
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xb044
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movslq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x794f(%rip), %rdi      # 0x12981
movb $0x0, %al
callq 0x4230
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xb003
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x768d(%rip), %rdi      # 0x126f8
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x18, %eax
jne 0xb107
leaq 0x78f5(%rip), %rdi      # 0x1297f
movb $0x0, %al
callq 0x4230
movl $0x0, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0xb0d9
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movslq -0x10(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x78c9(%rip), %rdi      # 0x12990
movb $0x0, %al
callq 0x4230
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0xb098
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rcx
movl 0x8(%rcx), %ecx
subl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x75f8(%rip), %rdi      # 0x126f8
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x19, %eax
jne 0xb131
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x785b(%rip), %rdi      # 0x12985
movb $0x0, %al
callq 0x4230
movq -0x8(%rbp), %rax
movsbl 0x30(%rax), %eax
cmpl $0x1a, %eax
jne 0xb15b
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
xorl %esi, %esi
callq 0xab40
leaq 0x7831(%rip), %rdi      # 0x12985
movb $0x0, %al
callq 0x4230
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)