/* MessageServer_Release_x64.exe sha256 7911b15c4379625eaa12ff227708aa3a033bc6ac2cf6b34283136e3a62df25f1 * Ghidra 12.1.2 decompiler output for 0x140103b60 FUN_140103b60 * Pseudocode, not original source. */ ulonglong FUN_140103b60(int *param_1,char *param_2,uint param_3) { char *pcVar1; char cVar2; int iVar3; longlong lVar4; ulonglong uVar5; uint uVar6; char cVar7; FUN_140109a60(param_1); if (0x3e < param_3 - 2) { return 0xfffffffd; } cVar2 = *param_2; if (cVar2 == '-') { param_2 = param_2 + 1; } FUN_140109a60(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_1401ae330[lVar4]) break; lVar4 = lVar4 + 1; uVar6 = uVar6 + 1; } while (lVar4 < 0x40); if ((int)param_3 <= (int)uVar6) break; uVar5 = FUN_140104300(param_1,param_3,param_1); if ((int)uVar5 != 0) { return uVar5; } uVar5 = FUN_140103f50(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; }