Function at 0x14006b220
Capabilities:
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, 0x538
mov qword [rsp + 0x208], rdx
cmp byte [rcx + 0x48], 2
je 0x14006c759
mov r15, rcx
lea rbx, [rcx + 0x38]
mov r13, qword [rbx]
lea r14, [r13 + 0x10]
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
movzx eax, byte [r13 + 0x18]
test al, al
jne 0x14006c759
mov ebp, dword [r15 + 0x40]
mov rcx, qword [r13 + 0x1c8]
cmp rcx, rbp
jbe 0x14006c759
mov rdx, qword [r13 + 0x1b8]
test rdx, rdx
je 0x14006c759
imul rsi, rbp, 0x130
cmp dword [rdx + rsi], 2
je 0x14006c759
mov r12d, dword [r15 + 0x44]
lea rax, [rdx + rsi]
cmp dword [rax + 0x114], r12d
jne 0x14006c759
cmp qword [rax + 0x18], 0
je 0x14006b533
mov qword [rsp + 0x200], r14
mov qword [rsp + 0xd8], rbx
mov rcx, qword [rax + 0x20]
cmp qword [r13 + 0x50], rcx
jbe 0x14006c759
mov r11, r15
mov r8, qword [rax + 0x28]
imul r15, rcx, 0xf0
add r15, qword [r13 + 0x40]
mov r9, qword [r13 + 0x60]
mov rdx, qword [r15]
mov r10, qword [r15 + 8]
mov qword [rsp + 0x1f8], r10
mov rbx, qword [r15 + 0x10]
mov r10, qword [r15 + 0x18]
mov qword [rsp + 0x1f0], r10
movzx edi, byte [r15 + 0x20]
movzx r10d, byte [r15 + 0x21]
mov byte [rsp + 0x25], r10b
movzx r10d, word [r15 + 0x22]
mov word [rsp + 0x26], r10w
mov r10d, dword [r15 + 0x24]
mov dword [rsp + 0x2c], r10d
mov r10d, dword [r15 + 0x28]
mov dword [rsp + 0x28], r10d
movups xmm0, xmmword [r15 + 0x78]
movups xmmword [rsp + 0x28c], xmm0
movups xmm0, xmmword [r15 + 0x6c]
movaps xmmword [rsp + 0x280], xmm0
movups xmm0, xmmword [r15 + 0x5c]
movaps xmmword [rsp + 0x270], xmm0
movups xmm0, xmmword [r15 + 0x4c]
movaps xmmword [rsp + 0x260], xmm0
movups xmm0, xmmword [r15 + 0x3c]
movaps xmmword [rsp + 0x250], xmm0
movups xmm0, xmmword [r15 + 0x2c]
movaps xmmword [rsp + 0x240], xmm0
mov r10, qword [r15 + 0xe8]
mov qword [rsp + 0xb0], r10
movups xmm0, xmmword [r15 + 0xd8]
movaps xmmword [rsp + 0xa0], xmm0
movups xmm0, xmmword [r15 + 0xc8]
movaps xmmword [rsp + 0x90], xmm0
movups xmm0, xmmword [r15 + 0x88]
movups xmm1, xmmword [r15 + 0x98]
movups xmm2, xmmword [r15 + 0xa8]
movups xmm3, xmmword [r15 + 0xb8]
movaps xmmword [rsp + 0x80], xmm3
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov qword [r15], 2
mov qword [r15 + 8], r9
lea r14, [r15 + 0x2c]
cmp rdx, 2
je 0x14006c669
movups xmm0, xmmword [r14 + 0x4c]
movups xmmword [rsp + 0x45c], xmm0
movups xmm0, xmmword [r14 + 0x40]
movaps xmmword [rsp + 0x450], xmm0
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movaps xmmword [rsp + 0x440], xmm3
movaps xmmword [rsp + 0x430], xmm2
movaps xmmword [rsp + 0x420], xmm1
movaps xmmword [rsp + 0x410], xmm0
dec qword [r13 + 0x58]
mov qword [r13 + 0x60], rcx
cmp rcx, r8
jne 0x14006b481
test rdx, rdx
mov r14, qword [rsp + 0x200]
jne 0x14006c759
mov r15, r11
mov qword [rax + 0x18], 0
jmp 0x14006b4a9
test rdx, rdx
mov r14, qword [rsp + 0x200]
je 0x14006c759
mov r15, r11
mov qword [rax + 0x18], 1
mov rcx, qword [rsp + 0x1f8]
mov qword [rax + 0x20], rcx
movups xmm0, xmmword [rsp + 0x45c]
movups xmmword [rsp + 0x39c], xmm0
movaps xmm0, xmmword [rsp + 0x450]
movaps xmmword [rsp + 0x390], xmm0
movaps xmm0, xmmword [rsp + 0x410]
movaps xmm1, xmmword [rsp + 0x420]
movaps xmm2, xmmword [rsp + 0x430]
movaps xmm3, xmmword [rsp + 0x440]
movaps xmmword [rsp + 0x380], xmm3
movaps xmmword [rsp + 0x370], xmm2
movaps xmmword [rsp + 0x360], xmm1
movaps xmmword [rsp + 0x350], xmm0
cmp rbx, 3
je 0x14006b64c
cmp rbx, 6
jne 0x14006c759
mov rdx, qword [r13 + 0x1b8]
mov rcx, qword [r13 + 0x1c8]
mov rbx, qword [rsp + 0xd8]
cmp rcx, rbp
jbe 0x14006c759
test rdx, rdx
je 0x14006c759
cmp dword [rdx + rsi], 2
je 0x14006c759
add rdx, rsi
cmp dword [rdx + 0x114], r12d
jne 0x14006c759
add rdx, 0x50
lea rcx, [rsp + 0x50]
call fcn.14002c540
movzx edi, byte [rsp + 0x50]
cmp dil, 3
mov qword [rsp + 0xd0], r15
jne 0x14006b619
cmp byte [rsp + 0x51], 0
je 0x14006b706
mov rax, qword [rsp + 0x208]
mov rax, qword [rax]
mov rdx, qword [rax]
mov rcx, qword [rax + 8]
call qword [rdx]
cmp qword [r13 + 0x1c8], rbp
jbe 0x14006c759
mov rbx, qword [r13 + 0x1b8]
test rbx, rbx
je 0x14006c759
cmp dword [rbx + rsi], 2
je 0x14006c759
add rbx, rsi
cmp dword [rbx + 0x114], r12d
jne 0x14006c759
mov rdi, rax
mov r15, rdx
mov rax, qword [rbx + 0xa8]
test rax, rax
je 0x14006b5f6
mov rcx, qword [rbx + 0xb0]
call qword [rax + 0x18]
mov qword [rbx + 0xa8], rdi
mov qword [rbx + 0xb0], r15
mov rcx, r14
call fcn.140118b6c
mov r15, qword [rsp + 0xd0]
jmp 0x14006b6dd
movzx esi, byte [rsp + 0x51]
movzx r15d, word [rsp + 0x52]
mov r12d, dword [rsp + 0x54]
mov ebp, dword [rsp + 0x58]
movups xmm0, xmmword [rsp + 0x5c]
movaps xmmword [rsp + 0x3b0], xmm0
movups xmm0, xmmword [rsp + 0x68]
movups xmmword [rsp + 0x3bc], xmm0
jmp 0x14006b747
movups xmm0, xmmword [rsp + 0x39c]
movups xmmword [rsp + 0x3fc], xmm0
movaps xmm0, xmmword [rsp + 0x390]
movaps xmmword [rsp + 0x3f0], xmm0
movaps xmm0, xmmword [rsp + 0x350]
movaps xmm1, xmmword [rsp + 0x360]
movaps xmm2, xmmword [rsp + 0x370]
movaps xmm3, xmmword [rsp + 0x380]
movaps xmmword [rsp + 0x3e0], xmm3
movaps xmmword [rsp + 0x3d0], xmm2
movaps xmmword [rsp + 0x3c0], xmm1
movaps xmmword [rsp + 0x3b0], xmm0
mov rcx, r14
call fcn.140118b6c
mov rbp, qword [rsp + 0x1f0]
cmp rbp, 3
je 0x14006b7ec
cmp rbp, 4
mov rbx, qword [rsp + 0xd8]
movzx ecx, word [rsp + 0x26]
jne 0x14006b815
cmp dword [r15], 2
je 0x14006c759
mov rcx, r15
mov rdx, qword [rsp + 0x208]
call fcn.1400b57d0
test al, al
je 0x14006c5fb
mov al, 1
jmp 0x14006c5fd
cmp qword [r13 + 0x1c8], rbp
jbe 0x14006c759
mov rax, qword [r13 + 0x1b8]
test rax, rax
je 0x14006c759
cmp dword [rax + rsi], 2
je 0x14006c759
add rax, rsi
cmp dword [rax + 0x114], r12d
jne 0x14006c759
mov sil, 1
mov ebp, 1
xor edi, edi
mov rcx, r14
call fcn.140118b6c
mov byte [rsp + 0x50], dil
mov byte [rsp + 0x51], sil
mov word [rsp + 0x52], r15w
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], ebp
movaps xmm0, xmmword [rsp + 0x3b0]
movups xmmword [rsp + 0x5c], xmm0
movups xmm0, xmmword [rsp + 0x3bc]
movups xmmword [rsp + 0x68], xmm0
test dil, dil
je 0x14006b7be
movzx eax, dil
cmp eax, 1
mov r15, qword [rsp + 0xd0]
jne 0x14006b7cf
mov rax, qword [rsp + 0x58]
movups xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x240], xmm0
mov rcx, qword [rsp + 0x70]
mov qword [rsp + 0x250], rcx
mov cl, 1
jmp 0x14006b8c7
mov eax, ebp
xor ecx, ecx
mov r15, qword [rsp + 0xd0]
jmp 0x14006b8c7
cmp qword [rsp + 0x58], 0
je 0x14006b8b9
lea rdx, [rsp + 0x58]
mov ecx, esi
call fcn.140021640
jmp 0x14006b8c5
mov qword [rsp + 0xd0], r15
mov rbx, qword [rsp + 0xd8]
movzx esi, byte [rsp + 0x25]
mov r12d, dword [rsp + 0x2c]
mov ebp, dword [rsp + 0x28]
movzx r15d, word [rsp + 0x26]
jmp 0x14006b74f
movups xmm0, xmmword [rsp + 0x3fc]
movups xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rsp + 0x3ec]
movups xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x3dc]
movups xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x3cc]
movups xmmword [rsp + 0x110], xmm0
mov byte [rsp + 0xe8], dil
movzx eax, byte [rsp + 0x25]
mov byte [rsp + 0xe9], al
mov word [rsp + 0xea], cx
mov eax, dword [rsp + 0x2c]
mov dword [rsp + 0xec], eax
mov eax, dword [rsp + 0x28]
mov dword [rsp + 0xf0], eax
movaps xmm0, xmmword [rsp + 0x3b0]
movups xmmword [rsp + 0xf4], xmm0
movups xmm0, xmmword [rsp + 0x3bc]
movups xmmword [rsp + 0x100], xmm0
lea rcx, [rsp + 0x150]
mov rdx, rbx
call fcn.140021bf0
jmp 0x14006b90b
movzx eax, sil
shl rax, 0x20
or rax, 3
mov cl, 4
mov byte [rsp + 0xe8], cl
mov byte [rsp + 0xe9], sil
mov dword [rsp + 0xec], r12d
mov qword [rsp + 0xf0], rax
movaps xmm0, xmmword [rsp + 0x240]
movups xmmword [rsp + 0xf8], xmm0
mov rax, qword [rsp + 0x250]
mov qword [rsp + 0x108], rax
mov ebp, 3
lea rax, [r15 + 0x18]
mov rcx, qword [rsp + 0x108]
mov qword [rsp + 0x230], rcx
movzx ecx, byte [rsp + 0xe8]
movzx edx, byte [rsp + 0xe9]
movzx r8d, word [rsp + 0xea]
mov r9d, dword [rsp + 0xec]
mov r10, qword [rsp + 0xf0]
movups xmm0, xmmword [rsp + 0xf8]
movaps xmmword [rsp + 0x220], xmm0
mov byte [rsp + 0x210], cl
mov byte [rsp + 0x211], dl
mov word [rsp + 0x212], r8w
mov dword [rsp + 0x214], r9d
mov qword [rsp + 0x218], r10
movups xmm0, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x470], xmm0
movups xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x480], xmm0
movups xmm0, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x490], xmm0
movups xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x4a0], xmm0
movups xmm0, xmmword [rsp + 0x150]
movaps xmmword [rsp + 0x4b0], xmm0
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movaps xmmword [rsp + 0x30], xmm0
movaps xmmword [rsp + 0x40], xmm1
mov rcx, rbx
call fcn.140021c90
lock dec qword [r13]
jne 0x14006b9f7
mov rcx, qword [rbx]
call fcn.140039b80
mov byte [r15 + 0x48], 2
cmp rbp, 3
jne 0x14006ba9f
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x100], rax
movaps xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
mov rbx, qword [rsp + 0x30]
mov rcx, rbx
call fcn.14003fe60
test rax, rax
je 0x14006bbdb
mov rdi, rax
movzx eax, byte [rsp + 0xe0]
lea rcx, [rax - 2]
cmp rcx, 2
jb 0x14006c165
test rax, rax
je 0x14006c165
cmp eax, 1
jne 0x14006bc0d
lea rcx, [rsp + 0x100]
mov rax, qword [rsp + 0xe8]
mov rdx, qword [rsp + 0xf0]
mov r8, qword [rsp + 0xf8]
call qword [rax + 0x10]
jmp 0x14006c165
mov qword [rsp + 0x50], rbp
movaps xmm0, xmmword [rsp + 0x210]
movaps xmm1, xmmword [rsp + 0x220]
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm1
mov rax, qword [rsp + 0x230]
mov qword [rsp + 0x78], rax
movaps xmm0, xmmword [rsp + 0x470]
movaps xmm1, xmmword [rsp + 0x480]
movaps xmm2, xmmword [rsp + 0x490]
movaps xmm3, xmmword [rsp + 0x4a0]
movups xmmword [rsp + 0x80], xmm0
movups xmmword [rsp + 0x90], xmm1
movups xmmword [rsp + 0xa0], xmm2
movups xmmword [rsp + 0xb0], xmm3
movaps xmm0, xmmword [rsp + 0x4b0]
movups xmmword [rsp + 0xc0], xmm0
mov r13, qword [rsp + 0x30]
test r13, r13
je 0x14006bcde
lea rdi, [r13 + 0x10]
mov rcx, rdi
call sub.KERNEL32.dll_AcquireSRWLockExclusive
movzx eax, byte [r13 + 0x18]
test al, al
jne 0x14006c759
cmp dword [r13 + 0x58], 0x3b9aca00
je 0x14006bcd6
mov qword [rsp + 0xe0], 0
lea rcx, [rsp + 0xe0]
call sub.KERNEL32.dll_QueryPerformanceCounter
test eax, eax
je 0x14006c75d
mov rbx, qword [rsp + 0xe0]
mov rcx, qword [0x1401a4140]
test rcx, rcx
jne 0x14006bbbe
mov qword [rsp + 0xe0], 0
lea rcx, [rsp + 0xe0]
call sub.KERNEL32.dll_QueryPerformanceFrequency
test eax, eax
je 0x14006c75d
mov rcx, qword [rsp + 0xe0]
mov qword [0x1401a4140], rcx
test rcx, rcx
je 0x14006c759
mov rax, rbx
or rax, rcx
shr rax, 0x20
je 0x14006bc7b
mov rax, rbx
xor edx, edx
div rcx
jmp 0x14006bc81
lea rcx, [rsp + 0x210]
call fcn.14003daf0
mov rdi, rax
test rbx, rbx
je 0x14006c185
lock dec qword [rbx]
jne 0x14006c185
lea rcx, [rsp + 0x30]
call fcn.14006e380
jmp 0x14006c185
mov rax, qword [rsp + 0xe8]
mov ecx, eax
and ecx, 3
lea rdx, [rcx - 2]
cmp rdx, 2
jb 0x14006c165
test rcx, rcx
je 0x14006c165
lea rbx, [rax - 1]
mov r14, qword [rax - 1]
mov rsi, qword [rax + 7]
mov rcx, r14
call qword [rsi]
cmp qword [rsi + 8], 0
je 0x14006bc65
cmp qword [rsi + 0x10], 0x11
jb 0x14006bc54
mov r14, qword [r14 - 8]
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, r14
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
jmp 0x14006c165
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 0x14006bca5
xor edx, edx
div rcx
mov rcx, rax
jmp 0x14006bcab
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
mov qword [r13 + 0x50], rdx
mov dword [r13 + 0x58], ecx
mov rcx, rdi
call fcn.140118b6c
mov r12, r15
lea rcx, [rsp + 0x50]
call fcn.14003c600
mov r15, rax
mov rdi, rdx
movups xmm0, xmmword [rsp + 0x38]
movaps xmmword [rsp + 0x350], xmm0
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x360], rax
movzx eax, word [rsp + 0xb8]
mov word [rsp + 0x368], ax
mov rbx, qword [rsp + 0x350]
cmp eax, 0xc8
jne 0x14006be29
test rbx, rbx
je 0x14006be29
mov r14, qword [rsp + 0x38]
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x340], rax
mov rbx, qword [rsp + 0x48]
test r15, r15
je 0x14006bfeb
test rdi, rdi
je 0x14006bfeb
lea r15, [rsp + 0x38]
mov rcx, r15
mov edx, 2
call fcn.1400bdda0
mov byte [rsp + 0xe0], 2
mov dword [rsp + 0xe4], 2
lea rcx, [rsp + 0xe0]
call fcn.14003daf0
mov rdi, rax
mov rcx, r15
call fcn.140021c90
lock dec qword [r14]
je 0x14006c2da
lock dec qword [rbx]
je 0x14006c2ec
cmp qword [rsp + 0x70], 0
mov r15, r12
je 0x14006bdcf
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rsp + 0x88]
test rsi, rsi
je 0x14006c098
mov rbx, qword [rsp + 0x78]
add rbx, 0x30
jmp 0x14006be0f
mov rax, qword [rbx - 0x18]
mov rdx, qword [rbx - 0x10]
mov r8, qword [rbx - 8]
mov rcx, rbx
call qword [rax + 0x10]
add rbx, 0x68
dec rsi
je 0x14006c098
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14006bdf0
lea rcx, [rbx + 0x28]
mov rdx, qword [rbx + 0x18]
mov r8, qword [rbx + 0x20]
call qword [rax + 0x10]
jmp 0x14006bdf0
movups xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x2a0], xmm0
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x290], xmm0
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x280], xmm0
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmm3, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x270], xmm3
movaps xmmword [rsp + 0x260], xmm2
movaps xmmword [rsp + 0x250], xmm1
movaps xmmword [rsp + 0x240], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0xe0], xmm0
mov qword [rsp + 0x330], r13
lea rcx, [rsp + 0xe0]
call fcn.14002e330
xor esi, esi
test al, al
cmove rsi, r13
test r13, r13
je 0x14006bedc
test al, al
je 0x14006bedc
lock dec qword [r13]
jne 0x14006beda
lea rcx, [rsp + 0x330]
call fcn.14006e380
xor esi, esi
test r15, r15
je 0x14006bee7
cmp rdi, 0xfffffffffffffffe
jb 0x14006beff
lea rcx, [rsp + 0xe0]
call fcn.14002e330
movzx eax, al
lea rdi, [rax*2 - 2]
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x2b0], xmm0
movaps xmm0, xmmword [rsp + 0x240]
movaps xmm1, xmmword [rsp + 0x250]
movaps xmm2, xmmword [rsp + 0x260]
movaps xmm3, xmmword [rsp + 0x270]
movaps xmmword [rsp + 0x2c0], xmm0
movaps xmmword [rsp + 0x2d0], xmm1
movaps xmmword [rsp + 0x2e0], xmm2
movaps xmmword [rsp + 0x2f0], xmm3
movaps xmm0, xmmword [rsp + 0x280]
movaps xmmword [rsp + 0x300], xmm0
movaps xmm0, xmmword [rsp + 0x290]
movaps xmmword [rsp + 0x310], xmm0
movaps xmm0, xmmword [rsp + 0x2a0]
movaps xmmword [rsp + 0x320], xmm0
mov r14d, 2
test rbx, rbx
mov r15, r12
je 0x14006bfd0
lea rcx, [rsp + 0x350]
call fcn.140021c90
mov rax, qword [rsp + 0x350]
lock dec qword [rax]
jne 0x14006bfb5
mov rcx, qword [rsp + 0x350]
call fcn.140039b80
mov rax, qword [rsp + 0x360]
lock dec qword [rax]
jne 0x14006bfd0
mov rcx, qword [rsp + 0x360]
call case.0x14006214f.13
xor eax, eax
mov rcx, qword [r15]
mov qword [r15], 2
cmp rcx, 2
jne 0x14006c52e
jmp 0x14006c759
movups xmm0, xmmword [rsp + 0xb0]
movaps xmmword [rsp + 0x140], xmm0
movups xmm0, xmmword [rsp + 0xa0]
movaps xmmword [rsp + 0x130], xmm0
movups xmm0, xmmword [rsp + 0x90]
movaps xmmword [rsp + 0x120], xmm0
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movups xmm3, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0x110], xmm3
movaps xmmword [rsp + 0x100], xmm2
movaps xmmword [rsp + 0xf0], xmm1
movaps xmmword [rsp + 0xe0], xmm0
movups xmm0, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x3b0], xmm0
xorps xmm0, xmm0
movaps xmmword [rsp + 0x150], xmm0
mov qword [rsp + 0x178], 0
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
je 0x14006c308
mov r15, r12
jmp 0x14006c323
cmp qword [rsp + 0x80], 0
je 0x14006c0b6
mov r8, qword [rsp + 0x78]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rsi, qword [rsp + 0xa0]
test rsi, rsi
je 0x14006c0eb
mov rbx, qword [rsp + 0x90]
add rbx, 0x38
nop
mov rax, qword [rbx - 0x18]
mov rdx, qword [rbx - 0x10]
mov r8, qword [rbx - 8]
mov rcx, rbx
call qword [rax + 0x10]
add rbx, 0x48
dec rsi
jne 0x14006c0d0
cmp qword [rsp + 0x98], 0
je 0x14006c10c
mov r8, qword [rsp + 0x90]
mov rcx, qword [0x1401a4160]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rbx, qword [rsp + 0xb0]
test rbx, rbx
je 0x14006c132
mov rcx, rbx
call fcn.14002a9d0
mov rcx, qword [0x1401a4160]
xor edx, edx
mov r8, rbx
call sub.KERNEL32.dll_HeapFree
lea rbx, [rsp + 0xc0]
mov rcx, rbx
call fcn.14002e3d0
mov rcx, rbx
call fcn.140021c90
mov rax, qword [rsp + 0xc0]
lock dec qword [rax]
jne 0x14006c165
mov rcx, qword [rsp + 0xc0]
call fcn.140039b80
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x14006c17f
lock dec qword [rax]
jne 0x14006c17f
lea rcx, [rsp + 0x30]
call fcn.14006e380
cmp rbp, 3
jne 0x14006c1be
mov rsi, qword [rsp + 0x38]
test rsi, rsi
je 0x14006c1be
lea rcx, [rsp + 0x38]
call fcn.140021c90
lock dec qword [rsi]
jne 0x14006c1a9
mov rcx, qword [rsp + 0x38]
call fcn.140039b80
mov rax, qword [rsp + 0x48]
lock dec qword [rax]
jne 0x14006c1be
mov rcx, qword [rsp + 0x48]
call case.0x14006214f.13
mov rax, qword [r15]
mov qword [r15], 2
cmp rax, 2
je 0x14006c759
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [r15 + 8]
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0xe0], rdi
mov qword [rsp + 0xe8], 3
movaps xmm0, xmmword [rsp + 0x2c0]
movaps xmm1, xmmword [rsp + 0x2d0]
movaps xmm2, xmmword [rsp + 0x2e0]
movaps xmm3, xmmword [rsp + 0x2f0]
movups xmmword [rsp + 0xf0], xmm0
movups xmmword [rsp + 0x100], xmm1
movups xmmword [rsp + 0x110], xmm2
movups xmmword [rsp + 0x120], xmm3
movaps xmm0, xmmword [rsp + 0x300]
movups xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rsp + 0x310]
movups xmmword [rsp + 0x140], xmm0
movaps xmm0, xmmword [rsp + 0x320]
movups xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rsp + 0x178], xmm0
mov rax, qword [rsp + 0x530]
mov qword [rsp + 0x1e0], rax
movups xmm0, xmmword [rsp + 0x520]
movups xmmword [rsp + 0x1d0], xmm0
movups xmm0, xmmword [rsp + 0x4e0]
movups xmm1, xmmword [rsp + 0x4f0]
movups xmm2, xmmword [rsp + 0x500]
movups xmm3, xmmword [rsp + 0x510]
movups xmmword [rsp + 0x1c0], xmm3
movups xmmword [rsp + 0x1b0], xmm2
movups xmmword [rsp + 0x1a0], xmm1
movups xmmword [rsp + 0x190], xmm0
jmp 0x14006c5e9
mov rcx, r14
call fcn.140039b80
lock dec qword [rbx]
jne 0x14006bdb1
mov rcx, rbx
call case.0x14006214f.13
cmp qword [rsp + 0x70], 0
mov r15, r12
jne 0x14006bdbc
jmp 0x14006bdcf
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x14006c759
mov rcx, rax
mov r15, r12
mov qword [0x1401a4160], rax
mov r8d, 0x70
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x14006c759
mov rdi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
xorps xmm0, xmm0
movups xmmword [rax + 0x30], xmm0
lock inc qword [rax]
jle 0x14006c759
mov rax, qword [rsp + 0x340]
mov qword [rsp + 0x348], rax
movaps xmm1, xmmword [rsp + 0x3b0]
movaps xmmword [rsp + 0x4d0], xmm1
movaps xmmword [rsp + 0x4c0], xmm0
movaps xmmword [rsp + 0x330], xmm0
movzx eax, byte [0x1401a4170]
mov rcx, qword [0x1401a4160]
test rcx, rcx
jne 0x14006c3b7
call sub.KERNEL32.dll_GetProcessHeap
test rax, rax
je 0x14006c759
mov rcx, rax
mov qword [0x1401a4160], rax
mov r8d, 0x50
xor edx, edx
call sub.KERNEL32.dll_HeapAlloc
test rax, rax
je 0x14006c759
mov qword [rax], r14
mov rcx, qword [rsp + 0x348]
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rbx
movaps xmm0, xmmword [rsp + 0x4d0]
movups xmmword [rax + 0x18], xmm0
lea rcx, [0x140170ea8]
mov qword [rax + 0x28], rcx
lea rdx, str.combase.dll
mov qword [rax + 0x30], rdx
movaps xmm0, xmmword [rsp + 0x4c0]
movups xmmword [rax + 0x38], xmm0
mov qword [rax + 0x48], r13
mov qword [rsp + 0x420], rcx
mov qword [rsp + 0x428], rdx
movaps xmm0, xmmword [rsp + 0x330]
movups xmmword [rsp + 0x430], xmm0
mov qword [rsp + 0x410], rax
lea rax, [0x140171eb8]
mov qword [rsp + 0x418], rax
lea rdx, [rsp + 0x410]
mov rcx, rdi
call fcn.14003c210
lea rcx, [rsp + 0x140]
mov edx, 1
mov r8, rdi
call fcn.1400c9350
test rax, 0xfffffffffffffffd
jne 0x14006c611
movaps xmm0, xmmword [rsp + 0x140]
movaps xmmword [rsp + 0x320], xmm0
movaps xmm0, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0x310], xmm0
movaps xmm0, xmmword [rsp + 0x120]
movaps xmmword [rsp + 0x300], xmm0
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmm1, xmmword [rsp + 0xf0]
movaps xmm2, xmmword [rsp + 0x100]
movaps xmm3, xmmword [rsp + 0x110]
movaps xmmword [rsp + 0x2f0], xmm3
movaps xmmword [rsp + 0x2e0], xmm2
movaps xmmword [rsp + 0x2d0], xmm1
movaps xmmword [rsp + 0x2c0], xmm0
mov r14, qword [rsp + 0x150]
mov rsi, qword [rsp + 0x158]
mov rdi, qword [rsp + 0x160]
movups xmm0, xmmword [rsp + 0x168]
movaps xmmword [rsp + 0x2b0], xmm0
mov rax, qword [rsp + 0x178]
mov rcx, qword [r15]
mov qword [r15], 2
cmp rcx, 2
je 0x14006c759
mov qword [rsp + 0x50], rcx
movups xmm0, xmmword [r15 + 8]
movups xmmword [rsp + 0x58], xmm0
movaps xmm0, xmmword [rsp + 0x320]
movups xmmword [rsp + 0x150], xmm0
movaps xmm0, xmmword [rsp + 0x310]
movups xmmword [rsp + 0x140], xmm0
movaps xmm0, xmmword [rsp + 0x300]
movups xmmword [rsp + 0x130], xmm0
movaps xmm0, xmmword [rsp + 0x2c0]
movaps xmm1, xmmword [rsp + 0x2d0]
movaps xmm2, xmmword [rsp + 0x2e0]
movaps xmm3, xmmword [rsp + 0x2f0]
movups xmmword [rsp + 0x120], xmm3
movups xmmword [rsp + 0x110], xmm2
movups xmmword [rsp + 0x100], xmm1
movups xmmword [rsp + 0xf0], xmm0
mov qword [rsp + 0x160], r14
mov qword [rsp + 0x168], rsi
mov qword [rsp + 0x170], rdi
movaps xmm0, xmmword [rsp + 0x2b0]
movups xmmword [rsp + 0x178], xmm0
mov qword [rsp + 0x188], rax
mov qword [rsp + 0xe8], 4
lea rcx, [rsp + 0x50]
lea rdx, [rsp + 0xe0]
call fcn.1400b5a90
xor eax, eax
add rsp, 0x538
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, rdx
test rdx, rdx
je 0x14006c47a
mov rax, qword [rdi + 0x30]
nop word cs:[rax + rax]
mov rcx, rax
or rcx, 4
lock cmpxchg qword [rdi + 0x30], rcx
jne 0x14006c630
and eax, 0xa
cmp eax, 8
jne 0x14006c652
mov rax, qword [rdi + 0x10]
mov rcx, qword [rdi + 0x18]
call qword [rax + 0x10]
lock dec qword [rdi]
jne 0x14006c47a
mov rcx, rdi
call fcn.14006fd40
jmp 0x14006c47a
lea rsi, [r15 + 0x88]
mov rcx, r15
call fcn.14002b6d0
mov qword [r15], 2
mov rax, qword [rsp + 0x1f8]
mov qword [r15 + 8], rax
mov qword [r15 + 0x10], rbx
mov rax, qword [rsp + 0x1f0]
mov qword [r15 + 0x18], rax
mov byte [r15 + 0x20], dil
movzx eax, byte [rsp + 0x25]
mov byte [r15 + 0x21], al
movzx eax, word [rsp + 0x26]
mov word [r15 + 0x22], ax
mov eax, dword [rsp + 0x2c]
mov dword [r15 + 0x24], eax
mov eax, dword [rsp + 0x28]
mov dword [r15 + 0x28], eax
movups xmm0, xmmword [rsp + 0x28c]
movups xmmword [r14 + 0x4c], xmm0
movaps xmm0, xmmword [rsp + 0x280]
movups xmmword [r14 + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x240]
movaps xmm1, xmmword [rsp + 0x250]
movaps xmm2, xmmword [rsp + 0x260]
movaps xmm3, xmmword [rsp + 0x270]
movups xmmword [r14 + 0x30], xmm3
movups xmmword [r14 + 0x20], xmm2
movups xmmword [r14 + 0x10], xmm1
movups xmmword [r14], xmm0
mov rax, qword [rsp + 0xb0]
mov qword [rsi + 0x60], rax
movaps xmm0, xmmword [rsp + 0xa0]
movups xmmword [rsi + 0x50], xmm0
movaps xmm0, xmmword [rsp + 0x90]
movups xmmword [rsi + 0x40], xmm0
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmm2, xmmword [rsp + 0x70]
movaps xmm3, xmmword [rsp + 0x80]
movups xmmword [rsi + 0x30], xmm3
movups xmmword [rsi + 0x20], xmm2
movups xmmword [rsi + 0x10], xmm1
movups xmmword [rsi], xmm0
ud2
call sub.KERNEL32.dll_GetLastError
ud2