Function at 0x140025900
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 0x140025a6f
xor ebx, ebx
xor r12d, r12d
cmp rdx, 0x10
setae r8b
setb al
jae 0x140025c1a
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 0x140025c42
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 0x140025cd9
mov rax, r14
shr rax, 0x3d
jne 0x140025d8f
lea rcx, [r14*8]
call fcn.1400280b0
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.140025ed0
mov rdi, rax
cmp rbp, qword [rsp + 0x40]
je 0x140025b73
mov r14, rbp
mov qword [r14], rdi
mov rbp, qword [rsp + 0x38]
add rbp, 8
mov qword [rsp + 0x38], rbp
dec r12
jne 0x1400259dc
jmp 0x140025a38
mov r8, qword [rbx]
mov qword [rdx], r8
add rdx, 8
add rbx, 8
cmp rdx, r14
jne 0x140025a20
jmp 0x140025e8f
mov rdi, qword [rsi + 0x10]
cmp rdi, qword [rsi + 8]
jne 0x140025ce0
mov rcx, qword [rsi]
vmovups ymm0, ymmword [rsp + 0x28]
vmovups ymmword [rsi], ymm0
test rcx, rcx
jne 0x140025d03
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 0x140025e11
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 0x140025bec
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 0x140025b5f
movabs r13, 0xe38e38e38e38e38f
add rdx, 0x12000
cmp rbx, r15
cmove rdx, r12
mov rcx, rdi
cmp rdi, rdx
je 0x140025b3e
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 0x140025d94
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 0x140025d10
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 0x140025bcc
mov rcx, r14
mov rdx, rbx
mov rbp, rax
mov r8, rax
call fcn.1400c6190
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 0x1400259ff
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 0x140025adb
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.140025f60
jmp 0x140025a5c
lea rdi, [rsp + 0x28]
nop word [rax + rax]
mov rax, qword [rsi + 0x18]
cmp rax, qword [rsi + 0x10]
je 0x140025dad
mov ecx, 0x12000
mov edx, 0x40
call fcn.140025ed0
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.1400260a0
dec r12
jne 0x140025c50
mov rax, qword [rsi + 0x20]
mov rcx, rbx
shl rcx, 4
sub rax, rcx
mov qword [rsi + 0x20], rax
test rbx, rbx
je 0x140025a5c
lea rdi, [rsp + 0x28]
nop word cs:[rax + rax]
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.140025f60
dec rbx
jne 0x140025cb0
jmp 0x140025a5c
xor eax, eax
jmp 0x1400259b7
lea rbx, [rsp + 0x28]
add rdi, 0xfffffffffffffff8
mov rcx, rbx
mov rdx, rdi
vzeroupper
call fcn.140026720
cmp rdi, qword [rsi + 8]
je 0x140025a46
jmp 0x140025ce5
vzeroupper
call fcn.140021f70
jmp 0x140025a5c
mov r15, rbp
sub r15, rcx
sar r15, 2
cmp rbp, rcx
cmove r15, r13
mov rax, r15
shr rax, 0x3d
jne 0x140025d8f
mov qword [rsp + 0x50], rcx
mov r14, r15
shr r14, 2
lea rcx, [r15*8]
call fcn.1400280b0
mov r10, r14
lea rcx, [rax + r14*8]
mov rdx, rbp
sub rdx, rbx
mov r14, rcx
sub rbp, rbx
je 0x140025e8f
and rdx, 0xfffffffffffffff8
mov r14, rdx
add r14, rcx
add rbp, 0xfffffffffffffff8
cmp rbp, 0xf8
jb 0x140025d87
lea rdx, [rax + r10*8]
sub rdx, rbx
cmp rdx, 0x100
jae 0x140025e18
mov rdx, rcx
jmp 0x140025a20
call fcn.14002cf30
mov rdx, qword [rbx + 8]
add rbx, 8
mov rdi, rdx
cmp rdx, r12
jne 0x140025aea
jmp 0x140025b5f
test r12, r12
je 0x140025c82
xor r14d, r14d
lea rdi, [rsp + 0x28]
mov ecx, 0x12000
mov edx, 0x40
call fcn.140025ed0
mov qword [rsp + 0x28], rax
mov rcx, rsi
mov rdx, rdi
call fcn.1400261e0
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 0x140025dbe
add rbx, r12
jmp 0x140025c86
xor edi, edi
jmp 0x140025a92
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 0x140025e43
cmp rbp, r9
jne 0x140025ec2
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 0x1400259ff
vzeroupper
call fcn.140021f70
jmp 0x1400259ff
add rbx, r8
jmp 0x140025a20