undefined4 FUN_0041f598(int param_1,int param_2)

{
  undefined2 uVar1;
  int iVar2;
  uint uVar3;
  int iVar4;
  
  iVar4 = *(int *)(param_1 + 0x38);
  if (iVar4 != 0) {
    FUN_00415c6c(iVar4);
    FUN_00471d20(iVar4);
  }
  iVar4 = FUN_00471da0(0x68);
                    /* try { // try from 0041f61c to 0041f623 has its CatchHandler @ 0041f640 */
  FUN_004180d4(iVar4);
  *(int *)(param_1 + 0x38) = iVar4;
  if (param_2 == 0) {
    param_2 = *(int *)(param_1 + 0x20) + 0x11c;
    uVar1 = FUN_00483e50(param_2);
  }
  else {
    uVar1 = FUN_00483e50(param_2);
  }
  FUN_00414bc0(iVar4 + 9,0x1045,param_2,uVar1);
  iVar4 = *(int *)(param_1 + 0x20);
  iVar2 = *(int *)(param_1 + 0x38);
  uVar1 = *(undefined2 *)(iVar4 + 0x5f);
  *(undefined2 *)(iVar2 + 0x18) = 2;
  *(undefined2 *)(iVar2 + 0x16) = 0x1003;
  *(undefined2 *)(iVar2 + 0x1e) = uVar1;
  *(undefined2 *)(iVar2 + 0x28) = *(undefined2 *)(iVar4 + 99);
  *(undefined2 *)(iVar2 + 0x22) = 2;
  *(undefined2 *)(iVar2 + 0x20) = 0x100f;
  iVar4 = FUN_00471da0(0xd);
  *(undefined1 *)(iVar4 + 2) = 0;
  *(undefined1 *)(iVar4 + 3) = 0;
  *(undefined4 *)(iVar4 + 4) = 0;
  *(undefined4 *)(iVar4 + 8) = 0;
  iVar2 = *(int *)(param_1 + 0x20);
  *(undefined1 *)(iVar4 + 0xc) = 0;
  if (*(char *)(iVar2 + 0x371) == '\0') {
    iVar2 = 0;
    uVar3 = 0;
  }
  else {
    uVar3 = *(uint *)(iVar2 + 0x374);
    iVar2 = iVar2 + 0x331;
  }
  FUN_004217e0(iVar4,0x1027,iVar2,uVar3 & 0xffff);
  FUN_00401820(*(undefined4 *)(*(int *)(param_1 + 0x38) + 0x30),iVar4);
  FUN_00414bc0(*(int *)(param_1 + 0x38) + 0x34,0x1020,*(int *)(param_1 + 0x20) + 0x15,6);
  return 0x1001;
}