Function at 0x47868c
Capabilities:
Get common file path
Get file system object information

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x3e0
mov qword [rsp + 0xb0], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov rsi, rcx
xor r15d, r15d
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], r15
mov qword [rsp + 0x50], r15
mov rbx, qword [0x00862dd8]
lea rdi, [rbx + 0xa0]
mov qword [rax + 8], rdi
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rdx, [rbx + 0xc8]
lea rcx, [rsp + 0x40]
call fcn.0047cfc8
nop
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
lea rdx, [rsp + 0x40]
lea rcx, [rsi + 0x200]
call fcn.004a5478
mov r9, qword [rsi + 0x230]
xor r8d, r8d
mov edx, 0x1109
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
xor r8d, r8d
lea edx, [r15 + 0xb]
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
xor r9d, r9d
mov edx, 0x110a
lea r8d, [r15 + 9]
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov r13, rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0xa8], rax
mov word [rsp + 0x60], r15w
mov r12b, r15b
cmp r13, r15
je 0x47883c
mov r8, r13
lea rdx, [rsp + 0xb8]
mov rcx, rsi
call fcn.00478c0c
nop
lea rcx, [rsp + 0x60]
cmp rax, rcx
je 0x4787b7
mov r8, qword [rax + 0x40]
mov rdx, qword [rax + 0x48]
lea rcx, [rsp + 0x60]
call fcn.00406d38
nop
lea rax, [rsp + 0xb8]
mov rcx, qword [rsp + 0x100]
cmp rcx, rax
je 0x4787f8
cmp rcx, r15
je 0x4787f8
mov rax, qword [rsp + 0xb8]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, 0x100
jbe 0x4787f3
call fcn.006a4944
jmp 0x4787f8
call fcn.006a3610
mov qword [rsp + 0xc0], r13
mov dword [rsp + 0xb8], 0x18
lea r9, [rsp + 0xb8]
xor r8d, r8d
mov edx, 0x113e
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
cmp eax, r15d
je 0x478839
test byte [rsp + 0xc8], 0x20
je 0x478839
mov r12b, 1
jmp 0x47883c
mov r12b, r15b
lea rcx, [rsi + 0x1c0]
call fcn.00477fc4
mov rdi, 0xffffffffffff0000
mov r9, rdi
xor r8d, r8d
mov edx, 0x1101
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
mov qword [rsi + 0x108], r15
mov qword [rsi + 0x100], r15
mov qword [rsi + 0x110], r15
lea rdx, [rsi + 0xb0]
mov rax, qword [rdx + 0x48]
cmp rax, qword [rdx + 0x40]
jne 0x478b6c
cmp byte [rsi + 0x118], r15b
je 0x4789f2
mov ecx, 0xb0
call fcn.006a494c
mov rbx, rax
cmp rax, r15
je 0x4788e1
mov qword [rax + 0x40], rax
mov qword [rax + 0x48], rax
mov rax, qword [rax + 0x40]
mov word [rax], r15w
lea rax, [rbx + 0x50]
mov qword [rax + 0x40], rax
mov qword [rax + 0x48], rax
mov rax, qword [rax + 0x40]
mov word [rax], r15w
mov qword [rbx + 0xa0], r15
mov byte [rbx + 0xa8], r15b
jmp 0x4788e4
mov rbx, r15
mov byte [rbx + 0xa8], r15b
mov edi, r15d
mov ebp, r15d
lea r8, [rsp + 0x410]
mov edx, reloc.WS2_32.dll_recvfrom
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, r15d
jl 0x4789bb
mov dword [rsp + 0x20], 0x208
mov r9d, 0x2b8
lea r8, [rsp + 0x110]
xor edx, edx
mov rcx, qword [rsp + 0x410]
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp rax, r15
je 0x478967
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x120]
repne scasw ax, word [rdi]
not rcx
lea r8, [rsp + rcx*2 + 0x11e]
lea rcx, [rbx + 0x50]
lea rdx, [rsp + 0x120]
call fcn.00406d38
xor r8d, r8d
mov rdx, qword [rsp + 0x410]
lea rcx, [rsi + 0x200]
call fcn.004a5890
mov edi, eax
mov r8b, 1
mov rdx, qword [rsp + 0x410]
lea rcx, [rsi + 0x200]
call fcn.004a5890
mov ebp, eax
mov rcx, qword [rsi + 0x1a8]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x410]
call qword [rax + 0x28]
mov rcx, qword [rsi + 0x1a8]
mov rdx, qword [rcx]
call qword [rdx + reloc.WS2_32.dll_recv]
mov byte [rsp + 0x30], r15b
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov r8, rbx
mov rdi, 0xffffffffffff0000
mov rdx, rdi
mov rcx, rsi
call fcn.00478e6c
mov qword [rsi + 0x108], rax
mov rdx, rax
mov rcx, rsi
call fcn.0047cad0
cmp byte [rsi + 0x118], r15b
jne 0x478a09
xor r8d, r8d
mov rdx, rdi
mov rcx, rsi
call fcn.00479194
cmp byte [rsi + 0x13d], r15b
je 0x478b7a
mov ecx, 0xb0
call fcn.006a494c
mov rbx, rax
cmp rax, r15
je 0x478a5c
mov qword [rax + 0x40], rax
mov qword [rax + 0x48], rax
mov rax, qword [rax + 0x40]
mov word [rax], r15w
lea rax, [rbx + 0x50]
mov qword [rax + 0x40], rax
mov qword [rax + 0x48], rax
mov rax, qword [rax + 0x40]
mov word [rax], r15w
mov qword [rbx + 0xa0], r15
mov byte [rbx + 0xa8], r15b
jmp 0x478a5f
mov rbx, r15
mov byte [rbx + 0xa8], 1
mov edi, r15d
mov ebp, r15d
lea r8, [rsp + 0x410]
mov edx, reloc.WS2_32.dll_select
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
cmp eax, r15d
jl 0x478b36
mov dword [rsp + 0x20], 0x208
mov r9d, 0x2b8
lea r8, [rsp + 0x110]
xor edx, edx
mov rcx, qword [rsp + 0x410]
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
cmp rax, r15
je 0x478ae2
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x120]
repne scasw ax, word [rdi]
not rcx
lea r8, [rsp + rcx*2 + 0x11e]
lea rcx, [rbx + 0x50]
lea rdx, [rsp + 0x120]
call fcn.00406d38
xor r8d, r8d
mov rdx, qword [rsp + 0x410]
lea rcx, [rsi + 0x200]
call fcn.004a5890
mov edi, eax
mov r8b, 1
mov rdx, qword [rsp + 0x410]
lea rcx, [rsi + 0x200]
call fcn.004a5890
mov ebp, eax
mov rcx, qword [rsi + 0x1a8]
mov rax, qword [rcx]
mov rdx, qword [rsp + 0x410]
call qword [rax + 0x28]
mov rcx, qword [rsi + 0x1a8]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov byte [rsp + 0x30], r15b
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov r8, rbx
mov rdx, 0xffffffffffff0000
mov rcx, rsi
call fcn.00478e6c
mov qword [rsi + 0x100], rax
mov rdx, rax
mov rcx, rsi
call fcn.0047cad0
jmp 0x478b7a
xor r9d, r9d
mov r8, rdi
mov rcx, rsi
call fcn.004793ec
cmp r13, r15
je 0x478b8f
mov r8b, r12b
lea rdx, [rsp + 0x60]
mov rcx, rsi
call fcn.00479a0c
xor r9d, r9d
lea edx, [r9 + 0xb]
lea r8d, [r9 + 1]
mov rcx, qword [rsi + 8]
call qword [sym.imp.USER32.dll_SendMessageW]
nop
lea rax, [rsp + 0x60]
mov rcx, qword [rsp + 0xa8]
cmp rcx, rax
je 0x478be1
cmp rcx, r15
je 0x478be1
mov rax, qword [rsp + 0x60]
sub rax, rcx
sar rax, 1
lea rdx, [rax + rax]
cmp rdx, 0x100
jbe 0x478bdb
call fcn.006a4944
jmp 0x478be1
call fcn.006a3610
nop
lea rcx, [rsp + 0x40]
call fcn.00445244
lea r11, [rsp + 0x3e0]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret