Function at 0x5d2170
Capabilities:
Check for time delay via gettickcount
Create thread

Disassembly:
mov eax, dword [esp + 0x1c]
sub esp, 8
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [esp + 0x34]
mov byte [eax], 0
mov byte [ecx], 0
mov ecx, dword [esp + 0x28]
call fcn.00484e60
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x18]
lea esi, [edi + 0x28]
push ebx
mov ecx, esi
mov dword [edx], 0
call fcn.004872c0
push 0
push 0x7589ce
push str.http:__
mov ecx, esi
call fcn.00485a70
push 0
push 0x7589ce
push str.https:__
mov ecx, esi
call fcn.00485a70
push 0x2f
mov ecx, esi
call fcn.00484c40
push 0x3a
mov ecx, esi
call fcn.00484c40
mov ecx, esi
call fcn.00484060
mov ecx, esi
call fcn.005d5d40
test eax, eax
jne 0x5d221c
mov esi, dword [esp + 0x20]
mov eax, dword [esi]
mov edx, dword [eax + 0x14]
push str.Invalid_hostname_for_resolving_hostname_to_IP_address.
mov ecx, esi
call edx
push ebx
push str.hostname
mov ecx, esi
call fcn.004b1210
pop edi
pop esi
xor al, al
pop ebx
add esp, 8
ret 0x20
push ebp
mov ecx, esi
call fcn.00483ec0
mov ebp, dword [esp + 0x28]
test ebp, ebp
je 0x5d2239
push eax
push str.HostnameResolve
mov ecx, ebp
call fcn.004d0ba0
mov ecx, dword [esp + 0x24]
push esi
push str.dnsCacheLookup
call fcn.004b1210
mov ebx, dword [esp + 0x2c]
mov ecx, ebx
call fcn.00484e60
push esi
call fcn.005733c0
add esp, 4
test al, al
je 0x5d226a
push esi
mov ecx, ebx
call fcn.004872c0
jmp 0x5d227c
push ebx
push esi
call fcn.004ca9a0
add esp, 8
test al, al
je 0x5d231c
mov ecx, ebx
call fcn.005d5d40
test eax, eax
je 0x5d231c
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x14]
push ecx
lea edx, [esp + 0x30]
push edx
lea eax, [esp + 0x28]
push eax
push str._d._d._d._d
mov ecx, ebx
call fcn.00483ec0
push eax
call fcn.004ac010
add esp, 0x18
cmp eax, 4
jne 0x5d231c
test ebp, ebp
movzx ecx, byte [esp + 0x1c]
mov eax, dword [esp + 0x30]
movzx edx, byte [esp + 0x28]
mov byte [eax], cl
movzx ecx, byte [esp + 0x10]
mov byte [eax + 1], dl
movzx edx, byte [esp + 0x14]
mov byte [eax + 2], cl
mov byte [eax + 3], dl
je 0x5d22f4
mov ecx, ebx
call fcn.00483ec0
push eax
push str.ResolvedToIp
mov ecx, ebp
call fcn.004d0ba0
mov edi, dword [esp + 0x24]
mov esi, dword [edi]
mov ecx, ebx
add esi, 0x2c
call fcn.00483ec0
push eax
mov eax, dword [esi]
push str.dnsCacheHit
mov ecx, edi
call eax
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
add esp, 8
ret 0x20
mov ecx, edi
mov dword [edi + 0x9c], ebp
mov byte [edi + 0x114], 1
call fcn.0048eb30
call sub.KERNEL32.dll_GetTickCount
lea ecx, [esp + 0x1c]
push ecx
push 0
push edi
push 0x5d1d70
push 0
push 0
mov dword [esp + 0x40], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x5d2401
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 0x18]
push str.Resolving_domain_name__IPV4_
call eax
xor eax, eax
xor ebx, ebx
cmp byte [edi + 0x114], al
jne 0x5d2424
mov ebx, dword [esp + 0x2c]
lea ecx, [edi + 0xa0]
push ecx
mov ecx, ebx
call fcn.004872c0
mov edx, dword [edi + 0x118]
mov eax, dword [esp + 0x30]
mov ecx, ebx
mov dword [eax], edx
call fcn.005d5d40
test eax, eax
je 0x5d23b9
mov ecx, ebx
call fcn.00483ec0
push eax
push esi
call fcn.004ca800
add esp, 8
test ebp, ebp
je 0x5d23dc
mov ecx, ebx
call fcn.005d5d40
test eax, eax
je 0x5d23dc
mov ecx, ebx
call fcn.00483ec0
push eax
push str.ResolvedToIp
mov ecx, ebp
call fcn.004d0ba0
mov ecx, dword [esp + 0x24]
push ebx
push str.resolvedToIp
call fcn.004b1210
mov ecx, ebx
call fcn.005d5d40
pop ebp
pop edi
test eax, eax
pop esi
setne al
pop ebx
add esp, 8
ret 0x20
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.Failed_to_start_background_thread_for_resolving_IPV4_domain_name.
call eax
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 8
ret 0x20
mov eax, dword [esp + 0x1c]
add eax, 1
cmp eax, 0xc8
mov dword [esp + 0x1c], eax
jle 0x5d2441
push 0xa
call fcn.004ab8b0
add esp, 4
add ebx, 0xa
jmp 0x5d244e
push 2
call fcn.004ab8b0
add esp, 4
add ebx, 2
test ebp, ebp
je 0x5d246c
cmp ebx, dword [ebp + 0x88]
jb 0x5d246c
mov ecx, dword [esp + 0x24]
push ecx
mov ecx, ebp
xor ebx, ebx
call fcn.004d0e20
test al, al
jne 0x5d2496
cmp dword [esp + 0x20], 0
je 0x5d2488
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jbe 0x5d2488
sub eax, ecx
cmp eax, dword [esp + 0x20]
ja 0x5d24b9
cmp byte [edi + 0x114], 0
jne 0x5d2420
jmp 0x5d237f
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov byte [edx], 1
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.DNS_lookup_aborted_by_application_callback
call edx
pop ebp
pop edi
pop esi
xor al, al
pop ebx
add esp, 8
ret 0x20
mov eax, dword [esp + 0x38]
pop ebp
pop edi
pop esi
mov byte [eax], 1
xor al, al
pop ebx
add esp, 8
ret 0x20