int main(int argc, char **argv) {
  assert(romanToInt("I") == 1);
  assert(romanToInt("II") == 2);
  assert(romanToInt("III") == 3);
  assert(romanToInt("IV") == 4);
  assert(romanToInt("V") == 5);
  assert(romanToInt("VI") == 6);
  assert(romanToInt("VII") == 7);
  assert(romanToInt("VIII") == 8);
  assert(romanToInt("IX") == 9);
  assert(romanToInt("X") == 10);
  assert(romanToInt("XI") == 11);
  assert(romanToInt("XII") == 12);
  assert(romanToInt("XIII") == 13);
  assert(romanToInt("XIV") == 14);
  assert(romanToInt("XV") == 15);
  assert(romanToInt("XVI") == 16);
  assert(romanToInt("XVII") == 17);
  assert(romanToInt("XVIII") == 18);
  assert(romanToInt("XIX") == 19);
  assert(romanToInt("XX") == 20);
  assert(romanToInt("XXI") == 21);
  assert(romanToInt("XXII") == 22);
  assert(romanToInt("XXIII") == 23);
  assert(romanToInt("XXIV") == 24);
  assert(romanToInt("XXV") == 25);
  assert(romanToInt("XXVI") == 26);
  assert(romanToInt("XXVII") == 27);
  assert(romanToInt("XXVIII") == 28);
  assert(romanToInt("XXIX") == 29);
  assert(romanToInt("XXX") == 30);
  assert(romanToInt("XXXI") == 31);
  assert(romanToInt("XXXII") == 32);
  assert(romanToInt("XXXIII") == 33);
  assert(romanToInt("XXXIV") == 34);
  assert(romanToInt("XXXV") == 35);
  assert(romanToInt("XXXVI") == 36);
  assert(romanToInt("XXXVII") == 37);
  assert(romanToInt("XXXVIII") == 38);
  assert(romanToInt("XXXIX") == 39);
  assert(romanToInt("XL") == 40);
  assert(romanToInt("XLI") == 41);
  assert(romanToInt("XLII") == 42);
  assert(romanToInt("XLIII") == 43);
  assert(romanToInt("XLIV") == 44);
  assert(romanToInt("XLV") == 45);
  assert(romanToInt("XLVI") == 46);
  assert(romanToInt("XLVII") == 47);
  assert(romanToInt("XLVIII") == 48);
  assert(romanToInt("XLIX") == 49);
  assert(romanToInt("L") == 50);
  assert(romanToInt("LI") == 51);
  assert(romanToInt("LII") == 52);
  assert(romanToInt("LIII") == 53);
  assert(romanToInt("LIV") == 54);
  assert(romanToInt("LV") == 55);
  assert(romanToInt("LVI") == 56);
  assert(romanToInt("LVII") == 57);
  assert(romanToInt("LVIII") == 58);
  assert(romanToInt("LIX") == 59);
  assert(romanToInt("LX") == 60);
  assert(romanToInt("LXI") == 61);
  assert(romanToInt("LXII") == 62);
  assert(romanToInt("LXIII") == 63);
  assert(romanToInt("LXIV") == 64);
  assert(romanToInt("LXV") == 65);
  assert(romanToInt("LXVI") == 66);
  assert(romanToInt("LXVII") == 67);
  assert(romanToInt("LXVIII") == 68);
  assert(romanToInt("LXIX") == 69);
  assert(romanToInt("LXX") == 70);
  assert(romanToInt("LXXI") == 71);
  assert(romanToInt("LXXII") == 72);
  assert(romanToInt("LXXIII") == 73);
  assert(romanToInt("LXXIV") == 74);
  assert(romanToInt("LXXV") == 75);
  assert(romanToInt("LXXVI") == 76);
  assert(romanToInt("LXXVII") == 77);
  assert(romanToInt("LXXVIII") == 78);
  assert(romanToInt("LXXIX") == 79);
  assert(romanToInt("LXXX") == 80);
  assert(romanToInt("LXXXI") == 81);
  assert(romanToInt("LXXXII") == 82);
  assert(romanToInt("LXXXIII") == 83);
  assert(romanToInt("LXXXIV") == 84);
  assert(romanToInt("LXXXV") == 85);
  assert(romanToInt("LXXXVI") == 86);
  assert(romanToInt("LXXXVII") == 87);
  assert(romanToInt("LXXXVIII") == 88);
  assert(romanToInt("LXXXIX") == 89);
  assert(romanToInt("XC") == 90);
  assert(romanToInt("XCI") == 91);
  assert(romanToInt("XCII") == 92);
  assert(romanToInt("XCIII") == 93);
  assert(romanToInt("XCIV") == 94);
  assert(romanToInt("XCV") == 95);
  assert(romanToInt("XCVI") == 96);
  assert(romanToInt("XCVII") == 97);
  assert(romanToInt("XCVIII") == 98);
  assert(romanToInt("XCIX") == 99);
  assert(romanToInt("C") == 100);
  assert(romanToInt("MCMXCIV") == 1994);
  return 0;
}


