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

Disassembly:
push rbp
push rsi
push rdi
push r14
push r15
lea rbp, [rsp - 0x1b0]
sub rsp, 0x2b0
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x2f0], rbx
mov rax, qword [0x1403ad830]
xor rax, rsp
mov qword [rbp + 0x1a8], rax
mov rbx, rdx
lea rdx, [rbp + 0x180]
call fcn.1400222a0
nop
lea rdx, [rbp + 0x158]
mov rcx, rbx
call fcn.1400222a0
nop
lea rdx, [rbp + 0x130]
lea rcx, [rbp + 0x180]
call fcn.1400222a0
nop
lea rcx, [rbp + 0x130]
call fcn.14002aa20
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x1400164a2
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
lea rcx, [rbp + 0x130]
call fcn.14001d440
mov ebx, 0xffffffff
lea rcx, [rbp + 0x158]
call fcn.14001d440
nop
lea rcx, [rbp + 0x180]
call fcn.14001d440
mov eax, ebx
mov rcx, qword [rbp + 0x1a8]
xor rcx, rsp
call fcn.140283120
mov rbx, qword [rsp + 0x2f0]
add rsp, 0x2b0
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
lea rcx, [rbp + 0x130]
call fcn.14001d440
test bl, 0x10
je 0x14001645c
lea rdx, [rbp + 0x130]
lea rcx, [rbp + 0x158]
call fcn.1400222a0
nop
lea rcx, [rbp + 0x130]
call fcn.14002aa20
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x1400164ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
nop
jmp 0x140016450
lea rcx, [rbp + 0x130]
call fcn.14001d440
test bl, 0x10
je 0x14001645c
xor r8d, r8d
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x180]
call fcn.140026070
test al, al
je 0x140016525
xor ebx, ebx
jmp 0x140016461
lea rcx, [rsp + 0x30]
call fcn.14004c020
nop
mov byte [rsp + 0x30], 1
lea rdx, [rbp + 0x180]
lea rcx, [rsp + 0x30]
call fcn.14004cd60
lea rcx, [rsp + 0x30]
call fcn.14004d840
lea rcx, [rbp + 0x30]
call fcn.14004c020
nop
mov byte [rbp + 0x30], 1
lea rdx, [rbp + 0x158]
lea rcx, [rbp + 0x30]
call fcn.14004cd60
lea rcx, [rbp + 0x30]
call fcn.14004d840
mov rcx, qword [rsp + 0x48]
mov r8, qword [rsp + 0x40]
sub rcx, r8
movabs r15, 0x4924924924924925
mov rax, r15
imul rcx
mov r10, rdx
sar r10, 5
mov rax, r10
shr rax, 0x3f
add r10, rax
mov rcx, qword [rbp + 0x48]
mov r9, qword [rbp + 0x40]
sub rcx, r9
mov rax, r15
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r10, rdx
je 0x1400165d3
mov ebx, 0xfffffffd
jmp 0x14001669c
xor ebx, ebx
mov r14d, ebx
test r10, r10
je 0x14001669c
mov eax, ebx
mov esi, ebx
nop word [rax + rax]
imul rdi, rax, 0x70
lea rdx, [r9 + 0x28]
add rdx, rdi
lea rcx, [r8 + 0x28]
add rcx, rdi
xor r8d, r8d
call fcn.140026bd0
test al, al
jne 0x140016697
mov r8, qword [rsp + 0x40]
mov r9, qword [rbp + 0x40]
movzx eax, byte [rsi + r8 + 0x6c]
cmp al, byte [rsi + r9 + 0x6c]
jne 0x140016690
test al, al
jne 0x140016652
mov rax, qword [rsi + r9 + 0x58]
cmp qword [rsi + r8 + 0x58], rax
jne 0x140016689
lea rdx, [rdi + r9]
lea rcx, [rdi + r8]
call fcn.140016120
test eax, eax
jne 0x140016682
mov r8, qword [rsp + 0x40]
mov r9, qword [rbp + 0x40]
inc r14d
add rsi, 0x70
mov rcx, qword [rsp + 0x48]
sub rcx, r8
mov rax, r15
imul rcx
sar rdx, 5
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rax, r14d
cmp rax, rdx
jae 0x14001669c
jmp 0x1400165f0
mov ebx, 0xfffffff8
jmp 0x14001669c
mov ebx, 0xfffffffb
jmp 0x14001669c
mov ebx, 0xfffffff9
jmp 0x14001669c
mov ebx, 0xfffffffc
lea rcx, [rbp + 0x30]
call fcn.1400154a0
nop
lea rcx, [rsp + 0x30]
call fcn.1400154a0
jmp 0x140016461