// File: /workspace/github_c_makefile_star2_O3/ebb[P]chisa/bootstrap1.c
// Function: pass1Toplevel
long pass1Toplevel(long def)
{
    long x8, x7, x6, x5, blks, xfer, stmts, x4, x3, forms, defines, expr, blk, funcArgs, f, x2, consArgs, c, x1, constant, x;
    goto L1;
L1:
    switch (runtime_class(def)) {
    case CLASS_HiDefineVar:
        x = prim_fetch(def, runtime_makeNumber(0));
        constant = prim_fetch(def, runtime_makeNumber(1));
        goto L2;
    case CLASS_HiDefineCons:
        c = prim_fetch(def, runtime_makeNumber(0));
        consArgs = prim_fetch(def, runtime_makeNumber(1));
        goto L3;
    case CLASS_HiDefineFunc:
        f = prim_fetch(def, runtime_makeNumber(0));
        funcArgs = prim_fetch(def, runtime_makeNumber(1));
        blk = prim_fetch(def, runtime_makeNumber(2));
        goto L4;
    default:
        runtime_matchFailure(__LINE__);
    }
L2:
    x1 = FiDefineVar(x, constant);
    return x1;
L3:
    x2 = FiDefineCons(c, consArgs);
    return x2;
L4:
    switch (runtime_class(blk)) {
    case CLASS_HiBlock:
        expr = prim_fetch(blk, runtime_makeNumber(0));
        defines = prim_fetch(blk, runtime_makeNumber(1));
        goto L5;
    default:
        runtime_matchFailure(__LINE__);
    }
L5:
    switch (runtime_class(expr)) {
    case CLASS_HiBegin:
        forms = prim_fetch(expr, runtime_makeNumber(0));
        goto L6;
    default:
        runtime_matchFailure(__LINE__);
    }
L6:
    x3 = P1TailCont();
    x4 = pass1Begin(forms, x3);
    goto L7;
L7:
    switch (runtime_class(x4)) {
    case CLASS_Triple:
        stmts = prim_fetch(x4, runtime_makeNumber(0));
        xfer = prim_fetch(x4, runtime_makeNumber(1));
        blks = prim_fetch(x4, runtime_makeNumber(2));
        goto L8;
    default:
        runtime_matchFailure(__LINE__);
    }
L8:
    x5 = prim_genLabel();
    x6 = FiBlock(x5, nil, stmts, xfer);
    x7 = prim_cons(x6, blks);
    x8 = FiDefineFunc(f, funcArgs, x7);
    return x8;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdi, %r15
callq 0x3f51
cmpw $0x7, %ax
je 0x1631
movzwl %ax, %eax
cmpl $0x6, %eax
je 0x15b2
cmpl $0x5, %eax
jne 0x176d
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %rbx
movl $0x1, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movl $0x12, %edi
jmp 0x1660
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %rbx
movl $0x1, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r14
movl $0x2, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
movq %rax, %rdi
callq 0x3f51
cmpw $0xb, %ax
jne 0x1674
xorl %edi, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
jmp 0x167e
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %rbx
movl $0x1, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movl $0x14, %edi
movq %rbx, %rsi
movq %rax, %rdx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x40ba
movl $0xa9, %edi
callq 0x42a8
movq %r15, %rdi
callq 0x3f51
cmpw $0xa, %ax
jne 0x16a3
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
jmp 0x16ad
movl $0xb1, %edi
callq 0x42a8
movl $0x21, %edi
callq 0x4018
movq %r15, %rdi
movq %rax, %rsi
callq 0x1772
movq %rax, %r12
movq %rax, %rdi
callq 0x3f51
cmpw $0x20, %ax
jne 0x171a
xorl %edi, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r13
movl $0x2, %edi
callq 0x3fd7
movq %r12, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
jmp 0x1724
movl $0xbf, %edi
callq 0x42a8
callq 0x433b
leaq 0x26af8(%rip), %rcx     # 0x28228
movq (%rcx), %rdx
movl $0x15, %edi
movq %rax, %rsi
movq %r15, %rcx
movq %r13, %r8
callq 0x41e2
movq %rax, %rdi
movq %r12, %rsi
callq 0x42e4
movl $0x13, %edi
movq %rbx, %rsi
movq %r14, %rdx
movq %rax, %rcx
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0x4146
callq 0x1140