Function at 0x407d39
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.00408291
test eax, eax
jns 0x407d94
xor eax, eax
inc eax
lea esi, [ebp - 0xc]
call fcn.00408d5f
mov edi, eax
cmp edi, ebx
jge 0x407d94
push 0x40449c
push edi
call fcn.00408ad3
pop ecx
pop ecx
jmp 0x407fdc
push dword [ebp - 0xc]
push 0x4044c8
push 1
call fcn.00408a57
add esp, 0xc
mov eax, 0x9d
lea esi, [ebp - 8]
call fcn.00408d5f
mov edi, eax
cmp edi, ebx
jge 0x407dc3
push 0x4044e0
jmp 0x407fc5
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 0x407e06
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x407df5
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x407dfc
mov edi, 0x80004005
push 0x404510
jmp 0x407fc5
cmp eax, esi
jbe 0x407e21
inc eax
lea esi, [ebp - 8]
call fcn.00408d5f
mov edi, eax
test edi, edi
js 0x407db9
push dword [ebp - 8]
push dword [ebp - 0x20]
call ebx
mov esi, dword [ebp - 8]
cmp word [esi], 0
je 0x407f45
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push esi
push 0x404530
push 1
call fcn.00408a57
movzx eax, word [esi]
add esp, 0xc
push eax
push dword [ebp - 0xc]
call fcn.00419288
pop ecx
pop ecx
push esi
test eax, eax
je 0x407e6c
push 0x40454c
push 1
call fcn.00408a57
add esp, 0xc
jmp 0x407f18
lea ebx, [ebp - 0x18]
call fcn.00407ff2
mov edi, eax
test edi, edi
js 0x407f4c
cmp dword [ebp - 0x18], 0
jne 0x407e8c
push esi
push 0x4045a8
jmp 0x407e5d
mov ecx, esi
call fcn.00407c83
push esi
test al, al
jne 0x407e9f
push 0x4045f0
jmp 0x407e5d
call fcn.004080c8
mov edi, eax
test edi, edi
js 0x407f53
cmp edi, 1
jne 0x407ebb
push esi
push 0x404668
jmp 0x407e5d
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 0x407f18
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jne 0x407f03
cmp eax, dword [ebp - 0x30]
jb 0x407f03
ja 0x407ef8
cmp ecx, dword [ebp - 0x34]
jbe 0x407f03
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], esi
jmp 0x407f18
cmp eax, dword [ebp - 0x28]
jb 0x407f18
ja 0x407f0f
cmp ecx, dword [ebp - 0x2c]
jbe 0x407f18
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 0x407f1f
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x407e2e
cmp dword [ebp - 0x10], edi
jne 0x407f5a
cmp dword [ebp - 0x14], edi
jne 0x407f5a
push 0x4046a0
jmp 0x407fc0
push 0x404588
jmp 0x407fc5
push 0x404630
jmp 0x407fc5
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
jb 0x407f98
ja 0x407f6c
cmp dword [ebp - 0x2c], ecx
jbe 0x407f98
push dword [ebp - 0x10]
push 0x4046c8
push 1
call fcn.00408a57
add esp, 0xc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
call fcn.00408def
mov edi, eax
test edi, edi
jns 0x407fcd
push 0x404700
jmp 0x407fc5
cmp dword [ebp - 0x30], eax
jb 0x407fbb
ja 0x407fa4
cmp dword [ebp - 0x34], ecx
jbe 0x407fbb
push dword [ebp - 0x14]
push 0x404730
push 1
call fcn.00408a57
add esp, 0xc
push dword [ebp - 0x14]
jmp 0x407f81
push 0x40476c
mov edi, 0x80070070
push edi
call fcn.00408ad3
pop ecx
pop ecx
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x407fdc
push dword [ebp - 8]
call fcn.00409396
cmp dword [ebp - 0xc], ebx
je 0x407fe9
push dword [ebp - 0xc]
call fcn.00409396
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc