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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [0x4febb0]
sub esp, 0x20
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
cmp dword [edi + 0x10], 0
jne 0x414799
mov esi, dword [0x4febac]
mov dword [0x505dbc], 0
cmp esi, eax
je 0x41478f
push 0
push eax
push esi
call dword [sym.imp.MSVCR100.dll_memmove]
mov eax, esi
add esp, 0xc
mov dword [0x4febb0], eax
mov dword [0x4febcc], 0
mov ebx, 1
add dword [0x505dbc], ebx
cmp dword [edi + 8], 0
jle 0x414a03
mov edx, 0xffffffec
lea ecx, [edi + 0x14]
sub edx, edi
mov dword [ebp - 4], ecx
mov dword [ebp - 8], edx
mov edi, edi
mov esi, dword [0x4febac]
cmp ecx, eax
jae 0x414833
cmp esi, ecx
ja 0x414833
mov edx, dword [0x4febb4]
mov edi, ecx
sub edi, esi
cmp eax, edx
jne 0x41481a
mov ecx, eax
sub ecx, esi
cmp ecx, 0xfffffffe
ja 0x414a0c
add ecx, ebx
sub edx, esi
cmp ecx, edx
jbe 0x41481a
mov eax, edx
shr edx, 1
or esi, 0xffffffff
sub esi, edx
cmp esi, eax
jae 0x414802
xor eax, eax
jmp 0x414804
add eax, edx
cmp eax, ecx
jae 0x41480a
mov eax, ecx
push eax
mov esi, 0x4febac
call fcn.00412810
mov eax, dword [0x4febb0]
test eax, eax
je 0x41482e
mov ecx, dword [0x4febac]
mov dl, byte [ecx + edi]
mov byte [eax], dl
mov eax, dword [0x4febb0]
mov edi, dword [ebp + 8]
jmp 0x41488b
mov edx, dword [0x4febb4]
cmp eax, edx
jne 0x41487b
mov ecx, eax
sub ecx, esi
cmp ecx, 0xfffffffe
ja 0x414a0c
add ecx, ebx
sub edx, esi
cmp ecx, edx
jbe 0x41487b
mov eax, edx
shr edx, 1
or esi, 0xffffffff
sub esi, edx
cmp esi, eax
jae 0x414863
xor eax, eax
jmp 0x414865
add eax, edx
cmp eax, ecx
jae 0x41486b
mov eax, ecx
push eax
mov esi, 0x4febac
call fcn.00412810
mov eax, dword [0x4febb0]
test eax, eax
je 0x41488b
mov ecx, dword [ebp - 4]
mov dl, byte [ecx]
mov byte [eax], dl
mov eax, dword [0x4febb0]
add dword [0x4febcc], ebx
add eax, ebx
mov ecx, eax
sub ecx, dword [0x4febac]
mov dword [0x4febb0], eax
mov edx, dword [edi + 0xc]
cmp ecx, edx
jne 0x4149d7
mov eax, dword [0x4febbc]
mov ecx, dword [0x4febc0]
mov esi, eax
cmp eax, ecx
je 0x4148cf
push 0
push ecx
push eax
call dword [sym.imp.MSVCR100.dll_memmove]
add esp, 0xc
mov dword [0x4febc0], esi
mov eax, 0x4febac
mov ecx, 0x4febbc
call fcn.004126d0
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [0x4febe0], bl
call esi
sub eax, dword [0x4febf8]
cmp eax, 0x3e8
jae 0x414904
add dword [0x4febf0], ebx
jmp 0x4149e8
call esi
mov dword [0x4febf8], eax
mov eax, dword [0x4febf0]
mov dword [0x4febf4], eax
mov dword [0x4febf0], 0
cmp eax, 0x14
jge 0x41497e
cmp dword [0x4febfc], 0x1e
jle 0x4149e8
sub dword [0x4febfc], 0xa
mov esi, dword [0x4febe4]
mov word [ebp - 0x14], 0xcc1
call dword [sym.imp.MSVCR100.dll_rand]
and eax, 0x800000ff
jns 0x414958
dec eax
or eax, 0xffffff00
inc eax
mov byte [ebp - 0x12], al
mov eax, dword [0x4febfc]
mov edi, 0xc
lea edx, [ebp - 0x14]
mov ecx, esi
mov byte [ebp - 0x11], 0xa4
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0xc], eax
call fcn.00416670
mov edi, dword [ebp + 8]
jmp 0x4149e8
jle 0x4149e8
cmp dword [0x4febfc], 0x64
jge 0x4149e8
add dword [0x4febfc], 0xa
mov esi, dword [0x4febe4]
mov word [ebp - 0x20], 0xcc1
call dword [sym.imp.MSVCR100.dll_rand]
and eax, 0x800000ff
jns 0x4149b0
dec eax
or eax, 0xffffff00
inc eax
mov ecx, dword [0x4febfc]
mov dword [ebp - 0x18], ecx
mov edi, 0xc
lea edx, [ebp - 0x20]
mov ecx, esi
mov byte [ebp - 0x1e], al
mov byte [ebp - 0x1d], 0xa4
mov dword [ebp - 0x1c], ebx
call fcn.00416670
mov edi, dword [ebp + 8]
jmp 0x4149e8
jb 0x4149ed
push str.ERROR__Buffer_length_bigger_then_expected_size_
push 2
call fcn.00417090
add esp, 8
mov eax, dword [0x4febb0]
mov ecx, dword [ebp - 4]
mov edx, dword [ebp - 8]
add ecx, ebx
add edx, ecx
mov dword [ebp - 4], ecx
cmp edx, dword [edi + 8]
jl 0x4147c0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
push str.vector_T__too_long
call dword [sym.imp.MSVCP100.dll_void___cdecl_std::_Xlength_error_char_const__]
int3