Function at 0x416774
Capabilities:
Check for time delay via gettickcount
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x130
push ebx
push esi
test edi, edi
je 0x416983
mov eax, dword [edi + 0x18]
test eax, eax
je 0x416983
push eax
mov ax, word [edi + 0x1c]
call fcn.0042f76e
mov dword [ebp - 0x24], eax
test eax, eax
je 0x416983
mov eax, dword [edi + 8]
and dword [edi + 0x10], 0
mov dword [ebp - 0x20], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x1c], eax
mov eax, dword [edi]
mov dword [ebp - 0x18], eax
mov eax, dword [edi + 0x24]
mov ecx, 0x80000
shr eax, 3
mov dword [ebp - 4], ecx
cmp eax, ecx
ja 0x4167d1
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ebp - 0xc], 0x400
call fcn.0042b055
mov dword [ebp - 0x10], eax
test eax, eax
je 0x41696f
cmp dword [ebp - 4], 0
je 0x41696f
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [edi + 0x28], eax
jmp 0x416954
call ebx
mov dword [edi + 0x2c], eax
call fcn.0042c75d
mov dword [ebp - 0x14], eax
push 4
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x130]
call fcn.0042c83d
push dword [ebp - 4]
mov edx, eax
push dword [ebp - 0x10]
call fcn.0042c92d
and dword [ebp - 0x14], 0
test dword [edi + 0x24], 0xfffffff8
jbe 0x4168d5
xor esi, esi
cmp dword [ebp - 4], esi
jbe 0x4168be
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 0xc]
sub eax, esi
mov dword [ebp - 8], eax
cmp eax, ecx
jb 0x41685a
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 0x24]
mov edx, dword [eax]
test edx, edx
je 0x416887
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x416887
mov eax, dword [ebp - 0x10]
push 0x10
push ecx
push 0
push dword [ebp - 8]
add eax, esi
push eax
push edx
call dword [sym.imp.WS2_32.dll_sendto]
cmp eax, dword [ebp - 8]
sete al
jmp 0x4168a8
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x4168a6
mov eax, dword [eax + 0xc]
test eax, eax
je 0x4168a6
push 0x1c
push eax
mov eax, dword [ebp - 0x10]
push 0
push dword [ebp - 8]
add eax, esi
push eax
push ecx
jmp 0x416879
xor al, al
cmp al, 1
jne 0x4168b6
mov eax, dword [ebp - 0xc]
add dword [ebp - 0x20], eax
adc dword [ebp - 0x1c], 0
add esi, dword [ebp - 0xc]
cmp esi, dword [ebp - 4]
jb 0x416848
mov eax, dword [ebp - 0x14]
add eax, dword [ebp - 4]
mov ecx, dword [edi + 0x24]
shr ecx, 3
mov dword [ebp - 0x14], eax
cmp eax, ecx
jb 0x416841
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0
mov dword [edi + 0x34], eax
push dword [0x435f54]
call esi
cmp eax, 0x102
jne 0x41696a
push 0
push dword [edi + 0x38]
call esi
cmp eax, 0x102
jne 0x41696a
mov eax, dword [edi + 0x34]
sub eax, dword [edi + 0x2c]
mov ecx, 0x3e8
cmp eax, ecx
jae 0x416917
sub ecx, eax
push ecx
call dword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [edi + 0x34]
push dword [ebp - 0x1c]
sub eax, dword [edi + 0x2c]
push dword [ebp - 0x20]
add dword [ebp - 0x18], eax
push dword [ebp - 0x18]
mov eax, edi
call fcn.00416639
call ebx
mov ecx, eax
sub ecx, dword [edi + 0x14]
cmp ecx, 0x3a98
jbe 0x416954
mov dword [edi + 0x14], eax
push 0x200
mov eax, 0x400
call fcn.0042c7a9
mov dword [ebp - 0xc], eax
call ebx
mov ecx, dword [edi + 0x20]
sub eax, dword [edi + 0x28]
imul ecx, ecx, 0x3e8
cmp eax, ecx
jb 0x416805
call ebx
mov dword [edi + 0x30], eax
push dword [ebp - 0x10]
call fcn.0042b085
mov esi, dword [ebp - 0x24]
call fcn.0042fae3
mov al, 1
jmp 0x416985
xor al, al
pop esi
pop ebx
leave
ret