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

Disassembly:
mov edi, edi
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.00407cd0
test eax, eax
jns 0x4077a7
xor eax, eax
inc eax
lea esi, [ebp - 0xc]
call fcn.004087eb
mov edi, eax
cmp edi, ebx
jge 0x4077a7
push 0x4043b4
push edi
call fcn.0040854a
pop ecx
pop ecx
jmp 0x4079ef
push dword [ebp - 0xc]
push 0x4043e0
push 1
call fcn.004084c7
add esp, 0xc
mov eax, 0x9d
lea esi, [ebp - 8]
call fcn.004087eb
mov edi, eax
cmp edi, ebx
jge 0x4077d6
push 0x4043f8
jmp 0x4079d8
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 0x407819
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x407808
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x40780f
mov edi, 0x80004005
push 0x404428
jmp 0x4079d8
cmp eax, esi
jbe 0x407834
inc eax
lea esi, [ebp - 8]
call fcn.004087eb
mov edi, eax
test edi, edi
js 0x4077cc
push dword [ebp - 8]
push dword [ebp - 0x20]
call ebx
mov esi, dword [ebp - 8]
cmp word [esi], 0
je 0x407958
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push esi
push 0x404448
push 1
call fcn.004084c7
movzx eax, word [esi]
add esp, 0xc
push eax
push dword [ebp - 0xc]
call fcn.004195a3
pop ecx
pop ecx
push esi
test eax, eax
je 0x40787f
push 0x404464
push 1
call fcn.004084c7
add esp, 0xc
jmp 0x40792b
lea ebx, [ebp - 0x18]
call fcn.00407a0a
mov edi, eax
test edi, edi
js 0x40795f
cmp dword [ebp - 0x18], 0
jne 0x40789f
push esi
push 0x4044c0
jmp 0x407870
mov ecx, esi
call fcn.0040768d
push esi
test al, al
jne 0x4078b2
push 0x404508
jmp 0x407870
call fcn.00407ae7
mov edi, eax
test edi, edi
js 0x407966
cmp edi, 1
jne 0x4078ce
push esi
push 0x404580
jmp 0x407870
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 0x40792b
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jne 0x407916
cmp eax, dword [ebp - 0x30]
jb 0x407916
ja 0x40790b
cmp ecx, dword [ebp - 0x34]
jbe 0x407916
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], esi
jmp 0x40792b
cmp eax, dword [ebp - 0x28]
jb 0x40792b
ja 0x407922
cmp ecx, dword [ebp - 0x2c]
jbe 0x40792b
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 0x407932
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x407841
cmp dword [ebp - 0x10], edi
jne 0x40796d
cmp dword [ebp - 0x14], edi
jne 0x40796d
push 0x4045b8
jmp 0x4079d3
push 0x4044a0
jmp 0x4079d8
push 0x404548
jmp 0x4079d8
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
jb 0x4079ab
ja 0x40797f
cmp dword [ebp - 0x2c], ecx
jbe 0x4079ab
push dword [ebp - 0x10]
push 0x4045e0
push 1
call fcn.004084c7
add esp, 0xc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
call fcn.00408889
mov edi, eax
test edi, edi
jns 0x4079e0
push 0x404618
jmp 0x4079d8
cmp dword [ebp - 0x30], eax
jb 0x4079ce
ja 0x4079b7
cmp dword [ebp - 0x34], ecx
jbe 0x4079ce
push dword [ebp - 0x14]
push 0x404648
push 1
call fcn.004084c7
add esp, 0xc
push dword [ebp - 0x14]
jmp 0x407994
push 0x404684
mov edi, 0x80070070
push edi
call fcn.0040854a
pop ecx
pop ecx
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x4079ef
push dword [ebp - 8]
call fcn.00408e6f
cmp dword [ebp - 0xc], ebx
je 0x4079fc
push dword [ebp - 0xc]
call fcn.00408e6f
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc