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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 0x20]
sub esp, 0xc
push ebx
push esi
push edi
mov edi, ecx
mov ecx, dword [ebp + 0x24]
mov byte [eax], 0
mov byte [ecx], 0
mov ecx, dword [ebp + 0x18]
call fcn.0044eee0
mov edx, dword [ebp + 0x1c]
mov ebx, dword [ebp + 8]
lea esi, [edi + 0x28]
push ebx
mov ecx, esi
mov dword [edx], 0
call fcn.00451670
push 0
push 0x6546aa
push str.http:__
mov ecx, esi
call fcn.0044fd10
push 0
push 0x6546aa
push str.https:__
mov ecx, esi
call fcn.0044fd10
push 0x2f
mov ecx, esi
call fcn.0044ecc0
push 0x3a
mov ecx, esi
call fcn.0044ecc0
mov ecx, esi
call fcn.0044dc40
mov ecx, esi
call fcn.0044daa0
test eax, eax
jne 0x59ded9
mov esi, dword [ebp + 0x10]
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.00459a60
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, esi
call fcn.0044da90
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x59def2
push eax
push str.HostnameResolve
call fcn.0046ec60
mov ecx, dword [ebp + 0x10]
push esi
push str.dnsCacheLookup
call fcn.00459a60
mov ebx, dword [ebp + 0x18]
mov ecx, ebx
call fcn.0044eee0
push esi
call fcn.0054e810
add esp, 4
test al, al
je 0x59df21
push esi
mov ecx, ebx
call fcn.00451670
jmp 0x59df33
push ebx
push esi
call fcn.0048dac0
add esp, 8
test al, al
je 0x59dfc9
mov ecx, ebx
call fcn.0044daa0
test eax, eax
je 0x59dfc9
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
push ecx
lea edx, [ebp - 4]
push edx
lea eax, [ebp + 8]
push eax
push str._d._d._d._d
mov ecx, ebx
call fcn.0044da90
push eax
call fcn.0044d3e0
add esp, 0x18
cmp eax, 4
jne 0x59dfc9
movzx ecx, byte [ebp + 8]
mov eax, dword [ebp + 0x1c]
movzx edx, byte [ebp - 4]
mov esi, dword [ebp + 0x14]
mov byte [eax], cl
movzx ecx, byte [ebp - 8]
mov byte [eax + 1], dl
movzx edx, byte [ebp - 0xc]
mov byte [eax + 2], cl
mov byte [eax + 3], dl
test esi, esi
je 0x59dfa5
mov ecx, ebx
call fcn.0044da90
push eax
push str.ResolvedToIp
mov ecx, esi
call fcn.0046ec60
mov edi, dword [ebp + 0x10]
mov esi, dword [edi]
mov ecx, ebx
call fcn.0044da90
push eax
mov eax, dword [esi + 0x2c]
push str.dnsCacheHit
mov ecx, edi
call eax
pop edi
pop esi
mov al, 1
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp + 0x14]
mov dword [edi + 0x9c], ecx
mov ecx, edi
mov byte [edi + 0x114], 1
call fcn.00408cd0
call sub.KERNEL32.dll_GetTickCount
lea edx, [ebp + 8]
push edx
push 0
push edi
push 0x59da20
push 0
push 0
mov dword [ebp - 0xc], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x59e0ad
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x18]
push str.Resolving_domain_name__IPV4_
call edx
xor eax, eax
xor ebx, ebx
cmp byte [edi + 0x114], al
jne 0x59e0ca
mov ebx, dword [ebp + 0x18]
lea edx, [edi + 0xa0]
push edx
mov ecx, ebx
call fcn.00451670
mov eax, dword [edi + 0x118]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
mov ecx, ebx
call fcn.0044daa0
test eax, eax
je 0x59e064
mov ecx, ebx
call fcn.0044da90
push eax
push esi
call fcn.0048d8d0
add esp, 8
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x59e08a
mov ecx, ebx
call fcn.0044daa0
test eax, eax
je 0x59e08a
mov ecx, ebx
call fcn.0044da90
push eax
push str.ResolvedToIp
mov ecx, esi
call fcn.0046ec60
mov ecx, dword [ebp + 0x10]
push ebx
push str.resolvedToIp
call fcn.00459a60
mov ecx, ebx
call fcn.0044daa0
pop edi
test eax, eax
pop esi
setne al
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp + 0x10]
mov eax, dword [ecx]
mov edx, dword [eax + 0x14]
push str.Failed_to_start_background_thread_for_resolving_IPV4_domain_name.
call edx
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [ebp + 8]
inc eax
mov dword [ebp + 8], eax
cmp eax, 0xc8
jle 0x59e0e4
push 0xa
call fcn.0044cc90
add esp, 4
add ebx, 0xa
jmp 0x59e0f1
push 2
call fcn.0044cc90
add esp, 4
add ebx, 2
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x59e10f
cmp ebx, dword [ecx + 0x88]
jb 0x59e10f
mov eax, dword [ebp + 0x10]
push eax
xor ebx, ebx
call fcn.0046ef60
test al, al
jne 0x59e136
cmp dword [ebp + 0xc], 0
je 0x59e128
call sub.KERNEL32.dll_GetTickCount
mov ecx, dword [ebp - 0xc]
cmp eax, ecx
jbe 0x59e128
sub eax, ecx
cmp eax, dword [ebp + 0xc]
ja 0x59e156
cmp byte [edi + 0x114], 0
jne 0x59e0c7
jmp 0x59e02c
mov ecx, dword [ebp + 0x20]
mov byte [ecx], 1
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
mov eax, dword [edx + 0x14]
push str.DNS_lookup_aborted_by_application_callback
call eax
pop edi
pop esi
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x20
mov ecx, dword [ebp + 0x24]
pop edi
pop esi
mov byte [ecx], 1
xor al, al
pop ebx
mov esp, ebp
pop ebp
ret 0x20