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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x17]
sub rsp, 0x100
mov rax, qword [0x1401e7e78]
xor rax, rsp
mov qword [rbp + 7], rax
mov r12, r9
mov r14, r8
mov edi, edx
mov r15, qword [rbp + 0x77]
lea rax, vtable.std::_Func_impl_no_alloc_void____cdecl___void____ptr64___void__void____ptr64_.0
mov qword [rsp + 0x60], rax
lea rax, [0x1400ffb64]
mov qword [rsp + 0x68], rax
lea rax, [rsp + 0x60]
mov qword [rbp - 0x51], rax
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 3
xor r9d, r9d
lea r13d, [r9 + 1]
mov r8d, r13d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdx, rax
lea r8, [rsp + 0x60]
lea rcx, [rbp - 0x49]
call fcn.14005870c
nop
mov rcx, qword [rbp - 0x49]
lea rax, [rcx - 1]
mov rbx, 0xfffffffffffffffd
cmp rax, rbx
ja 0x140131e9a
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
test eax, eax
jle 0x140131e93
cmp esi, edi
jae 0x140131e93
lea rcx, [rsp + 0x50]
call fcn.140120d54
nop
lea edx, [rsi + 5]
lea rcx, [rsp + 0x50]
call fcn.1401212f8
mov rdi, rax
xor edx, edx
test rax, rax
je 0x140131e87
mov byte [rsi + rax], dl
lea eax, [rsi + 1]
mov byte [rax + rdi], dl
lea eax, [rsi + 2]
mov qword [rsp + 0x48], rax
mov byte [rax + rdi], dl
lea eax, [rsi + 3]
mov byte [rax + rdi], dl
lea eax, [rsi + 4]
mov byte [rax + rdi], dl
mov dword [rsp + 0x40], edx
lea rcx, [rsp + 0x50]
call fcn.140121454
mov r8, rax
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov rdx, rdi
mov rcx, qword [rbp - 0x49]
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
lea rcx, [rbp - 0x49]
call fcn.1400111e0
xor edx, edx
test ebx, ebx
je 0x140131e82
mov eax, dword [rsp + 0x40]
cmp eax, esi
jne 0x140131e82
mov r15d, dword [rbp + 0x7f]
cmp r15d, 0xffffffff
jne 0x140131cc5
lea rcx, [rsp + 0x50]
call fcn.140121220
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
mov rcx, r14
call fcn.1401210c8
mov eax, dword [rsp + 0x40]
mov dword [r12], eax
xor ebx, ebx
jmp 0x140131e87
cmp r15d, 0xfde9
je 0x140131de3
cmp eax, 3
jb 0x140131cec
cmp byte [rdi], 0xef
jne 0x140131cec
cmp byte [rdi + 1], 0xbb
jne 0x140131cec
cmp byte [rdi + 2], 0xbf
je 0x140131de3
mov ebx, 0xfffffffe
cmp r15d, 0x4b0
je 0x140131d6c
cmp eax, 2
jb 0x140131d09
cmp byte [rdi], 0xff
jne 0x140131d09
cmp byte [rdi + 1], bl
je 0x140131d6c
lea eax, [rsi + 2]
movsxd rdx, eax
mov rcx, r14
call fcn.140121228
mov rcx, r14
test rax, rax
jne 0x140131d2e
call fcn.1401211c4
mov ebx, 0xfffffff8
jmp 0x140131e87
call fcn.140121428
mov rbx, rax
mov rcx, r14
call fcn.140058574
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], rax
mov r9d, esi
mov r8, rdi
xor edx, edx
mov ecx, r15d
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
test eax, eax
js 0x140131d67
cmp ebx, esi
jle 0x140131e5c
mov rcx, r14
jmp 0x140131d1f
cmp eax, 2
jb 0x140131dbc
cmp byte [rdi], 0xff
jne 0x140131dbc
cmp byte [rdi + 1], bl
jne 0x140131dbc
lea rdx, [rdi + 2]
add esi, 0xfffffffe
or r8, 0xffffffffffffffff
mov rcx, r14
call fcn.140121718
mov rcx, r14
call fcn.140120ef0
test al, al
jne 0x140131da4
mov ebx, 0xfffffff9
jmp 0x140131e87
shr esi, 1
mov edx, esi
mov dword [r12], edx
xor r8d, r8d
mov rcx, r14
call fcn.1401219f8
jmp 0x140131cbe
lea rcx, [rsp + 0x50]
call fcn.140121220
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x48]
mov rcx, r14
call fcn.1401210c8
shr esi, 1
mov dword [r12], esi
jmp 0x140131cbe
cmp eax, 3
jb 0x140131df9
cmp byte [rdi], 0xef
jne 0x140131df9
cmp byte [rdi + 1], 0xbb
jne 0x140131df9
cmp byte [rdi + 2], 0xbf
je 0x140131dfc
mov r13b, dl
mov al, r13b
neg al
sbb rbx, rbx
and ebx, 3
add rbx, rdi
neg r13b
sbb eax, eax
and eax, 3
mov edi, esi
sub edi, eax
mov rdx, qword [rsp + 0x48]
mov rcx, r14
call fcn.140121228
test rax, rax
jne 0x140131e2d
lea ebx, [rax - 5]
jmp 0x140131e87
mov rcx, r14
call fcn.140058574
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rax
mov r9d, edi
mov r8, rbx
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rbx, eax
test eax, eax
js 0x140131e73
cmp ebx, esi
jg 0x140131e73
xor r8d, r8d
mov rdx, rbx
mov rcx, r14
call fcn.1401219f8
mov dword [r12], ebx
jmp 0x140131cbe
mov rcx, r14
call fcn.1401211c4
mov ebx, 0xfffffffa
jmp 0x140131e87
mov ebx, 0xfffffffc
lea rcx, [rsp + 0x50]
call fcn.140120de4
jmp 0x140131ea6
mov ebx, 0xfffffffe
jmp 0x140131e9d
or ebx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r15], eax
lea rcx, [rbp - 0x49]
call fcn.1400111e0
mov rcx, qword [rbp - 9]
test rcx, rcx
je 0x140131ec9
mov r8, qword [rcx]
lea rax, [rbp - 0x41]
cmp rcx, rax
setne dl
call qword [r8 + 0x20]
mov eax, ebx
mov rcx, qword [rbp + 7]
xor rcx, rsp
call fcn.140139b10
mov rbx, qword [rsp + 0x148]
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret