197 lines
6.1 KiB
C
197 lines
6.1 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14001d320 FUN_14001d320
|
|
* Pseudocode, not original source. */
|
|
|
|
undefined8 * FUN_14001d320(undefined8 *param_1,longlong *param_2)
|
|
|
|
{
|
|
char cVar1;
|
|
longlong *plVar2;
|
|
code *pcVar3;
|
|
longlong *plVar4;
|
|
longlong lVar5;
|
|
undefined8 *puVar6;
|
|
longlong *plVar7;
|
|
longlong *plVar8;
|
|
longlong *plVar9;
|
|
longlong *plVar10;
|
|
|
|
if (*(char *)((longlong)param_2 + 0x29) != '\0') {
|
|
std::_Xout_of_range("invalid map/set<T> iterator");
|
|
pcVar3 = (code *)swi(3);
|
|
puVar6 = (undefined8 *)(*pcVar3)();
|
|
return puVar6;
|
|
}
|
|
plVar10 = (longlong *)param_2[2];
|
|
plVar7 = param_2 + 2;
|
|
if (*(char *)((longlong)plVar10 + 0x29) == '\0') {
|
|
cVar1 = *(char *)(*plVar10 + 0x29);
|
|
plVar8 = (longlong *)*plVar10;
|
|
while (cVar1 == '\0') {
|
|
cVar1 = *(char *)(*plVar8 + 0x29);
|
|
plVar10 = plVar8;
|
|
plVar8 = (longlong *)*plVar8;
|
|
}
|
|
}
|
|
else {
|
|
cVar1 = *(char *)(param_2[1] + 0x29);
|
|
plVar9 = (longlong *)param_2[1];
|
|
plVar8 = param_2;
|
|
while ((plVar10 = plVar9, cVar1 == '\0' && (plVar8 == (longlong *)plVar10[2]))) {
|
|
cVar1 = *(char *)(plVar10[1] + 0x29);
|
|
plVar9 = (longlong *)plVar10[1];
|
|
plVar8 = plVar10;
|
|
}
|
|
}
|
|
plVar8 = (longlong *)*param_2;
|
|
if (*(char *)((longlong)plVar8 + 0x29) == '\0') {
|
|
plVar9 = plVar8;
|
|
if ((*(char *)(*plVar7 + 0x29) == '\0') && (plVar9 = (longlong *)plVar10[2], plVar10 != param_2)
|
|
) {
|
|
plVar8[1] = (longlong)plVar10;
|
|
*plVar10 = *param_2;
|
|
plVar8 = plVar10;
|
|
if (plVar10 != (longlong *)*plVar7) {
|
|
plVar8 = (longlong *)plVar10[1];
|
|
if (*(char *)((longlong)plVar9 + 0x29) == '\0') {
|
|
plVar9[1] = (longlong)plVar8;
|
|
}
|
|
*plVar8 = (longlong)plVar9;
|
|
plVar10[2] = *plVar7;
|
|
*(longlong **)(*plVar7 + 8) = plVar10;
|
|
}
|
|
if ((longlong *)DAT_14017cec0[1] == param_2) {
|
|
DAT_14017cec0[1] = (longlong)plVar10;
|
|
}
|
|
else {
|
|
plVar7 = (longlong *)param_2[1];
|
|
if ((longlong *)*plVar7 == param_2) {
|
|
*plVar7 = (longlong)plVar10;
|
|
}
|
|
else {
|
|
plVar7[2] = (longlong)plVar10;
|
|
}
|
|
}
|
|
plVar10[1] = param_2[1];
|
|
lVar5 = plVar10[5];
|
|
*(char *)(plVar10 + 5) = (char)param_2[5];
|
|
*(char *)(param_2 + 5) = (char)lVar5;
|
|
goto LAB_14001d4f3;
|
|
}
|
|
}
|
|
else {
|
|
plVar9 = (longlong *)*plVar7;
|
|
}
|
|
plVar8 = (longlong *)param_2[1];
|
|
if (*(char *)((longlong)plVar9 + 0x29) == '\0') {
|
|
plVar9[1] = (longlong)plVar8;
|
|
}
|
|
if ((longlong *)DAT_14017cec0[1] == param_2) {
|
|
DAT_14017cec0[1] = (longlong)plVar9;
|
|
}
|
|
else if ((longlong *)*plVar8 == param_2) {
|
|
*plVar8 = (longlong)plVar9;
|
|
}
|
|
else {
|
|
plVar8[2] = (longlong)plVar9;
|
|
}
|
|
if ((longlong *)*DAT_14017cec0 == param_2) {
|
|
plVar7 = plVar8;
|
|
if (*(char *)((longlong)plVar9 + 0x29) == '\0') {
|
|
cVar1 = *(char *)(*plVar9 + 0x29);
|
|
plVar2 = (longlong *)*plVar9;
|
|
plVar7 = plVar9;
|
|
while (plVar4 = plVar2, cVar1 == '\0') {
|
|
plVar2 = (longlong *)*plVar4;
|
|
cVar1 = *(char *)((longlong)plVar2 + 0x29);
|
|
plVar7 = plVar4;
|
|
}
|
|
}
|
|
*DAT_14017cec0 = (longlong)plVar7;
|
|
}
|
|
if ((longlong *)DAT_14017cec0[2] == param_2) {
|
|
if (*(char *)((longlong)plVar9 + 0x29) == '\0') {
|
|
cVar1 = *(char *)(plVar9[2] + 0x29);
|
|
plVar7 = (longlong *)plVar9[2];
|
|
plVar2 = plVar9;
|
|
while (plVar4 = plVar7, cVar1 == '\0') {
|
|
plVar7 = (longlong *)plVar4[2];
|
|
cVar1 = *(char *)((longlong)plVar7 + 0x29);
|
|
plVar2 = plVar4;
|
|
}
|
|
DAT_14017cec0[2] = (longlong)plVar2;
|
|
}
|
|
else {
|
|
DAT_14017cec0[2] = (longlong)plVar8;
|
|
}
|
|
}
|
|
LAB_14001d4f3:
|
|
if ((char)param_2[5] == '\x01') {
|
|
if (plVar9 != (longlong *)DAT_14017cec0[1]) {
|
|
do {
|
|
plVar7 = plVar8;
|
|
if ((char)plVar9[5] != '\x01') break;
|
|
plVar8 = (longlong *)*plVar7;
|
|
if (plVar9 == plVar8) {
|
|
plVar8 = (longlong *)plVar7[2];
|
|
if ((char)plVar8[5] == '\0') {
|
|
*(undefined1 *)(plVar8 + 5) = 1;
|
|
*(undefined1 *)(plVar7 + 5) = 0;
|
|
FUN_14001d750((longlong)plVar7);
|
|
plVar8 = (longlong *)plVar7[2];
|
|
}
|
|
if (*(char *)((longlong)plVar8 + 0x29) == '\0') {
|
|
if ((*(char *)(*plVar8 + 0x28) != '\x01') || (*(char *)(plVar8[2] + 0x28) != '\x01')) {
|
|
if (*(char *)(plVar8[2] + 0x28) == '\x01') {
|
|
*(undefined1 *)(*plVar8 + 0x28) = 1;
|
|
*(undefined1 *)(plVar8 + 5) = 0;
|
|
FUN_14001d7b0(plVar8);
|
|
plVar8 = (longlong *)plVar7[2];
|
|
}
|
|
*(char *)(plVar8 + 5) = (char)plVar7[5];
|
|
*(undefined1 *)(plVar7 + 5) = 1;
|
|
*(undefined1 *)(plVar8[2] + 0x28) = 1;
|
|
FUN_14001d750((longlong)plVar7);
|
|
break;
|
|
}
|
|
LAB_14001d5cd:
|
|
*(undefined1 *)(plVar8 + 5) = 0;
|
|
}
|
|
}
|
|
else {
|
|
if ((char)plVar8[5] == '\0') {
|
|
*(undefined1 *)(plVar8 + 5) = 1;
|
|
*(undefined1 *)(plVar7 + 5) = 0;
|
|
FUN_14001d7b0(plVar7);
|
|
plVar8 = (longlong *)*plVar7;
|
|
}
|
|
if (*(char *)((longlong)plVar8 + 0x29) == '\0') {
|
|
if ((*(char *)(plVar8[2] + 0x28) == '\x01') && (*(char *)(*plVar8 + 0x28) == '\x01'))
|
|
goto LAB_14001d5cd;
|
|
if (*(char *)(*plVar8 + 0x28) == '\x01') {
|
|
*(undefined1 *)(plVar8[2] + 0x28) = 1;
|
|
*(undefined1 *)(plVar8 + 5) = 0;
|
|
FUN_14001d750((longlong)plVar8);
|
|
plVar8 = (longlong *)*plVar7;
|
|
}
|
|
*(char *)(plVar8 + 5) = (char)plVar7[5];
|
|
*(undefined1 *)(plVar7 + 5) = 1;
|
|
*(undefined1 *)(*plVar8 + 0x28) = 1;
|
|
FUN_14001d7b0(plVar7);
|
|
break;
|
|
}
|
|
}
|
|
plVar8 = (longlong *)plVar7[1];
|
|
plVar9 = plVar7;
|
|
} while (plVar7 != (longlong *)DAT_14017cec0[1]);
|
|
}
|
|
*(undefined1 *)(plVar9 + 5) = 1;
|
|
}
|
|
operator_delete(param_2);
|
|
if (DAT_14017cec8 != 0) {
|
|
DAT_14017cec8 = DAT_14017cec8 + -1;
|
|
}
|
|
*param_1 = plVar10;
|
|
return param_1;
|
|
}
|
|
|