void FUN_0041f058(int param_1)

{
  int iVar1;
  
  FUN_00424b64(*(undefined4 *)(param_1 + 0x28),3);
  if (*(char *)(param_1 + 0x51) == '\0') {
    FUN_0041ecc0(param_1,*(char *)(*(int *)(param_1 + 0x20) + 0x68) == '\x02',0,0,0,
                 *(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
    FUN_0041e880(param_1,3,*(undefined1 *)(*(int *)(param_1 + 0x20) + 0x68),0,0,0,
                 *(undefined1 *)(*(int *)(param_1 + 0x20) + 0x69));
  }
  FUN_00424418(*(undefined4 *)(param_1 + 0x28),2);
  if (*(int *)(param_1 + 0x10) != 0) {
    FUN_00401bd8();
    *(undefined4 *)(param_1 + 0x10) = 0;
  }
  iVar1 = *(int *)(param_1 + 0xc);
  if (iVar1 == 2) {
LAB_0041f164:
    FUN_0041d3b8(param_1);
  }
  else {
    if (iVar1 < 3) {
      if (iVar1 != 1) goto LAB_0041f184;
    }
    else if (iVar1 != 3) {
      if (iVar1 != 4) goto LAB_0041f184;
      goto LAB_0041f164;
    }
    FUN_0041d318(param_1);
  }
LAB_0041f184:
  FUN_004242ac(*(undefined4 *)(param_1 + 0x20));
  *(undefined4 *)(param_1 + 0xc) = 0;
  return;
}