Function at 0x46e660
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
cmp qword [rdx + 8], 0
mov rbx, rcx
mov rdi, rdx
mov rsi, r8
jne 0x46e380
test r8, r8
je 0x46e34f
mov dword [r8], 0
mov byte [r8 + 4], 0
lea rax, [0x006d1310]
mov qword [rsi + 8], rax
lea rax, [rbx + 0x10]
xor r9d, r9d
mov qword [rbx + 8], 0
mov word [rbx + 0x10], r9w
mov qword [rbx], rax
mov rax, rbx
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
lea r13, [rsp + 0x48]
lea r12, [rsp + 0x70]
mov edx, pe_nt_image_headers64
mov rcx, qword [rdi]
mov r14, qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
mov r9, r13
mov r8, r12
call r14
mov ebp, eax
test rbp, rbp
mov r15, rbp
je 0x46e440
test rsi, rsi
je 0x46e3ca
lea rax, [0x006d1310]
mov dword [rsi], 0
mov byte [rsi + 4], 0
mov qword [rsi + 8], rax
cmp rbp, 0x7f
jbe 0x46e470
lea rcx, [rbp + rbp]
call fcn.00670520
mov r9, r13
mov rbp, rax
mov r8, rax
mov edx, r15d
mov rcx, qword [rdi]
call r14
test eax, eax
je 0x46e4b5
xor ecx, ecx
lea r9, str.boost::filesystem::system_complete
mov r8, rsi
mov rdx, rdi
call fcn.0046c9b0
lea rdx, [rbx + 0x10]
test al, al
mov qword [rbx], rdx
je 0x46e4d0
xor ecx, ecx
mov qword [rbx + 8], 0
mov word [rbx + 0x10], cx
mov rcx, rbp
call fcn.006704f0
jmp 0x46e366
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
je 0x46e460
test rsi, rsi
je 0x46e596
mov dword [rsi], eax
mov byte [rsi + 4], 1
jmp 0x46e344
test rsi, rsi
jne 0x46e3b5
nop dword [rax]
lea rax, [rbx + 0x10]
mov rcx, r12
mov qword [rbx], rax
call sub.msvcrt.dll_wcslen
lea rbp, [rax + rax]
mov rdi, rax
mov rsi, rbp
sar rsi, 1
cmp rsi, 7
ja 0x46e510
cmp rsi, 1
mov rax, qword [rbx]
je 0x46e4c2
test rsi, rsi
jne 0x46e534
xor r8d, r8d
mov qword [rbx + 8], rsi
mov word [rax + rdi*2], r8w
jmp 0x46e366
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
jmp 0x46e3fa
movzx edx, word [rsp + 0x70]
mov word [rax], dx
jmp 0x46e4a4
mov rcx, rbp
call sub.msvcrt.dll_wcslen
lea r12, [rax + rax]
mov rdi, rax
mov rsi, r12
sar rsi, 1
cmp rsi, 7
ja 0x46e550
cmp rsi, 1
mov rax, qword [rbx]
je 0x46e58a
test rsi, rsi
jne 0x46e574
xor edx, edx
mov qword [rbx + 8], rsi
mov word [rax + rdi*2], dx
jmp 0x46e429
movabs rax, 0x3fffffffffffffff
cmp rsi, rax
ja 0x46e63f
lea rcx, [rsi + rsi + 2]
call fcn.00670540
mov qword [rbx + 0x10], rsi
mov qword [rbx], rax
mov r8, rbp
mov rdx, r12
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
jmp 0x46e4a4
movabs rax, 0x3fffffffffffffff
cmp rsi, rax
ja 0x46e64b
lea rcx, [rsi + rsi + 2]
call fcn.00670540
mov qword [rbx], rax
mov qword [rbx + 0x10], rsi
mov r8, r12
mov rdx, rbp
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rax, qword [rbx]
jmp 0x46e4fd
movzx edx, word [rbp]
mov word [rax], dx
jmp 0x46e4fd
mov ecx, 0x48
mov dword [rsp + 0x2c], eax
movabs rbx, 0x100000000
call fcn.00670680
mov edx, dword [rsp + 0x2c]
lea rsi, [rsp + 0x50]
mov rbp, rax
mov rcx, rsi
or rbx, rdx
lea rdx, str.boost::filesystem::system_complete
call fcn.0046c220
lea rax, [0x006d1310]
lea r9, [rsp + 0x30]
mov rdx, rsi
mov rcx, rbp
mov r8, rdi
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rax
add rsi, 0x10
call fcn.005a8f70
mov rcx, qword [rsp + 0x50]
cmp rcx, rsi
je 0x46e603
call fcn.00670500
lea r8, [0x005a9500]
lea rdx, [0x006d32e0]
mov rcx, rbp
call fcn.00670ef0
mov rbx, rax
mov rcx, rbp
call fcn.00670a50
mov rcx, rbx
call fcn.0058e700
mov rbx, rax
mov rcx, rbp
call fcn.006704f0
mov rcx, rbx
call fcn.0058e700
lea rcx, [0x0069244a]
call fcn.0065f820
lea rcx, [0x0069244a]
call fcn.0065f820
nop
nop dword [rax + rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov eax, edx
mov rdi, rcx
mov esi, edx
and eax, 0x3000
mov rbx, r8
cmp eax, 0x3000
je 0x46e6f7
test eax, eax
je 0x46e689
test dl, 0x92
je 0x46e6f7
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test eax, eax
mov ebp, eax
je 0x46e702
test rbx, rbx
je 0x46e6b2
lea rax, [0x006d1310]
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], rax
mov edx, ebp
and edx, 0xfffffffe
test esi, 0x1000
jne 0x46e6d0
test esi, 0x2000
je 0x46e761
mov edx, ebp
or edx, 1
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x46e730
test rbx, rbx
je 0x46e6f7
lea rax, [0x006d1310]
mov dword [rbx], 0
mov byte [rbx + 4], 0
mov qword [rbx + 8], rax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov r12d, eax
je 0x46e698
test rbx, rbx
je 0x46e772
mov dword [rbx], eax
lea rax, [0x006d1310]
mov byte [rbx + 4], 1
mov qword [rbx + 8], rax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
mov esi, eax
je 0x46e6dd
test rbx, rbx
je 0x46e7f0
mov dword [rbx], eax
lea rax, [0x006d1310]
mov byte [rbx + 4], 1
mov qword [rbx + 8], rax
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
or ebp, 1
and esi, 0x92
cmove edx, ebp
jmp 0x46e6d0
mov ecx, 0x48
lea rsi, [rsp + 0x30]
mov ebx, r12d
call fcn.00670680
lea rdx, str.boost::filesystem::permissions
mov rbp, rax
mov rcx, rsi
movabs rax, 0x100000000
or rbx, rax
call fcn.0046c220
lea rax, [0x006d1310]
lea r9, [rsp + 0x20]
mov rdx, rsi
mov rcx, rbp
mov r8, rdi
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x28], rax
add rsi, 0x10
call fcn.005a8f70
mov rcx, qword [rsp + 0x30]
cmp rcx, rsi
je 0x46e7da
call fcn.00670500
lea r8, [0x005a9500]
lea rdx, [0x006d32e0]
mov rcx, rbp
call fcn.00670ef0
mov ecx, 0x48
mov ebx, esi
lea rsi, [rsp + 0x30]
call fcn.00670680
lea rdx, str.boost::filesystem::permissions
mov rbp, rax
mov rcx, rsi
movabs rax, 0x100000000
or rbx, rax
call fcn.0046c220
jmp 0x46e7a3