Function at 0x406a00
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x54afed
mov eax, dword fs:[0]
push eax
sub esp, 0x14
mov eax, dword [0x5a5014]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x14], ecx
cmp dword [ebp + 0x14], 0
je 0x406a6c
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x2c]
push edx
mov eax, dword [ecx + 0x28]
push eax
push str.TCPProxy::onConnectComplete__I64u__failed__err_d
call fcn.004557e0
push eax
call fcn.00456d70
add esp, 0x14
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx + 0x2c]
push edx
mov eax, dword [ecx + 0x28]
push eax
mov ecx, dword [ebp + 8]
push ecx
mov ecx, dword [ebp - 0x14]
call fcn.00406990
jmp 0x406c5d
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [eax + 0x28]
push edx
push str.TCPProxy::onConnectComplete__I64u__err_d
call fcn.004557e0
push eax
call fcn.00456d70
add esp, 0x14
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [eax + 0x28]
push edx
mov eax, dword [ebp - 0x14]
push eax
lea ecx, [ebp - 0x20]
call fcn.00405ee0
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x20]
call fcn.00405fa0
test eax, eax
jne 0x406acc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.00405f30
jmp 0x406c5d
mov dword [ebp - 0x18], 1
push 0
push 0
push 0x7010
push 0xffff
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea edx, [ebp - 0x18]
push edx
push 1
push 6
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
push 4
lea ecx, [ebp - 0x18]
push ecx
push 8
push 0xffff
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.WS2_32.dll_setsockopt]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [ebp - 0x14]
call fcn.00407990
lea ecx, [ebp - 0x20]
call fcn.00405fa0
cmp dword [eax + 0x80], 1
jne 0x406bd0
mov byte [ebp - 0x10], 5
mov byte [ebp - 0xf], 1
lea ecx, [ebp - 0x20]
call fcn.00405fa0
add eax, 0xa4
mov ecx, eax
call fcn.00420950
movzx ecx, al
test ecx, ecx
jne 0x406b69
mov edx, 1
imul eax, edx, 0
mov byte [ebp + eax - 0xe], 2
jmp 0x406b76
mov ecx, 1
imul edx, ecx, 0
mov byte [ebp + edx - 0xe], 0
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [eax + 0x28]
push edx
push 3
lea eax, [ebp - 0x10]
push eax
push 0
lea ecx, [ebp - 0x20]
call fcn.00405fa0
push eax
mov ecx, dword [ebp - 0x14]
call fcn.004065b0
movzx ecx, al
test ecx, ecx
je 0x406bb0
lea ecx, [ebp - 0x20]
call fcn.00405fa0
mov dword [eax + 0x38], 1
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [edx + 0x28]
push ecx
push 0
lea ecx, [ebp - 0x20]
call fcn.00405fa0
push eax
mov ecx, dword [ebp - 0x14]
call fcn.004067f0
jmp 0x406c4e
lea ecx, [ebp - 0x20]
call fcn.00405fa0
mov dword [eax + 0x38], 4
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [edx + 0x28]
push ecx
push 1
lea ecx, [ebp - 0x20]
call fcn.00405fa0
push eax
mov ecx, dword [ebp - 0x14]
call fcn.004067f0
mov edx, dword [ebp + 0x10]
mov eax, dword [edx + 0x2c]
push eax
mov ecx, dword [edx + 0x28]
push ecx
push 0
lea ecx, [ebp - 0x20]
call fcn.00405fa0
push eax
mov ecx, dword [ebp - 0x14]
call fcn.004067f0
mov edx, dword [ebp - 0x14]
cmp dword [edx + 0x54], 0
je 0x406c4e
lea ecx, [ebp - 0x20]
call fcn.00405fa0
add eax, 0x3c
push eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 0x2c]
push ecx
mov edx, dword [eax + 0x28]
push edx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x54]
mov edx, dword [ebp - 0x14]
mov eax, dword [ecx]
mov ecx, dword [edx + 0x54]
mov edx, dword [eax + 0xc]
call edx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x20]
call fcn.00405f30
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov esp, ebp
pop ebp
ret 0x10