91 lines
2.3 KiB
C
91 lines
2.3 KiB
C
/* Agent_Release_x64.exe sha256 6f2be7b8eb799ba51b359d1958720aac5baee5b7ee0d1d36684d3cbd72d45469
|
|
* Ghidra 12.1.2 decompiler output for 0x1400ac940 FUN_1400ac940
|
|
* Pseudocode, not original source. */
|
|
|
|
int FUN_1400ac940(char *param_1,char *param_2,int *param_3,uint param_4)
|
|
|
|
{
|
|
byte bVar1;
|
|
char cVar2;
|
|
short sVar3;
|
|
short sVar4;
|
|
int iVar5;
|
|
uint uVar6;
|
|
|
|
if (param_1 == (char *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14000b450(0x80004005);
|
|
}
|
|
if (param_2 == (char *)0x0) {
|
|
/* WARNING: Subroutine does not return */
|
|
FUN_14000b450(0x80004005);
|
|
}
|
|
cVar2 = *param_1;
|
|
uVar6 = 0;
|
|
iVar5 = 1;
|
|
if (cVar2 != '\0') {
|
|
do {
|
|
if (uVar6 == param_4) {
|
|
iVar5 = 0;
|
|
}
|
|
else if (iVar5 != 0) {
|
|
if (cVar2 == '%') {
|
|
if ((param_1[1] != '\0') && (param_1[2] != '\0')) {
|
|
bVar1 = param_1[1];
|
|
if ((byte)(bVar1 - 0x30) < 10) {
|
|
sVar4 = bVar1 - 0x30;
|
|
}
|
|
else if ((byte)(bVar1 + 0xbf) < 6) {
|
|
sVar4 = bVar1 - 0x37;
|
|
}
|
|
else if ((byte)(bVar1 + 0x9f) < 6) {
|
|
sVar4 = bVar1 - 0x57;
|
|
}
|
|
else {
|
|
sVar4 = -1;
|
|
}
|
|
bVar1 = param_1[2];
|
|
param_1 = param_1 + 2;
|
|
if ((byte)(bVar1 - 0x30) < 10) {
|
|
sVar3 = bVar1 - 0x30;
|
|
}
|
|
else if ((byte)(bVar1 + 0xbf) < 6) {
|
|
sVar3 = bVar1 - 0x37;
|
|
}
|
|
else if ((byte)(bVar1 + 0x9f) < 6) {
|
|
sVar3 = bVar1 - 0x57;
|
|
}
|
|
else {
|
|
sVar3 = -1;
|
|
}
|
|
if ((-1 < sVar4) && (-1 < sVar3)) {
|
|
*param_2 = (char)sVar4 * '\x10' + (char)sVar3;
|
|
goto LAB_1400aca51;
|
|
}
|
|
}
|
|
iVar5 = 0;
|
|
goto LAB_1400aca74;
|
|
}
|
|
*param_2 = cVar2;
|
|
LAB_1400aca51:
|
|
param_2 = param_2 + 1;
|
|
}
|
|
cVar2 = param_1[1];
|
|
param_1 = param_1 + 1;
|
|
uVar6 = uVar6 + 1;
|
|
} while (cVar2 != '\0');
|
|
if (iVar5 == 0) goto LAB_1400aca74;
|
|
}
|
|
if (uVar6 < param_4) {
|
|
*param_2 = '\0';
|
|
}
|
|
LAB_1400aca74:
|
|
if (param_3 != (int *)0x0) {
|
|
*param_3 = uVar6 + 1;
|
|
}
|
|
if (param_4 < uVar6 + 1) {
|
|
iVar5 = 0;
|
|
}
|
|
return iVar5;
|
|
}
|
|
|