Function at 0x1400304ae
Capabilities:
Connect socket
Resolve dns

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
movdqa xmmword [rbp + 0x200], xmm7
movdqa xmmword [rbp + 0x1f0], xmm6
mov qword [rbp + 0x1e8], 0xfffffffffffffffe
mov rbx, r8
mov rdi, rdx
mov qword [rbp + 0x150], rcx
lea rcx, [rbp + 0x1a0]
mov qword [rcx], rdx
mov qword [rcx + 8], r8
call fcn.140005e50
mov r15, rax
test r15b, 1
je 0x140030599
mov rsi, qword [rbp + 0x1a8]
test rsi, rsi
je 0x140030567
mov rax, qword [rbp + 0x1a0]
lea rcx, [rsi - 1]
mov dl, byte [rax]
inc rax
mov qword [rbp + 0x1a0], rax
mov qword [rbp + 0x1a8], rcx
cmp dl, 0x3a
jne 0x140030567
lea rdx, [rbp - 0x50]
mov dword [rdx + 0x10], 0xa
and qword [rdx], 0
mov byte [rdx + 0x14], 1
lea rcx, [rbp + 0x1a0]
call fcn.1400065e0
cmp ax, 1
jne 0x140030569
jmp 0x140030575
xor eax, eax
mov qword [rbp + 0x1a8], rsi
test ax, ax
je 0x140030599
movabs rax, 0xffffffff00
and r15, rax
shr r15, 8
push 1
pop rax
movzx ecx, dx
shl rcx, 0x30
shl r15, 0x10
or r15, rcx
jmp 0x14003059e
xor r15d, r15d
xor eax, eax
or rax, r15
cmp ax, 1
je 0x1400306ae
movzx ecx, ax
mov rax, rbx
test ecx, ecx
jne 0x1400306b5
test rbx, rbx
je 0x140030ad7
lea rax, [rbx - 1]
lea rcx, [rdi + 1]
mov dl, byte [rdi]
mov qword [rbp + 0x1a0], rcx
mov qword [rbp + 0x1a8], rax
cmp dl, 0x5b
jne 0x140030ad7
pxor xmm0, xmm0
lea rdx, [rbp - 0x50]
movdqa xmmword [rdx], xmm0
lea rcx, [rbp + 0x1a0]
push 8
pop r14
mov r8, r14
call fcn.1400063b0
cmp rax, 8
jne 0x140030956
movdqa xmm6, xmmword [rbp - 0x50]
movdqa xmm0, xmm6
psrlw xmm0, 8
psllw xmm6, 8
por xmm6, xmm0
mov rcx, qword [rbp + 0x1a0]
mov r8, qword [rbp + 0x1a8]
xor r13d, r13d
test r8, r8
je 0x140030a12
cmp byte [rcx], 0x25
jne 0x140030a3e
lea r11, [r8 - 1]
lea r10, [rcx + 1]
xor r14d, r14d
push 0xa
pop r15
mov qword [rbp + 0x1d8], r11
mov rsi, r10
xor r12d, r12d
xor r13d, r13d
mov eax, 0
test r11, r11
je 0x140030688
movzx r9d, byte [rsi]
add r9d, 0xffffffd0
xor eax, eax
cmp r9d, 0xa
setb al
jae 0x140030688
dec r11
inc rsi
cmp eax, 1
jne 0x140030a14
mov eax, r14d
mul r15d
jo 0x140030a2c
mov r14d, eax
add r14d, r9d
jb 0x140030a2c
inc r12
jmp 0x140030665
mov rax, qword [rbp + 0x1a8]
test rax, rax
jne 0x140030ae5
mov esi, r15d
shr esi, 0x10
shr r15, 0x18
xor edi, edi
mov al, byte [0x14005ec68]
push 0x20
pop rcx
push 4
pop rdx
call fcn.1400025c0
test rax, rax
je 0x1400310a8
mov rbx, rax
mov word [rax], di
mov rax, r15
shl rax, 8
movzx ecx, sil
or rcx, rax
shr r15, 0x18
mov word [rbx + 6], r15w
mov dword [rbx + 2], ecx
movq qword [rbx + 8], xmm6
pshufd xmm0, xmm6, 0xee
movd dword [rbx + 0x10], xmm0
and dword [rbx + 0x14], 0
mov dword [rbx + 0x18], r14d
mov word [rbx + 0x1c], r12w
mov rsi, rbx
add rsi, 0x20
push 1
pop rdi
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x48], rdi
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x38], rsi
xor r13d, r13d
mov qword [rbp + 0x158], rsi
cmp rbx, rsi
je 0x140030913
lea rdx, [rbx + 0x20]
mov qword [rbp - 0x40], rdx
movzx edi, word [rbx]
movzx ecx, word [rbx + 0x12]
mov word [rbp + 0x140], cx
movups xmm0, xmmword [rbx + 2]
movaps xmmword [rbp + 0x130], xmm0
cmp di, 2
je 0x140030913
mov qword [rbp + 0x1d8], r13
mov qword [rbp + 0x1d0], rdx
mov esi, dword [rbx + 0x14]
mov r14d, dword [rbx + 0x18]
movzx ebx, word [rbx + 0x1c]
movzx eax, word [rbp + 0x140]
mov word [rbp + 0x170], ax
movdqa xmm0, xmmword [rbp + 0x130]
movdqa xmmword [rbp + 0x160], xmm0
mov rax, qword [0x14005ebd0]
cmp rax, 3
jne 0x140030909
push 2
pop r12
test di, di
push 1
pop rdx
je 0x1400307d0
push 0x17
pop r12
mov dword [rsp + 0x28], 0x81
and dword [rsp + 0x20], 0
mov ecx, r12d
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ws2_32.dll_WSASocketW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x14003080a
test di, di
je 0x140030870
mov ax, 0x17
movdqu xmm0, xmmword [rbp + 0x162]
push 0x1c
jmp 0x140030887
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
cmp eax, 0x2739
je 0x140030825
mov r13d, eax
cmp eax, 0x2726
jne 0x1400308d7
mov dword [rsp + 0x28], 1
and dword [rsp + 0x20], 0
mov ecx, r12d
push 1
pop r12
mov edx, r12d
xor r8d, r8d
xor r9d, r9d
call qword [sym.imp.ws2_32.dll_WSASocketW]
cmp rax, 0xffffffffffffffff
je 0x1400308fe
mov r15, rax
mov rcx, rax
mov edx, r12d
xor r8d, r8d
call qword [sym.imp.kernel32.dll_SetHandleInformation]
test eax, eax
jne 0x1400307f5
call qword [sym.imp.kernel32.dll_GetLastError]
jmp 0x1400308cb
movzx ebx, word [rbp + 0x164]
mov esi, dword [rbp + 0x160]
mov ax, 2
pxor xmm0, xmm0
push 0x10
pop r8
rol bx, 8
mov word [rbp + 0x1a0], ax
mov word [rbp + 0x1a2], bx
mov dword [rbp + 0x1a4], esi
movdqu xmmword [rbp + 0x1a8], xmm0
mov dword [rbp + 0x1b8], r14d
mov rcx, r15
lea rdx, [rbp + 0x1a0]
call qword [sym.imp.ws2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x14003092f
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
mov r13d, eax
mov rcx, r15
call qword [sym.imp.ws2_32.dll_closesocket]
shl r13, 0x20
or r13, 2
mov rcx, qword [rbp + 0x1d8]
call fcn.14002c92f
mov rbx, qword [rbp + 0x1d0]
mov rsi, qword [rbp + 0x158]
jmp 0x140030744
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
mov r13d, eax
jmp 0x1400308d7
call fcn.140042a70
jmp 0x1400307c0
lea rcx, [rbp - 0x50]
call fcn.14002c914
test r13, r13
lea rcx, str.could_not_resolve_to_any_addresses
cmovne rcx, r13
jmp 0x140030b3b
lea rcx, [rbp - 0x50]
call fcn.14002c914
mov rcx, qword [rbp + 0x1d8]
call fcn.14002c92f
mov rcx, qword [rbp + 0x150]
mov qword [rcx + 8], r15
push 0xa
jmp 0x140030b4b
test dl, 1
jne 0x140030ad7
mov rcx, qword [rbp + 0x1a8]
test rcx, rcx
je 0x140030ad7
mov rdx, qword [rbp + 0x1a0]
cmp byte [rdx], 0x3a
jne 0x140030ad7
cmp rcx, 1
je 0x140030ad7
add rcx, 0xfffffffffffffffe
mov r8b, byte [rdx + 1]
add rdx, 2
mov qword [rbp + 0x1a0], rdx
mov qword [rbp + 0x1a8], rcx
cmp r8b, 0x3a
jne 0x140030ad7
and qword [rbp + 0x166], 0
and qword [rbp + 0x160], 0
push 7
pop r8
sub r8, rax
jb 0x140031167
lea rcx, [rbp + 0x1a0]
lea rdx, [rbp + 0x160]
call fcn.1400063b0
sub r14, rax
jb 0x140031179
cmp rax, 8
je 0x14003118d
lea rcx, [r14*2 - 0x50]
add rcx, rbp
add rax, rax
lea rdx, [rbp + 0x160]
mov r8, rax
call fcn.140040f00
jmp 0x14003060c
jmp 0x140030a3e
test r12, r12
je 0x140030a29
push 1
pop r13
mov qword [rbp + 0x1d8], r11
mov r10, rsi
jmp 0x140030a2c
xor r13d, r13d
cmp r13d, 1
jne 0x140030a3e
mov rcx, r10
mov r8, qword [rbp + 0x1d8]
jmp 0x140030a45
test r13d, r13d
cmove r14d, r13d
test r8, r8
je 0x140030ad7
cmp byte [rcx], 0x5d
jne 0x140030ad7
mov rsi, r8
dec rsi
je 0x140030aa6
add r8, 0xfffffffffffffffe
mov al, byte [rcx + 1]
add rcx, 2
mov qword [rbp + 0x1a0], rcx
mov qword [rbp + 0x1a8], r8
cmp al, 0x3a
jne 0x140030aa6
lea rdx, [rbp - 0x50]
mov dword [rdx + 0x10], 0xa
and qword [rdx], 0
mov byte [rdx + 0x14], 1
lea rcx, [rbp + 0x1a0]
call fcn.1400065e0
mov r12d, edx
cmp ax, 1
jne 0x140030aa8
jmp 0x140030ab4
xor eax, eax
mov qword [rbp + 0x1a8], rsi
test ax, ax
je 0x140030ad7
cmp qword [rbp + 0x1a8], 0
jne 0x140030ae5
movd r15d, xmm6
pshufd xmm6, xmm6, 0xf9
shl r15, 8
mov di, 1
xor esi, esi
jmp 0x1400306ca
mov qword [rbp + 0x1a0], rdi
mov qword [rbp + 0x1a8], rbx
mov qword [rbp - 0x50], rdi
mov qword [rbp - 0x48], rbx
and qword [rbp - 0x40], 0
mov qword [rbp - 0x30], 1
movabs rax, 0x3a0000003a
mov qword [rbp - 0x28], rax
mov sil, 0x3a
mov r14, rbx
mov cl, 0x3a
mov rdx, rdi
mov r8, r14
call fcn.140008fd0
cmp rax, 1
jne 0x140030b34
mov r14, rdx
cmp rdx, rbx
jae 0x140030b2f
cmp byte [rdi + r14], sil
je 0x140030b71
cmp r14, rbx
jbe 0x140030b0e
lea rcx, str.invalid_socket_address
mov rax, qword [rbp + 0x150]
mov qword [rax + 8], rcx
mov rcx, rax
push 1
pop rax
mov qword [rcx], rax
movaps xmm6, xmmword [rbp + 0x1f0]
movaps xmm7, xmmword [rbp + 0x200]
add rsp, 0x298
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rsi, [r14 + 1]
lea rcx, str.invalid_port_value
sub rbx, rsi
je 0x140030b3b
lea r8, [rdi + r14]
inc r8
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x140030ba0
cmp eax, 0x2b
jne 0x140030ba6
dec rbx
je 0x140030b3b
inc r8
jmp 0x140030ba6
cmp rbx, 1
je 0x140030b3b
cmp rbx, 5
jae 0x140030c27
xor eax, eax
xor r15d, r15d
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x140030b3b
imul r15d, r15d, 0xa
add r15d, edx
inc rax
cmp rbx, rax
jne 0x140030bb1
mov rax, qword [0x14005ebd0]
cmp rax, 3
jne 0x14003107e
cmp r14, 0x17f
ja 0x140031088
lea rbx, [rbp - 0x50]
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.140040f00
mov byte [rbp + r14 - 0x50], 0
cmp r14, 0xe
ja 0x140030c6d
xor ecx, ecx
cmp byte [rbp + rcx - 0x50], 0
je 0x140030d0d
inc rcx
cmp rsi, rcx
jne 0x140030c0f
jmp 0x140030d65
xor r9d, r9d
mov r10w, 0xa
xor r15d, r15d
cmp rbx, r9
je 0x140030bd1
movzx r11d, byte [r8 + r9]
mov eax, r15d
mul r10w
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x140030b3b
test dl, dl
jne 0x140030b3b
mov r15d, eax
inc r9
add r15w, r11w
jae 0x140030c32
jmp 0x140030b3b
lea rax, [rbp - 0x49]
and rax, 0xfffffffffffffff8
sub rax, rbx
je 0x140030c9c
je 0x140030c9c
xor ecx, ecx
cmp byte [rbp + rcx - 0x50], 0
je 0x140030d0d
inc rcx
cmp rax, rcx
jne 0x140030c7e
lea rcx, [r14 - 0xf]
cmp rax, rcx
jbe 0x140030ca2
jmp 0x140030ceb
lea rcx, [r14 - 0xf]
xor eax, eax
movabs rdx, 0xfefefefefefefeff
movabs r8, 0x8080808080808080
mov r9, qword [rbp + rax - 0x50]
mov r10, r9
not r10
add r9, rdx
and r9, r10
test r9, r8
jne 0x140030ceb
mov r9, qword [rbp + rax - 0x48]
mov r10, r9
not r10
add r9, rdx
and r9, r10
test r9, r8
jne 0x140030ceb
add rax, 0x10
cmp rax, rcx
jbe 0x140030cb6
sub rsi, rax
je 0x140030d65
lea rdx, [rax + rbp]
add rdx, 0xffffffffffffffb0
xor ecx, ecx
cmp byte [rdx + rcx], 0
je 0x140030d0a
inc rcx
cmp rsi, rcx
jne 0x140030cfa
jmp 0x140030d65
add rcx, rax
cmp rcx, r14
jne 0x140030d65
pxor xmm0, xmm0
lea r8, [rbp + 0x1a0]
movdqa xmmword [r8], xmm0
movdqa xmmword [r8 + 0x20], xmm0
movdqa xmmword [r8 + 0x10], xmm0
mov dword [r8 + 8], 1
lea r9, [rbp + 0x130]
and qword [r9], 0
lea rcx, [rbp - 0x50]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x140030dec
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
jmp 0x140030d6c
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rbp + 0x168], rax
push 1
pop rax
test rax, rax
je 0x140030d87
mov rcx, qword [rbp + 0x168]
jmp 0x140030b3b
mov rcx, qword [rbp + 0x168]
mov rax, qword [rbp + 0x170]
push 4
pop rbx
test rax, rax
je 0x140030dd6
mov qword [rbp + 0x1d8], rcx
movzx r15d, word [rbp + 0x178]
xor esi, esi
mov rcx, qword [rax + 0x20]
mov r12, qword [rax + 0x28]
movzx edx, word [rcx]
cmp edx, 0x17
je 0x140030e32
cmp edx, 2
je 0x140030e10
mov rax, r12
test r12, r12
jne 0x140030dae
xor edi, edi
mov rcx, qword [rbp + 0x1d8]
jmp 0x140030dda
xor esi, esi
xor edi, edi
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
shl rsi, 5
add rsi, rbx
jmp 0x14003072a
mov rax, qword [rbp + 0x130]
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x170], rax
mov word [rbp + 0x178], r15w
xor eax, eax
jmp 0x140030d76
cmp qword [rax + 0x10], 0x10
jb 0x140031129
mov edi, dword [rcx + 4]
mov eax, edi
shr eax, 0x10
movd xmm6, eax
pinsrw xmm6, r15d, 1
xor r14d, r14d
jmp 0x140030e52
cmp qword [rax + 0x10], 0x1c
jb 0x140031148
movdqu xmm6, xmmword [rcx + 8]
mov ebx, dword [rcx + 4]
mov esi, dword [rcx + 0x18]
pshufd xmm7, xmm6, 0xf9
mov r14w, 1
mov al, byte [0x14005ec68]
push 4
pop r13
mov ecx, 0x80
mov rdx, r13
call fcn.1400025c0
test rax, rax
je 0x1400310c4
mov word [rax], r14w
mov word [rax + 2], di
movd dword [rax + 4], xmm6
movq qword [rax + 8], xmm7
pshufd xmm0, xmm7, 0xee
movd dword [rax + 0x10], xmm0
mov dword [rax + 0x14], ebx
mov dword [rax + 0x18], esi
mov word [rax + 0x1c], r15w
push 1
pop rsi
lea r10, [rbp + 0x1a0]
lea r9, [rbp - 0x50]
mov rdi, r13
mov rcx, rax
mov rbx, rax
mov r11, r13
mov dword [rbp + 0x158], r15d
test r12, r12
je 0x140030dcd
mov rdx, r12
mov rax, qword [rdx + 0x20]
mov r12, qword [rdx + 0x28]
movzx r8d, word [rax]
cmp r8d, 0x17
je 0x140030f16
cmp r8d, 2
je 0x140030eeb
mov rdx, r12
test r12, r12
jne 0x140030ec6
jmp 0x140030dcd
mov qword [rbp + 0x1d0], rbx
cmp qword [rdx + 0x10], 0x10
jb 0x1400310dd
mov r14d, dword [rax + 4]
mov eax, r14d
shr eax, 0x10
movd xmm7, eax
pinsrw xmm7, r15d, 1
xor r13d, r13d
jmp 0x140030f3d
mov qword [rbp + 0x1d0], rbx
cmp qword [rdx + 0x10], 0x1c
jb 0x1400310fc
movdqu xmm6, xmmword [rax + 8]
mov r15d, dword [rax + 4]
mov ebx, dword [rax + 0x18]
mov r13w, 1
movdqa xmm7, xmm6
cmp rsi, rdi
jne 0x14003102b
mov r8, rdi
inc rdi
mov qword [rbp + 0x188], r8
je 0x1400310ba
mov dword [rbp + 0x19c], r15d
lea rax, [r8 + r8]
cmp rax, rdi
cmova rdi, rax
cmp rdi, 5
cmovb rdi, r11
xor edx, edx
mov rax, rdi
shr rax, 0x3a
sete al
test r8, r8
mov dword [rbp + 0x194], ebx
mov dword [rbp + 0x198], r14d
je 0x140030faf
mov rcx, r8
shl rcx, 5
mov r8, qword [rbp + 0x1d0]
mov qword [rbp - 0x50], r8
mov qword [rbp - 0x40], rcx
mov r15, r11
mov rcx, r11
jmp 0x140030fb4
mov r15, r11
xor ecx, ecx
mov r8, rdi
shl r8, 5
mov dl, al
shl rdx, 2
mov qword [rbp - 0x48], rcx
mov rbx, r10
mov rcx, r10
mov r14, r9
call fcn.140012900
cmp qword [rbp + 0x1a0], 0
mov rcx, qword [rbp + 0x1a8]
je 0x140031007
movabs rax, 0x8000000000000001
cmp rcx, rax
jne 0x1400310b5
mov rdi, qword [rbp + 0x188]
mov rcx, qword [rbp + 0x1d0]
jmp 0x14003100e
mov qword [rbp + 0x1d0], rcx
mov r11, r15
mov r10, rbx
mov r9, r14
mov ebx, dword [rbp + 0x194]
mov r14d, dword [rbp + 0x198]
mov r15d, dword [rbp + 0x19c]
pshufd xmm0, xmm6, 0xf9
mov rax, rsi
shl rax, 5
mov word [rcx + rax], r13w
mov word [rcx + rax + 2], r14w
movd dword [rcx + rax + 4], xmm7
pshufd xmm1, xmm0, 0xee
movd dword [rcx + rax + 0x10], xmm1
movq qword [rcx + rax + 8], xmm0
mov dword [rcx + rax + 0x14], r15d
mov dword [rcx + rax + 0x18], ebx
mov r15d, dword [rbp + 0x158]
mov word [rcx + rax + 0x1c], r15w
inc rsi
mov rbx, qword [rbp + 0x1d0]
jmp 0x140030eba
call fcn.140042a70
jmp 0x140030be2
lea rbx, [rbp + 0x160]
mov rcx, rbx
mov rdx, rdi
mov r8, r14
mov r9d, r15d
call fcn.140042ad0
mov rax, qword [rbx]
jmp 0x140030d76
push 4
pop rcx
push 0x20
pop rdx
call fcn.140041a10
ud2
test rcx, rcx
jne 0x14003111b
call fcn.1400026a0
jmp 0x140031165
mov byte [rbp + 0x1e7], 1
push 4
pop rcx
mov edx, 0x80
call fcn.140041a10
jmp 0x140031165
mov qword [rbp + 0x188], rdi
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
lea r8, [0x14004cf68]
push 0x42
pop rdx
call fcn.140041c70
jmp 0x140031165
mov qword [rbp + 0x188], rdi
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x14004cfc8]
push 0x43
pop rdx
call fcn.140041c70
jmp 0x140031165
mov rdx, qword [rbp + 0x1b0]
call fcn.140041a10
jmp 0x140031165
mov byte [rbp + 0x1e7], 1
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in___library_std_src_sys_common_net.rs
lea r8, [0x14004cf68]
push 0x42
pop rdx
call fcn.140041c70
jmp 0x140031165
mov byte [rbp + 0x1e7], 1
lea rcx, str.assertion_failed:_len_as_usize___mem::size_of::_c::sockaddr_in6___
lea r8, [0x14004cfc8]
push 0x43
pop rdx
call fcn.140041c70
ud2
lea rax, [0x140044c30]
push 7
pop rdx
mov rcx, r8
mov r8, rax
jmp 0x14003119a
lea r8, [0x140044c48]
push 8
pop rdx
mov rcx, r14
call fcn.140041e30
ud2
lea r8, [0x140044c60]
push 8
pop rcx
push 7
pop rdx
call fcn.140041c00
ud2