Function at 0xf79164f
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x46c
push ebx
push esi
push edi
mov dword [ebp - 0x118], 0
mov dword [ebp - 0x10c], 0
mov dword [ebp - 0x354], 0
call fcn.0f72465b
mov dword [ebp - 0x348], eax
mov dword [ebp - 0x110], 0
call fcn.0f733469
mov dword [ebp - 0x34c], eax
test dword [ebp + 8], 0xffffffc0
je 0xf7916a9
push 5
call fcn.0f72689c
cmp dword [ebp + 8], 0
jne 0xf7916b6
mov dword [ebp + 8], 0x21
cmp dword [ebp + 8], 8
je 0xf7917a4
cmp dword [ebp + 0xc], 0
jne 0xf79178f
mov byte [ebp - 0x344], 0
mov dword [ebp - 0x360], 0
lea eax, [ebp - 0x344]
mov dword [ebp - 0x350], eax
mov eax, dword [ebp - 0x350]
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x360], 0
jbe 0xf7917f1
mov eax, dword [ebp - 0x23c]
movsx ax, byte [eax]
mov word [ebp - 0x238], ax
inc dword [ebp - 0x23c]
dec dword [ebp - 0x360]
push dword [ebp - 0x238]
call fcn.0f7879f0
add esp, 4
test eax, eax
je 0xf791765
cmp dword [ebp - 0x360], 0
jbe 0xf791765
shl word [ebp - 0x238], 8
mov eax, dword [ebp - 0x23c]
movsx eax, byte [eax]
movzx ecx, word [ebp - 0x238]
add eax, ecx
mov word [ebp - 0x238], ax
inc dword [ebp - 0x23c]
dec dword [ebp - 0x360]
push dword [ebp - 0x238]
push dword [ebp - 0x348]
call fcn.0f79cd43
test eax, eax
jne 0xf7916f3
mov eax, dword [ebp - 0x23c]
mov dword [ebp - 0x350], eax
jmp 0xf7916f3
mov eax, dword [ebp + 0xc]
mov eax, dword [eax - 4]
and al, 0xfe
xor ecx, ecx
and cl, 0xfe
cmp eax, ecx
je 0xf7916ca
push dword [ebp + 0xc]
lea eax, [ebp - 0x108]
push eax
call fcn.0f7927d7
push 0
push 0
push 0x105
lea eax, [ebp - 0x344]
push eax
push 0xffffffffffffffff
push dword [ebp + 0xc]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
lea edi, [ebp - 0x344]
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
lea eax, [ecx - 1]
mov dword [ebp - 0x360], eax
jmp 0xf7916db
mov eax, dword [ebp - 0x350]
lea ecx, [ebp - 0x344]
sub eax, ecx
mov dword [ebp - 0x360], eax
cmp dword [ebp - 0x360], 0
jbe 0xf791973
push 0x2e
lea eax, [ebp - 0x344]
push eax
call fcn.0f78781d
add esp, 8
mov dword [ebp - 0x23c], eax
lea eax, [ebp - 0x344]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x350]
cmp dword [ebp - 0x11c], eax
jae 0xf791871
mov eax, dword [ebp - 0x11c]
mov al, byte [eax]
mov byte [ebp - 0x114], al
inc dword [ebp - 0x11c]
push dword [ebp - 0x114]
call fcn.0f7879f0
add esp, 4
test eax, eax
je 0xf791835
inc dword [ebp - 0x11c]
jmp 0xf791835
mov eax, dword [ebp - 0x360]
lea eax, [ebp + eax - 0x344]
dec eax
cmp eax, dword [ebp - 0x23c]
jne 0xf791973
dec dword [ebp - 0x360]
inc dword [ebp - 0x10c]
mov eax, dword [ebp - 0x23c]
mov byte [eax], 0
push 0x2e
lea eax, [ebp - 0x344]
push eax
call fcn.0f78781d
add esp, 8
mov dword [ebp - 0x350], eax
lea eax, [ebp - 0x344]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x11c]
movsx eax, byte [eax]
test eax, eax
je 0xf7918fe
mov eax, dword [ebp - 0x11c]
mov al, byte [eax]
mov byte [ebp - 0x114], al
inc dword [ebp - 0x11c]
push dword [ebp - 0x114]
call fcn.0f7879f0
add esp, 4
test eax, eax
je 0xf7918c3
inc dword [ebp - 0x11c]
jmp 0xf7918c3
mov eax, dword [ebp - 0x23c]
dec eax
cmp eax, dword [ebp - 0x350]
jne 0xf79196a
inc dword [ebp - 0x10c]
dec dword [ebp - 0x360]
cmp dword [ebp - 0x360], 0
jbe 0xf79196a
lea eax, [ebp - 0x344]
mov dword [ebp - 0x11c], eax
mov eax, dword [ebp - 0x350]
cmp dword [ebp - 0x11c], eax
jae 0xf79196a
mov eax, dword [ebp - 0x11c]
mov al, byte [eax]
mov byte [ebp - 0x114], al
inc dword [ebp - 0x11c]
push dword [ebp - 0x114]
call fcn.0f7879f0
add esp, 4
test eax, eax
je 0xf79192e
inc dword [ebp - 0x11c]
jmp 0xf79192e
mov eax, dword [ebp - 0x23c]
mov byte [eax], 0x2e
cmp dword [ebp - 0x360], 0
je 0xf7919a0
movsx eax, byte [ebp - 0x114]
cmp eax, 0x5c
je 0xf7919a0
movsx eax, byte [ebp - 0x114]
cmp eax, 0x2f
je 0xf7919a0
movsx eax, byte [ebp - 0x114]
cmp eax, 0x3a
jne 0xf791a1d
mov eax, 0x104
cmp dword [ebp - 0x10c], 1
sbb ecx, ecx
inc ecx
add ecx, 3
sub eax, ecx
cmp eax, dword [ebp - 0x360]
jae 0xf7919c3
push 5
call fcn.0f72689c
cmp dword [ebp - 0x10c], 0
jbe 0xf7919ec
mov eax, dword [ebp - 0x10c]
add dword [ebp - 0x360], eax
mov eax, dword [ebp - 0x360]
mov byte [ebp + eax - 0x344], 0x5c
inc dword [ebp - 0x360]
mov edi, 0xf7bb1c8
mov ecx, 0xffffffff
sub eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov edx, edi
mov ebx, dword [ebp - 0x360]
lea edi, [ebp + ebx - 0x344]
mov esi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x34c]
cmp dword [eax + 0x30], 0xffffffff
je 0xf791a3b
mov eax, dword [ebp - 0x34c]
push dword [eax + 0x30]
call dword [sym.imp.MSVCRT20.dll__findclose]
add esp, 4
mov eax, dword [ebp - 0x34c]
mov dword [eax + 0x30], 0xffffffff
mov eax, dword [ebp - 0x34c]
mov dword [eax + 0x38], 0
cmp dword [ebp + 8], 8
jne 0xf791b54
movsx eax, byte [ebp - 0x107]
cmp eax, 0x3a
jne 0xf791a72
mov byte [ebp - 0x105], 0
push 0
push 0
push 0
push 0
push 0
push 0x105
lea eax, [ebp - 0x468]
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
je 0xf791b41
push 0
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x468]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x358], eax
cmp dword [ebp - 0x358], 0
jne 0xf791afe
mov dword [ebp - 0x354], 0xe
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x34c]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x34c]
mov dword [eax + 0x38], 1
cmp dword [ebp - 0x354], 0
je 0xf791cc7
push dword [ebp - 0x354]
call fcn.0f72689c
mov eax, dword [ebp - 0x358]
dec eax
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov dword [ebp - 0x118], eax
cmp dword [ebp - 0x118], 0
je 0xf791acd
push dword [ebp - 0x358]
push dword [ebp - 0x118]
push 0x105
lea eax, [ebp - 0x468]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0xf791acd
push 0xf7bb1c4
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x118], eax
jmp 0xf791ae6
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x344]
push eax
call dword [sym.imp.MSVCRT20.dll__findfirst]
add esp, 8
mov dword [ebp - 0x35c], eax
cmp dword [ebp - 0x35c], 0xffffffff
je 0xf791bf5
mov dword [ebp - 0x110], 0
cmp dword [ebp - 0x110], 0
jne 0xf791bbc
mov eax, dword [ebp - 0x234]
mov ecx, dword [ebp + 8]
not ecx
and eax, ecx
test al, 0x16
je 0xf791bbc
lea eax, [ebp - 0x234]
push eax
push dword [ebp - 0x35c]
call dword [sym.imp.MSVCRT20.dll__findnext]
add esp, 8
mov dword [ebp - 0x110], eax
jmp 0xf791b84
cmp dword [ebp - 0x110], 0
jne 0xf791bf5
push 0
push 0
push 0xffffffffffffffff
lea eax, [ebp - 0x220]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x358], eax
cmp dword [ebp - 0x358], 0
jne 0xf791c44
mov dword [ebp - 0x354], 0xe
cmp dword [ebp - 0x35c], 0xffffffff
je 0xf791c0b
cmp dword [ebp - 0x110], 0
je 0xf791ca7
cmp dword [ebp - 0x35c], 0xffffffff
je 0xf791c23
push dword [ebp - 0x35c]
call dword [sym.imp.MSVCRT20.dll__findclose]
add esp, 4
call dword [sym.imp.MSVCRT20.dll__errno]
cmp dword [eax], 2
jne 0xf791c7e
push 0xf7bb1c4
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov dword [ebp - 0x118], eax
jmp 0xf791ae6
mov eax, dword [ebp - 0x358]
dec eax
push eax
push 0
call dword [sym.imp.OLEAUT32.dll_SysReAllocStringLen]
mov dword [ebp - 0x118], eax
push dword [ebp - 0x358]
push dword [ebp - 0x118]
push 0xffffffffffffffff
lea eax, [ebp - 0x220]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0xf791bf5
call dword [sym.imp.MSVCRT20.dll__errno]
cmp dword [eax], 0x16
jne 0xf791c98
mov dword [ebp - 0x354], 0x4c
jmp 0xf791ae6
mov dword [ebp - 0x354], 5
jmp 0xf791ae6
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x34c]
mov dword [ecx + 0x34], eax
mov eax, dword [ebp - 0x35c]
mov ecx, dword [ebp - 0x34c]
mov dword [ecx + 0x30], eax
jmp 0xf791ae6
cmp dword [ebp - 0x118], 0
jne 0xf791cd7
push 0xe
call fcn.0f72689c
mov eax, dword [ebp - 0x118]
pop edi
pop esi
pop ebx
leave
ret 8