Function at 0x140041ec0
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x490
mov rax, qword [0x140173240]
xor rax, rsp
mov qword [rsp + 0x480], rax
mov eax, dword [0x140129468]
mov dword [rsp + 0x1b0], eax
lea rax, [rsp + 0x1b4]
mov rdi, rax
xor eax, eax
mov ecx, 0xc4
rep stosb byte [rdi], al
lea rdx, [rsp + 0x1b0]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_GetLogicalDriveStringsW]
mov dword [rsp + 0x80], eax
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140u.dll_Ordinal_296]
nop
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140u.dll_CMFCToolBar::DrawButton]
nop
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0x48], rax
jmp 0x140041f8e
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x60], 0xffffffffffffffff
inc qword [rsp + 0x60]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x60]
cmp word [rax + rcx*2], 0
jne 0x140041f61
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x48]
lea rax, [rcx + rax*2 + 2]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
test eax, eax
je 0x140042339
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov dword [rsp + 0x68], eax
mov rax, qword [rsp + 0x48]
lea rcx, [0x140129470]
sub rcx, rax
movzx edx, word [rax]
cmp dx, word [rax + rcx]
jne 0x140041fe2
add rax, 2
test dx, dx
jne 0x140041fcc
xor eax, eax
jmp 0x140041fe7
sbb eax, eax
or eax, 1
test eax, eax
je 0x140042047
mov rax, qword [rsp + 0x48]
lea rcx, [0x140129570]
sub rcx, rax
movzx edx, word [rax]
cmp dx, word [rax + rcx]
jne 0x140042010
add rax, 2
test dx, dx
jne 0x140041ffa
xor eax, eax
jmp 0x140042015
sbb eax, eax
or eax, 1
test eax, eax
je 0x140042047
mov rax, qword [rsp + 0x48]
lea rcx, [0x140129578]
sub rcx, rax
movzx edx, word [rax]
cmp dx, word [rax + rcx]
jne 0x14004203e
add rax, 2
test dx, dx
jne 0x140042028
xor eax, eax
jmp 0x140042043
sbb eax, eax
or eax, 1
test eax, eax
jne 0x14004204c
jmp 0x140041f4b
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140u.dll_CMFCControlRendererInfo::CMFCControlRendererInfo]
mov eax, dword [0x140129580]
mov dword [rsp + 0x140], eax
lea rax, [rsp + 0x144]
mov rdi, rax
xor eax, eax
mov ecx, 0x60
rep stosb byte [rdi], al
mov dword [rsp + 0x38], 0xa
lea rax, [rsp + 0x140]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x84]
mov r8d, 0xff
lea rdx, [rsp + 0x280]
mov rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationW]
lea rdx, [rsp + 0x140]
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__5]
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CPngImage::LoadFromBuffer]
nop
lea rdx, str.fat32
lea rcx, [rsp + 0x58]
call fcn.140042ca0
movzx eax, al
test eax, eax
je 0x14004213e
lea rdx, str.fat64
lea rcx, [rsp + 0x58]
call fcn.140042ca0
movzx eax, al
test eax, eax
je 0x14004213e
lea rdx, [0x140129568]
lea rcx, [rsp + 0x58]
call fcn.140042ca0
movzx eax, al
test eax, eax
je 0x14004213e
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
nop
jmp 0x140041f4b
lea rax, [rsp + 0x70]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea r8, [rsp + 0x70]
mov rax, qword [rsp + 0x48]
movzx edx, word [rax]
mov rcx, qword [rsp + 0x4a0]
call fcn.1400340c0
lea rdx, [rsp + 0x78]
mov rcx, qword [rsp + 0x4a8]
call fcn.14001f260
nop
lea r8, [rsp + 0x74]
lea rdx, [rsp + 0xf0]
mov rcx, qword [rsp + 0x4a8]
call fcn.14001f210
mov rax, qword [rax]
mov qword [rsp + 0x78], rax
lea rdx, [rsp + 0xf8]
mov rcx, qword [rsp + 0x4a8]
call fcn.14001f260
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.14001f1b0
movzx eax, al
test eax, eax
je 0x1400422b5
lea rax, [rsp + 0x100]
mov qword [rsp + 0x98], rax
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x98]
call qword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xa8], rax
mov rdx, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0x4a0]
call fcn.14003cf50
movzx eax, al
test eax, eax
je 0x1400422b3
lea rcx, [rsp + 0xd8]
call fcn.1400423e0
nop
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0xd8]
call fcn.1400424d0
nop
lea r8, [rsp + 0xd8]
lea rdx, [rsp + 0x74]
lea rcx, [rsp + 0x120]
call fcn.140043410
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rax
mov r8, qword [rsp + 0xb8]
lea rdx, [rsp + 0x110]
mov rcx, qword [rsp + 0x4a8]
call fcn.140043470
nop
lea rcx, [rsp + 0x120]
call fcn.14002bd50
nop
lea rcx, [rsp + 0xd8]
call fcn.14001fa70
nop
jmp 0x140042328
lea rax, [rsp + 0x108]
mov qword [rsp + 0xc0], rax
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0xc0]
call qword [sym.imp.mfc140u.dll_ATL::CStringT_wchar_t_StrTraitMFC_DLL_wchar_t_ATL::ChTraitsCRT_wchar_t__2]
mov qword [rsp + 0xc8], rax
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0xd0], rax
mov rdx, qword [rsp + 0xd0]
mov rcx, qword [rsp + 0x4a0]
call fcn.14003cf50
movzx eax, al
test eax, eax
je 0x140042328
lea rcx, [rsp + 0x78]
call fcn.14001f1f0
add rax, 8
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.1400424d0
nop
lea rcx, [rsp + 0x58]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
nop
jmp 0x140041f4b
mov byte [rsp + 0x40], 1
lea rcx, [rsp + 0x50]
call qword [sym.imp.mfc140u.dll_CMFCRibbonInfo::XElementButtonGallery::XGalleryGroup::XGalleryGroup]
movzx eax, byte [rsp + 0x40]
mov rcx, qword [rsp + 0x480]
xor rcx, rsp
call fcn.140100c60
add rsp, 0x490
pop rdi
ret