Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- global main
- extern printf
- extern scanf
- extern strcmp
- extern strlen
- extern getch
- extern wsprintfA
- extern strcat
- segment .data
- sUser DB `Usuario: \0`
- sSerial DB `Serial: \0`
- cCad DB `Yo-Mismo\0`
- Ftoi DB `%i\0`
- Ftos DB `%s\0`
- Ftosi DB `%u\0`
- sBien DB `--------------------\nFelicidades, cracker\n--------------------\0`
- sMal DB `Sigue intentando...\0`
- segment .bss
- User resb 16
- Serial resb 16
- FinSer1 resb 16
- FinSer2 resb 16
- FinSer3 resb 16
- FinSer4 resb 16
- sLen1 resb 4
- segment .text
- main:
- PUSH EBP
- MOV EBP,ESP
- SUB ESP,0xC
- MOV [ESP],dword sUser
- CALL printf
- MOV [ESP],dword Ftos
- MOV [ESP+4],dword User
- CALL scanf
- MOV [ESP],dword User
- CALL strlen
- CMP EAX,4
- JB MAL
- MOV [ESP],dword sSerial
- CALL printf
- MOV [ESP],dword Ftos
- MOV [ESP+4],dword Serial
- CALL scanf
- MOV [ESP],dword Serial
- CALL strlen
- CMP EAX,4
- JB MAL
- XOR ECX,ECX
- bucle:
- MOV DL,byte [User+ecx]
- MOV AL,byte [cCad+ecx]
- XOR AL,DL
- MOV byte [FinSer1+ECX],AL
- INC ECX
- CMP ECX,4
- JNE bucle
- PUSH FinSer1
- CALL strlen
- MOV EDX,EAX
- XOR EAX,EAX
- XOR ECX,ECX
- Fu1:
- CMP ECX,EDX
- JE Fu2
- ADD AX,word [FinSer1+ECX]
- INC ECX
- JMP Fu1
- Fu2:
- IMUL EAX,EAX,0x666
- SHR EAX,2
- ROL EAX,14
- ROR EAX,0x14
- IMUL EAX,EAX,2
- NOT EAX
- ADD EAX,0x999
- MOV dword [FinSer2],EAX
- PUSH dword [FinSer2]
- PUSH Ftosi
- PUSH FinSer3
- CALL wsprintfA
- PUSH FinSer3 ;strcat(Destino,Origen);
- PUSH User
- CALL strcat
- PUSH User
- MOV [ESP+4],dword Serial
- CALL strcmp
- CMP EAX,0
- JE BIEN
- JMP MAL
- BIEN:
- MOV [ESP],dword sBien
- CALL printf
- CALL getch
- LEAVE
- RET
- MAL:
- MOV [ESP],dword sMal
- CALL printf
- CALL getch
- LEAVE
- RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement