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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x890
mov eax, dword [0x4b1120]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x828], ecx
mov eax, dword [ebp - 0x828]
cmp dword [eax + 4], 0
je 0x41037d
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x68]
push edx
push str.UpdateBar____Step:__u
call fcn.00437970
add esp, 8
push 0
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x68]
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]
mov edx, dword [ecx + 0x34]
push edx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x30]
push ecx
push str.UpdateBar____MinMainBarStep_u_MaxMainBarStep_u
call fcn.00437970
add esp, 0xc
mov edx, dword [ebp - 0x828]
cmp dword [edx + 8], 0
je 0x410423
cmp dword [ebp + 8], 0
je 0x410423
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 0x828]
mov edx, dword [eax + 0x34]
sub edx, dword [ecx + 0x30]
mov eax, dword [ebp - 0x828]
mov ecx, edx
imul ecx, dword [eax + 0x68]
mov eax, ecx
xor edx, edx
mov ecx, 0x64
div ecx
mov edx, dword [ebp - 0x828]
add eax, dword [edx + 0x30]
mov ecx, dword [ebp - 0x828]
mov dword [ecx + 0x6c], eax
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x6c]
push eax
push str.UpdateBar____MainStep:__u
call fcn.00437970
add esp, 8
push 0
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x6c]
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 0x4109fa
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
test ecx, ecx
je 0x41090a
mov edx, dword [ebp - 0x828]
cmp dword [edx + 0x24], 0
jbe 0x41090a
xor eax, eax
mov word [ebp - 0x208], ax
push 0x1fe
push 0
lea ecx, [ebp - 0x206]
push ecx
call fcn.00447660
add esp, 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x58]
mov ecx, dword [edx + 0x5c]
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 + 0x68]
mov dword [ebp - 0x840], ecx
mov dword [ebp - 0x83c], 0
fild qword [ebp - 0x840]
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x24]
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 0x4105ea
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x68]
mov dword [ebp - 0x860], edx
mov dword [ebp - 0x85c], 0
fild qword [ebp - 0x860]
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x868], ecx
mov dword [ebp - 0x864], 0
fild qword [ebp - 0x868]
fdivp st(1)
fmul qword [0x48c2f8]
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 0x48c168
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00447c36
add esp, 0x10
mov edx, dword [ebp - 0x828]
movzx eax, byte [edx + 0x1c]
and eax, 2
je 0x410702
xor ecx, ecx
mov word [ebp - 0x410], cx
push 0x1fe
push 0
lea edx, [ebp - 0x40e]
push edx
call fcn.00447660
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.0040e3a0
add esp, 0x1c
lea eax, [ebp - 0x208]
push eax
call fcn.00447df8
add esp, 4
test eax, eax
jbe 0x410669
push 0x48c174
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00447b21
add esp, 0xc
lea edx, [ebp - 0x410]
push edx
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00447b21
add esp, 0xc
push 0x48c17c
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00447b21
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 + 0x5c]
push ecx
mov edx, dword [eax + 0x58]
push edx
call fcn.0040e3a0
add esp, 0x1c
lea eax, [ebp - 0x410]
push eax
push 0x100
lea ecx, [ebp - 0x208]
push ecx
call fcn.00447b21
add esp, 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x5c]
push eax
mov ecx, dword [edx + 0x58]
push ecx
lea edx, [ebp - 0x208]
push edx
push 0x48c180
call fcn.00437970
add esp, 0x10
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
and ecx, 4
je 0x4108ef
xor edx, edx
mov word [ebp - 0x610], dx
push 0x1fe
push 0
lea eax, [ebp - 0x60e]
push eax
call fcn.00447660
add esp, 0xc
mov ecx, dword [ebp - 0x828]
cmp dword [ecx + 0x8c], 0
jne 0x410769
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x828]
mov dword [edx + 0x8c], eax
mov eax, dword [ebp - 0x828]
mov ecx, dword [ebp - 4]
mov dword [eax + 0x90], ecx
jmp 0x410851
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebp - 0x828]
sub eax, dword [edx + 0x8c]
mov dword [ebp - 0x614], eax
mov eax, dword [ebp - 0x614]
push eax
push 0x48c1d4
call fcn.00437970
add esp, 8
cmp dword [ebp - 0x614], 0x3e8
jb 0x410851
mov ecx, dword [ebp - 0x828]
mov edx, dword [ebp - 4]
sub edx, dword [ecx + 0x90]
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.00437970
add esp, 0xc
mov eax, dword [ebp - 0x614]
push eax
push str.UpdateBar____ElapsedTime:__d
call fcn.00437970
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.0044a1b0
push 0
push 0x3e8
push edx
push eax
call fcn.0044ca80
mov dword [0x4b3498], eax
mov dword [0x4b349c], edx
mov edx, dword [0x4b349c]
push edx
mov eax, dword [0x4b3498]
push eax
push str.UpdateBar____Debit:__I64u
call fcn.00437970
add esp, 0xc
mov ecx, dword [ebp - 0x828]
mov dword [ecx + 0x8c], 0
lea edx, [ebp - 0x208]
push edx
call fcn.00447df8
add esp, 4
test eax, eax
jbe 0x4108ef
cmp dword [0x4b349c], 0
ja 0x41087a
cmp dword [0x4b3498], 0
jbe 0x4108ef
push 0
push 0
push 0
push 0x100
lea eax, [ebp - 0x610]
push eax
mov ecx, dword [0x4b349c]
push ecx
mov edx, dword [0x4b3498]
push edx
call fcn.0040e3a0
add esp, 0x1c
push 0x48c2b4
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00447b21
add esp, 0xc
lea ecx, [ebp - 0x610]
push ecx
push 0x100
lea edx, [ebp - 0x208]
push edx
call fcn.00447b21
add esp, 0xc
push 0x48c2bc
push 0x100
lea eax, [ebp - 0x208]
push eax
call fcn.00447b21
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 0x4109fa
mov edx, dword [ebp - 0x828]
movzx eax, byte [edx + 0x1c]
test eax, eax
je 0x4109fa
xor ecx, ecx
mov word [ebp - 0x820], cx
push 0x1fe
push 0
lea edx, [ebp - 0x81e]
push edx
call fcn.00447660
add esp, 0xc
mov eax, dword [ebp - 0x828]
movzx ecx, byte [eax + 0x1c]
and ecx, 1
je 0x4109df
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x6c]
mov dword [ebp - 0x880], eax
mov dword [ebp - 0x87c], 0
fild qword [ebp - 0x880]
fdiv qword [0x48c2f8]
fmul qword [0x48c2f8]
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 0x48c2c4
push 0x100
lea eax, [ebp - 0x820]
push eax
call fcn.00447c36
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 + 0x84], 0
je 0x410ad8
mov edx, dword [ebp - 0x828]
cmp dword [edx + 0x38], 2
je 0x410ad8
mov eax, dword [ebp - 0x828]
cmp dword [eax + 8], 0
je 0x410a95
cmp dword [ebp + 8], 0
je 0x410a95
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x34]
push edx
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x6c]
push ecx
push str.UpdateBar____SetProgressValue__d___d_
call fcn.00437da0
add esp, 0xc
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x24]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x6c]
xor ecx, ecx
push ecx
push eax
mov edx, dword [ebp - 0x828]
mov eax, dword [edx]
push eax
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x84]
mov eax, dword [ebp - 0x828]
mov ecx, dword [eax + 0x84]
mov edx, dword [edx]
push ecx
mov eax, dword [edx + 0x24]
call eax
jmp 0x410ad8
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x24]
xor eax, eax
push eax
push edx
mov ecx, dword [ebp - 0x828]
mov edx, dword [ecx + 0x68]
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 + 0x84]
mov edx, dword [ebp - 0x828]
mov eax, dword [edx + 0x84]
mov ecx, dword [ecx]
push eax
mov edx, dword [ecx + 0x24]
call edx
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.00447645
mov esp, ebp
pop ebp
ret 4