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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x834
mov eax, dword [0x639ac0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x338]
push edi
push 0x190
push 0
push eax
mov dword [ebp - 0x7ec], esi
call fcn.004ff750
push 0x190
lea eax, [ebp - 0x4c8]
push 0
push eax
call fcn.004ff750
push 0x190
lea eax, [ebp - 0x658]
push 0
push eax
call fcn.004ff750
push 0x190
lea eax, [ebp - 0x7e8]
push 0
push eax
call fcn.004ff750
push 0x190
lea eax, [ebp - 0x1a8]
push 0
push eax
call fcn.004ff750
add esp, 0x3c
mov dword [ebp - 8], 0
lea eax, [esi + 0x33a28]
mov dword [ebp - 0x81c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x818], 0
movups xmmword [ebp - 0x18], xmm0
mov dword [ebp - 0x814], 0
mov dword [ebp - 0x7f4], 0
mov dword [ebp - 0x810], eax
mov dword [eax], 0
call fcn.00455b90
test al, al
je 0x45031f
push str.WMI:_GetLogicalDisk
call fcn.00455a00
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLogicalDrives]
lea ecx, [esi + 0x3771c]
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x800], ecx
xor edi, edi
lea ecx, [esi + 0x3e058]
mov dword [ebp - 0x808], edi
mov dword [ebp - 0x7fc], ecx
xor ebx, ebx
lea ecx, [esi + 0x3df1c]
add esi, 0x36cf4
mov dword [ebp - 0x7f8], ecx
mov ecx, dword [ebp - 0x7ec]
add ecx, 0x344b6
mov dword [ebp - 0x804], esi
mov dword [ebp - 0x7f0], ecx
nop word [eax + eax]
cmp edi, 0xa28
jge 0x4507c5
test al, 1
je 0x4507aa
push 0x190
lea eax, [ebp - 0x338]
push 0
push eax
call fcn.004ff750
xorps xmm0, xmm0
mov dword [ebp - 8], 0
lea eax, [ebx + 0x41]
add esp, 0xc
lea ecx, [ebp - 0x338]
mov word [ebp - 0x338], ax
movups xmmword [ebp - 0x18], xmm0
mov word [ebp - 0x18], ax
add ecx, 0xfffffffe
nop
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4503d0
mov eax, dword [0x56c0fc]
mov dword [ecx], eax
mov ax, word [0x56c100]
mov word [ecx + 4], ax
lea ecx, [ebp - 0x18]
add ecx, 0xfffffffe
mov ax, word [ecx + 2]
lea ecx, [ecx + 2]
test ax, ax
jne 0x4503f3
mov eax, dword [0x56c104]
mov dword [ecx], eax
mov ax, word [0x56c108]
mov word [ecx + 4], ax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov edi, eax
xor eax, eax
mov word [ebp - 0x4c8], ax
mov word [ebp - 0x7e8], ax
mov word [ebp - 0x658], ax
cmp edi, 2
je 0x45049c
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, eax
lea eax, [ebp - 0x7e8]
push 0xc8
push eax
lea eax, [ebp - 0x814]
push eax
lea eax, [ebp - 0x818]
push eax
lea eax, [ebp - 0x81c]
push eax
push 0xc8
lea eax, [ebp - 0x4c8]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
push 0xc8
lea eax, [ebp - 0x658]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeNameForVolumeMountPointW]
push esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, dword [ebp - 0x804]
xor eax, eax
xorps xmm0, xmm0
mov word [esi], ax
lea eax, [edi - 2]
movlpd qword [ebp - 0x82c], xmm0
movlpd qword [ebp - 0x824], xmm0
movlpd qword [ebp - 0x834], xmm0
cmp eax, 4
ja case.default.0x4504c8
jmp dword [eax*4 + 0x450814]
cmp word [ebp - 0x18], 0x43
push 0x40
push 0x63f160
jae 0x450505
push 0x26
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x4504f0
jmp 0x45063b
push 0xee
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop word [eax + eax]
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x450520
jmp 0x45063b
push 1
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
mov esi, eax
lea eax, [ebp - 0x834]
push eax
lea eax, [ebp - 0x824]
push eax
lea eax, [ebp - 0x82c]
push eax
lea eax, [ebp - 0x18]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
push esi
call dword [sym.imp.KERNEL32.dll_SetErrorMode]
push 0x40
push 0x63f160
push 0x36
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x450580
mov esi, dword [ebp - 0x804]
jmp 0x45063b
push 0x40
push 0x63f160
push 0xd8
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop word [eax + eax]
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x4505c0
jmp 0x45063b
push 0x40
push 0x63f160
push 0xe0
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x4505f0
jmp 0x45063b
push 0x40
push 0x63f160
push 0xea
call fcn.00456de0
lea edx, [ebp - 0x1a8]
add esp, 0xc
sub edx, eax
nop
movzx ecx, word [eax]
lea eax, [eax + 2]
mov word [eax + edx - 2], cx
test cx, cx
jne 0x450620
jmp 0x45063b
xor eax, eax
mov word [ebp - 0x1a8], ax
mov edx, dword [ebp - 0x7fc]
mov eax, dword [ebp - 0x7f8]
mov ecx, dword [ebp - 0x820]
push 0x32
mov dword [eax], edi
mov eax, dword [ebp - 0x824]
mov edi, dword [ebp - 0x808]
mov dword [edx - 0xd0], eax
mov eax, dword [ebp - 0x82c]
mov dword [edx], eax
lea eax, [ebp - 0x4c8]
push eax
mov eax, dword [ebp - 0x7ec]
add eax, 0x33a2c
mov dword [edx - 0xcc], ecx
mov ecx, dword [ebp - 0x828]
add eax, edi
push 0x32
push eax
mov dword [edx + 4], ecx
call fcn.0053665a
mov eax, dword [ebp - 0x7f0]
xor ecx, ecx
push 0x32
mov word [edi + eax - 0xa28], cx
lea eax, [ebp - 0x658]
push eax
mov eax, dword [ebp - 0x7ec]
add eax, 0x34454
add eax, edi
push 0x32
push eax
call fcn.0053665a
mov eax, dword [ebp - 0x7f0]
xor ecx, ecx
push 0x32
mov word [edi + eax], cx
lea eax, [ebp - 0x338]
push eax
mov eax, dword [ebp - 0x7ec]
add eax, 0x34e7c
add eax, edi
push 0x32
push eax
call fcn.0053665a
mov eax, dword [ebp - 0x7f0]
xor ecx, ecx
push 0x32
mov word [edi + eax + 0xa28], cx
lea eax, [ebp - 0x1a8]
push eax
mov eax, dword [ebp - 0x7ec]
add eax, 0x358a4
add eax, edi
push 0x32
push eax
call fcn.0053665a
mov eax, dword [ebp - 0x7f0]
add esp, 0x40
xor ecx, ecx
mov word [edi + eax + 0x1450], cx
lea eax, [ebp - 0x7e8]
push 0x32
push eax
mov eax, dword [ebp - 0x7ec]
add eax, 0x362cc
add eax, edi
push 0x32
push eax
call fcn.0053665a
mov eax, dword [ebp - 0x7f0]
xor ecx, ecx
push 0x100
push dword [ebp - 0x800]
mov word [edi + eax + 0x1e78], cx
mov eax, dword [ebp - 0x7f4]
push eax
push dword [ebp - 0x810]
call fcn.00454540
add esp, 0x20
inc dword [ebp - 0x7f4]
add dword [ebp - 0x7f8], 4
add edi, 0x64
add dword [ebp - 0x7fc], 8
add dword [ebp - 0x800], 0x200
mov eax, dword [ebp - 0x80c]
mov dword [ebp - 0x808], edi
shr eax, 1
inc ebx
add esi, 0x64
mov dword [ebp - 0x80c], eax
mov dword [ebp - 0x804], esi
cmp ebx, 0x20
jl 0x450380
mov ebx, dword [ebp - 0x810]
mov eax, dword [ebp - 0x7f4]
mov dword [ebx], eax
call fcn.00455b90
test al, al
je 0x4507fa
push dword [ebx]
push str.WMI:_GetLogicalDisk_found__d_disks
push 0x6411e0
call fcn.00432fe0
push 0x6411e0
call fcn.00455a00
add esp, 0x10
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.004f66cd
mov esp, ebp
pop ebp
ret 8