Function at 0x1401c4c20
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 [0x14037d7c0]
xor rax, rsp
mov qword [rsp + 0x6f0], rax
mov rdi, r9
mov qword [rsp + 0x58], r9
mov rbx, r8
movsxd r12, edx
mov qword [rsp + 0x70], rcx
mov rax, qword [rsp + 0x760]
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x768]
mov qword [rsp + 0x68], rax
mov r13, qword [rsp + 0x778]
mov rsi, qword [rsp + 0x780]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x90], xmm0
mov qword [rsp + 0xa0], rax
lea r8, str.dns_over_udp
mov rdx, rsi
lea rcx, [rsp + 0x90]
call fcn.1400d0c20
nop
mov rcx, rdi
call fcn.1400c0f00
cmp eax, 0x200
jbe 0x1401c4cce
lea rdx, str.DNS_request_is_greater_than_512_bytes.
jmp 0x1401c51a7
test rbx, rbx
je 0x1401c51a0
test r12d, r12d
jle 0x1401c51a0
call fcn.140198a70
test al, al
jne 0x1401c4cf5
lea rdx, str.WSAStartup_failed.
jmp 0x1401c51a7
mov r9, rsi
mov r8, r13
mov r15d, dword [rsp + 0x770]
mov edx, r15d
mov rcx, rbx
call fcn.1401c6100
test al, al
jne 0x1401c4d1e
lea rdx, str.UDP_init_for_nameserver_1_failed.
jmp 0x1401c51a7
xor ebp, ebp
mov r14d, ebp
mov dword [rsp + 0x50], ebp
mov rdi, r12
cmp r12d, 1
jne 0x1401c4d88
mov qword [rsp + 0x20], rsi
mov r9, r13
mov r8d, r15d
mov rdx, qword [rsp + 0x58]
mov rcx, rbx
call fcn.1401c61f0
test al, al
jne 0x1401c4e8c
test r12d, r12d
je 0x1401c51b0
nop dword [rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4d76
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4d60
jmp 0x1401c51b0
mov qword [rsp + 0x28], rsi
mov r9d, r15d
mov r8, qword [rsp + 0x58]
mov rdx, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x20], r13
cmp dword [0x1403d0c38], 0xa
jne 0x1401c4e11
call fcn.1401c67d0
test al, al
jne 0x1401c4de8
test r12d, r12d
je 0x1401c51b0
nop dword [rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4dd6
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4dc0
jmp 0x1401c51b0
movsxd r14, dword [rsp + 0x50]
test r14d, r14d
jle 0x1401c4e0d
imul rcx, r14, 0xb8
add rcx, 0x28
add rcx, rbx
call fcn.1400b45b0
mov rcx, rax
call fcn.140114340
mov eax, ebp
jmp 0x1401c4e78
call fcn.1401c64d0
test al, al
jne 0x1401c4e4b
test r12d, r12d
je 0x1401c51b0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4e39
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4e23
jmp 0x1401c51b0
movsxd r14, dword [rsp + 0x50]
test r14d, r14d
jle 0x1401c4e70
imul rcx, r14, 0xb8
add rcx, 0x28
add rcx, rbx
call fcn.1400b45b0
mov rcx, rax
call fcn.140114340
mov eax, dword [0x1403d0c38]
inc eax
mov dword [0x1403d0c38], eax
cmp r12d, 2
jle 0x1401c4e8c
mov rcx, rsi
call fcn.140113840
xor edx, edx
mov r8d, 0x640
lea rcx, [rsp + 0xb0]
call fcn.14008ed80
mov rdx, rsi
mov rcx, r13
call fcn.1400faa80
test al, al
je 0x1401c4ef8
mov rax, qword [rsi]
mov rdx, qword [str.DNS_query_aborted_by_application.]
mov rcx, rsi
call qword [rax + 0x28]
test r12d, r12d
je 0x1401c51b0
nop dword [rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4ee6
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4ed0
jmp 0x1401c51b0
movsxd rax, r14d
imul r15, rax, 0xb8
xor r9d, r9d
mov r8d, 0x640
lea rdx, [rsp + 0xb0]
mov rcx, qword [r15 + rbx]
call qword [sym.imp.WS2_32.dll_recv]
mov r10d, eax
mov dword [rsp + 0x50], eax
cmp eax, 0xffffffff
jne 0x1401c5029
call qword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2743
jne 0x1401c4f8c
mov byte [r13 + 0x2c], 1
mov r8, rsi
xor edx, edx
mov ecx, eax
call fcn.14019b510
mov rax, qword [rsi]
lea rdx, str.Failed_to_receive_DNS_query_response_on_UDP_socket.
mov rcx, rsi
call qword [rax + 0x28]
test r12d, r12d
je 0x1401c51b0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4f7a
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4f64
jmp 0x1401c51b0
cmp eax, 0x2733
je 0x1401c4fe8
mov r8, rsi
xor edx, edx
mov ecx, eax
call fcn.14019b510
mov rax, qword [rsi]
lea rdx, str.Failed_to_receive_DNS_query_response_on_UDP_socket.
mov rcx, rsi
call qword [rax + 0x28]
test r12d, r12d
je 0x1401c51b0
nop dword [rax + rax]
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c4fd6
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c4fc0
jmp 0x1401c51b0
mov rax, qword [rsi]
lea rdx, str.Received_0_bytes.
mov rcx, rsi
call qword [rax + 0x28]
test r12d, r12d
je 0x1401c51b0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c5017
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c5001
jmp 0x1401c51b0
test eax, eax
jne 0x1401c506e
mov rax, qword [rsi]
lea rdx, str.Received_0_response_from_recv.
mov rcx, rsi
call qword [rax + 0x28]
test r12d, r12d
je 0x1401c51b0
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x1401c505c
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [rbx], 0xffffffffffffffff
add rbx, 0xb8
sub rdi, 1
jne 0x1401c5046
jmp 0x1401c51b0
test r12d, r12d
je 0x1401c509e
mov r14, rbx
mov rcx, qword [r14]
cmp rcx, 0xffffffffffffffff
je 0x1401c508c
call qword [sym.imp.WS2_32.dll_closesocket]
mov qword [r14], 0xffffffffffffffff
add r14, 0xb8
sub rdi, 1
jne 0x1401c5076
mov r10d, dword [rsp + 0x50]
movsxd rax, dword [r15 + rbx + 0x10]
test eax, eax
jle 0x1401c50d8
mov rcx, rax
lea rax, [rbx + 0x15]
add rax, r15
mov rdx, qword [rsp + 0xb1]
movzx r8d, byte [rsp + 0xb0]
cmp byte [rax - 1], r8b
jne 0x1401c50cc
cmp byte [rax], dl
je 0x1401c50e4
inc rbp
add rax, 2
cmp rbp, rcx
jl 0x1401c50c2
lea rdx, str.Response_ID_not_equal_to_request_ID.
jmp 0x1401c51a7
mov r9, rsi
mov r8d, r10d
lea rdx, [rsp + 0xb0]
mov rdi, qword [rsp + 0x60]
mov rcx, rdi
call fcn.14024a8e0
test al, al
je 0x1401c510a
mov bl, 1
jmp 0x1401c51b2
cmp byte [rdi + 9], 0
je 0x1401c518e
cmp byte [r13 + 0x29], 0
jne 0x1401c518e
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x78], xmm0
mov qword [rsp + 0x88], rax
lea r8, str.fallbackToTcp
mov rdx, rsi
lea rcx, [rsp + 0x78]
call fcn.1400d0c20
nop
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x40], r13
mov eax, dword [rsp + 0x770]
mov dword [rsp + 0x38], eax
mov rax, qword [rsp + 0x68]
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, r12d
mov rcx, qword [rsp + 0x70]
call fcn.1401c47d0
movzx ebx, al
lea rcx, [rsp + 0x78]
call fcn.1400d0d40
jmp 0x1401c51b2
mov rax, qword [rsi]
lea rdx, str.Received_invalid_or_incomplete_DNS_response.
mov rcx, rsi
call qword [rax + 0x30]
jmp 0x1401c51b0
lea rdx, str.Invalid_args
mov rax, qword [rsi]
mov rcx, rsi
call qword [rax + 0x28]
xor bl, bl
lea rcx, [rsp + 0x90]
call fcn.1400d0d40
movzx eax, bl
mov rcx, qword [rsp + 0x6f0]
xor rcx, rsp
call fcn.1402577a0
mov rbx, qword [rsp + 0x740]
add rsp, 0x700
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret