Function at 0x140016240
Capabilities:
Print debug messages

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc70
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rsp + 0xcc8], rbx
mov rsi, rcx
cmp dword [rcx + 0x54898], 0
je 0x1400166dd
xor r15d, r15d
mov edi, r15d
lea rbx, [rcx + 0x21324]
mov eax, dword [rbx]
cmp dword [rbx + 4], eax
je 0x1400162a0
lea r8, [rsi + 0x21320]
lea rcx, [rsi + 0xf8]
mov r9d, edi
xor edx, edx
call fcn.140093bb0
add edi, 1
add rbx, 0x4c
cmp edi, 9
jl 0x140016281
mov rcx, rsi
call fcn.14001df50
lea rcx, [rsp + 0x50]
lea rdx, [rsi + 0x21a1c]
mov r8d, 0x404
call fcn.1400fd180
mov edi, 0x40
cmp dword [rsp + 0x50], r15d
je 0x140016415
lea rax, [rsp + 0x468]
mov rcx, rdi
nop
nop
nop
mov dword [rax - 4], r15d
mov dword [rax], r15d
mov dword [rax + 4], r15d
mov dword [rax + 8], r15d
mov dword [rax + 0xc], r15d
mov dword [rax + 0x10], r15d
mov dword [rax + 0x14], r15d
mov dword [rax + 0x18], r15d
add rax, 0x20
sub rcx, 1
jne 0x1400162f0
lea rcx, [rsp + 0x50]
lea rdx, [rsi + 0x21a1c]
mov r8d, 0x404
call fcn.1400fd180
mov r11, qword [rsi + 0x110]
test r11, r11
je 0x140016415
lea rax, [rsp + 0x468]
mov rcx, rdi
nop
nop
mov dword [rax - 4], r15d
mov dword [rax], r15d
mov dword [rax + 4], r15d
mov dword [rax + 8], r15d
mov dword [rax + 0xc], r15d
mov dword [rax + 0x10], r15d
mov dword [rax + 0x14], r15d
mov dword [rax + 0x18], r15d
add rax, 0x20
sub rcx, 1
jne 0x140016350
lea rcx, [r11 + 4]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0xc0000000
lea r8d, [r9 + 3]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400163b9
lea rcx, str.SendHDAudCommand:_CreateFile:_INVALID_HANDLE_VALUE_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
jmp 0x140016415
mov qword [rsp + 0x38], r15
lea rax, [rsp + 0xcb0]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 0x804
lea rax, [rsp + 0x460]
mov qword [rsp + 0x20], rax
mov r9d, 0x404
lea r8, [rsp + 0x50]
mov edx, 0x220004
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebx, eax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x140016415
lea rcx, str.SendHDAudCommand:_DeviceIoControl:_IOCTL_AZALIABUS_SENDVERBS_failed_n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov edx, dword [rsi + 0x19380]
cmp edx, 4
jne 0x14001644e
lea rcx, [rsp + 0x54]
mov eax, 0x80
nop
nop
add rcx, 8
sub rax, 1
jne 0x140016430
lea rax, [rsp + 0x468]
add rax, 0x20
sub rdi, 1
jne 0x140016442
jmp 0x14001647c
cmp edx, 3
jne 0x14001647c
lea rcx, [rsp + 0x54]
mov eax, 0x80
nop
add rcx, 8
sub rax, 1
jne 0x140016460
lea rax, [rsp + 0x468]
add rax, 0x20
sub rdi, 1
jne 0x140016472
cmp edx, 4
jne 0x1400166dd
xor edx, edx
lea r8d, [rdx + 9]
lea rcx, [rsi + 0xa88]
call fcn.140087d00
movsxd r12, eax
cmp r12d, 0xffffffff
je 0x1400166dd
test eax, eax
js 0x1400164f4
mov rcx, r12
cmp r12, qword [rsi + 0xac0]
jge 0x1400164f4
cmp rcx, qword [rsi + 0xac0]
jge 0x1400164db
test eax, eax
js 0x1400164db
mov rax, qword [rsi + 0xab0]
test r12d, r12d
je 0x1400164de
nop
sub rcx, 1
mov rax, qword [rax]
jne 0x1400164d0
jmp 0x1400164de
mov rax, r15
mov rcx, qword [rax + 0x10]
test rcx, rcx
jne 0x1400164ec
mov eax, r15d
jmp 0x1400164f7
mov eax, dword [rcx + 0x2460]
jmp 0x1400164f7
mov eax, r15d
mov r13d, r15d
mov rdi, r15
movsxd r14, eax
test eax, eax
jle 0x1400166dd
mov rbp, r15
nop
nop
mov dword [rsp + 0xcb0], r15d
test r12d, r12d
js 0x1400165fe
mov rax, r12
cmp r12, qword [rsi + 0xac0]
jge 0x1400165fe
cmp rax, qword [rsi + 0xac0]
jge 0x14001655b
test r12d, r12d
js 0x14001655b
mov rcx, qword [rsi + 0xab0]
test r12d, r12d
je 0x14001655e
nop
nop
sub rax, 1
mov rcx, qword [rcx]
jne 0x140016550
jmp 0x14001655e
mov rcx, r15
mov rax, qword [rcx + 0x10]
test rax, rax
jne 0x14001656f
mov ebx, r15d
jmp 0x140016601
test rdi, rdi
js 0x1400165f9
cmp r13d, dword [rax + 0xa78]
jge 0x1400165f9
mov rcx, r15
mov qword [rsp + 0xcb8], rcx
cmp qword [rax + rbp + 0xa80], 0
je 0x1400165e5
mov rcx, qword [rax + rbp + 0xa80]
mov rax, qword [rcx]
lea r9, [rsp + 0xcb8]
lea r8, [0x14013c388]
mov edx, 0x17
call qword [rax + 0x68]
test eax, eax
js 0x1400165dd
mov rcx, qword [rsp + 0xcb8]
mov rax, qword [rcx]
lea rdx, [rsp + 0xcb0]
call qword [rax + 0x20]
mov rcx, qword [rsp + 0xcb8]
jmp 0x1400165e5
mov rcx, qword [rsp + 0xcb8]
mov ebx, dword [rsp + 0xcb0]
test rcx, rcx
je 0x140016601
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
jmp 0x140016601
mov ebx, r15d
jmp 0x140016601
mov ebx, r15d
test r12d, r12d
js 0x1400166c5
mov rax, r12
cmp r12, qword [rsi + 0xac0]
jge 0x1400166c5
cmp rax, qword [rsi + 0xac0]
jge 0x14001663f
test r12d, r12d
js 0x14001663f
mov rcx, qword [rsi + 0xab0]
test r12d, r12d
je 0x140016642
sub rax, 1
mov rcx, qword [rcx]
jne 0x140016634
jmp 0x140016642
mov rcx, r15
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x1400166c5
test rdi, rdi
js 0x1400166c5
cmp r13d, dword [rax + 0xa78]
jge 0x1400166c5
mov rcx, r15
mov qword [rsp + 0xcc0], rcx
cmp qword [rax + rbp + 0xa80], 0
je 0x1400166ba
mov rcx, qword [rax + rbp + 0xa80]
mov rax, qword [rcx]
lea r9, [rsp + 0xcc0]
lea r8, [0x14013c388]
mov edx, 0x17
call qword [rax + 0x68]
test eax, eax
js 0x1400166b2
mov rcx, qword [rsp + 0xcc0]
mov rax, qword [rcx]
xor r8d, r8d
mov edx, ebx
call qword [rax + 0x18]
mov rcx, qword [rsp + 0xcc0]
jmp 0x1400166ba
mov rcx, qword [rsp + 0xcc0]
test rcx, rcx
je 0x1400166c5
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
add r13d, 1
add rdi, 1
add rbp, 0x228
cmp rdi, r14
jl 0x140016510
mov rbx, qword [rsp + 0xcc8]
add rsp, 0xc70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret