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

Disassembly:
push ebp
mov ebp, eax
push edi
push esi
push ebx
sub esp, 0x9ec
lea edi, [esp + 0xe0]
lea ecx, [esp + 0xdf]
mov dword [esp + 0x38], edx
mov edx, dword [eax]
sub ecx, edi
xor eax, eax
mov dword [esp + 0xdf], 0
add ecx, 0x100
mov dword [esp + 0x2c], edx
shr ecx, 2
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0x1db], 0
rep stosd dword es:[edi], eax
mov dword [esp + 0x54], 0
mov edi, dword [edx + 0x540]
test edi, edi
je 0x43ed42
mov dword [esp], edi
call sym._strlen
cmp eax, 1
jbe 0x43ed40
mov edx, 0x41
mov dword [esp + 4], 1
cmp eax, edx
cmovb eax, edx
add eax, 1
mov dword [esp], eax
call dword [0x45e804]
mov esi, eax
test eax, eax
je 0x43f491
movzx ebx, byte [edi]
cmp bl, 0x5b
je 0x43f3b8
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sym._strchr
cmp bl, 0x3a
je 0x43ec9e
test eax, eax
mov dword [esp + 0x24], eax
je 0x43f3f0
lea eax, [esp + 0x58]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov dword [esp], 0x17
call sym._Curl_inet_pton
mov edx, dword [esp + 0x24]
cmp eax, 1
je 0x43f3f0
mov eax, edx
mov dword [esp + 4], edi
sub eax, edi
mov dword [esp], esi
mov dword [esp + 8], eax
mov dword [esp + 0x24], edx
call sym._strncpy
mov edi, dword [esp + 0x24]
mov dword [esp + 4], 0x3a
mov dword [esp], edi
call sym._strchr
mov ebx, eax
test eax, eax
je 0x43f3fc
lea eax, [eax + 1]
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._strtoul
mov dword [esp], eax
call sym._curlx_ultous
mov dword [esp + 4], 0x2d
mov dword [esp], ebx
mov edi, eax
mov word [esp + 0x32], ax
call sym._strchr
mov word [esp + 0x24], di
test eax, eax
je 0x43ed30
add eax, 1
mov dword [esp + 8], 0xa
mov dword [esp + 4], 0
mov dword [esp], eax
call sym._strtoul
mov dword [esp], eax
call sym._curlx_ultous
mov word [esp + 0x24], ax
cmp ax, di
jb 0x43f3fc
lea esi, [esi]
cmp byte [esi], 0
jne 0x43ef68
mov edi, esi
jmp 0x43ed50
xor edi, edi
xor eax, eax
xor edx, edx
mov word [esp + 0x24], ax
mov word [esp + 0x32], dx
lea eax, [esp + 0x50]
mov dword [esp + 0x50], pe_nt_image_headers32
mov dword [esp + 8], eax
lea eax, [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x194]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getsockname]
sub esp, 0xc
test eax, eax
jne 0x43f44d
movzx eax, word [esp + 0x58]
lea ebx, [esp + 0x5df]
mov dword [esp + 0xc], 0x401
mov dword [esp + 8], ebx
cmp ax, 0x17
je 0x43ef48
lea edx, [esp + 0x5c]
mov dword [esp], eax
mov dword [esp + 4], edx
call sym._Curl_inet_ntop
mov byte [esp + 0x28], 0
mov esi, edi
lea edi, [esp + 0x54]
mov dword [esp + 8], 0
mov dword [esp + 0xc], edi
mov dword [esp + 4], ebx
mov dword [esp], ebp
call sym._Curl_resolv
cmp eax, 1
je 0x43f328
mov eax, dword [esp + 0x54]
test eax, eax
je 0x43f340
mov edi, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], edi
mov dword [esp], eax
call sym._Curl_resolv_unlock
test edi, edi
je 0x43f340
mov dword [esp], esi
lea ebx, [esp + 0x4c]
call dword [0x45e810]
mov dword [esp + 0x4c], 0xffffffff
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp + 4], eax
mov dword [esp], ebp
call sym._Curl_socket
test eax, eax
jne 0x43f370
mov esi, dword [esp + 0x34]
mov dword [esp + 0x3c], eax
lea edi, [esp + 0x58]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x18]
mov dword [esp], edi
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [esi + 0x10]
movzx edx, word [esp + 0x32]
movzx ebx, word [esp + 0x32]
mov dword [esp + 0x50], eax
cmp word [esp + 0x24], dx
jb 0x43efee
lea esi, [esi]
movzx esi, bx
mov dword [esp], esi
call dword [sym.imp.WS2_32.dll_htons]
sub esp, 4
mov word [esp + 0x5a], ax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_bind]
sub esp, 0xc
test eax, eax
je 0x43f070
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2741
jne 0x43efd0
cmp byte [esp + 0x28], 0
je 0x43efd0
mov dword [esp + 4], 0x2741
mov dword [esp], ebp
call sym._Curl_strerror
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], str.bind_port_hu__on_non_local_address_failed:__s_n
mov dword [esp], eax
call sym._Curl_infof
lea eax, [esp + 0x50]
mov dword [esp + 4], edi
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x194]
mov dword [esp + 0x50], pe_nt_image_headers32
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getsockname]
sub esp, 0xc
test eax, eax
jne 0x43f030
mov byte [esp + 0x28], 0
movzx ebx, word [esp + 0x32]
jmp 0x43ee88
lea eax, [esp + 0x60]
mov dword [esp], 0x17
mov dword [esp + 4], eax
call sym._Curl_inet_ntop
jmp 0x43edb4
mov eax, dword [ebp + 0x50]
mov edi, dword [ebp + 0x8c]
lea ebx, [esp + 0x5df]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call sym._Curl_ipv6_scope
mov dword [esp + 0x14], 0x401
mov dword [esp + 0x10], ebx
mov dword [esp + 0xc], esi
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov eax, dword [ebp + 0x50]
mov eax, dword [eax + 4]
mov dword [esp], eax
call sym._Curl_if2ip
cmp eax, 1
je 0x43f018
cmp eax, 2
je 0x43efbd
test eax, eax
jne 0x43ed39
mov ebx, esi
mov byte [esp + 0x28], 1
jmp 0x43edbb
cmp eax, 0x2740
je 0x43efe0
cmp eax, 0xd
jne 0x43f410
add ebx, 1
cmp word [esp + 0x24], bx
jae 0x43ee88
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], str.bind___failed__we_ran_out_of_ports_
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_closesocket
lea esi, [esi]
mov dword [esp + 0x3c], 0x1e
mov eax, dword [esp + 0x3c]
add esp, 0x9ec
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_strerror
mov dword [esp + 4], str.getsockname___failed:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_closesocket
jmp 0x43f018
cmp word [esp + 0x24], bx
jb 0x43efee
lea eax, [esp + 0x50]
mov dword [esp + 0x50], pe_nt_image_headers32
mov dword [esp + 8], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getsockname]
sub esp, 0xc
test eax, eax
jne 0x43f030
mov eax, dword [esp + 0x4c]
mov dword [esp + 4], 1
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_listen]
sub esp, 8
mov esi, eax
test eax, eax
jne 0x43f49e
lea eax, [esp + 0xdf]
mov dword [esp + 8], 0x100
mov dword [esp + 4], eax
mov eax, dword [esp + 0x34]
mov dword [esp], eax
call sym._Curl_printable_address
cmp byte [ebp + 0x26d], 0
jne 0x43f0fa
cmp byte [ebp + 0x263], 0
jne 0x43f485
mov ebx, dword [esp + 0x38]
cmp ebx, 2
je 0x43f2be
mov edi, dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, word [esp + 0x58]
mov dword [esp + 0x28], esi
movzx edx, byte [ebp + 0x26d]
mov dword [esp + 0x24], edi
lea esi, [esi]
test ebx, ebx
sete cl
mov esi, ecx
cmp dl, 1
je 0x43f138
test cl, cl
jne 0x43f168
cmp ebx, 1
je 0x43f2b0
cmp ax, 2
je 0x43f310
cmp ax, 0x17
je 0x43f280
add ebx, 1
test ebx, ebx
sete cl
mov esi, ecx
cmp dl, 1
je 0x43f138
test cl, cl
je 0x43f138
mov dword [esp + 0x38], 1
cmp ax, 2
jne 0x43f2be
movzx eax, word [esp + 0x5a]
mov ebx, 0x2c
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
sub esp, 4
mov ecx, eax
movzx eax, byte [esp + 0xdf]
mov edx, dword [esp + 0x38]
test al, al
jne 0x43f1b2
jmp 0x43f55e
mov edx, esi
cmp al, 0x2e
lea esi, [edx + 1]
cmove eax, ebx
mov byte [esp + edx + 0x1de], al
movzx eax, byte [esp + esi + 0xde]
test al, al
jne 0x43f1b0
mov eax, edx
lea edx, [esp + 0x1df]
add eax, edx
movzx edx, cl
movzx ecx, ch
mov byte [eax], 0
mov esi, 1
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 8], str.__d__d
mov dword [esp + 4], 0x14
mov dword [esp], eax
call sym._curl_msnprintf
lea eax, [esp + 0x1df]
mov dword [esp + 8], str.PORT
mov dword [esp + 0xc], eax
lea eax, [ebp + 0x428]
mov dword [esp + 4], str._s__s
mov dword [esp], eax
call sym._Curl_pp_sendf
mov ebx, eax
test eax, eax
je 0x43f2c3
mov dword [esp], eax
call sym._curl_easy_strerror
mov dword [esp + 4], str.Failure_sending_PORT_command:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [esp + 0x3c], ebx
mov dword [ebp + 0x498], 0
jmp 0x43f020
movzx eax, word [esp + 0x5a]
mov dword [esp], eax
mov eax, dword [esp + 0x24]
call eax
sub esp, 4
mov edx, esi
test dl, dl
jne 0x43f4c1
movzx eax, word [esp + 0x58]
movzx edx, byte [ebp + 0x26d]
add ebx, 1
jmp 0x43f128
mov dword [esp + 0x38], ebx
cmp ax, 2
je 0x43f17a
mov esi, 2
mov eax, dword [ebp + 0x198]
mov dword [ebp + 0x48c], esi
cmp eax, 0xffffffff
je 0x43f2e0
mov dword [esp + 4], eax
mov dword [esp], ebp
call sym._Curl_closesocket
mov eax, dword [esp + 0x4c]
mov byte [ebp + 0x266], 1
mov dword [ebp + 0x498], 0x1c
mov dword [ebp + 0x198], eax
mov eax, dword [esp + 0x3c]
add esp, 0x9ec
pop ebx
pop esi
pop edi
pop ebp
ret
movzx eax, word [esp + 0x5a]
mov dword [esp], eax
call edi
sub esp, 4
jmp 0x43f291
mov dword [esp + 4], edi
mov dword [esp], ebp
call sym._Curl_resolver_wait_resolv
jmp 0x43ede0
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], ebx
mov dword [esp + 4], str.failed_to_resolve_the_address_provided_to_PORT:__s
mov dword [esp], eax
call sym._Curl_failf
mov dword [esp], esi
call dword [0x45e810]
jmp 0x43f018
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov edx, dword [esp + 0x34]
mov ecx, dword [edx + 0x1c]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x43ee1f
mov dword [esp + 4], eax
mov dword [esp], ebp
call sym._Curl_strerror
mov dword [esp + 4], str.socket_failure:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._Curl_failf
jmp 0x43f018
mov dword [esp + 4], 0x5d
mov dword [esp], edi
call sym._strchr
mov ebx, eax
test eax, eax
je 0x43f3fc
add edi, 1
mov dword [esp], esi
sub eax, edi
mov dword [esp + 4], edi
mov edi, ebx
mov dword [esp + 8], eax
call sym._strncpy
jmp 0x43ec9e
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._strcpy
xor ecx, ecx
xor ebx, ebx
mov word [esp + 0x24], cx
mov word [esp + 0x32], bx
jmp 0x43ed30
mov dword [esp + 4], eax
mov dword [esp], ebp
call sym._Curl_strerror
mov dword [esp + 8], esi
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], str.bind_port_hu__failed:__s
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_closesocket
jmp 0x43f018
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_strerror
mov dword [esp + 4], str.getsockname___failed:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._Curl_failf
mov dword [esp], edi
call dword [0x45e810]
jmp 0x43f018
mov byte [ebp + 0x26d], 1
jmp 0x43f0fa
mov dword [esp + 0x3c], 0x1b
jmp 0x43f020
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_strerror
mov dword [esp + 4], str.socket_failure:__s
mov dword [esp + 8], eax
jmp 0x43f04e
movzx eax, ax
xor edx, edx
mov esi, dword [esp + 0x28]
cmp word [esp + 0x58], 2
mov dword [esp + 0x14], eax
setne dl
lea eax, [esp + 0xdf]
mov dword [esp + 0x10], eax
add edx, 1
lea eax, [ebp + 0x428]
mov dword [esp + 0xc], edx
mov dword [esp + 8], str.EPRT
mov dword [esp + 4], str._s__d_s_hu
mov dword [esp], eax
call sym._Curl_pp_sendf
mov ebx, eax
test eax, eax
je 0x43f2c3
mov dword [esp], eax
call sym._curl_easy_strerror
mov dword [esp + 4], str.Failure_sending_EPRT_command:__s
mov dword [esp + 8], eax
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
call sym._Curl_failf
mov eax, dword [esp + 0x4c]
mov dword [esp], ebp
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [esp + 0x3c], ebx
mov dword [ebp + 0x48c], 1
mov dword [ebp + 0x498], 0
jmp 0x43f020
lea eax, [esp + 0x1df]
jmp 0x43f1d8