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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x34c
xor eax, eax
cmp dword [ebp + 0x14], eax
push ebx
push esi
push edi
mov dword [esp + 0x30], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x28], eax
je 0x4082a6
mov dword [esp + 0x2c], 1
mov ebx, dword [ebp + 0x10]
cmp ebx, eax
je 0x408342
lea edi, [ebx + 0x104]
mov ecx, edi
mov dword [esp + 0x24], 1
mov dword [ebx], eax
call fcn.00401c50
mov ecx, edi
mov esi, eax
call fcn.00401e50
shr eax, 2
je 0x408342
mov dword [esp + 0x14], eax
lea ebx, [ebx]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x408338
test ecx, ecx
je 0x408338
call fcn.00407550
test eax, eax
je 0x408338
mov ecx, dword [esi]
push 1
call fcn.00407a80
mov edx, dword [ebx]
xor eax, eax
test edx, edx
jbe 0x40831e
mov ecx, dword [esi]
mov edi, dword [ecx + 0xc]
lea ecx, [ebx + 4]
lea ecx, [ecx]
cmp dword [ecx], edi
je 0x40831e
add eax, 1
add ecx, 4
cmp eax, edx
jb 0x408310
cmp eax, edx
jne 0x408333
cmp edx, 0x40
jae 0x408333
mov edx, dword [esi]
mov ecx, dword [edx + 0xc]
mov dword [ebx + eax*4 + 4], ecx
add dword [ebx], 1
add dword [esp + 0x1c], 1
add esi, 4
sub dword [esp + 0x14], 1
jne 0x4082e0
cmp dword [ebp + 0xc], 0
je 0x4083ee
mov edi, dword [ebp + 0xc]
mov dword [edi], 0
add edi, 0x104
mov ecx, edi
mov dword [esp + 0x30], 1
call fcn.00401c50
mov ecx, edi
mov esi, eax
call fcn.00401e50
shr eax, 2
je 0x4083ee
mov dword [esp + 0x14], eax
lea esp, [esp]
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x4083e4
test ecx, ecx
je 0x4083e4
call fcn.004074a0
test eax, eax
je 0x4083e4
mov ecx, dword [esi]
push 1
call fcn.00407a80
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
xor eax, eax
test edx, edx
jbe 0x4083c7
mov ecx, dword [esi]
mov edi, dword [ecx + 0xc]
mov ecx, dword [ebp + 0xc]
add ecx, 4
cmp dword [ecx], edi
je 0x4083c7
mov ebx, dword [ebp + 0xc]
add eax, 1
add ecx, 4
cmp eax, dword [ebx]
mov ebx, dword [ebp + 0x10]
jb 0x4083b3
cmp eax, edx
jne 0x4083df
cmp edx, 0x40
jae 0x4083df
mov edx, dword [esi]
mov edx, dword [edx + 0xc]
mov ecx, dword [ebp + 0xc]
mov dword [ecx + eax*4 + 4], edx
add dword [ecx], 1
add dword [esp + 0x10], 1
add esi, 4
sub dword [esp + 0x14], 1
jne 0x408380
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
lea eax, [edx + ecx]
test eax, eax
jle 0x408439
cmp dword [esp + 0x30], 0
je 0x408411
test ecx, ecx
jne 0x408411
mov ecx, dword [ebp + 0xc]
mov dword [ecx], 0
cmp dword [esp + 0x24], 0
je 0x40841e
test edx, edx
jne 0x40841e
mov dword [ebx], edx
cmp dword [esp + 0x2c], 0
je 0x408c1a
mov edx, dword [ebp + 0x14]
mov dword [edx], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x30], 0
jne 0x408457
cmp dword [esp + 0x24], 0
jne 0x408457
cmp dword [esp + 0x2c], 0
jne 0x408457
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebp + 0x18]
test edi, edi
jne 0x40846b
or eax, 0xffffffff
mov dword [esp + 0x18], eax
mov dword [esp + 0x34], eax
jmp 0x4084a3
mov ecx, dword [edi + 4]
mov eax, 0x10624dd3
imul ecx
mov eax, dword [edi]
imul eax, eax, 0x3e8
sar edx, 6
mov esi, edx
shr esi, 0x1f
add esi, edx
add esi, eax
mov dword [esp + 0x34], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add eax, esi
mov dword [esp + 0x18], eax
jmp 0x4084a3
mov ebx, dword [ebp + 0x10]
xor eax, eax
cmp dword [esp + 0x2c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x148], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
je 0x4084cf
mov esi, dword [ebp + 0x14]
mov ecx, 0x41
lea edi, [esp + 0x250]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x24], eax
je 0x4085f2
lea esi, [ebx + 0x104]
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov edi, eax
call fcn.00401e50
shr eax, 2
je 0x4085f2
mov ebx, dword [esp + 0x14]
mov esi, eax
mov ecx, dword [edi]
cmp ecx, 0xffffffff
je 0x4085e2
test ecx, ecx
je 0x4085e2
call fcn.004075e0
test eax, eax
je 0x40853f
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
jbe 0x40856d
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
lea esp, [esp]
cmp dword [esp + eax*4 + 0x44], edx
je 0x40856d
add eax, 1
cmp eax, ecx
jb 0x408530
jmp 0x40856d
mov ecx, dword [edi]
push 1
call fcn.00407a80
cmp eax, 0xfffffffc
jne 0x408589
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
jbe 0x40856d
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
lea esp, [esp]
cmp dword [esp + eax*4 + 0x44], edx
je 0x40856d
add eax, 1
cmp eax, ecx
jb 0x408560
cmp eax, ecx
jne 0x408584
cmp ecx, 0x40
jae 0x408584
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov dword [esp + eax*4 + 0x44], edx
add dword [esp + 0x40], 1
add ebx, 1
jmp 0x4085e2
cmp eax, 0xfffffffd
jne 0x4085d4
mov ecx, dword [esp + 0x148]
xor eax, eax
test ecx, ecx
jbe 0x4085b0
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
cmp dword [esp + eax*4 + 0x14c], edx
je 0x4085b0
add eax, 1
cmp eax, ecx
jb 0x4085a0
cmp eax, ecx
jne 0x4085cd
cmp ecx, 0x40
jae 0x4085cd
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov dword [esp + eax*4 + 0x14c], edx
add dword [esp + 0x148], 1
add dword [esp + 0x20], 1
jmp 0x4085e2
cmp eax, 0xffffffff
je 0x4085dd
test eax, eax
jne 0x4085e2
add dword [esp + 0x1c], 1
add edi, 4
sub esi, 1
jne 0x4084fe
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x30], 0
je 0x408723
mov esi, dword [ebp + 0xc]
add esi, 0x104
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov edi, eax
call fcn.00401e50
shr eax, 2
je 0x408723
mov ebx, dword [esp + 0x10]
mov esi, eax
mov ecx, dword [edi]
cmp ecx, 0xffffffff
je 0x408711
test ecx, ecx
je 0x408711
call fcn.004075a0
test eax, eax
je 0x408676
mov ecx, dword [esp + 0x148]
xor eax, eax
test ecx, ecx
jbe 0x4086e5
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
jmp 0x408660
cmp dword [esp + eax*4 + 0x14c], edx
je 0x4086e5
add eax, 1
cmp eax, ecx
jb 0x408660
jmp 0x4086e5
mov ecx, dword [edi]
push 1
call fcn.00407a80
cmp eax, 0xfffffffc
jne 0x4086be
mov ecx, dword [esp + 0x40]
xor eax, eax
test ecx, ecx
jbe 0x4086a0
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
cmp dword [esp + eax*4 + 0x44], edx
je 0x4086a0
add eax, 1
cmp eax, ecx
jb 0x408693
cmp eax, ecx
jne 0x4086b7
cmp ecx, 0x40
jae 0x4086b7
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov dword [esp + eax*4 + 0x44], edx
add dword [esp + 0x40], 1
add dword [esp + 0x14], 1
jmp 0x408711
cmp eax, 0xfffffffd
jne 0x408709
mov ecx, dword [esp + 0x148]
xor eax, eax
test ecx, ecx
jbe 0x4086e5
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
cmp dword [esp + eax*4 + 0x14c], edx
je 0x4086e5
add eax, 1
cmp eax, ecx
jb 0x4086d5
cmp eax, ecx
jne 0x408702
cmp ecx, 0x40
jae 0x408702
mov ecx, dword [edi]
mov edx, dword [ecx + 0xc]
mov dword [esp + eax*4 + 0x14c], edx
add dword [esp + 0x148], 1
add dword [esp + 0x20], 1
jmp 0x408711
cmp eax, 0xffffffff
jl 0x408711
add ebx, 1
add edi, 4
sub esi, 1
jne 0x408625
mov dword [esp + 0x10], ebx
jmp 0x408727
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add eax, ecx
add eax, ebx
test eax, eax
jg 0x408a54
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x2c]
lea edx, [ecx + eax]
add edx, esi
je 0x408a1e
cmp dword [esp + 0x34], 0x64
jbe 0x40876b
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0x186a0
jmp 0x40877b
mov edx, dword [ebp + 0x18]
mov edi, dword [edx]
mov edx, dword [edx + 4]
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], edx
lea edx, [esp + 0x38]
push edx
mov edx, esi
neg edx
sbb edx, edx
lea edi, [esp + 0x254]
and edx, edi
neg ecx
push edx
sbb ecx, ecx
lea edx, [esp + 0x48]
and ecx, edx
push ecx
neg eax
sbb eax, eax
lea ecx, [esp + 0x154]
and eax, ecx
push eax
push 0
call dword [sym.imp.WS2_32.dll_select]
test eax, eax
mov dword [esp + 0xc], eax
jl 0x408c1a
je 0x408a26
test esi, esi
je 0x40883f
mov esi, dword [ebp + 0x14]
add esi, 0x104
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov ebx, eax
call fcn.00401e50
mov edi, eax
shr edi, 2
mov esi, 0
je 0x408827
lea esp, [esp]
mov eax, dword [ebx + esi*4]
cmp eax, 0xffffffff
je 0x408820
test eax, eax
je 0x408820
mov eax, dword [eax + 0xc]
lea edx, [esp + 0x250]
push edx
push eax
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x408820
mov eax, 1
add dword [esp + 0x28], eax
sub dword [esp + 0xc], eax
je 0x408827
add esi, 1
cmp esi, edi
jb 0x4087f0
cmp dword [esp + 0x28], 0
jle 0x40883f
mov edi, dword [ebp + 0x14]
mov ecx, 0x41
lea esi, [esp + 0x250]
rep movsd dword es:[edi], dword [esi]
cmp dword [esp + 0x24], 0
je 0x408930
cmp dword [esp + 0x14], 0
jle 0x408930
cmp dword [esp + 0xc], 0
jle 0x408930
mov esi, dword [ebp + 0x10]
add esi, 0x104
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov edi, eax
call fcn.00401e50
mov ebx, eax
shr ebx, 2
mov esi, 0
je 0x408930
lea esp, [esp]
mov eax, dword [edi + esi*4]
cmp eax, 0xffffffff
je 0x408925
test eax, eax
je 0x408925
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x40]
push ecx
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
mov ecx, dword [edi + esi*4]
je 0x4088eb
call fcn.004075e0
test eax, eax
mov ecx, dword [edi + esi*4]
je 0x4088d1
call fcn.00405a80
add dword [esp + 0x1c], 1
jmp 0x40891e
push 1
call fcn.00407a80
mov ecx, dword [edi + esi*4]
call fcn.004074a0
test eax, eax
je 0x40891e
add dword [esp + 0x10], 1
jmp 0x40891e
mov edx, dword [ecx + 0xc]
lea eax, [esp + 0x148]
push eax
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x408925
mov ecx, dword [edi + esi*4]
call fcn.004075a0
test eax, eax
jne 0x40891e
mov ecx, dword [edi + esi*4]
call fcn.00407460
mov ecx, dword [edi + esi*4]
push 1
call fcn.00407a80
sub dword [esp + 0xc], 1
je 0x408930
add esi, 1
cmp esi, ebx
jb 0x408890
cmp dword [esp + 0x30], 0
je 0x408a0c
cmp dword [esp + 0x20], 0
jle 0x408a0c
cmp dword [esp + 0xc], 0
jle 0x408a0c
mov esi, dword [ebp + 0xc]
add esi, 0x104
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov edi, eax
call fcn.00401e50
mov ebx, eax
shr ebx, 2
mov esi, 0
je 0x408a0c
lea ebx, [ebx]
mov eax, dword [edi + esi*4]
cmp eax, 0xffffffff
je 0x408a01
test eax, eax
je 0x408a01
mov edx, dword [eax + 0xc]
lea ecx, [esp + 0x148]
push ecx
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
mov ecx, dword [edi + esi*4]
je 0x4089d2
call fcn.004075a0
test eax, eax
jne 0x4089cb
mov ecx, dword [edi + esi*4]
call fcn.00407460
mov ecx, dword [edi + esi*4]
push 1
call fcn.00407a80
mov ecx, dword [edi + esi*4]
call fcn.004074a0
test eax, eax
je 0x4089fa
add dword [esp + 0x10], 1
jmp 0x4089fa
mov edx, dword [ecx + 0xc]
lea eax, [esp + 0x40]
push eax
push edx
call sub.WS2_32.dll___WSAFDIsSet
test eax, eax
je 0x408a01
mov ecx, dword [edi + esi*4]
call fcn.004075e0
test eax, eax
jne 0x4089fa
mov ecx, dword [edi + esi*4]
push 1
call fcn.00407a80
sub dword [esp + 0xc], 1
je 0x408a0c
add esi, 1
cmp esi, ebx
jb 0x408980
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
add eax, ecx
add eax, dword [esp + 0x10]
test eax, eax
jg 0x408a54
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esi, dword [esp + 0x18]
cmp esi, 0xffffffff
je 0x4084a0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp esi, eax
jae 0x4084a0
mov dword [esp + 0xc], 0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esp + 0x2c], 0
mov dword [esp + 0xc], 0
je 0x408af2
cmp dword [esp + 0x28], 0
mov edi, dword [ebp + 0x14]
jne 0x408a77
mov dword [edi], 0
lea esi, [edi + 0x104]
mov ecx, esi
call fcn.00401c50
mov ecx, esi
mov ebx, eax
call fcn.00401e50
shr eax, 2
je 0x408af2
mov dword [esp + 0x18], eax
mov ecx, dword [ebx]
cmp ecx, 0xffffffff
je 0x408ae8
test ecx, ecx
je 0x408ae8
call fcn.00407620
test eax, eax
je 0x408ae8
mov esi, dword [edi]
xor eax, eax
test esi, esi
jbe 0x408ace
mov edx, dword [ebx]
mov edx, dword [edx + 0xc]
lea ecx, [edi + 4]
lea ebx, [ebx]
cmp dword [ecx], edx
je 0x408ace
add eax, 1
add ecx, 4
cmp eax, esi
jb 0x408ac0
cmp eax, esi
jne 0x408ae3
cmp esi, 0x40
jae 0x408ae3
mov ecx, dword [ebx]
mov edx, dword [ecx + 0xc]
mov dword [edi + eax*4 + 4], edx
add dword [edi], 1
add dword [esp + 0xc], 1
add ebx, 4
sub dword [esp + 0x18], 1
jne 0x408a96
cmp dword [esp + 0x24], 0
je 0x408b8a
mov edi, dword [ebp + 0x10]
lea esi, [edi + 0x104]
mov ecx, esi
mov dword [edi], 0
call fcn.00401c50
mov ecx, esi
mov ebx, eax
call fcn.00401e50
shr eax, 2
je 0x408b8a
mov dword [esp + 0x18], ebx
mov dword [esp + 0x34], eax
mov ecx, 1
mov edi, edi
mov edx, dword [ebx]
cmp edx, 0xffffffff
je 0x408b79
test edx, edx
je 0x408b79
mov ebx, dword [edi]
xor eax, eax
test ebx, ebx
jbe 0x408b63
mov esi, dword [edx + 0xc]
lea ecx, [edi + 4]
lea esp, [esp]
cmp dword [ecx], esi
je 0x408b5e
add eax, 1
add ecx, 4
cmp eax, ebx
jb 0x408b50
mov ecx, 1
cmp eax, ebx
jne 0x408b75
cmp ebx, 0x40
jae 0x408b75
mov edx, dword [edx + 0xc]
mov dword [edi + eax*4 + 4], edx
add dword [edi], ecx
add dword [esp + 0xc], ecx
mov ebx, dword [esp + 0x18]
add ebx, 4
sub dword [esp + 0x34], ecx
mov dword [esp + 0x18], ebx
jne 0x408b30
cmp dword [esp + 0x30], 0
je 0x408c16
mov edi, dword [ebp + 0xc]
lea esi, [edi + 0x104]
mov ecx, esi
mov dword [edi], 0
call fcn.00401c50
mov ecx, esi
mov ebx, eax
call fcn.00401e50
shr eax, 2
je 0x408c16
mov dword [esp + 0x18], eax
lea ecx, [ecx]
mov ecx, dword [ebx]
cmp ecx, 0xffffffff
je 0x408c0c
test ecx, ecx
je 0x408c0c
call fcn.004074a0
test eax, eax
je 0x408c0c
mov esi, dword [edi]
xor eax, eax
test esi, esi
jbe 0x408bf2
mov ecx, dword [ebx]
mov edx, dword [ecx + 0xc]
lea ecx, [edi + 4]
cmp dword [ecx], edx
je 0x408bf2
add eax, 1
add ecx, 4
cmp eax, esi
jb 0x408be4
cmp eax, esi
jne 0x408c07
cmp esi, 0x40
jae 0x408c07
mov edx, dword [ebx]
mov ecx, dword [edx + 0xc]
mov dword [edi + eax*4 + 4], ecx
add dword [edi], 1
add dword [esp + 0xc], 1
add ebx, 4
sub dword [esp + 0x18], 1
jne 0x408bc0
mov eax, dword [esp + 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret