Function at 0x140136a30
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 r14, 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 [0x1403ec168]
add rcx, 0x238
call fcn.1401e7490
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 0x140136c99
lea rbx, str.Secondary
test r15d, r15d
cmove rbx, rax
mov r8, rdi
mov rdx, rbx
mov rcx, r14
call fcn.140139b10
mov r8, rdi
mov rdx, rbx
call fcn.140139a80
cmp qword [rdi + 0x10], 0
je 0x140136bd5
mov rax, rsi
nop dword [rax]
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2 + 0x624], 0
jne 0x140136af0
test rax, rax
jne 0x140136b0f
cmp dword [rdi + 0x824], eax
je 0x140136ba0
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140136ba0
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140136ba0
cmp byte [rdi + 0x82a], 0xe9
jne 0x140136b3d
cmp cl, 0x8b
jne 0x140136b3d
cmp byte [rdi + 0x829], 0xff
je 0x140136ba0
cmp cl, 0xff
jne 0x140136b4b
cmp byte [rdi + 0x829], 0x25
je 0x140136ba0
cmp cl, 0xb8
jne 0x140136b59
cmp byte [rdi + 0x82d], 0x87
je 0x140136ba0
cmp cl, 0xa1
jne 0x140136b67
cmp byte [rdi + 0x82d], 0xff
je 0x140136ba0
lea rdx, [rdi + 0x624]
call fcn.140137190
test al, al
jne 0x140136ba0
cmp byte [rdi + 0x828], 0x8b
jne 0x140136bd5
cmp byte [rdi + 0x82c], 0x8d
jne 0x140136bd5
lea rdx, str.atapi.sys
lea rcx, [rdi + 0x624]
call fcn.14029848c
test eax, eax
jne 0x140136bd5
cmp dword [r14 + 0x244], 0
jle 0x140136bbd
lea rdx, [0x14032862c]
lea rcx, [r14 + 0x238]
call fcn.1401e7680
lea rdx, str.IRP_MJ_SCSI
lea rcx, [r14 + 0x238]
call fcn.1401e7680
mov byte [r13], 1
cmp qword [rdi + 8], 0
je 0x140136c99
lea rdx, [rdi + 0x418]
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140136bf0
test rax, rax
jne 0x140136c07
cmp dword [rdi + 0x618], eax
je 0x140136c64
movzx ecx, byte [rdi + 0x828]
cmp cl, 0xcc
je 0x140136c64
lea eax, [rcx + 0x17]
cmp al, 2
jbe 0x140136c64
cmp byte [rdi + 0x82a], 0xe9
jne 0x140136c31
cmp cl, 0x8b
jne 0x140136c31
cmp byte [rdi + 0x829], 0xff
je 0x140136c64
cmp cl, 0xff
jne 0x140136c3f
cmp byte [rdi + 0x829], 0x25
je 0x140136c64
cmp cl, 0xb8
jne 0x140136c4d
cmp byte [rdi + 0x82d], 0x87
je 0x140136c64
cmp cl, 0xa1
jne 0x140136c5b
cmp byte [rdi + 0x82d], 0xff
je 0x140136c64
call fcn.140137190
test al, al
je 0x140136c99
cmp dword [r14 + 0x244], 0
jle 0x140136c81
lea rdx, [0x14032862c]
lea rcx, [r14 + 0x238]
call fcn.1401e7680
lea rdx, str.DriverStartIo
lea rcx, [r14 + 0x238]
call fcn.1401e7680
mov byte [r13], 1
inc r15d
add r12, 8
movsxd rax, r15d
cmp rax, 2
lea rax, str.Primary
jb 0x140136aa0
cmp byte [r13], 0
je 0x140136f17
mov rbp, qword [rsp + 0x78]
lea r8, [rbp + 0x28]
nop dword [rax + rax]
inc rsi
cmp word [r8 + rsi*2], 0
jne 0x140136cd0
test rsi, rsi
je 0x140136dac
lea rdx, [rsp + 0x28]
call fcn.140136f40
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [r14 + 0x248]
call fcn.1401e9030
movsxd r9, dword [rdi + 0xc]
mov edx, dword [r14 + 0x250]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [r14 + 0x248]
call fcn.14029b4d8
mov edx, dword [rdi + 0xc]
lea rcx, [r14 + 0x248]
call fcn.1401ea290
nop
cmp dword [rsp + 0x30], 0
jle 0x140136d40
mov rcx, qword [rsp + 0x28]
call fcn.140298600
lea r8, [rbp + 0x228]
lea rdx, [rsp + 0x28]
call fcn.140136f40
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [r14 + 0x258]
call fcn.1401e9030
movsxd r9, dword [rdi + 0xc]
mov edx, dword [r14 + 0x260]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [r14 + 0x258]
call fcn.14029b4d8
mov edx, dword [rdi + 0xc]
lea rcx, [r14 + 0x258]
call fcn.1401ea290
nop
cmp dword [rsp + 0x30], 0
jle 0x140136f17
mov rcx, qword [rsp + 0x28]
call fcn.140298600
jmp 0x140136f17
cmp qword [rbp + 0x840], 0
je 0x140136e89
lea r8, [rbp + 0x858]
lea rdx, [rsp + 0x28]
call fcn.140136f40
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [r14 + 0x248]
call fcn.1401e9030
movsxd r9, dword [rdi + 0xc]
mov edx, dword [r14 + 0x250]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [r14 + 0x248]
call fcn.14029b4d8
mov edx, dword [rdi + 0xc]
lea rcx, [r14 + 0x248]
call fcn.1401ea290
nop
cmp dword [rsp + 0x30], 0
jle 0x140136e1d
mov rcx, qword [rsp + 0x28]
call fcn.140298600
lea r8, [rbp + 0xa58]
lea rdx, [rsp + 0x28]
call fcn.140136f40
mov rdi, rax
mov edx, dword [rax + 0xc]
lea rcx, [r14 + 0x258]
call fcn.1401e9030
movsxd r9, dword [rdi + 0xc]
mov edx, dword [r14 + 0x260]
inc edx
movsxd rdx, edx
mov r8, qword [rdi]
mov rcx, qword [r14 + 0x258]
call fcn.14029b4d8
mov edx, dword [rdi + 0xc]
lea rcx, [r14 + 0x258]
call fcn.1401ea290
nop
cmp dword [rsp + 0x30], 0
jle 0x140136f17
mov rcx, qword [rsp + 0x28]
call fcn.140298600
jmp 0x140136f17
mov edx, 1
lea rcx, [r14 + 0x248]
call fcn.1401e9030
mov eax, dword [r14 + 0x250]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x1402e8fc0]
mov rcx, qword [r14 + 0x248]
call fcn.14029b4d8
mov edx, 1
lea rcx, [r14 + 0x248]
call fcn.1401ea290
mov edx, 1
lea rcx, [r14 + 0x258]
call fcn.1401e9030
mov eax, dword [r14 + 0x260]
inc eax
movsxd rdx, eax
mov r9d, 1
lea r8, [0x1402e8fc0]
mov rcx, qword [r14 + 0x258]
call fcn.14029b4d8
mov edx, 1
lea rcx, [r14 + 0x258]
call fcn.1401ea290
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