         Edinburgh IMP77 Compiler - Version 8.4-2024.12.18

     1  %begin
 0000 C8 00 00 01                           ENTER 0000,1
     2    %routine true
 0004 EB 00                                 JMP L1001
 0006                      L1002  EQU $
 0006 C8 00 00 02                           ENTER 0000,2
     3    %end
 000A C9                                    LEAVE
 000B C3                                    RET
 000C                      L1001  EQU $
     4    %integer a,b,c,d,e,f,g,h
     5  
     6    ! conditionals
     7    true %if a = b
 000C 8B 45 F8                              MOV %EAX,[%EBP-8]
 000F 3B 45 F4                              CMP %EAX,[%EBP-12]
 0012 75 00                                 JNE L1003
 0014 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0017                      L1003  EQU $
     8    %comment   true %if a = b
     9    true %if a < b %or b < c
 0017 8B 45 F8                              MOV %EAX,[%EBP-8]
 001A 3B 45 F4                              CMP %EAX,[%EBP-12]
 001D 7C 00                                 JL L1004
 001F 8B 45 F4                              MOV %EAX,[%EBP-12]
 0022 3B 45 F0                              CMP %EAX,[%EBP-16]
 0025 7D 00                                 JGE L1005
 0027                      L1004  EQU $
 0027 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 002A                      L1005  EQU $
    10    %comment   true %if a < b %or b < c
    11    true %if a < b %and b < c
 002A 8B 45 F8                              MOV %EAX,[%EBP-8]
 002D 3B 45 F4                              CMP %EAX,[%EBP-12]
 0030 7D 00                                 JGE L1006
 0032 8B 45 F4                              MOV %EAX,[%EBP-12]
 0035 3B 45 F0                              CMP %EAX,[%EBP-16]
 0038 7D 00                                 JGE L1006
 003A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 003D                      L1006  EQU $
    12    %comment   true %if a < b %and b < c
    13    true %if a < b < c
 003D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0040 3B 45 F8                              CMP %EAX,[%EBP-8]
 0043 7E 00                                 JLE L1007
 0045 3B 45 F0                              CMP %EAX,[%EBP-16]
 0048 7D 00                                 JGE L1007
 004A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 004D                      L1007  EQU $
    14    %comment   true %if a < b < c
    15    true %if a < b %and (a < b %or b < c)
 004D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0050 3B 45 F4                              CMP %EAX,[%EBP-12]
 0053 7D 00                                 JGE L1008
 0055 8B 45 F8                              MOV %EAX,[%EBP-8]
 0058 3B 45 F4                              CMP %EAX,[%EBP-12]
 005B 7C 00                                 JL L1009
 005D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0060 3B 45 F0                              CMP %EAX,[%EBP-16]
 0063 7D 00                                 JGE L1008
 0065                      L1009  EQU $
 0065 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0068                      L1008  EQU $
    16    %comment   true %if a < b %and (a < b %or b < c)
    17    true %if a < b %and ((a < b %and b < c) %or b < c)
 0068 8B 45 F8                              MOV %EAX,[%EBP-8]
 006B 3B 45 F4                              CMP %EAX,[%EBP-12]
 006E 7D 00                                 JGE L1010
 0070 8B 45 F8                              MOV %EAX,[%EBP-8]
 0073 3B 45 F4                              CMP %EAX,[%EBP-12]
 0076 7D 00                                 JGE L1011
 0078 8B 45 F4                              MOV %EAX,[%EBP-12]
 007B 3B 45 F0                              CMP %EAX,[%EBP-16]
 007E 7C 00                                 JL L1012
 0080                      L1011  EQU $
 0080 8B 45 F4                              MOV %EAX,[%EBP-12]
 0083 3B 45 F0                              CMP %EAX,[%EBP-16]
 0086 7D 00                                 JGE L1010
 0088                      L1012  EQU $
 0088 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 008B                      L1010  EQU $
    18    %comment   true %if a < b %and ((a < b %and b < c) %or b < c)
    19    true %if a < b %or ((a < b %or b < c) %and b < c)
 008B 8B 45 F8                              MOV %EAX,[%EBP-8]
 008E 3B 45 F4                              CMP %EAX,[%EBP-12]
 0091 7C 00                                 JL L1013
 0093 8B 45 F8                              MOV %EAX,[%EBP-8]
 0096 3B 45 F4                              CMP %EAX,[%EBP-12]
 0099 7C 00                                 JL L1014
 009B 8B 45 F4                              MOV %EAX,[%EBP-12]
 009E 3B 45 F0                              CMP %EAX,[%EBP-16]
 00A1 7D 00                                 JGE L1015
 00A3                      L1014  EQU $
 00A3 8B 45 F4                              MOV %EAX,[%EBP-12]
 00A6 3B 45 F0                              CMP %EAX,[%EBP-16]
 00A9 7D 00                                 JGE L1015
 00AB                      L1013  EQU $
 00AB E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 00AE                      L1015  EQU $
    20    %comment   true %if a < b %or ((a < b %or b < c) %and b < c)
    21  
    22    true %unless a = b
 00AE 8B 45 F8                              MOV %EAX,[%EBP-8]
 00B1 3B 45 F4                              CMP %EAX,[%EBP-12]
 00B4 74 00                                 JE L1016
 00B6 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 00B9                      L1016  EQU $
    23    %comment   true %unless a = b
    24    true %unless a < b %or b < c
 00B9 8B 45 F8                              MOV %EAX,[%EBP-8]
 00BC 3B 45 F4                              CMP %EAX,[%EBP-12]
 00BF 7C 00                                 JL L1017
 00C1 8B 45 F4                              MOV %EAX,[%EBP-12]
 00C4 3B 45 F0                              CMP %EAX,[%EBP-16]
 00C7 7C 00                                 JL L1017
 00C9 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 00CC                      L1017  EQU $
    25    %comment   true %unless a < b %or b < c
    26    true %unless a < b %and b < c
 00CC 8B 45 F8                              MOV %EAX,[%EBP-8]
 00CF 3B 45 F4                              CMP %EAX,[%EBP-12]
 00D2 7D 00                                 JGE L1018
 00D4 8B 45 F4                              MOV %EAX,[%EBP-12]
 00D7 3B 45 F0                              CMP %EAX,[%EBP-16]
 00DA 7C 00                                 JL L1019
 00DC                      L1018  EQU $
 00DC E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 00DF                      L1019  EQU $
    27    %comment   true %unless a < b %and b < c
    28    true %unless a < b < c
 00DF 8B 45 F4                              MOV %EAX,[%EBP-12]
 00E2 3B 45 F8                              CMP %EAX,[%EBP-8]
 00E5 7E 00                                 JLE L1020
 00E7 3B 45 F0                              CMP %EAX,[%EBP-16]
 00EA 7C 00                                 JL L1021
 00EC                      L1020  EQU $
 00EC E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 00EF                      L1021  EQU $
    29    %comment   true %unless a < b < c
    30    true %unless a < b %and (a < b %or b < c)
 00EF 8B 45 F8                              MOV %EAX,[%EBP-8]
 00F2 3B 45 F4                              CMP %EAX,[%EBP-12]
 00F5 7D 00                                 JGE L1022
 00F7 8B 45 F8                              MOV %EAX,[%EBP-8]
 00FA 3B 45 F4                              CMP %EAX,[%EBP-12]
 00FD 7C 00                                 JL L1023
 00FF 8B 45 F4                              MOV %EAX,[%EBP-12]
 0102 3B 45 F0                              CMP %EAX,[%EBP-16]
 0105 7C 00                                 JL L1023
 0107                      L1022  EQU $
 0107 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 010A                      L1023  EQU $
    31    %comment   true %unless a < b %and (a < b %or b < c)
    32    true %unless a < b %and ((a < b %and b < c) %or b < c)
 010A 8B 45 F8                              MOV %EAX,[%EBP-8]
 010D 3B 45 F4                              CMP %EAX,[%EBP-12]
 0110 7D 00                                 JGE L1024
 0112 8B 45 F8                              MOV %EAX,[%EBP-8]
 0115 3B 45 F4                              CMP %EAX,[%EBP-12]
 0118 7D 00                                 JGE L1025
 011A 8B 45 F4                              MOV %EAX,[%EBP-12]
 011D 3B 45 F0                              CMP %EAX,[%EBP-16]
 0120 7C 00                                 JL L1026
 0122                      L1025  EQU $
 0122 8B 45 F4                              MOV %EAX,[%EBP-12]
 0125 3B 45 F0                              CMP %EAX,[%EBP-16]
 0128 7C 00                                 JL L1026
 012A                      L1024  EQU $
 012A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 012D                      L1026  EQU $
    33    %comment   true %unless a < b %and ((a < b %and b < c) %or b < c)
    34    true %unless a < b %or ((a < b %or b < c) %and b < c)
 012D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0130 3B 45 F4                              CMP %EAX,[%EBP-12]
 0133 7C 00                                 JL L1027
 0135 8B 45 F8                              MOV %EAX,[%EBP-8]
 0138 3B 45 F4                              CMP %EAX,[%EBP-12]
 013B 7C 00                                 JL L1028
 013D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0140 3B 45 F0                              CMP %EAX,[%EBP-16]
 0143 7D 00                                 JGE L1029
 0145                      L1028  EQU $
 0145 8B 45 F4                              MOV %EAX,[%EBP-12]
 0148 3B 45 F0                              CMP %EAX,[%EBP-16]
 014B 7C 00                                 JL L1027
 014D                      L1029  EQU $
 014D E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0150                      L1027  EQU $
    35    %comment   true %unless a < b %or ((a < b %or b < c) %and b < c)
    36  
    37    true %while a = b
 0150                      L1030  EQU $
 0150 8B 45 F8                              MOV %EAX,[%EBP-8]
 0153 3B 45 F4                              CMP %EAX,[%EBP-12]
 0156 75 00                                 JNE L1031
 0158 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 015B EB 00                                 JMP L1030
 015D                      L1031  EQU $
    38    %comment   true %while a = b
    39    true %while a < b %or b < c
 015D                      L1032  EQU $
 015D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0160 3B 45 F4                              CMP %EAX,[%EBP-12]
 0163 7C 00                                 JL L1033
 0165 8B 45 F4                              MOV %EAX,[%EBP-12]
 0168 3B 45 F0                              CMP %EAX,[%EBP-16]
 016B 7D 00                                 JGE L1034
 016D                      L1033  EQU $
 016D E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0170 EB 00                                 JMP L1032
 0172                      L1034  EQU $
    40    %comment   true %while a < b %or b < c
    41    true %while a < b %and b < c
 0172                      L1035  EQU $
 0172 8B 45 F8                              MOV %EAX,[%EBP-8]
 0175 3B 45 F4                              CMP %EAX,[%EBP-12]
 0178 7D 00                                 JGE L1036
 017A 8B 45 F4                              MOV %EAX,[%EBP-12]
 017D 3B 45 F0                              CMP %EAX,[%EBP-16]
 0180 7D 00                                 JGE L1036
 0182 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0185 EB 00                                 JMP L1035
 0187                      L1036  EQU $
    42    %comment   true %while a < b %and b < c
    43    true %while a < b < c
 0187                      L1037  EQU $
 0187 8B 45 F4                              MOV %EAX,[%EBP-12]
 018A 3B 45 F8                              CMP %EAX,[%EBP-8]
 018D 7E 00                                 JLE L1038
 018F 3B 45 F0                              CMP %EAX,[%EBP-16]
 0192 7D 00                                 JGE L1038
 0194 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0197 EB 00                                 JMP L1037
 0199                      L1038  EQU $
    44    %comment   true %while a < b < c
    45    true %while a < b %and (a < b %or b < c)
 0199                      L1039  EQU $
 0199 8B 45 F8                              MOV %EAX,[%EBP-8]
 019C 3B 45 F4                              CMP %EAX,[%EBP-12]
 019F 7D 00                                 JGE L1040
 01A1 8B 45 F8                              MOV %EAX,[%EBP-8]
 01A4 3B 45 F4                              CMP %EAX,[%EBP-12]
 01A7 7C 00                                 JL L1041
 01A9 8B 45 F4                              MOV %EAX,[%EBP-12]
 01AC 3B 45 F0                              CMP %EAX,[%EBP-16]
 01AF 7D 00                                 JGE L1040
 01B1                      L1041  EQU $
 01B1 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 01B4 EB 00                                 JMP L1039
 01B6                      L1040  EQU $
    46    %comment   true %while a < b %and (a < b %or b < c)
    47    true %while a < b %and ((a < b %and b < c) %or b < c)
 01B6                      L1042  EQU $
 01B6 8B 45 F8                              MOV %EAX,[%EBP-8]
 01B9 3B 45 F4                              CMP %EAX,[%EBP-12]
 01BC 7D 00                                 JGE L1043
 01BE 8B 45 F8                              MOV %EAX,[%EBP-8]
 01C1 3B 45 F4                              CMP %EAX,[%EBP-12]
 01C4 7D 00                                 JGE L1044
 01C6 8B 45 F4                              MOV %EAX,[%EBP-12]
 01C9 3B 45 F0                              CMP %EAX,[%EBP-16]
 01CC 7C 00                                 JL L1045
 01CE                      L1044  EQU $
 01CE 8B 45 F4                              MOV %EAX,[%EBP-12]
 01D1 3B 45 F0                              CMP %EAX,[%EBP-16]
 01D4 7D 00                                 JGE L1043
 01D6                      L1045  EQU $
 01D6 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 01D9 EB 00                                 JMP L1042
 01DB                      L1043  EQU $
    48    %comment   true %while a < b %and ((a < b %and b < c) %or b < c)
    49    true %while a < b %or ((a < b %or b < c) %and b < c)
 01DB                      L1046  EQU $
 01DB 8B 45 F8                              MOV %EAX,[%EBP-8]
 01DE 3B 45 F4                              CMP %EAX,[%EBP-12]
 01E1 7C 00                                 JL L1047
 01E3 8B 45 F8                              MOV %EAX,[%EBP-8]
 01E6 3B 45 F4                              CMP %EAX,[%EBP-12]
 01E9 7C 00                                 JL L1048
 01EB 8B 45 F4                              MOV %EAX,[%EBP-12]
 01EE 3B 45 F0                              CMP %EAX,[%EBP-16]
 01F1 7D 00                                 JGE L1049
 01F3                      L1048  EQU $
 01F3 8B 45 F4                              MOV %EAX,[%EBP-12]
 01F6 3B 45 F0                              CMP %EAX,[%EBP-16]
 01F9 7D 00                                 JGE L1049
 01FB                      L1047  EQU $
 01FB E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 01FE EB 00                                 JMP L1046
 0200                      L1049  EQU $
    50    %comment   true %while a < b %or ((a < b %or b < c) %and b < c)
    51  
    52    true %until a = b
 0200                      L1050  EQU $
 0200 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0203 8B 45 F8                              MOV %EAX,[%EBP-8]
 0206 3B 45 F4                              CMP %EAX,[%EBP-12]
 0209 74 00                                 JE L1051
 020B EB 00                                 JMP L1050
 020D                      L1051  EQU $
    53    %comment   true %until a = b
    54    true %until a < b %or b < c
 020D                      L1052  EQU $
 020D E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0210 8B 45 F8                              MOV %EAX,[%EBP-8]
 0213 3B 45 F4                              CMP %EAX,[%EBP-12]
 0216 7C 00                                 JL L1053
 0218 8B 45 F4                              MOV %EAX,[%EBP-12]
 021B 3B 45 F0                              CMP %EAX,[%EBP-16]
 021E 7C 00                                 JL L1053
 0220 EB 00                                 JMP L1052
 0222                      L1053  EQU $
    55    %comment   true %until a < b %or b < c
    56    true %until a < b %and b < c
 0222                      L1054  EQU $
 0222 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0225 8B 45 F8                              MOV %EAX,[%EBP-8]
 0228 3B 45 F4                              CMP %EAX,[%EBP-12]
 022B 7D 00                                 JGE L1055
 022D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0230 3B 45 F0                              CMP %EAX,[%EBP-16]
 0233 7C 00                                 JL L1056
 0235                      L1055  EQU $
 0235 EB 00                                 JMP L1054
 0237                      L1056  EQU $
    57    %comment   true %until a < b %and b < c
    58    true %until a < b < c
 0237                      L1057  EQU $
 0237 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 023A 8B 45 F4                              MOV %EAX,[%EBP-12]
 023D 3B 45 F8                              CMP %EAX,[%EBP-8]
 0240 7E 00                                 JLE L1058
 0242 3B 45 F0                              CMP %EAX,[%EBP-16]
 0245 7C 00                                 JL L1059
 0247                      L1058  EQU $
 0247 EB 00                                 JMP L1057
 0249                      L1059  EQU $
    59    %comment   true %until a < b < c
    60    true %until a < b %and (a < b %or b < c)
 0249                      L1060  EQU $
 0249 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 024C 8B 45 F8                              MOV %EAX,[%EBP-8]
 024F 3B 45 F4                              CMP %EAX,[%EBP-12]
 0252 7D 00                                 JGE L1061
 0254 8B 45 F8                              MOV %EAX,[%EBP-8]
 0257 3B 45 F4                              CMP %EAX,[%EBP-12]
 025A 7C 00                                 JL L1062
 025C 8B 45 F4                              MOV %EAX,[%EBP-12]
 025F 3B 45 F0                              CMP %EAX,[%EBP-16]
 0262 7C 00                                 JL L1062
 0264                      L1061  EQU $
 0264 EB 00                                 JMP L1060
 0266                      L1062  EQU $
    61    %comment   true %until a < b %and (a < b %or b < c)
    62    true %until a < b %and ((a < b %and b < c) %or b < c)
 0266                      L1063  EQU $
 0266 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0269 8B 45 F8                              MOV %EAX,[%EBP-8]
 026C 3B 45 F4                              CMP %EAX,[%EBP-12]
 026F 7D 00                                 JGE L1064
 0271 8B 45 F8                              MOV %EAX,[%EBP-8]
 0274 3B 45 F4                              CMP %EAX,[%EBP-12]
 0277 7D 00                                 JGE L1065
 0279 8B 45 F4                              MOV %EAX,[%EBP-12]
 027C 3B 45 F0                              CMP %EAX,[%EBP-16]
 027F 7C 00                                 JL L1066
 0281                      L1065  EQU $
 0281 8B 45 F4                              MOV %EAX,[%EBP-12]
 0284 3B 45 F0                              CMP %EAX,[%EBP-16]
 0287 7C 00                                 JL L1066
 0289                      L1064  EQU $
 0289 EB 00                                 JMP L1063
 028B                      L1066  EQU $
    63    %comment   true %until a < b %and ((a < b %and b < c) %or b < c)
    64    true %until a < b %or ((a < b %or b < c) %and b < c)
 028B                      L1067  EQU $
 028B E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 028E 8B 45 F8                              MOV %EAX,[%EBP-8]
 0291 3B 45 F4                              CMP %EAX,[%EBP-12]
 0294 7C 00                                 JL L1068
 0296 8B 45 F8                              MOV %EAX,[%EBP-8]
 0299 3B 45 F4                              CMP %EAX,[%EBP-12]
 029C 7C 00                                 JL L1069
 029E 8B 45 F4                              MOV %EAX,[%EBP-12]
 02A1 3B 45 F0                              CMP %EAX,[%EBP-16]
 02A4 7D 00                                 JGE L1070
 02A6                      L1069  EQU $
 02A6 8B 45 F4                              MOV %EAX,[%EBP-12]
 02A9 3B 45 F0                              CMP %EAX,[%EBP-16]
 02AC 7C 00                                 JL L1068
 02AE                      L1070  EQU $
 02AE EB 00                                 JMP L1067
 02B0                      L1068  EQU $
    65    %comment   true %until a < b %or ((a < b %or b < c) %and b < c)
    66  
    67    ! conditionals
    68    true %if %not a = b
 02B0 8B 45 F8                              MOV %EAX,[%EBP-8]
 02B3 3B 45 F4                              CMP %EAX,[%EBP-12]
 02B6 74 00                                 JE L1071
 02B8 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 02BB                      L1071  EQU $
    69    %comment   true %if %not a = b
    70    true %if %not ( a < b %or b < c)
 02BB 8B 45 F8                              MOV %EAX,[%EBP-8]
 02BE 3B 45 F4                              CMP %EAX,[%EBP-12]
 02C1 7C 00                                 JL L1072
 02C3 8B 45 F4                              MOV %EAX,[%EBP-12]
 02C6 3B 45 F0                              CMP %EAX,[%EBP-16]
 02C9 7C 00                                 JL L1072
 02CB E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 02CE                      L1072  EQU $
    71    %comment   true %if %not ( a < b %or b < c)
    72    true %if %not ( a < b %and b < c)
 02CE 8B 45 F8                              MOV %EAX,[%EBP-8]
 02D1 3B 45 F4                              CMP %EAX,[%EBP-12]
 02D4 7D 00                                 JGE L1073
 02D6 8B 45 F4                              MOV %EAX,[%EBP-12]
 02D9 3B 45 F0                              CMP %EAX,[%EBP-16]
 02DC 7C 00                                 JL L1074
 02DE                      L1073  EQU $
 02DE E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 02E1                      L1074  EQU $
    73    %comment   true %if %not ( a < b %and b < c)
    74    true %if %not ( a < b < c)
 02E1 8B 45 F4                              MOV %EAX,[%EBP-12]
 02E4 3B 45 F8                              CMP %EAX,[%EBP-8]
 02E7 7E 00                                 JLE L1075
 02E9 3B 45 F0                              CMP %EAX,[%EBP-16]
 02EC 7C 00                                 JL L1076
 02EE                      L1075  EQU $
 02EE E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 02F1                      L1076  EQU $
    75    %comment   true %if %not ( a < b < c)
    76    true %if %not ( a < b %and (a < b %or b < c))
 02F1 8B 45 F8                              MOV %EAX,[%EBP-8]
 02F4 3B 45 F4                              CMP %EAX,[%EBP-12]
 02F7 7D 00                                 JGE L1077
 02F9 8B 45 F8                              MOV %EAX,[%EBP-8]
 02FC 3B 45 F4                              CMP %EAX,[%EBP-12]
 02FF 7C 00                                 JL L1078
 0301 8B 45 F4                              MOV %EAX,[%EBP-12]
 0304 3B 45 F0                              CMP %EAX,[%EBP-16]
 0307 7C 00                                 JL L1078
 0309                      L1077  EQU $
 0309 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 030C                      L1078  EQU $
    77    %comment   true %if %not ( a < b %and (a < b %or b < c))
    78    true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
 030C 8B 45 F8                              MOV %EAX,[%EBP-8]
 030F 3B 45 F4                              CMP %EAX,[%EBP-12]
 0312 7D 00                                 JGE L1079
 0314 8B 45 F8                              MOV %EAX,[%EBP-8]
 0317 3B 45 F4                              CMP %EAX,[%EBP-12]
 031A 7D 00                                 JGE L1080
 031C 8B 45 F4                              MOV %EAX,[%EBP-12]
 031F 3B 45 F0                              CMP %EAX,[%EBP-16]
 0322 7C 00                                 JL L1081
 0324                      L1080  EQU $
 0324 8B 45 F4                              MOV %EAX,[%EBP-12]
 0327 3B 45 F0                              CMP %EAX,[%EBP-16]
 032A 7C 00                                 JL L1081
 032C                      L1079  EQU $
 032C E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 032F                      L1081  EQU $
    79    %comment   true %if %not ( a < b %and ((a < b %and b < c) %or b < c))
    80    true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
 032F 8B 45 F8                              MOV %EAX,[%EBP-8]
 0332 3B 45 F4                              CMP %EAX,[%EBP-12]
 0335 7C 00                                 JL L1082
 0337 8B 45 F8                              MOV %EAX,[%EBP-8]
 033A 3B 45 F4                              CMP %EAX,[%EBP-12]
 033D 7C 00                                 JL L1083
 033F 8B 45 F4                              MOV %EAX,[%EBP-12]
 0342 3B 45 F0                              CMP %EAX,[%EBP-16]
 0345 7D 00                                 JGE L1084
 0347                      L1083  EQU $
 0347 8B 45 F4                              MOV %EAX,[%EBP-12]
 034A 3B 45 F0                              CMP %EAX,[%EBP-16]
 034D 7C 00                                 JL L1082
 034F                      L1084  EQU $
 034F E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0352                      L1082  EQU $
    81    %comment   true %if %not ( a < b %or ((a < b %or b < c) %and b < c))
    82  
    83    true %unless %not a = b
 0352 8B 45 F8                              MOV %EAX,[%EBP-8]
 0355 3B 45 F4                              CMP %EAX,[%EBP-12]
 0358 75 00                                 JNE L1085
 035A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 035D                      L1085  EQU $
    84    %comment   true %unless %not a = b
    85    true %unless %not ( a < b %or b < c)
 035D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0360 3B 45 F4                              CMP %EAX,[%EBP-12]
 0363 7C 00                                 JL L1086
 0365 8B 45 F4                              MOV %EAX,[%EBP-12]
 0368 3B 45 F0                              CMP %EAX,[%EBP-16]
 036B 7D 00                                 JGE L1087
 036D                      L1086  EQU $
 036D E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0370                      L1087  EQU $
    86    %comment   true %unless %not ( a < b %or b < c)
    87    true %unless %not ( a < b %and b < c)
 0370 8B 45 F8                              MOV %EAX,[%EBP-8]
 0373 3B 45 F4                              CMP %EAX,[%EBP-12]
 0376 7D 00                                 JGE L1088
 0378 8B 45 F4                              MOV %EAX,[%EBP-12]
 037B 3B 45 F0                              CMP %EAX,[%EBP-16]
 037E 7D 00                                 JGE L1088
 0380 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0383                      L1088  EQU $
    88    %comment   true %unless %not ( a < b %and b < c)
    89    true %unless %not ( a < b < c)
 0383 8B 45 F4                              MOV %EAX,[%EBP-12]
 0386 3B 45 F8                              CMP %EAX,[%EBP-8]
 0389 7E 00                                 JLE L1089
 038B 3B 45 F0                              CMP %EAX,[%EBP-16]
 038E 7D 00                                 JGE L1089
 0390 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0393                      L1089  EQU $
    90    %comment   true %unless %not ( a < b < c)
    91    true %unless %not ( a < b %and (a < b %or b < c))
 0393 8B 45 F8                              MOV %EAX,[%EBP-8]
 0396 3B 45 F4                              CMP %EAX,[%EBP-12]
 0399 7D 00                                 JGE L1090
 039B 8B 45 F8                              MOV %EAX,[%EBP-8]
 039E 3B 45 F4                              CMP %EAX,[%EBP-12]
 03A1 7C 00                                 JL L1091
 03A3 8B 45 F4                              MOV %EAX,[%EBP-12]
 03A6 3B 45 F0                              CMP %EAX,[%EBP-16]
 03A9 7D 00                                 JGE L1090
 03AB                      L1091  EQU $
 03AB E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 03AE                      L1090  EQU $
    92    %comment   true %unless %not ( a < b %and (a < b %or b < c))
    93    true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
 03AE 8B 45 F8                              MOV %EAX,[%EBP-8]
 03B1 3B 45 F4                              CMP %EAX,[%EBP-12]
 03B4 7D 00                                 JGE L1092
 03B6 8B 45 F8                              MOV %EAX,[%EBP-8]
 03B9 3B 45 F4                              CMP %EAX,[%EBP-12]
 03BC 7D 00                                 JGE L1093
 03BE 8B 45 F4                              MOV %EAX,[%EBP-12]
 03C1 3B 45 F0                              CMP %EAX,[%EBP-16]
 03C4 7C 00                                 JL L1094
 03C6                      L1093  EQU $
 03C6 8B 45 F4                              MOV %EAX,[%EBP-12]
 03C9 3B 45 F0                              CMP %EAX,[%EBP-16]
 03CC 7D 00                                 JGE L1092
 03CE                      L1094  EQU $
 03CE E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 03D1                      L1092  EQU $
    94    %comment   true %unless %not ( a < b %and ((a < b %and b < c) %or b < c))
    95    true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
 03D1 8B 45 F8                              MOV %EAX,[%EBP-8]
 03D4 3B 45 F4                              CMP %EAX,[%EBP-12]
 03D7 7C 00                                 JL L1095
 03D9 8B 45 F8                              MOV %EAX,[%EBP-8]
 03DC 3B 45 F4                              CMP %EAX,[%EBP-12]
 03DF 7C 00                                 JL L1096
 03E1 8B 45 F4                              MOV %EAX,[%EBP-12]
 03E4 3B 45 F0                              CMP %EAX,[%EBP-16]
 03E7 7D 00                                 JGE L1097
 03E9                      L1096  EQU $
 03E9 8B 45 F4                              MOV %EAX,[%EBP-12]
 03EC 3B 45 F0                              CMP %EAX,[%EBP-16]
 03EF 7D 00                                 JGE L1097
 03F1                      L1095  EQU $
 03F1 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 03F4                      L1097  EQU $
    96    %comment   true %unless %not ( a < b %or ((a < b %or b < c) %and b < c))
    97  
    98    true %while %not a = b
 03F4                      L1098  EQU $
 03F4 8B 45 F8                              MOV %EAX,[%EBP-8]
 03F7 3B 45 F4                              CMP %EAX,[%EBP-12]
 03FA 74 00                                 JE L1099
 03FC E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 03FF EB 00                                 JMP L1098
 0401                      L1099  EQU $
    99    %comment   true %while %not a = b
   100    true %while %not ( a < b %or b < c)
 0401                      L1100  EQU $
 0401 8B 45 F8                              MOV %EAX,[%EBP-8]
 0404 3B 45 F4                              CMP %EAX,[%EBP-12]
 0407 7C 00                                 JL L1101
 0409 8B 45 F4                              MOV %EAX,[%EBP-12]
 040C 3B 45 F0                              CMP %EAX,[%EBP-16]
 040F 7C 00                                 JL L1101
 0411 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0414 EB 00                                 JMP L1100
 0416                      L1101  EQU $
   101    %comment   true %while %not ( a < b %or b < c)
   102    true %while %not ( a < b %and b < c)
 0416                      L1102  EQU $
 0416 8B 45 F8                              MOV %EAX,[%EBP-8]
 0419 3B 45 F4                              CMP %EAX,[%EBP-12]
 041C 7D 00                                 JGE L1103
 041E 8B 45 F4                              MOV %EAX,[%EBP-12]
 0421 3B 45 F0                              CMP %EAX,[%EBP-16]
 0424 7C 00                                 JL L1104
 0426                      L1103  EQU $
 0426 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0429 EB 00                                 JMP L1102
 042B                      L1104  EQU $
   103    %comment   true %while %not ( a < b %and b < c)
   104    true %while %not ( a < b < c)
 042B                      L1105  EQU $
 042B 8B 45 F4                              MOV %EAX,[%EBP-12]
 042E 3B 45 F8                              CMP %EAX,[%EBP-8]
 0431 7E 00                                 JLE L1106
 0433 3B 45 F0                              CMP %EAX,[%EBP-16]
 0436 7C 00                                 JL L1107
 0438                      L1106  EQU $
 0438 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 043B EB 00                                 JMP L1105
 043D                      L1107  EQU $
   105    %comment   true %while %not ( a < b < c)
   106    true %while %not ( a < b %and (a < b %or b < c))
 043D                      L1108  EQU $
 043D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0440 3B 45 F4                              CMP %EAX,[%EBP-12]
 0443 7D 00                                 JGE L1109
 0445 8B 45 F8                              MOV %EAX,[%EBP-8]
 0448 3B 45 F4                              CMP %EAX,[%EBP-12]
 044B 7C 00                                 JL L1110
 044D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0450 3B 45 F0                              CMP %EAX,[%EBP-16]
 0453 7C 00                                 JL L1110
 0455                      L1109  EQU $
 0455 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0458 EB 00                                 JMP L1108
 045A                      L1110  EQU $
   107    %comment   true %while %not ( a < b %and (a < b %or b < c))
   108    true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
 045A                      L1111  EQU $
 045A 8B 45 F8                              MOV %EAX,[%EBP-8]
 045D 3B 45 F4                              CMP %EAX,[%EBP-12]
 0460 7D 00                                 JGE L1112
 0462 8B 45 F8                              MOV %EAX,[%EBP-8]
 0465 3B 45 F4                              CMP %EAX,[%EBP-12]
 0468 7D 00                                 JGE L1113
 046A 8B 45 F4                              MOV %EAX,[%EBP-12]
 046D 3B 45 F0                              CMP %EAX,[%EBP-16]
 0470 7C 00                                 JL L1114
 0472                      L1113  EQU $
 0472 8B 45 F4                              MOV %EAX,[%EBP-12]
 0475 3B 45 F0                              CMP %EAX,[%EBP-16]
 0478 7C 00                                 JL L1114
 047A                      L1112  EQU $
 047A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 047D EB 00                                 JMP L1111
 047F                      L1114  EQU $
   109    %comment   true %while %not ( a < b %and ((a < b %and b < c) %or b < c))
   110    true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
 047F                      L1115  EQU $
 047F 8B 45 F8                              MOV %EAX,[%EBP-8]
 0482 3B 45 F4                              CMP %EAX,[%EBP-12]
 0485 7C 00                                 JL L1116
 0487 8B 45 F8                              MOV %EAX,[%EBP-8]
 048A 3B 45 F4                              CMP %EAX,[%EBP-12]
 048D 7C 00                                 JL L1117
 048F 8B 45 F4                              MOV %EAX,[%EBP-12]
 0492 3B 45 F0                              CMP %EAX,[%EBP-16]
 0495 7D 00                                 JGE L1118
 0497                      L1117  EQU $
 0497 8B 45 F4                              MOV %EAX,[%EBP-12]
 049A 3B 45 F0                              CMP %EAX,[%EBP-16]
 049D 7C 00                                 JL L1116
 049F                      L1118  EQU $
 049F E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04A2 EB 00                                 JMP L1115
 04A4                      L1116  EQU $
   111    %comment   true %while %not ( a < b %or ((a < b %or b < c) %and b < c))
   112  
   113    true %until %not a = b
 04A4                      L1119  EQU $
 04A4 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04A7 8B 45 F8                              MOV %EAX,[%EBP-8]
 04AA 3B 45 F4                              CMP %EAX,[%EBP-12]
 04AD 75 00                                 JNE L1120
 04AF EB 00                                 JMP L1119
 04B1                      L1120  EQU $
   114    %comment   true %until %not a = b
   115    true %until %not ( a < b %or b < c)
 04B1                      L1121  EQU $
 04B1 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04B4 8B 45 F8                              MOV %EAX,[%EBP-8]
 04B7 3B 45 F4                              CMP %EAX,[%EBP-12]
 04BA 7C 00                                 JL L1122
 04BC 8B 45 F4                              MOV %EAX,[%EBP-12]
 04BF 3B 45 F0                              CMP %EAX,[%EBP-16]
 04C2 7D 00                                 JGE L1123
 04C4                      L1122  EQU $
 04C4 EB 00                                 JMP L1121
 04C6                      L1123  EQU $
   116    %comment   true %until %not ( a < b %or b < c)
   117    true %until %not ( a < b %and b < c)
 04C6                      L1124  EQU $
 04C6 E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04C9 8B 45 F8                              MOV %EAX,[%EBP-8]
 04CC 3B 45 F4                              CMP %EAX,[%EBP-12]
 04CF 7D 00                                 JGE L1125
 04D1 8B 45 F4                              MOV %EAX,[%EBP-12]
 04D4 3B 45 F0                              CMP %EAX,[%EBP-16]
 04D7 7D 00                                 JGE L1125
 04D9 EB 00                                 JMP L1124
 04DB                      L1125  EQU $
   118    %comment   true %until %not ( a < b %and b < c)
   119    true %until %not ( a < b < c)
 04DB                      L1126  EQU $
 04DB E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04DE 8B 45 F4                              MOV %EAX,[%EBP-12]
 04E1 3B 45 F8                              CMP %EAX,[%EBP-8]
 04E4 7E 00                                 JLE L1127
 04E6 3B 45 F0                              CMP %EAX,[%EBP-16]
 04E9 7D 00                                 JGE L1127
 04EB EB 00                                 JMP L1126
 04ED                      L1127  EQU $
   120    %comment   true %until %not ( a < b < c)
   121    true %until %not ( a < b %and (a < b %or b < c))
 04ED                      L1128  EQU $
 04ED E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 04F0 8B 45 F8                              MOV %EAX,[%EBP-8]
 04F3 3B 45 F4                              CMP %EAX,[%EBP-12]
 04F6 7D 00                                 JGE L1129
 04F8 8B 45 F8                              MOV %EAX,[%EBP-8]
 04FB 3B 45 F4                              CMP %EAX,[%EBP-12]
 04FE 7C 00                                 JL L1130
 0500 8B 45 F4                              MOV %EAX,[%EBP-12]
 0503 3B 45 F0                              CMP %EAX,[%EBP-16]
 0506 7D 00                                 JGE L1129
 0508                      L1130  EQU $
 0508 EB 00                                 JMP L1128
 050A                      L1129  EQU $
   122    %comment   true %until %not ( a < b %and (a < b %or b < c))
   123    true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
 050A                      L1131  EQU $
 050A E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 050D 8B 45 F8                              MOV %EAX,[%EBP-8]
 0510 3B 45 F4                              CMP %EAX,[%EBP-12]
 0513 7D 00                                 JGE L1132
 0515 8B 45 F8                              MOV %EAX,[%EBP-8]
 0518 3B 45 F4                              CMP %EAX,[%EBP-12]
 051B 7D 00                                 JGE L1133
 051D 8B 45 F4                              MOV %EAX,[%EBP-12]
 0520 3B 45 F0                              CMP %EAX,[%EBP-16]
 0523 7C 00                                 JL L1134
 0525                      L1133  EQU $
 0525 8B 45 F4                              MOV %EAX,[%EBP-12]
 0528 3B 45 F0                              CMP %EAX,[%EBP-16]
 052B 7D 00                                 JGE L1132
 052D                      L1134  EQU $
 052D EB 00                                 JMP L1131
 052F                      L1132  EQU $
   124    %comment   true %until %not ( a < b %and ((a < b %and b < c) %or b < c))
   125    true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
 052F                      L1135  EQU $
 052F E8 00 00                              CALL 'TRUE' (INTERNAL L1002 )
 0532 8B 45 F8                              MOV %EAX,[%EBP-8]
 0535 3B 45 F4                              CMP %EAX,[%EBP-12]
 0538 7C 00                                 JL L1136
 053A 8B 45 F8                              MOV %EAX,[%EBP-8]
 053D 3B 45 F4                              CMP %EAX,[%EBP-12]
 0540 7C 00                                 JL L1137
 0542 8B 45 F4                              MOV %EAX,[%EBP-12]
 0545 3B 45 F0                              CMP %EAX,[%EBP-16]
 0548 7D 00                                 JGE L1138
 054A                      L1137  EQU $
 054A 8B 45 F4                              MOV %EAX,[%EBP-12]
 054D 3B 45 F0                              CMP %EAX,[%EBP-16]
 0550 7D 00                                 JGE L1138
 0552                      L1136  EQU $
 0552 EB 00                                 JMP L1135
 0554                      L1138  EQU $
   126    %comment   true %until %not ( a < b %or ((a < b %or b < c) %and b < c))
   127  
   128  %endofprogram
 0554 C9                                    LEAVE
 0555 C3                                    RET
?H unused
?G unused
?F unused
?E unused
?D unused

    61 Statements compiled



 ELF object file generated from IMP source file: '/home/gtoal/src/compilers101/new-parser/imps/tests/test65.imp'
 +----------+---------------------+---------+---------+---------+------------+
 | Sections |       Symbols       | Code    | Data    | Diag    | Total size |
 +----------+----------+----------+---------+---------+---------+------------+
 |  (count) | Internal | External | (bytes) | (bytes) | (bytes) | (bytes)    |
 +----------+----------+----------+---------+---------+---------+------------+
 |       11 |        5 |        6 |    1478 |       0 |      64 |       1542 |
 +----------+----------+----------+---------+---------+---------+------------+


