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

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x78
xor edx, edx
mov rdi, rcx
call fcn.1400ffffc
mov rcx, qword [rdi + 0x18]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, qword [rdi + 0x18]
mov r9d, 1
xor r8d, r8d
xor edx, edx
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov r12d, 0x19000
sub ebx, eax
mov r14d, eax
cmp ebx, r12d
cmovb r12d, ebx
mov ecx, r12d
mov dword [rbp - 0x44], r12d
call fcn.140109e80
mov qword [rbp - 0x40], rax
test rax, rax
je 0x1401050e7
mov eax, 0x88888889
xor r8d, r8d
mov rcx, rdi
mul ebx
shr edx, 4
call fcn.140100038
mov rdx, qword [rbp - 0x40]
mov rcx, qword [rdi + 0x18]
xor eax, eax
lea r9, [rbp + 0x48]
mov r8d, r12d
mov dword [rbp + 0x60], r14d
mov r15d, r14d
mov esi, eax
mov ebx, eax
mov dword [rbp + 0x58], eax
mov dword [rbp + 0x50], eax
movzx r13d, ax
mov dword [rdi + 0x48], eax
mov dword [rbp + 0x48], eax
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
jmp 0x1401050a9
cmp dword [rbp + 0x48], r12d
mov eax, r8d
mov r12d, r8d
setb al
add dword [rbp + 0x48], esi
je 0x1401050b4
cdqe
mov qword [rbp - 0x38], rax
jmp 0x140104f3f
mov rax, qword [rbp - 0x38]
mov esi, dword [rbp + 0x48]
sub esi, r12d
cmp esi, 4
jae 0x140104f53
test rax, rax
je 0x140105067
test esi, esi
je 0x140104ffd
mov rcx, qword [rdi + 0x20]
lea r9, [rbp - 0x30]
mov edx, r12d
mov rax, qword [rcx]
add rdx, qword [rbp - 0x40]
mov qword [rsp + 0x20], r9
lea r9, [rbp - 0x48]
mov r8d, esi
call qword [rax + 0x10]
mov rdx, qword [rbp - 0x30]
lea rcx, [rdx - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x140104fec
add r12d, eax
add r14d, eax
cmp rdx, 1
jne 0x140104fc9
mov eax, dword [rbp - 0x48]
cmp ax, 0xd
je 0x140104fa5
cmp ax, 0xa
jne 0x140104fc9
xor r8d, r8d
mov edx, 1
test r13w, r13w
je 0x140104fc0
cmp r13w, ax
je 0x140104fc0
mov r13d, r8d
mov eax, edx
jmp 0x14010500f
movzx r13d, ax
mov eax, r8d
jmp 0x14010500f
add dword [rbp + 0x50], edx
xor r8d, r8d
inc ebx
cmp ebx, 0x12c
mov ecx, r8d
mov dword [rbp + 0x58], ebx
movzx r13d, r8w
mov edx, r8d
mov r15d, r14d
sete cl
jmp 0x140105004
inc r12d
inc r14d
inc r15d
xor r8d, r8d
jmp 0x140104f3b
mov ecx, 1
mov edx, ecx
mov eax, r8d
test ecx, ecx
je 0x140104f3b
test eax, eax
jne 0x140105051
mov ecx, dword [rbp + 0x60]
mov eax, dword [rbp + 0x50]
mov ebx, r8d
sub r15d, ecx
test edx, edx
mov dword [rbp - 0x28], ecx
mov rcx, rdi
sete bl
mov dword [rbp - 0x20], eax
mov dword [rbp - 0x1c], r15d
call fcn.140105b60
movups xmm0, xmmword [rbp - 0x28]
movups xmmword [rax], xmm0
mov dword [rax + 0x10], ebx
cmp dword [rdi + 0x48], r15d
jae 0x14010504a
mov dword [rdi + 0x48], r15d
xor r8d, r8d
test esi, esi
je 0x1401050b4
mov ebx, r8d
mov r15d, r14d
mov dword [rbp + 0x60], r14d
mov dword [rbp + 0x58], ebx
mov dword [rbp + 0x50], r8d
jmp 0x140104f3b
mov rcx, qword [rbp - 0x40]
mov edx, r12d
mov r8d, esi
add rdx, qword [rbp - 0x40]
mov ebx, esi
call qword [sym.imp.MSVCR120.dll_memmove]
mov r12d, dword [rbp - 0x44]
mov rdx, qword [rbp - 0x40]
xor ecx, ecx
sub r12d, esi
lea r9, [rbp + 0x48]
mov dword [rbp + 0x48], ecx
mov qword [rsp + 0x20], rcx
mov rcx, qword [rdi + 0x18]
mov r8d, r12d
add rdx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, dword [rbp + 0x58]
xor r8d, r8d
test eax, eax
jne 0x140104f1d
mov rcx, qword [rbp - 0x40]
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
add dword [rdi + 0x48], 4
mov eax, 0x9c40
cmp dword [rdi + 0x48], eax
jae 0x1401050ce
mov dword [rdi + 0x48], eax
mov ecx, dword [rdi + 0x48]
call fcn.140109e80
mov qword [rdi + 0x50], rax
test rax, rax
jne 0x1401050e7
mov rcx, rdi
call fcn.1401043fc
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret