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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rcx, qword [0x180041bd8]
xor eax, eax
mov qword [rsp + 0x30], rax
xor r9d, r9d
mov dword [rsp + 0x28], eax
xor r8d, r8d
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
lea r14, [0x180001f30]
mov ebx, 8
mov rsi, rax
mov qword [rbp - 0x40], r14
lea rax, [0x180001ff0]
mov edi, ebx
mov qword [rbp - 0x20], rax
lea r15, [0x180001f60]
lea rax, [0x180002020]
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x18], rax
lea r12, [0x180001f90]
lea rax, [0x180002050]
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x10], rax
lea r13, [0x180001fc0]
lea rax, [0x180002080]
mov qword [rbp - 0x28], r13
mov qword [rbp - 8], rax
nop
call fcn.1800124ac
and eax, 0x80000007
jge 0x180002393
dec eax
or eax, 0xfffffff8
inc eax
cdqe
call qword [rbp + rax*8 - 0x40]
sub rdi, 1
jne 0x180002380
cmp rsi, 0xffffffffffffffff
jne 0x1800023de
xor r9d, r9d
lea r8, str.hello
lea rdx, str.hello
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
lea rcx, str.____An_error_occured_when_trying_to_open_the_PE_file___n
call fcn.180001240
mov rcx, 0xffffffffffffffff
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x18000255d
lea rax, [0x180001ff0]
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x20], rax
mov rdi, rbx
lea rax, [0x180002020]
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x18], rax
lea rax, [0x180002050]
mov qword [rbp - 0x10], rax
lea rax, [0x180002080]
mov qword [rbp - 8], rax
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], r13
nop dword [rax]
call fcn.1800124ac
and eax, 0x80000007
jge 0x180002433
dec eax
or eax, 0xfffffff8
inc eax
cdqe
call qword [rbp + rax*8 - 0x40]
sub rdi, 1
jne 0x180002420
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp eax, 0xffffffff
jne 0x18000246d
lea rcx, str.____An_error_occured_when_trying_to_get_the_PE_file_size___n
call fcn.180001240
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x18000255d
lea rax, [0x180001ff0]
mov qword [rbp - 0x40], r14
mov qword [rbp - 0x20], rax
lea rax, [0x180002020]
mov qword [rbp - 0x18], rax
lea rax, [0x180002050]
mov qword [rbp - 0x10], rax
lea rax, [0x180002080]
mov qword [rbp - 8], rax
mov qword [rbp - 0x38], r15
mov qword [rbp - 0x30], r12
mov qword [rbp - 0x28], r13
nop dword [rax]
call fcn.1800124ac
and eax, 0x80000007
jge 0x1800024c3
dec eax
or eax, 0xfffffff8
inc eax
movsxd rcx, eax
call qword [rbp + rcx*8 - 0x40]
sub rbx, 1
jne 0x1800024b0
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rdi
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x180002507
lea rcx, str.____An_error_occured_when_trying_to_allocate_memory_for_the_PE_file_content___n
call fcn.180001240
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1800023ca
xor r9d, r9d
mov qword [rsp + 0x20], 0
mov r8d, edi
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x180002551
lea rcx, str.____An_error_occured_when_trying_to_read_the_PE_file_content___n
call fcn.180001240
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbx, rbx
je 0x1800023d7
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x18000255d
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, rbx
lea r11, [rsp + 0x80]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret