Function at 0x40effe
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
push ebx
push esi
push edi
push 6
pop eax
mov dword [ebp - 8], eax
xor ebx, ebx
mov dword [ebp - 0xc], 0xfffffff9
mov esi, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x10], ebx
jmp 0x40f02a
mov eax, dword [ebp - 0x10]
mov dword [ebp + eax*4 - 0x2c], ebx
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 2
jl 0x40f020
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp - 8]
push 1
pop edi
mov ecx, edi
cmp dword [ebp - 0xc], ebx
jne 0x40f057
mov ecx, ebx
xor eax, eax
cmp ecx, 0x5fba2522
sete al
xor ecx, ecx
test eax, eax
setle cl
sub ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
neg ecx
sbb ecx, ecx
xor edx, edx
inc ecx
cmp ecx, eax
mov eax, dword [ebp - 8]
setle dl
xor ecx, ecx
cmp edx, eax
setge cl
xor edx, edx
cmp ecx, 0x1230
mov ecx, 0xb6930509
setg dl
xor eax, eax
cmp edx, 0x91cb
setge al
imul eax, eax, 0xfe04
cmp ecx, eax
sbb eax, eax
inc eax
imul eax, dword [ebp - 8]
test eax, eax
je 0x40f0c9
mov dword [ebp - 0x20], 0xfcecb2ec
mov dword [ebp - 0xc], 0x55dbfe6b
mov dword [ebp - 0x10], edi
dec dword [ebp - 0xc]
jmp 0x40f127
mov dword [ebp - 0x10], 0x19
jmp 0x40f122
mov dword [ebp - 0x1c], 0xbc1846e9
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x20], 0x194e4064
mov dword [ebp - 8], ebx
jmp 0x40f119
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x18], 0xe702b681
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
cmp dword [ebp - 0x18], ebx
je 0x40f106
mov eax, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
mov ecx, 0x10000
sub ecx, eax
add ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x20], ecx
inc dword [ebp - 8]
cmp dword [ebp - 8], 0x36
jle 0x40f0e8
dec dword [ebp - 0x10]
cmp dword [ebp - 0x10], edi
je 0x40f0d2
mov dword [ebp - 8], ebx
jmp 0x40f18a
mov dword [ebp - 0xc], ebx
jmp 0x40f145
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x40f142
push ebx
push ebx
push ebx
call dword [sym.imp.USER32.dll_UnionRect]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x40f131
mov dword [ebp - 0xc], ebx
jmp 0x40f182
mov dword [ebp - 0x10], 0x52fa57a8
mov dword [ebp - 0x10], 0xfffffff8
mov dword [ebp - 0x10], edi
cmp dword [ebp - 0x10], ebx
jl 0x40f17f
mov byte [ebp - 1], bl
cmp byte [ebp - 1], bl
je 0x40f17a
push 0x2042
push ebx
push ebx
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
dec dword [ebp - 0x10]
jns 0x40f165
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jle 0x40f14f
inc dword [ebp - 8]
cmp dword [ebp - 8], 3
jge 0x40f12c
push esi
push 0x574a
lea eax, [ebp - 0x24]
push eax
push ebx
push 0x7d37
push 0x4e42
push 0x77f8
call fcn.004153bd
mov dword [ebp - 0x20], ebx
add esp, 0x1c
mov dword [ebp - 0xc], ebx
jmp 0x40f1c8
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x14], 0xdd33
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], edi
jl 0x40f1ba
mov dword [ebp - 0xc], ebx
jmp 0x40f1e0
mov eax, dword [ebp - 0xc]
mov dword [ebp + eax*4 - 0x38], 0xa76aabec
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 3
jl 0x40f1d2
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x34], ebx
jl 0x40f287
mov dword [ebp - 0x10], 0xbd035c5
xor ecx, ecx
mov dword [ebp - 0x1c], 0x28451d77
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x14]
cmp eax, 0x987f
setge cl
mov dword [ebp - 0x10], ecx
cmp dword [ebp - 0x10], ebx
jne 0x40f25e
mov eax, dword [ebp - 0x34]
xor edx, edx
mov eax, dword [ebp - 0x20]
mov eax, dword [ebp - 0x30]
mov eax, dword [ebp - 0x10]
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x14]
cmp eax, edi
mov eax, dword [ebp - 0x14]
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp - 0x38]
setne cl
xor edx, edx
imul ecx, ecx, 0xc4f3
cmp ecx, eax
sete dl
mov dword [ebp - 0x10], edx
mov edx, ebx
mov eax, dword [ebp - 0x34]
mov eax, dword [ebp + eax*4 - 0x14]
cmp dword [ebp - 0x10], eax
je 0x40f260
mov edx, edi
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp + eax*4 - 0x14]
mov eax, edi
sub eax, edx
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x34]
setg dl
mov eax, dword [ebp + eax*4 - 0x14]
add eax, edx
mov dword [ebp - 0x1c], eax
dec dword [ebp - 0x34]
jns 0x40f1f2
mov eax, dword [ebp - 0x24]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret