Function at 0x4b1224
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xca
push 0
push 0
dec ecx
jne 0x4b122c
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00405548
xor eax, eax
push ebp
push 0x4b1700
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, dword [0x4b0944]
mov eax, 0x20
call fcn.004059a4
mov dword [ebp - 0xc], eax
call fcn.004b286c
test al, al
je 0x4b145f
push 0x200
lea eax, [ebp - 0x41c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x200
lea eax, [ebp - 0x21c]
push eax
lea eax, [ebp - 0x620]
mov ecx, 0x4b1714
mov edx, dword [ebp - 4]
call fcn.0040520c
mov eax, dword [ebp - 0x620]
call fcn.00405190
push eax
call sub.kernel32.dll_GetVolumeInformationW
test eax, eax
je 0x4b141a
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x21c]
mov ecx, 0x100
call fcn.004050f8
mov eax, dword [ebp - 0x14]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x624]
call fcn.00409d78
mov edx, dword [ebp - 0x624]
mov eax, dword [ebp - 0xc]
add eax, 4
call fcn.00405114
mov eax, dword [ebp - 0xc]
add eax, 8
lea edx, [ebp - 0x41c]
mov ecx, 0x100
call fcn.004050f8
lea eax, [ebp - 0x628]
mov ecx, 0x4b1714
mov edx, dword [ebp - 4]
call fcn.0040520c
mov eax, dword [ebp - 0x628]
call fcn.00405190
push eax
call sub.kernel32.dll_GetDriveTypeW
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, 6
ja case.0x4b1337.0
jmp dword [eax*4 + 0x4b133e]
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b171c
call fcn.00404f88
jmp 0x4b13bf
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1730
call fcn.00404f88
jmp 0x4b13bf
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1740
call fcn.00404f88
jmp 0x4b13bf
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1754
call fcn.00404f88
jmp 0x4b13bf
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1764
call fcn.00404f88
jmp 0x4b13bf
mov eax, dword [ebp - 0xc]
add eax, 0xc
call fcn.00404f4c
lea eax, [ebp - 0x62c]
mov edx, dword [ebp - 4]
call fcn.00404a34
mov eax, dword [ebp - 0x62c]
mov al, byte [eax]
call fcn.00402b9c
sub al, 0x40
call fcn.0040a788
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
lea eax, [ebp - 0x630]
mov edx, dword [ebp - 4]
call fcn.00404a34
mov eax, dword [ebp - 0x630]
mov al, byte [eax]
call fcn.00402b9c
sub al, 0x40
call fcn.0040a754
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
jmp 0x4b167d
mov eax, dword [ebp - 0xc]
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
add eax, 4
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
add eax, 8
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
jmp 0x4b167d
push 0x100
lea eax, [ebp - 0x61c]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x14]
push eax
push 0x100
lea eax, [ebp - 0x51c]
push eax
lea eax, [ebp - 0x638]
mov ecx, 0x4b1714
mov edx, dword [ebp - 4]
call fcn.0040520c
mov edx, dword [ebp - 0x638]
lea eax, [ebp - 0x634]
call fcn.00404a34
mov eax, dword [ebp - 0x634]
call fcn.00404c6c
push eax
call sub.kernel32.dll_GetVolumeInformationA
test eax, eax
je 0x4b163d
mov eax, dword [ebp - 0xc]
lea edx, [ebp - 0x51c]
mov ecx, 0x100
call fcn.004050e0
mov eax, dword [ebp - 0x14]
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x63c]
call fcn.00409d78
mov edx, dword [ebp - 0x63c]
mov eax, dword [ebp - 0xc]
add eax, 4
call fcn.00405114
lea eax, [ebp - 0x640]
lea edx, [ebp - 0x61c]
mov ecx, 0x100
call fcn.00404a1c
mov edx, dword [ebp - 0x640]
mov eax, dword [ebp - 0xc]
add eax, 8
call fcn.00405114
lea eax, [ebp - 0x648]
mov ecx, 0x4b1714
mov edx, dword [ebp - 4]
call fcn.0040520c
mov edx, dword [ebp - 0x648]
lea eax, [ebp - 0x644]
call fcn.00404a34
mov eax, dword [ebp - 0x644]
call fcn.00404c6c
push eax
call sub.kernel32.dll_GetDriveTypeA
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
cmp eax, 6
ja case.0x4b155d.0
jmp dword [eax*4 + 0x4b1564]
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b171c
call fcn.00404f88
jmp 0x4b15e5
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1730
call fcn.00404f88
jmp 0x4b15e5
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1740
call fcn.00404f88
jmp 0x4b15e5
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1754
call fcn.00404f88
jmp 0x4b15e5
mov eax, dword [ebp - 0xc]
add eax, 0xc
mov edx, 0x4b1764
call fcn.00404f88
jmp 0x4b15e5
mov eax, dword [ebp - 0xc]
add eax, 0xc
call fcn.00404f4c
lea eax, [ebp - 0x64c]
mov edx, dword [ebp - 4]
call fcn.00404a34
mov eax, dword [ebp - 0x64c]
mov al, byte [eax]
call fcn.00402b9c
sub al, 0x40
call fcn.0040a788
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x10], eax
mov dword [ecx + 0x14], edx
lea eax, [ebp - 0x650]
mov edx, dword [ebp - 4]
call fcn.00404a34
mov eax, dword [ebp - 0x650]
mov al, byte [eax]
call fcn.00402b9c
sub al, 0x40
call fcn.0040a754
mov ecx, dword [ebp - 0xc]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], edx
jmp 0x4b167d
mov eax, dword [ebp - 0xc]
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
add eax, 4
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
add eax, 8
call fcn.00404f4c
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov eax, dword [ebp - 0xc]
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4b1707
lea eax, [ebp - 0x650]
mov edx, 2
call fcn.004047c0
lea eax, [ebp - 0x648]
call fcn.00404f4c
lea eax, [ebp - 0x644]
mov edx, 3
call fcn.004047c0
lea eax, [ebp - 0x638]
call fcn.00404f4c
lea eax, [ebp - 0x634]
mov edx, 3
call fcn.004047c0
lea eax, [ebp - 0x628]
call fcn.00404f4c
lea eax, [ebp - 0x624]
call fcn.0040479c
lea eax, [ebp - 0x620]
call fcn.00404f4c
lea eax, [ebp - 4]
call fcn.00404f4c
ret