/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469 * Ghidra 12.1.2 decompiler output for 0x14003cd40 FUN_14003cd40 * Pseudocode, not original source. */ void FUN_14003cd40(longlong param_1,int param_2,longlong param_3,longlong param_4) { undefined4 uVar1; ulonglong uVar2; longlong lVar3; int *piVar4; ulonglong uVar5; undefined2 uVar6; ulonglong uVar7; ulonglong uVar8; longlong lVar9; ulonglong uVar10; int *piVar11; uVar5 = 0; piVar11 = (int *)(param_1 + 0x70); piVar4 = piVar11; uVar7 = uVar5; uVar10 = uVar5; do { if (*piVar4 == param_2) { piVar11 = (int *)(param_1 + 0x10); piVar4 = piVar11; uVar7 = uVar5; uVar2 = uVar5; goto LAB_14003ceb0; } uVar7 = uVar7 + 1; uVar10 = (ulonglong)((int)uVar10 + 1); piVar4 = piVar4 + 0x12; uVar2 = uVar5; uVar8 = uVar5; } while ((longlong)uVar7 < 2); while (*piVar11 != 0) { uVar2 = uVar2 + 1; piVar11 = piVar11 + 0x12; uVar8 = (ulonglong)((int)uVar8 + 1); if (1 < (longlong)uVar2) { return; } } lVar3 = (longlong)(int)uVar8; piVar11 = (int *)(param_1 + 0x10); *(int *)(param_1 + 0x70 + lVar3 * 0x48) = param_2; piVar4 = piVar11; uVar7 = uVar5; uVar10 = uVar5; do { if (*piVar4 == param_2) { lVar9 = (longlong)(int)uVar10 * 0x30; uVar1 = *(undefined4 *)(lVar9 + 0x30 + param_1); uVar6 = *(undefined2 *)(lVar9 + 0x34 + param_1); break; } uVar7 = uVar7 + 1; uVar10 = (ulonglong)((int)uVar10 + 1); piVar4 = piVar4 + 0xc; uVar1 = DAT_1401553d0; uVar6 = DAT_1401553d4; } while ((longlong)uVar7 < 2); *(undefined4 *)(param_1 + 0x80 + lVar3 * 0x48) = uVar1; *(undefined2 *)(param_1 + 0x84 + lVar3 * 0x48) = uVar6; uVar7 = uVar5; do { if (*piVar11 == param_2) { lVar9 = (longlong)(int)uVar7 * 0x30; uVar1 = *(undefined4 *)(lVar9 + 0x20 + param_1); uVar6 = *(undefined2 *)(lVar9 + 0x24 + param_1); break; } uVar5 = uVar5 + 1; uVar7 = (ulonglong)((int)uVar7 + 1); piVar11 = piVar11 + 0xc; uVar1 = DAT_1401553d0; uVar6 = DAT_1401553d4; } while ((longlong)uVar5 < 2); *(undefined4 *)(param_1 + 0x90 + lVar3 * 0x48) = uVar1; *(undefined2 *)(param_1 + 0x94 + lVar3 * 0x48) = uVar6; *(undefined4 *)(param_1 + 0xa0 + lVar3 * 0x48) = *(undefined4 *)(param_3 + 8); *(undefined2 *)(param_1 + 0xa4 + lVar3 * 0x48) = *(undefined2 *)(param_3 + 0xc); *(undefined4 *)(param_1 + 0xb0 + lVar3 * 0x48) = *(undefined4 *)(param_4 + 8); *(undefined2 *)(param_1 + 0xb4 + lVar3 * 0x48) = *(undefined2 *)(param_4 + 0xc); return; while( true ) { uVar7 = uVar7 + 1; uVar2 = (ulonglong)((int)uVar2 + 1); piVar4 = piVar4 + 0xc; uVar1 = DAT_1401553d0; uVar6 = DAT_1401553d4; if (1 < (longlong)uVar7) break; LAB_14003ceb0: if (*piVar4 == param_2) { lVar3 = (longlong)(int)uVar2 * 0x30; uVar1 = *(undefined4 *)(lVar3 + 0x30 + param_1); uVar6 = *(undefined2 *)(lVar3 + 0x34 + param_1); break; } } lVar3 = (longlong)(int)uVar10; *(undefined4 *)(param_1 + 0x80 + lVar3 * 0x48) = uVar1; *(undefined2 *)(param_1 + 0x84 + lVar3 * 0x48) = uVar6; uVar7 = uVar5; do { if (*piVar11 == param_2) { lVar9 = (longlong)(int)uVar7 * 0x30; uVar1 = *(undefined4 *)(lVar9 + 0x20 + param_1); uVar6 = *(undefined2 *)(lVar9 + 0x24 + param_1); break; } uVar5 = uVar5 + 1; uVar7 = (ulonglong)((int)uVar7 + 1); piVar11 = piVar11 + 0xc; uVar1 = DAT_1401553d0; uVar6 = DAT_1401553d4; } while ((longlong)uVar5 < 2); *(undefined4 *)(param_1 + 0x90 + lVar3 * 0x48) = uVar1; *(undefined2 *)(param_1 + 0x94 + lVar3 * 0x48) = uVar6; *(undefined4 *)(param_1 + 0xa0 + lVar3 * 0x48) = *(undefined4 *)(param_3 + 8); *(undefined2 *)(param_1 + 0xa4 + lVar3 * 0x48) = *(undefined2 *)(param_3 + 0xc); *(undefined4 *)(param_1 + 0xb0 + lVar3 * 0x48) = *(undefined4 *)(param_4 + 8); *(undefined2 *)(param_1 + 0xb4 + lVar3 * 0x48) = *(undefined2 *)(param_4 + 0xc); return; }