Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- _asm nop;
- 003C4942 90 nop
- _asm nop;
- 003C4943 90 nop
- DATATYPE Nominator = 0;
- 003C4944 C7 45 EC 00 00 00 00 mov dword ptr [Nominator],0
- DATATYPE ActualDiggit = 0;
- 003C494B C7 45 E0 00 00 00 00 mov dword ptr [ActualDiggit],0
- DATATYPE d = 0;
- 003C4952 C7 45 D4 00 00 00 00 mov dword ptr [d],0
- DATATYPE e = 0;
- 003C4959 C7 45 C8 00 00 00 00 mov dword ptr [e],0
- DATATYPE f = 10;
- 003C4960 C7 45 BC 0A 00 00 00 mov dword ptr [f],0Ah
- DATATYPE temp1 = 0;
- 003C4967 C7 45 B0 00 00 00 00 mov dword ptr [temp1],0
- DATATYPE tempB = 0;
- 003C496E C7 45 A4 00 00 00 00 mov dword ptr [tempB],0
- DATATYPE i = 0;
- 003C4975 C7 45 98 00 00 00 00 mov dword ptr [i],0
- Nominator = length * ColumsPerDigit;
- 003C497C C7 45 EC 10 00 00 00 mov dword ptr [Nominator],10h
- for (int j = 0; j < Nominator; j++)
- 003C4983 C7 45 8C 00 00 00 00 mov dword ptr [ebp-74h],0
- 003C498A EB 09 jmp f+95h (03C4995h)
- 003C498C 8B 45 8C mov eax,dword ptr [ebp-74h]
- 003C498F 83 C0 01 add eax,1
- 003C4992 89 45 8C mov dword ptr [ebp-74h],eax
- 003C4995 8B 45 8C mov eax,dword ptr [ebp-74h]
- 003C4998 3B 45 EC cmp eax,dword ptr [Nominator]
- 003C499B 7D 16 jge f+0B3h (03C49B3h)
- {
- Remainders[j] = f / 5;
- 003C499D 8B 45 BC mov eax,dword ptr [f]
- 003C49A0 99 cdq
- 003C49A1 B9 05 00 00 00 mov ecx,5
- 003C49A6 F7 F9 idiv eax,ecx
- 003C49A8 8B 55 8C mov edx,dword ptr [ebp-74h]
- {
- Remainders[j] = f / 5;
- 003C49AB 8B 4D F8 mov ecx,dword ptr [Remainders]
- 003C49AE 89 04 91 mov dword ptr [ecx+edx*4],eax
- }
- 003C49B1 EB D9 jmp f+8Ch (03C498Ch)
- while (ActualDiggit <= length)
- 003C49B3 83 7D E0 04 cmp dword ptr [ActualDiggit],4
- 003C49B7 0F 8F B1 00 00 00 jg f+16Eh (03C4A6Eh)
- {
- d = d % f;
- 003C49BD 8B 45 D4 mov eax,dword ptr [d]
- 003C49C0 99 cdq
- 003C49C1 F7 7D BC idiv eax,dword ptr [f]
- 003C49C4 89 55 D4 mov dword ptr [d],edx
- e = d;
- 003C49C7 8B 45 D4 mov eax,dword ptr [d]
- 003C49CA 89 45 C8 mov dword ptr [e],eax
- Nominator--;
- 003C49CD 8B 45 EC mov eax,dword ptr [Nominator]
- 003C49D0 83 E8 01 sub eax,1
- 003C49D3 89 45 EC mov dword ptr [Nominator],eax
- for (i = Nominator; i > 0; i--)
- 003C49D6 8B 45 EC mov eax,dword ptr [Nominator]
- 003C49D9 89 45 98 mov dword ptr [i],eax
- 003C49DC EB 09 jmp f+0E7h (03C49E7h)
- 003C49DE 8B 45 98 mov eax,dword ptr [i]
- 003C49E1 83 E8 01 sub eax,1
- 003C49E4 89 45 98 mov dword ptr [i],eax
- 003C49E7 83 7D 98 00 cmp dword ptr [i],0
- 003C49EB 7E 49 jle f+136h (03C4A36h)
- {
- d = d*i;
- 003C49ED 8B 45 D4 mov eax,dword ptr [d]
- 003C49F0 0F AF 45 98 imul eax,dword ptr [i]
- 003C49F4 89 45 D4 mov dword ptr [d],eax
- temp1 = f*Remainders[i];
- 003C49F7 8B 45 98 mov eax,dword ptr [i]
- 003C49FA 8B 4D F8 mov ecx,dword ptr [Remainders]
- 003C49FD 8B 55 BC mov edx,dword ptr [f]
- 003C4A00 0F AF 14 81 imul edx,dword ptr [ecx+eax*4]
- 003C4A04 89 55 B0 mov dword ptr [temp1],edx
- d = d + temp1;
- 003C4A07 8B 45 D4 mov eax,dword ptr [d]
- 003C4A0A 03 45 B0 add eax,dword ptr [temp1]
- 003C4A0D 89 45 D4 mov dword ptr [d],eax
- tempB = (2 * i - 1);
- 003C4A10 8B 45 98 mov eax,dword ptr [i]
- 003C4A13 8D 4C 00 FF lea ecx,[eax+eax-1]
- 003C4A17 89 4D A4 mov dword ptr [tempB],ecx
- Remainders[i] = d % tempB;
- 003C4A1A 8B 45 D4 mov eax,dword ptr [d]
- 003C4A1D 99 cdq
- 003C4A1E F7 7D A4 idiv eax,dword ptr [tempB]
- 003C4A21 8B 45 98 mov eax,dword ptr [i]
- 003C4A24 8B 4D F8 mov ecx,dword ptr [Remainders]
- 003C4A27 89 14 81 mov dword ptr [ecx+eax*4],edx
- d = d / tempB;
- 003C4A2A 8B 45 D4 mov eax,dword ptr [d]
- 003C4A2D 99 cdq
- 003C4A2E F7 7D A4 idiv eax,dword ptr [tempB]
- 003C4A31 89 45 D4 mov dword ptr [d],eax
- }
- 003C4A34 EB A8 jmp f+0DEh (03C49DEh)
- //if(ActualDiggit%100==1)
- printf("%i: %01d \n", ActualDiggit, e + d / f);
- 003C4A36 8B 45 D4 mov eax,dword ptr [d]
- 003C4A39 99 cdq
- 003C4A3A F7 7D BC idiv eax,dword ptr [f]
- 003C4A3D 03 45 C8 add eax,dword ptr [e]
- 003C4A40 50 push eax
- 003C4A41 8B 45 E0 mov eax,dword ptr [ActualDiggit]
- 003C4A44 50 push eax
- 003C4A45 68 4C B7 3C 00 push 3CB74Ch
- 003C4A4A E8 35 C9 FF FF call _printf (03C1384h)
- 003C4A4F 83 C4 0C add esp,0Ch
- //printf("%01d", e + d / f);
- Nominator = ColumsPerDigit*(length - ActualDiggit);
- 003C4A52 B8 04 00 00 00 mov eax,4
- 003C4A57 2B 45 E0 sub eax,dword ptr [ActualDiggit]
- 003C4A5A C1 E0 02 shl eax,2
- 003C4A5D 89 45 EC mov dword ptr [Nominator],eax
- ActualDiggit++;
- 003C4A60 8B 45 E0 mov eax,dword ptr [ActualDiggit]
- 003C4A63 83 C0 01 add eax,1
- 003C4A66 89 45 E0 mov dword ptr [ActualDiggit],eax
- }
- 003C4A69 E9 45 FF FF FF jmp f+0B3h (03C49B3h)
- free(Remainders);
- 003C4A6E 8B F4 mov esi,esp
- 003C4A70 8B 45 F8 mov eax,dword ptr [Remainders]
- 003C4A73 50 push eax
- 003C4A74 FF 15 98 E1 3C 00 call dword ptr ds:[3CE198h]
- 003C4A7A 83 C4 04 add esp,4
- 003C4A7D 3B F4 cmp esi,esp
- 003C4A7F E8 B2 C6 FF FF call __RTC_CheckEsp (03C1136h)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement