void FUN_004023dc(char *param_1,char *param_2)
{
size_t sVar1;
byte *pbVar2;
char *pcVar3;
char *pcVar4;
byte *pbVar5;
char *pcVar6;
byte local_190 [16];
undefined1 auStack_180 [88];
char acStack_128 [32];
char local_108 [228];
memset(acStack_128,0,0x100) //possible issue identified - semgrep
MD5Init(auStack_180);
pbVar5 = local_190;
sVar1 = strlen(param_1);
MD5Update(auStack_180,param_1,sVar1);
MD5Final(pbVar5,auStack_180);
pbVar2 = pbVar5;
pcVar3 = acStack_128;
do {
pcVar6 = pcVar3 + 2;
sprintf(pcVar3,"%02x",(uint)*pbVar2) //possible issue identified - semgrep
pbVar2 = pbVar2 + 1;
pcVar3 = pcVar6;
} while (pcVar6 != local_108);
strcat(acStack_128,".") //possible issue identified - semgrep
strcat(acStack_128,param_2) //possible issue identified - semgrep
MD5Init(auStack_180);
sVar1 = strlen(acStack_128);
MD5Update(auStack_180,acStack_128,sVar1);
MD5Final(local_190,auStack_180);
pcVar3 = acStack_128;
do {
pcVar4 = pcVar3 + 2;
sprintf(pcVar3,"%02x",(uint)*pbVar5) //possible issue identified - semgrep
pbVar5 = pbVar5 + 1;
pcVar3 = pcVar4;
} while (pcVar4 != pcVar6);
local_108[0] = '\0';
if (param_1 != (char *)0x0) {
free(param_1);
}
strdup(acStack_128);
return;
}