Function at 0x6c80ed90
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x8c
mov eax, dword [eax + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6c82fe60
movzx edx, byte [eax]
mov esi, eax
cmp dl, 0xff
jne 0x6c80edc8
movzx edx, byte [eax + 7]
add esi, 7
test dl, dl
je 0x6c80eea8
movzx eax, dl
mov byte [ebp - 0x6c], dl
add eax, 0x40
mov dword [ebp - 0x4a], 0x3a
mov word [ebp - 0x4c], ax
lea eax, [ebp - 0x4c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
movzx edx, byte [ebp - 0x6c]
sub esp, 4
add edx, 0x40
cmp eax, 1
mov eax, 0x5b
cmova eax, edx
mov edx, dword [esi + 5]
mov byte [ebp - 0x5c], al
mov byte [ebp - 0x5b], 0x3a
mov eax, dword [esi + 1]
lea edi, [ebp - 0x5c]
mov dword [esp + 4], 0x20
mov dword [ebp - 0x56], edx
mov edx, dword [sym.imp.ucrtbase.dll_strchr]
mov dword [ebp - 0x5a], eax
mov eax, 0x20
mov word [ebp - 0x52], ax
lea eax, [ebp - 0x5a]
mov dword [esp], eax
mov dword [ebp - 0x6c], edx
call edx
mov byte [eax], 0x2e
movzx edx, word [esi + 9]
lea ecx, [eax + 1]
mov word [eax + 1], dx
movzx edx, byte [esi + 0xb]
mov byte [eax + 3], dl
mov edx, 0x20
mov word [eax + 4], dx
mov edx, dword [ebp - 0x6c]
mov dword [esp + 4], 0x20
mov dword [esp], ecx
call edx
mov byte [eax], 0
mov dword [esp + 4], 2
mov dword [esp], edi
call dword [sym.imp.kernel32.dll__lopen]
sub esp, 8
cmp eax, 0xffffffff
jne 0x6c80eeb8
mov esi, 0xff
test byte [0x6c8457b0], 8
jne 0x6c80ef10
mov eax, esi
mov byte [ebx + 0xb0], al
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
call fcn.6c80e860
add eax, 0x41
jmp 0x6c80ee05
mov dword [esp], eax
mov dword [ebp - 0x6c], eax
call sym.krnl386.exe16_Win32HandleToDosFileHandle
mov edx, dword [ebp - 0x6c]
sub esp, 4
cmp ax, 0xffff
je 0x6c80ef88
cmp ax, 0xff
jbe 0x6c80efc0
movzx esi, ax
test byte [0x6c8457b0], 8
jne 0x6c80ef50
mov dword [esp], esi
mov esi, 0xff
call sym.krnl386.exe16__lclose16
mov eax, esi
mov byte [ebx + 0xb0], al
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str._lopen___s___failed:_INVALID_HANDLE_VALUE_n
mov dword [esp + 8], str.INT21_OpenFileUsingFCB
mov dword [esp + 4], 0x6c8457b0
mov dword [esp], 3
call fcn.6c80d340
mov eax, esi
mov byte [ebx + 0xb0], al
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.hfile16___d__larger_than_255_for___s__n
mov dword [esp + 8], str.INT21_OpenFileUsingFCB
mov dword [esp + 4], 0x6c8457b0
mov dword [esp], 3
call fcn.6c80d340
jmp 0x6c80eee9
test byte [0x6c8457b0], 8
jne 0x6c80f030
mov esi, 0xff
mov dword [esp], edx
call dword [sym.imp.kernel32.dll_CloseHandle]
mov eax, esi
mov byte [ebx + 0xb0], al
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x4c]
mov dword [esp], edx
mov dword [ebp - 0x6c], edx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_GetFileInformationByHandle]
mov edx, dword [ebp - 0x6c]
sub esp, 8
test eax, eax
mov ecx, dword [ebp - 0x70]
jne 0x6c80f060
movzx esi, cx
test byte [0x6c8457b0], 8
je 0x6c80eee9
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], esi
mov dword [esp + 0xc], str.GetFileInformationByHandle__d___p__for___s__failed_n
mov dword [esp + 8], str.INT21_OpenFileUsingFCB
mov dword [esp + 4], 0x6c8457b0
mov dword [esp], 3
call fcn.6c80d340
jmp 0x6c80eee9
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], str.Win32HandleToDosFileHandle__p__failed:_HFILE_ERROR_n
mov dword [esp + 8], str.INT21_OpenFileUsingFCB
mov dword [esp + 4], 0x6c8457b0
mov dword [esp], 3
call fcn.6c80d340
mov edx, dword [ebp - 0x6c]
jmp 0x6c80ef95
movzx eax, byte [ebp - 0x5c]
mov dword [esi + 0xc], 0x800000
mov dword [ebp - 0x70], ecx
mov dword [ebp - 0x6c], edx
sub eax, 0x40
mov byte [esi], al
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x10], eax
lea eax, [esi + 0x16]
mov dword [esp + 8], eax
lea eax, [esi + 0x14]
mov dword [esp + 4], eax
lea eax, [ebp - 0x38]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FileTimeToDosDateTime]
mov ecx, dword [ebp - 0x70]
mov dword [esi + 0x19], 0xc2
mov byte [esi + 0x1d], 0
sub esp, 0xc
mov edx, dword [ebp - 0x6c]
mov byte [esi + 0x18], cl
mov eax, dword [ebp - 0x4c]
mov byte [esi + 0x1e], al
xor esi, esi
test byte [0x6c8457b0], 8
je 0x6c80ee95
movzx ecx, cx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.successful_opened_file___s__as__d__handle__p__n
mov dword [esp + 8], str.INT21_OpenFileUsingFCB
mov dword [esp + 4], 0x6c8457b0
mov dword [esp], 3
call fcn.6c80d340
jmp 0x6c80ee95