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

109 lines
3.3 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400d8df0 FUN_1400d8df0
* Pseudocode, not original source. */
/* WARNING: Function: __security_check_cookie replaced with injection: security_check_cookie */
void FUN_1400d8df0(longlong param_1,uint param_2,ushort param_3,longlong param_4,longlong param_5,
uint *param_6)
{
longlong *plVar1;
double dVar2;
int *piVar3;
ulonglong uVar4;
longlong lVar5;
undefined ***pppuVar6;
undefined1 auStackY_e78 [32];
undefined **local_e38;
undefined4 local_e30;
undefined2 local_e2c;
int *local_e28;
undefined1 local_e20;
int *local_e18;
undefined1 local_e10;
undefined8 local_e08;
uint local_df8;
uint uStack_df4;
uint uStack_df0;
uint uStack_dec;
uint local_de8;
uint uStack_de4;
uint uStack_de0;
uint uStack_ddc;
exception local_dd8 [80];
undefined4 local_d88 [2];
undefined *local_d80;
longlong local_d78;
undefined4 local_d70;
int local_d6c;
undefined1 local_d60 [136];
undefined1 local_cd8 [3200];
undefined1 *local_58;
undefined4 local_50;
int local_4c;
ulonglong local_48;
local_e08 = 0xfffffffffffffffe;
local_48 = DAT_1401ac5a0 ^ (ulonglong)auStackY_e78;
lVar5 = param_4;
FUN_1400cf890();
local_4c = 200;
local_50 = 0;
local_58 = local_cd8;
FUN_1400bca00(local_d88);
FUN_1400bc680((longlong)local_d88,(longlong)local_d60,0x80,lVar5);
FUN_1400db480(param_5,(longlong)local_cd8,(SIZE_T)local_d88,lVar5);
local_e28 = (int *)(param_1 + 0xa8);
FUN_14006b350(local_e28);
local_e20 = 1;
local_df8 = *param_6;
uStack_df4 = param_6[1];
uStack_df0 = param_6[2];
uStack_dec = param_6[3];
local_de8 = param_6[4];
uStack_de4 = param_6[5];
uStack_de0 = param_6[6];
uStack_ddc = param_6[7];
local_e38 = Proud::AddrPort::vftable;
local_e30 = *(undefined4 *)(param_4 + 8);
local_e2c = *(undefined2 *)(param_4 + 0xc);
plVar1 = *(longlong **)(param_1 + 0x168);
dVar2 = (double)(**(code **)(*(longlong *)(*(longlong *)(param_1 + 0x148) + 0x118) + 8))();
pppuVar6 = &local_e38;
uVar4 = (ulonglong)param_3;
FUN_1400d6760(plVar1,(ulonglong)param_2,uVar4,(ulonglong)pppuVar6,(longlong)local_cd8,dVar2,
&local_df8);
if (*(char *)(param_1 + 0x100) == '\0') {
piVar3 = (int *)(*(longlong *)(param_1 + 0x148) + 2000);
local_e18 = piVar3;
FUN_14006b350(piVar3);
local_e10 = 1;
if (*(longlong *)(param_1 + 0xa0) == 0) {
FUN_1400d8d60((longlong *)(*(longlong *)(param_1 + 0x148) + 0x828),param_1,uVar4,pppuVar6);
}
FUN_14006b3e0((longlong)piVar3);
}
FUN_14006b3e0((longlong)local_e28);
local_e38 = &local_d80;
FUN_1400d1800((longlong *)&local_d80);
if (local_d78 != 0) {
if (local_d6c < 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
local_d70 = 0;
}
if (local_58 == (undefined1 *)0x0) {
FUN_14006ba50(local_dd8,(wchar_t *)PTR_u_ArrayWithExternalBuffer_is_unini_1401ad9a0,uVar4,
pppuVar6);
/* WARNING: Subroutine does not return */
_CxxThrowException(local_dd8,(ThrowInfo *)&DAT_1401a93e8);
}
if (local_4c < 0) {
/* WARNING: Subroutine does not return */
FUN_14006be00();
}
return;
}