bootstrap: Update necessary M1 sources.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sat, 18 Nov 2017 11:14:07 +0000 (12:14 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Sat, 18 Nov 2017 11:14:07 +0000 (12:14 +0100)
   M1 -f stage0/x86.M1 -f mlibc/crt1.M1 --LittleEndian --Architecture=1 > mlibc/crt1.hex2
   M1 -f stage0/x86.M1 -f mlibc/mini-libc-mes.M1 --LittleEndian --Architecture=1  > mlibc/libc-mes.hex2
   M1 -f stage0/x86.M1 -f src/mes.M1 --LittleEndian --Architecture=1 > src/mes.hex2
   hex2 --LittleEndian --Architecture=1 --BaseAddress=0x1000000 -f stage0/elf32-header.hex2 -f mlibc/crt1.hex2 -f mlibc/libc-mes.hex2 -f src/mes.hex2 -f stage0/elf32-footer-single-main.hex2 > src/mes-mes
   exec_enable src/mes-mes

* mlibc/libc-mes.M1: Update.
* src/mes.M1: Udate.

mlibc/libc-mes.M1
src/mes.M1

index 5847931f6f8eb33eebd159a4acb6c9c84074ade6..49ff73327a85dc4ad76719c169c0d0f83d0b0dc6 100644 (file)
 :strlen_4_continue
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
-       mov____0x8(%ebp),%edx !0x8
+       push___%eax
+       mov____0x8(%ebp),%eax !0x8
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        movzbl_(%eax),%eax
        test___%eax,%eax
                                        # i = ungetc_buf[ungetc_char]
        mov____0x32,%eax &ungetc_char
        mov____%eax,%edx
-       mov____$i32,%edx &ungetc_buf
+       push___%eax
+       mov____$i32,%eax &ungetc_buf
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        movzbl_(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
        setl___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jge32  %getchar_58_break
+       jge32  %getchar_60_break
                                        # i += 256
        mov____$i32,%eax %0x100
        push___%eax
        add____%edx,%eax
        mov____%eax,0x8(%ebp) !0x-8
        test___%eax,%eax
-       jmp32  %getchar_58_break
-:getchar_58_break
+       jmp32  %getchar_60_break
+:getchar_60_break
        mov____0x8(%ebp),%eax !0x-8
        leave
        ret
        push___%eax
        mov____0x32,%eax &ungetc_char
        mov____%eax,%edx
-       mov____$i32,%edx &ungetc_buf
+       push___%eax
+       mov____$i32,%eax &ungetc_buf
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        setl___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jge32  %itoa_23_break
+       jge32  %itoa_24_break
                                        # sign = 1
        mov____$i32,%eax %0x1
        mov____%eax,0x8(%ebp) !0x-8
        test___%eax,%eax
-       jmp32  %itoa_23_break
-:itoa_23_break
+       jmp32  %itoa_24_break
+:itoa_24_break
                                        # if (sign) ...
        mov____0x8(%ebp),%eax !0x-8
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %itoa_37_break
+       je32   %itoa_38_break
                                        # x = -x
        push___%eax
        mov____0x8(%ebp),%eax !0x8
        sub____%edx,%eax
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-       jmp32  %itoa_37_break
-:itoa_37_break
+       jmp32  %itoa_38_break
+:itoa_38_break
                                        # do xwhile (...); 
-:itoa_53_loop
+:itoa_54_loop
                                        # *p = '0' + x%10
        mov____$i32,%eax %0x30
        push___%eax
        idiv___%ebx
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-:itoa_53_continue
+:itoa_54_continue
        mov____0x8(%ebp),%eax !0x8
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %itoa_53_break
-       jmp32  %itoa_53_loop
-:itoa_53_break
+       je32   %itoa_54_break
+       jmp32  %itoa_54_loop
+:itoa_54_break
                                        # if (sign && *(p + 1) != '0') ...
        mov____0x8(%ebp),%eax !0x-8
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %itoa_87_break
+       je32   %itoa_89_break
        mov____0x8(%ebp),%eax !0x-4
        add____$i8,%eax !0x1
        movzbl_(%eax),%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %itoa_87_break
+       jne32  %itoa_89_break
                                        # *p = '-'
        mov____$i32,%eax %0x2d
        push___%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x-4 !0x-1
        test___%eax,%eax
-       jmp32  %itoa_87_break
-:itoa_87_break
+       jmp32  %itoa_89_break
+:itoa_89_break
        mov____0x8(%ebp),%eax !0x-4
        add____$i8,%eax !0x1
        leave
        mov____%eax,0x8(%ebp) !0x-8
                                        # switch (c) {   ...} 
        movzbl_0x8(%ebp),%eax !0x-8
-:vsprintf_41_clause0
+:vsprintf_42_clause0
        cmp____$i8,%eax !0x25
-       je32   %vsprintf_41_body0
-       jmp32  %vsprintf_41_clause1
-:vsprintf_41_body0
+       je32   %vsprintf_42_body0
+       jmp32  %vsprintf_42_clause1
+:vsprintf_42_body0
                                        # *str = *p
        mov____0x8(%ebp),%eax !0x-4
        movzbl_(%eax),%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x8 !0x1
        test___%eax,%eax
-       jmp32  %vsprintf_41_break
-       jmp32  %vsprintf_41_body1
-:vsprintf_41_clause1
+       jmp32  %vsprintf_42_break
+       jmp32  %vsprintf_42_body1
+:vsprintf_42_clause1
        cmp____$i8,%eax !0x63
-       je32   %vsprintf_41_body1
-       jmp32  %vsprintf_41_clause2
-:vsprintf_41_body1
+       je32   %vsprintf_42_body1
+       jmp32  %vsprintf_42_clause2
+:vsprintf_42_body1
                                        # char c; 
                                        # c = (char)(int*)(ap = ap + 4)[-1]
        push___%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x8 !0x1
        test___%eax,%eax
-       jmp32  %vsprintf_41_break
-       jmp32  %vsprintf_41_body2
-:vsprintf_41_clause2
+       jmp32  %vsprintf_42_break
+       jmp32  %vsprintf_42_body2
+:vsprintf_42_clause2
        cmp____$i8,%eax !0x64
-       je32   %vsprintf_41_body2
-       jmp32  %vsprintf_41_clause3
-:vsprintf_41_body2
+       je32   %vsprintf_42_body2
+       jmp32  %vsprintf_42_clause3
+:vsprintf_42_body2
                                        # int d; 
                                        # d = (int)(int*)(ap = ap + 4)[-1]
        push___%eax
        mov____%eax,0x8(%ebp) !0x-14
        test___%eax,%eax
                                        # while (*s) ...
-       jmp32  %vsprintf_121_continue
-:vsprintf_121_loop
+       jmp32  %vsprintf_124_continue
+:vsprintf_124_loop
                                        # *str = *s++
        mov____0x8(%ebp),%eax !0x-14
        push___%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x8 !0x1
        test___%eax,%eax
-:vsprintf_121_continue
+:vsprintf_124_continue
        mov____0x8(%ebp),%eax !0x-14
        movzbl_(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
        test___%al,%al
-       je32   %vsprintf_121_break
-       jmp32  %vsprintf_121_loop
-:vsprintf_121_break
-       jmp32  %vsprintf_41_break
-       jmp32  %vsprintf_41_body3
-:vsprintf_41_clause3
+       je32   %vsprintf_124_break
+       jmp32  %vsprintf_124_loop
+:vsprintf_124_break
+       jmp32  %vsprintf_42_break
+       jmp32  %vsprintf_42_body3
+:vsprintf_42_clause3
        cmp____$i8,%eax !0x73
-       je32   %vsprintf_41_body3
-       jmp32  %vsprintf_41_clause4
-:vsprintf_41_body3
+       je32   %vsprintf_42_body3
+       jmp32  %vsprintf_42_clause4
+:vsprintf_42_body3
                                        # char *s; 
                                        # s = (char*)(int*)(ap = ap + 4)[-1]
        push___%eax
        mov____%eax,0x8(%ebp) !0x-18
        test___%eax,%eax
                                        # while (*s) ...
-       jmp32  %vsprintf_171_continue
-:vsprintf_171_loop
+       jmp32  %vsprintf_175_continue
+:vsprintf_175_loop
                                        # *str = *s++
        mov____0x8(%ebp),%eax !0x-18
        push___%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x8 !0x1
        test___%eax,%eax
-:vsprintf_171_continue
+:vsprintf_175_continue
        mov____0x8(%ebp),%eax !0x-18
        movzbl_(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
        test___%al,%al
-       je32   %vsprintf_171_break
-       jmp32  %vsprintf_171_loop
-:vsprintf_171_break
-       jmp32  %vsprintf_41_break
-       jmp32  %vsprintf_41_body4
-:vsprintf_41_clause4
-:vsprintf_41_body4
+       je32   %vsprintf_175_break
+       jmp32  %vsprintf_175_loop
+:vsprintf_175_break
+       jmp32  %vsprintf_42_break
+       jmp32  %vsprintf_42_body4
+:vsprintf_42_clause4
+:vsprintf_42_body4
                                        # *str = *p
        mov____0x8(%ebp),%eax !0x-4
        movzbl_(%eax),%eax
        mov____%al,(%edx)
        add____$i8,0x8(%ebp) !0x8 !0x1
        test___%eax,%eax
-       jmp32  %vsprintf_41_break
-:vsprintf_41_break
+       jmp32  %vsprintf_42_break
+:vsprintf_42_break
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        mov____%ebp,%eax
index ad951095d99095a10e1b32ae5d0c712295b405ec..60ecdc936410b3584095ca2bf701bc01e71e71e4 100644 (file)
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[type].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[type].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[type].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %make_cell__40_else_b_41
-       jmp32  %make_cell__40_else_skip_b_41
-:make_cell__40_else_b_41
+       jne32  %make_cell__50_else_b_51
+       jmp32  %make_cell__50_else_skip_b_51
+:make_cell__50_else_b_51
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[type].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %make_cell__40_else
-:make_cell__40_else_skip_b_41
+       jne32  %make_cell__50_else
+:make_cell__50_else_skip_b_51
                                        # if (car) ...
        mov____0x8(%ebp),%eax !0xc
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %make_cell__66_break
+       je32   %make_cell__84_break
                                        # g_cells[x].car = g_cells[car].car
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[car].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        pop____%eax
        mov____%eax,(%edx)
        test___%eax,%eax
-       jmp32  %make_cell__66_break
-:make_cell__66_break
+       jmp32  %make_cell__84_break
+:make_cell__84_break
                                        # if (cdr) ...
        mov____0x8(%ebp),%eax !0x10
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %make_cell__90_break
+       je32   %make_cell__114_break
                                        # g_cells[x].cdr = g_cells[cdr].cdr
        mov____0x8(%ebp),%eax !0x10
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[cdr].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        pop____%eax
        mov____%eax,(%edx)
        test___%eax,%eax
-       jmp32  %make_cell__90_break
-:make_cell__90_break
-       jmp32  %make_cell__40_break
-:make_cell__40_else
+       jmp32  %make_cell__114_break
+:make_cell__114_break
+       jmp32  %make_cell__50_break
+:make_cell__50_else
                                        # if (g_cells[type].cdr == TFUNCTION) ...else ...
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[type].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x3
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %make_cell__116_else
+       jne32  %make_cell__146_else
                                        # if (car) ...
        mov____0x8(%ebp),%eax !0xc
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %make_cell__128_break
+       je32   %make_cell__162_break
                                        # g_cells[x].car = car
        mov____0x8(%ebp),%eax !0xc
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        pop____%eax
        mov____%eax,(%edx)
        test___%eax,%eax
-       jmp32  %make_cell__128_break
-:make_cell__128_break
+       jmp32  %make_cell__162_break
+:make_cell__162_break
                                        # if (cdr) ...
        mov____0x8(%ebp),%eax !0x10
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %make_cell__148_break
+       je32   %make_cell__184_break
                                        # g_cells[x].cdr = g_cells[cdr].cdr
        mov____0x8(%ebp),%eax !0x10
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[cdr].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        pop____%eax
        mov____%eax,(%edx)
        test___%eax,%eax
-       jmp32  %make_cell__148_break
-:make_cell__148_break
-       jmp32  %make_cell__116_break
-:make_cell__116_else
+       jmp32  %make_cell__184_break
+:make_cell__184_break
+       jmp32  %make_cell__146_break
+:make_cell__146_else
                                        # g_cells[x].car = car
        mov____0x8(%ebp),%eax !0xc
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        pop____%eax
        mov____%eax,(%edx)
        test___%eax,%eax
-:make_cell__116_break
-:make_cell__40_break
+:make_cell__146_break
+:make_cell__50_break
        mov____0x8(%ebp),%eax !0x-4
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[a].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[b].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[b].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %list_of_char_equal_p_26_else
-       jmp32  %list_of_char_equal_p_26_break
-:list_of_char_equal_p_26_else
+       jne32  %list_of_char_equal_p_34_else
+       jmp32  %list_of_char_equal_p_34_break
+:list_of_char_equal_p_34_else
        push___$i32 &string_isxdigit_133
        call32 %assert_fail
        add____$i8,%esp !0x4
        test___%eax,%eax
-:list_of_char_equal_p_26_break
+:list_of_char_equal_p_34_break
                                        # a = g_cells[a].cdr
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[a].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
                                        # b = g_cells[b].cdr
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[b].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0xc
        test___%eax,%eax
 :list_of_char_equal_p_1_continue
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[a].car].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[b].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[b].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        sub____%edx,%eax
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %list_of_char_equal_p_104_else
+       jne32  %list_of_char_equal_p_144_else
        mov____0x8(%ebp),%eax !0xc
        push___%eax
        mov____$i32,%eax %0x1
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %list_of_char_equal_p_104_else
+       jne32  %list_of_char_equal_p_144_else
        mov____$i32,%eax %0x3
        test___%eax,%eax
-       jmp32  %list_of_char_equal_p_104_break
-:list_of_char_equal_p_104_else
+       jmp32  %list_of_char_equal_p_144_break
+:list_of_char_equal_p_144_else
        mov____$i32,%eax %0x2
        test___%eax,%eax
-:list_of_char_equal_p_104_break
+:list_of_char_equal_p_144_break
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].car].car
+       mov____(%eax),%eax
        push___%eax
        call32 %list_of_char_equal_p
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
 :lookup_symbol__4_continue
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %lookup_symbol__45_break
+       je32   %lookup_symbol__57_break
                                        # x = g_cells[x].car
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-       jmp32  %lookup_symbol__45_break
-:lookup_symbol__45_break
+       jmp32  %lookup_symbol__57_break
+:lookup_symbol__57_break
                                        # if (!x) ...
        mov____0x8(%ebp),%eax !0x-4
        test___%eax,%eax
        movzbl_%al,%eax
        test___%eax,%eax
                                        # jmp test LABEL
-       je32   %lookup_symbol__61_break
+       je32   %lookup_symbol__77_break
                                        # x = make_symbol_(s)
        push___0x8(%ebp) !0x8
        call32 %make_symbol_
        add____$i8,%esp !0x4
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-       jmp32  %lookup_symbol__61_break
-:lookup_symbol__61_break
+       jmp32  %lookup_symbol__77_break
+:lookup_symbol__77_break
        mov____0x8(%ebp),%eax !0x-4
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x2
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %car__1_else_b_13_b_13_b_13_b_13
-       jmp32  %car__1_else_b_13_b_13_b_13_skip_b_13
-:car__1_else_b_13_b_13_b_13_b_13
+       jne32  %car__1_else_b_17_b_17_b_17_b_17
+       jmp32  %car__1_else_b_17_b_17_b_17_skip_b_17
+:car__1_else_b_17_b_17_b_17_b_17
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x8
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %car__1_else_b_13_b_13_b_13
-:car__1_else_b_13_b_13_b_13_skip_b_13
-       jmp32  %car__1_else_b_13_b_13_skip_b_13
-:car__1_else_b_13_b_13_b_13
+       jne32  %car__1_else_b_17_b_17_b_17
+:car__1_else_b_17_b_17_b_17_skip_b_17
+       jmp32  %car__1_else_b_17_b_17_skip_b_17
+:car__1_else_b_17_b_17_b_17
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x9
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %car__1_else_b_13_b_13
-:car__1_else_b_13_b_13_skip_b_13
-       jmp32  %car__1_else_b_13_skip_b_13
-:car__1_else_b_13_b_13
+       jne32  %car__1_else_b_17_b_17
+:car__1_else_b_17_b_17_skip_b_17
+       jmp32  %car__1_else_b_17_skip_b_17
+:car__1_else_b_17_b_17
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xb
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %car__1_else_b_13
-:car__1_else_b_13_skip_b_13
-       jmp32  %car__1_else_skip_b_13
-:car__1_else_b_13
+       jne32  %car__1_else_b_17
+:car__1_else_b_17_skip_b_17
+       jmp32  %car__1_else_skip_b_17
+:car__1_else_b_17
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xa
        mov____%eax,%edx
        movzbl_%al,%eax
                                        # jmp test LABEL
        jne32  %car__1_else
-:car__1_else_skip_b_13
+:car__1_else_skip_b_17
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        test___%eax,%eax
        jmp32  %car__1_break
 :car__1_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x9
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xb
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xa
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
        jmp32  %cdr__1_break
 :cdr__1_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x3
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[x].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[y].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[y].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        sub____%edx,%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[y].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[y].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        sub____%edx,%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[y].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[y].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        sub____%edx,%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
 :length_4_continue
        push___0x8(%ebp) !0x-4
        mov____0x8(%ebp),%eax !0x-8
        mov____%eax,%edx
-       mov____0x8(%ebp),%edx !0x8
+       push___%eax
+       mov____0x8(%ebp),%eax !0x8
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        movzbl_(%eax),%eax
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[formals].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[formals].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
        jmp32  %check_formals_2_break
 :check_formals_2_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[length(formals)].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
 :check_formals_2_break
        mov____%eax,0x8(%ebp) !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[length(args)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
                                        # if (alen != flen && alen != -1 && flen != -1) ...
        mov____0x8(%ebp),%eax !0x-8
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %check_formals_39_break
+       jne32  %check_formals_55_break
        mov____0x8(%ebp),%eax !0x-8
        push___%eax
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %check_formals_39_break
+       jne32  %check_formals_55_break
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %check_formals_39_break
+       jne32  %check_formals_55_break
                                        # char *s = "apply: wrong number of arguments; expected: "; 
        mov____$i32,%eax &string_isxdigit_137
        mov____%eax,0x8(%ebp) !0x-c
        add____$i8,%esp !0x8
        leave
        ret
-       jmp32  %check_formals_39_break
-:check_formals_39_break
+       jmp32  %check_formals_55_break
+:check_formals_55_break
        mov____$i32,%eax %0x7
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[f].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[f].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %check_apply_88_break
+       jne32  %check_apply_92_break
                                        # type = "number"
        mov____$i32,%eax &string_isxdigit_142
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-       jmp32  %check_apply_88_break
-:check_apply_88_break
+       jmp32  %check_apply_92_break
+:check_apply_92_break
                                        # if (g_cells[f].type == TSTRING) ...
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[f].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xa
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %check_apply_106_break
+       jne32  %check_apply_114_break
                                        # type = "string"
        mov____$i32,%eax &string_isxdigit_143
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-       jmp32  %check_apply_106_break
-:check_apply_106_break
+       jmp32  %check_apply_114_break
+:check_apply_114_break
                                        # if (type) ...
        mov____0x8(%ebp),%eax !0x-4
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %check_apply_124_break
+       je32   %check_apply_136_break
                                        # char *s = "cannot apply: "; 
        mov____$i32,%eax &string_isxdigit_144
        mov____%eax,0x8(%ebp) !0x-8
        add____$i8,%esp !0x8
        leave
        ret
-       jmp32  %check_apply_124_break
-:check_apply_124_break
+       jmp32  %check_apply_136_break
+:check_apply_136_break
        mov____$i32,%eax %0x7
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
-       add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
        push___%eax
-       mov____$i32,%eax %0x7
+       mov____0x32,%eax &g_cells
        mov____%eax,%edx
        pop____%eax
-       sub____%edx,%eax
-       sete___%al
+       add____%edx,%eax
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
+       push___%eax
+       mov____$i32,%eax %0x7
+       mov____%eax,%edx
+       pop____%eax
+       sub____%edx,%eax
+       sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
        jne32  %append2_13_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[fn].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[fn].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        push___%eax
        mov____$i32,%eax %0x1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[x].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[x].car].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[fn].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x1
        mov____%eax,%edx
        movzbl_%al,%eax
        test___%eax,%eax
                                        # jmp test LABEL
-       jle32  %call_87_break_b_88
-       jmp32  %call_87_break_skip_b_88
-:call_87_break_b_88
+       jle32  %call_127_break_b_128
+       jmp32  %call_127_break_skip_b_128
+:call_127_break_b_128
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[fn].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        push___%eax
        mov____$i32,%eax %0x1
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %call_87_break
-:call_87_break_skip_b_88
+       jne32  %call_127_break
+:call_127_break_skip_b_128
        mov____0x8(%ebp),%eax !0xc
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %call_87_break
+       jne32  %call_127_break
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %call_87_break
+       jne32  %call_127_break
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[g_cells[x].cdr].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xc
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %call_87_break
+       jne32  %call_127_break
                                        # x = cons(g_cells[x].car, cons(g_cells[g_cells[g_cells[g_cells[x].cdr].car].cdr]     .car, g_cells[x].cdr))
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[g_cells[x].cdr].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[g_cells[x].cdr].car].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        mov____%eax,0x8(%ebp) !0xc
        test___%eax,%eax
