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

Disassembly:
mov eax, 0x1085c
call fcn.004bd970
push ebx
push esi
push edi
mov edi, dword [esp + 0x1086c]
mov ebx, ecx
mov dword [esp + 0xc], ebx
test edi, edi
je 0x450c5c
cmp word [edi], 0
je 0x450c5c
mov esi, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
push str.List
push edi
call esi
add esp, 8
test eax, eax
jne 0x45087f
mov eax, dword [0x4eb028]
mov ecx, eax
push 1
push 0
push 0xffffffffffffffff
push 0
mov dword [esp + 0x20], eax
call fcn.004a5f40
mov edi, dword [esp + 0x10870]
cmp word [edi], 0
jne 0x450761
mov esi, 0x100
jmp 0x4507d6
push str.CDRom
push edi
call esi
add esp, 8
test eax, eax
jne 0x450775
lea esi, [eax + 5]
jmp 0x4507d6
push str.Removable
push edi
call esi
add esp, 8
test eax, eax
jne 0x450789
lea esi, [eax + 2]
jmp 0x4507d6
push str.Fixed
push edi
call esi
add esp, 8
test eax, eax
jne 0x45079d
lea esi, [eax + 3]
jmp 0x4507d6
push str.Network
push edi
call esi
add esp, 8
test eax, eax
jne 0x4507b1
lea esi, [eax + 4]
jmp 0x4507d6
push str.Ramdisk
push edi
call esi
add esp, 8
test eax, eax
jne 0x4507c5
lea esi, [eax + 6]
jmp 0x4507d6
push str.Unknown
push edi
call esi
add esp, 8
test eax, eax
jne case.0x450a30.2151
xor esi, esi
xor edi, edi
mov bl, 0x41
push ebp
nop dword [eax + eax]
xor eax, eax
movzx ebp, bl
mov word [esp + 0x72], ax
lea eax, [esp + 0x6c]
push eax
mov word [esp + 0x70], bp
mov dword [esp + 0x72], 0x5c003a
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, esi
je 0x450813
cmp esi, 0x100
jne 0x450819
cmp eax, 1
je 0x450819
mov word [esp + edi*2 + 0x2c], bp
inc edi
inc bl
cmp bl, 0x5a
jbe 0x4507e0
mov ecx, dword [esp + 0x14]
xor eax, eax
push 1
push eax
mov word [esp + edi*2 + 0x34], ax
lea eax, [esp + 0x34]
push 0xffffffffffffffff
push eax
call fcn.004a5f40
cmp word [esp + 0x2c], 0
pop ebp
jne 0x450d92
mov ebx, dword [esp + 0xc]
mov eax, dword [0x4e7024]
test byte [eax + 0x100], 1
jne 0x450db4
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4d4eac
call fcn.004a5f40
pop edi
pop esi
pop ebx
add esp, 0x1085c
ret 8
push str.FileSystem
push edi
call esi
add esp, 8
test eax, eax
je 0x450c90
push 0x4db6b8
push edi
call esi
add esp, 8
test eax, eax
je 0x450c90
push str.Label
push edi
call esi
add esp, 8
test eax, eax
jne 0x4508bc
lea esi, [eax + 3]
jmp 0x450c95
push 9
push str.SetLabel:
push edi
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsnicmp]
add esp, 0xc
test eax, eax
jne 0x450980
push 0x7ffe
push dword [esp + 0x10874]
lea eax, [esp + 0x870]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x868]
xor eax, eax
lea edx, [ecx + 2]
mov word [esp + 0x10864], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x450906
sub ecx, edx
sar ecx, 1
je 0x45092f
cmp word [esp + ecx*2 + 0x866], 0x5c
je 0x45092f
mov eax, 0x5c
mov word [esp + ecx*2 + 0x868], ax
lea eax, [edi + 0x12]
movzx ecx, word [eax]
cmp ecx, 0x20
je 0x45093f
cmp ecx, 9
jne 0x450944
add eax, 2
jmp 0x450932
push eax
lea eax, [esp + 0x86c]
push eax
call dword [sym.imp.KERNEL32.dll_SetVolumeLabelW]
push 1
test eax, eax
mov edx, 0x4d4eac
push 0
mov ecx, 0x4bfc14
cmove ecx, edx
push 0xffffffffffffffff
push ecx
mov ecx, dword [0x4e97f8]
call fcn.004a5f40
pop edi
pop esi
pop ebx
add esp, 0x1085c
ret 8
push str.Serial
push edi
call esi
add esp, 8
test eax, eax
jne 0x450997
lea esi, [eax + 5]
jmp 0x450c95
push str.Type
push edi
call esi
add esp, 8
test eax, eax
jne 0x450a7f
mov esi, dword [0x4eb028]
mov ecx, esi
push 1
push eax
push 0xffffffffffffffff
push eax
call fcn.004a5f40
push 0x7ffe
push dword [esp + 0x10874]
lea eax, [esp + 0x870]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x868]
xor eax, eax
lea edx, [ecx + 2]
mov word [esp + 0x10864], ax
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4509f0
sub ecx, edx
sar ecx, 1
je 0x450a19
cmp word [esp + ecx*2 + 0x866], 0x5c
je 0x450a19
mov eax, 0x5c
mov word [esp + ecx*2 + 0x868], ax
lea eax, [esp + 0x868]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 6
ja case.0x450a30.2151
jmp dword [eax*4 + 0x450dd4]
mov eax, str.Unknown
mov ecx, esi
jmp 0x450d86
mov eax, str.Removable
mov ecx, esi
jmp 0x450d86
mov eax, str.Fixed
mov ecx, esi
jmp 0x450d86
mov eax, str.Network
mov ecx, esi
jmp 0x450d86
mov eax, str.CDROM
mov ecx, esi
jmp 0x450d86
mov eax, str.RAMDisk
mov ecx, esi
jmp 0x450d86
push str.Status
push edi
call esi
add esp, 8
test eax, eax
jne 0x450b7a
mov esi, dword [0x4eb028]
mov ecx, esi
push 1
push eax
push 0xffffffffffffffff
push eax
call fcn.004a5f40
push 0x7ffe
push dword [esp + 0x10874]
lea eax, [esp + 0x870]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x868]
xor eax, eax
lea edx, [ecx + 2]
mov word [esp + 0x10864], ax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x450ad6
sub ecx, edx
sar ecx, 1
je 0x450aff
cmp word [esp + ecx*2 + 0x866], 0x5c
je 0x450aff
mov eax, 0x5c
mov word [esp + ecx*2 + 0x868], ax
lea eax, [esp + 0xc]
push eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x878]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
jne case.0x450b37.0
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x15
ja case.0x450b37.1
movzx eax, byte [eax + 0x450e04]
jmp dword [eax*4 + 0x450df0]
mov eax, str.Invalid
mov ecx, esi
jmp 0x450d86
mov eax, str.NotReady
mov ecx, esi
jmp 0x450d86
mov eax, str.ReadOnly
mov ecx, esi
jmp 0x450d86
mov eax, str.Unknown
mov ecx, esi
jmp 0x450d86
mov eax, str.Ready
mov ecx, esi
jmp 0x450d86
push str.StatusCD
push edi
call esi
add esp, 8
test eax, eax
jne 0x450c3e
mov ebx, dword [0x4eb028]
mov ecx, ebx
push 1
push eax
push 0xffffffffffffffff
push eax
call fcn.004a5f40
mov eax, dword [esp + 0x10870]
cmp word [eax], 0
jne 0x450bcb
push 0
push 0x80
lea eax, [esp + 0x170]
push eax
push str.status_cdaudio_mode
call dword [sym.imp.WINMM.dll_mciSendStringW]
test eax, eax
jmp 0x450c2a
push eax
push str.open__s_type_cdaudio_alias_cd_wait_shareable
lea eax, [esp + 0x270]
push 0x100
push eax
call fcn.004a19b0
mov edi, dword [sym.imp.WINMM.dll_mciSendStringW]
lea eax, [esp + 0x278]
add esp, 0x10
push 0
push 0
push 0
push eax
call edi
test eax, eax
jne 0x450847
push eax
push 0x80
lea eax, [esp + 0x170]
push eax
push str.status_cd_mode
call edi
push 0
push 0
push 0
push str.close_cd_wait
mov esi, eax
call edi
test esi, esi
jne 0x450847
lea eax, [esp + 0x168]
mov ecx, ebx
jmp 0x450d86
push str.Capacity
push edi
call esi
add esp, 8
test eax, eax
je 0x450c74
push 0x4db71c
push edi
call esi
add esp, 8
test eax, eax
je 0x450c74
mov ecx, dword [0x4eb028]
push 1
push 0
push 0xffffffffffffffff
push 0
call fcn.004a5f40
jmp case.0x450a30.2151
push 0
push dword [esp + 0x10874]
mov ecx, ebx
call fcn.00450290
pop edi
pop esi
pop ebx
add esp, 0x1085c
ret 8
mov esi, 2
mov edi, dword [0x4eb028]
mov ecx, edi
mov byte [esp + 0xc], 1
push dword [esp + 0xc]
mov byte [esp + 0x14], 0
push dword [esp + 0x14]
push 0xffffffffffffffff
push 0
call fcn.004a5f40
push 0x7ffe
push dword [esp + 0x10874]
lea eax, [esp + 0x870]
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncpy]
add esp, 0xc
lea ecx, [esp + 0x868]
xor eax, eax
lea edx, [ecx + 2]
mov word [esp + 0x10864], ax
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x450cf0
sub ecx, edx
sar ecx, 1
je 0x450d19
cmp word [esp + ecx*2 + 0x866], 0x5c
je 0x450d19
mov eax, 0x5c
mov word [esp + ecx*2 + 0x868], ax
push 0xff
lea eax, [esp + 0x66c]
push eax
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x20]
push eax
push 0xff
lea eax, [esp + 0x480]
push eax
lea eax, [esp + 0x884]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je case.0x450a30.2151
sub esi, 2
je 0x450d7d
sub esi, 1
je 0x450d74
sub esi, 2
jne 0x450d92
push dword [esp + 0x10]
mov ecx, edi
call fcn.00401460
jmp 0x450d92
lea eax, [esp + 0x468]
jmp 0x450d84
lea eax, [esp + 0x668]
mov ecx, edi
push 1
push 0
push 0xffffffffffffffff
push eax
call fcn.004a5f40
mov ecx, dword [0x4e97f8]
push 1
push 0
push 0xffffffffffffffff
push 0x4bfc14
call fcn.004a5f40
pop edi
pop esi
pop ebx
add esp, 0x1085c
ret 8
push 0x4bfb90
push 0
push 0x4d4eac
mov ecx, ebx
call fcn.0043e390
pop edi
pop esi
pop ebx
add esp, 0x1085c
ret 8