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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
lea rdi, str.127.0.0.1:34254could_not_resolve_to_any_addresses
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
lea rcx, [rsp + 0x30]
call fcn.14000c020
test al, 1
je 0x1400ecb3e
mov rsi, qword [rsp + 0x38]
test rsi, rsi
je 0x1400ecb39
mov rcx, qword [rsp + 0x30]
lea rdx, [rsi - 1]
movzx r8d, byte [rcx]
inc rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], rdx
cmp r8b, 0x3a
jne 0x1400ecb39
mov rbx, rax
mov qword [rsp + 0x58], 0
mov dword [rsp + 0x68], 0xa
mov byte [rsp + 0x6c], 1
lea rcx, [rsp + 0x58]
lea rdx, [rsp + 0x30]
call fcn.14000c7c0
cmp ax, 1
jne 0x1400ecb39
movabs rcx, 0xffffffff00
mov rax, rbx
and rax, rcx
shr rax, 8
movzx ecx, dx
shl rcx, 0x30
shl rax, 0x10
or rax, rcx
mov ecx, 1
or rcx, rax
cmp cx, 1
jne 0x1400ecb4f
cmp qword [rsp + 0x38], 0
jne 0x1400ecb64
mov rdi, rax
mov eax, dword [rsp + 0xdc]
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0xd4]
mov qword [rsp + 0x98], rax
movzx eax, byte [0x1401aa178]
mov edx, 0x20
xor ecx, ecx
call fcn.14011ab20
test rax, rax
je 0x1400ed03d
mov rsi, rax
mov word [rax], 0
mov rax, rdi
shr rax, 0x10
and rax, 0xffffffffffffff00
mov ecx, edi
shr ecx, 0x10
movzx ecx, cl
or rcx, rax
shr rdi, 0x30
mov word [rsi + 6], di
mov dword [rsi + 2], ecx
mov rax, qword [rsp + 0x98]
mov qword [rsi + 8], rax
mov eax, dword [rsp + 0xa0]
mov dword [rsi + 0x10], eax
mov dword [rsi + 0x14], 0
mov rax, rsi
add rax, 0x20
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0xb0], rsi
mov qword [rsp + 0xb8], 1
mov qword [rsp + 0xc0], rax
mov rax, rsi
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0xb8]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
cmp rsi, rax
je 0x1400ecec6
xor edi, edi
jmp 0x1400ecc74
mov qword [rsp + 0x38], rsi
xor eax, eax
xor ecx, ecx
or rcx, rax
cmp cx, 1
je 0x1400eca42
movzx eax, cx
test eax, eax
jne 0x1400ecb64
mov qword [rsp + 0x30], rdi
mov qword [rsp + 0x38], 0xf
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], 0xf
mov qword [rsp + 0x68], 0
mov byte [rsp + 0x80], 1
movabs rax, 0x3a0000003a
mov qword [rsp + 0x78], rax
mov bl, 0x3a
mov r8d, 0xf
jmp 0x1400ecba6
cmp r8, 0xf
ja 0x1400ecbfe
mov cl, 0x3a
mov rdx, rdi
call fcn.14000e880
cmp rax, 1
jne 0x1400ecbfe
mov r8, rdx
cmp rdx, 0xf
jae 0x1400ecba0
cmp byte [r8 + rdi], bl
jne 0x1400ecba0
mov r9, r8
lea rsi, str.invalid_port_value
sub r9, 0xe
je 0x1400ecc05
lea rcx, [r8 + rdi]
inc rcx
cmp r8, 0xd
jne 0x1400ece55
movzx eax, byte [rcx]
cmp eax, 0x2b
je 0x1400ecc05
mov r9d, 1
cmp eax, 0x2d
je 0x1400ecc05
jmp 0x1400ecf1b
lea rsi, str.invalid_socket_address
mov eax, 1
mov rdx, rsi
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, r15
call sub.kernel32.dll_HeapFree
dec rdi
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
shl r12, 0x20
or r12, 2
add rsi, 0x20
mov rdi, r12
cmp rsi, qword [rsp + 0xc8]
je 0x1400ecec9
movzx r14d, word [rsi]
cmp r14w, 2
je 0x1400ecefe
mov r13d, dword [rsi + 0x14]
mov r12d, dword [rsi + 0x18]
movzx ebx, word [rsi + 0x1c]
movzx eax, word [rsi + 0x12]
mov word [rsp + 0x40], ax
movups xmm0, xmmword [rsi + 2]
movaps xmmword [rsp + 0x30], xmm0
mov eax, dword [0x1401aa0e8]
cmp eax, 3
jne 0x1400ece44
test r14b, 1
mov ebp, 2
mov eax, 0x17
cmovne ebp, eax
mov dword [rsp + 0x28], 0x81
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x1400ecd10
test r14b, 1
je 0x1400ecd90
mov r8d, 0x1c
mov ax, 0x17
movups xmm0, xmmword [rsp + 0x32]
jmp 0x1400ecda7
mov dword [rsp + 0x54], r12d
call sub.ws2_32.dll_WSAGetLastError
cmp eax, 0x2739
je 0x1400ecd2f
mov r12d, eax
cmp eax, 0x2726
jne 0x1400ecdea
mov dword [rsp + 0x28], 1
mov dword [rsp + 0x20], 0
mov ecx, ebp
mov edx, 2
xor r8d, r8d
xor r9d, r9d
call sub.ws2_32.dll_WSASocketW
cmp rax, 0xffffffffffffffff
je 0x1400ece2c
mov r15, rax
mov rcx, rax
mov edx, 1
xor r8d, r8d
call sub.kernel32.dll_SetHandleInformation
test eax, eax
je 0x1400ece4e
mov r12d, dword [rsp + 0x54]
test r14b, 1
jne 0x1400eccf6
nop word cs:[rax + rax]
movzx ebx, word [rsp + 0x34]
mov r13d, dword [rsp + 0x30]
xorps xmm0, xmm0
mov r8d, 0x10
mov ax, 2
rol bx, 8
mov word [rsp + 0x58], ax
mov word [rsp + 0x5a], bx
mov dword [rsp + 0x5c], r13d
movups xmmword [rsp + 0x60], xmm0
mov dword [rsp + 0x70], r12d
mov rcx, r15
lea rdx, [rsp + 0x58]
call sub.ws2_32.dll_bind
cmp eax, 0xffffffff
jne 0x1400ecfb9
call sub.ws2_32.dll_WSAGetLastError
mov r12d, eax
mov rcx, r15
call fcn.14013f2e4
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400ecc57
mov r15, qword [rdi - 1]
mov rbx, qword [rdi + 7]
mov rax, qword [rbx]
test rax, rax
je 0x1400ece0d
mov rcx, r15
call rax
cmp qword [rbx + 8], 0
je 0x1400ecc42
cmp qword [rbx + 0x10], 0x11
jb 0x1400ecc30
mov r15, qword [r15 - 8]
jmp 0x1400ecc30
call sub.ws2_32.dll_WSAGetLastError
mov r12d, eax
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400ecc57
jmp 0x1400ecdf8
call fcn.14011a340
jmp 0x1400eccb0
call sub.kernel32.dll_GetLastError
jmp 0x1400ecddf
cmp byte [rcx], 0x2b
jne 0x1400ecf0e
lea rcx, [rdi + r8]
add rcx, 2
mov r9d, 0xd
sub r9, r8
cmp r8, 8
ja 0x1400ecf1b
xor r10d, r10d
mov r11w, 0xa
xor eax, eax
nop word cs:[rax + rax]
cmp r9, r10
je 0x1400ecf43
mul r11w
seto bl
movzx edx, byte [rcx + r10]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400ecc05
test bl, bl
jne 0x1400ecc05
inc r10
add ax, dx
jae 0x1400ece90
jmp 0x1400ecc05
xor r12d, r12d
cmp qword [rsp + 0x90], 0
je 0x1400eceeb
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, qword [rsp + 0x88]
call sub.kernel32.dll_HeapFree
test r12, r12
lea rsi, [0x14018d8a8]
cmovne rsi, r12
jmp 0x1400ecc05
mov r12, rdi
cmp qword [rsp + 0x90], 0
jne 0x1400eced4
jmp 0x1400eceeb
neg r9
cmp r8, 9
jbe 0x1400ece79
xor edx, edx
xor eax, eax
nop
movzx r10d, byte [rcx + rdx]
add r10d, 0xffffffd0
cmp r10d, 9
ja 0x1400ecc05
add eax, eax
lea eax, [rax + rax*4]
add eax, r10d
inc rdx
cmp r9, rdx
jne 0x1400ecf20
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x60], r8
mov word [rsp + 0x68], ax
lea rcx, [rsp + 0x30]
lea rdx, [rsp + 0x58]
call fcn.140119db0
mov rsi, qword [rsp + 0x38]
test byte [rsp + 0x30], 1
jne 0x1400ecc05
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rsp + 0xe8], xmm0
mov qword [rsp + 0xe0], rsi
lea rcx, [rsp + 0xa8]
lea rdx, [rsp + 0xe0]
call fcn.140119fe0
mov rax, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
test rax, rax
jne 0x1400ecb01
jmp 0x1400ecc05
cmp qword [rsp + 0x90], 0
je 0x1400ecfdb
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, qword [rsp + 0x88]
call sub.kernel32.dll_HeapFree
mov eax, edi
and eax, 3
cmp eax, 1
jne 0x1400ed033
mov rsi, qword [rdi - 1]
mov rbx, qword [rdi + 7]
mov rax, qword [rbx]
test rax, rax
je 0x1400ecffa
mov rcx, rsi
call rax
dec rdi
cmp qword [rbx + 8], 0
je 0x1400ed021
cmp qword [rbx + 0x10], 0x11
jb 0x1400ed00f
mov rsi, qword [rsi - 8]
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rsi
call sub.kernel32.dll_HeapFree
call sub.kernel32.dll_GetProcessHeap
mov rcx, rax
xor edx, edx
mov r8, rdi
call sub.kernel32.dll_HeapFree
xor eax, eax
mov rsi, r15
jmp 0x1400ecc0a
mov ecx, 4
mov edx, 0x20
call fcn.140006e69
int3