-       jmp32  %call_87_break
-:call_87_break
+       jmp32  %call_127_break
+:call_127_break
                                        # switch (g_functions[g_cells[fn].cdr].arity) {   ...} 
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
-:call_204_clause0
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[fn].cdr].arity
+       mov____(%eax),%eax
+:call_304_clause0
        cmp____$i8,%eax !0x0
-       je32   %call_204_body0
-       jmp32  %call_204_clause1
-:call_204_body0
+       je32   %call_304_body0
+       jmp32  %call_304_clause1
+:call_304_body0
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0x0
        leave
        ret
-       jmp32  %call_204_body1
-:call_204_clause1
+       jmp32  %call_304_body1
+:call_304_clause1
        cmp____$i8,%eax !0x1
-       je32   %call_204_body1
-       jmp32  %call_204_clause2
-:call_204_body1
+       je32   %call_304_body1
+       jmp32  %call_304_clause2
+:call_304_body1
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0x4
        leave
        ret
-       jmp32  %call_204_body2
-:call_204_clause2
+       jmp32  %call_304_body2
+:call_304_clause2
        cmp____$i8,%eax !0x2
-       je32   %call_204_body2
-       jmp32  %call_204_clause3
-:call_204_body2
+       je32   %call_304_body2
+       jmp32  %call_304_clause3
+:call_304_body2
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0x8
        leave
        ret
