Function at 0x40f51e
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x5d8
mov eax, dword [0x49f2a0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x14]
cmp byte [ebx + 0x53c], 0
push esi
mov esi, dword [ebp + 0x18]
push edi
mov edi, dword [ebp + 8]
mov dword [ebp - 0x5d8], esi
jne 0x40f555
mov al, byte [esi + 0x18]
mov byte [ebx + 0x53c], al
lea eax, [ebp - 0x5d4]
push eax
push dword [esi + 4]
push dword [esi]
push edi
call fcn.004132b1
test eax, eax
je 0x40f601
test byte [ebp - 0x574], 0x40
je 0x40f57f
mov esi, str.Ext4
jmp 0x40f592
test byte [ebp - 0x578], 4
mov esi, str.Ext3
jne 0x40f592
mov esi, str.Ext2
mov ecx, dword [ebp - 0x5bc]
mov eax, 0x400
shl eax, cl
lea edi, [ebx + 0x660]
movsd dword es:[edi], dword [esi]
cdq
movsb byte es:[edi], byte [esi]
mov edi, edx
push edi
mov esi, eax
push esi
push 0
push dword [ebp - 0x5d0]
call fcn.00453310
push edi
push esi
push 0
push dword [ebp - 0x5c8]
mov dword [ebx + 0x680], eax
mov dword [ebx + 0x684], edx
call fcn.00453310
mov dword [ebx + 0x688], eax
lea eax, [ebp - 0x55c]
lea esi, [ebx + 0x55c]
mov ecx, eax
mov dword [ebx + 0x68c], edx
sub esi, ecx
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x40f5f2
jmp 0x40f760
lea eax, [ebp - 0x1d4]
push eax
push dword [esi + 4]
push dword [esi]
push edi
call fcn.0041e680
test eax, eax
je 0x40f687
movzx eax, word [ebp - 0x1a8]
lea edi, [ebx + 0x660]
mov esi, str.Reiser
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
cdq
movsb byte es:[edi], byte [esi]
mov edi, edx
push edi
mov esi, eax
push esi
push 0
push dword [ebp - 0x1d4]
call fcn.00453310
push edi
push esi
push 0
push dword [ebp - 0x1d0]
mov dword [ebx + 0x680], eax
mov dword [ebx + 0x684], edx
call fcn.00453310
mov dword [ebx + 0x688], eax
lea eax, [ebp - 0x170]
lea esi, [ebx + 0x55c]
mov ecx, eax
mov dword [ebx + 0x68c], edx
sub esi, ecx
mov cl, byte [eax]
mov byte [esi + eax], cl
inc eax
test cl, cl
jne 0x40f678
jmp 0x40f760
mov eax, dword [esi + 8]
mov dword [ebx + 0x680], eax
mov eax, dword [esi + 0xc]
and dword [ebx + 0x688], 0
and dword [ebx + 0x68c], 0
mov dword [ebx + 0x684], eax
mov eax, dword [str.Unknown]
mov dword [ebx + 0x55c], eax
mov eax, dword [0x46a884]
mov dword [ebx + 0x560], eax
movzx eax, byte [ebx + 0x53c]
cmp eax, 0x1c
jg 0x40f702
cmp eax, 0x1b
jge 0x40f6fb
sub eax, 0x12
je 0x40f6ee
dec eax
dec eax
je 0x40f751
dec eax
dec eax
je 0x40f751
dec eax
jne 0x40f714
mov esi, str.NTFS_Hidden
lea edi, [ebx + 0x660]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
jmp 0x40f760
lea edi, [ebx + 0x660]
mov esi, str.EISA
jmp 0x40f75e
mov esi, str.FAT32_Hidden
jmp 0x40f756
sub eax, 0x1e
je 0x40f751
sub eax, 0x64
je 0x40f743
dec eax
je 0x40f733
sub eax, 0x5b
je 0x40f72c
mov eax, dword [str.Unknown]
mov dword [ebx + 0x660], eax
mov eax, dword [0x46a884]
mov dword [ebx + 0x664], eax
jmp 0x40f766
mov esi, str.DellUtility
jmp 0x40f6e3
lea edi, [ebx + 0x660]
mov esi, 0x46a848
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
jmp 0x40f760
lea edi, [ebx + 0x660]
mov esi, str.LinuxSwap
movsd dword es:[edi], dword [esi]
jmp 0x40f73e
mov esi, str.FAT16_Hidden
lea edi, [ebx + 0x660]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x5d8]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp + 0xc]
inc ecx
push ecx
lea ecx, [edi + 1]
push ecx
lea eax, [ebx + 0x310]
push str.HD_u:_u
push eax
call fcn.00450c76
lea eax, [ebx + 0x330]
add esp, 0x10
cmp byte [eax], 0
jne 0x40f7a3
lea ecx, [ebx + 0x310]
sub eax, ecx
mov dl, byte [ecx]
mov byte [eax + ecx], dl
inc ecx
test dl, dl
jne 0x40f799
push 0x20
call fcn.00452122
mov dword [ebx + 0x558], eax
mov dword [eax], 1
mov eax, dword [ebx + 0x558]
mov dword [eax + 8], edi
mov eax, dword [ebx + 0x558]
mov edx, dword [esi]
mov dword [eax + 0x10], edx
mov edx, dword [esi + 4]
mov dword [eax + 0x14], edx
mov eax, dword [esi + 8]
mov ecx, dword [ebx + 0x558]
mov dword [ecx + 0x18], eax
mov eax, dword [esi + 0xc]
push edi
mov dword [ecx + 0x1c], eax
lea eax, [ebp - 0x108]
push str..PhysicalDrive_u_
push eax
call fcn.00450c76
add esp, 0x10
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.___total_physical_size__lu_MB_GetDriveTypeA]
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov dword [ebx + 0x550], eax
xor ecx, ebp
pop ebx
call fcn.00450b32
leave
ret 0x14