Function at 0x1400393ac
Capabilities:
Resolve dns

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x268
mov rbx, r8
mov rdi, rdx
mov rsi, rcx
lea rcx, [rsp + 0x50]
mov qword [rcx], rdx
mov qword [rcx + 8], r8
call fcn.140017a35
mov r14, rax
test r14b, 1
je 0x140039417
lea rcx, [rsp + 0x50]
call fcn.140017f4c
test ax, ax
je 0x140039417
movabs rax, 0xffffffff00
and r14, rax
shr r14, 8
movzx eax, dx
shl rax, 0x30
shl r14, 0x10
or r14, rax
mov eax, 1
jmp 0x14003941c
xor r14d, r14d
xor eax, eax
movzx ecx, r14w
or rcx, rax
je 0x1400394de
cmp qword [rsp + 0x58], 0
jne 0x14003967a
mov edi, r14d
shr edi, 0x10
shr r14, 0x18
xor ebx, ebx
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x88], eax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x80], rax
mov al, byte [0x1400ea9e0]
mov ecx, 0x20
mov edx, 4
call fcn.140010eab
test rax, rax
je 0x140039b51
mov word [rax], bx
mov rcx, r14
shl rcx, 8
movzx edx, dil
or rdx, rcx
shr r14, 0x18
mov word [rax + 6], r14w
mov dword [rax + 2], edx
mov rcx, qword [rsp + 0x80]
mov qword [rax + 8], rcx
mov ecx, dword [rsp + 0x88]
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], 0
mov dword [rax + 0x18], r15d
mov word [rax + 0x1c], bp
mov rcx, rax
add rcx, 0x20
mov qword [rsi], rax
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rcx
jmp 0x1400396fa
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
test rbx, rbx
je 0x140039670
lea rax, [rdi + 1]
lea rcx, [rbx - 1]
mov dl, byte [rdi]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rcx
cmp dl, 0x5b
jne 0x140039670
lea r14, [rsp + 0xe8]
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.140017bab
cmp byte [r14], 0
je 0x140039670
mov r14d, dword [rsp + 0xe9]
mov rax, qword [rsp + 0xed]
mov qword [rsp + 0xb0], rax
mov eax, dword [rsp + 0xf5]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x50]
mov r8, qword [rsp + 0x58]
xor ebp, ebp
test r8, r8
je 0x1400395c5
cmp byte [rax], 0x25
jne 0x1400395e4
mov qword [rsp + 0x28], rax
lea r10, [rax + 1]
lea r9, [r8 - 1]
xor r15d, r15d
mov r11, r9
mov r12, r10
xor ecx, ecx
xor ebp, ebp
mov eax, 0
test r11, r11
je 0x1400395a7
movzx r13d, byte [r12]
add r13d, 0xffffffd0
xor eax, eax
cmp r13d, 0xa
setb al
jae 0x1400395a7
inc r12
dec r11
cmp eax, 1
jne 0x1400395c7
mov eax, r15d
mov edx, 0xa
mul edx
jo 0x1400395db
mov r15d, eax
add r15d, r13d
jb 0x1400395db
inc rcx
jmp 0x140039583
jmp 0x1400395e4
test rcx, rcx
je 0x1400395d9
mov ebp, 1
mov r9, r11
mov r10, r12
jmp 0x1400395db
xor ebp, ebp
mov rax, qword [rsp + 0x28]
test ebp, ebp
jne 0x1400395ea
mov r9, r8
mov r10, rax
test ebp, ebp
cmove r15d, ebp
test r9, r9
je 0x140039670
dec r9
mov al, byte [r10]
inc r10
mov qword [rsp + 0x50], r10
mov qword [rsp + 0x58], r9
cmp al, 0x5d
jne 0x140039670
lea rcx, [rsp + 0x50]
call fcn.140017f4c
test ax, ax
je 0x140039670
mov eax, dword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0x90], rcx
mov dword [rsp + 0x98], eax
cmp qword [rsp + 0x58], 0
jne 0x14003967a
mov ebp, edx
shl r14, 8
mov eax, dword [rsp + 0x98]
mov dword [rsp + 0xf0], eax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe8], rax
mov bx, 1
xor edi, edi
jmp 0x140039441
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], 0
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], 1
movabs rax, 0x3a0000003a
mov qword [rsp + 0x110], rax
mov bpl, 0x3a
mov r14, rbx
mov cl, 0x3a
mov rdx, rdi
mov r8, r14
call fcn.14001881e
cmp rax, 1
jne 0x1400396e8
mov r14, rdx
cmp rdx, rbx
jae 0x1400396e3
cmp byte [rdi + r14], bpl
je 0x14003970e
cmp r14, rbx
jbe 0x1400396c2
lea rcx, str.invalid_socket_address
mov qword [rsi + 8], rcx
mov qword [rsi], 0
add rsp, 0x268
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r12, [r14 + 1]
lea rcx, str.invalid_port_value
sub rbx, r12
je 0x1400396ef
lea r8, [rdi + r14]
inc r8
movzx eax, byte [r8]
cmp eax, 0x2d
je 0x14003973d
cmp eax, 0x2b
jne 0x140039743
dec rbx
je 0x1400396ef
inc r8
jmp 0x140039743
cmp rbx, 1
je 0x1400396ef
cmp rbx, 5
jae 0x14003976f
xor eax, eax
xor r15d, r15d
movzx edx, byte [r8 + rax]
add edx, 0xffffffd0
cmp edx, 0xa
jae 0x1400396ef
add r15d, r15d
lea r15d, [r15 + r15*4]
add r15d, edx
inc rax
cmp rbx, rax
jne 0x14003974e
jmp 0x1400397b4
xor r9d, r9d
mov r10w, 0xa
xor r15d, r15d
movzx r11d, byte [r8 + r9]
mov eax, r15d
mul r10w
seto dl
add r11d, 0xffffffd0
cmp r11d, 9
ja 0x1400396ef
test dl, dl
jne 0x1400396ef
mov r15d, eax
add r15w, r11w
jb 0x1400396ef
inc r9
cmp rbx, r9
jne 0x14003977a
mov rax, qword [0x1400ea710]
cmp rax, 3
jne 0x140039b29
cmp r14, 0x17f
ja 0x140039b33
lea rcx, [rsp + 0xe8]
mov rdx, rdi
mov r8, r14
call fcn.140085b90
mov byte [rsp + r14 + 0xe8], 0
cmp r14, 0xe
ja 0x14003980f
xor eax, eax
xor edx, edx
cmp byte [rsp + rdx + 0xe8], 0
je 0x140039823
inc rdx
cmp r12, rdx
jne 0x1400397f8
mov rdx, r12
jmp 0x140039828
lea rdx, [rsp + 0xe8]
xor ecx, ecx
mov r8, r12
call fcn.140015a89
jmp 0x140039828
mov eax, 1
test rax, rax
je 0x140039887
cmp rdx, r14
jne 0x140039887
xorps xmm0, xmm0
lea r8, [rsp + 0x50]
movaps xmmword [r8], xmm0
movaps xmmword [r8 + 0x20], xmm0
movaps xmmword [r8 + 0x10], xmm0
mov dword [r8 + 8], 1
lea r9, [rsp + 0xb0]
mov qword [r9], 0
lea rcx, [rsp + 0xe8]
xor edx, edx
call qword [sym.imp.ws2_32.dll_getaddrinfo]
test eax, eax
je 0x140039b0a
call qword [sym.imp.ws2_32.dll_WSAGetLastError]
shl rax, 0x20
or rax, 2
jmp 0x14003988e
lea rax, str.file_name_contained_an_unexpected_NUL_byte
mov qword [rsp + 0x38], rax
mov eax, 1
test rax, rax
je 0x1400398a7
mov rcx, qword [rsp + 0x38]
jmp 0x1400396ef
movups xmm0, xmmword [rsp + 0x38]
movzx eax, word [rsp + 0x48]
movzx ecx, word [rsp + 0x4e]
lea rdx, [rsp + 0xb8]
mov word [rdx + 0x16], cx
mov ecx, dword [rsp + 0x4a]
mov dword [rdx + 0x12], ecx
lea rcx, [rsp + 0x80]
mov word [rcx], ax
mov qword [rdx - 8], rcx
movups xmmword [rdx], xmm0
mov word [rdx + 0x10], ax
lea rdi, [rsp + 0xe8]
mov rcx, rdi
call fcn.140030ca3
movzx ebx, word [rdi]
cmp bx, 2
jne 0x140039914
mov rcx, qword [rsp + 0xb8]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov eax, 4
xor ecx, ecx
xor ebx, ebx
jmp 0x140039aef
mov qword [rsp + 0x28], rsi
mov ebp, dword [rsp + 0xea]
movzx r12d, word [rsp + 0xee]
movups xmm0, xmmword [rsp + 0xf0]
movaps xmmword [rsp + 0x90], xmm0
mov eax, dword [rsp + 0x100]
mov dword [rsp + 0xa0], eax
movzx r15d, word [rsp + 0x104]
movzx r14d, word [rsp + 0x106]
mov rax, qword [rsp + 0xb0]
movzx r13d, word [rax]
mov al, byte [0x1400ea9e0]
mov ecx, 0x80
mov edx, 4
call fcn.140010eab
test rax, rax
je 0x140039b62
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 + 0x90]
movups xmmword [rax + 8], xmm0
mov eax, dword [rsp + 0xa0]
mov dword [rdi + 0x18], eax
mov word [rdi + 0x1c], r15w
mov word [rdi + 0x1e], r14w
lea rax, [rsp + 0x30]
mov qword [rax], rdi
mov qword [rax + 8], 4
mov qword [rax + 0x10], 1
movups xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xc0]
lea rax, [rsp + 0x58]
movaps xmmword [rax + 8], xmm1
movaps xmmword [rax - 8], xmm0
mov ebx, 1
mov r13d, 0x20
lea rcx, [rsp + 0xe8]
lea rdx, [rsp + 0x58]
call fcn.140030ca3
movzx r14d, word [rsp + 0xe8]
cmp r14w, 2
je 0x140039ad5
lea rax, [rsp + 0xf0]
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0xd0], xmm0
mov eax, dword [rax + 0x10]
mov dword [rsp + 0xe0], eax
mov rax, qword [rsp + 0x50]
movzx r15d, word [rax]
test r14w, r14w
movzx ebp, word [rsp + 0xee]
cmove bp, r15w
cmove r15w, word [rsp + 0x104]
mov esi, dword [rsp + 0xea]
movzx r12d, word [rsp + 0x106]
cmp rbx, qword [rsp + 0x38]
je 0x140039ac1
mov word [rdi + r13], r14w
mov dword [rdi + r13 + 2], esi
mov word [rdi + r13 + 6], bp
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rdi + r13 + 8], xmm0
mov eax, dword [rsp + 0xe0]
mov dword [rdi + r13 + 0x18], eax
mov word [rdi + r13 + 0x1c], r15w
mov word [rdi + r13 + 0x1e], r12w
inc rbx
mov qword [rsp + 0x40], rbx
add r13, 0x20
jmp 0x1400399fc
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.140087799
mov rdi, qword [rsp + 0x30]
jmp 0x140039a7a
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.ws2_32.dll_freeaddrinfo]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x28]
shl rbx, 5
add rbx, rax
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], rbx
jmp 0x1400396fa
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov word [rsp + 0x48], r15w
xor eax, eax
jmp 0x140039898
call fcn.140087bb2
jmp 0x1400397c5
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rdi
mov r8, r14
mov r9d, r15d
call fcn.140087bff
mov rax, qword [rbx]
jmp 0x140039898
mov ecx, 4
mov edx, 0x20
call fcn.140085d53
ud2
mov ecx, 4
mov edx, 0x80
jmp 0x140039b5b