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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x579a58
mov eax, dword fs:[0]
push eax
sub esp, 0x598
mov eax, dword [0x5c3678]
xor eax, esp
mov dword [esp + 0x590], eax
push ebx
push esi
push edi
mov eax, dword [0x5c3678]
xor eax, esp
push eax
lea eax, [esp + 0x5a8]
mov dword fs:[0], eax
mov dword [esp + 0x14], 0
cmp dword [ebp + 8], 0
mov ebx, ecx
jl 0x501228
push 1
mov byte [ebx + 0x2ea], 1
call fcn.0045d660
add esp, 4
push 1
lea edi, [ebx - 0x19c]
push edi
call fcn.004f3550
mov eax, dword [edi + 0x438]
test eax, eax
je 0x500edd
movzx ecx, byte [edi + 0x486]
push 0
push ecx
push eax
call fcn.004df8b0
mov eax, dword [edi + 0x448]
test eax, eax
je 0x500eed
push eax
call fcn.004db7b0
push 0
push str.Q360InternationSafeClass
call dword [sym.imp.USER32.dll_FindWindowW]
mov esi, eax
test esi, esi
je 0x500f3b
push esi
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x500f3b
xor eax, eax
lea edx, [esp + 0x14]
push edx
push 0x3e8
push eax
lea ecx, [esp + 0x28]
push ecx
push eax
push 0x4a
push esi
mov dword [esp + 0x38], 0x1d
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x30], eax
call dword [sym.imp.USER32.dll_SendMessageTimeoutW]
mov ecx, dword [ebx - 0x16c]
push 1
mov edx, 0x5cf320
call fcn.0046b240
push 0x5cc9fe
push 0x10
call fcn.0053dd33
xor ecx, ecx
add esp, 8
cmp eax, ecx
je 0x500f85
push ecx
mov dword [eax + 4], ecx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], ecx
push eax
mov dword [eax], 0x10
mov edx, dword [ebx - 0x16c]
push 0x40b
push edx
call dword [sym.imp.USER32.dll_PostMessageW]
mov esi, edi
call fcn.004f0de0
test al, al
je 0x50100a
xor eax, eax
mov dword [esp + 0xb4], 0x309
mov dword [esp + 0xd4], 0xf
mov dword [esp + 0xd0], eax
mov byte [esp + 0xc0], al
mov dword [esp + 0x5b0], eax
mov esi, dword [ebx + 0x358]
lea ecx, [esp + 0xb4]
mov dword [esp + 0xb8], 1
mov dword [esp + 0xd8], 2
call fcn.0045aee0
mov dword [esp + 0x5b0], 0xffffffff
cmp dword [esp + 0xd4], 0x10
jb 0x50100a
mov eax, dword [esp + 0xc0]
push eax
call fcn.0053c152
add esp, 4
xor esi, esi
cmp dword [ebx + 0x200], esi
je 0x501046
mov eax, dword [ebx + 0x200]
push esi
cmp eax, esi
jne 0x501029
push 0x80004003
call fcn.0053c010
push ecx
mov esi, esp
mov dword [esp + 0x1c], esp
push 1
push 0xc350
call fcn.0046fb00
call fcn.0048b640
add esp, 8
xor esi, esi
mov dword [ebx + 0x2f4], esi
cmp dword [ebx + 0x2f8], esi
jne 0x50106b
push esi
push 9
push 2
mov eax, edi
call fcn.004e9b70
push edi
call fcn.004f3920
jmp 0x501589
mov eax, dword [ebx + 0x34c]
cmp eax, esi
je 0x501086
push esi
push eax
push 2
mov eax, edi
call fcn.004e9b70
mov dword [ebx + 0x34c], esi
push edi
call fcn.004f3920
mov dword [ebx + 0x2f8], esi
mov byte [ebx + 0x2fd], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, dword [edi + 0x454]
cmp eax, esi
je 0x5010ca
mov ecx, dword [eax + 0x30]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x5010ca
mov eax, dword [edi + 0x454]
mov edx, dword [eax + 0x30]
add eax, 0x2c
push edx
call dword [sym.imp.USER32.dll_DestroyWindow]
lea eax, [esp + 0x33c]
push eax
call fcn.00486000
push ecx
mov dword [esp + 0x5b4], 3
mov eax, esp
mov dword [esp + 0x18], esp
push ecx
mov dword [eax], esi
mov eax, esp
mov dword [eax], esi
mov ecx, dword [ebx - 0x16c]
mov dword [esp + 0x1c], esp
push ecx
lea esi, [esp + 0x374]
call fcn.004897f0
test eax, eax
je 0x50120b
mov byte [ebx + 0x370], 1
call fcn.00424330
mov esi, eax
call fcn.00424b80
mov bl, al
push str.IDS_BINDING_DESC
xor al, al
or ecx, 0xffffffff
lea esi, [esp + 0x2c]
call fcn.004acdf0
mov byte [esp + 0x5b0], 4
cmp dword [eax + 0x18], 8
jb 0x50114a
mov eax, dword [eax + 4]
jmp 0x50114d
add eax, 4
lea edx, [esp + 0x14]
push edx
mov ecx, eax
call fcn.00423950
lea ecx, [esp + 0x28]
mov byte [esp + 0x5b0], 6
call fcn.0040eb20
test bl, bl
je 0x5011c1
mov edx, 0x58c728
lea eax, [esp + 0x14]
call fcn.0040e610
push str.IDS_BINDING_DESC_MORE
xor al, al
or ecx, 0xffffffff
lea esi, [esp + 0x48]
call fcn.004acdf0
mov byte [esp + 0x5b0], 7
cmp dword [eax + 0x18], 8
jb 0x5011a2
mov eax, dword [eax + 4]
jmp 0x5011a5
add eax, 4
mov edx, eax
lea eax, [esp + 0x14]
call fcn.0040e610
lea ecx, [esp + 0x44]
mov byte [esp + 0x5b0], 6
call fcn.0040eb20
mov edx, dword [esp + 0x14]
push 0
lea ecx, [esp + 0x340]
call fcn.00487f80
push 0
push 1
lea esi, [esp + 0x344]
call fcn.00487e50
mov byte [esp + 0x5b0], 3
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x50120b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea ecx, [esp + 0x33c]
push ecx
mov dword [esp + 0x5b4], 0xffffffff
call fcn.004861d0
jmp 0x501589
push 0
lea edi, [ebx - 0x19c]
push 9
push 2
mov eax, edi
mov dword [esp + 0x20], edi
call fcn.004e9b70
mov eax, dword [ebp + 8]
cmp eax, 0xc000000c
je 0x50135e
push 0
cmp eax, 0xc001000d
je 0x501306
cmp eax, 0xc001000f
lea eax, [ebx - 0x148]
je 0x5012ad
mov ecx, str.IDS_ERROR_INVALID_SERVICE
lea esi, [esp + 0x48]
call fcn.004acda0
mov dword [esp + 0x5b0], 0x10
cmp dword [eax + 0x18], 8
jb 0x50128b
mov eax, dword [eax + 4]
jmp 0x50128e
add eax, 4
push eax
call fcn.004f96b0
lea ecx, [esp + 0x44]
mov dword [esp + 0x5b0], 0xffffffff
call fcn.0040eb20
jmp 0x501585
mov ecx, str.IDS_ERR_TOKEN_EXPIRED
lea esi, [esp + 0x2c]
call fcn.004acda0
mov dword [esp + 0x5b0], 0xe
cmp dword [eax + 0x18], 8
jb 0x5012d1
mov eax, dword [eax + 4]
jmp 0x5012d4
add eax, 4
push eax
call fcn.004f96b0
lea ecx, [esp + 0x28]
mov dword [esp + 0x5b0], 0xffffffff
call fcn.0040eb20
mov edx, dword [ebx + 0x1f0]
mov eax, dword [edx + 0x10]
lea ecx, [ebx + 0x1f0]
push 1
call eax
jmp 0x501585
lea eax, [ebx - 0x148]
mov ecx, str.IDS_ERR_LICENSE_INVALID_LICENSE
lea esi, [esp + 0x64]
call fcn.004acda0
mov dword [esp + 0x5b0], 0xf
cmp dword [eax + 0x18], 8
jb 0x501330
mov eax, dword [eax + 4]
jmp 0x501333
add eax, 4
push eax
call fcn.004f96b0
lea ecx, [esp + 0x60]
mov dword [esp + 0x5b0], 0xffffffff
call fcn.0040eb20
mov ecx, dword [esp + 0x14]
push 0
push ecx
call fcn.004f5b90
jmp 0x501585
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, dword [edi + 0x454]
test eax, eax
je 0x50138f
mov edx, dword [eax + 0x30]
push edx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x50138f
mov edi, dword [edi + 0x454]
mov eax, dword [edi + 0x30]
add edi, 0x2c
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
lea ecx, [esp + 0xdc]
push ecx
call fcn.00486000
push ecx
mov eax, esp
mov dword [esp + 0x1c], esp
mov dword [esp + 0x5b4], 0xa
push ecx
mov dword [eax], 0
mov eax, esp
mov dword [eax], 0
mov edx, dword [ebx - 0x16c]
mov dword [esp + 0x20], esp
push edx
lea esi, [esp + 0x114]
call fcn.004897f0
test eax, eax
je 0x50156d
lea edi, [ebx - 0x148]
push 0
mov ecx, str.IDS_ERROR_DEVICE_FULL
lea esi, [esp + 0x80]
mov eax, edi
mov byte [ebx + 0x370], 1
call fcn.004acda0
mov byte [esp + 0x5b0], 0xb
cmp dword [eax + 0x18], 8
jb 0x501411
mov eax, dword [eax + 4]
jmp 0x501414
add eax, 4
push 0
mov edx, eax
lea ecx, [esp + 0xe0]
call fcn.00487f80
lea ecx, [esp + 0x7c]
mov byte [esp + 0x5b0], 0xa
call fcn.0040eb20
mov eax, 1
lea ecx, [esp + 0xdc]
call fcn.004886d0
push 0
mov ecx, str.IDS_PURCHASE
lea esi, [esp + 0x9c]
mov eax, edi
call fcn.004acda0
mov byte [esp + 0x5b0], 0xc
cmp dword [eax + 0x18], 8
jb 0x50146e
mov eax, dword [eax + 4]
jmp 0x501471
add eax, 4
push 0
push 1
mov ecx, eax
lea edx, [esp + 0xe4]
call fcn.004885f0
lea ecx, [esp + 0x98]
mov byte [esp + 0x5b0], 0xa
call fcn.0040eb20
push 0
mov ecx, str.IDS_MANAGE_DEVICES
lea esi, [esp + 0xb8]
mov eax, edi
call fcn.004acda0
mov byte [esp + 0x5b0], 0xd
cmp dword [eax + 0x18], 8
jb 0x5014bf
mov eax, dword [eax + 4]
jmp 0x5014c2
add eax, 4
push 0
push 2
mov ecx, eax
lea edx, [esp + 0xe4]
call fcn.004885f0
lea ecx, [esp + 0xb4]
mov byte [esp + 0x5b0], 0xa
call fcn.0040eb20
push 0
push 0
lea esi, [esp + 0xe4]
mov byte [esp + 0x2aa], 1
call fcn.00487e50
cmp eax, 1
jne 0x501548
cmp dword [ebx + 0x2f8], eax
jne 0x501528
mov esi, dword [esp + 0x14]
push 0
push esi
call fcn.004f5b90
push 0
push 9
push 2
mov eax, esi
call fcn.004e9b70
jmp 0x501533
mov eax, dword [esp + 0x14]
xor ecx, ecx
call fcn.004f4220
xor eax, eax
cmp eax, str.DEVICE_FULL
je 0x50156d
push str.DEVICE_FULL
call fcn.004f8950
jmp 0x50156d
cmp eax, 2
jne 0x50156d
mov esi, dword [esp + 0x14]
push 0
push esi
call fcn.004f5b90
push 0
push 9
push 2
mov eax, esi
call fcn.004e9b70
mov byte [0x5cedd6], 1
lea ecx, [esp + 0xdc]
push ecx
mov dword [esp + 0x5b4], 0xffffffff
call fcn.004861d0
mov edi, dword [esp + 0x14]
push edi
call fcn.004f70f0
mov ecx, dword [esp + 0x5a8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x590]
xor ecx, esp
call fcn.0053c15d
mov esp, ebp
pop ebp
ret 4