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

Disassembly:
mov r11, rsp
sub rsp, 0xa28
mov rax, qword [0x100b4478]
xor rax, rsp
mov qword [rsp + 0x9e0], rax
mov qword [r11 + 0x18], rbx
mov qword [r11 + 0x20], rbp
mov qword [r11 - 8], rsi
mov qword [r11 - 0x10], rdi
mov qword [r11 - 0x18], r12
mov qword [r11 - 0x20], r13
mov qword [r11 - 0x28], r14
mov qword [r11 - 0x30], r15
mov r15, qword [rcx]
mov rbp, rcx
mov ebx, edx
lea rcx, [r11 - 0x957]
mov r8d, 0xff
xor edx, edx
mov qword [rsp + 0x38], 0xffffffffffffffff
mov byte [rsp + 0xd0], 0
call fcn.10025bb0
mov rsi, qword [r15 + 0x888]
xor eax, eax
xor r13w, r13w
mov qword [rsp + 0x40], rax
mov rdi, qword [r15 + 0x888]
mov word [rsp + 0x30], ax
test rdi, rdi
lea r14d, [rax + 1]
mov r12, rax
je 0x10060ea2
mov rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
not rcx
sub rcx, r14
cmp rcx, r14
jbe 0x10060ea2
mov rcx, 0xffffffffffffffff
mov rdi, rsi
mov rdx, r14
repne scasb al, byte [rdi]
mov eax, reloc.WLDAP32.dll_Ordinal_22
not rcx
sub rcx, r14
cmp rcx, rax
cmovb rcx, rax
add rcx, r14
call qword [fcn.10032730]
test rax, rax
mov r12, rax
jne 0x10060d7a
lea eax, [r14 + 0x1a]
jmp 0x100613a4
cmp byte [rsi], 0x3a
jne 0x10060d84
mov rdi, rsi
jmp 0x10060dae
mov edx, Ordinal_60
mov rcx, rsi
call fcn.10023230
test rax, rax
mov rdi, rax
je 0x10060e2d
mov r8, rax
mov rdx, rsi
mov rcx, r12
sub r8, rsi
call fcn.10022770
test rdi, rdi
je 0x10060e40
mov edx, Ordinal_60
mov rcx, rdi
call fcn.10023230
test rax, rax
mov rdi, rax
je 0x10060e40
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.10035320
mov ecx, eax
call fcn.1004b1a0
mov edx, Ordinal_46
mov rcx, rdi
movzx esi, ax
mov word [rsp + 0x30], ax
call fcn.10023230
test rax, rax
je 0x10060e27
xor edx, edx
lea rcx, [rax + 1]
lea r8d, [rdx + 0xa]
call fcn.10035320
mov ecx, eax
call fcn.1004b1a0
cmp si, ax
movzx r13d, ax
jbe 0x10060e40
xor r13w, r13w
mov word [rsp + 0x30], r13w
jmp 0x10060e40
mov r13w, si
jmp 0x10060e40
mov rcx, r12
sub rcx, rsi
movzx eax, byte [rsi]
mov byte [rcx + rsi], al
add rsi, r14
test al, al
jne 0x10060e33
cmp byte [r12], 0
je 0x10060ea2
mov rcx, qword [rbp + 0x70]
mov rcx, qword [rcx + 0x20]
call fcn.1000d3c0
mov r8d, dword [rbp + 0xb8]
lea rcx, [rsp + 0x1d0]
mov edx, eax
mov rax, qword [rbp + 0x70]
mov dword [rsp + 0x28], 0x401
mov qword [rsp + 0x20], rcx
mov ecx, dword [rax + 4]
mov r9, r12
call fcn.1000d3c0
test eax, eax
je 0x10060e9d
sub eax, r14d
je 0x1006139f
cmp eax, r14d
jne 0x10060ea2
lea rdi, [rsp + 0x1d0]
jmp 0x10060f0c
mov rdi, r12
jmp 0x10060f0c
mov rcx, qword [rbp + 0x238]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
je 0x10060ee4
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbp
mov edx, eax
call fcn.10076e10
lea rdx, str.getsockname___failed:__s
mov r8, rax
jmp 0x1006138e
movzx ecx, word [rsp + 0x50]
lea r8, [rsp + 0x1d0]
lea rdx, [rsp + 0x54]
mov r9d, 0x401
call fcn.10077030
lea rdi, [rsp + 0x1d0]
xor r14d, r14d
lea r9, [rsp + 0x40]
xor r8d, r8d
mov rdx, rdi
mov rcx, rbp
call fcn.1004ce40
cmp eax, 1
jne 0x10060f31
lea rdx, [rsp + 0x40]
mov rcx, rbp
call fcn.10046000
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x10061384
mov rsi, qword [rdx]
mov rcx, r15
call fcn.1004d610
test rsi, rsi
je 0x10061384
mov rcx, r12
call qword [fcn.10021fb0]
mov qword [rsp + 0x38], 0xffffffffffffffff
xor edi, edi
nop
nop
nop
lea r9, [rsp + 0x38]
xor r8d, r8d
mov rdx, rsi
mov rcx, rbp
call fcn.10052810
test eax, eax
mov r12d, eax
je 0x10060f9d
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rsi, qword [rsi + 0x28]
test rsi, rsi
mov edi, eax
jne 0x10060f70
jmp 0x10060fa2
test rsi, rsi
jne 0x10060fc3
mov edx, edi
mov rcx, rbp
call fcn.10076e10
lea rdx, str.socket_failure:__s
mov rcx, r15
mov r8, rax
call fcn.1004b840
jmp 0x1006139f
movsxd r8, dword [rsi + 0x10]
mov rdx, qword [rsi + 0x20]
lea rcx, [rsp + 0x50]
call fcn.10023d50
mov ax, word [rsp + 0x30]
mov edx, dword [rsi + 0x10]
cmp ax, r13w
mov dword [rsp + 0x34], edx
movzx edi, ax
ja 0x1006109c
nop
cmp word [rsp + 0x50], 2
jne 0x10061006
movzx ecx, di
call qword [sym.imp.WS2_32.dll_htons]
mov word [rsp + 0x52], ax
mov r8d, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_bind]
test eax, eax
je 0x10061123
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
test r14d, r14d
je 0x10061082
cmp eax, 0x2741
jne 0x10061082
mov edx, eax
mov rcx, rbp
call fcn.10076e10
lea rdx, str.bind_port_hu__on_non_local_address_failed:__s_n
movzx r8d, di
mov r9, rax
mov rcx, r15
call fcn.1004b790
mov rcx, qword [rbp + 0x238]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x100610bd
mov di, word [rsp + 0x30]
xor r14d, r14d
jmp 0x10061092
cmp eax, 0x2740
je 0x1006108e
cmp eax, 0xd
jne 0x100610f1
add di, 1
cmp di, r13w
jbe 0x10060ff0
lea rdx, str.bind___failed__we_ran_out_of_ports_
mov rcx, r15
call fcn.1004b840
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call fcn.10052770
jmp 0x1006139f
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbp
mov edx, eax
call fcn.10076e10
lea rdx, str.getsockname___failed:__s
mov r8, rax
mov rcx, r15
call fcn.1004b840
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call fcn.10052770
jmp 0x1006139f
mov edx, eax
mov rcx, rbp
call fcn.10076e10
lea rdx, str.bind_port_hu__failed:__s
movzx r8d, di
mov r9, rax
mov rcx, r15
call fcn.1004b840
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call fcn.10052770
jmp 0x1006139f
cmp di, r13w
ja 0x1006109c
mov rcx, qword [rsp + 0x38]
lea r8, [rsp + 0x34]
lea rdx, [rsp + 0x50]
mov dword [rsp + 0x34], 0x80
call qword [sym.imp.WS2_32.dll_getsockname]
test eax, eax
jne 0x100610bd
mov rcx, qword [rsp + 0x38]
lea edx, [rax + 1]
call qword [sym.imp.WS2_32.dll_listen]
test eax, eax
je 0x10061183
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov rcx, rbp
mov edx, eax
call fcn.10076e10
lea rdx, str.socket_failure:__s
mov r8, rax
jmp 0x100610d7
lea rdx, [rsp + 0xd0]
mov r8d, 0x100
mov rcx, rsi
call fcn.1004c880
cmp ebx, 2
je 0x10061347
movzx eax, word [rsp + 0x50]
cmp dword [rbp + 0x3e4], 0
jne 0x100611b4
test ebx, ebx
je 0x100611e6
cmp ebx, 1
jne 0x100611bf
cmp ax, 2
jne 0x100611e6
cmp ax, 2
jne 0x100611e6
movzx ecx, word [rsp + 0x52]
call qword [sym.imp.WS2_32.dll_ntohs]
test ebx, ebx
movzx r11d, ax
je 0x100612bd
cmp ebx, 1
je 0x100611fa
mov ax, word [rsp + 0x50]
add ebx, 1
cmp ebx, 2
jne 0x100611a7
lea rdi, [rbp + 0x6a0]
jmp 0x1006134e
lea rdi, [rsp + 0x5e0]
lea rdx, [rsp + 0xd0]
mov r8d, Ordinal_46
movzx ecx, byte [rdx]
test cl, cl
je 0x1006122e
cmp cl, 0x2e
movzx eax, cl
cmove eax, r8d
add rdi, 1
add rdx, 1
mov byte [rdi - 1], al
jne 0x10061210
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.1006e680
lea rdi, [rbp + 0x6a0]
lea r9, [rsp + 0x5e0]
lea r8, str.PORT
lea rdx, [0x1008d890]
mov rcx, rdi
call fcn.100792c0
test eax, eax
mov r12d, eax
je 0x1006134e
mov ecx, eax
call fcn.10076580
lea rdx, str.Failure_sending_PORT_command:__s
mov rcx, r15
mov r8, rax
call fcn.1004b840
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call fcn.10052770
xor edx, edx
mov rcx, rbp
call fcn.10060b40
mov eax, r12d
jmp 0x100613a4
cmp word [rsp + 0x50], 2
movzx eax, r11w
mov ecx, 0
setne cl
mov dword [rsp + 0x28], eax
lea rax, [rsp + 0xd0]
lea r9d, [rcx + 1]
lea rdi, [rbp + 0x6a0]
lea r8, str.EPRT
lea rdx, str._s__d_s_hu
mov rcx, rdi
mov qword [rsp + 0x20], rax
call fcn.100792c0
test eax, eax
mov r12d, eax
je 0x1006134e
mov ecx, eax
call fcn.10076580
lea rdx, str.Failure_sending_EPRT_command:__s
mov rcx, r15
mov r8, rax
call fcn.1004b840
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
call fcn.10052770
xor edx, edx
mov rcx, rbp
mov dword [rdi + 0xb8], 1
call fcn.10060b40
mov eax, r12d
jmp 0x100613a4
lea rdi, [rbp + 0x6a0]
mov rcx, rbp
mov dword [rdi + 0xb8], ebx
call fcn.10060760
mov rdx, qword [rsp + 0x38]
mov rcx, rbp
mov qword [rbp + 0x240], rdx
mov edx, Ordinal_30
mov dword [rbp + 0x3c8], 1
call fcn.10060b40
mov eax, r12d
jmp 0x100613a4
mov r8, rdi
lea rdx, str.failed_to_resolve_the_address_provided_to_PORT:__s
mov rcx, r15
call fcn.1004b840
mov rcx, r12
call qword [fcn.10021fb0]
mov eax, reloc.WLDAP32.dll_Ordinal_30
mov r15, qword [rsp + 0x9f8]
mov r14, qword [rsp + 0xa00]
mov r13, qword [rsp + 0xa08]
mov r12, qword [rsp + 0xa10]
mov rdi, qword [rsp + 0xa18]
mov rsi, qword [rsp + 0xa20]
mov rbp, qword [rsp + 0xa48]
mov rbx, qword [rsp + 0xa40]
mov rcx, qword [rsp + 0x9e0]
xor rcx, rsp
call fcn.10021bf0
add rsp, 0xa28
ret
push rbx
sub rsp, 0x20
mov rdx, qword [rcx]
mov rbx, rcx
mov rax, qword [rdx + 0x208]
cmp dword [rax + 0x18], 0
je 0x10064516
mov edx, reloc.WS2_32.dll_listen
call fcn.10060b40
mov edx, 1
lea r8d, [rdx + 0xc]
add rsp, 0x20
pop rbx
jmp fcn.10063a40
cmp dword [rdx + 0x798], 0
je 0x1006452b
xor edx, edx
add rsp, 0x20
pop rbx
jmp 0x10060c90
cmp dword [rdx + 0x7e4], 0
je 0x100645ce
mov r8, qword [rcx + 0x728]
test r8, r8
jne 0x10064586
mov r8, qword [rdx + 0x858]
test r8, r8
jne 0x10064569
cmp dword [rdx + 0x794], 0
lea rax, str.NLST
lea r8, str.LIST
cmovne r8, rax
lea rdx, str.PRET__s
add rcx, 0x6a0
call fcn.100792c0
test eax, eax
je 0x100645bc
add rsp, 0x20
pop rbx
ret
add rcx, 0x6a0
cmp dword [rdx + 0x7c4], 0
je 0x100645ac
lea rdx, str.PRET_STOR__s
call fcn.100792c0
test eax, eax
je 0x100645bc
add rsp, 0x20
pop rbx
ret
lea rdx, str.PRET_RETR__s
call fcn.100792c0
test eax, eax
jne 0x100645d3
mov edx, Ordinal_30
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp fcn.10060b40
call fcn.10061400
add rsp, 0x20
pop rbx
ret