/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14007ff50 FUN_14007ff50 * Pseudocode, not original source. */ void FUN_14007ff50(longlong *param_1,int param_2,SIZE_T param_3,undefined *param_4) { int iVar1; int *piVar2; longlong lVar3; longlong *plVar4; longlong lVar5; undefined1 *puVar6; undefined1 local_res8 [8]; local_res8[0] = 0; puVar6 = local_res8; iVar1 = (**(code **)(*param_1 + 0x108))(); if (iVar1 == 2) { piVar2 = (int *)(**(code **)(param_1[-0xe] + 0x58))(param_1 + -0xe); FUN_14002e6e0(piVar2); if (param_2 == 1) { FUN_140067060((longlong)(param_1 + -0xe),0x1e,param_3,param_4); } else if (param_2 == 2) { FUN_14007f1f0(param_1 + -0xe,0x1e,param_3,param_4); } else if (param_2 == 3) { (**(code **)(param_1[1] + 0x10))(); plVar4 = (longlong *)param_1[0x296]; if ((((plVar4 != (longlong *)0x0) && (*plVar4 != 0)) && (plVar4 != (longlong *)0x0)) && ((*plVar4 != 0 && (*plVar4 != 0x40)))) { plVar4 = (longlong *)param_1[0x296]; if (((plVar4 == (longlong *)0x0) || ((*plVar4 == 0 || (plVar4 == (longlong *)0x0)))) || (*plVar4 == 0)) { lVar3 = 0; } else { lVar3 = *plVar4 + -0x40; } plVar4 = (longlong *)0x0; if (*(undefined8 **)(lVar3 + 0x100) != (undefined8 *)0x0) { plVar4 = (longlong *)**(undefined8 **)(lVar3 + 0x100); } FUN_140035490(plVar4,puVar6,param_3,param_4); } if (param_1[0x2c0] == 0) { lVar3 = 0; } else { lVar3 = param_1[0x2be]; } for (; lVar3 != 0; lVar3 = *(longlong *)(lVar3 + 0x10)) { lVar5 = 0; if (*(longlong **)(lVar3 + 8) != (longlong *)0x0) { lVar5 = **(longlong **)(lVar3 + 8); } if ((*(longlong **)(lVar5 + 0x18) != (longlong *)0x0) && (**(longlong **)(lVar5 + 0x18) != 0)) { plVar4 = (longlong *)FUN_1400b34a0(lVar5); (**(code **)(*plVar4 + 0x10))(plVar4); } } } FUN_14002e770((longlong)piVar2); } return; }