Function at 0x407bb0
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.0040811a
test eax, eax
jns 0x407c0b
xor eax, eax
inc eax
lea esi, [ebp - 0xc]
call fcn.00408be8
mov edi, eax
cmp edi, ebx
jge 0x407c0b
push 0x404384
push edi
call fcn.0040895c
pop ecx
pop ecx
jmp 0x407e53
push dword [ebp - 0xc]
push 0x4043b0
push 1
call fcn.004088e0
add esp, 0xc
mov eax, 0x9d
lea esi, [ebp - 8]
call fcn.00408be8
mov edi, eax
cmp edi, ebx
jge 0x407c3a
push 0x4043c8
jmp 0x407e3c
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 0x407c7d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x407c6c
and edi, 0xffff
or edi, 0x80070000
test edi, edi
js 0x407c73
mov edi, 0x80004005
push 0x4043f8
jmp 0x407e3c
cmp eax, esi
jbe 0x407c98
inc eax
lea esi, [ebp - 8]
call fcn.00408be8
mov edi, eax
test edi, edi
js 0x407c30
push dword [ebp - 8]
push dword [ebp - 0x20]
call ebx
mov esi, dword [ebp - 8]
cmp word [esi], 0
je 0x407dbc
push esi
call dword [sym.imp.USER32.dll_CharUpperW]
push esi
push 0x404418
push 1
call fcn.004088e0
movzx eax, word [esi]
add esp, 0xc
push eax
push dword [ebp - 0xc]
call fcn.00418f8f
pop ecx
pop ecx
push esi
test eax, eax
je 0x407ce3
push 0x404434
push 1
call fcn.004088e0
add esp, 0xc
jmp 0x407d8f
lea ebx, [ebp - 0x18]
call fcn.00407e69
mov edi, eax
test edi, edi
js 0x407dc3
cmp dword [ebp - 0x18], 0
jne 0x407d03
push esi
push 0x404490
jmp 0x407cd4
mov ecx, esi
call fcn.00407afa
push esi
test al, al
jne 0x407d16
push 0x4044d8
jmp 0x407cd4
call fcn.00407f3f
mov edi, eax
test edi, edi
js 0x407dca
cmp edi, 1
jne 0x407d32
push esi
push 0x404550
jmp 0x407cd4
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 0x407d8f
cmp dword [ebp - 0x18], 2
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
jne 0x407d7a
cmp eax, dword [ebp - 0x30]
jb 0x407d7a
ja 0x407d6f
cmp ecx, dword [ebp - 0x34]
jbe 0x407d7a
mov dword [ebp - 0x34], ecx
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x14], esi
jmp 0x407d8f
cmp eax, dword [ebp - 0x28]
jb 0x407d8f
ja 0x407d86
cmp ecx, dword [ebp - 0x2c]
jbe 0x407d8f
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 0x407d96
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
cmp word [esi], di
jne 0x407ca5
cmp dword [ebp - 0x10], edi
jne 0x407dd1
cmp dword [ebp - 0x14], edi
jne 0x407dd1
push 0x404588
jmp 0x407e37
push 0x404470
jmp 0x407e3c
push 0x404518
jmp 0x407e3c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
cmp dword [ebp - 0x28], eax
jb 0x407e0f
ja 0x407de3
cmp dword [ebp - 0x2c], ecx
jbe 0x407e0f
push dword [ebp - 0x10]
push 0x4045b0
push 1
call fcn.004088e0
add esp, 0xc
push dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
xor eax, eax
call fcn.00408c78
mov edi, eax
test edi, edi
jns 0x407e44
push 0x4045e8
jmp 0x407e3c
cmp dword [ebp - 0x30], eax
jb 0x407e32
ja 0x407e1b
cmp dword [ebp - 0x34], ecx
jbe 0x407e32
push dword [ebp - 0x14]
push 0x404618
push 1
call fcn.004088e0
add esp, 0xc
push dword [ebp - 0x14]
jmp 0x407df8
push 0x404654
mov edi, 0x80070070
push edi
call fcn.0040895c
pop ecx
pop ecx
xor ebx, ebx
cmp dword [ebp - 8], ebx
je 0x407e53
push dword [ebp - 8]
call fcn.0040921f
cmp dword [ebp - 0xc], ebx
je 0x407e60
push dword [ebp - 0xc]
call fcn.0040921f
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret 0xc