Function at 0x45c6e0
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x582a7d
mov eax, dword fs:[0]
push eax
sub esp, 0x270
mov eax, dword [0x634384]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x270], esi
mov eax, dword [ebp + 8]
push eax
mov dword [ebp - 0x278], esi
call fcn.00432a90
mov dword [ebp - 4], 0
lea edi, [esi + 0x1c]
lea ebx, [esi + 0x20]
mov byte [esi + 0x18], 0
lea ecx, [esi + 0x284]
mov dword [edi], 0xffffffff
mov dword [ebx], 0
mov dword [esi + 0x28], 0
mov dword [esi + 0x2c], 0
mov dword [esi + 0x30], 0xffffffff
call fcn.0041bb10
mov byte [ebp - 4], 1
push esi
call fcn.0043c000
add esp, 4
mov byte [ebp - 0x265], al
mov ecx, esi
call fcn.0041ba50
test eax, eax
je 0x45c7c2
push 8
push str.device_
push eax
call fcn.0055cb37
add esp, 0xc
test eax, eax
jne 0x45c7c2
push 8
push 0x5ec0b0
mov ecx, esi
call fcn.0041ba50
push eax
call fcn.0055cb37
add esp, 0xc
test eax, eax
jne 0x45c7f7
push 8
push 0x5c
mov ecx, esi
call fcn.00433c80
cmp eax, 0xffffffff
sete al
jmp 0x45c7d6
mov ecx, esi
call fcn.0041ba50
push eax
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
setne al
test al, al
je 0x45c7f7
push 0x5c
mov ecx, esi
call fcn.00433cd0
push esi
call fcn.0043cf00
add esp, 4
mov dword [edi], eax
mov byte [esi + 0x18], 1
jmp 0x45c910
mov ecx, esi
call fcn.0041ba50
test eax, eax
je 0x45c852
push 8
push str.device_
push eax
call fcn.0055cb37
add esp, 0xc
test eax, eax
jne 0x45c852
mov ecx, esi
call fcn.0041ba50
push ebx
push edi
lea ecx, [ebp - 0x274]
push ecx
push eax
call fcn.00446030
mov ecx, eax
call fcn.00453270
test eax, eax
jne 0x45c8d8
or eax, dword [ebp - 0x274]
mov ecx, dword [ebp - 0x270]
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], ecx
jmp 0x45c8d8
lea eax, [ebp - 0x264]
mov ecx, esi
push eax
call fcn.0041ba50
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov edx, eax
mov dword [ebp - method.Utils::ResourceHolders::resource_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__struct_Utils::ResourceHolders::puredrop_and_illhnd_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__.virtual_0], vtable.Utils::ResourceHolders::resource_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__struct_Utils::ResourceHolders::puredrop_and_illhnd_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__.0
mov dword [ebp - 0x270], edx
mov byte [ebp - 4], 2
mov dword [ebp - 0x274], 0x5bfe84
mov byte [ebp - 4], 3
cmp edx, 0xffffffff
je 0x45c8b4
mov ecx, dword [ebp - 0x248]
xor eax, eax
or eax, dword [ebp - 0x244]
mov dword [esi + 0x28], eax
mov eax, dword [ebp - 0x264]
mov dword [edi], eax
mov eax, dword [ebp - 0x240]
mov dword [esi + 0x2c], ecx
mov dword [ebx], eax
mov byte [ebp - 4], 1
mov dword [ebp - method.Utils::ResourceHolders::resource_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__struct_Utils::ResourceHolders::puredrop_and_illhnd_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__.virtual_0], vtable.Utils::ResourceHolders::resource_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__struct_Utils::ResourceHolders::puredrop_and_illhnd_t_void___struct_Utils::ResourceHolders::fnh_dtor_t__.0
cmp edx, 0xffffffff
je 0x45c8ce
push edx
call dword [sym.imp.KERNEL32.dll_FindClose]
mov dword [ebp - 0x270], 0xffffffff
mov eax, dword [edi]
cmp eax, 0xffffffff
je 0x45c8e7
test al, 0x10
je 0x45c8e7
mov byte [esi + 0x18], 1
cmp byte [ebp - 0x265], 0
je 0x45c8f6
mov byte [esi + 0x18], 1
jmp 0x45c8fc
cmp byte [esi + 0x18], 0
je 0x45c910
mov ecx, esi
call fcn.0041bbd0
test eax, eax
je 0x45c910
push 0x5c
mov ecx, esi
call fcn.00433cd0
push 0x250
lea ecx, [esi + 0x34]
push 0
push ecx
call fcn.00551fd0
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.005395e6
mov esp, ebp
pop ebp
ret 4