Function at 0x10001036
Capabilities:
Check for time delay via gettickcount
Check mutex on windows
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x12c
push esi
mov dword [ebp - 0x14], 0
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
cmp dword [0x100089f8], 0
jne 0x100010a8
mov dword [0x100089c8], 0xc
mov dword [0x100089cc], 0
mov dword [0x100089d0], 1
push 0
push 0
push 0x100089c8
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x100089d4], eax
push 0
push 0
push 0x100089c8
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov dword [0x100089e8], eax
mov dword [0x100089f8], 1
push 0x100081b4
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
mov dword [ebp - 0xc], 0
xor eax, eax
test eax, eax
jne 0x100010ba
push 0xffffffffffffffff
mov ecx, dword [0x100089d4]
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
xor edx, edx
test edx, edx
jne 0x100010cf
mov eax, dword [ebp + 8]
and eax, 0xffff
mov dword [ebp + 8], eax
mov ecx, dword [ebp + 0xc]
and ecx, 0xffff
mov dword [ebp + 0xc], ecx
mov edx, dword [ebp + 0x10]
and edx, 0xffff
mov dword [ebp + 0x10], edx
mov eax, dword [ebp + 0x14]
and eax, 0xffff
mov dword [ebp + 0x14], eax
mov ecx, dword [ebp + 8]
xor ecx, dword [ebp - 0xc]
mov dword [0x100089d8], ecx
mov edx, dword [ebp + 0xc]
xor edx, dword [ebp - 0xc]
mov dword [0x100089dc], edx
mov eax, dword [ebp + 0x10]
xor eax, dword [ebp - 0xc]
mov dword [0x100089e0], eax
mov ecx, dword [ebp + 0x14]
xor ecx, dword [ebp - 0xc]
mov dword [0x100089e4], ecx
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x10], eax
cmp dword [0x10008030], 0xffffffff
je 0x10001212
mov edx, dword [ebp + 8]
and edx, 0xffff
cmp edx, 0xffff
jne 0x10001181
cmp dword [ebp - 0x14], 0
jne 0x1000117c
mov eax, dword [0x10008030]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x10008030], 0xffffffff
mov dword [ebp - 0x14], 1
jmp 0x100015d9
mov ecx, dword [0x100089f4]
shl ecx, 0x10
or ecx, 0x10
mov dword [ebp - 0x12c], ecx
push 0
lea edx, [ebp - 0x120]
push edx
push 8
push 0x100089ec
push 0x10
push 0x100089d8
mov eax, dword [ebp - 0x12c]
push eax
mov ecx, dword [0x10008030]
push ecx
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x100011f0
mov edx, dword [0x100089f0]
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [0x100089d4]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x100089ec]
jmp 0x1000160d
xor ecx, ecx
test ecx, ecx
jne 0x100011f0
mov edx, dword [0x10008030]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [0x10008030], 0xffffffff
jmp 0x100015d9
cmp dword [0x10008a00], 0
je 0x10001269
mov eax, dword [ebp + 8]
and eax, 0xffff
cmp eax, 0xffff
jne 0x10001239
mov dword [0x10008a00], 0
jmp 0x100015d9
xor ecx, ecx
test ecx, ecx
jne 0x10001239
mov edx, dword [0x100089d4]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [ebp + 0x10]
push ecx
mov edx, dword [ebp + 0xc]
push edx
mov eax, dword [ebp + 8]
push eax
call 0x100019f0
add esp, 0x10
jmp 0x1000160d
mov dword [0x100089fc], 0
mov dword [0x100089c0], 1
cmp dword [ebp + 8], 0xffffffff
jne 0x10001288
jmp 0x100015d9
mov ecx, dword [ebp - 0x10]
not ecx
and ecx, 0x80000000
test ecx, ecx
je 0x100013fe
mov dword [ebp - 0x18], 1
jmp 0x100012ad
mov edx, dword [ebp - 0x18]
add edx, 1
mov dword [ebp - 0x18], edx
cmp dword [ebp - 0x18], 2
jg 0x100013f9
cmp dword [ebp - 0x18], 1
jne 0x100012ec
push 0x10008038
push 0x10008048
lea eax, [ebp - 0x11c]
push eax
call fcn.1000358b
add esp, 0xc
mov dword [ebp - 0x128], 0xffffffff
mov dword [0x100089f4], 0x22
jmp 0x10001319
push str..PARCLASS0
push 0x1000805c
lea ecx, [ebp - 0x11c]
push ecx
call fcn.1000358b
add esp, 0xc
mov dword [ebp - 0x128], 0
mov dword [0x100089f4], 0x16
lea edx, [ebp - 0x11c]
push edx
call fcn.10003510
add esp, 4
lea eax, [ebp + eax - 0x11d]
mov dword [ebp - 8], eax
mov dword [ebp - 4], 1
jmp 0x10001344
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
cmp dword [ebp - 4], 3
jg 0x100013f4
mov edx, dword [ebp - 0x128]
mov eax, dword [ebp - 4]
lea ecx, [eax + edx + 0x30]
mov edx, dword [ebp - 8]
mov byte [edx], cl
push 0x80
push 0x100089ec
push 0x100089d8
lea eax, [ebp - 0x11c]
push eax
call fcn.10001614
add esp, 0x10
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x100013bb
mov dword [0x100089c0], 0
mov ecx, dword [0x100089f0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [0x100089d4]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x100089ec]
jmp 0x1000160d
cmp dword [0x100089f0], 5
jne 0x100013de
mov dword [0x100089c0], 0
xor eax, eax
test eax, eax
jne 0x100013ce
mov dword [0x100089fc], 1
cmp dword [0x100089f0], 2
jne 0x100013ef
xor ecx, ecx
test ecx, ecx
jne 0x100013e7
jmp 0x100013f4
jmp 0x1000133b
jmp 0x100012a4
jmp 0x100015a3
mov edx, dword [ebp - 0x10]
and edx, 0xff
cmp edx, 4
jl 0x1000155e
mov dword [ebp - 0x18], 1
jmp 0x10001422
mov eax, dword [ebp - 0x18]
add eax, 1
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], 2
jg 0x100014c8
cmp dword [ebp - 0x18], 1
jne 0x10001460
mov dword [0x100089f4], 0x22
push 0x4000000
push 0x100089ec
push 0x100089d8
push str..KeyDongle_0
call fcn.10001614
add esp, 0x10
mov dword [ebp - 0x124], eax
jmp 0x1000148c
mov dword [0x100089f4], 0x16
push 0x4000000
push 0x100089ec
push 0x100089d8
push str..PARCLASS.VXD
call fcn.10001614
add esp, 0x10
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x100014c3
mov dword [0x100089c0], 0
mov ecx, dword [0x100089f0]
push ecx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov edx, dword [0x100089d4]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [0x100089ec]
jmp 0x1000160d
jmp 0x10001419
cmp dword [0x100089f0], 5
jne 0x100014eb
mov dword [0x100089c0], 0
xor eax, eax
test eax, eax
jne 0x100014db
mov dword [0x100089fc], 1
cmp dword [0x100089f0], 2
jne 0x1000155c
xor ecx, ecx
test ecx, ecx
jne 0x100014f4
mov edx, dword [0x100089e4]
push edx
mov eax, dword [0x100089e0]
push eax
mov ecx, dword [0x100089dc]
push ecx
mov edx, dword [0x100089d8]
push edx
call 0x100019f0
add esp, 0x10
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x1000155c
xor eax, eax
test eax, eax
jne 0x1000152c
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov dword [0x10008a00], 1
mov ecx, dword [0x100089d4]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x124]
jmp 0x1000160d
jmp 0x100015a3
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
call 0x100019f0
add esp, 0x10
mov dword [ebp - 0x124], eax
cmp dword [ebp - 0x124], 0
je 0x100015a3
mov dword [0x10008a00], 1
mov eax, dword [0x100089d4]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov eax, dword [ebp - 0x124]
jmp 0x1000160d
xor ecx, ecx
test ecx, ecx
jne 0x100015a3
cmp dword [0x100089c0], 0
je 0x100015bc
push 2
call dword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x100015d9
mov edx, dword [0x100089fc]
neg edx
sbb edx, edx
and edx, 0xe0000004
add edx, 0x20000001
push edx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [0x100089d4]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x120
jne 0x100015fa
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, eax
not esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
imul eax, esi
pop esi
mov esp, ebp
pop ebp
ret 0x10