Function at 0x140031870
Capabilities:
Get disk information

Disassembly:
mov byte [rsp + 0x10], dl
mov byte [rsp + 8], cl
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov eax, dword [0x140042b2c]
xor ebx, ebx
and byte [0x140042b80], 1
mov cl, 0xc1
movzx edi, byte [0x140042a86]
movzx r12d, bl
movzx r13d, byte [0x140042a63]
mov esi, 1
movsx ebp, byte [0x140042a62]
mov r14d, ebx
imul r15d, eax, 0x170
mov dword [rsp + 0x24], eax
mov eax, 0xcccccccd
lea r11d, [r13 + 3]
mov dword [rsp + 0xa8], ecx
movsx ecx, byte [0x140042b64]
movsx r8d, r11b
mov r9d, ecx
mul r15d
mov dword [rsp + 0xa0], r8d
movzx r8d, byte [0x140042b81]
shr edx, 2
mov dword [rsp + 0x30], r11d
movzx r11d, byte [0x140042b54]
mov dword [0x140042a64], ebx
lea eax, [rdx + rdx*4]
mov dword [0x140042b3c], esi
sub r15d, eax
mov dword [rsp + 0x34], ecx
test dil, dil
setne byte [0x140042b88]
test cl, cl
setne al
shl r8d, 6
add dil, al
and r12b, 0xba
mov eax, 0x66666667
mov byte [0x140042a86], dil
imul r8d
mov byte [0x140042a87], r12b
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
movzx edx, byte [0x140042b65]
sub r8d, eax
mov dword [rsp + 0x20], r8d
or r9d, r8d
mov r8d, 0x133
test r9d, r9d
je 0x14003198b
mov ecx, r11d
mov eax, 0x1ba
shl eax, cl
xor eax, 0x56
je 0x14003198b
movzx r10d, sil
jmp 0x14003198e
xor r10b, r10b
and dl, 0x16
sub r8, rsi
jne 0x140031971
movzx eax, r13b
lea r9d, [r8 + 0x2e]
mov r8d, dword [0x140042b68]
xor al, 0xf
or dl, al
imul r13d, r11d, 0xffffffda
mov r11d, dword [rsp + 0xa0]
imul r11d, dword [0x140042b40]
movzx eax, dil
mov edi, dword [rsp + 0x20]
imul eax, eax, 0x19
and edi, 0x170
mov byte [0x140042b65], dl
mov dword [rsp + 0x90], eax
movzx eax, byte [0x140042b83]
imul ecx, eax, 0xc8
mov eax, 0x55555556
imul ecx
mov eax, 0x55555556
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [rsp + 0x28], ecx
imul ecx, ebp, 0x116
movsx ebp, byte [0x140042b66]
imul ecx
mov eax, dword [0x140042b44]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [rsp + 0x2c], ecx
mov cl, 0x8e
shr r11d, 2
dec r9w
test eax, eax
je 0x140031a33
mov eax, esi
test cl, cl
jne 0x140031a35
mov eax, ebx
and r8d, eax
mov ecx, ebx
test edi, edi
mov eax, ebp
setne cl
shl eax, cl
movzx ecx, r11b
test r9w, r9w
jne 0x140031a25
mov r9d, dword [0x140042b30]
mov dword [0x140042b44], eax
mov eax, 0xcccccccd
mov byte [rsp + 0x98], cl
mov dword [0x140042b68], r8d
lea ecx, [r9*4 + 0x116]
add ecx, r9d
mul ecx
shr edx, 3
lea eax, [rdx + rdx*4]
mov edx, dword [0x140042b84]
add eax, eax
sub ecx, eax
je 0x140031bb2
sub ecx, esi
je 0x140031b68
sub ecx, esi
je 0x140031b2e
cmp ecx, esi
je 0x140031ae9
cmp byte [0x140042b66], bl
mov ecx, dword [rsp + 0xa0]
setne al
shl r8d, cl
or byte [0x140042b82], al
test r13d, r8d
je 0x140031ad0
mov eax, dword [rsp + 0x2c]
cmp eax, dword [0x140042b38]
mov eax, esi
je 0x140031ad2
mov eax, ebx
or dword [0x140042b6c], eax
mov r8d, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x90]
jmp 0x140031be7
mov ecx, dword [0x140042b58]
test ecx, ecx
je 0x140031b02
mov eax, dword [rsp + 0x28]
add eax, 0x170
or eax, edx
mov eax, esi
jne 0x140031b04
mov eax, ebx
xor byte [0x140042a63], al
movsx ebp, byte [rsp + 0x98]
mov r8d, dword [rsp + 0x24]
cmp ecx, ebp
mov ecx, dword [rsp + 0x90]
setne al
add byte [0x140042b67], al
jmp 0x140031bef
movsx ebp, byte [rsp + 0x98]
mov r8d, dword [rsp + 0x24]
mov r12d, ebp
mov ecx, dword [rsp + 0x90]
mov eax, ebp
add eax, dword [0x140042b40]
imul r12d, r9d
shr r12d, 2
and dword [0x140042b48], eax
mov dword [rsp + 0xa8], r12d
jmp 0x140031bf7
cmp dword [0x140042b5c], ebx
jne 0x140031b93
mov ecx, dword [rsp + 0x90]
mov eax, dword [rsp + 0x2c]
shr eax, cl
mov ecx, ebx
cmp eax, dword [0x140042b6c]
mov byte [0x140042b67], bl
sete cl
test r15d, ecx
je 0x140031b9a
mov byte [0x140042b67], sil
mov r8d, dword [rsp + 0x24]
inc r12b
mov ecx, dword [rsp + 0x90]
mov byte [0x140042a87], r12b
jmp 0x140031be7
cmp dword [rsp + 0x20], 0xc8
mov eax, ebx
mov ecx, dword [rsp + 0x90]
mov r8d, dword [rsp + 0x24]
sete al
and eax, dword [0x140042b78]
xor r14d, eax
lea eax, [rcx + 0x4b]
mov dword [0x140042a64], r14d
or eax, dword [0x140042b28]
or r8d, eax
movzx ebp, byte [rsp + 0x98]
mov r12d, dword [rsp + 0xa8]
test r9d, r9d
je 0x140031c09
movsx eax, r12b
xor eax, 0x116
mov eax, esi
jne 0x140031c0b
mov eax, ebx
sub r10b, al
movsx edi, bpl
mov eax, edi
mov byte [0x140042b81], r10b
or eax, dword [0x140042b34]
or eax, ecx
mov dword [rsp + 0x24], edi
xor edx, eax
mov ecx, ebx
cmp dword [rsp + 0x34], r13d
mov eax, r15d
mov dword [0x140042b84], edx
sete cl
xor eax, 0x4b
or ecx, eax
jne 0x140031c4d
cmp dword [0x140042b60], ebx
mov eax, ebx
je 0x140031c4f
mov eax, esi
add r8d, eax
mov dword [0x140042b2c], r8d
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
imul ecx, dword [0x140042b34], 0x4b
mov eax, edi
mov edi, dword [0x140042b5c]
neg eax
movzx r8d, byte [0x140042b64]
mov r14d, 0x60
mov r11d, dword [0x140042b30]
mov r9d, dword [0x140042b58]
mov r10d, dword [0x140042b4c]
mov dword [rsp + 0x38], eax
mov eax, 0xaaaaaaab
mul ecx
mov eax, dword [0x140042a64]
mov ecx, dword [0x140042b38]
shr edx, 1
mov dword [rsp + 0x34], edx
mov dword [rsp + 0x98], eax
test r13d, r13d
jne 0x140031cc1
test r12b, r12b
je 0x140031d31
mov edx, ebx
movsx eax, r12b
add eax, 0xc8
cmp ecx, eax
movzx eax, bpl
sete dl
sar al, cl
movsx eax, al
inc r9d
or edx, eax
or dword [rsp + 0x98], edx
cmp dword [0x140042b28], ebx
je 0x140031cfb
mov eax, dword [rsp + 0x28]
add eax, 0xfffffee7
mov eax, esi
jne 0x140031cfd
mov eax, ebx
sub r8b, al
mov ecx, r15d
mov eax, dword [0x140042b68]
sar eax, cl
test eax, eax
jne 0x140031d21
cmp r15d, 0x4b
jne 0x140031d1d
cmp dword [0x140042b60], ebx
jne 0x140031d21
mov eax, ebx
jmp 0x140031d23
mov eax, esi
mov edx, dword [rsp + 0x34]
sub r9d, eax
mov dword [0x140042b58], r9d
mov ecx, dword [rsp + 0x90]
test r10d, r10d
jne 0x140031d4c
mov eax, dword [rsp + 0xa0]
shl eax, cl
test eax, eax
mov eax, ebx
je 0x140031d4e
mov eax, esi
xor r11d, eax
and r10d, esi
mov eax, dword [0x140042b84]
add eax, r15d
mov r15d, edx
mov dword [0x140042a88], eax
lea eax, [r8 + rcx]
mov ecx, dword [rsp + 0x38]
shl edi, cl
mov ecx, dword [0x140042b38]
mov byte [0x140042b65], al
sub r14, rsi
jne 0x140031cb7
movzx ecx, byte [0x140042b80]
movsx r14d, r12b
mov dword [0x140042b30], r11d
movzx r11d, byte [0x140042b81]
mov byte [0x140042b64], r8b
lea eax, [r14 + rcx*4]
mov dword [0x140042b4c], r10d
add ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*4]
add eax, eax
sub ecx, eax
je 0x140031e71
sub ecx, esi
je 0x140031e65
mov ebp, dword [0x140042b34]
sub ecx, esi
je 0x140031e10
cmp ecx, esi
jne 0x140031e9a
movzx ecx, byte [rsp + 0x20]
mov eax, 0x4b
sub cl, byte [rsp + 0x2c]
sub al, r10b
add cl, bpl
xor cl, al
add r8b, cl
mov byte [0x140042b64], r8b
jmp 0x140031e9a
mov r10d, dword [rsp + 0xa0]
mov eax, 0x55555556
mov r8d, dword [rsp + 0x90]
mov r13d, r10d
imul r10d
mov ecx, r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
movzx edx, byte [0x140042a87]
sub r13d, eax
add edx, 0x4b
movsx eax, byte [0x140042a63]
add r13d, dword [0x140042b7c]
sar edx, cl
mov ecx, r10d
sub ecx, eax
cmp edx, ecx
sete byte [0x140042a63]
jmp 0x140031eaa
test r11b, r11b
mov eax, ebx
sete al
or edi, eax
jmp 0x140031e94
movzx ecx, byte [0x140042b55]
mov edx, r15d
sar edx, cl
movzx eax, r13b
mov ecx, r15d
shl al, cl
and al, byte [0x140042b67]
xor dl, al
and byte [0x140042b67], dl
mov ebp, dword [0x140042b34]
mov r10d, dword [rsp + 0xa0]
mov r8d, dword [rsp + 0x90]
movzx eax, byte [0x140042b54]
mov edx, r14d
movzx ecx, byte [rsp + 0x20]
sar edx, cl
xor edx, eax
imul eax, edx, 0x71
add edi, eax
cmp dword [0x140042b38], ebx
mov dword [0x140042b5c], edi
jne 0x140031edb
mov edx, ebx
cmp r8d, 0x116
jne 0x140031edd
mov edx, esi
mov r12d, dword [rsp + 0x28]
mov ecx, r13d
xor ecx, 0x1e1
movzx eax, r11b
cmp eax, ecx
sete al
and dl, byte [0x140042a63]
sub dl, al
mov byte [0x140042a63], dl
test r12d, r12d
jne 0x140031f0f
mov ecx, ebx
test r10b, 0xc8
je 0x140031f11
mov ecx, esi
movzx eax, byte [0x140042b57]
or eax, ecx
mov ecx, dword [0x140042b48]
add dword [0x140042b68], eax
movsx eax, dl
and eax, r14d
mov dword [0x140042a64], eax
mov eax, 0x50b
test ecx, ecx
je 0x140031f47
mov dword [0x140042b40], esi
cmp r15d, 0x4e
jne 0x140031f4d
mov dword [0x140042b40], ebx
sub rax, rsi
jne 0x140031f37
imul ebp, ebp, 0x170
mov eax, 0xcccccccd
mul ebp
shr edx, 2
lea eax, [rdx + rdx*4]
sub ebp, eax
test r9d, r9d
jne 0x140031f81
mov eax, dword [rsp + 0x24]
add eax, r12d
mov byte [0x140042b81], bl
or eax, dword [0x140042b44]
je 0x140031f88
mov byte [0x140042b81], sil
movsx edi, byte [0x140042b67]
add edi, 0x5c
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov ecx, dword [0x140042b78]
mov eax, 0xaaaaaaab
mov r11d, dword [0x140042a88]
sub ecx, edi
mov r9d, dword [0x140042b38]
sub ecx, r12d
mov r12d, dword [0x140042b3c]
mov r10d, dword [0x140042a8c]
mov r8d, dword [0x140042b4c]
mov dword [0x140042b40], ecx
mov ecx, r14d
imul ecx, r12d
mov r14d, 0x93
mul ecx
mov eax, edx
shr eax, 1
mov dword [rsp + 0x98], eax
nop dword [rax + rax]
test r8d, r8d
jne 0x140032010
test r13d, r13d
jne 0x140032010
cmp dword [rsp + 0x90], r12d
mov eax, ebx
seta al
cmp eax, r15d
jge 0x140032092
cmp byte [0x140042b83], bl
jne 0x140032031
mov ecx, dword [rsp + 0x20]
mov eax, 0xc8
shl eax, cl
mov ecx, edi
sar eax, cl
mov byte [0x140042b57], bl
test eax, eax
je 0x140032038
mov byte [0x140042b57], sil
lea ecx, [r8 + r8]
mov eax, r13d
sub r11d, ecx
cdq
and edx, 3
mov ecx, ebp
add eax, edx
mov edx, dword [0x140042b58]
sar eax, 2
add al, byte [0x140042a87]
shl edx, cl
mov ecx, ebx
test edx, edx
mov dword [rsp + 0x30], eax
setne cl
or r8d, ecx
cmp byte [0x140042b65], bl
jne 0x140032084
mov ecx, ebp
mov edx, ebx
sub ecx, dword [0x140042b28]
mov eax, ebx
shl edx, cl
cmp r13d, edx
jne 0x140032086
mov eax, esi
or r9d, eax
mov eax, r8d
xor eax, 0x4b
sub r10d, eax
sub r14, rsi
jne 0x140031ff0
mov dword [0x140042b4c], r8d
mov dword [0x140042b38], r9d
mov dword [0x140042a8c], r10d
mov dword [0x140042a88], r11d
call qword [sym.imp.USER32.dll_GetFocus]
mov r11d, dword [rsp + 0x30]
movzx ecx, r11b
movzx r9d, byte [0x140042b54]
mov r14d, dword [rsp + 0x24]
mov eax, r9d
movzx ebp, byte [0x140042a62]
and eax, r13d
movsx r8d, r11b
mov r10d, r14d
sar r11b, cl
and r10d, r8d
xor r10d, dword [0x140042b30]
mov ecx, dword [rsp + 0xa8]
or r10d, eax
cmp byte [0x140042b55], r11b
movzx eax, dil
movzx r11d, byte [0x140042b83]
sete byte [0x140042b88]
movsx edx, cl
xor al, byte [0x140042a8c]
add edx, r8d
mov ecx, dword [0x140042b6c]
sar edx, cl
or dl, al
mov dword [0x140042b28], r10d
cmp edi, r15d
mov byte [0x140042a63], dl
mov edx, dword [rsp + 0x20]
mov ecx, edx
sete al
sub ecx, r8d
xor al, byte [0x140042b66]
sub ecx, r13d
and byte [0x140042b56], al
add r11d, 0x42
shl r9d, cl
test r9d, r9d
je 0x140032175
test bpl, bpl
je 0x140032175
mov r8d, esi
mov dword [0x140042b34], esi
jmp 0x14003217e
mov r8d, ebx
mov dword [0x140042b34], ebx
cmp dword [rsp + 0x28], ebx
je 0x1400321ad
cmp dword [0x140042b48], ebx
je 0x14003219b
mov eax, dword [rsp + 0x90]
mov ecx, edx
sar eax, cl
test eax, eax
jne 0x14003219d
mov esi, ebx
mov eax, dword [0x140042b5c]
xor eax, esi
mov dword [0x140042b5c], eax
jmp 0x1400321b3
mov eax, dword [0x140042b5c]
test eax, eax
je 0x140032213
movzx eax, byte [0x140042a86]
mov edx, ebx
cmp r11d, eax
sete dl
cmp edi, edx
je 0x140032213
mov ecx, r14d
movsx eax, bpl
cmp r11d, 1
sete bl
shl edi, cl
or edi, dword [rsp + 0x98]
add ebx, dword [0x140042b40]
movzx ecx, dil
shl eax, cl
xor r8d, ebx
sub r10d, eax
mov dword [0x140042b34], r8d
movzx eax, byte [0x140042b81]
mov ecx, r11d
shl eax, cl
mov dword [0x140042b78], eax
mov dword [0x140042b28], r10d
call fcn.140030b40
xor eax, eax
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret