View Single Post
Old 01-20-2012, 16:21   #1 (permalink)
ssa
No Life Poster
 
ssa's Avatar
 
Join Date: Feb 2003
Location: Inside CPU
Age: 43
Posts: 1,861
Member: 23420
Status: Offline
Thanks Meter: 3,080
MicroMax mmx310g algo FREE!

Just for fun...

Code:
int __cdecl CalcCode(const char *a1, int a2)
{
  const char *v2; // edx@1
  signed int v3; // ecx@1
  signed int v4; // ebx@1
  int v5; // ebp@1
  int v6; // edi@1
  signed int v7; // kr00_4@1
  char v8; // zf@3
  int v9; // ecx@5
  unsigned int v10; // ecx@5
  char v11; // al@5
  const void *v12; // esi@5
  int v13; // eax@6
  char *v14; // edi@6
  signed int v15; // eax@8
  char *v16; // esi@8
  int v17; // ecx@12
  int v18; // esi@12
  int v19; // ST20_4@16
  char *v20; // ebp@13
  signed int v21; // eax@14
  char *v22; // ecx@14
  int v23; // edi@14
  int v24; // ecx@16
  int v26; // [sp+10h] [bp-2Ch]@5
  int v27; // [sp+14h] [bp-28h]@5
  int v28; // [sp+18h] [bp-24h]@13
  char v29; // [sp+1Ch] [bp-20h]@5
  int v30; // [sp+1Dh] [bp-1Fh]@1
  int v31; // [sp+21h] [bp-1Bh]@1
  int v32; // [sp+25h] [bp-17h]@1
  __int16 v33; // [sp+29h] [bp-13h]@1
  char v34; // [sp+2Bh] [bp-11h]@1
  char v35; // [sp+2Ch] [bp-10h]@1
  int v36; // [sp+2Dh] [bp-Fh]@1
  int v37; // [sp+31h] [bp-Bh]@1
  int v38; // [sp+35h] [bp-7h]@1
  __int16 v39; // [sp+39h] [bp-3h]@1
  char v40; // [sp+3Bh] [bp-1h]@5
  int i; // [sp+40h] [bp+4h]@6
  int v42; // [sp+40h] [bp+4h]@13

  v2 = a1;
  v4 = 0;
  v35 = 0;
  v36 = 0;
  v7 = strlen(a1);
  v5 = v7 - 1;
  v30 = 0;
  v37 = 0;
  v31 = 0;
  v38 = 0;
  v32 = 0;
  v39 = 0;
  v33 = 0;
  v6 = (int)"391936062547802";
  v34 = 0;
  v3 = -1;
  do
  {
    if ( !v3 )
      break;
    v8 = *(_BYTE *)v6++ == 0;
    --v3;
  }
  while ( !v8 );
  v10 = ~v3;
  v40 = 0;
  v29 = 0;
  v11 = v10;
  v12 = (const void *)(v6 - v10);
  v10 >>= 2;
  memcpy(&v35, v12, 4 * v10);
  v27 = 0;
  v26 = 0;
  memcpy(&v35 + 4 * v10, (char *)v12 + 4 * v10, v11 & 3);
  v9 = 0;
  if ( v5 > 0 )
  {
    v13 = v2 - &v29;
    v14 = &v34 + v5;
    for ( i = v2 - &v29; ; v13 = i )
    {
      v16 = &v29 + v9;
      v15 = *(&v29 + v9 + v13) + *v14 - 96;
      if ( v15 > 10 )
        v15 %= 10;
      ++v9;
      --v14;
      *v16 = v15 % 10 + 48;
      if ( v9 >= v5 )
        break;
    }
    v4 = 0;
  }
  v17 = a2;
  v18 = 0;
  if ( v7 / 2 > 0 )
  {
    v20 = (char *)&v28 + v5 + 3;
    v27 = v7 / 2;
    v42 = a2 - (_DWORD)&v30;
    do
    {
      v23 = *(&v29 + v18);
      v22 = &v29 + v18;
      v21 = *v20 + v23 - 96;
      if ( v21 > 10 )
        v21 %= 10;
      v22[v42 + 1] = v21 % 10 + 48;
      v24 = v23 + v22[1];
      ++v18;
      --v20;
      v4 = v26 + v24 - 96;
      v26 = v26 + v24 - 96;
      v19 = v7 / 2;
    }
    while ( v18 < v19 );
    if ( v4 > 100 )
      v4 %= 100;
    v17 = a2;
  }
  *(_BYTE *)(v27 + v17) = v4 % 10 + 48;
  *(_BYTE *)(v27 + v17 + 1) = v4 / 10 + 48;
  return printf("\r\nNCK=%s", v17);
}
  Reply With Quote
The Following 10 Users Say Thank You to ssa For This Useful Post:
Show/Hide list of the thanked
 
Page generated in 0.08174 seconds with 7 queries