Function at 0x100627c0
Capabilities:
Get socket status

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0x14]
push ebx
push esi
lea ecx, [eax + 0xcda]
push edi
mov edi, eax
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x18], ecx
cmp eax, ecx
ja case.0x10062ac6.23965
mov esi, dword [ebp + 0x10]
mov ebx, dword [ebp - 0x44]
jmp 0x100627f0
cmp edi, 0x3971
ja 0x100629b1
je case.0x10062ac6.23965
cmp edi, 0x3813
ja 0x100628d2
je 0x100628c4
cmp edi, 0x3787
ja 0x10062881
je 0x10062873
mov eax, edi
sub eax, 0x284
je 0x1006285a
sub eax, 0x46
jne case.0x10062ac6.23756
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
imul ecx, ecx, 0x3e8
cmp dword [esi + 0x74], 0
mov dword [esi + 0xcc], ecx
jne case.0x10062ac6.23756
lea edx, [esi + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x10062ac6.23756
cmp dword [esi + 0x74], 0
jne case.0x10062ac6.23756
lea eax, [esi + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
jmp case.0x10062ac6.23756
mov ecx, 0x31
mov word [ebp - 0x10], cx
jmp case.0x10062ac6.23756
cmp edi, 0x37cd
jne case.0x10062ac6.23756
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x10062b54
mov dl, byte [eax]
cmp dl, byte [ebp - 0x10]
jne 0x10062b54
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0x38
jne 0x10062b54
cmp dword [esi], 0
jne case.0x10062ac6.23756
pop edi
pop esi
mov eax, 0xfffffffe
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
mov dword [ecx + 0x18], 0
jmp case.0x10062ac6.23756
lea eax, [edi - 0x3859]
cmp eax, 0xd2
ja case.0x10062ac6.23756
movzx edx, byte [eax + 0x10062b74]
jmp dword [edx*4 + 0x10062b60]
cmp dword [ebp - 8], 0
jne case.0x10062ac6.23756
pop edi
pop esi
mov eax, 0xfffffffc
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi]
mov eax, dword [ebp - 8]
mov dword [ecx + 0x1c], eax
mov dword [eax + 0x34], 0
jmp case.0x10062ac6.23756
mov eax, dword [esi]
cmp dword [eax + 0x20], 0
jne 0x10062933
mov dword [eax + 0x20], 0x1006d160
mov edx, dword [esi]
mov dword [edx + 0x28], 0
mov eax, dword [esi]
cmp dword [eax + 0x24], 0
jne 0x10062942
mov dword [eax + 0x24], 0x1006cef0
mov eax, dword [esi]
mov ecx, dword [eax + 0x28]
mov edx, dword [eax + 0x20]
push 0x1bcc
push 1
push ecx
call edx
add esp, 0xc
mov dword [ebp - 8], eax
jmp case.0x10062ac6.23756
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [esi]
push 0
lea eax, [ebp - 4]
push eax
mov dword [ebp - 4], ecx
lea ecx, [ebp - 0x14]
push ecx
push 0
push 0x57bf
mov dword [ebp - 0x14], edx
call fcn.10061ed0
mov edi, eax
add esp, 0x14
test edi, edi
je 0x100629a6
mov eax, dword [esi]
mov edx, dword [ebp - 8]
mov ecx, dword [eax + 0x28]
push edx
mov edx, dword [eax + 0x24]
push ecx
call edx
mov eax, dword [esi]
add esp, 8
mov dword [eax + 0x1c], 0
mov dword [ebp - 4], edi
mov edi, dword [ebp - 0xc]
jmp case.0x10062ac6.23756
cmp edi, 0x5c85
ja 0x10062ab2
je 0x10062a6d
cmp edi, 0x5bf9
ja 0x10062a43
je 0x10062a23
cmp edi, 0x48c1
je 0x10062a0c
cmp edi, 0x5bb3
jne case.0x10062ac6.23756
xor ecx, ecx
xor eax, eax
mov dword [ebp - 0x20], eax
mov dword [ebp + 0x14], ecx
mov dword [ebp - 0x1c], ecx
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x20], eax
jmp case.0x10062ac6.23756
push 0
push 0
push 0x1313
push esi
call fcn.10062ff0
add esp, 0x10
jmp case.0x10062ac6.23756
dec edx
cmp byte [edi + 0xb], cl
and eax, 0x8b184d8b
add dword [ecx + 0x3e8b9], ebx
add bh, dh
stc
imul edx, edx, 0x3e8
mov dword [ebp - 0x1c], edx
jmp case.0x10062ac6.23756
cmp edi, 0x5c3f
jne case.0x10062ac6.23756
mov eax, 1
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x38], eax
mov eax, dword [esi]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x34], eax
jmp case.0x10062ac6.23756
push 0xffffffffffffffa0
aas
cmp dh, 0x8b
push ebp
or byte [ebx - 0x7f3774fe], cl
loope 0x10062a7d
movsx ebx, cl
mov ecx, eax
neg ebx
sbb ebx, ebx
and cl, 2
movsx ecx, cl
mov esi, 0xf7c88bd9
fistp dword [ebx]
fild dword [eax - 0x41f0fd1f]
leave
lea edx, [ebp - 0x38]
and ebx, edx
neg ecx
sbb ecx, ecx
and al, 4
movsx eax, al
lea edx, [ebp - 0x30]
and ecx, edx
neg eax
mov dword [ebp - 0x40], ecx
sbb eax, eax
lea ecx, [ebp - 0x28]
and eax, ecx
mov dword [ebp - 0x3c], eax
jmp case.0x10062ac6.23756
lea eax, [edi - 0x5ccb]
cmp eax, 0xd2
ja case.0x10062ac6.23756
movzx edx, byte [eax + 0x10062c5c]
jmp dword [edx*4 + 0x10062c48]
mov eax, dword [ebp + 8]
test byte [eax], 4
je 0x10062adf
cmp dword [ebp - 0x28], 0
je 0x10062adf
or dword [ebp + 0x14], 4
mov ecx, dword [ebp + 0x14]
mov dword [ebp - 4], ecx
jmp case.0x10062ac6.23756
mov edx, dword [ebp + 8]
test byte [edx], 2
je case.0x10062ac6.23756
cmp dword [ebp - 0x30], 0
je case.0x10062ac6.23756
or dword [ebp + 0x14], 2
jmp case.0x10062ac6.23756
mov ecx, dword [ebp + 0x18]
xor eax, eax
cmp dword [ecx], eax
mov ecx, dword [ebp - 0x40]
setl al
lea edx, [ebp - 0x20]
dec eax
and eax, edx
mov edx, dword [esi]
push eax
mov eax, dword [ebp - 0x3c]
push eax
push ecx
push ebx
inc edx
push edx
call dword [sym.imp.WS2_32.dll_select]
mov eax, dword [ebp + 8]
test byte [eax], 1
mov dword [ebp + 0x14], 0
je case.0x10062ac6.23756
cmp dword [ebp - 0x38], 0
je case.0x10062ac6.23756
mov dword [ebp + 0x14], 1
add edi, 0x46
mov dword [ebp - 0xc], edi
cmp edi, dword [ebp - 0x18]
jbe 0x100627f0
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffa
pop ebx
mov esp, ebp
pop ebp
ret