Function at 0x140144990
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 [0x14041a158]
add rcx, 0x240
call fcn.1401fd6c0
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 0x140144c18
lea rbx, str.Secondary
test r15d, r15d
cmove rbx, rax
mov r8, rdi
mov rdx, rbx
mov rcx, rbp
call fcn.140147a90
mov r8, rdi
mov rdx, rbx
call fcn.140147a00
cmp qword [rdi + 0x10], 0
je 0x140144b55
mov rax, rsi
nop dword [rax]
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2 + 0x624], 0
jne 0x140144a50
test rax, rax
jne 0x140144a6f
cmp dword [rdi + 0x824], eax
je 0x140144b00
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140144b00
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140144b00
cmp byte [rdi + 0x82a], 0xe9
jne 0x140144a9d
cmp cl, 0x8b
jne 0x140144a9d
cmp byte [rdi + 0x829], 0xff
je 0x140144b00
cmp cl, 0xff
jne 0x140144aab
cmp byte [rdi + 0x829], 0x25
je 0x140144b00
cmp cl, 0xb8
jne 0x140144ab9
cmp byte [rdi + 0x82d], 0x87
je 0x140144b00
cmp cl, 0xa1
jne 0x140144ac7
cmp byte [rdi + 0x82d], 0xff
je 0x140144b00
lea rdx, [rdi + 0x624]
call fcn.140145110
test al, al
jne 0x140144b00
cmp byte [rdi + 0x828], 0x8b
jne 0x140144b55
cmp byte [rdi + 0x82c], 0x8d
jne 0x140144b55
lea rdx, str.atapi.sys
lea rcx, [rdi + 0x624]
call fcn.1402b9aac
test eax, eax
jne 0x140144b55
lea rdx, str.hmpalert.sys
lea rcx, [rdi + 0x624]
call fcn.1402bd298
test rax, rax
je 0x140144b21
mov byte [rbp + 0x238], 1
jmp 0x140144b55
cmp dword [rbp + 0x24c], 0
jle 0x140144b3d
lea rdx, [0x14034d880]
lea rcx, [rbp + 0x240]
call fcn.1401fd8b0
lea rdx, str.IRP_MJ_SCSI
lea rcx, [rbp + 0x240]
call fcn.1401fd8b0
mov byte [r13], 1
cmp qword [rdi + 8], 0
je 0x140144c18
lea rdx, [rdi + 0x418]
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140144b70
test rax, rax
jne 0x140144b87
cmp dword [rdi + 0x618], eax
je 0x140144be4
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140144be4
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140144be4
cmp byte [rdi + 0x82a], 0xe9
jne 0x140144bb1
cmp cl, 0x8b
jne 0x140144bb1
cmp byte [rdi + 0x829], 0xff
je 0x140144be4
cmp cl, 0xff
jne 0x140144bbf
cmp byte [rdi + 0x829], 0x25
je 0x140144be4
cmp cl, 0xb8
jne 0x140144bcd
cmp byte [rdi + 0x82d], 0x87
je 0x140144be4
cmp cl, 0xa1
jne 0x140144bdb
cmp byte [rdi + 0x82d], 0xff
je 0x140144be4
call fcn.140145110
test al, al
je 0x140144c18
cmp dword [rbp + 0x24c], 0
jle 0x140144c00
lea rdx, [0x14034d880]
lea rcx, [rbp + 0x240]
call fcn.1401fd8b0
lea rdx, str.DriverStartIo
lea rcx, [rbp + 0x240]
call fcn.1401fd8b0
mov byte [r13], 1
inc r15d
add r12, 8
movsxd rax, r15d
cmp rax, 2
lea rax, str.Primary
jb 0x140144a00
cmp byte [r13], 0
je 0x140144e91
mov r14, qword [rsp + 0x78]
lea r8, [r14 + 0x28]
nop word [rax + rax]
inc rsi
cmp word [r8 + rsi*2], 0
jne 0x140144c50
test rsi, rsi
je 0x140144d2a
lea rdx, [rsp + 0x28]
call fcn.140144ec0
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x250]
call fcn.1401ff260
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.1402bd21c
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x250]
call fcn.140200570
nop
cmp dword [rsp + 0x30], 0
jle 0x140144cbf
mov rcx, qword [rsp + 0x28]
call fcn.1402b9c20
lea r8, [r14 + 0x228]
lea rdx, [rsp + 0x28]
call fcn.140144ec0
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x260]
call fcn.1401ff260
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.1402bd21c
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x260]
call fcn.140200570
nop
cmp dword [rsp + 0x30], 0
jle 0x140144e91
mov rcx, qword [rsp + 0x28]
call fcn.1402b9c20
jmp 0x140144e91
cmp qword [r14 + 0x840], 0
je 0x140144e05
lea r8, [r14 + 0x858]
lea rdx, [rsp + 0x28]
call fcn.140144ec0
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x250]
call fcn.1401ff260
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.1402bd21c
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x250]
call fcn.140200570
nop
cmp dword [rsp + 0x30], 0
jle 0x140144d9a
mov rcx, qword [rsp + 0x28]
call fcn.1402b9c20
lea r8, [r14 + 0xa58]
lea rdx, [rsp + 0x28]
call fcn.140144ec0
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [rbp + 0x260]
call fcn.1401ff260
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.1402bd21c
mov edx, dword [rdi + 0xc]
lea rcx, [rbp + 0x260]
call fcn.140200570
nop
cmp dword [rsp + 0x30], 0
jle 0x140144e91
mov rcx, qword [rsp + 0x28]
call fcn.1402b9c20
jmp 0x140144e91
mov edx, 1
lea rcx, [rbp + 0x250]
call fcn.1401ff260
mov eax, dword [rbp + 0x258]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x14030c520]
mov rcx, qword [rbp + 0x250]
call fcn.1402bd21c
mov edx, 1
lea rcx, [rbp + 0x250]
call fcn.140200570
mov edx, 1
lea rcx, [rbp + 0x260]
call fcn.1401ff260
mov eax, dword [rbp + 0x268]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x14030c520]
mov rcx, qword [rbp + 0x260]
call fcn.1402bd21c
mov edx, 1
lea rcx, [rbp + 0x260]
call fcn.140200570
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