undefined4 FUN_0041a2ec(int param_1,char param_2)

{
  undefined4 *puVar1;
  undefined4 uVar2;
  int iVar3;
  
  iVar3 = *(int *)(param_1 + 0x10);
  if (iVar3 != 0) {
    FUN_00419550(iVar3);
    FUN_00471d20(iVar3);
  }
  puVar1 = (undefined4 *)FUN_00471da0(0x352);
                    /* try { // try from 0041a35c to 0041a363 has its CatchHandler @ 0041a378 */
  FUN_00419624(puVar1);
  *(undefined4 **)(param_1 + 0x10) = puVar1;
  if (puVar1 == (undefined4 *)0x0) {
    uVar2 = 0x1002;
  }
  else {
    *puVar1 = 0;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 4) = 99;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 8) = 99;
    iVar3 = *(int *)(param_1 + 0x10);
    uVar2 = FUN_0040212c();
    *(undefined4 *)(iVar3 + 0xc) = uVar2;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x1c) = *(undefined4 *)(param_1 + 0x2c);
    uVar2 = 0x1001;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x1b5) = 0;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x1b9) = 0;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x10) = 0;
    *(undefined4 *)(*(int *)(param_1 + 0x10) + 0x14) = 0;
    *(undefined1 *)(param_1 + 0x14) = 1;
    if (param_2 == '\0') {
      FUN_0041a248(param_1,0x78);
      uVar2 = 0x1001;
    }
  }
  return uVar2;
}