-       jmp32  %call_204_body3
-:call_204_clause3
+       jmp32  %call_304_body3
+:call_304_clause3
        cmp____$i8,%eax !0x3
-       je32   %call_204_body3
-       jmp32  %call_204_clause4
-:call_204_body3
+       je32   %call_304_body3
+       jmp32  %call_304_clause4
+:call_304_body3
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[x].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[x].cdr].cdr].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
-       add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
        push___%eax
-       mov____0x8(%ebp),%eax !0xc
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
+       add____%edx,%eax
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
+       push___%eax
+       mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0xc
        leave
        ret
-       jmp32  %call_204_body4
-:call_204_clause4
+       jmp32  %call_304_body4
+:call_304_clause4
        cmp____$i8,%eax !0x-1
-       je32   %call_204_body4
-       jmp32  %call_204_clause5
-:call_204_body4
+       je32   %call_304_body4
+       jmp32  %call_304_clause5
+:call_304_body4
        push___0x8(%ebp) !0xc
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0x4
        leave
        ret
-       jmp32  %call_204_body5
-:call_204_clause5
-:call_204_body5
+       jmp32  %call_304_body5
+:call_304_clause5
+:call_304_body5
        push___0x8(%ebp) !0xc
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[fn].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_functions[g_cells[fn].cdr].function
+       mov____(%eax),%eax
        push___%eax
        pop____%eax
        call___*%eax
        add____$i8,%esp !0x4
        leave
        ret
-:call_204_break
+:call_304_break
        mov____$i32,%eax %0x7
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[a].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0xc
        test___%eax,%eax
 :assq_1_continue
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[a].car].car
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x8
        call32 %eq_p
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %assq_40_else
+       jne32  %assq_52_else
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        test___%eax,%eax
-       jmp32  %assq_40_break
-:assq_40_else
+       jmp32  %assq_52_break
+:assq_52_else
        mov____$i32,%eax %0x2
        test___%eax,%eax
