Function at 0x59c66e
Capabilities:
Enumerate disk volumes
Get disk information

Disassembly:
push 0x474
mov eax, 0x61faf9
call fcn.005b2237
mov ebx, ecx
mov esi, 0x208
lea eax, [ebp - 0x420]
push esi
push 0
push eax
call fcn.005ca820
push esi
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005ca820
add esp, 0x18
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstVolumeW]
mov edi, eax
cmp edi, 0xffffffff
jne 0x59c8ad
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.FindFirstVolumeW_failed_with_error_code__d_n
push str.EFRUtils::DriverInfoHelper::FillDriverDetails
push 1
call fcn.00587c13
add esp, 0x10
jmp 0x59c8ed
cmp word [ebp - 0x216], cx
jne 0x59c8cb
cmp word [ebp - 0x214], 0x3f
jne 0x59c8cb
cmp word [ebp - 0x212], cx
jne 0x59c8cb
lea esi, [eax + eax]
cmp word [ebp + esi - 0x218], cx
jne 0x59c8cb
cmp esi, 0x208
jae 0x59c914
xor eax, eax
mov word [ebp + esi - 0x218], ax
lea eax, [ebp - 0x420]
push 0x104
push eax
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_QueryDosDeviceW]
push 0x5c
pop ecx
mov word [ebp + esi - 0x218], cx
test eax, eax
je 0x59c906
lea eax, [ebp - 0x218]
mov ecx, ebx
push eax
call fcn.0059c981
mov esi, eax
lea eax, [ebp - 0x420]
push eax
push esi
push str.DriverInfoHelper::FillDriverDetails__VolumeLtr_s____DeviceName_s_
push str.EFRUtils::DriverInfoHelper::FillDriverDetails
push 3
call fcn.00587c13
add esp, 0x14
test esi, esi
je 0x59c896
and dword [ebp - 0x428], 0
xor eax, eax
mov dword [ebp - 0x424], 7
mov word [ebp - 0x438], ax
cmp word [ebp - 0x420], ax
je 0x59c7c1
lea eax, [ebp - 0x420]
push eax
call fcn.005e4cfb
pop ecx
push eax
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 0x438]
call fcn.004346a0
and dword [ebp - 4], 0
lea ecx, [ebp - 0x480]
push esi
call fcn.004347d0
mov esi, 0x63f3c0
mov byte [ebp - 4], 1
push esi
call fcn.005e4cfb
pop ecx
push eax
push esi
lea ecx, [ebp - 0x438]
call fcn.0041d8c0
push 7
pop ecx
xor esi, esi
mov dword [ebp - 0x454], ecx
xor eax, eax
mov dword [ebp - 0x458], esi
mov word [ebp - 0x468], ax
mov dword [ebp - 0x43c], ecx
mov dword [ebp - 0x440], esi
mov word [ebp - 0x450], ax
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x438]
mov byte [ebp - 4], 2
push eax
lea ecx, [ebp - 0x468]
call fcn.00434d60
push 0xffffffffffffffff
push esi
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0x450]
call fcn.00434d60
lea eax, [ebp - 0x468]
push eax
lea ecx, [ebx + 4]
call fcn.0059cbd3
lea ecx, [ebp - 0x468]
call fcn.0059c622
push esi
push 1
lea ecx, [ebp - 0x480]
call fcn.00434c40
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x438]
push esi
push 1
call fcn.00434c40
push 0x104
lea eax, [ebp - 0x218]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_FindNextVolumeW]
test eax, eax
je 0x59c8f3
lea eax, [ebp - 0x218]
push eax
call fcn.005e4cfb
pop ecx
push 0x5c
pop ecx
dec eax
cmp word [ebp - 0x218], cx
je 0x59c6e2
lea eax, [ebp - 0x218]
push eax
push str.FindFirstVolumeW_FindNextVolumeW_returned_a_bad_path:__s_n
push str.EFRUtils::DriverInfoHelper::FillDriverDetails
push 1
call fcn.00587c13
add esp, 0x10
push edi
call dword [sym.imp.KERNEL32.dll_FindVolumeClose]
call fcn.005b21e1
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x59c8e6
push eax
push str.FindNextVolumeW_failed_with_error_code__d_n
jmp 0x59c8d7
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str.QueryDosDeviceW_failed_with_error_code__d_n
jmp 0x59c8d7
call fcn.005b1e8c
int3