Function at 0x140029e20
Capabilities:
Get disk information

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
lea rbp, [rax - 0x378]
sub rsp, 0x460
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x140079258]
xor rax, rsp
mov qword [rbp + 0x350], rax
mov rbx, rcx
mov rax, qword [rcx + 8]
movsxd rcx, dword [rax + 4]
mov rax, qword [rcx + rbx + 0x10]
test rax, rax
je 0x140029e76
cmp dword [rax + 4], 0
jne 0x14002a2a6
cmp qword [rbx + 0x20], 0
je 0x14002a2a6
mov eax, dword [rbx + 0x68]
bt eax, 0x1d
jae 0x14002a22c
test eax, 0x10010000
jne 0x140029e9f
bt eax, 0x1b
jb 0x14002a22c
mov edx, dword [rbx + 0x18]
test edx, edx
jne 0x14002a21b
mov qword [rsp + 0x48], 7
xor edi, edi
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x30], di
mov r8d, 0x8000
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.14002aa40
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x40]
cmp rcx, 3
jne 0x14002a02f
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx eax, word [rax]
and eax, 0xffffffdf
cmp eax, 0x41
jl 0x14002a035
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx eax, word [rax]
and eax, 0xffffffdf
cmp eax, 0x5a
jg 0x14002a035
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
cmp word [rax + 2], 0x3a
jne 0x14002a035
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
cmp word [rax + 4], 0x5c
jne 0x14002a035
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx eax, byte [rax]
mov byte [rsp + 0x24], al
mov word [rsp + 0x25], 0x5c3a
mov byte [rsp + 0x27], dil
lea rcx, [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 1
je 0x140029f8f
mov ecx, eax
call fcn.14000c500
mov dword [rbx + 0x18], eax
jmp 0x140029fbc
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
xor edx, edx
call fcn.1400182f0
mov ecx, 0x89
mov edx, 0x84
cmp eax, 0x4b1
cmove ecx, edx
mov dword [rbx + 0x18], ecx
cmp dword [rbx + 0x18], 0x82
jne 0x14002a020
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
movzx eax, byte [rax]
mov byte [rsp + 0x20], al
mov word [rsp + 0x21], 0x3a
mov r8d, 0x400
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
test eax, eax
je 0x14002a020
mov r8d, 0xe
lea rdx, str.DeviceFloppy
lea rcx, [rsp + 0x50]
call fcn.14004b518
test eax, eax
jne 0x14002a020
mov dword [rbx + 0x18], 0x81
mov rsi, qword [rsp + 0x48]
mov r14, qword [rsp + 0x30]
jmp 0x14002a204
cmp rcx, 2
jb 0x14002a0a9
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
cmp word [rax], 0x5c
jne 0x14002a0a9
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
cmp word [rax + 2], 0x5c
jne 0x14002a0a9
mov edx, 0x5c
lea r8d, [rdx - 0x5a]
lea rcx, [rsp + 0x30]
call fcn.14001ef00
cmp rax, 0xffffffffffffffff
jne 0x14002a081
mov dword [rbx + 0x18], 0x8d
jmp 0x14002a204
lea r8, [rax + 1]
mov dx, 0x5c
lea rcx, [rsp + 0x30]
call fcn.14001ef00
mov ecx, 0x80
mov edx, 0x8e
cmp rax, 0xffffffffffffffff
cmove ecx, edx
jmp 0x14002a201
cmp rcx, 0x28
jne 0x14002a1fc
mov r8d, edi
mov rcx, rdi
mov r9d, 0xffe0
lea r10, [0x140002000]
nop word [rax + rax]
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx edx, word [rax + rcx]
lea eax, [rdx - 0x61]
cmp ax, 0x19
ja 0x14002a0ee
add dx, r9w
cmp dx, word [rcx + r10 + 0x5a270]
jne 0x14002a106
inc r8d
add rcx, 2
cmp rcx, 0x50
jl 0x14002a0d0
cmp r8d, 0x28
jne 0x14002a118
mov dword [rbx + 0x18], 0x8a
jmp 0x14002a204
mov r8d, edi
mov rcx, rdi
nop
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx edx, word [rax + rcx]
lea eax, [rdx - 0x61]
cmp ax, 0x19
ja 0x14002a13e
add dx, r9w
cmp dx, word [rcx + r10 + 0x5a2d0]
jne 0x14002a156
inc r8d
add rcx, 2
cmp rcx, 0x50
jl 0x14002a120
cmp r8d, 0x28
je 0x14002a1f3
mov r8d, edi
mov rcx, rdi
nop word [rax + rax]
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx edx, word [rax + rcx]
lea eax, [rdx - 0x61]
cmp ax, 0x19
ja 0x14002a18e
add dx, r9w
cmp dx, word [rcx + r10 + 0x5a330]
jne 0x14002a1a6
inc r8d
add rcx, 2
cmp rcx, 0x50
jl 0x14002a170
cmp r8d, 0x28
je 0x14002a1f3
mov rcx, rdi
nop
lea rax, [rsp + 0x30]
cmp rsi, 8
cmovae rax, r14
movzx edx, word [rax + rcx]
lea eax, [rdx - 0x61]
cmp ax, 0x19
ja 0x14002a1ce
add dx, r9w
cmp dx, word [rcx + r10 + 0x5a390]
jne 0x14002a1e5
inc edi
add rcx, 2
cmp rcx, 0x50
jl 0x14002a1b0
cmp edi, 0x28
jne 0x14002a1fc
mov dword [rbx + 0x18], 0x93
jmp 0x14002a204
mov dword [rbx + 0x18], 0x8b
jmp 0x14002a204
mov ecx, 0x80
mov dword [rbx + 0x18], ecx
cmp rsi, 8
jb 0x14002a2a1
mov rcx, r14
call fcn.1400376e4
jmp 0x14002a2a1
mov ecx, 0x80
cmp edx, ecx
jne 0x14002a2a1
bt eax, 0x10
jae 0x14002a2a1
jmp 0x14002a239
bt eax, 0x10
jae 0x14002a29c
mov dword [rbx + 0x18], 6
mov rcx, rbx
call fcn.14002a2d0
test al, al
je 0x14002a2a1
mov rcx, qword [rbx + 0x78]
mov edx, dword [rcx]
mov eax, edx
and eax, 0x1400
cmp eax, 0x400
jne 0x14002a2a1
cmp dword [rcx + 0x24], 0xa000000c
jne 0x14002a275
test dl, 0x10
mov eax, 5
mov edx, 0x97
cmovne eax, edx
mov dword [rbx + 0x18], eax
cmp dword [rcx + 0x24], 0x80000009
jne 0x14002a285
mov dword [rbx + 0x18], 0x9a
test byte [rcx], 0x10
je 0x14002a2a1
test dword [rcx + 0x24], 0x20000000
je 0x14002a2a1
mov dword [rbx + 0x18], 0x96
jmp 0x14002a2a1
xor edi, edi
mov dword [rbx + 0x18], edi
mov eax, dword [rbx + 0x18]
jmp 0x14002a2a8
xor eax, eax
mov rcx, qword [rbp + 0x350]
xor rcx, rsp
call fcn.140038d80
lea r11, [rsp + 0x460]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret