Function at 0x1400c5350
Capabilities:
Check for time delay via queryperformancecounter
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x888
movaps xmmword [rsp + 0x870], xmm8
movaps xmmword [rsp + 0x860], xmm7
movaps xmmword [rsp + 0x850], xmm6
lea rbx, [rdx + 0x138]
mov rbp, qword [rdx]
mov rdi, qword [rdx + 8]
cmp rbp, 2
jne 0x1400c53d5
mov qword [rcx + 8], rdi
mov qword [rcx], 3
mov rax, qword [rbx]
lock dec qword [rax]
je 0x1400c6a5c
movaps xmm6, xmmword [rsp + 0x850]
movaps xmm7, xmmword [rsp + 0x860]
movaps xmm8, xmmword [rsp + 0x870]
add rsp, 0x888
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rdx
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x248], rbx
add rdx, 0x10
lea rcx, [rsp + 0x750]
mov r8d, 0x100
call sub.msvcrt.dll_memcpy
mov rbx, qword [rsi + 0x110]
mov rax, qword [rsi + 0x118]
mov qword [rsp + 0x68], rax
mov rax, qword [rsi + 0x120]
mov qword [rsp + 0x2a0], rax
mov r13, qword [rsi + 0x128]
mov r15, qword [rsi + 0x130]
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400c545a
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0xd0
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov r14, 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 case.0x1400c7a9e.1
mov qword [rsp + 0xa0], rbp
mov qword [rsp + 0xa8], rdi
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x750]
mov r8d, 0x100
call sub.msvcrt.dll_memcpy
cmp rbx, 2
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x298], r15
jne 0x1400c54e4
mov edi, 2
jmp 0x1400c57eb
test rbx, rbx
je 0x1400c5525
mov eax, dword [rsp + 0x440]
mov ecx, dword [rsp + 0x443]
mov dword [rsp + 0x6c8], eax
mov dword [rsp + 0x6cb], ecx
mov r14d, 2
mov rdx, r13
mov qword [rsp + 0x58], r15
mov rbx, qword [rsp + 0x2a0]
mov r12, qword [rsp + 0x68]
jmp 0x1400c5654
lea rcx, [rsp + 0x580]
mov rdx, 0xfffffffffffffffe
xor r8d, r8d
call fcn.14003a610
movaps xmm6, xmmword [rsp + 0x580]
movaps xmm7, xmmword [rsp + 0x590]
movzx r15d, byte [rsp + 0x5a0]
mov eax, dword [rsp + 0x5a1]
mov dword [rsp + 0x440], eax
mov eax, dword [rsp + 0x5a4]
mov dword [rsp + 0x443], eax
movups xmm0, xmmword [rsp + 0x5a8]
movaps xmmword [rsp + 0x2f0], xmm0
movups xmm0, xmmword [rsp + 0x5b8]
movaps xmmword [rsp + 0x300], xmm0
movups xmm0, xmmword [rsp + 0x5c8]
movaps xmmword [rsp + 0x310], xmm0
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
mov rdi, r13
jne 0x1400c55cf
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x30
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov rbx, rax
mov byte [rsp + 0x27], r15b
movaps xmm0, xmmword [rsp + 0x2f0]
movaps xmm1, xmmword [rsp + 0x300]
movaps xmm2, xmmword [rsp + 0x310]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov eax, dword [rsp + 0x440]
mov ecx, dword [rsp + 0x443]
mov dword [rsp + 0x6c8], eax
mov dword [rsp + 0x6cb], ecx
lea r13, [0x140171f58]
xor eax, eax
mov qword [rsp + 0x58], rax
mov rdx, qword [rsp + 0x298]
mov r14, rdi
mov r12d, 0
test rdi, rdi
je 0x1400c56dd
lea rdi, [rsp + 0xc8]
movups xmm0, xmmword [0x140171778]
movaps xmmword [rsp + 0x450], xmm0
movups xmm0, xmmword [0x140171768]
movaps xmmword [rsp + 0x440], xmm0
lea r15, [rsp + 0x580]
mov rcx, r15
call fcn.1400322b0
lea rcx, [rsp + 0x2f0]
lea r8, [rsp + 0x440]
mov rdx, rdi
mov r9, r15
call fcn.1400c3a40
cmp byte [rsp + 0x310], 2
je 0x1400c56d2
lea rcx, [rsp + 0x308]
mov rax, qword [rsp + 0x2f0]
mov rdx, qword [rsp + 0x2f8]
mov r8, qword [rsp + 0x300]
call qword [rax + 0x10]
mov rbp, qword [rsp + 0xa0]
mov rdi, r14
mov r15, rdi
test rbp, rbp
je 0x1400c57b2
mov rax, qword [rsp + 0xa8]
test rax, rax
je 0x1400c5716
lea rcx, [rsp + 0xc0]
mov rdx, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xb8]
call qword [rax + 0x10]
jmp 0x1400c57b2
mov rdi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov rcx, rdi
call qword [r14]
cmp qword [r14 + 8], 0
je 0x1400c574f
cmp qword [r14 + 0x10], 0x11
jb 0x1400c573e
mov rdi, qword [rdi - 8]
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
je 0x1400c57b2
mov rcx, rdi
call fcn.1401028c0
lea rcx, [rdi + 8]
cmp qword [rdi], 0
je 0x1400c577e
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1400c578c
call fcn.14006f510
jmp 0x1400c578c
mov rax, qword [rcx]
lock dec qword [rax]
jne 0x1400c578c
call fcn.140039fc0
mov rax, qword [rdi + 0x48]
test rax, rax
je 0x1400c579c
mov rcx, qword [rdi + 0x50]
call qword [rax + 0x18]
mov r8, qword [rsp + 0xc0]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov qword [rsp + 0xa0], 1
mov qword [rsp + 0xa8], r12
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xb8], r13
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rax
mov ebp, 1
mov rdi, r15
lea r15, [rsp + 0xa8]
movups xmm0, xmmword [r15 + 0x70]
movaps xmmword [rsp + 0x570], xmm0
movups xmm0, xmmword [r15 + 0x60]
movaps xmmword [rsp + 0x560], xmm0
movups xmm0, xmmword [r15 + 0x50]
movaps xmmword [rsp + 0x550], xmm0
movups xmm0, xmmword [r15 + 0x40]
movaps xmmword [rsp + 0x540], xmm0
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmm2, xmmword [r15 + 0x20]
movups xmm3, xmmword [r15 + 0x30]
movaps xmmword [rsp + 0x530], xmm3
movaps xmmword [rsp + 0x520], xmm2
movaps xmmword [rsp + 0x510], xmm1
movaps xmmword [rsp + 0x500], xmm0
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x12c]
mov dword [rsp + 0x34], eax
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x38], eax
mov eax, dword [rsp + 0x134]
mov dword [rsp + 0x40], eax
mov r12, qword [rsp + 0x138]
mov rcx, qword [rsp + 0x140]
mov rbx, qword [rsp + 0x148]
movzx eax, word [rsp + 0x150]
mov word [rsp + 0x22], ax
movzx eax, word [rsp + 0x152]
mov word [rsp + 0x24], ax
mov eax, dword [rsp + 0x154]
mov dword [rsp + 0x44], eax
mov eax, dword [rsp + 0x158]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x15c]
mov dword [rsp + 0x4c], eax
mov r14d, dword [rsp + 0x160]
movzx eax, byte [rsp + 0x178]
mov byte [rsp + 0x2c0], al
mov eax, dword [rsp + 0x17c]
mov dword [rsp + 0x8b], eax
mov eax, dword [rsp + 0x179]
mov dword [rsp + 0x88], eax
mov eax, dword [rsp + 0x1ac]
mov dword [rsp + 0x4f0], eax
mov eax, dword [rsp + 0x6cb]
mov dword [rsp + 0x93], eax
mov eax, dword [rsp + 0x6c8]
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x164]
mov dword [rsp + 0x3c], eax
movups xmm0, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x2b0], xmm0
movups xmm0, xmmword [rsp + 0x19c]
movaps xmmword [rsp + 0x4e0], xmm0
movups xmm0, xmmword [rsp + 0x18c]
movaps xmmword [rsp + 0x4d0], xmm0
mov rax, qword [rsp + 0x180]
mov qword [rsp + 0x58], rax
mov r13d, dword [rsp + 0x188]
test rbx, rbx
mov qword [rsp + 0x438], rcx
je 0x1400c59d8
js case.0x1400c7a9e.1
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400c59c4
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
jne 0x1400c59dd
jmp case.0x1400c7a9e.1
mov eax, 1
mov qword [rsp + 0x78], rax
mov rcx, rax
mov qword [rsp + 0x430], r12
mov rdx, r12
mov r8, rbx
call sub.msvcrt.dll_memcpy
movzx eax, byte [rsp + 0x2c0]
mov byte [rsp + 0x260], al
movaps xmm0, xmmword [rsp + 0x2b0]
movaps xmmword [rsp + 0x250], xmm0
mov dword [rsp + 0x28], r13d
mov rax, qword [rsp + 0x58]
cmp r13d, 0x3b9aca00
jne 0x1400c5a3b
mov eax, dword [rsi + 0x148]
mov dword [rsp + 0x28], eax
mov rax, qword [rsi + 0x140]
mov qword [rsp + 0x240], rax
mov r12, qword [rsi + 0x138]
mov rcx, qword [r12 + 0x10]
test rcx, rcx
je case.0x1400c7a9e.1
movaps xmm0, xmmword [rsp + 0x500]
movaps xmm1, xmmword [rsp + 0x510]
movaps xmm2, xmmword [rsp + 0x520]
movaps xmm3, xmmword [rsp + 0x530]
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0xb0], xmm1
movaps xmmword [rsp + 0xc0], xmm2
movaps xmmword [rsp + 0xd0], xmm3
movaps xmm0, xmmword [rsp + 0x540]
movaps xmmword [rsp + 0xe0], xmm0
movaps xmm0, xmmword [rsp + 0x550]
movaps xmmword [rsp + 0xf0], xmm0
movaps xmm0, xmmword [rsp + 0x560]
movaps xmmword [rsp + 0x100], xmm0
movaps xmm0, xmmword [rsp + 0x570]
movaps xmmword [rsp + 0x110], xmm0
movaps xmm0, xmmword [rsp + 0x2b0]
movaps xmmword [rsp + 0x2f0], xmm0
movzx eax, byte [rsp + 0x2c0]
mov byte [rsp + 0x300], al
mov eax, dword [rsp + 0x88]
mov edx, dword [rsp + 0x8b]
mov dword [rsp + 0x443], edx
mov dword [rsp + 0x440], eax
mov eax, dword [rsp + 0x4f0]
mov dword [rsp + 0x5a0], eax
movaps xmm0, xmmword [rsp + 0x4d0]
movaps xmm1, xmmword [rsp + 0x4e0]
movaps xmmword [rsp + 0x590], xmm1
movaps xmmword [rsp + 0x580], xmm0
mov rax, qword [rcx + 0x1c8]
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x2c], r14d
mov qword [rsp + 0x60], r12
nop word [rax + rax]
test al, 1
jne 0x1400c5bb8
cmp rax, 0xfffffffffffffffe
je 0x1400c6bdf
lea rdx, [rax + 2]
lock cmpxchg qword [rcx + 0x1c8], rdx
jne 0x1400c5b60
mov r15, qword [r12 + 0x10]
mov r12d, 1
lock xadd qword [r15 + 0x88], r12
mov rsi, r12
and rsi, 0xffffffffffffffe0
mov rdx, qword [r15 + 0x80]
mov rax, rsi
sub rax, qword [rdx + 0x2300]
jne 0x1400c5c6b
and r12d, 0x1f
jmp 0x1400c5dff
cmp rbp, 2
jne case.0x1400c7a9e.1
cmp rdi, 2
jne 0x1400c6013
cmp dword [rsp + 0x28], 0x3b9aca00
jne 0x1400c5be0
mov esi, 0x3b9aca00
jmp 0x1400c6190
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400c7ded
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x1400c5c4e
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400c7ded
mov rcx, qword [rsp + 0xa0]
mov qword [0x1401a4140], rcx
test rcx, rcx
je case.0x1400c7a9e.1
mov rax, rsi
or rax, rcx
shr rax, 0x20
je 0x1400c60d2
mov rax, rsi
xor edx, edx
div rcx
jmp 0x1400c60d8
mov qword [rsp + 0x428], rdi
shr rax, 5
and r12d, 0x1f
cmp rax, r12
seta r14b
xorps xmm8, xmm8
jmp 0x1400c5ca2
xor r14d, r14d
pause
cmp qword [rdx + 0x2300], rsi
je 0x1400c5ded
mov rdi, rdx
mov rdx, qword [rdx + 0x2308]
test rdx, rdx
jne 0x1400c5d90
mov rbx, qword [rdi + 0x2300]
movzx eax, byte [0x1401a4170]
mov rax, qword [0x1401a4160]
test rax, rax
jne 0x1400c5ce4
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov qword [0x1401a4160], rax
mov r8d, 0x2320
mov rcx, rax
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
add rbx, 0x20
mov qword [rax + 0x2300], rbx
movups xmmword [rax + 0x2308], xmm8
mov qword [rax + 0x2318], 0
xor eax, eax
lock cmpxchg qword [rdi + 0x2308], rcx
jne 0x1400c5d30
mov rdx, rcx
jmp 0x1400c5d90
mov rdx, rax
mov rax, qword [rax + 0x2300]
add rax, 0x20
mov qword [rcx + 0x2300], rax
xor eax, eax
lock cmpxchg qword [rdx + 0x2308], rcx
je 0x1400c5d90
mov r8, rax
nop word cs:[rax + rax]
pause
mov rax, qword [r8 + 0x2300]
add rax, 0x20
mov qword [rcx + 0x2300], rax
xor eax, eax
lock cmpxchg qword [r8 + 0x2308], rcx
mov r8, rax
jne 0x1400c5d60
nop word cs:[rax + rax]
mov rax, qword [rdi + 0x2310]
cmp eax, 0xffffffff
sete al
test r14b, al
je 0x1400c5c90
mov rax, rdi
lock cmpxchg qword [r15 + 0x80], rdx
jne 0x1400c5c90
mfence
mov rax, qword [r15 + 0x88]
mov qword [rdi + 0x2318], rax
movabs rax, 0x100000000
lock or qword [rdi + 0x2310], rax
mov r14b, 1
pause
cmp qword [rdx + 0x2300], rsi
jne 0x1400c5ca2
mov rbx, qword [rsp + 0x50]
mov r14d, dword [rsp + 0x2c]
mov rdi, qword [rsp + 0x428]
imul rax, r12, 0x118
mov qword [rdx + rax], rbp
movaps xmm0, xmmword [rsp + 0xa0]
movaps xmm1, xmmword [rsp + 0xb0]
movaps xmm2, xmmword [rsp + 0xc0]
movaps xmm3, xmmword [rsp + 0xd0]
movups xmmword [rdx + rax + 8], xmm0
movups xmmword [rdx + rax + 0x18], xmm1
movups xmmword [rdx + rax + 0x28], xmm2
movups xmmword [rdx + rax + 0x38], xmm3
movaps xmm0, xmmword [rsp + 0xe0]
movups xmmword [rdx + rax + 0x48], xmm0
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rdx + rax + 0x58], xmm0
movaps xmm0, xmmword [rsp + 0x100]
movups xmmword [rdx + rax + 0x68], xmm0
movaps xmm0, xmmword [rsp + 0x110]
movups xmmword [rdx + rax + 0x78], xmm0
mov ecx, dword [rsp + 0x30]
mov dword [rdx + rax + 0x88], ecx
mov ecx, dword [rsp + 0x34]
mov dword [rdx + rax + 0x8c], ecx
mov ecx, dword [rsp + 0x38]
mov dword [rdx + rax + 0x90], ecx
mov ecx, dword [rsp + 0x40]
mov dword [rdx + rax + 0x94], ecx
mov rcx, qword [rsp + 0x430]
mov qword [rdx + rax + 0x98], rcx
mov rcx, qword [rsp + 0x438]
mov qword [rdx + rax + 0xa0], rcx
mov qword [rdx + rax + 0xa8], rbx
movzx ecx, word [rsp + 0x22]
mov word [rdx + rax + 0xb0], cx
movzx ecx, word [rsp + 0x24]
mov word [rdx + rax + 0xb2], cx
mov ecx, dword [rsp + 0x44]
mov dword [rdx + rax + 0xb4], ecx
mov ecx, dword [rsp + 0x48]
mov dword [rdx + rax + 0xb8], ecx
mov ecx, dword [rsp + 0x4c]
mov dword [rdx + rax + 0xbc], ecx
mov dword [rdx + rax + 0xc0], r14d
mov ecx, dword [rsp + 0x3c]
mov dword [rdx + rax + 0xc4], ecx
movzx ecx, byte [rsp + 0x300]
mov byte [rdx + rax + 0xd8], cl
movaps xmm0, xmmword [rsp + 0x2f0]
movups xmmword [rdx + rax + 0xc8], xmm0
mov ecx, dword [rsp + 0x440]
mov r8d, dword [rsp + 0x443]
mov dword [rdx + rax + 0xd9], ecx
mov dword [rdx + rax + 0xdc], r8d
mov rcx, qword [rsp + 0x58]
mov qword [rdx + rax + 0xe0], rcx
mov dword [rdx + rax + 0xe8], r13d
movaps xmm0, xmmword [rsp + 0x580]
movaps xmm1, xmmword [rsp + 0x590]
movups xmmword [rdx + rax + 0xec], xmm0
movups xmmword [rdx + rax + 0xfc], xmm1
mov ecx, dword [rsp + 0x5a0]
mov dword [rdx + rax + 0x10c], ecx
mov rcx, qword [rsp + 0x70]
mov qword [rdx + rax + 0x110], rcx
mov eax, 1
mov ecx, r12d
shl rax, cl
lock or qword [rdx + 0x2310], rax
mov rax, qword [r15 + 0x110]
nop dword [rax + rax]
mov rcx, rax
or rcx, 2
lock cmpxchg qword [r15 + 0x110], rcx
jne 0x1400c5fc0
test rax, rax
jne 0x1400c6001
mov rax, qword [r15 + 0x100]
mov rcx, qword [r15 + 0x108]
mov qword [r15 + 0x100], 0
lock and qword [r15 + 0x110], 0xfffffffffffffffd
test rax, rax
je 0x1400c6001
call qword [rax + 8]
lea r15, [rsp + 0xa8]
cmp rdi, 2
je 0x1400c5bcc
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [rsp + 0x9b], ecx
mov dword [rsp + 0x98], eax
movabs r13, 0x44b82fa09b5a53
cmp dword [rsp + 0x28], 0x3b9aca00
jne 0x1400c604e
mov r12d, 0x3b9aca00
jmp 0x1400c6421
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400c7ded
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x1400c60bc
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400c7ded
mov rcx, qword [rsp + 0xa0]
mov qword [0x1401a4140], rcx
test rcx, rcx
je case.0x1400c7a9e.1
mov rax, rsi
or rax, rcx
shr rax, 0x20
je 0x1400c60fc
mov rax, rsi
xor edx, edx
div rcx
jmp 0x1400c6102
mov eax, esi
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1400c612d
xor edx, edx
div rcx
mov rsi, rax
jmp 0x1400c6133
mov eax, esi
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1400c63bc
xor edx, edx
div rcx
mov r12, rax
jmp 0x1400c63c3
xor edx, edx
div ecx
mov esi, eax
add rsi, r8
mov rax, rsi
shr rax, 9
movabs rcx, 0x44b82fa09b5a53
mul rcx
shr rdx, 0xb
mov rbp, rdx
add rbp, qword [rsp + 0x240]
jb case.0x1400c7a9e.1
imul rax, rdx, 0x3b9aca00
sub rsi, rax
add esi, dword [rsp + 0x28]
cmp esi, 0x3b9aca00
jb 0x1400c6190
inc rbp
je case.0x1400c7a9e.1
add esi, 0xc4653600
cmp esi, 0x3b9aca00
je case.0x1400c7a9e.1
call fcn.1400f0e40
test rax, rax
je case.0x1400c7a9e.1
mov rdi, rax
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400c61cc
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x18
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov qword [rax], 1
mov qword [rax + 8], 1
mov rcx, rax
add rcx, 0x10
mov qword [rax + 0x10], rdi
lea rax, fcn.1400a5a00
mov qword [rsp + 0x440], rax
mov qword [rsp + 0x448], rcx
lea rax, [rsp + 0x440]
mov qword [rsp + 0x270], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x2f0], rax
lea r14, [rsp + 0x2f8]
mov byte [rsp + 0x300], 0
mov eax, dword [rsp + 0x2c8]
mov ecx, dword [rsp + 0x2cb]
mov dword [rsp + 0x301], eax
mov dword [rsp + 0x304], ecx
cmp esi, 0x3b9aca00
jne 0x1400c62ef
mov rax, qword [rsp + 0x2f0]
mov qword [rsp + 0x2f8], rax
lea rcx, [rsp + 0xa0]
lea r8, [rsp + 0x270]
mov rdx, r14
call fcn.1400a6770
mov rbx, qword [rsp + 0xa0]
cmp rbx, 5
jne 0x1400c6810
mov byte [rsp + 0x300], 3
lea rsi, [rsp + 0xa0]
lea rdi, [rsp + 0x270]
nop word [rax + rax]
call fcn.1400e3480
mov rcx, rsi
mov rdx, r14
mov r8, rdi
call fcn.1400a6770
mov rbx, qword [rsp + 0xa0]
cmp rbx, 5
jne 0x1400c6810
mov byte [rsp + 0x300], 3
jmp 0x1400c62c0
mov rax, qword [rsp + 0x2f0]
mov qword [rsp + 0x2f8], rax
lea rcx, [rsp + 0xa0]
lea r8, [rsp + 0x270]
mov rdx, r14
call fcn.1400a6770
mov rbx, qword [rsp + 0xa0]
cmp rbx, 5
jne 0x1400c6810
mov byte [rsp + 0x300], 3
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400c7ded
mov rdi, qword [rsp + 0xa0]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x1400c639f
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0xa0]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400c7ded
mov rcx, qword [rsp + 0xa0]
mov qword [0x1401a4140], rcx
test rcx, rcx
je case.0x1400c7a9e.1
mov rax, rdi
or rax, rcx
shr rax, 0x20
je 0x1400c6579
mov rax, rdi
xor edx, edx
div rcx
jmp 0x1400c657f
xor edx, edx
div ecx
mov r12d, eax
add r12, r8
mov rax, r12
shr rax, 9
mul r13
shr rdx, 0xb
mov rax, rdx
add rax, qword [rsp + 0x240]
mov qword [rsp + 0x58], rax
jb case.0x1400c7a9e.1
imul rax, rdx, 0x3b9aca00
sub r12, rax
add r12d, dword [rsp + 0x28]
cmp r12d, 0x3b9aca00
jb 0x1400c6421
inc qword [rsp + 0x58]
je case.0x1400c7a9e.1
add r12d, 0xc4653600
cmp r12d, 0x3b9aca00
je case.0x1400c7a9e.1
call fcn.1400f0e40
test rax, rax
je case.0x1400c7a9e.1
mov rsi, rax
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400c645d
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x18
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov qword [rax], 1
mov qword [rax + 8], 1
mov rcx, rax
add rcx, 0x10
mov qword [rax + 0x10], rsi
lea rax, fcn.1400a5a00
mov qword [rsp + 0x2e0], rax
mov qword [rsp + 0x2e8], rcx
lea rax, [rsp + 0x2e0]
mov qword [rsp + 0x2a8], rax
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rax
movups xmmword [rsp + 0xa8], xmm6
movups xmmword [rsp + 0xb8], xmm7
movzx eax, byte [rsp + 0x27]
mov byte [rsp + 0xc8], al
mov eax, dword [rsp + 0x98]
mov ecx, dword [rsp + 0x9b]
mov dword [rsp + 0xc9], eax
mov dword [rsp + 0xcc], ecx
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0x2a0]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rdi
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0xe8], rax
mov byte [rsp + 0xf1], 0
lea rbp, [rsp + 0xf2]
lea rdx, [rsp + 0x580]
mov r8d, 0x146
mov rcx, rbp
call sub.msvcrt.dll_memcpy
lea rdi, [rsp + 0xf8]
lea r14, [rsp + 0x140]
xor eax, eax
movzx eax, al
lea rcx, [0x140127f0c]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov eax, edi
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1400c65a3
xor edx, edx
div rcx
mov rcx, rax
jmp 0x1400c65a9
xor edx, edx
div ecx
mov ecx, eax
add rcx, r8
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
cmp rdx, rbp
jb 0x1400c65df
jne 0x1400c67a2
cmp esi, ecx
jbe 0x1400c67a2
mov qword [rsp + 0x580], rbp
mov dword [rsp + 0x588], esi
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], ecx
lea rcx, [rsp + 0x580]
lea r12, [rsp + 0xa0]
mov rdx, r12
call fcn.1400f0810
xor r15d, r15d
cmp edx, 0x3b9aca00
cmove edx, r15d
mov ecx, 0
cmovne rcx, rax
call fcn.1400e3580
lea r13, [rsp + 0x270]
jmp 0x1400c6686
mov qword [rsp + 0x580], rbp
mov dword [rsp + 0x588], esi
mov qword [rsp + 0xa0], rdx
mov dword [rsp + 0xa8], ecx
lea rcx, [rsp + 0x580]
mov rdx, r12
call fcn.1400f0810
cmp edx, 0x3b9aca00
cmove edx, r15d
mov ecx, 0
cmovne rcx, rax
call fcn.1400e3580
mov rcx, r12
mov rdx, r14
mov r8, r13
call fcn.1400a6770
mov rbx, qword [rsp + 0xa0]
cmp rbx, 5
jne 0x1400c6810
mov byte [rsp + 0x300], 3
mov qword [rsp + 0xa0], 0
mov rcx, r12
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400c7ded
mov rdi, qword [rsp + 0xa0]
mov r8, qword [0x1401a4140]
test r8, r8
jne 0x1400c6712
mov qword [rsp + 0xa0], 0
mov rcx, r12
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400c7ded
mov r8, qword [rsp + 0xa0]
mov qword [0x1401a4140], r8
test r8, r8
je case.0x1400c7a9e.1
mov rax, rdi
or rax, r8
shr rax, 0x20
je 0x1400c6730
mov rax, rdi
xor edx, edx
div r8
mov rcx, rax
jmp 0x1400c6739
mov eax, edi
xor edx, edx
div r8d
mov ecx, eax
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1400c6760
xor edx, edx
div r8
jmp 0x1400c6765
xor edx, edx
div r8d
imul rcx, rcx, 0x3b9aca00
add rcx, rax
mov rax, rcx
shr rax, 9
movabs rdx, 0x44b82fa09b5a53
mul rdx
shr rdx, 0xb
imul eax, edx, 0x3b9aca00
sub ecx, eax
cmp rdx, rbp
jb 0x1400c6640
jne 0x1400c67a2
cmp esi, ecx
ja 0x1400c6640
mov rsi, qword [rsp + 0x2f8]
mov ebx, 4
test rsi, rsi
je 0x1400c6bc7
mov rax, qword [rsi + 0x30]
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
nop word cs:[rax + rax]
mov rcx, rax
or rcx, 4
lock cmpxchg qword [rsi + 0x30], rcx
jne 0x1400c67d0
and eax, 0xa
cmp eax, 8
jne 0x1400c67f2
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x18]
call qword [rax + 0x10]
lock dec qword [rsi]
jne 0x1400c6bd8
mov rcx, qword [rsp + 0x2f8]
call fcn.14006fe20
xor esi, esi
jmp 0x1400c68a9
mov rsi, qword [rsp + 0xa8]
lea rdx, [rsp + 0xb0]
lea rcx, [rsp + 0x580]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov rdi, qword [rsp + 0x2f8]
test rdi, rdi
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
je 0x1400c6885
mov rax, qword [rdi + 0x30]
nop
mov rcx, rax
or rcx, 4
lock cmpxchg qword [rdi + 0x30], rcx
jne 0x1400c6850
and eax, 0xa
cmp eax, 8
jne 0x1400c6872
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
call qword [rax + 0x10]
lock dec qword [rdi]
jne 0x1400c6885
mov rcx, qword [rsp + 0x2f8]
call fcn.14006fe20
cmp ebx, 4
je 0x1400c7df6
lea rcx, [rsp + 0x6c8]
lea rdx, [rsp + 0x580]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x440]
mov rcx, qword [rsp + 0x448]
call qword [rax + 0x18]
cmp ebx, 3
mov rdx, qword [rsp + 0x80]
je 0x1400c7cdb
cmp ebx, 4
jne 0x1400c69d9
test rsi, rsi
mov rbx, qword [rsp + 0x248]
je 0x1400c6a90
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0xa0], xmm0
movzx eax, byte [rsp + 0x260]
mov byte [rsp + 0xb0], al
mov eax, dword [rsp + 0x440]
mov ecx, dword [rsp + 0x443]
mov dword [rsp + 0x2f3], ecx
mov dword [rsp + 0x2f0], eax
cmp dword [rsi], 2
je 0x1400c6948
cmp qword [rsi + 0x18], 0
je 0x1400c6948
mov r8, qword [rsi + 0x10]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rdx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x30]
mov dword [rsi], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 4], eax
mov eax, dword [rsp + 0x38]
mov dword [rsi + 8], eax
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0xc], eax
mov rax, qword [rsp + 0x78]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x20], r14
movzx eax, word [rsp + 0x22]
mov word [rsi + 0x28], ax
movzx eax, word [rsp + 0x24]
mov word [rsi + 0x2a], ax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x30], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsi + 0x34], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsi + 0x38], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsi + 0x3c], eax
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x40], xmm0
movzx eax, byte [rsp + 0xb0]
mov byte [rsi + 0x50], al
mov eax, dword [rsp + 0x2f0]
mov ecx, dword [rsp + 0x2f3]
mov dword [rsi + 0x51], eax
mov dword [rsi + 0x54], ecx
jmp 0x1400c7dd0
lock inc qword [r15]
jle case.0x1400c7a9e.1
mov qword [rdx], rbx
mov qword [rdx + 8], rsi
lea rcx, [rdx + 0x10]
mov rsi, rdx
lea rdx, [rsp + 0x6c8]
mov r8d, 0x88
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x240]
mov qword [rsi + 0x98], rax
mov eax, dword [rsp + 0x28]
mov dword [rsi + 0xa0], eax
mov qword [rsi + 0xa8], 0
mov qword [rsi + 0xb8], r15
test r14, r14
mov rbx, qword [rsp + 0x248]
je 0x1400c6a4f
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, qword [rsp + 0x78]
call sub.KERNEL32.dll_HeapFree
mov rax, qword [rbx]
lock dec qword [rax]
jne 0x1400c53a8
mov rcx, rbx
movaps xmm6, xmmword [rsp + 0x850]
movaps xmm7, xmmword [rsp + 0x860]
movaps xmm8, xmmword [rsp + 0x870]
add rsp, 0x888
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.140070330
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400c6abb
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je case.0x1400c7a9e.1
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x70
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je case.0x1400c7a9e.1
mov rsi, rax
mov dword [rax], 2
mov qword [rax + 0x58], 1
lea rax, [0x140171438]
mov qword [rsi + 0x60], rax
mov word [rsi + 0x68], 1
mov eax, dword [rsp + 0x440]
mov dword [rsp + 0x2f0], eax
mov eax, dword [rsp + 0x443]
mov dword [rsp + 0x2f3], eax
movzx eax, byte [rsp + 0x260]
mov byte [rsp + 0xb0], al
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0xa0], xmm0
mov eax, dword [rsp + 0x30]
mov dword [rsi], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 4], eax
mov eax, dword [rsp + 0x38]
mov dword [rsi + 8], eax
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0xc], eax
mov rax, qword [rsp + 0x78]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x20], r14
movzx eax, word [rsp + 0x22]
mov word [rsi + 0x28], ax
movzx eax, word [rsp + 0x24]
mov word [rsi + 0x2a], ax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x30], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsi + 0x34], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsi + 0x38], eax
invalid
invalid
mov eax, dword [rsp + 0x3c]
mov dword [rsi + 0x3c], eax
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x40], xmm0
movzx eax, byte [rsp + 0xb0]
mov byte [rsi + 0x50], al
mov eax, dword [rsp + 0x2f0]
mov ecx, dword [rsp + 0x2f3]
add byte [rax], al
mov dword [rsi + 0x51], eax
mov dword [rsi + 0x54], ecx
push rsp
mov rdx, qword [rsp + 0x80]
jmp 0x1400c7dd0
xor esi, esi
mov r14, qword [rsp + 0x50]
mov r15, qword [rsp + 0x60]
jmp 0x1400c68a9
xor esi, esi
jmp 0x1400c68a9
mov ecx, 7
int 0x29
ud2
ud2
movaps xmm0, xmmword [rsp + 0x250]
movaps xmmword [rsp + 0xa0], xmm0
movzx eax, byte [rsp + 0x260]
mov byte [rsp + 0xb0], al
mov eax, dword [rsp + 0x440]
mov ecx, dword [rsp + 0x443]
mov dword [rsp + 0x2f3], ecx
mov dword [rsp + 0x2f0], eax
cmp dword [rsi], 2
je 0x1400c7d3c
cmp qword [rsi + 0x18], 0
je 0x1400c7d3c
mov r8, qword [rsi + 0x10]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rdx, qword [rsp + 0x80]
mov eax, dword [rsp + 0x30]
mov dword [rsi], eax
mov eax, dword [rsp + 0x34]
mov dword [rsi + 4], eax
mov eax, dword [rsp + 0x38]
mov dword [rsi + 8], eax
mov eax, dword [rsp + 0x40]
mov dword [rsi + 0xc], eax
mov rax, qword [rsp + 0x78]
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], r14
mov qword [rsi + 0x20], r14
movzx eax, word [rsp + 0x22]
mov word [rsi + 0x28], ax
movzx eax, word [rsp + 0x24]
mov word [rsi + 0x2a], ax
mov eax, dword [rsp + 0x44]
mov dword [rsi + 0x2c], eax
mov eax, dword [rsp + 0x48]
mov dword [rsi + 0x30], eax
mov eax, dword [rsp + 0x4c]
mov dword [rsi + 0x34], eax
mov eax, dword [rsp + 0x2c]
mov dword [rsi + 0x38], eax
mov eax, dword [rsp + 0x3c]
mov dword [rsi + 0x3c], eax
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x40], xmm0
movzx eax, byte [rsp + 0xb0]
mov byte [rsi + 0x50], al
mov eax, dword [rsp + 0x2f0]
mov ecx, dword [rsp + 0x2f3]
mov dword [rsi + 0x51], eax
mov dword [rsi + 0x54], ecx
mov rbx, qword [rsp + 0x248]
mov qword [rdx + 8], rsi
mov qword [rdx], 3
mov rax, qword [rbx]
lock dec qword [rax]
je 0x1400c6a5c
jmp 0x1400c53a8
call sub.KERNEL32.dll_GetLastError
ud2
call 0x140071ca0
ud2