Function at 0x100451f0
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2a4
mov eax, dword [0x10084044]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x29c], edx
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x290], 0
mov eax, dword [edi + 0xc]
mov ebx, dword [edi + 0x520]
movzx esi, word [edi + 0x188]
mov dword [ebp - 0x2a0], eax
mov eax, dword [edi + 0x18c]
mov dword [ebp - 0x294], eax
test ebx, ebx
jne 0x10045251
test si, si
je 0x10045609
push 0x80
lea eax, [ebp - 0x288]
push 0
push eax
call fcn.10015420
add esp, 0xc
test ebx, ebx
je 0x10045495
mov ecx, ebx
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10045274
sub ecx, edx
cmp ecx, 0xff
jae 0x10045495
push 0x100
lea eax, [ebp - 0x108]
push 0
push eax
call fcn.10015420
mov ecx, 0x10084af8
mov byte [ebp - 0x289], 0
add esp, 0xc
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100452b0
sub ecx, edx
push ecx
push ebx
push 0x10084af8
call fcn.1001e6f0
add esp, 0xc
test eax, eax
jne 0x100452e6
mov ecx, 0x10084af8
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100452d4
sub ecx, edx
add ebx, ecx
mov cl, 1
jmp 0x100453d4
mov ecx, str.host_
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100452f0
sub ecx, edx
push ecx
push ebx
push str.host_
call fcn.1001e6f0
add esp, 0xc
test eax, eax
jne 0x100453ce
mov ecx, str.host_
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10045318
sub ecx, edx
add ebx, ecx
cmp dword [ebp + 8], 2
mov ecx, dword [ebp - 0x2a0]
mov al, byte [ecx + 0xfc]
mov byte [ebp - 0x289], al
jne 0x10045342
mov byte [ecx + 0xfc], 1
lea eax, [ebp - 0x290]
mov edx, ebx
push eax
push 0
push 0
mov ecx, edi
call fcn.1005bc50
add esp, 0xc
cmp eax, 1
jne 0x1004536b
lea edx, [ebp - 0x290]
mov ecx, edi
call fcn.1004dfc0
cmp dword [ebp - 0x290], 0
mov ecx, dword [ebp - 0x2a0]
mov al, byte [ebp - 0x289]
mov byte [ecx + 0xfc], al
je 0x100453f6
mov ebx, dword [ebp - 0x290]
lea edx, [ebp - 0x108]
push 0x100
mov ecx, dword [ebx]
call fcn.1005bc20
add esp, 4
mov edx, ebx
mov ecx, edi
call fcn.1005bea0
mov eax, dword [ebx]
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 4]
je 0x1004544f
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10013577
mov esp, ebp
pop ebp
ret
mov cl, byte [ebp - 0x289]
sub esp, 8
call fcn.10061830
add esp, 8
sub eax, 0
je 0x10045422
sub eax, 1
je 0x100453b8
sub eax, 1
je 0x1004544f
test cl, cl
je 0x10045323
push ebx
push str.Couldnt_bind_to__s
push edi
mov byte [edi + 0xca7], 0
call fcn.10044190
add esp, 0xc
mov eax, 0x2d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10013577
mov esp, ebp
pop ebp
ret
test cl, cl
je 0x10045323
push ebx
push str.Couldnt_bind_to_interface__s
push edi
call fcn.10044190
add esp, 0xc
mov eax, 0x2d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10013577
mov esp, ebp
pop ebp
ret
cmp dword [ebp + 8], 2
jne 0x100454c2
lea eax, [ebp - 0x284]
push eax
lea edx, [ebp - 0x108]
call fcn.10061820
add esp, 4
test eax, eax
jle 0x100454c2
mov eax, 2
push esi
mov word [ebp - 0x288], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x286], ax
mov eax, 0x10
mov dword [ebp - 0x298], eax
jmp 0x100454c4
cmp dword [ebp + 8], 2
jne 0x100454c2
mov eax, 2
push esi
mov word [ebp - 0x288], ax
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x286], ax
mov eax, 0x10
mov dword [ebp - 0x298], eax
jmp 0x100454c4
xor eax, eax
mov ebx, dword [sym.imp.WS2_32.dll_bind]
push eax
lea eax, [ebp - 0x288]
push eax
push dword [ebp - 0x29c]
call ebx
test eax, eax
jns 0x10045530
nop
mov eax, dword [ebp - 0x294]
dec eax
mov dword [ebp - 0x294], eax
test eax, eax
jle 0x100455b7
inc esi
test si, si
je 0x100455b7
cmp word [ebp - 0x288], 2
jne 0x10045517
push esi
call dword [sym.imp.WS2_32.dll_ntohs]
mov word [ebp - 0x286], ax
push dword [ebp - 0x298]
lea eax, [ebp - 0x288]
push eax
push dword [ebp - 0x29c]
call ebx
test eax, eax
js 0x100454e0
push 0x80
lea eax, [ebp - 0x88]
mov dword [ebp - 0x294], 0x80
push 0
push eax
call fcn.10015420
add esp, 0xc
lea eax, [ebp - 0x294]
push eax
lea eax, [ebp - 0x88]
push eax
push dword [ebp - 0x29c]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jns 0x100455fc
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
lea edx, [ebp - 0x208]
push ecx
mov ecx, esi
mov dword [edi + 0x900], esi
call fcn.10061350
add esp, 4
push eax
push esi
push str.getsockname___failed_with_errno__d:__s
push edi
call fcn.10044190
add esp, 0x10
mov eax, 0x2d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10013577
mov esp, ebp
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
lea edx, [ebp - 0x108]
push ecx
mov ecx, esi
mov dword [edi + 0x900], esi
call fcn.10061350
add esp, 4
push eax
push esi
push str.bind_failed_with_errno__d:__s
push edi
call fcn.10044190
add esp, 0x10
mov eax, 0x2d
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10013577
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x2a0]
mov byte [eax + 0x26b], 1
mov ecx, dword [ebp - 4]
xor eax, eax
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.10013577
mov esp, ebp
pop ebp
ret