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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x526a3c
mov eax, dword fs:[0]
push eax
sub esp, 0x89c
mov eax, dword [0x57f7a0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
mov esi, ecx
push 3
push 0
lea eax, [ebp - 0x870]
mov dword [ebp - 0x894], 0
push eax
call fcn.00413530
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8a0]
cmp dword [ebp - 0x85c], 8
lea eax, [ebp - 0x870]
push 0
cmovae eax, dword [ebp - 0x870]
push 0
push ecx
push eax
mov dword [ebp - 0x8a0], 0
mov dword [ebp - 0x89c], 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
jne 0x410df1
xorps xmm0, xmm0
movsd qword [ebp - 0x898], xmm0
jmp 0x411052
push 4
push str.NTFS
mov ecx, edi
call fcn.00407470
cmp dword [esi + 0x10], 3
jbe 0x410e22
push 3
push 0
lea eax, [ebp - 0x858]
mov ecx, esi
push eax
call fcn.00413530
mov byte [ebp - 4], 1
mov ebx, 1
jmp 0x410e60
xor eax, eax
mov dword [ebp - 0x82c], 7
push 0xffffffffffffffff
push eax
push esi
lea ecx, [ebp - 0x840]
mov dword [ebp - 0x830], 0
mov word [ebp - 0x840], ax
call fcn.00407b90
lea eax, [ebp - 0x840]
mov dword [ebp - 4], 2
mov ebx, 2
xor ecx, ecx
mov dword [ebp - 0x894], ebx
push 0xffffffffffffffff
push ecx
mov word [ebp - 0x828], cx
lea ecx, [ebp - 0x828]
push eax
mov dword [ebp - 0x814], 7
mov dword [ebp - 0x818], 0
call fcn.00407b90
mov dword [ebp - 4], 3
test bl, 2
je 0x410ed5
and ebx, 0xfffffffd
cmp dword [ebp - 0x82c], 8
jb 0x410eb8
push dword [ebp - 0x840]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [ebp - 0x82c], 7
mov dword [ebp - 0x830], 0
mov word [ebp - 0x840], ax
mov byte [ebp - 4], 5
test bl, 1
je 0x410f15
and ebx, 0xfffffffe
cmp dword [ebp - 0x844], 8
jb 0x410ef8
push dword [ebp - 0x858]
call fcn.004db8b0
add esp, 4
xor eax, eax
mov dword [ebp - 0x844], 7
mov dword [ebp - 0x848], 0
mov word [ebp - 0x858], ax
xor eax, eax
mov dword [ebp - 0x8a4], 1
push 0x7fe
push eax
mov word [ebp - 0x810], ax
lea eax, [ebp - 0x80e]
push eax
call fcn.004f31f0
add esp, 0xc
lea ecx, [ebp - 0x810]
cmp dword [ebp - 0x814], 8
lea eax, [ebp - 0x828]
cmovae eax, dword [ebp - 0x828]
push 0x400
push ecx
lea ecx, [ebp - 0x8a4]
push ecx
push 0
push 0
push 0
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
test eax, eax
je 0x410fb4
lea eax, [ebp - 0x810]
push eax
lea ecx, [ebp - 0x888]
call fcn.00407570
push 4
push str.NTFS
mov byte [ebp - 4], 6
or ebx, 4
push dword [eax + 0x10]
mov ecx, eax
mov dword [ebp - 0x894], ebx
push 0
call fcn.00406720
mov byte [ebp - 0x889], 1
test eax, eax
jne 0x410fbb
mov byte [ebp - 0x889], 0
mov dword [ebp - 4], 5
test bl, 4
je 0x410fde
cmp dword [ebp - 0x874], 8
jb 0x410fde
push dword [ebp - 0x888]
call fcn.004db8b0
add esp, 4
cmp byte [ebp - 0x889], 0
je 0x410ff5
push 3
push 0x559e80
mov ecx, edi
call fcn.00407470
mov edx, dword [ebp - 0x89c]
mov ecx, dword [ebp - 0x8a0]
call fcn.004f5e1e
cmp dword [ebp - 0x814], 8
mulsd xmm0, qword [0x568a78]
movsd qword [ebp - 0x898], xmm0
jb 0x411035
push dword [ebp - 0x828]
call fcn.004db8b0
movsd xmm0, qword [ebp - 0x898]
add esp, 4
xor eax, eax
mov dword [ebp - 0x814], 7
mov dword [ebp - 0x818], 0
mov word [ebp - 0x828], ax
cmp dword [ebp - 0x85c], 8
jb 0x411071
push dword [ebp - 0x870]
call fcn.004db8b0
movsd xmm0, qword [ebp - 0x898]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004ea604
mov esp, ebp
pop ebp
ret