-:assq_40_break
+:assq_52_break
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[p].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xb
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[m].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x5
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %lookup_macro__22_break
+       jne32  %lookup_macro__26_break
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[m].cdr
+       mov____(%eax),%eax
        leave
        ret
-       jmp32  %lookup_macro__22_break
-:lookup_macro__22_break
+       jmp32  %lookup_macro__26_break
+:lookup_macro__26_break
        mov____$i32,%eax %0x2
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_stack].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
                                        # r1 = g_cells[frame].car
        mov____0x8(%ebp),%eax !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[frame].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
                                        # r2 = g_cells[g_cells[frame].cdr].car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[frame].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[frame].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r2
        test___%eax,%eax
                                        # r3 = g_cells[g_cells[g_cells[frame].cdr].cdr].car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[frame].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[frame].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[frame].cdr].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r3
        test___%eax,%eax
                                        # r0 = g_cells[g_cells[g_cells[g_cells[frame].cdr].cdr].cdr].car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[frame].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[frame].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[g_cells[frame].cdr].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[g_cells[frame].cdr].cdr].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r0
        test___%eax,%eax
        mov____0x8(%ebp),%eax !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_stack].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &g_stack
        test___%eax,%eax
        mov____0x8(%ebp),%eax !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
-:eval_apply_265_clause0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[r1].car].type
+       mov____(%eax),%eax
+:eval_apply_277_clause0
        cmp____$i8,%eax !0x3
-       je32   %eval_apply_265_body0
-       jmp32  %eval_apply_265_clause1
-:eval_apply_265_body0
+       je32   %eval_apply_277_body0
+       jmp32  %eval_apply_277_clause1
+:eval_apply_277_body0
                                        # check_formals(g_cells[r1].car, make_cell_(tmp_num_(TNUMBER), 0, tmp_num2_(     g_functions[g_cells[g_cells[r1].car].cdr].arity)), g_cells[r1].cdr); 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_functions[g_cells[g_cells[r1].car].cdr].arity
+       mov____(%eax),%eax
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %check_formals
        add____$i8,%esp !0xc
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %call
        add____$i8,%esp !0x8
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_265_body1
-:eval_apply_265_clause1
+       jmp32  %eval_apply_277_body1
+:eval_apply_277_clause1
        cmp____$i8,%eax !0x1
-       je32   %eval_apply_265_body1
-       jmp32  %eval_apply_265_clause2
-:eval_apply_265_body1
+       je32   %eval_apply_277_body1
+       jmp32  %eval_apply_277_clause2
+:eval_apply_277_body1
                                        # SCM cl = g_cells[g_cells[r1].car].cdr; 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
                                        # SCM formals = g_cells[g_cells[cl].cdr].car; 
        mov____0x8(%ebp),%eax !0x-8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[cl].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[cl].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-c
                                        # SCM body = g_cells[g_cells[cl].cdr].cdr; 
        mov____0x8(%ebp),%eax !0x-8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[cl].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[cl].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-10
                                        # SCM aa = g_cells[g_cells[cl].car].cdr; 
        mov____0x8(%ebp),%eax !0x-8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[cl].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[cl].car].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-14
                                        # aa = g_cells[aa].cdr
        mov____0x8(%ebp),%eax !0x-14
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[aa].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-14
        test___%eax,%eax
                                        # check_formals(g_cells[r1].car, formals, g_cells[r1].cdr); 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x-c
        mov____0x32,%eax &r1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %check_formals
        add____$i8,%esp !0xc
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x-c
        call32 %pairlis
        add____$i8,%esp !0x10
        test___%eax,%eax
        jmp32  %eval_apply_label_begin
-       jmp32  %eval_apply_265_body2
-:eval_apply_265_clause2
+       jmp32  %eval_apply_277_body2
+:eval_apply_277_clause2
        cmp____$i8,%eax !0x2
-       je32   %eval_apply_265_body2
-       jmp32  %eval_apply_265_clause3
-:eval_apply_265_body2
+       je32   %eval_apply_277_body2
+       jmp32  %eval_apply_277_clause3
+:eval_apply_277_body2
                                        # x = r1
        mov____0x32,%eax &r1
        mov____%eax,0x8(%ebp) !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &g_stack
        test___%eax,%eax
                                        # gc_pop_frame(); 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_265_body3
-:eval_apply_265_clause3
+       jmp32  %eval_apply_277_body3
+:eval_apply_277_clause3
        cmp____$i8,%eax !0x9
-       je32   %eval_apply_265_body3
-       jmp32  %eval_apply_265_clause4
-:eval_apply_265_body3
+       je32   %eval_apply_277_body3
+       jmp32  %eval_apply_277_clause4
+:eval_apply_277_body3
                                        # switch (g_cells[r1].car) {   ...} 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
-:eval_apply_472_clause0
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
+:eval_apply_584_clause0
        cmp____$i8,%eax !0x2d
-       je32   %eval_apply_472_body0
-       jmp32  %eval_apply_472_clause1
-:eval_apply_472_body0
+       je32   %eval_apply_584_body0
+       jmp32  %eval_apply_584_clause1
+:eval_apply_584_body0
                                        # push_cc(cons(g_cells[g_cells[r1].cdr].car, g_cells[g_cells[g_cells[r1].cdr].cdr     ].car), r1, r0, 64); 
        mov____$i32,%eax %0x40
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[r1].cdr].cdr].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____$i8,%esp !0x10
        test___%eax,%eax
        jmp32  %eval_apply_label_apply
-       jmp32  %eval_apply_472_body1
-:eval_apply_472_clause1
+       jmp32  %eval_apply_584_body1
+:eval_apply_584_clause1
        cmp____$i8,%eax !0x2f
-       je32   %eval_apply_472_body1
-       jmp32  %eval_apply_472_clause2
-:eval_apply_472_body1
+       je32   %eval_apply_584_body1
+       jmp32  %eval_apply_584_clause2
+:eval_apply_584_body1
                                        # push_cc(g_cells[g_cells[r1].cdr].car, r1, g_cells[g_cells[g_cells[r1].cdr].cdr]     .car, 64); 
        mov____$i32,%eax %0x40
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[r1].cdr].cdr].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        test___%eax,%eax
        jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_472_body2
-:eval_apply_472_clause2
+       jmp32  %eval_apply_584_body2
+:eval_apply_584_clause2
        cmp____$i8,%eax !0x15
-       je32   %eval_apply_472_body2
-       jmp32  %eval_apply_472_clause3
-:eval_apply_472_body2
+       je32   %eval_apply_584_body2
+       jmp32  %eval_apply_584_clause3
+:eval_apply_584_body2
                                        # r1 = g_cells[r1].cdr
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_call_with_current_continuation
-       jmp32  %eval_apply_472_body3
-:eval_apply_472_clause3
-:eval_apply_472_body3
+       jmp32  %eval_apply_584_body3
+:eval_apply_584_clause3
+:eval_apply_584_body3
                                        # check_apply(2, g_cells[r1].car); 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x2
        push___%eax
        call32 %check_apply
        add____$i8,%esp !0x8
        test___%eax,%eax
-:eval_apply_472_break
-       jmp32  %eval_apply_265_body4
-:eval_apply_265_clause4
+:eval_apply_584_break
+       jmp32  %eval_apply_277_body4
+:eval_apply_277_clause4
        cmp____$i8,%eax !0xb
-       je32   %eval_apply_265_body4
-       jmp32  %eval_apply_265_clause5
-:eval_apply_265_body4
+       je32   %eval_apply_277_body4
+       jmp32  %eval_apply_277_clause5
+:eval_apply_277_body4
                                        # if (g_cells[r1].car == 20) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x14
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_590_break
+       jne32  %eval_apply_754_break
                                        # r1 = g_cells[r1].cdr
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_call_with_values
-       jmp32  %eval_apply_590_break
-:eval_apply_590_break
+       jmp32  %eval_apply_754_break
+:eval_apply_754_break
                                        # if (g_cells[r1].car == 23) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x17
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_613_break
+       jne32  %eval_apply_785_break
                                        # r1 = r0
        mov____0x32,%eax &r0
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_613_break
-:eval_apply_613_break
-       jmp32  %eval_apply_265_break
-       jmp32  %eval_apply_265_body5
-:eval_apply_265_clause5
+       jmp32  %eval_apply_785_break
+:eval_apply_785_break
+       jmp32  %eval_apply_277_break
+       jmp32  %eval_apply_277_body5
+:eval_apply_277_clause5
        cmp____$i8,%eax !0x7
