Function at 0x140077058
Capabilities:
Get storage device properties

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x80
mov rbp, rcx
lea rcx, [rax - 0x48]
xor r12d, r12d
mov edx, 0x1410
mov r14, r9
mov rbx, r8
mov dword [rax - 0x54], r12d
call fcn.140063028
mov rsi, qword [rsp + 0x70]
mov byte [rsp + 0x60], r12b
mov byte [rsp + 0x61], r12b
mov byte [rsp + 0xd8], r12b
mov r12d, 0xc
mov rcx, rsi
xor edx, edx
mov r8, r12
lea rdi, [rsi + 0x400]
mov r15, rbx
call fcn.140101f00
xor eax, eax
lea r8d, [r12 + 0x1c]
xor edx, edx
mov rcx, rdi
mov dword [rsi], eax
mov dword [rsi + 4], eax
mov byte [rsi + 8], al
call fcn.140101f00
lea rax, [rsp + 0x64]
xor r11d, r11d
mov r9d, r12d
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rax
mov r8, rsi
mov edx, 0x2d1400
mov rcx, rbp
mov dword [rsp + 0x28], 0x828
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov ebp, dword [rdi + 0x1c]
mov r12d, eax
xor eax, eax
cmp r12d, eax
jg 0x140077126
mov dword [rdi + 0x18], eax
mov dword [rdi + 0x10], eax
cmp byte [0x14013ccb1], al
je 0x140077163
mov ecx, dword [rdi + 0x18]
mov eax, dword [rdi + 0x10]
lea rdx, str.DBGG__d__d__d:__d__d__d_r_n
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], eax
lea rcx, [0x14013d130]
mov r9, r14
mov r8d, 0x366d
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], ebp
call fcn.140018dd8
xor eax, eax
mov ecx, 0x22
mov word [rbx], cx
add rbx, 2
mov qword [rsp + 0xd0], rbx
cmp dword [rdi + 0x10], eax
jbe 0x1400771a4
mov r8d, dword [rdi + 4]
mov edx, dword [rdi + 0x10]
lea rcx, [rsp + 0xd0]
sub r8d, dword [rdi + 0x10]
add rdx, rdi
call fcn.14005fa9c
mov rbx, qword [rsp + 0xd0]
xor eax, eax
lea ecx, [rax + 0x22]
mov word [rbx], cx
add rbx, 6
mov edx, 0x20
mov word [rbx - 4], dx
mov word [rbx - 2], cx
mov ecx, dword [rdi + 0x18]
mov qword [rsp + 0xd0], rbx
cmp ecx, eax
jbe 0x1400771e9
mov r8d, dword [rdi + 4]
lea rdx, [rdi + rcx]
sub r8d, ecx
lea rcx, [rsp + 0xd0]
call fcn.14005fa9c
mov rbx, qword [rsp + 0xd0]
xor eax, eax
mov ecx, 0x22
mov word [rbx], cx
mov word [rbx + 2], ax
cmp r14, rax
je 0x1400772c7
movzx ecx, byte [rdi + 0xa]
movzx edx, byte [rdi + 9]
movzx eax, byte [rdi + 0xb]
movzx r9d, byte [rdi + 8]
mov r8d, dword [rdi]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
lea rdx, str.__d__d__d__d__d__
lea rcx, [rbx + 2]
call qword [sym.imp.USER32.dll_wsprintfW]
movsxd rcx, eax
lea rax, [rbx + rcx*2 + 2]
mov ecx, dword [rdi + 0xc]
xor ebx, ebx
mov qword [rsp + 0xd0], rax
cmp ecx, ebx
jbe 0x140077268
mov r8d, dword [rdi + 4]
lea rdx, [rdi + rcx]
sub r8d, ecx
lea rcx, [rsp + 0xd0]
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
mov esi, 0x22
mov word [rax], si
add rax, 6
lea ecx, [rsi - 2]
mov qword [rsp + 0xd0], rax
mov word [rax - 4], cx
mov word [rax - 2], si
mov ecx, dword [rdi + 0x14]
cmp ecx, ebx
jbe 0x1400772ae
mov r8d, dword [rdi + 4]
lea rdx, [rdi + rcx]
sub r8d, ecx
lea rcx, [rsp + 0xd0]
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
mov word [rax], si
lea rcx, [rsp + 0x70]
mov word [rax + 2], bx
call fcn.14005aef8
mov eax, r12d
jmp 0x140077860
mov ebx, 0x38
mov r14d, 0x2000
cmp ebp, 0x11
je 0x1400772f6
cmp ebp, 7
je 0x14007744a
cmp ebp, 5
je 0x14007744a
mov r12b, byte [rsp + 0xd8]
jmp 0x14007761d
xor edx, edx
mov r8d, 0x1030
mov rcx, rsi
mov byte [rsp + 0xd8], 1
call fcn.140101f00
mov rcx, qword [rsp + 0xc0]
mov dword [rsi], 0x31
lea rbx, [rsi + 8]
xor eax, eax
mov dword [rsi + 4], eax
mov qword [rsp + 0x38], rax
mov r14d, 0x1000
mov dword [rbx + 0xc], eax
lea rax, [rsp + 0x64]
lea r9d, [r14 + 0x30]
mov qword [rsp + 0x30], rax
mov r8, rsi
mov edx, 0x2d1400
mov dword [rsp + 0x28], 0x1030
mov dword [rbx], 2
mov dword [rbx + 4], 1
mov qword [rsp + 0x20], rsi
mov dword [rbx + 8], 1
mov dword [rbx + 0x10], 0x28
mov dword [rbx + 0x14], r14d
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor edx, edx
mov ebp, eax
mov eax, dword [rbx + 0x10]
cmp ebp, edx
lea r12, [rbx + rax]
jle 0x1400773b5
cmp dword [rsi], 0x30
jne 0x1400773b5
cmp dword [rsi + 4], 0x30
jne 0x1400773b5
cmp eax, 0x28
jb 0x1400773b5
cmp dword [rbx + 0x14], r14d
jb 0x1400773b5
cmp word [r12], dx
je 0x1400773b5
lea r14d, [rdx + 1]
cmp dword [r12 + 0x204], edx
jne 0x1400773b8
mov r14d, edx
cmp byte [0x14013ccb1], dl
je 0x14007741e
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx ecx, word [r12]
lea rdx, str.DBGN__d:__d__d__d___d__d__d__d__d_err_d_r_n
mov dword [rsp + 0x58], eax
mov eax, dword [r12 + 0x204]
mov r9d, ebp
mov dword [rsp + 0x50], eax
mov eax, dword [rbx + 0x14]
mov dword [rsp + 0x48], ecx
mov dword [rsp + 0x40], eax
mov eax, dword [rbx + 0x10]
lea rcx, [0x14013d130]
mov dword [rsp + 0x38], eax
mov eax, dword [rsi]
mov r8d, 0x36d3
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x64]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r14d
call fcn.140018dd8
xor edx, edx
cmp r14d, edx
jne 0x1400777de
mov bl, byte [rsp + 0x60]
mov r12b, byte [rsp + 0xd8]
cmp bl, dl
je 0x140077617
cmp byte [rsp + 0x61], dl
jne 0x140077606
mov ebx, 0x38
lea r12, [rsi + 0x800]
mov r8, rbx
xor edx, edx
mov rcx, r12
mov byte [rsp + 0x61], 1
call fcn.140101f00
mov r8, rbx
xor edx, edx
mov rcx, rsi
call fcn.140101f00
mov ebp, 0x100
xor edx, edx
mov r8, rbp
mov rcx, rdi
call fcn.140101f00
mov dword [rsi + 0xc], ebp
mov word [rsi], bx
mov byte [rsi + 6], 6
mov byte [rsi + 8], 1
mov dword [rsi + 0x10], 2
mov qword [rsi + 0x18], rdi
lea rax, [rsp + 0x64]
xor r11d, r11d
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ebp
mov rbp, qword [rsp + 0xc0]
mov r9d, ebx
mov r8, rsi
mov edx, 0x4d014
mov rcx, rbp
mov byte [rsi + 0x24], 0x12
mov byte [rsi + 0x28], 0xc8
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movzx ebx, byte [rsi + 2]
xor edx, edx
mov rcx, r12
lea r8d, [rdx + 4]
mov r14d, eax
mov dword [rsp + 0xd0], ebx
call fcn.140101f00
xor eax, eax
xor edx, edx
lea r8d, [rax + 0x38]
mov rcx, rsi
mov qword [r12 + 4], rax
call fcn.140101f00
mov byte [rsi + 6], 6
mov byte [rsi + 8], 1
mov dword [rsi + 0xc], 0x100
mov dword [rsi + 0x10], 2
mov qword [rsi + 0x18], r12
xor eax, eax
mov ecx, 0x38
mov r8, rsi
mov word [rsi], cx
or byte [rsi + 0x25], 1
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x68], eax
lea rax, [rsp + 0x68]
mov r9d, ecx
mov qword [rsp + 0x30], rax
mov edx, 0x4d014
mov rcx, rbp
mov dword [rsp + 0x28], 0x100
mov byte [rsi + 0x24], 0x12
mov byte [rsi + 0x26], 0x80
mov qword [rsp + 0x20], rsi
mov byte [rsi + 0x28], 0xc8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movzx ecx, byte [rsi + 2]
xor edx, edx
mov ebp, eax
cmp r14d, edx
jne 0x140077583
mov byte [rdi + 0x10], dl
cmp eax, edx
jne 0x14007758c
mov byte [r12 + 4], dl
cmp r14d, edx
jle 0x1400775a9
cmp eax, edx
jle 0x1400775a9
cmp byte [r12 + 3], dl
jbe 0x1400775a9
cmp ebx, edx
jne 0x1400775a9
mov ebx, 1
cmp ecx, edx
je 0x1400775ab
mov ebx, edx
cmp byte [0x14013ccb1], dl
je 0x1400775f2
movzx eax, byte [r12 + 3]
mov dword [rsp + 0x40], ecx
mov ecx, dword [rsp + 0xd0]
mov dword [rsp + 0x38], ecx
mov dword [rsp + 0x30], eax
lea rdx, str.DBGS__d:__d__d__d__d__d__d_r_n
lea rcx, [0x14013d130]
mov r9d, r14d
mov r8d, 0x370a
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], ebp
call fcn.140018dd8
xor edx, edx
cmp ebx, edx
jne 0x14007774b
mov bl, byte [rsp + 0x60]
mov r12b, byte [rsp + 0xd8]
cmp r12b, dl
je 0x1400772f6
cmp bl, dl
jne 0x140077854
mov r14d, 0x2000
mov ebp, 0x400
mov bl, 1
xor edx, edx
mov r8, rbp
mov rcx, rdi
mov byte [rsp + 0x60], bl
call fcn.140101f00
xor edx, edx
mov rcx, rsi
lea r8d, [rdx + 0x29]
call fcn.140101f00
mov rcx, qword [rsp + 0xc0]
xor eax, eax
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0x64]
mov r9d, 0x21
mov qword [rsp + 0x30], rax
mov r8, rsi
mov edx, 0x7c088
mov dword [rsp + 0x28], ebp
mov dword [rsi], 0x200
mov byte [rsi + 5], bl
mov qword [rsp + 0x20], rdi
mov byte [rsi + 6], bl
mov byte [rsi + 9], 0xa0
mov byte [rsi + 0xa], 0xec
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
xor edx, edx
mov ebp, eax
cmp byte [0x14013ccb1], dl
je 0x1400776c7
movzx ecx, word [rdi + 0x24]
movzx eax, word [rdi + 0x46]
lea rdx, str.DBGA__d:__d_0x_X_0x_X_r_n
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea rcx, [0x14013d130]
mov r9d, ebp
mov r8d, 0x36a7
call fcn.140018dd8
xor edx, edx
cmp ebp, edx
je 0x14007773d
cmp word [rdi + 0x24], r14w
jb 0x14007773d
cmp word [rdi + 0x46], r14w
jb 0x14007773d
mov r14d, 0x22
lea r9, [r15 + 2]
lea rcx, [rdi + 0x10]
lea edx, [r14 - 7]
lea r8d, [r14 + 0xc]
mov word [r15], r14w
call fcn.14005f9e4
lea r8d, [r14 - 0xf]
lea rcx, [rdi + 0x10]
mov rbx, rax
mov word [rax], r14w
lea eax, [r14 - 2]
mov word [rbx + 2], ax
mov word [rbx + 4], r14w
add rbx, 6
lea edx, [rax - 0x16]
mov r9, rbx
call fcn.14005f9e4
movzx ecx, word [rbx]
xor edx, edx
mov word [rax], r14w
mov word [rax + 2], dx
cmp cx, dx
jne 0x140077854
mov bl, byte [rsp + 0x60]
cmp r12b, dl
jne 0x14007743b
jmp 0x1400772f6
lea rax, [r15 + 2]
mov ebx, 0x22
mov qword [rsp + 0xd0], rax
mov word [r15], bx
cmp r14d, edx
je 0x140077784
lea rdx, [rdi + 0x10]
lea r8d, [rbx - 0x12]
lea rcx, [rsp + 0xd0]
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
xor edx, edx
mov word [rax], bx
add rax, 6
mov ecx, 0x20
mov word [rax - 4], cx
mov word [rax - 2], bx
mov word [rax], dx
mov qword [rsp + 0xd0], rax
cmp ebp, edx
je 0x1400777d0
cmp byte [r12 + 3], dl
jbe 0x1400777d0
movzx r8d, byte [r12 + 3]
lea rdx, [r12 + 4]
lea rcx, [rsp + 0xd0]
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
xor edx, edx
mov word [rax], bx
mov ebp, 1
mov word [rax + 2], dx
jmp 0x140077854
mov ebx, 0x22
lea rax, [r15 + 2]
lea rdx, [r12 + 0x18]
lea r8d, [rbx + 6]
lea rcx, [rsp + 0xd0]
mov word [r15], bx
mov qword [rsp + 0xd0], rax
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
mov word [rax], bx
lea ecx, [rbx - 2]
add rax, 6
mov word [rax - 4], cx
mov word [rax - 2], bx
lea rdx, [r12 + 4]
lea rcx, [rsp + 0xd0]
lea r8d, [rbx - 0xe]
mov qword [rsp + 0xd0], rax
call fcn.14005fa9c
mov rax, qword [rsp + 0xd0]
xor r11d, r11d
mov word [rax], bx
mov word [rax + 2], r11w
lea rcx, [rsp + 0x70]
call fcn.14005aef8
mov eax, ebp
mov rbx, qword [rsp + 0xc8]
add rsp, 0x80
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret