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

Disassembly:
jmp 0x100101f0
push 0xffffffffffffffff
push 0x1003a420
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1004b3c8]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x14], ebx
mov eax, dword [ebx + 4]
cmp eax, 1
jne 0x100104e7
mov eax, dword [ebx + 0x10]
shr eax, 0x19
test al, 1
je 0x1001025e
mov eax, dword [ebx + 8]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], 0x19
mov dword [esp + 0x34], 0
call fcn.10005390
add esp, 4
push 0x1004cdcc
mov dword [esp + 0x20], vtable.nfapi::AutoLock.0
mov dword [esp + 0x24], 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebx + 0xc]
mov dword [esp + 0x44], 0
push dword [ebx + 8]
push dword [0x1004ccac]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x100106c6
mov ecx, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea edi, [eax - 8]
mov eax, dword [ebx + 0x10]
shr eax, 4
test al, 1
je 0x100103aa
mov esi, dword [edi + 0x34]
mov dword [esp + 0x18], esi
call ecx
lea ebp, [edi + 0x2c]
mov dword [edi + 0x58], eax
cmp dword [ebp], ebp
je 0x10010386
lea esp, [esp]
mov ebx, dword [ebp]
test esi, esi
jne 0x100102e0
cmp dword [ebx + 0x14], esi
ja 0x10010382
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov dword [ecx + 4], eax
cmp byte [edi + 0xa8], 0
jne 0x1001035e
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebx + 8]
push eax
call fcn.10005390
add esp, 4
mov esi, eax
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x10010374
cmp dword [ebx + 0x14], esi
jne 0x10010331
mov byte [edi + 0xa8], 1
mov dword [edi + 0xac], 0xea60
mov eax, dword [edi + 0x34]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10010342
sub eax, ecx
mov dword [edi + 0x34], eax
jmp 0x10010349
mov dword [edi + 0x34], 0
mov eax, dword [ebx + 0x14]
mov esi, dword [esp + 0x18]
cmp esi, eax
jb 0x10010358
sub esi, eax
jmp 0x1001035a
xor esi, esi
mov dword [esp + 0x18], esi
push 0
push ebx
call fcn.100016c7
add esp, 8
cmp dword [ebp], ebp
jne 0x100102d0
jmp 0x10010382
mov eax, dword [ebp]
mov dword [ebx], eax
mov dword [ebx + 4], ebp
mov dword [eax + 4], ebx
mov dword [ebp], ebx
mov ebx, dword [esp + 0x14]
cmp byte [edi + 0xa2], 0
jne 0x100103a4
cmp dword [ebp], ebp
jne 0x100103a4
push 4
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.1000198d
add esp, 0xc
mov ecx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, dword [ebx + 0x10]
shr eax, 5
test al, 1
je 0x1001049a
mov esi, dword [edi + 0x40]
mov dword [esp + 0x18], esi
call ecx
lea ebp, [edi + 0x38]
mov dword [edi + 0x58], eax
cmp dword [ebp], ebp
je 0x1001047c
mov ebx, dword [ebp]
test esi, esi
jne 0x100103e0
cmp dword [ebx + 0x14], esi
ja 0x10010478
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
mov dword [eax], ecx
mov dword [ecx + 4], eax
cmp byte [edi + 0xa9], 0
jne 0x10010454
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebx + 8]
push eax
call fcn.10005390
add esp, 4
mov esi, eax
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x1001046a
cmp dword [ebx + 0x14], esi
jne 0x10010427
mov byte [edi + 0xa9], 1
mov eax, dword [edi + 0x40]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10010438
sub eax, ecx
mov dword [edi + 0x40], eax
jmp 0x1001043f
mov dword [edi + 0x40], 0
mov eax, dword [ebx + 0x14]
mov esi, dword [esp + 0x18]
cmp esi, eax
jb 0x1001044e
sub esi, eax
jmp 0x10010450
xor esi, esi
mov dword [esp + 0x18], esi
push 0
push ebx
call fcn.100016c7
add esp, 8
cmp dword [ebp], ebp
jne 0x100103d0
jmp 0x10010478
mov eax, dword [ebp]
mov dword [ebx], eax
mov dword [ebx + 4], ebp
mov dword [eax + 4], ebx
mov dword [ebp], ebx
mov ebx, dword [esp + 0x14]
cmp byte [edi + 0xa2], 0
jne 0x1001049a
cmp dword [ebp], ebp
jne 0x1001049a
push 5
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.1000198d
add esp, 0xc
cmp dword [edi + 0x40], 0x100000
ja 0x100104cf
cmp dword [edi + 0x34], 0x100000
ja 0x100104cf
cmp dword [edi + 0x28], 0x40000
ja 0x100104cf
cmp dword [edi + 0x1c], 0x800000
ja 0x100104cf
movzx eax, byte [edi + 0xa0]
push eax
push edi
call fcn.10004c80
add esp, 8
mov eax, dword [ebx + 0x10]
shr eax, 1
test al, 1
je 0x100106c6
push edi
call fcn.10005130
jmp 0x100106c3
cmp eax, 2
jne 0x100106d1
push 0x1004cdcc
mov dword [esp + 0x20], vtable.nfapi::AutoLock.0
mov dword [esp + 0x24], 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [ebx + 0xc]
mov dword [esp + 0x44], 1
push dword [ebx + 8]
push dword [0x1004ccb8]
call fcn.10001776
add esp, 0xc
test eax, eax
je 0x100106c6
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea edi, [eax - 8]
mov eax, dword [ebx + 0x10]
shr eax, 0xc
test al, 1
je 0x100105cb
mov ebx, dword [edi + 0x2c]
lea ebp, [edi + 0x2c]
cmp ebx, ebp
je 0x1001061e
push 0x1004cdcc
call esi
lea eax, [ebx + 8]
push eax
call fcn.10005390
add esp, 4
mov esi, eax
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x100105ac
mov eax, dword [edi + 0x34]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10010589
sub eax, ecx
mov dword [edi + 0x34], eax
jmp 0x10010590
mov dword [edi + 0x34], 0
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push 0
mov dword [eax], ecx
push ebx
mov dword [ecx + 4], eax
call fcn.100016c7
add esp, 8
mov byte [edi + 0xbb], 1
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, dword [esp + 0x14]
cmp dword [ebp], ebp
jne 0x100105cb
push 0xc
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.1000198d
add esp, 0xc
mov eax, dword [ebx + 0x10]
shr eax, 0xd
test al, 1
je 0x1001067e
mov ebp, dword [edi + 0x40]
lea eax, [edi + 0x38]
cmp dword [eax], eax
je 0x1001066e
mov ebx, dword [eax]
push 0x1004cdcc
call esi
lea eax, [ebx + 8]
push eax
call fcn.10005390
add esp, 4
mov esi, eax
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x10010663
mov eax, dword [edi + 0x40]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10010627
sub eax, ecx
mov dword [edi + 0x40], eax
jmp 0x1001062e
mov byte [edi + 0xbb], 0
jmp 0x100105b2
mov dword [edi + 0x40], 0
mov eax, dword [ebx + 0x14]
cmp ebp, eax
jb 0x10010639
sub ebp, eax
jmp 0x1001063b
xor ebp, ebp
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push 0
mov dword [eax], ecx
push ebx
mov dword [ecx + 4], eax
call fcn.100016c7
add esp, 8
lea eax, [edi + 0x38]
test ebp, ebp
je 0x10010666
mov esi, dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
cmp dword [eax], eax
jne 0x100105e7
jmp 0x10010666
lea eax, [edi + 0x38]
mov ebx, dword [esp + 0x14]
cmp dword [eax], eax
jne 0x1001067e
push 0xd
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.1000198d
add esp, 0xc
cmp dword [edi + 0x40], 0x100000
ja 0x100106b3
cmp dword [edi + 0x34], 0x100000
ja 0x100106b3
cmp dword [edi + 0x28], 0x800000
ja 0x100106b3
cmp dword [edi + 0x1c], 0x800000
ja 0x100106b3
movzx eax, byte [edi + 0xb9]
push eax
push edi
call fcn.10004d60
add esp, 8
mov eax, dword [ebx + 0x10]
shr eax, 9
test al, 1
je 0x100106c6
push edi
call fcn.100052c0
add esp, 4
push 0x1004cdcc
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret