server-re/decomp/AgentManager_Release_x64/full/functions/0x1400d5f70.c
2026-10-15 09:58:24 -04:00

56 lines
1.3 KiB
C

/* AgentManager_Release_x64.exe sha256 8fd8ca91725858651a7839d34257b10c2970ac16c97e60c523b8b0c983fcb186
* Ghidra 12.1.2 decompiler output for 0x1400d5f70 FUN_1400d5f70
* Pseudocode, not original source. */
ulonglong FUN_1400d5f70(int *param_1,char *param_2,uint param_3)
{
char *pcVar1;
char cVar2;
int iVar3;
longlong lVar4;
ulonglong uVar5;
uint uVar6;
char cVar7;
FUN_1400ddd40(param_1);
if (0x3e < param_3 - 2) {
return 0xfffffffd;
}
cVar2 = *param_2;
if (cVar2 == '-') {
param_2 = param_2 + 1;
}
FUN_1400ddd40(param_1);
cVar7 = *param_2;
while (cVar7 != '\0') {
if ((int)param_3 < 0x24) {
iVar3 = toupper((int)cVar7);
cVar7 = (char)iVar3;
}
uVar6 = 0;
lVar4 = 0;
do {
if (cVar7 == PTR_s_0123456789ABCDEFGHIJKLMNOPQRSTUV_1401712d0[lVar4]) break;
lVar4 = lVar4 + 1;
uVar6 = uVar6 + 1;
} while (lVar4 < 0x40);
if ((int)param_3 <= (int)uVar6) break;
uVar5 = FUN_1400d6710(param_1,param_3,param_1);
if ((int)uVar5 != 0) {
return uVar5;
}
uVar5 = FUN_1400d6360(param_1,uVar6,param_1);
if ((int)uVar5 != 0) {
return uVar5;
}
pcVar1 = param_2 + 1;
param_2 = param_2 + 1;
cVar7 = *pcVar1;
}
if (*param_1 != 0) {
param_1[2] = (uint)(cVar2 == '-');
}
return 0;
}