Function at 0x56ff4c
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, 0x40c
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 0x5700fe
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 0x56ffd6
mov eax, dword [ebp - 0x10]
cmp eax, 3
jne 0x5700df
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 0x56fff9
movsx edx, byte [ebp - 0x11]
cmp edx, 0x7a
jg 0x56fff9
add byte [ebp - 0x11], 0xe0
mov ecx, dword [ebp - 0x10]
cmp ecx, 2
jne 0x57001b
movsx eax, byte [ebp - 0x11]
cmp eax, 0x41
je 0x5700ed
movsx edx, byte [ebp - 0x11]
cmp edx, 0x42
je 0x5700ed
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 0x5700ed
mov ecx, dword [ebp - 0x18]
test ecx, ecx
jle 0x5700ed
mov eax, dword [ebp - 0x18]
cmp eax, 0x1a
jg 0x5700ed
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 + 0x308]
test dl, dl
jne 0x57009c
movsx ecx, byte [ebp - 0x11]
push ecx
push 0x5605
call fcn.00402b9c
pop ecx
push eax
push 0x81fb05
mov eax, dword [ebp - 0x18]
dec eax
imul edx, eax, 0x104
mov ecx, dword [ebp - 4]
add edx, ecx
add edx, 0x40c
push edx
call fcn.006712b0
add esp, 0x10
jmp 0x5700df
movsx eax, byte [ebp - 0x11]
push eax
push 0x81fb0d
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, 0x40c
push edx
call fcn.0066cd2c
add esp, 8
jmp 0x5700df
inc dword [ebp - 8]
mov eax, dword [ebp - 8]
mov dl, byte [ebp + eax - 0x13c]
test dl, dl
jne 0x5700dc
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
cmp ecx, eax
jl 0x56ffae
push 0x81fb12
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 + 0x40c]
test al, al
je 0x5702f1
push dword [ebp - 8]
push 0x81fb14
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 0x5702bc
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 0x57027c
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 [0x570304]
fmulp st(1)
fstp qword [ebp - 0x24]
fld qword [ebp - 0x24]
fcomp dword [0x570310]
fnstsw ax
sahf
ja 0x57020e
push dword [ebp - 0x20]
push dword [ebp - 0x24]
push 0x81fb28
lea ecx, [ebp - 0x340]
push ecx
call fcn.006712b0
add esp, 0x10
jmp 0x570290
fld xword [0x570314]
fmul qword [ebp - 0x24]
fcomp dword [0x570320]
fnstsw ax
sahf
jb 0x570257
fld qword [ebp - 0x24]
fmul dword [0x570324]
fld xword [0x570314]
fmulp st(1)
fld xword [0x570314]
fmulp st(1)
add esp, 0xfffffff8
fstp qword [esp]
push 0x81fb33
lea edx, [ebp - 0x340]
push edx
call fcn.006712b0
add esp, 0x10
jmp 0x570290
fld xword [0x570314]
fmul qword [ebp - 0x24]
add esp, 0xfffffff8
fstp qword [esp]
push 0x81fb3e
lea ecx, [ebp - 0x340]
push ecx
call fcn.006712b0
add esp, 0x10
jmp 0x570290
push 0x81fb49
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, 0x40c
push ecx
call fcn.0066cd2c
add esp, 8
push dword [ebp - 0x30]
call sub.KERNEL32.DLL_CloseHandle
jmp 0x5702f1
push 0x81fb4b
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, 0x40c
push eax
call fcn.0066cd2c
add esp, 8
inc dword [ebp - 8]
mov ecx, dword [ebp - 8]
cmp ecx, 0x1a
jl 0x570117
mov esp, ebp
pop ebp
ret