function [ c ] = mul8_353( a, b )
a = uint16(a);
b = uint16(b);
c = 0;
n0 = bitand(bitshift(a, -0), 1, 'uint16');
n2 = bitand(bitshift(a, -1), 1, 'uint16');
n4 = bitand(bitshift(a, -2), 1, 'uint16');
n6 = bitand(bitshift(a, -3), 1, 'uint16');
n8 = bitand(bitshift(a, -4), 1, 'uint16');
n10 = bitand(bitshift(a, -5), 1, 'uint16');
n12 = bitand(bitshift(a, -6), 1, 'uint16');
n14 = bitand(bitshift(a, -7), 1, 'uint16');
n16 = bitand(bitshift(b, -0), 1, 'uint16');
n18 = bitand(bitshift(b, -1), 1, 'uint16');
n20 = bitand(bitshift(b, -2), 1, 'uint16');
n22 = bitand(bitshift(b, -3), 1, 'uint16');
n24 = bitand(bitshift(b, -4), 1, 'uint16');
n26 = bitand(bitshift(b, -5), 1, 'uint16');
n28 = bitand(bitshift(b, -6), 1, 'uint16');
n30 = bitand(bitshift(b, -7), 1, 'uint16');
n33 = bitcmp(bitor(n18, bitor(n12, n6)));
n34 = bitcmp(bitand(n30, bitand(n20, n14)));
n36 = bitcmp(bitxor(n28, n28));
n38 = bitcmp(bitor(n6, n34));
n39 = bitcmp(bitor(n6, n34));
n40 = bitcmp(bitxor(n12, n12));
n41 = bitcmp(bitxor(n12, n12));
n43 = bitcmp(bitor(n41, bitor(n24, n18)));
n46 = bitcmp(bitand(n18, bitand(n16, n39)));
n49 = bitcmp(bitand(n18, n39));
n50 = bitcmp(bitor(n14, n36));
n52 = bitcmp(bitand(n10, n38));
n53 = bitcmp(bitand(n10, n38));
n54 = bitcmp(bitor(n33, n52));
n58 = bitcmp(bitand(bitor(n10, n52), n43));
n63 = n41;
n69 = bitcmp(bitand(bitor(n33, n50), n6));
n70 = bitcmp(bitor(n14, n63));
n71 = bitcmp(bitor(n14, n63));
n78 = bitcmp(n63);
n79 = bitcmp(n63);
n84 = bitxor(n53, n58);
n86 = n63;
n87 = n63;
n93 = n33;
n99 = bitcmp(bitand(n41, n69));
n105 = n41;
n106 = bitcmp(bitor(bitand(n39, n8), n41));
n110 = bitcmp(n79);
n111 = bitcmp(n79);
n113 = bitcmp(bitand(n41, n87));
n115 = bitxor(n6, n46);
n118 = bitcmp(n71);
n129 = bitor(bitor(bitand(n110, n86), bitand(n86, n115)), bitand(n110, n115));
n133 = bitand(n93, n70);
n134 = bitand(n99, n38);
n137 = bitor(n49, n134);
n169 = bitand(n113, n78);
n185 = bitcmp(bitor(n113, n46));
n193 = bitcmp(n137);
n233 = bitcmp(bitor(n185, n134));
n244 = bitcmp(n129);
n254 = bitand(n14, n18);
n274 = bitcmp(bitand(n40, n134));
n313 = bitcmp(n233);
n329 = n313;
n343 = bitand(n10, n20);
n352 = bitcmp(bitor(n313, n86));
n356 = bitand(n12, n20);
n372 = bitand(n14, n20);
n374 = n43;
n446 = bitand(n8, n22);
n460 = bitand(n10, n22);
n476 = bitand(n12, n22);
n490 = bitand(n14, n22);
n534 = bitand(n4, n70);
n550 = bitand(n6, n24);
n564 = bitand(n8, n24);
n580 = bitand(n10, n24);
n594 = bitand(n12, n24);
n608 = bitand(n14, n24);
n625 = bitand(n0, n26);
n654 = bitand(n4, n84);
n668 = bitand(n6, n26);
n669 = bitand(n6, n26);
n679 = bitcmp(bitand(n111, bitand(n118, n113)));
n682 = bitand(n8, n26);
n691 = bitand(n6, n254);
n698 = bitand(n10, n26);
n712 = bitand(n12, n26);
n728 = bitand(n14, n26);
n729 = bitand(n14, n26);
n756 = bitand(n2, n28);
n786 = bitand(n6, n28);
n802 = bitand(n8, n28);
n816 = bitand(n10, n28);
n832 = bitand(n12, n28);
n846 = bitand(n14, n28);
n876 = bitand(n2, n30);
n890 = bitand(n4, n30);
n906 = bitand(n6, n30);
n920 = bitand(n8, n30);
n934 = bitand(n10, n30);
n950 = bitand(n12, n30);
n964 = bitand(n14, n30);
n1009 = n329;
n1068 = bitxor(bitxor(n134, n54), n343);
n1069 = bitor(bitor(bitand(n134, n54), bitand(n54, n343)), bitand(n134, n343));
n1082 = bitand(n254, n356);
n1098 = bitor(n254, n356);
n1142 = bitor(bitand(n679, n534), bitand(bitcmp(n679), n1069));
n1150 = bitcmp(bitand(n133, n4));
n1156 = bitxor(bitxor(n446, n550), n654);
n1157 = bitor(bitor(bitand(n446, n550), bitand(n550, n654)), bitand(n446, n654));
n1172 = bitxor(bitxor(n460, n564), n668);
n1173 = bitor(bitor(bitand(n460, n564), bitand(n564, n668)), bitand(n460, n668));
n1186 = bitxor(bitxor(n476, n580), n682);
n1187 = bitor(bitor(bitand(n476, n580), bitand(n580, n682)), bitand(n476, n682));
n1202 = bitxor(bitxor(n490, n594), n698);
n1203 = bitor(bitor(bitand(n490, n594), bitand(n594, n698)), bitand(n490, n698));
n1232 = bitxor(n608, n712);
n1233 = bitand(n608, n712);
n1277 = bitor(n625, n1009);
n1320 = bitxor(bitxor(n1068, n1142), n1156);
n1321 = bitor(bitor(bitand(n1068, n1142), bitand(n1142, n1156)), bitand(n1068, n1156));
n1334 = bitxor(bitxor(n1098, n756), n1172);
n1335 = bitor(bitor(bitand(n1098, n756), bitand(n756, n1172)), bitand(n1098, n1172));
n1350 = bitxor(bitxor(n372, n1082), n1186);
n1351 = bitor(bitor(bitand(n372, n1082), bitand(n1082, n1186)), bitand(n372, n1186));
n1394 = bitxor(bitxor(n1157, n374), n876);
n1395 = bitor(bitor(bitand(n1157, n374), bitand(n374, n876)), bitand(n1157, n876));
n1408 = bitxor(bitxor(n1173, n786), n890);
n1409 = bitor(bitor(bitand(n1173, n786), bitand(n786, n890)), bitand(n1173, n890));
n1424 = bitxor(bitxor(n1187, n802), n906);
n1425 = bitor(bitor(bitand(n1187, n802), bitand(n802, n906)), bitand(n1187, n906));
n1438 = bitxor(bitxor(n1203, n816), n920);
n1439 = bitor(bitor(bitand(n1203, n816), bitand(n816, n920)), bitand(n1203, n920));
n1449 = n105;
n1454 = bitxor(bitxor(n1233, n832), n934);
n1455 = bitor(bitor(bitand(n1233, n832), bitand(n832, n934)), bitand(n1233, n934));
n1468 = bitand(n846, n950);
n1482 = bitxor(n846, n950);
n1483 = bitand(n846, n950);
n1528 = bitand(n1449, n1277);
n1556 = bitor(bitand(n1483, n1150), bitand(bitcmp(n1483), n1320));
n1572 = bitxor(bitxor(n1334, n1321), n1394);
n1573 = bitor(bitor(bitand(n1334, n1321), bitand(n1321, n1394)), bitand(n1334, n1394));
n1586 = bitxor(bitxor(n1350, n1335), n1408);
n1587 = bitor(bitor(bitand(n1350, n1335), bitand(n1335, n1408)), bitand(n1350, n1408));
n1602 = bitxor(bitxor(n1202, n1351), n1424);
n1603 = bitor(bitor(bitand(n1202, n1351), bitand(n1351, n1424)), bitand(n1202, n1424));
n1616 = bitand(n1232, n1438);
n1632 = bitxor(n1232, n1438);
n1646 = bitand(n729, n1454);
n1660 = bitxor(n728, n1454);
n1690 = bitor(n1528, n1156);
n1691 = bitor(n1528, n1156);
n1720 = n1556;
n1734 = bitxor(n1572, n106);
n1735 = bitand(n1572, n106);
n1750 = bitxor(bitxor(n1586, n1573), n1395);
n1751 = bitor(bitor(bitand(n1586, n1573), bitand(n1573, n1395)), bitand(n1586, n1395));
n1764 = bitxor(bitxor(n1602, n1587), n1409);
n1765 = bitor(bitor(bitand(n1602, n1587), bitand(n1587, n1409)), bitand(n1602, n1409));
n1780 = bitxor(bitxor(n1632, n1603), n1425);
n1781 = bitor(bitor(bitand(n1632, n1603), bitand(n1603, n1425)), bitand(n1632, n1425));
n1794 = bitxor(bitxor(n1660, n1616), n1439);
n1795 = bitor(bitor(bitand(n1660, n1616), bitand(n1616, n1439)), bitand(n1660, n1439));
n1808 = bitxor(bitxor(n1482, n1646), n1455);
n1809 = bitor(bitor(bitand(n1482, n1646), bitand(n1646, n1455)), bitand(n1482, n1455));
n1824 = bitand(n964, n1468);
n1838 = bitxor(n964, n1468);
n1854 = bitxor(n1690, n244);
n1868 = bitor(n193, n1691);
n1882 = bitor(bitand(n1203, n274), bitand(bitcmp(n1203), n1720));
n1898 = n1734;
n1912 = bitxor(n1750, n1735);
n1928 = bitor(n1764, n1751);
n1942 = bitxor(n1780, n1765);
n1943 = bitand(n1780, n1765);
n1956 = bitxor(bitxor(n1794, n1781), n1943);
n1957 = bitor(bitor(bitand(n1794, n1781), bitand(n1781, n1943)), bitand(n1794, n1943));
n1972 = bitxor(bitxor(n1808, n1795), n1957);
n1973 = bitor(bitor(bitand(n1808, n1795), bitand(n1795, n1957)), bitand(n1808, n1957));
n1986 = bitxor(bitxor(n1838, n1809), n1973);
n1987 = bitor(bitor(bitand(n1838, n1809), bitand(n1809, n1973)), bitand(n1838, n1973));
n2016 = bitor(n1824, n1987);
c = bitor(c, bitshift(bitand(n169, 1), 0));
c = bitor(c, bitshift(bitand(n1750, 1), 1));
c = bitor(c, bitshift(bitand(n691, 1), 2));
c = bitor(c, bitshift(bitand(n352, 1), 3));
c = bitor(c, bitshift(bitand(n669, 1), 4));
c = bitor(c, bitshift(bitand(n1854, 1), 5));
c = bitor(c, bitshift(bitand(n1868, 1), 6));
c = bitor(c, bitshift(bitand(n1882, 1), 7));
c = bitor(c, bitshift(bitand(n1898, 1), 8));
c = bitor(c, bitshift(bitand(n1912, 1), 9));
c = bitor(c, bitshift(bitand(n1928, 1), 10));
c = bitor(c, bitshift(bitand(n1942, 1), 11));
c = bitor(c, bitshift(bitand(n1956, 1), 12));
c = bitor(c, bitshift(bitand(n1972, 1), 13));
c = bitor(c, bitshift(bitand(n1986, 1), 14));
c = bitor(c, bitshift(bitand(n2016, 1), 15));
end