((
	(esi <- 11)
	(eax <- (allocate esi 3))
	(edi <- eax)
	(ebx <- 7)
	(cjump ebx < esi :label1 :label3)
	:label1
	(eax <- (print 5))
	(call :func)
	(goto :label5)
	:label3
	(ebx *= 3)
	(call :secondfunc)
	(eax <- (print ebx))
	:label5
 )
 (:func
 	(tail-call :secondfunc))
 (:secondfunc 
 	(edx <- ebx)
 	(edx -= 5)
 	(edx *= 2)
 	(edx += edi)
 	(edx += 4)
 	(ecx <- (mem edx 0))
 	(ecx += 2)
 	((mem edx 0) <- ecx)
 	(cjump ecx < 25 :label7 :label9)
 	:label7
 	(eax <- (print ecx))
 	:label9
 	(return))
)