Function at 0x54ad50
Capabilities:
Set socket configuration

Disassembly:
push esi
mov esi, dword [esp + 8]
push edi
xor edi, edi
test esi, esi
je 0x54afcb
mov ecx, dword [esi]
cmp ecx, 0xffffffff
je 0x54afcb
mov eax, dword [esp + 0x14]
test eax, eax
je 0x54afcb
mov edx, dword [esp + 0x10]
cmp edx, 4
ja case.default.0x54ad84
jmp dword [edx*4 + 0x54aff4]
mov eax, dword [eax]
test eax, eax
jns 0x54ad9a
xor eax, eax
mov word [esp + 0xc], ax
jmp 0x54ada9
mov edx, 1
mov word [esp + 0xc], dx
mov word [esp + 0xe], ax
push 4
lea eax, [esp + 0x10]
push eax
push 0x80
push 0xffff
push ecx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x54afef
mov esi, dword [esp + 0x18]
mov edi, 2
test esi, esi
je 0x54afef
cmp dword [esi + 4], 0
je 0x54afef
call fcn.004fe32e
mov ecx, dword [eax]
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 0x190
push ecx
push edi
push edx
call eax
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov edx, dword [eax]
push 4
lea eax, [esp + 0x10]
push eax
push 4
push 0xffff
push ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x54afef
mov esi, dword [esp + 0x18]
mov edi, 2
test esi, esi
je 0x54afef
cmp dword [esi + 4], 0
je 0x54afef
call fcn.004fe32e
mov ecx, dword [eax]
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 0x19c
push ecx
push edi
push edx
call eax
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov edx, dword [eax]
push 4
lea eax, [esp + 0x10]
push eax
push 8
push 0xffff
push ecx
mov dword [esp + 0x20], edx
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x54afef
mov esi, dword [esp + 0x18]
mov edi, 2
test esi, esi
je 0x54afef
cmp dword [esi + 4], 0
je 0x54afef
call fcn.004fe32e
mov ecx, dword [eax]
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 0x1a8
push ecx
push edi
push edx
call eax
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov eax, dword [esp + 0x18]
mov edi, 1
test eax, eax
je 0x54afef
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x54afef
mov edx, dword [eax]
push 0x1b0
push 4
push edi
push edx
call ecx
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
cmp dword [eax], edi
je 0x54af51
lea eax, [esp + 0xc]
push eax
push 0x8004667e
push ecx
mov dword [esp + 0x18], 1
call dword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
je 0x54af45
mov esi, dword [esp + 0x18]
mov edi, 2
test esi, esi
je 0x54afef
cmp dword [esi + 4], 0
je 0x54afef
call fcn.004fe32e
mov ecx, dword [eax]
mov edx, dword [esi]
mov eax, dword [esi + 4]
push 0x1c2
push ecx
push edi
push edx
call eax
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov eax, edi
pop edi
mov dword [esi + 4], 1
pop esi
ret
lea edx, [esp + 0xc]
push edx
push 0x8004667e
push ecx
mov dword [esp + 0x18], edi
call dword [sym.imp.WS2_32.dll_ioctlsocket]
test eax, eax
je 0x54af9b
mov esi, dword [esp + 0x18]
mov edi, 2
test esi, esi
je 0x54afef
cmp dword [esi + 4], 0
je 0x54afef
call fcn.004fe32e
mov eax, dword [eax]
mov ecx, dword [esi]
mov edx, dword [esi + 4]
push 0x1d0
push eax
push edi
push ecx
call edx
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov dword [esi + 4], edi
mov eax, edi
pop edi
pop esi
ret
mov eax, dword [esp + 0x18]
mov edi, 1
test eax, eax
je 0x54afef
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x54afef
mov eax, dword [eax]
push 0x1dc
push edx
push edi
push eax
call ecx
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret
mov eax, dword [esp + 0x18]
mov edi, 1
test eax, eax
je 0x54afef
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x54afef
mov edx, dword [eax]
push 0x178
push 0
push edi
push edx
call ecx
add esp, 0x10
mov eax, edi
pop edi
pop esi
ret