Function at 0x412d80
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x890
mov eax, dword [0x4ce724]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x828], ecx
mov eax, dword [ebp - 0x828]
cmp dword [eax + 4], 0
je 0x412ddd
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x65]
push edx
push str.UpdateBar____Step:__u
call fcn.00456fc0
add esp, 8
push 0
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x65]
push ecx
push 0x402
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x828]
cmp dword [ecx + 8], 0
je 0x412e60
cmp dword [ebp + 8], 0
je 0x412e60
mov edx, dword [ebp - 0x828]
mov eax, dword [ebp - 0x828]
mov ecx, dword [edx + 0x31]
sub ecx, dword [eax + 0x2d]
mov edx, dword [ebp - 0x828]
mov eax, ecx
imul eax, dword [edx + 0x65]
xor edx, edx
mov ecx, 0x64
div ecx
mov edx, dword [ebp - 0x828]
add eax, dword [edx + 0x2d]
mov ecx, dword [ebp - 0x828]
mov dword [ecx + 0x69], eax
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x69]
push eax
push str.UpdateBar____MainStep:__u
call fcn.00456fc0
add esp, 8
push 0
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x69]
push edx
push 0x402
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 8]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x828]
cmp dword [edx + 0xc], 0
je 0x413437
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
je 0x413347
mov edx, dword [ebp - 0x828]
cmp dword [edx + 0x21], 0
jbe 0x413347
xor eax, eax
mov word [ebp - 0x208], ax
push 0x1fe
push 0
lea ecx, [ebp - 0x206]
push ecx
call fcn.00467d60
add esp, 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x55]
mov ecx, dword [edx + 0x59]
mov dword [ebp - 0x830], eax
mov dword [ebp - 0x82c], ecx
mov edx, dword [ebp - 0x82c]
mov dword [ebp - 0x834], edx
and dword [ebp - 0x82c], 0x7fffffff
fild qword [ebp - 0x830]
and dword [ebp - 0x834], 0x80000000
mov dword [ebp - 0x838], 0
fild qword [ebp - 0x838]
fchs
faddp st(1)
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x65]
mov dword [ebp - 0x840], ecx
mov dword [ebp - 0x83c], 0
fild qword [ebp - 0x840]
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x21]
mov dword [ebp - 0x848], eax
mov dword [ebp - 0x844], 0
fild qword [ebp - 0x848]
fdivp st(1)
fmulp st(1)
fnstcw word [ebp - 0x84a]
movzx eax, word [ebp - 0x84a]
or eax, 0xc00
mov dword [ebp - 0x850], eax
fldcw word [ebp - 0x850]
fistp qword [ebp - 0x858]
fldcw word [ebp - 0x84a]
mov ecx, dword [ebp - 0x858]
mov dword [ebp - 4], ecx
mov edx, dword [ebp - 0x828]
movzx eax, byte [edx + 0x1c]
and eax, 1
je 0x413027
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x65]
mov dword [ebp - 0x860], edx
mov dword [ebp - 0x85c], 0
fild qword [ebp - 0x860]
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x21]
mov dword [ebp - 0x868], ecx
mov dword [ebp - 0x864], 0
fild qword [ebp - 0x868]
fdivp st(1)
fmul qword [0x4afd18]
fnstcw word [ebp - 0x86a]
movzx eax, word [ebp - 0x86a]
or eax, 0xc00
mov dword [ebp - 0x870], eax
fldcw word [ebp - 0x870]
fistp qword [ebp - 0x878]
fldcw word [ebp - 0x86a]
mov edx, dword [ebp - 0x878]
mov dword [ebp - 0x20c], edx
mov eax, dword [ebp - 0x20c]
push eax
push 0x4afbb0
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00468336
add esp, 0x10
mov edx, dword [ebp - 0x828]
movzx eax, byte [edx + 0x1c]
and eax, 2
je 0x41313f
xor ecx, ecx
mov word [ebp - 0x410], cx
push 0x1fe
push 0
lea edx, [ebp - 0x40e]
push edx
call fcn.00467d60
add esp, 0xc
push 0
push 0
push 0
push 0x100
lea eax, [ebp - 0x410]
push eax
mov ecx, dword [ebp - 4]
xor edx, edx
push edx
push ecx
call fcn.00456920
add esp, 0x1c
lea eax, [ebp - 0x208]
push eax
call fcn.004684f8
add esp, 4
test eax, eax
jbe 0x4130a6
push 0x4afbbc
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00468221
add esp, 0xc
lea edx, [ebp - 0x410]
push edx
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00468221
add esp, 0xc
push 0x4afbc4
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00468221
add esp, 0xc
push 0
push 0
push 0
push 0x100
lea edx, [ebp - 0x410]
push edx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x59]
push ecx
mov edx, dword [eax + 0x55]
push edx
call fcn.00456920
add esp, 0x1c
lea eax, [ebp - 0x410]
push eax
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00468221
add esp, 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x59]
push eax
mov ecx, dword [edx + 0x55]
push ecx
lea edx, [ebp - 0x208]
push edx
push 0x4afbc8
call fcn.00456fc0
add esp, 0x10
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
and ecx, 4
je 0x41332c
xor edx, edx
mov word [ebp - 0x610], dx
push 0x1fe
push 0
lea eax, [ebp - 0x60e]
push eax
call fcn.00467d60
add esp, 0xc
mov ecx, dword [ebp - 0x828]
cmp dword [ecx + 0x85], 0
jne 0x4131a6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x828]
mov dword [edx + 0x85], eax
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x89], ecx
jmp 0x41328e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x828]
sub eax, dword [edx + 0x85]
mov dword [ebp - 0x614], eax
mov eax, dword [ebp - 0x614]
push eax
push 0x4afc1c
call fcn.00456fc0
add esp, 8
cmp dword [ebp - 0x614], 0x3e8
jb 0x41328e
mov ecx, dword [ebp - 0x828]
mov edx, dword [ebp - 4]
sub edx, dword [ecx + 0x89]
xor eax, eax
mov dword [ebp - 0x620], edx
mov dword [ebp - 0x61c], eax
mov ecx, dword [ebp - 0x61c]
push ecx
mov edx, dword [ebp - 0x620]
push edx
push str.UpdateBar____Data:__I64u
call fcn.00456fc0
add esp, 0xc
mov eax, dword [ebp - 0x614]
push eax
push str.UpdateBar____ElapsedTime:__d
call fcn.00456fc0
add esp, 8
mov ecx, dword [ebp - 0x614]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x61c]
push eax
mov ecx, dword [ebp - 0x620]
push ecx
call fcn.0046a850
push 0
push 0x3e8
push edx
push eax
call fcn.0046d890
mov dword [0x4d09b0], eax
mov dword [0x4d09b4], edx
mov edx, dword [0x4d09b4]
push edx
mov eax, dword [0x4d09b0]
push eax
push str.UpdateBar____Debit:__I64u
call fcn.00456fc0
add esp, 0xc
mov ecx, dword [ebp - 0x828]
mov dword [ecx + 0x85], 0
lea edx, [ebp - 0x208]
push edx
call fcn.004684f8
add esp, 4
test eax, eax
jbe 0x41332c
cmp dword [0x4d09b4], 0
ja 0x4132b7
cmp dword [0x4d09b0], 0
jbe 0x41332c
push 0
push 0
push 0
push 0x100
lea eax, [ebp - 0x610]
push eax
mov ecx, dword [0x4d09b4]
push ecx
mov edx, dword [0x4d09b0]
push edx
call fcn.00456920
add esp, 0x1c
push 0x4afcfc
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00468221
add esp, 0xc
lea ecx, [ebp - 0x610]
push ecx
push 0x100
lea edx, [ebp - 0x208]
push edx
call fcn.00468221
add esp, 0xc
push 0x4afd04
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00468221
add esp, 0xc
lea ecx, [ebp - 0x208]
push ecx
push 0
push 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0xc]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x828]
cmp dword [ecx + 0x10], 0
je 0x413437
mov edx, dword [ebp - 0x828]
movzx eax, byte [edx + 0x1c]
test eax, eax
je 0x413437
xor ecx, ecx
mov word [ebp - 0x820], cx
push 0x1fe
push 0
lea edx, [ebp - 0x81e]
push edx
call fcn.00467d60
add esp, 0xc
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
and ecx, 1
je 0x41341c
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x69]
mov dword [ebp - 0x880], eax
mov dword [ebp - 0x87c], 0
fild qword [ebp - 0x880]
fdiv qword [0x4afd18]
fmul qword [0x4afd18]
fnstcw word [ebp - 0x882]
movzx eax, word [ebp - 0x882]
or eax, 0xc00
mov dword [ebp - 0x888], eax
fldcw word [ebp - 0x888]
fistp qword [ebp - 0x890]
fldcw word [ebp - 0x882]
mov ecx, dword [ebp - 0x890]
mov dword [ebp - 0x824], ecx
mov edx, dword [ebp - 0x824]
push edx
push 0x4afd0c
push 0x100
lea eax, [ebp - 0x820]
push eax
call fcn.00468336
add esp, 0x10
lea ecx, [ebp - 0x820]
push ecx
push 0
push 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x10]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
mov ecx, dword [ebp - 0x828]
cmp dword [ecx + 0x7d], 0
je 0x4134e5
mov edx, dword [ebp - 0x828]
cmp dword [edx + 0x35], 2
je 0x4134e5
mov eax, dword [ebp - 0x828]
cmp dword [eax + 8], 0
je 0x4134a8
cmp dword [ebp + 8], 0
je 0x4134a8
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x21]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x69]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x7d]
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x7d]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx + 0x24]
call edx
jmp 0x4134e5
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x21]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x65]
xor edx, edx
push edx
push ecx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x7d]
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x7d]
mov eax, dword [eax]
push edx
mov ecx, dword [eax + 0x24]
call ecx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00467d4f
mov esp, ebp
pop ebp
ret 4