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

Disassembly:
jmp 0x180012030
mov r11, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [r11 - 0x48], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov r13, rcx
mov eax, dword [rcx + 8]
cmp eax, 1
jne 0x1800122e9
mov eax, dword [rcx + 0x18]
shr eax, 0x19
xor r15d, r15d
test al, 1
je 0x18001208d
mov rax, qword [rcx + 0x10]
mov qword [r11 - 0x3c], rax
mov dword [rsp + 0x28], 0x19
mov dword [r11 - 0x34], r15d
lea rcx, [r11 - 0x40]
call fcn.180005bc0
lea rax, vtable.nfapi::AutoLock.0
mov qword [rsp + 0x28], rax
lea r12, [0x18005a7d0]
mov qword [rsp + 0x30], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rdx, qword [r13 + 0x10]
mov rcx, qword [0x18005a698]
call fcn.1800015af
test rax, rax
je 0x1800122e4
lea rdi, [rax - 0x10]
mov eax, dword [r13 + 0x18]
shr eax, 4
test al, 1
je 0x1800121ba
mov ebp, dword [rdi + 0x60]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0x90], eax
lea r14, [rdi + 0x50]
cmp qword [r14], r14
je 0x18001219e
mov rsi, qword [r14]
test ebp, ebp
jne 0x180012107
cmp dword [rsi + 0x1c], ebp
ja 0x18001219e
mov rdx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax], rdx
mov qword [rdx + 8], rax
cmp byte [rdi + 0xe0], 0
jne 0x180012178
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsi + 0x10]
call fcn.180005bc0
mov ebx, eax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ebx, ebx
jne 0x18001218d
cmp dword [rsi + 0x1c], ebx
jne 0x180012155
mov byte [rdi + 0xe0], 1
mov dword [rdi + 0xe4], 0xea60
mov eax, dword [rdi + 0x60]
mov ecx, dword [rsi + 0x1c]
cmp eax, ecx
jb 0x180012166
sub eax, ecx
mov dword [rdi + 0x60], eax
jmp 0x18001216a
mov dword [rdi + 0x60], r15d
mov eax, dword [rsi + 0x1c]
cmp ebp, eax
jb 0x180012175
sub ebp, eax
jmp 0x180012178
mov ebp, r15d
xor edx, edx
mov rcx, rsi
call fcn.1800017fd
cmp qword [r14], r14
jne 0x1800120f7
jmp 0x18001219e
mov rax, qword [r14]
mov qword [rsi], rax
mov qword [rsi + 8], r14
mov qword [rax + 8], rsi
mov qword [r14], rsi
cmp byte [rdi + 0xda], 0
jne 0x1800121ba
cmp qword [r14], r14
jne 0x1800121ba
mov edx, 4
mov rcx, qword [r13 + 0x10]
call fcn.180001a50
mov eax, dword [r13 + 0x18]
shr eax, 5
test al, 1
je 0x18001229e
mov ebp, dword [rdi + 0x78]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rdi + 0x90], eax
lea r14, [rdi + 0x68]
cmp qword [r14], r14
je 0x180012282
mov rsi, qword [r14]
test ebp, ebp
jne 0x1800121f5
cmp dword [rsi + 0x1c], ebp
ja 0x180012282
mov rdx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax], rdx
mov qword [rdx + 8], rax
cmp byte [rdi + 0xe1], 0
jne 0x18001225c
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsi + 0x10]
call fcn.180005bc0
mov ebx, eax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ebx, ebx
jne 0x180012271
cmp dword [rsi + 0x1c], ebx
jne 0x180012239
mov byte [rdi + 0xe1], 1
mov eax, dword [rdi + 0x78]
mov ecx, dword [rsi + 0x1c]
cmp eax, ecx
jb 0x18001224a
sub eax, ecx
mov dword [rdi + 0x78], eax
jmp 0x18001224e
mov dword [rdi + 0x78], r15d
mov eax, dword [rsi + 0x1c]
cmp ebp, eax
jb 0x180012259
sub ebp, eax
jmp 0x18001225c
mov ebp, r15d
xor edx, edx
mov rcx, rsi
call fcn.1800017fd
cmp qword [r14], r14
jne 0x1800121e5
jmp 0x180012282
mov rax, qword [r14]
mov qword [rsi], rax
mov qword [rsi + 8], r14
mov qword [rax + 8], rsi
mov qword [r14], rsi
cmp byte [rdi + 0xda], 0
jne 0x18001229e
cmp qword [r14], r14
jne 0x18001229e
mov edx, 5
mov rcx, qword [r13 + 0x10]
call fcn.180001a50
cmp dword [rdi + 0x78], 0x100000
ja 0x1800122d1
cmp dword [rdi + 0x60], 0x100000
ja 0x1800122d1
cmp dword [rdi + 0x48], 0x40000
ja 0x1800122d1
cmp dword [rdi + 0x30], 0x800000
ja 0x1800122d1
movzx edx, byte [rdi + 0xd8]
mov rcx, rdi
call fcn.180005310
mov eax, dword [r13 + 0x18]
shr eax, 1
test al, 1
je 0x1800122e4
mov rcx, rdi
call fcn.1800058a0
nop
jmp 0x1800124a2
cmp eax, 2
jne 0x1800124ab
lea rax, vtable.nfapi::AutoLock.0
mov qword [rsp + 0x28], rax
lea r12, [0x18005a7d0]
mov qword [rsp + 0x30], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
mov rdx, qword [r13 + 0x10]
mov rcx, qword [0x18005a6a8]
call fcn.1800015af
test rax, rax
je 0x1800124a2
lea rdi, [rax - 0x10]
mov eax, dword [r13 + 0x18]
shr eax, 0xc
xor r15d, r15d
test al, 1
je 0x1800123bc
lea r14, [rdi + 0x50]
mov rsi, qword [r14]
cmp rsi, r14
je 0x1800123a2
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsi + 0x10]
call fcn.180005bc0
mov ebx, eax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ebx, ebx
jne 0x1800123a9
mov eax, dword [rdi + 0x60]
mov ecx, dword [rsi + 0x1c]
cmp eax, ecx
jb 0x18001237d
sub eax, ecx
mov dword [rdi + 0x60], eax
jmp 0x180012381
mov dword [rdi + 0x60], r15d
mov rdx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax], rdx
mov qword [rdx + 8], rax
xor edx, edx
mov rcx, rsi
call fcn.1800017fd
mov byte [rdi + 0xf3], 1
jmp 0x1800123a9
mov byte [rdi + 0xf3], r15b
cmp qword [r14], r14
jne 0x1800123bc
mov edx, 0xc
mov rcx, qword [r13 + 0x10]
call fcn.180001a50
mov eax, dword [r13 + 0x18]
shr eax, 0xd
test al, 1
je 0x18001245b
mov ebp, dword [rdi + 0x78]
lea r14, [rdi + 0x68]
cmp qword [r14], r14
je 0x18001244d
nop word [rax + rax]
mov rsi, qword [r14]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rcx, [rsi + 0x10]
call fcn.180005bc0
mov ebx, eax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
test ebx, ebx
jne 0x180012448
mov eax, dword [rdi + 0x78]
mov ecx, dword [rsi + 0x1c]
cmp eax, ecx
jb 0x180012415
sub eax, ecx
mov dword [rdi + 0x78], eax
jmp 0x180012419
mov dword [rdi + 0x78], r15d
mov eax, dword [rsi + 0x1c]
cmp ebp, eax
jb 0x180012424
sub ebp, eax
jmp 0x180012427
mov ebp, r15d
mov rdx, qword [rsi]
mov rax, qword [rsi + 8]
mov qword [rax], rdx
mov qword [rdx + 8], rax
xor edx, edx
mov rcx, rsi
call fcn.1800017fd
test ebp, ebp
je 0x180012448
cmp qword [r14], r14
jne 0x1800123e0
cmp qword [r14], r14
jne 0x18001245b
mov edx, 0xd
mov rcx, qword [r13 + 0x10]
call fcn.180001a50
cmp dword [rdi + 0x78], 0x100000
ja 0x18001248e
cmp dword [rdi + 0x60], 0x100000
ja 0x18001248e
cmp dword [rdi + 0x48], 0x800000
ja 0x18001248e
cmp dword [rdi + 0x30], 0x800000
ja 0x18001248e
movzx edx, byte [rdi + 0xf1]
mov rcx, rdi
call fcn.1800053f0
mov eax, dword [r13 + 0x18]
shr eax, 9
test al, 1
je 0x1800124a2
mov rcx, rdi
call fcn.180005ab0
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
ret