Function at 0x140077a50
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x58
mov rsi, rcx
mov rax, qword [0x14024f018]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov rax, qword [rcx + 0x20]
cmp rax, 0x2a
jb 0x140077b04
add rax, 0xffffffffffffffd6
mov qword [rsi + 0x20], rax
mov rbx, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r15, qword [rbx]
add rbx, 8
mov qword [rsi + 8], rbx
cmp rdi, qword [rsi + 0x18]
jne 0x140077cd0
mov r14, qword [rsi]
mov rax, rbx
sub rax, r14
jbe 0x140077c3f
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
sar rax, 1
mov rbp, rax
neg rbp
shl rax, 3
mov r14, rbx
sub r14, rax
sub rdi, rbx
je 0x140077af0
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call fcn.140108e80
mov rbx, qword [rsi + 8]
add rdi, r14
mov qword [rsi + 0x10], rdi
lea rax, [rbx + rbp*8]
mov qword [rsi + 8], rax
jmp 0x140077cd0
mov r12, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r14, rdi
sub r14, r12
mov rcx, qword [rsi + 0x18]
mov rax, rcx
sub rax, qword [rsi]
cmp r14, rax
jb 0x140077cf7
lea rcx, [rsi + 0x20]
mov rdx, rax
sar rdx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rdx
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x48], rcx
mov rax, rbp
shr rax, 0x3d
jne 0x140077e7b
mov rbx, r14
sar rbx, 3
lea rcx, [rbp*8]
call fcn.140105b78
mov r13, rax
mov qword [rsp + 0x28], rax
add r14, rax
mov qword [rsp + 0x30], r14
lea r15, [rax + rbp*8]
mov qword [rsp + 0x40], r15
mov ecx, 0xfc0
call fcn.140105b78
cmp rbx, rbp
je 0x140077dd8
mov qword [r14], rax
lea rax, [r14 + 8]
mov qword [rsp + 0x38], rax
mov rdx, r12
cmp rdi, r12
je 0x140077be6
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
call fcn.140139850
cmp rdi, qword [rsi + 8]
jne 0x140077bb6
mov r13, qword [rsp + 0x28]
mov r14, qword [rsp + 0x30]
mov r12, qword [rsi + 0x10]
mov rax, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rdx, rdi
mov rcx, qword [rsi]
mov qword [rsi], r13
mov qword [rsp + 0x28], rcx
mov qword [rsi + 8], r14
mov qword [rsp + 0x30], rdx
mov qword [rsi + 0x10], rax
mov qword [rsp + 0x38], r12
mov rax, qword [rsi + 0x18]
mov qword [rsi + 0x18], r15
mov qword [rsp + 0x40], rax
mov rax, r12
sub rax, rdx
je 0x140077c2c
add rax, 0xfffffffffffffff8
shr rax, 3
not rax
lea rax, [r12 + rax*8]
mov qword [rsp + 0x38], rax
test rcx, rcx
je 0x140077cd8
call fcn.140105bb4
jmp 0x140077cd8
mov rax, rdi
sub rax, r14
mov rcx, rax
sar rcx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rcx
mov rax, rbp
shr rax, 0x3d
jne 0x140077e7b
mov r12, rbp
shr r12, 2
lea rcx, [rbp*8]
call fcn.140105b78
lea r9, [rax + r12*8]
lea r8, [rax + rbp*8]
mov r10, r9
sub rdi, rbx
je 0x140077cad
lea r10, [r9 + rdi]
sar rdi, 3
shl rdi, 3
lea rbp, [rax + r12*8]
xor ecx, ecx
mov rdx, qword [rbx + rcx]
mov qword [rbp + rcx], rdx
add rcx, 8
cmp rdi, rcx
jne 0x140077c9b
mov qword [rsi], rax
mov qword [rsi + 8], r9
mov qword [rsi + 0x10], r10
mov qword [rsi + 0x18], r8
mov rdi, r10
test r14, r14
je 0x140077cd0
mov rcx, r14
call fcn.140105bb4
mov rdi, qword [rsi + 0x10]
mov qword [rdi], r15
add qword [rsi + 0x10], 8
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.140106490
nop
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp rcx, rdi
jne 0x140077db9
mov ecx, 0xfc0
call fcn.140105b78
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140139850
mov rbx, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r15, qword [rbx]
add rbx, 8
mov qword [rsi + 8], rbx
cmp rdi, qword [rsi + 0x18]
jne 0x140077cd0
mov r14, qword [rsi]
mov rax, rbx
sub rax, r14
ja 0x140077ab4
mov rax, rdi
sub rax, r14
mov rcx, rax
sar rcx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rcx
mov rax, rbp
shr rax, 0x3d
jne 0x140077e7b
mov r12, rbp
shr r12, 2
lea rcx, [rbp*8]
call fcn.140105b78
lea r9, [rax + r12*8]
lea r8, [rax + rbp*8]
mov r10, r9
sub rdi, rbx
je 0x140077cad
lea r10, [r9 + rdi]
sar rdi, 3
shl rdi, 3
lea rbp, [rax + r12*8]
xor ecx, ecx
mov rdx, qword [rbx + rcx]
mov qword [rbp + rcx], rdx
add rcx, 8
cmp rdi, rcx
jne 0x140077da2
jmp 0x140077cad
mov ecx, 0xfc0
call fcn.140105b78
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
mov rcx, rsi
call fcn.140139710
jmp 0x140077cd8
mov qword [rsp + 0x20], rax
mov rax, r14
sub rax, r13
jbe 0x140077e09
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
add rax, rcx
inc rax
shl rax, 2
and rax, 0xfffffffffffffff8
sub r14, rax
mov qword [rsp + 0x30], r14
jmp 0x140077e71
movabs rcx, 0x1fffffffffffffff
mov rdx, rax
sar rdx, 2
test rax, rax
mov ebp, 1
cmovne rbp, rdx
cmp rbp, rcx
ja 0x140077e7b
mov rbx, rbp
and rbx, 0xfffffffffffffffc
lea rcx, [rbp*8]
call fcn.140105b78
lea r14, [rax + rbx*2]
lea r15, [rax + rbp*8]
mov rbx, rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x40], r15
test r13, r13
je 0x140077e6e
mov rcx, r13
call fcn.140105bb4
mov r12, qword [rsi + 8]
mov rdi, qword [rsi + 0x10]
mov r13, rbx
mov rax, qword [rsp + 0x20]
jmp 0x140077b9d
call fcn.140119940
int3