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

Disassembly:
push ebp
lea ebp, [esp - 0x5c0]
sub esp, 0x640
mov eax, dword [0x47e5d0]
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.00452e00
push esi
lea eax, [ebp + 0x4b9]
push ebx
push eax
mov byte [ebp + 0x4b8], bl
call fcn.00452e00
push 0x1ff
lea eax, [ebp - 0x53]
push ebx
push eax
mov byte [ebp - 0x54], bl
call fcn.00452e00
push esi
lea eax, [ebp + 0x2b1]
push ebx
push eax
mov byte [ebp + 0x2b0], bl
call fcn.00452e00
push esi
lea eax, [ebp + 0x1ad]
push ebx
push eax
mov byte [ebp + 0x1ac], bl
call fcn.00452e00
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 0x43c326
mov esi, dword [ebp - 0x6c]
mov edi, dword [ebp - 0x68]
cmp edi, dword [esi*4 + 0x480274]
jge 0x43c326
cmp edi, ebx
jl 0x43c326
mov eax, dword [esi*4 + 0x481990]
cmp eax, ebx
je 0x43c326
imul edi, edi, 0xf54
add eax, edi
cmp eax, ebx
je 0x43c326
mov ecx, dword [eax + 0x40]
cmp ecx, 1
jl 0x43c326
cmp ecx, 0x10
jg 0x43c326
push 0x46a4e0
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43c317
mov eax, dword [esi*4 + 0x481990]
add eax, edi
push str.Freeze
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43c317
mov eax, dword [esi*4 + 0x481990]
add eax, edi
push 0x4654b4
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43b9de
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0x58]
push str.Quick
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43b9de
mov eax, dword [esi*4 + 0x481990]
push ebx
push dword [ebp - 0x68]
mov byte [edi + eax + 0xf24], 4
push esi
call fcn.0043aca6
jmp 0x43c329
mov eax, dword [esi*4 + 0x481990]
push ebx
push ebx
push dword [ebp - 0x68]
lea eax, [edi + eax + 0x15c]
push esi
push eax
call fcn.00442c90
push ebx
push ebx
push dword [0x485434]
call fcn.0041e488
fstp qword [ebp - 0x80]
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x484f80]
mov dword [ebp - 0x78], eax
fild dword [ebp - 0x78]
jns 0x43ba25
fadd qword [0x466a30]
fld qword [ebp - 0x80]
fmul qword [0x4663b8]
fcompp
fnstsw ax
test ah, 0x41
mov eax, dword [esi*4 + 0x481990]
jne 0x43ba4e
mov byte [edi + eax + 0xf24], 1
mov eax, dword [ebp - 0x68]
jmp 0x43c329
cmp dword [edi + eax + 0xf14], ebx
je 0x43bacf
lea eax, [ebp + 0x3b4]
push eax
call fcn.00424df8
push 3
push 0x466c80
lea eax, [ebp + 0x3b4]
push eax
call fcn.0044937b
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.00415c28
mov eax, dword [esi*4 + 0x481990]
mov byte [edi + eax + 0xf24], 3
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
cmp byte [eax], bl
jne 0x43baf5
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.0042604a
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.IGNORE
push eax
call fcn.004010ff
add esp, 0x18
test eax, eax
mov eax, dword [esi*4 + 0x481990]
je 0x43bb4c
mov byte [edi + eax + 0xf24], 4
mov eax, dword [ebp - 0x68]
inc eax
jmp 0x43c329
lea eax, [edi + eax + 0xdcd]
push str.JUMP
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43bb77
mov eax, dword [ebp - 0x68]
push str.SOFTWARE_vTaskFailStep
inc eax
push eax
push ebx
call fcn.0044dba4
add esp, 0xc
mov al, byte [0x4840a0]
mov byte [ebp - 0x71], al
cmp al, bl
jne 0x43bb9a
mov eax, dword [esi*4 + 0x481990]
cmp dword [edi + eax + 0xf18], ebx
je 0x43bb9a
mov byte [0x4840a0], 1
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.IGNORE
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43bbcf
mov eax, dword [esi*4 + 0x481990]
cmp dword [edi + eax + 0xf18], ebx
jne 0x43bbcf
mov byte [0x4840a0], 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, 0x4804f8
push eax
call fcn.00411eca
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 [0x4800d4]
call fcn.00424cda
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 + 0x481990]
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 [0x481960]
add esp, 0x44
cmp eax, ebx
je 0x43bcc2
cmp byte [eax], bl
je 0x43bcc2
push ebx
push ebx
push 0x464a50
push 0x46493c
push eax
call fcn.0044923e
push dword [0x481960]
call dword [sym.imp.KERNEL32.dll_lstrlenA]
cmp eax, 0x180
jge 0x43bcb6
push str._nError:
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
push dword [0x481960]
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
jmp 0x43bcc2
push dword [0x481960]
call fcn.0042604a
pop ecx
lea eax, [ebp - 0x54]
push eax
call fcn.0042604a
mov al, byte [ebp - 0x71]
mov byte [0x4840a0], al
mov eax, dword [0x481960]
mov byte [eax], bl
mov eax, dword [esi*4 + 0x481990]
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 + 0x481990]
pop ecx
je 0x43bd4f
inc dword [0x484e00]
lea edi, [edi + eax + 0xe0d]
push edi
call fcn.0040109c
pop ecx
cmp dword [0x484e00], eax
jle 0x43bd27
or dword [ebp - 0x70], 0xffffffff
jmp 0x43bf89
mov esi, dword [ebp - 0x68]
push edi
push dword [0x484e00]
mov dword [ebp - 0x70], esi
push str.____Retrying_step__retry__d_of__s_
call fcn.0042604a
add esp, 0xc
push esi
push dword [ebp - 0x6c]
call fcn.00428604
jmp 0x43bf84
lea eax, [edi + eax + 0xdcd]
push str.ERROR
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43c2ae
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
cmp byte [eax], bl
je 0x43c2ae
push str.SILENT
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
jne 0x43bd1e
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push 0x46c684
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43be02
push str._n_nContinue_
lea eax, [ebp - 0x54]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x480328]
or eax, 0x12034
push eax
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x43bdf2
push str.____User_chose_to_STOP
call fcn.0042604a
pop ecx
jmp 0x43bd1e
push str.____User_chose_to_CONTINUE
call fcn.0042604a
pop ecx
jmp 0x43c30c
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.JUMP
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43bf9c
mov dword [ebp - 0x6c], ebx
cmp dword [esi*4 + 0x480274], ebx
jle 0x43bf1d
mov dword [ebp - 0x68], ebx
mov eax, dword [esi*4 + 0x481990]
lea ecx, [edi + eax + 0xe0d]
cmp ecx, ebx
je 0x43bed6
cmp byte [ecx], bl
je 0x43bed6
mov edx, dword [ebp - 0x68]
test byte [edx + eax + 0x48], 1
jne 0x43bed6
push 5
push str.STEP
push ecx
call fcn.00452ccd
add esp, 0xc
test eax, eax
jne 0x43be91
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xe12]
push eax
call fcn.00452e90
pop ecx
mov ecx, dword [ebp - 0x6c]
inc ecx
cmp eax, ecx
je 0x43bef2
mov eax, dword [esi*4 + 0x481990]
add eax, dword [ebp - 0x68]
mov ecx, dword [eax + 0x50]
cmp ecx, ebx
je 0x43bed6
cmp byte [ecx], bl
je 0x43bed6
push str.Label
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x43bed6
mov eax, dword [esi*4 + 0x481990]
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 0x43bef2
inc dword [ebp - 0x6c]
mov eax, dword [ebp - 0x6c]
add dword [ebp - 0x68], 0xf54
cmp eax, dword [esi*4 + 0x480274]
jl 0x43be38
jmp 0x43bf1d
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x70], eax
inc eax
push eax
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xe0d]
push eax
lea eax, [ebp + 0x2b0]
push eax
push str.____Jumping_to_label___s____s___STEP__d_
call fcn.0042604a
add esp, 0x10
mov eax, dword [ebp - 0x6c]
cmp eax, dword [esi*4 + 0x480274]
jl 0x43bf84
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xe0d]
push eax
push str.____Label___s__not_found
call fcn.0042604a
mov eax, dword [esi*4 + 0x481990]
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 dword [sym.imp.USER32.dll_MessageBoxA]
or dword [ebp - 0x70], 0xffffffff
cmp dword [ebp - 0x70], ebx
jge 0x43bf94
push str.RUN_FAILED
call fcn.0042604a
pop ecx
mov eax, dword [ebp - 0x70]
jmp 0x43c329
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.VARIABLE
push eax
call fcn.004010ff
pop ecx
test eax, eax
mov eax, dword [esi*4 + 0x481990]
pop ecx
je 0x43c1dd
lea eax, [edi + eax + 0xe0d]
cmp byte [eax], bl
je 0x43c30c
push ebx
push ebx
push dword [ebp - 0x68]
push esi
push eax
call fcn.00442c90
push dword [0x485434]
call fcn.0040109c
inc eax
push eax
lea eax, [ebp + 0x4b8]
push 0x464bf8
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 + 0x481990]
lea eax, [edi + eax + 0xe0d]
push eax
push str.____Incrementing_variable__s___d
call fcn.0042604a
mov eax, dword [esi*4 + 0x481990]
add eax, edi
add esp, 0x20
cmp byte [eax + 0xe0d], 0x7b
jne 0x43c0ef
cmp byte [eax + 0xe0f], 0x7d
jne 0x43c0ef
mov cl, byte [eax + 0xe0e]
cmp cl, 0x31
jl 0x43c0ef
cmp cl, 0x39
jg 0x43c0ef
movsx eax, cl
cmp dword [eax*4 + 0x4818a4], ebx
je 0x43c30c
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x20
jg 0x43c09e
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, ebx
jle 0x43c30c
lea eax, [ebp + 0x4b8]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenA]
inc eax
cmp eax, 0x20
jle 0x43c0b6
push 0x20
pop eax
jmp 0x43c0c4
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 + 0x481990]
movsx eax, byte [edi + eax + 0xe0e]
push dword [eax*4 + 0x4818a4]
call fcn.00452790
add esp, 0xc
jmp 0x43c30c
add eax, 0xcc8
push eax
lea eax, [ebp + 0x3b4]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x481990]
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 + 0x481990]
add eax, edi
lea ecx, [eax + 0xcc8]
cmp ecx, ebx
je 0x43c13b
add eax, 0xe0d
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xc88]
cmp eax, ebx
je 0x43c159
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.00428e6d
mov eax, dword [esi*4 + 0x481990]
add eax, edi
lea ecx, [eax + 0xe0d]
cmp ecx, ebx
je 0x43c197
add eax, 0xcc8
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xcc8]
cmp eax, ebx
je 0x43c1b7
lea ecx, [ebp + 0x3b4]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xc88]
cmp eax, ebx
je 0x43c30c
lea ecx, [ebp - 0x54]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x43c30c
lea eax, [edi + eax + 0xdcd]
push str.RESTART
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43c217
push str.____Restarting_Run_at_at__Step_1_
mov dword [ebp - 0x70], ebx
call fcn.0042604a
pop ecx
push dword [ebp - 0x68]
push esi
call fcn.00428604
mov dword [0x484e00], ebx
jmp 0x43bf94
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.PROGRAM
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43bf89
mov eax, dword [esi*4 + 0x481990]
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.0042604a
lea eax, [ebp + 0x4b8]
push eax
call fcn.00419691
add esp, 0xc
test eax, eax
jne 0x43bd1e
lea eax, [ebp + 0x4b8]
push eax
push str.____Unable_to_start_program___s_
call fcn.0042604a
pop ecx
jmp 0x43bdec
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x484f84]
cmp eax, 0xfa
jbe 0x43c2e9
mov eax, dword [0x480328]
or eax, 0x12030
push eax
lea eax, [ebp + 0x1ac]
push eax
lea eax, [ebp - 0x54]
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x484f84], eax
mov eax, dword [esi*4 + 0x481990]
lea eax, [edi + eax + 0xdcd]
push str.ERROR_AND_CONTINUE
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x43bf80
mov eax, dword [ebp - 0x78]
mov dword [ebp - 0x70], eax
jmp 0x43bf84
mov eax, dword [esi*4 + 0x481990]
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.00452dee
add ebp, 0x5c0
leave
ret 8