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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x638aec
mov eax, dword fs:[0]
push eax
sub esp, 0x8d8
mov eax, dword [0x6d8314]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x88c], 0
push 3
push 0
lea eax, [ebp - 0x828]
push eax
mov ecx, dword [ebp + 8]
call fcn.00428c60
mov dword [ebp - 4], 0
mov dword [ebp - 0x8a0], 0
xor ecx, ecx
mov dword [ebp - 0x89c], ecx
push 0
push 0
lea edx, [ebp - 0x8a0]
push edx
lea ecx, [ebp - 0x828]
call fcn.00414c90
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
mov dword [ebp - 0x8a8], eax
cmp dword [ebp - 0x8a8], 0
jne 0x59475a
movsd xmm0, qword [0x693618]
movsd qword [ebp - 0x8e4], xmm0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x828]
call fcn.004148d0
fld qword [ebp - 0x8e4]
jmp 0x5949d5
push 0x653798
mov ecx, dword [ebp + 0xc]
call fcn.00418f80
mov ecx, dword [ebp + 8]
call fcn.00414900
cmp eax, 3
jbe 0x5947ba
push 3
push 0
lea eax, [ebp - 0x858]
push eax
mov ecx, dword [ebp + 8]
call fcn.00428c60
mov dword [ebp - 0x8b8], eax
mov ecx, dword [ebp - 0x8b8]
mov dword [ebp - 0x8ac], ecx
mov byte [ebp - 4], 1
mov edx, dword [ebp - 0x88c]
or edx, 1
mov dword [ebp - 0x88c], edx
mov eax, dword [ebp - 0x8ac]
mov dword [ebp - 0x894], eax
jmp 0x5947fd
mov ecx, dword [ebp + 8]
push ecx
lea ecx, [ebp - 0x870]
call fcn.00414dd0
mov dword [ebp - 0x8b4], eax
mov edx, dword [ebp - 0x8b4]
mov dword [ebp - 0x8bc], edx
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0x88c]
or eax, 2
mov dword [ebp - 0x88c], eax
mov ecx, dword [ebp - 0x8bc]
mov dword [ebp - 0x894], ecx
mov edx, dword [ebp - 0x894]
mov dword [ebp - 0x8c4], edx
mov eax, dword [ebp - 0x8c4]
push eax
lea ecx, [ebp - 0x840]
call fcn.00414dd0
mov dword [ebp - 4], 4
mov ecx, dword [ebp - 0x88c]
and ecx, 2
je 0x59483f
and dword [ebp - 0x88c], 0xfffffffd
lea ecx, [ebp - 0x870]
call fcn.004148d0
mov byte [ebp - 4], 5
mov edx, dword [ebp - 0x88c]
and edx, 1
je 0x594860
and dword [ebp - 0x88c], 0xfffffffe
lea ecx, [ebp - 0x858]
call fcn.004148d0
mov dword [ebp - 0x8cc], 0x400
mov dword [ebp - 0x8c8], 1
xor eax, eax
mov word [ebp - 0x810], ax
push 0x7fe
push 0
lea ecx, [ebp - 0x80e]
push ecx
call sub.MSVCR120.dll_memset
add esp, 0xc
mov edx, dword [ebp - 0x8cc]
push edx
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x8c8]
push ecx
push 0
push 0
push 0
push 0
lea ecx, [ebp - 0x840]
call fcn.00414c90
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
mov dword [ebp - 0x8a4], eax
cmp dword [ebp - 0x8a4], 0
je 0x59492b
lea edx, [ebp - 0x810]
push edx
lea ecx, [ebp - 0x888]
call fcn.00415d10
mov dword [ebp - 0x8b0], eax
mov eax, dword [ebp - 0x8b0]
mov dword [ebp - 0x8c0], eax
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x88c]
or ecx, 4
mov dword [ebp - 0x88c], ecx
mov edx, 0x653774
mov ecx, dword [ebp - 0x8c0]
call fcn.00495430
movzx edx, al
test edx, edx
je 0x59492b
mov dword [ebp - 0x898], 1
jmp 0x594935
mov dword [ebp - 0x898], 0
mov al, byte [ebp - 0x898]
mov byte [ebp - 0x88d], al
mov dword [ebp - 4], 5
mov ecx, dword [ebp - 0x88c]
and ecx, 4
je 0x594965
and dword [ebp - 0x88c], 0xfffffffb
lea ecx, [ebp - 0x888]
call fcn.004148d0
movzx edx, byte [ebp - 0x88d]
test edx, edx
je 0x59497d
push 0x653780
mov ecx, dword [ebp + 0xc]
call fcn.00418f80
mov edx, dword [ebp - 0x89c]
mov ecx, dword [ebp - 0x8a0]
call fcn.006121fe
divsd xmm0, qword [0x6937f8]
movsd qword [ebp - 0x8dc], xmm0
movsd xmm0, qword [ebp - 0x8dc]
movsd qword [ebp - 0x8d4], xmm0
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x840]
call fcn.004148d0
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x828]
call fcn.004148d0
fld qword [ebp - 0x8d4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006116d0
mov esp, ebp
pop ebp
ret