## 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
\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 	.
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 	%
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 	.
AND D			;0025	A2 	.
LD (026FBH),A		;0026	32 FB 26 	2 . &
LD D,B			;0029	50 	P
SBC A,C			;002A	99 	.
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 	~
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 	.
LD B,D			;0066	42 	B
LD D,H			;0067	54 	T
ADC A,051H		;0069	CE 51 	. Q
SUB C			;006B	91 	.
RST 28H			;006C	EF 	.
XOR 0CCH		;006D	EE CC 	. .
LD (HL),E			;0071	73 	S
CP D			;0072	BA 	.
CP E			;0073	BB 	.
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 	.
LD L,062H		;0092	2E 62 	. B
RET Z			;0094	C8 	.
ADC A,0F2H		;0095	CE F2 	. .
RLA			;0097	17 	.
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 	.
LD (HL),A			;00A3	77 	W
LD DE,082D3H		;00A4	11 D3 82 	. . .
CALL C,08865H		;00A8	DC 65 88 	. E .
CP (HL)			;00AB	BE 	.
LD C,E			;00AC	4B 	K
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
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 	.
INC HL			;00C4	23 	#
LD HL,01B02H		;00C6	21 02 1B 	! . .
RET NZ			;00C9	C0 	.
LD A,B			;00CA	78 	X
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 	. . \$
LD H,028H		;00DA	26 28 	& (
CP C			;00DC	B9 	.
POP AF			;00DD	F1 	.
INC H			;00DE	24 	\$
LD B,B			;00DF	40 	@
CALL PE,0E123H		;00E1	EC 23 E1 	. # .
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 	" . .
LD E,(HL)			;011F	5E 	^
JP PE,0E031H		;0120	EA 31 E0 	. 1 .
RST 28H			;0123	EF 	.
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 	.
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 	.
AND E			;016D	A3 	.
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
OR C			;017C	B1 	.
AND E			;017D	A3 	.
CP 05DH		;017E	FE 5D 	. ]
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 	. .
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 	.
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 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 	. (