void FUN_00423684(undefined4 param_1)

{
  bool bVar1;
  undefined4 uVar2;
  undefined4 *puVar3;
  int iVar4;
  
  if ((DAT_004411b4 == 0) || (iVar4 = DAT_004411b4, *(int *)(DAT_004411b4 + DAT_004411b8 * 4) == 0))
  {
    FUN_00422d84();
    puVar3 = (undefined4 *)(DAT_004411b4 + DAT_004411b8 * 4);
    uVar2 = FUN_00423404(DAT_004411a0,0x4000);
    iVar4 = DAT_004411b4;
    bVar1 = DAT_004411b4 == 0;
    *puVar3 = uVar2;
    if (bVar1) {
      uVar2 = 0;
      goto LAB_004236f8;
    }
  }
  uVar2 = *(undefined4 *)(iVar4 + DAT_004411b8 * 4);
LAB_004236f8:
  FUN_004232e8(uVar2,param_1);
  puVar3 = *(undefined4 **)(DAT_004411b4 + DAT_004411b8 * 4);
  yytext = (undefined1 *)puVar3[2];
  DAT_004411cc = *yytext;
  DAT_004411a0 = *puVar3;
  DAT_004411c4 = yytext;
  DAT_004411d0 = puVar3[4];
  return;
}