Друзья, заколебался

(( Не понимаю что делать

(
Вот бесполезный код, собранный специально, чтобы посмотреть в каком порядке идет обработка кода. Мне нужно, чтобы при наличии окон в коде, у меня он обрабатывался последовательно. Т.е. сначала цикл 1, потом вложенный в него цикл 2, потом уже переходил к циклу 3 в следующей функции, у которой роль обрабатывать заданное в 1 и 2 цикле. В первом и втором цикле задаются массивы.
Помогите, пожалуйста, или направьте на нужную литературу, да хоть на английском. Может пойму...
Код:

!include nsDialogs.nsh
!include LogicLib.nsh
Name "nsDialogs Example"
OutFile "nsDialogs Example.exe"
XPStyle on
var Num1
var NumCash
var Dialog
var Label1
var Label2
Page custom test0 test1
Function test0
MessageBox MB_OK "До цикла"
${ForEach} $R6 0 1 + 1
nsDialogs::Create 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 33u "окно цикла 1 $\n R6=$R6"
Pop $Label1
MessageBox MB_OK "Цикл1 $R6"
StrCpy $Num1 $NumCash
nsDialogs::Show
${ForEach} $R5 0 1 + 1
nsDialogs::Create 1018
Pop $Dialog
${If} $Dialog == error
Abort
${EndIf}
${NSD_CreateLabel} 0 0 100% 33u "окно цикла 2 $\n R5=$R5"
Pop $Label2
MessageBox MB_OK "Цикл2 $R5"
nsDialogs::Show
${Next}
${Next}
FunctionEnd
Function test1
${ForEach} $R7 0 1 + 1
MessageBox MB_OK "Цикл3 $R7"
${Next}
FunctionEnd
Section
SectionEnd