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

Disassembly:
push ebp
mov ecx, 0x3e
push edi
push esi
mov esi, eax
push ebx
sub esp, 0x9ec
mov eax, dword [eax]
mov dword [esp + 0x3c], edx
lea edi, [esp + 0xe4]
mov dword [esp + 0x2c], eax
mov edx, eax
xor eax, eax
mov dword [esp + 0xe3], 0
mov dword [esp + 0x1db], 0
mov dword [esp + 0x4c], 0xffffffff
mov dword [esp + 0xdf], 0
rep stosd dword es:[edi], eax
mov dword [esp + 0x54], 0
mov ebp, dword [edx + 0x540]
test ebp, ebp
je 0x43ed42
mov dword [esp], ebp
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 [0x45bc84]
mov ebx, eax
test eax, eax
je 0x43f451
movzx edx, byte [ebp]
cmp dl, 0x5b
je 0x43f380
mov dword [esp + 4], 0x3a
mov dword [esp], ebp
mov byte [esp + 0x28], dl
call sym._strchr
movzx edx, byte [esp + 0x28]
mov edi, eax
cmp dl, 0x3a
je 0x43ec9c
test eax, eax
je 0x43f3b8
lea eax, [esp + 0x58]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp], 0x17
call sym._Curl_inet_pton
cmp eax, 1
je 0x43f3b8
mov eax, edi
mov dword [esp + 4], ebp
sub eax, ebp
mov dword [esp], ebx
mov ebp, edi
mov dword [esp + 8], eax
call sym._strncpy
mov dword [esp + 4], 0x3a
mov dword [esp], ebp
call sym._strchr
mov edi, eax
test eax, eax
je 0x43f3a0
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], edi
mov ebp, eax
mov word [esp + 0x32], ax
call sym._strchr
mov word [esp + 0x28], bp
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 + 0x28], ax
cmp ax, bp
jb 0x43f3a0
lea esi, [esi]
cmp byte [ebx], 0
jne 0x43ef68
mov ebp, ebx
jmp 0x43ed50
xor ebp, ebp
xor eax, eax
xor edx, edx
mov word [esp + 0x28], 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 [esi + 0x194]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_getsockname]
sub esp, 0xc
test eax, eax
jne 0x43f40d
movzx eax, word [esp + 0x58]
lea edi, [esp + 0x5df]
mov dword [esp + 0xc], 0x401
mov dword [esp + 8], edi
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 + 0x31], 0
mov ebx, ebp
lea ebp, [esp + 0x54]
mov dword [esp + 8], 0
mov dword [esp + 0xc], ebp
mov dword [esp + 4], edi
mov dword [esp], esi
call sym._Curl_resolv
cmp eax, 1
je 0x43f1e8
mov eax, dword [esp + 0x54]
test eax, eax
je 0x43f200
mov ebp, dword [eax]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x34], ebp
mov dword [esp], eax
call sym._Curl_resolv_unlock
test ebp, ebp
je 0x43f200
mov dword [esp], ebx
lea ebx, [esp + 0x4c]
call dword [0x45bc90]
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], esi
call sym._Curl_socket
test eax, eax
jne 0x43f230
mov edi, dword [esp + 0x34]
mov dword [esp + 0x38], eax
lea ebp, [esp + 0x58]
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0x10]
mov dword [esp], ebp
mov dword [esp + 8], edx
mov dword [esp + 4], eax
call sym._memcpy
mov eax, dword [edi + 0x10]
movzx ecx, word [esp + 0x32]
movzx ebx, word [esp + 0x32]
mov dword [esp + 0x50], eax
cmp word [esp + 0x28], cx
jb 0x43efee
lea esi, [esi]
movzx edi, bx
mov dword [esp], edi
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], ebp
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 + 0x31], 0
je 0x43efd0
mov dword [esp + 4], 0x2741
mov dword [esp], esi
call sym._Curl_strerror
mov dword [esp + 8], edi
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], ebp
mov dword [esp + 8], eax
mov eax, dword [esi + 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 + 0x31], 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 [esi + 0x50]
mov ebp, dword [esi + 0x8c]
lea edi, [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], edi
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov dword [esp + 4], eax
mov eax, dword [esi + 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 edi, ebx
mov byte [esp + 0x31], 1
jmp 0x43edbb
cmp eax, 0x2740
je 0x43efe0
cmp eax, 0xd
jne 0x43f3d0
add ebx, 1
cmp word [esp + 0x28], 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], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
lea esi, [esi]
mov dword [esp + 0x38], 0x1e
mov eax, dword [esp + 0x38]
add esp, 0x9ec
pop ebx
pop esi
pop edi
pop ebp
ret
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], esi
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], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
jmp 0x43f018
cmp word [esp + 0x28], 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], ebp
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 edi, eax
test eax, eax
jne 0x43f45e
mov eax, dword [esp + 0x34]
lea ebp, [esp + 0xdf]
mov dword [esp + 8], 0x100
mov dword [esp + 4], ebp
mov dword [esp], eax
call sym._Curl_printable_address
cmp byte [esi + 0x26d], 0
jne 0x43f0fa
cmp byte [esi + 0x263], 0
jne 0x43f445
mov ecx, dword [esp + 0x3c]
cmp ecx, 2
je 0x43f154
mov ebx, dword [sym.imp.WS2_32.dll_ntohs]
movzx eax, word [esp + 0x58]
mov dword [esp + 0x28], edi
movzx edx, byte [esi + 0x26d]
mov edi, ebx
mov ebx, ecx
lea esi, [esi]
cmp dl, 1
je 0x43f129
test ebx, ebx
je 0x43f14a
cmp ebx, 1
je 0x43f14a
cmp ax, 2
je 0x43f1d0
cmp ax, 0x17
je 0x43f1a0
add ebx, 1
cmp dl, 1
je 0x43f129
test ebx, ebx
jne 0x43f129
cmp ax, 2
je 0x43f278
mov edi, 2
mov eax, dword [esi + 0x198]
mov dword [esi + 0x48c], edi
cmp eax, 0xffffffff
je 0x43f176
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._Curl_closesocket
mov eax, dword [esp + 0x4c]
mov byte [esi + 0x266], 1
mov dword [esi + 0x498], 0x1c
mov dword [esi + 0x198], eax
mov eax, dword [esp + 0x38]
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
test ebx, ebx
je 0x43f481
movzx eax, word [esp + 0x58]
movzx edx, byte [esi + 0x26d]
add ebx, 1
jmp 0x43f120
movzx eax, word [esp + 0x5a]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
sub esp, 4
jmp 0x43f1ad
mov dword [esp + 4], ebp
mov dword [esp], esi
call sym._Curl_resolver_wait_resolv
jmp 0x43ede0
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], edi
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], ebx
call dword [0x45bc90]
jmp 0x43f018
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 0x1c]
mov dword [esp + 0x34], ecx
test ecx, ecx
jne 0x43ee1f
mov dword [esp + 4], eax
mov dword [esp], esi
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
movzx eax, word [esp + 0x5a]
mov dword [esp], eax
call dword [sym.imp.WS2_32.dll_ntohs]
sub esp, 4
mov ebp, eax
movzx eax, byte [esp + 0xdf]
lea ebx, [esp + 0x1df]
mov edx, ebx
test al, al
je 0x43f2d7
mov edx, 1
lea ebx, [esp + 0x1df]
mov edi, 0x2c
jmp 0x43f2ba
mov edx, ecx
cmp al, 0x2e
lea ecx, [edx + 1]
cmove eax, edi
mov byte [esp + edx + 0x1de], al
movzx eax, byte [esp + ecx + 0xde]
test al, al
jne 0x43f2b8
add edx, ebx
mov eax, ebp
shr bp, 8
mov byte [edx], 0
mov edi, 1
movzx eax, al
mov dword [esp], edx
mov dword [esp + 0x10], eax
movzx eax, bp
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.__d__d
mov dword [esp + 4], 0x14
call sym._curl_msnprintf
lea eax, [esi + 0x428]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], str.PORT
mov dword [esp + 4], str._s__s
mov dword [esp], eax
call sym._Curl_pp_sendf
mov ebx, eax
test eax, eax
je 0x43f159
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], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [esp + 0x38], ebx
mov dword [esi + 0x498], 0
jmp 0x43f020
mov dword [esp], ebp
add ebp, 1
mov dword [esp + 4], 0x5d
call sym._strchr
mov edi, eax
test eax, eax
jne 0x43ec86
lea esi, [esi]
xor ecx, ecx
xor edi, edi
mov word [esp + 0x28], cx
mov word [esp + 0x32], di
jmp 0x43ed30
mov dword [esp + 4], ebp
mov dword [esp], ebx
call sym._strcpy
jmp 0x43f3a0
mov dword [esp + 4], eax
mov dword [esp], esi
call sym._Curl_strerror
mov dword [esp + 8], edi
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], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
jmp 0x43f018
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], esi
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], ebp
call dword [0x45bc90]
jmp 0x43f018
mov byte [esi + 0x26d], 1
jmp 0x43f0fa
mov dword [esp + 0x38], 0x1b
jmp 0x43f020
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
mov dword [esp], esi
mov dword [esp + 4], eax
call sym._Curl_strerror
mov dword [esp + 4], str.socket_failure:__s
mov dword [esp + 8], eax
jmp 0x43f04e
xor edx, edx
cmp word [esp + 0x58], 2
movzx eax, ax
mov dword [esp + 0x10], ebp
setne dl
mov dword [esp + 0x14], eax
mov edi, dword [esp + 0x28]
lea eax, [esi + 0x428]
add edx, 1
mov dword [esp + 8], str.EPRT
mov dword [esp + 0xc], edx
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 0x43f159
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], esi
mov dword [esp + 4], eax
call sym._Curl_closesocket
mov dword [esp + 0x38], ebx
mov dword [esi + 0x48c], 1
mov dword [esi + 0x498], 0
jmp 0x43f020