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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x648
mov eax, dword [0x4c07e0]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [ebp + 0xc], 0
jne 0x453e62
cmp eax, dword [esi + 0x5518]
jb 0x4541f2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, 0x7d0
push 0x600
mov dword [esi + 0x5518], eax
lea eax, [ebp - 0x644]
push 0
push eax
call fcn.00466b60
add esp, 0xc
test edi, edi
je 0x453eb3
mov ecx, edi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453e92
sub ecx, edx
je 0x453eb3
push edi
lea eax, [ebp - 0x644]
push 0x4afd60
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, dword [esi + 0x5350]
test eax, eax
je 0x453ed0
push eax
push dword [esi + 0x5500]
push 0x64
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edx, eax
jmp 0x453ed2
xor edx, edx
lea ecx, [ebp - 0x644]
lea edi, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x453ee0
push edx
sub ecx, edi
lea eax, [ebp - 0x644]
add eax, ecx
push str._d__
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esi + 0x550c]
xor edi, edi
add esp, 0xc
mov dword [ebp - 0x648], edi
test ecx, ecx
jne 0x453f1f
cmp dword [esi + 0x5510], edi
je 0x453f62
test ecx, ecx
je 0x453f34
mov eax, dword [esi + 0x5510]
push 2
add eax, ecx
push eax
push 1
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x453f3a
mov eax, dword [esi + 0x5510]
push eax
mov eax, dword [esi + 0x5350]
sub eax, dword [esi + 0x5500]
push 0x4000
push eax
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov edi, eax
xor eax, eax
test edi, edi
cmovs edi, eax
mov dword [ebp - 0x648], edi
mov eax, dword [esi + 0x550c]
xorps xmm0, xmm0
mov byte [ebp - 0x24], 0
movq qword [ebp - 0x13], xmm0
mov dword [ebp - 0xb], 0
mov word [ebp - 7], 0
mov byte [ebp - 5], 0
movups xmmword [ebp - 0x23], xmm0
test eax, eax
jne 0x453f93
mov eax, dword [esi + 0x5510]
push ebx
push 0
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00450390
lea ebx, [ebp - 0x644]
add esp, 0xc
lea ecx, [ebx + 1]
nop dword [eax]
mov al, byte [ebx]
inc ebx
test al, al
jne 0x453fb0
mov eax, 0x88888889
sub ebx, ecx
imul edi
mov ecx, 0x3c
add edx, edi
sar edx, 5
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, edi
cdq
idiv ecx
mov ecx, edi
shl ecx, 4
sub ecx, edi
mov edi, dword [ebp - 0x648]
shl ecx, 2
sub edi, ecx
mov ecx, 0x3c
push edi
push edx
cdq
idiv ecx
lea eax, [ebp - 0x24]
push edx
push eax
lea eax, [ebp - 0x644]
add eax, ebx
push str.___s_s____dh__02dm__02ds_ETA__
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
cmp dword [esi + 0x4d34], 2
jne 0x454125
mov eax, dword [esi + 0x5510]
xorps xmm0, xmm0
add eax, dword [esi + 0x550c]
shr eax, 1
push 0
push eax
lea eax, [ebp - 0x44]
mov byte [ebp - 0x44], 0
push eax
movups xmmword [ebp - 0x43], xmm0
mov dword [ebp - 0x2b], 0
movq qword [ebp - 0x33], xmm0
mov word [ebp - 0x27], 0
mov byte [ebp - 0x25], 0
call fcn.00450390
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x644]
push str.__Completed______s_s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x18
cmp dword [esi + 0x54f4], 0
jbe 0x454125
lea edi, [ebp - 0x644]
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x454085
sub edi, ecx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov ebx, 0x3c
sub ecx, dword [esi + 0x54f4]
mov eax, 0x10624dd3
mul ecx
shr edx, 6
mov eax, edx
xor edx, edx
div ebx
push edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
sub ecx, dword [esi + 0x54f4]
mul ecx
mov eax, 0x88888889
shr edx, 6
mul edx
shr edx, 5
mov eax, edx
xor edx, edx
div ebx
push edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov eax, 0x10624dd3
sub ecx, dword [esi + 0x54f4]
mul ecx
mov eax, 0x88888889
shr edx, 6
mul edx
mov eax, 0x88888889
shr edx, 5
mul edx
shr edx, 5
mov eax, edx
xor edx, edx
div ebx
lea eax, [ebp - 0x644]
push edx
add eax, edi
push str.____dh__02dm__02ds_Total__
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
cmp dword [0x4c3da0], 0
je 0x454184
lea edi, [ebp - 0x644]
lea ecx, [edi + 1]
mov al, byte [edi]
inc edi
test al, al
jne 0x454137
sub edi, ecx
mov ecx, esi
call fcn.00452d70
push eax
push 0x64
push dword [esi + 0x54f0]
push 0x64
call dword [sym.imp.KERNEL32.dll_MulDiv]
push eax
push dword [esi + 0x5350]
mov eax, dword [esi + 0x5508]
push dword [esi + 0x5504]
inc eax
push eax
lea eax, [ebp - 0x644]
add eax, edi
push str.___Chunks:_Current:_d_Sent:_d_Total:_d___Turbo:__d________CipherLock:_s____
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
mov ecx, esi
call fcn.00454380
mov ebx, eax
cmp ebx, 0xffffffff
jle 0x4541f1
lea ecx, [esi + 0x87c]
call fcn.00430230
push eax
push 0
push ebx
mov ecx, 0x4c6468
call fcn.00416e80
lea ecx, [esi + 0x88]
call fcn.00446fd0
push eax
push 1
push ebx
mov ecx, 0x4c6468
call fcn.00416e80
lea ecx, [esi + 0x87c]
call fcn.00462a00
push eax
push 2
push ebx
mov ecx, 0x4c6468
call fcn.00416e80
lea eax, [ebp - 0x644]
mov ecx, 0x4c6468
push eax
push 3
push ebx
call fcn.00416e80
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00464e2f
mov esp, ebp
pop ebp
ret 8