Function at 0x1400bfd70
Capabilities:
Check if file exists
Read file on windows

Disassembly:
push r14
mov eax, 0x6030
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401be370
sub rsp, rax
mov rbp, qword [0x140207460]
mov rax, qword [rbp]
mov qword [rsp + 0x6028], rax
mov rax, qword [0x1402079a0]
mov rbx, r8
mov rsi, rcx
mov r13, rdx
mov r8d, dword [rax]
test r8d, r8d
je 0x1400bfd50
call fcn.1400b9ca0
lea rdi, [rsp + 0x20]
mov r9d, 0xffffffff
mov rdx, r13
mov r8d, 0x1000
mov rcx, rdi
mov r12d, eax
call fcn.1400bb020
test eax, eax
js 0x1400bfbf8
mov r9d, r12d
mov r8d, 0x104
mov edx, eax
mov rcx, rdi
call fcn.1400bc630
mov r13d, eax
test eax, eax
js 0x1400bfc06
call fcn.1400b9ca0
lea r12, [rsp + 0x2020]
mov r9d, 0xffffffff
mov rdx, rbx
mov r8d, 0x1000
mov rcx, r12
mov r14d, eax
call fcn.1400bb020
test eax, eax
js 0x1400bfbf8
mov r9d, r14d
mov r8d, 0x104
mov edx, eax
mov rcx, r12
call fcn.1400bc630
test eax, eax
js 0x1400bfc06
test r13d, r13d
je 0x1400bfaf9
movsxd rdx, r13d
lea ecx, [r13 - 1]
add rdx, rdx
add rcx, rcx
lea rax, [rdi + rdx]
lea rdx, [rsp + rdx + 0x1e]
sub rdx, rcx
nop dword [rax + rax]
cmp word [rax - 2], 0x2f
jne 0x1400bfaf0
mov ecx, 0x5c
mov word [rax - 2], cx
sub rax, 2
cmp rdx, rax
jne 0x1400bfae0
test rsi, rsi
je 0x1400bfb99
mov r8, qword [0x14023e2a8]
test r8, r8
je 0x1400bfc90
mov rcx, rsi
mov rdx, rbx
call fcn.1400056b0
mov rax, qword [0x14023e2a8]
mov rax, qword [rax + 8]
mov rsi, qword [rax + 8]
test rsi, rsi
je 0x1400bfb99
lea rdx, [0x1401e16a4]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400bfc10
lea rdx, [0x1401e16a9]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400bfc48
lea rdx, [0x1401e16ad]
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400bfc48
mov rax, qword [0x1402078f0]
lea rcx, str.ignoring_invalid_symlink_type__s_for__s
mov eax, dword [rax]
test eax, eax
jne 0x1400bfc70
mov r8, rbx
mov rdx, rsi
call fcn.1400a0c10
mov r8d, dword [0x14023ef10]
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
test al, al
je 0x1400bfc27
mov rdx, r12
mov rcx, rdi
call fcn.1400b9890
test eax, eax
je 0x1400bfcb0
cmp eax, 2
je 0x1400bfc5f
xor eax, eax
nop
mov rdx, qword [rsp + 0x6028]
sub rdx, qword [rbp]
jne 0x1400bfd61
add rsp, 0x6030
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
je 0x1400bfc80
mov eax, 0xffffffff
jmp 0x1400bfbd0
mov r8d, dword [0x14023ef10]
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
test al, al
jne 0x1400bfbcc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call qword [sym.imp.msvcrt.dll__errno]
mov ecx, esi
mov rbx, rax
call fcn.1400b95f0
mov dword [rbx], eax
jmp 0x1400bfc06
mov r8d, dword [0x1401c4550]
mov rdx, rdi
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
test al, al
je 0x1400bfc27
call fcn.1400b9ad0
xor eax, eax
jmp 0x1400bfbd0
call sub.libintl_8.dll_libintl_gettext
mov rcx, rax
jmp 0x1400bfb8e
call rbx
mov dword [rax], 0x26
jmp 0x1400bfc06
xor edx, edx
lea rcx, str.symlink
call fcn.1400050d0
mov qword [0x14023e2a8], rax
mov r8, rax
jmp 0x1400bfb12
lea r13, [rsp + 0x4020]
xor r9d, r9d
mov edx, 0x1000
mov rcx, r12
mov r8, r13
call qword [sym.imp.KERNEL32.dll_GetFullPathNameW]
test eax, eax
je 0x1400bfc27
cmp eax, 0xfff
jg 0x1400bfc27
mov rcx, rdi
movsxd rsi, eax
call sub.msvcrt.dll_wcslen
lea rcx, [rsi + rax + 0xe]
add rcx, rcx
call fcn.1400a5fa0
mov rdx, r13
lea rcx, [rax + 0x18]
mov rbx, rax
mov qword [rax + 8], rcx
call sub.msvcrt.dll_wcscpy
mov rax, qword [rbx + 8]
mov rdx, rdi
lea rcx, [rax + rsi*2 + 2]
lea rsi, [0x14023eee0]
mov qword [rbx + 0x10], rcx
call sub.msvcrt.dll_wcscpy
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rax, qword [0x14023ef08]
mov rcx, rsi
mov qword [rbx], rax
mov qword [0x14023ef08], rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x1400bfbd0
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], 0x28
jmp 0x1400bfc06
call fcn.1401be670
nop
nop word [rax + rax]
push r14
mov eax, 0x2040
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.1401be370
sub rsp, rax
mov rbp, qword [0x140207460]
mov rax, qword [rbp]
mov qword [rsp + 0x2038], rax
xor eax, eax
mov eax, dword [0x1401c4554]
mov qword [rsp + 0x20], rcx
mov rbx, rcx
mov rsi, rdx
mov rdi, r8
test eax, eax
jne 0x1400bff18
xor r13d, r13d
test rbx, rbx
je 0x1400bfdd7
lea rdx, [0x1401e160e]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400c0010
mov edx, 1
mov rcx, rbx
call fcn.1400bc1d0
test eax, eax
je 0x1400c0030
call fcn.1400b9ca0
lea r12, [rsp + 0x30]
mov r9d, 0xffffffff
mov rdx, rbx
mov r8d, 0x1000
mov rcx, r12
mov r14d, eax
call fcn.1400bb020
test eax, eax
js 0x1400bfed8
mov r9d, r14d
mov r8d, 0x104
mov edx, eax
mov rcx, r12
call fcn.1400bc630
test eax, eax
js 0x1400bfeea
lea r14, [rsp + 0x28]
mov r9d, 0xffffffff
mov r8d, 4
mov rdx, rsi
mov rcx, r14
call fcn.1400bb020
test eax, eax
js 0x1400bfeea
test r13d, r13d
je 0x1400bfff8
mov rdx, rbx
lea rcx, [0x1401e160a]
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x1400bfe8a
mov rdx, rbx
lea rcx, [0x1401e160e]
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400c0060
xor edx, edx
mov rcx, r12
call fcn.1400b9b60
test eax, eax
jne 0x1400c009e
mov r8, rdi
mov rdx, r14
mov rcx, r12
call qword [sym.imp.msvcrt.dll__wfreopen]
mov rsi, rax
test rax, rax
je 0x1400bfeea
mov edx, 1
mov rcx, r12
call fcn.1400b9b60
test eax, eax
je 0x1400bfeec
mov rdx, rbx
lea rcx, str.could_not_mark__s_as_hidden.
call fcn.1400a0c10
jmp 0x1400bfeec
mov rbx, qword [sym.imp.msvcrt.dll__errno]
call rbx
cmp dword [rax], 0x22
je 0x1400c0091
xor esi, esi
mov rax, qword [rsp + 0x2038]
sub rax, qword [rbp]
jne 0x1400c00b7
mov rax, rsi
add rsp, 0x2040
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
lea rcx, [rsp + 0x20]
call fcn.1400c36c0
mov rax, qword [rsp + 0x20]
movzx edx, byte [rax]
test dl, dl
je 0x1400bfdb8
mov r12, rax
jmp 0x1400bff59
mov rdx, rax
cmp ecx, 0x5c
je 0x1400bff68
add rax, 1
mov qword [rsp + 0x20], rax
movzx edx, byte [rdx + 1]
test dl, dl
je 0x1400bff90
movsx ecx, dl
cmp dl, 0x2f
jne 0x1400bff40
nop dword [rax]
add rax, 1
mov qword [rsp + 0x20], rax
movsx ecx, byte [rax]
cmp cl, 0x2f
je 0x1400bff68
cmp ecx, 0x5c
je 0x1400bff68
test cl, cl
je 0x1400bff90
mov r12, rax
mov rdx, rax
jmp 0x1400bff48
mov eax, dword [0x1401c4554]
cmp eax, 1
je 0x1400c0080
cmp eax, 2
jne 0x1400c00b2
mov r8d, 4
mov rdx, r12
lea rcx, str..git
call qword [sym.imp.msvcrt.dll__strnicmp]
test eax, eax
jne 0x1400bfdb8
movzx eax, byte [r12 + 4]
mov r13d, 1
test al, al
je 0x1400bfdbb
cmp al, 0x2f
sete r13b
cmp al, 0x5c
sete al
or r13d, eax
movzx r13d, r13b
jmp 0x1400bfdbb
mov r8, rdi
mov rdx, r14
mov rcx, r12
call qword [sym.imp.msvcrt.dll__wfreopen]
mov rsi, rax
jmp 0x1400bfeec
lea r12, [rsp + 0x30]
lea rdx, [0x1401e16b8]
mov rcx, r12
call sub.msvcrt.dll_wcscpy
jmp 0x1400bfe33
mov ebx, 2
test rsi, rsi
je 0x1400c0053
mov edx, 0x77
mov rcx, rsi
call sub.msvcrt.dll_strchr
cmp rax, 1
sbb ebx, ebx
and ebx, 0xffffffec
add ebx, 0x16
call qword [sym.imp.msvcrt.dll__errno]
mov dword [rax], ebx
jmp 0x1400bfeea
xor edx, edx
mov rcx, rbx
call fcn.1400bf020
test eax, eax
jne 0x1400bfe9c
jmp 0x1400bfe8a
xor r13d, r13d
cmp byte [r12], 0x2e
sete r13b
jmp 0x1400bfdbb
call rbx
mov dword [rax], 0x26
jmp 0x1400bfeea
mov rdx, rbx
lea rcx, str.could_not_unhide__s
call fcn.1400a0b40
jmp 0x1400bfeea
call fcn.1400b8cc0
call fcn.1401be670
nop
nop dword [rax]