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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100e1630
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x1010f16c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [esi + 4]
cmp eax, 1
jne 0x10073b57
mov eax, dword [esi + 0x10]
shr eax, 0x19
test al, 1
je 0x100738a9
mov eax, dword [esi + 8]
mov dword [ebp - 0x2c], eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x30], 0x19
mov dword [ebp - 0x24], 0
call fcn.100773d0
add esp, 4
push 0x1011290c
mov dword [ebp - 0x1c], vtable.nfapi::AutoLock.0
mov dword [ebp - 0x18], 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [esi + 0xc]
mov dword [ebp - 4], 0
push dword [esi + 8]
push dword [0x101128f8]
call fcn.100792f0
add esp, 0xc
test eax, eax
je 0x10073d3b
mov edx, dword [sym.imp.KERNEL32.dll_GetTickCount]
lea ebx, [eax - 8]
mov eax, dword [esi + 0x10]
shr eax, 4
test al, 1
je 0x10073a02
mov ecx, dword [ebx + 0x34]
mov dword [ebp - 0x14], ecx
call edx
mov edi, dword [ebx + 0x2c]
lea ecx, [ebx + 0x2c]
mov dword [ebx + 0x58], eax
cmp edi, ecx
je 0x100739df
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x10073925
cmp dword [edi + 0x14], eax
ja 0x100739dc
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov dword [eax], ecx
mov dword [ecx + 4], eax
cmp byte [ebx + 0xa8], 0
je 0x10073948
push 0
push edi
call fcn.100794c0
mov eax, dword [ebp - 0x14]
add esp, 8
jmp 0x100739bc
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [edi + 8]
push eax
call fcn.100773d0
add esp, 4
mov esi, eax
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x100739cc
cmp dword [edi + 0x14], esi
jne 0x10073986
mov byte [ebx + 0xa8], 1
mov dword [ebx + 0xac], 0xea60
mov eax, dword [ebx + 0x34]
mov ecx, dword [edi + 0x14]
cmp eax, ecx
jb 0x10073997
sub eax, ecx
mov dword [ebx + 0x34], eax
jmp 0x1007399e
mov dword [ebx + 0x34], 0
mov esi, dword [edi + 0x14]
push 0
push edi
call fcn.100794c0
mov eax, dword [ebp - 0x14]
xor edx, edx
sub eax, esi
add esp, 8
cmp dword [ebp - 0x14], esi
cmovb eax, edx
mov dword [ebp - 0x14], eax
mov edi, dword [ebx + 0x2c]
lea ecx, [ebx + 0x2c]
cmp edi, ecx
jne 0x10073918
jmp 0x100739dc
mov eax, dword [ebx + 0x2c]
lea ecx, [ebx + 0x2c]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [eax + 4], edi
mov dword [ecx], edi
mov esi, dword [ebp - 0x10]
cmp byte [ebx + 0xa2], 0
jne 0x100739fc
cmp edi, ecx
jne 0x100739fc
push 4
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.10077540
add esp, 0xc
mov edx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov eax, dword [esi + 0x10]
shr eax, 5
test al, 1
je 0x10073b0a
mov ecx, dword [ebx + 0x40]
mov dword [ebp - 0x14], ecx
call edx
mov edi, dword [ebx + 0x38]
lea ecx, [ebx + 0x38]
mov dword [ebx + 0x58], eax
cmp edi, ecx
je 0x10073aed
mov eax, dword [ebp - 0x14]
nop dword [eax]
test eax, eax
jne 0x10073a3d
cmp dword [edi + 0x14], eax
ja 0x10073aea
mov eax, dword [edi + 4]
mov ecx, dword [edi]
mov dword [eax], ecx
mov dword [ecx + 4], eax
cmp byte [ebx + 0xa9], 0
je 0x10073a60
push 0
push edi
call fcn.100794c0
mov eax, dword [ebp - 0x14]
add esp, 8
jmp 0x10073aca
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [edi + 8]
push eax
call fcn.100773d0
add esp, 4
mov esi, eax
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x10073ada
cmp dword [edi + 0x14], esi
jne 0x10073a94
mov byte [ebx + 0xa9], 1
mov eax, dword [ebx + 0x40]
mov ecx, dword [edi + 0x14]
cmp eax, ecx
jb 0x10073aa5
sub eax, ecx
mov dword [ebx + 0x40], eax
jmp 0x10073aac
mov dword [ebx + 0x40], 0
mov esi, dword [edi + 0x14]
push 0
push edi
call fcn.100794c0
mov eax, dword [ebp - 0x14]
xor edx, edx
sub eax, esi
add esp, 8
cmp dword [ebp - 0x14], esi
cmovb eax, edx
mov dword [ebp - 0x14], eax
mov edi, dword [ebx + 0x38]
lea ecx, [ebx + 0x38]
cmp edi, ecx
jne 0x10073a30
jmp 0x10073aea
mov eax, dword [ebx + 0x38]
lea ecx, [ebx + 0x38]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov dword [eax + 4], edi
mov dword [ecx], edi
mov esi, dword [ebp - 0x10]
cmp byte [ebx + 0xa2], 0
jne 0x10073b0a
cmp edi, ecx
jne 0x10073b0a
push 5
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.10077540
add esp, 0xc
cmp dword [ebx + 0x40], 0x100000
ja 0x10073b3f
cmp dword [ebx + 0x34], 0x100000
ja 0x10073b3f
cmp dword [ebx + 0x28], 0x40000
ja 0x10073b3f
cmp dword [ebx + 0x1c], 0x800000
ja 0x10073b3f
movzx eax, byte [ebx + 0xa0]
push eax
push ebx
call fcn.10077a00
add esp, 8
mov eax, dword [esi + 0x10]
shr eax, 1
test al, 1
je 0x10073d3b
push ebx
call fcn.10075790
jmp 0x10073d38
cmp eax, 2
jne 0x10073d46
push 0x1011290c
mov dword [ebp - 0x1c], vtable.nfapi::AutoLock.0
mov dword [ebp - 0x18], 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
push dword [esi + 0xc]
mov dword [ebp - 4], 1
push dword [esi + 8]
push dword [0x101128fc]
call fcn.100792f0
add esp, 0xc
test eax, eax
je 0x10073d3b
lea edi, [eax - 8]
mov eax, dword [esi + 0x10]
shr eax, 0xc
test al, 1
je 0x10073c39
mov ebx, dword [edi + 0x2c]
lea eax, [edi + 0x2c]
cmp ebx, eax
je 0x10073c1e
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebx + 8]
push eax
call fcn.100773d0
add esp, 4
mov esi, eax
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x10073c13
mov eax, dword [edi + 0x34]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10073bf0
sub eax, ecx
mov dword [edi + 0x34], eax
jmp 0x10073bf7
mov dword [edi + 0x34], 0
mov eax, dword [ebx + 4]
mov ecx, dword [ebx]
push 0
push ebx
mov dword [eax], ecx
mov dword [ecx + 4], eax
call fcn.100794c0
add esp, 8
mov byte [edi + 0xbb], 1
mov ebx, dword [edi + 0x2c]
lea eax, [edi + 0x2c]
mov esi, dword [ebp - 0x10]
jmp 0x10073c25
mov byte [edi + 0xbb], 0
cmp ebx, eax
jne 0x10073c39
push 0xc
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.10077540
add esp, 0xc
mov eax, dword [esi + 0x10]
shr eax, 0xd
test al, 1
je 0x10073cf3
mov eax, dword [edi + 0x40]
mov ebx, dword [edi + 0x38]
mov dword [ebp - 0x14], eax
lea eax, [edi + 0x38]
cmp ebx, eax
je 0x10073cdf
nop dword [eax + eax]
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea eax, [ebx + 8]
push eax
call fcn.100773d0
add esp, 4
mov esi, eax
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test esi, esi
jne 0x10073cd9
mov eax, dword [edi + 0x40]
mov ecx, dword [ebx + 0x14]
cmp eax, ecx
jb 0x10073c99
sub eax, ecx
mov dword [edi + 0x40], eax
jmp 0x10073ca0
mov dword [edi + 0x40], 0
mov eax, dword [ebx + 0x14]
xor esi, esi
mov ecx, dword [ebp - 0x14]
sub ecx, eax
cmp dword [ebp - 0x14], eax
mov eax, dword [ebx + 4]
cmovb ecx, esi
mov esi, ecx
mov ecx, dword [ebx]
push 0
mov dword [eax], ecx
push ebx
mov dword [ebp - 0x14], esi
mov dword [ecx + 4], eax
call fcn.100794c0
add esp, 8
lea eax, [edi + 0x38]
test esi, esi
je 0x10073cdc
mov ebx, dword [eax]
cmp ebx, eax
jne 0x10073c60
jmp 0x10073cdc
lea eax, [edi + 0x38]
mov esi, dword [ebp - 0x10]
cmp dword [eax], eax
jne 0x10073cf3
push 0xd
push dword [esi + 0xc]
push dword [esi + 8]
call fcn.10077540
add esp, 0xc
cmp dword [edi + 0x40], 0x100000
ja 0x10073d28
cmp dword [edi + 0x34], 0x100000
ja 0x10073d28
cmp dword [edi + 0x28], 0x800000
ja 0x10073d28
cmp dword [edi + 0x1c], 0x800000
ja 0x10073d28
movzx eax, byte [edi + 0xb9]
push eax
push edi
call fcn.10077e40
add esp, 8
mov eax, dword [esi + 0x10]
shr eax, 9
test al, 1
je 0x10073d3b
push edi
call fcn.100755f0
add esp, 4
push 0x1011290c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret