Function at 0x140008354
Capabilities:
Check if file exists
Get file attributes

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x318]
sub rsp, 0x3e0
mov r13, r9
mov r12, rdx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
xor r14d, r14d
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x28], r14
lea r8, [0x14003df98]
mov rdx, qword [rdx]
lea rcx, [rsp + 0x28]
call fcn.140020d20
cmp qword [rsp + 0x28], r14
jne 0x1400083ea
lea rcx, [rsp + 0x40]
call fcn.140002b54
nop
mov rdx, qword [r12]
sub rdx, 0x18
or rdi, 0xffffffffffffffff
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008499
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
jmp 0x140008493
lea rcx, [rbp - 0x30]
call fcn.14001471c
nop
mov rdx, qword [rsp + 0x28]
lea rcx, [rbp - 0x30]
call fcn.140014a48
test eax, eax
je 0x140008411
lea rcx, [rbp - 0x30]
call fcn.1400148d4
jmp 0x1400083b3
mov rbx, qword [rbp + 8]
test rbx, rbx
je 0x140008450
lea rdi, [0x14003dfa0]
mov rcx, rbx
call fcn.14001338c
cmp rdi, rax
je 0x1400084b9
mov r8d, 0x7fffffff
mov rdx, rax
mov rcx, rdi
call fcn.140021010
test eax, eax
je 0x1400084b9
mov rbx, qword [rbx + 0x50]
test rbx, rbx
jne 0x140008421
mov rcx, qword [rsp + 0x28]
call fcn.140020dfc
nop
lea rcx, [rbp - 0x30]
call fcn.1400148d4
nop
lea rcx, [rsp + 0x40]
call fcn.140002b54
nop
mov rdx, qword [r12]
sub rdx, 0x18
or rdi, 0xffffffffffffffff
mov ecx, edi
lock xadd dword [rdx + 0x10], ecx
add ecx, edi
test ecx, ecx
jg 0x140008499
mov rcx, qword [rdx]
mov r8, qword [rcx]
mov rax, qword [r8 + 8]
call qword [case.0x140013a6e.0]
mov eax, 1
mov rbx, qword [rsp + 0x430]
add rsp, 0x3e0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov qword [rsp + 0x20], rbx
test rbx, rbx
je 0x140008450
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x140008450
lea r8, [0x14003dfb0]
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
or rdi, 0xffffffffffffffff
mov rbx, qword [rbp - 0x70]
test rbx, rbx
je 0x14000859b
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x14000859b
test rbx, rbx
je 0x14000859b
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x14000859b
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x14000859b
test rbx, rbx
je 0x140008558
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x140008558
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
jmp 0x14000855b
mov rax, r14
mov rcx, rax
call fcn.14001338c
test rax, rax
je 0x14000859b
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400052f8
test rax, rax
jne 0x14000857f
mov ecx, r14d
jmp 0x14000858c
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x140008582
mov r8d, ecx
mov rdx, rax
lea rcx, [r13 + 0x18]
call fcn.1400020ec
lea r8, [0x14003dfc0]
lea rdx, [rbp - 0x68]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
mov rbx, qword [rbp - 0x68]
test rbx, rbx
je 0x14000862e
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x14000862e
test rbx, rbx
je 0x1400085eb
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1400085eb
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
jmp 0x1400085ee
mov rax, r14
mov rcx, rax
call fcn.14001338c
test rax, rax
je 0x14000862e
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400052f8
test rax, rax
jne 0x140008612
mov ecx, r14d
jmp 0x14000861f
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x140008615
mov r8d, ecx
mov rdx, rax
lea rcx, [r13 + 0x20]
call fcn.1400020ec
lea r8, [0x14003dfc8]
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
mov rbx, qword [rbp - 0x60]
test rbx, rbx
je 0x1400086c1
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x1400086c1
test rbx, rbx
je 0x1400086c1
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1400086c1
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x1400086c1
mov rcx, rax
call fcn.14001338c
test rax, rax
je 0x1400086c1
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400052f8
test rax, rax
jne 0x1400086a5
mov ecx, r14d
jmp 0x1400086b2
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x1400086a8
mov r8d, ecx
mov rdx, rax
lea rcx, [r13 + 0x28]
call fcn.1400020ec
lea r8, [0x14003dfd8]
lea rdx, [rbp - 0x58]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
mov rbx, qword [rbp - 0x58]
test rbx, rbx
je 0x140008754
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x140008754
test rbx, rbx
je 0x140008754
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x140008754
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x140008754
mov rcx, rax
call fcn.14001338c
test rax, rax
je 0x140008754
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400052f8
test rax, rax
jne 0x140008738
mov ecx, r14d
jmp 0x140008745
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x14000873b
mov r8d, ecx
mov rdx, rax
lea rcx, [r13 + 0x30]
call fcn.1400020ec
lea r8, [0x14003dfe8]
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
mov rbx, qword [rbp - 0x50]
test rbx, rbx
je 0x1400087e7
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x1400087e7
test rbx, rbx
je 0x1400087e7
mov rcx, qword [rbx + 0x38]
test rcx, rcx
je 0x1400087e7
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x1400087e7
mov rcx, rax
call fcn.14001338c
test rax, rax
je 0x1400087e7
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400052f8
test rax, rax
jne 0x1400087cb
mov ecx, r14d
jmp 0x1400087d8
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x1400087ce
mov r8d, ecx
mov rdx, rax
lea rcx, [r13 + 0x50]
call fcn.1400020ec
mov rcx, qword [r12]
sub rcx, 0x18
call fcn.140001e98
lea rbx, [rax + 0x18]
mov qword [rbp + 0x320], rbx
mov r15d, 0x5c
mov edx, r15d
mov rcx, qword [r12]
call fcn.1400182cc
test rax, rax
je 0x14000886d
sub rax, qword [r12]
sar rax, 1
test eax, eax
js 0x14000886d
mov r8d, eax
lea rdx, [rbp - 0x48]
mov rcx, r12
call fcn.140003c00
nop
mov rdx, rax
lea rcx, [rbp + 0x320]
call fcn.140004118
nop
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008866
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
mov rbx, qword [rbp + 0x320]
movsxd rsi, dword [rbx - 0x10]
cmp esi, 1
jg 0x14000888a
lea rcx, [rbx - 0x18]
call fcn.140001e98
add rax, 0x18
mov qword [rsp + 0x58], rax
jmp 0x1400088dd
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x1400088a5
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x140013a6e.0]
test rax, rax
jne 0x1400088bd
call fcn.1400016d0
mov rdx, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0x20]
mov rcx, rdx
call qword [case.0x140013a6e.0]
lea rcx, [rsi - 1]
lea rdx, [rbx + rcx*2]
mov r9, rax
mov r8d, 1
lea rcx, [rsp + 0x58]
call fcn.140004414
mov rax, qword [rsp + 0x58]
movzx ebx, word [rax]
sub ebx, r15d
jne 0x1400088ef
movzx ebx, word [rax + 2]
movzx ecx, r14w
sub ebx, ecx
lea rdx, [rax - 0x18]
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008910
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test ebx, ebx
je 0x140008937
lea rdx, [0x14003d62c]
mov rax, rdi
inc rax
cmp word [rdx + rax*2], r14w
jne 0x14000891e
mov r8d, eax
lea rcx, [rbp + 0x320]
call fcn.140004600
lea r8, str.FileList
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x20]
call fcn.1400051cc
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x140008cd7
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x140008cd7
lea r8, str.FileItem
lea rdx, [rsp + 0x38]
lea rcx, [rsp + 0x60]
call fcn.1400051cc
mov rbx, qword [rsp + 0x38]
mov r12d, 1
test rbx, rbx
je 0x140008c5c
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test rax, rax
je 0x140008c5c
test rbx, rbx
je 0x1400089cb
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
jmp 0x1400089ce
mov rax, r14
lea rdx, str.name
mov rcx, rax
call fcn.14001412c
test rax, rax
jne 0x1400089e7
mov r15, r14
jmp 0x1400089f3
lea rcx, [rax + 0x20]
call fcn.140012c94
mov r15, rax
test rbx, rbx
je 0x140008a0a
mov rcx, qword [rbx]
mov rax, qword [rcx + 8]
mov rcx, rbx
call qword [case.0x140013a6e.0]
jmp 0x140008a0d
mov rax, r14
lea rdx, str.description
mov rcx, rax
call fcn.14001412c
test rax, rax
je 0x140008a2d
lea rcx, [rax + 0x20]
call fcn.140012c94
mov r14, rax
test rbx, rbx
je 0x140008a44
mov rcx, qword [rbx]
mov rax, qword [rcx + 8]
mov rcx, rbx
call qword [case.0x140013a6e.0]
jmp 0x140008a46
xor eax, eax
lea rdx, str.optional
mov rcx, rax
call fcn.14001412c
test rax, rax
jne 0x140008a5e
xor esi, esi
jmp 0x140008a6a
lea rcx, [rax + 0x20]
call fcn.140012c94
mov rsi, rax
test r15, r15
je 0x140008bf7
mov rdx, r15
lea rcx, [rsp + 0x40]
call fcn.1400052f8
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.14000419c
nop
lea rcx, [rsp + 0x68]
call fcn.14000523c
nop
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x68]
call fcn.140004118
lea r8, [rsp + 0x30]
lea rdx, [rbp + 0x320]
lea rcx, [rbp - 0x40]
call fcn.1400095d8
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.140004118
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008af1
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
test r14, r14
je 0x140008b2d
mov rdx, r14
lea rcx, [rsp + 0x40]
call fcn.1400052f8
xor r14d, r14d
test rax, rax
jne 0x140008b10
mov ecx, r14d
jmp 0x140008b1d
mov rcx, rdi
inc rcx
cmp word [rax + rcx*2], r14w
jne 0x140008b13
mov r8d, ecx
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.1400020ec
mov dword [rbp - 0x80], r14d
test rsi, rsi
je 0x140008b56
movzx ecx, byte [rsi]
sub ecx, 0x31
jne 0x140008b48
movzx ecx, byte [rsi + 1]
movzx eax, r14b
sub ecx, eax
mov esi, dword [rbp - 0x7c]
test ecx, ecx
cmove esi, r12d
mov dword [rbp - 0x7c], esi
jmp 0x140008b59
mov esi, dword [rbp - 0x7c]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140008bbf
test al, 0x10
jne 0x140008bbf
lea rcx, [r13 + 0xc0]
lea rdx, [rsp + 0x30]
call fcn.1400094c8
mov rbx, rax
lea rdx, [rsp + 0x68]
mov rcx, rax
call fcn.140004118
lea rcx, [rbx + 8]
lea rdx, [rsp + 0x70]
call fcn.140004118
lea rcx, [rbx + 0x10]
lea rdx, [rsp + 0x78]
call fcn.140004118
mov dword [rbx + 0x18], r14d
mov dword [rbx + 0x1c], esi
lea rcx, [rbx + 0x20]
lea rdx, [rbp - 0x78]
call fcn.140004118
nop
lea rcx, [rsp + 0x68]
call fcn.140007c70
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008bf0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
mov rbx, qword [rsp + 0x38]
jmp 0x140008bfa
xor r14d, r14d
test rbx, rbx
je 0x140008c11
mov rax, qword [rbx]
mov rcx, rbx
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
jmp 0x140008c14
mov rax, r14
mov rbx, qword [rax + 0x50]
test rbx, rbx
je 0x140008c4f
lea rsi, str.FileItem
mov rcx, rbx
call fcn.14001338c
cmp rax, rsi
je 0x140008c46
mov r8d, 0x7fffffff
mov rdx, rsi
mov rcx, rax
call fcn.140021010
test eax, eax
jne 0x140008c52
mov rbx, qword [rbx + 0x50]
test rbx, rbx
jne 0x140008c24
mov rbx, r14
mov qword [rsp + 0x38], rbx
jmp 0x140008992
mov rdx, qword [rbp + 0x320]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
mov r12, qword [rbp + 0x328]
jg 0x140008c8b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
mov rcx, qword [rsp + 0x28]
call fcn.140020dfc
nop
lea rcx, [rbp - 0x30]
call fcn.1400148d4
nop
lea rcx, [rsp + 0x40]
call fcn.140002b54
nop
mov rdx, qword [r12]
sub rdx, 0x18
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008cd0
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
xor eax, eax
jmp 0x14000849e
mov rcx, qword [rsp + 0x28]
call fcn.140020dfc
nop
mov rdx, qword [rbp + 0x320]
add rdx, 0xffffffffffffffe8
mov eax, edi
lock xadd dword [rdx + 0x10], eax
add eax, edi
test eax, eax
jg 0x140008d0b
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x140013a6e.0]
nop
lea rcx, [rbp - 0x30]
call fcn.1400148d4
nop
lea rcx, [rsp + 0x40]
call fcn.140002b54
nop
mov rdx, qword [r12]
sub rdx, 0x18
jmp 0x1400083ca