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

Disassembly:
mov eax, dword [esp + 0xc]
push esi
mov esi, ecx
mov byte [eax], 0
mov ecx, dword [esi + 0x40]
shr ecx, 2
test cl, 1
je 0x4818d0
call fcn.0049a3e0
mov al, 1
pop esi
ret 0xc
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0x4e8]
lea ecx, [eax + 0x4e8]
mov eax, dword [edx + 0xc]
push ebx
push ebp
xor bl, bl
call eax
or dword [esi + 0x40], 4
mov cl, byte [esp + 0x10]
mov ebp, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [esi + 0x84], cl
cmp byte [esp + 0x14], bl
jne 0x481934
call ebp
mov edx, dword [esi + 0x48]
sub eax, edx
cmp eax, dword [esi + 0x50]
seta al
test al, al
jne 0x481934
mov eax, dword [esi + 0x28]
lea ecx, [eax + 0x4e8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
and dword [esi + 0x40], 0xfffffffb
call fcn.0049a3e0
pop ebp
pop ebx
mov al, 1
pop esi
ret 0xc
call ebp
mov dword [esi + 0x48], eax
mov ecx, dword [0x59cf40]
call fcn.0047f580
test al, al
je 0x48194d
call fcn.00494fe0
mov al, byte [0x59cf5c]
inc al
mov byte [0x59cf5c], al
movzx eax, al
and eax, reloc.WSOCK32.dll_accept
jns 0x481968
dec eax
or eax, 0xfffffffe
inc eax
jne 0x481978
mov ecx, esi
call fcn.004807a0
mov byte [0x59cf5c], 0
cmp dword [esi + 0x4c], 0
mov edx, dword [esi + 0x28]
setg cl
mov byte [edx + 0x62a], cl
mov eax, dword [esi + 0x2c]
push edi
test eax, eax
je 0x48199b
cmp dword [eax + 4], 0
setne al
test al, al
jne 0x4819d5
call fcn.00480a20
mov edi, eax
mov ecx, edi
call fcn.0049a7a0
cmp dword [esi + 0x4c], 0
mov edx, dword [esi + 0x34]
setg al
movzx ecx, al
push ecx
push edx
mov ecx, esi
call fcn.0047fbc0
mov ecx, edi
mov byte [esp + 0x18], al
call fcn.0049a580
cmp byte [esp + 0x18], 0
je 0x481aa8
test dword [esi + 0x54], 0x200200
je 0x4819ff
lea eax, [esp + 0x14]
push eax
mov ecx, esi
mov byte [esp + 0x18], 0
call fcn.00481190
test al, al
jne 0x4819ff
xor bl, bl
cmp byte [esp + 0x14], bl
jne 0x481aa8
mov ecx, dword [esi + 0x54]
shr ecx, 9
and cl, 1
mov ecx, dword [esi + 0x34]
sete dl
movzx eax, dl
push eax
push ecx
mov ecx, dword [esi + 0x28]
call fcn.00480930
mov bl, al
test bl, bl
jne 0x481a8f
mov eax, dword [esi + 0x28]
cmp byte [eax + 0x62b], bl
jne 0x481a60
mov edx, dword [eax + 0x78]
and edx, 0x200
jne 0x481a8f
cmp dword [esi + 0x4c], edx
jle 0x481a8f
mov eax, dword [esi + 0x54]
shr eax, 9
and al, 1
mov eax, dword [esi + 0x34]
sete cl
movzx edx, cl
mov ecx, dword [esi + 0x28]
push edx
push eax
call fcn.00480930
mov bl, al
jmp 0x481a8f
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx + 0x78]
and edx, 0x400
je 0x481a8f
mov eax, dword [esi + 0x54]
shr eax, 9
and al, 1
mov eax, dword [esi + 0x34]
sete cl
movzx edx, cl
mov ecx, dword [esi + 0x28]
push edx
push eax
call fcn.00480930
mov bl, al
test bl, bl
je 0x481a60
mov ecx, dword [esp + 0x1c]
mov byte [ecx], 1
test bl, bl
je 0x481aa8
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x70]
mov dword [esi + 0x4c], edx
mov dword [esi + 0x50], eax
jmp 0x481afc
or edi, 0xffffffff
add dword [esi + 0x4c], edi
js 0x481abe
mov ecx, dword [esi + 0x28]
mov edx, dword [ecx + 0x78]
and edx, 0x200
jne 0x481ad0
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 8]
mov ecx, esi
call edx
mov eax, dword [esi + 0x28]
and dword [eax + 0x78], 0xfffffdff
mov eax, dword [esi + 0x28]
mov byte [eax + 0x62b], 0
mov ecx, dword [esi + 0x30]
push 0
push ecx
mov ecx, dword [esi + 0x28]
call fcn.00512270
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], edi
call ebp
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x28]
mov edx, dword [eax + 0x4e8]
lea ecx, [eax + 0x4e8]
mov eax, dword [edx + 0x10]
call eax
and dword [esi + 0x40], 0xfffffffb
pop edi
pop ebp
mov al, bl
pop ebx
pop esi
ret 0xc