Function at 0x52d400
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 0x10]
sub esp, 0xc
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
test ebx, ebx
je 0x52d445
mov esi, dword [ebp + 0x18]
test ecx, ecx
mov edi, dword [ebp + 0x14]
mov eax, 0x7d0
push esi
cmovne eax, ecx
push edi
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0xc], eax
push ebx
call fcn.0052dba0
add esp, 0x14
test al, al
jne 0x52d44e
mov eax, dword [esi]
mov ecx, esi
push str.1st_UDP_send_for_nameserver_1_failed.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov ecx, edi
call fcn.0046ee20
test al, al
jne 0x52d445
call sub.KERNEL32.DLL_GetTickCount
push esi
push edi
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push 0x5dc
push eax
push ebx
push 1
mov dword [ebp - 4], 0xffffffff
call fcn.0052dce0
add esp, 0x18
test al, al
jne 0x52d68b
cmp byte [edi + 0x15], al
jne 0x52d445
cmp byte [edi + 0x16], al
jne 0x52d445
call sub.KERNEL32.DLL_GetTickCount
mov ecx, dword [ebp - 8]
cmp eax, ecx
mov edx, dword [ebp - 0xc]
cmovb ecx, eax
sub eax, ecx
mov dword [ebp - 8], ecx
mov ecx, edx
sub ecx, eax
cmp eax, edx
sbb eax, eax
and eax, ecx
mov dword [ebp + 8], eax
jne 0x52d4ca
mov eax, dword [esi]
mov ecx, esi
push str.DNS_timeout.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
push edx
push dword [ebp + 0xc]
push ebx
call fcn.0052dba0
add esp, 0x14
test al, al
jne 0x52d4f2
mov eax, dword [esi]
mov ecx, esi
push str.2nd_UDP_send_for_nameserver_1_failed.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov ecx, edi
call fcn.0046ee20
test al, al
jne 0x52d445
mov eax, dword [ebp + 8]
cmp eax, 0x7d0
jbe 0x52d5ab
push esi
push edi
push 0x7d0
lea eax, [ebp - 4]
mov dword [ebp - 4], 0xffffffff
push eax
push ebx
push 1
call fcn.0052dce0
add esp, 0x18
test al, al
jne 0x52d68b
cmp byte [edi + 0x15], al
jne 0x52d445
cmp byte [edi + 0x16], al
jne 0x52d445
call sub.KERNEL32.DLL_GetTickCount
mov ecx, dword [ebp - 8]
cmp eax, ecx
cmovb ecx, eax
sub eax, ecx
mov dword [ebp - 8], ecx
mov ecx, dword [ebp + 8]
sub ecx, eax
cmp eax, dword [ebp + 8]
sbb eax, eax
and eax, ecx
mov dword [ebp + 8], eax
je 0x52d4b5
push esi
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push ebx
call fcn.0052dba0
add esp, 0x14
test al, al
jne 0x52d598
mov eax, dword [esi]
mov ecx, esi
push str.3rd_UDP_send_for_nameserver_1_failed.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov ecx, edi
call fcn.0046ee20
test al, al
jne 0x52d445
mov eax, dword [ebp + 8]
cmp eax, 0x3e8
jbe 0x52d64e
push esi
push edi
push 0x3e8
lea eax, [ebp - 4]
mov dword [ebp - 4], 0xffffffff
push eax
push ebx
push 1
call fcn.0052dce0
add esp, 0x18
test al, al
jne 0x52d68b
cmp byte [edi + 0x15], al
jne 0x52d445
cmp byte [edi + 0x16], al
jne 0x52d445
call sub.KERNEL32.DLL_GetTickCount
mov ecx, dword [ebp - 8]
cmp eax, ecx
cmovb ecx, eax
sub eax, ecx
mov ecx, dword [ebp + 8]
sub ecx, eax
cmp eax, dword [ebp + 8]
sbb eax, eax
and eax, ecx
mov dword [ebp + 8], eax
je 0x52d4b5
push esi
push edi
push dword [ebp - 0xc]
push dword [ebp + 0xc]
push ebx
call fcn.0052dba0
add esp, 0x14
test al, al
jne 0x52d63b
mov eax, dword [esi]
mov ecx, esi
push str.4th_UDP_send_for_nameserver_1_failed.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
push esi
mov ecx, edi
call fcn.0046ee20
test al, al
jne 0x52d445
mov eax, dword [ebp + 8]
push esi
push edi
push eax
lea eax, [ebp - 4]
push eax
push ebx
push 1
call fcn.0052dce0
add esp, 0x18
test al, al
jne 0x52d68b
cmp byte [edi + 0x15], al
jne 0x52d445
cmp byte [edi + 0x16], al
jne 0x52d445
mov eax, dword [esi]
mov ecx, esi
push str.Waited__but_no_data_ready_on_UDP_socket.
call dword [eax + 0x14]
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret