Function at 0x14004e81a
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x278
mov r15, r8
mov rbx, rdx
mov rsi, rcx
lea rdi, [rsp + 0xf8]
mov rcx, rdi
call fcn.140035980
cmp word [rdi], 2
jne 0x14004e8c2
mov qword [rsp + 0xf8], rbx
mov qword [rsp + 0x100], r15
mov qword [rsp + 0x108], 0
mov byte [rsp + 0x120], 1
movabs rax, 0x3a0000003a
mov qword [rsp + 0x118], rax
mov bpl, 0x3a
mov rdi, r15
mov cl, 0x3a
mov rdx, rbx
mov r8, rdi
call fcn.140036ea8
cmp rax, 1
jne 0x14004e8ae
mov rdi, rdx
cmp rdx, r15
jae 0x14004e8a9
cmp byte [rbx + rdi], bpl
je 0x14004e922
cmp rdi, r15
jbe 0x14004e888
lea rax, str.invalid_socket_address
mov qword [rsi + 8], rax
mov qword [rsi], 0
jmp 0x14004e90e
mov al, byte [0x14008fbb8]
mov edx, 0x20
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x14004ed7a
movups xmm0, xmmword [rsp + 0xf8]
movups xmm1, xmmword [rsp + 0x108]
movups xmmword [rax + 0x10], xmm1
movups 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
add rsp, 0x278
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movabs rax, 0x1738ab7082a21ec7
mov rcx, rdi
sub rcx, rax
lea r14, [rcx + rax]
inc r14
movabs rax, 0x7a8181c9a0968d69
add r15, rax
sub r15, r14
sub r15, rax
lea rcx, [rbx + r14]
mov rdx, r15
call fcn.140033e13
mov ecx, eax
xor ecx, 0xfffffffe
mov edx, eax
or edx, 1
test edx, ecx
je 0x14004e972
lea rax, str.invalid_port_value
jmp 0x14004e8b5
shr eax, 0x10
mov word [rsp + 0x50], ax
mov eax, dword [0x14008fb48]
cmp eax, 3
jne 0x14004ea8d
lea rax, [rsp + 0x50]
mov qword [rsp + 0x70], rax
cmp rdi, 0x17f
ja 0x14004ea97
lea rcx, [rsp + 0xf8]
mov rdx, rbx
mov r8, rdi
call fcn.140070050
mov byte [rsp + rdi + 0xf8], 0
cmp rdi, 0xe
ja 0x14004e9dc
xor ecx, ecx
xor edx, edx
cmp byte [rsp + rdx + 0xf8], 0
je 0x14004e9f3
inc rdx
cmp r14, rdx
jne 0x14004e9c5
mov rdx, r14
jmp 0x14004e9f8
lea rdx, [rsp + 0xf8]
xor ecx, ecx
mov r8, r14
call fcn.140034e7c
mov rcx, rax
jmp 0x14004e9f8
mov ecx, 1
mov r8d, 1
lea rax, str.file_name_contained_an_unexpected_NUL_byte
test rcx, rcx
je 0x14004eab6
cmp rdx, rdi
jne 0x14004eab6
xorps xmm0, xmm0
lea r8, [rsp + 0xc0]
movaps xmmword [r8], xmm0
movaps xmmword [r8 + 0x20], xmm0
movaps xmmword [r8 + 0x10], xmm0
mov dword [r8 + 8], 1
lea r9, [rsp + 0xa0]
mov qword [r9], 0
lea rcx, [rsp + 0xf8]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x14004ea71
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
mov r8d, 1
jmp 0x14004eab6
mov rax, qword [rsp + 0xa0]
movzx ecx, word [rsp + 0x50]
mov qword [rsp + 0x40], rax
mov word [rsp + 0x48], cx
xor r8d, r8d
jmp 0x14004eab6
call fcn.140073d92
jmp 0x14004e989
lea r14, [rsp + 0x30]
lea r9, [rsp + 0x70]
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.140073960
mov r8, qword [r14]
mov rax, qword [r14 + 8]
test r8, r8
jne 0x14004e8b5
mov rcx, qword [rsp + 0x40]
movzx r8d, word [rsp + 0x48]
movzx r9d, word [rsp + 0x4e]
lea rdx, [rsp + 0xa8]
mov word [rdx + 0x16], r9w
mov r9d, dword [rsp + 0x4a]
mov dword [rdx + 0x12], r9d
lea r9, [rsp + 0x2e]
mov word [r9], r8w
mov qword [rdx - 8], r9
mov qword [rdx], rax
mov qword [rdx + 8], rcx
mov word [rdx + 0x10], r8w
lea rdi, [rsp + 0xf8]
mov rcx, rdi
call fcn.140047664
movzx ebx, word [rdi]
cmp bx, 2
jne 0x14004eb35
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov eax, 4
xor r12d, r12d
xor ecx, ecx
jmp 0x14004ed5c
mov qword [rsp + 0x88], rsi
mov ebp, dword [rsp + 0xfa]
movzx r12d, word [rsp + 0xfe]
movups xmm0, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x50], xmm0
mov eax, dword [rsp + 0x110]
mov dword [rsp + 0x60], eax
movzx r15d, word [rsp + 0x114]
movzx r14d, word [rsp + 0x116]
mov rax, qword [rsp + 0xa0]
movzx r13d, word [rax]
mov al, byte [0x14008fbb8]
mov edx, 0x80
xor ecx, ecx
call fcn.140042681
test rax, rax
je 0x14004ed7a
mov rdi, rax
test bx, bx
cmovne r15d, r13d
cmove r12d, r13d
mov word [rax], bx
mov dword [rax + 2], ebp
mov word [rax + 6], r12w
movaps xmm0, xmmword [rsp + 0x50]
movups xmmword [rax + 8], xmm0
mov eax, dword [rsp + 0x60]
mov dword [rdi + 0x18], eax
mov word [rdi + 0x1c], r15w
mov word [rdi + 0x1e], r14w
lea rax, [rsp + 0x30]
mov qword [rax], 4
mov qword [rax + 8], rdi
mov qword [rax + 0x10], 1
movups xmm0, xmmword [rsp + 0xa0]
movups xmm1, xmmword [rsp + 0xb0]
lea rax, [rsp + 0xc8]
movaps xmmword [rax + 8], xmm1
movaps xmmword [rax - 8], xmm0
mov r14d, 1
mov r13d, 2
mov ebx, 0x20
lea r12, [r13 - 1]
lea rcx, [rsp + 0xf8]
lea rdx, [rsp + 0xc8]
call fcn.140047664
movzx r15d, word [rsp + 0xf8]
cmp r15w, 2
je 0x14004ed3c
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x98], r14
lea rax, [rsp + 0x100]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x70], xmm0
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x80], eax
mov rax, qword [rsp + 0xc0]
movzx r14d, word [rax]
test r15w, r15w
movzx r13d, word [rsp + 0xfe]
cmove r13w, r14w
cmove r14w, word [rsp + 0x114]
mov ebp, dword [rsp + 0xfa]
movzx esi, word [rsp + 0x116]
cmp r12, qword [rsp + 0x30]
jne 0x14004ece9
mov qword [rsp + 0x20], 0x20
mov r8d, 1
mov r9d, 4
lea rcx, [rsp + 0x30]
mov rdx, r12
call fcn.1400195e9
movabs rcx, 0x8000000000000001
cmp rax, rcx
jne 0x14004ed77
mov rdi, qword [rsp + 0x38]
mov word [rdi + rbx], r15w
mov dword [rdi + rbx + 2], ebp
mov word [rdi + rbx + 6], r13w
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi + rbx + 8], xmm0
mov eax, dword [rsp + 0x80]
mov dword [rdi + rbx + 0x18], eax
mov word [rdi + rbx + 0x1c], r14w
mov word [rdi + rbx + 0x1e], si
mov r14, qword [rsp + 0x98]
inc r14
mov r13, qword [rsp + 0x90]
mov qword [rsp + 0x40], r13
inc r13
add rbx, 0x20
jmp 0x14004ec1a
mov rcx, qword [rsp + 0xc8]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x88]
shl r12, 5
add r12, rax
mov qword [rsi], rax
mov qword [rsi + 8], rax
mov qword [rsi + 0x10], rcx
mov qword [rsi + 0x18], r12
jmp 0x14004e90e
test rax, rax
ud2