56 lines
1.6 KiB
C
56 lines
1.6 KiB
C
/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
|
|
* Ghidra 12.1.2 decompiler output for 0x14000fdd0 FUN_14000fdd0
|
|
* Pseudocode, not original source. */
|
|
|
|
longlong * FUN_14000fdd0(longlong *param_1,LPCSTR param_2)
|
|
|
|
{
|
|
int *piVar1;
|
|
longlong *plVar2;
|
|
int iVar3;
|
|
longlong lVar4;
|
|
|
|
if (param_2 != (LPCSTR)0x0) {
|
|
iVar3 = MultiByteToWideChar(3,0,param_2,-1,(LPWSTR)0x0,0);
|
|
iVar3 = iVar3 + -1;
|
|
if (0 < iVar3) {
|
|
if ((int)(1U - *(int *)(*param_1 + -8) | *(int *)(*param_1 + -0xc) - iVar3) < 0) {
|
|
FUN_140011520(param_1,iVar3);
|
|
}
|
|
MultiByteToWideChar(3,0,param_2,-1,(LPWSTR)*param_1,iVar3);
|
|
if (iVar3 <= *(int *)(*param_1 + -0xc)) {
|
|
*(int *)(*param_1 + -0x10) = iVar3;
|
|
*(undefined2 *)(*param_1 + (longlong)iVar3 * 2) = 0;
|
|
return param_1;
|
|
}
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_1400050d0(0x80070057);
|
|
}
|
|
}
|
|
lVar4 = *param_1;
|
|
plVar2 = *(longlong **)(lVar4 + -0x18);
|
|
if (*(int *)(lVar4 + -0x10) != 0) {
|
|
if (*(int *)(lVar4 + -8) < 0) {
|
|
if (*(int *)(lVar4 + -0xc) < 0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_1400050d0(0x80070057);
|
|
}
|
|
*(undefined4 *)(lVar4 + -0x10) = 0;
|
|
*(undefined2 *)*param_1 = 0;
|
|
}
|
|
else {
|
|
LOCK();
|
|
piVar1 = (int *)(lVar4 + -8);
|
|
iVar3 = *piVar1;
|
|
*piVar1 = *piVar1 + -1;
|
|
UNLOCK();
|
|
if (iVar3 + -1 < 1) {
|
|
(**(code **)(**(longlong **)(lVar4 + -0x18) + 8))();
|
|
}
|
|
lVar4 = (**(code **)(*plVar2 + 0x18))(plVar2);
|
|
*param_1 = lVar4 + 0x18;
|
|
}
|
|
}
|
|
return param_1;
|
|
}
|
|
|