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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
push edi
mov esi, ecx
mov dword [ebp - 4], edx
mov edi, dword [ebp + 8]
xor ebx, ebx
test esi, esi
je 0x4f7165
cmp byte [esi + 0x22a], 0x32
jb 0x4f7165
cmp byte [esi + 0x22a], 0
je 0x4f7155
mov eax, 4
sub eax, edi
call fcn.00403484
test eax, eax
jne 0x4f7155
xor eax, eax
mov dword [esi + 0x380], eax
mov eax, dword [esi + 0x278]
cmp eax, dword [ebp - 4]
jne 0x4f6edc
lea eax, [edi + edi*4]
add eax, 0xa
imul edx, eax, 0x3e8
mov eax, esi
call fcn.0060f490
mov bl, 1
jmp 0x4f7165
mov eax, 2
call fcn.00403484
test eax, eax
jne 0x4f713e
movzx eax, word [esi + 0x34]
mov edx, dword [ebp - 4]
movzx edx, word [edx + 0x34]
add edx, 2
cmp eax, edx
ja 0x4f7151
mov eax, 3
call fcn.00403484
test eax, eax
jne 0x4f711d
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x34]
add eax, 0x14
lea edx, [edi + edi*4]
add eax, edx
call fcn.00403484
movzx edx, word [esi + 0x34]
mov ecx, dword [setsockopt]
add edx, dword [ecx + 0x6460]
cmp eax, edx
jle 0x4f70ee
cmp byte [esi + 0x264], 0
jne 0x4f70cc
movzx eax, word [esi + 0x34]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x645c]
jge 0x4f70cc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 8]
mov edx, dword [setsockopt]
cmp eax, dword [edx + 0x650c]
jge 0x4f70cc
movzx eax, word [esi + 0x122]
mov edx, dword [setsockopt]
mov ecx, dword [edx + 0x6508]
cdq
idiv ecx
mov ebx, eax
cmp ebx, 2
jg 0x4f6fa7
mov ebx, 2
jmp 0x4f6fa9
add ebx, ebx
mov eax, dword [esi + 0x278]
cmp eax, dword [ebp - 4]
je 0x4f70ac
mov eax, ebx
call fcn.00403484
test eax, eax
jne 0x4f70ac
mov eax, esi
call fcn.0060f514
cmp dword [esi + 0x278], 0
je 0x4f6fee
movzx eax, word [esi + 0x11e]
mov ecx, 0xa
xor edx, edx
div ecx
mov word [esi + 0x11e], ax
mov eax, dword [ebp - 4]
mov dword [esi + 0x278], eax
mov byte [esi + 0xbbd], 0
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0x34]
add eax, eax
call fcn.00403484
mov edx, edi
add edx, edx
add edx, edx
lea edx, [edx + edx*4]
add eax, edx
add eax, 0x14
imul eax, eax, 0x3c
imul ebx, eax, 0x3e8
call sub.kernel32.dll_GetTickCount_1
add ebx, eax
mov dword [esi + 0x27c], ebx
mov eax, edi
mov byte [esi + 0x289], al
cmp dword [esi + 0x280], 0
jne 0x4f704c
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x280], eax
mov eax, esi
call fcn.0060f4c4
imul edx, edi, 0xc8
mov eax, 0x5dc
sub eax, edx
cmp eax, dword [esi + 0xb48]
jae 0x4f706e
mov dword [esi + 0xb48], eax
mov eax, 0x7d0
sub eax, edx
cmp eax, dword [esi + 0xb60]
jae 0x4f7090
imul eax, edi, 0xc8
mov edx, 0x7d0
sub edx, eax
mov dword [esi + 0xb60], edx
mov eax, esi
mov edx, dword [eax]
call dword [edx + 0x2c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x28c]
mov edx, esi
call fcn.0041fa54
jmp 0x4f7151
mov eax, 0xe
call fcn.00403484
test eax, eax
jne 0x4f7151
mov word [esi + 0x11e], 0
jmp 0x4f7151
cmp byte [esi + 0x264], 1
jne 0x4f7151
mov eax, 0x14
call fcn.00403484
test eax, eax
jne 0x4f7151
mov word [esi + 0x11e], 0
jmp 0x4f7151
cmp byte [esi + 0x264], 1
je 0x4f7151
mov eax, 0x14
call fcn.00403484
test eax, eax
jne 0x4f7151
mov eax, 0x14
call fcn.00403484
mov edx, eax
add edx, 0xa
mov eax, esi
call fcn.0060f4dc
jmp 0x4f7151
cmp byte [esi + 0x264], 1
je 0x4f7151
mov eax, 0x14
call fcn.00403484
mov edx, eax
add edx, 0xa
mov eax, esi
call fcn.0060f4dc
jmp 0x4f7151
lea eax, [edi + edi*4]
add eax, 0xa
imul edx, eax, 0x3e8
mov eax, esi
call fcn.0060f490
mov bl, 1
jmp 0x4f7165
mov eax, 2
call fcn.00403484
test eax, eax
jne 0x4f7165
mov bl, 1
mov eax, ebx
pop edi
pop esi
pop ebx
pop ecx
pop ebp
ret 0xc