Function at 0x1400247a0
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 0x140024906
xor ebx, ebx
xor r12d, r12d
cmp rdx, 0x10
setae r8b
setb al
jae 0x140024ab1
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 0x140024ad9
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 0x140024b59
mov rax, r14
shr rax, 0x3d
jne 0x140024c0f
lea rcx, [r14*8]
call fcn.140027210
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.140024d50
mov rdi, rax
cmp rbp, qword [rsp + 0x40]
je 0x140024a0a
mov r14, rbp
mov qword [r14], rdi
mov rbp, qword [rsp + 0x38]
add rbp, 8
mov qword [rsp + 0x38], rbp
dec r12
jne 0x14002487c
jmp 0x1400248cf
mov r8, qword [rbx]
mov qword [rdx], r8
add rdx, 8
add rbx, 8
cmp rdx, r14
jne 0x1400248b7
jmp 0x140024d0f
mov rdi, qword [rsi + 0x10]
cmp rdi, qword [rsi + 8]
jne 0x140024b60
mov rcx, qword [rsi]
vmovups ymm0, ymmword [rsp + 0x28]
vmovups ymmword [rsi], ymm0
test rcx, rcx
jne 0x140024b83
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 0x140024c91
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 0x140024a83
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 0x1400249f6
movabs r13, 0xe38e38e38e38e38f
add rdx, 0x12000
cmp rbx, r15
cmove rdx, r12
mov rcx, rdi
cmp rdi, rdx
je 0x1400249d5
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 0x140024c14
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 0x140024b90
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 0x140024a63
mov rcx, r14
mov rdx, rbx
mov rbp, rax
mov r8, rax
call fcn.1400c6530
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 0x14002489f
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 0x140024972
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.140024de0
jmp 0x1400248f3
lea rdi, [rsp + 0x28]
mov rax, qword [rsi + 0x18]
cmp rax, qword [rsi + 0x10]
je 0x140024c2d
mov ecx, 0x12000
mov edx, 0x40
call fcn.140024d50
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140024f20
dec r12
jne 0x140024ade
mov rax, qword [rsi + 0x20]
mov rcx, rbx
shl rcx, 4
sub rax, rcx
mov qword [rsi + 0x20], rax
test rbx, rbx
je 0x1400248f3
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.140024de0
dec rbx
jne 0x140024b30
jmp 0x1400248f3
xor eax, eax
jmp 0x140024857
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
vzeroupper
call fcn.140025df0
cmp rdi, qword [rsi + 8]
je 0x1400248dd
jmp 0x140024b65
vzeroupper
call fcn.140021d70
jmp 0x1400248f3
mov r15, rbp
sub r15, rcx
sar r15, 2
cmp rbp, rcx
cmove r15, r13
mov rax, r15
shr rax, 0x3d
jne 0x140024c0f
mov qword [rsp + 0x50], rcx
mov r14, r15
shr r14, 2
lea rcx, [r15*8]
call fcn.140027210
mov r10, r14
lea rcx, [rax + r14*8]
mov rdx, rbp
sub rdx, rbx
mov r14, rcx
sub rbp, rbx
je 0x140024d0f
and rdx, 0xfffffffffffffff8
mov r14, rdx
add r14, rcx
add rbp, 0xfffffffffffffff8
cmp rbp, 0xf8
jb 0x140024c07
lea rdx, [rax + r10*8]
sub rdx, rbx
cmp rdx, 0x100
jae 0x140024c98
mov rdx, rcx
jmp 0x1400248b7
call fcn.140029ed0
mov rdx, qword [rbx + 8]
add rbx, 8
mov rdi, rdx
cmp rdx, r12
jne 0x140024981
jmp 0x1400249f6
test r12, r12
je 0x140024b10
xor r14d, r14d
lea rdi, [rsp + 0x28]
mov ecx, 0x12000
mov edx, 0x40
call fcn.140024d50
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140025060
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 0x140024c3e
add rbx, r12
jmp 0x140024b14
xor edi, edi
jmp 0x140024929
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 0x140024cc3
cmp rbp, r9
jne 0x140024d42
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 0x14002489f
vzeroupper
call fcn.140021d70
jmp 0x14002489f
add rbx, r8
jmp 0x1400248b7