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

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0xf8
mov rsi, rcx
lea r8, str.TcpStream
lea rcx, [rsp + 0xe8]
mov r9d, 9
call sym.core::fmt::Formatter::debug_struct::hf28e64a38aea12be
mov r14, qword [rsi]
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x2c], pe_nt_image_headers64
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x2c]
mov rcx, r14
call sub.WS2_32.dll_getsockname
cmp eax, 0xffffffff
je 0x100709db
mov eax, dword [rsp + 0x2c]
movzx ecx, word [rsp + 0x40]
cmp ecx, 0x17
je 0x100709fb
cmp ecx, 2
jne 0x10070aad
cmp eax, 0x10
jb 0x10070cf2
movzx edx, word [rsp + 0x42]
mov ecx, dword [rsp + 0x44]
rol dx, 8
call sym.core::net::socket_addr::SocketAddrV4::new::h196dbb36dd84ffe3
xor ebx, ebx
jmp 0x10070a5c
call sub.WS2_32.dll_WSAGetLastError
shl rax, 0x20
or rax, 2
mov ecx, eax
and ecx, 3
cmp ecx, 1
je 0x10070abe
jmp 0x10070afb
cmp eax, 0x1c
jb 0x10070d0c
movzx r8d, word [rsp + 0x42]
mov r9d, dword [rsp + 0x44]
mov eax, dword [rsp + 0x58]
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x30], xmm0
rol r8w, 8
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0xc8]
lea rdx, [rsp + 0x30]
call sym.core::net::socket_addr::SocketAddrV6::new::h9af8b8ad1e309801
mov eax, dword [rsp + 0xc8]
shl rax, 0x10
mov rdi, qword [rsp + 0xcc]
movups xmm0, xmmword [rsp + 0xd4]
movaps xmmword [rsp + 0x30], xmm0
mov bx, 1
mov word [rsp + 0x40], bx
mov rcx, rax
shr rcx, 0x20
mov word [rsp + 0x46], cx
mov dword [rsp + 0x42], eax
mov qword [rsp + 0x48], rdi
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x50], xmm0
lea rax, dbg.drop_in_place_mut_std::io::Write::write_fmt::Adapter_alloc::vec::Vec_u8__alloc::alloc::Global___
mov qword [rsp + 0x20], rax
lea rdx, str.addrlineno
lea rcx, [rsp + 0xe8]
lea r9, [rsp + 0x40]
mov r8d, 4
call sym.core::fmt::builders::DebugStruct::field::h28319690cbfbf423
jmp 0x10070afb
lea rax, str.invalid_argument8V
mov ecx, eax
and ecx, 3
cmp ecx, 1
jne 0x10070afb
lea rdi, [rax - 1]
lea rsi, [rax + 7]
mov rcx, qword [rax - 1]
mov rax, qword [rax + 7]
call qword [rax]
mov rax, qword [rsi]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x10070ae8
mov r8, qword [rax + 0x10]
mov rcx, qword [rdi]
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x2c], pe_nt_image_headers64
lea rdx, [rsp + 0x40]
lea r8, [rsp + 0x2c]
mov rcx, r14
call sub.WS2_32.dll_getpeername
cmp eax, 0xffffffff
je 0x10070b8a
mov eax, dword [rsp + 0x2c]
movzx ecx, word [rsp + 0x40]
cmp ecx, 0x17
je 0x10070bac
cmp ecx, 2
jne 0x10070c5e
cmp eax, 0x10
jb 0x10070cf2
movzx edx, word [rsp + 0x42]
mov ecx, dword [rsp + 0x44]
rol dx, 8
call sym.core::net::socket_addr::SocketAddrV4::new::h196dbb36dd84ffe3
xor ebx, ebx
jmp 0x10070c0d
call sub.WS2_32.dll_WSAGetLastError
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov eax, ebx
and eax, 3
cmp eax, 1
je 0x10070c6f
jmp 0x10070cac
cmp eax, 0x1c
jb 0x10070d0c
movzx r8d, word [rsp + 0x42]
mov r9d, dword [rsp + 0x44]
mov eax, dword [rsp + 0x58]
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0x30], xmm0
rol r8w, 8
mov dword [rsp + 0x20], eax
lea rcx, [rsp + 0xc8]
lea rdx, [rsp + 0x30]
call sym.core::net::socket_addr::SocketAddrV6::new::h9af8b8ad1e309801
mov eax, dword [rsp + 0xc8]
shl rax, 0x10
mov rdi, qword [rsp + 0xcc]
movups xmm0, xmmword [rsp + 0xd4]
movaps xmmword [rsp + 0x30], xmm0
mov bx, 1
mov word [rsp + 0x40], bx
mov rcx, rax
shr rcx, 0x20
mov word [rsp + 0x46], cx
mov dword [rsp + 0x42], eax
mov qword [rsp + 0x48], rdi
movaps xmm0, xmmword [rsp + 0x30]
movups xmmword [rsp + 0x50], xmm0
lea rax, dbg.drop_in_place_mut_std::io::Write::write_fmt::Adapter_alloc::vec::Vec_u8__alloc::alloc::Global___
mov qword [rsp + 0x20], rax
lea rdx, str.peerTcpListenerUdpSocketSystem
lea rcx, [rsp + 0xe8]
lea r9, [rsp + 0x40]
mov r8d, 4
call sym.core::fmt::builders::DebugStruct::field::h28319690cbfbf423
jmp 0x10070cac
lea rbx, str.invalid_argument8V
mov eax, ebx
and eax, 3
cmp eax, 1
jne 0x10070cac
lea rdi, [rbx - 1]
lea rsi, [rbx + 7]
mov rcx, qword [rbx - 1]
mov rax, qword [rbx + 7]
call qword [rax]
mov rax, qword [rsi]
mov rdx, qword [rax + 8]
test rdx, rdx
je 0x10070c99
mov r8, qword [rax + 0x10]
mov rcx, qword [rdi]
call sym.__rust_dealloc
mov edx, 0x18
mov r8d, 8
mov rcx, rdi
call sym.__rust_dealloc
mov qword [rsp + 0x40], r14
lea rax, dbg.drop_in_place_mut_std::io::Write::write_fmt::Adapter_alloc::vec::Vec_u8__alloc::alloc::Global___
mov qword [rsp + 0x20], rax
lea rdx, [0x1055f436]
lea rcx, [rsp + 0xe8]
lea r9, [rsp + 0x40]
mov r8d, 6
call sym.core::fmt::builders::DebugStruct::field::h28319690cbfbf423
mov rcx, rax
call sym.core::fmt::builders::DebugStruct::finish::hb5b4109b26be88e4
nop
add rsp, 0xf8
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___
lea r8, [0x10562b28]
mov edx, 0x42
call dbg.panic
ud2
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___library_std_src_sys_common_net.rs
lea r8, [0x10562ac8]
mov edx, 0x43
call dbg.panic
ud2