// File: /workspace/github_c_makefile_star2_O3/orangeduck[P]mpc/mpc.c
// Function: mpc_parse_fold
static mpc_val_t *mpc_parse_fold(mpc_input_t *i, mpc_fold_t f, int n, mpc_val_t **xs) {
  int j;
  if (f == mpcf_null)      { return mpcf_null(n, xs); }
  if (f == mpcf_fst)       { return mpcf_fst(n, xs); }
  if (f == mpcf_snd)       { return mpcf_snd(n, xs); }
  if (f == mpcf_trd)       { return mpcf_trd(n, xs); }
  if (f == mpcf_fst_free)  { return mpcf_input_fst_free(i, n, xs); }
  if (f == mpcf_snd_free)  { return mpcf_input_snd_free(i, n, xs); }
  if (f == mpcf_trd_free)  { return mpcf_input_trd_free(i, n, xs); }
  if (f == mpcf_strfold)   { return mpcf_input_strfold(i, n, xs); }
  if (f == mpcf_state_ast) { return mpcf_input_state_ast(i, n, xs); }
  for (j = 0; j < n; j++) { xs[j] = mpc_export(i, xs[j]); }
  return f(j, xs);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
cmpq 0x6217(%rip), %rsi      # 0x12f40
je 0xce39
movq %rcx, %r14
movq %rsi, %rax
cmpq 0x621c(%rip), %rsi      # 0x12f58
je 0xce3e
cmpq 0x627f(%rip), %rax      # 0x12fc8
je 0xce43
cmpq 0x623a(%rip), %rax      # 0x12f90
je 0xce49
movq %rdi, %rbx
cmpq 0x61c2(%rip), %rax      # 0x12f28
je 0xce5f
cmpq 0x619d(%rip), %rax      # 0x12f10
je 0xce6b
cmpq 0x6198(%rip), %rax      # 0x12f18
je 0xce7a
cmpq 0x6233(%rip), %rax      # 0x12fc0
je 0xce9a
cmpq 0x61c6(%rip), %rax      # 0x12f60
je 0xceb5
testl %edx, %edx
jle 0xcefd
movq %rax, 0x8(%rsp)
leaq 0x278(%rbx), %rbp
leaq 0x8278(%rbx), %r15
movl %edx, 0x4(%rsp)
movl %edx, %edx
xorl %r12d, %r12d
movq %rdx, 0x10(%rsp)
movq (%r14,%r12,8), %r13
cmpq %r13, %rbp
seta %al
cmpq %r13, %r15
setbe %cl
orb %al, %cl
jne 0xce1f
movl $0x40, %edi
callq 0x43a0
movq 0x10(%rsp), %rdx
movups (%r13), %xmm0
movups 0x10(%r13), %xmm1
movups 0x20(%r13), %xmm2
movups 0x30(%r13), %xmm3
movups %xmm0, (%rax)
movups %xmm1, 0x10(%rax)
movups %xmm2, 0x20(%rax)
movups %xmm3, 0x30(%rax)
subq %rbp, %r13
shrq $0x6, %r13
movb $0x0, 0x78(%rbx,%r13)
movq %rax, %r13
movq %r13, (%r14,%r12,8)
incq %r12
cmpq %r12, %rdx
jne 0xcdc9
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %edi
jmp 0xceff
xorl %r14d, %r14d
jmp 0xce4d
movq (%r14), %r14
jmp 0xce4d
movq 0x8(%r14), %r14
jmp 0xce4d
movq 0x10(%r14), %r14
movq %r14, %rax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
movl %edx, %esi
movq %r14, %rdx
xorl %ecx, %ecx
jmp 0xce87
movq %rbx, %rdi
movl %edx, %esi
movq %r14, %rdx
movl $0x1, %ecx
jmp 0xce87
movq %rbx, %rdi
movl %edx, %esi
movq %r14, %rdx
movl $0x2, %ecx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd357
movq %rbx, %rdi
movl %edx, %esi
movq %r14, %rdx
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0xd28b
movq (%r14), %rdi
movq 0x8(%r14), %r14
testq %r14, %r14
je 0xced2
movups (%rdi), %xmm0
movups 0x10(%rdi), %xmm1
movups %xmm1, 0x20(%r14)
movups %xmm0, 0x10(%r14)
leaq 0x278(%rbx), %rax
cmpq %rdi, %rax
seta %cl
leaq 0x8278(%rbx), %rdx
cmpq %rdi, %rdx
setbe %dl
orb %cl, %dl
cmpb $0x1, %dl
jne 0xcf12
callq 0x4580
jmp 0xce4d
xorl %edi, %edi
movq %r14, %rsi
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmpq *%rax
subq %rax, %rdi
shrq $0x6, %rdi
movb $0x0, 0x78(%rbx,%rdi)
jmp 0xce4d