Function at 0x517940
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5ab9b0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
push ebx
push esi
mov esi, ecx
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov eax, dword [esi + 0x140]
mov ecx, dword [esi + 0x144]
or eax, ecx
mov dword [ebp - 0x68], esi
mov dword [ebp - 4], ebx
jne 0x517a77
mov al, byte [esi + 0x7e0]
test al, al
jne 0x517a77
mov ecx, dword [esi + 0x12c]
mov eax, 1
cmp ecx, eax
jle 0x517a77
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx + 0x14f]
test dl, dl
je 0x517a77
mov edx, dword [esi + 0x1cc]
mov dword [edx + 0x333c], eax
mov eax, dword [esi + 0x1cc]
mov dword [eax + 0x3320], ebx
mov dword [eax + 0x3324], ebx
mov ecx, dword [esi + 0x1cc]
mov dword [ecx + 0x3308], ebx
mov dword [ecx + 0x330c], ebx
mov edx, dword [esi + 0x1cc]
mov byte [edx + 0x63bb], 1
mov eax, dword [esi + 0x1cc]
mov edx, dword [eax + 0x32e8]
lea ecx, [eax + 0x32e8]
add eax, 0x63ac
push eax
call dword [edx + 0x10]
mov eax, dword [esi + 0x3d4]
cmp eax, 0x80
jae 0x517a39
mov ecx, dword [esi + 0x1cc]
mov edx, dword [ecx + 0x63ac]
mov dword [esi + eax*4 + 0x3d8], edx
mov eax, dword [esi + 0x3d4]
inc eax
mov dword [esi + 0x3d4], eax
mov eax, dword [esi + 0x5d8]
cmp eax, 0x80
jae 0x517a66
mov ecx, dword [esi + 0x1cc]
mov edx, dword [ecx + 0x63ac]
mov dword [esi + eax*4 + 0x5dc], edx
mov eax, dword [esi + 0x5d8]
inc eax
mov dword [esi + 0x5d8], eax
mov eax, 2
mov dword [esi + 0x138], eax
mov dword [esi + 0x130], eax
mov eax, dword [0x6623bc]
push 1
push eax
mov ecx, esi
call fcn.00535de0
mov ecx, esi
call fcn.00536820
mov ecx, esi
call fcn.00536f40
mov eax, dword [esi + 0x13c]
mov ecx, dword [esi + 0x148]
mov edx, dword [esi + 0x14c]
add eax, 0xfffffffb
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov dword [esi + 0x13c], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x34], edx
call fcn.00536040
lea eax, [ebp - 0xac]
mov dword [ebp - 0x5c], 3
push eax
mov dword [ebp - 0x58], ebx
call fcn.0056c17c
lea ecx, [ebp - 0x74]
push ecx
call fcn.0056c17c
add esp, 8
xor edi, edi
xor edx, edx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov byte [ebp - 0x11], 1
xor ecx, ecx
cmp ecx, dword [esi + 0x130]
jge 0x517b48
lea eax, [ecx + ecx*4]
mov ebx, dword [esi + 0x1cc]
lea eax, [eax + eax*8]
lea eax, [ecx + eax*4]
lea eax, [eax + eax*8]
lea eax, [ebx + eax*8]
xor ebx, ebx
cmp dword [eax + 0x54], ebx
je 0x517b45
inc edx
cmp dword [eax + 0x2b8], ebx
jg 0x517b3f
mov ebx, dword [eax + 0x80]
cmp dword [ebx + 0x24], 2
jne 0x517b43
xor ebx, ebx
cmp dword [eax + 0x32dc], ebx
ja 0x517b3f
cmp byte [eax + 0x32e0], bl
je 0x517b45
inc edi
inc ecx
jmp 0x517af4
xor ebx, ebx
inc ecx
jmp 0x517af4
cmp edi, 1
jne 0x517b58
cmp edx, edi
jne 0x517b58
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x5c], edi
cmp dword [esi + 0x38], ebx
je 0x517bbb
lea ecx, [esi + 0x48]
call fcn.004f5d10
mov ecx, dword [esi + 0x140]
mov edx, dword [esi + 0x144]
lea eax, [esi + 0x20]
mov dword [esi + 0x30], ebx
push eax
push 0x1389
mov dword [eax], ecx
mov ecx, dword [esi + 0x148]
mov dword [eax + 4], edx
mov edx, dword [esi + 0x14c]
mov eax, dword [esi + 0x10]
mov dword [esi + 0x28], ecx
mov dword [esi + 0x2c], edx
push 0x111
mov ecx, dword [eax]
push ecx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.00535cf0
test al, al
mov byte [ebp - 0x3c], al
je 0x517bea
lea edx, [ebp - 0xa0]
push edx
call fcn.0056c17c
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x14c]
add esp, 4
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], ecx
mov al, byte [ebp - 0x11]
test al, al
je 0x517c14
lea edx, [ebp - 0x5c]
lea eax, [esi + 0x5d8]
push edx
lea ecx, [esi + 0x3d4]
push eax
lea edx, [esi + 0x1d0]
push ecx
push edx
push ebx
call sub.WSOCK32.dll_select
mov edi, eax
jmp 0x517c24
mov edi, 1
mov dword [ebp - 0x5c], 3
mov byte [ebp - 0x11], 1
cmp dword [esi + 0x38], ebx
je 0x517c47
lea ecx, [esi + 0x48]
call fcn.004f5d10
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x148]
mov ecx, dword [esi + 0x14c]
or eax, ecx
jne 0x517c8c
lea eax, [ebp - 0x74]
push eax
call fcn.0056c17c
mov ecx, dword [ebp - 0x74]
mov edx, dword [ebp - 0xac]
sub ecx, edx
add esp, 4
cmp ecx, 0x12c
jle 0x517c8c
mov eax, 0x7532
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x148]
mov eax, dword [esi + 0x14c]
cmp edi, 0xffffffff
mov dword [ebp - 0x54], edx
mov dword [ebp - 0x50], eax
je 0x517cf9
cmp edi, ebx
je 0x517cf9
xor edi, edi
cmp edi, dword [esi + 0x130]
jge 0x517d00
lea eax, [edi + edi*4]
lea ecx, [eax + eax*8]
lea eax, [edi + ecx*4]
lea edx, [eax + eax*8]
mov eax, dword [esi + 0x1cc]
lea ecx, [eax + edx*8]
mov eax, dword [eax + edx*8 + 0x54]
cmp eax, ebx
je 0x517cf6
cmp dword [esi + 0x38], ebx
je 0x517cf1
lea ecx, [esi + 0x48]
call fcn.004f5d10
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.005108d0
inc edi
jmp 0x517ca9
mov ecx, esi
call fcn.00518940
mov ecx, dword [ebp - 0x3c]
push ecx
push ebx
mov ecx, esi
call fcn.00536110
lea edx, [ebp - 0x80]
push edx
call fcn.0056c17c
mov ecx, dword [ebp - 0x80]
mov edi, dword [ebp - 0x74]
mov eax, ecx
add esp, 4
sub eax, edi
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov edx, eax
mov eax, dword [ebp - 0x70]
and eax, 0xffff
sub edx, eax
mov eax, dword [ebp - 0x7c]
mov edi, eax
and edi, 0xffff
add edx, edi
cmp edx, 0xfa
jl 0x517dcc
lea ecx, [ebp - 0x74]
push ecx
call fcn.0056c17c
add esp, 4
xor ebx, ebx
cmp ebx, dword [esi + 0x130]
jge 0x517dc6
lea eax, [ebx + ebx*4]
mov ecx, dword [esi + 0x1cc]
lea edx, [eax + eax*8]
lea eax, [ebx + edx*4]
lea eax, [eax + eax*8]
lea edi, [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 0x54]
test eax, eax
je 0x517dc3
mov edx, dword [edi + 0x70]
mov eax, dword [edx]
cmp dword [eax], 0
je 0x517dc3
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
or ecx, eax
je 0x517dc3
lea eax, [edi + 0x2d0]
mov ecx, edi
push eax
call fcn.004f9320
mov edx, dword [edi + 0x70]
lea eax, [edi + 0x2d0]
push eax
push 0x13ef
mov eax, dword [edx]
push 0x111
mov ecx, dword [eax]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x517d5d
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
mov edx, dword [esi + 0x40]
xor ebx, ebx
cmp edx, ebx
jne 0x517f7f
mov edi, dword [esi + 0x14c]
mov edx, dword [esi + 0x148]
cmp dword [ebp - 0x34], edi
jg 0x517f7f
jl 0x517df9
cmp dword [ebp - 0x38], edx
jae 0x517f7f
cmp dword [ebp - 0x54], edx
jne 0x517f7f
cmp dword [ebp - 0x50], edi
jne 0x517f7f
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
or edx, edi
lea ecx, [ecx + ecx*4]
jne 0x517e32
lea ecx, [ecx + ecx*4]
and eax, 0xffff
lea eax, [eax + ecx*8]
cdq
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
jmp 0x517f85
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0xc]
and eax, 0xffff
fld qword [ecx + 0x3c0]
fsqrt
lea eax, [eax + edx*8]
cdq
mov ebx, eax
mov edi, edx
fmul qword [0x5d86c0]
fadd qword [ecx + 0x3b0]
fcom qword [ecx + 0x3d0]
fnstsw ax
test ah, 1
je 0x517e6b
fstp qword [ebp - 0x64]
jmp 0x517e7f
mov eax, dword [ecx + 0x3d0]
mov edx, dword [ecx + 0x3d4]
fstp st(0)
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
fld qword [ecx + 0x3b8]
fsqrt
fmul qword [0x5d86c0]
fadd qword [ecx + 0x3a8]
fcom qword [ecx + 0x3c8]
fnstsw ax
test ah, 1
jne 0x517ea8
fstp st(0)
fld qword [ecx + 0x3c8]
fld qword [ebp - 0x64]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x517eb9
fstp st(0)
fld qword [ebp - 0x64]
fmul qword [0x5d8e10]
fadd qword [0x5d8e08]
call fcn.0056afb4
mov ecx, dword [ebp - 0x28]
sub ebx, ecx
mov ecx, dword [ebp - 0x24]
sbb edi, ecx
cmp edi, edx
jl 0x517f85
jg 0x517ee6
cmp ebx, eax
jbe 0x517f85
xor edi, edi
mov ecx, esi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], edi
call fcn.00543eb0
cmp eax, edi
je 0x517f87
cmp dword [esi + 0x38], edi
je 0x517f18
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x1cc]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esi + 0x1cc]
call fcn.005141b0
mov ecx, dword [esi + 0x1cc]
mov edx, dword [ecx]
lea eax, [ecx + 0x30c4]
push eax
call dword [edx + 0x10]
cmp eax, edi
jne 0x51873b
mov ecx, dword [esi + 0x1cc]
push edi
call fcn.0050bb80
cmp eax, edi
jne 0x51873b
mov ecx, dword [esi + 0x148]
mov eax, dword [0x6623bc]
mov edx, dword [esi + 0x14c]
mov dword [ebp - 0x38], ecx
push 1
push eax
mov ecx, esi
mov dword [ebp - 0x34], edx
call fcn.00535de0
jmp 0x517f87
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
xor edi, edi
mov ecx, dword [esi + 0xc]
mov ebx, 2
cmp dword [ecx + 0xb0], ebx
jne 0x5182f3
mov edx, dword [esi + 0x144]
mov eax, dword [esi + 0x140]
cmp edx, edi
jl 0x517fcf
jg 0x517fb2
cmp eax, 0x32
jbe 0x517fcf
mov eax, dword [esi + 0x1cc]
add eax, 0x40
cmp dword [eax + 4], edi
jl 0x5182f3
jg 0x517fcf
cmp dword [eax], 0x32
jb 0x5182f3
call fcn.0054a3a0
mov cl, byte [0x6615dc]
mov dword [ebp - 0x18], eax
test cl, cl
jne 0x517fee
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx + 0x2be]
test dl, dl
jne 0x517ffc
mov cl, byte [esi + 0x7e0]
test cl, cl
je 0x518084
mov edx, dword [esi + 0xc]
cmp dword [edx + 0xb0], ebx
jne 0x51800b
cmp eax, edi
je 0x518084
mov ecx, dword [esi + 0x1cc]
mov eax, dword [ecx]
call dword [eax + 0x18]
lea ecx, [esi + 0x48]
call fcn.004f1070
mov dword [esi + 0x80], edi
mov dword [esi + 0x88], edi
mov dword [esi + 0x148], edi
mov dword [esi + 0x84], edi
mov dword [esi + 0x8c], edi
mov dword [esi + 0x14c], edi
mov al, byte [0x6615dc]
test al, al
jne 0x51806e
mov ecx, dword [esi + 0xc]
mov al, byte [ecx + 0x2be]
test al, al
je 0x51806e
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x756a
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x70], edi
jle 0x5180ff
mov ebx, dword [esi + 0xc]
or ecx, 0xffffffff
xor eax, eax
mov edx, dword [ebx + 0xcc]
mov edi, edx
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5180ff
mov ebx, dword [ebx + 0xbc]
test ebx, ebx
je 0x5180c3
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push edx
call fcn.0056cc60
add esp, 0xc
test eax, eax
je 0x5180ff
mov eax, dword [esi + 0x14]
test eax, eax
je 0x5180e1
mov edx, dword [esi + 0x70]
mov eax, dword [eax]
push edx
push 0x13f8
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0x18]
test eax, eax
je 0x5180ff
mov ecx, dword [esi + 0x70]
mov edx, dword [eax]
push ecx
push 0x13f8
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x5182f3
mov eax, dword [esi + 0xf4]
test eax, eax
jne 0x518296
mov al, byte [0x6615dc]
test al, al
jne 0x518214
mov eax, dword [esi + 0xc]
mov byte [ebp - 0x12], 0
mov edx, dword [eax + 0xbc]
test edx, edx
je 0x518183
mov ebx, dword [eax + 0xe4]
or ecx, 0xffffffff
mov edi, ebx
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x518183
mov edi, edx
mov eax, ebx
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x518176
test cl, cl
je 0x518172
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x518176
add eax, 2
add edi, 2
test cl, cl
jne 0x51814e
xor eax, eax
jmp 0x51817b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x518183
mov byte [ebp - 0x12], 1
mov edi, dword [esi + 0x144]
mov edx, dword [esi + 0x140]
xor ebx, ebx
cmp edi, ebx
jl 0x5181bc
jg 0x51819b
cmp edx, ebx
jbe 0x5181bc
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0xe8]
mov eax, dword [eax + 0xec]
cmp eax, ebx
jl 0x5181bc
jg 0x5181b4
cmp ecx, ebx
jbe 0x5181bc
cmp ecx, edx
jne 0x5181c3
cmp eax, edi
jne 0x5181c3
mov al, byte [ebp - 0x12]
test al, al
je 0x518214
mov eax, dword [esi + 0xc]
push 0x660ff8
lea ecx, [eax + 0xe4]
call fcn.00586cbc
mov eax, dword [esi + 0xc]
push 0x50040
mov dword [eax + 0xe8], ebx
mov dword [eax + 0xec], ebx
mov ecx, dword [esi + 0xc]
mov eax, dword [0x661b6c]
mov edx, dword [ecx + 8]
push edx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x518296
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x518229
mov eax, ecx
jmp 0x51822c
add eax, 0x38
push 0x2e
push eax
call fcn.0056b10e
mov edi, eax
add esp, 8
test edi, edi
je 0x518296
push 0x63dc40
push edi
call fcn.0056cfcc
add esp, 8
test eax, eax
je 0x518296
push 0x63c2b4
push edi
call fcn.0056cfcc
add esp, 8
test eax, eax
je 0x518296
mov ecx, dword [esi + 0xc]
mov eax, dword [0x66233c]
push 0x50004
mov edx, dword [ecx + 8]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x518296
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x3c]
test ecx, ecx
je 0x5182f3
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x5182ab
mov eax, ecx
jmp 0x5182ae
add eax, 0x38
push 0x2e
push eax
call fcn.0056b10e
mov edi, eax
add esp, 8
test edi, edi
je 0x5182f3
push 0x63dc40
push edi
call fcn.0056cfcc
add esp, 8
test eax, eax
je 0x5182f3
push 0x63c2b4
push edi
call fcn.0056cfcc
add esp, 8
test eax, eax
je 0x5182f3
mov ecx, dword [esi + 0xc]
call fcn.0054a460
test eax, eax
jne 0x51873b
mov al, byte [ebp - 0x3c]
test al, al
je 0x518524
mov ecx, dword [esi + 0x14c]
mov eax, dword [esi + 0x148]
test ecx, ecx
jl 0x518524
jg 0x51831f
cmp eax, 0x400
jbe 0x518524
mov ecx, dword [0x661180]
mov ebx, dword [0x661184]
lea edx, [ebp - 0x94]
mov dword [ebp - 0x4c], ecx
push edx
call fcn.0056c17c
mov eax, dword [esi + 0x148]
mov edi, dword [ebp - 0x44]
mov ecx, dword [esi + 0x14c]
mov edx, dword [ebp - 0x40]
add esp, 4
sub eax, edi
sbb ecx, edx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
js 0x518524
jg 0x518369
test eax, eax
jbe 0x518524
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa0]
sub eax, edx
mov ecx, dword [ebp - 0x9c]
mov edx, dword [ebp - 0x90]
and ecx, 0xffff
lea eax, [eax + eax*4]
and edx, 0xffff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
sub eax, ecx
add eax, edx
mov dword [ebp - 0x18], eax
jne 0x5183ab
mov dword [ebp - 0x18], 1
fild qword [ebp - 0x30]
fmul dword [0x5bbd40]
fidiv dword [ebp - 0x18]
call fcn.0056afb4
mov edi, edx
mov ecx, eax
cmp edi, ebx
jl 0x518524
jg 0x5183d3
cmp ecx, dword [ebp - 0x4c]
jbe 0x518524
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 0x18]
sub ecx, edx
cdq
sbb edi, ebx
push edx
push eax
push edi
push ecx
call fcn.0056d280
mov ecx, dword [ebp - 0x4c]
push ebx
push ecx
push edx
push eax
call fcn.0056c820
mov edi, eax
mov eax, dword [esi + 0x150]
cdq
mov dword [ebp - 0x1c], edx
mov edx, dword [ebp - 0x4c]
push 0
push 2
push ebx
push edx
mov dword [ebp - 0x20], eax
call fcn.0056c820
cmp dword [ebp - 0x1c], edx
jg 0x518431
jl 0x51841c
cmp dword [ebp - 0x20], eax
jae 0x518431
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
jmp 0x51845f
mov ecx, dword [ebp - 0x4c]
push 0
push 9
push ebx
push ecx
call fcn.0056d280
push 0
push 0xa
push edx
push eax
call fcn.0056c820
cmp dword [ebp - 0x1c], edx
jg 0x51845f
jl 0x518456
cmp dword [ebp - 0x20], eax
jae 0x51845f
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
cmp edi, 0x2ee0
jle 0x51846e
mov edi, 0x2ee0
jmp 0x518476
test edi, edi
jle 0x518524
mov eax, dword [esi + 0x7dc]
cmp eax, 0xffffffff
je 0x51851d
lea ecx, [esi + 0x1d0]
lea ebx, [esi + 0x5d8]
mov dword [esi + 0x3d4], 0
mov dword [ecx], 0
mov dword [ebx], 0
mov dword [esi + 0x1d4], eax
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov eax, dword [ebx]
cmp eax, 0x80
jae 0x5184cd
mov edx, dword [esi + 0x7dc]
mov dword [esi + eax*4 + 0x5dc], edx
mov eax, dword [ebx]
inc eax
mov dword [ebx], eax
mov eax, 0x10624dd3
imul edi
sar edx, 6
mov eax, edx
shr eax, 0x1f
add edx, eax
mov dword [ebp - 0x88], edx
lea eax, [edx + edx*4]
lea eax, [eax + eax*4]
lea edx, [eax + eax*4]
shl edx, 3
sub edi, edx
lea edx, [ebp - 0x88]
push edx
push ebx
lea eax, [edi + edi*4]
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [ebp - 0x84], eax
lea eax, [esi + 0x3d4]
push eax
push ecx
push 0
call sub.WSOCK32.dll_select
jmp 0x518524
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
call fcn.00518750
mov edi, eax
test edi, edi
jne 0x518546
mov ecx, esi
call fcn.00518a80
mov ecx, esi
call fcn.00536f70
xor ebx, ebx
jmp 0x517b58
mov eax, dword [esi + 0x38]
test eax, eax
je 0x51856b
lea ecx, [esi + 0x48]
call fcn.004f5d10
mov eax, 0x7540
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp edi, 0x753c
je 0x5186ca
cmp edi, 0xffffffff
je 0x5186ca
mov eax, dword [esi + 0x14c]
mov ecx, dword [esi + 0x148]
mov edx, dword [0x6623c0]
push eax
push ecx
lea eax, [ebp - 0x12c]
push edx
push eax
call fcn.0056b4da
add esp, 0x10
lea ecx, [ebp - 0x12c]
push 1
push ecx
mov ecx, esi
call fcn.00535de0
mov eax, dword [esi + 0x148]
mov edx, dword [esi + 0x140]
mov ecx, dword [esi + 0x14c]
mov edi, dword [esi + 0x144]
cmp eax, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x2c], ecx
jne 0x5185df
mov eax, ecx
cmp eax, edi
je 0x518645
mov eax, edx
or eax, edi
je 0x518645
mov ebx, dword [esi + 0xc]
mov eax, edx
mov ecx, edi
mov ebx, dword [ebx + 0x2c4]
mov dword [ebp - 0x30], ebx
add eax, ebx
mov ebx, 0
adc ecx, ebx
mov dword [ebp - 0x50], ecx
mov ecx, dword [ebp - 0x20]
cmp ecx, eax
jne 0x518612
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
je 0x518645
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
add edx, esi
adc edi, ebx
cmp eax, edi
jl 0x518738
jg 0x51862f
cmp dword [ebp - 0x20], edx
jbe 0x518738
mov eax, 0x7570
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
xor ebx, ebx
cmp ebx, dword [esi + 0x130]
jge 0x5186b0
lea eax, [ebx + ebx*4]
mov ecx, dword [esi + 0x1cc]
lea edx, [eax + eax*8]
lea eax, [ebx + edx*4]
lea eax, [eax + eax*8]
lea edi, [ecx + eax*8]
mov eax, dword [ecx + eax*8 + 0x54]
test eax, eax
je 0x5186ad
mov edx, dword [edi + 0x70]
mov eax, dword [edx]
cmp dword [eax], 0
je 0x5186ad
mov ecx, dword [edi + 0x38]
mov eax, dword [edi + 0x3c]
or ecx, eax
je 0x5186ad
lea eax, [edi + 0x2d0]
mov ecx, edi
push eax
call fcn.004f9320
mov edx, dword [edi + 0x70]
lea eax, [edi + 0x2d0]
push eax
push 0x13ef
mov eax, dword [edx]
push 0x111
mov ecx, dword [eax]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x518647
mov ecx, esi
call fcn.00536f70
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x14c]
mov eax, dword [esi + 0x148]
mov ecx, dword [0x6623b4]
push edx
push eax
lea edx, [ebp - 0x12c]
push ecx
push edx
call fcn.0056b4da
add esp, 0x10
lea eax, [ebp - 0x12c]
mov ecx, esi
push 1
push eax
call fcn.00535de0
mov esi, dword [esi + 0xf8]
test esi, esi
je 0x518712
cmp edi, 0x753c
mov eax, esi
je 0x51873b
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
or eax, 0xffffffff
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret