Function at 0x492980
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, dword [ebp + 0x10]
xor eax, eax
test ecx, ecx
setne al
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
cmp eax, 0x40
jg 0x492baf
je 0x492b85
dec eax
cmp eax, 0xf
ja case.0x4929b5.3
movzx eax, byte [eax + 0x492c8c]
jmp dword [eax*4 + 0x492c74]
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
shr eax, 1
and eax, 1
cmp ecx, eax
je 0x4929f2
push 4
lea eax, [ebp - 4]
push eax
push 8
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x492a09
mov esi, dword [sym.imp.WS2_32.dll_WSAGetLastError]
call esi
test eax, eax
jne 0x4929fb
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
call esi
add eax, 0xafc80
pop esi
mov esp, ebp
pop ebp
ret 0xc
cmp dword [ebp + 0x10], 0
je 0x492a1c
or dword [esi + 0x38], 2
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xfffffffd
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
shr eax, 2
and eax, 1
cmp ecx, eax
je 0x4929f2
push 4
lea eax, [ebp - 4]
push eax
push 1
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4929e6
cmp dword [ebp + 0x10], 0
je 0x492a67
or dword [esi + 0x38], 4
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xfffffffb
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
shr eax, 4
and eax, 1
cmp ecx, eax
je 0x4929f2
push 4
lea eax, [ebp - 4]
push eax
push 4
push 0xffff
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4929e6
cmp dword [ebp + 0x10], 0
je 0x492aba
or dword [esi + 0x38], 0x10
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xffffffef
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
shr eax, 3
and eax, 1
cmp eax, ecx
je 0x4929f2
push dword [esi + 4]
test ecx, ecx
je 0x492af5
call fcn.00492cf0
add esp, 4
test eax, eax
je 0x492b05
pop esi
mov esp, ebp
pop ebp
ret 0xc
call fcn.00492ca0
add esp, 4
test eax, eax
jne 0x492c6a
cmp dword [ebp + 0x10], 0
je 0x492b18
or dword [esi + 0x38], 8
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xfffffff7
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
and eax, 1
cmp eax, ecx
je 0x4929f2
mov eax, 0x1e
push 4
mov word [ebp + 0xa], ax
lea eax, [ebp + 8]
push eax
push 0x80
push 0xffff
push dword [esi + 4]
mov word [ebp + 8], cx
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4929e6
cmp dword [ebp + 0x10], 0
je 0x492b78
or dword [esi + 0x38], 1
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xfffffffe
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 4
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
push 0x1001
push 0xffff
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4929f2
jmp 0x4929e6
cmp eax, 0x4000
jg 0x492c52
je 0x492c65
cmp eax, 0x80
je 0x492c28
cmp eax, 0x200
jne case.0x4929b5.3
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x38]
shr eax, 9
and eax, 1
cmp eax, ecx
je 0x4929f2
push 4
lea eax, [ebp + 0x10]
push eax
push 1
push 6
push dword [esi + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
je 0x4929e6
cmp dword [ebp + 0x10], 0
je 0x492c18
or dword [esi + 0x38], 0x200
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
and dword [esi + 0x38], 0xfffffdff
xor eax, eax
pop esi
mov esp, ebp
pop ebp
ret 0xc
push 4
lea eax, [ebp + 0x10]
push eax
mov eax, dword [ebp + 8]
push 0x1002
push 0xffff
push dword [eax + 4]
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x4929f2
jmp 0x4929e6
cmp eax, 0x8000
je 0x492c65
mov eax, 0x16
pop esi
mov esp, ebp
pop ebp
ret 0xc
mov eax, 0x11187
pop esi
mov esp, ebp
pop ebp
ret 0xc