in src/gcm.c [88:113]
static void gf2mul(gcm *g)
{
/* gf2m mul - Z=H*X mod 2^128 */
int i;
int j;
int m;
unsign32 P[4];
unsign32 b;
P[0]=P[1]=P[2]=P[3]=0;
j=8;
m=0;
for (i=0; i<128; i++)
{
b=(unsign32)(g->stateX[m]>>(--j))&1;
b=~b+1;
for (int k=0; k<NB; k++) P[k]^=(g->table[i][k]&b);
if (j==0)
{
j=8;
m++;
if (m==16) break;
}
}
for (i=j=0; i<NB; i++,j+=4) unpack(P[i],&g->stateX[j]);
}