Function at 0x45a663
Capabilities:
Set socket configuration

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff18
xor edx, edx
push ebx
push esi
push edi
xor edi, edi
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 4], edx
test eax, eax
je 0x45a683
mov edi, dword [eax + 4]
test eax, eax
je 0x45a68d
mov eax, dword [eax + 8]
mov dword [ebp - 4], eax
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
push dword [ebp + 0xc]
call sub.WSOCK32.dll_setsockopt
mov esi, eax
call sub.WSOCK32.dll_WSAGetLastError
mov dword [0x4d3000], eax
lea eax, [ebp - 0xe8]
push eax
push dword [0x4d3000]
call fcn.0045ae3b
add esp, 8
cmp ebx, 0xffff
jne 0x45a903
push esi
push edi
mov esi, str.SOL_SOCKET
lea edi, [ebp - 0xb8]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
mov edx, dword [ebp + 0x14]
cmp edx, 0x20
jg 0x45a732
je 0x45a7a0
cmp edx, 4
jg 0x45a71b
je 0x45a89d
sub edx, 0xffffff7f
je 0x45a7d7
sub edx, 0x82
je 0x45a7be
dec edx
je 0x45a781
jmp 0x45a8ed
sub edx, 8
je 0x45a82d
sub edx, 8
je 0x45a7f6
jmp 0x45a8ed
cmp edx, 0x1002
jg 0x45a769
je 0x45a883
sub edx, 0x80
je 0x45a84b
sub edx, 0x80
je 0x45a865
sub edx, 0xf01
je 0x45a8bb
jmp 0x45a8ed
sub edx, 0x1007
je 0x45a814
dec edx
je 0x45a8d5
jmp 0x45a8ed
push esi
push edi
mov esi, str.SO_ACCEPTCONN
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_BROADCAST
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_DEBUG
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_DONTLINGER
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_DONTROUTE
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_ERROR
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_KEEPALIVE
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_LINGER
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_OOBINLINE
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_RCVBUF
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_REUSEADDR
lea edi, [ebp - 0xcc]
mov eax, edi
mov ecx, 3
rep movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_SNDBUF
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.SO_TYPE
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.__INVALID__
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x45a976
cmp ebx, 6
jne 0x45a94e
push esi
push edi
mov esi, str.IPPROTO_TCP
lea edi, [ebp - 0xb8]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
cmp dword [ebp + 0x14], 1
jne 0x45a938
push esi
push edi
mov esi, str.TCP_NODELAY
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.__INVALID__
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
jmp 0x45a976
push esi
push edi
mov esi, str.__INVALID__
lea edi, [ebp - 0xb8]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
push esi
push edi
mov esi, str.__INVALID__
lea edi, [ebp - 0xcc]
mov eax, edi
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop edi
pop esi
lea edx, [ebp - 0xe8]
lea ecx, [ebp - 0xcc]
push edx
push esi
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push ecx
lea eax, [ebp - 0xb8]
push eax
lea edx, [ebp - 0xa4]
push dword [ebp + 0xc]
push edi
push str.Sock_ID_lu_setsockopt__u__s__s_0x_p__d_______d___s_
push edx
call fcn.004a00a0
add esp, 0x28
lea ecx, [ebp - 0xa4]
push ecx
push dword [ebp - 4]
push dword [0x4c0170]
push dword [0x4c016c]
call sub.USER32.dll_SendMessageA
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18