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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x48
mov eax, dword [ebp + 8]
push ebx
xor ebx, ebx
push esi
mov dword [eax], ebx
push edi
lea eax, [ebp - 0xc]
push eax
mov dword [ebp - 8], ebx
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x10], ebx
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ebx
call fcn.004083fc
test eax, eax
jns 0x407ed9
xor eax, eax
inc eax
lea esi, [ebp - 0xc]
call fcn.00408f01
mov edi, eax
cmp edi, ebx
jge 0x407ed9
push 0x404644
push edi
call fcn.00408c66
pop ecx
pop ecx
jmp 0x408121
push dword [ebp - 0xc]
push 0x404670
push 1
call fcn.00408be5
add esp, 0xc
mov eax, 0x9d
lea esi, [ebp - 8]
call fcn.00408f01
mov edi, eax
cmp edi, ebx
jge 0x407f08
push 0x404688
jmp 0x40810a
push dword [ebp - 8]
mov ebx, dword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov esi, 0x9c
push esi
call ebx
mov dword [ebp - 0x20], eax
test eax, eax
jne 0x407f4b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x407f3a
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x407f41
mov edi, 0x80004005
push 0x4046b8
jmp 0x40810a
cmp eax, esi
jbe 0x407f66
inc eax
lea esi, [ebp - 8]
call fcn.00408f01
mov edi, eax
test edi, edi
js 0x407efe
push dword [ebp - 8]
push dword [ebp - 0x20]
call ebx
mov esi, dword [ebp - 8]
cmp word [esi], 0
je 0x40808a
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push esi
push 0x4046d8
push 1
call fcn.00408be5
movzx eax, word [esi]
add esp, 0xc
push eax
push dword [ebp - 0xc]
call fcn.00419997
pop ecx
pop ecx
push esi
test eax, eax
je 0x407fb1
push 0x4046f4
push 1
call fcn.00408be5
add esp, 0xc
jmp 0x40805d
lea ebx, [ebp - 0x18]
call fcn.0040813c
mov edi, eax
test edi, edi
js 0x408091
cmp dword [ebp - 0x18], 0
jne 0x407fd1
push esi
push 0x404750
jmp 0x407fa2
mov ecx, esi
call fcn.00407dc3
push esi
test al, al
jne 0x407fe4
push 0x404798
jmp 0x407fa2
call fcn.00408217
mov edi, eax
test edi, edi
js 0x408098
cmp edi, 1
jne 0x408000
push esi
push 0x404810
jmp 0x407fa2
xor eax, eax
lea edi, [ebp - 0x24]
stosd dword es:[edi], eax
lea edi, [ebp - 0x44]
stosd dword es:[edi], eax
lea edi, [ebp - 0x3c]
stosd dword es:[edi], eax
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x24]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x40805d
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jne 0x408048
cmp eax, dword [ebp - 0x30]
jb 0x408048
ja 0x40803d
cmp ecx, dword [ebp - 0x34]
jbe 0x408048
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], esi
jmp 0x40805d
cmp eax, dword [ebp - 0x28]
jb 0x40805d
ja 0x408054
cmp ecx, dword [ebp - 0x2c]
jbe 0x40805d
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], esi
mov eax, esi
lea edx, [eax + 2]
xor edi, edi
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x408064
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x407f73
cmp dword [ebp - 0x10], edi
jne 0x40809f
cmp dword [ebp - 0x14], edi
jne 0x40809f
push 0x404848
jmp 0x408105
push 0x404730
jmp 0x40810a
push 0x4047d8
jmp 0x40810a
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
jb 0x4080dd
ja 0x4080b1
cmp dword [ebp - 0x2c], ecx
jbe 0x4080dd
push dword [ebp - 0x10]
push 0x404870
push 1
call fcn.00408be5
add esp, 0xc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
call fcn.00408f9b
mov edi, eax
test edi, edi
jns 0x408112
push 0x4048a8
jmp 0x40810a
cmp dword [ebp - 0x30], eax
jb 0x408100
ja 0x4080e9
cmp dword [ebp - 0x34], ecx
jbe 0x408100
push dword [ebp - 0x14]
push 0x4048d8
push 1
call fcn.00408be5
add esp, 0xc
push dword [ebp - 0x14]
jmp 0x4080c6
push 0x404914
mov edi, 0x80070070
push edi
call fcn.00408c66
pop ecx
pop ecx
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x408121
push dword [ebp - 8]
call fcn.0040956f
cmp dword [ebp - 0xc], ebx
je 0x40812e
push dword [ebp - 0xc]
call fcn.0040956f
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc