Function at 0x538380
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5d4cf0
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 + 0x150]
mov ecx, dword [esi + 0x154]
or eax, ecx
mov dword [ebp - 0x68], esi
mov dword [ebp - 4], ebx
jne 0x5384b7
mov al, byte [esi + 0x7f0]
test al, al
jne 0x5384b7
mov ecx, dword [esi + 0x13c]
mov eax, 1
cmp ecx, eax
jle 0x5384b7
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx + 0x14f]
test dl, dl
je 0x5384b7
mov edx, dword [esi + 0x1dc]
mov dword [edx + 0x33bc], eax
mov eax, dword [esi + 0x1dc]
mov dword [eax + 0x33a0], ebx
mov dword [eax + 0x33a4], ebx
mov ecx, dword [esi + 0x1dc]
mov dword [ecx + 0x3388], ebx
mov dword [ecx + 0x338c], ebx
mov edx, dword [esi + 0x1dc]
mov byte [edx + 0x643b], 1
mov eax, dword [esi + 0x1dc]
mov edx, dword [eax + 0x3348]
lea ecx, [eax + 0x3348]
add eax, 0x642c
push eax
call dword [edx + 0x10]
mov eax, dword [esi + 0x3e4]
cmp eax, 0x80
jae 0x538479
mov ecx, dword [esi + 0x1dc]
mov edx, dword [ecx + 0x642c]
mov dword [esi + eax*4 + 0x3e8], edx
mov eax, dword [esi + 0x3e4]
inc eax
mov dword [esi + 0x3e4], eax
mov eax, dword [esi + 0x5e8]
cmp eax, 0x80
jae 0x5384a6
mov ecx, dword [esi + 0x1dc]
mov edx, dword [ecx + 0x642c]
mov dword [esi + eax*4 + 0x5ec], edx
mov eax, dword [esi + 0x5e8]
inc eax
mov dword [esi + 0x5e8], eax
mov eax, 2
mov dword [esi + 0x148], eax
mov dword [esi + 0x140], eax
mov eax, dword [0x692acc]
push 1
push eax
mov ecx, esi
call fcn.00559b40
mov ecx, esi
call fcn.0055a5c0
mov ecx, esi
call fcn.0055ace0
mov eax, dword [esi + 0x14c]
mov ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
add eax, 0xfffffffb
mov dword [ebp - 0x38], ecx
mov ecx, esi
mov dword [esi + 0x14c], eax
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x34], edx
call fcn.00559dc0
lea eax, [ebp - 0xac]
mov dword [ebp - 0x5c], 3
push eax
mov dword [ebp - 0x58], ebx
call fcn.00592fdc
lea ecx, [ebp - 0x74]
push ecx
call fcn.00592fdc
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 eax, eax
cmp eax, dword [esi + 0x140]
jge 0x538588
lea ecx, [eax + eax*4]
mov ebx, dword [esi + 0x1dc]
lea ecx, [eax + ecx*8]
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
lea ecx, [ebx + ecx*8]
xor ebx, ebx
cmp dword [ecx + 0x74], ebx
je 0x538585
inc edx
cmp dword [ecx + 0x2dc], ebx
jg 0x53857f
mov ebx, dword [ecx + 0xa0]
cmp dword [ebx + 0x24], 2
jne 0x538583
xor ebx, ebx
cmp dword [ecx + 0x333c], ebx
ja 0x53857f
cmp byte [ecx + 0x3340], bl
je 0x538585
inc edi
inc eax
jmp 0x538534
xor ebx, ebx
inc eax
jmp 0x538534
cmp edi, 1
jne 0x538598
cmp edx, edi
jne 0x538598
mov byte [ebp - 0x11], 0
mov dword [ebp - 0x5c], edi
cmp dword [esi + 0x38], ebx
je 0x5385fb
lea ecx, [esi + 0x48]
call fcn.00511c40
mov edx, dword [esi + 0x150]
mov ecx, dword [esi + 0x154]
lea eax, [esi + 0x20]
mov dword [esi + 0x30], ebx
push eax
push 0x1471
mov dword [eax], edx
mov edx, dword [esi + 0x158]
mov dword [eax + 4], ecx
mov ecx, dword [esi + 0x15c]
mov dword [esi + 0x28], edx
mov edx, dword [esi + 0x10]
mov dword [esi + 0x2c], ecx
push 0x111
mov eax, dword [edx]
push eax
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.005599d0
test al, al
mov byte [ebp - 0x3c], al
je 0x53862a
lea ecx, [ebp - 0xa0]
push ecx
call fcn.00592fdc
mov edx, dword [esi + 0x158]
mov eax, dword [esi + 0x15c]
add esp, 4
mov dword [ebp - 0x44], edx
mov dword [ebp - 0x40], eax
mov al, byte [ebp - 0x11]
test al, al
je 0x538654
lea ecx, [ebp - 0x5c]
lea edx, [esi + 0x5e8]
push ecx
lea eax, [esi + 0x3e4]
push edx
lea ecx, [esi + 0x1e0]
push eax
push ecx
push ebx
call sub.WSOCK32.dll_select
mov edi, eax
jmp 0x538664
mov edi, 1
mov dword [ebp - 0x5c], 3
mov byte [ebp - 0x11], 1
cmp dword [esi + 0x38], ebx
je 0x538687
lea ecx, [esi + 0x48]
call fcn.00511c40
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 + 0x158]
mov ecx, dword [esi + 0x15c]
or eax, ecx
jne 0x5386cb
lea edx, [ebp - 0x74]
push edx
call fcn.00592fdc
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0xac]
sub eax, edx
add esp, 4
cmp eax, 0x12c
jle 0x5386cb
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 ecx, dword [esi + 0x158]
mov edx, dword [esi + 0x15c]
cmp edi, 0xffffffff
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], edx
je 0x538738
cmp edi, ebx
je 0x538738
xor edi, edi
cmp edi, dword [esi + 0x140]
jge 0x53873f
lea eax, [edi + edi*4]
lea eax, [edi + eax*8]
lea ecx, [eax + eax*4]
mov eax, dword [esi + 0x1dc]
lea edx, [edi + ecx*8]
lea ecx, [eax + edx*8]
mov eax, dword [eax + edx*8 + 0x74]
cmp eax, ebx
je 0x538735
cmp dword [esi + 0x38], ebx
je 0x538730
lea ecx, [esi + 0x48]
call fcn.00511c40
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.00530960
inc edi
jmp 0x5386e8
mov ecx, esi
call fcn.005393d0
mov ecx, dword [ebp - 0x3c]
push ecx
push ebx
mov ecx, esi
call fcn.00559e90
lea edx, [ebp - 0x80]
push edx
call fcn.00592fdc
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 0x538815
lea ecx, [ebp - 0x74]
push ecx
call fcn.00592fdc
add esp, 4
xor ebx, ebx
cmp ebx, dword [esi + 0x140]
jge 0x53880f
lea edx, [ebx + ebx*4]
lea eax, [ebx + edx*8]
mov edx, dword [esi + 0x1dc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + ecx*8 + 0x74]
test eax, eax
lea edi, [edx + ecx*8]
je 0x53880c
mov eax, dword [edi + 0x90]
mov ecx, dword [eax]
cmp dword [ecx], 0
je 0x53880c
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
or edx, eax
je 0x53880c
lea eax, [edi + 0x2f0]
mov ecx, edi
push eax
call fcn.00516030
lea eax, [edi + 0x2f0]
push eax
mov eax, dword [edi + 0x90]
push 0x13ef
push 0x111
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x5387a0
mov eax, dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x80]
mov edx, dword [esi + 0x40]
xor ebx, ebx
cmp edx, ebx
jne 0x5389c8
mov edi, dword [esi + 0x15c]
mov edx, dword [esi + 0x158]
cmp dword [ebp - 0x34], edi
jg 0x5389c8
jl 0x538842
cmp dword [ebp - 0x38], edx
jae 0x5389c8
cmp dword [ebp - 0x54], edx
jne 0x5389c8
cmp dword [ebp - 0x50], edi
jne 0x5389c8
mov edx, dword [ebp - 0x28]
mov edi, dword [ebp - 0x24]
lea ecx, [ecx + ecx*4]
or edx, edi
lea ecx, [ecx + ecx*4]
jne 0x53887b
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 0x5389ce
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 0xc]
and eax, 0xffff
fld qword [ecx + 0x3e0]
fsqrt
lea eax, [eax + edx*8]
cdq
mov ebx, eax
mov edi, edx
fmul qword [0x603cc0]
fadd qword [ecx + 0x3d0]
fcom qword [ecx + 0x3f0]
fnstsw ax
test ah, 1
je 0x5388b4
fstp qword [ebp - 0x64]
jmp 0x5388c8
mov eax, dword [ecx + 0x3f0]
mov edx, dword [ecx + 0x3f4]
fstp st(0)
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], edx
fld qword [ecx + 0x3d8]
fsqrt
fmul qword [0x603cc0]
fadd qword [ecx + 0x3c8]
fcom qword [ecx + 0x3e8]
fnstsw ax
test ah, 1
jne 0x5388f1
fstp st(0)
fld qword [ecx + 0x3e8]
fld qword [ebp - 0x64]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x538902
fstp st(0)
fld qword [ebp - 0x64]
fmul qword [0x604410]
fadd qword [0x604408]
call fcn.00591bf8
mov ecx, dword [ebp - 0x28]
sub ebx, ecx
mov ecx, dword [ebp - 0x24]
sbb edi, ecx
cmp edi, edx
jl 0x5389ce
jg 0x53892f
cmp ebx, eax
jbe 0x5389ce
xor ebx, ebx
mov ecx, esi
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
call fcn.00568e80
cmp eax, ebx
je 0x5389d0
cmp dword [esi + 0x38], ebx
je 0x538961
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 + 0x1dc]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esi + 0x1dc]
call fcn.005348f0
mov ecx, dword [esi + 0x1dc]
mov edx, dword [ecx]
lea eax, [ecx + 0x30e4]
push eax
call dword [edx + 0x10]
cmp eax, ebx
jne 0x5391cd
mov ecx, dword [esi + 0x1dc]
push ebx
call fcn.0052aba0
cmp eax, ebx
jne 0x5391cd
mov ecx, dword [esi + 0x158]
mov eax, dword [0x692acc]
mov edx, dword [esi + 0x15c]
mov dword [ebp - 0x38], ecx
push 1
push eax
mov ecx, esi
mov dword [ebp - 0x34], edx
call fcn.00559b40
jmp 0x5389d0
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x24], ebx
xor ebx, ebx
mov ecx, dword [esi + 0xc]
cmp dword [ecx + 0xb0], 2
jne 0x538d82
mov edi, dword [esi + 0x154]
mov edx, dword [esi + 0x150]
mov eax, edi
cmp eax, ebx
jl 0x538a0c
jg 0x5389f9
cmp edx, 0x32
jbe 0x538a0c
mov eax, dword [esi + 0x1dc]
cmp dword [eax + 0x64], ebx
jl 0x538a2f
jg 0x538a0c
cmp dword [eax + 0x60], 0x32
jb 0x538a2f
cmp edi, ebx
jg 0x538a5d
jl 0x538a17
cmp edx, 0x32
ja 0x538a5d
mov eax, dword [esi + 0x1dc]
mov ebx, dword [eax + 0x64]
cmp ebx, edi
jg 0x538a5b
jl 0x538a2d
mov edi, dword [eax + 0x60]
cmp edi, edx
jae 0x538a5b
xor ebx, ebx
mov dl, byte [eax + 0xb4]
test dl, dl
je 0x538d82
mov edx, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
or edx, edi
jne 0x538d82
mov dl, byte [eax + 0xb5]
test dl, dl
je 0x538d82
jmp 0x538a5d
xor ebx, ebx
call fcn.0056fe70
mov cl, byte [0x691c74]
mov dword [ebp - 0x18], eax
test cl, cl
jne 0x538a7c
mov ecx, dword [esi + 0xc]
mov dl, byte [ecx + 0x2e0]
test dl, dl
jne 0x538a8a
mov cl, byte [esi + 0x7f0]
test cl, cl
je 0x538b13
mov edx, dword [esi + 0xc]
cmp dword [edx + 0xb0], 2
jne 0x538a9a
cmp eax, ebx
je 0x538b13
mov ecx, dword [esi + 0x1dc]
mov eax, dword [ecx]
call dword [eax + 0x18]
lea ecx, [esi + 0x48]
call fcn.0050c390
mov dword [esi + 0x80], ebx
mov dword [esi + 0x88], ebx
mov dword [esi + 0x158], ebx
mov dword [esi + 0x84], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x15c], ebx
mov al, byte [0x691c74]
test al, al
jne 0x538afd
mov ecx, dword [esi + 0xc]
mov al, byte [ecx + 0x2e0]
test al, al
je 0x538afd
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], ebx
jle 0x538b8e
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 0x538b8e
mov ebx, dword [ebx + 0xbc]
test ebx, ebx
je 0x538b52
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push ebx
push edx
call fcn.00593990
add esp, 0xc
test eax, eax
je 0x538b8e
mov edx, dword [esi + 0x14]
mov eax, dword [edx]
test eax, eax
je 0x538b70
mov ecx, dword [esi + 0x70]
push ecx
push 0x13f8
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, dword [esi + 0x18]
mov eax, dword [edx]
test eax, eax
je 0x538b8e
mov ecx, dword [esi + 0x70]
push ecx
push 0x13f8
push 0x111
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x538d82
mov eax, dword [esi + 0xf4]
test eax, eax
jne 0x538d25
mov al, byte [0x691c74]
test al, al
jne 0x538ca3
mov eax, dword [esi + 0xc]
mov byte [ebp - 0x12], 0
mov edx, dword [eax + 0xbc]
test edx, edx
je 0x538c12
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 0x538c12
mov edi, edx
mov eax, ebx
mov dl, byte [eax]
mov bl, byte [edi]
mov cl, dl
cmp dl, bl
jne 0x538c05
test cl, cl
je 0x538c01
mov dl, byte [eax + 1]
mov bl, byte [edi + 1]
mov cl, dl
cmp dl, bl
jne 0x538c05
add eax, 2
add edi, 2
test cl, cl
jne 0x538bdd
xor eax, eax
jmp 0x538c0a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x538c12
mov byte [ebp - 0x12], 1
mov edi, dword [esi + 0x154]
mov edx, dword [esi + 0x150]
xor ebx, ebx
cmp edi, ebx
jl 0x538c4b
jg 0x538c2a
cmp edx, ebx
jbe 0x538c4b
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0xe8]
mov eax, dword [eax + 0xec]
cmp eax, ebx
jl 0x538c4b
jg 0x538c43
cmp ecx, ebx
jbe 0x538c4b
cmp ecx, edx
jne 0x538c52
cmp eax, edi
jne 0x538c52
mov al, byte [ebp - 0x12]
test al, al
je 0x538ca3
mov eax, dword [esi + 0xc]
push 0x691568
lea ecx, [eax + 0xe4]
call fcn.005addd6
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 [0x69229c]
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 0x538d25
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x538cb8
mov eax, ecx
jmp 0x538cbb
add eax, 0x38
push 0x2e
push eax
call fcn.00591662
mov edi, eax
add esp, 8
test edi, edi
je 0x538d25
push 0x66d01c
push edi
call fcn.00593cdc
add esp, 8
test eax, eax
je 0x538d25
push 0x66b8c8
push edi
call fcn.00593cdc
add esp, 8
test eax, eax
je 0x538d25
mov ecx, dword [esi + 0xc]
mov eax, dword [0x692a58]
push 0x50004
mov edx, dword [ecx + 8]
push edx
push eax
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x538d25
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 0x538d82
mov ecx, dword [eax + 0x34]
test ecx, ecx
je 0x538d3a
mov eax, ecx
jmp 0x538d3d
add eax, 0x38
push 0x2e
push eax
call fcn.00591662
mov edi, eax
add esp, 8
test edi, edi
je 0x538d82
push 0x66d01c
push edi
call fcn.00593cdc
add esp, 8
test eax, eax
je 0x538d82
push 0x66b8c8
push edi
call fcn.00593cdc
add esp, 8
test eax, eax
je 0x538d82
mov ecx, dword [esi + 0xc]
call fcn.0056ff50
test eax, eax
jne 0x5391cd
mov al, byte [ebp - 0x3c]
test al, al
je 0x538fb0
mov ecx, dword [esi + 0x15c]
mov eax, dword [esi + 0x158]
test ecx, ecx
jl 0x538fb0
jg 0x538dae
cmp eax, 0x400
jbe 0x538fb0
mov ecx, esi
call fcn.00559990
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x4c], eax
push ecx
mov ebx, edx
call fcn.00592fdc
mov eax, dword [esi + 0x158]
mov edi, dword [ebp - 0x44]
mov ecx, dword [esi + 0x15c]
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 0x538fb0
jg 0x538df5
test eax, eax
jbe 0x538fb0
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0xa0]
sub eax, edx
mov edx, dword [ebp - 0x9c]
mov ecx, dword [ebp - 0x90]
and edx, 0xffff
lea eax, [eax + eax*4]
and ecx, 0xffff
lea eax, [eax + eax*4]
lea eax, [eax + eax*4]
shl eax, 3
sub eax, edx
add eax, ecx
mov dword [ebp - 0x18], eax
jne 0x538e37
mov dword [ebp - 0x18], 1
fild qword [ebp - 0x30]
fmul dword [0x5e6d6c]
fidiv dword [ebp - 0x18]
call fcn.00591bf8
mov edi, edx
mov ecx, eax
cmp edi, ebx
jl 0x538fb0
jg 0x538e5f
cmp ecx, dword [ebp - 0x4c]
jbe 0x538fb0
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.00593f90
mov ecx, dword [ebp - 0x4c]
push ebx
push ecx
push edx
push eax
call fcn.00593520
mov edi, eax
mov eax, dword [esi + 0x160]
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.00593520
cmp dword [ebp - 0x1c], edx
jg 0x538ebd
jl 0x538ea8
cmp dword [ebp - 0x20], eax
jae 0x538ebd
mov eax, 0x66666667
imul edi
sar edx, 3
mov eax, edx
shr eax, 0x1f
add edx, eax
mov edi, edx
jmp 0x538eeb
mov ecx, dword [ebp - 0x4c]
push 0
push 9
push ebx
push ecx
call fcn.00593f90
push 0
push 0xa
push edx
push eax
call fcn.00593520
cmp dword [ebp - 0x1c], edx
jg 0x538eeb
jl 0x538ee2
cmp dword [ebp - 0x20], eax
jae 0x538eeb
mov eax, edi
cdq
sub eax, edx
sar eax, 1
mov edi, eax
cmp edi, 0x2ee0
jle 0x538efa
mov edi, 0x2ee0
jmp 0x538f02
test edi, edi
jle 0x538fb0
mov eax, dword [esi + 0x7ec]
cmp eax, 0xffffffff
je 0x538fa9
lea ecx, [esi + 0x1e0]
lea ebx, [esi + 0x5e8]
mov dword [esi + 0x3e4], 0
mov dword [ecx], 0
mov dword [ebx], 0
mov dword [esi + 0x1e4], eax
mov eax, dword [ecx]
inc eax
mov dword [ecx], eax
mov eax, dword [ebx]
cmp eax, 0x80
jae 0x538f59
mov edx, dword [esi + 0x7ec]
mov dword [esi + eax*4 + 0x5ec], 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 + 0x3e4]
push eax
push ecx
push 0
call sub.WSOCK32.dll_select
jmp 0x538fb0
push edi
call dword [sym.imp.KERNEL32.dll_Sleep]
mov ecx, esi
call fcn.005391e0
mov edi, eax
test edi, edi
jne 0x538fd2
mov ecx, esi
call fcn.00539510
mov ecx, esi
call fcn.0055ad10
xor ebx, ebx
jmp 0x538598
mov eax, dword [esi + 0x38]
test eax, eax
je 0x538ff7
lea ecx, [esi + 0x48]
call fcn.00511c40
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 0x53915c
cmp edi, 0xffffffff
je 0x53915c
mov eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x158]
mov edx, dword [0x692ad0]
push eax
push ecx
lea eax, [ebp - 0x12c]
push edx
push eax
call fcn.005920ea
add esp, 0x10
lea ecx, [ebp - 0x12c]
push 1
push ecx
mov ecx, esi
call fcn.00559b40
mov eax, dword [esi + 0x158]
mov edx, dword [esi + 0x150]
mov ecx, dword [esi + 0x15c]
mov edi, dword [esi + 0x154]
cmp eax, edx
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x2c], ecx
jne 0x53906b
mov eax, ecx
cmp eax, edi
je 0x5390d1
mov eax, edx
or eax, edi
je 0x5390d1
mov ebx, dword [esi + 0xc]
mov eax, edx
mov ecx, edi
mov ebx, dword [ebx + 0x2e8]
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 0x53909e
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x50]
cmp eax, ecx
je 0x5390d1
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0x1c]
add edx, esi
adc edi, ebx
cmp eax, edi
jl 0x5391ca
jg 0x5390bb
cmp dword [ebp - 0x20], edx
jbe 0x5391ca
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 + 0x140]
jge 0x539142
lea edx, [ebx + ebx*4]
lea eax, [ebx + edx*8]
mov edx, dword [esi + 0x1dc]
lea eax, [eax + eax*4]
lea ecx, [ebx + eax*8]
mov eax, dword [edx + ecx*8 + 0x74]
test eax, eax
lea edi, [edx + ecx*8]
je 0x53913f
mov eax, dword [edi + 0x90]
mov ecx, dword [eax]
cmp dword [ecx], 0
je 0x53913f
mov edx, dword [edi + 0x58]
mov eax, dword [edi + 0x5c]
or edx, eax
je 0x53913f
lea eax, [edi + 0x2f0]
mov ecx, edi
push eax
call fcn.00516030
lea eax, [edi + 0x2f0]
push eax
mov eax, dword [edi + 0x90]
push 0x13ef
push 0x111
mov ecx, dword [eax]
mov edx, dword [ecx]
push edx
call dword [sym.imp.USER32.dll_PostMessageA]
inc ebx
jmp 0x5390d3
mov ecx, esi
call fcn.0055ad10
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 eax, dword [esi + 0x15c]
mov ecx, dword [esi + 0x158]
mov edx, dword [0x692ac4]
push eax
push ecx
lea eax, [ebp - 0x12c]
push edx
push eax
call fcn.005920ea
add esp, 0x10
lea ecx, [ebp - 0x12c]
push 1
push ecx
mov ecx, esi
call fcn.00559b40
mov esi, dword [esi + 0xf8]
test esi, esi
je 0x5391a4
cmp edi, 0x753c
mov eax, esi
je 0x5391cd
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