void FUN_00422fb8(undefined4 *param_1)

{
  int iVar1;
  undefined4 *puVar2;
  int *piVar3;
  int iVar4;
  
  FUN_00422d84();
  iVar1 = DAT_004411b4;
  if (DAT_004411b4 == 0) {
    puVar2 = (undefined4 *)0x0;
  }
  else {
    puVar2 = *(undefined4 **)(DAT_004411b4 + DAT_004411b8 * 4);
  }
  if (puVar2 != param_1) {
    if ((DAT_004411b4 != 0) && (piVar3 = (int *)(DAT_004411b4 + DAT_004411b8 * 4), *piVar3 != 0)) {
      *DAT_004411c4 = DAT_004411cc;
      iVar4 = *piVar3;
      *(undefined1 **)(iVar4 + 8) = DAT_004411c4;
      *(undefined4 *)(iVar4 + 0x10) = DAT_004411d0;
    }
    DAT_004411a0 = *param_1;
    DAT_004411c4 = (undefined1 *)param_1[2];
    DAT_004411d0 = param_1[4];
    *(undefined4 **)(iVar1 + DAT_004411b8 * 4) = param_1;
    DAT_004411cc = *DAT_004411c4;
    DAT_004411d4 = 1;
    yytext = DAT_004411c4;
  }
  return;
}