x86 assembly (clang, -O0):
<main>:
push   %rbp
mov    %rsp,%rbp
sub    $0x10,%rsp
movl   $0x0,-0x4(%rbp)
mov    %edi,-0x8(%rbp)
mov    %rsi,-0x10(%rbp)
lea    0xfae(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf92(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf77(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf7b(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf3d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf21(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x6,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xf06(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x7,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xeec(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x8,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xed3(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x9,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xeb4(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xa,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xdb9(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xb,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd9d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xc,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd82(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xd,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd68(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xe,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd4d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0xf,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd31(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x10,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xd16(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x11,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xcfc(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x12,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xce3(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x13,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xcc8(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x14,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xcac(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x15,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc91(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x16,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc77(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x17,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc5e(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x18,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc44(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x19,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc29(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1a,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xc0f(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xbf6(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xbde(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1d,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xbc4(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xba9(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x1f,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb8f(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x20,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb76(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x21,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb5e(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x22,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb45(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x23,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb2b(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x24,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xb12(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x25,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xafa(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x26,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0xae3(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x27,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x9e3(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x28,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x9c6(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x29,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x9aa(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2a,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x98f(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x975(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x95a(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2d,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x93e(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x923(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x2f,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x909(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x30,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x8f0(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x31,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x8a4(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x32,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x887(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x33,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x86b(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x34,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x850(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x35,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x836(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x36,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x81b(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x37,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x7ff(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x38,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x7e4(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x39,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x7ca(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3a,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x7b1(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x795(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x778(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3d,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x75c(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x741(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x3f,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x727(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x40,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x70c(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x41,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x6f0(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x42,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x6d5(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x43,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x6bb(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x44,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x6a2(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x45,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x687(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x46,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x66b(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x47,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x650(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x48,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x636(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x49,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x61d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4a,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x603(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x5e8(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x5ce(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4d,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x5b5(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x59d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x4f,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x583(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x50,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x568(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x51,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x54e(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x52,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x535(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x53,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x51d(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x54,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x504(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x55,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x4ea(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x56,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x4d1(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x57,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x4b9(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x58,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x4a2(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x59,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x489(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5a,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x46c(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5b,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x450(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5c,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x435(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5d,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x439(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5e,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x3fb(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x5f,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x3df(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x60,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x3c4(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x61,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x3aa(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x62,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x391(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x63,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x34a(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x64,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
lea    0x356(%rip),%rdi
mov    $0x0,%al
call   1040 <romanToInt@plt>
cmp    $0x7ca,%eax
sete   %al
and    $0x1,%al
movzbl %al,%edi
mov    $0x0,%al
call   1030 <assert@plt>
xor    %eax,%eax
add    $0x10,%rsp
pop    %rbp
ret

x86 assembly (clang, -O2):
<main>:
push   %rax
lea    0xfc3(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xfa9(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf90(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf96(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf5a(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf40(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x6,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf27(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x7,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xf0f(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x8,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xef8(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x9,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xedb(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xa,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xde2(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xb,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xdc8(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xc,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xdaf(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xd,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd97(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xe,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd7e(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0xf,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd64(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x10,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd4b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x11,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd33(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x12,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd1c(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x13,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xd03(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x14,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xce9(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x15,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xcd0(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x16,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xcb8(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x17,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xca1(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x18,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc89(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x19,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc70(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1a,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc58(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1b,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc41(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1c,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc2b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1d,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xc13(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1e,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xbfa(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x1f,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xbe2(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x20,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xbcb(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x21,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xbb5(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x22,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xb9e(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x23,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xb86(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x24,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xb6f(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x25,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xb59(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x26,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xb44(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x27,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xa46(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x28,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xa2b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x29,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0xa11(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2a,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x9f8(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2b,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x9e0(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2c,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x9c7(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2d,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x9ad(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2e,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x994(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x2f,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x97c(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x30,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x965(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x31,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x91b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x32,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x900(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x33,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x8e6(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x34,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x8cd(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x35,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x8b5(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x36,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x89c(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x37,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x882(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x38,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x869(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x39,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x851(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3a,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x83a(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3b,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x820(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3c,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x805(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3d,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x7eb(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3e,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x7d2(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x3f,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x7ba(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x40,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x7a1(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x41,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x787(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x42,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x76e(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x43,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x756(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x44,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x73f(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x45,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x726(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x46,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x70c(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x47,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x6f3(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x48,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x6db(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x49,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x6c4(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4a,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x6ac(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4b,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x693(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4c,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x67b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4d,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x664(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4e,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x64e(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x4f,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x636(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x50,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x61d(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x51,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x605(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x52,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x5ee(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x53,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x5d8(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x54,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x5c1(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x55,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x5a9(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x56,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x592(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x57,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x57c(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x58,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x567(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x59,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x550(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5a,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x535(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5b,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x51b(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5c,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x502(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5d,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x508(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5e,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x4cc(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x5f,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x4b2(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x60,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x499(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x61,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x481(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x62,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x46a(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x63,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x425(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x64,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
lea    0x433(%rip),%rdi
xor    %eax,%eax
call   1040 <romanToInt@plt>
xor    %edi,%edi
cmp    $0x7ca,%eax
sete   %dil
xor    %eax,%eax
call   1030 <assert@plt>
xor    %eax,%eax
pop    %rcx
ret

LLVM IR (-O0):
@.str = [2 x i8] c"I\00"
@.str.1 = [3 x i8] c"II\00"
@.str.2 = [4 x i8] c"III\00"
@.str.3 = [3 x i8] c"IV\00"
@.str.4 = [2 x i8] c"V\00"
@.str.5 = [3 x i8] c"VI\00"
@.str.6 = [4 x i8] c"VII\00"
@.str.7 = [5 x i8] c"VIII\00"
@.str.8 = [3 x i8] c"IX\00"
@.str.9 = [2 x i8] c"X\00"
@.str.10 = [3 x i8] c"XI\00"
@.str.11 = [4 x i8] c"XII\00"
@.str.12 = [5 x i8] c"XIII\00"
@.str.13 = [4 x i8] c"XIV\00"
@.str.14 = [3 x i8] c"XV\00"
@.str.15 = [4 x i8] c"XVI\00"
@.str.16 = [5 x i8] c"XVII\00"
@.str.17 = [6 x i8] c"XVIII\00"
@.str.18 = [4 x i8] c"XIX\00"
@.str.19 = [3 x i8] c"XX\00"
@.str.20 = [4 x i8] c"XXI\00"
@.str.21 = [5 x i8] c"XXII\00"
@.str.22 = [6 x i8] c"XXIII\00"
@.str.23 = [5 x i8] c"XXIV\00"
@.str.24 = [4 x i8] c"XXV\00"
@.str.25 = [5 x i8] c"XXVI\00"
@.str.26 = [6 x i8] c"XXVII\00"
@.str.27 = [7 x i8] c"XXVIII\00"
@.str.28 = [5 x i8] c"XXIX\00"
@.str.29 = [4 x i8] c"XXX\00"
@.str.30 = [5 x i8] c"XXXI\00"
@.str.31 = [6 x i8] c"XXXII\00"
@.str.32 = [7 x i8] c"XXXIII\00"
@.str.33 = [6 x i8] c"XXXIV\00"
@.str.34 = [5 x i8] c"XXXV\00"
@.str.35 = [6 x i8] c"XXXVI\00"
@.str.36 = [7 x i8] c"XXXVII\00"
@.str.37 = [8 x i8] c"XXXVIII\00"
@.str.38 = [6 x i8] c"XXXIX\00"
@.str.39 = [3 x i8] c"XL\00"
@.str.40 = [4 x i8] c"XLI\00"
@.str.41 = [5 x i8] c"XLII\00"
@.str.42 = [6 x i8] c"XLIII\00"
@.str.43 = [5 x i8] c"XLIV\00"
@.str.44 = [4 x i8] c"XLV\00"
@.str.45 = [5 x i8] c"XLVI\00"
@.str.46 = [6 x i8] c"XLVII\00"
@.str.47 = [7 x i8] c"XLVIII\00"
@.str.48 = [5 x i8] c"XLIX\00"
@.str.49 = [2 x i8] c"L\00"
@.str.50 = [3 x i8] c"LI\00"
@.str.51 = [4 x i8] c"LII\00"
@.str.52 = [5 x i8] c"LIII\00"
@.str.53 = [4 x i8] c"LIV\00"
@.str.54 = [3 x i8] c"LV\00"
@.str.55 = [4 x i8] c"LVI\00"
@.str.56 = [5 x i8] c"LVII\00"
@.str.57 = [6 x i8] c"LVIII\00"
@.str.58 = [4 x i8] c"LIX\00"
@.str.59 = [3 x i8] c"LX\00"
@.str.60 = [4 x i8] c"LXI\00"
@.str.61 = [5 x i8] c"LXII\00"
@.str.62 = [6 x i8] c"LXIII\00"
@.str.63 = [5 x i8] c"LXIV\00"
@.str.64 = [4 x i8] c"LXV\00"
@.str.65 = [5 x i8] c"LXVI\00"
@.str.66 = [6 x i8] c"LXVII\00"
@.str.67 = [7 x i8] c"LXVIII\00"
@.str.68 = [5 x i8] c"LXIX\00"
@.str.69 = [4 x i8] c"LXX\00"
@.str.70 = [5 x i8] c"LXXI\00"
@.str.71 = [6 x i8] c"LXXII\00"
@.str.72 = [7 x i8] c"LXXIII\00"
@.str.73 = [6 x i8] c"LXXIV\00"
@.str.74 = [5 x i8] c"LXXV\00"
@.str.75 = [6 x i8] c"LXXVI\00"
@.str.76 = [7 x i8] c"LXXVII\00"
@.str.77 = [8 x i8] c"LXXVIII\00"
@.str.78 = [6 x i8] c"LXXIX\00"
@.str.79 = [5 x i8] c"LXXX\00"
@.str.80 = [6 x i8] c"LXXXI\00"
@.str.81 = [7 x i8] c"LXXXII\00"
@.str.82 = [8 x i8] c"LXXXIII\00"
@.str.83 = [7 x i8] c"LXXXIV\00"
@.str.84 = [6 x i8] c"LXXXV\00"
@.str.85 = [7 x i8] c"LXXXVI\00"
@.str.86 = [8 x i8] c"LXXXVII\00"
@.str.87 = [9 x i8] c"LXXXVIII\00"
@.str.88 = [7 x i8] c"LXXXIX\00"
@.str.89 = [3 x i8] c"XC\00"
@.str.90 = [4 x i8] c"XCI\00"
@.str.91 = [5 x i8] c"XCII\00"
@.str.92 = [6 x i8] c"XCIII\00"
@.str.93 = [5 x i8] c"XCIV\00"
@.str.94 = [4 x i8] c"XCV\00"
@.str.95 = [5 x i8] c"XCVI\00"
@.str.96 = [6 x i8] c"XCVII\00"
@.str.97 = [7 x i8] c"XCVIII\00"
@.str.98 = [5 x i8] c"XCIX\00"
@.str.99 = [2 x i8] c"C\00"
@.str.100 = [8 x i8] c"MCMXCIV\00"
define i32 @main(i32 %0, i8** %1) {
%3 = alloca i32
%4 = alloca i32
%5 = alloca i8**
store i32 0, i32* %3
store i32 %0, i32* %4
store i8** %1, i8*** %5
%6 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%7 = icmp eq i32 %6, 1
%8 = zext i1 %7 to i32
%9 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %8)
%10 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
%11 = icmp eq i32 %10, 2
%12 = zext i1 %11 to i32
%13 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %12)
%14 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%15 = icmp eq i32 %14, 3
%16 = zext i1 %15 to i32
%17 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %16)
%18 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%19 = icmp eq i32 %18, 4
%20 = zext i1 %19 to i32
%21 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %20)
%22 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%23 = icmp eq i32 %22, 5
%24 = zext i1 %23 to i32
%25 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %24)
%26 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
%27 = icmp eq i32 %26, 6
%28 = zext i1 %27 to i32
%29 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %28)
%30 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%31 = icmp eq i32 %30, 7
%32 = zext i1 %31 to i32
%33 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %32)
%34 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%35 = icmp eq i32 %34, 8
%36 = zext i1 %35 to i32
%37 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %36)
%38 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0))
%39 = icmp eq i32 %38, 9
%40 = zext i1 %39 to i32
%41 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %40)
%42 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0))
%43 = icmp eq i32 %42, 10
%44 = zext i1 %43 to i32
%45 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %44)
%46 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%47 = icmp eq i32 %46, 11
%48 = zext i1 %47 to i32
%49 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %48)
%50 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%51 = icmp eq i32 %50, 12
%52 = zext i1 %51 to i32
%53 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %52)
%54 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%55 = icmp eq i32 %54, 13
%56 = zext i1 %55 to i32
%57 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %56)
%58 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%59 = icmp eq i32 %58, 14
%60 = zext i1 %59 to i32
%61 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %60)
%62 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
%63 = icmp eq i32 %62, 15
%64 = zext i1 %63 to i32
%65 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %64)
%66 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%67 = icmp eq i32 %66, 16
%68 = zext i1 %67 to i32
%69 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %68)
%70 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%71 = icmp eq i32 %70, 17
%72 = zext i1 %71 to i32
%73 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %72)
%74 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
%75 = icmp eq i32 %74, 18
%76 = zext i1 %75 to i32
%77 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %76)
%78 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%79 = icmp eq i32 %78, 19
%80 = zext i1 %79 to i32
%81 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %80)
%82 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i64 0, i64 0))
%83 = icmp eq i32 %82, 20
%84 = zext i1 %83 to i32
%85 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %84)
%86 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%87 = icmp eq i32 %86, 21
%88 = zext i1 %87 to i32
%89 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %88)
%90 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0))
%91 = icmp eq i32 %90, 22
%92 = zext i1 %91 to i32
%93 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %92)
%94 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0))
%95 = icmp eq i32 %94, 23
%96 = zext i1 %95 to i32
%97 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %96)
%98 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0))
%99 = icmp eq i32 %98, 24
%100 = zext i1 %99 to i32
%101 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %100)
%102 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%103 = icmp eq i32 %102, 25
%104 = zext i1 %103 to i32
%105 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %104)
%106 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0))
%107 = icmp eq i32 %106, 26
%108 = zext i1 %107 to i32
%109 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %108)
%110 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0))
%111 = icmp eq i32 %110, 27
%112 = zext i1 %111 to i32
%113 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %112)
%114 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0))
%115 = icmp eq i32 %114, 28
%116 = zext i1 %115 to i32
%117 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %116)
%118 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0))
%119 = icmp eq i32 %118, 29
%120 = zext i1 %119 to i32
%121 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %120)
%122 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%123 = icmp eq i32 %122, 30
%124 = zext i1 %123 to i32
%125 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %124)
%126 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0))
%127 = icmp eq i32 %126, 31
%128 = zext i1 %127 to i32
%129 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %128)
%130 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0))
%131 = icmp eq i32 %130, 32
%132 = zext i1 %131 to i32
%133 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %132)
%134 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.32, i64 0, i64 0))
%135 = icmp eq i32 %134, 33
%136 = zext i1 %135 to i32
%137 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %136)
%138 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.33, i64 0, i64 0))
%139 = icmp eq i32 %138, 34
%140 = zext i1 %139 to i32
%141 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %140)
%142 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.34, i64 0, i64 0))
%143 = icmp eq i32 %142, 35
%144 = zext i1 %143 to i32
%145 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %144)
%146 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0))
%147 = icmp eq i32 %146, 36
%148 = zext i1 %147 to i32
%149 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %148)
%150 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.36, i64 0, i64 0))
%151 = icmp eq i32 %150, 37
%152 = zext i1 %151 to i32
%153 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %152)
%154 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i64 0, i64 0))
%155 = icmp eq i32 %154, 38
%156 = zext i1 %155 to i32
%157 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %156)
%158 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i64 0, i64 0))
%159 = icmp eq i32 %158, 39
%160 = zext i1 %159 to i32
%161 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %160)
%162 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.39, i64 0, i64 0))
%163 = icmp eq i32 %162, 40
%164 = zext i1 %163 to i32
%165 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %164)
%166 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%167 = icmp eq i32 %166, 41
%168 = zext i1 %167 to i32
%169 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %168)
%170 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0))
%171 = icmp eq i32 %170, 42
%172 = zext i1 %171 to i32
%173 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %172)
%174 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i64 0, i64 0))
%175 = icmp eq i32 %174, 43
%176 = zext i1 %175 to i32
%177 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %176)
%178 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0))
%179 = icmp eq i32 %178, 44
%180 = zext i1 %179 to i32
%181 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %180)
%182 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%183 = icmp eq i32 %182, 45
%184 = zext i1 %183 to i32
%185 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %184)
%186 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.45, i64 0, i64 0))
%187 = icmp eq i32 %186, 46
%188 = zext i1 %187 to i32
%189 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %188)
%190 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0))
%191 = icmp eq i32 %190, 47
%192 = zext i1 %191 to i32
%193 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %192)
%194 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.47, i64 0, i64 0))
%195 = icmp eq i32 %194, 48
%196 = zext i1 %195 to i32
%197 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %196)
%198 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0))
%199 = icmp eq i32 %198, 49
%200 = zext i1 %199 to i32
%201 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %200)
%202 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.49, i64 0, i64 0))
%203 = icmp eq i32 %202, 50
%204 = zext i1 %203 to i32
%205 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %204)
%206 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.50, i64 0, i64 0))
%207 = icmp eq i32 %206, 51
%208 = zext i1 %207 to i32
%209 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %208)
%210 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%211 = icmp eq i32 %210, 52
%212 = zext i1 %211 to i32
%213 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %212)
%214 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.52, i64 0, i64 0))
%215 = icmp eq i32 %214, 53
%216 = zext i1 %215 to i32
%217 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %216)
%218 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%219 = icmp eq i32 %218, 54
%220 = zext i1 %219 to i32
%221 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %220)
%222 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.54, i64 0, i64 0))
%223 = icmp eq i32 %222, 55
%224 = zext i1 %223 to i32
%225 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %224)
%226 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%227 = icmp eq i32 %226, 56
%228 = zext i1 %227 to i32
%229 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %228)
%230 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0))
%231 = icmp eq i32 %230, 57
%232 = zext i1 %231 to i32
%233 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %232)
%234 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.57, i64 0, i64 0))
%235 = icmp eq i32 %234, 58
%236 = zext i1 %235 to i32
%237 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %236)
%238 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%239 = icmp eq i32 %238, 59
%240 = zext i1 %239 to i32
%241 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %240)
%242 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.59, i64 0, i64 0))
%243 = icmp eq i32 %242, 60
%244 = zext i1 %243 to i32
%245 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %244)
%246 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%247 = icmp eq i32 %246, 61
%248 = zext i1 %247 to i32
%249 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %248)
%250 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0))
%251 = icmp eq i32 %250, 62
%252 = zext i1 %251 to i32
%253 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %252)
%254 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.62, i64 0, i64 0))
%255 = icmp eq i32 %254, 63
%256 = zext i1 %255 to i32
%257 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %256)
%258 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0))
%259 = icmp eq i32 %258, 64
%260 = zext i1 %259 to i32
%261 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %260)
%262 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.64, i64 0, i64 0))
%263 = icmp eq i32 %262, 65
%264 = zext i1 %263 to i32
%265 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %264)
%266 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0))
%267 = icmp eq i32 %266, 66
%268 = zext i1 %267 to i32
%269 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %268)
%270 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i64 0, i64 0))
%271 = icmp eq i32 %270, 67
%272 = zext i1 %271 to i32
%273 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %272)
%274 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.67, i64 0, i64 0))
%275 = icmp eq i32 %274, 68
%276 = zext i1 %275 to i32
%277 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %276)
%278 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.68, i64 0, i64 0))
%279 = icmp eq i32 %278, 69
%280 = zext i1 %279 to i32
%281 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %280)
%282 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.69, i64 0, i64 0))
%283 = icmp eq i32 %282, 70
%284 = zext i1 %283 to i32
%285 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %284)
%286 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i64 0, i64 0))
%287 = icmp eq i32 %286, 71
%288 = zext i1 %287 to i32
%289 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %288)
%290 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.71, i64 0, i64 0))
%291 = icmp eq i32 %290, 72
%292 = zext i1 %291 to i32
%293 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %292)
%294 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.72, i64 0, i64 0))
%295 = icmp eq i32 %294, 73
%296 = zext i1 %295 to i32
%297 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %296)
%298 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.73, i64 0, i64 0))
%299 = icmp eq i32 %298, 74
%300 = zext i1 %299 to i32
%301 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %300)
%302 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.74, i64 0, i64 0))
%303 = icmp eq i32 %302, 75
%304 = zext i1 %303 to i32
%305 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %304)
%306 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0))
%307 = icmp eq i32 %306, 76
%308 = zext i1 %307 to i32
%309 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %308)
%310 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.76, i64 0, i64 0))
%311 = icmp eq i32 %310, 77
%312 = zext i1 %311 to i32
%313 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %312)
%314 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.77, i64 0, i64 0))
%315 = icmp eq i32 %314, 78
%316 = zext i1 %315 to i32
%317 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %316)
%318 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.78, i64 0, i64 0))
%319 = icmp eq i32 %318, 79
%320 = zext i1 %319 to i32
%321 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %320)
%322 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.79, i64 0, i64 0))
%323 = icmp eq i32 %322, 80
%324 = zext i1 %323 to i32
%325 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %324)
%326 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.80, i64 0, i64 0))
%327 = icmp eq i32 %326, 81
%328 = zext i1 %327 to i32
%329 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %328)
%330 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.81, i64 0, i64 0))
%331 = icmp eq i32 %330, 82
%332 = zext i1 %331 to i32
%333 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %332)
%334 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.82, i64 0, i64 0))
%335 = icmp eq i32 %334, 83
%336 = zext i1 %335 to i32
%337 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %336)
%338 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.83, i64 0, i64 0))
%339 = icmp eq i32 %338, 84
%340 = zext i1 %339 to i32
%341 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %340)
%342 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.84, i64 0, i64 0))
%343 = icmp eq i32 %342, 85
%344 = zext i1 %343 to i32
%345 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %344)
%346 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.85, i64 0, i64 0))
%347 = icmp eq i32 %346, 86
%348 = zext i1 %347 to i32
%349 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %348)
%350 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.86, i64 0, i64 0))
%351 = icmp eq i32 %350, 87
%352 = zext i1 %351 to i32
%353 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %352)
%354 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.87, i64 0, i64 0))
%355 = icmp eq i32 %354, 88
%356 = zext i1 %355 to i32
%357 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %356)
%358 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.88, i64 0, i64 0))
%359 = icmp eq i32 %358, 89
%360 = zext i1 %359 to i32
%361 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %360)
%362 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.89, i64 0, i64 0))
%363 = icmp eq i32 %362, 90
%364 = zext i1 %363 to i32
%365 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %364)
%366 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.90, i64 0, i64 0))
%367 = icmp eq i32 %366, 91
%368 = zext i1 %367 to i32
%369 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %368)
%370 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.91, i64 0, i64 0))
%371 = icmp eq i32 %370, 92
%372 = zext i1 %371 to i32
%373 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %372)
%374 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.92, i64 0, i64 0))
%375 = icmp eq i32 %374, 93
%376 = zext i1 %375 to i32
%377 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %376)
%378 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.93, i64 0, i64 0))
%379 = icmp eq i32 %378, 94
%380 = zext i1 %379 to i32
%381 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %380)
%382 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0))
%383 = icmp eq i32 %382, 95
%384 = zext i1 %383 to i32
%385 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %384)
%386 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.95, i64 0, i64 0))
%387 = icmp eq i32 %386, 96
%388 = zext i1 %387 to i32
%389 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %388)
%390 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.96, i64 0, i64 0))
%391 = icmp eq i32 %390, 97
%392 = zext i1 %391 to i32
%393 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %392)
%394 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.97, i64 0, i64 0))
%395 = icmp eq i32 %394, 98
%396 = zext i1 %395 to i32
%397 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %396)
%398 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.98, i64 0, i64 0))
%399 = icmp eq i32 %398, 99
%400 = zext i1 %399 to i32
%401 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %400)
%402 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.99, i64 0, i64 0))
%403 = icmp eq i32 %402, 100
%404 = zext i1 %403 to i32
%405 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %404)
%406 = call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.100, i64 0, i64 0))
%407 = icmp eq i32 %406, 1994
%408 = zext i1 %407 to i32
%409 = call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %408)
ret i32 0
}

