50 lines
1.5 KiB
C
50 lines
1.5 KiB
C
/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
|
|
* Ghidra 12.1.2 decompiler output for 0x1400c5bc0 FUN_1400c5bc0
|
|
* Pseudocode, not original source. */
|
|
|
|
ulonglong FUN_1400c5bc0(longlong param_1,longlong param_2,uint *param_3,longlong param_4)
|
|
|
|
{
|
|
uint uVar1;
|
|
undefined8 uVar2;
|
|
ulonglong uVar3;
|
|
uint *puVar4;
|
|
longlong lVar5;
|
|
uint local_res18 [4];
|
|
undefined **local_38;
|
|
undefined4 local_30;
|
|
undefined2 local_2c;
|
|
undefined **local_28;
|
|
undefined4 local_20;
|
|
undefined2 local_1c;
|
|
|
|
uVar1 = *param_3;
|
|
puVar4 = param_3;
|
|
lVar5 = param_4;
|
|
uVar2 = FUN_1400bd260(param_3,local_res18,param_3,param_4);
|
|
if ((char)uVar2 == '\0') {
|
|
LAB_1400c5bfc:
|
|
uVar3 = FUN_1400bc600((int *)param_3,
|
|
(ulonglong)(uint)((int)(((int)uVar1 >> 0x1f & 7U) + uVar1) >> 3),puVar4,
|
|
lVar5);
|
|
uVar3 = uVar3 & 0xffffffffffffff00;
|
|
}
|
|
else {
|
|
if (local_res18[0] == 0xc) {
|
|
local_28 = Proud::AddrPort::vftable;
|
|
local_20 = *(undefined4 *)(param_2 + 8);
|
|
local_1c = *(undefined2 *)(param_2 + 0xc);
|
|
uVar2 = FUN_1400c3820(param_1,param_3,(longlong)&local_28,param_4);
|
|
}
|
|
else {
|
|
if (local_res18[0] != 0x10) goto LAB_1400c5bfc;
|
|
local_38 = Proud::AddrPort::vftable;
|
|
local_30 = *(undefined4 *)(param_2 + 8);
|
|
local_2c = *(undefined2 *)(param_2 + 0xc);
|
|
uVar2 = FUN_1400c3bc0(param_1,param_3,(longlong)&local_38,param_4);
|
|
}
|
|
uVar3 = CONCAT71((int7)((ulonglong)uVar2 >> 8),1);
|
|
}
|
|
return uVar3;
|
|
}
|
|
|