/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14006ff50 FUN_14006ff50 * Pseudocode, not original source. */ ulonglong * FUN_14006ff50(ulonglong *param_1,undefined8 param_2,undefined8 param_3,undefined8 param_4) { int iVar1; undefined8 *puVar2; int *piVar3; ulonglong uVar4; int **ppiVar5; undefined1 uVar6; undefined7 uVar7; bool bVar8; int *local_res10; uVar6 = (undefined1)param_3; uVar7 = (undefined7)((ulonglong)param_3 >> 8); LOCK(); bVar8 = DAT_14015e040 == 0; if (bVar8) { DAT_14015e040 = 1; } UNLOCK(); if (bVar8) { puVar2 = (undefined8 *)FUN_140030280(0x2c0); if (puVar2 == (undefined8 *)0x0) { puVar2 = (undefined8 *)0x0; } else { puVar2 = FUN_1400ac3e0(puVar2,param_2,CONCAT71(uVar7,uVar6),param_4); } if (puVar2 == (undefined8 *)0x0) { local_res10 = (int *)0x0; } else { piVar3 = (int *)FUN_140030280(0x48); if (piVar3 != (int *)0x0) { local_res10 = piVar3; uVar4 = FUN_14002e790(); uVar6 = 1; FUN_14002e600(piVar3,uVar4 & 0xffffffff,CONCAT71(uVar7,1),param_4); } local_res10 = piVar3; FUN_14002e6e0(piVar3); piVar3[0x10] = 1; piVar3[0x11] = 0; *(undefined8 **)(piVar3 + 0xe) = puVar2; FUN_14002e770((longlong)piVar3); } ppiVar5 = &local_res10; FUN_140066320((ulonglong *)&DAT_14015e048,(ulonglong *)ppiVar5,CONCAT71(uVar7,uVar6),param_4); FUN_140066060((longlong *)&local_res10,ppiVar5,CONCAT71(uVar7,uVar6),param_4); LOCK(); UNLOCK(); DAT_14015e040 = 2; } else { LOCK(); iVar1 = DAT_14015e040; if (DAT_14015e040 == 9999) { DAT_14015e040 = 999; iVar1 = 9999; } UNLOCK(); while (iVar1 != 2) { Sleep(5); LOCK(); iVar1 = DAT_14015e040; if (DAT_14015e040 == 9999) { DAT_14015e040 = 999; iVar1 = 9999; } UNLOCK(); } } *param_1 = 0; FUN_140066320(param_1,(ulonglong *)&DAT_14015e048,CONCAT71(uVar7,uVar6),param_4); return param_1; }