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

Disassembly:
push ebp
lea ebp, [esp - 0x1cc]
sub esp, 0x24c
mov eax, dword [0x4bf070]
xor eax, ebp
mov dword [ebp + 0x1c8], eax
mov eax, dword [ebp + 0x1d4]
mov eax, dword [eax]
mov dword [ebp - 0x44], eax
lea eax, [ebp + 0x48]
mov dword [ebp - 0x74], eax
and dword [ebp - 0x68], 0
lea eax, [ebp + 0x48]
mov dword [ebp - 0x60], eax
lea eax, [ebp + 0x48]
mov dword [ebp - 0x50], eax
and dword [ebp - 0x58], 0
mov eax, dword [ebp - 0x44]
mov ax, word [eax + 0x1a8]
mov word [ebp - 0x4c], ax
mov eax, dword [ebp - 0x44]
mov eax, dword [eax + 0x1ac]
mov dword [ebp - 0x70], eax
push 4
pop eax
shl eax, 3
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx + eax + 0x528]
mov dword [ebp - 0x40], eax
cmp dword [ebp - 0x40], 0
jne 0x447788
movzx eax, word [ebp - 0x4c]
test eax, eax
jne 0x447788
xor eax, eax
jmp 0x447c9a
push 0x80
push 0
lea eax, [ebp + 0x48]
push eax
call fcn.004179d0
add esp, 0xc
cmp dword [ebp - 0x40], 0
je 0x447af0
push dword [ebp - 0x40]
call fcn.00421050
pop ecx
cmp eax, 0xff
jae 0x447af0
mov al, byte [0x4cc7e1]
mov byte [ebp + 0xc8], al
push 0xff
push 0
lea eax, [ebp + 0xc9]
push eax
call fcn.004179d0
add esp, 0xc
and dword [ebp - 0x64], 0
mov byte [ebp - 0x39], 0
mov byte [ebp - 0x45], 0
push dword [0x4c01b0]
call fcn.00421050
pop ecx
push eax
push dword [ebp - 0x40]
push dword [0x4c01b0]
call fcn.00421590
add esp, 0xc
test eax, eax
jne 0x447820
push dword [0x4c01b0]
call fcn.00421050
pop ecx
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x39], 1
jmp 0x447858
push dword [0x4c01b4]
call fcn.00421050
pop ecx
push eax
push dword [ebp - 0x40]
push dword [0x4c01b4]
call fcn.00421590
add esp, 0xc
test eax, eax
jne 0x447858
push dword [0x4c01b4]
call fcn.00421050
pop ecx
add eax, dword [ebp - 0x40]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x45], 1
movzx eax, byte [ebp - 0x45]
test eax, eax
jne 0x447902
push 0x100
lea eax, [ebp + 0xc8]
push eax
push dword [ebp - 0x40]
mov eax, dword [ebp + 0x1d4]
push dword [eax + 0x90]
push dword [ebp + 0x1e0]
push dword [ebp + 0x1dc]
call fcn.004685aa
add esp, 0x18
mov dword [ebp - 0x6c], eax
cmp dword [ebp - 0x6c], 0
je 0x4478aa
cmp dword [ebp - 0x6c], 1
je 0x4478cf
cmp dword [ebp - 0x6c], 2
je 0x4478d7
jmp 0x447902
movzx eax, byte [ebp - 0x39]
test eax, eax
je 0x4478cd
push dword [ebp - 0x40]
push str.Couldnt_bind_to_interface__s
push dword [ebp - 0x44]
call fcn.004465bf
add esp, 0xc
push 0x2d
pop eax
jmp 0x447c9a
jmp 0x447902
xor eax, eax
inc eax
jmp 0x447c9a
mov byte [ebp - 0x39], 1
push dword [ebp + 0x1dc]
lea eax, [ebp + 0xc8]
push eax
push dword [ebp - 0x40]
push str.Local_Interface__s_is_ip__s_using_address_family__i_n
push dword [ebp - 0x44]
call fcn.004460bd
add esp, 0x14
mov dword [ebp - 0x64], 1
movzx eax, byte [ebp - 0x39]
test eax, eax
jne 0x4479f2
mov eax, dword [ebp + 0x1d4]
mov eax, dword [eax + 0x2c0]
mov dword [ebp - 0x7c], eax
cmp dword [ebp + 0x1dc], 2
jne 0x447938
mov eax, dword [ebp + 0x1d4]
mov dword [eax + 0x2c0], 1
jmp 0x447951
cmp dword [ebp + 0x1dc], 0x17
jne 0x447951
mov eax, dword [ebp + 0x1d4]
mov dword [eax + 0x2c0], 2
lea eax, [ebp - 0x58]
push eax
push 0
push dword [ebp - 0x40]
push dword [ebp + 0x1d4]
call fcn.00449b1e
add esp, 0x10
mov dword [ebp - 0x78], eax
cmp dword [ebp - 0x78], 1
jne 0x447982
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x1d4]
call fcn.00453f4b
pop ecx
pop ecx
mov eax, dword [ebp + 0x1d4]
mov ecx, dword [ebp - 0x7c]
mov dword [eax + 0x2c0], ecx
cmp dword [ebp - 0x58], 0
je 0x4479ee
push 0x100
lea eax, [ebp + 0xc8]
push eax
mov eax, dword [ebp - 0x58]
push dword [eax]
call fcn.00449aa5
add esp, 0xc
mov eax, dword [ebp - 0x58]
mov eax, dword [eax]
push dword [eax + 4]
lea eax, [ebp + 0xc8]
push eax
push dword [ebp + 0x1dc]
push dword [ebp - 0x40]
push str.Name__s_family__i_resolved_to__s_family__i_n
push dword [ebp - 0x44]
call fcn.004460bd
add esp, 0x18
push dword [ebp - 0x58]
push dword [ebp - 0x44]
call fcn.00449d4d
pop ecx
pop ecx
mov dword [ebp - 0x64], 1
jmp 0x4479f2
or dword [ebp - 0x64], 0xffffffff
cmp dword [ebp - 0x64], 0
jle 0x447ac3
cmp dword [ebp + 0x1dc], 0x17
jne 0x447a7e
push 0x25
lea eax, [ebp + 0xc8]
push eax
call fcn.004180b0
pop ecx
pop ecx
mov dword [ebp - 0x5c], eax
cmp dword [ebp - 0x5c], 0
je 0x447a2b
mov eax, dword [ebp - 0x5c]
mov byte [eax], 0
mov eax, dword [ebp - 0x5c]
inc eax
mov dword [ebp - 0x5c], eax
mov eax, dword [ebp - 0x50]
add eax, 8
push eax
lea eax, [ebp + 0xc8]
push eax
push 0x17
call fcn.00468562
add esp, 0xc
test eax, eax
jle 0x447a75
push 0x17
pop eax
mov ecx, dword [ebp - 0x50]
mov word [ecx], ax
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x50]
mov word [ecx + 2], ax
cmp dword [ebp - 0x5c], 0
je 0x447a75
push dword [ebp - 0x5c]
call fcn.004222ca
pop ecx
mov ecx, dword [ebp - 0x50]
mov dword [ecx + 0x18], eax
mov dword [ebp - 0x68], 0x1c
jmp 0x447ac3
cmp dword [ebp + 0x1dc], 2
jne 0x447ac3
mov eax, dword [ebp - 0x60]
add eax, 4
push eax
lea eax, [ebp + 0xc8]
push eax
push 2
call fcn.00468562
add esp, 0xc
test eax, eax
jle 0x447ac3
push 2
pop eax
mov ecx, dword [ebp - 0x60]
mov word [ecx], ax
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x60]
mov word [ecx + 2], ax
mov dword [ebp - 0x68], 0x10
cmp dword [ebp - 0x64], 1
jge 0x447aee
mov eax, dword [ebp - 0x44]
mov byte [eax + 0x48b0], 0
push dword [ebp - 0x40]
push str.Couldnt_bind_to__s
push dword [ebp - 0x44]
call fcn.004465bf
add esp, 0xc
push 0x2d
pop eax
jmp 0x447c9a
jmp 0x447b44
cmp dword [ebp + 0x1dc], 0x17
jne 0x447b1b
push 0x17
pop eax
mov ecx, dword [ebp - 0x50]
mov word [ecx], ax
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x50]
mov word [ecx + 2], ax
mov dword [ebp - 0x68], 0x1c
jmp 0x447b44
cmp dword [ebp + 0x1dc], 2
jne 0x447b44
push 2
pop eax
mov ecx, dword [ebp - 0x60]
mov word [ecx], ax
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_htons]
mov ecx, dword [ebp - 0x60]
mov word [ecx + 2], ax
mov dword [ebp - 0x68], 0x10
push dword [ebp - 0x68]
push dword [ebp - 0x74]
push dword [ebp + 0x1d8]
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
jl 0x447bfa
mov dword [ebp - 0x80], 0x80
push 0x80
push 0
lea eax, [ebp - 0x38]
push eax
call fcn.004179d0
add esp, 0xc
lea eax, [ebp - 0x80]
push eax
lea eax, [ebp - 0x38]
push eax
push dword [ebp + 0x1d8]
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jge 0x447bd1
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x48b4], ecx
push dword [ebp - 0x54]
push dword [ebp + 0x1d4]
call fcn.004680bc
pop ecx
pop ecx
push eax
push dword [ebp - 0x54]
push 0x4bff3c
push dword [ebp - 0x44]
call fcn.004465bf
add esp, 0x10
push 0x2d
pop eax
jmp 0x447c9a
movzx eax, word [ebp - 0x4c]
push eax
push str.Local_port:__hu_n
push dword [ebp - 0x44]
call fcn.004460bd
add esp, 0xc
mov eax, dword [ebp + 0x1d4]
mov byte [eax + 0x28f], 1
xor eax, eax
jmp 0x447c9a
mov eax, dword [ebp - 0x70]
dec eax
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
jle 0x447c57
movzx eax, word [ebp - 0x4c]
push eax
push str.Bind_to_local_port__hu_failed__trying_next_n
push dword [ebp - 0x44]
call fcn.004460bd
add esp, 0xc
mov ax, word [ebp - 0x4c]
add ax, 1
mov word [ebp - 0x4c], ax
mov eax, dword [ebp - 0x74]
movzx eax, word [eax]
cmp eax, 2
jne 0x447c45
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [ebp - 0x60]
mov word [ecx + 2], ax
jmp 0x447c55
push dword [ebp - 0x4c]
call dword [sym.imp.WS2_32.dll_ntohs]
mov ecx, dword [ebp - 0x50]
mov word [ecx + 2], ax
jmp 0x447c59
jmp 0x447c5e
jmp 0x447b44
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [ebp - 0x54], eax
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x54]
mov dword [eax + 0x48b4], ecx
push dword [ebp - 0x54]
push dword [ebp + 0x1d4]
call fcn.004680bc
pop ecx
pop ecx
push eax
push dword [ebp - 0x54]
push str.bind_failed_with_errno__d:__s
push dword [ebp - 0x44]
call fcn.004465bf
add esp, 0x10
push 0x2d
pop eax
mov ecx, dword [ebp + 0x1c8]
xor ecx, ebp
call fcn.0041553e
add ebp, 0x1cc
mov esp, ebp
pop ebp
ret