Function at 0x1401b44bc
Capabilities:
Check if file exists
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xe0
mov qword [rbp + 0x1f], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov r14, rcx
xor r13d, r13d
mov r12d, r13d
lea rcx, [rbp - 0x31]
call fcn.14000cb18
nop
mov rcx, qword [rbp - 0x31]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
or r15, 0xffffffffffffffff
test eax, eax
je 0x1401b4ab8
mov qword [rbp - 0x71], r13
mov qword [rbp - 0x69], r13
mov dword [rsp + 0x28], 0x80
lea r9d, [r13 + 3]
mov dword [rsp + 0x20], r9d
mov r8d, 0x80000000
mov rdx, qword [rbp - 0x31]
lea rcx, [rbp - 0x71]
call fcn.14007db5c
mov r12d, eax
mov rdi, qword [rbp - 0x71]
test eax, eax
jne 0x1401b4aa9
lea rdx, [rbp - 5]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov dword [rbp - 9], eax
cmp eax, 0xffffffff
jne 0x1401b456f
call fcn.14001072c
test eax, eax
js 0x1401b4aa3
mov rbx, qword [rbp - 9]
test rbx, rbx
je 0x1401b4aa3
cmp rbx, 0x10
je 0x1401b4aa3
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x30]
mov r8d, 8
lea rdx, [r14 + 0x20]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1401b45b1
call fcn.14001072c
cmp dword [rsp + 0x30], 8
jne 0x1401b4aa3
mov ecx, dword [r14 + 0x20]
mov r8d, ecx
shl r8d, 0x10
mov eax, ecx
mov r9d, 0xff00
and eax, r9d
add r8d, eax
shl r8d, 8
mov eax, ecx
shr eax, 8
and eax, r9d
add r8d, eax
shr ecx, 0x18
add r8d, ecx
mov dword [r14 + 0x20], r8d
mov ecx, dword [r14 + 0x24]
mov edx, ecx
shl edx, 0x10
mov eax, ecx
and eax, r9d
add edx, eax
shl edx, 8
mov eax, ecx
shr eax, 8
and eax, r9d
add edx, eax
shr ecx, 0x18
add edx, ecx
mov dword [r14 + 0x24], edx
cmp r8d, 0x636f6f6b
jne 0x1401b4aa3
mov edx, edx
test edx, edx
je 0x1401b4aa3
mov ecx, edx
shl ecx, 2
cmp rcx, rbx
ja 0x1401b4aa3
mov esi, 4
mov eax, esi
mul rdx
cmovo rax, r15
mov rcx, rax
call fcn.1400b9290
mov rbx, rax
mov qword [rbp - 0x51], rax
mov ecx, dword [r14 + 0x24]
mov eax, esi
mul rcx
cmovo rax, r15
mov rcx, rax
call fcn.1400b9290
mov qword [rbp - 0x49], rax
mov dword [rsp + 0x30], r13d
mov r8d, dword [r14 + 0x24]
shl r8d, 2
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x30]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1401b469b
call fcn.14001072c
mov edx, dword [r14 + 0x24]
mov eax, edx
shl eax, 2
cmp dword [rsp + 0x30], eax
je 0x1401b46b5
mov r12d, 1
jmp 0x1401b4a8e
lea rcx, [rbp - 0x51]
call fcn.1401b41cc
lea r8, [rbp - 0x49]
lea rdx, [rbp - 0x51]
mov rcx, r14
call fcn.1401b421c
mov r15d, r13d
cmp dword [r14 + 0x24], r13d
jbe 0x1401b4a8a
mov rbx, qword [rbp - 0x51]
mov rax, qword [rbp - 0x49]
sub rax, rbx
mov qword [rbp - 0x11], rax
mov esi, 1
mov eax, dword [rax + rbx]
mov qword [rbp - 1], rax
xor r9d, r9d
lea r8, [rbp + 3]
mov edx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
or r12d, 0xffffffff
cmp eax, r12d
jne 0x1401b4716
call fcn.14001072c
mov dword [rsp + 0x30], r13d
mov qword [rbp - 0x41], 0
mov dword [rbp - 0x39], r13d
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x30]
mov r8d, reloc.OLEAUT32.dll_VariantTimeToDosDateTime
lea rdx, [rbp - 0x41]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1401b474d
call fcn.14001072c
cmp dword [rsp + 0x30], 0xc
jne 0x1401b4a87
mov dword [rbp - 0x79], r13d
mov dword [rsp + 0x30], r13d
mov eax, dword [rbp - 0x39]
add eax, 4
mov qword [rbp + 0x17], rax
mov r9d, esi
lea r8, [rbp + 0x1b]
mov edx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, r12d
jne 0x1401b4787
call fcn.14001072c
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x30]
mov r8d, 4
lea rdx, [rbp - 0x79]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1401b47ad
call fcn.14001072c
cmp dword [rsp + 0x30], 4
jne 0x1401b4a87
mov rax, 0xffffffffffffffec
mov qword [rbp + 0xf], rax
mov r9d, esi
lea r8, [rbp + 0x13]
mov edx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
cmp eax, r12d
jne 0x1401b47df
call fcn.14001072c
mov qword [rbp - 0x29], r13
mov r9d, esi
lea r8, [rbp - 0x25]
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov dword [rbp - 0x29], eax
cmp eax, r12d
jne 0x1401b480a
call fcn.14001072c
test eax, eax
js 0x1401b4a87
mov rax, qword [rbp - 0x29]
test rax, rax
je 0x1401b4a87
mov edi, dword [rbp - 0x79]
add rdi, rax
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0x38]
mov rdx, rdi
lea rcx, [rbp - 0x71]
call fcn.1401b43ec
mov r12d, eax
test eax, eax
jne 0x1401b4a5c
lea ecx, [rax + 0x10]
call fcn.1400be454
mov r13, rax
test rax, rax
je 0x1401b487e
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r13], rax
jmp 0x1401b4881
xor r13d, r13d
mov qword [rbp - 0x61], r13
and qword [rbp - 0x59], 0
mov rdx, r13
lea rcx, [rbp + 7]
call fcn.140090660
mov rdx, qword [rbp - 0x59]
mov rcx, qword [rax]
mov qword [rbp - 0x59], rcx
mov qword [rax], rdx
mov rdi, qword [rbp + 7]
test rdi, rdi
je 0x1401b48cb
lock dec dword [rdi + 8]
jne 0x1401b48cb
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lock dec dword [rdi + 0xc]
jne 0x1401b48cb
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
mov r8, r13
mov rdx, r13
lea rcx, [rbp - 0x61]
call fcn.1400020a0
nop
lea rdx, [rsp + 0x38]
mov rcx, qword [rbp - 0x61]
call fcn.14000c244
mov r11d, dword [rbp - 0x3d]
mov rax, qword [rbp - 0x61]
mov dword [rax + 8], r11d
mov ecx, dword [rbx]
mov rax, qword [rbp - 0x61]
mov dword [rax + 0xc], ecx
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp - 0x21], rax
mov rax, qword [rbp - 0x11]
mov eax, dword [rax + rbx]
mov dword [rbp - 0x19], eax
mov eax, dword [rbx]
mov dword [rbp - 0x15], eax
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x21]
call fcn.14000c244
lea rdx, [rbp - 0x21]
mov rcx, r14
call fcn.14009003c
mov rcx, qword [rbp + 0x7f]
test rcx, rcx
je 0x1401b4952
mov rax, qword [rcx]
lea rdx, [rbp - 0x61]
call qword [rax]
mov r13, qword [rbp + 0x77]
test r13, r13
je 0x1401b4970
mov rax, qword [r13]
mov rcx, r13
call qword [rax + 0x10]
xor r13d, r13d
test al, al
jne 0x1401b49f6
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1401b4990
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdi, qword [rbp - 0x59]
test rdi, rdi
je 0x1401b49b8
lock dec dword [rdi + 8]
jne 0x1401b49b8
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lock dec dword [rdi + 0xc]
jne 0x1401b49b8
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x1401b49d8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
add r15d, esi
add rbx, 4
mov rdi, qword [rbp - 0x71]
cmp r15d, dword [r14 + 0x24]
jae 0x1401b4a8a
mov rax, qword [rbp - 0x11]
jmp 0x1401b46ef
mov rdx, qword [rbp - 0x21]
add rdx, 0xffffffffffffffe8
or r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b4a1b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rbx, qword [rbp - 0x59]
test rbx, rbx
je 0x1401b4a51
mov eax, r15d
lock xadd dword [rbx + 8], eax
add eax, r15d
jne 0x1401b4a51
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r15d
lock xadd dword [rbx + 0xc], eax
add eax, r15d
jne 0x1401b4a51
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
jmp 0x1401b4a69
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
or r15, 0xffffffffffffffff
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b4a81
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rdi, qword [rbp - 0x71]
jmp 0x1401b4a8e
mov r12d, esi
or r15, 0xffffffffffffffff
mov rcx, qword [rbp - 0x49]
call fcn.1400bee7c
nop
mov rcx, qword [rbp - 0x51]
call fcn.1400bee7c
jmp 0x1401b4aa9
mov r12d, 1
test rdi, rdi
je 0x1401b4ab8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rdx, qword [rbp - 0x31]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
add eax, r15d
test eax, eax
jg 0x1401b4ad8
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, r12d
mov rbx, qword [rsp + 0x120]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret