Function at 0x1400235e0
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 0x140023746
xor ebx, ebx
xor r12d, r12d
cmp rdx, 0x10
setae r8b
setb al
jae 0x1400238f1
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 0x140023919
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 0x140023999
mov rax, r14
shr rax, 0x3d
jne 0x140023a4f
lea rcx, [r14*8]
call fcn.140025d00
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
vzeroupper
call fcn.140023b90
mov rdi, rax
cmp rbp, qword [rsp + 0x40]
je 0x14002384a
mov r14, rbp
mov qword [r14], rdi
mov rbp, qword [rsp + 0x38]
add rbp, 8
mov qword [rsp + 0x38], rbp
dec r12
jne 0x1400236bc
jmp 0x14002370f
mov r8, qword [rbx]
mov qword [rdx], r8
add rdx, 8
add rbx, 8
cmp rdx, r14
jne 0x1400236f7
jmp 0x140023b4f
mov rdi, qword [rsi + 0x10]
cmp rdi, qword [rsi + 8]
jne 0x1400239a0
mov rcx, qword [rsi]
vmovups ymm0, ymmword [rsp + 0x28]
vmovups ymmword [rsi], ymm0
test rcx, rcx
jne 0x1400239c3
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 0x140023ad1
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 0x1400238c3
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 0x140023836
movabs r13, 0xe38e38e38e38e38f
add rdx, 0x12000
cmp rbx, r15
cmove rdx, r12
mov rcx, rdi
cmp rdi, rdx
je 0x140023815
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 0x140023a54
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 0x1400239d0
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 0x1400238a3
mov rcx, r14
mov rdx, rbx
mov rbp, rax
mov r8, rax
call fcn.1400c3d80
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 0x1400236df
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 0x1400237b2
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.140023c20
jmp 0x140023733
lea rdi, [rsp + 0x28]
mov rax, qword [rsi + 0x18]
cmp rax, qword [rsi + 0x10]
je 0x140023a6d
mov ecx, 0x12000
mov edx, 0x40
call fcn.140023b90
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140023d60
dec r12
jne 0x14002391e
mov rax, qword [rsi + 0x20]
mov rcx, rbx
shl rcx, 4
sub rax, rcx
mov qword [rsi + 0x20], rax
test rbx, rbx
je 0x140023733
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.140023c20
dec rbx
jne 0x140023970
jmp 0x140023733
xor eax, eax
jmp 0x140023697
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
vzeroupper
call fcn.1400243e0
cmp rdi, qword [rsi + 8]
je 0x14002371d
jmp 0x1400239a5
vzeroupper
call fcn.140020740
jmp 0x140023733
mov r15, rbp
sub r15, rcx
sar r15, 2
cmp rbp, rcx
cmove r15, r13
mov rax, r15
shr rax, 0x3d
jne 0x140023a4f
mov qword [rsp + 0x50], rcx
mov r14, r15
shr r14, 2
lea rcx, [r15*8]
call fcn.140025d00
mov r10, r14
lea rcx, [rax + r14*8]
mov rdx, rbp
sub rdx, rbx
mov r14, rcx
sub rbp, rbx
je 0x140023b4f
and rdx, 0xfffffffffffffff8
mov r14, rdx
add r14, rcx
add rbp, 0xfffffffffffffff8
cmp rbp, 0xf8
jb 0x140023a47
lea rdx, [rax + r10*8]
sub rdx, rbx
cmp rdx, 0x100
jae 0x140023ad8
mov rdx, rcx
jmp 0x1400236f7
call fcn.14002ab90
mov rdx, qword [rbx + 8]
add rbx, 8
mov rdi, rdx
cmp rdx, r12
jne 0x1400237c1
jmp 0x140023836
test r12, r12
je 0x140023950
xor r14d, r14d
lea rdi, [rsp + 0x28]
mov ecx, 0x12000
mov edx, 0x40
call fcn.140023b90
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140023ea0
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 0x140023a7e
add rbx, r12
jmp 0x140023954
xor edi, edi
jmp 0x140023769
shr rbp, 3
inc rbp
shl r10, 3
mov r9, rbp
and r9, 0xffffffffffffffe0
lea r8, [r9*8]
lea rdx, [rcx + r9*8]
add r10, rax
add r10, 0xc0
xor r11d, r11d
vmovups zmm0, zmmword [rbx + r11*8]
vmovups zmm1, zmmword [rbx + r11*8 + 0x40]
vmovups zmm2, zmmword [rbx + r11*8 + 0x80]
vmovups zmm3, zmmword [rbx + r11*8 + 0xc0]
vmovups zmmword [r10 + r11*8 - 0xc0], zmm0
vmovups zmmword [r10 + r11*8 - 0x80], zmm1
vmovups zmmword [r10 + r11*8 - 0x40], zmm2
vmovups zmmword [r10 + r11*8], zmm3
add r11, 0x20
cmp r9, r11
jne 0x140023b03
cmp rbp, r9
jne 0x140023b82
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 0x1400236df
vzeroupper
call fcn.140020740
jmp 0x1400236df
add rbx, r8
jmp 0x1400236f7