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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x410
mov eax, dword [0x4b06f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [sym.imp.USER32.dll_SendMessageW]
push esi
push edi
mov edi, ecx
cmp dword [edi + 4], 0
je 0x429523
push dword [edi + 0x65]
push str.UpdateBar____Step:__u
call fcn.004699e0
add esp, 8
push 0
push dword [edi + 0x65]
push 0x402
push dword [edi + 4]
call ebx
cmp dword [edi + 8], 0
je 0x429568
cmp dword [ebp + 8], 0
je 0x429568
mov esi, dword [edi + 0x2d]
mov eax, 0x51eb851f
mov ecx, dword [edi + 0x31]
sub ecx, esi
imul ecx, dword [edi + 0x65]
mul ecx
shr edx, 5
lea eax, [edx + esi]
push eax
push str.UpdateBar____MainStep:__u
mov dword [edi + 0x69], eax
call fcn.004699e0
add esp, 8
push 0
push dword [edi + 0x69]
push 0x402
push dword [edi + 8]
call ebx
cmp dword [edi + 0xc], 0
je 0x429950
mov al, byte [edi + 0x1c]
mov byte [ebp - 0x405], al
test al, al
je 0x4298b4
mov esi, dword [edi + 0x21]
test esi, esi
je 0x4298b4
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x404], ax
lea eax, [ebp - 0x402]
push eax
call fcn.0046fe20
mov eax, dword [edi + 0x65]
add esp, 0xc
mov edx, dword [edi + 0x59]
mov ecx, dword [edi + 0x55]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x48e4c0]
cvtpd2ps xmm1, xmm0
movd xmm0, esi
cvtdq2pd xmm0, xmm0
shr esi, 0x1f
addsd xmm0, qword [esi*8 + 0x48e4c0]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x410], xmm1
call fcn.0047033e
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [ebp - 0x410]
call fcn.00470030
test byte [ebp - 0x405], 1
mov esi, eax
mov dword [ebp - 0x40c], esi
je 0x429647
movss xmm0, dword [ebp - 0x410]
mulss xmm0, dword [0x48e4bc]
call fcn.00470030
push eax
push 0x48e39c
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046f31e
add esp, 0x10
test byte [edi + 0x1c], 2
je 0x42973c
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x204], ax
lea eax, [ebp - 0x202]
push eax
call fcn.0046fe20
push 0
push 0
push 0
push 0x100
lea eax, [ebp - 0x204]
push eax
push 0
push esi
call fcn.00466460
lea ecx, [ebp - 0x404]
add esp, 0x28
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429692
sub ecx, edx
sar ecx, 1
je 0x4296bc
push 0x48e3a8
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
add esp, 0xc
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
push 0x48e3b0
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
push 0
push 0
push 0
push 0x100
lea eax, [ebp - 0x204]
push eax
push dword [edi + 0x59]
push dword [edi + 0x55]
call fcn.00466460
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
add esp, 0x40
lea eax, [ebp - 0x404]
push dword [edi + 0x59]
push dword [edi + 0x55]
push eax
push str.UpdateBar____Size_build:__s_MaxData:__I64u
call fcn.004699e0
add esp, 0x10
test byte [edi + 0x1c], 4
je 0x4298a4
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x204], ax
lea eax, [ebp - 0x202]
push eax
call fcn.0046fe20
add esp, 0xc
cmp dword [edi + 0x85], 0
jne 0x429784
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x85], eax
mov dword [edi + 0x89], esi
jmp 0x429817
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
sub esi, dword [edi + 0x85]
push esi
push str.UpdateBar____ElapsedTime:__d
call fcn.004699e0
add esp, 8
cmp esi, 0x3e8
jb 0x429817
mov eax, dword [ebp - 0x40c]
sub eax, dword [edi + 0x89]
push 0
push eax
push str.UpdateBar____Data:__I64u
mov dword [ebp - 0x40c], eax
call fcn.004699e0
push esi
push str.UpdateBar____ElapsedTime:__d
call fcn.004699e0
add esp, 0x14
push 0
push esi
push 0
push dword [ebp - 0x40c]
call fcn.0046ffc0
push 0
push 0x3e8
push edx
push eax
call fcn.0046ff80
push edx
push eax
push str.UpdateBar____Debit:__I64u
mov dword [0x4b2e48], eax
mov dword [0x4b2e4c], edx
call fcn.004699e0
add esp, 0xc
mov dword [edi + 0x85], 0
lea ecx, [ebp - 0x404]
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x429820
sub ecx, edx
sar ecx, 1
je 0x4298a4
mov ecx, dword [0x4b2e4c]
mov eax, dword [0x4b2e48]
test ecx, ecx
jne 0x429844
test eax, eax
je 0x4298a4
push 0
push 0
push 0
push 0x100
lea edx, [ebp - 0x204]
push edx
push ecx
push eax
call fcn.00466460
push 0x48e3a8
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
lea eax, [ebp - 0x204]
push eax
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
push 0x48e4b4
lea eax, [ebp - 0x404]
push 0x100
push eax
call fcn.0046ef44
add esp, 0x40
lea eax, [ebp - 0x404]
push eax
push 0
push 0xc
push dword [edi + 0xc]
call ebx
cmp dword [edi + 0x10], 0
je 0x429950
mov al, byte [edi + 0x1c]
mov byte [ebp - 0x405], al
test al, al
je 0x429950
xor eax, eax
push 0x1fe
push eax
mov word [ebp - 0x204], ax
lea eax, [ebp - 0x202]
push eax
call fcn.0046fe20
add esp, 0xc
test byte [ebp - 0x405], 1
je 0x429940
mov eax, dword [edi + 0x69]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x48e4c0]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x48e4bc]
mulss xmm0, dword [0x48e4bc]
call fcn.00470030
push eax
push 0x48e39c
lea eax, [ebp - 0x204]
push 0x100
push eax
call fcn.0046f31e
add esp, 0x10
lea eax, [ebp - 0x204]
push eax
push 0
push 0xc
push dword [edi + 0x10]
call ebx
mov ecx, dword [edi + 0x7d]
test ecx, ecx
je 0x429987
cmp dword [edi + 0x35], 2
je 0x429987
cmp dword [edi + 8], 0
je 0x429975
cmp dword [ebp + 8], 0
je 0x429975
push 0
push dword [edi + 0x21]
push 0
push dword [edi + 0x69]
jmp 0x42997f
push 0
push dword [edi + 0x21]
push 0
push dword [edi + 0x65]
push dword [edi]
mov eax, dword [ecx]
push ecx
call dword [eax + 0x24]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0046f33a
mov esp, ebp
pop ebp
ret 4