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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
xor r9d, r9d
lea r14, [0x006d1310]
lea rsi, [rsp + 0x90]
mov r15, rdx
mov rdx, qword [rdx]
mov rbx, r8
mov rbp, rcx
lea rdi, [rsp + 0x170]
lea rax, [rsi + 0x10]
mov rcx, rsi
mov qword [rsp + 0x90], rax
mov rax, qword [r15 + 8]
lea r8, [rdx + rax*2]
call fcn.00643ae0
lea rax, [rsp + 0xb0]
xor r9d, r9d
mov rdx, r15
mov rcx, rdi
mov qword [rsp + 0xb8], 0
mov word [rsp + 0xc0], r9w
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xc0]
mov dword [rsp + 0x80], 0
mov byte [rsp + 0x84], 0
mov qword [rsp + 0x88], r14
mov qword [rsp + 0xb0], rax
call fcn.00475d30
lea rax, [rsp + 0xf0]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x50], rax
jmp 0x473868
call fcn.0046c2c0
mov dword [rsp + 0x1a4], eax
mov dword [rsp + 0x1a0], 2
mov eax, 2
test rbx, rbx
je 0x47384f
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], r14
cmp eax, 1
jne 0x473aa1
mov rcx, rsi
call fcn.00475360
mov rcx, rdi
call fcn.00477230
cmp qword [rsp + 0x98], 0
je 0x473aa1
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
mov r12d, eax
je 0x473a75
test ah, 4
jne 0x4738e2
mov edx, r12d
and r12d, 0x10
mov dword [rsp + 0x80], 0
mov byte [rsp + 0x84], 0
mov qword [rsp + 0x88], r14
mov rcx, rsi
je 0x473820
call fcn.0046c2c0
mov dword [rsp + 0x1a4], eax
mov dword [rsp + 0x1a0], 3
mov eax, 3
jmp 0x47383c
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x50]
test rax, rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0xf0], rdx
je 0x473a95
mov rcx, rax
call sub.msvcrt.dll_wcslen
mov qword [rsp + 0x58], rax
add rax, rax
mov r13, rax
mov qword [rsp + 0x60], rax
sar r13, 1
cmp r13, 7
ja 0x473b93
cmp r13, 1
mov rcx, qword [rsp + 0xf0]
je 0x473be0
test r13, r13
jne 0x473bc3
mov rax, qword [rsp + 0x58]
xor r8d, r8d
mov qword [rsp + 0xf8], r13
xor r9d, r9d
xor edx, edx
mov word [rcx + rax*2], r8w
mov qword [rsp + 0x30], 0
mov r8d, 7
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rcx, qword [rsp + 0xf0]
cmp rcx, qword [rsp + 0x50]
mov r13, rax
je 0x47399b
call fcn.00670500
cmp r13, 0xffffffffffffffff
je 0x473a75
mov rcx, rsi
call fcn.0046c0a0
test al, al
jne 0x473b85
mov edx, r12d
mov rcx, rsi
call fcn.0046c2c0
mov dword [rsp + 0x1a0], 9
mov dword [rsp + 0x1a4], eax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x1a0]
test eax, eax
jne 0x47383c
test rbx, rbx
je 0x473e50
mov dword [rbx], 1
lea rax, [rbp + 0x10]
mov byte [rbx + 4], 1
mov qword [rbx + 8], r14
mov qword [rbp + 8], 0
mov qword [rbp], rax
xor eax, eax
mov word [rbp + 0x10], ax
mov rcx, qword [rsp + 0x170]
add rdi, 0x10
cmp rcx, rdi
je 0x473a2d
call fcn.00670500
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xb0]
add rax, 0x10
cmp rcx, rax
je 0x473a48
call fcn.00670500
mov rcx, qword [rsp + 0x90]
add rsi, 0x10
cmp rcx, rsi
je 0x473a5e
call fcn.00670500
mov rax, rbp
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r12, [rsp + 0x1a0]
lea r8, [rsp + 0x80]
mov rdx, rsi
mov rcx, r12
call fcn.0046cab0
jmp 0x4739db
lea rcx, [0x006923d0]
call fcn.0065f680
lea r12, [rsp + 0x1a0]
mov byte [rsp + 0x48], 0
lea r13, [r12 + 0x10]
jmp 0x473af8
mov rcx, qword [rsp + 0x1a0]
cmp rcx, r13
je 0x473ac7
call fcn.00670500
mov rcx, qword [rsp + 0x40]
mov rdx, rdi
call fcn.00477980
mov rax, qword [rsp + 0x178]
cmp rax, 2
ja 0x473af0
mov rdx, qword [rsp + 0x170]
cmp word [rdx], 0x2e
je 0x473b60
mov rcx, rdi
call fcn.00476820
mov rdx, r15
mov rcx, r12
call fcn.00475d30
mov rax, qword [rsp + 0x190]
cmp qword [rsp + 0x1c0], rax
jne 0x473ab5
mov rax, qword [rsp + 0x198]
cmp qword [rsp + 0x1c8], rax
jne 0x473ab5
mov rcx, qword [rsp + 0x1a0]
lea rax, [r12 + 0x10]
cmp rcx, rax
jne 0x473f92
cmp qword [rsp + 0x98], 0
jne 0x473c00
mov rdx, r15
mov rcx, rbp
call fcn.00479950
jmp 0x473a17
cmp rax, 1
je 0x473bf0
cmp word [rdx + 2], 0x2e
movzx eax, byte [rsp + 0x48]
mov edx, 1
cmove eax, edx
mov byte [rsp + 0x48], al
jmp 0x473af0
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x473896
movabs rax, 0x3fffffffffffffff
cmp r13, rax
ja 0x473fb9
lea rcx, [r13 + r13 + 2]
call fcn.00670540
mov rcx, rax
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x100], r13
mov r8, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0xf0]
jmp 0x473945
mov rax, qword [rsp + 0x48]
movzx eax, word [rax]
mov word [rcx], ax
jmp 0x473945
mov byte [rsp + 0x48], 1
jmp 0x473af0
lea r13, [rsp + 0x130]
xor edx, edx
mov rcx, r13
call fcn.0046c7e0
lea r15, [rsp + 0xd0]
lea r9, [rsp + 0x80]
mov r8, r13
mov rdx, rsi
mov rcx, r15
call fcn.00472ea0
mov rcx, qword [rsp + 0x130]
add r13, 0x10
cmp rcx, r13
je 0x473c46
call fcn.00670500
mov rax, qword [rsp + 0xd0]
lea rdx, [r15 + 0x10]
mov rcx, qword [rsp + 0x90]
cmp rax, rdx
je 0x473da1
lea rdx, [rsi + 0x10]
cmp rcx, rdx
je 0x473d70
movdqu xmm0, xmmword [rsp + 0xd8]
test rcx, rcx
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rax
movups xmmword [rsp + 0x98], xmm0
je 0x473cc5
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xe0], rdx
add r15, 0x10
xor edx, edx
mov qword [rsp + 0xd8], 0
cmp rcx, r15
mov word [rcx], dx
je 0x473cc5
call fcn.00670500
mov r13d, dword [rsp + 0x80]
test r13d, r13d
jne 0x473d90
test rbx, rbx
je 0x473ce9
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], r14
cmp qword [rsp + 0xb8], 0
mov rdx, qword [rsp + 0x90]
mov rax, qword [rsp + 0x98]
lea r8, [rdx + rax*2]
je 0x473dde
cmp byte [rsp + 0x48], 0
je 0x473db9
lea rax, [r12 + 0x10]
xor r9d, r9d
mov rcx, r12
mov qword [rsp + 0x1a0], rax
call fcn.00643ae0
mov rdx, qword [rsp + 0x40]
mov rcx, r12
call fcn.00477980
mov rdx, r12
mov rcx, rbp
call fcn.00479950
mov rcx, qword [rsp + 0x1a0]
add r12, 0x10
cmp rcx, r12
je 0x473a17
call fcn.00670500
jmp 0x473a17
movdqu xmm0, xmmword [rsp + 0xd8]
mov qword [rsp + 0x90], rax
movups xmmword [rsp + 0x98], xmm0
jmp 0x473cc5
test rbx, rbx
je 0x473efb
mov dword [rbx], r13d
jmp 0x4739f9
mov rcx, rsi
mov rdx, r15
call fcn.006452c0
mov rcx, qword [rsp + 0xd0]
jmp 0x473ca6
lea r12, [rbp + 0x10]
xor r9d, r9d
mov rcx, rbp
mov qword [rbp], r12
call fcn.00643ae0
mov rdx, qword [rsp + 0x40]
mov rcx, rbp
call fcn.00477980
jmp 0x473a17
lea rax, [rbp + 0x10]
xor r9d, r9d
mov rcx, rbp
mov qword [rbp], rax
call fcn.00643ae0
jmp 0x473a17
mov rcx, qword [rsp + 0x170]
add rdi, 0x10
cmp rcx, rdi
je 0x473e0f
call fcn.00670500
mov rax, qword [rsp + 0x40]
mov rcx, qword [rsp + 0xb0]
add rax, 0x10
cmp rcx, rax
je 0x473e2a
call fcn.00670500
mov rcx, qword [rsp + 0x90]
add rsi, 0x10
cmp rcx, rsi
je 0x473e40
call fcn.00670500
mov rcx, rbx
call fcn.0058e700
nop dword [rax + rax]
mov ecx, 0x48
lea rbx, [rsp + 0x110]
call fcn.00670680
lea rdx, str.boost::filesystem::weakly_canonical
mov rcx, rbx
mov rbp, rax
call fcn.0046c220
lea r9, [rsp + 0x70]
movabs rax, 0x100000001
mov rdx, rbx
mov rcx, rbp
mov r8, rsi
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], r14
add rbx, 0x10
call fcn.005a8f70
mov rcx, qword [rsp + 0x110]
cmp rcx, rbx
je 0x473eb1
call fcn.00670500
lea r8, [0x005a9500]
lea rdx, [0x006d32e0]
mov rcx, rbp
call fcn.00670ef0
mov rcx, rbp
mov rbx, rax
call fcn.00670a50
jmp 0x473df9
mov ecx, 0x48
lea r12, [rsp + 0x150]
mov ebx, r13d
call fcn.00670680
lea rdx, str.boost::filesystem::weakly_canonical
mov rbp, rax
mov rcx, r12
movabs rax, 0x100000000
or rbx, rax
call fcn.0046c220
lea r9, [rsp + 0x70]
mov rdx, r12
mov rcx, rbp
mov r8, rsi
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], r14
call fcn.005a8f70
mov rcx, qword [rsp + 0x150]
add r12, 0x10
cmp rcx, r12
je 0x473f62
call fcn.00670500
lea r8, [0x005a9500]
lea rdx, [0x006d32e0]
mov rcx, rbp
call fcn.00670ef0
jmp 0x473ec7
call fcn.00670500
jmp 0x473b3d
lea rcx, [0x0069244a]
call fcn.0065f820
mov rbx, rax
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x473df9