Function at 0x4f4a20
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
push esi
push edi
lea edi, [ebp - 0x44]
mov ecx, 0x11
mov eax, 0xcccccccc
rep stosd dword es:[edi], eax
xor eax, eax
cmp dword [ebp + 0x10], 0
setne al
mov dword [ebp - 8], eax
mov ecx, dword [ebp + 0xc]
mov dword [ebp - 0x28], ecx
cmp dword [ebp - 0x28], 0x40
jg 0x4f4a7d
cmp dword [ebp - 0x28], 0x40
je 0x4f4c1c
mov edx, dword [ebp - 0x28]
sub edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0xf
ja case.0x4f4a76.2
mov eax, dword [ebp - 0x28]
movzx ecx, byte [eax + 0x4f5028]
jmp dword [ecx*4 + 0x4f5010]
cmp dword [ebp - 0x28], 0x4000
jg 0x4f4ab2
cmp dword [ebp - 0x28], 0x4000
je 0x4f4fb3
cmp dword [ebp - 0x28], 0x80
je 0x4f4c87
cmp dword [ebp - 0x28], 0x200
je 0x4f4ef4
jmp case.0x4f4a76.2
cmp dword [ebp - 0x28], 0x8000
je 0x4f4eea
jmp case.0x4f4a76.2
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
and eax, 2
xor ecx, ecx
cmp eax, 2
sete cl
cmp dword [ebp + 0x10], ecx
je 0x4f4b6b
mov esi, esp
push 4
lea edx, [ebp - 8]
push edx
push 8
push 0xffff
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4b41
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4b22
mov dword [ebp - 0x2c], 0
jmp 0x4f4b39
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4b58
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
or eax, 2
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x38], eax
jmp 0x4f4b67
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
and eax, 0xfffffffd
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x38], eax
xor edx, edx
jne 0x4f4b41
jmp 0x4f4fc3
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
and ecx, 4
xor edx, edx
cmp ecx, 4
sete dl
cmp dword [ebp + 0x10], edx
je 0x4f4c17
mov esi, esp
push 4
lea eax, [ebp - 8]
push eax
push 1
push 0xffff
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4bed
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4bce
mov dword [ebp - 0x30], 0
jmp 0x4f4be5
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4c04
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
or ecx, 4
mov edx, dword [ebp + 8]
mov dword [edx + 0x38], ecx
jmp 0x4f4c13
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
and ecx, 0xfffffffb
mov edx, dword [ebp + 8]
mov dword [edx + 0x38], ecx
xor eax, eax
jne 0x4f4bed
jmp 0x4f4fc3
mov esi, esp
push 4
lea ecx, [ebp + 0x10]
push ecx
push 0x1001
push 0xffff
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4c82
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4c63
mov dword [ebp - 0x34], 0
jmp 0x4f4c7a
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x34], eax
mov eax, dword [ebp - 0x34]
jmp 0x4f4fc5
jmp 0x4f4fc3
mov esi, esp
push 4
lea ecx, [ebp + 0x10]
push ecx
push 0x1002
push 0xffff
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4ced
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4cce
mov dword [ebp - 0x38], 0
jmp 0x4f4ce5
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x38]
jmp 0x4f4fc5
jmp 0x4f4fc3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
and edx, 0x10
xor eax, eax
cmp edx, 0x10
sete al
cmp dword [ebp + 0x10], eax
je 0x4f4d99
mov esi, esp
push 4
lea ecx, [ebp - 8]
push ecx
push 4
push 0xffff
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4d6f
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4d50
mov dword [ebp - 0x3c], 0
jmp 0x4f4d67
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4d86
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
or edx, 0x10
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
jmp 0x4f4d95
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
and edx, 0xffffffef
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
xor ecx, ecx
jne 0x4f4d6f
jmp 0x4f4fc3
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
and eax, 8
xor ecx, ecx
cmp eax, 8
sete cl
cmp ecx, dword [ebp + 0x10]
je 0x4f4e26
cmp dword [ebp + 0x10], 0
je 0x4f4ddc
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call fcn.004f4750
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4f4dda
mov eax, dword [ebp - 0x10]
jmp 0x4f4fc5
jmp 0x4f4dfc
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 4]
push edx
call fcn.004f4690
add esp, 4
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4f4dfc
mov eax, dword [ebp - 0x10]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4e13
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
or ecx, 8
mov edx, dword [ebp + 8]
mov dword [edx + 0x38], ecx
jmp 0x4f4e22
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x38]
and ecx, 0xfffffff7
mov edx, dword [ebp + 8]
mov dword [edx + 0x38], ecx
xor eax, eax
jne 0x4f4dfc
jmp 0x4f4fc3
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
and edx, 1
sub edx, 1
neg edx
sbb edx, edx
add edx, 1
cmp edx, dword [ebp + 0x10]
je 0x4f4ee5
mov ax, word [ebp + 0x10]
mov word [ebp - 0x18], ax
mov word [ebp - 0x16], 0x1e
mov esi, esp
push 4
lea ecx, [ebp - 0x18]
push ecx
push 0x80
push 0xffff
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4ebb
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4e9c
mov dword [ebp - 0x40], 0
jmp 0x4f4eb3
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4ed2
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
or edx, 1
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
jmp 0x4f4ee1
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
and edx, 0xfffffffe
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
xor ecx, ecx
jne 0x4f4ebb
jmp 0x4f4fc3
mov eax, 0x11187
jmp 0x4f4fc5
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x38]
and eax, 0x200
xor ecx, ecx
cmp eax, 0x200
sete cl
cmp ecx, dword [ebp + 0x10]
je 0x4f4fb1
mov dword [ebp - 0x20], 6
mov dword [ebp - 0x24], 1
mov esi, esp
push 4
lea edx, [ebp + 0x10]
push edx
mov eax, dword [ebp - 0x24]
push eax
mov ecx, dword [ebp - 0x20]
push ecx
mov edx, dword [ebp + 8]
mov eax, dword [edx + 4]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp esi, esp
call fcn.0052354c
cmp eax, 0xffffffff
jne 0x4f4f81
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
test eax, eax
jne 0x4f4f65
mov dword [ebp - 0x44], 0
jmp 0x4f4f7c
mov esi, esp
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp esi, esp
call fcn.0052354c
add eax, 0xafc80
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x44]
jmp 0x4f4fc5
cmp dword [ebp + 0x10], 0
je 0x4f4f9b
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
or edx, 0x200
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
jmp 0x4f4fad
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x38]
and edx, 0xfffffdff
mov eax, dword [ebp + 8]
mov dword [eax + 0x38], edx
xor ecx, ecx
jne 0x4f4f81
jmp 0x4f4fc3
mov eax, 0x11187
jmp 0x4f4fc5
mov eax, 0x16
jmp 0x4f4fc5
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, [0x4f4fe8]
call fcn.0052356f
pop eax
pop edx
pop edi
pop esi
add esp, 0x44
cmp ebp, esp
call fcn.0052354c
mov esp, ebp
pop ebp
ret 0xc