/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14000fb80 FUN_14000fb80 * Pseudocode, not original source. */ undefined8 * FUN_14000fb80(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 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_140162cf8[1] == param_2) { DAT_140162cf8[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_14000fd53; } } else { plVar9 = (longlong *)*plVar7; } plVar8 = (longlong *)param_2[1]; if (*(char *)((longlong)plVar9 + 0x29) == '\0') { plVar9[1] = (longlong)plVar8; } if ((longlong *)DAT_140162cf8[1] == param_2) { DAT_140162cf8[1] = (longlong)plVar9; } else if ((longlong *)*plVar8 == param_2) { *plVar8 = (longlong)plVar9; } else { plVar8[2] = (longlong)plVar9; } if ((longlong *)*DAT_140162cf8 == 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_140162cf8 = (longlong)plVar7; } if ((longlong *)DAT_140162cf8[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_140162cf8[2] = (longlong)plVar2; } else { DAT_140162cf8[2] = (longlong)plVar8; } } LAB_14000fd53: if ((char)param_2[5] == '\x01') { if (plVar9 != (longlong *)DAT_140162cf8[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_14000ffb0((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_140010010(plVar8); plVar8 = (longlong *)plVar7[2]; } *(char *)(plVar8 + 5) = (char)plVar7[5]; *(undefined1 *)(plVar7 + 5) = 1; *(undefined1 *)(plVar8[2] + 0x28) = 1; FUN_14000ffb0((longlong)plVar7); break; } LAB_14000fe2d: *(undefined1 *)(plVar8 + 5) = 0; } } else { if ((char)plVar8[5] == '\0') { *(undefined1 *)(plVar8 + 5) = 1; *(undefined1 *)(plVar7 + 5) = 0; FUN_140010010(plVar7); plVar8 = (longlong *)*plVar7; } if (*(char *)((longlong)plVar8 + 0x29) == '\0') { if ((*(char *)(plVar8[2] + 0x28) == '\x01') && (*(char *)(*plVar8 + 0x28) == '\x01')) goto LAB_14000fe2d; if (*(char *)(*plVar8 + 0x28) == '\x01') { *(undefined1 *)(plVar8[2] + 0x28) = 1; *(undefined1 *)(plVar8 + 5) = 0; FUN_14000ffb0((longlong)plVar8); plVar8 = (longlong *)*plVar7; } *(char *)(plVar8 + 5) = (char)plVar7[5]; *(undefined1 *)(plVar7 + 5) = 1; *(undefined1 *)(*plVar8 + 0x28) = 1; FUN_140010010(plVar7); break; } } plVar8 = (longlong *)plVar7[1]; plVar9 = plVar7; } while (plVar7 != (longlong *)DAT_140162cf8[1]); } *(undefined1 *)(plVar9 + 5) = 1; } operator_delete(param_2); if (DAT_140162d00 != 0) { DAT_140162d00 = DAT_140162d00 + -1; } *param_1 = plVar10; return param_1; }