return x = x y where the multiplication is done modulo 65537 0x10001 as defined in the idea specification and a zero input is taken to be 65536 0x10000 . concode_field_sep int BLOCK_SIZE concode_elem_sep int[] workingKey concode_elem_sep int MASK concode_elem_sep int BASE concode_field_sep void wordToBytes concode_elem_sep void init concode_elem_sep int addInv concode_elem_sep void ideaFunc concode_elem_sep int[] generateWorkingKey concode_elem_sep int processBlock concode_elem_sep int[] expandKey concode_elem_sep int mulInv concode_elem_sep int[] invertKey concode_elem_sep String getAlgorithmName concode_elem_sep int getBlockSize concode_elem_sep int bytesToWord concode_elem_sep void reset
int function ( int arg0 , int arg1 ) { if ( arg0 == 0 ) { arg0 = ( BASE - arg1 ) ; } else if ( arg1 == 0 ) { arg0 = ( BASE - arg0 ) ; } else { int loc0 = arg0 * arg1 ; arg1 = loc0 & MASK ; arg0 = loc0 >>> 16 ; arg0 = arg1 - arg0 + ( ( arg1 < arg0 ) ? 1 : 0 ) ; } return arg0 & MASK ; }