// File: /workspace/github_c_makefile_star2_O0/ebb[P]chisa/bootstrap1.c
// Function: pass1ExplicitCont
long pass1ExplicitCont(long cont)
{
    long x2, explicitCont, contBlocks, blk, args, blks, xfer, stmts, triple, x1, label, formsCont, forms, x;
    goto L1;
L1:
    switch (runtime_class(cont)) {
    case CLASS_P1TrivialCont:
        x = prim_fetch(cont, runtime_makeNumber(0));
        forms = prim_fetch(cont, runtime_makeNumber(1));
        formsCont = prim_fetch(cont, runtime_makeNumber(2));
        goto L2;
    default:
        goto L3;
    }
L2:
    label = prim_genLabel();
    triple = pass1Begin(forms, formsCont);
    goto L4;
L3:
    x1 = Pair(cont, nil);
    return x1;
L4:
    switch (runtime_class(triple)) {
    case CLASS_Triple:
        stmts = prim_fetch(triple, runtime_makeNumber(0));
        xfer = prim_fetch(triple, runtime_makeNumber(1));
        blks = prim_fetch(triple, runtime_makeNumber(2));
        goto L5;
    default:
        runtime_matchFailure(__LINE__);
    }
L5:
    args = prim_cons(x, nil);
    blk = FiBlock(label, args, stmts, xfer);
    contBlocks = prim_cons(blk, blks);
    explicitCont = P1BlockCont(label);
    x2 = Pair(explicitCont, contBlocks);
    return x2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5690
subw $0x23, %ax
jne 0x2689
jmp 0x2610
movq -0x10(%rbp), %rax
movq %rax, -0x98(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0x98(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x90(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0x90(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x88(%rbp)
movl $0x2, %edi
callq 0x57a0
movq -0x88(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x70(%rbp)
jmp 0x268b
jmp 0x26a7
callq 0x5d60
movq %rax, -0x68(%rbp)
movq -0x78(%rbp), %rdi
movq -0x70(%rbp), %rsi
callq 0x1880
movq %rax, -0x58(%rbp)
jmp 0x26cb
movq -0x10(%rbp), %rdi
leaq 0x26b96(%rip), %rax     # 0x29248
movq (%rax), %rsi
callq 0x1210
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x27c8
movq -0x58(%rbp), %rdi
callq 0x5690
subw $0x20, %ax
jne 0x2755
jmp 0x26dc
movq -0x58(%rbp), %rax
movq %rax, -0xb0(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0xb0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x50(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0xa8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x48(%rbp)
movq -0x58(%rbp), %rax
movq %rax, -0xa0(%rbp)
movl $0x2, %edi
callq 0x57a0
movq -0xa0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x40(%rbp)
jmp 0x2761
movl $0x289, %edi            # imm = 0x289
callq 0x5c50
jmp 0x2761
movq -0x80(%rbp), %rdi
leaq 0x26adc(%rip), %rax     # 0x29248
movq (%rax), %rsi
callq 0x5cc0
movq %rax, -0x38(%rbp)
movq -0x68(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0x48(%rbp), %rcx
callq 0x1bd0
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x5cc0
movq %rax, -0x28(%rbp)
movq -0x68(%rbp), %rdi
callq 0x1360
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x1210
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xb0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)