bootstrap: Unbundle necessary M1 sources.
authorJan Nieuwenhuizen <janneke@gnu.org>
Mon, 20 Nov 2017 05:47:46 +0000 (06:47 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 20 Nov 2017 05:47:46 +0000 (06:47 +0100)
* mlibc/crt1.M1: Remove.
* mlibc/libc-mes.M1: Remove.
* src/mes.M1: Remove.

mlibc/crt1.M1 [deleted file]
mlibc/libc-mes.M1 [deleted file]
src/mes.M1 [deleted file]

diff --git a/mlibc/crt1.M1 b/mlibc/crt1.M1
deleted file mode 100644 (file)
index 6433800..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
-:_start
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____%ebp,%eax
-       add____$i8,%eax !4
-       movzbl_(%eax),%eax
-       add____$i8,%eax !3
-       shl____$i8,%eax !0x02
-       add____%ebp,%eax
-       mov____%eax,0x32 &g_environment
-       mov____%ebp,%eax
-       add____$i8,%eax !8
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !4
-       movzbl_(%eax),%eax
-       push___%eax
-                                       # main(); 
-       call32 %main
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-       mov____%eax,%ebx
-       mov____$i32,%eax %1
-       int____$0x80
-       hlt
-       leave
-       ret
-
-:g_environment
-!0x00 !0x00 !0x00 !0x00
diff --git a/mlibc/libc-mes.M1 b/mlibc/libc-mes.M1
deleted file mode 100644 (file)
index 49ff733..0000000
+++ /dev/null
@@ -1,1926 +0,0 @@
-
-
-:exit
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____$i32,%eax SYS_exit
-       int____$0x80
-       leave
-       ret
-
-
-:read
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____0x8(%ebp),%ecx !12
-       mov____0x8(%ebp),%edx !16
-       mov____$i32,%eax SYS_read
-       int____$0x80
-       leave
-       ret
-
-
-:write
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____0x8(%ebp),%ecx !12
-       mov____0x8(%ebp),%edx !16
-       mov____$i32,%eax SYS_write
-       int____$0x80
-       leave
-       ret
-
-
-:open
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____0x8(%ebp),%ecx !12
-       mov____0x8(%ebp),%edx !16
-       mov____$i32,%eax SYS_open
-       int____$0x80
-       leave
-       ret
-
-
-:access
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____0x8(%ebp),%ecx !12
-       mov____$i32,%eax SYS_access
-       int____$0x80
-       leave
-       ret
-
-
-:brk
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____$i32,%eax SYS_brk
-       int____$0x80
-       leave
-       ret
-
-
-:fsync
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%ebx !8
-       mov____$i32,%eax SYS_fsync
-       int____$0x80
-       leave
-       ret
-
-
-:strlen
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int i = 0; 
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (s[i]) ...
-       jmp32  %strlen_4_continue
-:strlen_4_loop
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:strlen_4_continue
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strlen_4_break
-       jmp32  %strlen_4_loop
-:strlen_4_break
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:eputc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____$i32,%eax %0x2
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %fputc
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:eputs
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int i = strlen(s); 
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # write(2, s, i); 
-       push___0x8(%ebp) !0x-4
-       push___0x8(%ebp) !0x8
-       mov____$i32,%eax %0x2
-       push___%eax
-       call32 %write
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:fputs
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int i = strlen(s); 
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # write(fd, s, i); 
-       push___0x8(%ebp) !0x-4
-       push___0x8(%ebp) !0x8
-       push___0x8(%ebp) !0xc
-       call32 %write
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:puts
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int i = strlen(s); 
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # write(1, s, i); 
-       push___0x8(%ebp) !0x-4
-       push___0x8(%ebp) !0x8
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %write
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:putchar
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # write(1, (char*)&c, 1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       lea____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %write
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:fputc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # write(fd, (char*)&c, 1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       lea____0x8(%ebp),%eax !0x8
-       push___%eax
-       push___0x8(%ebp) !0xc
-       call32 %write
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:assert_fail
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # eputs("assert fail: "); 
-       push___$i32 &string__env_0
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(s); 
-       push___0x8(%ebp) !0x8
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs("\n"); 
-       push___$i32 &string__env_1
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # char *fail = s; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # fail = 0
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # *fail = 0
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       test___%eax,%eax
-       leave
-       ret
-
-
-:getchar
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char c; 
-                                       # int i; 
-                                       # if (ungetc_char == -1) ...else ...
-       mov____0x32,%eax &ungetc_char
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %getchar_3_else
-                                       # int r = read(g_stdin, &c, 1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       lea____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____0x32,%eax &g_stdin
-       push___%eax
-       call32 %read
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-c
-                                       # if (r < 1) ...
-       mov____0x8(%ebp),%eax !0x-c
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setl___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jge32  %getchar_22_break
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       leave
-       ret
-       jmp32  %getchar_22_break
-:getchar_22_break
-                                       # i = c
-       movzbl_0x8(%ebp),%eax !0x-4
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-       jmp32  %getchar_3_break
-:getchar_3_else
-                                       # i = ungetc_buf[ungetc_char]
-       mov____0x32,%eax &ungetc_char
-       mov____%eax,%edx
-       push___%eax
-       mov____$i32,%eax &ungetc_buf
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       movzbl_(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-                                       # ungetc_char = ungetc_char - 1
-       mov____0x32,%eax &ungetc_char
-       add____$i8,%eax !0x-1
-       mov____%eax,0x32 &ungetc_char
-       test___%eax,%eax
-:getchar_3_break
-                                       # if (i < 0) ...
-       mov____0x8(%ebp),%eax !0x-8
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setl___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jge32  %getchar_60_break
-                                       # i += 256
-       mov____$i32,%eax %0x100
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-8
-       pop____%edx
-       add____%edx,%eax
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-       jmp32  %getchar_60_break
-:getchar_60_break
-       mov____0x8(%ebp),%eax !0x-8
-       leave
-       ret
-
-
-:fgetc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char c; 
-                                       # int r = read(fd, &c, 1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       lea____0x8(%ebp),%eax !0x-4
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %read
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # c == 1? ...: ...
-       movzbl_0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %fgetc_9_else
-       movzbl_0x8(%ebp),%eax !0x-4
-       test___%eax,%eax
-       jmp32  %fgetc_9_break
-:fgetc_9_else
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       test___%eax,%eax
-:fgetc_9_break
-       leave
-       ret
-
-
-:free
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       leave
-       ret
-
-
-:ungetc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x32,%eax &ungetc_char
-       push___%eax
-       mov____$i32,%eax &ungetc_char
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-                                       # ungetc_buf[ungetc_char] = c
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x32,%eax &ungetc_char
-       mov____%eax,%edx
-       push___%eax
-       mov____$i32,%eax &ungetc_buf
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       leave
-       ret
-
-
-:strcmp
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # while (*a && *b && *a == *b) ...
-       jmp32  %strcmp_1_continue
-:strcmp_1_loop
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x8
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0xc
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:strcmp_1_continue
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strcmp_1_break
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strcmp_1_break
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %strcmp_1_break
-       jmp32  %strcmp_1_loop
-:strcmp_1_break
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       leave
-       ret
-
-
-:strcpy
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = dest; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (*src) ...
-       jmp32  %strcpy_4_continue
-:strcpy_4_loop
-                                       # *p = *src++
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0xc
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x-4 !0x1
-       test___%eax,%eax
-:strcpy_4_continue
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strcpy_4_break
-       jmp32  %strcpy_4_loop
-:strcpy_4_break
-                                       # *p = 0
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       leave
-       ret
-
-
-:itoa
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = itoa_buf; 
-       mov____$i32,%eax &itoa_buf
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # p += 9
-       mov____$i32,%eax %0x9
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       pop____%edx
-       add____%edx,%eax
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # *p = 0
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x-4 !0x-1
-       test___%eax,%eax
-                                       # int sign = 0; 
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # if (x < 0) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setl___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jge32  %itoa_24_break
-                                       # sign = 1
-       mov____$i32,%eax %0x1
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-       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_38_break
-                                       # x = -x
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,0x8(%ebp) !0x8
-       test___%eax,%eax
-       jmp32  %itoa_38_break
-:itoa_38_break
-                                       # do xwhile (...); 
-:itoa_54_loop
-                                       # *p = '0' + x%10
-       mov____$i32,%eax %0x30
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       mov____%edx,%ebx
-       xor____%edx,%edx
-       idiv___%ebx
-       mov____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x-4 !0x-1
-       test___%eax,%eax
-                                       # x = x/10
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       mov____%edx,%ebx
-       xor____%edx,%edx
-       idiv___%ebx
-       mov____%eax,0x8(%ebp) !0x8
-       test___%eax,%eax
-:itoa_54_continue
-       mov____0x8(%ebp),%eax !0x8
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       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_89_break
-       mov____0x8(%ebp),%eax !0x-4
-       add____$i8,%eax !0x1
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x30
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %itoa_89_break
-                                       # *p = '-'
-       mov____$i32,%eax %0x2d
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x-4 !0x-1
-       test___%eax,%eax
-       jmp32  %itoa_89_break
-:itoa_89_break
-       mov____0x8(%ebp),%eax !0x-4
-       add____$i8,%eax !0x1
-       leave
-       ret
-
-
-:isdigit
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x30
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setge__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-       je32   %isdigit_6_and_skip_b
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x39
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setle__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-:isdigit_6_and_skip_b
-       leave
-       ret
-
-
-:isxdigit
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       push___0x8(%ebp) !0x8
-       call32 %isdigit
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jne32  %isxdigit_3_or_skip_b
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x61
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setge__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-       je32   %isxdigit_11_and_skip_b
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x66
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setle__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-:isxdigit_11_and_skip_b
-       test___%eax,%eax
-:isxdigit_3_or_skip_b
-       leave
-       ret
-
-
-:isnumber
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (base == 2) ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %isnumber_1_break
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x30
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setge__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-       je32   %isnumber_14_and_skip_b
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x31
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setle__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-:isnumber_14_and_skip_b
-       leave
-       ret
-       jmp32  %isnumber_1_break
-:isnumber_1_break
-                                       # if (base == 8) ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x8
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %isnumber_27_break
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x30
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setge__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-       je32   %isnumber_40_and_skip_b
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x37
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setle__%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-:isnumber_40_and_skip_b
-       leave
-       ret
-       jmp32  %isnumber_27_break
-:isnumber_27_break
-                                       # if (base == 10) ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %isnumber_53_break
-       push___0x8(%ebp) !0x8
-       call32 %isdigit
-       add____$i8,%esp !0x4
-       leave
-       ret
-       jmp32  %isnumber_53_break
-:isnumber_53_break
-                                       # if (base == 16) ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x10
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %isnumber_66_break
-       push___0x8(%ebp) !0x8
-       call32 %isxdigit
-       add____$i8,%esp !0x4
-       leave
-       ret
-       jmp32  %isnumber_66_break
-:isnumber_66_break
-       leave
-       ret
-
-
-:_atoi
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *s = *p; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # int i = 0; 
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # int sign = 1; 
-       mov____$i32,%eax %0x1
-       mov____%eax,0x8(%ebp) !0x-c
-                                       # if (!base) ...
-       mov____0x8(%ebp),%eax !0xc
-       test___%eax,%eax
-       sete___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       je32   %_atoi_11_break
-                                       # base = 10
-       mov____$i32,%eax %0xa
-       mov____%eax,0x8(%ebp) !0xc
-       test___%eax,%eax
-       jmp32  %_atoi_11_break
-:_atoi_11_break
-                                       # if (*s && *s == '-') ...
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %_atoi_24_break
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x2d
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %_atoi_24_break
-                                       # sign = -1
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,0x8(%ebp) !0x-c
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-       jmp32  %_atoi_24_break
-:_atoi_24_break
-                                       # while (isnumber(*s, base)) ...
-       jmp32  %_atoi_55_continue
-:_atoi_55_loop
-                                       # i *= base
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-8
-       pop____%edx
-       mul____%edx
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-                                       # int m = *s > '9'? 'a' - 10: '0'; 
-                                       # *s > '9'? ...: ...
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x39
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setg___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       jle32  %_atoi_67_else
-       mov____$i32,%eax %0x61
-       add____$i8,%eax !0x-a
-       test___%eax,%eax
-       jmp32  %_atoi_67_break
-:_atoi_67_else
-       mov____$i32,%eax %0x30
-       test___%eax,%eax
-:_atoi_67_break
-       mov____%eax,0x8(%ebp) !0x-10
-                                       # i += *s - m
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-10
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-8
-       pop____%edx
-       add____%edx,%eax
-       mov____%eax,0x8(%ebp) !0x-8
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:_atoi_55_continue
-       push___0x8(%ebp) !0xc
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       call32 %isnumber
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %_atoi_55_break
-       jmp32  %_atoi_55_loop
-:_atoi_55_break
-                                       # *p = s
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%eax,(%edx)
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-8
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-c
-       mov____%eax,%edx
-       pop____%eax
-       mul____%edx
-       leave
-       ret
-
-
-:atoi
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = s; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-       mov____$i32,%eax %0x0
-       push___%eax
-       lea____0x8(%ebp),%eax !0x-4
-       push___%eax
-       call32 %_atoi
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:malloc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (!g_brk) ...
-       mov____0x32,%eax &g_brk
-       test___%eax,%eax
-       sete___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       je32   %malloc_1_break
-                                       # g_brk = brk(0)
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %brk
-       add____$i8,%esp !0x4
-       mov____%eax,0x32 &g_brk
-       test___%eax,%eax
-       jmp32  %malloc_1_break
-:malloc_1_break
-                                       # if (brk(g_brk + size) == -1) ...
-       mov____0x32,%eax &g_brk
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       push___%eax
-       call32 %brk
-       add____$i8,%esp !0x4
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %malloc_16_break
-       mov____$i32,%eax %0x0
-       leave
-       ret
-       jmp32  %malloc_16_break
-:malloc_16_break
-                                       # char *p = g_brk; 
-       mov____0x32,%eax &g_brk
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_brk += size
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x32,%eax &g_brk
-       pop____%edx
-       add____%edx,%eax
-       mov____%eax,0x32 &g_brk
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:memcpy
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = dest; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # char *q = src; 
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # while (n--) ...
-       jmp32  %memcpy_7_continue
-:memcpy_7_loop
-                                       # *p = *q++
-       mov____0x8(%ebp),%eax !0x-8
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-8
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x-4 !0x1
-       test___%eax,%eax
-:memcpy_7_continue
-       mov____0x8(%ebp),%eax !0x10
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x10
-       add____$i8,(%eax) !0x-1
-       pop____%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %memcpy_7_break
-       jmp32  %memcpy_7_loop
-:memcpy_7_break
-       mov____0x8(%ebp),%eax !0x8
-       leave
-       ret
-
-
-:realloc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # void *new = malloc(size); 
-       push___0x8(%ebp) !0xc
-       call32 %malloc
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # if (ptr && new) ...
-       mov____0x8(%ebp),%eax !0x8
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %realloc_5_break
-       mov____0x8(%ebp),%eax !0x-4
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %realloc_5_break
-                                       # memcpy(new, ptr, size); 
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       push___0x8(%ebp) !0x-4
-       call32 %memcpy
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-                                       # free(ptr); 
-       push___0x8(%ebp) !0x8
-       call32 %free
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %realloc_5_break
-:realloc_5_break
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:strncmp
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # while (*a && *b && *a == *b && --length) ...
-       jmp32  %strncmp_1_continue
-:strncmp_1_loop
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x8
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0xc
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:strncmp_1_continue
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strncmp_1_break
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %strncmp_1_break
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %strncmp_1_break
-       mov____%ebp,%eax
-       add____$i8,%eax !0x10
-       add____$i8,(%eax) !0x-1
-       mov____0x8(%ebp),%eax !0x10
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %strncmp_1_break
-       jmp32  %strncmp_1_loop
-:strncmp_1_break
-       mov____0x8(%ebp),%eax !0x8
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       movzbl_(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       leave
-       ret
-
-
-:getenv
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char **p = g_environment; 
-       mov____0x32,%eax &g_environment
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # int length = strlen(s); 
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # while (*p) ...
-       jmp32  %getenv_8_continue
-:getenv_8_loop
-                                       # if (!strncmp(s, *p, length) && *(*p + length) == '=') ...
-       push___0x8(%ebp) !0x-8
-       mov____0x8(%ebp),%eax !0x-4
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %strncmp
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-       sete___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       je32   %getenv_11_break
-       mov____0x8(%ebp),%eax !0x-4
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x3d
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %getenv_11_break
-       mov____0x8(%ebp),%eax !0x-4
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x1
-       leave
-       ret
-       jmp32  %getenv_11_break
-:getenv_11_break
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x4
-       pop____%eax
-       test___%eax,%eax
-:getenv_8_continue
-       mov____0x8(%ebp),%eax !0x-4
-       mov____(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %getenv_8_break
-       jmp32  %getenv_8_loop
-:getenv_8_break
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:vprintf
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = format; 
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (*p) ...
-       jmp32  %vprintf_4_continue
-:vprintf_4_loop
-                                       # if (*p != '%') ...else ...
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x25
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %vprintf_7_else
-                                       # putchar(*p++); 
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       call32 %putchar
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_7_break
-:vprintf_7_else
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-                                       # char c = *p; 
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # switch (c) {   ...} 
-       movzbl_0x8(%ebp),%eax !0x-8
-:vprintf_38_clause0
-       cmp____$i8,%eax !0x25
-       je32   %vprintf_38_body0
-       jmp32  %vprintf_38_clause1
-:vprintf_38_body0
-                                       # putchar(*p); 
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       call32 %putchar
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_38_break
-       jmp32  %vprintf_38_body1
-:vprintf_38_clause1
-       cmp____$i8,%eax !0x63
-       je32   %vprintf_38_body1
-       jmp32  %vprintf_38_clause2
-:vprintf_38_body1
-                                       # char c; 
-                                       # c = (char)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0xc
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0xc
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-c
-       test___%eax,%eax
-                                       # putchar(c); 
-       push___0x8(%ebp) !0x-c
-       call32 %putchar
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_38_break
-       jmp32  %vprintf_38_body2
-:vprintf_38_clause2
-       cmp____$i8,%eax !0x64
-       je32   %vprintf_38_body2
-       jmp32  %vprintf_38_clause3
-:vprintf_38_body2
-                                       # int d; 
-                                       # d = (int)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0xc
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0xc
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-10
-       test___%eax,%eax
-                                       # puts(itoa(d)); 
-       push___0x8(%ebp) !0x-10
-       call32 %itoa
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %puts
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_38_break
-       jmp32  %vprintf_38_body3
-:vprintf_38_clause3
-       cmp____$i8,%eax !0x73
-       je32   %vprintf_38_body3
-       jmp32  %vprintf_38_clause4
-:vprintf_38_body3
-                                       # char *s; 
-                                       # s = (char*)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0xc
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0xc
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-14
-       test___%eax,%eax
-                                       # puts(s); 
-       push___0x8(%ebp) !0x-14
-       call32 %puts
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_38_break
-       jmp32  %vprintf_38_body4
-:vprintf_38_clause4
-:vprintf_38_body4
-                                       # putchar(*p); 
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       call32 %putchar
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       jmp32  %vprintf_38_break
-:vprintf_38_break
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:vprintf_7_break
-:vprintf_4_continue
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %vprintf_4_break
-       jmp32  %vprintf_4_loop
-:vprintf_4_break
-                                       # ap = 0
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0xc
-       test___%eax,%eax
-       mov____$i32,%eax %0x0
-       leave
-       ret
-
-
-:printf
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # va_list ap; 
-                                       # ap = (char*)(&format + 1)
-       mov____%ebp,%eax
-       add____$i8,%eax !0x8
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # int r = vprintf(format, ap); 
-       push___0x8(%ebp) !0x-4
-       push___0x8(%ebp) !0x8
-       call32 %vprintf
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # ap = 0
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-8
-       leave
-       ret
-
-
-:vsprintf
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *p = format; 
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (*p) ...
-       jmp32  %vsprintf_4_continue
-:vsprintf_4_loop
-                                       # if (*p != '%') ...else ...
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x25
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %vsprintf_7_else
-                                       # *str = *p++
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-       jmp32  %vsprintf_7_break
-:vsprintf_7_else
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-                                       # char c = *p; 
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # switch (c) {   ...} 
-       movzbl_0x8(%ebp),%eax !0x-8
-:vsprintf_42_clause0
-       cmp____$i8,%eax !0x25
-       je32   %vsprintf_42_body0
-       jmp32  %vsprintf_42_clause1
-:vsprintf_42_body0
-                                       # *str = *p
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-       jmp32  %vsprintf_42_break
-       jmp32  %vsprintf_42_body1
-:vsprintf_42_clause1
-       cmp____$i8,%eax !0x63
-       je32   %vsprintf_42_body1
-       jmp32  %vsprintf_42_clause2
-:vsprintf_42_body1
-                                       # char c; 
-                                       # c = (char)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0x10
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0x10
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-c
-       test___%eax,%eax
-                                       # *str = c
-       movzbl_0x8(%ebp),%eax !0x-c
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-       jmp32  %vsprintf_42_break
-       jmp32  %vsprintf_42_body2
-:vsprintf_42_clause2
-       cmp____$i8,%eax !0x64
-       je32   %vsprintf_42_body2
-       jmp32  %vsprintf_42_clause3
-:vsprintf_42_body2
-                                       # int d; 
-                                       # d = (int)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0x10
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0x10
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-10
-       test___%eax,%eax
-                                       # char *s; 
-                                       # s = itoa(d)
-       push___0x8(%ebp) !0x-10
-       call32 %itoa
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-14
-       test___%eax,%eax
-                                       # while (*s) ...
-       jmp32  %vsprintf_124_continue
-:vsprintf_124_loop
-                                       # *str = *s++
-       mov____0x8(%ebp),%eax !0x-14
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-14
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-: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_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_42_body3
-       jmp32  %vsprintf_42_clause4
-:vsprintf_42_body3
-                                       # char *s; 
-                                       # s = (char*)(int*)(ap = ap + 4)[-1]
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-                                       # ap = ap + 4
-       mov____0x8(%ebp),%eax !0x10
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0x10
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-18
-       test___%eax,%eax
-                                       # while (*s) ...
-       jmp32  %vsprintf_175_continue
-:vsprintf_175_loop
-                                       # *str = *s++
-       mov____0x8(%ebp),%eax !0x-18
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-18
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-: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_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
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       add____$i8,0x8(%ebp) !0x8 !0x1
-       test___%eax,%eax
-       jmp32  %vsprintf_42_break
-:vsprintf_42_break
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-:vsprintf_7_break
-:vsprintf_4_continue
-       mov____0x8(%ebp),%eax !0x-4
-       movzbl_(%eax),%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       test___%al,%al
-       je32   %vsprintf_4_break
-       jmp32  %vsprintf_4_loop
-:vsprintf_4_break
-                                       # ap = 0
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x10
-       test___%eax,%eax
-                                       # *str = 0
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       mov____%al,(%edx)
-       test___%eax,%eax
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       leave
-       ret
-
-
-:sprintf
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # va_list ap; 
-                                       # ap = (char*)(&format + 1)
-       mov____%ebp,%eax
-       add____$i8,%eax !0xc
-       add____$i8,%eax !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # int r = vsprintf(str, format, ap); 
-       push___0x8(%ebp) !0x-4
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %vsprintf
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # ap = 0
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-8
-       leave
-       ret
-
-:g_environment
-!0x00 !0x00 !0x00 !0x00
-
-:g_stdin
-!0x00 !0x00 !0x00 !0x00
-
-:string__env_0
-"assert fail: "
-
-:string__env_1
-"
-"
-
-:ungetc_char
-!0x-1 !0x-1 !0x-1 !0x-1
-
-:ungetc_buf
-!0x00 !0x00
-
-:itoa_buf
-!0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00 !0x00
-
-:g_brk
-!0x00 !0x00 !0x00 !0x00
diff --git a/src/mes.M1 b/src/mes.M1
deleted file mode 100644 (file)
index 60ecdc9..0000000
+++ /dev/null
@@ -1,30313 +0,0 @@
-
-
-:alloc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_free + n < ARENA_SIZE? ...: ...
-       mov____0x32,%eax &g_free
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       push___%eax
-       mov____0x32,%eax &ARENA_SIZE
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setl___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jge32  %alloc_1_else
-       jmp32  %alloc_1_break
-:alloc_1_else
-       push___$i32 &string_isxdigit_130
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:alloc_1_break
-                                       # SCM x = g_free; 
-       mov____0x32,%eax &g_free
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_free += n
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x32,%eax &g_free
-       pop____%edx
-       add____%edx,%eax
-       mov____%eax,0x32 &g_free
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:tmp_num_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[tmp_num].cdr = x
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x32,%eax &tmp_num
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-       mov____0x32,%eax &tmp_num
-       leave
-       ret
-
-
-:tmp_num2_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[tmp_num2].cdr = x
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x32,%eax &tmp_num2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-       mov____0x32,%eax &tmp_num2
-       leave
-       ret
-
-
-:make_cell_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM x = alloc(1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %alloc
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_cells[type].type == TNUMBER? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[type].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %make_cell__6_else
-       jmp32  %make_cell__6_break
-:make_cell__6_else
-       push___$i32 &string_isxdigit_131
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:make_cell__6_break
-                                       # g_cells[x].type = g_cells[type].cdr
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-       mov____%eax,%edx
-       pop____%eax
-       mov____%eax,(%edx)
-       test___%eax,%eax
-                                       # if (g_cells[type].cdr == TCHAR || g_cells[type].cdr == TNUMBER) ...else ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[type].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[type].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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__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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       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__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__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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       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__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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[type].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x3
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %make_cell__146_else
-                                       # if (car) ...
-       mov____0x8(%ebp),%eax !0xc
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %make_cell__162_break
-                                       # g_cells[x].car = car
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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__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__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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       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__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
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-                                       # g_cells[x].cdr = cdr
-       mov____0x8(%ebp),%eax !0x10
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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__146_break
-:make_cell__50_break
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:make_symbol_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[tmp_num].cdr = TSYMBOL
-       mov____$i32,%eax %0xb
-       push___%eax
-       mov____0x32,%eax &tmp_num
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-                                       # SCM x = make_cell_(tmp_num, s, 0); 
-       mov____$i32,%eax %0x0
-       push___%eax
-       push___0x8(%ebp) !0x8
-       mov____0x32,%eax &tmp_num
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_symbols = cons(x, g_symbols)
-       mov____0x32,%eax &g_symbols
-       push___%eax
-       push___0x8(%ebp) !0x-4
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &g_symbols
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:list_of_char_equal_p
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # while (a != 1 && b != 1 && g_cells[g_cells[a].car].cdr == g_cells[g_cells[b].     car].cdr) ...
-       jmp32  %list_of_char_equal_p_1_continue
-:list_of_char_equal_p_1_loop
-                                       # g_cells[g_cells[a].car].type == TCHAR? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[a].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[a].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %list_of_char_equal_p_4_else
-       jmp32  %list_of_char_equal_p_4_break
-:list_of_char_equal_p_4_else
-       push___$i32 &string_isxdigit_132
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:list_of_char_equal_p_4_break
-                                       # g_cells[g_cells[b].car].type == TCHAR? ...: ...
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[b].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[b].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[a].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x8
-       test___%eax,%eax
-                                       # b = g_cells[b].cdr
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %list_of_char_equal_p_1_break
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %list_of_char_equal_p_1_break
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[a].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[b].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1_break
-       jmp32  %list_of_char_equal_p_1_loop
-:list_of_char_equal_p_1_break
-                                       # a == 1 && b == 1? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %list_of_char_equal_p_144_else
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %list_of_char_equal_p_144_else
-       mov____$i32,%eax %0x3
-       test___%eax,%eax
-       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_144_break
-       leave
-       ret
-
-
-:lookup_symbol_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM x = g_symbols; 
-       mov____0x32,%eax &g_symbols
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (x) ...
-       jmp32  %lookup_symbol__4_continue
-:lookup_symbol__4_loop
-                                       # if (list_of_char_equal_p(g_cells[g_cells[x].car].car, s) == 3) ...
-       push___0x8(%ebp) !0x8
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____$i32,%eax %0x3
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %lookup_symbol__7_break
-       jmp32  %lookup_symbol__4_break
-       jmp32  %lookup_symbol__7_break
-:lookup_symbol__7_break
-                                       # x = g_cells[x].cdr
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-:lookup_symbol__4_continue
-       mov____0x8(%ebp),%eax !0x-4
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %lookup_symbol__4_break
-       jmp32  %lookup_symbol__4_loop
-:lookup_symbol__4_break
-                                       # if (x) ...
-       mov____0x8(%ebp),%eax !0x-4
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %lookup_symbol__57_break
-:lookup_symbol__57_break
-                                       # if (!x) ...
-       mov____0x8(%ebp),%eax !0x-4
-       test___%eax,%eax
-       sete___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       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__77_break
-:lookup_symbol__77_break
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:type_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-
-
-:car_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[x].type != TCONTINUATION && ((((g_cells[g_cells[x].car].type == TPAIR      || g_cells[g_cells[x].car].type == TREF) || g_cells[g_cells[x].car].type      == TSPECIAL) || g_cells[g_cells[x].car].type == TSYMBOL) || g_cells[     g_cells[x].car].type == TSTRING)? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %car__1_else
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].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  %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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x8
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x9
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xb
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %car__1_else
-:car__1_else_skip_b_17
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       test___%eax,%eax
-       jmp32  %car__1_break
-:car__1_else
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-:car__1_break
-       leave
-       ret
-
-
-:cdr_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # (((g_cells[g_cells[x].cdr].type == TPAIR || g_cells[g_cells[x].cdr].type ==      TREF) || g_cells[g_cells[x].car].type == TSPECIAL) || g_cells[g_cells[x].     cdr].type == TSYMBOL) || g_cells[g_cells[x].cdr].type == TSTRING? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].cdr].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  %cdr__1_else_b_2_b_2_b_2_b_2
-       jmp32  %cdr__1_else_b_2_b_2_b_2_skip_b_2
-:cdr__1_else_b_2_b_2_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].cdr].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x8
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %cdr__1_else_b_2_b_2_b_2
-:cdr__1_else_b_2_b_2_b_2_skip_b_2
-       jmp32  %cdr__1_else_b_2_b_2_skip_b_2
-:cdr__1_else_b_2_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x9
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %cdr__1_else_b_2_b_2
-:cdr__1_else_b_2_b_2_skip_b_2
-       jmp32  %cdr__1_else_b_2_skip_b_2
-:cdr__1_else_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].cdr].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xb
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %cdr__1_else_b_2
-:cdr__1_else_b_2_skip_b_2
-       jmp32  %cdr__1_else_skip_b_2
-:cdr__1_else_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].cdr].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %cdr__1_else
-:cdr__1_else_skip_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       test___%eax,%eax
-       jmp32  %cdr__1_break
-:cdr__1_else
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-:cdr__1_break
-       leave
-       ret
-
-
-:arity_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[x].type == TFUNCTION? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x3
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %arity__1_else
-       jmp32  %arity__1_break
-:arity__1_else
-       push___$i32 &string_isxdigit_134
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:arity__1_break
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[x].cdr].arity
-       mov____(%eax),%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-
-
-:cons
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[tmp_num].cdr = TPAIR
-       mov____$i32,%eax %0x7
-       push___%eax
-       mov____0x32,%eax &tmp_num
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       mov____0x32,%eax &tmp_num
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-
-
-:car
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (g_cells[x].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %car_1_break
-                                       # error(29, cons(x, 37)); 
-       mov____$i32,%eax %0x25
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x1d
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-       jmp32  %car_1_break
-:car_1_break
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       leave
-       ret
-
-
-:cdr
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (g_cells[x].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %cdr_1_break
-                                       # error(29, cons(x, 38)); 
-       mov____$i32,%eax %0x26
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x1d
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-       jmp32  %cdr_1_break
-:cdr_1_break
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       leave
-       ret
-
-
-:list
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       mov____0x8(%ebp),%eax !0x8
-       leave
-       ret
-
-
-:null_p
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # x == 1? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %null_p_1_else
-       mov____$i32,%eax %0x3
-       test___%eax,%eax
-       jmp32  %null_p_1_break
-:null_p_1_else
-       mov____$i32,%eax %0x2
-       test___%eax,%eax
-:null_p_1_break
-       leave
-       ret
-
-
-:eq_p
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # ((x == y || (g_cells[x].type == TKEYWORD && g_cells[y].type == TKEYWORD &&      g_cells[x].car == g_cells[y].car)) || (g_cells[x].type == TCHAR && g_cells[     y].type == TCHAR && g_cells[x].cdr == g_cells[y].cdr)) || (g_cells[x].type      == TNUMBER && g_cells[y].type == TNUMBER && g_cells[x].cdr == g_cells[y].     cdr)? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2_b_2_b_2
-       jmp32  %eq_p_1_else_b_2_b_2_skip_b_2
-:eq_p_1_else_b_2_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x4
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2_b_2
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[y].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x4
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[y].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2_b_2
-:eq_p_1_else_b_2_b_2_skip_b_2
-       jmp32  %eq_p_1_else_b_2_skip_b_2
-:eq_p_1_else_b_2_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[y].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[y].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else_b_2
-:eq_p_1_else_b_2_skip_b_2
-       jmp32  %eq_p_1_else_skip_b_2
-:eq_p_1_else_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[y].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[y].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eq_p_1_else
-:eq_p_1_else_skip_b_2
-       mov____$i32,%eax %0x3
-       test___%eax,%eax
-       jmp32  %eq_p_1_break
-:eq_p_1_else
-       mov____$i32,%eax %0x2
-       test___%eax,%eax
-:eq_p_1_break
-       leave
-       ret
-
-
-:values
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM v = cons(0, x); 
-       push___0x8(%ebp) !0x8
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_cells[v].type = TVALUES
-       mov____$i32,%eax %0xc
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-       mov____%eax,%edx
-       pop____%eax
-       mov____%eax,(%edx)
-       test___%eax,%eax
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:acons
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       push___0x8(%ebp) !0x10
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:length
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int n = 0; 
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # while (x != 1) ...
-       jmp32  %length_4_continue
-:length_4_loop
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-4
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       test___%eax,%eax
-                                       # if (g_cells[x].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %length_13_break
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-       jmp32  %length_13_break
-:length_13_break
-                                       # x = g_cells[x].cdr
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0x8
-       test___%eax,%eax
-:length_4_continue
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %length_4_break
-       jmp32  %length_4_loop
-:length_4_break
-       push___0x8(%ebp) !0x-4
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-
-
-:error
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM throw; 
-                                       # if ((throw = assq_ref_env(28, r0)) != 6) ...
-                                       # throw = assq_ref_env(28, r0)
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____$i32,%eax %0x1c
-       push___%eax
-       call32 %assq_ref_env
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %error_2_break
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       push___0x8(%ebp) !0xc
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x-4
-       call32 %apply
-       add____$i8,%esp !0xc
-       leave
-       ret
-       jmp32  %error_2_break
-:error_2_break
-                                       # display_error_(key); 
-       push___0x8(%ebp) !0x8
-       call32 %display_error_
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(": "); 
-       push___$i32 &string_isxdigit_135
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # display_error_(x); 
-       push___0x8(%ebp) !0xc
-       call32 %display_error_
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs("\n"); 
-       push___$i32 &string_isxdigit_136
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # exit(1); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %exit
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-       leave
-       ret
-
-
-:cstring_to_list
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM p = 1; 
-       mov____$i32,%eax %0x1
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # int i = strlen(s); 
-       push___0x8(%ebp) !0x8
-       call32 %strlen
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # while (i--) ...
-       jmp32  %cstring_to_list_8_continue
-:cstring_to_list_8_loop
-                                       # p = cons(make_cell_(tmp_num_(TCHAR), 0, tmp_num2_(s[i])), p)
-       push___0x8(%ebp) !0x-4
-       mov____0x8(%ebp),%eax !0x-8
-       mov____%eax,%edx
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       movzbl_(%eax),%eax
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-:cstring_to_list_8_continue
-       mov____0x8(%ebp),%eax !0x-8
-       push___%eax
-       mov____%ebp,%eax
-       add____$i8,%eax !0x-8
-       add____$i8,(%eax) !0x-1
-       pop____%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %cstring_to_list_8_break
-       jmp32  %cstring_to_list_8_loop
-:cstring_to_list_8_break
-       mov____0x8(%ebp),%eax !0x-4
-       leave
-       ret
-
-
-:assert_defined
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (e == 6) ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %assert_defined_1_break
-       push___0x8(%ebp) !0x8
-       mov____$i32,%eax %0x21
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       leave
-       ret
-       jmp32  %assert_defined_1_break
-:assert_defined_1_break
-       mov____0x8(%ebp),%eax !0xc
-       leave
-       ret
-
-
-:check_formals
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # int flen = g_cells[formals].type == TNUMBER? g_cells[formals].cdr: g_cells[     length(formals)].cdr; 
-                                       # g_cells[formals].type == TNUMBER? ...: ...
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[formals].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_formals_2_else
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[formals].cdr
-       mov____(%eax),%eax
-       test___%eax,%eax
-       jmp32  %check_formals_2_break
-:check_formals_2_else
-       push___0x8(%ebp) !0xc
-       call32 %length
-       add____$i8,%esp !0x4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-                                       # int alen = g_cells[length(args)].cdr; 
-       push___0x8(%ebp) !0x10
-       call32 %length
-       add____$i8,%esp !0x4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %check_formals_55_break
-       mov____0x8(%ebp),%eax !0x-8
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %check_formals_55_break
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-                                       # eputs(s); 
-       push___0x8(%ebp) !0x-c
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(itoa(flen)); 
-       push___0x8(%ebp) !0x-4
-       call32 %itoa
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(", got: "); 
-       push___$i32 &string_isxdigit_138
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(itoa(alen)); 
-       push___0x8(%ebp) !0x-8
-       call32 %itoa
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs("\n"); 
-       push___$i32 &string_isxdigit_136
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # display_error_(f); 
-       push___0x8(%ebp) !0x8
-       call32 %display_error_
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # SCM e = make_cell_(tmp_num_(TSTRING), cstring_to_list(s), 0); 
-       mov____$i32,%eax %0x0
-       push___%eax
-       push___0x8(%ebp) !0x-c
-       call32 %cstring_to_list
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0xa
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-10
-       push___0x8(%ebp) !0x8
-       push___0x8(%ebp) !0x-10
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x1f
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       leave
-       ret
-       jmp32  %check_formals_55_break
-:check_formals_55_break
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:check_apply
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # char *type = 0; 
-       mov____$i32,%eax %0x0
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # if (f == 2 || f == 3) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_4_break_b_5
-       jmp32  %check_apply_4_break_skip_b_5
-:check_apply_4_break_b_5
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x3
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_4_break
-:check_apply_4_break_skip_b_5
-                                       # type = "bool"
-       mov____$i32,%eax &string_isxdigit_139
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %check_apply_4_break
-:check_apply_4_break
-                                       # if (f == 1) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_28_break
-                                       # type = "nil"
-       mov____$i32,%eax &string_isxdigit_140
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %check_apply_28_break
-:check_apply_28_break
-                                       # if (f == 7) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x7
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_42_break
-                                       # type = "*unspecified*"
-       mov____$i32,%eax &string_isxdigit_6
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %check_apply_42_break
-:check_apply_42_break
-                                       # if (f == 6) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_56_break
-                                       # type = "*undefined*"
-       mov____$i32,%eax &string_isxdigit_5
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %check_apply_56_break
-:check_apply_56_break
-                                       # if (g_cells[f].type == TCHAR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[f].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %check_apply_70_break
-                                       # type = "char"
-       mov____$i32,%eax &string_isxdigit_141
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-       jmp32  %check_apply_70_break
-:check_apply_70_break
-                                       # if (g_cells[f].type == TNUMBER) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[f].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[f].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xa
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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_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_136_break
-                                       # char *s = "cannot apply: "; 
-       mov____$i32,%eax &string_isxdigit_144
-       mov____%eax,0x8(%ebp) !0x-8
-                                       # eputs(s); 
-       push___0x8(%ebp) !0x-8
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs(type); 
-       push___0x8(%ebp) !0x-4
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs("["); 
-       push___$i32 &string_isxdigit_145
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # display_error_(e); 
-       push___0x8(%ebp) !0xc
-       call32 %display_error_
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # eputs("]\n"); 
-       push___$i32 &string_isxdigit_146
-       call32 %eputs
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-                                       # SCM e = make_cell_(tmp_num_(TSTRING), cstring_to_list(s), 0); 
-       mov____$i32,%eax %0x0
-       push___%eax
-       push___0x8(%ebp) !0x-8
-       call32 %cstring_to_list
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0xa
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-c
-       push___0x8(%ebp) !0x8
-       push___0x8(%ebp) !0x-c
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x20
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       leave
-       ret
-       jmp32  %check_apply_136_break
-:check_apply_136_break
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:gc_push_frame
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM frame = cons(r1, cons(r2, cons(r3, cons(r0, 1)))); 
-       mov____$i32,%eax %0x1
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r3
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r2
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_stack = cons(frame, g_stack)
-       mov____0x32,%eax &g_stack
-       push___%eax
-       push___0x8(%ebp) !0x-4
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &g_stack
-       test___%eax,%eax
-       mov____0x32,%eax &g_stack
-       leave
-       ret
-
-
-:append2
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (x == 1) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %append2_1_break
-       mov____0x8(%ebp),%eax !0xc
-       leave
-       ret
-       jmp32  %append2_1_break
-:append2_1_break
-                                       # g_cells[x].type == TPAIR? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       jmp32  %append2_13_break
-:append2_13_else
-       push___$i32 &string_isxdigit_147
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:append2_13_break
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %cdr
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %append2
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %car
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:pairlis
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (x == 1) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %pairlis_1_break
-       mov____0x8(%ebp),%eax !0x10
-       leave
-       ret
-       jmp32  %pairlis_1_break
-:pairlis_1_break
-                                       # if (g_cells[x].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %pairlis_13_break
-       push___0x8(%ebp) !0x10
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       leave
-       ret
-       jmp32  %pairlis_13_break
-:pairlis_13_break
-       push___0x8(%ebp) !0x10
-       push___0x8(%ebp) !0xc
-       call32 %cdr
-       add____$i8,%esp !0x4
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %cdr
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %pairlis
-       add____$i8,%esp !0xc
-       push___%eax
-       push___0x8(%ebp) !0xc
-       call32 %car
-       add____$i8,%esp !0x4
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %car
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:call
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if ((g_functions[g_cells[fn].cdr].arity > 0 || g_functions[g_cells[fn].cdr].     arity == -1) && x != 1 && g_cells[g_cells[x].car].type == TVALUES) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[fn].cdr].arity
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x0
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setg___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       jle32  %call_1_break_b_2
-       jmp32  %call_1_break_skip_b_2
-:call_1_break_b_2
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[fn].cdr].arity
-       mov____(%eax),%eax
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %call_1_break
-:call_1_break_skip_b_2
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %call_1_break
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xc
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %call_1_break
-                                       # x = cons(g_cells[g_cells[g_cells[x].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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[x].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,0x8(%ebp) !0xc
-       test___%eax,%eax
-       jmp32  %call_1_break
-:call_1_break
-                                       # if ((g_functions[g_cells[fn].cdr].arity > 1 || g_functions[g_cells[fn].cdr].     arity == -1) && x != 1 && g_cells[g_cells[x].cdr].type == TPAIR && g_cells[     g_cells[g_cells[x].cdr].car].type == TVALUES) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[fn].cdr].arity
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       setg___%al
-       movzbl_%al,%eax
-       test___%eax,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[fn].cdr].arity
-       mov____(%eax),%eax
-       push___%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       mov____$i32,%eax %0x0
-       sub____%edx,%eax
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %call_127_break
-:call_127_break_skip_b_128
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %call_127_break
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[x].cdr].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  %call_127_break
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_functions[g_cells[fn].cdr].arity
-       mov____(%eax),%eax
-:call_304_clause0
-       cmp____$i8,%eax !0x0
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_304_body1
-:call_304_clause1
-       cmp____$i8,%eax !0x1
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_304_body2
-:call_304_clause2
-       cmp____$i8,%eax !0x2
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_304_body3
-:call_304_clause3
-       cmp____$i8,%eax !0x3
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_304_body4
-:call_304_clause4
-       cmp____$i8,%eax !0x-1
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[fn].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_304_break
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:assq
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # while (a != 1 && eq_p(x, g_cells[g_cells[a].car].car) == 2) ...
-       jmp32  %assq_1_continue
-:assq_1_loop
-                                       # a = g_cells[a].cdr
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[a].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x8(%ebp) !0xc
-       test___%eax,%eax
-:assq_1_continue
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %assq_1_break
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[a].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[g_cells[a].car].car
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %eq_p
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %assq_1_break
-       jmp32  %assq_1_loop
-:assq_1_break
-                                       # a != 1? ...: ...
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %assq_52_else
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[a].car
-       mov____(%eax),%eax
-       test___%eax,%eax
-       jmp32  %assq_52_break
-:assq_52_else
-       mov____$i32,%eax %0x2
-       test___%eax,%eax
-:assq_52_break
-       leave
-       ret
-
-
-:assq_ref_env
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # x = assq(x, a)
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %assq
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x8
-       test___%eax,%eax
-                                       # if (x == 2) ...
-       mov____0x8(%ebp),%eax !0x8
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %assq_ref_env_7_break
-       mov____$i32,%eax %0x6
-       leave
-       ret
-       jmp32  %assq_ref_env_7_break
-:assq_ref_env_7_break
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       leave
-       ret
-
-
-:set_car_x
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # g_cells[x].type == TPAIR? ...: ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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  %set_car_x_1_else
-       jmp32  %set_car_x_1_break
-:set_car_x_1_else
-       push___$i32 &string_isxdigit_147
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:set_car_x_1_break
-                                       # g_cells[x].car = e
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:set_cdr_x
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (g_cells[x].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       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
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %set_cdr_x_1_break
-                                       # error(29, cons(x, cell_set_cdr_x)); 
-       mov____0x32,%eax &cell_set_cdr_x
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x1d
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-       jmp32  %set_cdr_x_1_break
-:set_cdr_x_1_break
-                                       # g_cells[x].cdr = e
-       mov____0x8(%ebp),%eax !0xc
-       push___%eax
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:set_env_x
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM p = assert_defined(x, assq(x, a)); 
-       push___0x8(%ebp) !0x10
-       push___0x8(%ebp) !0x8
-       call32 %assq
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x8
-       call32 %assert_defined
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # if (g_cells[p].type != TPAIR) ...
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[p].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x7
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %set_env_x_9_break
-                                       # error(29, cons(p, x)); 
-       push___0x8(%ebp) !0x8
-       push___0x8(%ebp) !0x-4
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x1d
-       push___%eax
-       call32 %error
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-       jmp32  %set_env_x_9_break
-:set_env_x_9_break
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x-4
-       call32 %set_cdr_x
-       add____$i8,%esp !0x8
-       leave
-       ret
-
-
-:call_lambda
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM cl = cons(cons(8, x), x); 
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0xc
-       mov____$i32,%eax %0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # r1 = e
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-                                       # r0 = cl
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,0x32 &r0
-       test___%eax,%eax
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:make_closure_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x10
-       mov____$i32,%eax %0x9
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____$i32,%eax %0x2
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       leave
-       ret
-
-
-:lookup_macro_
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # if (g_cells[x].type != TSYMBOL) ...
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[x].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xb
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %lookup_macro__1_break
-       mov____$i32,%eax %0x2
-       leave
-       ret
-       jmp32  %lookup_macro__1_break
-:lookup_macro__1_break
-                                       # SCM m = assq_ref_env(x, a); 
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %assq_ref_env
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # if (g_cells[m].type == TMACRO) ...
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[m].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x5
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %lookup_macro__26_break
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[m].cdr
-       mov____(%eax),%eax
-       leave
-       ret
-       jmp32  %lookup_macro__26_break
-:lookup_macro__26_break
-       mov____$i32,%eax %0x2
-       leave
-       ret
-
-
-:push_cc
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM x = r3; 
-       mov____0x32,%eax &r3
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # r3 = c
-       mov____0x8(%ebp),%eax !0x14
-       mov____%eax,0x32 &r3
-       test___%eax,%eax
-                                       # r2 = p2
-       mov____0x8(%ebp),%eax !0xc
-       mov____%eax,0x32 &r2
-       test___%eax,%eax
-                                       # gc_push_frame(); 
-       call32 %gc_push_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = p1
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-                                       # r0 = a
-       mov____0x8(%ebp),%eax !0x10
-       mov____%eax,0x32 &r0
-       test___%eax,%eax
-                                       # r3 = x
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,0x32 &r3
-       test___%eax,%eax
-       mov____$i32,%eax %0x7
-       leave
-       ret
-
-
-:gc_peek_frame
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM frame = g_cells[g_stack].car; 
-       mov____0x32,%eax &g_stack
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[frame].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[frame].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[frame].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       leave
-       ret
-
-
-:gc_pop_frame
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # SCM frame = gc_peek_frame(g_stack); 
-       mov____0x32,%eax &g_stack
-       push___%eax
-       call32 %gc_peek_frame
-       add____$i8,%esp !0x4
-       mov____%eax,0x8(%ebp) !0x-4
-                                       # g_stack = g_cells[g_stack].cdr
-       mov____0x32,%eax &g_stack
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       leave
-       ret
-
-
-:eval_apply
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-:eval_apply_label_eval_apply
-                                       # gc_check(); 
-       call32 %gc_check
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # switch (r3) {   ...} 
-       mov____0x32,%eax &r3
-:eval_apply_5_clause0
-       cmp____$i8,%eax !0x2a
-       je32   %eval_apply_5_body0
-       jmp32  %eval_apply_5_clause1
-:eval_apply_5_body0
-       jmp32  %eval_apply_label_evlis
-       jmp32  %eval_apply_5_body1
-:eval_apply_5_clause1
-       cmp____$i8,%eax !0x2b
-       je32   %eval_apply_5_body1
-       jmp32  %eval_apply_5_clause2
-:eval_apply_5_body1
-       jmp32  %eval_apply_label_evlis2
-       jmp32  %eval_apply_5_body2
-:eval_apply_5_clause2
-       cmp____$i8,%eax !0x2c
-       je32   %eval_apply_5_body2
-       jmp32  %eval_apply_5_clause3
-:eval_apply_5_body2
-       jmp32  %eval_apply_label_evlis3
-       jmp32  %eval_apply_5_body3
-:eval_apply_5_clause3
-       cmp____$i8,%eax !0x2d
-       je32   %eval_apply_5_body3
-       jmp32  %eval_apply_5_clause4
-:eval_apply_5_body3
-       jmp32  %eval_apply_label_apply
-       jmp32  %eval_apply_5_body4
-:eval_apply_5_clause4
-       cmp____$i8,%eax !0x2e
-       je32   %eval_apply_5_body4
-       jmp32  %eval_apply_5_clause5
-:eval_apply_5_body4
-       jmp32  %eval_apply_label_apply2
-       jmp32  %eval_apply_5_body5
-:eval_apply_5_clause5
-       cmp____$i8,%eax !0x2f
-       je32   %eval_apply_5_body5
-       jmp32  %eval_apply_5_clause6
-:eval_apply_5_body5
-       jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_5_body6
-:eval_apply_5_clause6
-       cmp____$i8,%eax !0x30
-       je32   %eval_apply_5_body6
-       jmp32  %eval_apply_5_clause7
-:eval_apply_5_body6
-       jmp32  %eval_apply_label_eval_car
-       jmp32  %eval_apply_5_body7
-:eval_apply_5_clause7
-       cmp____$i8,%eax !0x31
-       je32   %eval_apply_5_body7
-       jmp32  %eval_apply_5_clause8
-:eval_apply_5_body7
-       jmp32  %eval_apply_label_eval_cdr
-       jmp32  %eval_apply_5_body8
-:eval_apply_5_clause8
-       cmp____$i8,%eax !0x32
-       je32   %eval_apply_5_body8
-       jmp32  %eval_apply_5_clause9
-:eval_apply_5_body8
-       jmp32  %eval_apply_label_eval_cons
-       jmp32  %eval_apply_5_body9
-:eval_apply_5_clause9
-       cmp____$i8,%eax !0x33
-       je32   %eval_apply_5_body9
-       jmp32  %eval_apply_5_clause10
-:eval_apply_5_body9
-       jmp32  %eval_apply_label_eval_null_p
-       jmp32  %eval_apply_5_body10
-:eval_apply_5_clause10
-       cmp____$i8,%eax !0x34
-       je32   %eval_apply_5_body10
-       jmp32  %eval_apply_5_clause11
-:eval_apply_5_body10
-       jmp32  %eval_apply_label_eval_set_x
-       jmp32  %eval_apply_5_body11
-:eval_apply_5_clause11
-       cmp____$i8,%eax !0x35
-       je32   %eval_apply_5_body11
-       jmp32  %eval_apply_5_clause12
-:eval_apply_5_body11
-       jmp32  %eval_apply_label_eval_macro
-       jmp32  %eval_apply_5_body12
-:eval_apply_5_clause12
-       cmp____$i8,%eax !0x36
-       je32   %eval_apply_5_body12
-       jmp32  %eval_apply_5_clause13
-:eval_apply_5_body12
-       jmp32  %eval_apply_label_eval_check_func
-       jmp32  %eval_apply_5_body13
-:eval_apply_5_clause13
-       cmp____$i8,%eax !0x37
-       je32   %eval_apply_5_body13
-       jmp32  %eval_apply_5_clause14
-:eval_apply_5_body13
-       jmp32  %eval_apply_label_eval2
-       jmp32  %eval_apply_5_body14
-:eval_apply_5_clause14
-       cmp____$i8,%eax !0x38
-       je32   %eval_apply_5_body14
-       jmp32  %eval_apply_5_clause15
-:eval_apply_5_body14
-       jmp32  %eval_apply_label_macro_expand
-       jmp32  %eval_apply_5_body15
-:eval_apply_5_clause15
-       cmp____$i8,%eax !0x39
-       je32   %eval_apply_5_body15
-       jmp32  %eval_apply_5_clause16
-:eval_apply_5_body15
-       jmp32  %eval_apply_label_begin
-       jmp32  %eval_apply_5_body16
-:eval_apply_5_clause16
-       cmp____$i8,%eax !0x3a
-       je32   %eval_apply_5_body16
-       jmp32  %eval_apply_5_clause17
-:eval_apply_5_body16
-       jmp32  %eval_apply_label_begin_read_input_file
-       jmp32  %eval_apply_5_body17
-:eval_apply_5_clause17
-       cmp____$i8,%eax !0x3b
-       je32   %eval_apply_5_body17
-       jmp32  %eval_apply_5_clause18
-:eval_apply_5_body17
-       jmp32  %eval_apply_label_begin2
-       jmp32  %eval_apply_5_body18
-:eval_apply_5_clause18
-       cmp____$i8,%eax !0x3c
-       je32   %eval_apply_5_body18
-       jmp32  %eval_apply_5_clause19
-:eval_apply_5_body18
-       jmp32  %eval_apply_label_vm_if
-       jmp32  %eval_apply_5_body19
-:eval_apply_5_clause19
-       cmp____$i8,%eax !0x3d
-       je32   %eval_apply_5_body19
-       jmp32  %eval_apply_5_clause20
-:eval_apply_5_body19
-       jmp32  %eval_apply_label_if_expr
-       jmp32  %eval_apply_5_body20
-:eval_apply_5_clause20
-       cmp____$i8,%eax !0x3f
-       je32   %eval_apply_5_body20
-       jmp32  %eval_apply_5_clause21
-:eval_apply_5_body20
-       jmp32  %eval_apply_label_call_with_current_continuation2
-       jmp32  %eval_apply_5_body21
-:eval_apply_5_clause21
-       cmp____$i8,%eax !0x3e
-       je32   %eval_apply_5_body21
-       jmp32  %eval_apply_5_clause22
-:eval_apply_5_body21
-       jmp32  %eval_apply_label_call_with_values2
-       jmp32  %eval_apply_5_body22
-:eval_apply_5_clause22
-       cmp____$i8,%eax !0x40
-       je32   %eval_apply_5_body22
-       jmp32  %eval_apply_5_clause23
-:eval_apply_5_body22
-       jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_5_body23
-:eval_apply_5_clause23
-       cmp____$i8,%eax !0x7
-       je32   %eval_apply_5_body23
-       jmp32  %eval_apply_5_clause24
-:eval_apply_5_body23
-       mov____0x32,%eax &r1
-       leave
-       ret
-       jmp32  %eval_apply_5_body24
-:eval_apply_5_clause24
-:eval_apply_5_body24
-                                       # 0? ...: ...
-       mov____$i32,%eax %0x0
-       test___%eax,%eax
-                                       # jmp test LABEL
-       test___%eax,%eax
-       je32   %eval_apply_178_else
-       jmp32  %eval_apply_178_break
-:eval_apply_178_else
-       push___$i32 &string_isxdigit_148
-       call32 %assert_fail
-       add____$i8,%esp !0x4
-       test___%eax,%eax
-:eval_apply_178_break
-:eval_apply_5_break
-                                       # SCM x = 1; 
-       mov____$i32,%eax %0x1
-       mov____%eax,0x8(%ebp) !0x-4
-:eval_apply_label_evlis
-                                       # gc_check(); 
-       call32 %gc_check
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # if (r1 == 1) ...
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_198_break
-       jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_198_break
-:eval_apply_198_break
-                                       # if (g_cells[r1].type != TPAIR) ...
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x7
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_209_break
-       jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_209_break
-:eval_apply_209_break
-                                       # push_cc(g_cells[r1].car, r1, r0, 43); 
-       mov____$i32,%eax %0x2b
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_evlis2
-                                       # push_cc(g_cells[r2].cdr, r1, r0, 44); 
-       mov____$i32,%eax %0x2c
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_evlis
-:eval_apply_label_evlis3
-                                       # r1 = cons(r2, r1)
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r2
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_vm_return
-:eval_apply_label_apply
-                                       # gc_check(); 
-       call32 %gc_check
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # switch (g_cells[g_cells[r1].car].type) {   ...} 
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____$i32,%eax &g_functions
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x6
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %check_formals
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-                                       # r1 = call(g_cells[r1].car, g_cells[r1].cdr)
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_277_body1
-:eval_apply_277_clause1
-       cmp____$i8,%eax !0x1
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[cl].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[cl].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[cl].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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); 
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x-c
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %check_formals
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-                                       # SCM p = pairlis(formals, g_cells[r1].cdr, aa); 
-       push___0x8(%ebp) !0x-14
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x-c
-       call32 %pairlis
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-18
-                                       # call_lambda(body, p, aa, r0); 
-       mov____0x32,%eax &r0
-       push___%eax
-       push___0x8(%ebp) !0x-14
-       push___0x8(%ebp) !0x-18
-       push___0x8(%ebp) !0x-10
-       call32 %call_lambda
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_begin
-       jmp32  %eval_apply_277_body2
-:eval_apply_277_clause2
-       cmp____$i8,%eax !0x2
-       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
-       test___%eax,%eax
-                                       # g_stack = g_cells[g_cells[r1].car].cdr
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = g_cells[g_cells[x].cdr].car
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_277_body3
-:eval_apply_277_clause3
-       cmp____$i8,%eax !0x9
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-:eval_apply_584_clause0
-       cmp____$i8,%eax !0x2d
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[g_cells[r1].cdr].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-       jmp32  %eval_apply_584_body1
-:eval_apply_584_clause1
-       cmp____$i8,%eax !0x2f
-       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
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_584_body2
-:eval_apply_584_clause2
-       cmp____$i8,%eax !0x15
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_584_break
-       jmp32  %eval_apply_277_body4
-:eval_apply_277_clause4
-       cmp____$i8,%eax !0xb
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x14
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x17
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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_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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x-1c
-       call32 %pairlis
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-24
-                                       # check_formals(r1, formals, g_cells[r1].cdr); 
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x-1c
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %check_formals
-       add____$i8,%esp !0xc
-       test___%eax,%eax
-                                       # call_lambda(body, p, p, r0); 
-       mov____0x32,%eax &r0
-       push___%eax
-       push___0x8(%ebp) !0x-24
-       push___0x8(%ebp) !0x-24
-       push___0x8(%ebp) !0x-20
-       call32 %call_lambda
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_begin
-:eval_apply_815_break
-:eval_apply_277_break
-                                       # push_cc(g_cells[r1].car, r1, r0, 46); 
-       mov____$i32,%eax %0x2e
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_apply2
-                                       # check_apply(r1, g_cells[r2].car); 
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r2].car
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %check_apply
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-                                       # r1 = cons(r1, g_cells[r2].cdr)
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-:eval_apply_label_eval
-                                       # gc_check(); 
-       call32 %gc_check
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # switch (g_cells[r1].type) {   ...} 
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].type
-       mov____(%eax),%eax
-:eval_apply_985_clause0
-       cmp____$i8,%eax !0x7
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-:eval_apply_1000_clause0
-       cmp____$i8,%eax !0x25
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-:eval_apply_label_eval_car
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = g_cells[x].car
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body1
-:eval_apply_1000_clause1
-       cmp____$i8,%eax !0x26
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-:eval_apply_label_eval_cdr
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = g_cells[x].cdr
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body2
-:eval_apply_1000_clause2
-       cmp____$i8,%eax !0x29
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_evlis
-:eval_apply_label_eval_cons
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = cons(g_cells[x].car, g_cells[g_cells[x].cdr].car)
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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 !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body3
-:eval_apply_1000_clause3
-       cmp____$i8,%eax !0x27
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-:eval_apply_label_eval_null_p
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = null_p(x)
-       push___0x8(%ebp) !0x-4
-       call32 %null_p
-       add____$i8,%esp !0x4
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_1000_body4
-:eval_apply_1000_clause4
-       cmp____$i8,%eax !0xf
-       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
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = g_cells[g_cells[x].cdr].car
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval_apply
-       jmp32  %eval_apply_1000_body5
-:eval_apply_1000_clause5
-       cmp____$i8,%eax !0xd
-       je32   %eval_apply_1000_body5
-       jmp32  %eval_apply_1000_clause6
-:eval_apply_1000_body5
-       jmp32  %eval_apply_label_begin
-       jmp32  %eval_apply_1000_body6
-:eval_apply_1000_clause6
-       cmp____$i8,%eax !0xc
-       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
-       mov____$i32,%eax %0x8
-       push___%eax
-       call32 %assq
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body7
-:eval_apply_1000_clause7
-       cmp____$i8,%eax !0xe
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body8
-:eval_apply_1000_clause8
-       cmp____$i8,%eax !0x10
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_eval_set_x
-                                       # x = r2
-       mov____0x32,%eax &r2
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # r1 = set_env_x(g_cells[g_cells[x].cdr].car, r1, r0)
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[x].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       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
-       call32 %set_env_x
-       add____$i8,%esp !0xc
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_1000_body9
-:eval_apply_1000_clause9
-       cmp____$i8,%eax !0x38
-       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
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_body10
-:eval_apply_1000_clause10
-:eval_apply_1000_body10
-                                       # push_cc(r1, r1, r0, 53); 
-       mov____$i32,%eax %0x35
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_macro_expand
-:eval_apply_label_eval_macro
-                                       # if (r1 != r2) ...
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].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  %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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x32,%eax &r2
-       push___%eax
-       call32 %set_cdr_x
-       add____$i8,%esp !0x8
-       test___%eax,%eax
-                                       # set_car_x(r2, g_cells[r1].car); 
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1461_break
-:eval_apply_1461_break
-       jmp32  %eval_apply_label_eval
-       jmp32  %eval_apply_1453_break
-:eval_apply_1453_break
-                                       # push_cc(g_cells[r1].car, r1, r0, 54); 
-       mov____$i32,%eax %0x36
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_eval_check_func
-                                       # push_cc(g_cells[r2].cdr, r2, r0, 55); 
-       mov____$i32,%eax %0x37
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r2
-       push___%eax
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_evlis
-:eval_apply_label_eval2
-                                       # r1 = cons(g_cells[r2].car, r1)
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1000_break
-       jmp32  %eval_apply_985_body1
-:eval_apply_985_clause1
-       cmp____$i8,%eax !0xb
-       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____0x32,%eax &r1
-       push___%eax
-       call32 %assq_ref_env
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %assert_defined
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_vm_return
-       jmp32  %eval_apply_985_body2
-:eval_apply_985_clause2
-:eval_apply_985_body2
-       jmp32  %eval_apply_label_vm_return
-:eval_apply_985_break
-                                       # SCM macro; 
-                                       # SCM expanders; 
-:eval_apply_label_macro_expand
-                                       # if (g_cells[r1].type == TPAIR && (macro = lookup_macro_(g_cells[r1].car, r0))      != 2) ...else ...
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].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  %eval_apply_1589_else
-                                       # macro = lookup_macro_(g_cells[r1].car, r0)
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %lookup_macro_
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-8
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       push___0x8(%ebp) !0x-8
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].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  %eval_apply_1643_break
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[r1].car].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xb
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1643_break
-                                       # expanders = assq_ref_env(19, r0)
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____$i32,%eax %0x13
-       push___%eax
-       call32 %assq_ref_env
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-c
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1643_break
-                                       # macro = assq(g_cells[r1].car, expanders)
-       push___0x8(%ebp) !0x-c
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %assq
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-8
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1643_break
-                                       # SCM sc_expand = assq_ref_env(18, r0); 
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____$i32,%eax %0x12
-       push___%eax
-       call32 %assq_ref_env
-       add____$i8,%esp !0x8
-       mov____%eax,0x8(%ebp) !0x-10
-                                       # if (sc_expand != 6 && sc_expand != 2) ...
-       mov____0x8(%ebp),%eax !0x-10
-       push___%eax
-       mov____$i32,%eax %0x6
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1720_break
-       mov____0x8(%ebp),%eax !0x-10
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1720_break
-                                       # r1 = cons(sc_expand, cons(r1, 1))
-       mov____$i32,%eax %0x1
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       push___0x8(%ebp) !0x-10
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-       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____$i32,%eax %0x7
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # while (r1 != 1) ...
-       jmp32  %eval_apply_1757_continue
-:eval_apply_1757_loop
-                                       # gc_check(); 
-       call32 %gc_check
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # if (g_cells[r1].type == TPAIR && g_cells[g_cells[r1].car].type == TPAIR) ...
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].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  %eval_apply_1763_break
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[g_cells[r1].car].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  %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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[g_cells[r1].car].car
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xd
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[g_cells[r1].car].car
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x18
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       jne32  %eval_apply_1860_break
-                                       # push_cc(cons(25, 1), r1, r0, 58); 
-       mov____$i32,%eax %0x3a
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       mov____$i32,%eax %0x19
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-:eval_apply_label_begin_read_input_file
-                                       # r1 = append2(r1, g_cells[r2].cdr)
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       call32 %append2
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_1919_break
-:eval_apply_1919_break
-                                       # push_cc(g_cells[r1].car, r1, r0, 59); 
-       mov____$i32,%eax %0x3b
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_begin2
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # r1 = g_cells[r2].cdr
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-:eval_apply_1757_continue
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-       test___%eax,%eax
-       jmp32  %eval_apply_label_vm_return
-:eval_apply_label_vm_if
-                                       # push_cc(g_cells[r1].car, r1, r0, 61); 
-       mov____$i32,%eax %0x3d
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval
-:eval_apply_label_if_expr
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # r1 = r2
-       mov____0x32,%eax &r2
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-                                       # if (x != 2) ...
-       mov____0x8(%ebp),%eax !0x-4
-       push___%eax
-       mov____$i32,%eax %0x2
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[g_cells[r1].cdr].cdr
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0x1
-       mov____%eax,%edx
-       pop____%eax
-       push___%eax
-       sub____%edx,%eax
-       setne__%al
-       movzbl_%al,%eax
-       xchg___%eax,(%esp)
-       sub____%edx,%eax
-       lahf
-       xor____$i8,%ah !0x40
-       sahf
-       pop____%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       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_2059_break
-:eval_apply_2059_break
-                                       # r1 = 7
-       mov____$i32,%eax %0x7
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_vm_return
-:eval_apply_label_call_with_current_continuation
-                                       # gc_push_frame(); 
-       call32 %gc_push_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # x = make_cell_(tmp_num_(TCONTINUATION), g_continuations++, g_stack)
-       mov____0x32,%eax &g_stack
-       push___%eax
-       mov____0x32,%eax &g_continuations
-       push___%eax
-       mov____$i32,%eax &g_continuations
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       push___%eax
-       mov____$i32,%eax %0x2
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # push_cc(cons(g_cells[r1].car, cons(x, 1)), x, r0, 63); 
-       mov____$i32,%eax %0x3f
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       push___0x8(%ebp) !0x-4
-       mov____$i32,%eax %0x1
-       push___%eax
-       push___0x8(%ebp) !0x-4
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-:eval_apply_label_call_with_current_continuation2
-                                       # g_cells[r2].cdr = g_stack
-       mov____0x32,%eax &g_stack
-       push___%eax
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       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  %eval_apply_label_vm_return
-:eval_apply_label_call_with_values
-                                       # push_cc(cons(g_cells[r1].car, 1), r1, r0, 62); 
-       mov____$i32,%eax %0x3e
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____0x32,%eax &r1
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[r1].car
-       mov____(%eax),%eax
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-       jmp32  %eval_apply_label_apply
-:eval_apply_label_call_with_values2
-                                       # if (g_cells[r1].type == TVALUES) ...
-       mov____0x32,%eax &r1
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x0
-                                       # g_cells[r1].type
-       mov____(%eax),%eax
-       push___%eax
-       mov____$i32,%eax %0xc
-       mov____%eax,%edx
-       pop____%eax
-       sub____%edx,%eax
-       sete___%al
-       movzbl_%al,%eax
-                                       # jmp test LABEL
-       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
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r1].cdr
-       mov____(%eax),%eax
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       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
-       mov____0x32,%eax &r2
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x8
-                                       # g_cells[r2].cdr
-       mov____(%eax),%eax
-       mov____%eax,%edx
-       add____%eax,%eax
-       add____%edx,%eax
-       shl____$i8,%eax !0x2
-       push___%eax
-       mov____0x32,%eax &g_cells
-       mov____%eax,%edx
-       pop____%eax
-       add____%edx,%eax
-       add____$i8,%eax !0x4
-                                       # g_cells[g_cells[r2].cdr].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_label_vm_return
-                                       # x = r1
-       mov____0x32,%eax &r1
-       mov____%eax,0x8(%ebp) !0x-4
-       test___%eax,%eax
-                                       # gc_pop_frame(); 
-       call32 %gc_pop_frame
-       add____$i8,%esp !0x0
-       test___%eax,%eax
-                                       # r1 = x
-       mov____0x8(%ebp),%eax !0x-4
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-       jmp32  %eval_apply_label_eval_apply
-       leave
-       ret
-
-
-:apply
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # push_cc(cons(f, x), 7, r0, 7); 
-       mov____$i32,%eax %0x7
-       push___%eax
-       mov____0x32,%eax &r0
-       push___%eax
-       mov____$i32,%eax %0x7
-       push___%eax
-       push___0x8(%ebp) !0xc
-       push___0x8(%ebp) !0x8
-       call32 %cons
-       add____$i8,%esp !0x8
-       push___%eax
-       call32 %push_cc
-       add____$i8,%esp !0x10
-       test___%eax,%eax
-                                       # r3 = 45
-       mov____$i32,%eax %0x2d
-       mov____%eax,0x32 &r3
-       test___%eax,%eax
-       call32 %eval_apply
-       add____$i8,%esp !0x0
-       leave
-       ret
-
-
-:mes_g_stack
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # r0 = a
-       mov____0x8(%ebp),%eax !0x8
-       mov____%eax,0x32 &r0
-       test___%eax,%eax
-                                       # r1 = make_cell_(tmp_num_(TCHAR), 0, tmp_num2_(0))
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x32 &r1
-       test___%eax,%eax
-                                       # r2 = make_cell_(tmp_num_(TCHAR), 0, tmp_num2_(0))
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x32 &r2
-       test___%eax,%eax
-                                       # r3 = make_cell_(tmp_num_(TCHAR), 0, tmp_num2_(0))
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num2_
-       add____$i8,%esp !0x4
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____$i32,%eax %0x0
-       push___%eax
-       call32 %tmp_num_
-       add____$i8,%esp !0x4
-       push___%eax
-       call32 %make_cell_
-       add____$i8,%esp !0xc
-       mov____%eax,0x32 &r3
-       test___%eax,%eax
-                                       # g_stack = cons(1, 1)
-       mov____$i32,%eax %0x1
-       push___%eax
-       mov____$i32,%eax %0x1
-       push___%eax
-       call32 %cons
-       add____$i8,%esp !0x8
-       mov____%eax,0x32 &g_stack
-       test___%eax,%eax
-       mov____0x32,%eax &r0
-       leave
-       ret
-
-
-:make_tmps
-       push___%ebp
-       mov____%esp,%ebp
-       sub____%esp,$i32 %0x1054
-                                       # tmp = g_free++
-       mov____0x32,%eax &g_free
-       push___%eax
-       mov____$i32,%eax &g_free
-       add____$i8,(%eax) !0x1
-       pop____%eax
-       mov____%eax,0x32 &tmp
-       test___%eax,%eax
-                                       # cells[tmp].type = TCHAR
-       mov____$i32,%eax %0x0
-       push___%eax
-       mov____0x32,%eax &tmp
-       mov____%eax,%edx
-       add____%eax,%eax
-      &n