function [ c ] = mul8_022( 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');
n32 = bitand(n18, n14);
n33 = bitand(n18, n14);
n34 = bitcmp(bitand(n26, bitand(n28, n24)));
n37 = bitand(n12, n34);
n38 = bitcmp(bitor(n18, bitor(n34, n26)));
n39 = bitcmp(bitor(n18, bitor(n34, n26)));
n41 = n38;
n43 = bitor(bitand(n18, n6), bitand(bitcmp(n18), n37));
n45 = bitcmp(bitand(n18, bitand(n28, n30)));
n46 = bitcmp(bitand(bitor(n43, n28), n39));
n49 = bitcmp(n41);
n50 = bitcmp(bitand(bitor(n45, n28), n6));
n55 = bitcmp(n49);
n61 = bitcmp(bitand(n18, bitand(n12, n22)));
n62 = bitcmp(n55);
n63 = bitcmp(n55);
n70 = bitcmp(bitor(n61, bitor(n4, n12)));
n72 = bitand(n18, n70);
n73 = bitand(n18, n70);
n81 = bitand(n18, n70);
n82 = bitand(n10, n24);
n83 = bitand(n10, n24);
n84 = bitor(n61, n50);
n89 = bitcmp(bitand(n73, n46));
n93 = bitcmp(bitand(n18, n82));
n99 = bitcmp(n63);
n102 = bitcmp(n63);
n117 = bitcmp(bitor(n81, n62));
n123 = bitcmp(bitor(n117, n84));
n235 = bitand(n10, n102);
n398 = bitand(n99, n16);
n399 = bitand(n99, n16);
n415 = n123;
n449 = bitcmp(n89);
n514 = bitand(n10, n20);
n532 = bitand(n12, n20);
n548 = bitand(n14, n20);
n598 = bitand(n399, n72);
n648 = bitor(n398, n514);
n664 = bitxor(n33, n532);
n682 = bitxor(n415, n548);
n683 = bitand(n415, n548);
n749 = n449;
n764 = bitand(n8, n22);
n782 = bitand(n10, n22);
n798 = bitand(n12, n22);
n814 = bitand(n14, n22);
n815 = bitand(n14, n22);
n898 = bitor(n648, n764);
n914 = bitxor(n664, n782);
n915 = bitand(n664, n782);
n932 = bitxor(bitxor(n682, n798), n915);
n933 = bitor(bitor(bitand(n682, n798), bitand(n798, n915)), bitand(n682, n915));
n948 = bitxor(bitxor(n683, n814), n933);
n949 = bitor(bitor(bitand(n683, n814), bitand(n814, n933)), bitand(n683, n933));
n1014 = bitand(n6, n24);
n1032 = bitand(n8, n24);
n1048 = bitand(n10, n24);
n1064 = bitand(n12, n24);
n1065 = bitand(n12, n24);
n1082 = bitand(n14, n24);
n1148 = bitxor(n898, n1014);
n1164 = bitxor(bitxor(n914, n1032), n815);
n1165 = bitor(bitor(bitand(n914, n1032), bitand(n1032, n815)), bitand(n914, n815));
n1182 = bitxor(bitxor(n932, n1048), n1165);
n1183 = bitor(bitor(bitand(n932, n1048), bitand(n1048, n1165)), bitand(n932, n1165));
n1198 = bitxor(bitxor(n948, n1064), n1183);
n1199 = bitor(bitor(bitand(n948, n1064), bitand(n1064, n1183)), bitand(n948, n1183));
n1214 = bitxor(bitxor(n949, n1082), n1199);
n1215 = bitor(bitor(bitand(n949, n1082), bitand(n1082, n1199)), bitand(n949, n1199));
n1264 = bitand(n4, n26);
n1282 = bitand(n6, n26);
n1298 = bitand(n8, n26);
n1314 = bitand(n10, n26);
n1332 = bitand(n12, n26);
n1348 = bitand(n14, n26);
n1364 = bitcmp(bitxor(n93, n598));
n1399 = bitor(n1148, n1264);
n1414 = bitxor(bitxor(n1164, n1282), n1399);
n1415 = bitor(bitor(bitand(n1164, n1282), bitand(n1282, n1399)), bitand(n1164, n1399));
n1432 = bitxor(bitxor(n1182, n1298), n1415);
n1433 = bitor(bitor(bitand(n1182, n1298), bitand(n1298, n1415)), bitand(n1182, n1415));
n1448 = bitxor(bitxor(n1198, n1314), n1433);
n1449 = bitor(bitor(bitand(n1198, n1314), bitand(n1314, n1433)), bitand(n1198, n1433));
n1464 = bitxor(bitxor(n1214, n1332), n1449);
n1465 = bitor(bitor(bitand(n1214, n1332), bitand(n1332, n1449)), bitand(n1214, n1449));
n1482 = bitxor(bitxor(n1215, n1348), n1465);
n1483 = bitor(bitor(bitand(n1215, n1348), bitand(n1348, n1465)), bitand(n1215, n1465));
n1532 = bitand(n4, n28);
n1548 = bitand(n6, n28);
n1564 = bitand(n8, n28);
n1582 = bitand(n10, n28);
n1598 = bitand(n12, n28);
n1614 = bitand(n14, n28);
n1632 = n1065;
n1664 = bitxor(n1414, n1532);
n1665 = bitand(n1414, n1532);
n1682 = bitxor(bitxor(n1432, n1548), n1665);
n1683 = bitor(bitor(bitand(n1432, n1548), bitand(n1548, n1665)), bitand(n1432, n1665));
n1698 = bitxor(bitxor(n1448, n1564), n1683);
n1699 = bitor(bitor(bitand(n1448, n1564), bitand(n1564, n1683)), bitand(n1448, n1683));
n1714 = bitxor(bitxor(n1464, n1582), n1699);
n1715 = bitor(bitor(bitand(n1464, n1582), bitand(n1582, n1699)), bitand(n1464, n1699));
n1732 = bitxor(bitxor(n1482, n1598), n1715);
n1733 = bitor(bitor(bitand(n1482, n1598), bitand(n1598, n1715)), bitand(n1482, n1715));
n1748 = bitxor(bitxor(n1483, n1614), n1733);
n1749 = bitor(bitor(bitand(n1483, n1614), bitand(n1614, n1733)), bitand(n1483, n1733));
n1764 = bitand(n0, n30);
n1782 = bitand(n2, n30);
n1798 = bitand(n4, n30);
n1814 = bitand(n6, n30);
n1832 = bitand(n8, n30);
n1848 = bitand(n10, n30);
n1864 = bitand(n12, n30);
n1882 = bitand(n14, n30);
n1898 = bitor(n235, n1764);
n1914 = bitxor(n1664, n1782);
n1915 = bitand(n1664, n1782);
n1932 = bitxor(bitxor(n1682, n1798), n1915);
n1933 = bitor(bitor(bitand(n1682, n1798), bitand(n1798, n1915)), bitand(n1682, n1915));
n1948 = bitxor(bitxor(n1698, n1814), n1933);
n1949 = bitor(bitor(bitand(n1698, n1814), bitand(n1814, n1933)), bitand(n1698, n1933));
n1964 = bitxor(bitxor(n1714, n1832), n1949);
n1965 = bitor(bitor(bitand(n1714, n1832), bitand(n1832, n1949)), bitand(n1714, n1949));
n1982 = bitxor(bitxor(n1732, n1848), n1965);
n1983 = bitor(bitor(bitand(n1732, n1848), bitand(n1848, n1965)), bitand(n1732, n1965));
n1998 = bitxor(bitxor(n1748, n1864), n1983);
n1999 = bitor(bitor(bitand(n1748, n1864), bitand(n1864, n1983)), bitand(n1748, n1983));
n2014 = bitxor(bitxor(n1749, n1882), n1999);
n2015 = bitor(bitor(bitand(n1749, n1882), bitand(n1882, n1999)), bitand(n1749, n1999));
c = bitor(c, bitshift(bitand(n1065, 1), 0));
c = bitor(c, bitshift(bitand(n598, 1), 1));
c = bitor(c, bitshift(bitand(n83, 1), 2));
c = bitor(c, bitshift(bitand(n32, 1), 3));
c = bitor(c, bitshift(bitand(n749, 1), 4));
c = bitor(c, bitshift(bitand(n1364, 1), 5));
c = bitor(c, bitshift(bitand(n1632, 1), 6));
c = bitor(c, bitshift(bitand(n1898, 1), 7));
c = bitor(c, bitshift(bitand(n1914, 1), 8));
c = bitor(c, bitshift(bitand(n1932, 1), 9));
c = bitor(c, bitshift(bitand(n1948, 1), 10));
c = bitor(c, bitshift(bitand(n1964, 1), 11));
c = bitor(c, bitshift(bitand(n1982, 1), 12));
c = bitor(c, bitshift(bitand(n1998, 1), 13));
c = bitor(c, bitshift(bitand(n2014, 1), 14));
c = bitor(c, bitshift(bitand(n2015, 1), 15));
end