Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {$apptype console}
- program xtasm; uses windows,sysutils;
- {$L !tasm32.OBJ}
- procedure start; external;
- var //;!!! section DATA !!!
- dseg:integer = $78563412;
- //!tasm32.OBJ byte_420000 dd 0
- procedure sub_401032;// proc near
- asm
- push ebx
- push ecx
- push edx
- // ;mov dword_429430, esp
- // ;and esp, 0FFFFFFFCh
- push 4 //; flProtect
- push 1000h //; flAllocationType
- push eax //; dwSize
- push 0 //; lpAddress
- call VirtualAlloc
- // ;mov esp, dword_429430
- pop edx
- pop ecx
- pop ebx
- cld
- and eax, eax
- jz @@loc_40105C
- retn
- @@loc_40105C:
- // ;mov byte_42A7C7, 1
- // ;mov esp, dword_42A7A6
- stc
- retn
- end;
- procedure sub_40106B;
- asm
- push ebx
- push ecx
- push edx
- // ;mov dword_429430, esp
- // ;and esp, 0FFFFFFFCh
- push 8000h
- push 0//edx
- push eax
- call VirtualFree
- // ;mov esp, dword_429430
- pop edx
- pop ecx
- pop ebx
- cld
- retn
- end;
- procedure sub_41E3E1; external;
- procedure sub_407B0A;// proc near ; CODE XREF: sub_4077A3+D9p
- const
- dword_42ACC4 =$ACC4;
- dword_42ACD0 = $ACD0;
- dword_42A58E = $A58E;
- byte_42A7C7 = $A7C7;
- dword_42A7A6 = $A7A6;
- unk_42B0DC = $B0DC;
- unk_421884 = $1884;
- word_42A596 = $A596;
- dword_42A586 = $A586;
- dword_42ACD4 = $ACD4;
- asm // ; sub_41C60F+19p ...
- mov ecx, [offset dseg +dword_42ACC4]
- mov [ecx+edx*4], eax
- mov byte ptr [edi], 0Dh
- mov ecx, edi
- sub ecx, esi
- mov edi, eax
- mov [edi+0Ch], ebx
- mov [edi+8], cl
- mov [edi+9], cl
- xor eax, eax
- mov [edi+0Ah], ax
- mov [edi+1Dh], al
- mov byte ptr [edi+1Ch], 40h
- mov [edi+18h], eax
- mov [edi+14h], eax
- mov eax, ecx
- call sub_41E3E1
- mov [edi], eax
- mov [edi+4], eax
- mov edx, edi
- mov edi, eax
- push ecx
- shr ecx, 1
- repe movsw
- rcl ecx, 1
- repe movsb
- pop ecx
- dec [offset dseg+dword_42ACD0]
- jz @@loc_407B6A
- test byte ptr [offset dseg + dword_42A58E+2], 2
- jnz @@loc_407B79
- mov eax, edx
- mov [edx+10h], eax
- retn
- //; ---------------------------------------------------------------------------
- @@loc_407B6A: //; CODE XREF: sub_407B0A+4Fj
- mov byte ptr [offset dseg+byte_42A7C7], 7
- stc
- mov esp, dword_42A7A6
- retn
- //; ---------------------------------------------------------------------------
- @@loc_407B79: //; CODE XREF: sub_407B0A+58j
- push edx
- mov esi, offset dseg+unk_42B0DC
- mov edi, esi
- mov ebx, offset dseg+unk_421884
- xor edx, edx
- @@loc_407B88: //; CODE XREF: sub_407B0A+92j
- lodsb
- mov ah, al
- xlat
- xchg al, ah
- and ah, 20h
- sub al, ah
- stosb
- movsx eax, al
- rol edx, 5
- xor edx, eax
- loop @@loc_407B88
- mov esi, offset dseg+unk_42B0DC
- xor eax, eax
- test byte ptr [offset dseg+dword_42A58E], 40h
- jz @@loc_407BC1
- mov bx, word ptr [offset dseg+word_42A596]
- cmp bx, [esi]
- jnz @@loc_407BC1
- mov eax, [offset dseg+dword_42A586]
- add edx, eax
- @@loc_407BC1: //; CODE XREF: sub_407B0A+A2j
- //; sub_407B0A+AEj ...
- mov ecx, [offset dseg+dword_42ACC4]
- and edx, [offset dseg+dword_42ACD4]
- mov ecx, [ecx+edx*4]
- jecxz @@loc_407BF8
- mov ebx, ecx
- mov ecx, edi
- sub ecx, esi
- cmp cl, [ebx+8]
- jnz @@loc_407BF3
- cmp eax, [ebx+0Ch]
- jnz @@loc_407BF3
- push esi
- push edi
- mov edi, [ebx]
- repe cmpsb
- pop edi
- pop esi
- jnz @@loc_407BF3
- pop edx
- mov eax, ebx
- mov [edx+10h], eax
- retn
- //; ---------------------------------------------------------------------------
- @@loc_407BF3: //; CODE XREF: sub_407B0A+D1j
- //; sub_407B0A+D6j ...
- add edx, 0Bh
- jmp @@loc_407BC1
- //; ---------------------------------------------------------------------------
- @@loc_407BF8: //; CODE XREF: sub_407B0A+C6j
- pop edx
- mov eax, edx
- mov [edx+10h], eax
- retn
- end;//p
- const
- unk_4288C8 = $88C8;
- unk_4288F6 = $88F6;
- begin
- writeln ( pchar(integer(@dseg) +unk_4288C8 ));//print copyright
- writeln ( pchar(integer(@dseg) +unk_4288F6 ));//print copyright
- start();
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement