Function at 0x140088cb0
Capabilities:
Access peb ldr_data

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
movaps xmmword [rsp + 0x70], xmm6
movaps xmmword [rsp + 0x60], xmm7
mov rax, qword [0x14022b800]
xor rax, rsp
mov qword [rsp + 0x58], rax
mov r15, rdx
mov rbx, rcx
mov esi, 8
mov rax, qword gs:[0x58]
mov rdi, qword [rax]
cmp byte [rsi + rdi], 0
jne 0x140088d19
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
lea rdx, str.Pipelines::AudioMixer2::QueryOutput
call qword [sym.imp.KERNEL32.dll_SetThreadDescription]
mov byte [rsi + rdi], 1
mov rdi, qword [rbx + 0x40]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x40], xmm1
test rdi, rdi
je 0x140088d72
mov qword [rsp + 0x40], rdi
mov eax, 1
lock xadd dword [rdi], eax
inc eax
cmp eax, 1
jle 0x140088d60
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
cmp dword [rdi + 4], ecx
je 0x140088d6f
mov edx, 0xffffffff
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
mov dword [rdi + 4], ecx
inc dword [rdi + 8]
cmp qword [rbx + 0x48], 0
jne 0x140088d83
mov ebx, 0x17
jmp 0x140088fab
mov r8, qword [rbx + 0x50]
cmp byte [r8 + 0x10], 0
je 0x140088fa6
mov r10d, dword [r8 + 0x28]
test r10d, r10d
jle 0x140088fa6
mov rax, qword [rbx + 0x60]
cmp byte [rax + 0x10], 0
je 0x140088fa6
mov r9d, dword [rax + 0x28]
test r9d, r9d
jle 0x140088fa6
mov eax, dword [rbx + 0x74]
lea ecx, [rax + rax*4]
shl ecx, 2
mov eax, 0x10624dd3
imul ecx
mov edi, edx
sar edi, 6
mov eax, edi
shr eax, 0x1f
add edi, eax
lea eax, [rdi + rdi]
cmp r10d, eax
jle 0x140088fa6
cmp r9d, eax
jle 0x140088fa6
mov r12, qword [r8 + 0x18]
mov edx, edi
mov rcx, r8
call fcn.1400899b0
mov rbp, rax
mov edx, edi
mov rcx, qword [rbx + 0x60]
call fcn.1400899b0
mov r14, rax
mov rcx, qword [rbx + 0x48]
mov qword [rsp + 0x50], 0
mov r10, qword [rcx]
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
mov edx, dword [rbx + 0x78]
mov dword [rsp + 0x28], edx
mov edx, dword [rbx + 0x74]
mov dword [rsp + 0x20], edx
mov r9d, edi
mov r8d, dword [rbx + 0x70]
mov edx, 1
call qword [r10 + 0x168]
movss xmm0, dword [rbx + 0x80]
cvtps2pd xmm0, xmm0
mulsd xmm0, qword [0x1401f9c30]
addsd xmm0, qword [0x1401f9c18]
cvtpd2ps xmm1, xmm0
movzx eax, byte [rbx + 0x7c]
test al, al
je 0x140088e8f
cmp byte [rbx + 0x88], 0
je 0x140088e7e
cmp byte [rbx + 0x89], 0
jne 0x140088e8f
movaps xmm6, xmm1
movss xmm7, dword [0x1401f9c0c]
subss xmm7, xmm1
jmp 0x140088eac
xorps xmm6, xmm6
test al, al
je 0x140088ea4
movss xmm7, dword [0x1401f9c0c]
subss xmm7, xmm1
jmp 0x140088eac
movss xmm7, dword [0x1401f9c0c]
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 0xe8]
mov rsi, rax
xor r8d, r8d
test edi, edi
jle 0x140088f3d
mov edx, dword [rbx + 0x78]
nop word [rax + rax]
xor r9d, r9d
xor r11d, r11d
test edx, edx
jle 0x140088f35
mov r10d, r8d
nop dword [rax]
cmp dword [rbx + 0x70], 8
jne 0x140088eeb
mov ecx, r10d
jmp 0x140088ef4
mov ecx, edx
imul ecx, r8d
add ecx, r9d
imul edx, r8d
movsxd rax, edx
add rax, r11
movaps xmm1, xmm6
mulss xmm1, dword [r14 + rax*4]
movaps xmm0, xmm7
mulss xmm0, dword [rbp + rax*4]
addss xmm1, xmm0
mulss xmm1, dword [rbx + 0x84]
movsxd rax, ecx
movss dword [rsi + rax*4], xmm1
inc r9d
add r10d, edi
inc r11
mov edx, dword [rbx + 0x78]
cmp r9d, edx
jl 0x140088ee0
inc r8d
cmp r8d, edi
jl 0x140088ed0
mov rcx, rbp
call fcn.140155e3c
mov rcx, r14
call fcn.140155e3c
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
mov rdx, r12
call qword [rax + 0x98]
mov rcx, qword [rsp + 0x50]
mov r9, qword [rcx]
movsxd rax, edi
imul rax, rax, 0x989680
movsxd r8, dword [rbx + 0x74]
cqo
idiv r8
mov rdx, rax
call qword [r9 + 0xa8]
mov rcx, qword [rsp + 0x50]
mov qword [r15], rcx
mov rax, qword [rcx]
call qword [rax]
nop
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140088fa2
mov rax, qword [rcx]
call qword [rax + 8]
nop
xor ebx, ebx
jmp 0x140088fab
mov ebx, 0x2c
mov rax, qword [rsp + 0x40]
test rax, rax
je 0x140088fef
add dword [rax + 8], 0xffffffff
mov r8d, dword [rax + 8]
jne 0x140088fc6
mov dword [rax + 4], 0
mov ecx, 0xffffffff
lock xadd dword [rax], ecx
cmp ecx, 1
je 0x140088fef
test r8d, r8d
jne 0x140088fef
xor r8d, r8d
lea edx, [r8 + 1]
mov rcx, qword [rsp + 0x40]
mov rcx, qword [rcx + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
mov eax, ebx
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.14014f2f0
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
movaps xmm6, xmmword [rsp + 0x70]
movaps xmm7, xmmword [rsp + 0x60]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret