Function at 0x180025390
Capabilities:
Check if file exists
Get common file path

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x260
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x2a0], rbx
mov rax, qword [0x180066010]
xor rax, rsp
mov qword [rsp + 0x250], rax
mov ebp, edx
mov r14, rcx
mov qword [rsp + 0x38], rcx
call fcn.180007d00
mov rcx, rax
test rax, rax
je 0x1800256be
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
lea r15, [0x180058218]
mov rsi, 0xffffffffffffffff
cmp r15, 0x10000
jae 0x180025413
movzx edx, r15w
lea rcx, [rsp + 0x20]
call fcn.180008640
jmp 0x18002543c
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x180025420
mov r8d, eax
mov rdx, r15
lea rcx, [rsp + 0x20]
call fcn.1800078e0
nop
mov ecx, ebp
call fcn.1800256e0
mov edx, eax
mov r8, qword [0x180068210]
mov rax, r8
mov rcx, qword [r8 + 8]
cmp byte [rcx + 0x19], 0
jne 0x180025481
nop dword [rax]
cmp dword [rcx + 0x20], edx
jge 0x18002546b
mov rcx, qword [rcx + 0x10]
jmp 0x180025471
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x180025460
cmp rax, r8
je 0x180025481
cmp edx, dword [rax + 0x20]
jge 0x180025484
mov rax, r8
mov rbx, qword [rsp + 0x20]
cmp r8, rax
je 0x1800254eb
mov rdx, qword [rax + 0x28]
lea rcx, [rdx - 0x18]
lea rdi, [rbx - 0x18]
cmp rcx, rdi
je 0x1800254eb
cmp dword [rdi + 0x10], 0
jl 0x1800254d8
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x1800254d8
call fcn.180008460
mov rbx, rax
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x1800254cd
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
add rbx, 0x18
mov qword [rsp + 0x20], rbx
jmp 0x1800254eb
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.1800078e0
mov rbx, qword [rsp + 0x20]
cmp dword [rbx - 0x10], 0
jne 0x18002556b
call fcn.180007d00
mov rcx, rax
test rax, rax
je 0x1800256c9
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r14], rax
cmp r15, 0x10000
jae 0x180025526
movzx edx, r15w
mov rcx, r14
call fcn.180008640
jmp 0x18002554a
mov rax, rsi
nop dword [rax]
inc rax
cmp word [r15 + rax*2], 0
jne 0x180025530
mov r8d, eax
mov rdx, r15
mov rcx, r14
call fcn.1800078e0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180025689
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [r8 + 8]
jmp 0x180025689
mov ecx, ebp
call fcn.1800256e0
mov edi, eax
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x40]
call fcn.180026920
mov eax, 0x1a
mov r8d, 0x1c
cmp edi, 0x3f
cmovne r8d, eax
xor r9d, r9d
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov rdx, rbx
lea rcx, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
lea rcx, [rsp + 0x40]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1800255d2
lea rdx, [rsp + 0x40]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectory]
call fcn.180007d00
mov rcx, rax
test rax, rax
je 0x1800256b3
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
cmp rax, 0x10000
jae 0x180025613
lea rax, [rsp + 0x40]
movzx edx, ax
lea rcx, [rsp + 0x28]
call fcn.180008640
jmp 0x18002563d
lea rcx, [rsp + 0x40]
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x180025620
mov r8d, eax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x28]
call fcn.1800078e0
nop
mov rbx, qword [rsp + 0x28]
lea rcx, [rbx - 0x18]
call fcn.180008460
add rax, 0x18
mov qword [r14], rax
mov eax, esi
lock xadd dword [rbx - 8], eax
sub eax, 1
jg 0x18002566d
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + 8]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x180025689
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, r14
mov rcx, qword [rsp + 0x250]
xor rcx, rsp
call fcn.180012d60
mov rbx, qword [rsp + 0x2a0]
add rsp, 0x260
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80004005
call fcn.180007a90
nop
mov ecx, 0x80004005
call fcn.180007a90
nop
mov ecx, 0x80004005
call fcn.180007a90
int3