Function at 0x14009f700
Capabilities:
Get file system object information

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x2f0]
sub rsp, 0x3f0
mov rdi, qword [rdx]
xorps xmm0, xmm0
add rdi, 0x60
mov r14, rdx
movdqu xmmword [rbp - 0x80], xmm0
mov r15, rcx
cmp qword [rdi + 0x18], 8
mov rsi, qword [rdi + 0x10]
jb 0x14009f73e
mov rdi, qword [rdi]
lea rcx, [rsp + 0x70]
cmp rsi, 8
jae 0x14009f75b
movups xmm0, xmmword [rdi]
mov qword [rbp - 0x78], 7
movups xmmword [rsp + 0x70], xmm0
jmp 0x14009f7a7
movabs rax, 0x7ffffffffffffffe
mov rbx, rsi
or rbx, 7
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
call fcn.1400035a0
lea r8, [rsi*2 + 2]
mov qword [rsp + 0x70], rax
mov rdx, rdi
mov rcx, rax
call sub.msvcrt.dll_memcpy
cmp rbx, 8
mov qword [rbp - 0x78], rbx
lea rcx, [rsp + 0x70]
cmovae rcx, qword [rsp + 0x70]
mov qword [rbp - 0x80], rsi
call qword [sym.imp.SHELL32.dll_ILCreateFromPathW]
mov rbx, rax
test rax, rax
je 0x14009f96f
mov r9d, 0x2b8
mov dword [rsp + 0x20], 0x4008
lea r8, [rbp + 0x30]
xor edx, edx
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov rcx, rbx
call qword [sym.imp.SHELL32.dll_ILFree]
call fcn.1400a5c60
mov ecx, dword [rbp + 0x38]
cmp ecx, eax
jne 0x14009f810
mov rcx, qword [r14]
lea rdx, str.dir
add rcx, 0x98
mov r8d, 4
call fcn.140003280
jmp 0x14009f96d
test ecx, ecx
js 0x14009f96d
mov rdx, qword [r14]
lea rcx, [rsp + 0x50]
add rdx, 0x60
call fcn.140001620
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x30]
movdqa xmm0, xmmword [0x1401f8bd0]
xor r14d, r14d
add rdx, 3
mov word [rsp + 0x30], r14w
movdqu xmmword [rsp + 0x40], xmm0
call fcn.14000ec30
lea r8d, [r14 + 3]
lea rdx, [0x1401ccd48]
lea rcx, [rsp + 0x30]
call fcn.140002740
cmp qword [rsp + 0x68], 8
lea rdx, [rsp + 0x50]
mov r8, qword [rsp + 0x60]
lea rcx, [rsp + 0x30]
cmovae rdx, qword [rsp + 0x50]
call fcn.140002740
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x60]
call fcn.14000ab30
cmp qword [rbp - 0x60], r14
je 0x14009f9ca
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x14009f8d5
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14009f8d5
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
sub ebx, 1
jne 0x14009f8d5
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14009f917
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f912
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fd47
call fcn.14017b7ac
mov rdx, qword [rsp + 0x68]
movdqa xmm0, xmmword [0x1401f8bd0]
mov word [rsp + 0x30], r14w
movdqu xmmword [rsp + 0x40], xmm0
cmp rdx, 8
jb 0x14009f96d
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f968
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fd47
call fcn.14017b7ac
mov bl, 1
mov rdx, qword [rbp - 0x78]
cmp rdx, 8
jb 0x14009f9b0
mov rcx, qword [rsp + 0x70]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f9ab
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fd4d
call fcn.14017b7ac
movzx eax, bl
mov rbx, qword [rsp + 0x420]
add rsp, 0x3f0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov rcx, qword [r15 + 0x3c0]
lea r9, [rbp + 0x328]
mov edx, dword [rbp + 0x38]
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rax, qword gs:[0x58]
mov ecx, dword [0x14022faf0]
mov edx, InitCommonControls
mov rcx, qword [rax + rcx*8]
mov eax, dword [rdx + rcx]
cmp dword [0x14022f368], eax
jg 0x14009fcff
lea r8, [0x14022f350]
mov edx, 0x1000
lea rcx, [0x14022f350]
call fcn.14007a820
mov rax, qword [0x14022f350]
lea rdx, [rbp + 0x10]
mov rcx, qword [rbp + 0x328]
mov qword [rbp + 0x20], rax
call fcn.14007e070
lea r8, [rsp + 0x30]
mov qword [rbp + 0x330], rax
lea rdx, [rbp + 0x330]
lea rcx, [rbp + 0x338]
call fcn.140003880
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.14009c070
mov rbx, qword [rbp + 0x338]
test rbx, rbx
je 0x14009fa8d
mov rcx, rbx
call fcn.140003750
mov edx, 0x50
mov rcx, rbx
call fcn.14017b7ac
lea rdx, [rbp - 0x70]
lea rcx, [rbp]
call fcn.14000ad80
mov rdi, qword [rbp + 8]
mov ebx, 0xffffffff
mov rsi, qword [rax]
test rdi, rdi
je 0x14009fad4
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14009fad4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14009fad4
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
test rsi, rsi
je 0x14009fbd9
movdqa xmm0, xmmword [0x1401f8bd0]
lea rdx, [rsp + 0x50]
cmp qword [rsp + 0x68], 8
lea rcx, [rbp - 0x50]
mov r8, qword [rsp + 0x60]
xorps xmm1, xmm1
cmovae rdx, qword [rsp + 0x50]
movdqa xmmword [rbp - 0x40], xmm0
xorps xmm0, xmm0
movdqa xmmword [rbp - 0x30], xmm0
movdqa xmmword [rbp - 0x10], xmm0
mov word [rbp - 0x50], r14w
movdqa xmmword [rbp - 0x20], xmm1
call fcn.140003280
mov rcx, qword [rbp - 0x68]
test rcx, rcx
je 0x14009fb34
lock inc dword [rcx + 8]
mov rcx, qword [rbp - 0x68]
mov rdi, qword [rbp - 0x28]
mov rax, qword [rbp - 0x70]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rcx
test rdi, rdi
je 0x14009fb72
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14009fb72
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14009fb72
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
lea rcx, [r15 + 0x3c8]
lea rdx, [rsp + 0x50]
call fcn.14007ad10
mov rdi, rax
lea rax, [rbp - 0x50]
cmp rdi, rax
je 0x14009fba9
cmp qword [rbp - 0x38], 8
lea rdx, [rbp - 0x50]
mov r8, qword [rbp - 0x40]
mov rcx, rdi
cmovae rdx, qword [rbp - 0x50]
call fcn.140003280
lea rcx, [rdi + 0x20]
lea rdx, [rbp - 0x30]
call fcn.140037950
lea rcx, [rdi + 0x30]
lea rdx, [rbp - 0x20]
call fcn.140037950
lea rcx, [rdi + 0x40]
lea rdx, [rbp - 0x10]
call fcn.140037950
lea rcx, [rbp - 0x50]
call fcn.14007ac40
mov rcx, qword [rbp + 0x328]
test rcx, rcx
je 0x14009fbeb
call qword [sym.imp.USER32.dll_DestroyIcon]
mov rdi, qword [rbp - 0x68]
test rdi, rdi
je 0x14009fc1d
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14009fc1d
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
mov eax, ebx
lock xadd dword [rdi + 0xc], eax
cmp eax, 1
jne 0x14009fc1d
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rcx, qword [rbp + 0x330]
test rcx, rcx
je 0x14009fc33
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov rdi, qword [rbp - 0x58]
test rdi, rdi
je 0x14009fc63
mov eax, ebx
lock xadd dword [rdi + 8], eax
cmp eax, 1
jne 0x14009fc63
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax]
lock xadd dword [rdi + 0xc], ebx
sub ebx, 1
jne 0x14009fc63
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 8]
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x14009fca5
mov rcx, qword [rsp + 0x30]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009fca0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fd47
call fcn.14017b7ac
mov rdx, qword [rsp + 0x68]
movdqa xmm0, xmmword [0x1401f8bd0]
mov word [rsp + 0x30], r14w
movdqu xmmword [rsp + 0x40], xmm0
cmp rdx, 8
jb 0x14009f96d
mov rcx, qword [rsp + 0x50]
lea rdx, [rdx*2 + 2]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14009f968
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14009fd47
jmp 0x14009f968
lea rcx, [0x14022f368]
call fcn.14017bc80
cmp dword [0x14022f368], 0xffffffff
jne 0x14009fa0e
xorps xmm0, xmm0
mov qword [0x14022f360], r14
lea rcx, [0x1401ca320]
movdqu xmmword [0x14022f350], xmm0
call fcn.14017ba50
lea rcx, [0x14022f368]
call fcn.14017bc20
jmp 0x14009fa0e
call fcn.1401b08a0
int3
call fcn.1401b08a0
int3