Function at 0x1400151e8
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor r10d, r10d
mov ebx, r9d
mov ebp, r9d
mov qword [rax - 0x30], r10
lea r12d, [r10 + 1]
mov edi, 0xfffffffe
and ebx, r12d
lea r11d, [r10 + 3]
mov r14d, r8d
mov eax, ebx
mov r13, rdx
mov esi, r10d
neg eax
mov r8d, r11d
sbb eax, eax
and eax, edi
add eax, 4
mov dword [rsp + 0x40], eax
mov eax, dword [0x140042e20]
neg eax
sbb r9d, r9d
and r9d, 0x2000000
test bpl, 4
je 0x140015261
cmp qword [rsp + 0xb0], r10
je 0x140015285
mov r8d, r10d
mov r15, qword [rsp + 0xa8]
test r15, r15
je 0x140015271
mov qword [r15], r10
test ebx, ebx
cmovne r12d, r11d
test rdx, rdx
je 0x140015280
or r12d, 8
test rcx, rcx
jne 0x140015295
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140015490
mov qword [rsp + 0x30], r10
mov dword [rsp + 0x28], r9d
mov edx, ebp
or edx, edi
xor r9d, r9d
mov dword [rsp + 0x20], r11d
shl edx, 0x1e
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x14001547d
lea rdx, [rsp + 0x48]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
xor ecx, ecx
test eax, eax
je 0x14001547d
cmp dword [rsp + 0x4c], ecx
je 0x1400152ef
mov ecx, 0x20010600
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x14001547d
mov eax, dword [rsp + 0x48]
test r14d, r14d
je 0x1400152fd
cmp r14d, eax
jb 0x1400152df
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], r13
test bpl, 2
je 0x1400153b7
cmp r14d, eax
mov edx, 4
cmovb r14d, eax
or rcx, 0xffffffffffffffff
mov r9d, r14d
call fcn.140014e24
mov rbx, rax
test rax, rax
je 0x14001547d
cmp rax, 0xffffffffffffffff
je 0x14001546a
xor r9d, r9d
mov eax, r14d
xor r8d, r8d
lea edx, [r9 + 2]
mov rcx, rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rsi, rax
test rax, rax
je 0x14001546a
mov r8d, dword [rsp + 0x48]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x98]
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14001545c
mov ecx, dword [rsp + 0x48]
cmp dword [rsp + 0x98], ecx
jne 0x14001545c
mov rbp, qword [rsp + 0xa0]
test rbp, rbp
jne 0x14001540f
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
xor esi, esi
jmp 0x14001540f
neg ebx
mov r9d, r14d
mov rcx, rdi
sbb edx, edx
and edx, 2
add edx, 2
call fcn.140014e24
mov rbx, rax
test rax, rax
je 0x14001547d
cmp rax, 0xffffffffffffffff
je 0x14001546a
mov rbp, qword [rsp + 0xa0]
test rbp, rbp
je 0x14001540f
mov edx, dword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rsi, rax
test rax, rax
je 0x14001546a
test r15, r15
je 0x14001541e
test r13, r13
je 0x14001541e
mov qword [r15], rbx
jmp 0x140015429
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
mov rax, qword [rsp + 0xb0]
test rax, rax
je 0x14001543b
mov qword [rax], rdi
jmp 0x140015444
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edi, edi
test rbp, rbp
je 0x1400154b0
mov edx, dword [rsp + 0x48]
mov r8d, r12d
mov rcx, rsi
call rbp
test rax, rax
jne 0x140015492
test rsi, rsi
je 0x14001546a
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
lea rax, [rbx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x14001547d
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rax, [rdi - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140015490
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
or rax, 0xffffffffffffffff
jmp 0x140015492