Function at 0x140023820
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 rcx, qword [rcx + 8]
mov r8, qword [rsi + 0x10]
xor r10d, r10d
mov rdi, r8
sub rdi, rcx
lea rax, [rdi + rdi - 1]
cmovne r10, rax
mov rdx, qword [rsi + 0x20]
mov rax, qword [rsi + 0x28]
lea r9, [rax + rdx]
cmp r10, r9
jne 0x140023981
xor ebx, ebx
xor r12d, r12d
cmp rdx, 0x10
setae r8b
setb al
jae 0x140023b2c
mov bl, r8b
mov r12b, al
mov r14, qword [rsi + 0x18]
sub r14, qword [rsi]
mov rax, r14
sar rax, 3
sar rdi, 3
sub rax, rdi
cmp rax, r12
jae 0x140023b54
sar r14, 2
lea rax, [rdi + r12]
cmp r14, rax
cmovbe r14, rax
lea rax, [rsi + 0x18]
mov qword [rsp + 0x48], rax
test r14, r14
je 0x140023bd4
mov rax, r14
shr rax, 0x3d
jne 0x140023c64
lea rcx, [r14*8]
call fcn.1400260c0
sub rdi, rbx
mov qword [rsp + 0x28], rax
lea rbp, [rax + rdi*8]
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbp
lea rax, [rax + r14*8]
mov qword [rsp + 0x40], rax
mov r13d, 1
mov ecx, 0x12000
mov edx, 0x40
call fcn.140023d20
mov rdi, rax
cmp rbp, qword [rsp + 0x40]
je 0x140023a85
mov r14, rbp
mov qword [r14], rdi
mov rbp, qword [rsp + 0x38]
add rbp, 8
mov qword [rsp + 0x38], rbp
dec r12
jne 0x1400238fc
jmp 0x14002394a
mov r9, qword [rbx + r8]
mov qword [rcx + r8], r9
add r8, 8
cmp rdx, r8
jne 0x140023934
jmp 0x140023c69
mov rdi, qword [rsi + 0x10]
cmp rdi, qword [rsi + 8]
jne 0x140023bdb
mov rcx, qword [rsi]
vmovups ymm0, ymmword [rsp + 0x28]
vmovups ymmword [rsi], ymm0
test rcx, rcx
jne 0x140023bfb
mov rax, qword [rsi + 0x28]
mov rcx, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov r9, qword [rsi + 0x20]
add r9, rax
mov r10, r9
shr r10, 4
mov rdx, qword [rcx + r10*8]
cmp r8, rcx
je 0x140023d16
and r9d, 0xf
lea rdi, [r9 + r9*8]
shl rdi, 9
add rdi, rdx
lea rbx, [rcx + r10*8]
mov r8, rdi
sub r8, rdx
mov rcx, r8
sar rcx, 9
movabs r14, 0x8e38e38e38e38e39
imul rcx, r14
cmp r8, 0xffffffffffffee01
jl 0x140023afe
inc rcx
mov r8, rcx
shr r8, 4
lea r15, [rbx + r8*8]
and ecx, 0xf
lea r12, [rcx + rcx*8]
shl r12, 9
add r12, qword [rbx + r8*8]
cmp rdi, r12
je 0x140023a71
movabs r13, 0xe38e38e38e38e38f
add rdx, 0x12000
cmp rbx, r15
cmove rdx, r12
mov rcx, rdi
cmp rdi, rdx
je 0x140023a50
sub rdx, rdi
add rdx, 0xffffffffffffee00
mulx rax, rax, r13
shr rax, 0xc
lea rbp, [rax + rax*8]
shl rbp, 9
lea r8, [rbp + 0x1200]
mov rcx, rdi
xor edx, edx
vzeroupper
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
lea rcx, [rdi + rbp]
add rcx, 0x1200
mov rax, qword [rsi + 0x28]
mov rdx, rax
sub rcx, rdi
sar rcx, 9
imul rcx, r14
mov rax, rcx
add rax, rdx
mov qword [rsi + 0x28], rax
cmp rbx, r15
jne 0x140023c99
add rsp, 0x58
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
vzeroupper
ret
mov rcx, qword [rsp + 0x28]
mov rbx, qword [rsp + 0x30]
mov rax, rbx
sub rax, rcx
jbe 0x140023c08
sar rax, 3
lea rcx, [rax + 1]
shr rcx, 0x3f
lea r15, [rax + rcx]
inc r15
sar r15, 1
lea rax, [r15*8]
mov r14, rbx
sub r14, rax
mov rax, rbp
sub rax, rbx
je 0x140023ade
mov rcx, r14
mov rdx, rbx
mov rbp, rax
mov r8, rax
call fcn.1400c6920
mov rax, rbp
mov rbp, rbx
neg r15
add r14, rax
mov qword [rsp + 0x38], r14
lea rax, [r15*8]
add rax, rbp
mov qword [rsp + 0x30], rax
jmp 0x14002391c
mov r8d, 0xe
sub r8, rcx
mov ecx, r8d
not ecx
shr r8, 1
and r8, 0xfffffffffffffff8
mov r15, rbx
sub r15, r8
and ecx, 0xf
lea r12, [rcx + rcx*8]
shl r12, 9
add r12, qword [r15]
jmp 0x1400239ed
add rdx, 0xfffffffffffffff0
mov qword [rsi + 0x20], rdx
mov rax, qword [rcx]
lea rdx, [rsp + 0x28]
mov qword [rdx], rax
add rcx, 8
mov qword [rsi + 8], rcx
mov rcx, rsi
call fcn.140023db0
jmp 0x14002396e
lea rdi, [rsp + 0x28]
mov rax, qword [rsi + 0x18]
cmp rax, qword [rsi + 0x10]
je 0x140023cb2
mov ecx, 0x12000
mov edx, 0x40
call fcn.140023d20
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140023ef0
dec r12
jne 0x140023b59
mov rax, qword [rsi + 0x20]
mov rcx, rbx
shl rcx, 4
sub rax, rcx
mov qword [rsi + 0x20], rax
test rbx, rbx
je 0x14002396e
lea rdi, [rsp + 0x28]
mov rax, qword [rsi + 8]
mov rcx, qword [rax]
mov qword [rsp + 0x28], rcx
add rax, 8
mov qword [rsi + 8], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140023db0
dec rbx
jne 0x140023bab
jmp 0x14002396e
xor eax, eax
jmp 0x1400238d7
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
call fcn.140024c50
cmp rdi, qword [rsi + 8]
je 0x140023958
jmp 0x140023be0
vzeroupper
call fcn.140020b80
jmp 0x14002396e
mov r15, rbp
sub r15, rcx
sar r15, 2
cmp rbp, rcx
cmove r15, r13
mov rax, r15
shr rax, 0x3d
jne 0x140023c64
mov qword [rsp + 0x50], rcx
lea rcx, [r15*8]
call fcn.1400260c0
mov rcx, r15
and rcx, 0xfffffffffffffffc
lea rcx, [rax + rcx*2]
mov r14, rcx
sub rbp, rbx
je 0x140023c69
mov rdx, rbp
sar rdx, 3
and rbp, 0xfffffffffffffff8
mov r14, rbp
add r14, rcx
shl rdx, 3
xor r8d, r8d
jmp 0x140023934
call fcn.140028cf0
lea rdx, [rax + r15*8]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], rdx
mov rcx, qword [rsp + 0x50]
test rcx, rcx
je 0x14002391c
call fcn.140020b80
jmp 0x14002391c
mov rdx, qword [rbx + 8]
add rbx, 8
mov rdi, rdx
cmp rdx, r12
jne 0x1400239fc
jmp 0x140023a71
test r12, r12
je 0x140023b8b
xor r14d, r14d
lea rdi, [rsp + 0x28]
mov ecx, 0x12000
mov edx, 0x40
call fcn.140023d20
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140024030
mov rax, qword [rsi + 0x10]
mov rcx, qword [rsi + 0x20]
sub rax, qword [rsi + 8]
xor edx, edx
cmp rax, 8
sete dl
neg rdx
lea rax, [rcx + rdx]
add rax, 0x10
mov qword [rsi + 0x20], rax
inc r14
cmp r12, r14
jne 0x140023cc3
add rbx, r12
jmp 0x140023b8f
xor edi, edi
jmp 0x1400239a4