Function at 0x475460
Capabilities:
Get disk information
Get disk size

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff98
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], edx
mov edi, eax
xor eax, eax
push ebp
push 0x47569b
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
xor esi, esi
mov ebx, 0x43
lea eax, [ebp - 0x2c]
mov edx, ebx
call fcn.00404968
lea eax, [ebp - 0x2c]
mov edx, 0x4756b4
call fcn.00404a48
mov eax, dword [ebp - 0x2c]
call fcn.00404c40
push eax
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 3
jne 0x475666
lea eax, [ebp - 0x30]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x34]
call fcn.00402f34
mov edx, 0x4756b8
lea eax, [ebp - 0x34]
mov cl, 2
call fcn.00402f04
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x24]
call fcn.004049e4
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 4]
push eax
mov eax, dword [ebp - 0x24]
call fcn.00404c40
push eax
call sub.kernel32.dll_GetDiskFreeSpaceA
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x48], eax
xor eax, eax
mov dword [ebp - 0x44], eax
fild qword [ebp - 0x48]
fdiv dword [0x4756bc]
fdiv dword [0x4756bc]
fdiv dword [0x4756bc]
mov eax, dword [ebp - 8]
mov dword [ebp - 0x50], eax
xor eax, eax
mov dword [ebp - 0x4c], eax
fild qword [ebp - 0x50]
fmulp st(1)
mov eax, dword [ebp - 4]
mov dword [ebp - 0x58], eax
xor eax, eax
mov dword [ebp - 0x54], eax
fild qword [ebp - 0x58]
fmulp st(1)
fstp xword [ebp - 0x64]
wait
lea eax, [ebp - 0x64]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 3
lea edx, [ebp - 0x40]
xor ecx, ecx
mov eax, 0x4756c8
call fcn.00409afc
mov eax, dword [ebp - 0x38]
call fcn.0040a288
fstp qword [ebp - 0x20]
wait
fld qword [ebp - 0x20]
fcomp qword [ebp - 0x18]
fnstsw ax
sahf
jbe 0x47559d
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x14], eax
mov esi, ebx
jmp 0x4755a9
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x14], eax
test esi, esi
je 0x4755df
lea eax, [ebp - 0x30]
mov edx, esi
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x34]
call fcn.00402f34
mov edx, 0x4756b8
lea eax, [ebp - 0x34]
mov cl, 2
call fcn.00402f04
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x28]
call fcn.004049e4
jmp 0x47560f
lea eax, [ebp - 0x30]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x34]
call fcn.00402f34
mov edx, 0x4756b8
lea eax, [ebp - 0x34]
mov cl, 2
call fcn.00402f04
lea edx, [ebp - 0x34]
lea eax, [ebp - 0x28]
call fcn.004049e4
lea edx, [ebp - 0x68]
mov eax, 0x4756d4
call fcn.0040e0e4
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x28]
call fcn.00404b8c
jne 0x47565a
lea eax, [ebp - 0x30]
mov edx, ebx
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x30]
lea eax, [ebp - 0x34]
call fcn.00402f34
mov edx, 0x4756b8
lea eax, [ebp - 0x34]
mov cl, 2
call fcn.00402f04
lea edx, [ebp - 0x34]
mov eax, edi
call fcn.004049e4
jmp 0x475666
mov eax, edi
xor ecx, ecx
mov edx, dword [ebp - 0x28]
call fcn.00404a8c
inc ebx
cmp ebx, 0x5b
jne 0x475499
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4756a2
lea eax, [ebp - 0x68]
call fcn.00404780
lea eax, [ebp - 0x38]
call fcn.00404780
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.004047a4
ret