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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rbx, rcx
mov rax, qword [0x1401c6028]
xor rax, rsp
mov qword [rsp + 0x80], rax
call fcn.140121d0c
mov edi, 0x1126
test al, al
jne 0x14012233a
xorps xmm0, xmm0
lea rsi, [rsp + 0x50]
movaps xmmword [rsi], xmm0
mov qword [rsi + 0x10], 0
mov rcx, rbx
mov rdx, rsi
call fcn.140122367
mov edi, eax
mov rcx, rsi
call fcn.140122422
mov ebp, eax
mov rcx, rsi
mov rdx, rsi
call fcn.14012246a
test bpl, bpl
jne 0x140122141
test dil, dil
jne 0x140122141
mov edi, 0x7b
test al, al
je 0x140122329
test bpl, bpl
jne 0x1401221e1
lea r14, [rsp + 0x58]
lea rdx, str.._
lea rdi, [rsp + 0x38]
mov rcx, rdi
call fcn.1400279c4
movzx r8d, byte [r14 + 0xf]
test r8b, r8b
cmovs r8, qword [r14]
mov rdx, qword [r14 - 8]
cmovns rdx, rsi
mov rcx, rdi
call fcn.140051072
mov rdi, qword [rax]
mov rcx, qword [rax + 8]
mov rdx, qword [rax + 0xf]
mov qword [rsp + 0x77], rdx
mov qword [rsp + 0x70], rcx
mov bl, byte [rax + 0x17]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
cmp byte [r14 + 0xf], 0
jns 0x1401221b6
mov rcx, qword [rsp + 0x50]
call fcn.140150da4
mov qword [rsp + 0x50], rdi
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x77]
mov qword [r14 + 7], rcx
mov qword [r14], rax
mov byte [rsp + 0x67], bl
cmp byte [rsp + 0x4f], 0
jns 0x1401221e1
mov rcx, qword [rsp + 0x38]
call fcn.140150da4
mov byte [rsp + 0x37], bpl
mov r15, 0xffffffffffffffff
xor ebp, ebp
lea r12, [rsp + 0x70]
lea r14, [rsp + 0x38]
mov r13, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov qword [rsp + 0x20], r12
mov rcx, r14
mov rdx, rsi
xor r8d, r8d
mov r9, r15
call fcn.1400511b6
cmp byte [rsp + 0x67], 0
jns 0x140122227
mov rcx, qword [rsp + 0x50]
call fcn.140150da4
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x60], rax
movups xmm0, xmmword [rsp + 0x38]
movaps xmmword [rsp + 0x50], xmm0
cmp byte [rsp + 0x67], 0
mov rcx, rsi
jns 0x14012224a
mov rcx, qword [rsp + 0x50]
call r13
cmp eax, 0xffffffff
je 0x14012225d
bt eax, 0xa
jae 0x1401222ce
jmp 0x140122327
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [rax - 2]
cmp ecx, 2
jb 0x1401222c4
cmp eax, 0x7b
je 0x1401222c4
test bpl, 1
sete dl
or dl, byte [rsp + 0x37]
jne 0x1401222bd
movzx edx, byte [rsp + 0x67]
test dl, dl
cmovs rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x50]
cmovns r8, rsi
test rdx, rdx
je 0x1401222bd
add rdx, rdx
test rdx, rdx
je 0x1401222bd
lea r9, [rdx - 2]
cmp word [r8 + rdx - 2], 0x5c
mov rdx, r9
jne 0x14012229d
mov ebx, 2
cmp r9, 6
je 0x1401222c4
mov ebx, 1
mov edi, eax
cmp ecx, 2
jb 0x1401222ce
cmp eax, 0x7b
jne 0x140122312
movzx eax, byte [rsp + 0x67]
test al, al
cmovs rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
cmovns rcx, rsi
mov r15, 0xffffffffffffffff
mov bpl, 1
test rax, rax
je 0x140122316
add rax, rax
test rax, rax
je 0x140122316
lea rdx, [rax - 2]
cmp word [rcx + rax - 2], 0x5c
mov rax, rdx
jne 0x1401222f6
sar rdx, 1
mov r15, rdx
jmp 0x140122316
test ebx, ebx
jne 0x140122360
cmp r15, 2
ja 0x140122200
mov edi, 0x1126
jmp 0x140122329
xor edi, edi
cmp byte [rsp + 0x67], 0
jns 0x14012233a
mov rcx, qword [rsp + 0x50]
call fcn.140150da4
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140152280
mov eax, edi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp ebx, 2
je 0x140122320
jmp 0x140122329