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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
cmp dword [ecx + 0x10], 0
push esi
mov esi, dword [0x4c5c14]
mov dword [ebp - 8], ecx
jne 0x4087b7
xor edx, edx
mov eax, esi
mov dword [0x4c5c18], eax
mov dword [0x4c5c2c], edx
jmp 0x4087c2
mov edx, dword [0x4c67b8]
mov eax, dword [0x4c5c18]
inc edx
cmp dword [ecx + 8], 0
mov dword [0x4c67b8], edx
jle 0x408a14
mov edx, 0xffffffec
sub edx, ecx
push edi
lea edi, [ecx + 0x14]
mov dword [ebp - 0xc], edx
cmp edi, eax
jae 0x408850
cmp esi, edi
ja 0x408850
mov edx, dword [0x4c5c1c]
mov ecx, edi
sub ecx, esi
mov dword [ebp - 4], ecx
cmp eax, edx
jne 0x408847
mov ecx, edx
sub ecx, eax
cmp ecx, 1
jae 0x408844
mov ecx, esi
sub ecx, eax
dec ecx
cmp ecx, 1
jb 0x408a19
sub eax, esi
sub edx, esi
mov esi, edx
or ecx, 0xffffffff
shr esi, 1
inc eax
sub ecx, esi
cmp ecx, edx
jae 0x408827
xor edx, edx
jmp 0x408829
add edx, esi
cmp edx, eax
mov ecx, 0x4c5c14
cmovb edx, eax
push edx
call fcn.00408fd0
mov eax, dword [0x4c5c18]
mov esi, dword [0x4c5c14]
mov ecx, dword [ebp - 4]
test eax, eax
je 0x4088b7
mov cl, byte [esi + ecx]
jmp 0x4088aa
mov edx, dword [0x4c5c1c]
cmp eax, edx
jne 0x4088a4
mov ecx, edx
sub ecx, eax
cmp ecx, 1
jae 0x4088a4
mov ecx, esi
sub ecx, eax
dec ecx
cmp ecx, 1
jb 0x408a19
sub eax, esi
sub edx, esi
mov esi, edx
or ecx, 0xffffffff
shr esi, 1
inc eax
sub ecx, esi
cmp ecx, edx
jae 0x408887
xor edx, edx
jmp 0x408889
add edx, esi
cmp edx, eax
mov ecx, 0x4c5c14
cmovb edx, eax
push edx
call fcn.00408fd0
mov eax, dword [0x4c5c18]
mov esi, dword [0x4c5c14]
test eax, eax
je 0x4088b7
mov cl, byte [edi]
mov byte [eax], cl
mov eax, dword [0x4c5c18]
mov esi, dword [0x4c5c14]
mov edx, dword [ebp - 8]
inc eax
inc dword [0x4c5c2c]
mov ecx, eax
mov dword [0x4c5c18], eax
sub ecx, esi
mov edx, dword [edx + 0xc]
cmp ecx, edx
jne 0x4089e5
mov eax, dword [0x4c5c20]
mov ecx, 0x4c5c20
push 0x4c5c14
mov dword [0x4c5c24], eax
call fcn.00408e90
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x4c5c40], 1
call esi
sub eax, dword [0x4c5c58]
cmp eax, 0x3e8
jae 0x408915
inc dword [0x4c5c50]
jmp 0x4089f6
call esi
mov dword [0x4c5c58], eax
mov eax, dword [0x4c5c50]
mov dword [0x4c5c54], eax
mov dword [0x4c5c50], 0
cmp eax, 0x14
jge 0x40898e
mov eax, dword [0x4c5c5c]
cmp eax, 0x1e
jle 0x4089f6
mov esi, dword [0x4c5c44]
sub eax, 0xa
mov dword [0x4c5c5c], eax
mov word [ebp - 0x18], 0xcc1
call fcn.0040c5c0
and eax, 0x800000ff
jns 0x40896a
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x16], al
mov eax, dword [0x4c5c5c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x18]
push 0xc
push eax
push esi
mov byte [ebp - 0x15], 0x10
mov dword [ebp - 0x14], 1
call fcn.0040b1c0
jmp 0x4089f6
jle 0x4089f6
mov eax, dword [0x4c5c5c]
cmp eax, 0x64
jge 0x4089f6
mov esi, dword [0x4c5c44]
add eax, 0xa
mov dword [0x4c5c5c], eax
mov word [ebp - 0x24], 0xcc1
call fcn.0040c5c0
and eax, 0x800000ff
jns 0x4089c1
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x22], al
mov eax, dword [0x4c5c5c]
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x24]
push 0xc
push eax
push esi
mov byte [ebp - 0x21], 0x10
mov dword [ebp - 0x20], 1
call fcn.0040b1c0
jmp 0x4089f6
jb 0x408a01
push str.ERROR__Buffer_length_bigger_then_expected_size_
push 2
call fcn.0040be00
add esp, 8
mov eax, dword [0x4c5c18]
mov esi, dword [0x4c5c14]
mov edx, dword [ebp - 8]
inc edi
mov ecx, dword [ebp - 0xc]
add ecx, edi
cmp ecx, dword [edx + 8]
jl 0x4087e1
pop edi
pop esi
mov esp, ebp
pop ebp
ret
push str.vector_T__too_long
call fcn.0040c44a
int3