-       je32   %eval_apply_265_body5
-       jmp32  %eval_apply_265_break
-:eval_apply_265_body5
+       je32   %eval_apply_277_body5
+       jmp32  %eval_apply_277_break
+:eval_apply_277_body5
                                        # switch (g_cells[g_cells[r1].car].car) {   ...} 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
-:eval_apply_639_clause0
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].car].car
+       mov____(%eax),%eax
+:eval_apply_815_clause0
        cmp____$i8,%eax !0xc
-       je32   %eval_apply_639_body0
-       jmp32  %eval_apply_639_break
-:eval_apply_639_body0
+       je32   %eval_apply_815_body0
+       jmp32  %eval_apply_815_break
+:eval_apply_815_body0
                                        # SCM formals = g_cells[g_cells[g_cells[r1].car].cdr].car; 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[r1].car].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-1c
                                        # SCM body = g_cells[g_cells[g_cells[r1].car].cdr].cdr; 
        mov____0x32,%eax &r1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[g_cells[r1].car].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-20
                                        # SCM p = pairlis(formals, g_cells[r1].cdr, r0); 
        mov____0x32,%eax &r0
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x-1c
        call32 %pairlis
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x-1c
        mov____0x32,%eax &r1
        add____$i8,%esp !0x10
        test___%eax,%eax
        jmp32  %eval_apply_label_begin
-:eval_apply_639_break
-:eval_apply_265_break
+:eval_apply_815_break
+:eval_apply_277_break
                                        # push_cc(g_cells[r1].car, r1, r0, 46); 
        mov____$i32,%eax %0x2e
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r2].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
-:eval_apply_757_clause0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
+:eval_apply_985_clause0
        cmp____$i8,%eax !0x7
-       je32   %eval_apply_757_body0
-       jmp32  %eval_apply_757_clause1
-:eval_apply_757_body0
+       je32   %eval_apply_985_body0
+       jmp32  %eval_apply_985_clause1
+:eval_apply_985_body0
                                        # switch (g_cells[r1].car) {   ...} 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
-:eval_apply_768_clause0
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
+:eval_apply_1000_clause0
        cmp____$i8,%eax !0x25
-       je32   %eval_apply_768_body0
-       jmp32  %eval_apply_768_clause1
-:eval_apply_768_body0
+       je32   %eval_apply_1000_body0
+       jmp32  %eval_apply_1000_clause1
+:eval_apply_1000_body0
                                        # push_cc(g_cells[g_cells[r1].cdr].car, r1, r0, 48); 
        mov____$i32,%eax %0x30
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_768_body1
-:eval_apply_768_clause1
+       jmp32  %eval_apply_1000_body1
+:eval_apply_1000_clause1
        cmp____$i8,%eax !0x26
-       je32   %eval_apply_768_body1
-       jmp32  %eval_apply_768_clause2
-:eval_apply_768_body1
+       je32   %eval_apply_1000_body1
+       jmp32  %eval_apply_1000_clause2
+:eval_apply_1000_body1
                                        # push_cc(g_cells[g_cells[r1].cdr].car, r1, r0, 49); 
        mov____$i32,%eax %0x31
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_768_body2
-:eval_apply_768_clause2
+       jmp32  %eval_apply_1000_body2
+:eval_apply_1000_clause2
        cmp____$i8,%eax !0x29
-       je32   %eval_apply_768_body2
-       jmp32  %eval_apply_768_clause3
-:eval_apply_768_body2
+       je32   %eval_apply_1000_body2
+       jmp32  %eval_apply_1000_clause3
+:eval_apply_1000_body2
                                        # push_cc(g_cells[r1].cdr, r1, r0, 50); 
        mov____$i32,%eax %0x32
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_768_body3
-:eval_apply_768_clause3
+       jmp32  %eval_apply_1000_body3
+:eval_apply_1000_clause3
        cmp____$i8,%eax !0x27
-       je32   %eval_apply_768_body3
-       jmp32  %eval_apply_768_clause4
-:eval_apply_768_body3
+       je32   %eval_apply_1000_body3
+       jmp32  %eval_apply_1000_clause4
+:eval_apply_1000_body3
                                        # push_cc(g_cells[g_cells[r1].cdr].car, r1, r0, 51); 
        mov____$i32,%eax %0x33
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_768_body4
-:eval_apply_768_clause4
+       jmp32  %eval_apply_1000_body4
+:eval_apply_1000_clause4
        cmp____$i8,%eax !0xf
-       je32   %eval_apply_768_body4
-       jmp32  %eval_apply_768_clause5
-:eval_apply_768_body4
+       je32   %eval_apply_1000_body4
+       jmp32  %eval_apply_1000_clause5
+:eval_apply_1000_body4
                                        # x = r1
        mov____0x32,%eax &r1
        mov____%eax,0x8(%ebp) !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_768_body5
-:eval_apply_768_clause5
+       jmp32  %eval_apply_1000_body5
+:eval_apply_1000_clause5
        cmp____$i8,%eax !0xd
-       je32   %eval_apply_768_body5
-       jmp32  %eval_apply_768_clause6
-:eval_apply_768_body5
+       je32   %eval_apply_1000_body5
+       jmp32  %eval_apply_1000_clause6
+:eval_apply_1000_body5
        jmp32  %eval_apply_label_begin
-       jmp32  %eval_apply_768_body6
-:eval_apply_768_clause6
+       jmp32  %eval_apply_1000_body6
+:eval_apply_1000_clause6
        cmp____$i8,%eax !0xc
-       je32   %eval_apply_768_body6
-       jmp32  %eval_apply_768_clause7
-:eval_apply_768_body6
+       je32   %eval_apply_1000_body6
+       jmp32  %eval_apply_1000_clause7
+:eval_apply_1000_body6
                                        # r1 = make_closure_(g_cells[g_cells[r1].cdr].car, g_cells[g_cells[r1].cdr].cdr,      assq(8, r0))
        mov____0x32,%eax &r0
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %make_closure_
        add____$i8,%esp !0xc
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_768_body7
-:eval_apply_768_clause7
+       jmp32  %eval_apply_1000_body7
+:eval_apply_1000_clause7
        cmp____$i8,%eax !0xe
-       je32   %eval_apply_768_body7
-       jmp32  %eval_apply_768_clause8
-:eval_apply_768_body7
+       je32   %eval_apply_1000_body7
+       jmp32  %eval_apply_1000_clause8
+:eval_apply_1000_body7
                                        # r1 = g_cells[r1].cdr
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_if
-       jmp32  %eval_apply_768_body8
-:eval_apply_768_clause8
+       jmp32  %eval_apply_1000_body8
+:eval_apply_1000_clause8
        cmp____$i8,%eax !0x10
-       je32   %eval_apply_768_body8
-       jmp32  %eval_apply_768_clause9
-:eval_apply_768_body8
+       je32   %eval_apply_1000_body8
+       jmp32  %eval_apply_1000_clause9
+:eval_apply_1000_body8
                                        # push_cc(g_cells[g_cells[g_cells[r1].cdr].cdr].car, r1, r0, 52); 
        mov____$i32,%eax %0x34
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[r1].cdr].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[x].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %set_env_x
        add____$i8,%esp !0xc
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_768_body9
-:eval_apply_768_clause9
+       jmp32  %eval_apply_1000_body9
+:eval_apply_1000_clause9
        cmp____$i8,%eax !0x38
-       je32   %eval_apply_768_body9
-       jmp32  %eval_apply_768_clause10
-:eval_apply_768_body9
+       je32   %eval_apply_1000_body9
+       jmp32  %eval_apply_1000_clause10
+:eval_apply_1000_body9
                                        # push_cc(g_cells[g_cells[r1].cdr].car, r1, r0, 64); 
        mov____$i32,%eax %0x40
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        test___%eax,%eax
        jmp32  %eval_apply_label_macro_expand
-       jmp32  %eval_apply_768_body10
-:eval_apply_768_clause10
-:eval_apply_768_body10
+       jmp32  %eval_apply_1000_body10
+:eval_apply_1000_clause10
+:eval_apply_1000_body10
                                        # push_cc(r1, r1, r0, 53); 
        mov____$i32,%eax %0x35
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1113_break
+       jne32  %eval_apply_1453_break
                                        # if (g_cells[r1].type == TPAIR) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1121_break
