Function at 0x438ba0
Capabilities:
Set socket configuration

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x4ff004]
xor eax, ebp
mov dword [ebp - 4], eax
mov cl, byte [0x5420a4]
push esi
cmp cl, 0xff
jne 0x438bd8
xor eax, eax
mov dword [0x5420a0], eax
jmp switch.0x00438be6
mov eax, dword [0x5420a0]
cmp eax, 3
ja case.default.0x438be6
jmp dword [eax*4 + 0x438e34]
push dword [0x546b14]
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call fcn.0043cc70
movzx eax, al
mov dword [ebp - 0x1c], eax
cmp eax, 6
je 0x438c99
imul esi, eax, 0xc40
xorps xmm0, xmm0
cmp dword [0xd46dbc], 0
mov eax, 0x76c
movups xmmword [ebp - 0x14], xmm0
mov word [esi + 0x5421b0], ax
mov eax, 2
mov word [ebp - 0x14], ax
je 0x438c4b
cmp dword [0x546b10], 0
jle 0x438c4b
mov eax, dword [0x542134]
mov dword [ebp - 0x10], eax
jmp 0x438c52
mov dword [ebp - 0x10], 0
push 0x76c
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x12], ax
lea eax, [ebp - 0x14]
push 0x10
push eax
push dword [esi + 0x542194]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
jns 0x438c99
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov ecx, 0x575
call fcn.0043bcf0
mov ecx, dword [ebp - 0x1c]
call fcn.0043ce90
mov eax, 0xff
mov dword [ebp - 0x1c], eax
push dword [0x546b14]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [ebp - 0x1c]
mov byte [0x5420a4], al
cmp al, 0xff
jne 0x438ccd
mov ecx, str.SSDP:_Cant_open_SSPD_UDP_Socket_n
call fcn.00436650
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [0xd4bed0]
mov dword [0x5420dc], eax
mov dword [0x5420a0], 1
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.0043cf30
test eax, eax
je case.default.0x438be6
mov al, byte [0x5420a4]
push dword [0x546b14]
mov dword [0x5420a0], 2
mov byte [ebp - 0x15], al
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
movzx eax, byte [ebp - 0x15]
imul ecx, eax, 0xc40
cmp dword [ecx + 0x542190], 0
je 0x438d87
cmp dword [0xd46dbc], 0
mov dword [ebp - 0x20], 0xfaffffef
je 0x438d54
cmp dword [0x546b10], 0
jle 0x438d54
mov eax, dword [0x542134]
mov dword [ebp - 0x1c], eax
jmp 0x438d5b
mov dword [ebp - 0x1c], 0
push 8
lea eax, [ebp - 0x20]
push eax
push 0xc
push 0
push dword [ecx + 0x542194]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jns 0x438d87
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, eax
mov ecx, 0x681
call fcn.0043bcf0
push dword [0x546b14]
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.00437db0
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
mov eax, dword [0x5420dc]
cmp eax, dword [0xd4bed0]
je 0x438dd3
mov dword [0x5420a0], 3
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.00408c40
sub eax, dword [0x5420e4]
cmp eax, 0x1b5030
jbe 0x438dea
call fcn.00437db0
call fcn.004381f0
call fcn.00438720
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp cl, 0xff
je 0x438e17
call fcn.0043ce90
mov byte [0x5420a4], 0xff
mov dword [0x5420a0], 0
mov ecx, dword [ebp - 4]
xor ecx, ebp
pop esi
call fcn.004423fe
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret