Modular Exponentiation by *yuko*

.\xc1\x1e\x04\xaf\xd7\xd7 \x02\xd7\x83/\xd6\xe2\xd5\xf5$+\xcb\x1e(\xfb#%\x8f\xf062eW\x12#\xb0\xedB\x00\x88\xa22\xfb&P\x99\x8d7\x9b\xc1\xbd\xb2Xc64\xce!X\xd913\xc2\x97bB\xcc\x91\x10\xd8\xb48\xf7\xc9P\x08\x08\xde\xf8\x1a\xb0\x0c\xd5\xe6&~\x81X\xa53e\xe1\xa3\x11\x11#\x11F}\x1c\xf3\x13b\xb9\x88BT\x84\xceQ\x91\xef\xee\xcc\x80\x88s\xba\xbb\xad\xc1\xa8\x04\xa63\xf0\xbfQ;ea\xf9\x08\xa1\x00W\x99\xa0>\xe7,/\xa6\xb3\x06\x1b\xc9\x0b\x09.b\xc8\xce\xf2\x17\x8c\x84M\xbd\x99\xa6\x02\xe0\xd0\x8b\x8fw\x11\xd3\x829\xdce\x88\xbeK\x09\xb4\x15\xf4\x19\xe8eJVK\x09\x941\xbc\xb2,`d#j\x00\x9f\x84#\x86!\x02\x1b\xc0x\x81\x00\xc3j\x91\x1c\x02\x0dq\x06t\xc4\xe3$\x87&(\xb9\xf1$@\x80\xec#\xe1\x88\x9cYY\xec\x0e\x82~\x04B}\xef@\xd6A\xab\xce=\xcc\xbe3;\xae\x90X\xa0'2\x03\x9c\xb8\xf6d\xcdS\xfe\xd7N\xf3`\x06\x18\xff\xe86F\xba\xdb*,\x92\xd9\xf6\xd7\xf0"\x0c\xbe\x80^\xea1\xe0\xef\x8b2A\x80\xb9\x98\x10\xd2\xf9\xe1\xca\x80\x03\x10O\xdc<in\x0d\xa2Am\xe5d\xb7\xe6^\xa8\xa9\xb6\xb5Hg(78\xd3\x04d\xc5\x95Hq`\x01\xe9FI\x13\x80`C(\xd9\xff\x1d\xc4\x0bP5\x15\xc5\x10\x04n\xfb\x02\xcbM\x08\xb7\x80\xa39\xce\x0c\xcf`\x96\xcf{b@G\x8c\x88\x82\xb1\xa3\xfe]\x81\xa8T\xc2\xdb\x9a#\xfe\x1a\xd6\xfc\x89F\xcfC\xef\x0f^\x10\xae\x08\xb8\x16\xdc\x17
\x04\xad\x84(\xb3y\xec\x05\xca\xa4t|\xff\xd1\x01B\xb3\x07g=\x1d5\xaf\xfe`\x9a
\x16[\x06(\x8c\xc9x\x07a\x9f|\x0bv

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

Disassemble:

	ORG	00000H

	LD L,0C1H		;0000	2E C1 	. . 
	LD E,004H		;0002	1E 04 	. . 
	XOR A			;0004	AF 	. 
	RST 10H			;0005	D7 	. 
	RST 10H			;0006	D7 	. 
	JR NZ,$+4		;0007	20 02 	  . 
	RST 10H			;0009	D7 	. 
	ADD A,E			;000A	83 	. 
	CPL			;000B	2F 	/ 
	SUB 0E2H		;000C	D6 E2 	. . 
	PUSH DE			;000E	D5 	. 
	PUSH AF			;000F	F5 	. 
	INC H			;0010	24 	$ 
	DEC HL			;0011	2B 	+ 
	RR (HL)		;0012	CB 1E 	. . 
	JR Z,$-3		;0014	28 FB 	( . 
	INC HL			;0016	23 	# 
	DEC H			;0017	25 	% 
	ADC A,A			;0018	8F 	. 
	RET P			;0019	F0 	. 
	LD (HL),032H		;001A	36 32 	6 2 
	LD H,L			;001C	65 	E 
	LD D,A			;001D	57 	W 
	LD (DE),A			;001E	12 	. 
	INC HL			;001F	23 	# 
	OR B			;0020	B0 	. 
	SBC HL,BC		;0021	ED 42 	. B 
	NOP			;0023	00 	. 
	ADC A,B			;0024	88 	. 
	AND D			;0025	A2 	. 
	LD (026FBH),A		;0026	32 FB 26 	2 . & 
	LD D,B			;0029	50 	P 
	SBC A,C			;002A	99 	. 
	ADC A,L			;002B	8D 	. 
	SCF			;002C	37 	7 
	SBC A,E			;002D	9B 	. 
	POP BC			;002E	C1 	. 
	CP L			;002F	BD 	. 
	OR D			;0030	B2 	. 
	LD E,B			;0031	58 	X 
	LD H,E			;0032	63 	C 
	LD (HL),034H		;0033	36 34 	6 4 
	ADC A,021H		;0035	CE 21 	. ! 
	LD E,B			;0037	58 	X 
	EXX			;0038	D9 	. 
	LD SP,0C233H		;0039	31 33 C2 	1 3 . 
	SUB A			;003C	97 	. 
	LD H,D			;003D	62 	B 
	LD B,D			;003E	42 	B 
	CALL Z,01091H		;003F	CC 91 10 	. . . 
	RET C			;0042	D8 	. 
	OR H			;0043	B4 	. 
	JR C,$-7		;0044	38 F7 	8 . 
	RET			;0046	C9 	. 
	LD D,B			;0047	50 	P 
	EX AF,AF'			;0048	08 	. 
	EX AF,AF'			;0049	08 	. 
	SBC A,0F8H		;004A	DE F8 	. . 
	LD A,(DE)			;004C	1A 	. 
	OR B			;004D	B0 	. 
	INC C			;004E	0C 	. 
	PUSH DE			;004F	D5 	. 
	AND 026H		;0050	E6 26 	. & 
	LD A,(HL)			;0052	7E 	~ 
	ADD A,C			;0053	81 	. 
	LD E,B			;0054	58 	X 
	AND L			;0055	A5 	. 
	INC SP			;0056	33 	3 
	LD H,L			;0057	65 	E 
	POP HL			;0058	E1 	. 
	AND E			;0059	A3 	. 
	LD DE,02311H		;005A	11 11 23 	. . # 
	LD DE,07D46H		;005D	11 46 7D 	. F } 
	INC E			;0060	1C 	. 
	DI			;0061	F3 	. 
	INC DE			;0062	13 	. 
	LD H,D			;0063	62 	B 
	CP C			;0064	B9 	. 
	ADC A,B			;0065	88 	. 
	LD B,D			;0066	42 	B 
	LD D,H			;0067	54 	T 
	ADD A,H			;0068	84 	. 
	ADC A,051H		;0069	CE 51 	. Q 
	SUB C			;006B	91 	. 
	RST 28H			;006C	EF 	. 
	XOR 0CCH		;006D	EE CC 	. . 
	ADD A,B			;006F	80 	. 
	ADC A,B			;0070	88 	. 
	LD (HL),E			;0071	73 	S 
	CP D			;0072	BA 	. 
	CP E			;0073	BB 	. 
	XOR L			;0074	AD 	. 
	POP BC			;0075	C1 	. 
	XOR B			;0076	A8 	. 
	INC B			;0077	04 	. 
	AND (HL)			;0078	A6 	. 
	INC SP			;0079	33 	3 
	RET P			;007A	F0 	. 
	CP A			;007B	BF 	. 
	LD D,C			;007C	51 	Q 
	DEC SP			;007D	3B 	; 
	LD H,L			;007E	65 	E 
	LD H,C			;007F	61 	A 
	LD SP,HL			;0080	F9 	. 
	EX AF,AF'			;0081	08 	. 
	AND C			;0082	A1 	. 
	NOP			;0083	00 	. 
	LD D,A			;0084	57 	W 
	SBC A,C			;0085	99 	. 
	AND B			;0086	A0 	. 
	LD A,0E7H		;0087	3E E7 	> . 
	INC L			;0089	2C 	, 
	CPL			;008A	2F 	/ 
	AND (HL)			;008B	A6 	. 
	OR E			;008C	B3 	. 
	LD B,01BH		;008D	06 1B 	. . 
	RET			;008F	C9 	. 
	DEC BC			;0090	0B 	. 
	ADD HL,BC			;0091	09 	. 
	LD L,062H		;0092	2E 62 	. B 
	RET Z			;0094	C8 	. 
	ADC A,0F2H		;0095	CE F2 	. . 
	RLA			;0097	17 	. 
	ADC A,H			;0098	8C 	. 
	ADD A,H			;0099	84 	. 
	LD C,L			;009A	4D 	M 
	CP L			;009B	BD 	. 
	SBC A,C			;009C	99 	. 
	AND (HL)			;009D	A6 	. 
	LD (BC),A			;009E	02 	. 
	RET PO			;009F	E0 	. 
	RET NC			;00A0	D0 	. 
	ADC A,E			;00A1	8B 	. 
	ADC A,A			;00A2	8F 	. 
	LD (HL),A			;00A3	77 	W 
	LD DE,082D3H		;00A4	11 D3 82 	. . . 
	ADD HL,SP			;00A7	39 	9 
	CALL C,08865H		;00A8	DC 65 88 	. E . 
	CP (HL)			;00AB	BE 	. 
	LD C,E			;00AC	4B 	K 
	ADD HL,BC			;00AD	09 	. 
	OR H			;00AE	B4 	. 
	DEC D			;00AF	15 	. 
	CALL P,0E819H		;00B0	F4 19 E8 	. . . 
	LD H,L			;00B3	65 	E 
	LD C,D			;00B4	4A 	J 
	LD D,(HL)			;00B5	56 	V 
	LD C,E			;00B6	4B 	K 
	ADD HL,BC			;00B7	09 	. 
	SUB H			;00B8	94 	. 
	LD SP,0B2BCH		;00B9	31 BC B2 	1 . . 
	INC L			;00BC	2C 	, 
	LD H,B			;00BD	60 	` 
	LD H,H			;00BE	64 	D 
	INC HL			;00BF	23 	# 
	LD L,D			;00C0	6A 	J 
	NOP			;00C1	00 	. 
	SBC A,A			;00C2	9F 	. 
	ADD A,H			;00C3	84 	. 
	INC HL			;00C4	23 	# 
	ADD A,(HL)			;00C5	86 	. 
	LD HL,01B02H		;00C6	21 02 1B 	! . . 
	RET NZ			;00C9	C0 	. 
	LD A,B			;00CA	78 	X 
	ADD A,C			;00CB	81 	. 
	NOP			;00CC	00 	. 
	JP 0916AH		;00CD	C3 6A 91 	. J . 
	INC E			;00D0	1C 	. 
	LD (BC),A			;00D1	02 	. 
	DEC C			;00D2	0D 	. 
	LD (HL),C			;00D3	71 	Q 
	LD B,074H		;00D4	06 74 	. T 
	CALL NZ,024E3H		;00D6	C4 E3 24 	. . $ 
	ADD A,A			;00D9	87 	. 
	LD H,028H		;00DA	26 28 	& ( 
	CP C			;00DC	B9 	. 
	POP AF			;00DD	F1 	. 
	INC H			;00DE	24 	$ 
	LD B,B			;00DF	40 	@ 
	ADD A,B			;00E0	80 	. 
	CALL PE,0E123H		;00E1	EC 23 E1 	. # . 
	ADC A,B			;00E4	88 	. 
	SBC A,H			;00E5	9C 	. 
	LD E,C			;00E6	59 	Y 
	LD E,C			;00E7	59 	Y 
	CALL PE,0820EH		;00E8	EC 0E 82 	. . . 
	LD A,(HL)			;00EB	7E 	~ 
	INC B			;00EC	04 	. 
	LD B,D			;00ED	42 	B 
	LD A,L			;00EE	7D 	} 
	RST 28H			;00EF	EF 	. 
	LD B,B			;00F0	40 	@ 
	SUB 041H		;00F1	D6 41 	. A 
	XOR E			;00F3	AB 	. 
	ADC A,03DH		;00F4	CE 3D 	. = 
	CALL Z,033BEH		;00F6	CC BE 33 	. . 3 
	DEC SP			;00F9	3B 	; 
	XOR (HL)			;00FA	AE 	. 
	SUB B			;00FB	90 	. 
	LD E,B			;00FC	58 	X 
	AND B			;00FD	A0 	. 
	DAA			;00FE	27 	' 
	LD (09C03H),A		;00FF	32 03 9C 	2 . . 
	CP B			;0102	B8 	. 
	OR 064H		;0103	F6 64 	. D 
	CALL 0FE53H		;0105	CD 53 FE 	. S . 
	RST 10H			;0108	D7 	. 
	LD C,(HL)			;0109	4E 	N 
	DI			;010A	F3 	. 
	LD H,B			;010B	60 	` 
	LD B,018H		;010C	06 18 	. . 
	RST 38H			;010E	FF 	. 
	RET PE			;010F	E8 	. 
	LD (HL),046H		;0110	36 46 	6 F 
	CP D			;0112	BA 	. 
	IN A,(02AH)		;0113	DB 2A 	. * 
	INC L			;0115	2C 	, 
	SUB D			;0116	92 	. 
	EXX			;0117	D9 	. 
	OR 0D7H		;0118	F6 D7 	. . 
	RET P			;011A	F0 	. 
	LD (0BE0CH),HL		;011B	22 0C BE 	" . . 
	ADD A,B			;011E	80 	. 
	LD E,(HL)			;011F	5E 	^ 
	JP PE,0E031H		;0120	EA 31 E0 	. 1 . 
	RST 28H			;0123	EF 	. 
	ADC A,E			;0124	8B 	. 
	LD (08041H),A		;0125	32 41 80 	2 A . 
	CP C			;0128	B9 	. 
	SBC A,B			;0129	98 	. 
	DJNZ $-44		;012A	10 D2 	. . 
	LD SP,HL			;012C	F9 	. 
	POP HL			;012D	E1 	. 
	JP Z,00380H		;012E	CA 80 03 	. . . 
	DJNZ $+81		;0131	10 4F 	. O 
	CALL C,0693CH		;0133	DC 3C 69 	. < I 
	LD L,(HL)			;0136	6E 	N 
	DEC C			;0137	0D 	. 
	AND D			;0138	A2 	. 
	LD B,C			;0139	41 	A 
	LD L,L			;013A	6D 	M 
	PUSH HL			;013B	E5 	. 
	LD H,H			;013C	64 	D 
	OR A			;013D	B7 	. 
	AND 05EH		;013E	E6 5E 	. ^ 
	XOR B			;0140	A8 	. 
	XOR C			;0141	A9 	. 
	OR (HL)			;0142	B6 	. 
	OR L			;0143	B5 	. 
	LD C,B			;0144	48 	H 
	LD H,A			;0145	67 	G 
	JR Z,$+57		;0146	28 37 	( 7 
	JR C,$-43		;0148	38 D3 	8 . 
	INC B			;014A	04 	. 
	LD H,H			;014B	64 	D 
	PUSH BC			;014C	C5 	. 
	SUB L			;014D	95 	. 
	LD C,B			;014E	48 	H 
	LD (HL),C			;014F	71 	Q 
	LD H,B			;0150	60 	` 
	LD BC,046E9H		;0151	01 E9 46 	. . F 
	LD C,C			;0154	49 	I 
	INC DE			;0155	13 	. 
	ADD A,B			;0156	80 	. 
	LD H,B			;0157	60 	` 
	LD B,E			;0158	43 	C 
	JR Z,$-37		;0159	28 D9 	( . 
	RST 38H			;015B	FF 	. 
	DEC E			;015C	1D 	. 
	CALL NZ,0500BH		;015D	C4 0B 50 	. . P 
	DEC (HL)			;0160	35 	5 
	DEC D			;0161	15 	. 
	PUSH BC			;0162	C5 	. 
	DJNZ $+6		;0163	10 04 	. . 
	LD L,(HL)			;0165	6E 	N 
	EI			;0166	FB 	. 
	LD (BC),A			;0167	02 	. 
	BIT 1,L		;0168	CB 4D 	. M 
	EX AF,AF'			;016A	08 	. 
	OR A			;016B	B7 	. 
	ADD A,B			;016C	80 	. 
	AND E			;016D	A3 	. 
	ADD HL,SP			;016E	39 	9 
	ADC A,00CH		;016F	CE 0C 	. . 
	RST 8			;0171	CF 	. 
	LD H,B			;0172	60 	` 
	SUB (HL)			;0173	96 	. 
	RST 8			;0174	CF 	. 
	LD A,E			;0175	7B 	{ 
	LD H,D			;0176	62 	B 
	LD B,B			;0177	40 	@ 
	LD B,A			;0178	47 	G 
	ADC A,H			;0179	8C 	. 
	ADC A,B			;017A	88 	. 
	ADD A,D			;017B	82 	. 
	OR C			;017C	B1 	. 
	AND E			;017D	A3 	. 
	CP 05DH		;017E	FE 5D 	. ] 
	ADD A,C			;0180	81 	. 
	XOR B			;0181	A8 	. 
	LD D,H			;0182	54 	T 
	JP NZ,09ADBH		;0183	C2 DB 9A 	. . . 
	INC HL			;0186	23 	# 
	CP 01AH		;0187	FE 1A 	. . 
	SUB 0FCH		;0189	D6 FC 	. . 
	ADC A,C			;018B	89 	. 
	LD B,(HL)			;018C	46 	F 
	RST 8			;018D	CF 	. 
	LD B,E			;018E	43 	C 
	RST 28H			;018F	EF 	. 
	RRCA			;0190	0F 	. 
	LD E,(HL)			;0191	5E 	^ 
	DJNZ $-80		;0192	10 AE 	. . 
	EX AF,AF'			;0194	08 	. 
	CP B			;0195	B8 	. 
	LD D,0DCH		;0196	16 DC 	. . 
	RLA			;0198	17 	. 
	LD A,(BC)			;0199	0A 	. 
	INC B			;019A	04 	. 
	XOR L			;019B	AD 	. 
	ADD A,H			;019C	84 	. 
	JR Z,$-75		;019D	28 B3 	( . 
	LD A,C			;019F	79 	Y 
	CALL PE,0CA05H		;01A0	EC 05 CA 	. . . 
	AND H			;01A3	A4 	. 
	LD (HL),H			;01A4	74 	T 
	LD A,H			;01A5	7C 	| 
	RST 38H			;01A6	FF 	. 
	POP DE			;01A7	D1 	. 
	LD BC,0B342H		;01A8	01 42 B3 	. B . 
	RLCA			;01AB	07 	. 
	LD H,A			;01AC	67 	G 
	DEC A			;01AD	3D 	= 
	DEC E			;01AE	1D 	. 
	DEC (HL)			;01AF	35 	5 
	XOR A			;01B0	AF 	. 
	CP 060H		;01B1	FE 60 	. ` 
	SBC A,D			;01B3	9A 	. 
	LD A,(BC)			;01B4	0A 	. 
	LD D,05BH		;01B5	16 5B 	. [ 
	LD B,028H		;01B7	06 28 	. ( 
	ADC A,H			;01B9	8C 	. 
	RET			;01BA	C9 	. 
	LD A,B			;01BB	78 	X 
	RLCA			;01BC	07 	. 
	LD H,C			;01BD	61 	A 
	SBC A,A			;01BE	9F 	. 
	LD A,H			;01BF	7C 	| 
	DEC BC			;01C0	0B 	. 
	HALT			;01C1	76 	V 

download

return top