Function at 0x582734
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff378
mov dword [ebp - 4], eax
push 0x104
push 0
lea eax, [ebp - 0x13c]
push eax
call fcn.0066cc88
add esp, 0xc
lea edx, [ebp - 0x13c]
push edx
push 0x104
call sub.KERNEL32.DLL_GetLogicalDriveStringsA
mov dword [ebp - 0xc], eax
push 0x1a68
push 0
mov ecx, dword [ebp - 4]
add ecx, 0x340
push ecx
call fcn.0066cc88
add esp, 0xc
xor eax, eax
mov dword [ebp - 8], eax
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
cmp edx, ecx
jge 0x5828e6
lea eax, [ebp - 0x13c]
mov edx, dword [ebp - 8]
add eax, edx
push eax
call sub.KERNEL32.DLL_GetDriveTypeA
mov dword [ebp - 0x10], eax
mov ecx, dword [ebp - 0x10]
cmp ecx, 2
je 0x5827be
mov eax, dword [ebp - 0x10]
cmp eax, 3
jne 0x5828c7
mov edx, dword [ebp - 8]
mov cl, byte [ebp + edx - 0x13c]
mov byte [ebp - 0x11], cl
movsx eax, byte [ebp - 0x11]
cmp eax, 0x61
jl 0x5827e1
movsx edx, byte [ebp - 0x11]
cmp edx, 0x7a
jg 0x5827e1
add byte [ebp - 0x11], 0xe0
mov ecx, dword [ebp - 0x10]
cmp ecx, 2
jne 0x582803
movsx eax, byte [ebp - 0x11]
cmp eax, 0x41
je 0x5828d5
movsx edx, byte [ebp - 0x11]
cmp edx, 0x42
je 0x5828d5
lea ecx, [ebp - 0x1c]
push ecx
lea eax, [ebp - 0x18]
push eax
mov dl, byte [ebp - 0x11]
push edx
call fcn.005660c4
add esp, 0xc
test al, al
je 0x5828d5
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x5828d5
mov eax, dword [ebp - 0x18]
cmp eax, 0x1a
jg 0x5828d5
mov edx, dword [ebp - 0x18]
mov ecx, edx
shl edx, 6
add edx, ecx
mov eax, dword [ebp - 4]
mov dl, byte [eax + edx*4 + 0x23c]
test dl, dl
jne 0x582884
movsx ecx, byte [ebp - 0x11]
push ecx
push 0x5605
call fcn.00402b9c
pop ecx
push eax
push 0x82282e
mov eax, dword [ebp - 0x18]
dec eax
imul edx, eax, 0x104
mov ecx, dword [ebp - 4]
add edx, ecx
add edx, 0x340
push edx
call fcn.006712b0
add esp, 0x10
jmp 0x5828c7
movsx eax, byte [ebp - 0x11]
push eax
push 0x822836
lea edx, [ebp - 0x340]
push edx
call fcn.006712b0
add esp, 0xc
lea ecx, [ebp - 0x340]
push ecx
mov eax, dword [ebp - 0x18]
dec eax
imul edx, eax, 0x104
mov ecx, dword [ebp - 4]
add edx, ecx
add edx, 0x340
push edx
call fcn.0066cd2c
add esp, 8
jmp 0x5828c7
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dl, byte [ebp + eax - 0x13c]
test dl, dl
jne 0x5828c4
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
jl 0x582796
push 0x82283b
lea edx, [ebp - 0x340]
push edx
call fcn.006712b0
add esp, 8
xor ecx, ecx
mov dword [ebp - 8], ecx
mov eax, dword [ebp - 8]
mov edx, eax
shl eax, 6
add eax, edx
mov ecx, dword [ebp - 4]
mov al, byte [ecx + eax*4 + 0x340]
test al, al
je 0x582ad9
push dword [ebp - 8]
push 0x82283d
lea edx, [ebp - 0x440]
push edx
call fcn.006712b0
add esp, 0xc
push 0
push 0
push 3
push 0
push 3
push SysReAllocStringLen
lea ecx, [ebp - 0x440]
push ecx
call sub.KERNEL32.DLL_CreateFileA
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
cmp eax, 0xffffffff
je 0x582aa4
push 0
lea edx, [ebp - 0x34]
push edx
push 0x18
lea ecx, [ebp - 0x458]
push ecx
push 0
push 0
push 0x70000
push dword [ebp - 0x30]
call sub.KERNEL32.DLL_DeviceIoControl
test eax, eax
je 0x582a64
mov eax, dword [ebp - 0x44c]
imul dword [ebp - 0x448]
imul dword [ebp - 0x444]
xor edx, edx
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
push dword [ebp - 0x454]
push dword [ebp - 0x458]
mov eax, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
call fcn.00674900
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], edx
fild qword [ebp - 0x2c]
fld xword [0x582aec]
fmulp st(1)
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fcomp dword [0x582af8]
fnstsw ax
sahf
ja 0x5829f6
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push 0x822851
lea ecx, [ebp - 0x340]
push ecx
call fcn.006712b0
add esp, 0x10
jmp 0x582a78
fld xword [0x582afc]
fmul qword [ebp - 0x24]
fcomp dword [0x582b08]
fnstsw ax
sahf
jb 0x582a3f
fld qword [ebp - 0x24]
fmul dword [0x582b0c]
fld xword [0x582afc]
fmulp st(1)
fld xword [0x582afc]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
push 0x82285c
lea edx, [ebp - 0x340]
push edx
call fcn.006712b0
add esp, 0x10
jmp 0x582a78
fld xword [0x582afc]
fmul qword [ebp - 0x24]
add esp, 0xfffffff8
fstp qword [esp]
push 0x822867
lea ecx, [ebp - 0x340]
push ecx
call fcn.006712b0
add esp, 0x10
jmp 0x582a78
push 0x822872
lea eax, [ebp - 0x340]
push eax
call fcn.006712b0
add esp, 8
lea edx, [ebp - 0x340]
push edx
imul ecx, dword [ebp - 8], 0x104
mov eax, dword [ebp - 4]
add ecx, eax
add ecx, 0x340
push ecx
call fcn.0066cd2c
add esp, 8
push dword [ebp - 0x30]
call sub.KERNEL32.DLL_CloseHandle
jmp 0x582ad9
push 0x822874
lea edx, [ebp - 0x340]
push edx
call fcn.006712b0
add esp, 8
lea ecx, [ebp - 0x340]
push ecx
imul eax, dword [ebp - 8], 0x104
mov edx, dword [ebp - 4]
add eax, edx
add eax, 0x340
push eax
call fcn.0066cd2c
add esp, 8
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
cmp ecx, 0x1a
jl 0x5828ff
mov esp, ebp
pop ebp
ret