Function at 0x43452a
Capabilities:
Check for time delay via gettickcount
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x5c0]
sub esp, 0x640
mov eax, dword [0x4755d0]
xor eax, ebp
mov dword [ebp + 0x5bc], eax
mov eax, dword [ebp + 0x5c8]
or dword [ebp - 0x70], 0xffffffff
push ebx
push esi
push edi
mov dword [ebp - 0x6c], eax
mov eax, dword [ebp + 0x5cc]
mov esi, 0x103
xor ebx, ebx
push esi
mov dword [ebp - 0x68], eax
lea eax, [ebp + 0x3b5]
push ebx
push eax
mov byte [ebp + 0x3b4], bl
call fcn.00448090
push esi
lea eax, [ebp + 0x4b9]
push ebx
push eax
mov byte [ebp + 0x4b8], bl
call fcn.00448090
push 0x1ff
lea eax, [ebp - 0x53]
push ebx
push eax
mov byte [ebp - 0x54], bl
call fcn.00448090
push esi
lea eax, [ebp + 0x2b1]
push ebx
push eax
mov byte [ebp + 0x2b0], bl
call fcn.00448090
push esi
lea eax, [ebp + 0x1ad]
push ebx
push eax
mov byte [ebp + 0x1ac], bl
call fcn.00448090
xor eax, eax
mov word [ebp - 0x64], ax
lea edi, [ebp - 0x62]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
add esp, 0x3c
cmp dword [ebp - 0x6c], 7
stosw word es:[edi], ax
ja 0x434ffd
mov esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x68]
cmp edi, dword [esi*4 + 0x477354]
jge 0x434ffd
cmp edi, ebx
jl 0x434ffd
mov eax, dword [esi*4 + 0x478a70]
cmp eax, ebx
je 0x434ffd
imul edi, edi, 0xf54
add eax, edi
cmp eax, ebx
je 0x434ffd
mov ecx, dword [eax + 0x40]
cmp ecx, 1
jl 0x434ffd
cmp ecx, 0x10
jg 0x434ffd
push 0x461fe0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x434fee
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
push str.Freeze
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x434fee
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
push 0x45d3d4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4346b8
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0x58]
push str.Quick
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x4346b8
mov eax, dword [esi*4 + 0x478a70]
push ebx
push dword [ebp - 0x68]
mov byte [edi + eax + 0xf24], 4
push esi
call fcn.00433980
jmp 0x435000
mov eax, dword [esi*4 + 0x478a70]
push ebx
push ebx
push dword [ebp - 0x68]
lea eax, [edi + eax + 0x15c]
push esi
push eax
call fcn.0043b804
push ebx
push ebx
push dword [0x47c474]
call fcn.00419f2c
fstp qword [ebp - 0x80]
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x47bfc0]
mov dword [ebp - 0x78], eax
fild dword [ebp - 0x78]
jns 0x4346ff
fadd qword [0x45e690]
fld qword [ebp - 0x80]
fmul qword [0x462010]
fcompp
fnstsw ax
test ah, 0x41
mov eax, dword [esi*4 + 0x478a70]
jne 0x434728
mov byte [edi + eax + 0xf24], 1
mov eax, dword [ebp - 0x68]
jmp 0x435000
cmp dword [edi + eax + 0xf14], ebx
je 0x4347a9
lea eax, [ebp + 0x3b4]
push eax
call fcn.004208b4
push 3
push 0x45e8e0
lea eax, [ebp + 0x3b4]
push eax
call fcn.004417cc
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [ebp - 0x58]
push eax
movzx eax, word [ebp - 0x5a]
push eax
movzx eax, word [ebp - 0x5c]
push eax
movzx eax, word [ebp - 0x5e]
push eax
movzx eax, word [ebp - 0x62]
push eax
movzx eax, word [ebp - 0x64]
push eax
mov eax, dword [ebp - 0x68]
inc eax
push eax
lea eax, [ebp + 0x3b4]
push eax
lea eax, [ebp + 0x4b8]
push str._s__Step__d__FAILURE__04d__02d__02d__02d_02d_02d.bmp
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x28
push ebx
push ebx
lea eax, [ebp + 0x4b8]
push eax
push ebx
push ebx
call fcn.0041272e
mov eax, dword [esi*4 + 0x478a70]
mov byte [edi + eax + 0xf24], 3
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
cmp byte [eax], bl
jne 0x4347cf
mov eax, str._no_failure_mode_selected_
push eax
lea eax, [ebp + 0x3b4]
push str.____Failure_Mode:__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp + 0x3b4]
push eax
call fcn.00421b06
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.IGNORE
push eax
call fcn.004010ff
add esp, 0x18
test eax, eax
mov eax, dword [esi*4 + 0x478a70]
je 0x434826
mov byte [edi + eax + 0xf24], 4
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x435000
lea eax, [edi + eax + 0xdcd]
push str.JUMP
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x434851
mov eax, dword [ebp - 0x68]
push str.SOFTWARE_vTaskFailStep
inc eax
push eax
push ebx
call fcn.00445d9a
add esp, 0xc
mov al, byte [0x47b0e0]
mov byte [ebp - 0x71], al
cmp al, bl
jne 0x434874
mov eax, dword [esi*4 + 0x478a70]
cmp dword [edi + eax + 0xf18], ebx
je 0x434874
mov byte [0x47b0e0], 1
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.IGNORE
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x4348a9
mov eax, dword [esi*4 + 0x478a70]
cmp dword [edi + eax + 0xf18], ebx
jne 0x4348a9
mov byte [0x47b0e0], bl
lea eax, [ebp - 0x64]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
push 0xc
lea eax, [ebp + 0x2b0]
push eax
mov eax, esi
imul eax, eax, 0x104
add eax, 0x4775d8
push eax
call fcn.0040eb69
mov eax, dword [ebp - 0x68]
inc eax
push eax
mov dword [ebp - 0x78], eax
lea eax, [ebp + 0x2b0]
push eax
push str.Run_Failure_in___s__at__Step__d_
push ebx
push 1
push dword [0x4771b4]
call fcn.00420796
push dword [ebp - 0x78]
lea eax, [ebp + 0x2b0]
push eax
lea eax, [ebp + 0x1ac]
push str._s___Step__d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
push eax
movzx eax, word [ebp - 0x5a]
push eax
movzx eax, word [ebp - 0x5c]
push eax
push dword [ebp - 0x78]
lea eax, [ebp + 0x2b0]
push eax
lea eax, [ebp - 0x54]
push str.Failure_during_Run_n_nFile:_t_s_nStep:_t_d_nTime:_t_02d:_02d_nAction:_t__s__t
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [0x478a40]
add esp, 0x44
cmp eax, ebx
je 0x43499c
cmp byte [eax], bl
je 0x43499c
push ebx
push ebx
push 0x45c970
push 0x45c85c
push eax
call fcn.0044168f
push dword [0x478a40]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x180
jge 0x434990
push str._nError:
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x478a40]
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x43499c
push dword [0x478a40]
call fcn.00421b06
pop ecx
lea eax, [ebp - 0x54]
push eax
call fcn.00421b06
mov al, byte [ebp - 0x71]
mov byte [0x47b0e0], al
mov eax, dword [0x478a40]
mov byte [eax], bl
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
mov dword [esp], str.RETRY
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi*4 + 0x478a70]
pop ecx
je 0x434a29
inc dword [0x47be40]
lea edi, [edi + eax + 0xe0d]
push edi
call fcn.0040109c
pop ecx
cmp dword [0x47be40], eax
jle 0x434a01
or dword [ebp - 0x70], 0xffffffff
jmp 0x434c61
mov esi, dword [ebp - 0x68]
push edi
push dword [0x47be40]
mov dword [ebp - 0x70], esi
push str.____Retrying_step__retry__d_of__s_
call fcn.00421b06
add esp, 0xc
push esi
push dword [ebp - 0x6c]
call fcn.004240c0
jmp 0x434c5c
lea eax, [edi + eax + 0xdcd]
push str.ERROR
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x434f86
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
cmp byte [eax], bl
je 0x434f86
push str.SILENT
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x4349f8
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push 0x463d78
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x434adb
push str._n_nContinue_
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x477408]
or eax, 0x12034
push eax
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0040248b
cmp eax, 7
jne 0x434acb
push str.____User_chose_to_STOP
call fcn.00421b06
pop ecx
jmp 0x4349f8
push str.____User_chose_to_CONTINUE
call fcn.00421b06
pop ecx
jmp 0x434fe3
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.JUMP
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x434c74
mov dword [ebp - 0x6c], ebx
cmp dword [esi*4 + 0x477354], ebx
jle 0x434bf6
mov dword [ebp - 0x68], ebx
mov eax, dword [esi*4 + 0x478a70]
lea ecx, [edi + eax + 0xe0d]
cmp ecx, ebx
je 0x434baf
cmp byte [ecx], bl
je 0x434baf
mov edx, dword [ebp - 0x68]
test byte [edx + eax + 0x48], 1
jne 0x434baf
push 5
push str.STEP
push ecx
call fcn.0044802d
add esp, 0xc
test eax, eax
jne 0x434b6a
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe12]
push eax
call fcn.00448120
pop ecx
mov ecx, dword [ebp - 0x6c]
inc ecx
cmp eax, ecx
je 0x434bcb
mov eax, dword [esi*4 + 0x478a70]
add eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x50]
cmp ecx, ebx
je 0x434baf
cmp byte [ecx], bl
je 0x434baf
push str.Label
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x434baf
mov eax, dword [esi*4 + 0x478a70]
mov ecx, dword [ebp - 0x68]
push dword [ecx + eax + 0x50]
lea eax, [edi + eax + 0xe0d]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x434bcb
inc dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
add dword [ebp - 0x68], 0xf54
cmp eax, dword [esi*4 + 0x477354]
jl 0x434b11
jmp 0x434bf6
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
inc eax
push eax
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe0d]
push eax
lea eax, [ebp + 0x2b0]
push eax
push str.____Jumping_to_label___s____s___STEP__d_
call fcn.00421b06
add esp, 0x10
mov eax, dword [ebp - 0x6c]
cmp eax, dword [esi*4 + 0x477354]
jl 0x434c5c
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe0d]
push eax
push str.____Label___s__not_found
call fcn.00421b06
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe0d]
push eax
lea eax, [ebp + 0x3b4]
push str.Label___s__not_found
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
push 0x12030
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp + 0x3b4]
push eax
push ebx
call fcn.0040248b
or dword [ebp - 0x70], 0xffffffff
cmp dword [ebp - 0x70], ebx
jge 0x434c6c
push str.RUN_FAILED
call fcn.00421b06
pop ecx
mov eax, dword [ebp - 0x70]
jmp 0x435000
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.VARIABLE
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi*4 + 0x478a70]
pop ecx
je 0x434eb5
lea eax, [edi + eax + 0xe0d]
cmp byte [eax], bl
je 0x434fe3
push ebx
push ebx
push dword [ebp - 0x68]
push esi
push eax
call fcn.0043b804
push dword [0x47c474]
call fcn.0040109c
inc eax
push eax
lea eax, [ebp + 0x4b8]
push 0x45cb18
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp + 0x3b4]
push eax
call fcn.0040109c
inc eax
push eax
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe0d]
push eax
push str.____Incrementing_variable__s___d
call fcn.00421b06
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
add esp, 0x20
cmp byte [eax + 0xe0d], 0x7b
jne 0x434dc7
cmp byte [eax + 0xe0f], 0x7d
jne 0x434dc7
mov cl, byte [eax + 0xe0e]
cmp cl, 0x31
jl 0x434dc7
cmp cl, 0x39
jg 0x434dc7
movsx eax, cl
cmp dword [eax*4 + 0x478984], ebx
je 0x434fe3
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x20
jg 0x434d76
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, ebx
jle 0x434fe3
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x20
jle 0x434d8e
push 0x20
pop eax
jmp 0x434d9c
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
push eax
lea eax, [ebp + 0x4b8]
push eax
mov eax, dword [esi*4 + 0x478a70]
movsx eax, byte [edi + eax + 0xe0e]
push dword [eax*4 + 0x478984]
call fcn.00447af0
add esp, 0xc
jmp 0x434fe3
add eax, 0xcc8
push eax
lea eax, [ebp + 0x3b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xc88]
push eax
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
lea ecx, [eax + 0xcc8]
cmp ecx, ebx
je 0x434e13
add eax, 0xe0d
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xc88]
cmp eax, ebx
je 0x434e31
push str.Variable
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
push eax
lea eax, [ebp + 0x4b8]
push eax
push dword [ebp - 0x68]
push esi
call fcn.004245b3
mov eax, dword [esi*4 + 0x478a70]
add eax, edi
lea ecx, [eax + 0xe0d]
cmp ecx, ebx
je 0x434e6f
add eax, 0xcc8
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xcc8]
cmp eax, ebx
je 0x434e8f
lea ecx, [ebp + 0x3b4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xc88]
cmp eax, ebx
je 0x434fe3
lea ecx, [ebp - 0x54]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x434fe3
lea eax, [edi + eax + 0xdcd]
push str.RESTART
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x434eef
push str.____Restarting_Run_at_at__Step_1_
mov dword [ebp - 0x70], ebx
call fcn.00421b06
pop ecx
push dword [ebp - 0x68]
push esi
call fcn.004240c0
mov dword [0x47be40], ebx
jmp 0x434c6c
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.PROGRAM
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x434c61
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xe0d]
push eax
lea eax, [ebp + 0x3b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
push 0x102
lea eax, [ebp + 0x4b8]
push eax
lea eax, [ebp + 0x3b4]
push eax
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsA]
lea eax, [ebp + 0x4b8]
push eax
push str.____Running_program:___s_
call fcn.00421b06
lea eax, [ebp + 0x4b8]
push eax
call fcn.00415135
add esp, 0xc
test eax, eax
jne 0x4349f8
lea eax, [ebp + 0x4b8]
push eax
push str.____Unable_to_start_program___s_
call fcn.00421b06
pop ecx
jmp 0x434ac5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x47bfc4]
cmp eax, 0xfa
jbe 0x434fc0
mov eax, dword [0x477408]
or eax, 0x12030
push eax
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call fcn.0040248b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x47bfc4], eax
mov eax, dword [esi*4 + 0x478a70]
lea eax, [edi + eax + 0xdcd]
push str.ERROR_AND_CONTINUE
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x434c58
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
jmp 0x434c5c
mov eax, dword [esi*4 + 0x478a70]
mov byte [edi + eax + 0xf24], 1
or eax, 0xffffffff
mov ecx, dword [ebp + 0x5bc]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00448080
add ebp, 0x5c0
leave
ret 8