Function at 0x1400871d0
Capabilities:
Encode data using base64

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov rsi, rcx
mov rax, qword [rcx + 0x20]
cmp rax, 0x2a
jb 0x140087284
add rax, 0xffffffffffffffd6
mov qword [rsi + 0x20], rax
mov r12, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov r15, qword [r12]
lea rdi, [r12 + 8]
mov qword [rsi + 8], rdi
cmp rbx, qword [rsi + 0x18]
jne 0x140087627
mov rcx, qword [rsi]
mov rax, rdi
sub rax, rcx
jbe 0x140087372
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov r12, rax
neg r12
shl rax, 3
mov r14, rdi
sub r14, rax
sub rbx, rdi
je 0x140087270
mov rcx, r14
mov rdx, rdi
mov r8, rbx
call fcn.140111410
mov rdi, qword [rsi + 8]
add rbx, r14
mov qword [rsi + 0x10], rbx
lea rax, [rdi + r12*8]
mov qword [rsi + 8], rax
jmp 0x140087627
mov rdi, qword [rsi + 0x10]
mov rax, qword [rsi]
mov r9, qword [rsi + 8]
mov rbx, rdi
sub rbx, r9
mov r15, rbx
sar r15, 3
mov rdx, qword [rsi + 0x18]
mov rcx, rdx
sub rcx, rax
mov r8, rcx
sar r8, 3
cmp r15, r8
jae 0x1400872da
mov ecx, 0xfc0
cmp rdx, rdi
je 0x1400873e8
call fcn.14010e7c0
mov qword [rbp - 0x30], rax
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.140087780
jmp 0x14008762f
mov qword [rbp - 8], r9
sar rcx, 2
cmp rdx, rax
mov r12d, 1
cmovne r12, rcx
lea rax, [rsi + 0x20]
mov qword [rbp - 0x10], rax
mov rax, r12
shr rax, 0x3d
jne 0x1400876b8
lea rcx, [r12*8]
call fcn.14010e7c0
mov r14, rax
mov qword [rbp - 0x30], rax
lea r13, [rax + r15*8]
mov qword [rbp - 0x20], r13
mov qword [rbp - 0x28], r13
lea rax, [rax + r12*8]
mov qword [rbp - 0x18], rax
mov qword [rbp - 0x40], r13
mov qword [rbp - 0x48], r13
mov ecx, 0xfc0
call fcn.14010e7c0
cmp r15, r12
jne 0x1400874fd
test rbx, rbx
jle 0x1400874a1
lea rcx, [r15 + 1]
shr rcx, 0x3f
add rcx, r15
inc rcx
shl rcx, 2
and rcx, 0xfffffffffffffff8
sub r13, rcx
mov qword [rbp - 0x28], r13
jmp 0x1400874fd
mov rax, rbx
sub rax, rcx
sar rax, 2
mov qword [rbp - 8], rcx
cmp rbx, rcx
mov r13d, 1
cmovne r13, rax
mov rax, r13
shr rax, 0x3d
jne 0x1400876b8
mov r14, r13
shr r14, 2
lea rcx, [r13*8]
call fcn.14010e7c0
lea rcx, [rax + r14*8]
mov r9, rbx
sub r9, rdi
lea rdx, [rax + r13*8]
mov r8, rcx
sub rbx, rdi
je 0x140087603
and r9, 0xfffffffffffffff8
mov r8, r9
add r8, rcx
add rbx, 0xfffffffffffffff8
cmp rbx, 0x68
jae 0x140087583
mov r9, rcx
jmp 0x1400875f0
call fcn.14010e7c0
mov qword [rbp - 0x30], rax
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.140087940
mov r12, qword [rsi + 8]
mov rbx, qword [rsi + 0x10]
mov r15, qword [r12]
lea rdi, [r12 + 8]
mov qword [rsi + 8], rdi
cmp rbx, qword [rsi + 0x18]
jne 0x140087627
mov rcx, qword [rsi]
mov rax, rdi
sub rax, rcx
ja 0x140087234
mov rax, rbx
sub rax, rcx
sar rax, 2
mov qword [rbp - 8], rcx
cmp rbx, rcx
mov r13d, 1
cmovne r13, rax
mov rax, r13
shr rax, 0x3d
jne 0x1400876b8
mov r14, r13
shr r14, 2
lea rcx, [r13*8]
call fcn.14010e7c0
lea rcx, [rax + r14*8]
mov r9, rbx
sub r9, rdi
lea rdx, [rax + r13*8]
mov r8, rcx
sub rbx, rdi
je 0x140087603
and r9, 0xfffffffffffffff8
mov r8, r9
add r8, rcx
add rbx, 0xfffffffffffffff8
cmp rbx, 0x68
jae 0x140087640
mov r9, rcx
jmp 0x1400876a0
sar rbx, 2
cmp rdi, qword [rbp - 8]
mov edi, 1
cmovne rdi, rbx
mov rcx, rdi
shr rcx, 0x3d
jne 0x1400876bd
lea rcx, [rdi*8]
mov rbx, rax
mov qword [rbp - 0x38], rax
call fcn.14010e7c0
mov rcx, rdi
and rcx, 0xfffffffffffffffc
lea r13, [rax + rcx*2]
lea rcx, [rax + rdi*8]
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], r13
mov qword [rbp - 0x18], rcx
mov rcx, r14
call fcn.14010e7fc
mov rdi, qword [rsi + 0x10]
mov rax, rbx
mov qword [r13], rax
add r13, 8
mov qword [rbp - 0x20], r13
lea rbx, [rbp - 0x30]
nop dword [rax]
cmp rdi, qword [rsi + 8]
je 0x14008752f
add rdi, 0xfffffffffffffff8
mov qword [rbp - 0x38], 0
mov rcx, rbx
mov rdx, rdi
call fcn.140087940
jmp 0x140087510
mov rcx, qword [rsi]
movaps xmm0, xmmword [rbp - 0x30]
mov qword [rbp - 0x30], rcx
movups xmmword [rsi], xmm0
mov qword [rbp - 0x28], rdi
mov rax, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
movaps xmm0, xmmword [rbp - 0x20]
mov qword [rbp - 0x20], rax
movups xmmword [rsi + 0x10], xmm0
mov qword [rbp - 0x18], rdx
cmp rax, rdi
je 0x140087570
sub rdi, rax
add rdi, 7
and rdi, 0xfffffffffffffff8
add rdi, rax
mov qword [rbp - 0x20], rdi
test rcx, rcx
je 0x14008762f
call fcn.14010e7fc
jmp 0x14008762f
lea r9, [rax + r14*8]
sub r9, rdi
cmp r9, 0x20
jae 0x140087595
mov r9, rcx
jmp 0x1400875f0
shr rbx, 3
inc rbx
shl r14, 3
mov r10, rbx
and r10, 0xfffffffffffffffc
lea r9, [rcx + r10*8]
lea rdi, [rdi + r10*8]
lea r11, [r14 + rax]
add r11, 0x10
xor r14d, r14d
nop word [rax + rax]
movups xmm0, xmmword [r12 + r14*8 + 8]
movups xmm1, xmmword [r12 + r14*8 + 0x18]
movups xmmword [r11 + r14*8 - 0x10], xmm0
movups xmmword [r11 + r14*8], xmm1
add r14, 4
cmp r10, r14
jne 0x1400875c0
cmp rbx, r10
je 0x140087603
nop word cs:[rax + rax]
mov r10, qword [rdi]
mov qword [r9], r10
add r9, 8
add rdi, 8
cmp r9, r8
jne 0x1400875f0
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], r8
mov qword [rsi + 0x18], rdx
mov rbx, r8
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x140087627
call fcn.14010e7fc
mov rbx, qword [rsi + 0x10]
mov qword [rbx], r15
add qword [rsi + 0x10], 8
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea r9, [rax + r14*8]
sub r9, rdi
cmp r9, 0x20
jae 0x140087652
mov r9, rcx
jmp 0x1400876a0
shr rbx, 3
inc rbx
shl r14, 3
mov r10, rbx
and r10, 0xfffffffffffffffc
lea r9, [rcx + r10*8]
lea rdi, [rdi + r10*8]
lea r11, [r14 + rax]
add r11, 0x10
xor r14d, r14d
movups xmm0, xmmword [r12 + r14*8 + 8]
movups xmm1, xmmword [r12 + r14*8 + 0x18]
movups xmmword [r11 + r14*8 - 0x10], xmm0
movups xmmword [r11 + r14*8], xmm1
add r14, 4
cmp r10, r14
jne 0x140087677
cmp rbx, r10
je 0x140087603
mov r10, qword [rdi]
mov qword [r9], r10
add r9, 8
add rdi, 8
cmp r9, r8
jne 0x1400876a0
jmp 0x140087603
call fcn.140012fe0
mov qword [rbp - 0x38], rax
call fcn.140012fe0
int3