server-re/decomp/MessageServer_Release_x64/full/functions/0x140070ae0.c

80 lines
2.2 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x140070ae0 FUN_140070ae0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
longlong * FUN_140070ae0(longlong *param_1,longlong *param_2,undefined8 param_3,undefined8 param_4)
{
int *piVar1;
uint uVar2;
undefined *puVar3;
int *piVar4;
short **ppsVar5;
short *psVar6;
int *piVar7;
short *psVar8;
undefined8 uVar9;
ulonglong uVar10;
ulonglong uVar11;
undefined1 auStack_188 [32];
undefined4 local_168;
int *local_160;
undefined1 local_158;
undefined8 local_150;
longlong *local_148;
short *local_138;
short local_130 [132];
ulonglong local_28;
local_150 = 0xfffffffffffffffe;
local_28 = DAT_1401ac5a0 ^ (ulonglong)auStack_188;
local_168 = 0;
local_148 = param_2;
FUN_14006cb70(param_1,param_2,param_3,param_4);
local_160 = (int *)PTR_DAT_1401ac008;
puVar3 = (undefined *)*param_1;
if ((undefined *)*param_1 == (undefined *)0x0) {
puVar3 = PTR_DAT_1401ac008;
}
uVar11 = (ulonglong)*(ushort *)(param_1 + 1);
FUN_14006e800((longlong *)&local_160,"%s:%d",puVar3,uVar11);
piVar1 = local_160;
piVar7 = local_160;
if (local_160 == (int *)0x0) {
piVar7 = (int *)PTR_DAT_1401ac008;
}
local_138 = local_130;
uVar9 = 3;
ppsVar5 = &local_138;
FUN_1400626b0((longlong *)ppsVar5,(LPCSTR)piVar7,3);
psVar8 = local_138;
FUN_14006cb70(ppsVar5,piVar7,uVar9,uVar11);
*param_2 = (longlong)PTR_DAT_1401ac010;
uVar2 = FUN_14006c9f0(psVar8);
puVar3 = FUN_140002f30(param_2,uVar2);
uVar10 = (ulonglong)uVar2;
FUN_14006ca20(puVar3,psVar8,uVar2);
FUN_140003010(param_2);
local_168 = 1;
psVar6 = local_138;
if (local_138 != local_130) {
free(local_138);
}
if (((piVar1 != (int *)0x0) && (piVar1 != (int *)PTR_DAT_1401ac008)) &&
(piVar1 + -2 != (int *)0x0)) {
piVar4 = (int *)FUN_14006cb70(psVar6,psVar8,uVar10,uVar11);
local_160 = piVar4;
FUN_14006b350(piVar4);
local_158 = 1;
piVar7 = piVar1 + -1;
*piVar7 = *piVar7 + -1;
if (*piVar7 == 0) {
FUN_14006cc60(piVar1 + -2);
}
FUN_14006b3e0((longlong)piVar4);
}
return param_2;
}