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

Disassembly:
sub esp, 0x9a8
mov eax, dword [0x564020]
xor eax, esp
mov dword [esp + 0x9a4], eax
push ebx
mov ebx, dword [edi]
push ebp
push esi
xor ebp, ebp
push 0xff
lea eax, [esp + 0xb1]
push ebp
push eax
mov dword [esp + 0x34], ebp
mov dword [esp + 0x1c], ebx
mov byte [esp + 0xb8], 0
call sub.MSVCR90.dll_memset
mov esi, dword [ebx + 0x360]
mov dword [esp + 0x2c], ebp
mov eax, dword [ebx + 0x360]
add esp, 0xc
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x24], 1
mov dword [esp + 0xc], ebp
cmp eax, ebp
je 0x43c58d
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43c430
sub eax, edx
cmp eax, 1
jbe 0x43c58d
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43c447
sub eax, edx
cmp eax, 0x16
jae 0x43c45c
mov eax, 0x16
jmp 0x43c46a
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x43c461
sub eax, edx
inc eax
push 1
push eax
call dword [0x564048]
add esp, 8
mov dword [esp + 0xc], eax
cmp eax, ebp
jne 0x43c49c
pop esi
pop ebp
mov eax, 0x1b
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
cmp byte [esi], 0x3a
mov ebx, dword [sym.imp.MSVCR90.dll_strchr]
jne 0x43c54b
mov ebp, esi
test ebp, ebp
je 0x43c514
push 0x3a
push ebp
call ebx
mov esi, eax
add esp, 8
test esi, esi
je 0x43c514
mov ebp, dword [sym.imp.MSVCR90.dll_strtoul]
push 0xa
lea eax, [esi + 1]
push 0
push eax
call ebp
push eax
call fcn.00445170
movzx ecx, ax
push 0x2d
push esi
mov dword [esp + 0x30], ecx
call ebx
add esp, 0x18
test eax, eax
je 0x43c582
push 0xa
xor esi, esi
inc eax
push esi
push eax
call ebp
push eax
call fcn.00445170
movzx eax, ax
add esp, 0x10
mov dword [esp + 0x1c], eax
cmp word [esp + 0x18], ax
jbe 0x43c514
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0xc]
cmp byte [eax], 0
je 0x43c58d
mov edx, dword [edi + 0x3c]
push 0x401
lea ecx, [esp + 0x1b0]
push ecx
mov ebp, eax
mov eax, dword [edx + 4]
push ebp
push eax
call fcn.00495490
add esp, 0x10
test eax, eax
jne 0x43c62b
mov ebx, ebp
jmp 0x43c632
push 0x3a
push esi
call ebx
mov edx, dword [esp + 0x14]
mov ebp, eax
add esp, 8
test ebp, ebp
je 0x43c572
mov ecx, ebp
sub ecx, esi
push ecx
push esi
push edx
call dword [sym.imp.MSVCR90.dll_strncpy]
add esp, 0xc
jmp 0x43c4ad
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x43c576
jmp 0x43c514
movzx edx, word [esp + 0x18]
mov dword [esp + 0x1c], edx
jmp 0x43c514
mov eax, dword [edi + 0x130]
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x43c5ff
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.0042bd80
mov ecx, dword [esp + 0x18]
push eax
push str.getsockname___failed:__s
push ecx
call fcn.00427df0
mov eax, dword [esp + 0x20]
add esp, 0x14
test eax, eax
je 0x43c5e2
push eax
call dword [0x56403c]
add esp, 4
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
movzx ecx, word [esp + 0x2c]
push 0x401
lea edx, [esp + 0x1b0]
push edx
lea eax, [esp + 0x38]
push eax
push ecx
call fcn.00430a40
mov ebp, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x24], 0
lea ebx, [esp + 0x1ac]
lea edx, [esp + 0x20]
push edx
push 0
push ebx
push edi
call fcn.0041dcb0
add esp, 0x10
cmp eax, 1
jne 0x43c656
lea eax, [esp + 0x20]
push eax
push edi
call fcn.0041cf00
add esp, 8
mov eax, dword [esp + 0x20]
test eax, eax
je 0x43c672
mov ecx, dword [esp + 0x10]
mov esi, dword [eax]
push eax
push ecx
call fcn.0041dea0
add esp, 8
test esi, esi
jne 0x43c6b4
mov edx, dword [esp + 0x10]
push ebx
push str.failed_to_resolve_the_address_provided_to_PORT:__s
push edx
call fcn.00427df0
add esp, 0xc
test ebp, ebp
je 0x43c5e2
push ebp
call dword [0x56403c]
add esp, 4
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
test ebp, ebp
je 0x43c6c2
push ebp
call dword [0x56403c]
add esp, 4
mov ebx, dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ebp, dword [sym.imp.WS2_32.dll_socket]
mov edi, edi
cmp dword [esi + 8], 0
jne 0x43c6dc
mov eax, dword [edi + 0x74]
mov dword [esi + 8], eax
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 8]
mov eax, dword [esi + 4]
push ecx
push edx
push eax
call ebp
mov dword [esp + 0xc], eax
cmp eax, 0xffffffff
jne 0x43c731
call ebx
mov esi, dword [esi + 0x1c]
test esi, esi
jne 0x43c6d0
push eax
push edi
call fcn.0042bd80
mov ecx, dword [esp + 0x18]
push eax
push str.socket_failure:__s
push ecx
call fcn.00427df0
add esp, 0x14
lea eax, [esi + 0x1e]
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x18]
push edx
push eax
lea ecx, [esp + 0x34]
push ecx
call sub.MSVCR90.dll_memcpy
mov eax, dword [esp + 0x24]
mov edx, dword [esi + 0x10]
add esp, 0xc
mov dword [esp + 0x14], edx
movzx ebp, ax
cmp ax, word [esp + 0x1c]
ja 0x43c89a
mov ebx, dword [esp + 0x10]
cmp word [esp + 0x2c], 2
jne 0x43c777
push ebp
call dword [sym.imp.WS2_32.dll_htons]
mov word [esp + 0x2e], ax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0xc]
push eax
lea ecx, [esp + 0x30]
push ecx
push edx
call dword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x43c893
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp dword [esp + 0x24], 0
je 0x43c7f0
cmp eax, 0x2741
jne 0x43c7f0
push eax
push edi
call fcn.0042bd80
push eax
movzx eax, bp
push eax
push str.bind_port_hu__on_non_local_address_failed:__s
push ebx
call fcn.00427d60
mov eax, dword [edi + 0x130]
add esp, 0x18
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
push eax
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x43c80d
movzx ebp, word [esp + 0x18]
mov dword [esp + 0x24], eax
jmp 0x43c7fd
cmp eax, 0x2740
je 0x43c7fc
cmp eax, 0xd
jne 0x43c851
inc ebp
cmp bp, word [esp + 0x1c]
jbe 0x43c763
jmp 0x43c89a
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.0042bd80
push eax
push str.getsockname___failed:__s
push ebx
call fcn.00427df0
mov ecx, dword [esp + 0x20]
push ecx
push edi
call fcn.00428a60
add esp, 0x1c
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
push eax
push edi
call fcn.0042bd80
push eax
movzx edx, bp
push edx
push str.bind_port_hu__failed:__s
push ebx
call fcn.00427df0
mov eax, dword [esp + 0x24]
push eax
push edi
call fcn.00428a60
add esp, 0x20
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
cmp bp, word [esp + 0x1c]
jbe 0x43c8d4
mov ecx, dword [esp + 0x10]
push str.bind___failed__we_ran_out_of_ports_
push ecx
call fcn.00427df0
mov edx, dword [esp + 0x14]
push edx
push edi
call fcn.00428a60
add esp, 0x10
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
mov ebp, dword [esp + 0xc]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x30]
push ecx
push ebp
mov dword [esp + 0x20], 0x80
call dword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x43c935
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.0042bd80
push eax
push str.getsockname___failed:__s
push ebx
call fcn.00427df0
push ebp
push edi
call fcn.00428a60
add esp, 0x1c
pop esi
pop ebp
mov eax, 0x1e
pop ebx
mov ecx, dword [esp + 0x9a4]
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
push 1
push ebp
call dword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x43c957
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
push eax
push edi
call fcn.0042bd80
push eax
push str.socket_failure:__s
jmp 0x43c908
push 0x100
lea edx, [esp + 0xb0]
push edx
push esi
call fcn.0041da80
mov ebx, dword [esp + 0x9c4]
add esp, 0xc
cmp ebx, 2
je 0x43c9c6
mov ebp, dword [sym.imp.WS2_32.dll_ntohs]
mov cx, word [esp + 0x2c]
cmp dword [edi + 0x200], 0
jne 0x43c991
test ebx, ebx
je 0x43c9c0
cmp ebx, 1
jne 0x43c99c
cmp cx, 2
jne 0x43c9c0
movzx eax, cx
sub eax, 2
jne 0x43c9c0
mov eax, dword [esp + 0x2e]
push eax
call ebp
movzx esi, ax
test ebx, ebx
je 0x43ca1f
cmp ebx, 1
je 0x43ca8d
mov cx, word [esp + 0x2c]
inc ebx
cmp ebx, 2
jne 0x43c984
mov esi, dword [esp + 0x28]
mov dword [edi + 0x454], ebx
mov eax, dword [edi + 0x134]
cmp eax, 0xffffffff
je 0x43c9e5
push eax
push edi
call fcn.00428a60
add esp, 8
mov eax, dword [esp + 0xc]
mov dword [edi + 0x134], eax
mov dword [edi + 0x1e0], 1
mov eax, 0x1c
mov ecx, edi
call fcn.0043c2d0
mov ecx, dword [esp + 0x9b0]
mov eax, esi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.00419fc4
add esp, 0x9a8
ret
xor eax, eax
cmp word [esp + 0x2c], 2
movzx ecx, si
setne al
push ecx
lea edx, [esp + 0xb0]
push edx
lea ebp, [edi + 0x3f0]
inc eax
push eax
push str.EPRT
push str._s__d_s_hu
push ebp
call fcn.00460bd0
mov esi, eax
add esp, 0x18
test esi, esi
je 0x43c9ca
push esi
call fcn.0042b3e0
mov ecx, dword [esp + 0x14]
push eax
push str.Failure_sending_EPRT_command:__s
push ecx
call fcn.00427df0
mov edx, dword [esp + 0x1c]
push edx
push edi
call fcn.00428a60
add esp, 0x18
mov dword [ebp + 0x64], 1
xor eax, eax
jmp 0x43c9fe
lea ecx, [esp + 0x5b0]
lea edx, [esp + 0xac]
jmp 0x43caa0
mov al, byte [edx]
test al, al
je 0x43cab7
cmp al, 0x2e
jne 0x43caaf
mov byte [ecx], 0x2c
jmp 0x43cab1
mov byte [ecx], al
inc ecx
add edx, 1
jne 0x43caa0
movzx eax, si
mov edx, eax
and edx, 0xff
push edx
shr eax, 8
push eax
push str.__d__d
push 0x14
push ecx
mov byte [ecx], 0
call fcn.0042a7e0
lea eax, [esp + 0x5c4]
push eax
push str.PORT
lea eax, [edi + 0x3f0]
push str._s__s
push eax
call fcn.00460bd0
mov esi, eax
add esp, 0x24
test esi, esi
je 0x43c9ca
push esi
call fcn.0042b3e0
mov ecx, dword [esp + 0x14]
push eax
push str.Failure_sending_PORT_command:__s
push ecx
call fcn.00427df0
mov edx, dword [esp + 0x1c]
push edx
push edi
call fcn.00428a60
add esp, 0x18
xor eax, eax
jmp 0x43c9fe