unsigned char g_17;

const unsigned char func_39 (unsigned char p_40, unsigned char * p_41)
{
  return 0;
}

void int327 (const unsigned char p_48, unsigned char p_49)
{
  unsigned l_52;
  unsigned char l_58[2];
  int i, j;
  if (func_39 (l_52, &p_49), p_48) {
      unsigned char *l_60;
      unsigned char *l = &l_58[1];
      for (j; j; j++) {
lbl_59:
	  break;
      }
      for (l = 0; 1; l += 1) {
	  for (p_49 = 1; p_49; p_49 += 0) {
	      unsigned char **l_61[1][6];
	      for (j = 0; j < 1; j++)
		l_61[i][j] = &l_60;
	      goto lbl_59;
	  }
      }
  }
}

