Function at 0x631de0
Capabilities:
Check for time delay via gettickcount
Get socket status

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x374
push ebx
push esi
push edi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp + 8]
mov edx, dword [esi + 0xc]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x6c]
xor edi, edi
push ecx
push edx
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x74], edi
mov dword [esp + 0x284], edi
mov dword [esp + 0x17c], edi
call fcn.00629290
fldz
mov esi, dword [esi]
fld st(0)
add esp, 0xc
fst qword [esp + 0x58]
mov dword [esp + 0x4c], edi
cmp esi, edi
je 0x631f4e
mov ecx, dword [esi + 0x10]
mov ebx, dword [esi]
cmp ecx, 0xffffffff
je 0x631ec1
mov eax, dword [esi + 0x78]
inc dword [esp + 0x4c]
test al, al
js 0x631e7a
mov edx, dword [esi + 0x30]
cmp edx, dword [esi + 0x28]
jae 0x631e7a
test al, 2
je 0x631e67
cmp dword [esi + 8], 0
jne 0x631e7a
lea eax, [esp + 0x48]
push eax
lea edx, [esp + 0x6c]
push edx
push ecx
call fcn.00629290
add esp, 0xc
mov eax, dword [esi + 0x78]
mov ecx, eax
and ecx, 8
je 0x631e88
test al, 0x40
je 0x631e92
cmp dword [esi + 0x3c], 0
jbe 0x631ec1
test ecx, ecx
jne 0x631ec1
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x48]
push eax
lea ecx, [esp + 0x27c]
push ecx
push edx
call fcn.00629290
mov edx, dword [esi + 0x10]
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0x180]
push ecx
push edx
call fcn.00629290
add esp, 0x18
fxch st(1)
fcom qword [esi + 0x50]
fnstsw ax
test ah, 5
jp 0x631eed
test edi, edi
je 0x631ee5
fxch st(1)
fcom qword [esi + 0x50]
fnstsw ax
test ah, 0x41
jne 0x631ee2
fstp st(0)
fld qword [esi + 0x50]
inc edi
jmp 0x631eef
fstp st(1)
inc edi
fld qword [esi + 0x50]
jmp 0x631eef
fxch st(1)
mov esi, ebx
test ebx, ebx
jne 0x631e40
fstp st(1)
fstp qword [esp + 0x58]
test edi, edi
jle 0x631f4a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
test eax, eax
jge 0x631f1b
fadd qword [0x802c48]
fld qword [0x802c40]
fdiv st(1), st(0)
fld qword [esp + 0x58]
fsubrp st(2)
fmulp st(1)
fadd qword [0x802760]
fild dword [ebp + 0xc]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x631f48
call fcn.0072a720
mov esi, eax
xor edi, edi
jmp 0x631f55
fstp st(0)
xor edi, edi
jmp 0x631f52
fstp st(0)
fstp st(0)
mov esi, dword [ebp + 0xc]
cmp esi, edi
jge 0x631f5b
xor esi, esi
mov eax, 0x10624dd3
imul esi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x60], eax
imul eax, eax, 0x3e8
mov ecx, esi
sub ecx, eax
imul ecx, ecx, 0x3e8
lea edx, [esp + 0x60]
push edx
lea eax, [esp + 0x174]
push eax
mov eax, dword [esp + 0x50]
mov dword [esp + 0x6c], ecx
lea ecx, [esp + 0x280]
push ecx
lea edx, [esp + 0x74]
push edx
inc eax
push eax
call dword [sym.imp.WS2_32.dll_select]
mov ebx, eax
mov dword [esp + 0x48], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x50], eax
fild dword [esp + 0x50]
test eax, eax
jge 0x631fc8
fadd qword [0x802c48]
cmp dword [0x8a03ec], 4
fdiv qword [0x802c40]
fstp qword [esp + 0x50]
jl 0x632022
mov eax, dword [0x8a03f0]
test eax, eax
jne 0x631ff1
call fcn.0072fac4
add eax, 0x40
mov dword [0x8a03f0], eax
push str..HttpServermongoose.c:3210
push str.__20s
push eax
call fcn.0072b89e
fld qword [esp + 0x5c]
mov ecx, dword [esp + 0x58]
add esp, 0xc
push esi
push ecx
push ebx
call fcn.0072a720
push eax
push str.select____ld_num_ev_d_of__d__timeout_d
call fcn.00625d90
add esp, 0x14
test ebx, ebx
jle 0x632045
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
cmp eax, 0xffffffff
je 0x632045
lea edx, [esp + 0x68]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x632045
call fcn.00629190
mov eax, dword [ebp + 8]
mov edi, dword [eax]
test edi, edi
je 0x6320de
mov ecx, dword [edi + 0x10]
xor eax, eax
cmp ecx, 0xffffffff
je 0x6320be
test ebx, ebx
jle 0x6320be
lea edx, [esp + 0x68]
push edx
push ecx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x632082
test byte [edi + 0x78], 2
je 0x63207b
cmp dword [edi + 8], 0
jne 0x632082
mov ebx, 1
jmp 0x632084
xor ebx, ebx
mov ecx, dword [edi + 0x10]
lea eax, [esp + 0x170]
push eax
push ecx
call sub.WS2_32.dll___WSAFDIsSet
mov esi, eax
mov eax, dword [edi + 0x10]
lea edx, [esp + 0x278]
neg esi
push edx
sbb esi, esi
push eax
and esi, 4
call sub.WS2_32.dll___WSAFDIsSet
neg eax
sbb eax, eax
and eax, 2
or eax, ebx
mov ebx, dword [esp + 0x48]
or eax, esi
fld qword [esp + 0x50]
mov esi, dword [edi]
sub esp, 8
fstp qword [esp]
push eax
push edi
call fcn.00631be0
add esp, 0x10
mov edi, esi
test esi, esi
jne 0x632052
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
test eax, eax
je 0x63211a
jmp 0x6320f0
mov ecx, dword [eax + 0x78]
mov esi, dword [eax]
test ecx, 0x800
jne 0x63210b
cmp dword [eax + 0x3c], 0
jne 0x632114
test ecx, 0x400
je 0x632114
push eax
call fcn.0062c7f0
add esp, 4
mov eax, esi
test esi, esi
jne 0x6320f0
fld qword [esp + 0x50]
call fcn.0072a756
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret