All pastes #492002 Raw Edit

burt

public text v1 · immutable
·published 2007-05-16 23:30 UTC
rendered paste body
CPU 386
GLOBAL decode
SECTION .text

treat:
	PUSH EAX
	DEC ESI
	MOVZX EAX, WORD[EBX+ESI*2]
	XOR EAX, ESI
	MOV [EDX+ESI], AL	
	INC ESI
	POP EAX
	RET

decode:
	PUSH EBP
	MOV EBP, ESP
	PUSH EBX
	PUSH ECX
	PUSH EDX
	PUSH ESI
	MOV EBX, [EBP+8] 			; t[]
	MOV EDX, [EBP+12]			; s[]
	MOVZX ECX, WORD[EBP+16]		; n
	
	MOV ESI, 1
	PUSH ESI
run:
	POP ESI
	SAL ESI,1
	CMP ESI, ECX
	JGE end
	PUSH ESI
	CALL run
	POP ESI
	INC ESI
	CMP ESI, ECX
	JGE end
	PUSH ESI
	CALL run
	POP ESI
	
end:
	DEC ESI
	SAR ESI,1
	PUSH ESI
	CALL treat
	POP ESI
	RET
	
	POP ESI
	POP EDX
	POP ECX
	POP EBX
	POP EBP
RET