Function at 0x1400102f4
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x390]
sub rsp, 0x490
mov al, byte [0x140055b80]
xor r15d, r15d
mov rbx, rdx
mov rdi, rcx
cmp al, 0xff
jne 0x140010338
call fcn.140017da0
test eax, eax
setne al
mov byte [0x140055b80], al
test al, al
je 0x14001034c
mov rdx, rbx
mov rcx, rdi
call fcn.140028450
jmp 0x1400105e2
test rdi, rdi
je 0x1400105d4
test rbx, rbx
je 0x1400105d4
lea rdx, [0x140048a34]
mov rcx, rdi
call fcn.1400278ac
test rax, rax
je 0x140010382
call fcn.140028510
mov dword [rax], 2
jmp 0x1400105df
cmp word [rdi + 2], 0x3a
jne 0x1400103a7
movzx ecx, word [rdi]
test cx, cx
je 0x140010398
cmp word [rdi + 4], r15w
je 0x140010372
call fcn.1400285f4
movzx r14d, ax
sub r14d, 0x60
jmp 0x1400103af
call fcn.1400285fc
mov r14d, eax
lea rdx, [rsp + 0x30]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rsi, rax
mov r12d, 1
cmp rax, 0xffffffffffffffff
jne 0x140010482
lea rdx, [0x140048a40]
mov rcx, rdi
call fcn.1400278ac
test rax, rax
jne 0x140010432
lea r8, [rbp + 0x180]
mov edx, 0x104
mov rcx, rdi
call fcn.1400101cc
test eax, eax
je 0x140010432
lea rcx, [rbp + 0x180]
call fcn.140026704
test eax, eax
jne 0x14001041c
lea rcx, [rbp + 0x180]
call fcn.1400102c4
test eax, eax
je 0x140010432
lea rcx, [rbp + 0x180]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, r12d
ja 0x140010372
mov r8d, 0x10
mov qword [rsp + 0x4c], r15
xor edx, edx
mov dword [rsp + 0x30], r8d
lea rcx, [rsp + 0x20]
mov word [rsp + 0x5c], r15w
call fcn.140021310
lea rcx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x107bc
mov qword [rsp + 0x26], r12
mov word [rsp + 0x2e], r15w
call fcn.140017df0
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x30], rax
jmp 0x14001057e
cmp dword [rsp + 0x44], r15d
jne 0x140010495
cmp dword [rsp + 0x48], r15d
jne 0x140010495
mov rax, r15
jmp 0x1400104d3
lea rdx, [rbp + 0x3d0]
lea rcx, [rsp + 0x44]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x1400105bc
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x1400105bc
lea rcx, [rsp + 0x20]
call fcn.140017df0
mov qword [rbx + 0x28], rax
cmp dword [rsp + 0x3c], r15d
jne 0x1400104e5
cmp dword [rsp + 0x40], r15d
je 0x140010523
lea rdx, [rbp + 0x3d0]
lea rcx, [rsp + 0x3c]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x1400105bc
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x1400105bc
lea rcx, [rsp + 0x20]
call fcn.140017df0
mov qword [rbx + 0x20], rax
cmp dword [rsp + 0x34], r15d
jne 0x14001053b
cmp dword [rsp + 0x38], r15d
jne 0x14001053b
mov rax, qword [rbx + 0x28]
jmp 0x140010571
lea rdx, [rbp + 0x3d0]
lea rcx, [rsp + 0x34]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x1400105bc
lea rdx, [rsp + 0x20]
lea rcx, [rbp + 0x3d0]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x1400105bc
lea rcx, [rsp + 0x20]
call fcn.140017df0
mov rcx, rsi
mov qword [rbx + 0x30], rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [rsp + 0x30]
mov rdx, rdi
call fcn.140010600
mov ecx, dword [rsp + 0x4c]
mov word [rbx + 6], ax
mov eax, dword [rsp + 0x50]
shl rcx, 0x20
add rcx, rax
mov dword [rbx + 8], r12d
lea eax, [r14 - 1]
mov qword [rbx + 0x18], rcx
mov dword [rbx], eax
mov dword [rbx + 0x10], eax
xor eax, eax
mov word [rbx + 4], r15w
mov word [rbx + 0xc], r15w
jmp 0x1400105e2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400284a0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindClose]
jmp 0x1400105df
call fcn.140028510
mov dword [rax], 0x16
or eax, 0xffffffff
lea r11, [rsp + 0x490]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret