Function at 0x140003638
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2c0
mov rax, qword [0x1400600c0]
xor rax, rsp
mov qword [rsp + 0x2b0], rax
xor r14d, r14d
mov rbx, rdx
mov rsi, rcx
cmp rcx, r14
jne 0x14000369b
call fcn.1400051ac
mov dword [rax], r14d
call fcn.14000518c
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], 0x16
mov qword [rsp + 0x20], r14
call fcn.1400060d8
jmp 0x140003afe
cmp rdx, r14
je 0x14000366f
lea rdx, [0x140058714]
call fcn.14000d3f8
cmp rax, r14
je 0x1400036c9
call fcn.14000518c
mov ebx, 2
mov dword [rax], ebx
call fcn.1400051ac
mov dword [rax], ebx
jmp 0x140003afe
cmp byte [rsi + 1], 0x3a
jne 0x1400036e8
cmp byte [rsi], r14b
je 0x1400036da
cmp byte [rsi + 2], r14b
je 0x1400036b1
movsx ecx, byte [rsi]
call fcn.14000d2ec
lea r13d, [rax - 0x60]
jmp 0x1400036f0
call fcn.14000d110
mov r13d, eax
lea rdx, [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov r15d, 1
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400038c9
lea rdx, [0x140058710]
mov rcx, rsi
mov rbp, r14
call fcn.14000d3f8
cmp rax, r14
je 0x1400036b1
call fcn.14000518c
mov r12d, dword [rax]
call fcn.14000518c
lea rcx, [rsp + 0x1a0]
mov r8d, 0x104
mov rdx, rsi
mov dword [rax], r14d
call fcn.14000be00
mov rdi, rax
cmp rax, r14
je 0x140003760
call fcn.14000518c
mov dword [rax], r12d
jmp 0x140003789
call fcn.14000518c
cmp dword [rax], 0x22
jne 0x1400036b1
call fcn.14000518c
xor r8d, r8d
mov rdx, rsi
xor ecx, ecx
mov dword [rax], r12d
call fcn.14000be00
mov rbp, rax
mov rdi, rax
cmp rdi, r14
je 0x1400038b3
mov rcx, rdi
call fcn.140001cc0
cmp rax, 3
je 0x140003848
mov rcx, rdi
call fcn.140001cc0
cmp rax, 5
jb 0x1400038b3
mov r8b, 0x5c
mov dl, 0x2f
cmp byte [rdi], r8b
je 0x1400037c8
cmp byte [rdi], dl
jne 0x1400038b3
mov al, byte [rdi + 1]
cmp al, r8b
je 0x1400037d8
cmp al, dl
jne 0x1400038b3
mov al, byte [rdi + 2]
cmp al, r8b
je 0x1400038b3
cmp al, dl
je 0x1400038b3
lea rax, [rdi + 3]
mov cl, byte [rax]
cmp cl, r14b
je 0x1400038b3
cmp cl, r8b
je 0x14000380e
cmp cl, dl
je 0x14000380e
add rax, r15
mov cl, byte [rax]
cmp cl, r14b
jne 0x1400037fb
cmp byte [rax], r14b
je 0x1400038b3
inc rax
cmp byte [rax], r14b
je 0x1400038b3
mov cl, byte [rax]
cmp cl, r14b
je 0x140003848
cmp cl, r8b
je 0x14000383d
cmp cl, dl
je 0x14000383d
add rax, r15
mov cl, byte [rax]
cmp cl, r14b
jne 0x14000382a
cmp byte [rax], r14b
je 0x140003848
cmp byte [rax + 1], r14b
jne 0x1400038b3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, r15d
jbe 0x1400038b3
cmp rbp, r14
je 0x140003863
mov rcx, rbp
call fcn.140001bb0
or dword [rsp + 0x30], 0xffffffff
xor r9d, r9d
mov r8d, r15d
mov edx, r15d
mov ecx, 0x7bc
mov dword [rsp + 0x28], r14d
mov dword [rsp + 0x60], 0x10
mov dword [rsp + 0x7c], r14d
mov dword [rsp + 0x80], r14d
mov dword [rsp + 0x20], r14d
mov byte [rsp + 0x8c], r14b
call fcn.14000ce54
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x28], rax
jmp 0x140003aad
cmp rbp, r14
je 0x1400036b1
mov rcx, rbp
call fcn.140001bb0
jmp 0x1400036b1
bt dword [rsp + 0x60], 0xa
jae 0x14000392e
cmp dword [rsp + 0x84], 0xa000000c
jne 0x14000392e
or dword [rsp + 0x50], 0xffffffff
lea rcx, [rsp + 0x50]
mov r9d, 0x40
xor r8d, r8d
mov rdx, rsi
mov dword [rsp + 0x20], r14d
call fcn.14000ce20
cmp eax, r14d
jne 0x1400036b1
mov ecx, dword [rsp + 0x50]
cmp ecx, 0xffffffff
je 0x1400036b1
mov rdx, rbx
call fcn.14000c0a8
mov ecx, dword [rsp + 0x50]
mov ebx, eax
call fcn.14000b1a8
mov eax, ebx
jmp 0x140003b01
cmp dword [rsp + 0x74], r14d
jne 0x140003942
cmp dword [rsp + 0x78], r14d
jne 0x140003942
mov qword [rbx + 0x20], r14
jmp 0x1400039ac
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x74]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
cmp eax, r14d
je 0x140003ae8
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
cmp eax, r14d
je 0x140003ae8
or dword [rsp + 0x30], 0xffffffff
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.14000ce54
mov qword [rbx + 0x20], rax
cmp dword [rsp + 0x6c], r14d
jne 0x1400039c0
cmp dword [rsp + 0x70], r14d
jne 0x1400039c0
mov rax, qword [rbx + 0x20]
jmp 0x140003a26
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x6c]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
cmp eax, r14d
je 0x140003ae8
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
cmp eax, r14d
je 0x140003ae8
or dword [rsp + 0x30], 0xffffffff
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.14000ce54
mov qword [rbx + 0x18], rax
cmp dword [rsp + 0x64], r14d
jne 0x140003a3e
cmp dword [rsp + 0x68], r14d
jne 0x140003a3e
mov rax, qword [rbx + 0x20]
jmp 0x140003aa0
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x64]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
cmp eax, r14d
je 0x140003ae8
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
cmp eax, r14d
je 0x140003ae8
or dword [rsp + 0x30], 0xffffffff
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.14000ce54
mov rcx, rdi
mov qword [rbx + 0x28], rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov ecx, dword [rsp + 0x60]
mov rdx, rsi
call fcn.14000bfc0
mov word [rbx + 8], r15w
mov word [rbx + 4], r14w
mov word [rbx + 6], ax
mov eax, dword [rsp + 0x80]
mov word [rbx + 0xc], r14w
mov dword [rbx + 0x14], eax
lea eax, [r13 - 1]
mov word [rbx + 0xa], r14w
mov dword [rbx], eax
mov dword [rbx + 0x10], eax
xor eax, eax
jmp 0x140003b01
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1400051cc
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FindClose]
or eax, 0xffffffff
mov rcx, qword [rsp + 0x2b0]
xor rcx, rsp
call fcn.140001280
mov rbx, qword [rsp + 0x310]
add rsp, 0x2c0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret