void RT_SHA256_Hash(uint *param_1)
{
int iVar1;
uint uVar2;
uint *puVar3;
uint uVar4;
uint uVar5;
uint uVar6;
uint uVar7;
uint uVar8;
uint uVar9;
uint uVar10;
uint *__dest;
int *piVar11;
uint uVar12;
uint uVar13;
uint uVar14;
uint local_15c [9];
uint local_138 [5];
uint local_124 [17];
uint auStack_e0 [49];
__dest = local_124 + 1;
memmove(__dest,param_1 + 10,0x40) //possible issue identified - semgrep
puVar3 = __dest;
while( true ) {
*puVar3 = local_124[1] >> 0x18 | local_124[1] << 0x18 | (local_124[1] & 0xff00) << 8 |
(local_124[1] & 0xff0000) >> 8;
puVar3 = puVar3 + 1;
if (puVar3 == auStack_e0) break;
local_124[1] = *puVar3;
}
piVar11 = &SHA256_K;
uVar7 = 0;
uVar2 = param_1[7];
uVar12 = param_1[4];
uVar8 = *param_1;
uVar6 = param_1[1];
uVar9 = param_1[2];
uVar4 = param_1[3];
uVar5 = param_1[5];
uVar14 = param_1[6];
while( true ) {
uVar13 = uVar5;
uVar10 = uVar9;
uVar9 = uVar6;
uVar6 = uVar8;
uVar5 = uVar12;
iVar1 = *__dest + *piVar11 + uVar2 +
((uVar5 >> 0xb) + uVar5 * 0x200000 ^ (uVar5 >> 6) + uVar5 * 0x4000000 ^
(uVar5 >> 0x19) + uVar5 * 0x80) + (~uVar5 & uVar14 ^ uVar13 & uVar5);
uVar7 = uVar7 + 1;
uVar12 = iVar1 + uVar4;
piVar11 = piVar11 + 1;
uVar8 = ((uVar9 ^ uVar10) & uVar6 ^ uVar9 & uVar10) +
((uVar6 >> 0xd) + uVar6 * 0x80000 ^ (uVar6 >> 2) + uVar6 * 0x40000000 ^
(uVar6 >> 0x16) + uVar6 * 0x400) + iVar1;
if (uVar7 == 0x40) break;
if (0xf < uVar7) {
uVar2 = __dest[-1];
uVar4 = __dest[-0xe];
__dest[1] = __dest[-0xf] + __dest[-6] +
((uVar2 >> 0x13) + uVar2 * 0x2000 ^ (uVar2 >> 0x11) + uVar2 * 0x8000 ^ uVar2 >> 10
) + ((uVar4 >> 0x12) + uVar4 * 0x4000 ^ (uVar4 >> 7) + uVar4 * 0x2000000 ^
uVar4 >> 3);
}
__dest = __dest + 1;
uVar2 = uVar14;
uVar4 = uVar10;
uVar14 = uVar13;
}
*param_1 = *param_1 + uVar8;
param_1[2] = param_1[2] + uVar9;
param_1[3] = param_1[3] + uVar10;
param_1[4] = param_1[4] + uVar12;
param_1[1] = param_1[1] + uVar6;
param_1[5] = param_1[5] + uVar5;
param_1[6] = param_1[6] + uVar13;
param_1[7] = param_1[7] + uVar14;
memset(param_1 + 10,0,0x40) //possible issue identified - semgrep
param_1[0x1a] = 0;
return;
}