;;;	RegisterPatch.s;;	Author		Jonathan Kipling Knight;	Created		12/20/2000;	Modified	12/20/2000;;kWord	EQU	4	EXPORT RegisterPatch1		AREA RegisterFN, CODE, READONLY	ENTRY	L0	LDR	PC,=0x01801620RegisterPatch1	MOV	R12,sp	STMFD	sp!,{R4-R8,R11,R12,LR,PC}	SUB	R11,R12,#kWord	; R11 := R12 - 4	MOV	R5,R1		; R5 := R1	MOV	R4,R2		; R4 := R2;	LDR	R6,[R11,#kWord]	; R6 := [R11 + 4]	LDR	R0,[R3]		; R0 := [R3]	LDR	R0,[R0]		; R0 := [R0]	TST	R0,#3		; R0 ? 3	MOVEQ	R0,R0,ASR #2	; if R0=3 then R0 := R0>>2	BEQ	L2			; if R0=3 then goto L2	BL	L7			; else gosub L7L2	MOV	R7,R0		; R7 := R0	LDR	R0,[R6]		; R0 := [R6]	LDR	R0,[R0]		; R0 := [R0]	TST	R0,#3		; R0 ? 3	MOVEQ	R0,R0,ASR #2	; if R0=3 then R0 := R0>>2	BEQ	L3			; if R0=3 then goto L3	BL	L7			; else gosub L7L3	RSB	R0,R0,R0,LSL #3	; R0 := R0<<3 - R0	LDR	R1,D0		; R1 := 0x0C1061C4	ADD	R0,R1,R0,LSL #2	; R0 := R1 + R0<<2	ADD	R6,R0,#36		; R6 := R0 + 36	MOV	R0,R7		; R0 := R7	BL	L6			; gosub L6	MOVS	R8,R0		; R8 := R0	MOVEQ	R0,#0	; if R8=R0 then R0 := 0 and return	LDMEQEA	R11,{R4-R8,R11,sp,PC}			SUB	sp,sp,#4		; sp := sp - 4	MOV	R0,R8			; R0 := R8	BL	L5				; gosub L5	MOV	R1,R5			; R1 := R5	MOV	R0,sp			; R0 := sp	BL	L8				; gosub L8	MOV	R0,sp			; R0 := sp	BL	L10				; gosub L10	MOV	R2,R7			; R2 := R7	MOV	R1,R8			; R1 := R8	BL	L0				; gosub L0	MOV	R0,sp			; R0 := sp	MOV	R1,#0			; R1 := 0	BL	L9				; gosub L9	STR	R7,[R6,#5*kWord]	; 	STR	R8,[R6,#4*kWord]	; 	LDR	R0,[R4]			; R0 := [R4]	LDR	R0,[R0]			; R0 := [R0]	TST	R0,#3			; R0 ? 3	MOVEQ	R0,R0,ASR #2	; if R0=3 then R0 := R0>>2	BEQ	L4				; if R0=3 then goto L4	BL	L7				; gosub L7L4	STR	R0,[R6,#6*kWord]!	; R0 := [R6 + 24]	MOV	R0,#2						; R0 := 2		; NIL	LDMEA	R11,{R4-R8,R11,sp,PC}	; return	D0	DCD	0x0C1061C4L5	LDR	PC,=0x018017E8L6	LDR	PC,=0x0180180CL7	LDR	PC,=0x018007E8L8	LDR	PC,=0x018007A4L9	LDR	PC,=0x018007CCL10	LDR	PC,=0x018007E0	END