Function at 0x407b3d
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.004080aa
test eax, eax
jns 0x407b98
xor eax, eax
inc eax
lea esi, [ebp - 0xc]
call fcn.00408b78
mov edi, eax
cmp edi, ebx
jge 0x407b98
push 0x404384
push edi
call fcn.004088ec
pop ecx
pop ecx
jmp 0x407de0
push dword [ebp - 0xc]
push 0x4043b0
push 1
call fcn.00408870
add esp, 0xc
mov eax, 0x9d
lea esi, [ebp - 8]
call fcn.00408b78
mov edi, eax
cmp edi, ebx
jge 0x407bc7
push 0x4043c8
jmp 0x407dc9
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 0x407c0a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x407bf9
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x407c00
mov edi, 0x80004005
push 0x4043f8
jmp 0x407dc9
cmp eax, esi
jbe 0x407c25
inc eax
lea esi, [ebp - 8]
call fcn.00408b78
mov edi, eax
test edi, edi
js 0x407bbd
push dword [ebp - 8]
push dword [ebp - 0x20]
call ebx
mov esi, dword [ebp - 8]
cmp word [esi], 0
je 0x407d49
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push esi
push 0x404418
push 1
call fcn.00408870
movzx eax, word [esi]
add esp, 0xc
push eax
push dword [ebp - 0xc]
call fcn.00418cec
pop ecx
pop ecx
push esi
test eax, eax
je 0x407c70
push 0x404434
push 1
call fcn.00408870
add esp, 0xc
jmp 0x407d1c
lea ebx, [ebp - 0x18]
call fcn.00407df6
mov edi, eax
test edi, edi
js 0x407d50
cmp dword [ebp - 0x18], 0
jne 0x407c90
push esi
push 0x404490
jmp 0x407c61
mov ecx, esi
call fcn.00407a87
push esi
test al, al
jne 0x407ca3
push 0x4044d8
jmp 0x407c61
call fcn.00407ecc
mov edi, eax
test edi, edi
js 0x407d57
cmp edi, 1
jne 0x407cbf
push esi
push 0x404550
jmp 0x407c61
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 0x407d1c
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jne 0x407d07
cmp eax, dword [ebp - 0x30]
jb 0x407d07
ja 0x407cfc
cmp ecx, dword [ebp - 0x34]
jbe 0x407d07
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], esi
jmp 0x407d1c
cmp eax, dword [ebp - 0x28]
jb 0x407d1c
ja 0x407d13
cmp ecx, dword [ebp - 0x2c]
jbe 0x407d1c
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 0x407d23
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x407c32
cmp dword [ebp - 0x10], edi
jne 0x407d5e
cmp dword [ebp - 0x14], edi
jne 0x407d5e
push 0x404588
jmp 0x407dc4
push 0x404470
jmp 0x407dc9
push 0x404518
jmp 0x407dc9
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
jb 0x407d9c
ja 0x407d70
cmp dword [ebp - 0x2c], ecx
jbe 0x407d9c
push dword [ebp - 0x10]
push 0x4045b0
push 1
call fcn.00408870
add esp, 0xc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
call fcn.00408c08
mov edi, eax
test edi, edi
jns 0x407dd1
push 0x4045e8
jmp 0x407dc9
cmp dword [ebp - 0x30], eax
jb 0x407dbf
ja 0x407da8
cmp dword [ebp - 0x34], ecx
jbe 0x407dbf
push dword [ebp - 0x14]
push 0x404618
push 1
call fcn.00408870
add esp, 0xc
push dword [ebp - 0x14]
jmp 0x407d85
push 0x404654
mov edi, 0x80070070
push edi
call fcn.004088ec
pop ecx
pop ecx
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x407de0
push dword [ebp - 8]
call fcn.004091af
cmp dword [ebp - 0xc], ebx
je 0x407ded
push dword [ebp - 0xc]
call fcn.004091af
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc