Function at 0x140028f60
Capabilities:
Check if file exists

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0x5b8]
sub rsp, 0x6a0
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x14012dcd0]
xor rax, rsp
mov qword [rbp + 0x590], rax
mov r15, rcx
mov rax, qword [rcx]
cmp dword [rax - 8], 1
jle 0x140028fb0
mov edx, dword [rax - 0x10]
call fcn.1400043b0
mov qword [rsp + 0x40], 0x100
lea rax, [rsp + 0x70]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], 0x104
lea rax, [rbp + 0x380]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x104
lea r9, [rbp + 0x170]
mov r8d, 3
lea rdx, [rsp + 0x68]
mov rcx, qword [r15]
call fcn.1400bc34c
call fcn.140004650
mov rdx, rax
xor esi, esi
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x14002901c
mov ecx, 0x80004005
call fcn.140003970
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x58], rbx
lea rcx, [rsp + 0x70]
lea rax, [rsp + 0x70]
or r14, 0xffffffffffffffff
test rax, 0xffffffffffff0000
jne 0x140029067
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.140002cd0
test rax, rax
je 0x140029091
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x58]
call fcn.1400050f0
jmp 0x14002908c
lea rcx, [rsp + 0x70]
mov rax, r14
nop
inc rax
cmp word [rcx + rax*2], 0
jne 0x140029070
mov r8d, eax
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x58]
call fcn.140007830
mov rbx, qword [rsp + 0x58]
movsxd rdi, dword [rbx - 0x10]
test edi, edi
jns 0x1400290a4
mov ecx, 0x80070057
call fcn.140003970
int3
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x1400290c6
mov edx, edi
lea rcx, [rsp + 0x58]
call fcn.140006230
mov rbx, qword [rsp + 0x58]
lea eax, [rdi + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.1400b7f00
cmp edi, dword [rbx - 0xc]
jg 0x1400293b7
mov dword [rbx - 0x10], edi
mov word [rbx + rdi*2], si
call fcn.140004650
mov rdx, rax
mov ecx, esi
test rax, rax
setne cl
test ecx, ecx
jne 0x140029103
mov ecx, 0x80004005
call fcn.140003970
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x68]
lea rax, [rsp + 0x68]
test rax, 0xffffffffffff0000
jne 0x14002914a
movzx edi, cx
xor edx, edx
mov ecx, edi
call fcn.140002cd0
test rax, rax
je 0x14002916f
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.1400050f0
jmp 0x14002916f
lea rcx, [rsp + 0x68]
mov rax, r14
inc rax
cmp word [rcx + rax*2], 0
jne 0x140029152
mov r8d, eax
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x50]
call fcn.140007830
nop
lea rcx, [rbp + 0x170]
mov rax, r14
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140029180
mov r8d, eax
lea rdx, [rbp + 0x170]
lea rcx, [rsp + 0x50]
call fcn.1400127c0
lea rcx, [rbp + 0x380]
mov rax, r14
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400291b0
mov r8d, eax
lea rdx, [rbp + 0x380]
lea rcx, [rsp + 0x50]
call fcn.1400127c0
mov rcx, rsi
lea rdx, str..mdf
nop dword [rax + rax]
movzx eax, word [rbx + rcx*2]
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x1400291f8
cmp rcx, 5
jne 0x1400291e0
mov eax, esi
jmp 0x1400291fd
sbb eax, eax
or eax, 1
test eax, eax
jne 0x140029244
lea r8d, [rax + 4]
lea rdx, str..mds
lea rcx, [rsp + 0x58]
call fcn.140007830
mov rdx, qword [rsp + 0x58]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400127c0
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140029374
jmp 0x140029317
mov rcx, rsi
lea rdx, str..ape
nop
movzx eax, word [rbx + rcx*2]
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x140029268
cmp rcx, 5
jne 0x140029250
mov eax, esi
jmp 0x14002926d
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400292db
mov rcx, rsi
lea rdx, str..flac
nop dword [rax + rax]
movzx eax, word [rbx + rcx*2]
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x140029298
cmp rcx, 6
jne 0x140029280
mov eax, esi
jmp 0x14002929d
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400292db
mov rcx, rsi
lea rdx, str..wav
nop dword [rax + rax]
movzx eax, word [rbx + rcx*2]
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x1400292c8
cmp rcx, 5
jne 0x1400292b0
mov eax, esi
jmp 0x1400292cd
sbb eax, eax
or eax, 1
test eax, eax
je 0x1400292db
mov rbx, qword [rsp + 0x50]
jmp 0x140029374
mov r8d, 4
lea rdx, str..cue
lea rcx, [rsp + 0x58]
call fcn.140007830
mov rdx, qword [rsp + 0x58]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x50]
call fcn.1400127c0
mov rbx, qword [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140029379
mov rdi, qword [r15]
sub rdi, 0x18
lea rcx, [rbx - 0x18]
cmp rcx, rdi
je 0x140029374
cmp dword [rdi + 0x10], 0
jl 0x140029365
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140029365
call fcn.14000de20
mov ecx, r14d
lock xadd dword [rdi + 0x10], ecx
sub ecx, 1
mov rbx, rax
jg 0x140029357
mov rcx, qword [rdi]
mov r8, qword [rcx]
mov rdx, rdi
call qword [rreloc.imgengine.dll_Ordinal_8 + 8]
lea rax, [rbx + 0x18]
mov rbx, qword [rsp + 0x50]
mov qword [r15], rax
jmp 0x140029374
mov r8d, dword [rbx - 0x10]
mov rdx, rbx
mov rcx, r15
call fcn.140007830
mov esi, 1
lea rdx, [rbx - 0x18]
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140029394
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.imgengine.dll_Ordinal_8]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r14d
sub r14d, 1
jg 0x1400293b3
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.imgengine.dll_Ordinal_8 + 8]
mov eax, esi
jmp 0x1400293c2
mov ecx, 0x80070057
call fcn.140003970
nop
mov rcx, qword [rbp + 0x590]
xor rcx, rsp
call fcn.1400af8c0
lea r11, [rsp + 0x6a0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret