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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x68]
sub rsp, 0x168
mov rax, qword [0x1404e6228]
xor rax, rsp
mov qword [rbp + 0x50], rax
mov rdi, r9
mov rsi, r8
mov rbx, rdx
mov r15, rcx
mov qword [rsp + 0x20], rcx
xor r12d, r12d
lea r13, [0x14031ad80]
test r9, r9
je 0x1402d1992
mov dword [r9], r12d
mov byte [r9 + 4], r12b
mov qword [r9 + 8], r13
mov qword [rsp + 0x30], r12
mov qword [rsp + 0x40], r12
mov r14d, 7
mov qword [rsp + 0x48], r14
mov word [rsp + 0x30], r12w
lea rcx, [rsp + 0x50]
call fcn.1402ce0d0
nop
mov rcx, rbx
call fcn.1402d2570
test al, al
jne 0x1402d1af0
mov r9, rdi
mov r8, rsi
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.1402d1230
mov rbx, rax
lea rax, [rsp + 0x50]
cmp rax, rbx
je 0x1402d1a0e
lea rcx, [rsp + 0x50]
call fcn.1400e1140
movups xmm0, xmmword [rbx]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsp + 0x60], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], r14
mov word [rbx], r12w
lea rcx, [rbp - 0x70]
call fcn.1400e1140
test rdi, rdi
je 0x1402d1af0
cmp byte [rdi + 4], 0
je 0x1402d1af0
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r15 + 0x10], xmm1
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x48], r14
mov word [rsp + 0x30], r12w
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d1a95
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1a8a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d2309
call fcn.1401a66fc
nop
mov r14, qword [rsp + 0x48]
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], r12w
cmp r14, 8
jb 0x1402d2143
lea rdx, [r14*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1ae5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d230f
call fcn.1401a66fc
nop
jmp 0x1402d2143
lea rdx, [rbp + 0x30]
lea rcx, [rsp + 0x50]
call fcn.1402d1080
nop
xor esi, esi
mov dword [rsp + 0x70], esi
mov byte [rsp + 0x74], sil
mov qword [rsp + 0x78], r13
lea r8, [rsp + 0x70]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x20]
call fcn.1402d2cc0
cmp dword [rsp + 0x20], 1
jne 0x1402d1c1a
test rdi, rdi
je 0x1402d2315
mov dword [rdi], 2
mov byte [rdi + 4], 1
lea rax, [0x14031ad30]
mov qword [rdi + 8], rax
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r15 + 0x10], xmm1
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r14
mov word [rsp + 0x30], si
lea rcx, [rbp + 0x30]
call fcn.1400e1140
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d1bbb
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1bb5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d236d
call fcn.1401a66fc
nop
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], si
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1402d2143
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1c0f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d2373
call fcn.1401a66fc
nop
jmp 0x1402d2143
cmp byte [rsp + 0x74], sil
je 0x1402d1d04
test rdi, rdi
je 0x1402d2379
movaps xmm0, xmmword [rsp + 0x70]
movups xmmword [rdi], xmm0
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r15 + 0x10], xmm1
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], r14
mov word [rsp + 0x30], si
lea rcx, [rbp + 0x30]
call fcn.1400e1140
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d1ca5
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1c9f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23bd
call fcn.1401a66fc
nop
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], si
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1402d2143
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d1cf9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23c3
call fcn.1401a66fc
nop
jmp 0x1402d2143
mov r12d, dword [rsp + 0x20]
mov r13d, dword [rsp + 0x20]
nop
xor r14b, r14b
mov qword [rsp + 0x40], rsi
lea rax, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rax, qword [rsp + 0x30]
mov word [rax], si
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x50]
call fcn.1402ce7f0
nop
nop dword [rax + rax]
lea rdx, [rbp]
lea rcx, [rsp + 0x50]
call fcn.1402cefe0
mov rcx, qword [rax + 0x20]
cmp qword [rbp - 0x30], rcx
jne 0x1402d1d66
mov rax, qword [rax + 0x28]
cmp qword [rbp - 0x28], rax
je 0x1402d1eeb
lea rcx, [rbp]
call fcn.1400e1140
call fcn.1402cef50
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.1402cead0
test eax, eax
je 0x1402d1edd
call fcn.1402ceec0
mov rdx, rax
lea rcx, [rbp - 0x50]
call fcn.1402cead0
lea rcx, [rsp + 0x30]
test eax, eax
jne 0x1402d1dcb
lea rdx, [rbp + 0x30]
call fcn.1402cead0
test eax, eax
je 0x1402d1edd
lea rcx, [rsp + 0x30]
call fcn.1402d0b00
lea rcx, [rbp - 0x50]
call fcn.1402d05c0
jmp 0x1402d1d40
lea rdx, [rbp - 0x50]
call fcn.1402ce350
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x30]
call fcn.1402d0ed0
mov rbx, qword [rax + 0x10]
lea rcx, [rbp - 0x70]
call fcn.1400e1140
test rbx, rbx
je 0x1402d1edd
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x30]
call fcn.1402d0ba0
mov rbx, qword [rax + 0x10]
lea rcx, [rsp + 0x70]
call fcn.1400e1140
test rbx, rbx
je 0x1402d1edd
test rdi, rdi
je 0x1402d1e34
mov dword [rdi], esi
mov byte [rdi + 4], 0
lea rax, [0x14031ad80]
mov qword [rdi + 8], rax
lea rcx, [rsp + 0x30]
cmp qword [rsp + 0x48], 8
cmovae rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x1402d1e6a
mov r8, rdi
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x20]
call fcn.1402d2800
mov ecx, dword [rsp + 0x20]
jmp 0x1402d1ec9
mov edx, ebx
lea rcx, [rsp + 0x30]
call fcn.1402d26d0
mov esi, eax
bt ebx, 0xa
jae 0x1402d1e9f
lea rcx, [rsp + 0x30]
call fcn.1402d25f0
mov ecx, 9
test al, al
mov eax, 4
cmovne ecx, eax
mov dword [rsp + 0x24], esi
xor esi, esi
jmp 0x1402d1ec5
and ebx, 0x10
je 0x1402d1ea9
mov r13d, esi
jmp 0x1402d1eac
mov r12d, esi
xor esi, esi
mov ecx, esi
test ebx, ebx
setne cl
add ecx, 2
mov eax, r13d
test ebx, ebx
cmove eax, r12d
mov dword [rsp + 0x24], eax
mov dword [rsp + 0x20], ecx
test rdi, rdi
je 0x1402d1ed8
cmp byte [rdi + 4], 0
jne 0x1402d2166
cmp ecx, 4
je 0x1402d1ef4
lea rcx, [rbp - 0x50]
call fcn.1402d05c0
jmp 0x1402d1d40
lea rcx, [rbp]
jmp 0x1402d2062
mov r8, rdi
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x70]
call fcn.1402d2920
nop
test rdi, rdi
je 0x1402d1f16
cmp byte [rdi + 4], 0
jne 0x1402d222f
lea rcx, [rsp + 0x30]
call fcn.1402d0b00
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x70]
call fcn.1402d0ed0
mov rbx, qword [rax + 0x10]
lea rcx, [rbp - 0x70]
call fcn.1400e1140
test rbx, rbx
je 0x1402d1fd4
lea rdx, [rbp]
lea rcx, [rsp + 0x70]
call fcn.1402d0ba0
mov rbx, qword [rax + 0x10]
lea rcx, [rbp]
call fcn.1400e1140
test rbx, rbx
je 0x1402d1fd4
lea rcx, [rbp - 0x50]
call fcn.1402d05c0
lea rdx, [rbp]
lea rcx, [rsp + 0x50]
call fcn.1402cefe0
mov rcx, qword [rax + 0x20]
cmp qword [rbp - 0x30], rcx
jne 0x1402d1f8f
mov rax, qword [rax + 0x28]
cmp qword [rbp - 0x28], rax
je 0x1402d1fa8
lea rcx, [rbp]
call fcn.1400e1140
lea rdx, [rbp - 0x50]
lea rcx, [rsp + 0x70]
call fcn.1402ce350
jmp 0x1402d1f64
lea rcx, [rbp]
call fcn.1400e1140
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 8
cmovae rdx, qword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
lea rcx, [rsp + 0x50]
call fcn.1402ce6c0
jmp 0x1402d205a
lea rdx, [rsp + 0x30]
lea rcx, [rbp - 0x70]
call fcn.1402ce0d0
nop
lea rdx, [rsp + 0x70]
lea rcx, [rbp - 0x70]
call fcn.1402ce350
lea rcx, [rbp - 0x50]
call fcn.1402d05c0
lea rdx, [rbp]
lea rcx, [rsp + 0x50]
call fcn.1402cefe0
mov rcx, qword [rax + 0x20]
cmp qword [rbp - 0x30], rcx
jne 0x1402d201c
mov rax, qword [rax + 0x28]
cmp qword [rbp - 0x28], rax
je 0x1402d202b
lea rcx, [rbp]
call fcn.1400e1140
lea rdx, [rbp - 0x50]
jmp 0x1402d1fe8
lea rcx, [rbp]
call fcn.1400e1140
lea rdx, [rbp - 0x70]
cmp qword [rbp - 0x58], 8
cmovae rdx, qword [rbp - 0x70]
mov r8, qword [rbp - 0x60]
lea rcx, [rsp + 0x50]
call fcn.1402ce6c0
nop
lea rcx, [rbp - 0x70]
call fcn.1400e1140
mov r14b, 1
lea rcx, [rsp + 0x70]
call fcn.1400e1140
nop
lea rcx, [rbp - 0x50]
call fcn.1400e1140
test r14b, r14b
jne 0x1402d1d10
movups xmm0, xmmword [rsp + 0x30]
movups xmmword [r15], xmm0
movups xmm1, xmmword [rsp + 0x40]
movups xmmword [r15 + 0x10], xmm1
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], 7
mov word [rsp + 0x30], si
lea rcx, [rbp + 0x30]
call fcn.1400e1140
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d20ed
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d20e7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23c9
call fcn.1401a66fc
nop
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], si
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1402d2143
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d213d
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d2303
call fcn.1401a66fc
nop
mov rax, r15
mov rcx, qword [rbp + 0x50]
xor rcx, rsp
call fcn.1401a6870
add rsp, 0x168
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [r15], rsi
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], 7
mov word [r15], si
lea rcx, [rbp - 0x50]
call fcn.1400e1140
nop
lea rcx, [rbp + 0x30]
call fcn.1400e1140
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d21d0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d21ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23cf
call fcn.1401a66fc
nop
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], si
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1402d2143
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d2224
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23d5
call fcn.1401a66fc
nop
jmp 0x1402d2143
mov qword [r15], rsi
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], 7
mov word [r15], si
lea rcx, [rsp + 0x70]
call fcn.1400e1140
nop
lea rcx, [rbp - 0x50]
call fcn.1400e1140
nop
lea rcx, [rbp + 0x30]
call fcn.1400e1140
nop
mov rdx, qword [rsp + 0x68]
cmp rdx, 8
jb 0x1402d22a4
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d229e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23db
call fcn.1401a66fc
nop
movdqa xmm0, xmmword [0x1404a7490]
movdqu xmmword [rsp + 0x60], xmm0
mov word [rsp + 0x50], si
mov rdx, qword [rsp + 0x48]
cmp rdx, 8
jb 0x1402d2143
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1402d22f8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1402d23e1
call fcn.1401a66fc
nop
jmp 0x1402d2143
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
lea rdx, str.boost::filesystem::canonical
lea rcx, [rbp - 0x70]
call fcn.1400a4430
nop
call fcn.1400c6230
mov r8, rax
mov edx, 2
lea rcx, [rsp + 0x20]
call fcn.1400aa390
movups xmm0, xmmword [rax]
movaps xmmword [rsp + 0x70], xmm0
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1402d37f0
lea rdx, [0x1404e1910]
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
lea rdx, str.boost::filesystem::canonical
lea rcx, [rbp - 0x70]
call fcn.1400a4430
nop
movaps xmm0, xmmword [rsp + 0x70]
movdqa xmmword [rsp + 0x70], xmm0
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1402d37f0
lea rdx, [0x1404e1910]
lea rcx, [rbp - 0x50]
call sub.VCRUNTIME140.dll__CxxThrowException
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
int3