Advertisement
Guest User

Untitled

a guest
May 1st, 2017
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 3.94 KB | None | 0 0
  1. {$apptype console}
  2. program xtasm; uses windows,sysutils;
  3.  
  4. {$L !tasm32.OBJ}
  5.  
  6. procedure start; external;
  7.  
  8.  
  9. var //;!!! section DATA !!!
  10.   dseg:integer = $78563412;
  11. //!tasm32.OBJ byte_420000 dd 0 
  12.  
  13.  
  14. procedure sub_401032;// proc near
  15. asm
  16.         push    ebx
  17.         push    ecx
  18.         push    edx
  19. //      ;mov    dword_429430, esp
  20. //      ;and    esp, 0FFFFFFFCh
  21.         push    4   //; flProtect
  22.         push    1000h   //; flAllocationType
  23.         push    eax //; dwSize
  24.         push    0   //; lpAddress
  25.         call    VirtualAlloc
  26. //      ;mov    esp, dword_429430
  27.         pop edx
  28.         pop ecx
  29.         pop ebx
  30.         cld
  31.         and eax, eax
  32.         jz  @@loc_40105C
  33.         retn
  34.  
  35. @@loc_40105C:  
  36. //      ;mov    byte_42A7C7,    1
  37. //      ;mov    esp, dword_42A7A6
  38.         stc
  39.         retn
  40. end;
  41.  
  42. procedure sub_40106B;
  43. asm
  44.         push    ebx
  45.         push    ecx
  46.         push    edx
  47. //      ;mov    dword_429430, esp
  48. //      ;and    esp, 0FFFFFFFCh
  49.         push    8000h
  50.         push    0//edx
  51.         push    eax
  52.         call    VirtualFree
  53. //      ;mov    esp, dword_429430
  54.         pop edx
  55.         pop ecx
  56.         pop ebx
  57.         cld
  58.         retn
  59. end;
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66. procedure sub_41E3E1; external;
  67.  
  68. procedure sub_407B0A;// proc near       ; CODE XREF: sub_4077A3+D9p
  69.  
  70. const
  71.  
  72. dword_42ACC4 =$ACC4;
  73. dword_42ACD0 = $ACD0;
  74. dword_42A58E = $A58E;
  75. byte_42A7C7  = $A7C7;
  76. dword_42A7A6 = $A7A6;
  77. unk_42B0DC  = $B0DC;
  78. unk_421884  = $1884;
  79. word_42A596 = $A596;
  80. dword_42A586 = $A586;
  81. dword_42ACD4 = $ACD4;
  82.  
  83.  
  84.  
  85. asm     //          ; sub_41C60F+19p ...
  86.         mov ecx, [offset dseg +dword_42ACC4]
  87.         mov [ecx+edx*4], eax
  88.         mov byte ptr [edi], 0Dh
  89.         mov ecx, edi
  90.         sub ecx, esi
  91.         mov edi, eax
  92.         mov [edi+0Ch], ebx
  93.         mov [edi+8], cl
  94.         mov [edi+9], cl
  95.         xor eax, eax
  96.         mov [edi+0Ah], ax
  97.         mov [edi+1Dh], al
  98.         mov byte ptr [edi+1Ch], 40h
  99.         mov [edi+18h], eax
  100.         mov [edi+14h], eax
  101.         mov eax, ecx
  102.         call    sub_41E3E1
  103.         mov [edi], eax
  104.         mov [edi+4], eax
  105.         mov edx, edi
  106.         mov edi, eax
  107.         push    ecx
  108.         shr ecx, 1
  109.         repe movsw
  110.         rcl ecx, 1
  111.         repe movsb
  112.         pop ecx
  113.         dec [offset dseg+dword_42ACD0]
  114.         jz  @@loc_407B6A
  115.         test    byte ptr [offset dseg + dword_42A58E+2], 2
  116.         jnz @@loc_407B79
  117.         mov eax, edx
  118.         mov [edx+10h], eax
  119.         retn
  120. //; ---------------------------------------------------------------------------
  121.  
  122. @@loc_407B6A:               //; CODE XREF: sub_407B0A+4Fj
  123.         mov byte ptr [offset dseg+byte_42A7C7], 7
  124.         stc
  125.         mov esp, dword_42A7A6
  126.         retn
  127. //; ---------------------------------------------------------------------------
  128.  
  129. @@loc_407B79:               //; CODE XREF: sub_407B0A+58j
  130.         push    edx
  131.         mov esi, offset dseg+unk_42B0DC
  132.         mov edi, esi
  133.         mov ebx, offset dseg+unk_421884
  134.         xor edx, edx
  135.  
  136. @@loc_407B88:               //; CODE XREF: sub_407B0A+92j
  137.         lodsb
  138.         mov ah, al
  139.         xlat
  140.         xchg    al, ah
  141.         and ah, 20h
  142.         sub al, ah
  143.         stosb
  144.         movsx   eax, al
  145.         rol edx, 5
  146.         xor edx, eax
  147.         loop    @@loc_407B88
  148.         mov esi, offset dseg+unk_42B0DC
  149.         xor eax, eax
  150.         test    byte ptr [offset dseg+dword_42A58E], 40h
  151.         jz  @@loc_407BC1
  152.         mov bx, word ptr [offset dseg+word_42A596]
  153.         cmp bx, [esi]
  154.         jnz @@loc_407BC1
  155.         mov eax, [offset dseg+dword_42A586]
  156.         add edx, eax
  157.  
  158. @@loc_407BC1:               //; CODE XREF: sub_407B0A+A2j
  159.                     //; sub_407B0A+AEj ...
  160.         mov ecx, [offset dseg+dword_42ACC4]
  161.         and edx, [offset dseg+dword_42ACD4]
  162.         mov ecx, [ecx+edx*4]
  163.         jecxz   @@loc_407BF8
  164.         mov ebx, ecx
  165.         mov ecx, edi
  166.         sub ecx, esi
  167.         cmp cl, [ebx+8]
  168.         jnz @@loc_407BF3
  169.         cmp eax, [ebx+0Ch]
  170.         jnz @@loc_407BF3
  171.         push    esi
  172.         push    edi
  173.         mov edi, [ebx]
  174.         repe cmpsb
  175.         pop edi
  176.         pop esi
  177.         jnz @@loc_407BF3
  178.         pop edx
  179.         mov eax, ebx
  180.         mov [edx+10h], eax
  181.         retn
  182. //; ---------------------------------------------------------------------------
  183.  
  184. @@loc_407BF3:               //; CODE XREF: sub_407B0A+D1j
  185.                     //; sub_407B0A+D6j ...
  186.         add edx, 0Bh
  187.         jmp @@loc_407BC1
  188. //; ---------------------------------------------------------------------------
  189.  
  190. @@loc_407BF8:               //; CODE XREF: sub_407B0A+C6j
  191.         pop edx
  192.         mov eax, edx
  193.         mov [edx+10h], eax
  194.         retn
  195. end;//p
  196.  
  197.  
  198.  
  199. const
  200.   unk_4288C8 = $88C8;
  201.   unk_4288F6 = $88F6;
  202.  
  203. begin
  204.   writeln ( pchar(integer(@dseg) +unk_4288C8 ));//print copyright
  205.   writeln ( pchar(integer(@dseg) +unk_4288F6 ));//print copyright
  206.   start();
  207. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement