Function at 0x46b7bb
Capabilities:
Set socket configuration
Terminate process

Disassembly:
sub esp, 0x30
mov eax, dword [0x6b0d44]
xor eax, esp
mov dword [esp + 0x2c], eax
push ebx
push ebp
push 0x11d
push 0x760704
push 1
push 0x7c
mov ebp, ecx
call fcn.005ce020
mov ebx, eax
add esp, 0x10
test ebx, ebx
jne 0x46b807
push 0x11e
push 0x760728
push 0x76074c
call fcn.004010b4
add esp, 0xc
xor eax, eax
jmp 0x46ba00
push esi
push edi
push 0x7c
xor edi, edi
push edi
push ebx
call fcn.0059de40
mov esi, dword [esp + 0x50]
lea edi, [esp + 0x1c]
xor eax, eax
add esp, 0xc
stosd dword es:[edi], eax
push 2
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
pop eax
push esi
mov word [esp + 0x14], ax
call dword [sym.imp.WS2_32.dll_htons]
push 7
pop ecx
mov word [esp + 0x12], ax
lea edi, [esp + 0x20]
xor eax, eax
push 0x17
rep stosd dword es:[edi], eax
pop eax
push esi
mov word [esp + 0x24], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x22], ax
mov eax, dword [esp + 0x54]
mov word [ebx + 0x38], si
mov esi, dword [esp + 0x48]
mov dword [ebx + 0x14], str.ILibMulticastSocket
mov dword [ebx + 8], 0x46b7af
mov dword [ebx + 0xc], ebp
mov dword [ebx + 0x30], 4
mov dword [ebx + 0x34], 1
mov dword [ebx + 0x3c], 0x401304
mov dword [ebx + 0x28], eax
test esi, esi
je 0x46b943
lea edi, [ebx + 0x40]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor edi, edi
cmp word [ebx + 0x42], di
jne 0x46b8b2
push dword [esp + 0x44]
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebx + 0x42], ax
push ebx
push edi
push 0x46b2b0
lea eax, [esp + 0x1c]
xor edx, edx
push 1
push eax
mov ecx, ebp
call fcn.0046a1b2
add esp, 0x14
mov dword [ebx + 0x1c], eax
test eax, eax
jne 0x46b8f9
push 1
push ebx
call fcn.005cdee0
push 0x13c
push 0x760778
push 0x76079c
call fcn.004010b4
add esp, 0x14
xor eax, eax
jmp 0x46b9fe
push 4
lea ecx, [ebx + 0x30]
push ecx
push 0xa
push edi
push dword [eax + 0x30]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
jne 0x46ba11
mov eax, dword [ebx + 0x1c]
lea ecx, [ebx + 0x34]
push 4
push ecx
push 0xb
push edi
push dword [eax + 0x30]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x46b945
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x141
mov edx, 0x7607d8
jmp 0x46ba23
xor edi, edi
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x46b9ea
push ebx
push edi
push 0x46b2d9
lea eax, [esp + 0x2c]
xor edx, edx
push 1
push eax
mov ecx, ebp
call fcn.0046a1b2
add esp, 0x14
mov dword [ebx + 0x20], eax
test eax, eax
je 0x46b9ea
push 7
lea edi, [ebx + 0x50]
pop ecx
rep movsd dword es:[edi], dword [esi]
xor edi, edi
cmp word [ebx + 0x52], di
jne 0x46b990
push dword [esp + 0x44]
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebx + 0x52], ax
mov eax, dword [ebx + 0x20]
lea ecx, [ebx + 0x30]
mov esi, dword [sym.imp.WS2_32.dll_setsockopt]
push 4
push ecx
push 0xa
push 0x29
push dword [eax + 0x30]
call esi
test eax, eax
je 0x46b9c0
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x156
mov edx, 0x7607fc
jmp 0x46ba23
mov eax, dword [ebx + 0x20]
lea ecx, [ebx + 0x34]
push 4
push ecx
push 0xb
push 0x29
push dword [eax + 0x30]
call esi
test eax, eax
je 0x46b9ea
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x157
mov edx, 0x760820
jmp 0x46ba23
xor edx, edx
mov ecx, ebx
call fcn.0046b30e
mov edx, ebx
mov ecx, ebp
call fcn.0046c508
mov eax, ebx
pop edi
pop esi
mov ecx, dword [esp + 0x34]
pop ebp
pop ebx
xor ecx, esp
call fcn.0059b3f0
add esp, 0x30
ret
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x140
mov edx, 0x7607b4
xor ecx, ecx
call fcn.0047145c
add esp, 0xc
push 0xfd
call fcn.005aae60
int3