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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f3374
mov eax, dword fs:[0]
push eax
sub esp, 0x8c
mov eax, dword [0x52de04]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
mov esi, dword [ebp + 8]
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x90], 0
mov eax, dword [0x668628]
mov edi, dword [sym.imp.USER32.dll_GetDlgItem]
dec eax
mov dword [ebp - 0x8c], esi
cmp esi, eax
jl 0x4050f6
mov eax, esi
cdq
idiv dword [0x52a004]
push 0
push eax
push 0x402
push 0x96
push dword [0x668a74]
call edi
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
push 0x64
lea eax, [ebp - 0x58]
push str.Output___d__
push eax
call fcn.004151e0
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x4050d9
mov eax, dword [eax]
push eax
push 0xc8
push dword [0x668a74]
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea ecx, [ebp - 0x58]
call fcn.00402610
mov eax, esi
cdq
idiv dword [0x52a004]
cmp eax, dword [0x66862c]
je 0x40587d
push 0
push eax
push 0x402
push 0x96
push dword [0x668a74]
mov dword [0x66862c], eax
call edi
push eax
call dword [sym.imp.USER32.dll_PostMessageW]
cmp dword [ebp + 0xc], 1
jne 0x405192
test esi, esi
jle 0x40518a
cmp dword [0x52a020], 0
jne 0x40518a
mov ecx, dword [0x52a024]
push dword [ebp - 0x98]
push ecx
lea eax, [ecx + 1]
mov dword [0x52a024], eax
lea eax, [ebp - 0x58]
push str.Channel__d_of__d
push eax
call fcn.004151e0
add esp, 0x10
cmp dword [eax + 0x14], 8
jb 0x40516d
mov eax, dword [eax]
push eax
push 0xc8
push dword [0x668a74]
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea ecx, [ebp - 0x58]
call fcn.00402610
mov dword [0x52a020], esi
jmp 0x4051ed
movd xmm0, dword [0x668628]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
cvtdq2pd xmm0, xmm0
mulsd xmm1, qword [0x4fdcc0]
divsd xmm1, xmm0
cvttsd2si eax, xmm1
push eax
lea eax, [ebp - 0x58]
push str.Output___d__
push eax
call fcn.004151e0
add esp, 0xc
cmp dword [eax + 0x14], 8
jb 0x4051d0
mov eax, dword [eax]
push eax
push 0xc8
push dword [0x668a74]
call edi
push eax
call dword [sym.imp.USER32.dll_SetWindowTextW]
lea ecx, [ebp - 0x58]
call fcn.00402610
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [0x668628]
mov edi, eax
dec ecx
cmp esi, ecx
mov ecx, dword [0x668640]
jge 0x405218
sub eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x3e8
jle 0x40587d
movd xmm1, dword [0x9b9f34]
mov eax, edi
sub eax, ecx
mov dword [ebp - 0x18], 0
test eax, eax
mov dword [ebp - 0x14], 7
mov ecx, 1
cmovle eax, ecx
cvtdq2pd xmm1, xmm1
movd xmm0, eax
xor eax, eax
mulsd xmm1, qword [0x4fdeb8]
cvtdq2pd xmm0, xmm0
divsd xmm1, xmm0
xorps xmm0, xmm0
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x28], ax
cvtpd2ps xmm1, xmm1
mov dword [ebp - 4], eax
movss xmm0, dword [0x4fdec8]
comiss xmm0, xmm1
jbe 0x4052dd
cvttss2si eax, xmm1
push eax
push str.Bytes_per_second
push str.BYTESPERSECOND
call fcn.0041b3d0
add esp, 8
push eax
lea eax, [ebp - 0x58]
push str._s:__02d_n
push eax
call fcn.004151e0
add esp, 0x10
mov esi, eax
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x40534e
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x405320
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405316
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405898
jmp 0x405316
cvtps2pd xmm0, xmm1
sub esp, 8
divsd xmm0, qword [0x4fdec0]
movsd qword [esp], xmm0
push str.Megabytes_per_second
push str.MEGABYTESPERSECOND
call fcn.0041b3d0
add esp, 8
push eax
lea eax, [ebp - 0x58]
push str._s:__.2f_n
push eax
call fcn.004151e0
add esp, 0x14
jmp 0x40529e
push ecx
push edx
call fcn.004b3acc
add esp, 8
xor eax, eax
mov dword [ebp - 0x14], 7
mov dword [ebp - 0x18], eax
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
lea ecx, [ebp - 0x58]
call fcn.00402610
mov eax, 0x10624dd3
imul edi
mov eax, 0x88888889
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
sub edi, dword [0x668630]
imul edi
mov eax, edi
add edx, edi
sar edx, 5
mov esi, edx
shr esi, 0x1f
add esi, edx
mov ecx, esi
shl ecx, 4
sub ecx, esi
shl ecx, 2
sub eax, ecx
push eax
push esi
lea eax, [ebp - 0x58]
push str.Elapsed_Time:__d:_02d
push eax
call fcn.004151e0
add esp, 0x10
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 1
call fcn.004058b0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call fcn.00402610
movd xmm1, dword [0x668628]
mov eax, 0x88888889
movd xmm2, edi
mov edi, dword [ebp - 0x8c]
cvtdq2ps xmm1, xmm1
cvtdq2ps xmm2, xmm2
movd xmm0, edi
cvtdq2ps xmm0, xmm0
mulss xmm1, xmm2
divss xmm1, xmm0
subss xmm1, xmm2
cvttss2si esi, xmm1
imul esi
add edx, esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub esi, eax
lea eax, [ebp - 0x58]
push esi
push ecx
push str.Remaining_Time:__d:_02d_n
push eax
call fcn.004151e0
add esp, 0x10
push eax
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004058b0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0
call fcn.00402610
movd xmm0, dword [0x668628]
cvtdq2pd xmm0, xmm0
movsd xmm1, qword [0x4fdcc0]
divsd xmm0, qword [0x668638]
comisd xmm1, xmm0
jbe 0x4054e6
lea eax, [ebp - 0x88]
push eax
call fcn.0041ef40
add esp, 4
cmp dword [eax + 0x14], 8
mov byte [ebp - 4], 3
mov dword [ebp - 0x90], 1
jb 0x40547f
mov eax, dword [eax]
movd xmm0, dword [0x668628]
cvtdq2pd xmm0, xmm0
push eax
sub esp, 8
divsd xmm0, qword [0x668638]
movsd qword [esp], xmm0
call fcn.0041ee90
movd xmm0, edi
cvtdq2pd xmm0, xmm0
fstp qword [esp]
divsd xmm0, qword [0x668638]
sub esp, 8
movsd qword [esp], xmm0
call fcn.0041ee90
fstp qword [esp]
lea eax, [ebp - 0x40]
push str.Output:__.1f_of__.1f__s_n
push eax
call fcn.004151e0
add esp, 0x1c
mov dword [ebp - 4], 4
mov ecx, 3
jmp 0x405579
lea eax, [ebp - 0x70]
push eax
call fcn.0041ef40
add esp, 4
cmp dword [eax + 0x14], 8
mov dword [ebp - 4], 5
mov dword [ebp - 0x90], 4
jb 0x40550b
mov eax, dword [eax]
movd xmm0, dword [0x668628]
cvtdq2pd xmm0, xmm0
push eax
sub esp, 8
divsd xmm0, qword [0x668638]
movsd qword [esp], xmm0
call fcn.0041ee90
add esp, 8
call fcn.004b3f90
movd xmm0, edi
cvtdq2pd xmm0, xmm0
push eax
sub esp, 8
divsd xmm0, qword [0x668638]
movsd qword [esp], xmm0
call fcn.0041ee90
add esp, 8
call fcn.004b3f90
push eax
lea eax, [ebp - 0x58]
push str.Output:__d_of__d__s_n
push eax
call fcn.004151e0
add esp, 0x14
mov dword [ebp - 4], 6
mov ecx, 0xc
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x8c], ecx
lea ecx, [ebp - 0x28]
push eax
call fcn.004058b0
mov eax, dword [ebp - 0x8c]
test al, 8
je 0x4055af
and eax, 0xfffffff7
lea ecx, [ebp - 0x58]
mov dword [ebp - 0x8c], eax
call fcn.00402610
mov eax, dword [ebp - 0x8c]
test al, 4
je 0x4055ca
and eax, 0xfffffffb
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x8c], eax
call fcn.00402610
mov eax, dword [ebp - 0x8c]
test al, 2
je 0x4055e5
and eax, 0xfffffffd
lea ecx, [ebp - 0x40]
mov dword [ebp - 0x8c], eax
call fcn.00402610
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 4], 0
test al, 1
je 0x4055fb
lea ecx, [ebp - 0x88]
call fcn.00402610
mov edx, dword [0x52a018]
mov eax, SysReAllocString
sub eax, edx
mov dword [ebp - 0x90], edx
cmp eax, 1
jb 0x40589d
cmp dword [0x52a01c], 8
lea ecx, [edx + 1]
mov eax, 0x52a008
mov dword [ebp - 0x30], 0
cmovae eax, dword [0x52a008]
lea edi, [ebp - 0x40]
mov esi, 7
mov dword [ebp - 0x94], eax
mov dword [ebp - 0x2c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x8c], ecx
mov dword [ebp - 0x98], 0xa
movups xmmword [ebp - 0x40], xmm0
cmp ecx, esi
jbe 0x4056e1
mov esi, ecx
or esi, 7
cmp esi, 0x7ffffffe
jbe 0x40567f
mov eax, closesocket
mov esi, SysReAllocString
add eax, eax
jmp 0x4056a0
cmp esi, 0xa
cmovb esi, dword [ebp - 0x98]
lea eax, [esi + 1]
cmp eax, 0x7fffffff
ja 0x4058a2
add eax, eax
cmp eax, 0x1000
jb 0x4056b9
push eax
call fcn.004020c0
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov edx, dword [ebp - 0x90]
mov edi, eax
jmp 0x4056d8
test eax, eax
je 0x4056d6
push eax
call fcn.0049c406
mov ecx, dword [ebp - 0x8c]
add esp, 4
mov edx, dword [ebp - 0x90]
mov edi, eax
jmp 0x4056d8
xor edi, edi
mov eax, dword [ebp - 0x94]
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x2c], esi
lea esi, [edx + edx]
push esi
push eax
push edi
mov dword [ebp - 0x30], ecx
call fcn.004b8680
mov eax, dword [ebp - 0x98]
xor ecx, ecx
mov word [esi + edi], ax
add esp, 0xc
mov eax, dword [ebp - 0x90]
mov word [edi + eax*2 + 2], cx
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x30]
cmovae ecx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
sub eax, edx
mov byte [ebp - 4], 7
mov dword [ebp - 0x94], edx
cmp edi, eax
ja 0x405765
cmp dword [ebp - 0x2c], 8
lea eax, [edx + edi]
mov dword [ebp - 0x30], eax
lea esi, [ebp - 0x40]
cmovae esi, dword [ebp - 0x40]
lea eax, [edi + edi]
push eax
push ecx
lea eax, [esi + edx*2]
push eax
call fcn.004b8680
mov eax, dword [ebp - 0x94]
add esp, 0xc
add eax, edi
xor ecx, ecx
mov word [esi + eax*2], cx
lea eax, [ebp - 0x40]
jmp 0x40577d
push edi
push ecx
mov byte [ebp - 0x94], 0
lea ecx, [ebp - 0x40]
push dword [ebp - 0x94]
push edi
call fcn.00404d20
mov dword [ebp - 0x60], 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x70], xmm0
mov dword [ebp - 0x5c], 0
xor ecx, ecx
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0x70], xmm0
movq xmm0, qword [eax + 0x10]
movq qword [ebp - 0x60], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 7
mov word [eax], cx
lea eax, [ebp - 0x70]
cmp dword [ebp - 0x5c], 8
cmovae eax, dword [ebp - 0x70]
push eax
push 0xfb
push dword [0x668a74]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call fcn.0041bfd0
mov ecx, dword [ebp - 0x5c]
add esp, 8
cmp ecx, 8
jb 0x405816
mov edx, dword [ebp - 0x70]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x40580c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405898
push ecx
push edx
call fcn.004b3acc
add esp, 8
mov ecx, dword [ebp - 0x2c]
xor eax, eax
mov dword [ebp - 0x60], 0
mov dword [ebp - 0x5c], 7
mov word [ebp - 0x70], ax
cmp ecx, 8
jb 0x405860
mov edx, dword [ebp - 0x40]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x405856
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x405898
push ecx
push edx
call fcn.004b3acc
add esp, 8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ecx, [ebp - 0x28]
mov dword [0x668640], eax
mov dword [0x9b9f34], 0
call fcn.00402610
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004b3f28
mov esp, ebp
pop ebp
ret
call fcn.004c342f
call fcn.00402bf0
call fcn.00402bc0
int3