Function at 0x415bf3
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3c
mov eax, dword [0x4db028]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x3c], 1
mov dword [ebp - 0x38], 1
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp + 0x10]
and ecx, 0xffff
movzx edx, cx
mov dword [ebp - 0x28], edx
mov eax, dword [ebp - 0x28]
sub eax, 1
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 0x1f
ja case.0x415923.2
mov ecx, dword [ebp - 0x28]
movzx edx, byte [ecx + 0x415e3c]
jmp dword [edx*4 + 0x415e28]
mov dword [ebp - 0x18], 0
jmp 0x41593c
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x15e
jge 0x41596e
imul ecx, dword [ebp - 0x18], 0x3c
mov edx, dword [0x4df100]
cmp dword [edx + ecx], 0
jne 0x415957
jmp 0x415933
imul eax, dword [ebp - 0x18], 0x3c
mov ecx, dword [0x4df100]
mov edx, dword [ecx + eax + 8]
cmp edx, dword [ebp - 0x24]
jne 0x41596c
jmp 0x41596e
jmp 0x415933
cmp dword [ebp - 0x18], 0x15e
jne 0x41597f
or eax, 0xffffffff
jmp case.0x415923.2
mov eax, 1
test eax, eax
je 0x415a29
push 0
imul ecx, dword [ebp - 0x18], 0x3c
mov edx, dword [0x4df100]
mov eax, 0x186a0
sub eax, dword [edx + ecx + 0x2c]
push eax
imul ecx, dword [ebp - 0x18], 0x3c
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
mov ecx, dword [eax + ecx + 0x28]
mov eax, dword [0x4df100]
add ecx, dword [eax + edx + 0x2c]
push ecx
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0
jg 0x415a05
cmp dword [ebp - 0x2c], 0xffffffff
jne 0x4159ea
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
jne 0x4159ea
xor eax, eax
jmp case.0x415923.2
push 0x7d2
imul ecx, dword [ebp - 0x18], 0x3c
add ecx, dword [0x4df100]
call fcn.004049e9
xor eax, eax
jmp case.0x415923.2
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
mov ecx, dword [eax + edx + 0x2c]
add ecx, dword [ebp - 0x2c]
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
mov dword [eax + edx + 0x2c], ecx
jmp 0x415a29
mov ecx, 1
test ecx, ecx
je 0x415b7b
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
cmp dword [eax + edx + 0x2c], 1
jge 0x415a61
push 0x2713
imul ecx, dword [ebp - 0x18], 0x3c
add ecx, dword [0x4df100]
call fcn.004049e9
xor eax, eax
jmp case.0x415923.2
imul ecx, dword [ebp - 0x18], 0x3c
mov edx, 1
imul eax, edx, 0
mov edx, dword [0x4df100]
mov ecx, dword [edx + ecx + 0x28]
mov dl, byte [eax + ecx]
mov byte [ebp - 0x19], dl
movzx eax, byte [ebp - 0x19]
cmp dword [eax*4 + 0x4df5d8], 0
jne 0x415aa6
push 0x3ea
imul ecx, dword [ebp - 0x18], 0x3c
add ecx, dword [0x4df100]
call fcn.004049e9
xor eax, eax
jmp case.0x415923.2
imul ecx, dword [ebp - 0x18], 0x3c
movzx edx, byte [ebp - 0x19]
mov eax, dword [0x4df100]
mov ecx, dword [eax + ecx + 0x2c]
cmp ecx, dword [edx*4 + 0x4df108]
jge 0x415ac8
or eax, 0xffffffff
jmp case.0x415923.2
mov edx, dword [ebp - 0x18]
push edx
movzx eax, byte [ebp - 0x19]
mov ecx, dword [eax*4 + 0x4df5d8]
call ecx
add esp, 4
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
cmp dword [eax + edx], 0
je 0x415b64
imul ecx, dword [ebp - 0x18], 0x3c
movzx edx, byte [ebp - 0x19]
mov eax, dword [0x4df100]
mov ecx, dword [eax + ecx + 0x2c]
sub ecx, dword [edx*4 + 0x4df108]
push ecx
imul edx, dword [ebp - 0x18], 0x3c
movzx eax, byte [ebp - 0x19]
mov ecx, dword [0x4df100]
mov edx, dword [ecx + edx + 0x28]
add edx, dword [eax*4 + 0x4df108]
push edx
imul eax, dword [ebp - 0x18], 0x3c
mov ecx, 1
imul edx, ecx, 0
mov ecx, dword [0x4df100]
add edx, dword [ecx + eax + 0x28]
push edx
call fcn.004059e8
add esp, 0xc
imul edx, dword [ebp - 0x18], 0x3c
movzx eax, byte [ebp - 0x19]
mov ecx, dword [0x4df100]
mov edx, dword [ecx + edx + 0x2c]
sub edx, dword [eax*4 + 0x4df108]
imul eax, dword [ebp - 0x18], 0x3c
mov ecx, dword [0x4df100]
mov dword [ecx + eax + 0x2c], edx
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
cmp dword [eax + edx + 0x2c], 0
jne 0x415b76
jmp 0x415b7b
jmp 0x415a29
mov eax, dword [ebp - 0x2c]
jmp case.0x415923.2
mov dword [ebp - 0x18], 0
jmp 0x415b95
mov ecx, dword [ebp - 0x18]
add ecx, 1
mov dword [ebp - 0x18], ecx
cmp dword [ebp - 0x18], 0x15e
jge 0x415bc6
imul edx, dword [ebp - 0x18], 0x3c
mov eax, dword [0x4df100]
cmp dword [eax + edx], 0
jne 0x415baf
jmp 0x415b8c
imul ecx, dword [ebp - 0x18], 0x3c
mov edx, dword [0x4df100]
mov eax, dword [edx + ecx + 8]
cmp eax, dword [ebp - 0x24]
jne 0x415bc4
jmp 0x415bc6
jmp 0x415b8c
cmp dword [ebp - 0x18], 0x15e
jne 0x415bd7
or eax, 0xffffffff
jmp case.0x415923.2
push 0
push 0
push 0
imul ecx, dword [ebp - 0x18], 0x3c
add ecx, dword [0x4df100]
call fcn.004050f1
xor eax, eax
jmp case.0x415923.2
mov dword [ebp - 0x30], 0x10
lea ecx, [ebp - 0x30]
push ecx
lea edx, [ebp - 0x14]
push edx
mov eax, dword [ebp - 0x34]
mov ecx, dword [eax + 0x190]
push ecx
call dword [sym.imp.WS2_32.dll_accept]
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0xffffffff
jne 0x415c22
xor eax, eax
jmp case.0x415923.2
mov dword [ebp - 0x20], 0
jmp 0x415c34
mov edx, dword [ebp - 0x20]
add edx, 1
mov dword [ebp - 0x20], edx
cmp dword [ebp - 0x20], 0x15e
jge 0x415c51
imul eax, dword [ebp - 0x20], 0x3c
mov ecx, dword [0x4df100]
cmp dword [ecx + eax], 0
jne 0x415c4f
jmp 0x415c51
jmp 0x415c2b
cmp dword [ebp - 0x20], 0x15e
jne 0x415c6b
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp case.0x415923.2
lea eax, [ebp - 0x38]
push eax
push 0x8004667e
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_ioctlsocket]
cmp eax, 0xffffffff
jne 0x415c94
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp case.0x415923.2
push 4
lea eax, [ebp - 0x3c]
push eax
push 1
push 6
mov ecx, dword [ebp - 0x24]
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
cmp eax, 0xffffffff
jne 0x415cbe
mov edx, dword [ebp - 0x24]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
xor eax, eax
jmp case.0x415923.2
imul eax, dword [ebp - 0x20], 0x3c
mov ecx, dword [0x4df100]
mov dword [ecx + eax], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
imul edx, dword [ebp - 0x20], 0x3c
mov ecx, dword [0x4df100]
mov dword [ecx + edx + 4], eax
imul edx, dword [ebp - 0x20], 0x3c
mov eax, dword [0x4df100]
mov ecx, dword [ebp - 0x24]
mov dword [eax + edx + 8], ecx
movzx edx, byte [ebp - 0xd]
push edx
movzx eax, byte [ebp - 0xe]
push eax
movzx ecx, byte [ebp - 0xf]
push ecx
movzx edx, byte [ebp - 0x10]
push edx
push str._d._d._d._d
imul eax, dword [ebp - 0x20], 0x3c
mov ecx, dword [0x4df100]
lea edx, [ecx + eax + 0x10]
push edx
call fcn.004066c7
add esp, 0x18
imul eax, dword [ebp - 0x20], 0x3c
mov ecx, dword [0x4df100]
mov dword [ecx + eax + 0x24], 0
imul edx, dword [ebp - 0x20], 0x3c
mov eax, dword [0x4df100]
mov dword [eax + edx + 0x2c], 0
imul ecx, dword [ebp - 0x20], 0x3c
mov edx, dword [0x4df100]
mov dword [edx + ecx + 0x30], 0
mov ecx, 0x4dfaa8
call fcn.00403b6b
mov eax, dword [0x4ebdf8]
push eax
mov ecx, 1
imul edx, ecx, 0
add edx, 0x4dfaa8
push edx
push 1
imul ecx, dword [ebp - 0x20], 0x3c
add ecx, dword [0x4df100]
call fcn.004050f1
mov eax, 1
jmp case.0x415923.2
mov dword [ebp - 0x18], 0
jmp 0x415da4
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 0x15e
jge 0x415dd6
imul ecx, dword [ebp - 0x18], 0x3c
mov edx, dword [0x4df100]
cmp dword [edx + ecx], 0
jne 0x415dbf
jmp 0x415d9b
imul eax, dword [ebp - 0x18], 0x3c
mov ecx, dword [0x4df100]
mov edx, dword [ecx + eax + 8]
cmp edx, dword [ebp - 0x24]
jne 0x415dd4
jmp 0x415dd6
jmp 0x415d9b
cmp dword [ebp - 0x18], 0x15e
jne 0x415de3
xor eax, eax
jmp case.0x415923.2
imul eax, dword [ebp - 0x18], 0x3c
mov ecx, dword [0x4df100]
mov edx, dword [ecx + eax + 0x34]
push edx
push str.Disconnect_____Zone__d__n
call fcn.00404183
push eax
call fcn.00402ce3
add esp, 0xc
push 0
imul ecx, dword [ebp - 0x18], 0x3c
add ecx, dword [0x4df100]
call fcn.004049e9
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00403134
mov esp, ebp
pop ebp
ret 0xc