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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0xb14318
push 0xa847a0
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x149c
call fcn.00a91950
mov eax, dword [0xb196ec]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x20], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov esi, dword [ebp + 8]
mov dword [ebp - 0x1470], esi
xor ebx, ebx
mov dword [ebp - 0x148c], ebx
mov edi, 1
mov dword [esi + 0x14], edi
mov dword [ebp - 4], ebx
call fcn.00968d70
mov dword [0xbe6a0c], eax
mov dword [ebp - 0x1494], ebx
mov byte [ebp - 0x554], bl
push 0x103
push ebx
lea eax, [ebp - 0x553]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 0x14a4], 0x104
lea ecx, [ebp - 0x1494]
push ecx
push str.AsyncDebug
mov ecx, str.SoftwareMicroWorld
mov edx, 0x80000002
call fcn.0094c0d0
cmp dword [ebp - 0x1494], ebx
je 0x87e2c4
push str._NWCONN__CheckAndWaitForIC_Started...
push ebx
call fcn.0096a780
add esp, 8
jmp 0x87e304
push str.Debug
lea eax, [ebp - 0x14a4]
lea edi, [ebp - 0x554]
mov ecx, 0xab6f1c
mov edx, 0x80000000
call fcn.0094c020
test al, al
je 0x87e2ff
cmp byte [ebp - 0x554], 0x31
jne 0x87e2ff
push str._NWCONN__CheckAndWaitForIC_Started...
push ebx
call fcn.0096a780
add esp, 8
mov edi, 1
mov dword [ebp - 0x1488], ebx
mov byte [ebp - 0x65c], bl
push 0x103
push ebx
lea edx, [ebp - 0x65b]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov byte [ebp - 0x2c], bl
xor eax, eax
mov dword [ebp - 0x2b], eax
mov dword [ebp - 0x27], eax
mov byte [ebp - 0x23], al
mov byte [ebp - 0xc6c], bl
push 0x3ff
push ebx
lea eax, [ebp - 0xc6b]
push eax
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 0x1478], ebx
mov dword [ebp - 0x1474], ebx
mov dword [ebp - 0x1490], ebx
mov byte [ebp - 0x146c], bl
push 0x7ff
push ebx
lea ecx, [ebp - 0x146b]
push ecx
call fcn.00a7ffb0
add esp, 0xc
mov dword [ebp - 0x147c], edi
lea edx, [ebp - 0x147c]
push edx
push str.DirectConnectAvailable
mov ecx, str.SoftwareMicroWorld
mov edx, 0x80000002
call fcn.0094c0d0
test al, al
jne 0x87e3a6
mov dword [ebp - 0x147c], edi
cmp dword [0xbe6a04], ebx
jne 0x87e3bf
mov dword [0xbe6a04], edi
lea ecx, [ebp - 0x146c]
call fcn.009659b0
cmp dword [ebp - 0x148c], ebx
jne 0x87e3d1
mov eax, dword [esi]
mov dword [eax], ebx
mov dword [ebp - 0x148c], edi
mov ecx, dword [esi + 8]
mov byte [ecx], bl
mov edx, dword [esi + 4]
mov byte [edx], bl
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
mov dword [ebp - 0x14b0], esi
lea esp, [esp]
cmp dword [ebp - 0x147c], ebx
je 0x87e454
push str.www.microsoft.com
lea eax, [ebp - 0x65c]
push eax
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call edi
push 0xab6ee4
lea ecx, [ebp - 0x2c]
push ecx
call edi
cmp dword [ebp - 0x147c], 0xa
je 0x87e5ba
push ebx
push ebx
push ebx
push ebx
push 0x2710
push ebx
lea edx, [ebp - 0xc6c]
push edx
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x65c]
push ecx
xor edx, edx
xor ecx, ecx
call fcn.0087cce0
add esp, 0x24
cmp eax, ebx
jne 0x87e5ba
mov byte [ebp - 0x86c], bl
push 0x103
push ebx
lea edx, [ebp - 0x86b]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov eax, 0x104
mov dword [ebp - 0x14a0], eax
mov dword [ebp - 0x14a8], eax
mov byte [ebp - 0x134], bl
mov byte [ebp - 0x23c], bl
xor ecx, ecx
call fcn.009790d0
test eax, eax
je 0x87e4dd
push str.ProxyServer
lea eax, [ebp - 0x14a8]
lea edi, [ebp - 0x23c]
mov ecx, str.SoftwareMicroWorldeScan_for_WindowsMwMonitorRegMsg
mov edx, 0x80000002
call fcn.0094c020
cmp al, 1
jne 0x87e4f1
push str.ProxyPort
lea eax, [ebp - 0x14a0]
lea edi, [ebp - 0x134]
mov ecx, str.SoftwareMicroWorldeScan_for_WindowsMwMonitorRegMsg
mov edx, 0x80000002
call fcn.0094c020
jmp 0x87e4f1
lea eax, [ebp - 0x23c]
push eax
lea ebx, [ebp - 0x134]
call fcn.0098b350
xor ebx, ebx
cmp byte [ebp - 0x23c], bl
je 0x87e56d
cmp byte [ebp - 0x134], bl
je 0x87e56d
push ebx
push ebx
push ebx
push ebx
push 0x2710
push ebx
lea ecx, [ebp - 0x86c]
push ecx
lea edx, [ebp - 0x134]
push edx
lea eax, [ebp - 0x23c]
push eax
xor edx, edx
xor ecx, ecx
call fcn.0087cce0
add esp, 0x24
cmp eax, 1
jne 0x87e56d
lea ecx, [ebp - 0x23c]
push ecx
mov edi, dword [ebp - 0x1470]
mov edx, dword [edi + 4]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
lea eax, [ebp - 0x134]
push eax
mov ecx, dword [edi + 8]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcpyA]
xor edi, edi
mov dword [ebp - 0x1488], 1
mov eax, dword [ebp - 0x1470]
jmp 0x87e57c
mov edi, 1
mov eax, dword [ebp - 0x1470]
mov edx, dword [eax]
mov dword [edx], ebx
cmp edi, ebx
je 0x87e5c2
cmp dword [eax + 0x10], ebx
jne 0x87e5c2
cmp dword [ebp - 0x1490], ebx
jne 0x87e621
mov dword [ebp - 0x1490], 1
push ebx
lea eax, [ebp - 0x1478]
push eax
call fcn.00983e00
lea ecx, [ebp - 0x1474]
call fcn.00984460
push 0x1f4
jmp 0x87e626
xor edi, edi
mov eax, dword [ebp - 0x1470]
mov ecx, dword [ebp - 0x1478]
cmp ecx, ebx
je 0x87e5e1
push ecx
call fcn.00a78fec
add esp, 4
mov dword [ebp - 0x1478], ebx
mov eax, dword [ebp - 0x1470]
mov ecx, dword [ebp - 0x1474]
cmp ecx, ebx
je 0x87e600
push ecx
call fcn.00a78fec
add esp, 4
mov dword [ebp - 0x1474], ebx
mov eax, dword [ebp - 0x1470]
cmp edi, ebx
jne 0x87e810
cmp dword [ebp - 0x1488], ebx
je 0x87e808
mov ecx, dword [eax]
mov dword [ecx], 2
jmp 0x87e810
push 0xfa0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, esi
cmp eax, 0x6d60
jbe 0x87e3f0
xor esi, esi
mov dword [ebp - 0x1498], esi
call edi
mov dword [ebp - 0x149c], eax
call edi
sub eax, dword [ebp - 0x149c]
cmp eax, 0xea60
jae 0x87e801
mov dword [ebp - 0x1484], ebx
mov dword [ebp - 0x1480], ebx
push ebx
lea ecx, [ebp - 0x1484]
push ecx
call fcn.00983e00
lea ecx, [ebp - 0x1480]
call fcn.00984460
mov edi, dword [ebp - 0x1484]
cmp edi, ebx
je 0x87e6c4
mov eax, dword [ebp - 0x1478]
cmp eax, ebx
je 0x87e6aa
push eax
push edi
call fcn.00a88f66
add esp, 8
test eax, eax
je 0x87e6b5
mov esi, 1
mov dword [ebp - 0x1498], esi
push edi
call fcn.00a78fec
add esp, 4
mov dword [ebp - 0x1484], ebx
mov edi, dword [ebp - 0x1480]
cmp edi, ebx
je 0x87e700
mov eax, dword [ebp - 0x1474]
cmp eax, ebx
je 0x87e6e6
push eax
push edi
call fcn.00a88f66
add esp, 8
test eax, eax
je 0x87e6f1
mov esi, 1
mov dword [ebp - 0x1498], esi
push edi
call fcn.00a78fec
add esp, 4
mov dword [ebp - 0x1480], ebx
cmp esi, ebx
jne 0x87e7fb
mov byte [ebp - 0x764], bl
push 0x103
push ebx
lea edx, [ebp - 0x763]
push edx
call fcn.00a7ffb0
add esp, 0xc
mov eax, 0x104
mov dword [ebp - 0x14b4], eax
mov dword [ebp - 0x14ac], eax
mov byte [ebp - 0x344], bl
mov byte [ebp - 0x44c], bl
xor ecx, ecx
call fcn.009790d0
test eax, eax
je 0x87e791
push str.ProxyServer
lea eax, [ebp - 0x14ac]
lea edi, [ebp - 0x44c]
mov ecx, str.SoftwareMicroWorldeScan_for_WindowsMwMonitorRegMsg
mov edx, 0x80000002
call fcn.0094c020
cmp al, 1
jne 0x87e7a5
push str.ProxyPort
lea eax, [ebp - 0x14b4]
lea edi, [ebp - 0x344]
mov ecx, str.SoftwareMicroWorldeScan_for_WindowsMwMonitorRegMsg
mov edx, 0x80000002
call fcn.0094c020
jmp 0x87e7a5
lea eax, [ebp - 0x44c]
push eax
lea ebx, [ebp - 0x344]
call fcn.0098b350
xor ebx, ebx
cmp byte [ebp - 0x44c], bl
je 0x87e7e5
cmp byte [ebp - 0x344], bl
je 0x87e7e5
push ebx
push ebx
push ebx
push ebx
push 0x2710
push ebx
lea ecx, [ebp - 0x764]
push ecx
lea edx, [ebp - 0x344]
push edx
lea eax, [ebp - 0x44c]
push eax
xor edx, edx
xor ecx, ecx
call fcn.0087cce0
add esp, 0x24
cmp eax, 1
je 0x87e7fb
push 0x2328
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
jmp 0x87e651
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
jmp 0x87e3e1
mov edx, dword [eax]
mov dword [edx], 1
cmp dword [eax + 0xc], ebx
je 0x87e89e
cmp dword [0xbe6a0c], ebx
je 0x87e89e
cmp dword [0xbe6a08], ebx
jne 0x87e860
mov dword [0xb56f64], ebx
mov dword [eax + 0x14], ebx
push eax
push ebx
push 0x87ddc0
call fcn.00a791b2
add esp, 0xc
mov eax, dword [ebp - 0x1470]
cmp dword [eax + 0x14], ebx
jne 0x87e856
push 1
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x87e841
mov dword [0xbe6a08], 1
cmp dword [0xb56f64], ebx
jne 0x87e875
push 0x3e8
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x87e860
mov dword [0xb56f64], ebx
mov esi, dword [ebp - 0x1470]
jmp 0x87e2ff
mov dword [ebp - 4], 0xfffffffe
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x20]
xor ecx, ebp
call fcn.00a78f21
mov esp, ebp
pop ebp
ret