Function at 0x10007d10
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x358
mov eax, dword [0x10047140]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_OpenProcess]
push esi
push edi
mov edi, dword [ebp + 8]
push edi
push 0
push 0x410
mov dword [ebp - 0x358], eax
call ebx
mov esi, eax
test esi, esi
jne 0x10007d5b
push edi
push eax
push 0x1000
call ebx
mov esi, eax
test esi, esi
je 0x10007fde
push 0x103
lea eax, [ebp - 0x107]
push 0
push eax
mov byte [ebp - 0x108], 0
call fcn.100105b0
add esp, 0xc
push str.GetProcessImageFileNameA
push str.Psapi.dll
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x10007fde
push 0x104
lea ecx, [ebp - 0x108]
push ecx
push esi
call eax
test eax, eax
je 0x10007fde
mov esi, dword [sym.imp.KERNEL32.dll_QueryDosDeviceA]
mov bl, 0x41
jmp 0x10007dc0
push 0x1ff
lea eax, [ebp - 0x307]
push 0
push eax
mov byte [ebp - 0x354], bl
mov word [ebp - 0x353], 0x3a
mov byte [ebp - 0x308], 0
call fcn.100105b0
add esp, 0xc
lea eax, [ebp - 0x308]
push 0x1ff
push eax
lea eax, [ebp - 0x354]
push eax
call esi
test eax, eax
je 0x10007f2c
cmp byte [ebp - 0x108], 0
mov dword [ebp - 0x324], 0xf
mov dword [ebp - 0x328], 0
mov byte [ebp - 0x338], 0
jne 0x10007e31
xor eax, eax
jmp 0x10007e49
lea eax, [ebp - 0x108]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10007e40
sub eax, edx
push eax
lea eax, [ebp - 0x108]
push eax
lea ecx, [ebp - 0x338]
call fcn.100046e0
cmp byte [ebp - 0x308], 0
mov dword [ebp - 0x30c], 0xf
mov dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
jne 0x10007e84
xor ecx, ecx
jmp 0x10007e99
lea ecx, [ebp - 0x308]
lea edx, [ecx + 1]
lea ecx, [ecx]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10007e90
sub ecx, edx
push ecx
lea eax, [ebp - 0x308]
push eax
lea ecx, [ebp - 0x320]
call fcn.100046e0
mov ecx, dword [ebp - 0x310]
or edx, 0xffffffff
cmp ecx, 0xffffffff
cmovb edx, ecx
cmp dword [ebp - 0x30c], 0x10
push edx
lea eax, [ebp - 0x320]
cmovae eax, dword [ebp - 0x320]
push eax
push ecx
push 0
lea ecx, [ebp - 0x338]
call fcn.100048d0
test eax, eax
je 0x10007f3c
cmp dword [ebp - 0x30c], 0x10
jb 0x10007efa
push dword [ebp - 0x320]
call fcn.1000db4b
add esp, 4
cmp dword [ebp - 0x324], 0x10
mov dword [ebp - 0x30c], 0xf
mov dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
jb 0x10007f2c
push dword [ebp - 0x338]
call fcn.1000db4b
add esp, 4
inc bl
cmp bl, 0x5a
jle 0x10007dc0
jmp 0x10007fde
push dword [ebp - 0x328]
lea eax, [ebp - 0x350]
push dword [ebp - 0x310]
lea ecx, [ebp - 0x338]
push eax
call fcn.10004f20
cmp dword [eax + 0x14], 0x10
jb 0x10007f62
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x354]
push eax
push 0x10036d18
push dword [ebp - 0x358]
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
cmp dword [ebp - 0x33c], 0x10
jb 0x10007f95
push dword [ebp - 0x350]
call fcn.1000db4b
add esp, 4
cmp dword [ebp - 0x30c], 0x10
jb 0x10007fac
push dword [ebp - 0x320]
call fcn.1000db4b
add esp, 4
cmp dword [ebp - 0x324], 0x10
mov dword [ebp - 0x30c], 0xf
mov dword [ebp - 0x310], 0
mov byte [ebp - 0x320], 0
jb 0x10007fde
push dword [ebp - 0x338]
call fcn.1000db4b
add esp, 4
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.1000db11
mov esp, ebp
pop ebp
ret