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

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rsp - 0x37]
sub rsp, 0xd0
mov rax, qword [0x1403b9010]
xor rax, rsp
mov qword [rbp + 0x27], rax
xor r12d, r12d
mov qword [rbp - 0x49], r12
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], 0x8000000
lea esi, [r12 + 3]
mov dword [rsp + 0x20], esi
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rbp - 0x49], rax
cmp rax, 0xffffffffffffffff
jne 0x14003c57c
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov eax, 0x80004005
test edi, edi
cmovns edi, eax
jmp 0x14003c725
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
cmp eax, 0xffffffff
je 0x14003c596
cmp edi, 0x6400000
jbe 0x14003c5a0
mov edi, 0x8000ffff
jmp 0x14003c725
mov qword [rbp - 0x51], r12
lea ecx, [rdi + 1]
call fcn.14005f8c4
mov r15, rax
mov qword [rbp - 0x51], rax
mov qword [rsp + 0x20], r12
lea r9, [rbp - 0x59]
mov r8d, edi
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x14003c5f2
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov eax, 0x80004005
test edi, edi
cmovns edi, eax
jmp 0x14003c719
cmp dword [rbp - 0x59], edi
je 0x14003c601
mov edi, 0x8000ffff
jmp 0x14003c719
mov byte [rdi + r15], r12b
xorps xmm0, xmm0
movups xmmword [rbp - 0x39], xmm0
mov word [rbp - 0x2b], r12w
movdqa xmmword [rbp - 0x29], xmm0
xorps xmm1, xmm1
movdqa xmmword [rbp - 0x19], xmm1
movdqa xmmword [rbp - 9], xmm0
mov qword [rbp + 7], r12
mov qword [rbp + 0xf], 0x400
mov dword [rbp + 0x17], r12d
mov qword [rbp + 0x1f], r12
mov ecx, reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
call fcn.14005f888
mov qword [rbp - 0x41], rax
mov qword [rax], r12
mov qword [rax + 8], 0x10000
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], r12
mov qword [rbp - 0x29], rax
mov qword [rbp - 0x21], rax
mov r8d, dword [rbp - 0x59]
mov rdx, r15
lea rcx, [rbp - 0x39]
call fcn.14003d298
cmp dword [rbp + 0x17], r12d
jne 0x14003c6a3
cmp word [rbp - 0x2b], si
jne 0x14003c6a3
lea rcx, [rbp - 0x39]
call fcn.14003becc
mov edi, eax
test eax, eax
js 0x14003c6a8
lea rcx, [rbp - 0x39]
call fcn.14003c244
mov edi, eax
test eax, eax
js 0x14003c6a8
mov edi, r12d
jmp 0x14003c6a8
mov edi, 0x8000ffff
mov rsi, qword [rbp - 0x21]
test rsi, rsi
je 0x14003c701
cmp qword [rsi], r12
je 0x14003c6d3
mov r14, qword [rsi]
mov rcx, r14
cmp r14, qword [rsi + 0x10]
je 0x14003c6d3
mov r14, qword [r14 + 0x10]
call fcn.14006c080
mov qword [rsi], r14
test r14, r14
jne 0x14003c6b9
mov rax, qword [rsi]
test rax, rax
je 0x14003c6e5
cmp rax, qword [rsi + 0x10]
jne 0x14003c6e5
mov qword [rax + 8], r12
mov edx, 1
mov rcx, qword [rsi + 0x20]
call fcn.14005f854
mov edx, reloc.OLEAUT32.dll_SafeArrayAllocDescriptorEx
mov rcx, rsi
call fcn.14005f854
nop
mov rcx, qword [rbp - 9]
call fcn.14006c080
mov edx, 1
mov rcx, qword [rbp - 0x11]
call fcn.14005f854
nop
mov rcx, r15
call fcn.14005f854
mov qword [rbp - 0x51], r12
test rbx, rbx
je 0x14003c737
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbp - 0x49], r12
mov eax, edi
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.14005f5e0
lea r11, [rsp + 0xd0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret