Function at 0x41f168
Capabilities:
Get disk size

Disassembly:
push 0x43c
mov eax, 0x4a19a5
call fcn.0045a829
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x440], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x428], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x43c], eax
xor eax, eax
push 0x206
mov word [ebp - 0x218], ax
xor edi, edi
lea eax, [ebp - 0x216]
push edi
push eax
call fcn.00459250
mov esi, edi
add esp, 0xc
mov dword [ebp - 0x430], esi
mov ecx, dword [0x4d4194]
mov dword [ebp - 4], edi
cmp ecx, 0xffffffff
jne 0x41f215
push dword [0x4d40a4]
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x448], eax
test eax, eax
je 0x41f201
lea ecx, [ebp - 0x430]
call fcn.0042313a
mov esi, dword [ebp - 0x448]
mov dword [ebp - 0x430], esi
push str.GetDiskFreeSpaceExW
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
mov dword [0x4d4194], ecx
movzx eax, word [ebx]
push 0x5c
pop edx
cmp ax, dx
jne 0x41f24e
cmp word [ebx + 2], dx
jne 0x41f24e
push ebx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
push 0x4ac888
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatW]
mov ecx, dword [0x4d4194]
jmp 0x41f270
mov word [ebp - 0x420], ax
mov ax, word [ebx + 2]
mov word [ebp - 0x41e], ax
xor eax, eax
mov word [ebp - 0x41c], dx
mov word [ebp - 0x41a], ax
test ecx, ecx
je 0x41f2c0
push dword [ebp - 0x428]
mov edx, dword [ebp - 0x42c]
cmp word [ebp - 0x218], 0
push edx
push dword [ebp - 0x440]
lea edx, [ebp - 0x420]
lea eax, [ebp - 0x218]
cmove eax, edx
push eax
call ecx
mov esi, eax
test esi, esi
jne 0x41f3b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x41f3b4
mov dword [0x4d4194], edi
cmp word [ebp - 0x218], 0
je 0x41f2ed
push 0x104
lea eax, [ebp - 0x420]
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.0041f43f
add esp, 0xc
test eax, eax
je 0x41f3a1
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x434]
push eax
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
mov ebx, eax
test ebx, ebx
je 0x41f388
push dword [ebp - 0x438]
mov eax, dword [ebp - 0x42c]
push dword [ebp - 0x424]
mov esi, dword [ebp - 0x434]
push esi
mov dword [eax + 4], edi
call fcn.0041f414
mov edx, dword [ebp - 0x42c]
push dword [ebp - 0x444]
mov dword [edx], eax
mov eax, dword [ebp - 0x428]
push dword [ebp - 0x424]
mov dword [eax + 4], edi
push esi
call fcn.0041f414
mov ecx, dword [ebp - 0x428]
mov edx, dword [ebp - 0x440]
add esp, 0x18
imul esi, dword [ebp - 0x424]
mov dword [ecx], eax
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov edx, dword [ebp - 0x43c]
mov dword [edx], esi
cmp word [ebp - 0x218], 0
je 0x41f39f
lea eax, [ebp - 0x420]
push eax
call fcn.0041f4db
pop ecx
mov edi, ebx
lea ecx, [ebp - 0x430]
call fcn.0042313a
mov eax, edi
call fcn.0045a7d8
ret
cmp word [ebp - 0x218], 0
lea eax, [ebp - 0x438]
push eax
lea eax, [ebp - 0x444]
push eax
lea eax, [ebp - 0x424]
push eax
lea eax, [ebp - 0x434]
push eax
lea ecx, [ebp - 0x420]
lea eax, [ebp - 0x218]
cmove eax, ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
je 0x41f407
mov ecx, dword [ebp - 0x434]
imul ecx, dword [ebp - 0x424]
mov edx, dword [ebp - 0x43c]
mov dword [edx], ecx
test esi, esi
je 0x41f3a1
test eax, eax
je 0x41f3a1
xor edi, edi
inc edi
jmp 0x41f3a1