// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
callq 0x5690
subw $0x3, %ax
jne 0x18fb
jmp 0x18a4
movq -0x10(%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, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xa8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xa8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x98(%rbp)
jmp 0x1907
movl $0xd4, %edi
callq 0x5c50
jmp 0x1907
movq -0xa0(%rbp), %rdi
callq 0x5690
movzwl %ax, %ecx
movl %ecx, -0xb4(%rbp)
subw $0x5, %ax
je 0x19c1
jmp 0x1928
movl -0xb4(%rbp), %eax
subl $0x8, %eax
jne 0x1a18
jmp 0x1939
movq -0xa0(%rbp), %rax
movq %rax, -0xd0(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0xd0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x90(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0xc8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xc8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x88(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0xc0(%rbp)
movl $0x2, %edi
callq 0x57a0
movq -0xc0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x80(%rbp)
jmp 0x1a1d
movq -0xa0(%rbp), %rax
movq %rax, -0xe0(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x78(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xd8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x70(%rbp)
jmp 0x1a8e
jmp 0x1aff
movq -0x80(%rbp), %rdi
callq 0x5690
subw $0xb, %ax
jne 0x1a82
jmp 0x1a2e
movq -0x80(%rbp), %rax
movq %rax, -0xf0(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x68(%rbp)
movq -0x80(%rbp), %rax
movq %rax, -0xe8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xe8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x60(%rbp)
jmp 0x1b18
movl $0xeb, %edi
callq 0x5c50
jmp 0x1a8e
movq -0x70(%rbp), %rdi
callq 0x5690
subw $0xb, %ax
jne 0x1af3
jmp 0x1a9f
movq -0x70(%rbp), %rax
movq %rax, -0x100(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x57a0
movq -0x100(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x30(%rbp)
movq -0x70(%rbp), %rax
movq %rax, -0xf8(%rbp)
movl $0x1, %edi
callq 0x57a0
movq -0xf8(%rbp), %rdi
movq %rax, %rsi
callq 0x5730
movq %rax, -0x28(%rbp)
jmp 0x1b95
movl $0xf4, %edi
callq 0x5c50
jmp 0x1aff
movq -0xa0(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1c40
movq %rax, -0x8(%rbp)
jmp 0x1bbe
movq -0x98(%rbp), %rdi
callq 0x1e70
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
leaq 0x27715(%rip), %rax     # 0x29248
movq (%rax), %rsi
callq 0x1e90
movq %rax, -0x50(%rbp)
movq -0x90(%rbp), %rdi
movq -0x88(%rbp), %rsi
movq -0x50(%rbp), %rdx
callq 0x1ec0
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
leaq 0x276e3(%rip), %rax     # 0x29248
movq (%rax), %rsi
callq 0x5cc0
movq %rax, -0x40(%rbp)
movq -0x68(%rbp), %rdi
movq -0x40(%rbp), %rsi
callq 0x1ef0
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x1c40
movq %rax, -0x8(%rbp)
jmp 0x1bbe
movq -0x78(%rbp), %rdi
movq -0x98(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x1380
movq %rax, -0x20(%rbp)
movq -0x30(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x1c40
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax,%rax)