// File: /workspace/github_c_makefile_star2_O3/ebb[P]chisa/bootstrap1.c
// Function: pass1Begin
long pass1Begin(long forms, long cont)
{
    long x1, varDefines, expr, x6, x5, x4, x3, x2, defines, expr2, varBlk, x, blk, args, c, moreForms, form;
    goto L1;
L1:
    switch (runtime_class(forms)) {
    case CLASS_Cons:
        form = prim_fetch(forms, runtime_makeNumber(0));
        moreForms = prim_fetch(forms, runtime_makeNumber(1));
        goto L2;
    default:
        runtime_matchFailure(__LINE__);
    }
L2:
    switch (runtime_class(form)) {
    case CLASS_HiDefineByMatch:
        c = prim_fetch(form, runtime_makeNumber(0));
        args = prim_fetch(form, runtime_makeNumber(1));
        blk = prim_fetch(form, runtime_makeNumber(2));
        goto L3;
    case CLASS_HiDefineVar:
        x = prim_fetch(form, runtime_makeNumber(0));
        varBlk = prim_fetch(form, runtime_makeNumber(1));
        goto L4;
    default:
        goto L5;
    }
L3:
    switch (runtime_class(blk)) {
    case CLASS_HiBlock:
        expr2 = prim_fetch(blk, runtime_makeNumber(0));
        defines = prim_fetch(blk, runtime_makeNumber(1));
        goto L6;
    default:
        runtime_matchFailure(__LINE__);
    }
L4:
    switch (runtime_class(varBlk)) {
    case CLASS_HiBlock:
        expr = prim_fetch(varBlk, runtime_makeNumber(0));
        varDefines = prim_fetch(varBlk, runtime_makeNumber(1));
        goto L7;
    default:
        runtime_matchFailure(__LINE__);
    }
L5:
    return pass1SimpleExpr(form, cont);
L6:
    x2 = HiBegin(moreForms);
    x3 = HiBlock(x2, nil);
    x4 = HiCase(c, args, x3);
    x5 = prim_cons(x4, nil);
    x6 = HiMatch(expr2, x5);
    return pass1SimpleExpr(x6, cont);
L7:
    x1 = P1TrivialCont(x, moreForms, cont);
    return pass1SimpleExpr(expr, x1);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
callq 0x3f51
cmpw $0x3, %ax
jne 0x17bd
xorl %edi, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %r14, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r14
jmp 0x17c7
movl $0xd4, %edi
callq 0x42a8
movq %r15, %rdi
callq 0x3f51
cmpw $0x5, %ax
je 0x18c0
movzwl %ax, %eax
cmpl $0x8, %eax
jne 0x1956
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
movl $0x1, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r13
movl $0x2, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %rbp
movq %rax, %rdi
callq 0x3f51
cmpw $0xb, %ax
jne 0x18ef
xorl %edi, %edi
callq 0x3fd7
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3f78
movl $0xa, %edi
movq %r14, %rsi
callq 0x4034
leaq 0x269ae(%rip), %r14     # 0x28228
movq (%r14), %rdx
movl $0xb, %edi
movq %rax, %rsi
callq 0x40ba
movl $0x10, %edi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x4146
movq (%r14), %rsi
movq %rax, %rdi
callq 0x42e4
movl $0xf, %edi
movq %r15, %rsi
movq %rax, %rdx
callq 0x40ba
movq %rax, %rdi
jmp 0x1959
xorl %edi, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r12
movl $0x1, %edi
callq 0x3fd7
movq %r15, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r13
jmp 0x18f9
movl $0xeb, %edi
callq 0x42a8
movq %r13, %rdi
callq 0x3f51
cmpw $0xb, %ax
jne 0x194c
xorl %edi, %edi
callq 0x3fd7
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f78
movq %rax, %r15
movl $0x1, %edi
callq 0x3fd7
movq %r13, %rdi
movq %rax, %rsi
callq 0x3f78
movl $0x23, %edi
movq %r12, %rsi
movq %r14, %rdx
movq %rbx, %rcx
callq 0x4146
movq %r15, %rdi
movq %rax, %rsi
jmp 0x195c
movl $0xf4, %edi
callq 0x42a8
movq %r15, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x196f