void bn_mul_comba8 ( BN_ULONG * r , BN_ULONG * a , BN_ULONG * b ) {
 BN_ULONG t1 , t2 ;
 BN_ULONG c1 , c2 , c3 ;
 c1 = 0 ;
 c2 = 0 ;
 c3 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 r [ 0 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 r [ 1 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 2 ] , b [ 0 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 0 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 r [ 2 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 1 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 2 ] , b [ 1 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 r [ 3 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 4 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 2 ] , b [ 2 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 0 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 r [ 4 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 2 ] , b [ 3 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 3 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 4 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 0 ] , c3 , c1 , c2 ) ;
 r [ 5 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 6 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 1 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 4 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 2 ] , b [ 4 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 1 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 0 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 r [ 6 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 2 ] , b [ 5 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 4 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 5 ] , b [ 2 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 6 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 7 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 r [ 7 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 6 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 3 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 4 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 3 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 2 ] , b [ 6 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 r [ 8 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 2 ] , b [ 7 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 4 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 4 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 6 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 7 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 r [ 9 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 6 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 5 ] , b [ 5 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 4 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 r [ 10 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 4 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 6 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 6 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 7 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 r [ 11 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 6 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 7 ] , c1 , c2 , c3 ) ;
 r [ 12 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 6 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 7 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 r [ 13 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 r [ 14 ] = c3 ;
 r [ 15 ] = c1 ;
 }
void bn_mul_comba8 ( BN_ULONG * r , BN_ULONG * a , BN_ULONG * b ) {
 BN_ULONG t1 , t2 ;
 BN_ULONG c1 , c2 , c3 ;
 c1 = 0 ;
 c2 = 0 ;
 c3 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 r [ 0 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 r [ 1 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 2 ] , b [ 0 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 0 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 r [ 2 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 1 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 2 ] , b [ 1 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 r [ 3 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 4 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 2 ] , b [ 2 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 0 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 r [ 4 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 2 ] , b [ 3 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 3 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 4 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 0 ] , c3 , c1 , c2 ) ;
 r [ 5 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 6 ] , b [ 0 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 1 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 4 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 2 ] , b [ 4 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 1 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 0 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 r [ 6 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 0 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 1 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 2 ] , b [ 5 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 4 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 5 ] , b [ 2 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 6 ] , b [ 1 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 7 ] , b [ 0 ] , c2 , c3 , c1 ) ;
 r [ 7 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 1 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 6 ] , b [ 2 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 3 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 4 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 3 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 2 ] , b [ 6 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 1 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 r [ 8 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 2 ] , b [ 7 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 3 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 4 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 4 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 6 ] , b [ 3 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 7 ] , b [ 2 ] , c1 , c2 , c3 ) ;
 r [ 9 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 3 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 6 ] , b [ 4 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 5 ] , b [ 5 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 4 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 3 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 r [ 10 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 4 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 5 ] , b [ 6 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 6 ] , b [ 5 ] , c3 , c1 , c2 ) ;
 mul_add_c ( a [ 7 ] , b [ 4 ] , c3 , c1 , c2 ) ;
 r [ 11 ] = c3 ;
 c3 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 5 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 6 ] , b [ 6 ] , c1 , c2 , c3 ) ;
 mul_add_c ( a [ 5 ] , b [ 7 ] , c1 , c2 , c3 ) ;
 r [ 12 ] = c1 ;
 c1 = 0 ;
 mul_add_c ( a [ 6 ] , b [ 7 ] , c2 , c3 , c1 ) ;
 mul_add_c ( a [ 7 ] , b [ 6 ] , c2 , c3 , c1 ) ;
 r [ 13 ] = c2 ;
 c2 = 0 ;
 mul_add_c ( a [ 7 ] , b [ 7 ] , c3 , c1 , c2 ) ;
 r [ 14 ] = c3 ;
 r [ 15 ] = c1 ;
 }