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

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
mov qword [rbp - 0x19], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov rbx, rcx
lea rax, vtable.nfapi::AutoLock.0
mov qword [rbp - 0x11], rax
lea r12, [0x1802c7458]
mov qword [rbp - 9], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp qword [0x1802c7d00], 0
je 0x18006fb00
mov ecx, dword [rbx]
cmp ecx, 0xb
jg 0x18006f894
je 0x18006f77f
test ecx, ecx
je 0x18006f61a
sub ecx, 1
je 0x18006f5b4
sub ecx, 1
je 0x18006f465
sub ecx, 1
je 0x18006f326
sub ecx, 1
je 0x18006f2ff
sub ecx, 1
je 0x18006f2d8
sub ecx, 3
je 0x18006f2a4
sub ecx, 1
je 0x18006f23e
cmp ecx, 1
jne 0x18006fb00
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c98]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rdi, qword [r8 + rdx*8 + 4]
jmp 0x18006f14e
cmp qword [rdi], r9
je 0x18006f153
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x18006f145
test rdi, rdi
jne 0x18006f18a
xor edx, edx
lea r8d, [rdi + 0x22]
lea rcx, [rbp + 0xf]
call fcn.1801c27d0
movzx eax, word [rbx + 0x10]
mov word [rbp + 0x13], ax
lea rdx, [rbp + 0xf]
mov rcx, qword [rbx + 4]
call fcn.18006ec4c
mov rdi, rax
test rax, rax
je 0x18006fb00
jmp 0x18006f18e
add rdi, 0xfffffffffffffff0
lea r14, [rdi + 0x20]
xor edx, edx
mov ecx, 0x20027
call fcn.18006d504
mov rsi, rax
test rax, rax
je 0x18006fb00
mov rcx, qword [rbx + 4]
mov qword [rax + 0x14], rcx
mov ecx, dword [rbx]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0xc]
mov dword [rax + 0x1c], ecx
mov eax, dword [rbx + 0xc]
test eax, eax
je 0x18006f1d7
mov r8d, eax
lea rcx, [rsi + 0x20]
lea rdx, [rbx + 0x10]
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x30], eax
mov rax, qword [r14 + 8]
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r14 + 8], rsi
mov eax, 0x100000
cmp dword [rdi + 0x78], eax
jae 0x18006f20a
cmp dword [rdi + 0x60], eax
jae 0x18006f20a
mov eax, 0x800000
cmp dword [rdi + 0x48], eax
jae 0x18006f20a
cmp dword [rdi + 0x30], eax
jb 0x18006f217
mov edx, 1
mov rcx, rdi
call fcn.180070408
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
cmp dword [rbx + 0xc], 0x10
jne 0x18006f27d
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c98]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rax, qword [r8 + rdx*8 + 4]
jmp 0x18006f26a
cmp qword [rax], r9
je 0x18006f26f
mov rax, qword [rax + 8]
test rax, rax
jne 0x18006f261
test rax, rax
je 0x18006f27d
movups xmm0, xmmword [rbx + 0x10]
movdqu xmmword [rax + 0x6c], xmm0
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
lea rdx, [rbx + 0x10]
mov rcx, qword [rbx + 4]
call fcn.18006ec4c
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.180071524
nop
jmp 0x18006faf6
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.180071524
nop
jmp 0x18006faf6
mov r10, qword [rbx + 4]
mov r8, qword [0x1802c7c78]
mov ecx, dword [r8]
xor edx, edx
mov rax, r10
div rcx
mov rdi, qword [r8 + rdx*8 + 4]
jmp 0x18006f34c
cmp qword [rdi], r10
je 0x18006f351
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x18006f343
test rdi, rdi
je 0x18006f45b
lea r14, [rdi + 0x28]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0x80], eax
mov ecx, dword [rbx + 0xc]
test ecx, ecx
je 0x18006f3aa
cmp qword [r14], r14
je 0x18006f3aa
mov rsi, qword [r14 + 8]
mov r9d, dword [rsi + 0x1c]
lea eax, [r9 + rcx]
cmp eax, 0x20000
ja 0x18006f3aa
mov r8d, ecx
lea rdx, [rbx + 0x10]
lea rcx, [r9 + 0x20]
add rcx, rsi
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rsi + 0x1c], eax
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x38], eax
jmp 0x18006f404
xor edx, edx
mov ecx, 0x20027
call fcn.18006d504
mov rsi, rax
test rax, rax
je 0x18006fb00
mov rcx, qword [rbx + 4]
mov qword [rax + 0x14], rcx
mov ecx, dword [rbx]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0xc]
mov dword [rax + 0x1c], ecx
mov eax, dword [rbx + 0xc]
test eax, eax
je 0x18006f3ef
mov r8d, eax
lea rdx, [rbx + 0x10]
lea rcx, [rsi + 0x20]
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x38], eax
mov rax, qword [r14 + 8]
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r14 + 8], rsi
mov eax, 0x100000
cmp dword [rdi + 0x68], eax
jae 0x18006f426
cmp dword [rdi + 0x50], eax
jae 0x18006f426
cmp dword [rdi + 0x38], 0x40000
jae 0x18006f426
mov eax, 0x800000
cmp dword [rdi + 0x20], eax
jb 0x18006f434
mov edx, 1
lea rcx, [rdi - 0x10]
call fcn.180070078
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
mov ecx, 3
jmp 0x18006f59f
mov r10, qword [rbx + 4]
mov r8, qword [0x1802c7c78]
mov ecx, dword [r8]
xor edx, edx
mov rax, r10
div rcx
mov rdi, qword [r8 + rdx*8 + 4]
jmp 0x18006f48b
cmp qword [rdi], r10
je 0x18006f490
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x18006f482
test rdi, rdi
je 0x18006f59a
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0x80], eax
lea r14, [rdi + 0x10]
mov ecx, dword [rbx + 0xc]
test ecx, ecx
je 0x18006f4e9
cmp qword [r14], r14
je 0x18006f4e9
mov rsi, qword [r14 + 8]
mov r9d, dword [rsi + 0x1c]
lea eax, [r9 + rcx]
cmp eax, 0x20000
ja 0x18006f4e9
mov r8d, ecx
lea rdx, [rbx + 0x10]
lea rcx, [r9 + 0x20]
add rcx, rsi
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rsi + 0x1c], eax
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x20], eax
jmp 0x18006f543
xor edx, edx
mov ecx, 0x20027
call fcn.18006d504
mov rsi, rax
test rax, rax
je 0x18006fb00
mov rcx, qword [rbx + 4]
mov qword [rax + 0x14], rcx
mov ecx, dword [rbx]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0xc]
mov dword [rax + 0x1c], ecx
mov eax, dword [rbx + 0xc]
test eax, eax
je 0x18006f52e
mov r8d, eax
lea rdx, [rbx + 0x10]
lea rcx, [rsi + 0x20]
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x20], eax
mov rax, qword [r14 + 8]
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r14 + 8], rsi
mov eax, 0x100000
cmp dword [rdi + 0x68], eax
jae 0x18006f565
cmp dword [rdi + 0x50], eax
jae 0x18006f565
cmp dword [rdi + 0x38], 0x40000
jae 0x18006f565
mov eax, 0x800000
cmp dword [rdi + 0x20], eax
jb 0x18006f573
mov edx, 1
lea rcx, [rdi - 0x10]
call fcn.180070078
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
mov ecx, 2
mov rdx, r10
mov r9d, dword [rbx + 0xc]
lea r8, [rbx + 0x10]
call fcn.180070130
jmp 0x18006fb00
cmp dword [rbx + 0xc], 0x10
jne 0x18006f5f3
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c78]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rax, qword [r8 + rdx*8 + 4]
jmp 0x18006f5e0
cmp qword [rax], r9
je 0x18006f5e5
mov rax, qword [rax + 8]
test rax, rax
jne 0x18006f5d7
test rax, rax
je 0x18006f5f3
movups xmm0, xmmword [rbx + 0x10]
movdqu xmmword [rax + 0x6e], xmm0
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c78]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rax, qword [r8 + rdx*8 + 4]
jmp 0x18006f640
cmp qword [rax], r9
je 0x18006f645
mov rax, qword [rax + 8]
test rax, rax
jne 0x18006f637
test rax, rax
je 0x18006f690
lea rdi, [rax - 0x10]
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x94], xmm0
movups xmm1, xmmword [rbx + 0x20]
movups xmmword [rdi + 0xa4], xmm1
movups xmm0, xmmword [rbx + 0x30]
movups xmmword [rdi + 0xb4], xmm0
movups xmm1, xmmword [rbx + 0x40]
movups xmmword [rdi + 0xc4], xmm1
movzx eax, word [rbx + 0x50]
mov word [rdi + 0xd4], ax
mov al, byte [rbx + 0x52]
mov byte [rdi + 0xd6], al
jmp 0x18006f6a8
lea rdx, [rbx + 0x10]
mov rcx, r9
call fcn.18006ea1c
mov rdi, rax
test rax, rax
je 0x18006fb00
mov byte [rdi + 0xdd], 1
mov r14, qword [rbx + 4]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp qword [0x1802c0c00], 0xffffffffffffffff
je 0x18006f74f
xor edx, edx
lea r15d, [rdx + 0x2c]
mov ecx, r15d
call fcn.18006d504
mov rsi, rax
test rax, rax
je 0x18006f74f
mov r8d, r15d
xor edx, edx
mov rcx, rax
call fcn.1801c27d0
mov qword [rsi + 4], r14
mov dword [rsi + 0xc], 0x1c
and qword [rsp + 0x38], 0
lea rax, [rbp + 0x6f]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rsi
mov r9d, r15d
mov r8, rsi
mov edx, 0x220194
mov rcx, qword [0x1802c0c00]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x18006f747
cmp dword [rbp + 0x6f], 0
jbe 0x18006f747
lea rdx, [rsi + 0x10]
lea rcx, [rdi + 0x9f]
lea r8d, [r15 - 0x10]
call fcn.1801c2370
mov rcx, rsi
call fcn.18006d5c0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c98]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rdi, qword [r8 + rdx*8 + 4]
jmp 0x18006f7a5
cmp qword [rdi], r9
je 0x18006f7aa
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x18006f79c
test rdi, rdi
jne 0x18006f7e0
xor edx, edx
lea r8d, [rdi + 0x22]
lea rcx, [rbp + 0xf]
call fcn.1801c27d0
movzx eax, word [rbx + 0x10]
mov word [rbp + 0x13], ax
lea rdx, [rbp + 0xf]
mov rcx, qword [rbx + 4]
call fcn.18006ec4c
mov rdi, rax
test rax, rax
jne 0x18006f7e4
jmp 0x18006fb00
add rdi, 0xfffffffffffffff0
lea r14, [rdi + 0x38]
xor edx, edx
mov ecx, 0x20027
call fcn.18006d504
mov rsi, rax
test rax, rax
je 0x18006fb00
mov rcx, qword [rbx + 4]
mov qword [rax + 0x14], rcx
mov ecx, dword [rbx]
mov dword [rax + 0x10], ecx
mov ecx, dword [rbx + 0xc]
mov dword [rax + 0x1c], ecx
mov eax, dword [rbx + 0xc]
test eax, eax
je 0x18006f82d
mov r8d, eax
lea rcx, [rsi + 0x20]
lea rdx, [rbx + 0x10]
call fcn.1801c2370
mov eax, dword [rbx + 0xc]
add dword [rdi + 0x48], eax
mov rax, qword [r14 + 8]
mov qword [rsi], r14
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r14 + 8], rsi
mov eax, 0x100000
cmp dword [rdi + 0x78], eax
jae 0x18006f860
cmp dword [rdi + 0x60], eax
jae 0x18006f860
mov eax, 0x800000
cmp dword [rdi + 0x48], eax
jae 0x18006f860
cmp dword [rdi + 0x30], eax
jb 0x18006f86d
mov edx, 1
mov rcx, rdi
call fcn.180070408
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
sub ecx, 0xc
je 0x18006fad4
sub ecx, 1
je 0x18006fab0
sub ecx, 6
je 0x18006fa7f
sub ecx, 1
je 0x18006f9f4
sub ecx, 5
je 0x18006f9c7
sub ecx, 2
je 0x18006f987
sub ecx, 1
je 0x18006f930
cmp ecx, 1
jne 0x18006fb00
lea rdi, [rbx + 0x10]
lea rsi, [rbx + 0x26]
mov ebx, dword [rbx + 0xc]
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rax, qword [0x1802c69b0]
test rax, rax
je 0x18006f916
mov r8, rdi
lea edx, [rbx - 0x16]
mov rcx, rsi
call qword [rax + htons]
jmp 0x18006f92b
mov r9, rdi
lea r8d, [rbx - 0x16]
mov rdx, rsi
mov ecx, 0x1d
call fcn.180070700
nop
jmp 0x18006faf6
lea rdi, [rbx + 0x10]
lea rsi, [rbx + 0x26]
mov ebx, dword [rbx + 0xc]
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rax, qword [0x1802c69b0]
test rax, rax
je 0x18006f96d
mov r8, rdi
lea edx, [rbx - 0x16]
mov rcx, rsi
call qword [rax]
jmp 0x18006f982
mov r9, rdi
lea r8d, [rbx - 0x16]
mov rdx, rsi
mov ecx, 0x1c
call fcn.180070700
nop
jmp 0x18006faf6
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c78]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rax, qword [r8 + rdx*8 + 4]
jmp 0x18006f9ad
cmp qword [rax], r9
je 0x18006f9b2
mov rax, qword [rax + 8]
test rax, rax
jne 0x18006f9a4
test rax, rax
je 0x18006fb00
mov byte [rax + 0xcf], 1
jmp 0x18006fb00
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov edx, 0x19
mov rcx, qword [rbx + 4]
call fcn.18006e9e0
nop
jmp 0x18006faf6
mov r9, qword [rbx + 4]
mov r8, qword [0x1802c7c98]
mov ecx, dword [r8]
xor edx, edx
mov rax, r9
div rcx
mov rcx, qword [r8 + rdx*8 + 4]
jmp 0x18006fa1a
cmp qword [rcx], r9
je 0x18006fa1f
mov rcx, qword [rcx + 8]
test rcx, rcx
jne 0x18006fa11
test rcx, rcx
je 0x18006fa5b
movups xmm0, xmmword [rbx + 0x10]
movups xmmword [rcx + 0x9e], xmm0
movups xmm1, xmmword [rbx + 0x20]
movups xmmword [rcx + 0xae], xmm1
movups xmm0, xmmword [rbx + 0x30]
movups xmmword [rcx + 0xbe], xmm0
movups xmm1, xmmword [rbx + 0x40]
movups xmmword [rcx + 0xce], xmm1
movzx eax, word [rbx + 0x50]
mov word [rcx + 0xde], ax
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
lea rdx, [rbx + 0x10]
mov rcx, qword [rbx + 4]
call fcn.18006ea1c
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.1800719b4
nop
jmp 0x18006faf6
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.180071524
nop
jmp 0x18006faf6
lea rax, vtable.nfapi::AutoUnlock.0
mov qword [rbp - 1], rax
mov qword [rbp + 7], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
mov rdx, rbx
call fcn.180071524
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rcx, r12
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]