Function at 0x5a9cc0
Capabilities:
Check for time delay via gettickcount
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004040cc
xor eax, eax
push ebp
push 0x5aa13e
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x11], 0
mov byte [ebp - 0x12], 0
xor edx, edx
push ebp
push 0x5aa116
push dword fs:[edx]
mov dword fs:[edx], esp
xor eax, eax
push ebp
push 0x5a9d4b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
cmp dword [eax + 0x254], 0
je 0x5a9d27
mov eax, dword [ebp - 4]
add eax, 0x254
call fcn.005a66e0
push 0x20
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x40f87c]
call fcn.00413ee4
mov edx, dword [ebp - 4]
mov dword [edx + 0x254], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5a9da4
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
mov dl, 2
mov eax, dword [ebp - 4]
call fcn.005a74fc
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xe0]
add edx, edx
mov eax, dword [ebp - 4]
call fcn.005a73dc
mov word [ebp - 0x16], 0
mov word [ebp - 0x14], 0x64
push 4
lea eax, [ebp - 0x16]
push eax
push 0x80
push 0xffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x22c]
push eax
call sub.wsock32.dll_setsockopt
lea eax, [ebp - 0x1c]
push eax
mov cl, 1
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005ac6d8
mov eax, dword [ebp - 4]
mov byte [eax + 0x229], 1
mov eax, dword [ebp - 4]
mov byte [eax + 0x1a4], 0
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x254]
call fcn.00413934
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [eax + 0x260], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0x264], edx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov dword [eax + 0xb0], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 0xb4], edx
mov eax, dword [ebp - 4]
mov dword [eax + 0xa8], 0
mov dword [eax + 0xac], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x254]
call fcn.00413948
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x160], eax
mov dword [ecx + 0x164], edx
xor esi, esi
mov eax, dword [ebp - 4]
cmp dword [eax + 0xac], 0
jne 0x5a9ea9
cmp dword [eax + 0xa8], 0
jbe 0x5a9efe
jmp 0x5a9eab
jle 0x5a9efe
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x164]
mov eax, dword [eax + 0x160]
mov ecx, dword [ebp - 4]
cmp edx, dword [ecx + 0xac]
jne 0x5a9ecf
cmp eax, dword [ecx + 0xa8]
jbe 0x5a9efe
jmp 0x5a9ed1
jle 0x5a9efe
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x164]
mov eax, dword [eax + 0x160]
mov ecx, dword [ebp - 4]
sub eax, dword [ecx + 0xa8]
sbb edx, dword [ecx + 0xac]
mov ecx, dword [ebp - 4]
mov dword [ecx + 0x160], eax
mov dword [ecx + 0x164], edx
mov eax, dword [ebp - 4]
push eax
push 0
push 0x467
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x248]
push eax
call sub.user32.dll_PostMessageA
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.005aa9ac
jmp 0x5aa01f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp word [eax + 0x6e], 0
je 0x5a9f3f
mov ebx, eax
lea edx, [ebp - 0x11]
mov eax, dword [ebx + 0x70]
call dword [ebx + 0x6c]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x203], 0
je 0x5a9f59
mov dx, 2
mov eax, dword [ebp - 4]
call fcn.005acc80
jmp 0x5a9f6a
mov ebx, 0xc9
call fcn.005a66f4
test al, al
je 0x5a9f6a
dec ebx
jne 0x5a9f5e
call sub.kernel32.dll_GetTickCount
sub eax, esi
cmp eax, 0x3e8
jbe 0x5a9fbf
call sub.kernel32.dll_GetTickCount
mov esi, eax
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xac]
mov eax, dword [eax + 0xa8]
cmp edx, dword [ebp - 0xc]
jne 0x5a9f96
cmp eax, dword [ebp - 0x10]
je 0x5a9fbf
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xa8]
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 0xac]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x154]
test eax, eax
je 0x5a9fbf
call fcn.005ae184
mov eax, dword [ebp - 4]
cmp byte [eax + 0x203], 0
je 0x5aa01f
call sub.kernel32.dll_GetTickCount
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x20c]
mov ecx, 0x3e8
xor edx, edx
div ecx
mov ecx, eax
test ecx, ecx
jne 0x5a9fed
mov ecx, 1
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1f0]
xor edx, edx
div ecx
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x208]
jae 0x5aa01f
mov eax, dword [ebp - 4]
push eax
push 0
push 0x467
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x248]
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [ebp - 4]
cmp byte [eax + 0x268], 0
je 0x5aa072
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1a4], 0
jne 0x5aa072
mov eax, dword [ebp - 4]
cmp byte [eax + 0x215], 0
jne 0x5aa072
mov eax, dword [ebp - 4]
cmp dword [eax + 0x164], 0
jne 0x5aa05a
cmp dword [eax + 0x160], 0
jbe 0x5aa072
jmp 0x5aa05c
jle 0x5aa072
mov eax, dword [ebp - 4]
cmp byte [eax + 0x229], 0
je 0x5aa072
cmp byte [ebp - 0x11], 0
je 0x5a9f27
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5aa120
mov eax, dword [ebp - 4]
mov dword [eax + 0xb0], 0
mov dword [eax + 0xb4], 0
cmp byte [ebp - 0x11], 0
jne 0x5aa0ab
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
cmp byte [eax + 0x1d0], 0
je 0x5aa0b5
mov eax, dword [ebp - 4]
mov byte [eax + 0x215], 1
mov eax, dword [ebp - 4]
call fcn.005aaa04
mov eax, dword [ebp - 4]
cmp dword [eax + 0x254], 0
je 0x5aa0d6
mov eax, dword [ebp - 4]
add eax, 0x254
call fcn.005a66e0
mov eax, dword [ebp - 4]
mov byte [eax + 0x229], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x215], 0
je 0x5aa115
cmp byte [ebp - 0x12], 0
jne 0x5aa0fc
mov eax, dword [ebp - 4]
mov byte [eax + 0x215], 0
mov ecx, dword [0x5bc024]
mov ecx, dword [ecx]
mov dl, 1
mov eax, dword [0x5a61d0]
call fcn.0040bbf8
call fcn.00403710
ret