LLVM IR (-O2):
@.str = [2 x i8] c"I\00"
@.str.1 = [3 x i8] c"II\00"
@.str.2 = [4 x i8] c"III\00"
@.str.3 = [3 x i8] c"IV\00"
@.str.4 = [2 x i8] c"V\00"
@.str.5 = [3 x i8] c"VI\00"
@.str.6 = [4 x i8] c"VII\00"
@.str.7 = [5 x i8] c"VIII\00"
@.str.8 = [3 x i8] c"IX\00"
@.str.9 = [2 x i8] c"X\00"
@.str.10 = [3 x i8] c"XI\00"
@.str.11 = [4 x i8] c"XII\00"
@.str.12 = [5 x i8] c"XIII\00"
@.str.13 = [4 x i8] c"XIV\00"
@.str.14 = [3 x i8] c"XV\00"
@.str.15 = [4 x i8] c"XVI\00"
@.str.16 = [5 x i8] c"XVII\00"
@.str.17 = [6 x i8] c"XVIII\00"
@.str.18 = [4 x i8] c"XIX\00"
@.str.19 = [3 x i8] c"XX\00"
@.str.20 = [4 x i8] c"XXI\00"
@.str.21 = [5 x i8] c"XXII\00"
@.str.22 = [6 x i8] c"XXIII\00"
@.str.23 = [5 x i8] c"XXIV\00"
@.str.24 = [4 x i8] c"XXV\00"
@.str.25 = [5 x i8] c"XXVI\00"
@.str.26 = [6 x i8] c"XXVII\00"
@.str.27 = [7 x i8] c"XXVIII\00"
@.str.28 = [5 x i8] c"XXIX\00"
@.str.29 = [4 x i8] c"XXX\00"
@.str.30 = [5 x i8] c"XXXI\00"
@.str.31 = [6 x i8] c"XXXII\00"
@.str.32 = [7 x i8] c"XXXIII\00"
@.str.33 = [6 x i8] c"XXXIV\00"
@.str.34 = [5 x i8] c"XXXV\00"
@.str.35 = [6 x i8] c"XXXVI\00"
@.str.36 = [7 x i8] c"XXXVII\00"
@.str.37 = [8 x i8] c"XXXVIII\00"
@.str.38 = [6 x i8] c"XXXIX\00"
@.str.39 = [3 x i8] c"XL\00"
@.str.40 = [4 x i8] c"XLI\00"
@.str.41 = [5 x i8] c"XLII\00"
@.str.42 = [6 x i8] c"XLIII\00"
@.str.43 = [5 x i8] c"XLIV\00"
@.str.44 = [4 x i8] c"XLV\00"
@.str.45 = [5 x i8] c"XLVI\00"
@.str.46 = [6 x i8] c"XLVII\00"
@.str.47 = [7 x i8] c"XLVIII\00"
@.str.48 = [5 x i8] c"XLIX\00"
@.str.49 = [2 x i8] c"L\00"
@.str.50 = [3 x i8] c"LI\00"
@.str.51 = [4 x i8] c"LII\00"
@.str.52 = [5 x i8] c"LIII\00"
@.str.53 = [4 x i8] c"LIV\00"
@.str.54 = [3 x i8] c"LV\00"
@.str.55 = [4 x i8] c"LVI\00"
@.str.56 = [5 x i8] c"LVII\00"
@.str.57 = [6 x i8] c"LVIII\00"
@.str.58 = [4 x i8] c"LIX\00"
@.str.59 = [3 x i8] c"LX\00"
@.str.60 = [4 x i8] c"LXI\00"
@.str.61 = [5 x i8] c"LXII\00"
@.str.62 = [6 x i8] c"LXIII\00"
@.str.63 = [5 x i8] c"LXIV\00"
@.str.64 = [4 x i8] c"LXV\00"
@.str.65 = [5 x i8] c"LXVI\00"
@.str.66 = [6 x i8] c"LXVII\00"
@.str.67 = [7 x i8] c"LXVIII\00"
@.str.68 = [5 x i8] c"LXIX\00"
@.str.69 = [4 x i8] c"LXX\00"
@.str.70 = [5 x i8] c"LXXI\00"
@.str.71 = [6 x i8] c"LXXII\00"
@.str.72 = [7 x i8] c"LXXIII\00"
@.str.73 = [6 x i8] c"LXXIV\00"
@.str.74 = [5 x i8] c"LXXV\00"
@.str.75 = [6 x i8] c"LXXVI\00"
@.str.76 = [7 x i8] c"LXXVII\00"
@.str.77 = [8 x i8] c"LXXVIII\00"
@.str.78 = [6 x i8] c"LXXIX\00"
@.str.79 = [5 x i8] c"LXXX\00"
@.str.80 = [6 x i8] c"LXXXI\00"
@.str.81 = [7 x i8] c"LXXXII\00"
@.str.82 = [8 x i8] c"LXXXIII\00"
@.str.83 = [7 x i8] c"LXXXIV\00"
@.str.84 = [6 x i8] c"LXXXV\00"
@.str.85 = [7 x i8] c"LXXXVI\00"
@.str.86 = [8 x i8] c"LXXXVII\00"
@.str.87 = [9 x i8] c"LXXXVIII\00"
@.str.88 = [7 x i8] c"LXXXIX\00"
@.str.89 = [3 x i8] c"XC\00"
@.str.90 = [4 x i8] c"XCI\00"
@.str.91 = [5 x i8] c"XCII\00"
@.str.92 = [6 x i8] c"XCIII\00"
@.str.93 = [5 x i8] c"XCIV\00"
@.str.94 = [4 x i8] c"XCV\00"
@.str.95 = [5 x i8] c"XCVI\00"
@.str.96 = [6 x i8] c"XCVII\00"
@.str.97 = [7 x i8] c"XCVIII\00"
@.str.98 = [5 x i8] c"XCIX\00"
@.str.99 = [2 x i8] c"C\00"
@.str.100 = [8 x i8] c"MCMXCIV\00"
define i32 @main(i32 %0, i8** nocapture readnone %1) {
%3 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str, i64 0, i64 0))
%4 = icmp eq i32 %3, 1
%5 = zext i1 %4 to i32
%6 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %5)
%7 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.1, i64 0, i64 0))
%8 = icmp eq i32 %7, 2
%9 = zext i1 %8 to i32
%10 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %9)
%11 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.2, i64 0, i64 0))
%12 = icmp eq i32 %11, 3
%13 = zext i1 %12 to i32
%14 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %13)
%15 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.3, i64 0, i64 0))
%16 = icmp eq i32 %15, 4
%17 = zext i1 %16 to i32
%18 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %17)
%19 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.4, i64 0, i64 0))
%20 = icmp eq i32 %19, 5
%21 = zext i1 %20 to i32
%22 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %21)
%23 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.5, i64 0, i64 0))
%24 = icmp eq i32 %23, 6
%25 = zext i1 %24 to i32
%26 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %25)
%27 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.6, i64 0, i64 0))
%28 = icmp eq i32 %27, 7
%29 = zext i1 %28 to i32
%30 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %29)
%31 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.7, i64 0, i64 0))
%32 = icmp eq i32 %31, 8
%33 = zext i1 %32 to i32
%34 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %33)
%35 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.8, i64 0, i64 0))
%36 = icmp eq i32 %35, 9
%37 = zext i1 %36 to i32
%38 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %37)
%39 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.9, i64 0, i64 0))
%40 = icmp eq i32 %39, 10
%41 = zext i1 %40 to i32
%42 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %41)
%43 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.10, i64 0, i64 0))
%44 = icmp eq i32 %43, 11
%45 = zext i1 %44 to i32
%46 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %45)
%47 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.11, i64 0, i64 0))
%48 = icmp eq i32 %47, 12
%49 = zext i1 %48 to i32
%50 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %49)
%51 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0))
%52 = icmp eq i32 %51, 13
%53 = zext i1 %52 to i32
%54 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %53)
%55 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.13, i64 0, i64 0))
%56 = icmp eq i32 %55, 14
%57 = zext i1 %56 to i32
%58 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %57)
%59 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.14, i64 0, i64 0))
%60 = icmp eq i32 %59, 15
%61 = zext i1 %60 to i32
%62 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %61)
%63 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.15, i64 0, i64 0))
%64 = icmp eq i32 %63, 16
%65 = zext i1 %64 to i32
%66 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %65)
%67 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.16, i64 0, i64 0))
%68 = icmp eq i32 %67, 17
%69 = zext i1 %68 to i32
%70 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %69)
%71 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0))
%72 = icmp eq i32 %71, 18
%73 = zext i1 %72 to i32
%74 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %73)
%75 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.18, i64 0, i64 0))
%76 = icmp eq i32 %75, 19
%77 = zext i1 %76 to i32
%78 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %77)
%79 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.19, i64 0, i64 0))
%80 = icmp eq i32 %79, 20
%81 = zext i1 %80 to i32
%82 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %81)
%83 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.20, i64 0, i64 0))
%84 = icmp eq i32 %83, 21
%85 = zext i1 %84 to i32
%86 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %85)
%87 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.21, i64 0, i64 0))
%88 = icmp eq i32 %87, 22
%89 = zext i1 %88 to i32
%90 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %89)
%91 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.22, i64 0, i64 0))
%92 = icmp eq i32 %91, 23
%93 = zext i1 %92 to i32
%94 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %93)
%95 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.23, i64 0, i64 0))
%96 = icmp eq i32 %95, 24
%97 = zext i1 %96 to i32
%98 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %97)
%99 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.24, i64 0, i64 0))
%100 = icmp eq i32 %99, 25
%101 = zext i1 %100 to i32
%102 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %101)
%103 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.25, i64 0, i64 0))
%104 = icmp eq i32 %103, 26
%105 = zext i1 %104 to i32
%106 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %105)
%107 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.26, i64 0, i64 0))
%108 = icmp eq i32 %107, 27
%109 = zext i1 %108 to i32
%110 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %109)
%111 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.27, i64 0, i64 0))
%112 = icmp eq i32 %111, 28
%113 = zext i1 %112 to i32
%114 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %113)
%115 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.28, i64 0, i64 0))
%116 = icmp eq i32 %115, 29
%117 = zext i1 %116 to i32
%118 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %117)
%119 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.29, i64 0, i64 0))
%120 = icmp eq i32 %119, 30
%121 = zext i1 %120 to i32
%122 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %121)
%123 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.30, i64 0, i64 0))
%124 = icmp eq i32 %123, 31
%125 = zext i1 %124 to i32
%126 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %125)
%127 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.31, i64 0, i64 0))
%128 = icmp eq i32 %127, 32
%129 = zext i1 %128 to i32
%130 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %129)
%131 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.32, i64 0, i64 0))
%132 = icmp eq i32 %131, 33
%133 = zext i1 %132 to i32
%134 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %133)
%135 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.33, i64 0, i64 0))
%136 = icmp eq i32 %135, 34
%137 = zext i1 %136 to i32
%138 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %137)
%139 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.34, i64 0, i64 0))
%140 = icmp eq i32 %139, 35
%141 = zext i1 %140 to i32
%142 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %141)
%143 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.35, i64 0, i64 0))
%144 = icmp eq i32 %143, 36
%145 = zext i1 %144 to i32
%146 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %145)
%147 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.36, i64 0, i64 0))
%148 = icmp eq i32 %147, 37
%149 = zext i1 %148 to i32
%150 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %149)
%151 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.37, i64 0, i64 0))
%152 = icmp eq i32 %151, 38
%153 = zext i1 %152 to i32
%154 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %153)
%155 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.38, i64 0, i64 0))
%156 = icmp eq i32 %155, 39
%157 = zext i1 %156 to i32
%158 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %157)
%159 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.39, i64 0, i64 0))
%160 = icmp eq i32 %159, 40
%161 = zext i1 %160 to i32
%162 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %161)
%163 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.40, i64 0, i64 0))
%164 = icmp eq i32 %163, 41
%165 = zext i1 %164 to i32
%166 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %165)
%167 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.41, i64 0, i64 0))
%168 = icmp eq i32 %167, 42
%169 = zext i1 %168 to i32
%170 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %169)
%171 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.42, i64 0, i64 0))
%172 = icmp eq i32 %171, 43
%173 = zext i1 %172 to i32
%174 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %173)
%175 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.43, i64 0, i64 0))
%176 = icmp eq i32 %175, 44
%177 = zext i1 %176 to i32
%178 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %177)
%179 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.44, i64 0, i64 0))
%180 = icmp eq i32 %179, 45
%181 = zext i1 %180 to i32
%182 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %181)
%183 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.45, i64 0, i64 0))
%184 = icmp eq i32 %183, 46
%185 = zext i1 %184 to i32
%186 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %185)
%187 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.46, i64 0, i64 0))
%188 = icmp eq i32 %187, 47
%189 = zext i1 %188 to i32
%190 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %189)
%191 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.47, i64 0, i64 0))
%192 = icmp eq i32 %191, 48
%193 = zext i1 %192 to i32
%194 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %193)
%195 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.48, i64 0, i64 0))
%196 = icmp eq i32 %195, 49
%197 = zext i1 %196 to i32
%198 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %197)
%199 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.49, i64 0, i64 0))
%200 = icmp eq i32 %199, 50
%201 = zext i1 %200 to i32
%202 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %201)
%203 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.50, i64 0, i64 0))
%204 = icmp eq i32 %203, 51
%205 = zext i1 %204 to i32
%206 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %205)
%207 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.51, i64 0, i64 0))
%208 = icmp eq i32 %207, 52
%209 = zext i1 %208 to i32
%210 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %209)
%211 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.52, i64 0, i64 0))
%212 = icmp eq i32 %211, 53
%213 = zext i1 %212 to i32
%214 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %213)
%215 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.53, i64 0, i64 0))
%216 = icmp eq i32 %215, 54
%217 = zext i1 %216 to i32
%218 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %217)
%219 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.54, i64 0, i64 0))
%220 = icmp eq i32 %219, 55
%221 = zext i1 %220 to i32
%222 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %221)
%223 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.55, i64 0, i64 0))
%224 = icmp eq i32 %223, 56
%225 = zext i1 %224 to i32
%226 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %225)
%227 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.56, i64 0, i64 0))
%228 = icmp eq i32 %227, 57
%229 = zext i1 %228 to i32
%230 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %229)
%231 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.57, i64 0, i64 0))
%232 = icmp eq i32 %231, 58
%233 = zext i1 %232 to i32
%234 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %233)
%235 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.58, i64 0, i64 0))
%236 = icmp eq i32 %235, 59
%237 = zext i1 %236 to i32
%238 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %237)
%239 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.59, i64 0, i64 0))
%240 = icmp eq i32 %239, 60
%241 = zext i1 %240 to i32
%242 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %241)
%243 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.60, i64 0, i64 0))
%244 = icmp eq i32 %243, 61
%245 = zext i1 %244 to i32
%246 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %245)
%247 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.61, i64 0, i64 0))
%248 = icmp eq i32 %247, 62
%249 = zext i1 %248 to i32
%250 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %249)
%251 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.62, i64 0, i64 0))
%252 = icmp eq i32 %251, 63
%253 = zext i1 %252 to i32
%254 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %253)
%255 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.63, i64 0, i64 0))
%256 = icmp eq i32 %255, 64
%257 = zext i1 %256 to i32
%258 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %257)
%259 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.64, i64 0, i64 0))
%260 = icmp eq i32 %259, 65
%261 = zext i1 %260 to i32
%262 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %261)
%263 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.65, i64 0, i64 0))
%264 = icmp eq i32 %263, 66
%265 = zext i1 %264 to i32
%266 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %265)
%267 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.66, i64 0, i64 0))
%268 = icmp eq i32 %267, 67
%269 = zext i1 %268 to i32
%270 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %269)
%271 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.67, i64 0, i64 0))
%272 = icmp eq i32 %271, 68
%273 = zext i1 %272 to i32
%274 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %273)
%275 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.68, i64 0, i64 0))
%276 = icmp eq i32 %275, 69
%277 = zext i1 %276 to i32
%278 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %277)
%279 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.69, i64 0, i64 0))
%280 = icmp eq i32 %279, 70
%281 = zext i1 %280 to i32
%282 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %281)
%283 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.70, i64 0, i64 0))
%284 = icmp eq i32 %283, 71
%285 = zext i1 %284 to i32
%286 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %285)
%287 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.71, i64 0, i64 0))
%288 = icmp eq i32 %287, 72
%289 = zext i1 %288 to i32
%290 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %289)
%291 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.72, i64 0, i64 0))
%292 = icmp eq i32 %291, 73
%293 = zext i1 %292 to i32
%294 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %293)
%295 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.73, i64 0, i64 0))
%296 = icmp eq i32 %295, 74
%297 = zext i1 %296 to i32
%298 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %297)
%299 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.74, i64 0, i64 0))
%300 = icmp eq i32 %299, 75
%301 = zext i1 %300 to i32
%302 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %301)
%303 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.75, i64 0, i64 0))
%304 = icmp eq i32 %303, 76
%305 = zext i1 %304 to i32
%306 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %305)
%307 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.76, i64 0, i64 0))
%308 = icmp eq i32 %307, 77
%309 = zext i1 %308 to i32
%310 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %309)
%311 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.77, i64 0, i64 0))
%312 = icmp eq i32 %311, 78
%313 = zext i1 %312 to i32
%314 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %313)
%315 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.78, i64 0, i64 0))
%316 = icmp eq i32 %315, 79
%317 = zext i1 %316 to i32
%318 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %317)
%319 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.79, i64 0, i64 0))
%320 = icmp eq i32 %319, 80
%321 = zext i1 %320 to i32
%322 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %321)
%323 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.80, i64 0, i64 0))
%324 = icmp eq i32 %323, 81
%325 = zext i1 %324 to i32
%326 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %325)
%327 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.81, i64 0, i64 0))
%328 = icmp eq i32 %327, 82
%329 = zext i1 %328 to i32
%330 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %329)
%331 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.82, i64 0, i64 0))
%332 = icmp eq i32 %331, 83
%333 = zext i1 %332 to i32
%334 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %333)
%335 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.83, i64 0, i64 0))
%336 = icmp eq i32 %335, 84
%337 = zext i1 %336 to i32
%338 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %337)
%339 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.84, i64 0, i64 0))
%340 = icmp eq i32 %339, 85
%341 = zext i1 %340 to i32
%342 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %341)
%343 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.85, i64 0, i64 0))
%344 = icmp eq i32 %343, 86
%345 = zext i1 %344 to i32
%346 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %345)
%347 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.86, i64 0, i64 0))
%348 = icmp eq i32 %347, 87
%349 = zext i1 %348 to i32
%350 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %349)
%351 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.87, i64 0, i64 0))
%352 = icmp eq i32 %351, 88
%353 = zext i1 %352 to i32
%354 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %353)
%355 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.88, i64 0, i64 0))
%356 = icmp eq i32 %355, 89
%357 = zext i1 %356 to i32
%358 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %357)
%359 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([3 x i8], [3 x i8]* @.str.89, i64 0, i64 0))
%360 = icmp eq i32 %359, 90
%361 = zext i1 %360 to i32
%362 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %361)
%363 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.90, i64 0, i64 0))
%364 = icmp eq i32 %363, 91
%365 = zext i1 %364 to i32
%366 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %365)
%367 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.91, i64 0, i64 0))
%368 = icmp eq i32 %367, 92
%369 = zext i1 %368 to i32
%370 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %369)
%371 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.92, i64 0, i64 0))
%372 = icmp eq i32 %371, 93
%373 = zext i1 %372 to i32
%374 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %373)
%375 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.93, i64 0, i64 0))
%376 = icmp eq i32 %375, 94
%377 = zext i1 %376 to i32
%378 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %377)
%379 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.94, i64 0, i64 0))
%380 = icmp eq i32 %379, 95
%381 = zext i1 %380 to i32
%382 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %381)
%383 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.95, i64 0, i64 0))
%384 = icmp eq i32 %383, 96
%385 = zext i1 %384 to i32
%386 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %385)
%387 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.96, i64 0, i64 0))
%388 = icmp eq i32 %387, 97
%389 = zext i1 %388 to i32
%390 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %389)
%391 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.97, i64 0, i64 0))
%392 = icmp eq i32 %391, 98
%393 = zext i1 %392 to i32
%394 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %393)
%395 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.98, i64 0, i64 0))
%396 = icmp eq i32 %395, 99
%397 = zext i1 %396 to i32
%398 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %397)
%399 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([2 x i8], [2 x i8]* @.str.99, i64 0, i64 0))
%400 = icmp eq i32 %399, 100
%401 = zext i1 %400 to i32
%402 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %401)
%403 = tail call i32 (i8*, ...) bitcast (i32 (...)* @romanToInt to i32 (i8*, ...)*)(i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.100, i64 0, i64 0))
%404 = icmp eq i32 %403, 1994
%405 = zext i1 %404 to i32
%406 = tail call i32 (i32, ...) bitcast (i32 (...)* @assert to i32 (i32, ...)*)(i32 %405)
ret i32 0
}