Function at 0x47c67f
Capabilities:
Get local ipv4 addresses
Get socket information
Set socket configuration
Terminate process

Disassembly:
sub esp, 0x34
mov eax, dword [0x6ccd44]
xor eax, esp
mov dword [esp + 0x30], eax
push ebx
mov ebx, dword [esp + 0x40]
xor eax, eax
push ebp
push edi
inc eax
mov dword [esp + 0xc], ecx
push 0x1c
xor edi, edi
mov dword [esp + 0x18], eax
mov ebp, edx
mov dword [esp + 0x14], edi
pop ecx
mov dword [esp + 0x18], ecx
cmp word [ebx], ax
jne 0x47c6ba
xor eax, eax
jmp 0x47c8f3
push esi
push 4
pop edx
push 0x64
pop ecx
call fcn.004815ba
mov ecx, str.ILibAsyncServerSocket
mov esi, eax
call fcn.00480fb6
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x10]
push 0x28b
mov dword [esi + 0x10], eax
mov eax, ebp
push 0x71eda8
shl eax, 2
push 1
push eax
mov dword [esi], 0x47c0e8
mov dword [esi + 4], 0x47c15c
mov dword [esi + 8], 0x47c333
mov dword [esi + 0x40], 0x466239
mov dword [esi + 0x44], 0x466594
mov dword [esi + 0x48], fcn.004011c0
mov dword [esi + 0x4c], 0x46662a
mov dword [esi + 0x3c], 0x4665c8
mov dword [esi + 0x20], ebp
call fcn.005e7f10
add esp, 0x10
mov dword [esi + 0x24], eax
test eax, eax
jne 0x47c766
push 1
push esi
call fcn.005e7dd0
pop ecx
pop ecx
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0xfd
push 0x28c
mov edx, 0x71edd0
xor ecx, ecx
call fcn.00488a50
add esp, 0xc
jmp 0x47c840
xor eax, eax
inc eax
cmp word [ebx], ax
jne 0x47c7b5
push edi
push eax
push eax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x2c], eax
cmp eax, 0xffffffff
je 0x47c82a
push 4
lea eax, [esp + 0x1c]
push eax
push 0xfffffffffffffffb
push 0xffff
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x47c803
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x2a6
mov edx, str...microstackILibAsyncServerSocket.c
jmp 0x47c917
movzx eax, word [ebx + 2]
push eax
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esi + 0x30], ax
mov word [esi + 0x32], ax
xor eax, eax
push 6
inc eax
push eax
movzx eax, word [ebx]
push eax
call dword [sym.imp.WS2_32.dll_socket]
mov dword [esi + 0x2c], eax
cmp eax, 0xffffffff
je 0x47c82a
push 0x17
pop ecx
cmp word [ebx], cx
jne 0x47c783
push 4
lea ecx, [esp + 0x18]
push ecx
push 0x1b
push 0x29
push eax
call dword [sym.imp.WS2_32.dll_setsockopt]
test eax, eax
je 0x47c783
jmp 0x47c905
push 0x10
pop eax
push 0x17
pop ecx
cmp word [ebx], cx
push 0x1c
pop ecx
cmove eax, ecx
push eax
push ebx
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x47c847
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_closesocket]
xor ebx, ebx
inc ebx
push ebx
push dword [esi + 0x24]
call fcn.005e7dd0
push ebx
push esi
call fcn.005e7dd0
add esp, 0x10
xor eax, eax
jmp 0x47c8f2
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x28]
push eax
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_getsockname]
xor eax, eax
inc eax
cmp word [ebx], ax
je 0x47c873
push 0x17
pop eax
push dword [esp + 0x26]
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [esi + 0x30], ax
test ebp, ebp
jle 0x47c8bd
mov ecx, dword [esp + 0x10]
mov edx, 0x1000
push 4
push 0x47c425
push 0x47c3e3
push 0x47c3b1
push 0x47c35d
call fcn.0047cb05
mov ecx, dword [esi + 0x24]
add esp, 0x14
mov dword [ecx + edi*4], eax
mov eax, dword [esi + 0x24]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x47c8b8
mov dword [eax + 0x1d4], 0x47c444
inc edi
cmp edi, ebp
jl 0x47c877
lea eax, [esp + 0x20]
xor ebx, ebx
push eax
inc ebx
push 0x8004667e
mov dword [esp + 0x28], ebx
push dword [esi + 0x2c]
call dword [sym.imp.WS2_32.dll_ioctlsocket]
push 4
push dword [esi + 0x2c]
mov dword [esi + 0x34], ebx
call dword [sym.imp.WS2_32.dll_listen]
mov ecx, dword [esp + 0x10]
mov edx, esi
call fcn.004819aa
mov eax, esi
pop esi
mov ecx, dword [esp + 0x3c]
pop edi
pop ebp
pop ebx
xor ecx, esp
call fcn.005b35b0
add esp, 0x34
ret
push edi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x29b
mov edx, 0x71edf8
xor ecx, ecx
call fcn.00488a50
add esp, 0xc
push 0xfd
call fcn.005c3000
int3