--- /dev/null
+
+
+: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
+ mov____0x8(%ebp),%edx !0x8
+ 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
+ mov____$i32,%edx &ungetc_buf
+ 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_58_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_58_break
+:getchar_58_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
+ mov____$i32,%edx &ungetc_buf
+ 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_23_break
+ # sign = 1
+ mov____$i32,%eax %0x1
+ mov____%eax,0x8(%ebp) !0x-8
+ test___%eax,%eax
+ jmp32 %itoa_23_break
+:itoa_23_break
+ # if (sign) ...
+ mov____0x8(%ebp),%eax !0x-8
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %itoa_37_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_37_break
+:itoa_37_break
+ # do xwhile (...);
+:itoa_53_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_53_continue
+ mov____0x8(%ebp),%eax !0x8
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %itoa_53_break
+ jmp32 %itoa_53_loop
+:itoa_53_break
+ # if (sign && *(p + 1) != '0') ...
+ mov____0x8(%ebp),%eax !0x-8
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %itoa_87_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_87_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_87_break
+:itoa_87_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_41_clause0
+ cmp____$i8,%eax !0x25
+ je32 %vsprintf_41_body0
+ jmp32 %vsprintf_41_clause1
+:vsprintf_41_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_41_break
+ jmp32 %vsprintf_41_body1
+:vsprintf_41_clause1
+ cmp____$i8,%eax !0x63
+ je32 %vsprintf_41_body1
+ jmp32 %vsprintf_41_clause2
+:vsprintf_41_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_41_break
+ jmp32 %vsprintf_41_body2
+:vsprintf_41_clause2
+ cmp____$i8,%eax !0x64
+ je32 %vsprintf_41_body2
+ jmp32 %vsprintf_41_clause3
+:vsprintf_41_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_121_continue
+:vsprintf_121_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_121_continue
+ mov____0x8(%ebp),%eax !0x-14
+ movzbl_(%eax),%eax
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ test___%al,%al
+ je32 %vsprintf_121_break
+ jmp32 %vsprintf_121_loop
+:vsprintf_121_break
+ jmp32 %vsprintf_41_break
+ jmp32 %vsprintf_41_body3
+:vsprintf_41_clause3
+ cmp____$i8,%eax !0x73
+ je32 %vsprintf_41_body3
+ jmp32 %vsprintf_41_clause4
+:vsprintf_41_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_171_continue
+:vsprintf_171_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_171_continue
+ mov____0x8(%ebp),%eax !0x-18
+ movzbl_(%eax),%eax
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ test___%al,%al
+ je32 %vsprintf_171_break
+ jmp32 %vsprintf_171_loop
+:vsprintf_171_break
+ jmp32 %vsprintf_41_break
+ jmp32 %vsprintf_41_body4
+:vsprintf_41_clause4
+:vsprintf_41_body4
+ # *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_41_break
+:vsprintf_41_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
--- /dev/null
+
+
+: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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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__40_else_b_41
+ jmp32 %make_cell__40_else_skip_b_41
+:make_cell__40_else_b_41
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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__40_else
+:make_cell__40_else_skip_b_41
+ # if (car) ...
+ mov____0x8(%ebp),%eax !0xc
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %make_cell__66_break
+ # g_cells[x].car = g_cells[car].car
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ add____$i8,%eax !0x4
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ jmp32 %make_cell__66_break
+:make_cell__66_break
+ # if (cdr) ...
+ mov____0x8(%ebp),%eax !0x10
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %make_cell__90_break
+ # g_cells[x].cdr = g_cells[cdr].cdr
+ mov____0x8(%ebp),%eax !0x10
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ add____$i8,%eax !0x8
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ jmp32 %make_cell__90_break
+:make_cell__90_break
+ jmp32 %make_cell__40_break
+:make_cell__40_else
+ # if (g_cells[type].cdr == TFUNCTION) ...else ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%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 %make_cell__116_else
+ # if (car) ...
+ mov____0x8(%ebp),%eax !0xc
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %make_cell__128_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ add____$i8,%eax !0x4
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ jmp32 %make_cell__128_break
+:make_cell__128_break
+ # if (cdr) ...
+ mov____0x8(%ebp),%eax !0x10
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %make_cell__148_break
+ # g_cells[x].cdr = g_cells[cdr].cdr
+ mov____0x8(%ebp),%eax !0x10
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ add____$i8,%eax !0x8
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ jmp32 %make_cell__148_break
+:make_cell__148_break
+ jmp32 %make_cell__116_break
+:make_cell__116_else
+ # 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ add____$i8,%eax !0x8
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+:make_cell__116_break
+:make_cell__40_break
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_26_else
+ jmp32 %list_of_char_equal_p_26_break
+:list_of_char_equal_p_26_else
+ push___$i32 &string_isxdigit_133
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:list_of_char_equal_p_26_break
+ # a = g_cells[a].cdr
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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_104_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_104_else
+ mov____$i32,%eax %0x3
+ test___%eax,%eax
+ jmp32 %list_of_char_equal_p_104_break
+:list_of_char_equal_p_104_else
+ mov____$i32,%eax %0x2
+ test___%eax,%eax
+:list_of_char_equal_p_104_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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__45_break
+ # x = g_cells[x].car
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ jmp32 %lookup_symbol__45_break
+:lookup_symbol__45_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__61_break
+ # x = make_symbol_(s)
+ push___0x8(%ebp) !0x8
+ call32 %make_symbol_
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ jmp32 %lookup_symbol__61_break
+:lookup_symbol__61_break
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_13_b_13_b_13_b_13
+ jmp32 %car__1_else_b_13_b_13_b_13_skip_b_13
+:car__1_else_b_13_b_13_b_13_b_13
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_13_b_13_b_13
+:car__1_else_b_13_b_13_b_13_skip_b_13
+ jmp32 %car__1_else_b_13_b_13_skip_b_13
+:car__1_else_b_13_b_13_b_13
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_13_b_13
+:car__1_else_b_13_b_13_skip_b_13
+ jmp32 %car__1_else_b_13_skip_b_13
+:car__1_else_b_13_b_13
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_13
+:car__1_else_b_13_skip_b_13
+ jmp32 %car__1_else_skip_b_13
+:car__1_else_b_13
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_13
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%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
+: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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x8(%ebp),%edx !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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_39_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_39_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_39_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_39_break
+:check_formals_39_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_88_break
+ # type = "number"
+ mov____$i32,%eax &string_isxdigit_142
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ jmp32 %check_apply_88_break
+:check_apply_88_break
+ # if (g_cells[f].type == TSTRING) ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_106_break
+ # type = "string"
+ mov____$i32,%eax &string_isxdigit_143
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ jmp32 %check_apply_106_break
+:check_apply_106_break
+ # if (type) ...
+ mov____0x8(%ebp),%eax !0x-4
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %check_apply_124_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_124_break
+:check_apply_124_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !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 %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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_87_break_b_88
+ jmp32 %call_87_break_skip_b_88
+:call_87_break_b_88
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !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 %call_87_break
+:call_87_break_skip_b_88
+ 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_87_break
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x7
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %call_87_break
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0xc
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %call_87_break
+ # x = cons(g_cells[x].car, cons(g_cells[g_cells[g_cells[g_cells[x].cdr].car].cdr] .car, g_cells[x].cdr))
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %cons
+ add____$i8,%esp !0x8
+ mov____%eax,0x8(%ebp) !0xc
+ test___%eax,%eax
+ jmp32 %call_87_break
+:call_87_break
+ # switch (g_functions[g_cells[fn].cdr].arity) { ...}
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+:call_204_clause0
+ cmp____$i8,%eax !0x0
+ je32 %call_204_body0
+ jmp32 %call_204_clause1
+:call_204_body0
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0x0
+ leave
+ ret
+ jmp32 %call_204_body1
+:call_204_clause1
+ cmp____$i8,%eax !0x1
+ je32 %call_204_body1
+ jmp32 %call_204_clause2
+:call_204_body1
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0x4
+ leave
+ ret
+ jmp32 %call_204_body2
+:call_204_clause2
+ cmp____$i8,%eax !0x2
+ je32 %call_204_body2
+ jmp32 %call_204_clause3
+:call_204_body2
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0x8
+ leave
+ ret
+ jmp32 %call_204_body3
+:call_204_clause3
+ cmp____$i8,%eax !0x3
+ je32 %call_204_body3
+ jmp32 %call_204_clause4
+:call_204_body3
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0xc
+ leave
+ ret
+ jmp32 %call_204_body4
+:call_204_clause4
+ cmp____$i8,%eax !0x-1
+ je32 %call_204_body4
+ jmp32 %call_204_clause5
+:call_204_body4
+ push___0x8(%ebp) !0xc
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0x4
+ leave
+ ret
+ jmp32 %call_204_body5
+:call_204_clause5
+:call_204_body5
+ push___0x8(%ebp) !0xc
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ pop____%eax
+ call___*%eax
+ add____$i8,%esp !0x4
+ leave
+ ret
+:call_204_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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_40_else
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ test___%eax,%eax
+ jmp32 %assq_40_break
+:assq_40_else
+ mov____$i32,%eax %0x2
+ test___%eax,%eax
+:assq_40_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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__22_break
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ leave
+ ret
+ jmp32 %lookup_macro__22_break
+:lookup_macro__22_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+:eval_apply_265_clause0
+ cmp____$i8,%eax !0x3
+ je32 %eval_apply_265_body0
+ jmp32 %eval_apply_265_clause1
+:eval_apply_265_body0
+ # check_formals(g_cells[r1].car, make_cell_(tmp_num_(TNUMBER), 0, tmp_num2_( g_functions[g_cells[g_cells[r1].car].cdr].arity)), g_cells[r1].cdr);
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____$i32,%edx &g_functions
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %call
+ add____$i8,%esp !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_vm_return
+ jmp32 %eval_apply_265_body1
+:eval_apply_265_clause1
+ cmp____$i8,%eax !0x1
+ je32 %eval_apply_265_body1
+ jmp32 %eval_apply_265_clause2
+:eval_apply_265_body1
+ # SCM cl = g_cells[g_cells[r1].car].cdr;
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ push___0x8(%ebp) !0x-c
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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_265_body2
+:eval_apply_265_clause2
+ cmp____$i8,%eax !0x2
+ je32 %eval_apply_265_body2
+ jmp32 %eval_apply_265_clause3
+:eval_apply_265_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval_apply
+ jmp32 %eval_apply_265_body3
+:eval_apply_265_clause3
+ cmp____$i8,%eax !0x9
+ je32 %eval_apply_265_body3
+ jmp32 %eval_apply_265_clause4
+:eval_apply_265_body3
+ # switch (g_cells[r1].car) { ...}
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+:eval_apply_472_clause0
+ cmp____$i8,%eax !0x2d
+ je32 %eval_apply_472_body0
+ jmp32 %eval_apply_472_clause1
+:eval_apply_472_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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_472_body1
+:eval_apply_472_clause1
+ cmp____$i8,%eax !0x2f
+ je32 %eval_apply_472_body1
+ jmp32 %eval_apply_472_clause2
+:eval_apply_472_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x32,%eax &r1
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %push_cc
+ add____$i8,%esp !0x10
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval
+ jmp32 %eval_apply_472_body2
+:eval_apply_472_clause2
+ cmp____$i8,%eax !0x15
+ je32 %eval_apply_472_body2
+ jmp32 %eval_apply_472_clause3
+:eval_apply_472_body2
+ # r1 = g_cells[r1].cdr
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_call_with_current_continuation
+ jmp32 %eval_apply_472_body3
+:eval_apply_472_clause3
+:eval_apply_472_body3
+ # check_apply(2, g_cells[r1].car);
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____$i32,%eax %0x2
+ push___%eax
+ call32 %check_apply
+ add____$i8,%esp !0x8
+ test___%eax,%eax
+:eval_apply_472_break
+ jmp32 %eval_apply_265_body4
+:eval_apply_265_clause4
+ cmp____$i8,%eax !0xb
+ je32 %eval_apply_265_body4
+ jmp32 %eval_apply_265_clause5
+:eval_apply_265_body4
+ # if (g_cells[r1].car == 20) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_590_break
+ # r1 = g_cells[r1].cdr
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_call_with_values
+ jmp32 %eval_apply_590_break
+:eval_apply_590_break
+ # if (g_cells[r1].car == 23) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_613_break
+ # r1 = r0
+ mov____0x32,%eax &r0
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_vm_return
+ jmp32 %eval_apply_613_break
+:eval_apply_613_break
+ jmp32 %eval_apply_265_break
+ jmp32 %eval_apply_265_body5
+:eval_apply_265_clause5
+ cmp____$i8,%eax !0x7
+ je32 %eval_apply_265_body5
+ jmp32 %eval_apply_265_break
+:eval_apply_265_body5
+ # switch (g_cells[g_cells[r1].car].car) { ...}
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+:eval_apply_639_clause0
+ cmp____$i8,%eax !0xc
+ je32 %eval_apply_639_body0
+ jmp32 %eval_apply_639_break
+:eval_apply_639_body0
+ # SCM formals = g_cells[g_cells[g_cells[r1].car].cdr].car;
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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_639_break
+:eval_apply_265_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+:eval_apply_757_clause0
+ cmp____$i8,%eax !0x7
+ je32 %eval_apply_757_body0
+ jmp32 %eval_apply_757_clause1
+:eval_apply_757_body0
+ # switch (g_cells[r1].car) { ...}
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+:eval_apply_768_clause0
+ cmp____$i8,%eax !0x25
+ je32 %eval_apply_768_body0
+ jmp32 %eval_apply_768_clause1
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval_apply
+ jmp32 %eval_apply_768_body1
+:eval_apply_768_clause1
+ cmp____$i8,%eax !0x26
+ je32 %eval_apply_768_body1
+ jmp32 %eval_apply_768_clause2
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval_apply
+ jmp32 %eval_apply_768_body2
+:eval_apply_768_clause2
+ cmp____$i8,%eax !0x29
+ je32 %eval_apply_768_body2
+ jmp32 %eval_apply_768_clause3
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %cons
+ add____$i8,%esp !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval_apply
+ jmp32 %eval_apply_768_body3
+:eval_apply_768_clause3
+ cmp____$i8,%eax !0x27
+ je32 %eval_apply_768_body3
+ jmp32 %eval_apply_768_clause4
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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_768_body4
+:eval_apply_768_clause4
+ cmp____$i8,%eax !0xf
+ je32 %eval_apply_768_body4
+ jmp32 %eval_apply_768_clause5
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval_apply
+ jmp32 %eval_apply_768_body5
+:eval_apply_768_clause5
+ cmp____$i8,%eax !0xd
+ je32 %eval_apply_768_body5
+ jmp32 %eval_apply_768_clause6
+:eval_apply_768_body5
+ jmp32 %eval_apply_label_begin
+ jmp32 %eval_apply_768_body6
+:eval_apply_768_clause6
+ cmp____$i8,%eax !0xc
+ je32 %eval_apply_768_body6
+ jmp32 %eval_apply_768_clause7
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %make_closure_
+ add____$i8,%esp !0xc
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_vm_return
+ jmp32 %eval_apply_768_body7
+:eval_apply_768_clause7
+ cmp____$i8,%eax !0xe
+ je32 %eval_apply_768_body7
+ jmp32 %eval_apply_768_clause8
+:eval_apply_768_body7
+ # r1 = g_cells[r1].cdr
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_vm_if
+ jmp32 %eval_apply_768_body8
+:eval_apply_768_clause8
+ cmp____$i8,%eax !0x10
+ je32 %eval_apply_768_body8
+ jmp32 %eval_apply_768_clause9
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %set_env_x
+ add____$i8,%esp !0xc
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_vm_return
+ jmp32 %eval_apply_768_body9
+:eval_apply_768_clause9
+ cmp____$i8,%eax !0x38
+ je32 %eval_apply_768_body9
+ jmp32 %eval_apply_768_clause10
+:eval_apply_768_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %push_cc
+ add____$i8,%esp !0x10
+ test___%eax,%eax
+ jmp32 %eval_apply_label_macro_expand
+ jmp32 %eval_apply_768_body10
+:eval_apply_768_clause10
+:eval_apply_768_body10
+ # 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_1113_break
+ # if (g_cells[r1].type == TPAIR) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1121_break
+ # set_cdr_x(r2, g_cells[r1].cdr);
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____0x32,%eax &r2
+ push___%eax
+ call32 %set_car_x
+ add____$i8,%esp !0x8
+ test___%eax,%eax
+ jmp32 %eval_apply_1121_break
+:eval_apply_1121_break
+ jmp32 %eval_apply_label_eval
+ jmp32 %eval_apply_1113_break
+:eval_apply_1113_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ call32 %cons
+ add____$i8,%esp !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_apply
+:eval_apply_768_break
+ jmp32 %eval_apply_757_body1
+:eval_apply_757_clause1
+ cmp____$i8,%eax !0xb
+ je32 %eval_apply_757_body1
+ jmp32 %eval_apply_757_clause2
+:eval_apply_757_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_757_body2
+:eval_apply_757_clause2
+:eval_apply_757_body2
+ jmp32 %eval_apply_label_vm_return
+:eval_apply_757_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1225_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_1225_else
+ # r1 = cons(macro, g_cells[r1].cdr)
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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_1225_break
+:eval_apply_1225_else
+ # if (g_cells[r1].type == TPAIR && g_cells[g_cells[r1].car].type == TSYMBOL && ( expanders = assq_ref_env(19, r0)) != 6 && (macro = assq(g_cells[r1].car, expanders)) != 2) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1267_break
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1267_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_1267_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_1267_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_1328_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_1328_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_1328_break
+:eval_apply_1328_break
+ jmp32 %eval_apply_1267_break
+:eval_apply_1267_break
+:eval_apply_1225_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_1365_continue
+:eval_apply_1365_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1371_break
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1371_break
+ # if (g_cells[g_cells[r1].car].car == 13) ...else ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____$i32,%eax %0xd
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %eval_apply_1398_else
+ # r1 = append2(g_cells[g_cells[r1].car].cdr, g_cells[r1].cdr)
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ call32 %append2
+ add____$i8,%esp !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_1398_break
+:eval_apply_1398_else
+ # if (g_cells[g_cells[r1].car].car == 24) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ mov____$i32,%eax %0x18
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %eval_apply_1436_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x32,%eax &r1
+ push___%eax
+ call32 %append2
+ add____$i8,%esp !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_1436_break
+:eval_apply_1436_break
+:eval_apply_1398_break
+ jmp32 %eval_apply_1371_break
+:eval_apply_1371_break
+ # if (g_cells[r1].cdr == 1) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%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 %eval_apply_1483_break
+ # r1 = g_cells[r1].car
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval
+ jmp32 %eval_apply_1483_break
+:eval_apply_1483_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+:eval_apply_1365_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_1365_break
+ jmp32 %eval_apply_1365_loop
+:eval_apply_1365_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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_1572_break
+ # r1 = g_cells[g_cells[r1].cdr].car
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval
+ jmp32 %eval_apply_1572_break
+:eval_apply_1572_break
+ # if (g_cells[g_cells[r1].cdr].cdr != 1) ...
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !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 %eval_apply_1595_break
+ # r1 = g_cells[g_cells[g_cells[r1].cdr].cdr].car
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_label_eval
+ jmp32 %eval_apply_1595_break
+:eval_apply_1595_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ 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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ 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_1711_break
+ # r1 = g_cells[r1].cdr
+ mov____0x32,%eax &r1
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x32 &r1
+ test___%eax,%eax
+ jmp32 %eval_apply_1711_break
+:eval_apply_1711_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
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ push___%eax
+ 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
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x8(%ebp),%edx !0x8
+ add____%edx,%eax
+ add____$i8,%eax !0x0
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ # tmp_num = g_free++
+ mov____0x32,%eax &g_free
+ push___%eax
+ mov____$i32,%eax &g_free
+ add____$i8,(%eax) !0x1
+ pop____%eax
+ mov____%eax,0x32 &tmp_num
+ test___%eax,%eax
+ # cells[tmp_num].type = TNUMBER
+ mov____$i32,%eax %0x6
+ push___%eax
+ mov____0x32,%eax &tmp_num
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x8(%ebp),%edx !0x8
+ add____%edx,%eax
+ add____$i8,%eax !0x0
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ # tmp_num2 = g_free++
+ mov____0x32,%eax &g_free
+ push___%eax
+ mov____$i32,%eax &g_free
+ add____$i8,(%eax) !0x1
+ pop____%eax
+ mov____%eax,0x32 &tmp_num2
+ test___%eax,%eax
+ # cells[tmp_num2].type = TNUMBER
+ mov____$i32,%eax %0x6
+ push___%eax
+ mov____0x32,%eax &tmp_num2
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x8(%ebp),%edx !0x8
+ add____%edx,%eax
+ add____$i8,%eax !0x0
+ mov____%eax,%edx
+ pop____%eax
+ mov____%eax,(%edx)
+ test___%eax,%eax
+ mov____$i32,%eax %0x0
+ leave
+ ret
+
+
+:ungetchar
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ mov____0x32,%eax &g_stdin
+ push___%eax
+ push___0x8(%ebp) !0x8
+ call32 %ungetc
+ add____$i8,%esp !0x8
+ leave
+ ret
+
+
+:peekchar
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int c = getchar();
+ call32 %getchar
+ add____$i8,%esp !0x0
+ mov____%eax,0x8(%ebp) !0x-4
+ # ungetchar(c);
+ push___0x8(%ebp) !0x-4
+ call32 %ungetchar
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+ mov____0x8(%ebp),%eax !0x-4
+ leave
+ ret
+
+
+:peek_byte
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ call32 %peekchar
+ add____$i8,%esp !0x0
+ 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
+
+
+:read_byte
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ call32 %getchar
+ add____$i8,%esp !0x0
+ 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
+
+
+:unread_byte
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # ungetchar(g_cells[i].cdr);
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ call32 %ungetchar
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+ mov____0x8(%ebp),%eax !0x8
+ leave
+ ret
+
+
+:write_byte
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # SCM c = car(x);
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ # SCM p = cdr(x);
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-8
+ # int fd = g_stdout;
+ mov____0x32,%eax &g_stdout
+ mov____%eax,0x8(%ebp) !0x-c
+ # if (g_cells[p].type == TPAIR && g_cells[car(p)].type == TNUMBER && g_cells[ g_cells[p].car].cdr != 1) ...
+ mov____0x8(%ebp),%eax !0x-8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x7
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %write_byte_12_break
+ push___0x8(%ebp) !0x-8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %write_byte_12_break
+ mov____0x8(%ebp),%eax !0x-8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !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 %write_byte_12_break
+ # fd = g_cells[g_cells[p].car].cdr
+ mov____0x8(%ebp),%eax !0x-8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-c
+ test___%eax,%eax
+ jmp32 %write_byte_12_break
+:write_byte_12_break
+ # char cc = g_cells[c].cdr;
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-10
+ # write(fd, (char*)&cc, 1);
+ mov____$i32,%eax %0x1
+ push___%eax
+ lea____0x8(%ebp),%eax !0x-10
+ push___%eax
+ push___0x8(%ebp) !0x-c
+ call32 %write
+ add____$i8,%esp !0xc
+ test___%eax,%eax
+ mov____0x8(%ebp),%eax !0x-4
+ leave
+ ret
+
+
+:string_to_cstring
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # char *p = string_to_cstring_buf;
+ mov____$i32,%eax &string_to_cstring_buf
+ mov____%eax,0x8(%ebp) !0x-4
+ # s = g_cells[s].car
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+ # while (s != 1) ...
+ jmp32 %string_to_cstring_12_continue
+:string_to_cstring_12_loop
+ # *p = g_cells[car(s)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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
+ # s = cdr(s)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:string_to_cstring_12_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 %string_to_cstring_12_break
+ jmp32 %string_to_cstring_12_loop
+:string_to_cstring_12_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____$i32,%eax &string_to_cstring_buf
+ leave
+ ret
+
+
+:getenv_
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # char *p;
+ # p = getenv(string_to_cstring(s))
+ push___0x8(%ebp) !0x8
+ call32 %string_to_cstring
+ add____$i8,%esp !0x4
+ push___%eax
+ call32 %getenv
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # p? ...: ...
+ mov____0x8(%ebp),%eax !0x-4
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %getenv__9_else
+ mov____$i32,%eax %0x0
+ push___%eax
+ push___0x8(%ebp) !0x-4
+ 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
+ test___%eax,%eax
+ jmp32 %getenv__9_break
+:getenv__9_else
+ mov____$i32,%eax %0x2
+ test___%eax,%eax
+:getenv__9_break
+ leave
+ ret
+
+
+:access_p
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # access(string_to_cstring(file_name), g_cells[mode].cdr) == 0? ...: ...
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ push___0x8(%ebp) !0x8
+ call32 %string_to_cstring
+ add____$i8,%esp !0x4
+ push___%eax
+ call32 %access
+ add____$i8,%esp !0x8
+ push___%eax
+ mov____$i32,%eax %0x0
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %access_p_1_else
+ mov____$i32,%eax %0x3
+ test___%eax,%eax
+ jmp32 %access_p_1_break
+:access_p_1_else
+ mov____$i32,%eax %0x2
+ test___%eax,%eax
+:access_p_1_break
+ leave
+ ret
+
+
+:current_input_port
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ mov____0x32,%eax &g_stdin
+ 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
+
+
+:open_input_file
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ mov____$i32,%eax %0x0
+ push___%eax
+ push___0x8(%ebp) !0x8
+ call32 %string_to_cstring
+ add____$i8,%esp !0x4
+ push___%eax
+ call32 %open
+ add____$i8,%esp !0x8
+ 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
+
+
+:set_current_input_port
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # g_stdin = g_cells[port].cdr? g_cells[port].cdr: 0
+ # g_cells[port].cdr? ...: ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %set_current_input_port_2_else
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ test___%eax,%eax
+ jmp32 %set_current_input_port_2_break
+:set_current_input_port_2_else
+ mov____$i32,%eax %0x0
+ test___%eax,%eax
+:set_current_input_port_2_break
+ mov____%eax,0x32 &g_stdin
+ test___%eax,%eax
+ call32 %current_input_port
+ add____$i8,%esp !0x0
+ leave
+ ret
+
+
+:current_output_port
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ mov____0x32,%eax &g_stdout
+ 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
+
+
+:open_output_file
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # SCM file_name = car(x);
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+ # int mode = 00400 | 00200;
+ mov____$i32,%eax %0x100
+ push___%eax
+ mov____$i32,%eax %0x80
+ mov____%eax,%edx
+ pop____%eax
+ or_____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-8
+ # if (g_cells[x].type == TPAIR && g_cells[car(x)].type == TNUMBER) ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x7
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %open_output_file_17_break
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %open_output_file_17_break
+ # mode = g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-8
+ test___%eax,%eax
+ jmp32 %open_output_file_17_break
+:open_output_file_17_break
+ push___0x8(%ebp) !0x-8
+ mov____$i32,%eax %0x1
+ push___%eax
+ mov____$i32,%eax %0x40
+ mov____%eax,%edx
+ pop____%eax
+ or_____%edx,%eax
+ push___%eax
+ mov____$i32,%eax %0x200
+ mov____%eax,%edx
+ pop____%eax
+ or_____%edx,%eax
+ push___%eax
+ push___0x8(%ebp) !0x-4
+ call32 %string_to_cstring
+ add____$i8,%esp !0x4
+ push___%eax
+ call32 %open
+ add____$i8,%esp !0xc
+ 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
+
+
+:set_current_output_port
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # g_stdout = g_cells[port].cdr? g_cells[port].cdr: 1
+ # g_cells[port].cdr? ...: ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ test___%eax,%eax
+ # jmp test LABEL
+ test___%eax,%eax
+ je32 %set_current_output_port_2_else
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ test___%eax,%eax
+ jmp32 %set_current_output_port_2_break
+:set_current_output_port_2_else
+ mov____$i32,%eax %0x1
+ test___%eax,%eax
+:set_current_output_port_2_break
+ mov____%eax,0x32 &g_stdout
+ test___%eax,%eax
+ call32 %current_output_port
+ add____$i8,%esp !0x0
+ leave
+ ret
+
+
+:force_output
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ mov____$i32,%eax %0x7
+ leave
+ ret
+
+
+:greater_p
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int n = 2147483647;
+ mov____$i32,%eax %0x7fffffff
+ mov____%eax,0x8(%ebp) !0x-4
+ # while (x != 1) ...
+ jmp32 %greater_p_4_continue
+:greater_p_4_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %greater_p_7_else
+ jmp32 %greater_p_7_break
+:greater_p_7_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:greater_p_7_break
+ # if (g_cells[car(x)].cdr >= n) ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ setge__%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jl32 %greater_p_26_break
+ mov____$i32,%eax %0x2
+ leave
+ ret
+ jmp32 %greater_p_26_break
+:greater_p_26_break
+ # n = g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:greater_p_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 %greater_p_4_break
+ jmp32 %greater_p_4_loop
+:greater_p_4_break
+ mov____$i32,%eax %0x3
+ leave
+ ret
+
+
+:less_p
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int n = -2147483648;
+ push___%eax
+ mov____$i32,%eax %0x80000000
+ mov____%eax,%edx
+ pop____%eax
+ mov____$i32,%eax %0x0
+ sub____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-4
+ # while (x != 1) ...
+ jmp32 %less_p_8_continue
+:less_p_8_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %less_p_11_else
+ jmp32 %less_p_11_break
+:less_p_11_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:less_p_11_break
+ # if (g_cells[car(x)].cdr <= n) ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ setle__%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jg32 %less_p_30_break
+ mov____$i32,%eax %0x2
+ leave
+ ret
+ jmp32 %less_p_30_break
+:less_p_30_break
+ # n = g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:less_p_8_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 %less_p_8_break
+ jmp32 %less_p_8_loop
+:less_p_8_break
+ mov____$i32,%eax %0x3
+ leave
+ ret
+
+
+:is_p
+ 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 %is_p_1_break
+ mov____$i32,%eax %0x3
+ leave
+ ret
+ jmp32 %is_p_1_break
+:is_p_1_break
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %is_p_13_else
+ jmp32 %is_p_13_break
+:is_p_13_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:is_p_13_break
+ # int n = g_cells[car(x)].cdr;
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-4
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+ # while (x != 1) ...
+ jmp32 %is_p_45_continue
+:is_p_45_loop
+ # if (g_cells[car(x)].cdr != n) ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ 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 %is_p_48_break
+ mov____$i32,%eax %0x2
+ leave
+ ret
+ jmp32 %is_p_48_break
+:is_p_48_break
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:is_p_45_continue
+ 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 %is_p_45_break
+ jmp32 %is_p_45_loop
+:is_p_45_break
+ mov____$i32,%eax %0x3
+ leave
+ ret
+
+
+:minus
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # SCM a = car(x);
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x-4
+ # g_cells[a].type == TNUMBER? ...: ...
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %minus_5_else
+ jmp32 %minus_5_break
+:minus_5_else
+ push___$i32 &string_isxdigit_150
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:minus_5_break
+ # int n = g_cells[a].cdr;
+ mov____0x8(%ebp),%eax !0x-4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-8
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+ # 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 %minus_35_break
+ # n = -n
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-8
+ mov____%eax,%edx
+ pop____%eax
+ mov____$i32,%eax %0x0
+ sub____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-8
+ test___%eax,%eax
+ jmp32 %minus_35_break
+:minus_35_break
+ # while (x != 1) ...
+ jmp32 %minus_53_continue
+:minus_53_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %minus_56_else
+ jmp32 %minus_56_break
+:minus_56_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:minus_56_break
+ # n -= g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-8
+ pop____%edx
+ sub____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-8
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:minus_53_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 %minus_53_break
+ jmp32 %minus_53_loop
+:minus_53_break
+ push___0x8(%ebp) !0x-8
+ 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
+
+
+:plus
+ 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 %plus_4_continue
+:plus_4_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %plus_7_else
+ jmp32 %plus_7_break
+:plus_7_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:plus_7_break
+ # n += g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ pop____%edx
+ add____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:plus_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 %plus_4_break
+ jmp32 %plus_4_loop
+:plus_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
+
+
+:divide
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int n = 1;
+ mov____$i32,%eax %0x1
+ mov____%eax,0x8(%ebp) !0x-4
+ # if (x != 1) ...
+ 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 %divide_4_break
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %divide_12_else
+ jmp32 %divide_12_break
+:divide_12_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:divide_12_break
+ # n = g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+ jmp32 %divide_4_break
+:divide_4_break
+ # while (x != 1) ...
+ jmp32 %divide_47_continue
+:divide_47_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %divide_50_else
+ jmp32 %divide_50_break
+:divide_50_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:divide_50_break
+ # n /= g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ pop____%edx
+ mov____%edx,%ebx
+ xor____%edx,%edx
+ idiv___%ebx
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:divide_47_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 %divide_47_break
+ jmp32 %divide_47_loop
+:divide_47_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
+
+
+:modulo
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # g_cells[a].type == TNUMBER? ...: ...
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %modulo_1_else
+ jmp32 %modulo_1_break
+:modulo_1_else
+ push___$i32 &string_isxdigit_150
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:modulo_1_break
+ # g_cells[b].type == TNUMBER? ...: ...
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %modulo_19_else
+ jmp32 %modulo_19_break
+:modulo_19_else
+ push___$i32 &string_isxdigit_151
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:modulo_19_break
+ # int x = g_cells[a].cdr;
+ mov____0x8(%ebp),%eax !0x8
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,0x8(%ebp) !0x-4
+ # while (x < 0) ...
+ jmp32 %modulo_44_continue
+:modulo_44_loop
+ # x += g_cells[b].cdr
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ pop____%edx
+ add____%edx,%eax
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+:modulo_44_continue
+ mov____0x8(%ebp),%eax !0x-4
+ push___%eax
+ mov____$i32,%eax %0x0
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ setl___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jge32 %modulo_44_break
+ jmp32 %modulo_44_loop
+:modulo_44_break
+ mov____0x8(%ebp),%eax !0x-4
+ push___%eax
+ mov____0x8(%ebp),%eax !0xc
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ mov____%eax,%edx
+ pop____%eax
+ mov____%edx,%ebx
+ xor____%edx,%edx
+ idiv___%ebx
+ mov____%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
+
+
+:multiply
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int n = 1;
+ mov____$i32,%eax %0x1
+ mov____%eax,0x8(%ebp) !0x-4
+ # while (x != 1) ...
+ jmp32 %multiply_4_continue
+:multiply_4_loop
+ # g_cells[car(x)].type == TNUMBER? ...: ...
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x0
+ push___%eax
+ mov____$i32,%eax %0x6
+ mov____%eax,%edx
+ pop____%eax
+ sub____%edx,%eax
+ sete___%al
+ movzbl_%al,%eax
+ # jmp test LABEL
+ jne32 %multiply_7_else
+ jmp32 %multiply_7_break
+:multiply_7_else
+ push___$i32 &string_isxdigit_149
+ call32 %assert_fail
+ add____$i8,%esp !0x4
+ test___%eax,%eax
+:multiply_7_break
+ # n *= g_cells[car(x)].cdr
+ push___0x8(%ebp) !0x8
+ call32 %car
+ add____$i8,%esp !0x4
+ mov____%eax,%edx
+ add____%eax,%eax
+ add____%edx,%eax
+ shl____$i8,%eax !0x2
+ mov____0x32,%edx &g_cells
+ add____%edx,%eax
+ mov____0x8(%eax),%eax !0x8
+ push___%eax
+ mov____0x8(%ebp),%eax !0x-4
+ pop____%edx
+ mul____%edx
+ mov____%eax,0x8(%ebp) !0x-4
+ test___%eax,%eax
+ # x = cdr(x)
+ push___0x8(%ebp) !0x8
+ call32 %cdr
+ add____$i8,%esp !0x4
+ mov____%eax,0x8(%ebp) !0x8
+ test___%eax,%eax
+:multiply_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 %multiply_4_break
+ jmp32 %multiply_4_loop
+:multiply_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
+
+
+:logand
+ push___%ebp
+ mov____%esp,%ebp
+ sub____%esp,$i32 %0x1054
+ # int n = 0;
+ &