+       jne32  %eval_apply_1461_break
                                        # set_cdr_x(r2, g_cells[r1].cdr); 
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r2
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r2
        push___%eax
        call32 %set_car_x
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %eval_apply_1121_break
-:eval_apply_1121_break
+       jmp32  %eval_apply_1461_break
+:eval_apply_1461_break
        jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_1113_break
-:eval_apply_1113_break
+       jmp32  %eval_apply_1453_break
+:eval_apply_1453_break
                                        # push_cc(g_cells[r1].car, r1, r0, 54); 
        mov____$i32,%eax %0x36
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r2].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_apply
-:eval_apply_768_break
-       jmp32  %eval_apply_757_body1
-:eval_apply_757_clause1
+:eval_apply_1000_break
+       jmp32  %eval_apply_985_body1
+:eval_apply_985_clause1
        cmp____$i8,%eax !0xb
-       je32   %eval_apply_757_body1
-       jmp32  %eval_apply_757_clause2
-:eval_apply_757_body1
+       je32   %eval_apply_985_body1
+       jmp32  %eval_apply_985_clause2
+:eval_apply_985_body1
                                        # r1 = assert_defined(r1, assq_ref_env(r1, r0))
        mov____0x32,%eax &r0
        push___%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_757_body2
-:eval_apply_757_clause2
-:eval_apply_757_body2
+       jmp32  %eval_apply_985_body2
+:eval_apply_985_clause2
+:eval_apply_985_body2
        jmp32  %eval_apply_label_vm_return
-:eval_apply_757_break
+:eval_apply_985_break
                                        # SCM macro; 
                                        # SCM expanders; 
 :eval_apply_label_macro_expand
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1225_else
+       jne32  %eval_apply_1589_else
                                        # macro = lookup_macro_(g_cells[r1].car, r0)
        mov____0x32,%eax &r0
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %lookup_macro_
        add____$i8,%esp !0x8
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1225_else
+       jne32  %eval_apply_1589_else
                                        # r1 = cons(macro, g_cells[r1].cdr)
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x-8
        call32 %cons
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_apply
-       jmp32  %eval_apply_1225_break
-:eval_apply_1225_else
+       jmp32  %eval_apply_1589_break
+:eval_apply_1589_else
                                        # if (g_cells[r1].type == TPAIR && g_cells[g_cells[r1].car].type == TSYMBOL && (     expanders = assq_ref_env(19, r0)) != 6 && (macro = assq(g_cells[r1].car,      expanders)) != 2) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1267_break
+       jne32  %eval_apply_1643_break
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[r1].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xb
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1267_break
+       jne32  %eval_apply_1643_break
                                        # expanders = assq_ref_env(19, r0)
        mov____0x32,%eax &r0
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1267_break
+       jne32  %eval_apply_1643_break
                                        # macro = assq(g_cells[r1].car, expanders)
        push___0x8(%ebp) !0x-c
        mov____0x32,%eax &r1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %assq
        add____$i8,%esp !0x8
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1267_break
+       jne32  %eval_apply_1643_break
                                        # SCM sc_expand = assq_ref_env(18, r0); 
        mov____0x32,%eax &r0
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1328_break
+       jne32  %eval_apply_1720_break
        mov____0x8(%ebp),%eax !0x-10
        push___%eax
        mov____$i32,%eax %0x2
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1328_break
+       jne32  %eval_apply_1720_break
                                        # r1 = cons(sc_expand, cons(r1, 1))
        mov____$i32,%eax %0x1
        push___%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_apply
-       jmp32  %eval_apply_1328_break
-:eval_apply_1328_break
-       jmp32  %eval_apply_1267_break
-:eval_apply_1267_break
-:eval_apply_1225_break
+       jmp32  %eval_apply_1720_break
+:eval_apply_1720_break
+       jmp32  %eval_apply_1643_break
+:eval_apply_1643_break
+:eval_apply_1589_break
        jmp32  %eval_apply_label_vm_return
 :eval_apply_label_begin
                                        # x = 7
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
                                        # while (r1 != 1) ...
-       jmp32  %eval_apply_1365_continue
-:eval_apply_1365_loop
+       jmp32  %eval_apply_1757_continue
+:eval_apply_1757_loop
                                        # gc_check(); 
        call32 %gc_check
        add____$i8,%esp !0x0
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1371_break
+       jne32  %eval_apply_1763_break
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[r1].car].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1371_break
+       jne32  %eval_apply_1763_break
                                        # if (g_cells[g_cells[r1].car].car == 13) ...else ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].car].car
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xd
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1398_else
+       jne32  %eval_apply_1802_else
                                        # r1 = append2(g_cells[g_cells[r1].car].cdr, g_cells[r1].cdr)
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].car].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %append2
        add____$i8,%esp !0x8
        mov____%eax,0x32 &r1
        test___%eax,%eax
-       jmp32  %eval_apply_1398_break
-:eval_apply_1398_else
+       jmp32  %eval_apply_1802_break
+:eval_apply_1802_else
                                        # if (g_cells[g_cells[r1].car].car == 24) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].car].car
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x18
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1436_break
+       jne32  %eval_apply_1860_break
                                        # push_cc(cons(25, 1), r1, r0, 58); 
        mov____$i32,%eax %0x3a
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x32,%eax &r1
        push___%eax
        add____$i8,%esp !0x8
        mov____%eax,0x32 &r1
        test___%eax,%eax
-       jmp32  %eval_apply_1436_break
-:eval_apply_1436_break
-:eval_apply_1398_break
-       jmp32  %eval_apply_1371_break
-:eval_apply_1371_break
+       jmp32  %eval_apply_1860_break
+:eval_apply_1860_break
+:eval_apply_1802_break
+       jmp32  %eval_apply_1763_break
+:eval_apply_1763_break
                                        # if (g_cells[r1].cdr == 1) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x1
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1483_break
+       jne32  %eval_apply_1919_break
                                        # r1 = g_cells[r1].car
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_1483_break
-:eval_apply_1483_break
+       jmp32  %eval_apply_1919_break
+:eval_apply_1919_break
                                        # push_cc(g_cells[r1].car, r1, r0, 59); 
        mov____$i32,%eax %0x3b
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
-:eval_apply_1365_continue
+:eval_apply_1757_continue
        mov____0x32,%eax &r1
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1365_break
-       jmp32  %eval_apply_1365_loop
-:eval_apply_1365_break
+       jne32  %eval_apply_1757_break
+       jmp32  %eval_apply_1757_loop
+:eval_apply_1757_break
                                        # r1 = x
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,0x32 &r1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %push_cc
        add____$i8,%esp !0x10
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1572_break
+       jne32  %eval_apply_2028_break
                                        # r1 = g_cells[g_cells[r1].cdr].car
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r1].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_1572_break
-:eval_apply_1572_break
+       jmp32  %eval_apply_2028_break
+:eval_apply_2028_break
                                        # if (g_cells[g_cells[r1].cdr].cdr != 1) ...
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x1
        mov____%eax,%edx
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1595_break
+       jne32  %eval_apply_2059_break
                                        # r1 = g_cells[g_cells[g_cells[r1].cdr].cdr].car
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[r1].cdr].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[g_cells[r1].cdr].cdr].car
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
        jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_1595_break
-:eval_apply_1595_break
+       jmp32  %eval_apply_2059_break
+:eval_apply_2059_break
                                        # r1 = 7
        mov____$i32,%eax %0x7
        mov____%eax,0x32 &r1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[r1].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[r1].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0xc
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %eval_apply_1711_break
+       jne32  %eval_apply_2205_break
                                        # r1 = g_cells[r1].cdr
        mov____0x32,%eax &r1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r1].cdr
+       mov____(%eax),%eax
        mov____%eax,0x32 &r1
        test___%eax,%eax
