Function at 0x140195590
Capabilities:
Receive data
Receive data on socket

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x700
mov rax, qword [0x14035f7b8]
xor rax, rsp
mov qword [rsp + 0x6f0], rax
mov rdi, r9
mov qword [rsp + 0x58], r9
mov rbx, r8
movsxd r12, edx
mov dword [rsp + 0x64], r12d
mov qword [rsp + 0x78], rcx
mov rax, qword [rsp + 0x760]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x768]
mov qword [rsp + 0x70], rax
mov r15, qword [rsp + 0x778]
mov rsi, qword [rsp + 0x780]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x98], xmm0
mov qword [rsp + 0xa8], rax
lea r8, str.dns_over_udp
mov rdx, rsi
lea rcx, [rsp + 0x98]
call fcn.1400a48d0
nop
mov rcx, rdi
call fcn.140094bb0
cmp eax, 0x200
jbe 0x140195643
lea rdx, str.DNS_request_is_greater_than_512_bytes.
jmp 0x140195bd7
test rbx, rbx
je 0x140195bd0
test r12d, r12d
jle 0x140195bd0
call fcn.14016b8b0
test al, al
jne 0x14019566a
lea rdx, str.WSAStartup_failed.
jmp 0x140195bd7
mov r9, rsi
mov r8, r15
mov r13d, dword [rsp + 0x770]
mov edx, r13d
mov rcx, rbx
call fcn.140196a40
test al, al
jne 0x140195693
lea rdx, str.UDP_init_for_nameserver_1_failed.
jmp 0x140195bd7
xor ebp, ebp
mov r14d, ebp
mov dword [rsp + 0x50], ebp
mov rdi, r12
cmp r12d, 1
jne 0x14019580c
mov r13d, 0x7d0
mov eax, dword [rsp + 0x770]
test eax, eax
cmovne r13d, eax
mov r12d, 0x5dc
cmp r13d, r12d
cmovb r12d, r13d
mov eax, r13d
sub eax, r12d
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x20], rsi
mov r9, r15
mov r8d, r13d
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.140197090
test al, al
jne 0x1401956fb
lea rdx, str.1st_UDP_send_for_nameserver_1_failed.
jmp 0x1401957d2
mov rdx, rsi
mov rcx, r15
call fcn.1400cd100
test al, al
jne 0x1401957db
mov dword [rsp + 0x50], 0xffffffff
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r15
mov r9d, r12d
lea r8, [rsp + 0x50]
mov rdx, rbx
mov ecx, 1
call fcn.1401971e0
test al, al
jne 0x14019590d
cmp byte [r15 + 0x29], bpl
jne 0x1401957db
cmp byte [r15 + 0x2a], bpl
jne 0x1401957db
mov r12d, dword [rsp + 0x60]
test r12d, r12d
jne 0x140195764
lea rdx, str.DNS_timeout.
jmp 0x1401957d2
mov qword [rsp + 0x20], rsi
mov r9, r15
mov r8d, r13d
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.140197090
test al, al
jne 0x140195789
lea rdx, str.2nd_UDP_send_for_nameserver_1_failed.
jmp 0x1401957d2
mov rdx, rsi
mov rcx, r15
call fcn.1400cd100
test al, al
jne 0x1401957db
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], r15
mov r9d, r12d
lea r8, [rsp + 0x50]
mov rdx, rbx
mov ecx, 1
call fcn.1401971e0
test al, al
jne 0x14019590d
cmp byte [r15 + 0x29], bpl
jne 0x1401957db
cmp byte [r15 + 0x2a], bpl
jne 0x1401957db
lea rdx, str.Waited__but_no_data_ready_on_UDP_socket.
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
test rdi, rdi
je 0x140195be0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401957fa
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x1401957e4
jmp 0x140195be0
mov qword [rsp + 0x28], rsi
mov r9d, r13d
mov r8, qword [rsp + 0x58]
mov rdx, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], r15
cmp dword [0x1404a67f8], 0xa
jne 0x140195892
call fcn.140196e20
test al, al
jne 0x140195869
test r12d, r12d
je 0x140195be0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140195857
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x140195841
jmp 0x140195be0
movsxd r14, dword [rsp + 0x50]
test r14d, r14d
jle 0x14019588e
imul rcx, r14, 0xb0
add rcx, 0x20
add rcx, rbx
call fcn.1400882f0
mov rcx, rax
call fcn.1400e77f0
mov eax, ebp
jmp 0x1401958f9
call fcn.140196b30
test al, al
jne 0x1401958cc
test r12d, r12d
je 0x140195be0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401958ba
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x1401958a4
jmp 0x140195be0
movsxd r14, dword [rsp + 0x50]
test r14d, r14d
jle 0x1401958f1
imul rcx, r14, 0xb0
add rcx, 0x20
add rcx, rbx
call fcn.1400882f0
mov rcx, rax
call fcn.1400e77f0
mov eax, dword [0x1404a67f8]
inc eax
mov dword [0x1404a67f8], eax
cmp r12d, 2
jle 0x14019590d
mov rcx, rsi
call fcn.1400e6ee0
xor edx, edx
mov r8d, 0x640
lea rcx, [rsp + 0xb0]
call fcn.140062ba0
mov rdx, rsi
mov rcx, r15
call fcn.1400cd100
test al, al
je 0x140195978
mov rax, qword [rsi]
mov rdx, qword [str.DNS_query_aborted_by_application.]
mov rcx, rsi
call qword [rax + 0x28]
test rdi, rdi
je 0x140195be0
nop word [rax + rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140195966
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x140195950
jmp 0x140195be0
movsxd rax, r14d
imul r12, rax, 0xb0
xor r9d, r9d
mov r8d, 0x640
lea rdx, [rsp + 0xb0]
mov rcx, qword [r12 + rbx]
call qword [sym.imp.WS2_32.dll_recv]
mov r13d, eax
cmp eax, 0xffffffff
jne 0x140195a49
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x140195a08
mov r8, rsi
xor edx, edx
mov ecx, eax
call fcn.14016e2b0
mov rax, qword [rsi]
lea rdx, str.Failed_to_receive_DNS_query_response_on_UDP_socket.
mov rcx, rsi
call qword [rax + 0x28]
test rdi, rdi
je 0x140195be0
nop dword [rax + rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401959f6
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x1401959e0
jmp 0x140195be0
mov rax, qword [rsi]
lea rdx, str.Received_0_bytes.
mov rcx, rsi
call qword [rax + 0x28]
test rdi, rdi
je 0x140195be0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140195a37
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x140195a21
jmp 0x140195be0
test r13d, r13d
jne 0x140195a8f
mov rax, qword [rsi]
lea rdx, str.Received_0_response_from_recv.
mov rcx, rsi
call qword [rax + 0x28]
test rdi, rdi
je 0x140195be0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x140195a7d
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb0
sub rdi, 1
jne 0x140195a67
jmp 0x140195be0
test rdi, rdi
je 0x140195aba
mov r14, rbx
mov rcx, qword [r14]
cmp rcx, 0xffffffffffffffff
je 0x140195aad
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [r14], 0xffffffffffffffff
add r14, 0xb0
sub rdi, 1
jne 0x140195a97
movsxd rax, dword [r12 + rbx + 0x10]
test eax, eax
jle 0x140195af6
mov rcx, rax
lea rax, [rbx + 0x15]
add rax, r12
mov rdx, qword [rsp + 0xb1]
movzx r8d, byte [rsp + 0xb0]
nop
cmp byte [rax - 1], r8b
jne 0x140195aea
cmp byte [rax], dl
je 0x140195b02
inc rbp
add rax, 2
cmp rbp, rcx
jl 0x140195ae0
lea rdx, str.Response_ID_not_equal_to_request_ID.
jmp 0x140195bd7
mov r9, rsi
mov r8d, r13d
lea rdx, [rsp + 0xb0]
mov rdi, qword [rsp + 0x68]
mov rcx, rdi
call fcn.14021a230
test al, al
je 0x140195b28
mov bl, 1
jmp 0x140195be2
cmp byte [rdi + 9], 0
je 0x140195bbe
cmp byte [r15 + 0x29], 0
jne 0x140195bbe
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x90], rax
lea r8, str.fallbackToTcp
mov rdx, rsi
lea rcx, [rsp + 0x80]
call fcn.1400a48d0
nop
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r15
mov eax, dword [rsp + 0x770]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rdi
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, rbx
mov edx, dword [rsp + 0x64]
mov rcx, qword [rsp + 0x78]
call fcn.140195140
movzx ebx, al
lea rcx, [rsp + 0x80]
call fcn.1400a49f0
jmp 0x140195be2
mov rax, qword [rsi]
lea rdx, str.Received_invalid_or_incomplete_DNS_response.
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x140195be0
lea rdx, str.Invalid_args
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
xor bl, bl
lea rcx, [rsp + 0x98]
call fcn.1400a49f0
movzx eax, bl
mov rcx, qword [rsp + 0x6f0]
xor rcx, rsp
call fcn.1402268d0
mov rbx, qword [rsp + 0x740]
add rsp, 0x700
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret