Skip to content

Instantly share code, notes, and snippets.

@gquere
Created June 3, 2020 18:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gquere/df4edf8f862d7e622502d1d8452cefa3 to your computer and use it in GitHub Desktop.
Save gquere/df4edf8f862d7e622502d1d8452cefa3 to your computer and use it in GitHub Desktop.
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
void ripemd(int *output, int *input)
{
uint iVar1;
uint iVar2;
uint iVar3;
uint iVar4;
uint iVar5;
uint iVar6;
uint iVar7;
uint iVar8;
uint iVar9;
uint iVar10;
uint iVar11;
uint iVar12;
uint iVar13;
uint iVar14;
uint iVar15;
uint iVar16;
uint uVar17;
uint uVar18;
uint uVar19;
uint iVar20;
uint uVar21;
uint uVar22;
uint uVar23;
uint uVar24;
uint uVar25;
uint uVar26;
uint uVar27;
uint uVar28;
iVar16 = *input;
iVar14 = input[1];
iVar1 = input[2];
iVar2 = input[3];
iVar3 = input[4];
iVar4 = input[5];
iVar5 = input[6];
iVar6 = input[7];
iVar7 = input[8];
iVar8 = input[9];
iVar9 = input[10];
iVar10 = input[0xb];
iVar11 = input[0xc];
iVar12 = input[0xd];
iVar15 = input[0xe];
iVar13 = input[0xf];
uVar18 = output[3];
uVar19 = output[4];
uVar23 = output[5];
iVar20 = output[6];
// iVar16 = X[0]
// uVar17 = aa = 0x67452301UL
// uVar18 = bb = 0xefcdab89UL
// uVar19 = cc = MDbuf[2] = 0x98badcfeUL
// uVar23 = dd = 0x10325476UL
// iVar20 = ee = MDbuf[4] = 0xc3d2e1f0UL
uVar17 = output[2] + (uVar18 ^ uVar19 ^ uVar23) + iVar16;
uVar17 = (uVar17 * 0x800 | uVar17 >> 0x15) + iVar20; // aa = ROL11(aa) + ee
uVar25 = uVar19 << 10 | uVar19 >> 0x16; // cc = ROL10(cc)
uVar19 = output[2] + 0x50a28be6 + (uVar18 ^ (uVar19 | ~uVar23)) + iVar4;
uVar27 = (uVar19 * 0x100 | uVar19 >> 0x18) + iVar20;
uVar19 = iVar20 + (uVar17 ^ uVar18 ^ uVar25) + iVar14;
uVar19 = (uVar19 * 0x4000 | uVar19 >> 0x12) + uVar23;
uVar22 = uVar18 << 10 | uVar18 >> 0x16;
uVar18 = iVar20 + 0x50a28be6 + (uVar27 ^ (uVar18 | ~uVar25)) + iVar15;
uVar21 = (uVar18 * 0x200 | uVar18 >> 0x17) + uVar23;
uVar18 = uVar23 + (uVar19 ^ uVar17 ^ uVar22) + iVar1;
uVar18 = (uVar18 * 0x8000 | uVar18 >> 0x11) + uVar25;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar23 = uVar23 + 0x50a28be6 + (uVar21 ^ (uVar27 | ~uVar22)) + iVar6;
uVar24 = (uVar23 * 0x200 | uVar23 >> 0x17) + uVar25;
uVar28 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar23 = uVar25 + (uVar18 ^ uVar19 ^ uVar17) + iVar2;
uVar26 = (uVar23 * 0x1000 | uVar23 >> 0x14) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar23 = uVar25 + 0x50a28be6 + (uVar24 ^ (uVar21 | ~uVar28)) + iVar16;
uVar25 = (uVar23 * 0x800 | uVar23 >> 0x15) + uVar22;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar23 = uVar22 + (uVar26 ^ uVar18 ^ uVar19) + iVar3;
uVar27 = (uVar23 * 0x20 | uVar23 >> 0x1b) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar22 + 0x50a28be6 + (uVar25 ^ (uVar24 | ~uVar21)) + iVar8;
uVar23 = (uVar23 * 0x2000 | uVar23 >> 0x13) + uVar28;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar17 = uVar17 + (uVar27 ^ uVar26 ^ uVar18) + iVar4;
uVar17 = (uVar17 * 0x100 | uVar17 >> 0x18) + uVar19;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar22 = uVar28 + 0x50a28be6 + (uVar23 ^ (uVar25 | ~uVar24)) + iVar1;
uVar28 = (uVar22 * 0x8000 | uVar22 >> 0x11) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + (uVar17 ^ uVar27 ^ uVar26) + iVar5;
uVar19 = (uVar19 * 0x80 | uVar19 >> 0x19) + uVar18;
uVar22 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar21 = uVar21 + 0x50a28be6 + (uVar28 ^ (uVar23 | ~uVar25)) + iVar10;
uVar21 = (uVar21 * 0x8000 | uVar21 >> 0x11) + uVar24;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + (uVar19 ^ uVar17 ^ uVar22) + iVar6;
uVar18 = (uVar18 * 0x200 | uVar18 >> 0x17) + uVar26;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar24 + 0x50a28be6 + (uVar21 ^ (uVar28 | ~uVar23)) + iVar3;
uVar27 = (uVar27 * 0x20 | uVar27 >> 0x1b) + uVar25;
uVar28 = uVar28 * 0x400 | uVar28 >> 0x16;
uVar26 = uVar26 + (uVar18 ^ uVar19 ^ uVar17) + iVar7;
uVar24 = (uVar26 * 0x800 | uVar26 >> 0x15) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x50a28be6 + (uVar27 ^ (uVar21 | ~uVar28)) + iVar12;
uVar25 = (uVar25 * 0x80 | uVar25 >> 0x19) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + (uVar24 ^ uVar18 ^ uVar19) + iVar8;
uVar22 = (uVar22 * 0x2000 | uVar22 >> 0x13) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x50a28be6 + (uVar25 ^ (uVar27 | ~uVar21)) + iVar5;
uVar23 = (uVar23 * 0x80 | uVar23 >> 0x19) + uVar28;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + (uVar22 ^ uVar24 ^ uVar18) + iVar9;
uVar17 = (uVar17 * 0x4000 | uVar17 >> 0x12) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar28 + 0x50a28be6 + (uVar23 ^ (uVar25 | ~uVar27)) + iVar13;
uVar26 = (uVar26 * 0x100 | uVar26 >> 0x18) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + (uVar17 ^ uVar22 ^ uVar24) + iVar10;
uVar19 = (uVar19 * 0x8000 | uVar19 >> 0x11) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x50a28be6 + (uVar26 ^ (uVar23 | ~uVar25)) + iVar7;
uVar21 = (uVar21 * 0x800 | uVar21 >> 0x15) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + (uVar19 ^ uVar17 ^ uVar22) + iVar11;
uVar18 = (uVar18 * 0x40 | uVar18 >> 0x1a) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x50a28be6 + (uVar21 ^ (uVar26 | ~uVar23)) + iVar14;
uVar27 = (uVar27 * 0x4000 | uVar27 >> 0x12) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + (uVar18 ^ uVar19 ^ uVar17) + iVar12;
uVar24 = (uVar24 * 0x80 | uVar24 >> 0x19) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x50a28be6 + (uVar27 ^ (uVar21 | ~uVar26)) + iVar9;
uVar25 = (uVar25 * 0x4000 | uVar25 >> 0x12) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + (uVar24 ^ uVar18 ^ uVar19) + iVar15;
uVar22 = (uVar22 * 0x200 | uVar22 >> 0x17) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x50a28be6 + (uVar25 ^ (uVar27 | ~uVar21)) + iVar2;
uVar23 = (uVar23 * 0x1000 | uVar23 >> 0x14) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + (uVar22 ^ uVar24 ^ uVar18) + iVar13;
uVar17 = (uVar17 * 0x100 | uVar17 >> 0x18) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x50a28be6 + (uVar23 ^ (uVar25 | ~uVar27)) + iVar11;
uVar26 = (uVar26 * 0x40 | uVar26 >> 0x1a) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x5a827999 + (uVar17 & uVar22 | ~uVar17 & uVar24) + iVar6;
uVar19 = (uVar19 * 0x80 | uVar19 >> 0x19) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x5c4dd124 + (uVar26 & uVar25 | uVar23 & ~uVar25) + iVar5;
uVar21 = (uVar21 * 0x200 | uVar21 >> 0x17) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x5a827999 + (uVar19 & uVar17 | ~uVar19 & uVar22) + iVar3;
uVar18 = (uVar18 * 0x40 | uVar18 >> 0x1a) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x5c4dd124 + (uVar21 & uVar23 | uVar26 & ~uVar23) + iVar10;
uVar27 = (uVar27 * 0x2000 | uVar27 >> 0x13) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x5a827999 + (uVar18 & uVar19 | ~uVar18 & uVar17) + iVar12;
uVar24 = (uVar24 * 0x100 | uVar24 >> 0x18) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x5c4dd124 + (uVar27 & uVar26 | uVar21 & ~uVar26) + iVar2;
uVar25 = (uVar25 * 0x8000 | uVar25 >> 0x11) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x5a827999 + (uVar24 & uVar18 | ~uVar24 & uVar19) + iVar14;
uVar22 = (uVar22 * 0x2000 | uVar22 >> 0x13) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x5c4dd124 + (uVar25 & uVar21 | uVar27 & ~uVar21) + iVar6;
uVar23 = (uVar23 * 0x80 | uVar23 >> 0x19) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x5a827999 + (uVar22 & uVar24 | ~uVar22 & uVar18) + iVar9;
uVar17 = (uVar17 * 0x800 | uVar17 >> 0x15) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x5c4dd124 + (uVar23 & uVar27 | uVar25 & ~uVar27) + iVar16;
uVar26 = (uVar26 * 0x1000 | uVar26 >> 0x14) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x5a827999 + (uVar17 & uVar22 | ~uVar17 & uVar24) + iVar5;
uVar19 = (uVar19 * 0x200 | uVar19 >> 0x17) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x5c4dd124 + (uVar26 & uVar25 | uVar23 & ~uVar25) + iVar12;
uVar21 = (uVar21 * 0x100 | uVar21 >> 0x18) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x5a827999 + (uVar19 & uVar17 | ~uVar19 & uVar22) + iVar13;
uVar18 = (uVar18 * 0x80 | uVar18 >> 0x19) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x5c4dd124 + (uVar21 & uVar23 | uVar26 & ~uVar23) + iVar4;
uVar27 = (uVar27 * 0x200 | uVar27 >> 0x17) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x5a827999 + (uVar18 & uVar19 | ~uVar18 & uVar17) + iVar2;
uVar24 = (uVar24 * 0x8000 | uVar24 >> 0x11) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x5c4dd124 + (uVar27 & uVar26 | uVar21 & ~uVar26) + iVar9;
uVar25 = (uVar25 * 0x800 | uVar25 >> 0x15) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x5a827999 + (uVar24 & uVar18 | ~uVar24 & uVar19) + iVar11;
uVar22 = (uVar22 * 0x80 | uVar22 >> 0x19) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x5c4dd124 + (uVar25 & uVar21 | uVar27 & ~uVar21) + iVar15;
uVar23 = (uVar23 * 0x80 | uVar23 >> 0x19) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x5a827999 + (uVar22 & uVar24 | ~uVar22 & uVar18) + iVar16;
uVar17 = (uVar17 * 0x1000 | uVar17 >> 0x14) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x5c4dd124 + (uVar23 & uVar27 | uVar25 & ~uVar27) + iVar13;
uVar26 = (uVar26 * 0x80 | uVar26 >> 0x19) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x5a827999 + (uVar17 & uVar22 | ~uVar17 & uVar24) + iVar8;
uVar19 = (uVar19 * 0x8000 | uVar19 >> 0x11) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x5c4dd124 + (uVar26 & uVar25 | uVar23 & ~uVar25) + iVar7;
uVar21 = (uVar21 * 0x1000 | uVar21 >> 0x14) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x5a827999 + (uVar19 & uVar17 | ~uVar19 & uVar22) + iVar4;
uVar18 = (uVar18 * 0x200 | uVar18 >> 0x17) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x5c4dd124 + (uVar21 & uVar23 | uVar26 & ~uVar23) + iVar11;
uVar27 = (uVar27 * 0x80 | uVar27 >> 0x19) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x5a827999 + (uVar18 & uVar19 | ~uVar18 & uVar17) + iVar1;
uVar24 = (uVar24 * 0x800 | uVar24 >> 0x15) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x5c4dd124 + (uVar27 & uVar26 | uVar21 & ~uVar26) + iVar3;
uVar25 = (uVar25 * 0x40 | uVar25 >> 0x1a) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x5a827999 + (uVar24 & uVar18 | ~uVar24 & uVar19) + iVar15;
uVar22 = (uVar22 * 0x80 | uVar22 >> 0x19) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x5c4dd124 + (uVar25 & uVar21 | uVar27 & ~uVar21) + iVar8;
uVar23 = (uVar23 * 0x8000 | uVar23 >> 0x11) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x5a827999 + (uVar22 & uVar24 | ~uVar22 & uVar18) + iVar10;
uVar17 = (uVar17 * 0x2000 | uVar17 >> 0x13) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x5c4dd124 + (uVar23 & uVar27 | uVar25 & ~uVar27) + iVar14;
uVar26 = (uVar26 * 0x2000 | uVar26 >> 0x13) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x5a827999 + (uVar17 & uVar22 | ~uVar17 & uVar24) + iVar7;
uVar19 = (uVar19 * 0x1000 | uVar19 >> 0x14) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x5c4dd124 + (uVar26 & uVar25 | uVar23 & ~uVar25) + iVar1;
uVar21 = (uVar21 * 0x800 | uVar21 >> 0x15) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x6ed9eba1 + ((uVar19 | ~uVar17) ^ uVar22) + iVar2;
uVar18 = (uVar18 * 0x800 | uVar18 >> 0x15) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x6d703ef3 + ((uVar21 | ~uVar26) ^ uVar23) + iVar13;
uVar27 = (uVar27 * 0x200 | uVar27 >> 0x17) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x6ed9eba1 + ((uVar18 | ~uVar19) ^ uVar17) + iVar9;
uVar24 = (uVar24 * 0x2000 | uVar24 >> 0x13) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x6d703ef3 + ((uVar27 | ~uVar21) ^ uVar26) + iVar4;
uVar25 = (uVar25 * 0x80 | uVar25 >> 0x19) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x6ed9eba1 + ((uVar24 | ~uVar18) ^ uVar19) + iVar15;
uVar22 = (uVar22 * 0x40 | uVar22 >> 0x1a) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x6d703ef3 + ((uVar25 | ~uVar27) ^ uVar21) + iVar14;
uVar23 = (uVar23 * 0x8000 | uVar23 >> 0x11) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x6ed9eba1 + ((uVar22 | ~uVar24) ^ uVar18) + iVar3;
uVar17 = (uVar17 * 0x80 | uVar17 >> 0x19) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x6d703ef3 + ((uVar23 | ~uVar25) ^ uVar27) + iVar2;
uVar26 = (uVar26 * 0x800 | uVar26 >> 0x15) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x6ed9eba1 + ((uVar17 | ~uVar22) ^ uVar24) + iVar8;
uVar19 = (uVar19 * 0x4000 | uVar19 >> 0x12) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x6d703ef3 + ((uVar26 | ~uVar23) ^ uVar25) + iVar6;
uVar21 = (uVar21 * 0x100 | uVar21 >> 0x18) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x6ed9eba1 + ((uVar19 | ~uVar17) ^ uVar22) + iVar13;
uVar18 = (uVar18 * 0x200 | uVar18 >> 0x17) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x6d703ef3 + ((uVar21 | ~uVar26) ^ uVar23) + iVar15;
uVar27 = (uVar27 * 0x40 | uVar27 >> 0x1a) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x6ed9eba1 + ((uVar18 | ~uVar19) ^ uVar17) + iVar7;
uVar24 = (uVar24 * 0x2000 | uVar24 >> 0x13) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x6d703ef3 + ((uVar27 | ~uVar21) ^ uVar26) + iVar5;
uVar25 = (uVar25 * 0x40 | uVar25 >> 0x1a) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x6ed9eba1 + ((uVar24 | ~uVar18) ^ uVar19) + iVar14;
uVar22 = (uVar22 * 0x8000 | uVar22 >> 0x11) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x6d703ef3 + ((uVar25 | ~uVar27) ^ uVar21) + iVar8;
uVar23 = (uVar23 * 0x4000 | uVar23 >> 0x12) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x6ed9eba1 + ((uVar22 | ~uVar24) ^ uVar18) + iVar1;
uVar17 = (uVar17 * 0x4000 | uVar17 >> 0x12) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x6d703ef3 + ((uVar23 | ~uVar25) ^ uVar27) + iVar10;
uVar26 = (uVar26 * 0x1000 | uVar26 >> 0x14) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x6ed9eba1 + ((uVar17 | ~uVar22) ^ uVar24) + iVar6;
uVar19 = (uVar19 * 0x100 | uVar19 >> 0x18) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x6d703ef3 + ((uVar26 | ~uVar23) ^ uVar25) + iVar7;
uVar21 = (uVar21 * 0x2000 | uVar21 >> 0x13) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x6ed9eba1 + ((uVar19 | ~uVar17) ^ uVar22) + iVar16;
uVar18 = (uVar18 * 0x2000 | uVar18 >> 0x13) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x6d703ef3 + ((uVar21 | ~uVar26) ^ uVar23) + iVar11;
uVar27 = (uVar27 * 0x20 | uVar27 >> 0x1b) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x6ed9eba1 + ((uVar18 | ~uVar19) ^ uVar17) + iVar5;
uVar24 = (uVar24 * 0x40 | uVar24 >> 0x1a) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x6d703ef3 + ((uVar27 | ~uVar21) ^ uVar26) + iVar1;
uVar25 = (uVar25 * 0x4000 | uVar25 >> 0x12) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x6ed9eba1 + ((uVar24 | ~uVar18) ^ uVar19) + iVar12;
uVar22 = (uVar22 * 0x20 | uVar22 >> 0x1b) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x6d703ef3 + ((uVar25 | ~uVar27) ^ uVar21) + iVar9;
uVar23 = (uVar23 * 0x2000 | uVar23 >> 0x13) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x6ed9eba1 + ((uVar22 | ~uVar24) ^ uVar18) + iVar10;
uVar17 = (uVar17 * 0x1000 | uVar17 >> 0x14) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x6d703ef3 + ((uVar23 | ~uVar25) ^ uVar27) + iVar16;
uVar26 = (uVar26 * 0x2000 | uVar26 >> 0x13) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x6ed9eba1 + ((uVar17 | ~uVar22) ^ uVar24) + iVar4;
uVar19 = (uVar19 * 0x80 | uVar19 >> 0x19) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x6d703ef3 + ((uVar26 | ~uVar23) ^ uVar25) + iVar3;
uVar21 = (uVar21 * 0x80 | uVar21 >> 0x19) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x6ed9eba1 + ((uVar19 | ~uVar17) ^ uVar22) + iVar11;
uVar18 = (uVar18 * 0x20 | uVar18 >> 0x1b) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x6d703ef3 + ((uVar21 | ~uVar26) ^ uVar23) + iVar12;
uVar27 = (uVar27 * 0x20 | uVar27 >> 0x1b) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x8f1bbcdc + (uVar18 & uVar17 | uVar19 & ~uVar17) + iVar14;
uVar24 = (uVar24 * 0x800 | uVar24 >> 0x15) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x7a6d76e9 + (uVar27 & uVar21 | ~uVar27 & uVar26) + iVar7;
uVar25 = (uVar25 * 0x8000 | uVar25 >> 0x11) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x8f1bbcdc + (uVar24 & uVar19 | uVar18 & ~uVar19) + iVar8;
uVar22 = (uVar22 * 0x1000 | uVar22 >> 0x14) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x7a6d76e9 + (uVar25 & uVar27 | ~uVar25 & uVar21) + iVar5;
uVar23 = (uVar23 * 0x20 | uVar23 >> 0x1b) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x8f1bbcdc + (uVar22 & uVar18 | uVar24 & ~uVar18) + iVar10;
uVar17 = (uVar17 * 0x4000 | uVar17 >> 0x12) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x7a6d76e9 + (uVar23 & uVar25 | ~uVar23 & uVar27) + iVar3;
uVar26 = (uVar26 * 0x100 | uVar26 >> 0x18) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x8f1bbcdc + (uVar17 & uVar24 | uVar22 & ~uVar24) + iVar9;
uVar19 = (uVar19 * 0x8000 | uVar19 >> 0x11) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x7a6d76e9 + (uVar26 & uVar23 | ~uVar26 & uVar25) + iVar14;
uVar21 = (uVar21 * 0x800 | uVar21 >> 0x15) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x8f1bbcdc + (uVar19 & uVar22 | uVar17 & ~uVar22) + iVar16;
uVar18 = (uVar18 * 0x4000 | uVar18 >> 0x12) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x7a6d76e9 + (uVar21 & uVar26 | ~uVar21 & uVar23) + iVar2;
uVar27 = (uVar27 * 0x4000 | uVar27 >> 0x12) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x8f1bbcdc + (uVar18 & uVar17 | uVar19 & ~uVar17) + iVar7;
uVar24 = (uVar24 * 0x8000 | uVar24 >> 0x11) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x7a6d76e9 + (uVar27 & uVar21 | ~uVar27 & uVar26) + iVar10;
uVar25 = (uVar25 * 0x4000 | uVar25 >> 0x12) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x8f1bbcdc + (uVar24 & uVar19 | uVar18 & ~uVar19) + iVar11;
uVar22 = (uVar22 * 0x200 | uVar22 >> 0x17) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x7a6d76e9 + (uVar25 & uVar27 | ~uVar25 & uVar21) + iVar13;
uVar23 = (uVar23 * 0x40 | uVar23 >> 0x1a) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x8f1bbcdc + (uVar22 & uVar18 | uVar24 & ~uVar18) + iVar3;
uVar17 = (uVar17 * 0x100 | uVar17 >> 0x18) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x7a6d76e9 + (uVar23 & uVar25 | ~uVar23 & uVar27) + iVar16;
uVar26 = (uVar26 * 0x4000 | uVar26 >> 0x12) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x8f1bbcdc + (uVar17 & uVar24 | uVar22 & ~uVar24) + iVar12;
uVar19 = (uVar19 * 0x200 | uVar19 >> 0x17) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x7a6d76e9 + (uVar26 & uVar23 | ~uVar26 & uVar25) + iVar4;
uVar21 = (uVar21 * 0x40 | uVar21 >> 0x1a) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x8f1bbcdc + (uVar19 & uVar22 | uVar17 & ~uVar22) + iVar2;
uVar18 = (uVar18 * 0x4000 | uVar18 >> 0x12) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x7a6d76e9 + (uVar21 & uVar26 | ~uVar21 & uVar23) + iVar11;
uVar27 = (uVar27 * 0x200 | uVar27 >> 0x17) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x8f1bbcdc + (uVar18 & uVar17 | uVar19 & ~uVar17) + iVar6;
uVar24 = (uVar24 * 0x20 | uVar24 >> 0x1b) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x7a6d76e9 + (uVar27 & uVar21 | ~uVar27 & uVar26) + iVar1;
uVar25 = (uVar25 * 0x1000 | uVar25 >> 0x14) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0x8f1bbcdc + (uVar24 & uVar19 | uVar18 & ~uVar19) + iVar13;
uVar22 = (uVar22 * 0x40 | uVar22 >> 0x1a) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + 0x7a6d76e9 + (uVar25 & uVar27 | ~uVar25 & uVar21) + iVar12;
uVar23 = (uVar23 * 0x200 | uVar23 >> 0x17) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0x8f1bbcdc + (uVar22 & uVar18 | uVar24 & ~uVar18) + iVar15;
uVar17 = (uVar17 * 0x100 | uVar17 >> 0x18) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + 0x7a6d76e9 + (uVar23 & uVar25 | ~uVar23 & uVar27) + iVar8;
uVar26 = (uVar26 * 0x1000 | uVar26 >> 0x14) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0x8f1bbcdc + (uVar17 & uVar24 | uVar22 & ~uVar24) + iVar4;
uVar19 = (uVar19 * 0x40 | uVar19 >> 0x1a) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + 0x7a6d76e9 + (uVar26 & uVar23 | ~uVar26 & uVar25) + iVar6;
uVar21 = (uVar21 * 0x20 | uVar21 >> 0x1b) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0x8f1bbcdc + (uVar19 & uVar22 | uVar17 & ~uVar22) + iVar5;
uVar18 = (uVar18 * 0x20 | uVar18 >> 0x1b) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + 0x7a6d76e9 + (uVar21 & uVar26 | ~uVar21 & uVar23) + iVar9;
uVar27 = (uVar27 * 0x8000 | uVar27 >> 0x11) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0x8f1bbcdc + (uVar18 & uVar17 | uVar19 & ~uVar17) + iVar1;
uVar24 = (uVar24 * 0x1000 | uVar24 >> 0x14) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + 0x7a6d76e9 + (uVar27 & uVar21 | ~uVar27 & uVar26) + iVar15;
uVar25 = (uVar25 * 0x100 | uVar25 >> 0x18) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0xa953fd4e + (uVar24 ^ (uVar18 | ~uVar19)) + iVar3;
uVar22 = (uVar22 * 0x200 | uVar22 >> 0x17) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + (uVar25 ^ uVar27 ^ uVar21) + iVar11;
uVar23 = (uVar23 * 0x100 | uVar23 >> 0x18) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0xa953fd4e + (uVar22 ^ (uVar24 | ~uVar18)) + iVar16;
uVar17 = (uVar17 * 0x8000 | uVar17 >> 0x11) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + (uVar23 ^ uVar25 ^ uVar27) + iVar13;
uVar26 = (uVar26 * 0x20 | uVar26 >> 0x1b) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0xa953fd4e + (uVar17 ^ (uVar22 | ~uVar24)) + iVar4;
uVar19 = (uVar19 * 0x20 | uVar19 >> 0x1b) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + (uVar26 ^ uVar23 ^ uVar25) + iVar9;
uVar21 = (uVar21 * 0x1000 | uVar21 >> 0x14) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0xa953fd4e + (uVar19 ^ (uVar17 | ~uVar22)) + iVar8;
uVar18 = (uVar18 * 0x800 | uVar18 >> 0x15) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + (uVar21 ^ uVar26 ^ uVar23) + iVar3;
uVar27 = (uVar27 * 0x200 | uVar27 >> 0x17) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0xa953fd4e + (uVar18 ^ (uVar19 | ~uVar17)) + iVar6;
uVar24 = (uVar24 * 0x40 | uVar24 >> 0x1a) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + (uVar27 ^ uVar21 ^ uVar26) + iVar14;
uVar25 = (uVar25 * 0x1000 | uVar25 >> 0x14) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0xa953fd4e + (uVar24 ^ (uVar18 | ~uVar19)) + iVar11;
uVar22 = (uVar22 * 0x100 | uVar22 >> 0x18) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + (uVar25 ^ uVar27 ^ uVar21) + iVar4;
uVar23 = (uVar23 * 0x20 | uVar23 >> 0x1b) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0xa953fd4e + (uVar22 ^ (uVar24 | ~uVar18)) + iVar1;
uVar17 = (uVar17 * 0x2000 | uVar17 >> 0x13) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + (uVar23 ^ uVar25 ^ uVar27) + iVar7;
uVar26 = (uVar26 * 0x4000 | uVar26 >> 0x12) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0xa953fd4e + (uVar17 ^ (uVar22 | ~uVar24)) + iVar9;
uVar19 = (uVar19 * 0x1000 | uVar19 >> 0x14) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + (uVar26 ^ uVar23 ^ uVar25) + iVar6;
uVar21 = (uVar21 * 0x40 | uVar21 >> 0x1a) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0xa953fd4e + (uVar19 ^ (uVar17 | ~uVar22)) + iVar15;
uVar18 = (uVar18 * 0x20 | uVar18 >> 0x1b) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + (uVar21 ^ uVar26 ^ uVar23) + iVar5;
uVar27 = (uVar27 * 0x100 | uVar27 >> 0x18) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0xa953fd4e + (uVar18 ^ (uVar19 | ~uVar17)) + iVar14;
uVar24 = (uVar24 * 0x1000 | uVar24 >> 0x14) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + (uVar27 ^ uVar21 ^ uVar26) + iVar1;
uVar25 = (uVar25 * 0x2000 | uVar25 >> 0x13) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0xa953fd4e + (uVar24 ^ (uVar18 | ~uVar19)) + iVar2;
uVar22 = (uVar22 * 0x2000 | uVar22 >> 0x13) + uVar17;
uVar18 = uVar18 * 0x400 | uVar18 >> 0x16;
uVar23 = uVar23 + (uVar25 ^ uVar27 ^ uVar21) + iVar12;
uVar23 = (uVar23 * 0x40 | uVar23 >> 0x1a) + uVar26;
uVar27 = uVar27 * 0x400 | uVar27 >> 0x16;
uVar17 = uVar17 + 0xa953fd4e + (uVar22 ^ (uVar24 | ~uVar18)) + iVar7;
uVar17 = (uVar17 * 0x4000 | uVar17 >> 0x12) + uVar19;
uVar24 = uVar24 * 0x400 | uVar24 >> 0x16;
uVar26 = uVar26 + (uVar23 ^ uVar25 ^ uVar27) + iVar15;
uVar26 = (uVar26 * 0x20 | uVar26 >> 0x1b) + uVar21;
uVar25 = uVar25 * 0x400 | uVar25 >> 0x16;
uVar19 = uVar19 + 0xa953fd4e + (uVar17 ^ (uVar22 | ~uVar24)) + iVar10;
uVar19 = (uVar19 * 0x800 | uVar19 >> 0x15) + uVar18;
uVar22 = uVar22 * 0x400 | uVar22 >> 0x16;
uVar21 = uVar21 + (uVar26 ^ uVar23 ^ uVar25) + iVar16;
uVar21 = (uVar21 * 0x8000 | uVar21 >> 0x11) + uVar27;
uVar23 = uVar23 * 0x400 | uVar23 >> 0x16;
uVar18 = uVar18 + 0xa953fd4e + (uVar19 ^ (uVar17 | ~uVar22)) + iVar5;
uVar18 = (uVar18 * 0x100 | uVar18 >> 0x18) + uVar24;
uVar17 = uVar17 * 0x400 | uVar17 >> 0x16;
uVar27 = uVar27 + (uVar21 ^ uVar26 ^ uVar23) + iVar2;
uVar27 = (uVar27 * 0x2000 | uVar27 >> 0x13) + uVar25;
uVar26 = uVar26 * 0x400 | uVar26 >> 0x16;
uVar24 = uVar24 + 0xa953fd4e + (uVar18 ^ (uVar19 | ~uVar17)) + iVar13;
uVar24 = (uVar24 * 0x20 | uVar24 >> 0x1b) + uVar22;
uVar19 = uVar19 * 0x400 | uVar19 >> 0x16;
uVar25 = uVar25 + (uVar27 ^ uVar21 ^ uVar26) + iVar8;
uVar25 = (uVar25 * 0x800 | uVar25 >> 0x15) + uVar23;
uVar21 = uVar21 * 0x400 | uVar21 >> 0x16;
uVar22 = uVar22 + 0xa953fd4e + (uVar24 ^ (uVar18 | ~uVar19)) + iVar12;
uVar23 = uVar23 + (uVar25 ^ uVar27 ^ uVar21) + iVar10;
iVar16 = output[3];
output[3] = (uVar18 * 0x400 | uVar18 >> 0x16) + output[4] + uVar21;
output[4] = uVar19 + output[5] + uVar26;
output[5] = uVar17 + output[6] + (uVar23 * 0x800 | uVar23 >> 0x15) + uVar26;
output[6] = (uVar22 * 0x40 | uVar22 >> 0x1a) + uVar17 + output[2] + uVar25;
output[2] = uVar24 + iVar16 + (uVar27 * 0x400 | uVar27 >> 0x16);
return;
}
void hash(uint8_t a0, uint8_t a1, uint8_t a2, uint8_t a3, uint8_t a4, uint8_t a5, uint8_t a6, uint8_t a7)
{
uint8_t MDbuf1[7 * 4] = {0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3};
uint8_t block1[16 * 4] = {0xA1, 0xBD, 0xBD, 0xB9, 0xBA, 0xF3, 0xE6, 0xE6, 0xBE, 0xBE, 0xBE, 0xE7, 0xB0, 0xA6, 0xBC, 0xBD, 0xBC, 0xAB, 0xAC, 0xE7, 0xAA, 0xA6, 0xA4, 0xE6, 0xBE, 0xA8, 0xBD, 0xAA, 0xA1, 0xF6, 0xBF, 0xF4, 0x8A, 0xA2, 0xBF, 0x9C, 0x88, 0xA5, 0xFE, 0x90, 0xFD, 0xA4, 0xBE, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36, 0x36};
uint8_t block2[16 * 4] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
uint8_t MDbuf2[7 * 4] = {0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x23, 0x45, 0x67, 0x89, 0xAB, 0xCD, 0xEF, 0xFE, 0xDC, 0xBA, 0x98, 0x76, 0x54, 0x32, 0x10, 0xF0, 0xE1, 0xD2, 0xC3};
uint8_t block3[16 * 4] = {0xCB, 0xD7, 0xD7, 0xD3, 0xD0, 0x99, 0x8C, 0x8C, 0xD4, 0xD4, 0xD4, 0x8D, 0xDA, 0xCC, 0xD6, 0xD7, 0xD6, 0xC1, 0xC6, 0x8D, 0xC0, 0xCC, 0xCE, 0x8C, 0xD4, 0xC2, 0xD7, 0xC0, 0xCB, 0x9C, 0xD5, 0x9E, 0xE0, 0xC8, 0xD5, 0xF6, 0xE2, 0xCF, 0x94, 0xFA, 0x97, 0xCE, 0xD4, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C};
uint8_t block4[16 * 4] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA0, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
uint8_t map[4] = {0x7A, 0x78, 0x64, 0x73};
block2[0] = map[a0];
block2[1] = map[a1];
block2[2] = map[a2];
block2[3] = map[a3];
block2[4] = map[a4];
block2[5] = map[a5];
block2[6] = map[a6];
block2[7] = map[a7];
ripemd((int *)MDbuf1, (int *)block1);
ripemd((int *)MDbuf1, (int *)block2);
memcpy(block4, MDbuf1 + 8, 5 * 4);
ripemd((int *)MDbuf2, (int *)block3);
ripemd((int *)MDbuf2, (int *)block4);
printf("$HEX[");
for (int i = 2 * 4; i < 7 * 4; i++) {
printf("%02x", MDbuf2[i]);
}
printf("]\n");
}
int main(void)
{
uint8_t a0, a1, a2, a3, a4, a5, a6, a7;
for (a0 = 0; a0 < 4; a0++) {
for (a1 = 0; a1 < 4; a1++) {
for (a2 = 0; a2 < 4; a2++) {
for (a3 = 0; a3 < 4; a3++) {
for (a4 = 0; a4 < 4; a4++) {
for (a5 = 0; a5 < 4; a5++) {
for (a6 = 0; a6 < 4; a6++) {
for (a7 = 0; a7 < 4; a7++){
printf("%02x %02x %02x %02x %02x %02x %02x %02x\n");
hash(a0,a1,a2,a3,a4,a5,a6,a7);
}
}
}
}
}
}
}
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment