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

42 lines
1.4 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400ed320 FUN_1400ed320
* Pseudocode, not original source. */
void FUN_1400ed320(undefined8 *param_1,longlong *param_2,longlong *param_3,undefined8 param_4)
{
int *piVar1;
longlong *plVar2;
longlong *plVar3;
*param_1 = Proud::CUpnp::vftable;
piVar1 = (int *)(param_1 + 2);
FUN_14006b350(piVar1);
FUN_1400ec840((char *)(param_1 + 10));
FUN_1400ebfb0((char *)(param_1 + 0x15),param_2,param_3,param_4);
plVar3 = (longlong *)0x0;
FUN_1400ebc20((longlong)(param_1 + 0x20),0);
FUN_14006b3e0((longlong)piVar1);
param_1[0x20] = Proud::CFastArray<Proud::RefCount<Proud::CSsdpContext>,0>::vftable;
plVar2 = (longlong *)(longlong)*(int *)(param_1 + 0x23);
if (0 < *(int *)(param_1 + 0x23)) {
FUN_1400eaae0((longlong *)param_1[0x22],(longlong)plVar2);
plVar3 = plVar2;
}
plVar2 = (longlong *)param_1[0x22];
if (plVar2 != (longlong *)0x0) {
param_3 = (longlong *)param_1[0x21];
if (param_3 == (longlong *)0x0) {
FUN_14006cc60(plVar2);
}
else {
(**(code **)(*param_3 + 0x18))(param_3);
plVar3 = plVar2;
}
}
FUN_1400ec820((char *)(param_1 + 0x15),plVar3,param_3,param_4);
FUN_1400ecf90((char *)(param_1 + 10));
FUN_14006b400(piVar1,plVar3,param_3,param_4);
return;
}