Advertisement
Guest User

Untitled

a guest
Dec 21st, 2018
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. COMMENT *
  2.         proc ModularMul, number1, number2, result, numberLen, modulus
  3.  
  4.              push eax edi ecx
  5.              pushf
  6.              mov ecx, [numberLen]
  7.              mov edi, [number1]
  8.              add edi, [numberLen]
  9.              dec edi
  10.  
  11.              .loop:
  12.                 cmp ecx, 0
  13.                 je .exit_loop
  14.                 xor ax, ax
  15.                 mov al, [edi]
  16.                 push ecx
  17.                 mov ecx, 8d
  18.  
  19.                 .loopa:
  20.                     stdcall ShiftLeft, [result], [numberLen]
  21.  
  22.                     push eax
  23.                     stdcall Less, [result], [modulus], [numberLen]
  24.                     cmp eax, 0
  25.                     jne .less
  26.                     stdcall TrueSub, [result], [modulus], [result], [numberLen]
  27.                     .less:
  28.                     pop eax
  29.  
  30.                     mov bx, 1
  31.                     shl bx, cl
  32.                     shr bx, 1
  33.                     test ax, bx
  34.  
  35.                     jz .endif
  36.                     stdcall Sum, [result], [number2], [result], [numberLen]
  37.                     .endif:
  38.  
  39.                     stdcall Less, [result], [modulus], [numberLen]
  40.                     cmp eax, 0
  41.                     jne .less2
  42.                     stdcall TrueSub, [result], [modulus], [result], [numberLen]
  43.                     .less2:
  44.  
  45.                 loop .loopa
  46.  
  47.                 pop ecx
  48.                 dec edi
  49.                 dec ecx
  50.              jmp .loop
  51.  
  52.              .exit_loop:
  53.  
  54.              popf
  55.              pop ecx edi eax
  56.              ret
  57.  
  58.         endp
  59.  
  60. *
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement