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

110 lines
2.9 KiB
C

/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1
* Ghidra 12.1.2 decompiler output for 0x1400a26f0 FUN_1400a26f0
* Pseudocode, not original source. */
longlong * FUN_1400a26f0(longlong *param_1)
{
wint_t *pwVar1;
undefined *puVar2;
int iVar3;
wint_t *pwVar4;
wint_t *pwVar5;
int iVar6;
int iVar7;
undefined *_Dst;
pwVar4 = (wint_t *)*param_1;
if ((wint_t *)*param_1 == (wint_t *)0x0) {
pwVar4 = (wint_t *)PTR_DAT_1401ac010;
}
iVar3 = iswspace(*pwVar4);
while (iVar3 != 0) {
pwVar4 = (wint_t *)FUN_14006ca70((longlong)pwVar4);
iVar3 = iswspace(*pwVar4);
}
pwVar1 = (wint_t *)*param_1;
pwVar5 = pwVar1;
if (pwVar1 == (wint_t *)0x0) {
pwVar5 = (wint_t *)PTR_DAT_1401ac010;
}
if (pwVar4 == pwVar5) {
return param_1;
}
pwVar5 = pwVar1;
if (pwVar1 == (wint_t *)0x0) {
pwVar5 = (wint_t *)PTR_DAT_1401ac010;
}
iVar6 = 0;
iVar3 = 0;
if (pwVar1 != (wint_t *)0x0) {
if (pwVar1 != (wint_t *)PTR_DAT_1401ac010) {
iVar3 = *(int *)(pwVar1 + -4);
}
if (pwVar1 != (wint_t *)0x0) {
iVar7 = 0;
if (pwVar1 != (wint_t *)PTR_DAT_1401ac010) {
iVar7 = *(int *)(pwVar1 + -4);
}
goto LAB_1400a278c;
}
}
iVar7 = 0;
LAB_1400a278c:
if (((iVar3 <= iVar7) && (iVar3 = iVar6, pwVar1 != (wint_t *)0x0)) &&
(iVar3 = 0, pwVar1 != (wint_t *)PTR_DAT_1401ac010)) {
iVar3 = *(int *)(pwVar1 + -4);
}
iVar7 = 1;
if (1 < iVar3) {
iVar7 = iVar3;
}
iVar3 = 0;
if ((pwVar1 != (wint_t *)0x0) && (iVar3 = 0, pwVar1 != (wint_t *)PTR_DAT_1401ac010)) {
iVar3 = *(int *)(pwVar1 + -4);
}
if (iVar3 < iVar7) {
FUN_140002d60(param_1,iVar7);
}
FUN_140002e40(param_1);
puVar2 = (undefined *)*param_1;
iVar3 = (int)((longlong)pwVar4 - (longlong)pwVar5 >> 1);
_Dst = puVar2;
if (puVar2 == (undefined *)0x0) {
_Dst = PTR_DAT_1401ac010;
}
iVar7 = 0;
if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1401ac010)) {
iVar7 = *(int *)(puVar2 + -8);
}
iVar7 = iVar7 - iVar3;
if (puVar2 == (undefined *)0x0) {
iVar6 = 0;
}
else if (puVar2 != PTR_DAT_1401ac010) {
iVar6 = *(int *)(puVar2 + -8);
}
memmove_s(_Dst,(longlong)(iVar6 + 1) * 2,_Dst + (longlong)iVar3 * 2,(longlong)(iVar7 + 1) * 2);
puVar2 = (undefined *)*param_1;
iVar3 = 0;
iVar6 = 0;
if (0 < iVar7) {
iVar6 = iVar7;
}
if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1401ac010)) {
iVar3 = *(int *)(puVar2 + -8);
}
if ((iVar3 <= iVar6) && (iVar6 = 0, puVar2 != (undefined *)0x0)) {
if (puVar2 == PTR_DAT_1401ac010) {
return param_1;
}
iVar6 = *(int *)(puVar2 + -8);
}
if (((puVar2 != PTR_DAT_1401ac010) && (puVar2 != (undefined *)0x0)) &&
((int *)(puVar2 + -8) != (int *)0x0)) {
*(int *)(puVar2 + -8) = iVar6;
*(undefined2 *)(puVar2 + (longlong)iVar6 * 2) = 0;
}
return param_1;
}