Function at 0x1400a7ab0
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, 0x1d8
movdqa xmmword [rsp + 0x1c0], xmm8
movdqa xmmword [rsp + 0x1b0], xmm7
movdqa xmmword [rsp + 0x1a0], xmm6
mov qword [rsp + 0x180], r9
mov rbx, r8
mov qword [rsp + 0x30], rdx
cmp byte [r8 + 0x10], 2
mov qword [rsp + 0x48], rcx
jne 0x1400a7bfb
cmp qword [rcx + 0x58], 0
je 0x1400a7bfb
mov rdi, rcx
mov rcx, qword [rcx + 0x60]
mov rdx, qword [rdi + 0x68]
mov rsi, qword [rsp + 0x30]
mov r8, rsi
call fcn.140090c50
mov r14, rax
mov rcx, qword [rdi + 0x40]
mov rdi, qword [rdi + 0x48]
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
lea r13, [rcx - 0x48]
lea r15, [rsi + 0x10]
xor ebp, ebp
pcmpeqd xmm7, xmm7
mov qword [rsp + 0x98], rcx
and r14, rdi
movdqu xmm8, xmmword [rcx + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb esi, xmm0
nop
test si, si
je 0x1400a7bd0
mov eax, esi
lea esi, [rax - 1]
and esi, eax
tzcnt eax, eax
add rax, r14
and rax, rdi
neg rax
lea rax, [rax + rax*8]
lea r12, [rax*8]
add r12, r13
mov rcx, qword [rsp + 0x30]
mov rdx, r12
call fcn.140032500
test al, al
je 0x1400a7b70
add r12, 0x10
mov rcx, r15
mov rdx, r12
call fcn.14002f8a0
test al, al
je 0x1400a7b70
jmp 0x1400a8307
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
mov rcx, qword [rsp + 0x48]
jne 0x1400a7bfb
add r14, rbp
add r14, 0x10
add rbp, 0x10
mov rcx, qword [rsp + 0x98]
jmp 0x1400a7b59
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0xe0], rax
movdqu xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0xc0], xmm1
movdqa xmmword [rsp + 0xb0], xmm0
add rcx, 0x70
mov qword [rsp + 0x188], rcx
mov rdx, qword [rsp + 0x30]
call fcn.1400d12b0
test rax, rax
je 0x1400a8364
mov r15, rax
lea rbp, [rsp + 0xe2]
xor edi, edi
jmp 0x1400a7c6d
lea rcx, [rsp + 0xf0]
call fcn.14006fb80
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x1400a8320
mov rcx, qword [r15 + 0x10]
mov rdx, qword [r15]
mov r8, qword [r15 + 8]
lea r9, [rcx + 1]
cmp r9, r8
cmovb r8, rdi
neg r8
add r8, rcx
inc r8
mov qword [r15 + 0x10], r8
dec rax
mov qword [r15 + 0x18], rax
mov rax, qword [rdx + rcx*8]
mov qword [rsp + 0xf0], rax
movzx eax, byte [rax + 0x80]
test al, al
je 0x1400a7d20
mov rsi, qword [rsp + 0xf0]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x1400a7cf4
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x1400a7cf4
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x1400a7dd0
mov rax, qword [rsp + 0xf0]
lock dec qword [rax]
jne 0x1400a7c6d
jmp 0x1400a7c60
mov qword [rsp + 0x138], rbx
mov byte [rsp + 0x27], r13b
movzx r12d, byte [rsp + 0xe1]
mov byte [rsp + 0xe1], 2
cmp r12b, 2
je 0x1400a8daf
mov r11, qword [rsp + 0xb0]
mov rdi, qword [rsp + 0xb8]
movzx r13d, byte [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
mov rsi, qword [rsp + 0xd0]
mov r10, qword [rsp + 0xd8]
movzx r9d, byte [rsp + 0xe0]
cmp r13b, 2
mov qword [rsp + 0x130], r14
jne 0x1400a7e04
mov qword [rsp + 0x128], rdi
mov edi, r13d
mov r14d, r9d
test rbx, rbx
je 0x1400a7e56
mov rcx, rbx
mov rbp, r10
mov r13d, r12d
mov r12, r11
call qword [rsi + 0x18]
mov r11, r12
mov r12d, r13d
mov r10, rbp
lock inc qword [r10]
jg 0x1400a7e62
jmp 0x1400a8daf
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x1400a7de8
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0xf0]
lock dec qword [rax]
jne 0x1400a7c6d
jmp 0x1400a7c60
movzx eax, word [rbp + 4]
mov word [rsp + 0x144], ax
mov ecx, dword [rbp]
mov dword [rsp + 0x140], ecx
mov edx, dword [rbp - 0x21]
mov r8d, dword [rbp - 0x1e]
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x53], r8d
mov edx, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x53]
mov dword [rsp + 0x120], edx
mov dword [rsp + 0x123], r8d
mov dword [rsp + 0xe8], ecx
mov word [rsp + 0xec], ax
jmp 0x1400a7ee0
xor eax, eax
lock inc qword [r10]
jle 0x1400a8daf
lock inc qword [r11]
jle 0x1400a8daf
mov r13d, edi
mov rdi, qword [rsp + 0x128]
lock inc qword [rdi + 0x1d0]
lock inc qword [rdi]
jle 0x1400a8daf
mov r9d, r14d
lea rbp, [rsp + 0xe2]
movzx ecx, word [rbp + 4]
mov word [rsp + 0x144], cx
mov ecx, dword [rbp]
mov dword [rsp + 0x140], ecx
mov byte [rsp + 0xc0], 2
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd0], rsi
mov qword [rsp + 0xd8], r10
mov byte [rsp + 0xe0], r14b
mov byte [rsp + 0xe1], r12b
mov rsi, rdx
mov rbx, rax
mov r14, qword [rsp + 0xf0]
mov eax, dword [rsp + 0x120]
mov ecx, dword [rsp + 0x123]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2b], ecx
mov eax, dword [rsp + 0xe8]
mov dword [rsp + 0x40], eax
movzx eax, word [rsp + 0xec]
mov word [rsp + 0x44], ax
mov qword [rsp + 0x140], r14
movzx eax, byte [r14 + 0x80]
test al, al
je 0x1400a7f74
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [rsp + 0x93], ecx
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x3c], ax
mov r14, r11
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], r10
mov byte [rsp + 0x26], r9b
jmp 0x1400a7fdf
lea rcx, [r14 + 0x10]
mov al, 1
xchg byte [r14 + 0x48], al
mov ebp, 0
test al, al
cmove rbp, rcx
je 0x1400a813f
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [rsp + 0x93], ecx
mov dword [rsp + 0x90], eax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x38], eax
movzx eax, word [rsp + 0x44]
mov word [rsp + 0x3c], ax
mov r14, r11
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0xa8], r10
mov byte [rsp + 0x26], r9b
lea rbp, [rsp + 0xe2]
mov rsi, qword [rsp + 0x140]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
mov edi, 0
jne 0x1400a801d
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x1400a801d
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x1400a80f1
mov rax, qword [rsp + 0x140]
lock dec qword [rax]
jne 0x1400a8120
lea rcx, [rsp + 0x140]
call fcn.14006fb80
movzx eax, byte [rsp + 0xe1]
cmp r12b, 2
je 0x1400a8132
cmp al, 2
je 0x1400a806c
lea rcx, [rsp + 0xb0]
call fcn.1400a7a10
mov qword [rsp + 0xb0], r14
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xb8], rax
mov byte [rsp + 0xc0], r13b
mov eax, dword [rsp + 0x90]
mov ecx, dword [rsp + 0x93]
mov dword [rbp - 0x1e], ecx
mov dword [rbp - 0x21], eax
mov qword [rsp + 0xc8], rbx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xd0], rax
mov rax, qword [rsp + 0xa8]
mov qword [rsp + 0xd8], rax
movzx eax, byte [rsp + 0x26]
mov byte [rsp + 0xe0], al
mov byte [rsp + 0xe1], r12b
movzx eax, word [rsp + 0x3c]
mov word [rbp + 4], ax
mov eax, dword [rsp + 0x38]
mov dword [rbp], eax
jmp 0x1400a7c6d
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x1400a8109
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0x140]
lock dec qword [rax]
je 0x1400a803c
movzx eax, byte [rsp + 0xe1]
cmp r12b, 2
jne 0x1400a805b
cmp al, 2
jne 0x1400a7c6d
jmp 0x1400a8319
mov qword [rsp + 0x178], rcx
mov qword [rsp + 0x190], r11
mov qword [rsp + 0x198], r10
mov byte [rsp + 0x128], r9b
cmp byte [rbp + 0x31], 2
jne 0x1400a8daf
mov rcx, rbp
call fcn.1400579d0
mov rax, qword [rsp + 0x190]
mov qword [rbp], rax
mov qword [rbp + 8], rdi
mov byte [rbp + 0x10], r13b
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [rbp + 0x11], eax
mov dword [rbp + 0x14], ecx
mov qword [rbp + 0x18], rbx
mov qword [rbp + 0x20], rsi
mov rax, qword [rsp + 0x198]
mov qword [rbp + 0x28], rax
movzx eax, byte [rsp + 0x128]
mov byte [rbp + 0x30], al
mov byte [rbp + 0x31], r12b
mov eax, dword [rsp + 0x40]
mov dword [rbp + 0x32], eax
movzx eax, word [rsp + 0x44]
mov word [rbp + 0x36], ax
xor eax, eax
xchg byte [rbp + 0x38], al
movzx eax, byte [r14 + 0x80]
mov r12b, 2
test al, al
je 0x1400a8207
mov al, 1
xchg byte [r14 + 0x48], al
test al, al
lea rbp, [rsp + 0xe2]
movzx r13d, byte [rsp + 0x27]
mov rbx, qword [rsp + 0x138]
je 0x1400a822a
mov r14, qword [rsp + 0x130]
jmp 0x1400a7fdf
lea rbp, [rsp + 0xe2]
mov r14, qword [rsp + 0x130]
movzx r13d, byte [rsp + 0x27]
mov rbx, qword [rsp + 0x138]
jmp 0x1400a7fdf
mov rcx, qword [rsp + 0x178]
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x80], rax
movdqu xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
mov byte [r14 + 0x41], 2
movzx r12d, byte [rsp + 0x81]
cmp r12b, 2
jne 0x1400a828e
lea rcx, [rsp + 0x50]
call fcn.1400579d0
xor eax, eax
xchg byte [r14 + 0x48], al
mov r12b, 2
mov r14, qword [rsp + 0x130]
jmp 0x1400a7fdf
mov r8, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x98], rax
movzx r13d, byte [rsp + 0x60]
lea rdx, [rsp + 0x61]
mov eax, dword [rdx]
mov ecx, dword [rdx + 3]
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x93], ecx
mov rbx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xa8], rax
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x26], al
mov eax, dword [rdx + 0x21]
mov dword [rsp + 0x38], eax
movzx eax, word [rdx + 0x25]
mov word [rsp + 0x3c], ax
xor eax, eax
xchg byte [r14 + 0x48], al
mov r14, r8
jmp 0x1400a7fdf
mov rcx, rbx
call fcn.1400a7a10
mov r15, qword [rsp + 0x30]
jmp 0x1400a89fd
cmp qword [r15 + 0x18], 0
jne 0x1400a8364
lea rcx, [rsp + 0x50]
mov rdx, qword [rsp + 0x188]
mov r8, qword [rsp + 0x30]
call fcn.1400d1010
mov rbx, qword [rsp + 0x50]
test rbx, rbx
je 0x1400a8364
lea rcx, [rsp + 0x50]
call fcn.14008a7f0
cmp qword [rsp + 0x58], 0
je 0x1400a8364
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
cmp byte [rsp + 0xe1], 2
mov r15, qword [rsp + 0x30]
je 0x1400a89fd
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x170], rax
movdqa xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movaps xmm2, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x150], xmm1
movdqa xmmword [rsp + 0x140], xmm0
movzx eax, byte [r15]
test rax, rax
je 0x1400a83d3
cmp eax, 1
jne 0x1400a83d7
movzx ecx, byte [r15 + 1]
mov al, 1
jmp 0x1400a8453
xor eax, eax
jmp 0x1400a8453
mov rsi, qword [r15 + 8]
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400a8406
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400a8daf
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x20
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400a8daf
mov rbx, rax
lea rdx, [rsi + 0x18]
mov rax, qword [rsi]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
lea rcx, [rsp + 0xf0]
call qword [rax]
movdqu xmm0, xmmword [rsp + 0xf0]
movups xmm1, xmmword [rsp + 0x100]
movups xmmword [rbx + 0x10], xmm1
movdqu xmmword [rbx], xmm0
mov al, 2
mov byte [rsp + 0x50], al
mov byte [rsp + 0x51], cl
mov qword [rsp + 0x58], rbx
lea r15, [rsp + 0x60]
mov rcx, qword [rsp + 0x30]
lea rdx, [rcx + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
mov r9, qword [rcx + 0x20]
mov rcx, r15
call qword [rax]
mov rdi, qword [rsp + 0x48]
lea rax, [rdi + 0x40]
mov qword [rsp + 0xa0], rax
mov rcx, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x68]
lea r12, [rsp + 0x50]
mov r8, r12
call fcn.140090c50
mov r13, rax
mov rsi, qword [rdi + 0x40]
mov rbp, qword [rdi + 0x48]
shr rax, 0x39
mov qword [rsp + 0xa8], rax
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
xor eax, eax
mov qword [rsp + 0x98], rax
pcmpeqd xmm7, xmm7
mov r14, r13
and r14, rbp
movdqu xmm8, xmmword [rsi + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x1400a853c
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x1400a88cf
mov rax, qword [rsp + 0x98]
add r14, rax
add r14, 0x10
add rax, 0x10
mov qword [rsp + 0x98], rax
jmp 0x1400a84df
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
je 0x1400a84f9
tzcnt eax, ebx
add rax, r14
and rax, rbp
neg rax
lea rdi, [rax + rax*8]
lea rcx, [rsi + rdi*8]
add rcx, 0xffffffffffffffb8
mov rdx, r12
call fcn.140032500
test al, al
je 0x1400a8530
lea rdi, [rsi + rdi*8]
lea rcx, [rdi - 0x38]
mov rdx, r15
call fcn.14002f8a0
test al, al
je 0x1400a8530
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0xf0], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x80], rdi
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x88], rax
movzx eax, byte [rsp + 0x50]
cmp al, 3
mov r15, qword [rsp + 0x30]
je 0x1400a8614
cmp al, 2
jb 0x1400a85fd
mov rbx, qword [rsp + 0x58]
lea rcx, [rbx + 0x18]
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x10]
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0xa0]
cmp rax, qword [rdi - 8]
jbe 0x1400a89f0
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x80], rax
movdqa xmm0, xmmword [rsp + 0x140]
movaps xmm1, xmmword [rsp + 0x150]
movaps xmm2, xmmword [rsp + 0x160]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0xf0], 0
lea rcx, [rsp + 0xf0]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400a8da3
mov rbx, qword [rsp + 0xf0]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x1400a86d1
mov qword [rsp + 0xf0], 0
lea rcx, [rsp + 0xf0]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400a8da3
mov rcx, qword [rsp + 0xf0]
mov qword [0x1401a4140], rcx
test rcx, rcx
je 0x1400a8daf
mov rax, rbx
or rax, rcx
shr rax, 0x20
je 0x1400a86e7
mov rax, rbx
xor edx, edx
div rcx
jmp 0x1400a86ed
mov eax, ebx
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1400a8711
xor edx, edx
div rcx
mov rbx, rax
jmp 0x1400a8717
xor edx, edx
div ecx
mov ebx, eax
add rbx, r8
mov rax, rbx
shr rax, 9
movabs r12, 0x44b82fa09b5a53
mul r12
mov r14, rdx
shr r14, 0xb
imul eax, r14d, 0x3b9aca00
sub ebx, eax
mov rdx, qword [rdi - 8]
cmp rdx, qword [rdi - 0x10]
jne 0x1400a8755
lea rcx, [rdi - 0x18]
call fcn.140021010
mov rdx, qword [rdi - 8]
mov rax, qword [rdi - 0x18]
lea rcx, [rdx + rdx*8]
mov rdx, qword [rsp + 0x80]
mov qword [rax + rcx*8 + 0x30], rdx
movdqa xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movups xmmword [rax + rcx*8 + 0x20], xmm2
movups xmmword [rax + rcx*8 + 0x10], xmm1
movdqu xmmword [rax + rcx*8], xmm0
mov qword [rax + rcx*8 + 0x38], r14
mov dword [rax + rcx*8 + 0x40], ebx
inc qword [rdi - 8]
mov rax, qword [rsp + 0x48]
cmp qword [rax + 0xa8], 0
jne 0x1400a89fd
mov edi, dword [rax + 0xb8]
cmp edi, 0x3b9aca00
je 0x1400a89fd
mov r13, qword [rax + 0xb0]
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400a87ed
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400a8daf
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x48
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400a8daf
mov r14, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], 0
mov byte [rax + 0x20], 0
mov qword [rax + 0x28], 0
mov byte [rax + 0x38], 0
mov word [rax + 0x40], 0
lock inc qword [rax]
jle 0x1400a8daf
mov rax, qword [rsp + 0x48]
mov qword [rax + 0xa8], r14
test r13, r13
jne 0x1400a8856
test edi, edi
je 0x1400a8daf
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x1400a8da3
mov rbx, qword [rsp + 0x50]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x1400a88b2
mov qword [rsp + 0x50], 0
lea rcx, [rsp + 0x50]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x1400a8da3
mov rcx, qword [rsp + 0x50]
mov qword [0x1401a4140], rcx
test rcx, rcx
je 0x1400a8daf
mov rax, rbx
or rax, rcx
shr rax, 0x20
je 0x1400a8a6a
mov rax, rbx
xor edx, edx
div rcx
jmp 0x1400a8a70
mov rcx, qword [rsp + 0x48]
cmp qword [rcx + 0x50], 0
je 0x1400a8d88
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x110], xmm2
movaps xmmword [rsp + 0x100], xmm1
movaps xmmword [rsp + 0xf0], xmm0
mov rax, qword [rcx + 0x40]
mov rcx, qword [rcx + 0x48]
and r13, rcx
movdqu xmm0, xmmword [rax + r13]
pmovmskb edx, xmm0
test edx, edx
mov r15, qword [rsp + 0x30]
jne 0x1400a8948
mov r8d, 0x10
nop word [rax + rax]
add r13, r8
and r13, rcx
movdqu xmm0, xmmword [rax + r13]
pmovmskb edx, xmm0
add r8, 0x10
test edx, edx
je 0x1400a8930
tzcnt edx, edx
add rdx, r13
and rdx, rcx
movzx r8d, byte [rax + rdx]
test r8b, r8b
js 0x1400a896d
movdqa xmm0, xmmword [rax]
pmovmskb edx, xmm0
tzcnt edx, edx
movzx r8d, byte [rax + rdx]
lea r9, [rdx - 0x10]
and r9, rcx
mov rcx, qword [rsp + 0xa8]
mov byte [rax + rdx], cl
mov byte [r9 + rax + 0x10], cl
neg rdx
lea rcx, [rdx + rdx*8]
lea rdi, [rax + rcx*8]
and r8b, 1
movzx edx, r8b
mov r8, qword [rsp + 0x48]
sub qword [r8 + 0x50], rdx
movaps xmm0, xmmword [rsp + 0xf0]
movaps xmm1, xmmword [rsp + 0x100]
movaps xmm2, xmmword [rsp + 0x110]
movups xmmword [rax + rcx*8 - 0x28], xmm2
movups xmmword [rax + rcx*8 - 0x38], xmm1
movups xmmword [rax + rcx*8 - 0x48], xmm0
mov qword [rax + rcx*8 - 0x18], 8
xorps xmm0, xmm0
movups xmmword [rax + rcx*8 - 0x10], xmm0
mov rax, r8
inc qword [r8 + 0x58]
mov rax, qword [rax + 0xa0]
cmp rax, qword [rdi - 8]
ja 0x1400a862a
lea rcx, [rsp + 0x140]
call fcn.1400a7a10
cmp byte [r15], 2
jb 0x1400a8a2a
mov rdi, qword [r15 + 8]
lea rcx, [rdi + 0x18]
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
mov r8, qword [rdi + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
lea rcx, [r15 + 0x28]
mov rax, qword [r15 + 0x10]
mov rdx, qword [r15 + 0x18]
mov r8, qword [r15 + 0x20]
call qword [rax + 0x10]
movaps xmm6, xmmword [rsp + 0x1a0]
movaps xmm7, xmmword [rsp + 0x1b0]
movaps xmm8, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov eax, ebx
xor edx, edx
div ecx
imul r8, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
mov rdx, rax
or rdx, rcx
shr rdx, 0x20
je 0x1400a8a94
xor edx, edx
div rcx
mov r15, rax
jmp 0x1400a8a9b
xor edx, edx
div ecx
mov r15d, eax
add r15, r8
mov rax, r15
shr rax, 9
mul r12
mov r12, rdx
xor ecx, ecx
call fcn.140102310
test rax, rax
je 0x1400a8daf
mov rcx, qword [rax]
movabs rdx, 0x7fffffffffffffff
cmp rcx, rdx
jae 0x1400a8daf
lea rdx, [rcx + 1]
mov qword [rax], rdx
mov rdx, qword [rax + 8]
cmp rdx, 2
je 0x1400a8dac
mov rsi, qword [rax + 0x10]
mov ecx, 1
mov r8d, 1
lock xadd qword [rsi], r8
test rdx, rdx
je 0x1400a8b09
test r8, r8
jns 0x1400a8b14
jmp 0x1400a8daf
test r8, r8
js 0x1400a8daf
xor ecx, ecx
dec qword [rax]
lea rax, [rsi + 0x120]
lea r8, [rsi + 0xb8]
test rdx, rdx
mov qword [rsp + 0xf0], rcx
mov qword [rsp + 0xf8], rsi
cmove rax, r8
cmp dword [rax + 0xc8], 0x3b9aca00
je 0x1400a8daf
lea rcx, [rsp + 0xf8]
mov eax, 1
lock xadd qword [rsi], rax
test rdx, rdx
je 0x1400a8b8e
test rax, rax
js 0x1400a8daf
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x64], xmm0
movdqu xmmword [rsp + 0x54], xmm0
lock dec qword [rsi]
mov ebx, 1
jne 0x1400a8bb4
call fcn.140105ef0
jmp 0x1400a8bb4
test rax, rax
js 0x1400a8daf
pxor xmm0, xmm0
movdqu xmmword [rsp + 0x64], xmm0
movdqu xmmword [rsp + 0x54], xmm0
lock dec qword [rsi]
jne 0x1400a8bb2
call fcn.1401064e0
xor ebx, ebx
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400a8bdf
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400a8daf
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x70
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400a8daf
shr r12, 0xb
imul ecx, r12d, 0x3b9aca00
sub r15d, ecx
mov qword [rax], rbx
mov qword [rax + 8], rsi
mov qword [rax + 0x10], r12
mov dword [rax + 0x18], r15d
movdqu xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movdqu xmmword [rax + 0x1c], xmm0
movups xmmword [rax + 0x2c], xmm1
mov ecx, dword [rsp + 0x70]
mov dword [rax + 0x3c], ecx
mov qword [rax + 0x40], 0xffffffffffffffff
pxor xmm0, xmm0
movdqu xmmword [rax + 0x48], xmm0
movdqu xmmword [rax + 0x51], xmm0
mov ecx, dword [rsp + 0xf0]
mov edx, dword [rsp + 0xf3]
mov dword [rax + 0x61], ecx
mov dword [rax + 0x64], edx
mov byte [rax + 0x68], 0
mov ecx, dword [rsp + 0x28]
mov edx, dword [rsp + 0x2b]
mov dword [rax + 0x6c], edx
mov dword [rax + 0x69], ecx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x50], r13
mov dword [rsp + 0x58], edi
mov byte [rsp + 0x68], 0
mov rax, qword [rsp + 0x180]
mov rcx, qword [rax]
mov r15, qword [rsp + 0x30]
jmp 0x1400a8c90
pause
mov rax, qword [rcx + 8]
nop word cs:[rax + rax]
cmp rax, 0xffffffffffffffff
je 0x1400a8c8e
test rax, rax
js 0x1400a8daf
lea rdx, [rax + 1]
lock cmpxchg qword [rcx + 8], rdx
jne 0x1400a8ca0
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x70], r14
mov rax, qword [rsp + 0x48]
mov rdi, qword [rax]
test rdi, rdi
je 0x1400a8d5a
mov rsi, qword [rax + 8]
mov rbx, qword [rsi + 0x10]
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x1400a8d09
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x1400a8daf
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x30
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x1400a8daf
dec rbx
and rbx, 0xfffffffffffffff0
lea rcx, [rbx + rdi]
add rcx, 0x10
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmmword [rax + 0x20], xmm2
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
lea r8, [0x140170e00]
mov rdx, rax
call qword [rsi + 0x18]
jmp 0x1400a89fd
lea rcx, [rsp + 0x50]
call fcn.140096760
mov rcx, rax
mov edx, 0x84
mov eax, 0xcc
lock cmpxchg qword [rcx], rdx
je 0x1400a89fd
mov rax, qword [rcx + 0x10]
call qword [rax + 0x20]
jmp 0x1400a89fd
lea rdx, [rcx + 0x60]
mov rcx, qword [rsp + 0xa0]
call fcn.1400cebb0
mov rcx, qword [rsp + 0x48]
jmp 0x1400a88df
call sub.KERNEL32.dll_GetLastError
ud2
mov qword [rax], rcx
ud2