Function at 0x180056cc0
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov r15, r8
mov r12, rdx
mov rsi, rcx
mov r14d, dword [r8 + 4]
mov edi, 0x3b9aca00
cmp dword [r8], 0
movabs rbp, 0x44b82fa09b5a53
je 0x180056d6c
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x18005709f
mov rbx, qword [rsp + 0x58]
mov r8, qword [0x180219970]
test r8, r8
jne 0x180056d53
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18005709f
mov r8, qword [rsp + 0x58]
mov qword [0x180219970], r8
test r8, r8
je 0x18005708a
mov rax, rbx
or rax, r8
shr rax, 0x20
je 0x180056d83
mov rax, rbx
xor edx, edx
div r8
mov rcx, rax
jmp 0x180056d8c
xor eax, eax
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x2c], 0x3b9aca00
mov r13d, 0x3b9aca00
jmp 0x180056de1
mov eax, ebx
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x180056da6
xor edx, edx
div r8
jmp 0x180056dab
xor edx, edx
div r8d
imul r13, rcx, 0x3b9aca00
add r13, rax
mov rax, r13
shr rax, 9
mul rbp
mov rbx, rdx
shr rbx, 0xb
imul eax, ebx, 0x3b9aca00
sub r13d, eax
mov eax, 1
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x2c], 0x5f5e100
mov ebp, dword [r15 + 0x20]
cmp ebp, 0x3b9aca00
mov qword [rsp + 0x50], r12
mov dword [rsp + 0x34], r14d
jne 0x180056e0c
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x180056fb7
jmp 0x180056f9e
mov rdx, qword [r15 + 0x18]
mov rax, qword [r15 + 8]
mov qword [rsp + 0x40], rax
mov eax, dword [r15 + 0x10]
mov dword [rsp + 0x30], eax
movzx edi, byte [r15 + 0x28]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x48], rdx
mov r8d, ebp
call fcn.18011b7a0
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x180056e5d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18005708e
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x70
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18005708e
mov r15, rax
movups xmm0, xmmword [rsp + 0xb8]
movups xmmword [rax + 0x60], xmm0
movups xmm0, xmmword [rsp + 0xa8]
movups xmmword [rax + 0x50], xmm0
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [rax + 0x40], xmm0
movups xmm0, xmmword [rsp + 0x58]
movups xmm1, xmmword [rsp + 0x68]
movups xmm2, xmmword [rsp + 0x78]
movups xmm3, xmmword [rsp + 0x88]
movups xmmword [rax + 0x30], xmm3
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x18005709f
mov r12, qword [rsp + 0x58]
mov r8, qword [0x180219970]
test r8, r8
jne 0x180056f1f
mov qword [rsp + 0x58], 0
lea rcx, [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x18005709f
mov r8, qword [rsp + 0x58]
mov qword [0x180219970], r8
test r8, r8
je 0x18005708a
mov rax, r12
or rax, r8
shr rax, 0x20
je 0x180056f38
mov rax, r12
xor edx, edx
div r8
mov rcx, rax
jmp 0x180056f42
mov eax, r12d
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
mov r14d, edi
shr rdx, 0x20
je 0x180056f5f
xor edx, edx
div r8
jmp 0x180056f64
xor edx, edx
div r8d
imul rdi, rcx, 0x3b9aca00
add rdi, rax
mov rax, rdi
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
mov r12, rdx
shr r12, 0xb
imul eax, r12d, 0x3b9aca00
sub edi, eax
mov rcx, qword [0x180219958]
test rcx, rcx
jne 0x180056fb7
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x18005708e
mov rcx, rax
mov qword [0x180219958], rax
mov r8d, 0x70
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x18005708e
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 0
mov byte [rax + 0x18], 0
mov rcx, qword [rsp + 0x38]
mov qword [rax + 0x20], rcx
mov qword [rax + 0x28], 0
mov dword [rax + 0x38], 0x3b9aca00
mov qword [rax + 0x40], rbx
mov dword [rax + 0x48], r13d
mov qword [rax + 0x50], r12
mov dword [rax + 0x58], edi
mov rcx, qword [rsp + 0x50]
mov qword [rax + 0x60], rcx
mov byte [rax + 0x68], 0
lock inc qword [rax]
jle 0x18005708a
mov qword [rsi], rax
mov qword [rsi + 8], 0
mov ecx, dword [rsp + 0x2c]
mov dword [rsi + 0x10], ecx
xorps xmm0, xmm0
movups xmmword [rsi + 0x18], xmm0
mov ecx, dword [rsp + 0x34]
mov dword [rsi + 0x28], ecx
mov dword [rsi + 0x2c], 0
mov rcx, qword [rsp + 0x48]
mov qword [rsi + 0x30], rcx
mov dword [rsi + 0x38], ebp
mov rcx, qword [rsp + 0x40]
mov qword [rsi + 0x40], rcx
mov ecx, dword [rsp + 0x30]
mov dword [rsi + 0x48], ecx
mov qword [rsi + 0x50], r15
mov byte [rsi + 0x58], r14b
mov byte [rsi + 0x59], 0
mov qword [rsi + 0x60], rax
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2
mov ecx, 8
mov edx, 0x70
call fcn.18017ea70
ud2
call fcn.18016fe79
ud2