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

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov r14b, r8b
mov r12, rdx
mov rdi, rcx
add rcx, 0x18
call fcn.180029b28
mov rbx, qword [rdi]
test rbx, rbx
je 0x18002ac66
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rdi], 0
and dword [rdi + 8], 0
and dword [rdi + 0xc], 0
mov rdx, r12
mov rcx, rdi
call fcn.18002339c
mov esi, eax
test eax, eax
js 0x18002ae1b
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.18015fd40
mov qword [rsp + 0x80], rax
test rax, rax
je 0x18002acaa
mov rdx, r12
mov rcx, rax
call fcn.18003a020
mov rbp, rax
jmp 0x18002acac
xor ebp, ebp
mov eax, 0x8007000e
test rbp, rbp
je 0x18002acdb
mov rcx, rbp
call fcn.180038b40
test al, al
jne 0x18002acdd
mov esi, 0x800700a7
mov rcx, rbp
call fcn.18003a330
mov rcx, rbp
call fcn.18015ea10
xor ebp, ebp
jmp 0x18002acdd
mov esi, eax
test esi, esi
js 0x18002adce
and qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x18002ad2d
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
js 0x18002adbf
xor edx, edx
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
mov dword [rdi + 8], ebx
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
test rax, rax
mov ecx, 0x8007000e
cmove esi, ecx
test esi, esi
js 0x18002adbf
mov ebx, dword [rdi + 0x14]
add ebx, dword [rdi + 0x10]
and dword [rsp + 0x80], 0
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x80]
mov r8d, dword [rdi + 8]
mov rdx, rax
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x18002adab
xor edx, edx
mov eax, dword [rsp + 0x80]
div ebx
mov dword [rdi + 0xc], eax
jmp 0x18002adbf
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp r12, 0xffffffffffffffff
je 0x18002adce
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbp, rbp
je 0x18002adeb
mov rcx, rbp
call fcn.180038ba0
mov rcx, rbp
call fcn.18003a330
mov rcx, rbp
call fcn.18015ea10
test esi, esi
js 0x18002ae1b
test r14b, r14b
je 0x18002ae4c
mov rcx, qword [rdi]
test rcx, rcx
je 0x18002ae4c
cmp dword [rdi + 0xc], 0
je 0x18002ae4c
mov r8d, dword [rdi + 0x14]
add r8d, dword [rdi + 0x10]
mov edx, dword [rdi + 0xc]
lea r9, [0x18002349c]
call fcn.180163360
jmp 0x18002ae4c
lea rcx, [rdi + 0x18]
call fcn.180029b28
mov rbx, qword [rdi]
test rbx, rbx
je 0x18002ae44
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
and qword [rdi], 0
and dword [rdi + 8], 0
and dword [rdi + 0xc], 0
mov eax, esi
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret