Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2020
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. wtf_WITH_BUFFER proc near               ; CODE XREF: EncryptFile+368↑p
  2.  
  3. var_E0          = byte ptr -0E0h
  4. var_DE          = byte ptr -0DEh
  5. var_A0          = dword ptr -0A0h
  6. var_9C          = dword ptr -9Ch
  7. var_98          = dword ptr -98h
  8. var_94          = dword ptr -94h
  9. var_90          = xmmword ptr -90h
  10. var_80          = xmmword ptr -80h
  11. var_70          = xmmword ptr -70h
  12. var_60          = xmmword ptr -60h
  13. var_50          = qword ptr -50h
  14. var_48          = dword ptr -48h
  15. var_44          = dword ptr -44h
  16. var_40          = dword ptr -40h
  17. var_3C          = dword ptr -3Ch
  18. var_38          = dword ptr -38h
  19. var_34          = dword ptr -34h
  20. var_30          = dword ptr -30h
  21. var_2C          = dword ptr -2Ch
  22. var_28          = dword ptr -28h
  23. var_24          = dword ptr -24h
  24. var_20          = dword ptr -20h
  25. var_1C          = dword ptr -1Ch
  26. var_18          = dword ptr -18h
  27. var_14          = dword ptr -14h
  28. var_10          = dword ptr -10h
  29. var_C           = dword ptr -0Ch
  30. var_8           = dword ptr -8
  31. var_4           = dword ptr -4
  32. arg_0           = dword ptr  8
  33. arg_4           = dword ptr  0Ch
  34. arg_8           = qword ptr  10h
  35.  
  36.                 push    ebp
  37.                 mov     ebp, esp
  38.                 sub     esp, 0E0h
  39.                 mov     eax, dword ptr [ebp+arg_8]
  40.                 mov     edx, dword ptr [ebp+arg_8+4]
  41.                 mov     [ebp+var_10], eax
  42.                 or      eax, edx
  43.                 mov     [ebp+var_48], ecx
  44.                 mov     [ebp+var_34], edx
  45.                 jz      loc_402B56
  46.                 push    ebx
  47.                 mov     eax, ecx
  48.                 lea     edx, [ebp+var_DE]
  49.                 sub     eax, edx
  50.                 push    esi
  51.                 mov     [ebp+var_A0], eax
  52.                 push    edi
  53.  
  54. loc_4027F3:                             ; CODE XREF: wtf_WITH_BUFFER+38D↓j
  55.                 movups  xmm0, xmmword ptr [ecx]
  56.                 mov     [ebp+var_C], 0Ah
  57.                 movups  [ebp+var_90], xmm0
  58.                 mov     esi, dword ptr [ebp+var_90+4]
  59.                 movups  xmm0, xmmword ptr [ecx+10h]
  60.                 mov     [ebp+var_30], esi
  61.                 movups  [ebp+var_80], xmm0
  62.                 movups  xmm0, xmmword ptr [ecx+20h]
  63.                 movups  [ebp+var_70], xmm0
  64.                 mov     ebx, dword ptr [ebp+var_70+0Ch]
  65.                 movups  xmm0, xmmword ptr [ecx+30h]
  66.                 mov     ecx, dword ptr [ebp+var_90]
  67.                 mov     [ebp+var_8], ebx
  68.                 movups  [ebp+var_60], xmm0
  69.                 mov     eax, dword ptr [ebp+var_60+8]
  70.                 mov     edi, dword ptr [ebp+var_60+0Ch]
  71.                 mov     edx, dword ptr [ebp+var_60]
  72.                 mov     [ebp+var_24], eax
  73.                 mov     eax, dword ptr [ebp+var_60+4]
  74.                 mov     dword ptr [ebp+arg_8+4], eax
  75.                 mov     eax, dword ptr [ebp+var_70+8]
  76.                 mov     [ebp+var_20], eax
  77.                 mov     eax, dword ptr [ebp+var_70+4]
  78.                 mov     [ebp+var_1C], eax
  79.                 mov     eax, dword ptr [ebp+var_70]
  80.                 mov     [ebp+var_18], eax
  81.                 mov     eax, dword ptr [ebp+var_80+0Ch]
  82.                 mov     [ebp+var_40], eax
  83.                 mov     eax, dword ptr [ebp+var_80+4]
  84.                 mov     [ebp+var_44], eax
  85.                 mov     eax, dword ptr [ebp+var_80]
  86.                 mov     [ebp+var_14], eax
  87.                 mov     eax, dword ptr [ebp+var_90+0Ch]
  88.                 mov     [ebp+var_28], edi
  89.                 mov     edi, dword ptr [ebp+var_80+8]
  90.                 mov     [ebp+var_3C], eax
  91.                 mov     eax, dword ptr [ebp+var_90+8]
  92.                 mov     [ebp+var_2C], edi
  93.                 mov     [ebp+var_38], eax
  94.                 mov     [ebp+var_4], ecx
  95.  
  96. loc_402885:                             ; CODE XREF: wtf_WITH_BUFFER+2A3↓j
  97.                 lea     eax, [ecx+edx]
  98.                 rol     eax, 7
  99.                 xor     eax, [ebp+var_14]
  100.                 add     ecx, eax
  101.                 mov     [ebp+var_14], eax
  102.                 rol     ecx, 9
  103.                 xor     ecx, [ebp+var_18]
  104.                 add     eax, ecx
  105.                 mov     [ebp+var_94], ecx
  106.                 rol     eax, 0Dh
  107.                 xor     eax, edx
  108.                 mov     edx, [ebp+var_44]
  109.                 mov     [ebp+var_9C], eax
  110.                 add     eax, ecx
  111.                 ror     eax, 0Eh
  112.                 xor     eax, [ebp+var_4]
  113.                 mov     [ebp+var_4], eax
  114.                 lea     eax, [esi+edx]
  115.                 rol     eax, 7
  116.                 xor     eax, [ebp+var_1C]
  117.                 mov     [ebp+var_18], eax
  118.                 lea     ecx, [eax+edx]
  119.                 rol     ecx, 9
  120.                 xor     ecx, dword ptr [ebp+arg_8+4]
  121.                 mov     dword ptr [ebp+var_50+4], ecx
  122.                 lea     esi, [eax+ecx]
  123.                 rol     esi, 0Dh
  124.                 xor     esi, [ebp+var_30]
  125.                 lea     eax, [esi+ecx]
  126.                 ror     eax, 0Eh
  127.                 xor     eax, edx
  128.                 mov     edx, [ebp+var_20]
  129.                 mov     [ebp+var_1C], eax
  130.                 lea     eax, [edi+edx]
  131.                 rol     eax, 7
  132.                 xor     eax, [ebp+var_24]
  133.                 mov     [ebp+var_98], eax
  134.                 lea     ecx, [eax+edx]
  135.                 rol     ecx, 9
  136.                 xor     ecx, [ebp+var_38]
  137.                 lea     edi, [ecx+eax]
  138.                 rol     edi, 0Dh
  139.                 xor     edi, [ebp+var_2C]
  140.                 mov     [ebp+var_24], edi
  141.                 lea     eax, [ecx+edi]
  142.                 ror     eax, 0Eh
  143.                 xor     eax, edx
  144.                 mov     edx, [ebp+var_28]
  145.                 mov     [ebp+var_20], eax
  146.                 lea     eax, [ebx+edx]
  147.                 rol     eax, 7
  148.                 xor     eax, [ebp+var_3C]
  149.                 add     edx, eax
  150.                 rol     edx, 9
  151.                 xor     edx, [ebp+var_40]
  152.                 lea     ebx, [edx+eax]
  153.                 rol     ebx, 0Dh
  154.                 xor     ebx, [ebp+var_8]
  155.                 mov     [ebp+var_8], ebx
  156.                 lea     edi, [edx+ebx]
  157.                 mov     ebx, edi
  158.                 mov     dword ptr [ebp+arg_8+4], edi
  159.                 ror     ebx, 0Eh
  160.                 xor     ebx, [ebp+var_28]
  161.                 mov     dword ptr [ebp+arg_8+4], ebx
  162.                 mov     ebx, [ebp+var_4]
  163.                 add     ebx, eax
  164.                 rol     ebx, 7
  165.                 xor     ebx, esi
  166.                 mov     esi, [ebp+var_4]
  167.                 mov     [ebp+var_30], ebx
  168.                 mov     dword ptr [ebp+var_90+4], ebx
  169.                 lea     edi, [ebx+esi]
  170.                 rol     edi, 9
  171.                 xor     edi, ecx
  172.                 mov     [ebp+var_38], edi
  173.                 mov     dword ptr [ebp+var_90+8], edi
  174.                 lea     ecx, [edi+ebx]
  175.                 rol     ecx, 0Dh
  176.                 xor     ecx, eax
  177.                 mov     [ebp+var_3C], ecx
  178.                 lea     eax, [edi+ecx]
  179.                 mov     dword ptr [ebp+var_90+0Ch], ecx
  180.                 mov     ecx, [ebp+var_14]
  181.                 ror     eax, 0Eh
  182.                 xor     eax, esi
  183.                 mov     [ebp+var_4], eax
  184.                 mov     dword ptr [ebp+var_90], eax
  185.                 mov     eax, [ebp+var_1C]
  186.                 lea     ebx, [ecx+eax]
  187.                 rol     ebx, 7
  188.                 xor     ebx, [ebp+var_24]
  189.                 mov     [ebp+var_2C], ebx
  190.                 mov     dword ptr [ebp+var_80+8], ebx
  191.                 mov     edi, [ebp+var_2C]
  192.                 lea     esi, [eax+ebx]
  193.                 rol     esi, 9
  194.                 xor     esi, edx
  195.                 mov     [ebp+var_40], esi
  196.                 mov     dword ptr [ebp+var_80+0Ch], esi
  197.                 lea     edx, [esi+ebx]
  198.                 rol     edx, 0Dh
  199.                 xor     edx, ecx
  200.                 mov     [ebp+var_14], edx
  201.                 mov     dword ptr [ebp+var_80], edx
  202.                 lea     ecx, [edx+esi]
  203.                 ror     ecx, 0Eh
  204.                 xor     ecx, eax
  205.                 mov     eax, [ebp+var_20]
  206.                 mov     [ebp+var_44], ecx
  207.                 mov     dword ptr [ebp+var_80+4], ecx
  208.                 mov     ecx, [ebp+var_18]
  209.                 lea     edx, [ecx+eax]
  210.                 rol     edx, 7
  211.                 xor     edx, [ebp+var_8]
  212.                 mov     [ebp+var_8], edx
  213.                 mov     dword ptr [ebp+var_70+0Ch], edx
  214.                 lea     ebx, [eax+edx]
  215.                 rol     ebx, 9
  216.                 xor     ebx, [ebp+var_94]
  217.                 add     edx, ebx
  218.                 mov     [ebp+var_18], ebx
  219.                 rol     edx, 0Dh
  220.                 xor     edx, ecx
  221.                 mov     dword ptr [ebp+var_70], ebx
  222.                 mov     [ebp+var_1C], edx
  223.                 mov     dword ptr [ebp+var_70+4], edx
  224.                 lea     ecx, [edx+ebx]
  225.                 ror     ecx, 0Eh
  226.                 xor     ecx, eax
  227.                 mov     eax, dword ptr [ebp+arg_8+4]
  228.                 mov     [ebp+var_20], ecx
  229.                 mov     dword ptr [ebp+var_70+8], ecx
  230.                 mov     ecx, [ebp+var_98]
  231.                 lea     edx, [eax+ecx]
  232.                 rol     edx, 7
  233.                 xor     edx, [ebp+var_9C]
  234.                 lea     ebx, [eax+edx]
  235.                 rol     ebx, 9
  236.                 xor     ebx, dword ptr [ebp+var_50+4]
  237.                 mov     dword ptr [ebp+arg_8+4], ebx
  238.                 mov     dword ptr [ebp+var_60+4], ebx
  239.                 lea     esi, [ebx+edx]
  240.                 rol     esi, 0Dh
  241.                 xor     esi, ecx
  242.                 mov     [ebp+var_24], esi
  243.                 mov     dword ptr [ebp+var_60+8], esi
  244.                 lea     ecx, [esi+ebx]
  245.                 mov     ebx, [ebp+var_8]
  246.                 mov     esi, [ebp+var_30]
  247.                 ror     ecx, 0Eh
  248.                 xor     ecx, eax
  249.                 sub     [ebp+var_C], 1
  250.                 mov     [ebp+var_28], ecx
  251.                 mov     dword ptr [ebp+var_60+0Ch], ecx
  252.                 mov     ecx, [ebp+var_4]
  253.                 jnz     loc_402885
  254.                 mov     dword ptr [ebp+var_60], edx
  255.                 xor     eax, eax
  256.                 xchg    ax, ax
  257.  
  258. loc_402A70:                             ; CODE XREF: wtf_WITH_BUFFER+2F1↓j
  259.                 mov     ecx, [ebp+var_A0]
  260.                 lea     esi, [ebp+var_DE]
  261.                 add     esi, eax
  262.                 mov     ecx, [esi+ecx]
  263.                 add     dword ptr [ebp+eax+var_90], ecx
  264.                 mov     edx, dword ptr [ebp+eax+var_90]
  265.                 mov     ecx, edx
  266.                 shr     ecx, 8
  267.                 mov     [esi-1], cl
  268.                 mov     ecx, edx
  269.                 mov     [ebp+eax+var_E0], dl
  270.                 add     eax, 4
  271.                 shr     ecx, 10h
  272.                 shr     edx, 18h
  273.                 mov     [esi], cl
  274.                 mov     [esi+1], dl
  275.                 cmp     eax, 40h
  276.                 jb      short loc_402A70
  277.                 mov     ecx, [ebp+var_48]
  278.                 mov     eax, 0
  279.                 mov     esi, [ebp+var_34]
  280.                 mov     ebx, [ebp+var_10]
  281.                 add     dword ptr [ecx+20h], 1
  282.                 setz    al
  283.                 add     [ecx+24h], eax
  284.                 test    esi, esi
  285.                 jl      short loc_402AE6
  286.                 jg      short loc_402AD6
  287.                 cmp     ebx, 40h
  288.                 jb      short loc_402AE6
  289.  
  290. loc_402AD6:                             ; CODE XREF: wtf_WITH_BUFFER+30F↑j
  291.                 mov     [ebp+var_C], 40h
  292.                 mov     dword ptr [ebp+arg_8+4], 0
  293.                 jmp     short loc_402AF6
  294. ; ---------------------------------------------------------------------------
  295.  
  296. loc_402AE6:                             ; CODE XREF: wtf_WITH_BUFFER+30D↑j
  297.                                         ; wtf_WITH_BUFFER+314↑j
  298.                 mov     [ebp+var_C], ebx
  299.                 mov     dword ptr [ebp+arg_8+4], esi
  300.                 test    esi, esi
  301.                 jl      short loc_402B49
  302.                 jg      short loc_402AF6
  303.                 test    ebx, ebx
  304.                 jz      short loc_402B49
  305.  
  306. loc_402AF6:                             ; CODE XREF: wtf_WITH_BUFFER+324↑j
  307.                                         ; wtf_WITH_BUFFER+330↑j
  308.                 mov     edi, [ebp+arg_4]
  309.                 xorps   xmm0, xmm0
  310.                 movlpd  qword ptr [ebp-50h], xmm0
  311.                 mov     edx, dword ptr [ebp+var_50+4]
  312.                 mov     ecx, dword ptr [ebp+var_50]
  313.                 nop     word ptr [eax+eax+00000000h]
  314.  
  315. loc_402B10:                             ; CODE XREF: wtf_WITH_BUFFER+377↓j
  316.                                         ; wtf_WITH_BUFFER+37E↓j
  317.                 mov     esi, [ebp+arg_0]
  318.                 mov     al, [ebp+ecx+var_E0]
  319.                 inc     [ebp+arg_0]
  320.                 xor     al, [esi]
  321.                 mov     esi, [ebp+var_34]
  322.                 mov     [edi], al
  323.                 inc     edi
  324.                 add     ecx, 1
  325.                 adc     edx, 0
  326.                 add     ebx, 0FFFFFFFFh
  327.                 adc     esi, 0FFFFFFFFh
  328.                 mov     [ebp+var_34], esi
  329.                 cmp     edx, dword ptr [ebp+arg_8+4]
  330.                 jl      short loc_402B10
  331.                 jg      short loc_402B40
  332.                 cmp     ecx, [ebp+var_C]
  333.                 jb      short loc_402B10
  334.  
  335. loc_402B40:                             ; CODE XREF: wtf_WITH_BUFFER+379↑j
  336.                 mov     ecx, [ebp+var_48]
  337.                 mov     [ebp+arg_4], edi
  338.                 mov     [ebp+var_10], ebx
  339.  
  340. loc_402B49:                             ; CODE XREF: wtf_WITH_BUFFER+32E↑j
  341.                                         ; wtf_WITH_BUFFER+334↑j
  342.                 mov     eax, ebx
  343.                 or      eax, esi
  344.                 jnz     loc_4027F3
  345.                 pop     edi
  346.                 pop     esi
  347.                 pop     ebx
  348.  
  349. loc_402B56:                             ; CODE XREF: wtf_WITH_BUFFER+1A↑j
  350.                 mov     esp, ebp
  351.                 pop     ebp
  352.                 retn    10h
  353. wtf_WITH_BUFFER endp
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement