Function at 0x1400f2c80
Capabilities:
Get file size
Get system information on windows
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], r8
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0x90
and qword [rbp - 9], 0
mov r12, rdx
and qword [rbp - 0x19], 0
lea rdx, [rbp - 0x11]
and qword [rbp - 0x11], 0
or rsi, 0xffffffffffffffff
mov rcx, r12
mov qword [rbp - 1], rsi
mov r13, r9
call fcn.1400777a8
mov rbx, qword [rbp - 0x11]
mov edi, eax
test eax, eax
jns 0x1400f2cdf
mov ecx, eax
jmp 0x1400f2e6f
and qword [rsp + 0x30], 0
xor r9d, r9d
and dword [rsp + 0x28], 0
mov edx, 0x80000000
mov rcx, rbx
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 5]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
lea rcx, [rax + 1]
test rcx, 0xfffffffffffffffe
jne 0x1400f2d18
mov cl, 1
jmp 0x1400f2d21
mov rsi, rax
mov qword [rbp - 1], rax
xor cl, cl
xor eax, eax
test cl, cl
cmove rax, rsi
test rax, rax
jne 0x1400f2d55
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x1400f2d42
mov edi, 0x80004005
jmp 0x1400f2e6d
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
jmp 0x1400f2e6d
lea rax, [rsi - 1]
cmp rax, 0xfffffffffffffffd
lea rdx, [rbp - 0x29]
seta al
xor ecx, ecx
test al, al
cmove rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r14d, eax
cmp eax, 0xffffffff
je 0x1400f2d2e
cmp dword [rbp - 0x29], 0
je 0x1400f2d8c
mov ecx, 0x80070057
mov edi, ecx
jmp 0x1400f2e6f
cmp r14d, 0x100000
ja 0x1400f2d80
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, r14
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15, rax
test rax, rax
je 0x1400f2e68
lea rcx, [rsi - 1]
mov qword [rbp - 9], rax
cmp rcx, 0xfffffffffffffffd
lea r9, [rbp - 0x25]
mov r8d, r14d
seta dl
xor ecx, ecx
test dl, dl
mov rdx, rax
cmove rcx, rsi
and qword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400f2d2e
cmp dword [rbp - 0x25], r14d
je 0x1400f2df7
mov edi, 0x8000ffff
jmp 0x1400f2e6d
mov rsi, qword [rbp + 0x67]
mov rsi, qword [rsi + 0xb8]
mov rax, qword [rsi]
mov rdi, qword [rax + 0x18]
mov rcx, rdi
call qword [0x1403af620]
lea rax, [rbp - 0x21]
mov r8d, r14d
lea r9, [rbp - 0x19]
mov qword [rsp + 0x20], rax
mov rdx, r15
mov rcx, rsi
call rdi
mov edi, eax
test eax, eax
js 0x1400f2cd8
mov r8, qword [rbp + 0x77]
mov r9, r13
mov edx, dword [rbp - 0x21]
mov rcx, qword [rbp - 0x19]
call fcn.1400f4af8
mov edi, eax
test eax, eax
js 0x1400f2cd8
lea rdx, [r13 + 0x20]
mov rcx, r12
call fcn.140078fc0
mov edi, eax
test eax, eax
jns 0x1400f2e74
jmp 0x1400f2cd8
mov edi, 0x8007000e
mov ecx, edi
call fcn.1400790f8
mov ecx, edi
call fcn.140079118
test rbx, rbx
je 0x1400f2e9c
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea r8, [rbx - 4]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
call fcn.140079118
and qword [rbp + 0x17], 0
lea rax, [0x140001b38]
xor r9d, r9d
mov qword [rbp + 0xf], rax
lea rax, [rbp - 0x19]
mov qword [rbp + 7], 3
lea rdx, [rbp + 7]
mov qword [rbp + 0x1f], rax
mov ecx, 0xb9
lea r8d, [r9 + 0x20]
call sub.ntdll.dll_NtQuerySystemInformation
lea rcx, [rbp - 9]
call fcn.14006f380
lea rcx, [rbp - 1]
call fcn.140075ab4
mov rbx, qword [rsp + 0xd8]
mov eax, edi
add rsp, 0x90
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret