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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5c4bdb
mov eax, dword fs:[0]
push eax
sub esp, 0x680
mov eax, dword [0x68cc00]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebp + 0x14]
lea ecx, [ebp - 0x668]
mov esi, dword [ebp + 0x28]
xorps xmm0, xmm0
mov ebx, dword [ebp + 0x24]
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x66c], eax
mov eax, dword [ebp + 0x18]
push str.dns_over_udp
mov dword [ebp - 0x674], eax
mov eax, dword [ebp + 0x1c]
push esi
mov dword [ebp - 0x68c], eax
mov dword [ebp - 0x688], ebx
movq qword [ebp - 0x668], xmm0
mov dword [ebp - 0x660], 0
call fcn.00447f50
mov ecx, dword [ebp - 0x66c]
mov dword [ebp - 4], 0
call fcn.00402f80
cmp eax, 0x200
jbe 0x529681
push str.DNS_request_is_greater_than_512_bytes.
jmp 0x529a2d
test edi, edi
je 0x529a28
cmp dword [ebp + 0xc], 0
jle 0x529a28
call fcn.004fcda0
test al, al
jne 0x5296a6
push str.WSAStartup_failed.
jmp 0x529a2d
push esi
push ebx
push dword [ebp + 0x20]
push edi
call fcn.0052a490
add esp, 0x10
test al, al
jne 0x5296c2
push str.UDP_init_for_nameserver_1_failed.
jmp 0x529a2d
cmp dword [ebp + 0xc], 1
push esi
mov dword [ebp - 0x670], 0
push ebx
jne 0x5297f0
mov ecx, dword [ebp + 0x20]
mov eax, 0x7d0
test ecx, ecx
cmovne eax, ecx
mov ecx, 0x5dc
cmp eax, ecx
mov dword [ebp - 0x67c], eax
push eax
push dword [ebp - 0x66c]
cmovb ecx, eax
mov edx, eax
sub edx, ecx
mov dword [ebp - 0x678], ecx
push edi
mov dword [ebp - 0x680], edx
call fcn.0052aa50
add esp, 0x14
test al, al
jne 0x529723
push str.1st_UDP_send_for_nameserver_1_failed.
jmp 0x5297d8
push esi
mov ecx, ebx
call fcn.0046d5b0
test al, al
jne 0x5297df
push esi
push ebx
push dword [ebp - 0x678]
lea eax, [ebp - 0x684]
mov dword [ebp - 0x684], 0xffffffff
push eax
push edi
push 1
call fcn.0052ab90
add esp, 0x18
test al, al
jne 0x52988b
cmp byte [ebx + 0x15], al
jne 0x5297df
cmp byte [ebx + 0x16], al
jne 0x5297df
cmp dword [ebp - 0x680], 0
jne 0x529779
push str.DNS_timeout.
jmp 0x5297d8
push esi
push ebx
push dword [ebp - 0x67c]
push dword [ebp - 0x66c]
push edi
call fcn.0052aa50
add esp, 0x14
test al, al
jne 0x52979b
push str.2nd_UDP_send_for_nameserver_1_failed.
jmp 0x5297d8
push esi
mov ecx, ebx
call fcn.0046d5b0
test al, al
jne 0x5297df
push esi
push ebx
push dword [ebp - 0x680]
lea eax, [ebp - 0x684]
push eax
push edi
push 1
call fcn.0052ab90
add esp, 0x18
test al, al
jne 0x52988b
cmp byte [ebx + 0x15], al
jne 0x5297df
cmp byte [ebx + 0x16], al
jne 0x5297df
push str.Waited__but_no_data_ready_on_UDP_socket.
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
push esi
push edi
push 1
call fcn.0052a450
add esp, 0xc
jmp 0x529a34
cmp dword [0x69105c], 0xa
mov eax, dword [ebp + 0x20]
push eax
push dword [ebp - 0x66c]
lea eax, [ebp - 0x670]
push edi
push eax
jne 0x529842
call fcn.0052a820
add esp, 0x18
test al, al
je 0x5298ba
mov eax, dword [ebp - 0x670]
test eax, eax
jle 0x52983e
imul eax, eax, 0x88
lea ecx, [edi + 0x14]
add ecx, eax
call fcn.0042f430
push eax
call fcn.004867a0
add esp, 4
xor eax, eax
jmp 0x529877
call fcn.0052a560
add esp, 0x18
test al, al
je 0x5298ba
mov eax, dword [ebp - 0x670]
test eax, eax
jle 0x529871
imul eax, eax, 0x88
lea ecx, [edi + 0x14]
add ecx, eax
call fcn.0042f430
push eax
call fcn.004867a0
add esp, 4
mov eax, dword [0x69105c]
inc eax
cmp dword [ebp + 0xc], 2
mov dword [0x69105c], eax
jle 0x52988b
push esi
call fcn.00485f40
add esp, 4
push 0x640
lea eax, [ebp - 0x650]
push 0
push eax
call fcn.0040de90
add esp, 0xc
mov ecx, ebx
push esi
call fcn.0046d5b0
test al, al
je 0x5298cc
push dword [0x68a5d8]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
push esi
push edi
push dword [ebp + 0xc]
call fcn.0052a450
add esp, 0xc
jmp 0x529a34
imul eax, dword [ebp - 0x670], 0x88
lea ecx, [ebp - 0x650]
push 0
add eax, edi
push 0x640
push ecx
mov dword [ebp - 0x67c], eax
push dword [eax]
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0x678], eax
cmp eax, 0xffffffff
jne 0x529926
call dword [sym.imp.WS2_32.dll_WSAGetLastError]
cmp eax, 0x2733
je 0x52991f
push esi
push 0
push eax
call fcn.004ff260
add esp, 0xc
push str.Failed_to_receive_DNS_query_response_on_UDP_socket.
jmp 0x5298b3
push str.Received_0_bytes.
jmp 0x5298b3
test eax, eax
jne 0x529931
push str.Received_0_response_from_recv.
jmp 0x5298b3
push esi
push edi
push dword [ebp + 0xc]
call fcn.0052a450
mov eax, dword [ebp - 0x67c]
add esp, 0xc
xor ecx, ecx
mov edx, dword [eax + 8]
test edx, edx
jle 0x529979
add eax, 0xd
mov bl, byte [ebp - 0x650]
cmp byte [eax - 1], bl
mov ebx, dword [ebp - 0x688]
jne 0x529971
mov ebx, dword [ebp - 0x64f]
cmp byte [eax], bl
mov ebx, dword [ebp - 0x688]
je 0x529983
inc ecx
add eax, 2
cmp ecx, edx
jl 0x529950
push str.Response_ID_not_equal_to_request_ID.
jmp 0x529a2d
mov ecx, dword [ebp - 0x674]
lea eax, [ebp - 0x650]
push esi
push dword [ebp - 0x678]
push eax
call fcn.005a1de0
test al, al
je 0x5299a7
mov bl, 1
jmp 0x529a36
mov eax, dword [ebp - 0x674]
cmp byte [eax + 5], 0
je 0x529a1a
cmp byte [ebx + 0x15], 0
jne 0x529a1a
push str.fallbackToTcp
xorps xmm0, xmm0
mov dword [ebp - 0x654], 0
push esi
lea ecx, [ebp - 0x65c]
movq qword [ebp - 0x65c], xmm0
call fcn.00447f50
push esi
push ebx
push dword [ebp + 0x20]
mov byte [ebp - 4], 1
push dword [ebp - 0x68c]
push dword [ebp - 0x674]
push dword [ebp - 0x66c]
push 0
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00529260
add esp, 0x28
lea ecx, [ebp - 0x65c]
mov bl, al
call fcn.00448050
jmp 0x529a36
mov eax, dword [esi]
mov ecx, esi
push str.Received_invalid_or_incomplete_DNS_response.
call dword [eax + 0x18]
jmp 0x529a34
push str.Invalid_args
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x14]
xor bl, bl
lea ecx, [ebp - 0x668]
call fcn.00448050
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.005af618
mov esp, ebp
pop ebp
ret