/* 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; }