Function at 0x411910
Capabilities:
Get disk size

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xd4
mov eax, dword [0x577680]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x18]
push ebx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0xd0], ebx
mov dword [ebp - 0xc8], eax
mov dword [ebp - 0xcc], ecx
test ebx, ebx
je 0x411bcc
test eax, eax
je 0x411bcc
lea eax, [ebp - 0xb8]
push eax
push dword [ebp + 0xc]
push ebx
call fcn.00411f50
add esp, 0xc
test al, al
je 0x411bcc
mov eax, dword [ebp - 0xb8]
cmp eax, dword [ebp + 0x14]
ja 0x411bcc
mov edx, dword [0x578ad4]
push esi
lea ecx, [edx + 2]
lea eax, [edx + 1]
imul ecx, eax
imul ecx, edx
push edi
and ecx, reloc.OLEAUT32.dll_VariantInit
jns 0x41199a
dec ecx
or ecx, 0xfffffff8
inc ecx
cmp ecx, 7
jne 0x4119ff
xor esi, esi
call fcn.004f1791
movd xmm0, eax
cvtdq2pd xmm0, xmm0
inc esi
movsd qword [ebp + esi*8 - 0x84], xmm0
cmp esi, 0xf
jb 0x4119a1
xor ecx, ecx
nop
mov eax, 0xe
cmp ecx, eax
jge 0x4119f9
lea esp, [esp]
movsd xmm0, qword [ebp + eax*8 - 0x7c]
movsd xmm1, qword [ebp + eax*8 - 0x84]
comisd xmm0, xmm1
jbe 0x4119f4
movsd qword [ebp + eax*8 - 0x7c], xmm1
movsd qword [ebp + eax*8 - 0x84], xmm0
dec eax
cmp eax, ecx
jg 0x4119d0
inc ecx
cmp ecx, 0xf
jl 0x4119c0
call fcn.00412000
mov edx, dword [0x578ad4]
imul edx, edx
mov eax, edx
cdq
mov ecx, 0xc
idiv ecx
cmp edx, 6
jne 0x411a29
lea eax, [ebp - 0xb0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
xor esi, esi
xor edi, edi
cmp dword [ebp + 0xc], esi
jbe 0x411bab
mov dword [ebp - 0xd4], 0x17
mov al, byte [ebx + edi]
mov cl, byte [ebx + edi + 1]
mov ch, byte [ebx + edi + 2]
mov dl, byte [ebx + edi + 3]
add edi, 4
mov byte [ebp - 0xb2], cl
mov byte [ebp - 0xb3], ch
mov byte [ebp - 0xb1], dl
cmp al, 0x3d
je 0x411a74
movzx eax, al
movzx ebx, byte [eax + 0x578dd8]
jmp 0x411a76
xor ebx, ebx
mov edx, dword [0x578ad4]
imul edx, edx
mov eax, edx
cdq
idiv dword [ebp - 0xd4]
cmp edx, 5
jne 0x411aa9
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov cl, byte [ebp - 0xb2]
mov ch, byte [ebp - 0xb3]
cmp cl, 0x3d
je 0x411ac0
movzx eax, cl
movzx eax, byte [eax + 0x578dd8]
mov dword [ebp - 0xc0], eax
jmp 0x411aca
mov dword [ebp - 0xc0], 0
cmp ch, 0x3d
je 0x411ae1
movzx eax, ch
movzx eax, byte [eax + 0x578dd8]
mov dword [ebp - 0xbc], eax
jmp 0x411aeb
mov dword [ebp - 0xbc], 0
mov al, byte [ebp - 0xb1]
cmp al, 0x3d
je 0x411b07
movzx eax, al
movzx eax, byte [eax + 0x578dd8]
mov dword [ebp - 0xc4], eax
jmp 0x411b11
mov dword [ebp - 0xc4], 0
call fcn.0046ca70
test al, al
jne 0x411b38
push 0
push 0
push 0
push 0
push 0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateFileW]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ecx, dword [ebp - 0xb8]
shl ebx, 6
add ebx, dword [ebp - 0xc0]
shl ebx, 6
add ebx, dword [ebp - 0xbc]
shl ebx, 6
add ebx, dword [ebp - 0xc4]
cmp esi, ecx
jae 0x411b81
mov edx, dword [ebp - 0xc8]
mov eax, ebx
shr eax, 0x10
mov byte [edx + esi], al
inc esi
cmp esi, ecx
jae 0x411b81
mov eax, ebx
shr eax, 8
mov byte [edx + esi], al
inc esi
cmp esi, ecx
jae 0x411b81
mov byte [edx + esi], bl
inc esi
mov ebx, dword [ebp - 0xd0]
cmp edi, dword [ebp + 0xc]
jb 0x411a40
mov eax, dword [ebp - 0xcc]
pop edi
pop esi
mov dword [eax], ecx
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004f0cd4
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0xcc]
mov ecx, dword [ebp - 0xb8]
pop edi
pop esi
mov dword [eax], ecx
mov al, 1
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004f0cd4
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
xor ecx, ebp
xor al, al
pop ebx
call fcn.004f0cd4
mov esp, ebp
pop ebp
ret