Function at 0x2101022f0
Capabilities:
Get file attributes
Read file on windows

Disassembly:
push rbp
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x98
lea rbp, [rsp + 0x90]
mov r9d, 0x18
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov eax, dword [rax - 0x2cc8]
mov dword [rbp - 0x38], eax
mov r12, rdx
lea rsi, [rbp - 0x30]
mov rbx, rcx
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
lea r8, [rbp - 0x20]
mov rdx, rsi
mov rcx, r12
mov eax, dword [rax - 0x2cc4]
mov dword [rsp + 0x20], 5
mov qword [rbp - 0x40], 0
mov dword [rbp - 0x34], eax
call sym.NtQueryInformationFile
test eax, eax
js 0x21010242f
mov rax, qword [rbp - 0x18]
sub rax, 0x4d
cmp rax, 0x3ffb3
ja 0x2101023e6
mov edx, dword [rbp - 0x18]
cmp edx, 0xffff
jbe 0x210102520
lea eax, [rdx + 1]
add rax, 0xf
shr rax, 4
shl rax, 4
call fcn.21021b550
sub rsp, rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x40], 0
lea rdi, [rsp + 0x50]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], edx
mov qword [rsp + 0x28], rdi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov qword [rsp + 0x20], rsi
mov rcx, r12
call sym.NtReadFile
test eax, eax
js 0x210102428
mov eax, dword [rbp - 0x18]
cmp qword [rbp - 0x28], rax
je 0x210102478
mov edx, dword [rbp - 0x38]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc8], edx
mov edx, dword [rbp - 0x34]
mov rax, qword gs:[0x30]
mov rax, qword [rax + 8]
mov dword [rax - 0x2cc4], edx
xor eax, eax
lea rsp, [rbp + 8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
cmp eax, 0xc0000011
je 0x2101023e6
mov dword [rbx + 0x1024], 5
xor eax, eax
mov ecx, dword [rbp - 0x38]
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov dword [rdx - 0x2cc8], ecx
mov ecx, dword [rbp - 0x34]
mov rdx, qword gs:[0x30]
mov rdx, qword [rdx + 8]
mov dword [rdx - 0x2cc4], ecx
lea rsp, [rbp + 8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
cmp dword [rdi], 0x4c
jne 0x2101023e6
movabs rdx, 0x46000000000000c0
mov ecx, 0x21401
xor rdx, qword [rdi + 0xc]
xor rcx, qword [rdi + 4]
or rdx, rcx
jne 0x2101023e6
mov r8d, dword [rdi + 0x14]
mov edx, r8d
and edx, 0xfffffffe
cmp edx, 0xc
jne 0x2101023e6
cmp dword [rdi + 0x3c], 1
jne 0x2101023e6
movzx ecx, word [rdi + 0x4c]
lea rdx, [rdi + 0x4c]
cmp r8d, 0xc
je 0x2101024d1
lea rdx, [rdx + rcx + 2]
movzx ecx, word [rdx]
test cx, cx
je 0x2101023e6
cmp byte [rdx + 2], 0x3a
lea r12, [rdx + 2]
jne 0x210102550
cmp byte [r12 + 1], 0x5c
jne 0x210102550
mov rcx, rbx
mov rdx, r12
call sym.msys_2.0.dll_strcpy
mov rcx, rbx
call sym.msys_2.0.dll_strlen
test eax, eax
je 0x21010243b
or dword [rbx + 0x100c], 0x14
jmp 0x21010243b
lea rcx, [rbp - 0x38]
call method.tmp_pathbuf.w_get__
mov qword [rsp + 0x40], 0
mov rdi, rax
lea rax, [rbp - 0x40]
mov qword [rsp + 0x38], rax
mov eax, dword [rbp - 0x18]
mov dword [rsp + 0x30], eax
jmp 0x2101023bb
movzx edx, cx
add rdi, rax
movzx r9d, word [r12 + rdx]
lea rdx, [rdx + r9 + 2]
add rdx, r12
cmp rdx, rdi
jae 0x210102579
lea eax, [rcx + r9 + 2]
cdqe
add rax, r12
movzx ecx, word [rax]
lea r12, [rax + 2]
cmp word [r12], 0xfeff
je 0x2101025a8
cmp cx, 0xfff
ja 0x2101023e6
mov byte [r12 + rcx], 0
mov rdx, r12
mov rcx, rbx
call method.symlink_info.posixify_char_
jmp 0x210102502
lea rcx, [rbp - 0x38]
call method.tmp_pathbuf.c_get__
lea r8, [r12 + 2]
mov edx, 0x8000
mov dword [rsp + 0x20], 1
mov r9, 0xffffffffffffffff
mov rcx, rax
mov r13, rax
call sym._sys_wcstombs_char__unsigned_long__wchar_t_const__unsigned_long__bool_
cmp rax, 0xfff
ja 0x2101023e6
mov rdx, r13
mov rcx, rbx
call method.symlink_info.posixify_char_
jmp 0x210102502