summaryrefslogtreecommitdiff
path: root/projects/06/pong/Pong.asm
diff options
context:
space:
mode:
Diffstat (limited to 'projects/06/pong/Pong.asm')
-rw-r--r--projects/06/pong/Pong.asm28375
1 files changed, 28375 insertions, 0 deletions
diff --git a/projects/06/pong/Pong.asm b/projects/06/pong/Pong.asm
new file mode 100644
index 0000000..79691f0
--- /dev/null
+++ b/projects/06/pong/Pong.asm
@@ -0,0 +1,28375 @@
+// This file is part of www.nand2tetris.org
+// and the book "The Elements of Computing Systems"
+// by Nisan and Schocken, MIT Press.
+// File name: projects/06/pong/Pong.asm
+
+// The Pong game program was originally written in the high-level Jack language.
+// The Jack code was then translated by the Jack compiler into VM code.
+// The VM code was then translated by the VM translator into the Hack
+// assembly code shown here.
+
+@256
+D=A
+@SP
+M=D
+@133
+0;JMP
+@R15
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_EQ
+D;JNE
+@SP
+A=M-1
+M=-1
+(END_EQ)
+@R15
+A=M
+0;JMP
+@R15
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_GT
+D;JLE
+@SP
+A=M-1
+M=-1
+(END_GT)
+@R15
+A=M
+0;JMP
+@R15
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+D=M-D
+M=0
+@END_LT
+D;JGE
+@SP
+A=M-1
+M=-1
+(END_LT)
+@R15
+A=M
+0;JMP
+@5
+D=A
+@LCL
+A=M-D
+D=M
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+D=A
+@SP
+M=D+1
+@LCL
+D=M
+@R14
+AM=D-1
+D=M
+@THAT
+M=D
+@R14
+AM=M-1
+D=M
+@THIS
+M=D
+@R14
+AM=M-1
+D=M
+@ARG
+M=D
+@R14
+AM=M-1
+D=M
+@LCL
+M=D
+@R13
+A=M
+0;JMP
+@SP
+A=M
+M=D
+@LCL
+D=M
+@SP
+AM=M+1
+M=D
+@ARG
+D=M
+@SP
+AM=M+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+M=D
+@THAT
+D=M
+@SP
+AM=M+1
+M=D
+@4
+D=A
+@R13
+D=D+M
+@SP
+D=M-D
+@ARG
+M=D
+@SP
+MD=M+1
+@LCL
+M=D
+@R14
+A=M
+0;JMP
+@0
+D=A
+@R13
+M=D
+@sys.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL0
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL0)
+(ball.new)
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.alloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL1
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL1)
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@10
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@THIS
+D=M
+@11
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@12
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@THIS
+D=M
+@13
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@THIS
+D=M
+@14
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.show
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL2
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL2)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(ball.dispose)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.dealloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL3
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL3)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ball.show)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL4
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL4)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.draw
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL5
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL5)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ball.hide)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL6
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL6)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.draw
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL7
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL7)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ball.draw)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL8
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL8)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ball.getleft)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(ball.getright)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@54
+0;JMP
+(ball.setdestination)
+@3
+D=A
+(LOOP_ball.setdestination)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_ball.setdestination
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL9
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL9)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL10
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL10)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT0
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT0)
+@THIS
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.setdestination$if_true0
+D;JNE
+@ball.setdestination$if_false0
+0;JMP
+(ball.setdestination$if_true0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT1
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT1)
+@THIS
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT2
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT2)
+@THIS
+D=M
+@9
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ball.setdestination$if_end0
+0;JMP
+(ball.setdestination$if_false0)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT3
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT3)
+@THIS
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT4
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT4)
+@THIS
+D=M
+@9
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+(ball.setdestination$if_end0)
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL11
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL11)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL12
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL12)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL13
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL13)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ball.move)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.hide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL14
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL14)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT5
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT5)
+@SP
+AM=M-1
+D=M
+@ball.move$if_true0
+D;JNE
+@ball.move$if_false0
+0;JMP
+(ball.move$if_true0)
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ball.move$if_end0
+0;JMP
+(ball.move$if_false0)
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@THIS
+D=M
+@9
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true1
+D;JNE
+@ball.move$if_false1
+0;JMP
+(ball.move$if_true1)
+@THIS
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true2
+D;JNE
+@ball.move$if_false2
+0;JMP
+(ball.move$if_true2)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@ball.move$if_end2
+0;JMP
+(ball.move$if_false2)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+(ball.move$if_end2)
+@ball.move$if_end1
+0;JMP
+(ball.move$if_false1)
+@THIS
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true3
+D;JNE
+@ball.move$if_false3
+0;JMP
+(ball.move$if_true3)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@ball.move$if_end3
+0;JMP
+(ball.move$if_false3)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+(ball.move$if_end3)
+(ball.move$if_end1)
+(ball.move$if_end0)
+@THIS
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true4
+D;JNE
+@ball.move$if_false4
+0;JMP
+(ball.move$if_true4)
+@THIS
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true5
+D;JNE
+@ball.move$if_false5
+0;JMP
+(ball.move$if_true5)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+@ball.move$if_end5
+0;JMP
+(ball.move$if_false5)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(ball.move$if_end5)
+@ball.move$if_end4
+0;JMP
+(ball.move$if_false4)
+@THIS
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ball.move$if_true6
+D;JNE
+@ball.move$if_false6
+0;JMP
+(ball.move$if_true6)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+@ball.move$if_end6
+0;JMP
+(ball.move$if_false6)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(ball.move$if_end6)
+(ball.move$if_end4)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@10
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT0
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT0)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ball.move$if_true7
+D;JNE
+@ball.move$if_false7
+0;JMP
+(ball.move$if_true7)
+@SP
+M=M+1
+A=M-1
+M=1
+@THIS
+D=M
+@14
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@10
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(ball.move$if_false7)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@11
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT6
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT6)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ball.move$if_true8
+D;JNE
+@ball.move$if_false8
+0;JMP
+(ball.move$if_true8)
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@14
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@11
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(ball.move$if_false8)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@12
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT1
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT1)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ball.move$if_true9
+D;JNE
+@ball.move$if_false9
+0;JMP
+(ball.move$if_true9)
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@14
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@12
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+(ball.move$if_false9)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@13
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT7
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT7)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ball.move$if_true10
+D;JNE
+@ball.move$if_false10
+0;JMP
+(ball.move$if_true10)
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@14
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@THIS
+D=M
+@13
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+(ball.move$if_false10)
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.show
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL15
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL15)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@14
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(ball.bounce)
+@5
+D=A
+(LOOP_ball.bounce)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_ball.bounce
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL16
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL16)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL17
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL17)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ0
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ0)
+@SP
+AM=M-1
+D=M
+@ball.bounce$if_true0
+D;JNE
+@ball.bounce$if_false0
+0;JMP
+(ball.bounce$if_true0)
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ball.bounce$if_end0
+0;JMP
+(ball.bounce$if_false0)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT8
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT8)
+@SP
+A=M-1
+M=!M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@RET_ADDRESS_EQ1
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ1)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT9
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT9)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@RET_ADDRESS_EQ2
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ2)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@ball.bounce$if_true1
+D;JNE
+@ball.bounce$if_false1
+0;JMP
+(ball.bounce$if_true1)
+@20
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ball.bounce$if_end1
+0;JMP
+(ball.bounce$if_false1)
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+(ball.bounce$if_end1)
+(ball.bounce$if_end0)
+@THIS
+D=M
+@14
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@RET_ADDRESS_EQ3
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ3)
+@SP
+AM=M-1
+D=M
+@ball.bounce$if_true2
+D;JNE
+@ball.bounce$if_false2
+0;JMP
+(ball.bounce$if_true2)
+@506
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@50
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL18
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL18)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL19
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL19)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL20
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL20)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ball.bounce$if_end2
+0;JMP
+(ball.bounce$if_false2)
+@THIS
+D=M
+@14
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ4
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ4)
+@SP
+AM=M-1
+D=M
+@ball.bounce$if_true3
+D;JNE
+@ball.bounce$if_false3
+0;JMP
+(ball.bounce$if_true3)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@50
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL21
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL21)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL22
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL22)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL23
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL23)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ball.bounce$if_end3
+0;JMP
+(ball.bounce$if_false3)
+@THIS
+D=M
+@14
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ5
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ5)
+@SP
+AM=M-1
+D=M
+@ball.bounce$if_true4
+D;JNE
+@ball.bounce$if_false4
+0;JMP
+(ball.bounce$if_true4)
+@250
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@25
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL24
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL24)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL25
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL25)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL26
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL26)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ball.bounce$if_end4
+0;JMP
+(ball.bounce$if_false4)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@25
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL27
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL27)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL28
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL28)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL29
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL29)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(ball.bounce$if_end4)
+(ball.bounce$if_end3)
+(ball.bounce$if_end2)
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@R13
+M=D
+@ball.setdestination
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL30
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL30)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.new)
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.alloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL31
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL31)
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.show
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL32
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL32)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(bat.dispose)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.dealloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL33
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL33)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.show)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL34
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL34)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.draw
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL35
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL35)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.hide)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL36
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL36)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.draw
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL37
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL37)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.draw)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL38
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL38)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.setdirection)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.getleft)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(bat.getright)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@54
+0;JMP
+(bat.setwidth)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.hide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL39
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL39)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.show
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL40
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL40)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(bat.move)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@RET_ADDRESS_EQ6
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ6)
+@SP
+AM=M-1
+D=M
+@bat.move$if_true0
+D;JNE
+@bat.move$if_false0
+0;JMP
+(bat.move$if_true0)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT10
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT10)
+@SP
+AM=M-1
+D=M
+@bat.move$if_true1
+D;JNE
+@bat.move$if_false1
+0;JMP
+(bat.move$if_true1)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(bat.move$if_false1)
+@SP
+M=M+1
+A=M-1
+M=0
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL41
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL41)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL42
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL42)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL43
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL43)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL44
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL44)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@bat.move$if_end0
+0;JMP
+(bat.move$if_false0)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT2
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT2)
+@SP
+AM=M-1
+D=M
+@bat.move$if_true2
+D;JNE
+@bat.move$if_false2
+0;JMP
+(bat.move$if_true2)
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+(bat.move$if_false2)
+@SP
+M=M+1
+A=M-1
+M=0
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL45
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL45)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL46
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL46)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@1
+D=A
+@R13
+M=D
+@screen.setcolor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL47
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL47)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL48
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL48)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(bat.move$if_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(main.main)
+@SP
+AM=M+1
+A=A-1
+M=0
+@0
+D=A
+@R13
+M=D
+@ponggame.newinstance
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL49
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL49)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@ponggame.getinstance
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL50
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL50)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ponggame.run
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL51
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL51)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ponggame.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL52
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL52)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ponggame.new)
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.alloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL53
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL53)
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@0
+D=A
+@R13
+M=D
+@screen.clearscreen
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL54
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL54)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@50
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@230
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@229
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@R13
+M=D
+@bat.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL55
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL55)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@253
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@222
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@229
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@R13
+M=D
+@ball.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL56
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL56)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@400
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@3
+D=A
+@R13
+M=D
+@ball.setdestination
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL57
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL57)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@238
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@240
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@R13
+M=D
+@screen.drawrectangle
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL58
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL58)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@22
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@2
+D=A
+@R13
+M=D
+@output.movecursor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL59
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL59)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@8
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL60
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL60)
+@83
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL61
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL61)
+@99
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL62
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL62)
+@111
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL63
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL63)
+@114
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL64
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL64)
+@101
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL65
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL65)
+@58
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL66
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL66)
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL67
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL67)
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL68
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL68)
+@1
+D=A
+@R13
+M=D
+@output.printstring
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL69
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL69)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(ponggame.dispose)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL70
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL70)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL71
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL71)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.dealloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL72
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL72)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ponggame.newinstance)
+@0
+D=A
+@R13
+M=D
+@ponggame.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL73
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL73)
+@SP
+AM=M-1
+D=M
+@ponggame.0
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ponggame.getinstance)
+@ponggame.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(ponggame.run)
+@SP
+AM=M+1
+A=A-1
+M=0
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+(ponggame.run$while_exp0)
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ponggame.run$while_end0
+D;JNE
+(ponggame.run$while_exp1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ7
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ7)
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ponggame.run$while_end1
+D;JNE
+@0
+D=A
+@R13
+M=D
+@keyboard.keypressed
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL74
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL74)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.move
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL75
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL75)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ponggame.moveball
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL76
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL76)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ponggame.run$while_exp1
+0;JMP
+(ponggame.run$while_end1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@130
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ8
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ8)
+@SP
+AM=M-1
+D=M
+@ponggame.run$if_true0
+D;JNE
+@ponggame.run$if_false0
+0;JMP
+(ponggame.run$if_true0)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@2
+D=A
+@R13
+M=D
+@bat.setdirection
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL77
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL77)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ponggame.run$if_end0
+0;JMP
+(ponggame.run$if_false0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@132
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ9
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ9)
+@SP
+AM=M-1
+D=M
+@ponggame.run$if_true1
+D;JNE
+@ponggame.run$if_false1
+0;JMP
+(ponggame.run$if_true1)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@bat.setdirection
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL78
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL78)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ponggame.run$if_end1
+0;JMP
+(ponggame.run$if_false1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@140
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ10
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ10)
+@SP
+AM=M-1
+D=M
+@ponggame.run$if_true2
+D;JNE
+@ponggame.run$if_false2
+0;JMP
+(ponggame.run$if_true2)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+M=D
+(ponggame.run$if_false2)
+(ponggame.run$if_end1)
+(ponggame.run$if_end0)
+(ponggame.run$while_exp2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ11
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ11)
+@SP
+A=M-1
+M=!M
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ponggame.run$while_end2
+D;JNE
+@0
+D=A
+@R13
+M=D
+@keyboard.keypressed
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL79
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL79)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.move
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL80
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL80)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ponggame.moveball
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL81
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL81)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ponggame.run$while_exp2
+0;JMP
+(ponggame.run$while_end2)
+@ponggame.run$while_exp0
+0;JMP
+(ponggame.run$while_end0)
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ponggame.run$if_true3
+D;JNE
+@ponggame.run$if_false3
+0;JMP
+(ponggame.run$if_true3)
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@output.movecursor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL82
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL82)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@9
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL83
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL83)
+@71
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL84
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL84)
+@97
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL85
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL85)
+@109
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL86
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL86)
+@101
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL87
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL87)
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL88
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL88)
+@79
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL89
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL89)
+@118
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL90
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL90)
+@101
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL91
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL91)
+@114
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL92
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL92)
+@1
+D=A
+@R13
+M=D
+@output.printstring
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL93
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL93)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(ponggame.run$if_false3)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(ponggame.moveball)
+@5
+D=A
+(LOOP_ponggame.moveball)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_ponggame.moveball
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.move
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL94
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL94)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT3
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT3)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ12
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ12)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@ponggame.moveball$if_true0
+D;JNE
+@ponggame.moveball$if_false0
+0;JMP
+(ponggame.moveball$if_true0)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.getleft
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL95
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL95)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@bat.getright
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL96
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL96)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.getleft
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL97
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL97)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@ball.getright
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL98
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL98)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ13
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ13)
+@SP
+AM=M-1
+D=M
+@ponggame.moveball$if_true1
+D;JNE
+@ponggame.moveball$if_false1
+0;JMP
+(ponggame.moveball$if_true1)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT4
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT4)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT11
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT11)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+M=D
+@THIS
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@ponggame.moveball$if_true2
+D;JNE
+@ponggame.moveball$if_false2
+0;JMP
+(ponggame.moveball$if_true2)
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@RET_ADDRESS_LT12
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT12)
+@SP
+AM=M-1
+D=M
+@ponggame.moveball$if_true3
+D;JNE
+@ponggame.moveball$if_false3
+0;JMP
+(ponggame.moveball$if_true3)
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ponggame.moveball$if_end3
+0;JMP
+(ponggame.moveball$if_false3)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@RET_ADDRESS_GT5
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT5)
+@SP
+AM=M-1
+D=M
+@ponggame.moveball$if_true4
+D;JNE
+@ponggame.moveball$if_false4
+0;JMP
+(ponggame.moveball$if_true4)
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(ponggame.moveball$if_false4)
+(ponggame.moveball$if_end3)
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@bat.setwidth
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL99
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL99)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@22
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@output.movecursor
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL100
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL100)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@THIS
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.printint
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL101
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL101)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(ponggame.moveball$if_false2)
+(ponggame.moveball$if_false1)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@ball.bounce
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL102
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL102)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(ponggame.moveball$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(array.new)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT6
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT6)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@array.new$if_true0
+D;JNE
+@array.new$if_false0
+0;JMP
+(array.new$if_true0)
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL103
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL103)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(array.new$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.alloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL104
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL104)
+@54
+0;JMP
+(array.dispose)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.dealloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL105
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL105)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(keyboard.init)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(keyboard.keypressed)
+@24576
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.peek
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL106
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL106)
+@54
+0;JMP
+(keyboard.readchar)
+@SP
+A=M
+M=0
+AD=A+1
+M=0
+@SP
+M=D+1
+@SP
+M=M+1
+A=M-1
+M=0
+@1
+D=A
+@R13
+M=D
+@output.printchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL107
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL107)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(keyboard.readchar$while_exp0)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ14
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ14)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT7
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT7)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@keyboard.readchar$while_end0
+D;JNE
+@0
+D=A
+@R13
+M=D
+@keyboard.keypressed
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL108
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL108)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT8
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT8)
+@SP
+AM=M-1
+D=M
+@keyboard.readchar$if_true0
+D;JNE
+@keyboard.readchar$if_false0
+0;JMP
+(keyboard.readchar$if_true0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(keyboard.readchar$if_false0)
+@keyboard.readchar$while_exp0
+0;JMP
+(keyboard.readchar$while_end0)
+@0
+D=A
+@R13
+M=D
+@string.backspace
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL109
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL109)
+@1
+D=A
+@R13
+M=D
+@output.printchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL110
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL110)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.printchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL111
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL111)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(keyboard.readline)
+@5
+D=A
+(LOOP_keyboard.readline)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_keyboard.readline
+D;JGT
+@80
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL112
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL112)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.printstring
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL113
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL113)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@string.newline
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL114
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL114)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@0
+D=A
+@R13
+M=D
+@string.backspace
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL115
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL115)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+(keyboard.readline$while_exp0)
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@keyboard.readline$while_end0
+D;JNE
+@0
+D=A
+@R13
+M=D
+@keyboard.readchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL116
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL116)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ15
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ15)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@keyboard.readline$if_true0
+D;JNE
+@keyboard.readline$if_false0
+0;JMP
+(keyboard.readline$if_true0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ16
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ16)
+@SP
+AM=M-1
+D=M
+@keyboard.readline$if_true1
+D;JNE
+@keyboard.readline$if_false1
+0;JMP
+(keyboard.readline$if_true1)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.eraselastchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL117
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL117)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@keyboard.readline$if_end1
+0;JMP
+(keyboard.readline$if_false1)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL118
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL118)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+(keyboard.readline$if_end1)
+(keyboard.readline$if_false0)
+@keyboard.readline$while_exp0
+0;JMP
+(keyboard.readline$while_end0)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(keyboard.readint)
+@SP
+A=M
+M=0
+AD=A+1
+M=0
+@SP
+M=D+1
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@keyboard.readline
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL119
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL119)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.intvalue
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL120
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL120)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL121
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL121)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.init)
+@SP
+AM=M+1
+A=A-1
+M=0
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL122
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL122)
+@SP
+AM=M-1
+D=M
+@math.1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL123
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL123)
+@SP
+AM=M-1
+D=M
+@math.0
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(math.init$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT13
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT13)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.init$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@math.init$while_exp0
+0;JMP
+(math.init$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(math.abs)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT14
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT14)
+@SP
+AM=M-1
+D=M
+@math.abs$if_true0
+D;JNE
+@math.abs$if_false0
+0;JMP
+(math.abs$if_true0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+(math.abs$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.multiply)
+@5
+D=A
+(LOOP_math.multiply)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_math.multiply
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT15
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT15)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT9
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT9)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT10
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT10)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT16
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT16)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL124
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL124)
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL125
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL125)
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT17
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT17)
+@SP
+AM=M-1
+D=M
+@math.multiply$if_true0
+D;JNE
+@math.multiply$if_false0
+0;JMP
+(math.multiply$if_true0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+(math.multiply$if_false0)
+(math.multiply$while_exp0)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT18
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT18)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.multiply$while_end0
+D;JNE
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT11
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT11)
+@SP
+AM=M-1
+D=M
+@math.multiply$if_true1
+D;JNE
+@math.multiply$if_false1
+0;JMP
+(math.multiply$if_true1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+(math.multiply$if_false1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@math.multiply$while_exp0
+0;JMP
+(math.multiply$while_end0)
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@math.multiply$if_true2
+D;JNE
+@math.multiply$if_false2
+0;JMP
+(math.multiply$if_true2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(math.multiply$if_false2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.divide)
+@4
+D=A
+(LOOP_math.divide)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_math.divide
+D;JGT
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ17
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ17)
+@SP
+AM=M-1
+D=M
+@math.divide$if_true0
+D;JNE
+@math.divide$if_false0
+0;JMP
+(math.divide$if_true0)
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL126
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL126)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(math.divide$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT19
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT19)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT12
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT12)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT13
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT13)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT20
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT20)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL127
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL127)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL128
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL128)
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+(math.divide$while_exp0)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.divide$while_end0
+D;JNE
+@32767
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT21
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT21)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.divide$if_true1
+D;JNE
+@math.divide$if_false1
+0;JMP
+(math.divide$if_true1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT14
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT14)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.divide$if_true2
+D;JNE
+@math.divide$if_false2
+0;JMP
+(math.divide$if_true2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(math.divide$if_false2)
+(math.divide$if_false1)
+@math.divide$while_exp0
+0;JMP
+(math.divide$while_end0)
+(math.divide$while_exp1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@RET_ADDRESS_GT15
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT15)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.divide$while_end1
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT16
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT16)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.divide$if_true3
+D;JNE
+@math.divide$if_false3
+0;JMP
+(math.divide$if_true3)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+(math.divide$if_false3)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@math.divide$while_exp1
+0;JMP
+(math.divide$while_end1)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@math.divide$if_true4
+D;JNE
+@math.divide$if_false4
+0;JMP
+(math.divide$if_true4)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(math.divide$if_false4)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.sqrt)
+@4
+D=A
+(LOOP_math.sqrt)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_math.sqrt
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT22
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT22)
+@SP
+AM=M-1
+D=M
+@math.sqrt$if_true0
+D;JNE
+@math.sqrt$if_false0
+0;JMP
+(math.sqrt$if_true0)
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL129
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL129)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(math.sqrt$if_false0)
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(math.sqrt$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@RET_ADDRESS_GT17
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT17)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@math.sqrt$while_end0
+D;JNE
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@math.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL130
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL130)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT18
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT18)
+@SP
+A=M-1
+M=!M
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT23
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT23)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@math.sqrt$if_true1
+D;JNE
+@math.sqrt$if_false1
+0;JMP
+(math.sqrt$if_true1)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+(math.sqrt$if_false1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@math.sqrt$while_exp0
+0;JMP
+(math.sqrt$while_end0)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.max)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT19
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT19)
+@SP
+AM=M-1
+D=M
+@math.max$if_true0
+D;JNE
+@math.max$if_false0
+0;JMP
+(math.max$if_true0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+(math.max$if_false0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(math.min)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT24
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT24)
+@SP
+AM=M-1
+D=M
+@math.min$if_true0
+D;JNE
+@math.min$if_false0
+0;JMP
+(math.min$if_true0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+(math.min$if_false0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(memory.init)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@memory.0
+M=D
+@2048
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@memory.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@14334
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@2049
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@memory.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@2050
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(memory.peek)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@memory.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(memory.poke)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@memory.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(memory.alloc)
+@SP
+AM=M+1
+A=A-1
+M=0
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@RET_ADDRESS_LT25
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT25)
+@SP
+AM=M-1
+D=M
+@memory.alloc$if_true0
+D;JNE
+@memory.alloc$if_false0
+0;JMP
+(memory.alloc$if_true0)
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL131
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL131)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(memory.alloc$if_false0)
+@2048
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(memory.alloc$while_exp0)
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT26
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT26)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@memory.alloc$while_end0
+D;JNE
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@memory.alloc$while_exp0
+0;JMP
+(memory.alloc$while_end0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@16379
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT20
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT20)
+@SP
+AM=M-1
+D=M
+@memory.alloc$if_true1
+D;JNE
+@memory.alloc$if_false1
+0;JMP
+(memory.alloc$if_true1)
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL132
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL132)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(memory.alloc$if_false1)
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@RET_ADDRESS_GT21
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT21)
+@SP
+AM=M-1
+D=M
+@memory.alloc$if_true2
+D;JNE
+@memory.alloc$if_false2
+0;JMP
+(memory.alloc$if_true2)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@RET_ADDRESS_EQ18
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ18)
+@SP
+AM=M-1
+D=M
+@memory.alloc$if_true3
+D;JNE
+@memory.alloc$if_false3
+0;JMP
+(memory.alloc$if_true3)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@memory.alloc$if_end3
+0;JMP
+(memory.alloc$if_false3)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(memory.alloc$if_end3)
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(memory.alloc$if_false2)
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@54
+0;JMP
+(memory.dealloc)
+@SP
+A=M
+M=0
+AD=A+1
+M=0
+@SP
+M=D+1
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ19
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ19)
+@SP
+AM=M-1
+D=M
+@memory.dealloc$if_true0
+D;JNE
+@memory.dealloc$if_false0
+0;JMP
+(memory.dealloc$if_true0)
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@memory.dealloc$if_end0
+0;JMP
+(memory.dealloc$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@RET_ADDRESS_EQ20
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ20)
+@SP
+AM=M-1
+D=M
+@memory.dealloc$if_true1
+D;JNE
+@memory.dealloc$if_false1
+0;JMP
+(memory.dealloc$if_true1)
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@memory.dealloc$if_end1
+0;JMP
+(memory.dealloc$if_false1)
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(memory.dealloc$if_end1)
+(memory.dealloc$if_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.init)
+@16384
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.4
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL133
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL133)
+@SP
+AM=M-1
+D=M
+@output.3
+M=D
+@0
+D=A
+@R13
+M=D
+@output.initmap
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL134
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL134)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@output.createshiftedmap
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL135
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL135)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.initmap)
+@127
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL136
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL136)
+@SP
+AM=M-1
+D=M
+@output.5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL137
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL137)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL138
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL138)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@33
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL139
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL139)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@34
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@20
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL140
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL140)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL141
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL141)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@36
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL142
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL142)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@37
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@49
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL143
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL143)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@38
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL144
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL144)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@39
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL145
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL145)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@40
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL146
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL146)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@41
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL147
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL147)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@42
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL148
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL148)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@43
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL149
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL149)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@44
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL150
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL150)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@45
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL151
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL151)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@46
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL152
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL152)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@47
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL153
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL153)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL154
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL154)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@49
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL155
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL155)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@50
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL156
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL156)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL157
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL157)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@52
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@26
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@25
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@60
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL158
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL158)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@53
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL159
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL159)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL160
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL160)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@55
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@49
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL161
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL161)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@56
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL162
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL162)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@57
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@62
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL163
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL163)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@58
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL164
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL164)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL165
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL165)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@60
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL166
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL166)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@61
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL167
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL167)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@62
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL168
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL168)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@64
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL169
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL169)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL170
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL170)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@65
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL171
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL171)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@66
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL172
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL172)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@67
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL173
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL173)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@68
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL174
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL174)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@69
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL175
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL175)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@70
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL176
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL176)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@71
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@44
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL177
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL177)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@72
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL178
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL178)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@73
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL179
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL179)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@74
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@60
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL180
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL180)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@75
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL181
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL181)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@76
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL182
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL182)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@77
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@33
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL183
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL183)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@78
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@55
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@55
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL184
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL184)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@79
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL185
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL185)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@80
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL186
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL186)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@81
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@59
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL187
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL187)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@82
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL188
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL188)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@83
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL189
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL189)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@84
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@45
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL190
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL190)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@85
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL191
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL191)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@86
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL192
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL192)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@87
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL193
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL193)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@88
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL194
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL194)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@89
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL195
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL195)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@90
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@49
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@35
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL196
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL196)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@91
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL197
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL197)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@92
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=1
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL198
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL198)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@93
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL199
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL199)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@94
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@8
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL200
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL200)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@95
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL201
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL201)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@96
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL202
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL202)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@97
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL203
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL203)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@98
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL204
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL204)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@99
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL205
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL205)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@100
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@60
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL206
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL206)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@101
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL207
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL207)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@102
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@38
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL208
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL208)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@103
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@62
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL209
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL209)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@104
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@55
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL210
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL210)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@105
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL211
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL211)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@106
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@56
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL212
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL212)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@107
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL213
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL213)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@108
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL214
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL214)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@109
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@29
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@43
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@43
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@43
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@43
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL215
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL215)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@110
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@29
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL216
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL216)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@111
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL217
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL217)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@112
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL218
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL218)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@113
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@62
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL219
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL219)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@114
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@29
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@55
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL220
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL220)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@115
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL221
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL221)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@116
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@28
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL222
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL222)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@117
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL223
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL223)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@118
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL224
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL224)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@119
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL225
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL225)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@120
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@30
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL226
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL226)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@121
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@62
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@24
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL227
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL227)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@122
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@27
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@51
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL228
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL228)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@123
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@56
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@56
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL229
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL229)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@124
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL230
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL230)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@125
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@56
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL231
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL231)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@126
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@38
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@45
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@25
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+M=M+1
+A=M-1
+M=0
+@12
+D=A
+@R13
+M=D
+@output.create
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL232
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL232)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.create)
+@SP
+AM=M+1
+A=A-1
+M=0
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL233
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL233)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@4
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@8
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@9
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@9
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@10
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+D=M
+@11
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.createshiftedmap)
+@4
+D=A
+(LOOP_output.createshiftedmap)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_output.createshiftedmap
+D;JGT
+@127
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL234
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL234)
+@SP
+AM=M-1
+D=M
+@output.6
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+(output.createshiftedmap$while_exp0)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@127
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT27
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT27)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.createshiftedmap$while_end0
+D;JNE
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL235
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL235)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.6
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+(output.createshiftedmap$while_exp1)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT28
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT28)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.createshiftedmap$while_end1
+D;JNE
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@256
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL236
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL236)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@output.createshiftedmap$while_exp1
+0;JMP
+(output.createshiftedmap$while_end1)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ21
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ21)
+@SP
+AM=M-1
+D=M
+@output.createshiftedmap$if_true0
+D;JNE
+@output.createshiftedmap$if_false0
+0;JMP
+(output.createshiftedmap$if_true0)
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@output.createshiftedmap$if_end0
+0;JMP
+(output.createshiftedmap$if_false0)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+(output.createshiftedmap$if_end0)
+@output.createshiftedmap$while_exp0
+0;JMP
+(output.createshiftedmap$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.getmap)
+@SP
+AM=M+1
+A=A-1
+M=0
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT29
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT29)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@126
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT22
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT22)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@output.getmap$if_true0
+D;JNE
+@output.getmap$if_false0
+0;JMP
+(output.getmap$if_true0)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+(output.getmap$if_false0)
+@output.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.getmap$if_true1
+D;JNE
+@output.getmap$if_false1
+0;JMP
+(output.getmap$if_true1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@output.getmap$if_end1
+0;JMP
+(output.getmap$if_false1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.6
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(output.getmap$if_end1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(output.drawchar)
+@4
+D=A
+(LOOP_output.drawchar)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_output.drawchar
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.getmap
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL237
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL237)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(output.drawchar$while_exp0)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@11
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT30
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT30)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.drawchar$while_end0
+D;JNE
+@output.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.drawchar$if_true0
+D;JNE
+@output.drawchar$if_false0
+0;JMP
+(output.drawchar$if_true0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.4
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@256
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@output.drawchar$if_end0
+0;JMP
+(output.drawchar$if_false0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.4
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+(output.drawchar$if_end0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.4
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@output.drawchar$while_exp0
+0;JMP
+(output.drawchar$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.movecursor)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT31
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT31)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@22
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT23
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT23)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT32
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT32)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@63
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT24
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT24)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@output.movecursor$if_true0
+D;JNE
+@output.movecursor$if_false0
+0;JMP
+(output.movecursor$if_true0)
+@20
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL238
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL238)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(output.movecursor$if_false0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL239
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL239)
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@352
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL240
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL240)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL241
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL241)
+@RET_ADDRESS_EQ22
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ22)
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.drawchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL242
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL242)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.printchar)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@0
+D=A
+@R13
+M=D
+@string.newline
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL243
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL243)
+@RET_ADDRESS_EQ23
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ23)
+@SP
+AM=M-1
+D=M
+@output.printchar$if_true0
+D;JNE
+@output.printchar$if_false0
+0;JMP
+(output.printchar$if_true0)
+@0
+D=A
+@R13
+M=D
+@output.println
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL244
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL244)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@output.printchar$if_end0
+0;JMP
+(output.printchar$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@0
+D=A
+@R13
+M=D
+@string.backspace
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL245
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL245)
+@RET_ADDRESS_EQ24
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ24)
+@SP
+AM=M-1
+D=M
+@output.printchar$if_true1
+D;JNE
+@output.printchar$if_false1
+0;JMP
+(output.printchar$if_true1)
+@0
+D=A
+@R13
+M=D
+@output.backspace
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL246
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL246)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@output.printchar$if_end1
+0;JMP
+(output.printchar$if_false1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.drawchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL247
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL247)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@output.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.printchar$if_true2
+D;JNE
+@output.printchar$if_false2
+0;JMP
+(output.printchar$if_true2)
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+(output.printchar$if_false2)
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ25
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ25)
+@SP
+AM=M-1
+D=M
+@output.printchar$if_true3
+D;JNE
+@output.printchar$if_false3
+0;JMP
+(output.printchar$if_true3)
+@0
+D=A
+@R13
+M=D
+@output.println
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL248
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL248)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@output.printchar$if_end3
+0;JMP
+(output.printchar$if_false3)
+@output.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+(output.printchar$if_end3)
+(output.printchar$if_end1)
+(output.printchar$if_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.printstring)
+@SP
+A=M
+M=0
+AD=A+1
+M=0
+@SP
+M=D+1
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.length
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL249
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL249)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(output.printstring$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT33
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT33)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.printstring$while_end0
+D;JNE
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.charat
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL250
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL250)
+@1
+D=A
+@R13
+M=D
+@output.printchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL251
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL251)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@output.printstring$while_exp0
+0;JMP
+(output.printstring$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.printint)
+@output.3
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.setint
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL252
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL252)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@output.3
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.printstring
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL253
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL253)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.println)
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@352
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@8128
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ26
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ26)
+@SP
+AM=M-1
+D=M
+@output.println$if_true0
+D;JNE
+@output.println$if_false0
+0;JMP
+(output.println$if_true0)
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+(output.println$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(output.backspace)
+@output.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.backspace$if_true0
+D;JNE
+@output.backspace$if_false0
+0;JMP
+(output.backspace$if_true0)
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT25
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT25)
+@SP
+AM=M-1
+D=M
+@output.backspace$if_true1
+D;JNE
+@output.backspace$if_false1
+0;JMP
+(output.backspace$if_true1)
+@output.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+@output.backspace$if_end1
+0;JMP
+(output.backspace$if_false1)
+@31
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.0
+M=D
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ27
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ27)
+@SP
+AM=M-1
+D=M
+@output.backspace$if_true2
+D;JNE
+@output.backspace$if_false2
+0;JMP
+(output.backspace$if_true2)
+@8128
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+(output.backspace$if_false2)
+@output.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@321
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@output.1
+M=D
+(output.backspace$if_end1)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+@output.backspace$if_end0
+0;JMP
+(output.backspace$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@output.2
+M=D
+(output.backspace$if_end0)
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.drawchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL254
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL254)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.init)
+@SP
+AM=M+1
+A=A-1
+M=0
+@16384
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.2
+M=D
+@17
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL255
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL255)
+@SP
+AM=M-1
+D=M
+@screen.0
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(screen.init$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT34
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT34)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.init$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@screen.init$while_exp0
+0;JMP
+(screen.init$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.clearscreen)
+@SP
+AM=M+1
+A=A-1
+M=0
+(screen.clearscreen$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@8192
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT35
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT35)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.clearscreen$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@screen.clearscreen$while_exp0
+0;JMP
+(screen.clearscreen$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.updatelocation)
+@screen.2
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.updatelocation$if_true0
+D;JNE
+@screen.updatelocation$if_false0
+0;JMP
+(screen.updatelocation$if_true0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@screen.updatelocation$if_end0
+0;JMP
+(screen.updatelocation$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+(screen.updatelocation$if_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.setcolor)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.2
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawpixel)
+@3
+D=A
+(LOOP_screen.drawpixel)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_screen.drawpixel
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT36
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT36)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT26
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT26)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT37
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT37)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT27
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT27)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawpixel$if_true0
+D;JNE
+@screen.drawpixel$if_false0
+0;JMP
+(screen.drawpixel$if_true0)
+@7
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL256
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL256)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawpixel$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL257
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL257)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL258
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL258)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL259
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL259)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL260
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL260)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawconditional)
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.drawconditional$if_true0
+D;JNE
+@screen.drawconditional$if_false0
+0;JMP
+(screen.drawconditional$if_true0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.drawpixel
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL261
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL261)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@screen.drawconditional$if_end0
+0;JMP
+(screen.drawconditional$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.drawpixel
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL262
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL262)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawconditional$if_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawline)
+@11
+D=A
+(LOOP_screen.drawline)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_screen.drawline
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT38
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT38)
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT28
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT28)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT39
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT39)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT29
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT29)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawline$if_true0
+D;JNE
+@screen.drawline$if_false0
+0;JMP
+(screen.drawline$if_true0)
+@8
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL263
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL263)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawline$if_false0)
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL264
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL264)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@1
+D=A
+@R13
+M=D
+@math.abs
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL265
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL265)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT40
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT40)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT41
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT41)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+M=!M
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT42
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT42)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawline$if_true1
+D;JNE
+@screen.drawline$if_false1
+0;JMP
+(screen.drawline$if_true1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+A=A+1
+A=A+1
+M=D
+(screen.drawline$if_false1)
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.drawline$if_true2
+D;JNE
+@screen.drawline$if_false2
+0;JMP
+(screen.drawline$if_true2)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT30
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT30)
+@LCL
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@screen.drawline$if_end2
+0;JMP
+(screen.drawline$if_false2)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT31
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT31)
+@LCL
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+(screen.drawline$if_end2)
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL266
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL266)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL267
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL267)
+@LCL
+D=M
+@9
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL268
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL268)
+@LCL
+D=M
+@10
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@R13
+M=D
+@screen.drawconditional
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL269
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL269)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawline$while_exp0)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT43
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT43)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.drawline$while_end0
+D;JNE
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT44
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT44)
+@SP
+AM=M-1
+D=M
+@screen.drawline$if_true3
+D;JNE
+@screen.drawline$if_false3
+0;JMP
+(screen.drawline$if_true3)
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@9
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@screen.drawline$if_end3
+0;JMP
+(screen.drawline$if_false3)
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@10
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@screen.drawline$if_true4
+D;JNE
+@screen.drawline$if_false4
+0;JMP
+(screen.drawline$if_true4)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@screen.drawline$if_end4
+0;JMP
+(screen.drawline$if_false4)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(screen.drawline$if_end4)
+(screen.drawline$if_end3)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@3
+D=A
+@R13
+M=D
+@screen.drawconditional
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL270
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL270)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@screen.drawline$while_exp0
+0;JMP
+(screen.drawline$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawrectangle)
+@9
+D=A
+(LOOP_screen.drawrectangle)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_screen.drawrectangle
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT32
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT32)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT33
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT33)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT45
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT45)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT34
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT34)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT46
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT46)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT35
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT35)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawrectangle$if_true0
+D;JNE
+@screen.drawrectangle$if_false0
+0;JMP
+(screen.drawrectangle$if_true0)
+@9
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL271
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL271)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawrectangle$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL272
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL272)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL273
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL273)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL274
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL274)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL275
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL275)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL276
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL276)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+(screen.drawrectangle$while_exp0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT36
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT36)
+@SP
+A=M-1
+M=!M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.drawrectangle$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ28
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ28)
+@SP
+AM=M-1
+D=M
+@screen.drawrectangle$if_true1
+D;JNE
+@screen.drawrectangle$if_false1
+0;JMP
+(screen.drawrectangle$if_true1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL277
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL277)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@screen.drawrectangle$if_end1
+0;JMP
+(screen.drawrectangle$if_false1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL278
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL278)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(screen.drawrectangle$while_exp1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT47
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT47)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.drawrectangle$while_end1
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL279
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL279)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@screen.drawrectangle$while_exp1
+0;JMP
+(screen.drawrectangle$while_end1)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL280
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL280)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawrectangle$if_end1)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@screen.drawrectangle$while_exp0
+0;JMP
+(screen.drawrectangle$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawhorizontal)
+@11
+D=A
+(LOOP_screen.drawhorizontal)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_screen.drawhorizontal
+D;JGT
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.min
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL281
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL281)
+@LCL
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.max
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL282
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL282)
+@LCL
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@RET_ADDRESS_GT37
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT37)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@256
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT48
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT48)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@512
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT49
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT49)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@RET_ADDRESS_GT38
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT38)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+AM=M-1
+D=M
+@screen.drawhorizontal$if_true0
+D;JNE
+@screen.drawhorizontal$if_false0
+0;JMP
+(screen.drawhorizontal$if_true0)
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@2
+D=A
+@R13
+M=D
+@math.max
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL283
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL283)
+@LCL
+D=M
+@7
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.min
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL284
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL284)
+@LCL
+D=M
+@8
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL285
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL285)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+D=M
+@7
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL286
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL286)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+D=M
+@9
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL287
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL287)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+D=M
+@8
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL288
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL288)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+D=M
+@10
+D=D+A
+@R13
+M=D
+@SP
+AM=M-1
+D=M
+@R13
+A=M
+M=D
+@LCL
+D=M
+@9
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@10
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@screen.0
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@32
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL289
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL289)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@6
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ29
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ29)
+@SP
+AM=M-1
+D=M
+@screen.drawhorizontal$if_true1
+D;JNE
+@screen.drawhorizontal$if_false1
+0;JMP
+(screen.drawhorizontal$if_true1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL290
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL290)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@screen.drawhorizontal$if_end1
+0;JMP
+(screen.drawhorizontal$if_false1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@5
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL291
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL291)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(screen.drawhorizontal$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT50
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT50)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.drawhorizontal$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+A=M-1
+D=!M
+M=D+1
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL292
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL292)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@screen.drawhorizontal$while_exp0
+0;JMP
+(screen.drawhorizontal$while_end0)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@screen.updatelocation
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL293
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL293)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawhorizontal$if_end1)
+(screen.drawhorizontal$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawsymetric)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@3
+D=A
+@R13
+M=D
+@screen.drawhorizontal
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL294
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL294)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@3
+D=A
+@R13
+M=D
+@screen.drawhorizontal
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL295
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL295)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@3
+D=A
+@R13
+M=D
+@screen.drawhorizontal
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL296
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL296)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@3
+D=A
+@R13
+M=D
+@screen.drawhorizontal
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL297
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL297)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(screen.drawcircle)
+@3
+D=A
+(LOOP_screen.drawcircle)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_screen.drawcircle
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT51
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT51)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT39
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT39)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT52
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT52)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT40
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT40)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawcircle$if_true0
+D;JNE
+@screen.drawcircle$if_false0
+0;JMP
+(screen.drawcircle$if_true0)
+@12
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL298
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL298)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawcircle$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT53
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT53)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@511
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT41
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT41)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT54
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT54)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@255
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT42
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT42)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@screen.drawcircle$if_true1
+D;JNE
+@screen.drawcircle$if_false1
+0;JMP
+(screen.drawcircle$if_true1)
+@13
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL299
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL299)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawcircle$if_false1)
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@R13
+M=D
+@screen.drawsymetric
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL300
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL300)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(screen.drawcircle$while_exp0)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT43
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT43)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@screen.drawcircle$while_end0
+D;JNE
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT55
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT55)
+@SP
+AM=M-1
+D=M
+@screen.drawcircle$if_true2
+D;JNE
+@screen.drawcircle$if_false2
+0;JMP
+(screen.drawcircle$if_true2)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL301
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL301)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@screen.drawcircle$if_end2
+0;JMP
+(screen.drawcircle$if_false2)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL302
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL302)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@5
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(screen.drawcircle$if_end2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@4
+D=A
+@R13
+M=D
+@screen.drawsymetric
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL303
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL303)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@screen.drawcircle$while_exp0
+0;JMP
+(screen.drawcircle$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.new)
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.alloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL304
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL304)
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT56
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT56)
+@SP
+AM=M-1
+D=M
+@string.new$if_true0
+D;JNE
+@string.new$if_false0
+0;JMP
+(string.new$if_true0)
+@14
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL305
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL305)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.new$if_false0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT44
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT44)
+@SP
+AM=M-1
+D=M
+@string.new$if_true1
+D;JNE
+@string.new$if_false1
+0;JMP
+(string.new$if_true1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL306
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL306)
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+M=D
+(string.new$if_false1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.dispose)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT45
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT45)
+@SP
+AM=M-1
+D=M
+@string.dispose$if_true0
+D;JNE
+@string.dispose$if_false0
+0;JMP
+(string.dispose$if_true0)
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL307
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL307)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.dispose$if_false0)
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@memory.dealloc
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL308
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL308)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.length)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.charat)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT57
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT57)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT46
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT46)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ30
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ30)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@string.charat$if_true0
+D;JNE
+@string.charat$if_false0
+0;JMP
+(string.charat$if_true0)
+@15
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL309
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL309)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.charat$if_false0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.setcharat)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT58
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT58)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT47
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT47)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ31
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ31)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+AM=M-1
+D=M
+@string.setcharat$if_true0
+D;JNE
+@string.setcharat$if_false0
+0;JMP
+(string.setcharat$if_true0)
+@16
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL310
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL310)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.setcharat$if_false0)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.appendchar)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ32
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ32)
+@SP
+AM=M-1
+D=M
+@string.appendchar$if_true0
+D;JNE
+@string.appendchar$if_false0
+0;JMP
+(string.appendchar$if_true0)
+@17
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL311
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL311)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.appendchar$if_false0)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@THIS
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.eraselastchar)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ33
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ33)
+@SP
+AM=M-1
+D=M
+@string.eraselastchar$if_true0
+D;JNE
+@string.eraselastchar$if_false0
+0;JMP
+(string.eraselastchar$if_true0)
+@18
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL312
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL312)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.eraselastchar$if_false0)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.intvalue)
+@5
+D=A
+(LOOP_string.intvalue)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_string.intvalue
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ34
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ34)
+@SP
+AM=M-1
+D=M
+@string.intvalue$if_true0
+D;JNE
+@string.intvalue$if_false0
+0;JMP
+(string.intvalue$if_true0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.intvalue$if_false0)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@45
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_EQ35
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ35)
+@SP
+AM=M-1
+D=M
+@string.intvalue$if_true1
+D;JNE
+@string.intvalue$if_false1
+0;JMP
+(string.intvalue$if_true1)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+A=A+1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(string.intvalue$if_false1)
+(string.intvalue$while_exp0)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT59
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT59)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D&M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@string.intvalue$while_end0
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT60
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT60)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@9
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_GT48
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT48)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D|M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@string.intvalue$if_true2
+D;JNE
+@string.intvalue$if_false2
+0;JMP
+(string.intvalue$if_true2)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL313
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL313)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(string.intvalue$if_false2)
+@string.intvalue$while_exp0
+0;JMP
+(string.intvalue$while_end0)
+@LCL
+D=M
+@4
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@string.intvalue$if_true3
+D;JNE
+@string.intvalue$if_false3
+0;JMP
+(string.intvalue$if_true3)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(string.intvalue$if_false3)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.setint)
+@4
+D=A
+(LOOP_string.setint)
+D=D-1
+@SP
+AM=M+1
+A=A-1
+M=0
+@LOOP_string.setint
+D;JGT
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THIS
+M=D
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ36
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ36)
+@SP
+AM=M-1
+D=M
+@string.setint$if_true0
+D;JNE
+@string.setint$if_false0
+0;JMP
+(string.setint$if_true0)
+@19
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL314
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL314)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.setint$if_false0)
+@6
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL315
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL315)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT61
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT61)
+@SP
+AM=M-1
+D=M
+@string.setint$if_true1
+D;JNE
+@string.setint$if_false1
+0;JMP
+(string.setint$if_true1)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+A=A+1
+A=A+1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+A=M-1
+D=!M
+M=D+1
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+(string.setint$if_false1)
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+(string.setint$while_exp0)
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT49
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT49)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@string.setint$while_end0
+D;JNE
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.divide
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL316
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL316)
+@SP
+AM=M-1
+D=M
+@LCL
+A=M+1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@ARG
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@10
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@math.multiply
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL317
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL317)
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@LCL
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M+1
+M=D
+@string.setint$while_exp0
+0;JMP
+(string.setint$while_end0)
+@LCL
+D=M
+@3
+A=D+A
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@string.setint$if_true2
+D;JNE
+@string.setint$if_false2
+0;JMP
+(string.setint$if_true2)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@45
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(string.setint$if_false2)
+@THIS
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT62
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT62)
+@SP
+AM=M-1
+D=M
+@string.setint$if_true3
+D;JNE
+@string.setint$if_false3
+0;JMP
+(string.setint$if_true3)
+@19
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL318
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL318)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(string.setint$if_false3)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_EQ37
+D=A
+@6
+0;JMP
+(RET_ADDRESS_EQ37)
+@SP
+AM=M-1
+D=M
+@string.setint$if_true4
+D;JNE
+@string.setint$if_false4
+0;JMP
+(string.setint$if_true4)
+@SP
+M=M+1
+A=M-1
+M=0
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@48
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@string.setint$if_end4
+0;JMP
+(string.setint$if_false4)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+(string.setint$while_exp1)
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@RET_ADDRESS_LT63
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT63)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@string.setint$while_end1
+D;JNE
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@THAT
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+M=D
+@R5
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@THAT
+A=M
+M=D
+@THIS
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=D+M
+@SP
+AM=M-1
+D=M
+@THIS
+A=M+1
+A=A+1
+M=D
+@string.setint$while_exp1
+0;JMP
+(string.setint$while_end1)
+(string.setint$if_end4)
+@LCL
+A=M+1
+A=A+1
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@array.dispose
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL319
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL319)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(string.newline)
+@128
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.backspace)
+@129
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(string.doublequote)
+@34
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@54
+0;JMP
+(sys.init)
+@0
+D=A
+@R13
+M=D
+@memory.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL320
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL320)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@math.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL321
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL321)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@screen.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL322
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL322)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@output.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL323
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL323)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@keyboard.init
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL324
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL324)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@main.main
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL325
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL325)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@sys.halt
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL326
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL326)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(sys.halt)
+(sys.halt$while_exp0)
+@SP
+M=M+1
+A=M-1
+M=0
+@SP
+A=M-1
+M=!M
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@sys.halt$while_end0
+D;JNE
+@sys.halt$while_exp0
+0;JMP
+(sys.halt$while_end0)
+(sys.wait)
+@SP
+AM=M+1
+A=A-1
+M=0
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_LT64
+D=A
+@38
+0;JMP
+(RET_ADDRESS_LT64)
+@SP
+AM=M-1
+D=M
+@sys.wait$if_true0
+D;JNE
+@sys.wait$if_false0
+0;JMP
+(sys.wait$if_true0)
+@SP
+M=M+1
+A=M-1
+M=1
+@1
+D=A
+@R13
+M=D
+@sys.error
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL327
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL327)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+(sys.wait$if_false0)
+(sys.wait$while_exp0)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT50
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT50)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@sys.wait$while_end0
+D;JNE
+@50
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+(sys.wait$while_exp1)
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=0
+@RET_ADDRESS_GT51
+D=A
+@22
+0;JMP
+(RET_ADDRESS_GT51)
+@SP
+A=M-1
+M=!M
+@SP
+AM=M-1
+D=M
+@sys.wait$while_end1
+D;JNE
+@LCL
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@LCL
+A=M
+M=D
+@sys.wait$while_exp1
+0;JMP
+(sys.wait$while_end1)
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@SP
+M=M+1
+A=M-1
+M=1
+@SP
+AM=M-1
+D=M
+A=A-1
+M=M-D
+@SP
+AM=M-1
+D=M
+@ARG
+A=M
+M=D
+@sys.wait$while_exp0
+0;JMP
+(sys.wait$while_end0)
+@SP
+M=M+1
+A=M-1
+M=0
+@54
+0;JMP
+(sys.error)
+@3
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@string.new
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL328
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL328)
+@69
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL329
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL329)
+@82
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL330
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL330)
+@82
+D=A
+@SP
+AM=M+1
+A=A-1
+M=D
+@2
+D=A
+@R13
+M=D
+@string.appendchar
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL331
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL331)
+@1
+D=A
+@R13
+M=D
+@output.printstring
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL332
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL332)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@ARG
+A=M
+D=M
+@SP
+AM=M+1
+A=A-1
+M=D
+@1
+D=A
+@R13
+M=D
+@output.printint
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL333
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL333)
+@SP
+AM=M-1
+D=M
+@R5
+M=D
+@0
+D=A
+@R13
+M=D
+@sys.halt
+D=A
+@R14
+M=D
+@RET_ADDRESS_CALL334
+D=A
+@95
+0;JMP
+(RET_ADDRESS_CALL334)
+@SP
+AM=M-1
+D=M
+@R5
+M=D