Advertisement
Guest User

PI2.0

a guest
Feb 8th, 2016
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.58 KB | None | 0 0
  1. _asm nop;
  2. 003C4942 90                   nop  
  3.     _asm nop;
  4. 003C4943 90                   nop  
  5.     DATATYPE Nominator = 0;
  6. 003C4944 C7 45 EC 00 00 00 00 mov         dword ptr [Nominator],0  
  7.     DATATYPE ActualDiggit = 0;
  8. 003C494B C7 45 E0 00 00 00 00 mov         dword ptr [ActualDiggit],0  
  9.     DATATYPE d = 0;
  10. 003C4952 C7 45 D4 00 00 00 00 mov         dword ptr [d],0  
  11.     DATATYPE e = 0;
  12. 003C4959 C7 45 C8 00 00 00 00 mov         dword ptr [e],0  
  13.     DATATYPE f = 10;
  14. 003C4960 C7 45 BC 0A 00 00 00 mov         dword ptr [f],0Ah  
  15.  
  16.     DATATYPE temp1 = 0;
  17. 003C4967 C7 45 B0 00 00 00 00 mov         dword ptr [temp1],0  
  18.     DATATYPE tempB = 0;
  19. 003C496E C7 45 A4 00 00 00 00 mov         dword ptr [tempB],0  
  20.     DATATYPE i = 0;
  21. 003C4975 C7 45 98 00 00 00 00 mov         dword ptr [i],0  
  22.  
  23.     Nominator = length * ColumsPerDigit;
  24. 003C497C C7 45 EC 10 00 00 00 mov         dword ptr [Nominator],10h  
  25.  
  26.     for (int j = 0; j < Nominator; j++)
  27. 003C4983 C7 45 8C 00 00 00 00 mov         dword ptr [ebp-74h],0  
  28. 003C498A EB 09                jmp         f+95h (03C4995h)  
  29. 003C498C 8B 45 8C             mov         eax,dword ptr [ebp-74h]  
  30. 003C498F 83 C0 01             add         eax,1  
  31. 003C4992 89 45 8C             mov         dword ptr [ebp-74h],eax  
  32. 003C4995 8B 45 8C             mov         eax,dword ptr [ebp-74h]  
  33. 003C4998 3B 45 EC             cmp         eax,dword ptr [Nominator]  
  34. 003C499B 7D 16                jge         f+0B3h (03C49B3h)  
  35.     {
  36.  
  37.         Remainders[j] = f / 5;
  38. 003C499D 8B 45 BC             mov         eax,dword ptr [f]  
  39. 003C49A0 99                   cdq  
  40. 003C49A1 B9 05 00 00 00       mov         ecx,5  
  41. 003C49A6 F7 F9                idiv        eax,ecx  
  42. 003C49A8 8B 55 8C             mov         edx,dword ptr [ebp-74h]  
  43.     {
  44.  
  45.         Remainders[j] = f / 5;
  46. 003C49AB 8B 4D F8             mov         ecx,dword ptr [Remainders]  
  47. 003C49AE 89 04 91             mov         dword ptr [ecx+edx*4],eax  
  48.     }
  49. 003C49B1 EB D9                jmp         f+8Ch (03C498Ch)  
  50.     while (ActualDiggit <= length)
  51. 003C49B3 83 7D E0 04          cmp         dword ptr [ActualDiggit],4  
  52. 003C49B7 0F 8F B1 00 00 00    jg          f+16Eh (03C4A6Eh)  
  53.     {
  54.         d = d % f;
  55. 003C49BD 8B 45 D4             mov         eax,dword ptr [d]  
  56. 003C49C0 99                   cdq  
  57. 003C49C1 F7 7D BC             idiv        eax,dword ptr [f]  
  58. 003C49C4 89 55 D4             mov         dword ptr [d],edx  
  59.         e = d;
  60. 003C49C7 8B 45 D4             mov         eax,dword ptr [d]  
  61. 003C49CA 89 45 C8             mov         dword ptr [e],eax  
  62.  
  63.         Nominator--;
  64. 003C49CD 8B 45 EC             mov         eax,dword ptr [Nominator]  
  65. 003C49D0 83 E8 01             sub         eax,1  
  66. 003C49D3 89 45 EC             mov         dword ptr [Nominator],eax  
  67.         for (i = Nominator; i > 0; i--)
  68. 003C49D6 8B 45 EC             mov         eax,dword ptr [Nominator]  
  69. 003C49D9 89 45 98             mov         dword ptr [i],eax  
  70. 003C49DC EB 09                jmp         f+0E7h (03C49E7h)  
  71. 003C49DE 8B 45 98             mov         eax,dword ptr [i]  
  72. 003C49E1 83 E8 01             sub         eax,1  
  73. 003C49E4 89 45 98             mov         dword ptr [i],eax  
  74. 003C49E7 83 7D 98 00          cmp         dword ptr [i],0  
  75. 003C49EB 7E 49                jle         f+136h (03C4A36h)  
  76.         {
  77.  
  78.             d = d*i;
  79. 003C49ED 8B 45 D4             mov         eax,dword ptr [d]  
  80. 003C49F0 0F AF 45 98          imul        eax,dword ptr [i]  
  81. 003C49F4 89 45 D4             mov         dword ptr [d],eax  
  82.             temp1 = f*Remainders[i];
  83. 003C49F7 8B 45 98             mov         eax,dword ptr [i]  
  84. 003C49FA 8B 4D F8             mov         ecx,dword ptr [Remainders]  
  85. 003C49FD 8B 55 BC             mov         edx,dword ptr [f]  
  86. 003C4A00 0F AF 14 81          imul        edx,dword ptr [ecx+eax*4]  
  87. 003C4A04 89 55 B0             mov         dword ptr [temp1],edx  
  88.             d = d + temp1;
  89. 003C4A07 8B 45 D4             mov         eax,dword ptr [d]  
  90. 003C4A0A 03 45 B0             add         eax,dword ptr [temp1]  
  91. 003C4A0D 89 45 D4             mov         dword ptr [d],eax  
  92.  
  93.             tempB = (2 * i - 1);
  94. 003C4A10 8B 45 98             mov         eax,dword ptr [i]  
  95. 003C4A13 8D 4C 00 FF          lea         ecx,[eax+eax-1]  
  96. 003C4A17 89 4D A4             mov         dword ptr [tempB],ecx  
  97.             Remainders[i] = d % tempB;
  98. 003C4A1A 8B 45 D4             mov         eax,dword ptr [d]  
  99. 003C4A1D 99                   cdq  
  100. 003C4A1E F7 7D A4             idiv        eax,dword ptr [tempB]  
  101. 003C4A21 8B 45 98             mov         eax,dword ptr [i]  
  102. 003C4A24 8B 4D F8             mov         ecx,dword ptr [Remainders]  
  103. 003C4A27 89 14 81             mov         dword ptr [ecx+eax*4],edx  
  104.             d = d / tempB;
  105. 003C4A2A 8B 45 D4             mov         eax,dword ptr [d]  
  106. 003C4A2D 99                   cdq  
  107. 003C4A2E F7 7D A4             idiv        eax,dword ptr [tempB]  
  108. 003C4A31 89 45 D4             mov         dword ptr [d],eax  
  109.  
  110.         }
  111. 003C4A34 EB A8                jmp         f+0DEh (03C49DEh)  
  112.         //if(ActualDiggit%100==1)
  113.         printf("%i: %01d \n", ActualDiggit, e + d / f);
  114. 003C4A36 8B 45 D4             mov         eax,dword ptr [d]  
  115. 003C4A39 99                   cdq  
  116. 003C4A3A F7 7D BC             idiv        eax,dword ptr [f]  
  117. 003C4A3D 03 45 C8             add         eax,dword ptr [e]  
  118. 003C4A40 50                   push        eax  
  119. 003C4A41 8B 45 E0             mov         eax,dword ptr [ActualDiggit]  
  120. 003C4A44 50                   push        eax  
  121. 003C4A45 68 4C B7 3C 00       push        3CB74Ch  
  122. 003C4A4A E8 35 C9 FF FF       call        _printf (03C1384h)  
  123. 003C4A4F 83 C4 0C             add         esp,0Ch  
  124.         //printf("%01d", e + d / f);
  125.  
  126.         Nominator = ColumsPerDigit*(length - ActualDiggit);
  127. 003C4A52 B8 04 00 00 00       mov         eax,4  
  128. 003C4A57 2B 45 E0             sub         eax,dword ptr [ActualDiggit]  
  129. 003C4A5A C1 E0 02             shl         eax,2  
  130. 003C4A5D 89 45 EC             mov         dword ptr [Nominator],eax  
  131.         ActualDiggit++;
  132. 003C4A60 8B 45 E0             mov         eax,dword ptr [ActualDiggit]  
  133. 003C4A63 83 C0 01             add         eax,1  
  134. 003C4A66 89 45 E0             mov         dword ptr [ActualDiggit],eax  
  135.     }
  136. 003C4A69 E9 45 FF FF FF       jmp         f+0B3h (03C49B3h)  
  137.     free(Remainders);
  138. 003C4A6E 8B F4                mov         esi,esp  
  139. 003C4A70 8B 45 F8             mov         eax,dword ptr [Remainders]  
  140. 003C4A73 50                   push        eax  
  141. 003C4A74 FF 15 98 E1 3C 00    call        dword ptr ds:[3CE198h]  
  142. 003C4A7A 83 C4 04             add         esp,4  
  143. 003C4A7D 3B F4                cmp         esi,esp  
  144. 003C4A7F E8 B2 C6 FF FF       call        __RTC_CheckEsp (03C1136h)  
  145. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement