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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x9f0
mov rax, qword [0x1401f3660]
xor rax, rsp
mov qword [rsp + 0x9e0], rax
mov rdi, qword [rcx]
mov rsi, rcx
mov ebp, edx
lea rcx, [rsp + 0xd1]
xor edx, edx
mov r8d, 0xff
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x38], 0xffffffffffffffff
mov byte [rsp + 0xd0], 0
call fcn.140041940
mov rbx, qword [rdi + 0x560]
mov qword [rsp + 0x48], 0
mov rdi, qword [rdi + 0x560]
xor r13w, r13w
xor r14w, r14w
xor r12d, r12d
test rdi, rdi
mov r15d, 1
je 0x14008edd9
or rcx, 0xffffffffffffffff
xor eax, eax
repne scasb al, byte [rdi]
not rcx
sub rcx, r15
cmp rcx, r15
jbe 0x14008edd9
or rcx, 0xffffffffffffffff
mov rdi, rbx
mov rdx, r15
repne scasb al, byte [rdi]
mov eax, 0x41
not rcx
sub rcx, r15
cmp rcx, rax
cmovb rcx, rax
add rcx, r15
call qword [fcn.14005e730]
test rax, rax
mov r12, rax
jne 0x14008ec6c
lea eax, [r15 + 0x1a]
jmp 0x14008f373
movzx eax, byte [rbx]
cmp al, 0x5b
jne 0x14008eca7
mov edx, 0x5d
mov rcx, rbx
lea r13, [rbx + 1]
call fcn.140048760
test rax, rax
mov rdi, rax
je 0x14008ed7e
mov r8, rax
mov rdx, r13
mov rcx, r12
sub r8, r13
call fcn.140046f90
xor r13w, r13w
jmp 0x14008ed10
cmp al, 0x3a
jne 0x14008ecb0
mov rdi, rbx
jmp 0x14008ed10
mov edx, Ordinal_60
mov rcx, rbx
call fcn.140048760
test rax, rax
mov rdi, rax
je 0x14008ee24
lea r8, [rsp + 0x50]
mov rdx, rbx
mov ecx, reloc.WS2_32.dll_socket
call fcn.14007d0a0
mov rcx, r12
cmp eax, r15d
jne 0x14008ed02
xor r14w, r14w
xor r13w, r13w
sub rcx, rbx
nop
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
add rbx, r15
test al, al
jne 0x14008ecf0
jmp 0x14008ed82
mov r8, rdi
mov rdx, rbx
sub r8, rbx
call fcn.140046f90
test rdi, rdi
je 0x14008ed82
mov edx, Ordinal_60
mov rcx, rdi
call fcn.140048760
test rax, rax
mov rdi, rax
je 0x14008ed82
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.14005a1a0
mov ecx, eax
call fcn.14007b650
mov edx, Ordinal_46
mov rcx, rdi
movzx r13d, ax
call fcn.140048760
test rax, rax
je 0x14008ee1b
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.14005a1a0
mov ecx, eax
call fcn.14007b650
cmp r13w, ax
movzx r14d, ax
jbe 0x14008ed82
xor r14w, r14w
xor r13w, r13w
cmp byte [r12], 0
je 0x14008edd9
mov rcx, qword [rsi + 0x58]
mov rcx, qword [rcx + 0x20]
call fcn.14009f320
mov r8d, dword [rsi + 0xa0]
lea rcx, [rsp + 0x1d0]
mov edx, eax
mov rax, qword [rsi + 0x58]
mov dword [rsp + 0x28], 0x401
mov qword [rsp + 0x20], rcx
mov ecx, dword [rax + 4]
mov r9, r12
call fcn.1400e71c0
test eax, eax
je 0x14008ee42
sub eax, r15d
je 0x14008f36e
cmp eax, r15d
je 0x14008ee78
mov rcx, qword [rsi + 0x1d0]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x30], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x14008ee47
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140066c40
lea rdx, str.getsockname___failed:__s
mov r8, rax
jmp 0x14008f35b
mov r14w, r13w
jmp 0x14008ed82
mov rcx, r12
sub rcx, rbx
nop
nop
movzx eax, byte [rbx]
mov byte [rcx + rbx], al
add rbx, r15
test al, al
jne 0x14008ee30
jmp 0x14008ed82
mov rdi, r12
jmp 0x14008ee80
movzx ecx, word [rsp + 0x50]
mov r9d, 0x401
lea r8, [rsp + 0x1d0]
cmp ecx, 0x17
je 0x14008ee66
lea rdx, [rsp + 0x54]
jmp 0x14008ee70
lea rdx, [rsp + 0x58]
mov ecx, reloc.WS2_32.dll_socket
call fcn.140082a00
xor r15d, r15d
lea rdi, [rsp + 0x1d0]
lea r9, [rsp + 0x48]
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.14006a3f0
cmp eax, 1
jne 0x14008eea5
lea rdx, [rsp + 0x48]
mov rcx, rsi
call fcn.1400685c0
mov rdx, qword [rsp + 0x48]
test rdx, rdx
je 0x14008f351
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rdx]
call fcn.14006a9c0
test rbx, rbx
je 0x14008f351
mov rcx, r12
call qword [fcn.140046f30]
mov qword [rsp + 0x38], 0xffffffffffffffff
xor edi, edi
nop
lea r9, [rsp + 0x38]
xor r8d, r8d
mov rdx, rbx
mov rcx, rsi
call fcn.140079160
test eax, eax
mov r12d, eax
je 0x14008ef0d
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rbx, qword [rbx + 0x28]
test rbx, rbx
mov edi, eax
jne 0x14008eee0
jmp 0x14008ef12
test rbx, rbx
jne 0x14008ef35
mov edx, edi
mov rcx, rsi
call fcn.140066c40
mov rcx, qword [rsp + 0x40]
lea rdx, str.socket_failure:__s
mov r8, rax
call fcn.140075620
jmp 0x14008f36e
movsxd r8, dword [rbx + 0x10]
mov rdx, qword [rbx + 0x20]
lea rcx, [rsp + 0x50]
call fcn.140042d30
cmp r13w, r14w
mov edx, dword [rbx + 0x10]
mov dword [rsp + 0x30], edx
movzx edi, r13w
ja 0x14008f008
nop
movzx ecx, di
call qword [sym.imp.WS2_32.dll_htons]
mov r8d, dword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x50]
mov word [rsp + 0x52], ax
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x14008f093
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test r15d, r15d
je 0x14008efee
cmp eax, 0x2741
jne 0x14008efee
mov edx, eax
mov rcx, rsi
call fcn.140066c40
movzx r8d, di
mov rdi, qword [rsp + 0x40]
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s_n
mov rcx, rdi
mov r9, rax
call fcn.140075570
mov rcx, qword [rsi + 0x1d0]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x30], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x14008f02b
mov di, r13w
xor r15d, r15d
jmp 0x14008effe
cmp eax, 0x2740
je 0x14008effa
cmp eax, 0xd
jne 0x14008f05f
add di, 1
cmp di, r14w
jbe 0x14008ef60
mov rcx, qword [rsp + 0x40]
lea rdx, str.bind___failed__we_ran_out_of_ports_
call fcn.140075620
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1400790f0
jmp 0x14008f36e
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140066c40
mov rcx, rdi
lea rdx, str.getsockname___failed:__s
mov r8, rax
call fcn.140075620
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1400790f0
jmp 0x14008f36e
mov edx, eax
mov rcx, rsi
call fcn.140066c40
mov rcx, qword [rsp + 0x40]
lea rdx, str.bind_port_hu__failed:__s
mov r9, rax
movzx r8d, di
call fcn.140075620
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1400790f0
jmp 0x14008f36e
cmp di, r14w
ja 0x14008f008
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x30], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x14008f0d8
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140066c40
mov rcx, qword [rsp + 0x40]
jmp 0x14008f03e
mov rcx, qword [rsp + 0x38]
mov edx, 1
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x14008f10d
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rsi
mov edx, eax
call fcn.140066c40
mov rcx, qword [rsp + 0x40]
lea rdx, str.socket_failure:__s
jmp 0x14008f045
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov rcx, rbx
call fcn.14006a030
cmp dword [rsi + 0x378], 0
jne 0x14008f13f
cmp dword [rsi + 0x350], 0
je 0x14008f13f
mov dword [rsi + 0x378], 1
cmp ebp, 2
je 0x14008f19e
movzx eax, word [rsp + 0x50]
nop
nop
cmp dword [rsi + 0x378], 0
jne 0x14008f15d
test ebp, ebp
je 0x14008f196
cmp ebp, 1
jne 0x14008f168
cmp ax, 2
jne 0x14008f196
movzx ecx, ax
cmp ecx, 2
je 0x14008f175
cmp ecx, 0x17
jne 0x14008f196
movzx ecx, word [rsp + 0x52]
call qword [sym.imp.WS2_32.dll_ntohs]
test ebp, ebp
movzx r11d, ax
je 0x14008f2c2
cmp ebp, 1
je 0x14008f1fd
mov ax, word [rsp + 0x50]
add ebp, 1
cmp ebp, 2
jne 0x14008f150
lea rdi, [rsi + 0x6e8]
mov dword [rdi + 0xac], ebp
mov rdx, qword [rsi + 0x1d8]
cmp rdx, 0xffffffffffffffff
je 0x14008f1cb
mov rcx, rsi
call fcn.1400790f0
mov qword [rsi + 0x1d8], 0xffffffffffffffff
mov rax, qword [rsp + 0x38]
mov dword [rsi + 0x7fc], 0
mov dword [rsi + 0x35c], 1
mov qword [rsi + 0x1d8], rax
mov dword [rsi + 0x7a0], 0x1c
mov eax, r12d
jmp 0x14008f373
lea rdi, [rsp + 0x5e0]
lea rdx, [rsp + 0xd0]
mov r8d, Ordinal_46
movzx ecx, byte [rdx]
test cl, cl
je 0x14008f231
cmp cl, 0x2e
movzx eax, cl
cmove eax, r8d
add rdi, 1
add rdx, 1
mov byte [rdi - 1], al
jne 0x14008f213
movzx r9d, r11w
lea r8, str.__d__d
mov edx, reloc.WS2_32.dll_sendto
movzx eax, r9b
mov rcx, rdi
shr r9d, 8
mov dword [rsp + 0x20], eax
mov byte [rdi], 0
call fcn.14007a7b0
lea rdi, [rsi + 0x6e8]
lea r9, [rsp + 0x5e0]
lea r8, str.PORT
lea rdx, [0x140198f60]
mov rcx, rdi
call fcn.1400c1ea0
test eax, eax
mov r12d, eax
je 0x14008f1a5
mov ecx, eax
call fcn.140066420
mov rcx, qword [rsp + 0x40]
lea rdx, str.Failure_sending_PORT_command:__s
mov r8, rax
call fcn.140075620
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1400790f0
mov dword [rsi + 0x7a0], 0
mov eax, r12d
jmp 0x14008f373
xor r9d, r9d
cmp word [rsp + 0x50], 2
movzx eax, r11w
mov dword [rsp + 0x28], eax
setne r9b
lea rax, [rsp + 0xd0]
lea rdi, [rsi + 0x6e8]
lea r8, str.EPRT
lea rdx, str._s__d_s_hu
add r9d, 1
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.1400c1ea0
test eax, eax
mov r12d, eax
je 0x14008f1a5
mov ecx, eax
call fcn.140066420
mov rcx, qword [rsp + 0x40]
lea rdx, str.Failure_sending_EPRT_command:__s
mov r8, rax
call fcn.140075620
mov rdx, qword [rsp + 0x38]
mov rcx, rsi
call fcn.1400790f0
mov dword [rdi + 0xac], 1
mov dword [rsi + 0x7a0], 0
mov eax, r12d
jmp 0x14008f373
mov r8, rdi
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
mov rcx, qword [rsp + 0x40]
call fcn.140075620
mov rcx, r12
call qword [fcn.140046f30]
mov eax, reloc.WLDAP32.dll_Ordinal_30
mov rcx, qword [rsp + 0x9e0]
xor rcx, rsp
call fcn.140041910
mov rbx, qword [rsp + 0xa40]
add rsp, 0x9f0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rcx
mov rcx, qword [rcx]
mov rax, qword [rcx + 0x1a8]
cmp dword [rax + 0x18], 0
je 0x140092ba1
mov dword [rbx + 0x7a0], 0xd
mov rcx, qword [rbx]
xor eax, eax
mov r8, qword [rcx + 0x350]
mov rdx, qword [rcx + 0x1a8]
mov dword [rbx + 0x794], eax
test r8, r8
je 0x140092af8
mov r8, qword [r8]
cmp byte [r8], 0x2a
jne 0x140092ac2
add r8, 1
mov dword [rbx + 0x798], 1
jmp 0x140092ac8
mov dword [rbx + 0x798], eax
lea rdx, [0x1401cd58c]
lea rcx, [rbx + 0x6e8]
call fcn.1400c1ea0
test eax, eax
jne 0x140092c76
mov dword [rbx + 0x7a0], 0xd
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp dword [rdx + 0x18], eax
je 0x140092b0e
mov dword [rbx + 0x7a0], eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rdx, qword [rbx + 0x7b8]
cmp rdx, 0xffffffffffffffff
je 0x140092b39
call fcn.140081410
mov rdx, qword [rbx + 0x7b8]
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.14008f9e0
cmp dword [rcx + 0x4e4], eax
mov r8, qword [rbx + 0x768]
lea rcx, [rbx + 0x6e8]
je 0x140092b78
lea rdx, str.RETR__s
call fcn.1400c1ea0
test eax, eax
jne 0x140092c76
mov dword [rbx + 0x7a0], 0x20
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea rdx, str.SIZE__s
call fcn.1400c1ea0
test eax, eax
jne 0x140092c76
mov dword [rbx + 0x7a0], 0x18
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp dword [rcx + 0x480], 0
je 0x140092bbe
xor edx, edx
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp 0x14008eb90
cmp dword [rcx + 0x4c8], 0
je 0x140092c6e
mov r8, qword [rbx + 0x768]
test r8, r8
jne 0x140092c1e
mov r8, qword [rcx + 0x530]
test r8, r8
jne 0x140092bfc
cmp dword [rcx + 0x47c], 0
lea rax, str.NLST
lea r8, str.LIST
cmovne r8, rax
lea rcx, [rbx + 0x6e8]
lea rdx, str.PRET__s
call fcn.1400c1ea0
test eax, eax
je 0x140092c59
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
cmp dword [rcx + 0x4a8], 0
lea rcx, [rbx + 0x6e8]
je 0x140092c49
lea rdx, str.PRET_STOR__s
call fcn.1400c1ea0
test eax, eax
je 0x140092c59
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea rdx, str.PRET_RETR__s
call fcn.1400c1ea0
test eax, eax
jne 0x140092c76
mov dword [rbx + 0x7a0], 0x1d
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
mov rcx, rbx
call fcn.14008f3a0
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret