Function at 0x4e7190
Capabilities:
Set socket configuration

Disassembly:
push ecx
mov ecx, dword [esp + 0x10]
xor eax, eax
test ecx, ecx
push esi
setne al
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
cmp eax, 0x40
jg 0x4e73cd
je 0x4e7391
dec eax
cmp eax, 0xf
ja case.0x4e71c5.3
movzx eax, byte [eax + 0x4e7574]
jmp dword [eax*4 + 0x4e755c]
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
shr eax, 1
and eax, 1
cmp ecx, eax
je 0x4e7548
push 4
lea eax, [esp + 8]
push eax
push 8
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4e7218
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
je 0x4e749a
call esi
add eax, 0xafc80
pop esi
pop ecx
ret 0xc
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 2
and ecx, 0xfffffffd
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
shr eax, 2
and eax, 1
cmp ecx, eax
je 0x4e7548
push 4
lea eax, [esp + 8]
push eax
push 1
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 4
and ecx, 0xfffffffb
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
shr eax, 4
and eax, 1
cmp ecx, eax
je 0x4e7548
push 4
lea eax, [esp + 8]
push eax
push 4
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 0x10
and ecx, 0xffffffef
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
shr eax, 3
and eax, 1
cmp eax, ecx
je 0x4e7548
mov eax, dword [esi + 4]
push eax
test ecx, ecx
je 0x4e7307
call fcn.004e75d0
add esp, 4
test eax, eax
je 0x4e7317
pop esi
pop ecx
ret 0xc
call fcn.004e7590
add esp, 4
test eax, eax
jne 0x4e7554
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 8
and ecx, 0xfffffff7
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
and eax, 1
cmp eax, ecx
je 0x4e7548
mov eax, 0x1e
mov word [esp + 0xc], cx
push 4
mov word [esp + 0x12], ax
lea eax, [esp + 0x10]
push eax
push 0x80
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 1
and ecx, 0xfffffffe
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
push 4
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
push 0x1001
push 0xffff
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4e7548
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
jne 0x4e720c
pop esi
pop ecx
ret 0xc
cmp eax, 0x4000
jg 0x4e74e0
je 0x4e747c
cmp eax, 0x80
je 0x4e7440
cmp eax, 0x200
jne case.0x4e71c5.3
mov esi, dword [esp + 0xc]
mov eax, dword [esi + 0x38]
shr eax, 9
and eax, 1
cmp eax, ecx
je 0x4e7548
push 4
lea eax, [esp + 0x18]
push eax
push 1
push 6
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 0x200
and ecx, 0xfffffdff
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
push 4
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x14]
push 0x1002
push 0xffff
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4e7548
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
jne 0x4e720c
pop esi
pop ecx
ret 0xc
cmp dword [0x560ea8], 0x50
mov esi, dword [esp + 0xc]
jge 0x4e74a1
mov eax, dword [esi + 0x10]
cmp dword [eax + 0x10], 0x17
jne 0x4e74a1
test ecx, ecx
je 0x4e754f
xor eax, eax
pop esi
pop ecx
ret 0xc
push 4
lea eax, [esp + 0x18]
push eax
push 0x1b
push 0x29
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
mov ecx, dword [esi + 0x38]
mov eax, ecx
or eax, 0x4000
and ecx, 0xffffbfff
cmp dword [esp + 0x14], 0
cmovne ecx, eax
xor eax, eax
mov dword [esi + 0x38], ecx
pop esi
pop ecx
ret 0xc
cmp eax, 0x8000
je 0x4e754f
cmp eax, 0x10000
je 0x4e74f8
mov eax, 0x16
pop esi
pop ecx
ret 0xc
mov esi, dword [esp + 0xc]
movzx eax, word [esi + 0x3a]
and eax, 1
cmp ecx, eax
je 0x4e7548
push 4
lea eax, [esp + 8]
push eax
push 0x20
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4e73b8
cmp dword [esp + 0x14], 0
mov eax, dword [esi + 0x38]
je 0x4e7540
or eax, 0x10000
mov dword [esi + 0x38], eax
xor eax, eax
pop esi
pop ecx
ret 0xc
and eax, 0xfffeffff
mov dword [esi + 0x38], eax
xor eax, eax
pop esi
pop ecx
ret 0xc
mov eax, 0x11187
pop esi
pop ecx
ret 0xc