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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff80
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x74], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x60], ecx
mov dword [ebp - 0x5c], ecx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404a90
mov eax, dword [ebp - 8]
call fcn.00404a90
xor eax, eax
push ebp
push 0x490bf1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, pe_nt_image_headers32
call fcn.00409540
mov ebx, eax
mov eax, pe_nt_image_headers32
call fcn.00409540
mov esi, eax
xor eax, eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], eax
xor eax, eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x34], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
push 0xff
push esi
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0xff
push ebx
lea eax, [ebp - 0x5c]
mov ecx, 0x490c0c
mov edx, dword [ebp - 4]
call fcn.004048f4
mov eax, dword [ebp - 0x5c]
call fcn.00404aa0
push eax
call sub.kernel32.dll_GetVolumeInformationA
test eax, eax
je 0x490b15
call sub.kernel32.dll_GetVersion
cmp eax, 0xc0000a04
je 0x490941
cmp eax, 0xc0000004
je 0x490941
cmp eax, 0x5650004
jne 0x490993
push edi
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x60]
mov ecx, 0x490c0c
mov edx, dword [ebp - 4]
call fcn.004048f4
mov eax, dword [ebp - 0x60]
call fcn.00404aa0
push eax
call sub.kernel32.dll_GetDiskFreeSpaceExA
fild qword [ebp - 0x58]
fdiv dword [0x490c10]
fdiv dword [0x490c10]
fstp qword [ebp - 0x38]
wait
fild qword [ebp - 0x50]
fdiv dword [0x490c10]
fdiv dword [0x490c10]
fstp qword [ebp - 0x40]
wait
jmp 0x490a18
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x64]
mov ecx, 0x490c0c
mov edx, dword [ebp - 4]
call fcn.004048f4
mov eax, dword [ebp - 0x64]
call fcn.00404aa0
push eax
call sub.kernel32.dll_GetDiskFreeSpaceA
mov eax, dword [ebp - 0x24]
imul dword [ebp - 0x28]
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x68], eax
fild qword [ebp - 0x6c]
fstp qword [ebp - 0x38]
wait
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x68], eax
fild qword [ebp - 0x6c]
fmul qword [ebp - 0x38]
fdiv dword [0x490c10]
fdiv dword [0x490c10]
fstp qword [ebp - 0x40]
wait
mov eax, dword [ebp - 0x2c]
mov dword [ebp - 0x6c], eax
xor eax, eax
mov dword [ebp - 0x68], eax
fild qword [ebp - 0x6c]
fmul qword [ebp - 0x38]
fdiv dword [0x490c10]
fdiv dword [0x490c10]
fstp qword [ebp - 0x38]
wait
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x70]
mov edx, ebx
call fcn.004047e0
lea eax, [ebp - 0x70]
mov edx, 0x490c1c
call fcn.004048b0
mov eax, dword [ebp - 0x70]
mov ecx, 0xc
mov edx, 1
call fcn.00404b00
fld qword [ebp - 0x40]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x44]
push eax
mov ecx, 2
mov edx, 0xf
mov al, 2
call fcn.0040a238
push dword [ebp - 0x20]
push 0x490c34
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 0x44]
call fcn.004048a8
sub eax, 6
add eax, 6
push eax
lea eax, [ebp - 0x78]
mov ecx, dword [ebp - 0x44]
mov edx, 0x490c40
call fcn.004048f4
mov eax, dword [ebp - 0x78]
mov ecx, 8
pop edx
call fcn.00404b00
push dword [ebp - 0x74]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404968
fld qword [ebp - 0x38]
add esp, 0xfffffff4
fstp xword [esp]
wait
lea eax, [ebp - 0x44]
push eax
mov ecx, 2
mov edx, 0xf
mov al, 2
call fcn.0040a238
push dword [ebp - 0x20]
push 0x490c34
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x44]
call fcn.004048a8
sub eax, 6
add eax, 6
push eax
lea eax, [ebp - 0x80]
mov ecx, dword [ebp - 0x44]
mov edx, 0x490c40
call fcn.004048f4
mov eax, dword [ebp - 0x80]
mov ecx, 8
pop edx
call fcn.00404b00
push dword [ebp - 0x7c]
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00404968
mov eax, dword [ebp - 8]
mov edx, 0x490c50
call fcn.004049ec
jne 0x490b30
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov edx, 0x490c60
call fcn.004049ec
jne 0x490b4b
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 8]
mov edx, 0x490c70
call fcn.004049ec
jne 0x490b64
fld qword [ebp - 0x40]
fsub qword [ebp - 0x38]
fstp qword [ebp - 0x10]
wait
mov eax, dword [ebp - 8]
mov edx, 0x490c80
call fcn.004049ec
jne 0x490b9e
fld qword [ebp - 0x40]
fcomp dword [0x490c90]
fnstsw ax
sahf
je 0x490b96
fld qword [ebp - 0x40]
fsub qword [ebp - 0x38]
fmul dword [0x490c94]
fdiv qword [ebp - 0x40]
fstp qword [ebp - 0x10]
wait
jmp 0x490b9e
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], eax
mov eax, ebx
call fcn.0040958c
mov eax, esi
call fcn.0040958c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x490bf8
lea eax, [ebp - 0x80]
mov edx, 5
call fcn.00404614
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.00404614
lea eax, [ebp - 0x44]
call fcn.004045f0
lea eax, [ebp - 0x20]
call fcn.004045f0
lea eax, [ebp - 8]
mov edx, 2
call fcn.00404614
ret