Function at 0x1800eef90
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, 0x828
movaps xmmword [rsp + 0x810], xmm6
mov r13, rdx
mov r14, rcx
mov rsi, qword [rdx]
mov rdi, qword [rdx + 8]
cmp rsi, 2
jne 0x1800eeffa
mov qword [r14 + 8], rdi
mov qword [r14], 3
mov rcx, qword [r13 + 0x138]
lock dec qword [rcx]
jne 0x1800f1aed
movaps xmm6, xmmword [rsp + 0x810]
add rsp, 0x828
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.1800eee80
lea rdx, [r13 + 0x10]
lea rcx, [rsp + 0x710]
mov r8d, 0x100
call fcn.180171d20
mov rbx, qword [r13 + 0x110]
mov rax, qword [r13 + 0x118]
mov qword [rsp + 0x38], rax
mov rax, qword [r13 + 0x120]
mov qword [rsp + 0x30], rax
mov rbp, qword [r13 + 0x128]
mov rax, qword [r13 + 0x130]
mov qword [rsp + 0x48], rax
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800ef068
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800f02cd
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0xd0
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800f02cd
mov r12, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x30], 0
mov qword [rax + 0x38], 4
lock inc qword [rax]
jle 0x1800f164b
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x98], rdi
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x710]
mov r8d, 0x100
call fcn.180171d20
mov r15d, 2
cmp rbx, 2
mov qword [rsp + 0x40], r13
mov qword [rsp + 0x270], r14
je 0x1800ef33a
test rbx, rbx
je 0x1800ef10f
mov r13, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x48]
mov rdx, rbp
jmp 0x1800ef23c
lea rcx, [rsp + 0x420]
mov rdx, 0xfffffffffffffffe
xor r8d, r8d
call fcn.180053960
mov rax, qword [rsp + 0x440]
mov qword [rsp + 0x6a0], rax
movups xmm0, xmmword [rsp + 0x420]
movups xmm1, xmmword [rsp + 0x430]
movaps xmmword [rsp + 0x690], xmm1
movaps xmmword [rsp + 0x680], xmm0
movups xmm0, xmmword [rsp + 0x448]
movaps xmmword [rsp + 0x2d0], xmm0
movups xmm0, xmmword [rsp + 0x458]
movaps xmmword [rsp + 0x2e0], xmm0
movups xmm0, xmmword [rsp + 0x468]
movaps xmmword [rsp + 0x2f0], xmm0
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800ef1ab
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800f09d1
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x30
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800f09d1
mov rdi, rax
movaps xmm0, xmmword [rsp + 0x2d0]
movaps xmm1, xmmword [rsp + 0x2e0]
movaps xmm2, xmmword [rsp + 0x2f0]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov rax, qword [rsp + 0x6a0]
mov qword [rsp + 0x580], rax
movaps xmm0, xmmword [rsp + 0x680]
movaps xmm1, xmmword [rsp + 0x690]
movaps xmmword [rsp + 0x570], xmm1
movaps xmmword [rsp + 0x560], xmm0
mov r15d, 1
lea rax, [0x1801ddd48]
xor r13d, r13d
test rbp, rbp
je 0x1800eff6a
mov rbp, rax
xor r14d, r14d
mov rdx, qword [rsp + 0x48]
lea rsi, [rsp + 0xb8]
movups xmm0, xmmword [0x1801ddfd8]
movaps xmmword [rsp + 0x690], xmm0
movups xmm0, xmmword [0x1801ddfc8]
movaps xmmword [rsp + 0x680], xmm0
lea rbx, [rsp + 0x420]
mov rcx, rbx
call fcn.180053630
lea rcx, [rsp + 0x2d0]
lea r8, [rsp + 0x680]
mov rdx, rsi
mov r9, rbx
call fcn.18007a130
cmp byte [rsp + 0x2f0], 2
je 0x1800ef2ba
lea rcx, [rsp + 0x2e8]
mov rax, qword [rsp + 0x2d0]
mov rdx, qword [rsp + 0x2d8]
mov r8, qword [rsp + 0x2e0]
call qword [rax + 0x10]
mov rsi, qword [rsp + 0x90]
test rsi, rsi
je 0x1800ef2d4
lea rcx, [rsp + 0x98]
call fcn.180081050
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], r13
mov qword [rsp + 0xa0], rdi
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xb0], r14
movaps xmm0, xmmword [rsp + 0x560]
movaps xmm1, xmmword [rsp + 0x570]
movaps xmmword [rsp + 0x420], xmm0
movaps xmmword [rsp + 0x430], xmm1
mov rax, qword [rsp + 0x580]
mov qword [rsp + 0x440], rax
mov esi, 1
mov r13, qword [rsp + 0x40]
lea rax, [rsp + 0x98]
movups xmm0, xmmword [rax + 0x70]
movaps xmmword [rsp + 0x5d0], xmm0
movups xmm0, xmmword [rax + 0x60]
movaps xmmword [rsp + 0x5c0], xmm0
movups xmm0, xmmword [rax + 0x50]
movaps xmmword [rsp + 0x5b0], xmm0
movups xmm0, xmmword [rax + 0x40]
movaps xmmword [rsp + 0x5a0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmm3, xmmword [rax + 0x30]
movaps xmmword [rsp + 0x590], xmm3
movaps xmmword [rsp + 0x580], xmm2
movaps xmmword [rsp + 0x570], xmm1
movaps xmmword [rsp + 0x560], xmm0
mov eax, dword [rsp + 0x118]
mov dword [rsp + 0x7c], eax
mov eax, dword [rsp + 0x11c]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x78], eax
mov eax, dword [rsp + 0x124]
mov dword [rsp + 0x6c], eax
mov rbp, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x130]
mov rcx, qword [rsp + 0x138]
movzx eax, word [rsp + 0x140]
mov word [rsp + 0x26], ax
movzx eax, word [rsp + 0x142]
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0x144]
mov dword [rsp + 0x74], eax
movzx eax, byte [rsp + 0x168]
mov byte [rsp + 0x290], al
mov eax, dword [rsp + 0x16c]
mov dword [rsp + 0x83], eax
mov eax, dword [rsp + 0x169]
mov dword [rsp + 0x80], eax
mov eax, dword [rsp + 0x19c]
mov dword [rsp + 0x600], eax
mov rax, qword [rsp + 0x440]
mov qword [rsp + 0x380], rax
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0x68], eax
movaps xmm0, xmmword [rsp + 0x420]
movaps xmm1, xmmword [rsp + 0x430]
movaps xmmword [rsp + 0x370], xmm1
movaps xmmword [rsp + 0x360], xmm0
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x388], rax
mov eax, dword [rsp + 0x14c]
mov dword [rsp + 0x64], eax
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x390], rax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x60], eax
mov qword [rsp + 0x398], r15
mov eax, dword [rsp + 0x154]
mov dword [rsp + 0x5c], eax
movups xmm0, xmmword [rsp + 0x158]
movaps xmmword [rsp + 0x280], xmm0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x3a0], rax
mov r14, qword [rsp + 0x170]
movups xmm0, xmmword [rsp + 0x18c]
movaps xmmword [rsp + 0x5f0], xmm0
movups xmm0, xmmword [rsp + 0x17c]
movaps xmmword [rsp + 0x5e0], xmm0
mov r15d, dword [rsp + 0x178]
mov qword [rsp + 0x38], rcx
test rcx, rcx
je 0x1800ef565
js 0x1800f164b
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800ef53f
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800ef554
mov rcx, rax
mov qword [0x18021a960], rax
xor edx, edx
mov r8, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, rax
test rax, rax
jne 0x1800ef56a
mov ecx, 1
mov rdx, qword [rsp + 0x38]
call fcn.18017f950
ud2
mov ecx, 1
mov qword [rsp + 0x268], rcx
mov rdx, rbp
mov r8, qword [rsp + 0x38]
call fcn.180171d20
movzx eax, byte [rsp + 0x290]
mov byte [rsp + 0x3c0], al
movaps xmm0, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0x3b0], xmm0
mov dword [rsp + 0x30], r15d
mov rax, r14
cmp r15d, 0x3b9aca00
jne 0x1800ef5c1
mov eax, dword [r13 + 0x148]
mov dword [rsp + 0x30], eax
mov rax, qword [r13 + 0x140]
mov qword [rsp + 0x88], rax
mov rax, qword [r13 + 0x138]
mov qword [rsp + 0x28], rax
mov r13, qword [rax + 0x10]
test r13, r13
je 0x1800f164b
mov rdi, r12
movaps xmm0, xmmword [rsp + 0x560]
movaps xmm1, xmmword [rsp + 0x570]
movaps xmm2, xmmword [rsp + 0x580]
movaps xmm3, xmmword [rsp + 0x590]
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0xa0], xmm1
movaps xmmword [rsp + 0xb0], xmm2
movaps xmmword [rsp + 0xc0], xmm3
movaps xmm0, xmmword [rsp + 0x5a0]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmm0, xmmword [rsp + 0x5b0]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0x5c0]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rsp + 0x5d0]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0x2d0], xmm0
movzx eax, byte [rsp + 0x290]
mov byte [rsp + 0x2e0], al
mov eax, dword [rsp + 0x80]
mov ecx, dword [rsp + 0x83]
mov dword [rsp + 0x683], ecx
mov dword [rsp + 0x680], eax
mov eax, dword [rsp + 0x600]
mov dword [rsp + 0x440], eax
movaps xmm0, xmmword [rsp + 0x5e0]
movaps xmm1, xmmword [rsp + 0x5f0]
movaps xmmword [rsp + 0x430], xmm1
movaps xmmword [rsp + 0x420], xmm0
mov rax, qword [r13 + 0x68]
nop word cs:[rax + rax]
test al, 1
jne 0x1800ef91a
cmp rax, 0xfffffffffffffffe
je 0x1800f02de
lea rcx, [rax + 2]
lock cmpxchg qword [r13 + 0x68], rcx
jne 0x1800ef6e0
lea rcx, [r13 + 0x30]
mov qword [rsp + 0x48], r14
mov r14, rbp
mov ebp, 1
mov r12, rbx
mov ebx, 1
lock xadd qword [r13 + 0x38], rbx
mov rdx, rbx
call fcn.18008dd10
and ebx, 0x1f
imul rcx, rbx, 0x118
mov qword [rax + rcx], rsi
movaps xmm0, xmmword [rsp + 0x90]
movaps xmm1, xmmword [rsp + 0xa0]
movaps xmm2, xmmword [rsp + 0xb0]
movaps xmm3, xmmword [rsp + 0xc0]
movups xmmword [rax + rcx + 8], xmm0
movups xmmword [rax + rcx + 0x18], xmm1
movups xmmword [rax + rcx + 0x28], xmm2
movups xmmword [rax + rcx + 0x38], xmm3
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rax + rcx + 0x48], xmm0
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rax + rcx + 0x58], xmm0
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rax + rcx + 0x68], xmm0
movaps xmm0, xmmword [rsp + 0x100]
movups xmmword [rax + rcx + 0x78], xmm0
mov edx, dword [rsp + 0x7c]
mov dword [rax + rcx + 0x88], edx
mov edx, dword [rsp + 0x70]
mov dword [rax + rcx + 0x8c], edx
mov edx, dword [rsp + 0x78]
mov dword [rax + rcx + 0x90], edx
mov edx, dword [rsp + 0x6c]
mov dword [rax + rcx + 0x94], edx
mov qword [rax + rcx + 0x98], r14
mov qword [rax + rcx + 0xa0], r12
mov rdx, qword [rsp + 0x38]
mov qword [rax + rcx + 0xa8], rdx
movzx edx, word [rsp + 0x26]
mov word [rax + rcx + 0xb0], dx
movzx edx, word [rsp + 0x24]
mov word [rax + rcx + 0xb2], dx
mov edx, dword [rsp + 0x74]
mov dword [rax + rcx + 0xb4], edx
mov edx, dword [rsp + 0x68]
mov dword [rax + rcx + 0xb8], edx
mov edx, dword [rsp + 0x64]
mov dword [rax + rcx + 0xbc], edx
mov edx, dword [rsp + 0x60]
mov dword [rax + rcx + 0xc0], edx
mov edx, dword [rsp + 0x5c]
mov dword [rax + rcx + 0xc4], edx
movzx edx, byte [rsp + 0x2e0]
mov byte [rax + rcx + 0xd8], dl
movaps xmm0, xmmword [rsp + 0x2d0]
movups xmmword [rax + rcx + 0xc8], xmm0
mov edx, dword [rsp + 0x680]
mov r8d, dword [rsp + 0x683]
mov dword [rax + rcx + 0xd9], edx
mov dword [rax + rcx + 0xdc], r8d
mov rdx, qword [rsp + 0x48]
mov qword [rax + rcx + 0xe0], rdx
mov dword [rax + rcx + 0xe8], r15d
movaps xmm0, xmmword [rsp + 0x420]
movaps xmm1, xmmword [rsp + 0x430]
movups xmmword [rax + rcx + 0xec], xmm0
movups xmmword [rax + rcx + 0xfc], xmm1
mov edx, dword [rsp + 0x440]
mov dword [rax + rcx + 0x10c], edx
mov r12, rdi
mov qword [rax + rcx + 0x110], rdi
mov ecx, ebx
shl rbp, cl
lock or qword [rax + 0x2310], rbp
mov rax, qword [r13 + 0x80]
nop word cs:[rax + rax]
mov rcx, rax
or rcx, 2
lock cmpxchg qword [r13 + 0x80], rcx
jne 0x1800ef8e0
test rax, rax
jne 0x1800ef927
mov rax, qword [r13 + 0x70]
mov rcx, qword [r13 + 0x78]
mov qword [r13 + 0x70], 0
lock and qword [r13 + 0x80], 0xfffffffffffffffd
test rax, rax
je 0x1800ef927
call qword [rax + 8]
jmp 0x1800ef927
cmp rsi, 2
mov r12, rdi
jne 0x1800f164b
mov rbx, qword [rsp + 0x398]
movabs r15, 0x44b82fa09b5a53
cmp rbx, 2
mov qword [rsp + 0x2b8], rbx
je 0x1800ef9ac
mov rax, qword [rsp + 0x3a0]
mov qword [rsp + 0x410], rax
movaps xmm0, xmmword [rsp + 0x360]
movaps xmm1, xmmword [rsp + 0x370]
movaps xmm2, xmmword [rsp + 0x380]
movaps xmm3, xmmword [rsp + 0x390]
movaps xmmword [rsp + 0x400], xmm3
movaps xmmword [rsp + 0x3f0], xmm2
movaps xmmword [rsp + 0x3e0], xmm1
movaps xmmword [rsp + 0x3d0], xmm0
cmp dword [rsp + 0x30], 0x3b9aca00
jne 0x1800ef9c5
mov r14d, 0x3b9aca00
jmp 0x1800efbc0
cmp dword [rsp + 0x30], 0x3b9aca00
jne 0x1800efa55
mov r13d, 0x3b9aca00
jmp 0x1800efd63
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800f1b09
mov rsi, qword [rsp + 0x90]
mov r8, qword [0x18021a978]
test r8, r8
jne 0x1800efa35
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f1b09
mov r8, qword [rsp + 0x90]
mov qword [0x18021a978], r8
test r8, r8
je 0x1800f164b
mov rax, rsi
or rax, r8
shr rax, 0x20
je 0x1800efade
mov rax, rsi
xor edx, edx
div r8
mov rcx, rax
jmp 0x1800efae7
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800f1b09
mov rsi, qword [rsp + 0x90]
mov r8, qword [0x18021a978]
test r8, r8
jne 0x1800efac5
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f1b09
mov r8, qword [rsp + 0x90]
mov qword [0x18021a978], r8
test r8, r8
je 0x1800f164b
mov rax, rsi
or rax, r8
shr rax, 0x20
je 0x1800efb01
mov rax, rsi
xor edx, edx
div r8
mov rcx, rax
jmp 0x1800efb0a
mov eax, esi
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1800efb2b
xor edx, edx
div r8
jmp 0x1800efb30
mov eax, esi
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1800efcd3
xor edx, edx
div r8
jmp 0x1800efcd8
xor edx, edx
div r8d
imul r14, rcx, 0x3b9aca00
add r14, rax
mov r8, r14
shr r8, 9
mov rax, r8
mul r15
mov rcx, rdx
shr rcx, 0xb
add rcx, qword [rsp + 0x88]
jb 0x1800f164b
mov rax, r8
mul r15
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub r14d, eax
add r14d, dword [rsp + 0x30]
cmp r14d, 0x3b9ac9ff
jbe 0x1800efb8d
inc rcx
je 0x1800f164b
add r14d, 0xc4653600
mov eax, r14d
shr eax, 9
imul rdx, rax, 0x44b83
shr rdx, 0x27
add rdx, rcx
mov qword [rsp + 0x48], rdx
jb 0x1800f164b
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub r14d, eax
call fcn.1800fe290
test rax, rax
je 0x1800f164b
mov rdi, rax
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800efbf6
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800f02e7
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800f02e7
mov qword [rax], 1
mov qword [rax + 8], 1
mov rcx, rax
add rcx, 0x10
mov qword [rax + 0x10], rdi
lea rax, fcn.1800e2860
mov qword [rsp + 0x298], rax
mov qword [rsp + 0x2a0], rcx
lea rax, [rsp + 0x298]
mov qword [rsp + 0x278], rax
mov qword [rsp + 0x90], r12
movaps xmm0, xmmword [rsp + 0x3d0]
movaps xmm1, xmmword [rsp + 0x3e0]
movaps xmm2, xmmword [rsp + 0x3f0]
movaps xmm3, xmmword [rsp + 0x400]
movups xmmword [rsp + 0x98], xmm0
movups xmmword [rsp + 0xa8], xmm1
movups xmmword [rsp + 0xb8], xmm2
movups xmmword [rsp + 0xc8], xmm3
mov rax, qword [rsp + 0x410]
mov qword [rsp + 0xd8], rax
mov byte [rsp + 0xe1], 0
lea r12, [rsp + 0xe8]
lea r13, [rsp + 0x130]
xor eax, eax
movzx eax, al
lea rcx, [0x1800f1b2c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
xor edx, edx
div r8d
imul r13, rcx, 0x3b9aca00
add r13, rax
mov r8, r13
shr r8, 9
mov rax, r8
mul r15
mov rcx, rdx
shr rcx, 0xb
add rcx, qword [rsp + 0x88]
jb 0x1800f164b
mov rax, r8
mul r15
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub r13d, eax
add r13d, dword [rsp + 0x30]
cmp r13d, 0x3b9ac9ff
jbe 0x1800efd35
inc rcx
je 0x1800f164b
add r13d, 0xc4653600
mov eax, r13d
shr eax, 9
imul rbp, rax, 0x44b83
shr rbp, 0x27
add rbp, rcx
jb 0x1800f164b
imul rax, rax, 0x44b83
shr rax, 0x27
imul eax, eax, 0x3b9aca00
sub r13d, eax
call fcn.1800fe290
test rax, rax
je 0x1800f164b
mov rdi, rax
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800efd99
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800f02e7
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x18
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800f02e7
mov qword [rax], 1
mov qword [rax + 8], 1
mov rcx, rax
add rcx, 0x10
mov qword [rax + 0x10], rdi
lea rax, fcn.1800e2860
mov qword [rsp + 0x638], rax
mov qword [rsp + 0x640], rcx
lea rax, [rsp + 0x638]
mov qword [rsp + 0x3d0], rax
mov qword [rsp + 0x2d0], r12
mov byte [rsp + 0x2e0], 0
lea r15, [rsp + 0x2d8]
cmp r13d, 0x3b9aca00
jne 0x1800efe9f
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x2d8], rax
lea rcx, [rsp + 0x90]
lea r8, [rsp + 0x3d0]
mov rdx, r15
call fcn.1800ee900
mov rbx, qword [rsp + 0x90]
cmp rbx, 5
jne 0x1800f0201
mov byte [rsp + 0x2e0], 3
lea rsi, [rsp + 0x90]
lea rdi, [rsp + 0x3d0]
nop dword [rax + rax]
call fcn.1800fe0c0
mov rcx, rsi
mov rdx, r15
mov r8, rdi
call fcn.1800ee900
mov rbx, qword [rsp + 0x90]
cmp rbx, 5
jne 0x1800f0201
mov byte [rsp + 0x2e0], 3
jmp 0x1800efe70
mov rax, qword [rsp + 0x2d0]
mov qword [rsp + 0x2d8], rax
lea rcx, [rsp + 0x90]
lea r8, [rsp + 0x3d0]
mov rdx, r15
call fcn.1800ee900
mov rbx, qword [rsp + 0x90]
cmp rbx, 5
jne 0x1800f0201
mov byte [rsp + 0x2e0], 3
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1800f1b09
mov rsi, qword [rsp + 0x90]
mov r8, qword [0x18021a978]
test r8, r8
jne 0x1800eff51
mov qword [rsp + 0x90], 0
lea rcx, [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f1b09
mov r8, qword [rsp + 0x90]
mov qword [0x18021a978], r8
test r8, r8
je 0x1800f164b
mov rax, rsi
or rax, r8
shr rax, 0x20
je 0x1800eff81
mov rax, rsi
xor edx, edx
div r8
mov rcx, rax
jmp 0x1800eff8a
xor r15d, r15d
mov rbp, rax
xor r14d, r14d
test rsi, rsi
jne 0x1800ef2c7
jmp 0x1800ef2d4
mov eax, esi
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1800effa4
xor edx, edx
div r8
jmp 0x1800effa9
xor edx, edx
div r8d
imul r8, rcx, 0x3b9aca00
add r8, rax
mov rax, r8
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub r8d, eax
cmp rdx, rbp
jb 0x1800effe8
jne 0x1800f0194
cmp r13d, r8d
jbe 0x1800f0194
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0x98], r13d
lea rdi, [rsp + 0x90]
mov rcx, rdi
call fcn.180104610
xor ecx, ecx
cmp edx, 0x3b9aca00
cmove edx, ecx
mov ecx, 0
cmovne rcx, rax
call fcn.1801003e0
lea r14, [rsp + 0x3d0]
mov r12, qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jmp 0x1800f0074
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0x98], r13d
mov rcx, rdi
call fcn.180104610
cmp edx, 0x3b9aca00
mov ecx, 0
cmove edx, ecx
mov ecx, 0
cmovne rcx, rax
call fcn.1801003e0
mov rcx, rdi
mov rdx, r15
mov r8, r14
call fcn.1800ee900
mov rbx, qword [rsp + 0x90]
cmp rbx, 5
jne 0x1800f0201
mov byte [rsp + 0x2e0], 3
mov qword [rsp + 0x90], 0
mov rcx, rdi
call r12
test eax, eax
je 0x1800f1b09
mov rsi, qword [rsp + 0x90]
mov r8, qword [0x18021a978]
test r8, r8
jne 0x1800f00ff
mov qword [rsp + 0x90], 0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x1800f1b09
mov r8, qword [rsp + 0x90]
mov qword [0x18021a978], r8
test r8, r8
je 0x1800f164b
mov rax, rsi
or rax, r8
shr rax, 0x20
je 0x1800f0120
mov rax, rsi
xor edx, edx
div r8
mov rcx, rax
jmp 0x1800f0129
mov eax, esi
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1800f0150
xor edx, edx
div r8
jmp 0x1800f0155
xor edx, edx
div r8d
imul r8, rcx, 0x3b9aca00
add r8, rax
mov rax, r8
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub r8d, eax
cmp rdx, rbp
jb 0x1800f0040
jne 0x1800f0194
cmp r13d, r8d
ja 0x1800f0040
mov rcx, qword [rsp + 0x2d8]
mov ebx, 4
test rcx, rcx
je 0x1800f02bf
mov rax, qword [rcx + 0x30]
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x28]
nop dword [rax + rax]
mov rdx, rax
or rdx, 4
lock cmpxchg qword [rcx + 0x30], rdx
jne 0x1800f01c0
and eax, 0xa
cmp eax, 8
jne 0x1800f01e2
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x2d8]
test rcx, rcx
je 0x1800f01fa
lock dec qword [rcx]
jne 0x1800f01fa
call fcn.1800e2710
xor ebp, ebp
jmp 0x1800f029e
mov rbp, qword [rsp + 0x98]
lea rdx, [rsp + 0xa0]
lea rcx, [rsp + 0x420]
mov r8d, 0x88
call fcn.180171d20
mov rcx, qword [rsp + 0x2d8]
test rcx, rcx
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x28]
je 0x1800f027a
mov rax, qword [rcx + 0x30]
nop
mov rdx, rax
or rdx, 4
lock cmpxchg qword [rcx + 0x30], rdx
jne 0x1800f0240
and eax, 0xa
cmp eax, 8
jne 0x1800f0262
mov rax, qword [rcx + 0x10]
mov rcx, qword [rcx + 0x18]
call qword [rax + 0x10]
mov rcx, qword [rsp + 0x2d8]
test rcx, rcx
je 0x1800f027a
lock dec qword [rcx]
jne 0x1800f027a
call fcn.1800e2710
cmp ebx, 4
je 0x1800f1b23
lea rcx, [rsp + 0x680]
lea rdx, [rsp + 0x420]
mov r8d, 0x88
call fcn.180171d20
mov rax, qword [rsp + 0x638]
mov rcx, qword [rsp + 0x640]
call qword [rax + 0x18]
cmp ebx, 3
jne 0x1800f18c1
jmp 0x1800f18cf
xor ebp, ebp
mov r14, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x28]
jmp 0x1800f029e
mov ecx, 8
mov edx, 0xd0
call fcn.18017f950
ud2
mov ecx, 7
int 0x29
ud2
mov ecx, 8
mov edx, 0x18
call fcn.18017f950
ud2
mov ecx, 8
mov edx, 0x30
call fcn.18017f950
ud2
ud2
cmp ebx, 4
jne 0x1800f18fc
test rbp, rbp
je 0x1800f197f
cmp dword [rbp], 2
je 0x1800f19d7
cmp qword [rbp + 0x18], 0
je 0x1800f19d7
mov r8, qword [rbp + 0x10]
mov rcx, qword [0x18021a960]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1800f19d7
lock inc qword [rdi]
jle 0x1800f164b
mov rsi, qword [rsp + 0x270]
lea rcx, [rsi + 0x10]
lea rdx, [rsp + 0x680]
mov r8d, 0x88
call fcn.180171d20
mov qword [rsi], rbx
mov qword [rsi + 8], rbp
mov rax, qword [rsp + 0x88]
mov qword [rsi + 0x98], rax
mov eax, dword [rsp + 0x30]
mov dword [rsi + 0xa0], eax
mov qword [rsi + 0xa8], 0
mov qword [rsi + 0xb8], rdi
cmp qword [rsp + 0x38], 0
je 0x1800f1a7f
mov rcx, qword [0x18021a960]
xor edx, edx
mov r8, qword [rsp + 0x268]
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1800f1a7f
mov rcx, qword [0x18021a960]
test rcx, rcx
jne 0x1800f19a4
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
test rax, rax
je 0x1800f1b12
mov rcx, rax
mov qword [0x18021a960], rax
mov r8d, 0x70
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
je 0x1800f1b12
mov rbp, rax
mov qword [rax + 0x58], 1
lea rax, [0x1801dc888]
mov qword [rbp + 0x60], rax
mov word [rbp + 0x68], 1
mov eax, dword [rsp + 0x7c]
mov dword [rbp], eax
mov eax, dword [rsp + 0x70]
mov dword [rbp + 4], eax
mov eax, dword [rsp + 0x78]
mov dword [rbp + 8], eax
mov eax, dword [rsp + 0x6c]
mov dword [rbp + 0xc], eax
mov rax, qword [rsp + 0x268]
mov qword [rbp + 0x10], rax
mov rax, qword [rsp + 0x38]
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
movzx eax, word [rsp + 0x26]
mov word [rbp + 0x28], ax
movzx eax, word [rsp + 0x24]
mov word [rbp + 0x2a], ax
mov eax, dword [rsp + 0x74]
mov dword [rbp + 0x2c], eax
mov eax, dword [rsp + 0x68]
mov dword [rbp + 0x30], eax
mov eax, dword [rsp + 0x64]
mov dword [rbp + 0x34], eax
mov eax, dword [rsp + 0x60]
mov dword [rbp + 0x38], eax
mov eax, dword [rsp + 0x5c]
mov dword [rbp + 0x3c], eax
movaps xmm0, xmmword [rsp + 0x3b0]
movups xmmword [rbp + 0x40], xmm0
movzx eax, byte [rsp + 0x3c0]
mov byte [rbp + 0x50], al
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [rbp + 0x51], eax
mov dword [rbp + 0x54], ecx
mov rax, qword [rsp + 0x270]
mov qword [rax + 8], rbp
mov qword [rax], 3
cmp dword [rsp + 0x2b8], 2
jne 0x1800f1adc
mov rax, qword [rsp + 0x398]
cmp eax, 2
je 0x1800f1adc
mov rsi, qword [rsp + 0x388]
mov rdi, qword [rsp + 0x390]
mov rcx, rsi
call qword [rdi]
cmp qword [rdi + 8], 0
je 0x1800f1acf
cmp qword [rdi + 0x10], 0x11
jb 0x1800f1abd
mov rsi, qword [rsi - 8]
mov rcx, qword [0x18021a960]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rsp + 0x360]
call fcn.1800acff0
mov rcx, qword [r14 + 0x138]
lock dec qword [rcx]
je 0x1800eefda
movaps xmm6, xmmword [rsp + 0x810]
add rsp, 0x828
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call sub.KERNEL32.dll_GetLastError
ud2
mov ecx, 8
mov edx, 0x70
call fcn.18017f950
ud2
call 0x180021a70
ud2