/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186 * Ghidra 12.1.2 decompiler output for 0x1400c8990 FUN_1400c8990 * Pseudocode, not original source. */ undefined8 FUN_1400c8990(wchar_t *param_1,wchar_t *param_2) { wchar_t wVar1; int iVar2; errno_t eVar3; undefined8 uVar4; longlong lVar5; undefined **ppuVar6; uint uVar7; wchar_t *pwVar8; if (param_2 == (wchar_t *)0x0) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } ppuVar6 = &PTR_DAT_140107160; uVar7 = 0; do { if ((wchar_t *)*ppuVar6 != (wchar_t *)0x0) { iVar2 = _wcsicmp(param_2,(wchar_t *)*ppuVar6); if (iVar2 == 0) { if (uVar7 != 0xffffffff) { *(uint *)(param_1 + 0x1228) = uVar7; *(undefined4 *)(param_1 + 0x122a) = *(undefined4 *)(&DAT_140107168 + (longlong)(int)uVar7 * 0x10); param_1[0x1226] = *(wchar_t *)(&DAT_14010716c + (longlong)(int)uVar7 * 0x10); goto LAB_1400c8a24; } break; } } uVar7 = uVar7 + 1; ppuVar6 = ppuVar6 + 2; } while (uVar7 < 8); lVar5 = -1; uVar4 = 0; param_1[0x1228] = L'\xffff'; param_1[0x1229] = L'\xffff'; pwVar8 = param_2; do { if (lVar5 == 0) break; lVar5 = lVar5 + -1; wVar1 = *pwVar8; pwVar8 = pwVar8 + 1; } while (wVar1 != L'\0'); uVar7 = ~(uint)lVar5 - 1; *(uint *)(param_1 + 0x122a) = uVar7; if (uVar7 < 0x21) { param_1[0x1226] = L'\0'; LAB_1400c8a24: eVar3 = wcsncpy_s(param_1,0x21,param_2,(ulonglong)*(uint *)(param_1 + 0x122a)); if (eVar3 != 0) { if (eVar3 == 0xc) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x8007000e); } if ((eVar3 == 0x16) || (eVar3 == 0x22)) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80070057); } if (eVar3 != 0x50) { /* WARNING: Subroutine does not return */ FUN_1400050d0(0x80004005); } } param_1[*(uint *)(param_1 + 0x122a)] = L'\0'; uVar4 = 1; } return uVar4; }