Function at 0x1401463e0
Capabilities:
Check for software breakpoints

Disassembly:
mov r11, rsp
mov qword [r11 + 0x10], rdx
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [r11 - 0x48], 0xfffffffffffffffe
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rbp
mov qword [r11 + 0x20], rsi
mov r13, r8
mov rbp, rcx
lea rax, [rdx + 0x10]
mov qword [r11 - 0x40], rax
lea rax, [rdx + 0x840]
mov qword [r11 - 0x38], rax
mov byte [r8], 0
mov rdx, qword [0x14041eee8]
add rcx, 0x240
call fcn.140200d00
xor r15d, r15d
lea r12, [rsp + 0x28]
lea rax, str.Primary
or rsi, 0xffffffffffffffff
nop dword [rax + rax]
mov rdi, qword [r12]
cmp qword [rdi], 0
je 0x140146668
lea rbx, str.Secondary
test r15d, r15d
cmove rbx, rax
mov r8, rdi
mov rdx, rbx
mov rcx, rbp
call fcn.1401494e0
mov r8, rdi
mov rdx, rbx
call fcn.140149450
cmp qword [rdi + 0x10], 0
je 0x1401465a5
mov rax, rsi
nop dword [rax]
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2 + 0x624], 0
jne 0x1401464a0
test rax, rax
jne 0x1401464bf
cmp dword [rdi + 0x824], eax
je 0x140146550
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140146550
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140146550
cmp byte [rdi + 0x82a], 0xe9
jne 0x1401464ed
cmp cl, 0x8b
jne 0x1401464ed
cmp byte [rdi + 0x829], 0xff
je 0x140146550
cmp cl, 0xff
jne 0x1401464fb
cmp byte [rdi + 0x829], 0x25
je 0x140146550
cmp cl, 0xb8
jne 0x140146509
cmp byte [rdi + 0x82d], 0x87
je 0x140146550
cmp cl, 0xa1
jne 0x140146517
cmp byte [rdi + 0x82d], 0xff
je 0x140146550
lea rdx, [rdi + 0x624]
call fcn.140146b60
test al, al
jne 0x140146550
cmp byte [rdi + 0x828], 0x8b
jne 0x1401465a5
cmp byte [rdi + 0x82c], 0x8d
jne 0x1401465a5
lea rdx, str.atapi.sys
lea rcx, [rdi + 0x624]
call fcn.1402bcf6c
test eax, eax
jne 0x1401465a5
lea rdx, str.hmpalert.sys
lea rcx, [rdi + 0x624]
call fcn.1402c0758
test rax, rax
je 0x140146571
mov byte [rbp + 0x238], 1
jmp 0x1401465a5
cmp dword [rbp + 0x24c], 0
jle 0x14014658d
lea rdx, [0x140351edc]
lea rcx, [rbp + 0x240]
call fcn.140200ef0
lea rdx, str.IRP_MJ_SCSI
lea rcx, [rbp + 0x240]
call fcn.140200ef0
mov byte [r13], 1
cmp qword [rdi + 8], 0
je 0x140146668
lea rdx, [rdi + 0x418]
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1401465c0
test rax, rax
jne 0x1401465d7
cmp dword [rdi + 0x618], eax
je 0x140146634
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140146634
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140146634
cmp byte [rdi + 0x82a], 0xe9
jne 0x140146601
cmp cl, 0x8b
jne 0x140146601
cmp byte [rdi + 0x829], 0xff
je 0x140146634
cmp cl, 0xff
jne 0x14014660f
cmp byte [rdi + 0x829], 0x25
je 0x140146634
cmp cl, 0xb8
jne 0x14014661d
cmp byte [rdi + 0x82d], 0x87
je 0x140146634
cmp cl, 0xa1
jne 0x14014662b
cmp byte [rdi + 0x82d], 0xff
je 0x140146634
call fcn.140146b60
test al, al
je 0x140146668
cmp dword [rbp + 0x24c], 0
jle 0x140146650
lea rdx, [0x140351edc]
lea rcx, [rbp + 0x240]
call fcn.140200ef0
lea rdx, str.DriverStartIo
lea rcx, [rbp + 0x240]
call fcn.140200ef0
mov byte [r13], 1
inc r15d
add r12, 8
movsxd rax, r15d
cmp rax, 2
lea rax, str.Primary
jb 0x140146450
cmp byte [r13], 0
je 0x1401468e1
mov r14, qword [rsp + 0x78]
lea r8, [r14 + 0x28]
nop word [rax + rax]
inc rsi
cmp word [r8 + rsi*2], 0
jne 0x1401466a0
test rsi, rsi
je 0x14014677a
lea rdx, [rsp + 0x28]
call fcn.140146910
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x250]
call fcn.1402028a0
movsxd r9, dword [rdi + 0xc]
mov edx, dword [rbp + 0x258]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [rbp + 0x250]
call fcn.1402c06dc
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x250]
call fcn.140203bb0
nop
cmp dword [rsp + 0x30], 0
jle 0x14014670f
mov rcx, qword [rsp + 0x28]
call fcn.1402bd0e0
lea r8, [r14 + 0x228]
lea rdx, [rsp + 0x28]
call fcn.140146910
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x260]
call fcn.1402028a0
movsxd r9, dword [rdi + 0xc]
mov edx, dword [rbp + 0x268]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [rbp + 0x260]
call fcn.1402c06dc
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x260]
call fcn.140203bb0
nop
cmp dword [rsp + 0x30], 0
jle 0x1401468e1
mov rcx, qword [rsp + 0x28]
call fcn.1402bd0e0
jmp 0x1401468e1
cmp qword [r14 + 0x840], 0
je 0x140146855
lea r8, [r14 + 0x858]
lea rdx, [rsp + 0x28]
call fcn.140146910
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x250]
call fcn.1402028a0
movsxd r9, dword [rdi + 0xc]
mov edx, dword [rbp + 0x258]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [rbp + 0x250]
call fcn.1402c06dc
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x250]
call fcn.140203bb0
nop
cmp dword [rsp + 0x30], 0
jle 0x1401467ea
mov rcx, qword [rsp + 0x28]
call fcn.1402bd0e0
lea r8, [r14 + 0xa58]
lea rdx, [rsp + 0x28]
call fcn.140146910
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x260]
call fcn.1402028a0
movsxd r9, dword [rdi + 0xc]
mov edx, dword [rbp + 0x268]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [rbp + 0x260]
call fcn.1402c06dc
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x260]
call fcn.140203bb0
nop
cmp dword [rsp + 0x30], 0
jle 0x1401468e1
mov rcx, qword [rsp + 0x28]
call fcn.1402bd0e0
jmp 0x1401468e1
mov edx, 1
lea rcx, [rbp + 0x250]
call fcn.1402028a0
mov eax, dword [rbp + 0x258]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x140310580]
mov rcx, qword [rbp + 0x250]
call fcn.1402c06dc
mov edx, 1
lea rcx, [rbp + 0x250]
call fcn.140203bb0
mov edx, 1
lea rcx, [rbp + 0x260]
call fcn.1402028a0
mov eax, dword [rbp + 0x268]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x140310580]
mov rcx, qword [rbp + 0x260]
call fcn.1402c06dc
mov edx, 1
lea rcx, [rbp + 0x260]
call fcn.140203bb0
mov al, 1
lea r11, [rsp + 0x40]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret