Go to Post I need to start sleeping now to make up for build season - Kingofl337 [more]
Home
Go Back   Chief Delphi > Technical > Programming
CD-Media   CD-Spy  
portal register members calendar search Today's Posts Mark Forums Read FAQ rules

 
 
 
Thread Tools Rate Thread Display Modes
Prev Previous Post   Next Post Next
  #1   Spotlight this post!  
Unread 02-08-2013, 00:35
jeidee jeidee is offline
Registered User
no team
 
Join Date: Aug 2013
Location: manila
Posts: 2
jeidee is an unknown quantity at this point
Help me to convert in delphi

hi guys pls help me


Help me to convert in delphi



Code:
#include <stdio.h> 
#include <stdlib.h> 
#include <memory.h> 

unsigned int    rng_vec[607]; 
unsigned int *    rng_tap = rng_vec; 
unsigned int *    rng_feed = 0; 


// 123456005883380 - 65863543 
// 21 43 65 00 85 38 83 f0 

  int v3; // r5@1 
  unsigned int v4; // r0@1 
  int v5; // r4@1 
  unsigned int v6; // r1@2 
  char *v7; // r2@2 
  unsigned int v8; // r0@3 
  int v9; // r4@3 
  unsigned int v10; // r1@4 
  signed int v11; // r0@5 
  signed int v12; // r0@5 
  int cnt; // r0@5 
  int v14; // r1@6 
  char v16[8]; // [sp+0h] [bp-20h]@1 
  char v17[8]; // [sp+8h] [bp-18h]@1 


  char Table_00[10] =       {    0,   6,   1,   8,   7,   5,   3,   2,    
9,   4}; 
  char Table_01[10] =       {    0,   2,   6,   6,   9,   5,   1,   4,    
3,   8}; 
  char Table_10[10] =       {    0,   4,   9,   2,   3,   5,   7,   8,    
1,   6}; 
  char Table_11[10] =       {    0,   8,   3,   4,   1,   5,   9,   6,    
7,   2}; 

  char Table_2[100] = {          
                  0x11, 0x5D, 0x5B, 0x5A, 0x58, 0x57, 5, 7, 9, 0x12, 
                  1, 0x45, 0x51, 0x50, 0x4E, 0x18, 0x16, 0x13, 0x1F, 
                  0x64, 2, 0x1E, 0x3C, 0x24, 0x23, 0x3F, 0x43, 0x2A, 
                  0x47, 0x63, 0xC, 0x1D, 0x44, 0x32, 0x35, 0x38, 0x2B, 
                  0x21, 0x48, 0x59, 0xF, 0x1C, 0x27, 0x37, 0x2C, 0x31, 
                  0x36, 0x3E, 0x49, 0x56, 0x55, 0x1B, 0x28, 0x2D, 0x3A, 
                  0x33, 0x30, 0x3D, 0x4A, 0x10, 0x5F, 0x4B, 0x25, 0x34, 
                  0x2F, 0x2E, 0x39, 0x40, 0x1A, 6, 0x61, 0x4C, 0x3B, 
                  0x41, 0x42, 0x26, 0x22, 0x29, 0x19, 4, 0x62, 0x46, 
                  0x14, 0x15, 0x17, 0x4D, 0x4F, 0x52, 0x20, 3, 0x53, 
                  8, 0xA, 0xB, 0xD, 0xE, 0x60, 0x5E, 0x5C, 0x54}; 

 char coda[8]; 
  
unsigned int isrand(unsigned int _seed) 
{ 
  unsigned int result; // r0@1 
  unsigned int seed; // r1@1 
  signed int i; // r4@3 

  rng_tap = rng_vec; 
  rng_feed = rng_vec+607-273; 
  seed = _seed % 0x7FFFFFFF; 
  result = _seed / 0x7FFFFFFF; 
  if ( !seed ) 
    seed = 89482311; 
  for ( i = -20; i < 607; i = (i + 1) ) 
  { 
    result = 3399 * (seed / 44488); 
    seed = 48271 * (seed % 44488) - 3399 * (seed / 44488); 
    if ( i >= 0 ) 
    { 
      result = 4 * i; 
      rng_vec[i] = seed; 
    } 
  } 
  return result; 
} 


unsigned int lrand() 
{ 
  int v0; // r0@5 
  unsigned int result; // r0@7 

  --rng_tap; 
  if ( rng_tap < rng_vec ) 
  { 
    if ( !rng_feed ) 
    { 
      isrand(1u); 
      --rng_tap; 
    } 
    rng_tap += 607; 
  } 
  //v0 = rng_feed - 4; 
  rng_feed--; // = v0; 
  if ( rng_feed < rng_vec ) 
     rng_feed +=607; //rng_feed +=2428; 
  result = (2 * (*rng_feed + *rng_tap)) >> 1; 
  *rng_feed = result; 
  return result; 
} 


int main(int argc, char* argv[]) 
{ 
  int v15; 
  unsigned int imei=atoi(argv [1]); 
   
  
  // printf("%i",imei);   
//IMEI =   TAC + FAC +   SNR + LUHN 
//       XXXXXX + YY + ZZZZZZ + L 
 //v4 = SNR + MAGIC 


//SNR = XXXXXXX-YY-429081-L 
//MAGIC = 313944551; 

  //v4 = 441525 + 313944551; 
  v4 = imei + 313944551; 
  v5 = 0; 
  do 
  { 
    v6 = v4 % 0xA; 
    v4 /= 0xAu; 
    v15 = 5 - v5++; 
    v17[v15] = v6; 
  } 
  while ( v5 < 6 ); 
  v8 = (13 * v17[5] + 5 * v17[4] + 3 * v17[3] + 1553 * v17[2] + 23 *  
v17[1] + 177 * v17[0]) % 99999; 
  v9 = 7; 
  do 
  { 
    v10 = v8 % 0xA; 
    v8 /= 0xAu; 
    v17[v9] = v10; 
    v9 = (v9 + 255) & 0xFF; 
  } 
  while ( v9 > 5 ); 
  v16[0] = Table_00[v17[0]]; 
  v16[1] = Table_01[v17[1]]; 
  v16[2] = Table_10[v17[2]]; 
  v16[3] = Table_11[v17[6]]; 
  v11 = Table_2[(10 * v17[3]) + v17[4]] - 1; 
  v16[4] = v11 / 10; 
  v16[5] = v11 % 10; 
  v12 = Table_2[99 - ((10 * v17[7]) + v17[5])] - 1; 
  v16[6] = v12 / 10; 
  v16[7] = v12 % 10; 
  cnt = 0; 
  v3 = 0; 
  do 
  { 
   v14 = (v16[cnt] << 4 * cnt) | v3; 
    cnt = (cnt + 1) & 0xFF; 
    v3 = v14; 
  } 
  while ( cnt < 8 ); 
  v14 = 0; 
  isrand(v3); 
  do 
    coda[v14++] = lrand() % 0xA + 48; 
  while ( v14 < 8 ); 

  
     printf("%s",coda);   

    return 0; 
}
 


Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -5. The time now is 22:47.

The Chief Delphi Forums are sponsored by Innovation First International, Inc.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi