Function at 0x14015da40
Capabilities:
Resolve dns

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0x100
mov rax, qword [0x14039ac80]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov r14, r9
mov rbx, r8
mov rdi, rdx
mov r15, rcx
mov qword [rsp + 0x50], rdx
xor r12d, r12d
mov byte [rcx + 0x1c], r12b
mov r8, qword [r8 + 8]
test r8, r8
jne 0x14015dac5
lea rax, str.Host_is_empty
mov qword [rsp + 0x58], reloc.WS2_32.dll_listen
mov qword [rsp + 0x50], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x30], xmm0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14012b920
jmp 0x14015dc42
cmp r8, 0xe
jne 0x14015daf0
lea rdx, str...localmachine
mov rcx, qword [rbx]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x14015daf0
lea rax, str.Host_is_invalid
mov qword [rsp + 0x58], reloc.WS2_32.dll_ntohs
jmp 0x14015da96
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x79]
call fcn.14015d300
nop
lea rcx, [rbp - 0x79]
cmp qword [rbp - 0x79], 0
je 0x14015db1f
mov rdx, rdi
call fcn.1401309f0
jmp 0x14015dc39
lea rdx, [rbp - 9]
call fcn.14013c4a0
nop
lea rsi, [rbp - 9]
cmp qword [rbp + 0xf], 0xf
cmova rsi, qword [rbp - 9]
mov rax, qword [rbp + 7]
mov qword [rbx], rsi
mov qword [rbx + 8], rax
cmp byte [rsi], 0x5b
jne 0x14015dc63
mov rcx, rbx
call fcn.14015ce70
cmp al, 0x5d
jne 0x14015dc63
mov r9d, r12d
mov rdx, qword [r14]
mov r11, qword [r14 + 8]
add r11, rdx
xor r8b, r8b
cmp rdx, r11
je 0x14015dbc1
cmp byte [rdx], 0x2d
jne 0x14015db80
mov r8b, 1
inc rdx
cmp rdx, r11
je 0x14015dbc1
movsx r10d, byte [rdx]
lea eax, [r10 - 0x30]
cmp al, 9
ja 0x14015dba0
lea r9d, [r9 + r9*4]
lea r9d, [r9 - 0x18]
lea r9d, [r10 + r9*2]
inc rdx
cmp rdx, r11
jne 0x14015db80
cmp r9d, 0x7fffffff
jbe 0x14015dbc1
neg r9d
xor r8b, 1
cmp r9d, 0x7fffffff
jbe 0x14015dbc1
mov r9d, 0x80000000
jmp 0x14015dbc9
test r8b, r8b
je 0x14015dbc9
neg r9d
movups xmm0, xmmword [rbx]
movaps xmmword [rsp + 0x30], xmm0
mov eax, 1
test r9d, r9d
cmove r9d, eax
lea r8, [rsp + 0x30]
mov rdx, rdi
mov rcx, r15
call fcn.14015e4f0
nop
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x14015dc29
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14015dc24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14015de49
call fcn.1402c539c
mov qword [rbp + 7], r12
mov qword [rbp + reloc.WS2_32.dll_ntohs], 0xf
mov byte [rbp - 9], 0
lea rcx, [rbp - 0x79]
call fcn.1401368f0
mov rax, rdi
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1402c5880
add rsp, 0x100
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov rcx, rsi
call qword [sym.imp.WS2_32.dll_inet_addr]
mov dword [rsp + 0x60], eax
cmp eax, 0xffffffff
je 0x14015dc8f
lea r8, [rsp + 0x60]
mov edx, 2
lea rcx, [rsp + 0x30]
call fcn.14015d050
movups xmm0, xmmword [rax]
movups xmmword [rbx], xmm0
mov qword [rsp + 0x50], r12
mov qword [rbp - 0x51], r12
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x41], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x31], xmm1
mov eax, 1
mov dword [rbp - 0x49], eax
mov dword [rbp - 0x45], 6
lea r9, [rsp + 0x50]
lea r8, [rbp - 0x51]
mov rdx, qword [r14]
mov rcx, qword [rbx]
call qword [sym.imp.WS2_32.dll_getaddrinfo]
test eax, eax
je 0x14015dd15
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
lea rcx, str.Failed_to_resolve_host
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], reloc.WS2_32.dll_shutdown
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x20], rcx
mov r9d, eax
mov r8b, 1
xor edx, edx
mov rcx, rdi
call fcn.14012b920
jmp 0x14015dbee
lea rax, vtable.td::LambdaGuard_class__lambda_3b1d7c09ef3e12008cfd8e6cdbc2c24c__.0
mov qword [rbp - 0x21], rax
lea rax, [rsp + 0x50]
mov qword [rbp - 0x19], rax
mov byte [rbp - 0x11], 0
mov rbx, r12
mov rax, qword [rsp + 0x50]
test rax, rax
je 0x14015ddc4
movzx ecx, byte [rbp + 0x7f]
mov edx, dword [rax + 4]
cmp edx, 2
jne 0x14015dd5c
test cl, cl
je 0x14015dd53
test rbx, rbx
jne 0x14015dd71
mov rbx, rax
test cl, cl
je 0x14015dd7a
jmp 0x14015dd71
cmp edx, 0x17
jne 0x14015dd71
test cl, cl
jne 0x14015dd6a
test rbx, rbx
jne 0x14015dd71
mov rbx, rax
test cl, cl
jne 0x14015dd7a
mov rax, qword [rax + 0x28]
test rax, rax
jne 0x14015dd42
test rbx, rbx
je 0x14015ddc4
lea rax, str.D:_a_ton_ton_tdutils_tdutilsportIPAddress.cpp
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], 0x1db
lea rdx, [rbx + 0x10]
lea rcx, [rsp + 0x30]
call fcn.1401497e0
mov r9d, eax
mov r8, qword [rbx + 0x20]
mov rdx, rdi
mov rcx, r15
call fcn.14015ea80
nop
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
jmp 0x14015dbee
lea rax, str.Failed_to_find_IPv4_IPv6_address
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], 0x20
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea rax, [rsp + 0x30]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call fcn.14012b920
nop
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.WS2_32.dll_freeaddrinfo]
nop
mov rdx, qword [rbp + 0xf]
cmp rdx, 0xf
jbe 0x14015dc29
inc rdx
mov rcx, qword [rbp - 9]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14015dc24
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14015dc24
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3