Function at 0x1401509e0
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x118
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x90], 0xfffffffffffffffe
mov rax, qword [rcx]
cmp byte [rax], 0
mov byte [rax], 0
je 0x140151161
lea rsi, str.127.0.0.1:34254could_not_resolve_to_any_addresses
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], shutdown
lea rcx, [rbp + 0x50]
call fcn.140019ad0
mov rdi, rax
test dil, 1
je 0x140150ada
mov rbx, qword [rbp + 0x58]
test rbx, rbx
je 0x140150acf
mov rax, qword [rbp + 0x50]
lea rcx, [rbx - 1]
movzx edx, byte [rax]
inc rax
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rcx
cmp dl, 0x3a
jne 0x140150acf
mov dword [rbp + 0x18], 0xa
mov qword [rbp + 8], 0
mov byte [rbp + 0x1c], 1
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 8]
call fcn.14001a3c0
cmp ax, 1
je 0x140150a95
mov qword [rbp + 0x58], rbx
test ax, ax
je 0x140150ada
movabs rax, 0xffffffff00
and rdi, rax
shr rdi, 8
movzx eax, dx
shl rax, 0x30
shl rdi, 0x10
or rdi, rax
mov eax, 1
or rax, rdi
test ax, ax
jne 0x140150ae6
mov qword [rbp + 0x50], rsi
mov qword [rbp + 0x58], shutdown
jmp 0x140150af9
xor eax, eax
mov qword [rbp + 0x58], rbx
test ax, ax
jne 0x140150a95
xor edi, edi
xor eax, eax
or rax, rdi
test ax, ax
je 0x140150ac1
movzx eax, ax
cmp eax, 1
jne 0x140150af9
cmp qword [rbp + 0x58], 0
je 0x140150c13
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], shutdown
mov qword [rbp + 0x18], 0
mov qword [rbp + 0x28], 1
movabs rax, 0x3a0000003a
mov qword [rbp + 0x30], rax
mov bl, 0x3a
mov r8d, recv
jmp 0x140150b36
cmp r8, 0xf
ja 0x140150b9d
mov cl, 0x3a
mov rdx, rsi
call fcn.14001c600
cmp rax, 1
jne 0x140150b9d
mov r8, rdx
cmp rdx, 0xf
jae 0x140150b30
cmp byte [r8 + rsi], bl
jne 0x140150b30
lea rax, [r8 + 1]
lea r15, str.invalid_port_value
cmp rax, 0xf
je 0x140150ba4
lea r9, [r8 + rsi]
inc r9
movzx edx, byte [r9]
mov r10d, recv
cmp edx, 0x2d
je 0x14015102d
cmp edx, 0x2b
jne 0x140151037
cmp rax, 0xe
je 0x140150ba4
inc r9
mov r10d, recv
jmp 0x140151037
lea r15, str.invalid_socket_address
mov eax, r15d
and eax, 3
lea rdx, [rax - 2]
cmp rdx, 2
jb 0x140150bb9
test rax, rax
jne 0x140150bcd
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rax, [r15 - 1]
mov qword [rbp + 0x88], rax
mov rcx, qword [r15 - 1]
mov rax, qword [r15 + 7]
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x78], rax
call qword [rax]
mov rax, qword [rbp + 0x78]
cmp qword [rax + 8], 0
je 0x140150cf6
cmp qword [rax + 0x10], 0x11
jae 0x140150cdc
mov r8, qword [rbp + 0x80]
jmp 0x140150ce7
mov eax, dword [rbp + 0x10]
mov dword [rbp - 0x10], eax
mov rax, qword [rbp + 8]
mov qword [rbp - 0x18], rax
movzx eax, byte [0x14023c318]
mov rcx, qword [0x14023c280]
test rcx, rcx
jne 0x140150c4d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x14015117b
mov rcx, rax
mov qword [0x14023c280], rax
mov r8d, 0x20
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x14015117b
mov word [rax], 0
mov rdx, rdi
shr rdx, 0x10
and rdx, 0xffffffffffffff00
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
or rcx, rdx
shr rdi, 0x30
mov word [rax + 6], di
mov dword [rax + 2], ecx
mov rcx, qword [rbp - 0x18]
mov qword [rax + 8], rcx
mov ecx, dword [rbp - 0x10]
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], 0
mov rcx, rax
add rcx, 0x20
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], 1
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rcx
mov qword [rbp + 0x48], rax
mov rax, qword [rbp - 0x30]
mov qword [rbp + 0x40], rax
mov r15, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov qword [rbp + 0x78], rax
xor r14d, r14d
jmp 0x140150d67
mov r8, qword [rbp + 0x80]
mov r8, qword [r8 - 8]
mov rcx, qword [0x14023c280]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x14023c280]
xor edx, edx
mov r8, qword [rbp + 0x88]
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, qword [rbp + 0x38]
mov r8, qword [r8 - 8]
mov rcx, qword [0x14023c280]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x14023c280]
xor edx, edx
mov r8, qword [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rbp + 0x88]
nop word cs:[rax + rax]
add r15, 0x20
mov r14, rax
cmp r15, qword [rbp + 0x78]
je 0x140150f7a
movzx r13d, word [r15]
cmp r13w, 2
je 0x140150f7a
mov esi, dword [r15 + 0x14]
mov eax, dword [r15 + 0x18]
mov dword [rbp + 0x88], eax
movzx r12d, word [r15 + 0x1c]
movzx eax, word [r15 + 0x12]
mov word [rbp + 0x60], ax
movups xmm0, xmmword [r15 + 2]
movaps xmmword [rbp + 0x50], xmm0
mov rax, qword [0x14023c288]
cmp rax, 3
je 0x140150dbb
mov qword [rbp - 8], r14
call fcn.14018a870
test r13w, r13w
mov ebx, 0x17
mov eax, 2
cmove ebx, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, ebx
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_WSASocketW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x140150e20
test r13w, r13w
je 0x140150e90
mov r8d, 0x1c
mov ax, 0x17
movups xmm0, xmmword [rbp + 0x52]
jmp 0x140150ea5
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2739
je 0x140150e38
cmp eax, 0x2726
jne 0x140150eed
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, ebx
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.WS2_32.dll_WSASocketW]
cmp rax, 0xffffffffffffffff
je 0x140150f62
mov rdi, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_SetHandleInformation]
test eax, eax
jne 0x140150df8
call sub.KERNEL32.dll_GetLastError
jmp 0x140150edf
movzx r12d, word [rbp + 0x54]
mov esi, dword [rbp + 0x50]
mov r8d, reloc.WS2_32.dll_recv
mov ax, 2
xorps xmm0, xmm0
mov ecx, dword [rbp + 0x88]
rol r12w, 8
mov word [rbp + 8], ax
mov word [rbp + 0xa], r12w
mov dword [rbp + 0xc], esi
movups xmmword [rbp + 0x10], xmm0
mov dword [rbp + 0x20], ecx
mov rcx, rdi
lea rdx, [rbp + 8]
call qword [sym.imp.WS2_32.dll_bind]
cmp eax, 0xffffffff
jne 0x140150fa7
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
mov esi, eax
mov rcx, rdi
call qword [sym.imp.WS2_32.dll_closesocket]
mov rax, rsi
shl rax, 0x20
or rax, 2
test r14, r14
je 0x140150d60
mov edx, r14d
and edx, 3
lea rcx, [rdx - 2]
cmp rcx, 2
jb 0x140150d60
test rdx, rdx
je 0x140150d60
mov qword [rbp + 0x88], rax
lea rax, [r14 - 1]
mov qword [rbp + 0x80], rax
mov rcx, qword [r14 - 1]
mov rax, qword [r14 + 7]
mov qword [rbp + 0x38], rcx
mov qword [rbp], rax
call qword [rax]
mov rax, qword [rbp]
cmp qword [rax + 8], 0
je 0x140150d37
cmp qword [rax + 0x10], 0x11
jae 0x140150d20
mov r8, qword [rbp + 0x38]
jmp 0x140150d28
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
test r14, r14
jne 0x140150efe
jmp 0x140150d60
cmp qword [rbp + 0x40], 0
je 0x140150f94
mov rcx, qword [0x14023c280]
xor edx, edx
mov r8, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14, r14
lea r15, [0x1401bd930]
cmovne r15, r14
jmp 0x140150ba4
cmp qword [rbp + 0x40], 0
je 0x140150fc1
mov rcx, qword [0x14023c280]
xor edx, edx
mov r8, qword [rbp + 0x48]
call qword [sym.imp.KERNEL32.dll_HeapFree]
test r14, r14
je 0x140151144
mov eax, r14d
and eax, 3
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x140151144
test rax, rax
je 0x140151144
lea rax, [r14 - 1]
mov qword [rbp + 0x88], rax
mov rcx, qword [r14 - 1]
mov rax, qword [r14 + 7]
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x78], rax
call qword [rax]
mov rax, qword [rbp + 0x78]
cmp qword [rax + 8], 0
je 0x14015112e
cmp qword [rax + 0x10], 0x11
jae 0x140151114
mov r8, qword [rbp + 0x80]
jmp 0x14015111f
cmp rax, 0xe
je 0x140150ba4
sub r10, rax
cmp r10, 5
jae 0x14015109c
xor edx, edx
xor eax, eax
nop word cs:[rax + rax]
movzx r11d, byte [r9 + rdx]
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x140150ba4
add eax, eax
lea eax, [rax + rax*4]
add eax, r11d
inc rdx
cmp r10, rdx
jne 0x140151050
mov qword [rbp + 8], rsi
mov qword [rbp + 0x10], r8
mov word [rbp + 0x18], ax
lea rcx, [rbp + 0x50]
lea rdx, [rbp + 8]
call fcn.14015bdc0
cmp qword [rbp + 0x50], 0
je 0x1401510e1
mov r15, qword [rbp + 0x58]
jmp 0x140150ba4
xor r11d, r11d
mov di, 0xa
xor eax, eax
nop word cs:[rax + rax]
cmp r10, r11
je 0x140151073
movzx ebx, byte [r9 + r11]
mul di
seto dl
add ebx, 0xffffffd0
cmp ebx, 9
ja 0x140150ba4
test dl, dl
jne 0x140150ba4
inc r11
add ax, bx
jae 0x1401510b0
jmp 0x140150ba4
mov rax, qword [rbp + 0x58]
movups xmm0, xmmword [rbp + 0x60]
movups xmmword [rbp - 0x48], xmm0
mov qword [rbp - 0x50], rax
lea rcx, [rbp - 0x38]
lea rdx, [rbp - 0x50]
call fcn.14015bfc0
mov rax, qword [rbp - 0x38]
test rax, rax
jne 0x140150cbc
mov r15, qword [rbp - 0x30]
jmp 0x140150ba4
mov r8, qword [rbp + 0x80]
mov r8, qword [r8 - 8]
mov rcx, qword [0x14023c280]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x14023c280]
xor edx, edx
mov r8, qword [rbp + 0x88]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rdi
add rsp, 0x118
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
jmp qword [sym.imp.WS2_32.dll_closesocket]
lea rcx, str.called__Option::unwrap____on_a__None__value
lea r8, str._rustc_79e9716c980570bfd1f666e3b16ac583f0168962library_std_src_synconce.rs
mov edx, 0x2b
call fcn.140184cf0
ud2
mov ecx, 4
mov edx, 0x20
call fcn.1401846a0
ud2
add byte [rax], al
add byte [rax], al
sub byte [rax + 0x23b9], 0
test al, 0xb9
and eax, dword [rax]
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al
add byte [rax], al