Function at 0x140080c3c
Capabilities:
Get file system object information

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x908]
sub rsp, 0x9d0
mov qword [rbp - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x8c0], rax
mov rsi, rdx
mov r15, rcx
mov qword [rbp - 0x68], rcx
xor r12d, r12d
mov ebx, r12d
lea eax, [r12 + 2]
cmp word [0x140184918], r12w
cmove ebx, eax
cmp word [0x14018491a], r12w
jne 0x140080ca2
or ebx, 4
mov edi, 1
cmp word [0x14018491c], r12w
jne 0x140080cb3
or ebx, edi
cmp word [0x14018491e], r12w
jne 0x140080cc1
bts ebx, 0xa
cmp word [0x140184920], r12w
jne 0x140080ccf
bts ebx, 9
cmp word [0x140184922], r12w
jne 0x140080cdd
bts ebx, 0xb
cmp word [0x140184924], r12w
jne 0x140080ceb
bts ebx, 0xe
cmp word [0x140184926], r12w
jne 0x140080cf9
bts ebx, 8
cmp word [0x140184928], r12w
jne 0x140080d07
bts ebx, 0xc
cmp word [0x14018492a], r12w
jne 0x140080d15
bts ebx, 0x10
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x50], r12
mov byte [rsp + 0x33], r12b
mov byte [rsp + 0x32], r12b
mov byte [rsp + 0x31], r12b
mov r14d, 0x104e0
lea rcx, [rsp + 0x68]
call qword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
test eax, eax
jne 0x140081318
mov rcx, rsi
call fcn.140038cd8
test al, al
je 0x140080d7e
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
lea r8, [rsp + 0x40]
lea rdx, [0x140111578]
call qword [rax]
mov byte [rsp + 0x33], dil
mov r14d, 0x820
jmp 0x140080e1b
mov rcx, rsi
call fcn.140038c40
test al, al
je 0x140080d95
mov byte [rsp + 0x32], dil
mov r14d, WSAAsyncSelect
mov rcx, rsi
call fcn.140038d70
mov byte [rsp + 0x31], al
xor r12d, r12d
test al, al
jne 0x140080df1
mov qword [rbp + 0xd0], r12
xor edx, edx
mov r8d, 0x2b0
lea rcx, [rbp + 0xd8]
call sub.msvcrt.dll_memset
mov dword [rsp + 0x20], 0x808
mov r9d, 0x2b8
lea r8, [rbp + 0xd0]
or edx, 0xffffffff
mov rcx, qword [rsi]
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp dword [rbp + 0xdc], r12d
je 0x140081318
mov rcx, qword [rsp + 0x68]
mov rax, qword [rcx]
lea rdx, [rsp + 0x40]
mov qword [rsp + 0x20], rdx
lea r9, [0x140111578]
xor r8d, r8d
mov rdx, qword [rsi]
call qword [rax + 0x28]
test eax, eax
jne 0x140081318
mov rax, qword [0x1401847b0]
mov rcx, qword [rsp + 0x40]
mov r10, qword [rcx]
lea r9, [rsp + 0x50]
mov r8d, r14d
mov rdx, qword [rax + 8]
call qword [r10 + 0x20]
test eax, eax
jne 0x140081318
movups xmm0, xmmword [0x1401058b8]
movups xmmword [rbp + 0x3a8], xmm0
mov eax, dword [reloc.OLEAUT32.dll_VariantTimeToDosDateTime]
mov dword [rbp + 0x3b8], eax
movups xmm0, xmmword [0x140105888]
movups xmmword [rbp + 0x390], xmm0
mov eax, dword [reloc.WS2_32.dll_ntohl]
mov dword [rbp + 0x3a0], eax
lea rcx, [r15 + 0x18]
mov rax, qword [rcx]
mov r8, qword [rcx + 0x10]
xor edx, edx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea r14, [r15 + 0x50]
mov rax, qword [r14]
mov r8, qword [r14 + 0x10]
xor edx, edx
mov rcx, r14
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov dword [r15 + 0x80], r12d
lea r13, [r15 + 0x78]
mov qword [rsp + 0x60], r13
mov rdx, qword [r13]
mov rcx, qword [rsi]
call qword [sym.imp.SHELL32.dll_ILIsEqual]
test eax, eax
jne 0x140080ee2
mov rcx, qword [r13]
mov rsi, qword [rsi]
cmp rcx, rsi
je 0x140080ee2
test rcx, rcx
je 0x140080ed1
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [r13], r12
mov rcx, rsi
call qword [sym.imp.SHELL32.dll_ILClone]
mov qword [r13], rax
xor ecx, ecx
call fcn.1400ed5d0
mov edx, 0xffffffe
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetIconOverlayIndexW]
mov dword [rsp + 0x58], eax
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov qword [rsp + 0x38], r12
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
xor r9d, r9d
lea r8, [rsp + 0x38]
mov edx, edi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
jne 0x1400812c2
mov r15, qword [rsp + 0x60]
lea rcx, [rbp + 0x3d0]
call fcn.140035978
nop
mov dword [rsp + 0x48], 0x78c5417b
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea r9, [rsp + 0x48]
lea r8, [rsp + 0x38]
mov edx, edi
call qword [rax + 0x48]
mov esi, dword [rsp + 0x48]
mov dword [rbp + 0x6a0], esi
mov eax, esi
and eax, 0x68400000
cmp eax, 0x68400000
sete r12b
mov byte [rsp + 0x30], r12b
mov eax, esi
shr eax, 0x1e
and al, dil
shr esi, 0x1d
and sil, dil
je 0x140080f90
test al, al
jne 0x140080f90
mov r13b, dil
jmp 0x140080f93
xor r13b, r13b
and dword [rbp + 0xd0], 0
xor edx, edx
mov r8d, 0x24c
lea rcx, [rbp + 0xd4]
call sub.msvcrt.dll_memset
cmp byte [rsp + 0x33], 0
jne 0x140081017
cmp byte [rsp + 0x32], 0
jne 0x140081017
mov dword [rsp + 0x20], 0x250
lea r9, [rbp + 0xd0]
mov r8d, edi
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x40]
call qword [sym.imp.SHELL32.dll_SHGetDataFromIDListW]
test eax, eax
jne 0x140081017
test dword [rbp + 0xd0], ebx
je 0x140080fff
lea rcx, [rbp + 0x3d0]
call fcn.140035a2c
nop
xor r12d, r12d
jmp 0x14008128c
lea rdx, [rbp + 0xd0]
lea rcx, [rbp + 0x3d0]
call fcn.1400690bc
jmp 0x140081179
test r12b, r12b
je 0x140081024
mov r8d, 0x8001
jmp 0x140081037
test r13b, r13b
jne 0x140081034
test sil, sil
mov r8d, 0x8001
je 0x140081037
mov r8d, edi
or r12, 0xffffffffffffffff
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea r9, [rbp - 0x40]
mov rdx, qword [rsp + 0x38]
call qword [rax + reloc.SHELL32.dll_SHDoDragDrop]
mov r9d, 0x104
lea r8, [rbp + 0x6b0]
mov rdx, qword [rsp + 0x38]
lea rcx, [rbp - 0x40]
call qword [sym.imp.SHLWAPI.dll_StrRetToBufW]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea r9, [rbp - 0x60]
lea r8, [rbp + 0x3a8]
mov rdx, qword [rsp + 0x38]
call qword [rax + 0x88]
xor eax, eax
cmp word [rbp - 0x60], 0x15
cmove rax, qword [rbp - 0x58]
mov qword [rbp - 0x80], rax
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea r9, [rbp - 0x60]
lea r8, [rbp + 0x390]
mov rdx, qword [rsp + 0x38]
call qword [rax + 0x88]
cmp word [rbp - 0x60], 7
jne 0x140081115
lea rdx, [rbp + 0x3c0]
movsd xmm0, qword [rbp - 0x58]
call qword [sym.imp.OLEAUT32.dll_UnRegisterTypeLib]
lea rdx, [rsp + 0x78]
lea rcx, [rbp + 0x3c0]
call qword [sym.imp.KERNEL32.DLL_SystemTimeToFileTime]
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x70], eax
mov eax, dword [rsp + 0x7c]
mov dword [rsp + 0x74], eax
movabs rax, 0xd6bf94d5e57a42bd
mul qword [rsp + 0x70]
mov r12, rdx
shr r12, 0x17
movabs rax, 0x2b6109100
sub r12, rax
test r13b, r13b
jne 0x14008111f
test sil, sil
je 0x14008112b
cmp byte [rsp + 0x30], 0
mov byte [rsp + 0x30], dil
je 0x140081130
mov byte [rsp + 0x30], 0
or r8d, 0xffffffff
lea rdx, [rbp + 0x6b0]
lea rcx, [rbp - 0x78]
call fcn.1400e6fc8
nop
mov al, byte [rsp + 0x30]
mov byte [rsp + 0x20], al
mov r9, qword [rbp - 0x80]
mov r8, r12
lea rdx, [rbp - 0x78]
lea rcx, [rbp + 0x3d0]
call fcn.140068fec
nop
lea rax, vtable.micro::utils::QString.0
mov qword [rbp - 0x78], rax
lea rcx, [rbp - 0x78]
call fcn.1400e712c
mov eax, dword [rbp + 0x3d8]
shr eax, 0xa
test dil, al
jne 0x1400811a3
mov rcx, qword [rbp + 0x650]
test rcx, rcx
je 0x1400811b2
lea rdx, [0x140111540]
call sub.msvcrt.dll_wcscmp
test eax, eax
jne 0x1400811b2
mov eax, dword [rsp + 0x58]
shl eax, 8
or eax, edi
mov dword [rbp + 0x6a4], eax
mov al, byte [rsp + 0x48]
and al, dil
mov byte [rbp + 0x6ac], al
lea r8, [rsp + 0x38]
lea rdx, [rsp + 0x60]
mov rcx, r15
call fcn.140038bf4
mov r12, qword [rax]
mov rcx, qword [rbp + 0x658]
cmp rcx, r12
je 0x140081203
test rcx, rcx
je 0x1400811eb
call qword [sym.imp.ole32.dll_CoTaskMemFree]
and qword [rbp + 0x658], 0
mov rcx, r12
call qword [sym.imp.SHELL32.dll_ILClone]
mov qword [rbp + 0x658], rax
mov rcx, qword [rsp + 0x60]
xor r12d, r12d
test rcx, rcx
je 0x140081216
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x60], r12
test r13b, r13b
jne 0x14008122e
test sil, sil
jne 0x14008122e
or dword [rbp + 0x6a8], 0xffffffff
jmp 0x140081240
lea rcx, [rbp + 0x658]
call fcn.1400ee9d0
mov dword [rbp + 0x6a8], eax
mov ecx, 0x2e0
call qword [sym.imp.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__]
test rax, rax
je 0x140081264
lea rdx, [rbp + 0x3d0]
mov rcx, rax
call fcn.140037394
mov rsi, rax
jmp 0x140081267
mov rsi, r12
mov rcx, r14
call fcn.140005788
mov rcx, qword [r14 + 0x10]
mov rax, qword [r14 + 0x20]
mov qword [rax + rcx*8], rsi
add qword [r14 + 0x10], rdi
lea rcx, [rbp + 0x3d0]
call fcn.140035a2c
nop
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x14008129c
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rsp + 0x38], r12
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
xor r9d, r9d
lea r8, [rsp + 0x38]
mov edx, edi
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetElement]
test eax, eax
je 0x140080f2c
mov r15, qword [rbp - 0x68]
mov rcx, qword [rsp + 0x38]
test rcx, rcx
je 0x1400812d2
call qword [sym.imp.ole32.dll_CoTaskMemFree]
cmp qword [r15 + 0x60], r12
je 0x140081300
mov qword [rsp + 0x20], r15
mov r8d, dword [r14 + 0x10]
xor edx, edx
mov rcx, r14
cmp byte [rsp + 0x31], r12b
lea r9, [0x140062128]
jne 0x1400812fb
lea r9, [0x140061fe8]
call fcn.14003725c
mov rax, qword [r15]
xor edx, edx
mov rcx, r15
call qword [rax + 0x148]
mov rcx, r15
call fcn.140081960
jmp 0x14008131b
mov dil, r12b
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x140081330
mov rax, qword [rcx]
call qword [rax + reloc.SHELL32.dll_ILFindLastID]
mov qword [rsp + 0x50], r12
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x140081345
mov rdx, qword [rcx]
call qword [rdx + reloc.SHELL32.dll_ILFindLastID]
mov qword [rsp + 0x40], r12
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x140081355
mov rdx, qword [rcx]
call qword [rdx + reloc.SHELL32.dll_ILFindLastID]
mov al, dil
mov rcx, qword [rbp + 0x8c0]
xor rcx, rsp
call fcn.140001010
mov rbx, qword [rsp + 0xa20]
add rsp, 0x9d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret