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

82 lines
2.7 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x14000f520 FUN_14000f520
* Pseudocode, not original source. */
byte * FUN_14000f520(longlong param_1,byte *param_2,int *param_3,int param_4)
{
byte bVar1;
undefined4 uVar2;
byte *pbVar3;
byte *pbVar4;
char *pcVar5;
pbVar3 = FUN_14000da10(param_2,param_4);
if ((pbVar3 != (byte *)0x0) && (*pbVar3 != 0)) {
if (param_3 != (int *)0x0) {
FUN_14000d8c0(param_3,pbVar3,param_4);
*(undefined8 *)(param_1 + 8) = *(undefined8 *)param_3;
}
pbVar4 = FUN_14000daf0(pbVar3,(longlong *)(param_1 + 0x20));
if ((pbVar4 != (byte *)0x0) && (*pbVar4 != 0)) {
pbVar3 = FUN_14000da10(pbVar4,param_4);
if ((pbVar3 == (byte *)0x0) || ((*pbVar3 == 0 || (*pbVar3 != 0x3d)))) {
if (*(longlong *)(param_1 + 0x18) != 0) {
FUN_14000e410(*(longlong *)(param_1 + 0x18),7,pbVar3,param_3,param_4);
}
return (byte *)0x0;
}
pbVar3 = FUN_14000da10(pbVar3 + 1,param_4);
if ((pbVar3 != (byte *)0x0) && (bVar1 = *pbVar3, bVar1 != 0)) {
if (bVar1 == 0x27) {
pcVar5 = "\'";
}
else {
if (bVar1 != 0x22) {
FUN_14000af60((longlong *)(param_1 + 0x30),&DAT_14015bf08,0);
while( true ) {
if (*pbVar3 == 0) {
return pbVar3;
}
uVar2 = FUN_14000d780(*pbVar3);
if ((char)uVar2 != '\0') {
return pbVar3;
}
bVar1 = *pbVar3;
if (bVar1 == 10) {
return pbVar3;
}
if (bVar1 == 0xd) break;
if (bVar1 == 0x2f) {
return pbVar3;
}
if (bVar1 == 0x3e) {
return pbVar3;
}
if ((bVar1 == 0x27) || (bVar1 == 0x22)) {
if (*(longlong *)(param_1 + 0x18) != 0) {
FUN_14000e410(*(longlong *)(param_1 + 0x18),7,pbVar3,param_3,param_4);
}
return (byte *)0x0;
}
FUN_14000b0e0((longlong *)(param_1 + 0x30),bVar1);
pbVar3 = pbVar3 + 1;
if (pbVar3 == (byte *)0x0) {
return (byte *)0x0;
}
}
return pbVar3;
}
pcVar5 = "\"";
}
pbVar3 = FUN_14000de70(pbVar3 + 1,(longlong *)(param_1 + 0x30),'\0',pcVar5,param_4);
return pbVar3;
}
}
if (*(longlong *)(param_1 + 0x18) != 0) {
FUN_14000e410(*(longlong *)(param_1 + 0x18),7,pbVar3,param_3,param_4);
}
}
return (byte *)0x0;
}