-       jmp32  %eval_apply_1711_break
-:eval_apply_1711_break
+       jmp32  %eval_apply_2205_break
+:eval_apply_2205_break
                                        # r1 = cons(g_cells[g_cells[r2].cdr].car, r1)
        mov____0x32,%eax &r1
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[r2].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[g_cells[r2].cdr].car
+       mov____(%eax),%eax
        push___%eax
        call32 %cons
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x8(%ebp),%edx !0x8
+       push___%eax
+       mov____0x8(%ebp),%eax !0x8
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x8(%ebp),%edx !0x8
+       push___%eax
+       mov____0x8(%ebp),%eax !0x8
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x8(%ebp),%edx !0x8
+       push___%eax
+       mov____0x8(%ebp),%eax !0x8
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[i].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %ungetchar
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[p].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(p)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[p].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[p].car].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x1
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[p].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[p].car].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-c
        test___%eax,%eax
        jmp32  %write_byte_12_break
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[c].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-10
                                        # write(fd, (char*)&cc, 1); 
        mov____$i32,%eax %0x1
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[s].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
                                        # while (s != 1) ...
-       jmp32  %string_to_cstring_12_continue
-:string_to_cstring_12_loop
+       jmp32  %string_to_cstring_16_continue
+:string_to_cstring_16_loop
                                        # *p = g_cells[car(s)].cdr
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(s)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        add____$i8,%esp !0x4
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-:string_to_cstring_12_continue
+:string_to_cstring_16_continue
        mov____0x8(%ebp),%eax !0x8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %string_to_cstring_12_break
-       jmp32  %string_to_cstring_12_loop
-:string_to_cstring_12_break
+       jne32  %string_to_cstring_16_break
+       jmp32  %string_to_cstring_16_loop
+:string_to_cstring_16_break
                                        # *p = 0
        mov____$i32,%eax %0x0
        push___%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[mode].cdr
+       mov____(%eax),%eax
        push___%eax
        push___0x8(%ebp) !0x8
        call32 %string_to_cstring
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[port].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[port].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
        jmp32  %set_current_input_port_2_break
 :set_current_input_port_2_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
        test___%eax,%eax
        jmp32  %open_output_file_17_break
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[port].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[port].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
        jmp32  %set_current_output_port_2_break
 :set_current_output_port_2_else
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        setge__%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jl32   %greater_p_26_break
+       jl32   %greater_p_30_break
        mov____$i32,%eax %0x2
        leave
        ret
-       jmp32  %greater_p_26_break
-:greater_p_26_break
+       jmp32  %greater_p_30_break
+:greater_p_30_break
                                        # n = g_cells[car(x)].cdr
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
                                        # x = cdr(x)
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        setle__%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jg32   %less_p_30_break
+       jg32   %less_p_34_break
        mov____$i32,%eax %0x2
        leave
        ret
-       jmp32  %less_p_30_break
-:less_p_30_break
+       jmp32  %less_p_34_break
+:less_p_34_break
                                        # n = g_cells[car(x)].cdr
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
                                        # x = cdr(x)
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
                                        # x = cdr(x)
        push___0x8(%ebp) !0x8
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
                                        # while (x != 1) ...
-       jmp32  %is_p_45_continue
-:is_p_45_loop
+       jmp32  %is_p_53_continue
+:is_p_53_loop
                                        # if (g_cells[car(x)].cdr != n) ...
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        mov____%eax,%edx
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %is_p_48_break
+       jne32  %is_p_56_break
        mov____$i32,%eax %0x2
        leave
        ret
-       jmp32  %is_p_48_break
-:is_p_48_break
+       jmp32  %is_p_56_break
+:is_p_56_break
                                        # x = cdr(x)
        push___0x8(%ebp) !0x8
        call32 %cdr
        add____$i8,%esp !0x4
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-:is_p_45_continue
+:is_p_53_continue
        mov____0x8(%ebp),%eax !0x8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %is_p_45_break
-       jmp32  %is_p_45_loop
-:is_p_45_break
+       jne32  %is_p_53_break
+       jmp32  %is_p_53_loop
+:is_p_53_break
        mov____$i32,%eax %0x3
        leave
        ret
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[a].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[a].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
                                        # x = cdr(x)
        push___0x8(%ebp) !0x8
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %minus_35_break
+       jne32  %minus_43_break
                                        # n = -n
        push___%eax
        mov____0x8(%ebp),%eax !0x-8
        sub____%edx,%eax
        mov____%eax,0x8(%ebp) !0x-8
        test___%eax,%eax
-       jmp32  %minus_35_break
-:minus_35_break
+       jmp32  %minus_43_break
+:minus_43_break
                                        # while (x != 1) ...
-       jmp32  %minus_53_continue
-:minus_53_loop
+       jmp32  %minus_61_continue
+:minus_61_loop
                                        # g_cells[car(x)].type == TNUMBER? ...: ...
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %minus_56_else
-       jmp32  %minus_56_break
-:minus_56_else
+       jne32  %minus_64_else
+       jmp32  %minus_64_break
+:minus_64_else
        push___$i32 &string_isxdigit_149
        call32 %assert_fail
        add____$i8,%esp !0x4
        test___%eax,%eax
-:minus_56_break
+:minus_64_break
                                        # n -= g_cells[car(x)].cdr
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-8
        pop____%edx
        add____$i8,%esp !0x4
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-:minus_53_continue
+:minus_61_continue
        mov____0x8(%ebp),%eax !0x8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %minus_53_break
-       jmp32  %minus_53_loop
-:minus_53_break
+       jne32  %minus_61_break
+       jmp32  %minus_61_loop
+:minus_61_break
        push___0x8(%ebp) !0x-8
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
                                        # x = cdr(x)
        jmp32  %divide_4_break
 :divide_4_break
                                        # while (x != 1) ...
-       jmp32  %divide_47_continue
-:divide_47_loop
+       jmp32  %divide_55_continue
+:divide_55_loop
                                        # g_cells[car(x)].type == TNUMBER? ...: ...
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %divide_50_else
-       jmp32  %divide_50_break
-:divide_50_else
+       jne32  %divide_58_else
+       jmp32  %divide_58_break
+:divide_58_else
        push___$i32 &string_isxdigit_149
        call32 %assert_fail
        add____$i8,%esp !0x4
        test___%eax,%eax
-:divide_50_break
+:divide_58_break
                                        # n /= g_cells[car(x)].cdr
        push___0x8(%ebp) !0x8
        call32 %car
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____$i8,%esp !0x4
        mov____%eax,0x8(%ebp) !0x8
        test___%eax,%eax
-:divide_47_continue
+:divide_55_continue
        mov____0x8(%ebp),%eax !0x8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %divide_47_break
-       jmp32  %divide_47_loop
-:divide_47_break
+       jne32  %divide_55_break
+       jmp32  %divide_55_loop
+:divide_55_break
        push___0x8(%ebp) !0x-4
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[a].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[b].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %modulo_19_else
-       jmp32  %modulo_19_break
-:modulo_19_else
+       jne32  %modulo_23_else
+       jmp32  %modulo_23_break
+:modulo_23_else
        push___$i32 &string_isxdigit_151
        call32 %assert_fail
        add____$i8,%esp !0x4
        test___%eax,%eax
-:modulo_19_break
+:modulo_23_break
                                        # int x = g_cells[a].cdr; 
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[a].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
                                        # while (x < 0) ...
-       jmp32  %modulo_44_continue
-:modulo_44_loop
+       jmp32  %modulo_56_continue
+:modulo_56_loop
                                        # x += g_cells[b].cdr
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[b].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____%edx,%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-:modulo_44_continue
+:modulo_56_continue
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        mov____$i32,%eax %0x0
        setl___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jge32  %modulo_44_break
-       jmp32  %modulo_44_loop
-:modulo_44_break
+       jge32  %modulo_56_break
+       jmp32  %modulo_56_loop
+:modulo_56_break
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        mov____0x8(%ebp),%eax !0xc
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[b].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        mov____%edx,%ebx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[car(x)].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[car(x)].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____0x8(%ebp),%eax !0x-4
        pop____%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
        not____%eax
        mov____%eax,0x8(%ebp) !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[n].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[count].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %ash_19_else
-       jmp32  %ash_19_break
-:ash_19_else
+       jne32  %ash_23_else
+       jmp32  %ash_23_break
+:ash_23_else
        push___$i32 &string_isxdigit_154
        call32 %assert_fail
        add____$i8,%esp !0x4
        test___%eax,%eax
-:ash_19_break
+:ash_23_break
                                        # int cn = g_cells[n].cdr; 
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[n].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
                                        # int ccount = g_cells[count].cdr; 
        mov____0x8(%ebp),%eax !0xc
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[count].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
                                        # ccount < 0? ...: ...
        mov____0x8(%ebp),%eax !0x-8
        setl___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jge32  %ash_51_else
