Function at 0x1007ae2
Capabilities:
Get disk information

Disassembly:
push 0x24
mov eax, 0x10436ee
call fcn.01003649
mov dword [ebp - 0x18], ecx
mov edi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 4], eax
mov eax, dword [edi]
mov eax, dword [eax - 0xc]
cmp eax, 1
mov dword [ebp - 0x20], edi
jl 0x101fb4c
mov eax, dword [0x104a2c8]
push dword [eax - 0xc]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.010079d6
push dword [0x104a2c8]
mov ecx, eax
call fcn.0100370f
mov ecx, dword [ebp - 0x2c]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
inc bl
call fcn.01002990
test bl, bl
jne 0x10086dc
mov eax, dword [0x104a2cc]
push dword [eax - 0xc]
lea eax, [ebp - 0x2c]
push eax
mov ecx, edi
call fcn.010079d6
push dword [0x104a2cc]
mov ecx, eax
call fcn.0100370f
mov ecx, dword [ebp - 0x2c]
mov ebx, eax
neg ebx
sbb bl, bl
add ecx, 0xfffffff0
inc bl
call fcn.01002990
test bl, bl
jne 0x101fb58
mov eax, dword [edi]
mov ecx, dword [eax - 0xc]
push 3
pop esi
cmp ecx, esi
jle 0x1007bab
cmp ecx, 1
jl 0x101fb96
movzx edx, word [eax + 2]
cmp dx, 0x3a
je 0x1012f6f
cmp ecx, esi
je 0x101fba0
xor ebx, ebx
inc ebx
push ebx
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.01007c5b
push 0x1003488
push eax
mov byte [ebp - 4], 2
mov dword [ebp - 0x2c], ebx
call fcn.01007c3c
test al, al
je 0x1007bf7
push ebx
lea eax, [ebp - 0x18]
push eax
mov ecx, edi
call fcn.01007c5b
push 0x1012e6c
push eax
mov ebx, esi
call fcn.01007c3c
test al, al
jne 0x1012eee
mov byte [ebp - 0x21], 0
test bl, 2
je 0x1007c0e
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
and ebx, 0xfffffffd
call fcn.01002990
and dword [ebp - 4], 0
test bl, 1
je 0x1007c22
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.01002990
cmp byte [ebp - 0x21], 0
jne 0x1012f05
mov eax, dword [ebp - 0x28]
call fcn.01002fbc
ret 8
mov eax, dword [0x104a2c8]
mov esi, dword [eax - 0xc]
mov eax, dword [edi]
mov eax, dword [eax - 0xc]
lea ebx, [esi + 1]
cmp eax, ebx
jl 0x101fb70
push esi
mov ecx, edi
call fcn.01004428
movzx eax, ax
push eax
call dword [sym.imp.msvcrt.dll_towupper]
movzx edi, ax
pop ecx
cmp di, 0x2a
je 0x1015371
cmp di, 0x3f
je 0x1015371
mov ecx, dword [ebp - 0x20]
mov eax, dword [ecx]
mov eax, dword [eax - 0xc]
add esi, 2
cmp eax, esi
jl 0x101fb7c
cmp di, 0x5a
ja 0x1015365
cmp di, 0x41
jb 0x1015365
xor esi, esi
cmp dword [ebp - 0x28], esi
jl 0x1015371
push ebx
call fcn.01004428
movzx eax, ax
cmp ax, 0x3a
jne 0x101fb8a
cmp dword [ebp - 0x28], esi
jl 0x1015371
mov eax, dword [ebp - 0x18]
cmp byte [eax + 0x5c], 0
jne 0x1015371
cmp dword [ebp + 0xc], esi
je 0x1015371
mov eax, dword [0x10087b4]
mov dword [ebp - 0x1c], eax
mov eax, dword [0x10087b8]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x1c]
push eax
mov word [ebp - 0x1c], di
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov edi, dword [ebp - 0x20]
cmp eax, 3
je 0x1007b86
jmp 0x101fb70
push edi
call fcn.01003af2
mov byte [ebp - 0x21], 1
test eax, eax
je 0x1007bfb
jmp 0x1007bf7
push 0
push 0x5c
mov ecx, edi
mov dword [ebp - 0x20], 0x2f
call fcn.01012f38
cmp eax, 0xffffffff
je 0x1012f23
push 0x5c
pop eax
mov word [ebp - 0x20], ax
lea eax, [ebp - 0x20]
push eax
mov ecx, edi
call fcn.01012ecd
jmp 0x1007c2c
cmp ecx, 2
jl 0x101fb96
movzx edx, word [eax + 4]
cmp dx, 0x5c
jne 0x1007ba9
cmp ecx, esi
jl 0x101fb96
movzx edx, word [eax + 6]
cmp dx, 0x5c
je 0x1007ba9
test ecx, ecx
jl 0x101fb96
movzx eax, word [eax]
push eax
call dword [sym.imp.msvcrt.dll_towupper]
movzx eax, ax
add eax, 0xffffffbf
pop ecx
cmp ax, 0x19
ja 0x1007bb1
push edi
push 0x104a2c8
lea eax, [ebp - 0x18]
push eax
call fcn.010042cd
push eax
mov ecx, edi
mov byte [ebp - 4], 1
call fcn.01003fa0
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
mov byte [ebp - 4], 0
call fcn.01002990
jmp 0x1007bb1
mov dword [ebp - 0x28], 0x80070057
jmp 0x1008745
mov edi, dword [ebp - 0x20]
jmp 0x1007b86
mov dword [ebp - 0x28], 0x80070057
jmp 0x1007b10
push dword [0x104a2c8]
mov ecx, edi
push dword [0x104a2cc]
call fcn.0103a3b2
jmp 0x10086dc
mov dword [ebp - 0x28], 0x80070057
jmp 0x1007b86
mov dword [ebp - 0x28], 0x80070057
mov edi, ecx
jmp 0x1007b86
mov dword [ebp - 0x28], 0x80070057
jmp 0x1008763
push 0x80070057
call fcn.01025b15
cmp ecx, 1
jl 0x101fb96
movzx edx, word [eax + 2]
cmp dx, 0x3a
jne 0x1007bb1
cmp ecx, 2
jl 0x101fb96
movzx edx, word [eax + 4]
cmp dx, 0x5c
je 0x1012f9c
jmp 0x1007bb1