Function at 0x14002a4b0
Capabilities:
Resolve dns

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x278
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x1f0], 0xfffffffffffffffe
mov r14, r8
mov rbx, rdx
mov rsi, rcx
lea rcx, [rbp + 0x128]
call fcn.140014fd0
cmp word [rbp + 0x128], 2
jne 0x14002a567
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], r14
mov qword [rbp - 0x48], 0
mov byte [rbp - 0x30], 1
movabs rax, 0x3a0000003a
mov qword [rbp - 0x38], rax
mov r12b, 0x3a
mov r15, qword [rbp - 0x40]
mov rdi, r14
jmp 0x14002a53c
mov r15, rdi
cmp rdi, r14
ja 0x14002a5c0
mov cl, 0x3a
mov rdx, rbx
mov r8, rdi
call fcn.140016e40
cmp rax, 1
jne 0x14002a5bb
mov rdi, rdx
cmp rdx, r14
jae 0x14002a530
cmp byte [rbx + rdi], r12b
jne 0x14002a530
mov qword [rbp - 0x40], r15
lea r8, [rdi + 1]
jmp 0x14002a5d0
movzx eax, byte [0x14005d2d0]
mov edx, 0x20
xor ecx, ecx
call fcn.14002b240
test rax, rax
je 0x14002ab40
movdqu xmm0, xmmword [rbp + 0x128]
movdqu xmm1, xmmword [rbp + 0x138]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmmword [rax], xmm0
mov rcx, rax
add rcx, 0x20
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], 1
mov qword [rsi + 0x18], rcx
jmp 0x14002a83a
test rax, rax
jne 0x14002a5cc
lea rcx, str.invalid_socket_address
jmp 0x14002a82f
mov qword [rbp - 0x40], r15
lea rcx, str.invalid_port_value
sub r14, r8
je 0x14002a82f
add r8, rbx
cmp r14, 1
jne 0x14002a607
movzx eax, byte [r8]
cmp eax, 0x2b
je 0x14002a82f
mov r14d, 1
cmp eax, 0x2d
je 0x14002a82f
jmp 0x14002a664
cmp byte [r8], 0x2b
jne 0x14002a65e
inc r8
lea rax, [r14 - 1]
cmp r14, 6
mov r14, rax
jb 0x14002a664
xor r9d, r9d
mov r10w, 0xa
xor eax, eax
nop word [rax + rax]
mul r10w
jo 0x14002a82f
movzx edx, byte [r8 + r9]
add edx, 0xffffffd0
cmp edx, 9
ja 0x14002a82f
add ax, dx
jb 0x14002a82f
inc r9
cmp r14, r9
jne 0x14002a630
jmp 0x14002a693
cmp r14, 5
jae 0x14002a61d
xor edx, edx
xor eax, eax
nop dword [rax + rax]
movzx r9d, byte [r8 + rdx]
add r9d, 0xffffffd0
cmp r9d, 9
ja 0x14002a82f
add eax, eax
lea eax, [rax + rax*4]
add eax, r9d
inc rdx
cmp r14, rdx
jne 0x14002a670
mov word [rbp + 0x1ec], ax
mov rax, qword [0x14005d250]
cmp rax, 3
jne 0x14002ab11
lea r15, [rbp + 0x1ec]
mov qword [rbp + 0x150], r15
cmp rdi, 0x17f
ja 0x14002ab1b
lea r14, [rbp - 0x58]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbp + rdi - 0x58], 0
lea rax, [rdi + 1]
cmp rdi, 0xe
ja 0x14002a708
xor edx, edx
nop dword [rax]
cmp byte [rbp + rdx - 0x58], 0
je 0x14002a79c
inc rdx
cmp rax, rdx
jne 0x14002a6f0
jmp 0x14002a810
lea rcx, [rbp - 0x51]
and rcx, 0xfffffffffffffff8
sub rcx, r14
je 0x14002a731
xor edx, edx
cmp byte [rbp + rdx - 0x58], 0
je 0x14002a79c
inc rdx
cmp rcx, rdx
jne 0x14002a717
lea rdx, [rdi - 0xf]
cmp rcx, rdx
jbe 0x14002a735
jmp 0x14002a775
lea rdx, [rdi - 0xf]
movdqa xmm0, xmmword [0x140043510]
movabs r8, 0x8080808080808080
movdqu xmm1, xmmword [rbp + rcx - 0x58]
movdqa xmm2, xmm1
paddq xmm2, xmm0
pandn xmm1, xmm2
pshufd xmm2, xmm1, 0xee
por xmm2, xmm1
movq r9, xmm2
test r9, r8
jne 0x14002a775
add rcx, 0x10
cmp rcx, rdx
jbe 0x14002a747
sub rax, rcx
je 0x14002a810
lea r8, [rcx + rbp]
add r8, 0xffffffffffffffa8
xor edx, edx
cmp byte [r8 + rdx], 0
je 0x14002a799
inc rdx
cmp rax, rdx
jne 0x14002a788
jmp 0x14002a810
add rdx, rcx
cmp rdx, rdi
jne 0x14002a810
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x170], xmm0
movdqa xmmword [rbp + 0x190], xmm0
movdqa xmmword [rbp + 0x180], xmm0
mov dword [rbp + 0x178], 1
mov qword [rbp + 0x1a8], 0
lea rcx, [rbp - 0x58]
lea r8, [rbp + 0x170]
lea r9, [rbp + 0x1a8]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x14002aae7
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
mov edx, 1
mov qword [rbp + 0x1d0], rax
jmp 0x14002a823
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rbp + 0x1d0], rax
mov edx, 1
mov rcx, qword [rbp + 0x1d0]
test rdx, rdx
je 0x14002a84e
mov qword [rsi + 8], rcx
mov qword [rsi], 0
add rsp, 0x278
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [rbp + 0x1d8]
movzx r8d, word [rbp + 0x1e0]
mov r9d, dword [rbp + 0x1e2]
mov dword [rbp + 0x1a0], r9d
movzx r10d, word [rbp + 0x1e6]
mov word [rbp + 0x1a4], r10w
mov word [rbp + 0x1ec], r8w
lea rdx, [rbp + 0x1d0]
mov qword [rbp + 0x1d0], rcx
mov qword [rbp + 0x1d8], rax
mov word [rbp + 0x1e0], r8w
mov dword [rbp + 0x1e2], r9d
mov word [rbp + 0x1e6], r10w
mov qword [rbp + 0x1c8], r15
mov byte [rbp + 0x1ef], 1
lea rcx, [rbp - 0x58]
call fcn.14002a270
movzx edi, word [rbp - 0x58]
cmp di, 2
jne 0x14002a8eb
mov rcx, qword [rbp + 0x1d0]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov eax, 4
xor edx, edx
xor ecx, ecx
jmp 0x14002aacc
mov qword [rbp + 0x148], rsi
mov r14d, dword [rbp - 0x56]
movzx r15d, word [rbp - 0x52]
mov eax, dword [rbp - 0x40]
mov dword [rbp + 0x180], eax
movdqu xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp + 0x170], xmm0
movzx r13d, word [rbp - 0x3c]
movzx r12d, word [rbp - 0x3a]
mov rax, qword [rbp + 0x1c8]
movzx esi, word [rax]
movzx eax, byte [0x14005d2d0]
mov edx, 0x80
xor ecx, ecx
call fcn.14002b240
test rax, rax
je 0x14002ab4f
mov rbx, rax
test di, di
cmovne r13d, esi
cmove r15d, esi
mov eax, dword [rbp + 0x180]
mov dword [rbx + 0x18], eax
movaps xmm0, xmmword [rbp + 0x170]
movups xmmword [rbx + 8], xmm0
mov word [rbx], di
mov dword [rbx + 2], r14d
mov word [rbx + 6], r15w
mov word [rbx + 0x1c], r13w
mov word [rbx + 0x1e], r12w
mov qword [rbp + 0x1a8], 4
mov qword [rbp + 0x1b0], rbx
mov qword [rbp + 0x1b8], 1
movdqu xmm0, xmmword [rbp + 0x1c8]
movdqu xmm1, xmmword [rbp + 0x1d8]
movdqa xmmword [rbp + 0x180], xmm1
movdqa xmmword [rbp + 0x170], xmm0
mov eax, 1
mov qword [rbp + 0x1c0], rax
mov r13d, 0x20
jmp 0x14002aa23
mov rbx, qword [rbp + 0x1b0]
mov rdx, qword [rbp + 0x1c0]
mov word [rbx + r13], r14w
mov dword [rbx + r13 + 2], edi
mov word [rbx + r13 + 6], si
movdqa xmm0, xmmword [rbp + 0x150]
movdqu xmmword [rbx + r13 + 8], xmm0
mov eax, dword [rbp + 0x160]
mov dword [rbx + r13 + 0x18], eax
mov word [rbx + r13 + 0x1c], r15w
mov word [rbx + r13 + 0x1e], r12w
inc rdx
mov qword [rbp + 0x1c0], rdx
mov qword [rbp + 0x1b8], rdx
add r13, 0x20
lea rcx, [rbp - 0x58]
lea rdx, [rbp + 0x178]
call fcn.14002a270
movzx r14d, word [rbp - 0x58]
cmp r14w, 2
je 0x14002aaa3
lea rax, [rbp - 0x50]
movdqu xmm0, xmmword [rax]
movdqa xmmword [rbp + 0x150], xmm0
mov eax, dword [rax + 0x10]
mov dword [rbp + 0x160], eax
mov rax, qword [rbp + 0x170]
movzx r15d, word [rax]
test r14w, r14w
movzx esi, word [rbp - 0x52]
cmove si, r15w
cmove r15w, word [rbp - 0x3c]
mov edi, dword [rbp - 0x56]
movzx r12d, word [rbp - 0x3a]
mov rdx, qword [rbp + 0x1c0]
cmp rdx, qword [rbp + 0x1a8]
jne 0x14002a9d8
lea rcx, [rbp + 0x1a8]
call fcn.140041770
jmp 0x14002a9ca
mov rcx, qword [rbp + 0x178]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov rcx, qword [rbp + 0x1a8]
mov rax, qword [rbp + 0x1b0]
mov rsi, qword [rbp + 0x148]
mov rdx, qword [rbp + 0x1c0]
shl rdx, 5
add rdx, rax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], rdx
jmp 0x14002a83a
mov rax, qword [rbp + 0x1a8]
movzx ecx, word [rbp + 0x1ec]
mov qword [rbp + 0x1d8], rax
mov word [rbp + 0x1e0], cx
xor edx, edx
mov qword [rbp + 0x1d0], rax
jmp 0x14002a823
call fcn.140041820
jmp 0x14002a6ab
lea rcx, [rbp + 0x1c8]
lea r9, [rbp + 0x150]
mov rdx, rbx
mov r8, rdi
call fcn.140041880
mov rdx, qword [rbp + 0x1c8]
jmp 0x14002a823
mov ecx, 4
mov edx, 0x20
call fcn.140040000
mov byte [rbp + 0x1ef], 1
mov ecx, 4
mov edx, 0x80
call fcn.14003ffe0
ud2