// File: /workspace/github_c_makefile_star2_O2/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 0x3afb
cmpw $0x3, %ax
jne 0x15a8
xorl %edi, %edi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r15
pushq $0x1
popq %rdi
callq 0x3b81
movq %r14, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r14
jmp 0x15b2
movl $0xd4, %edi
callq 0x3e37
movq %r15, %rdi
callq 0x3afb
cmpw $0x5, %ax
je 0x169d
movzwl %ax, %eax
cmpl $0x8, %eax
jne 0x172a
xorl %edi, %edi
callq 0x3b81
movq %r15, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r12
pushq $0x1
popq %rdi
callq 0x3b81
movq %r15, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r13
pushq $0x2
popq %rdi
callq 0x3b81
movq %r15, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %rbp
movq %rax, %rdi
callq 0x3afb
cmpw $0xb, %ax
jne 0x16ca
xorl %edi, %edi
callq 0x3b81
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r15
pushq $0x1
popq %rdi
callq 0x3b81
movq %rbp, %rdi
movq %rax, %rsi
callq 0x3b22
pushq $0xa
popq %rdi
movq %r14, %rsi
callq 0x3c05
leaq 0x25bcb(%rip), %r14     # 0x27228
movq (%r14), %rdx
pushq $0xb
popq %rdi
movq %rax, %rsi
callq 0x3cbd
pushq $0x10
popq %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
callq 0x3d2d
movq (%r14), %rsi
movq %rax, %rdi
callq 0x3e73
pushq $0xf
popq %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x3cbd
movq %rax, %rdi
jmp 0x172d
xorl %edi, %edi
callq 0x3b81
movq %r15, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r12
pushq $0x1
popq %rdi
callq 0x3b81
movq %r15, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r13
jmp 0x16d4
movl $0xeb, %edi
callq 0x3e37
movq %r13, %rdi
callq 0x3afb
cmpw $0xb, %ax
jne 0x1720
xorl %edi, %edi
callq 0x3b81
movq %r13, %rdi
movq %rax, %rsi
callq 0x3b22
movq %rax, %r15
pushq $0x1
popq %rdi
callq 0x3b81
movq %r13, %rdi
movq %rax, %rsi
callq 0x3b22
movq %r12, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x12cf
movq %r15, %rdi
movq %rax, %rsi
jmp 0x1730
movl $0xf4, %edi
callq 0x3e37
movq %r15, %rdi
movq %rbx, %rsi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1757