void RT_SHA1_Hash(uint *param_1)
{
uint uVar1;
uint uVar2;
uint uVar3;
uint *puVar4;
uint uVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uint uVar9;
uint uVar10;
uint *__dest;
uint local_150 [80];
__dest = local_150;
memmove(__dest,param_1 + 8,0x40) //possible issue identified - semgrep
puVar4 = __dest;
while( true ) {
*puVar4 = local_150[0] >> 0x18 | local_150[0] << 0x18 | (local_150[0] & 0xff00) << 8 |
(local_150[0] & 0xff0000) >> 8;
puVar4 = puVar4 + 1;
if (puVar4 == local_150 + 0x10) break;
local_150[0] = *puVar4;
}
puVar4 = local_150 + 0xd;
while( true ) {
uVar1 = puVar4[-5] ^ local_150[0xd] ^ puVar4[-0xb] ^ puVar4[-0xd];
puVar4[3] = uVar1 * 2 - ((int)uVar1 >> 0x1f);
puVar4 = puVar4 + 1;
if (puVar4 == local_150 + 0x4d) break;
local_150[0xd] = *puVar4;
}
uVar1 = param_1[4];
uVar3 = param_1[1];
uVar2 = *param_1;
uVar8 = param_1[3];
uVar9 = param_1[2];
do {
uVar5 = uVar9;
uVar7 = uVar8;
uVar6 = uVar2;
uVar2 = *__dest;
__dest = __dest + 1;
uVar9 = (uVar3 >> 2) + uVar3 * 0x40000000;
uVar2 = uVar2 + 0x5a827999 + uVar1 + (uVar6 >> 0x1b) + uVar6 * 0x20 +
(~uVar3 & uVar7 ^ uVar5 & uVar3);
uVar1 = uVar7;
uVar3 = uVar6;
uVar8 = uVar5;
} while (__dest != local_150 + 0x14);
do {
uVar3 = uVar9;
uVar8 = uVar2;
uVar1 = uVar5;
uVar2 = *__dest;
__dest = __dest + 1;
uVar9 = (uVar6 >> 2) + uVar6 * 0x40000000;
uVar2 = uVar2 + 0x6ed9eba1 + uVar7 + (uVar8 >> 0x1b) + uVar8 * 0x20 + (uVar3 ^ uVar6 ^ uVar1);
uVar5 = uVar3;
uVar6 = uVar8;
uVar7 = uVar1;
} while (__dest != local_150 + 0x28);
do {
uVar6 = uVar2;
uVar7 = uVar9;
uVar5 = uVar3;
uVar3 = *__dest;
__dest = __dest + 1;
uVar9 = (uVar8 >> 2) + uVar8 * 0x40000000;
uVar2 = uVar3 + 0x8f1bbcdc + uVar1 + (uVar6 >> 0x1b) + uVar6 * 0x20 +
((uVar7 ^ uVar5) & uVar8 ^ uVar5 & uVar7);
uVar1 = uVar5;
uVar3 = uVar7;
uVar8 = uVar6;
} while (__dest != local_150 + 0x3c);
do {
uVar10 = uVar9;
uVar8 = uVar2;
uVar3 = uVar7;
uVar1 = *__dest;
__dest = __dest + 1;
uVar2 = uVar1 + 0xca62c1d6 + uVar5 + (uVar8 >> 0x1b) + uVar8 * 0x20 + (uVar10 ^ uVar6 ^ uVar3);
uVar9 = (uVar6 >> 2) + uVar6 * 0x40000000;
uVar5 = uVar3;
uVar6 = uVar8;
uVar7 = uVar10;
} while (__dest != (uint *)&stack0xfffffff0);
param_1[1] = param_1[1] + uVar8;
*param_1 = uVar2 + *param_1;
param_1[3] = param_1[3] + uVar10;
param_1[4] = param_1[4] + uVar3;
param_1[2] = param_1[2] + uVar9;
memset(param_1 + 8,0,0x40) //possible issue identified - semgrep
param_1[0x18] = 0;
return;
}