Function at 0x18001112c
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.18001072c
mov rbx, qword [rdi]
test rbx, rbx
je 0x18001117e
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.18000fec4
mov esi, eax
test eax, eax
js 0x180011333
mov ecx, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.180026090
mov qword [rsp + 0x80], rax
test rax, rax
je 0x1800111c2
mov rdx, r12
mov rcx, rax
call fcn.180021530
mov rbp, rax
jmp 0x1800111c4
xor ebp, ebp
mov eax, 0x8007000e
test rbp, rbp
je 0x1800111f3
mov rcx, rbp
call fcn.180020300
test al, al
jne 0x1800111f5
mov esi, 0x800700a7
mov rcx, rbp
call fcn.180021840
mov rcx, rbp
call fcn.180025550
xor ebp, ebp
jmp 0x1800111f5
mov esi, eax
test esi, esi
js 0x1800112e6
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 0x180011245
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
test esi, esi
js 0x1800112d7
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 0x1800112d7
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 0x1800112c3
xor edx, edx
mov eax, dword [rsp + 0x80]
div ebx
mov dword [rdi + 0xc], eax
jmp 0x1800112d7
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx esi, ax
or esi, 0x80070000
test eax, eax
cmovle esi, eax
cmp r12, 0xffffffffffffffff
je 0x1800112e6
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rbp, rbp
je 0x180011303
mov rcx, rbp
call fcn.180020360
mov rcx, rbp
call fcn.180021840
mov rcx, rbp
call fcn.180025550
test esi, esi
js 0x180011333
test r14b, r14b
je 0x180011364
mov rcx, qword [rdi]
test rcx, rcx
je 0x180011364
cmp dword [rdi + 0xc], 0
je 0x180011364
mov r8d, dword [rdi + 0x14]
add r8d, dword [rdi + 0x10]
mov edx, dword [rdi + 0xc]
lea r9, [0x18000ffc4]
call fcn.180028cc0
jmp 0x180011364
lea rcx, [rdi + 0x18]
call fcn.18001072c
mov rbx, qword [rdi]
test rbx, rbx
je 0x18001135c
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