server-re/decomp/Agent_Release_x64/full/functions/0x1400c59a0.c
2026-10-14 16:45:19 -04:00

47 lines
1.9 KiB
C

/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
* Ghidra 12.1.2 decompiler output for 0x1400c59a0 FUN_1400c59a0
* Pseudocode, not original source. */
void FUN_1400c59a0(longlong param_1,undefined1 *param_2,int param_3,int param_4)
{
undefined1 uVar1;
byte bVar2;
if (*(int *)(param_1 + 0x1714) < 9) {
if (*(int *)(param_1 + 0x1714) < 1) goto LAB_1400c59fa;
uVar1 = *(undefined1 *)(param_1 + 0x1710);
}
else {
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) =
*(undefined1 *)(param_1 + 0x1710);
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
uVar1 = *(undefined1 *)(param_1 + 0x1711);
}
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = uVar1;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
LAB_1400c59fa:
*(undefined4 *)(param_1 + 0x170c) = 8;
*(undefined2 *)(param_1 + 0x1710) = 0;
*(undefined4 *)(param_1 + 0x1714) = 0;
if (param_4 != 0) {
*(byte *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = (byte)param_3;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
bVar2 = (byte)((uint)param_3 >> 8);
*(byte *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = bVar2;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(byte *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = ~(byte)param_3
;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
*(byte *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = ~bVar2;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
}
for (; param_3 != 0; param_3 = param_3 + -1) {
*(undefined1 *)((ulonglong)*(uint *)(param_1 + 0x28) + *(longlong *)(param_1 + 0x10)) = *param_2
;
*(int *)(param_1 + 0x28) = *(int *)(param_1 + 0x28) + 1;
param_2 = param_2 + 1;
}
return;
}