Function at 0x140090900
Capabilities:
Encode data using base64

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x70
vmovdqa xmmword [rsp + 0x60], xmm10
vmovdqa xmmword [rsp + 0x50], xmm9
vmovdqa xmmword [rsp + 0x40], xmm8
vmovdqa xmmword [rsp + 0x30], xmm7
vmovdqa xmmword [rsp + 0x20], xmm6
mov rsi, r8
mov edi, edx
mov ebx, dword [rcx]
cmp rcx, r8
je 0x14009094f
mov rdx, rcx
mov dword [rsi], ebx
mov eax, dword [rcx + 4]
mov dword [rsi + 4], eax
lea rcx, [rsi + 8]
add rdx, 8
mov r8d, 0x840
call fcn.14016e4a0
cmp edi, 0x40
jl 0x140090a21
mov ecx, edi
shr ecx, 6
lea edx, [rbx + rcx]
mov eax, 0xffffffff
cmp edx, 0x108
jg 0x140090b9d
mov dword [rsi], edx
dec edx
test ebx, ebx
jle 0x1400909c3
movsxd rdx, edx
mov eax, ecx
cmp rax, rdx
mov rcx, rdx
cmovl rcx, rax
mov r9, rdx
sub r9, rcx
lea rcx, [r9 + 1]
cmp rcx, 0x33
ja 0x140090bc6
inc rdx
lea r8, [rax*8]
mov rcx, rsi
sub rcx, r8
nop dword [rax]
mov r8, qword [rcx + rdx*8]
mov qword [rsi + rdx*8], r8
dec rdx
cmp rdx, rax
jg 0x1400909b0
dec rdx
test edx, edx
js 0x1400909df
lea rcx, [rsi + 8]
mov eax, edx
lea r8, [rax*8 + 8]
xor edx, edx
vzeroupper
call fcn.14016e0e0
movsxd rcx, dword [rsi]
xor ebx, ebx
test rcx, rcx
je 0x140090a1c
cmp qword [rsi + rcx*8], 0
jne 0x140090a15
lea eax, [rcx - 1]
lea rcx, [rsi + rcx*8]
add rcx, 0xfffffffffffffff8
nop dword [rax + rax]
mov dword [rsi], eax
sub eax, 1
jb 0x140090a1c
cmp qword [rcx], 0
lea rcx, [rcx - 8]
je 0x140090a00
inc eax
mov ecx, eax
mov eax, dword [rsi + 4]
mov ebx, ecx
jmp 0x140090a1e
xor eax, eax
mov dword [rsi + 4], eax
lea eax, [rdi + 0x3f]
test edi, edi
cmovns eax, edi
and eax, 0xffffffc0
sub edi, eax
je 0x140090a50
test ebx, ebx
jle 0x140090a50
mov eax, 0x40
sub eax, edi
mov edx, edi
mov r8d, ebx
cmp ebx, 8
jae 0x140090a5d
xor r9d, r9d
xor r10d, r10d
jmp 0x140090b18
test ebx, ebx
jne 0x140090b6e
jmp 0x140090b91
mov r9d, r8d
and r9d, 0xfffffff8
vmovd xmm0, eax
vmovd xmm1, edx
mov ecx, r8d
shr ecx, 3
shl rcx, 6
vpxor xmm2, xmm2, xmm2
xor r10d, r10d
nop dword [rax]
vmovdqu xmm3, xmmword [rsi + r10 + 8]
vmovdqu xmm4, xmmword [rsi + r10 + 0x18]
vmovdqu xmm5, xmmword [rsi + r10 + 0x28]
vmovdqu xmm6, xmmword [rsi + r10 + 0x38]
vpsrlq xmm7, xmm3, xmm0
vpsrlq xmm8, xmm4, xmm0
vpsrlq xmm9, xmm5, xmm0
vpalignr xmm10, xmm7, xmm2, 8
vpsrlq xmm2, xmm6, xmm0
vpalignr xmm7, xmm8, xmm7, 8
vpalignr xmm8, xmm9, xmm8, 8
vpalignr xmm9, xmm2, xmm9, 8
vpsllq xmm3, xmm3, xmm1
vpaddq xmm3, xmm10, xmm3
vpsllq xmm4, xmm4, xmm1
vpaddq xmm4, xmm4, xmm7
vpsllq xmm5, xmm5, xmm1
vpsllq xmm6, xmm6, xmm1
vpaddq xmm5, xmm8, xmm5
vpaddq xmm6, xmm9, xmm6
vmovdqu xmmword [rsi + r10 + 8], xmm3
vmovdqu xmmword [rsi + r10 + 0x18], xmm4
vmovdqu xmmword [rsi + r10 + 0x28], xmm5
vmovdqu xmmword [rsi + r10 + 0x38], xmm6
add r10, 0x40
cmp rcx, r10
jne 0x140090a80
vpextrq r10, xmm2, 1
cmp r9, r8
je 0x140090b45
mov r11, r10
nop dword [rax + rax]
mov rdi, qword [rsi + r9*8 + 8]
mov r10, rdi
mov ecx, eax
shr r10, cl
mov ecx, edx
shl rdi, cl
add rdi, r11
mov qword [rsi + r9*8 + 8], rdi
inc r9
mov r11, r10
cmp r8, r9
jne 0x140090b20
test r10, r10
je 0x140090b5d
cmp ebx, 0x107
ja 0x140090b5d
inc ebx
mov dword [rsi], ebx
mov qword [rsi + r8*8 + 8], r10
jmp 0x140090b6e
test ebx, ebx
je 0x140090b98
mov eax, 0xffffffff
cmp ebx, 0x108
je 0x140090b9d
movsxd rcx, ebx
lea eax, [rcx - 1]
lea rcx, [rsi + rcx*8]
nop dword [rax + rax]
cmp qword [rcx], 0
jne 0x140090b95
mov dword [rsi], eax
add rcx, 0xfffffffffffffff8
add eax, 0xffffffff
jb 0x140090b80
xor ebx, ebx
jmp 0x140090b98
mov ebx, dword [rsi + 4]
mov dword [rsi + 4], ebx
xor eax, eax
vmovaps xmm6, xmmword [rsp + 0x20]
vmovaps xmm7, xmmword [rsp + 0x30]
vmovaps xmm8, xmmword [rsp + 0x40]
vmovaps xmm9, xmmword [rsp + 0x50]
vmovaps xmm10, xmmword [rsp + 0x60]
add rsp, 0x70
pop rbx
pop rdi
pop rsi
vzeroupper
ret
lea r8, [rsi + rdx*8]
add r8, 8
lea r10, [r9*8]
mov r11, r8
sub r11, r10
cmp r11, r8
ja 0x14009099c
lea r11, [rdx*8 + 8]
lea r8, [rax*8]
sub r11, r8
add r11, rsi
mov rbx, r11
sub rbx, r10
cmp rbx, r11
ja 0x14009099c
shr r9, 0x3d
jne 0x14009099c
lea r10, [rdx*8]
mov r9, rcx
and r9, 0xfffffffffffffff0
add r10, rsi
add r10, 0xfffffffffffffff0
neg r8
mov r11, r9
vmovdqu ymm0, ymmword [r10 + r8 - 0x60]
vmovdqu ymm1, ymmword [r10 + r8 - 0x40]
vmovdqu ymm2, ymmword [r10 + r8 - 0x20]
vmovdqu ymm3, ymmword [r10 + r8]
vmovdqu ymmword [r10], ymm3
vmovdqu ymmword [r10 - 0x20], ymm2
vmovdqu ymmword [r10 - 0x40], ymm1
vmovdqu ymmword [r10 - 0x60], ymm0
add r10, 0xffffffffffffff80
add r11, 0xfffffffffffffff0
jne 0x140090c30
sub rdx, r9
cmp rcx, r9
jne 0x14009099c
jmp 0x1400909c3