/* DBCServer_Release_x64.exe sha256 d9e4fccdf3482e50247686d4452c0b13c75a53efc4bd7320668eece8d1ce828c * Ghidra 12.1.2 decompiler output for 0x1401c8300 FUN_1401c8300 * Pseudocode, not original source. */ longlong * FUN_1401c8300(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_1403440a0; } iVar3 = iswspace(*pwVar4); while (iVar3 != 0) { pwVar4 = (wint_t *)FUN_14016d7c0(pwVar4); iVar3 = iswspace(*pwVar4); } pwVar1 = (wint_t *)*param_1; pwVar5 = pwVar1; if (pwVar1 == (wint_t *)0x0) { pwVar5 = (wint_t *)PTR_DAT_1403440a0; } if (pwVar4 == pwVar5) { return param_1; } pwVar5 = pwVar1; if (pwVar1 == (wint_t *)0x0) { pwVar5 = (wint_t *)PTR_DAT_1403440a0; } iVar6 = 0; iVar3 = 0; if (pwVar1 != (wint_t *)0x0) { if (pwVar1 != (wint_t *)PTR_DAT_1403440a0) { iVar3 = *(int *)(pwVar1 + -4); } if (pwVar1 != (wint_t *)0x0) { iVar7 = 0; if (pwVar1 != (wint_t *)PTR_DAT_1403440a0) { iVar7 = *(int *)(pwVar1 + -4); } goto LAB_1401c839c; } } iVar7 = 0; LAB_1401c839c: if (((iVar3 <= iVar7) && (iVar3 = iVar6, pwVar1 != (wint_t *)0x0)) && (iVar3 = 0, pwVar1 != (wint_t *)PTR_DAT_1403440a0)) { 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_1403440a0)) { iVar3 = *(int *)(pwVar1 + -4); } if (iVar3 < iVar7) { FUN_14004e770(param_1,iVar7); } FUN_14004e850(param_1); puVar2 = (undefined *)*param_1; iVar3 = (int)((longlong)pwVar4 - (longlong)pwVar5 >> 1); _Dst = puVar2; if (puVar2 == (undefined *)0x0) { _Dst = PTR_DAT_1403440a0; } iVar7 = 0; if ((puVar2 != (undefined *)0x0) && (puVar2 != PTR_DAT_1403440a0)) { iVar7 = *(int *)(puVar2 + -8); } iVar7 = iVar7 - iVar3; if (puVar2 == (undefined *)0x0) { iVar6 = 0; } else if (puVar2 != PTR_DAT_1403440a0) { 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_1403440a0)) { iVar3 = *(int *)(puVar2 + -8); } if ((iVar3 <= iVar6) && (iVar6 = 0, puVar2 != (undefined *)0x0)) { if (puVar2 == PTR_DAT_1403440a0) { return param_1; } iVar6 = *(int *)(puVar2 + -8); } if (((puVar2 != PTR_DAT_1403440a0) && (puVar2 != (undefined *)0x0)) && ((int *)(puVar2 + -8) != (int *)0x0)) { *(int *)(puVar2 + -8) = iVar6; *(undefined2 *)(puVar2 + (longlong)iVar6 * 2) = 0; } return param_1; }