/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x14000cbe0 FUN_14000cbe0 * Pseudocode, not original source. */ /* WARNING: Restarted to delay deadcode elimination for space: register */ void FUN_14000cbe0(longlong param_1,FILE *param_2,longlong *param_3) { ulonglong uVar1; char cVar2; longlong *plVar3; size_t *psVar4; size_t *psVar5; longlong *plVar6; undefined *_Src; ulonglong uVar7; size_t *local_30; void *local_28; size_t *local_20; void *local_18; local_20 = &DAT_1401bcf30; local_30 = &DAT_1401bcf30; FUN_14000b500((undefined8 *)(param_1 + 0x20),(longlong *)&local_20); FUN_14000b500((undefined8 *)(param_1 + 0x30),(longlong *)&local_30); psVar5 = local_20; psVar4 = local_30; plVar3 = *(longlong **)(param_1 + 0x30); if (*plVar3 != 0) { plVar6 = plVar3 + 2; cVar2 = (char)*plVar6; while (cVar2 != '\0') { if (cVar2 == '\"') { if ((longlong)plVar6 - (longlong)plVar3 != 0xf) { if (param_2 != (FILE *)0x0) { fprintf(param_2,"%s=\'%s\'",local_20 + 2,local_30 + 2); } if (param_3 == (longlong *)0x0) goto LAB_14000ce35; FUN_14000b060(param_3,psVar5 + 2,*psVar5); plVar3 = (longlong *)*param_3; uVar7 = *plVar3 + 2; if (((ulonglong)plVar3[1] < uVar7) && (uVar1 = plVar3[1] + uVar7, (ulonglong)plVar3[1] < uVar1)) { FUN_14000ae90(param_3,uVar1); } memmove((void *)(*param_3 + *(longlong *)*param_3 + 0x10),&DAT_14015bf60,2); *(ulonglong *)*param_3 = uVar7; *(undefined1 *)(*param_3 + 0x10 + uVar7) = 0; FUN_14000b060(param_3,psVar4 + 2,*psVar4); plVar3 = (longlong *)*param_3; uVar7 = *plVar3 + 1; if (((ulonglong)plVar3[1] < uVar7) && (uVar1 = plVar3[1] + uVar7, (ulonglong)plVar3[1] < uVar1)) { FUN_14000ae90(param_3,uVar1); } _Src = &DAT_14015bf64; goto LAB_14000ce10; } break; } plVar6 = (longlong *)((longlong)plVar6 + 1); cVar2 = *(char *)plVar6; } } if (param_2 != (FILE *)0x0) { fprintf(param_2,"%s=\"%s\"",local_20 + 2,local_30 + 2); } if (param_3 != (longlong *)0x0) { FUN_14000b060(param_3,psVar5 + 2,*psVar5); plVar3 = (longlong *)*param_3; uVar7 = *plVar3 + 2; if (((ulonglong)plVar3[1] < uVar7) && (uVar1 = plVar3[1] + uVar7, (ulonglong)plVar3[1] < uVar1)) { FUN_14000ae90(param_3,uVar1); } memmove((void *)(*param_3 + *(longlong *)*param_3 + 0x10),&DAT_14015bf50,2); *(ulonglong *)*param_3 = uVar7; *(undefined1 *)(*param_3 + 0x10 + uVar7) = 0; FUN_14000b060(param_3,psVar4 + 2,*psVar4); plVar3 = (longlong *)*param_3; uVar7 = *plVar3 + 1; if (((ulonglong)plVar3[1] < uVar7) && (uVar1 = plVar3[1] + uVar7, (ulonglong)plVar3[1] < uVar1)) { FUN_14000ae90(param_3,uVar1); } _Src = &DAT_14015bf54; LAB_14000ce10: memmove((void *)(*param_3 + *(longlong *)*param_3 + 0x10),_Src,1); *(ulonglong *)*param_3 = uVar7; *(undefined1 *)(*param_3 + 0x10 + uVar7) = 0; } LAB_14000ce35: if (psVar4 != &DAT_1401bcf30) { operator_delete__(local_28); } if (psVar5 != &DAT_1401bcf30) { operator_delete__(local_18); } return; }