Function at 0x4215a3
Capabilities:
Get disk information

Disassembly:
push 0x7c
mov eax, 0x433a99
call fcn.004318dd
mov edi, ecx
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x88], edi
and dword [ebp - 0x84], 0
sub esp, 0x18
mov dword [ebp - 4], 1
mov ecx, esp
mov dword [ebp - 0x7c], esp
mov ebx, 0x408ca8
push ebx
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 2
mov ecx, esp
mov esi, 0x404f58
push esi
call fcn.0041314d
push 0x131
lea ecx, [ebp - 0x74]
mov byte [ebp - 4], 1
call fcn.00412723
mov byte [ebp - 4], 3
cmp dword [ebp + 0x1c], 8
mov eax, dword [ebp + 8]
jae 0x421610
lea eax, [ebp + 8]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x80], esp
push 0x408a14
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ebp - 0x7c], esp
push ebx
call fcn.0041314d
push 0x135
sub esp, 0x18
mov byte [ebp - 4], 5
mov ecx, esp
push esi
call fcn.0041314d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 3
push eax
call fcn.004125b8
add esp, 0x3c
lea eax, [ebp + 8]
mov ecx, esp
push eax
call fcn.00412eff
lea ecx, [ebp - 0x40]
call fcn.0041d63e
push eax
lea ecx, [ebp + 8]
call fcn.00418e76
xor esi, esi
lea ecx, [ebp - 0x40]
push esi
push 1
call fcn.00413b40
push esi
xor eax, eax
mov dword [ebp - 0x14], 7
push 0x104
lea ecx, [ebp - 0x28]
mov dword [ebp - 0x18], esi
mov word [ebp - 0x28], ax
call fcn.0041a80f
lea eax, [ebp - 0x28]
mov byte [ebp - 4], 6
push eax
lea ecx, [ebp - 0x38]
call fcn.004137cd
cmp dword [ebp + 0x1c], 8
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 8]
jae 0x4216bf
lea eax, [ebp + 8]
push dword [ebp - 0x18]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
lea ecx, [ebp - 0x38]
mov esi, eax
call fcn.004136db
test esi, esi
jne 0x42174f
push 0x408a50
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x78], esp
push 0x404ef0
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 7
mov ecx, esp
mov dword [ebp - 0x80], esp
push ebx
call fcn.0041314d
push 0x13c
sub esp, 0x18
mov byte [ebp - 4], 8
mov ecx, esp
push 0x404f58
call fcn.0041314d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 6
push eax
call fcn.004125b8
add esp, 0x54
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jg 0x421739
mov esi, ebx
jmp 0x421742
movzx esi, bx
or esi, 0x80070000
test ebx, ebx
jne 0x42199a
mov ebx, 0x408ca8
cmp dword [ebp - 0x14], 8
mov eax, dword [ebp - 0x28]
jae 0x42175b
lea eax, [ebp - 0x28]
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x78], esp
push 0x408b48
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ebp - 0x80], esp
push ebx
call fcn.0041314d
push 0x13d
sub esp, 0x18
mov byte [ebp - 4], 0xb
mov ecx, esp
push 0x404f58
call fcn.0041314d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 6
push eax
call fcn.004125b8
and dword [edi + 0x10], 0
add esp, 0x54
xor eax, eax
mov dword [edi + 0x14], 7
mov ecx, edi
mov word [edi], ax
push eax
push 0x104
call fcn.0041a80f
push edi
lea ecx, [ebp - 0x38]
mov dword [ebp - 0x84], 1
call fcn.004137cd
cmp dword [ebp - 0x14], 8
mov ecx, dword [eax + 4]
mov eax, dword [ebp - 0x28]
jae 0x4217e7
lea eax, [ebp - 0x28]
push dword [edi + 0x10]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
lea ecx, [ebp - 0x38]
mov esi, eax
call fcn.004136db
test esi, esi
jne 0x421917
push 0x408b98
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x78], esp
push 0x404ef0
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 0xc
mov ecx, esp
mov dword [ebp - 0x80], esp
push ebx
call fcn.0041314d
push 0x141
sub esp, 0x18
mov byte [ebp - 4], 0xd
mov ecx, esp
push 0x404f58
call fcn.0041314d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 6
push eax
call fcn.004125b8
add esp, 0x54
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
test esi, esi
jg 0x421865
mov ebx, esi
jmp 0x42186e
movzx ebx, si
or ebx, 0x80070000
test esi, esi
je 0x421912
push 0x408b98
sub esp, 0x18
mov ecx, esp
push 0x4050c8
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
push esi
sub esp, 0x18
mov ecx, esp
push 0x405104
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
lea ecx, [ebp - 0x40]
mov edx, ebx
call fcn.00412874
mov ecx, eax
mov byte [ebp - 4], 0xe
call fcn.00413833
push eax
sub esp, 0x18
mov ecx, esp
push 0x403c6c
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.00413b89
sub esp, 0x18
mov ecx, esp
push 0x403bd8
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x1c
mov dword [ebp - 0x7c], ebx
jmp 0x421a31
mov ebx, 0x408ca8
cmp dword [edi + 0x14], 8
jb 0x421921
mov eax, dword [edi]
jmp 0x421923
mov eax, edi
push eax
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x78], esp
push 0x4070f8
call fcn.0041314d
sub esp, 0x18
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x80], esp
push ebx
call fcn.0041314d
push 0x142
sub esp, 0x18
mov byte [ebp - 4], 0x10
mov ecx, esp
push 0x404f58
call fcn.0041314d
lea eax, [ebp - 0x74]
mov byte [ebp - 4], 6
push eax
call fcn.004125b8
add esp, 0x54
lea ecx, [ebp - 0x28]
push 0
push 1
call fcn.00413b40
lea ecx, [ebp - 0x74]
call fcn.004127db
push 0
push 1
lea ecx, [ebp + 8]
call fcn.00413b40
mov eax, edi
call fcn.0043188c
ret 0x18
push 0x408a50
sub esp, 0x18
mov ecx, esp
push 0x4050c8
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
push ebx
sub esp, 0x18
mov ecx, esp
push 0x405104
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
lea ecx, [ebp - 0x40]
mov edx, esi
call fcn.00412874
mov ecx, eax
mov byte [ebp - 4], 9
call fcn.00413833
push eax
sub esp, 0x18
mov ecx, esp
push 0x403c6c
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x20
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.00413b89
sub esp, 0x18
mov ecx, esp
push 0x403bd8
call fcn.0041314d
lea eax, [ebp - 0x74]
push eax
call fcn.004124a5
add esp, 0x1c
mov dword [ebp - 0x7c], esi
push 0x4394e4
lea eax, [ebp - 0x7c]
push eax
call sub.msvcrt.dll__CxxThrowException
int3