Function at 0x14016c980
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov rax, qword [0x14035cb78]
xor rax, rsp
mov qword [rbp - 8], rax
mov rsi, rdx
mov rdi, rcx
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rdx
xor ecx, ecx
mov dword [rbp - 0x48], ecx
mov r13, qword [rdx + 0x10]
movabs rdx, 0x7fffffffffffffff
mov rax, rdx
sub rax, r13
cmp rax, 0x24
jb 0x14016cd65
mov r12, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14016c9e3
mov r12, qword [rsi]
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x18], rcx
mov qword [rbp - 0x10], rcx
lea r15, [r13 + 0x24]
mov ebx, SafeArrayGetLBound
lea r14, [rbp - 0x28]
cmp r15, rbx
jbe 0x14016ca2e
mov rbx, r15
or rbx, 0xf
cmp rbx, rdx
jbe 0x14016ca12
mov rbx, rdx
jmp 0x14016ca1e
mov eax, SafeArrayPutElement
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
call fcn.1400b9950
mov r14, rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], rbx
movups xmm0, xmmword [str._base64_FileEncode__Start_filename:]
movups xmmword [r14], xmm0
movups xmm1, xmmword [0x140285300]
movups xmmword [r14 + 0x10], xmm1
mov eax, dword [0x140285310]
mov dword [r14 + 0x20], eax
lea rcx, [r14 + 0x24]
mov r8, r13
mov rdx, r12
call fcn.1401ff6b0
mov byte [r14 + r15], 0
mov dword [rbp - 0x48], 2
lea rcx, [rbp - 0x28]
call fcn.1401630b0
mov rdx, rsi
cmp qword [rsi + 0x18], 0x10
jb 0x14016ca88
mov rdx, qword [rsi]
lea r8, [0x14027d3d4]
lea rcx, [rbp - 0x50]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fopen_s
xor r12d, r12d
mov qword [rdi], r12
mov qword [rdi + 0x18], SafeArrayGetLBound
mov qword [rdi + 0x10], 1
mov word [rdi], 0x20
mov dword [rbp - 0x48], 3
cmp qword [rbp - 0x50], r12
je 0x14016cc9a
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], SafeArrayGetLBound
lea ecx, [r12 + 0x30]
call fcn.1400b9950
mov rcx, rax
mov qword [rbp - 0x18], 0x22
mov qword [rbp - 0x10], 0x2f
movups xmm0, xmmword [str._base64_FileEncode__File_not_null]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140285328]
movups xmmword [rax + 0x10], xmm1
movzx eax, word [0x140285338]
mov word [rcx + 0x20], ax
mov byte [rcx + 0x22], r12b
mov qword [rbp - 0x28], rcx
lea rcx, [rbp - 0x28]
call fcn.1401630b0
xor edx, edx
lea r8d, [r12 + 2]
mov rcx, qword [rbp - 0x50]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
mov rcx, qword [rbp - 0x50]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_ftell
movsxd rbx, eax
mov rcx, rbx
call fcn.1401c7aec
mov r14, rax
xor r8d, r8d
xor edx, edx
mov rcx, qword [rbp - 0x50]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fseek
mov r9, qword [rbp - 0x50]
mov r8, rbx
lea edx, [r12 + 1]
mov rcx, r14
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fread
cmp eax, ebx
je 0x14016cbcc
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], SafeArrayGetLBound
lea ecx, [r12 + 0x30]
call fcn.1400b9950
mov qword [rbp - 0x18], 0x28
mov qword [rbp - 0x10], 0x2f
movups xmm0, xmmword [str._base64_FileEncode__result___totalsize]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140285350]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140285360]
movsd qword [rax + 0x20], xmm0
mov byte [rax + 0x28], r12b
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x28]
call fcn.1401630b0
mov r8, rbx
mov rdx, r14
lea rcx, [rbp - 0x28]
call fcn.14016d010
mov rbx, rax
cmp rdi, rax
je 0x14016cc49
mov rdx, qword [rdi + 0x18]
cmp rdx, 0x10
jb 0x14016cc1d
mov rcx, qword [rdi]
inc rdx
cmp rdx, 0x1000
jb 0x14016cc18
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14016cd59
mov rcx, r8
call fcn.1401c72f8
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], SafeArrayGetLBound
mov byte [rdi], 0
movups xmm0, xmmword [rbx]
movups xmmword [rdi], xmm0
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rdi + 0x10], xmm1
mov qword [rbx + 0x10], r12
mov qword [rbx + 0x18], SafeArrayGetLBound
mov byte [rbx], 0
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x14016cc84
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14016cc7f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14016cd59
call fcn.1401c72f8
mov edx, 1
mov rcx, r14
call fcn.1401c72f8
mov rcx, qword [rbp - 0x50]
call sub.api_ms_win_crt_stdio_l1_1_0.dll_fclose
mov qword [rbp - 0x28], r12
mov qword [rbp - 0x18], r12
mov qword [rbp - 0x10], SafeArrayGetLBound
mov ecx, 0x20
call fcn.1400b9950
mov qword [rbp - SafeArrayPutElement], 0x18
mov qword [rbp - 0x10], 0x1f
movups xmm0, xmmword [str._base64_FileEncode__End]
movups xmmword [rax], xmm0
movsd xmm1, qword [0x140285380]
movsd qword [rax + 0x10], xmm1
mov byte [rax + 0x18], 0
mov qword [rbp - 0x28], rax
lea rcx, [rbp - 0x28]
call fcn.1401630b0
nop
mov rdx, qword [rsi + 0x18]
cmp rdx, 0x10
jb 0x14016cd23
inc rdx
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x14016cd1e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14016cd5f
mov rcx, r8
call fcn.1401c72f8
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], SafeArrayGetLBound
mov byte [rsi], 0
mov rax, rdi
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.1401c7850
mov rbx, qword [rsp + 0xc0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call sub.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn
nop
call fcn.1400d0220
int3