+       jge32  %ash_67_else
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        push___%eax
        xor____%ecx,%ecx
        mov____%edx,%ecx
        shr____%cl,%eax
-       jmp32  %ash_51_break
-:ash_51_else
+       jmp32  %ash_67_break
+:ash_67_else
        mov____0x8(%ebp),%eax !0x-4
        push___%eax
        mov____0x8(%ebp),%eax !0x-8
        xor____%ecx,%ecx
        mov____%edx,%ecx
        shl____%cl,%eax
-:ash_51_break
+:ash_67_break
        push___%eax
        call32 %tmp_num2_
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
 :display_helper_23_clause0
        cmp____$i8,%eax !0x0
        je32   %display_helper_23_body0
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %fputc
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_functions[g_cells[x].cdr].name
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x0
        mov____%eax,%edx
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %display_helper_64_break
+       jne32  %display_helper_72_break
                                        # p = g_functions[g_cells[x].cdr].name
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____$i32,%edx &g_functions
+       push___%eax
+       mov____$i32,%eax &g_functions
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_functions[g_cells[x].cdr].name
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-4
        test___%eax,%eax
-       jmp32  %display_helper_64_break
-:display_helper_64_break
+       jmp32  %display_helper_72_break
+:display_helper_72_break
                                        # fputs(p, fd); 
        push___0x8(%ebp) !0x14
        push___0x8(%ebp) !0x-4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %itoa
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %itoa
        add____$i8,%esp !0x4
        movzbl_%al,%eax
        test___%eax,%eax
                                        # jmp test LABEL
-       je32   %display_helper_185_break
+       je32   %display_helper_217_break
                                        # fputs("(", fd); 
        push___0x8(%ebp) !0x14
        push___$i32 &string_isxdigit_162
        call32 %fputs
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %display_helper_185_break
-:display_helper_185_break
+       jmp32  %display_helper_217_break
+:display_helper_217_break
                                        # if (x && x != 1) ...
        mov____0x8(%ebp),%eax !0x8
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %display_helper_199_break
+       je32   %display_helper_231_break
        mov____0x8(%ebp),%eax !0x8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %display_helper_199_break
+       jne32  %display_helper_231_break
                                        # fdisplay_(g_cells[x].car, fd); 
        push___0x8(%ebp) !0x14
        mov____0x8(%ebp),%eax !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        push___%eax
        call32 %fdisplay_
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %display_helper_199_break
-:display_helper_199_break
+       jmp32  %display_helper_231_break
+:display_helper_231_break
                                        # if (g_cells[x].cdr && g_cells[g_cells[x].cdr].type == TPAIR) ...else ...
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %display_helper_224_else
+       je32   %display_helper_260_else
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sete___%al
        movzbl_%al,%eax
                                        # jmp test LABEL
-       jne32  %display_helper_224_else
+       jne32  %display_helper_260_else
                                        # display_helper(g_cells[x].cdr, 1, " ", fd); 
        push___0x8(%ebp) !0x14
        push___$i32 &string_isxdigit_163
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %display_helper
        add____$i8,%esp !0x10
        test___%eax,%eax
-       jmp32  %display_helper_224_break
-:display_helper_224_else
+       jmp32  %display_helper_260_break
+:display_helper_260_else
                                        # if (g_cells[x].cdr && g_cells[x].cdr != 1) ...
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %display_helper_264_break
+       je32   %display_helper_316_break
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x1
        mov____%eax,%edx
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %display_helper_264_break
+       jne32  %display_helper_316_break
                                        # if (g_cells[g_cells[x].cdr].type != TPAIR) ...
        mov____0x8(%ebp),%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[g_cells[x].cdr].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x7
        mov____%eax,%edx
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %display_helper_285_break
+       jne32  %display_helper_345_break
                                        # fputs(" . ", fd); 
        push___0x8(%ebp) !0x14
        push___$i32 &string_isxdigit_164
        call32 %fputs
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %display_helper_285_break
-:display_helper_285_break
+       jmp32  %display_helper_345_break
+:display_helper_345_break
                                        # fdisplay_(g_cells[x].cdr, fd); 
        push___0x8(%ebp) !0x14
        mov____0x8(%ebp),%eax !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %fdisplay_
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %display_helper_264_break
-:display_helper_264_break
-:display_helper_224_break
+       jmp32  %display_helper_316_break
+:display_helper_316_break
+:display_helper_260_break
                                        # if (!cont) ...
        mov____0x8(%ebp),%eax !0xc
        test___%eax,%eax
        movzbl_%al,%eax
        test___%eax,%eax
                                        # jmp test LABEL
-       je32   %display_helper_321_break
+       je32   %display_helper_393_break
                                        # fputs(")", fd); 
        push___0x8(%ebp) !0x14
        push___$i32 &string_isxdigit_165
        call32 %fputs
        add____$i8,%esp !0x8
        test___%eax,%eax
-       jmp32  %display_helper_321_break
-:display_helper_321_break
+       jmp32  %display_helper_393_break
+:display_helper_393_break
        jmp32  %display_helper_23_break
        jmp32  %display_helper_23_body5
 :display_helper_23_clause5
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[x].car
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
                                        # while (t && t != 1) ...
-       jmp32  %display_helper_353_continue
-:display_helper_353_loop
+       jmp32  %display_helper_429_continue
+:display_helper_429_loop
                                        # fputc(g_cells[g_cells[t].car].cdr, fd); 
        push___0x8(%ebp) !0x14
        mov____0x8(%ebp),%eax !0x-8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[t].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[t].car].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %fputc
        add____$i8,%esp !0x8
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[t].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0x-8
        test___%eax,%eax
-:display_helper_353_continue
+:display_helper_429_continue
        mov____0x8(%ebp),%eax !0x-8
        test___%eax,%eax
                                        # jmp test LABEL
        test___%eax,%eax
-       je32   %display_helper_353_break
+       je32   %display_helper_429_break
        mov____0x8(%ebp),%eax !0x-8
        push___%eax
        mov____$i32,%eax %0x1
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %display_helper_353_break
-       jmp32  %display_helper_353_loop
-:display_helper_353_break
+       jne32  %display_helper_429_break
+       jmp32  %display_helper_429_loop
+:display_helper_429_break
        jmp32  %display_helper_23_break
        jmp32  %display_helper_23_body6
 :display_helper_23_clause6
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        call32 %itoa
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x0
+       add____$i8,%eax !0x0
+                                       # g_cells[x].type
+       mov____(%eax),%eax
        push___%eax
        mov____$i32,%eax %0x6
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[x].cdr
+       mov____(%eax),%eax
        push___%eax
        call32 %exit
        add____$i8,%esp !0x4
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[a].cdr
+       mov____(%eax),%eax
        mov____%eax,0x8(%ebp) !0xc
        test___%eax,%eax
 :xassq_1_continue
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x8
+       add____$i8,%eax !0x8
+                                       # g_cells[g_cells[a].car].cdr
+       mov____(%eax),%eax
        mov____%eax,%edx
        pop____%eax
        push___%eax
        sahf
        pop____%eax
                                        # jmp test LABEL
-       jne32  %xassq_37_else
+       jne32  %xassq_49_else
        mov____0x8(%ebp),%eax !0xc
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
-       mov____0x8(%eax),%eax !0x4
+       add____$i8,%eax !0x4
+                                       # g_cells[a].car
+       mov____(%eax),%eax
        test___%eax,%eax
-       jmp32  %xassq_37_break
-:xassq_37_else
+       jmp32  %xassq_49_break
+:xassq_49_else
        mov____$i32,%eax %0x2
        test___%eax,%eax
-:xassq_37_break
+:xassq_49_break
        leave
        ret
 
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_news
+       push___%eax
+       mov____0x32,%eax &g_news
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_news
+       push___%eax
+       mov____0x32,%eax &g_news
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x4
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_news
+       push___%eax
+       mov____0x32,%eax &g_news
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_news
+       push___%eax
+       mov____0x32,%eax &g_news
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x0
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_news
+       push___%eax
+       mov____0x32,%eax &g_news
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        add____$i8,%eax !0x8
        mov____%eax,%edx
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx
        pop____%eax
        add____%eax,%eax
        add____%edx,%eax
        shl____$i8,%eax !0x2
-       mov____0x32,%edx &g_cells
+       push___%eax
+       mov____0x32,%eax &g_cells
+       mov____%eax,%edx
+       pop____%eax
        add____%edx,%eax
        mov____%eax,%edx